@consent.software/catalog 1.4.4 → 1.5.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.
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@consent.software/catalog',
6
- version: '1.4.4',
6
+ version: '1.5.0',
7
7
  description: 'A library of web components designed to integrate robust consent management capabilities into web applications, ensuring compliance with privacy regulations.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsMkJBQTJCO0lBQ2pDLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSwrSkFBK0o7Q0FDN0ssQ0FBQSJ9
@@ -33,7 +33,8 @@ export declare class ConsentsoftwareCookieconsent extends LitElement {
33
33
  /**
34
34
  * Sets the user’s chosen cookie level(s) and hides the banner.
35
35
  */
36
- private setLevel;
36
+ private handleConsentButtonClick;
37
+ private pageOverlayClick;
37
38
  /**
38
39
  * Dynamically switches the theme between light/dark,
39
40
  * respecting `prefers-color-scheme` by default.
@@ -65,11 +65,16 @@ let ConsentsoftwareCookieconsent = class ConsentsoftwareCookieconsent extends Li
65
65
  align-items: center;
66
66
  justify-content: center;
67
67
  z-index: 1000; /* standard z-index for fixed elements */
68
- background: rgba(0, 0, 0, 0);
68
+ background: rgba(255, 255, 255, 0);
69
69
  backdrop-filter: blur(0px);
70
70
  transition: all 0.2s;
71
71
  }
72
72
 
73
+ .pageOverlay.shake {
74
+ background: rgba(0, 0, 0, 0.5) !important;
75
+ backdrop-filter: blur(20px) !important;
76
+ }
77
+
73
78
  .modalBox {
74
79
  display: block;
75
80
  color: var(--text-color);
@@ -83,16 +88,29 @@ let ConsentsoftwareCookieconsent = class ConsentsoftwareCookieconsent extends Li
83
88
  min-width: calc(100vw / 3);
84
89
  box-sizing: border-box;
85
90
  overflow: hidden;
86
- /*
87
- * We start with margin-bottom as negative to hide the banner.
88
- * The animation occurs when we toggle the gotIt/show attributes.
89
- */
90
91
  will-change: transform; /* ensure efficient rendering */
91
92
  transition: all 0.3s;
92
93
  transform: scale(0.95);
93
94
  opacity: 0;
94
95
  }
95
96
 
97
+ .modalBox.shake {
98
+ animation: shake 150ms 2 linear;
99
+ box-shadow: 0px 0px 15px rgba(255, 255, 255, 0.6);
100
+ }
101
+
102
+ @keyframes shake {
103
+ 0% {
104
+ transform: translate(3px, 0);
105
+ }
106
+ 50% {
107
+ transform: translate(-3px, 0);
108
+ }
109
+ 100% {
110
+ transform: translate(0, 0);
111
+ }
112
+ }
113
+
96
114
  /*
97
115
  * Toggle display based on [show] attribute
98
116
  * (so if show=false, the banner doesn't show at all).
@@ -104,18 +122,6 @@ let ConsentsoftwareCookieconsent = class ConsentsoftwareCookieconsent extends Li
104
122
  display: block;
105
123
  }
106
124
 
107
- /*
108
- * Animate margin-bottom when [gotIt] toggles.
109
- * If gotIt=true, push the banner down off-screen.
110
- * If gotIt=false, pull the banner into view.
111
- */
112
- :host([gotIt='true']) {
113
- background: blue;
114
- }
115
- :host([gotIt='false']) {
116
- background: red;
117
- }
118
-
119
125
  .content {
120
126
  margin: auto;
121
127
  }
@@ -178,12 +184,11 @@ let ConsentsoftwareCookieconsent = class ConsentsoftwareCookieconsent extends Li
178
184
  this.csWebclientInstance = new csWebclient.CsWebclient();
179
185
  this.csWebclientRan = false;
180
186
  this.theme = 'light';
181
- this.setAttribute('gotIt', 'true');
182
187
  this.setAttribute('show', 'false');
183
188
  }
184
189
  render() {
185
190
  return html `
186
- <div class="pageOverlay">
191
+ <div class="pageOverlay" @click=${this.pageOverlayClick}>
187
192
  <div class="modalBox">
188
193
  <div class="content">
189
194
  <consentsoftware-header></consentsoftware-header>
@@ -198,25 +203,25 @@ let ConsentsoftwareCookieconsent = class ConsentsoftwareCookieconsent extends Li
198
203
  <!-- <div class="button-container">
199
204
  <div
200
205
  class="consent-button"
201
- @click=${(event) => this.setLevel(event, ['functional'])}
206
+ @click=${(event) => this.handleConsentButtonClick(event, ['functional'])}
202
207
  >
203
208
  Functional cookies
204
209
  </div>
205
210
  <div
206
211
  class="consent-button"
207
- @click=${(event) => this.setLevel(event, ['functional', 'analytics'])}
212
+ @click=${(event) => this.handleConsentButtonClick(event, ['functional', 'analytics'])}
208
213
  >
209
214
  Analytics cookies
210
215
  </div>
211
216
  <div
212
217
  class="consent-button"
213
- @click=${(event) => this.setLevel(event, ['functional', 'analytics', 'marketing'])}
218
+ @click=${(event) => this.handleConsentButtonClick(event, ['functional', 'analytics', 'marketing'])}
214
219
  >
215
220
  Marketing cookies
216
221
  </div>
217
222
  <div
218
223
  class="consent-button"
219
- @click=${(event) => this.setLevel(event, ['functional', 'analytics', 'marketing', 'all'])}
224
+ @click=${(event) => this.handleConsentButtonClick(event, ['functional', 'analytics', 'marketing', 'all'])}
220
225
  >
221
226
  All cookies
222
227
  </div>
@@ -225,19 +230,19 @@ let ConsentsoftwareCookieconsent = class ConsentsoftwareCookieconsent extends Li
225
230
  <div class="button-container">
226
231
  <div
227
232
  class="consent-button"
228
- @click=${(event) => this.setLevel(event, ['functional'])}
233
+ @click=${(event) => this.handleConsentButtonClick(event, ['functional'])}
229
234
  >
230
235
  Deny
231
236
  </div>
232
237
  <div
233
238
  class="consent-button"
234
- @click=${(event) => this.setLevel(event, ['functional', 'analytics'])}
239
+ @click=${(event) => this.handleConsentButtonClick(event, ['functional', 'analytics'])}
235
240
  >
236
241
  Accept selection
237
242
  </div>
238
243
  <div
239
244
  class="consent-button"
240
- @click=${(event) => this.setLevel(event, ['functional', 'analytics', 'marketing'])}
245
+ @click=${(event) => this.handleConsentButtonClick(event, ['functional', 'analytics', 'marketing'])}
241
246
  >
242
247
  Accept all cookies
243
248
  </div>
@@ -245,6 +250,7 @@ let ConsentsoftwareCookieconsent = class ConsentsoftwareCookieconsent extends Li
245
250
  <div class="info-container">
246
251
  consent management powered by
247
252
  <a href="https://consent.software">consent.software</a>
253
+ (Open Source)
248
254
  </div>
249
255
  </div>
250
256
  </div>
@@ -260,13 +266,12 @@ let ConsentsoftwareCookieconsent = class ConsentsoftwareCookieconsent extends Li
260
266
  const cookieLevel = await this.csWebclientInstance.getCookieLevels();
261
267
  if (!cookieLevel) {
262
268
  this.setAttribute('show', 'true');
263
- this.setAttribute('gotIt', 'false');
264
269
  requestAnimationFrame(async () => {
265
270
  await this.updated();
266
271
  const pageOverlay = this.shadowRoot?.querySelector('.pageOverlay');
267
272
  if (pageOverlay) {
268
- pageOverlay.style.background = 'rgba(0, 0, 0, 0.1)';
269
- pageOverlay.style.backdropFilter = 'blur(2px)';
273
+ pageOverlay.style.background = 'rgba(255,255,255, 0.1)';
274
+ pageOverlay.style.backdropFilter = 'blur(0px)';
270
275
  }
271
276
  const modalBox = this.shadowRoot?.querySelector('.modalBox');
272
277
  if (modalBox) {
@@ -277,7 +282,6 @@ let ConsentsoftwareCookieconsent = class ConsentsoftwareCookieconsent extends Li
277
282
  }
278
283
  else {
279
284
  this.setAttribute('show', 'false');
280
- this.setAttribute('gotIt', 'true');
281
285
  }
282
286
  }
283
287
  /**
@@ -299,15 +303,37 @@ let ConsentsoftwareCookieconsent = class ConsentsoftwareCookieconsent extends Li
299
303
  /**
300
304
  * Sets the user’s chosen cookie level(s) and hides the banner.
301
305
  */
302
- async setLevel(event, levelsArg) {
306
+ async handleConsentButtonClick(event, levelsArg) {
303
307
  console.log(`Set level to ${levelsArg}`);
308
+ const pageOverlay = this.shadowRoot?.querySelector('.pageOverlay');
309
+ if (pageOverlay) {
310
+ pageOverlay.style.background = 'rgba(255,255,255, 0)';
311
+ pageOverlay.style.backdropFilter = 'blur(0px)';
312
+ }
313
+ const modalBox = this.shadowRoot?.querySelector('.modalBox');
314
+ if (modalBox) {
315
+ modalBox.style.transform = `scale(0.95)`;
316
+ modalBox.style.opacity = '0';
317
+ }
304
318
  await this.csWebclientInstance.setCookieLevels(levelsArg);
305
- this.setAttribute('gotIt', 'true');
306
319
  await delayFor(300);
307
320
  this.setAttribute('show', 'false');
308
321
  // After user selection, re-check for any required scripts to run
309
322
  this.updated();
310
323
  }
324
+ async pageOverlayClick(e) {
325
+ if (e.target === e.currentTarget) {
326
+ const pageOverlay = this.shadowRoot?.querySelector('.pageOverlay');
327
+ const modalBox = this.shadowRoot?.querySelector('.modalBox');
328
+ if (pageOverlay && modalBox) {
329
+ pageOverlay.classList.add('shake');
330
+ modalBox.classList.add('shake');
331
+ await delayFor(300);
332
+ pageOverlay.classList.remove('shake');
333
+ modalBox.classList.remove('shake');
334
+ }
335
+ }
336
+ }
311
337
  /**
312
338
  * Dynamically switches the theme between light/dark,
313
339
  * respecting `prefers-color-scheme` by default.
@@ -329,4 +355,4 @@ ConsentsoftwareCookieconsent = __decorate([
329
355
  __metadata("design:paramtypes", [])
330
356
  ], ConsentsoftwareCookieconsent);
331
357
  export { ConsentsoftwareCookieconsent };
332
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2VudHNvZnR3YXJlLWNvb2tpZWNvbnNlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvY29uc2VudHNvZnR3YXJlLWNvb2tpZWNvbnNlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFFdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUF1QixNQUFNLEtBQUssQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRELE9BQU8sS0FBSyxZQUFZLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxLQUFLLFdBQVcsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFTM0MsSUFBTSw0QkFBNEIsR0FBbEMsTUFBTSw0QkFBNkIsU0FBUSxVQUFVO2FBQzVDLFNBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUEsaUVBQWlFLEFBQTlFLENBQStFO0lBUWpHOzs7T0FHRzthQUNXLFdBQU0sR0FBRyxHQUFHLENBQUE7O3FCQUVQLE1BQU0sQ0FBQyxTQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzSmxDLEFBeEptQixDQXdKbEI7SUFFRjtRQUNFLEtBQUssRUFBRSxDQUFDO1FBcktILHdCQUFtQixHQUFHLElBQUksV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BELG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBR3ZCLFVBQUssR0FBcUIsT0FBTyxDQUFDO1FBa0t2QyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU0sTUFBTTtRQUNYLE9BQU8sSUFBSSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7O3lCQWdCVSxDQUFDLEtBQWlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7Ozs7Ozt5QkFNM0QsQ0FBQyxLQUFpQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsQ0FBQzs7Ozs7O3lCQU14RSxDQUFDLEtBQWlCLEVBQUUsRUFBRSxDQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7Ozs7Ozt5QkFNbkQsQ0FBQyxLQUFpQixFQUFFLEVBQUUsQ0FDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQzs7Ozs7Ozs7O3lCQVMxRCxDQUFDLEtBQWlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7Ozs7Ozt5QkFNM0QsQ0FBQyxLQUFpQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsQ0FBQzs7Ozs7O3lCQU14RSxDQUFDLEtBQWlCLEVBQUUsRUFBRSxDQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7Ozs7Ozs7Ozs7OztLQVkzRSxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGlCQUFpQjtRQUM1QixLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFbkIsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDckUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLHFCQUFxQixDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUMvQixNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDckIsTUFBTSxXQUFXLEdBQW1CLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNuRixJQUFJLFdBQVcsRUFBRSxDQUFDO29CQUNoQixXQUFXLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQztvQkFDcEQsV0FBVyxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO2dCQUNqRCxDQUFDO2dCQUNELE1BQU0sUUFBUSxHQUFtQixJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDN0UsSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDYixRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7b0JBQ3RDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztnQkFDL0IsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxZQUFZLEtBQUksQ0FBQztJQUU5Qjs7T0FFRztJQUNJLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0NBQXNDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFlBQVksSUFBSSxDQUFDLENBQUM7UUFDM0YsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM5RSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDMUQsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBaUIsRUFBRSxTQUFzQztRQUM5RSxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuQyxNQUFNLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuQyxpRUFBaUU7UUFDakUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxXQUFXO1FBQ2pCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsOEJBQThCLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDOUUsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxVQUFVLENBQUMsOEJBQThCLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNqRixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF2VE07SUFETixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQzs7MkRBQ0Q7QUFQOUIsNEJBQTRCO0lBRHhDLGFBQWEsQ0FBQywrQkFBK0IsQ0FBQzs7R0FDbEMsNEJBQTRCLENBK1R4QyJ9
358
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2VudHNvZnR3YXJlLWNvb2tpZWNvbnNlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvY29uc2VudHNvZnR3YXJlLWNvb2tpZWNvbnNlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFFdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUF1QixNQUFNLEtBQUssQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRELE9BQU8sS0FBSyxZQUFZLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxLQUFLLFdBQVcsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFTM0MsSUFBTSw0QkFBNEIsR0FBbEMsTUFBTSw0QkFBNkIsU0FBUSxVQUFVO2FBQzVDLFNBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUEsaUVBQWlFLEFBQTlFLENBQStFO0lBUWpHOzs7T0FHRzthQUNXLFdBQU0sR0FBRyxHQUFHLENBQUE7O3FCQUVQLE1BQU0sQ0FBQyxTQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0SmxDLEFBOUptQixDQThKbEI7SUFFRjtRQUNFLEtBQUssRUFBRSxDQUFDO1FBM0tILHdCQUFtQixHQUFHLElBQUksV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BELG1CQUFj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
@@ -42280,12 +42280,11 @@ var ConsentsoftwareCookieconsent = class extends r4 {
42280
42280
  this.csWebclientInstance = new CsWebclient();
42281
42281
  this.csWebclientRan = false;
42282
42282
  this.theme = "light";
42283
- this.setAttribute("gotIt", "true");
42284
42283
  this.setAttribute("show", "false");
42285
42284
  }
42286
42285
  render() {
42287
42286
  return x`
42288
- <div class="pageOverlay">
42287
+ <div class="pageOverlay" @click=${this.pageOverlayClick}>
42289
42288
  <div class="modalBox">
42290
42289
  <div class="content">
42291
42290
  <consentsoftware-header></consentsoftware-header>
@@ -42300,25 +42299,25 @@ var ConsentsoftwareCookieconsent = class extends r4 {
42300
42299
  <!-- <div class="button-container">
42301
42300
  <div
42302
42301
  class="consent-button"
42303
- @click=${(event) => this.setLevel(event, ["functional"])}
42302
+ @click=${(event) => this.handleConsentButtonClick(event, ["functional"])}
42304
42303
  >
42305
42304
  Functional cookies
42306
42305
  </div>
42307
42306
  <div
42308
42307
  class="consent-button"
42309
- @click=${(event) => this.setLevel(event, ["functional", "analytics"])}
42308
+ @click=${(event) => this.handleConsentButtonClick(event, ["functional", "analytics"])}
42310
42309
  >
42311
42310
  Analytics cookies
42312
42311
  </div>
42313
42312
  <div
42314
42313
  class="consent-button"
42315
- @click=${(event) => this.setLevel(event, ["functional", "analytics", "marketing"])}
42314
+ @click=${(event) => this.handleConsentButtonClick(event, ["functional", "analytics", "marketing"])}
42316
42315
  >
42317
42316
  Marketing cookies
42318
42317
  </div>
42319
42318
  <div
42320
42319
  class="consent-button"
42321
- @click=${(event) => this.setLevel(event, ["functional", "analytics", "marketing", "all"])}
42320
+ @click=${(event) => this.handleConsentButtonClick(event, ["functional", "analytics", "marketing", "all"])}
42322
42321
  >
42323
42322
  All cookies
42324
42323
  </div>
@@ -42327,19 +42326,19 @@ var ConsentsoftwareCookieconsent = class extends r4 {
42327
42326
  <div class="button-container">
42328
42327
  <div
42329
42328
  class="consent-button"
42330
- @click=${(event) => this.setLevel(event, ["functional"])}
42329
+ @click=${(event) => this.handleConsentButtonClick(event, ["functional"])}
42331
42330
  >
42332
42331
  Deny
42333
42332
  </div>
42334
42333
  <div
42335
42334
  class="consent-button"
42336
- @click=${(event) => this.setLevel(event, ["functional", "analytics"])}
42335
+ @click=${(event) => this.handleConsentButtonClick(event, ["functional", "analytics"])}
42337
42336
  >
42338
42337
  Accept selection
42339
42338
  </div>
42340
42339
  <div
42341
42340
  class="consent-button"
42342
- @click=${(event) => this.setLevel(event, ["functional", "analytics", "marketing"])}
42341
+ @click=${(event) => this.handleConsentButtonClick(event, ["functional", "analytics", "marketing"])}
42343
42342
  >
42344
42343
  Accept all cookies
42345
42344
  </div>
@@ -42347,6 +42346,7 @@ var ConsentsoftwareCookieconsent = class extends r4 {
42347
42346
  <div class="info-container">
42348
42347
  consent management powered by
42349
42348
  <a href="https://consent.software">consent.software</a>
42349
+ (Open Source)
42350
42350
  </div>
42351
42351
  </div>
42352
42352
  </div>
@@ -42362,13 +42362,12 @@ var ConsentsoftwareCookieconsent = class extends r4 {
42362
42362
  const cookieLevel = await this.csWebclientInstance.getCookieLevels();
42363
42363
  if (!cookieLevel) {
42364
42364
  this.setAttribute("show", "true");
42365
- this.setAttribute("gotIt", "false");
42366
42365
  requestAnimationFrame(async () => {
42367
42366
  await this.updated();
42368
42367
  const pageOverlay = this.shadowRoot?.querySelector(".pageOverlay");
42369
42368
  if (pageOverlay) {
42370
- pageOverlay.style.background = "rgba(0, 0, 0, 0.1)";
42371
- pageOverlay.style.backdropFilter = "blur(2px)";
42369
+ pageOverlay.style.background = "rgba(255,255,255, 0.1)";
42370
+ pageOverlay.style.backdropFilter = "blur(0px)";
42372
42371
  }
42373
42372
  const modalBox = this.shadowRoot?.querySelector(".modalBox");
42374
42373
  if (modalBox) {
@@ -42378,7 +42377,6 @@ var ConsentsoftwareCookieconsent = class extends r4 {
42378
42377
  });
42379
42378
  } else {
42380
42379
  this.setAttribute("show", "false");
42381
- this.setAttribute("gotIt", "true");
42382
42380
  }
42383
42381
  }
42384
42382
  /**
@@ -42401,14 +42399,36 @@ var ConsentsoftwareCookieconsent = class extends r4 {
42401
42399
  /**
42402
42400
  * Sets the user’s chosen cookie level(s) and hides the banner.
42403
42401
  */
42404
- async setLevel(event, levelsArg) {
42402
+ async handleConsentButtonClick(event, levelsArg) {
42405
42403
  console.log(`Set level to ${levelsArg}`);
42404
+ const pageOverlay = this.shadowRoot?.querySelector(".pageOverlay");
42405
+ if (pageOverlay) {
42406
+ pageOverlay.style.background = "rgba(255,255,255, 0)";
42407
+ pageOverlay.style.backdropFilter = "blur(0px)";
42408
+ }
42409
+ const modalBox = this.shadowRoot?.querySelector(".modalBox");
42410
+ if (modalBox) {
42411
+ modalBox.style.transform = `scale(0.95)`;
42412
+ modalBox.style.opacity = "0";
42413
+ }
42406
42414
  await this.csWebclientInstance.setCookieLevels(levelsArg);
42407
- this.setAttribute("gotIt", "true");
42408
42415
  await delayFor(300);
42409
42416
  this.setAttribute("show", "false");
42410
42417
  this.updated();
42411
42418
  }
42419
+ async pageOverlayClick(e8) {
42420
+ if (e8.target === e8.currentTarget) {
42421
+ const pageOverlay = this.shadowRoot?.querySelector(".pageOverlay");
42422
+ const modalBox = this.shadowRoot?.querySelector(".modalBox");
42423
+ if (pageOverlay && modalBox) {
42424
+ pageOverlay.classList.add("shake");
42425
+ modalBox.classList.add("shake");
42426
+ await delayFor(300);
42427
+ pageOverlay.classList.remove("shake");
42428
+ modalBox.classList.remove("shake");
42429
+ }
42430
+ }
42431
+ }
42412
42432
  /**
42413
42433
  * Dynamically switches the theme between light/dark,
42414
42434
  * respecting `prefers-color-scheme` by default.
@@ -42471,11 +42491,16 @@ ConsentsoftwareCookieconsent.styles = i`
42471
42491
  align-items: center;
42472
42492
  justify-content: center;
42473
42493
  z-index: 1000; /* standard z-index for fixed elements */
42474
- background: rgba(0, 0, 0, 0);
42494
+ background: rgba(255, 255, 255, 0);
42475
42495
  backdrop-filter: blur(0px);
42476
42496
  transition: all 0.2s;
42477
42497
  }
42478
42498
 
42499
+ .pageOverlay.shake {
42500
+ background: rgba(0, 0, 0, 0.5) !important;
42501
+ backdrop-filter: blur(20px) !important;
42502
+ }
42503
+
42479
42504
  .modalBox {
42480
42505
  display: block;
42481
42506
  color: var(--text-color);
@@ -42489,16 +42514,29 @@ ConsentsoftwareCookieconsent.styles = i`
42489
42514
  min-width: calc(100vw / 3);
42490
42515
  box-sizing: border-box;
42491
42516
  overflow: hidden;
42492
- /*
42493
- * We start with margin-bottom as negative to hide the banner.
42494
- * The animation occurs when we toggle the gotIt/show attributes.
42495
- */
42496
42517
  will-change: transform; /* ensure efficient rendering */
42497
42518
  transition: all 0.3s;
42498
42519
  transform: scale(0.95);
42499
42520
  opacity: 0;
42500
42521
  }
42501
42522
 
42523
+ .modalBox.shake {
42524
+ animation: shake 150ms 2 linear;
42525
+ box-shadow: 0px 0px 15px rgba(255, 255, 255, 0.6);
42526
+ }
42527
+
42528
+ @keyframes shake {
42529
+ 0% {
42530
+ transform: translate(3px, 0);
42531
+ }
42532
+ 50% {
42533
+ transform: translate(-3px, 0);
42534
+ }
42535
+ 100% {
42536
+ transform: translate(0, 0);
42537
+ }
42538
+ }
42539
+
42502
42540
  /*
42503
42541
  * Toggle display based on [show] attribute
42504
42542
  * (so if show=false, the banner doesn't show at all).
@@ -42510,18 +42548,6 @@ ConsentsoftwareCookieconsent.styles = i`
42510
42548
  display: block;
42511
42549
  }
42512
42550
 
42513
- /*
42514
- * Animate margin-bottom when [gotIt] toggles.
42515
- * If gotIt=true, push the banner down off-screen.
42516
- * If gotIt=false, pull the banner into view.
42517
- */
42518
- :host([gotIt='true']) {
42519
- background: blue;
42520
- }
42521
- :host([gotIt='false']) {
42522
- background: red;
42523
- }
42524
-
42525
42551
  .content {
42526
42552
  margin: auto;
42527
42553
  }