@dargmuesli/nuxt-cookie-control 1.9.9 → 2.0.0-beta.2
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 +206 -285
- package/dist/module.cjs +5 -0
- package/dist/module.d.ts +66 -0
- package/dist/module.json +8 -0
- package/dist/module.mjs +186 -0
- package/dist/runtime/components/CookieControl.vue +274 -0
- package/dist/runtime/components/CookieIframe.vue +39 -0
- package/dist/runtime/composables.d.ts +1 -0
- package/dist/runtime/composables.mjs +1 -0
- package/dist/runtime/constants.d.ts +2 -0
- package/dist/runtime/constants.mjs +2 -0
- package/dist/runtime/locale/ar.d.ts +3 -0
- package/dist/runtime/locale/ar.mjs +16 -0
- package/dist/runtime/locale/de.d.ts +3 -0
- package/dist/runtime/locale/de.mjs +16 -0
- package/dist/runtime/locale/en.d.ts +3 -0
- package/dist/runtime/locale/en.mjs +16 -0
- package/dist/runtime/locale/es.d.ts +3 -0
- package/dist/runtime/locale/es.mjs +16 -0
- package/dist/runtime/locale/fr.d.ts +3 -0
- package/dist/runtime/locale/fr.mjs +16 -0
- package/dist/runtime/locale/hr.d.ts +3 -0
- package/dist/runtime/locale/hr.mjs +16 -0
- package/dist/runtime/locale/hu.d.ts +3 -0
- package/dist/runtime/locale/hu.mjs +16 -0
- package/dist/runtime/locale/index.d.ts +1 -0
- package/dist/runtime/locale/index.mjs +15 -0
- package/dist/runtime/locale/it.d.ts +3 -0
- package/dist/runtime/locale/it.mjs +16 -0
- package/dist/runtime/locale/ja.d.ts +3 -0
- package/dist/runtime/locale/ja.mjs +16 -0
- package/dist/runtime/locale/nl.d.ts +3 -0
- package/dist/runtime/locale/nl.mjs +16 -0
- package/dist/runtime/locale/no.d.ts +3 -0
- package/dist/runtime/locale/no.mjs +16 -0
- package/dist/runtime/locale/pt.d.ts +3 -0
- package/dist/runtime/locale/pt.mjs +16 -0
- package/dist/runtime/locale/ru.d.ts +3 -0
- package/dist/runtime/locale/ru.mjs +16 -0
- package/dist/runtime/locale/uk.d.ts +3 -0
- package/dist/runtime/locale/uk.mjs +16 -0
- package/dist/runtime/methods.d.ts +16 -0
- package/dist/runtime/methods.mjs +117 -0
- package/dist/runtime/plugin.d.ts +2 -0
- package/dist/runtime/plugin.mjs +27 -0
- package/dist/runtime/styles.css +347 -0
- package/dist/runtime/types.d.ts +73 -0
- package/dist/runtime/types.mjs +66 -0
- package/dist/types.d.ts +6 -0
- package/package.json +60 -21
- package/components/CookieControl.vue +0 -182
- package/components/CookieIframe.vue +0 -32
- package/lib/module.js +0 -74
- package/lib/plugin.js +0 -206
- package/lib/postinstall.js +0 -1
- package/lib/styles.scss +0 -434
- package/locale/de.js +0 -15
- package/locale/en.js +0 -15
- package/locale/es.js +0 -15
- package/locale/fr.js +0 -15
- package/locale/hr.js +0 -15
- package/locale/hu.js +0 -15
- package/locale/it.js +0 -15
- package/locale/ja.js +0 -15
- package/locale/no.js +0 -16
- package/locale/pt.js +0 -15
- package/locale/ru.js +0 -15
- package/locale/uk.js +0 -15
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const locales: import("../types").LocaleStrings[];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import ar from "./ar.mjs";
|
|
2
|
+
import de from "./de.mjs";
|
|
3
|
+
import en from "./en.mjs";
|
|
4
|
+
import es from "./es.mjs";
|
|
5
|
+
import fr from "./fr.mjs";
|
|
6
|
+
import hr from "./hr.mjs";
|
|
7
|
+
import hu from "./hu.mjs";
|
|
8
|
+
import it from "./it.mjs";
|
|
9
|
+
import ja from "./ja.mjs";
|
|
10
|
+
import nl from "./nl.mjs";
|
|
11
|
+
import no from "./no.mjs";
|
|
12
|
+
import pt from "./pt.mjs";
|
|
13
|
+
import ru from "./ru.mjs";
|
|
14
|
+
import uk from "./uk.mjs";
|
|
15
|
+
export const locales = [ar, de, en, es, fr, hr, hu, it, ja, nl, no, pt, ru, uk];
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
acceptAll: "Accetta tutto",
|
|
3
|
+
acceptNecessary: "Accetto il necessario",
|
|
4
|
+
barDescription: "Utilizziamo cookie propri e di terzi per mostrarvi la pagina web e capire come la utilizzate, nonch\xE9 per migliorare i servizi che offriamo. Se continuate a navigare, consideriamo che accettate il loro utilizzo.",
|
|
5
|
+
barTitle: "Cookies",
|
|
6
|
+
blockedIframe: "Per vedere questo, si prega di abilitare i cookie funzionali",
|
|
7
|
+
close: "Chiudi",
|
|
8
|
+
declineAll: "Cancella tutto",
|
|
9
|
+
functional: "Cookie funzionali",
|
|
10
|
+
here: "qui",
|
|
11
|
+
manageCookies: "Gestisci i cookie",
|
|
12
|
+
necessary: "Cookie necessari",
|
|
13
|
+
optional: "Cookie opzionali",
|
|
14
|
+
save: "Salva",
|
|
15
|
+
unsaved: "Ci sono impostazioni non salvate"
|
|
16
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
acceptAll: "\u5168\u3066\u540C\u610F",
|
|
3
|
+
acceptNecessary: "\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u53D7\u3051\u5165\u308C\u308B",
|
|
4
|
+
barDescription: "\u5F53\u30B5\u30A4\u30C8\u3067\u306F\u3001\u30B5\u30FC\u30D3\u30B9\u6539\u5584\u3092\u76EE\u7684\u3068\u3057\u3066\u5F53\u30B5\u30A4\u30C8\u53CA\u3073\u7B2C\u4E09\u8005\u304C\u63D0\u4F9B\u3059\u308BCookie\u3092\u4F7F\u7528\u3059\u308B\u3053\u3068\u306B\u3088\u308A\u3001\u5229\u7528\u8005\u306B\u5F53\u30B5\u30A4\u30C8\u3092\u8868\u793A\u3055\u305B\u308B\u3068\u3068\u3082\u306B\u3001\u5229\u7528\u8005\u304C\u3069\u306E\u3088\u3046\u306B\u30B5\u30A4\u30C8\u3092\u5229\u7528\u3057\u3066\u3044\u308B\u304B\u3092\u3088\u308A\u5341\u5206\u306B\u628A\u63E1\u3059\u308B\u3053\u3068\u304C\u53EF\u80FD\u3068\u306A\u3063\u3066\u3044\u307E\u3059\u3002\u3053\u306E\u307E\u307E\u95B2\u89A7\u3092\u7D9A\u3051\u308B\u3068\u3001Cookie\u306E\u5229\u7528\u306B\u3064\u3044\u3066\u540C\u610F\u3057\u305F\u3068\u307F\u306A\u3055\u308C\u307E\u3059\u3002",
|
|
5
|
+
barTitle: "Cookie",
|
|
6
|
+
blockedIframe: "\u3053\u3053\u3092\u8868\u793A\u3059\u308B\u306B\u306F\u3001\u6A5F\u80FD\u6027Cookie\u3092\u6709\u52B9\u306B\u3057\u3066\u304F\u3060\u3055\u3044:",
|
|
7
|
+
close: "\u9589\u3058\u308B",
|
|
8
|
+
declineAll: "\u5168\u3066\u524A\u9664",
|
|
9
|
+
functional: "\u6A5F\u80FD\u6027Cookie",
|
|
10
|
+
here: "\u8A2D\u5B9A",
|
|
11
|
+
manageCookies: "Cookie\u3092\u7BA1\u7406",
|
|
12
|
+
necessary: "\u4E0D\u53EF\u6B20\u306ACookie",
|
|
13
|
+
optional: "\u4EFB\u610F\u306Ecookies",
|
|
14
|
+
save: "\u4FDD\u5B58",
|
|
15
|
+
unsaved: "\u4FDD\u5B58\u3055\u308C\u3066\u3044\u306A\u3044\u8A2D\u5B9A\u304C\u3042\u308A\u307E\u3059"
|
|
16
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
acceptAll: "Accepteer alles",
|
|
3
|
+
acceptNecessary: "Accepteer noodzakelijk",
|
|
4
|
+
barDescription: "We gebruiken onze eigen cookies en third-party cookies om onze site te tonen en om te leren hoe deze gebruikt wordt, met het oog om de services die we verlenen te verbeteren. Door verder te gaan op onze site gaan we ervanuit dat hiermee akkoord gegaan wordt.",
|
|
5
|
+
barTitle: "Cookies",
|
|
6
|
+
blockedIframe: "Om dit te kunnen bekijken dienen functionele cookies geaccepteerd te worden",
|
|
7
|
+
close: "Sluiten",
|
|
8
|
+
declineAll: "Verwijder alles",
|
|
9
|
+
functional: "Functionele cookies",
|
|
10
|
+
here: "hier",
|
|
11
|
+
manageCookies: "Beheer cookies",
|
|
12
|
+
necessary: "Noodzakelijke cookies",
|
|
13
|
+
optional: "Optionele cookies",
|
|
14
|
+
save: "Opslaan",
|
|
15
|
+
unsaved: "Er zijn niet-opgeslagen instellingen"
|
|
16
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
acceptAll: "Godta alle",
|
|
3
|
+
acceptNecessary: "Jeg aksepterer det n\xF8dvendige",
|
|
4
|
+
barDescription: "Vi bruker v\xE5re egne informasjonskapsler og tredjeparts informasjonskapsler, slik at vi kan vise deg dette nettstedet og bedre forst\xE5 hvordan du bruker det, med tanke p\xE5 \xE5 forbedre tjenestene vi tilbyr.",
|
|
5
|
+
barTitle: "Informasjonskapsler",
|
|
6
|
+
blockedIframe: "For \xE5 se dette, vennligst aktiver funksjonelle informasjonskapsler",
|
|
7
|
+
close: "Lukk",
|
|
8
|
+
declineAll: "Slett alle",
|
|
9
|
+
functional: "Funksjonelle informasjonskapsler",
|
|
10
|
+
here: "her",
|
|
11
|
+
manageCookies: "Administrer informasjonskapsler",
|
|
12
|
+
necessary: "N\xF8dvendige informasjonskapsler",
|
|
13
|
+
optional: "Valgfrie informasjonskapsler",
|
|
14
|
+
save: "Lagre",
|
|
15
|
+
unsaved: "Du har ulagrede innstillinger"
|
|
16
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
acceptAll: "Aceitar todos",
|
|
3
|
+
acceptNecessary: "Eu aceito o necess\xE1rio",
|
|
4
|
+
barDescription: "N\xF3s utilizamos os nossos pr\xF3prios cookies e de terceiros para que possamos lhe mostrar este site e compreender a forma como o utiliza, de forma a melhorarmos os servi\xE7os que oferecemos. Ao continuar a navegar no site, consideramos que aceitou a utiliza\xE7\xE3o de cookies.",
|
|
5
|
+
barTitle: "Cookies",
|
|
6
|
+
blockedIframe: "Para visualizar isto, por favor, active os cookies funcionais",
|
|
7
|
+
close: "Fechar",
|
|
8
|
+
declineAll: "Apagar todos",
|
|
9
|
+
functional: "Cookies funcionais",
|
|
10
|
+
here: "aqui",
|
|
11
|
+
manageCookies: "Gerir cookies",
|
|
12
|
+
necessary: "Cookies necess\xE1rios",
|
|
13
|
+
optional: "Cookies opcionais",
|
|
14
|
+
save: "Gravar",
|
|
15
|
+
unsaved: "Tem altera\xE7\xF5es n\xE3o guardadas"
|
|
16
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
acceptAll: "\u041F\u0440\u0438\u043D\u044F\u0442\u044C \u0432\u0441\u0435",
|
|
3
|
+
acceptNecessary: "\u042F \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0435",
|
|
4
|
+
barDescription: "\u041C\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C \u043D\u0430\u0448\u0438 \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B cookie \u0438 \u0441\u0442\u043E\u0440\u043E\u043D\u043D\u0438\u0435 \u0444\u0430\u0439\u043B\u044B cookie, \u0447\u0442\u043E\u0431\u044B \u043C\u044B \u043C\u043E\u0433\u043B\u0438 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u0430\u043C \u044D\u0442\u043E\u0442 \u0432\u0435\u0431-\u0441\u0430\u0439\u0442 \u0438 \u043B\u0443\u0447\u0448\u0435 \u043F\u043E\u043D\u044F\u0442\u044C, \u043A\u0430\u043A \u0432\u044B \u0435\u0433\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0435, \u0441 \u0446\u0435\u043B\u044C\u044E \u0443\u043B\u0443\u0447\u0448\u0435\u043D\u0438\u044F \u043F\u0440\u0435\u0434\u043B\u0430\u0433\u0430\u0435\u043C\u044B\u0445 \u043D\u0430\u043C\u0438 \u0443\u0441\u043B\u0443\u0433. \u0415\u0441\u043B\u0438 \u0432\u044B \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u0435 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440, \u043C\u044B \u0431\u0443\u0434\u0435\u043C \u0441\u0447\u0438\u0442\u0430\u0442\u044C, \u0447\u0442\u043E \u0432\u044B \u043F\u0440\u0438\u043D\u044F\u043B\u0438 \u0444\u0430\u0439\u043B\u044B cookie.",
|
|
5
|
+
barTitle: "\u0424\u0430\u0439\u043B\u044B cookie",
|
|
6
|
+
blockedIframe: "\u0427\u0442\u043E\u0431\u044B \u044D\u0442\u043E \u0443\u0432\u0438\u0434\u0435\u0442\u044C, \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u0435 \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B cookie",
|
|
7
|
+
close: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C",
|
|
8
|
+
declineAll: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0441\u0435",
|
|
9
|
+
functional: "\u0424\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B cookie",
|
|
10
|
+
here: "\u0437\u0434\u0435\u0441\u044C",
|
|
11
|
+
manageCookies: "\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0444\u0430\u0439\u043B\u0430\u043C\u0438 cookie",
|
|
12
|
+
necessary: "\u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u0435 \u0444\u0430\u0439\u043B\u044B cookie",
|
|
13
|
+
optional: "\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B cookie",
|
|
14
|
+
save: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C",
|
|
15
|
+
unsaved: "\u0423 \u0432\u0430\u0441 \u0435\u0441\u0442\u044C \u043D\u0435\u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u043D\u044B\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438"
|
|
16
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
acceptAll: "\u041F\u0440\u0438\u0439\u043D\u044F\u0442\u0438 \u0443\u0441\u0456",
|
|
3
|
+
acceptNecessary: "\u041F\u0440\u0438\u0439\u043C\u0430\u044E \u043D\u0435\u043E\u0431\u0445\u0456\u0434\u043D\u0435",
|
|
4
|
+
barDescription: "\u041C\u0438 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0454\u043C\u043E \u0432\u043B\u0430\u0441\u043D\u0456 \u0444\u0430\u0439\u043B\u0438 cookie \u0442\u0430 \u0441\u0442\u043E\u0440\u043E\u043D\u043D\u0456 \u0444\u0430\u0439\u043B\u0438 cookie, \u0449\u043E\u0431 \u043C\u0438 \u043C\u043E\u0433\u043B\u0438 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u0438 \u0432\u0430\u043C \u0446\u0435\u0439 \u0432\u0435\u0431-\u0441\u0430\u0439\u0442 \u0456 \u043A\u0440\u0430\u0449\u0435 \u0437\u0440\u043E\u0437\u0443\u043C\u0456\u0442\u0438, \u044F\u043A \u0432\u0438 \u043D\u0438\u043C \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0454\u0442\u0435\u0441\u044F, \u0437 \u043C\u0435\u0442\u043E\u044E \u043F\u043E\u043A\u0440\u0430\u0449\u0435\u043D\u043D\u044F \u043F\u0440\u043E\u043F\u043E\u043D\u043E\u0432\u0430\u043D\u0438\u0445 \u043D\u0430\u043C\u0438 \u043F\u043E\u0441\u043B\u0443\u0433. \u042F\u043A\u0449\u043E \u0432\u0438 \u043F\u0440\u043E\u0434\u043E\u0432\u0436\u0443\u0454\u0442\u0435 \u043F\u0435\u0440\u0435\u0433\u043B\u044F\u0434, \u043C\u0438 \u0432\u0432\u0430\u0436\u0430\u0454\u043C\u043E, \u0449\u043E \u0432\u0438 \u043F\u0440\u0438\u0439\u043D\u044F\u043B\u0438 \u0444\u0430\u0439\u043B\u0438 cookie.",
|
|
5
|
+
barTitle: "\u0424\u0430\u0439\u043B\u0438 cookie",
|
|
6
|
+
blockedIframe: "\u0429\u043E\u0431 \u043F\u043E\u0431\u0430\u0447\u0438\u0442\u0438 \u0446\u0435, \u0443\u0432\u0456\u043C\u043A\u043D\u0456\u0442\u044C \u0444\u0443\u043D\u043A\u0446\u0456\u043E\u043D\u0430\u043B\u044C\u043D\u0456 \u0444\u0430\u0439\u043B\u0438 cookie",
|
|
7
|
+
close: "\u0417\u0430\u043A\u0440\u0438\u0442\u0438",
|
|
8
|
+
declineAll: "\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u0443\u0441\u0456",
|
|
9
|
+
functional: "\u0424\u0443\u043D\u043A\u0446\u0456\u043E\u043D\u0430\u043B\u044C\u043D\u0456 \u0444\u0430\u0439\u043B\u0438 cookie",
|
|
10
|
+
here: "\u0442\u0443\u0442",
|
|
11
|
+
manageCookies: "\u041A\u0435\u0440\u0443\u0432\u0430\u0442\u0438 \u0444\u0430\u0439\u043B\u0430\u043C\u0438 cookie",
|
|
12
|
+
necessary: "\u041D\u0435\u043E\u0431\u0445\u0456\u0434\u043D\u0456 \u0444\u0430\u0439\u043B\u0438 cookie",
|
|
13
|
+
optional: "\u0424\u0430\u043A\u0443\u043B\u044C\u0442\u0430\u0442\u0438\u0432\u043D\u0456 \u0444\u0430\u0439\u043B\u0438 cookie",
|
|
14
|
+
save: "\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438",
|
|
15
|
+
unsaved: "\u0423 \u0432\u0430\u0441 \u0454 \u043D\u0435\u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043D\u0456 \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F"
|
|
16
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { Cookie, Locale, ModuleOptions, Translatable } from './types';
|
|
3
|
+
export declare const useAcceptNecessary: () => () => void;
|
|
4
|
+
export declare const acceptNecessary: (enabled: Ref<Cookie[]>, consent: Ref<boolean>, necessaryCookies?: Cookie[]) => void;
|
|
5
|
+
export declare const useResolveTranslatable: (locale?: Locale) => (translatable: Translatable) => string;
|
|
6
|
+
export declare const useSetConsent: () => () => void;
|
|
7
|
+
export declare const setConsent: ({ isInit, isConsentGiven, moduleOptions, cookiesEnabled, cookiesEnabledIds, }: {
|
|
8
|
+
isInit: boolean;
|
|
9
|
+
isConsentGiven: Ref<boolean | undefined>;
|
|
10
|
+
moduleOptions: ModuleOptions;
|
|
11
|
+
cookiesEnabled: Ref<Cookie[]>;
|
|
12
|
+
cookiesEnabledIds: Ref<string[]>;
|
|
13
|
+
}) => void;
|
|
14
|
+
export declare const getCookieId: (cookie: Cookie) => string;
|
|
15
|
+
export declare const clearCookies: (cookiesEnabledIds: string[], cookiesOptional: Cookie[]) => void;
|
|
16
|
+
export declare const setHead: (enabledCookies: Cookie[]) => void;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import Cookies from "js-cookie";
|
|
2
|
+
import slugify from "slugify";
|
|
3
|
+
import { useCookieControl } from "./composables.mjs";
|
|
4
|
+
import { LOCALE_DEFAULT } from "./constants.mjs";
|
|
5
|
+
export const useAcceptNecessary = () => {
|
|
6
|
+
const { cookiesEnabled, isConsentGiven, moduleOptions } = useCookieControl();
|
|
7
|
+
return () => acceptNecessary(
|
|
8
|
+
cookiesEnabled,
|
|
9
|
+
isConsentGiven,
|
|
10
|
+
moduleOptions.cookies?.necessary
|
|
11
|
+
);
|
|
12
|
+
};
|
|
13
|
+
export const acceptNecessary = (enabled, consent, necessaryCookies = []) => {
|
|
14
|
+
const expires = new Date();
|
|
15
|
+
expires.setFullYear(expires.getFullYear() + 1);
|
|
16
|
+
const necessaryCookieIds = necessaryCookies.map(
|
|
17
|
+
(necessaryCookie) => getCookieId(necessaryCookie)
|
|
18
|
+
);
|
|
19
|
+
Cookies.set("cookie_control_enabled_cookies", necessaryCookieIds.join(","), {
|
|
20
|
+
expires
|
|
21
|
+
});
|
|
22
|
+
Cookies.set("cookie_control_consent", "true", { expires });
|
|
23
|
+
consent.value = true;
|
|
24
|
+
if (process.client) {
|
|
25
|
+
setHead(enabled.value);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
export const useResolveTranslatable = (locale = LOCALE_DEFAULT) => {
|
|
29
|
+
return (translatable) => resolveTranslatable(translatable, locale);
|
|
30
|
+
};
|
|
31
|
+
const resolveTranslatable = (translatable, locale) => {
|
|
32
|
+
if (typeof translatable === "string")
|
|
33
|
+
return translatable;
|
|
34
|
+
if (!locale)
|
|
35
|
+
throw new Error("No locale given for translatable that is not a string.");
|
|
36
|
+
const result = translatable[locale];
|
|
37
|
+
if (!result)
|
|
38
|
+
throw new Error(`Could not get translation for locale ${locale}.`);
|
|
39
|
+
return result;
|
|
40
|
+
};
|
|
41
|
+
export const useSetConsent = () => {
|
|
42
|
+
const { isConsentGiven, moduleOptions, cookiesEnabled, cookiesEnabledIds } = useCookieControl();
|
|
43
|
+
return () => setConsent({
|
|
44
|
+
isInit: false,
|
|
45
|
+
isConsentGiven,
|
|
46
|
+
moduleOptions,
|
|
47
|
+
cookiesEnabled,
|
|
48
|
+
cookiesEnabledIds
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
export const setConsent = ({
|
|
52
|
+
isInit = false,
|
|
53
|
+
isConsentGiven,
|
|
54
|
+
moduleOptions,
|
|
55
|
+
cookiesEnabled,
|
|
56
|
+
cookiesEnabledIds
|
|
57
|
+
}) => {
|
|
58
|
+
isConsentGiven.value = Cookies.get("cookie_control_consent") === "true";
|
|
59
|
+
cookiesEnabled.value = [];
|
|
60
|
+
cookiesEnabledIds.value = [];
|
|
61
|
+
if (isConsentGiven.value) {
|
|
62
|
+
const enabledFromCookie = Cookies.get("cookie_control_enabled_cookies");
|
|
63
|
+
cookiesEnabled.value.push(
|
|
64
|
+
...moduleOptions.cookies.optional.filter((cookieOptional) => {
|
|
65
|
+
return enabledFromCookie?.includes(getCookieId(cookieOptional));
|
|
66
|
+
})
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
if (moduleOptions.cookies?.necessary)
|
|
70
|
+
cookiesEnabled.value.push(
|
|
71
|
+
...moduleOptions.cookies.necessary.filter((c) => {
|
|
72
|
+
return c.src;
|
|
73
|
+
})
|
|
74
|
+
);
|
|
75
|
+
cookiesEnabledIds.value = cookiesEnabled.value.map(
|
|
76
|
+
(cookieEnabled) => getCookieId(cookieEnabled)
|
|
77
|
+
);
|
|
78
|
+
if (process.client && !isInit) {
|
|
79
|
+
setHead(cookiesEnabled.value);
|
|
80
|
+
clearCookies(
|
|
81
|
+
cookiesEnabledIds.value,
|
|
82
|
+
moduleOptions.cookies.optional
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
export const getCookieId = (cookie) => cookie.id || slugify(resolveTranslatable(cookie.name));
|
|
87
|
+
export const clearCookies = (cookiesEnabledIds, cookiesOptional) => {
|
|
88
|
+
const cookiesDisabled = cookiesOptional.filter(
|
|
89
|
+
(cookieOptional) => !cookiesEnabledIds.includes(getCookieId(cookieOptional))
|
|
90
|
+
);
|
|
91
|
+
for (const cookieDisabled of cookiesDisabled) {
|
|
92
|
+
if (!cookieDisabled.targetCookieIds)
|
|
93
|
+
continue;
|
|
94
|
+
for (const cookieDisabledId of cookieDisabled.targetCookieIds) {
|
|
95
|
+
Cookies.remove(cookieDisabledId);
|
|
96
|
+
}
|
|
97
|
+
if (cookieDisabled.src) {
|
|
98
|
+
for (const s of [
|
|
99
|
+
...document.head.querySelectorAll(
|
|
100
|
+
`script[src="${cookieDisabled.src}"]`
|
|
101
|
+
)
|
|
102
|
+
]) {
|
|
103
|
+
s.parentNode?.removeChild(s);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
export const setHead = (enabledCookies) => {
|
|
109
|
+
const head = document.getElementsByTagName("head")[0];
|
|
110
|
+
for (const cookieEnabled of enabledCookies) {
|
|
111
|
+
if (!cookieEnabled.src)
|
|
112
|
+
continue;
|
|
113
|
+
const script = document.createElement("script");
|
|
114
|
+
script.src = cookieEnabled.src;
|
|
115
|
+
head.appendChild(script);
|
|
116
|
+
}
|
|
117
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { setConsent } from "./methods.mjs";
|
|
2
|
+
import moduleOptions from "#build/cookie-control-options";
|
|
3
|
+
export default defineNuxtPlugin((_nuxtApp) => {
|
|
4
|
+
const isConsentGiven = ref();
|
|
5
|
+
const cookiesEnabled = ref([]);
|
|
6
|
+
const cookiesEnabledIds = ref([]);
|
|
7
|
+
const isModalActive = ref();
|
|
8
|
+
const state = {
|
|
9
|
+
isConsentGiven,
|
|
10
|
+
cookiesEnabled,
|
|
11
|
+
cookiesEnabledIds,
|
|
12
|
+
isModalActive,
|
|
13
|
+
moduleOptions
|
|
14
|
+
};
|
|
15
|
+
setConsent({
|
|
16
|
+
isInit: !process.client,
|
|
17
|
+
isConsentGiven,
|
|
18
|
+
moduleOptions,
|
|
19
|
+
cookiesEnabled,
|
|
20
|
+
cookiesEnabledIds
|
|
21
|
+
});
|
|
22
|
+
return {
|
|
23
|
+
provide: {
|
|
24
|
+
cookies: state
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
});
|