1class VariantSelects extends HTMLElement{constructor(){super(),this.addEventListener("change",this.onVariantChange)}onVariantChange(){this.updateOptions(),this.updateMasterId(),this.toggleAddButton(!0,"",!1),this.updatePickupAvailability(),this.updateVariantStatuses(),this.currentVariant?(this.updateMedia(),this.updateVariantInput(),this.renderProductInfo(),document.querySelectorAll(".template-product").length&&!this.closest("#content_quickview")&&this.updateURL()):(this.toggleAddButton(!0,"",!0),this.setUnavailable())}updateOptions(){this.options=Array.from(this.querySelectorAll("select"),select=>select.value)}updateMasterId(){this.currentVariant=this.getVariantData().find(variant=>!variant.options.map((option,index)=>this.options[index]===option).includes(!1))}updateMedia(){if(!this.currentVariant||!this.currentVariant?.featured_media)return;const newMedia=document.querySelector(`[data-media-id="${this.dataset.section}-${this.currentVariant.featured_media.id}"]`);if(!newMedia)return;const parent=newMedia.parentElement,itemact=document.querySelectorAll(".proFeaturedImage .item");for(var i=0;i<itemact.length;i++)itemact[i].classList.remove("act");newMedia.classList.add("act"),window.setTimeout(()=>{parent.scroll(0,0)})}updateURL(){!this.currentVariant||this.dataset.updateUrl==="false"||window.history.replaceState({},"",`${this.dataset.url}?variant=${this.currentVariant.id}`)}updateVariantInput(){document.querySelectorAll(`#product-form-${this.dataset.section}, #product-form-installment-${this.dataset.section}`).forEach(productForm=>{const input=productForm.querySelector('input[name="id"]');input.value=this.currentVariant.id,input.dispatchEvent(new Event("change",{bubbles:!0}))})}updateVariantStatuses(){const selectedOptionOneVariants=this.variantData.filter(variant=>this.querySelector(":checked").value===variant.option1),inputWrappers=[...this.querySelectorAll(".product-form__input")];inputWrappers.forEach((option,index)=>{if(index===0)return;const optionInputs=[...option.querySelectorAll('input[type="radio"], option')],previousOptionSelected=inputWrappers[index-1].querySelector(":checked").value,availableOptionInputsValue=selectedOptionOneVariants.filter(variant=>variant.available&&variant[`option${index}`]===previousOptionSelected).map(variantOption=>variantOption[`option${index+1}`]);this.setInputAvailability(optionInputs,availableOptionInputsValue)})}setInputAvailability(listOfOptions,listOfAvailableOptions){listOfOptions.forEach(input=>{listOfAvailableOptions.includes(input.getAttribute("value"))?input.innerText=input.getAttribute("value"):input.innerText=window.variantStrings.unavailable_with_option.replace("[value]",input.getAttribute("value"))})}updatePickupAvailability(){const pickUpAvailability=document.querySelector("pickup-availability");pickUpAvailability&&(this.currentVariant&&this.currentVariant.available?pickUpAvailability.fetchAvailability(this.currentVariant.id):(pickUpAvailability.removeAttribute("available"),pickUpAvailability.innerHTML=""))}renderProductInfo(){const requestedVariantId=this.currentVariant.id,sectionId=this.dataset.originalSection?this.dataset.originalSection:this.dataset.section;fetch(`${this.dataset.url}?variant=${requestedVariantId}§ion_id=${this.dataset.originalSection?this.dataset.originalSection:this.dataset.section}`).then(response=>response.text()).then(responseText=>{const id=`ProductPrice-${this.dataset.section}`,html=new DOMParser().parseFromString(responseText,"text/html"),destination=document.getElementById(id),source=html.getElementById(id);source&&destination&&(destination.innerHTML=source.innerHTML),this.toggleAddButton(!this.currentVariant.available,window.variantStrings.notify_me);const variant_id=document.getElementById("variant_id").getAttribute("value"),sku=document.getElementById("productSelect").querySelector('[value="'+variant_id+'"]').getAttribute("data-sku"),variantSku=document.getElementById("variantSku");typeof variantSku<"u"&&variantSku&&(variantSku.innerHTML=sku),Currency.convertAll(shopCurrency,$("#currencies span.selected").attr("data-currency"))})}toggleAddButton(disable=!0,text,modifyClass=!0){const productForm=d
1ocument.getElementById(`product-form-${this.dataset.section}`);if(!productForm)return;const addButton=productForm.querySelector('[name="add"]'),addButtonText=productForm.querySelector('[name="add"] > #AddToCartText'),addButtonParent=productForm.querySelector(".product-form__item--submit"),addButton2=productForm.querySelector(".product-form__item--checkout");if(addButton)if(disable){if(text&&addButtonParent.setAttribute("data-toggle","modal"),text&&addButtonParent.setAttribute("data-target","#Form_newletter"),text&&addButtonParent.classList.add("soldout"),text&&(addButtonText.textContent=text),!addButton2)return;addButton2.setAttribute("disabled",!0)}else{const variant_id=document.getElementById("variant_id").getAttribute("value");if(document.getElementById("productSelect").querySelector('[value="'+variant_id+'"]').getAttribute("data-qty")<1?addButtonText.textContent=window.variantStrings.preorder:addButtonText.textContent=window.variantStrings.addToCart,addButtonParent.classList.remove("soldout"),addButtonParent.removeAttribute("data-toggle"),addButtonParent.removeAttribute("data-target"),!addButton2)return;addButton2.removeAttribute("disabled")}}setUnavailable(){const addButton=document.getElementById(`product-form-${this.dataset.section}`)?.querySelector('[name="add"]'),addButtonText=addButton.querySelector("#AddToCartText");addButton&&(addButtonText.textContent=window.variantStrings.unavailable)}getVariantData(){return this.variantData=this.variantData||JSON.parse(this.querySelector('[type="application/json"]').textContent),this.variantData}}customElements.define("variant-selects",VariantSelects);class VariantRadios extends VariantSelects{constructor(){super()}setInputAvailability(listOfOptions,listOfAvailableOptions){listOfOptions.forEach(input=>{listOfAvailableOptions.includes(input.getAttribute("value"))?input.classList.remove("disabled"):input.classList.add("disabled")})}updateOptions(){const fieldsets=Array.from(this.querySelectorAll("fieldset"));this.options=fieldsets.map(fieldset=>Array.from(fieldset.querySelectorAll("input")).find(radio=>radio.checked).value)}}customElements.define("variant-radios",VariantRadios);class VariantSelectsStick extends VariantSelects{constructor(){super()}updateVariantInput(){document.querySelectorAll(`#product-form-sticky-${this.dataset.section}`).forEach(productForm=>{const input=productForm.querySelector('input[name="id"]');input.value=this.currentVariant.id,input.dispatchEvent(new Event("change",{bubbles:!0}))})}renderProductInfo(){fetch(`${this.dataset.url}?variant=${this.currentVariant.id}§ion_id=${this.dataset.section}`).then(response=>response.text()).then(responseText=>{const id=`ProductPriceStick-${this.dataset.section}`,html=new DOMParser().parseFromString(responseText,"text/html"),destination=document.getElementById(id),source=html.getElementById(id);source&&destination&&(destination.innerHTML=source.innerHTML),this.toggleAddButton(!this.currentVariant.available,window.variantStrings.notify_me)})}toggleAddButton(disable=!0,text,modifyClass=!0){const productForm=document.getElementById(`product-form-sticky-${this.dataset.section}`);if(!productForm)return;const addButton=productForm.querySelector('[name="add"]'),addButtonText=productForm.querySelector('[name="add"] > #AddToCartText'),addButtonParent=productForm.querySelector(".product-form__item--submit"),addButton2=productForm.querySelector(".product-form__item--checkout");if(addButton)if(disable){if(text&&addButtonParent.setAttribute("data-toggle","modal"),text&&addButtonParent.setAttribute("data-target","#Form_newletter"),text&&addButtonParent.classList.add("soldout"),text&&(addButtonText.textContent=text),!addButton2)return;addButton2.setAttribute("disabled",!0)}else{const variant_id=document.getElementById("variant_id").getAttribute("value");if(document.getElementById("productSelect").querySelector('[value="'+variant_id+'"]').getAttribute("data-qty")<1?addButtonText.textContent=window.variantStrings.preorder:addButtonText.textContent=window.variantStrings.addTobag,addButtonParent.classList.remove("soldout"),addButtonParent.removeAttribute("data-toggle"),addButtonParent.removeAttribute("data-target"),!addButton2)return;addButton2.removeAttribute("disabled")}}setUnavailable(){const addButton=document.getElementById(`product-form-sticky-${this.dataset.section}`)?.querySelector('[name="add"]'),addButtonText=addButton.querySelector("#AddToCartText");addButton&&(addButtonText.textContent=window.variantStrings.unavailable)}}customElements.define("variant-selects-stick",VariantSelectsStick); 2//# sourceMappingURL=/cdn/shop/t/4/assets/variants.js.map?v=73046385003584265391750927840
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.