1if(!customElements.get("product-form")){class ProductForm extends HTMLElement{constructor(){super(),this.hasChildNodes()&&this.init()}init(){if(this.form=this.querySelector(".js-product-form"),this.form){this.form.querySelector('[name="id"]').disabled=!1,this.cartDrawer=document.querySelector("cart-drawer"),this.submitBtn=this.querySelector('[name="add"]'),this.klaviyoBtn=this.querySelector('[name="bis-button"]'),theme.settings.afterAtc!=="no-js"&&this.form.addEventListener("submit",this.handleSubmit.bind(this)),this.stockCache=null;const prefetch=()=>{setTimeout(()=>this.prefetchStock(),0)};(this.closest(".shopify-section")||document).addEventListener("on:variant:change",prefetch),this.form.addEventListener("pointerenter",prefetch),this.form.addEventListener("touchstart",prefetch,{passive:!0}),this.form.addEventListener("focusin",prefetch)}}stockKey(){if(!this.form||this.form.classList.contains("pre-order-form"))return null;const sku=this.form.querySelector('[name="sku"]'),qty=this.form.querySelector('[name="quantity"]');return!sku||!sku.value?null:`${sku.value}|${qty?qty.value:"1"}`}prefetchStock(){const key=this.stockKey();if(!key)return null;if(this.stockCache&&this.stockCache.key===key&&Date.now()-this.stockCache.at<3e4)return this.stockCache.promise;const[sku,quantity]=key.split("|"),promise=this.getServerStock(this.buildRequestObject([{sku,quantity}]));return this.stockCache={key,at:Date.now(),promise},promise}async handleSubmit(evt){if(evt.target.id==="product-signup_form"||(evt.preventDefault(),this.submitBtn.getAttribute("aria-disabled")==="true"))return;theme.settings.vibrateOnATC&&window.navigator.vibrate&&window.navigator.vibrate(100),this.errorMsg=null,this.setErrorMsgState(),this.submitBtn.setAttribute("aria-disabled","true"),this.submitBtn.classList.add("is-loading");const formData=new FormData(this.form);let sections="cart-icon-bubble";this.cartDrawer&&(sections+=`,${this.cartDrawer.closest(".shopify-section").id.replace("shopify-section-","")}`),formData.append("sections_url",window.location.pathname),formData.append("sections",sections);let preorder=this.form.classList.contains("pre-order-form");const oldCartPromise=fetch(`${theme.routes.cart}.js`);if(!preorder){let items=[];items.push({sku:formData.get("sku"),quantity:formData.get("quantity")});const key=`${items[0].sku}|${items[0].quantity}`,stockOk=this.stockCache&&this.stockCache.key===key&&Date.now()-this.stockCache.at<3e4?await this.stockCache.promise:await this.get
1ServerStock(this.buildRequestObject(items));if(this.stockCache=null,stockOk==!1){this.submitBtn.classList.remove("is-loading"),this.submitBtn.removeAttribute("aria-disabled"),this.submitBtn.hidden=!0,this.klaviyoBtn.hidden=!1,alert("There was an error adding this item to your cart. It may be out of stock.");return}}const fetchRequestOpts={method:"POST",headers:{Accept:"application/javascript","X-Requested-With":"XMLHttpRequest"},body:formData};try{const oldCartResponse=await oldCartPromise;if(!oldCartResponse.ok)throw new Error(oldCartResponse.status);const oldCartData=await oldCartResponse.json(),response=await fetch(theme.routes.cartAdd,fetchRequestOpts),data=await response.json();let error=typeof data.description=="string"?data.description:data.message;if(data.errors&&typeof data.errors=="object"&&(error=Object.entries(data.errors).map(item=>item[1].join(", "))),data.status&&this.setErrorMsgState(error),!response.ok)throw new Error(response.status);if(theme.settings.afterAtc==="page")setTimeout(()=>{window.location.href=theme.routes.cart},300);else{ProductForm.updateCartIcon(data);const quickAddDrawer=this.closest("quick-add-drawer");if(quickAddDrawer&&quickAddDrawer.addedToCart(),this.cartDrawer)this.cartDrawer.renderContents(data,!quickAddDrawer&&theme.settings.afterAtc==="drawer");else if(window.location.pathname===theme.routes.cart){const cartItems=document.querySelector("cart-items");cartItems&&(cartItems.dataset.empty==="true"?window.location.reload():cartItems.refresh())}}const newCartResponse=await fetch(`${theme.routes.cart}.js`);if(!newCartResponse.ok)throw new Error(newCartResponse.status);const newCartData=await newCartResponse.json(),itemInOldCart=oldCartData.items.filter(item=>item.variant_id===data.variant_id)[0];itemInOldCart?this.dispatchEvent(new CustomEvent("on:line-item:change",{bubbles:!0,detail:{cart:newCartData,variantId:data.variant_id,oldQuantity:itemInOldCart.quantity,newQuantity:itemInOldCart.quantity===data.quantity?itemInOldCart.quantity:data.quantity}})):this.dispatchEvent(new CustomEvent("on:cart:add",{bubbles:!0,detail:{cart:newCartData,variantId:data.variant_id}}))}catch(error){console.log(error),this.dispatchEvent(new CustomEvent("on:cart:error",{bubbles:!0,detail:{error:this.errorMsg?.textContent}})),this.cartDrawer&&this.cartDrawer.refresh(!0)}finally{this.submitBtn.classList.add("is-success"),this.submitBtn.removeAttribute("aria-disabled"),setTimeout(()=>{this.submitBtn.classList.remove("is-loading"),this.submitBtn.classList.remove("is-success")},1400)}}static updateCartIcon(response){const cartIconBubble=document.getElementById("cart-icon-bubble");cartIconBubble&&(cartIconBubble.innerHTML=response.sections["cart-icon-bubble"])}setErrorMsgState(error=!1){this.errorMsg=this.errorMsg||this.querySelector(".js-form-error"),this.errorMsg&&(this.errorMsg.hidden=!error,error&&(this.errorMsg.innerHTML="",(Array.isArray(error)?error:[error]).forEac
1h((err,index)=>{index>0&&this.errorMsg.insertAdjacentHTML("beforeend","<br>"),this.errorMsg.insertAdjacentText("beforeend",err)})))}buildRequestObject(items){const req={store:Shopify.shop.split(".myshopify")[0],items:[]};for(var i=0;i<items.length;++i){var item=items[i],qty=item.quantity;(qty==null||qty==null)&&(qty=1);var object={sku:item.sku,qty};req.items.push(object)}return req}async getServerStock(request,callback){const store=Shopify.shop.split(".myshopify")[0];let host="boomiws",bp="85d702a5-e7a2-426d-b35f-034b45730497";store==="umbra-dev"&&(host="boomiqasws",bp="6006e1b9-0ffb-4e57-ac9d-5e49642185f0");const url=`https://${host}.umbra.com/ws/simple/getCart_Inventory?store=${store}`;let proceed=!0;const fetchOptions={method:"POST",headers:{"Content-Type":"application/json",Authorization:"Basic "+btoa(`shopify@umbraltd-HV85PQ:${bp}`)},body:JSON.stringify(request)};try{if((await(await fetch(url,fetchOptions)).json()).status=="FAIL")return proceed=!1,proceed}catch{return console.log("failing the live inventory check process, but it still should proceed with add to cart !"),proceed}return proceed}}customElements.define("product-form",ProductForm)}(function(){if(window.__umbraProductFormTail)return;window.__umbraProductFormTail=!0;let inputs=document.querySelectorAll(".option-selector__btns input");if(inputs.length>1)for(let i=0;i<inputs.length;i++)inputs[i].addEventListener("click",function(){console.log("running"),inputs[i].classList.contains("is-unavailable")?(document.querySelector(".back-in-stock-button").classList.remove("js-hidden"),document.querySelector(".add-to-crt-button").classList.add("js-hidden")):(document.querySelector(".back-in-stock-button").classList.add("js-hidden"),document.querySelector(".add-to-crt-button").classList.remove("js-hidden"))});let collapsibles=document.querySelectorAll(".product-info details-disclosure");for(let i=0;i<collapsibles.length;i++)collapsibles[i].querySelector("h2").innerText=="Features"?collapsibles[i].querySelector(".disclosure__content p").remove():collapsibles[i].querySelector("h2").innerText=="Description"&&collapsibles[i].querySelectorAll(".disclosure__content li").forEach(function(element){element.remove()})})(); 2//# sourceMappingURL=/cdn/shop/t/62/assets/product-form.js.map?v=168286384954604127051790263446
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.