1customElements.get("quick-add-modal")||customElements.define("quick-add-modal",class extends ModalDialog{constructor(){super(),this.modalContent=this.querySelector('[id^="QuickAddInfo-"]'),this._modalSwipers=[],this._onVariantChangeRef=null,this._onOptionChangeRef=null}hide(preventFocus=!1){const cartNotification=document.querySelector("cart-notification")||document.querySelector("cart-drawer");cartNotification&&cartNotification.setActiveElement(this.openedBy),this._onVariantChangeRef&&(this.modalContent.removeEventListener("variant:change",this._onVariantChangeRef),this.modalContent.removeEventListener("variant:changed",this._onVariantChangeRef),document.removeEventListener("variant:change",this._onVariantChangeRef),document.removeEventListener("variant:changed",this._onVariantChangeRef),this._onVariantChangeRef=null),this._onOptionChangeRef&&(this.modalContent.removeEventListener("change",this._onOptionChangeRef),this._onOptionChangeRef=null),this.modalContent.querySelectorAll(".swiper, .swiper-container").forEach(el=>{if(el.swiper)try{el.swiper.destroy(!0,!0)}catch{}}),this._modalSwipers=[],this.modalContent.innerHTML="",preventFocus&&(this.openedBy=null),super.hide()}show(opener){opener.setAttribute("aria-disabled",!0),opener.classList.add("loading"),opener.querySelector(".loading-overlay__spinner").classList.remove("hidden"),fetch(opener.getAttribute("data-product-url")).then(r=>r.text()).then(responseText=>{const productSection=new DOMParser().parseFromString(responseText,"text/html").querySelector('section[id^="MainProduct-"]');if(!productSection)throw new Error("Product section not found");const originalSectionId=productSection.dataset.section;let sectionHTML=productSection.outerHTML.replaceAll(originalSectionId,`quickadd-${originalSectionId}`);this.setInnerHTML(this.modalContent,sectionHTML),this.modalSection=this.modalContent.querySelector('section[id^="MainProduct-"]'),this.addOriginalSectionRefs(originalSectionId),window.Shopify&&Shopify.PaymentButton&&Shopify.PaymentButton.init(),window.ProductModel&&window.ProductModel.loadShopifyXR(),this.removeGalleryListSemantic(),this.updateImageSizes(),this.preventVariantURLSwitching(),super.show(opener),this.rebuildSwipers(),this.bindVariantSync(),this.syncToCurrentVariant();try{window.dispatchEvent(new Event("resize"))}catch{}}).finally(()=>{opener.removeAttribute("aria-disabled"),opener.classList.remove("loading"),opener.querySelector(".loading-overlay__spinner").classList.add("hidden")})}setInnerHTML(element,html){element.innerHTML=html,element.querySelectorAll("script").forEach(oldScript=>{const s=document.createElement("script");Array.from(oldScript.attributes).forEach(a=>s.setAttribute(a.name,a.value)),s.appendChild(document.createTextNode(oldScript.innerHTML)),oldScript.parentNode.replaceChild(s,oldScript)})}preventVariantURLSwitching(){const vs=this.modalContent.querySelector("variant-radios,variant-selects");vs&&vs.setAttribute("data-update-url","false")}addOriginalSectionRefs(originalSectionId){this.modalContent.querySelectorAll("variant-selects, variant-radios, .product-form, product-form").forEach(el=>{try{el.dataset.originalSection=originalSectionId}catch{}});const form=this.modalContent.querySelector('form[action^="/cart/add"]');if(form)try{form.dataset.originalSection=originalSectionId}catch{}}removeGalleryListSemantic(){const galleryList=this.modalContent.querySelector('[id^="Slider-Gallery"]');galleryList&&(galleryList.setAttribute("role","presentation"),galleryList.querySelectorAll('[id^="Slide-"]').forEach(li=>li.setAttribute("role","presentation")))}updateImageSizes(){const product=this.modalContent.querySelector(".product");if(!(product&&product.classList.contains("product--columns")))return;const mediaImages=product.querySelectorAll(".product__media img");if(!mediaImages.length)return;let sizes="(min-width: 1000px) 715px, (min-width: 750px) calc((100vw - 11.5rem) / 2), calc(100vw - 4rem)";product.classList.contains("product--medium")?sizes=sizes.replace("715px","605px"):product.classList.contains("product--small")&&(sizes=sizes.replace("715px","495px")),mediaImages.forEac
1h(img=>img.setAttribute("sizes",sizes))}rebuildSwipers(){if(this.modalContent.querySelectorAll(".swiper, .swiper-container").forEach(el=>{if(el.swiper)try{el.swiper.destroy(!0,!0)}catch{}}),this._modalSwipers=[],!window.Swiper)return;this.modalContent.querySelectorAll('[id^="Slider-Gallery-"]').forEach(gallery=>{const mainEl=gallery.querySelector(".main-swiper"),thumbEl=gallery.querySelector(".thumb-container"),nextEl=gallery.querySelector(".thumb-next"),prevEl=gallery.querySelector(".thumb-prev"),pagEl=gallery.querySelector(".swiper-pagination");let thumbSwiper=null;if(thumbEl&&(thumbSwiper=new Swiper(thumbEl,{breakpoints:{991:{direction:"vertical",slidesPerView:4},0:{direction:"horizontal",slidesPerView:6}},loop:!0,slideToClickedSlide:!0,centeredSlidesBounds:!0,spaceBetween:5,autoHeight:!0,mousewheel:!0,navigation:nextEl&&prevEl?{nextEl,prevEl}:void 0,observer:!0,observeParents:!0,observeSlideChildren:!0}),this._modalSwipers.push(thumbSwiper)),mainEl){const mainSwiper=new Swiper(mainEl,{slidesPerView:"auto",spaceBetween:3,centeredSlides:!1,loop:!1,autoHeight:!1,thumbs:thumbSwiper?{swiper:thumbSwiper}:void 0,pagination:pagEl?{el:pagEl,clickable:!0}:void 0,observer:!0,observeParents:!0,observeSlideChildren:!0,preloadImages:!1,lazy:{loadOnTransitionStart:!0}});this._modalSwipers.push(mainSwiper)}})}bindVariantSync(){this._onVariantChangeRef&&(this.modalContent.removeEventListener("variant:change",this._onVariantChangeRef),this.modalContent.removeEventListener("variant:changed",this._onVariantChangeRef),document.removeEventListener("variant:change",this._onVariantChangeRef),document.removeEventListener("variant:changed",this._onVariantChangeRef)),this._onOptionChangeRef&&this.modalContent.removeEventListener("change",this._onOptionChangeRef),this._onVariantChangeRef=evt=>{const variant=evt?.detail?.variant||evt?.variant||null;this.syncToVariant(variant)},this.modalContent.addEventListener("variant:change",this._onVariantChangeRef),this.modalContent.addEventListener("variant:changed",this._onVariantChangeRef),document.addEventListener("variant:change",this._onVariantChangeRef),document.addEventListener("variant:changed",this._onVariantChangeRef),this._onOptionChangeRef=()=>{const variant=this.readCurrentVariantFromDOM();variant&&this.syncToVariant(variant)},this.modalContent.addEventListener("change",this._onOptionChangeRef)}syncToCurrentVariant(){const v=this.readCurrentVariantFromDOM();v&&this.syncToVariant(v)}readCurrentVariantFromDOM(){try{const jsonEl=this.modalContent.querySelector('[type="application/json"][data-selected-variant]');if(jsonEl){const v=JSON.parse(jsonEl.textContent);if(v&&v.id)return v}}catch{}const picker=this.modalContent.querySelector("variant-radios, variant-selects");if(picker&&picker.currentVariant)return picker.currentVariant;const idInput=this.modalContent.querySelector('form[action^="/cart/add"] input[name="id"]');return idInput&&idInput.value?{id:Number(idInput.value)}:null}syncToVariant(variant){const mediaId=variant?.featured_media?.id;if(!mediaId)return;const key=`${this.modalContent.querySelector("[data-section]")?.dataset?.section||""}-${mediaId}`,mainEl=this.modalContent.querySelector(".main-swiper");if(!mainEl||!mainEl.swiper)return;const slides=Array.from(mainEl.querySelectorAll(".swiper-slide")),target=this.modalContent.querySelector(`.main-swiper .swiper-slide[data-media-id="${key}"]`);if(!target)return;const idx=slides.indexOf(target);if(idx<0)return;!!mainEl.swiper.params.loop&&typeof mainEl.swiper.slideToLoop=="function"?mainEl.swiper.slideToLoop(idx):mainEl.swiper.slideTo(idx);const thumbEl=this.modalContent.querySelector(".thumb-container");if(thumbEl&&thumbEl.swiper){const tSlides=Array.from(thumbEl.querySelectorAll(".swiper-slide")),tTarget=this.modalContent.querySelector(`.thumb-container .swiper-slide[data-media-id="${key}"]`),tIdx=tTarget?tSlides.indexOf(tTarget):-1;tIdx>=0&&(!!thumbEl.swiper.params.loop&&typeof thumbEl.swiper.slideToLoop=="function"?thumbEl.swiper.slideToLoop(tIdx):thumbEl.swiper.slideTo(tIdx))}}}); 2//# sourceMappingURL=/cdn/shop/t/8/assets/quick-add.js.map?v=174744609817414135841760819065
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.