1class DjuceProgressBar extends HTMLElement{constructor(){super(),this.cartCount=0;try{const localesScript=this.querySelector(".dpb-locales-json");this.locales=JSON.parse(localesScript.textContent)}catch{console.error("DPB: Failed to parse locales."),this.locales={progress_1:"1 item left to Free shipping + 10% off order",progress_2:"1 item left to 20% off order",progress_3:"Max Discount Unlocked!"}}}async connectedCallback(){this.render(),await this.fetchCartState(),this.ampUpdateHandler=this.handleAmpCartUpdate.bind(this),window.addEventListener("djuce:cart:updated",this.ampUpdateHandler)}disconnectedCallback(){window.removeEventListener("djuce:cart:updated",this.ampUpdateHandler)}async fetchCartState(){try{const response=await fetch(`${window.Shopify.routes.root}cart.js`);if(response.ok){const cart=await response.json();this.cartCount=cart.item_count||0,this.render()}}catch{console.warn("DPB: Cart fetch failed.")}}handleAmpCartUpdate(event){const cart=event.detail;cart&&typeof cart.item_count<"u"&&(this.cartCount=cart.item_count,this.render())}render(){if(this.cartCount===0){this.style.display="none";return}else this.style.display="block";const textEl=this.querySelector(".dpb-status-text");textEl&&(this.cartCount===1?textEl.innerHTML=this.locales.progress_1:this.cartCount===2?textEl.innerHTML=this.locales.progress_2:textEl.innerHTML=`<strong>${this.locales.progress_3}</strong>`);const fillEl=this.querySelector(".dpb-fill"),progressCount=Math.min(this.cartCount,3);progressCount==1?fillEl&&(fillEl.style.width="25%"):progressCount==2?fillEl&&(fillEl.style.width="50%"):fillEl&&(fillEl.style.width=`${progressCount/3*100}%`);const node2=this.querySelector(".dpb-node-2"),label2=this.querySelector(".dpb-label-2"),node3=this.querySelector(".dpb-node-3"),label3=this.querySelector(".dpb-label-3");this.cartCount>=2?(node2?.classList.add("reached"),label2?.classList.add("reached")):(node2?.classList.remove("reached"),label2?.classList.remove("reached")),this.cartCount>=3?(node3?.classList.add("reached"),label3?.classList.add("reached")):(node3?.classList.remove("reached"),label3?.classList.remove("reached"));const headerEl=this.querySelector(".dpb-header");this.cartCount>=3?headerEl?.classList.add("dpb-header--maxed"):headerEl?.classList.remove("dpb-header--maxed")}}customElements.get("djuce-progress-bar")||customElements.define("djuce-progress-bar",DjuceProgressBar); 2//# sourceMappingURL=/cdn/shop/t/5/assets/djuce-progress-bar.js.map?v=155683487068795227831772613901
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.