{
  "version": 3,
  "sources": ["/cdn/shop/t/427/assets/aa-four-for-99-progress.js?aa_revision=aa-extras-20261019-1"],
  "sourcesContent": ["import {extrasController,giftBoxControl,markedBox,enhanceClearanceOffer} from './aa-offer-extras.js?v=20261019-clarity2';\nimport {offerItems,hasOfferDiscount} from './aa-offer-cart.js?v=aa-extras-20261019-1';\nimport {currencyContext} from './aa-offer-currency.js?v=aa-extras-20261019-1';\n/* Draft storefront helper: never changes cart totals or prices. Shopify is authoritative. */\nconst rulesCache=new Map();\nconst refreshNativeCart=()=>{if(/\\/cart\\/?$/.test(location.pathname))location.reload();else document.dispatchEvent(new CustomEvent('cart:refresh'));};\nconst getRules=url=>{\n if(!rulesCache.has(url))rulesCache.set(url,fetch(url).then(r=>{if(!r.ok)throw Error('Offer configuration unavailable');return r.json();}));\n return rulesCache.get(url);\n};\nclass AAOfferProgress extends HTMLElement {\n connectedCallback(){\n  this.controller?.abort();this.controller=new AbortController();\n  this.revision=0;\n  const initial=this.querySelector('[data-offer-cart]');\n  try{this.render(JSON.parse(initial?.textContent||'{}'));}catch{this.hidden=true;}\n  document.addEventListener('cart:change',e=>this.render(e.detail?.cart),{signal:this.controller.signal});\n  document.addEventListener('cart:refresh',()=>this.refresh(),{signal:this.controller.signal});\n }\n disconnectedCallback(){this.controller?.abort();this.revision++;}\n async refresh(){\n  try{const r=await fetch(`${window.Shopify?.routes?.root||'/'}cart.js`,{headers:{Accept:'application/json'}});if(r.ok)await this.render(await r.json());}catch{this.hidden=true;}\n }\n async render(cart){\n  const revision=++this.revision;\n  try{\n   const config=await getRules(this.dataset.config);\n   if(!this.isConnected||revision!==this.revision)return;\n   this.extras=extrasController(config,value=>offerItems(value,config,currencyContext(config,value.currency)));\n   if(!this.syncing&&(offerItems(cart,config).length||cart.items?.some(markedBox))){this.syncing=true;try{const result=await this.extras.reconcile(cart,{activate:true});cart=result.cart;if(result.changed){refreshNativeCart();}}finally{this.syncing=false;}}\n   if(!this.isConnected||revision!==this.revision)return;\n   const context=currencyContext(config,cart.currency),bundle=context.offerMoney(context.offerBundleCents);\n   enhanceClearanceOffer({cart,context,controller:this.extras,onChange:async cart=>{await this.render(cart);refreshNativeCart();}});\n   const qualifying=offerItems(cart,config,context);\n   const quantity=qualifying.reduce((n,item)=>n+item.quantity,0);\n   this.hidden=!quantity&&!this.hasAttribute('data-force-visible');\n   const applied=hasOfferDiscount(cart);\n   const needed=Math.max(0,4-quantity);\n   let message;\n   if(quantity<4)message=`Add ${needed} more ${needed===1?'piece':'pieces'} for 4 for ${bundle}.`;\n   else if(applied)message=`First four ${bundle}${quantity>4?` + ${quantity-4} extra ${quantity===5?'piece':'pieces'} at ${context.money(context.premium(2000))} each`:''}.`;\n   else message='Four eligible pieces selected. Check the offer in your cart before checkout.';\n   this.querySelector('[role=status]').textContent=message;\n   const progress=this.querySelector('progress');progress.value=Math.min(quantity,4);\n   let host=this.querySelector(\"[data-led-boxes]\");if(!host){host=document.createElement(\"div\");host.dataset.ledBoxes=\"\";host.className=\"aa-offer-box-control\";this.append(host);}\n   giftBoxControl({host,cart,context,controller:this.extras,onChange:async cart=>{await this.render(cart);refreshNativeCart();}});\n  }catch{if(revision===this.revision)this.hidden=true;}\n }\n}\nif(!customElements.get('aa-offer-progress'))customElements.define('aa-offer-progress',AAOfferProgress);\n"],
  "mappings": "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",
  "names": ["cart"]
}
