c3-components 0.14.0 → 0.14.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.
Files changed (66) hide show
  1. package/fesm2022/c3-components.mjs +481 -558
  2. package/fesm2022/c3-components.mjs.map +1 -1
  3. package/index.d.ts +862 -3
  4. package/package.json +1 -1
  5. package/lib/c3-auto-animate/c3-auto-animate.directive.d.ts +0 -11
  6. package/lib/c3-dialog/c3-dialog.module.d.ts +0 -20
  7. package/lib/c3-dialog/components/c3-dialog-alert.component.d.ts +0 -15
  8. package/lib/c3-dialog/components/c3-dialog-confirm.component.d.ts +0 -23
  9. package/lib/c3-dialog/components/c3-dialog-embed-child.component.d.ts +0 -60
  10. package/lib/c3-dialog/components/c3-dialog-prompt.component.d.ts +0 -31
  11. package/lib/c3-dialog/components/c3-dialog-template/c3-dialog-template.component.d.ts +0 -9
  12. package/lib/c3-dialog/directives/c3-open-dialog.directive.d.ts +0 -11
  13. package/lib/c3-dialog/services/c3-dialog.service.d.ts +0 -82
  14. package/lib/c3-dropdown/c3-dropdown.module.d.ts +0 -10
  15. package/lib/c3-dropdown/components/c3-dropdown.component.d.ts +0 -13
  16. package/lib/c3-dropdown/directives/c3-dropdown.trigger.d.ts +0 -41
  17. package/lib/c3-expansion/c3-expansion.module.d.ts +0 -14
  18. package/lib/c3-expansion/components/c3-expansion/c3-expansion.component.d.ts +0 -17
  19. package/lib/c3-expansion/components/c3-expansion-header/c3-expansion-header.component.d.ts +0 -9
  20. package/lib/c3-file-displayer/c3-file-display-card/c3-file-display-card.component.d.ts +0 -20
  21. package/lib/c3-file-displayer/c3-file-display-grid/c3-file-display-grid.component.d.ts +0 -24
  22. package/lib/c3-file-displayer/c3-file-display-icon/c3-file-display-icon.component.d.ts +0 -8
  23. package/lib/c3-file-displayer/c3-file-display-list/c3-file-display-list-column-def.directive.d.ts +0 -21
  24. package/lib/c3-file-displayer/c3-file-display-list/c3-file-display-list.component.d.ts +0 -27
  25. package/lib/c3-file-displayer/c3-file-display-list/tokens.d.ts +0 -2
  26. package/lib/c3-file-displayer/c3-file-displayer.module.d.ts +0 -12
  27. package/lib/c3-file-viewer/c3-file-viewer.module.d.ts +0 -20
  28. package/lib/c3-file-viewer/components/c3-file-viewer-actions/c3-file-viewer-actions.component.d.ts +0 -8
  29. package/lib/c3-file-viewer/components/c3-file-viewer-default/c3-file-viewer-default.component.d.ts +0 -7
  30. package/lib/c3-file-viewer/components/c3-file-viewer-image/c3-file-viewer-image.component.d.ts +0 -9
  31. package/lib/c3-file-viewer/components/c3-file-viewer-pdf/c3-file-viewer-pdf.component.d.ts +0 -9
  32. package/lib/c3-file-viewer/components/c3-file-viewer-video/c3-file-viewer-video.component.d.ts +0 -7
  33. package/lib/c3-file-viewer/components/public/c3-file-viewer/c3-file-viewer.component.d.ts +0 -25
  34. package/lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component.d.ts +0 -12
  35. package/lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.d.ts +0 -8
  36. package/lib/c3-file-viewer/consts/default.config.d.ts +0 -2
  37. package/lib/c3-file-viewer/consts/supported-type.d.ts +0 -2
  38. package/lib/c3-file-viewer/directives/full-screen.directive.d.ts +0 -12
  39. package/lib/c3-file-viewer/models/custom-file-event.model.d.ts +0 -5
  40. package/lib/c3-file-viewer/models/file-metadata.d.ts +0 -19
  41. package/lib/c3-file-viewer/models/file-viewer-config.model.d.ts +0 -50
  42. package/lib/c3-file-viewer/models/file-viewer.d.ts +0 -73
  43. package/lib/c3-file-viewer/models/http.client.d.ts +0 -14
  44. package/lib/c3-flowing-menu/c3-flowing-menu.module.d.ts +0 -10
  45. package/lib/c3-flowing-menu/components/c3-flowing-menu/c3-flowing-menu.component.d.ts +0 -12
  46. package/lib/c3-flowing-menu/components/c3-flowing-menu-item/c3-flowing-menu-item.component.d.ts +0 -9
  47. package/lib/c3-flowing-menu/components/c3-flowing-menu-item-content/c3-flowing-menu-item-content.component.d.ts +0 -5
  48. package/lib/c3-menu/c3-menu.module.d.ts +0 -11
  49. package/lib/c3-menu/components/c3-menu/c3-menu.component.d.ts +0 -7
  50. package/lib/c3-menu/components/c3-nav-item/c3-nav-item.component.d.ts +0 -14
  51. package/lib/c3-menu/services/c3-menu.service.d.ts +0 -14
  52. package/lib/c3-prevent-event/c3-prevent-click-event.directive.d.ts +0 -13
  53. package/lib/c3-prevent-event/c3-prevent-keyboard-event.directive.d.ts +0 -17
  54. package/lib/c3-prevent-event/c3-stop-click-propagation.directive.d.ts +0 -6
  55. package/lib/c3-prevent-event/index.d.ts +0 -3
  56. package/lib/c3-safe-url/pipes/c3-safe-url.pipe.d.ts +0 -10
  57. package/lib/c3-select-on-focus/c3-select-on-focus.directive.d.ts +0 -6
  58. package/lib/c3-signals/c3-boolean-signal.d.ts +0 -12
  59. package/lib/c3-trace-card/c3-trace-card.module.d.ts +0 -12
  60. package/lib/c3-trace-card/components/c3-trace-card/c3-trace-card.component.d.ts +0 -8
  61. package/lib/c3-trace-card/components/c3-trace-card-content/c3-trace-card-content.component.d.ts +0 -5
  62. package/lib/c3-trace-card/components/c3-trace-card-title/c3-trace-card-title.component.d.ts +0 -5
  63. package/lib/c3-trace-card/directives/align-left.directive.d.ts +0 -7
  64. package/lib/c3-trace-card/directives/align-right.directive.d.ts +0 -7
  65. package/lib/c3-tree/c3-tree.component.d.ts +0 -28
  66. package/public-api.d.ts +0 -95
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, signal, viewChild, TemplateRef, inject, ChangeDetectorRef, effect, Component, forwardRef, model, HostListener, Directive, NgModule, Inject, ViewContainerRef, ViewChild, Injector, Injectable, Input, Pipe, EventEmitter, Output, ViewEncapsulation, Optional, output, computed, InjectionToken, contentChild, contentChildren, HostBinding, ElementRef, DestroyRef } from '@angular/core';
2
+ import { input, signal, viewChild, TemplateRef, inject, ChangeDetectorRef, effect, Component, forwardRef, model, HostListener, Directive, NgModule, Inject, Injector, Injectable, Pipe, output, ViewEncapsulation, Optional, computed, InjectionToken, contentChild, contentChildren, ViewContainerRef, HostBinding, ElementRef, DestroyRef } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
- import * as i2$1 from '@angular/forms';
5
+ import * as i2 from '@angular/forms';
6
6
  import { NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
7
7
  import * as i1$1 from '@angular/cdk/overlay';
8
8
  import { OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
@@ -10,29 +10,29 @@ import { TemplatePortal } from '@angular/cdk/portal';
10
10
  import { Subscription, Subject, merge, takeUntil, BehaviorSubject, filter, skip, debounceTime, of, mergeMap, map, tap, startWith } from 'rxjs';
11
11
  import * as i1$2 from '@angular/material/dialog';
12
12
  import { MAT_DIALOG_DATA, MatDialog, MatDialogModule } from '@angular/material/dialog';
13
- import * as i2 from '@angular/material/button';
13
+ import * as i3 from '@angular/material/button';
14
14
  import { MatButtonModule } from '@angular/material/button';
15
- import * as i5 from '@angular/material/form-field';
15
+ import * as i4 from '@angular/material/form-field';
16
16
  import { MatFormFieldModule } from '@angular/material/form-field';
17
- import * as i6 from '@angular/material/input';
17
+ import * as i5 from '@angular/material/input';
18
18
  import { MatInputModule } from '@angular/material/input';
19
- import * as i7 from '@angular/cdk/text-field';
20
- import * as i2$2 from '@angular/material/icon';
19
+ import * as i6 from '@angular/cdk/text-field';
20
+ import * as i2$1 from '@angular/material/icon';
21
21
  import { MatIconModule } from '@angular/material/icon';
22
22
  import * as i5$1 from '@angular/material/toolbar';
23
23
  import { MatToolbarModule } from '@angular/material/toolbar';
24
24
  import * as i1$4 from '@angular/common/http';
25
25
  import { provideHttpClient, withInterceptorsFromDi, HttpClient } from '@angular/common/http';
26
26
  import * as i1$3 from '@angular/platform-browser';
27
- import * as i3$1 from '@angular/material/core';
27
+ import * as i3$2 from '@angular/material/core';
28
28
  import { MatNativeDateModule, MatRippleModule } from '@angular/material/core';
29
29
  import * as i5$2 from '@angular/material/menu';
30
30
  import { MatMenuModule } from '@angular/material/menu';
31
- import * as i3 from '@angular/material/tooltip';
31
+ import * as i3$1 from '@angular/material/tooltip';
32
32
  import { MatTooltipModule } from '@angular/material/tooltip';
33
33
  import autoAnimate from '@formkit/auto-animate';
34
34
  import { FlatTreeControl } from '@angular/cdk/tree';
35
- import * as i4 from '@angular/material/progress-spinner';
35
+ import * as i4$1 from '@angular/material/progress-spinner';
36
36
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
37
37
  import * as i1$5 from '@angular/material/tree';
38
38
  import { MatTreeFlattener, MatTreeFlatDataSource, MatTreeModule } from '@angular/material/tree';
@@ -42,8 +42,8 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
42
42
 
43
43
  class C3DropdownComponent {
44
44
  constructor() {
45
- this.panelClass = input();
46
- this.isOpen = signal(false);
45
+ this.panelClass = input(...(ngDevMode ? [undefined, { debugName: "panelClass" }] : []));
46
+ this.isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : []));
47
47
  this.template = viewChild.required((TemplateRef));
48
48
  this._changeDetectorRef = inject(ChangeDetectorRef);
49
49
  effect(() => {
@@ -52,8 +52,8 @@ class C3DropdownComponent {
52
52
  }
53
53
  });
54
54
  }
55
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3DropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.7", type: C3DropdownComponent, isStandalone: false, selector: "c3-dropdown", inputs: { panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "template", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], ngImport: i0, template: `
55
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3DropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.14", type: C3DropdownComponent, isStandalone: false, selector: "c3-dropdown", inputs: { panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "template", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], ngImport: i0, template: `
57
57
  <ng-template>
58
58
  <div class="c3-dropdown-panel" [ngClass]="panelClass()">
59
59
  <ng-content></ng-content>
@@ -61,7 +61,7 @@ class C3DropdownComponent {
61
61
  </ng-template>
62
62
  `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
63
63
  }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3DropdownComponent, decorators: [{
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3DropdownComponent, decorators: [{
65
65
  type: Component,
66
66
  args: [{
67
67
  selector: 'c3-dropdown',
@@ -74,7 +74,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
74
74
  `,
75
75
  standalone: false,
76
76
  }]
77
- }], ctorParameters: () => [] });
77
+ }], ctorParameters: () => [], propDecorators: { panelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelClass", required: false }] }], template: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
78
78
 
79
79
  const MAT_DROPDOWN_VALUE_ACCESSOR = {
80
80
  provide: NG_VALUE_ACCESSOR,
@@ -99,13 +99,13 @@ class C3DropdownTrigger {
99
99
  this._closingActionsSubscription = Subscription.EMPTY;
100
100
  this._destroyed = new Subject();
101
101
  /** The dropdown menu instance */
102
- this.dropdown = model.required({
103
- alias: 'c3DropdownTrigger',
104
- });
102
+ this.dropdown = model.required(...(ngDevMode ? [{ debugName: "dropdown", alias: 'c3DropdownTrigger' }] : [{
103
+ alias: 'c3DropdownTrigger',
104
+ }]));
105
105
  /** Whether the dropdown is disabled. */
106
- this.dropdownDisabled = input(false);
106
+ this.dropdownDisabled = input(false, ...(ngDevMode ? [{ debugName: "dropdownDisabled" }] : []));
107
107
  /** Classes to be passed to the dropdown menu. Supports the same syntax as `ngClass`. */
108
- this.dropdownClass = input('');
108
+ this.dropdownClass = input('', ...(ngDevMode ? [{ debugName: "dropdownClass" }] : []));
109
109
  }
110
110
  onClick() {
111
111
  this.show();
@@ -165,27 +165,27 @@ class C3DropdownTrigger {
165
165
  const detachments = this.overlayRef.detachments();
166
166
  return merge(backdrop, detachments).pipe(takeUntil(this._destroyed));
167
167
  }
168
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3DropdownTrigger, deps: [{ token: i0.ElementRef }, { token: i1$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
169
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.7", type: C3DropdownTrigger, isStandalone: false, selector: "[c3DropdownTrigger]", inputs: { dropdown: { classPropertyName: "dropdown", publicName: "c3DropdownTrigger", isSignal: true, isRequired: true, transformFunction: null }, dropdownDisabled: { classPropertyName: "dropdownDisabled", publicName: "dropdownDisabled", isSignal: true, isRequired: false, transformFunction: null }, dropdownClass: { classPropertyName: "dropdownClass", publicName: "dropdownClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dropdown: "c3DropdownTriggerChange" }, host: { listeners: { "click": "onClick()" } }, providers: [MAT_DROPDOWN_VALUE_ACCESSOR], ngImport: i0 }); }
168
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3DropdownTrigger, deps: [{ token: i0.ElementRef }, { token: i1$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
169
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.14", type: C3DropdownTrigger, isStandalone: false, selector: "[c3DropdownTrigger]", inputs: { dropdown: { classPropertyName: "dropdown", publicName: "c3DropdownTrigger", isSignal: true, isRequired: true, transformFunction: null }, dropdownDisabled: { classPropertyName: "dropdownDisabled", publicName: "dropdownDisabled", isSignal: true, isRequired: false, transformFunction: null }, dropdownClass: { classPropertyName: "dropdownClass", publicName: "dropdownClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dropdown: "c3DropdownTriggerChange" }, host: { listeners: { "click": "onClick()" } }, providers: [MAT_DROPDOWN_VALUE_ACCESSOR], ngImport: i0 }); }
170
170
  }
171
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3DropdownTrigger, decorators: [{
171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3DropdownTrigger, decorators: [{
172
172
  type: Directive,
173
173
  args: [{
174
174
  selector: '[c3DropdownTrigger]',
175
175
  providers: [MAT_DROPDOWN_VALUE_ACCESSOR],
176
176
  standalone: false,
177
177
  }]
178
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$1.Overlay }, { type: i0.ViewContainerRef }], propDecorators: { onClick: [{
178
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$1.Overlay }, { type: i0.ViewContainerRef }], propDecorators: { dropdown: [{ type: i0.Input, args: [{ isSignal: true, alias: "c3DropdownTrigger", required: true }] }, { type: i0.Output, args: ["c3DropdownTriggerChange"] }], dropdownDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropdownDisabled", required: false }] }], dropdownClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropdownClass", required: false }] }], onClick: [{
179
179
  type: HostListener,
180
180
  args: ['click']
181
181
  }] } });
182
182
 
183
183
  class C3DropdownModule {
184
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3DropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
185
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: C3DropdownModule, declarations: [C3DropdownComponent, C3DropdownTrigger], imports: [CommonModule, OverlayModule], exports: [C3DropdownComponent, C3DropdownTrigger] }); }
186
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3DropdownModule, imports: [CommonModule, OverlayModule] }); }
184
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3DropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
185
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: C3DropdownModule, declarations: [C3DropdownComponent, C3DropdownTrigger], imports: [CommonModule, OverlayModule], exports: [C3DropdownComponent, C3DropdownTrigger] }); }
186
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3DropdownModule, imports: [CommonModule, OverlayModule] }); }
187
187
  }
188
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3DropdownModule, decorators: [{
188
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3DropdownModule, decorators: [{
189
189
  type: NgModule,
190
190
  args: [{
191
191
  imports: [CommonModule, OverlayModule],
@@ -202,8 +202,8 @@ class C3AlertDialogComponent {
202
202
  onNoClick() {
203
203
  this.dialogRef.close();
204
204
  }
205
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3AlertDialogComponent, deps: [{ token: i1$2.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
206
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: C3AlertDialogComponent, isStandalone: false, selector: "AlertDialogComponent", ngImport: i0, template: `
205
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3AlertDialogComponent, deps: [{ token: i1$2.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
206
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: C3AlertDialogComponent, isStandalone: false, selector: "AlertDialogComponent", ngImport: i0, template: `
207
207
  <mat-dialog-content>
208
208
  <div [innerHtml]="data.text"></div>
209
209
  </mat-dialog-content>
@@ -212,9 +212,9 @@ class C3AlertDialogComponent {
212
212
  {{ data.acceptText || 'ok' }}
213
213
  </button>
214
214
  </mat-dialog-actions>
215
- `, isInline: true, dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i1$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] }); }
215
+ `, isInline: true, dependencies: [{ kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i1$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] }); }
216
216
  }
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3AlertDialogComponent, decorators: [{
217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3AlertDialogComponent, decorators: [{
218
218
  type: Component,
219
219
  args: [{
220
220
  selector: 'AlertDialogComponent',
@@ -243,8 +243,8 @@ class ConfirmDialogComponent {
243
243
  onNoClick() {
244
244
  this.dialogRef.close();
245
245
  }
246
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: ConfirmDialogComponent, deps: [{ token: i1$2.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
247
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: ConfirmDialogComponent, isStandalone: false, selector: "ConfirmDialogComponent", ngImport: i0, template: `
246
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ConfirmDialogComponent, deps: [{ token: i1$2.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
247
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: ConfirmDialogComponent, isStandalone: false, selector: "ConfirmDialogComponent", ngImport: i0, template: `
248
248
  <mat-dialog-content>
249
249
  <div [innerHtml]="data.text"></div>
250
250
  </mat-dialog-content>
@@ -256,9 +256,9 @@ class ConfirmDialogComponent {
256
256
  {{ data.accept?.text }}
257
257
  </button>
258
258
  </mat-dialog-actions>
259
- `, isInline: true, dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i1$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] }); }
259
+ `, isInline: true, dependencies: [{ kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i1$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] }); }
260
260
  }
261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: ConfirmDialogComponent, decorators: [{
261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ConfirmDialogComponent, decorators: [{
262
262
  type: Component,
263
263
  args: [{
264
264
  selector: 'ConfirmDialogComponent',
@@ -292,93 +292,102 @@ class C3PromptDialogComponent {
292
292
  onNoClick() {
293
293
  this.dialogRef.close();
294
294
  }
295
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3PromptDialogComponent, deps: [{ token: i1$2.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2$1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
296
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: C3PromptDialogComponent, isStandalone: false, selector: "PrompDialogComponent", ngImport: i0, template: `
297
- <div mat-dialog-title>{{ data.text }}</div>
298
- <mat-dialog-content>
299
- <mat-form-field>
300
- <mat-label *ngIf="data.placeholder">{{ data.placeholder }}</mat-label>
301
- <input
302
- *ngIf="!data.multiline"
303
- matInput
304
- [formControl]="result"
305
- (keydown.enter)="dialogRef.close(result.value)"
306
- />
307
- <textarea
308
- *ngIf="data.multiline"
309
- matInput
310
- [formControl]="result"
311
- cdkTextareaAutosize
312
- ></textarea>
313
- </mat-form-field>
314
- </mat-dialog-content>
315
- <mat-dialog-actions align="center">
316
- <button mat-raised-button mat-dialog-close [class]="data.reject?.color">
317
- {{ data.reject?.text }}
318
- </button>
319
- <button
320
- mat-raised-button
321
- [disabled]="result.invalid || (data.required && !result.value)"
322
- [class]="data.accept?.color"
323
- [mat-dialog-close]="result.value"
324
- >
325
- {{ data.accept?.text }}
326
- </button>
327
- </mat-dialog-actions>
328
- `, isInline: true, styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$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: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i1$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i7.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
295
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3PromptDialogComponent, deps: [{ token: i1$2.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
296
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: C3PromptDialogComponent, isStandalone: false, selector: "PrompDialogComponent", ngImport: i0, template: `
297
+ <div mat-dialog-title>{{ data.text }}</div>
298
+ <mat-dialog-content>
299
+ <mat-form-field>
300
+ @if (data.placeholder) {
301
+ <mat-label>{{ data.placeholder }}</mat-label>
302
+ }
303
+ @if (!data.multiline) {
304
+ <input
305
+ matInput
306
+ [formControl]="result"
307
+ (keydown.enter)="dialogRef.close(result.value)"
308
+ />
309
+ }
310
+ @if (data.multiline) {
311
+ <textarea
312
+ matInput
313
+ [formControl]="result"
314
+ cdkTextareaAutosize
315
+ ></textarea>
316
+ }
317
+ </mat-form-field>
318
+ </mat-dialog-content>
319
+ <mat-dialog-actions align="center">
320
+ <button mat-raised-button mat-dialog-close [class]="data.reject?.color">
321
+ {{ data.reject?.text }}
322
+ </button>
323
+ <button
324
+ mat-raised-button
325
+ [disabled]="result.invalid || (data.required && !result.value)"
326
+ [class]="data.accept?.color"
327
+ [mat-dialog-close]="result.value"
328
+ >
329
+ {{ data.accept?.text }}
330
+ </button>
331
+ </mat-dialog-actions>
332
+ `, isInline: true, styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i1$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i6.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
329
333
  }
330
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3PromptDialogComponent, decorators: [{
334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3PromptDialogComponent, decorators: [{
331
335
  type: Component,
332
- args: [{ selector: 'PrompDialogComponent', template: `
333
- <div mat-dialog-title>{{ data.text }}</div>
334
- <mat-dialog-content>
335
- <mat-form-field>
336
- <mat-label *ngIf="data.placeholder">{{ data.placeholder }}</mat-label>
337
- <input
338
- *ngIf="!data.multiline"
339
- matInput
340
- [formControl]="result"
341
- (keydown.enter)="dialogRef.close(result.value)"
342
- />
343
- <textarea
344
- *ngIf="data.multiline"
345
- matInput
346
- [formControl]="result"
347
- cdkTextareaAutosize
348
- ></textarea>
349
- </mat-form-field>
350
- </mat-dialog-content>
351
- <mat-dialog-actions align="center">
352
- <button mat-raised-button mat-dialog-close [class]="data.reject?.color">
353
- {{ data.reject?.text }}
354
- </button>
355
- <button
356
- mat-raised-button
357
- [disabled]="result.invalid || (data.required && !result.value)"
358
- [class]="data.accept?.color"
359
- [mat-dialog-close]="result.value"
360
- >
361
- {{ data.accept?.text }}
362
- </button>
363
- </mat-dialog-actions>
364
- `, standalone: false, styles: ["mat-form-field{width:100%}\n"] }]
336
+ args: [{ selector: 'PrompDialogComponent', template: `
337
+ <div mat-dialog-title>{{ data.text }}</div>
338
+ <mat-dialog-content>
339
+ <mat-form-field>
340
+ @if (data.placeholder) {
341
+ <mat-label>{{ data.placeholder }}</mat-label>
342
+ }
343
+ @if (!data.multiline) {
344
+ <input
345
+ matInput
346
+ [formControl]="result"
347
+ (keydown.enter)="dialogRef.close(result.value)"
348
+ />
349
+ }
350
+ @if (data.multiline) {
351
+ <textarea
352
+ matInput
353
+ [formControl]="result"
354
+ cdkTextareaAutosize
355
+ ></textarea>
356
+ }
357
+ </mat-form-field>
358
+ </mat-dialog-content>
359
+ <mat-dialog-actions align="center">
360
+ <button mat-raised-button mat-dialog-close [class]="data.reject?.color">
361
+ {{ data.reject?.text }}
362
+ </button>
363
+ <button
364
+ mat-raised-button
365
+ [disabled]="result.invalid || (data.required && !result.value)"
366
+ [class]="data.accept?.color"
367
+ [mat-dialog-close]="result.value"
368
+ >
369
+ {{ data.accept?.text }}
370
+ </button>
371
+ </mat-dialog-actions>
372
+ `, standalone: false, styles: ["mat-form-field{width:100%}\n"] }]
365
373
  }], ctorParameters: () => [{ type: i1$2.MatDialogRef }, { type: undefined, decorators: [{
366
374
  type: Inject,
367
375
  args: [MAT_DIALOG_DATA]
368
- }] }, { type: i2$1.FormBuilder }] });
376
+ }] }, { type: i2.FormBuilder }] });
369
377
 
370
378
  class C3DialogEmbedChildComponent {
371
379
  constructor(dialogRef, data, _cdr) {
372
380
  this.dialogRef = dialogRef;
373
381
  this.data = data;
374
382
  this._cdr = _cdr;
383
+ this.target = viewChild.required('target');
375
384
  // On utilise un signal pour stocker la référence du composant créé
376
- this.createdComponent = signal(null);
385
+ this.createdComponent = signal(null, ...(ngDevMode ? [{ debugName: "createdComponent" }] : []));
377
386
  }
378
387
  ngAfterViewInit() {
379
388
  // Si on a un composant, on le crée dynamiquement
380
389
  if (this.data.component && !this.data.templateRef) {
381
- const compRef = this.target.createComponent(this.data.component);
390
+ const compRef = this.target().createComponent(this.data.component);
382
391
  this.createdComponent.set(compRef);
383
392
  // Injecter les inputs dans le composant
384
393
  if (this.data.inputs) {
@@ -386,11 +395,11 @@ class C3DialogEmbedChildComponent {
386
395
  }
387
396
  }
388
397
  // Si on a juste un templateRef, on ne crée pas de composant :
389
- // laffichage est déjà géré dans le template via <ng-template *ngTemplateOutlet="...">
398
+ // l'affichage est déjà géré dans le template via <ng-template *ngTemplateOutlet="...">
390
399
  else if (this.data.templateRef) {
391
400
  this.createdComponent.set(null);
392
401
  }
393
- // Si on na rien, on ferme le dialog
402
+ // Si on n'a rien, on ferme le dialog
394
403
  else {
395
404
  this.dialogRef.close(false);
396
405
  }
@@ -422,85 +431,57 @@ class C3DialogEmbedChildComponent {
422
431
  }
423
432
  }
424
433
  }
425
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3DialogEmbedChildComponent, deps: [{ token: i1$2.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
426
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: C3DialogEmbedChildComponent, isStandalone: false, selector: "C3DialogEmbedChildComponent", viewQueries: [{ propertyName: "target", first: true, predicate: ["target"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: `
434
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3DialogEmbedChildComponent, deps: [{ token: i1$2.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
435
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: C3DialogEmbedChildComponent, isStandalone: false, selector: "C3DialogEmbedChildComponent", viewQueries: [{ propertyName: "target", first: true, predicate: ["target"], descendants: true, isSignal: true }], ngImport: i0, template: `
427
436
  <div [class]="'dialog-content-container ' + (data.classContainer || '')">
428
437
  @if (data.toolbar) {
429
- <mat-toolbar
430
- [color]="data.toolbar.color || 'default'"
431
- class="py-1"
432
- >
438
+ <mat-toolbar [color]="data.toolbar.color || 'default'" class="py-1">
433
439
  <span>{{ data.toolbar.title }}</span>
434
440
  <span class="spacer"></span>
435
- <button
436
- *ngIf="data.toolbar.closeBtn"
437
- mat-icon-button
438
- mat-dialog-close
439
- color="{{ data.toolbar.closeColor }}"
440
- >
441
- <mat-icon>close</mat-icon>
442
- </button>
441
+ @if (data.toolbar.closeBtn) {
442
+ <button mat-icon-button mat-dialog-close color="{{ data.toolbar.closeColor }}">
443
+ <mat-icon>close</mat-icon>
444
+ </button>
445
+ }
443
446
  </mat-toolbar>
444
447
  }
445
-
448
+
446
449
  <div [class]="'dialog-content ' + (data.classContent || '')">
447
450
  <!-- Si templateRef est présent, on l'affiche directement,
448
- sinon on laisse la place au composant dynamique -->
451
+ sinon on laisse la place au composant dynamique -->
449
452
  @if (data.templateRef) {
450
- <ng-container
451
- *ngTemplateOutlet="data.templateRef"
452
- ></ng-container>
453
- }
454
- @else {
453
+ <ng-container *ngTemplateOutlet="data.templateRef"></ng-container>
454
+ } @else {
455
455
  <ng-template #target></ng-template>
456
456
  }
457
457
  </div>
458
-
458
+
459
459
  @if (data.actions && data.actions.length > 0) {
460
460
  <div [class]="'dialog-actions ' + (data.classActions || '')">
461
461
  @for (action of data.actions; track action.label) {
462
462
  @switch (action.apperance) {
463
463
  @case ('basic') {
464
- <button
465
- [class]="action.class"
466
- (click)="action.action()"
467
- >
464
+ <button [class]="action.class" (click)="action.action()">
468
465
  {{ action.label }}
469
466
  </button>
470
467
  }
471
468
  @case ('raised') {
472
- <button
473
- mat-raised-button
474
- [class]="action.class"
475
- (click)="action.action()"
476
- >
469
+ <button mat-raised-button [class]="action.class" (click)="action.action()">
477
470
  {{ action.label }}
478
471
  </button>
479
472
  }
480
473
  @case ('stroked') {
481
- <button
482
- mat-stroked-button
483
- [class]="action.class"
484
- (click)="action.action()"
485
- >
474
+ <button mat-stroked-button [class]="action.class" (click)="action.action()">
486
475
  {{ action.label }}
487
476
  </button>
488
477
  }
489
478
  @case ('flat') {
490
- <button
491
- mat-flat-button
492
- [class]="action.class"
493
- (click)="action.action()"
494
- >
479
+ <button mat-flat-button [class]="action.class" (click)="action.action()">
495
480
  {{ action.label }}
496
481
  </button>
497
482
  }
498
483
  @default {
499
- <button
500
- mat-button
501
- [class]="action.class"
502
- (click)="action.action()"
503
- >
484
+ <button mat-button [class]="action.class" (click)="action.action()">
504
485
  {{ action.label }}
505
486
  </button>
506
487
  }
@@ -509,88 +490,60 @@ class C3DialogEmbedChildComponent {
509
490
  </div>
510
491
  }
511
492
  </div>
512
- `, isInline: true, styles: [".dialog-content-container{display:flex;flex-direction:column;height:100%;padding:1rem;overflow:auto}.dialog-content-container .dialog-content{display:flex;flex-direction:column;height:100%;overflow:auto;flex-grow:1}.dialog-content-container .mat-toolbar{display:flex;justify-content:space-between;align-items:center;border-radius:.25rem}.dialog-content-container .mat-toolbar span{color:inherit}.dialog-content-container .spacer{flex:1 1 auto;min-width:16px}.dialog-actions{display:flex;justify-content:flex-end;gap:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i1$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }] }); }
493
+ `, isInline: true, styles: [".dialog-content-container{display:flex;flex-direction:column;height:100%;padding:1rem;overflow:auto}.dialog-content-container .dialog-content{display:flex;flex-direction:column;height:100%;overflow:auto;flex-grow:1}.dialog-content-container .mat-toolbar{display:flex;justify-content:space-between;align-items:center;border-radius:.25rem}.dialog-content-container .mat-toolbar span{color:inherit}.dialog-content-container .spacer{flex:1 1 auto;min-width:16px}.dialog-actions{display:flex;justify-content:flex-end;gap:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i1$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }] }); }
513
494
  }
514
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3DialogEmbedChildComponent, decorators: [{
495
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3DialogEmbedChildComponent, decorators: [{
515
496
  type: Component,
516
497
  args: [{ selector: 'C3DialogEmbedChildComponent', template: `
517
498
  <div [class]="'dialog-content-container ' + (data.classContainer || '')">
518
499
  @if (data.toolbar) {
519
- <mat-toolbar
520
- [color]="data.toolbar.color || 'default'"
521
- class="py-1"
522
- >
500
+ <mat-toolbar [color]="data.toolbar.color || 'default'" class="py-1">
523
501
  <span>{{ data.toolbar.title }}</span>
524
502
  <span class="spacer"></span>
525
- <button
526
- *ngIf="data.toolbar.closeBtn"
527
- mat-icon-button
528
- mat-dialog-close
529
- color="{{ data.toolbar.closeColor }}"
530
- >
531
- <mat-icon>close</mat-icon>
532
- </button>
503
+ @if (data.toolbar.closeBtn) {
504
+ <button mat-icon-button mat-dialog-close color="{{ data.toolbar.closeColor }}">
505
+ <mat-icon>close</mat-icon>
506
+ </button>
507
+ }
533
508
  </mat-toolbar>
534
509
  }
535
-
510
+
536
511
  <div [class]="'dialog-content ' + (data.classContent || '')">
537
512
  <!-- Si templateRef est présent, on l'affiche directement,
538
- sinon on laisse la place au composant dynamique -->
513
+ sinon on laisse la place au composant dynamique -->
539
514
  @if (data.templateRef) {
540
- <ng-container
541
- *ngTemplateOutlet="data.templateRef"
542
- ></ng-container>
543
- }
544
- @else {
515
+ <ng-container *ngTemplateOutlet="data.templateRef"></ng-container>
516
+ } @else {
545
517
  <ng-template #target></ng-template>
546
518
  }
547
519
  </div>
548
-
520
+
549
521
  @if (data.actions && data.actions.length > 0) {
550
522
  <div [class]="'dialog-actions ' + (data.classActions || '')">
551
523
  @for (action of data.actions; track action.label) {
552
524
  @switch (action.apperance) {
553
525
  @case ('basic') {
554
- <button
555
- [class]="action.class"
556
- (click)="action.action()"
557
- >
526
+ <button [class]="action.class" (click)="action.action()">
558
527
  {{ action.label }}
559
528
  </button>
560
529
  }
561
530
  @case ('raised') {
562
- <button
563
- mat-raised-button
564
- [class]="action.class"
565
- (click)="action.action()"
566
- >
531
+ <button mat-raised-button [class]="action.class" (click)="action.action()">
567
532
  {{ action.label }}
568
533
  </button>
569
534
  }
570
535
  @case ('stroked') {
571
- <button
572
- mat-stroked-button
573
- [class]="action.class"
574
- (click)="action.action()"
575
- >
536
+ <button mat-stroked-button [class]="action.class" (click)="action.action()">
576
537
  {{ action.label }}
577
538
  </button>
578
539
  }
579
540
  @case ('flat') {
580
- <button
581
- mat-flat-button
582
- [class]="action.class"
583
- (click)="action.action()"
584
- >
541
+ <button mat-flat-button [class]="action.class" (click)="action.action()">
585
542
  {{ action.label }}
586
543
  </button>
587
544
  }
588
545
  @default {
589
- <button
590
- mat-button
591
- [class]="action.class"
592
- (click)="action.action()"
593
- >
546
+ <button mat-button [class]="action.class" (click)="action.action()">
594
547
  {{ action.label }}
595
548
  </button>
596
549
  }
@@ -599,29 +552,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
599
552
  </div>
600
553
  }
601
554
  </div>
602
- `, standalone: false, styles: [".dialog-content-container{display:flex;flex-direction:column;height:100%;padding:1rem;overflow:auto}.dialog-content-container .dialog-content{display:flex;flex-direction:column;height:100%;overflow:auto;flex-grow:1}.dialog-content-container .mat-toolbar{display:flex;justify-content:space-between;align-items:center;border-radius:.25rem}.dialog-content-container .mat-toolbar span{color:inherit}.dialog-content-container .spacer{flex:1 1 auto;min-width:16px}.dialog-actions{display:flex;justify-content:flex-end;gap:.5rem}\n"] }]
555
+ `, standalone: false, styles: [".dialog-content-container{display:flex;flex-direction:column;height:100%;padding:1rem;overflow:auto}.dialog-content-container .dialog-content{display:flex;flex-direction:column;height:100%;overflow:auto;flex-grow:1}.dialog-content-container .mat-toolbar{display:flex;justify-content:space-between;align-items:center;border-radius:.25rem}.dialog-content-container .mat-toolbar span{color:inherit}.dialog-content-container .spacer{flex:1 1 auto;min-width:16px}.dialog-actions{display:flex;justify-content:flex-end;gap:.5rem}\n"] }]
603
556
  }], ctorParameters: () => [{ type: i1$2.MatDialogRef }, { type: undefined, decorators: [{
604
557
  type: Inject,
605
558
  args: [MAT_DIALOG_DATA]
606
- }] }, { type: i0.ChangeDetectorRef }], propDecorators: { target: [{
607
- type: ViewChild,
608
- args: ['target', { read: ViewContainerRef }]
609
- }] } });
559
+ }] }, { type: i0.ChangeDetectorRef }], propDecorators: { target: [{ type: i0.ViewChild, args: ['target', { isSignal: true }] }] } });
610
560
 
611
561
  class C3DialogTemplateComponent {
612
562
  constructor() {
613
- this.templateRef = viewChild('internalTemplate', {
614
- read: TemplateRef,
615
- });
616
- this.dialogRef = signal(null);
563
+ this.templateRef = viewChild('internalTemplate', ...(ngDevMode ? [{ debugName: "templateRef", read: TemplateRef }] : [{
564
+ read: TemplateRef,
565
+ }]));
566
+ this.dialogRef = signal(null, ...(ngDevMode ? [{ debugName: "dialogRef" }] : []));
617
567
  }
618
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3DialogTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
619
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.7", type: C3DialogTemplateComponent, isStandalone: false, selector: "c3-dialog-template", viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["internalTemplate"], descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: "<ng-template #internalTemplate>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host{display:block}\n"] }); }
568
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3DialogTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
569
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.14", type: C3DialogTemplateComponent, isStandalone: false, selector: "c3-dialog-template", viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["internalTemplate"], descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: "<ng-template #internalTemplate>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host{display:block}\n"] }); }
620
570
  }
621
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3DialogTemplateComponent, decorators: [{
571
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3DialogTemplateComponent, decorators: [{
622
572
  type: Component,
623
573
  args: [{ selector: 'c3-dialog-template', standalone: false, template: "<ng-template #internalTemplate>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host{display:block}\n"] }]
624
- }] });
574
+ }], propDecorators: { templateRef: [{ type: i0.ViewChild, args: ['internalTemplate', { ...{
575
+ read: TemplateRef,
576
+ }, isSignal: true }] }] } });
625
577
 
626
578
  class C3DialogService {
627
579
  constructor() {
@@ -783,10 +735,10 @@ class C3DialogService {
783
735
  });
784
736
  return result;
785
737
  }
786
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3DialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
787
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3DialogService, providedIn: 'root' }); }
738
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3DialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
739
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3DialogService, providedIn: 'root' }); }
788
740
  }
789
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3DialogService, decorators: [{
741
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3DialogService, decorators: [{
790
742
  type: Injectable,
791
743
  args: [{
792
744
  providedIn: 'root',
@@ -795,12 +747,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
795
747
 
796
748
  class C3OpenDialogDirective {
797
749
  constructor() {
798
- this.template = input(undefined, {
799
- alias: 'c3-dialog'
800
- });
801
- this.config = input(undefined, {
802
- alias: 'c3-dialog-config'
803
- });
750
+ this.template = input(undefined, ...(ngDevMode ? [{ debugName: "template", alias: 'c3-dialog' }] : [{
751
+ alias: 'c3-dialog'
752
+ }]));
753
+ this.config = input(undefined, ...(ngDevMode ? [{ debugName: "config", alias: 'c3-dialog-config' }] : [{
754
+ alias: 'c3-dialog-config'
755
+ }]));
804
756
  this._dialog = inject(C3DialogService);
805
757
  }
806
758
  openDialog($event) {
@@ -809,10 +761,10 @@ class C3OpenDialogDirective {
809
761
  const dialog = this._dialog.createDialogFromTemplate(this.template().templateRef(), this.config());
810
762
  this.template()?.dialogRef.set(dialog);
811
763
  }
812
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3OpenDialogDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
813
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.7", type: C3OpenDialogDirective, isStandalone: false, selector: "[c3-dialog]", inputs: { template: { classPropertyName: "template", publicName: "c3-dialog", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "c3-dialog-config", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "openDialog($event)" } }, ngImport: i0 }); }
764
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3OpenDialogDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
765
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.14", type: C3OpenDialogDirective, isStandalone: false, selector: "[c3-dialog]", inputs: { template: { classPropertyName: "template", publicName: "c3-dialog", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "c3-dialog-config", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "openDialog($event)" } }, ngImport: i0 }); }
814
766
  }
815
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3OpenDialogDirective, decorators: [{
767
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3OpenDialogDirective, decorators: [{
816
768
  type: Directive,
817
769
  args: [{
818
770
  selector: '[c3-dialog]',
@@ -821,11 +773,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
821
773
  '(click)': 'openDialog($event)'
822
774
  }
823
775
  }]
824
- }] });
776
+ }], propDecorators: { template: [{ type: i0.Input, args: [{ isSignal: true, alias: "c3-dialog", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "c3-dialog-config", required: false }] }] } });
825
777
 
826
778
  class C3DialogModule {
827
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3DialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
828
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: C3DialogModule, declarations: [C3AlertDialogComponent,
779
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3DialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
780
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: C3DialogModule, declarations: [C3AlertDialogComponent,
829
781
  ConfirmDialogComponent,
830
782
  C3PromptDialogComponent,
831
783
  C3DialogEmbedChildComponent,
@@ -840,7 +792,7 @@ class C3DialogModule {
840
792
  MatToolbarModule,
841
793
  ReactiveFormsModule], exports: [C3DialogTemplateComponent,
842
794
  C3OpenDialogDirective] }); }
843
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3DialogModule, providers: [C3DialogService], imports: [CommonModule,
795
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3DialogModule, providers: [C3DialogService], imports: [CommonModule,
844
796
  FormsModule,
845
797
  MatButtonModule,
846
798
  MatDialogModule,
@@ -850,7 +802,7 @@ class C3DialogModule {
850
802
  MatToolbarModule,
851
803
  ReactiveFormsModule] }); }
852
804
  }
853
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3DialogModule, decorators: [{
805
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3DialogModule, decorators: [{
854
806
  type: NgModule,
855
807
  args: [{
856
808
  declarations: [
@@ -881,15 +833,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
881
833
  }] });
882
834
 
883
835
  class FullScreenDirective {
884
- set fullscreenState(value) {
885
- this._fullscreenState.next(value?.valueOf() || false);
886
- }
887
- set fullscreenStateSetter(value) {
888
- this.fullscreenState = value;
889
- }
890
836
  constructor(el) {
891
837
  this.el = el;
838
+ this.fullscreenState = input(null, ...(ngDevMode ? [{ debugName: "fullscreenState", alias: 'c3Screenfull' }] : [{ alias: 'c3Screenfull' }]));
839
+ this.fullscreenStateSetter = input(null, ...(ngDevMode ? [{ debugName: "fullscreenStateSetter", alias: 'c3-full-screen' }] : [{ alias: 'c3-full-screen' }]));
892
840
  this._fullscreenState = new BehaviorSubject(false);
841
+ // Effect to handle fullscreenState changes
842
+ effect(() => {
843
+ const state = this.fullscreenState();
844
+ if (state !== null) {
845
+ this._fullscreenState.next(state.valueOf() || false);
846
+ }
847
+ });
848
+ // Effect to handle fullscreenStateSetter changes (alias for fullscreenState)
849
+ effect(() => {
850
+ const state = this.fullscreenStateSetter();
851
+ if (state !== null) {
852
+ this._fullscreenState.next(state.valueOf() || false);
853
+ }
854
+ });
893
855
  this._fullscreenState
894
856
  .pipe(filter((value) => value !== null), skip(2), debounceTime(100))
895
857
  .subscribe(() => {
@@ -927,36 +889,31 @@ class FullScreenDirective {
927
889
  }
928
890
  }
929
891
  }
930
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: FullScreenDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
931
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.7", type: FullScreenDirective, isStandalone: false, selector: "[C3FullScreen], [c3-full-screen]", inputs: { fullscreenState: ["c3Screenfull", "fullscreenState"], fullscreenStateSetter: ["c3-full-screen", "fullscreenStateSetter"] }, ngImport: i0 }); }
892
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: FullScreenDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
893
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.14", type: FullScreenDirective, isStandalone: false, selector: "[C3FullScreen], [c3-full-screen]", inputs: { fullscreenState: { classPropertyName: "fullscreenState", publicName: "c3Screenfull", isSignal: true, isRequired: false, transformFunction: null }, fullscreenStateSetter: { classPropertyName: "fullscreenStateSetter", publicName: "c3-full-screen", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
932
894
  }
933
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: FullScreenDirective, decorators: [{
895
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: FullScreenDirective, decorators: [{
934
896
  type: Directive,
935
897
  args: [{
936
898
  selector: '[C3FullScreen], [c3-full-screen]',
937
899
  standalone: false
938
900
  }]
939
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { fullscreenState: [{
940
- type: Input,
941
- args: ['c3Screenfull']
942
- }], fullscreenStateSetter: [{
943
- type: Input,
944
- args: ['c3-full-screen']
945
- }] } });
901
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { fullscreenState: [{ type: i0.Input, args: [{ isSignal: true, alias: "c3Screenfull", required: false }] }], fullscreenStateSetter: [{ type: i0.Input, args: [{ isSignal: true, alias: "c3-full-screen", required: false }] }] } });
946
902
 
947
903
  class C3FileViewerActionsComponent {
904
+ constructor() {
905
+ this.fileViewer = input.required(...(ngDevMode ? [{ debugName: "fileViewer" }] : []));
906
+ }
948
907
  get config() {
949
- return this.fileViewer.config;
908
+ return this.fileViewer().config;
950
909
  }
951
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
952
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: C3FileViewerActionsComponent, isStandalone: false, selector: "c3-file-viewer-actions", inputs: { fileViewer: "fileViewer" }, ngImport: i0, template: "<div class=\"nav-button-container\">\n @if (config.btnShow?.prev) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.previousImage($event)\"\n [disabled]=\"fileViewer.currentIndex === 0\"\n >\n @if (config.btnIcons?.prev?.classes) {\n <span [class]=\"config.btnIcons?.prev?.classes\"></span>\n }\n </button>\n @if (config.btnIcons?.prev?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.previousImage($event)\"\n >\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.prev?.text }}</span>\n </a>\n }\n }\n @if (config.btnShow?.next) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.nextImage($event)\"\n [disabled]=\"fileViewer.currentIndex === fileViewer.files.length - 1\"\n >\n <span [class]=\"config.btnIcons?.next?.classes\"></span>\n </button>\n }\n\n @if (config.btnIcons?.next?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.nextImage($event)\"\n >\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.next?.text }}</span>\n </a>\n }\n</div>\n\n@if (fileViewer.currentFile.type.startsWith('image')) {\n<!-- Button Container -->\n<div\n class=\"btn-container\"\n [class]=\"config.btnContainerClass\"\n>\n <!-- Rotate Counter Clockwise -->\n @if (config.btnShow?.rotateCounterClockwise) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.rotateCounterClockwise()\"\n *ngIf=\"config.btnIcons?.rotateCounterClockwise?.classes\"\n >\n <span [class]=\"config.btnIcons?.rotateCounterClockwise?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.rotateCounterClockwise?.text\"\n (click)=\"fileViewer.rotateCounterClockwise()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.rotateCounterClockwise?.text\n }}</span>\n </a>\n }\n\n <!-- Rotate Clockwise -->\n @if (config.btnShow?.rotateClockwise) {\n @if (config.btnIcons?.rotateClockwise?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.rotateClockwise()\"\n >\n <span [class]=\"config.btnIcons?.rotateClockwise?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.rotateClockwise?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.rotateClockwise()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.rotateClockwise?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Zoom Out -->\n @if (config.btnShow?.zoomOut) {\n @if (config.btnIcons?.zoomOut?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.zoomOut()\"\n >\n <span [class]=\"config.btnIcons?.zoomOut?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.zoomOut()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.zoomOut?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Zoom In -->\n @if (config.btnShow?.zoomIn) {\n @if (config.btnIcons?.zoomIn?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.zoomIn()\"\n >\n <span [class]=\"config.btnIcons?.zoomIn?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.zoomIn?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.zoomIn()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.zoomIn?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Fullscreen -->\n @if (config.allowFullscreen) {\n @if (config.btnIcons?.fullscreen?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.toggleFullscreen()\"\n >\n <span [class]=\"config.btnIcons?.fullscreen?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.fullscreen?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.toggleFullscreen()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.fullscreen?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Reset -->\n @if (config.btnShow?.reset) {\n @if (config.btnIcons?.reset?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.reset()\"\n >\n <span [class]=\"config.btnIcons?.reset?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.reset?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.reset()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.reset?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Download -->\n @if (config.btnShow?.download) {\n @if (config.btnIcons?.download?.classes) {\n <button type=\"button\" [class]=\"config.btnClass\" (click)=\"fileViewer.download()\">\n <span [class]=\"config.btnIcons?.download?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.download?.text) {\n <a [class]=\"config.btnClass\" (click)=\"fileViewer.download()\">\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.download?.text }}</span>\n </a>\n }\n }\n\n <!-- Custom Buttons -->\n @for (cBtn of config.customBtns; track cBtn.icon.text) {\n @if (cBtn.icon.classes) {\n <button type=\"button\" [class]=\"config.btnClass\">\n <span [class]=\"cBtn.icon.classes\"></span>\n </button>\n }\n @if (cBtn.icon.text) {\n <a [class]=\"config.btnClass\">\n <span [class]=\"config.btnSubClass\">{{ cBtn.icon.text }}</span>\n </a>\n }\n }\n </div>\n}\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
910
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
911
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: C3FileViewerActionsComponent, isStandalone: false, selector: "c3-file-viewer-actions", inputs: { fileViewer: { classPropertyName: "fileViewer", publicName: "fileViewer", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div class=\"nav-button-container\">\n @if (config.btnShow?.prev) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().previousImage($event)\"\n [disabled]=\"fileViewer().currentIndex === 0\"\n >\n @if (config.btnIcons?.prev?.classes) {\n <span [class]=\"config.btnIcons?.prev?.classes\"></span>\n }\n </button>\n @if (config.btnIcons?.prev?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().previousImage($event)\"\n >\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.prev?.text }}</span>\n </a>\n }\n }\n @if (config.btnShow?.next) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().nextImage($event)\"\n [disabled]=\"fileViewer().currentIndex === fileViewer().files.length - 1\"\n >\n <span [class]=\"config.btnIcons?.next?.classes\"></span>\n </button>\n }\n\n @if (config.btnIcons?.next?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().nextImage($event)\"\n >\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.next?.text }}</span>\n </a>\n }\n</div>\n\n@if (fileViewer().currentFile.type.startsWith('image')) {\n <!-- Button Container -->\n <div\n class=\"btn-container\"\n [class]=\"config.btnContainerClass\"\n >\n <!-- Rotate Counter Clockwise -->\n @if (config.btnShow?.rotateCounterClockwise) {\n @if (config.btnIcons?.rotateCounterClockwise?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().rotateCounterClockwise()\"\n >\n <span [class]=\"config.btnIcons?.rotateCounterClockwise?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.rotateCounterClockwise?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().rotateCounterClockwise()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.rotateCounterClockwise?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Rotate Clockwise -->\n @if (config.btnShow?.rotateClockwise) {\n @if (config.btnIcons?.rotateClockwise?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().rotateClockwise()\"\n >\n <span [class]=\"config.btnIcons?.rotateClockwise?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.rotateClockwise?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().rotateClockwise()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.rotateClockwise?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Zoom Out -->\n @if (config.btnShow?.zoomOut) {\n @if (config.btnIcons?.zoomOut?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().zoomOut()\"\n >\n <span [class]=\"config.btnIcons?.zoomOut?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().zoomOut()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.zoomOut?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Zoom In -->\n @if (config.btnShow?.zoomIn) {\n @if (config.btnIcons?.zoomIn?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().zoomIn()\"\n >\n <span [class]=\"config.btnIcons?.zoomIn?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.zoomIn?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().zoomIn()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.zoomIn?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Fullscreen -->\n @if (config.allowFullscreen) {\n @if (config.btnIcons?.fullscreen?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().toggleFullscreen()\"\n >\n <span [class]=\"config.btnIcons?.fullscreen?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.fullscreen?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().toggleFullscreen()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.fullscreen?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Reset -->\n @if (config.btnShow?.reset) {\n @if (config.btnIcons?.reset?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().reset()\"\n >\n <span [class]=\"config.btnIcons?.reset?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.reset?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().reset()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.reset?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Download -->\n @if (config.btnShow?.download) {\n @if (config.btnIcons?.download?.classes) {\n <button type=\"button\" [class]=\"config.btnClass\" (click)=\"fileViewer().download()\">\n <span [class]=\"config.btnIcons?.download?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.download?.text) {\n <a [class]=\"config.btnClass\" (click)=\"fileViewer().download()\">\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.download?.text }}</span>\n </a>\n }\n }\n\n <!-- Custom Buttons -->\n @for (cBtn of config.customBtns; track cBtn.icon.text) {\n @if (cBtn.icon.classes) {\n <button type=\"button\" [class]=\"config.btnClass\">\n <span [class]=\"cBtn.icon.classes\"></span>\n </button>\n }\n @if (cBtn.icon.text) {\n <a [class]=\"config.btnClass\">\n <span [class]=\"config.btnSubClass\">{{ cBtn.icon.text }}</span>\n </a>\n }\n }\n </div>\n}\n" }); }
953
912
  }
954
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerActionsComponent, decorators: [{
913
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerActionsComponent, decorators: [{
955
914
  type: Component,
956
- args: [{ selector: 'c3-file-viewer-actions', standalone: false, template: "<div class=\"nav-button-container\">\n @if (config.btnShow?.prev) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.previousImage($event)\"\n [disabled]=\"fileViewer.currentIndex === 0\"\n >\n @if (config.btnIcons?.prev?.classes) {\n <span [class]=\"config.btnIcons?.prev?.classes\"></span>\n }\n </button>\n @if (config.btnIcons?.prev?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.previousImage($event)\"\n >\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.prev?.text }}</span>\n </a>\n }\n }\n @if (config.btnShow?.next) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.nextImage($event)\"\n [disabled]=\"fileViewer.currentIndex === fileViewer.files.length - 1\"\n >\n <span [class]=\"config.btnIcons?.next?.classes\"></span>\n </button>\n }\n\n @if (config.btnIcons?.next?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.nextImage($event)\"\n >\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.next?.text }}</span>\n </a>\n }\n</div>\n\n@if (fileViewer.currentFile.type.startsWith('image')) {\n<!-- Button Container -->\n<div\n class=\"btn-container\"\n [class]=\"config.btnContainerClass\"\n>\n <!-- Rotate Counter Clockwise -->\n @if (config.btnShow?.rotateCounterClockwise) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.rotateCounterClockwise()\"\n *ngIf=\"config.btnIcons?.rotateCounterClockwise?.classes\"\n >\n <span [class]=\"config.btnIcons?.rotateCounterClockwise?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.rotateCounterClockwise?.text\"\n (click)=\"fileViewer.rotateCounterClockwise()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.rotateCounterClockwise?.text\n }}</span>\n </a>\n }\n\n <!-- Rotate Clockwise -->\n @if (config.btnShow?.rotateClockwise) {\n @if (config.btnIcons?.rotateClockwise?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.rotateClockwise()\"\n >\n <span [class]=\"config.btnIcons?.rotateClockwise?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.rotateClockwise?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.rotateClockwise()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.rotateClockwise?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Zoom Out -->\n @if (config.btnShow?.zoomOut) {\n @if (config.btnIcons?.zoomOut?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.zoomOut()\"\n >\n <span [class]=\"config.btnIcons?.zoomOut?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.zoomOut()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.zoomOut?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Zoom In -->\n @if (config.btnShow?.zoomIn) {\n @if (config.btnIcons?.zoomIn?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.zoomIn()\"\n >\n <span [class]=\"config.btnIcons?.zoomIn?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.zoomIn?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.zoomIn()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.zoomIn?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Fullscreen -->\n @if (config.allowFullscreen) {\n @if (config.btnIcons?.fullscreen?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.toggleFullscreen()\"\n >\n <span [class]=\"config.btnIcons?.fullscreen?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.fullscreen?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.toggleFullscreen()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.fullscreen?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Reset -->\n @if (config.btnShow?.reset) {\n @if (config.btnIcons?.reset?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.reset()\"\n >\n <span [class]=\"config.btnIcons?.reset?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.reset?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.reset()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.reset?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Download -->\n @if (config.btnShow?.download) {\n @if (config.btnIcons?.download?.classes) {\n <button type=\"button\" [class]=\"config.btnClass\" (click)=\"fileViewer.download()\">\n <span [class]=\"config.btnIcons?.download?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.download?.text) {\n <a [class]=\"config.btnClass\" (click)=\"fileViewer.download()\">\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.download?.text }}</span>\n </a>\n }\n }\n\n <!-- Custom Buttons -->\n @for (cBtn of config.customBtns; track cBtn.icon.text) {\n @if (cBtn.icon.classes) {\n <button type=\"button\" [class]=\"config.btnClass\">\n <span [class]=\"cBtn.icon.classes\"></span>\n </button>\n }\n @if (cBtn.icon.text) {\n <a [class]=\"config.btnClass\">\n <span [class]=\"config.btnSubClass\">{{ cBtn.icon.text }}</span>\n </a>\n }\n }\n </div>\n}\n" }]
957
- }], propDecorators: { fileViewer: [{
958
- type: Input
959
- }] } });
915
+ args: [{ selector: 'c3-file-viewer-actions', standalone: false, template: "<div class=\"nav-button-container\">\n @if (config.btnShow?.prev) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().previousImage($event)\"\n [disabled]=\"fileViewer().currentIndex === 0\"\n >\n @if (config.btnIcons?.prev?.classes) {\n <span [class]=\"config.btnIcons?.prev?.classes\"></span>\n }\n </button>\n @if (config.btnIcons?.prev?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().previousImage($event)\"\n >\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.prev?.text }}</span>\n </a>\n }\n }\n @if (config.btnShow?.next) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().nextImage($event)\"\n [disabled]=\"fileViewer().currentIndex === fileViewer().files.length - 1\"\n >\n <span [class]=\"config.btnIcons?.next?.classes\"></span>\n </button>\n }\n\n @if (config.btnIcons?.next?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().nextImage($event)\"\n >\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.next?.text }}</span>\n </a>\n }\n</div>\n\n@if (fileViewer().currentFile.type.startsWith('image')) {\n <!-- Button Container -->\n <div\n class=\"btn-container\"\n [class]=\"config.btnContainerClass\"\n >\n <!-- Rotate Counter Clockwise -->\n @if (config.btnShow?.rotateCounterClockwise) {\n @if (config.btnIcons?.rotateCounterClockwise?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().rotateCounterClockwise()\"\n >\n <span [class]=\"config.btnIcons?.rotateCounterClockwise?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.rotateCounterClockwise?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().rotateCounterClockwise()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.rotateCounterClockwise?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Rotate Clockwise -->\n @if (config.btnShow?.rotateClockwise) {\n @if (config.btnIcons?.rotateClockwise?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().rotateClockwise()\"\n >\n <span [class]=\"config.btnIcons?.rotateClockwise?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.rotateClockwise?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().rotateClockwise()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.rotateClockwise?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Zoom Out -->\n @if (config.btnShow?.zoomOut) {\n @if (config.btnIcons?.zoomOut?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().zoomOut()\"\n >\n <span [class]=\"config.btnIcons?.zoomOut?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().zoomOut()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.zoomOut?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Zoom In -->\n @if (config.btnShow?.zoomIn) {\n @if (config.btnIcons?.zoomIn?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().zoomIn()\"\n >\n <span [class]=\"config.btnIcons?.zoomIn?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.zoomIn?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().zoomIn()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.zoomIn?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Fullscreen -->\n @if (config.allowFullscreen) {\n @if (config.btnIcons?.fullscreen?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().toggleFullscreen()\"\n >\n <span [class]=\"config.btnIcons?.fullscreen?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.fullscreen?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().toggleFullscreen()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.fullscreen?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Reset -->\n @if (config.btnShow?.reset) {\n @if (config.btnIcons?.reset?.classes) {\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().reset()\"\n >\n <span [class]=\"config.btnIcons?.reset?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.reset?.text) {\n <a\n [class]=\"config.btnClass\"\n (click)=\"fileViewer().reset()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.reset?.text\n }}</span>\n </a>\n }\n }\n\n <!-- Download -->\n @if (config.btnShow?.download) {\n @if (config.btnIcons?.download?.classes) {\n <button type=\"button\" [class]=\"config.btnClass\" (click)=\"fileViewer().download()\">\n <span [class]=\"config.btnIcons?.download?.classes\"></span>\n </button>\n }\n @if (config.btnIcons?.download?.text) {\n <a [class]=\"config.btnClass\" (click)=\"fileViewer().download()\">\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.download?.text }}</span>\n </a>\n }\n }\n\n <!-- Custom Buttons -->\n @for (cBtn of config.customBtns; track cBtn.icon.text) {\n @if (cBtn.icon.classes) {\n <button type=\"button\" [class]=\"config.btnClass\">\n <span [class]=\"cBtn.icon.classes\"></span>\n </button>\n }\n @if (cBtn.icon.text) {\n <a [class]=\"config.btnClass\">\n <span [class]=\"config.btnSubClass\">{{ cBtn.icon.text }}</span>\n </a>\n }\n }\n </div>\n}\n" }]
916
+ }], propDecorators: { fileViewer: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileViewer", required: true }] }] } });
960
917
 
961
918
  class C3SafeUrlPipe {
962
919
  constructor(sanitizer) {
@@ -965,10 +922,10 @@ class C3SafeUrlPipe {
965
922
  transform(url) {
966
923
  return url ? this.sanitizer.bypassSecurityTrustResourceUrl(url) : '';
967
924
  }
968
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3SafeUrlPipe, deps: [{ token: i1$3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
969
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: C3SafeUrlPipe, isStandalone: true, name: "c3SafeUrl" }); }
925
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3SafeUrlPipe, deps: [{ token: i1$3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
926
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: C3SafeUrlPipe, isStandalone: true, name: "c3SafeUrl" }); }
970
927
  }
971
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3SafeUrlPipe, decorators: [{
928
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3SafeUrlPipe, decorators: [{
972
929
  type: Pipe,
973
930
  args: [{
974
931
  name: 'c3SafeUrl',
@@ -978,129 +935,121 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
978
935
 
979
936
  class C3FileViewerImageComponent {
980
937
  constructor() {
981
- this.dragstart = new EventEmitter();
938
+ this.fileViewer = input.required(...(ngDevMode ? [{ debugName: "fileViewer" }] : []));
939
+ this.dragstart = output();
982
940
  }
983
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
984
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: C3FileViewerImageComponent, isStandalone: false, selector: "c3-file-viewer-image, [c3-file-viewer-image]", inputs: { fileViewer: "fileViewer" }, outputs: { dragstart: "dragstart" }, ngImport: i0, template: "<img\n *ngIf=\"fileViewer.currentFile.objectUrl\"\n [src]=\"fileViewer.currentFile.objectUrl | async | c3SafeUrl\"\n [ngStyle]=\"fileViewer.style\"\n alt=\"Image not found...\"\n (dragstart)=\"dragstart.emit($event)\"\n/>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: C3SafeUrlPipe, name: "c3SafeUrl" }] }); }
941
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
942
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: C3FileViewerImageComponent, isStandalone: false, selector: "c3-file-viewer-image, [c3-file-viewer-image]", inputs: { fileViewer: { classPropertyName: "fileViewer", publicName: "fileViewer", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { dragstart: "dragstart" }, ngImport: i0, template: "@if (fileViewer().currentFile.objectUrl) {\n <img\n [src]=\"fileViewer().currentFile.objectUrl | async | c3SafeUrl\"\n [ngStyle]=\"fileViewer().style\"\n alt=\"Image not found...\"\n (dragstart)=\"dragstart.emit($event)\"\n />\n}\n", dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: C3SafeUrlPipe, name: "c3SafeUrl" }] }); }
985
943
  }
986
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerImageComponent, decorators: [{
944
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerImageComponent, decorators: [{
987
945
  type: Component,
988
- args: [{ selector: 'c3-file-viewer-image, [c3-file-viewer-image]', standalone: false, template: "<img\n *ngIf=\"fileViewer.currentFile.objectUrl\"\n [src]=\"fileViewer.currentFile.objectUrl | async | c3SafeUrl\"\n [ngStyle]=\"fileViewer.style\"\n alt=\"Image not found...\"\n (dragstart)=\"dragstart.emit($event)\"\n/>\n" }]
989
- }], propDecorators: { fileViewer: [{
990
- type: Input
991
- }], dragstart: [{
992
- type: Output
993
- }] } });
946
+ args: [{ selector: 'c3-file-viewer-image, [c3-file-viewer-image]', standalone: false, template: "@if (fileViewer().currentFile.objectUrl) {\n <img\n [src]=\"fileViewer().currentFile.objectUrl | async | c3SafeUrl\"\n [ngStyle]=\"fileViewer().style\"\n alt=\"Image not found...\"\n (dragstart)=\"dragstart.emit($event)\"\n />\n}\n" }]
947
+ }], propDecorators: { fileViewer: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileViewer", required: true }] }], dragstart: [{ type: i0.Output, args: ["dragstart"] }] } });
994
948
 
995
949
  class C3FileViewerPdfComponent {
996
950
  constructor() {
997
- this.dragstart = new EventEmitter();
951
+ this.fileViewer = input.required(...(ngDevMode ? [{ debugName: "fileViewer" }] : []));
952
+ this.dragstart = output();
998
953
  }
999
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerPdfComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1000
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: C3FileViewerPdfComponent, isStandalone: false, selector: "c3-file-viewer-pdf", inputs: { fileViewer: "fileViewer" }, outputs: { dragstart: "dragstart" }, host: { styleAttribute: "display: block", classAttribute: "c3-file-viewer-pdf" }, ngImport: i0, template: "<!-- pdf viewer -->\n<embed\n type=\"application/pdf\"\n [src]=\"fileViewer.currentFile.objectUrl | async | c3SafeUrl\"\n [style.height]=\"'100%'\"\n [style.width]=\"'100%'\"\n/>\n<!-- floating download button -->\n<button mat-icon-button class=\"download-button\" (click)=\"fileViewer.download()\">\n <mat-icon>download</mat-icon>\n</button>\n", dependencies: [{ kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: C3SafeUrlPipe, name: "c3SafeUrl" }], encapsulation: i0.ViewEncapsulation.None }); }
954
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerPdfComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
955
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: C3FileViewerPdfComponent, isStandalone: false, selector: "c3-file-viewer-pdf", inputs: { fileViewer: { classPropertyName: "fileViewer", publicName: "fileViewer", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { dragstart: "dragstart" }, host: { styleAttribute: "display: block", classAttribute: "c3-file-viewer-pdf" }, ngImport: i0, template: "<!-- pdf viewer -->\n<embed\n type=\"application/pdf\"\n [src]=\"fileViewer().currentFile.objectUrl | async | c3SafeUrl\"\n [style.height]=\"'100%'\"\n [style.width]=\"'100%'\"\n/>\n<!-- floating download button -->\n<button mat-icon-button class=\"download-button\" (click)=\"fileViewer().download()\">\n <mat-icon>download</mat-icon>\n</button>\n", dependencies: [{ kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: C3SafeUrlPipe, name: "c3SafeUrl" }], encapsulation: i0.ViewEncapsulation.None }); }
1001
956
  }
1002
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerPdfComponent, decorators: [{
957
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerPdfComponent, decorators: [{
1003
958
  type: Component,
1004
959
  args: [{ selector: 'c3-file-viewer-pdf', encapsulation: ViewEncapsulation.None, host: {
1005
960
  style: 'display: block',
1006
961
  class: 'c3-file-viewer-pdf',
1007
- }, standalone: false, template: "<!-- pdf viewer -->\n<embed\n type=\"application/pdf\"\n [src]=\"fileViewer.currentFile.objectUrl | async | c3SafeUrl\"\n [style.height]=\"'100%'\"\n [style.width]=\"'100%'\"\n/>\n<!-- floating download button -->\n<button mat-icon-button class=\"download-button\" (click)=\"fileViewer.download()\">\n <mat-icon>download</mat-icon>\n</button>\n" }]
1008
- }], propDecorators: { fileViewer: [{
1009
- type: Input
1010
- }], dragstart: [{
1011
- type: Output
1012
- }] } });
962
+ }, standalone: false, template: "<!-- pdf viewer -->\n<embed\n type=\"application/pdf\"\n [src]=\"fileViewer().currentFile.objectUrl | async | c3SafeUrl\"\n [style.height]=\"'100%'\"\n [style.width]=\"'100%'\"\n/>\n<!-- floating download button -->\n<button mat-icon-button class=\"download-button\" (click)=\"fileViewer().download()\">\n <mat-icon>download</mat-icon>\n</button>\n" }]
963
+ }], propDecorators: { fileViewer: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileViewer", required: true }] }], dragstart: [{ type: i0.Output, args: ["dragstart"] }] } });
1013
964
 
1014
965
  class C3FileViewerVideoComponent {
1015
966
  constructor() {
1016
- this.fileViewer = input.required();
967
+ this.fileViewer = input.required(...(ngDevMode ? [{ debugName: "fileViewer" }] : []));
1017
968
  }
1018
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerVideoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1019
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.7", type: C3FileViewerVideoComponent, isStandalone: false, selector: "c3-file-viewer-video", inputs: { fileViewer: { classPropertyName: "fileViewer", publicName: "fileViewer", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<video controls [src]=\"fileViewer().currentFile.objectUrl | async | c3SafeUrl\" crossorigin=\"*\"></video>\n", dependencies: [{ kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: C3SafeUrlPipe, name: "c3SafeUrl" }] }); }
969
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerVideoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
970
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: C3FileViewerVideoComponent, isStandalone: false, selector: "c3-file-viewer-video", inputs: { fileViewer: { classPropertyName: "fileViewer", publicName: "fileViewer", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<video controls [src]=\"fileViewer().currentFile.objectUrl | async | c3SafeUrl\" crossorigin=\"*\"></video>\n", dependencies: [{ kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: C3SafeUrlPipe, name: "c3SafeUrl" }] }); }
1020
971
  }
1021
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerVideoComponent, decorators: [{
972
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerVideoComponent, decorators: [{
1022
973
  type: Component,
1023
974
  args: [{ selector: 'c3-file-viewer-video', standalone: false, template: "<video controls [src]=\"fileViewer().currentFile.objectUrl | async | c3SafeUrl\" crossorigin=\"*\"></video>\n" }]
1024
- }] });
975
+ }], propDecorators: { fileViewer: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileViewer", required: true }] }] } });
1025
976
 
1026
977
  class C3FileViewerDefaultComponent {
1027
978
  constructor() {
1028
- this.fileViewer = input.required();
979
+ this.fileViewer = input.required(...(ngDevMode ? [{ debugName: "fileViewer" }] : []));
1029
980
  }
1030
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerDefaultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1031
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.7", type: C3FileViewerDefaultComponent, isStandalone: false, selector: "c3-file-viewer-default", inputs: { fileViewer: { classPropertyName: "fileViewer", publicName: "fileViewer", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ng-container>\n <button (click)=\"fileViewer().download()\">Download {{ fileViewer().getOriginalName() }}</button>\n</ng-container>\n", styles: [":host{display:block}\n"] }); }
981
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerDefaultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
982
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: C3FileViewerDefaultComponent, isStandalone: false, selector: "c3-file-viewer-default", inputs: { fileViewer: { classPropertyName: "fileViewer", publicName: "fileViewer", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ng-container>\n <button (click)=\"fileViewer().download()\">Download {{ fileViewer().getOriginalName() }}</button>\n</ng-container>\n", styles: [":host{display:block}\n"] }); }
1032
983
  }
1033
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerDefaultComponent, decorators: [{
984
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerDefaultComponent, decorators: [{
1034
985
  type: Component,
1035
986
  args: [{ selector: 'c3-file-viewer-default', standalone: false, template: "<ng-container>\n <button (click)=\"fileViewer().download()\">Download {{ fileViewer().getOriginalName() }}</button>\n</ng-container>\n", styles: [":host{display:block}\n"] }]
1036
- }] });
987
+ }], propDecorators: { fileViewer: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileViewer", required: true }] }] } });
1037
988
 
1038
989
  class C3FileViewerComponent {
1039
990
  constructor(moduleConfig, _http) {
1040
991
  this.moduleConfig = moduleConfig;
1041
992
  this._http = _http;
1042
- this.indexChange = new EventEmitter();
1043
- this.configChange = new EventEmitter();
1044
- this.customFileEvent = new EventEmitter();
993
+ this.screenHeightOccupied = input(0, ...(ngDevMode ? [{ debugName: "screenHeightOccupied" }] : [])); // In Px
994
+ this.fileViewer = input.required(...(ngDevMode ? [{ debugName: "fileViewer" }] : []));
995
+ this.indexChange = output();
996
+ this.configChange = output();
997
+ this.customFileEvent = output();
998
+ // Setup subscriptions in constructor using effect
999
+ effect(() => {
1000
+ const viewer = this.fileViewer();
1001
+ viewer.customFile$.subscribe((event) => {
1002
+ this.customFileEvent.emit(event);
1003
+ });
1004
+ viewer.index$.subscribe((index) => {
1005
+ this.indexChange.emit(index);
1006
+ });
1007
+ viewer.config$.subscribe((config) => {
1008
+ this.configChange.emit(config);
1009
+ });
1010
+ });
1045
1011
  }
1046
1012
  ngOnInit() {
1047
1013
  this.defineStyleHeight();
1048
- this.fileViewer.customFile$.subscribe((event) => {
1049
- this.customFileEvent.emit(event);
1050
- });
1051
- this.fileViewer.index$.subscribe((index) => {
1052
- this.indexChange.emit(index);
1053
- });
1054
- this.fileViewer.config$.subscribe((config) => {
1055
- this.configChange.emit(config);
1056
- });
1057
1014
  }
1058
1015
  onMouseOver() {
1059
- if (this.fileViewer)
1060
- this.fileViewer.hovered = true;
1016
+ const viewer = this.fileViewer();
1017
+ if (viewer)
1018
+ viewer.hovered = true;
1061
1019
  }
1062
1020
  onMouseLeave() {
1063
- if (this.fileViewer)
1064
- this.fileViewer.hovered = false;
1021
+ const viewer = this.fileViewer();
1022
+ if (viewer)
1023
+ viewer.hovered = false;
1065
1024
  }
1066
1025
  ngOnChanges(changes) {
1067
- if (changes['screenHeightOccupied'] && this.fileViewer)
1026
+ if (changes['screenHeightOccupied'] && this.fileViewer())
1068
1027
  this.defineStyleHeight();
1069
1028
  }
1070
1029
  next(event) {
1071
- this.fileViewer.nextImage(event);
1030
+ this.fileViewer().nextImage(event);
1072
1031
  }
1073
1032
  previous(event) {
1074
- this.fileViewer.previousImage(event);
1033
+ this.fileViewer().previousImage(event);
1075
1034
  }
1076
1035
  defineStyleHeight() {
1077
- this.fileViewer.styleHeight =
1078
- 'calc(100% - ' + this.screenHeightOccupied + 'px)';
1036
+ this.fileViewer().styleHeight =
1037
+ 'calc(100% - ' + this.screenHeightOccupied() + 'px)';
1079
1038
  }
1080
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerComponent, deps: [{ token: 'config', optional: true }, { token: i1$4.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
1081
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: C3FileViewerComponent, isStandalone: false, selector: "c3-file-viewer", inputs: { screenHeightOccupied: "screenHeightOccupied", fileViewer: "fileViewer" }, outputs: { indexChange: "indexChange", configChange: "configChange", customFileEvent: "customFileEvent" }, host: { listeners: { "mouseover": "onMouseOver()", "mouseleave": "onMouseLeave()", "window:keyup.ArrowRight": "next($event)", "window:keyup.ArrowLeft": "previous($event)" }, classAttribute: "c3-file-viewer" }, usesOnChanges: true, ngImport: i0, template: "@if (fileViewer) {\n<div\n class=\"c3-file-container\"\n [c3-full-screen]=\"fileViewer.fullscreen$ | async\"\n [style.height]=\"fileViewer.styleHeight\"\n [style.backgroundColor]=\"fileViewer.config.containerBackgroundColor\"\n (wheel)=\"fileViewer.scrollZoom($event)\"\n (dragover)=\"fileViewer.onDragOver($event)\"\n>\n @if (fileViewer.currentFile.type.startsWith('image')) {\n <c3-file-viewer-image\n [fileViewer]=\"fileViewer\"\n [style]=\"fileViewer.style\"\n (dragstart)=\"fileViewer.onDragStart($event)\"\n />\n } @else if (fileViewer.currentFile.type.startsWith('video')) {\n <c3-file-viewer-video\n [fileViewer]=\"fileViewer\"\n />\n } @else if (fileViewer.currentFile.type.startsWith('application/pdf')) {\n <c3-file-viewer-pdf\n [fileViewer]=\"fileViewer\"\n />\n } @else {\n <c3-file-viewer-default\n [fileViewer]=\"fileViewer\"\n />\n }\n\n <!-- Div below will be used to hide the 'ghost' image when dragging -->\n <div></div>\n @if (fileViewer.loading) {\n <div class=\"spinner-container\">\n <div class=\"spinner\"></div>\n </div>\n }\n\n <c3-file-viewer-actions [fileViewer]=\"fileViewer\" />\n </div>\n}\n", styles: [".c3-file-container{position:relative;width:100%;display:flex;justify-content:center;align-items:center;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: FullScreenDirective, selector: "[C3FullScreen], [c3-full-screen]", inputs: ["c3Screenfull", "c3-full-screen"] }, { kind: "component", type: C3FileViewerActionsComponent, selector: "c3-file-viewer-actions", inputs: ["fileViewer"] }, { kind: "component", type: C3FileViewerImageComponent, selector: "c3-file-viewer-image, [c3-file-viewer-image]", inputs: ["fileViewer"], outputs: ["dragstart"] }, { kind: "component", type: C3FileViewerPdfComponent, selector: "c3-file-viewer-pdf", inputs: ["fileViewer"], outputs: ["dragstart"] }, { kind: "component", type: C3FileViewerVideoComponent, selector: "c3-file-viewer-video", inputs: ["fileViewer"] }, { kind: "component", type: C3FileViewerDefaultComponent, selector: "c3-file-viewer-default", inputs: ["fileViewer"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
1039
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerComponent, deps: [{ token: 'config', optional: true }, { token: i1$4.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
1040
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: C3FileViewerComponent, isStandalone: false, selector: "c3-file-viewer", inputs: { screenHeightOccupied: { classPropertyName: "screenHeightOccupied", publicName: "screenHeightOccupied", isSignal: true, isRequired: false, transformFunction: null }, fileViewer: { classPropertyName: "fileViewer", publicName: "fileViewer", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { indexChange: "indexChange", configChange: "configChange", customFileEvent: "customFileEvent" }, host: { listeners: { "mouseover": "onMouseOver()", "mouseleave": "onMouseLeave()", "window:keyup.ArrowRight": "next($event)", "window:keyup.ArrowLeft": "previous($event)" }, classAttribute: "c3-file-viewer" }, usesOnChanges: true, ngImport: i0, template: "@if (fileViewer(); as viewer) {\n<div\n class=\"c3-file-container\"\n [c3-full-screen]=\"viewer.fullscreen$ | async\"\n [style.height]=\"viewer.styleHeight\"\n [style.backgroundColor]=\"viewer.config.containerBackgroundColor\"\n (wheel)=\"viewer.scrollZoom($event)\"\n (dragover)=\"viewer.onDragOver($event)\"\n>\n @if (viewer.currentFile.type.startsWith('image')) {\n <c3-file-viewer-image\n [fileViewer]=\"viewer\"\n [style]=\"viewer.style\"\n (dragstart)=\"viewer.onDragStart($event)\"\n />\n } @else if (viewer.currentFile.type.startsWith('video')) {\n <c3-file-viewer-video\n [fileViewer]=\"viewer\"\n />\n } @else if (viewer.currentFile.type.startsWith('application/pdf')) {\n <c3-file-viewer-pdf\n [fileViewer]=\"viewer\"\n />\n } @else {\n <c3-file-viewer-default\n [fileViewer]=\"viewer\"\n />\n }\n\n <!-- Div below will be used to hide the 'ghost' image when dragging -->\n <div></div>\n @if (viewer.loading) {\n <div class=\"spinner-container\">\n <div class=\"spinner\"></div>\n </div>\n }\n\n <c3-file-viewer-actions [fileViewer]=\"viewer\" />\n </div>\n}\n", styles: [".c3-file-container{position:relative;width:100%;display:flex;justify-content:center;align-items:center;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: FullScreenDirective, selector: "[C3FullScreen], [c3-full-screen]", inputs: ["c3Screenfull", "c3-full-screen"] }, { kind: "component", type: C3FileViewerActionsComponent, selector: "c3-file-viewer-actions", inputs: ["fileViewer"] }, { kind: "component", type: C3FileViewerImageComponent, selector: "c3-file-viewer-image, [c3-file-viewer-image]", inputs: ["fileViewer"], outputs: ["dragstart"] }, { kind: "component", type: C3FileViewerPdfComponent, selector: "c3-file-viewer-pdf", inputs: ["fileViewer"], outputs: ["dragstart"] }, { kind: "component", type: C3FileViewerVideoComponent, selector: "c3-file-viewer-video", inputs: ["fileViewer"] }, { kind: "component", type: C3FileViewerDefaultComponent, selector: "c3-file-viewer-default", inputs: ["fileViewer"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
1082
1041
  }
1083
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerComponent, decorators: [{
1042
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerComponent, decorators: [{
1084
1043
  type: Component,
1085
1044
  args: [{ selector: 'c3-file-viewer', encapsulation: ViewEncapsulation.None, host: {
1086
1045
  class: 'c3-file-viewer',
1087
- }, standalone: false, template: "@if (fileViewer) {\n<div\n class=\"c3-file-container\"\n [c3-full-screen]=\"fileViewer.fullscreen$ | async\"\n [style.height]=\"fileViewer.styleHeight\"\n [style.backgroundColor]=\"fileViewer.config.containerBackgroundColor\"\n (wheel)=\"fileViewer.scrollZoom($event)\"\n (dragover)=\"fileViewer.onDragOver($event)\"\n>\n @if (fileViewer.currentFile.type.startsWith('image')) {\n <c3-file-viewer-image\n [fileViewer]=\"fileViewer\"\n [style]=\"fileViewer.style\"\n (dragstart)=\"fileViewer.onDragStart($event)\"\n />\n } @else if (fileViewer.currentFile.type.startsWith('video')) {\n <c3-file-viewer-video\n [fileViewer]=\"fileViewer\"\n />\n } @else if (fileViewer.currentFile.type.startsWith('application/pdf')) {\n <c3-file-viewer-pdf\n [fileViewer]=\"fileViewer\"\n />\n } @else {\n <c3-file-viewer-default\n [fileViewer]=\"fileViewer\"\n />\n }\n\n <!-- Div below will be used to hide the 'ghost' image when dragging -->\n <div></div>\n @if (fileViewer.loading) {\n <div class=\"spinner-container\">\n <div class=\"spinner\"></div>\n </div>\n }\n\n <c3-file-viewer-actions [fileViewer]=\"fileViewer\" />\n </div>\n}\n", styles: [".c3-file-container{position:relative;width:100%;display:flex;justify-content:center;align-items:center;overflow:hidden}\n"] }]
1046
+ }, standalone: false, template: "@if (fileViewer(); as viewer) {\n<div\n class=\"c3-file-container\"\n [c3-full-screen]=\"viewer.fullscreen$ | async\"\n [style.height]=\"viewer.styleHeight\"\n [style.backgroundColor]=\"viewer.config.containerBackgroundColor\"\n (wheel)=\"viewer.scrollZoom($event)\"\n (dragover)=\"viewer.onDragOver($event)\"\n>\n @if (viewer.currentFile.type.startsWith('image')) {\n <c3-file-viewer-image\n [fileViewer]=\"viewer\"\n [style]=\"viewer.style\"\n (dragstart)=\"viewer.onDragStart($event)\"\n />\n } @else if (viewer.currentFile.type.startsWith('video')) {\n <c3-file-viewer-video\n [fileViewer]=\"viewer\"\n />\n } @else if (viewer.currentFile.type.startsWith('application/pdf')) {\n <c3-file-viewer-pdf\n [fileViewer]=\"viewer\"\n />\n } @else {\n <c3-file-viewer-default\n [fileViewer]=\"viewer\"\n />\n }\n\n <!-- Div below will be used to hide the 'ghost' image when dragging -->\n <div></div>\n @if (viewer.loading) {\n <div class=\"spinner-container\">\n <div class=\"spinner\"></div>\n </div>\n }\n\n <c3-file-viewer-actions [fileViewer]=\"viewer\" />\n </div>\n}\n", styles: [".c3-file-container{position:relative;width:100%;display:flex;justify-content:center;align-items:center;overflow:hidden}\n"] }]
1088
1047
  }], ctorParameters: () => [{ type: undefined, decorators: [{
1089
1048
  type: Optional
1090
1049
  }, {
1091
1050
  type: Inject,
1092
1051
  args: ['config']
1093
- }] }, { type: i1$4.HttpClient }], propDecorators: { screenHeightOccupied: [{
1094
- type: Input
1095
- }], fileViewer: [{
1096
- type: Input
1097
- }], indexChange: [{
1098
- type: Output
1099
- }], configChange: [{
1100
- type: Output
1101
- }], customFileEvent: [{
1102
- type: Output
1103
- }], onMouseOver: [{
1052
+ }] }, { type: i1$4.HttpClient }], propDecorators: { screenHeightOccupied: [{ type: i0.Input, args: [{ isSignal: true, alias: "screenHeightOccupied", required: false }] }], fileViewer: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileViewer", required: true }] }], indexChange: [{ type: i0.Output, args: ["indexChange"] }], configChange: [{ type: i0.Output, args: ["configChange"] }], customFileEvent: [{ type: i0.Output, args: ["customFileEvent"] }], onMouseOver: [{
1104
1053
  type: HostListener,
1105
1054
  args: ['mouseover']
1106
1055
  }], onMouseLeave: [{
@@ -1422,7 +1371,7 @@ class C3FileViewer {
1422
1371
  }
1423
1372
  download(file = this.currentFile) {
1424
1373
  const client = this.config.customClient || this.client;
1425
- const originalName = this.getOriginalName();
1374
+ const originalName = this.getOriginalName(file);
1426
1375
  // Si le fichier est déjà en blob (petit fichier déjà chargé)
1427
1376
  if (file.objectUrl && this.locationBlobMap.has(file.location)) {
1428
1377
  const url = this.locationBlobMap.get(file.location);
@@ -1479,12 +1428,12 @@ class C3FileViewerDialog {
1479
1428
  constructor(fileViewer) {
1480
1429
  this.fileViewer = fileViewer;
1481
1430
  }
1482
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerDialog, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
1483
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: C3FileViewerDialog, isStandalone: false, selector: "ng-component", ngImport: i0, template: `
1431
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerDialog, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
1432
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: C3FileViewerDialog, isStandalone: false, selector: "ng-component", ngImport: i0, template: `
1484
1433
  <c3-file-viewer [fileViewer]="fileViewer" [screenHeightOccupied]="0" />
1485
1434
  `, isInline: true, dependencies: [{ kind: "component", type: C3FileViewerComponent, selector: "c3-file-viewer", inputs: ["screenHeightOccupied", "fileViewer"], outputs: ["indexChange", "configChange", "customFileEvent"] }] }); }
1486
1435
  }
1487
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerDialog, decorators: [{
1436
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerDialog, decorators: [{
1488
1437
  type: Component,
1489
1438
  args: [{
1490
1439
  template: `
@@ -1500,22 +1449,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
1500
1449
  class C3FileViewerDialogComponent {
1501
1450
  constructor(_dialog) {
1502
1451
  this._dialog = _dialog;
1503
- this.dialogConfig = {
1452
+ this.fileViewer = input.required(...(ngDevMode ? [{ debugName: "fileViewer" }] : []));
1453
+ this.dialogConfig = input({
1504
1454
  panelClass: 'c3-file-viewer-dialog',
1505
1455
  width: '80%',
1506
1456
  height: '80%',
1507
- };
1457
+ }, ...(ngDevMode ? [{ debugName: "dialogConfig" }] : []));
1508
1458
  }
1509
1459
  openDialog() {
1510
1460
  this._dialog.open(C3FileViewerDialog, {
1511
- data: this.fileViewer,
1512
- ...this.dialogConfig,
1461
+ data: this.fileViewer(),
1462
+ ...this.dialogConfig(),
1513
1463
  });
1514
1464
  }
1515
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerDialogComponent, deps: [{ token: i1$2.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
1516
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: C3FileViewerDialogComponent, isStandalone: false, selector: "c3-file-viewer-dialog", inputs: { fileViewer: "fileViewer", dialogConfig: "dialogConfig" }, host: { listeners: { "click": "openDialog()" }, classAttribute: "c3-file-viewer-dialog" }, ngImport: i0, template: ` <ng-content /> `, isInline: true }); }
1465
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerDialogComponent, deps: [{ token: i1$2.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
1466
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: C3FileViewerDialogComponent, isStandalone: false, selector: "c3-file-viewer-dialog", inputs: { fileViewer: { classPropertyName: "fileViewer", publicName: "fileViewer", isSignal: true, isRequired: true, transformFunction: null }, dialogConfig: { classPropertyName: "dialogConfig", publicName: "dialogConfig", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "openDialog()" }, classAttribute: "c3-file-viewer-dialog" }, ngImport: i0, template: ` <ng-content /> `, isInline: true }); }
1517
1467
  }
1518
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerDialogComponent, decorators: [{
1468
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerDialogComponent, decorators: [{
1519
1469
  type: Component,
1520
1470
  args: [{
1521
1471
  selector: 'c3-file-viewer-dialog',
@@ -1525,18 +1475,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
1525
1475
  },
1526
1476
  standalone: false
1527
1477
  }]
1528
- }], ctorParameters: () => [{ type: i1$2.MatDialog }], propDecorators: { fileViewer: [{
1529
- type: Input
1530
- }], dialogConfig: [{
1531
- type: Input
1532
- }], openDialog: [{
1478
+ }], ctorParameters: () => [{ type: i1$2.MatDialog }], propDecorators: { fileViewer: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileViewer", required: true }] }], dialogConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "dialogConfig", required: false }] }], openDialog: [{
1533
1479
  type: HostListener,
1534
1480
  args: ['click']
1535
1481
  }] } });
1536
1482
 
1537
1483
  class C3FileViewerModule {
1538
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1539
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerModule, declarations: [FullScreenDirective,
1484
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1485
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerModule, declarations: [FullScreenDirective,
1540
1486
  C3FileViewerComponent,
1541
1487
  C3FileViewerActionsComponent,
1542
1488
  C3FileViewerImageComponent,
@@ -1545,9 +1491,9 @@ class C3FileViewerModule {
1545
1491
  C3FileViewerDialogComponent,
1546
1492
  C3FileViewerDialog,
1547
1493
  C3FileViewerDefaultComponent], imports: [CommonModule, C3SafeUrlPipe, MatDialogModule, MatIconModule, MatButtonModule], exports: [FullScreenDirective, C3FileViewerComponent, C3FileViewerDialogComponent] }); }
1548
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerModule, providers: [provideHttpClient(withInterceptorsFromDi())], imports: [CommonModule, MatDialogModule, MatIconModule, MatButtonModule] }); }
1494
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerModule, providers: [provideHttpClient(withInterceptorsFromDi())], imports: [CommonModule, MatDialogModule, MatIconModule, MatButtonModule] }); }
1549
1495
  }
1550
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerModule, decorators: [{
1496
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerModule, decorators: [{
1551
1497
  type: NgModule,
1552
1498
  args: [{
1553
1499
  declarations: [
@@ -1569,10 +1515,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
1569
1515
 
1570
1516
  class C3FileDisplayCardComponent {
1571
1517
  constructor() {
1572
- this.fileObjectUrl = input.required();
1573
- this.displayFn = input((file) => file.name);
1574
- this.deletable = input(false);
1575
- this.size = input('32');
1518
+ this.fileObjectUrl = input.required(...(ngDevMode ? [{ debugName: "fileObjectUrl" }] : []));
1519
+ this.displayFn = input((file) => file.name, ...(ngDevMode ? [{ debugName: "displayFn" }] : []));
1520
+ this.deletable = input(false, ...(ngDevMode ? [{ debugName: "deletable" }] : []));
1521
+ this.size = input('32', ...(ngDevMode ? [{ debugName: "size" }] : []));
1576
1522
  this.onDelete = output();
1577
1523
  this.onDownload = output();
1578
1524
  this.getFileType = computed(() => {
@@ -1586,37 +1532,37 @@ class C3FileDisplayCardComponent {
1586
1532
  return 'video';
1587
1533
  }
1588
1534
  return 'unknown';
1589
- });
1535
+ }, ...(ngDevMode ? [{ debugName: "getFileType" }] : []));
1590
1536
  this.getFileObjectUrl = computed(() => {
1591
1537
  const file = this.fileObjectUrl();
1592
1538
  return file && file.objectUrl ? file.objectUrl : null;
1593
- });
1539
+ }, ...(ngDevMode ? [{ debugName: "getFileObjectUrl" }] : []));
1594
1540
  this.getFileName = computed(() => {
1595
1541
  const file = this.fileObjectUrl();
1596
1542
  return file ? this.displayFn()(file) : '';
1597
- });
1543
+ }, ...(ngDevMode ? [{ debugName: "getFileName" }] : []));
1598
1544
  this.getDisplayName = computed(() => {
1599
1545
  const file = this.fileObjectUrl();
1600
1546
  return file ? this.displayFn()(file) : '';
1601
- });
1547
+ }, ...(ngDevMode ? [{ debugName: "getDisplayName" }] : []));
1602
1548
  }
1603
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1604
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: C3FileDisplayCardComponent, isStandalone: true, selector: "c3-file-display-card", inputs: { fileObjectUrl: { classPropertyName: "fileObjectUrl", publicName: "fileObjectUrl", isSignal: true, isRequired: true, transformFunction: null }, displayFn: { classPropertyName: "displayFn", publicName: "displayFn", isSignal: true, isRequired: false, transformFunction: null }, deletable: { classPropertyName: "deletable", publicName: "deletable", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDelete: "onDelete", onDownload: "onDownload" }, ngImport: i0, template: "<button\n class=\"file-card border\"\n [class.size-16]=\"size() === '16'\"\n [class.size-32]=\"size() === '32'\"\n [class.size-64]=\"size() === '64'\"\n [class.size-128]=\"size() === '128'\"\n [class.size-256]=\"size() === '256'\"\n>\n @if(deletable()) {\n <div class=\"actions\">\n <button mat-icon-button (click)=\"onDownload.emit()\">\n <mat-icon>download</mat-icon>\n </button>\n <button mat-icon-button color=\"red\" (click)=\"onDelete.emit()\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n } @if(fileObjectUrl()) {\n @switch (getFileType()) { @case ('image') {\n <img\n class=\"h-full w-full object-cover\"\n [src]=\"(getFileObjectUrl() | async) || '/default-image.svg'\"\n [alt]=\"getFileName()\"\n />\n } @case ('application') {\n <mat-icon> file-pdf-box </mat-icon>\n } @case ('video') {\n <mat-icon> video </mat-icon>\n }\n }\n\n <div class=\"informations flex justify-between items-center\">\n <span class=\"text-xs text-white\">\n {{ getDisplayName() }}\n </span>\n </div>\n }\n</button>\n", styles: [":host{display:block;width:fit-content}:host .file-card{position:relative;border-radius:4px;border:1px solid #e0e0e0;overflow:hidden}:host .file-card .actions{position:absolute;top:-21px;right:-21px;z-index:1;display:none}:host .file-card img{border-radius:4px}:host .file-card:hover .actions{display:block}:host .file-card .informations{position:absolute;bottom:0;left:0;z-index:1;width:100%;background:#00000080;padding:0 4px}:host .size-16{height:4rem;width:4rem}:host .size-32{height:8rem;width:8rem}:host .size-64{height:16rem;width:16rem}:host .size-128{height:32rem;width:32rem}:host .size-256{height:64rem;width:64rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1549
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1550
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: C3FileDisplayCardComponent, isStandalone: true, selector: "c3-file-display-card", inputs: { fileObjectUrl: { classPropertyName: "fileObjectUrl", publicName: "fileObjectUrl", isSignal: true, isRequired: true, transformFunction: null }, displayFn: { classPropertyName: "displayFn", publicName: "displayFn", isSignal: true, isRequired: false, transformFunction: null }, deletable: { classPropertyName: "deletable", publicName: "deletable", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDelete: "onDelete", onDownload: "onDownload" }, ngImport: i0, template: "<button\n class=\"file-card border\"\n [class.size-16]=\"size() === '16'\"\n [class.size-32]=\"size() === '32'\"\n [class.size-64]=\"size() === '64'\"\n [class.size-128]=\"size() === '128'\"\n [class.size-256]=\"size() === '256'\"\n>\n @if(deletable()) {\n <div class=\"actions\">\n <button mat-icon-button (click)=\"onDownload.emit()\">\n <mat-icon>download</mat-icon>\n </button>\n <button mat-icon-button color=\"red\" (click)=\"onDelete.emit()\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n } @if(fileObjectUrl()) {\n @switch (getFileType()) { @case ('image') {\n <img\n class=\"h-full w-full object-cover\"\n [src]=\"(getFileObjectUrl() | async) || '/default-image.svg'\"\n [alt]=\"getFileName()\"\n />\n } @case ('application') {\n <mat-icon> file-pdf-box </mat-icon>\n } @case ('video') {\n <mat-icon> video </mat-icon>\n }\n }\n\n <div class=\"informations flex justify-between items-center\">\n <span class=\"text-xs text-white\">\n {{ getDisplayName() }}\n </span>\n </div>\n }\n</button>\n", styles: [":host{display:block;width:fit-content}:host .file-card{position:relative;border-radius:4px;border:1px solid #e0e0e0;overflow:hidden}:host .file-card .actions{position:absolute;top:-21px;right:-21px;z-index:1;display:none}:host .file-card img{border-radius:4px}:host .file-card:hover .actions{display:block}:host .file-card .informations{position:absolute;bottom:0;left:0;z-index:1;width:100%;background:#00000080;padding:0 4px}:host .size-16{height:4rem;width:4rem}:host .size-32{height:8rem;width:8rem}:host .size-64{height:16rem;width:16rem}:host .size-128{height:32rem;width:32rem}:host .size-256{height:64rem;width:64rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
1605
1551
  }
1606
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayCardComponent, decorators: [{
1552
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayCardComponent, decorators: [{
1607
1553
  type: Component,
1608
1554
  args: [{ selector: 'c3-file-display-card', imports: [CommonModule, MatButtonModule, MatIconModule], template: "<button\n class=\"file-card border\"\n [class.size-16]=\"size() === '16'\"\n [class.size-32]=\"size() === '32'\"\n [class.size-64]=\"size() === '64'\"\n [class.size-128]=\"size() === '128'\"\n [class.size-256]=\"size() === '256'\"\n>\n @if(deletable()) {\n <div class=\"actions\">\n <button mat-icon-button (click)=\"onDownload.emit()\">\n <mat-icon>download</mat-icon>\n </button>\n <button mat-icon-button color=\"red\" (click)=\"onDelete.emit()\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n } @if(fileObjectUrl()) {\n @switch (getFileType()) { @case ('image') {\n <img\n class=\"h-full w-full object-cover\"\n [src]=\"(getFileObjectUrl() | async) || '/default-image.svg'\"\n [alt]=\"getFileName()\"\n />\n } @case ('application') {\n <mat-icon> file-pdf-box </mat-icon>\n } @case ('video') {\n <mat-icon> video </mat-icon>\n }\n }\n\n <div class=\"informations flex justify-between items-center\">\n <span class=\"text-xs text-white\">\n {{ getDisplayName() }}\n </span>\n </div>\n }\n</button>\n", styles: [":host{display:block;width:fit-content}:host .file-card{position:relative;border-radius:4px;border:1px solid #e0e0e0;overflow:hidden}:host .file-card .actions{position:absolute;top:-21px;right:-21px;z-index:1;display:none}:host .file-card img{border-radius:4px}:host .file-card:hover .actions{display:block}:host .file-card .informations{position:absolute;bottom:0;left:0;z-index:1;width:100%;background:#00000080;padding:0 4px}:host .size-16{height:4rem;width:4rem}:host .size-32{height:8rem;width:8rem}:host .size-64{height:16rem;width:16rem}:host .size-128{height:32rem;width:32rem}:host .size-256{height:64rem;width:64rem}\n"] }]
1609
- }] });
1555
+ }], propDecorators: { fileObjectUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileObjectUrl", required: true }] }], displayFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayFn", required: false }] }], deletable: [{ type: i0.Input, args: [{ isSignal: true, alias: "deletable", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], onDelete: [{ type: i0.Output, args: ["onDelete"] }], onDownload: [{ type: i0.Output, args: ["onDownload"] }] } });
1610
1556
 
1611
1557
  class C3FileDisplayGridComponent {
1612
1558
  constructor() {
1613
- this.files = input.required();
1614
- this.config = input();
1615
- this.cardSize = input('32');
1616
- this.displayFn = input((file) => file.name);
1617
- this.deletable = input(false);
1559
+ this.files = input.required(...(ngDevMode ? [{ debugName: "files" }] : []));
1560
+ this.config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : []));
1561
+ this.cardSize = input('32', ...(ngDevMode ? [{ debugName: "cardSize" }] : []));
1562
+ this.displayFn = input((file) => file.name, ...(ngDevMode ? [{ debugName: "displayFn" }] : []));
1563
+ this.deletable = input(false, ...(ngDevMode ? [{ debugName: "deletable" }] : []));
1618
1564
  this.onDelete = output();
1619
- this.dialog = viewChild(C3FileViewerDialogComponent);
1565
+ this.dialog = viewChild(C3FileViewerDialogComponent, ...(ngDevMode ? [{ debugName: "dialog" }] : []));
1620
1566
  this.fileViewer = new C3FileViewer({
1621
1567
  client: inject(HttpClient),
1622
1568
  });
@@ -1633,17 +1579,17 @@ class C3FileDisplayGridComponent {
1633
1579
  this.fileViewer.currentIndex = index;
1634
1580
  this.dialog()?.openDialog();
1635
1581
  }
1636
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1637
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: C3FileDisplayGridComponent, isStandalone: true, selector: "c3-file-display-grid", inputs: { files: { classPropertyName: "files", publicName: "files", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, cardSize: { classPropertyName: "cardSize", publicName: "cardSize", isSignal: true, isRequired: false, transformFunction: null }, displayFn: { classPropertyName: "displayFn", publicName: "displayFn", isSignal: true, isRequired: false, transformFunction: null }, deletable: { classPropertyName: "deletable", publicName: "deletable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDelete: "onDelete" }, viewQueries: [{ propertyName: "dialog", first: true, predicate: C3FileViewerDialogComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<c3-file-viewer-dialog [fileViewer]=\"fileViewer\">\n <div class=\"c3-file-display-grid\">\n @for (file of files(); track $index) {\n <c3-file-display-card\n [fileObjectUrl]=\"fileViewer.filesObjectUrl[$index]\"\n [size]=\"cardSize()\"\n (click)=\"openDialog($event, $index)\"\n (onDelete)=\"onDelete.emit(file)\"\n (onDownload)=\"fileViewer.download(file)\"\n />\n }\n </div>\n</c3-file-viewer-dialog>\n", styles: [":host{display:block}:host .c3-file-display-grid{display:flex;flex-flow:wrap;gap:1rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: C3FileDisplayCardComponent, selector: "c3-file-display-card", inputs: ["fileObjectUrl", "displayFn", "deletable", "size"], outputs: ["onDelete", "onDownload"] }, { kind: "ngmodule", type: C3FileViewerModule }, { kind: "component", type: C3FileViewerDialogComponent, selector: "c3-file-viewer-dialog", inputs: ["fileViewer", "dialogConfig"] }] }); }
1582
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1583
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: C3FileDisplayGridComponent, isStandalone: true, selector: "c3-file-display-grid", inputs: { files: { classPropertyName: "files", publicName: "files", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, cardSize: { classPropertyName: "cardSize", publicName: "cardSize", isSignal: true, isRequired: false, transformFunction: null }, displayFn: { classPropertyName: "displayFn", publicName: "displayFn", isSignal: true, isRequired: false, transformFunction: null }, deletable: { classPropertyName: "deletable", publicName: "deletable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDelete: "onDelete" }, viewQueries: [{ propertyName: "dialog", first: true, predicate: C3FileViewerDialogComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<c3-file-viewer-dialog [fileViewer]=\"fileViewer\">\n <div class=\"c3-file-display-grid\">\n @for (file of files(); track $index) {\n <c3-file-display-card\n [fileObjectUrl]=\"fileViewer.filesObjectUrl[$index]\"\n [size]=\"cardSize()\"\n (click)=\"openDialog($event, $index)\"\n (onDelete)=\"onDelete.emit(file)\"\n (onDownload)=\"fileViewer.download(file)\"\n />\n }\n </div>\n</c3-file-viewer-dialog>\n", styles: [":host{display:block}:host .c3-file-display-grid{display:flex;flex-flow:wrap;gap:1rem}\n"], dependencies: [{ kind: "component", type: C3FileDisplayCardComponent, selector: "c3-file-display-card", inputs: ["fileObjectUrl", "displayFn", "deletable", "size"], outputs: ["onDelete", "onDownload"] }, { kind: "ngmodule", type: C3FileViewerModule }, { kind: "component", type: C3FileViewerDialogComponent, selector: "c3-file-viewer-dialog", inputs: ["fileViewer", "dialogConfig"] }] }); }
1638
1584
  }
1639
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayGridComponent, decorators: [{
1585
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayGridComponent, decorators: [{
1640
1586
  type: Component,
1641
- args: [{ selector: 'c3-file-display-grid', imports: [CommonModule, C3FileDisplayCardComponent, C3FileViewerModule], template: "<c3-file-viewer-dialog [fileViewer]=\"fileViewer\">\n <div class=\"c3-file-display-grid\">\n @for (file of files(); track $index) {\n <c3-file-display-card\n [fileObjectUrl]=\"fileViewer.filesObjectUrl[$index]\"\n [size]=\"cardSize()\"\n (click)=\"openDialog($event, $index)\"\n (onDelete)=\"onDelete.emit(file)\"\n (onDownload)=\"fileViewer.download(file)\"\n />\n }\n </div>\n</c3-file-viewer-dialog>\n", styles: [":host{display:block}:host .c3-file-display-grid{display:flex;flex-flow:wrap;gap:1rem}\n"] }]
1642
- }], ctorParameters: () => [] });
1587
+ args: [{ selector: 'c3-file-display-grid', imports: [C3FileDisplayCardComponent, C3FileViewerModule], template: "<c3-file-viewer-dialog [fileViewer]=\"fileViewer\">\n <div class=\"c3-file-display-grid\">\n @for (file of files(); track $index) {\n <c3-file-display-card\n [fileObjectUrl]=\"fileViewer.filesObjectUrl[$index]\"\n [size]=\"cardSize()\"\n (click)=\"openDialog($event, $index)\"\n (onDelete)=\"onDelete.emit(file)\"\n (onDownload)=\"fileViewer.download(file)\"\n />\n }\n </div>\n</c3-file-viewer-dialog>\n", styles: [":host{display:block}:host .c3-file-display-grid{display:flex;flex-flow:wrap;gap:1rem}\n"] }]
1588
+ }], ctorParameters: () => [], propDecorators: { files: [{ type: i0.Input, args: [{ isSignal: true, alias: "files", required: true }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }], cardSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "cardSize", required: false }] }], displayFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayFn", required: false }] }], deletable: [{ type: i0.Input, args: [{ isSignal: true, alias: "deletable", required: false }] }], onDelete: [{ type: i0.Output, args: ["onDelete"] }], dialog: [{ type: i0.ViewChild, args: [i0.forwardRef(() => C3FileViewerDialogComponent), { isSignal: true }] }] } });
1643
1589
 
1644
1590
  class C3FileDisplayIconComponent {
1645
1591
  constructor() {
1646
- this.fileType = input.required();
1592
+ this.fileType = input.required(...(ngDevMode ? [{ debugName: "fileType" }] : []));
1647
1593
  this.displayedIcon = computed(() => {
1648
1594
  switch (this.fileType()) {
1649
1595
  case 'image/webp':
@@ -1662,7 +1608,7 @@ class C3FileDisplayIconComponent {
1662
1608
  default:
1663
1609
  return 'content_copy';
1664
1610
  }
1665
- });
1611
+ }, ...(ngDevMode ? [{ debugName: "displayedIcon" }] : []));
1666
1612
  this.color = computed(() => {
1667
1613
  switch (this.fileType()) {
1668
1614
  case 'image/webp':
@@ -1681,15 +1627,15 @@ class C3FileDisplayIconComponent {
1681
1627
  default:
1682
1628
  return 'text-gray';
1683
1629
  }
1684
- });
1630
+ }, ...(ngDevMode ? [{ debugName: "color" }] : []));
1685
1631
  }
1686
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1687
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.7", type: C3FileDisplayIconComponent, isStandalone: true, selector: "c3-file-display-icon", inputs: { fileType: { classPropertyName: "fileType", publicName: "fileType", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<mat-icon [ngClass]=\"color()\">{{ displayedIcon() }}</mat-icon>\n", styles: [":host{display:block}:host .text-primary{color:var(--primary-color)}:host .text-secondary{color:var(--secondary-color)}:host .text-success{color:var(--success-color)}:host .text-gray{color:var(--gray-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1632
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1633
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: C3FileDisplayIconComponent, isStandalone: true, selector: "c3-file-display-icon", inputs: { fileType: { classPropertyName: "fileType", publicName: "fileType", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<mat-icon [ngClass]=\"color()\">{{ displayedIcon() }}</mat-icon>\n", styles: [":host{display:block}:host .text-primary{color:var(--primary-color)}:host .text-secondary{color:var(--secondary-color)}:host .text-success{color:var(--success-color)}:host .text-gray{color:var(--gray-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1688
1634
  }
1689
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayIconComponent, decorators: [{
1635
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayIconComponent, decorators: [{
1690
1636
  type: Component,
1691
1637
  args: [{ selector: 'c3-file-display-icon', imports: [CommonModule, MatIconModule], template: "<mat-icon [ngClass]=\"color()\">{{ displayedIcon() }}</mat-icon>\n", styles: [":host{display:block}:host .text-primary{color:var(--primary-color)}:host .text-secondary{color:var(--secondary-color)}:host .text-success{color:var(--success-color)}:host .text-gray{color:var(--gray-color)}\n"] }]
1692
- }] });
1638
+ }], propDecorators: { fileType: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileType", required: true }] }] } });
1693
1639
 
1694
1640
  /**
1695
1641
  * A directive that prevents the default action and stops event propagation on click events.
@@ -1703,10 +1649,10 @@ class C3PreventClickDirective {
1703
1649
  event.preventDefault();
1704
1650
  event.stopPropagation();
1705
1651
  }
1706
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3PreventClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1707
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.7", type: C3PreventClickDirective, isStandalone: true, selector: "[c3-prevent-click]", host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 }); }
1652
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3PreventClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1653
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.14", type: C3PreventClickDirective, isStandalone: true, selector: "[c3-prevent-click]", host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 }); }
1708
1654
  }
1709
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3PreventClickDirective, decorators: [{
1655
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3PreventClickDirective, decorators: [{
1710
1656
  type: Directive,
1711
1657
  args: [{
1712
1658
  selector: '[c3-prevent-click]',
@@ -1725,7 +1671,7 @@ class C3PreventKeyboardEventDirective {
1725
1671
  /**
1726
1672
  * The keyboard key to prevent the default action and stop event propagation for. Defaults to 'enter'.
1727
1673
  */
1728
- this.key = 'enter';
1674
+ this.key = input('enter', ...(ngDevMode ? [{ debugName: "key" }] : []));
1729
1675
  }
1730
1676
  /**
1731
1677
  * HostListener for the 'keydown' event.
@@ -1733,25 +1679,23 @@ class C3PreventKeyboardEventDirective {
1733
1679
  */
1734
1680
  onKeyDown(event) {
1735
1681
  // Check if the key pressed matches the input key.
1736
- if (event.key?.toLocaleLowerCase() === this.key.toLocaleLowerCase()) {
1682
+ if (event.key?.toLocaleLowerCase() === this.key().toLocaleLowerCase()) {
1737
1683
  // Prevent the default action associated with the event.
1738
1684
  event.preventDefault();
1739
1685
  // Stop the event from bubbling up the event chain.
1740
1686
  event.stopPropagation();
1741
1687
  }
1742
1688
  }
1743
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3PreventKeyboardEventDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1744
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.7", type: C3PreventKeyboardEventDirective, isStandalone: true, selector: "[c3-prevent-keyboard-event]", inputs: { key: "key" }, host: { listeners: { "keydown": "onKeyDown($event)" } }, ngImport: i0 }); }
1689
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3PreventKeyboardEventDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1690
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.14", type: C3PreventKeyboardEventDirective, isStandalone: true, selector: "[c3-prevent-keyboard-event]", inputs: { key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown": "onKeyDown($event)" } }, ngImport: i0 }); }
1745
1691
  }
1746
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3PreventKeyboardEventDirective, decorators: [{
1692
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3PreventKeyboardEventDirective, decorators: [{
1747
1693
  type: Directive,
1748
1694
  args: [{
1749
1695
  selector: '[c3-prevent-keyboard-event]',
1750
1696
  standalone: true,
1751
1697
  }]
1752
- }], propDecorators: { key: [{
1753
- type: Input
1754
- }], onKeyDown: [{
1698
+ }], propDecorators: { key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: false }] }], onKeyDown: [{
1755
1699
  type: HostListener,
1756
1700
  args: ['keydown', ['$event']]
1757
1701
  }] } });
@@ -1760,10 +1704,10 @@ class C3StopPropagationDirective {
1760
1704
  onClick(event) {
1761
1705
  event.stopImmediatePropagation();
1762
1706
  }
1763
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3StopPropagationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1764
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.7", type: C3StopPropagationDirective, isStandalone: true, selector: "[c3-stop-click-propagation]", host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 }); }
1707
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3StopPropagationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1708
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.14", type: C3StopPropagationDirective, isStandalone: true, selector: "[c3-stop-click-propagation]", host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 }); }
1765
1709
  }
1766
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3StopPropagationDirective, decorators: [{
1710
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3StopPropagationDirective, decorators: [{
1767
1711
  type: Directive,
1768
1712
  args: [{
1769
1713
  selector: '[c3-stop-click-propagation]',
@@ -1778,31 +1722,31 @@ const C3_FILE_DISPLAY_LIST = new InjectionToken('C3_FILE_DISPLAY_LIST');
1778
1722
 
1779
1723
  class C3FileDisplayListColumnDefDirective {
1780
1724
  constructor() {
1781
- this.title = input.required({
1782
- alias: 'c3FileDisplayListColumnDef',
1783
- });
1784
- this.classList = input([]);
1725
+ this.title = input.required(...(ngDevMode ? [{ debugName: "title", alias: 'c3FileDisplayListColumnDef' }] : [{
1726
+ alias: 'c3FileDisplayListColumnDef',
1727
+ }]));
1728
+ this.classList = input([], ...(ngDevMode ? [{ debugName: "classList" }] : []));
1785
1729
  this._table = inject(C3_FILE_DISPLAY_LIST, { optional: true });
1786
- this.headerCellDef = contentChild(C3FileDisplayListHeaderCellDefDirective);
1787
- this.cellDef = contentChild(C3FileDisplayListCellDefDirective);
1730
+ this.headerCellDef = contentChild(C3FileDisplayListHeaderCellDefDirective, ...(ngDevMode ? [{ debugName: "headerCellDef" }] : []));
1731
+ this.cellDef = contentChild(C3FileDisplayListCellDefDirective, ...(ngDevMode ? [{ debugName: "cellDef" }] : []));
1788
1732
  }
1789
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayListColumnDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1790
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.2.7", type: C3FileDisplayListColumnDefDirective, isStandalone: true, selector: "[c3FileDisplayListColumnDef]", inputs: { title: { classPropertyName: "title", publicName: "c3FileDisplayListColumnDef", isSignal: true, isRequired: true, transformFunction: null }, classList: { classPropertyName: "classList", publicName: "classList", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "headerCellDef", first: true, predicate: C3FileDisplayListHeaderCellDefDirective, descendants: true, isSignal: true }, { propertyName: "cellDef", first: true, predicate: C3FileDisplayListCellDefDirective, descendants: true, isSignal: true }], ngImport: i0 }); }
1733
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayListColumnDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1734
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.14", type: C3FileDisplayListColumnDefDirective, isStandalone: true, selector: "[c3FileDisplayListColumnDef]", inputs: { title: { classPropertyName: "title", publicName: "c3FileDisplayListColumnDef", isSignal: true, isRequired: true, transformFunction: null }, classList: { classPropertyName: "classList", publicName: "classList", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "headerCellDef", first: true, predicate: C3FileDisplayListHeaderCellDefDirective, descendants: true, isSignal: true }, { propertyName: "cellDef", first: true, predicate: C3FileDisplayListCellDefDirective, descendants: true, isSignal: true }], ngImport: i0 }); }
1791
1735
  }
1792
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayListColumnDefDirective, decorators: [{
1736
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayListColumnDefDirective, decorators: [{
1793
1737
  type: Directive,
1794
1738
  args: [{
1795
1739
  selector: '[c3FileDisplayListColumnDef]',
1796
1740
  }]
1797
- }] });
1741
+ }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "c3FileDisplayListColumnDef", required: true }] }], classList: [{ type: i0.Input, args: [{ isSignal: true, alias: "classList", required: false }] }], headerCellDef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => C3FileDisplayListHeaderCellDefDirective), { isSignal: true }] }], cellDef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => C3FileDisplayListCellDefDirective), { isSignal: true }] }] } });
1798
1742
  class C3FileDisplayListHeaderCellDefDirective {
1799
1743
  constructor() {
1800
1744
  this.template = inject(TemplateRef);
1801
1745
  }
1802
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayListHeaderCellDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1803
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.7", type: C3FileDisplayListHeaderCellDefDirective, isStandalone: true, selector: "[c3FileDisplayListHeaderCellDef]", ngImport: i0 }); }
1746
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayListHeaderCellDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1747
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.14", type: C3FileDisplayListHeaderCellDefDirective, isStandalone: true, selector: "[c3FileDisplayListHeaderCellDef]", ngImport: i0 }); }
1804
1748
  }
1805
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayListHeaderCellDefDirective, decorators: [{
1749
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayListHeaderCellDefDirective, decorators: [{
1806
1750
  type: Directive,
1807
1751
  args: [{
1808
1752
  selector: '[c3FileDisplayListHeaderCellDef]',
@@ -1812,10 +1756,10 @@ class C3FileDisplayListCellDefDirective {
1812
1756
  constructor() {
1813
1757
  this.template = inject(TemplateRef);
1814
1758
  }
1815
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayListCellDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1816
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.7", type: C3FileDisplayListCellDefDirective, isStandalone: true, selector: "[c3FileDisplayListCellDef]", ngImport: i0 }); }
1759
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayListCellDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1760
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.14", type: C3FileDisplayListCellDefDirective, isStandalone: true, selector: "[c3FileDisplayListCellDef]", ngImport: i0 }); }
1817
1761
  }
1818
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayListCellDefDirective, decorators: [{
1762
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayListCellDefDirective, decorators: [{
1819
1763
  type: Directive,
1820
1764
  args: [{
1821
1765
  selector: '[c3FileDisplayListCellDef]',
@@ -1824,14 +1768,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
1824
1768
 
1825
1769
  class C3FileDisplayListComponent {
1826
1770
  constructor() {
1827
- this.files = input.required();
1828
- this.config = input();
1829
- this.displayFn = input((file) => file.name);
1830
- this.columns = input(['icon', 'name', 'date']);
1831
- this.deletable = input(false);
1771
+ this.files = input.required(...(ngDevMode ? [{ debugName: "files" }] : []));
1772
+ this.config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : []));
1773
+ this.displayFn = input((file) => file.name, ...(ngDevMode ? [{ debugName: "displayFn" }] : []));
1774
+ this.columns = input(['icon', 'name', 'date'], ...(ngDevMode ? [{ debugName: "columns" }] : []));
1775
+ this.deletable = input(false, ...(ngDevMode ? [{ debugName: "deletable" }] : []));
1832
1776
  this.onDelete = output();
1833
- this.dialog = viewChild(C3FileViewerDialogComponent);
1834
- this._columnDefs = contentChildren(C3FileDisplayListColumnDefDirective);
1777
+ this.dialog = viewChild(C3FileViewerDialogComponent, ...(ngDevMode ? [{ debugName: "dialog" }] : []));
1778
+ this._columnDefs = contentChildren(C3FileDisplayListColumnDefDirective, ...(ngDevMode ? [{ debugName: "_columnDefs" }] : []));
1835
1779
  this._viewContainer = inject(ViewContainerRef);
1836
1780
  this.fileViewer = new C3FileViewer({
1837
1781
  client: inject(HttpClient),
@@ -1852,15 +1796,15 @@ class C3FileDisplayListComponent {
1852
1796
  getColumnDef(columnName) {
1853
1797
  return this._columnDefs().find((col) => col.title() === columnName);
1854
1798
  }
1855
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1856
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: C3FileDisplayListComponent, isStandalone: true, selector: "c3-file-display-list", inputs: { files: { classPropertyName: "files", publicName: "files", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, displayFn: { classPropertyName: "displayFn", publicName: "displayFn", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, deletable: { classPropertyName: "deletable", publicName: "deletable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDelete: "onDelete" }, providers: [
1799
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1800
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: C3FileDisplayListComponent, isStandalone: true, selector: "c3-file-display-list", inputs: { files: { classPropertyName: "files", publicName: "files", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, displayFn: { classPropertyName: "displayFn", publicName: "displayFn", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, deletable: { classPropertyName: "deletable", publicName: "deletable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDelete: "onDelete" }, providers: [
1857
1801
  {
1858
1802
  provide: C3_FILE_DISPLAY_LIST,
1859
1803
  useExisting: C3FileDisplayListComponent,
1860
1804
  },
1861
- ], queries: [{ propertyName: "_columnDefs", predicate: C3FileDisplayListColumnDefDirective, isSignal: true }], viewQueries: [{ propertyName: "dialog", first: true, predicate: C3FileViewerDialogComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<c3-file-viewer-dialog [fileViewer]=\"fileViewer\">\n<!-- header -->\n <table class=\"file-table\">\n <thead>\n <tr>\n @for (columnName of columns(); track columnName) {\n <th [class.full]=\"columnName === 'name'\" [class.icon]=\"columnName === 'icon'\">\n @if (getColumnDef(columnName)?.headerCellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.headerCellDef()!.template\"></ng-container>\n } @else {\n @if (columnName === 'icon') {\n <span></span>\n } @else if (columnName === 'name') {\n <span>Nom</span>\n } @else if (columnName === 'date') {\n <span>Date d'ajout</span>\n }\n }\n </th>\n }\n <th class=\"actions\">\n <ng-content></ng-content>\n </th>\n </tr>\n </thead>\n <tbody>\n @for (file of files(); track $index) {\n <tr (click)=\"openDialog($event, $index)\">\n @for (columnName of columns(); track columnName) {\n @if (columnName === 'name') {\n <td class=\"name full\">\n @if (getColumnDef(columnName)?.cellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.cellDef()!.template; context: { $implicit: file }\"></ng-container>\n } @else {\n <span>{{ displayFn()(file) }}</span>\n }\n </td>\n } @else if (columnName === 'icon') {\n <td class=\"icon\">\n @if (getColumnDef(columnName)?.cellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.cellDef()!.template; context: { $implicit: file }\"></ng-container>\n } @else {\n <c3-file-display-icon [fileType]=\"file.type\" />\n }\n </td>\n } @else {\n <td [classList]=\"getColumnDef(columnName)?.classList()\">\n @if (getColumnDef(columnName)?.cellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.cellDef()!.template; context: { $implicit: file }\"></ng-container>\n } @else {\n @if (columnName === 'date') {\n <span>{{ file.lastModified ? (file.lastModified | date:'medium') : '-' }}</span>\n }\n }\n </td>\n }\n }\n <td class=\"actions\">\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" c3-stop-click-propagation>\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"openDialog($event, $index)\">\n Ouvrir\n </button>\n <button mat-menu-item (click)=\"fileViewer.download(file)\">T\u00E9l\u00E9charger</button>\n @if (deletable()) {\n <button mat-menu-item (click)=\"onDelete.emit(file)\">Supprimer</button>\n }\n </mat-menu>\n </td>\n </tr>\n }\n </tbody>\n </table>\n</c3-file-viewer-dialog>\n\n<!-- <div class=\"file-display-list\">\n @for (file of files(); track $index) {\n <button>\n @for (columnName of columns(); track columnName) {\n @if (columnName === 'name') {\n <div class=\"name\">\n @if (getColumnDef(columnName)?.cellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.cellDef()!.template; context: { $implicit: file }\"></ng-container>\n } @else {\n <span>{{ displayFn()(file) }}</span>\n }\n </div>\n } @else if (columnName === 'icon') {\n <div class=\"icon-cell\">\n @if (getColumnDef(columnName)?.cellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.cellDef()!.template; context: { $implicit: file }\"></ng-container>\n } @else {\n <div class=\"icon\">\n <c3-file-display-icon [fileType]=\"file.type\" />\n </div>\n }\n </div>\n } @else {\n <div class=\"cell\">\n @if (getColumnDef(columnName)?.cellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.cellDef()!.template; context: { $implicit: file }\"></ng-container>\n } @else {\n @if (columnName === 'date') {\n <div class=\"date-label\">\n <span>{{ file.lastModified ? (file.lastModified | date:'medium') : '-' }}</span>\n </div>\n }\n }\n </div>\n }\n }\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" c3-stop-click-propagation>\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"openDialog($event, $index)\">\n Ouvrir\n </button>\n @if (deletable()) {\n <button mat-menu-item (click)=\"onDelete.emit(file)\">Supprimer</button>\n }\n </mat-menu>\n </button>\n }\n</div> -->\n", styles: [":host{display:flex;flex-direction:column;margin:.5rem}:host .file-table{width:100%;border-collapse:collapse}:host .file-table th,:host .file-table td{padding:.5rem;text-align:left;border-bottom:1px solid var(--mat-divider-color)}:host .file-table th{font-size:1.5rem;font-weight:700;background-color:var(--mat-table-header-container-background-color)}:host .file-table tr:hover{background-color:var(--background-hover)}:host .file-table .icon{width:56px;min-width:56px;text-align:center}:host .file-table :where(th,td):not(.full){width:0;white-space:nowrap}:host .file-table .actions{width:48px;text-align:center}\n"], dependencies: [{ kind: "directive", type: C3StopPropagationDirective, selector: "[c3-stop-click-propagation]" }, { kind: "ngmodule", type: C3FileViewerModule }, { kind: "component", type: C3FileViewerDialogComponent, selector: "c3-file-viewer-dialog", inputs: ["fileViewer", "dialogConfig"] }, { kind: "component", type: C3FileDisplayIconComponent, selector: "c3-file-display-icon", inputs: ["fileType"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5$2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }] }); }
1805
+ ], queries: [{ propertyName: "_columnDefs", predicate: C3FileDisplayListColumnDefDirective, isSignal: true }], viewQueries: [{ propertyName: "dialog", first: true, predicate: C3FileViewerDialogComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<c3-file-viewer-dialog [fileViewer]=\"fileViewer\">\n<!-- header -->\n <table class=\"file-table\">\n <thead>\n <tr>\n @for (columnName of columns(); track columnName) {\n <th [class.full]=\"columnName === 'name'\" [class.icon]=\"columnName === 'icon'\">\n @if (getColumnDef(columnName)?.headerCellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.headerCellDef()!.template\"></ng-container>\n } @else {\n @if (columnName === 'icon') {\n <span></span>\n } @else if (columnName === 'name') {\n <span>Nom</span>\n } @else if (columnName === 'date') {\n <span>Date d'ajout</span>\n }\n }\n </th>\n }\n <th class=\"actions\">\n <ng-content></ng-content>\n </th>\n </tr>\n </thead>\n <tbody>\n @for (file of files(); track $index) {\n <tr (click)=\"openDialog($event, $index)\">\n @for (columnName of columns(); track columnName) {\n @if (columnName === 'name') {\n <td class=\"name full\">\n @if (getColumnDef(columnName)?.cellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.cellDef()!.template; context: { $implicit: file }\"></ng-container>\n } @else {\n <span>{{ displayFn()(file) }}</span>\n }\n </td>\n } @else if (columnName === 'icon') {\n <td class=\"icon\">\n @if (getColumnDef(columnName)?.cellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.cellDef()!.template; context: { $implicit: file }\"></ng-container>\n } @else {\n <c3-file-display-icon [fileType]=\"file.type\" />\n }\n </td>\n } @else {\n <td [classList]=\"getColumnDef(columnName)?.classList()\">\n @if (getColumnDef(columnName)?.cellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.cellDef()!.template; context: { $implicit: file }\"></ng-container>\n } @else {\n @if (columnName === 'date') {\n <span>{{ file.lastModified ? (file.lastModified | date:'medium') : '-' }}</span>\n }\n }\n </td>\n }\n }\n <td class=\"actions\">\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" c3-stop-click-propagation>\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"openDialog($event, $index)\">\n Ouvrir\n </button>\n <button mat-menu-item (click)=\"fileViewer.download(file)\">T\u00E9l\u00E9charger</button>\n @if (deletable()) {\n <button mat-menu-item (click)=\"onDelete.emit(file)\">Supprimer</button>\n }\n </mat-menu>\n </td>\n </tr>\n }\n </tbody>\n </table>\n</c3-file-viewer-dialog>\n\n<!-- <div class=\"file-display-list\">\n @for (file of files(); track $index) {\n <button>\n @for (columnName of columns(); track columnName) {\n @if (columnName === 'name') {\n <div class=\"name\">\n @if (getColumnDef(columnName)?.cellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.cellDef()!.template; context: { $implicit: file }\"></ng-container>\n } @else {\n <span>{{ displayFn()(file) }}</span>\n }\n </div>\n } @else if (columnName === 'icon') {\n <div class=\"icon-cell\">\n @if (getColumnDef(columnName)?.cellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.cellDef()!.template; context: { $implicit: file }\"></ng-container>\n } @else {\n <div class=\"icon\">\n <c3-file-display-icon [fileType]=\"file.type\" />\n </div>\n }\n </div>\n } @else {\n <div class=\"cell\">\n @if (getColumnDef(columnName)?.cellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.cellDef()!.template; context: { $implicit: file }\"></ng-container>\n } @else {\n @if (columnName === 'date') {\n <div class=\"date-label\">\n <span>{{ file.lastModified ? (file.lastModified | date:'medium') : '-' }}</span>\n </div>\n }\n }\n </div>\n }\n }\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" c3-stop-click-propagation>\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"openDialog($event, $index)\">\n Ouvrir\n </button>\n @if (deletable()) {\n <button mat-menu-item (click)=\"onDelete.emit(file)\">Supprimer</button>\n }\n </mat-menu>\n </button>\n }\n</div> -->\n", styles: [":host{display:flex;flex-direction:column;margin:.5rem}:host .file-table{width:100%;border-collapse:collapse}:host .file-table th,:host .file-table td{padding:.5rem;text-align:left;border-bottom:1px solid var(--mat-divider-color)}:host .file-table th{font-size:1.5rem;font-weight:700;background-color:var(--mat-table-header-container-background-color)}:host .file-table tr:hover{background-color:var(--background-hover)}:host .file-table .icon{width:56px;min-width:56px;text-align:center}:host .file-table :where(th,td):not(.full){width:0;white-space:nowrap}:host .file-table .actions{width:48px;text-align:center}\n"], dependencies: [{ kind: "directive", type: C3StopPropagationDirective, selector: "[c3-stop-click-propagation]" }, { kind: "ngmodule", type: C3FileViewerModule }, { kind: "component", type: C3FileViewerDialogComponent, selector: "c3-file-viewer-dialog", inputs: ["fileViewer", "dialogConfig"] }, { kind: "component", type: C3FileDisplayIconComponent, selector: "c3-file-display-icon", inputs: ["fileType"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5$2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] }); }
1862
1806
  }
1863
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayListComponent, decorators: [{
1807
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayListComponent, decorators: [{
1864
1808
  type: Component,
1865
1809
  args: [{ selector: 'c3-file-display-list', imports: [
1866
1810
  C3StopPropagationDirective,
@@ -1877,11 +1821,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
1877
1821
  useExisting: C3FileDisplayListComponent,
1878
1822
  },
1879
1823
  ], template: "<c3-file-viewer-dialog [fileViewer]=\"fileViewer\">\n<!-- header -->\n <table class=\"file-table\">\n <thead>\n <tr>\n @for (columnName of columns(); track columnName) {\n <th [class.full]=\"columnName === 'name'\" [class.icon]=\"columnName === 'icon'\">\n @if (getColumnDef(columnName)?.headerCellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.headerCellDef()!.template\"></ng-container>\n } @else {\n @if (columnName === 'icon') {\n <span></span>\n } @else if (columnName === 'name') {\n <span>Nom</span>\n } @else if (columnName === 'date') {\n <span>Date d'ajout</span>\n }\n }\n </th>\n }\n <th class=\"actions\">\n <ng-content></ng-content>\n </th>\n </tr>\n </thead>\n <tbody>\n @for (file of files(); track $index) {\n <tr (click)=\"openDialog($event, $index)\">\n @for (columnName of columns(); track columnName) {\n @if (columnName === 'name') {\n <td class=\"name full\">\n @if (getColumnDef(columnName)?.cellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.cellDef()!.template; context: { $implicit: file }\"></ng-container>\n } @else {\n <span>{{ displayFn()(file) }}</span>\n }\n </td>\n } @else if (columnName === 'icon') {\n <td class=\"icon\">\n @if (getColumnDef(columnName)?.cellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.cellDef()!.template; context: { $implicit: file }\"></ng-container>\n } @else {\n <c3-file-display-icon [fileType]=\"file.type\" />\n }\n </td>\n } @else {\n <td [classList]=\"getColumnDef(columnName)?.classList()\">\n @if (getColumnDef(columnName)?.cellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.cellDef()!.template; context: { $implicit: file }\"></ng-container>\n } @else {\n @if (columnName === 'date') {\n <span>{{ file.lastModified ? (file.lastModified | date:'medium') : '-' }}</span>\n }\n }\n </td>\n }\n }\n <td class=\"actions\">\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" c3-stop-click-propagation>\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"openDialog($event, $index)\">\n Ouvrir\n </button>\n <button mat-menu-item (click)=\"fileViewer.download(file)\">T\u00E9l\u00E9charger</button>\n @if (deletable()) {\n <button mat-menu-item (click)=\"onDelete.emit(file)\">Supprimer</button>\n }\n </mat-menu>\n </td>\n </tr>\n }\n </tbody>\n </table>\n</c3-file-viewer-dialog>\n\n<!-- <div class=\"file-display-list\">\n @for (file of files(); track $index) {\n <button>\n @for (columnName of columns(); track columnName) {\n @if (columnName === 'name') {\n <div class=\"name\">\n @if (getColumnDef(columnName)?.cellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.cellDef()!.template; context: { $implicit: file }\"></ng-container>\n } @else {\n <span>{{ displayFn()(file) }}</span>\n }\n </div>\n } @else if (columnName === 'icon') {\n <div class=\"icon-cell\">\n @if (getColumnDef(columnName)?.cellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.cellDef()!.template; context: { $implicit: file }\"></ng-container>\n } @else {\n <div class=\"icon\">\n <c3-file-display-icon [fileType]=\"file.type\" />\n </div>\n }\n </div>\n } @else {\n <div class=\"cell\">\n @if (getColumnDef(columnName)?.cellDef()) {\n <ng-container *ngTemplateOutlet=\"getColumnDef(columnName)!.cellDef()!.template; context: { $implicit: file }\"></ng-container>\n } @else {\n @if (columnName === 'date') {\n <div class=\"date-label\">\n <span>{{ file.lastModified ? (file.lastModified | date:'medium') : '-' }}</span>\n </div>\n }\n }\n </div>\n }\n }\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" c3-stop-click-propagation>\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"openDialog($event, $index)\">\n Ouvrir\n </button>\n @if (deletable()) {\n <button mat-menu-item (click)=\"onDelete.emit(file)\">Supprimer</button>\n }\n </mat-menu>\n </button>\n }\n</div> -->\n", styles: [":host{display:flex;flex-direction:column;margin:.5rem}:host .file-table{width:100%;border-collapse:collapse}:host .file-table th,:host .file-table td{padding:.5rem;text-align:left;border-bottom:1px solid var(--mat-divider-color)}:host .file-table th{font-size:1.5rem;font-weight:700;background-color:var(--mat-table-header-container-background-color)}:host .file-table tr:hover{background-color:var(--background-hover)}:host .file-table .icon{width:56px;min-width:56px;text-align:center}:host .file-table :where(th,td):not(.full){width:0;white-space:nowrap}:host .file-table .actions{width:48px;text-align:center}\n"] }]
1880
- }], ctorParameters: () => [] });
1824
+ }], ctorParameters: () => [], propDecorators: { files: [{ type: i0.Input, args: [{ isSignal: true, alias: "files", required: true }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }], displayFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayFn", required: false }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], deletable: [{ type: i0.Input, args: [{ isSignal: true, alias: "deletable", required: false }] }], onDelete: [{ type: i0.Output, args: ["onDelete"] }], dialog: [{ type: i0.ViewChild, args: [i0.forwardRef(() => C3FileViewerDialogComponent), { isSignal: true }] }], _columnDefs: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => C3FileDisplayListColumnDefDirective), { isSignal: true }] }] } });
1881
1825
 
1882
1826
  class C3FileDisplayerModule {
1883
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1884
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayerModule, imports: [CommonModule,
1827
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1828
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayerModule, imports: [CommonModule,
1885
1829
  C3FileDisplayGridComponent,
1886
1830
  C3FileDisplayListComponent,
1887
1831
  C3FileDisplayCardComponent,
@@ -1895,13 +1839,13 @@ class C3FileDisplayerModule {
1895
1839
  C3FileDisplayListColumnDefDirective,
1896
1840
  C3FileDisplayListHeaderCellDefDirective,
1897
1841
  C3FileDisplayListCellDefDirective] }); }
1898
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayerModule, imports: [CommonModule,
1842
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayerModule, imports: [CommonModule,
1899
1843
  C3FileDisplayGridComponent,
1900
1844
  C3FileDisplayListComponent,
1901
1845
  C3FileDisplayCardComponent,
1902
1846
  C3FileDisplayIconComponent] }); }
1903
1847
  }
1904
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayerModule, decorators: [{
1848
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayerModule, decorators: [{
1905
1849
  type: NgModule,
1906
1850
  args: [{
1907
1851
  declarations: [],
@@ -1929,20 +1873,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
1929
1873
 
1930
1874
  class C3ExpansionHeaderComponent {
1931
1875
  constructor() {
1932
- this.title = input();
1933
- this.isExpanded = input(false);
1876
+ this.title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : []));
1877
+ this.isExpanded = input(false, ...(ngDevMode ? [{ debugName: "isExpanded" }] : []));
1934
1878
  this.toggleExpand = output();
1935
1879
  }
1936
1880
  get hostClass() {
1937
1881
  return 'c3-expansion-header';
1938
1882
  }
1939
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3ExpansionHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1940
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: C3ExpansionHeaderComponent, isStandalone: false, selector: "c3-expansion-header", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, isExpanded: { classPropertyName: "isExpanded", publicName: "isExpanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggleExpand: "toggleExpand" }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<ng-content>\n @if(title()) {\n <h4 class=\"text-lg\">\n {{ title() }}\n </h4>\n }\n <button\n mat-icon-button\n (click)=\"toggleExpand.emit()\"\n [matTooltip]=\"isExpanded() ? 'R\u00E9duire' : 'D\u00E9velopper'\"\n >\n <mat-icon>{{\n isExpanded() ? \"expand_less\" : \"expand_more\"\n }}</mat-icon>\n </button>\n</ng-content>\n", dependencies: [{ kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
1883
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3ExpansionHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1884
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: C3ExpansionHeaderComponent, isStandalone: false, selector: "c3-expansion-header", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, isExpanded: { classPropertyName: "isExpanded", publicName: "isExpanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggleExpand: "toggleExpand" }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<ng-content>\n @if(title()) {\n <h4 class=\"text-lg\">\n {{ title() }}\n </h4>\n }\n <button\n mat-icon-button\n (click)=\"toggleExpand.emit()\"\n [matTooltip]=\"isExpanded() ? 'R\u00E9duire' : 'D\u00E9velopper'\"\n >\n <mat-icon>{{\n isExpanded() ? \"expand_less\" : \"expand_more\"\n }}</mat-icon>\n </button>\n</ng-content>\n", dependencies: [{ kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
1941
1885
  }
1942
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3ExpansionHeaderComponent, decorators: [{
1886
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3ExpansionHeaderComponent, decorators: [{
1943
1887
  type: Component,
1944
1888
  args: [{ selector: 'c3-expansion-header', encapsulation: ViewEncapsulation.None, standalone: false, template: "<ng-content>\n @if(title()) {\n <h4 class=\"text-lg\">\n {{ title() }}\n </h4>\n }\n <button\n mat-icon-button\n (click)=\"toggleExpand.emit()\"\n [matTooltip]=\"isExpanded() ? 'R\u00E9duire' : 'D\u00E9velopper'\"\n >\n <mat-icon>{{\n isExpanded() ? \"expand_less\" : \"expand_more\"\n }}</mat-icon>\n </button>\n</ng-content>\n" }]
1945
- }], propDecorators: { hostClass: [{
1889
+ }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], isExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "isExpanded", required: false }] }], toggleExpand: [{ type: i0.Output, args: ["toggleExpand"] }], hostClass: [{
1946
1890
  type: HostBinding,
1947
1891
  args: ['class']
1948
1892
  }] } });
@@ -1950,32 +1894,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
1950
1894
  class C3AutoAnimateDirective {
1951
1895
  constructor(el) {
1952
1896
  this.el = el;
1897
+ this.options = input(undefined, ...(ngDevMode ? [{ debugName: "options" }] : []));
1953
1898
  }
1954
1899
  ngAfterViewInit() {
1955
- autoAnimate(this.el.nativeElement, this.options);
1900
+ autoAnimate(this.el.nativeElement, this.options());
1956
1901
  }
1957
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3AutoAnimateDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1958
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.7", type: C3AutoAnimateDirective, isStandalone: true, selector: "[c3AutoAnimate]", inputs: { options: "options" }, ngImport: i0 }); }
1902
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3AutoAnimateDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1903
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.14", type: C3AutoAnimateDirective, isStandalone: true, selector: "[c3AutoAnimate]", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
1959
1904
  }
1960
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3AutoAnimateDirective, decorators: [{
1905
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3AutoAnimateDirective, decorators: [{
1961
1906
  type: Directive,
1962
1907
  args: [{
1963
1908
  selector: '[c3AutoAnimate]',
1964
1909
  standalone: true,
1965
1910
  }]
1966
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { options: [{
1967
- type: Input
1968
- }] } });
1911
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }] } });
1969
1912
 
1970
1913
  class C3ExpansionComponent {
1971
1914
  get hostClass() {
1972
1915
  return 'c3-expansion';
1973
1916
  }
1974
1917
  constructor() {
1975
- this.headerClass = input('c3-expansion-header');
1976
- this.isExpanded = model(false);
1918
+ this.headerClass = input('c3-expansion-header', ...(ngDevMode ? [{ debugName: "headerClass" }] : []));
1919
+ this.isExpanded = model(false, ...(ngDevMode ? [{ debugName: "isExpanded" }] : []));
1977
1920
  this._elementRef = inject(ElementRef);
1978
- this.header = contentChild(C3ExpansionHeaderComponent);
1921
+ this.header = contentChild(C3ExpansionHeaderComponent, ...(ngDevMode ? [{ debugName: "header" }] : []));
1979
1922
  effect(() => {
1980
1923
  this.expandSubsciption?.unsubscribe();
1981
1924
  this.header()?.toggleExpand.subscribe(() => this.toggleExpand());
@@ -1987,39 +1930,39 @@ class C3ExpansionComponent {
1987
1930
  toggleExpand() {
1988
1931
  this.isExpanded.set(!this.isExpanded());
1989
1932
  }
1990
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3ExpansionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1991
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.7", type: C3ExpansionComponent, isStandalone: false, selector: "c3-expansion", inputs: { headerClass: { classPropertyName: "headerClass", publicName: "headerClass", isSignal: true, isRequired: false, transformFunction: null }, isExpanded: { classPropertyName: "isExpanded", publicName: "isExpanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isExpanded: "isExpandedChange" }, host: { properties: { "class": "this.hostClass" } }, queries: [{ propertyName: "header", first: true, predicate: C3ExpansionHeaderComponent, descendants: true, isSignal: true }], hostDirectives: [{ directive: C3AutoAnimateDirective, inputs: ["options", "options"] }], ngImport: i0, template: "<div [class]=\"headerClass()\">\n <ng-content select=\"c3-expansion-header\">\n <c3-expansion-header />\n </ng-content>\n</div>\n\n<div *ngIf=\"isExpanded()\">\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: C3ExpansionHeaderComponent, selector: "c3-expansion-header", inputs: ["title", "isExpanded"], outputs: ["toggleExpand"] }] }); }
1933
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3ExpansionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1934
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: C3ExpansionComponent, isStandalone: false, selector: "c3-expansion", inputs: { headerClass: { classPropertyName: "headerClass", publicName: "headerClass", isSignal: true, isRequired: false, transformFunction: null }, isExpanded: { classPropertyName: "isExpanded", publicName: "isExpanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isExpanded: "isExpandedChange" }, host: { properties: { "class": "this.hostClass" } }, queries: [{ propertyName: "header", first: true, predicate: C3ExpansionHeaderComponent, descendants: true, isSignal: true }], hostDirectives: [{ directive: C3AutoAnimateDirective, inputs: ["options", "options"] }], ngImport: i0, template: "<div [class]=\"headerClass()\">\n <ng-content select=\"c3-expansion-header\">\n <c3-expansion-header />\n </ng-content>\n</div>\n\n@if (isExpanded()) {\n <div>\n <ng-content></ng-content>\n </div>\n}\n", dependencies: [{ kind: "component", type: C3ExpansionHeaderComponent, selector: "c3-expansion-header", inputs: ["title", "isExpanded"], outputs: ["toggleExpand"] }] }); }
1992
1935
  }
1993
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3ExpansionComponent, decorators: [{
1936
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3ExpansionComponent, decorators: [{
1994
1937
  type: Component,
1995
1938
  args: [{ selector: 'c3-expansion', hostDirectives: [
1996
1939
  {
1997
1940
  directive: C3AutoAnimateDirective,
1998
1941
  inputs: ['options'],
1999
1942
  },
2000
- ], standalone: false, template: "<div [class]=\"headerClass()\">\n <ng-content select=\"c3-expansion-header\">\n <c3-expansion-header />\n </ng-content>\n</div>\n\n<div *ngIf=\"isExpanded()\">\n <ng-content></ng-content>\n</div>\n" }]
2001
- }], ctorParameters: () => [], propDecorators: { hostClass: [{
1943
+ ], standalone: false, template: "<div [class]=\"headerClass()\">\n <ng-content select=\"c3-expansion-header\">\n <c3-expansion-header />\n </ng-content>\n</div>\n\n@if (isExpanded()) {\n <div>\n <ng-content></ng-content>\n </div>\n}\n" }]
1944
+ }], ctorParameters: () => [], propDecorators: { headerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerClass", required: false }] }], isExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "isExpanded", required: false }] }, { type: i0.Output, args: ["isExpandedChange"] }], hostClass: [{
2002
1945
  type: HostBinding,
2003
1946
  args: ['class']
2004
- }] } });
1947
+ }], header: [{ type: i0.ContentChild, args: [i0.forwardRef(() => C3ExpansionHeaderComponent), { isSignal: true }] }] } });
2005
1948
 
2006
1949
  class C3ExpansionModule {
2007
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3ExpansionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2008
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: C3ExpansionModule, declarations: [C3ExpansionComponent, C3ExpansionHeaderComponent], imports: [CommonModule,
1950
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3ExpansionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1951
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: C3ExpansionModule, declarations: [C3ExpansionComponent, C3ExpansionHeaderComponent], imports: [CommonModule,
2009
1952
  C3AutoAnimateDirective,
2010
1953
  MatButtonModule,
2011
1954
  MatIconModule,
2012
1955
  MatTooltipModule,
2013
1956
  MatButtonModule,
2014
1957
  MatToolbarModule], exports: [C3ExpansionComponent, C3ExpansionHeaderComponent] }); }
2015
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3ExpansionModule, imports: [CommonModule,
1958
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3ExpansionModule, imports: [CommonModule,
2016
1959
  MatButtonModule,
2017
1960
  MatIconModule,
2018
1961
  MatTooltipModule,
2019
1962
  MatButtonModule,
2020
1963
  MatToolbarModule] }); }
2021
1964
  }
2022
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3ExpansionModule, decorators: [{
1965
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3ExpansionModule, decorators: [{
2023
1966
  type: NgModule,
2024
1967
  args: [{
2025
1968
  declarations: [C3ExpansionComponent, C3ExpansionHeaderComponent],
@@ -2040,10 +1983,10 @@ class C3SelectOnFocusDirective {
2040
1983
  onFocus(target) {
2041
1984
  setTimeout(() => target.select());
2042
1985
  }
2043
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3SelectOnFocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2044
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.7", type: C3SelectOnFocusDirective, isStandalone: true, selector: "[c3SelectOnFocus]", host: { listeners: { "focus": "onFocus($event.target)" } }, ngImport: i0 }); }
1986
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3SelectOnFocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1987
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.14", type: C3SelectOnFocusDirective, isStandalone: true, selector: "[c3SelectOnFocus]", host: { listeners: { "focus": "onFocus($event.target)" } }, ngImport: i0 }); }
2045
1988
  }
2046
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3SelectOnFocusDirective, decorators: [{
1989
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3SelectOnFocusDirective, decorators: [{
2047
1990
  type: Directive,
2048
1991
  args: [{
2049
1992
  selector: '[c3SelectOnFocus]',
@@ -2054,37 +1997,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
2054
1997
  args: ['focus', ['$event.target']]
2055
1998
  }] } });
2056
1999
 
2057
- class BooleanSignal {
2058
- constructor(initialValue) {
2059
- this._signal = signal(initialValue);
2060
- }
2061
- get value() {
2062
- return this._signal();
2063
- }
2064
- set value(newValue) {
2065
- this._signal.set(newValue);
2066
- }
2067
- toggle() {
2068
- this._signal.set(!this._signal());
2069
- }
2070
- reset() {
2071
- this._signal.set(false);
2072
- }
2073
- setToTrue() {
2074
- this._signal.set(true);
2075
- }
2076
- setToFalse() {
2077
- this._signal.set(false);
2078
- }
2079
- }
2080
- function booleanSignal(value) {
2081
- return new BooleanSignal(value);
2082
- }
2083
-
2084
2000
  class C3TreeComponent {
2085
2001
  constructor() {
2086
- this.treeData = model.required();
2087
- this.isLoading = model(false);
2002
+ this.treeData = model.required(...(ngDevMode ? [{ debugName: "treeData" }] : []));
2003
+ this.isLoading = model(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
2088
2004
  this.treeDataSelected = output();
2089
2005
  this._transformer = (node, level) => ({
2090
2006
  expandable: !!node.children && node.children.length > 0,
@@ -2102,45 +2018,48 @@ class C3TreeComponent {
2102
2018
  this.dataSource.data = this.treeData();
2103
2019
  });
2104
2020
  }
2105
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2106
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: C3TreeComponent, isStandalone: true, selector: "c3-tree", inputs: { treeData: { classPropertyName: "treeData", publicName: "treeData", isSignal: true, isRequired: true, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { treeData: "treeDataChange", isLoading: "isLoadingChange", treeDataSelected: "treeDataSelected" }, ngImport: i0, template: "@if(isLoading()) {\r\n<div class=\"c3-tree-loader\">\r\n <mat-spinner diameter=\"50\"></mat-spinner>\r\n</div>\r\n}\r\n\r\n<mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodePadding class=\"children\">\r\n <button mat-ripple (click)=\"treeDataSelected.emit(node)\">\r\n {{ node.name }}\r\n </button>\r\n </mat-tree-node>\r\n <mat-tree-node\r\n *matTreeNodeDef=\"let node; when: hasChild\"\r\n matTreeNodePadding\r\n class=\"has-children\"\r\n >\r\n <button matTreeNodeToggle [attr.aria-label]=\"'Toggle ' + node.name\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">\r\n {{ treeControl.isExpanded(node) ? \"expand_more\" : \"chevron_right\" }}\r\n </mat-icon>\r\n </button>\r\n <div class=\"mat-tree-node-content\">\r\n <ng-content>\r\n <span>{{ node.name }}</span>\r\n </ng-content>\r\n </div>\r\n </mat-tree-node>\r\n</mat-tree>\r\n", styles: [":host{display:block;width:100%;position:relative;min-height:100%;padding:4px 0}.c3-tree-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}mat-tree{width:100%;height:100%;background-color:transparent;border:1px solid var(--mat-divider-color);border-radius:4px;overflow:auto}mat-tree mat-tree-node{display:flex;align-items:center;justify-content:start;gap:1rem}mat-tree mat-tree-node.has-children>button{height:32px;width:32px;border-radius:50%;display:flex;justify-content:center;align-items:center;border:1px solid transparent;margin:.5rem}mat-tree mat-tree-node.has-children>button:hover{border-color:var(--mat-divider-color)}mat-tree mat-tree-node.has-children:hover{background-color:var(--background-hover)}mat-tree mat-tree-node.has-children .mat-tree-node-content{padding-right:.25rem;display:flex;justify-content:space-between;align-items:center;width:100%}mat-tree mat-tree-node.children button{width:100%;border-radius:.25rem;padding:0 1rem;height:2rem;text-align:left}mat-tree mat-tree-node.children button:hover{background-color:var(--background-hover)}mat-tree mat-tree-node:hover{background-color:var(--background-hover)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatTreeModule }, { kind: "directive", type: i1$5.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i1$5.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i1$5.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i1$5.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i1$5.MatTreeNode, selector: "mat-tree-node", inputs: ["tabIndex", "disabled"], outputs: ["activation", "expandedChange"], exportAs: ["matTreeNode"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i3$1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] }); }
2021
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2022
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: C3TreeComponent, isStandalone: true, selector: "c3-tree", inputs: { treeData: { classPropertyName: "treeData", publicName: "treeData", isSignal: true, isRequired: true, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { treeData: "treeDataChange", isLoading: "isLoadingChange", treeDataSelected: "treeDataSelected" }, ngImport: i0, template: "@if(isLoading()) {\r\n<div class=\"c3-tree-loader\">\r\n <mat-spinner diameter=\"50\"></mat-spinner>\r\n</div>\r\n}\r\n\r\n<mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodePadding class=\"children\">\r\n <button mat-ripple (click)=\"treeDataSelected.emit(node)\">\r\n {{ node.name }}\r\n </button>\r\n </mat-tree-node>\r\n <mat-tree-node\r\n *matTreeNodeDef=\"let node; when: hasChild\"\r\n matTreeNodePadding\r\n class=\"has-children\"\r\n >\r\n <button matTreeNodeToggle [attr.aria-label]=\"'Toggle ' + node.name\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">\r\n {{ treeControl.isExpanded(node) ? \"expand_more\" : \"chevron_right\" }}\r\n </mat-icon>\r\n </button>\r\n <div class=\"mat-tree-node-content\">\r\n <ng-content>\r\n <span>{{ node.name }}</span>\r\n </ng-content>\r\n </div>\r\n </mat-tree-node>\r\n</mat-tree>\r\n", styles: [":host{display:block;width:100%;position:relative;min-height:100%;padding:4px 0}.c3-tree-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}mat-tree{width:100%;height:100%;background-color:transparent;border:1px solid var(--mat-divider-color);border-radius:4px;overflow:auto}mat-tree mat-tree-node{display:flex;align-items:center;justify-content:start;gap:1rem}mat-tree mat-tree-node.has-children>button{height:32px;width:32px;border-radius:50%;display:flex;justify-content:center;align-items:center;border:1px solid transparent;margin:.5rem}mat-tree mat-tree-node.has-children>button:hover{border-color:var(--mat-divider-color)}mat-tree mat-tree-node.has-children:hover{background-color:var(--background-hover)}mat-tree mat-tree-node.has-children .mat-tree-node-content{padding-right:.25rem;display:flex;justify-content:space-between;align-items:center;width:100%}mat-tree mat-tree-node.children button{width:100%;border-radius:.25rem;padding:0 1rem;height:2rem;text-align:left}mat-tree mat-tree-node.children button:hover{background-color:var(--background-hover)}mat-tree mat-tree-node:hover{background-color:var(--background-hover)}\n"], dependencies: [{ kind: "ngmodule", type: MatTreeModule }, { kind: "directive", type: i1$5.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i1$5.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i1$5.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i1$5.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i1$5.MatTreeNode, selector: "mat-tree-node", inputs: ["tabIndex", "disabled"], outputs: ["activation", "expandedChange"], exportAs: ["matTreeNode"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i3$2.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i4$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] }); }
2107
2023
  }
2108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TreeComponent, decorators: [{
2024
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TreeComponent, decorators: [{
2109
2025
  type: Component,
2110
2026
  args: [{ selector: 'c3-tree', imports: [
2111
- CommonModule,
2112
2027
  MatTreeModule,
2113
2028
  MatIconModule,
2114
2029
  MatRippleModule,
2115
- MatProgressSpinnerModule,
2030
+ MatProgressSpinnerModule
2116
2031
  ], template: "@if(isLoading()) {\r\n<div class=\"c3-tree-loader\">\r\n <mat-spinner diameter=\"50\"></mat-spinner>\r\n</div>\r\n}\r\n\r\n<mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodePadding class=\"children\">\r\n <button mat-ripple (click)=\"treeDataSelected.emit(node)\">\r\n {{ node.name }}\r\n </button>\r\n </mat-tree-node>\r\n <mat-tree-node\r\n *matTreeNodeDef=\"let node; when: hasChild\"\r\n matTreeNodePadding\r\n class=\"has-children\"\r\n >\r\n <button matTreeNodeToggle [attr.aria-label]=\"'Toggle ' + node.name\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">\r\n {{ treeControl.isExpanded(node) ? \"expand_more\" : \"chevron_right\" }}\r\n </mat-icon>\r\n </button>\r\n <div class=\"mat-tree-node-content\">\r\n <ng-content>\r\n <span>{{ node.name }}</span>\r\n </ng-content>\r\n </div>\r\n </mat-tree-node>\r\n</mat-tree>\r\n", styles: [":host{display:block;width:100%;position:relative;min-height:100%;padding:4px 0}.c3-tree-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}mat-tree{width:100%;height:100%;background-color:transparent;border:1px solid var(--mat-divider-color);border-radius:4px;overflow:auto}mat-tree mat-tree-node{display:flex;align-items:center;justify-content:start;gap:1rem}mat-tree mat-tree-node.has-children>button{height:32px;width:32px;border-radius:50%;display:flex;justify-content:center;align-items:center;border:1px solid transparent;margin:.5rem}mat-tree mat-tree-node.has-children>button:hover{border-color:var(--mat-divider-color)}mat-tree mat-tree-node.has-children:hover{background-color:var(--background-hover)}mat-tree mat-tree-node.has-children .mat-tree-node-content{padding-right:.25rem;display:flex;justify-content:space-between;align-items:center;width:100%}mat-tree mat-tree-node.children button{width:100%;border-radius:.25rem;padding:0 1rem;height:2rem;text-align:left}mat-tree mat-tree-node.children button:hover{background-color:var(--background-hover)}mat-tree mat-tree-node:hover{background-color:var(--background-hover)}\n"] }]
2117
- }], ctorParameters: () => [] });
2032
+ }], ctorParameters: () => [], propDecorators: { treeData: [{ type: i0.Input, args: [{ isSignal: true, alias: "treeData", required: true }] }, { type: i0.Output, args: ["treeDataChange"] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }, { type: i0.Output, args: ["isLoadingChange"] }], treeDataSelected: [{ type: i0.Output, args: ["treeDataSelected"] }] } });
2118
2033
 
2119
2034
  class C3FlowingMenuItemComponent {
2120
2035
  constructor() {
2121
- this.menuTpl = viewChild('menuTpl', {
2122
- read: TemplateRef,
2123
- });
2124
- this.contentTpl = viewChild('contentTpl', {
2125
- read: TemplateRef,
2126
- });
2127
- this.active = signal(false);
2128
- }
2129
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2130
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.7", type: C3FlowingMenuItemComponent, isStandalone: false, selector: "c3-flowing-menu-item", viewQueries: [{ propertyName: "menuTpl", first: true, predicate: ["menuTpl"], descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "contentTpl", first: true, predicate: ["contentTpl"], descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: "<ng-template #menuTpl>\n <ng-content select=\"[menu-title]\"></ng-content>\n</ng-template>\n<ng-template #contentTpl>\n <ng-content select=\"c3-flowing-menu-item-content\"></ng-content>\n</ng-template>\n" }); }
2036
+ this.menuTpl = viewChild('menuTpl', ...(ngDevMode ? [{ debugName: "menuTpl", read: TemplateRef }] : [{
2037
+ read: TemplateRef,
2038
+ }]));
2039
+ this.contentTpl = viewChild('contentTpl', ...(ngDevMode ? [{ debugName: "contentTpl", read: TemplateRef }] : [{
2040
+ read: TemplateRef,
2041
+ }]));
2042
+ this.active = signal(false, ...(ngDevMode ? [{ debugName: "active" }] : []));
2043
+ }
2044
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2045
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.14", type: C3FlowingMenuItemComponent, isStandalone: false, selector: "c3-flowing-menu-item", viewQueries: [{ propertyName: "menuTpl", first: true, predicate: ["menuTpl"], descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "contentTpl", first: true, predicate: ["contentTpl"], descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: "<ng-template #menuTpl>\n <ng-content select=\"[menu-title]\"></ng-content>\n</ng-template>\n<ng-template #contentTpl>\n <ng-content select=\"c3-flowing-menu-item-content\"></ng-content>\n</ng-template>\n" }); }
2131
2046
  }
2132
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuItemComponent, decorators: [{
2047
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuItemComponent, decorators: [{
2133
2048
  type: Component,
2134
2049
  args: [{ selector: 'c3-flowing-menu-item', standalone: false, template: "<ng-template #menuTpl>\n <ng-content select=\"[menu-title]\"></ng-content>\n</ng-template>\n<ng-template #contentTpl>\n <ng-content select=\"c3-flowing-menu-item-content\"></ng-content>\n</ng-template>\n" }]
2135
- }] });
2050
+ }], propDecorators: { menuTpl: [{ type: i0.ViewChild, args: ['menuTpl', { ...{
2051
+ read: TemplateRef,
2052
+ }, isSignal: true }] }], contentTpl: [{ type: i0.ViewChild, args: ['contentTpl', { ...{
2053
+ read: TemplateRef,
2054
+ }, isSignal: true }] }] } });
2136
2055
 
2137
2056
  class C3FlowingMenuComponent {
2138
2057
  constructor() {
2139
- this.c3FlowingMenu = contentChildren(C3FlowingMenuItemComponent);
2140
- this.targetContentRef = viewChild('targetContent', {
2141
- read: ViewContainerRef,
2142
- });
2143
- this.selectedIndex = model(0);
2058
+ this.c3FlowingMenu = contentChildren(C3FlowingMenuItemComponent, ...(ngDevMode ? [{ debugName: "c3FlowingMenu" }] : []));
2059
+ this.targetContentRef = viewChild('targetContent', ...(ngDevMode ? [{ debugName: "targetContentRef", read: ViewContainerRef }] : [{
2060
+ read: ViewContainerRef,
2061
+ }]));
2062
+ this.selectedIndex = model(0, ...(ngDevMode ? [{ debugName: "selectedIndex" }] : []));
2144
2063
  effect(() => {
2145
2064
  if (this.targetContentRef()) {
2146
2065
  this.updateView();
@@ -2160,36 +2079,38 @@ class C3FlowingMenuComponent {
2160
2079
  this.targetContentRef().createEmbeddedView(selectedMenu.contentTpl());
2161
2080
  }
2162
2081
  }
2163
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2164
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: C3FlowingMenuComponent, isStandalone: false, selector: "c3-flowing-menu", inputs: { selectedIndex: { classPropertyName: "selectedIndex", publicName: "selectedIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedIndex: "selectedIndexChange" }, host: { attributes: { "ngSkipHydration": "true" }, classAttribute: "c3-flowing-menu" }, queries: [{ propertyName: "c3FlowingMenu", predicate: C3FlowingMenuItemComponent, isSignal: true }], viewQueries: [{ propertyName: "targetContentRef", first: true, predicate: ["targetContent"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "<aside class=\"menu\">\n @for(menu of c3FlowingMenu(); track menu; let i = $index) {\n @if(menu.menuTpl()) {\n <button (click)=\"selectMenu(i)\" [class.active]=\"i === selectedIndex()\">\n <ng-container *ngTemplateOutlet=\"menu.menuTpl()!\"></ng-container>\n </button>\n }\n }\n</aside>\n\n<section class=\"contenu\">\n <ng-container #targetContent></ng-container>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None }); }
2082
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2083
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: C3FlowingMenuComponent, isStandalone: false, selector: "c3-flowing-menu", inputs: { selectedIndex: { classPropertyName: "selectedIndex", publicName: "selectedIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedIndex: "selectedIndexChange" }, host: { attributes: { "ngSkipHydration": "true" }, classAttribute: "c3-flowing-menu" }, queries: [{ propertyName: "c3FlowingMenu", predicate: C3FlowingMenuItemComponent, isSignal: true }], viewQueries: [{ propertyName: "targetContentRef", first: true, predicate: ["targetContent"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "<aside class=\"menu\">\n @for(menu of c3FlowingMenu(); track menu; let i = $index) {\n @if(menu.menuTpl()) {\n <button (click)=\"selectMenu(i)\" [class.active]=\"i === selectedIndex()\">\n <ng-container *ngTemplateOutlet=\"menu.menuTpl()!\"></ng-container>\n </button>\n }\n }\n</aside>\n\n<section class=\"contenu\">\n <ng-container #targetContent></ng-container>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None }); }
2165
2084
  }
2166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuComponent, decorators: [{
2085
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuComponent, decorators: [{
2167
2086
  type: Component,
2168
2087
  args: [{ selector: 'c3-flowing-menu', encapsulation: ViewEncapsulation.None, host: {
2169
2088
  class: 'c3-flowing-menu',
2170
2089
  ngSkipHydration: 'true',
2171
2090
  }, standalone: false, template: "<aside class=\"menu\">\n @for(menu of c3FlowingMenu(); track menu; let i = $index) {\n @if(menu.menuTpl()) {\n <button (click)=\"selectMenu(i)\" [class.active]=\"i === selectedIndex()\">\n <ng-container *ngTemplateOutlet=\"menu.menuTpl()!\"></ng-container>\n </button>\n }\n }\n</aside>\n\n<section class=\"contenu\">\n <ng-container #targetContent></ng-container>\n</section>\n" }]
2172
- }], ctorParameters: () => [] });
2091
+ }], ctorParameters: () => [], propDecorators: { c3FlowingMenu: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => C3FlowingMenuItemComponent), { isSignal: true }] }], targetContentRef: [{ type: i0.ViewChild, args: ['targetContent', { ...{
2092
+ read: ViewContainerRef,
2093
+ }, isSignal: true }] }], selectedIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedIndex", required: false }] }, { type: i0.Output, args: ["selectedIndexChange"] }] } });
2173
2094
 
2174
2095
  class C3FlowingMenuItemContentComponent {
2175
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuItemContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2176
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: C3FlowingMenuItemContentComponent, isStandalone: false, selector: "c3-flowing-menu-item-content", ngImport: i0, template: "<ng-content></ng-content>\n" }); }
2096
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuItemContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2097
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: C3FlowingMenuItemContentComponent, isStandalone: false, selector: "c3-flowing-menu-item-content", ngImport: i0, template: "<ng-content></ng-content>\n" }); }
2177
2098
  }
2178
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuItemContentComponent, decorators: [{
2099
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuItemContentComponent, decorators: [{
2179
2100
  type: Component,
2180
2101
  args: [{ selector: 'c3-flowing-menu-item-content', standalone: false, template: "<ng-content></ng-content>\n" }]
2181
2102
  }] });
2182
2103
 
2183
2104
  class C3FlowingMenuModule {
2184
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2185
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuModule, declarations: [C3FlowingMenuComponent,
2105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2106
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuModule, declarations: [C3FlowingMenuComponent,
2186
2107
  C3FlowingMenuItemComponent,
2187
2108
  C3FlowingMenuItemContentComponent], imports: [CommonModule], exports: [C3FlowingMenuComponent,
2188
2109
  C3FlowingMenuItemComponent,
2189
2110
  C3FlowingMenuItemContentComponent] }); }
2190
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuModule, imports: [CommonModule] }); }
2111
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuModule, imports: [CommonModule] }); }
2191
2112
  }
2192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuModule, decorators: [{
2113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuModule, decorators: [{
2193
2114
  type: NgModule,
2194
2115
  args: [{
2195
2116
  declarations: [
@@ -2208,7 +2129,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
2208
2129
 
2209
2130
  class C3TraceCardComponent {
2210
2131
  constructor() {
2211
- this.align = signal('left');
2132
+ this.align = signal('left', ...(ngDevMode ? [{ debugName: "align" }] : []));
2212
2133
  }
2213
2134
  get alignLeft() {
2214
2135
  return this.align() === 'left';
@@ -2216,10 +2137,10 @@ class C3TraceCardComponent {
2216
2137
  get alignRight() {
2217
2138
  return this.align() === 'right';
2218
2139
  }
2219
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2220
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: C3TraceCardComponent, isStandalone: false, selector: "c3-trace-card", host: { properties: { "class.align-left": "this.alignLeft", "class.align-right": "this.alignRight" }, classAttribute: "c3-trace-card" }, ngImport: i0, template: "<div class=\"content\">\n <div class=\"horizontal-line\"></div>\n <ng-content select=\"c3-trace-card-content\"></ng-content>\n</div>\n\n<ng-content select=\"c3-trace-card-title\"></ng-content>\n\n", styles: [".c3-trace-card{--c3-trace-card-border-color: rgba(0, 0, 0, .12);display:flex;flex-direction:row;justify-content:space-between;align-items:start;font-size:14px}.c3-trace-card.align-right{flex-direction:row-reverse}.c3-trace-card c3-trace-card-title{padding:.5rem 1rem;font-size:1.5rem;line-height:2rem;border:var(--c3-trace-card-border-color) solid 1px;border-radius:1rem;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.c3-trace-card .content{display:flex;flex-direction:column;flex-grow:1}.c3-trace-card .content .horizontal-line{margin-top:25px;height:1px;background-color:var(--c3-trace-card-border-color)}\n"], encapsulation: i0.ViewEncapsulation.None }); }
2140
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2141
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: C3TraceCardComponent, isStandalone: false, selector: "c3-trace-card", host: { properties: { "class.align-left": "this.alignLeft", "class.align-right": "this.alignRight" }, classAttribute: "c3-trace-card" }, ngImport: i0, template: "<div class=\"content\">\n <div class=\"horizontal-line\"></div>\n <ng-content select=\"c3-trace-card-content\"></ng-content>\n</div>\n\n<ng-content select=\"c3-trace-card-title\"></ng-content>\n\n", styles: [".c3-trace-card{--c3-trace-card-border-color: rgba(0, 0, 0, .12);display:flex;flex-direction:row;justify-content:space-between;align-items:start;font-size:14px}.c3-trace-card.align-right{flex-direction:row-reverse}.c3-trace-card c3-trace-card-title{padding:.5rem 1rem;font-size:1.5rem;line-height:2rem;border:var(--c3-trace-card-border-color) solid 1px;border-radius:1rem;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.c3-trace-card .content{display:flex;flex-direction:column;flex-grow:1}.c3-trace-card .content .horizontal-line{margin-top:25px;height:1px;background-color:var(--c3-trace-card-border-color)}\n"], encapsulation: i0.ViewEncapsulation.None }); }
2221
2142
  }
2222
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardComponent, decorators: [{
2143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardComponent, decorators: [{
2223
2144
  type: Component,
2224
2145
  args: [{ selector: 'c3-trace-card', encapsulation: ViewEncapsulation.None, host: {
2225
2146
  class: 'c3-trace-card',
@@ -2233,19 +2154,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
2233
2154
  }] } });
2234
2155
 
2235
2156
  class C3TraceCardTitleComponent {
2236
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2237
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: C3TraceCardTitleComponent, isStandalone: false, selector: "c3-trace-card-title", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""] }); }
2157
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2158
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: C3TraceCardTitleComponent, isStandalone: false, selector: "c3-trace-card-title", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""] }); }
2238
2159
  }
2239
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardTitleComponent, decorators: [{
2160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardTitleComponent, decorators: [{
2240
2161
  type: Component,
2241
2162
  args: [{ selector: 'c3-trace-card-title', standalone: false, template: "<ng-content></ng-content>\n" }]
2242
2163
  }] });
2243
2164
 
2244
2165
  class C3TraceCardContentComponent {
2245
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2246
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: C3TraceCardContentComponent, isStandalone: false, selector: "c3-trace-card-content", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""] }); }
2166
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2167
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: C3TraceCardContentComponent, isStandalone: false, selector: "c3-trace-card-content", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""] }); }
2247
2168
  }
2248
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardContentComponent, decorators: [{
2169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardContentComponent, decorators: [{
2249
2170
  type: Component,
2250
2171
  args: [{ selector: 'c3-trace-card-content', standalone: false, template: "<ng-content></ng-content>\n" }]
2251
2172
  }] });
@@ -2257,10 +2178,10 @@ class C3TraceCardAlignLeftDirective {
2257
2178
  });
2258
2179
  this.c3CardTitle.align.set('left');
2259
2180
  }
2260
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardAlignLeftDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2261
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.7", type: C3TraceCardAlignLeftDirective, isStandalone: true, selector: "c3-trace-card[align-left]", ngImport: i0 }); }
2181
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardAlignLeftDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2182
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.14", type: C3TraceCardAlignLeftDirective, isStandalone: true, selector: "c3-trace-card[align-left]", ngImport: i0 }); }
2262
2183
  }
2263
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardAlignLeftDirective, decorators: [{
2184
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardAlignLeftDirective, decorators: [{
2264
2185
  type: Directive,
2265
2186
  args: [{
2266
2187
  selector: 'c3-trace-card[align-left]',
@@ -2275,10 +2196,10 @@ class C3TraceCardAlignRightDirective {
2275
2196
  });
2276
2197
  this.c3CardTitle.align.set('right');
2277
2198
  }
2278
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardAlignRightDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2279
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.7", type: C3TraceCardAlignRightDirective, isStandalone: true, selector: "c3-trace-card[align-right]", ngImport: i0 }); }
2199
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardAlignRightDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2200
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.14", type: C3TraceCardAlignRightDirective, isStandalone: true, selector: "c3-trace-card[align-right]", ngImport: i0 }); }
2280
2201
  }
2281
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardAlignRightDirective, decorators: [{
2202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardAlignRightDirective, decorators: [{
2282
2203
  type: Directive,
2283
2204
  args: [{
2284
2205
  selector: 'c3-trace-card[align-right]',
@@ -2287,8 +2208,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
2287
2208
  }], ctorParameters: () => [] });
2288
2209
 
2289
2210
  class C3TraceCardModule {
2290
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2291
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardModule, declarations: [C3TraceCardComponent,
2211
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2212
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardModule, declarations: [C3TraceCardComponent,
2292
2213
  C3TraceCardTitleComponent,
2293
2214
  C3TraceCardContentComponent], imports: [CommonModule,
2294
2215
  C3TraceCardAlignLeftDirective,
@@ -2297,9 +2218,9 @@ class C3TraceCardModule {
2297
2218
  C3TraceCardContentComponent,
2298
2219
  C3TraceCardAlignLeftDirective,
2299
2220
  C3TraceCardAlignRightDirective] }); }
2300
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardModule, imports: [CommonModule] }); }
2221
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardModule, imports: [CommonModule] }); }
2301
2222
  }
2302
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardModule, decorators: [{
2223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardModule, decorators: [{
2303
2224
  type: NgModule,
2304
2225
  args: [{
2305
2226
  declarations: [
@@ -2325,8 +2246,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
2325
2246
  class C3MenuService {
2326
2247
  constructor() {
2327
2248
  this.selectedElement = null;
2328
- this.currentRoute = signal('');
2329
- this.isHeadless = signal(false);
2249
+ this.currentRoute = signal('', ...(ngDevMode ? [{ debugName: "currentRoute" }] : []));
2250
+ this.isHeadless = signal(false, ...(ngDevMode ? [{ debugName: "isHeadless" }] : []));
2330
2251
  this._router = inject(Router);
2331
2252
  this._ar = inject(ActivatedRoute);
2332
2253
  this.currentRoute.set(this._router.routerState.snapshot.url);
@@ -2342,10 +2263,10 @@ class C3MenuService {
2342
2263
  this.selectedElement = element;
2343
2264
  this.selectedElement.classList.add("active-item");
2344
2265
  }
2345
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3MenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2346
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3MenuService, providedIn: 'root' }); }
2266
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3MenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2267
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3MenuService, providedIn: 'root' }); }
2347
2268
  }
2348
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3MenuService, decorators: [{
2269
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3MenuService, decorators: [{
2349
2270
  type: Injectable,
2350
2271
  args: [{
2351
2272
  providedIn: 'root'
@@ -2356,26 +2277,26 @@ class C3MenuComponent {
2356
2277
  constructor() {
2357
2278
  this._c3Menu = inject(C3MenuService);
2358
2279
  }
2359
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2360
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: C3MenuComponent, isStandalone: false, selector: "c3-menu", ngImport: i0, template: "@if(!_c3Menu.isHeadless()) {\n <div id=\"app-menu\">\n <div class=\"ui-scroll\">\n <ul>\n <ng-content></ng-content>\n </ul>\n </div>\n </div>\n}\n<div class=\"layout-main\" [class.headless]=\"_c3Menu.isHeadless()\">\n <router-outlet></router-outlet>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1$6.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
2280
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2281
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: C3MenuComponent, isStandalone: false, selector: "c3-menu", ngImport: i0, template: "@if(!_c3Menu.isHeadless()) {\n <div id=\"app-menu\">\n <div class=\"ui-scroll\">\n <ul>\n <ng-content></ng-content>\n </ul>\n </div>\n </div>\n}\n<div class=\"layout-main\" [class.headless]=\"_c3Menu.isHeadless()\">\n <router-outlet></router-outlet>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1$6.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
2361
2282
  }
2362
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3MenuComponent, decorators: [{
2283
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3MenuComponent, decorators: [{
2363
2284
  type: Component,
2364
2285
  args: [{ selector: 'c3-menu', standalone: false, template: "@if(!_c3Menu.isHeadless()) {\n <div id=\"app-menu\">\n <div class=\"ui-scroll\">\n <ul>\n <ng-content></ng-content>\n </ul>\n </div>\n </div>\n}\n<div class=\"layout-main\" [class.headless]=\"_c3Menu.isHeadless()\">\n <router-outlet></router-outlet>\n</div>\n", styles: [":host{display:block}\n"] }]
2365
2286
  }] });
2366
2287
 
2367
2288
  class C3NavItemComponent {
2368
2289
  constructor() {
2369
- this.route = input.required();
2370
- this.itemTitle = input.required();
2371
- this.check = input(null);
2372
- this.isExternal = input(false);
2373
- this.element = viewChild('button', {
2374
- read: (ElementRef),
2375
- });
2290
+ this.route = input.required(...(ngDevMode ? [{ debugName: "route" }] : []));
2291
+ this.itemTitle = input.required(...(ngDevMode ? [{ debugName: "itemTitle" }] : []));
2292
+ this.check = input(null, ...(ngDevMode ? [{ debugName: "check" }] : []));
2293
+ this.isExternal = input(false, ...(ngDevMode ? [{ debugName: "isExternal" }] : []));
2294
+ this.element = viewChild('button', ...(ngDevMode ? [{ debugName: "element", read: (ElementRef) }] : [{
2295
+ read: (ElementRef),
2296
+ }]));
2376
2297
  this._menu = inject(C3MenuService);
2377
2298
  this.destroyRef = inject(DestroyRef);
2378
- this.currentRouteChangeSubscription = signal(null);
2299
+ this.currentRouteChangeSubscription = signal(null, ...(ngDevMode ? [{ debugName: "currentRouteChangeSubscription" }] : []));
2379
2300
  effect(() => {
2380
2301
  if (!this.currentRouteChangeSubscription() && this.element()) {
2381
2302
  const subscribtion = this._menu.currentRouteChange
@@ -2389,20 +2310,22 @@ class C3NavItemComponent {
2389
2310
  }
2390
2311
  });
2391
2312
  }
2392
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3NavItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2393
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.7", type: C3NavItemComponent, isStandalone: false, selector: "c3-nav-item", inputs: { route: { classPropertyName: "route", publicName: "route", isSignal: true, isRequired: true, transformFunction: null }, itemTitle: { classPropertyName: "itemTitle", publicName: "itemTitle", isSignal: true, isRequired: true, transformFunction: null }, check: { classPropertyName: "check", publicName: "check", isSignal: true, isRequired: false, transformFunction: null }, isExternal: { classPropertyName: "isExternal", publicName: "isExternal", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "element", first: true, predicate: ["button"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<li #button>\n <a matRipple matRippleColor=\"#ffffff66\" [routerLink]=\"isExternal() ? null : route()\" [href]=\"isExternal() ? route() : null\">\n <ng-content></ng-content>\n <span> {{ itemTitle() }} </span>\n </a>\n</li>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1$6.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3$1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }] }); }
2313
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3NavItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2314
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.14", type: C3NavItemComponent, isStandalone: false, selector: "c3-nav-item", inputs: { route: { classPropertyName: "route", publicName: "route", isSignal: true, isRequired: true, transformFunction: null }, itemTitle: { classPropertyName: "itemTitle", publicName: "itemTitle", isSignal: true, isRequired: true, transformFunction: null }, check: { classPropertyName: "check", publicName: "check", isSignal: true, isRequired: false, transformFunction: null }, isExternal: { classPropertyName: "isExternal", publicName: "isExternal", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "element", first: true, predicate: ["button"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<li #button>\n <a matRipple matRippleColor=\"#ffffff66\" [routerLink]=\"isExternal() ? null : route()\" [href]=\"isExternal() ? route() : null\">\n <ng-content></ng-content>\n <span> {{ itemTitle() }} </span>\n </a>\n</li>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1$6.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3$2.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }] }); }
2394
2315
  }
2395
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3NavItemComponent, decorators: [{
2316
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3NavItemComponent, decorators: [{
2396
2317
  type: Component,
2397
2318
  args: [{ selector: 'c3-nav-item', standalone: false, template: "<li #button>\n <a matRipple matRippleColor=\"#ffffff66\" [routerLink]=\"isExternal() ? null : route()\" [href]=\"isExternal() ? route() : null\">\n <ng-content></ng-content>\n <span> {{ itemTitle() }} </span>\n </a>\n</li>\n", styles: [":host{display:block}\n"] }]
2398
- }], ctorParameters: () => [] });
2319
+ }], ctorParameters: () => [], propDecorators: { route: [{ type: i0.Input, args: [{ isSignal: true, alias: "route", required: true }] }], itemTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemTitle", required: true }] }], check: [{ type: i0.Input, args: [{ isSignal: true, alias: "check", required: false }] }], isExternal: [{ type: i0.Input, args: [{ isSignal: true, alias: "isExternal", required: false }] }], element: [{ type: i0.ViewChild, args: ['button', { ...{
2320
+ read: (ElementRef),
2321
+ }, isSignal: true }] }] } });
2399
2322
 
2400
2323
  class C3MenuModule {
2401
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3MenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2402
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: C3MenuModule, declarations: [C3MenuComponent, C3NavItemComponent], imports: [CommonModule, RouterModule, MatRippleModule], exports: [C3MenuComponent, C3NavItemComponent] }); }
2403
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3MenuModule, imports: [CommonModule, RouterModule, MatRippleModule] }); }
2324
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3MenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2325
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: C3MenuModule, declarations: [C3MenuComponent, C3NavItemComponent], imports: [CommonModule, RouterModule, MatRippleModule], exports: [C3MenuComponent, C3NavItemComponent] }); }
2326
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3MenuModule, imports: [CommonModule, RouterModule, MatRippleModule] }); }
2404
2327
  }
2405
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3MenuModule, decorators: [{
2328
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3MenuModule, decorators: [{
2406
2329
  type: NgModule,
2407
2330
  args: [{
2408
2331
  imports: [CommonModule, RouterModule, MatRippleModule],
@@ -2426,5 +2349,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
2426
2349
  * Generated bundle index. Do not edit.
2427
2350
  */
2428
2351
 
2429
- export { C3AlertDialogComponent, C3AutoAnimateDirective, C3DialogEmbedChildComponent, C3DialogModule, C3DialogService, C3DialogTemplateComponent, C3DropdownComponent, C3DropdownModule, C3DropdownTrigger, C3ExpansionComponent, C3ExpansionHeaderComponent, C3ExpansionModule, C3FileDisplayCardComponent, C3FileDisplayGridComponent, C3FileDisplayIconComponent, C3FileDisplayListCellDefDirective, C3FileDisplayListColumnDefDirective, C3FileDisplayListComponent, C3FileDisplayListHeaderCellDefDirective, C3FileDisplayerModule, C3FileViewer, C3FileViewerComponent, C3FileViewerDialog, C3FileViewerDialogComponent, C3FileViewerModule, C3FlowingMenuComponent, C3FlowingMenuItemComponent, C3FlowingMenuItemContentComponent, C3FlowingMenuModule, C3MenuComponent, C3MenuModule, C3NavItemComponent, C3OpenDialogDirective, C3PreventClickDirective, C3PreventKeyboardEventDirective, C3PromptDialogComponent, C3SafeUrlPipe, C3SelectOnFocusDirective, C3StopPropagationDirective, C3TraceCardAlignLeftDirective, C3TraceCardAlignRightDirective, C3TraceCardComponent, C3TraceCardContentComponent, C3TraceCardModule, C3TraceCardTitleComponent, C3TreeComponent, C3_FILE_DISPLAY_LIST, ConfirmDialogComponent, CustomFileEvent, FullScreenDirective, MAT_DROPDOWN_VALUE_ACCESSOR, booleanSignal };
2352
+ export { C3AlertDialogComponent, C3AutoAnimateDirective, C3DialogEmbedChildComponent, C3DialogModule, C3DialogService, C3DialogTemplateComponent, C3DropdownComponent, C3DropdownModule, C3DropdownTrigger, C3ExpansionComponent, C3ExpansionHeaderComponent, C3ExpansionModule, C3FileDisplayCardComponent, C3FileDisplayGridComponent, C3FileDisplayIconComponent, C3FileDisplayListCellDefDirective, C3FileDisplayListColumnDefDirective, C3FileDisplayListComponent, C3FileDisplayListHeaderCellDefDirective, C3FileDisplayerModule, C3FileViewer, C3FileViewerComponent, C3FileViewerDialog, C3FileViewerDialogComponent, C3FileViewerModule, C3FlowingMenuComponent, C3FlowingMenuItemComponent, C3FlowingMenuItemContentComponent, C3FlowingMenuModule, C3MenuComponent, C3MenuModule, C3NavItemComponent, C3OpenDialogDirective, C3PreventClickDirective, C3PreventKeyboardEventDirective, C3PromptDialogComponent, C3SafeUrlPipe, C3SelectOnFocusDirective, C3StopPropagationDirective, C3TraceCardAlignLeftDirective, C3TraceCardAlignRightDirective, C3TraceCardComponent, C3TraceCardContentComponent, C3TraceCardModule, C3TraceCardTitleComponent, C3TreeComponent, C3_FILE_DISPLAY_LIST, ConfirmDialogComponent, CustomFileEvent, FullScreenDirective, MAT_DROPDOWN_VALUE_ACCESSOR };
2430
2353
  //# sourceMappingURL=c3-components.mjs.map