1customElements.get("sticky-atc-bar")||customElements.define("sticky-atc-bar",class extends HTMLElement{constructor(){super(),document.body.classList.add("sticky-atc-bar-enabled"),this.selectors={variantIdSelect:'[name="id"]'}}get sectionId(){return this.dataset.originalSection||this.dataset.section}connectedCallback(){this.productFormActions=document.querySelector(".f-main-product-form"),this.container=this.closest(".sticky-atc-bar"),this.mainProduct=document.querySelector("product-info[id^='MainProduct']"),this.variantData=this.getVariantData(),this.select=this.querySelector("select"),this.init(),this.select.addEventListener("change",()=>{const mainVariantPicker=this.mainProduct.querySelector("variant-picker"),selectedVariantId=this.querySelector(this.selectors.variantIdSelect).value;this.currentVariant=this.variantData.find(variant=>variant.id===Number(selectedVariantId)),mainVariantPicker&&(Array.from(mainVariantPicker.querySelectorAll("select, .variant-picker__option-values"),(element,index)=>{const variantOptionVal=this.currentVariant.options[index];switch(element.tagName){case"SELECT":element.value=variantOptionVal;break;case"DIV":Array.from(element.querySelectorAll("input")).forEach(radio=>{radio.value===variantOptionVal&&(radio.checked=!0)});break}}),mainVariantPicker.dispatchEvent(new Event("change"))),this.updatePrice(),this.updateButton(!0,"",!1),this.currentVariant?this.updateButton(!this.currentVariant.available,window.FoxThemeStrings.soldOut):this.updateButton(!0,"",!0)})}getVariantData(){return this.variantData=this.variantData||JSON.parse(this.container.querySelector('[type="application/json"]').textContent),this.variantData}init(){if(!this.productFormActions){this.container.classList.add("sticky-atc-bar--show");return}this.productId=this.dataset.productId;const isMobile=window.matchMedia("(max-width: 639px)");try{isMobile.addEventListener("change",this.checkDevice.bind(this))}catch{try{isMobile.addListener(this.checkDevice.bind(this))}catch(e2){console.error(e2)}}this.checkDevice(isMobile);const rootMargin=`-${window.FoxThemeSettings.headerHeight||80}px 0px 0px 0px`;this.observer=new IntersectionObserver(entries=>{entries.forEach(entry=>{const method=entry.intersectionRatio!==1?"add":"remove";this.container.classList[method]("sticky-atc-bar--show")})},{threshold:1,rootMargin}),this.setObserveTarget(),this.syncWithMainProductForm()}setObserveTarget(){this.observer.observe(this.productFormActions),this.observeTarget=this.productFormActions}checkDevice(e){setTimeout(()=>{const sectionHeight=this.clientHeight+"px";document.documentElement.style.setProperty("--f-sticky-atc-bar-height",sectionHeight)},100)}updateButton(disable=!0,text,modifyClass=!0){const productForm=document.getElementById("product-form-sticky-atc-bar");if(!productForm)return;const addButton=productForm.querySelector('[name="add"]'),addButtonText=productForm.querySelector('[name="add"] > span:not(.f-icon)');addButton&&(disable?(addButton.setAttribute("disabled","disabled"),text&&(addButtonText.textContent=text)):(addButton.removeAttribute("disabled"),addButtonText.textContent=window.FoxThemeStrings.addToCart))}updateQuantityInput(){const selectedVariantId=this.querySelector(this.selectors.variantIdSelect).value;this.currentVariant=this.variantData.find(variant=>variant.id===Number(selectedVariantId)),fetch(`${this.getAttribute("data-url")}?variant=${this.currentVariant.id}§ion_id=${this.sectionId}`).then(response=>response.text()).then(responseText=>{const parsedHTML=new DOMParser().parseFromString(responseText,"text/html"),quantity=document.querySelector(`#QuantitySticky-${this.sectionId}`),newQuantity=parsedHTML.querySelector(`#QuantitySticky-${this.sectionId}`);newQuantity&&(quantity.innerHTML=newQuantity.innerHTML)}).catch(error=>{console.error(error)}).finally(()=>{})}updatePrice(){const classes={onSale:"f-price--on-sale",soldOut:"f-price--sold-out"},selectors={priceWrapper:".f-price",salePrice:".f-price-item--sale",compareAtPrice:[".f-price-item--regular"],unitPrice:".f-price__unit",saleBadge:".f-price__badge-sale",saleAmount:"[data-sale-value]"},money_format=window.FoxThemeSettings.money_format,{priceWrapper,salePrice,unitPrice,compareAtPrice}=queryDomNodes(selectors,this),{compare_at_price,price,unit_price_measurement}=this.currentVariant,onSale=compare_at_price&&compare_at_price>price,soldOut=!this.currentVariant.available;if(onSale?priceWrapper.classList.add(classes.onSale):priceWrapper.classList.remove(classes.onSale),soldOut?priceWrapper.classList.add(classes.soldOut):priceWrapper.classList.remove(classes.soldOut),priceWrapper&&priceWrapper.classList.remove("visibility-hidden"),salePrice&&(salePrice.innerHTML=formatMoney(price,money_format)),compareAtPrice&&compareAtPrice.length&&compare_at_price>price?compareAtPrice.forEach(item=>item.innerHTML=formatMoney(compare_at_price,money_format)):compareAtPrice.forEach(item=>item.innerHTML=formatMoney(price,money_format)),unit_price_measurement&&unitPrice){unitPrice.classList.remove("f-hidden");const unitPriceContent=`<span>${formatMoney(this.currentVariant.unit_price,money_format)}</span>/<span data-unit-price-base-unit>${getBaseUnit(this.currentVariant)}</span>`;unitPrice.innerHTML=unitPriceContent}else unitPrice.classList.add("f-hidden")}
1syncWithMainProductForm(){const variantInput=this.querySelector('[name="id"]');window.FoxThemeEvents.subscribe(PUB_SUB_EVENTS.variantChange,evt=>{evt.data.sectionId===this.mainProduct.dataset.section&&(this.currentVariant=evt.data.variant,this.currentVariant?(this.container.classList.remove("f-hidden"),variantInput.value=evt.data.variant.id,this.updatePrice(),this.updateButton(!0,"",!1),evt.data.variant?this.updateButton(!evt.data.variant.available,window.FoxThemeStrings.soldOut):this.updateButton(!0,"",!1)):this.container.classList.add("f-hidden"),this.updateQuantityInput())})}}); 2//# sourceMappingURL=/cdn/shop/t/31/assets/sticky-atc-bar.js.map?v=67702604267456092351778256390
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.