1if(!customElements.get("variant-selects")){class VariantSelects extends HTMLElement{constructor(){super(),this.sticky=this.dataset.sticky,this.updateUrl=this.dataset.updateUrl==="true",this.isDisabledFeature=this.dataset.isDisabled,this.addEventListener("change",this.onVariantChange),this.other=Array.from(document.querySelectorAll("variant-selects")).filter(selector=>selector!=this),this.productWrapper=this.closest(".thb-product-detail"),this.productSlider=this.productWrapper.querySelector(".product-images"),this.hideVariants=this.dataset.hideVariants==="true",this.handleQuantityChange=this.handleQuantityChange.bind(this)}connectedCallback(){this.updateOptions(),this.updateMasterId(),this.setDisabled(),this.setImageSet(),document.addEventListener("change",this.handleQuantityChange),this.updateAddButtonPrice()}disconnectedCallback(){document.removeEventListener("change",this.handleQuantityChange)}onVariantChange(){this.updateOptions(),this.updateMasterId(),this.toggleAddButton(!0,"",!1),this.updatePickupAvailability(),this.removeErrorMessage(),this.updateVariantText(),this.setDisabled(),this.currentVariant?(this.updateMedia(),this.updateUrl&&this.updateURL(),this.updateVariantInput(),this.renderProductInfo(),this.updateAddButtonPrice()):(this.toggleAddButton(!0,"",!0),this.setUnavailable()),this.updateOther(),dispatchCustomEvent("product:variant-change",{variant:this.currentVariant,sectionId:this.dataset.section})}updateOptions(){this.fieldsets=Array.from(this.querySelectorAll("fieldset")),this.options=[],this.fieldsets.forEach((fieldset,i)=>{fieldset.querySelector("select")?this.options.push(fieldset.querySelector("select").value):fieldset.querySelectorAll("input").length&&this.options.push(fieldset.querySelector("input:checked").value)})}updateVariantText(){Array.from(this.querySelectorAll("fieldset")).forEach((item,i)=>{let label=item.querySelector(".form__label__value");label&&(label.innerHTML=this.options[i])})}updateMasterId(){this.getVariantData()&&(this.currentVariant=this.getVariantData().find(variant=>!variant.options.map((option,index)=>this.options[index]===option).includes(!1)))}updateOther(){if(this.dataset.updateUrl!=="false"&&this.other.length){let fieldsets=this.other[0].querySelectorAll("fieldset"),fieldsets_array=Array.from(fieldsets);this.options.forEach((option,i)=>{fieldsets_array[i].querySelector("select")?fieldsets_array[i].querySelector("select").value=option:fieldsets_array[i].querySelectorAll("input").length&&(fieldsets_array[i].querySelector(`input[value='${option}']`).checked=!0)}),this.other[0].updateOptions(),this.other[0].updateMasterId(),this.other[0].updateVariantText(),this.other[0].setDisabled()}}updateMedia(){if(!this.currentVariant||!this.currentVariant.featured_media)return;let thumbnails=this.productWrapper.querySelector(".product-thumbnail-container");this.setActiveMedia(`#Slide-${this.dataset.section}-${this.currentVariant.featured_media.id}`,`#Thumb-${this.dataset.section}-${this.currentVariant.featured_media.id}`,this.productSlider,thumbnails)}setActiveMedia(mediaId,thumbId,productSlider,thumbnails){let activeMedia=productSlider.querySelector(mediaId);if(productSlider.flkty&&this.hideVariants){if(productSlider.querySelector(".product-images__slide.is-initial-selected")&&productSlider.querySelector(".product-images__slide.is-initial-selected").classList.remove("is-initial-selected"),[].forEach.call(productSlider.querySelectorAll(".product-images__slide-item--variant"),function(el){el.classList.remove("is-active")}),activeMedia.classList.add("is-active"),activeMedia.classList.add("is-initial-selected"),this.setImageSetMedia(),thumbnails){let activeThumb=thumbnails.querySelector(thumbId);thumbnails.querySelector(".product-thumbnail.is-initial-selected")&&thumbnails.querySelector(".product-thumbnail.is-initial-selected").classList.remove("is-initial-selected"),[].forEach.call(thumbnails.querySelectorAll(".product-images__slide-item--variant"),function(el){el.classList.remove("is-active")}),activeThumb.classList.add("is-active"),activeThumb.classList.add("is-initial-selected")}productSlider.reInit(this.imageSetIndex),productSlider.flkty.selectCell(mediaId)}else productSlider.flkty&&productSlider.flkty.selectCell(mediaId)}updateURL(){!this.currentVariant||this.dataset.updateUrl==="false"||window.history.replaceState({},"",`${this.dataset.url}?variant=${this.currentVariant.id}`)}updateShareUrl(){const shareButton=document.getElementById(`Share-${this.dataset.section}`);shareButton&&shareButton.updateUrl(`${window.shopUrl}${this.dataset.url}?variant=${this.currentVariant.id}`)}updateVariantInput(){document.querySelectorAll(`#product-form-${this.dataset.section}, #product-form-installment`).forEach(productForm=>{const input=productForm.querySelector('input[name="id"]');input.value=this.currentVariant.id,input.dispatchEvent(new Event("change",{bubbles:!0}))})}updatePickupAvailability(){const pickUpAvailability=document.querySelector(".pickup-availability-wrapper");pickUpAvailability&&(this.currentVariant&&this.currentVariant.available?pickUpAvailability.fetchAvailability(this.currentVariant.id):(pickUpAvailability.removeAttribute("available"),pickUpAvailability.innerHTML=""))}removeErrorMessage(){const section=this.closest("section");if(!section)return;const productForm=section.querySelector("product-form");productForm&&productForm.handleErrorMessage()}getSectionsToRender(){return[`price-${this.dataset.section}`,`price-${this.dataset.section}--mobile`,`price-${this.dataset.section}--sticky`,`product-image-${this.dataset.section}--sticky`,`inventory-${this.dataset.section}`,`sku-${this.dataset.section}`,`quantity-${this.dataset.section}`]}renderProductInfo(){let sections=this.getSectionsToRender();fetch(`${this.dataset.url}?variant=${this.currentVariant.id}§ion_id=${this.dataset.section}`).then(response=>response.text()).then(responseText=>{const html=new DOMParser().parseFromString(responseText,"text/html");sections.forEach(id=>{const destination=document.getElementById(id),source=html.getElementById(id);source&&destination&&(destination.innerHTML=source.innerHTML),id.includes("price")&&destination&&destination.classList.remove("visibility-hidden")}),this.toggleAddButton(!this.currentVariant.available,window.theme.variantStrings.soldOut),this.updateAddButtonPrice()})}toggleAddButton(disable=!0,text=!1,modifyClass=!0){const productForm=d
1ocument.getElementById(`product-form-${this.dataset.section}`);if(!productForm)return;const productTemplate=productForm.closest(".product-form").getAttribute("template"),submitButtons=document.querySelectorAll(".single-add-to-cart-button");submitButtons&&submitButtons.forEach(submitButton=>{const submitButtonText=submitButton.querySelector(".single-add-to-cart-button--text");submitButtonText&&(disable?(submitButton.setAttribute("disabled","disabled"),text&&(submitButtonText.textContent=text)):(submitButton.removeAttribute("disabled"),submitButton.classList.remove("loading"),submitButtonText.textContent=this.getAddButtonLabel(productTemplate),this.updateAddButtonPrice()))})}setUnavailable(){const submitButtons=document.querySelectorAll(".single-add-to-cart-button"),price=document.getElementById(`price-${this.dataset.section}`),price_mobile=document.getElementById(`price-${this.dataset.section}--mobile`),price_fixed=document.getElementById(`price-${this.dataset.section}--sticky`);submitButtons.forEach(submitButton=>{const submitButtonText=submitButton.querySelector(".single-add-to-cart-button--text");submitButton&&(submitButtonText.textContent=window.theme.variantStrings.unavailable,submitButton.classList.add("sold-out"))}),price&&price.classList.add("visibility-hidden"),price_fixed&&price_fixed.classList.add("visibility-hidden"),price_mobile&&price_mobile.classList.add("visibility-hidden")}getAddButtonLabel(productTemplate){return productTemplate?.includes("pre-order")?window.theme.variantStrings.preOrder:window.theme.variantStrings.addToCart}handleQuantityChange(event){event.target.matches(`#product-form-${this.dataset.section} [name="quantity"]`)&&this.updateAddButtonPrice()}getSelectedQuantity(){const quantityInput=document.querySelector(`#product-form-${this.dataset.section} [name="quantity"]`),quantity=parseInt(quantityInput?.value,10);return Number.isNaN(quantity)||quantity<1?1:quantity}formatAddButtonPrice(price){const format=window.theme.settings.money_with_currency_format||"${{amount}}";return typeof formatMoney=="function"?formatMoney(price,format):`$${(price/100).toFixed(2)}`}updateAddButtonPrice(){if(!this.currentVariant||!this.currentVariant.available)return;const productForm=document.getElementById(`product-form-${this.dataset.section}`);if(!productForm)return;const productTemplate=productForm.closest(".product-form").getAttribute("template"),quantity=this.getSelectedQuantity(),totalPrice=this.currentVariant.price*quantity,buttonText=`${this.getAddButtonLabel(productTemplate)} - ${this.formatAddButtonPrice(totalPrice)}`;document.querySelectorAll(`product-form[data-section="${this.dataset.section}"] .single-add-to-cart-button .single-add-to-cart-button--text`).forEach(buttonLabel=>{buttonLabel.textContent=buttonText})}setDisabled(){if(this.isDisabledFeature!="true")return;const variant_data=this.getVariantData();if(variant_data){let selected_options=!1;if(this.currentVariant)selected_options=this.currentVariant.options.map((value,index)=>({value,index:`option${index+1}`}));else{let found_option=variant_data.find(option=>option.option1===this.options[0]);if(found_option)selected_options=[{value:this.options[0],index:"option1"},{value:found_option.option2,index:"option2"}];else return}const available_options=this.createAvailableOptionsTree(variant_data,selected_options);this.fieldsets.forEach((fieldset,i)=>{const fieldset_options=Object.values(available_options)[i];fieldset_options&&(fieldset.querySelector("select")?fieldset_options.forEach((option,option_i)=>{option.isUnavailable?fieldset.querySelector("option[value="+JSON.stringify(option.value)+"]").disabled=!0:fieldset.querySelector("option[value="+JSON.stringify(option.value)+"]").disabled=!1}):fieldset.querySelectorAll("input").length&&fieldset.querySelectorAll("input").forEach((input,input_i)=>{input.classList.toggle("is-disabled",fieldset_options[input_i].isUnavailable)}))})}return!0}getImageSetName(variant_name){return variant_name.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/-$/,"").replace(/^-/,"")}setImageSet(){if(!this.productSlider)return;let dataSetEl=this.productSlider.querySelector("[data-set-name]");dataSetEl&&(this.imageSetName=dataSetEl.dataset.setName,this.imageSetIndex=this.querySelector('.product-form__input[data-handle="'+this.imageSetName+'"]').dataset.index,this.dataset.imageSetIndex=this.imageSetIndex,this.setImageSetMedia())}setImageSetMedia(){if(!this.imageSetIndex)return;let setValue=this.getImageSetName(this.currentVariant[this.imageSetIndex]),group=this.imageSetName+"_"+setValue,selected_set_images=this.productWrapper.querySelectorAll(`.product-images__slide[data-set-name="${this.imageSetName}"]`),selected_set_thumbs=this.productWrapper.querySelectorAll(`.product-thumbnail[data-set-name="${this.imageSetName}"]`);this.hideVariants&&(this.productWrapper.querySelectorAll(".product-images__slide").forEach(thumb=>{thumb.dataset.group&&thumb.dataset.group!==group&&thumb.classList.remove("is-active")}
1),selected_set_images.forEach(thumb=>{thumb.classList.toggle("is-active",thumb.dataset.group===group)}),this.productWrapper.querySelectorAll(".product-thumbnail").forEach(thumb=>{thumb.dataset.group&&thumb.dataset.group!==group&&thumb.classList.remove("is-active")}),selected_set_thumbs.forEach(thumb=>{thumb.classList.toggle("is-active",thumb.dataset.group===group)}))}createAvailableOptionsTree(variant_data,selected_options){return variant_data.reduce((options,variant)=>(Object.keys(options).forEach(index=>{if(variant[index]===null)return;let entry=options[index].find(option=>option.value===variant[index]);typeof entry>"u"&&(entry={value:variant[index],isUnavailable:!0},options[index].push(entry)),selected_options.reduce((count,{value,index:index2})=>variant[index2]===value?count+1:count,0)>=selected_options.length-1&&(entry.isUnavailable=entry.isUnavailable&&variant.available?!1:entry.isUnavailable),(!this.currentVariant||!this.currentVariant.available)&&selected_options.find(option=>option.value===entry.value&&index===option.index)&&(entry.isUnavailable=!0),index==="option1"&&(entry.isUnavailable=entry.isUnavailable&&variant.available?!1:entry.isUnavailable)}),options),{option1:[],option2:[],option3:[]})}getVariantData(){return this.variantData=this.variantData||JSON.parse(this.querySelector('[type="application/json"]').textContent),this.variantData}}customElements.define("variant-selects",VariantSelects);class VariantRadios extends VariantSelects{constructor(){super()}updateOptions(){const fieldsets=Array.from(this.querySelectorAll("fieldset"));this.options=fieldsets.map(fieldset=>Array.from(fieldset.querySelectorAll("input")).find(radio=>radio.checked).value)}}customElements.define("variant-radios",VariantRadios)}if(!customElements.get("product-slider")){class ProductSlider extends HTMLElement{constructor(){super(),this.addEventListener("change",this.setupProductGallery)}connectedCallback(){this.product_container=this.closest(".thb-product-detail"),this.thumbnail_container=this.product_container.querySelector(".product-thumbnail-container"),this.video_containers=this.querySelectorAll(".product-single__media-external-video--play"),this.setOptions(),this.init()}setOptions(){this.hide_variants=this.dataset.hideVariants=="true",this.thumbnails=this.thumbnail_container.querySelectorAll(".product-thumbnail"),this.prev_button=this.querySelector(".flickity-prev"),this.next_button=this.querySelector(".flickity-next"),this.options={wrapAround:!0,pageDots:!1,contain:!0,adaptiveHeight:!0,initialIndex:".is-initial-selected",prevNextButtons:!1,fade:!1,cellSelector:".product-images__slide.is-active"}}init(){this.flkty=new Flickity(this,this.options),this.selectedIndex=this.flkty.selectedIndex,this.setupEvents(),this.setupProductGallery()}reInit(imageSetIndex){this.flkty.destroy(),this.setOptions(),this.flkty=new Flickity(this,this.options),this.setupEvents(),this.selectedIndex=this.flkty.selectedIndex}setupEvents(){const _this=this;if(this.prev_button){let prev=this.prev_button.cloneNode(!0);this.prev_button.parentNode.append(prev),this.prev_button.remove(),prev.addEventListener("click",event=>{this.flkty.previous()}),prev.addEventListener("keyup",event=>{this.flkty.previous(),event.preventDefault()})}if(this.next_button){let next=this.next_button.cloneNode(!0);this.next_button.parentNode.append(next),this.next_button.remove(),next.addEventListener("click",event=>{this.flkty.next()}),next.addEventListener("keyup",event=>{this.flkty.next(),event.preventDefault()})}this.video_containers.forEach(container=>{container.querySelector("button").addEventListener("click",function(){container.setAttribute("hidden","")})}),this.flkty.on("settle",function(index){_this.selectedIndex=index}),this.flkty.on("change",index=>{let previous_slide=this.flkty.cells[_this.selectedIndex].element,previous_media=previous_slide.querySelector(".product-single__media"),active_thumbs=Array.from(this.thumbnails).filter(element=>element.classList.contains("is-active")),active_thumb=active_thumbs[index]?active_thumbs[index]:active_thumbs[0];this.thumbnails.forEach((item,i)=>{item.classList.remove("is-initial-selected")}),active_thumb.classList.add("is-initial-selected"),requestAnimationFrame(()=>{if(active_thumb.offsetParent===null)return;const windowHalfHeight=active_thumb.offsetParent.clientHeight/2,windowHalfWidth=active_thumb.offsetParent.clientWidth/2;active_thumb.parentElement.scrollTo({left:active_thumb.offsetLeft-windowHalfWidth+active_thumb.clientWidth/2,top:active_thumb.offsetTop-windowHalfHeight+active_thumb.clientHeight/2,behavior:"smooth"})}),previous_media.classList.contains("product-single__media-external-video")?(previous_media.dataset.provider==="youtube"?previous_media.querySelector("iframe").contentWindow.postMessage(JSON.stringify({event:"command",func:"pauseVideo",args:""}),"*"):previous_media.dataset.provider==="vimeo"&&previous_media.querySelector("iframe").contentWindow.postMessage(JSON.stringify({method:"pause"}),"*"),previous_media.querySelector(".product-single__media-external-video--play").removeAttribute("hidden")):previous_media.classList.contains("product-single__media-native-video")&&previous_media.querySelector("video").pause()}),setTimeout(()=>{Array.from(this.thumbnails).filter(element=>element.clientWidth>
10).forEach((thumbnail,index)=>{thumbnail.addEventListener("click",()=>{this.thumbnailClick(thumbnail,index)})})})}thumbnailClick(thumbnail,index){[].forEach.call(this.thumbnails,function(el){el.classList.remove("is-initial-selected")}),thumbnail.classList.add("is-initial-selected"),this.flkty.select(index)}setDraggable(draggable){this.flkty.options.draggable=draggable,this.flkty.updateDraggable()}selectCell(mediaId){this.flkty.selectCell(mediaId)}setupProductGallery(){this.querySelectorAll(".product-single__media-zoom").length&&this.setEventListeners()}buildItems(){return this.activeImages=Array.from(this.querySelectorAll(".product-images__slide.is-active .product-single__media-image")),this.activeImages.map(item=>{let index=[].indexOf.call(item.parentNode.parentNode.children,item.parentNode),activelink=item.querySelector(".product-single__media-zoom");return activelink.dataset.index=index,{src:activelink.getAttribute("href"),msrc:activelink.dataset.msrc,w:activelink.dataset.w,h:activelink.dataset.h}})}setEventListeners(){this.links=this.querySelectorAll(".product-single__media-zoom"),this.pswpElement=document.querySelectorAll(".pswp")[0],this.pswpOptions={maxSpreadZoom:2,loop:!1,allowPanToNext:!1,closeOnScroll:!1,showHideOpacity:!1,arrowKeys:!0,history:!1,captionEl:!1,fullscreenEl:!1,zoomEl:!1,shareEl:!1,counterEl:!0,arrowEl:!0,preloaderEl:!0,getThumbBoundsFn:()=>{const thumbnail=this.querySelector(".product-images__slide.is-selected"),pageYScroll=window.pageYOffset||document.documentElement.scrollTop,rect=thumbnail.getBoundingClientRect();return{x:rect.left,y:rect.top+pageYScroll,w:rect.width}}},this.links.forEach((link=>{link.addEventListener("click",e=>this.zoomClick(e,link))}))}zoomClick(e,link){if(this.items=this.buildItems(),this.pswpOptions.index=parseInt(link.dataset.index,10),typeof PhotoSwipe<"u"){let pswp=new PhotoSwipe(this.pswpElement,PhotoSwipeUI_Default,this.items,this.pswpOptions);pswp.listen("firstUpdate",function(){pswp.listen("parseVerticalMargin",function(item){item.vGap={top:50,bottom:50}})}),pswp.init()}e.preventDefault()}}customElements.define("product-slider",ProductSlider)}if(customElements.get("product-form")||customElements.define("product-form",class extends HTMLElement{constructor(){super()}connectedCallback(){this.sticky=this.dataset.sticky,this.form=document.getElementById(`product-form-${this.dataset.section}`),this.form.querySelector("[name=id]").disabled=!1,this.sticky||this.form.addEventListener("submit",this.onSubmitHandler.bind(this)),this.cartNotification=document.querySelector("cart-notification"),this.body=document.body,this.hideErrors=this.dataset.hideErrors==="true"}onSubmitHandler(evt){if(evt.preventDefault(),!this.form.reportValidity())return;const submitButtons=document.querySelectorAll(".single-add-to-cart-button");submitButtons.forEach(submitButton=>{submitButton.classList.contains("loading")||(submitButton.setAttribute("aria-disabled",!0),submitButton.classList.add("loading"))}),this.handleErrorMessage();const config={method:"POST",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"application/javascript"}};let formData=new FormData(this.form);formData.append("sections",this.getSectionsToRender().map(section=>section.section)),formData.append("sections_url",window.location.pathname),config.body=formData,fetch(`${theme.routes.cart_add_url}`,config).then(response=>response.json()).then(response=>{if(response.status){dispatchCustomEvent("product:variant-error",{source:"product-form",productVariantId:formData.get("id"),errors:response.description,message:response.message}),response.status===422&&document.documentElement.dispatchEvent(new CustomEvent("cart:refresh",{bubbles:!0})),this.handleErrorMessage(response.description);return}this.renderContents(response),dispatchCustomEvent("cart:item-added",{product:response.hasOwnProperty("items")?response.items[0]:response})}).catch(e=>{console.error(e)}).finally(()=>{submitButtons.forEach(submitButton=>{submitButton.classList.remove("loading"),submitButton.removeAttribute("aria-disabled")})})}getSectionsToRender(){return[{id:"Cart",section:"main-cart",selector:".thb-cart-form"},{id:"Cart-Drawer",section:"cart-drawer",selector:".cart-drawer"},{id:"cart-drawer-toggle",section:"cart-bubble",selector:".thb-secondary-area--item-count"},{id:"cart-drawer-toggle",section:"cart-bubble",selector:".thb-secondary-area--item-amount"}]}
1renderContents(parsedState){this.getSectionsToRender().forEach((section=>{if(!document.getElementById(section.id))return;const elementToReplace=document.getElementById(section.id).querySelector(section.selector)||document.getElementById(section.id);elementToReplace.innerHTML=this.getSectionInnerHTML(parsedState.sections[section.section],section.selector)}));let product_drawer=document.getElementById("Product-Modal");product_drawer&&product_drawer.contains(this)&&product_drawer.hide(),document.getElementById("Cart-Drawer")&&(document.getElementById("Cart-Drawer").open(),document.getElementById("Cart-Drawer").removeProductEvent())}getSectionInnerHTML(html,selector=".shopify-section"){return new DOMParser().parseFromString(html,"text/html").querySelector(selector).innerHTML}handleErrorMessage(errorMessage=!1){this.hideErrors||(this.errorMessageWrapper=this.errorMessageWrapper||this.querySelector(".product-form__error-message-wrapper"),this.errorMessageWrapper&&(this.errorMessage=this.errorMessage||this.errorMessageWrapper.querySelector(".product-form__error-message"),this.errorMessageWrapper.toggleAttribute("hidden",!errorMessage),errorMessage&&(this.errorMessage.textContent=errorMessage)))}}),!customElements.get("product-add-to-cart-sticky")){class ProductAddToCartSticky extends HTMLElement{constructor(){super()}connectedCallback(){this.moved||(this.moved=!0,document.body.appendChild(this),this.setupObservers())}setupObservers(){let _this=this,observer=new IntersectionObserver(function(entries){entries.forEach(entry=>{if(entry.target===footer&&(entry.intersectionRatio>0?_this.classList.remove("sticky--visible"):entry.intersectionRatio==0&&_this.formPassed&&_this.classList.add("sticky--visible")),entry.target===form){let boundingRect=form.getBoundingClientRect();entry.intersectionRatio===0&&window.scrollY>boundingRect.top+boundingRect.height?(_this.formPassed=!0,_this.classList.add("sticky--visible")):entry.intersectionRatio===1&&(_this.formPassed=!1,_this.classList.remove("sticky--visible"))}})},{threshold:[0,1]}),form=document.getElementById(`product-form-${this.dataset.section}`),footer=document.getElementById("footer");_this.formPassed=!1,observer.observe(form),observer.observe(footer)}}customElements.define("product-add-to-cart-sticky",ProductAddToCartSticky)}typeof addIdToRecentlyViewed<"u"&&addIdToRecentlyViewed(); 2//# sourceMappingURL=/cdn/shop/t/26/assets/product.js.map?v=6729726168541114611772612501
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.