1function throttle(fn,wait=300){let throttleTimeoutId=-1,tick=!1;return()=>{clearTimeout(throttleTimeoutId),throttleTimeoutId=setTimeout(fn,wait),tick||(fn.call(),tick=!0,setTimeout(()=>{tick=!1},wait))}}customElements.get("sticky-atc")||customElements.whenDefined("product-form").then(()=>{class StickyAtc extends customElements.get("product-form"){constructor(){super(),this.section=this.closest(".section-main-product"),this.mainProductForm=this.section.querySelector(".js-product"),this.buyButtons=this.section.querySelector("buy-buttons"),this.imageContainer=this.querySelector(".sticky-atc__image"),this.variantContainer=this.querySelector(".sticky-atc__details__variant"),this.variantTitle=this.querySelector(".sticky-atc__details__variant__title"),this.variantTitle?.toggleAttribute("hidden",!this.section.querySelector("variant-picker")),this.throttledOnScroll=throttle(StickyAtc.handleScroll.bind(this)),window.addEventListener("scroll",this.throttledOnScroll),this.section.addEventListener("on:variant:change",this.onVariantChange.bind(this)),this.section.addEventListener("on:media-gallery:change",this.updateImage.bind(this)),this.updateImage()}disconnectedCallback(){window.removeEventListener("scroll",this.throttledOnScroll)}async handleSubmit(evt){if(evt.preventDefault(),!this.section.querySelector('product-form buy-buttons input[name="id"]').value){const target=this.section.querySelector("#product-info");target&&target.offsetParent&&(evt.preventDefault(),theme.scrollToRevealElement(target));return}const customFormValid=this.mainProductForm.validate();if(!customFormValid||!this.mainProductForm.form.reportValidity()){if(evt.preventDefault(),!customFormValid)theme.scrollToRevealElement(this.mainProductForm);else{const input=Array.from(this.mainProductForm.form.elements).find(el=>!el.checkValidity());setTimeout(()=>theme.scrollToRevealElement(input),100)}return}this.form.querySelectorAll("[data-copied]").forEach(el=>el.remove());const formData=new FormData(this.mainProductForm.form);for(const p of formData)if(!this.form.querySelector(`[name="${p[0]}"]`)){const input=document.createElement("input");input.name=p[0],input.value=p[1],input.hidden=!0,input.setAttribute("data-copied",""),this.form.append(input)}super.handleSubmit(evt)}static handleScroll(){const topOffset=document.querySelector(".pageheader--sticky")?document.querySelector(".section-header").offsetHeight:0;this.classList.toggle("sticky-atc--out",this.buyButtons.getBoundingClientRect().bottom>topOffset),document.body.classList.toggle("scrolled-to-bottom",window.scrollY+window.innerHeight+100>document.body.scrollHeight)}onVariantChange(evt){const idInput=this.form?.querySelector('[name="id"]');evt.detail.variant?(this.variantTitle.textContent=evt.detail.variant.title,this.variantContainer.hidden=!1,idInput&&(idInput.value=evt.detail.variant.id)):(this.variantContainer.hidden=!0,this.variantTitle.textContent="",idInput&&(idInput.value="")),this.updateImage(),this.updateAddToCartButton(evt.detail.variant,evt.detail.clickedElement),this.setErrorMsgState()}updateImage(){const mainImage=this.section.querySelector(".media-gallery .main-image .slider__item.is-active .product-media img");mainImage?this.imageContainer.innerHTML=mainImage.outerHTML:this.imageContainer.textContent=""}updateAddToCartButton(variant,clickedElement){if(!this.submitBtn)return;const{preorder,contactConsultant,addToCart,noStock}=theme.strings,dataContactURL=this.submitBtn.getAttribute("data-contact-url"),unavailableStr=variant?noStock:this.submitBtn.dataset.unavailableText,onClickEvent=`window.location.href='${dataContactURL}'`,onClickEventEmpty="",typeButton="button",typeSubmit="submit",labelEl=clickedElement?.nextElementSibling;if(!labelEl)return;const isPreorder=labelEl.getAttribute("data-preorder")==="true",inventoryQty=parseInt(labelEl.getAttribute("data-inventory-qty"),10),isDiscontinued=labelEl.getAttribute("data-discontinued")==="true",variantAvailable=variant?.available,setButton=(text,onclick="",typeText)=>{this.submitBtn.textContent=text,this.submitBtn.setAttribute("data-add-to-cart-text",text),this.submitBtn.setAttribute("type",typeText),this.submitBtn.setAttribute("onclick",onclick)};variantAvailable&&isPreorder&&inventoryQty<=0?setButton(preorder,onClickEventEmpty,typeSubmit):!variantAvailable&&isDiscontinued?setButton(unavailableStr,onClickEventEmpty,typeSubmit):variantAvailable?setButton(addToCart,onClickEventEmpty,typeSubmit):setButton(contactConsultant,onClickEvent,typeButton)}}customElements.define("sticky-atc",StickyAtc)}); 2//# sourceMappingURL=/cdn/shop/t/6/assets/sticky-atc.js.map?v=10555876859651477781758190145
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.