1"use strict";{const uid=()=>Date.now().toString(36)+Math.random().toString(36).substring(2);class QuickAdd{constructor({elem}){this.uniq=uid(),this.dom={main:elem,trigger:elem.querySelector(".quick-add__open"),checkboxes:elem.querySelectorAll(".SizeSwatch__Checkbox"),labels:elem.querySelectorAll(".SizeSwatch__Label"),price:elem.querySelector(".quick-add__price [data-price]"),compareAtPrice:elem.querySelector(".quick-add__price [data-compare-at-price]"),quantitySelector:{increase:elem.querySelector('.quick-add__quantitySelector [data-action="increase-quantity"]'),decrease:elem.querySelector('.quick-add__quantitySelector [data-action="decrease-quantity"]'),input:elem.querySelector(".quick-add__quantitySelector input")},submit:elem.querySelector(".quick-add__add-to-cart")},elem.classList.remove("js-quick-add"),this.init()}init(){this.uniqify(),this.addEventListeners(),this.changeQuantity(),this.submitClick()}uniqify(){this.dom.checkboxes.forEach((checkbox,index)=>{const variantId=checkbox.getAttribute("data-variant-id");checkbox.setAttribute("name",this.uniq),checkbox.setAttribute("id",variantId+"-"+this.uniq),this.dom.labels[index].setAttribute("for",variantId+"-"+this.uniq)})}addEventListeners(){this.dom.trigger.addEventListener("click",()=>{this.dom.main.classList.add("open")}),this.dom.main.addEventListener("mouseleave",()=>{const closingTimer=setTimeout(()=>{this.dom.main.classList.remove("open")},1e3);this.dom.main.addEventListener("mouseenter",()=>{clearTimeout(closingTimer)})}),this.dom.checkboxes.forEach(checkbox=>{checkbox.addEventListener("click",()=>{this.dom.checkboxes.forEach(checkboxReset=>{checkboxReset.checked=!1}),checkbox.checked=!0,this.changePrice(checkbox)})})}changePrice(checkbox){const price=Number(checkbox.dataset.price),compareAtPrice=Number(checkbox.dataset.compareAtPrice);this.updatePrice({price,compareAtPrice})}updatePrice({price=0,compareAtPrice=0}){this.dom.price.innerText=Shopify.formatMoney(price,window.theme.moneyFormat),compareAtPrice>price?(this.dom.price.classList.add("Price--highlight"),this.dom.compareAtPrice.innerText=Shopify.formatMoney(compareAtPrice,window.theme.moneyFormat),this.dom.compareAtPrice.hidden=!1):(this.dom.price.classList.remove("Price--highlight"),this.dom.compareAtPrice.hidden=!0)}changeQuantity(){this.dom.quantitySelector.increase.addEventListener("click",()=>{this.dom.quantitySelector.input.value<99&&(this.dom.quantitySelector.input.value=Number(this.dom.quantitySelector.input.value)+1)}),this.dom.quantitySelector.decrease.addEventListener("click",()=>{this.dom.quantitySelector.input.value>1&&(this.dom.quantitySelector.input.value=Number(this.dom.quantitySelector.input.value)-1)})}submitClick(){this.dom.submit.addEventListener("click",()=>{const selectedVariant=[...this.dom.checkboxes].find(x=>x.checked==!0);if(!selectedVariant)return;const variantId=Number(selectedVariant.dataset.variantId),quantity=Number(this.dom.quantitySelector.input.value);this.addToCart({variantId,quantity})})}addToCart({variantId,quantity}){fetch("/cart/add.js",{credentials:"same-origin",method:"POST",headers:{"Content-Type":"application/json","X-Requested-With":"XMLHttpRequest"},body:JSON.stringify({items:[{id:variantId,quantity}]})}).then(response=>response.json().then(data=>{response.ok?document.dispatchEvent(new CustomEvent("product:added",{bubbles:!0,detail:{data,variant:variantId,quantity}})):this.errorHandler({errorData:data})})).catch(error=>{console.error("Error:",error)})}errorHandler({errorData}){errorData.status===422&&this.errorAlertMessage({errorData})}errorAlertMessage({errorData}){setTimeout(()=>{alert(errorData.description)},400)}}const initQuickAdd=()=>{document.querySelectorAll(".js-quick-add").forEach(quickAddElem=>{new QuickAdd({elem:quickAddElem})})};initQuickAdd(),document.addEventListener("Carousel:Build",()=>
1{initQuickAdd()}),document.addEventListener("filter:reloaded",()=>{initQuickAdd()}),document.addEventListener("theme:search:end",()=>{initQuickAdd()}),document.addEventListener("helloRetail:searched",()=>{initQuickAdd()})} 2//# sourceMappingURL=/cdn/shop/t/13/assets/quick-add.js.map?v=28976342292753843001738735529
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.