1document.addEventListener("on:cart:change",()=>{Alpine.store("cart").syncWithShopifyCart()}),document.addEventListener("on:cart:add",event=>{Alpine.store("cart").syncWithShopifyCart()}),document.addEventListener("alpine:init",()=>{Alpine.store("cart",{items:[],currentlyChangingVariantId:null,init(){this.syncWithShopifyCart()},addItem(item){this.items.push(item)},getQuantity(variantId){return this.items.find(item=>item.variant_id===variantId)?.quantity||0},setChangingVariant(variantId){this.currentlyChangingVariantId=variantId},clearChangingVariant(){this.currentlyChangingVariantId=null},syncWithShopifyCart(){fetch(`${theme.routes.cart}.js`).then(response=>response.json()).then(cart=>{this.items=cart.items,document.dispatchEvent(new Event("alpine:cart:updated",{bubbles:!0}))}).catch(error=>console.error("Error fetching cart:",error))}}),Alpine.data("CollectionView",initialView=>({view:initialView,defaultView:"grid",minBreakpoint:1245,init(){window.innerWidth<this.minBreakpoint&&this.view!==this.defaultView&&this.switchView(this.defaultView)},updateCartAttribute(view){fetch(theme.routes.cartUpdate,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({attributes:{view}})}).catch(error=>console.error("Error updating collection view:",error.message))},closeExpandedQuickBuys(){document.querySelectorAll(".product-block.exp
1anded").forEach(el=>{theme.quickbuy.contractDetail(el,!0)})},switchView(newView){window.innerWidth<this.minBreakpoint&&(newView=this.defaultView),this.view=newView,this.updateCartAttribute(newView),this.closeExpandedQuickBuys()}})),Alpine.data("VariantPricing",({variantId,basePrice,minimumQuantity,priceBreaks})=>({get currentPrice(){const cartQuantity=Alpine.store("cart").getQuantity(variantId);if(priceBreaks&&priceBreaks.length>0){for(const priceBreak of priceBreaks)if(cartQuantity>=priceBreak.minimum_quantity)return priceBreak.price;if(cartQuantity>=minimumQuantity)return basePrice}return basePrice}})),Alpine.data("TotalPrice",({variantId,initialTotalPrice})=>({totalPrice:initialTotalPrice,init(){document.addEventListener("alpine:cart:updated",()=>{const cartItem=Alpine.store("cart").items.find(item=>item.variant_id===variantId);cartItem?this.totalPrice=Shopify.formatMoney(cartItem.line_price,window.theme.settings.moneyWithCurrencyFormat):this.totalPrice=Shopify.formatMoney(0,window.theme.settings.moneyWithCurrencyFormat)})}})),Alpine.data("QuantityHandler",({variantId,qa:minQuantity,qb:maxQuantity,blocked=!1})=>({addToCartTimeout:null,adjustCartTimeout:null,init(){this.quantityElement=this.$el.querySelector('input[name="quantity"]')},get canIncreaseQuantity(){if(blocked)return!0;const changingVariant=Alpine.store("cart").currentlyChangingVariantId;return changingVariant!==null&&changingVariant!==variantId||maxQuantity<=minQuantity||this.quantity>=maxQuantity},get canDecreaseQuantity(){const changingVariant=Alpine.store("cart").currentlyChangingVariantId;return changingVariant!==null&&changingVariant!==variantId||!this.quantity},get quantity(){return Alpine.store("cart").getQuantity(variantId)},get currentInputFieldValue(){return parseInt(this.$el.parentNode.querySelector('input[name="quantity"]').value,10)},get preorderStatus(){const preorderStatus=this.$el.closest(`[data-variant-id="${variantId}"]`).querySelector('input[name="_is_preorder"]');return preorderStatus?preorderStatus.value:null},debouncedAdjustCart(isButtonClick=!1){clearTimeout(this.adjustCartTimeout),Alpine.store("cart").setChangingVariant(variantId),this.adjustCartTimeout=setTimeout(()=>{if(!Number.isFinite(this.currentInputFieldValue)){const input=this.$el.parentNode.querySelector('input[name="quantity"]');input&&(input.value=this.quantity),Alpine.store("cart").clearChangingVariant();return}let quantityToAdjustTo=Math.min(this.currentInputFieldValue,maxQuantity);if(isButtonClick&&this.currentInputFieldValue<=minQuantity&&minQuantity<=this.quantity&&(quantityToAdjustTo=0),this.quantity===0){if(quantityToAdjustTo<1){Alpine.store("cart").clearChangingVariant();return}const properties={};this.preorderStatus&&(properties._is_preorder=this.preorderStatus),this.addToCart(Math.max(quantityToAdjustTo,minQuantity),properties);return}this.adjustCartItem(quantityToAdjustTo)},500)},debouncedAddToCart(){blocked||(clearTimeout(this.addToCartTimeout),Alpine.store("cart").setChangingVariant(variantId),this.addToCartTimeout=setTimeout(()=>{let quantityToAdd=this.currentInputFieldValue-this.quantity,properties={};quantityToAdd+this.quantity<minQuantity&&(quantityToAdd=minQuantity),this.preorderStatus&&(properties._is_preorder=this.preorderStatus),this.addToCart(quantityToAdd,properties)},500))},addToCart(quantity,properties){if(quantity<1)return;if(blocked){Alpine.store("cart").clearChangingVariant();return}const acceptedQuantity=this.quantity;fetch(theme.routes.cartAdd,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({items:[{id:variantId,quantity,properties}]})}).then(response=>response.ok?response.json().then(data=>{const{title}=data.items[0];this.onAddedToCart({title,quantity,variantId})}):response.json().then(data=>{const input=this.$el.parentNode.querySelector('input[name="quantity"]');input&&(input.value=acceptedQuantity);const msg=data&&data.description?data.description:theme.strings.cartItemsQuantityError.replace("[QUANTITY]",acceptedQuantity);theme.showQuickPopup(msg,input||this.$el),Alpine.store("cart").syncWithShopifyCart(),Alpine.store("cart").clearChangingV
1ariant()})).catch(error=>{console.error("Error adding to cart:",error),Alpine.store("cart").clearChangingVariant()})},adjustCartItem(qty){const acceptedQuantity=this.quantity;fetch(theme.routes.cartChange,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:String(variantId),quantity:parseInt(qty,10)})}).then(response=>{if(!response.ok)return response.json().then(data=>{const input=this.$el.parentNode.querySelector('input[name="quantity"]');input&&(input.value=acceptedQuantity);const msg=data&&data.description?data.description:theme.strings.cartItemsQuantityError.replace("[QUANTITY]",acceptedQuantity);theme.showQuickPopup(msg,input||this.$el),Alpine.store("cart").syncWithShopifyCart(),Alpine.store("cart").clearChangingVariant()});this.onRemovedFromCart()}).catch(error=>{console.error("Error adjusting cart item:",error),Alpine.store("cart").clearChangingVariant()})},onAddedToCart({title,quantity,variantId:variantId2}){if(theme.settings.afterAddToCart==="notification"){const notification=document.getElementById("AddedNotification").content.firstElementChild.cloneNode(!0);notification.dataset.productTitle=`${quantity}x ${title}`;let notificationContainer=document.querySelector(".pageheader--sticky");notificationContainer||(notificationContainer=document.querySelector("body")),notificationContainer.appendChild(notification)}else theme.settings.afterAddToCart==="drawer"&&document.querySelector(".js-cart-drawer").open();document.dispatchEvent(new CustomEvent("on:cart:add",{bubbles:!0,detail:{variantId:variantId2}})),document.dispatchEvent(new CustomEvent("dispatch:cart-drawer:refresh",{bubbles:!0})),document.dispatchEvent(new CustomEvent("on:cart:change",{bubbles:!0})),Alpine.store("cart").clearChangingVariant()},onRemovedFromCart(){document.dispatchEvent(new CustomEvent("dispatch:cart-drawer:refresh",{bubbles:!0})),document.dispatchEvent(new CustomEvent("on:cart:change",{bubbles:!0})),Alpine.store("cart").clearChangingVariant()}}))}); 2//# sourceMappingURL=/cdn/shop/t/52/assets/alpine.list-view.js.map?v=37953037417051858841786693537
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.