1import{f as v}from"./_fetch-config.ExtzPtay.js?v=27617e08fa";import{p}from"./_pubsub._CAGtZQ9.js?v=421f3764a6";import{P as f}from"./_constants.BwC9qmjn.js?v=4652712993";import{t as _}from"./_analytics.bAII3-xm.js?v=101cd402ba";customElements.get("product-form")||customElements.define("product-form",class extends HTMLElement{constructor(){super(),this.form=this.querySelector("form"),this.variantIdInput.disabled=!1,this.form.addEventListener("submit",this.onSubmitHandler.bind(this)),this.cart=document.querySelector("cart-notification")||document.querySelector("cart-drawer"),this.submitButton=this.querySelector('[type="submit"]'),this.submitButtonText=this.submitButton.querySelector("span"),document.querySelector("cart-drawer")&&this.submitButton.setAttribute("aria-haspopup","dialog"),this.hideErrors=this.dataset.hideErrors==="true"}onSubmitHandler(e){if(e.preventDefault(),this.submitButton.getAttribute("aria-disabled")==="true")return;this.handleErrorMessage(),this.submitButton.setAttribute("aria-disabled",!0),this.submitButton.classList.add("loading"),this.querySelector(".loading__spinner").classList.remove("hidden");const i=v("javascript");i.headers["X-Requested-With"]="XMLHttpRequest",delete i.headers["Content-Type"];const s=new FormData(this.form);this.cart&&(s.append("sections",this.cart.getSectionsToRender().map(r=>r.id)),s.append("sections_url",window.location.pathname),this.cart.setActiveElement(document.activeElement)),i.body=s,fetch(`${routes.cart_add_url}`,i).then(r=>r.json()).then(r=>{var n,u,d;if(r.status){p(f.cartError,{source:"product-form",productVariantId:s.get("id"),errors:r.errors||r.description,message:r.message}),this.handleErrorMessage(r.description);const o=this.submitButton.querySelector(".sold-out-message");if(!o)return;this.submitButton.setAttribute("disabled",!0),this.submitButtonText.classList.add("hidden"),o.classList.remove("hidden"),this.error=!0;return}else if(!this.cart){window.location=window.routes.cart_url;return}this.error||p(f.cartUpdate,{source:"product-form",productVariantId:s.get("id"),cartData:r});try{const o=this.querySelector("script[data-product-analytics]");if(!o)throw new Error("No [data-product-analytics] JSON block found");const a=JSON.parse(o.textContent),b=parseInt(s.get("id"),10),l=parseInt(((n=this.querySelector('[name="quantity"]'))==null?void 0:n.value)||"1",10),t=this.closest(".product__info-wrapper"),h=(t==null?void 0:t.querySelector(".price-item--sale.price-item--last"))||(t==null?void 0:t.querySelector(".price-item--regular")),m=h?parseFloat(h.textContent.replace(/[^\d.]/g,"")):a.price.amount,y=((u=t==null?void 0:t.querySelector(".product__sku__id"))==null?void 0:u.textContent.replace("SKU: ","").trim())||a.sku,S=((d=t==null?void 0:t.querySelector('input[type="radio"][name^="Size-"]:checked'))==null?void 0:d.value)||a.product.size,g=!!(t!=null&&t.querySelector(".price--on-sale")),q={...a,id:b,sku:y,quantity:l,price:{amount:m,currencyCode:a.price.currencyCode},finalLinePrice:{amount:m*l,currencyCode:a.price.currencyCode},product:{...a.product,size:S,sale:g}};_("product_added_to_cart",q)}catch(o){console.warn("[Analytics] Failed to track quick add to cart:",o)}this.error=!1;const c=this.closest("quick-add-modal");c?(document.body.addEventListener("modalClosed",()=>{setTimeout(()=>{this.cart.renderContents(r)})},{once:!0}),c.hide(!0)):this.cart.renderContents(r)}).catch(r=>{console.error(r)}).finally(()=>{this.submitButton.classList.remove("loading"),this.cart&&this.cart.classList.contains("is-empty")&&this.cart.classList.remove("is-empty"),this.error||this.submitButton.removeAttribute("aria-disabled"),this.querySelector(".loading__spinner").classList.add("hidden"),this.ssmAtcTracking()})}ssmAtcTracking(){fetch("/cart.js").then(e=>e.json()).then(e=>{ShoeSizeShoppingCart.purchases=[],e.items.forEach(function(i){var s={shoeId:i.variant_id,size:i.variant_title,scale:"uk",quantity:i.quantity,price:(i.price/100).toFixed(2),currency:e.currency};ShoeSizeShoppingCart.purchases.push(s)}),ShoeSizeMe_cart.trackCart()}).catch(e=>{console.error(e)})}handleErrorMessage(e=!1){this.hideErrors||(this.errorMessageWrapper=this.errorMessageWrapper||this.querySelector(".product-form__error-message-wrapper"),this.errorMessageWrapper&&(this.errorMessage=this.errorMessage||this.errorMessageWrapper.querySelector(".product-form__error-message"),this.errorMessageWrapper.toggleAttribute("hidden",!e),e&&(this.errorMessage.textContent=e)))}toggleSubmitButton(e=!0,i){e?(this.submitButton.setAttribute("disabled","disabled"),i&&(this.submitButtonText.textContent=i)):(this.submitButton.removeAttribute("disabled"),this.submitButtonText.textContent=window.variantStrings.addToCart)}get variantIdInput(){return this.form.querySelector("[name=id]")}});
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.