PageSourceSearch

https://santic.com/cdn/shop/t/101/assets/product-form.js?v=133427686273889504801786358055

js santic.com collected 2026-10-01 12:09:14 UTC 6,666 bytes, 2 lines download raw bytes

1customElements.get("product-form")||customElements.define("product-form",class extends HTMLElement{constructor(){super(),this.originalButtonText="",this.persistentTextActive=!1}connectedCallback(){setTimeout(()=>{if(this.form=this.querySelector("form"),!this.form)return;const variantInput=this.variantIdInput;if(variantInput&&(variantInput.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"]'),!!this.submitButton){if(this.submitButtonText=this.submitButton.querySelector(".button-text"),this.submitButtonText&&(this.originalButtonText=this.submitButtonText.textContent,this.submitButton.dataset.originalText=this.originalButtonText),!(this.submitButton.dataset.textOverride==="true"&&this.submitButtonText)){if(this.submitButton.classList.contains("has-persistent-text")&&this.submitButtonText){this.persistentTextActive=!0;const persistentText=this.submitButton.dataset.persistentText;if(persistentText)this.submitButtonText.textContent=persistentText,localStorage.setItem("addToCartButtonText",persistentText);else{const storedText=localStorage.getItem("addToCartButtonText");storedText&&(this.submitButtonText.textContent=storedText,this.submitButton.dataset.persistentText=storedText)}}}(this.persistentTextActive||this.submitButton.dataset.textOverride==="true")&&this.submitButtonText&&this.setupButtonTextObserver(),document.querySelector("cart-drawer")&&this.submitButton.setAttribute("aria-haspopup","dialog"),this.hideErrors=this.dataset.hideErrors==="true",document.addEventListener("variant:change",this.handleVariantChange.bind(this))}},100)}setupButtonTextObserver(){if(!this.submitButtonText)return;const config={characterData:!0,childList:!0,subtree:!0};if(this.persistentTextActive){const persistentText=this.submitButton.dataset.persistentText||localStorage.getItem("addToCartButtonText");if(!persistentText)return;this.buttonTextObserver=new MutationObserver(mutations=>{this.submitButtonText.textContent!==persistentText&&(this.submitButtonText.textContent=persistentText)}),this.buttonTextObserver.observe(this.submitButtonText,config)}}handleVariantChange(event){this.submitButtonText&&setTimeout(()=>{if(this.persistentTextActive){const persistentText=this.submitButton.dataset.persistentText||localStorage.getItem("addToCartButtonText");persistentText&&(this.submitButtonText.textContent=persistentText)}},50)}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__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){publish(PUB_SUB_EVENTS.cartError,{source:"product-form",productVariantId:formData.get("id"),errors:response.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.submitButtonText.classList.add("hidden"),soldOutMessage.classList.remove("hidden"),this.error=!0;return}else if(!this.cart){window.location=window.routes.cart_url;return}const startMarker=CartPerformance.createStartingMarker("add:wait-for-subscribers");this.error||publish(PUB_SUB_EVENTS.cartUpdate,{source:"product-form",productVariantId:formData.get("id"),cartData:response}).then(()=>{CartPerformance.measureFromMarker("add:wait-for-subscribers",startMarker)}),this.error=!1;const quickAddModal=this.closest("quick-add-modal");quickAddModal?(document.body.addEventListener("modalClosed",()=>{setTimeout(()=>{CartPerformance.measure("add:paint-updated-sections",()=>{this.cart.renderContents(response)})})},{once:!0}),quickAddModal.hide(!0)):CartPerformance.measure("add:paint-updated-sections",()=>{this.cart.renderContents(response)})}).catch(e=>{console.error(e)}).finally(()=>
1{if(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__spinner").classList.add("hidden"),!(!this.error&&this.submitButton.dataset.textOverride==="true")){if(!this.error&&this.persistentTextActive){const persistentText=this.submitButton.dataset.persistentText||localStorage.getItem("addToCartButtonText");persistentText&&this.submitButtonText&&(this.submitButtonText.textContent=persistentText)}}CartPerformance.measureFromEvent("add:user-action",evt)})}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)))}toggleSubmitButton(disable=!0,text){if(disable)this.submitButton.setAttribute("disabled","disabled"),text&&(this.submitButtonText.textContent=text);else{if(this.submitButton.removeAttribute("disabled"),this.submitButton.dataset.textOverride!=="true"){if(this.persistentTextActive){const persistentText=this.submitButton.dataset.persistentText||localStorage.getItem("addToCartButtonText");if(persistentText){this.submitButtonText.textContent=persistentText;return}}}this.originalButtonText?this.submitButtonText.textContent=this.originalButtonText:this.submitButton.dataset.originalText?this.submitButtonText.textContent=this.submitButton.dataset.originalText:this.submitButtonText.textContent=window.variantStrings.addToCart}}disconnectedCallback(){this.buttonTextObserver&&this.buttonTextObserver.disconnect(),document.removeEventListener("variant:change",this.handleVariantChange)}get variantIdInput(){return this.form.querySelector("[name=id]")}});
2//# sourceMappingURL=/cdn/shop/t/101/assets/product-form.js.map?v=133427686273889504801786358055

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.