1(function(){if(window.StickyATC)return;var FORM_SCOPE="#main-product-container #main-product .product-form",root=document.getElementById("sticky-atc-root"),mainForm=document.querySelector(FORM_SCOPE);if(!root||!mainForm)return;var productIdField=document.getElementById("product-id"),qtyInput=mainForm.querySelector("input.quantity-selector, #quantity"),minusQty=mainForm.querySelector(".minus-qty"),plusQty=mainForm.querySelector(".plus-qty"),submitContainer=mainForm.querySelector(".submit-button-container"),sizeSelectorSection=mainForm.querySelector("#sizeLabelContainer")||mainForm.querySelector(".variant-sizes"),variantRadioWrapper=mainForm.querySelector("#variantRadioWrapper")||mainForm.querySelector(".variant-radio-wrapper"),titleWrapper=document.querySelector("#main-product-container #main-product .product-title-wrapper"),galleryWrapper=document.querySelector(".js-desktop-images-wrapper"),sizeWrapper=root.querySelector(".js-sticky-atc-size"),sizeTrigger=root.querySelector(".js-sticky-atc-size-trigger"),sizePanel=root.querySelector(".js-sticky-atc-size-panel"),sizeOptionsContainer=root.querySelector(".js-sticky-atc-size-options"),sizeLabelEls=root.querySelectorAll(".js-sticky-atc-size-label"),sizeLabelMobileEls=root.querySelectorAll(".js-sticky-atc-size-label-mobile"),priceValueEls=root.querySelectorAll(".js-sticky-atc-price-value"),priceCompareEls=root.querySelectorAll(".js-sticky-atc-price-compare"),qtyValueEl=root.querySelector(".js-sticky-atc-qty-value"),qtyMinusBtn=root.querySelector(".js-sticky-atc-qty-minus"),qtyPlusBtn=root.querySelector(".js-sticky-atc-qty-plus"),addButtons=root.querySelectorAll(".js-sticky-atc-button, .js-sticky-atc-button-mobile"),buttonLabels=root.querySelectorAll(".js-sticky-atc-button-label, .js-sticky-atc-button-label-mobile"),changeLink=root.querySelector(".js-sticky-atc-change"),sizeGuideBtn=root.querySelector(".js-sticky-atc-size-guide"),titleEls=root.querySelectorAll(".js-sticky-atc-title"),colourEls=root.querySelectorAll(".js-sticky-atc-colour"),imageEls=root.querySelectorAll(".js-sticky-atc-image"),SIZE_CONVERSIONS={XS:{label:"Extra Small",GBP:"6-8",OTHER:"2-4"},S:{label:"Small",GBP:"8-10",OTHER:"4-6"},M:{label:"Medium",GBP:"10-12",OTHER:"6-8"},L:{label:"Large",GBP:"12-14",OTHER:"8-10"},XL:{label:"Extra Large",GBP:"14-16",OTHER:"10-12"},"1X":{label:"Extra Large",GBP:"14-16",OTHER:"10-12"},"2X":{label:"2X Large",GBP:"16-18",OTHER:"12-14"},"3X":{label:"3X Large",GBP:"18-20",OTHER:"16-18"},"4X":{label:"4X Large",GBP:"20-22",OTHER:"18-20"}},SIZE_OPTION_CHECK_ICON='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M13.3326 4L5.99999 11.3328L2.66699 7.99971" stroke="#FEFFED" stroke-width="2" stroke-linecap="round"/></svg>';function escapeHtml(str){return str==null?"":String(str).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function getMoneyFormat(){return window.theme&&window.theme.moneyFormat||window.Shopify&&Shopify.money_format||"{{amount}}"}function formatMoney(cents){if(cents==null||isNaN(cents))return"";if(window.Shopify&&typeof Shopify.formatMoney=="function")return Shopify.formatMoney(cents,getMoneyFormat()).replace(".00","");var amount=(cents/100).toFixed(2).replace(".00",""),format=getMoneyFormat(),symbolMatch=format.match(/^[^{]*/),symbol=symbolMatch?symbolMatch[0]:"";return symbol?symbol+amount:amount}function parsePriceNumeric(radio){var numericAttr=radio.getAttribute("data-price-numeric");if(numericAttr)return parseFloat(numericAttr)||0;var priceAttr=radio.getAttribute("data-price")||"";return parseFloat(priceAttr.replace(/[^0-9.]/g,""))||0}function getSelectedRadio(){return mainForm.querySelector(".variant-radios:checked")}function closeSizePanel(){sizeWrapper&&(sizeWrapper.classList.remove("is-open"),sizeTrigger&&sizeTrigger.setAttribute("aria-expanded","false"))}function updateQtyDisplay(){qtyValueEl&&qtyInput&&(qtyValueEl.textContent=qtyInput.value||"1")}function updateAvailability(radio){var available=radio?radio.getAttribute("data-stock")!=="false":!0;
1addButtons.forEach(function(btn){btn.disabled=!available,btn.classList.remove("is-needs-selection")}),buttonLabels.forEach(function(label){label.textContent=available?"Add to Basket":"Sold Out"})}function updatePrice(){var multiBuyPriceEl=mainForm.querySelector(".submit-button.button-2 .multi-buy-price"),multiBuyEl=document.querySelector("multi-buy"),multiBuyActive=multiBuyEl&&!multiBuyEl.classList.contains("is-hidden");if(multiBuyActive&&multiBuyPriceEl){var text=multiBuyPriceEl.textContent.trim();priceValueEls.forEach(function(el){el.textContent=text}),priceCompareEls.forEach(function(el){el.style.display="none"});return}var radio=getSelectedRadio(),qty=qtyInput&&parseInt(qtyInput.value,10)||1;if(radio){var cents=Math.round(parsePriceNumeric(radio)*qty*100);priceValueEls.forEach(function(el){el.textContent=formatMoney(cents)})}else if(multiBuyPriceEl){var fallbackText=multiBuyPriceEl.textContent.trim();priceValueEls.forEach(function(el){el.textContent=fallbackText})}priceCompareEls.forEach(function(el){el.style.display="none"})}function bindSizeOptionClicks(){sizeOptionsContainer&&sizeOptionsContainer.querySelectorAll(".js-sticky-atc-size-option").forEach(function(opt){opt.addEventListener("click",function(){if(!opt.disabled){var variantId=opt.getAttribute("data-variant-id"),radio=mainForm.querySelector('.variant-radios[value="'+variantId+'"]');radio&&radio.click()}})})}function rebuildSizeOptions(){if(sizeOptionsContainer){var shopCurrency=variantRadioWrapper?variantRadioWrapper.getAttribute("data-shop-currency"):"",radios=mainForm.querySelectorAll(".variant-radios"),html="";radios.forEach(function(radio){var id=radio.value,title=radio.getAttribute("data-title")||"",available=radio.getAttribute("data-stock")!=="false",conversion=SIZE_CONVERSIONS[title],descriptionText=conversion?conversion.label+" ("+(shopCurrency==="GBP"?"UK "+conversion.GBP:conversion.OTHER)+")":"";html+='<button type="button" class="sticky-atc__size-option js-sticky-atc-size-option'+(radio.checked?" is-selected":"")+(available?"":" is-disabled")+'" data-variant-id="'+escapeHtml(id)+'"'+(available?"":" disabled")+'><span class="sticky-atc__size-option-text"><span class="sticky-atc__size-option-code">'+escapeHtml(title)+"</span>"+(descriptionText?'<span class="sticky-atc__size-option-desc">'+escapeHtml(descriptionText)+"</span>":"")+'</span><span class="sticky-atc__size-option-check">'+(radio.checked?SIZE_OPTION_CHECK_ICON:"")+"</span></button>"}),sizeOptionsContainer.innerHTML=html,bindSizeOptionClicks()}}function updateFromRadio(radio){if(sizeOptionsContainer&&sizeOptionsContainer.querySelectorAll(".js-sticky-atc-size-option").forEach(function(opt){var isSelected=radio?opt.getAttribute("data-variant-id")===radio.value:!1;opt.classList.toggle("is-selected",isSelected);var check=opt.querySelector(".sticky-atc__size-option-check");check&&(check.innerHTML=isSelected?SIZE_OPTION_CHECK_ICON:"")}),!!radio){var title=radio.getAttribute("data-title")||radio.value;sizeLabelEls.forEach(function(el){el.textContent=title});var shopCurrency=variantRadioWrapper?variantRadioWrapper.getAttribute("data-shop-currency"):"",conversion=SIZE_CONVERSIONS[title],mobileLabel=conversion?title+" ("+(shopCurrency==="GBP"?conversion.GBP:conversion.OTHER)+")":title;sizeLabelMobileEls.forEach(function(el){el.textContent=mobileLabel}),updateAvailability(radio),updatePrice(),updateQtyDisplay(),closeSizePanel()}}function syncProductChrome(){if(titleWrapper){var h1=titleWrapper.querySelector("h1"),subtitle=titleWrapper.querySelector(".subheading-lg");if(h1){var titleText=h1.textContent.trim();titleEls.forEach(function(el){el.textContent=titleText})}if(subtitle){var colourText=subtitle.textContent.trim();colourEls.forEach(function(el){el.textContent=colourText})}}if(galleryWrapper){var img=galleryWrapper.querySelector("img.js-desktop-image-item:not(.is-hidden)"),src=img&&img.getAttribute("src");src&&imageEls.forEach(function(el){el.setAttribute("src",src)})}}function isForceHidden(){return root.classList.contains("is-scroll-hidden")||root.classList.contains("is-drawer-open")}function refreshVisibilityNow(){if(!(!submitContainer||isForceHidden())){var rect=submitContainer.getBoundingClientRect(),inView=rect.top<window.innerHeight&&rect.bottom>0;root.classList.toggle("is-visible",!inView),root.setAttribute("aria-hidden",inView?"true":"false")}}if(submitContainer&&"IntersectionObserver"in window){var visibilityRaf=null,visibilityObserver=new IntersectionObserver(function(entries){var entry=entries[0];visibilityRaf&&cancelAnimationFrame(visibilityRaf),visibilityRaf=requestAnimationFrame(function(){isForceHidden()||(root.classList.toggle("is-visible",!entry.isIntersecting),root.setAttribute("aria-hidden",entry.isIntersecting?"true":"false"))})},{threshold:0,rootMargin:"0px 0px -24px 0px"});visibilityObserver.observe(submitContainer)}var mobileMenuContainer=document.getElementById("mobile-menu-container");function updateDrawerHiddenState(){var navOpen=!!(mobileMenuContainer&&mobileMenuContainer.classList.contains("active")),cartDrawer=document.getElementById("cart-drawer-container"),cartOpen=!!(cartDrawer&&cartDrawer.classList.contains("open"));root.classList.toggle("is-drawer-open",navOpen||cartOpen)}mobileMenuContainer&&"MutationObserver"in window&&new MutationObserver(updateDrawerHiddenState).observe(mobileMenuContainer,{attributes:!0,attributeFilter:["class"]}),window.addEventListener("side_cart_opened",updateDrawerHiddenState),window.addEventListener("side_cart_closed",updateDrawerHiddenState),mainForm.querySelectorAll(".variant-radios").forEach(function(radio){radio.addEventListener("change",function(e){updateFromRadio(e.target)})}),variantRadioWrapper&&"MutationObserver"in window&&new MutationObserver(function(){rebuildSizeOptions(),updateFromRadio(getSelectedRadio()),mainForm.querySelectorAll(".variant-radios").forEach(function(radio){radio.addEventListener("change",function(e){updateFromRadio(e.target)})})}).observe(variantRadioWrapper,{childList:!0}),titleWrapper&&"MutationObserver"in window&&new MutationObserver(syncProductChrome).observe(titleWrapper,{childList:!0,subtree:!0,characterData:!0}
1),galleryWrapper&&"MutationObserver"in window&&new MutationObserver(syncProductChrome).observe(galleryWrapper,{attributes:!0,attributeFilter:["src"],subtree:!0}),sizeTrigger&&sizeWrapper&&sizePanel&&(sizeTrigger.addEventListener("click",function(e){e.stopPropagation();var willOpen=!sizeWrapper.classList.contains("is-open");sizeWrapper.classList.toggle("is-open",willOpen),sizeTrigger.setAttribute("aria-expanded",String(willOpen))}),document.addEventListener("click",function(e){sizeWrapper.contains(e.target)||closeSizePanel()}),document.addEventListener("keydown",function(e){e.key==="Escape"&&closeSizePanel()})),qtyMinusBtn&&minusQty&&qtyMinusBtn.addEventListener("click",function(){minusQty.click()}),qtyPlusBtn&&plusQty&&qtyPlusBtn.addEventListener("click",function(){plusQty.click()}),window.addEventListener("quantity-selector-changed",function(){updateQtyDisplay(),updatePrice()}),window.addEventListener("cart_changed",function(){setTimeout(updatePrice,50)});function scrollToSizeSelector(){sizeSelectorSection&&(root.classList.add("is-scroll-hidden"),sizeSelectorSection.scrollIntoView({behavior:"smooth",block:"center"}),setTimeout(function(){root.classList.remove("is-scroll-hidden"),refreshVisibilityNow()},700))}changeLink&&changeLink.addEventListener("click",scrollToSizeSelector);var KIWI_TRIGGER_SELECTOR=".ks-chart-modal-link, .ks-calculator-modal-link, ._ks_text";sizeGuideBtn&&sizeGuideBtn.addEventListener("click",function(e){e.preventDefault(),closeSizePanel();var trigger=mainForm.querySelector(KIWI_TRIGGER_SELECTOR);if(trigger){trigger.click();return}var fallbackHref=sizeGuideBtn.getAttribute("data-fallback-href");fallbackHref&&(window.location.href=fallbackHref)}),addButtons.forEach(function(btn){btn.addEventListener("click",function(){if(btn.classList.contains("is-needs-selection")){scrollToSizeSelector();return}if(!(btn.disabled||!window.qf_cart||typeof window.qf_cart.addToCart!="function")){var id=productIdField?productIdField.value:null,quantity=qtyInput?qtyInput.value:1;!id||!quantity||(btn.classList.add("is-loading"),setTimeout(function(){btn.classList.remove("is-loading")},2e3),window.qf_cart.addToCart(id,quantity))}})}),rebuildSizeOptions(),updateFromRadio(getSelectedRadio()),updateQtyDisplay(),updatePrice(),window.StickyATC={refresh:function(){rebuildSizeOptions(),updateFromRadio(getSelectedRadio()),updateQtyDisplay(),updatePrice(),syncProductChrome()}}})(); 2//# sourceMappingURL=/cdn/shop/t/534/assets/sticky-add-to-cart.js.map?v=10228207434839286761790063566
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.