1customElements.get("quick-add-modal")||customElements.define("quick-add-modal",class extends ModalDialog{constructor(){super(),this.modalContent=this.querySelector('[id^="QuickAddInfo-"]'),this.resizeObserver=null,this.mutationObserver=null,this.addEventListener("product-info:loaded",({target})=>{target.addPreProcessCallback(this.preprocessHTML.bind(this))})}initObservers(){const updateHeight=()=>{const wrapper=this.querySelector(".product__info-wrapper");wrapper&&this.style.setProperty("--quick-add-modal-height",`${wrapper.scrollHeight}px`)};let timeout;const debouncedUpdateHeight=()=>{clearTimeout(timeout),timeout=setTimeout(updateHeight,50)};updateHeight(),this.resizeObserver=new ResizeObserver(debouncedUpdateHeight),this.resizeObserver.observe(this),this.mutationObserver=new MutationObserver(debouncedUpdateHeight),this.mutationObserver.observe(this,{childList:!0,subtree:!0})}hide(preventFocus=!1){const cartNotification=document.querySelector("cart-notification")||document.querySelector("cart-drawer");cartNotification&&cartNotification.setActiveElement(this.openedBy),this.modalContent.innerHTML="",preventFocus&&(this.openedBy=null),super.hide(),this.resizeObserver?.disconnect(),this.mutationObserver?.disconnect(),this.resizeObserver=null,this.mutationObserver=null}show(opener){opener.setAttribute("aria-disabled",!0),opener.classList.add("loading"),opener.querySelector(".loading__spinner").classList.remove("hidden"),this.opener=opener,fetch(opener.getAttribute("data-product-url")).then(response=>response.text()).then(responseText=>{const productElement=new DOMParser().parseFromString(responseText,"text/html").querySelector("product-info");this.preprocessHTML(productElement),HTMLUpdateUtility.setInnerHTML(this.modalContent,productElement.outerHTML),this.initObservers(),window.Shopify&&Shopify.PaymentButton&&Shopify.PaymentButton.init(),window.ProductModel&&window.ProductModel.loadShopifyXR(),super.show(opener),setTimeout(()=>{trapFocus(this,this.querySelector('[id^="ModalClose-"]'))},210)}).finally(()=>{opener.removeAttribute("aria-disabled"),opener.classList.remove("loading"),opener.querySelector(".loading__spinner").classList.add("hidden")})}preprocessHTML(productElement){this.preventDuplicatedIDs(productElement),this.removeDOMElements(productElement),this.preventVariantURLSwitching(productElement)}preventVariantURLSwitching(productElement){productElement.setAttribute("data-update-url","false")}removeDOMElements(productElement){[".quick-add-hidden",".has_video"].forEach(selector=>{productElement.querySelectorAll(selector).forEach(el=>el.remove())});const oldSlider=productElement.querySelector("product-gallery-slider");if(oldSlider){const newSlider=document.createElement("quick-add-slider");for(;oldSlider.firstChild;)newSlider.appendChild(oldSlider.firstChild);for(const attr of oldSlider.attributes)newSlider.setAttribute(attr.name,attr.value);oldSlider.replaceWith(newSlider)}}preventDuplicatedIDs(productElement){const sectionId=productElement.dataset.section,oldId=sectionId,newId=`quickadd-${sectionId}`;productElement.innerHTML=productElement.innerHTML.replaceAll(oldId,newId),Array.from(productElement.attributes).forEach(attribute=>{attribute.value.includes(oldId)&&productElement.setAttribute(attribute.name,attribute.value.replace(oldId,newId))}),productElement.dataset.originalSection=sectionId}}); 2//# sourceMappingURL=/cdn/shop/t/354/assets/quick-add.js.map?v=161977312449181424691771427783
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.