PageSourceSearch

https://www.hometown.in/cdn/shop/t/116/assets/variant-popup.js?v=141608927609542251101789972886

js hometown.in collected 2026-10-04 00:07:08 UTC 26,778 bytes, 2 lines download raw bytes

1(function(){"use strict";function evaluateVariantSelector(){const modal=document.getElementById("variant-modal");if(!modal)return;const linkedGroups=modal.querySelectorAll("[data-linked-options] .linked-options-group").length;let nativeGroups=0;modal.querySelectorAll(".variant-group").forEach(group=>{group.hidden||group.classList.contains("variant-group--single")||group.querySelectorAll(".option-item:not([hidden])").length>1&&(nativeGroups+=1)});const hasSelectable=linkedGroups>0||nativeGroups>0,state=hasSelectable?"false":"true";document.querySelectorAll(".variant-preview").forEach(preview=>{preview.dataset.selectorEmpty=state}),document.querySelectorAll(".variant-customisation-hint").forEach(hint=>{hint.dataset.selectorEmpty=state}),hasSelectable||(modal.setAttribute("aria-hidden","true"),modal.style.display="none")}window.__variantSelectorGuard=evaluateVariantSelector})(),(function(){"use strict";function domReady(cb){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",cb,{once:!0}):cb()}const cache={};function getElement(id){return cache[id]||(cache[id]=document.getElementById(id))}function getElements(selector){return cache[selector]||(cache[selector]=document.querySelectorAll(selector))}function whenReady(cb){if(window.productVariants?.length)return cb();let attempts=0;const timer=setInterval(()=>{(window.productVariants?.length||++attempts>30)&&(clearInterval(timer),window.productVariants?.length&&cb())},50)}function init(){const modal=getElement("variant-modal");if(!modal)return;const previews=getElements(".variant-preview"),closeBtn=getElement("variant-close"),applyBtn=getElement("variant-apply"),overlay=modal.querySelector(".variant-modal-overlay"),optionItems=Array.from(modal.querySelectorAll(".option-item")),optionNames=window.productOptions||[],variants=window.productVariants||[],optionCount=optionNames.length||0,optionItemsByIndex={};let selected=new Array(optionCount),savedSelected=[];optionItems.forEach(item=>{const idx=Number(item.dataset.optionIndex);Number.isNaN(idx)||(optionItemsByIndex[idx]=optionItemsByIndex[idx]||[],optionItemsByIndex[idx].push(item))}),!modal.dataset.firstOptionGroupType&&optionNames.length&&(modal.dataset.firstOptionGroupType="variant",modal.dataset.firstOptionGroupName=optionNames[0]);function normalizeLinkedValue(rawValue){if(rawValue==null)return"";let value=String(rawValue).trim();if(!value)return"";const hexRegex=/#(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})/i;if(value.includes(":")){const parts=value.split(":").map(part=>part.trim()).filter(Boolean);if(parts.length>=2)return hexRegex.test(parts[parts.length-1])&&parts.pop(),parts[1]||parts[0]||""}return value=value.replace(/\(\s*#(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})\s*\)/i,"").replace(/\s+#(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})/i,"").trim(),value}function normalizeLinkedValues(values){return Array.isArray(values)?values.map(normalizeLinkedValue).filter(Boolean):[]}function getVariantOptionValue(variant,index){return Array.isArray(variant?.options)?variant.options[index]:null}function isVariantPurchasable(variant){return variant?variant.available?!0:variant.inventory_policy==="continue":!1}function isFirstVariantGroup(index){return modal.dataset.firstOptionGroupType!=="variant"?!1:modal.dataset.firstOptionGroupName===optionNames[index]}function findMatchingVariants(optionIndex,optionValue,useSelections){return variants.filter(variant=>String(getVariantOptionValue(variant,optionIndex))!==String(optionValue)?!1:optionNames.every((_,idx)=>{if(idx===optionIndex||!useSelections)return!0;const selectedValue=selected[idx];return selectedValue?String(getVariantOptionValue(variant,idx))===String(selectedValue):!0}))}function isOptionPurchasable(optionIndex,optionValue,useSelections){const matches=findMatchingVariants(optionIndex,optionValue,useSelections);return matches.length?matches.some(isVariantPurchasable):!1}function getFirstAvailableValue(optionIndex,useSelections){return(optionItemsByIndex[optionIndex]||[]).map(item=>item.dataset.value).filter(Boolean).find(value=>isOptionPurchasable(optionIndex,value,useSelections))||null}function findMatchingVariant(){return variants.find(variant=>optionNames.every((_,idx)=>selected[idx]?String(getVariantOptionValue(variant,idx))===String(selected[idx]):!0))}function findVariantByOptions(options){return variants.find(variant=>optionNames.every((_,idx)=>String(getVariantOptionValue(variant,idx))===String(options[idx])))}function isPairCompatible(indexA,valueA,indexB,valueB){return variants.some(variant=>String(getVariantOptionValue(variant,indexA))===String(valueA)&&String(getVariantOptionValue(variant,indexB))===String(valueB))}function findUpstreamMatchingVariants(optionIndex,optionValue){return variants.filter(variant=>{if(String(getVariantOptionValue(variant,optionIndex))!==String(optionValue))return!1;for(let i=0;i<optionIndex;i++)if(selected[i]&&String(getVariantOptionValue(variant,i))!==String(selected[i]))return!1;return!0})}function getLinkedSelections(){const selections=Array.from(modal.querySelectorAll('.linked-option-item[aria-pressed="true"]')).map(btn=>
1btn.dataset.optionValue||btn.textContent.trim()).filter(Boolean);if(selections.length)return normalizeLinkedValues(selections);const fallback=modal?.dataset?.linkedSelections;if(!fallback)return[];try{const parsed=JSON.parse(fallback);return Array.isArray(parsed)?normalizeLinkedValues(parsed):[]}catch{return[]}}function getPreviewLinkedSelections(previewEl){const raw=previewEl?.dataset?.linkedOptions;if(!raw)return[];try{const parsed=JSON.parse(raw);return Array.isArray(parsed)?normalizeLinkedValues(parsed):[]}catch{return[]}}function getVirtualSelections(previewEl){const raw=previewEl?.dataset?.virtualOptions;if(!raw)return[];try{const parsed=JSON.parse(raw);return Array.isArray(parsed)?normalizeLinkedValues(parsed):[]}catch{return[]}}function buildPreviewLabel(previewEl){const hasOnlyDefault=previewEl?.dataset?.hasOnlyDefaultVariant==="true",defaultTitle=previewEl?.dataset?.defaultTitle||"",productTitle=previewEl?.dataset?.productTitle||"",modalLinkedValues=getLinkedSelections(),linkedValues=(modalLinkedValues.length?modalLinkedValues:getPreviewLinkedSelections(previewEl)).filter(Boolean),virtualValues=getVirtualSelections(previewEl);if(modal?.dataset?.linkedVariantMode==="true"){const combined2=[...virtualValues,...linkedValues].filter(Boolean);return combined2.length?combined2.join(" / "):defaultTitle||productTitle||"Select options"}if(hasOnlyDefault){const combined2=[...virtualValues,...linkedValues].filter(Boolean);return combined2.length?combined2.join(" / "):defaultTitle||"Select options"}const variantValues=selected.filter(Boolean),combined=[...virtualValues,...linkedValues,...variantValues].filter(Boolean);return combined.length?combined.join(" / "):defaultTitle||"Select options"}function updatePreviewLabel(){previews.forEach(preview=>{preview.innerHTML=`<p>${buildPreviewLabel(preview)}</p>`})}function cascadeSelections(primaryIndex){for(let idx=0;idx<optionCount;idx++){if(idx<=primaryIndex)continue;const currentValue=selected[idx];if(currentValue&&findUpstreamMatchingVariants(idx,currentValue).some(isVariantPurchasable))continue;const items=optionItemsByIndex[idx]||[];let found=!1;for(let j=0;j<items.length;j++){const val=items[j].dataset.value;if(!val)continue;if(findUpstreamMatchingVariants(idx,val).some(isVariantPurchasable)){selected[idx]=val,found=!0;break}}if(!found)for(let j=0;j<items.length;j++){const val=items[j].dataset.value;if(val&&findUpstreamMatchingVariants(idx,val).length>0){selected[idx]=val,found=!0;break}}found||(selected[idx]=null)}}function normalizeSelections(){for(let idx=0;idx<optionCount;idx++){const currentValue=selected[idx],items=optionItemsByIndex[idx]||[];
1if(currentValue&&findUpstreamMatchingVariants(idx,currentValue).length>0)continue;let found=!1;for(let j=0;j<items.length;j++){const val=items[j].dataset.value;if(!val)continue;if(findUpstreamMatchingVariants(idx,val).some(isVariantPurchasable)){selected[idx]=val,found=!0;break}}if(!found)for(let j=0;j<items.length;j++){const val=items[j].dataset.value;if(val&&findUpstreamMatchingVariants(idx,val).length>0){selected[idx]=val,found=!0;break}}found||(selected[idx]=null)}}function updateVariantOptionUI(){optionNames.forEach((_,idx)=>{const isFirstGroup=idx===0;(optionItemsByIndex[idx]||[]).forEach(item=>{const value=item.dataset.value,matches=findUpstreamMatchingVariants(idx,value),exists=matches.length>0,purchasable=matches.some(isVariantPurchasable),shouldHide=!exists&&!isFirstGroup,shouldDisable=(isFirstGroup||exists)&&!purchasable;item.hidden=shouldHide,item.classList.toggle("option-item--unavailable",shouldDisable),item.setAttribute("aria-disabled",shouldDisable?"true":"false"),item.setAttribute("tabindex",shouldDisable?"-1":"0")})}),optionNames.forEach((_,idx)=>{(optionItemsByIndex[idx]||[]).forEach(item=>{item.classList.toggle("active",item.dataset.value===String(selected[idx]))})})}const urlParams=new URLSearchParams(window.location.search),urlVariantId=urlParams.get("variant")||urlParams.get("variant_id");let current;urlVariantId&&(current=variants.find(v=>String(v.id)===String(urlVariantId))),current||(current=variants.find(v=>v.available)||variants[0]),current?.options&&(selected=[...current.options]),normalizeSelections(),updateV
1ariantOptionUI(),updatePreviewLabel(),typeof subscribe=="function"&&typeof PUB_SUB_EVENTS<"u"&&subscribe(PUB_SUB_EVENTS.variantChange,({data})=>{const variant=data?.variant;variant&&(previews.forEach(p=>{p.dataset.variantId=variant.id}),variant.options&&(selected=[...variant.options],normalizeSelections(),updateVariantOptionUI(),updatePreviewLabel()))});function toggle(show){show&&(savedSelected=[...selected]),modal.setAttribute("aria-hidden",!show),modal.style.display=show?"block":"none"}document.addEventListener("click",e=>{e.target.closest(".variant-preview")&&toggle(!0)},{passive:!0});function closeModal(){selected=[...savedSelected],normalizeSelections(),updateVariantOptionUI(),modal.dispatchEvent(new CustomEvent("linked-options:reset")),updatePreviewLabel(),toggle(!1)}[closeBtn,overlay].forEach(el=>el?.addEventListener("click",closeModal,{passive:!0})),modal.addEventListener("click",e=>{const item=e.target.closest(".option-item");if(!item||item.hidden||item.classList.contains("option-item--unavailable")||item.getAttribute("aria-disabled")==="true")return;const idx=+item.dataset.optionIndex;selected[idx]=item.dataset.value,cascadeSelections(idx),updateVariantOptionUI()}),modal.addEventListener("linked-options:change",()=>{updatePreviewLabel()}),modal.addEventListener("keydown",e=>{if((e.key==="Enter"||e.key===" ")&&e.target.classList.contains("option-item")){if(e.target.getAttribute("aria-disabled")==="true"||e.target.classList.contains("option-item--unavailable"))return;e.preventDefault(),e.target.click()}}),applyBtn?.addEventListener("click",()=>
1{if(normalizeSelections(),updateVariantOptionUI(),selected.some(v=>!v))return;let targetVariant=findVariantByOptions(selected);if(!targetVariant){const partialMatch=findMatchingVariant();partialMatch?.options&&(selected=[...partialMatch.options],normalizeSelections(),updateVariantOptionUI(),targetVariant=findVariantByOptions(selected)||partialMatch)}targetVariant&&requestAnimationFrame(()=>{const productInfoRoot=document.querySelector("product-info")||document;if(productInfoRoot.querySelectorAll('select[name^="options["]').forEach(sel=>{const match=sel.name.match(/^options\[(.*)\]$/);if(match){const idx=optionNames.indexOf(match[1]);idx!==-1&&targetVariant.options?.[idx]&&(sel.value=targetVariant.options[idx],sel.dispatchEvent(new Event("change",{bubbles:!0})))}}),optionNames.forEach((optionName,idx)=>{const optionValue=targetVariant.options?.[idx];if(!optionValue)return;const escapedName=window.CSS?.escape?CSS.escape(`${optionName}-`):`${optionName}-`.replace(/"/g,'\\"');productInfoRoot.querySelectorAll(`variant-selects input[type="radio"][name^="${escapedName}"]`).forEach(input=>{String(input.value)===String(optionValue)&&(input.checked||(input.checked=!0,input.dispatchEvent(new Event("change",{bubbles:!0}))))})}),document.querySelectorAll('form[action*="/cart/add"] input[name="id"]').forEach(input=>{input.value=targetVariant.id,input.dispatchEvent(new Event("change",{bubbles:!0}))}),targetVariant?.id){const url=new URL(window.location.href);url.searchParams.set("variant",targetVariant.id),window.history.replaceState({},"",url.toString())}previews.forEach(preview=>{preview.dataset.variantId=targetVariant.id}),typeof window.__updateDealOffer=="function"&&window.__updateDealOffer(targetVariant.id),updatePreviewLabel(),toggle(!1)})},{passive:!0})}domReady(function(){whenReady(function(){init(),typeof window.__variantSelectorGuard=="function"&&requestAnimationFrame(window.__variantSelectorGuard)})})})(),(function(){"use strict";function domReady(cb){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",cb,{once:!0}):cb()}function parseOptions(optionsString){if(!optionsString)return[];const trimmed=optionsString.trim();if(trimmed.startsWith("["))try{const parsed=JSON.parse(trimmed);return Array.isArray(parsed)?parsed:[]}catch{return[]}return trimmed.split("|").reduce((acc,pair)=>{const parts=pair.split(":"),key=parts[0],value=parts.slice(1).join(":");return key&&value&&acc.push({name:key.trim(),value:value.trim()}),acc},[])}function normalizeOptionEntry(option){if(!option)return null;const normalized={...option},name=option.name!=null?String(option.name).trim():"",value=option.value!=null?String(option.value).trim():"",color=option.color!=null?String(option.color).trim():"",image=option.image!=null?String(option.image).trim():"";normalized.name=name,normalized.value=value,normalized.color=color,normalized.image=image;const nameLower=name.toLowerCase(),isColorOption=!!normalized.color||nameLower.includes("color")||nameLower.includes("colour"),hexRegex=/#(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})/i,hexMatch=value.match(hexRegex);if(hexMatch&&isColorOption){normalized.color||(normalized.color=hexMatch[0]);const cleaned=value.replace(/\(\s*#(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})\s*\)/i,"").replace(/\s*[:\-\|]\s*#(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})/i,"").replace(/\s+#(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})/i,"").trim();cleaned&&(normalized.value=cleaned)}return normalized}function formatLabel(label){if(!label)return"";const normalized=label.replace(/[_-]+/g," ").trim().toLowerCase(),overrides={"shopify color pattern":"Color","color pattern":"Color",color:"Color"};return overrides[normalized]?overrides[normalized]:normalized.replace(/\b\w/g,match=>match.toUpperCase())}function initLinkedOptionsModal(){const modal=document.getElementById("variant-modal");if(!modal||modal.dataset.linkedOptionsInit==="true")return;modal.dataset.linkedOptionsInit="true";const dataContainer=modal.querySelector("[data-linked-products]"),optionsContainer=modal.querySelector("[data-linked-options]");if(!dataContainer||!optionsContainer)return;const items=Array.from(dataContainer.querySelectorAll("[data-linked-product]"));if(!items.length)return;const variantMode=items.some(item=>item.dataset.variantId),state={items,optionsContainer,currentProductId:dataContainer.dataset.currentProductId||"",selections:{},optionValues:{},optionOrder:[],modal,variantMode};state.variantMode&&(modal.dataset.linkedVariantMode="true",modal.querySelectorAll(".variant-group").forEach(group=>{group.hidden=!0}));function isItemPurchasable(item){if(!item)return!1;const available=item.dataset.variantAvailable==="true";return(item.dataset.inventoryPolicy||"")==="continue"?!0:available}function isFirstLinkedGroup(optionName){return state.modal?.dataset.f
1irstOptionGroupType==="linked"&&state.modal?.dataset.firstOptionGroupName===optionName}function getOptionIndex(optionName){return state.optionOrder.indexOf(optionName)}function findMatchingItems(optionName,optionValue,useSelections){return state.items.filter(item=>{const optionMap=item._optionMap||{};return optionMap[optionName]!==optionValue?!1:state.optionOrder.every(key=>key===optionName||!useSelections||!state.selections[key]?!0:optionMap[key]===state.selections[key])})}function findUpstreamMatchingItems(optionName,optionValue){const optionIndex=getOptionIndex(optionName);return state.items.filter(item=>{const optionMap=item._optionMap||{};if(optionMap[optionName]!==optionValue)return!1;for(let i=0;i<optionIndex;i++){const upstreamName=state.optionOrder[i],upstreamValue=state.selections[upstreamName];if(upstreamValue&&optionMap[upstreamName]!==upstreamValue)return!1}return!0})}function isOptionPurchasable(optionName,optionValue,useSelections){const matches=useSelections?findUpstreamMatchingItems(optionName,optionValue):findMatchingItems(optionName,optionValue,!1);return matches.length?matches.some(isItemPurchasable):!1}function buildState(){state.items.forEach(item=>{const options=parseOptions(item.dataset.productOptions);item._optionMap={},options.forEach(option=>{const normalized=normalizeOptionEntry(option);if(!normalized?.name||!normalized?.value)return;const name=normalized.name,value=normalized.value;item._optionMap[name]=value,state.optionOrder.includes(name)||state.optionOrder.push(name),state.optionValues[name]||(state.optionValues[name]={}),state.optionValues[name][value]||(state.optionValues[name][value]={value,image:normalized.image||"",color:normalized.color||""})})});const currentVariantId=getCurrentVariantId(),currentItem=state.items.find(item=>item.dataset.productId===state.currentProductId&&(!currentVariantId||String(item.dataset.variantId)===String(currentVariantId)))||state.items.find(item=>item.dataset.productId===state.currentProductId&&isItemPurchasable(item))||state.items.find(item=>item.dataset.productId===state.currentProductId)||state.items[0];currentItem?._optionMap&&state.optionOrder.forEach(key=>{currentItem._optionMap[key]&&(state.selections[key]=currentItem._optionMap[key])}),state.optionOrder.length&&(state.modal.dataset.firstOptionGroupType="linked",state.modal.dataset.firstOptionGroupName=state.optionOrder[0])}function matchesSelections(optionMap,requireComplete){return state.optionOrder.every(key=>state.selections[key]?optionMap[key]===state.selections[key]:!requireComplete)}function findMatchingItem(requireComplete=!1){return state.items.find(item=>matchesSelections(item._optionMap||{},requireComplete))||null}function isOptionAvailable(optionName,optionValue,useSelections){return isOptionPurchasable(optionName,optionValue,useSelections)}function getFirstMatchingValue(optionName,requirePurchasable){return Object.values(state.optionValues[optionName]||{}).find(optionData=>{const matches=findUpstreamMatchingItems(optionName,optionData.value);return matches.length?requirePurchasable?matches.some(isItemPurchasable):!0:!1})?.value||null}function normalizeSelections(){state.optionOrder.forEach(optionName=>{const currentValue=state.selections[optionName];if(currentValue&&findUpstreamMatchingItems(optionName,currentValue).length>0)return;const fallbackValue=getFirstMatchingValue(optionName,!0)||getFirstMatchingValue(optionName,!1);fallbackValue?state.selections[optionName]=fallbackValue:delete state.selections[optionName]})}function cascadeSelections(primaryOptionName){const primaryIndex=getOptionIndex(primaryOptionName);if(primaryIndex===-1){normalizeSelections();return}for(let i=primaryIndex+1;i<state.optionOrder.length;i++){const optionName=state.optionOrder[i],currentValue=state.selections[optionName];if(currentValue&&findUpstreamMatchingItems(optionName,currentValue).length>0)continue;const fallbackValue=getFirstMatchingValue(optionName,!0)||getFirstMatchingValue(optionName,!1);fallbackValue?state.selections[optionName]=fallbackValue:delete state.selections[optionName]}}function renderOptions(){optionsContainer.innerHTML="",normalizeSelections(!1),state.optionOrder.forEach(optionName=>
1{if(Object.keys(state.optionValues[optionName]||{}).length<=1)return;const group=document.createElement("div");group.className="linked-options-group";const label=document.createElement("div");label.className="linked-options-label",label.textContent=formatLabel(optionName);const list=document.createElement("div");list.className="linked-option-list";const isFirstGroup=isFirstLinkedGroup(optionName),useSelections=!isFirstGroup;Object.values(state.optionValues[optionName]||{}).forEach(optionData=>{const button=document.createElement("button");button.type="button",button.className="linked-option-item",button.dataset.optionName=optionName,button.dataset.optionValue=optionData.value,optionData.color&&(button.dataset.optionColor=optionData.color),optionData.image&&(button.dataset.optionImage=optionData.image),button.setAttribute("aria-pressed",state.selections[optionName]===optionData.value?"true":"false");const matches=useSelections?findUpstreamMatchingItems(optionName,optionData.value):findMatchingItems(optionName,optionData.value,!1),exists=matches.length>0,purchasable=matches.some(isItemPurchasable);if(!exists&&!isFirstGroup)return;if(purchasable||button.classList.add("linked-option-item--store-only"),optionData.image||optionData.color){const swatch=document.createElement("span");swatch.className="option-swatch",optionData.image?swatch.style.backgroundImage=`url("${optionData.image}")`:swatch.style.backgroundColor=optionData.color,button.appendChild(swatch)}const text=document.createElement("span");if(text.className="option-text",text.textContent=optionData.value,button.appendChild(text),!purchasable){const chip=document.createElement("span");chip.className="vp-store-chip",chip.textContent="Buy at Store",button.appendChild(chip)}list.appendChild(button)}),group.appendChild(label),group.appendChild(list),optionsContainer.appendChild(group)}),updateSelectionDataset(),state.modal?.dispatchEvent(new CustomEvent("linked-options:change"))}function updateSelectionDataset(){if(!state.modal)return;const values=state.optionOrder.map(optionName=>state.selections[optionName]).filter(Boolean),matching=findMatchingItem(!0)||findMatchingItem(!1);state.modal.dataset.linkedSelections=JSON.stringify(values),state.modal.dataset.linkedVariantId=matching?.dataset.variantId||"",state.modal.dataset.linkedProductId=matching?.dataset.productId||"",state.modal.dataset.linkedProductUrl=matching?.dataset.productUrl||""}optionsContainer.addEventListener("click",event=>{const button=event.target.closest(".linked-option-item");if(!button||button.disabled)return;const optionName=button.dataset.optionName,optionValue=button.dataset.optionValue;!optionName||!optionValue||(state.selections[optionName]=optionValue,cascadeSelections(optionName),renderOptions())});function getCurrentVariantId(){const params=new URLSearchParams(window.location.search),urlVariantId=params.get("variant")||params.get("variant_id");return urlVariantId||document.querySelector('form[action*="/cart/add"] input[name="id"]')?.value||""}function buildVariantUrl(productUrl,variantId){const url=new URL(productUrl,window.location.origin);return variantId&&url.searchParams.set("variant",variantId),url.toString()}function applyCurrentProductVariant(variantId){if(!variantId)return;const productInfoRoot=document.querySelector("product-info")||document,variants=window.productVariants||[],optionNames=window.productOptions||[],targetVariant=variants.find(variant=>String(variant.id)===String(variantId));targetVariant?.options&&(productInfoRoot.querySelectorAll('select[name^="options["]').forEach(select=>{const match=select.name.match(/^options\[(.*)\]$/);if(!match)return;const idx=optionNames.indexOf(match[1]);idx!==-1&&targetVariant.options?.[idx]&&(select.value=targetVariant.options[idx],select.dispatchEvent(new Event("change",{bubbles:!0})))}),optionNames.forEach((optionName,idx)=>{const optionValue=targetVariant.options?.[idx];if(!optionValue)return;const escapedName=window.CSS?.escape?CSS.escape(`${optionName}-`):`${optionName}-`.replace(/"/g,'\\"');productInfoRoot.querySelectorAll(`variant-selects input[type="radio"][name^="${escapedName}"]`).forEach(input=>{String(input.value)===String(optionValue)&&(input.checked||(input.checked=!0,input.dispatchEvent(new Event("change",{bubbles:!0}))))})})),document.querySelectorAll('form[action*="/cart/add"] input[name="id"]').forEach(input=>{input.value=variantId,input.dispatchEvent(new Event("change",{bubbles:!0}))}),typeof window.__updateDealOffer=="function"&&window.__updateDealOffer(variantId);const url=new URL(window.location.href);
1url.searchParams.set("variant",variantId),window.history.replaceState({},"",url.toString());const label=state.optionOrder.map(optionName=>state.selections[optionName]).filter(Boolean).join(" / ")||targetVariant?.title||"Select options";document.querySelectorAll(".variant-preview").forEach(preview=>{preview.dataset.variantId=variantId,preview.innerHTML=`<p>${label}</p>`}),state.modal.setAttribute("aria-hidden","true"),state.modal.style.display="none"}const applyBtn=document.getElementById("variant-apply");applyBtn&&applyBtn.addEventListener("click",event=>{const matching=findMatchingItem(!0)||findMatchingItem(!1);if(!matching)return;const matchingId=matching.dataset.productId,matchingUrl=matching.dataset.productUrl,matchingVariantId=matching.dataset.variantId;if(state.variantMode&&matchingVariantId){event.preventDefault(),event.stopImmediatePropagation(),matchingId&&state.currentProductId&&matchingId!==state.currentProductId&&matchingUrl?window.location.href=buildVariantUrl(matchingUrl,matchingVariantId):applyCurrentProductVariant(matchingVariantId);return}matchingId&&state.currentProductId&&matchingId!==state.currentProductId&&matchingUrl&&(event.preventDefault(),event.stopImmediatePropagation(),window.location.href=buildVariantUrl(matchingUrl,matchingVariantId))},!0),buildState(),normalizeSelections(!0),renderOptions(),modal.addEventListener("linked-options:reset",()=>{state.optionOrder.forEach(key=>{delete state.selections[key]});const currentVariantId=getCurrentVariantId(),currentItem=state.items.find(item=>item.dataset.productId===state.currentProductId&&(!currentVariantId||String(item.dataset.variantId)===String(currentVariantId)))||state.items.find(item=>item.dataset.productId===state.currentProductId&&isItemPurchasable(item))||state.items.find(item=>item.dataset.productId===state.currentProductId)||state.items[0];currentItem?._optionMap&&state.optionOrder.forEach(key=>{currentItem._optionMap[key]&&(state.selections[key]=currentItem._optionMap[key])}),normalizeSelections(!0),renderOptions()})}domReady(function(){initLinkedOptionsModal(),typeof window.__variantSelectorGuard=="function"&&requestAnimationFrame(window.__variantSelectorGuard)})})();
2//# sourceMappingURL=/cdn/shop/t/116/assets/variant-popup.js.map?v=141608927609542251101789972886

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.