1if(!customElements.get("product-info")){class ProductInfo extends HTMLElement{abortController=void 0;onVariantChangeUnsubscriber=void 0;pendingRequestUrl=null;preProcessHtmlCallbacks=[];postProcessHtmlCallbacks=[];constructor(){super(),this.onWindowLoad=this.onWindowLoad.bind(this)}get productId(){return this.getAttribute("data-product-id")}get sectionId(){return this.dataset.originalSection||this.dataset.sectionId}get disableSelectedVariantDefault(){return this.dataset.disableSelectedVariantDefault==="true"||!1}get enableVariantGroupImages(){return this.dataset.enableVariantGroupImages==="true"||!1}get enableHistoryState(){return this.dataset.enableHistoryState==="true"||!1}get viewMode(){return this.dataset.viewMode||"main-product"}get pickupAvailability(){return this.querySelector("pickup-availability")}get productForm(){return this.querySelector("product-form")}get productMedia(){return this.querySelector(`[id^="MediaGallery-${this.dataset.sectionId}"]`)}get variantPicker(){return this.querySelector("variant-picker")}get quantityInput(){return this.querySelector("m-quantity-input input")}get quantityInputStickyAtc(){return this.querySelector(".m-sticky-addtocart m-quantity-input input")}get stickyAtc(){return this.querySelector("sticky-atc")}connectedCallback(){this.viewMode==="main-product"&&window.addEventListener("load",this.onWindowLoad),this.init()}disconnectedCallback(){window.removeEventListener("load",this.onWindowLoad),this.onVariantChangeUnsubscriber(),this.cartUpdateUnsubscriber?.()}init(){this.currentVariant=this.getSelectedVariant(this),this.quantityInputs=[],this.quantityInput&&this.quantityInputs.push(this.quantityInput),this.quantityInputStickyAtc&&this.quantityInputs.push(this.quantityInputStickyAtc),this.disableSelectedVariantDefault&&this.handleDisableSelectedVariantDefault(),this.onVariantChangeUnsubscriber=MinimogEvents.subscribe(MinimogTheme.pubSubEvents.optionValueSelectionChange,this.handleOptionValueChange.bind(this)),this.showFeaturedMedia=this.dataset.showFeaturedMedia==="true"||!1,this.initialMedias=this.productMedia?this.productMedia.querySelectorAll(".m-product-media--item"):null,this.initialThumbs=this.productMedia?this.productMedia.querySelectorAll(".m-product-media--slider__thumbnails [data-media-type]"):null,this.enableVariantGroupImages&&(this.variantGroupImagesData=this.getVariantGroupImagesData(),this.showFeaturedMedia=!1),this.initQuantityHandlers(),this.currentVariant&&!this.show
1FeaturedMedia&&this.updateMedia(this.currentVariant)}getVariantGroupImagesData(){return JSON.parse(this.querySelector('#variantGroup[type="application/json"]').textContent)||{}}handleOptionValueChange({data:{event,target,selectedOptionValues}}){if(!this.contains(event.target))return;const productUrl=target.dataset.productUrl||this.pendingRequestUrl||this.dataset.url,shouldSwapProduct=this.dataset.url!==productUrl,shouldFetchFullPage=this.dataset.updateUrl==="true"&&shouldSwapProduct;this.renderProductInfo({requestUrl:this.buildRequestUrlWithParams(productUrl,selectedOptionValues,shouldFetchFullPage),targetId:target.id,callback:shouldSwapProduct?this.handleSwapProduct(productUrl,shouldFetchFullPage,this.viewMode):this.handleUpdateProductInfo(productUrl,this.viewMode)})}renderProductInfo({requestUrl,targetId,callback}){this.abortController?.abort(),this.abortController=new AbortController,fetch(requestUrl,{signal:this.abortController.signal}).then(response=>response.text()).then(responseText=>{this.pendingRequestUrl=null;const html=new DOMParser().parseFromString(responseText,"text/html");callback(html)}).then(()=>{document.querySelector(`#${targetId}`)?.focus()}).catch(error=>{error.name==="AbortError"?console.log("Fetch aborted by user"):console.error(error)})}buildRequestUrlWithParams(url,optionValues,shouldFetchFullPage=!1){const params=[];return!shouldFetchFullPage&¶ms.push(`section_id=${this.sectionId}`),optionValues.length&¶ms.push(`option_values=${optionValues.join(",")}`),`${url}?${params.join("&")}`}handleUpdateProductInfo(productUrl,viewMode){return html=>{const quickView=html.querySelector("#MainProduct-quick-view__content");quickView&&viewMode==="quick-view"&&(html=new DOMParser().parseFromString(quickView.innerHTML,"text/html"));const variant=this.getSelectedVariant(html);if(this.pickupAvailability?.update(variant),this.updateOptionValues(html),this.updateURL(productUrl,variant?.id),this.updateVariantInputs(variant?.id),!variant){this.setUnavailable();return}this.updateMedia(variant);const updateSourceFromDestination=(id,shouldHide=source=>!1)=>{const source=html.getElementById(`${id}-${this.sectionId}`),destination=this.querySelector(`#${id}-${this.dataset.sectionId}`);source&&destination&&(destination.innerHTML=source.innerHTML,destination.classList.toggle("m:hidden",shouldHide(source)))};updateSourceFromDestination("Price"),updateSourceFromDestination("Inventory"),updateSourceFromDestination("Sku"),updateSourceFromDestination("Availability"),updateSourceFromDestination("Volume"),updateSourceFromDestination("PricePerItem"),this.updateQuantityRules(this.sectionId,this.productId,html),this.querySelector(`#QuantityRules-${this.dataset.section}`)?.classList.remove("m:hidden"),this.querySelector(`#VolumeNote-${this.dataset.section}`)?.classList.remove("m:hidden");const addButtonUpdated=html.getElementById(`ProductSubmitButton-${this.sectionId}`);this.toggleAddButton(addButtonUpdated?addButtonUpdated.hasAttribute("disabled"):!0,window.MinimogStrings.soldOut),this.currentVariant=variant,MinimogEvents.emit(MinimogTheme.pubSubEvents.variantChange,{data:{variant,sectionId:this.sectionId,html}}),document.dispatchEvent(new CustomEvent("variant:changed",{detail:{variant:this.currentVariant}}))}}handleSwapProduct(productUrl,updateFullPage,viewMode){return html=>{const quickView=html.querySelector("#MainProduct-quick-view__content");quickView&&viewMode==="quick-view"&&(html=new DOMParser().parseFromString(quickView.innerHTML,"text/html"));const selector=updateFullPage?"product-info[id^='MainProduct']":"product-info",productInfo=html.querySelector(selector),variant=this.getSelectedVariant(productInfo);productInfo.dataset.disableSelectedVariantDefault=!1,this.updateURL(productUrl,variant?.id),updateFullPage?(document.querySelector("head title").innerHTML=html.querySelector("head title").innerHTML,HTMLUpdateUtility.viewTransition(document.querySelector("main"),html.querySelector("main"),this.preProcessHtmlCallbacks,this.postProcessHtmlCallbacks)):HTMLUpdateUtility.viewTransition(this,productInfo,this.preProcessHtmlCallbacks,this.postProcessHtmlCallbacks),this.currentVariant=variant}}getSelectedVariant(productInfoNode){const selectedVariant=productInfoNode.querySelector("variant-picker [data-selected-variant]")?.innerHTML;return selectedVariant?JSON.parse(selectedVariant):null}updateURL(url,variantId){this.dataset.updateUrl!=="false"&&window.history.replaceState({},"",`${url}${this.enableHistoryState&&variantId?`?variant=${variantId}`:""}`)}updateVariantInputs(variantId){document.querySelectorAll(`#product-form-${this.dataset.sectionId}, #product-form-installment-${this.dataset.sectionId}`).forEach(productForm=>{const input=productForm.querySelector('input[name="id"]');input.value=variantId??"",input.dispatchEvent(new Event("change",{bubbles:!0}))})}updateOptionValues(html){const variantPicker=html.querySelector("variant-picker");variantPicker&&HTMLUpdateUtility.viewTransition(this.variantPicker,variantPicker,this.preProcessHtmlCallbacks)}setUnavailable(){document.getElementById(`product-form-${this.sectionId}`).querySelector('[name="add"]')&&this.toggleAddButton(!0,window.MinimogStrings.unavailable);const selectors=["Price","Inventory","Sku","Availability"].map(id=>`#${id}-${this.sectionId}`).join(", ");
1document.querySelectorAll(selectors).forEach(selector=>selector.classList.add("m:hidden"))}toggleAddButton(disable=!0,text,modifyClass=!0){const productForm=document.getElementById(`product-form-${this.dataset.sectionId}`);if(!productForm)return;const addButton=productForm.querySelector('[name="add"]'),addButtonText=productForm.querySelector('[name="add"] > span.m-add-to-cart--text');addButton&&(disable?(addButton.setAttribute("disabled","disabled"),text&&(addButtonText.textContent=text)):(addButton.removeAttribute("disabled"),addButtonText.innerHTML=window.MinimogStrings.addToCart))}updateMedia(variant){if(this.productMedia)if(this.enableVariantGroupImages&&this.variantGroupImagesData.enable)this.handleVariantGroupImage(variant),this.productMedia.slider&&(this.productMedia.slider.updateSlides(),this.productMedia.navSlider.updateSlides(),this.productMedia.slider.slideTo(0),this.productMedia.navSlider.slideTo(0),this.productMedia.handleSlideChange()),this.productMedia.enableImageZoom&&this.productMedia.handlePhotoswipe();else{const setActiveMedia=()=>typeof this.productMedia.setActiveMedia=="function"?(this.productMedia.init(),this.productMedia.setActiveMedia(variant),!0):!1;setActiveMedia()||(this.timer=setInterval(()=>{setActiveMedia()&&clearInterval(this.timer)},100))}}handleDisableSelectedVariantDefault(){new URLSearchParams(window.location.search).has("variant")||(this.pickerFields=this.querySelectorAll("[data-picker-field]"),this.pickerFields&&this.pickerFields.forEach(field=>{if(field.dataset.pickerField==="select"){let selectBox=field.querySelector("select"),option=document.createElement("option");option.text=this.dataset.variantOptionNoneText,option.setAttribute("disabled",""),option.setAttribute("selected",""),selectBox.add(option,0)}else{let checkedInputs=field.querySelectorAll("input:checked");checkedInputs&&checkedInputs.forEach(function(input){input.removeAttribute("checked")})}field.dataset.selectedValue="",field.querySelector(".option-label--selected")&&(field.querySelector(".option-label--selected").textContent="")}),this.setUnavailable(),this.currentVariant=null)}handleVariantGroupImage(variant){const selectedVariantData=this.variantGroupImagesData.mapping.find(item=>Number(item.id)===variant.id),selectedMedias=initialItems=>{const selectedVariantMedias=Array.from(initialItems).map(media=>{const index=selectedVariantData.media.indexOf(media.dataset.mediaId),mediaType=media.dataset.mediaType;return index!==-1||mediaType!=="image"?media:null}).filter(Boolean);if(selectedVariantMedias.length<=0)return Array.from(initialItems).map((media,index)=>(media.dataset.index=index,media.removeAttribute("style"),media.querySelector(".m-product-media").setAttribute("style",`--animation-order: ${index+1};`),media));const orderedMedias=Object.values(selectedVariantData.media).map(id=>selectedVariantMedias.find(media=>media.dataset.mediaId===id)).filter(Boolean),remainingMedias=selectedVariantMedias.filter(media=>!Object.values(selectedVariantData.media).includes(media.dataset.mediaId));return Array.from([...orderedMedias,...remainingMedias]).map((media,index)=>(media.dataset.index=index,media.removeAttribute("style"),media.querySelector(".m-product-media").setAttribute("style",`--animation-order: ${index+1};`),media))},mediaWrapper=this.productMedia.querySelector(".m-media-gallery__list"),thumbWrapper=this.productMedia.querySelector(".m-product-media--slider__thumbnails .swiper-wrapper"),layout=this.productMedia.dataset.layout;mediaWrapper.innerHTML="",thumbWrapper.innerHTML="",selectedMedias(this.initialMedias).forEach((media,index)=>{layout==="layout-2"&&(media.classList.remove("m-col-span-2"),index%3===0&&media.classList.add("m-col-span-2")),mediaWrapper.append(media)}),selectedMedias(this.initialThumbs).forEach(media=>{media.classList.toggle("swiper-slide-thumb-active",media.dataset.index==="0"),thumbWrapper.append(media)})}initQuantityHandlers(){this.quantityInputs.length<=0||(this.setQuantityBoundries(),this.hasAttribute("data-original-section-id")||(this.cartUpdateUnsubscriber=MinimogEvents.subscribe(MinimogTheme.pubSubEvents.cartUpdate,this.fetchQuantityRules.bind(this))))}
1setQuantityBoundries(){this.quantityInputs.forEach(input=>{input.closest("m-quantity-input").setQuantityBoundries(this.sectionId,this.productId)})}fetchQuantityRules(){const currentVariantId=this.productForm?.variantIdInput?.value;currentVariantId&&(this.querySelector(".quantity__rules-cart")?.classList.add("loading"),fetch(`${this.getAttribute("data-url")}?variant=${currentVariantId}§ion_id=${this.sectionId}`).then(response=>response.text()).then(responseText=>{const parsedHTML=new DOMParser().parseFromString(responseText,"text/html");this.updateQuantityRules(this.sectionId,this.productId,parsedHTML)}).catch(error=>{console.error(error)}).finally(()=>{this.querySelector(".quantity__rules-cart")?.classList.remove("loading")}))}updateQuantityRules(sectionId,productId,parsedHTML){this.quantityInputs.length<=0||(this.quantityInputs.forEach(input=>{input.closest("m-quantity-input").updateQuantityRules(sectionId,productId,parsedHTML)}),this.setQuantityBoundries())}addRecentViewedProduct(){const cookies=getCookie("m-recent-viewed-products");let products=cookies?JSON.parse(cookies):[];products.indexOf(MinimogSettings.productHandle)===-1&&(products.unshift(MinimogSettings.productHandle),products=products.slice(0,20),setCookie("m-recent-viewed-products",JSON.stringify(products)))}onWindowLoad(){this.acc=[],MinimogTheme.CompareProduct&&MinimogTheme.CompareProduct.setCompareButtonsState(),MinimogTheme.Wishlist&&MinimogTheme.Wishlist.setWishlistButtonsState(),this.addRecentViewedProduct(),addEventDelegate({context:this,selector:(window.__minimog_review_selector||"")+".m-product-collapsible .jdgm-widget-actions-wrapper, .m-product-collapsible .spr-summary-actions-newreview",handler:e=>{const index=e.target.closest(".m-product-collapsible").dataset.index;setTimeout(()=>{this.acc[Number(index)].setContentHeight()},300)},capture:!0})}}customElements.define("product-info",ProductInfo)} 2//# sourceMappingURL=/cdn/shop/t/29/assets/product-info.js.map?v=164532907815921985711759477291
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.