1function throttle(t,e=300){let i=-1,n=!1;return()=>{clearTimeout(i),i=setTimeout(t,e),n||(t.call(),n=!0,setTimeout(()=>{n=!1},e))}}customElements.get("sticky-atc")||customElements.whenDefined("product-form").then(()=>{class t 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(t.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(t){t.preventDefault();if(!this.section.querySelector('product-form buy-buttons input[name="id"]').value){const e=this.section.querySelector("#product-info");return void(e&&e.offsetParent&&(t.preventDefault(),theme.scrollToRevealElement(e)))}const e=this.mainProductForm.validate();if(!e||!this.mainProductForm.form.reportValidity()){if(t.preventDefault(),e){const t=Array.from(this.mainProductForm.form.elements).find(t=>!t.checkValidity());setTimeout(()=>theme.scrollToRevealElement(t),100)}else theme.scrollToRevealElement(this.mainProductForm);return}this.form.querySelectorAll("[data-copied]").forEach(t=>t.remove());const i=new FormData(this.mainProductForm.form);for(const t of i)if(!this.form.querySelector(`[name="${t[0]}"]`)){const e=document.createElement("input");e.name=t[0],e.value=t[1],e.hidden=!0,e.setAttribute("data-copied",""),this.form.append(e)}super.handleSubmit(t)}static handleScroll(){const t=document.querySelector(".pageheader--sticky")?document.querySelector(".section-header").offsetHeight:0;this.classList.toggle("sticky-atc--out",this.buyButtons.getBoundingClientRect().bottom>t),document.body.classList.toggle("scrolled-to-bottom",window.scrollY+window.innerHeight+100>document.body.scrollHeight)}onVariantChange(t){const e=this.form?.querySelector('[name="id"]');t.detail.variant?(this.variantTitle.textContent=t.detail.variant.title,this.variantContainer.hidden=!1,e&&(e.value=t.detail.variant.id)):(this.variantContainer.hidden=!0,this.variantTitle.textContent="",e&&(e.value="")),this.updateImage(),this.updateAddToCartButton(t.detail.variant),this.setErrorMsgState()}updateImage(){const t=this.section.querySelector(".media-gallery .main-image .slider__item.is-active .product-media img");t?this.imageContainer.innerHTML=t.outerHTML:this.imageContainer.textContent=""}updateAddToCartButton(t){if(!this.submitBtn)return;const e=t&&t.available,i=t?theme.strings.noStock:this.submitBtn.dataset.unavailableText;this.submitBtn.textContent=e?this.submitBtn.dataset.addToCartText:i}}customElements.define("sticky-atc",t)});
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.