{"version":3,"file":"cookiehub-controller-CT-Oywqb.js","sources":["../../../app/frontend/src/shared/js/controllers/cookiehub-controller.js"],"sourcesContent":["import { Controller } from '@hotwired/stimulus';\nimport { useMeta } from 'stimulus-use';\n\nexport default class extends Controller {\n static metaNames = ['trengoId', 'trengoOffsetY', 'botDetected'];\n static values = { id: String, trengoContactData: Object };\n\n trengoEvents = [\n { name: 'modal:open', action: (e) => this.hideTrengo(e) },\n { name: 'modal:close', action: (e) => this.showTrengo(e) },\n { name: 'overlay:open', action: (e) => this.hideTrengo(e) },\n { name: 'overlay:close', action: (e) => this.showTrengo(e) },\n { name: 'profile-menu:opened', action: (e) => this.hideTrengo(e) },\n { name: 'profile-menu:closed', action: (e) => this.showTrengo(e) },\n { name: 'mobile-nav:opened', action: (e) => this.hideTrengo(e) },\n { name: 'mobile-nav:closed', action: (e) => this.showTrengo(e) }\n ];\n\n connect() {\n this.trengoLoaded = false;\n this.showTrengo = this.showTrengo.bind(this);\n this.hideTrengo = this.hideTrengo.bind(this);\n\n useMeta(this);\n\n if (!this.botDetectedMeta) this.loadCookieHub();\n }\n\n loadCookieHub() {\n this.appendCookieHubScript();\n }\n\n appendCookieHubScript() {\n const cookiehubId = this.idValue;\n const environment = import.meta.env.VITE_APP_ENV;\n const chSrc =\n environment === 'production'\n ? `https://cookiehub.net/c2/${cookiehubId}.js`\n : `https://dash.cookiehub.com/dev/${cookiehubId}.js`;\n\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.async = true;\n script.src = chSrc;\n document.head.appendChild(script);\n\n script.onload = () => {\n this.initializeCookieHub();\n };\n\n script.onerror = (err) => {\n console.error('Error loading the CookieHub script:', err);\n };\n }\n\n initializeCookieHub() {\n function gtag() {\n window.dataLayer.push(arguments);\n }\n gtag('consent', 'default', {\n security_storage: 'granted',\n functionality_storage: 'denied',\n personalization_storage: 'denied',\n ad_storage: 'denied',\n ad_user_data: 'denied',\n ad_personalization: 'denied',\n analytics_storage: 'denied',\n wait_for_update: 500\n });\n let cpm = {\n onInitialise: (status) => {\n if (window.cookiehub.hasAnswered()) {\n this.setupTrengo();\n }\n },\n onStatusChange: () => {\n if (window.cookiehub.hasAnswered()) {\n this.setupTrengo();\n }\n }\n };\n window.cookiehub.load(cpm);\n }\n\n setupTrengo() {\n if (this.trengoLoaded) return;\n window.Trengo = window.Trengo || {};\n Object.assign(window.Trengo, {\n key: this.trengoIdMeta,\n render: false,\n contact_data: this.trengoContactDataValue,\n extraOffsetY: this.calculateOffsetY()\n });\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.async = true;\n script.src = 'https://static.widget.trengo.eu/embed.js';\n document.head.appendChild(script);\n window.Trengo.on_ready = function () {\n window.Trengo.Api.Widget.render();\n };\n\n this.trengoLoaded = true;\n this.registerEvents();\n }\n\n registerEvents() {\n this.trengoEvents.forEach(({ name, action }) => {\n document.addEventListener(name, action);\n });\n }\n\n unregisterEvents() {\n this.trengoEvents.forEach(({ name, action }) => {\n document.removeEventListener(name, action);\n });\n }\n\n calculateOffsetY() {\n return this.trengoOffsetYMeta || '6px';\n }\n\n disconnect() {\n this.removeScript();\n }\n\n removeScript() {\n const script = document.querySelector(\n `script[src^=\"https://cookiehub.net/c2/\"], script[src^=\"https://dash.cookiehub.com/dev/\"]`\n );\n if (script) {\n script.parentNode.removeChild(script);\n }\n }\n\n openChat(e) {\n e.preventDefault();\n if (window.Trengo) window.Trengo.Api.Widget.open('chat');\n }\n\n closeChat(e) {\n e.preventDefault();\n if (window.Trengo) window.Trengo.Api.Widget.close();\n }\n\n showTrengo(e) {\n if (!this.openElements) return;\n\n this.trengoElements.forEach((el) => {\n if (this.openElements.includes(el)) el.style.display = '';\n });\n }\n\n hideTrengo(e) {\n const elements = this.trengoElements;\n this.openElements = elements.filter((el) => el.style.display !== 'none');\n this.openElements.forEach((el) => (el.style.display = 'none'));\n if (window.Trengo.Api?.widget) window.Trengo.Api.Widget.close();\n }\n\n get trengoElements() {\n const selectors = [\n '.TrengoWidgetLauncher__iframe',\n '.TrengoWidgetBadge__iframe'\n ];\n return selectors\n .map((selector) => document.querySelector(selector))\n .filter((el) => el !== null);\n }\n}\n"],"names":["CookiehubController","Controller","__publicField","useMeta","chSrc","script","err","gtag","cpm","status","name","action","el","elements","_a","selector"],"mappings":"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"}