{"version":3,"sources":["webpack://@verndale/toolkit/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://@verndale/toolkit/./src/js/modules/cookie-banner.js"],"names":[],"mappings":"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","file":"scripts/507.bundle.js","sourcesContent":["/*! js-cookie v3.0.1 | 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 (key, 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 key = encodeURIComponent(key)\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 key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\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 foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\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 default api;\n","import { Component } from '@verndale/core';\nimport Cookies from 'js-cookie';\n\nclass CookieBanner extends Component {\n setupDefaults() {\n this.dom = {\n initialContent: this.el.querySelector('.cookie-banner__content--initial'),\n settingsContent: this.el.querySelector('.cookie-banner__content--settings'),\n toggleButton: this.el.querySelector('.cookie-banner__toggle-button'),\n agreeButton: this.el.querySelectorAll('.cookie-banner__agree-button'),\n settingsButton: this.el.querySelector('.cookie-banner__settings-button'),\n form: this.el.querySelector('.cookie-banner__form'),\n checkboxes: this.el.querySelectorAll('.cookie-banner__input'),\n };\n\n this.formCookies = this.el.dataset.formCookies.split(',');\n\n this.checkClosedCookie();\n this.checkPreferences();\n }\n\n addListeners() {\n this.dom.toggleButton.addEventListener('click', this.handleToggle.bind(this));\n this.dom.agreeButton.forEach(element => element.addEventListener('click', this.handleAgree.bind(this)));\n this.dom.settingsButton.addEventListener('click', this.handleSettings.bind(this));\n this.dom.form.addEventListener('submit', this.handleSubmit.bind(this));\n }\n\n checkPreferences() {\n this.formCookies.forEach(cookie => {\n if (Cookies.get(cookie)) {\n this.dom.form.querySelector(`[name=\"${cookie}\"]`).checked = true;\n }\n })\n }\n\n checkClosedCookie() {\n if (!Cookies.get('closed')) {\n this.showContent(this.dom.initialContent);\n } else {\n this.isAccepted = true;\n }\n }\n\n showContent(el) {\n el.classList.remove('cookie-banner__content--hidden');\n }\n\n hideContent(el) {\n el.classList.add('cookie-banner__content--hidden');\n }\n\n toggleContent(el) {\n el.classList.toggle('cookie-banner__content--hidden');\n }\n\n handleToggle() {\n if (this.isSettingsOpen) {\n this.hideContent(this.dom.settingsContent)\n this.isSettingsOpen = false;\n return;\n }\n\n if (this.isAccepted) {\n this.toggleContent(this.dom.settingsContent);\n } else {\n this.toggleContent(this.dom.initialContent)\n }\n }\n\n handleAgree() {\n this.isAccepted = true;\n Cookies.set('closed', '1', { expires: 365 });\n this.formCookies.forEach(cookie => Cookies.set(cookie, '1', { expires: 365 }));\n this.hideContent(this.dom.initialContent);\n this.hideContent(this.dom.settingsContent);\n }\n\n handleSettings() {\n this.isSettingsOpen = true;\n this.hideContent(this.dom.initialContent);\n this.showContent(this.dom.settingsContent);\n }\n\n handleSubmit(e) {\n e.preventDefault();\n this.dom.checkboxes.forEach((checkbox) => {\n if (this.formCookies.includes(checkbox.name)) {\n if (checkbox.checked) {\n Cookies.set(checkbox.name, '1', { expires: 365 });\n } else {\n Cookies.remove(checkbox.name);\n }\n }\n });\n\n Cookies.set('closed', '1', { expires: 365 });\n this.isAccepted = true;\n this.isSettingsOpen = false;\n\n this.toggleContent(this.dom.settingsContent);\n }\n}\n\nexport default CookieBanner;\n"],"sourceRoot":""}