{
  "version": 3,
  "sources": ["/cdn/shop/t/23/assets/pu-mobile-submenu-scroll.js?puv=202606160250"],
  "sourcesContent": ["(function () {\n  window.__puMobileSubmenuScrollLoaded = true;\n  if (window.__puMobileSubmenuPositionFixLoaded) return;\n  window.__puMobileSubmenuPositionFixLoaded = true;\n\n  var mobileQuery = window.matchMedia('(max-width: 767px)');\n  var lastScrollY = window.pageYOffset || 0;\n  var submenuTop = null;\n  var ticking = false;\n\n  function getMenus() {\n    return Array.prototype.slice.call(document.querySelectorAll(\n      '#shopify-section-collection-template .pu-top-category-menu, #shopify-section-collection-template .pu-detailing-menu:not(.pu-top-category-menu)'\n    ));\n  }\n\n  function prepareMenus() {\n    var menus = getMenus();\n    menus.forEach(function (menu) {\n      menu.classList.add('pu-mobile-scroll-submenu');\n      if (submenuTop === null) {\n        submenuTop = menu.getBoundingClientRect().top + (window.pageYOffset || 0);\n      }\n    });\n    return menus;\n  }\n\n  function clearMenuStyles(menu) {\n    [\n      'position',\n      'top',\n      'left',\n      'right',\n      'zIndex',\n      'margin',\n      'padding',\n      'background',\n      'boxShadow',\n      'transform',\n      'opacity',\n      'pointerEvents',\n      'transition',\n      'willChange'\n    ].forEach(function (prop) {\n      menu.style[prop] = '';\n    });\n  }\n\n  function resetMobileState() {\n    document.body.classList.remove('pu-mobile-scroll-up', 'pu-mobile-scroll-down', 'pu-mobile-submenu-past');\n    getMenus().forEach(function (menu) {\n      menu.classList.remove('pu-mobile-scroll-submenu');\n      clearMenuStyles(menu);\n    });\n    submenuTop = null;\n  }\n\n  function mobileMenuTop(menu) {\n    var searchSelectors = [\n      '.form-content.search-box',\n      '.search-box',\n      '.header-search',\n      'form[action=\"/search\"]',\n      'input[name=\"q\"]'\n    ];\n    var searchNodes = Array.prototype.slice.call(document.querySelectorAll(searchSelectors.join(',')));\n    for (var s = 0; s < searchNodes.length; s += 1) {\n      var searchNode = searchNodes[s];\n      if (!searchNode || searchNode === menu || searchNode.contains(menu) || menu.contains(searchNode)) continue;\n      var searchStyle = window.getComputedStyle(searchNode);\n      var searchRect = searchNode.getBoundingClientRect();\n      if (searchStyle.display === 'none' || searchStyle.visibility === 'hidden') continue;\n      if (searchRect.width < 1 || searchRect.height < 1 || searchRect.bottom <= 0) continue;\n      if (searchRect.top > window.innerHeight * 0.45) continue;\n      return Math.ceil(searchRect.bottom) + 6;\n    }\n\n    var top = 58;\n    var selectors = [\n      'header',\n      '.header',\n      '.site-header',\n      '.header-mobile',\n      '.header-middle',\n      '.header-bottom',\n      '.header-search',\n      '.search-bar',\n      'form[action=\"/search\"]'\n    ];\n    Array.prototype.slice.call(document.querySelectorAll(selectors.join(','))).forEach(function (node) {\n      if (!node || node === menu || node.contains(menu) || menu.contains(node)) return;\n      var style = window.getComputedStyle(node);\n      var rect = node.getBoundingClientRect();\n      if (style.display === 'none' || style.visibility === 'hidden') return;\n      if (rect.width < 1 || rect.height < 1 || rect.bottom <= 0) return;\n      if (rect.top > window.innerHeight * 0.45) return;\n      top = Math.max(top, Math.ceil(rect.bottom));\n    });\n    return top;\n  }\n\n  function applyMobileMenuStyle(menus, pastMenu) {\n    menus.forEach(function (menu) {\n      menu.style.transition = 'transform 180ms ease, opacity 180ms ease, box-shadow 180ms ease';\n      menu.style.willChange = 'transform';\n\n      if (!pastMenu) {\n        clearMenuStyles(menu);\n        menu.classList.add('pu-mobile-scroll-submenu');\n        return;\n      }\n\n      menu.style.position = 'fixed';\n      menu.style.setProperty('--pu-mobile-submenu-top', mobileMenuTop(menu) + 'px');\n      menu.style.top = 'var(--pu-mobile-submenu-top, 154px)';\n      menu.style.left = '0';\n      menu.style.right = '0';\n      menu.style.zIndex = '45';\n      menu.style.margin = '0';\n      menu.style.padding = '8px 15px 0';\n      menu.style.background = 'rgba(255, 255, 255, 0.98)';\n      menu.style.boxShadow = '0 8px 18px rgba(20, 30, 45, 0.08)';\n      menu.style.transform = 'translateY(0)';\n      menu.style.opacity = '1';\n      menu.style.pointerEvents = 'auto';\n    });\n  }\n\n  function updateSubmenuState() {\n    ticking = false;\n    if (!mobileQuery.matches) {\n      resetMobileState();\n      return;\n    }\n\n    var menus = prepareMenus();\n    if (!menus.length || submenuTop === null) return;\n\n    var currentY = window.pageYOffset || 0;\n    var delta = currentY - lastScrollY;\n    var pastMenu = currentY > submenuTop + 72;\n    document.body.classList.toggle('pu-mobile-submenu-past', pastMenu);\n\n    if (Math.abs(delta) > 6) {\n      document.body.classList.toggle('pu-mobile-scroll-down', delta > 0);\n      document.body.classList.toggle('pu-mobile-scroll-up', delta < 0);\n      lastScrollY = currentY;\n    }\n\n    applyMobileMenuStyle(menus, pastMenu);\n  }\n\n  function requestUpdate() {\n    if (ticking) return;\n    ticking = true;\n    window.requestAnimationFrame(updateSubmenuState);\n  }\n\n  function initScrollSubmenu() {\n    if (mobileQuery.matches) {\n      prepareMenus();\n      updateSubmenuState();\n    } else {\n      resetMobileState();\n    }\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initScrollSubmenu);\n  } else {\n    initScrollSubmenu();\n  }\n\n  window.addEventListener('scroll', requestUpdate, { passive: true });\n  window.addEventListener('resize', initScrollSubmenu);\n  window.addEventListener('load', initScrollSubmenu);\n  new MutationObserver(function () {\n    window.setTimeout(initScrollSubmenu, 50);\n  }).observe(document.body, { childList: true, subtree: true });\n})();\n\n(function () {\n  var path = window.location && window.location.pathname ? window.location.pathname : '';\n  if (!/\\/collections\\/detailing-supplies(?:\\/|$)/.test(path)) return;\n  if (!window.matchMedia || !window.matchMedia('(max-width: 767px)').matches) return;\n\n  var excludedHandles = {\n    'meguiars-g16402-air-refresher-2-oz': true,\n    'meguiars-g16602-whole-car-air-re-fresher-odor-eliminator-mist-new-car-scent-2-fluid-ounces': true,\n    'meguiars-g181302-whole-air-re-fresher-black-chrome-scent': true,\n    'meguiars-g250608-air-re-fresher-odor-fighting-spray-new-car-scent-8-oz': true\n  };\n\n  function productCard(link) {\n    return link.closest('.boost-pfs-filter-product-item, .product-item, .col-xs-6, .col-sm-6, .col-md-3, .col-md-4, .col-md-6, .col-md-12') || link;\n  }\n\n  function cleanDetailingCards() {\n    document.querySelectorAll('a[href*=\"/products/\"]').forEach(function (link) {\n      var match = (link.getAttribute('href') || '').match(/\\/products\\/([^/?#]+)/);\n      if (!match || !excludedHandles[match[1]]) return;\n      var card = productCard(link);\n      if (card && card.parentNode) card.parentNode.removeChild(card);\n    });\n  }\n\n  cleanDetailingCards();\n  document.addEventListener('DOMContentLoaded', cleanDetailingCards);\n  window.addEventListener('load', cleanDetailingCards);\n  [400, 900, 1800, 3200, 5200, 7600].forEach(function (delay) {\n    window.setTimeout(cleanDetailingCards, delay);\n  });\n  new MutationObserver(function () {\n    window.setTimeout(cleanDetailingCards, 50);\n  }).observe(document.documentElement, { childList: true, subtree: true });\n})();\n"],
  "mappings": "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",
  "names": []
}
