1(function(){"use strict";var DAYS_PER_PACK=30,ORIGINAL=new WeakMap,LABELLED=new WeakMap,PRICE=new WeakMap;function daysFromText(text){var m=String(text||"").match(/(\d+)\s*days?/i);return m?parseInt(m[1],10):0}function packsForDays(days){return!days||!DAYS_PER_PACK?1:Math.max(1,Math.ceil(days/DAYS_PER_PACK))}function multiplyMoney(text,factor){return String(text).replace(/(\d[\d,]*)(\.(\d{2}))?/g,function(whole,intPart,_d,cents){var value=parseFloat(intPart.replace(/,/g,"")+(cents?"."+cents:""));if(isNaN(value))return whole;var scaled=value*factor,out=cents?scaled.toFixed(2):String(Math.round(scaled)),parts=out.split(".");return parts[0]=parts[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),parts.join(".")})}function pickers(){return Array.prototype.slice.call(document.querySelectorAll("skio-plan-picker"))}function intervalSelect(shadow){return shadow.querySelector("select.selling-plan-dropdown")||shadow.querySelector("select")}function subscribeGroup(shadow){for(var groups=shadow.querySelectorAll(".group-container"),i=0;i<groups.length;i++)if(groups[i].querySelector("select"))return groups[i];return null}function optionText(select){if(!select)return"";var opt=select.selectedOptions&&select.selectedOptions[0];return opt?ORIGINAL.has(opt)?ORIGINAL.get(opt):opt.textContent:""}function moneyTextNodes(el){for(var out=[],walker=document.createTreeWalker(el,NodeFilter.SHOW_TEXT),n;n=walker.nextNode();)/\d/.test(n.nodeValue)&&out.push(n);return out}function applyPrice(node,packs){var state=PRICE.get(node);(!state||node.nodeValue!==state.written)&&(state={base:node.nodeValue});var next=packs>1?multiplyMoney(state.base,packs):state.base;node.nodeValue!==next&&(node.nodeValue=next),state.written=next,PRICE.set(node,state)}function decorate(picker){var shadow=picker.shadowRoot;if(shadow){var select=intervalSelect(shadow),group=subscribeGroup(shadow);if(!(!select||!group)){Array.prototype.forEach.call(select.options,function(opt){ORIGINAL.has(opt)||ORIGINAL.set(opt,opt.textContent.trim());var base=ORIGINAL.get(opt),packs2=packsForDays(daysFromText(base)),next=packs2>1?base+" \xB7 "+packs2+" packs":base;opt.textContent!==next&&(opt.textContent=next)});var packs=packsForDays(daysFromText(optionText(select)));if(group.querySelectorAll(".skio-price").forEach(function(priceEl){moneyTextNodes(priceEl).forEach(function(node){applyPrice(node,packs)})}),LABELLED.get(group)!==packs){var tag=group.querySelector("[data-ivim-packs]");packs>1?(tag||(tag=document.createElement("div"),tag.setAttribute("data-ivim-packs",""),tag.style.cssText="font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.7;margin-top:6px",select.parentElement.appendChild(tag)),tag.textContent=packs+" packs per delivery"):tag&&tag.remove(),LABELLED.set(group,packs)}}}}function selectedPacks(scope){var field=(scope||document).querySelector('[name="selling_plan"]');if(!field||!field.value)return 1;var picker=(scope||document).querySelector("skio-plan-picker")||document.querySelector("skio-plan-picker"),shadow=picker&&picker.shadowRoot;if(!shadow)return 1;var select=intervalSelect(shadow),days=daysFromText(optionText(select));return!days&&select&&Array.prototype.forEach.call(select.options,function(opt){String(opt.value)===String(field.value)&&(days=daysFromText(ORIGINAL.has(opt)?ORIGINAL.get(opt):opt.textContent))}),packsForDays(days)}function bindForm(form){form.hasAttribute("data-ivim-packs-bound")||(form.setAttribute("data-ivim-packs-bound",""),form.addEventListener("submit",function(){var packs=selectedPacks(form.closest("[id]")||document);if(!(packs<2)){var field=form.querySelector('[name="quantity"]');field||(field=document.createElement("input"),field.type="hidden",field.name="quantity",field.value="1",form.appendChild(field));var chosen=parseInt(field.value,10);(isNaN(chosen)||chosen<1)&&(chosen=1),field.value=String(chosen*packs),setTimeout(function(){field.value=String(chosen)},0)}},!0))}function scan(){pickers().forEach(decorate),document.querySelectorAll('form[action*="/cart/add"]').forEach(bindForm)}function watch(picker){!picker.shadowRoot||picker.hasAttribute("data-ivim-packs-watched")||(picker.setAttribute("data-ivim-packs-watched",""),new MutationObserver(function(){decorate(picker)}).observe(picker.shadowRoot,{childList:!0,subtree:!0,characterData:!0}
1))}function start(){scan(),pickers().forEach(watch),new MutationObserver(function(){scan(),pickers().forEach(watch)}).observe(document.documentElement,{childList:!0,subtree:!0}),document.addEventListener("change",scan,!0)}window.IvimPacks={forForm:selectedPacks,forDays:packsForDays,daysPerPack:DAYS_PER_PACK},document.readyState==="loading"?document.addEventListener("DOMContentLoaded",start):start()})(); 2//# sourceMappingURL=/cdn/shop/t/12/assets/ivim-subscription-packs.js.map?v=109832470813686949261790693129
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.