{"version":3,"file":"settings.bundle.mjs","sources":["../../../../../../node_modules/js-cookie/dist/js.cookie.mjs","../../../../src/digitalmarketplace/scripts/analytics/data-layer.types.ts","../../../../src/digitalmarketplace/scripts/analytics/data-layer.ts","../../../../src/digitalmarketplace/scripts/cookies/manage.ts","../../../../src/digitalmarketplace/scripts/cookies/settings.ts"],"sourcesContent":["/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n    for (var key in source) {\n      target[key] = source[key];\n    }\n  }\n  return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n  read: function (value) {\n    if (value[0] === '\"') {\n      value = value.slice(1, -1);\n    }\n    return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n  },\n  write: function (value) {\n    return encodeURIComponent(value).replace(\n      /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n      decodeURIComponent\n    )\n  }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n  function set (name, value, attributes) {\n    if (typeof document === 'undefined') {\n      return\n    }\n\n    attributes = assign({}, defaultAttributes, attributes);\n\n    if (typeof attributes.expires === 'number') {\n      attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n    }\n    if (attributes.expires) {\n      attributes.expires = attributes.expires.toUTCString();\n    }\n\n    name = encodeURIComponent(name)\n      .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n      .replace(/[()]/g, escape);\n\n    var stringifiedAttributes = '';\n    for (var attributeName in attributes) {\n      if (!attributes[attributeName]) {\n        continue\n      }\n\n      stringifiedAttributes += '; ' + attributeName;\n\n      if (attributes[attributeName] === true) {\n        continue\n      }\n\n      // Considers RFC 6265 section 5.2:\n      // ...\n      // 3.  If the remaining unparsed-attributes contains a %x3B (\";\")\n      //     character:\n      // Consume the characters of the unparsed-attributes up to,\n      // not including, the first %x3B (\";\") character.\n      // ...\n      stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n    }\n\n    return (document.cookie =\n      name + '=' + converter.write(value, name) + stringifiedAttributes)\n  }\n\n  function get (name) {\n    if (typeof document === 'undefined' || (arguments.length && !name)) {\n      return\n    }\n\n    // To prevent the for loop in the first place assign an empty array\n    // in case there are no cookies at all.\n    var cookies = document.cookie ? document.cookie.split('; ') : [];\n    var jar = {};\n    for (var i = 0; i < cookies.length; i++) {\n      var parts = cookies[i].split('=');\n      var value = parts.slice(1).join('=');\n\n      try {\n        var found = decodeURIComponent(parts[0]);\n        jar[found] = converter.read(value, found);\n\n        if (name === found) {\n          break\n        }\n      } catch (e) {}\n    }\n\n    return name ? jar[name] : jar\n  }\n\n  return Object.create(\n    {\n      set,\n      get,\n      remove: function (name, attributes) {\n        set(\n          name,\n          '',\n          assign({}, attributes, {\n            expires: -1\n          })\n        );\n      },\n      withAttributes: function (attributes) {\n        return init(this.converter, assign({}, this.attributes, attributes))\n      },\n      withConverter: function (converter) {\n        return init(assign({}, this.converter, converter), this.attributes)\n      }\n    },\n    {\n      attributes: { value: Object.freeze(defaultAttributes) },\n      converter: { value: Object.freeze(converter) }\n    }\n  )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","\nenum GrantType {\n  GRANTED = 'granted',\n  NOT_GRANTED = 'not granted'\n}\n\nexport { GrantType }","import { CookiePreferences } from '../cookies/manage.types'\nimport { GrantType } from './data-layer.types'\n\nconst getGrantedText = (state: boolean) => state ? GrantType.GRANTED : GrantType.NOT_GRANTED\n\nconst updateDataLayer = (cookiePreferences: CookiePreferences) => {\n  window.dataLayer.push({\n    event: 'gtm_consent_update',\n    usage_consent: getGrantedText(cookiePreferences.usage),\n    glassbox_consent: getGrantedText(cookiePreferences.glassbox),\n    marketing_consent: GrantType.NOT_GRANTED\n  })\n}\n\nexport { updateDataLayer }","import Cookies from 'js-cookie'\nimport { CookiePreferences, CookieUpdateOption } from './manage.types'\nimport { updateDataLayer } from '../analytics/data-layer'\n\nconst cookieUpdateOptions: CookieUpdateOption[] = [\n  {\n    cookieName: 'usage',\n    cookiePrefixes: ['_ga', '_gi']\n  },\n  {\n    cookieName: 'glassbox',\n    cookiePrefixes: ['_cls']\n  }\n]\n\nconst DOMAINS = [\n  '.marketplace.team',\n  '.digitalmarketplace.service.gov.uk',\n  'www.applytosupply.digitalmarketplace.service.gov.uk'\n]\n\n// When not in production we want to delete cookies in localhost too\nconst getDomains = () => {\n  if (window.location.hostname === 'localhost') {\n    return DOMAINS.concat(['localhost'])\n  }\n\n  return DOMAINS\n}\n\nconst getCookiePreferences = (): CookiePreferences => {\n  const defaultCookieSettings = '{\"usage\":false,\"glassbox\":false}'\n\n  return JSON.parse(Cookies.get('cookie_preferences_dmp') ?? defaultCookieSettings)\n}\n\nconst setCookiePreferences = (usage: boolean) => {\n  const cookiePreferences: CookiePreferences = getCookiePreferences()\n\n  cookiePreferences.usage = usage\n  cookiePreferences.settings_viewed = true\n\n  Cookies.set('cookie_preferences_dmp', JSON.stringify(cookiePreferences), { expires: 365 })\n\n  updateDataLayer(cookiePreferences)\n  removeUnwantedCookies()\n}\n\nconst removeUnwantedCookies = (): void => {\n  const cookieList: string[] = Object.keys(Cookies.get())\n  const cookiesToRemove: string[] = ['digitalmarketplace_cookie_settings_viewed', 'digitalmarketplace_google_analytics_enabled', 'digitalmarketplace_cookie_options_v1', 'dm_cookies_policy']\n  const cookiePreferences: CookiePreferences = getCookiePreferences()\n  const cookiePrefixes: string[] = []\n\n  cookieUpdateOptions.forEach((cookieUpdateOption) => {\n    if (!cookiePreferences[cookieUpdateOption.cookieName]) cookiePrefixes.push(...cookieUpdateOption.cookiePrefixes)\n  })\n\n  for (let i = 0; i < cookieList.length; i++) {\n    const cookieName = cookieList[i]\n\n    if (cookiePrefixes.some((cookiePrefix) => cookieName.startsWith(cookiePrefix))) cookiesToRemove.push(cookieName)\n  }\n\n  getDomains().forEach((domain) => {\n    cookiesToRemove.forEach((cookieName) => { Cookies.remove(cookieName, { path: '/', domain: domain }) })\n  })\n}\n\nexport {\n  getCookiePreferences,\n  setCookiePreferences,\n  removeUnwantedCookies\n}","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\nimport { getCookiePreferences, setCookiePreferences } from './manage'\n\nclass CookieSettings implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-cookie-settings'\n  $moudle: JQuery<HTMLElement>\n  $radioButtonAnalyticsYes: JQuery<HTMLInputElement>\n  $radioButtonAnalyticsNo: JQuery<HTMLInputElement>\n  $confirmationMessage: JQuery<HTMLElement>\n  $previousPageLink: JQuery<HTMLElement>\n  $errorSummary: JQuery<HTMLElement>\n  $formGroup: JQuery<HTMLElement>\n  $warningMessage: JQuery<HTMLElement>\n  $cookieBanner: JQuery<HTMLElement>\n\n  constructor ($module: JQuery<HTMLElement>) {\n    this.$moudle = $module\n    this.$radioButtonAnalyticsYes = this.$moudle.find<HTMLInputElement>('input[name=cookies-analytics][value=On]')\n    this.$radioButtonAnalyticsNo = this.$moudle.find<HTMLInputElement>('input[name=cookies-analytics][value=Off]')\n    this.$confirmationMessage = $('#dm-cookie-settings-confirmation')\n    this.$previousPageLink = $('.dm-cookie-settings__prev-page')\n    this.$errorSummary = $('#dm-cookie-settings-error')\n    this.$formGroup = this.$moudle.find('.govuk-form-group')\n    this.$warningMessage = $('#dm-cookie-settings-warning')\n    this.$cookieBanner = $('.dm-cookie-banner')\n  }\n\n  init () {\n    this.$moudle.on('submit', (event) => {\n      this.submitSettingsForm(event)\n    })\n\n    // Ensure there aren't two forms for setting cookie preferences on the same page\n    this.hideCookieBanner()\n\n    this.setInitialFormValues()\n  }\n\n  setInitialFormValues () {\n    const currentCookiePreferences = getCookiePreferences()\n\n    if (!currentCookiePreferences.settings_viewed) return\n\n    this.hideWarningMessage()\n\n    // Populate the form with the existing choice\n    let $radioButton: JQuery<HTMLInputElement>\n\n    if (currentCookiePreferences.usage) {\n      $radioButton = this.$radioButtonAnalyticsYes\n    } else {\n      $radioButton = this.$radioButtonAnalyticsNo\n    }\n\n    $radioButton.prop('checked', true)\n  }\n\n  submitSettingsForm (event: JQuery.SubmitEvent) {\n    event.preventDefault()\n\n    let usage\n\n    for (const formDataItem of this.$moudle.serializeArray()) {\n      if (formDataItem.name === 'cookies-analytics') {\n        usage = formDataItem.value === 'On'\n\n        break\n      }\n    }\n\n    // the cookie choice must be set when form is submitted\n    if (usage === undefined) {\n      this.showError()\n      return\n    }\n\n    // Set the analytics cookie preferences\n    // If 'Off' option not checked, this function will also delete any existing Google Analytics cookies\n    setCookiePreferences(usage)\n\n    this.hideWarningMessage()\n    this.hideError()\n    this.showConfirmationMessage()\n  }\n\n  showConfirmationMessage () {\n    const referrer = CookieSettings.getReferrerLink()\n\n    document.body.scrollTop = document.documentElement.scrollTop = 0\n\n    if (referrer && referrer !== document.location.pathname) {\n      this.$previousPageLink.attr('href', referrer)\n      this.$previousPageLink.css('display', 'block')\n    } else {\n      this.$previousPageLink.css('display', 'none')\n    }\n\n    this.$confirmationMessage.css('display', 'block')\n  }\n\n  showError () {\n    if (this.$errorSummary.length) {\n      this.$errorSummary.css('display', 'block')\n      document.body.scrollTop = document.documentElement.scrollTop = 0\n    }\n    this.showErrorMessage()\n  }\n\n  showErrorMessage () {\n    this.$formGroup.addClass('govuk-form-group--error')\n\n    const $errorMessageSpan = $(document.createElement('p'))\n    $errorMessageSpan.attr('id', 'dm-cookie-settings-error-message')\n    $errorMessageSpan.addClass('govuk-error-message')\n    $errorMessageSpan.html('<span class=\"govuk-visually-hidden\">Error:</span> Select yes to accept analytics cookies')\n\n    $errorMessageSpan.insertBefore('#cookie-settings-1, .govuk-radios--inline')\n  }\n\n  hideError () {\n    this.$errorSummary.css('display', 'none')\n    this.hideErrorMessage()\n  }\n\n  hideErrorMessage () {\n    const $errorMessage = this.$moudle.find('#dm-cookie-settings-error-message')\n    \n    $errorMessage.css('display', 'none')\n    this.$formGroup.removeClass('govuk-form-group--error')\n  }\n\n  hideWarningMessage () {\n    this.$warningMessage.css('display', 'none')\n  }\n\n  hideCookieBanner () {\n    this.$cookieBanner.css('display', 'none')\n  }\n\n  static getReferrerLink () {\n    return document.referrer ? new URL(document.referrer).pathname : false\n  }\n}\n\nexport { CookieSettings }\n"],"names":["assign","target","i","arguments","length","source","key","defaultConverter","read","value","slice","replace","decodeURIComponent","write","encodeURIComponent","init","converter","defaultAttributes","set","name","attributes","document","expires","Date","now","toUTCString","escape","stringifiedAttributes","attributeName","split","cookie","get","cookies","jar","parts","join","found","e","Object","create","remove","withAttributes","withConverter","freeze","api","path","Cookies"],"mappings":"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","x_google_ignoreList":[0]}