{"version":3,"sources":["app.js"],"names":["PriceTable","id","checked","arguments","length","undefined","_classCallCheck","this","_defineProperty","component","document","getElementById","querySelector","labels","querySelectorAll","input","addEventListener","event","updateState","target","bind","forEach","label","unchecked","add","KeyFeatures","classList","images","details","node","current","updateContent","updateImage","removeAttribute","imageId","image","remove","NavMobile","button","panel","toggle","body","CookieBanner","cookie","getCookie","initCookieBanner","window","dataLayer","showCookieBanner","submitAll","preventDefault","setCookie","push","hideCookieBanner","edit","tabs","tab","submit","days","date","expires","Date","getTime","toUTCString","name","value","nameEQ","split","ca","i","charAt","c","substring"],"mappings":"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","file":"app.js","sourcesContent":["class PriceTable {\r\n\r\n id;\r\n component;\r\n input;\r\n labels;\r\n checked;\r\n\r\n constructor(id, checked = false) {\r\n this.id = id;\r\n this.checked = checked;\r\n this.component = document.getElementById(this.id);\r\n this.input = document.querySelector('.js-input');\r\n this.labels = document.querySelectorAll('.js-label')\r\n\r\n this.input.addEventListener('change', function (event) {\r\n this.updateState(event.target.checked);\r\n }.bind(this))\r\n }\r\n\r\n updateState(checked) {\r\n this.checked = checked;\r\n\r\n this.labels.forEach(function (label) {\r\n let checked = label.querySelector('.js-checked');\r\n let unchecked = label.querySelector('.js-unchecked');\r\n\r\n if (this.checked) {\r\n checked.classList.remove('is-hidden');\r\n unchecked.classList.add('is-hidden');\r\n } else {\r\n checked.classList.add('is-hidden');\r\n unchecked.classList.remove('is-hidden');\r\n }\r\n }.bind(this))\r\n }\r\n\r\n}\r\n\r\nclass KeyFeatures {\r\n\r\n id;\r\n component;\r\n details;\r\n images;\r\n\r\n constructor(id) {\r\n this.id = id;\r\n this.component = document.getElementById(this.id);\r\n this.details = this.component.querySelectorAll('.js-details');\r\n this.images = this.component.querySelectorAll('.js-image');\r\n\r\n this.details.forEach(function (node) {\r\n node.addEventListener('click', function (event) {\r\n this.updateState(node)\r\n }.bind(this))\r\n }.bind(this))\r\n }\r\n\r\n updateState(current) {\r\n this.updateContent(current);\r\n this.updateImage(current);\r\n }\r\n\r\n updateContent(current) {\r\n this.details.forEach(function (node) {\r\n if (node != current) {\r\n node.removeAttribute('open');\r\n }\r\n })\r\n }\r\n\r\n updateImage(current) {\r\n let imageId = current.id.replace('details', 'image');\r\n let image = this.component.querySelector('#' + imageId);\r\n\r\n image.classList.remove('is-hidden');\r\n\r\n this.images.forEach(function(node) {\r\n if(node != image) {\r\n node.classList.add('is-hidden');\r\n }\r\n })\r\n }\r\n}\r\n\r\nclass NavMobile {\r\n\r\n id;\r\n component;\r\n button;\r\n panel;\r\n body;\r\n\r\n constructor(id) {\r\n this.id = id;\r\n this.component = document.getElementById(this.id);\r\n this.button = this.component.querySelector('.js-button');\r\n this.panel = this.component.querySelector('.js-panel');\r\n this.body = document.querySelector('body');\r\n\r\n this.button.addEventListener('click', function (event) {\r\n event.preventDefault();\r\n this.updateState(this.panel)\r\n }.bind(this))\r\n }\r\n\r\n updateState(panel) {\r\n panel.classList.toggle('none');\r\n panel.classList.toggle('flex');\r\n this.body.classList.toggle('is-fixed');\r\n }\r\n}\r\n\r\nclass CookieBanner {\r\n\r\n id;\r\n component;\r\n submit;\r\n submitAll;\r\n edit;\r\n input;\r\n cookie;\r\n tabs;\r\n\r\n constructor(id) {\r\n this.id = id;\r\n this.component = document.getElementById(this.id);\r\n this.submit = this.component.querySelector('.js-submit');\r\n this.submitAll = this.component.querySelector('.js-submit-all');\r\n this.edit = this.component.querySelector('.js-edit');\r\n this.input = this.component.querySelector('.js-input');\r\n this.tabs = this.component.querySelectorAll('.js-tab');\r\n\r\n document.addEventListener('DOMContentLoaded', function(event) { \r\n this.cookie = this.getCookie('doriCookie');\r\n \r\n this.initCookieBanner();\r\n\r\n if(this.cookie != null) {\r\n window.dataLayer.push({\r\n 'event': 'updateCookie',\r\n 'cookie': this.cookie\r\n });\r\n }\r\n\r\n if(this.cookie == null) {\r\n this.showCookieBanner();\r\n }\r\n }.bind(this));\r\n\r\n this.submitAll.addEventListener('click', function(event) {\r\n event.preventDefault();\r\n this.cookie = 1;\r\n this.setCookie('doriCookie', 1, 90);\r\n window.dataLayer.push({\r\n 'event': 'updateCookie',\r\n 'cookie': 1\r\n });\r\n this.hideCookieBanner();\r\n }.bind(this));\r\n\r\n this.edit.addEventListener('click', function(event) {\r\n event.preventDefault();\r\n\r\n this.tabs.forEach(function(tab) {\r\n tab.classList.toggle('is-hidden');\r\n });\r\n }.bind(this));\r\n\r\n this.submit.addEventListener('click', function(event) {\r\n event.preventDefault();\r\n this.cookie = (this.input.checked ? 1 : 0);\r\n this.setCookie('doriCookie', this.cookie, 90);\r\n window.dataLayer.push({\r\n 'event': 'updateCookie',\r\n 'cookie': (this.input.checked ? 1 : 0)\r\n });\r\n this.hideCookieBanner();\r\n }.bind(this));\r\n }\r\n\r\n initCookieBanner() {\r\n if(this.cookie == 1) {\r\n this.input.checked = true;\r\n }\r\n }\r\n\r\n showCookieBanner() {\r\n this.component.classList.remove('is-hidden');\r\n }\r\n\r\n hideCookieBanner() {\r\n this.component.classList.add('is-hidden');\r\n }\r\n\r\n setCookie(name, value, days) {\r\n var expires = \"\";\r\n if (days) {\r\n var date = new Date();\r\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\r\n expires = \"; expires=\" + date.toUTCString();\r\n }\r\n document.cookie = name + \"=\" + (value || \"\") + expires + \"; secure; samesite=strict; path=/\";\r\n }\r\n \r\n getCookie(name) {\r\n var nameEQ = name + \"=\";\r\n var ca = document.cookie.split(';');\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n while (c.charAt(0) == ' ') c = c.substring(1, c.length);\r\n if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\r\n }\r\n return null;\r\n }\r\n}\r\n\r\n"]}