1import"@archetype-themes/scripts/config";import"@archetype-themes/scripts/helpers/currency";import"@archetype-themes/scripts/helpers/images";import"@archetype-themes/scripts/helpers/variants";import"@archetype-themes/scripts/modules/variant-availability";import"@archetype-themes/scripts/modules/quantity-selectors";import"@archetype-themes/scripts/modules/product-ajax-form";import"@archetype-themes/scripts/helpers/youtube";import"@archetype-themes/scripts/helpers/vimeo";import{Slideshow}from"@archetype-themes/scripts/modules/slideshow";import"@archetype-themes/scripts/modules/product-media";import{StoreAvailability}from"components/section-store-availability";import{RecentlyViewed}from"components/section-recently-viewed";export default class Product extends HTMLElement{constructor(container){super(),this.container=container??this,this.container.dataset.modal&&this.init()}init(){this.videoObjects={},this.classes={onSale:"on-sale",disabled:"disabled",loading:"loading",loaded:"loaded",hidden:"hide",interactable:"video-interactable",visuallyHide:"visually-invisible",lowInventory:"inventory--low"},this.selectors={productVideo:".product__video",videoParent:".product__video-wrapper",slide:".product-main-slide",currentSlide:".is-selected",startingSlide:".starting-slide",variantType:".variant-wrapper",blocks:"[data-product-blocks]",blocksHolder:"[data-blocks-holder]",dynamicVariantsEnabled:"[data-dynamic-variants-enabled]",variantsJson:"[data-variant-json]",currentVariantJson:"[data-current-variant-json]",form:".product-single__form",media:"[data-product-media-type-model]",closeMedia:".product-single__close-media",photoThumbs:"[data-product-thumb]",thumbSlider:"[data-product-thumbs]",thumbScroller:".product__thumbs--scroller",mainSlider:"[data-product-photos]",imageContainer:"[data-product-images]",productImageMain:"[data-product-image-main]",priceWrapper:"[data-product-price-wrap]",price:"[data-product-price]",comparePrice:"[data-compare-price]",savePrice:"[data-save-price]",priceA11y:"[data-a11y-price]",comparePriceA11y:"[data-compare-price-a11y]",unitWrapper:"[data-unit-price-wrapper]",unitPrice:"[data-unit-price]",unitPriceBaseUnit:"[data-unit-base]",sku:"[data-sku]",inventory:"[data-product-inventory]",incomingInventory:"[data-incoming-inventory]",colorLabel:"[data-variant-color-label]",variantLabel:".variant-input .variant__button-label",addToCart:"[data-add-to-cart]",addToCartText:"[data-add-to-cart-text]",originalSelectorId:"[data-product-select]",singleOptionSelector:"[data-variant-input]",variantColorSwatch:".variant__input--color-swatch",availabilityContainer:"[data-store-availability-holder]"},this.sectionId=this.container.getAttribute("data-section-id"),this.productId=this.container.getAttribute("data-product-id"),document.dispatchEvent(new CustomEvent("product-component:loaded",{detail:{sectionId:this.sectionId}})),document.addEventListener("shopify:section:unload",this.onUnload),this.settings={enableHistoryState:this.container.dataset.history==="true"||!1,namespace:`.product-${this.sectionId}`,inventory:!1,inventoryThreshold:10,modalInit:!1,hasImages:!0,imageSetName:null,imageSetIndex:null,currentImageSet:null,imageSize:"620x",currentSlideIndex:0,videoLooping:this.container.dataset.videoLooping},this.cacheElements(),this.firstProductImage=this.cache.mainSlider.querySelector("img"),this.firstProductImage||(this.settings.hasImages=!1);const dataSetEl=this.cache.mainSlider.querySelector("[data-set-name]");dataSetEl&&(this.settings.imageSetName=dataSetEl.dataset.setName),this.formSetup(),this.updateModalProductInventory(),this.productSetup(),this.videoSetup(),this.initProductSlider(),this.customMediaListeners(),RecentlyViewed.addIdToRecentlyViewed(this.productId),document.addEventListener("tooltip:close",e=>{e.detail.context==="QuickShop"&&this.stopVideos()}),window.off("quickadd:loaded:"+this.sectionId)}cacheElements(){this.cache={form:this.container.querySelector(this.selectors.form),mainSlider:this.container.querySelector(this.selectors.mainSlider),thumbSlider:this.container.querySelector(this.selectors.thumbSlider),thumbScroller:this.container.querySelector(this.selectors.thumbScroller),productImageMain:this.container.querySelector(this.selectors.productImageMain),priceWrapper:this.container.querySelector(this.selectors.priceWrapper),comparePriceA11y:this.container.querySelector(this.selectors.comparePriceA11y),comparePrice:this.container.querySelector(this.selectors.comparePrice),price:this.container.querySelector(this.selectors.price),savePrice:this.container.querySelector(this.selectors.savePrice),priceA11y:this.container.querySelector(this.selectors.priceA11y)}}
1formSetup(){this.initQtySelector(),this.initAjaxProductForm(),this.availabilitySetup(),this.initVariants(),this.settings.imageSetName&&this.updateImageSet()}availabilitySetup(){const container=this.container.querySelector(this.selectors.availabilityContainer);container&&(this.storeAvailability=new StoreAvailability(container))}productSetup(){this.initImageZoom(),this.initModelViewerLibraries(),this.initShopifyXrLaunch(),window.SPR&&(SPR.initDomEls(),SPR.loadBadges())}initVariants(){const variantJson=this.container.querySelector(this.selectors.variantsJson);if(!variantJson)return;this.variantsObject=JSON.parse(variantJson.innerHTML);const dynamicVariantsEnabled=!!this.container.querySelector(this.selectors.dynamicVariantsEnabled),options={container:this.container,enableHistoryState:this.settings.enableHistoryState,singleOptionSelector:this.selectors.singleOptionSelector,originalSelectorId:this.selectors.originalSelectorId,variants:this.variantsObject,dynamicVariantsEnabled},swatches=this.container.querySelectorAll(this.selectors.variantColorSwatch);swatches.length&&swatches.forEach(swatch=>{swatch.addEventListener("change",function(evt){const color=swatch.dataset.colorName,index=swatch.dataset.colorIndex;this.updateColorName(color,index)}.bind(this))});const labels=this.container.querySelectorAll(this.selectors.variantLabel);if(labels.length&&labels.forEach(label=>{label.addEventListener("keydown",function(evt){if(evt.keyCode===13){const input=document.querySelector(`#${label.getAttribute("for")}`);if(!input)return;input.checked=!0,input.dispatchEvent(new Event("change"))}}.bind(this))}),this.variants=new theme.Variants(options),this.storeAvailability){const variant_id=this.variants.currentVariant?this.variants.currentVariant.id:this.variants.variants[0].id;this.storeAvailability.updateContent(variant_id),this.container.on("variantChange"+this.settings.namespace,this.updateAvailability.bind(this))}this.container.on("variantChange"+this.settings.namespace,this.updateCartButton.bind(this)),this.container.on("variantImageChange"+this.settings.namespace,this.updateVariantImage.bind(this)),this.container.on("variantPriceChange"+this.settings.namespace,this.updatePrice.bind(this)),this.container.on("variantUnitPriceChange"+this.settings.namespace,this.updateUnitPrice.bind(this)),this.container.querySelectorAll(this.selectors.sku).length&&this.container.on("variantSKUChange"+this.settings.namespace,this.updateSku.bind(this));const inventoryEl=this.container.querySelector(this.selectors.inventory);if(inventoryEl&&(this.settings.inventory=!0,this.settings.inventoryThreshold=inventoryEl.dataset.threshold,this.updateInventory({detail:{variant:this.variants.currentVariant}}),this.container.on("variantChange"+this.settings.namespace,this.updateInventory.bind(this))),dynamicVariantsEnabled){const currentVariantJson=this.container.querySelector(this.selectors.currentVariantJson);if(currentVariantJson){const variantType=this.container.querySelector(this.selectors.variantType);variantType&&new theme.VariantAvailability({container:this.container,namespace:this.settings.namespace,type:variantType.dataset.type,variantsObject:this.variantsObject,currentVariantObject:JSON.parse(currentVariantJson.innerHTML)})}}if(this.settings.imageSetName){const variantWrapper=this.container.querySelector('.variant-input-wrap[data-handle="'+this.settings.imageSetName+'"]');variantWrapper?(this.settings.imageSetIndex=variantWrapper.dataset.index,this.container.on("variantChange"+this.settings.namespace,this.updateImageSet.bind(this))):this.settings.imageSetName=null}}initQtySelector(){this.container.querySelectorAll(".js-qty__wrapper").forEach(el=>{new theme.QtySelector(el,{namespace:".product"})})}initAjaxProductForm(){theme.settings.cartType==="dropdown"&&new theme.AjaxProduct(this.cache.form,".add-to-cart")}updateColorName(color,index){this.container.querySelector(this.selectors.colorLabel+`[data-index="${index}"`).textContent=color}updateCartButton(evt){const variant=evt.detail.variant,cartBtn=this.container.querySelector(this.selectors.addToCart),cartBtnText=this.container.querySelector(this.selectors.addToCartText);cartBtn&&(variant?variant.available?(cartBtn.classList.remove(this.classes.disabled),c
1artBtn.disabled=!1,cartBtnText.textContent=cartBtnText.dataset.defaultText):(cartBtn.classList.add(this.classes.disabled),cartBtn.disabled=!0,cartBtnText.textContent=theme.strings.soldOut):(cartBtn.classList.add(this.classes.disabled),cartBtn.disabled=!0,cartBtnText.textContent=theme.strings.unavailable))}updatePrice(evt){const variant=evt.detail.variant;if(variant)if(this.cache.price||this.cacheElements(),this.cache.price.innerHTML=theme.Currency.formatMoney(variant.price,theme.settings.moneyFormat),variant.compare_at_price>variant.price){this.cache.comparePrice.innerHTML=theme.Currency.formatMoney(variant.compare_at_price,theme.settings.moneyFormat),this.cache.priceWrapper.classList.remove(this.classes.hidden),this.cache.price.classList.add(this.classes.onSale),this.cache.comparePriceA11y&&this.cache.comparePriceA11y.setAttribute("aria-hidden","false"),this.cache.priceA11y&&this.cache.priceA11y.setAttribute("aria-hidden","false");let savings=variant.compare_at_price-variant.price;theme.settings.saveType==="percent"?savings=Math.round(savings*100/variant.compare_at_price)+"%":savings=theme.Currency.formatMoney(savings,theme.settings.moneyFormat),this.cache.savePrice.classList.remove(this.classes.hidden),this.cache.savePrice.innerHTML=theme.strings.savePrice.replace("[saved_amount]",savings)}else this.cache.priceWrapper&&this.cache.priceWrapper.classList.add(this.classes.hidden),this.cache.savePrice.classList.add(this.classes.hidden),this.cache.price.classList.remove(this.classes.onSale),this.cache.comparePriceA11y&&this.cache.comparePriceA11y.setAttribute("aria-hidden","true"),this.cache.priceA11y&&this.cache.priceA11y.setAttribute("aria-hidden","true")}updateUnitPrice(evt){const variant=evt.detail.variant;variant&&variant.unit_price?(this.container.querySelector(this.selectors.unitPrice).innerHTML=theme.Currency.formatMoney(variant.unit_price,theme.settings.moneyFormat),this.container.querySelector(this.selectors.unitPriceBaseUnit).innerHTML=theme.Currency.getBaseUnit(variant),this.container.querySelector(this.selectors.unitWrapper).classList.remove(this.classes.hidden)):this.container.querySelector(this.selectors.unitWrapper).classList.add(this.classes.hidden)}imageSetArguments(variant){if(variant=variant||(this.variants?this.variants.currentVariant:null),!variant)return;const setValue=this.settings.currentImageSet=this.getImageSetName(variant[this.settings.imageSetIndex]),set=`${this.settings.imageSetName}_${setValue}`;return this.settings.currentSlideIndex=0,{cellSelector:'[data-group="'+set+'"]',imageSet:set,initialIndex:this.settings.currentSlideIndex}}updateImageSet(evt){const variant=evt?evt.detail.variant:this.variants?this.variants.currentVariant:null;if(!variant)return;const setValue=this.getImageSetName(variant[this.settings.imageSetIndex]);this.settings.currentImageSet!==setValue&&this.initProductSlider(variant)}updateImageSetThumbs(set){this.cache.thumbSlider.querySelectorAll(".product__thumb-item").forEach(thumb=>{thumb.classList.toggle(this.classes.hidden,thumb.dataset.group!==set)})}getImageSetName(string){return string.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/-$/,"").replace(/^-/,"")}updateSku(evt){const variant=evt.detail.variant;
1let newSku="",hideSku=!0;variant&&(variant.sku&&(newSku=variant.sku,hideSku=!1),this.container.querySelectorAll(this.selectors.sku).forEach(el=>{el.classList.toggle(this.classes.hidden,hideSku),el.querySelector("[data-sku-id]").textContent=newSku}))}updateInventory(evt){const variant=evt.detail.variant,inStockForOOSAndContinueSelling=!1;if(!variant){this.toggleInventoryQuantity("hidden",!1),this.toggleIncomingInventory(!1);return}if(!variant.inventory_management){this.toggleInventoryQuantity("visible",!1),this.toggleIncomingInventory(!1);return}if(variant.inventory_management==="shopify"&&window.inventories&&window.inventories[this.productId]){const variantInventoryObject=window.inventories[this.productId][variant.id],{quantity,policy,incoming,next_incoming_date}=variantInventoryObject||{};if(this.toggleInventoryQuantity(void 0,quantity),inStockForOOSAndContinueSelling&&quantity<=0&&policy==="continue"){this.toggleInventoryQuantity("visible",!1),this.toggleIncomingInventory(!1);return}incoming&&!variant.available||quantity<=0&&policy==="continue"?this.toggleIncomingInventory(!0,next_incoming_date,policy):this.toggleIncomingInventory(!1)}}updateAvailability(evt){const variant=evt.detail.variant;variant&&this.storeAvailability.updateContent(variant.id)}toggleInventoryQuantity(state=void 0,quantity){const productInventoryEl=this.container.querySelector(this.selectors.inventory),inventorySalesPoint=productInventoryEl.closest(".sales-point");if(state&&state==="hidden"){inventorySalesPoint&&inventorySalesPoint.classList.add(this.classes.hidden);return}let showLowInventoryMessage=!1;parseInt(quantity)<=parseInt(this.settings.inventoryThreshold)&&parseInt(quantity)>0&&(showLowInventoryMessage=!0),parseInt(quantity)>0||state&&state==="visible"?(showLowInventoryMessage?(productInventoryEl.parentNode.classList.add(this.classes.lowInventory),quantity>1?productInventoryEl.textContent=theme.strings.otherStockLabel.replace("[count]",quantity):productInventoryEl.textContent=theme.strings.oneStockLabel.replace("[count]",quantity)):(productInventoryEl.parentNode.classList.remove(this.classes.lowInventory),productInventoryEl.textContent=theme.strings.inStockLabel),inventorySalesPoint&&inventorySalesPoint.classList.remove(this.classes.hidden)):inventorySalesPoint&&inventorySalesPoint.classList.add(this.classes.hidden)}toggleIncomingInventory(showIncomingInventory,incomingInventoryDate,policy){const incomingInventoryEl=this.container.querySelector(this.selectors.incomingInventory),incomingInventoryIcon=incomingInventoryEl.querySelector(".icon-and-text");if(!incomingInventoryEl)return;const incomingInventoryBlockEnabled=incomingInventoryEl.dataset.enabled==="true",textEl=incomingInventoryEl.querySelector(".js-incoming-text");if(!incomingInventoryBlockEnabled){incomingInventoryEl.classList.add(this.classes.hidden);return}showIncomingInventory?(incomingInventoryDate?(textEl.textContent=theme.strings.willBeInStockAfter.replace("[date]",incomingInventoryDate),incomingInventoryEl.classList.remove(this.classes.hidden)):(textEl.textContent=theme.strings.waitingForStock,incomingInventoryEl.classList.remove(this.classes.hidden)),incomingInventoryIcon&&(policy!=="continue"?incomingInventoryIcon.classList.add(this.classes.lowInventory):incomingInventoryIcon.classList.remove(this.classes.lowInventory))):incomingInventoryEl.classList.add(this.classes.hidden)}videoSetup(){const productVideos=this.cache.mainSlider.querySelectorAll(this.selectors.productVideo);if(!productVideos.length)return!1;productVideos.forEach(vid=>{const type=vid.dataset.videoType;type==="youtube"?this.initYoutubeVideo(vid):type==="vimeo"?this.initVimeoVideo(vid):type==="mp4"&&this.initMp4Video(vid)})}initYoutubeVideo(div){this.videoObjects[div.id]=new theme.YouTube(div.id,{videoId:div.dataset.videoId,videoParent:this.selectors.videoParent,autoplay:!1,style:div.dataset.videoStyle,loop:div.dataset.videoLoop,events:{onReady:this.youtubePlayerReady.bind(this),onStateChange:this.youtubePlayerStateChange.bind(this)}})}initVimeoVideo(div){this.videoObjects[div.id]=new theme.VimeoPlayer(div.id,div.dataset.videoId,{videoParent:this.selectors.videoParent,autoplay:!1,style:div.dataset.videoStyle,loop:div.dataset.videoLoop})}youtubePlayerReady(evt){const iframeId=evt.target.getIframe().id;if(!this.videoObjects[iframeId])return;const obj=this.videoObjects[iframeId],player=obj.videoPlayer;obj.options.style!=="sound"&&player.mute(),obj.parent.classList.remove("loading"),obj.parent.classList.add("loaded"),obj.parent.classList.add("video-interactable"),this._isFirstSlide(iframeId)&&obj.options.style!=="sound"&&player.playVideo()}_isFirstSlide(id){return this.cache.mainSlider.querySelector(this.selectors.startingSlide+" #"+id)}youtubePlayerStateChange(evt){const iframeId=evt.target.getIframe().id,obj=this.videoObjects[iframeId];switch(evt.data){case-1:obj.attemptedToPlay&&obj.parent.classList.add("video-interactable");break;case 0:obj&&obj.options.loop==="true"&&obj.videoPlayer.playVideo();break;case 3:obj.attemptedToPlay=!0;break}}initMp4Video(div){this.videoObjects[div.id]={id:div.id,type:"mp4"},this._isFirstSlide(div.id)&&this.playMp4Video(div.id)}stopVideos(){for(const[id,vid]of Object.entries(this.videoObjects))vid.videoPlayer?typeof vid.videoPlayer.stopVideo=="function"&&vid.videoPlayer.stopVideo():vid.type==="mp4"&&this.stopMp4Video(vid.id)}_getVideoType(video){return video.getAttribute("data-video-type")}_getVideoDivId(video){return video.id}playMp4Video(id){const player=this.container.querySelector("#"+id),playProm
1ise=player.play();player.setAttribute("controls",""),player.focus(),player.addEventListener("focusout",this.returnFocusToThumbnail.bind(this)),playPromise!==void 0&&playPromise.then(function(){}).catch(function(error){player.setAttribute("controls",""),player.closest(this.selectors.videoParent).setAttribute("data-video-style","unmuted")})}stopMp4Video(id){const player=this.container.querySelector("#"+id);player&&(player.removeEventListener("focusout",this.returnFocusToThumbnail.bind(this)),typeof player.pause=="function"&&(player.removeAttribute("controls"),player.pause()))}returnFocusToThumbnail(evt){if(evt.relatedTarget&&evt.relatedTarget.classList.contains("product__thumb")){const thumb=this.container.querySelector('.product__thumb-item[data-index="'+this.settings.currentSlideIndex+'"] a');thumb&&thumb.focus()}}initImageZoom(){const container=this.container.querySelector(this.selectors.imageContainer);container&&(container.addEventListener("photoswipe:afterChange",function(evt){this.flickity&&this.flickity.goToSlide(evt.detail.index)}.bind(this)),document.addEventListener("tooltip:open",e=>{if(!e.detail.context==="QuickShop")return;const scripts=document.querySelectorAll('tool-tip product-component script[type="module"]');for(let i=0;i<scripts.length;i++){let script=document.createElement("script");script.type="module",script.textContent=scripts[i].textContent,scripts[i].parentNode.replaceChild(script,scripts[i])}}))}getThumbIndex(target){return target.dataset.index}updateVariantImage(evt){const variant=evt.detail.variant,newImage=this.container.querySelector('.product__thumb[data-id="'+variant.featured_media.id+'"]'),imageIndex=this.getThumbIndex(newImage);typeof imageIndex>"u"||this.flickity&&this.flickity.goToSlide(imageIndex)}initProductSlider(variant){if(this.cache.mainSlider.querySelectorAll(this.selectors.slide).length<=1){const slide=this.cache.mainSlider.querySelector(this.selectors.slide);slide&&slide.classList.add("is-selected");return}if(this.flickity&&typeof this.flickity.destroy=="function"&&this.flickity.destroy(),!variant){const activeSlide=this.cache.mainSlider.querySelector(this.selectors.startingSlide);this.settings.currentSlideIndex=this._slideIndex(activeSlide)}let mainSliderArgs={dragThreshold:25,adaptiveHeight:!0,avoidReflow:!0,initialIndex:this.settings.currentSlideIndex,childNav:this.cache.thumbSlider,childNavScroller:this.cache.thumbScroller,childVertical:this.cache.thumbSlider.dataset.position==="beside",pageDots:!0,wrapAround:!0,callbacks:{onInit:this.onSliderInit.bind(this),onChange:this.onSlideChange.bind(this)}};if(this.settings.imageSetName){const imageSetArgs=this.imageSetArguments(variant);mainSliderArgs=Object.assign({},mainSliderArgs,imageSetArgs),this.updateImageSetThumbs(mainSliderArgs.imageSet)}this.flickity=new Slideshow(this.cache.mainSlider,mainSliderArgs),setTimeout(()=>{this.flickity.resize()},100)}onSliderInit(slide){this.settings.imageSetName&&this.prepMediaOnSlide(slide)}onSlideChange(index){if(!this.flickity)return;const prevSlide=this.cache.mainSlider.querySelector('.product-main-slide[data-index="'+this.settings.currentSlideIndex+'"]'),nextSlide=this.settings.imageSetName?this.cache.mainSlider.querySelectorAll(".flickity-slider .product-main-slide")[index]:this.cache.mainSlider.querySelector('.product-main-slide[data-index="'+index+'"]');prevSlide.setAttribute("tabindex","-1"),nextSlide.setAttribute("tabindex",0),this.stopMediaOnSlide(prevSlide),this.prepMediaOnSlide(nextSlide),this.settings.currentSlideIndex=index}stopMediaOnSlide(slide){const video=slide.querySelector(this.selectors.productVideo);if(video){const videoType=this._getVideoType(video),videoId=this._getVideoDivId(video);if(videoType==="youtube"){if(this.videoObjects[videoId].videoPlayer){this.videoObjects[videoId].videoPlayer.stopVideo();return}}else if(videoType==="mp4"){this.stopMp4Video(videoId);return}}const currentMedia=slide.querySelector(this.selectors.media);currentMedia&¤tMedia.dispatchEvent(new CustomEvent("mediaHidden",{bubbles:!0,cancelable:!0}))}prepMediaOnSlide(slide){const video=slide.querySelector(this.selectors.productVideo);if(video){this.flickity.reposition();const videoType=this._getVideoType(video),videoId=this._getVideoDivId(video);if(videoType==="youtube"){if(this.videoObjects[videoId].videoPlayer&&this.videoObjects[videoId].options.style!=="sound"){this.videoObjects[videoId].videoPlayer.playVideo();return}}else videoType==="mp4"&&this.playMp4Video(videoId)}const nextMedia=slide.querySelector(this.selectors.media);nextMedia&&(nextMedia.dispatchEvent(new CustomEvent("mediaVisible",{bubbles:!0,cancelable:!0})),slide.querySelector(".shopify-model-viewer-ui__button").setAttribute("tabindex",0),slide.querySelector(".product-single__close-media").setAttribute("tabindex",0))}_slideIndex(el){return el.getAttribute("data-index")}updateModalProductInventory(){window.inventories=window.inventories||{},this.container.querySelectorAll(".js-product-inventory-data").forEach(el=>{const productId=el.dataset.productId;window.inventories[productId]={},el.querySelectorAll(".js-variant-inventory-data").forEach(el2=>{window.inventories[productId][el2.dataset.id]={quantity:el2.dataset.quantity,policy:el2.dataset.policy,incoming:el2.dataset.incoming,next_incoming_date:el2.dataset.date}})})}initModelViewerLibraries(){const modelViewerElements=this.container.querySelectorAll(this.selectors.media);modelViewerElements.length<1||theme.ProductMedia.init(modelViewerElements,this.sectionId)}initShopifyXrLaunch(){document.addEventListener("shopify_xr_launch",()=>{this.container.querySelector(`${this.selectors.productMediaWrapper}:not(.${this.classes.hidden})`).dispatchEvent(new CustomEvent("xrLaunch",{bubbles:!0,cancelable:!0}))})}customMediaListeners(){document.querySelectorAll(this.selectors.closeMedia).forEac
1h(el=>{el.addEventListener("click",function(){const media=this.cache.mainSlider.querySelector(this.selectors.currentSlide).querySelector(this.selectors.media);media&&media.dispatchEvent(new CustomEvent("mediaHidden",{bubbles:!0,cancelable:!0}))}.bind(this))});const modelViewers=this.container.querySelectorAll("model-viewer");modelViewers.length&&modelViewers.forEach(el=>{el.addEventListener("shopify_model_viewer_ui_toggle_play",function(evt){this.mediaLoaded(evt)}.bind(this)),el.addEventListener("shopify_model_viewer_ui_toggle_pause",function(evt){this.mediaUnloaded(evt)}.bind(this))})}mediaLoaded(evt){this.container.querySelectorAll(this.selectors.closeMedia).forEach(el=>{el.classList.remove(this.classes.hidden)}),this.flickity&&this.flickity.setDraggable(!1)}mediaUnloaded(evt){this.container.querySelectorAll(this.selectors.closeMedia).forEach(el=>{el.classList.add(this.classes.hidden)}),this.flickity&&this.flickity.setDraggable(!0)}onUnload(){theme.ProductMedia.removeSectionModels(this.sectionId),this.flickity&&typeof this.flickity.destroy=="function"&&this.flickity.destroy()}}customElements.define("product-component",Product); 2//# sourceMappingURL=/cdn/shop/t/13/assets/product.js.map?v=113938241193965881771703042371
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.