PageSourceSearch

https://www.vayusut.com/cdn/shop/t/18/assets/variants.js?v=39642707447612509311739783212

js vayusut.com collected 2026-10-09 03:24:55 UTC 23,838 bytes, 2 lines download raw bytes

1class VariantSelects extends HTMLElement{constructor(){super(),this.item=this.closest("[data-product-detail]"),this.variants=this.getVariantData(),this.onVariantInit(),this.addEventListener("change",this.onVariantChange.bind(this))}onVariantInit(){this.updateOptions(),this.updateMasterId(),this.updateVariants(this.variants)}onVariantChange(event){this.updateOptions(),this.updateMasterId(),this.updateVariants(this.variants),this.updateOtherVariants(this.variants),this.updatePickupAvailability(),this.currentVariant?(this.updateMedia(200),this.updateURL(),this.updateProductInfo(),this.updateAttribute(!1,!this.currentVariant.available),this.updateShareUrl()):this.updateAttribute(!0)}updateVariants(variants,list,other=!1){const options=list||Array.from(this.querySelectorAll(".product-form__input")),originalOptions=Array.from(this.querySelectorAll(".product-form__input"));let selectedOption1,selectedOption2,selectedOption3;if(variants){if(this.nodeName=="VARIANT-RADIOS"){if(options[0]){if(other){let thisId=Array.from(originalOptions[0].querySelectorAll("input")).find(radio=>radio.checked).getAttribute("id");const lastKey=thisId.split("-")[thisId.split("-").length-1].length;thisId=thisId.includes("sticky")?thisId.replace("-sticky",""):`${thisId.substring(0,thisId.length-lastKey)}sticky-${thisId.substring(thisId.length-lastKey)}`,options[0].querySelector(`[id^="${thisId}"]`).checked=!0}selectedOption1=Array.from(options[0].querySelectorAll("input")).find(radio=>radio.checked).value,options[0].querySelector("[data-header-option]").textContent=selectedOption1}if(options[1]){if(other){let thisId=Array.from(originalOptions[1].querySelectorAll("input")).find(radio=>radio.checked).getAttribute("id");const lastKey=thisId.split("-")[thisId.split("-").length-1].length;thisId=thisId.includes("sticky")?thisId.replace("-sticky",""):`${thisId.substring(0,thisId.length-lastKey)}sticky-${thisId.substring(thisId.length-lastKey)}`,options[1].querySelector(`[id^="${thisId}"]`).checked=!0}selectedOption2=Array.from(options[1].querySelectorAll("input")).find(radio=>radio.checked).value,options[1].querySelector("[data-header-option]").textContent=selectedOption2}if(options[2]){if(other){let thisId=Array.from(originalOptions[2].querySelectorAll("input")).find(radio=>radio.checked).getAttribute("id");const lastKey=thisId.split("-")[thisId.split("-").length-1].length;thisId=thisId.includes("sticky")?thisId.replace("-sticky",""):`${thisId.substring(0,thisId.length-lastKey)}sticky-${thisId.substring(thisId.length-lastKey)}`,options[2].querySelector(`[id^="${thisId}"]`).checked=!0}selectedOption3=Array.from(options[2].querySelectorAll("input")).find(radio=>radio.checked).value,options[2].querySelector("[data-header-option]").textContent=selectedOption3}var checkVariant=()=>{var optionsSize=parseInt(options.length);if(optionsSize>1){var variantList=variants.filter(variant=>{switch(optionsSize){case 2:return variant.option2===selectedOption2;case 3:return variant.option3===selectedOption3}}),input1List=options[0].querySelectorAll(".product-form__radio");input1List.forEach(input=>{var label=input.nextSibling,optionSoldout=Array.from(variantList).find(variant=>variant.option1==input.value&&variant.available),optionUnavailable=Array.from(variantList).find(variant=>variant.option1==input.value);optionSoldout==null?optionUnavailable==null?(label.classList.remove("available","soldout"),label.classList.add("unavailable")):(label.classList.remove("available","unavailable"),label.classList.add("soldout")):(label.classList.remove("soldout","unavailable"),label.classList.add("available"))})}},updateVariant=(optionSoldout,optionUnavailable,element,optionIndex)=>{var label=element.nextSibling;optionSoldout==null?optionUnavailable==null?(label.classList.remove("available","soldout"),label.classList.add("unavailable")):(label.classList.remove("available","unavailable"),label.classList.add("soldout")):(label.classList.remove("soldout","unavailable"),label.classList.add("available"))},renderVariant=(optionIndex,fieldset)=>{fieldset.querySelectorAll(".product-form__radio").forEach(input=>{const inputVal=input.value,optionSoldout=variants.find(variant=>{switch(optionIndex){case 0:return variant.option1==inputVal&&variant.available;case 1:return variant.option1==selectedOption1&&variant.option2==inputVal&&variant.available;case 2:return variant.option1==selectedOption1&&variant.option2==selectedOption2&&variant.option3==inputVal&&variant.available}}),optionUnavailable=variants.find(variant=>{switch(optionIndex){case 0:return variant.option1==inputVal;case 1:return variant.option1==selectedOption1&&variant.option2==inputVal;case 2:return variant.option1==selectedOption1&&variant.option2==selectedOption2&&variant.option3==inputVal}});updateVariant(optionSoldout,optionUnavailable,input,optionIndex)})}}else{if(options[0]){if(other){let orignSelectedOption1=originalOptions[0].querySelector("select").value;options[0].querySelector("select").value=orignSelectedOption1}selectedOption1=options[0].querySelector("select").value,options[0].querySelector("[data-header-option]").textContent=selectedOption1}if(options[1]){if(other){let orignSelectedOption2=originalOptions[1].querySelector("select").value;options[1].querySelector("select").value=orignSelectedOption2}selectedOption2=options[1].querySelector("select").value,options[1].querySelector("[data-header-option]").textContent=selectedOption2}
1if(options[2]){if(other){let orignSelectedOption3=originalOptions[2].querySelector("select").value;options[2].querySelector("select").value=orignSelectedOption3}selectedOption3=options[2].querySelector("select").value,options[2].querySelector("[data-header-option]").textContent=selectedOption3}var checkVariant=()=>{var optionsSize=parseInt(options.length);if(optionsSize>1){var variantList=variants.filter(variant=>{switch(optionsSize){case 2:return variant.option2===selectedOption2;case 3:return variant.option3===selectedOption3}}),option1List=options[0].querySelectorAll("option");option1List.forEach(option=>{var optionSoldout=Array.from(variantList).find(variant=>variant.option1==option.value&&variant.available),optionUnavailable=Array.from(variantList).find(variant=>variant.option1==option.value);optionSoldout==null?optionUnavailable==null?(option.classList.remove("available","soldout"),option.classList.add("unavailable"),option.setAttribute("disabled","disabled")):(option.classList.remove("available","unavailable"),option.classList.add("soldout"),option.removeAttribute("disabled")):(option.classList.remove("soldout","unavailable"),option.classList.add("available"),option.removeAttribute("disabled"))})}},updateVariant=(optionSoldout,optionUnavailable,element)=>{optionSoldout==null?optionUnavailable==null?(element.classList.remove("available","soldout"),element.classList.add("unavailable"),element.setAttribute("disabled","disabled")):(element.classList.remove("available","unavailable"),element.classList.add("soldout"),element.removeAttribute("disabled")):(element.classList.remove("soldout","unavailable"),element.classList.add("available"),element.removeAttribute("disabled"))},renderVariant=(optionIndex,select)=>{select.querySelectorAll("option").forEach(option=>{const optionVal=option.getAttribute("value"),optionSoldout=variants.find(variant=>{switch(optionIndex){case 0:return variant.option1==optionVal&&variant.available;case 1:return variant.option1==selectedOption1&&variant.option2==optionVal&&variant.available;case 2:return variant.option1==selectedOption1&&variant.option2==selectedOption2&&variant.option3==optionVal&&variant.available}}),optionUnavailable=variants.find(variant=>{switch(optionIndex){case 0:return variant.option1==optionVal;case 1:return variant.option1==selectedOption1&&variant.option2==optionVal;case 2:return variant.option1==selectedOption1&&variant.option2==selectedOption2&&variant.option3==optionVal}});updateVariant(optionSoldout,optionUnavailable,option)})}}options.forEach(fieldset=>{const optionIndex=parseInt(fieldset.getAttribute("data-option-index"));renderVariant(optionIndex,fieldset),checkVariant()})}}updateOtherVariants(variants){if(this.other=Array.from(this.item.querySelectorAll("variant-selects, variant-radios")).filter(selector=>selector!=this),this.other.length){const options=Array.from(this.other[0].querySelectorAll(".product-form__input"));this.updateVariants(variants,options,!0)}}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(time){if(!this.currentVariant||!this.currentVariant?.featured_media)return;const newMedia=this.item.querySelector(`[data-media-id="${this.dataset.section}-${this.currentVariant.featured_media.id}"]`);newMedia&&(window.setTimeout(()=>{$(newMedia.closest(".slick-slider")).slick("slickGoTo",newMedia.getAttribute("data-slick-index"))},time),window.setTimeout(()=>{$(newMedia).trigger("click")},time))}updateURL(){!this.currentVariant||this.dataset.updateUrl==="false"||window.history.replaceState({},"",`${this.dataset.url}?variant=${this.currentVariant.id}`)}updateShareUrl(){const shareButton=document.getElementById(`Share-${this.dataset.section}`);!shareButton||!shareButton.updateUrl||shareButton.updateUrl(`${window.shopUrl}${this.dataset.url}?variant=${this.currentVariant.id}`)}updatePickupAvailability(){const pickUpAvailability=this.item.querySelector("pickup-availability");pickUpAvailability&&(this.currentVariant?.available?pickUpAvailability.fetchAvailability(this.currentVariant.id):(pickUpAvailability.removeAttribute("available"),pickUpAvailability.innerHTML=""))}updateProductInfo(){fetch(`${this.dataset.url}?variant=${this.currentVariant.id}&section_id=${this.dataset.section}`).then(response=>response.text()).then(responseText=>{const html=new DOMParser().parseFromString(responseText,"text/html");if(this.dataset.updateTemplate==="true"){const content=document.createElement("div");content.appendChild(html.querySelector(`#halo-custom-featured-product-${this.dataset.section} template`).content.firstElementChild.cloneNode(!0)),html.querySelector(`#halo-custom-featured-product-${this.dataset.section}`).innerHTML=content.innerHTML}if(this.updateDescription(html),this.updateInventory(html),this.updateProperty(html),this.updateOthers(html),this.checkNeedToConvertCurrency()){let currencyCode=document.getElementById("currencies")?.querySelector(".active")?.getAttribute("data-currency");Currency.convertAll(window.shop_currency,currencyCode,"span.money","money_format")}})}updateAttribute(unavailable=!0,disable=!0){this.quantityInput=this.item.querySelector('input[name="quantity"]'),this.inventoryProp=this.item.querySelector("[data-inventory]"),this.skuProp=this.item.querySelector("[data-sku]"),this.productMessage=this.item.querySelector(`#product-message-${this.dataset.section}-${this.dataset.product}`),this.notifyMe=this.item.querySelector(`#product-sold-out-${this.dataset.section}-${this.dataset.product}`);const productForms=this.item.querySelectorAll(`#product-form-${this.dataset.section}-${this.dataset.product}, #product-sticky-form-${this.dataset.section}-${this.dataset.product}, #product-form-installment-${this.dataset.section}-${this.dataset.product}`);let quantityInputValue=parseInt(this.quantityInput?.value),quantityInputMa
1xValue,alertText=window.inventory_text.max,alertMessage=`<div class="alertBox alertBox--error"><p class="alertBox-message">${alertText}</p></div>`,subtotal=window[`subtotal_${this.dataset.product}`];if(unavailable){let text=window.variantStrings.unavailable;this.quantityInput?.setAttribute("disabled",!0),this.item.querySelector(".quantity__button")&&this.item.querySelectorAll(".quantity__button").forEach(button=>{button.setAttribute("disabled",!0)}),this.notifyMe&&(this.notifyMe.style.display="none"),this.productMessage&&(this.productMessage.style.display="none"),productForms.forEach(productForm=>{const addButton=productForm.querySelector('[name="add"]');addButton&&(addButton.setAttribute("disabled",!0),addButton.textContent=text)}),this.dataset.updateCart==="true"&&this.item.classList.remove("isChecked")}else{if(disable){let text=window.variantStrings.soldOut;this.quantityInput?.setAttribute("data-price",this.currentVariant?.price),this.quantityInput?.setAttribute("disabled",!0),this.item.querySelector(".quantity__button")&&this.item.querySelectorAll(".quantity__button").forEach(button=>{button.setAttribute("disabled",!0)}),productForms.forEach(productForm=>{const addButton=productForm.querySelector('[name="add"]');addButton&&(addButton.setAttribute("disabled",!0),addButton.textContent=text)}),this.inventoryProp&&(this.inventoryProp.querySelector(".productView-info-value").textContent=window.inventory_text.outOfStock),this.notifyMe&&(this.notifyMe.querySelector('input[name="halo-notify-product-variant"]').value=this.currentVariant.title,this.notifyMe.querySelector(".notifyMe-text").innerHTML="",this.notifyMe.style.display="block"),this.productMessage&&(this.productMessage.style.display="none"),this.dataset.updateCart==="true"&&this.item.classList.remove("isChecked")}else{let text,originalText,inventory=this.currentVariant?.inventory_management,arrayInVarName,inven_array,inven_num,inventoryQuantity;if(inventory!=null&&(arrayInVarName=`product_inven_array_${this.dataset.product}`,inven_array=window[arrayInVarName],inven_array!=null&&(inven_num=inven_array[this.currentVariant.id],inventoryQuantity=parseInt(inven_num),typeof inventoryQuantity<"u"?inventoryQuantity>0?this.quantityInput?.setAttribute("data-inventory-quantity",inventoryQuantity):this.quantityInput?.removeAttribute("data-inventory-quantity"):this.quantityInput?.setAttribute("data-inventory-quantity",inventoryQuantity))),subtotal){let price=this.currentVariant?.price,subTotal=0;if(subTotal=quantityInputValue*price,subTotal=Shopify.formatMoney(subTotal,window.money_format),subtotal.layout==1)typeof inventoryQuantity<"u"?inventoryQuantity>0?(text=subtotal.text.replace("[value]",subTotal),originalText=window.variantStrings.addToCart):(text=subtotal.text_2.replace("[value]",subTotal),originalText=window.variantStrings.preOrder):(text=subtotal.text.replace("[value]",subTotal),originalText=window.variantStrings.addToCart);else{const subtotalLabel=document.getElementById(`product-form-${this.dataset.section}-${this.dataset.product}`)?.querySelector("[data-product-subtotal]");subtotalLabel&&(subtotalLabel.innerHTML=subTotal,subtotalLabel.closest(".productView-subTotal").style.display==="none"&&(subtotalLabel.closest(".productView-subTotal").style.display="block")),typeof inventoryQuantity<"u"?inventoryQuantity>0?text=window.variantStrings.addToCart:text=window.variantStrings.preOrder:text=window.variantStrings.addToCart}}else typeof inventoryQuantity<"u"?inventoryQuantity>0?text=window.variantStrings.addToCart:text=window.variantStrings.preOrder:text=window.variantStrings.addToCart;if(this.quantityInput?.setAttribute("data-price",this.currentVariant?.price),this.quantityInput?.removeAttribute("disabled"),this.item.querySelector(".quantity__button")&&this.item.querySelectorAll(".quantity__button").forEach(button=>{button.removeAttribute("disabled")}),productForms.forEach(productForm=>{const addButton=productForm.querySelector('[name="add"]');addButton&&(addButton.classList.contains("button-text-change")?addButton.innerHTML=text:addButton.innerHTML=originalText||text)}),inventoryQuantity>
10?(productForms.forEach(productForm=>{const addButton=productForm.querySelector('[name="add"]');addButton&&addButton.classList.remove("button-text-pre-order")}),quantityInputMaxValue=parseInt(this.quantityInput?.getAttribute("data-inventory-quantity")),quantityInputValue>quantityInputMaxValue?(productForms.forEach(productForm=>{const addButton=productForm.querySelector('[name="add"]');addButton&&addButton.setAttribute("disabled",!0)}),this.productMessage&&(this.productMessage.innerHTML=alertMessage,this.productMessage.style.display="block"),this.dataset.updateCart==="true"&&this.item.classList.remove("isChecked")):(productForms.forEach(productForm=>{const addButton=productForm.querySelector('[name="add"]');addButton&&addButton.removeAttribute("disabled")}),this.productMessage&&(this.productMessage.innerHTML="",this.productMessage.style.display="none"),this.dataset.updateCart==="true"&&this.item.classList.add("isChecked")),this.inventoryProp&&(this.inventoryProp.querySelector(".productView-info-value").textContent=window.inventory_text.inStock)):(productForms.forEach(productForm=>{const addButton=productForm.querySelector('[name="add"]');addButton&&(addButton.removeAttribute("disabled"),addButton.classList.add("button-text-pre-order"))}),this.inventoryProp&&(this.inventoryProp.querySelector(".productView-info-value").textContent=window.inventory_text.inStock),this.productMessage&&(this.productMessage.innerHTML="",this.productMessage.style.display="none"),this.dataset.updateCart==="true"&&this.item.classList.add("isChecked")),this.notifyMe&&(this.notifyMe.style.display="none"),this.checkNeedToConvertCurrency()){let currencyCode=document.getElementById("currencies")?.querySelector(".active")?.getAttribute("data-currency");Currency.convertAll(window.shop_currency,currencyCode,"span.money","money_format")}}this.skuProp&&this.currentVariant.sku&&(this.skuProp.querySelector(".productView-info-value").textContent=this.currentVariant.sku),productForms.forEach(productForm=>{const input=productForm.querySelector('input[name="id"]');input.value=this.currentVariant.id,input.dispatchEvent(new Event("change",{bubbles:!0}))})}}updateDescription(html){const id=`[data-product-description-${this.dataset.section}-${this.dataset.product}]`,destination=this.item.querySelector(id),source=html.querySelector(id);source&&destination&&(destination.innerHTML=source.innerHTML,destination.closest(".toggle-content--height")&&(destination.style.maxHeight=null))}updateInventory(html){const id=`#product-inventory-${this.dataset.section}-${this.dataset.product}`,destination=this.item.querySelector(id),source=html.querySelector(id);if(!destination||!source)return;const inventoryText=destination.querySelector(".text"),inventoryProgress=destination.querySelector(".progress"),stock=parseFloat(source.querySelector(".progress")?.dataset.stock)||0,maxStock=parseFloat(source.querySelector(".progress")?.dataset.maxStock)||0,percent=source.querySelector(".progress").dataset.progressPercent;stock>0&&stock<maxStock?(destination.classList.remove("is-hide"),inventoryProgress.style.setProperty("--progress-percent",percent)):(destination.classList.add("is-hide"),inventoryProgress.style.setProperty("--progress-percent","0%")),inventoryText.innerHTML=source.querySelector(".text").innerHTML,inventoryProgress.setAttribute("data-stock",stock),inventoryProgress.setAttribute("data-progress-percent",percent)}updateOthers(html){this.getSectionsToRender().forEach(section=>{const destination=this.item.querySelector(section.selector),source=html.querySelector(section.selector);source&&destination&&(destination.innerHTML=source.innerHTML),destination?.classList.remove("visibility-hidden")})}updateProperty(html){const id=`#product-property-${this.dataset.section}-${this.dataset.product}`,destination=this.item.querySelector(id),source=html.querySelector(id);destination?source?(destination.innerHTML=source.innerHTML,destination.style.display="table"):destination.style.display="none":source&&this.item.querySelector(".productView-options")?.insertBefore(source,this.item.querySelector(".productView-form"))}getVariantData(){return this.variantData=this.variantData||JSON.parse(this.querySelector('[type="application/json"]').textContent),this.variantData}getSectionsToRender(){return[{id:"Price",selector:`#product-price-${this.dataset.section}-${this.dataset.product}`},{id:"Sticky-Price",selector:`#product-sticky-price-${this.dataset.section}-${this.dataset.product}`},{id:"Sticky-Image",selector:`#product-sticky-featured-image-${this.dataset.section}-${this.dataset.product}`},{id:"Edit-Cart-Image",selector:`#product-edit-featured-image-${this.dataset.section}-${this.dataset.product}`}]}checkNeedToConvertCurrency(){return window.show_multiple_currencies&&Currency.currentCurrency!=window.shop_currency||window.show_auto_currency}}customElements.define("variant-selects",VariantSelects);class VariantRadios extends VariantSelects{constructor(){super()}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 QuantityInput extends HTMLElement{constructor(){super(),this.input=this.querySelector("input"),this.changeEvent=ne
1w Event("change",{bubbles:!0}),this.input.addEventListener("change",this.onInputChange.bind(this)),this.querySelectorAll("button").forEach(button=>button.addEventListener("click",this.onButtonClick.bind(this)))}onButtonClick(event){event.preventDefault();const previousValue=this.input.value;event.target.name==="plus"?this.input.stepUp():this.input.stepDown(),previousValue!==this.input.value&&this.input.dispatchEvent(this.changeEvent)}onInputChange(event){event.preventDefault();const productMessage=this.input.closest("form")?.querySelector(`product-message-${this.dataset.section}-${this.dataset.product}`),addButton=document.getElementById(`product-form-${this.input.dataset.section}-${this.input.dataset.product}`)?.querySelector('[name="add"]');let inputValue=parseInt(this.input.value),inputMaxValue=parseInt(this.input.getAttribute("data-inventory-quantity")),subtotal=window[`subtotal_${this.input.dataset.product}`];if(inputValue<1)inputValue=1,this.input.value=inputValue;else if(inputMaxValue<inputValue){addButton?.setAttribute("disabled",!0);var alertText=window.inventory_text.max,alertMessage=`<div class="alertBox alertBox--error"><p class="alertBox-message">${alertText}</p></div>`;productMessage&&(productMessage.innerHTML=alertMessage,productMessage.style.display==="none"&&(productMessage.style.display="block")),this.input.dataset.updateCart==="true"&&this.closest(".product-edit-item")?.classList.remove("isChecked")}else addButton?.removeAttribute("disabled"),productMessage&&(productMessage.innerHTML="",productMessage.style.display==="block"&&(productMessage.style.display="none")),this.input.dataset.updateCart==="true"&&this.closest(".product-edit-item")?.classList.add("isChecked");if(subtotal){let text,price=this.input.dataset.price,subTotal=0;if(subTotal=inputValue*price,subTotal=Shopify.formatMoney(subTotal,window.money_format),subtotal.layout==1)addButton?.classList.contains("button-text-pre-order")?text=subtotal.text_2.replace("[value]",subTotal):text=subtotal.text.replace("[value]",subTotal),addButton&&(addButton.innerHTML=text);else{const subtotalLabel=document.getElementById(`product-form-${this.input.dataset.section}-${this.input.dataset.product}`)?.querySelector("[data-product-subtotal]");subtotalLabel&&(subtotalLabel.innerHTML=subTotal,subtotalLabel.closest(".productView-subTotal").style.display==="none"&&(subtotalLabel.closest(".productView-subTotal").style.display="block"))}if(this.checkNeedToConvertCurrency()){let currencyCode=document.getElementById("currencies")?.querySelector(".active")?.getAttribute("data-currency");Currency.convertAll(window.shop_currency,currencyCode,"span.money","money_format")}}}checkNeedToConvertCurrency(){return window.show_multiple_currencies&&Currency.currentCurrency!=window.shop_currency||window.show_auto_currency}}customElements.define("quantity-input",QuantityInput);
2//# sourceMappingURL=/cdn/shop/t/18/assets/variants.js.map?v=39642707447612509311739783212

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.