PageSourceSearch

https://myfireroad.com/cdn/shop/t/106/assets/product-form.js?v=54690467501378399321763472921

js myfireroad.com collected 2026-10-07 06:47:13 UTC 5,663 bytes, 2 lines download raw bytes

1customElements.get("product-form")||customElements.define("product-form",class extends HTMLElement{constructor(){super(),this.product=null,this.form=this.querySelector("form"),this.variantIdInput.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.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"||!this.validateCartProducts())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(async 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}this.product=response,this.error||publish(PUB_SUB_EVENTS.cartUpdate,{source:"product-form",productVariantId:formData.get("id"),cartData:response}),this.error=!1;const cartResponse=await this.validateDiscount(),quickAddModal=this.closest("quick-add-modal");if(quickAddModal)document.body.addEventListener("modalClosed",()=>{setTimeout(()=>{this.cart.renderContents(response)})},{once:!0}),quickAddModal.hide(!0);else{let openCart=!0;!cartResponse.includesPantry&&cartResponse.item_count!=6&&(openCart=!1),this.cart.renderContents(response,openCart)}}).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__spinner").classList.add("hidden");const product=this.product;this.dispatchEvent(new CustomEvent("product:added",{bubbles:!0,detail:{product}}))})}validateDiscount(){return new Promise(resolve=>{const event=new CustomEvent("cart:validate:discount",{detail:{respond:resolve}});document.dispatchEvent(event)})}validateCartProducts(){const collections=this.getProductCollections(),cartPreventModal=document.querySelector('[data-modal="prevent-cart"]');if(window.cartFor=="")return!0;if(window.cartFor=="pantry"){if(collections.indexOf("pantry")==-1)return cartPreventModal.querySelector("[data-cart-message]").innerHTML="This cart can process Pantry items only. If you want to order FireRoad meals, too, please empty your cart and start over from the main FireRoad Meals page. These same items are also offered and will ship with the rest of your meals. <br /><br /><strong>Refresh your browser after emptying your cart.</strong>",cartPreventModal.removeAttribute("hidden"),document.body.classList.add("modal-open"),!1}else if(window.cartFor=="gift_card"){if(collections.indexOf("giftcard")==-1)return cartPreventModal.querySelector("[data-cart-message]").innerHTML="Gift cards must be purchased 
1separately. Please empty your cart then add the desired gift card and check-out.",cartPreventModal.removeAttribute("hidden"),document.body.classList.add("modal-open"),!1}else if(collections.indexOf("pantry")>-1||collections.indexOf("giftcard")>-1)return cartPreventModal.querySelector("[data-cart-message]").innerHTML="This cart can process FireRoad Meal items only. If you want to add a Pantry item, please select the same item from the FireRoad Meals collection on this page and it will ship with the rest of your meals. <br /><br /><strong>Refresh your browser after emptying your cart.</strong>",cartPreventModal.removeAttribute("hidden"),document.body.classList.add("modal-open"),!1;return!0}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){disable?(this.submitButton.setAttribute("disabled","disabled"),text&&(this.submitButtonText.textContent=text)):(this.submitButton.removeAttribute("disabled"),this.submitButtonText.textContent=window.variantStrings.addToCart)}getProductCollections(){return JSON.parse(this.querySelector("#product-collections").innerHTML)}get variantIdInput(){return this.form.querySelector("[name=id]")}});
2//# sourceMappingURL=/cdn/shop/t/106/assets/product-form.js.map?v=54690467501378399321763472921

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.