@dargmuesli/nuxt-cookie-control 9.0.10 → 9.1.1

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/README.md CHANGED
@@ -185,6 +185,10 @@ isIframeBlocked: false,
185
185
  // Switch to toggle the modal being shown right away, requiring a user's decision.
186
186
  isModalForced: false,
187
187
 
188
+ // "Decline all" in the modal removes all cookies by default (which will re-open the cookie bar).
189
+ // Set this to true to decline all optional cookies and accept necessary cookies.
190
+ declineAllAcceptsNecessary: false,
191
+
188
192
  // The locales to include.
189
193
  locales: ['en'],
190
194
 
package/dist/module.d.mts CHANGED
@@ -53,6 +53,7 @@ interface ModuleOptions {
53
53
  isDashInDescriptionEnabled: boolean;
54
54
  isIframeBlocked: boolean;
55
55
  isModalForced: boolean;
56
+ declineAllAcceptsNecessary: boolean;
56
57
  locales: Locale[];
57
58
  localeTexts: PartialRecord<Locale, Partial<LocaleStrings>>;
58
59
  }
package/dist/module.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dargmuesli/nuxt-cookie-control",
3
- "version": "9.0.10",
3
+ "version": "9.1.1",
4
4
  "configKey": "cookieControl",
5
5
  "compatibility": {
6
6
  "nuxt": ">=3.0.0"
package/dist/module.mjs CHANGED
@@ -99,12 +99,13 @@ const DEFAULTS = {
99
99
  isDashInDescriptionEnabled: true,
100
100
  isIframeBlocked: false,
101
101
  isModalForced: false,
102
+ declineAllAcceptsNecessary: false,
102
103
  locales: ["en"],
103
104
  localeTexts: { en }
104
105
  };
105
106
 
106
107
  const name = "@dargmuesli/nuxt-cookie-control";
107
- const version = "9.0.10";
108
+ const version = "9.1.1";
108
109
 
109
110
  const resolver = createResolver(import.meta.url);
110
111
  const runtimeDir = resolver.resolve("./runtime");
@@ -100,11 +100,11 @@
100
100
  :id="resolveTranslatable(cookie.name, locale)"
101
101
  type="checkbox"
102
102
  :checked="
103
- isConsentGiven === void 0 ? cookie.isPreselected : getCookieIds(localCookiesEnabled).includes(
103
+ getCookieIds(localCookiesEnabled).includes(
104
104
  cookie.id
105
105
  )
106
106
  "
107
- @change="toogleCookie(cookie)"
107
+ @change="toggleCookie(cookie)"
108
108
  />
109
109
  <button type="button" @click="toggleButton($event)">
110
110
  {{ getName(cookie.name) }}
@@ -182,7 +182,7 @@
182
182
  type="button"
183
183
  @click="
184
184
  () => {
185
- acceptNone();
185
+ moduleOptions.declineAllAcceptsNecessary ? acceptNecessary() : acceptNone();
186
186
  isModalActive = false;
187
187
  }
188
188
  "
@@ -222,7 +222,12 @@ const {
222
222
  } = useCookieControl();
223
223
  const nuxtApp = useNuxtApp();
224
224
  const expires = new Date(Date.now() + moduleOptions.cookieExpiryOffsetMs);
225
- const localCookiesEnabled = ref([...cookiesEnabled.value || []]);
225
+ const preselectedCookies = moduleOptions.cookies[CookieType.OPTIONAL].filter(
226
+ (cookie) => cookie.isPreselected
227
+ );
228
+ const localCookiesEnabled = ref([
229
+ ...cookiesEnabled.value || (isConsentGiven.value === void 0 ? preselectedCookies : [])
230
+ ]);
226
231
  const allCookieIdsString = getAllCookieIdsString(moduleOptions);
227
232
  const cookieIsConsentGiven = useCookie(moduleOptions.cookieNameIsConsentGiven, {
228
233
  expires,
@@ -241,30 +246,29 @@ const isSaved = computed(
241
246
  const localeStrings = computed(() => moduleOptions.localeTexts[locale]);
242
247
  const acceptAll = () => {
243
248
  setCookies({
244
- isConsentGiven: true,
245
- cookiesOptionalEnabled: moduleOptions.cookies.optional
249
+ cookiesOptionalEnabled: moduleOptions.cookies.optional,
250
+ isConsentGiven: true
246
251
  });
247
252
  };
248
253
  const acceptPartial = () => {
249
254
  const localCookiesEnabledIds = getCookieIds(localCookiesEnabled.value);
250
255
  setCookies({
251
- isConsentGiven: true,
252
- cookiesOptionalEnabled: [
253
- ...moduleOptions.cookies.necessary,
254
- ...moduleOptions.cookies.optional
255
- ].filter((cookie) => localCookiesEnabledIds.includes(cookie.id))
256
+ cookiesOptionalEnabled: moduleOptions.cookies.optional.filter(
257
+ (cookie) => localCookiesEnabledIds.includes(cookie.id)
258
+ ),
259
+ isConsentGiven: true
256
260
  });
257
261
  };
258
262
  const acceptNecessary = () => {
259
263
  setCookies({
260
- isConsentGiven: true,
261
- cookiesOptionalEnabled: moduleOptions.cookies.necessary
264
+ cookiesOptionalEnabled: [],
265
+ isConsentGiven: true
262
266
  });
263
267
  };
264
268
  const acceptNone = () => {
265
269
  setCookies({
266
- isConsentGiven: false,
267
- cookiesOptionalEnabled: []
270
+ cookiesOptionalEnabled: [],
271
+ isConsentGiven: false
268
272
  });
269
273
  };
270
274
  const getDescription = (description) => `${moduleOptions.isDashInDescriptionEnabled === false ? "" : "-"} ${resolveTranslatable(description, locale)}`;
@@ -296,7 +300,7 @@ const toggleButton = ($event) => {
296
300
  ;
297
301
  $event.target?.nextSibling?.click();
298
302
  };
299
- const toogleCookie = (cookie) => {
303
+ const toggleCookie = (cookie) => {
300
304
  const cookieIndex = getCookieIds(localCookiesEnabled.value).indexOf(cookie.id);
301
305
  if (cookieIndex < 0) {
302
306
  localCookiesEnabled.value.push(cookie);
@@ -55,6 +55,7 @@ export interface ModuleOptions {
55
55
  isDashInDescriptionEnabled: boolean;
56
56
  isIframeBlocked: boolean;
57
57
  isModalForced: boolean;
58
+ declineAllAcceptsNecessary: boolean;
58
59
  locales: Locale[];
59
60
  localeTexts: PartialRecord<Locale, Partial<LocaleStrings>>;
60
61
  }
@@ -56,6 +56,7 @@ export const DEFAULTS = {
56
56
  isDashInDescriptionEnabled: true,
57
57
  isIframeBlocked: false,
58
58
  isModalForced: false,
59
+ declineAllAcceptsNecessary: false,
59
60
  locales: ["en"],
60
61
  // TODO: use Nuxt module "i18n"
61
62
  localeTexts: { en }
package/package.json CHANGED
@@ -14,27 +14,27 @@
14
14
  "@commitlint/cli": "19.8.1",
15
15
  "@commitlint/config-conventional": "19.8.1",
16
16
  "@dargmuesli/nuxt-cookie-control": "link:",
17
- "@nuxt/eslint-config": "1.7.1",
17
+ "@nuxt/eslint-config": "1.8.0",
18
18
  "@nuxt/module-builder": "1.0.2",
19
- "@nuxt/schema": "4.0.2",
19
+ "@nuxt/schema": "4.0.3",
20
20
  "@semantic-release/changelog": "6.0.3",
21
21
  "@semantic-release/commit-analyzer": "13.0.1",
22
22
  "@semantic-release/git": "10.0.1",
23
- "@semantic-release/github": "11.0.3",
23
+ "@semantic-release/github": "11.0.4",
24
24
  "@semantic-release/npm": "12.0.2",
25
25
  "@semantic-release/release-notes-generator": "14.0.3",
26
- "eslint": "9.32.0",
26
+ "eslint": "9.33.0",
27
27
  "eslint-config-prettier": "10.1.8",
28
- "eslint-plugin-prettier": "5.5.3",
28
+ "eslint-plugin-prettier": "5.5.4",
29
29
  "husky": "9.1.7",
30
- "lint-staged": "16.1.2",
31
- "nuxt": "4.0.2",
30
+ "lint-staged": "16.1.5",
31
+ "nuxt": "4.0.3",
32
32
  "prettier": "3.6.2",
33
33
  "semantic-release": "24.2.7",
34
- "vite": "7.0.6",
34
+ "vite": "7.1.2",
35
35
  "vue": "3.5.18",
36
36
  "vue-tsc": "3.0.5",
37
- "webpack": "5.101.0"
37
+ "webpack": "5.101.1"
38
38
  },
39
39
  "engines": {
40
40
  "node": ">=16"
@@ -71,7 +71,7 @@
71
71
  "unrs-resolver"
72
72
  ],
73
73
  "overrides": {
74
- "@types/eslint": "npm:eslint@9.32.0"
74
+ "@types/eslint": "npm:eslint@9.33.0"
75
75
  }
76
76
  },
77
77
  "publishConfig": {
@@ -99,5 +99,5 @@
99
99
  ]
100
100
  }
101
101
  },
102
- "version": "9.0.10"
102
+ "version": "9.1.1"
103
103
  }