1class CartDrawerProductForm extends HTMLElement{constructor(){super()}connectedCallback(){this.form=this.querySelector("form"),this.submitBtn=this.querySelector('button[type="submit"]'),this.originalBtnInnerHTML=this.submitBtn.innerHTML,this.cartDrawer=document.querySelector("cart-drawer"),this.cartCountBubble=document.querySelector("#cart-icon-bubble"),this.form.addEventListener("submit",this.submitHandler.bind(this))}disconnectedCallback(){this.form.removeEventListener("submit",this.submitHandler,!0)}async submitHandler(event){event.preventDefault(),this.setLoadingState(!0);const formData=new FormData(event.target),data=Object.fromEntries(formData),appliedFreeShipping=readCookie("autoapply_freshipping");appliedFreeShipping&&appliedFreeShipping.trim()!==""&&(data.properties||(data.properties={}),data.properties._free_shipping_applied=!0);try{(await fetch(event.target.action,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(data)})).ok&&(window.GA4EventTracker?.trackCartUpsellAdd&&window.GA4EventTracker.trackCartUpsellAdd({source:"cart_drawer_upsell",variant_id:data.id,quantity:data.quantity}),this.openAndPopulateCart())}catch(error){console.error(`\u274C \u{1F449}\u{1F3FB} CartDrawerProductForm | submitHandler | ${error}`)}finally{this.setLoadingState(!1)}}setLoadingState(loading){this.submitBtn&&(this.submitBtn.innerHTML=loading?"Processing...":this.originalBtnInnerHTML,this.submitBtn.disabled=loading)}async openAndPopulateCart(){const responseText=await(await fetch("/cart")).text(),newCartMar
1kup=new DOMParser().parseFromString(responseText,"text/html"),newCartIconBubbleMarkup=newCartMarkup.querySelector("#cart-icon-bubble");this.cartCountBubble.innerHTML=newCartIconBubbleMarkup.innerHTML,this.cartDrawer.classList.remove("is-empty");const newCartDrawerMarkup=newCartMarkup.querySelector("#CartDrawer #CartDrawer-CartItems");this.cartDrawer.querySelector("#CartDrawer #CartDrawer-CartItems").replaceWith(newCartDrawerMarkup);const newCartDrawerFooterMarkup=newCartMarkup.querySelector("#CartDrawer .drawer__footer");this.cartDrawer.querySelector("#CartDrawer .drawer__footer").replaceWith(newCartDrawerFooterMarkup),this.cartDrawer.open(),this.cartDrawer.querySelector("cart-drawer-items").scrollTo({top:0,left:0,behavior:"smooth"}),document.querySelector("cart-drawer").hideInstallmentsCTA()}}customElements.define("cart-drawer-product-form",CartDrawerProductForm); 2//# sourceMappingURL=/cdn/shop/t/397/assets/cart-drawer-product-form.js.map?v=173871953421132136371768235123
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.