{
  "version": 3,
  "sources": ["/cdn/shop/t/996/assets/cart-metrics.js?utm_bot_source=7516fd43adaa"],
  "sourcesContent": ["\nlet startTimestamp = null;\nlet currentOperation = null;\nlet cartUpdateDebounceTimer = null;\nconst debounceDelay = 300;\n\n// --- Helper: Push to Data Layer ---\nfunction pushToDataLayer(operation, duration) {\n  if (!window.dataLayer) return;\n  const finalDuration = (duration / 1000).toFixed(3);\n  window.dataLayer.push({\n    event: 'cart-perf-metrics',\n    cart_operation: operation,\n    Env: 'Naked Discounts',\n    Duration: finalDuration + 's',\n    Duration_Value: parseFloat(finalDuration)\n  });\n  console.log(`[Cart metrics] ${operation} took ${finalDuration}s`);\n}\n\nfunction handleCartUpdate() {\n  if (cartUpdateDebounceTimer) clearTimeout(cartUpdateDebounceTimer);\n\n  cartUpdateDebounceTimer = setTimeout(function() {\n    if (startTimestamp) {\n      const endTimestamp = performance.now();\n      const duration = endTimestamp - startTimestamp - debounceDelay;\n      pushToDataLayer(currentOperation, duration);\n      // Reset\n      startTimestamp = null;\n      currentOperation = null;\n      document.documentElement.removeEventListener('wetheme-cart-update', handleCartUpdate);\n    }\n  }, debounceDelay);\n}\n\n// --- 1. Track Add to Cart (ATC) ---\nfunction logAtcStart() {\n  startTimestamp = performance.now();\n  currentOperation = 'add_to_cart';\n  document.documentElement.addEventListener('wetheme-cart-update', handleCartUpdate);\n}\n\ndocument.querySelectorAll('.custom-add-to-bag, .quick-add-button').forEach(btn => {\n  btn.addEventListener('click', logAtcStart);\n});\ndocument.addEventListener('click', (event) => {\n  const btn = event.target.closest('.quick-add-button.minicart-upsell-btn');\n  if (btn) {\n    logAtcStart(event);\n  }\n});\n\n// ---  Track Side-Cart Interactions (Delete & Update) ---\ndocument.addEventListener('click', function(e) {\n  const target = e.target;\n  // Delete Button\n  const deleteBtn = target.closest('.sidecart-item__remove');\n  if (deleteBtn) {\n    startTimestamp = performance.now();\n    currentOperation = 'item_delete';\n    document.documentElement.addEventListener('wetheme-cart-update', handleCartUpdate, { once: true });\n  }\n  // Quantity Update\n  const qtyBtn = target.closest('.sidecart-item__qty-btn, .sidecart-item__qty-input');\n  if (qtyBtn) {\n    startTimestamp = performance.now();\n    currentOperation = 'quantity_update';\n    document.documentElement.addEventListener('wetheme-cart-update', handleCartUpdate, { once: true });\n  }\n});\n\n// --- Coupon Apply Listener ---\n// Capture click on Apply button and Enter key on discount input\nfunction startCouponApplyTimer() {\n  startTimestamp = performance.now();\n  currentOperation = 'apply_coupon';\n  document.addEventListener('cart-discount:applied', handleCartUpdate, { once: true });\n}\ndocument.addEventListener('click', function(e) {\n  if (e.target.closest('.cart-discount__button')) {\n    startCouponApplyTimer();\n  }\n}, { capture: true });\ndocument.addEventListener('keydown', function(e) {\n  if (e.key === 'Enter' && e.target.closest('.cart-discount__input')) {\n    startCouponApplyTimer();\n  }\n}, { capture: true });\n\n// --- Token Discount (auto-applied from URL ?token= param) ---\nif (new URLSearchParams(window.location.search).get('token')) {\n  startCouponApplyTimer();\n}\n\n// --- Coupon Remove Listener ---\n// We use 'capture: true' to intercept the click before the component calls stopPropagation\ndocument.addEventListener('click', function(e) {\n  const removeCoupon = e.target.closest('.cart-discount__pill-remove');\n  if (removeCoupon) {\n    startTimestamp = performance.now();\n    currentOperation = 'remove_discount_coupon';\n    document.documentElement.addEventListener('wetheme-cart-update', handleCartUpdate, { once: true });\n  }\n}, { capture: true });\n"],
  "mappings": "AACA,IAAI,eAAiB,KACjB,iBAAmB,KACnB,wBAA0B,KAC9B,MAAM,cAAgB,IAGtB,SAAS,gBAAgB,UAAW,SAAU,CAC5C,GAAI,CAAC,OAAO,UAAW,OACvB,MAAM,eAAiB,SAAW,KAAM,QAAQ,CAAC,EACjD,OAAO,UAAU,KAAK,CACpB,MAAO,oBACP,eAAgB,UAChB,IAAK,kBACL,SAAU,cAAgB,IAC1B,eAAgB,WAAW,aAAa,CAC1C,CAAC,EACD,QAAQ,IAAI,kBAAkB,SAAS,SAAS,aAAa,GAAG,CAClE,CAEA,SAAS,kBAAmB,CACtB,yBAAyB,aAAa,uBAAuB,EAEjE,wBAA0B,WAAW,UAAW,CAC9C,GAAI,eAAgB,CAElB,MAAM,SADe,YAAY,IAAI,EACL,eAAiB,cACjD,gBAAgB,iBAAkB,QAAQ,EAE1C,eAAiB,KACjB,iBAAmB,KACnB,SAAS,gBAAgB,oBAAoB,sBAAuB,gBAAgB,CACtF,CACF,EAAG,aAAa,CAClB,CAGA,SAAS,aAAc,CACrB,eAAiB,YAAY,IAAI,EACjC,iBAAmB,cACnB,SAAS,gBAAgB,iBAAiB,sBAAuB,gBAAgB,CACnF,CAEA,SAAS,iBAAiB,uCAAuC,EAAE,QAAQ,KAAO,CAChF,IAAI,iBAAiB,QAAS,WAAW,CAC3C,CAAC,EACD,SAAS,iBAAiB,QAAU,OAAU,CAChC,MAAM,OAAO,QAAQ,uCAAuC,GAEtE,YAAY,KAAK,CAErB,CAAC,EAGD,SAAS,iBAAiB,QAAS,SAAS,EAAG,CAC7C,MAAM,OAAS,EAAE,OAEC,OAAO,QAAQ,wBAAwB,IAEvD,eAAiB,YAAY,IAAI,EACjC,iBAAmB,cACnB,SAAS,gBAAgB,iBAAiB,sBAAuB,iBAAkB,CAAE,KAAM,EAAK,CAAC,GAGpF,OAAO,QAAQ,oDAAoD,IAEhF,eAAiB,YAAY,IAAI,EACjC,iBAAmB,kBACnB,SAAS,gBAAgB,iBAAiB,sBAAuB,iBAAkB,CAAE,KAAM,EAAK,CAAC,EAErG,CAAC,EAID,SAAS,uBAAwB,CAC/B,eAAiB,YAAY,IAAI,EACjC,iBAAmB,eACnB,SAAS,iBAAiB,wBAAyB,iBAAkB,CAAE,KAAM,EAAK,CAAC,CACrF,CACA,SAAS,iBAAiB,QAAS,SAAS,EAAG,CACzC,EAAE,OAAO,QAAQ,wBAAwB,GAC3C,sBAAsB,CAE1B,EAAG,CAAE,QAAS,EAAK,CAAC,EACpB,SAAS,iBAAiB,UAAW,SAAS,EAAG,CAC3C,EAAE,MAAQ,SAAW,EAAE,OAAO,QAAQ,uBAAuB,GAC/D,sBAAsB,CAE1B,EAAG,CAAE,QAAS,EAAK,CAAC,EAGhB,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAAE,IAAI,OAAO,GACzD,sBAAsB,EAKxB,SAAS,iBAAiB,QAAS,SAAS,EAAG,CACxB,EAAE,OAAO,QAAQ,6BAA6B,IAEjE,eAAiB,YAAY,IAAI,EACjC,iBAAmB,yBACnB,SAAS,gBAAgB,iBAAiB,sBAAuB,iBAAkB,CAAE,KAAM,EAAK,CAAC,EAErG,EAAG,CAAE,QAAS,EAAK,CAAC",
  "names": []
}
