1customElements.get("product-form")||customElements.define("product-form",class extends HTMLElement{constructor(){super(),this.form=this.querySelector("form"),this.form.querySelector("[name=id]").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"]'),document.querySelector("cart-drawer")&&this.submitButton.setAttribute("aria-haspopup","dialog"),this.hideErrors=this.dataset.hideErrors==="true"}onSubmitHandler(evt){if(evt.preventDefault(),this.submitButton.getAttribute("aria-disabled")==="true")return;let submitButton=this.submitButton,overlaySpinner=this.querySelector(".loading-overlay__spinner");this.handleErrorMessage(),submitButton.setAttribute("aria-disabled",!0),submitButton.classList.add("loading"),overlaySpinner.classList.remove("hidden");const config=fetchConfig("javascript");config.headers["X-Requested-With"]="XMLHttpRequest",delete config.headers["Content-Type"];const formData=new FormData(this.form),mainProductId=formData.get("id"),addedProductId=this.querySelector('input[name="product-id"]').value;if(!mainProductId){console.error("\u{1F6A8} Missing product ID.");return}this.cart&&(formData.append("sections",this.cart.getSectionsToRender().map(section=>section.id)),formData.append("sections_url",window.location.pathname),this.cart.setActiveElement(document.activeElement)),fetch("/cart/clear.js",{method:"POST"}).then(response=>{if(!response.ok)throw new Error("Failed to clear cart.");return response.json()}).then(()=>(console.log("\u2705 Cart cleared."),config.body=formData,fetch(`${routes.cart_add_url}`,config))).then(response=>response.json()).then(response=>{if(response.status)throw new Error("Failed to add main product:",response.status);console.log("\u2705 Main product added.")}).then(()=>{window.location.href="/checkout"}).catch(error=>{console.error("\u274C Error:",error)}).finally(()=>{submitButton.classList.remove("loading"),submitButton.removeAttribute("aria-disabled"),overlaySpinner.classList.add("hidden")})}handleErrorMessage(errorMessage=!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",!errorMessage),errorMessage&&(this.errorMessage.textContent=errorMessage)))}}); 2//# sourceMappingURL=/cdn/shop/t/18/assets/product-form.js.map?v=98053150046182302731789980459
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.