{
  "version": 3,
  "sources": ["/cdn/shop/t/65/assets/cookie-popup.js?cv=1.22.0"],
  "sourcesContent": ["// Cookie consent popup show/hide logic, split out of theme.js.\n//\n// This used to live at the tail end of theme.js (a 300KB+ file loaded with\n// defer). Under a slow/throttled connection theme.js can take many seconds\n// just to finish downloading, and since this logic was the very last thing\n// in the file, the popup - a compliance-relevant UI element that should\n// appear as soon as possible - didn't show up until the entire file had\n// downloaded, parsed and executed. Measured on a collection page: theme.js\n// finished at ~16.5s and the popup became visible ~220ms later, at which\n// point it was also the largest content the browser had painted, hijacking\n// the page's Largest Contentful Paint metric.\n//\n// Loaded via its own <script defer> tag placed immediately after the\n// cookie_popup snippet's render call in layout/theme.liquid, ahead of\n// theme.js's own <script> tag - deferred scripts execute in document order,\n// so this always runs first regardless of theme.js's size.\n//\n// setCookie/getCookie/cleanUrlButKeepAttribution are intentionally\n// duplicated from theme.js rather than shared: theme.js still needs its own\n// copies for the newsletter popup, and this file needs to stand completely\n// independent of theme.js's load time to do its job.\n(function () {\n  function setCookie(name, value, days) {\n    var expires = '';\n    if (days) {\n      var date = new Date();\n      date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n      expires = '; expires=' + date.toUTCString();\n    }\n    document.cookie = name + '=' + (value || '') + expires + '; path=/';\n  }\n\n  function getCookie(name) {\n    var value = '; ' + document.cookie;\n    var parts = value.split('; ' + name + '=');\n    if (parts.length === 2) return parts.pop().split(';').shift();\n  }\n\n  function shouldPreserveAttributionParams() {\n    try {\n      var params = new URLSearchParams(window.location.search);\n      var keys = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'gclid', 'fbclid', 'msclkid', 'ttclid', 'wbraid', 'gbraid'];\n      return keys.some(function (k) {\n        return params.has(k);\n      });\n    } catch (e) {\n      return false;\n    }\n  }\n\n  function cleanUrlButKeepAttribution(removeKeys) {\n    if (!window.history || !window.history.replaceState) return;\n    if (shouldPreserveAttributionParams()) return;\n    try {\n      var url = new URL(window.location.href);\n      if (removeKeys && removeKeys.length) {\n        removeKeys.forEach(function (k) {\n          url.searchParams.delete(k);\n        });\n      }\n      var next = url.pathname + (url.searchParams.toString() ? '?' + url.searchParams.toString() : '') + (url.hash || '');\n      window.history.replaceState(null, null, next);\n    } catch (e) {\n      window.history.replaceState(null, null, window.location.pathname);\n    }\n  }\n\n  var cookie_popup = document.querySelector('.cookie_popup');\n  if (!cookie_popup) return;\n  var cookie_popup_wrapper = document.querySelector('.cookie_popup_wrapper');\n  var isSmilePro = /\\/products\\/smile-pro-ergonomic-chair\\/?$/.test(window.location.pathname);\n\n  function hideCookiePopup() {\n    // Move focus out before hiding, so aria-hidden never lands on an\n    // ancestor of the still-focused close button (invalid per WAI-ARIA).\n    if (cookie_popup.contains(document.activeElement)) {\n      document.activeElement.blur();\n    }\n    cookie_popup_wrapper.classList.remove('show');\n    cookie_popup.setAttribute('aria-hidden', 'true');\n  }\n\n  function acceptCookiePopup() {\n    setCookie('accept_use_policy', 'true', 365);\n    hideCookiePopup();\n\n    function updateShopifyConsent() {\n      if (!window.Shopify || typeof window.Shopify.loadFeatures !== 'function') return;\n      window.Shopify.loadFeatures(\n        [\n          {\n            name: 'consent-tracking-api',\n            version: '0.1',\n            onLoad: function () {\n              window.Shopify.customerPrivacy.setTrackingConsent({\n                analytics: true,\n                marketing: true,\n              });\n            },\n          },\n        ],\n        function (error) {\n          if (error) {\n            // Rescue error\n          }\n        }\n      );\n    }\n\n    if (window.Shopify && typeof window.Shopify.loadFeatures === 'function') {\n      updateShopifyConsent();\n    } else {\n      window.addEventListener('load', updateShopifyConsent, { once: true });\n    }\n  }\n\n  document.addEventListener('click', function (e) {\n    var el = e.target;\n    if (el.classList.contains('modal_close_btn') || el.closest('.modal_close_btn')) {\n      if (!el.classList.contains('modal_close_btn')) {\n        el = el.closest('.modal_close_btn');\n      }\n      if (el.closest('.cookie_popup_wrapper')) {\n        hideCookiePopup();\n        cleanUrlButKeepAttribution([]);\n      }\n    }\n  });\n\n  document.addEventListener('click', function (e) {\n    var el = e.target;\n    if (el.classList.contains('accept_cookie_popup') || el.closest('.accept_cookie_popup')) {\n      if (!el.classList.contains('accept_cookie_popup')) {\n        el = el.closest('.accept_cookie_popup ');\n      }\n      acceptCookiePopup();\n    }\n  });\n\n  function showCookiePopup() {\n    if (window.location.href.indexOf('challenge') < 0) {\n      cookie_popup_wrapper.classList.add('show');\n      cookie_popup.setAttribute('aria-hidden', 'false');\n    }\n  }\n\n  // On mobile Smile Pro pages, follow Shopify's region-specific banner setting.\n  // A page load or dismissal must never be recorded as visitor consent.\n  if (isSmilePro && window.matchMedia('(max-width: 749px)').matches) {\n    function showMobileBannerIfRequired() {\n      if (!window.Shopify || typeof window.Shopify.loadFeatures !== 'function') {\n        showCookiePopup();\n        return;\n      }\n      window.Shopify.loadFeatures(\n        [{ name: 'consent-tracking-api', version: '0.1' }],\n        function (error) {\n          var privacy = window.Shopify.customerPrivacy;\n          if (error || !privacy || typeof privacy.shouldShowBanner !== 'function') {\n            showCookiePopup();\n          } else if (privacy.shouldShowBanner()) {\n            showCookiePopup();\n          }\n        }\n      );\n    }\n    if (window.Shopify && typeof window.Shopify.loadFeatures === 'function') {\n      showMobileBannerIfRequired();\n    } else {\n      window.addEventListener('load', showMobileBannerIfRequired, { once: true });\n    }\n  } else if (!getCookie('accept_use_policy')) {\n    showCookiePopup();\n  }\n})();\n"],
  "mappings": "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",
  "names": ["showMobileBannerIfRequired"]
}
