Files
ps_shop/web/dist/app.js
T
2026-05-14 01:48:15 +02:00

2 lines
12 KiB
JavaScript

var _=document.documentElement;_.dataset.js="ready";var L=document.querySelector("[data-menu-toggle]"),q=document.querySelector("[data-menu-panel]"),w=[...document.querySelectorAll("[data-mega-trigger]")],M=[...document.querySelectorAll("[data-mega-menu]")];if(L&&q){let d=()=>{q.classList.add("hidden"),L.setAttribute("aria-expanded","false")},b=()=>{q.classList.remove("hidden"),L.setAttribute("aria-expanded","true")};L.addEventListener("click",()=>{if(L.getAttribute("aria-expanded")==="true"){d();return}b()}),window.addEventListener("resize",()=>{if(window.innerWidth>=1024){q.classList.remove("hidden"),L.setAttribute("aria-expanded","true");return}d()})}if(w.length>0&&M.length>0){let d=()=>{w.forEach((o)=>{o.setAttribute("aria-expanded","false"),o.closest(".desktop-nav__entry")?.classList.remove("desktop-nav__entry--open")}),M.forEach((o)=>{o.classList.add("hidden")})},b=(o)=>{let s=o.dataset.megaTarget;if(!s)return;d(),o.setAttribute("aria-expanded","true"),o.closest(".desktop-nav__entry")?.classList.add("desktop-nav__entry--open"),document.getElementById(s)?.classList.remove("hidden")};w.forEach((o)=>{o.addEventListener("click",(s)=>{if(window.innerWidth<1024)return;let p=o.getAttribute("aria-expanded")==="true";if(o instanceof HTMLAnchorElement&&p)return;if(s.preventDefault(),p){d();return}b(o)})}),document.addEventListener("click",(o)=>{if(window.innerWidth<1024)return;let s=o.target;if(!(s instanceof Node))return;let p=w.some((a)=>a.contains(s)),f=M.some((a)=>a.contains(s));if(!p&&!f)d()}),document.addEventListener("keydown",(o)=>{if(o.key==="Escape")d()}),window.addEventListener("resize",()=>{if(window.innerWidth<1024)d()})}var N=document.querySelector("button[type='submit']");if(N)N.addEventListener("mouseenter",()=>{_.style.setProperty("--cta-glow","0 0 0 4px rgba(252, 211, 77, 0.12)")}),N.addEventListener("mouseleave",()=>{_.style.setProperty("--cta-glow","0 0 0 0 rgba(0,0,0,0)")});var g=document.querySelector("[data-product-main-image]"),O=g?.dataset.defaultImage||g?.getAttribute("src")||"",E=document.querySelector("[data-product-thumb-carousel]"),D=E?.querySelector("[data-product-thumb-viewport]"),X=E?.querySelector("[data-product-thumb-track]"),H=E?.querySelector("[data-product-thumb-prev]"),R=E?.querySelector("[data-product-thumb-next]"),h=[...document.querySelectorAll("[data-product-thumb-index]")];if(g&&E&&D&&X&&h.length>0){let d=0,b=()=>{h.forEach((a,r)=>{if(r===d){a.classList.remove("border-stone-800"),a.classList.add("border-amber-400/60","ring-1","ring-amber-300/40"),a.setAttribute("aria-current","true");return}a.classList.remove("border-amber-400/60","ring-1","ring-amber-300/40"),a.classList.add("border-stone-800"),a.removeAttribute("aria-current")})},o=(a)=>{h[a]?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},s=(a)=>{let r=(a+h.length)%h.length,l=h[r],y=l?.dataset.productThumbLarge||l?.dataset.productThumbLargeFallback||"";if(!l||!y)return;if(d=r,g.setAttribute("src",y),l.dataset.productThumbAlt)g.setAttribute("alt",l.dataset.productThumbAlt);b(),o(r)},p=(a)=>{s(d+a)};H?.addEventListener("click",()=>{p(-1)}),R?.addEventListener("click",()=>{p(1)}),h.forEach((a,r)=>{a.addEventListener("click",()=>{s(r)})});let f=h.findIndex((a)=>a.dataset.productThumbLarge===g.getAttribute("src"));s(f>=0?f:0),D.addEventListener("wheel",(a)=>{if(Math.abs(a.deltaY)<=Math.abs(a.deltaX))return;a.preventDefault(),D.scrollBy({left:a.deltaY,behavior:"smooth"})},{passive:!1})}var G=document.querySelector("[data-variant-picker]"),B=document.querySelector("[data-variant-combination]");if(G&&B){let d=[...G.querySelectorAll("[data-variant-group]")],b=document.querySelector("[data-variant-selection-summary]"),o=document.querySelector("[data-product-price-gross]"),s=document.querySelector("[data-product-price-net]"),p=o?.dataset.defaultPriceGross||o?.textContent||"",f=s?.dataset.defaultPriceNet||s?.textContent||"",a=[...document.querySelectorAll("[data-variant-combination-image]")],r=new Map(a.map((e)=>[e.dataset.variantCombinationImage,{imageLarge:e.dataset.imageLarge||"",priceGross:e.dataset.priceGross||"",priceNet:e.dataset.priceNet||""}])),l=(e)=>(e||"").split(",").map((t)=>Number.parseInt(t,10)).filter((t)=>Number.isInteger(t)&&t>0),y=(e,t,n)=>{if(e==="radio"){if(n)return"rounded-full border border-stone-200 bg-stone-100 px-4 py-2 text-sm font-medium text-stone-400 opacity-50 transition";if(t)return"rounded-full border border-stone-900 bg-stone-900 px-4 py-2 text-sm font-medium text-stone-50 transition";return"rounded-full border border-stone-300 bg-white px-4 py-2 text-sm font-medium text-stone-900 transition hover:border-stone-700"}if(e==="select"){if(n)return"w-full rounded-2xl px-4 py-3 text-left text-sm font-medium text-stone-400 opacity-50 transition";if(t)return"w-full rounded-2xl bg-stone-900 px-4 py-3 text-left text-sm font-medium text-stone-50 transition";return"w-full rounded-2xl px-4 py-3 text-left text-sm font-medium text-stone-700 transition hover:bg-stone-100 hover:text-stone-950"}if(n)return"inline-flex min-h-10 min-w-10 items-center justify-center border border-stone-200 p-0.5 opacity-40 transition";if(t)return"inline-flex min-h-10 min-w-10 items-center justify-center border border-stone-900 p-0.5 ring-1 ring-stone-900 transition";return"inline-flex min-h-10 min-w-10 items-center justify-center border border-stone-300 p-0.5 transition hover:border-stone-700"},x=(e,t)=>e.filter((n)=>t.includes(n)),I=(e)=>{let t=null;return d.forEach((n)=>{if(n===e)return;let c=n.querySelector("[data-variant-option][data-selected='true']"),i=l(c?.dataset.combinationIds);if(i.length===0)return;if(t===null){t=i;return}t=x(t,i)}),t},j=(e)=>{if(e.dataset.variantSelect!==void 0)return e.querySelector("[data-variant-select-value]")?.textContent?.trim()||"";let t=e.querySelector("[data-variant-option][data-selected='true']");return t?.getAttribute("aria-label")?.trim()||t?.textContent?.trim()||""},z=()=>{let e=[];if(d.forEach((t)=>{let n=t.dataset.variantGroup,c=j(t),i=n?document.querySelector(`[data-variant-current="${n}"]`):null;if(i)i.textContent=c;let S=t.closest(".space-y-3")?.querySelector("p")?.textContent?.trim()||"";if(S&&c)e.push(`${S}: ${c}`)}),b)b.textContent=e.length>0?e.join(" • "):"Choose product options"},T=(e,t)=>{e.querySelectorAll("[data-variant-option]").forEach((n)=>{let c=n===t;n.dataset.selected=c?"true":"false";let i=n.dataset.disabled==="true";n.className=y(n.dataset.variantPresentation,c,i)})},W=(e)=>{if(e.dataset.variantSelect===void 0)return;let t=e.querySelector("[data-variant-select-value]"),n=e.querySelector("[data-variant-option][data-selected='true']");if(t&&n)t.textContent=n.textContent?.trim()||""},F=(e)=>{let t=I(e),n=[...e.querySelectorAll("[data-variant-option]")];n.forEach((u)=>{let S=l(u.dataset.combinationIds),P=t===null||x(S,t).length>0;u.dataset.disabled=P?"false":"true",u.disabled=!P,u.setAttribute("aria-disabled",P?"false":"true")});let c=e.querySelector("[data-variant-option][data-selected='true']");if(c?.dataset.disabled==="true")c.dataset.selected="false";let i=e.querySelector("[data-variant-option][data-selected='true'][data-disabled='false']");if(!i)i=e.querySelector("[data-variant-option][data-disabled='false']");if(i)T(e,i),W(e);else n.forEach((u)=>{u.dataset.selected="false",u.className=y(u.dataset.variantPresentation,!1,!0)})},$=()=>{for(let e=0;e<2;e+=1)d.forEach((t)=>{F(t)})},C=()=>{$();let e=null;if(d.forEach((t)=>{let n=t.querySelector("[data-variant-option][data-selected='true']"),c=l(n?.dataset.combinationIds);if(c.length===0){e=[];return}if(e===null){e=c;return}e=e.filter((i)=>c.includes(i))}),e&&e.length>0){let t=String(e[0]);B.value=t;let n=r.get(t);if(g){let c=n?.imageLarge||O;if(c){g.setAttribute("src",c);let i=h.findIndex((u)=>u.dataset.productThumbLarge===c);if(i>=0)h.forEach((u,S)=>{if(S===i)u.classList.remove("border-stone-800"),u.classList.add("border-amber-400/60","ring-1","ring-amber-300/40"),u.setAttribute("aria-current","true");else u.classList.remove("border-amber-400/60","ring-1","ring-amber-300/40"),u.classList.add("border-stone-800"),u.removeAttribute("aria-current")}),h[i]?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})}}if(o)o.textContent=n?.priceGross||p;if(s)s.textContent=n?.priceNet||f}else{if(B.value="",o)o.textContent=p;if(s)s.textContent=f}z()},A=()=>{d.forEach((e)=>{if(e.dataset.variantSelect===void 0)return;e.querySelector("[data-variant-select-menu]")?.classList.add("hidden"),e.querySelector("[data-variant-select-trigger]")?.setAttribute("aria-expanded","false")})};d.forEach((e)=>{if(e.dataset.variantSelect!==void 0){let t=e.querySelector("[data-variant-select-trigger]"),n=e.querySelector("[data-variant-select-menu]"),c=e.querySelector("[data-variant-select-value]");t?.addEventListener("click",()=>{let i=t.getAttribute("aria-expanded")==="true";if(A(),i)return;n?.classList.remove("hidden"),t.setAttribute("aria-expanded","true")}),e.querySelectorAll("[data-variant-option]").forEach((i)=>{i.addEventListener("click",()=>{if(i.dataset.disabled==="true")return;if(T(e,i),c)c.textContent=i.textContent?.trim()||"";A(),C()})});return}e.querySelectorAll("[data-variant-option]").forEach((t)=>{t.addEventListener("click",()=>{if(t.dataset.disabled==="true")return;T(e,t),C()})})}),C(),document.addEventListener("click",(e)=>{let t=e.target;if(!(t instanceof Node))return;if(!G.contains(t))A()}),document.addEventListener("keydown",(e)=>{if(e.key==="Escape")A()})}var m=document.querySelector("[data-gallery-modal]"),k=m?.querySelector("[data-gallery-main]"),Y=[...document.querySelectorAll("[data-gallery-open]")],J=[...document.querySelectorAll("[data-gallery-close]")],v=[...document.querySelectorAll("[data-gallery-thumb]")],K=m?.querySelector("[data-gallery-prev]"),Q=m?.querySelector("[data-gallery-next]"),V=m?.querySelector("[data-gallery-thumb-viewport]"),U=m?.querySelector("[data-gallery-thumb-prev]"),Z=m?.querySelector("[data-gallery-thumb-next]");if(m&&k&&Y.length>0){let d=0,b=!1,o=()=>{let l=document.querySelector("[data-product-main-image]")?.getAttribute("src")||"";if(l){let y=v.findIndex((x)=>x.dataset.galleryThumb===l);if(y>=0)f(y)}m.classList.remove("hidden"),m.setAttribute("aria-hidden","false"),document.body.style.overflow="hidden"},s=()=>{m.classList.add("hidden"),m.setAttribute("aria-hidden","true"),document.body.style.overflow=""},p=(r)=>{if(v.forEach((l)=>{l.classList.remove("border-amber-400/60"),l.classList.add("border-stone-800")}),r)r.classList.remove("border-stone-800"),r.classList.add("border-amber-400/60"),r.scrollIntoView({block:"nearest",inline:"nearest"})},f=(r)=>{if(v.length===0)return;let l=(r+v.length)%v.length,y=v[l],x=y.dataset.galleryThumb,I=y.dataset.galleryAlt||k.getAttribute("alt")||"";if(!x)return;d=l,k.setAttribute("src",x),k.setAttribute("alt",I),p(y)},a=(r)=>{if(v.length<=1)return;f(d+r)};U?.addEventListener("click",()=>{a(-1)}),Z?.addEventListener("click",()=>{a(1)}),Y.forEach((r)=>{r.addEventListener("click",o)}),J.forEach((r)=>{r.addEventListener("click",s)}),v.forEach((r,l)=>{if(l===0)f(0);r.addEventListener("click",()=>{f(l)})}),K?.addEventListener("click",()=>{a(-1)}),Q?.addEventListener("click",()=>{a(1)}),V?.addEventListener("wheel",(r)=>{if(window.innerWidth>=1024){r.preventDefault(),V.scrollBy({top:r.deltaY,behavior:"smooth"});return}if(Math.abs(r.deltaY)<=Math.abs(r.deltaX))return;r.preventDefault(),V.scrollBy({left:r.deltaY,behavior:"smooth"})},{passive:!1}),m.addEventListener("click",(r)=>{if(r.target===m)s()}),m.addEventListener("wheel",(r)=>{if(m.getAttribute("aria-hidden")!=="false"||v.length<=1)return;if(Math.abs(r.deltaY)<10)return;if(r.preventDefault(),b)return;b=!0,a(r.deltaY>0?1:-1),window.setTimeout(()=>{b=!1},180)},{passive:!1}),document.addEventListener("keydown",(r)=>{if(m.getAttribute("aria-hidden")!=="false")return;if(r.key==="Escape"){s();return}if(r.key==="ArrowLeft"){r.preventDefault(),a(-1);return}if(r.key==="ArrowRight")r.preventDefault(),a(1)})}