PageSourceSearch

https://ugearsmodels.com/cdn/shop/t/12/assets/product-form.js?v=29694262535463198441787233664

js ugearsmodels.com collected 2026-10-03 22:11:06 UTC 4,477 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-drawer")||document.querySelector("cart-notification")||document.querySelector("cart-items"),this.useSuccessMessage=this.cart&&this.cart.tagName.toLowerCase()!=="cart-notification",this.submitButton=this.querySelector('[type="submit"]'),this.submitButtonText=this.submitButton.querySelector("span"),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 request=this.prepareRequestConfig(),formData=request.formData;fetch(`${routes.cart_add_url}`,request.config).then(response=>response.json()).then(response=>{if(response.status&&response.status!=422){document.dispatchEvent(new CustomEvent("afterAddCartError",{detail:{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.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.error||(response.status!=422?(this.error=!1,this.useSuccessMessage&&pushSuccessMessage(window.cartStrings.success),this.completeAddToCartAction(response,formData.get("id"))):(this.handleErrorMessage(response.description),this.handle422Error(formData.get("id"))))}).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")})}prepareRequestConfig(setZeroQuantity=!1){const config=fetchConfig("javascript");config.headers["X-Requested-With"]="XMLHttpRequest",delete config.headers["Content-Type"];const formData=new FormData(this.form);return 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,setZeroQuantity&&formData.set("quantity",0),{config,formData}}handle422Error(variantId){const request=this.prepareRequestConfig(!0);fetch(`${routes.cart_add_url}`,request.config).then(response=>response.json()).then(response=>{this.completeAddToCartAction(response,variantId)})}completeAddToCartAction(response,variantId){const quickAddDrawer=this.closest("quick-add-drawer");quickAddDrawer?(document.body.addEventListener("drawerClosed",()=>{setTimeout(()=>{this.cart.renderContents(response)})},{once:!0}),quickAddDrawer.close()):this.cart.renderContents(response),document.dispatchEvent(new CustomEvent("afterCartChanged",{detail:{productVariantId:variantId,source:"product-form",cartData:response}}))}toggleSubmitButton(disable=!0,text){disable?(this.submitButton.setAttribute("disabled","disabled"),text&&this.submitButtonText&&(this.submitButtonText.textContent=text)):(this.submitButton.removeAttribute("disabled"),this.submitButtonText&&(this.submitButtonText.textContent=window.variantStrings.addToCart))}handleErrorMessage(errorMessage=!1){this.hideErrors||(this.errorMessageWrapper=this.errorMessageWrapper||this.querySelector(".product-form__error-message-wrapper"),errorMessage&&!this.errorMessageWrapper&&pushErrorMessage(errorMessage),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/12/assets/product-form.js.map?v=29694262535463198441787233664

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.