@c15t/dev-tools 2.0.0-rc.3 → 2.0.0-rc.4
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/CHANGELOG.md +9 -0
- package/dist/components/panel.d.ts.map +1 -1
- package/dist/components/tabs.d.ts.map +1 -1
- package/dist/components/ui.d.ts +8 -0
- package/dist/components/ui.d.ts.map +1 -1
- package/dist/core/debug-bundle.d.ts +14 -0
- package/dist/core/debug-bundle.d.ts.map +1 -0
- package/dist/core/devtools.d.ts.map +1 -1
- package/dist/core/panel-renderer.d.ts +5 -0
- package/dist/core/panel-renderer.d.ts.map +1 -1
- package/dist/core/state-manager.d.ts.map +1 -1
- package/dist/core/store-connector.d.ts +16 -0
- package/dist/core/store-connector.d.ts.map +1 -1
- package/dist/core/store-instrumentation.d.ts +13 -0
- package/dist/core/store-instrumentation.d.ts.map +1 -0
- package/dist/index.cjs +1681 -905
- package/dist/index.js +1680 -904
- package/dist/panels/actions.d.ts +1 -0
- package/dist/panels/actions.d.ts.map +1 -1
- package/dist/panels/consents.d.ts.map +1 -1
- package/dist/panels/events.d.ts.map +1 -1
- package/dist/panels/iab.d.ts.map +1 -1
- package/dist/panels/location.d.ts.map +1 -1
- package/dist/panels/scripts.d.ts.map +1 -1
- package/dist/react.cjs +1610 -748
- package/dist/react.js +1610 -748
- package/dist/tanstack.cjs +1565 -532
- package/dist/tanstack.js +1565 -532
- package/dist/utils/preference-trigger.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/package.json +9 -9
- package/tsconfig.json +9 -1
- package/dist/__tests__/components/ui.test.d.ts +0 -2
- package/dist/__tests__/components/ui.test.d.ts.map +0 -1
- package/dist/__tests__/core/override-storage.test.d.ts +0 -2
- package/dist/__tests__/core/override-storage.test.d.ts.map +0 -1
- package/dist/__tests__/core/renderer.test.d.ts +0 -2
- package/dist/__tests__/core/renderer.test.d.ts.map +0 -1
- package/dist/__tests__/core/reset-consents.test.d.ts +0 -2
- package/dist/__tests__/core/reset-consents.test.d.ts.map +0 -1
- package/dist/__tests__/core/state-manager.test.d.ts +0 -2
- package/dist/__tests__/core/state-manager.test.d.ts.map +0 -1
- package/dist/__tests__/core/store-connector.test.d.ts +0 -2
- package/dist/__tests__/core/store-connector.test.d.ts.map +0 -1
- package/dist/__tests__/panels/dom-scanner.test.d.ts +0 -2
- package/dist/__tests__/panels/dom-scanner.test.d.ts.map +0 -1
- package/dist/__tests__/panels/events.test.d.ts +0 -2
- package/dist/__tests__/panels/events.test.d.ts.map +0 -1
- package/dist/__tests__/panels/iab.test.d.ts +0 -2
- package/dist/__tests__/panels/iab.test.d.ts.map +0 -1
- package/dist/__tests__/panels/scripts.test.d.ts +0 -2
- package/dist/__tests__/panels/scripts.test.d.ts.map +0 -1
- package/dist/__tests__/utils/preference-trigger.test.d.ts +0 -2
- package/dist/__tests__/utils/preference-trigger.test.d.ts.map +0 -1
package/dist/tanstack.cjs
CHANGED
|
@@ -260,21 +260,21 @@ var __webpack_modules__ = {
|
|
|
260
260
|
module.id,
|
|
261
261
|
`.toggle-bPZtik {
|
|
262
262
|
border-radius: var(--c15t-radius-full, 9999px);
|
|
263
|
-
background-color: var(--c15t-switch-track, #
|
|
263
|
+
background-color: var(--c15t-switch-track, #d9d9d9);
|
|
264
264
|
cursor: pointer;
|
|
265
|
-
width:
|
|
266
|
-
height:
|
|
267
|
-
transition: background-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1));
|
|
265
|
+
width: 2rem;
|
|
266
|
+
height: 1.25rem;
|
|
267
|
+
transition: background-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1)), box-shadow var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1));
|
|
268
268
|
border: none;
|
|
269
269
|
align-items: center;
|
|
270
|
-
padding:
|
|
270
|
+
padding: .125rem;
|
|
271
271
|
display: inline-flex;
|
|
272
272
|
position: relative;
|
|
273
273
|
}
|
|
274
274
|
|
|
275
275
|
.toggle-bPZtik:focus-visible {
|
|
276
|
-
|
|
277
|
-
outline
|
|
276
|
+
box-shadow: 0 0 0 2px var(--c15t-devtools-focus-ring, #335cff);
|
|
277
|
+
outline: none;
|
|
278
278
|
}
|
|
279
279
|
|
|
280
280
|
.toggleActive-Ldlasg {
|
|
@@ -284,16 +284,16 @@ var __webpack_modules__ = {
|
|
|
284
284
|
.toggleThumb-hjGfoX {
|
|
285
285
|
border-radius: var(--c15t-radius-full, 9999px);
|
|
286
286
|
background-color: var(--c15t-switch-thumb, #fff);
|
|
287
|
-
width:
|
|
288
|
-
height:
|
|
289
|
-
|
|
287
|
+
width: .75rem;
|
|
288
|
+
height: .75rem;
|
|
289
|
+
box-shadow: 0 0 0 1px var(--c15t-border, #e3e3e3);
|
|
290
|
+
transition: transform var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1));
|
|
290
291
|
position: absolute;
|
|
291
292
|
left: 2px;
|
|
292
|
-
box-shadow: 0 1px 2px #0003;
|
|
293
293
|
}
|
|
294
294
|
|
|
295
295
|
.toggleActive-Ldlasg .toggleThumb-hjGfoX {
|
|
296
|
-
transform: translateX(
|
|
296
|
+
transform: translateX(1rem);
|
|
297
297
|
}
|
|
298
298
|
|
|
299
299
|
.toggle-bPZtik:disabled, .toggleDisabled-ZcD8nZ {
|
|
@@ -306,13 +306,14 @@ var __webpack_modules__ = {
|
|
|
306
306
|
}
|
|
307
307
|
|
|
308
308
|
.badge-yA0giZ {
|
|
309
|
-
border-radius: var(--c15t-radius-
|
|
309
|
+
border-radius: var(--c15t-radius-full, 9999px);
|
|
310
310
|
font-size: var(--c15t-devtools-font-size-xs, .75rem);
|
|
311
311
|
font-weight: var(--c15t-font-weight-medium, 500);
|
|
312
|
+
line-height: var(--c15t-line-height-tight, 1.25);
|
|
312
313
|
white-space: nowrap;
|
|
314
|
+
justify-content: center;
|
|
313
315
|
align-items: center;
|
|
314
|
-
padding:
|
|
315
|
-
line-height: 1;
|
|
316
|
+
padding: .1875rem .4375rem;
|
|
316
317
|
display: inline-flex;
|
|
317
318
|
}
|
|
318
319
|
|
|
@@ -345,35 +346,36 @@ var __webpack_modules__ = {
|
|
|
345
346
|
justify-content: center;
|
|
346
347
|
align-items: center;
|
|
347
348
|
gap: var(--c15t-space-xs, .25rem);
|
|
348
|
-
border: 1px solid var(--c15t-border, #e3e3e3);
|
|
349
|
+
border: 1px solid var(--c15t-devtools-border-strong, #e3e3e3);
|
|
349
350
|
border-radius: var(--c15t-radius-md, .5rem);
|
|
350
|
-
background-color: var(--c15t-surface, #fff);
|
|
351
|
-
min-height:
|
|
351
|
+
background-color: var(--c15t-devtools-surface-elevated, #fff);
|
|
352
|
+
min-height: 2rem;
|
|
352
353
|
color: var(--c15t-text, #171717);
|
|
353
|
-
font-family:
|
|
354
|
-
font-size:
|
|
354
|
+
font-family: var(--c15t-font-family, system-ui, -apple-system, sans-serif);
|
|
355
|
+
font-size: var(--c15t-font-size-sm, .875rem);
|
|
355
356
|
font-weight: var(--c15t-font-weight-medium, 500);
|
|
357
|
+
line-height: var(--c15t-line-height-tight, 1.25);
|
|
358
|
+
box-shadow: var(--c15t-shadow-sm, 0 1px 2px #0000000d);
|
|
356
359
|
cursor: pointer;
|
|
357
360
|
transition: background-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1)), border-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1)), box-shadow var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1)), color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1));
|
|
358
|
-
padding:
|
|
359
|
-
line-height: 1;
|
|
361
|
+
padding: .375rem .625rem;
|
|
360
362
|
display: inline-flex;
|
|
361
|
-
box-shadow: 0 1px 1px #0000000a;
|
|
362
363
|
}
|
|
363
364
|
|
|
364
365
|
.btn-evRVlh:hover {
|
|
365
|
-
background-color: var(--c15t-surface-
|
|
366
|
+
background-color: var(--c15t-devtools-surface-subtle, #f7f7f7);
|
|
366
367
|
border-color: var(--c15t-border-hover, #c9c9c9);
|
|
367
|
-
box-shadow: 0
|
|
368
|
+
box-shadow: var(--c15t-shadow-md, 0 4px 12px #00000014);
|
|
368
369
|
}
|
|
369
370
|
|
|
370
371
|
.btn-evRVlh:focus-visible {
|
|
371
|
-
|
|
372
|
-
outline
|
|
372
|
+
box-shadow: var(--c15t-shadow-sm, 0 1px 2px #0000000d), 0 0 0 2px var(--c15t-devtools-focus-ring, #335cff);
|
|
373
|
+
outline: none;
|
|
373
374
|
}
|
|
374
375
|
|
|
375
376
|
.btn-evRVlh:active {
|
|
376
|
-
box-shadow: 0 1px 2px #
|
|
377
|
+
box-shadow: var(--c15t-shadow-sm, 0 1px 2px #0000000d);
|
|
378
|
+
transform: scale(.98);
|
|
377
379
|
}
|
|
378
380
|
|
|
379
381
|
.btn-evRVlh:disabled {
|
|
@@ -386,6 +388,7 @@ var __webpack_modules__ = {
|
|
|
386
388
|
background-color: var(--c15t-primary, #335cff);
|
|
387
389
|
border-color: var(--c15t-primary, #335cff);
|
|
388
390
|
color: var(--c15t-text-on-primary, #fff);
|
|
391
|
+
box-shadow: none;
|
|
389
392
|
}
|
|
390
393
|
|
|
391
394
|
.btnPrimary-dA6nqY:hover {
|
|
@@ -397,6 +400,7 @@ var __webpack_modules__ = {
|
|
|
397
400
|
background-color: var(--c15t-devtools-badge-error, #ef4343);
|
|
398
401
|
border-color: var(--c15t-devtools-badge-error, #ef4343);
|
|
399
402
|
color: var(--c15t-text-on-primary, #fff);
|
|
403
|
+
box-shadow: none;
|
|
400
404
|
}
|
|
401
405
|
|
|
402
406
|
.btnDanger-eDnqOX:hover {
|
|
@@ -405,10 +409,10 @@ var __webpack_modules__ = {
|
|
|
405
409
|
}
|
|
406
410
|
|
|
407
411
|
.btnSmall-TjXoqZ {
|
|
412
|
+
min-height: 1.75rem;
|
|
413
|
+
font-size: var(--c15t-devtools-font-size-xs, .75rem);
|
|
408
414
|
border-radius: var(--c15t-radius-sm, .375rem);
|
|
409
|
-
|
|
410
|
-
padding: 3px 8px;
|
|
411
|
-
font-size: 11px;
|
|
415
|
+
padding: .25rem .5rem;
|
|
412
416
|
}
|
|
413
417
|
|
|
414
418
|
.btnIcon-fiYQAh {
|
|
@@ -418,19 +422,22 @@ var __webpack_modules__ = {
|
|
|
418
422
|
}
|
|
419
423
|
|
|
420
424
|
.input-IeTcCs {
|
|
421
|
-
|
|
422
|
-
padding: var(--c15t-space-xs, .25rem) var(--c15t-space-sm, .5rem);
|
|
423
|
-
border: 1px solid var(--c15t-border, #e3e3e3);
|
|
425
|
+
border: 1px solid var(--c15t-devtools-border-strong, #e3e3e3);
|
|
424
426
|
border-radius: var(--c15t-radius-md, .5rem);
|
|
425
|
-
background-color: var(--c15t-surface, #fff);
|
|
427
|
+
background-color: var(--c15t-devtools-surface-elevated, #fff);
|
|
428
|
+
width: 100%;
|
|
429
|
+
min-height: 2rem;
|
|
426
430
|
color: var(--c15t-text, #171717);
|
|
427
|
-
font-family:
|
|
428
|
-
font-size: var(--c15t-font-size-
|
|
429
|
-
|
|
431
|
+
font-family: var(--c15t-font-family, system-ui, -apple-system, sans-serif);
|
|
432
|
+
font-size: var(--c15t-devtools-font-size-xs, .75rem);
|
|
433
|
+
line-height: var(--c15t-line-height-tight, 1.25);
|
|
434
|
+
transition: border-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1)), box-shadow var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1));
|
|
435
|
+
padding: .375rem .625rem;
|
|
430
436
|
}
|
|
431
437
|
|
|
432
438
|
.input-IeTcCs:focus {
|
|
433
|
-
border-color: var(--c15t-
|
|
439
|
+
border-color: var(--c15t-devtools-focus-ring, #335cff);
|
|
440
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--c15t-devtools-focus-ring, #335cff) 25%, transparent);
|
|
434
441
|
outline: none;
|
|
435
442
|
}
|
|
436
443
|
|
|
@@ -439,30 +446,35 @@ var __webpack_modules__ = {
|
|
|
439
446
|
}
|
|
440
447
|
|
|
441
448
|
.inputSmall-pJyXcL {
|
|
442
|
-
|
|
449
|
+
min-height: 1.625rem;
|
|
443
450
|
font-size: var(--c15t-devtools-font-size-xs, .75rem);
|
|
451
|
+
padding: .25rem .4375rem;
|
|
444
452
|
}
|
|
445
453
|
|
|
446
454
|
.select-byJ1WM {
|
|
447
|
-
|
|
448
|
-
padding: var(--c15t-space-xs, .25rem) var(--c15t-space-sm, .5rem);
|
|
449
|
-
border: 1px solid var(--c15t-border, #e3e3e3);
|
|
455
|
+
border: 1px solid var(--c15t-devtools-border-strong, #e3e3e3);
|
|
450
456
|
border-radius: var(--c15t-radius-md, .5rem);
|
|
451
|
-
background-color: var(--c15t-surface, #fff);
|
|
457
|
+
background-color: var(--c15t-devtools-surface-elevated, #fff);
|
|
458
|
+
width: 100%;
|
|
459
|
+
min-height: 2rem;
|
|
452
460
|
color: var(--c15t-text, #171717);
|
|
453
|
-
font-family:
|
|
461
|
+
font-family: var(--c15t-font-family, system-ui, -apple-system, sans-serif);
|
|
454
462
|
font-size: var(--c15t-devtools-font-size-xs, .75rem);
|
|
463
|
+
line-height: var(--c15t-line-height-tight, 1.25);
|
|
455
464
|
cursor: pointer;
|
|
465
|
+
transition: border-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1)), box-shadow var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1));
|
|
466
|
+
padding: .375rem .625rem;
|
|
456
467
|
}
|
|
457
468
|
|
|
458
469
|
.select-byJ1WM:focus {
|
|
459
|
-
border-color: var(--c15t-
|
|
470
|
+
border-color: var(--c15t-devtools-focus-ring, #335cff);
|
|
471
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--c15t-devtools-focus-ring, #335cff) 25%, transparent);
|
|
460
472
|
outline: none;
|
|
461
473
|
}
|
|
462
474
|
|
|
463
475
|
.grid-LlrmEz {
|
|
464
476
|
gap: var(--c15t-space-sm, .5rem);
|
|
465
|
-
padding: var(--c15t-space-
|
|
477
|
+
padding: var(--c15t-space-md, 1rem);
|
|
466
478
|
display: grid;
|
|
467
479
|
}
|
|
468
480
|
|
|
@@ -475,42 +487,51 @@ var __webpack_modules__ = {
|
|
|
475
487
|
}
|
|
476
488
|
|
|
477
489
|
.gridCard-Qm5xxI {
|
|
478
|
-
padding: var(--c15t-space-sm, .5rem) var(--c15t-space-md, .75rem);
|
|
479
|
-
border: 1px solid var(--c15t-border, #e3e3e3);
|
|
480
|
-
border-radius: var(--c15t-radius-md, .5rem);
|
|
481
|
-
background-color: var(--c15t-surface, #fff);
|
|
482
|
-
transition: border-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1));
|
|
483
490
|
justify-content: space-between;
|
|
484
491
|
align-items: center;
|
|
492
|
+
gap: var(--c15t-space-sm, .5rem);
|
|
493
|
+
border: 1px solid var(--c15t-devtools-border-strong, #e3e3e3);
|
|
494
|
+
border-radius: var(--c15t-radius-md, .5rem);
|
|
495
|
+
background-color: var(--c15t-devtools-surface-elevated, #fff);
|
|
496
|
+
min-height: 2.75rem;
|
|
497
|
+
box-shadow: var(--c15t-shadow-sm, 0 1px 2px #0000000d);
|
|
498
|
+
transition: border-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1)), background-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1));
|
|
499
|
+
padding: .5625rem .75rem;
|
|
485
500
|
display: flex;
|
|
486
501
|
}
|
|
487
502
|
|
|
488
503
|
.gridCard-Qm5xxI:hover {
|
|
489
504
|
border-color: var(--c15t-border-hover, #c9c9c9);
|
|
505
|
+
background-color: var(--c15t-devtools-surface-subtle, #fafafa);
|
|
490
506
|
}
|
|
491
507
|
|
|
492
508
|
.gridCardTitle-HjXETp {
|
|
493
509
|
font-size: var(--c15t-devtools-font-size-xs, .75rem);
|
|
494
510
|
font-weight: var(--c15t-font-weight-medium, 500);
|
|
495
511
|
color: var(--c15t-text, #171717);
|
|
512
|
+
line-height: var(--c15t-line-height-tight, 1.25);
|
|
496
513
|
}
|
|
497
514
|
|
|
498
515
|
.listItem-XUKGIo {
|
|
499
|
-
padding: var(--c15t-space-xs, .25rem) var(--c15t-space-md, 1rem);
|
|
500
|
-
border-bottom: 1px solid var(--c15t-border, #e3e3e3);
|
|
501
516
|
justify-content: space-between;
|
|
502
517
|
align-items: center;
|
|
518
|
+
gap: var(--c15t-space-sm, .5rem);
|
|
519
|
+
border: 1px solid var(--c15t-devtools-border-strong, #e3e3e3);
|
|
520
|
+
border-radius: var(--c15t-radius-md, .5rem);
|
|
521
|
+
background-color: var(--c15t-devtools-surface-elevated, #fff);
|
|
522
|
+
margin-bottom: .375rem;
|
|
523
|
+
padding: .625rem .75rem;
|
|
503
524
|
display: flex;
|
|
504
525
|
}
|
|
505
526
|
|
|
506
527
|
.listItem-XUKGIo:last-child {
|
|
507
|
-
|
|
528
|
+
margin-bottom: 0;
|
|
508
529
|
}
|
|
509
530
|
|
|
510
531
|
.listItemContent-WDBF1N {
|
|
511
532
|
flex-direction: column;
|
|
512
533
|
flex: 1;
|
|
513
|
-
gap:
|
|
534
|
+
gap: .1875rem;
|
|
514
535
|
min-width: 0;
|
|
515
536
|
display: flex;
|
|
516
537
|
}
|
|
@@ -524,6 +545,7 @@ var __webpack_modules__ = {
|
|
|
524
545
|
.listItemDescription-E6JHyZ {
|
|
525
546
|
font-size: var(--c15t-devtools-font-size-xs, .75rem);
|
|
526
547
|
color: var(--c15t-text-muted, #737373);
|
|
548
|
+
line-height: var(--c15t-line-height-tight, 1.25);
|
|
527
549
|
text-overflow: ellipsis;
|
|
528
550
|
white-space: nowrap;
|
|
529
551
|
overflow: hidden;
|
|
@@ -537,8 +559,8 @@ var __webpack_modules__ = {
|
|
|
537
559
|
}
|
|
538
560
|
|
|
539
561
|
.section-a197cB {
|
|
540
|
-
|
|
541
|
-
|
|
562
|
+
border-bottom: 1px solid var(--c15t-devtools-border-strong, #e3e3e3);
|
|
563
|
+
padding: .75rem 1rem;
|
|
542
564
|
}
|
|
543
565
|
|
|
544
566
|
.section-a197cB:last-child {
|
|
@@ -546,9 +568,10 @@ var __webpack_modules__ = {
|
|
|
546
568
|
}
|
|
547
569
|
|
|
548
570
|
.sectionHeader-Xcljcw {
|
|
549
|
-
margin-bottom: var(--c15t-space-sm, .5rem);
|
|
550
571
|
justify-content: space-between;
|
|
551
572
|
align-items: center;
|
|
573
|
+
gap: .5rem;
|
|
574
|
+
margin-bottom: .625rem;
|
|
552
575
|
display: flex;
|
|
553
576
|
}
|
|
554
577
|
|
|
@@ -557,47 +580,49 @@ var __webpack_modules__ = {
|
|
|
557
580
|
font-weight: var(--c15t-font-weight-semibold, 600);
|
|
558
581
|
color: var(--c15t-text-muted, #737373);
|
|
559
582
|
text-transform: uppercase;
|
|
560
|
-
letter-spacing: .
|
|
583
|
+
letter-spacing: .04em;
|
|
561
584
|
}
|
|
562
585
|
|
|
563
586
|
.overrideField-keNdpJ {
|
|
564
587
|
flex-direction: column;
|
|
565
|
-
gap:
|
|
588
|
+
gap: .3125rem;
|
|
566
589
|
margin-bottom: 0;
|
|
567
590
|
display: flex;
|
|
568
591
|
}
|
|
569
592
|
|
|
570
593
|
.overrideLabel-ApMoTw {
|
|
594
|
+
font-size: var(--c15t-devtools-font-size-xs, .75rem);
|
|
595
|
+
font-weight: var(--c15t-font-weight-semibold, 600);
|
|
571
596
|
color: var(--c15t-text-muted, #737373);
|
|
572
|
-
|
|
573
|
-
font-weight: 600;
|
|
597
|
+
line-height: var(--c15t-line-height-tight, 1.25);
|
|
574
598
|
}
|
|
575
599
|
|
|
576
600
|
.overrideHint-yCfwGt {
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
601
|
+
font-size: var(--c15t-devtools-font-size-xs, .75rem);
|
|
602
|
+
color: var(--c15t-text-muted, #737373);
|
|
603
|
+
line-height: var(--c15t-line-height-tight, 1.25);
|
|
604
|
+
margin-top: .5rem;
|
|
580
605
|
}
|
|
581
606
|
|
|
582
607
|
.overrideActions-imdcn7 {
|
|
583
|
-
border-top: 1px dashed var(--c15t-border, #e3e3e3);
|
|
608
|
+
border-top: 1px dashed var(--c15t-devtools-border-strong, #e3e3e3);
|
|
584
609
|
justify-content: space-between;
|
|
585
610
|
align-items: center;
|
|
586
|
-
gap:
|
|
587
|
-
margin-top:
|
|
588
|
-
padding-top:
|
|
611
|
+
gap: .5rem;
|
|
612
|
+
margin-top: .625rem;
|
|
613
|
+
padding-top: .625rem;
|
|
589
614
|
display: flex;
|
|
590
615
|
}
|
|
591
616
|
|
|
592
617
|
.overrideActionButtons-gYOx1e {
|
|
593
618
|
flex-wrap: wrap;
|
|
594
|
-
gap:
|
|
619
|
+
gap: .375rem;
|
|
595
620
|
display: flex;
|
|
596
621
|
}
|
|
597
622
|
|
|
598
623
|
.overrideStatus-sty_qS {
|
|
624
|
+
font-size: var(--c15t-devtools-font-size-xs, .75rem);
|
|
599
625
|
color: var(--c15t-text-muted, #737373);
|
|
600
|
-
font-size: 11px;
|
|
601
626
|
}
|
|
602
627
|
|
|
603
628
|
.overrideStatusDirty-OUdDMw {
|
|
@@ -605,9 +630,10 @@ var __webpack_modules__ = {
|
|
|
605
630
|
}
|
|
606
631
|
|
|
607
632
|
.infoRow-RlB_0h {
|
|
608
|
-
padding: var(--c15t-space-xs, .25rem) 0;
|
|
609
633
|
justify-content: space-between;
|
|
610
634
|
align-items: center;
|
|
635
|
+
gap: .5rem;
|
|
636
|
+
padding: .25rem 0;
|
|
611
637
|
display: flex;
|
|
612
638
|
}
|
|
613
639
|
|
|
@@ -620,6 +646,7 @@ var __webpack_modules__ = {
|
|
|
620
646
|
font-size: var(--c15t-devtools-font-size-xs, .75rem);
|
|
621
647
|
font-weight: var(--c15t-font-weight-medium, 500);
|
|
622
648
|
color: var(--c15t-text, #171717);
|
|
649
|
+
font-variant-numeric: tabular-nums;
|
|
623
650
|
font-family: ui-monospace, Cascadia Code, Source Code Pro, Menlo, Consolas, DejaVu Sans Mono, monospace;
|
|
624
651
|
}
|
|
625
652
|
|
|
@@ -630,18 +657,27 @@ var __webpack_modules__ = {
|
|
|
630
657
|
flex-direction: column;
|
|
631
658
|
justify-content: center;
|
|
632
659
|
align-items: center;
|
|
660
|
+
gap: .375rem;
|
|
633
661
|
display: flex;
|
|
634
662
|
}
|
|
635
663
|
|
|
636
664
|
.emptyStateIcon-WHFkX8 {
|
|
665
|
+
opacity: .55;
|
|
637
666
|
width: 32px;
|
|
638
667
|
height: 32px;
|
|
639
|
-
margin-bottom: var(--c15t-space-sm, .5rem);
|
|
640
|
-
opacity: .5;
|
|
641
668
|
}
|
|
642
669
|
|
|
643
670
|
.emptyStateText-TaLvAJ {
|
|
644
671
|
font-size: var(--c15t-font-size-sm, .875rem);
|
|
672
|
+
line-height: var(--c15t-line-height-normal, 1.5);
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
.disconnectedState-dOtZBG {
|
|
676
|
+
padding: var(--c15t-space-xl, 2rem);
|
|
677
|
+
text-align: center;
|
|
678
|
+
font-size: var(--c15t-font-size-sm, .875rem);
|
|
679
|
+
color: var(--c15t-text-muted, #737373);
|
|
680
|
+
line-height: var(--c15t-line-height-normal, 1.5);
|
|
645
681
|
}
|
|
646
682
|
|
|
647
683
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -708,7 +744,8 @@ var __webpack_modules__ = {
|
|
|
708
744
|
infoValue: "infoValue-flMl_e",
|
|
709
745
|
emptyState: "emptyState-QcmzTQ",
|
|
710
746
|
emptyStateIcon: "emptyStateIcon-WHFkX8",
|
|
711
|
-
emptyStateText: "emptyStateText-TaLvAJ"
|
|
747
|
+
emptyStateText: "emptyStateText-TaLvAJ",
|
|
748
|
+
disconnectedState: "disconnectedState-dOtZBG"
|
|
712
749
|
};
|
|
713
750
|
const __rspack_default_export = ___CSS_LOADER_EXPORT___;
|
|
714
751
|
},
|
|
@@ -737,9 +774,9 @@ var __webpack_modules__ = {
|
|
|
737
774
|
.floatingButton-Gw8MtJ {
|
|
738
775
|
width: var(--c15t-devtools-button-size, 40px);
|
|
739
776
|
height: var(--c15t-devtools-button-size, 40px);
|
|
740
|
-
border: 1px solid var(--c15t-border, #e3e3e3);
|
|
777
|
+
border: 1px solid var(--c15t-devtools-border-strong, #e3e3e3);
|
|
741
778
|
border-radius: var(--c15t-radius-full, 9999px);
|
|
742
|
-
background-color: var(--c15t-surface, #fff);
|
|
779
|
+
background-color: var(--c15t-devtools-surface-elevated, #fff);
|
|
743
780
|
box-shadow: var(--c15t-shadow-lg, 0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a);
|
|
744
781
|
cursor: grab;
|
|
745
782
|
z-index: var(--c15t-devtools-z-index, 99999);
|
|
@@ -767,13 +804,13 @@ var __webpack_modules__ = {
|
|
|
767
804
|
}
|
|
768
805
|
|
|
769
806
|
.floatingButton-Gw8MtJ:focus-visible {
|
|
770
|
-
|
|
771
|
-
outline
|
|
807
|
+
box-shadow: var(--c15t-shadow-lg, 0 8px 24px #0000001f), 0 0 0 2px var(--c15t-devtools-focus-ring, #335cff);
|
|
808
|
+
outline: none;
|
|
772
809
|
}
|
|
773
810
|
|
|
774
811
|
.floatingButton-Gw8MtJ:active {
|
|
775
812
|
cursor: grabbing;
|
|
776
|
-
transform: scale(
|
|
813
|
+
transform: scale(.98);
|
|
777
814
|
}
|
|
778
815
|
|
|
779
816
|
.floatingButtonIcon-cHWefk {
|
|
@@ -814,6 +851,7 @@ var __webpack_modules__ = {
|
|
|
814
851
|
|
|
815
852
|
.backdrop-LhVMB5 {
|
|
816
853
|
background-color: var(--c15t-overlay, #00000080);
|
|
854
|
+
backdrop-filter: blur(1px);
|
|
817
855
|
z-index: calc(var(--c15t-devtools-z-index, 99999) + 1);
|
|
818
856
|
position: fixed;
|
|
819
857
|
inset: 0;
|
|
@@ -822,10 +860,10 @@ var __webpack_modules__ = {
|
|
|
822
860
|
.panel-jtWove {
|
|
823
861
|
width: var(--c15t-devtools-panel-width, 480px);
|
|
824
862
|
max-height: var(--c15t-devtools-panel-max-height, 560px);
|
|
825
|
-
background-color: var(--c15t-surface, #fff);
|
|
826
|
-
border: 1px solid var(--c15t-border, #e3e3e3);
|
|
863
|
+
background-color: var(--c15t-devtools-surface-elevated, #fff);
|
|
864
|
+
border: 1px solid var(--c15t-devtools-border-strong, #e3e3e3);
|
|
827
865
|
border-radius: var(--c15t-radius-lg, .75rem);
|
|
828
|
-
box-shadow: var(--c15t-shadow-lg, 0
|
|
866
|
+
box-shadow: var(--c15t-shadow-lg, 0 10px 28px #00000029);
|
|
829
867
|
z-index: calc(var(--c15t-devtools-z-index, 99999) + 2);
|
|
830
868
|
flex-direction: column;
|
|
831
869
|
display: flex;
|
|
@@ -858,11 +896,11 @@ var __webpack_modules__ = {
|
|
|
858
896
|
}
|
|
859
897
|
|
|
860
898
|
.header-xluoTr {
|
|
861
|
-
|
|
862
|
-
border-bottom: 1px solid var(--c15t-border, #e3e3e3);
|
|
899
|
+
border-bottom: 1px solid var(--c15t-devtools-border-strong, #e3e3e3);
|
|
863
900
|
background-color: var(--c15t-devtools-surface-muted, #f5f5f5);
|
|
864
901
|
justify-content: space-between;
|
|
865
902
|
align-items: center;
|
|
903
|
+
padding: .6875rem .875rem;
|
|
866
904
|
display: flex;
|
|
867
905
|
}
|
|
868
906
|
|
|
@@ -871,6 +909,7 @@ var __webpack_modules__ = {
|
|
|
871
909
|
gap: var(--c15t-space-sm, .5rem);
|
|
872
910
|
font-size: var(--c15t-font-size-sm, .875rem);
|
|
873
911
|
font-weight: var(--c15t-font-weight-semibold, 600);
|
|
912
|
+
line-height: var(--c15t-line-height-tight, 1.25);
|
|
874
913
|
color: var(--c15t-text, #171717);
|
|
875
914
|
display: flex;
|
|
876
915
|
}
|
|
@@ -882,9 +921,9 @@ var __webpack_modules__ = {
|
|
|
882
921
|
}
|
|
883
922
|
|
|
884
923
|
.closeButton-Yto0Nb {
|
|
885
|
-
border-radius: var(--c15t-radius-
|
|
886
|
-
width:
|
|
887
|
-
height:
|
|
924
|
+
border-radius: var(--c15t-radius-md, .5rem);
|
|
925
|
+
width: 2rem;
|
|
926
|
+
height: 2rem;
|
|
888
927
|
color: var(--c15t-text-muted, #737373);
|
|
889
928
|
cursor: pointer;
|
|
890
929
|
transition: background-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1)), color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1));
|
|
@@ -897,13 +936,13 @@ var __webpack_modules__ = {
|
|
|
897
936
|
}
|
|
898
937
|
|
|
899
938
|
.closeButton-Yto0Nb:hover {
|
|
900
|
-
background-color: var(--c15t-surface-
|
|
939
|
+
background-color: var(--c15t-devtools-surface-subtle, #f7f7f7);
|
|
901
940
|
color: var(--c15t-text, #171717);
|
|
902
941
|
}
|
|
903
942
|
|
|
904
943
|
.closeButton-Yto0Nb:focus-visible {
|
|
905
|
-
|
|
906
|
-
outline
|
|
944
|
+
box-shadow: 0 0 0 2px var(--c15t-devtools-focus-ring, #335cff);
|
|
945
|
+
outline: none;
|
|
907
946
|
}
|
|
908
947
|
|
|
909
948
|
.closeButtonIcon-fVlR1I {
|
|
@@ -911,33 +950,71 @@ var __webpack_modules__ = {
|
|
|
911
950
|
height: 16px;
|
|
912
951
|
}
|
|
913
952
|
|
|
953
|
+
.inlineActionButton-Ky8BmN {
|
|
954
|
+
border: 1px solid var(--c15t-devtools-border-strong, #e3e3e3);
|
|
955
|
+
border-radius: var(--c15t-radius-sm, .375rem);
|
|
956
|
+
background-color: var(--c15t-devtools-surface-elevated, #fff);
|
|
957
|
+
min-height: 1.625rem;
|
|
958
|
+
color: var(--c15t-text, #171717);
|
|
959
|
+
font-family: var(--c15t-font-family, system-ui, -apple-system, sans-serif);
|
|
960
|
+
font-size: var(--c15t-devtools-font-size-xs, .75rem);
|
|
961
|
+
font-weight: var(--c15t-font-weight-medium, 500);
|
|
962
|
+
line-height: var(--c15t-line-height-tight, 1.25);
|
|
963
|
+
cursor: pointer;
|
|
964
|
+
transition: background-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1)), border-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1));
|
|
965
|
+
justify-content: center;
|
|
966
|
+
align-items: center;
|
|
967
|
+
padding: .25rem .5rem;
|
|
968
|
+
display: inline-flex;
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
.inlineActionButton-Ky8BmN:hover {
|
|
972
|
+
background-color: var(--c15t-devtools-surface-subtle, #f7f7f7);
|
|
973
|
+
border-color: var(--c15t-border-hover, #c9c9c9);
|
|
974
|
+
}
|
|
975
|
+
|
|
976
|
+
.inlineActionButton-Ky8BmN:focus-visible {
|
|
977
|
+
box-shadow: 0 0 0 2px var(--c15t-devtools-focus-ring, #335cff);
|
|
978
|
+
outline: none;
|
|
979
|
+
}
|
|
980
|
+
|
|
914
981
|
.content-yDMYfG {
|
|
982
|
+
scrollbar-gutter: stable;
|
|
915
983
|
overscroll-behavior: contain;
|
|
916
984
|
-webkit-overflow-scrolling: touch;
|
|
985
|
+
background-color: var(--c15t-devtools-surface-elevated, #fff);
|
|
917
986
|
flex: auto;
|
|
918
987
|
min-height: 200px;
|
|
919
|
-
overflow: hidden
|
|
988
|
+
overflow: hidden scroll;
|
|
920
989
|
}
|
|
921
990
|
|
|
922
991
|
.footer-ESbmwQ {
|
|
923
|
-
|
|
924
|
-
border-top: 1px solid var(--c15t-border, #e3e3e3);
|
|
992
|
+
border-top: 1px solid var(--c15t-devtools-border-strong, #e3e3e3);
|
|
925
993
|
background-color: var(--c15t-devtools-surface-muted, #f5f5f5);
|
|
926
994
|
font-size: var(--c15t-devtools-font-size-xs, .75rem);
|
|
927
995
|
color: var(--c15t-text-muted, #737373);
|
|
928
996
|
justify-content: space-between;
|
|
929
997
|
align-items: center;
|
|
998
|
+
gap: .5rem;
|
|
999
|
+
padding: .5rem .75rem;
|
|
930
1000
|
display: flex;
|
|
931
1001
|
}
|
|
932
1002
|
|
|
933
1003
|
.footerStatus-rlb99A {
|
|
934
1004
|
align-items: center;
|
|
935
|
-
gap:
|
|
1005
|
+
gap: .375rem;
|
|
1006
|
+
min-width: 0;
|
|
936
1007
|
display: flex;
|
|
937
1008
|
}
|
|
938
1009
|
|
|
1010
|
+
.footerMeta-Vdtxdk {
|
|
1011
|
+
opacity: .75;
|
|
1012
|
+
white-space: nowrap;
|
|
1013
|
+
}
|
|
1014
|
+
|
|
939
1015
|
.statusDot-hYJoej {
|
|
940
1016
|
border-radius: var(--c15t-radius-full, 9999px);
|
|
1017
|
+
flex-shrink: 0;
|
|
941
1018
|
width: 6px;
|
|
942
1019
|
height: 6px;
|
|
943
1020
|
}
|
|
@@ -976,6 +1053,7 @@ var __webpack_modules__ = {
|
|
|
976
1053
|
font-size: var(--c15t-font-size-sm, .875rem);
|
|
977
1054
|
color: var(--c15t-text-muted, #737373);
|
|
978
1055
|
max-width: 280px;
|
|
1056
|
+
line-height: var(--c15t-line-height-normal, 1.5);
|
|
979
1057
|
}
|
|
980
1058
|
|
|
981
1059
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -992,17 +1070,17 @@ var __webpack_modules__ = {
|
|
|
992
1070
|
}
|
|
993
1071
|
|
|
994
1072
|
.dropdownMenu-aKK18l {
|
|
995
|
-
|
|
996
|
-
padding: var(--c15t-space-xs, .25rem);
|
|
997
|
-
border: 1px solid var(--c15t-border, #e3e3e3);
|
|
1073
|
+
border: 1px solid var(--c15t-devtools-border-strong, #e3e3e3);
|
|
998
1074
|
border-radius: var(--c15t-radius-lg, .75rem);
|
|
999
|
-
background-color: var(--c15t-surface, #fff);
|
|
1075
|
+
background-color: var(--c15t-devtools-surface-elevated, #fff);
|
|
1076
|
+
min-width: 200px;
|
|
1000
1077
|
box-shadow: var(--c15t-shadow-lg, 0 8px 24px #0000001f);
|
|
1001
1078
|
z-index: calc(var(--c15t-devtools-z-index, 99999) + 1);
|
|
1002
1079
|
opacity: 0;
|
|
1003
1080
|
transform-origin: 0 100%;
|
|
1004
1081
|
pointer-events: none;
|
|
1005
1082
|
transition: opacity var(--c15t-duration-fast, .1s) var(--c15t-easing-out, cubic-bezier(.215, .61, .355, 1)), transform var(--c15t-duration-fast, .1s) var(--c15t-easing-out, cubic-bezier(.215, .61, .355, 1));
|
|
1083
|
+
padding: .375rem;
|
|
1006
1084
|
position: fixed;
|
|
1007
1085
|
transform: scale(.95)translateY(8px);
|
|
1008
1086
|
}
|
|
@@ -1030,34 +1108,35 @@ var __webpack_modules__ = {
|
|
|
1030
1108
|
}
|
|
1031
1109
|
|
|
1032
1110
|
.menuItem-kBbHRP {
|
|
1033
|
-
align-items: center;
|
|
1034
|
-
gap: var(--c15t-space-sm, .5rem);
|
|
1035
|
-
width: 100%;
|
|
1036
|
-
padding: var(--c15t-space-sm, .5rem) var(--c15t-space-md, .75rem);
|
|
1037
1111
|
border-radius: var(--c15t-radius-md, .5rem);
|
|
1112
|
+
width: 100%;
|
|
1038
1113
|
color: var(--c15t-text, #171717);
|
|
1039
|
-
font-size: var(--c15t-font-size-
|
|
1114
|
+
font-size: var(--c15t-devtools-font-size-xs, .75rem);
|
|
1040
1115
|
font-weight: var(--c15t-font-weight-medium, 500);
|
|
1116
|
+
line-height: var(--c15t-line-height-tight, 1.25);
|
|
1041
1117
|
text-align: left;
|
|
1042
1118
|
cursor: pointer;
|
|
1043
1119
|
transition: background-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1));
|
|
1044
1120
|
background: none;
|
|
1045
1121
|
border: none;
|
|
1122
|
+
align-items: center;
|
|
1123
|
+
gap: .625rem;
|
|
1124
|
+
padding: .5rem .625rem;
|
|
1046
1125
|
display: flex;
|
|
1047
1126
|
}
|
|
1048
1127
|
|
|
1049
1128
|
.menuItem-kBbHRP:hover {
|
|
1050
|
-
background-color: var(--c15t-surface-
|
|
1129
|
+
background-color: var(--c15t-devtools-surface-subtle, #f2f2f2);
|
|
1051
1130
|
}
|
|
1052
1131
|
|
|
1053
1132
|
.menuItem-kBbHRP:focus-visible {
|
|
1054
|
-
|
|
1055
|
-
outline
|
|
1133
|
+
box-shadow: 0 0 0 2px var(--c15t-devtools-focus-ring, #335cff);
|
|
1134
|
+
outline: none;
|
|
1056
1135
|
}
|
|
1057
1136
|
|
|
1058
1137
|
.menuItemIcon-P3pP5K {
|
|
1059
|
-
width:
|
|
1060
|
-
height:
|
|
1138
|
+
width: 1rem;
|
|
1139
|
+
height: 1rem;
|
|
1061
1140
|
color: var(--c15t-text-muted, #737373);
|
|
1062
1141
|
flex-shrink: 0;
|
|
1063
1142
|
}
|
|
@@ -1070,6 +1149,7 @@ var __webpack_modules__ = {
|
|
|
1070
1149
|
font-size: var(--c15t-devtools-font-size-xs, .75rem);
|
|
1071
1150
|
color: var(--c15t-text-muted, #737373);
|
|
1072
1151
|
font-weight: var(--c15t-font-weight-normal, 400);
|
|
1152
|
+
margin-top: .125rem;
|
|
1073
1153
|
}
|
|
1074
1154
|
|
|
1075
1155
|
.menuItemContent-hBlruV {
|
|
@@ -1085,8 +1165,8 @@ var __webpack_modules__ = {
|
|
|
1085
1165
|
.menuItemToggleTrack-gDp_f3 {
|
|
1086
1166
|
background-color: var(--c15t-switch-track, #d9d9d9);
|
|
1087
1167
|
border-radius: var(--c15t-radius-full, 9999px);
|
|
1088
|
-
width:
|
|
1089
|
-
height:
|
|
1168
|
+
width: 2rem;
|
|
1169
|
+
height: 1.25rem;
|
|
1090
1170
|
transition: background-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1));
|
|
1091
1171
|
position: relative;
|
|
1092
1172
|
}
|
|
@@ -1094,21 +1174,22 @@ var __webpack_modules__ = {
|
|
|
1094
1174
|
.menuItemToggleThumb-ioqqyc {
|
|
1095
1175
|
background-color: var(--c15t-switch-thumb, #fff);
|
|
1096
1176
|
border-radius: var(--c15t-radius-full, 9999px);
|
|
1097
|
-
width:
|
|
1098
|
-
height:
|
|
1099
|
-
box-shadow: var(--c15t-
|
|
1177
|
+
width: .75rem;
|
|
1178
|
+
height: .75rem;
|
|
1179
|
+
box-shadow: 0 0 0 1px var(--c15t-border, #e3e3e3);
|
|
1100
1180
|
transition: transform var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1));
|
|
1101
1181
|
position: absolute;
|
|
1102
|
-
top:
|
|
1182
|
+
top: 50%;
|
|
1103
1183
|
left: 2px;
|
|
1184
|
+
transform: translateY(-50%);
|
|
1104
1185
|
}
|
|
1105
1186
|
|
|
1106
1187
|
.menuItemToggleChecked-K3BPtk .menuItemToggleTrack-gDp_f3 {
|
|
1107
|
-
background-color: var(--c15t-switch-track-
|
|
1188
|
+
background-color: var(--c15t-switch-track-active, #335cff);
|
|
1108
1189
|
}
|
|
1109
1190
|
|
|
1110
1191
|
.menuItemToggleChecked-K3BPtk .menuItemToggleThumb-ioqqyc {
|
|
1111
|
-
transform:
|
|
1192
|
+
transform: translate(1rem, -50%);
|
|
1112
1193
|
}
|
|
1113
1194
|
|
|
1114
1195
|
.menuDivider-JIBdhU {
|
|
@@ -1144,9 +1225,11 @@ var __webpack_modules__ = {
|
|
|
1144
1225
|
headerLogo: "headerLogo-PxJ_w1",
|
|
1145
1226
|
closeButton: "closeButton-Yto0Nb",
|
|
1146
1227
|
closeButtonIcon: "closeButtonIcon-fVlR1I",
|
|
1228
|
+
inlineActionButton: "inlineActionButton-Ky8BmN",
|
|
1147
1229
|
content: "content-yDMYfG",
|
|
1148
1230
|
footer: "footer-ESbmwQ",
|
|
1149
1231
|
footerStatus: "footerStatus-rlb99A",
|
|
1232
|
+
footerMeta: "footerMeta-Vdtxdk",
|
|
1150
1233
|
statusDot: "statusDot-hYJoej",
|
|
1151
1234
|
statusConnected: "statusConnected-hPSUgS",
|
|
1152
1235
|
statusDisconnected: "statusDisconnected-HIpcee",
|
|
@@ -1185,62 +1268,63 @@ var __webpack_modules__ = {
|
|
|
1185
1268
|
___CSS_LOADER_EXPORT___.push([
|
|
1186
1269
|
module.id,
|
|
1187
1270
|
`.tabList-IyuiBE {
|
|
1271
|
+
border-bottom: 1px solid var(--c15t-devtools-border-strong, #e3e3e3);
|
|
1272
|
+
background-color: var(--c15t-devtools-surface-subtle, #fafafa);
|
|
1188
1273
|
align-items: center;
|
|
1189
|
-
gap:
|
|
1190
|
-
padding:
|
|
1191
|
-
border-bottom: 1px solid var(--c15t-border, #e3e3e3);
|
|
1192
|
-
background-color: var(--c15t-surface, #fff);
|
|
1193
|
-
scrollbar-width: none;
|
|
1194
|
-
-ms-overflow-style: none;
|
|
1195
|
-
scroll-padding-inline-end: var(--c15t-space-sm, .5rem);
|
|
1274
|
+
gap: .375rem;
|
|
1275
|
+
padding: .75rem;
|
|
1196
1276
|
display: flex;
|
|
1197
|
-
overflow-x: auto;
|
|
1198
1277
|
}
|
|
1199
1278
|
|
|
1200
|
-
.
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1279
|
+
.tabStrip-_KrWe4 {
|
|
1280
|
+
align-items: center;
|
|
1281
|
+
gap: var(--c15t-space-xs, .25rem);
|
|
1282
|
+
flex: auto;
|
|
1283
|
+
min-width: 0;
|
|
1284
|
+
display: flex;
|
|
1285
|
+
overflow: hidden;
|
|
1207
1286
|
}
|
|
1208
1287
|
|
|
1209
1288
|
.tab-yfDEqg {
|
|
1210
|
-
align-items: center;
|
|
1211
|
-
gap: var(--c15t-space-xs, .25rem);
|
|
1212
1289
|
border-radius: var(--c15t-radius-md, .5rem);
|
|
1290
|
+
min-height: 1.875rem;
|
|
1213
1291
|
color: var(--c15t-text-muted, #737373);
|
|
1214
|
-
font-family:
|
|
1215
|
-
font-size:
|
|
1292
|
+
font-family: var(--c15t-font-family, system-ui, -apple-system, sans-serif);
|
|
1293
|
+
font-size: var(--c15t-devtools-font-size-xs, .75rem);
|
|
1216
1294
|
font-weight: var(--c15t-font-weight-medium, 500);
|
|
1295
|
+
line-height: var(--c15t-line-height-tight, 1.25);
|
|
1217
1296
|
cursor: pointer;
|
|
1218
1297
|
white-space: nowrap;
|
|
1219
|
-
transition: background-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1)), color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1));
|
|
1298
|
+
transition: background-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1)), color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1)), border-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1)), box-shadow var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1));
|
|
1220
1299
|
background-color: #0000;
|
|
1221
|
-
border:
|
|
1222
|
-
|
|
1300
|
+
border: 1px solid #0000;
|
|
1301
|
+
flex-shrink: 0;
|
|
1302
|
+
align-items: center;
|
|
1303
|
+
gap: .375rem;
|
|
1304
|
+
padding: .25rem .625rem;
|
|
1223
1305
|
display: flex;
|
|
1224
1306
|
}
|
|
1225
1307
|
|
|
1226
1308
|
.tab-yfDEqg:hover {
|
|
1227
|
-
background-color: var(--c15t-surface-
|
|
1309
|
+
background-color: var(--c15t-devtools-surface-muted, #f7f7f7);
|
|
1228
1310
|
color: var(--c15t-text, #171717);
|
|
1229
1311
|
}
|
|
1230
1312
|
|
|
1231
1313
|
.tab-yfDEqg:focus-visible {
|
|
1232
|
-
|
|
1233
|
-
outline
|
|
1314
|
+
box-shadow: 0 0 0 2px var(--c15t-devtools-focus-ring, #335cff);
|
|
1315
|
+
outline: none;
|
|
1234
1316
|
}
|
|
1235
1317
|
|
|
1236
1318
|
.tabActive-r4hing {
|
|
1237
|
-
background-color: var(--c15t-
|
|
1238
|
-
color: var(--c15t-
|
|
1319
|
+
background-color: var(--c15t-devtools-surface-elevated, #fff);
|
|
1320
|
+
border-color: var(--c15t-devtools-border-strong, #e3e3e3);
|
|
1321
|
+
color: var(--c15t-text, #171717);
|
|
1322
|
+
box-shadow: var(--c15t-shadow-sm, 0 1px 2px #0000000d);
|
|
1239
1323
|
}
|
|
1240
1324
|
|
|
1241
1325
|
.tabActive-r4hing:hover {
|
|
1242
|
-
background-color: var(--c15t-
|
|
1243
|
-
color: var(--c15t-text
|
|
1326
|
+
background-color: var(--c15t-devtools-surface-elevated, #fff);
|
|
1327
|
+
color: var(--c15t-text, #171717);
|
|
1244
1328
|
}
|
|
1245
1329
|
|
|
1246
1330
|
.tabIcon-U9tnu0 {
|
|
@@ -1249,6 +1333,131 @@ var __webpack_modules__ = {
|
|
|
1249
1333
|
height: 14px;
|
|
1250
1334
|
}
|
|
1251
1335
|
|
|
1336
|
+
.tabHidden-HBXYSd {
|
|
1337
|
+
display: none;
|
|
1338
|
+
}
|
|
1339
|
+
|
|
1340
|
+
.overflowContainer-TTw9DO {
|
|
1341
|
+
flex-shrink: 0;
|
|
1342
|
+
position: relative;
|
|
1343
|
+
}
|
|
1344
|
+
|
|
1345
|
+
.overflowContainerHidden-sQa_XZ {
|
|
1346
|
+
display: none;
|
|
1347
|
+
}
|
|
1348
|
+
|
|
1349
|
+
.overflowButton-tKq4FF {
|
|
1350
|
+
border-radius: var(--c15t-radius-md, .5rem);
|
|
1351
|
+
width: 1.875rem;
|
|
1352
|
+
height: 1.875rem;
|
|
1353
|
+
color: var(--c15t-text-muted, #737373);
|
|
1354
|
+
cursor: pointer;
|
|
1355
|
+
transition: background-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1)), color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1)), border-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1));
|
|
1356
|
+
background-color: #0000;
|
|
1357
|
+
border: 1px solid #0000;
|
|
1358
|
+
justify-content: center;
|
|
1359
|
+
align-items: center;
|
|
1360
|
+
padding: 0;
|
|
1361
|
+
display: inline-flex;
|
|
1362
|
+
}
|
|
1363
|
+
|
|
1364
|
+
.overflowButton-tKq4FF:hover {
|
|
1365
|
+
background-color: var(--c15t-devtools-surface-muted, #f7f7f7);
|
|
1366
|
+
color: var(--c15t-text, #171717);
|
|
1367
|
+
}
|
|
1368
|
+
|
|
1369
|
+
.overflowButton-tKq4FF:focus-visible {
|
|
1370
|
+
box-shadow: 0 0 0 2px var(--c15t-devtools-focus-ring, #335cff);
|
|
1371
|
+
outline: none;
|
|
1372
|
+
}
|
|
1373
|
+
|
|
1374
|
+
.overflowButtonIcon-FSurfC {
|
|
1375
|
+
justify-content: center;
|
|
1376
|
+
align-items: center;
|
|
1377
|
+
width: 14px;
|
|
1378
|
+
height: 14px;
|
|
1379
|
+
display: inline-flex;
|
|
1380
|
+
}
|
|
1381
|
+
|
|
1382
|
+
.overflowMenu-TST0eZ {
|
|
1383
|
+
border: 1px solid var(--c15t-devtools-border-strong, #e3e3e3);
|
|
1384
|
+
border-radius: var(--c15t-radius-md, .5rem);
|
|
1385
|
+
background-color: var(--c15t-devtools-surface-elevated, #fff);
|
|
1386
|
+
min-width: 10rem;
|
|
1387
|
+
box-shadow: var(--c15t-shadow-md, 0 4px 12px #00000014);
|
|
1388
|
+
opacity: 0;
|
|
1389
|
+
transform-origin: 100% 0;
|
|
1390
|
+
pointer-events: none;
|
|
1391
|
+
z-index: 10;
|
|
1392
|
+
transition: opacity var(--c15t-duration-fast, .1s) var(--c15t-easing-out, cubic-bezier(.215, .61, .355, 1)), transform var(--c15t-duration-fast, .1s) var(--c15t-easing-out, cubic-bezier(.215, .61, .355, 1));
|
|
1393
|
+
flex-direction: column;
|
|
1394
|
+
gap: .125rem;
|
|
1395
|
+
padding: .3125rem;
|
|
1396
|
+
display: flex;
|
|
1397
|
+
position: absolute;
|
|
1398
|
+
top: calc(100% + .375rem);
|
|
1399
|
+
right: 0;
|
|
1400
|
+
transform: translateY(-4px)scale(.98);
|
|
1401
|
+
}
|
|
1402
|
+
|
|
1403
|
+
.overflowMenu-TST0eZ[data-state="open"] {
|
|
1404
|
+
opacity: 1;
|
|
1405
|
+
pointer-events: auto;
|
|
1406
|
+
transform: translateY(0)scale(1);
|
|
1407
|
+
}
|
|
1408
|
+
|
|
1409
|
+
.overflowItem-y5Pz7k {
|
|
1410
|
+
border-radius: var(--c15t-radius-sm, .375rem);
|
|
1411
|
+
min-height: 1.75rem;
|
|
1412
|
+
color: var(--c15t-text, #171717);
|
|
1413
|
+
font-family: var(--c15t-font-family, system-ui, -apple-system, sans-serif);
|
|
1414
|
+
font-size: var(--c15t-devtools-font-size-xs, .75rem);
|
|
1415
|
+
font-weight: var(--c15t-font-weight-medium, 500);
|
|
1416
|
+
line-height: var(--c15t-line-height-tight, 1.25);
|
|
1417
|
+
text-align: left;
|
|
1418
|
+
cursor: pointer;
|
|
1419
|
+
white-space: nowrap;
|
|
1420
|
+
transition: background-color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1)), color var(--c15t-duration-fast, .1s) var(--c15t-easing, cubic-bezier(.4, 0, .2, 1));
|
|
1421
|
+
background-color: #0000;
|
|
1422
|
+
border: none;
|
|
1423
|
+
align-items: center;
|
|
1424
|
+
gap: .5rem;
|
|
1425
|
+
padding: .3125rem .5rem;
|
|
1426
|
+
display: inline-flex;
|
|
1427
|
+
}
|
|
1428
|
+
|
|
1429
|
+
.overflowItem-y5Pz7k:hover {
|
|
1430
|
+
background-color: var(--c15t-devtools-surface-subtle, #fafafa);
|
|
1431
|
+
}
|
|
1432
|
+
|
|
1433
|
+
.overflowItem-y5Pz7k:focus-visible {
|
|
1434
|
+
box-shadow: 0 0 0 2px var(--c15t-devtools-focus-ring, #335cff);
|
|
1435
|
+
outline: none;
|
|
1436
|
+
}
|
|
1437
|
+
|
|
1438
|
+
.overflowItemActive-mzVG1T {
|
|
1439
|
+
background-color: var(--c15t-devtools-accent-soft, #ebefff);
|
|
1440
|
+
color: var(--c15t-text, #171717);
|
|
1441
|
+
}
|
|
1442
|
+
|
|
1443
|
+
.overflowItemDisabled-dcHX3K {
|
|
1444
|
+
opacity: .5;
|
|
1445
|
+
cursor: not-allowed;
|
|
1446
|
+
}
|
|
1447
|
+
|
|
1448
|
+
.overflowItemIcon-fz291V {
|
|
1449
|
+
flex-shrink: 0;
|
|
1450
|
+
justify-content: center;
|
|
1451
|
+
align-items: center;
|
|
1452
|
+
width: 14px;
|
|
1453
|
+
height: 14px;
|
|
1454
|
+
display: inline-flex;
|
|
1455
|
+
}
|
|
1456
|
+
|
|
1457
|
+
.overflowItemHidden-k4aawi {
|
|
1458
|
+
display: none;
|
|
1459
|
+
}
|
|
1460
|
+
|
|
1252
1461
|
.tabDisabled-lDuv5l {
|
|
1253
1462
|
opacity: .5;
|
|
1254
1463
|
cursor: not-allowed;
|
|
@@ -1269,7 +1478,7 @@ var __webpack_modules__ = {
|
|
|
1269
1478
|
}
|
|
1270
1479
|
|
|
1271
1480
|
@media (prefers-reduced-motion: reduce) {
|
|
1272
|
-
.tab-yfDEqg {
|
|
1481
|
+
.tab-yfDEqg, .overflowButton-tKq4FF, .overflowMenu-TST0eZ, .overflowItem-y5Pz7k {
|
|
1273
1482
|
transition: none;
|
|
1274
1483
|
}
|
|
1275
1484
|
}
|
|
@@ -1285,9 +1494,21 @@ var __webpack_modules__ = {
|
|
|
1285
1494
|
]);
|
|
1286
1495
|
___CSS_LOADER_EXPORT___.locals = {
|
|
1287
1496
|
tabList: "tabList-IyuiBE",
|
|
1497
|
+
tabStrip: "tabStrip-_KrWe4",
|
|
1288
1498
|
tab: "tab-yfDEqg",
|
|
1289
1499
|
tabActive: "tabActive-r4hing",
|
|
1290
1500
|
tabIcon: "tabIcon-U9tnu0",
|
|
1501
|
+
tabHidden: "tabHidden-HBXYSd",
|
|
1502
|
+
overflowContainer: "overflowContainer-TTw9DO",
|
|
1503
|
+
overflowContainerHidden: "overflowContainerHidden-sQa_XZ",
|
|
1504
|
+
overflowButton: "overflowButton-tKq4FF",
|
|
1505
|
+
overflowButtonIcon: "overflowButtonIcon-FSurfC",
|
|
1506
|
+
overflowMenu: "overflowMenu-TST0eZ",
|
|
1507
|
+
overflowItem: "overflowItem-y5Pz7k",
|
|
1508
|
+
overflowItemActive: "overflowItemActive-mzVG1T",
|
|
1509
|
+
overflowItemDisabled: "overflowItemDisabled-dcHX3K",
|
|
1510
|
+
overflowItemIcon: "overflowItemIcon-fz291V",
|
|
1511
|
+
overflowItemHidden: "overflowItemHidden-k4aawi",
|
|
1291
1512
|
tabDisabled: "tabDisabled-lDuv5l",
|
|
1292
1513
|
tabPanel: "tabPanel-QKO8FX",
|
|
1293
1514
|
tabPanelActive: "tabPanelActive-mrNlGE"
|
|
@@ -1311,6 +1532,15 @@ var __webpack_modules__ = {
|
|
|
1311
1532
|
--c15t-devtools-button-size: 40px;
|
|
1312
1533
|
--c15t-devtools-z-index: 99999;
|
|
1313
1534
|
--c15t-devtools-surface-muted: var(--c15t-surface-hover, #f7f7f7);
|
|
1535
|
+
--c15t-devtools-surface-subtle: #fafafa;
|
|
1536
|
+
--c15t-devtools-surface-elevated: var(--c15t-surface, #fff);
|
|
1537
|
+
--c15t-devtools-border-strong: var(--c15t-border, #e3e3e3);
|
|
1538
|
+
--c15t-devtools-code-surface: #f7f7f7;
|
|
1539
|
+
--c15t-devtools-accent-soft: #ebefff;
|
|
1540
|
+
--c15t-devtools-focus-ring: var(--c15t-primary, #335cff);
|
|
1541
|
+
--c15t-devtools-text-muted: var(--c15t-text-muted, #737373);
|
|
1542
|
+
--c15t-devtools-font-size-sm: var(--c15t-font-size-sm, .875rem);
|
|
1543
|
+
--c15t-surface-muted: var(--c15t-devtools-surface-muted, #f7f7f7);
|
|
1314
1544
|
--c15t-devtools-font-size-xs: .75rem;
|
|
1315
1545
|
--c15t-devtools-badge-success: #21c45d;
|
|
1316
1546
|
--c15t-devtools-badge-success-bg: #e4fbed;
|
|
@@ -1324,8 +1554,37 @@ var __webpack_modules__ = {
|
|
|
1324
1554
|
--c15t-devtools-badge-neutral-bg: #f0f0f0;
|
|
1325
1555
|
}
|
|
1326
1556
|
|
|
1557
|
+
:is(:global(.c15t-light), :global(.light)) {
|
|
1558
|
+
--c15t-devtools-surface-muted: var(--c15t-surface-hover, #f7f7f7);
|
|
1559
|
+
--c15t-devtools-surface-subtle: #fafafa;
|
|
1560
|
+
--c15t-devtools-surface-elevated: var(--c15t-surface, #fff);
|
|
1561
|
+
--c15t-devtools-border-strong: var(--c15t-border, #e3e3e3);
|
|
1562
|
+
--c15t-devtools-code-surface: #f7f7f7;
|
|
1563
|
+
--c15t-devtools-accent-soft: #ebefff;
|
|
1564
|
+
--c15t-devtools-badge-success-bg: #e4fbed;
|
|
1565
|
+
--c15t-devtools-badge-error-bg: #fde7e7;
|
|
1566
|
+
--c15t-devtools-badge-warning-bg: #fef7dc;
|
|
1567
|
+
--c15t-devtools-badge-info-bg: #dcebfe;
|
|
1568
|
+
--c15t-devtools-badge-neutral-bg: #f0f0f0;
|
|
1569
|
+
}
|
|
1570
|
+
|
|
1571
|
+
@supports (color: color-mix(in srgb, white, black)) {
|
|
1572
|
+
:root {
|
|
1573
|
+
--c15t-devtools-surface-muted: color-mix(in srgb, var(--c15t-surface-hover, #f7f7f7) 85%, var(--c15t-surface, #fff));
|
|
1574
|
+
--c15t-devtools-surface-subtle: color-mix(in srgb, var(--c15t-surface-hover, #f7f7f7) 55%, var(--c15t-surface, #fff));
|
|
1575
|
+
--c15t-devtools-border-strong: color-mix(in srgb, var(--c15t-border, #e3e3e3) 80%, var(--c15t-text-muted, #737373));
|
|
1576
|
+
--c15t-devtools-code-surface: color-mix(in srgb, var(--c15t-surface-hover, #f7f7f7) 70%, var(--c15t-surface, #fff));
|
|
1577
|
+
--c15t-devtools-accent-soft: color-mix(in srgb, var(--c15t-primary, #335cff) 12%, transparent);
|
|
1578
|
+
}
|
|
1579
|
+
}
|
|
1580
|
+
|
|
1327
1581
|
:is(:global(.c15t-dark), :global(.dark)) {
|
|
1328
1582
|
--c15t-devtools-surface-muted: var(--c15t-surface-hover, #292929);
|
|
1583
|
+
--c15t-devtools-surface-subtle: #242424;
|
|
1584
|
+
--c15t-devtools-surface-elevated: var(--c15t-surface, #1a1a1a);
|
|
1585
|
+
--c15t-devtools-border-strong: var(--c15t-border, #3d3d3d);
|
|
1586
|
+
--c15t-devtools-code-surface: #212121;
|
|
1587
|
+
--c15t-devtools-accent-soft: #335cff33;
|
|
1329
1588
|
--c15t-devtools-badge-success-bg: #21c45d33;
|
|
1330
1589
|
--c15t-devtools-badge-error-bg: #ef434333;
|
|
1331
1590
|
--c15t-devtools-badge-warning-bg: #f59f0a33;
|
|
@@ -1334,8 +1593,13 @@ var __webpack_modules__ = {
|
|
|
1334
1593
|
}
|
|
1335
1594
|
|
|
1336
1595
|
@media (prefers-color-scheme: dark) {
|
|
1337
|
-
:root {
|
|
1596
|
+
:global(:root:not(.light):not(.c15t-light)) {
|
|
1338
1597
|
--c15t-devtools-surface-muted: var(--c15t-surface-hover, #292929);
|
|
1598
|
+
--c15t-devtools-surface-subtle: #242424;
|
|
1599
|
+
--c15t-devtools-surface-elevated: var(--c15t-surface, #1a1a1a);
|
|
1600
|
+
--c15t-devtools-border-strong: var(--c15t-border, #3d3d3d);
|
|
1601
|
+
--c15t-devtools-code-surface: #212121;
|
|
1602
|
+
--c15t-devtools-accent-soft: #335cff33;
|
|
1339
1603
|
--c15t-devtools-badge-success-bg: #21c45d33;
|
|
1340
1604
|
--c15t-devtools-badge-error-bg: #ef434333;
|
|
1341
1605
|
--c15t-devtools-badge-warning-bg: #f59f0a33;
|
|
@@ -1648,7 +1912,7 @@ var __webpack_exports__ = {};
|
|
|
1648
1912
|
panel_module_options.insertStyleElement = insertStyleElement_default();
|
|
1649
1913
|
injectStylesIntoStyleTag_default()(panel_module.A, panel_module_options);
|
|
1650
1914
|
panel_module.A && panel_module.A.locals && panel_module.A.locals;
|
|
1651
|
-
'[data-c15t-trigger], [aria-label*="privacy settings"], [aria-label*="preference"]';
|
|
1915
|
+
'[data-c15t-trigger], [aria-label*="privacy settings" i], [aria-label*="preference" i]';
|
|
1652
1916
|
function createElement(options = {}) {
|
|
1653
1917
|
const { tag = 'div', text, html, children, className, id, style, dataset, onClick, onMouseEnter, onMouseLeave, onKeyDown, onKeyUp, onFocus, onBlur, onChange, onInput, onAnimationEnd, onTransitionEnd, ...attrs } = options;
|
|
1654
1918
|
const element = document.createElement(tag);
|
|
@@ -1775,6 +2039,11 @@ var __webpack_exports__ = {};
|
|
|
1775
2039
|
const EVENTS_ICON = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
1776
2040
|
<path d="M12 20h9"></path>
|
|
1777
2041
|
<path d="M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z"></path>
|
|
2042
|
+
</svg>`;
|
|
2043
|
+
const MORE_ICON = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
|
|
2044
|
+
<circle cx="12" cy="5" r="1.75"></circle>
|
|
2045
|
+
<circle cx="12" cy="12" r="1.75"></circle>
|
|
2046
|
+
<circle cx="12" cy="19" r="1.75"></circle>
|
|
1778
2047
|
</svg>`;
|
|
1779
2048
|
const TABS = [
|
|
1780
2049
|
{
|
|
@@ -1811,12 +2080,56 @@ var __webpack_exports__ = {};
|
|
|
1811
2080
|
function tabs_createTabs(options) {
|
|
1812
2081
|
const { onTabChange, disabledTabs = [] } = options;
|
|
1813
2082
|
let activeTab = options.activeTab;
|
|
2083
|
+
let isOverflowMenuOpen = false;
|
|
2084
|
+
let visibleTabIds = [];
|
|
2085
|
+
let hiddenTabIds = [];
|
|
1814
2086
|
const tabButtons = new Map();
|
|
2087
|
+
const overflowButtons = new Map();
|
|
1815
2088
|
const tabList = renderer_div({
|
|
1816
|
-
className: styles_tabs_module.tabList
|
|
2089
|
+
className: styles_tabs_module.tabList
|
|
2090
|
+
});
|
|
2091
|
+
const tabStrip = renderer_div({
|
|
2092
|
+
className: styles_tabs_module.tabStrip,
|
|
1817
2093
|
role: 'tablist',
|
|
1818
2094
|
ariaLabel: 'DevTools tabs'
|
|
1819
2095
|
});
|
|
2096
|
+
tabList.appendChild(tabStrip);
|
|
2097
|
+
const overflowMenu = renderer_div({
|
|
2098
|
+
className: styles_tabs_module.overflowMenu,
|
|
2099
|
+
role: 'menu',
|
|
2100
|
+
ariaLabel: 'All tabs'
|
|
2101
|
+
});
|
|
2102
|
+
overflowMenu.dataset.state = 'closed';
|
|
2103
|
+
const overflowButton = renderer_button({
|
|
2104
|
+
className: styles_tabs_module.overflowButton,
|
|
2105
|
+
ariaLabel: 'More tabs',
|
|
2106
|
+
ariaExpanded: 'false',
|
|
2107
|
+
onClick: ()=>toggleOverflowMenu(),
|
|
2108
|
+
onKeyDown: (e)=>{
|
|
2109
|
+
if ('ArrowDown' === e.key || 'Enter' === e.key || ' ' === e.key) {
|
|
2110
|
+
e.preventDefault();
|
|
2111
|
+
openOverflowMenu();
|
|
2112
|
+
focusFirstEnabledOverflowItem();
|
|
2113
|
+
}
|
|
2114
|
+
}
|
|
2115
|
+
});
|
|
2116
|
+
overflowButton.setAttribute('aria-haspopup', 'menu');
|
|
2117
|
+
const overflowIcon = renderer_div({
|
|
2118
|
+
className: styles_tabs_module.overflowButtonIcon
|
|
2119
|
+
});
|
|
2120
|
+
overflowIcon.appendChild(renderer_createSvgElement(MORE_ICON, {
|
|
2121
|
+
width: 14,
|
|
2122
|
+
height: 14
|
|
2123
|
+
}));
|
|
2124
|
+
overflowButton.appendChild(overflowIcon);
|
|
2125
|
+
const overflowContainer = renderer_div({
|
|
2126
|
+
className: styles_tabs_module.overflowContainer,
|
|
2127
|
+
children: [
|
|
2128
|
+
overflowButton,
|
|
2129
|
+
overflowMenu
|
|
2130
|
+
]
|
|
2131
|
+
});
|
|
2132
|
+
tabList.appendChild(overflowContainer);
|
|
1820
2133
|
for (const tab of TABS){
|
|
1821
2134
|
const isActive = tab.id === activeTab;
|
|
1822
2135
|
const isDisabled = disabledTabs.includes(tab.id);
|
|
@@ -1830,6 +2143,7 @@ var __webpack_exports__ = {};
|
|
|
1830
2143
|
disabled: isDisabled,
|
|
1831
2144
|
onClick: ()=>{
|
|
1832
2145
|
if (!isDisabled) {
|
|
2146
|
+
closeOverflowMenu();
|
|
1833
2147
|
setActiveTab(tab.id);
|
|
1834
2148
|
onTabChange(tab.id);
|
|
1835
2149
|
}
|
|
@@ -1846,29 +2160,206 @@ var __webpack_exports__ = {};
|
|
|
1846
2160
|
tabButton.appendChild(iconWrapper);
|
|
1847
2161
|
tabButton.appendChild(document.createTextNode(tab.label));
|
|
1848
2162
|
tabButtons.set(tab.id, tabButton);
|
|
1849
|
-
|
|
2163
|
+
tabStrip.appendChild(tabButton);
|
|
2164
|
+
const overflowItem = renderer_button({
|
|
2165
|
+
className: `${styles_tabs_module.overflowItem} ${isActive ? styles_tabs_module.overflowItemActive : ''} ${isDisabled ? styles_tabs_module.overflowItemDisabled : ''}`,
|
|
2166
|
+
role: 'menuitemradio',
|
|
2167
|
+
ariaChecked: isActive ? 'true' : 'false',
|
|
2168
|
+
disabled: isDisabled,
|
|
2169
|
+
onClick: ()=>{
|
|
2170
|
+
if (!isDisabled) {
|
|
2171
|
+
setActiveTab(tab.id);
|
|
2172
|
+
onTabChange(tab.id);
|
|
2173
|
+
closeOverflowMenu();
|
|
2174
|
+
tabButtons.get(tab.id)?.focus();
|
|
2175
|
+
}
|
|
2176
|
+
},
|
|
2177
|
+
onKeyDown: (e)=>handleOverflowKeyDown(e, tab.id)
|
|
2178
|
+
});
|
|
2179
|
+
const overflowItemIcon = renderer_div({
|
|
2180
|
+
className: styles_tabs_module.overflowItemIcon
|
|
2181
|
+
});
|
|
2182
|
+
overflowItemIcon.appendChild(renderer_createSvgElement(tab.icon, {
|
|
2183
|
+
width: 14,
|
|
2184
|
+
height: 14
|
|
2185
|
+
}));
|
|
2186
|
+
overflowItem.appendChild(overflowItemIcon);
|
|
2187
|
+
overflowItem.appendChild(document.createTextNode(tab.label));
|
|
2188
|
+
overflowButtons.set(tab.id, overflowItem);
|
|
2189
|
+
overflowMenu.appendChild(overflowItem);
|
|
1850
2190
|
}
|
|
1851
|
-
function
|
|
1852
|
-
const
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
2191
|
+
function applyActiveState(tab) {
|
|
2192
|
+
for (const [tabId, tabButton] of tabButtons){
|
|
2193
|
+
const isActive = tabId === tab;
|
|
2194
|
+
if (styles_tabs_module.tabActive) tabButton.classList.toggle(styles_tabs_module.tabActive, isActive);
|
|
2195
|
+
tabButton.setAttribute('aria-selected', isActive ? 'true' : 'false');
|
|
2196
|
+
tabButton.tabIndex = isActive ? 0 : -1;
|
|
2197
|
+
}
|
|
2198
|
+
for (const [tabId, overflowItem] of overflowButtons){
|
|
2199
|
+
const isActive = tabId === tab;
|
|
2200
|
+
if (styles_tabs_module.overflowItemActive) overflowItem.classList.toggle(styles_tabs_module.overflowItemActive, isActive);
|
|
2201
|
+
overflowItem.setAttribute('aria-checked', isActive ? 'true' : 'false');
|
|
2202
|
+
}
|
|
2203
|
+
}
|
|
2204
|
+
function updateVisibleTabs() {
|
|
2205
|
+
const allTabIds = TABS.map((t)=>t.id);
|
|
2206
|
+
const iabEnabled = !disabledTabs.includes('iab');
|
|
2207
|
+
const preferredSecondTab = iabEnabled ? 'iab' : 'consents';
|
|
2208
|
+
const overflowSecondTab = iabEnabled ? 'consents' : 'iab';
|
|
2209
|
+
const showOverflowSecondTabInStrip = activeTab === overflowSecondTab;
|
|
2210
|
+
const stripSecondTab = showOverflowSecondTabInStrip ? overflowSecondTab : preferredSecondTab;
|
|
2211
|
+
const forcedOverflowTab = showOverflowSecondTabInStrip ? preferredSecondTab : overflowSecondTab;
|
|
2212
|
+
const layoutTabIds = [
|
|
2213
|
+
'location',
|
|
2214
|
+
stripSecondTab,
|
|
2215
|
+
"scripts",
|
|
2216
|
+
'actions',
|
|
2217
|
+
'events',
|
|
2218
|
+
forcedOverflowTab
|
|
2219
|
+
];
|
|
2220
|
+
const forcedOverflowTabIds = new Set();
|
|
2221
|
+
forcedOverflowTabIds.add(forcedOverflowTab);
|
|
2222
|
+
for (const [index, tabId] of layoutTabIds.entries()){
|
|
2223
|
+
const tabButton = tabButtons.get(tabId);
|
|
2224
|
+
if (tabButton) tabButton.style.order = String(index);
|
|
2225
|
+
const overflowItem = overflowButtons.get(tabId);
|
|
2226
|
+
if (overflowItem) overflowItem.style.order = String(index);
|
|
2227
|
+
}
|
|
2228
|
+
for (const tabId of allTabIds){
|
|
2229
|
+
const tabButton = tabButtons.get(tabId);
|
|
2230
|
+
if (tabButton && styles_tabs_module.tabHidden) tabButton.classList.remove(styles_tabs_module.tabHidden);
|
|
2231
|
+
}
|
|
2232
|
+
if (styles_tabs_module.overflowContainerHidden) overflowContainer.classList.remove(styles_tabs_module.overflowContainerHidden);
|
|
2233
|
+
const stripGap = Number.parseFloat(getComputedStyle(tabStrip).gap || '0');
|
|
2234
|
+
const calculateVisibleTabs = (availableWidth)=>{
|
|
2235
|
+
if (availableWidth <= 0) return [];
|
|
2236
|
+
const nextVisible = [];
|
|
2237
|
+
let usedWidth = 0;
|
|
2238
|
+
for (const tabId of layoutTabIds){
|
|
2239
|
+
if (forcedOverflowTabIds.has(tabId)) continue;
|
|
2240
|
+
const tabButton = tabButtons.get(tabId);
|
|
2241
|
+
if (!tabButton) continue;
|
|
2242
|
+
const width = tabButton.getBoundingClientRect().width;
|
|
2243
|
+
const nextUsed = 0 === nextVisible.length ? width : usedWidth + stripGap + width;
|
|
2244
|
+
if (nextUsed <= availableWidth) {
|
|
2245
|
+
nextVisible.push(tabId);
|
|
2246
|
+
usedWidth = nextUsed;
|
|
2247
|
+
} else break;
|
|
2248
|
+
}
|
|
2249
|
+
return nextVisible;
|
|
2250
|
+
};
|
|
2251
|
+
const measureStripWidth = ()=>tabStrip.getBoundingClientRect().width;
|
|
2252
|
+
const showOverflowContainer = ()=>{
|
|
2253
|
+
if (styles_tabs_module.overflowContainerHidden) overflowContainer.classList.remove(styles_tabs_module.overflowContainerHidden);
|
|
2254
|
+
};
|
|
2255
|
+
const hideOverflowContainer = ()=>{
|
|
2256
|
+
if (styles_tabs_module.overflowContainerHidden) overflowContainer.classList.add(styles_tabs_module.overflowContainerHidden);
|
|
2257
|
+
};
|
|
2258
|
+
const measureVisibleWidth = (tabIds)=>{
|
|
2259
|
+
let width = 0;
|
|
2260
|
+
for (const [index, tabId] of tabIds.entries()){
|
|
2261
|
+
const tabButton = tabButtons.get(tabId);
|
|
2262
|
+
if (tabButton) {
|
|
2263
|
+
width += tabButton.getBoundingClientRect().width;
|
|
2264
|
+
if (index > 0) width += stripGap;
|
|
2265
|
+
}
|
|
2266
|
+
}
|
|
2267
|
+
return width;
|
|
2268
|
+
};
|
|
2269
|
+
if (0 === forcedOverflowTabIds.size) {
|
|
2270
|
+
hideOverflowContainer();
|
|
2271
|
+
const visibleWithoutOverflow = calculateVisibleTabs(measureStripWidth());
|
|
2272
|
+
if (visibleWithoutOverflow.length === layoutTabIds.length) visibleTabIds = visibleWithoutOverflow;
|
|
2273
|
+
else {
|
|
2274
|
+
showOverflowContainer();
|
|
2275
|
+
visibleTabIds = calculateVisibleTabs(measureStripWidth());
|
|
2276
|
+
}
|
|
2277
|
+
} else {
|
|
2278
|
+
showOverflowContainer();
|
|
2279
|
+
const withOverflow = calculateVisibleTabs(measureStripWidth());
|
|
2280
|
+
visibleTabIds = withOverflow.length > 0 ? withOverflow : [
|
|
2281
|
+
activeTab
|
|
2282
|
+
];
|
|
2283
|
+
}
|
|
2284
|
+
if (!visibleTabIds.includes(activeTab) && !disabledTabs.includes(activeTab)) if (visibleTabIds.length > 0) visibleTabIds[visibleTabIds.length - 1] = activeTab;
|
|
2285
|
+
else visibleTabIds = [
|
|
2286
|
+
activeTab
|
|
2287
|
+
];
|
|
2288
|
+
visibleTabIds = [
|
|
2289
|
+
...new Set(visibleTabIds)
|
|
2290
|
+
];
|
|
2291
|
+
const maxStripWidth = measureStripWidth();
|
|
2292
|
+
while(visibleTabIds.length > 1 && measureVisibleWidth(visibleTabIds) > maxStripWidth + 0.5){
|
|
2293
|
+
let removeIndex = visibleTabIds.length - 1;
|
|
2294
|
+
if (visibleTabIds[removeIndex] === activeTab) removeIndex = Math.max(0, removeIndex - 1);
|
|
2295
|
+
visibleTabIds.splice(removeIndex, 1);
|
|
2296
|
+
}
|
|
2297
|
+
hiddenTabIds = layoutTabIds.filter((tabId)=>!visibleTabIds.includes(tabId) || forcedOverflowTabIds.has(tabId) && tabId !== activeTab);
|
|
2298
|
+
for (const tabId of allTabIds){
|
|
2299
|
+
const tabButton = tabButtons.get(tabId);
|
|
2300
|
+
if (tabButton) {
|
|
2301
|
+
if (styles_tabs_module.tabHidden) tabButton.classList.toggle(styles_tabs_module.tabHidden, hiddenTabIds.includes(tabId));
|
|
2302
|
+
}
|
|
2303
|
+
}
|
|
2304
|
+
for (const tabId of allTabIds){
|
|
2305
|
+
const overflowItem = overflowButtons.get(tabId);
|
|
2306
|
+
if (overflowItem) {
|
|
2307
|
+
if (styles_tabs_module.overflowItemHidden) overflowItem.classList.toggle(styles_tabs_module.overflowItemHidden, !hiddenTabIds.includes(tabId));
|
|
2308
|
+
}
|
|
2309
|
+
}
|
|
2310
|
+
if (styles_tabs_module.overflowContainerHidden) overflowContainer.classList.toggle(styles_tabs_module.overflowContainerHidden, 0 === hiddenTabIds.length);
|
|
2311
|
+
if (0 === hiddenTabIds.length) closeOverflowMenu();
|
|
2312
|
+
}
|
|
2313
|
+
function focusFirstEnabledOverflowItem() {
|
|
2314
|
+
const firstEnabled = hiddenTabIds.find((tabId)=>!disabledTabs.includes(tabId));
|
|
2315
|
+
if (firstEnabled) overflowButtons.get(firstEnabled)?.focus();
|
|
2316
|
+
}
|
|
2317
|
+
function openOverflowMenu() {
|
|
2318
|
+
if (isOverflowMenuOpen || 0 === hiddenTabIds.length) return;
|
|
2319
|
+
isOverflowMenuOpen = true;
|
|
2320
|
+
overflowMenu.dataset.state = 'open';
|
|
2321
|
+
overflowButton.setAttribute('aria-expanded', 'true');
|
|
2322
|
+
document.addEventListener('click', handleOutsideClick);
|
|
2323
|
+
document.addEventListener('keydown', handleEscapeKey);
|
|
2324
|
+
}
|
|
2325
|
+
function closeOverflowMenu() {
|
|
2326
|
+
if (!isOverflowMenuOpen) return;
|
|
2327
|
+
isOverflowMenuOpen = false;
|
|
2328
|
+
overflowMenu.dataset.state = 'closed';
|
|
2329
|
+
overflowButton.setAttribute('aria-expanded', 'false');
|
|
2330
|
+
document.removeEventListener('click', handleOutsideClick);
|
|
2331
|
+
document.removeEventListener('keydown', handleEscapeKey);
|
|
2332
|
+
}
|
|
2333
|
+
function toggleOverflowMenu() {
|
|
2334
|
+
if (isOverflowMenuOpen) closeOverflowMenu();
|
|
2335
|
+
else openOverflowMenu();
|
|
2336
|
+
}
|
|
2337
|
+
function handleOutsideClick(e) {
|
|
2338
|
+
if (!overflowContainer.contains(e.target)) closeOverflowMenu();
|
|
2339
|
+
}
|
|
2340
|
+
function handleEscapeKey(e) {
|
|
2341
|
+
if ('Escape' === e.key) closeOverflowMenu();
|
|
2342
|
+
}
|
|
2343
|
+
function handleKeyDown(e, currentTab) {
|
|
2344
|
+
const enabledTabIds = visibleTabIds.filter((tabId)=>!disabledTabs.includes(tabId));
|
|
2345
|
+
const currentIndex = enabledTabIds.indexOf(currentTab);
|
|
2346
|
+
let newIndex = currentIndex;
|
|
2347
|
+
switch(e.key){
|
|
2348
|
+
case 'ArrowLeft':
|
|
2349
|
+
newIndex = currentIndex > 0 ? currentIndex - 1 : enabledTabIds.length - 1;
|
|
2350
|
+
break;
|
|
2351
|
+
case 'ArrowRight':
|
|
2352
|
+
newIndex = currentIndex < enabledTabIds.length - 1 ? currentIndex + 1 : 0;
|
|
2353
|
+
break;
|
|
2354
|
+
case 'Home':
|
|
2355
|
+
newIndex = 0;
|
|
2356
|
+
break;
|
|
2357
|
+
case 'End':
|
|
2358
|
+
newIndex = enabledTabIds.length - 1;
|
|
2359
|
+
break;
|
|
2360
|
+
default:
|
|
2361
|
+
return;
|
|
2362
|
+
}
|
|
1872
2363
|
e.preventDefault();
|
|
1873
2364
|
const newTab = enabledTabIds[newIndex];
|
|
1874
2365
|
if (newTab) {
|
|
@@ -1877,23 +2368,152 @@ var __webpack_exports__ = {};
|
|
|
1877
2368
|
tabButtons.get(newTab)?.focus();
|
|
1878
2369
|
}
|
|
1879
2370
|
}
|
|
2371
|
+
function handleOverflowKeyDown(e, currentTab) {
|
|
2372
|
+
const enabledTabIds = hiddenTabIds.filter((tabId)=>!disabledTabs.includes(tabId));
|
|
2373
|
+
const currentIndex = enabledTabIds.indexOf(currentTab);
|
|
2374
|
+
if ('Escape' === e.key) {
|
|
2375
|
+
e.preventDefault();
|
|
2376
|
+
closeOverflowMenu();
|
|
2377
|
+
overflowButton.focus();
|
|
2378
|
+
return;
|
|
2379
|
+
}
|
|
2380
|
+
let newIndex = currentIndex;
|
|
2381
|
+
switch(e.key){
|
|
2382
|
+
case 'ArrowDown':
|
|
2383
|
+
newIndex = (currentIndex + 1) % enabledTabIds.length;
|
|
2384
|
+
break;
|
|
2385
|
+
case 'ArrowUp':
|
|
2386
|
+
newIndex = currentIndex > 0 ? currentIndex - 1 : enabledTabIds.length - 1;
|
|
2387
|
+
break;
|
|
2388
|
+
default:
|
|
2389
|
+
return;
|
|
2390
|
+
}
|
|
2391
|
+
e.preventDefault();
|
|
2392
|
+
const newTab = enabledTabIds[newIndex];
|
|
2393
|
+
if (newTab) overflowButtons.get(newTab)?.focus();
|
|
2394
|
+
}
|
|
1880
2395
|
function setActiveTab(tab) {
|
|
1881
2396
|
activeTab = tab;
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
if (styles_tabs_module.tabActive) tabButton.classList.toggle(styles_tabs_module.tabActive, isActive);
|
|
1885
|
-
tabButton.setAttribute('aria-selected', isActive ? 'true' : 'false');
|
|
1886
|
-
tabButton.tabIndex = isActive ? 0 : -1;
|
|
1887
|
-
}
|
|
2397
|
+
applyActiveState(tab);
|
|
2398
|
+
updateVisibleTabs();
|
|
1888
2399
|
}
|
|
2400
|
+
const handleWindowResize = ()=>{
|
|
2401
|
+
updateVisibleTabs();
|
|
2402
|
+
};
|
|
2403
|
+
let resizeObserver = null;
|
|
2404
|
+
if ('undefined' != typeof ResizeObserver) {
|
|
2405
|
+
resizeObserver = new ResizeObserver(()=>{
|
|
2406
|
+
updateVisibleTabs();
|
|
2407
|
+
});
|
|
2408
|
+
resizeObserver.observe(tabList);
|
|
2409
|
+
} else window.addEventListener('resize', handleWindowResize);
|
|
2410
|
+
applyActiveState(activeTab);
|
|
2411
|
+
requestAnimationFrame(()=>{
|
|
2412
|
+
updateVisibleTabs();
|
|
2413
|
+
});
|
|
1889
2414
|
return {
|
|
1890
2415
|
element: tabList,
|
|
1891
2416
|
setActiveTab,
|
|
1892
2417
|
destroy: ()=>{
|
|
2418
|
+
closeOverflowMenu();
|
|
2419
|
+
if (resizeObserver) {
|
|
2420
|
+
resizeObserver.disconnect();
|
|
2421
|
+
resizeObserver = null;
|
|
2422
|
+
} else window.removeEventListener('resize', handleWindowResize);
|
|
1893
2423
|
tabButtons.clear();
|
|
2424
|
+
overflowButtons.clear();
|
|
1894
2425
|
}
|
|
1895
2426
|
};
|
|
1896
2427
|
}
|
|
2428
|
+
function debug_bundle_createDebugBundle(payload) {
|
|
2429
|
+
const { namespace, devToolsState, connection, recentEvents, storeState } = payload;
|
|
2430
|
+
const bundle = {
|
|
2431
|
+
generatedAt: new Date().toISOString(),
|
|
2432
|
+
namespace,
|
|
2433
|
+
devToolsState,
|
|
2434
|
+
connection,
|
|
2435
|
+
recentEvents,
|
|
2436
|
+
storeState,
|
|
2437
|
+
overrides: storeState?.overrides ?? null,
|
|
2438
|
+
iab: storeState?.iab ? {
|
|
2439
|
+
tcString: (storeState?.iab).tcString ?? null,
|
|
2440
|
+
purposeCount: Object.keys((storeState?.iab).purposeConsents ?? {}).length,
|
|
2441
|
+
vendorCount: Object.keys((storeState?.iab).vendorConsents ?? {}).length
|
|
2442
|
+
} : null
|
|
2443
|
+
};
|
|
2444
|
+
return JSON.stringify(bundle, null, 2);
|
|
2445
|
+
}
|
|
2446
|
+
function debug_bundle_sanitizeStoreState(state) {
|
|
2447
|
+
if (!state) return null;
|
|
2448
|
+
try {
|
|
2449
|
+
return JSON.parse(JSON.stringify(state, (_key, value)=>'function' == typeof value ? void 0 : value));
|
|
2450
|
+
} catch {
|
|
2451
|
+
return {
|
|
2452
|
+
error: 'Unable to serialize store state'
|
|
2453
|
+
};
|
|
2454
|
+
}
|
|
2455
|
+
}
|
|
2456
|
+
function debug_bundle_downloadDebugBundle(content) {
|
|
2457
|
+
const blob = new Blob([
|
|
2458
|
+
content
|
|
2459
|
+
], {
|
|
2460
|
+
type: 'application/json'
|
|
2461
|
+
});
|
|
2462
|
+
const url = URL.createObjectURL(blob);
|
|
2463
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
2464
|
+
const anchor = document.createElement('a');
|
|
2465
|
+
anchor.href = url;
|
|
2466
|
+
anchor.download = `c15t-debug-bundle-${timestamp}.json`;
|
|
2467
|
+
anchor.click();
|
|
2468
|
+
URL.revokeObjectURL(url);
|
|
2469
|
+
}
|
|
2470
|
+
const DEVTOOLS_OVERRIDES_STORAGE_KEY = 'c15t-devtools-overrides';
|
|
2471
|
+
function normalizeStringValue(value) {
|
|
2472
|
+
if ('string' != typeof value) return;
|
|
2473
|
+
const normalized = value.trim();
|
|
2474
|
+
return normalized.length > 0 ? normalized : void 0;
|
|
2475
|
+
}
|
|
2476
|
+
function normalizeBooleanValue(value) {
|
|
2477
|
+
return 'boolean' == typeof value ? value : void 0;
|
|
2478
|
+
}
|
|
2479
|
+
function normalizeOverrides(value) {
|
|
2480
|
+
if (!value || 'object' != typeof value) return null;
|
|
2481
|
+
const source = value;
|
|
2482
|
+
const overrides = {
|
|
2483
|
+
country: normalizeStringValue(source.country),
|
|
2484
|
+
region: normalizeStringValue(source.region),
|
|
2485
|
+
language: normalizeStringValue(source.language),
|
|
2486
|
+
gpc: normalizeBooleanValue(source.gpc)
|
|
2487
|
+
};
|
|
2488
|
+
return hasPersistedOverrides(overrides) ? overrides : null;
|
|
2489
|
+
}
|
|
2490
|
+
function hasPersistedOverrides(overrides) {
|
|
2491
|
+
return Boolean(overrides.country || overrides.region || overrides.language || void 0 !== overrides.gpc);
|
|
2492
|
+
}
|
|
2493
|
+
function override_storage_loadPersistedOverrides(storageKey = DEVTOOLS_OVERRIDES_STORAGE_KEY) {
|
|
2494
|
+
if ('undefined' == typeof window) return null;
|
|
2495
|
+
try {
|
|
2496
|
+
const stored = localStorage.getItem(storageKey);
|
|
2497
|
+
if (!stored) return null;
|
|
2498
|
+
const parsed = JSON.parse(stored);
|
|
2499
|
+
return normalizeOverrides(parsed);
|
|
2500
|
+
} catch {
|
|
2501
|
+
return null;
|
|
2502
|
+
}
|
|
2503
|
+
}
|
|
2504
|
+
function override_storage_persistOverrides(overrides, storageKey = DEVTOOLS_OVERRIDES_STORAGE_KEY) {
|
|
2505
|
+
if ('undefined' == typeof window) return;
|
|
2506
|
+
try {
|
|
2507
|
+
if (!hasPersistedOverrides(overrides)) return void localStorage.removeItem(storageKey);
|
|
2508
|
+
localStorage.setItem(storageKey, JSON.stringify(overrides));
|
|
2509
|
+
} catch {}
|
|
2510
|
+
}
|
|
2511
|
+
function override_storage_clearPersistedOverrides(storageKey = DEVTOOLS_OVERRIDES_STORAGE_KEY) {
|
|
2512
|
+
if ('undefined' == typeof window) return;
|
|
2513
|
+
try {
|
|
2514
|
+
localStorage.removeItem(storageKey);
|
|
2515
|
+
} catch {}
|
|
2516
|
+
}
|
|
1897
2517
|
var components_module = __webpack_require__("../../node_modules/.bun/@rsbuild+core@1.6.12/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[1].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[1].use[2]!./src/styles/components.module.css");
|
|
1898
2518
|
var components_module_options = {};
|
|
1899
2519
|
components_module_options.styleTagTransform = styleTagTransform_default();
|
|
@@ -1961,31 +2581,19 @@ var __webpack_exports__ = {};
|
|
|
1961
2581
|
btn.appendChild(document.createTextNode(text));
|
|
1962
2582
|
return btn;
|
|
1963
2583
|
}
|
|
1964
|
-
function
|
|
1965
|
-
const {
|
|
1966
|
-
const
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
]
|
|
1978
|
-
});
|
|
1979
|
-
const actionsContainer = renderer_div({
|
|
1980
|
-
className: styles_components_module.listItemActions,
|
|
1981
|
-
children: actions
|
|
1982
|
-
});
|
|
1983
|
-
return renderer_div({
|
|
1984
|
-
className: styles_components_module.listItem,
|
|
1985
|
-
children: [
|
|
1986
|
-
content,
|
|
1987
|
-
actionsContainer
|
|
1988
|
-
]
|
|
2584
|
+
function createInput(options) {
|
|
2585
|
+
const { value, placeholder, ariaLabel, small = false, onInput } = options;
|
|
2586
|
+
const sizeClass = small ? styles_components_module.inputSmall : '';
|
|
2587
|
+
return input({
|
|
2588
|
+
className: `${styles_components_module.input} ${sizeClass}`.trim(),
|
|
2589
|
+
type: 'text',
|
|
2590
|
+
value,
|
|
2591
|
+
placeholder,
|
|
2592
|
+
ariaLabel,
|
|
2593
|
+
onInput: (event)=>{
|
|
2594
|
+
const target = event.target;
|
|
2595
|
+
onInput?.(target?.value ?? '');
|
|
2596
|
+
}
|
|
1989
2597
|
});
|
|
1990
2598
|
}
|
|
1991
2599
|
function createSection(options) {
|
|
@@ -2068,6 +2676,18 @@ var __webpack_exports__ = {};
|
|
|
2068
2676
|
children
|
|
2069
2677
|
});
|
|
2070
2678
|
}
|
|
2679
|
+
function createDisconnectedState(message = 'Store not connected') {
|
|
2680
|
+
return renderer_div({
|
|
2681
|
+
className: styles_components_module.disconnectedState,
|
|
2682
|
+
style: {
|
|
2683
|
+
padding: '24px',
|
|
2684
|
+
textAlign: 'center',
|
|
2685
|
+
color: 'var(--c15t-text-muted)',
|
|
2686
|
+
fontSize: 'var(--c15t-devtools-font-size-sm)'
|
|
2687
|
+
},
|
|
2688
|
+
text: message
|
|
2689
|
+
});
|
|
2690
|
+
}
|
|
2071
2691
|
const REFRESH_ICON = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
2072
2692
|
<path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path>
|
|
2073
2693
|
<path d="M21 3v5h-5"></path>
|
|
@@ -2095,19 +2715,11 @@ var __webpack_exports__ = {};
|
|
|
2095
2715
|
<polyline points="4 17 10 11 4 5"></polyline>
|
|
2096
2716
|
<line x1="12" y1="19" x2="20" y2="19"></line>
|
|
2097
2717
|
</svg>`;
|
|
2098
|
-
function
|
|
2099
|
-
const { getState, onResetConsents, onRefetchBanner, onShowBanner, onOpenPreferences, onCopyState } = options;
|
|
2718
|
+
function renderActionsPanel(container, options) {
|
|
2719
|
+
const { getState, onResetConsents, onRefetchBanner, onShowBanner, onOpenPreferences, onCopyState, onExportDebugBundle } = options;
|
|
2100
2720
|
renderer_clearElement(container);
|
|
2101
2721
|
const state = getState();
|
|
2102
|
-
if (!state) return void container.appendChild(
|
|
2103
|
-
style: {
|
|
2104
|
-
padding: '24px',
|
|
2105
|
-
textAlign: 'center',
|
|
2106
|
-
color: 'var(--c15t-text-muted)',
|
|
2107
|
-
fontSize: 'var(--c15t-devtools-font-size-sm)'
|
|
2108
|
-
},
|
|
2109
|
-
text: 'Store not connected'
|
|
2110
|
-
}));
|
|
2722
|
+
if (!state) return void container.appendChild(createDisconnectedState());
|
|
2111
2723
|
const actionCards = [
|
|
2112
2724
|
createActionCard({
|
|
2113
2725
|
icon: actions_EYE_ICON,
|
|
@@ -2128,6 +2740,12 @@ var __webpack_exports__ = {};
|
|
|
2128
2740
|
icon: COPY_ICON,
|
|
2129
2741
|
label: 'Copy State',
|
|
2130
2742
|
onClick: onCopyState
|
|
2743
|
+
}),
|
|
2744
|
+
createActionCard({
|
|
2745
|
+
icon: REFRESH_ICON,
|
|
2746
|
+
label: 'Export Debug',
|
|
2747
|
+
onClick: ()=>onExportDebugBundle?.(),
|
|
2748
|
+
disabled: !onExportDebugBundle
|
|
2131
2749
|
})
|
|
2132
2750
|
];
|
|
2133
2751
|
const grid = createGrid({
|
|
@@ -2201,7 +2819,7 @@ var __webpack_exports__ = {};
|
|
|
2201
2819
|
container.appendChild(consoleSection);
|
|
2202
2820
|
}
|
|
2203
2821
|
function createActionCard(options) {
|
|
2204
|
-
const { icon, label, onClick } = options;
|
|
2822
|
+
const { icon, label, onClick, disabled = false } = options;
|
|
2205
2823
|
const card = renderer_div({
|
|
2206
2824
|
className: styles_components_module.gridCard ?? '',
|
|
2207
2825
|
style: {
|
|
@@ -2212,7 +2830,8 @@ var __webpack_exports__ = {};
|
|
|
2212
2830
|
gap: '6px',
|
|
2213
2831
|
padding: '16px 8px',
|
|
2214
2832
|
cursor: 'pointer',
|
|
2215
|
-
transition: 'background-color var(--c15t-duration-fast) var(--c15t-easing)'
|
|
2833
|
+
transition: 'background-color var(--c15t-duration-fast) var(--c15t-easing)',
|
|
2834
|
+
opacity: disabled ? '0.55' : '1'
|
|
2216
2835
|
},
|
|
2217
2836
|
children: [
|
|
2218
2837
|
createIconWrapper(icon, 20),
|
|
@@ -2227,13 +2846,15 @@ var __webpack_exports__ = {};
|
|
|
2227
2846
|
})
|
|
2228
2847
|
]
|
|
2229
2848
|
});
|
|
2230
|
-
|
|
2231
|
-
|
|
2232
|
-
card.
|
|
2233
|
-
|
|
2234
|
-
|
|
2235
|
-
card.
|
|
2236
|
-
|
|
2849
|
+
if (!disabled) {
|
|
2850
|
+
card.addEventListener('click', onClick);
|
|
2851
|
+
card.addEventListener('mouseenter', ()=>{
|
|
2852
|
+
card.style.backgroundColor = 'var(--c15t-surface-hover)';
|
|
2853
|
+
});
|
|
2854
|
+
card.addEventListener('mouseleave', ()=>{
|
|
2855
|
+
card.style.backgroundColor = '';
|
|
2856
|
+
});
|
|
2857
|
+
}
|
|
2237
2858
|
return card;
|
|
2238
2859
|
}
|
|
2239
2860
|
function createIconWrapper(icon, size) {
|
|
@@ -2254,19 +2875,12 @@ var __webpack_exports__ = {};
|
|
|
2254
2875
|
function getNamespace(state) {
|
|
2255
2876
|
return state.config?.meta?.namespace || 'c15tStore';
|
|
2256
2877
|
}
|
|
2257
|
-
|
|
2878
|
+
const consentSearchByContainer = new WeakMap();
|
|
2879
|
+
function renderConsentsPanel(container, options) {
|
|
2258
2880
|
const { getState, onConsentChange, onSave, onAcceptAll, onRejectAll, onReset } = options;
|
|
2259
2881
|
renderer_clearElement(container);
|
|
2260
2882
|
const state = getState();
|
|
2261
|
-
if (!state) return void container.appendChild(
|
|
2262
|
-
style: {
|
|
2263
|
-
padding: '24px',
|
|
2264
|
-
textAlign: 'center',
|
|
2265
|
-
color: 'var(--c15t-text-muted)',
|
|
2266
|
-
fontSize: 'var(--c15t-devtools-font-size-sm)'
|
|
2267
|
-
},
|
|
2268
|
-
text: 'Store not connected'
|
|
2269
|
-
}));
|
|
2883
|
+
if (!state) return void container.appendChild(createDisconnectedState());
|
|
2270
2884
|
const isIabMode = 'iab' === state.model;
|
|
2271
2885
|
const savedConsents = state.consents || {};
|
|
2272
2886
|
const selectedConsents = state.selectedConsents || {};
|
|
@@ -2280,15 +2894,40 @@ var __webpack_exports__ = {};
|
|
|
2280
2894
|
ct.name,
|
|
2281
2895
|
ct
|
|
2282
2896
|
]));
|
|
2897
|
+
const searchQuery = consentSearchByContainer.get(container) ?? '';
|
|
2283
2898
|
const consentEntries = Object.entries(displayConsents);
|
|
2284
|
-
|
|
2899
|
+
const filteredConsentEntries = consentEntries.filter(([name])=>{
|
|
2900
|
+
if (!searchQuery) return true;
|
|
2901
|
+
const consentType = consentTypeMap.get(name);
|
|
2902
|
+
const displayName = consentType?.name || name;
|
|
2903
|
+
return `${name} ${displayName}`.toLowerCase().includes(searchQuery);
|
|
2904
|
+
});
|
|
2905
|
+
const showSearchInput = consentEntries.length > 4;
|
|
2906
|
+
if (showSearchInput) container.appendChild(renderer_div({
|
|
2907
|
+
style: {
|
|
2908
|
+
padding: '8px 0 10px'
|
|
2909
|
+
},
|
|
2910
|
+
children: [
|
|
2911
|
+
createInput({
|
|
2912
|
+
value: searchQuery,
|
|
2913
|
+
placeholder: 'Filter consents…',
|
|
2914
|
+
ariaLabel: 'Filter consents',
|
|
2915
|
+
small: true,
|
|
2916
|
+
onInput: (value)=>{
|
|
2917
|
+
consentSearchByContainer.set(container, value.trim().toLowerCase());
|
|
2918
|
+
renderConsentsPanel(container, options);
|
|
2919
|
+
}
|
|
2920
|
+
})
|
|
2921
|
+
]
|
|
2922
|
+
}));
|
|
2923
|
+
if (0 === filteredConsentEntries.length) container.appendChild(renderer_div({
|
|
2285
2924
|
style: {
|
|
2286
2925
|
padding: '24px',
|
|
2287
2926
|
textAlign: 'center',
|
|
2288
2927
|
color: 'var(--c15t-devtools-text-muted)',
|
|
2289
2928
|
fontSize: 'var(--c15t-devtools-font-size-sm)'
|
|
2290
2929
|
},
|
|
2291
|
-
text: 'No consents configured'
|
|
2930
|
+
text: 0 === consentEntries.length ? 'No consents configured' : 'No matching consents'
|
|
2292
2931
|
}));
|
|
2293
2932
|
else {
|
|
2294
2933
|
if (isIabMode) {
|
|
@@ -2306,7 +2945,7 @@ var __webpack_exports__ = {};
|
|
|
2306
2945
|
container.appendChild(iabNotice);
|
|
2307
2946
|
}
|
|
2308
2947
|
const gridCards = [];
|
|
2309
|
-
for (const [name, value] of
|
|
2948
|
+
for (const [name, value] of filteredConsentEntries){
|
|
2310
2949
|
const consentType = consentTypeMap.get(name);
|
|
2311
2950
|
const isNecessary = 'necessary' === name;
|
|
2312
2951
|
const displayName = consentType?.name || name;
|
|
@@ -2424,15 +3063,26 @@ var __webpack_exports__ = {};
|
|
|
2424
3063
|
function formatConsentName(name) {
|
|
2425
3064
|
return name.replace(/_/g, ' ').replace(/\b\w/g, (l)=>l.toUpperCase());
|
|
2426
3065
|
}
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
3066
|
+
const panelStateByContainer = new WeakMap();
|
|
3067
|
+
function getPanelState(container) {
|
|
3068
|
+
const existing = panelStateByContainer.get(container);
|
|
3069
|
+
if (existing) return existing;
|
|
3070
|
+
const initialState = {
|
|
3071
|
+
activeFilter: 'all',
|
|
3072
|
+
selectedEventId: null,
|
|
3073
|
+
searchQuery: ''
|
|
3074
|
+
};
|
|
3075
|
+
panelStateByContainer.set(container, initialState);
|
|
3076
|
+
return initialState;
|
|
3077
|
+
}
|
|
3078
|
+
function renderEventsPanel(container, options) {
|
|
2430
3079
|
const { getEvents, onClear } = options;
|
|
3080
|
+
const panelState = getPanelState(container);
|
|
2431
3081
|
renderer_clearElement(container);
|
|
2432
3082
|
const allEvents = getEvents();
|
|
2433
|
-
const events = allEvents.filter((event)=>matchesFilter(event, activeFilter));
|
|
2434
|
-
if (!events.some((event)=>event.id === selectedEventId)) selectedEventId = events[0]?.id ?? null;
|
|
2435
|
-
const selectedEvent = events.find((event)=>event.id === selectedEventId) ?? null;
|
|
3083
|
+
const events = allEvents.filter((event)=>matchesFilter(event, panelState.activeFilter)).filter((event)=>matchesSearch(event, panelState.searchQuery));
|
|
3084
|
+
if (!events.some((event)=>event.id === panelState.selectedEventId)) panelState.selectedEventId = events[0]?.id ?? null;
|
|
3085
|
+
const selectedEvent = events.find((event)=>event.id === panelState.selectedEventId) ?? null;
|
|
2436
3086
|
const header = renderer_div({
|
|
2437
3087
|
style: {
|
|
2438
3088
|
display: 'flex',
|
|
@@ -2468,8 +3118,8 @@ var __webpack_exports__ = {};
|
|
|
2468
3118
|
small: true,
|
|
2469
3119
|
onClick: ()=>{
|
|
2470
3120
|
onClear();
|
|
2471
|
-
selectedEventId = null;
|
|
2472
|
-
|
|
3121
|
+
panelState.selectedEventId = null;
|
|
3122
|
+
renderEventsPanel(container, options);
|
|
2473
3123
|
}
|
|
2474
3124
|
})
|
|
2475
3125
|
]
|
|
@@ -2484,12 +3134,30 @@ var __webpack_exports__ = {};
|
|
|
2484
3134
|
gap: '6px',
|
|
2485
3135
|
padding: '0 16px 8px'
|
|
2486
3136
|
},
|
|
2487
|
-
children: EVENT_FILTERS.map((filter)=>createFilterButton(filter, filter === activeFilter, ()=>{
|
|
2488
|
-
activeFilter = filter;
|
|
2489
|
-
selectedEventId = null;
|
|
2490
|
-
|
|
3137
|
+
children: EVENT_FILTERS.map((filter)=>createFilterButton(filter, filter === panelState.activeFilter, ()=>{
|
|
3138
|
+
panelState.activeFilter = filter;
|
|
3139
|
+
panelState.selectedEventId = null;
|
|
3140
|
+
renderEventsPanel(container, options);
|
|
2491
3141
|
}))
|
|
2492
3142
|
}));
|
|
3143
|
+
container.appendChild(renderer_div({
|
|
3144
|
+
style: {
|
|
3145
|
+
padding: '0 16px 8px'
|
|
3146
|
+
},
|
|
3147
|
+
children: [
|
|
3148
|
+
createInput({
|
|
3149
|
+
value: panelState.searchQuery,
|
|
3150
|
+
placeholder: 'Search events…',
|
|
3151
|
+
ariaLabel: 'Search events',
|
|
3152
|
+
small: true,
|
|
3153
|
+
onInput: (value)=>{
|
|
3154
|
+
panelState.searchQuery = value.trim().toLowerCase();
|
|
3155
|
+
panelState.selectedEventId = null;
|
|
3156
|
+
renderEventsPanel(container, options);
|
|
3157
|
+
}
|
|
3158
|
+
})
|
|
3159
|
+
]
|
|
3160
|
+
}));
|
|
2493
3161
|
const eventList = renderer_div({
|
|
2494
3162
|
style: {
|
|
2495
3163
|
display: 'flex',
|
|
@@ -2509,9 +3177,9 @@ var __webpack_exports__ = {};
|
|
|
2509
3177
|
},
|
|
2510
3178
|
text: 'No events match this filter'
|
|
2511
3179
|
}));
|
|
2512
|
-
else for (const event of events)eventList.appendChild(createEventItem(event, event.id === selectedEventId, ()=>{
|
|
2513
|
-
selectedEventId = event.id;
|
|
2514
|
-
|
|
3180
|
+
else for (const event of events)eventList.appendChild(createEventItem(event, event.id === panelState.selectedEventId, ()=>{
|
|
3181
|
+
panelState.selectedEventId = event.id;
|
|
3182
|
+
renderEventsPanel(container, options);
|
|
2515
3183
|
}));
|
|
2516
3184
|
container.appendChild(eventList);
|
|
2517
3185
|
container.appendChild(createPayloadSection(selectedEvent));
|
|
@@ -2538,6 +3206,11 @@ var __webpack_exports__ = {};
|
|
|
2538
3206
|
if ('network' === filter) return 'network' === event.type;
|
|
2539
3207
|
return 'iab' === event.type;
|
|
2540
3208
|
}
|
|
3209
|
+
function matchesSearch(event, query) {
|
|
3210
|
+
if (!query) return true;
|
|
3211
|
+
const haystack = `${event.type} ${event.message} ${JSON.stringify(event.data ?? {})}`;
|
|
3212
|
+
return haystack.toLowerCase().includes(query);
|
|
3213
|
+
}
|
|
2541
3214
|
function createPayloadSection(event) {
|
|
2542
3215
|
const payload = event?.data ? JSON.stringify(event.data, null, 2) : null;
|
|
2543
3216
|
return renderer_div({
|
|
@@ -2675,38 +3348,15 @@ var __webpack_exports__ = {};
|
|
|
2675
3348
|
return 'var(--c15t-text-muted)';
|
|
2676
3349
|
}
|
|
2677
3350
|
}
|
|
2678
|
-
|
|
3351
|
+
const iabSearchByContainer = new WeakMap();
|
|
3352
|
+
function renderIabPanel(container, options) {
|
|
2679
3353
|
const { getState, onSetPurposeConsent, onSetVendorConsent, onSetSpecialFeatureOptIn, onAcceptAll, onRejectAll, onSave, onReset } = options;
|
|
2680
3354
|
renderer_clearElement(container);
|
|
2681
3355
|
const state = getState();
|
|
2682
|
-
if (!state) return void container.appendChild(
|
|
2683
|
-
|
|
2684
|
-
padding: '24px',
|
|
2685
|
-
textAlign: 'center',
|
|
2686
|
-
color: 'var(--c15t-text-muted)',
|
|
2687
|
-
fontSize: 'var(--c15t-devtools-font-size-sm)'
|
|
2688
|
-
},
|
|
2689
|
-
text: 'Store not connected'
|
|
2690
|
-
}));
|
|
2691
|
-
if ('iab' !== state.model) return void container.appendChild(renderer_div({
|
|
2692
|
-
style: {
|
|
2693
|
-
padding: '24px',
|
|
2694
|
-
textAlign: 'center',
|
|
2695
|
-
color: 'var(--c15t-text-muted)',
|
|
2696
|
-
fontSize: 'var(--c15t-devtools-font-size-sm)'
|
|
2697
|
-
},
|
|
2698
|
-
text: 'IAB TCF mode is not configured'
|
|
2699
|
-
}));
|
|
3356
|
+
if (!state) return void container.appendChild(createDisconnectedState());
|
|
3357
|
+
if ('iab' !== state.model) return void container.appendChild(createDisconnectedState('IAB TCF mode is not configured'));
|
|
2700
3358
|
const iabState = state.iab;
|
|
2701
|
-
if (!iabState) return void container.appendChild(
|
|
2702
|
-
style: {
|
|
2703
|
-
padding: '24px',
|
|
2704
|
-
textAlign: 'center',
|
|
2705
|
-
color: 'var(--c15t-text-muted)',
|
|
2706
|
-
fontSize: 'var(--c15t-devtools-font-size-sm)'
|
|
2707
|
-
},
|
|
2708
|
-
text: 'IAB state not available'
|
|
2709
|
-
}));
|
|
3359
|
+
if (!iabState) return void container.appendChild(createDisconnectedState('IAB state not available'));
|
|
2710
3360
|
const tcString = iabState.tcString;
|
|
2711
3361
|
const tcStringSection = createSection({
|
|
2712
3362
|
title: 'TC String',
|
|
@@ -2738,9 +3388,30 @@ var __webpack_exports__ = {};
|
|
|
2738
3388
|
});
|
|
2739
3389
|
container.appendChild(tcStringSection);
|
|
2740
3390
|
const gvl = iabState.gvl;
|
|
3391
|
+
const searchQuery = iabSearchByContainer.get(container) ?? '';
|
|
3392
|
+
container.appendChild(createSection({
|
|
3393
|
+
title: 'Filter',
|
|
3394
|
+
children: [
|
|
3395
|
+
createInput({
|
|
3396
|
+
value: searchQuery,
|
|
3397
|
+
placeholder: 'Filter purposes or vendors…',
|
|
3398
|
+
ariaLabel: 'Filter IAB purposes and vendors',
|
|
3399
|
+
small: true,
|
|
3400
|
+
onInput: (value)=>{
|
|
3401
|
+
iabSearchByContainer.set(container, value.trim().toLowerCase());
|
|
3402
|
+
renderIabPanel(container, options);
|
|
3403
|
+
}
|
|
3404
|
+
})
|
|
3405
|
+
]
|
|
3406
|
+
}));
|
|
2741
3407
|
const purposeConsents = iabState.purposeConsents || {};
|
|
2742
3408
|
const purposes = gvl?.purposes || {};
|
|
2743
|
-
const purposeEntries = Object.entries(purposeConsents)
|
|
3409
|
+
const purposeEntries = Object.entries(purposeConsents).filter(([purposeId])=>{
|
|
3410
|
+
if (!searchQuery) return true;
|
|
3411
|
+
const purposeInfo = purposes[purposeId];
|
|
3412
|
+
const purposeName = purposeInfo?.name || `Purpose ${purposeId}`;
|
|
3413
|
+
return `${purposeId} ${purposeName}`.toLowerCase().includes(searchQuery);
|
|
3414
|
+
});
|
|
2744
3415
|
if (purposeEntries.length > 0) {
|
|
2745
3416
|
const purposeList = renderer_div({
|
|
2746
3417
|
style: {
|
|
@@ -2768,7 +3439,12 @@ var __webpack_exports__ = {};
|
|
|
2768
3439
|
}
|
|
2769
3440
|
const specialFeatureOptIns = iabState.specialFeatureOptIns || {};
|
|
2770
3441
|
const specialFeatures = gvl?.specialFeatures || {};
|
|
2771
|
-
const specialFeatureEntries = Object.entries(specialFeatureOptIns)
|
|
3442
|
+
const specialFeatureEntries = Object.entries(specialFeatureOptIns).filter(([featureId])=>{
|
|
3443
|
+
if (!searchQuery) return true;
|
|
3444
|
+
const featureInfo = specialFeatures[featureId];
|
|
3445
|
+
const featureName = featureInfo?.name || `Special Feature ${featureId}`;
|
|
3446
|
+
return `${featureId} ${featureName}`.toLowerCase().includes(searchQuery);
|
|
3447
|
+
});
|
|
2772
3448
|
if (specialFeatureEntries.length > 0) {
|
|
2773
3449
|
const specialFeatureList = renderer_div({
|
|
2774
3450
|
style: {
|
|
@@ -2796,7 +3472,12 @@ var __webpack_exports__ = {};
|
|
|
2796
3472
|
}
|
|
2797
3473
|
const vendorConsents = iabState.vendorConsents || {};
|
|
2798
3474
|
const vendors = gvl?.vendors || {};
|
|
2799
|
-
const vendorEntries = Object.entries(vendorConsents)
|
|
3475
|
+
const vendorEntries = Object.entries(vendorConsents).filter(([vendorId])=>{
|
|
3476
|
+
if (!searchQuery) return true;
|
|
3477
|
+
const vendorInfo = vendors[vendorId];
|
|
3478
|
+
const vendorName = vendorInfo?.name || `Vendor ${vendorId}`;
|
|
3479
|
+
return `${vendorId} ${vendorName}`.toLowerCase().includes(searchQuery);
|
|
3480
|
+
});
|
|
2800
3481
|
const iabVendors = [];
|
|
2801
3482
|
const customVendors = [];
|
|
2802
3483
|
for (const [vendorId, consent] of vendorEntries){
|
|
@@ -3015,19 +3696,11 @@ var __webpack_exports__ = {};
|
|
|
3015
3696
|
if (text.length <= maxLength) return text;
|
|
3016
3697
|
return `${text.slice(0, maxLength - 3)}...`;
|
|
3017
3698
|
}
|
|
3018
|
-
function
|
|
3699
|
+
function renderLocationPanel(container, options) {
|
|
3019
3700
|
const { getState, onApplyOverrides, onClearOverrides } = options;
|
|
3020
3701
|
renderer_clearElement(container);
|
|
3021
3702
|
const state = getState();
|
|
3022
|
-
if (!state) return void container.appendChild(
|
|
3023
|
-
style: {
|
|
3024
|
-
padding: '24px',
|
|
3025
|
-
textAlign: 'center',
|
|
3026
|
-
color: 'var(--c15t-text-muted)',
|
|
3027
|
-
fontSize: 'var(--c15t-devtools-font-size-sm)'
|
|
3028
|
-
},
|
|
3029
|
-
text: 'Store not connected'
|
|
3030
|
-
}));
|
|
3703
|
+
if (!state) return void container.appendChild(createDisconnectedState());
|
|
3031
3704
|
const locationInfo = state.locationInfo;
|
|
3032
3705
|
const overrides = state.overrides;
|
|
3033
3706
|
const translationConfig = state.translationConfig;
|
|
@@ -3676,29 +4349,43 @@ var __webpack_exports__ = {};
|
|
|
3676
4349
|
<polyline points="16 18 22 12 16 6"></polyline>
|
|
3677
4350
|
<polyline points="8 6 2 12 8 18"></polyline>
|
|
3678
4351
|
</svg>`;
|
|
3679
|
-
|
|
4352
|
+
const scriptsSearchByContainer = new WeakMap();
|
|
4353
|
+
function renderScriptsPanel(container, options) {
|
|
3680
4354
|
const { getState, getEvents } = options;
|
|
3681
4355
|
renderer_clearElement(container);
|
|
3682
4356
|
const state = getState();
|
|
3683
|
-
if (!state) return void container.appendChild(
|
|
3684
|
-
style: {
|
|
3685
|
-
padding: '24px',
|
|
3686
|
-
textAlign: 'center',
|
|
3687
|
-
color: 'var(--c15t-text-muted)',
|
|
3688
|
-
fontSize: 'var(--c15t-devtools-font-size-sm)'
|
|
3689
|
-
},
|
|
3690
|
-
text: 'Store not connected'
|
|
3691
|
-
}));
|
|
4357
|
+
if (!state) return void container.appendChild(createDisconnectedState());
|
|
3692
4358
|
const scripts = state.scripts || [];
|
|
3693
4359
|
const loadedScripts = state.loadedScripts || {};
|
|
3694
4360
|
const networkBlocker = state.networkBlocker;
|
|
3695
4361
|
const events = getEvents?.() ?? [];
|
|
3696
|
-
|
|
3697
|
-
|
|
3698
|
-
|
|
3699
|
-
|
|
3700
|
-
|
|
3701
|
-
|
|
4362
|
+
const searchQuery = scriptsSearchByContainer.get(container) ?? '';
|
|
4363
|
+
const filteredScripts = scripts.filter((script)=>{
|
|
4364
|
+
if (!searchQuery) return true;
|
|
4365
|
+
const category = 'string' == typeof script.category ? script.category : JSON.stringify(script.category);
|
|
4366
|
+
return `${script.id} ${category}`.toLowerCase().includes(searchQuery);
|
|
4367
|
+
});
|
|
4368
|
+
if (scripts.length > 4) container.appendChild(createSection({
|
|
4369
|
+
title: 'Filter',
|
|
4370
|
+
children: [
|
|
4371
|
+
createInput({
|
|
4372
|
+
value: searchQuery,
|
|
4373
|
+
placeholder: "Filter scripts…",
|
|
4374
|
+
ariaLabel: "Filter scripts",
|
|
4375
|
+
small: true,
|
|
4376
|
+
onInput: (value)=>{
|
|
4377
|
+
scriptsSearchByContainer.set(container, value.trim().toLowerCase());
|
|
4378
|
+
renderScriptsPanel(container, options);
|
|
4379
|
+
}
|
|
4380
|
+
})
|
|
4381
|
+
]
|
|
4382
|
+
}));
|
|
4383
|
+
if (0 === scripts.length) {
|
|
4384
|
+
const scriptsSection = createSection({
|
|
4385
|
+
title: 'Configured Scripts',
|
|
4386
|
+
children: [
|
|
4387
|
+
createEmptyState({
|
|
4388
|
+
icon: CODE_ICON,
|
|
3702
4389
|
text: "No scripts configured"
|
|
3703
4390
|
})
|
|
3704
4391
|
]
|
|
@@ -3709,10 +4396,19 @@ var __webpack_exports__ = {};
|
|
|
3709
4396
|
style: {
|
|
3710
4397
|
display: 'flex',
|
|
3711
4398
|
flexDirection: 'column',
|
|
3712
|
-
|
|
4399
|
+
borderTop: '1px solid var(--c15t-border)',
|
|
4400
|
+
borderBottom: '1px solid var(--c15t-border)'
|
|
3713
4401
|
}
|
|
3714
4402
|
});
|
|
3715
|
-
|
|
4403
|
+
if (0 === filteredScripts.length) scriptsList.appendChild(renderer_div({
|
|
4404
|
+
style: {
|
|
4405
|
+
padding: '10px 0',
|
|
4406
|
+
fontSize: 'var(--c15t-devtools-font-size-xs)',
|
|
4407
|
+
color: 'var(--c15t-text-muted)'
|
|
4408
|
+
},
|
|
4409
|
+
text: "No matching scripts"
|
|
4410
|
+
}));
|
|
4411
|
+
for (const script of filteredScripts){
|
|
3716
4412
|
const scriptId = script.id;
|
|
3717
4413
|
const isLoaded = true === loadedScripts[scriptId];
|
|
3718
4414
|
const category = script.category;
|
|
@@ -3736,17 +4432,64 @@ var __webpack_exports__ = {};
|
|
|
3736
4432
|
text: status.charAt(0).toUpperCase() + status.slice(1),
|
|
3737
4433
|
variant: statusVariant
|
|
3738
4434
|
});
|
|
3739
|
-
const
|
|
3740
|
-
|
|
3741
|
-
|
|
3742
|
-
|
|
3743
|
-
|
|
4435
|
+
const row = renderer_div({
|
|
4436
|
+
style: {
|
|
4437
|
+
display: 'flex',
|
|
4438
|
+
alignItems: 'center',
|
|
4439
|
+
justifyContent: 'space-between',
|
|
4440
|
+
gap: '8px',
|
|
4441
|
+
padding: '8px 0',
|
|
4442
|
+
borderBottom: '1px solid var(--c15t-border)'
|
|
4443
|
+
},
|
|
4444
|
+
children: [
|
|
4445
|
+
renderer_div({
|
|
4446
|
+
style: {
|
|
4447
|
+
display: 'flex',
|
|
4448
|
+
flexDirection: 'column',
|
|
4449
|
+
gap: '2px',
|
|
4450
|
+
minWidth: '0',
|
|
4451
|
+
flex: '1'
|
|
4452
|
+
},
|
|
4453
|
+
children: [
|
|
4454
|
+
renderer_div({
|
|
4455
|
+
style: {
|
|
4456
|
+
fontSize: 'var(--c15t-font-size-sm)',
|
|
4457
|
+
fontWeight: '500',
|
|
4458
|
+
color: 'var(--c15t-text)',
|
|
4459
|
+
overflow: 'hidden',
|
|
4460
|
+
textOverflow: 'ellipsis',
|
|
4461
|
+
whiteSpace: 'nowrap'
|
|
4462
|
+
},
|
|
4463
|
+
text: scriptId
|
|
4464
|
+
}),
|
|
4465
|
+
renderer_div({
|
|
4466
|
+
style: {
|
|
4467
|
+
fontSize: 'var(--c15t-devtools-font-size-xs)',
|
|
4468
|
+
color: 'var(--c15t-text-muted)',
|
|
4469
|
+
overflow: 'hidden',
|
|
4470
|
+
textOverflow: 'ellipsis',
|
|
4471
|
+
whiteSpace: 'nowrap'
|
|
4472
|
+
},
|
|
4473
|
+
text: `Category: ${categoryDisplay}`
|
|
4474
|
+
})
|
|
4475
|
+
]
|
|
4476
|
+
}),
|
|
4477
|
+
renderer_div({
|
|
4478
|
+
style: {
|
|
4479
|
+
flexShrink: '0'
|
|
4480
|
+
},
|
|
4481
|
+
children: [
|
|
4482
|
+
badge
|
|
4483
|
+
]
|
|
4484
|
+
})
|
|
3744
4485
|
]
|
|
3745
4486
|
});
|
|
3746
|
-
scriptsList.appendChild(
|
|
4487
|
+
scriptsList.appendChild(row);
|
|
3747
4488
|
}
|
|
4489
|
+
const lastRow = scriptsList.lastElementChild;
|
|
4490
|
+
if (lastRow) lastRow.style.borderBottom = 'none';
|
|
3748
4491
|
const scriptsSection = createSection({
|
|
3749
|
-
title: `Configured Scripts (${scripts.length})`,
|
|
4492
|
+
title: `Configured Scripts (${filteredScripts.length}/${scripts.length})`,
|
|
3750
4493
|
children: [
|
|
3751
4494
|
scriptsList
|
|
3752
4495
|
]
|
|
@@ -3888,53 +4631,6 @@ var __webpack_exports__ = {};
|
|
|
3888
4631
|
if (text.length <= maxLength) return text;
|
|
3889
4632
|
return `${text.slice(0, maxLength - 3)}...`;
|
|
3890
4633
|
}
|
|
3891
|
-
const DEVTOOLS_OVERRIDES_STORAGE_KEY = 'c15t-devtools-overrides';
|
|
3892
|
-
function normalizeStringValue(value) {
|
|
3893
|
-
if ('string' != typeof value) return;
|
|
3894
|
-
const normalized = value.trim();
|
|
3895
|
-
return normalized.length > 0 ? normalized : void 0;
|
|
3896
|
-
}
|
|
3897
|
-
function normalizeBooleanValue(value) {
|
|
3898
|
-
return 'boolean' == typeof value ? value : void 0;
|
|
3899
|
-
}
|
|
3900
|
-
function normalizeOverrides(value) {
|
|
3901
|
-
if (!value || 'object' != typeof value) return null;
|
|
3902
|
-
const source = value;
|
|
3903
|
-
const overrides = {
|
|
3904
|
-
country: normalizeStringValue(source.country),
|
|
3905
|
-
region: normalizeStringValue(source.region),
|
|
3906
|
-
language: normalizeStringValue(source.language),
|
|
3907
|
-
gpc: normalizeBooleanValue(source.gpc)
|
|
3908
|
-
};
|
|
3909
|
-
return hasPersistedOverrides(overrides) ? overrides : null;
|
|
3910
|
-
}
|
|
3911
|
-
function hasPersistedOverrides(overrides) {
|
|
3912
|
-
return Boolean(overrides.country || overrides.region || overrides.language || void 0 !== overrides.gpc);
|
|
3913
|
-
}
|
|
3914
|
-
function override_storage_loadPersistedOverrides(storageKey = DEVTOOLS_OVERRIDES_STORAGE_KEY) {
|
|
3915
|
-
if ('undefined' == typeof window) return null;
|
|
3916
|
-
try {
|
|
3917
|
-
const stored = localStorage.getItem(storageKey);
|
|
3918
|
-
if (!stored) return null;
|
|
3919
|
-
const parsed = JSON.parse(stored);
|
|
3920
|
-
return normalizeOverrides(parsed);
|
|
3921
|
-
} catch {
|
|
3922
|
-
return null;
|
|
3923
|
-
}
|
|
3924
|
-
}
|
|
3925
|
-
function override_storage_persistOverrides(overrides, storageKey = DEVTOOLS_OVERRIDES_STORAGE_KEY) {
|
|
3926
|
-
if ('undefined' == typeof window) return;
|
|
3927
|
-
try {
|
|
3928
|
-
if (!hasPersistedOverrides(overrides)) return void localStorage.removeItem(storageKey);
|
|
3929
|
-
localStorage.setItem(storageKey, JSON.stringify(overrides));
|
|
3930
|
-
} catch {}
|
|
3931
|
-
}
|
|
3932
|
-
function override_storage_clearPersistedOverrides(storageKey = DEVTOOLS_OVERRIDES_STORAGE_KEY) {
|
|
3933
|
-
if ('undefined' == typeof window) return;
|
|
3934
|
-
try {
|
|
3935
|
-
localStorage.removeItem(storageKey);
|
|
3936
|
-
} catch {}
|
|
3937
|
-
}
|
|
3938
4634
|
const STORAGE_KEYS = {
|
|
3939
4635
|
C15T: 'c15t',
|
|
3940
4636
|
PENDING_SYNC: 'c15t:pending-consent-sync',
|
|
@@ -3960,7 +4656,7 @@ var __webpack_exports__ = {};
|
|
|
3960
4656
|
localStorage.removeItem(STORAGE_KEYS.EUCONSENT);
|
|
3961
4657
|
} catch {}
|
|
3962
4658
|
}
|
|
3963
|
-
async function
|
|
4659
|
+
async function resetAllConsents(store, stateManager) {
|
|
3964
4660
|
const storeState = store.getState();
|
|
3965
4661
|
storeState.resetConsents();
|
|
3966
4662
|
clearAllCookies();
|
|
@@ -3971,7 +4667,222 @@ var __webpack_exports__ = {};
|
|
|
3971
4667
|
message: 'All consents reset (storage cleared)'
|
|
3972
4668
|
});
|
|
3973
4669
|
}
|
|
4670
|
+
function panel_renderer_createPanelRenderer(config) {
|
|
4671
|
+
const { storeConnector, stateManager, enableEventLogging = true, onPersistOverrides, onClearPersistedOverrides, onCopyState, onExportDebugBundle } = config;
|
|
4672
|
+
const getStoreState = ()=>storeConnector.getState();
|
|
4673
|
+
const logEvent = (type, message, data)=>{
|
|
4674
|
+
if (enableEventLogging) stateManager.addEvent({
|
|
4675
|
+
type,
|
|
4676
|
+
message,
|
|
4677
|
+
data
|
|
4678
|
+
});
|
|
4679
|
+
};
|
|
4680
|
+
const resetConsents = async ()=>{
|
|
4681
|
+
const store = storeConnector.getStore();
|
|
4682
|
+
if (store) await resetAllConsents(store, enableEventLogging ? stateManager : void 0);
|
|
4683
|
+
};
|
|
4684
|
+
const renderPanel = (container, tab)=>{
|
|
4685
|
+
switch(tab){
|
|
4686
|
+
case 'consents':
|
|
4687
|
+
renderConsentsPanel(container, {
|
|
4688
|
+
getState: getStoreState,
|
|
4689
|
+
onConsentChange: (name, value)=>{
|
|
4690
|
+
const store = storeConnector.getStore();
|
|
4691
|
+
if (store) {
|
|
4692
|
+
const consentName = String(name);
|
|
4693
|
+
store.getState().setSelectedConsent(consentName, value);
|
|
4694
|
+
logEvent('info', `${consentName} toggled to ${value} (not saved)`, {
|
|
4695
|
+
name: consentName,
|
|
4696
|
+
value
|
|
4697
|
+
});
|
|
4698
|
+
}
|
|
4699
|
+
},
|
|
4700
|
+
onSave: ()=>{
|
|
4701
|
+
const store = storeConnector.getStore();
|
|
4702
|
+
if (store) {
|
|
4703
|
+
store.getState().saveConsents('custom');
|
|
4704
|
+
logEvent('consent_save', 'Saved consent preferences');
|
|
4705
|
+
}
|
|
4706
|
+
},
|
|
4707
|
+
onAcceptAll: ()=>{
|
|
4708
|
+
const store = storeConnector.getStore();
|
|
4709
|
+
if (store) {
|
|
4710
|
+
store.getState().saveConsents('all');
|
|
4711
|
+
logEvent('consent_save', 'Accepted all consents');
|
|
4712
|
+
}
|
|
4713
|
+
},
|
|
4714
|
+
onRejectAll: ()=>{
|
|
4715
|
+
const store = storeConnector.getStore();
|
|
4716
|
+
if (store) {
|
|
4717
|
+
store.getState().saveConsents('necessary');
|
|
4718
|
+
logEvent('consent_save', 'Rejected all optional consents');
|
|
4719
|
+
}
|
|
4720
|
+
},
|
|
4721
|
+
onReset: resetConsents
|
|
4722
|
+
});
|
|
4723
|
+
break;
|
|
4724
|
+
case 'location':
|
|
4725
|
+
renderLocationPanel(container, {
|
|
4726
|
+
getState: getStoreState,
|
|
4727
|
+
onApplyOverrides: async (overrides)=>{
|
|
4728
|
+
const store = storeConnector.getStore();
|
|
4729
|
+
if (store) {
|
|
4730
|
+
await store.getState().setOverrides({
|
|
4731
|
+
country: overrides.country,
|
|
4732
|
+
region: overrides.region,
|
|
4733
|
+
language: overrides.language,
|
|
4734
|
+
gpc: overrides.gpc
|
|
4735
|
+
});
|
|
4736
|
+
logEvent('info', 'Overrides updated', {
|
|
4737
|
+
country: overrides.country,
|
|
4738
|
+
region: overrides.region,
|
|
4739
|
+
language: overrides.language,
|
|
4740
|
+
gpc: overrides.gpc
|
|
4741
|
+
});
|
|
4742
|
+
onPersistOverrides?.({
|
|
4743
|
+
country: overrides.country,
|
|
4744
|
+
region: overrides.region,
|
|
4745
|
+
language: overrides.language,
|
|
4746
|
+
gpc: overrides.gpc
|
|
4747
|
+
});
|
|
4748
|
+
}
|
|
4749
|
+
},
|
|
4750
|
+
onClearOverrides: async ()=>{
|
|
4751
|
+
const store = storeConnector.getStore();
|
|
4752
|
+
if (store) {
|
|
4753
|
+
await store.getState().setOverrides({
|
|
4754
|
+
country: void 0,
|
|
4755
|
+
region: void 0,
|
|
4756
|
+
language: void 0,
|
|
4757
|
+
gpc: void 0
|
|
4758
|
+
});
|
|
4759
|
+
logEvent('info', 'Overrides cleared');
|
|
4760
|
+
onClearPersistedOverrides?.();
|
|
4761
|
+
}
|
|
4762
|
+
}
|
|
4763
|
+
});
|
|
4764
|
+
break;
|
|
4765
|
+
case "scripts":
|
|
4766
|
+
renderScriptsPanel(container, {
|
|
4767
|
+
getState: getStoreState,
|
|
4768
|
+
getEvents: ()=>stateManager.getState().eventLog
|
|
4769
|
+
});
|
|
4770
|
+
break;
|
|
4771
|
+
case 'iab':
|
|
4772
|
+
renderIabPanel(container, {
|
|
4773
|
+
getState: getStoreState,
|
|
4774
|
+
onSetPurposeConsent: (purposeId, value)=>{
|
|
4775
|
+
const iab = storeConnector.getStore()?.getState().iab;
|
|
4776
|
+
if (!iab) return;
|
|
4777
|
+
iab.setPurposeConsent(purposeId, value);
|
|
4778
|
+
logEvent('iab', `IAB purpose ${purposeId} set to ${value}`);
|
|
4779
|
+
},
|
|
4780
|
+
onSetVendorConsent: (vendorId, value)=>{
|
|
4781
|
+
const iab = storeConnector.getStore()?.getState().iab;
|
|
4782
|
+
if (!iab) return;
|
|
4783
|
+
iab.setVendorConsent(vendorId, value);
|
|
4784
|
+
logEvent('iab', `IAB vendor ${vendorId} set to ${value}`);
|
|
4785
|
+
},
|
|
4786
|
+
onSetSpecialFeatureOptIn: (featureId, value)=>{
|
|
4787
|
+
const iab = storeConnector.getStore()?.getState().iab;
|
|
4788
|
+
if (!iab) return;
|
|
4789
|
+
iab.setSpecialFeatureOptIn(featureId, value);
|
|
4790
|
+
logEvent('iab', `IAB feature ${featureId} set to ${value}`);
|
|
4791
|
+
},
|
|
4792
|
+
onAcceptAll: ()=>{
|
|
4793
|
+
const iab = storeConnector.getStore()?.getState().iab;
|
|
4794
|
+
if (!iab) return;
|
|
4795
|
+
iab.acceptAll();
|
|
4796
|
+
logEvent('iab', 'IAB accept all selected');
|
|
4797
|
+
},
|
|
4798
|
+
onRejectAll: ()=>{
|
|
4799
|
+
const iab = storeConnector.getStore()?.getState().iab;
|
|
4800
|
+
if (!iab) return;
|
|
4801
|
+
iab.rejectAll();
|
|
4802
|
+
logEvent('iab', 'IAB reject all selected');
|
|
4803
|
+
},
|
|
4804
|
+
onSave: ()=>{
|
|
4805
|
+
const iab = storeConnector.getStore()?.getState().iab;
|
|
4806
|
+
if (!iab) return;
|
|
4807
|
+
iab.save().then(()=>logEvent('iab', 'IAB preferences saved')).catch((error)=>{
|
|
4808
|
+
logEvent('error', `Failed to save IAB preferences: ${String(error)}`);
|
|
4809
|
+
});
|
|
4810
|
+
},
|
|
4811
|
+
onReset: resetConsents
|
|
4812
|
+
});
|
|
4813
|
+
break;
|
|
4814
|
+
case 'events':
|
|
4815
|
+
renderEventsPanel(container, {
|
|
4816
|
+
getEvents: ()=>stateManager.getState().eventLog,
|
|
4817
|
+
onClear: ()=>{
|
|
4818
|
+
stateManager.clearEventLog();
|
|
4819
|
+
logEvent('info', 'Event log cleared');
|
|
4820
|
+
}
|
|
4821
|
+
});
|
|
4822
|
+
break;
|
|
4823
|
+
case 'actions':
|
|
4824
|
+
renderActionsPanel(container, {
|
|
4825
|
+
getState: getStoreState,
|
|
4826
|
+
onResetConsents: resetConsents,
|
|
4827
|
+
onRefetchBanner: async ()=>{
|
|
4828
|
+
const store = storeConnector.getStore();
|
|
4829
|
+
if (store) {
|
|
4830
|
+
await store.getState().initConsentManager();
|
|
4831
|
+
logEvent('info', 'Banner data refetched');
|
|
4832
|
+
}
|
|
4833
|
+
},
|
|
4834
|
+
onShowBanner: ()=>{
|
|
4835
|
+
const store = storeConnector.getStore();
|
|
4836
|
+
if (store) {
|
|
4837
|
+
store.getState().setActiveUI('banner', {
|
|
4838
|
+
force: true
|
|
4839
|
+
});
|
|
4840
|
+
logEvent('info', 'Banner shown');
|
|
4841
|
+
}
|
|
4842
|
+
},
|
|
4843
|
+
onOpenPreferences: ()=>{
|
|
4844
|
+
const store = storeConnector.getStore();
|
|
4845
|
+
if (store) {
|
|
4846
|
+
store.getState().setActiveUI('dialog');
|
|
4847
|
+
logEvent('info', 'Preferences dialog opened');
|
|
4848
|
+
}
|
|
4849
|
+
},
|
|
4850
|
+
onCopyState: ()=>{
|
|
4851
|
+
const state = getStoreState();
|
|
4852
|
+
if (state) if (onCopyState) {
|
|
4853
|
+
const result = onCopyState(state);
|
|
4854
|
+
if (result instanceof Promise) result.then((ok)=>{
|
|
4855
|
+
logEvent(ok ? 'info' : 'error', ok ? 'State copied to clipboard' : 'Failed to copy state');
|
|
4856
|
+
}).catch(()=>{
|
|
4857
|
+
logEvent('error', 'Failed to copy state');
|
|
4858
|
+
});
|
|
4859
|
+
else logEvent(result ? 'info' : 'error', result ? 'State copied to clipboard' : 'Failed to copy state');
|
|
4860
|
+
} else navigator.clipboard.writeText(JSON.stringify(state, null, 2)).then(()=>{
|
|
4861
|
+
logEvent('info', 'State copied to clipboard');
|
|
4862
|
+
}).catch(()=>{
|
|
4863
|
+
logEvent('error', 'Failed to copy state');
|
|
4864
|
+
});
|
|
4865
|
+
},
|
|
4866
|
+
onExportDebugBundle: onExportDebugBundle ? ()=>{
|
|
4867
|
+
try {
|
|
4868
|
+
onExportDebugBundle();
|
|
4869
|
+
logEvent('info', 'Debug bundle exported');
|
|
4870
|
+
} catch {
|
|
4871
|
+
logEvent('error', 'Failed to export debug bundle');
|
|
4872
|
+
}
|
|
4873
|
+
} : void 0
|
|
4874
|
+
});
|
|
4875
|
+
break;
|
|
4876
|
+
}
|
|
4877
|
+
};
|
|
4878
|
+
return {
|
|
4879
|
+
renderPanel,
|
|
4880
|
+
getStoreState,
|
|
4881
|
+
resetConsents
|
|
4882
|
+
};
|
|
4883
|
+
}
|
|
3974
4884
|
const STORAGE_KEY = 'c15t-devtools-events';
|
|
4885
|
+
const ACTIVE_TAB_STORAGE_KEY = 'c15t-devtools-active-tab';
|
|
3975
4886
|
function loadPersistedEvents() {
|
|
3976
4887
|
if ('undefined' == typeof window) return [];
|
|
3977
4888
|
try {
|
|
@@ -3986,11 +4897,29 @@ var __webpack_exports__ = {};
|
|
|
3986
4897
|
sessionStorage.setItem(STORAGE_KEY, JSON.stringify(events));
|
|
3987
4898
|
} catch {}
|
|
3988
4899
|
}
|
|
4900
|
+
function isDevToolsTab(value) {
|
|
4901
|
+
return 'consents' === value || 'location' === value || "scripts" === value || 'iab' === value || 'events' === value || 'actions' === value;
|
|
4902
|
+
}
|
|
4903
|
+
function loadPersistedActiveTab() {
|
|
4904
|
+
if ('undefined' == typeof window) return null;
|
|
4905
|
+
try {
|
|
4906
|
+
const stored = localStorage.getItem(ACTIVE_TAB_STORAGE_KEY);
|
|
4907
|
+
if (isDevToolsTab(stored)) return stored;
|
|
4908
|
+
} catch {}
|
|
4909
|
+
return null;
|
|
4910
|
+
}
|
|
4911
|
+
function persistActiveTab(tab) {
|
|
4912
|
+
if ('undefined' == typeof window) return;
|
|
4913
|
+
try {
|
|
4914
|
+
localStorage.setItem(ACTIVE_TAB_STORAGE_KEY, tab);
|
|
4915
|
+
} catch {}
|
|
4916
|
+
}
|
|
3989
4917
|
function state_manager_createStateManager(initialState = {}) {
|
|
3990
4918
|
const persistedEvents = loadPersistedEvents();
|
|
4919
|
+
const persistedActiveTab = loadPersistedActiveTab();
|
|
3991
4920
|
let state = {
|
|
3992
4921
|
isOpen: false,
|
|
3993
|
-
activeTab: 'location',
|
|
4922
|
+
activeTab: persistedActiveTab ?? 'location',
|
|
3994
4923
|
position: 'bottom-right',
|
|
3995
4924
|
isConnected: false,
|
|
3996
4925
|
eventLog: persistedEvents,
|
|
@@ -4031,6 +4960,7 @@ var __webpack_exports__ = {};
|
|
|
4031
4960
|
setState({
|
|
4032
4961
|
activeTab: tab
|
|
4033
4962
|
});
|
|
4963
|
+
persistActiveTab(tab);
|
|
4034
4964
|
},
|
|
4035
4965
|
setPosition: (position)=>{
|
|
4036
4966
|
setState({
|
|
@@ -4076,22 +5006,52 @@ var __webpack_exports__ = {};
|
|
|
4076
5006
|
let reconnectAttempts = 0;
|
|
4077
5007
|
let hasNotifiedDisconnect = false;
|
|
4078
5008
|
const listeners = new Set();
|
|
5009
|
+
const diagnosticsListeners = new Set();
|
|
5010
|
+
let diagnostics = {
|
|
5011
|
+
namespace,
|
|
5012
|
+
reconnectAttempts: 0,
|
|
5013
|
+
nextRetryInMs: null,
|
|
5014
|
+
lastError: null,
|
|
5015
|
+
isPolling: false,
|
|
5016
|
+
disconnectNotified: false
|
|
5017
|
+
};
|
|
4079
5018
|
const INITIAL_RETRY_DELAY_MS = 100;
|
|
4080
5019
|
const MAX_RETRY_DELAY_MS = 2000;
|
|
4081
5020
|
const DISCONNECT_NOTIFY_ATTEMPTS = 5;
|
|
5021
|
+
function updateDiagnostics(partial, notify = true) {
|
|
5022
|
+
diagnostics = {
|
|
5023
|
+
...diagnostics,
|
|
5024
|
+
...partial
|
|
5025
|
+
};
|
|
5026
|
+
if (!notify) return;
|
|
5027
|
+
for (const listener of diagnosticsListeners)listener(diagnostics);
|
|
5028
|
+
}
|
|
4082
5029
|
function clearReconnectTimer() {
|
|
4083
5030
|
if (reconnectTimeout) {
|
|
4084
5031
|
clearTimeout(reconnectTimeout);
|
|
4085
5032
|
reconnectTimeout = null;
|
|
5033
|
+
updateDiagnostics({
|
|
5034
|
+
isPolling: false,
|
|
5035
|
+
nextRetryInMs: null
|
|
5036
|
+
});
|
|
4086
5037
|
}
|
|
4087
5038
|
}
|
|
4088
5039
|
function resetReconnectState() {
|
|
4089
5040
|
reconnectAttempts = 0;
|
|
4090
5041
|
hasNotifiedDisconnect = false;
|
|
5042
|
+
updateDiagnostics({
|
|
5043
|
+
reconnectAttempts: 0,
|
|
5044
|
+
nextRetryInMs: null,
|
|
5045
|
+
lastError: null,
|
|
5046
|
+
disconnectNotified: false
|
|
5047
|
+
});
|
|
4091
5048
|
}
|
|
4092
5049
|
function notifyDisconnectedOnce() {
|
|
4093
5050
|
if (hasNotifiedDisconnect) return;
|
|
4094
5051
|
hasNotifiedDisconnect = true;
|
|
5052
|
+
updateDiagnostics({
|
|
5053
|
+
disconnectNotified: true
|
|
5054
|
+
});
|
|
4095
5055
|
onDisconnect?.();
|
|
4096
5056
|
}
|
|
4097
5057
|
function tryConnect() {
|
|
@@ -4112,16 +5072,31 @@ var __webpack_exports__ = {};
|
|
|
4112
5072
|
onConnect?.(currentState, store);
|
|
4113
5073
|
clearReconnectTimer();
|
|
4114
5074
|
resetReconnectState();
|
|
5075
|
+
updateDiagnostics({
|
|
5076
|
+
lastError: null
|
|
5077
|
+
});
|
|
4115
5078
|
return true;
|
|
4116
5079
|
}
|
|
5080
|
+
updateDiagnostics({
|
|
5081
|
+
lastError: `Store "${namespace}" not found on window`
|
|
5082
|
+
});
|
|
4117
5083
|
return false;
|
|
4118
5084
|
}
|
|
4119
5085
|
function scheduleReconnect(immediate = false) {
|
|
4120
5086
|
if (store || reconnectTimeout) return;
|
|
4121
5087
|
const delay = immediate ? 0 : Math.min(INITIAL_RETRY_DELAY_MS * 2 ** Math.min(reconnectAttempts, 5), MAX_RETRY_DELAY_MS);
|
|
5088
|
+
updateDiagnostics({
|
|
5089
|
+
isPolling: true,
|
|
5090
|
+
nextRetryInMs: delay,
|
|
5091
|
+
reconnectAttempts
|
|
5092
|
+
});
|
|
4122
5093
|
reconnectTimeout = setTimeout(()=>{
|
|
4123
5094
|
reconnectTimeout = null;
|
|
4124
5095
|
reconnectAttempts++;
|
|
5096
|
+
updateDiagnostics({
|
|
5097
|
+
reconnectAttempts,
|
|
5098
|
+
nextRetryInMs: null
|
|
5099
|
+
});
|
|
4125
5100
|
if (tryConnect()) return;
|
|
4126
5101
|
if (reconnectAttempts >= DISCONNECT_NOTIFY_ATTEMPTS) notifyDisconnectedOnce();
|
|
4127
5102
|
scheduleReconnect();
|
|
@@ -4143,6 +5118,14 @@ var __webpack_exports__ = {};
|
|
|
4143
5118
|
listeners.delete(listener);
|
|
4144
5119
|
};
|
|
4145
5120
|
},
|
|
5121
|
+
getDiagnostics: ()=>diagnostics,
|
|
5122
|
+
subscribeDiagnostics: (listener)=>{
|
|
5123
|
+
diagnosticsListeners.add(listener);
|
|
5124
|
+
listener(diagnostics);
|
|
5125
|
+
return ()=>{
|
|
5126
|
+
diagnosticsListeners.delete(listener);
|
|
5127
|
+
};
|
|
5128
|
+
},
|
|
4146
5129
|
retryConnection: ()=>{
|
|
4147
5130
|
if (store) return;
|
|
4148
5131
|
resetReconnectState();
|
|
@@ -4156,6 +5139,134 @@ var __webpack_exports__ = {};
|
|
|
4156
5139
|
}
|
|
4157
5140
|
store = null;
|
|
4158
5141
|
listeners.clear();
|
|
5142
|
+
diagnosticsListeners.clear();
|
|
5143
|
+
}
|
|
5144
|
+
};
|
|
5145
|
+
}
|
|
5146
|
+
const REGISTRY_KEY = '__c15tDevToolsInstrumentationRegistry';
|
|
5147
|
+
let fallbackRegistry = null;
|
|
5148
|
+
function getRegistry() {
|
|
5149
|
+
if ('undefined' == typeof window) {
|
|
5150
|
+
if (!fallbackRegistry) fallbackRegistry = new Map();
|
|
5151
|
+
return fallbackRegistry;
|
|
5152
|
+
}
|
|
5153
|
+
const host = window;
|
|
5154
|
+
const existing = host[REGISTRY_KEY];
|
|
5155
|
+
if (existing) return existing;
|
|
5156
|
+
const registry = new Map();
|
|
5157
|
+
host[REGISTRY_KEY] = registry;
|
|
5158
|
+
return registry;
|
|
5159
|
+
}
|
|
5160
|
+
function getBlockedRequestMessage(payload) {
|
|
5161
|
+
const data = payload;
|
|
5162
|
+
const method = 'string' == typeof data?.method ? data.method.toUpperCase() : 'REQUEST';
|
|
5163
|
+
const url = 'string' == typeof data?.url ? data.url : 'unknown-url';
|
|
5164
|
+
return `Network blocked: ${method} ${url}`;
|
|
5165
|
+
}
|
|
5166
|
+
function emitEvent(entry, event) {
|
|
5167
|
+
for (const listener of entry.listeners)listener(event);
|
|
5168
|
+
}
|
|
5169
|
+
function ensureNetworkBlockerWrapped(entry) {
|
|
5170
|
+
const blocker = entry.store.getState().networkBlocker;
|
|
5171
|
+
if (!blocker) return;
|
|
5172
|
+
if (blocker.onRequestBlocked === entry.wrappedNetworkBlockedCallback) return;
|
|
5173
|
+
entry.originalNetworkBlockedCallback = blocker.onRequestBlocked;
|
|
5174
|
+
entry.wrappedNetworkBlockedCallback = (payload)=>{
|
|
5175
|
+
emitEvent(entry, {
|
|
5176
|
+
type: 'network',
|
|
5177
|
+
message: getBlockedRequestMessage(payload),
|
|
5178
|
+
data: payload
|
|
5179
|
+
});
|
|
5180
|
+
if ('function' == typeof entry.originalNetworkBlockedCallback) entry.originalNetworkBlockedCallback(payload);
|
|
5181
|
+
};
|
|
5182
|
+
entry.store.getState().setNetworkBlocker({
|
|
5183
|
+
...blocker,
|
|
5184
|
+
onRequestBlocked: entry.wrappedNetworkBlockedCallback
|
|
5185
|
+
});
|
|
5186
|
+
}
|
|
5187
|
+
function restoreInstrumentation(entry) {
|
|
5188
|
+
entry.stopWatchingStore?.();
|
|
5189
|
+
entry.stopWatchingStore = null;
|
|
5190
|
+
const state = entry.store.getState();
|
|
5191
|
+
state.setCallback('onBannerFetched', entry.originalCallbacks.onBannerFetched);
|
|
5192
|
+
state.setCallback('onConsentSet', entry.originalCallbacks.onConsentSet);
|
|
5193
|
+
state.setCallback('onError', entry.originalCallbacks.onError);
|
|
5194
|
+
state.setCallback('onBeforeConsentRevocationReload', entry.originalCallbacks.onBeforeConsentRevocationReload);
|
|
5195
|
+
const blocker = state.networkBlocker;
|
|
5196
|
+
if (blocker && blocker.onRequestBlocked === entry.wrappedNetworkBlockedCallback) state.setNetworkBlocker({
|
|
5197
|
+
...blocker,
|
|
5198
|
+
onRequestBlocked: entry.originalNetworkBlockedCallback
|
|
5199
|
+
});
|
|
5200
|
+
entry.wrappedNetworkBlockedCallback = null;
|
|
5201
|
+
}
|
|
5202
|
+
function createInstrumentationEntry(store) {
|
|
5203
|
+
const entry = {
|
|
5204
|
+
store,
|
|
5205
|
+
listeners: new Set(),
|
|
5206
|
+
originalCallbacks: {
|
|
5207
|
+
...store.getState().callbacks
|
|
5208
|
+
},
|
|
5209
|
+
originalNetworkBlockedCallback: store.getState().networkBlocker?.onRequestBlocked,
|
|
5210
|
+
wrappedNetworkBlockedCallback: null,
|
|
5211
|
+
stopWatchingStore: null
|
|
5212
|
+
};
|
|
5213
|
+
store.getState().setCallback('onBannerFetched', (payload)=>{
|
|
5214
|
+
const jurisdiction = payload.jurisdiction;
|
|
5215
|
+
emitEvent(entry, {
|
|
5216
|
+
type: 'info',
|
|
5217
|
+
message: `Banner fetched: ${String(jurisdiction)}`,
|
|
5218
|
+
data: payload
|
|
5219
|
+
});
|
|
5220
|
+
if ('function' == typeof entry.originalCallbacks.onBannerFetched) entry.originalCallbacks.onBannerFetched(payload);
|
|
5221
|
+
});
|
|
5222
|
+
store.getState().setCallback('onConsentSet', (payload)=>{
|
|
5223
|
+
emitEvent(entry, {
|
|
5224
|
+
type: 'consent_set',
|
|
5225
|
+
message: 'Consent preferences updated',
|
|
5226
|
+
data: payload
|
|
5227
|
+
});
|
|
5228
|
+
if ('function' == typeof entry.originalCallbacks.onConsentSet) entry.originalCallbacks.onConsentSet(payload);
|
|
5229
|
+
});
|
|
5230
|
+
store.getState().setCallback('onError', (payload)=>{
|
|
5231
|
+
const errorMessage = payload.error;
|
|
5232
|
+
emitEvent(entry, {
|
|
5233
|
+
type: 'error',
|
|
5234
|
+
message: `Error: ${String(errorMessage)}`,
|
|
5235
|
+
data: payload
|
|
5236
|
+
});
|
|
5237
|
+
if ('function' == typeof entry.originalCallbacks.onError) entry.originalCallbacks.onError(payload);
|
|
5238
|
+
});
|
|
5239
|
+
store.getState().setCallback('onBeforeConsentRevocationReload', (payload)=>{
|
|
5240
|
+
emitEvent(entry, {
|
|
5241
|
+
type: 'info',
|
|
5242
|
+
message: 'Consent revocation - page will reload',
|
|
5243
|
+
data: payload
|
|
5244
|
+
});
|
|
5245
|
+
if ('function' == typeof entry.originalCallbacks.onBeforeConsentRevocationReload) entry.originalCallbacks.onBeforeConsentRevocationReload(payload);
|
|
5246
|
+
});
|
|
5247
|
+
ensureNetworkBlockerWrapped(entry);
|
|
5248
|
+
entry.stopWatchingStore = store.subscribe(()=>{
|
|
5249
|
+
ensureNetworkBlockerWrapped(entry);
|
|
5250
|
+
});
|
|
5251
|
+
return entry;
|
|
5252
|
+
}
|
|
5253
|
+
function store_instrumentation_registerStoreInstrumentation(options) {
|
|
5254
|
+
const { namespace, store, onEvent } = options;
|
|
5255
|
+
const registry = getRegistry();
|
|
5256
|
+
let entry = registry.get(namespace);
|
|
5257
|
+
if (!entry || entry.store !== store) {
|
|
5258
|
+
if (entry) restoreInstrumentation(entry);
|
|
5259
|
+
entry = createInstrumentationEntry(store);
|
|
5260
|
+
registry.set(namespace, entry);
|
|
5261
|
+
}
|
|
5262
|
+
entry.listeners.add(onEvent);
|
|
5263
|
+
return ()=>{
|
|
5264
|
+
const current = registry.get(namespace);
|
|
5265
|
+
if (!current) return;
|
|
5266
|
+
current.listeners.delete(onEvent);
|
|
5267
|
+
if (0 === current.listeners.size) {
|
|
5268
|
+
restoreInstrumentation(current);
|
|
5269
|
+
registry.delete(namespace);
|
|
4159
5270
|
}
|
|
4160
5271
|
};
|
|
4161
5272
|
}
|
|
@@ -4179,39 +5290,36 @@ var __webpack_exports__ = {};
|
|
|
4179
5290
|
function persistedOverridesEqual(a, b) {
|
|
4180
5291
|
return a.country === b.country && a.region === b.region && a.language === b.language && a.gpc === b.gpc;
|
|
4181
5292
|
}
|
|
4182
|
-
function
|
|
4183
|
-
|
|
4184
|
-
|
|
4185
|
-
|
|
4186
|
-
|
|
5293
|
+
function createStateCopy(state) {
|
|
5294
|
+
return {
|
|
5295
|
+
consents: state.consents,
|
|
5296
|
+
selectedConsents: state.selectedConsents,
|
|
5297
|
+
consentInfo: state.consentInfo,
|
|
5298
|
+
locationInfo: state.locationInfo,
|
|
5299
|
+
model: state.model,
|
|
5300
|
+
overrides: state.overrides,
|
|
5301
|
+
scripts: state.scripts?.map((script)=>({
|
|
5302
|
+
id: script.id
|
|
5303
|
+
})),
|
|
5304
|
+
loadedScripts: state.loadedScripts
|
|
5305
|
+
};
|
|
4187
5306
|
}
|
|
4188
5307
|
function createDevToolsPanel(options) {
|
|
4189
5308
|
const { namespace = 'c15tStore' } = options;
|
|
4190
|
-
let
|
|
4191
|
-
let hasWrappedEmbeddedNetworkBlocker = false;
|
|
5309
|
+
let detachInstrumentation = null;
|
|
4192
5310
|
const stateManager = state_manager_createStateManager({
|
|
4193
5311
|
isOpen: true
|
|
4194
5312
|
});
|
|
4195
5313
|
const storeConnector = store_connector_createStoreConnector({
|
|
4196
5314
|
namespace,
|
|
4197
5315
|
onConnect: (state, store)=>{
|
|
5316
|
+
detachInstrumentation?.();
|
|
5317
|
+
detachInstrumentation = store_instrumentation_registerStoreInstrumentation({
|
|
5318
|
+
namespace,
|
|
5319
|
+
store,
|
|
5320
|
+
onEvent: (event)=>stateManager.addEvent(event)
|
|
5321
|
+
});
|
|
4198
5322
|
stateManager.setConnected(true);
|
|
4199
|
-
const currentNetworkBlocker = state.networkBlocker;
|
|
4200
|
-
if (currentNetworkBlocker && !hasWrappedEmbeddedNetworkBlocker) {
|
|
4201
|
-
originalEmbeddedNetworkBlockedCallback = currentNetworkBlocker.onRequestBlocked;
|
|
4202
|
-
hasWrappedEmbeddedNetworkBlocker = true;
|
|
4203
|
-
store.getState().setNetworkBlocker({
|
|
4204
|
-
...currentNetworkBlocker,
|
|
4205
|
-
onRequestBlocked: (payload)=>{
|
|
4206
|
-
stateManager.addEvent({
|
|
4207
|
-
type: 'network',
|
|
4208
|
-
message: getBlockedRequestMessage(payload),
|
|
4209
|
-
data: payload
|
|
4210
|
-
});
|
|
4211
|
-
if ('function' == typeof originalEmbeddedNetworkBlockedCallback) originalEmbeddedNetworkBlockedCallback(payload);
|
|
4212
|
-
}
|
|
4213
|
-
});
|
|
4214
|
-
}
|
|
4215
5323
|
const persistedOverrides = override_storage_loadPersistedOverrides();
|
|
4216
5324
|
if (persistedOverrides) {
|
|
4217
5325
|
const currentOverrides = normalizeOverridesForPersistence(state.overrides);
|
|
@@ -4223,7 +5331,36 @@ var __webpack_exports__ = {};
|
|
|
4223
5331
|
});
|
|
4224
5332
|
}
|
|
4225
5333
|
},
|
|
4226
|
-
onDisconnect: ()=>
|
|
5334
|
+
onDisconnect: ()=>{
|
|
5335
|
+
stateManager.setConnected(false);
|
|
5336
|
+
detachInstrumentation?.();
|
|
5337
|
+
detachInstrumentation = null;
|
|
5338
|
+
}
|
|
5339
|
+
});
|
|
5340
|
+
const panelRenderer = panel_renderer_createPanelRenderer({
|
|
5341
|
+
storeConnector,
|
|
5342
|
+
stateManager,
|
|
5343
|
+
enableEventLogging: false,
|
|
5344
|
+
onPersistOverrides: override_storage_persistOverrides,
|
|
5345
|
+
onClearPersistedOverrides: override_storage_clearPersistedOverrides,
|
|
5346
|
+
onCopyState: async (state)=>{
|
|
5347
|
+
try {
|
|
5348
|
+
await navigator.clipboard.writeText(JSON.stringify(createStateCopy(state), null, 2));
|
|
5349
|
+
return true;
|
|
5350
|
+
} catch {
|
|
5351
|
+
return false;
|
|
5352
|
+
}
|
|
5353
|
+
},
|
|
5354
|
+
onExportDebugBundle: ()=>{
|
|
5355
|
+
const bundle = debug_bundle_createDebugBundle({
|
|
5356
|
+
namespace,
|
|
5357
|
+
devToolsState: stateManager.getState(),
|
|
5358
|
+
connection: storeConnector.getDiagnostics(),
|
|
5359
|
+
recentEvents: stateManager.getState().eventLog.slice(0, 100),
|
|
5360
|
+
storeState: debug_bundle_sanitizeStoreState(storeConnector.getState())
|
|
5361
|
+
});
|
|
5362
|
+
debug_bundle_downloadDebugBundle(bundle);
|
|
5363
|
+
}
|
|
4227
5364
|
});
|
|
4228
5365
|
const container = renderer_div({
|
|
4229
5366
|
style: {
|
|
@@ -4244,140 +5381,42 @@ var __webpack_exports__ = {};
|
|
|
4244
5381
|
}
|
|
4245
5382
|
});
|
|
4246
5383
|
function renderActivePanel() {
|
|
4247
|
-
const
|
|
4248
|
-
|
|
4249
|
-
|
|
4250
|
-
|
|
4251
|
-
|
|
4252
|
-
|
|
4253
|
-
|
|
4254
|
-
|
|
4255
|
-
|
|
4256
|
-
|
|
4257
|
-
|
|
4258
|
-
|
|
4259
|
-
|
|
4260
|
-
|
|
4261
|
-
|
|
4262
|
-
|
|
4263
|
-
|
|
4264
|
-
|
|
4265
|
-
onReset: async ()=>{
|
|
4266
|
-
const store = storeConnector.getStore();
|
|
4267
|
-
if (store) await reset_consents_resetAllConsents(store);
|
|
4268
|
-
}
|
|
4269
|
-
});
|
|
4270
|
-
break;
|
|
4271
|
-
case 'location':
|
|
4272
|
-
location_renderLocationPanel(contentArea, {
|
|
4273
|
-
getState: getStoreState,
|
|
4274
|
-
onApplyOverrides: async (overrides)=>{
|
|
4275
|
-
const store = storeConnector.getStore();
|
|
4276
|
-
if (store) {
|
|
4277
|
-
await store.getState().setOverrides({
|
|
4278
|
-
country: overrides.country,
|
|
4279
|
-
region: overrides.region,
|
|
4280
|
-
language: overrides.language,
|
|
4281
|
-
gpc: overrides.gpc
|
|
4282
|
-
});
|
|
4283
|
-
override_storage_persistOverrides({
|
|
4284
|
-
country: overrides.country,
|
|
4285
|
-
region: overrides.region,
|
|
4286
|
-
language: overrides.language,
|
|
4287
|
-
gpc: overrides.gpc
|
|
4288
|
-
});
|
|
4289
|
-
}
|
|
4290
|
-
},
|
|
4291
|
-
onClearOverrides: async ()=>{
|
|
4292
|
-
await storeConnector.getStore()?.getState().setOverrides({
|
|
4293
|
-
country: void 0,
|
|
4294
|
-
region: void 0,
|
|
4295
|
-
language: void 0,
|
|
4296
|
-
gpc: void 0
|
|
4297
|
-
});
|
|
4298
|
-
override_storage_clearPersistedOverrides();
|
|
4299
|
-
}
|
|
4300
|
-
});
|
|
4301
|
-
break;
|
|
4302
|
-
case "scripts":
|
|
4303
|
-
scripts_renderScriptsPanel(contentArea, {
|
|
4304
|
-
getState: getStoreState,
|
|
4305
|
-
getEvents: ()=>stateManager.getState().eventLog
|
|
4306
|
-
});
|
|
4307
|
-
break;
|
|
4308
|
-
case 'iab':
|
|
4309
|
-
iab_renderIabPanel(contentArea, {
|
|
4310
|
-
getState: getStoreState,
|
|
4311
|
-
onSetPurposeConsent: (purposeId, value)=>{
|
|
4312
|
-
storeConnector.getStore()?.getState().iab?.setPurposeConsent(purposeId, value);
|
|
4313
|
-
},
|
|
4314
|
-
onSetVendorConsent: (vendorId, value)=>{
|
|
4315
|
-
storeConnector.getStore()?.getState().iab?.setVendorConsent(vendorId, value);
|
|
4316
|
-
},
|
|
4317
|
-
onSetSpecialFeatureOptIn: (featureId, value)=>{
|
|
4318
|
-
storeConnector.getStore()?.getState().iab?.setSpecialFeatureOptIn(featureId, value);
|
|
4319
|
-
},
|
|
4320
|
-
onAcceptAll: ()=>{
|
|
4321
|
-
storeConnector.getStore()?.getState().iab?.acceptAll();
|
|
4322
|
-
},
|
|
4323
|
-
onRejectAll: ()=>{
|
|
4324
|
-
storeConnector.getStore()?.getState().iab?.rejectAll();
|
|
4325
|
-
},
|
|
4326
|
-
onSave: ()=>{
|
|
4327
|
-
storeConnector.getStore()?.getState().iab?.save();
|
|
4328
|
-
},
|
|
4329
|
-
onReset: async ()=>{
|
|
4330
|
-
const store = storeConnector.getStore();
|
|
4331
|
-
if (store) await reset_consents_resetAllConsents(store);
|
|
4332
|
-
}
|
|
4333
|
-
});
|
|
4334
|
-
break;
|
|
4335
|
-
case 'events':
|
|
4336
|
-
events_renderEventsPanel(contentArea, {
|
|
4337
|
-
getEvents: ()=>stateManager.getState().eventLog,
|
|
4338
|
-
onClear: ()=>{
|
|
4339
|
-
stateManager.clearEventLog();
|
|
4340
|
-
}
|
|
4341
|
-
});
|
|
4342
|
-
break;
|
|
4343
|
-
case 'actions':
|
|
4344
|
-
actions_renderActionsPanel(contentArea, {
|
|
4345
|
-
getState: getStoreState,
|
|
4346
|
-
onResetConsents: async ()=>{
|
|
4347
|
-
const store = storeConnector.getStore();
|
|
4348
|
-
if (store) await reset_consents_resetAllConsents(store);
|
|
4349
|
-
},
|
|
4350
|
-
onRefetchBanner: async ()=>{
|
|
4351
|
-
await storeConnector.getStore()?.getState().initConsentManager();
|
|
4352
|
-
},
|
|
4353
|
-
onShowBanner: ()=>{
|
|
4354
|
-
storeConnector.getStore()?.getState().setActiveUI('banner', {
|
|
4355
|
-
force: true
|
|
4356
|
-
});
|
|
4357
|
-
},
|
|
4358
|
-
onOpenPreferences: ()=>{
|
|
4359
|
-
storeConnector.getStore()?.getState().setActiveUI('dialog');
|
|
4360
|
-
},
|
|
4361
|
-
onCopyState: ()=>{
|
|
4362
|
-
const state = storeConnector.getState();
|
|
4363
|
-
if (state) navigator.clipboard.writeText(JSON.stringify(state, null, 2));
|
|
4364
|
-
}
|
|
4365
|
-
});
|
|
4366
|
-
break;
|
|
5384
|
+
const activeTab = syncTabs();
|
|
5385
|
+
panelRenderer.renderPanel(contentArea, activeTab);
|
|
5386
|
+
}
|
|
5387
|
+
let tabsInstance = null;
|
|
5388
|
+
let iabDisabled = true;
|
|
5389
|
+
function getDisabledTabs() {
|
|
5390
|
+
const disabledTabs = [];
|
|
5391
|
+
const storeState = storeConnector.getState();
|
|
5392
|
+
if (!storeState || 'iab' !== storeState.model) disabledTabs.push('iab');
|
|
5393
|
+
return disabledTabs;
|
|
5394
|
+
}
|
|
5395
|
+
function syncTabs() {
|
|
5396
|
+
const disabledTabs = getDisabledTabs();
|
|
5397
|
+
const nextIabDisabled = disabledTabs.includes('iab');
|
|
5398
|
+
let activeTab = stateManager.getState().activeTab;
|
|
5399
|
+
if (disabledTabs.includes(activeTab)) {
|
|
5400
|
+
activeTab = 'consents';
|
|
5401
|
+
stateManager.setActiveTab(activeTab);
|
|
4367
5402
|
}
|
|
5403
|
+
if (tabsInstance && iabDisabled === nextIabDisabled) tabsInstance.setActiveTab(activeTab);
|
|
5404
|
+
else {
|
|
5405
|
+
tabsInstance?.destroy();
|
|
5406
|
+
tabsInstance = tabs_createTabs({
|
|
5407
|
+
activeTab,
|
|
5408
|
+
onTabChange: (tab)=>{
|
|
5409
|
+
stateManager.setActiveTab(tab);
|
|
5410
|
+
renderActivePanel();
|
|
5411
|
+
},
|
|
5412
|
+
disabledTabs
|
|
5413
|
+
});
|
|
5414
|
+
iabDisabled = nextIabDisabled;
|
|
5415
|
+
if (!tabsInstance.element.parentElement) container.appendChild(tabsInstance.element);
|
|
5416
|
+
}
|
|
5417
|
+
return activeTab;
|
|
4368
5418
|
}
|
|
4369
|
-
|
|
4370
|
-
const disabledTabs = [];
|
|
4371
|
-
if (!storeState || 'iab' !== storeState.model) disabledTabs.push('iab');
|
|
4372
|
-
const tabsInstance = tabs_createTabs({
|
|
4373
|
-
activeTab: stateManager.getState().activeTab,
|
|
4374
|
-
onTabChange: (tab)=>{
|
|
4375
|
-
stateManager.setActiveTab(tab);
|
|
4376
|
-
renderActivePanel();
|
|
4377
|
-
},
|
|
4378
|
-
disabledTabs
|
|
4379
|
-
});
|
|
4380
|
-
container.appendChild(tabsInstance.element);
|
|
5419
|
+
syncTabs();
|
|
4381
5420
|
container.appendChild(contentArea);
|
|
4382
5421
|
renderActivePanel();
|
|
4383
5422
|
const unsubscribe = storeConnector.subscribe(()=>{
|
|
@@ -4386,16 +5425,10 @@ var __webpack_exports__ = {};
|
|
|
4386
5425
|
return {
|
|
4387
5426
|
element: container,
|
|
4388
5427
|
destroy: ()=>{
|
|
4389
|
-
|
|
4390
|
-
|
|
4391
|
-
const currentNetworkBlocker = store.getState().networkBlocker;
|
|
4392
|
-
if (currentNetworkBlocker) store.getState().setNetworkBlocker({
|
|
4393
|
-
...currentNetworkBlocker,
|
|
4394
|
-
onRequestBlocked: originalEmbeddedNetworkBlockedCallback
|
|
4395
|
-
});
|
|
4396
|
-
}
|
|
5428
|
+
detachInstrumentation?.();
|
|
5429
|
+
detachInstrumentation = null;
|
|
4397
5430
|
unsubscribe();
|
|
4398
|
-
tabsInstance
|
|
5431
|
+
tabsInstance?.destroy();
|
|
4399
5432
|
storeConnector.destroy();
|
|
4400
5433
|
stateManager.destroy();
|
|
4401
5434
|
}
|