PageSourceSearch

https://www.cavederelax.com/cdn/shop/t/3/assets/product-form.js?v=85469513497543983451734067012

js cavederelax.com collected 2026-09-30 21:31:22 UTC 5,307 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.hideErrors=this.dataset.hideErrors==="true"}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");const submitButtonFloatDesktop=document.getElementById("product-buy-button--floating-desktop");submitButtonFloatDesktop&&(submitButtonFloatDesktop.setAttribute("aria-disabled",!0),submitButtonFloatDesktop.classList.add("loading"),submitButtonFloatDesktop.querySelector(".loading-overlay__spinner").classList.remove("hidden"));const config=fetchConfig("javascript");config.headers["X-Requested-With"]="XMLHttpRequest",delete config.headers["Content-Type"];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){alert("\u5546\u54C1\u306E\u5728\u5EAB\u304C\u3042\u308A\u307E\u305B\u3093\u3067\u3057\u305F"),publish(PUB_SUB_EVENTS.cartError,{source:"product-form",productVariantId:formData.get("id"),errors:response.description,message:response.message}),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"),submitButtonFloatDesktop&&(submitButtonFloatDesktop.setAttribute("aria-disabled",!0),submitButtonFloatDesktop.querySelector("span").classList.add("hidden")),soldOutMessage.classList.remove("hidden"),this.error=!0;return}else if(!this.cart){const productInfo=response,inputProductObj={};inputProductObj.name=productInfo.product_title,inputProductObj.price=productInfo.price/100,inputProductObj.quantity=productInfo.quantity,productInfo.sku&&(inputProductObj.id=productInfo.sku),productInfo.vendor&&(inputProductObj.brand=productInfo.vendor),productInfo.product_type&&(inputProductObj.category=productInfo.product_type),productInfo.variant_title&&(inputProductObj.variant=productInfo.variant_title);const addProductsItem={add:{products:[inputProductObj]}};if(dataLayer.push({event:"addToCart",ecommerce:addProductsItem}),productInfo.sku){const addedProductInfoForDatalayer={event:"additional_cart",added_item_id:`${productInfo.sku}`};console.log(addedProductInfoForDatalayer),dataLayer.push(addedProductInfoForDatalayer)}const cartBubble=document.querySelector("#cart-icon-bubble .cart-count-bubble");if(cartBubble){cartBubble.classList.remove("hidden");let cartQuantity=parseInt(cartBubble.querySelector("#cart-count-bubble--value").textContent);cartBubble.querySelector("#cart-count-bubble--value").textContent=cartQuantity+1;const cartBubbleValueOnMobile=document.querySelector("#cart-count-bubble--value-on-mobile");cartBubbleValueOnMobile&&(cartBubbleValueOnMobile.closest(".cart-count-bubble").classList.remove("hidden"),cartBubbleValueOnMobile.textContent=cartQuantity+1)}window.renderAddCartAnnounceDialog&&window.renderAddCartAnnounceDialog(productInfo);return}this.error||publish(PUB_SUB_EVENTS.cartUpdate,{source:"product-form",productVariantId:formData.get("id")}),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)):this.cart.renderContents(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"),submitButtonFloatDesktop&&(submitButtonFloatDesktop.classList.remove("loading"),submitButtonFloatDesktop.removeAttribute("aria-disabled"),submitButtonFloatDesktop.querySelector(".loading-overlay__spinner").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/3/assets/product-form.js.map?v=85469513497543983451734067012

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.