PluginProbe
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler / 1.7.0
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler v1.7.0
1.7.0 1.6.6 1.6.5 1.6.4 1.6.3 1.6.2 1.6.1 1.6.0 1.5.4 1.5.5 1.5.3 1.5.2 1.5.1 1.5.0 1.4.2 1.4.1 1.4.0 1.3.28 1.3.27 1.3.26 1.3.25 1.3.23 1.3.22 1.3.21 1.3.20 All 50 releases
← All changes | assets/SingleProduct.js +1 -42 1.6.5 → 1.7.0 View file →
@@ -1,42 +1 @@
1 -var _e=Object.defineProperty;var Jt=I=>{throw TypeError(I)};var qe=(I,t,e)=>t in I?_e(I,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):I[t]=e;var Qt=(I,t,e)=>qe(I,typeof t!="symbol"?t+"":t,e),It=(I,t,e)=>t.has(I)||Jt("Cannot "+e);var i=(I,t,e)=>(It(I,t,"read from private field"),e?e.call(I):t.get(I)),y=(I,t,e)=>t.has(I)?Jt("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(I):t.set(I,e),g=(I,t,e,a)=>(It(I,t,"write to private field"),a?a.call(I,e):t.set(I,e),e),l=(I,t,e)=>(It(I,t,"access private method"),e);var z,$,Z,X,tt,et,q,Zt,Xt,ut,te,wt;class Te{constructor(t){y(this,q);y(this,z);y(this,$);y(this,Z);y(this,X);y(this,tt);y(this,et);g(this,$,t),g(this,z,i(this,$).querySelectorAll("[data-tab]")),g(this,Z,i(this,$).querySelector("[data-fluent-cart-product-item-price]")),g(this,X,i(this,$).querySelector("[data-fluent-cart-product-payment-type]")),g(this,tt,i(this,$).querySelector("[data-fluent-cart-product-quantity-container]")),g(this,et,i(this,$).querySelector("[data-fluent-cart-add-to-cart-button]"))}init(){l(this,q,Zt).call(this),l(this,q,Xt).call(this)}handleVariationChange(t){t.closest("[data-tab-content]")}}z=new WeakMap,$=new WeakMap,Z=new WeakMap,X=new WeakMap,tt=new WeakMap,et=new WeakMap,q=new WeakSet,Zt=function(){i(this,z).forEach(t=>{t.addEventListener("click",()=>{l(this,q,ut).call(this,t)}),t.addEventListener("keydown",e=>{const a=Array.from(i(this,z)),r=a.indexOf(t);let o=-1;switch(e.key){case"Enter":case" ":e.preventDefault(),l(this,q,ut).call(this,t);return;case"ArrowRight":e.preventDefault(),o=(r+1)%a.length;break;case"ArrowLeft":e.preventDefault(),o=(r-1+a.length)%a.length;break;case"Home":e.preventDefault(),o=0;break;case"End":e.preventDefault(),o=a.length-1;break;default:return}o>=0&&(a[o].focus(),l(this,q,ut).call(this,a[o]))})})},Xt=function(){const t=Array.from(i(this,z)).find(e=>e.classList.contains("active"));t&&l(this,q,wt).call(this,t)},ut=function(t,e=!1){i(this,Z)&&i(this,Z).classList.add("is-hidden"),i(this,X)&&i(this,X).classList.add("is-hidden"),i(this,tt)&&i(this,tt).classList.add("is-hidden"),i(this,et)&&i(this,et).classList.add("is-hidden"),i(this,z).forEach(d=>{d.classList.remove("active"),d.setAttribute("aria-selected","false"),d.setAttribute("tabindex","-1")}),i(this,$).querySelectorAll("[data-tab-content]").forEach(d=>{d.classList.remove("active"),d.style.display="none"}),t.classList.add("active"),t.setAttribute("aria-selected","true"),t.setAttribute("tabindex","0");const r=t.dataset.tab,o=i(this,$).querySelector(`#${r}`);o&&(o.classList.add("active"),l(this,q,te).call(this,o,400)),l(this,q,wt).call(this,t);let n=o==null?void 0:o.querySelector('[data-fluent-cart-product-variant][data-item-stock="in-stock"]');n||(n=o==null?void 0:o.querySelector("[data-fluent-cart-product-variant]")),n&&n.click()},te=function(t,e){t.style.opacity="0",t.style.display="block";const a=performance.now(),r=o=>{const n=o-a,d=Math.min(n/e,1);t.style.opacity=d,d<1&&requestAnimationFrame(r)};requestAnimationFrame(r)},wt=function(t){const e=i(this,$).querySelector("[data-tab-active-bar]");if(!e)return;const a=t.getBoundingClientRect(),r=t.parentElement.getBoundingClientRect();e.style.left=`${a.left-r.left}px`,e.style.width=`${a.width}px`};/*!
2 - * Lightbox Modified for fluentcart from v2.11.5 - Vanilla JS Version
3 - * Author: Lokesh Dhakar
4 - *
5 - * More info:
6 - * http://lokeshdhakar.com/projects/lightbox2/
7 - *
8 - * Copyright Lokesh Dhakar
9 - * Released under the MIT license
10 - * https://github.com/lokesh/lightbox2/blob/master/LICENSE
11 - *
12 - * @preserve
13 - */const j=class j{constructor(t={},e=[]){this.album=e,this.currentImageIndex=void 0,this.init(),this.options=j.defaults,this.option(t),this.boundSizeOverlay=this.sizeOverlay.bind(this),this.boundKeyboardAction=this.keyboardAction.bind(this)}setAlbum(t=[]){this.album=t,this.currentImageIndex=0}static get defaults(){return{albumLabel:"Image %1 of %2",alwaysShowNavOnTouchDevices:!1,fadeDuration:600,fitImagesInViewport:!0,imageFadeDuration:600,positionFromTop:50,resizeDuration:700,showImageNumberLabel:!0,wrapAround:!1,disableScrolling:!1,sanitizeTitle:!1,maxHeightPercentage:80}}get classList(){return{lightboxOverlay:"fct-lightboxOverlay",lightbox:"fct-lightbox",lbOuterContainer:"lb-outerContainer",lbContainer:"lb-container",lbImage:"lb-image",lbNav:"lb-nav",lbPrev:"lb-prev",lbPrevLink:"lb-prevLink",lbNext:"lb-next",lbNextLink:"lb-nextLink",lbLoader:"lb-loader",lbCancel:"lb-cancel",lbDataContainer:"lb-dataContainer",lbData:"lb-data",lbDetails:"lb-details",lbCaption:"lb-caption",lbNumber:"lb-number",lbNumbers:"lb-numbers",lbCloseContainer:"lb-closeContainer",lbClose:"lb-close",lbDisableScrolling:"lb-disable-scrolling"}}extend(t,e){for(const a in e)e.hasOwnProperty(a)&&(t[a]=e[a])}fadeIn(t,e,a){t.style.opacity=0,t.style.display="flex";let r=null;const o=n=>{r||(r=n);const d=(n-r)/e;t.style.opacity=Math.min(d,1),d<1?requestAnimationFrame(o):a&&a()};requestAnimationFrame(o)}fadeOut(t,e,a){let r=null;const o=n=>{r||(r=n);const d=(n-r)/e;t.style.opacity=Math.max(1-d,0),d<1?requestAnimationFrame(o):(t.style.display="none",a&&a())};requestAnimationFrame(o)}animate(t,e,a,r){const o={},n={};for(const f in e){const A=getComputedStyle(t);o[f]=parseFloat(A[f])||0,n[f]=parseFloat(e[f])}let d=null;const u=f=>{d||(d=f);const A=Math.min((f-d)/a,1),C=.5-Math.cos(A*Math.PI)/2;for(const L in e){const T=o[L]+(n[L]-o[L])*C;t.style[L]=T+"px"}A<1?requestAnimationFrame(u):r&&r()};requestAnimationFrame(u)}option(t){this.extend(this.options,t)}imageCountLabel(t,e){return this.options.albumLabel.replace(/%1/g,t).replace(/%2/g,e)}init(){}shouldBuild(){return j.isBuiltOnce===!1?(j.isBuiltOnce=!0,!0):!1}ensureTemplateExist(){const t=this.classList;if(this.shouldBuild()){const e=`<div id="${t.lightboxOverlay}" tabindex="-1" class="${t.lightboxOverlay}"></div>
14 - <div id="${t.lightbox}" tabindex="-1" class="${t.lightbox}">
15 - <div class="${t.lbOuterContainer}">
16 - <div class="${t.lbContainer}">
17 - <img class="${t.lbImage}" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" alt=""/>
18 - <div class="${t.lbNav}">
19 - <div class="${t.lbCloseContainer}">
20 - <a class="${t.lbClose}" role="button" tabindex="0">
21 - <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><path fill="currentColor" d="M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"></path></svg>
22 - </a>
23 - </div>
24 - <a class="${t.lbPrev}" role="button" tabindex="0" aria-label="Previous image" href="" ></a>
25 - <a class="${t.lbNext}" role="button" tabindex="0" aria-label="Next image" href="" ></a>
26 - </div>
27 - <div class="${t.lbLoader}">
28 - <a class="${t.lbCancel}" role="button" tabindex="0">
29 - <span class="lb-spinner"></span>
30 - </a>
31 - </div>
32 - </div>
33 - </div>
34 - <div class="${t.lbDataContainer}">
35 - <div class="${t.lbData}">
36 - <div class="${t.lbDetails}">
37 - <span class="${t.lbCaption}"></span>
38 - <span class="${t.lbNumber}"></span>
39 - </div>
40 - </div>
41 - </div>
42 - </div>`;document.body.insertAdjacentHTML("beforeend",e)}}build(){this.ensureTemplateExist();const t=this.classList;this.lightbox=document.getElementById(t.lightbox),this.overlay=document.getElementById(t.lightboxOverlay),this.outerContainer=this.lightbox.querySelector(`.${t.lbOuterContainer}`),this.container=this.lightbox.querySelector(`.${t.lbContainer}`),this.image=this.lightbox.querySelector(`.${t.lbImage}`),this.nav=this.lightbox.querySelector(`.${t.lbNav}`);const e=getComputedStyle(this.container);this.containerPadding={top:parseInt(e.paddingTop,10),right:parseInt(e.paddingRight,10),bottom:parseInt(e.paddingBottom,10),left:parseInt(e.paddingLeft,10)};const a=getComputedStyle(this.image);if(this.imageBorderWidth={top:parseInt(a.borderTopWidth,10),right:parseInt(a.borderRightWidth,10),bottom:parseInt(a.borderBottomWidth,10),left:parseInt(a.borderLeftWidth,10)},this._eventsAttached)return;this._eventsAttached=!0,this.overlay.style.display="none",this.overlay.addEventListener("click",()=>{this.end()}),this.lightbox.style.display="none",this.lightbox.addEventListener("click",o=>{o.target.id===t.lightbox&&this.end()}),this.outerContainer.addEventListener("click",o=>{o.target.id===t.lightbox&&this.end()}),this.lightbox.querySelector(`.${t.lbPrev}`).addEventListener("click",o=>{o.preventDefault(),this.currentImageIndex===0?this.changeImage(this.album.length-1):this.changeImage(this.currentImageIndex-1)}),this.lightbox.querySelector(`.${t.lbNext}`).addEventListener("click",o=>{o.preventDefault(),this.currentImageIndex===this.album.length-1?this.changeImage(0):this.changeImage(this.currentImageIndex+1)}),this.nav.addEventListener("mousedown",o=>{if(o.which===3){this.nav.style.pointerEvents="none";const n=()=>{setTimeout(()=>{this.nav.style.pointerEvents="auto"},0),this.lightbox.removeEventListener("contextmenu",n)};this.lightbox.addEventListener("contextmenu",n)}}),this.lightbox.querySelectorAll(`.${t.lbLoader}, .${t.lbClose}`).forEach(o=>{o.addEventListener("click",n=>(this.end(),!1)),o.addEventListener("keyup",n=>{if(n.which===13||n.which===32)return this.end(),!1})})}start(t=0,e=null){this.build(),window.addEventListener("resize",this.boundSizeOverlay),this.sizeOverlay();const a=window.pageYOffset+this.options.positionFromTop,r=window.pageXOffset;this.lightbox.style.top=a+"px",this.lightbox.style.left=r+"px",this.fadeIn(this.lightbox,this.options.fadeDuration),document.body.style.overflow="hidden",this.options.disableScrolling&&document.body.classList.add(this.classList.lbDisableScrolling),this.changeImage(t),typeof e=="function"&&e()}changeImage(t){const e=this.classList,a=this,r=this.album[t].link,o=r.split(".").slice(-1)[0];this.disableKeyboardNav(),this.fadeIn(this.overlay,this.options.fadeDuration);const n=this.lightbox.querySelector(`.${e.lbLoader}`);this.fadeIn(n,500),this.lightbox.querySelectorAll(`.${e.lbImage}, .${e.lbNav}, .${e.lbPrev}, .${e.lbNext}, .${e.lbDataContainer}, .${e.lbNumbers}, .${e.lbCaption}`).forEach(f=>f.style.display="none"),this.outerContainer.classList.add("animating");const u=new Image;u.onload=()=>{setTimeout(()=>{this.onImageLoaded(u,t,a,r,o)},300)},u.src=this.album[t].link,this.currentImageIndex=t}onImageLoaded(t,e,a,r,o){let n,d,u,f,A,C;const L=this.lightbox.querySelector(`.${this.classList.lbImage}`);L.setAttribute("alt",a.album[e].alt),L.setAttribute("src",r),L.style.width=t.width+"px",L.style.height=t.height+"px";const T=t.width/t.height;C=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,A=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;const O=this.options.maxHeightPercentage||80,J=A*O/100;if(f=C-a.containerPadding.left-a.containerPadding.right-a.imageBorderWidth.left-a.imageBorderWidth.right-20,u=Math.min(J-a.containerPadding.top-a.containerPadding.bottom-a.imageBorderWidth.top-a.imageBorderWidth.bottom,A-a.containerPadding.top-a.containerPadding.bottom-a.imageBorderWidth.top-a.imageBorderWidth.bottom-a.options.positionFromTop-70),o==="svg"?(T>=1?(d=f,n=parseInt(f/T,10)):(d=parseInt(u/T,10),n=u),n>u&&(n=u,d=parseInt(u*T,10)),L.style.width=d+"px",L.style.height=n+"px"):(a.options.fitImagesInViewport?(a.options.maxWidth&&a.options.maxWidth<f&&(f=a.options.maxWidth),a.options.maxHeight&&a.options.maxHeight<u&&(u=a.options.maxHeight)):(f=a.options.maxWidth||t.width||f,u=a.options.maxHeight||t.height||u),(t.width>f||t.height>u)&&(t.width/f>t.height/u?(d=f,n=parseInt(t.height/(t.width/d),10),n>u&&(n=u,d=parseInt(t.width/(t.height/n),10))):(n=u,d=parseInt(t.width/(t.height/n),10),d>f&&(d=f,n=parseInt(t.height/(t.width/d),10))),L.style.width=d+"px",L.style.height=n+"px")),n+a.containerPadding.top+a.containerPadding.bottom+a.imageBorderWidth.top+a.imageBorderWidth.bottom+a.options.positionFromTop+70>A){const B=A-a.containerPadding.top-a.containerPadding.bottom-a.imageBorderWidth.top-a.imageBorderWidth.bottom-a.options.positionFromTop-70,R=B/n;n=B,d=Math.floor(d*R),L.style.width=d+"px",L.style.height=n+"px"}a.sizeContainer(parseInt(L.style.width),parseInt(L.style.height))}sizeOverlay(){setTimeout(()=>{this.overlay.style.width=Math.max(document.body.scrollWidth,document.body.offsetWidth,document.documentElement.clientWidth,document.documentElement.scrollWidth,document.documentElement.offsetWidth)+"px",this.overlay.style.height=window.innerHeight+"px"},0)}sizeContainer(t,e){const a=this.outerContainer.offsetWidth,r=this.outerContainer.offsetHeight,o=t+this.containerPadding.left+this.containerPadding.right+this.imageBorderWidth.left+this.imageBorderWidth.right,n=e+this.containerPadding.top+this.containerPadding.bottom+this.imageBorderWidth.top+this.imageBorderWidth.bottom,d=()=>{this.lightbox.querySelector(`.${this.classList.lbDataContainer}`).style.width=o+"px";const u=this.lightbox.querySelector(`.${this.classList.lbPrevLink}`),f=this.lightbox.querySelector(`.${this.classList.lbNextLink}`);u&&(u.style.height=n+"px"),f&&(f.style.height=n+"px"),this.overlay.focus(),this.showImage()};a!==o||r!==n?this.animate(this.outerContainer,{width:o,height:n},this.options.resizeDuration,d):d()}showImage(){const t=this.lightbox.querySelector(`.${this.classList.lbLoader}`);t.style.display="none",this.fadeIn(this.lightbox.querySelector(`.${this.classList.lbImage}`),this.options.imageFadeDuration),this.updateNav(),this.updateDetails(),this.preloadNeighboringImages(),this.enableKeyboardNav()}updateNav(){let t=!1;try{document.createEvent("TouchEvent"),t=!!this.options.alwaysShowNavOnTouchDevices}catch{}if(this.lightbox.querySelector(`.${this.classList.lbNav}`).style.display="block",this.album.length>1)if(this.options.wrapAround)t&&(this.lightbox.querySelector(`.${this.classList.lbPrev}`).style.opacity="1"),this.lightbox.querySelector(`.${this.classList.lbPrev}`).style.display="block",this.lightbox.querySelector(`.${this.classList.lbNext}`).style.display="block";else{if(this.currentImageIndex>0){const e=this.lightbox.querySelector(`.${this.classList.lbPrev}`);e.style.display="block",t&&(e.style.opacity="1")}if(this.currentImageIndex<this.album.length-1){const e=this.lightbox.querySelector(`.${this.classList.lbNext}`);e.style.display="block",t&&(e.style.opacity="1")}}}updateDetails(){if(typeof this.album[this.currentImageIndex].title<"u"&&this.album[this.currentImageIndex].title!==""){const t=this.lightbox.querySelector(".lb-caption");this.options.sanitizeTitle?t.textContent=this.album[this.currentImageIndex].title:t.innerHTML=this.album[this.currentImageIndex].title,this.fadeIn(t,300)}if(this.album.length>1&&this.options.showImageNumberLabel){const t=this.imageCountLabel(this.currentImageIndex+1,this.album.length),e=this.lightbox.querySelector(`.${this.classList.lbNumber}`);e.textContent=t,this.fadeIn(e,300)}else this.lightbox.querySelector(`.${this.classList.lbNumber}`).style.display="none";this.outerContainer.classList.remove("animating"),this.fadeIn(this.lightbox.querySelector(`.${this.classList.lbDataContainer}`),this.options.resizeDuration,()=>this.sizeOverlay())}preloadNeighboringImages(){if(this.album.length>this.currentImageIndex+1){const t=new Image;t.src=this.album[this.currentImageIndex+1].link}if(this.currentImageIndex>0){const t=new Image;t.src=this.album[this.currentImageIndex-1].link}}enableKeyboardNav(){document.addEventListener("keyup",this.boundKeyboardAction),this.lightbox.addEventListener("keyup",this.boundKeyboardAction),this.overlay.addEventListener("keyup",this.boundKeyboardAction)}disableKeyboardNav(){document.removeEventListener("keyup",this.boundKeyboardAction),this.lightbox.removeEventListener("keyup",this.boundKeyboardAction),this.overlay.removeEventListener("keyup",this.boundKeyboardAction)}keyboardAction(t){const o=t.keyCode;o===27?(t.stopPropagation(),this.end()):o===37?this.currentImageIndex!==0?this.changeImage(this.currentImageIndex-1):this.options.wrapAround&&this.album.length>1&&this.changeImage(this.album.length-1):o===39&&(this.currentImageIndex!==this.album.length-1?this.changeImage(this.currentImageIndex+1):this.options.wrapAround&&this.album.length>1&&this.changeImage(0))}end(){this.disableKeyboardNav(),window.removeEventListener("resize",this.boundSizeOverlay),this.fadeOut(this.lightbox,this.options.fadeDuration),this.fadeOut(this.overlay,this.options.fadeDuration),document.body.style.overflow="inherit",this.options.disableScrolling&&document.body.classList.remove(this.classList.lbDisableScrolling),setTimeout(()=>{const t=document.getElementById("lightbox"),e=document.getElementById("lightboxOverlay");t&&t.remove(),e&&e.remove(),this._eventsAttached=!1},this.options.fadeDuration)}};Qt(j,"isBuiltOnce",!1);let xt=j;const jt=new WeakMap;window.addEventListener("fluent_cart_app_loaded",function(I){document.querySelectorAll("[data-fluent-cart-product-gallery-wrapper]").forEach((t,e)=>{new window.FluentCartImageGallery().init(t)})});window.addEventListener("fluentCartSingleProductModalOpened",function(I){let t=!1;window.fluentcart_single_product_vars&&window.fluentcart_single_product_vars.enable_image_zoom_in_modal==="yes"&&(t=!0),document.querySelectorAll("[data-fluent-cart-product-gallery-wrapper]").forEach((e,a)=>{new window.FluentCartImageGallery().init(e,t)})});var P,F,H,E,S,lt,M,k,it,at,W,N,Y,V,h,ee,At,ft,ie,ae,se,ne,Lt,re,Ct,oe,Et,$e,le,de,ce,mt,he,U,St,pt,kt,_t,ue,rt,fe,me;class Oe{constructor(){y(this,h);y(this,P);y(this,F);y(this,H);y(this,E);y(this,S,0);y(this,lt);y(this,M);y(this,k);y(this,it);y(this,at,"all");y(this,W,null);y(this,N,null);y(this,Y,null);y(this,V,0)}init(t,e=!0){var a,r;(a=jt.get(t))==null||a.abort(),(r=i(this,W))==null||r.abort(),g(this,W,new AbortController),jt.set(t,i(this,W)),this.container=t,g(this,it,this.container.getAttribute("data-product-id")),g(this,at,this.container.getAttribute("data-thumbnail-mode")||"all"),g(this,lt,e),g(this,M,this.findInContainer("[data-fluent-cart-thumb-control-button]")),g(this,k,this.findOneInContainer("[data-fluent-cart-single-product-page-product-thumbnail-controls]")),g(this,P,this.findOneInContainer("[data-fluent-cart-single-product-page-product-thumbnail]")),l(this,h,ae).call(this),l(this,h,ee).call(this),l(this,h,se).call(this),l(this,h,oe).call(this),l(this,h,ne).call(this),l(this,h,le).call(this),l(this,h,ce).call(this),l(this,h,fe).call(this),l(this,h,me).call(this)}updateGalleryByVariation(t=0){if(i(this,at)==="all"){if(i(this,N))return;this.findInContainer("[data-fluent-cart-thumb-control-button]").forEach(o=>o.classList.remove("is-hidden"));return}const e=this.findInContainer(`[data-fluent-cart-thumb-control-button][data-variation-id="${t}"]`);e.length>0&&(this.findInContainer(`[data-fluent-cart-thumb-control-button][data-variation-id]:not([data-variation-id="${t}"])`).forEach(o=>o.classList.add("is-hidden")),e.forEach(o=>o.classList.remove("is-hidden"))),this.findInContainer('[data-fluent-cart-thumb-control-button][data-variation-id="0"]').forEach(r=>r.classList.remove("is-hidden"))}findInContainer(t){return this.container.querySelectorAll(t)}findOneInContainer(t){return this.container.querySelector(t)}}P=new WeakMap,F=new WeakMap,H=new WeakMap,E=new WeakMap,S=new WeakMap,lt=new WeakMap,M=new WeakMap,k=new WeakMap,it=new WeakMap,at=new WeakMap,W=new WeakMap,N=new WeakMap,Y=new WeakMap,V=new WeakMap,h=new WeakSet,ee=function(){const a=(this.container.closest("[data-fluent-cart-single-product-page]")||document).querySelector("[data-primary-group-id]");if(!a)return;const r=parseInt(a.getAttribute("data-primary-group-id")||"0",10);if(!r)return;let o={},n={};try{o=JSON.parse(a.getAttribute("data-attribute-config")||"{}"),n=JSON.parse(a.getAttribute("data-variation-map")||"{}")}catch{return}const d=(o[String(r)]||[]).map(Number);if(!d.length)return;const u={};d.forEach(C=>{u[C]=[]}),Object.entries(n).forEach(([C,L])=>{const T=C.split("_").map(Number);d.forEach(O=>{T.includes(O)&&u[O].push(Number(L))})}),g(this,N,u);try{const C=i(this,k)?i(this,k).getAttribute("data-variant-first-media-map"):null;C&&g(this,Y,JSON.parse(C))}catch{g(this,Y,null)}let f=0;const A=a.querySelector(`.fct-swatch-item[data-group-id="${r}"].selected, .fct-swatch-item[data-group-id="${r}"][aria-checked="true"]`);if(A&&(f=parseInt(A.getAttribute("data-term-id")||"0",10)),!f){const C=a.querySelector(`[data-attribute-group="${r}"] [data-fct-select-option][aria-selected="true"]`);C&&(f=parseInt(C.getAttribute("data-value")||"0",10))}f&&l(this,h,At).call(this,f)},At=function(t){if(!i(this,N))return;g(this,V,Number(t));const e=l(this,h,mt).call(this);if(!e.length)return;if(!i(this,V)){l(this,h,U).call(this,e[0]);return}const a=new Set((i(this,N)[i(this,V)]||[]).map(String)),r=a.size?e.find(o=>a.has(o.getAttribute("data-variation-id")||"")):null;r?l(this,h,U).call(this,r):l(this,h,ft).call(this)},ft=function(){var r;const t=this.findOneInContainer("[data-fluent-cart-single-product-page-product-thumbnail]");if(!t)return;const e=t.dataset.defaultImageUrl;if(!e)return;const a=(r=l(this,h,pt).call(this))==null?void 0:r.dataset.fctVideoDefault;a?l(this,h,_t).call(this,a,{play:!1}):l(this,h,rt).call(this),t.setAttribute("src",e),i(this,M).forEach(o=>{const n=a&&o.dataset.fctVideoMediaId===String(a);o.classList.toggle("active",!!n),o.setAttribute("aria-pressed",n?"true":"false"),o.setAttribute("tabindex",n?"0":"-1")})},ie=function(t){var o,n;const e=l(this,h,mt).call(this);if(!e.length)return;if(i(this,Y)){const d=i(this,Y)[String(t)];if(!d){l(this,h,ft).call(this);return}let u=null;d.id>0&&(u=e.find(f=>f.getAttribute("data-media-id")===String(d.id))),u||(u=e.find(f=>f.getAttribute("data-url")===d.url)),u?l(this,h,U).call(this,u):l(this,h,ft).call(this);return}const a=(o=i(this,E))==null?void 0:o[String(t)],r=((n=a==null?void 0:a[0])==null?void 0:n.link)??null;if(r){const d=e.find(u=>u.getAttribute("data-url")===r);d&&l(this,h,U).call(this,d)}},ae=function(){const t=i(this,W).signal;let e=null,a=null,r=!1;const o=()=>{r=!1,a!==null?l(this,h,ie).call(this,a):e!==null&&l(this,h,At).call(this,e),e=null,a=null};window.addEventListener("fluentCartSingleProductVariationChanged",n=>{var f;if(n.detail.productId!=i(this,it))return;if(g(this,S,n.detail.variationId),i(this,N)){a=i(this,S),e=null,r||(r=!0,requestAnimationFrame(o));return}this.updateGalleryByVariation(i(this,S));const u=(f=i(this,k))==null?void 0:f.querySelectorAll(`[data-fluent-cart-thumb-control-button][data-variation-id="${i(this,S)}"]`);l(this,h,de).call(this,u)},{signal:t}),window.addEventListener("fluentCartAdvVariationImageChanged",n=>{if(n.detail.productId!=i(this,it))return;if(i(this,N)){e=n.detail.termId,a=null,r||(r=!0,requestAnimationFrame(o));return}const d=this.findOneInContainer("[data-fluent-cart-single-product-page-product-thumbnail]");d&&(l(this,h,rt).call(this),d.setAttribute("src",n.detail.url))},{signal:t})},se=function(){var a,r,o,n;const t=(a=i(this,k))==null?void 0:a.querySelectorAll("[data-fluent-cart-thumb-control-button]:not(.is-hidden)"),e=(r=i(this,k))==null?void 0:r.querySelector(".active[data-fluent-cart-thumb-control-button]:not(.is-hidden)");e?g(this,S,e.dataset.variationId):g(this,S,((n=(o=t==null?void 0:t[0])==null?void 0:o.dataset)==null?void 0:n.variationId)||0),this.updateGalleryByVariation(i(this,S))},ne=function(){i(this,P)&&i(this,P).removeEventListener("click",l(this,h,Lt).bind(this)),g(this,F,new xt({},[])),i(this,P)&&i(this,P).addEventListener("click",l(this,h,Lt).bind(this))},Lt=function(t){const e=i(this,P).parentElement,a=e.style.position,r=!a||a==="",o=document.querySelector("[data-fluent-cart-shop-app-single-product-modal]");o&&window.FluentCartSingleProductModal.closeModal(o),r&&(e.style.position="relative");const n=document.createElement("div");n.style.position="fixed",n.style.top="0",n.style.left="0",n.style.right="0",n.style.bottom="0",n.style.zIndex="99999",document.body.appendChild(n),i(this,H)&&i(this,H).closezoom&&i(this,H).closezoom(),setTimeout(()=>{n.parentNode&&n.parentNode.removeChild(n),r&&(e.style.position="")},1e3);const d=t.target;let u=l(this,h,re).call(this);const f=l(this,h,Et).call(this,u,d.getAttribute("src"));f>-1&&(i(this,F).setAlbum(u),i(this,F).start(f,()=>{}))},re=function(){if(i(this,at)==="all"){if(i(this,V)&&i(this,N)){const t=new Set((i(this,N)[i(this,V)]||[]).map(String));if(t.size){const e=new Set,a=[];if(Object.entries(i(this,E)).forEach(([r,o])=>{(t.has(r)||r==="0")&&o.forEach(n=>{e.has(n.link)||(e.add(n.link),a.push(n))})}),a.length>0)return a}}return l(this,h,Ct).call(this)}else{let t=i(this,E)[i(this,S)],e=i(this,E)[0];return t&&e&&(t=[...t,...e]),(!t||t.length===0)&&(t=i(this,E)[0]),t}},Ct=function(){const t=[],e=new Set,a=(r,o)=>{const n=String(r);e.has(n)||(e.add(n),Array.isArray(o)&&o.forEach(d=>t.push(d)))};return i(this,S)&&i(this,E)[i(this,S)]&&a(i(this,S),i(this,E)[i(this,S)]),i(this,E)[0]&&a("0",i(this,E)[0]),Object.keys(i(this,E)).forEach(r=>{a(r,i(this,E)[r])}),t.length>0?t:i(this,E)[0]||[]},oe=function(){window.fluentcart_single_product_vars.enable_image_zoom==="yes"&&i(this,lt)&&i(this,H)==null&&i(this,P)&&(window.onload=function(){},g(this,H,xZoom(i(this,P),{tint:!1,Yoffset:120,zoomWidth:500,zoomHeight:400,position:"inside",lensSize:300})))},Et=function(t,e){return Array.isArray(t)?t.findIndex(a=>a.link===e):-1},$e=function(){return window.matchMedia("(hover: hover) and (pointer: fine)").matches},le=function(){var a;const t={},e=(a=i(this,k))==null?void 0:a.getAttribute("data-all-gallery-images");if(e)try{const r=JSON.parse(e),o=this.findInContainer("[data-fluent-cart-thumb-control-button]:not([data-fct-video-media-id])").length;if(r.length>o){r.forEach(n=>{const d=n.variation_id!=null&&n.variation_id!==""?String(n.variation_id):"0";t.hasOwnProperty(d)||(t[d]=[]),t[d].push({alt:n.title||"",link:n.url,title:n.title||""})}),g(this,E,t);return}}catch{}i(this,M).length>0&&i(this,M).forEach((r,o)=>{const n=r.dataset.variationId.toString(),d=r.querySelector("[data-fluent-cart-single-product-page-product-thumbnail-controls-thumb]");d&&(t.hasOwnProperty(n)||(t[n]=[]),l(this,h,Et).call(this,t[n],d.src)===-1&&t[n].push({alt:d.alt,link:d.src,title:d.alt}))}),g(this,E,t)},de=function(t){if(i(this,M).forEach(e=>e.classList.remove("active")),t&&t.length>0){const e=t[0];e.click(),e.classList.add("active"),l(this,h,St).call(this,e)}},ce=function(){this.findInContainer("[data-fluent-cart-thumb-control-button]").forEach(t=>{t.addEventListener("click",()=>{l(this,h,U).call(this,t)})}),i(this,k)&&i(this,k).addEventListener("keydown",t=>{l(this,h,he).call(this,t)})},mt=function(){var t;return Array.from(((t=i(this,k))==null?void 0:t.querySelectorAll("[data-fluent-cart-thumb-control-button]:not(.is-hidden)"))||[])},he=function(t){const e=this.container.classList.contains("thumb-pos-left")||this.container.classList.contains("thumb-pos-right"),a=e?["ArrowDown"]:["ArrowRight"],r=e?["ArrowUp"]:["ArrowLeft"],o=a.includes(t.key)||!e&&t.key==="ArrowDown",n=r.includes(t.key)||!e&&t.key==="ArrowUp";if(!o&&!n)return;t.preventDefault();const d=l(this,h,mt).call(this);if(d.length===0)return;const u=d.indexOf(document.activeElement);let f;o?f=u<d.length-1?u+1:0:f=u>0?u-1:d.length-1;const A=d[f];A.focus(),l(this,h,U).call(this,A)},U=function(t){i(this,M).forEach(a=>{a.classList.remove("active"),a.setAttribute("aria-pressed","false"),a.setAttribute("tabindex","-1")}),t.classList.add("active"),t.setAttribute("aria-pressed","true"),t.setAttribute("tabindex","0");const e=t.dataset.variationId;e!==void 0&&t.dataset.fctVideoMediaId===void 0&&g(this,S,e),l(this,h,St).call(this,t)},St=function(t){const e=this.findOneInContainer("[data-fluent-cart-single-product-page-product-thumbnail]");if(!e)return;if(t.dataset.fctVideoMediaId!==void 0){l(this,h,_t).call(this,t.dataset.fctVideoMediaId);return}l(this,h,rt).call(this);let a=t.dataset.url;a===void 0&&(a=e.dataset.defaultImageUrl),e.setAttribute("src",a)},pt=function(){var t;return((t=this.findOneInContainer("[data-fct-product-gallery-video]"))==null?void 0:t.closest(".fct-product-gallery-thumb"))||null},kt=function(t){const e=t.querySelector("media-player");if(e&&typeof e.pause=="function")try{e.pause()}catch{}},_t=function(t,{play:e=!0}={}){const a=l(this,h,pt).call(this),r=a?[...a.querySelectorAll("[data-fct-product-gallery-video]")]:[],o=r.find(n=>n.dataset.fctVideoMediaId===String(t));if(!o){l(this,h,rt).call(this);return}r.forEach(n=>{const d=n===o;n.classList.toggle("is-active",d),d||l(this,h,kt).call(this,n)}),a.classList.add("is-video-active"),e&&l(this,h,ue).call(this,o)},ue=function(t){const e=t.querySelector("media-player");if(e&&(e.hasAttribute("data-fp-load-deferred")&&typeof e.startLoading=="function"&&e.startLoading(),typeof e.play=="function"))try{const a=e.play();a&&typeof a.catch=="function"&&a.catch(()=>{})}catch{}},rt=function(){const t=l(this,h,pt).call(this);!t||!t.classList.contains("is-video-active")||(t.classList.remove("is-video-active"),t.querySelectorAll("[data-fct-product-gallery-video]").forEach(e=>{e.classList.remove("is-active"),l(this,h,kt).call(this,e)}))},fe=function(){if(!(this.container.getAttribute("data-scrollable-thumbs")==="yes")||!i(this,k)||!(this.container.classList.contains("thumb-pos-left")||this.container.classList.contains("thumb-pos-right")))return;const a=()=>{const o=this.findOneInContainer(".fct-product-gallery-thumb");o&&i(this,k)&&(i(this,k).style.maxHeight=o.offsetHeight+"px")},r=i(this,P);r&&r.tagName==="IMG"&&(r.complete?a():r.addEventListener("load",a,{once:!0,signal:i(this,W).signal})),window.addEventListener("resize",a,{signal:i(this,W).signal})},me=function(){const t=this.findOneInContainer("[data-fluent-cart-gallery-see-more]");t&&t.addEventListener("click",()=>{const e=l(this,h,Ct).call(this);if(!e||e.length===0)return;const a=this.findInContainer("[data-fluent-cart-thumb-control-button]:not(.is-hidden):not([data-fct-video-media-id])").length,r=Math.min(a,e.length-1);i(this,F).setAlbum(e),i(this,F).start(r,()=>{})},{signal:i(this,W).signal})};window.FluentCartImageGallery=Oe;document.addEventListener("DOMContentLoaded",()=>{var t,e,a,r,o,n,d,u,f,A,C,L,T,O,J,B,R,Q,st,m,pe,qt,Pe,ge,be,gt,ye,ve,Ie,we,ot,Tt,bt,xe,Ae,Le,Ot,Ce,Ee,Se,De,Ne,ke,$t;const dt=class dt{constructor(){y(this,m);y(this,e);y(this,a);y(this,r);y(this,o);y(this,n);y(this,d);y(this,u);y(this,f);y(this,A);y(this,C);y(this,L);y(this,T);y(this,O,0);y(this,J);y(this,B);y(this,R);y(this,Q);y(this,st)}toTitleCase(s){return s.replace(/\w\S*/g,function(c){return c.charAt(0).toUpperCase()+c.substr(1).toLowerCase()})}$t(s){return window.fluentcart_single_product_vars.trans[s]||s}findInContainer(s){return i(this,e).querySelectorAll(s)}findOneInContainer(s){return i(this,e).querySelector(s)}init(s,c){g(this,T,c),g(this,e,s),g(this,a,this.findInContainer("[data-fluent-cart-product-variant]")),g(this,R,i(this,e).getAttribute("data-product-id")),g(this,n,this.findOneInContainer("[data-fluent-cart-product-qty-increase-button]")),g(this,d,this.findOneInContainer("[data-fluent-cart-product-qty-decrease-button]")),g(this,r,this.findOneInContainer("[data-fluent-cart-single-product-page-product-quantity-input]")),g(this,o,this.findOneInContainer("[data-fluent-cart-product-quantity-container]")),g(this,u,this.findInContainer("[data-fluent-cart-add-to-cart-button]")),g(this,f,this.findInContainer("[data-fluent-cart-direct-checkout-button]")),g(this,A,this.findInContainer("[data-fluent-cart-thumb-control-button]")),g(this,C,this.findOneInContainer("[data-fluent-cart-single-product-page-product-thumbnail-controls]")),g(this,J,this.findOneInContainer("[data-fluent-cart-product-item-price]")),g(this,B,this.findOneInContainer("[data-fluent-cart-product-payment-type]")),g(this,Q,this.findOneInContainer("[data-fluent-cart-product-pricing-section]")),l(this,m,xe).call(this),l(this,m,Ae).call(this),l(this,m,Le).call(this),l(this,m,Ce).call(this),g(dt,t,this),window.fluentCartSingleProduct=this;const b=this.findOneInContainer(".fct-advanced-variation-wrap"),p=(window.FluentCartVariationControllers||{}).advanced||null;return b&&p?(g(this,st,new p),i(this,st).init(b)):l(this,m,Ie).call(this),l(this,m,be).call(this),l(this,m,ge).call(this),l(this,m,qt).call(this),l(this,m,pe).call(this),this}selectVariation(s){const b=i(this,e).closest(".fct-product-summary")||i(this,e).closest(".product-info-block-wrapper")||i(this,e).parentElement||i(this,Q);b.querySelectorAll(".fluent-cart-product-variation-content[data-variation-id]").forEach(p=>p.classList.add("is-hidden")),b.querySelectorAll(`.fluent-cart-product-variation-content[data-variation-id="${s}"]`).forEach(p=>p.classList.remove("is-hidden")),window.dispatchEvent(new CustomEvent("fluentCartSingleProductVariationChanged",{detail:{productId:i(this,R),variationId:s}}))}updateGalleryByVariation(s=0){const c=document.querySelectorAll(`[data-fluent-cart-thumb-control-button][data-variation-id="${s}"]`);c.length>0?(document.querySelectorAll(`[data-fluent-cart-thumb-control-button][data-variation-id]:not([data-variation-id="${s}"])`).forEach(p=>p.classList.add("is-hidden")),c.forEach(p=>p.classList.remove("is-hidden"))):document.querySelectorAll('[data-fluent-cart-thumb-control-button][data-variation-id="0"]').forEach(p=>p.classList.remove("is-hidden"))}};t=new WeakMap,e=new WeakMap,a=new WeakMap,r=new WeakMap,o=new WeakMap,n=new WeakMap,d=new WeakMap,u=new WeakMap,f=new WeakMap,A=new WeakMap,C=new WeakMap,L=new WeakMap,T=new WeakMap,O=new WeakMap,J=new WeakMap,B=new WeakMap,R=new WeakMap,Q=new WeakMap,st=new WeakMap,m=new WeakSet,pe=function(){window.addEventListener("resize",s=>{l(this,m,qt).call(this)})},qt=function(){const s=document.querySelector(".fluent-cart-single-product-page");s&&(s.offsetWidth<=815?s.classList.add("is-mobile"):s.classList.remove("is-mobile"))},Pe=function(s,c){return Array.isArray(s)?s.findIndex(b=>b.link===c):-1},ge=function(){this.findOneInContainer("[data-fluent-cart-product-tab]")&&(g(this,L,new Te(i(this,e))),i(this,L).init())},be=function(){var Pt,Dt,Nt,Wt,Bt,Mt,zt,Ft,Ht,Vt,Rt,Kt,Gt,Ut,Yt;const s=this.findOneInContainer(".selected[data-fluent-cart-product-variant]"),c=s==null?void 0:s.dataset.cartId;s==null||s.dataset.itemPrice,s==null||s.dataset.subscriptionTerms;const b=s==null?void 0:s.dataset.paymentType;let p=(Pt=window.fluentcart_single_product_vars)==null?void 0:Pt.in_stock_status,w=s==null?void 0:s.dataset.stockManagement,v=p;w==="yes"&&(v=s==null?void 0:s.dataset.itemStock);const _=(Dt=i(this,f)[0])==null?void 0:Dt.dataset.stockAvailability;if(_===((Nt=window.fluentcart_single_product_vars)==null?void 0:Nt.out_of_stock_status)&&(v=_),c!==void 0&&(i(this,u).forEach(G=>{G.setAttribute("data-cart-id",c)}),l(this,m,gt).call(this,c,v)),c===void 0&&i(this,a).length===0){const G=(Wt=i(this,f)[0])==null?void 0:Wt.dataset.cartId,ht=(Bt=i(this,f)[0])==null?void 0:Bt.dataset.stockAvailability;l(this,m,gt).call(this,G,ht)}const D=(Mt=i(this,C))==null?void 0:Mt.querySelectorAll("[data-fluent-cart-thumb-control-button]:not(.is-hidden)"),K=(zt=i(this,Q))==null?void 0:zt.querySelector("[data-fluent-cart-product-variant].selected");K?g(this,O,((Ft=K==null?void 0:K.dataset)==null?void 0:Ft.cartId)||0):g(this,O,((Ht=D==null?void 0:D.dataset)==null?void 0:Ht.variationId)||0),l(this,m,we).call(this,D);const x=new URL(window.location.href).searchParams;if(x.has("selected")){const G=x.get("selected"),ht=this.findOneInContainer(`[data-fluent-cart-product-variant][data-cart-id="${G}"]`);ht&&l(this,m,ot).call(this,ht)}l(this,m,Se).call(this),l(this,m,Ee).call(this);const ct=((Vt=i(this,a)[0])==null?void 0:Vt.dataset.paymentType)||((Rt=i(this,o))==null?void 0:Rt.dataset.paymentType),vt=((Kt=i(this,f)[0])==null?void 0:Kt.dataset.variationType)||((Gt=i(this,o))==null?void 0:Gt.dataset.variationType);ct==="subscription"&&vt==="simple"&&((Ut=i(this,B))==null||Ut.classList.remove("is-hidden")),b==="subscription"&&((Yt=i(this,B))==null||Yt.classList.remove("is-hidden")),(s==null?void 0:s.dataset.cartId)===(s==null?void 0:s.dataset.defaultVariationId)&&i(this,A).forEach(G=>{G.classList.remove("is-hidden")}),l(this,m,bt).call(this,v)},gt=function(s,c){var p;const b=(((p=window.fluentcart_single_product_vars)==null?void 0:p.out_of_stock_status)||"").toString();i(this,f).forEach(w=>{if(c!==b){const v=w.dataset.quantity;let _=w.getAttribute("data-url")+s+"&quantity="+v;w.setAttribute("href",_),w.setAttribute("data-cart-id",s),w.classList.remove("is-hidden")}else w.removeAttribute("href"),w.classList.add("is-hidden")})},ye=function(s){i(this,f).forEach(c=>{c.setAttribute("data-quantity",s);const b=c.getAttribute("data-cart-id");if(b){let p=c.getAttribute("data-url")+b+"&quantity="+s;c.setAttribute("href",p)}})},ve=function(s){i(this,u).forEach(c=>{c.setAttribute("data-quantity",s)})},Ie=function(){i(this,a).forEach(s=>{s.addEventListener("click",c=>{l(this,m,ot).call(this,s)}),s.addEventListener("keydown",c=>{const b=s.closest('[role="radiogroup"]');if(!b)return;const p=Array.from(b.querySelectorAll('[role="radio"]')),w=p.indexOf(s);let v=-1;switch(c.key){case"Enter":case" ":c.preventDefault(),l(this,m,ot).call(this,s);return;case"ArrowDown":case"ArrowRight":c.preventDefault(),v=(w+1)%p.length;break;case"ArrowUp":case"ArrowLeft":c.preventDefault(),v=(w-1+p.length)%p.length;break;case"Home":c.preventDefault(),v=0;break;case"End":c.preventDefault(),v=p.length-1;break;default:return}v>=0&&(p[v].focus(),l(this,m,ot).call(this,p[v]))})})},we=function(s){if(s&&s.length>0){const c=s[0];c.classList.add("active"),l(this,m,$t).call(this,c)}},ot=function(s){var K,yt;i(this,a).forEach(x=>{x.classList.remove("selected"),x.setAttribute("aria-checked","false"),x.setAttribute("tabindex","-1")}),s.setAttribute("aria-checked","true"),s.setAttribute("tabindex","0"),s.classList.add("selected");const c=s.dataset.cartId;i(this,A).forEach(x=>x.classList.remove("active")),this.selectVariation(c),l(this,m,Ot).call(this),g(this,O,c);const b=i(this,e).closest(".fct-product-summary")||i(this,e).closest(".product-info-block-wrapper")||i(this,e).parentElement;let p=(K=window.fluentcart_single_product_vars)==null?void 0:K.in_stock_status;s.dataset.stockManagement==="yes"&&(p=s.dataset.itemStock),c!==void 0&&(i(this,u).forEach(x=>x.setAttribute("data-cart-id",c)),l(this,m,gt).call(this,c,p),s.dataset.paymentType!=="subscription"&&i(this,u).forEach(x=>{x.classList.remove("is-hidden"),x.setAttribute("data-cart-id",c)})),p!==void 0&&l(this,m,bt).call(this,p);const w=window.fluentcart_single_product_vars.out_of_stock_status;s.dataset.paymentType==="subscription"&&p!==w&&i(this,u).forEach(x=>x.classList.add("is-hidden"));const v=s.dataset.sku||"",_=b==null?void 0:b.querySelector("[data-fluent-cart-product-sku]");if(_){_.textContent=v;const x=_.closest(".fct-product-sku");x&&(x.style.display=v?"":"none")}const D=s.getAttribute("aria-label")||"";D&&(i(this,f).forEach(x=>{x.setAttribute("aria-label",x.textContent.trim()+" - "+D)}),i(this,u).forEach(x=>{const ct=x.querySelector(".text"),vt=ct?ct.textContent.trim():x.textContent.trim();x.setAttribute("aria-label",vt+" - "+D)})),this.findInContainer("[data-fluent-cart-single-product-page-product-variant-price-info]").forEach(x=>x.classList.remove("selected")),(yt=this.findOneInContainer(`[data-fluent-cart-single-product-page-product-variant-price-info][data-cart-id="${c}"]`))==null||yt.classList.add("selected"),this.findInContainer(`[data-fluent-cart-single-product-page-product-quantity][data-cart-id="${c}"]`).forEach(x=>x.classList.add("selected"))},Tt=function(s,c){if(s.getAttribute("data-icon-only")==="true")return;const b=s.querySelector(".text");if(!b)return;let p=b.querySelector("span");p?p.textContent=c:b.textContent=c},bt=function(s){if(!s)return;const c=window.fluentcart_single_product_vars.out_of_stock_status,b=s===c,p=i(this,e).closest(".fct-product-summary")||i(this,e).closest(".product-info-block-wrapper")||i(this,e).parentElement,w=p==null?void 0:p.querySelector("[data-fluent-cart-product-stock]");if(w){const v=b?w.getAttribute("data-out-of-stock-text"):w.getAttribute("data-in-stock-text");v?w.textContent=v:w.innerHTML=this.$t(this.toTitleCase(s.replaceAll("-"," "))),w.className=w.className.replace(/fct_status_badge_[\w-]+/g,""),w.classList.add("fct_status_badge_"+s);const _=w.closest(".fct-product-stock");_&&(_.classList.remove("in-stock","out-of-stock"),_.classList.add(s))}b?(i(this,u).forEach(v=>{l(this,m,Tt).call(this,v,window.fluentcart_single_product_vars.out_of_stock_button_text),v.setAttribute("disabled","disabled"),v.classList.add("out-of-stock"),v.classList.remove("is-hidden")}),i(this,f).forEach(v=>{v.classList.add("is-hidden"),v.removeAttribute("href")})):(i(this,u).forEach(v=>{l(this,m,Tt).call(this,v,window.fluentcart_single_product_vars.cart_button_text),v.classList.remove("out-of-stock"),v.removeAttribute("disabled")}),i(this,f).forEach(v=>{v.classList.remove("is-hidden")}))},xe=function(){i(this,n)&&i(this,n).addEventListener("click",async s=>{s.preventDefault();const c=document.querySelector(`[data-fluent-cart-product-variant][data-cart-id="${i(this,O)}"]`),b=c==null?void 0:c.dataset.availableStock;let p=parseInt(i(this,r).value,10)||1,w=i(this,r).getAttribute("max"),v=w?parseInt(w,10):1e4;if(p>=v){window.Toastify&&new Toastify({text:`You can only purchase a maximum of ${v} item${v>1?"s":""}.`,className:"warning",duration:3e3,gravity:"top",position:"right",slideFrom:"right",type:"warning"}).showToast();return}if(p++,b!=="unlimited"&&p>parseInt(b)){window.Toastify&&new Toastify({text:"You have reached the maximum quantity.",className:"warning",duration:3e3,gravity:"top",position:"right",slideFrom:"right",type:"warning"}).showToast();return}i(this,r).value=p,i(this,r).dispatchEvent(new Event("input"))})},Ae=function(){i(this,d)&&i(this,d).addEventListener("click",s=>{s.preventDefault();let c=parseInt(i(this,r).value,10)||1;c>1&&c--,i(this,r).value=c,i(this,r).dispatchEvent(new Event("input"))})},Le=function(){i(this,r)&&i(this,r).addEventListener("input",()=>{let s=parseInt(i(this,r).value,10);isNaN(s)||s<1?s=1:s>1e4&&(s=1e4),i(this,r).value=s,l(this,m,ye).call(this,s),l(this,m,ve).call(this,s)})},Ot=function(){i(this,r)&&(i(this,r).value=1,i(this,r).dispatchEvent(new Event("input")))},Ce=function(){const s="single_product_page_cart_updated_"+i(this,T);i(this,u).forEach(c=>{c.setAttribute("data-action-name",s),c.setAttribute("data-error-action-name",s)}),document.addEventListener(s,()=>{l(this,m,Ot).call(this)})},Ee=function(){var c;((c=i(this,a)[0])==null?void 0:c.dataset.paymentType)==="subscription"&&i(this,u).forEach(b=>{b.setAttribute("data-cart-id","")})},Se=function(){var w,v,_,D;let s=(w=window.fluentcart_single_product_vars)==null?void 0:w.in_stock_status,c=(v=i(this,a)[0])==null?void 0:v.dataset.stockManagement,b=s;c==="yes"&&(b=(_=i(this,a)[0])==null?void 0:_.dataset.itemStock);const p=(D=i(this,f)[0])==null?void 0:D.dataset.stockAvailability;p===window.fluentcart_single_product_vars.out_of_stock_status&&(b=p),b===window.fluentcart_single_product_vars.out_of_stock_status&&l(this,m,bt).call(this,b)},De=function(){i(this,u).forEach(s=>{s.setAttribute("data-cart-id","")})},Ne=function(){i(this,A).forEach(s=>{s.addEventListener("click",c=>{l(this,m,ke).call(this,s)})})},ke=function(s){i(this,A).forEach(c=>{c.classList.remove("active"),c.setAttribute("aria-pressed","false")}),s.classList.add("active"),s.setAttribute("aria-pressed","true"),l(this,m,$t).call(this,s)},$t=function(s){const c=this.findOneInContainer("[data-fluent-cart-single-product-page-product-thumbnail]");if(!c)return;let b=s.dataset.url;b===void 0&&(b=c.dataset.defaultImageUrl),c.setAttribute("src",b)},y(dt,t,null);let I=dt;I.init=function(nt){(nt||document).querySelectorAll("[data-fluent-cart-product-pricing-section]:not([data-fluent-cart-single-product-initialized])").forEach(s=>{s.setAttribute("data-fluent-cart-single-product-initialized","1");const c=document.querySelectorAll("[data-fluent-cart-product-pricing-section][data-fluent-cart-single-product-initialized]").length-1;new I().init(s,c)})},I.reinit=function(nt,s){nt&&(nt.querySelectorAll("[data-fluent-cart-product-pricing-section][data-fluent-cart-single-product-initialized]").forEach(c=>c.removeAttribute("data-fluent-cart-single-product-initialized")),I.init(nt),window.dispatchEvent(new CustomEvent("fluentCartSingleProductModalOpened",{detail:{source:s||"external"}})))},I.init(document),window.FluentCartSingleProduct=I});
1 +var Jt=w=>{throw TypeError(w)};var vt=(w,e,i)=>e.has(w)||Jt("Cannot "+i);var t=(w,e,i)=>(vt(w,e,"read from private field"),i?i.call(w):e.get(w)),g=(w,e,i)=>e.has(w)?Jt("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(w):e.set(w,i),p=(w,e,i,s)=>(vt(w,e,"write to private field"),s?s.call(w,i):e.set(w,i),i),r=(w,e,i)=>(vt(w,e,"access private method"),i);import{L as ke}from"./chunks/lightbox.js?ver=1.7.0";var z,q,Z,j,K,Y,L,Zt,jt,ut,Kt,wt;class _e{constructor(e){g(this,L);g(this,z);g(this,q);g(this,Z);g(this,j);g(this,K);g(this,Y);p(this,q,e),p(this,z,t(this,q).querySelectorAll("[data-tab]")),p(this,Z,t(this,q).querySelector("[data-fluent-cart-product-item-price]")),p(this,j,t(this,q).querySelector("[data-fluent-cart-product-payment-type]")),p(this,K,t(this,q).querySelector("[data-fluent-cart-product-quantity-container]")),p(this,Y,t(this,q).querySelector("[data-fluent-cart-add-to-cart-button]"))}init(){r(this,L,Zt).call(this),r(this,L,jt).call(this)}handleVariationChange(e){e.closest("[data-tab-content]")}}z=new WeakMap,q=new WeakMap,Z=new WeakMap,j=new WeakMap,K=new WeakMap,Y=new WeakMap,L=new WeakSet,Zt=function(){t(this,z).forEach(e=>{e.addEventListener("click",()=>{r(this,L,ut).call(this,e)}),e.addEventListener("keydown",i=>{const s=Array.from(t(this,z)),n=s.indexOf(e);let c=-1;switch(i.key){case"Enter":case" ":i.preventDefault(),r(this,L,ut).call(this,e);return;case"ArrowRight":i.preventDefault(),c=(n+1)%s.length;break;case"ArrowLeft":i.preventDefault(),c=(n-1+s.length)%s.length;break;case"Home":i.preventDefault(),c=0;break;case"End":i.preventDefault(),c=s.length-1;break;default:return}c>=0&&(s[c].focus(),r(this,L,ut).call(this,s[c]))})})},jt=function(){const e=Array.from(t(this,z)).find(i=>i.classList.contains("active"));e&&r(this,L,wt).call(this,e)},ut=function(e,i=!1){t(this,Z)&&t(this,Z).classList.add("is-hidden"),t(this,j)&&t(this,j).classList.add("is-hidden"),t(this,K)&&t(this,K).classList.add("is-hidden"),t(this,Y)&&t(this,Y).classList.add("is-hidden"),t(this,z).forEach(h=>{h.classList.remove("active"),h.setAttribute("aria-selected","false"),h.setAttribute("tabindex","-1")}),t(this,q).querySelectorAll("[data-tab-content]").forEach(h=>{h.classList.remove("active"),h.style.display="none"}),e.classList.add("active"),e.setAttribute("aria-selected","true"),e.setAttribute("tabindex","0");const n=e.dataset.tab,c=t(this,q).querySelector(`#${n}`);c&&(c.classList.add("active"),r(this,L,Kt).call(this,c,400)),r(this,L,wt).call(this,e);let l=c==null?void 0:c.querySelector('[data-fluent-cart-product-variant][data-item-stock="in-stock"]');l||(l=c==null?void 0:c.querySelector("[data-fluent-cart-product-variant]")),l&&l.click()},Kt=function(e,i){e.style.opacity="0",e.style.display="block";const s=performance.now(),n=c=>{const l=c-s,h=Math.min(l/i,1);e.style.opacity=h,h<1&&requestAnimationFrame(n)};requestAnimationFrame(n)},wt=function(e){const i=t(this,q).querySelector("[data-tab-active-bar]");if(!i)return;const s=e.getBoundingClientRect(),n=e.parentElement.getBoundingClientRect();i.style.left=`${s.left-n.left}px`,i.style.width=`${s.width}px`};const Qt=new WeakMap;window.addEventListener("fluent_cart_app_loaded",function(w){document.querySelectorAll("[data-fluent-cart-product-gallery-wrapper]").forEach((e,i)=>{new window.FluentCartImageGallery().init(e)})});window.addEventListener("fluentCartSingleProductModalOpened",function(w){let e=!1;window.fluentcart_single_product_vars&&window.fluentcart_single_product_vars.enable_image_zoom_in_modal==="yes"&&(e=!0),document.querySelectorAll("[data-fluent-cart-product-gallery-wrapper]").forEach((i,s)=>{new window.FluentCartImageGallery().init(i,e)})});var T,D,$,E,S,rt,V,k,X,tt,N,M,H,F,d,Yt,It,ht,Xt,te,ee,ie,At,ae,Ct,se,Et,xe,ne,re,oe,ft,de,R,St,pt,kt,_t,ce,st,le,ue;class Le{constructor(){g(this,d);g(this,T);g(this,D);g(this,$);g(this,E);g(this,S,0);g(this,rt);g(this,V);g(this,k);g(this,X);g(this,tt,"all");g(this,N,null);g(this,M,null);g(this,H,null);g(this,F,0)}init(e,i=!0){var s,n;(s=Qt.get(e))==null||s.abort(),(n=t(this,N))==null||n.abort(),p(this,N,new AbortController),Qt.set(e,t(this,N)),this.container=e,p(this,X,this.container.getAttribute("data-product-id")),p(this,tt,this.container.getAttribute("data-thumbnail-mode")||"all"),p(this,rt,i),p(this,V,this.findInContainer("[data-fluent-cart-thumb-control-button]")),p(this,k,this.findOneInContainer("[data-fluent-cart-single-product-page-product-thumbnail-controls]")),p(this,T,this.findOneInContainer("[data-fluent-cart-single-product-page-product-thumbnail]")),r(this,d,te).call(this),r(this,d,Yt).call(this),r(this,d,ee).call(this),r(this,d,se).call(this),r(this,d,ie).call(this),r(this,d,ne).call(this),r(this,d,oe).call(this),r(this,d,le).call(this),r(this,d,ue).call(this)}updateGalleryByVariation(e=0){if(t(this,tt)==="all"){if(t(this,M))return;this.findInContainer("[data-fluent-cart-thumb-control-button]").forEach(c=>c.classList.remove("is-hidden"));return}const i=this.findInContainer(`[data-fluent-cart-thumb-control-button][data-variation-id="${e}"]`);i.length>0&&(this.findInContainer(`[data-fluent-cart-thumb-control-button][data-variation-id]:not([data-variation-id="${e}"])`).forEach(c=>c.classList.add("is-hidden")),i.forEach(c=>c.classList.remove("is-hidden"))),this.findInContainer('[data-fluent-cart-thumb-control-button][data-variation-id="0"]').forEach(n=>n.classList.remove("is-hidden"))}findInContainer(e){return this.container.querySelectorAll(e)}findOneInContainer(e){return this.container.querySelector(e)}}T=new WeakMap,D=new WeakMap,$=new WeakMap,E=new WeakMap,S=new WeakMap,rt=new WeakMap,V=new WeakMap,k=new WeakMap,X=new WeakMap,tt=new WeakMap,N=new WeakMap,M=new WeakMap,H=new WeakMap,F=new WeakMap,d=new WeakSet,Yt=function(){const s=(this.container.closest("[data-fluent-cart-single-product-page]")||document).querySelector("[data-primary-group-id]");if(!s)return;const n=parseInt(s.getAttribute("data-primary-group-id")||"0",10);if(!n)return;let c={},l={};try{c=JSON.parse(s.getAttribute("data-attribute-config")||"{}"),l=JSON.parse(s.getAttribute("data-variation-map")||"{}")}catch{return}const h=(c[String(n)]||[]).map(Number);if(!h.length)return;const b={};h.forEach(C=>{b[C]=[]}),Object.entries(l).forEach(([C,B])=>{const G=C.split("_").map(Number);h.forEach(P=>{G.includes(P)&&b[P].push(Number(B))})}),p(this,M,b);try{const C=t(this,k)?t(this,k).getAttribute("data-variant-first-media-map"):null;C&&p(this,H,JSON.parse(C))}catch{p(this,H,null)}let v=0;const x=s.querySelector(`.fct-swatch-item[data-group-id="${n}"].selected, .fct-swatch-item[data-group-id="${n}"][aria-checked="true"]`);if(x&&(v=parseInt(x.getAttribute("data-term-id")||"0",10)),!v){const C=s.querySelector(`[data-attribute-group="${n}"] [data-fct-select-option][aria-selected="true"]`);C&&(v=parseInt(C.getAttribute("data-value")||"0",10))}v&&r(this,d,It).call(this,v)},It=function(e){if(!t(this,M))return;p(this,F,Number(e));const i=r(this,d,ft).call(this);if(!i.length)return;if(!t(this,F)){r(this,d,R).call(this,i[0]);return}const s=new Set((t(this,M)[t(this,F)]||[]).map(String)),n=s.size?i.find(c=>s.has(c.getAttribute("data-variation-id")||"")):null;n?r(this,d,R).call(this,n):r(this,d,ht).call(this)},ht=function(){var n;const e=this.findOneInContainer("[data-fluent-cart-single-product-page-product-thumbnail]");if(!e)return;const i=e.dataset.defaultImageUrl;if(!i)return;const s=(n=r(this,d,pt).call(this))==null?void 0:n.dataset.fctVideoDefault;s?r(this,d,_t).call(this,s,{play:!1}):r(this,d,st).call(this),e.setAttribute("src",i),t(this,V).forEach(c=>{const l=s&&c.dataset.fctVideoMediaId===String(s);c.classList.toggle("active",!!l),c.setAttribute("aria-pressed",l?"true":"false"),c.setAttribute("tabindex",l?"0":"-1")})},Xt=function(e){var c,l;const i=r(this,d,ft).call(this);if(!i.length)return;if(t(this,H)){const h=t(this,H)[String(e)];if(!h){r(this,d,ht).call(this);return}let b=null;h.id>0&&(b=i.find(v=>v.getAttribute("data-media-id")===String(h.id))),b||(b=i.find(v=>v.getAttribute("data-url")===h.url)),b?r(this,d,R).call(this,b):r(this,d,ht).call(this);return}const s=(c=t(this,E))==null?void 0:c[String(e)],n=((l=s==null?void 0:s[0])==null?void 0:l.link)??null;if(n){const h=i.find(b=>b.getAttribute("data-url")===n);h&&r(this,d,R).call(this,h)}},te=function(){const e=t(this,N).signal;let i=null,s=null,n=!1;const c=()=>{n=!1,s!==null?r(this,d,Xt).call(this,s):i!==null&&r(this,d,It).call(this,i),i=null,s=null};window.addEventListener("fluentCartSingleProductVariationChanged",l=>{var v;if(l.detail.productId!=t(this,X))return;if(p(this,S,l.detail.variationId),t(this,M)){s=t(this,S),i=null,n||(n=!0,requestAnimationFrame(c));return}this.updateGalleryByVariation(t(this,S));const b=(v=t(this,k))==null?void 0:v.querySelectorAll(`[data-fluent-cart-thumb-control-button][data-variation-id="${t(this,S)}"]`);r(this,d,re).call(this,b)},{signal:e}),window.addEventListener("fluentCartAdvVariationImageChanged",l=>{if(l.detail.productId!=t(this,X))return;if(t(this,M)){i=l.detail.termId,s=null,n||(n=!0,requestAnimationFrame(c));return}const h=this.findOneInContainer("[data-fluent-cart-single-product-page-product-thumbnail]");h&&(r(this,d,st).call(this),h.setAttribute("src",l.detail.url))},{signal:e})},ee=function(){var s,n,c,l;const e=(s=t(this,k))==null?void 0:s.querySelectorAll("[data-fluent-cart-thumb-control-button]:not(.is-hidden)"),i=(n=t(this,k))==null?void 0:n.querySelector(".active[data-fluent-cart-thumb-control-button]:not(.is-hidden)");i?p(this,S,i.dataset.variationId):p(this,S,((l=(c=e==null?void 0:e[0])==null?void 0:c.dataset)==null?void 0:l.variationId)||0),this.updateGalleryByVariation(t(this,S))},ie=function(){t(this,T)&&t(this,T).removeEventListener("click",r(this,d,At).bind(this)),p(this,D,new ke({},[])),t(this,T)&&t(this,T).addEventListener("click",r(this,d,At).bind(this))},At=function(e){const i=t(this,T).parentElement,s=i.style.position,n=!s||s==="",c=document.querySelector("[data-fluent-cart-shop-app-single-product-modal]");c&&window.FluentCartSingleProductModal.closeModal(c),n&&(i.style.position="relative");const l=document.createElement("div");l.style.position="fixed",l.style.top="0",l.style.left="0",l.style.right="0",l.style.bottom="0",l.style.zIndex="99999",document.body.appendChild(l),t(this,$)&&t(this,$).closezoom&&t(this,$).closezoom(),setTimeout(()=>{l.parentNode&&l.parentNode.removeChild(l),n&&(i.style.position="")},1e3);const h=e.target;let b=r(this,d,ae).call(this);const v=r(this,d,Et).call(this,b,h.getAttribute("src"));v>-1&&(t(this,D).setAlbum(b),t(this,D).start(v,()=>{}))},ae=function(){if(t(this,tt)==="all"){if(t(this,F)&&t(this,M)){const e=new Set((t(this,M)[t(this,F)]||[]).map(String));if(e.size){const i=new Set,s=[];if(Object.entries(t(this,E)).forEach(([n,c])=>{(e.has(n)||n==="0")&&c.forEach(l=>{i.has(l.link)||(i.add(l.link),s.push(l))})}),s.length>0)return s}}return r(this,d,Ct).call(this)}else{let e=t(this,E)[t(this,S)],i=t(this,E)[0];return e&&i&&(e=[...e,...i]),(!e||e.length===0)&&(e=t(this,E)[0]),e}},Ct=function(){const e=[],i=new Set,s=(n,c)=>{const l=String(n);i.has(l)||(i.add(l),Array.isArray(c)&&c.forEach(h=>e.push(h)))};return t(this,S)&&t(this,E)[t(this,S)]&&s(t(this,S),t(this,E)[t(this,S)]),t(this,E)[0]&&s("0",t(this,E)[0]),Object.keys(t(this,E)).forEach(n=>{s(n,t(this,E)[n])}),e.length>0?e:t(this,E)[0]||[]},se=function(){window.fluentcart_single_product_vars.enable_image_zoom==="yes"&&t(this,rt)&&t(this,$)==null&&t(this,T)&&(window.onload=function(){},p(this,$,xZoom(t(this,T),{tint:!1,Yoffset:120,zoomWidth:500,zoomHeight:400,position:"inside",lensSize:300})))},Et=function(e,i){return Array.isArray(e)?e.findIndex(s=>s.link===i):-1},xe=function(){return window.matchMedia("(hover: hover) and (pointer: fine)").matches},ne=function(){var s;const e={},i=(s=t(this,k))==null?void 0:s.getAttribute("data-all-gallery-images");if(i)try{const n=JSON.parse(i),c=this.findInContainer("[data-fluent-cart-thumb-control-button]:not([data-fct-video-media-id])").length;if(n.length>c){n.forEach(l=>{const h=l.variation_id!=null&&l.variation_id!==""?String(l.variation_id):"0";e.hasOwnProperty(h)||(e[h]=[]),e[h].push({alt:l.title||"",link:l.url,title:l.title||""})}),p(this,E,e);return}}catch{}t(this,V).length>0&&t(this,V).forEach((n,c)=>{const l=n.dataset.variationId.toString(),h=n.querySelector("[data-fluent-cart-single-product-page-product-thumbnail-controls-thumb]");h&&(e.hasOwnProperty(l)||(e[l]=[]),r(this,d,Et).call(this,e[l],h.src)===-1&&e[l].push({alt:h.alt,link:h.src,title:h.alt}))}),p(this,E,e)},re=function(e){if(t(this,V).forEach(i=>i.classList.remove("active")),e&&e.length>0){const i=e[0];i.click(),i.classList.add("active"),r(this,d,St).call(this,i)}},oe=function(){this.findInContainer("[data-fluent-cart-thumb-control-button]").forEach(e=>{e.addEventListener("click",()=>{r(this,d,R).call(this,e)})}),t(this,k)&&t(this,k).addEventListener("keydown",e=>{r(this,d,de).call(this,e)})},ft=function(){var e;return Array.from(((e=t(this,k))==null?void 0:e.querySelectorAll("[data-fluent-cart-thumb-control-button]:not(.is-hidden)"))||[])},de=function(e){const i=this.container.classList.contains("thumb-pos-left")||this.container.classList.contains("thumb-pos-right"),s=i?["ArrowDown"]:["ArrowRight"],n=i?["ArrowUp"]:["ArrowLeft"],c=s.includes(e.key)||!i&&e.key==="ArrowDown",l=n.includes(e.key)||!i&&e.key==="ArrowUp";if(!c&&!l)return;e.preventDefault();const h=r(this,d,ft).call(this);if(h.length===0)return;const b=h.indexOf(document.activeElement);let v;c?v=b<h.length-1?b+1:0:v=b>0?b-1:h.length-1;const x=h[v];x.focus(),r(this,d,R).call(this,x)},R=function(e){t(this,V).forEach(s=>{s.classList.remove("active"),s.setAttribute("aria-pressed","false"),s.setAttribute("tabindex","-1")}),e.classList.add("active"),e.setAttribute("aria-pressed","true"),e.setAttribute("tabindex","0");const i=e.dataset.variationId;i!==void 0&&e.dataset.fctVideoMediaId===void 0&&p(this,S,i),r(this,d,St).call(this,e)},St=function(e){const i=this.findOneInContainer("[data-fluent-cart-single-product-page-product-thumbnail]");if(!i)return;if(e.dataset.fctVideoMediaId!==void 0){r(this,d,_t).call(this,e.dataset.fctVideoMediaId);return}r(this,d,st).call(this);let s=e.dataset.url;s===void 0&&(s=i.dataset.defaultImageUrl),i.setAttribute("src",s)},pt=function(){var e;return((e=this.findOneInContainer("[data-fct-product-gallery-video]"))==null?void 0:e.closest(".fct-product-gallery-thumb"))||null},kt=function(e){const i=e.querySelector("media-player");if(i&&typeof i.pause=="function")try{i.pause()}catch{}},_t=function(e,{play:i=!0}={}){const s=r(this,d,pt).call(this),n=s?[...s.querySelectorAll("[data-fct-product-gallery-video]")]:[],c=n.find(l=>l.dataset.fctVideoMediaId===String(e));if(!c){r(this,d,st).call(this);return}n.forEach(l=>{const h=l===c;l.classList.toggle("is-active",h),h||r(this,d,kt).call(this,l)}),s.classList.add("is-video-active"),i&&r(this,d,ce).call(this,c)},ce=function(e){const i=e.querySelector("media-player");if(i&&(i.hasAttribute("data-fp-load-deferred")&&typeof i.startLoading=="function"&&i.startLoading(),typeof i.play=="function"))try{const s=i.play();s&&typeof s.catch=="function"&&s.catch(()=>{})}catch{}},st=function(){const e=r(this,d,pt).call(this);!e||!e.classList.contains("is-video-active")||(e.classList.remove("is-video-active"),e.querySelectorAll("[data-fct-product-gallery-video]").forEach(i=>{i.classList.remove("is-active"),r(this,d,kt).call(this,i)}))},le=function(){if(!(this.container.getAttribute("data-scrollable-thumbs")==="yes")||!t(this,k)||!(this.container.classList.contains("thumb-pos-left")||this.container.classList.contains("thumb-pos-right")))return;const s=()=>{const c=this.findOneInContainer(".fct-product-gallery-thumb");c&&t(this,k)&&(t(this,k).style.maxHeight=c.offsetHeight+"px")},n=t(this,T);n&&n.tagName==="IMG"&&(n.complete?s():n.addEventListener("load",s,{once:!0,signal:t(this,N).signal})),window.addEventListener("resize",s,{signal:t(this,N).signal})},ue=function(){const e=this.findOneInContainer("[data-fluent-cart-gallery-see-more]");e&&e.addEventListener("click",()=>{const i=r(this,d,Ct).call(this);if(!i||i.length===0)return;const s=this.findInContainer("[data-fluent-cart-thumb-control-button]:not(.is-hidden):not([data-fct-video-media-id])").length,n=Math.min(s,i.length-1);t(this,D).setAlbum(i),t(this,D).start(n,()=>{})},{signal:t(this,N).signal})};window.FluentCartImageGallery=Le;document.addEventListener("DOMContentLoaded",()=>{var e,i,s,n,c,l,h,b,v,x,C,B,G,P,ot,J,et,Q,it,u,he,Lt,qe,fe,pe,mt,me,ge,ye,be,nt,xt,gt,ve,we,Ie,qt,Ae,Ce,Ee,Te,Oe,Se,Tt;const dt=class dt{constructor(){g(this,u);g(this,i);g(this,s);g(this,n);g(this,c);g(this,l);g(this,h);g(this,b);g(this,v);g(this,x);g(this,C);g(this,B);g(this,G);g(this,P,0);g(this,ot);g(this,J);g(this,et);g(this,Q);g(this,it)}toTitleCase(a){return a.replace(/\w\S*/g,function(o){return o.charAt(0).toUpperCase()+o.substr(1).toLowerCase()})}$t(a){return window.fluentcart_single_product_vars.trans[a]||a}findInContainer(a){return t(this,i).querySelectorAll(a)}findOneInContainer(a){return t(this,i).querySelector(a)}init(a,o){p(this,G,o),p(this,i,a),p(this,s,this.findInContainer("[data-fluent-cart-product-variant]")),p(this,et,t(this,i).getAttribute("data-product-id")),p(this,l,this.findOneInContainer("[data-fluent-cart-product-qty-increase-button]")),p(this,h,this.findOneInContainer("[data-fluent-cart-product-qty-decrease-button]")),p(this,n,this.findOneInContainer("[data-fluent-cart-single-product-page-product-quantity-input]")),p(this,c,this.findOneInContainer("[data-fluent-cart-product-quantity-container]")),p(this,b,this.findInContainer("[data-fluent-cart-add-to-cart-button]")),p(this,v,this.findInContainer("[data-fluent-cart-direct-checkout-button]")),p(this,x,this.findInContainer("[data-fluent-cart-thumb-control-button]")),p(this,C,this.findOneInContainer("[data-fluent-cart-single-product-page-product-thumbnail-controls]")),p(this,ot,this.findOneInContainer("[data-fluent-cart-product-item-price]")),p(this,J,this.findOneInContainer("[data-fluent-cart-product-payment-type]")),p(this,Q,this.findOneInContainer("[data-fluent-cart-product-pricing-section]")),r(this,u,ve).call(this),r(this,u,we).call(this),r(this,u,Ie).call(this),r(this,u,Ae).call(this),p(dt,e,this),window.fluentCartSingleProduct=this;const m=this.findOneInContainer(".fct-advanced-variation-wrap"),f=(window.FluentCartVariationControllers||{}).advanced||null;return m&&f?(p(this,it,new f),t(this,it).init(m)):r(this,u,ye).call(this),r(this,u,pe).call(this),r(this,u,fe).call(this),r(this,u,Lt).call(this),r(this,u,he).call(this),this}selectVariation(a){const m=t(this,i).closest(".fct-product-summary")||t(this,i).closest(".product-info-block-wrapper")||t(this,i).parentElement||t(this,Q);m.querySelectorAll(".fluent-cart-product-variation-content[data-variation-id]").forEach(f=>f.classList.add("is-hidden")),m.querySelectorAll(`.fluent-cart-product-variation-content[data-variation-id="${a}"]`).forEach(f=>f.classList.remove("is-hidden")),window.dispatchEvent(new CustomEvent("fluentCartSingleProductVariationChanged",{detail:{productId:t(this,et),variationId:a}}))}updateGalleryByVariation(a=0){const o=document.querySelectorAll(`[data-fluent-cart-thumb-control-button][data-variation-id="${a}"]`);o.length>0?(document.querySelectorAll(`[data-fluent-cart-thumb-control-button][data-variation-id]:not([data-variation-id="${a}"])`).forEach(f=>f.classList.add("is-hidden")),o.forEach(f=>f.classList.remove("is-hidden"))):document.querySelectorAll('[data-fluent-cart-thumb-control-button][data-variation-id="0"]').forEach(f=>f.classList.remove("is-hidden"))}};e=new WeakMap,i=new WeakMap,s=new WeakMap,n=new WeakMap,c=new WeakMap,l=new WeakMap,h=new WeakMap,b=new WeakMap,v=new WeakMap,x=new WeakMap,C=new WeakMap,B=new WeakMap,G=new WeakMap,P=new WeakMap,ot=new WeakMap,J=new WeakMap,et=new WeakMap,Q=new WeakMap,it=new WeakMap,u=new WeakSet,he=function(){window.addEventListener("resize",a=>{r(this,u,Lt).call(this)})},Lt=function(){const a=document.querySelector(".fluent-cart-single-product-page");a&&(a.offsetWidth<=815?a.classList.add("is-mobile"):a.classList.remove("is-mobile"))},qe=function(a,o){return Array.isArray(a)?a.findIndex(m=>m.link===o):-1},fe=function(){this.findOneInContainer("[data-fluent-cart-product-tab]")&&(p(this,B,new _e(t(this,i))),t(this,B).init())},pe=function(){var Ot,Mt,Pt,Nt,Vt,zt,Dt,$t,Ft,Bt,Gt,Ut,Wt,Rt,Ht;const a=this.findOneInContainer(".selected[data-fluent-cart-product-variant]"),o=a==null?void 0:a.dataset.cartId;a==null||a.dataset.itemPrice,a==null||a.dataset.subscriptionTerms;const m=a==null?void 0:a.dataset.paymentType;let f=(Ot=window.fluentcart_single_product_vars)==null?void 0:Ot.in_stock_status,I=a==null?void 0:a.dataset.stockManagement,y=f;I==="yes"&&(y=a==null?void 0:a.dataset.itemStock);const _=(Mt=t(this,v)[0])==null?void 0:Mt.dataset.stockAvailability;if(_===((Pt=window.fluentcart_single_product_vars)==null?void 0:Pt.out_of_stock_status)&&(y=_),o!==void 0&&(t(this,b).forEach(W=>{W.setAttribute("data-cart-id",o)}),r(this,u,mt).call(this,o,y)),o===void 0&&t(this,s).length===0){const W=(Nt=t(this,v)[0])==null?void 0:Nt.dataset.cartId,lt=(Vt=t(this,v)[0])==null?void 0:Vt.dataset.stockAvailability;r(this,u,mt).call(this,W,lt)}const O=(zt=t(this,C))==null?void 0:zt.querySelectorAll("[data-fluent-cart-thumb-control-button]:not(.is-hidden)"),U=(Dt=t(this,Q))==null?void 0:Dt.querySelector("[data-fluent-cart-product-variant].selected");U?p(this,P,(($t=U==null?void 0:U.dataset)==null?void 0:$t.cartId)||0):p(this,P,((Ft=O==null?void 0:O.dataset)==null?void 0:Ft.variationId)||0),r(this,u,be).call(this,O);const A=new URL(window.location.href).searchParams;if(A.has("selected")){const W=A.get("selected"),lt=this.findOneInContainer(`[data-fluent-cart-product-variant][data-cart-id="${W}"]`);lt&&r(this,u,nt).call(this,lt)}r(this,u,Ee).call(this),r(this,u,Ce).call(this);const ct=((Bt=t(this,s)[0])==null?void 0:Bt.dataset.paymentType)||((Gt=t(this,c))==null?void 0:Gt.dataset.paymentType),bt=((Ut=t(this,v)[0])==null?void 0:Ut.dataset.variationType)||((Wt=t(this,c))==null?void 0:Wt.dataset.variationType);ct==="subscription"&&bt==="simple"&&((Rt=t(this,J))==null||Rt.classList.remove("is-hidden")),m==="subscription"&&((Ht=t(this,J))==null||Ht.classList.remove("is-hidden")),(a==null?void 0:a.dataset.cartId)===(a==null?void 0:a.dataset.defaultVariationId)&&t(this,x).forEach(W=>{W.classList.remove("is-hidden")}),r(this,u,gt).call(this,y)},mt=function(a,o){var f;const m=(((f=window.fluentcart_single_product_vars)==null?void 0:f.out_of_stock_status)||"").toString();t(this,v).forEach(I=>{if(o!==m){const y=I.dataset.quantity;let _=I.getAttribute("data-url")+a+"&quantity="+y;I.setAttribute("href",_),I.setAttribute("data-cart-id",a),I.classList.remove("is-hidden")}else I.removeAttribute("href"),I.classList.add("is-hidden")})},me=function(a){t(this,v).forEach(o=>{o.setAttribute("data-quantity",a);const m=o.getAttribute("data-cart-id");if(m){let f=o.getAttribute("data-url")+m+"&quantity="+a;o.setAttribute("href",f)}})},ge=function(a){t(this,b).forEach(o=>{o.setAttribute("data-quantity",a)})},ye=function(){t(this,s).forEach(a=>{a.addEventListener("click",o=>{r(this,u,nt).call(this,a)}),a.addEventListener("keydown",o=>{const m=a.closest('[role="radiogroup"]');if(!m)return;const f=Array.from(m.querySelectorAll('[role="radio"]')),I=f.indexOf(a);let y=-1;switch(o.key){case"Enter":case" ":o.preventDefault(),r(this,u,nt).call(this,a);return;case"ArrowDown":case"ArrowRight":o.preventDefault(),y=(I+1)%f.length;break;case"ArrowUp":case"ArrowLeft":o.preventDefault(),y=(I-1+f.length)%f.length;break;case"Home":o.preventDefault(),y=0;break;case"End":o.preventDefault(),y=f.length-1;break;default:return}y>=0&&(f[y].focus(),r(this,u,nt).call(this,f[y]))})})},be=function(a){if(a&&a.length>0){const o=a[0];o.classList.add("active"),r(this,u,Tt).call(this,o)}},nt=function(a){var U,yt;t(this,s).forEach(A=>{A.classList.remove("selected"),A.setAttribute("aria-checked","false"),A.setAttribute("tabindex","-1")}),a.setAttribute("aria-checked","true"),a.setAttribute("tabindex","0"),a.classList.add("selected");const o=a.dataset.cartId;t(this,x).forEach(A=>A.classList.remove("active")),this.selectVariation(o),r(this,u,qt).call(this),p(this,P,o);const m=t(this,i).closest(".fct-product-summary")||t(this,i).closest(".product-info-block-wrapper")||t(this,i).parentElement;let f=(U=window.fluentcart_single_product_vars)==null?void 0:U.in_stock_status;a.dataset.stockManagement==="yes"&&(f=a.dataset.itemStock),o!==void 0&&(t(this,b).forEach(A=>A.setAttribute("data-cart-id",o)),r(this,u,mt).call(this,o,f),a.dataset.paymentType!=="subscription"&&t(this,b).forEach(A=>{A.classList.remove("is-hidden"),A.setAttribute("data-cart-id",o)})),f!==void 0&&r(this,u,gt).call(this,f);const I=window.fluentcart_single_product_vars.out_of_stock_status;a.dataset.paymentType==="subscription"&&f!==I&&t(this,b).forEach(A=>A.classList.add("is-hidden"));const y=a.dataset.sku||"",_=m==null?void 0:m.querySelector("[data-fluent-cart-product-sku]");if(_){_.textContent=y;const A=_.closest(".fct-product-sku");A&&(A.style.display=y?"":"none")}const O=a.getAttribute("aria-label")||"";O&&(t(this,v).forEach(A=>{A.setAttribute("aria-label",A.textContent.trim()+" - "+O)}),t(this,b).forEach(A=>{const ct=A.querySelector(".text"),bt=ct?ct.textContent.trim():A.textContent.trim();A.setAttribute("aria-label",bt+" - "+O)})),this.findInContainer("[data-fluent-cart-single-product-page-product-variant-price-info]").forEach(A=>A.classList.remove("selected")),(yt=this.findOneInContainer(`[data-fluent-cart-single-product-page-product-variant-price-info][data-cart-id="${o}"]`))==null||yt.classList.add("selected"),this.findInContainer(`[data-fluent-cart-single-product-page-product-quantity][data-cart-id="${o}"]`).forEach(A=>A.classList.add("selected"))},xt=function(a,o){if(a.getAttribute("data-icon-only")==="true")return;const m=a.querySelector(".text");if(!m)return;let f=m.querySelector("span");f?f.textContent=o:m.textContent=o},gt=function(a){if(!a)return;const o=window.fluentcart_single_product_vars.out_of_stock_status,m=a===o,f=t(this,i).closest(".fct-product-summary")||t(this,i).closest(".product-info-block-wrapper")||t(this,i).parentElement,I=f==null?void 0:f.querySelector("[data-fluent-cart-product-stock]");if(I){const y=m?I.getAttribute("data-out-of-stock-text"):I.getAttribute("data-in-stock-text");y?I.textContent=y:I.innerHTML=this.$t(this.toTitleCase(a.replaceAll("-"," "))),I.className=I.className.replace(/fct_status_badge_[\w-]+/g,""),I.classList.add("fct_status_badge_"+a);const _=I.closest(".fct-product-stock");_&&(_.classList.remove("in-stock","out-of-stock"),_.classList.add(a))}m?(t(this,b).forEach(y=>{r(this,u,xt).call(this,y,window.fluentcart_single_product_vars.out_of_stock_button_text),y.setAttribute("disabled","disabled"),y.classList.add("out-of-stock"),y.classList.remove("is-hidden")}),t(this,v).forEach(y=>{y.classList.add("is-hidden"),y.removeAttribute("href")})):(t(this,b).forEach(y=>{r(this,u,xt).call(this,y,window.fluentcart_single_product_vars.cart_button_text),y.classList.remove("out-of-stock"),y.removeAttribute("disabled")}),t(this,v).forEach(y=>{y.classList.remove("is-hidden")}))},ve=function(){t(this,l)&&t(this,l).addEventListener("click",async a=>{a.preventDefault();const o=document.querySelector(`[data-fluent-cart-product-variant][data-cart-id="${t(this,P)}"]`),m=o==null?void 0:o.dataset.availableStock;let f=parseInt(t(this,n).value,10)||1,I=t(this,n).getAttribute("max"),y=I?parseInt(I,10):1e4;if(f>=y){window.Toastify&&new Toastify({text:`You can only purchase a maximum of ${y} item${y>1?"s":""}.`,className:"warning",duration:3e3,gravity:"top",position:"right",slideFrom:"right",type:"warning"}).showToast();return}if(f++,m!=="unlimited"&&f>parseInt(m)){window.Toastify&&new Toastify({text:"You have reached the maximum quantity.",className:"warning",duration:3e3,gravity:"top",position:"right",slideFrom:"right",type:"warning"}).showToast();return}t(this,n).value=f,t(this,n).dispatchEvent(new Event("input"))})},we=function(){t(this,h)&&t(this,h).addEventListener("click",a=>{a.preventDefault();let o=parseInt(t(this,n).value,10)||1;o>1&&o--,t(this,n).value=o,t(this,n).dispatchEvent(new Event("input"))})},Ie=function(){t(this,n)&&t(this,n).addEventListener("input",()=>{let a=parseInt(t(this,n).value,10);isNaN(a)||a<1?a=1:a>1e4&&(a=1e4),t(this,n).value=a,r(this,u,me).call(this,a),r(this,u,ge).call(this,a)})},qt=function(){t(this,n)&&(t(this,n).value=1,t(this,n).dispatchEvent(new Event("input")))},Ae=function(){const a="single_product_page_cart_updated_"+t(this,G);t(this,b).forEach(o=>{o.setAttribute("data-action-name",a),o.setAttribute("data-error-action-name",a)}),document.addEventListener(a,()=>{r(this,u,qt).call(this)})},Ce=function(){var o;((o=t(this,s)[0])==null?void 0:o.dataset.paymentType)==="subscription"&&t(this,b).forEach(m=>{m.setAttribute("data-cart-id","")})},Ee=function(){var I,y,_,O;let a=(I=window.fluentcart_single_product_vars)==null?void 0:I.in_stock_status,o=(y=t(this,s)[0])==null?void 0:y.dataset.stockManagement,m=a;o==="yes"&&(m=(_=t(this,s)[0])==null?void 0:_.dataset.itemStock);const f=(O=t(this,v)[0])==null?void 0:O.dataset.stockAvailability;f===window.fluentcart_single_product_vars.out_of_stock_status&&(m=f),m===window.fluentcart_single_product_vars.out_of_stock_status&&r(this,u,gt).call(this,m)},Te=function(){t(this,b).forEach(a=>{a.setAttribute("data-cart-id","")})},Oe=function(){t(this,x).forEach(a=>{a.addEventListener("click",o=>{r(this,u,Se).call(this,a)})})},Se=function(a){t(this,x).forEach(o=>{o.classList.remove("active"),o.setAttribute("aria-pressed","false")}),a.classList.add("active"),a.setAttribute("aria-pressed","true"),r(this,u,Tt).call(this,a)},Tt=function(a){const o=this.findOneInContainer("[data-fluent-cart-single-product-page-product-thumbnail]");if(!o)return;let m=a.dataset.url;m===void 0&&(m=o.dataset.defaultImageUrl),o.setAttribute("src",m)},g(dt,e,null);let w=dt;w.init=function(at){(at||document).querySelectorAll("[data-fluent-cart-product-pricing-section]:not([data-fluent-cart-single-product-initialized])").forEach(a=>{a.setAttribute("data-fluent-cart-single-product-initialized","1");const o=document.querySelectorAll("[data-fluent-cart-product-pricing-section][data-fluent-cart-single-product-initialized]").length-1;new w().init(a,o)})},w.reinit=function(at,a){at&&(at.querySelectorAll("[data-fluent-cart-product-pricing-section][data-fluent-cart-single-product-initialized]").forEach(o=>o.removeAttribute("data-fluent-cart-single-product-initialized")),w.init(at),window.dispatchEvent(new CustomEvent("fluentCartSingleProductModalOpened",{detail:{source:a||"external"}})))},w.init(document),window.FluentCartSingleProduct=w});