c3-components 0.14.1 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/fesm2022/c3-components.mjs +534 -532
  2. package/fesm2022/c3-components.mjs.map +1 -1
  3. package/index.d.ts +868 -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-trace-card/c3-trace-card.module.d.ts +0 -12
  59. package/lib/c3-trace-card/components/c3-trace-card/c3-trace-card.component.d.ts +0 -8
  60. package/lib/c3-trace-card/components/c3-trace-card-content/c3-trace-card-content.component.d.ts +0 -5
  61. package/lib/c3-trace-card/components/c3-trace-card-title/c3-trace-card-title.component.d.ts +0 -5
  62. package/lib/c3-trace-card/directives/align-left.directive.d.ts +0 -7
  63. package/lib/c3-trace-card/directives/align-right.directive.d.ts +0 -7
  64. package/lib/c3-tree/c3-tree.component.d.ts +0 -28
  65. package/public-api.d.ts +0 -91
@@ -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: [{
@@ -1294,12 +1243,63 @@ class C3FileViewer {
1294
1243
  ? of(this.locationBlobMap.get(location))
1295
1244
  : this.getFile(location).pipe(map((response) => URL.createObjectURL(response)), tap((url) => this.locationBlobMap.set(location, url)))), tap(() => this.onLoaded()));
1296
1245
  }
1246
+ /**
1247
+ * Encode une URL de manière sûre pour éviter les problèmes avec les caractères spéciaux
1248
+ * comme +, espaces, etc.
1249
+ * Cette fonction encode correctement les segments du chemin et les paramètres de requête.
1250
+ */
1251
+ encodeUrl(url) {
1252
+ try {
1253
+ // Si l'URL est relative, on doit encoder manuellement
1254
+ if (!url.includes('://')) {
1255
+ // Pour les URLs relatives, on sépare le chemin et les paramètres de requête
1256
+ const [path, query] = url.split('?');
1257
+ // Encoder chaque segment du chemin (sauf les séparateurs /)
1258
+ const encodedPath = path
1259
+ .split('/')
1260
+ .map((segment) => (segment ? encodeURIComponent(segment) : ''))
1261
+ .join('/');
1262
+ if (query) {
1263
+ // Pour les paramètres de requête, encoder chaque clé et valeur
1264
+ const params = query.split('&');
1265
+ const encodedParams = params.map((param) => {
1266
+ const [key, ...valueParts] = param.split('=');
1267
+ const value = valueParts.join('=');
1268
+ return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;
1269
+ });
1270
+ return `${encodedPath}?${encodedParams.join('&')}`;
1271
+ }
1272
+ return encodedPath;
1273
+ }
1274
+ // Pour les URLs absolues, utiliser le constructeur URL pour parser
1275
+ const urlObj = new URL(url);
1276
+ // Encoder chaque segment du chemin
1277
+ const encodedPath = urlObj.pathname
1278
+ .split('/')
1279
+ .map((segment) => (segment ? encodeURIComponent(segment) : ''))
1280
+ .join('/');
1281
+ // Les searchParams sont déjà gérés correctement par URLSearchParams
1282
+ // mais on doit s'assurer que les valeurs sont encodées
1283
+ const searchParams = new URLSearchParams();
1284
+ urlObj.searchParams.forEach((value, key) => {
1285
+ searchParams.append(key, value);
1286
+ });
1287
+ const encodedSearch = searchParams.toString() ? `?${searchParams.toString()}` : '';
1288
+ return `${urlObj.protocol}//${urlObj.host}${encodedPath}${encodedSearch}${urlObj.hash}`;
1289
+ }
1290
+ catch (e) {
1291
+ // Si le parsing échoue (URL malformée ou relative sans base),
1292
+ // encoder avec encodeURI qui préserve la structure de l'URL
1293
+ return encodeURI(url);
1294
+ }
1295
+ }
1297
1296
  getFile(location) {
1298
1297
  const client = this.config.customClient || this.client;
1299
1298
  if (!client) {
1300
1299
  throw new Error('No http client provided. Please provide a custom client or import HttpClientModule');
1301
1300
  }
1302
- return client(location, {
1301
+ const encodedLocation = this.encodeUrl(location);
1302
+ return client(encodedLocation, {
1303
1303
  responseType: 'blob',
1304
1304
  });
1305
1305
  }
@@ -1422,7 +1422,7 @@ class C3FileViewer {
1422
1422
  }
1423
1423
  download(file = this.currentFile) {
1424
1424
  const client = this.config.customClient || this.client;
1425
- const originalName = this.getOriginalName();
1425
+ const originalName = this.getOriginalName(file);
1426
1426
  // Si le fichier est déjà en blob (petit fichier déjà chargé)
1427
1427
  if (file.objectUrl && this.locationBlobMap.has(file.location)) {
1428
1428
  const url = this.locationBlobMap.get(file.location);
@@ -1446,7 +1446,8 @@ class C3FileViewer {
1446
1446
  }
1447
1447
  downloadWithClient(file, client, originalName) {
1448
1448
  // Utiliser le client fourni pour récupérer le fichier
1449
- client(file.location, {
1449
+ const encodedLocation = this.encodeUrl(file.location);
1450
+ client(encodedLocation, {
1450
1451
  responseType: 'blob',
1451
1452
  }).subscribe({
1452
1453
  next: (blob) => {
@@ -1479,12 +1480,12 @@ class C3FileViewerDialog {
1479
1480
  constructor(fileViewer) {
1480
1481
  this.fileViewer = fileViewer;
1481
1482
  }
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: `
1483
+ 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 }); }
1484
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: C3FileViewerDialog, isStandalone: false, selector: "ng-component", ngImport: i0, template: `
1484
1485
  <c3-file-viewer [fileViewer]="fileViewer" [screenHeightOccupied]="0" />
1485
1486
  `, isInline: true, dependencies: [{ kind: "component", type: C3FileViewerComponent, selector: "c3-file-viewer", inputs: ["screenHeightOccupied", "fileViewer"], outputs: ["indexChange", "configChange", "customFileEvent"] }] }); }
1486
1487
  }
1487
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerDialog, decorators: [{
1488
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerDialog, decorators: [{
1488
1489
  type: Component,
1489
1490
  args: [{
1490
1491
  template: `
@@ -1500,22 +1501,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
1500
1501
  class C3FileViewerDialogComponent {
1501
1502
  constructor(_dialog) {
1502
1503
  this._dialog = _dialog;
1503
- this.dialogConfig = {
1504
+ this.fileViewer = input.required(...(ngDevMode ? [{ debugName: "fileViewer" }] : []));
1505
+ this.dialogConfig = input({
1504
1506
  panelClass: 'c3-file-viewer-dialog',
1505
1507
  width: '80%',
1506
1508
  height: '80%',
1507
- };
1509
+ }, ...(ngDevMode ? [{ debugName: "dialogConfig" }] : []));
1508
1510
  }
1509
1511
  openDialog() {
1510
1512
  this._dialog.open(C3FileViewerDialog, {
1511
- data: this.fileViewer,
1512
- ...this.dialogConfig,
1513
+ data: this.fileViewer(),
1514
+ ...this.dialogConfig(),
1513
1515
  });
1514
1516
  }
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 }); }
1517
+ 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 }); }
1518
+ 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
1519
  }
1518
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerDialogComponent, decorators: [{
1520
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerDialogComponent, decorators: [{
1519
1521
  type: Component,
1520
1522
  args: [{
1521
1523
  selector: 'c3-file-viewer-dialog',
@@ -1525,18 +1527,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
1525
1527
  },
1526
1528
  standalone: false
1527
1529
  }]
1528
- }], ctorParameters: () => [{ type: i1$2.MatDialog }], propDecorators: { fileViewer: [{
1529
- type: Input
1530
- }], dialogConfig: [{
1531
- type: Input
1532
- }], openDialog: [{
1530
+ }], 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
1531
  type: HostListener,
1534
1532
  args: ['click']
1535
1533
  }] } });
1536
1534
 
1537
1535
  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,
1536
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1537
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerModule, declarations: [FullScreenDirective,
1540
1538
  C3FileViewerComponent,
1541
1539
  C3FileViewerActionsComponent,
1542
1540
  C3FileViewerImageComponent,
@@ -1545,9 +1543,9 @@ class C3FileViewerModule {
1545
1543
  C3FileViewerDialogComponent,
1546
1544
  C3FileViewerDialog,
1547
1545
  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] }); }
1546
+ 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
1547
  }
1550
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileViewerModule, decorators: [{
1548
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileViewerModule, decorators: [{
1551
1549
  type: NgModule,
1552
1550
  args: [{
1553
1551
  declarations: [
@@ -1569,10 +1567,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
1569
1567
 
1570
1568
  class C3FileDisplayCardComponent {
1571
1569
  constructor() {
1572
- this.fileObjectUrl = input.required();
1573
- this.displayFn = input((file) => file.name);
1574
- this.deletable = input(false);
1575
- this.size = input('32');
1570
+ this.fileObjectUrl = input.required(...(ngDevMode ? [{ debugName: "fileObjectUrl" }] : []));
1571
+ this.displayFn = input((file) => file.name, ...(ngDevMode ? [{ debugName: "displayFn" }] : []));
1572
+ this.deletable = input(false, ...(ngDevMode ? [{ debugName: "deletable" }] : []));
1573
+ this.size = input('32', ...(ngDevMode ? [{ debugName: "size" }] : []));
1576
1574
  this.onDelete = output();
1577
1575
  this.onDownload = output();
1578
1576
  this.getFileType = computed(() => {
@@ -1586,37 +1584,37 @@ class C3FileDisplayCardComponent {
1586
1584
  return 'video';
1587
1585
  }
1588
1586
  return 'unknown';
1589
- });
1587
+ }, ...(ngDevMode ? [{ debugName: "getFileType" }] : []));
1590
1588
  this.getFileObjectUrl = computed(() => {
1591
1589
  const file = this.fileObjectUrl();
1592
1590
  return file && file.objectUrl ? file.objectUrl : null;
1593
- });
1591
+ }, ...(ngDevMode ? [{ debugName: "getFileObjectUrl" }] : []));
1594
1592
  this.getFileName = computed(() => {
1595
1593
  const file = this.fileObjectUrl();
1596
1594
  return file ? this.displayFn()(file) : '';
1597
- });
1595
+ }, ...(ngDevMode ? [{ debugName: "getFileName" }] : []));
1598
1596
  this.getDisplayName = computed(() => {
1599
1597
  const file = this.fileObjectUrl();
1600
1598
  return file ? this.displayFn()(file) : '';
1601
- });
1599
+ }, ...(ngDevMode ? [{ debugName: "getDisplayName" }] : []));
1602
1600
  }
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"] }] }); }
1601
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1602
+ 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
1603
  }
1606
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayCardComponent, decorators: [{
1604
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayCardComponent, decorators: [{
1607
1605
  type: Component,
1608
1606
  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
- }] });
1607
+ }], 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
1608
 
1611
1609
  class C3FileDisplayGridComponent {
1612
1610
  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);
1611
+ this.files = input.required(...(ngDevMode ? [{ debugName: "files" }] : []));
1612
+ this.config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : []));
1613
+ this.cardSize = input('32', ...(ngDevMode ? [{ debugName: "cardSize" }] : []));
1614
+ this.displayFn = input((file) => file.name, ...(ngDevMode ? [{ debugName: "displayFn" }] : []));
1615
+ this.deletable = input(false, ...(ngDevMode ? [{ debugName: "deletable" }] : []));
1618
1616
  this.onDelete = output();
1619
- this.dialog = viewChild(C3FileViewerDialogComponent);
1617
+ this.dialog = viewChild(C3FileViewerDialogComponent, ...(ngDevMode ? [{ debugName: "dialog" }] : []));
1620
1618
  this.fileViewer = new C3FileViewer({
1621
1619
  client: inject(HttpClient),
1622
1620
  });
@@ -1633,17 +1631,17 @@ class C3FileDisplayGridComponent {
1633
1631
  this.fileViewer.currentIndex = index;
1634
1632
  this.dialog()?.openDialog();
1635
1633
  }
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"] }] }); }
1634
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1635
+ 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
1636
  }
1639
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayGridComponent, decorators: [{
1637
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayGridComponent, decorators: [{
1640
1638
  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: () => [] });
1639
+ 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"] }]
1640
+ }], 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
1641
 
1644
1642
  class C3FileDisplayIconComponent {
1645
1643
  constructor() {
1646
- this.fileType = input.required();
1644
+ this.fileType = input.required(...(ngDevMode ? [{ debugName: "fileType" }] : []));
1647
1645
  this.displayedIcon = computed(() => {
1648
1646
  switch (this.fileType()) {
1649
1647
  case 'image/webp':
@@ -1662,7 +1660,7 @@ class C3FileDisplayIconComponent {
1662
1660
  default:
1663
1661
  return 'content_copy';
1664
1662
  }
1665
- });
1663
+ }, ...(ngDevMode ? [{ debugName: "displayedIcon" }] : []));
1666
1664
  this.color = computed(() => {
1667
1665
  switch (this.fileType()) {
1668
1666
  case 'image/webp':
@@ -1681,15 +1679,15 @@ class C3FileDisplayIconComponent {
1681
1679
  default:
1682
1680
  return 'text-gray';
1683
1681
  }
1684
- });
1682
+ }, ...(ngDevMode ? [{ debugName: "color" }] : []));
1685
1683
  }
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"] }] }); }
1684
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1685
+ 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
1686
  }
1689
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayIconComponent, decorators: [{
1687
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayIconComponent, decorators: [{
1690
1688
  type: Component,
1691
1689
  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
- }] });
1690
+ }], propDecorators: { fileType: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileType", required: true }] }] } });
1693
1691
 
1694
1692
  /**
1695
1693
  * A directive that prevents the default action and stops event propagation on click events.
@@ -1703,10 +1701,10 @@ class C3PreventClickDirective {
1703
1701
  event.preventDefault();
1704
1702
  event.stopPropagation();
1705
1703
  }
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 }); }
1704
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3PreventClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1705
+ 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
1706
  }
1709
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3PreventClickDirective, decorators: [{
1707
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3PreventClickDirective, decorators: [{
1710
1708
  type: Directive,
1711
1709
  args: [{
1712
1710
  selector: '[c3-prevent-click]',
@@ -1725,7 +1723,7 @@ class C3PreventKeyboardEventDirective {
1725
1723
  /**
1726
1724
  * The keyboard key to prevent the default action and stop event propagation for. Defaults to 'enter'.
1727
1725
  */
1728
- this.key = 'enter';
1726
+ this.key = input('enter', ...(ngDevMode ? [{ debugName: "key" }] : []));
1729
1727
  }
1730
1728
  /**
1731
1729
  * HostListener for the 'keydown' event.
@@ -1733,25 +1731,23 @@ class C3PreventKeyboardEventDirective {
1733
1731
  */
1734
1732
  onKeyDown(event) {
1735
1733
  // Check if the key pressed matches the input key.
1736
- if (event.key?.toLocaleLowerCase() === this.key.toLocaleLowerCase()) {
1734
+ if (event.key?.toLocaleLowerCase() === this.key().toLocaleLowerCase()) {
1737
1735
  // Prevent the default action associated with the event.
1738
1736
  event.preventDefault();
1739
1737
  // Stop the event from bubbling up the event chain.
1740
1738
  event.stopPropagation();
1741
1739
  }
1742
1740
  }
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 }); }
1741
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3PreventKeyboardEventDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1742
+ 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
1743
  }
1746
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3PreventKeyboardEventDirective, decorators: [{
1744
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3PreventKeyboardEventDirective, decorators: [{
1747
1745
  type: Directive,
1748
1746
  args: [{
1749
1747
  selector: '[c3-prevent-keyboard-event]',
1750
1748
  standalone: true,
1751
1749
  }]
1752
- }], propDecorators: { key: [{
1753
- type: Input
1754
- }], onKeyDown: [{
1750
+ }], propDecorators: { key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: false }] }], onKeyDown: [{
1755
1751
  type: HostListener,
1756
1752
  args: ['keydown', ['$event']]
1757
1753
  }] } });
@@ -1760,10 +1756,10 @@ class C3StopPropagationDirective {
1760
1756
  onClick(event) {
1761
1757
  event.stopImmediatePropagation();
1762
1758
  }
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 }); }
1759
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3StopPropagationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1760
+ 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
1761
  }
1766
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3StopPropagationDirective, decorators: [{
1762
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3StopPropagationDirective, decorators: [{
1767
1763
  type: Directive,
1768
1764
  args: [{
1769
1765
  selector: '[c3-stop-click-propagation]',
@@ -1778,31 +1774,31 @@ const C3_FILE_DISPLAY_LIST = new InjectionToken('C3_FILE_DISPLAY_LIST');
1778
1774
 
1779
1775
  class C3FileDisplayListColumnDefDirective {
1780
1776
  constructor() {
1781
- this.title = input.required({
1782
- alias: 'c3FileDisplayListColumnDef',
1783
- });
1784
- this.classList = input([]);
1777
+ this.title = input.required(...(ngDevMode ? [{ debugName: "title", alias: 'c3FileDisplayListColumnDef' }] : [{
1778
+ alias: 'c3FileDisplayListColumnDef',
1779
+ }]));
1780
+ this.classList = input([], ...(ngDevMode ? [{ debugName: "classList" }] : []));
1785
1781
  this._table = inject(C3_FILE_DISPLAY_LIST, { optional: true });
1786
- this.headerCellDef = contentChild(C3FileDisplayListHeaderCellDefDirective);
1787
- this.cellDef = contentChild(C3FileDisplayListCellDefDirective);
1782
+ this.headerCellDef = contentChild(C3FileDisplayListHeaderCellDefDirective, ...(ngDevMode ? [{ debugName: "headerCellDef" }] : []));
1783
+ this.cellDef = contentChild(C3FileDisplayListCellDefDirective, ...(ngDevMode ? [{ debugName: "cellDef" }] : []));
1788
1784
  }
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 }); }
1785
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayListColumnDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1786
+ 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
1787
  }
1792
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayListColumnDefDirective, decorators: [{
1788
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayListColumnDefDirective, decorators: [{
1793
1789
  type: Directive,
1794
1790
  args: [{
1795
1791
  selector: '[c3FileDisplayListColumnDef]',
1796
1792
  }]
1797
- }] });
1793
+ }], 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
1794
  class C3FileDisplayListHeaderCellDefDirective {
1799
1795
  constructor() {
1800
1796
  this.template = inject(TemplateRef);
1801
1797
  }
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 }); }
1798
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayListHeaderCellDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1799
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.14", type: C3FileDisplayListHeaderCellDefDirective, isStandalone: true, selector: "[c3FileDisplayListHeaderCellDef]", ngImport: i0 }); }
1804
1800
  }
1805
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayListHeaderCellDefDirective, decorators: [{
1801
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayListHeaderCellDefDirective, decorators: [{
1806
1802
  type: Directive,
1807
1803
  args: [{
1808
1804
  selector: '[c3FileDisplayListHeaderCellDef]',
@@ -1812,10 +1808,10 @@ class C3FileDisplayListCellDefDirective {
1812
1808
  constructor() {
1813
1809
  this.template = inject(TemplateRef);
1814
1810
  }
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 }); }
1811
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayListCellDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1812
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.14", type: C3FileDisplayListCellDefDirective, isStandalone: true, selector: "[c3FileDisplayListCellDef]", ngImport: i0 }); }
1817
1813
  }
1818
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayListCellDefDirective, decorators: [{
1814
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayListCellDefDirective, decorators: [{
1819
1815
  type: Directive,
1820
1816
  args: [{
1821
1817
  selector: '[c3FileDisplayListCellDef]',
@@ -1824,14 +1820,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
1824
1820
 
1825
1821
  class C3FileDisplayListComponent {
1826
1822
  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);
1823
+ this.files = input.required(...(ngDevMode ? [{ debugName: "files" }] : []));
1824
+ this.config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : []));
1825
+ this.displayFn = input((file) => file.name, ...(ngDevMode ? [{ debugName: "displayFn" }] : []));
1826
+ this.columns = input(['icon', 'name', 'date'], ...(ngDevMode ? [{ debugName: "columns" }] : []));
1827
+ this.deletable = input(false, ...(ngDevMode ? [{ debugName: "deletable" }] : []));
1832
1828
  this.onDelete = output();
1833
- this.dialog = viewChild(C3FileViewerDialogComponent);
1834
- this._columnDefs = contentChildren(C3FileDisplayListColumnDefDirective);
1829
+ this.dialog = viewChild(C3FileViewerDialogComponent, ...(ngDevMode ? [{ debugName: "dialog" }] : []));
1830
+ this._columnDefs = contentChildren(C3FileDisplayListColumnDefDirective, ...(ngDevMode ? [{ debugName: "_columnDefs" }] : []));
1835
1831
  this._viewContainer = inject(ViewContainerRef);
1836
1832
  this.fileViewer = new C3FileViewer({
1837
1833
  client: inject(HttpClient),
@@ -1852,15 +1848,15 @@ class C3FileDisplayListComponent {
1852
1848
  getColumnDef(columnName) {
1853
1849
  return this._columnDefs().find((col) => col.title() === columnName);
1854
1850
  }
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: [
1851
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1852
+ 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
1853
  {
1858
1854
  provide: C3_FILE_DISPLAY_LIST,
1859
1855
  useExisting: C3FileDisplayListComponent,
1860
1856
  },
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"] }] }); }
1857
+ ], 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
1858
  }
1863
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayListComponent, decorators: [{
1859
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayListComponent, decorators: [{
1864
1860
  type: Component,
1865
1861
  args: [{ selector: 'c3-file-display-list', imports: [
1866
1862
  C3StopPropagationDirective,
@@ -1877,11 +1873,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
1877
1873
  useExisting: C3FileDisplayListComponent,
1878
1874
  },
1879
1875
  ], 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: () => [] });
1876
+ }], 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
1877
 
1882
1878
  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,
1879
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1880
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayerModule, imports: [CommonModule,
1885
1881
  C3FileDisplayGridComponent,
1886
1882
  C3FileDisplayListComponent,
1887
1883
  C3FileDisplayCardComponent,
@@ -1895,13 +1891,13 @@ class C3FileDisplayerModule {
1895
1891
  C3FileDisplayListColumnDefDirective,
1896
1892
  C3FileDisplayListHeaderCellDefDirective,
1897
1893
  C3FileDisplayListCellDefDirective] }); }
1898
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayerModule, imports: [CommonModule,
1894
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayerModule, imports: [CommonModule,
1899
1895
  C3FileDisplayGridComponent,
1900
1896
  C3FileDisplayListComponent,
1901
1897
  C3FileDisplayCardComponent,
1902
1898
  C3FileDisplayIconComponent] }); }
1903
1899
  }
1904
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FileDisplayerModule, decorators: [{
1900
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayerModule, decorators: [{
1905
1901
  type: NgModule,
1906
1902
  args: [{
1907
1903
  declarations: [],
@@ -1929,20 +1925,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
1929
1925
 
1930
1926
  class C3ExpansionHeaderComponent {
1931
1927
  constructor() {
1932
- this.title = input();
1933
- this.isExpanded = input(false);
1928
+ this.title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : []));
1929
+ this.isExpanded = input(false, ...(ngDevMode ? [{ debugName: "isExpanded" }] : []));
1934
1930
  this.toggleExpand = output();
1935
1931
  }
1936
1932
  get hostClass() {
1937
1933
  return 'c3-expansion-header';
1938
1934
  }
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 }); }
1935
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3ExpansionHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1936
+ 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
1937
  }
1942
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3ExpansionHeaderComponent, decorators: [{
1938
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3ExpansionHeaderComponent, decorators: [{
1943
1939
  type: Component,
1944
1940
  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: [{
1941
+ }], 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
1942
  type: HostBinding,
1947
1943
  args: ['class']
1948
1944
  }] } });
@@ -1950,32 +1946,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
1950
1946
  class C3AutoAnimateDirective {
1951
1947
  constructor(el) {
1952
1948
  this.el = el;
1949
+ this.options = input(undefined, ...(ngDevMode ? [{ debugName: "options" }] : []));
1953
1950
  }
1954
1951
  ngAfterViewInit() {
1955
- autoAnimate(this.el.nativeElement, this.options);
1952
+ autoAnimate(this.el.nativeElement, this.options());
1956
1953
  }
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 }); }
1954
+ 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 }); }
1955
+ 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
1956
  }
1960
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3AutoAnimateDirective, decorators: [{
1957
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3AutoAnimateDirective, decorators: [{
1961
1958
  type: Directive,
1962
1959
  args: [{
1963
1960
  selector: '[c3AutoAnimate]',
1964
1961
  standalone: true,
1965
1962
  }]
1966
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { options: [{
1967
- type: Input
1968
- }] } });
1963
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }] } });
1969
1964
 
1970
1965
  class C3ExpansionComponent {
1971
1966
  get hostClass() {
1972
1967
  return 'c3-expansion';
1973
1968
  }
1974
1969
  constructor() {
1975
- this.headerClass = input('c3-expansion-header');
1976
- this.isExpanded = model(false);
1970
+ this.headerClass = input('c3-expansion-header', ...(ngDevMode ? [{ debugName: "headerClass" }] : []));
1971
+ this.isExpanded = model(false, ...(ngDevMode ? [{ debugName: "isExpanded" }] : []));
1977
1972
  this._elementRef = inject(ElementRef);
1978
- this.header = contentChild(C3ExpansionHeaderComponent);
1973
+ this.header = contentChild(C3ExpansionHeaderComponent, ...(ngDevMode ? [{ debugName: "header" }] : []));
1979
1974
  effect(() => {
1980
1975
  this.expandSubsciption?.unsubscribe();
1981
1976
  this.header()?.toggleExpand.subscribe(() => this.toggleExpand());
@@ -1987,39 +1982,39 @@ class C3ExpansionComponent {
1987
1982
  toggleExpand() {
1988
1983
  this.isExpanded.set(!this.isExpanded());
1989
1984
  }
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"] }] }); }
1985
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3ExpansionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1986
+ 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
1987
  }
1993
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3ExpansionComponent, decorators: [{
1988
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3ExpansionComponent, decorators: [{
1994
1989
  type: Component,
1995
1990
  args: [{ selector: 'c3-expansion', hostDirectives: [
1996
1991
  {
1997
1992
  directive: C3AutoAnimateDirective,
1998
1993
  inputs: ['options'],
1999
1994
  },
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: [{
1995
+ ], 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" }]
1996
+ }], 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
1997
  type: HostBinding,
2003
1998
  args: ['class']
2004
- }] } });
1999
+ }], header: [{ type: i0.ContentChild, args: [i0.forwardRef(() => C3ExpansionHeaderComponent), { isSignal: true }] }] } });
2005
2000
 
2006
2001
  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,
2002
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3ExpansionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2003
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: C3ExpansionModule, declarations: [C3ExpansionComponent, C3ExpansionHeaderComponent], imports: [CommonModule,
2009
2004
  C3AutoAnimateDirective,
2010
2005
  MatButtonModule,
2011
2006
  MatIconModule,
2012
2007
  MatTooltipModule,
2013
2008
  MatButtonModule,
2014
2009
  MatToolbarModule], exports: [C3ExpansionComponent, C3ExpansionHeaderComponent] }); }
2015
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3ExpansionModule, imports: [CommonModule,
2010
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3ExpansionModule, imports: [CommonModule,
2016
2011
  MatButtonModule,
2017
2012
  MatIconModule,
2018
2013
  MatTooltipModule,
2019
2014
  MatButtonModule,
2020
2015
  MatToolbarModule] }); }
2021
2016
  }
2022
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3ExpansionModule, decorators: [{
2017
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3ExpansionModule, decorators: [{
2023
2018
  type: NgModule,
2024
2019
  args: [{
2025
2020
  declarations: [C3ExpansionComponent, C3ExpansionHeaderComponent],
@@ -2040,10 +2035,10 @@ class C3SelectOnFocusDirective {
2040
2035
  onFocus(target) {
2041
2036
  setTimeout(() => target.select());
2042
2037
  }
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 }); }
2038
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3SelectOnFocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2039
+ 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
2040
  }
2046
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3SelectOnFocusDirective, decorators: [{
2041
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3SelectOnFocusDirective, decorators: [{
2047
2042
  type: Directive,
2048
2043
  args: [{
2049
2044
  selector: '[c3SelectOnFocus]',
@@ -2056,8 +2051,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
2056
2051
 
2057
2052
  class C3TreeComponent {
2058
2053
  constructor() {
2059
- this.treeData = model.required();
2060
- this.isLoading = model(false);
2054
+ this.treeData = model.required(...(ngDevMode ? [{ debugName: "treeData" }] : []));
2055
+ this.isLoading = model(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
2061
2056
  this.treeDataSelected = output();
2062
2057
  this._transformer = (node, level) => ({
2063
2058
  expandable: !!node.children && node.children.length > 0,
@@ -2075,45 +2070,48 @@ class C3TreeComponent {
2075
2070
  this.dataSource.data = this.treeData();
2076
2071
  });
2077
2072
  }
2078
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2079
- 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"] }] }); }
2073
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2074
+ 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"] }] }); }
2080
2075
  }
2081
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TreeComponent, decorators: [{
2076
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TreeComponent, decorators: [{
2082
2077
  type: Component,
2083
2078
  args: [{ selector: 'c3-tree', imports: [
2084
- CommonModule,
2085
2079
  MatTreeModule,
2086
2080
  MatIconModule,
2087
2081
  MatRippleModule,
2088
- MatProgressSpinnerModule,
2082
+ MatProgressSpinnerModule
2089
2083
  ], 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"] }]
2090
- }], ctorParameters: () => [] });
2084
+ }], 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"] }] } });
2091
2085
 
2092
2086
  class C3FlowingMenuItemComponent {
2093
2087
  constructor() {
2094
- this.menuTpl = viewChild('menuTpl', {
2095
- read: TemplateRef,
2096
- });
2097
- this.contentTpl = viewChild('contentTpl', {
2098
- read: TemplateRef,
2099
- });
2100
- this.active = signal(false);
2101
- }
2102
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2103
- 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" }); }
2088
+ this.menuTpl = viewChild('menuTpl', ...(ngDevMode ? [{ debugName: "menuTpl", read: TemplateRef }] : [{
2089
+ read: TemplateRef,
2090
+ }]));
2091
+ this.contentTpl = viewChild('contentTpl', ...(ngDevMode ? [{ debugName: "contentTpl", read: TemplateRef }] : [{
2092
+ read: TemplateRef,
2093
+ }]));
2094
+ this.active = signal(false, ...(ngDevMode ? [{ debugName: "active" }] : []));
2095
+ }
2096
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2097
+ 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" }); }
2104
2098
  }
2105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuItemComponent, decorators: [{
2099
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuItemComponent, decorators: [{
2106
2100
  type: Component,
2107
2101
  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" }]
2108
- }] });
2102
+ }], propDecorators: { menuTpl: [{ type: i0.ViewChild, args: ['menuTpl', { ...{
2103
+ read: TemplateRef,
2104
+ }, isSignal: true }] }], contentTpl: [{ type: i0.ViewChild, args: ['contentTpl', { ...{
2105
+ read: TemplateRef,
2106
+ }, isSignal: true }] }] } });
2109
2107
 
2110
2108
  class C3FlowingMenuComponent {
2111
2109
  constructor() {
2112
- this.c3FlowingMenu = contentChildren(C3FlowingMenuItemComponent);
2113
- this.targetContentRef = viewChild('targetContent', {
2114
- read: ViewContainerRef,
2115
- });
2116
- this.selectedIndex = model(0);
2110
+ this.c3FlowingMenu = contentChildren(C3FlowingMenuItemComponent, ...(ngDevMode ? [{ debugName: "c3FlowingMenu" }] : []));
2111
+ this.targetContentRef = viewChild('targetContent', ...(ngDevMode ? [{ debugName: "targetContentRef", read: ViewContainerRef }] : [{
2112
+ read: ViewContainerRef,
2113
+ }]));
2114
+ this.selectedIndex = model(0, ...(ngDevMode ? [{ debugName: "selectedIndex" }] : []));
2117
2115
  effect(() => {
2118
2116
  if (this.targetContentRef()) {
2119
2117
  this.updateView();
@@ -2133,36 +2131,38 @@ class C3FlowingMenuComponent {
2133
2131
  this.targetContentRef().createEmbeddedView(selectedMenu.contentTpl());
2134
2132
  }
2135
2133
  }
2136
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2137
- 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 }); }
2134
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2135
+ 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 }); }
2138
2136
  }
2139
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuComponent, decorators: [{
2137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuComponent, decorators: [{
2140
2138
  type: Component,
2141
2139
  args: [{ selector: 'c3-flowing-menu', encapsulation: ViewEncapsulation.None, host: {
2142
2140
  class: 'c3-flowing-menu',
2143
2141
  ngSkipHydration: 'true',
2144
2142
  }, 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" }]
2145
- }], ctorParameters: () => [] });
2143
+ }], ctorParameters: () => [], propDecorators: { c3FlowingMenu: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => C3FlowingMenuItemComponent), { isSignal: true }] }], targetContentRef: [{ type: i0.ViewChild, args: ['targetContent', { ...{
2144
+ read: ViewContainerRef,
2145
+ }, isSignal: true }] }], selectedIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedIndex", required: false }] }, { type: i0.Output, args: ["selectedIndexChange"] }] } });
2146
2146
 
2147
2147
  class C3FlowingMenuItemContentComponent {
2148
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuItemContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2149
- 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" }); }
2148
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuItemContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2149
+ 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" }); }
2150
2150
  }
2151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuItemContentComponent, decorators: [{
2151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuItemContentComponent, decorators: [{
2152
2152
  type: Component,
2153
2153
  args: [{ selector: 'c3-flowing-menu-item-content', standalone: false, template: "<ng-content></ng-content>\n" }]
2154
2154
  }] });
2155
2155
 
2156
2156
  class C3FlowingMenuModule {
2157
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2158
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuModule, declarations: [C3FlowingMenuComponent,
2157
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2158
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuModule, declarations: [C3FlowingMenuComponent,
2159
2159
  C3FlowingMenuItemComponent,
2160
2160
  C3FlowingMenuItemContentComponent], imports: [CommonModule], exports: [C3FlowingMenuComponent,
2161
2161
  C3FlowingMenuItemComponent,
2162
2162
  C3FlowingMenuItemContentComponent] }); }
2163
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuModule, imports: [CommonModule] }); }
2163
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuModule, imports: [CommonModule] }); }
2164
2164
  }
2165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3FlowingMenuModule, decorators: [{
2165
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FlowingMenuModule, decorators: [{
2166
2166
  type: NgModule,
2167
2167
  args: [{
2168
2168
  declarations: [
@@ -2181,7 +2181,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
2181
2181
 
2182
2182
  class C3TraceCardComponent {
2183
2183
  constructor() {
2184
- this.align = signal('left');
2184
+ this.align = signal('left', ...(ngDevMode ? [{ debugName: "align" }] : []));
2185
2185
  }
2186
2186
  get alignLeft() {
2187
2187
  return this.align() === 'left';
@@ -2189,10 +2189,10 @@ class C3TraceCardComponent {
2189
2189
  get alignRight() {
2190
2190
  return this.align() === 'right';
2191
2191
  }
2192
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2193
- 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 }); }
2192
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2193
+ 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 }); }
2194
2194
  }
2195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardComponent, decorators: [{
2195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardComponent, decorators: [{
2196
2196
  type: Component,
2197
2197
  args: [{ selector: 'c3-trace-card', encapsulation: ViewEncapsulation.None, host: {
2198
2198
  class: 'c3-trace-card',
@@ -2206,19 +2206,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
2206
2206
  }] } });
2207
2207
 
2208
2208
  class C3TraceCardTitleComponent {
2209
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2210
- 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: [""] }); }
2209
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2210
+ 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: [""] }); }
2211
2211
  }
2212
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardTitleComponent, decorators: [{
2212
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardTitleComponent, decorators: [{
2213
2213
  type: Component,
2214
2214
  args: [{ selector: 'c3-trace-card-title', standalone: false, template: "<ng-content></ng-content>\n" }]
2215
2215
  }] });
2216
2216
 
2217
2217
  class C3TraceCardContentComponent {
2218
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2219
- 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: [""] }); }
2218
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2219
+ 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: [""] }); }
2220
2220
  }
2221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardContentComponent, decorators: [{
2221
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardContentComponent, decorators: [{
2222
2222
  type: Component,
2223
2223
  args: [{ selector: 'c3-trace-card-content', standalone: false, template: "<ng-content></ng-content>\n" }]
2224
2224
  }] });
@@ -2230,10 +2230,10 @@ class C3TraceCardAlignLeftDirective {
2230
2230
  });
2231
2231
  this.c3CardTitle.align.set('left');
2232
2232
  }
2233
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardAlignLeftDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2234
- 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 }); }
2233
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardAlignLeftDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2234
+ 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 }); }
2235
2235
  }
2236
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardAlignLeftDirective, decorators: [{
2236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardAlignLeftDirective, decorators: [{
2237
2237
  type: Directive,
2238
2238
  args: [{
2239
2239
  selector: 'c3-trace-card[align-left]',
@@ -2248,10 +2248,10 @@ class C3TraceCardAlignRightDirective {
2248
2248
  });
2249
2249
  this.c3CardTitle.align.set('right');
2250
2250
  }
2251
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardAlignRightDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2252
- 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 }); }
2251
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardAlignRightDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2252
+ 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 }); }
2253
2253
  }
2254
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardAlignRightDirective, decorators: [{
2254
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardAlignRightDirective, decorators: [{
2255
2255
  type: Directive,
2256
2256
  args: [{
2257
2257
  selector: 'c3-trace-card[align-right]',
@@ -2260,8 +2260,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
2260
2260
  }], ctorParameters: () => [] });
2261
2261
 
2262
2262
  class C3TraceCardModule {
2263
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2264
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardModule, declarations: [C3TraceCardComponent,
2263
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2264
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardModule, declarations: [C3TraceCardComponent,
2265
2265
  C3TraceCardTitleComponent,
2266
2266
  C3TraceCardContentComponent], imports: [CommonModule,
2267
2267
  C3TraceCardAlignLeftDirective,
@@ -2270,9 +2270,9 @@ class C3TraceCardModule {
2270
2270
  C3TraceCardContentComponent,
2271
2271
  C3TraceCardAlignLeftDirective,
2272
2272
  C3TraceCardAlignRightDirective] }); }
2273
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardModule, imports: [CommonModule] }); }
2273
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardModule, imports: [CommonModule] }); }
2274
2274
  }
2275
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3TraceCardModule, decorators: [{
2275
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardModule, decorators: [{
2276
2276
  type: NgModule,
2277
2277
  args: [{
2278
2278
  declarations: [
@@ -2298,8 +2298,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
2298
2298
  class C3MenuService {
2299
2299
  constructor() {
2300
2300
  this.selectedElement = null;
2301
- this.currentRoute = signal('');
2302
- this.isHeadless = signal(false);
2301
+ this.currentRoute = signal('', ...(ngDevMode ? [{ debugName: "currentRoute" }] : []));
2302
+ this.isHeadless = signal(false, ...(ngDevMode ? [{ debugName: "isHeadless" }] : []));
2303
2303
  this._router = inject(Router);
2304
2304
  this._ar = inject(ActivatedRoute);
2305
2305
  this.currentRoute.set(this._router.routerState.snapshot.url);
@@ -2315,10 +2315,10 @@ class C3MenuService {
2315
2315
  this.selectedElement = element;
2316
2316
  this.selectedElement.classList.add("active-item");
2317
2317
  }
2318
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3MenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2319
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3MenuService, providedIn: 'root' }); }
2318
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3MenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2319
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3MenuService, providedIn: 'root' }); }
2320
2320
  }
2321
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3MenuService, decorators: [{
2321
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3MenuService, decorators: [{
2322
2322
  type: Injectable,
2323
2323
  args: [{
2324
2324
  providedIn: 'root'
@@ -2329,26 +2329,26 @@ class C3MenuComponent {
2329
2329
  constructor() {
2330
2330
  this._c3Menu = inject(C3MenuService);
2331
2331
  }
2332
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2333
- 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"] }] }); }
2332
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2333
+ 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"] }] }); }
2334
2334
  }
2335
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3MenuComponent, decorators: [{
2335
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3MenuComponent, decorators: [{
2336
2336
  type: Component,
2337
2337
  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"] }]
2338
2338
  }] });
2339
2339
 
2340
2340
  class C3NavItemComponent {
2341
2341
  constructor() {
2342
- this.route = input.required();
2343
- this.itemTitle = input.required();
2344
- this.check = input(null);
2345
- this.isExternal = input(false);
2346
- this.element = viewChild('button', {
2347
- read: (ElementRef),
2348
- });
2342
+ this.route = input.required(...(ngDevMode ? [{ debugName: "route" }] : []));
2343
+ this.itemTitle = input.required(...(ngDevMode ? [{ debugName: "itemTitle" }] : []));
2344
+ this.check = input(null, ...(ngDevMode ? [{ debugName: "check" }] : []));
2345
+ this.isExternal = input(false, ...(ngDevMode ? [{ debugName: "isExternal" }] : []));
2346
+ this.element = viewChild('button', ...(ngDevMode ? [{ debugName: "element", read: (ElementRef) }] : [{
2347
+ read: (ElementRef),
2348
+ }]));
2349
2349
  this._menu = inject(C3MenuService);
2350
2350
  this.destroyRef = inject(DestroyRef);
2351
- this.currentRouteChangeSubscription = signal(null);
2351
+ this.currentRouteChangeSubscription = signal(null, ...(ngDevMode ? [{ debugName: "currentRouteChangeSubscription" }] : []));
2352
2352
  effect(() => {
2353
2353
  if (!this.currentRouteChangeSubscription() && this.element()) {
2354
2354
  const subscribtion = this._menu.currentRouteChange
@@ -2362,20 +2362,22 @@ class C3NavItemComponent {
2362
2362
  }
2363
2363
  });
2364
2364
  }
2365
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3NavItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2366
- 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"] }] }); }
2365
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3NavItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2366
+ 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"] }] }); }
2367
2367
  }
2368
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3NavItemComponent, decorators: [{
2368
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3NavItemComponent, decorators: [{
2369
2369
  type: Component,
2370
2370
  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"] }]
2371
- }], ctorParameters: () => [] });
2371
+ }], 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', { ...{
2372
+ read: (ElementRef),
2373
+ }, isSignal: true }] }] } });
2372
2374
 
2373
2375
  class C3MenuModule {
2374
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3MenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2375
- 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] }); }
2376
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3MenuModule, imports: [CommonModule, RouterModule, MatRippleModule] }); }
2376
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3MenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2377
+ 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] }); }
2378
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3MenuModule, imports: [CommonModule, RouterModule, MatRippleModule] }); }
2377
2379
  }
2378
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: C3MenuModule, decorators: [{
2380
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3MenuModule, decorators: [{
2379
2381
  type: NgModule,
2380
2382
  args: [{
2381
2383
  imports: [CommonModule, RouterModule, MatRippleModule],