ngx-dev-toolbar 2.0.0 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +108 -0
- package/components/list/list.component.d.ts +48 -0
- package/components/list-item/list-item.component.d.ts +54 -0
- package/components/select/select.component.d.ts +1 -1
- package/components/toolbar-tool/toolbar-tool.component.d.ts +2 -2
- package/components/window/window.component.d.ts +3 -3
- package/dev-toolbar-state.service.d.ts +4 -1
- package/dev-toolbar.component.d.ts +12 -2
- package/fesm2022/ngx-dev-toolbar.mjs +1224 -527
- package/fesm2022/ngx-dev-toolbar.mjs.map +1 -1
- package/index.d.ts +2 -0
- package/models/dev-tools.interface.d.ts +22 -0
- package/package.json +1 -1
- package/tools/app-features-tool/app-features-tool.component.d.ts +1 -1
- package/tools/app-features-tool/app-features.models.d.ts +5 -0
- package/tools/app-features-tool/app-features.service.d.ts +24 -0
- package/tools/feature-flags-tool/feature-flags.models.d.ts +1 -0
- package/tools/feature-flags-tool/feature-flags.service.d.ts +24 -0
- package/tools/home-tool/home-tool.component.d.ts +0 -1
- package/tools/language-tool/language.service.d.ts +7 -0
- package/tools/permissions-tool/permissions.models.d.ts +2 -0
- package/tools/permissions-tool/permissions.service.d.ts +24 -0
- package/tools/presets-tool/presets-internal.service.d.ts +2 -2
- package/tools/presets-tool/presets-tool.component.d.ts +24 -0
- package/tools/presets-tool/presets.models.d.ts +9 -0
- package/tools/presets-tool/presets.service.d.ts +71 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { signal, computed, Injectable,
|
|
3
|
-
import {
|
|
2
|
+
import { signal, computed, Injectable, ChangeDetectionStrategy, Component, input, inject, ElementRef, output, viewChild, contentChild, model, DestroyRef, effect, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { CommonModule, DOCUMENT } from '@angular/common';
|
|
4
|
+
import { trigger, state, transition, style, animate } from '@angular/animations';
|
|
4
5
|
import * as i1 from '@angular/cdk/overlay';
|
|
5
6
|
import { CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';
|
|
6
7
|
import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
@@ -10,7 +11,6 @@ import * as i1$1 from '@angular/forms';
|
|
|
10
11
|
import { FormsModule } from '@angular/forms';
|
|
11
12
|
import * as i2 from '@angular/cdk/menu';
|
|
12
13
|
import { CdkMenuModule } from '@angular/cdk/menu';
|
|
13
|
-
import { CommonModule } from '@angular/common';
|
|
14
14
|
|
|
15
15
|
class DevToolbarStateService {
|
|
16
16
|
constructor() {
|
|
@@ -21,6 +21,7 @@ class DevToolbarStateService {
|
|
|
21
21
|
delay: 3000,
|
|
22
22
|
error: null,
|
|
23
23
|
theme: 'dark',
|
|
24
|
+
config: {},
|
|
24
25
|
});
|
|
25
26
|
// Selectors
|
|
26
27
|
this.isVisible = computed(() => !this.state().isHidden || this.hasActiveTool());
|
|
@@ -33,6 +34,7 @@ class DevToolbarStateService {
|
|
|
33
34
|
* The delay to hide the toolbar
|
|
34
35
|
*/
|
|
35
36
|
this.delay = computed(() => this.state().delay);
|
|
37
|
+
this.config = computed(() => this.state().config);
|
|
36
38
|
}
|
|
37
39
|
// State updates
|
|
38
40
|
setVisibility(isVisible) {
|
|
@@ -82,10 +84,16 @@ class DevToolbarStateService {
|
|
|
82
84
|
isHidden: !state.isHidden,
|
|
83
85
|
}));
|
|
84
86
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
+
setConfig(config) {
|
|
88
|
+
this.state.update((state) => ({
|
|
89
|
+
...state,
|
|
90
|
+
config,
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
94
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarStateService, providedIn: 'root' }); }
|
|
87
95
|
}
|
|
88
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarStateService, decorators: [{
|
|
89
97
|
type: Injectable,
|
|
90
98
|
args: [{
|
|
91
99
|
providedIn: 'root',
|
|
@@ -93,8 +101,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
93
101
|
}] });
|
|
94
102
|
|
|
95
103
|
class AngularIconComponent {
|
|
96
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
97
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.
|
|
104
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: AngularIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
105
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.7", type: AngularIconComponent, isStandalone: true, selector: "ndt-angular-icon", ngImport: i0, template: `
|
|
98
106
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none">
|
|
99
107
|
<defs>
|
|
100
108
|
<linearGradient
|
|
@@ -122,7 +130,7 @@ class AngularIconComponent {
|
|
|
122
130
|
</svg>
|
|
123
131
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
124
132
|
}
|
|
125
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
133
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: AngularIconComponent, decorators: [{
|
|
126
134
|
type: Component,
|
|
127
135
|
args: [{
|
|
128
136
|
selector: 'ndt-angular-icon',
|
|
@@ -162,8 +170,8 @@ class BoltIconComponent {
|
|
|
162
170
|
constructor() {
|
|
163
171
|
this.fill = input('#FFFF');
|
|
164
172
|
}
|
|
165
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
166
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
173
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: BoltIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
174
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: BoltIconComponent, isStandalone: true, selector: "ndt-bolt-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
167
175
|
<svg
|
|
168
176
|
[attr.fill]="fill()"
|
|
169
177
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -181,7 +189,7 @@ class BoltIconComponent {
|
|
|
181
189
|
</svg>
|
|
182
190
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
183
191
|
}
|
|
184
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
192
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: BoltIconComponent, decorators: [{
|
|
185
193
|
type: Component,
|
|
186
194
|
args: [{
|
|
187
195
|
selector: 'ndt-bolt-icon',
|
|
@@ -211,8 +219,8 @@ class BugIconComponent {
|
|
|
211
219
|
constructor() {
|
|
212
220
|
this.fill = input('#FFFF');
|
|
213
221
|
}
|
|
214
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
215
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
222
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: BugIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
223
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: BugIconComponent, isStandalone: true, selector: "ndt-bug-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
216
224
|
<svg
|
|
217
225
|
[attr.fill]="fill()"
|
|
218
226
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -226,7 +234,7 @@ class BugIconComponent {
|
|
|
226
234
|
</svg>
|
|
227
235
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
228
236
|
}
|
|
229
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
237
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: BugIconComponent, decorators: [{
|
|
230
238
|
type: Component,
|
|
231
239
|
args: [{
|
|
232
240
|
selector: 'ndt-bug-icon',
|
|
@@ -252,8 +260,8 @@ class CodeIconComponent {
|
|
|
252
260
|
constructor() {
|
|
253
261
|
this.fill = input('#FFFF');
|
|
254
262
|
}
|
|
255
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
256
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
263
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: CodeIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
264
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: CodeIconComponent, isStandalone: true, selector: "ndt-code-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
257
265
|
<svg
|
|
258
266
|
[attr.fill]="fill()"
|
|
259
267
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -268,7 +276,7 @@ class CodeIconComponent {
|
|
|
268
276
|
</svg>
|
|
269
277
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
270
278
|
}
|
|
271
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
279
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: CodeIconComponent, decorators: [{
|
|
272
280
|
type: Component,
|
|
273
281
|
args: [{
|
|
274
282
|
selector: 'ndt-code-icon',
|
|
@@ -295,8 +303,8 @@ class DatabaseIconComponent {
|
|
|
295
303
|
constructor() {
|
|
296
304
|
this.fill = input('#FFFF');
|
|
297
305
|
}
|
|
298
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
299
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
306
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DatabaseIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
307
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: DatabaseIconComponent, isStandalone: true, selector: "ndt-database-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
300
308
|
<svg
|
|
301
309
|
[attr.fill]="fill()"
|
|
302
310
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -314,7 +322,7 @@ class DatabaseIconComponent {
|
|
|
314
322
|
</svg>
|
|
315
323
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
316
324
|
}
|
|
317
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
325
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DatabaseIconComponent, decorators: [{
|
|
318
326
|
type: Component,
|
|
319
327
|
args: [{
|
|
320
328
|
selector: 'ndt-database-icon',
|
|
@@ -344,8 +352,8 @@ class DiscordIconComponent {
|
|
|
344
352
|
constructor() {
|
|
345
353
|
this.fill = input('#000000');
|
|
346
354
|
}
|
|
347
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
348
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
355
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DiscordIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
356
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: DiscordIconComponent, isStandalone: true, selector: "ndt-discord-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
349
357
|
<svg
|
|
350
358
|
[attr.fill]="fill()"
|
|
351
359
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -359,7 +367,7 @@ class DiscordIconComponent {
|
|
|
359
367
|
</svg>
|
|
360
368
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
361
369
|
}
|
|
362
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
370
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DiscordIconComponent, decorators: [{
|
|
363
371
|
type: Component,
|
|
364
372
|
args: [{
|
|
365
373
|
selector: 'ndt-discord-icon',
|
|
@@ -385,8 +393,8 @@ class DocsIconComponent {
|
|
|
385
393
|
constructor() {
|
|
386
394
|
this.fill = input('#FFFF');
|
|
387
395
|
}
|
|
388
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
389
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
396
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DocsIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
397
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: DocsIconComponent, isStandalone: true, selector: "ndt-docs-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
390
398
|
<svg
|
|
391
399
|
[attr.fill]="fill()"
|
|
392
400
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -400,7 +408,7 @@ class DocsIconComponent {
|
|
|
400
408
|
</svg>
|
|
401
409
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
402
410
|
}
|
|
403
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
411
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DocsIconComponent, decorators: [{
|
|
404
412
|
type: Component,
|
|
405
413
|
args: [{
|
|
406
414
|
selector: 'ndt-docs-icon',
|
|
@@ -426,8 +434,8 @@ class ExportIconComponent {
|
|
|
426
434
|
constructor() {
|
|
427
435
|
this.fill = input('#FFFF');
|
|
428
436
|
}
|
|
429
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
430
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
437
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: ExportIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
438
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: ExportIconComponent, isStandalone: true, selector: "ndt-export-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
431
439
|
<svg
|
|
432
440
|
[attr.fill]="fill()"
|
|
433
441
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -441,7 +449,7 @@ class ExportIconComponent {
|
|
|
441
449
|
</svg>
|
|
442
450
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
443
451
|
}
|
|
444
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
452
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: ExportIconComponent, decorators: [{
|
|
445
453
|
type: Component,
|
|
446
454
|
args: [{
|
|
447
455
|
selector: 'ndt-export-icon',
|
|
@@ -467,8 +475,8 @@ class FilterIconComponent {
|
|
|
467
475
|
constructor() {
|
|
468
476
|
this.fill = input('#FFFF');
|
|
469
477
|
}
|
|
470
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
471
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
478
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: FilterIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
479
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: FilterIconComponent, isStandalone: true, selector: "ndt-filter-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
472
480
|
<svg
|
|
473
481
|
[attr.fill]="fill()"
|
|
474
482
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -486,7 +494,7 @@ class FilterIconComponent {
|
|
|
486
494
|
</svg>
|
|
487
495
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
488
496
|
}
|
|
489
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
497
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: FilterIconComponent, decorators: [{
|
|
490
498
|
type: Component,
|
|
491
499
|
args: [{
|
|
492
500
|
selector: 'ndt-filter-icon',
|
|
@@ -516,8 +524,8 @@ class GaugeIconComponent {
|
|
|
516
524
|
constructor() {
|
|
517
525
|
this.fill = input('#FFFF');
|
|
518
526
|
}
|
|
519
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
520
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
527
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: GaugeIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
528
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: GaugeIconComponent, isStandalone: true, selector: "ndt-gauge-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
521
529
|
<svg
|
|
522
530
|
[attr.fill]="fill()"
|
|
523
531
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -535,7 +543,7 @@ class GaugeIconComponent {
|
|
|
535
543
|
</svg>
|
|
536
544
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
537
545
|
}
|
|
538
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
546
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: GaugeIconComponent, decorators: [{
|
|
539
547
|
type: Component,
|
|
540
548
|
args: [{
|
|
541
549
|
selector: 'ndt-gauge-icon',
|
|
@@ -565,8 +573,8 @@ class GearIconComponent {
|
|
|
565
573
|
constructor() {
|
|
566
574
|
this.fill = input('#FFFF');
|
|
567
575
|
}
|
|
568
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
569
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
576
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: GearIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
577
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: GearIconComponent, isStandalone: true, selector: "ndt-gear-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
570
578
|
<svg
|
|
571
579
|
[attr.fill]="fill()"
|
|
572
580
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -584,7 +592,7 @@ class GearIconComponent {
|
|
|
584
592
|
</svg>
|
|
585
593
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
586
594
|
}
|
|
587
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
595
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: GearIconComponent, decorators: [{
|
|
588
596
|
type: Component,
|
|
589
597
|
args: [{
|
|
590
598
|
selector: 'ndt-gear-icon',
|
|
@@ -614,8 +622,8 @@ class GitBranchIconComponent {
|
|
|
614
622
|
constructor() {
|
|
615
623
|
this.fill = input('#FFFF');
|
|
616
624
|
}
|
|
617
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
618
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
625
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: GitBranchIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
626
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: GitBranchIconComponent, isStandalone: true, selector: "ndt-git-branch-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
619
627
|
<svg
|
|
620
628
|
[attr.fill]="fill()"
|
|
621
629
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -633,7 +641,7 @@ class GitBranchIconComponent {
|
|
|
633
641
|
</svg>
|
|
634
642
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
635
643
|
}
|
|
636
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
644
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: GitBranchIconComponent, decorators: [{
|
|
637
645
|
type: Component,
|
|
638
646
|
args: [{
|
|
639
647
|
selector: 'ndt-git-branch-icon',
|
|
@@ -663,8 +671,8 @@ class ImportIconComponent {
|
|
|
663
671
|
constructor() {
|
|
664
672
|
this.fill = input('#FFFF');
|
|
665
673
|
}
|
|
666
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
667
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
674
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: ImportIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
675
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: ImportIconComponent, isStandalone: true, selector: "ndt-import-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
668
676
|
<svg
|
|
669
677
|
[attr.fill]="fill()"
|
|
670
678
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -678,7 +686,7 @@ class ImportIconComponent {
|
|
|
678
686
|
</svg>
|
|
679
687
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
680
688
|
}
|
|
681
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
689
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: ImportIconComponent, decorators: [{
|
|
682
690
|
type: Component,
|
|
683
691
|
args: [{
|
|
684
692
|
selector: 'ndt-import-icon',
|
|
@@ -704,8 +712,8 @@ class LayoutIconComponent {
|
|
|
704
712
|
constructor() {
|
|
705
713
|
this.fill = input('#FFFF');
|
|
706
714
|
}
|
|
707
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
708
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
715
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: LayoutIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
716
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: LayoutIconComponent, isStandalone: true, selector: "ndt-layout-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
709
717
|
<svg
|
|
710
718
|
[attr.fill]="fill()"
|
|
711
719
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -720,7 +728,7 @@ class LayoutIconComponent {
|
|
|
720
728
|
</svg>
|
|
721
729
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
722
730
|
}
|
|
723
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
731
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: LayoutIconComponent, decorators: [{
|
|
724
732
|
type: Component,
|
|
725
733
|
args: [{
|
|
726
734
|
selector: 'ndt-layout-icon',
|
|
@@ -747,8 +755,8 @@ class LightbulbIconComponent {
|
|
|
747
755
|
constructor() {
|
|
748
756
|
this.fill = input('#FFFF');
|
|
749
757
|
}
|
|
750
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
751
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
758
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: LightbulbIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
759
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: LightbulbIconComponent, isStandalone: true, selector: "ndt-lightbulb-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
752
760
|
<svg
|
|
753
761
|
[attr.fill]="fill()"
|
|
754
762
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -762,7 +770,7 @@ class LightbulbIconComponent {
|
|
|
762
770
|
</svg>
|
|
763
771
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
764
772
|
}
|
|
765
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
773
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: LightbulbIconComponent, decorators: [{
|
|
766
774
|
type: Component,
|
|
767
775
|
args: [{
|
|
768
776
|
selector: 'ndt-lightbulb-icon',
|
|
@@ -788,8 +796,8 @@ class LightingIconComponent {
|
|
|
788
796
|
constructor() {
|
|
789
797
|
this.fill = input('#FFFF');
|
|
790
798
|
}
|
|
791
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
792
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
799
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: LightingIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
800
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: LightingIconComponent, isStandalone: true, selector: "ndt-lighting-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
793
801
|
<svg
|
|
794
802
|
[attr.fill]="fill()"
|
|
795
803
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -804,7 +812,7 @@ class LightingIconComponent {
|
|
|
804
812
|
</svg>
|
|
805
813
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
806
814
|
}
|
|
807
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
815
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: LightingIconComponent, decorators: [{
|
|
808
816
|
type: Component,
|
|
809
817
|
args: [{
|
|
810
818
|
selector: 'ndt-lighting-icon',
|
|
@@ -831,8 +839,8 @@ class LockIconComponent {
|
|
|
831
839
|
constructor() {
|
|
832
840
|
this.fill = input('#FFFF');
|
|
833
841
|
}
|
|
834
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
835
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
842
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: LockIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
843
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: LockIconComponent, isStandalone: true, selector: "ndt-lock-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
836
844
|
<svg
|
|
837
845
|
[attr.fill]="fill()"
|
|
838
846
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -846,7 +854,7 @@ class LockIconComponent {
|
|
|
846
854
|
</svg>
|
|
847
855
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
848
856
|
}
|
|
849
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
857
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: LockIconComponent, decorators: [{
|
|
850
858
|
type: Component,
|
|
851
859
|
args: [{
|
|
852
860
|
selector: 'ndt-lock-icon',
|
|
@@ -872,8 +880,8 @@ class MoonIconComponent {
|
|
|
872
880
|
constructor() {
|
|
873
881
|
this.fill = input('#FFFF');
|
|
874
882
|
}
|
|
875
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
876
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
883
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: MoonIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
884
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: MoonIconComponent, isStandalone: true, selector: "ndt-moon-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
877
885
|
<svg
|
|
878
886
|
[attr.fill]="fill()"
|
|
879
887
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -891,7 +899,7 @@ class MoonIconComponent {
|
|
|
891
899
|
</svg>
|
|
892
900
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
893
901
|
}
|
|
894
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
902
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: MoonIconComponent, decorators: [{
|
|
895
903
|
type: Component,
|
|
896
904
|
args: [{
|
|
897
905
|
selector: 'ndt-moon-icon',
|
|
@@ -921,8 +929,8 @@ class NetworkIconComponent {
|
|
|
921
929
|
constructor() {
|
|
922
930
|
this.fill = input('#FFFF');
|
|
923
931
|
}
|
|
924
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
925
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
932
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NetworkIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
933
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: NetworkIconComponent, isStandalone: true, selector: "ndt-network-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
926
934
|
<svg
|
|
927
935
|
[attr.fill]="fill()"
|
|
928
936
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -940,7 +948,7 @@ class NetworkIconComponent {
|
|
|
940
948
|
</svg>
|
|
941
949
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
942
950
|
}
|
|
943
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
951
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NetworkIconComponent, decorators: [{
|
|
944
952
|
type: Component,
|
|
945
953
|
args: [{
|
|
946
954
|
selector: 'ndt-network-icon',
|
|
@@ -970,8 +978,8 @@ class PuzzleIconComponent {
|
|
|
970
978
|
constructor() {
|
|
971
979
|
this.fill = input('#FFFF');
|
|
972
980
|
}
|
|
973
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
974
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
981
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PuzzleIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
982
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: PuzzleIconComponent, isStandalone: true, selector: "ndt-puzzle-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
975
983
|
<svg
|
|
976
984
|
[attr.fill]="fill()"
|
|
977
985
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -989,7 +997,7 @@ class PuzzleIconComponent {
|
|
|
989
997
|
</svg>
|
|
990
998
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
991
999
|
}
|
|
992
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
1000
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PuzzleIconComponent, decorators: [{
|
|
993
1001
|
type: Component,
|
|
994
1002
|
args: [{
|
|
995
1003
|
selector: 'ndt-puzzle-icon',
|
|
@@ -1019,8 +1027,8 @@ class RefreshIconComponent {
|
|
|
1019
1027
|
constructor() {
|
|
1020
1028
|
this.fill = input('#FFFF');
|
|
1021
1029
|
}
|
|
1022
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
1023
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
1030
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: RefreshIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1031
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: RefreshIconComponent, isStandalone: true, selector: "ndt-refresh-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
1024
1032
|
<svg
|
|
1025
1033
|
[attr.fill]="fill()"
|
|
1026
1034
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -1038,7 +1046,7 @@ class RefreshIconComponent {
|
|
|
1038
1046
|
</svg>
|
|
1039
1047
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1040
1048
|
}
|
|
1041
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
1049
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: RefreshIconComponent, decorators: [{
|
|
1042
1050
|
type: Component,
|
|
1043
1051
|
args: [{
|
|
1044
1052
|
selector: 'ndt-refresh-icon',
|
|
@@ -1068,8 +1076,8 @@ class StarIconComponent {
|
|
|
1068
1076
|
constructor() {
|
|
1069
1077
|
this.fill = input('#FFFF');
|
|
1070
1078
|
}
|
|
1071
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
1072
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
1079
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: StarIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1080
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: StarIconComponent, isStandalone: true, selector: "ndt-star-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
1073
1081
|
<svg
|
|
1074
1082
|
[attr.fill]="fill()"
|
|
1075
1083
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -1087,7 +1095,7 @@ class StarIconComponent {
|
|
|
1087
1095
|
</svg>
|
|
1088
1096
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1089
1097
|
}
|
|
1090
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
1098
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: StarIconComponent, decorators: [{
|
|
1091
1099
|
type: Component,
|
|
1092
1100
|
args: [{
|
|
1093
1101
|
selector: 'ndt-star-icon',
|
|
@@ -1117,8 +1125,8 @@ class SunIconComponent {
|
|
|
1117
1125
|
constructor() {
|
|
1118
1126
|
this.fill = input('#FFFF');
|
|
1119
1127
|
}
|
|
1120
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
1121
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
1128
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SunIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1129
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: SunIconComponent, isStandalone: true, selector: "ndt-sun-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
1122
1130
|
<svg
|
|
1123
1131
|
[attr.fill]="fill()"
|
|
1124
1132
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -1136,7 +1144,7 @@ class SunIconComponent {
|
|
|
1136
1144
|
</svg>
|
|
1137
1145
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1138
1146
|
}
|
|
1139
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
1147
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SunIconComponent, decorators: [{
|
|
1140
1148
|
type: Component,
|
|
1141
1149
|
args: [{
|
|
1142
1150
|
selector: 'ndt-sun-icon',
|
|
@@ -1166,8 +1174,8 @@ class TerminalIconComponent {
|
|
|
1166
1174
|
constructor() {
|
|
1167
1175
|
this.fill = input('#FFFF');
|
|
1168
1176
|
}
|
|
1169
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
1170
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
1177
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: TerminalIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1178
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: TerminalIconComponent, isStandalone: true, selector: "ndt-terminal-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
1171
1179
|
<svg
|
|
1172
1180
|
[attr.fill]="fill()"
|
|
1173
1181
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -1185,7 +1193,7 @@ class TerminalIconComponent {
|
|
|
1185
1193
|
</svg>
|
|
1186
1194
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1187
1195
|
}
|
|
1188
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
1196
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: TerminalIconComponent, decorators: [{
|
|
1189
1197
|
type: Component,
|
|
1190
1198
|
args: [{
|
|
1191
1199
|
selector: 'ndt-terminal-icon',
|
|
@@ -1215,8 +1223,8 @@ class ToggleLeftIconComponent {
|
|
|
1215
1223
|
constructor() {
|
|
1216
1224
|
this.fill = input('#FFFF');
|
|
1217
1225
|
}
|
|
1218
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
1219
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
1226
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: ToggleLeftIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1227
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: ToggleLeftIconComponent, isStandalone: true, selector: "ndt-toggle-left-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
1220
1228
|
<svg
|
|
1221
1229
|
[attr.fill]="fill()"
|
|
1222
1230
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -1234,7 +1242,7 @@ class ToggleLeftIconComponent {
|
|
|
1234
1242
|
</svg>
|
|
1235
1243
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1236
1244
|
}
|
|
1237
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
1245
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: ToggleLeftIconComponent, decorators: [{
|
|
1238
1246
|
type: Component,
|
|
1239
1247
|
args: [{
|
|
1240
1248
|
selector: 'ndt-toggle-left-icon',
|
|
@@ -1264,8 +1272,8 @@ class TranslateIconComponent {
|
|
|
1264
1272
|
constructor() {
|
|
1265
1273
|
this.fill = input('#FFFF');
|
|
1266
1274
|
}
|
|
1267
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
1268
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
1275
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: TranslateIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1276
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: TranslateIconComponent, isStandalone: true, selector: "ndt-translate-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
1269
1277
|
<svg
|
|
1270
1278
|
[attr.fill]="fill()"
|
|
1271
1279
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -1279,7 +1287,7 @@ class TranslateIconComponent {
|
|
|
1279
1287
|
</svg>
|
|
1280
1288
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1281
1289
|
}
|
|
1282
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
1290
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: TranslateIconComponent, decorators: [{
|
|
1283
1291
|
type: Component,
|
|
1284
1292
|
args: [{
|
|
1285
1293
|
selector: 'ndt-translate-icon',
|
|
@@ -1305,8 +1313,8 @@ class TrashIconComponent {
|
|
|
1305
1313
|
constructor() {
|
|
1306
1314
|
this.fill = input('#FFFF');
|
|
1307
1315
|
}
|
|
1308
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
1309
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
1316
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: TrashIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1317
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: TrashIconComponent, isStandalone: true, selector: "ndt-trash-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
1310
1318
|
<svg
|
|
1311
1319
|
[attr.fill]="fill()"
|
|
1312
1320
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -1320,7 +1328,7 @@ class TrashIconComponent {
|
|
|
1320
1328
|
</svg>
|
|
1321
1329
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1322
1330
|
}
|
|
1323
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
1331
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: TrashIconComponent, decorators: [{
|
|
1324
1332
|
type: Component,
|
|
1325
1333
|
args: [{
|
|
1326
1334
|
selector: 'ndt-trash-icon',
|
|
@@ -1346,8 +1354,8 @@ class UsersIconComponent {
|
|
|
1346
1354
|
constructor() {
|
|
1347
1355
|
this.fill = input('#FFFF');
|
|
1348
1356
|
}
|
|
1349
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
1350
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
1357
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: UsersIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1358
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: UsersIconComponent, isStandalone: true, selector: "ndt-users-icon", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
1351
1359
|
<svg
|
|
1352
1360
|
[attr.fill]="fill()"
|
|
1353
1361
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -1365,7 +1373,7 @@ class UsersIconComponent {
|
|
|
1365
1373
|
</svg>
|
|
1366
1374
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1367
1375
|
}
|
|
1368
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
1376
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: UsersIconComponent, decorators: [{
|
|
1369
1377
|
type: Component,
|
|
1370
1378
|
args: [{
|
|
1371
1379
|
selector: 'ndt-users-icon',
|
|
@@ -1397,8 +1405,8 @@ class DevToolbarIconComponent {
|
|
|
1397
1405
|
this.name = input.required();
|
|
1398
1406
|
this.fill = computed(() => this.stateService.theme() === 'dark' ? '#FFFFFF' : '#000000');
|
|
1399
1407
|
}
|
|
1400
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
1401
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.
|
|
1408
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1409
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: DevToolbarIconComponent, isStandalone: true, selector: "ndt-icon", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
1402
1410
|
@switch (name()) { @case ('angular') {
|
|
1403
1411
|
<ndt-angular-icon />
|
|
1404
1412
|
} @case ('bolt') {
|
|
@@ -1458,7 +1466,7 @@ class DevToolbarIconComponent {
|
|
|
1458
1466
|
} }
|
|
1459
1467
|
`, isInline: true, dependencies: [{ kind: "component", type: AngularIconComponent, selector: "ndt-angular-icon" }, { kind: "component", type: BoltIconComponent, selector: "ndt-bolt-icon", inputs: ["fill"] }, { kind: "component", type: BugIconComponent, selector: "ndt-bug-icon", inputs: ["fill"] }, { kind: "component", type: CodeIconComponent, selector: "ndt-code-icon", inputs: ["fill"] }, { kind: "component", type: DatabaseIconComponent, selector: "ndt-database-icon", inputs: ["fill"] }, { kind: "component", type: DocsIconComponent, selector: "ndt-docs-icon", inputs: ["fill"] }, { kind: "component", type: DiscordIconComponent, selector: "ndt-discord-icon", inputs: ["fill"] }, { kind: "component", type: ExportIconComponent, selector: "ndt-export-icon", inputs: ["fill"] }, { kind: "component", type: FilterIconComponent, selector: "ndt-filter-icon", inputs: ["fill"] }, { kind: "component", type: GaugeIconComponent, selector: "ndt-gauge-icon", inputs: ["fill"] }, { kind: "component", type: GearIconComponent, selector: "ndt-gear-icon", inputs: ["fill"] }, { kind: "component", type: GitBranchIconComponent, selector: "ndt-git-branch-icon", inputs: ["fill"] }, { kind: "component", type: ImportIconComponent, selector: "ndt-import-icon", inputs: ["fill"] }, { kind: "component", type: LayoutIconComponent, selector: "ndt-layout-icon", inputs: ["fill"] }, { kind: "component", type: LightbulbIconComponent, selector: "ndt-lightbulb-icon", inputs: ["fill"] }, { kind: "component", type: LightingIconComponent, selector: "ndt-lighting-icon", inputs: ["fill"] }, { kind: "component", type: LockIconComponent, selector: "ndt-lock-icon", inputs: ["fill"] }, { kind: "component", type: NetworkIconComponent, selector: "ndt-network-icon", inputs: ["fill"] }, { kind: "component", type: PuzzleIconComponent, selector: "ndt-puzzle-icon", inputs: ["fill"] }, { kind: "component", type: RefreshIconComponent, selector: "ndt-refresh-icon", inputs: ["fill"] }, { kind: "component", type: StarIconComponent, selector: "ndt-star-icon", inputs: ["fill"] }, { kind: "component", type: TerminalIconComponent, selector: "ndt-terminal-icon", inputs: ["fill"] }, { kind: "component", type: ToggleLeftIconComponent, selector: "ndt-toggle-left-icon", inputs: ["fill"] }, { kind: "component", type: UsersIconComponent, selector: "ndt-users-icon", inputs: ["fill"] }, { kind: "component", type: SunIconComponent, selector: "ndt-sun-icon", inputs: ["fill"] }, { kind: "component", type: MoonIconComponent, selector: "ndt-moon-icon", inputs: ["fill"] }, { kind: "component", type: TranslateIconComponent, selector: "ndt-translate-icon", inputs: ["fill"] }, { kind: "component", type: TrashIconComponent, selector: "ndt-trash-icon", inputs: ["fill"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1460
1468
|
}
|
|
1461
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
1469
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarIconComponent, decorators: [{
|
|
1462
1470
|
type: Component,
|
|
1463
1471
|
args: [{
|
|
1464
1472
|
selector: 'ndt-icon',
|
|
@@ -1556,6 +1564,206 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
1556
1564
|
}]
|
|
1557
1565
|
}] });
|
|
1558
1566
|
|
|
1567
|
+
/**
|
|
1568
|
+
* Container component for displaying lists of items with consistent scrolling,
|
|
1569
|
+
* empty states, and layout across all tools.
|
|
1570
|
+
*
|
|
1571
|
+
* @example
|
|
1572
|
+
* ```html
|
|
1573
|
+
* <ndt-list
|
|
1574
|
+
* [hasItems]="items().length > 0"
|
|
1575
|
+
* [hasResults]="filteredItems().length > 0"
|
|
1576
|
+
* emptyMessage="No items found"
|
|
1577
|
+
* noResultsMessage="No items match your filter"
|
|
1578
|
+
* >
|
|
1579
|
+
* @for (item of filteredItems(); track item.id) {
|
|
1580
|
+
* <ndt-list-item ... />
|
|
1581
|
+
* }
|
|
1582
|
+
* </ndt-list>
|
|
1583
|
+
* ```
|
|
1584
|
+
*/
|
|
1585
|
+
class DevToolbarListComponent {
|
|
1586
|
+
constructor() {
|
|
1587
|
+
/**
|
|
1588
|
+
* Whether the list has any items at all (before filtering).
|
|
1589
|
+
* When false, shows the emptyMessage.
|
|
1590
|
+
*/
|
|
1591
|
+
this.hasItems = input(true);
|
|
1592
|
+
/**
|
|
1593
|
+
* Whether the list has any results after filtering.
|
|
1594
|
+
* When false (but hasItems is true), shows the noResultsMessage.
|
|
1595
|
+
*/
|
|
1596
|
+
this.hasResults = input(true);
|
|
1597
|
+
/**
|
|
1598
|
+
* Message to display when there are no items at all.
|
|
1599
|
+
* @example "No feature flags found"
|
|
1600
|
+
*/
|
|
1601
|
+
this.emptyMessage = input('No items found');
|
|
1602
|
+
/**
|
|
1603
|
+
* Optional hint text to display below the empty message.
|
|
1604
|
+
* @example "Call setAvailableOptions() to configure features"
|
|
1605
|
+
*/
|
|
1606
|
+
this.emptyHint = input(undefined);
|
|
1607
|
+
/**
|
|
1608
|
+
* Message to display when items exist but none match the current filter.
|
|
1609
|
+
* @example "No flags match your filter"
|
|
1610
|
+
*/
|
|
1611
|
+
this.noResultsMessage = input('No results match your filter');
|
|
1612
|
+
}
|
|
1613
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1614
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: DevToolbarListComponent, isStandalone: true, selector: "ndt-list", inputs: { hasItems: { classPropertyName: "hasItems", publicName: "hasItems", isSignal: true, isRequired: false, transformFunction: null }, hasResults: { classPropertyName: "hasResults", publicName: "hasResults", isSignal: true, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null }, emptyHint: { classPropertyName: "emptyHint", publicName: "emptyHint", isSignal: true, isRequired: false, transformFunction: null }, noResultsMessage: { classPropertyName: "noResultsMessage", publicName: "noResultsMessage", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
1615
|
+
@if (!hasItems()) {
|
|
1616
|
+
<div class="empty-state">
|
|
1617
|
+
<p>{{ emptyMessage() }}</p>
|
|
1618
|
+
@if (emptyHint()) {
|
|
1619
|
+
<p class="hint">{{ emptyHint() }}</p>
|
|
1620
|
+
}
|
|
1621
|
+
</div>
|
|
1622
|
+
} @else if (!hasResults()) {
|
|
1623
|
+
<div class="empty-state">
|
|
1624
|
+
<p>{{ noResultsMessage() }}</p>
|
|
1625
|
+
</div>
|
|
1626
|
+
} @else {
|
|
1627
|
+
<div class="list-container">
|
|
1628
|
+
<ng-content />
|
|
1629
|
+
</div>
|
|
1630
|
+
}
|
|
1631
|
+
`, isInline: true, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2);display:flex;flex-direction:column;flex:1;min-height:0}.empty-state{display:flex;flex-direction:column;gap:var(--ndt-spacing-md);flex:1;min-height:0;justify-content:center;align-items:center;border:1px solid var(--ndt-warning-border);border-radius:var(--ndt-border-radius-medium);padding:var(--ndt-spacing-md);background:var(--ndt-warning-background);color:var(--ndt-text-muted)}.empty-state p{margin:0}.empty-state .hint{font-size:var(--ndt-font-size-xs)}.list-container{display:flex;flex-direction:column;gap:var(--ndt-spacing-md);flex:1;min-height:0;overflow-y:auto;padding-right:var(--ndt-spacing-sm);scrollbar-width:thin;scrollbar-color:var(--ndt-border-primary) var(--ndt-background-secondary)}.list-container::-webkit-scrollbar{width:8px;height:8px}.list-container::-webkit-scrollbar-track{background:transparent}.list-container::-webkit-scrollbar-thumb{background-color:var(--ndt-border-primary);border-radius:4px;border:2px solid var(--ndt-bg-primary)}.list-container::-webkit-scrollbar-thumb:hover{background-color:var(--ndt-text-secondary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1632
|
+
}
|
|
1633
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarListComponent, decorators: [{
|
|
1634
|
+
type: Component,
|
|
1635
|
+
args: [{ selector: 'ndt-list', standalone: true, imports: [CommonModule], template: `
|
|
1636
|
+
@if (!hasItems()) {
|
|
1637
|
+
<div class="empty-state">
|
|
1638
|
+
<p>{{ emptyMessage() }}</p>
|
|
1639
|
+
@if (emptyHint()) {
|
|
1640
|
+
<p class="hint">{{ emptyHint() }}</p>
|
|
1641
|
+
}
|
|
1642
|
+
</div>
|
|
1643
|
+
} @else if (!hasResults()) {
|
|
1644
|
+
<div class="empty-state">
|
|
1645
|
+
<p>{{ noResultsMessage() }}</p>
|
|
1646
|
+
</div>
|
|
1647
|
+
} @else {
|
|
1648
|
+
<div class="list-container">
|
|
1649
|
+
<ng-content />
|
|
1650
|
+
</div>
|
|
1651
|
+
}
|
|
1652
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2);display:flex;flex-direction:column;flex:1;min-height:0}.empty-state{display:flex;flex-direction:column;gap:var(--ndt-spacing-md);flex:1;min-height:0;justify-content:center;align-items:center;border:1px solid var(--ndt-warning-border);border-radius:var(--ndt-border-radius-medium);padding:var(--ndt-spacing-md);background:var(--ndt-warning-background);color:var(--ndt-text-muted)}.empty-state p{margin:0}.empty-state .hint{font-size:var(--ndt-font-size-xs)}.list-container{display:flex;flex-direction:column;gap:var(--ndt-spacing-md);flex:1;min-height:0;overflow-y:auto;padding-right:var(--ndt-spacing-sm);scrollbar-width:thin;scrollbar-color:var(--ndt-border-primary) var(--ndt-background-secondary)}.list-container::-webkit-scrollbar{width:8px;height:8px}.list-container::-webkit-scrollbar-track{background:transparent}.list-container::-webkit-scrollbar-thumb{background-color:var(--ndt-border-primary);border-radius:4px;border:2px solid var(--ndt-bg-primary)}.list-container::-webkit-scrollbar-thumb:hover{background-color:var(--ndt-text-secondary)}\n"] }]
|
|
1653
|
+
}] });
|
|
1654
|
+
|
|
1655
|
+
/**
|
|
1656
|
+
* List item component with consistent layout, dot badge indicator,
|
|
1657
|
+
* and forced state highlighting.
|
|
1658
|
+
*
|
|
1659
|
+
* @example
|
|
1660
|
+
* ```html
|
|
1661
|
+
* <ndt-list-item
|
|
1662
|
+
* title="Analytics Dashboard"
|
|
1663
|
+
* description="Advanced reporting tools"
|
|
1664
|
+
* [isForced]="false"
|
|
1665
|
+
* [currentValue]="true"
|
|
1666
|
+
* [originalValue]="undefined"
|
|
1667
|
+
* >
|
|
1668
|
+
* <ndt-select ... />
|
|
1669
|
+
* </ndt-list-item>
|
|
1670
|
+
* ```
|
|
1671
|
+
*/
|
|
1672
|
+
class DevToolbarListItemComponent {
|
|
1673
|
+
constructor() {
|
|
1674
|
+
/**
|
|
1675
|
+
* Display title for the list item
|
|
1676
|
+
* @example "Analytics Dashboard"
|
|
1677
|
+
*/
|
|
1678
|
+
this.title = input.required();
|
|
1679
|
+
/**
|
|
1680
|
+
* Optional description text
|
|
1681
|
+
* @example "Advanced reporting and data visualization tools"
|
|
1682
|
+
*/
|
|
1683
|
+
this.description = input(undefined);
|
|
1684
|
+
/**
|
|
1685
|
+
* Whether this item's state is forced via the dev toolbar
|
|
1686
|
+
*/
|
|
1687
|
+
this.isForced = input(false);
|
|
1688
|
+
/**
|
|
1689
|
+
* Current enabled/granted state of the item
|
|
1690
|
+
*/
|
|
1691
|
+
this.currentValue = input.required();
|
|
1692
|
+
/**
|
|
1693
|
+
* Original value before forcing (only present when isForced is true)
|
|
1694
|
+
*/
|
|
1695
|
+
this.originalValue = input(undefined);
|
|
1696
|
+
/**
|
|
1697
|
+
* Value to display in the dot indicator.
|
|
1698
|
+
* For forced items: shows originalValue
|
|
1699
|
+
* For non-forced items: shows currentValue
|
|
1700
|
+
*/
|
|
1701
|
+
this.displayValue = computed(() => {
|
|
1702
|
+
const originalValue = this.originalValue();
|
|
1703
|
+
return this.isForced() && originalValue !== undefined
|
|
1704
|
+
? originalValue
|
|
1705
|
+
: this.currentValue();
|
|
1706
|
+
});
|
|
1707
|
+
/**
|
|
1708
|
+
* Tooltip text explaining the indicator state
|
|
1709
|
+
*/
|
|
1710
|
+
this.tooltipText = computed(() => {
|
|
1711
|
+
const value = this.displayValue();
|
|
1712
|
+
const state = value ? 'enabled' : 'disabled';
|
|
1713
|
+
if (this.isForced() && this.originalValue() !== undefined) {
|
|
1714
|
+
return `Originally: ${state}`;
|
|
1715
|
+
}
|
|
1716
|
+
return `Current state: ${state}`;
|
|
1717
|
+
});
|
|
1718
|
+
}
|
|
1719
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1720
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: DevToolbarListItemComponent, isStandalone: true, selector: "ndt-list-item", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, isForced: { classPropertyName: "isForced", publicName: "isForced", isSignal: true, isRequired: false, transformFunction: null }, currentValue: { classPropertyName: "currentValue", publicName: "currentValue", isSignal: true, isRequired: true, transformFunction: null }, originalValue: { classPropertyName: "originalValue", publicName: "originalValue", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
1721
|
+
<div class="list-item" [class.list-item--forced]="isForced()">
|
|
1722
|
+
<div class="info">
|
|
1723
|
+
<h3>{{ title() }}</h3>
|
|
1724
|
+
@if (description()) {
|
|
1725
|
+
<div class="description-wrapper">
|
|
1726
|
+
<span
|
|
1727
|
+
class="dot-indicator"
|
|
1728
|
+
[class.dot-indicator--on]="displayValue()"
|
|
1729
|
+
[class.dot-indicator--off]="!displayValue()"
|
|
1730
|
+
[title]="tooltipText()"
|
|
1731
|
+
></span>
|
|
1732
|
+
<p>{{ description() }}</p>
|
|
1733
|
+
</div>
|
|
1734
|
+
}
|
|
1735
|
+
</div>
|
|
1736
|
+
<div class="actions">
|
|
1737
|
+
<ng-content />
|
|
1738
|
+
</div>
|
|
1739
|
+
</div>
|
|
1740
|
+
`, isInline: true, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2)}.list-item{display:flex;flex-direction:row;gap:var(--ndt-spacing-sm);background:var(--ndt-background-secondary);padding:var(--ndt-spacing-md);border-radius:var(--ndt-border-radius-medium);transition:background-color .2s ease}.list-item.list-item--forced{background:#3b82f60d;border-left:2px solid rgba(59,130,246,.3);padding-left:calc(var(--ndt-spacing-md) - 2px)}.list-item .info{flex:0 0 65%}.list-item .info h3{margin:0;font-size:var(--ndt-font-size-md);color:var(--ndt-text-primary)}.list-item .info .description-wrapper{display:flex;align-items:center;gap:8px;margin-top:4px}.list-item .info .dot-indicator{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0;cursor:help;transition:all .2s ease}.list-item .info .dot-indicator.dot-indicator--on{background:#22c55e;box-shadow:0 0 0 2px #22c55e33}.list-item .info .dot-indicator.dot-indicator--off{background:#ef4444;box-shadow:0 0 0 2px #ef444433}.list-item .info p{margin:0;font-size:var(--ndt-font-size-xs);color:var(--ndt-text-muted);flex:1}.list-item .actions{flex:0 0 35%;display:flex;align-items:flex-start}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1741
|
+
}
|
|
1742
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarListItemComponent, decorators: [{
|
|
1743
|
+
type: Component,
|
|
1744
|
+
args: [{ selector: 'ndt-list-item', standalone: true, imports: [CommonModule], template: `
|
|
1745
|
+
<div class="list-item" [class.list-item--forced]="isForced()">
|
|
1746
|
+
<div class="info">
|
|
1747
|
+
<h3>{{ title() }}</h3>
|
|
1748
|
+
@if (description()) {
|
|
1749
|
+
<div class="description-wrapper">
|
|
1750
|
+
<span
|
|
1751
|
+
class="dot-indicator"
|
|
1752
|
+
[class.dot-indicator--on]="displayValue()"
|
|
1753
|
+
[class.dot-indicator--off]="!displayValue()"
|
|
1754
|
+
[title]="tooltipText()"
|
|
1755
|
+
></span>
|
|
1756
|
+
<p>{{ description() }}</p>
|
|
1757
|
+
</div>
|
|
1758
|
+
}
|
|
1759
|
+
</div>
|
|
1760
|
+
<div class="actions">
|
|
1761
|
+
<ng-content />
|
|
1762
|
+
</div>
|
|
1763
|
+
</div>
|
|
1764
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2)}.list-item{display:flex;flex-direction:row;gap:var(--ndt-spacing-sm);background:var(--ndt-background-secondary);padding:var(--ndt-spacing-md);border-radius:var(--ndt-border-radius-medium);transition:background-color .2s ease}.list-item.list-item--forced{background:#3b82f60d;border-left:2px solid rgba(59,130,246,.3);padding-left:calc(var(--ndt-spacing-md) - 2px)}.list-item .info{flex:0 0 65%}.list-item .info h3{margin:0;font-size:var(--ndt-font-size-md);color:var(--ndt-text-primary)}.list-item .info .description-wrapper{display:flex;align-items:center;gap:8px;margin-top:4px}.list-item .info .dot-indicator{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0;cursor:help;transition:all .2s ease}.list-item .info .dot-indicator.dot-indicator--on{background:#22c55e;box-shadow:0 0 0 2px #22c55e33}.list-item .info .dot-indicator.dot-indicator--off{background:#ef4444;box-shadow:0 0 0 2px #ef444433}.list-item .info p{margin:0;font-size:var(--ndt-font-size-xs);color:var(--ndt-text-muted);flex:1}.list-item .actions{flex:0 0 35%;display:flex;align-items:flex-start}\n"] }]
|
|
1765
|
+
}] });
|
|
1766
|
+
|
|
1559
1767
|
class DevToolbarToolButtonComponent {
|
|
1560
1768
|
constructor() {
|
|
1561
1769
|
// Injects
|
|
@@ -1596,8 +1804,8 @@ class DevToolbarToolButtonComponent {
|
|
|
1596
1804
|
onBlur() {
|
|
1597
1805
|
this.isFocused.set(false);
|
|
1598
1806
|
}
|
|
1599
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
1600
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.
|
|
1807
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarToolButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1808
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: DevToolbarToolButtonComponent, isStandalone: true, selector: "ndt-tool-button", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, toolId: { classPropertyName: "toolId", publicName: "toolId", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { open: "open" }, ngImport: i0, template: `
|
|
1601
1809
|
<button
|
|
1602
1810
|
class="tool-button"
|
|
1603
1811
|
[class.tool-button--active]="isActive()"
|
|
@@ -1618,7 +1826,7 @@ class DevToolbarToolButtonComponent {
|
|
|
1618
1826
|
}
|
|
1619
1827
|
<ng-content />
|
|
1620
1828
|
</button>
|
|
1621
|
-
`, isInline: true, styles: [".tool-button{display:flex;justify-content:center;align-items:center;width:44px;height:40px;border:0;background:transparent;color:var(--ndt-text-primary);transition:var(--ndt-transition-default);cursor:pointer;opacity:.5;position:relative}.tool-button--active,.tool-button:hover{background:var(--ndt-hover-bg);opacity:1}.tool-button ::ng-deep svg{width:24px;height:24px;display:block;margin:auto}.tool-button__badge{position:absolute;top:-.25rem;right:-.25rem;background-color:var(--ndt-hover-danger);color:var(--ndt-text-primary);border-radius:var(--ndt-border-radius-full);min-width:1rem;height:1rem;font-size:.75rem;display:flex;align-items:center;justify-content:center;padding:.125rem}.tooltip{position:absolute;bottom:calc(100% + 1.2rem);left:50%;transform:translate(-50%);background:var(--ndt-bg-primary);color:var(--ndt-text-primary);padding:.5rem .75rem;border-radius:var(--ndt-border-radius-medium);font-size:.75rem;white-space:nowrap;pointer-events:none;z-index:1000;box-shadow:var(--ndt-shadow-tooltip)}\n"], animations: [
|
|
1829
|
+
`, isInline: true, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2)}.tool-button{display:flex;justify-content:center;align-items:center;width:44px;height:40px;border:0;background:transparent;color:var(--ndt-text-primary);transition:var(--ndt-transition-default);cursor:pointer;opacity:.5;position:relative}.tool-button--active,.tool-button:hover{background:var(--ndt-hover-bg);opacity:1}.tool-button ::ng-deep svg{width:24px;height:24px;display:block;margin:auto}.tool-button__badge{position:absolute;top:-.25rem;right:-.25rem;background-color:var(--ndt-hover-danger);color:var(--ndt-text-primary);border-radius:var(--ndt-border-radius-full);min-width:1rem;height:1rem;font-size:.75rem;display:flex;align-items:center;justify-content:center;padding:.125rem}.tooltip{position:absolute;bottom:calc(100% + 1.2rem);left:50%;transform:translate(-50%);background:var(--ndt-bg-primary);color:var(--ndt-text-primary);padding:.5rem .75rem;border-radius:var(--ndt-border-radius-medium);font-size:.75rem;white-space:nowrap;pointer-events:none;z-index:1000;box-shadow:var(--ndt-shadow-tooltip)}\n"], animations: [
|
|
1622
1830
|
trigger('tooltipAnimation', [
|
|
1623
1831
|
state('hidden', style({
|
|
1624
1832
|
opacity: 0,
|
|
@@ -1633,7 +1841,7 @@ class DevToolbarToolButtonComponent {
|
|
|
1633
1841
|
]),
|
|
1634
1842
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1635
1843
|
}
|
|
1636
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
1844
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarToolButtonComponent, decorators: [{
|
|
1637
1845
|
type: Component,
|
|
1638
1846
|
args: [{ selector: 'ndt-tool-button', standalone: true, template: `
|
|
1639
1847
|
<button
|
|
@@ -1669,20 +1877,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
1669
1877
|
transition('hidden => visible', [animate('200ms ease-out')]),
|
|
1670
1878
|
transition('visible => hidden', [animate('150ms ease-in')]),
|
|
1671
1879
|
]),
|
|
1672
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, styles: [".tool-button{display:flex;justify-content:center;align-items:center;width:44px;height:40px;border:0;background:transparent;color:var(--ndt-text-primary);transition:var(--ndt-transition-default);cursor:pointer;opacity:.5;position:relative}.tool-button--active,.tool-button:hover{background:var(--ndt-hover-bg);opacity:1}.tool-button ::ng-deep svg{width:24px;height:24px;display:block;margin:auto}.tool-button__badge{position:absolute;top:-.25rem;right:-.25rem;background-color:var(--ndt-hover-danger);color:var(--ndt-text-primary);border-radius:var(--ndt-border-radius-full);min-width:1rem;height:1rem;font-size:.75rem;display:flex;align-items:center;justify-content:center;padding:.125rem}.tooltip{position:absolute;bottom:calc(100% + 1.2rem);left:50%;transform:translate(-50%);background:var(--ndt-bg-primary);color:var(--ndt-text-primary);padding:.5rem .75rem;border-radius:var(--ndt-border-radius-medium);font-size:.75rem;white-space:nowrap;pointer-events:none;z-index:1000;box-shadow:var(--ndt-shadow-tooltip)}\n"] }]
|
|
1880
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2)}.tool-button{display:flex;justify-content:center;align-items:center;width:44px;height:40px;border:0;background:transparent;color:var(--ndt-text-primary);transition:var(--ndt-transition-default);cursor:pointer;opacity:.5;position:relative}.tool-button--active,.tool-button:hover{background:var(--ndt-hover-bg);opacity:1}.tool-button ::ng-deep svg{width:24px;height:24px;display:block;margin:auto}.tool-button__badge{position:absolute;top:-.25rem;right:-.25rem;background-color:var(--ndt-hover-danger);color:var(--ndt-text-primary);border-radius:var(--ndt-border-radius-full);min-width:1rem;height:1rem;font-size:.75rem;display:flex;align-items:center;justify-content:center;padding:.125rem}.tooltip{position:absolute;bottom:calc(100% + 1.2rem);left:50%;transform:translate(-50%);background:var(--ndt-bg-primary);color:var(--ndt-text-primary);padding:.5rem .75rem;border-radius:var(--ndt-border-radius-medium);font-size:.75rem;white-space:nowrap;pointer-events:none;z-index:1000;box-shadow:var(--ndt-shadow-tooltip)}\n"] }]
|
|
1673
1881
|
}] });
|
|
1674
1882
|
|
|
1675
1883
|
class DevToolbarWindowComponent {
|
|
1676
1884
|
constructor() {
|
|
1677
1885
|
this.devToolbarStateService = inject(DevToolbarStateService);
|
|
1678
1886
|
this.config = input.required();
|
|
1679
|
-
this.
|
|
1887
|
+
this.closed = output();
|
|
1680
1888
|
this.maximize = output();
|
|
1681
1889
|
this.minimize = output();
|
|
1682
1890
|
this.theme = computed(() => this.devToolbarStateService.theme());
|
|
1683
1891
|
}
|
|
1684
1892
|
onClose() {
|
|
1685
|
-
this.
|
|
1893
|
+
this.closed.emit();
|
|
1686
1894
|
}
|
|
1687
1895
|
onMaximize() {
|
|
1688
1896
|
this.maximize.emit();
|
|
@@ -1690,9 +1898,9 @@ class DevToolbarWindowComponent {
|
|
|
1690
1898
|
onMinimize() {
|
|
1691
1899
|
this.minimize.emit();
|
|
1692
1900
|
}
|
|
1693
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
1694
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.
|
|
1695
|
-
<div class="window
|
|
1901
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarWindowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1902
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: DevToolbarWindowComponent, isStandalone: true, selector: "ndt-window", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { closed: "closed", maximize: "maximize", minimize: "minimize" }, ngImport: i0, template: `
|
|
1903
|
+
<div class="ndt-window" [attr.data-theme]="theme()">
|
|
1696
1904
|
<div class="header">
|
|
1697
1905
|
<div class="header__content">
|
|
1698
1906
|
<div class="header__title">
|
|
@@ -1729,12 +1937,12 @@ class DevToolbarWindowComponent {
|
|
|
1729
1937
|
<ng-content></ng-content>
|
|
1730
1938
|
</div>
|
|
1731
1939
|
</div>
|
|
1732
|
-
`, isInline: true, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2);display:block;width:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\"}
|
|
1940
|
+
`, isInline: true, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2);display:block;width:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\"}.ndt-window{box-sizing:border-box;display:flex;flex-direction:column;width:100%;height:100%;background:var(--ndt-bg-primary);border:1px solid var(--ndt-border-primary);border-radius:var(--ndt-border-radius-large);padding:var(--ndt-window-padding);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";color:var(--ndt-text-secondary);z-index:999999999;box-shadow:var(--ndt-shadow-window)}.header{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start}.header h1{font-size:var(--ndt-font-size-lg);line-height:1.2;margin:0}.header__title{display:flex;align-items:center;gap:var(--ndt-spacing-sm)}.header__title .beta-tag{font-size:var(--ndt-font-size-xxs, .65rem);background:var(--ndt-purple, #8b5cf6);color:var(--ndt-text-on-primary);padding:1px 4px;margin-left:var(--ndt-spacing-xs);border-radius:var(--ndt-border-radius-small);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.header__description{font-size:var(--ndt-font-size-sm);color:var(--ndt-text-muted);word-wrap:break-word;overflow-wrap:break-word;max-width:100%;line-height:1.4;margin:0}.header__content{display:flex;flex-direction:column;gap:var(--ndt-spacing-xs)}.header__controls{display:flex;gap:var(--ndt-spacing-sm)}.content{flex:1;overflow:auto}.divider{height:1px;background-color:var(--ndt-border-primary);margin-bottom:var(--ndt-spacing-md);margin-top:var(--ndt-spacing-md)}.control{background:none;border:none;color:var(--ndt-text-secondary);cursor:pointer;padding:var(--ndt-spacing-xs) var(--ndt-spacing-sm);border-radius:var(--ndt-border-radius-small);font-size:var(--ndt-font-size-md);line-height:1;transition:var(--ndt-transition-smooth)}.control:hover{background:var(--ndt-hover-bg);color:var(--ndt-text-primary)}.control--close:hover{background:var(--ndt-hover-danger)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1733
1941
|
}
|
|
1734
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
1942
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarWindowComponent, decorators: [{
|
|
1735
1943
|
type: Component,
|
|
1736
|
-
args: [{ selector: 'ndt-window', standalone: true,
|
|
1737
|
-
<div class="window
|
|
1944
|
+
args: [{ selector: 'ndt-window', standalone: true, template: `
|
|
1945
|
+
<div class="ndt-window" [attr.data-theme]="theme()">
|
|
1738
1946
|
<div class="header">
|
|
1739
1947
|
<div class="header__content">
|
|
1740
1948
|
<div class="header__title">
|
|
@@ -1771,12 +1979,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
1771
1979
|
<ng-content></ng-content>
|
|
1772
1980
|
</div>
|
|
1773
1981
|
</div>
|
|
1774
|
-
`, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2);display:block;width:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\"}
|
|
1982
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2);display:block;width:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\"}.ndt-window{box-sizing:border-box;display:flex;flex-direction:column;width:100%;height:100%;background:var(--ndt-bg-primary);border:1px solid var(--ndt-border-primary);border-radius:var(--ndt-border-radius-large);padding:var(--ndt-window-padding);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";color:var(--ndt-text-secondary);z-index:999999999;box-shadow:var(--ndt-shadow-window)}.header{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start}.header h1{font-size:var(--ndt-font-size-lg);line-height:1.2;margin:0}.header__title{display:flex;align-items:center;gap:var(--ndt-spacing-sm)}.header__title .beta-tag{font-size:var(--ndt-font-size-xxs, .65rem);background:var(--ndt-purple, #8b5cf6);color:var(--ndt-text-on-primary);padding:1px 4px;margin-left:var(--ndt-spacing-xs);border-radius:var(--ndt-border-radius-small);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.header__description{font-size:var(--ndt-font-size-sm);color:var(--ndt-text-muted);word-wrap:break-word;overflow-wrap:break-word;max-width:100%;line-height:1.4;margin:0}.header__content{display:flex;flex-direction:column;gap:var(--ndt-spacing-xs)}.header__controls{display:flex;gap:var(--ndt-spacing-sm)}.content{flex:1;overflow:auto}.divider{height:1px;background-color:var(--ndt-border-primary);margin-bottom:var(--ndt-spacing-md);margin-top:var(--ndt-spacing-md)}.control{background:none;border:none;color:var(--ndt-text-secondary);cursor:pointer;padding:var(--ndt-spacing-xs) var(--ndt-spacing-sm);border-radius:var(--ndt-border-radius-small);font-size:var(--ndt-font-size-md);line-height:1;transition:var(--ndt-transition-smooth)}.control:hover{background:var(--ndt-hover-bg);color:var(--ndt-text-primary)}.control--close:hover{background:var(--ndt-hover-danger)}\n"] }]
|
|
1775
1983
|
}] });
|
|
1776
1984
|
|
|
1777
1985
|
class DevToolbarToolComponent {
|
|
1778
1986
|
constructor() {
|
|
1779
1987
|
this.state = inject(DevToolbarStateService);
|
|
1988
|
+
this.buttonContainer = viewChild.required('buttonContainer');
|
|
1989
|
+
this.buttonComponent = contentChild(DevToolbarToolButtonComponent);
|
|
1780
1990
|
this.options = input.required();
|
|
1781
1991
|
this.icon = input.required();
|
|
1782
1992
|
this.title = input.required();
|
|
@@ -1832,14 +2042,14 @@ class DevToolbarToolComponent {
|
|
|
1832
2042
|
this.state.setActiveTool(null);
|
|
1833
2043
|
}
|
|
1834
2044
|
getButtonContainerXPosition() {
|
|
1835
|
-
const buttonContainerRect = this.buttonContainer?.nativeElement?.getBoundingClientRect();
|
|
2045
|
+
const buttonContainerRect = this.buttonContainer()?.nativeElement?.getBoundingClientRect();
|
|
1836
2046
|
return buttonContainerRect?.left ?? 0;
|
|
1837
2047
|
}
|
|
1838
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
1839
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.
|
|
1840
|
-
<div #trigger="cdkOverlayOrigin" class="
|
|
2048
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2049
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: DevToolbarToolComponent, isStandalone: true, selector: "ndt-toolbar-tool", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null } }, queries: [{ propertyName: "buttonComponent", first: true, predicate: DevToolbarToolButtonComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "buttonContainer", first: true, predicate: ["buttonContainer"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
2050
|
+
<div #trigger="cdkOverlayOrigin" class="ndt-toolbar-tool" cdkOverlayOrigin>
|
|
1841
2051
|
<div
|
|
1842
|
-
class="
|
|
2052
|
+
class="ndt-toolbar-tool__icon"
|
|
1843
2053
|
(click)="onOpen()"
|
|
1844
2054
|
(keydown.enter)="onOpen()"
|
|
1845
2055
|
(keydown.space)="onOpen()"
|
|
@@ -1864,15 +2074,16 @@ class DevToolbarToolComponent {
|
|
|
1864
2074
|
[cdkConnectedOverlayPositions]="positions()"
|
|
1865
2075
|
[cdkConnectedOverlayWidth]="width()"
|
|
1866
2076
|
[cdkConnectedOverlayHeight]="height()"
|
|
2077
|
+
[cdkConnectedOverlayPanelClass]="['ndt-overlay-panel', 'ndt-tool-overlay']"
|
|
1867
2078
|
cdkConnectedOverlay
|
|
1868
2079
|
>
|
|
1869
|
-
<ndt-window [@slideAnimation] [config]="options()" (
|
|
2080
|
+
<ndt-window [@slideAnimation] [config]="options()" (closed)="onClose()">
|
|
1870
2081
|
<ng-content />
|
|
1871
2082
|
</ndt-window>
|
|
1872
2083
|
</ng-template>
|
|
1873
2084
|
}
|
|
1874
2085
|
</div>
|
|
1875
|
-
`, isInline: true, styles: [".tool{position:relative}.trigger{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: DevToolbarWindowComponent, selector: "ndt-window", inputs: ["config"], outputs: ["
|
|
2086
|
+
`, isInline: true, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2)}.tool{position:relative}.trigger{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: DevToolbarWindowComponent, selector: "ndt-window", inputs: ["config"], outputs: ["closed", "maximize", "minimize"] }, { kind: "component", type: DevToolbarToolButtonComponent, selector: "ndt-tool-button", inputs: ["title", "toolId"], outputs: ["open"] }, { kind: "component", type: DevToolbarIconComponent, selector: "ndt-icon", inputs: ["name"] }], animations: [
|
|
1876
2087
|
trigger('slideAnimation', [
|
|
1877
2088
|
transition(':enter', [
|
|
1878
2089
|
style({
|
|
@@ -1897,7 +2108,7 @@ class DevToolbarToolComponent {
|
|
|
1897
2108
|
]),
|
|
1898
2109
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1899
2110
|
}
|
|
1900
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
2111
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarToolComponent, decorators: [{
|
|
1901
2112
|
type: Component,
|
|
1902
2113
|
args: [{ selector: 'ndt-toolbar-tool', standalone: true, imports: [
|
|
1903
2114
|
CdkConnectedOverlay,
|
|
@@ -1906,9 +2117,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
1906
2117
|
DevToolbarToolButtonComponent,
|
|
1907
2118
|
DevToolbarIconComponent,
|
|
1908
2119
|
], template: `
|
|
1909
|
-
<div #trigger="cdkOverlayOrigin" class="
|
|
2120
|
+
<div #trigger="cdkOverlayOrigin" class="ndt-toolbar-tool" cdkOverlayOrigin>
|
|
1910
2121
|
<div
|
|
1911
|
-
class="
|
|
2122
|
+
class="ndt-toolbar-tool__icon"
|
|
1912
2123
|
(click)="onOpen()"
|
|
1913
2124
|
(keydown.enter)="onOpen()"
|
|
1914
2125
|
(keydown.space)="onOpen()"
|
|
@@ -1933,9 +2144,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
1933
2144
|
[cdkConnectedOverlayPositions]="positions()"
|
|
1934
2145
|
[cdkConnectedOverlayWidth]="width()"
|
|
1935
2146
|
[cdkConnectedOverlayHeight]="height()"
|
|
2147
|
+
[cdkConnectedOverlayPanelClass]="['ndt-overlay-panel', 'ndt-tool-overlay']"
|
|
1936
2148
|
cdkConnectedOverlay
|
|
1937
2149
|
>
|
|
1938
|
-
<ndt-window [@slideAnimation] [config]="options()" (
|
|
2150
|
+
<ndt-window [@slideAnimation] [config]="options()" (closed)="onClose()">
|
|
1939
2151
|
<ng-content />
|
|
1940
2152
|
</ndt-window>
|
|
1941
2153
|
</ng-template>
|
|
@@ -1964,14 +2176,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
1964
2176
|
})),
|
|
1965
2177
|
]),
|
|
1966
2178
|
]),
|
|
1967
|
-
], styles: [".tool{position:relative}.trigger{cursor:pointer}\n"] }]
|
|
1968
|
-
}]
|
|
1969
|
-
type: ViewChild,
|
|
1970
|
-
args: ['buttonContainer']
|
|
1971
|
-
}], buttonComponent: [{
|
|
1972
|
-
type: ContentChild,
|
|
1973
|
-
args: [DevToolbarToolButtonComponent]
|
|
1974
|
-
}] } });
|
|
2179
|
+
], styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2)}.tool{position:relative}.trigger{cursor:pointer}\n"] }]
|
|
2180
|
+
}] });
|
|
1975
2181
|
|
|
1976
2182
|
class DevToolbarInputComponent {
|
|
1977
2183
|
constructor() {
|
|
@@ -1981,8 +2187,8 @@ class DevToolbarInputComponent {
|
|
|
1981
2187
|
this.ariaLabel = input('');
|
|
1982
2188
|
this.inputClass = input('input');
|
|
1983
2189
|
}
|
|
1984
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
1985
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
2190
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2191
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: DevToolbarInputComponent, isStandalone: true, selector: "ndt-input", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, inputClass: { classPropertyName: "inputClass", publicName: "inputClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, ngImport: i0, template: `
|
|
1986
2192
|
<input
|
|
1987
2193
|
[attr.aria-label]="ariaLabel()"
|
|
1988
2194
|
[type]="type()"
|
|
@@ -1991,9 +2197,9 @@ class DevToolbarInputComponent {
|
|
|
1991
2197
|
[placeholder]="placeholder()"
|
|
1992
2198
|
(ngModelChange)="value.set($event)"
|
|
1993
2199
|
/>
|
|
1994
|
-
`, isInline: true, styles: [":host{display:block}.input{width:100%;padding:var(--ndt-spacing-sm) var(--ndt-spacing-md);border:1px solid var(--ndt-border-primary);border-radius:var(--ndt-border-radius-small);background-color:var(--ndt-bg-primary);color:var(--ndt-text-primary);font-size:var(--ndt-font-size-sm);transition:var(--ndt-transition-default);box-sizing:border-box;min-height:36px}.input::placeholder{color:var(--ndt-text-muted)}.input:focus{outline:none;border-color:var(--ndt-primary);box-shadow:0 0 0 2px rgba(var(--ndt-primary-rgb),.2)}.input:disabled{background-color:var(--ndt-bg-secondary);cursor:not-allowed;color:var(--ndt-text-muted)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2200
|
+
`, isInline: true, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2);display:block}.input{width:100%;padding:var(--ndt-spacing-sm) var(--ndt-spacing-md);border:1px solid var(--ndt-border-primary);border-radius:var(--ndt-border-radius-small);background-color:var(--ndt-bg-primary);color:var(--ndt-text-primary);font-size:var(--ndt-font-size-sm);transition:var(--ndt-transition-default);box-sizing:border-box;min-height:36px}.input::placeholder{color:var(--ndt-text-muted)}.input:focus{outline:none;border-color:var(--ndt-primary);box-shadow:0 0 0 2px rgba(var(--ndt-primary-rgb),.2)}.input:disabled{background-color:var(--ndt-bg-secondary);cursor:not-allowed;color:var(--ndt-text-muted)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1995
2201
|
}
|
|
1996
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
2202
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarInputComponent, decorators: [{
|
|
1997
2203
|
type: Component,
|
|
1998
2204
|
args: [{ selector: 'ndt-input', standalone: true, imports: [FormsModule], template: `
|
|
1999
2205
|
<input
|
|
@@ -2004,7 +2210,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
2004
2210
|
[placeholder]="placeholder()"
|
|
2005
2211
|
(ngModelChange)="value.set($event)"
|
|
2006
2212
|
/>
|
|
2007
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}.input{width:100%;padding:var(--ndt-spacing-sm) var(--ndt-spacing-md);border:1px solid var(--ndt-border-primary);border-radius:var(--ndt-border-radius-small);background-color:var(--ndt-bg-primary);color:var(--ndt-text-primary);font-size:var(--ndt-font-size-sm);transition:var(--ndt-transition-default);box-sizing:border-box;min-height:36px}.input::placeholder{color:var(--ndt-text-muted)}.input:focus{outline:none;border-color:var(--ndt-primary);box-shadow:0 0 0 2px rgba(var(--ndt-primary-rgb),.2)}.input:disabled{background-color:var(--ndt-bg-secondary);cursor:not-allowed;color:var(--ndt-text-muted)}\n"] }]
|
|
2213
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2);display:block}.input{width:100%;padding:var(--ndt-spacing-sm) var(--ndt-spacing-md);border:1px solid var(--ndt-border-primary);border-radius:var(--ndt-border-radius-small);background-color:var(--ndt-bg-primary);color:var(--ndt-text-primary);font-size:var(--ndt-font-size-sm);transition:var(--ndt-transition-default);box-sizing:border-box;min-height:36px}.input::placeholder{color:var(--ndt-text-muted)}.input:focus{outline:none;border-color:var(--ndt-primary);box-shadow:0 0 0 2px rgba(var(--ndt-primary-rgb),.2)}.input:disabled{background-color:var(--ndt-bg-secondary);cursor:not-allowed;color:var(--ndt-text-muted)}\n"] }]
|
|
2008
2214
|
}] });
|
|
2009
2215
|
|
|
2010
2216
|
class DevToolbarSelectComponent {
|
|
@@ -2051,10 +2257,10 @@ class DevToolbarSelectComponent {
|
|
|
2051
2257
|
this.value.set(option.value);
|
|
2052
2258
|
this.close();
|
|
2053
2259
|
}
|
|
2054
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
2055
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.
|
|
2260
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2261
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: DevToolbarSelectComponent, isStandalone: true, selector: "ndt-select", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, ngImport: i0, template: `
|
|
2056
2262
|
<div
|
|
2057
|
-
class="
|
|
2263
|
+
class="ndt-select"
|
|
2058
2264
|
[class.small]="size() === 'small'"
|
|
2059
2265
|
[class.open]="isOpen()"
|
|
2060
2266
|
[attr.aria-label]="ariaLabel()"
|
|
@@ -2078,11 +2284,12 @@ class DevToolbarSelectComponent {
|
|
|
2078
2284
|
[cdkConnectedOverlayOrigin]="trigger"
|
|
2079
2285
|
[cdkConnectedOverlayOpen]="isOpen()"
|
|
2080
2286
|
[cdkConnectedOverlayPositions]="positions"
|
|
2287
|
+
[cdkConnectedOverlayPanelClass]="['ndt-overlay-panel', 'ndt-select-overlay']"
|
|
2081
2288
|
(overlayOutsideClick)="close()"
|
|
2082
2289
|
>
|
|
2083
2290
|
<div
|
|
2084
2291
|
[id]="selectMenuId"
|
|
2085
|
-
class="
|
|
2292
|
+
class="ndt-select-menu"
|
|
2086
2293
|
cdkMenu
|
|
2087
2294
|
role="listbox"
|
|
2088
2295
|
[attr.data-theme]="theme()"
|
|
@@ -2101,13 +2308,13 @@ class DevToolbarSelectComponent {
|
|
|
2101
2308
|
}
|
|
2102
2309
|
</div>
|
|
2103
2310
|
</ng-template>
|
|
2104
|
-
`, isInline: true, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2);display:inline-block;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\"}
|
|
2311
|
+
`, isInline: true, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2);display:inline-block;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\"}.ndt-select{position:relative;width:100%;min-width:120px;display:flex;align-items:center;justify-content:space-between;padding:var(--ndt-spacing-sm) var(--ndt-spacing-md);border:1px solid var(--ndt-border-primary);border-radius:var(--ndt-border-radius-small);background-color:var(--ndt-bg-primary);color:var(--ndt-text-primary);font-size:var(--ndt-font-size-sm);cursor:pointer;-webkit-user-select:none;user-select:none;transition:var(--ndt-transition-default);outline:none;min-height:36px;box-sizing:border-box;box-shadow:0 1px 2px #0000000d}.ndt-select:hover{background-color:var(--ndt-hover-bg);border-color:var(--ndt-primary);box-shadow:0 1px 3px #0000001a}.ndt-select:focus-visible{outline:none;border-color:var(--ndt-primary);box-shadow:0 0 0 2px rgba(var(--ndt-primary-rgb),.2),0 1px 3px #0000001a}.ndt-select.small{padding:var(--ndt-spacing-xs) var(--ndt-spacing-sm);font-size:var(--ndt-font-size-sm);height:24px}.ndt-select.open{border-color:var(--ndt-primary);box-shadow:0 0 0 2px rgba(var(--ndt-primary-rgb),.2),0 1px 3px #0000001a}.ndt-select.open .select__arrow{transform:rotate(180deg)}.ndt-select__value{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4;margin-right:var(--ndt-spacing-sm);min-width:0;display:flex;align-items:center}.ndt-select__arrow{width:16px;height:16px;flex-shrink:0;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:center;background-size:contain;transition:transform .2s ease;opacity:.9}.ndt-select-menu{display:inline-flex;flex-direction:column;min-width:180px;background-color:var(--ndt-bg-primary);padding:var(--ndt-spacing-sm) 0;border:2px solid var(--ndt-border-primary);border-radius:var(--ndt-border-radius-large);box-shadow:0 4px 12px #00000026,0 2px 4px #0000001a;color:var(--ndt-text-primary);max-height:min(400px,70vh);overflow-y:auto;backdrop-filter:blur(8px);z-index:1000}.ndt-select-menu::-webkit-scrollbar{width:8px;height:8px}.ndt-select-menu::-webkit-scrollbar-track{background:transparent}.ndt-select-menu::-webkit-scrollbar-thumb{background-color:var(--ndt-border-primary);border-radius:4px;border:2px solid var(--ndt-bg-primary)}.ndt-select-menu::-webkit-scrollbar-thumb:hover{background-color:var(--ndt-text-secondary)}.select-menu-item{background-color:transparent;cursor:pointer;border:none;color:var(--ndt-text-primary);-webkit-user-select:none;user-select:none;min-width:64px;padding:var(--ndt-spacing-sm) var(--ndt-spacing-md) var(--ndt-spacing-sm) var(--ndt-spacing-lg);display:flex;align-items:center;flex-direction:row;flex:1;font-size:var(--ndt-font-size-xs);font-family:inherit;position:relative;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-weight:400;line-height:1.5;transition:background-color .15s ease}.select-menu-item:hover{background-color:#0000000f}.select-menu-item:active{background-color:rgba(var(--ndt-primary-rgb),.15)}.select-menu-item.selected{color:var(--ndt-primary);background-color:rgba(var(--ndt-primary-rgb),.08);font-weight:400}.select-menu-item.selected:hover{background-color:rgba(var(--ndt-primary-rgb),.12)}.select-menu-item.selected:before{content:\"\";position:absolute;left:0;top:8px;width:3px;height:calc(100% - 16px);background-color:var(--ndt-primary);border-radius:2px}.select-menu-item:focus-visible{outline:none;background-color:#0000000f}.select-menu-item:first-child{margin-top:var(--ndt-spacing-xs)}.select-menu-item:last-child{margin-bottom:var(--ndt-spacing-xs)}.select-overlay{backdrop-filter:blur(8px)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: CdkMenuModule }, { kind: "directive", type: i2.CdkMenu, selector: "[cdkMenu]", outputs: ["closed"], exportAs: ["cdkMenu"] }, { kind: "directive", type: i2.CdkMenuItem, selector: "[cdkMenuItem]", inputs: ["cdkMenuItemDisabled", "cdkMenuitemTypeaheadLabel"], outputs: ["cdkMenuItemTriggered"], exportAs: ["cdkMenuItem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2105
2312
|
}
|
|
2106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
2313
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarSelectComponent, decorators: [{
|
|
2107
2314
|
type: Component,
|
|
2108
|
-
args: [{ selector: 'ndt-select', standalone: true,
|
|
2315
|
+
args: [{ selector: 'ndt-select', standalone: true, imports: [CommonModule, FormsModule, OverlayModule, CdkMenuModule], template: `
|
|
2109
2316
|
<div
|
|
2110
|
-
class="
|
|
2317
|
+
class="ndt-select"
|
|
2111
2318
|
[class.small]="size() === 'small'"
|
|
2112
2319
|
[class.open]="isOpen()"
|
|
2113
2320
|
[attr.aria-label]="ariaLabel()"
|
|
@@ -2131,11 +2338,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
2131
2338
|
[cdkConnectedOverlayOrigin]="trigger"
|
|
2132
2339
|
[cdkConnectedOverlayOpen]="isOpen()"
|
|
2133
2340
|
[cdkConnectedOverlayPositions]="positions"
|
|
2341
|
+
[cdkConnectedOverlayPanelClass]="['ndt-overlay-panel', 'ndt-select-overlay']"
|
|
2134
2342
|
(overlayOutsideClick)="close()"
|
|
2135
2343
|
>
|
|
2136
2344
|
<div
|
|
2137
2345
|
[id]="selectMenuId"
|
|
2138
|
-
class="
|
|
2346
|
+
class="ndt-select-menu"
|
|
2139
2347
|
cdkMenu
|
|
2140
2348
|
role="listbox"
|
|
2141
2349
|
[attr.data-theme]="theme()"
|
|
@@ -2154,7 +2362,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
2154
2362
|
}
|
|
2155
2363
|
</div>
|
|
2156
2364
|
</ng-template>
|
|
2157
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2);display:inline-block;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\"}
|
|
2365
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2);display:inline-block;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\"}.ndt-select{position:relative;width:100%;min-width:120px;display:flex;align-items:center;justify-content:space-between;padding:var(--ndt-spacing-sm) var(--ndt-spacing-md);border:1px solid var(--ndt-border-primary);border-radius:var(--ndt-border-radius-small);background-color:var(--ndt-bg-primary);color:var(--ndt-text-primary);font-size:var(--ndt-font-size-sm);cursor:pointer;-webkit-user-select:none;user-select:none;transition:var(--ndt-transition-default);outline:none;min-height:36px;box-sizing:border-box;box-shadow:0 1px 2px #0000000d}.ndt-select:hover{background-color:var(--ndt-hover-bg);border-color:var(--ndt-primary);box-shadow:0 1px 3px #0000001a}.ndt-select:focus-visible{outline:none;border-color:var(--ndt-primary);box-shadow:0 0 0 2px rgba(var(--ndt-primary-rgb),.2),0 1px 3px #0000001a}.ndt-select.small{padding:var(--ndt-spacing-xs) var(--ndt-spacing-sm);font-size:var(--ndt-font-size-sm);height:24px}.ndt-select.open{border-color:var(--ndt-primary);box-shadow:0 0 0 2px rgba(var(--ndt-primary-rgb),.2),0 1px 3px #0000001a}.ndt-select.open .select__arrow{transform:rotate(180deg)}.ndt-select__value{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4;margin-right:var(--ndt-spacing-sm);min-width:0;display:flex;align-items:center}.ndt-select__arrow{width:16px;height:16px;flex-shrink:0;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:center;background-size:contain;transition:transform .2s ease;opacity:.9}.ndt-select-menu{display:inline-flex;flex-direction:column;min-width:180px;background-color:var(--ndt-bg-primary);padding:var(--ndt-spacing-sm) 0;border:2px solid var(--ndt-border-primary);border-radius:var(--ndt-border-radius-large);box-shadow:0 4px 12px #00000026,0 2px 4px #0000001a;color:var(--ndt-text-primary);max-height:min(400px,70vh);overflow-y:auto;backdrop-filter:blur(8px);z-index:1000}.ndt-select-menu::-webkit-scrollbar{width:8px;height:8px}.ndt-select-menu::-webkit-scrollbar-track{background:transparent}.ndt-select-menu::-webkit-scrollbar-thumb{background-color:var(--ndt-border-primary);border-radius:4px;border:2px solid var(--ndt-bg-primary)}.ndt-select-menu::-webkit-scrollbar-thumb:hover{background-color:var(--ndt-text-secondary)}.select-menu-item{background-color:transparent;cursor:pointer;border:none;color:var(--ndt-text-primary);-webkit-user-select:none;user-select:none;min-width:64px;padding:var(--ndt-spacing-sm) var(--ndt-spacing-md) var(--ndt-spacing-sm) var(--ndt-spacing-lg);display:flex;align-items:center;flex-direction:row;flex:1;font-size:var(--ndt-font-size-xs);font-family:inherit;position:relative;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-weight:400;line-height:1.5;transition:background-color .15s ease}.select-menu-item:hover{background-color:#0000000f}.select-menu-item:active{background-color:rgba(var(--ndt-primary-rgb),.15)}.select-menu-item.selected{color:var(--ndt-primary);background-color:rgba(var(--ndt-primary-rgb),.08);font-weight:400}.select-menu-item.selected:hover{background-color:rgba(var(--ndt-primary-rgb),.12)}.select-menu-item.selected:before{content:\"\";position:absolute;left:0;top:8px;width:3px;height:calc(100% - 16px);background-color:var(--ndt-primary);border-radius:2px}.select-menu-item:focus-visible{outline:none;background-color:#0000000f}.select-menu-item:first-child{margin-top:var(--ndt-spacing-xs)}.select-menu-item:last-child{margin-bottom:var(--ndt-spacing-xs)}.select-overlay{backdrop-filter:blur(8px)}\n"] }]
|
|
2158
2366
|
}] });
|
|
2159
2367
|
|
|
2160
2368
|
class DevToolsStorageService {
|
|
@@ -2222,10 +2430,10 @@ class DevToolsStorageService {
|
|
|
2222
2430
|
getToolKey(key) {
|
|
2223
2431
|
return key.includes(this.PREFIX) ? key : this.PREFIX + key;
|
|
2224
2432
|
}
|
|
2225
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
2226
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.
|
|
2433
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolsStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2434
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolsStorageService, providedIn: 'root' }); }
|
|
2227
2435
|
}
|
|
2228
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
2436
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolsStorageService, decorators: [{
|
|
2229
2437
|
type: Injectable,
|
|
2230
2438
|
args: [{ providedIn: 'root' }]
|
|
2231
2439
|
}] });
|
|
@@ -2398,6 +2606,7 @@ class DevToolbarInternalAppFeaturesService {
|
|
|
2398
2606
|
...feature,
|
|
2399
2607
|
isEnabled: isInEnabled ? true : isInDisabled ? false : feature.isEnabled,
|
|
2400
2608
|
isForced,
|
|
2609
|
+
originalValue: isForced ? feature.isEnabled : undefined,
|
|
2401
2610
|
};
|
|
2402
2611
|
});
|
|
2403
2612
|
}
|
|
@@ -2452,10 +2661,10 @@ class DevToolbarInternalAppFeaturesService {
|
|
|
2452
2661
|
this.saveForcedFeatures(cleanedState);
|
|
2453
2662
|
}
|
|
2454
2663
|
}
|
|
2455
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
2456
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.
|
|
2664
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarInternalAppFeaturesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2665
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarInternalAppFeaturesService, providedIn: 'root' }); }
|
|
2457
2666
|
}
|
|
2458
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
2667
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarInternalAppFeaturesService, decorators: [{
|
|
2459
2668
|
type: Injectable,
|
|
2460
2669
|
args: [{ providedIn: 'root' }]
|
|
2461
2670
|
}], ctorParameters: () => [] });
|
|
@@ -2484,7 +2693,7 @@ class DevToolbarAppFeaturesToolComponent {
|
|
|
2484
2693
|
this.features = this.appFeaturesService.features;
|
|
2485
2694
|
this.hasNoFeatures = computed(() => this.features().length === 0);
|
|
2486
2695
|
this.filteredFeatures = computed(() => {
|
|
2487
|
-
|
|
2696
|
+
const filtered = this.features().filter((feature) => {
|
|
2488
2697
|
const searchTerm = this.searchQuery().toLowerCase();
|
|
2489
2698
|
const featureName = feature.name.toLowerCase();
|
|
2490
2699
|
const featureDescription = feature.description?.toLowerCase() ?? '';
|
|
@@ -2497,6 +2706,8 @@ class DevToolbarAppFeaturesToolComponent {
|
|
|
2497
2706
|
(this.activeFilter() === 'disabled' && !feature.isEnabled);
|
|
2498
2707
|
return matchesSearch && matchesFilter;
|
|
2499
2708
|
});
|
|
2709
|
+
// Sort alphabetically by name
|
|
2710
|
+
return filtered.sort((a, b) => a.name.localeCompare(b.name));
|
|
2500
2711
|
});
|
|
2501
2712
|
this.hasNoFilteredFeatures = computed(() => this.filteredFeatures().length === 0);
|
|
2502
2713
|
// Other properties
|
|
@@ -2514,7 +2725,7 @@ class DevToolbarAppFeaturesToolComponent {
|
|
|
2514
2725
|
{ value: 'disabled', label: 'Disabled' },
|
|
2515
2726
|
];
|
|
2516
2727
|
this.featureValueOptions = [
|
|
2517
|
-
{ value: '', label: 'Not Forced' },
|
|
2728
|
+
{ value: 'not-forced', label: 'Not Forced' },
|
|
2518
2729
|
{ value: 'off', label: 'Disabled' },
|
|
2519
2730
|
{ value: 'on', label: 'Enabled' },
|
|
2520
2731
|
];
|
|
@@ -2532,13 +2743,13 @@ class DevToolbarAppFeaturesToolComponent {
|
|
|
2532
2743
|
}
|
|
2533
2744
|
/**
|
|
2534
2745
|
* Handle feature value change from 3-state dropdown.
|
|
2535
|
-
* - 'not-forced'
|
|
2746
|
+
* - 'not-forced': Remove forced override
|
|
2536
2747
|
* - 'on': Force feature to enabled
|
|
2537
2748
|
* - 'off': Force feature to disabled
|
|
2538
2749
|
*/
|
|
2539
2750
|
onFeatureChange(featureId, value) {
|
|
2540
2751
|
switch (value) {
|
|
2541
|
-
case '':
|
|
2752
|
+
case 'not-forced':
|
|
2542
2753
|
this.appFeaturesService.removeFeatureOverride(featureId);
|
|
2543
2754
|
break;
|
|
2544
2755
|
case 'on':
|
|
@@ -2568,8 +2779,8 @@ class DevToolbarAppFeaturesToolComponent {
|
|
|
2568
2779
|
return '';
|
|
2569
2780
|
return feature.isEnabled ? 'on' : 'off';
|
|
2570
2781
|
}
|
|
2571
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
2572
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.
|
|
2782
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarAppFeaturesToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2783
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: DevToolbarAppFeaturesToolComponent, isStandalone: true, selector: "ndt-app-features-tool", ngImport: i0, template: `
|
|
2573
2784
|
<ndt-toolbar-tool
|
|
2574
2785
|
[options]="options"
|
|
2575
2786
|
title="App Features"
|
|
@@ -2593,42 +2804,36 @@ class DevToolbarAppFeaturesToolComponent {
|
|
|
2593
2804
|
</div>
|
|
2594
2805
|
</div>
|
|
2595
2806
|
|
|
2596
|
-
|
|
2597
|
-
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
|
|
2602
|
-
|
|
2603
|
-
<p>No features match your filter</p>
|
|
2604
|
-
</div>
|
|
2605
|
-
} @else {
|
|
2606
|
-
<div class="feature-list">
|
|
2807
|
+
<ndt-list
|
|
2808
|
+
[hasItems]="!hasNoFeatures()"
|
|
2809
|
+
[hasResults]="!hasNoFilteredFeatures()"
|
|
2810
|
+
emptyMessage="No app features found"
|
|
2811
|
+
[emptyHint]="'Call setAvailableOptions() to configure features'"
|
|
2812
|
+
noResultsMessage="No features match your filter"
|
|
2813
|
+
>
|
|
2607
2814
|
@for (feature of filteredFeatures(); track feature.id) {
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
</div>
|
|
2815
|
+
<ndt-list-item
|
|
2816
|
+
[title]="feature.name"
|
|
2817
|
+
[description]="feature.description"
|
|
2818
|
+
[isForced]="feature.isForced"
|
|
2819
|
+
[currentValue]="feature.isEnabled"
|
|
2820
|
+
[originalValue]="feature.originalValue"
|
|
2821
|
+
>
|
|
2822
|
+
<ndt-select
|
|
2823
|
+
[value]="getFeatureValue(feature)"
|
|
2824
|
+
[options]="featureValueOptions"
|
|
2825
|
+
[ariaLabel]="'Set value for ' + feature.name"
|
|
2826
|
+
(valueChange)="onFeatureChange(feature.id, $event ?? '')"
|
|
2827
|
+
size="small"
|
|
2828
|
+
/>
|
|
2829
|
+
</ndt-list-item>
|
|
2624
2830
|
}
|
|
2625
|
-
</
|
|
2626
|
-
}
|
|
2831
|
+
</ndt-list>
|
|
2627
2832
|
</div>
|
|
2628
2833
|
</ndt-toolbar-tool>
|
|
2629
|
-
`, isInline: true, styles: [".container{display:flex;flex-direction:column;height:100%}.header{flex-shrink:0;display:flex;gap:var(--ndt-spacing-sm);margin-bottom:var(--ndt-spacing-md)
|
|
2834
|
+
`, isInline: true, styles: [".container{display:flex;flex-direction:column;height:100%}.header{flex-shrink:0;display:flex;gap:var(--ndt-spacing-sm);margin-bottom:var(--ndt-spacing-md);ndt-input{flex:1}.filter-wrapper{flex:0 0 auto;display:flex;align-items:center;gap:var(--ndt-spacing-md);.filter-icon{width:18px;height:18px;flex-shrink:0;opacity:.6}ndt-select{flex:0 0 auto;min-width:180px}}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "component", type: DevToolbarToolComponent, selector: "ndt-toolbar-tool", inputs: ["options", "icon", "title"] }, { kind: "component", type: DevToolbarInputComponent, selector: "ndt-input", inputs: ["value", "type", "placeholder", "ariaLabel", "inputClass"], outputs: ["valueChange"] }, { kind: "component", type: DevToolbarSelectComponent, selector: "ndt-select", inputs: ["value", "options", "ariaLabel", "label", "size"], outputs: ["valueChange"] }, { kind: "component", type: DevToolbarIconComponent, selector: "ndt-icon", inputs: ["name"] }, { kind: "component", type: DevToolbarListComponent, selector: "ndt-list", inputs: ["hasItems", "hasResults", "emptyMessage", "emptyHint", "noResultsMessage"] }, { kind: "component", type: DevToolbarListItemComponent, selector: "ndt-list-item", inputs: ["title", "description", "isForced", "currentValue", "originalValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2630
2835
|
}
|
|
2631
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
2836
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarAppFeaturesToolComponent, decorators: [{
|
|
2632
2837
|
type: Component,
|
|
2633
2838
|
args: [{ selector: 'ndt-app-features-tool', standalone: true, imports: [
|
|
2634
2839
|
FormsModule,
|
|
@@ -2636,6 +2841,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
2636
2841
|
DevToolbarInputComponent,
|
|
2637
2842
|
DevToolbarSelectComponent,
|
|
2638
2843
|
DevToolbarIconComponent,
|
|
2844
|
+
DevToolbarListComponent,
|
|
2845
|
+
DevToolbarListItemComponent,
|
|
2639
2846
|
], template: `
|
|
2640
2847
|
<ndt-toolbar-tool
|
|
2641
2848
|
[options]="options"
|
|
@@ -2660,40 +2867,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
2660
2867
|
</div>
|
|
2661
2868
|
</div>
|
|
2662
2869
|
|
|
2663
|
-
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
<p>No features match your filter</p>
|
|
2671
|
-
</div>
|
|
2672
|
-
} @else {
|
|
2673
|
-
<div class="feature-list">
|
|
2870
|
+
<ndt-list
|
|
2871
|
+
[hasItems]="!hasNoFeatures()"
|
|
2872
|
+
[hasResults]="!hasNoFilteredFeatures()"
|
|
2873
|
+
emptyMessage="No app features found"
|
|
2874
|
+
[emptyHint]="'Call setAvailableOptions() to configure features'"
|
|
2875
|
+
noResultsMessage="No features match your filter"
|
|
2876
|
+
>
|
|
2674
2877
|
@for (feature of filteredFeatures(); track feature.id) {
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
</div>
|
|
2878
|
+
<ndt-list-item
|
|
2879
|
+
[title]="feature.name"
|
|
2880
|
+
[description]="feature.description"
|
|
2881
|
+
[isForced]="feature.isForced"
|
|
2882
|
+
[currentValue]="feature.isEnabled"
|
|
2883
|
+
[originalValue]="feature.originalValue"
|
|
2884
|
+
>
|
|
2885
|
+
<ndt-select
|
|
2886
|
+
[value]="getFeatureValue(feature)"
|
|
2887
|
+
[options]="featureValueOptions"
|
|
2888
|
+
[ariaLabel]="'Set value for ' + feature.name"
|
|
2889
|
+
(valueChange)="onFeatureChange(feature.id, $event ?? '')"
|
|
2890
|
+
size="small"
|
|
2891
|
+
/>
|
|
2892
|
+
</ndt-list-item>
|
|
2691
2893
|
}
|
|
2692
|
-
</
|
|
2693
|
-
}
|
|
2894
|
+
</ndt-list>
|
|
2694
2895
|
</div>
|
|
2695
2896
|
</ndt-toolbar-tool>
|
|
2696
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".container{display:flex;flex-direction:column;height:100%}.header{flex-shrink:0;display:flex;gap:var(--ndt-spacing-sm);margin-bottom:var(--ndt-spacing-md)
|
|
2897
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".container{display:flex;flex-direction:column;height:100%}.header{flex-shrink:0;display:flex;gap:var(--ndt-spacing-sm);margin-bottom:var(--ndt-spacing-md);ndt-input{flex:1}.filter-wrapper{flex:0 0 auto;display:flex;align-items:center;gap:var(--ndt-spacing-md);.filter-icon{width:18px;height:18px;flex-shrink:0;opacity:.6}ndt-select{flex:0 0 auto;min-width:180px}}}\n"] }]
|
|
2697
2898
|
}] });
|
|
2698
2899
|
|
|
2699
2900
|
class DevToolbarInternalFeatureFlagService {
|
|
@@ -2710,15 +2911,19 @@ class DevToolbarInternalFeatureFlagService {
|
|
|
2710
2911
|
this.appFlags$,
|
|
2711
2912
|
this.forcedFlags$,
|
|
2712
2913
|
]).pipe(map(([appFlags, { enabled, disabled }]) => {
|
|
2713
|
-
return appFlags.map((flag) =>
|
|
2714
|
-
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
:
|
|
2719
|
-
?
|
|
2720
|
-
: flag.
|
|
2721
|
-
|
|
2914
|
+
return appFlags.map((flag) => {
|
|
2915
|
+
const isForced = enabled.includes(flag.id) || disabled.includes(flag.id);
|
|
2916
|
+
return {
|
|
2917
|
+
...flag,
|
|
2918
|
+
isForced,
|
|
2919
|
+
isEnabled: enabled.includes(flag.id)
|
|
2920
|
+
? true
|
|
2921
|
+
: disabled.includes(flag.id)
|
|
2922
|
+
? false
|
|
2923
|
+
: flag.isEnabled,
|
|
2924
|
+
originalValue: isForced ? flag.isEnabled : undefined,
|
|
2925
|
+
};
|
|
2926
|
+
});
|
|
2722
2927
|
}));
|
|
2723
2928
|
this.flags = toSignal(this.flags$, { initialValue: [] });
|
|
2724
2929
|
this.loadForcedFlags();
|
|
@@ -2776,10 +2981,10 @@ class DevToolbarInternalFeatureFlagService {
|
|
|
2776
2981
|
getCurrentForcedState() {
|
|
2777
2982
|
return this.forcedFlagsSubject.value;
|
|
2778
2983
|
}
|
|
2779
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
2780
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.
|
|
2984
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarInternalFeatureFlagService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2985
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarInternalFeatureFlagService, providedIn: 'root' }); }
|
|
2781
2986
|
}
|
|
2782
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
2987
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarInternalFeatureFlagService, decorators: [{
|
|
2783
2988
|
type: Injectable,
|
|
2784
2989
|
args: [{ providedIn: 'root' }]
|
|
2785
2990
|
}], ctorParameters: () => [] });
|
|
@@ -2794,7 +2999,7 @@ class DevToolbarFeatureFlagsToolComponent {
|
|
|
2794
2999
|
this.flags = this.featureFlags.flags;
|
|
2795
3000
|
this.hasNoFlags = computed(() => this.flags().length === 0);
|
|
2796
3001
|
this.filteredFlags = computed(() => {
|
|
2797
|
-
|
|
3002
|
+
const filtered = this.flags().filter((flag) => {
|
|
2798
3003
|
const searchTerm = this.searchQuery().toLowerCase();
|
|
2799
3004
|
const flagName = flag.name.toLowerCase();
|
|
2800
3005
|
const flagDescription = flag.description?.toLowerCase() ?? '';
|
|
@@ -2807,6 +3012,8 @@ class DevToolbarFeatureFlagsToolComponent {
|
|
|
2807
3012
|
(this.activeFilter() === 'disabled' && !flag.isEnabled);
|
|
2808
3013
|
return matchesSearch && matchesFilter;
|
|
2809
3014
|
});
|
|
3015
|
+
// Sort alphabetically by name
|
|
3016
|
+
return filtered.sort((a, b) => a.name.localeCompare(b.name));
|
|
2810
3017
|
});
|
|
2811
3018
|
this.hasNoFilteredFlags = computed(() => this.filteredFlags().length === 0);
|
|
2812
3019
|
// Other properties
|
|
@@ -2859,8 +3066,8 @@ class DevToolbarFeatureFlagsToolComponent {
|
|
|
2859
3066
|
return '';
|
|
2860
3067
|
return flag.isEnabled ? 'on' : 'off';
|
|
2861
3068
|
}
|
|
2862
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
2863
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.
|
|
3069
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarFeatureFlagsToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3070
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: DevToolbarFeatureFlagsToolComponent, isStandalone: true, selector: "ndt-feature-flags-tool", ngImport: i0, template: `
|
|
2864
3071
|
<ndt-toolbar-tool
|
|
2865
3072
|
[options]="options"
|
|
2866
3073
|
title="Feature Flags"
|
|
@@ -2884,39 +3091,35 @@ class DevToolbarFeatureFlagsToolComponent {
|
|
|
2884
3091
|
</div>
|
|
2885
3092
|
</div>
|
|
2886
3093
|
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
<p>No flags found matching your filter</p>
|
|
2894
|
-
</div>
|
|
2895
|
-
} @else {
|
|
2896
|
-
<div class="flag-list">
|
|
3094
|
+
<ndt-list
|
|
3095
|
+
[hasItems]="!hasNoFlags()"
|
|
3096
|
+
[hasResults]="!hasNoFilteredFlags()"
|
|
3097
|
+
emptyMessage="No flags found"
|
|
3098
|
+
noResultsMessage="No flags found matching your filter"
|
|
3099
|
+
>
|
|
2897
3100
|
@for (flag of filteredFlags(); track flag.id) {
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
3101
|
+
<ndt-list-item
|
|
3102
|
+
[title]="flag.name"
|
|
3103
|
+
[description]="flag.description"
|
|
3104
|
+
[isForced]="flag.isForced"
|
|
3105
|
+
[currentValue]="flag.isEnabled"
|
|
3106
|
+
[originalValue]="flag.originalValue"
|
|
3107
|
+
>
|
|
3108
|
+
<ndt-select
|
|
3109
|
+
[value]="getFlagValue(flag)"
|
|
3110
|
+
[options]="flagValueOptions"
|
|
3111
|
+
[ariaLabel]="'Set value for ' + flag.name"
|
|
3112
|
+
(valueChange)="onFlagChange(flag.id, $event ?? '')"
|
|
3113
|
+
size="small"
|
|
3114
|
+
/>
|
|
3115
|
+
</ndt-list-item>
|
|
2912
3116
|
}
|
|
2913
|
-
</
|
|
2914
|
-
}
|
|
3117
|
+
</ndt-list>
|
|
2915
3118
|
</div>
|
|
2916
3119
|
</ndt-toolbar-tool>
|
|
2917
|
-
`, isInline: true, styles: [".container{display:flex;flex-direction:column;height:100%}.header{flex-shrink:0;display:flex;gap:var(--ndt-spacing-sm);margin-bottom:var(--ndt-spacing-md)
|
|
3120
|
+
`, isInline: true, styles: [".container{display:flex;flex-direction:column;height:100%}.header{flex-shrink:0;display:flex;gap:var(--ndt-spacing-sm);margin-bottom:var(--ndt-spacing-md);ndt-input{flex:1}.filter-wrapper{flex:0 0 auto;display:flex;align-items:center;gap:var(--ndt-spacing-md);.filter-icon{width:18px;height:18px;flex-shrink:0;opacity:.6}ndt-select{flex:0 0 auto;min-width:180px}}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "component", type: DevToolbarToolComponent, selector: "ndt-toolbar-tool", inputs: ["options", "icon", "title"] }, { kind: "component", type: DevToolbarInputComponent, selector: "ndt-input", inputs: ["value", "type", "placeholder", "ariaLabel", "inputClass"], outputs: ["valueChange"] }, { kind: "component", type: DevToolbarSelectComponent, selector: "ndt-select", inputs: ["value", "options", "ariaLabel", "label", "size"], outputs: ["valueChange"] }, { kind: "component", type: DevToolbarIconComponent, selector: "ndt-icon", inputs: ["name"] }, { kind: "component", type: DevToolbarListComponent, selector: "ndt-list", inputs: ["hasItems", "hasResults", "emptyMessage", "emptyHint", "noResultsMessage"] }, { kind: "component", type: DevToolbarListItemComponent, selector: "ndt-list-item", inputs: ["title", "description", "isForced", "currentValue", "originalValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2918
3121
|
}
|
|
2919
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
3122
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarFeatureFlagsToolComponent, decorators: [{
|
|
2920
3123
|
type: Component,
|
|
2921
3124
|
args: [{ selector: 'ndt-feature-flags-tool', standalone: true, imports: [
|
|
2922
3125
|
FormsModule,
|
|
@@ -2924,6 +3127,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
2924
3127
|
DevToolbarInputComponent,
|
|
2925
3128
|
DevToolbarSelectComponent,
|
|
2926
3129
|
DevToolbarIconComponent,
|
|
3130
|
+
DevToolbarListComponent,
|
|
3131
|
+
DevToolbarListItemComponent,
|
|
2927
3132
|
], template: `
|
|
2928
3133
|
<ndt-toolbar-tool
|
|
2929
3134
|
[options]="options"
|
|
@@ -2948,37 +3153,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
2948
3153
|
</div>
|
|
2949
3154
|
</div>
|
|
2950
3155
|
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
<p>No flags found matching your filter</p>
|
|
2958
|
-
</div>
|
|
2959
|
-
} @else {
|
|
2960
|
-
<div class="flag-list">
|
|
3156
|
+
<ndt-list
|
|
3157
|
+
[hasItems]="!hasNoFlags()"
|
|
3158
|
+
[hasResults]="!hasNoFilteredFlags()"
|
|
3159
|
+
emptyMessage="No flags found"
|
|
3160
|
+
noResultsMessage="No flags found matching your filter"
|
|
3161
|
+
>
|
|
2961
3162
|
@for (flag of filteredFlags(); track flag.id) {
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
|
|
2965
|
-
|
|
2966
|
-
|
|
2967
|
-
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
|
|
2971
|
-
|
|
2972
|
-
|
|
2973
|
-
|
|
2974
|
-
|
|
2975
|
-
|
|
3163
|
+
<ndt-list-item
|
|
3164
|
+
[title]="flag.name"
|
|
3165
|
+
[description]="flag.description"
|
|
3166
|
+
[isForced]="flag.isForced"
|
|
3167
|
+
[currentValue]="flag.isEnabled"
|
|
3168
|
+
[originalValue]="flag.originalValue"
|
|
3169
|
+
>
|
|
3170
|
+
<ndt-select
|
|
3171
|
+
[value]="getFlagValue(flag)"
|
|
3172
|
+
[options]="flagValueOptions"
|
|
3173
|
+
[ariaLabel]="'Set value for ' + flag.name"
|
|
3174
|
+
(valueChange)="onFlagChange(flag.id, $event ?? '')"
|
|
3175
|
+
size="small"
|
|
3176
|
+
/>
|
|
3177
|
+
</ndt-list-item>
|
|
2976
3178
|
}
|
|
2977
|
-
</
|
|
2978
|
-
}
|
|
3179
|
+
</ndt-list>
|
|
2979
3180
|
</div>
|
|
2980
3181
|
</ndt-toolbar-tool>
|
|
2981
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".container{display:flex;flex-direction:column;height:100%}.header{flex-shrink:0;display:flex;gap:var(--ndt-spacing-sm);margin-bottom:var(--ndt-spacing-md)
|
|
3182
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".container{display:flex;flex-direction:column;height:100%}.header{flex-shrink:0;display:flex;gap:var(--ndt-spacing-sm);margin-bottom:var(--ndt-spacing-md);ndt-input{flex:1}.filter-wrapper{flex:0 0 auto;display:flex;align-items:center;gap:var(--ndt-spacing-md);.filter-icon{width:18px;height:18px;flex-shrink:0;opacity:.6}ndt-select{flex:0 0 auto;min-width:180px}}}\n"] }]
|
|
2982
3183
|
}] });
|
|
2983
3184
|
|
|
2984
3185
|
class DevToolbarButtonComponent {
|
|
@@ -2990,8 +3191,8 @@ class DevToolbarButtonComponent {
|
|
|
2990
3191
|
this.ariaLabel = input();
|
|
2991
3192
|
this.isActive = input(false);
|
|
2992
3193
|
}
|
|
2993
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
2994
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.
|
|
3194
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3195
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: DevToolbarButtonComponent, isStandalone: true, selector: "ndt-button", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, isActive: { classPropertyName: "isActive", publicName: "isActive", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
2995
3196
|
<button
|
|
2996
3197
|
class="button"
|
|
2997
3198
|
[attr.aria-label]="ariaLabel()"
|
|
@@ -3007,9 +3208,9 @@ class DevToolbarButtonComponent {
|
|
|
3007
3208
|
}
|
|
3008
3209
|
<ng-content />
|
|
3009
3210
|
</button>
|
|
3010
|
-
`, isInline: true, styles: [".button{display:inline-flex;align-items:center;gap:var(--ndt-spacing-xs);padding:var(--ndt-spacing-sm) var(--ndt-spacing-md);min-height:36px;border:1px solid var(--ndt-border-primary);border-radius:var(--ndt-border-radius-medium);background:var(--ndt-bg-primary);color:var(--ndt-text-primary);cursor:pointer;transition:var(--ndt-transition-default);outline:none;font-family:inherit}.button:hover{background:var(--ndt-hover-bg);border-color:var(--ndt-primary)}.button:focus-visible{outline:none;background:var(--ndt-hover-bg);box-shadow:0 0 0 2px rgba(var(--ndt-primary-rgb),.2)}.button.primary{background:var(--ndt-primary);color:var(--ndt-text-on-primary);border-color:var(--ndt-primary)}.button.primary:hover{background:var(--ndt-primary);border-color:var(--ndt-primary)}.button.icon-only{padding:var(--ndt-spacing-xs);width:32px;height:32px;justify-content:center}.button.small{font-size:var(--ndt-font-size-sm)}\n"], dependencies: [{ kind: "component", type: DevToolbarIconComponent, selector: "ndt-icon", inputs: ["name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3211
|
+
`, isInline: true, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2)}.button{display:inline-flex;align-items:center;gap:var(--ndt-spacing-xs);padding:var(--ndt-spacing-sm) var(--ndt-spacing-md);min-height:36px;border:1px solid var(--ndt-border-primary);border-radius:var(--ndt-border-radius-medium);background:var(--ndt-bg-primary);color:var(--ndt-text-primary);cursor:pointer;transition:var(--ndt-transition-default);outline:none;font-family:inherit}.button:hover{background:var(--ndt-hover-bg);border-color:var(--ndt-primary)}.button:focus-visible{outline:none;background:var(--ndt-hover-bg);box-shadow:0 0 0 2px rgba(var(--ndt-primary-rgb),.2)}.button.primary{background:var(--ndt-primary);color:var(--ndt-text-on-primary);border-color:var(--ndt-primary)}.button.primary:hover{background:var(--ndt-primary);border-color:var(--ndt-primary)}.button.icon-only{padding:var(--ndt-spacing-xs);width:32px;height:32px;justify-content:center}.button.small{font-size:var(--ndt-font-size-sm)}\n"], dependencies: [{ kind: "component", type: DevToolbarIconComponent, selector: "ndt-icon", inputs: ["name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3011
3212
|
}
|
|
3012
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
3213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarButtonComponent, decorators: [{
|
|
3013
3214
|
type: Component,
|
|
3014
3215
|
args: [{ selector: 'ndt-button', standalone: true, imports: [DevToolbarIconComponent], template: `
|
|
3015
3216
|
<button
|
|
@@ -3027,7 +3228,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
3027
3228
|
}
|
|
3028
3229
|
<ng-content />
|
|
3029
3230
|
</button>
|
|
3030
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".button{display:inline-flex;align-items:center;gap:var(--ndt-spacing-xs);padding:var(--ndt-spacing-sm) var(--ndt-spacing-md);min-height:36px;border:1px solid var(--ndt-border-primary);border-radius:var(--ndt-border-radius-medium);background:var(--ndt-bg-primary);color:var(--ndt-text-primary);cursor:pointer;transition:var(--ndt-transition-default);outline:none;font-family:inherit}.button:hover{background:var(--ndt-hover-bg);border-color:var(--ndt-primary)}.button:focus-visible{outline:none;background:var(--ndt-hover-bg);box-shadow:0 0 0 2px rgba(var(--ndt-primary-rgb),.2)}.button.primary{background:var(--ndt-primary);color:var(--ndt-text-on-primary);border-color:var(--ndt-primary)}.button.primary:hover{background:var(--ndt-primary);border-color:var(--ndt-primary)}.button.icon-only{padding:var(--ndt-spacing-xs);width:32px;height:32px;justify-content:center}.button.small{font-size:var(--ndt-font-size-sm)}\n"] }]
|
|
3231
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2)}.button{display:inline-flex;align-items:center;gap:var(--ndt-spacing-xs);padding:var(--ndt-spacing-sm) var(--ndt-spacing-md);min-height:36px;border:1px solid var(--ndt-border-primary);border-radius:var(--ndt-border-radius-medium);background:var(--ndt-bg-primary);color:var(--ndt-text-primary);cursor:pointer;transition:var(--ndt-transition-default);outline:none;font-family:inherit}.button:hover{background:var(--ndt-hover-bg);border-color:var(--ndt-primary)}.button:focus-visible{outline:none;background:var(--ndt-hover-bg);box-shadow:0 0 0 2px rgba(var(--ndt-primary-rgb),.2)}.button.primary{background:var(--ndt-primary);color:var(--ndt-text-on-primary);border-color:var(--ndt-primary)}.button.primary:hover{background:var(--ndt-primary);border-color:var(--ndt-primary)}.button.icon-only{padding:var(--ndt-spacing-xs);width:32px;height:32px;justify-content:center}.button.small{font-size:var(--ndt-font-size-sm)}\n"] }]
|
|
3031
3232
|
}] });
|
|
3032
3233
|
|
|
3033
3234
|
class DevToolbarCardComponent {
|
|
@@ -3038,8 +3239,8 @@ class DevToolbarCardComponent {
|
|
|
3038
3239
|
onClick() {
|
|
3039
3240
|
this.click.set();
|
|
3040
3241
|
}
|
|
3041
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
3042
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.
|
|
3242
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3243
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.7", type: DevToolbarCardComponent, isStandalone: true, selector: "ndt-card", ngImport: i0, template: `
|
|
3043
3244
|
<div
|
|
3044
3245
|
class="card"
|
|
3045
3246
|
role="button"
|
|
@@ -3053,9 +3254,9 @@ class DevToolbarCardComponent {
|
|
|
3053
3254
|
>
|
|
3054
3255
|
<ng-content></ng-content>
|
|
3055
3256
|
</div>
|
|
3056
|
-
`, isInline: true, styles: [".card{background:var(--ndt-bg-primary);border-radius:var(--ndt-border-radius-large);padding:var(--ndt-spacing-md);cursor:pointer;transition:var(--ndt-transition-default);border:1px solid var(--ndt-border-subtle);position:relative;flex:1;height:120px;display:flex}.card:hover{background:var(--ndt-hover-bg);border-color:var(--ndt-primary);box-shadow:0 0 0 1px rgba(var(--ndt-primary-rgb),.3)}\n"] }); }
|
|
3257
|
+
`, isInline: true, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2)}.card{background:var(--ndt-bg-primary);border-radius:var(--ndt-border-radius-large);padding:var(--ndt-spacing-md);cursor:pointer;transition:var(--ndt-transition-default);border:1px solid var(--ndt-border-subtle);position:relative;flex:1;height:120px;display:flex}.card:hover{background:var(--ndt-hover-bg);border-color:var(--ndt-primary);box-shadow:0 0 0 1px rgba(var(--ndt-primary-rgb),.3)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3057
3258
|
}
|
|
3058
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
3259
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarCardComponent, decorators: [{
|
|
3059
3260
|
type: Component,
|
|
3060
3261
|
args: [{ selector: 'ndt-card', standalone: true, template: `
|
|
3061
3262
|
<div
|
|
@@ -3071,7 +3272,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
3071
3272
|
>
|
|
3072
3273
|
<ng-content></ng-content>
|
|
3073
3274
|
</div>
|
|
3074
|
-
`, styles: [".card{background:var(--ndt-bg-primary);border-radius:var(--ndt-border-radius-large);padding:var(--ndt-spacing-md);cursor:pointer;transition:var(--ndt-transition-default);border:1px solid var(--ndt-border-subtle);position:relative;flex:1;height:120px;display:flex}.card:hover{background:var(--ndt-hover-bg);border-color:var(--ndt-primary);box-shadow:0 0 0 1px rgba(var(--ndt-primary-rgb),.3)}\n"] }]
|
|
3275
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2)}.card{background:var(--ndt-bg-primary);border-radius:var(--ndt-border-radius-large);padding:var(--ndt-spacing-md);cursor:pointer;transition:var(--ndt-transition-default);border:1px solid var(--ndt-border-subtle);position:relative;flex:1;height:120px;display:flex}.card:hover{background:var(--ndt-hover-bg);border-color:var(--ndt-primary);box-shadow:0 0 0 1px rgba(var(--ndt-primary-rgb),.3)}\n"] }]
|
|
3075
3276
|
}] });
|
|
3076
3277
|
|
|
3077
3278
|
class DevToolbarClickableCardComponent {
|
|
@@ -3084,8 +3285,8 @@ class DevToolbarClickableCardComponent {
|
|
|
3084
3285
|
onClick() {
|
|
3085
3286
|
this.click.set();
|
|
3086
3287
|
}
|
|
3087
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
3088
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
3288
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarClickableCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3289
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: DevToolbarClickableCardComponent, isStandalone: true, selector: "ndt-clickable-card", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
3089
3290
|
<ndt-card (clicked)="onClick()">
|
|
3090
3291
|
<div class="clickable-card">
|
|
3091
3292
|
<div class="clickable-card__icon">
|
|
@@ -3097,9 +3298,9 @@ class DevToolbarClickableCardComponent {
|
|
|
3097
3298
|
</div>
|
|
3098
3299
|
</div>
|
|
3099
3300
|
</ndt-card>
|
|
3100
|
-
`, isInline: true, styles: [".clickable-card{display:flex;flex-direction:column;gap:var(--ndt-spacing-xs);height:100%}.clickable-card__icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--ndt-border-radius-medium);background:var(--ndt-hover-bg);color:var(--ndt-text-primary)}.clickable-card__content{display:flex;flex-direction:column;gap:var(--ndt-spacing-xs)}.clickable-card__title{color:var(--ndt-text-primary);font-size:var(--ndt-font-size-sm);font-weight:500}.clickable-card__subtitle{color:var(--ndt-text-muted);font-size:var(--ndt-font-size-xs);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}\n"], dependencies: [{ kind: "component", type: DevToolbarCardComponent, selector: "ndt-card" }, { kind: "component", type: DevToolbarIconComponent, selector: "ndt-icon", inputs: ["name"] }] }); }
|
|
3301
|
+
`, isInline: true, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2)}.clickable-card{display:flex;flex-direction:column;gap:var(--ndt-spacing-xs);height:100%}.clickable-card__icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--ndt-border-radius-medium);background:var(--ndt-hover-bg);color:var(--ndt-text-primary)}.clickable-card__content{display:flex;flex-direction:column;gap:var(--ndt-spacing-xs)}.clickable-card__title{color:var(--ndt-text-primary);font-size:var(--ndt-font-size-sm);font-weight:500}.clickable-card__subtitle{color:var(--ndt-text-muted);font-size:var(--ndt-font-size-xs);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}\n"], dependencies: [{ kind: "component", type: DevToolbarCardComponent, selector: "ndt-card" }, { kind: "component", type: DevToolbarIconComponent, selector: "ndt-icon", inputs: ["name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3101
3302
|
}
|
|
3102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
3303
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarClickableCardComponent, decorators: [{
|
|
3103
3304
|
type: Component,
|
|
3104
3305
|
args: [{ selector: 'ndt-clickable-card', standalone: true, imports: [DevToolbarCardComponent, DevToolbarIconComponent], template: `
|
|
3105
3306
|
<ndt-card (clicked)="onClick()">
|
|
@@ -3113,7 +3314,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
3113
3314
|
</div>
|
|
3114
3315
|
</div>
|
|
3115
3316
|
</ndt-card>
|
|
3116
|
-
`, styles: [".clickable-card{display:flex;flex-direction:column;gap:var(--ndt-spacing-xs);height:100%}.clickable-card__icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--ndt-border-radius-medium);background:var(--ndt-hover-bg);color:var(--ndt-text-primary)}.clickable-card__content{display:flex;flex-direction:column;gap:var(--ndt-spacing-xs)}.clickable-card__title{color:var(--ndt-text-primary);font-size:var(--ndt-font-size-sm);font-weight:500}.clickable-card__subtitle{color:var(--ndt-text-muted);font-size:var(--ndt-font-size-xs);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}\n"] }]
|
|
3317
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2)}.clickable-card{display:flex;flex-direction:column;gap:var(--ndt-spacing-xs);height:100%}.clickable-card__icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--ndt-border-radius-medium);background:var(--ndt-hover-bg);color:var(--ndt-text-primary)}.clickable-card__content{display:flex;flex-direction:column;gap:var(--ndt-spacing-xs)}.clickable-card__title{color:var(--ndt-text-primary);font-size:var(--ndt-font-size-sm);font-weight:500}.clickable-card__subtitle{color:var(--ndt-text-muted);font-size:var(--ndt-font-size-xs);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}\n"] }]
|
|
3117
3318
|
}] });
|
|
3118
3319
|
|
|
3119
3320
|
class DevToolbarLinkButtonComponent {
|
|
@@ -3121,8 +3322,8 @@ class DevToolbarLinkButtonComponent {
|
|
|
3121
3322
|
this.url = input.required();
|
|
3122
3323
|
this.icon = input.required();
|
|
3123
3324
|
}
|
|
3124
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
3125
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.
|
|
3325
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarLinkButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3326
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.7", type: DevToolbarLinkButtonComponent, isStandalone: true, selector: "ndt-link-button", inputs: { url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
3126
3327
|
<a
|
|
3127
3328
|
[href]="url()"
|
|
3128
3329
|
target="_blank"
|
|
@@ -3136,9 +3337,9 @@ class DevToolbarLinkButtonComponent {
|
|
|
3136
3337
|
<ng-content></ng-content>
|
|
3137
3338
|
</span>
|
|
3138
3339
|
</a>
|
|
3139
|
-
`, isInline: true, styles: [".link-button{display:flex;flex-direction:column;align-items:center;gap:var(--ndt-spacing-xs);text-decoration:none;color:var(--ndt-text-muted);transition:var(--ndt-transition-default)}.link-button:hover{color:var(--ndt-text-primary)}.link-button:hover .link-button__icon{outline:2px solid var(--ndt-primary);outline-offset:2px;box-shadow:0 0 8px var(--ndt-primary)}.link-button__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--ndt-border-radius-medium);background:var(--ndt-hover-bg);transition:all .2s ease-in-out}.link-button__text{font-size:var(--ndt-font-size-xs);text-align:center;white-space:nowrap}\n"], dependencies: [{ kind: "component", type: DevToolbarIconComponent, selector: "ndt-icon", inputs: ["name"] }] }); }
|
|
3340
|
+
`, isInline: true, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2)}.link-button{display:flex;flex-direction:column;align-items:center;gap:var(--ndt-spacing-xs);text-decoration:none;color:var(--ndt-text-muted);transition:var(--ndt-transition-default)}.link-button:hover{color:var(--ndt-text-primary)}.link-button:hover .link-button__icon{outline:2px solid var(--ndt-primary);outline-offset:2px;box-shadow:0 0 8px var(--ndt-primary)}.link-button__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--ndt-border-radius-medium);background:var(--ndt-hover-bg);transition:all .2s ease-in-out}.link-button__text{font-size:var(--ndt-font-size-xs);text-align:center;white-space:nowrap}\n"], dependencies: [{ kind: "component", type: DevToolbarIconComponent, selector: "ndt-icon", inputs: ["name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3140
3341
|
}
|
|
3141
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
3342
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarLinkButtonComponent, decorators: [{
|
|
3142
3343
|
type: Component,
|
|
3143
3344
|
args: [{ selector: 'ndt-link-button', standalone: true, imports: [DevToolbarIconComponent], template: `
|
|
3144
3345
|
<a
|
|
@@ -3154,7 +3355,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
3154
3355
|
<ng-content></ng-content>
|
|
3155
3356
|
</span>
|
|
3156
3357
|
</a>
|
|
3157
|
-
`, styles: [".link-button{display:flex;flex-direction:column;align-items:center;gap:var(--ndt-spacing-xs);text-decoration:none;color:var(--ndt-text-muted);transition:var(--ndt-transition-default)}.link-button:hover{color:var(--ndt-text-primary)}.link-button:hover .link-button__icon{outline:2px solid var(--ndt-primary);outline-offset:2px;box-shadow:0 0 8px var(--ndt-primary)}.link-button__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--ndt-border-radius-medium);background:var(--ndt-hover-bg);transition:all .2s ease-in-out}.link-button__text{font-size:var(--ndt-font-size-xs);text-align:center;white-space:nowrap}\n"] }]
|
|
3358
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2)}.link-button{display:flex;flex-direction:column;align-items:center;gap:var(--ndt-spacing-xs);text-decoration:none;color:var(--ndt-text-muted);transition:var(--ndt-transition-default)}.link-button:hover{color:var(--ndt-text-primary)}.link-button:hover .link-button__icon{outline:2px solid var(--ndt-primary);outline-offset:2px;box-shadow:0 0 8px var(--ndt-primary)}.link-button__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--ndt-border-radius-medium);background:var(--ndt-hover-bg);transition:all .2s ease-in-out}.link-button__text{font-size:var(--ndt-font-size-xs);text-align:center;white-space:nowrap}\n"] }]
|
|
3158
3359
|
}] });
|
|
3159
3360
|
|
|
3160
3361
|
class SettingsService {
|
|
@@ -3170,10 +3371,10 @@ class SettingsService {
|
|
|
3170
3371
|
setSettings(settings) {
|
|
3171
3372
|
this.storageService.set(this.STORAGE_KEY, settings);
|
|
3172
3373
|
}
|
|
3173
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
3174
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.
|
|
3374
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3375
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SettingsService, providedIn: 'root' }); }
|
|
3175
3376
|
}
|
|
3176
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
3377
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SettingsService, decorators: [{
|
|
3177
3378
|
type: Injectable,
|
|
3178
3379
|
args: [{ providedIn: 'root' }]
|
|
3179
3380
|
}] });
|
|
@@ -3221,11 +3422,6 @@ class DevToolbarHomeToolComponent {
|
|
|
3221
3422
|
},
|
|
3222
3423
|
];
|
|
3223
3424
|
}
|
|
3224
|
-
onToggleTheme() {
|
|
3225
|
-
const newTheme = this.state.isDarkTheme() ? 'light' : 'dark';
|
|
3226
|
-
this.settingsService.setSettings({ isDarkMode: newTheme === 'dark' });
|
|
3227
|
-
this.state.setTheme(newTheme);
|
|
3228
|
-
}
|
|
3229
3425
|
onExportSettings() {
|
|
3230
3426
|
const settings = this.storageService.getAllSettings();
|
|
3231
3427
|
const blob = new Blob([JSON.stringify(settings, null, 2)], {
|
|
@@ -3268,34 +3464,10 @@ class DevToolbarHomeToolComponent {
|
|
|
3268
3464
|
this.storageService.clearAllSettings();
|
|
3269
3465
|
window.location.reload();
|
|
3270
3466
|
}
|
|
3271
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
3272
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.
|
|
3467
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarHomeToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3468
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: DevToolbarHomeToolComponent, isStandalone: true, selector: "ndt-home-tool", inputs: { badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
3273
3469
|
<ndt-toolbar-tool [options]="options" title="Home" icon="angular">
|
|
3274
3470
|
<section class="settings">
|
|
3275
|
-
<div class="instruction">
|
|
3276
|
-
<div class="instruction__label">
|
|
3277
|
-
<span class="instruction__label-text">Theme</span>
|
|
3278
|
-
<span class="instruction__label-description">
|
|
3279
|
-
Switch between light and dark mode
|
|
3280
|
-
</span>
|
|
3281
|
-
</div>
|
|
3282
|
-
<div class="instruction__control">
|
|
3283
|
-
<div class="instruction__control-button">
|
|
3284
|
-
<ndt-button
|
|
3285
|
-
[isActive]="true"
|
|
3286
|
-
(click)="onToggleTheme()"
|
|
3287
|
-
variant="icon"
|
|
3288
|
-
[ariaLabel]="
|
|
3289
|
-
state.isDarkTheme()
|
|
3290
|
-
? 'Switch to light theme'
|
|
3291
|
-
: 'Switch to dark theme'
|
|
3292
|
-
"
|
|
3293
|
-
[icon]="state.isDarkTheme() ? 'sun' : 'moon'"
|
|
3294
|
-
/>
|
|
3295
|
-
</div>
|
|
3296
|
-
</div>
|
|
3297
|
-
</div>
|
|
3298
|
-
|
|
3299
3471
|
<div class="settings-container">
|
|
3300
3472
|
<div class="instruction">
|
|
3301
3473
|
<div class="instruction__label">
|
|
@@ -3340,9 +3512,9 @@ class DevToolbarHomeToolComponent {
|
|
|
3340
3512
|
</div>
|
|
3341
3513
|
</section>
|
|
3342
3514
|
</ndt-toolbar-tool>
|
|
3343
|
-
`, isInline: true, styles: [".settings{display:flex;flex-direction:column;justify-content:space-between;min-height:100%}.instruction{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--ndt-spacing-sm)}.instruction__label{display:flex;flex-direction:column;gap:var(--ndt-spacing-xs)}.instruction__label-text{color:var(--ndt-text-primary);font-size:var(--ndt-font-size-sm);font-weight:500}.instruction__label-description{color:var(--ndt-text-muted);font-size:var(--ndt-font-size-xs)}.instruction__control{flex:1}.instruction__control-button{display:flex;gap:var(--ndt-spacing-xs);justify-content:flex-end}.settings-container{display:flex;flex-direction:column}.settings-container .settings-actions{display:flex;gap:var(--ndt-spacing-md);padding-block:var(--ndt-spacing-sm)}.settings-container .settings-actions>*{width:50%;min-width:0}.footer-links{border-top:1px solid var(--ndt-border-subtle);padding-top:1em;display:flex;flex-direction:row;justify-content:space-between;gap:var(--ndt-spacing-lg)}\n"], dependencies: [{ kind: "component", type: DevToolbarToolComponent, selector: "ndt-toolbar-tool", inputs: ["options", "icon", "title"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: DevToolbarButtonComponent, selector: "ndt-button", inputs: ["type", "variant", "icon", "label", "ariaLabel", "isActive"] }, { kind: "component", type: DevToolbarClickableCardComponent, selector: "ndt-clickable-card", inputs: ["icon", "title", "subtitle"] }, { kind: "component", type: DevToolbarLinkButtonComponent, selector: "ndt-link-button", inputs: ["url", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3515
|
+
`, isInline: true, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2)}.settings{display:flex;flex-direction:column;justify-content:space-between;min-height:100%}.instruction{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--ndt-spacing-sm)}.instruction__label{display:flex;flex-direction:column;gap:var(--ndt-spacing-xs)}.instruction__label-text{color:var(--ndt-text-primary);font-size:var(--ndt-font-size-sm);font-weight:500}.instruction__label-description{color:var(--ndt-text-muted);font-size:var(--ndt-font-size-xs)}.instruction__control{flex:1}.instruction__control-button{display:flex;gap:var(--ndt-spacing-xs);justify-content:flex-end}.settings-container{display:flex;flex-direction:column}.settings-container .settings-actions{display:flex;gap:var(--ndt-spacing-md);padding-block:var(--ndt-spacing-sm)}.settings-container .settings-actions>*{width:50%;min-width:0}.footer-links{border-top:1px solid var(--ndt-border-subtle);padding-top:1em;display:flex;flex-direction:row;justify-content:space-between;gap:var(--ndt-spacing-lg)}\n"], dependencies: [{ kind: "component", type: DevToolbarToolComponent, selector: "ndt-toolbar-tool", inputs: ["options", "icon", "title"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: DevToolbarButtonComponent, selector: "ndt-button", inputs: ["type", "variant", "icon", "label", "ariaLabel", "isActive"] }, { kind: "component", type: DevToolbarClickableCardComponent, selector: "ndt-clickable-card", inputs: ["icon", "title", "subtitle"] }, { kind: "component", type: DevToolbarLinkButtonComponent, selector: "ndt-link-button", inputs: ["url", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3344
3516
|
}
|
|
3345
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
3517
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarHomeToolComponent, decorators: [{
|
|
3346
3518
|
type: Component,
|
|
3347
3519
|
args: [{ selector: 'ndt-home-tool', standalone: true, imports: [
|
|
3348
3520
|
DevToolbarToolComponent,
|
|
@@ -3353,30 +3525,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
3353
3525
|
], template: `
|
|
3354
3526
|
<ndt-toolbar-tool [options]="options" title="Home" icon="angular">
|
|
3355
3527
|
<section class="settings">
|
|
3356
|
-
<div class="instruction">
|
|
3357
|
-
<div class="instruction__label">
|
|
3358
|
-
<span class="instruction__label-text">Theme</span>
|
|
3359
|
-
<span class="instruction__label-description">
|
|
3360
|
-
Switch between light and dark mode
|
|
3361
|
-
</span>
|
|
3362
|
-
</div>
|
|
3363
|
-
<div class="instruction__control">
|
|
3364
|
-
<div class="instruction__control-button">
|
|
3365
|
-
<ndt-button
|
|
3366
|
-
[isActive]="true"
|
|
3367
|
-
(click)="onToggleTheme()"
|
|
3368
|
-
variant="icon"
|
|
3369
|
-
[ariaLabel]="
|
|
3370
|
-
state.isDarkTheme()
|
|
3371
|
-
? 'Switch to light theme'
|
|
3372
|
-
: 'Switch to dark theme'
|
|
3373
|
-
"
|
|
3374
|
-
[icon]="state.isDarkTheme() ? 'sun' : 'moon'"
|
|
3375
|
-
/>
|
|
3376
|
-
</div>
|
|
3377
|
-
</div>
|
|
3378
|
-
</div>
|
|
3379
|
-
|
|
3380
3528
|
<div class="settings-container">
|
|
3381
3529
|
<div class="instruction">
|
|
3382
3530
|
<div class="instruction__label">
|
|
@@ -3421,7 +3569,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
3421
3569
|
</div>
|
|
3422
3570
|
</section>
|
|
3423
3571
|
</ndt-toolbar-tool>
|
|
3424
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".settings{display:flex;flex-direction:column;justify-content:space-between;min-height:100%}.instruction{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--ndt-spacing-sm)}.instruction__label{display:flex;flex-direction:column;gap:var(--ndt-spacing-xs)}.instruction__label-text{color:var(--ndt-text-primary);font-size:var(--ndt-font-size-sm);font-weight:500}.instruction__label-description{color:var(--ndt-text-muted);font-size:var(--ndt-font-size-xs)}.instruction__control{flex:1}.instruction__control-button{display:flex;gap:var(--ndt-spacing-xs);justify-content:flex-end}.settings-container{display:flex;flex-direction:column}.settings-container .settings-actions{display:flex;gap:var(--ndt-spacing-md);padding-block:var(--ndt-spacing-sm)}.settings-container .settings-actions>*{width:50%;min-width:0}.footer-links{border-top:1px solid var(--ndt-border-subtle);padding-top:1em;display:flex;flex-direction:row;justify-content:space-between;gap:var(--ndt-spacing-lg)}\n"] }]
|
|
3572
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2)}.settings{display:flex;flex-direction:column;justify-content:space-between;min-height:100%}.instruction{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--ndt-spacing-sm)}.instruction__label{display:flex;flex-direction:column;gap:var(--ndt-spacing-xs)}.instruction__label-text{color:var(--ndt-text-primary);font-size:var(--ndt-font-size-sm);font-weight:500}.instruction__label-description{color:var(--ndt-text-muted);font-size:var(--ndt-font-size-xs)}.instruction__control{flex:1}.instruction__control-button{display:flex;gap:var(--ndt-spacing-xs);justify-content:flex-end}.settings-container{display:flex;flex-direction:column}.settings-container .settings-actions{display:flex;gap:var(--ndt-spacing-md);padding-block:var(--ndt-spacing-sm)}.settings-container .settings-actions>*{width:50%;min-width:0}.footer-links{border-top:1px solid var(--ndt-border-subtle);padding-top:1em;display:flex;flex-direction:row;justify-content:space-between;gap:var(--ndt-spacing-lg)}\n"] }]
|
|
3425
3573
|
}] });
|
|
3426
3574
|
|
|
3427
3575
|
class DevToolbarInternalLanguageService {
|
|
@@ -3482,10 +3630,10 @@ class DevToolbarInternalLanguageService {
|
|
|
3482
3630
|
getCurrentForcedLanguage() {
|
|
3483
3631
|
return this.forcedLanguage$.value?.id ?? null;
|
|
3484
3632
|
}
|
|
3485
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
3486
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.
|
|
3633
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarInternalLanguageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3634
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarInternalLanguageService, providedIn: 'root' }); }
|
|
3487
3635
|
}
|
|
3488
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
3636
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarInternalLanguageService, decorators: [{
|
|
3489
3637
|
type: Injectable,
|
|
3490
3638
|
args: [{ providedIn: 'root' }]
|
|
3491
3639
|
}], ctorParameters: () => [] });
|
|
@@ -3521,8 +3669,8 @@ class DevToolbarLanguageToolComponent {
|
|
|
3521
3669
|
this.languageService.setForcedLanguage(selectedLanguage);
|
|
3522
3670
|
}
|
|
3523
3671
|
}
|
|
3524
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
3525
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.
|
|
3672
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarLanguageToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3673
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.7", type: DevToolbarLanguageToolComponent, isStandalone: true, selector: "ndt-language-tool", ngImport: i0, template: `
|
|
3526
3674
|
<ndt-toolbar-tool title="Languages" icon="translate" [options]="options">
|
|
3527
3675
|
<div class="language-select">
|
|
3528
3676
|
<label for="language-select">Language</label>
|
|
@@ -3535,9 +3683,9 @@ class DevToolbarLanguageToolComponent {
|
|
|
3535
3683
|
/>
|
|
3536
3684
|
</div>
|
|
3537
3685
|
</ndt-toolbar-tool>
|
|
3538
|
-
`, isInline: true, styles: [".language-select{display:flex;flex-direction:row;gap:.5rem;align-items:center;justify-content:space-between}\n"], dependencies: [{ kind: "component", type: DevToolbarToolComponent, selector: "ndt-toolbar-tool", inputs: ["options", "icon", "title"] }, { kind: "component", type: DevToolbarSelectComponent, selector: "ndt-select", inputs: ["value", "options", "ariaLabel", "label", "size"], outputs: ["valueChange"] }] }); }
|
|
3686
|
+
`, isInline: true, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2)}.language-select{display:flex;flex-direction:row;gap:.5rem;align-items:center;justify-content:space-between}\n"], dependencies: [{ kind: "component", type: DevToolbarToolComponent, selector: "ndt-toolbar-tool", inputs: ["options", "icon", "title"] }, { kind: "component", type: DevToolbarSelectComponent, selector: "ndt-select", inputs: ["value", "options", "ariaLabel", "label", "size"], outputs: ["valueChange"] }] }); }
|
|
3539
3687
|
}
|
|
3540
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
3688
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarLanguageToolComponent, decorators: [{
|
|
3541
3689
|
type: Component,
|
|
3542
3690
|
args: [{ selector: 'ndt-language-tool', standalone: true, imports: [DevToolbarToolComponent, DevToolbarSelectComponent], template: `
|
|
3543
3691
|
<ndt-toolbar-tool title="Languages" icon="translate" [options]="options">
|
|
@@ -3552,7 +3700,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
3552
3700
|
/>
|
|
3553
3701
|
</div>
|
|
3554
3702
|
</ndt-toolbar-tool>
|
|
3555
|
-
`, styles: [".language-select{display:flex;flex-direction:row;gap:.5rem;align-items:center;justify-content:space-between}\n"] }]
|
|
3703
|
+
`, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2)}.language-select{display:flex;flex-direction:row;gap:.5rem;align-items:center;justify-content:space-between}\n"] }]
|
|
3556
3704
|
}] });
|
|
3557
3705
|
|
|
3558
3706
|
class DevToolbarInternalPermissionsService {
|
|
@@ -3569,15 +3717,19 @@ class DevToolbarInternalPermissionsService {
|
|
|
3569
3717
|
this.appPermissions$,
|
|
3570
3718
|
this.forcedState$,
|
|
3571
3719
|
]).pipe(map(([appPermissions, { granted, denied }]) => {
|
|
3572
|
-
return appPermissions.map((permission) =>
|
|
3573
|
-
|
|
3574
|
-
|
|
3575
|
-
|
|
3576
|
-
|
|
3577
|
-
:
|
|
3578
|
-
?
|
|
3579
|
-
: permission.
|
|
3580
|
-
|
|
3720
|
+
return appPermissions.map((permission) => {
|
|
3721
|
+
const isForced = granted.includes(permission.id) || denied.includes(permission.id);
|
|
3722
|
+
return {
|
|
3723
|
+
...permission,
|
|
3724
|
+
isForced,
|
|
3725
|
+
isGranted: granted.includes(permission.id)
|
|
3726
|
+
? true
|
|
3727
|
+
: denied.includes(permission.id)
|
|
3728
|
+
? false
|
|
3729
|
+
: permission.isGranted,
|
|
3730
|
+
originalValue: isForced ? permission.isGranted : undefined,
|
|
3731
|
+
};
|
|
3732
|
+
});
|
|
3581
3733
|
}));
|
|
3582
3734
|
this.permissions = toSignal(this.permissions$, { initialValue: [] });
|
|
3583
3735
|
this.loadForcedState();
|
|
@@ -3645,10 +3797,12 @@ class DevToolbarInternalPermissionsService {
|
|
|
3645
3797
|
}
|
|
3646
3798
|
}
|
|
3647
3799
|
isValidForcedState(state) {
|
|
3648
|
-
|
|
3649
|
-
|
|
3650
|
-
|
|
3651
|
-
|
|
3800
|
+
if (!state || typeof state !== 'object') {
|
|
3801
|
+
return false;
|
|
3802
|
+
}
|
|
3803
|
+
const candidate = state;
|
|
3804
|
+
return (Array.isArray(candidate['granted']) &&
|
|
3805
|
+
Array.isArray(candidate['denied']));
|
|
3652
3806
|
}
|
|
3653
3807
|
validateAndCleanForcedState(permissions) {
|
|
3654
3808
|
const currentState = this.forcedStateSubject.value;
|
|
@@ -3673,10 +3827,10 @@ class DevToolbarInternalPermissionsService {
|
|
|
3673
3827
|
}
|
|
3674
3828
|
}
|
|
3675
3829
|
}
|
|
3676
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
3677
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.
|
|
3830
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarInternalPermissionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3831
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarInternalPermissionsService, providedIn: 'root' }); }
|
|
3678
3832
|
}
|
|
3679
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
3833
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarInternalPermissionsService, decorators: [{
|
|
3680
3834
|
type: Injectable,
|
|
3681
3835
|
args: [{ providedIn: 'root' }]
|
|
3682
3836
|
}], ctorParameters: () => [] });
|
|
@@ -3691,7 +3845,7 @@ class DevToolbarPermissionsToolComponent {
|
|
|
3691
3845
|
this.permissions = this.permissionsService.permissions;
|
|
3692
3846
|
this.hasNoPermissions = computed(() => this.permissions().length === 0);
|
|
3693
3847
|
this.filteredPermissions = computed(() => {
|
|
3694
|
-
|
|
3848
|
+
const filtered = this.permissions().filter((permission) => {
|
|
3695
3849
|
const searchTerm = this.searchQuery().toLowerCase();
|
|
3696
3850
|
const permissionName = permission.name.toLowerCase();
|
|
3697
3851
|
const permissionDescription = permission.description?.toLowerCase() ?? '';
|
|
@@ -3704,6 +3858,8 @@ class DevToolbarPermissionsToolComponent {
|
|
|
3704
3858
|
(this.activeFilter() === 'denied' && !permission.isGranted);
|
|
3705
3859
|
return matchesSearch && matchesFilter;
|
|
3706
3860
|
});
|
|
3861
|
+
// Sort alphabetically by name
|
|
3862
|
+
return filtered.sort((a, b) => a.name.localeCompare(b.name));
|
|
3707
3863
|
});
|
|
3708
3864
|
this.hasNoFilteredPermissions = computed(() => this.filteredPermissions().length === 0);
|
|
3709
3865
|
// Other properties
|
|
@@ -3756,8 +3912,8 @@ class DevToolbarPermissionsToolComponent {
|
|
|
3756
3912
|
return '';
|
|
3757
3913
|
return permission.isGranted ? 'granted' : 'denied';
|
|
3758
3914
|
}
|
|
3759
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
3760
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.
|
|
3915
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarPermissionsToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3916
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: DevToolbarPermissionsToolComponent, isStandalone: true, selector: "ndt-permissions-tool", ngImport: i0, template: `
|
|
3761
3917
|
<ndt-toolbar-tool
|
|
3762
3918
|
[options]="options"
|
|
3763
3919
|
title="Permissions"
|
|
@@ -3783,40 +3939,36 @@ class DevToolbarPermissionsToolComponent {
|
|
|
3783
3939
|
</div>
|
|
3784
3940
|
</div>
|
|
3785
3941
|
|
|
3786
|
-
|
|
3787
|
-
|
|
3788
|
-
|
|
3789
|
-
|
|
3790
|
-
|
|
3791
|
-
|
|
3792
|
-
|
|
3793
|
-
<p>No permissions match your filter</p>
|
|
3794
|
-
</div>
|
|
3795
|
-
} @else {
|
|
3796
|
-
<div class="permission-list">
|
|
3942
|
+
<ndt-list
|
|
3943
|
+
[hasItems]="!hasNoPermissions()"
|
|
3944
|
+
[hasResults]="!hasNoFilteredPermissions()"
|
|
3945
|
+
emptyMessage="No permissions found"
|
|
3946
|
+
[emptyHint]="'Call setAvailableOptions() to configure permissions'"
|
|
3947
|
+
noResultsMessage="No permissions match your filter"
|
|
3948
|
+
>
|
|
3797
3949
|
@for (permission of filteredPermissions(); track permission.id) {
|
|
3798
|
-
|
|
3799
|
-
|
|
3800
|
-
|
|
3801
|
-
|
|
3802
|
-
|
|
3803
|
-
|
|
3804
|
-
|
|
3805
|
-
|
|
3806
|
-
|
|
3807
|
-
|
|
3808
|
-
|
|
3809
|
-
|
|
3810
|
-
|
|
3811
|
-
|
|
3950
|
+
<ndt-list-item
|
|
3951
|
+
[title]="permission.name"
|
|
3952
|
+
[description]="permission.description"
|
|
3953
|
+
[isForced]="permission.isForced"
|
|
3954
|
+
[currentValue]="permission.isGranted"
|
|
3955
|
+
[originalValue]="permission.originalValue"
|
|
3956
|
+
>
|
|
3957
|
+
<ndt-select
|
|
3958
|
+
[value]="getPermissionValue(permission)"
|
|
3959
|
+
[options]="permissionValueOptions"
|
|
3960
|
+
[ariaLabel]="'Override state for ' + permission.name"
|
|
3961
|
+
(valueChange)="onPermissionChange(permission.id, $event ?? '')"
|
|
3962
|
+
size="small"
|
|
3963
|
+
/>
|
|
3964
|
+
</ndt-list-item>
|
|
3812
3965
|
}
|
|
3813
|
-
</
|
|
3814
|
-
}
|
|
3966
|
+
</ndt-list>
|
|
3815
3967
|
</div>
|
|
3816
3968
|
</ndt-toolbar-tool>
|
|
3817
|
-
`, isInline: true, styles: [".container{display:flex;flex-direction:column;height:100%}.header{flex-shrink:0;display:flex;gap:var(--ndt-spacing-sm);margin-bottom:var(--ndt-spacing-md)
|
|
3969
|
+
`, isInline: true, styles: [".container{display:flex;flex-direction:column;height:100%}.header{flex-shrink:0;display:flex;gap:var(--ndt-spacing-sm);margin-bottom:var(--ndt-spacing-md);ndt-input{flex:1}.filter-wrapper{flex:0 0 auto;display:flex;align-items:center;gap:var(--ndt-spacing-md);.filter-icon{width:18px;height:18px;flex-shrink:0;opacity:.6}ndt-select{flex:0 0 auto;min-width:180px}}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "component", type: DevToolbarToolComponent, selector: "ndt-toolbar-tool", inputs: ["options", "icon", "title"] }, { kind: "component", type: DevToolbarInputComponent, selector: "ndt-input", inputs: ["value", "type", "placeholder", "ariaLabel", "inputClass"], outputs: ["valueChange"] }, { kind: "component", type: DevToolbarSelectComponent, selector: "ndt-select", inputs: ["value", "options", "ariaLabel", "label", "size"], outputs: ["valueChange"] }, { kind: "component", type: DevToolbarIconComponent, selector: "ndt-icon", inputs: ["name"] }, { kind: "component", type: DevToolbarListComponent, selector: "ndt-list", inputs: ["hasItems", "hasResults", "emptyMessage", "emptyHint", "noResultsMessage"] }, { kind: "component", type: DevToolbarListItemComponent, selector: "ndt-list-item", inputs: ["title", "description", "isForced", "currentValue", "originalValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3818
3970
|
}
|
|
3819
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
3971
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarPermissionsToolComponent, decorators: [{
|
|
3820
3972
|
type: Component,
|
|
3821
3973
|
args: [{ selector: 'ndt-permissions-tool', standalone: true, imports: [
|
|
3822
3974
|
FormsModule,
|
|
@@ -3824,6 +3976,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
3824
3976
|
DevToolbarInputComponent,
|
|
3825
3977
|
DevToolbarSelectComponent,
|
|
3826
3978
|
DevToolbarIconComponent,
|
|
3979
|
+
DevToolbarListComponent,
|
|
3980
|
+
DevToolbarListItemComponent,
|
|
3827
3981
|
], template: `
|
|
3828
3982
|
<ndt-toolbar-tool
|
|
3829
3983
|
[options]="options"
|
|
@@ -3850,38 +4004,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
3850
4004
|
</div>
|
|
3851
4005
|
</div>
|
|
3852
4006
|
|
|
3853
|
-
|
|
3854
|
-
|
|
3855
|
-
|
|
3856
|
-
|
|
3857
|
-
|
|
3858
|
-
|
|
3859
|
-
|
|
3860
|
-
<p>No permissions match your filter</p>
|
|
3861
|
-
</div>
|
|
3862
|
-
} @else {
|
|
3863
|
-
<div class="permission-list">
|
|
4007
|
+
<ndt-list
|
|
4008
|
+
[hasItems]="!hasNoPermissions()"
|
|
4009
|
+
[hasResults]="!hasNoFilteredPermissions()"
|
|
4010
|
+
emptyMessage="No permissions found"
|
|
4011
|
+
[emptyHint]="'Call setAvailableOptions() to configure permissions'"
|
|
4012
|
+
noResultsMessage="No permissions match your filter"
|
|
4013
|
+
>
|
|
3864
4014
|
@for (permission of filteredPermissions(); track permission.id) {
|
|
3865
|
-
|
|
3866
|
-
|
|
3867
|
-
|
|
3868
|
-
|
|
3869
|
-
|
|
3870
|
-
|
|
3871
|
-
|
|
3872
|
-
|
|
3873
|
-
|
|
3874
|
-
|
|
3875
|
-
|
|
3876
|
-
|
|
3877
|
-
|
|
3878
|
-
|
|
4015
|
+
<ndt-list-item
|
|
4016
|
+
[title]="permission.name"
|
|
4017
|
+
[description]="permission.description"
|
|
4018
|
+
[isForced]="permission.isForced"
|
|
4019
|
+
[currentValue]="permission.isGranted"
|
|
4020
|
+
[originalValue]="permission.originalValue"
|
|
4021
|
+
>
|
|
4022
|
+
<ndt-select
|
|
4023
|
+
[value]="getPermissionValue(permission)"
|
|
4024
|
+
[options]="permissionValueOptions"
|
|
4025
|
+
[ariaLabel]="'Override state for ' + permission.name"
|
|
4026
|
+
(valueChange)="onPermissionChange(permission.id, $event ?? '')"
|
|
4027
|
+
size="small"
|
|
4028
|
+
/>
|
|
4029
|
+
</ndt-list-item>
|
|
3879
4030
|
}
|
|
3880
|
-
</
|
|
3881
|
-
}
|
|
4031
|
+
</ndt-list>
|
|
3882
4032
|
</div>
|
|
3883
4033
|
</ndt-toolbar-tool>
|
|
3884
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".container{display:flex;flex-direction:column;height:100%}.header{flex-shrink:0;display:flex;gap:var(--ndt-spacing-sm);margin-bottom:var(--ndt-spacing-md)
|
|
4034
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".container{display:flex;flex-direction:column;height:100%}.header{flex-shrink:0;display:flex;gap:var(--ndt-spacing-sm);margin-bottom:var(--ndt-spacing-md);ndt-input{flex:1}.filter-wrapper{flex:0 0 auto;display:flex;align-items:center;gap:var(--ndt-spacing-md);.filter-icon{width:18px;height:18px;flex-shrink:0;opacity:.6}ndt-select{flex:0 0 auto;min-width:180px}}}\n"] }]
|
|
3885
4035
|
}] });
|
|
3886
4036
|
|
|
3887
4037
|
/**
|
|
@@ -3905,14 +4055,14 @@ class DevToolbarInternalPresetsService {
|
|
|
3905
4055
|
/**
|
|
3906
4056
|
* Capture current toolbar state as a new preset
|
|
3907
4057
|
*/
|
|
3908
|
-
saveCurrentAsPreset(name, description) {
|
|
4058
|
+
saveCurrentAsPreset(name, description, categoryOptions) {
|
|
3909
4059
|
const preset = {
|
|
3910
4060
|
id: this.generateId(),
|
|
3911
4061
|
name,
|
|
3912
4062
|
description,
|
|
3913
4063
|
createdAt: new Date().toISOString(),
|
|
3914
4064
|
updatedAt: new Date().toISOString(),
|
|
3915
|
-
config: this.captureCurrentConfig(),
|
|
4065
|
+
config: this.captureCurrentConfig(categoryOptions),
|
|
3916
4066
|
};
|
|
3917
4067
|
const presets = [...this.presetsSubject.value, preset];
|
|
3918
4068
|
this.presetsSubject.next(presets);
|
|
@@ -3982,12 +4132,42 @@ class DevToolbarInternalPresetsService {
|
|
|
3982
4132
|
/**
|
|
3983
4133
|
* Capture current configuration from all tools
|
|
3984
4134
|
*/
|
|
3985
|
-
captureCurrentConfig() {
|
|
4135
|
+
captureCurrentConfig(categoryOptions) {
|
|
4136
|
+
// Default to including all categories if not specified
|
|
4137
|
+
const options = {
|
|
4138
|
+
includeFeatureFlags: categoryOptions?.includeFeatureFlags ?? true,
|
|
4139
|
+
includePermissions: categoryOptions?.includePermissions ?? true,
|
|
4140
|
+
includeAppFeatures: categoryOptions?.includeAppFeatures ?? true,
|
|
4141
|
+
includeLanguage: categoryOptions?.includeLanguage ?? true,
|
|
4142
|
+
};
|
|
4143
|
+
// Get current forced states
|
|
4144
|
+
const currentFlags = this.featureFlagsService.getCurrentForcedState();
|
|
4145
|
+
const currentPerms = this.permissionsService.getCurrentForcedState();
|
|
4146
|
+
const currentFeatures = this.appFeaturesService.getCurrentForcedState();
|
|
4147
|
+
// Filter by selected IDs if provided
|
|
4148
|
+
const filterById = (ids, selected) => selected && selected.length > 0 ? ids.filter((id) => selected.includes(id)) : ids;
|
|
3986
4149
|
return {
|
|
3987
|
-
featureFlags:
|
|
3988
|
-
|
|
3989
|
-
|
|
3990
|
-
|
|
4150
|
+
featureFlags: options.includeFeatureFlags
|
|
4151
|
+
? {
|
|
4152
|
+
enabled: filterById(currentFlags.enabled, categoryOptions?.selectedFlagIds),
|
|
4153
|
+
disabled: filterById(currentFlags.disabled, categoryOptions?.selectedFlagIds),
|
|
4154
|
+
}
|
|
4155
|
+
: { enabled: [], disabled: [] },
|
|
4156
|
+
language: options.includeLanguage
|
|
4157
|
+
? this.languageService.getCurrentForcedLanguage()
|
|
4158
|
+
: null,
|
|
4159
|
+
permissions: options.includePermissions
|
|
4160
|
+
? {
|
|
4161
|
+
granted: filterById(currentPerms.granted, categoryOptions?.selectedPermissionIds),
|
|
4162
|
+
denied: filterById(currentPerms.denied, categoryOptions?.selectedPermissionIds),
|
|
4163
|
+
}
|
|
4164
|
+
: { granted: [], denied: [] },
|
|
4165
|
+
appFeatures: options.includeAppFeatures
|
|
4166
|
+
? {
|
|
4167
|
+
enabled: filterById(currentFeatures.enabled, categoryOptions?.selectedFeatureIds),
|
|
4168
|
+
disabled: filterById(currentFeatures.disabled, categoryOptions?.selectedFeatureIds),
|
|
4169
|
+
}
|
|
4170
|
+
: { enabled: [], disabled: [] },
|
|
3991
4171
|
};
|
|
3992
4172
|
}
|
|
3993
4173
|
/**
|
|
@@ -4010,10 +4190,10 @@ class DevToolbarInternalPresetsService {
|
|
|
4010
4190
|
generateId() {
|
|
4011
4191
|
return `preset-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
4012
4192
|
}
|
|
4013
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
4014
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.
|
|
4193
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarInternalPresetsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4194
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarInternalPresetsService, providedIn: 'root' }); }
|
|
4015
4195
|
}
|
|
4016
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
4196
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarInternalPresetsService, decorators: [{
|
|
4017
4197
|
type: Injectable,
|
|
4018
4198
|
args: [{ providedIn: 'root' }]
|
|
4019
4199
|
}], ctorParameters: () => [] });
|
|
@@ -4026,11 +4206,20 @@ class DevToolbarPresetsToolComponent {
|
|
|
4026
4206
|
this.permissionsService = inject(DevToolbarInternalPermissionsService);
|
|
4027
4207
|
this.appFeaturesService = inject(DevToolbarInternalAppFeaturesService);
|
|
4028
4208
|
this.languageService = inject(DevToolbarInternalLanguageService);
|
|
4209
|
+
this.state = inject(DevToolbarStateService);
|
|
4029
4210
|
// Signals
|
|
4030
4211
|
this.viewMode = signal('list');
|
|
4031
4212
|
this.searchQuery = signal('');
|
|
4032
4213
|
this.presetName = signal('');
|
|
4033
4214
|
this.presetDescription = signal('');
|
|
4215
|
+
this.includeFeatureFlags = signal(true);
|
|
4216
|
+
this.includePermissions = signal(true);
|
|
4217
|
+
this.includeAppFeatures = signal(true);
|
|
4218
|
+
this.includeLanguage = signal(true);
|
|
4219
|
+
// Track selected individual items
|
|
4220
|
+
this.selectedFlagIds = signal(new Set());
|
|
4221
|
+
this.selectedPermissionIds = signal(new Set());
|
|
4222
|
+
this.selectedFeatureIds = signal(new Set());
|
|
4034
4223
|
this.presets = this.presetsService.presets;
|
|
4035
4224
|
this.filteredPresets = computed(() => {
|
|
4036
4225
|
const query = this.searchQuery().toLowerCase();
|
|
@@ -4039,6 +4228,21 @@ class DevToolbarPresetsToolComponent {
|
|
|
4039
4228
|
});
|
|
4040
4229
|
this.hasNoPresets = computed(() => this.presets().length === 0);
|
|
4041
4230
|
this.hasNoFilteredPresets = computed(() => this.filteredPresets().length === 0);
|
|
4231
|
+
// Tool availability (based on config)
|
|
4232
|
+
this.isFeatureFlagsEnabled = computed(() => this.state.config().showFeatureFlagsTool ?? true);
|
|
4233
|
+
this.isPermissionsEnabled = computed(() => this.state.config().showPermissionsTool ?? true);
|
|
4234
|
+
this.isAppFeaturesEnabled = computed(() => this.state.config().showAppFeaturesTool ?? true);
|
|
4235
|
+
this.isLanguageEnabled = computed(() => this.state.config().showLanguageTool ?? true);
|
|
4236
|
+
// Forced items details
|
|
4237
|
+
this.forcedFlags = computed(() => {
|
|
4238
|
+
return this.featureFlagsService.flags().filter((flag) => flag.isForced);
|
|
4239
|
+
});
|
|
4240
|
+
this.forcedPermissions = computed(() => {
|
|
4241
|
+
return this.permissionsService.permissions().filter((perm) => perm.isForced);
|
|
4242
|
+
});
|
|
4243
|
+
this.forcedAppFeatures = computed(() => {
|
|
4244
|
+
return this.appFeaturesService.features().filter((feat) => feat.isForced);
|
|
4245
|
+
});
|
|
4042
4246
|
// Other properties
|
|
4043
4247
|
this.options = {
|
|
4044
4248
|
title: 'Presets',
|
|
@@ -4057,6 +4261,16 @@ class DevToolbarPresetsToolComponent {
|
|
|
4057
4261
|
this.viewMode.set('create');
|
|
4058
4262
|
this.presetName.set('');
|
|
4059
4263
|
this.presetDescription.set('');
|
|
4264
|
+
// Reset checkboxes - only enable categories that have forced items
|
|
4265
|
+
this.includeFeatureFlags.set(this.getCurrentFlagsCount() > 0);
|
|
4266
|
+
this.includePermissions.set(this.getCurrentPermissionsCount() > 0);
|
|
4267
|
+
this.includeAppFeatures.set(this.getCurrentAppFeaturesCount() > 0);
|
|
4268
|
+
const currentLang = this.getCurrentLanguage();
|
|
4269
|
+
this.includeLanguage.set(!!currentLang && currentLang !== 'Not Forced');
|
|
4270
|
+
// Initialize selected items - select all by default
|
|
4271
|
+
this.selectedFlagIds.set(new Set(this.forcedFlags().map((f) => f.id)));
|
|
4272
|
+
this.selectedPermissionIds.set(new Set(this.forcedPermissions().map((p) => p.id)));
|
|
4273
|
+
this.selectedFeatureIds.set(new Set(this.forcedAppFeatures().map((f) => f.id)));
|
|
4060
4274
|
}
|
|
4061
4275
|
onSwitchToListMode() {
|
|
4062
4276
|
this.viewMode.set('list');
|
|
@@ -4065,7 +4279,15 @@ class DevToolbarPresetsToolComponent {
|
|
|
4065
4279
|
event.preventDefault();
|
|
4066
4280
|
if (!this.presetName())
|
|
4067
4281
|
return;
|
|
4068
|
-
this.presetsService.saveCurrentAsPreset(this.presetName(), this.presetDescription()
|
|
4282
|
+
this.presetsService.saveCurrentAsPreset(this.presetName(), this.presetDescription(), {
|
|
4283
|
+
includeFeatureFlags: this.includeFeatureFlags(),
|
|
4284
|
+
includePermissions: this.includePermissions(),
|
|
4285
|
+
includeAppFeatures: this.includeAppFeatures(),
|
|
4286
|
+
includeLanguage: this.includeLanguage(),
|
|
4287
|
+
selectedFlagIds: Array.from(this.selectedFlagIds()),
|
|
4288
|
+
selectedPermissionIds: Array.from(this.selectedPermissionIds()),
|
|
4289
|
+
selectedFeatureIds: Array.from(this.selectedFeatureIds()),
|
|
4290
|
+
});
|
|
4069
4291
|
this.onSwitchToListMode();
|
|
4070
4292
|
}
|
|
4071
4293
|
onApplyPreset(presetId) {
|
|
@@ -4111,8 +4333,27 @@ class DevToolbarPresetsToolComponent {
|
|
|
4111
4333
|
formatDate(isoString) {
|
|
4112
4334
|
return new Date(isoString).toLocaleDateString();
|
|
4113
4335
|
}
|
|
4114
|
-
|
|
4115
|
-
|
|
4336
|
+
/**
|
|
4337
|
+
* Toggle selection of an individual item
|
|
4338
|
+
*/
|
|
4339
|
+
toggleItemSelection(signal, itemId) {
|
|
4340
|
+
const current = new Set(signal());
|
|
4341
|
+
if (current.has(itemId)) {
|
|
4342
|
+
current.delete(itemId);
|
|
4343
|
+
}
|
|
4344
|
+
else {
|
|
4345
|
+
current.add(itemId);
|
|
4346
|
+
}
|
|
4347
|
+
signal.set(current);
|
|
4348
|
+
}
|
|
4349
|
+
/**
|
|
4350
|
+
* Check if an item is selected
|
|
4351
|
+
*/
|
|
4352
|
+
isItemSelected(selectedSet, itemId) {
|
|
4353
|
+
return selectedSet.has(itemId);
|
|
4354
|
+
}
|
|
4355
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarPresetsToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4356
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: DevToolbarPresetsToolComponent, isStandalone: true, selector: "ndt-presets-tool", ngImport: i0, template: `
|
|
4116
4357
|
<ndt-toolbar-tool [options]="options" title="Presets" icon="layout">
|
|
4117
4358
|
<div class="container">
|
|
4118
4359
|
<!-- Mode Toggle -->
|
|
@@ -4160,15 +4401,122 @@ class DevToolbarPresetsToolComponent {
|
|
|
4160
4401
|
[ariaLabel]="'Preset description'"
|
|
4161
4402
|
/>
|
|
4162
4403
|
|
|
4163
|
-
<!--
|
|
4404
|
+
<!-- Category selection checkboxes -->
|
|
4164
4405
|
<div class="preset-summary">
|
|
4165
|
-
<h4>
|
|
4166
|
-
|
|
4167
|
-
|
|
4168
|
-
|
|
4169
|
-
<
|
|
4170
|
-
|
|
4171
|
-
|
|
4406
|
+
<h4>Select what to include:</h4>
|
|
4407
|
+
|
|
4408
|
+
@if (isFeatureFlagsEnabled()) {
|
|
4409
|
+
<div class="category-section">
|
|
4410
|
+
<label class="checkbox-option">
|
|
4411
|
+
<input
|
|
4412
|
+
type="checkbox"
|
|
4413
|
+
[checked]="includeFeatureFlags()"
|
|
4414
|
+
(change)="includeFeatureFlags.set(!includeFeatureFlags())"
|
|
4415
|
+
[disabled]="getCurrentFlagsCount() === 0"
|
|
4416
|
+
/>
|
|
4417
|
+
<span>Feature Flags ({{ getCurrentFlagsCount() }} forced)</span>
|
|
4418
|
+
</label>
|
|
4419
|
+
@if (forcedFlags().length > 0) {
|
|
4420
|
+
<ul class="forced-items-list">
|
|
4421
|
+
@for (flag of forcedFlags(); track flag.id) {
|
|
4422
|
+
<li>
|
|
4423
|
+
<label class="item-checkbox">
|
|
4424
|
+
<input
|
|
4425
|
+
type="checkbox"
|
|
4426
|
+
[checked]="isItemSelected(selectedFlagIds(), flag.id)"
|
|
4427
|
+
(change)="toggleItemSelection(selectedFlagIds, flag.id)"
|
|
4428
|
+
/>
|
|
4429
|
+
<span class="item-name">{{ flag.name }}</span>
|
|
4430
|
+
<span class="item-status" [class.enabled]="flag.isEnabled" [class.disabled]="!flag.isEnabled">
|
|
4431
|
+
{{ flag.isEnabled ? 'ON' : 'OFF' }}
|
|
4432
|
+
</span>
|
|
4433
|
+
</label>
|
|
4434
|
+
</li>
|
|
4435
|
+
}
|
|
4436
|
+
</ul>
|
|
4437
|
+
}
|
|
4438
|
+
</div>
|
|
4439
|
+
}
|
|
4440
|
+
|
|
4441
|
+
@if (isPermissionsEnabled()) {
|
|
4442
|
+
<div class="category-section">
|
|
4443
|
+
<label class="checkbox-option">
|
|
4444
|
+
<input
|
|
4445
|
+
type="checkbox"
|
|
4446
|
+
[checked]="includePermissions()"
|
|
4447
|
+
(change)="includePermissions.set(!includePermissions())"
|
|
4448
|
+
[disabled]="getCurrentPermissionsCount() === 0"
|
|
4449
|
+
/>
|
|
4450
|
+
<span>Permissions ({{ getCurrentPermissionsCount() }} forced)</span>
|
|
4451
|
+
</label>
|
|
4452
|
+
@if (forcedPermissions().length > 0) {
|
|
4453
|
+
<ul class="forced-items-list">
|
|
4454
|
+
@for (perm of forcedPermissions(); track perm.id) {
|
|
4455
|
+
<li>
|
|
4456
|
+
<label class="item-checkbox">
|
|
4457
|
+
<input
|
|
4458
|
+
type="checkbox"
|
|
4459
|
+
[checked]="isItemSelected(selectedPermissionIds(), perm.id)"
|
|
4460
|
+
(change)="toggleItemSelection(selectedPermissionIds, perm.id)"
|
|
4461
|
+
/>
|
|
4462
|
+
<span class="item-name">{{ perm.name }}</span>
|
|
4463
|
+
<span class="item-status" [class.enabled]="perm.isGranted" [class.disabled]="!perm.isGranted">
|
|
4464
|
+
{{ perm.isGranted ? 'GRANTED' : 'DENIED' }}
|
|
4465
|
+
</span>
|
|
4466
|
+
</label>
|
|
4467
|
+
</li>
|
|
4468
|
+
}
|
|
4469
|
+
</ul>
|
|
4470
|
+
}
|
|
4471
|
+
</div>
|
|
4472
|
+
}
|
|
4473
|
+
|
|
4474
|
+
@if (isAppFeaturesEnabled()) {
|
|
4475
|
+
<div class="category-section">
|
|
4476
|
+
<label class="checkbox-option">
|
|
4477
|
+
<input
|
|
4478
|
+
type="checkbox"
|
|
4479
|
+
[checked]="includeAppFeatures()"
|
|
4480
|
+
(change)="includeAppFeatures.set(!includeAppFeatures())"
|
|
4481
|
+
[disabled]="getCurrentAppFeaturesCount() === 0"
|
|
4482
|
+
/>
|
|
4483
|
+
<span>App Features ({{ getCurrentAppFeaturesCount() }} forced)</span>
|
|
4484
|
+
</label>
|
|
4485
|
+
@if (forcedAppFeatures().length > 0) {
|
|
4486
|
+
<ul class="forced-items-list">
|
|
4487
|
+
@for (feat of forcedAppFeatures(); track feat.id) {
|
|
4488
|
+
<li>
|
|
4489
|
+
<label class="item-checkbox">
|
|
4490
|
+
<input
|
|
4491
|
+
type="checkbox"
|
|
4492
|
+
[checked]="isItemSelected(selectedFeatureIds(), feat.id)"
|
|
4493
|
+
(change)="toggleItemSelection(selectedFeatureIds, feat.id)"
|
|
4494
|
+
/>
|
|
4495
|
+
<span class="item-name">{{ feat.name }}</span>
|
|
4496
|
+
<span class="item-status" [class.enabled]="feat.isEnabled" [class.disabled]="!feat.isEnabled">
|
|
4497
|
+
{{ feat.isEnabled ? 'ON' : 'OFF' }}
|
|
4498
|
+
</span>
|
|
4499
|
+
</label>
|
|
4500
|
+
</li>
|
|
4501
|
+
}
|
|
4502
|
+
</ul>
|
|
4503
|
+
}
|
|
4504
|
+
</div>
|
|
4505
|
+
}
|
|
4506
|
+
|
|
4507
|
+
@if (isLanguageEnabled()) {
|
|
4508
|
+
<div class="category-section">
|
|
4509
|
+
<label class="checkbox-option">
|
|
4510
|
+
<input
|
|
4511
|
+
type="checkbox"
|
|
4512
|
+
[checked]="includeLanguage()"
|
|
4513
|
+
(change)="includeLanguage.set(!includeLanguage())"
|
|
4514
|
+
[disabled]="!getCurrentLanguage() || getCurrentLanguage() === 'Not Forced'"
|
|
4515
|
+
/>
|
|
4516
|
+
<span>Language ({{ getCurrentLanguage() }})</span>
|
|
4517
|
+
</label>
|
|
4518
|
+
</div>
|
|
4519
|
+
}
|
|
4172
4520
|
</div>
|
|
4173
4521
|
|
|
4174
4522
|
<div class="form-actions">
|
|
@@ -4279,9 +4627,9 @@ class DevToolbarPresetsToolComponent {
|
|
|
4279
4627
|
}
|
|
4280
4628
|
</div>
|
|
4281
4629
|
</ndt-toolbar-tool>
|
|
4282
|
-
`, isInline: true, styles: [".container{display:flex;flex-direction:column;height:100%}.header{flex-shrink:0;display:flex;gap:var(--ndt-spacing-sm);margin-bottom:var(--ndt-spacing-md)
|
|
4630
|
+
`, isInline: true, styles: [".container{display:flex;flex-direction:column;height:100%}.header{flex-shrink:0;display:flex;gap:var(--ndt-spacing-sm);margin-bottom:var(--ndt-spacing-md);ndt-input{flex:1}ndt-button{flex-shrink:0}}.empty{display:flex;flex-direction:column;gap:var(--ndt-spacing-md);flex:1;min-height:0;justify-content:center;align-items:center;border:1px solid var(--ndt-border-subtle);border-radius:var(--ndt-border-radius-medium);padding:var(--ndt-spacing-md);background:transparent;color:var(--ndt-text-muted);text-align:center;p{margin:0}.hint{font-size:var(--ndt-font-size-xs)}}.preset-list{display:flex;flex-direction:column;gap:var(--ndt-spacing-md);flex:1;min-height:0;overflow-y:auto;padding-right:var(--ndt-spacing-sm);&::-webkit-scrollbar{width:8px}&::-webkit-scrollbar-track{background:var(--ndt-background-secondary);border-radius:4px}&::-webkit-scrollbar-thumb{background:var(--ndt-border-primary);border-radius:4px;&:hover{background:var(--ndt-hover-bg)}}scrollbar-width:thin;scrollbar-color:var(--ndt-border-primary) var(--ndt-background-secondary)}.preset-card{background:var(--ndt-background-secondary);padding:var(--ndt-spacing-md);border-radius:var(--ndt-border-radius-medium);display:flex;flex-direction:column;gap:var(--ndt-spacing-sm)}.preset-card__header{display:flex;justify-content:space-between;align-items:center;gap:var(--ndt-spacing-sm);h3{margin:0;font-size:var(--ndt-font-size-md);color:var(--ndt-text-primary);flex:1}}.preset-card__actions{display:flex;gap:var(--ndt-spacing-xs)}.icon-button{background:transparent;border:none;cursor:pointer;padding:var(--ndt-spacing-xs);border-radius:var(--ndt-border-radius-small);color:var(--ndt-text-secondary);display:flex;align-items:center;justify-content:center;&:hover{background:var(--ndt-hover-bg);color:var(--ndt-text-primary)}ndt-icon{width:16px;height:16px}}.preset-card__description{margin:0;font-size:var(--ndt-font-size-sm);color:var(--ndt-text-secondary)}.preset-card__meta{font-size:var(--ndt-font-size-xs);color:var(--ndt-text-muted);span{margin-right:var(--ndt-spacing-sm)}}.preset-card__preview{display:flex;gap:var(--ndt-spacing-xs);flex-wrap:wrap}.badge{background:var(--ndt-primary-color);color:#fff;padding:2px 8px;border-radius:12px;font-size:var(--ndt-font-size-xs);font-weight:500}.preset-form{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--ndt-spacing-md);padding:var(--ndt-spacing-md);ndt-input{width:100%}}.preset-summary{background:var(--ndt-background-secondary);padding:var(--ndt-spacing-md);border-radius:var(--ndt-border-radius-medium);display:flex;flex-direction:column;gap:var(--ndt-spacing-sm);h4{margin:0;font-size:var(--ndt-font-size-sm);color:var(--ndt-text-primary)}}.category-section{display:flex;flex-direction:column;gap:var(--ndt-spacing-xs)}.checkbox-option{display:flex;align-items:center;gap:var(--ndt-spacing-sm);cursor:pointer;color:var(--ndt-text-secondary);font-size:var(--ndt-font-size-sm);input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--ndt-primary);&:disabled{cursor:not-allowed;opacity:.5}}&:has(input:disabled){opacity:.6;cursor:not-allowed}}.forced-items-list{list-style:none;padding:0;margin:0 0 0 var(--ndt-spacing-lg);display:flex;flex-direction:column;gap:var(--ndt-spacing-xs);font-size:var(--ndt-font-size-xs);li{background:rgba(var(--ndt-primary-rgb),.05);border-radius:var(--ndt-border-radius-small);border-left:2px solid rgba(var(--ndt-primary-rgb),.3)}.item-checkbox{display:flex;justify-content:space-between;align-items:center;padding:var(--ndt-spacing-xs) var(--ndt-spacing-sm);cursor:pointer;gap:var(--ndt-spacing-sm);input[type=checkbox]{cursor:pointer;width:14px;height:14px;accent-color:var(--ndt-primary);flex-shrink:0}&:hover{background:rgba(var(--ndt-primary-rgb),.08)}}.item-name{color:var(--ndt-text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-status{font-weight:600;padding:2px 6px;border-radius:var(--ndt-border-radius-small);font-size:10px;text-transform:uppercase;letter-spacing:.5px;flex-shrink:0;&.enabled{background:#22c55e26;color:#22c55e}&.disabled{background:#ef444426;color:#ef4444}}}.form-actions{display:flex;justify-content:flex-end;gap:var(--ndt-spacing-sm)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: DevToolbarToolComponent, selector: "ndt-toolbar-tool", inputs: ["options", "icon", "title"] }, { kind: "component", type: DevToolbarInputComponent, selector: "ndt-input", inputs: ["value", "type", "placeholder", "ariaLabel", "inputClass"], outputs: ["valueChange"] }, { kind: "component", type: DevToolbarButtonComponent, selector: "ndt-button", inputs: ["type", "variant", "icon", "label", "ariaLabel", "isActive"] }, { kind: "component", type: DevToolbarIconComponent, selector: "ndt-icon", inputs: ["name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4283
4631
|
}
|
|
4284
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
4632
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarPresetsToolComponent, decorators: [{
|
|
4285
4633
|
type: Component,
|
|
4286
4634
|
args: [{ selector: 'ndt-presets-tool', standalone: true, imports: [
|
|
4287
4635
|
FormsModule,
|
|
@@ -4289,7 +4637,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
4289
4637
|
DevToolbarInputComponent,
|
|
4290
4638
|
DevToolbarButtonComponent,
|
|
4291
4639
|
DevToolbarIconComponent,
|
|
4292
|
-
DevToolbarWindowComponent,
|
|
4293
4640
|
], template: `
|
|
4294
4641
|
<ndt-toolbar-tool [options]="options" title="Presets" icon="layout">
|
|
4295
4642
|
<div class="container">
|
|
@@ -4338,15 +4685,122 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
4338
4685
|
[ariaLabel]="'Preset description'"
|
|
4339
4686
|
/>
|
|
4340
4687
|
|
|
4341
|
-
<!--
|
|
4688
|
+
<!-- Category selection checkboxes -->
|
|
4342
4689
|
<div class="preset-summary">
|
|
4343
|
-
<h4>
|
|
4344
|
-
|
|
4345
|
-
|
|
4346
|
-
|
|
4347
|
-
<
|
|
4348
|
-
|
|
4349
|
-
|
|
4690
|
+
<h4>Select what to include:</h4>
|
|
4691
|
+
|
|
4692
|
+
@if (isFeatureFlagsEnabled()) {
|
|
4693
|
+
<div class="category-section">
|
|
4694
|
+
<label class="checkbox-option">
|
|
4695
|
+
<input
|
|
4696
|
+
type="checkbox"
|
|
4697
|
+
[checked]="includeFeatureFlags()"
|
|
4698
|
+
(change)="includeFeatureFlags.set(!includeFeatureFlags())"
|
|
4699
|
+
[disabled]="getCurrentFlagsCount() === 0"
|
|
4700
|
+
/>
|
|
4701
|
+
<span>Feature Flags ({{ getCurrentFlagsCount() }} forced)</span>
|
|
4702
|
+
</label>
|
|
4703
|
+
@if (forcedFlags().length > 0) {
|
|
4704
|
+
<ul class="forced-items-list">
|
|
4705
|
+
@for (flag of forcedFlags(); track flag.id) {
|
|
4706
|
+
<li>
|
|
4707
|
+
<label class="item-checkbox">
|
|
4708
|
+
<input
|
|
4709
|
+
type="checkbox"
|
|
4710
|
+
[checked]="isItemSelected(selectedFlagIds(), flag.id)"
|
|
4711
|
+
(change)="toggleItemSelection(selectedFlagIds, flag.id)"
|
|
4712
|
+
/>
|
|
4713
|
+
<span class="item-name">{{ flag.name }}</span>
|
|
4714
|
+
<span class="item-status" [class.enabled]="flag.isEnabled" [class.disabled]="!flag.isEnabled">
|
|
4715
|
+
{{ flag.isEnabled ? 'ON' : 'OFF' }}
|
|
4716
|
+
</span>
|
|
4717
|
+
</label>
|
|
4718
|
+
</li>
|
|
4719
|
+
}
|
|
4720
|
+
</ul>
|
|
4721
|
+
}
|
|
4722
|
+
</div>
|
|
4723
|
+
}
|
|
4724
|
+
|
|
4725
|
+
@if (isPermissionsEnabled()) {
|
|
4726
|
+
<div class="category-section">
|
|
4727
|
+
<label class="checkbox-option">
|
|
4728
|
+
<input
|
|
4729
|
+
type="checkbox"
|
|
4730
|
+
[checked]="includePermissions()"
|
|
4731
|
+
(change)="includePermissions.set(!includePermissions())"
|
|
4732
|
+
[disabled]="getCurrentPermissionsCount() === 0"
|
|
4733
|
+
/>
|
|
4734
|
+
<span>Permissions ({{ getCurrentPermissionsCount() }} forced)</span>
|
|
4735
|
+
</label>
|
|
4736
|
+
@if (forcedPermissions().length > 0) {
|
|
4737
|
+
<ul class="forced-items-list">
|
|
4738
|
+
@for (perm of forcedPermissions(); track perm.id) {
|
|
4739
|
+
<li>
|
|
4740
|
+
<label class="item-checkbox">
|
|
4741
|
+
<input
|
|
4742
|
+
type="checkbox"
|
|
4743
|
+
[checked]="isItemSelected(selectedPermissionIds(), perm.id)"
|
|
4744
|
+
(change)="toggleItemSelection(selectedPermissionIds, perm.id)"
|
|
4745
|
+
/>
|
|
4746
|
+
<span class="item-name">{{ perm.name }}</span>
|
|
4747
|
+
<span class="item-status" [class.enabled]="perm.isGranted" [class.disabled]="!perm.isGranted">
|
|
4748
|
+
{{ perm.isGranted ? 'GRANTED' : 'DENIED' }}
|
|
4749
|
+
</span>
|
|
4750
|
+
</label>
|
|
4751
|
+
</li>
|
|
4752
|
+
}
|
|
4753
|
+
</ul>
|
|
4754
|
+
}
|
|
4755
|
+
</div>
|
|
4756
|
+
}
|
|
4757
|
+
|
|
4758
|
+
@if (isAppFeaturesEnabled()) {
|
|
4759
|
+
<div class="category-section">
|
|
4760
|
+
<label class="checkbox-option">
|
|
4761
|
+
<input
|
|
4762
|
+
type="checkbox"
|
|
4763
|
+
[checked]="includeAppFeatures()"
|
|
4764
|
+
(change)="includeAppFeatures.set(!includeAppFeatures())"
|
|
4765
|
+
[disabled]="getCurrentAppFeaturesCount() === 0"
|
|
4766
|
+
/>
|
|
4767
|
+
<span>App Features ({{ getCurrentAppFeaturesCount() }} forced)</span>
|
|
4768
|
+
</label>
|
|
4769
|
+
@if (forcedAppFeatures().length > 0) {
|
|
4770
|
+
<ul class="forced-items-list">
|
|
4771
|
+
@for (feat of forcedAppFeatures(); track feat.id) {
|
|
4772
|
+
<li>
|
|
4773
|
+
<label class="item-checkbox">
|
|
4774
|
+
<input
|
|
4775
|
+
type="checkbox"
|
|
4776
|
+
[checked]="isItemSelected(selectedFeatureIds(), feat.id)"
|
|
4777
|
+
(change)="toggleItemSelection(selectedFeatureIds, feat.id)"
|
|
4778
|
+
/>
|
|
4779
|
+
<span class="item-name">{{ feat.name }}</span>
|
|
4780
|
+
<span class="item-status" [class.enabled]="feat.isEnabled" [class.disabled]="!feat.isEnabled">
|
|
4781
|
+
{{ feat.isEnabled ? 'ON' : 'OFF' }}
|
|
4782
|
+
</span>
|
|
4783
|
+
</label>
|
|
4784
|
+
</li>
|
|
4785
|
+
}
|
|
4786
|
+
</ul>
|
|
4787
|
+
}
|
|
4788
|
+
</div>
|
|
4789
|
+
}
|
|
4790
|
+
|
|
4791
|
+
@if (isLanguageEnabled()) {
|
|
4792
|
+
<div class="category-section">
|
|
4793
|
+
<label class="checkbox-option">
|
|
4794
|
+
<input
|
|
4795
|
+
type="checkbox"
|
|
4796
|
+
[checked]="includeLanguage()"
|
|
4797
|
+
(change)="includeLanguage.set(!includeLanguage())"
|
|
4798
|
+
[disabled]="!getCurrentLanguage() || getCurrentLanguage() === 'Not Forced'"
|
|
4799
|
+
/>
|
|
4800
|
+
<span>Language ({{ getCurrentLanguage() }})</span>
|
|
4801
|
+
</label>
|
|
4802
|
+
</div>
|
|
4803
|
+
}
|
|
4350
4804
|
</div>
|
|
4351
4805
|
|
|
4352
4806
|
<div class="form-actions">
|
|
@@ -4457,11 +4911,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
4457
4911
|
}
|
|
4458
4912
|
</div>
|
|
4459
4913
|
</ndt-toolbar-tool>
|
|
4460
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".container{display:flex;flex-direction:column;height:100%}.header{flex-shrink:0;display:flex;gap:var(--ndt-spacing-sm);margin-bottom:var(--ndt-spacing-md)
|
|
4914
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".container{display:flex;flex-direction:column;height:100%}.header{flex-shrink:0;display:flex;gap:var(--ndt-spacing-sm);margin-bottom:var(--ndt-spacing-md);ndt-input{flex:1}ndt-button{flex-shrink:0}}.empty{display:flex;flex-direction:column;gap:var(--ndt-spacing-md);flex:1;min-height:0;justify-content:center;align-items:center;border:1px solid var(--ndt-border-subtle);border-radius:var(--ndt-border-radius-medium);padding:var(--ndt-spacing-md);background:transparent;color:var(--ndt-text-muted);text-align:center;p{margin:0}.hint{font-size:var(--ndt-font-size-xs)}}.preset-list{display:flex;flex-direction:column;gap:var(--ndt-spacing-md);flex:1;min-height:0;overflow-y:auto;padding-right:var(--ndt-spacing-sm);&::-webkit-scrollbar{width:8px}&::-webkit-scrollbar-track{background:var(--ndt-background-secondary);border-radius:4px}&::-webkit-scrollbar-thumb{background:var(--ndt-border-primary);border-radius:4px;&:hover{background:var(--ndt-hover-bg)}}scrollbar-width:thin;scrollbar-color:var(--ndt-border-primary) var(--ndt-background-secondary)}.preset-card{background:var(--ndt-background-secondary);padding:var(--ndt-spacing-md);border-radius:var(--ndt-border-radius-medium);display:flex;flex-direction:column;gap:var(--ndt-spacing-sm)}.preset-card__header{display:flex;justify-content:space-between;align-items:center;gap:var(--ndt-spacing-sm);h3{margin:0;font-size:var(--ndt-font-size-md);color:var(--ndt-text-primary);flex:1}}.preset-card__actions{display:flex;gap:var(--ndt-spacing-xs)}.icon-button{background:transparent;border:none;cursor:pointer;padding:var(--ndt-spacing-xs);border-radius:var(--ndt-border-radius-small);color:var(--ndt-text-secondary);display:flex;align-items:center;justify-content:center;&:hover{background:var(--ndt-hover-bg);color:var(--ndt-text-primary)}ndt-icon{width:16px;height:16px}}.preset-card__description{margin:0;font-size:var(--ndt-font-size-sm);color:var(--ndt-text-secondary)}.preset-card__meta{font-size:var(--ndt-font-size-xs);color:var(--ndt-text-muted);span{margin-right:var(--ndt-spacing-sm)}}.preset-card__preview{display:flex;gap:var(--ndt-spacing-xs);flex-wrap:wrap}.badge{background:var(--ndt-primary-color);color:#fff;padding:2px 8px;border-radius:12px;font-size:var(--ndt-font-size-xs);font-weight:500}.preset-form{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--ndt-spacing-md);padding:var(--ndt-spacing-md);ndt-input{width:100%}}.preset-summary{background:var(--ndt-background-secondary);padding:var(--ndt-spacing-md);border-radius:var(--ndt-border-radius-medium);display:flex;flex-direction:column;gap:var(--ndt-spacing-sm);h4{margin:0;font-size:var(--ndt-font-size-sm);color:var(--ndt-text-primary)}}.category-section{display:flex;flex-direction:column;gap:var(--ndt-spacing-xs)}.checkbox-option{display:flex;align-items:center;gap:var(--ndt-spacing-sm);cursor:pointer;color:var(--ndt-text-secondary);font-size:var(--ndt-font-size-sm);input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--ndt-primary);&:disabled{cursor:not-allowed;opacity:.5}}&:has(input:disabled){opacity:.6;cursor:not-allowed}}.forced-items-list{list-style:none;padding:0;margin:0 0 0 var(--ndt-spacing-lg);display:flex;flex-direction:column;gap:var(--ndt-spacing-xs);font-size:var(--ndt-font-size-xs);li{background:rgba(var(--ndt-primary-rgb),.05);border-radius:var(--ndt-border-radius-small);border-left:2px solid rgba(var(--ndt-primary-rgb),.3)}.item-checkbox{display:flex;justify-content:space-between;align-items:center;padding:var(--ndt-spacing-xs) var(--ndt-spacing-sm);cursor:pointer;gap:var(--ndt-spacing-sm);input[type=checkbox]{cursor:pointer;width:14px;height:14px;accent-color:var(--ndt-primary);flex-shrink:0}&:hover{background:rgba(var(--ndt-primary-rgb),.08)}}.item-name{color:var(--ndt-text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-status{font-weight:600;padding:2px 6px;border-radius:var(--ndt-border-radius-small);font-size:10px;text-transform:uppercase;letter-spacing:.5px;flex-shrink:0;&.enabled{background:#22c55e26;color:#22c55e}&.disabled{background:#ef444426;color:#ef4444}}}.form-actions{display:flex;justify-content:flex-end;gap:var(--ndt-spacing-sm)}\n"] }]
|
|
4461
4915
|
}] });
|
|
4462
4916
|
|
|
4463
4917
|
class DevToolbarComponent {
|
|
4464
4918
|
constructor() {
|
|
4919
|
+
this.document = inject(DOCUMENT);
|
|
4465
4920
|
this.state = inject(DevToolbarStateService);
|
|
4466
4921
|
this.destroyRef = inject(DestroyRef);
|
|
4467
4922
|
this.settingsService = inject(SettingsService);
|
|
@@ -4472,10 +4927,18 @@ class DevToolbarComponent {
|
|
|
4472
4927
|
this.mouseLeave = fromEvent(document, 'mouseleave')
|
|
4473
4928
|
.pipe(throttleTime(3000), takeUntilDestroyed(this.destroyRef))
|
|
4474
4929
|
.subscribe(() => this.onMouseLeave());
|
|
4930
|
+
// Update state service when config changes
|
|
4931
|
+
effect(() => {
|
|
4932
|
+
this.state.setConfig(this.config());
|
|
4933
|
+
});
|
|
4475
4934
|
}
|
|
4476
4935
|
ngOnInit() {
|
|
4477
|
-
|
|
4478
|
-
|
|
4936
|
+
this.injectGlobalStyles();
|
|
4937
|
+
// Always use light theme
|
|
4938
|
+
this.state.setTheme('light');
|
|
4939
|
+
}
|
|
4940
|
+
ngOnDestroy() {
|
|
4941
|
+
this.globalStyleElement?.remove();
|
|
4479
4942
|
}
|
|
4480
4943
|
onMouseEnter() {
|
|
4481
4944
|
this.state.setVisibility(true);
|
|
@@ -4486,36 +4949,106 @@ class DevToolbarComponent {
|
|
|
4486
4949
|
toggleDevTools() {
|
|
4487
4950
|
this.state.setVisibility(!this.state.isVisible());
|
|
4488
4951
|
}
|
|
4489
|
-
|
|
4490
|
-
|
|
4952
|
+
/**
|
|
4953
|
+
* Injects global theme styles into the document head to make CSS variables
|
|
4954
|
+
* available to CDK overlays and other elements rendered outside Shadow DOM.
|
|
4955
|
+
* Uses light theme only.
|
|
4956
|
+
*/
|
|
4957
|
+
injectGlobalStyles() {
|
|
4958
|
+
// Check if styles are already injected (e.g., by another toolbar instance)
|
|
4959
|
+
if (this.document.getElementById('ndt-global-theme')) {
|
|
4960
|
+
return;
|
|
4961
|
+
}
|
|
4962
|
+
this.globalStyleElement = this.document.createElement('style');
|
|
4963
|
+
this.globalStyleElement.id = 'ndt-global-theme';
|
|
4964
|
+
this.globalStyleElement.textContent = `
|
|
4965
|
+
/* Global Light Theme for ngx-dev-toolbar overlays */
|
|
4966
|
+
:where(ndt-toolbar),
|
|
4967
|
+
.ndt-overlay-panel,
|
|
4968
|
+
.cdk-overlay-container {
|
|
4969
|
+
--ndt-border-radius-small: 4px;
|
|
4970
|
+
--ndt-border-radius-medium: 8px;
|
|
4971
|
+
--ndt-border-radius-large: 12px;
|
|
4972
|
+
--ndt-transition-default: all 0.2s ease-out;
|
|
4973
|
+
--ndt-transition-smooth: all 0.2s ease-in-out;
|
|
4974
|
+
--ndt-spacing-xs: 4px;
|
|
4975
|
+
--ndt-spacing-sm: 6px;
|
|
4976
|
+
--ndt-spacing-md: 12px;
|
|
4977
|
+
--ndt-spacing-lg: 16px;
|
|
4978
|
+
--ndt-window-padding: 16px;
|
|
4979
|
+
--ndt-font-size-xs: 0.75rem;
|
|
4980
|
+
--ndt-font-size-sm: 0.875rem;
|
|
4981
|
+
--ndt-font-size-md: 1rem;
|
|
4982
|
+
--ndt-font-size-lg: 1.25rem;
|
|
4983
|
+
--ndt-font-size-xl: 2rem;
|
|
4984
|
+
--ndt-primary: #df30d4;
|
|
4985
|
+
--ndt-primary-rgb: 223, 48, 212;
|
|
4986
|
+
--ndt-text-on-primary: rgb(255, 255, 255);
|
|
4987
|
+
--ndt-bg-primary: rgb(255, 255, 255);
|
|
4988
|
+
--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, 0.88) 100%);
|
|
4989
|
+
--ndt-text-primary: rgb(17, 24, 39);
|
|
4990
|
+
--ndt-text-secondary: rgb(55, 65, 81);
|
|
4991
|
+
--ndt-text-muted: rgb(107, 114, 128);
|
|
4992
|
+
--ndt-border-primary: #e5e7eb;
|
|
4993
|
+
--ndt-border-subtle: rgba(17, 24, 39, 0.1);
|
|
4994
|
+
--ndt-hover-bg: rgba(17, 24, 39, 0.05);
|
|
4995
|
+
--ndt-hover-danger: rgb(239, 68, 68);
|
|
4996
|
+
--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, 0.2);
|
|
4997
|
+
--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, 0.05), 0 4px 8px rgba(107, 114, 128, 0.15), 0 2px 4px rgba(107, 114, 128, 0.1);
|
|
4998
|
+
--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, 0.1), 0px 1px 2px 0px rgba(156, 163, 175, 0.12), 0px 4px 4px 0px rgba(156, 163, 175, 0.1), 0px 10px 6px 0px rgba(156, 163, 175, 0.08), 0px 17px 7px 0px rgba(156, 163, 175, 0.05), 0px 26px 7px 0px rgba(156, 163, 175, 0.02);
|
|
4999
|
+
--ndt-background-secondary: var(--ndt-bg-primary);
|
|
5000
|
+
--ndt-background-hover: var(--ndt-hover-bg);
|
|
5001
|
+
--ndt-border-color: var(--ndt-border-primary);
|
|
5002
|
+
--ndt-note-background: rgb(219, 234, 254);
|
|
5003
|
+
--ndt-note-border: rgba(37, 99, 235, 0.2);
|
|
5004
|
+
--ndt-warning-background: rgb(254, 249, 195);
|
|
5005
|
+
--ndt-warning-border: rgba(202, 138, 4, 0.2);
|
|
5006
|
+
--ndt-error-background: rgb(254, 226, 226);
|
|
5007
|
+
--ndt-error-border: rgba(220, 38, 38, 0.2);
|
|
5008
|
+
}
|
|
5009
|
+
.ndt-overlay-panel {
|
|
5010
|
+
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif;
|
|
5011
|
+
box-sizing: border-box;
|
|
5012
|
+
}
|
|
5013
|
+
.ndt-overlay-panel *, .ndt-overlay-panel *::before, .ndt-overlay-panel *::after {
|
|
5014
|
+
box-sizing: border-box;
|
|
5015
|
+
}
|
|
5016
|
+
.cdk-overlay-backdrop.ndt-overlay-backdrop {
|
|
5017
|
+
background: transparent;
|
|
5018
|
+
}
|
|
5019
|
+
`;
|
|
5020
|
+
this.document.head.appendChild(this.globalStyleElement);
|
|
5021
|
+
}
|
|
5022
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5023
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.7", type: DevToolbarComponent, isStandalone: true, selector: "ndt-toolbar", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
4491
5024
|
<div
|
|
4492
5025
|
aria-label="Developer tools"
|
|
4493
5026
|
role="toolbar"
|
|
4494
|
-
class="
|
|
5027
|
+
class="ndt-toolbar"
|
|
4495
5028
|
[@toolbarState]="state.isVisible() ? 'visible' : 'hidden'"
|
|
4496
5029
|
[attr.data-theme]="state.theme()"
|
|
4497
|
-
[class.
|
|
5030
|
+
[class.ndt-toolbar--active]="state.isVisible()"
|
|
4498
5031
|
(mouseenter)="onMouseEnter()"
|
|
4499
5032
|
>
|
|
4500
5033
|
<ndt-home-tool />
|
|
4501
|
-
|
|
5034
|
+
<ng-content />
|
|
5035
|
+
@if (config().showLanguageTool ?? false) {
|
|
4502
5036
|
<ndt-language-tool />
|
|
4503
5037
|
}
|
|
4504
|
-
@if (config().
|
|
4505
|
-
<ndt-
|
|
5038
|
+
@if (config().showPresetsTool ?? false) {
|
|
5039
|
+
<ndt-presets-tool />
|
|
4506
5040
|
}
|
|
4507
|
-
@if (config().showAppFeaturesTool ??
|
|
5041
|
+
@if (config().showAppFeaturesTool ?? false) {
|
|
4508
5042
|
<ndt-app-features-tool />
|
|
4509
5043
|
}
|
|
4510
|
-
@if (config().showPermissionsTool ??
|
|
5044
|
+
@if (config().showPermissionsTool ?? false) {
|
|
4511
5045
|
<ndt-permissions-tool />
|
|
4512
5046
|
}
|
|
4513
|
-
@if (config().
|
|
4514
|
-
<ndt-
|
|
5047
|
+
@if (config().showFeatureFlagsTool ?? false) {
|
|
5048
|
+
<ndt-feature-flags-tool />
|
|
4515
5049
|
}
|
|
4516
|
-
<ng-content />
|
|
4517
5050
|
</div>
|
|
4518
|
-
`, isInline: true, styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2);
|
|
5051
|
+
`, isInline: true, styles: [":host{display:contents;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\"}.ndt-toolbar{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2);position:fixed;bottom:0;left:50%;z-index:999999;transform:translate(-50%);display:flex;pointer-events:auto;background:var(--ndt-bg-primary);border:1px solid var(--ndt-border-primary);border-radius:9999px;box-shadow:var(--ndt-shadow-toolbar);height:40px;overflow:hidden}.ndt-toolbar--active{opacity:1}h1,h2,h3,h4,h5{font-weight:600;color:var(--ndt-text-primary);margin:0}h1{font-size:var(--ndt-font-size-xl)}h2{font-size:var(--ndt-font-size-lg)}h3{font-size:var(--ndt-font-size-md)}h4{font-size:var(--ndt-font-size-sm)}h5{font-size:var(--ndt-font-size-xs)}hr{border:1px solid var(--ndt-border-subtle);margin:1em 0}p{line-height:1.5em;margin:0}\n"], dependencies: [{ kind: "component", type: DevToolbarHomeToolComponent, selector: "ndt-home-tool", inputs: ["badge"] }, { kind: "component", type: DevToolbarLanguageToolComponent, selector: "ndt-language-tool" }, { kind: "component", type: DevToolbarFeatureFlagsToolComponent, selector: "ndt-feature-flags-tool" }, { kind: "component", type: DevToolbarAppFeaturesToolComponent, selector: "ndt-app-features-tool" }, { kind: "component", type: DevToolbarPermissionsToolComponent, selector: "ndt-permissions-tool" }, { kind: "component", type: DevToolbarPresetsToolComponent, selector: "ndt-presets-tool" }], animations: [
|
|
4519
5052
|
trigger('toolbarState', [
|
|
4520
5053
|
state('hidden', style({
|
|
4521
5054
|
transform: 'translate(-50%, calc(100% + -1.2rem))',
|
|
@@ -4529,7 +5062,7 @@ class DevToolbarComponent {
|
|
|
4529
5062
|
]),
|
|
4530
5063
|
], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
|
|
4531
5064
|
}
|
|
4532
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
5065
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarComponent, decorators: [{
|
|
4533
5066
|
type: Component,
|
|
4534
5067
|
args: [{ standalone: true, selector: 'ndt-toolbar', encapsulation: ViewEncapsulation.ShadowDom, imports: [
|
|
4535
5068
|
DevToolbarHomeToolComponent,
|
|
@@ -4542,29 +5075,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
4542
5075
|
<div
|
|
4543
5076
|
aria-label="Developer tools"
|
|
4544
5077
|
role="toolbar"
|
|
4545
|
-
class="
|
|
5078
|
+
class="ndt-toolbar"
|
|
4546
5079
|
[@toolbarState]="state.isVisible() ? 'visible' : 'hidden'"
|
|
4547
5080
|
[attr.data-theme]="state.theme()"
|
|
4548
|
-
[class.
|
|
5081
|
+
[class.ndt-toolbar--active]="state.isVisible()"
|
|
4549
5082
|
(mouseenter)="onMouseEnter()"
|
|
4550
5083
|
>
|
|
4551
5084
|
<ndt-home-tool />
|
|
4552
|
-
|
|
5085
|
+
<ng-content />
|
|
5086
|
+
@if (config().showLanguageTool ?? false) {
|
|
4553
5087
|
<ndt-language-tool />
|
|
4554
5088
|
}
|
|
4555
|
-
@if (config().
|
|
4556
|
-
<ndt-
|
|
5089
|
+
@if (config().showPresetsTool ?? false) {
|
|
5090
|
+
<ndt-presets-tool />
|
|
4557
5091
|
}
|
|
4558
|
-
@if (config().showAppFeaturesTool ??
|
|
5092
|
+
@if (config().showAppFeaturesTool ?? false) {
|
|
4559
5093
|
<ndt-app-features-tool />
|
|
4560
5094
|
}
|
|
4561
|
-
@if (config().showPermissionsTool ??
|
|
5095
|
+
@if (config().showPermissionsTool ?? false) {
|
|
4562
5096
|
<ndt-permissions-tool />
|
|
4563
5097
|
}
|
|
4564
|
-
@if (config().
|
|
4565
|
-
<ndt-
|
|
5098
|
+
@if (config().showFeatureFlagsTool ?? false) {
|
|
5099
|
+
<ndt-feature-flags-tool />
|
|
4566
5100
|
}
|
|
4567
|
-
<ng-content />
|
|
4568
5101
|
</div>
|
|
4569
5102
|
`, animations: [
|
|
4570
5103
|
trigger('toolbarState', [
|
|
@@ -4578,8 +5111,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
4578
5111
|
animate('300ms cubic-bezier(0.4, 0, 0.2, 1)'),
|
|
4579
5112
|
]),
|
|
4580
5113
|
]),
|
|
4581
|
-
], styles: [":host{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2);
|
|
4582
|
-
}] });
|
|
5114
|
+
], styles: [":host{display:contents;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\"}.ndt-toolbar{--ndt-border-radius-small: 4px;--ndt-border-radius-medium: 8px;--ndt-border-radius-large: 12px;--ndt-transition-default: all .2s ease-out;--ndt-transition-smooth: all .2s ease-in-out;--ndt-bg-primary: rgb(255, 255, 255);--ndt-bg-gradient: linear-gradient(180deg, rgb(243, 244, 246) 0%, rgba(243, 244, 246, .88) 100%);--ndt-text-primary: rgb(17, 24, 39);--ndt-text-secondary: rgb(55, 65, 81);--ndt-text-muted: rgb(107, 114, 128);--ndt-border-primary: #e5e7eb;--ndt-border-subtle: rgba(17, 24, 39, .1);--ndt-hover-bg: rgba(17, 24, 39, .05);--ndt-hover-danger: rgb(239, 68, 68);--ndt-shadow-toolbar: 0 2px 8px rgba(156, 163, 175, .2);--ndt-shadow-tooltip: 0 0 0 1px rgba(17, 24, 39, .05), 0 4px 8px rgba(107, 114, 128, .15), 0 2px 4px rgba(107, 114, 128, .1);--ndt-shadow-window: 0px 0px 0px 0px rgba(156, 163, 175, .1), 0px 1px 2px 0px rgba(156, 163, 175, .12), 0px 4px 4px 0px rgba(156, 163, 175, .1), 0px 10px 6px 0px rgba(156, 163, 175, .08), 0px 17px 7px 0px rgba(156, 163, 175, .05), 0px 26px 7px 0px rgba(156, 163, 175, .02);--ndt-spacing-xs: 4px;--ndt-spacing-sm: 6px;--ndt-spacing-md: 12px;--ndt-spacing-lg: 16px;--ndt-window-padding: 16px;--ndt-font-size-xs: .75rem;--ndt-font-size-sm: .875rem;--ndt-font-size-md: 1rem;--ndt-font-size-lg: 1.25rem;--ndt-font-size-xl: 2rem;--ndt-background-secondary: var(--ndt-bg-primary);--ndt-background-hover: var(--ndt-hover-bg);--ndt-primary: #df30d4;--ndt-primary-rgb: 223, 48, 212;--ndt-text-on-primary: rgb(255, 255, 255);--ndt-border-color: var(--ndt-border-primary);--ndt-note-background: rgb(219, 234, 254);--ndt-note-border: rgba(37, 99, 235, .2);--ndt-warning-background: rgb(254, 249, 195);--ndt-warning-border: rgba(202, 138, 4, .2);--ndt-error-background: rgb(254, 226, 226);--ndt-error-border: rgba(220, 38, 38, .2);position:fixed;bottom:0;left:50%;z-index:999999;transform:translate(-50%);display:flex;pointer-events:auto;background:var(--ndt-bg-primary);border:1px solid var(--ndt-border-primary);border-radius:9999px;box-shadow:var(--ndt-shadow-toolbar);height:40px;overflow:hidden}.ndt-toolbar--active{opacity:1}h1,h2,h3,h4,h5{font-weight:600;color:var(--ndt-text-primary);margin:0}h1{font-size:var(--ndt-font-size-xl)}h2{font-size:var(--ndt-font-size-lg)}h3{font-size:var(--ndt-font-size-md)}h4{font-size:var(--ndt-font-size-sm)}h5{font-size:var(--ndt-font-size-xs)}hr{border:1px solid var(--ndt-border-subtle);margin:1em 0}p{line-height:1.5em;margin:0}\n"] }]
|
|
5115
|
+
}], ctorParameters: () => [] });
|
|
4583
5116
|
|
|
4584
5117
|
class DevToolbarFeatureFlagService {
|
|
4585
5118
|
constructor() {
|
|
@@ -4599,10 +5132,36 @@ class DevToolbarFeatureFlagService {
|
|
|
4599
5132
|
getForcedValues() {
|
|
4600
5133
|
return this.internalService.getForcedFlags();
|
|
4601
5134
|
}
|
|
4602
|
-
|
|
4603
|
-
|
|
5135
|
+
/**
|
|
5136
|
+
* Gets ALL flag values with overrides already applied.
|
|
5137
|
+
* Returns the complete set of flags where overridden values replace base values.
|
|
5138
|
+
* Each flag includes an `isForced` property indicating if it was overridden.
|
|
5139
|
+
*
|
|
5140
|
+
* This method simplifies integration by eliminating the need to manually merge
|
|
5141
|
+
* base flags with overrides using combineLatest.
|
|
5142
|
+
*
|
|
5143
|
+
* @returns Observable of all flags with overrides applied
|
|
5144
|
+
*
|
|
5145
|
+
* @example
|
|
5146
|
+
* ```typescript
|
|
5147
|
+
* // Get a specific flag value with overrides applied
|
|
5148
|
+
* this.featureFlagsService.getValues().pipe(
|
|
5149
|
+
* map(flags => flags.find(f => f.id === 'newFeature')),
|
|
5150
|
+
* map(flag => flag?.isEnabled ?? false)
|
|
5151
|
+
* ).subscribe(isEnabled => {
|
|
5152
|
+
* if (isEnabled) {
|
|
5153
|
+
* // Enable feature
|
|
5154
|
+
* }
|
|
5155
|
+
* });
|
|
5156
|
+
* ```
|
|
5157
|
+
*/
|
|
5158
|
+
getValues() {
|
|
5159
|
+
return this.internalService.flags$;
|
|
5160
|
+
}
|
|
5161
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarFeatureFlagService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5162
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarFeatureFlagService, providedIn: 'root' }); }
|
|
4604
5163
|
}
|
|
4605
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
5164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarFeatureFlagService, decorators: [{
|
|
4606
5165
|
type: Injectable,
|
|
4607
5166
|
args: [{ providedIn: 'root' }]
|
|
4608
5167
|
}] });
|
|
@@ -4625,10 +5184,19 @@ class DevToolbarLanguageService {
|
|
|
4625
5184
|
getForcedValues() {
|
|
4626
5185
|
return this.internalService.getForcedLanguage();
|
|
4627
5186
|
}
|
|
4628
|
-
|
|
4629
|
-
|
|
5187
|
+
/**
|
|
5188
|
+
* Gets the forced language value.
|
|
5189
|
+
* For the language tool, this returns the same as getForcedValues() since
|
|
5190
|
+
* only one language can be selected at a time.
|
|
5191
|
+
* @returns Observable of forced language array (single item or empty)
|
|
5192
|
+
*/
|
|
5193
|
+
getValues() {
|
|
5194
|
+
return this.internalService.getForcedLanguage();
|
|
5195
|
+
}
|
|
5196
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarLanguageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5197
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarLanguageService, providedIn: 'root' }); }
|
|
4630
5198
|
}
|
|
4631
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
5199
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarLanguageService, decorators: [{
|
|
4632
5200
|
type: Injectable,
|
|
4633
5201
|
args: [{ providedIn: 'root' }]
|
|
4634
5202
|
}] });
|
|
@@ -4734,6 +5302,32 @@ class DevToolbarAppFeaturesService {
|
|
|
4734
5302
|
getForcedValues() {
|
|
4735
5303
|
return this.internalService.getForcedFeatures();
|
|
4736
5304
|
}
|
|
5305
|
+
/**
|
|
5306
|
+
* Gets ALL app feature values with overrides already applied.
|
|
5307
|
+
* Returns the complete set of features where overridden values replace base values.
|
|
5308
|
+
* Each feature includes an `isForced` property indicating if it was overridden.
|
|
5309
|
+
*
|
|
5310
|
+
* This method simplifies integration by eliminating the need to manually merge
|
|
5311
|
+
* base features with overrides using combineLatest.
|
|
5312
|
+
*
|
|
5313
|
+
* @returns Observable of all features with overrides applied
|
|
5314
|
+
*
|
|
5315
|
+
* @example
|
|
5316
|
+
* ```typescript
|
|
5317
|
+
* // Check if a feature is enabled with overrides applied
|
|
5318
|
+
* this.appFeaturesService.getValues().pipe(
|
|
5319
|
+
* map(features => features.find(f => f.id === 'premium-analytics')),
|
|
5320
|
+
* map(feature => feature?.isEnabled ?? false)
|
|
5321
|
+
* ).subscribe(isEnabled => {
|
|
5322
|
+
* if (isEnabled) {
|
|
5323
|
+
* // Enable premium analytics
|
|
5324
|
+
* }
|
|
5325
|
+
* });
|
|
5326
|
+
* ```
|
|
5327
|
+
*/
|
|
5328
|
+
getValues() {
|
|
5329
|
+
return this.internalService.features$;
|
|
5330
|
+
}
|
|
4737
5331
|
/**
|
|
4738
5332
|
* Apply a preset feature configuration (for preset tool integration).
|
|
4739
5333
|
*
|
|
@@ -4787,10 +5381,10 @@ class DevToolbarAppFeaturesService {
|
|
|
4787
5381
|
getCurrentForcedState() {
|
|
4788
5382
|
return this.internalService.getCurrentForcedState();
|
|
4789
5383
|
}
|
|
4790
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
4791
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.
|
|
5384
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarAppFeaturesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5385
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarAppFeaturesService, providedIn: 'root' }); }
|
|
4792
5386
|
}
|
|
4793
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
5387
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarAppFeaturesService, decorators: [{
|
|
4794
5388
|
type: Injectable,
|
|
4795
5389
|
args: [{ providedIn: 'root' }]
|
|
4796
5390
|
}] });
|
|
@@ -4861,6 +5455,32 @@ class DevToolbarPermissionsService {
|
|
|
4861
5455
|
getForcedValues() {
|
|
4862
5456
|
return this.internalService.getForcedPermissions();
|
|
4863
5457
|
}
|
|
5458
|
+
/**
|
|
5459
|
+
* Gets ALL permission values with overrides already applied.
|
|
5460
|
+
* Returns the complete set of permissions where overridden values replace base values.
|
|
5461
|
+
* Each permission includes an `isForced` property indicating if it was overridden.
|
|
5462
|
+
*
|
|
5463
|
+
* This method simplifies integration by eliminating the need to manually merge
|
|
5464
|
+
* base permissions with overrides using combineLatest.
|
|
5465
|
+
*
|
|
5466
|
+
* @returns Observable of all permissions with overrides applied
|
|
5467
|
+
*
|
|
5468
|
+
* @example
|
|
5469
|
+
* ```typescript
|
|
5470
|
+
* // Simple permission check with overrides applied
|
|
5471
|
+
* this.permissionsService.getValues().pipe(
|
|
5472
|
+
* map(permissions => permissions.find(p => p.id === 'can-edit')),
|
|
5473
|
+
* map(permission => permission?.isGranted ?? false)
|
|
5474
|
+
* ).subscribe(canEdit => {
|
|
5475
|
+
* if (canEdit) {
|
|
5476
|
+
* // Enable edit functionality
|
|
5477
|
+
* }
|
|
5478
|
+
* });
|
|
5479
|
+
* ```
|
|
5480
|
+
*/
|
|
5481
|
+
getValues() {
|
|
5482
|
+
return this.internalService.permissions$;
|
|
5483
|
+
}
|
|
4864
5484
|
/**
|
|
4865
5485
|
* Apply a preset permission state. Useful for automated testing scenarios.
|
|
4866
5486
|
*
|
|
@@ -4885,10 +5505,10 @@ class DevToolbarPermissionsService {
|
|
|
4885
5505
|
getCurrentState() {
|
|
4886
5506
|
return this.internalService.getCurrentForcedState();
|
|
4887
5507
|
}
|
|
4888
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
4889
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.
|
|
5508
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarPermissionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5509
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarPermissionsService, providedIn: 'root' }); }
|
|
4890
5510
|
}
|
|
4891
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
5511
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarPermissionsService, decorators: [{
|
|
4892
5512
|
type: Injectable,
|
|
4893
5513
|
args: [{ providedIn: 'root' }]
|
|
4894
5514
|
}] });
|
|
@@ -4958,10 +5578,87 @@ class DevToolbarPresetsService {
|
|
|
4958
5578
|
const preset = JSON.parse(json);
|
|
4959
5579
|
return this.internalService.addPreset(preset);
|
|
4960
5580
|
}
|
|
4961
|
-
|
|
4962
|
-
|
|
5581
|
+
/**
|
|
5582
|
+
* Initialize presets with predefined configurations.
|
|
5583
|
+
* Useful for setting up default presets that all developers can use.
|
|
5584
|
+
*
|
|
5585
|
+
* @param presets - Array of preset configurations to initialize
|
|
5586
|
+
* @returns Array of created presets
|
|
5587
|
+
*
|
|
5588
|
+
* @example
|
|
5589
|
+
* ```typescript
|
|
5590
|
+
* const presetsService = inject(DevToolbarPresetsService);
|
|
5591
|
+
*
|
|
5592
|
+
* presetsService.initializePresets([
|
|
5593
|
+
* {
|
|
5594
|
+
* name: 'Admin User',
|
|
5595
|
+
* description: 'Full access admin configuration',
|
|
5596
|
+
* config: {
|
|
5597
|
+
* featureFlags: {
|
|
5598
|
+
* enabled: ['admin-panel', 'advanced-features'],
|
|
5599
|
+
* disabled: []
|
|
5600
|
+
* },
|
|
5601
|
+
* permissions: {
|
|
5602
|
+
* granted: ['admin', 'write', 'delete'],
|
|
5603
|
+
* denied: []
|
|
5604
|
+
* },
|
|
5605
|
+
* appFeatures: {
|
|
5606
|
+
* enabled: ['analytics', 'reporting'],
|
|
5607
|
+
* disabled: []
|
|
5608
|
+
* },
|
|
5609
|
+
* language: 'en'
|
|
5610
|
+
* }
|
|
5611
|
+
* },
|
|
5612
|
+
* {
|
|
5613
|
+
* name: 'Read-Only User',
|
|
5614
|
+
* description: 'Limited access for viewing only',
|
|
5615
|
+
* config: {
|
|
5616
|
+
* featureFlags: {
|
|
5617
|
+
* enabled: [],
|
|
5618
|
+
* disabled: ['admin-panel', 'advanced-features']
|
|
5619
|
+
* },
|
|
5620
|
+
* permissions: {
|
|
5621
|
+
* granted: ['read'],
|
|
5622
|
+
* denied: ['write', 'delete']
|
|
5623
|
+
* },
|
|
5624
|
+
* appFeatures: {
|
|
5625
|
+
* enabled: [],
|
|
5626
|
+
* disabled: ['analytics', 'reporting']
|
|
5627
|
+
* },
|
|
5628
|
+
* language: null
|
|
5629
|
+
* }
|
|
5630
|
+
* }
|
|
5631
|
+
* ]);
|
|
5632
|
+
* ```
|
|
5633
|
+
*/
|
|
5634
|
+
initializePresets(presets) {
|
|
5635
|
+
return presets.map((preset) => this.internalService.addPreset({
|
|
5636
|
+
id: '', // Will be generated
|
|
5637
|
+
createdAt: '', // Will be generated
|
|
5638
|
+
updatedAt: '', // Will be generated
|
|
5639
|
+
...preset,
|
|
5640
|
+
}));
|
|
5641
|
+
}
|
|
5642
|
+
/**
|
|
5643
|
+
* Clear all existing presets and set new initial presets.
|
|
5644
|
+
* Use this to replace all presets with a fresh set of configurations.
|
|
5645
|
+
*
|
|
5646
|
+
* @param presets - Array of preset configurations to set as initial
|
|
5647
|
+
* @returns Array of created presets
|
|
5648
|
+
*/
|
|
5649
|
+
setInitialPresets(presets) {
|
|
5650
|
+
// Clear existing presets
|
|
5651
|
+
const currentPresets = this.internalService.presets();
|
|
5652
|
+
currentPresets.forEach((preset) => {
|
|
5653
|
+
this.internalService.deletePreset(preset.id);
|
|
5654
|
+
});
|
|
5655
|
+
// Add new presets
|
|
5656
|
+
return this.initializePresets(presets);
|
|
5657
|
+
}
|
|
5658
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarPresetsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5659
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarPresetsService, providedIn: 'root' }); }
|
|
4963
5660
|
}
|
|
4964
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
5661
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DevToolbarPresetsService, decorators: [{
|
|
4965
5662
|
type: Injectable,
|
|
4966
5663
|
args: [{ providedIn: 'root' }]
|
|
4967
5664
|
}] });
|
|
@@ -4970,5 +5667,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
4970
5667
|
* Generated bundle index. Do not edit.
|
|
4971
5668
|
*/
|
|
4972
5669
|
|
|
4973
|
-
export { DevToolbarAppFeaturesService, DevToolbarAppFeaturesToolComponent, DevToolbarComponent, DevToolbarFeatureFlagService, DevToolbarIconComponent, DevToolbarLanguageService, DevToolbarPermissionsService, DevToolbarPermissionsToolComponent, DevToolbarPresetsService, DevToolbarPresetsToolComponent, DevToolbarToolComponent };
|
|
5670
|
+
export { DevToolbarAppFeaturesService, DevToolbarAppFeaturesToolComponent, DevToolbarComponent, DevToolbarFeatureFlagService, DevToolbarIconComponent, DevToolbarLanguageService, DevToolbarListComponent, DevToolbarListItemComponent, DevToolbarPermissionsService, DevToolbarPermissionsToolComponent, DevToolbarPresetsService, DevToolbarPresetsToolComponent, DevToolbarToolComponent };
|
|
4974
5671
|
//# sourceMappingURL=ngx-dev-toolbar.mjs.map
|