PageSourceSearch

https://anovaculinary.com/cdn/shop/t/309/assets/product-form.js?v=78079285521749930671695168308

js anovaculinary.com collected 2026-09-24 08:48:08 UTC 4,534 bytes, 2 lines download raw bytes

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.components=document.querySelectorAll("[name=component]"),this.bundleCheckbox=document.querySelector('.bundle-tile [type="checkbox"]'),this.addBundle=!1,this.bundleCheckbox&&(this.hardBundle=!!this.bundleCheckbox.value,this.originalProduct=this.form.querySelector("[name=id]").value,this.bundleCheckbox.checked&&(this.addBundle=!0),this.bundleCheckbox.addEventListener("change",this.onChangeHandler.bind(this)))}onSubmitHandler(evt){if(evt.preventDefault(),this.submitButton.getAttribute("aria-disabled")==="true")return;this.handleErrorMessage(),this.submitButton.setAttribute("aria-disabled",!0),this.submitButton.classList.add("loading"),this.querySelector(".loading-overlay__spinner").classList.remove("hidden");
1const loadingEvent=new CustomEvent("loadingEvent",{detail:!0});document.dispatchEvent(loadingEvent);const config=fetchConfig("javascript");config.headers["X-Requested-With"]="XMLHttpRequest",delete config.headers["Content-Type"],this.bundleCheckbox&&(this.hardBundle&&this.addBundle?this.form.querySelector("[name=id]").value=this.components[0].value:this.form.querySelector("[name=id]").value=this.originalProduct);const formData=new FormData(this.form);this.cart&&(formData.append("sections",this.cart.getSectionsToRender().map(section=>section.id)),formData.append("sections_url",window.location.pathname),this.cart.setActiveElement(document.activeElement)),config.body=formData,fetch(`${routes.cart_add_url}`,config).then(response=>response.json()).then(response=>{if(response.status){this.handleErrorMessage(response.description);const soldOutMessage=this.submitButton.querySelector(".sold-out-message");if(!soldOutMessage)return;this.submitButton.setAttribute("aria-disabled",!0),this.submitButton.querySelector("span").classList.add("hidden"),soldOutMessage.classList.remove("hidden"),this.error=!0;return}else if(!this.cart){window.location=window.routes.cart_url;return}!this.hardBundle&&this.addBundle&&this.components.length>0?this.addComponents(this.components).then(newResp=>{this.handleRender(newResp),newResp.items.map(item=>({sku:item.sku,title:item.title.split(" - ")[0].trim()})).forEach(item=>{gtag("event","add_bundle_product_to_cart",{item_sku:item.sku,item_name:item.title})})}):this.handleRender(response)}).catch(e=>{console.error(e)}).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-overlay__spinner").classList.add("hidden");const loadingEvent2=new CustomEvent("loadingEvent",{detail:!1});document.dispatchEvent(loadingEvent2)})}onChangeHandler(evt){this.addBundle=evt.target.checked}async addComponents(components){const data={items:[]};components.forEach(component=>{data.items.push({id:component.value,quantity:1})}),data.sections=this.cart.getSectionsToRender().map(section=>section.id),data.sections_url=window.location.pathname;try{return await(await fetch(`${routes.cart_add_url}`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(data)})).json()}catch(error){console.error("Error:",error)}}handleRender(response){this.error=!1;const quickAddModal=this.closest("quick-add-modal");quickAddModal?(document.body.addEventListener("modalClosed",()=>{setTimeout(()=>{this.cart.renderContents(response)})},{once:!0}),quickAddModal.hide(!0)):(response.resetRecommendations=!0,this.cart.renderContents(response))}handleErrorMessage(errorMessage=!1){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/309/assets/product-form.js.map?v=78079285521749930671695168308

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.