1function cleanProductTitle(title,wordsToRemove=[]){if(!title||typeof title!="string")return"";let cleanedTitle=title;return wordsToRemove.forEach(word=>{const regex=new RegExp(word.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"gi");cleanedTitle=cleanedTitle.replace(regex,"")}),cleanedTitle.replace(/\s+/g," ").trim()}function cleanColorTitle(title){let cleanedTitle=cleanProductTitle(title,["100%","Meriwool","Wool","Lana","Merino","Superwash","The","Bling","Yarn","Petite","Alpaca","Baby","Pima","Cotton","Wave","Squishy","Twist & Shout","Tweed","Mixed","Touch me Mohair","Merifine","Meripaca","Bamboo","Embroidery","Thread","Fuzzy","Boucle Cloud"]);return cleanedTitle.toLowerCase().includes("icorn")&&(cleanedTitle="Yarnicorn"),cleanedTitle}function findOptionByNames(options,searchNames){if(!options||!Array.isArray(options)||!searchNames||!Array.isArray(searchNames))return null;for(const option of options){const optionNameLower=option.name.toLowerCase();for(const searchName of searchNames)if(optionNameLower===searchName.trim().toLowerCase())return option}return null}function updateNeedlesDataAttributes(){const needlesContainer=document.querySelector("[data-needles-container]"),needlesDataScript=document.querySelector("[data-needles-data]");if(!needlesContainer||!needlesDataScript)return;let needlesData=[];try{needlesData=JSON.parse(needlesDataScript.textContent)}catch(e){console.error("Error parsing needles data:",e);return}const checkedNeedleRadio=needlesContainer.querySelector(".variant-radio:checked");if(!checkedNeedleRadio)return;if(checkedNeedleRadio.closest(".without-needles-option"))needlesContainer.setAttribute("data-selected-needle-name",""),needlesContainer.setAttribute("data-selected-needle-id",""),needlesContainer.setAttribute("data-selected-needle-sku",""),needlesContainer.setAttribute("data-selected-needle-weight",""),needlesContainer.setAttribute("data-selected-needle-quantity","0");else{const radioIndex=parseInt(checkedNeedleRadio.getAttribute("data-needle-index"),10);if(isNaN(radioIndex)||radioIndex<0){console.warn("Invalid needle index"),needlesContainer.setAttribute("data-selected-needle-name",""),needlesContainer.setAttribute("data-selected-needle-id",""),needlesContainer.setAttribute("data-selected-needle-sku",""),needlesContainer.setAttribute("data-selected-needle-weight",""),needlesContainer.setAttribute("data-selected-needle-quantity","0");return}const matchedNeedle=needlesData[radioIndex];matchedNeedle?(needlesContainer.setAttribute("data-selected-needle-name",matchedNeedle.title||""),needlesContainer.setAttribute("data-selected-needle-id",matchedNeedle.id||""),needlesContainer.setAttribute("data-selected-needle-sku",matchedNeedle.variants?.[0]?.sku||""),needlesContainer.setAttribute("data-selected-needle-weight",matchedNeedle.variants?.[0]?.weight||""),needlesContainer.setAttribute("data-selected-needle-quantity","1")):(console.warn(`No needle found at index ${radioIndex}`),needlesContainer.setAttribute("data-selected-needle-name",""),needlesContainer.setAttribute("data-selected-needle-id",""),needlesContainer.setAttribute("data-selected-needle-sku",""),needlesContainer.setAttribute("data-selected-needle-weight",""),needlesContainer.setAttribute("data-selected-needle-quantity","0"))}}var cleanColorTitleJS=cleanColorTitle; 2//# sourceMappingURL=/cdn/shop/t/33/assets/variant-option-utils.js.map?v=14871816210573685051761669676
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.