1if(customElements.component="quick-view",!customElements.get(customElements.component)){class quickView extends HTMLElement{constructor(){super(),this.initEvents(),this.initFocusTrap(),window.addEventListener("init-quickview",event=>{this.initEvents(),this.initFocusTrap()}),window.theme.quickView=this}initEvents(){this.initOpenEvents(),this.initCloseEvents()}initOpenEvents(){document.querySelectorAll("[data-quick-view-handle]").forEach(btn=>{btn.classList.contains("js-quick-view-active")||(btn.classList.add("js-quick-view-active"),btn.addEventListener("click",event=>{event.preventDefault();const oneSize=event.target.dataset.oneSize,handle=event.target.dataset.quickViewHandle;if(oneSize)window.theme.product.loadProduct(handle,!0).then(product=>{product&&window.theme.cart.add(product.variants[0].id,1).catch(error=>{sessionStorage.removeItem(product.handle),btn.lastChild.textContent=" Sold Out",btn.setAttribute("disabled",!0),console.error(error)})}).catch(error=>{console.error(error)});else{let content=document.querySelector("[data-quick-view-container]"),productCard=document.querySelector('product-card[data-handle="'+btn.dataset.quickViewHandle+'"]');this.open(handle,content.style.height,productCard.offsetWidth,btn)}}))})}initCloseEvents(){if(this.querySelectorAll("[data-quick-view-close]").forEach(element=>{element.addEventListener("click",event=>{event.preventDefault(),this.close()})}),window.addEventListener("closeQuickView",event=>{this.close()}),window.screenMode=="desktop-large"&&window.addEventListener("scroll",()=>{setTimeout(()=>{let coord=document.querySelector("[data-quick-view-container]").getBoundingClientRect();(coord.top<=0||coord.bottom>=(window.innerHeight||document.documentElement.clientHeight))&&document.querySelector(".quick-view__overlay").classList.contains("active")&&this.close()},400)}),window.screenMode=="mobile"){let touchstartY,touchendY;document.querySelector("[data-quick-view-container]").addEventListener("touchstart",event=>{touchstartY=event.changedTouches[0].screenY},!1),document.querySelector("[data-quick-view-container]").addEventListener("touchend",event=>{touchendY=event.changedTouches[0].screenY,touchendY-touchstartY>50&&this.close()},!1)}}initSlider(product){let slider=this.querySelector("[data-slide-init]"),slidesPerView=1;product.images[0].aspect_ratio<=.7&&window.screenMode=="mobile"?slidesPerView=1.8:slider?.classList&&slider.classList.add("one-slide"),slider&&this.enable_carousel?this.slider=new Swiper(slider,{preloadImages:!0,slidesPerView,spaceBetween:16,autoHeight:!1,lazy:{loadPrevNext:!0},pagination:{el:".swiper-pagination",dynamicBullets:!0},navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},on:{init:()=>{this.classList.add("active-slider"),this.classList.add("loaded")},slideChange:index=>{}},centeredSlidesBounds:!0}):this.classList.add("loaded")}destroySlider(){this.slider&&this.enable_carousel&&(this.slider.destroy(),this.enable_carousel=!1,this.classList.remove("active-slider"))}open(handle,height,width,btn){window.theme&&window.theme.product&&typeof window.theme.product.loadProduct=="function"?(this.productFetchController&&this.productFetchController.abort(),this.productFetchController=new AbortController,window.theme.product.loadProduct(handle,!0,this.productFetchController.signal).then(product=>{if(!product)return;let quickView2=document.querySelector("[data-quick-view-container]");this.loadContent(product,height,width).then(content=>{if(quickView2&&content){if(quickView2.innerHTML=content,document.querySelector(".quick-view__overlay").classList.add("active"),this.initSlider(product),this.initCloseEvents(),window.screenMode=="desktop-large"){let productCard2=document.querySelector('product-card[data-handle="'+handle+'"]');this.querySelector(".quick-view__image-wrapper").style.height=productCard2.offsetHeight+"px",this.querySelector(".swiper-wrapper").style.height=productCard2.offsetHeight+"px",this.querySelector(".quick-view__image-wrapper").style.width=productCard2.offsetWidth+"px"}this.classList.add("active"),this.setAttribute("aria-hidden","false"),this.activeFocusTrap(),this.initQtySelector(),this.initStockLevel(product);let container=document.querySelector("[data-quick-view-container]"),productCard=document.querySelector('product-card[data-handle="'+btn.dataset.quickViewHandle+'"]');
1if(window.screenMode=="tablet"||window.screenMode=="desktop"&&btn.dataset.minicart!="true")container.style.left="auto",container.style.right="0px";else if(window.screenMode=="desktop-large"&&btn.dataset.minicart!="true"){let coord=productCard.getBoundingClientRect();coord.left+productCard.offsetWidth*2>window.innerWidth?container.style.left=coord.left-productCard.offsetWidth-34+"px":container.style.left=coord.left+"px",container.style.top=coord.top+"px",container.style.height=productCard.offsetHeight+"px",container.style.width=productCard.offsetWidth+"px",container.style.width=productCard.offsetWidth*2+34+"px";let form=this.querySelector("[data-quick-view-form]");form&&form.classList.add("move"),window.addEventListener("scroll",()=>{coord=productCard.getBoundingClientRect(),container.style.top=coord.top+"px"});const scrollTop=window.pageYOffset||document.documentElement.scrollTop;window.scrollTo({top:scrollTop+coord.top-150,behavior:"smooth"})}}}).catch(error=>{console.error(error)})}).catch(error=>{console.error(error)})):console.warn('The "window.theme.product.loadProduct" object is not available.')}close(){this.productFetchController&&(this.productFetchController.abort(),this.productFetchController=null),this.disableFocusTrap(),this.variantChangeHandler&&(window.removeEventListener("variant-change",this.variantChangeHandler),this.variantChangeHandler=null),setTimeout(()=>{this.destroySlider();let content=document.querySelector(".quick-view__content");content&&(content.remove(),this.setAttribute("aria-hidden","true")),document.querySelector("body").classList.remove("quick-view-active"),document.querySelector(".quick-view__overlay").classList.remove("active"),window.screenMode!="desktop-large"&&(document.body.style.overflow="auto"),this.classList.remove("loaded"),this.classList.remove("active")},400)}initStockLevel(product){const stockContainer=this.querySelector("[data-stock-container]");if(!stockContainer)return;const productCard=document.querySelector(`product-card[data-handle="${product.handle}"]`);if(!productCard)return;const stockLevelWrappers=productCard.querySelectorAll(".product-card__variant-stocklevel-wrapper");if(stockLevelWrappers.length>0){stockLevelWrappers.forEach(wrapper=>{try{const clonedWrapper=wrapper.cloneNode(!0),variantId=wrapper.getAttribute("data-variant-stocklevel");clonedWrapper.className="variant-stocklevel-wrapper",clonedWrapper.setAttribute("data-variant-stocklevel",variantId),clonedWrapper.classList.add("hidden");const stockComponent=clonedWrapper.querySelector("stocklevel-component");stockComponent&&(stockComponent.className="product-form__stocklevel quick-view__stocklevel"),stockContainer.appendChild(clonedWrapper)}catch(error){console.log("Error in cloning stockLevelWrappers node: ",error)}});const firstVariantId=product.variants[0].id,firstWrapper=stockContainer.querySelector(`[data-variant-stocklevel="${firstVariantId}"]`);firstWrapper&&firstWrapper.classList.remove("hidden"),this.variantChangeHandler=event=>{if(event.detail&&event.detail.variant&&event.detail.variant.id&&event.detail.product&&event.detail.product.handle===product.handle){const variantId=event.detail.variant.id;stockContainer.querySelectorAll(".variant-stocklevel-wrapper").forEach(wrapper=>{wrapper.getAttribute("data-variant-stocklevel")==variantId?wrapper.classList.remove("hidden"):wrapper.classList.add("hidden")})}},window.addEventListener("variant-change",this.variantChangeHandler)}else{const singleStockLevel=productCard.querySelector("stocklevel-component");if(singleStockLevel){const clonedStock=singleStockLevel.cloneNode(!0);clonedStock.className="product-form__stocklevel quick-view__stocklevel",stockContainer.appendChild(clonedStock)}}}loadContent(product,height,width){return new Promise((resolve,reject)=>{let content=window.quickViewTemplate.quick_view_content_layout;width=width+100,height=document.querySelector("product-card[data-handle='"+product.handle+"']").offsetHeight;let productImages="";product.images.forEach(image=>{let src=image.src,ext=window.theme.file.getExtension(src),imageSize="500x"+parseInt(500/product.images[0].aspect_ratio);src&&(image.src=src.replace(new RegExp(ext),"_"+imageSize+"_crop_top"+ext)),productImages+=`<div class="swiper-slide quick-view__
1carousel-item" data-carousel-item-photo><img src="${image.src}" alt="${image.alt}" loading="lazy" style="height:100%;width:auto;object-fit:cover;" /></div>`}),product.images.length>1&&(this.enable_carousel=!0),content=content.replace(/{{productImage}}/g,productImages),content=content.replace(/{{productTitle}}/g,product.title);let product_price=`<span class="quick-view__price-current" data-price>${window.theme.money.format(product.variants[0].price)}</span>`;product.variants[0].compare_at_price>0&&(product_price+=`<span class="quick-view__price-compared" data-compareatprice>${window.theme.money.format(product.variants[0].compare_at_price)}</span>`),content=content.replace(/{{productPrice}}/g,product_price),content=content.replace(/{{productId}}/g,product.id),content=content.replace(/{{variant}}/g,product.variants[0].id),content=content.replace(/{{productHandle}}/g,product.handle),content=content.replace(/{{productVendor}}/g,product.vendor),resolve(content)})}initFocusTrap(){this.focusTrap=focusTrap.createFocusTrap(this,{})}disableFocusTrap(){this.focusTrap&&this.focusTrap.deactivate()}activeFocusTrap(){this.focusTrap&&this.focusTrap.activate()}initQtySelector(){this.querySelectorAll("[data-quantity-selector]").forEach(element=>{element.querySelector("[data-quantity-selector-minus]").addEventListener("click",event=>{event.preventDefault();let input=event.target.parentElement.querySelector("input");this.decreaseQtySelector(input)}),element.querySelector("[data-quantity-selector-plus]").addEventListener("click",event=>{event.preventDefault();let input=event.target.parentElement.querySelector("input");this.increaseQtySelector(input)})})}decreaseQtySelector(input){let value=parseInt(input.value);if(value>0){value--,input.value=value;let event=new CustomEvent("change",{detail:input});input.dispatchEvent(event)}}increaseQtySelector(input){let value=parseInt(input.value);value++,input.value=value;let event=new CustomEvent("change",{detail:input});input.dispatchEvent(event)}}customElements.define(customElements.component,quickView)} 2//# sourceMappingURL=/cdn/shop/t/465/assets/quick-view.js.map?v=172379787991553827951789990203
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.