1class MCartDrawer extends HTMLElement{constructor(){super(),this.getSectionToRenderListener=this.getSectionToRender.bind(this),this.onCartRefreshListener=this.onCartRefresh.bind(this),this.rootUrl=window.Shopify.routes.root}get sectionName(){return"cart-drawer"}get cartDrawerInner(){return this.querySelector(".m-cart-drawer__inner")}get cartDrawerCloseIcon(){return this.querySelector(".m-cart-drawer__close")}getSectionToRender(event){event.detail.sections.push(this.sectionName)}connectedCallback(){this.setHeaderCartIconAccessibility(),this.addEventListener("click",event=>{(event.target.closest(".m-cart-drawer__inner")!==this.cartDrawerInner||event.target===this.cartDrawerCloseIcon)&&this.close()}),document.addEventListener("cart:grouped-sections",this.getSectionToRenderListener),document.addEventListener("cart:refresh",this.onCartRefreshListener)}disconnectedCallback(){document.removeEventListener("cart:grouped-sections",this.getSectionToRenderListener),document.removeEventListener("cart:refresh",this.onCartRefreshListener)}setHeaderCartIconAccessibility(){document.querySelectorAll(".m-cart-icon-bubble").forEach(cartLink=>{cartLink.setAttribute("role","button"),cartLink.setAttribute("aria-haspopup","dialog"),cartLink.addEventListener("click",event=>{MinimogSettings.enable_cart_drawer&&(event.preventDefault(),this.open(cartLink))})})}async onCartRefresh(event){const cartDrawer=document.getElementById("MinimogCartDrawer");if(cartDrawer)try{const responseText=await(await fetch(`${this.rootUrl}?section_id=cart-drawer`)).text(),newCartContent=new DOMParser().parseFromString(responseText,"text/html").getElementById("MinimogCartDrawer").innerHTML;cartDrawer.innerHTML=newCartContent,event.detail&&event.detail.open===!0&&(this.classList.contains("m-cart-drawer--active")?this.cartDrawerInner.style.setProperty("--translate-x","0"):this.open())}catch(error){console.error("Error refreshing cart:",error)}}open(triggeredBy){triggeredBy&&this.setActiveElement(triggeredBy),this.classList.add("m-cart-drawer--active"),document.documentElement.classList.add("prevent-scroll"),requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.style.setProperty("--m-bg-opacity","0.5"),this.cartDrawerInner.style.setProperty("--translate-x","0"),window.MinimogEvents.emit(MinimogTheme.pubSubEvents.openCartDrawer)})})}close(){this.style.setProperty("--m-bg-opacity","0"),this.cartDrawerInner.style.setProperty("--translate-x","100%"),setTimeout(()=>{this.classList.remove("m-cart-drawer--active"),document.documentElement.classList.remove("prevent-scroll")},300)}setActiveElement(element){this.activeElement=element}}customElements.define("m-cart-drawer",MCartDrawer);class MCartRemoveButton extends HTMLElement{constructor(){super(),this.addEventListener("click",event=>{event.preventDefault(),this.closest("m-cart-items").updateQuantity(this.dataset.index,0)})}}customElements.define("m-cart-remove-button",MCartRemoveButton);class MCartTemplate extends HTMLElement{constructor(){super(),document.addEventListener("cart:grouped-sections",this.getSectionToRender.bind(this))}get sectionName(){return"cart-template"}getSectionToRender(event){event.detail.sections.push(this.sectionName)}}customElements.define("m-cart",MCartTemplate);class MCartItems extends HTMLElement{preProcessHtmlCallbacks=[];postProcessHtmlCallbacks=[];constructor(){super(),this.addEventListener("change",debounce(this.onChange.bind(this),300)),this.cartUpdateUnsubscriber=MinimogEvents.subscribe(MinimogTheme.pubSubEvents.cartUpdate,this.onCartUpdate.bind(this)),window.FoxKitSections=[this.sectionName,this.cartCountSectionName]}connectedCallback(){this.isCartPage=MinimogSettings.templateName==="cart",this.cartDrawerInner=document.querySelector(".m-cart-drawer__inner");let loadingTarget=this.cartDrawerInner;this.isCartPage&&(loadingTarget=document.body),this.loading=new MinimogLibs.AnimateLoading(loadingTarget,{overlay:loadingTarget})}get sectionName(){return this.dataset.sectionName||"cart-template"}get cartCountSectionName(){return"cart-count"}cartUpdateUnsubscriber=void 0;disconnectedCallback(){this.cartUpdateUnsubscriber&&this.cartUpdateUnsubscriber()}onChange(event){const{target}=event;target.closest("m-quantity-input")&&this.updateQuantity(target.dataset.index,target.value,document.activeElement.getAttribute("name"),target)}onCartError(errors,target,line){target?this.setValidity(target,errors):window.location.href=MinimogSettings.routes.cart,this.updateLiveRegions(line,errors)}onCartUpdate(event){const sectionToRender=new DOMParser().parseFromString(event.cart.sections[this.sectionName],"text/html"),cartDrawer=document.querySelector("#MinimogCartDrawer");if(cartDrawer){const cartDrawerBody=cartDrawer.querySelector("#cart-drawer-form"),cartDrawerFooter=cartDrawer.querySelector("#MinimogCartDrawerFooter");cartDrawerBody&&HTMLUpdateUtility.viewTransition(cartDrawerBody,sectionToRender.querySelector("#cart-drawer-form"),this.preProcessHtmlCallbacks,this.postProcessHtmlCallbacks),cartDrawerFooter&&HTMLUpdateUtility.viewTransition(cartDrawerFooter,sectionToRender.querySelector("#MinimogCartDrawerFooter"),this.preProcessHtmlCallbacks,this.postProcessHtmlCallbacks)}const mainCart=document.querySelector("#MinimogCart");if(mainCart){const cartHeader=mainCart.querySelector("#MinimogCartHeader"),cartBody=mainCart.querySelector("#MinimogCartBody"),cartFooter=mainCart.querySelector("#MinimogCartFooter");cartHeader&&HTMLUpdateUtility.viewTransition(cartHeader,sectionToRender.querySelector("#MinimogCartHeader"),this.preProcessHtmlCallbacks,this.postProcessHtmlCallbacks),cartBody&&HTMLUpdateUtility.viewTransition(cartBody,sectionToRender.querySelector("#MinimogCartBody"),this.preProcessHtmlCallbacks,this.postProcessHtmlCallbacks),cartFooter&&HTMLUpdateUtility.viewTransition(cartFooter,sectionToRender.querySelector("#MinimogCartFooter"),this.preProcessHtmlCallbacks,this.postProcessHtmlCallbacks)}document.dispatchEvent(new CustomEvent("cart:updated",{detail:{cart:event.cart}}))}updateQuantity(line,quantity,name,target){this.loading.start();const{routes}=window.MinimogSettings;let sectionsToBundle=[];document.documentElement.dispatchEvent(new CustomEvent("cart:grouped-sections",{bubbles:!0,detail:{sections:sectionsToBundle}}));const body=JSON.stringify({line,quantity,sections:sectionsToBundle});
1fetch(`${routes.cart_change_url}`,{...fetchConfig(),body}).then(response=>response.json()).then(response=>{let quantityElement=document.getElementById(`MinimogDrawer-quantity-${line}`);if(this.isCartPage&&(quantityElement=document.getElementById(`MinimogQuantity-${line}`)),response.errors){this.loading.finish(),quantityElement.value=quantityElement.getAttribute("value"),this.onCartError(response.errors,target,line);return}const items=document.querySelectorAll(".m-cart-item"),updatedValue=response.items[line-1]?response.items[line-1].quantity:void 0;let message="";items.length===response.items.length&&updatedValue!==parseInt(quantityElement.value)&&(typeof updatedValue>"u"?message=window.MinimogStrings.cartError:message=window.MinimogStrings.quantityError.replace("{{ quantity }}",updatedValue)),this.updateLiveRegions(line,message),window.MinimogEvents.emit(MinimogTheme.pubSubEvents.cartUpdate,{cart:response})}).catch(error=>{console.log(error)}).finally(()=>{this.loading.finish()})}updateLiveRegions(line,message){let lineItemNode=document.getElementById(`MinimogCart-Item-${line}`);message!==""&&lineItemNode&&MinimogTheme.Notification.show({target:lineItemNode,type:"warning",message})}setValidity(target,message){target.setCustomValidity(message),target.reportValidity(),target.value=target.defaultValue,target.select()}}customElements.define("m-cart-items",MCartItems),window.FoxKitAddToCart=async payload=>{payload?.properties?.["_FoxKit offer"]&&(window.MinimogEvents.emit(MinimogTheme.pubSubEvents.cartUpdate,{cart:payload}),document.dispatchEvent(new CustomEvent("product-ajax:added",{detail:{product:payload}})))}; 2//# sourceMappingURL=/cdn/shop/t/115/assets/cart.js.map?v=169571709312339175391788782433
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.