{
  "version": 3,
  "sources": ["/cdn/shop/t/154/assets/psm-hide-signings.js?psm=4"],
  "sourcesContent": ["/**\r\n * PSM \u2014 Hide \"Autograph Signing\" cards on collection pages.\r\n *\r\n * Why this exists:\r\n *   The Liquid filter in product-loop.liquid and the per-section filters in\r\n *   sections/psm-sport-hub-*-main.liquid already strip signing products on\r\n *   the server. This script is a runtime safety net that also catches:\r\n *     - Cards rendered via any unknown render path.\r\n *     - Cards loaded via AJAX after page load (sport-hub fetches, load more,\r\n *       collection filter changes).\r\n *     - Cards that survive a stale CDN cache of the Liquid templates.\r\n *\r\n * Pages where it runs (allow-list, by URL path):\r\n *   /collections/new-releases\r\n *   /collections/baseball-1\r\n *   /collections/basketball-1\r\n *   /collections/football-1\r\n *   /collections/all   (because the new-releases cross-collection mode and\r\n *                       the sport hub catalog mode both fetch /collections/all\r\n *                       and inject those products into the active grid)\r\n *\r\n * Detection rules for a \"signing\" card (any one match removes it):\r\n *   1. <... class=\"...signings_item...\"> on the card.\r\n *   2. <... class=\"...psm-signing-item...\"> on the card.\r\n *   3. data-psm-is-signing=\"1\" on the card.\r\n *   4. data-product-type=\"Autograph Signings\" / \"Autograph Signing\" /\r\n *      \"Signings\" / \"Signing\" on the card (case-insensitive).\r\n *   5. The card's visible product title (.product-title, .thumbnail .name,\r\n *      h3, h4, or .product-info) contains \"autograph signing\"\r\n *      (case-insensitive). Catches cards whose product.type is \"Product\"\r\n *      but whose title is \"Joe Smith Autograph Signing\".\r\n */\r\n(function () {\r\n  var ALLOWED_PATHS = [\r\n    '/collections/new-releases',\r\n    '/collections/baseball-1',\r\n    '/collections/basketball-1',\r\n    '/collections/football-1',\r\n    '/collections/all',\r\n  ];\r\n\r\n  var TITLE_PATTERN = /autograph\\s+signing/i;\r\n  var TYPE_VALUES = [\r\n    'autograph signings',\r\n    'autograph signing',\r\n    'signings',\r\n    'signing',\r\n  ];\r\n  var MAX_BACKFILL_PAGES = 8;\r\n  var backfillPending = false;\r\n\r\n  function pathIsAllowed() {\r\n    var p = (window.location.pathname || '').toLowerCase();\r\n    for (var i = 0; i < ALLOWED_PATHS.length; i++) {\r\n      if (p === ALLOWED_PATHS[i] || p.indexOf(ALLOWED_PATHS[i] + '/') === 0) {\r\n        return true;\r\n      }\r\n    }\r\n    return false;\r\n  }\r\n\r\n  /** Selectors that identify a product card we may need to inspect/remove. */\r\n  var CARD_SELECTOR = [\r\n    '.thumbnail',\r\n    '.product-list--collection > div',\r\n    '[data-load-more--grid-item]',\r\n    '[data-psm-filter-product]',\r\n    '.signings_item',\r\n    '.psm-signing-item',\r\n    '[data-psm-is-signing=\"1\"]',\r\n  ].join(',');\r\n\r\n  /** Resolve the closest \"card\" container starting from a node. */\r\n  function closestCard(node) {\r\n    if (!node || node.nodeType !== 1) return null;\r\n    if (node.matches && node.matches(CARD_SELECTOR)) return node;\r\n    if (node.closest) return node.closest(CARD_SELECTOR);\r\n    return null;\r\n  }\r\n\r\n  function getCardTitle(card) {\r\n    if (!card) return '';\r\n    var sel = [\r\n      '.product-title',\r\n      '.product-info .product-title',\r\n      '.thumbnail .name',\r\n      '.product-info a',\r\n      '.product-info',\r\n      'h3', 'h4',\r\n      'a[title]',\r\n    ];\r\n    for (var i = 0; i < sel.length; i++) {\r\n      var el = card.querySelector(sel[i]);\r\n      if (!el) continue;\r\n      var t = (el.getAttribute && el.getAttribute('title')) || el.textContent || '';\r\n      t = String(t || '').trim();\r\n      if (t) return t;\r\n    }\r\n    return String(card.textContent || '').trim();\r\n  }\r\n\r\n  function isSigningCard(card) {\r\n    if (!card || card.nodeType !== 1) return false;\r\n\r\n    if (\r\n      card.classList &&\r\n      (card.classList.contains('signings_item') ||\r\n        card.classList.contains('psm-signing-item'))\r\n    ) {\r\n      return true;\r\n    }\r\n\r\n    if (\r\n      card.getAttribute &&\r\n      card.getAttribute('data-psm-is-signing') === '1'\r\n    ) {\r\n      return true;\r\n    }\r\n\r\n    var pType = '';\r\n    if (card.getAttribute) {\r\n      pType = (card.getAttribute('data-product-type') || '').toLowerCase().trim();\r\n    }\r\n    if (pType && TYPE_VALUES.indexOf(pType) !== -1) return true;\r\n\r\n    var nested = card.querySelector(\r\n      '[data-product-type], [data-psm-is-signing=\"1\"], .signings_item, .psm-signing-item'\r\n    );\r\n    if (nested) {\r\n      if (\r\n        nested.classList &&\r\n        (nested.classList.contains('signings_item') ||\r\n          nested.classList.contains('psm-signing-item'))\r\n      ) {\r\n        return true;\r\n      }\r\n      if (nested.getAttribute('data-psm-is-signing') === '1') return true;\r\n      var nType = (nested.getAttribute('data-product-type') || '')\r\n        .toLowerCase()\r\n        .trim();\r\n      if (nType && TYPE_VALUES.indexOf(nType) !== -1) return true;\r\n    }\r\n\r\n    var title = getCardTitle(card);\r\n    if (title && TITLE_PATTERN.test(title)) return true;\r\n\r\n    return false;\r\n  }\r\n\r\n  /** Remove a single signing card from the DOM. Returns true if removed. */\r\n  function removeIfSigning(card) {\r\n    if (!isSigningCard(card)) return false;\r\n    try {\r\n      card.parentNode && card.parentNode.removeChild(card);\r\n    } catch (e) {\r\n      try {\r\n        card.style.display = 'none';\r\n        card.setAttribute('aria-hidden', 'true');\r\n      } catch (e2) {}\r\n    }\r\n    return true;\r\n  }\r\n\r\n  function getMainRoot(root) {\r\n    var scope = root && root.querySelector ? root : document;\r\n    return (\r\n      scope.querySelector('[data-psm-ajax-region=\"main\"]') ||\r\n      scope.querySelector('[data-psm-sport-hub-root=\"1\"] [data-psm-ajax-region=\"main\"]') ||\r\n      scope.querySelector('.psm-store-collection') ||\r\n      document\r\n    );\r\n  }\r\n\r\n  function getGrid(root) {\r\n    var main = getMainRoot(root);\r\n    return (\r\n      main.querySelector('[data-psm-sport-hub-grid]') ||\r\n      main.querySelector('.product-list--collection') ||\r\n      main.querySelector('.product-list') ||\r\n      null\r\n    );\r\n  }\r\n\r\n  function isVisible(el) {\r\n    if (!el || el.nodeType !== 1) return false;\r\n    if (el.hidden || el.getAttribute('aria-hidden') === 'true') return false;\r\n    if (el.closest('[hidden], [aria-hidden=\"true\"]')) return false;\r\n    var style = window.getComputedStyle ? window.getComputedStyle(el) : null;\r\n    if (style && (style.display === 'none' || style.visibility === 'hidden')) return false;\r\n    return !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length);\r\n  }\r\n\r\n  function visibleProductCount(root) {\r\n    var grid = getGrid(root);\r\n    if (!grid) return 0;\r\n    var cards = grid.querySelectorAll('.thumbnail, [data-load-more--grid-item], [data-psm-filter-product]');\r\n    var count = 0;\r\n    for (var i = 0; i < cards.length; i++) {\r\n      if (isVisible(cards[i]) && !isSigningCard(cards[i])) count++;\r\n    }\r\n    return count;\r\n  }\r\n\r\n  function getLoadMoreLink(root) {\r\n    var main = getMainRoot(root);\r\n    return main.querySelector(\r\n      '[data-psm-sport-hub-load-more][href], a[data-load-more][href], .js-load-more a[href], .load-more a[href], .pagination a[href]'\r\n    );\r\n  }\r\n\r\n  function scheduleBackfillIfEmpty(root) {\r\n    if (!pathIsAllowed() || backfillPending) return;\r\n    var scope = root && root.querySelector ? root : document;\r\n    var main = getMainRoot(scope);\r\n    var link = getLoadMoreLink(scope);\r\n    if (!main || !link) return;\r\n    if (visibleProductCount(scope) > 0) return;\r\n\r\n    var count = parseInt(main.getAttribute('data-psm-signing-backfill-count') || '0', 10);\r\n    if (count >= MAX_BACKFILL_PAGES) return;\r\n\r\n    main.setAttribute('data-psm-signing-backfill-count', String(count + 1));\r\n    backfillPending = true;\r\n\r\n    window.setTimeout(function () {\r\n      backfillPending = false;\r\n      if (!pathIsAllowed()) return;\r\n      if (visibleProductCount(scope) > 0) return;\r\n\r\n      var nextLink = getLoadMoreLink(scope);\r\n      if (!nextLink) return;\r\n\r\n      if (window.console && console.info) {\r\n        console.info('[psm-hide-signings] first page was all signings; loading next product page');\r\n      }\r\n\r\n      try {\r\n        nextLink.dispatchEvent(\r\n          new MouseEvent('click', {\r\n            bubbles: true,\r\n            cancelable: true,\r\n            view: window,\r\n          })\r\n        );\r\n      } catch (e) {\r\n        nextLink.click();\r\n      }\r\n    }, 350);\r\n  }\r\n\r\n  /** Scan a root element (or document) and remove all signing cards inside it. */\r\n  function scrub(root) {\r\n    if (!pathIsAllowed()) return 0;\r\n    var scope = root && root.querySelectorAll ? root : document;\r\n    var cards = scope.querySelectorAll(CARD_SELECTOR);\r\n    var removed = 0;\r\n    for (var i = 0; i < cards.length; i++) {\r\n      if (removeIfSigning(cards[i])) removed++;\r\n    }\r\n    scheduleBackfillIfEmpty(scope);\r\n    return removed;\r\n  }\r\n\r\n  /** Public entry point \u2014 exposed for other scripts to call after AJAX merges. */\r\n  window.psmHideSignings = function (root) {\r\n    return scrub(root || document);\r\n  };\r\n\r\n  function runInitial() {\r\n    var n = scrub(document);\r\n    if (n > 0 && window.console && console.info) {\r\n      console.info('[psm-hide-signings] removed', n, 'signing card(s) on initial load');\r\n    }\r\n  }\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', runInitial, { once: true });\r\n  } else {\r\n    runInitial();\r\n  }\r\n\r\n  /**\r\n   * MutationObserver catches anything that arrives later via AJAX (sport hub\r\n   * fetches, \"load more\", facet changes). Debounced to avoid thrashing.\r\n   */\r\n  var pending = false;\r\n  function schedule() {\r\n    if (pending || !pathIsAllowed()) return;\r\n    pending = true;\r\n    var doIt = function () {\r\n      pending = false;\r\n      scrub(document);\r\n    };\r\n    if (window.requestAnimationFrame) {\r\n      window.requestAnimationFrame(doIt);\r\n    } else {\r\n      setTimeout(doIt, 16);\r\n    }\r\n  }\r\n\r\n  function startObserver() {\r\n    if (!pathIsAllowed() || !window.MutationObserver) return;\r\n    var target = document.body;\r\n    if (!target) return;\r\n    var obs = new MutationObserver(function (mutations) {\r\n      for (var i = 0; i < mutations.length; i++) {\r\n        var m = mutations[i];\r\n        if (m.addedNodes && m.addedNodes.length) {\r\n          for (var j = 0; j < m.addedNodes.length; j++) {\r\n            var node = m.addedNodes[j];\r\n            if (node && node.nodeType === 1) {\r\n              schedule();\r\n              return;\r\n            }\r\n          }\r\n        }\r\n      }\r\n    });\r\n    obs.observe(target, { childList: true, subtree: true });\r\n  }\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', startObserver, { once: true });\r\n  } else {\r\n    startObserver();\r\n  }\r\n})();\r\n"],
  "mappings": "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",
  "names": []
}
