1window.theme=window.theme||{},theme.CartTotalSavings=(function(){function CartTotalSavings(container){this.container=container,container&&(this.sectionId=this.container.id,this.bindElements(),this.bindEvents())}return CartTotalSavings.prototype={bindElements:function(){const self=this;self.totalSavingsContainer=this.container.querySelector("[data-total-savings]")},bindEvents:async function(){const self=this;self.onPageLoad(),document.addEventListener("ajaxProduct:added",function(event){self.onPageLoad()}),document.addEventListener("cart:updated",function(event){let cart=event.detail.cart;if(!cart)console.log("Error: invalid variant id");else{self.onPageLoad();return}self.handleCartUpdate(cart)}),document.addEventListener("cart:quantity",function(event){let cart=event.detail.cart;if(!cart)console.log("Error: invalid variant id");else{self.onPageLoad();return}self.handleCartUpdate(cart)})},handleCartUpdate:async function(cart){const self=this;self.cart=cart,self.savings=await self.getFullCartDetails(),self.updateTotalSavings()},onPageLoad:async function(){const self=this;self.cart=await self.getCart(),self.savings=await self.getFullCartDetails(),self.updateTotalSavings()},getFullCartDetails:function(){const self=this;return new Promise(function(resolve,reject){fetch("/cart?view=data").then(res=>res.text()).then(html=>{if(html){let data=JSON.parse(html);resolve(data.total_savings)}}).catch(error=>{console.log(error),resolve()})})},updateTotalSavings:function(){const self=this;self.totalSavingsContainer.innerHTML=self.savings},getCart:async function(){const self=this;return new Promise(function(resolve,reject){fetch("/cart.js").then(res=>res.text()).then(html=>{html&&resolve(JSON.parse(html))}).catch(error=>{console.log(error),resolve()})})}},CartTotalSavings})(),document.addEventListener("DOMContentLoaded",function(){const cartTotalSavingsContainers=document.querySelectorAll(".site-header__cart");!window.theme.cartTotalSavings&&cartTotalSavingsContainers&&(window.theme.cartTotalSavings=[],cartTotalSavingsContainers.forEach(function(container){window.theme.cartTotalSavings.push(new theme.CartTotalSavings(container))}))}); 2//# sourceMappingURL=/cdn/shop/t/166/assets/custom-cart-total-savings.js.map?v=176818663625686531881748839910
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.