consentric 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +225 -0
- package/dist/index.cjs +1019 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +157 -0
- package/dist/index.d.ts +157 -0
- package/dist/index.js +1011 -0
- package/dist/index.js.map +1 -0
- package/package.json +68 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,1011 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useState, useRef, useMemo, useEffect } from 'react';
|
|
3
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
// src/CookieConsent.tsx
|
|
6
|
+
|
|
7
|
+
// src/cookies.ts
|
|
8
|
+
var VERSION = 2;
|
|
9
|
+
var gtag = function() {
|
|
10
|
+
const w = window;
|
|
11
|
+
w.dataLayer = w.dataLayer || [];
|
|
12
|
+
w.dataLayer.push(arguments);
|
|
13
|
+
};
|
|
14
|
+
function applyConsent(ch) {
|
|
15
|
+
gtag("consent", "update", {
|
|
16
|
+
functionality_storage: ch.preferences ? "granted" : "denied",
|
|
17
|
+
personalization_storage: ch.preferences ? "granted" : "denied",
|
|
18
|
+
analytics_storage: ch.statistics ? "granted" : "denied",
|
|
19
|
+
ad_storage: ch.marketing ? "granted" : "denied",
|
|
20
|
+
ad_user_data: ch.marketing ? "granted" : "denied",
|
|
21
|
+
ad_personalization: ch.marketing ? "granted" : "denied"
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
function readCookie(name) {
|
|
25
|
+
try {
|
|
26
|
+
const m = document.cookie.match(new RegExp("(?:^|;\\s*)" + name + "=([^;]+)"));
|
|
27
|
+
if (!m) return null;
|
|
28
|
+
const c = JSON.parse(decodeURIComponent(m[1]));
|
|
29
|
+
return c && c.v === VERSION && c.choices ? c.choices : null;
|
|
30
|
+
} catch {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function writeCookie(name, ch) {
|
|
35
|
+
const val = encodeURIComponent(JSON.stringify({ v: VERSION, ts: Date.now(), choices: ch }));
|
|
36
|
+
const secure = typeof location !== "undefined" && location.protocol === "https:" ? "; Secure" : "";
|
|
37
|
+
document.cookie = name + "=" + val + "; path=/; max-age=31536000; SameSite=Lax" + secure;
|
|
38
|
+
}
|
|
39
|
+
function cookieNameMatcher(pattern) {
|
|
40
|
+
const escaped = pattern.replace(/[.*+?^${}()|[\]\\]/g, "\\$&").replace(/\\\*/g, ".*");
|
|
41
|
+
return new RegExp("^" + escaped + "$");
|
|
42
|
+
}
|
|
43
|
+
function domainCandidates() {
|
|
44
|
+
const out = [""];
|
|
45
|
+
const host = location.hostname;
|
|
46
|
+
if (!host || host === "localhost" || /^[\d.]+$/.test(host)) return out;
|
|
47
|
+
const parts = host.split(".");
|
|
48
|
+
for (let i = 0; i <= parts.length - 2; i++) {
|
|
49
|
+
const d = parts.slice(i).join(".");
|
|
50
|
+
out.push(d, "." + d);
|
|
51
|
+
}
|
|
52
|
+
return out;
|
|
53
|
+
}
|
|
54
|
+
function pathCandidates() {
|
|
55
|
+
const out = ["/"];
|
|
56
|
+
let acc = "";
|
|
57
|
+
for (const seg of location.pathname.split("/").filter(Boolean)) {
|
|
58
|
+
acc += "/" + seg;
|
|
59
|
+
out.push(acc);
|
|
60
|
+
}
|
|
61
|
+
return out;
|
|
62
|
+
}
|
|
63
|
+
function expireCookie(name) {
|
|
64
|
+
for (const path of pathCandidates()) {
|
|
65
|
+
for (const domain of domainCandidates()) {
|
|
66
|
+
document.cookie = name + "=; path=" + path + (domain ? "; domain=" + domain : "") + "; expires=Thu, 01 Jan 1970 00:00:00 GMT; Max-Age=0";
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function clearDeniedCookies(cats, choices, consentCookie) {
|
|
71
|
+
if (typeof document === "undefined") return;
|
|
72
|
+
const present = document.cookie.split(";").map((c) => c.split("=")[0].trim()).filter(Boolean);
|
|
73
|
+
if (!present.length) return;
|
|
74
|
+
for (const cat of cats) {
|
|
75
|
+
if (cat.locked || choices[cat.id]) continue;
|
|
76
|
+
const matchers = cat.cookies.map((c) => cookieNameMatcher(c.name));
|
|
77
|
+
for (const name of present) {
|
|
78
|
+
if (name === consentCookie) continue;
|
|
79
|
+
if (matchers.some((re) => re.test(name))) expireCookie(name);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// src/locales/de.ts
|
|
85
|
+
var de = {
|
|
86
|
+
labels: {
|
|
87
|
+
tabConsent: "Einwilligung",
|
|
88
|
+
tabDetails: "Details",
|
|
89
|
+
tabAbout: "\xDCber Cookies",
|
|
90
|
+
heading: "Diese Website verwendet Cookies",
|
|
91
|
+
lead: "Wir verwenden Cookies, um diese Website zu betreiben und \u2013 wenn Sie zustimmen \u2013 um Zugriffe zu messen und f\xFCr Marketing. Nicht notwendige Cookies bleiben deaktiviert, bis Sie sich entscheiden.",
|
|
92
|
+
deny: "Ablehnen",
|
|
93
|
+
save: "Auswahl speichern",
|
|
94
|
+
allowAll: "Alle zulassen",
|
|
95
|
+
noCookies: "Keine Cookies in dieser Kategorie.",
|
|
96
|
+
aboutParagraphs: [
|
|
97
|
+
"Cookies sind kleine Textdateien, die Websites verwenden, um Ihr Nutzungserlebnis effizienter zu gestalten.",
|
|
98
|
+
"Das Gesetz erlaubt uns, Cookies zu speichern, die f\xFCr den Betrieb dieser Website unbedingt erforderlich sind. F\xFCr alles andere ben\xF6tigen wir Ihre Einwilligung \u2013 deshalb sehen Sie dieses Banner.",
|
|
99
|
+
"Sie k\xF6nnen Ihre Einwilligung jederzeit \xFCber die Cookie-Schaltfl\xE4che unten links auf dem Bildschirm \xE4ndern oder widerrufen."
|
|
100
|
+
],
|
|
101
|
+
operatedBy: "Betrieben von {company}. ",
|
|
102
|
+
readMore: "Mehr in unserer {privacy} und {cookie}.",
|
|
103
|
+
privacyLabel: "Datenschutzerkl\xE4rung",
|
|
104
|
+
cookieLabel: "Cookie-Richtlinie",
|
|
105
|
+
fabLabel: "Cookie-Einstellungen",
|
|
106
|
+
dialogLabel: "Cookie-Einwilligung"
|
|
107
|
+
},
|
|
108
|
+
categories: {
|
|
109
|
+
necessary: {
|
|
110
|
+
name: "Notwendig",
|
|
111
|
+
short: "Erforderlich, um die Website zu laden und Ihre Auswahl zu speichern.",
|
|
112
|
+
about: "Notwendige Cookies machen die Website nutzbar, indem sie grundlegende Funktionen wie das Speichern Ihrer Cookie-Auswahl erm\xF6glichen. Ohne sie kann die Website nicht richtig funktionieren."
|
|
113
|
+
},
|
|
114
|
+
preferences: {
|
|
115
|
+
name: "Pr\xE4ferenzen",
|
|
116
|
+
short: "Speichert Einstellungen wie Ihre Region.",
|
|
117
|
+
about: "Pr\xE4ferenz-Cookies erm\xF6glichen es der Website, sich Informationen zu merken, die ihr Verhalten oder Aussehen ver\xE4ndern, wie etwa Ihre Region."
|
|
118
|
+
},
|
|
119
|
+
statistics: {
|
|
120
|
+
name: "Statistiken",
|
|
121
|
+
short: "Anonyme Nutzungsstatistiken zur Verbesserung der Website.",
|
|
122
|
+
about: "Statistik-Cookies helfen uns zu verstehen, wie Besucher die Website nutzen, indem Informationen anonym erfasst werden (Google Analytics)."
|
|
123
|
+
},
|
|
124
|
+
marketing: {
|
|
125
|
+
name: "Marketing",
|
|
126
|
+
short: "Werbung und Kampagnenmessung.",
|
|
127
|
+
about: "Marketing-Cookies verfolgen Besucher \xFCber Websites hinweg, um relevante Anzeigen zu zeigen. Es werden keine gesetzt, sofern kein Marketing-Tag aktiviert ist."
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
cookies: {
|
|
131
|
+
selfProvider: "diese Website",
|
|
132
|
+
consentPurpose: "Speichert Ihre Cookie-Einwilligung.",
|
|
133
|
+
consentMeta: "HTTP \xB7 1 Jahr",
|
|
134
|
+
gaPurpose: "Unterscheidet Besucher, um die Websitenutzung zu messen.",
|
|
135
|
+
gaStatePurpose: "H\xE4lt den Analyse-Sitzungsstatus aufrecht.",
|
|
136
|
+
gaMeta: "HTTP \xB7 2 Jahre"
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
// src/locales/fr.ts
|
|
141
|
+
var fr = {
|
|
142
|
+
labels: {
|
|
143
|
+
tabConsent: "Consentement",
|
|
144
|
+
tabDetails: "D\xE9tails",
|
|
145
|
+
tabAbout: "\xC0 propos",
|
|
146
|
+
heading: "Ce site utilise des cookies",
|
|
147
|
+
lead: "Nous utilisons des cookies pour faire fonctionner ce site et, si vous l\u2019autorisez, pour mesurer l\u2019audience et \xE0 des fins marketing. Les cookies non essentiels restent d\xE9sactiv\xE9s jusqu\u2019\xE0 votre choix.",
|
|
148
|
+
deny: "Refuser",
|
|
149
|
+
save: "Enregistrer les choix",
|
|
150
|
+
allowAll: "Tout autoriser",
|
|
151
|
+
noCookies: "Aucun cookie dans cette cat\xE9gorie.",
|
|
152
|
+
aboutParagraphs: [
|
|
153
|
+
"Les cookies sont de petits fichiers texte que les sites web utilisent pour rendre votre exp\xE9rience plus efficace.",
|
|
154
|
+
"La loi nous autorise \xE0 stocker les cookies strictement n\xE9cessaires au fonctionnement de ce site. Pour tout le reste, nous avons besoin de votre autorisation, c\u2019est pourquoi vous voyez cette banni\xE8re.",
|
|
155
|
+
"Vous pouvez modifier ou retirer votre consentement \xE0 tout moment \xE0 l\u2019aide du bouton cookies en bas \xE0 gauche de l\u2019\xE9cran."
|
|
156
|
+
],
|
|
157
|
+
operatedBy: "Exploit\xE9 par {company}. ",
|
|
158
|
+
readMore: "En savoir plus dans notre {privacy} et notre {cookie}.",
|
|
159
|
+
privacyLabel: "politique de confidentialit\xE9",
|
|
160
|
+
cookieLabel: "politique relative aux cookies",
|
|
161
|
+
fabLabel: "Param\xE8tres des cookies",
|
|
162
|
+
dialogLabel: "Consentement aux cookies"
|
|
163
|
+
},
|
|
164
|
+
categories: {
|
|
165
|
+
necessary: {
|
|
166
|
+
name: "N\xE9cessaires",
|
|
167
|
+
short: "N\xE9cessaires pour charger le site et m\xE9moriser votre choix.",
|
|
168
|
+
about: "Les cookies n\xE9cessaires rendent le site utilisable en activant des fonctions de base comme la m\xE9morisation de votre choix de cookies. Le site ne peut pas fonctionner correctement sans eux."
|
|
169
|
+
},
|
|
170
|
+
preferences: {
|
|
171
|
+
name: "Pr\xE9f\xE9rences",
|
|
172
|
+
short: "M\xE9morise des r\xE9glages comme votre r\xE9gion.",
|
|
173
|
+
about: "Les cookies de pr\xE9f\xE9rences permettent au site de m\xE9moriser des informations qui modifient son comportement ou son apparence, comme votre r\xE9gion."
|
|
174
|
+
},
|
|
175
|
+
statistics: {
|
|
176
|
+
name: "Statistiques",
|
|
177
|
+
short: "Statistiques d\u2019utilisation anonymes pour am\xE9liorer le site.",
|
|
178
|
+
about: "Les cookies statistiques nous aident \xE0 comprendre comment les visiteurs utilisent le site en collectant des informations de mani\xE8re anonyme (Google Analytics)."
|
|
179
|
+
},
|
|
180
|
+
marketing: {
|
|
181
|
+
name: "Marketing",
|
|
182
|
+
short: "Publicit\xE9 et mesure des campagnes.",
|
|
183
|
+
about: "Les cookies marketing suivent les visiteurs \xE0 travers les sites pour afficher des publicit\xE9s pertinentes. Aucun n\u2019est d\xE9pos\xE9 sauf si une balise marketing est activ\xE9e."
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
cookies: {
|
|
187
|
+
selfProvider: "ce site",
|
|
188
|
+
consentPurpose: "Enregistre votre consentement aux cookies.",
|
|
189
|
+
consentMeta: "HTTP \xB7 1 an",
|
|
190
|
+
gaPurpose: "Distingue les visiteurs pour mesurer l\u2019utilisation du site.",
|
|
191
|
+
gaStatePurpose: "Maintient l\u2019\xE9tat de la session d\u2019analyse.",
|
|
192
|
+
gaMeta: "HTTP \xB7 2 ans"
|
|
193
|
+
}
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
// src/locales/es.ts
|
|
197
|
+
var es = {
|
|
198
|
+
labels: {
|
|
199
|
+
tabConsent: "Consentimiento",
|
|
200
|
+
tabDetails: "Detalles",
|
|
201
|
+
tabAbout: "Acerca de",
|
|
202
|
+
heading: "Este sitio web utiliza cookies",
|
|
203
|
+
lead: "Utilizamos cookies para hacer funcionar este sitio y, si lo permite, para medir el tr\xE1fico y con fines de marketing. Las cookies no esenciales permanecen desactivadas hasta que usted elija.",
|
|
204
|
+
deny: "Rechazar",
|
|
205
|
+
save: "Guardar elecci\xF3n",
|
|
206
|
+
allowAll: "Permitir todas",
|
|
207
|
+
noCookies: "No hay cookies en esta categor\xEDa.",
|
|
208
|
+
aboutParagraphs: [
|
|
209
|
+
"Las cookies son peque\xF1os archivos de texto que los sitios web utilizan para hacer su experiencia m\xE1s eficiente.",
|
|
210
|
+
"La ley nos permite almacenar cookies estrictamente necesarias para el funcionamiento de este sitio. Para todo lo dem\xE1s necesitamos su permiso, por eso ve este aviso.",
|
|
211
|
+
"Puede cambiar o retirar su consentimiento en cualquier momento mediante el bot\xF3n de cookies en la esquina inferior izquierda de la pantalla."
|
|
212
|
+
],
|
|
213
|
+
operatedBy: "Operado por {company}. ",
|
|
214
|
+
readMore: "M\xE1s informaci\xF3n en nuestra {privacy} y {cookie}.",
|
|
215
|
+
privacyLabel: "pol\xEDtica de privacidad",
|
|
216
|
+
cookieLabel: "pol\xEDtica de cookies",
|
|
217
|
+
fabLabel: "Configuraci\xF3n de cookies",
|
|
218
|
+
dialogLabel: "Consentimiento de cookies"
|
|
219
|
+
},
|
|
220
|
+
categories: {
|
|
221
|
+
necessary: {
|
|
222
|
+
name: "Necesarias",
|
|
223
|
+
short: "Necesarias para cargar el sitio y recordar su elecci\xF3n.",
|
|
224
|
+
about: "Las cookies necesarias hacen que el sitio sea utilizable al habilitar funciones b\xE1sicas como recordar su elecci\xF3n de cookies. El sitio no puede funcionar correctamente sin ellas."
|
|
225
|
+
},
|
|
226
|
+
preferences: {
|
|
227
|
+
name: "Preferencias",
|
|
228
|
+
short: "Recuerda ajustes como su regi\xF3n.",
|
|
229
|
+
about: "Las cookies de preferencias permiten que el sitio recuerde informaci\xF3n que cambia su comportamiento o aspecto, como su regi\xF3n."
|
|
230
|
+
},
|
|
231
|
+
statistics: {
|
|
232
|
+
name: "Estad\xEDsticas",
|
|
233
|
+
short: "Estad\xEDsticas de uso an\xF3nimas para mejorar el sitio.",
|
|
234
|
+
about: "Las cookies estad\xEDsticas nos ayudan a entender c\xF3mo los visitantes usan el sitio recopilando informaci\xF3n de forma an\xF3nima (Google Analytics)."
|
|
235
|
+
},
|
|
236
|
+
marketing: {
|
|
237
|
+
name: "Marketing",
|
|
238
|
+
short: "Publicidad y medici\xF3n de campa\xF1as.",
|
|
239
|
+
about: "Las cookies de marketing rastrean a los visitantes a trav\xE9s de los sitios para mostrar anuncios relevantes. No se establece ninguna a menos que se active una etiqueta de marketing."
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
cookies: {
|
|
243
|
+
selfProvider: "este sitio",
|
|
244
|
+
consentPurpose: "Almacena su consentimiento de cookies.",
|
|
245
|
+
consentMeta: "HTTP \xB7 1 a\xF1o",
|
|
246
|
+
gaPurpose: "Distingue a los visitantes para medir el uso del sitio.",
|
|
247
|
+
gaStatePurpose: "Mantiene el estado de la sesi\xF3n de anal\xEDtica.",
|
|
248
|
+
gaMeta: "HTTP \xB7 2 a\xF1os"
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
// src/locales/it.ts
|
|
253
|
+
var it = {
|
|
254
|
+
labels: {
|
|
255
|
+
tabConsent: "Consenso",
|
|
256
|
+
tabDetails: "Dettagli",
|
|
257
|
+
tabAbout: "Informazioni",
|
|
258
|
+
heading: "Questo sito web utilizza i cookie",
|
|
259
|
+
lead: "Utilizziamo i cookie per far funzionare questo sito e, se lo consenti, per misurare il traffico e per il marketing. I cookie non essenziali restano disattivati finch\xE9 non scegli.",
|
|
260
|
+
deny: "Rifiuta",
|
|
261
|
+
save: "Salva scelte",
|
|
262
|
+
allowAll: "Consenti tutti",
|
|
263
|
+
noCookies: "Nessun cookie in questa categoria.",
|
|
264
|
+
aboutParagraphs: [
|
|
265
|
+
"I cookie sono piccoli file di testo che i siti web utilizzano per rendere la tua esperienza pi\xF9 efficiente.",
|
|
266
|
+
"La legge ci consente di memorizzare i cookie strettamente necessari al funzionamento di questo sito. Per tutto il resto abbiamo bisogno del tuo permesso, motivo per cui vedi questo banner.",
|
|
267
|
+
"Puoi modificare o revocare il tuo consenso in qualsiasi momento tramite il pulsante dei cookie in basso a sinistra dello schermo."
|
|
268
|
+
],
|
|
269
|
+
operatedBy: "Gestito da {company}. ",
|
|
270
|
+
readMore: "Maggiori informazioni nella nostra {privacy} e nella nostra {cookie}.",
|
|
271
|
+
privacyLabel: "informativa sulla privacy",
|
|
272
|
+
cookieLabel: "informativa sui cookie",
|
|
273
|
+
fabLabel: "Impostazioni cookie",
|
|
274
|
+
dialogLabel: "Consenso ai cookie"
|
|
275
|
+
},
|
|
276
|
+
categories: {
|
|
277
|
+
necessary: {
|
|
278
|
+
name: "Necessari",
|
|
279
|
+
short: "Necessari per caricare il sito e ricordare la tua scelta.",
|
|
280
|
+
about: "I cookie necessari rendono il sito utilizzabile abilitando funzioni di base come ricordare la tua scelta sui cookie. Il sito non pu\xF2 funzionare correttamente senza di essi."
|
|
281
|
+
},
|
|
282
|
+
preferences: {
|
|
283
|
+
name: "Preferenze",
|
|
284
|
+
short: "Ricorda impostazioni come la tua regione.",
|
|
285
|
+
about: "I cookie di preferenza consentono al sito di ricordare informazioni che ne modificano il comportamento o l\u2019aspetto, come la tua regione."
|
|
286
|
+
},
|
|
287
|
+
statistics: {
|
|
288
|
+
name: "Statistiche",
|
|
289
|
+
short: "Statistiche di utilizzo anonime per migliorare il sito.",
|
|
290
|
+
about: "I cookie statistici ci aiutano a capire come i visitatori utilizzano il sito raccogliendo informazioni in forma anonima (Google Analytics)."
|
|
291
|
+
},
|
|
292
|
+
marketing: {
|
|
293
|
+
name: "Marketing",
|
|
294
|
+
short: "Pubblicit\xE0 e misurazione delle campagne.",
|
|
295
|
+
about: "I cookie di marketing tracciano i visitatori tra i siti per mostrare annunci pertinenti. Nessuno viene impostato a meno che non sia attivato un tag di marketing."
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
cookies: {
|
|
299
|
+
selfProvider: "questo sito",
|
|
300
|
+
consentPurpose: "Memorizza il tuo consenso ai cookie.",
|
|
301
|
+
consentMeta: "HTTP \xB7 1 anno",
|
|
302
|
+
gaPurpose: "Distingue i visitatori per misurare l\u2019utilizzo del sito.",
|
|
303
|
+
gaStatePurpose: "Mantiene lo stato della sessione di analisi.",
|
|
304
|
+
gaMeta: "HTTP \xB7 2 anni"
|
|
305
|
+
}
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
// src/locales/pt.ts
|
|
309
|
+
var pt = {
|
|
310
|
+
labels: {
|
|
311
|
+
tabConsent: "Consentimento",
|
|
312
|
+
tabDetails: "Detalhes",
|
|
313
|
+
tabAbout: "Sobre",
|
|
314
|
+
heading: "Este site utiliza cookies",
|
|
315
|
+
lead: "Utilizamos cookies para executar este site e, se permitir, para medir o tr\xE1fego e para marketing. Os cookies n\xE3o essenciais permanecem desativados at\xE9 que escolha.",
|
|
316
|
+
deny: "Recusar",
|
|
317
|
+
save: "Guardar escolhas",
|
|
318
|
+
allowAll: "Permitir todos",
|
|
319
|
+
noCookies: "Nenhum cookie nesta categoria.",
|
|
320
|
+
aboutParagraphs: [
|
|
321
|
+
"Os cookies s\xE3o pequenos ficheiros de texto que os sites utilizam para tornar a sua experi\xEAncia mais eficiente.",
|
|
322
|
+
"A lei permite-nos armazenar cookies estritamente necess\xE1rios ao funcionamento deste site. Para tudo o resto precisamos da sua permiss\xE3o, e \xE9 por isso que v\xEA este aviso.",
|
|
323
|
+
"Pode alterar ou retirar o seu consentimento a qualquer momento atrav\xE9s do bot\xE3o de cookies no canto inferior esquerdo do ecr\xE3."
|
|
324
|
+
],
|
|
325
|
+
operatedBy: "Operado por {company}. ",
|
|
326
|
+
readMore: "Saiba mais na nossa {privacy} e {cookie}.",
|
|
327
|
+
privacyLabel: "pol\xEDtica de privacidade",
|
|
328
|
+
cookieLabel: "pol\xEDtica de cookies",
|
|
329
|
+
fabLabel: "Defini\xE7\xF5es de cookies",
|
|
330
|
+
dialogLabel: "Consentimento de cookies"
|
|
331
|
+
},
|
|
332
|
+
categories: {
|
|
333
|
+
necessary: {
|
|
334
|
+
name: "Necess\xE1rios",
|
|
335
|
+
short: "Necess\xE1rios para carregar o site e lembrar a sua escolha.",
|
|
336
|
+
about: "Os cookies necess\xE1rios tornam o site utiliz\xE1vel ao ativar fun\xE7\xF5es b\xE1sicas como lembrar a sua escolha de cookies. O site n\xE3o pode funcionar corretamente sem eles."
|
|
337
|
+
},
|
|
338
|
+
preferences: {
|
|
339
|
+
name: "Prefer\xEAncias",
|
|
340
|
+
short: "Lembra defini\xE7\xF5es como a sua regi\xE3o.",
|
|
341
|
+
about: "Os cookies de prefer\xEAncias permitem que o site se lembre de informa\xE7\xF5es que alteram o seu comportamento ou apar\xEAncia, como a sua regi\xE3o."
|
|
342
|
+
},
|
|
343
|
+
statistics: {
|
|
344
|
+
name: "Estat\xEDsticas",
|
|
345
|
+
short: "Estat\xEDsticas de utiliza\xE7\xE3o an\xF3nimas para melhorar o site.",
|
|
346
|
+
about: "Os cookies estat\xEDsticos ajudam-nos a perceber como os visitantes utilizam o site, recolhendo informa\xE7\xF5es de forma an\xF3nima (Google Analytics)."
|
|
347
|
+
},
|
|
348
|
+
marketing: {
|
|
349
|
+
name: "Marketing",
|
|
350
|
+
short: "Publicidade e medi\xE7\xE3o de campanhas.",
|
|
351
|
+
about: "Os cookies de marketing seguem os visitantes atrav\xE9s dos sites para mostrar an\xFAncios relevantes. Nenhum \xE9 definido a menos que uma tag de marketing esteja ativada."
|
|
352
|
+
}
|
|
353
|
+
},
|
|
354
|
+
cookies: {
|
|
355
|
+
selfProvider: "este site",
|
|
356
|
+
consentPurpose: "Armazena o seu consentimento de cookies.",
|
|
357
|
+
consentMeta: "HTTP \xB7 1 ano",
|
|
358
|
+
gaPurpose: "Distingue os visitantes para medir a utiliza\xE7\xE3o do site.",
|
|
359
|
+
gaStatePurpose: "Mant\xE9m o estado da sess\xE3o de an\xE1lise.",
|
|
360
|
+
gaMeta: "HTTP \xB7 2 anos"
|
|
361
|
+
}
|
|
362
|
+
};
|
|
363
|
+
|
|
364
|
+
// src/locales/nl.ts
|
|
365
|
+
var nl = {
|
|
366
|
+
labels: {
|
|
367
|
+
tabConsent: "Toestemming",
|
|
368
|
+
tabDetails: "Details",
|
|
369
|
+
tabAbout: "Over cookies",
|
|
370
|
+
heading: "Deze website gebruikt cookies",
|
|
371
|
+
lead: "We gebruiken cookies om deze site te laten werken en, als u dat toestaat, om verkeer te meten en voor marketing. Niet-essenti\xEBle cookies blijven uitgeschakeld totdat u kiest.",
|
|
372
|
+
deny: "Weigeren",
|
|
373
|
+
save: "Keuzes opslaan",
|
|
374
|
+
allowAll: "Alles toestaan",
|
|
375
|
+
noCookies: "Geen cookies in deze categorie.",
|
|
376
|
+
aboutParagraphs: [
|
|
377
|
+
"Cookies zijn kleine tekstbestanden die websites gebruiken om uw ervaring effici\xEBnter te maken.",
|
|
378
|
+
"De wet staat ons toe cookies op te slaan die strikt noodzakelijk zijn om deze site te laten werken. Voor al het andere hebben we uw toestemming nodig, daarom ziet u deze melding.",
|
|
379
|
+
"U kunt uw toestemming op elk moment wijzigen of intrekken via de cookieknop linksonder op het scherm."
|
|
380
|
+
],
|
|
381
|
+
operatedBy: "Beheerd door {company}. ",
|
|
382
|
+
readMore: "Lees meer in ons {privacy} en {cookie}.",
|
|
383
|
+
privacyLabel: "privacybeleid",
|
|
384
|
+
cookieLabel: "cookiebeleid",
|
|
385
|
+
fabLabel: "Cookie-instellingen",
|
|
386
|
+
dialogLabel: "Cookietoestemming"
|
|
387
|
+
},
|
|
388
|
+
categories: {
|
|
389
|
+
necessary: {
|
|
390
|
+
name: "Noodzakelijk",
|
|
391
|
+
short: "Nodig om de site te laden en uw keuze te onthouden.",
|
|
392
|
+
about: "Noodzakelijke cookies maken de site bruikbaar door basisfuncties mogelijk te maken, zoals het onthouden van uw cookiekeuze. De site kan zonder deze cookies niet goed werken."
|
|
393
|
+
},
|
|
394
|
+
preferences: {
|
|
395
|
+
name: "Voorkeuren",
|
|
396
|
+
short: "Onthoudt instellingen zoals uw regio.",
|
|
397
|
+
about: "Voorkeurscookies laten de site informatie onthouden die het gedrag of uiterlijk verandert, zoals uw regio."
|
|
398
|
+
},
|
|
399
|
+
statistics: {
|
|
400
|
+
name: "Statistieken",
|
|
401
|
+
short: "Anonieme gebruiksstatistieken om de site te verbeteren.",
|
|
402
|
+
about: "Statistiekcookies helpen ons te begrijpen hoe bezoekers de site gebruiken door anoniem informatie te verzamelen (Google Analytics)."
|
|
403
|
+
},
|
|
404
|
+
marketing: {
|
|
405
|
+
name: "Marketing",
|
|
406
|
+
short: "Advertenties en campagnemeting.",
|
|
407
|
+
about: "Marketingcookies volgen bezoekers over verschillende sites om relevante advertenties te tonen. Er worden er geen geplaatst tenzij een marketingtag is ingeschakeld."
|
|
408
|
+
}
|
|
409
|
+
},
|
|
410
|
+
cookies: {
|
|
411
|
+
selfProvider: "deze site",
|
|
412
|
+
consentPurpose: "Slaat uw cookietoestemming op.",
|
|
413
|
+
consentMeta: "HTTP \xB7 1 jaar",
|
|
414
|
+
gaPurpose: "Onderscheidt bezoekers om het sitegebruik te meten.",
|
|
415
|
+
gaStatePurpose: "Houdt de status van de analysesessie bij.",
|
|
416
|
+
gaMeta: "HTTP \xB7 2 jaar"
|
|
417
|
+
}
|
|
418
|
+
};
|
|
419
|
+
|
|
420
|
+
// src/locales/pl.ts
|
|
421
|
+
var pl = {
|
|
422
|
+
labels: {
|
|
423
|
+
tabConsent: "Zgoda",
|
|
424
|
+
tabDetails: "Szczeg\xF3\u0142y",
|
|
425
|
+
tabAbout: "O plikach cookie",
|
|
426
|
+
heading: "Ta strona u\u017Cywa plik\xF3w cookie",
|
|
427
|
+
lead: "U\u017Cywamy plik\xF3w cookie, aby prowadzi\u0107 t\u0119 stron\u0119 oraz \u2013 je\u015Bli wyrazisz zgod\u0119 \u2013 mierzy\u0107 ruch i prowadzi\u0107 dzia\u0142ania marketingowe. Pliki cookie inne ni\u017C niezb\u0119dne pozostaj\u0105 wy\u0142\u0105czone, dop\xF3ki nie dokonasz wyboru.",
|
|
428
|
+
deny: "Odrzu\u0107",
|
|
429
|
+
save: "Zapisz wyb\xF3r",
|
|
430
|
+
allowAll: "Zezw\xF3l na wszystkie",
|
|
431
|
+
noCookies: "Brak plik\xF3w cookie w tej kategorii.",
|
|
432
|
+
aboutParagraphs: [
|
|
433
|
+
"Pliki cookie to ma\u0142e pliki tekstowe, kt\xF3rych strony internetowe u\u017Cywaj\u0105, aby usprawni\u0107 korzystanie z nich.",
|
|
434
|
+
"Prawo pozwala nam przechowywa\u0107 pliki cookie \u015Bci\u015Ble niezb\u0119dne do dzia\u0142ania tej strony. We wszystkich innych przypadkach potrzebujemy Twojej zgody \u2013 dlatego widzisz ten baner.",
|
|
435
|
+
"W ka\u017Cdej chwili mo\u017Cesz zmieni\u0107 lub wycofa\u0107 swoj\u0105 zgod\u0119 za pomoc\u0105 przycisku cookie w lewym dolnym rogu ekranu."
|
|
436
|
+
],
|
|
437
|
+
operatedBy: "Prowadzone przez {company}. ",
|
|
438
|
+
readMore: "Wi\u0119cej informacji w naszej {privacy} i {cookie}.",
|
|
439
|
+
privacyLabel: "Polityce prywatno\u015Bci",
|
|
440
|
+
cookieLabel: "Polityce cookie",
|
|
441
|
+
fabLabel: "Ustawienia plik\xF3w cookie",
|
|
442
|
+
dialogLabel: "Zgoda na pliki cookie"
|
|
443
|
+
},
|
|
444
|
+
categories: {
|
|
445
|
+
necessary: {
|
|
446
|
+
name: "Niezb\u0119dne",
|
|
447
|
+
short: "Potrzebne do za\u0142adowania strony i zapami\u0119tania Twojego wyboru.",
|
|
448
|
+
about: "Niezb\u0119dne pliki cookie umo\u017Cliwiaj\u0105 korzystanie ze strony, udost\u0119pniaj\u0105c podstawowe funkcje, takie jak zapami\u0119tanie Twojego wyboru dotycz\u0105cego plik\xF3w cookie. Bez nich strona nie mo\u017Ce dzia\u0142a\u0107 prawid\u0142owo."
|
|
449
|
+
},
|
|
450
|
+
preferences: {
|
|
451
|
+
name: "Preferencje",
|
|
452
|
+
short: "Zapami\u0119tuje ustawienia, takie jak Tw\xF3j region.",
|
|
453
|
+
about: "Pliki cookie preferencji pozwalaj\u0105 stronie zapami\u0119ta\u0107 informacje, kt\xF3re zmieniaj\u0105 jej zachowanie lub wygl\u0105d, takie jak Tw\xF3j region."
|
|
454
|
+
},
|
|
455
|
+
statistics: {
|
|
456
|
+
name: "Statystyczne",
|
|
457
|
+
short: "Anonimowe statystyki u\u017Cytkowania w celu ulepszenia strony.",
|
|
458
|
+
about: "Statystyczne pliki cookie pomagaj\u0105 nam zrozumie\u0107, w jaki spos\xF3b odwiedzaj\u0105cy korzystaj\u0105 ze strony, zbieraj\u0105c informacje anonimowo (Google Analytics)."
|
|
459
|
+
},
|
|
460
|
+
marketing: {
|
|
461
|
+
name: "Marketingowe",
|
|
462
|
+
short: "Reklamy i pomiar skuteczno\u015Bci kampanii.",
|
|
463
|
+
about: "Marketingowe pliki cookie \u015Bledz\u0105 odwiedzaj\u0105cych na r\xF3\u017Cnych stronach, aby wy\u015Bwietla\u0107 trafne reklamy. \u017Baden nie jest ustawiany, o ile nie w\u0142\u0105czono tagu marketingowego."
|
|
464
|
+
}
|
|
465
|
+
},
|
|
466
|
+
cookies: {
|
|
467
|
+
selfProvider: "ta strona",
|
|
468
|
+
consentPurpose: "Przechowuje Twoj\u0105 zgod\u0119 na pliki cookie.",
|
|
469
|
+
consentMeta: "HTTP \xB7 1 rok",
|
|
470
|
+
gaPurpose: "Rozr\xF3\u017Cnia odwiedzaj\u0105cych, aby mierzy\u0107 korzystanie ze strony.",
|
|
471
|
+
gaStatePurpose: "Utrzymuje stan sesji analitycznej.",
|
|
472
|
+
gaMeta: "HTTP \xB7 2 lata"
|
|
473
|
+
}
|
|
474
|
+
};
|
|
475
|
+
|
|
476
|
+
// src/locales/cs.ts
|
|
477
|
+
var cs = {
|
|
478
|
+
labels: {
|
|
479
|
+
tabConsent: "Souhlas",
|
|
480
|
+
tabDetails: "Podrobnosti",
|
|
481
|
+
tabAbout: "O souborech cookie",
|
|
482
|
+
heading: "Tento web pou\u017E\xEDv\xE1 soubory cookie",
|
|
483
|
+
lead: "Soubory cookie pou\u017E\xEDv\xE1me k provozu tohoto webu a \u2013 pokud to povol\xEDte \u2013 k m\u011B\u0159en\xED n\xE1v\u0161t\u011Bvnosti a pro marketing. Soubory cookie, kter\xE9 nejsou nezbytn\xE9, z\u016Fst\xE1vaj\xED vypnut\xE9, dokud se nerozhodnete.",
|
|
484
|
+
deny: "Odm\xEDtnout",
|
|
485
|
+
save: "Ulo\u017Eit volby",
|
|
486
|
+
allowAll: "Povolit v\u0161e",
|
|
487
|
+
noCookies: "V t\xE9to kategorii nejsou \u017E\xE1dn\xE9 soubory cookie.",
|
|
488
|
+
aboutParagraphs: [
|
|
489
|
+
"Soubory cookie jsou mal\xE9 textov\xE9 soubory, kter\xE9 weby pou\u017E\xEDvaj\xED k tomu, aby va\u0161e pou\u017E\xEDv\xE1n\xED bylo efektivn\u011Bj\u0161\xED.",
|
|
490
|
+
"Z\xE1kon n\xE1m umo\u017E\u0148uje ukl\xE1dat soubory cookie, kter\xE9 jsou nezbytn\u011B nutn\xE9 k provozu tohoto webu. Pro v\u0161e ostatn\xED pot\u0159ebujeme v\xE1\u0161 souhlas, a proto vid\xEDte tento banner.",
|
|
491
|
+
"Sv\u016Fj souhlas m\u016F\u017Eete kdykoli zm\u011Bnit nebo odvolat pomoc\xED tla\u010D\xEDtka cookie v lev\xE9m doln\xEDm rohu obrazovky."
|
|
492
|
+
],
|
|
493
|
+
operatedBy: "Provozuje {company}. ",
|
|
494
|
+
readMore: "V\xEDce informac\xED najdete v na\u0161ich {privacy} a {cookie}.",
|
|
495
|
+
privacyLabel: "z\xE1sad\xE1ch ochrany osobn\xEDch \xFAdaj\u016F",
|
|
496
|
+
cookieLabel: "z\xE1sad\xE1ch pou\u017E\xEDv\xE1n\xED soubor\u016F cookie",
|
|
497
|
+
fabLabel: "Nastaven\xED soubor\u016F cookie",
|
|
498
|
+
dialogLabel: "Souhlas se soubory cookie"
|
|
499
|
+
},
|
|
500
|
+
categories: {
|
|
501
|
+
necessary: {
|
|
502
|
+
name: "Nezbytn\xE9",
|
|
503
|
+
short: "Pot\u0159ebn\xE9 k na\u010Dten\xED webu a zapamatov\xE1n\xED va\u0161\xED volby.",
|
|
504
|
+
about: "Nezbytn\xE9 soubory cookie umo\u017E\u0148uj\xED pou\u017E\xEDv\xE1n\xED webu t\xEDm, \u017Ee zaji\u0161\u0165uj\xED z\xE1kladn\xED funkce, jako je zapamatov\xE1n\xED va\u0161\xED volby cookie. Bez nich web nem\u016F\u017Ee spr\xE1vn\u011B fungovat."
|
|
505
|
+
},
|
|
506
|
+
preferences: {
|
|
507
|
+
name: "P\u0159edvolby",
|
|
508
|
+
short: "Zapamatuje si nastaven\xED, jako je v\xE1\u0161 region.",
|
|
509
|
+
about: "Soubory cookie p\u0159edvoleb umo\u017E\u0148uj\xED webu zapamatovat si informace, kter\xE9 m\u011Bn\xED jeho chov\xE1n\xED nebo vzhled, nap\u0159\xEDklad v\xE1\u0161 region."
|
|
510
|
+
},
|
|
511
|
+
statistics: {
|
|
512
|
+
name: "Statistick\xE9",
|
|
513
|
+
short: "Anonymn\xED statistiky pou\u017E\xEDv\xE1n\xED pro vylep\u0161en\xED webu.",
|
|
514
|
+
about: "Statistick\xE9 soubory cookie n\xE1m pom\xE1haj\xED pochopit, jak n\xE1v\u0161t\u011Bvn\xEDci web pou\u017E\xEDvaj\xED, a to anonymn\xEDm sb\u011Brem informac\xED (Google Analytics)."
|
|
515
|
+
},
|
|
516
|
+
marketing: {
|
|
517
|
+
name: "Marketingov\xE9",
|
|
518
|
+
short: "Reklama a m\u011B\u0159en\xED kampan\xED.",
|
|
519
|
+
about: "Marketingov\xE9 soubory cookie sleduj\xED n\xE1v\u0161t\u011Bvn\xEDky nap\u0159\xED\u010D weby a zobrazuj\xED relevantn\xED reklamy. \u017D\xE1dn\xE9 se nenastav\xED, pokud nen\xED povolena marketingov\xE1 zna\u010Dka."
|
|
520
|
+
}
|
|
521
|
+
},
|
|
522
|
+
cookies: {
|
|
523
|
+
selfProvider: "tento web",
|
|
524
|
+
consentPurpose: "Ukl\xE1d\xE1 v\xE1\u0161 souhlas se soubory cookie.",
|
|
525
|
+
consentMeta: "HTTP \xB7 1 rok",
|
|
526
|
+
gaPurpose: "Rozli\u0161uje n\xE1v\u0161t\u011Bvn\xEDky pro m\u011B\u0159en\xED pou\u017E\xEDv\xE1n\xED webu.",
|
|
527
|
+
gaStatePurpose: "Udr\u017Euje stav analytick\xE9 relace.",
|
|
528
|
+
gaMeta: "HTTP \xB7 2 roky"
|
|
529
|
+
}
|
|
530
|
+
};
|
|
531
|
+
|
|
532
|
+
// src/locales/sk.ts
|
|
533
|
+
var sk = {
|
|
534
|
+
labels: {
|
|
535
|
+
tabConsent: "S\xFAhlas",
|
|
536
|
+
tabDetails: "Podrobnosti",
|
|
537
|
+
tabAbout: "O s\xFAboroch cookie",
|
|
538
|
+
heading: "T\xE1to webov\xE1 str\xE1nka pou\u017E\xEDva s\xFAbory cookie",
|
|
539
|
+
lead: "S\xFAbory cookie pou\u017E\xEDvame na prev\xE1dzku tejto str\xE1nky a \u2013 ak to povol\xEDte \u2013 na meranie n\xE1v\u0161tevnosti a na marketing. S\xFAbory cookie, ktor\xE9 nie s\xFA nevyhnutn\xE9, zost\xE1vaj\xFA vypnut\xE9, k\xFDm sa nerozhodnete.",
|
|
540
|
+
deny: "Odmietnu\u0165",
|
|
541
|
+
save: "Ulo\u017Ei\u0165 vo\u013Eby",
|
|
542
|
+
allowAll: "Povoli\u0165 v\u0161etky",
|
|
543
|
+
noCookies: "V tejto kateg\xF3rii nie s\xFA \u017Eiadne s\xFAbory cookie.",
|
|
544
|
+
aboutParagraphs: [
|
|
545
|
+
"S\xFAbory cookie s\xFA mal\xE9 textov\xE9 s\xFAbory, ktor\xE9 webov\xE9 str\xE1nky pou\u017E\xEDvaj\xFA na to, aby bolo va\u0161e pou\u017E\xEDvanie efekt\xEDvnej\u0161ie.",
|
|
546
|
+
"Z\xE1kon n\xE1m umo\u017E\u0148uje uklada\u0165 s\xFAbory cookie, ktor\xE9 s\xFA nevyhnutne potrebn\xE9 na prev\xE1dzku tejto str\xE1nky. Pre v\u0161etko ostatn\xE9 potrebujeme v\xE1\u0161 s\xFAhlas, a preto vid\xEDte tento banner.",
|
|
547
|
+
"Svoj s\xFAhlas m\xF4\u017Eete kedyko\u013Evek zmeni\u0165 alebo odvola\u0165 pomocou tla\u010Didla cookie v \u013Eavom dolnom rohu obrazovky."
|
|
548
|
+
],
|
|
549
|
+
operatedBy: "Prev\xE1dzkuje {company}. ",
|
|
550
|
+
readMore: "Viac inform\xE1ci\xED n\xE1jdete v na\u0161ich {privacy} a {cookie}.",
|
|
551
|
+
privacyLabel: "z\xE1sad\xE1ch ochrany osobn\xFDch \xFAdajov",
|
|
552
|
+
cookieLabel: "z\xE1sad\xE1ch pou\u017E\xEDvania s\xFAborov cookie",
|
|
553
|
+
fabLabel: "Nastavenia s\xFAborov cookie",
|
|
554
|
+
dialogLabel: "S\xFAhlas so s\xFAbormi cookie"
|
|
555
|
+
},
|
|
556
|
+
categories: {
|
|
557
|
+
necessary: {
|
|
558
|
+
name: "Nevyhnutn\xE9",
|
|
559
|
+
short: "Potrebn\xE9 na na\u010D\xEDtanie str\xE1nky a zapam\xE4tanie va\u0161ej vo\u013Eby.",
|
|
560
|
+
about: "Nevyhnutn\xE9 s\xFAbory cookie umo\u017E\u0148uj\xFA pou\u017E\xEDvanie str\xE1nky t\xFDm, \u017Ee zabezpe\u010Duj\xFA z\xE1kladn\xE9 funkcie, ako je zapam\xE4tanie va\u0161ej vo\u013Eby cookie. Bez nich str\xE1nka nem\xF4\u017Ee spr\xE1vne fungova\u0165."
|
|
561
|
+
},
|
|
562
|
+
preferences: {
|
|
563
|
+
name: "Predvo\u013Eby",
|
|
564
|
+
short: "Zapam\xE4t\xE1 si nastavenia, ako je v\xE1\u0161 regi\xF3n.",
|
|
565
|
+
about: "S\xFAbory cookie predvolieb umo\u017E\u0148uj\xFA str\xE1nke zapam\xE4ta\u0165 si inform\xE1cie, ktor\xE9 menia jej spr\xE1vanie alebo vzh\u013Ead, napr\xEDklad v\xE1\u0161 regi\xF3n."
|
|
566
|
+
},
|
|
567
|
+
statistics: {
|
|
568
|
+
name: "\u0160tatistick\xE9",
|
|
569
|
+
short: "Anonymn\xE9 \u0161tatistiky pou\u017E\xEDvania na zlep\u0161enie str\xE1nky.",
|
|
570
|
+
about: "\u0160tatistick\xE9 s\xFAbory cookie n\xE1m pom\xE1haj\xFA pochopi\u0165, ako n\xE1v\u0161tevn\xEDci str\xE1nku pou\u017E\xEDvaj\xFA, prostredn\xEDctvom anonymn\xE9ho zberu inform\xE1ci\xED (Google Analytics)."
|
|
571
|
+
},
|
|
572
|
+
marketing: {
|
|
573
|
+
name: "Marketingov\xE9",
|
|
574
|
+
short: "Reklama a meranie kampan\xED.",
|
|
575
|
+
about: "Marketingov\xE9 s\xFAbory cookie sleduj\xFA n\xE1v\u0161tevn\xEDkov naprie\u010D str\xE1nkami a zobrazuj\xFA relevantn\xE9 reklamy. \u017Diadne sa nenastavia, pokia\u013E nie je povolen\xE1 marketingov\xE1 zna\u010Dka."
|
|
576
|
+
}
|
|
577
|
+
},
|
|
578
|
+
cookies: {
|
|
579
|
+
selfProvider: "t\xE1to str\xE1nka",
|
|
580
|
+
consentPurpose: "Uklad\xE1 v\xE1\u0161 s\xFAhlas so s\xFAbormi cookie.",
|
|
581
|
+
consentMeta: "HTTP \xB7 1 rok",
|
|
582
|
+
gaPurpose: "Rozli\u0161uje n\xE1v\u0161tevn\xEDkov na meranie pou\u017E\xEDvania str\xE1nky.",
|
|
583
|
+
gaStatePurpose: "Udr\u017Eiava stav analytickej rel\xE1cie.",
|
|
584
|
+
gaMeta: "HTTP \xB7 2 roky"
|
|
585
|
+
}
|
|
586
|
+
};
|
|
587
|
+
|
|
588
|
+
// src/locales/index.ts
|
|
589
|
+
var LOCALES = { de, fr, es, it, pt, nl, pl, cs, sk };
|
|
590
|
+
var SUPPORTED_LOCALES = ["en", "de", "fr", "es", "it", "pt", "nl", "pl", "cs", "sk"];
|
|
591
|
+
function resolveLocale(locale) {
|
|
592
|
+
if (!locale) return void 0;
|
|
593
|
+
const l = locale.toLowerCase();
|
|
594
|
+
return LOCALES[l] ?? LOCALES[l.split("-")[0]];
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
// src/styles.ts
|
|
598
|
+
var CSS = `
|
|
599
|
+
.tc-root,.tc-fab{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;box-sizing:border-box}
|
|
600
|
+
.tc-root *,.tc-fab *{box-sizing:border-box}
|
|
601
|
+
.tc-root{position:fixed;inset:0;z-index:2147483600;display:flex;align-items:center;justify-content:center;padding:0}
|
|
602
|
+
.tc-backdrop{position:absolute;inset:0;background:var(--tc-backdrop);backdrop-filter:blur(4px)}
|
|
603
|
+
.tc-card{position:relative;display:flex;flex-direction:column;width:100%;height:100dvh;overflow:hidden;background:var(--tc-surface);box-shadow:0 30px 80px -20px rgba(0,0,0,.7);opacity:0;transform:translateY(18px);transition:opacity .26s ease,transform .26s cubic-bezier(.22,1,.36,1)}
|
|
604
|
+
.tc-card:focus{outline:none}
|
|
605
|
+
.tc-card.tc-shown{opacity:1;transform:none}
|
|
606
|
+
.tc-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem 0}
|
|
607
|
+
.tc-tabs{display:flex;gap:1rem}
|
|
608
|
+
.tc-tab{position:relative;padding:0 0 1rem;font-size:13px;font-weight:600;color:var(--tc-text-muted);background:none;border:0;cursor:pointer;transition:color .15s}
|
|
609
|
+
.tc-tab:hover{color:var(--tc-text)}
|
|
610
|
+
.tc-tab.tc-active{color:var(--tc-text)}
|
|
611
|
+
.tc-tab.tc-active::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;background:var(--tc-brand)}
|
|
612
|
+
.tc-logo{flex-shrink:0;color:var(--tc-text);font-weight:700;font-size:15px}
|
|
613
|
+
.tc-hr{border:0;border-top:1px solid rgba(255,255,255,.07);margin:0}
|
|
614
|
+
.tc-body{flex:1;min-height:0;overflow-y:auto}
|
|
615
|
+
.tc-panel{padding:1.75rem 1.5rem}
|
|
616
|
+
.tc-h2{margin:0;font-size:1rem;font-weight:600;color:var(--tc-text)}
|
|
617
|
+
.tc-lead{margin:.5rem 0 0;font-size:13.5px;line-height:1.6;color:var(--tc-text-muted)}
|
|
618
|
+
.tc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-top:1.75rem}
|
|
619
|
+
.tc-cat{display:flex;flex-direction:column;align-items:center;text-align:center;border-radius:1rem;background:var(--tc-surface-alt);padding:1.25rem .75rem}
|
|
620
|
+
.tc-cat-name{margin:0;font-size:.875rem;font-weight:600;color:var(--tc-text)}
|
|
621
|
+
.tc-cat-desc{margin:.375rem 0 0;flex:1;font-size:11.5px;line-height:1.35;color:var(--tc-text-muted)}
|
|
622
|
+
.tc-switch{position:relative;display:inline-flex;align-items:center;margin-top:1rem;cursor:pointer}
|
|
623
|
+
.tc-switch input{position:absolute;width:1px;height:1px;opacity:0;margin:0}
|
|
624
|
+
.tc-track{width:2.75rem;height:1.5rem;border-radius:999px;background:rgba(255,255,255,.15);transition:background .2s}
|
|
625
|
+
.tc-thumb{position:absolute;left:2px;top:2px;width:1.25rem;height:1.25rem;border-radius:999px;background:var(--tc-text);transition:transform .2s}
|
|
626
|
+
.tc-switch input:checked~.tc-track{background:var(--tc-brand)}
|
|
627
|
+
.tc-switch input:checked~.tc-thumb{transform:translateX(1.25rem);background:var(--tc-on-brand)}
|
|
628
|
+
.tc-switch input:disabled{cursor:default}
|
|
629
|
+
.tc-switch input:focus-visible~.tc-track{outline:2px solid var(--tc-brand);outline-offset:2px}
|
|
630
|
+
.tc-acc{padding:1.25rem 0;border-top:1px solid rgba(255,255,255,.07)}
|
|
631
|
+
.tc-acc:first-child{border-top:0}
|
|
632
|
+
.tc-acc-head{display:flex;align-items:center;gap:.75rem}
|
|
633
|
+
.tc-acc-btn{display:flex;flex:1;align-items:center;gap:.625rem;text-align:left;background:none;border:0;color:var(--tc-text);cursor:pointer;font:inherit}
|
|
634
|
+
.tc-acc-name{font-size:.875rem;font-weight:600}
|
|
635
|
+
.tc-badge{display:grid;place-items:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;border-radius:999px;background:rgba(255,255,255,.1);font-size:10px;color:var(--tc-text-muted);font-family:ui-monospace,monospace}
|
|
636
|
+
.tc-chev{flex-shrink:0;color:var(--tc-text-muted);transition:transform .2s}
|
|
637
|
+
.tc-acc.tc-open .tc-chev{transform:rotate(180deg)}
|
|
638
|
+
.tc-acc-about{margin:.75rem 0 0;padding-left:1.625rem;font-size:13px;line-height:1.6;color:var(--tc-text-muted)}
|
|
639
|
+
.tc-acc-panel{padding-left:1.625rem;display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease}
|
|
640
|
+
.tc-acc.tc-open .tc-acc-panel{grid-template-rows:1fr}
|
|
641
|
+
.tc-acc-inner{overflow:hidden;min-height:0;display:flex;flex-direction:column;gap:.5rem}
|
|
642
|
+
.tc-acc.tc-open .tc-acc-inner{padding-top:.75rem}
|
|
643
|
+
.tc-cookie{border-radius:.75rem;background:rgba(255,255,255,.03);padding:.75rem}
|
|
644
|
+
.tc-cookie-name{margin:0;font-family:ui-monospace,monospace;font-size:12px;color:var(--tc-text)}
|
|
645
|
+
.tc-cookie-purpose{margin:.25rem 0 0;font-size:12px;color:var(--tc-text-muted)}
|
|
646
|
+
.tc-cookie-meta{margin:.25rem 0 0;font-family:ui-monospace,monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--tc-text-muted)}
|
|
647
|
+
.tc-cookie-empty{font-size:12px;font-style:italic;color:var(--tc-text-muted)}
|
|
648
|
+
.tc-about p{margin:0 0 .75rem;font-size:13.5px;line-height:1.6;color:var(--tc-text-muted)}
|
|
649
|
+
.tc-link{color:var(--tc-brand);text-decoration:underline;text-underline-offset:2px}
|
|
650
|
+
.tc-actions{display:flex;flex-direction:column;gap:.625rem;padding:1.25rem 1.5rem}
|
|
651
|
+
.tc-btn{flex:1;padding:.8rem 1.25rem;border-radius:999px;font-size:.875rem;font-weight:600;cursor:pointer;border:1px solid rgba(255,255,255,.14);background:transparent;color:var(--tc-text);transition:background .15s,border-color .15s}
|
|
652
|
+
.tc-btn:hover{background:rgba(255,255,255,.05)}
|
|
653
|
+
.tc-btn-primary{border-color:transparent;background:var(--tc-brand);color:var(--tc-on-brand)}
|
|
654
|
+
.tc-btn-primary:hover{background:var(--tc-brand-deep)}
|
|
655
|
+
.tc-fab{position:fixed;bottom:1.25rem;left:1.25rem;z-index:2147483600;display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:999px;border:0;cursor:pointer;background:var(--tc-brand);color:var(--tc-text);box-shadow:0 12px 30px -8px rgba(0,0,0,.6);transition:background .15s}
|
|
656
|
+
.tc-fab:hover{background:var(--tc-brand-deep)}
|
|
657
|
+
@media (min-width:640px){
|
|
658
|
+
.tc-root{padding:1rem}
|
|
659
|
+
.tc-card{height:auto;max-height:92dvh;min-height:460px;max-width:48rem;box-shadow:0 30px 80px -20px rgba(0,0,0,.7);transform:translateY(10px) scale(.985)}
|
|
660
|
+
.tc-card.tc-shown{transform:none}
|
|
661
|
+
.tc-head{padding:1.5rem 2.75rem 0}
|
|
662
|
+
.tc-tabs{gap:1.75rem}
|
|
663
|
+
.tc-tab{font-size:14px}
|
|
664
|
+
.tc-panel{padding:2.75rem}
|
|
665
|
+
.tc-grid{grid-template-columns:repeat(4,1fr)}
|
|
666
|
+
.tc-actions{flex-direction:row;padding:1.25rem 2.75rem}
|
|
667
|
+
}
|
|
668
|
+
@media (prefers-reduced-motion:reduce){
|
|
669
|
+
.tc-card,.tc-acc-panel,.tc-chev,.tc-track,.tc-thumb{transition:none}
|
|
670
|
+
}
|
|
671
|
+
`;
|
|
672
|
+
var TABS = ["consent", "details", "about"];
|
|
673
|
+
var EMPTY = { preferences: false, statistics: false, marketing: false };
|
|
674
|
+
var DEFAULT_LABELS = {
|
|
675
|
+
tabConsent: "Consent",
|
|
676
|
+
tabDetails: "Details",
|
|
677
|
+
tabAbout: "About",
|
|
678
|
+
heading: "This website uses cookies",
|
|
679
|
+
lead: "We use cookies to run this site and, if you allow it, to measure traffic and for marketing. Non-essential cookies stay off until you choose.",
|
|
680
|
+
deny: "Deny",
|
|
681
|
+
save: "Save choices",
|
|
682
|
+
allowAll: "Allow all",
|
|
683
|
+
noCookies: "No cookies in this category.",
|
|
684
|
+
aboutParagraphs: [
|
|
685
|
+
"Cookies are small text files websites use to make your experience more efficient.",
|
|
686
|
+
"The law lets us store cookies that are strictly necessary to run this site. For everything else we need your permission, which is why you see this banner.",
|
|
687
|
+
"You can change or withdraw your consent anytime using the cookie button in the bottom-left corner of the screen."
|
|
688
|
+
],
|
|
689
|
+
operatedBy: "Operated by {company}. ",
|
|
690
|
+
readMore: "Read more in our {privacy} and {cookie}.",
|
|
691
|
+
privacyLabel: "Privacy policy",
|
|
692
|
+
cookieLabel: "Cookie policy",
|
|
693
|
+
fabLabel: "Cookie settings",
|
|
694
|
+
dialogLabel: "Cookie consent"
|
|
695
|
+
};
|
|
696
|
+
function defaultCategories(cookieName, pack) {
|
|
697
|
+
const c = pack?.categories;
|
|
698
|
+
const k = pack?.cookies;
|
|
699
|
+
return {
|
|
700
|
+
necessary: {
|
|
701
|
+
name: c?.necessary.name ?? "Necessary",
|
|
702
|
+
locked: true,
|
|
703
|
+
short: c?.necessary.short ?? "Needed to load the site and remember your choice.",
|
|
704
|
+
about: c?.necessary.about ?? "Necessary cookies make the site usable by enabling basic functions like remembering your cookie choice. The site cannot work properly without them.",
|
|
705
|
+
cookies: [
|
|
706
|
+
{
|
|
707
|
+
name: cookieName,
|
|
708
|
+
provider: k?.selfProvider ?? "this site",
|
|
709
|
+
purpose: k?.consentPurpose ?? "Stores your cookie consent choice.",
|
|
710
|
+
meta: k?.consentMeta ?? "HTTP \xB7 1 year"
|
|
711
|
+
}
|
|
712
|
+
]
|
|
713
|
+
},
|
|
714
|
+
preferences: {
|
|
715
|
+
name: c?.preferences.name ?? "Preferences",
|
|
716
|
+
short: c?.preferences.short ?? "Remembers settings like your region.",
|
|
717
|
+
about: c?.preferences.about ?? "Preference cookies let the site remember information that changes how it behaves or looks, like your region.",
|
|
718
|
+
cookies: []
|
|
719
|
+
},
|
|
720
|
+
statistics: {
|
|
721
|
+
name: c?.statistics.name ?? "Statistics",
|
|
722
|
+
short: c?.statistics.short ?? "Anonymous usage stats to improve the site.",
|
|
723
|
+
about: c?.statistics.about ?? "Statistics cookies help us understand how visitors use the site by collecting information anonymously (Google Analytics).",
|
|
724
|
+
cookies: [
|
|
725
|
+
{ name: "_ga", provider: "Google", purpose: k?.gaPurpose ?? "Distinguishes visitors to measure site usage.", meta: k?.gaMeta ?? "HTTP \xB7 2 years" },
|
|
726
|
+
{ name: "_ga_*", provider: "Google", purpose: k?.gaStatePurpose ?? "Maintains analytics session state.", meta: k?.gaMeta ?? "HTTP \xB7 2 years" }
|
|
727
|
+
]
|
|
728
|
+
},
|
|
729
|
+
marketing: {
|
|
730
|
+
name: c?.marketing.name ?? "Marketing",
|
|
731
|
+
short: c?.marketing.short ?? "Advertising and campaign measurement.",
|
|
732
|
+
about: c?.marketing.about ?? "Marketing cookies track visitors across sites to show relevant ads. None are set unless a marketing tag is enabled.",
|
|
733
|
+
cookies: []
|
|
734
|
+
}
|
|
735
|
+
};
|
|
736
|
+
}
|
|
737
|
+
function renderTemplate(tmpl, slots) {
|
|
738
|
+
const out = [];
|
|
739
|
+
const re = /\{(\w+)\}/g;
|
|
740
|
+
let last = 0;
|
|
741
|
+
let m;
|
|
742
|
+
while ((m = re.exec(tmpl)) !== null) {
|
|
743
|
+
if (m.index > last) out.push(tmpl.slice(last, m.index));
|
|
744
|
+
out.push(slots[m[1]] ?? m[0]);
|
|
745
|
+
last = m.index + m[0].length;
|
|
746
|
+
}
|
|
747
|
+
if (last < tmpl.length) out.push(tmpl.slice(last));
|
|
748
|
+
return out.map((node, idx) => /* @__PURE__ */ jsx("span", { children: node }, idx));
|
|
749
|
+
}
|
|
750
|
+
var FOCUSABLE = 'a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])';
|
|
751
|
+
function Toggle({
|
|
752
|
+
id,
|
|
753
|
+
on,
|
|
754
|
+
locked,
|
|
755
|
+
label,
|
|
756
|
+
onToggle
|
|
757
|
+
}) {
|
|
758
|
+
return /* @__PURE__ */ jsxs("label", { className: "tc-switch", children: [
|
|
759
|
+
/* @__PURE__ */ jsx("input", { type: "checkbox", checked: on, disabled: locked, "aria-label": label, onChange: () => onToggle(id) }),
|
|
760
|
+
/* @__PURE__ */ jsx("span", { className: "tc-track" }),
|
|
761
|
+
/* @__PURE__ */ jsx("span", { className: "tc-thumb" })
|
|
762
|
+
] });
|
|
763
|
+
}
|
|
764
|
+
function CookieConsent({
|
|
765
|
+
manageDefault = true,
|
|
766
|
+
cookieName = "site_consent",
|
|
767
|
+
company,
|
|
768
|
+
logo,
|
|
769
|
+
privacyUrl = "/privacy",
|
|
770
|
+
termsUrl = "/privacy#cookies",
|
|
771
|
+
locale,
|
|
772
|
+
defaultOpen = false,
|
|
773
|
+
defaultTab,
|
|
774
|
+
colors,
|
|
775
|
+
categories,
|
|
776
|
+
labels,
|
|
777
|
+
onChange,
|
|
778
|
+
autoClearCookies = true
|
|
779
|
+
}) {
|
|
780
|
+
const [open, setOpen] = useState(defaultOpen);
|
|
781
|
+
const [shown, setShown] = useState(defaultOpen);
|
|
782
|
+
const [decided, setDecided] = useState(false);
|
|
783
|
+
const [tab, setTab] = useState(defaultTab ?? "consent");
|
|
784
|
+
const [choices, setChoices] = useState(EMPTY);
|
|
785
|
+
const [accOpen, setAccOpen] = useState({});
|
|
786
|
+
const cardRef = useRef(null);
|
|
787
|
+
const fabRef = useRef(null);
|
|
788
|
+
const restoreFocusRef = useRef(null);
|
|
789
|
+
const pack = useMemo(() => resolveLocale(locale), [locale]);
|
|
790
|
+
const L = useMemo(() => ({ ...DEFAULT_LABELS, ...pack?.labels, ...labels }), [pack, labels]);
|
|
791
|
+
const cats = useMemo(() => {
|
|
792
|
+
const base = defaultCategories(cookieName, pack);
|
|
793
|
+
return ["necessary", "preferences", "statistics", "marketing"].map((id) => {
|
|
794
|
+
const d = base[id];
|
|
795
|
+
const o = categories?.[id];
|
|
796
|
+
const cookies = o?.cookies ?? d.cookies;
|
|
797
|
+
return {
|
|
798
|
+
id,
|
|
799
|
+
locked: id === "necessary",
|
|
800
|
+
name: o?.name ?? d.name,
|
|
801
|
+
short: o?.short ?? d.short,
|
|
802
|
+
about: o?.about ?? d.about,
|
|
803
|
+
cookies,
|
|
804
|
+
count: cookies.length
|
|
805
|
+
};
|
|
806
|
+
});
|
|
807
|
+
}, [cookieName, categories, pack]);
|
|
808
|
+
useEffect(() => {
|
|
809
|
+
if (manageDefault) {
|
|
810
|
+
gtag("consent", "default", {
|
|
811
|
+
ad_storage: "denied",
|
|
812
|
+
ad_user_data: "denied",
|
|
813
|
+
ad_personalization: "denied",
|
|
814
|
+
analytics_storage: "denied",
|
|
815
|
+
functionality_storage: "denied",
|
|
816
|
+
personalization_storage: "denied",
|
|
817
|
+
security_storage: "granted",
|
|
818
|
+
wait_for_update: 500
|
|
819
|
+
});
|
|
820
|
+
}
|
|
821
|
+
const saved = readCookie(cookieName);
|
|
822
|
+
if (saved) {
|
|
823
|
+
setChoices(saved);
|
|
824
|
+
applyConsent(saved);
|
|
825
|
+
setDecided(true);
|
|
826
|
+
}
|
|
827
|
+
if (!saved || defaultOpen) setOpen(true);
|
|
828
|
+
}, []);
|
|
829
|
+
useEffect(() => {
|
|
830
|
+
if (!open) {
|
|
831
|
+
setShown(false);
|
|
832
|
+
document.body.style.overflow = "";
|
|
833
|
+
return;
|
|
834
|
+
}
|
|
835
|
+
document.body.style.overflow = "hidden";
|
|
836
|
+
const r = requestAnimationFrame(() => setShown(true));
|
|
837
|
+
return () => cancelAnimationFrame(r);
|
|
838
|
+
}, [open]);
|
|
839
|
+
useEffect(() => {
|
|
840
|
+
if (!open) return;
|
|
841
|
+
restoreFocusRef.current = document.activeElement ?? null;
|
|
842
|
+
const card = cardRef.current;
|
|
843
|
+
card?.focus();
|
|
844
|
+
const onKey = (e) => {
|
|
845
|
+
if (e.key !== "Tab" || !card) return;
|
|
846
|
+
const nodes = Array.from(card.querySelectorAll(FOCUSABLE)).filter((el) => el.offsetParent !== null);
|
|
847
|
+
if (!nodes.length) return;
|
|
848
|
+
const first = nodes[0];
|
|
849
|
+
const last = nodes[nodes.length - 1];
|
|
850
|
+
const active = document.activeElement;
|
|
851
|
+
if (e.shiftKey && (active === first || active === card)) {
|
|
852
|
+
e.preventDefault();
|
|
853
|
+
last.focus();
|
|
854
|
+
} else if (!e.shiftKey && active === last) {
|
|
855
|
+
e.preventDefault();
|
|
856
|
+
first.focus();
|
|
857
|
+
}
|
|
858
|
+
};
|
|
859
|
+
document.addEventListener("keydown", onKey);
|
|
860
|
+
return () => {
|
|
861
|
+
document.removeEventListener("keydown", onKey);
|
|
862
|
+
const restore = restoreFocusRef.current;
|
|
863
|
+
requestAnimationFrame(() => {
|
|
864
|
+
const target = fabRef.current ?? (restore && restore.isConnected ? restore : null);
|
|
865
|
+
target?.focus();
|
|
866
|
+
});
|
|
867
|
+
};
|
|
868
|
+
}, [open]);
|
|
869
|
+
useEffect(() => {
|
|
870
|
+
const onKey = (e) => {
|
|
871
|
+
if (e.key === "Escape" && decided) setOpen(false);
|
|
872
|
+
};
|
|
873
|
+
window.addEventListener("keydown", onKey);
|
|
874
|
+
return () => window.removeEventListener("keydown", onKey);
|
|
875
|
+
}, [decided]);
|
|
876
|
+
const commit = (ch) => {
|
|
877
|
+
writeCookie(cookieName, ch);
|
|
878
|
+
applyConsent(ch);
|
|
879
|
+
if (autoClearCookies) clearDeniedCookies(cats, ch, cookieName);
|
|
880
|
+
setChoices(ch);
|
|
881
|
+
setDecided(true);
|
|
882
|
+
setOpen(false);
|
|
883
|
+
onChange?.(ch);
|
|
884
|
+
};
|
|
885
|
+
const acceptAll = () => commit({ preferences: true, statistics: true, marketing: true });
|
|
886
|
+
const denyAll = () => commit(EMPTY);
|
|
887
|
+
const saveChoices = () => commit(choices);
|
|
888
|
+
const toggleCat = (id) => {
|
|
889
|
+
if (id === "necessary") return;
|
|
890
|
+
setChoices((ch) => ({ ...ch, [id]: !ch[id] }));
|
|
891
|
+
};
|
|
892
|
+
const openSettings = () => {
|
|
893
|
+
setChoices(readCookie(cookieName) ?? EMPTY);
|
|
894
|
+
setTab("consent");
|
|
895
|
+
setOpen(true);
|
|
896
|
+
};
|
|
897
|
+
const onTabKey = (e) => {
|
|
898
|
+
if (e.key !== "ArrowRight" && e.key !== "ArrowLeft") return;
|
|
899
|
+
e.preventDefault();
|
|
900
|
+
const idx = TABS.indexOf(tab);
|
|
901
|
+
const next = e.key === "ArrowRight" ? (idx + 1) % TABS.length : (idx + TABS.length - 1) % TABS.length;
|
|
902
|
+
const id = TABS[next];
|
|
903
|
+
setTab(id);
|
|
904
|
+
requestAnimationFrame(() => document.getElementById("tc-tab-" + id)?.focus());
|
|
905
|
+
};
|
|
906
|
+
const palette = {
|
|
907
|
+
brand: colors?.brand ?? "#ff5c3a",
|
|
908
|
+
brandDeep: colors?.brandDeep ?? "#eb5535",
|
|
909
|
+
surface: colors?.surface ?? "#0c0814",
|
|
910
|
+
surfaceAlt: colors?.surfaceAlt ?? "rgba(255,255,255,0.035)",
|
|
911
|
+
text: colors?.text ?? "#f4ede3",
|
|
912
|
+
textMuted: colors?.textMuted ?? "#a89cb8",
|
|
913
|
+
backdrop: colors?.backdrop ?? "rgba(7,5,13,0.8)",
|
|
914
|
+
onBrand: colors?.onBrand ?? colors?.surface ?? "#0c0814"
|
|
915
|
+
};
|
|
916
|
+
const vars = {
|
|
917
|
+
"--tc-brand": palette.brand,
|
|
918
|
+
"--tc-brand-deep": palette.brandDeep,
|
|
919
|
+
"--tc-surface": palette.surface,
|
|
920
|
+
"--tc-surface-alt": palette.surfaceAlt,
|
|
921
|
+
"--tc-text": palette.text,
|
|
922
|
+
"--tc-text-muted": palette.textMuted,
|
|
923
|
+
"--tc-backdrop": palette.backdrop,
|
|
924
|
+
"--tc-on-brand": palette.onBrand
|
|
925
|
+
};
|
|
926
|
+
const tabLabel = (t) => t === "consent" ? L.tabConsent : t === "details" ? L.tabDetails : L.tabAbout;
|
|
927
|
+
const hasSelection = choices.preferences || choices.statistics || choices.marketing;
|
|
928
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
929
|
+
/* @__PURE__ */ jsx("style", { children: CSS }),
|
|
930
|
+
open && /* @__PURE__ */ jsxs("div", { className: "tc-root", style: vars, role: "dialog", "aria-modal": "true", "aria-label": L.dialogLabel, children: [
|
|
931
|
+
/* @__PURE__ */ jsx("div", { className: "tc-backdrop", onClick: () => decided && setOpen(false) }),
|
|
932
|
+
/* @__PURE__ */ jsxs("div", { ref: cardRef, tabIndex: -1, className: "tc-card" + (shown ? " tc-shown" : ""), children: [
|
|
933
|
+
/* @__PURE__ */ jsxs("div", { className: "tc-head", children: [
|
|
934
|
+
/* @__PURE__ */ jsx("div", { className: "tc-tabs", role: "tablist", "aria-label": L.dialogLabel, children: TABS.map((t) => /* @__PURE__ */ jsx(
|
|
935
|
+
"button",
|
|
936
|
+
{
|
|
937
|
+
id: "tc-tab-" + t,
|
|
938
|
+
type: "button",
|
|
939
|
+
role: "tab",
|
|
940
|
+
"aria-selected": tab === t,
|
|
941
|
+
"aria-controls": "tc-panel-" + t,
|
|
942
|
+
tabIndex: tab === t ? 0 : -1,
|
|
943
|
+
className: "tc-tab" + (tab === t ? " tc-active" : ""),
|
|
944
|
+
onClick: () => setTab(t),
|
|
945
|
+
onKeyDown: onTabKey,
|
|
946
|
+
children: tabLabel(t)
|
|
947
|
+
},
|
|
948
|
+
t
|
|
949
|
+
)) }),
|
|
950
|
+
logo ?? (company ? /* @__PURE__ */ jsx("span", { className: "tc-logo", children: company }) : null)
|
|
951
|
+
] }),
|
|
952
|
+
/* @__PURE__ */ jsx("hr", { className: "tc-hr" }),
|
|
953
|
+
/* @__PURE__ */ jsxs("div", { className: "tc-body", children: [
|
|
954
|
+
tab === "consent" && /* @__PURE__ */ jsxs("div", { id: "tc-panel-consent", role: "tabpanel", "aria-labelledby": "tc-tab-consent", className: "tc-panel", children: [
|
|
955
|
+
/* @__PURE__ */ jsx("h2", { className: "tc-h2", children: L.heading }),
|
|
956
|
+
/* @__PURE__ */ jsx("p", { className: "tc-lead", children: L.lead }),
|
|
957
|
+
/* @__PURE__ */ jsx("div", { className: "tc-grid", children: cats.map((cat) => /* @__PURE__ */ jsxs("div", { className: "tc-cat", children: [
|
|
958
|
+
/* @__PURE__ */ jsx("p", { className: "tc-cat-name", children: cat.name }),
|
|
959
|
+
/* @__PURE__ */ jsx("p", { className: "tc-cat-desc", children: cat.short }),
|
|
960
|
+
/* @__PURE__ */ jsx(Toggle, { id: cat.id, label: cat.name, on: cat.locked ? true : choices[cat.id], locked: cat.locked, onToggle: toggleCat })
|
|
961
|
+
] }, cat.id)) })
|
|
962
|
+
] }),
|
|
963
|
+
tab === "details" && /* @__PURE__ */ jsx("div", { id: "tc-panel-details", role: "tabpanel", "aria-labelledby": "tc-tab-details", className: "tc-panel tc-details", children: cats.map((cat) => {
|
|
964
|
+
const isOpen = !!accOpen[cat.id];
|
|
965
|
+
return /* @__PURE__ */ jsxs("div", { className: "tc-acc" + (isOpen ? " tc-open" : ""), children: [
|
|
966
|
+
/* @__PURE__ */ jsxs("div", { className: "tc-acc-head", children: [
|
|
967
|
+
/* @__PURE__ */ jsxs("button", { type: "button", className: "tc-acc-btn", "aria-expanded": isOpen, onClick: () => setAccOpen((s) => ({ ...s, [cat.id]: !s[cat.id] })), children: [
|
|
968
|
+
/* @__PURE__ */ jsx("svg", { className: "tc-chev", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: "M6 9l6 6 6-6", strokeLinecap: "round", strokeLinejoin: "round" }) }),
|
|
969
|
+
/* @__PURE__ */ jsx("span", { className: "tc-acc-name", children: cat.name }),
|
|
970
|
+
/* @__PURE__ */ jsx("span", { className: "tc-badge", children: cat.count })
|
|
971
|
+
] }),
|
|
972
|
+
/* @__PURE__ */ jsx(Toggle, { id: cat.id, label: cat.name, on: cat.locked ? true : choices[cat.id], locked: cat.locked, onToggle: toggleCat })
|
|
973
|
+
] }),
|
|
974
|
+
/* @__PURE__ */ jsx("p", { className: "tc-acc-about", children: cat.about }),
|
|
975
|
+
/* @__PURE__ */ jsx("div", { className: "tc-acc-panel", children: /* @__PURE__ */ jsx("div", { className: "tc-acc-inner", children: cat.cookies.length ? cat.cookies.map((k) => /* @__PURE__ */ jsxs("div", { className: "tc-cookie", children: [
|
|
976
|
+
/* @__PURE__ */ jsx("p", { className: "tc-cookie-name", children: k.name }),
|
|
977
|
+
k.purpose ? /* @__PURE__ */ jsx("p", { className: "tc-cookie-purpose", children: k.purpose }) : null,
|
|
978
|
+
/* @__PURE__ */ jsx("p", { className: "tc-cookie-meta", children: [k.provider, k.meta].filter(Boolean).join(" \xB7 ") })
|
|
979
|
+
] }, k.name)) : /* @__PURE__ */ jsx("p", { className: "tc-cookie-empty", children: L.noCookies }) }) })
|
|
980
|
+
] }, cat.id);
|
|
981
|
+
}) }),
|
|
982
|
+
tab === "about" && /* @__PURE__ */ jsxs("div", { id: "tc-panel-about", role: "tabpanel", "aria-labelledby": "tc-tab-about", className: "tc-panel tc-about", children: [
|
|
983
|
+
L.aboutParagraphs.map((p, i) => /* @__PURE__ */ jsx("p", { children: p }, i)),
|
|
984
|
+
/* @__PURE__ */ jsxs("p", { children: [
|
|
985
|
+
company ? L.operatedBy.replace("{company}", company) : "",
|
|
986
|
+
renderTemplate(L.readMore, {
|
|
987
|
+
privacy: /* @__PURE__ */ jsx("a", { className: "tc-link", href: privacyUrl, children: L.privacyLabel }),
|
|
988
|
+
cookie: /* @__PURE__ */ jsx("a", { className: "tc-link", href: termsUrl, children: L.cookieLabel })
|
|
989
|
+
})
|
|
990
|
+
] })
|
|
991
|
+
] })
|
|
992
|
+
] }),
|
|
993
|
+
/* @__PURE__ */ jsx("hr", { className: "tc-hr" }),
|
|
994
|
+
/* @__PURE__ */ jsxs("div", { className: "tc-actions", children: [
|
|
995
|
+
/* @__PURE__ */ jsx("button", { type: "button", className: "tc-btn", onClick: denyAll, children: L.deny }),
|
|
996
|
+
/* @__PURE__ */ jsx("button", { type: "button", className: "tc-btn" + (hasSelection ? " tc-btn-primary" : ""), onClick: saveChoices, children: L.save }),
|
|
997
|
+
/* @__PURE__ */ jsx("button", { type: "button", className: "tc-btn", onClick: acceptAll, children: L.allowAll })
|
|
998
|
+
] })
|
|
999
|
+
] })
|
|
1000
|
+
] }),
|
|
1001
|
+
decided && !open && /* @__PURE__ */ jsx("button", { ref: fabRef, type: "button", className: "tc-fab", style: vars, "aria-label": L.fabLabel, onClick: openSettings, children: /* @__PURE__ */ jsxs("svg", { width: "22", height: "22", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.7", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
|
|
1002
|
+
/* @__PURE__ */ jsx("path", { d: "M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5z" }),
|
|
1003
|
+
/* @__PURE__ */ jsx("path", { d: "M8.5 8.5h.01M16 15.5h.01M12 12h.01M11 17h.01M7 14h.01" })
|
|
1004
|
+
] }) })
|
|
1005
|
+
] });
|
|
1006
|
+
}
|
|
1007
|
+
var CookieConsent_default = CookieConsent;
|
|
1008
|
+
|
|
1009
|
+
export { CookieConsent, LOCALES, SUPPORTED_LOCALES, CookieConsent_default as default, resolveLocale };
|
|
1010
|
+
//# sourceMappingURL=index.js.map
|
|
1011
|
+
//# sourceMappingURL=index.js.map
|