PageSourceSearch

https://namuk.com/cdn/shop/t/120/assets/variants.js?v=112188485921893544451790771594

js namuk.com collected 2026-10-03 21:31:36 UTC 4,829 bytes, 2 lines download raw bytes

1class VariantSelects extends HTMLElement{constructor(){super(),this.addEventListener("change",this.onVariantChange)}onVariantChange(){this.updateOptions(),this.updateMasterId(),this.currentVariant?(this.updateMedia(),this.updateURL(),this.updateVariantInput(),this.renderProductInfo(),this.dispatchVariantChange()):this.setUnavailable()}updateOptions(){this.options=Array.from(this.querySelectorAll("select"),select=>select.value);const thisOptions=this.options,sizeRadios=document.querySelectorAll('input[type="radio"][name="size"]');for(var i=0;i<sizeRadios.length;++i){let sizeEl=sizeRadios[i],size=sizeRadios[i].value;if(Object.values(thisOptions).includes(size)){sizeEl.click();break}}}updateMasterId(){this.currentVariant=this.getVariantData().find(variant=>!variant.options.map((option,index)=>this.options[index]===option).includes(!1))}dispatchVariantChange(){document.dispatchEvent(new CustomEvent("variant-change",{bubbles:!0,variant:this.currentVariant,detail:{variant:this.currentVariant}}))}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;parent.prepend(newMedia),window.setTimeout(()=>{parent.scroll(0,0)})}updateURL(){this.currentVariant&&window.history.replaceState({},"",`${this.dataset.url}?variant=${this.currentVariant.id}`)}updateVariantInput(){document.querySelectorAll(`#product-form-${this.dataset.section}, #product-form-installment`).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}&section_id=${this.dataset.section}`).then(response=>response.text()).then(responseText=>{const html=new DOMParser().parseFromString(responseText,"text/html"),idPrice=`price-${this.dataset.section}`,destinationPrice=document.getElementById(idPrice),sourcePrice=html.getElementById(idPrice);sourcePrice&&destinationPrice&&(destinationPrice.innerHTML=sourcePrice.innerHTML),document.getElementById(`price-${this.dataset.section}`)?.classList.remove("visibility-hidden"),this.currentVariant&&this.toggleAddButton(!this.currentVariant.available,window.variantStrings.soldOut);const inventoryQtyDestination=document.querySelector(`#product-form-${this.dataset.section}`).querySelector('input[name="inventory_quantity"]'),inventoryQtySource=html.querySelector(`#product-form-${this.dataset.section}`).querySelector('input[name="inventory_quantity"]');inventoryQtyDestination.value=inventoryQtySource.value})}toggleAddButton(disable=!0,text,modifyClass=!0){const addButtons=document.querySelectorAll('[name="add"]'),klaviyoButtons=document.querySelectorAll("[data-klaviyo-bis-trigger]");for(let index=0;index<addButtons.length;index++){let addButton=addButtons[index],klaviyoButton=klaviyoButtons[index];if(!addButton||(disable?(addButton.setAttribute("disabled",!0),addButton.classList.add("hidden"),klaviyoButton.classList.remove("hidden"),klaviyoButton.style.display="flex",text&&(addButton.querySelector("span").textContent=text)):(addButton.removeAttribute("disabled"),addButton.classList.remove("hidden"),klaviyoButton.classList.add("hidden"),klaviyoButton.style.display="none",addButton.querySelector("span").textContent=window.variantStrings.addToCart),!modifyClass))return}}setUnavailable(){const addButton=document.getElementById(`product-form-${this.dataset.section}`)?.querySelector('[name="add"]');addButton&&(addButton.textContent=window.variantStrings.unavailable,document.getElementById(`price-${this.dataset.section}`)?.classList.add("visibility-hidden"))}getVariantData(){return this.variantData=this.variantData||JSON.parse(this.querySelector('[type="application/json"]').textContent),this.variantData}}customElements.get("variant-selects")||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);const thisOptions=this.options,sizesDropdown=document.querySelector(".product-form__input--size .custom-select__list")||!1;if(sizesDropdown){const sizes=sizesDropdown.getElementsByTagName("li");for(var i=0;i<sizes.length;++i){let sizeEl=sizes[i],size=sizes[i].dataset.value;if(Object.values(thisOptions).includes(size)){sizeEl.click();break}}}}}customElements.get("variant-radios")||customElements.define("variant-radios",VariantRadios);
2//# sourceMappingURL=/cdn/shop/t/120/assets/variants.js.map?v=112188485921893544451790771594

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.