{
  "version": 3,
  "sources": ["../../../home/jenkins/agent/workspace/Application/frontend-deployment/client/public/consent-inspector.js"],
  "sourcesContent": ["/* eslint-disable no-undef */\nconst ConsentInspector = (function () {\n  const CONSENT_COOKIE = 'consent';\n  const REQUIRED_COOKIES = [CONSENT_COOKIE, '_optisure_session'];\n\n  function getConsent() {\n    const existingConsent = document.cookie\n      .split('; ')\n      .find((row) => row.startsWith(`${CONSENT_COOKIE}=`));\n    if (existingConsent) {\n      try {\n        return JSON.parse(existingConsent.split('=')[1]);\n      } catch {\n        /* eslint-disable-next-line no-empty */\n      }\n    }\n  }\n\n  async function latestConsentVersion() {\n    const response = await window.fetch('/api/consent/version', {\n      headers: {\n        Accept: 'application/vnd.clark-v5+json',\n        'Content-Type': 'application/json',\n      },\n    });\n    if (response.ok) {\n      const json = await response.json();\n      if (json && json.data && json.data.attributes) {\n        return json.data.attributes.version;\n      }\n    }\n  }\n\n  function categoryExist(categoryIdent, consent) {\n    return consent.categories.some(\n      (category) => category.identifier === categoryIdent,\n    );\n  }\n\n  function categoryEnabled(categoryIdent, consent) {\n    const category = consent.categories.find(\n      (category) => category.identifier === categoryIdent,\n    );\n    return category && category.enabled;\n  }\n\n  function isEligible(categoryIdent, consent) {\n    return (\n      categoryExist(categoryIdent, consent) &&\n      categoryEnabled(categoryIdent, consent)\n    );\n  }\n\n  function getDomainWithSubdomains() {\n    return window.location.hostname;\n  }\n\n  function getDomain() {\n    return getDomainWithSubdomains().split('.').slice(-2).join('.');\n  }\n\n  function cookieNamesStartsWith(cookieName) {\n    return document.cookie\n      .split(';')\n      .map((name) => name.trim())\n      .filter((name) => name.startsWith(cookieName))\n      .map((name) => name.split('=')[0]);\n  }\n\n  function filteredCookieNames(cookieNamePrefix) {\n    return cookieNamesStartsWith(cookieNamePrefix).filter(\n      (name) => !REQUIRED_COOKIES.includes(name.split('=')[0]),\n    );\n  }\n\n  function cleanUpCookies(cookiePrefixes) {\n    const anyUTCDateInPast = 'Thu, 01 Jan 1970 00:00:00 UTC';\n    cookiePrefixes.forEach((prefix) => {\n      filteredCookieNames(prefix).forEach((name) => {\n        document.cookie = `${name}=; expires=${anyUTCDateInPast}; path=/; domain=.${getDomain()}`;\n        document.cookie = `${name}=; expires=${anyUTCDateInPast}; path=/; domain=.${getDomainWithSubdomains()}`;\n      });\n    });\n  }\n\n  function sessionStorageItemsStartsWith(prefix) {\n    const storageItems = [];\n    for (let i = 0; i < sessionStorage.length; i++) {\n      const item = sessionStorage.key(i);\n      if (item.startsWith(prefix)) {\n        storageItems[i] = item;\n      }\n    }\n    return storageItems;\n  }\n\n  function localStorageItemsStartsWith(prefix) {\n    const storageItems = [];\n    for (let i = 0; i < localStorage.length; i++) {\n      const item = localStorage.key(i);\n      if (item.startsWith(prefix)) {\n        storageItems[i] = item;\n      }\n    }\n    return storageItems;\n  }\n\n  function cleanUpStorages(storageItemsPrefixes) {\n    storageItemsPrefixes.forEach((prefix) => {\n      localStorageItemsStartsWith(prefix).forEach((storageItem) => {\n        localStorage.removeItem(storageItem);\n      });\n      sessionStorageItemsStartsWith(prefix).forEach((storageItem) => {\n        sessionStorage.removeItem(storageItem);\n      });\n    });\n  }\n\n  return {\n    async featureEnabled() {\n      const version = await latestConsentVersion();\n      return version !== undefined;\n    },\n\n    executePerConsent(\n      categoryIdent,\n      cookiePrefixes,\n      storageItems,\n      onConsentCallback,\n    ) {\n      const consent = getConsent();\n      const featureActive = true;\n      if (featureActive) {\n        if (consent !== undefined && isEligible(categoryIdent, consent)) {\n          onConsentCallback();\n        } else {\n          cleanUpCookies(cookiePrefixes);\n          cleanUpStorages(storageItems);\n        }\n      } else {\n        onConsentCallback();\n      }\n    },\n  };\n})();\n\nwindow.ConsentInspector = ConsentInspector;\n"],
  "mappings": "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",
  "names": ["CONSENT_COOKIE", "REQUIRED_COOKIES", "getConsent", "existingConsent", "row", "e", "latestConsentVersion", "response", "json", "categoryExist", "categoryIdent", "consent", "category", "categoryEnabled", "isEligible", "getDomainWithSubdomains", "getDomain", "cookieNamesStartsWith", "cookieName", "name", "filteredCookieNames", "cookieNamePrefix", "cleanUpCookies", "cookiePrefixes", "anyUTCDateInPast", "prefix", "sessionStorageItemsStartsWith", "storageItems", "i", "item", "localStorageItemsStartsWith", "cleanUpStorages", "storageItemsPrefixes", "storageItem", "onConsentCallback"]
}
