{"version":3,"file":"cookie-banner.47832e57.js","sources":["../../src/components/cookie-banner-category.ts","../../node_modules/cookies-ts/lib/main.esm.js","../../src/components/cookie-banner.ts"],"sourcesContent":["import { defineComponent } from \"vue\";\n\nexport default defineComponent({\n template: `\n
\n `,\n props: {\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n modelValue: {\n type: Boolean,\n required: true,\n },\n },\n emits: [\"update:modelValue\"],\n data() {\n return {\n expanded: false,\n };\n },\n methods: {\n toggleConsentCategory() {\n this.expanded = !this.expanded;\n },\n onInput(event: Event) {\n const target = event.target as HTMLInputElement;\n this.$emit(\"update:modelValue\", target.checked);\n },\n },\n});\n","class main {\r\n constructor() {\r\n this.DEFAULT_CONFIG = {\r\n expires: \"1d\",\r\n path: \"; path=/\"\r\n };\r\n }\r\n config(option) {\r\n if (option.expires) {\r\n this.DEFAULT_CONFIG.expires = option.expires;\r\n }\r\n if (option.path === \"\") {\r\n this.DEFAULT_CONFIG.path = \"\";\r\n }\r\n else {\r\n this.DEFAULT_CONFIG.path = \"; path=\" + option.path;\r\n }\r\n }\r\n get(key) {\r\n let value = decodeURIComponent(document.cookie.replace(new RegExp(\"(?:(?:^|.*;)\\\\s*\" + encodeURIComponent(key).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\"), \"$1\")) || null;\r\n if (value && value.startsWith(\"{\") && value.endsWith(\"}\")) {\r\n try {\r\n value = JSON.parse(value);\r\n }\r\n catch (e) {\r\n return value;\r\n }\r\n }\r\n return value;\r\n }\r\n set(key, value, option = {}) {\r\n if (!key) {\r\n throw new Error(\"cookie name is not find in first argument\");\r\n }\r\n else if (/^(?:expires|max\\-age|path|domain|secure)$/i.test(key)) {\r\n throw new Error(\"cookie key name illegality ,Cannot be set to ['expires','max-age','path','domain','secure']\\tcurrent key name: \" + key);\r\n }\r\n // support json object\r\n if (value && value.constructor === Object) {\r\n value = JSON.stringify(value);\r\n }\r\n let _expires = \"; max-age=86400\"; // temp value, default expire time for 1 day\r\n let expires = option.expires || this.DEFAULT_CONFIG.expires;\r\n if (expires) {\r\n switch (expires.constructor) {\r\n case Number:\r\n if (expires === Infinity || expires === -1)\r\n _expires = \"; expires=Fri, 31 Dec 9999 23:59:59 GMT\";\r\n else\r\n _expires = \"; max-age=\" + expires;\r\n break;\r\n case String:\r\n if (/^(?:\\d{1,}(y|m|d|h|min|s))$/i.test(expires)) {\r\n // get capture number group\r\n let _expireTime = expires.replace(/^(\\d{1,})(?:y|m|d|h|min|s)$/i, \"$1\");\r\n // get capture type group , to lower case\r\n switch (expires.replace(/^(?:\\d{1,})(y|m|d|h|min|s)$/i, \"$1\").toLowerCase()) {\r\n // Frequency sorting\r\n case 'm':\r\n _expires = \"; max-age=\" + +_expireTime * 2592000;\r\n break; // 60 * 60 * 24 * 30\r\n case 'd':\r\n _expires = \"; max-age=\" + +_expireTime * 86400;\r\n break; // 60 * 60 * 24\r\n case 'h':\r\n _expires = \"; max-age=\" + +_expireTime * 3600;\r\n break; // 60 * 60\r\n case 'min':\r\n _expires = \"; max-age=\" + +_expireTime * 60;\r\n break; // 60\r\n case 's':\r\n _expires = \"; max-age=\" + _expireTime;\r\n break;\r\n case 'y':\r\n _expires = \"; max-age=\" + +_expireTime * 31104000;\r\n break; // 60 * 60 * 24 * 30 * 12\r\n default:\r\n }\r\n }\r\n else {\r\n _expires = \"; expires=\" + expires;\r\n }\r\n break;\r\n case Date:\r\n _expires = \"; expires=\" + expires.toUTCString();\r\n break;\r\n }\r\n }\r\n document.cookie = encodeURIComponent(key) + \"=\" + encodeURIComponent(value) + _expires + (option.domain ? \"; domain=\" + option.domain : \"\") + (option.path ? \"; path=\" + option.path : this.DEFAULT_CONFIG.path) + (option.secure ? \"; secure\" : \"\");\r\n return this;\r\n }\r\n remove(key, option = {}) {\r\n if (!key || !this.isKey(key)) {\r\n return false;\r\n }\r\n document.cookie = encodeURIComponent(key) + \"=; expires=Thu, 01 Jan 1970 00:00:00 GMT\" + (option.domain ? \"; domain=\" + option.domain : \"\") + (option.path ? \"; path=\" + option.path : this.DEFAULT_CONFIG.path);\r\n return this;\r\n }\r\n isKey(key) {\r\n return (new RegExp(\"(?:^|;\\\\s*)\" + encodeURIComponent(key).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\")).test(document.cookie);\r\n }\r\n keys() {\r\n if (!document.cookie)\r\n return [];\r\n var _keys = document.cookie.replace(/((?:^|\\s*;)[^\\=]+)(?=;|$)|^\\s*|\\s*(?:\\=[^;]*)?(?:\\1|$)/g, \"\").split(/\\s*(?:\\=[^;]*)?;\\s*/);\r\n for (var _index = 0; _index < _keys.length; _index++) {\r\n _keys[_index] = decodeURIComponent(_keys[_index]);\r\n }\r\n return _keys;\r\n }\r\n}\n\nexport default main;\n","import { defineComponent } from \"vue\";\nimport { VueAutoHeight } from \"@/core/vue-auto-height.component\";\nimport CookieBannerCategory from \"@/components/cookie-banner-category\";\nimport Cookies from \"cookies-ts\";\nimport type { ConsentCookieType } from \"@/services/cookies/ConsentCookieType\";\nimport CookieService from \"@/services/cookies/CookieService\";\n\nexport default defineComponent({\n template: `\n \n `,\n components: {\n CookieBannerCategory,\n VueAutoHeight,\n },\n data() {\n return {\n isVisible: false,\n areSettingsVisible: false,\n consentCategories: {\n necessary: {\n value: true,\n disabled: true,\n expanded: false,\n },\n analytics: {\n value: true,\n disabled: false,\n expanded: false,\n },\n targeting: {\n value: false,\n disabled: false,\n expanded: false,\n },\n ads: {\n value: false,\n disabled: false,\n expanded: false,\n },\n },\n cookies: new Cookies(),\n };\n },\n mounted() {\n this.loadFromCookie();\n },\n methods: {\n loadFromCookie() {\n const cookieRaw = this.$store.direct.getters.cookieService.getCookieOne(\"consent\");\n if (!cookieRaw) {\n this.isVisible = true;\n return;\n }\n const cookieParsed: ConsentCookieType = JSON.parse(cookieRaw);\n for (const category of cookieParsed.level ?? []) {\n if (category === \"necessary\") {\n this.consentCategories.necessary.value = true;\n }\n if (category === \"analytics\") {\n this.consentCategories.analytics.value = true;\n }\n if (category === \"targeting\") {\n this.consentCategories.targeting.value = true;\n }\n if (category === \"ads\") {\n this.consentCategories.ads.value = true;\n }\n }\n this.updateGtag();\n },\n acceptAllAndClose() {\n this.consentCategories.necessary.value = true;\n this.consentCategories.analytics.value = true;\n this.consentCategories.targeting.value = true;\n this.consentCategories.ads.value = true;\n this.saveToCookieAndClose();\n },\n toggleSettings() {\n this.areSettingsVisible = !this.areSettingsVisible;\n },\n saveToCookieAndClose() {\n const cookieService = new CookieService();\n const levelArr = [];\n if (this.consentCategories.necessary.value) {\n levelArr.push(\"necessary\");\n }\n if (this.consentCategories.analytics.value) {\n levelArr.push(\"analytics\");\n }\n if (this.consentCategories.targeting.value) {\n levelArr.push(\"targeting\");\n }\n if (this.consentCategories.ads.value) {\n levelArr.push(\"ads\");\n }\n cookieService.setCookie(\n \"consent\",\n JSON.stringify({\n data: null,\n level: levelArr,\n revision: 0,\n rfc_cookie: false,\n }),\n levelArr.length !== 4 ? 1 : 365 // if not complete consent, store the cookie for 1 day, otherwise an year\n );\n this.isVisible = false;\n this.updateGtag();\n },\n updateGtag() {\n if (typeof window !== \"undefined\" && typeof window.gtag === \"function\") {\n const consentData: { [key: string]: string } = {};\n\n if (this.consentCategories.analytics.value) {\n consentData.analytics_storage = \"granted\";\n }\n\n if (this.consentCategories.ads.value) {\n consentData.ad_user_data = \"granted\";\n consentData.ad_personalization = \"granted\";\n consentData.ad_storage = \"granted\";\n }\n\n if (Object.keys(consentData).length > 0) {\n // Tell Google Services that the Consent was updated\n window.gtag(\"consent\", \"update\", consentData);\n // Send GTM event, so we can init the tracking scripts waiting for this event\n window.dataLayer.push({\n event: \"consent_update\",\n category: \"consent\",\n label: \"updated\",\n });\n }\n }\n },\n },\n});\n"],"names":["CookieBannerCategory","defineComponent","event","target","main","option","key","value","_expires","expires","_expireTime","_keys","_index","Cookies","cookieBanner","VueAutoHeight","cookieRaw","cookieParsed","category","_a","cookieService","CookieService","levelArr","consentData"],"mappings":"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"}