1class ProductForm extends HTMLElement{constructor(){super(),this.form=this.querySelector("form"),this.form.addEventListener("submit",this.onSubmitHandler.bind(this)),this.cartNotification=document.querySelector("cart-notification"),this.cartItems=document.querySelector("cart-items"),this.cartFooter=document.getElementById("cart-footer"),this.siteHeader=document.querySelector(".section--site-header"),this.cartDrawer=document.getElementById("cart-drawer"),this.cartDrawerOpener=document.getElementById("cart-drawer-opener"),this.hideErrors=this.dataset.hideErrors==="true"}onSubmitHandler(event){event.preventDefault();const submitButton=this.querySelector('[type="submit"]');if(submitButton.classList.contains("loading"))return;this.handleErrorMessage(),submitButton.setAttribute("aria-disabled",!0),submitButton.classList.add("loading");const config=fetchConfig("javascript");config.headers["X-Requested-With"]="XMLHttpRequest",delete config.headers["Content-Type"];const formData=new FormData(this.form);themeSettings.template_name==="cart"?(formData.append("sections",this.cartItems.getSectionsToRender().map(section=>section.id)),formData.append("sections_url",window.location.pathname),config.body=formData):themeSettings.cart_type=="page"?(formData.append("sections",this.cartNotification.getSectionsToRender().map(section=>section.id)),formData.append("sections_url",window.location.pathname),config.body=formData):(formData.append("sections",this.cartDrawer.getSectionsToRender().map(section=>section.id)),formData.append("sections_url",window.location.pathname),config.body=formData),fetch(`${routes.cart_add_url}`,config).then(response=>response.json()).then(response=>{response.status&&(publish(PUB_SUB_EVENTS.cartError,{source:"product-form",productVariantId:formData.get("id"),errors:response.errors||response.description,message:response.message}),this.handleErrorMessage(response.description),this.error=!0),document.querySelectorAll("simple-modal-dialog").forEach(dialog=>{dialog.hide()}),this.error||(themeSettings.template_name==="cart"?(this.cartItems.querySelector("#cart-items-loader").classList.add("display--hidden"),this.cartItems.getSectionsToRender().forEach((section=>{document.getElementById(section.id).innerHTML=this.getSectionInnerHTML(response.sections[section.id],section.selector)})),this.cartItems.hideEmptyCart()):themeSettings.cart_type==="page"?(this.cartNotification.setActiveElement(document.activeElement),this.cartNotification.renderContents(response),this.cartNotification.open()):(this.cartItems.querySelector("#cart-items-loader").classList.remove("display--hidden"),this.cartDrawerOpener.openDrawer("cart-drawer"),this.cartDrawer.setActiveElement(document.activeElement),this.cartItems.querySelector("#cart-items-loader").classList.add("display--hidden"),this.cartDrawer.getSectionsToRender().forEach((section=>{document.getElementById(section.id).innerHTML=this.getSectionInnerHTML(response.sections[section.id],section.selector)})),this.cartItems.hideEmptyCart(),trapFocus(this.cartDrawer)),publish(PUB_SUB_EVENTS.cartUpdate,{source:"product-form",productVariantId:formData.get("id")})),this.error=!1}).catch(e=>{console.error(e),this.cartItems&&this.cartItems.querySelector("#cart-items-loader").classList.remove("display--hidden")}).finally(()=>{submitButton.classList.remove("loading"),submitButton.removeAttribute("aria-disabled")})}handleErrorMessage(errorMessage=!1){this.hideErrors||(this.errorMessageWrapper=this.errorMessageWrapper||this.querySelector("[data-error-message-wrapper]"),this.errorMessage=this.errorMessage||this.errorMessageWrapper.querySelector("[data-error-message]"),this.errorMessageWrapper.toggleAttribute("hidden",!errorMessage),errorMessage&&(this.errorMessage.textContent=errorMessage))}getSectionInnerHTML(html,selector=".shopify-section"){return new DOMParser().parseFromString(html,"text/html").querySelector(selector).innerHTML}}customElements.define("product-form",ProductForm); 2//# sourceMappingURL=/cdn/shop/t/55/assets/product-form.js.map?v=55522482994348598491741288220
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.