{
  "version": 3,
  "sources": ["/cdn/shop/t/123/assets/fit-alia-cart-guard.js?fitb=alia-cart-20260901a"],
  "sourcesContent": ["/**\n * FIT \u00B7 Alia Plinko guard (2026-09-06)\n * Hard rule: NEVER disable/hide #alia-root permanently (email capture stays on).\n *\n * Fixes:\n * 1) Re-fire over open cart drawer after Mag ATC \u2014 close + suppress while drawer open\n * 2) Session suppress after ATC so Plinko doesn't stack on the buy path\n * 3) Circuit-break MutationObserver \u2194 closeAlia feedback loops (Chrome Aw Snap / error 9\n *    after Mag \"Add this cover\" \u2014 cart still wrote, tab died mid-open)\n *\n * Cold-homepage ~10s delay is an Alia campaign setting \u2014 raise it in Alia admin.\n * This file only keeps Plinko from covering checkout/drawer.\n */\n(function () {\n  if (window.__fitAliaCartGuard) return;\n  window.__fitAliaCartGuard = true;\n\n  var SS_KEY = 'fit_alia_suppress_until';\n  var ATC_SUPPRESS_MS = 8 * 60 * 1000; // 8 min after ATC / drawer buy path\n  var CLOSE_DEBOUNCE_MS = 350;\n  var CLOSE_MAX_BURST = 4;\n  var CLOSE_BURST_WINDOW_MS = 2000;\n  var OBS_PAUSE_MS = 2500;\n\n  var _closeTimer = null;\n  var _closeTimes = [];\n  var _closing = false;\n  var _domObs = null;\n  var _domObsPaused = false;\n\n  function alia() {\n    try {\n      window.alia = window.alia || [];\n      return window.alia;\n    } catch (e) {\n      return null;\n    }\n  }\n\n  function closeAliaNow() {\n    if (_closing) return;\n    _closing = true;\n    try {\n      var a = alia();\n      if (a && typeof a.push === 'function') a.push({ type: 'close' });\n    } catch (e0) {}\n    setTimeout(function () { _closing = false; }, 200);\n  }\n\n  /** Debounced + rate-limited close \u2014 prevents Alia remove/reinsert \u2194 observer death spiral */\n  function closeAlia() {\n    var now = Date.now();\n    _closeTimes = _closeTimes.filter(function (t) { return now - t < CLOSE_BURST_WINDOW_MS; });\n    if (_closeTimes.length >= CLOSE_MAX_BURST) {\n      // Too many closes in a short window \u2014 pause DOM observer so we don't crash the tab\n      pauseDomObs();\n      return;\n    }\n    if (_closeTimer) clearTimeout(_closeTimer);\n    _closeTimer = setTimeout(function () {\n      _closeTimer = null;\n      _closeTimes.push(Date.now());\n      closeAliaNow();\n    }, CLOSE_DEBOUNCE_MS);\n  }\n\n  function pauseDomObs() {\n    if (!_domObs || _domObsPaused) {\n      closeAliaNow();\n      return;\n    }\n    _domObsPaused = true;\n    try { _domObs.disconnect(); } catch (eP) {}\n    closeAliaNow();\n    setTimeout(function () {\n      _domObsPaused = false;\n      try {\n        if (_domObs && document.documentElement) {\n          _domObs.observe(document.documentElement, { childList: true, subtree: true });\n        }\n      } catch (eR) {}\n    }, OBS_PAUSE_MS);\n  }\n\n  function drawerOpen() {\n    try {\n      var d = document.getElementById('cartDrawer');\n      return !!(d && d.classList.contains('open'));\n    } catch (e1) {\n      return false;\n    }\n  }\n\n  /** Soft-mute Alia hit-targets while drawer is open \u2014 never hide #alia-root permanently */\n  function muteAliaHits(on) {\n    try {\n      var nodes = document.querySelectorAll('#alia-root, [id*=\"alia\"], [class*=\"alia\"], iframe[src*=\"alia\"]');\n      for (var i = 0; i < nodes.length; i++) {\n        if (on) nodes[i].style.setProperty('pointer-events', 'none', 'important');\n        else nodes[i].style.removeProperty('pointer-events');\n      }\n    } catch (eM) {}\n  }\n\n  function suppressUntil(ts) {\n    try {\n      sessionStorage.setItem(SS_KEY, String(ts));\n    } catch (e2) {}\n  }\n\n  function isSuppressed() {\n    try {\n      var until = parseInt(sessionStorage.getItem(SS_KEY) || '0', 10);\n      return until && Date.now() < until;\n    } catch (e3) {\n      return false;\n    }\n  }\n\n  function markAtcSuppress() {\n    suppressUntil(Date.now() + ATC_SUPPRESS_MS);\n    closeAlia();\n  }\n\n  function maybeClose() {\n    if (drawerOpen() || isSuppressed()) closeAlia();\n  }\n\n  function nodeLooksAlia(n) {\n    if (!n || n.nodeType !== 1) return false;\n    try {\n      var id = (n.id || '').toLowerCase();\n      var cls = (typeof n.className === 'string' ? n.className : '').toLowerCase();\n      var src = (n.getAttribute && (n.getAttribute('src') || '')) || '';\n      if (id.indexOf('alia') !== -1 || cls.indexOf('alia') !== -1) return true;\n      if (/alia|plinko|getalia/i.test(src)) return true;\n      // Cheap check only \u2014 avoid deep querySelector on huge trees (OOM risk)\n      if (n.children && n.children.length && n.children.length < 40) {\n        if (n.querySelector && n.querySelector('[id*=\"alia\"], [class*=\"alia\"], iframe[src*=\"alia\"]')) return true;\n      }\n    } catch (eN) {}\n    return false;\n  }\n\n  // Close when our cart opens / updates\n  document.addEventListener('fit:cart-updated', function () {\n    if (drawerOpen()) markAtcSuppress();\n    else maybeClose();\n  });\n\n  // Watch drawer class\n  function watchDrawer() {\n    var d = document.getElementById('cartDrawer');\n    if (!d || d.__fitAliaObs) return;\n    d.__fitAliaObs = true;\n    try {\n      new MutationObserver(function () {\n        if (drawerOpen()) {\n          markAtcSuppress();\n          muteAliaHits(true);\n        } else {\n          muteAliaHits(false);\n        }\n      }).observe(d, { attributes: true, attributeFilter: ['class'] });\n    } catch (e4) {}\n  }\n\n  // If Alia injects a full-screen layer while drawer is open / suppressed, close it\n  function watchAliaDom() {\n    if (_domObs) return;\n    try {\n      _domObs = new MutationObserver(function (muts) {\n        if (_domObsPaused) return;\n        if (!drawerOpen() && !isSuppressed()) return;\n        var hit = false;\n        for (var i = 0; i < muts.length && !hit; i++) {\n          var nodes = muts[i].addedNodes || [];\n          for (var j = 0; j < nodes.length; j++) {\n            if (nodeLooksAlia(nodes[j])) {\n              hit = true;\n              break;\n            }\n          }\n        }\n        if (hit) closeAlia();\n      });\n      _domObs.observe(document.documentElement, { childList: true, subtree: true });\n    } catch (e5) {}\n  }\n\n  // Hook FIT.openCart / addItem path once available\n  function wrapFit() {\n    try {\n      if (!window.FIT || window.FIT.__aliaGuardWrapped) return;\n      window.FIT.__aliaGuardWrapped = true;\n      var oc = window.FIT.openCart;\n      if (typeof oc === 'function') {\n        window.FIT.openCart = function () {\n          markAtcSuppress();\n          return oc.apply(this, arguments);\n        };\n      }\n      var ai = window.FIT.addItem;\n      if (typeof ai === 'function') {\n        window.FIT.addItem = function () {\n          markAtcSuppress();\n          return ai.apply(this, arguments);\n        };\n      }\n      var ais = window.FIT.addItems;\n      if (typeof ais === 'function') {\n        window.FIT.addItems = function () {\n          markAtcSuppress();\n          return ais.apply(this, arguments);\n        };\n      }\n    } catch (e6) {}\n  }\n\n  function boot() {\n    watchDrawer();\n    watchAliaDom();\n    wrapFit();\n    maybeClose();\n    setTimeout(wrapFit, 500);\n    setTimeout(wrapFit, 2000);\n    setTimeout(maybeClose, 1000);\n  }\n\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', boot);\n  else boot();\n  window.addEventListener('load', function () {\n    wrapFit();\n    maybeClose();\n  });\n})();\n"],
  "mappings": "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",
  "names": []
}
