1(()=>{if(customElements.get("product-form"))return;class ProductForm extends HTMLElement{constructor(){super(),this.form=this.querySelector("form"),this.submitButton=this.form.querySelector('[name="add"]'),this.cartDrawer=document.querySelector("cart-drawer"),this.productBar=document.querySelector(`#ProductBar-${this.dataset.sectionId}`),this.form.addEventListener("submit",this.onSubmitHandler.bind(this))}async onSubmitHandler(event){event?.preventDefault();const purchaseOptions=document.querySelector("purchase-options");if(purchaseOptions&&!purchaseOptions.isOneTimePurchase()&&!this.hasAttribute("data-has-selling-plan"))return purchaseOptions.showError(),!1;this.submitButton.classList.add("disabled");const config=fetchConfig("javascript");config.headers["X-Requested-With"]="XMLHttpRequest",delete config.headers["Content-Type"];const formData=new FormData(this.form);this.hasAttribute("data-has-pre-order")&&formData.append("properties[Pre-order]","\u2713"),formData.append("sections",this.cartDrawer.getSectionsToRender().map(s=>s.section)),formData.append("sections_url",window.location.pathname),config.body=formData;try{const data=await(await fetch(`${routes.cart_add_url}`,config)).json();return data.status?(this.handleErrorMessage(data.description),!1):(this.cartDrawer.renderContents(data),!0)}catch(e){return console.error(e),!1}finally{this.submitButton.classList.remove("disabled")}}handleErrorMessage(errorMessage=!1){const errorWrapper=this.querySelector("[data-error-wrapper]");if(!errorWrapper)return;let message=errorMessage;typeof errorMessage=="object"&&errorMessage!==null&&(message=Object.values(errorMessage).flat().join(", ")),errorWrapper.classList.toggle("hidden",!message),errorWrapper.textContent=message||""}toggleAddButton(disable,text){[this.submitButton,this.productBar?.querySelector('[name="add"]')].forEach(submitButton=>{disable?(submitButton?.setAttribute("disabled","disabled"),text&&submitButton&&(submitButton.textContent=text)):submitButton&&(submitButton.removeAttribute("disabled"),submitButton.textContent=this.hasAttribute("data-has-selling-plan")?window.theme.strings.addSubscriptionToCart:submitButton.textContent=this.hasAttribute("data-has-pre-order")?window.theme.strings.preOrder:window.theme.strings.addToCart)})}}customElements.define("product-form",ProductForm)})(); 2//# sourceMappingURL=/cdn/shop/t/30/assets/product-form.js.map?v=55167417852623818191771167962
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.