c3-components 0.11.7 → 0.11.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/c3-components.mjs +182 -208
- package/fesm2022/c3-components.mjs.map +1 -1
- package/lib/c3-dialog/services/c3-dialog.service.d.ts +0 -1
- package/lib/c3-dropdown/components/c3-dropdown.component.d.ts +9 -11
- package/lib/c3-dropdown/directives/c3-dropdown.trigger.d.ts +7 -11
- package/lib/c3-file-displayer/c3-file-display-card/c3-file-display-card.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c3-components.mjs","sources":["../../../projects/c3-components/src/lib/c3-dropdown/components/c3-dropdown.component.ts","../../../projects/c3-components/src/lib/c3-dropdown/directives/c3-dropdown.trigger.ts","../../../projects/c3-components/src/lib/c3-dropdown/c3-dropdown.module.ts","../../../projects/c3-components/src/lib/c3-dialog/components/c3-dialog-alert.component.ts","../../../projects/c3-components/src/lib/c3-dialog/components/c3-dialog-confirm.component.ts","../../../projects/c3-components/src/lib/c3-dialog/components/c3-dialog-prompt.component.ts","../../../projects/c3-components/src/lib/c3-dialog/components/c3-dialog-embed-child.component.ts","../../../projects/c3-components/src/lib/c3-dialog/components/c3-dialog-template/c3-dialog-template.component.ts","../../../projects/c3-components/src/lib/c3-dialog/components/c3-dialog-template/c3-dialog-template.component.html","../../../projects/c3-components/src/lib/c3-dialog/services/c3-dialog.service.ts","../../../projects/c3-components/src/lib/c3-dialog/directives/c3-open-dialog.directive.ts","../../../projects/c3-components/src/lib/c3-dialog/c3-dialog.module.ts","../../../projects/c3-components/src/lib/c3-file-viewer/directives/full-screen.directive.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-actions/c3-file-viewer-actions.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-actions/c3-file-viewer-actions.component.html","../../../projects/c3-components/src/lib/c3-safe-url/pipes/c3-safe-url.pipe.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-image/c3-file-viewer-image.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-image/c3-file-viewer-image.component.html","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-pdf/c3-file-viewer-pdf.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-pdf/c3-file-viewer-pdf.component.html","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-video/c3-file-viewer-video.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-video/c3-file-viewer-video.component.html","../../../projects/c3-components/src/lib/c3-file-viewer/components/public/c3-file-viewer/c3-file-viewer.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/public/c3-file-viewer/c3-file-viewer.component.html","../../../projects/c3-components/src/lib/c3-file-viewer/consts/default.config.ts","../../../projects/c3-components/src/lib/c3-file-viewer/models/custom-file-event.model.ts","../../../projects/c3-components/src/lib/c3-file-viewer/models/file-viewer.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/c3-file-viewer.module.ts","../../../projects/c3-components/src/lib/c3-file-displayer/c3-file-display-card/c3-file-display-card.component.ts","../../../projects/c3-components/src/lib/c3-file-displayer/c3-file-display-card/c3-file-display-card.component.html","../../../projects/c3-components/src/lib/c3-file-displayer/c3-file-display-grid/c3-file-display-grid.component.ts","../../../projects/c3-components/src/lib/c3-file-displayer/c3-file-display-grid/c3-file-display-grid.component.html","../../../projects/c3-components/src/lib/c3-file-displayer/c3-file-display-icon/c3-file-display-icon.component.ts","../../../projects/c3-components/src/lib/c3-file-displayer/c3-file-display-icon/c3-file-display-icon.component.html","../../../projects/c3-components/src/lib/c3-prevent-event/c3-prevent-click-event.directive.ts","../../../projects/c3-components/src/lib/c3-prevent-event/c3-prevent-keyboard-event.directive.ts","../../../projects/c3-components/src/lib/c3-prevent-event/c3-stop-click-propagation.directive.ts","../../../projects/c3-components/src/lib/c3-file-displayer/c3-file-display-list/c3-file-display-list.component.ts","../../../projects/c3-components/src/lib/c3-file-displayer/c3-file-display-list/c3-file-display-list.component.html","../../../projects/c3-components/src/lib/c3-file-displayer/c3-file-displayer.module.ts","../../../projects/c3-components/src/lib/c3-expansion/components/c3-expansion-header/c3-expansion-header.component.ts","../../../projects/c3-components/src/lib/c3-expansion/components/c3-expansion-header/c3-expansion-header.component.html","../../../projects/c3-components/src/lib/c3-auto-animate/c3-auto-animate.directive.ts","../../../projects/c3-components/src/lib/c3-expansion/components/c3-expansion/c3-expansion.component.ts","../../../projects/c3-components/src/lib/c3-expansion/components/c3-expansion/c3-expansion.component.html","../../../projects/c3-components/src/lib/c3-expansion/c3-expansion.module.ts","../../../projects/c3-components/src/lib/c3-select-on-focus/c3-select-on-focus.directive.ts","../../../projects/c3-components/src/lib/c3-signals/c3-boolean-signal.ts","../../../projects/c3-components/src/lib/c3-tree/c3-tree.component.ts","../../../projects/c3-components/src/lib/c3-tree/c3-tree.component.html","../../../projects/c3-components/src/lib/c3-flowing-menu/components/c3-flowing-menu-item/c3-flowing-menu-item.component.ts","../../../projects/c3-components/src/lib/c3-flowing-menu/components/c3-flowing-menu-item/c3-flowing-menu-item.component.html","../../../projects/c3-components/src/lib/c3-flowing-menu/components/c3-flowing-menu/c3-flowing-menu.component.ts","../../../projects/c3-components/src/lib/c3-flowing-menu/components/c3-flowing-menu/c3-flowing-menu.component.html","../../../projects/c3-components/src/lib/c3-flowing-menu/components/c3-flowing-menu-item-content/c3-flowing-menu-item-content.component.ts","../../../projects/c3-components/src/lib/c3-flowing-menu/components/c3-flowing-menu-item-content/c3-flowing-menu-item-content.component.html","../../../projects/c3-components/src/lib/c3-flowing-menu/c3-flowing-menu.module.ts","../../../projects/c3-components/src/lib/c3-trace-card/components/c3-trace-card/c3-trace-card.component.ts","../../../projects/c3-components/src/lib/c3-trace-card/components/c3-trace-card/c3-trace-card.component.html","../../../projects/c3-components/src/lib/c3-trace-card/components/c3-trace-card-title/c3-trace-card-title.component.ts","../../../projects/c3-components/src/lib/c3-trace-card/components/c3-trace-card-title/c3-trace-card-title.component.html","../../../projects/c3-components/src/lib/c3-trace-card/components/c3-trace-card-content/c3-trace-card-content.component.ts","../../../projects/c3-components/src/lib/c3-trace-card/components/c3-trace-card-content/c3-trace-card-content.component.html","../../../projects/c3-components/src/lib/c3-trace-card/directives/align-left.directive.ts","../../../projects/c3-components/src/lib/c3-trace-card/directives/align-right.directive.ts","../../../projects/c3-components/src/lib/c3-trace-card/c3-trace-card.module.ts","../../../projects/c3-components/src/lib/c3-menu/services/c3-menu.service.ts","../../../projects/c3-components/src/lib/c3-menu/components/c3-menu/c3-menu.component.ts","../../../projects/c3-components/src/lib/c3-menu/components/c3-menu/c3-menu.component.html","../../../projects/c3-components/src/lib/c3-menu/components/c3-nav-item/c3-nav-item.component.ts","../../../projects/c3-components/src/lib/c3-menu/components/c3-nav-item/c3-nav-item.component.html","../../../projects/c3-components/src/lib/c3-menu/c3-menu.module.ts","../../../projects/c3-components/src/public-api.ts","../../../projects/c3-components/src/c3-components.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n Component,\n TemplateRef,\n ViewChild,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\n@Component({\n selector: 'c3-dropdown',\n template: `\n <ng-template>\n <div class=\"c3-dropdown-panel\" [ngClass]=\"dropdownClass\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n `,\n standalone: false,\n})\nexport class C3DropdownComponent implements OnChanges {\n @ViewChild(TemplateRef) template!: TemplateRef<any>;\n\n /** Classes to be added to the container of the content. Supports the same syntax as `ngClass`. */\n @Input()\n dropdownClass: string | string[] | Set<string> | { [key: string]: any } = '';\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['dropdownClass']) {\n this._markForCheck();\n }\n }\n\n _markForCheck(): void {\n this._changeDetectorRef.markForCheck();\n }\n}\n","import {\n Directive,\n forwardRef,\n ElementRef,\n ViewContainerRef,\n Input,\n OnDestroy,\n HostListener,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n Overlay,\n OverlayRef,\n OverlayConfig,\n ConnectedPosition,\n} from '@angular/cdk/overlay';\nimport { C3DropdownComponent } from '../components/c3-dropdown.component';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { merge, Subject, Subscription, takeUntil } from 'rxjs';\n\nexport const MAT_DROPDOWN_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => C3DropdownTrigger),\n multi: true,\n};\n\n/**\n * @description The C3DropdownTrigger directive is used to display or hide a dropdown menu\n * C3DropdownComponent when an item is clicked.\n * @selector [c3Dropdown]\n * @exportAs c3DropdownTrigger\n * @input c3Dropdown - A reference to an instance of C3DropdownComponent.\n * @input c3DropdownDisabled - A boolean indicating whether the directive should be disabled.\n * @input c3DropdownClass - A string, an array of strings, a set of strings or a\n * object representing the CSS classes to be applied to the dropdown menu.\n */\n@Directive({\n selector: '[c3Dropdown]',\n exportAs: 'c3DropdownTrigger',\n providers: [MAT_DROPDOWN_VALUE_ACCESSOR],\n standalone: false,\n})\nexport class C3DropdownTrigger implements OnChanges, OnDestroy {\n private overlayRef?: OverlayRef | null;\n private _closingActionsSubscription: Subscription = Subscription.EMPTY;\n private _destroyed = new Subject<void>();\n\n private _dropdownClass:\n | string\n | string[]\n | Set<string>\n | { [key: string]: any } = '';\n\n private _dropdownDisabled: boolean = false;\n\n /** The dropdown menu instance */\n @Input('c3Dropdown')\n dropdown?: C3DropdownComponent;\n\n /** Whether the dropdown is disabled. */\n @Input('c3DropdownDisabled')\n get dropdownDisabled(): boolean {\n return this._dropdownDisabled;\n }\n set dropdownDisabled(value: boolean) {\n this._dropdownDisabled = coerceBooleanProperty(value);\n }\n\n /** Classes to be passed to the dropdown menu. Supports the same syntax as `ngClass`. */\n @Input('c3DropdownClass')\n dropdownClass: string | string[] | Set<string> | { [key: string]: any } = '';\n\n constructor(\n private _element: ElementRef<HTMLElement>,\n private _overlay: Overlay,\n private _viewContainerRef: ViewContainerRef\n ) {}\n\n @HostListener('click')\n onClick() {\n this.show();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['dropdownClass'] && this.dropdown) {\n this.dropdown.dropdownClass = this._dropdownClass;\n this.dropdown._markForCheck();\n }\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n this._closingActionsSubscription.unsubscribe();\n this.close();\n }\n\n public show(): void {\n if (!this.dropdown) return;\n\n const overlayRef = this._overlay.create(this._getOverlayConfig());\n const portal = new TemplatePortal(\n this.dropdown.template,\n this._viewContainerRef\n );\n overlayRef.attach(portal);\n\n this.overlayRef = overlayRef;\n\n this._closingActionsSubscription = this._menuClosingActions().subscribe(\n () => this.close()\n );\n }\n\n public close(): void {\n if (this.overlayRef && this.overlayRef.hasAttached())\n this.overlayRef.detach();\n }\n\n private _getOverlayConfig(): OverlayConfig {\n const belowPosition: ConnectedPosition = {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n };\n const abovePosition: ConnectedPosition = {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n\n // The overlay edge connected to the trigger should have squared corners, while\n // the opposite end has rounded corners. We apply a CSS class to swap the\n // border-radius based on the overlay position.\n panelClass: 'mat-autocomplete-panel-above',\n };\n\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(this._element)\n .withLockedPosition()\n .withPositions([belowPosition, abovePosition]);\n\n return new OverlayConfig({\n positionStrategy,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n hasBackdrop: true,\n });\n }\n\n /** Returns a stream that emits whenever an action that should close the menu occurs. */\n private _menuClosingActions() {\n const backdrop = this.overlayRef!.backdropClick();\n const detachments = this.overlayRef!.detachments();\n\n return merge(backdrop, detachments).pipe(takeUntil(this._destroyed));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { C3DropdownComponent } from './components/c3-dropdown.component';\nimport { C3DropdownTrigger } from './directives/c3-dropdown.trigger';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\n@NgModule({\n imports: [CommonModule, OverlayModule],\n declarations: [C3DropdownComponent, C3DropdownTrigger],\n exports: [C3DropdownComponent, C3DropdownTrigger],\n})\nexport class C3DropdownModule {}\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nexport interface AlertConfig {\n text: string;\n width?: string;\n acceptText?: string;\n}\n\n@Component({\n selector: 'AlertDialogComponent',\n template: `\n <mat-dialog-content>\n <div [innerHtml]=\"data.text\"></div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button [mat-dialog-close]=\"true\">\n {{ data.acceptText || 'ok' }}\n </button>\n </mat-dialog-actions>\n `,\n standalone: false\n})\nexport class C3AlertDialogComponent {\n constructor(\n public dialogRef: MatDialogRef<C3AlertDialogComponent>,\n @Inject(MAT_DIALOG_DATA)\n public data: AlertConfig\n ) {}\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n}\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nexport interface ConfirmConfig {\r\n text: string;\r\n placeholder?: string;\r\n reject?: {\r\n color?: string;\r\n text?: string;\r\n };\r\n accept?: {\r\n color?: string;\r\n text: string;\r\n };\r\n width?: string;\r\n}\r\n\r\n@Component({\n selector: 'ConfirmDialogComponent',\n template: `\r\n <mat-dialog-content>\r\n <div [innerHtml]=\"data.text\"></div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions class=\"flex flex-row justify-end items-center\">\r\n <button mat-button mat-dialog-close [color]=\"data.reject?.color\">\r\n {{ data.reject?.text }}\r\n </button>\r\n <button mat-button [color]=\"data.accept?.color\" [mat-dialog-close]=\"true\">\r\n {{ data.accept?.text }}\r\n </button>\r\n </mat-dialog-actions>\r\n `,\n standalone: false\n})\r\nexport class ConfirmDialogComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef<ConfirmDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: ConfirmConfig\r\n ) {}\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { FormBuilder, FormControl, ValidatorFn } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nexport interface PromptConfig {\r\n text: string;\r\n defaultValue?: string;\r\n placeholder?: string;\r\n multiline?: boolean;\r\n validators?: ValidatorFn | ValidatorFn[];\r\n required?: boolean;\r\n reject?: {\r\n color: string;\r\n text: string;\r\n };\r\n accept?: {\r\n color: string;\r\n text: string;\r\n };\r\n width?: string;\r\n maxWidth?: string;\r\n}\r\n\r\n@Component({\n selector: 'PrompDialogComponent',\n template: `\r\n <div mat-dialog-title>{{ data.text }}</div>\r\n <mat-dialog-content>\r\n <mat-form-field>\r\n <mat-label *ngIf=\"data.placeholder\">{{ data.placeholder }}</mat-label>\r\n <input\r\n *ngIf=\"!data.multiline\"\r\n matInput\r\n [formControl]=\"result\"\r\n (keydown.enter)=\"dialogRef.close(result.value)\"\r\n />\r\n <textarea\r\n *ngIf=\"data.multiline\"\r\n matInput\r\n [formControl]=\"result\"\r\n cdkTextareaAutosize\r\n ></textarea>\r\n </mat-form-field>\r\n </mat-dialog-content>\r\n <mat-dialog-actions align=\"center\">\r\n <button mat-raised-button mat-dialog-close [class]=\"data.reject?.color\">\r\n {{ data.reject?.text }}\r\n </button>\r\n <button\r\n mat-raised-button\r\n [disabled]=\"result.invalid || (data.required && !result.value)\"\r\n [class]=\"data.accept?.color\"\r\n [mat-dialog-close]=\"result.value\"\r\n >\r\n {{ data.accept?.text }}\r\n </button>\r\n </mat-dialog-actions>\r\n `,\n styles: [\n `\r\n mat-form-field {\r\n width: 100%;\r\n }\r\n `,\n ],\n standalone: false\n})\r\nexport class C3PromptDialogComponent {\r\n result: FormControl;\r\n constructor(\r\n public dialogRef: MatDialogRef<C3PromptDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: PromptConfig,\r\n private _fb: FormBuilder\r\n ) {\r\n this.result = this._fb.control(data.defaultValue, data.validators);\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","import { ComponentType } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n Inject,\n Signal,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n signal,\n} from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'C3DialogEmbedChildComponent',\n template: `\n <div [class]=\"'dialog-content-container ' + (data.classContainer || '')\">\n @if (data.toolbar) {\n <mat-toolbar\n [color]=\"data.toolbar.color || 'default'\"\n class=\"py-1\"\n >\n <span>{{ data.toolbar.title }}</span>\n <span class=\"spacer\"></span>\n <button\n *ngIf=\"data.toolbar.closeBtn\"\n mat-icon-button\n mat-dialog-close\n color=\"{{ data.toolbar.closeColor }}\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </mat-toolbar>\n }\n\n <div [class]=\"'dialog-content ' + (data.classContent || '')\">\n <!-- Si templateRef est présent, on l'affiche directement,\n sinon on laisse la place au composant dynamique -->\n @if (data.templateRef) {\n <ng-container\n *ngTemplateOutlet=\"data.templateRef\"\n ></ng-container>\n }\n @else {\n <ng-template #target></ng-template>\n }\n </div>\n\n @if (data.actions && data.actions.length > 0) {\n <div [class]=\"'dialog-actions ' + (data.classActions || '')\">\n @for (action of data.actions; track action.label) {\n @switch (action.apperance) {\n @case ('basic') {\n <button\n [class]=\"action.class\"\n (click)=\"action.action()\"\n >\n {{ action.label }}\n </button>\n }\n @case ('raised') {\n <button\n mat-raised-button\n [class]=\"action.class\"\n (click)=\"action.action()\"\n >\n {{ action.label }}\n </button>\n }\n @case ('stroked') {\n <button\n mat-stroked-button\n [class]=\"action.class\"\n (click)=\"action.action()\"\n >\n {{ action.label }}\n </button>\n }\n @case ('flat') {\n <button\n mat-flat-button\n [class]=\"action.class\"\n (click)=\"action.action()\"\n >\n {{ action.label }}\n </button>\n }\n @default {\n <button\n mat-button\n [class]=\"action.class\"\n (click)=\"action.action()\"\n >\n {{ action.label }}\n </button>\n }\n }\n }\n </div>\n }\n </div>\n `,\n styles: [\n `\n .dialog-content-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n padding: 1rem;\n overflow: auto;\n\n .dialog-content {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: auto;\n flex-grow: 1;\n }\n .mat-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-radius: 0.25rem;\n span {\n color: inherit;\n }\n }\n .spacer {\n flex: 1 1 auto;\n min-width: 16px;\n }\n }\n\n .dialog-actions {\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n }\n `,\n ],\n standalone: false,\n})\nexport class C3DialogEmbedChildComponent<C> implements AfterViewInit {\n @ViewChild('target', { read: ViewContainerRef })\n target!: ViewContainerRef;\n\n // On utilise un signal pour stocker la référence du composant créé\n createdComponent = signal<ComponentRef<C> | null>(null);\n\n constructor(\n public dialogRef: MatDialogRef<C3DialogEmbedChildComponent<C>>,\n @Inject(MAT_DIALOG_DATA)\n public data: {\n // Soit component, soit templateRef, ou les deux (mais on utilise en priorité un templateRef si fourni)\n component?: ComponentType<C>;\n templateRef?: TemplateRef<any>;\n\n // Pour les inputs du composant\n inputs?: Partial<Record<keyof C, unknown>>;\n\n // Classes CSS\n classActions?: string;\n classContainer?: string;\n classContent?: string;\n\n // Toolbar\n toolbar?: {\n title: string;\n closeBtn?: boolean;\n closeColor?: string;\n color?: string;\n };\n\n // Boutons d’action\n actions?: {\n label: string;\n apperance?: 'basic' | 'raised' | 'stroked' | 'flat';\n class?: string;\n action: () => void;\n }[];\n },\n private _cdr: ChangeDetectorRef\n ) { }\n\n ngAfterViewInit() {\n // Si on a un composant, on le crée dynamiquement\n if (this.data.component && !this.data.templateRef) {\n const compRef = this.target.createComponent(this.data.component);\n this.createdComponent.set(compRef);\n\n // Injecter les inputs dans le composant\n if (this.data.inputs) {\n this._setInputs(\n this.data.component,\n this.data.inputs,\n compRef\n );\n }\n }\n // Si on a juste un templateRef, on ne crée pas de composant :\n // l’affichage est déjà géré dans le template via <ng-template *ngTemplateOutlet=\"...\">\n else if (this.data.templateRef) {\n this.createdComponent.set(null);\n }\n // Si on n’a rien, on ferme le dialog\n else {\n this.dialogRef.close(false);\n }\n\n // Déclenche manuellement le cycle de détection pour actualiser l'affichage\n this._cdr.detectChanges();\n }\n\n /**\n * Retourne la référence du composant créé (s’il y en a un),\n * utile pour le service ou l’appelant.\n */\n public createdComponentInstance(): ComponentRef<C> | null {\n return this.createdComponent();\n }\n\n // Récupère la liste des @Input déclarés sur le composant\n private _getInputProperties<C>(component: Type<C>) {\n const inputs: string[] = [];\n const declaredInputs: Partial<Record<keyof C, string>> =\n component.prototype?.constructor['ɵcmp']?.declaredInputs;\n for (const input of Object.keys(declaredInputs)) {\n inputs.push(input);\n }\n return inputs;\n }\n\n // Assigne les inputs passés en configuration au composant dynamique\n private _setInputs<C>(\n component: Type<C>,\n inputs: Partial<Record<keyof C, unknown>>,\n componentRef: ComponentRef<C>\n ) {\n const inputProperties = this._getInputProperties(component);\n for (const key of inputProperties) {\n if (inputs[key as keyof C] !== undefined) {\n componentRef.setInput(key, inputs[key as keyof C]);\n }\n }\n }\n}\n","import { Component, signal, TemplateRef, viewChild } from '@angular/core';\nimport { C3CreateDialogFromComponentResult } from '../../services/c3-dialog.service';\n\n@Component({\n selector: 'c3-dialog-template',\n standalone: false,\n templateUrl: './c3-dialog-template.component.html',\n styleUrl: './c3-dialog-template.component.scss',\n})\nexport class C3DialogTemplateComponent {\n public readonly templateRef = viewChild('internalTemplate', {\n read: TemplateRef,\n });\n\n public readonly dialogRef = signal<C3CreateDialogFromComponentResult<unknown> | null>(null)\n}\n","<ng-template #internalTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import {\n ComponentRef,\n Injectable,\n Injector,\n TemplateRef,\n effect,\n inject,\n} from '@angular/core';\nimport {\n MatDialog,\n MatDialogConfig,\n MatDialogContainer,\n MatDialogRef,\n MatDialogState,\n} from '@angular/material/dialog';\nimport {\n ConfirmConfig,\n ConfirmDialogComponent,\n} from '../components/c3-dialog-confirm.component';\nimport {\n PromptConfig,\n C3PromptDialogComponent,\n} from '../components/c3-dialog-prompt.component';\nimport { ComponentType } from '@angular/cdk/portal';\nimport 'reflect-metadata';\nimport { C3DialogEmbedChildComponent } from '../components/c3-dialog-embed-child.component';\nimport { Observable, Subject } from 'rxjs';\nimport {\n AlertConfig,\n C3AlertDialogComponent,\n} from '../components/c3-dialog-alert.component';\n\nexport type C3CreateDialogFromComponentConfig<C> = MatDialogConfig<\n Partial<Record<keyof C, unknown>>\n> & {\n component: ComponentType<C>;\n toolbar?: {\n title: string;\n closeBtn?: boolean;\n closeColor?: string;\n color?: string;\n };\n classActions?: string;\n classContainer?: string;\n classContent?: string;\n actions?: {\n label: string;\n class?: string;\n apperance?: 'basic' | 'raised' | 'stroked' | 'flat';\n action: () => void;\n }[];\n};\n\nexport type C3CreateDialogFromComponentResult<C> = {\n _containerInstance: MatDialogContainer;\n rootComponentRef: ComponentRef<C3DialogEmbedChildComponent<C>> | null;\n rootComponentInstance: C3DialogEmbedChildComponent<C>;\n componentRef: ComponentRef<C> | null;\n componentInstance: C | undefined;\n id: string;\n disableClose: boolean;\n close: (dialogResult?: C) => void;\n afterClosed: () => Observable<C | null>;\n afterOpened: () => Observable<void>;\n beforeClosed: () => Observable<C | null>;\n backdropClick: () => Observable<MouseEvent>;\n getState: () => MatDialogState;\n keydownEvents: () => Observable<KeyboardEvent>;\n updateSize: () => void;\n updatePosition: () => void;\n addPanelClass: (className: string) => void;\n removePanelClass: (className: string) => void;\n afterComponentMounted: () => Observable<C3CreateDialogFromComponentResult<C>>;\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class C3DialogService {\n readonly #dialog = inject(MatDialog);\n private readonly _injector = inject(Injector);\n\n /**\n * Opens a confirm dialog and returns a promise that resolves to a boolean indicating whether the user accepted or rejected the confirmation.\n *\n * @param {ConfirmConfig} data Configuration options for the confirm dialog. See ConfirmConfig below.\n * @returns {C3ExtendedPromise<boolean>} A promise that resolves to `true` if the user accepted the confirmation, and `false` otherwise.\n */\n public confirm(data: ConfirmConfig) {\n const dialogRef = this.#dialog.open(ConfirmDialogComponent, {\n width: data.width || '250px',\n data: {\n text: data.text,\n reject: {\n color:\n data.reject && data.reject.color ? data.reject.color : undefined,\n text: (data.reject && data.reject.text) || 'Annuler',\n },\n accept: {\n color: (data.accept && data.accept.color) || 'primary',\n text: (data.accept && data.accept.text) || 'Accepter',\n },\n },\n });\n\n return new Promise<boolean>((resolve, reject) => {\n dialogRef.afterClosed().subscribe({\n next: (value) => {\n resolve(value);\n },\n error: reject,\n });\n });\n }\n\n /**\n * Opens a prompt dialog and returns a promise that resolves to the value entered by the user, or `false` if the user cancelled the prompt.\n *\n * @param {PromptConfig} data Configuration options for the prompt dialog. See PromptConfig below.\n * @returns {C3ExtendedPromise<false | T>} A promise that resolves to the value entered by the user, or `false` if the user cancelled the prompt.\n */\n public prompt(data: PromptConfig): Promise<false | string> {\n const dialogRef = this.#dialog.open<C3PromptDialogComponent, any, string>(\n C3PromptDialogComponent,\n {\n width: data.width || '250px',\n maxWidth: data.maxWidth || '100vw',\n data: {\n text: data.text,\n defaultValue: data.defaultValue,\n placeholder: data.placeholder,\n multiline: data.multiline,\n validators: data.validators,\n required: data.required,\n reject: {\n color:\n data.reject && data.reject.color ? data.reject.color : undefined,\n text: (data.reject && data.reject.text) || 'Annuler',\n },\n accept: {\n color: (data.accept && data.accept.color) || 'primary',\n text: (data.accept && data.accept.text) || 'Accepter',\n },\n },\n }\n );\n\n return new Promise<string | false>((resolve, reject) => {\n dialogRef.afterClosed().subscribe({\n next: (value) => {\n if (value === undefined) {\n resolve(false);\n } else {\n resolve(value);\n }\n },\n error: reject,\n });\n });\n }\n\n /**\n * Opens a dialog with the provided component and inputs.\n * @param {C3CreateDialogFromComponentConfig<C>} config Configuration options for the dialog. See MatDialogConfig below.\n * @returns {MatDialogRef<C> & {component: ComponentRef<C> | undefined}} The dialog reference.\n */\n createDialogFromComponent<C>({\n component,\n toolbar,\n data,\n classContainer,\n classContent,\n classActions,\n actions,\n ...config\n }: C3CreateDialogFromComponentConfig<C>) {\n if (!component) throw new Error('No component provided');\n\n const dialog = this.#dialog.open(C3DialogEmbedChildComponent<C>, {\n ...config,\n data: {\n component,\n toolbar,\n inputs: data,\n classActions,\n classContainer,\n classContent,\n actions\n },\n });\n\n return this.createC3DialogResult(dialog);\n }\n\n /**\n * Ouvre un dialog à partir d'un TemplateRef.\n * @param templateRef Le TemplateRef à afficher dans la boîte de dialogue.\n * @param config (optionnel) Configuration pour le MatDialog (dimensions, position, etc.).\n */\n public createDialogFromTemplate(\n templateRef: TemplateRef<any>,\n config?: MatDialogConfig\n ): C3CreateDialogFromComponentResult<unknown> {\n // On ouvre le même composant hôte (C3DialogEmbedChildComponent)\n // mais on lui passe un paramètre templateRef plutôt qu'un component.\n const dialogRef = this.#dialog.open(C3DialogEmbedChildComponent<unknown>, {\n ...config,\n data: {\n templateRef,\n },\n });\n\n // On réutilise la méthode générique pour envelopper le MatDialogRef\n return this.createC3DialogResult(dialogRef);\n }\n\n public alert(text: string, data?: AlertConfig) {\n const dialogRef = this.#dialog.open(C3AlertDialogComponent, {\n data: {\n ...data,\n text,\n },\n });\n\n return dialogRef.afterClosed();\n }\n\n private createC3DialogResult<C>(\n dialog: MatDialogRef<C3DialogEmbedChildComponent<C>>\n ) {\n const _afterComponentMounted = new Subject<\n C3CreateDialogFromComponentResult<C>\n >();\n\n const result: C3CreateDialogFromComponentResult<C> = {\n _containerInstance: dialog._containerInstance,\n rootComponentRef: dialog.componentRef,\n rootComponentInstance: dialog.componentInstance,\n componentRef: dialog.componentInstance.createdComponent(),\n componentInstance: dialog.componentInstance.createdComponent()?.instance,\n id: dialog.id,\n disableClose: dialog.disableClose || false,\n close: dialog.close.bind(dialog),\n afterClosed: dialog.afterClosed.bind(dialog),\n afterOpened: dialog.afterOpened.bind(dialog),\n beforeClosed: dialog.beforeClosed.bind(dialog),\n backdropClick: dialog.backdropClick.bind(dialog),\n getState: dialog.getState.bind(dialog),\n keydownEvents: dialog.keydownEvents.bind(dialog),\n updateSize: dialog.updateSize.bind(dialog),\n updatePosition: dialog.updatePosition.bind(dialog),\n addPanelClass: dialog.addPanelClass.bind(dialog),\n removePanelClass: dialog.removePanelClass.bind(dialog),\n afterComponentMounted: () => _afterComponentMounted.asObservable(),\n };\n\n effect(\n () => {\n if (dialog.componentInstance.createdComponent()) {\n result.componentRef = dialog.componentInstance.createdComponent();\n result.componentInstance =\n dialog.componentInstance.createdComponent()?.instance;\n _afterComponentMounted.next(result);\n }\n },\n {\n injector: this._injector,\n }\n );\n\n return result;\n }\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { C3DialogTemplateComponent } from '../components/c3-dialog-template/c3-dialog-template.component';\nimport { C3DialogService } from '../services/c3-dialog.service';\nimport { MatDialogConfig } from '@angular/material/dialog';\n\n@Directive({\n selector: '[c3-dialog]',\n standalone: false,\n host: {\n '(click)': 'openDialog($event)'\n }\n})\nexport class C3OpenDialogDirective {\n public readonly template = input<C3DialogTemplateComponent>(undefined, {\n alias: 'c3-dialog'\n });\n public readonly config = input<MatDialogConfig>(undefined, {\n alias: 'c3-dialog-config'\n });\n\n private readonly _dialog = inject(C3DialogService)\n\n\n private openDialog($event: MouseEvent) {\n if (!this.template()?.templateRef()) return;\n\n const dialog = this._dialog.createDialogFromTemplate(this.template()!.templateRef()!, this.config())\n this.template()?.dialogRef.set(dialog)\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { ConfirmDialogComponent } from './components/c3-dialog-confirm.component';\nimport { C3DialogEmbedChildComponent } from './components/c3-dialog-embed-child.component';\nimport { C3PromptDialogComponent } from './components/c3-dialog-prompt.component';\nimport { C3DialogService } from './services/c3-dialog.service';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { C3AlertDialogComponent } from './components/c3-dialog-alert.component';\nimport { C3DialogTemplateComponent } from './components/c3-dialog-template/c3-dialog-template.component';\nimport { C3OpenDialogDirective } from './directives/c3-open-dialog.directive';\n\n@NgModule({\n declarations: [\n C3AlertDialogComponent,\n ConfirmDialogComponent,\n C3PromptDialogComponent,\n C3DialogEmbedChildComponent,\n C3DialogTemplateComponent,\n C3OpenDialogDirective,\n ],\n imports: [\n CommonModule,\n FormsModule,\n MatButtonModule,\n MatDialogModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatToolbarModule,\n ReactiveFormsModule,\n ],\n exports: [\n C3DialogTemplateComponent,\n C3OpenDialogDirective\n ],\n providers: [C3DialogService],\n})\nexport class C3DialogModule { }\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { BehaviorSubject, debounceTime, filter, skip } from 'rxjs';\n\n@Directive({\n selector: '[C3FullScreen], [c3-full-screen]',\n standalone: false\n})\nexport class FullScreenDirective {\n @Input('c3Screenfull')\n set fullscreenState(value: Boolean | null) {\n this._fullscreenState.next(value?.valueOf() || false);\n }\n\n @Input('c3-full-screen')\n set fullscreenStateSetter(value: Boolean | null) {\n this.fullscreenState = value;\n }\n\n private _fullscreenState = new BehaviorSubject(false);\n\n constructor(private el: ElementRef) {\n this._fullscreenState\n .pipe(\n filter((value) => value !== null),\n skip(2),\n debounceTime(100)\n )\n .subscribe(() => {\n this.defineState();\n });\n }\n\n private defineState() {\n if (this._fullscreenState.getValue()) {\n const element: any = this.el.nativeElement;\n\n const requestMethod =\n element.requestFullscreen ||\n element.webkitRequestFullScreen ||\n element.mozRequestFullScreen ||\n element.msRequestFullScreen;\n\n if (requestMethod) {\n // Native full screen.\n requestMethod.call(element);\n } else {\n console.log('FullScreen Request Method Not Supported on this browser.');\n }\n } else {\n const element: any = document;\n\n const requestMethod =\n element.cancelFullscreen ||\n element.webkitExitFullscreen ||\n element.webkitCancelFullScreen ||\n element.mozCancelFullScreen ||\n element.msExitFullScreen;\n\n if (requestMethod) {\n // Native Cancel full screen.\n requestMethod.call(element);\n } else {\n console.log(\n 'FullScreen Cancel Request Method Not Supported on this browser.'\n );\n }\n }\n }\n}\n","import { Component, Host, Input } from '@angular/core';\nimport { C3FileViewer } from '../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer-actions',\n templateUrl: './c3-file-viewer-actions.component.html',\n standalone: false\n})\nexport class C3FileViewerActionsComponent {\n @Input()\n fileViewer!: C3FileViewer;\n\n get config() {\n return this.fileViewer.config;\n }\n}\n","<div class=\"nav-button-container\">\n <button\n *ngIf=\"config.btnShow?.prev\"\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.previousImage($event)\"\n [disabled]=\"fileViewer.currentIndex === 0\"\n >\n <span\n *ngIf=\"config.btnIcons?.prev?.classes\"\n [class]=\"config.btnIcons?.prev?.classes\"\n ></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.prev?.text\"\n (click)=\"fileViewer.previousImage($event)\"\n >\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.prev?.text }}</span>\n </a>\n <button\n *ngIf=\"config.btnShow?.next\"\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.nextImage($event)\"\n [disabled]=\"fileViewer.currentIndex === fileViewer.files.length - 1\"\n >\n <span\n *ngIf=\"config.btnIcons?.next?.classes\"\n [class]=\"config.btnIcons?.next?.classes\"\n ></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.next?.text\"\n (click)=\"fileViewer.nextImage($event)\"\n >\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.next?.text }}</span>\n </a>\n</div>\n\n<!-- Button Container -->\n<div\n class=\"btn-container\"\n [class]=\"config.btnContainerClass\"\n *ngIf=\"fileViewer.currentFile.type.startsWith('image')\"\n>\n <!-- Rotate Counter Clockwise -->\n <ng-container *ngIf=\"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 </ng-container>\n\n <!-- Rotate Clockwise -->\n <ng-container *ngIf=\"config.btnShow?.rotateClockwise\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.rotateClockwise()\"\n *ngIf=\"config.btnIcons?.rotateClockwise?.classes\"\n >\n <span [class]=\"config.btnIcons?.rotateClockwise?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.rotateClockwise?.text\"\n (click)=\"fileViewer.rotateClockwise()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.rotateClockwise?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Zoom Out -->\n <ng-container *ngIf=\"config.btnShow?.zoomOut\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.zoomOut()\"\n *ngIf=\"config.btnIcons?.zoomOut?.classes\"\n >\n <span [class]=\"config.btnIcons?.zoomOut?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.zoomOut?.text\"\n (click)=\"fileViewer.zoomOut()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.zoomOut?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Zoom In -->\n <ng-container *ngIf=\"config.btnShow?.zoomIn\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.zoomIn()\"\n *ngIf=\"config.btnIcons?.zoomIn?.classes\"\n >\n <span [class]=\"config.btnIcons?.zoomIn?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.zoomIn?.text\"\n (click)=\"fileViewer.zoomIn()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.zoomIn?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Fullscreen -->\n <ng-container *ngIf=\"config.allowFullscreen\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.toggleFullscreen()\"\n *ngIf=\"config.btnIcons?.fullscreen?.classes\"\n >\n <span [class]=\"config.btnIcons?.fullscreen?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.fullscreen?.text\"\n (click)=\"fileViewer.toggleFullscreen()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.fullscreen?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Reset -->\n <ng-container *ngIf=\"config.btnShow?.reset\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.reset()\"\n *ngIf=\"config.btnIcons?.reset?.classes\"\n >\n <span [class]=\"config.btnIcons?.reset?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.reset?.text\"\n (click)=\"fileViewer.reset()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.reset?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Custom Buttons -->\n <ng-container *ngFor=\"let cBtn of config.customBtns\">\n <button *ngIf=\"cBtn.icon.classes\" type=\"button\" [class]=\"config.btnClass\">\n <span *ngIf=\"cBtn.icon.classes\" [class]=\"cBtn.icon.classes\"></span>\n </button>\n <ng-container *ngIf=\"cBtn.icon.text\">\n <a [class]=\"config.btnClass\" *ngIf=\"cBtn.icon.text\">\n <span [class]=\"config.btnSubClass\">{{ cBtn.icon.text }}</span>\n </a>\n </ng-container>\n </ng-container>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'c3SafeUrl',\n standalone: true,\n})\nexport class C3SafeUrlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n transform(url: string | null) {\n return url ? this.sanitizer.bypassSecurityTrustResourceUrl(url) : '';\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { C3FileViewer } from '../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer-image, [c3-file-viewer-image]',\n templateUrl: './c3-file-viewer-image.component.html',\n standalone: false\n})\nexport class C3FileViewerImageComponent {\n @Input()\n public fileViewer!: C3FileViewer;\n\n @Output()\n dragstart = new EventEmitter<DragEvent>();\n}\n","<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","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { C3FileViewer } from '../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer-pdf',\n templateUrl: './c3-file-viewer-pdf.component.html',\n encapsulation: ViewEncapsulation.None,\n host: {\n style: 'display: block',\n class: 'c3-file-viewer-pdf',\n },\n standalone: false\n})\nexport class C3FileViewerPdfComponent {\n @Input()\n public fileViewer!: C3FileViewer;\n\n @Output()\n dragstart = new EventEmitter<DragEvent>();\n}\n","<!-- 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","import { Component, Input } from '@angular/core';\nimport { FileMetadata } from '../../models/file-metadata';\nimport { Subject, filter, mergeMap, tap } from 'rxjs';\nimport { C3FileViewer } from '../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer-video',\n templateUrl: './c3-file-viewer-video.component.html',\n standalone: false\n})\nexport class C3FileViewerVideoComponent {\n @Input('file')\n set _srcUpdated({ location }: FileMetadata) {\n this.src$.next(location);\n }\n src = '';\n private src$ = new Subject<string>();\n\n @Input()\n public fileViewer!: C3FileViewer;\n\n constructor() {\n this.src$\n .pipe(\n mergeMap((src) => this.fileViewer.getFile(src)),\n filter((blob) => blob.type.startsWith('application/pdf')),\n tap((blob) => (this.src = URL.createObjectURL(blob)))\n )\n .subscribe({\n next: () => null,\n error: (error) => {\n console.log(error);\n },\n });\n }\n}\n","<video controls [src]=\"src\" crossorigin=\"*\"></video>\n","import {\n Component,\n EventEmitter,\n HostListener,\n Inject,\n Input,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { C3FileViewerConfig } from '../../../models/file-viewer-config.model';\nimport { CustomFileEvent } from '../../../models/custom-file-event.model';\nimport { HttpClient } from '@angular/common/http';\nimport { C3FileViewer } from '../../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer',\n templateUrl: './c3-file-viewer.component.html',\n styleUrls: ['./c3-file-viewer.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'c3-file-viewer',\n },\n standalone: false\n})\nexport class C3FileViewerComponent implements OnInit {\n @Input()\n public screenHeightOccupied?: 0; // In Px\n\n @Input()\n public fileViewer!: C3FileViewer;\n\n @Output()\n public indexChange: EventEmitter<number> = new EventEmitter();\n\n @Output()\n public configChange: EventEmitter<C3FileViewerConfig> = new EventEmitter();\n\n @Output()\n public customFileEvent: EventEmitter<CustomFileEvent> = new EventEmitter();\n\n constructor(\n @Optional() @Inject('config') public moduleConfig: C3FileViewerConfig,\n public _http: HttpClient\n ) { }\n\n ngOnInit() {\n this.defineStyleHeight();\n\n this.fileViewer.customFile$.subscribe((event) => {\n this.customFileEvent.emit(event);\n });\n\n this.fileViewer.index$.subscribe((index) => {\n this.indexChange.emit(index);\n });\n\n this.fileViewer.config$.subscribe((config) => {\n this.configChange.emit(config);\n });\n }\n\n @HostListener('mouseover')\n onMouseOver() {\n if (this.fileViewer) this.fileViewer.hovered = true;\n }\n\n @HostListener('mouseleave')\n onMouseLeave() {\n if (this.fileViewer) this.fileViewer.hovered = false;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['screenHeightOccupied'] && this.fileViewer)\n this.defineStyleHeight();\n }\n\n @HostListener('window:keyup.ArrowRight', ['$event'])\n next(event: KeyboardEvent) {\n this.fileViewer.nextImage(event);\n }\n\n @HostListener('window:keyup.ArrowLeft', ['$event'])\n previous(event: KeyboardEvent) {\n this.fileViewer.previousImage(event);\n }\n\n defineStyleHeight() {\n this.fileViewer.styleHeight =\n 'calc(100% - ' + this.screenHeightOccupied + 'px)';\n }\n}\n","<div\n class=\"c3-file-container\"\n *ngIf=\"fileViewer\"\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 <c3-file-viewer-image\n *ngIf=\"fileViewer.currentFile.type.startsWith('image')\"\n [fileViewer]=\"fileViewer\"\n [style]=\"fileViewer.style\"\n (dragstart)=\"fileViewer.onDragStart($event)\"\n />\n\n <c3-file-viewer-video\n *ngIf=\"fileViewer.currentFile.type.startsWith('video')\"\n />\n\n <c3-file-viewer-pdf\n *ngIf=\"fileViewer.currentFile.type.startsWith('application/pdf')\"\n [fileViewer]=\"fileViewer\"\n />\n <!-- Div below will be used to hide the 'ghost' image when dragging -->\n <div></div>\n <div class=\"spinner-container\" *ngIf=\"fileViewer.loading\">\n <div class=\"spinner\"></div>\n </div>\n\n <c3-file-viewer-actions [fileViewer]=\"fileViewer\" />\n</div>\n","import { C3FileViewerConfig } from '../models/file-viewer-config.model';\n\nexport const DEFAULT_CONFIG: C3FileViewerConfig = {\n btnContainerClass: 'btn-container',\n btnClass: 'default',\n btnSubClass: 'material-icons',\n zoomFactor: 0.1,\n containerBackgroundColor: '#00000000',\n wheelZoom: false,\n allowFullscreen: true,\n allowKeyboardNavigation: true,\n btnShow: {\n zoomIn: true,\n zoomOut: true,\n rotateClockwise: true,\n rotateCounterClockwise: true,\n next: true,\n prev: true,\n reset: true,\n },\n btnIcons: {\n zoomIn: {\n text: 'zoom_in',\n },\n zoomOut: {\n text: 'zoom_out',\n },\n rotateClockwise: {\n text: 'rotate_right',\n },\n rotateCounterClockwise: {\n text: 'rotate_left',\n },\n fullscreen: {\n text: 'fullscreen',\n },\n reset: {\n text: 'restore',\n },\n },\n};\n","export class CustomFileEvent {\n public name: string;\n public fileUrl: string;\n\n constructor(name: string, fileUrl: string) {\n this.name = name;\n this.fileUrl = fileUrl;\n }\n}\n","import { BehaviorSubject, Observable, map, mergeMap, of, tap } from 'rxjs';\nimport { DEFAULT_CONFIG } from '../consts/default.config';\nimport { C3FileViewerConfig } from './file-viewer-config.model';\nimport { HttpClient } from '@angular/common/http';\nimport { CustomFileEvent } from './custom-file-event.model';\nimport { FileMetadata, VariantFile } from './file-metadata';\n\nexport class C3FileViewer {\n private _config: C3FileViewerConfig = DEFAULT_CONFIG;\n private client: HttpClient['get'] | undefined;\n get config(): C3FileViewerConfig {\n return this._config;\n }\n\n set config(value: C3FileViewerConfig) {\n this._config = this.mergeConfig(DEFAULT_CONFIG, value);\n this.config$.next(this._config);\n }\n public config$ = new BehaviorSubject<C3FileViewerConfig>(DEFAULT_CONFIG);\n\n public fullscreen$ = new BehaviorSubject<Boolean>(false);\n\n public customFile$ = new BehaviorSubject<any>(null);\n public index$ = new BehaviorSubject<number>(0);\n public loading: boolean = true;\n public currentIndex: number = 0;\n\n get currentFile(): FileMetadata {\n return this.filesObjectUrl[this.currentIndex];\n }\n\n public style = {\n transform: '',\n msTransform: '',\n oTransform: '',\n webkitTransform: '',\n minHeight: 'auto',\n maxHeight: 'auto',\n height: 'auto',\n minWidth: 'auto',\n maxWidth: 'auto',\n width: 'auto',\n };\n public styleHeight = '100%';\n public hovered = false;\n\n public set files(newFiles: FileMetadata[]) {\n this._files = newFiles;\n this.currentIndex = 0;\n this.index$.next(this.currentIndex);\n\n for (const file of newFiles) {\n this.filesObjectUrl.push({\n ...file,\n objectUrl: file.objectUrl || this.createObjectURL(file),\n });\n\n if (file.alternativeVersions)\n for (const alternativeVersion of file.alternativeVersions) {\n this.filesObjectUrl.push({\n ...file,\n ...alternativeVersion,\n objectUrl: this.createObjectURL(alternativeVersion),\n });\n }\n }\n }\n\n public get files(): FileMetadata[] {\n return this._files;\n }\n\n private _files: FileMetadata[] = [];\n\n public filesObjectUrl: Array<\n FileMetadata & {\n objectUrl: Observable<string>;\n }\n > = [];\n\n private locationBlobMap = new Map<string, string>();\n\n private scale = 1;\n private rotation = 0;\n private translateX = 0;\n private translateY = 0;\n private prevX: number = 0;\n private prevY: number = 0;\n\n constructor({\n config,\n files,\n client,\n }: {\n config?: C3FileViewerConfig;\n files?: FileMetadata[];\n client: HttpClient;\n }) {\n if (config) this.config = config;\n if (client) this.client = client.get.bind(client);\n if (files) this.files = files;\n\n this.config$.subscribe((config) => {\n const { minHeight, maxHeight, minWidth, maxWidth, height, width } =\n config;\n this.style.minHeight = this.valueToCss(minHeight);\n this.style.height = this.valueToCss(height);\n this.style.width = this.valueToCss(width);\n this.style.maxHeight = this.valueToCss(maxHeight);\n this.style.minWidth = this.valueToCss(minWidth);\n this.style.maxWidth = this.valueToCss(maxWidth);\n this.styleHeight = this.valueToCss(height);\n\n this.updateStyle();\n });\n }\n\n createObjectURL(file: FileMetadata | VariantFile) {\n this.onLoadStart();\n return of(file.location).pipe(\n mergeMap((location) =>\n this.locationBlobMap.has(location)\n ? of(this.locationBlobMap.get(location)!)\n : this.getFile(location).pipe(\n map((response) => URL.createObjectURL(response)),\n tap((url) => this.locationBlobMap.set(location, url))\n )\n ),\n tap(() => this.onLoad())\n );\n }\n\n getFile(location: string) {\n const client = this.config.customClient || this.client;\n if (!client) {\n throw new Error(\n 'No http client provided. Please provide a custom client or import HttpClientModule'\n );\n }\n\n return client(location, {\n responseType: 'blob',\n });\n }\n\n previousImage(event: KeyboardEvent | MouseEvent) {\n if (this.canNavigate(event)) {\n this.loading = true;\n if (this.currentIndex > 0) this.currentIndex--;\n else this.currentIndex = this.files.length - 1;\n this.index$.next(this.currentIndex);\n this.reset();\n }\n }\n\n nextImage(event: KeyboardEvent | MouseEvent) {\n if (this.canNavigate(event)) {\n this.loading = true;\n if (this.currentIndex < this.files.length - 1) this.currentIndex++;\n else this.currentIndex = 0;\n this.index$.next(this.currentIndex);\n this.reset();\n }\n }\n\n zoomIn() {\n this.scale *= 1 + (this.config.zoomFactor || 0);\n this.updateStyle();\n }\n\n zoomOut() {\n if (this.scale > (this.config.zoomFactor || 0)) {\n this.scale /= 1 + (this.config.zoomFactor || 0);\n }\n this.updateStyle();\n }\n\n scrollZoom(evt: WheelEvent) {\n if (this.config.wheelZoom) {\n evt.deltaY > 0 ? this.zoomOut() : this.zoomIn();\n return false;\n } else {\n return true;\n }\n }\n\n rotateClockwise() {\n this.rotation += 90;\n this.updateStyle();\n }\n\n rotateCounterClockwise() {\n this.rotation -= 90;\n this.updateStyle();\n }\n\n onLoad() {\n this.loading = false;\n }\n\n onLoadStart() {\n this.loading = true;\n }\n\n imageNotFound(file: FileMetadata) {\n this.loading = false;\n this.customFile$.next(new CustomFileEvent('imageNotFound', file.location));\n }\n\n onDragOver(evt: DragEvent) {\n this.translateX += evt.clientX - this.prevX;\n this.translateY += evt.clientY - this.prevY;\n this.prevX = evt.clientX;\n this.prevY = evt.clientY;\n this.updateStyle();\n }\n\n onDragStart(evt: DragEvent) {\n if (evt.target && evt.dataTransfer && evt.dataTransfer.setDragImage) {\n const target = evt.target as HTMLDivElement;\n const nextElementSibling = target.nextElementSibling as HTMLDivElement;\n\n if (nextElementSibling)\n evt.dataTransfer.setDragImage(nextElementSibling, 0, 0);\n }\n this.prevX = evt.clientX;\n this.prevY = evt.clientY;\n }\n\n toggleFullscreen() {\n const fullScreenValue = this.fullscreen$.getValue();\n this.fullscreen$.next(!fullScreenValue);\n if (fullScreenValue) this.reset();\n }\n\n reset() {\n this.scale = 1;\n this.rotation = 0;\n this.translateX = 0;\n this.translateY = 0;\n this.updateStyle();\n }\n\n private canNavigate(event: any) {\n return (\n event == null || (this.config.allowKeyboardNavigation && this.hovered)\n );\n }\n\n private updateStyle() {\n this.style.transform = `translate(${this.translateX}px, ${this.translateY}px) rotate(${this.rotation}deg) scale(${this.scale})`;\n this.style.msTransform = this.style.transform;\n this.style.webkitTransform = this.style.transform;\n this.style.oTransform = this.style.transform;\n }\n\n private valueToCss(value: number | string | undefined) {\n return value ? (typeof value === 'string' ? value : value + 'px') : 'auto';\n }\n\n private mergeConfig(\n defaultValues: C3FileViewerConfig,\n overrideValues: C3FileViewerConfig\n ): C3FileViewerConfig {\n let result: C3FileViewerConfig = { ...defaultValues };\n if (overrideValues) {\n result = { ...defaultValues, ...overrideValues };\n\n if (overrideValues.btnIcons) {\n result.btnIcons = {\n ...defaultValues.btnIcons,\n ...overrideValues.btnIcons,\n };\n }\n }\n return result;\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { C3FileViewer } from '../../../models/file-viewer';\n\n@Component({\n template: `\n <c3-file-viewer [fileViewer]=\"fileViewer\" [screenHeightOccupied]=\"0\" />\n `,\n standalone: false\n})\nexport class C3FileViewerDialog {\n constructor(@Inject(MAT_DIALOG_DATA) public fileViewer: C3FileViewer) {}\n}\n","import { Component, HostListener, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { C3FileViewer } from '../../../models/file-viewer';\nimport { C3FileViewerDialog } from './c3-file-viewer-dialog';\n\n@Component({\n selector: 'c3-file-viewer-dialog',\n template: ` <ng-content /> `,\n host: {\n class: 'c3-file-viewer-dialog',\n },\n standalone: false\n})\nexport class C3FileViewerDialogComponent {\n @Input()\n public fileViewer!: C3FileViewer;\n\n @Input()\n public dialogConfig: Partial<MatDialogConfig> = {\n panelClass: 'c3-file-viewer-dialog',\n width: '80%',\n height: '80%',\n };\n\n constructor(private _dialog: MatDialog) {}\n\n @HostListener('click')\n openDialog() {\n this._dialog.open(C3FileViewerDialog, {\n data: this.fileViewer,\n ...this.dialogConfig,\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FullScreenDirective } from './directives/full-screen.directive';\nimport { C3FileViewerComponent } from './components/public/c3-file-viewer/c3-file-viewer.component';\nimport { CommonModule } from '@angular/common';\nimport { C3FileViewerActionsComponent } from './components/c3-file-viewer-actions/c3-file-viewer-actions.component';\nimport { C3FileViewerImageComponent } from './components/c3-file-viewer-image/c3-file-viewer-image.component';\nimport { C3FileViewerPdfComponent } from './components/c3-file-viewer-pdf/c3-file-viewer-pdf.component';\nimport { C3FileViewerVideoComponent } from './components/c3-file-viewer-video/c3-file-viewer-video.component';\nimport {\n provideHttpClient,\n withInterceptorsFromDi,\n} from '@angular/common/http';\nimport { C3SafeUrlPipe } from '../../public-api';\nimport { C3FileViewerDialogComponent } from './components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { C3FileViewerDialog } from './components/public/c3-file-viewer-dialog/c3-file-viewer-dialog';\n\n@NgModule({\n declarations: [\n FullScreenDirective,\n C3FileViewerComponent,\n C3FileViewerActionsComponent,\n C3FileViewerImageComponent,\n C3FileViewerPdfComponent,\n C3FileViewerVideoComponent,\n C3FileViewerDialogComponent,\n C3FileViewerDialog,\n ],\n exports: [\n FullScreenDirective,\n C3FileViewerComponent,\n C3FileViewerDialogComponent,\n ],\n imports: [CommonModule, C3SafeUrlPipe, MatDialogModule],\n providers: [provideHttpClient(withInterceptorsFromDi())],\n})\nexport class C3FileViewerModule {}\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, input, output } from '@angular/core';\nimport { FileMetadata } from '../../c3-file-viewer/models/file-metadata';\nimport { Observable } from 'rxjs';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nexport type C3FileCardSize = '16' | '32' | '64' | '128' | '256';\n\n@Component({\n selector: 'c3-file-display-card',\n imports: [CommonModule, MatButtonModule, MatIconModule],\n templateUrl: './c3-file-display-card.component.html',\n styleUrl: './c3-file-display-card.component.scss'\n})\nexport class C3FileDisplayCardComponent {\n public readonly fileObjectUrl = input.required<\n | (FileMetadata & {\n objectUrl?: Observable<string>;\n })\n | null\n >();\n public readonly displayFn = input<(file: FileMetadata) => string>(\n (file) => file.name\n );\n\n public readonly deletable = input<boolean>(false);\n public readonly size = input<C3FileCardSize>('32');\n public readonly onDelete = output();\n\n public readonly getFileType = computed(() => {\n const file = this.fileObjectUrl();\n if (file && file.type) {\n if (file.type.startsWith('image')) return 'image';\n if (file.type.startsWith('application')) return 'application';\n if (file.type.startsWith('video')) return 'video';\n }\n return 'unknown';\n });\n\n public readonly getFileObjectUrl = computed((): Observable<string> | null => {\n const file = this.fileObjectUrl();\n return file && file.objectUrl ? file.objectUrl : null;\n });\n\n public readonly getFileName = computed((): string => {\n const file = this.fileObjectUrl();\n return file ? this.displayFn()(file) : '';\n });\n\n public readonly getDisplayName = computed((): string => {\n const file = this.fileObjectUrl();\n return file ? this.displayFn()(file) : '';\n });\n}\n","<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 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","import { CommonModule } from '@angular/common';\nimport {\n Component,\n effect,\n inject,\n input,\n output,\n viewChild,\n} from '@angular/core';\nimport { FileMetadata } from '../../c3-file-viewer/models/file-metadata';\nimport {\n C3FileCardSize,\n C3FileDisplayCardComponent,\n} from '../c3-file-display-card/c3-file-display-card.component';\nimport { C3FileViewerModule } from '../../c3-file-viewer/c3-file-viewer.module';\nimport { C3FileViewer } from '../../c3-file-viewer/models/file-viewer';\nimport { HttpClient } from '@angular/common/http';\nimport { C3FileViewerDialogComponent } from '../../c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component';\nimport { C3FileViewerConfig } from '../../c3-file-viewer/models/file-viewer-config.model';\n\n@Component({\n selector: 'c3-file-display-grid',\n imports: [CommonModule, C3FileDisplayCardComponent, C3FileViewerModule],\n templateUrl: './c3-file-display-grid.component.html',\n styleUrl: './c3-file-display-grid.component.scss'\n})\nexport class C3FileDisplayGridComponent {\n public readonly files = input.required<\n Array<\n FileMetadata & {\n location: string;\n }\n >\n >();\n public readonly config = input<C3FileViewerConfig>();\n public readonly cardSize = input<C3FileCardSize>('32');\n public readonly displayFn = input<\n (file: FileMetadata & { location: string }) => string\n >((file) => file.name);\n\n public readonly deletable = input<boolean>(false);\n public readonly onDelete = output<FileMetadata>();\n public readonly dialog = viewChild(C3FileViewerDialogComponent);\n\n public fileViewer = new C3FileViewer({\n client: inject(HttpClient),\n });\n\n constructor() {\n effect(\n () => {\n this.fileViewer.files = this.files();\n },\n );\n\n effect(\n () => {\n if (this.config()) this.fileViewer.config = this.config()!;\n },\n );\n }\n\n openDialog($event: MouseEvent, index: number): void {\n $event.stopPropagation();\n this.fileViewer.currentIndex = index;\n this.dialog()?.openDialog();\n }\n}\n","<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 />\n }\n </div>\n</c3-file-viewer-dialog>\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'c3-file-display-icon',\n imports: [CommonModule, MatIconModule],\n templateUrl: './c3-file-display-icon.component.html',\n styleUrl: './c3-file-display-icon.component.scss'\n})\nexport class C3FileDisplayIconComponent {\n public readonly fileType = input.required<string>();\n\n public readonly displayedIcon = computed(() => {\n switch (this.fileType()) {\n case 'image/webp':\n case 'image/png':\n case 'image/jpeg':\n case 'image/jpg':\n return 'image';\n case 'video/mp4':\n case 'video/webm':\n return 'play_circle';\n case 'application/pdf':\n return 'picture_as_pdf';\n case 'application/msword':\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n return 'description';\n default:\n return 'content_copy';\n }\n });\n\n public readonly color = computed(() => {\n switch (this.fileType()) {\n case 'image/webp':\n case 'image/png':\n case 'image/jpeg':\n case 'image/jpg':\n return 'text-primary';\n case 'video/mp4':\n case 'video/webm':\n return 'text-secondary';\n case 'application/pdf':\n return 'text-error';\n case 'application/msword':\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n return 'text-success';\n default:\n return 'text-gray';\n }\n });\n}\n","<mat-icon [ngClass]=\"color()\">{{ displayedIcon() }}</mat-icon>\n","import { Directive, HostListener } from '@angular/core';\n/**\n * A directive that prevents the default action and stops event propagation on click events.\n */\n@Directive({\n selector: '[c3-prevent-click]',\n standalone: true,\n})\nexport class C3PreventClickDirective {\n /**\n * HostListener for the 'click' event.\n * @param {MouseEvent} event - The MouseEvent object representing the click event.\n */\n @HostListener('click', ['$event'])\n public onClick(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\n\n/**\n * A directive that prevents the default action and stops event propagation on specified keyboard events.\n */\n@Directive({\n selector: '[c3-prevent-keyboard-event]',\n standalone: true,\n})\nexport class C3PreventKeyboardEventDirective {\n /**\n * The keyboard key to prevent the default action and stop event propagation for. Defaults to 'enter'.\n */\n @Input() key = 'enter';\n\n /**\n * HostListener for the 'keydown' event.\n * @param {KeyboardEvent} event - The KeyboardEvent object representing the keydown event.\n */\n @HostListener('keydown', ['$event'])\n public onKeyDown(event: KeyboardEvent): void {\n // Check if the key pressed matches the input key.\n if (event.key?.toLocaleLowerCase() === this.key.toLocaleLowerCase()) {\n // Prevent the default action associated with the event.\n event.preventDefault();\n // Stop the event from bubbling up the event chain.\n event.stopPropagation();\n }\n }\n}\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[c3-stop-click-propagation]',\n standalone: true,\n})\nexport class C3StopPropagationDirective {\n @HostListener('click', ['$event'])\n public onClick(event: MouseEvent): void {\n event.stopImmediatePropagation();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport {\n Component,\n effect,\n inject,\n input,\n output,\n viewChild,\n} from '@angular/core';\nimport { C3FileViewerDialogComponent } from '../../c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component';\nimport { FileMetadata } from '../../c3-file-viewer/models/file-metadata';\nimport { C3FileViewer } from '../../c3-file-viewer/models/file-viewer';\nimport { C3FileViewerConfig } from '../../c3-file-viewer/models/file-viewer-config.model';\nimport { MatIconModule } from '@angular/material/icon';\nimport { C3FileViewerModule } from '../../c3-file-viewer/c3-file-viewer.module';\nimport { C3FileDisplayIconComponent } from '../c3-file-display-icon/c3-file-display-icon.component';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatButtonModule } from '@angular/material/button';\nimport { C3StopPropagationDirective } from '../../c3-prevent-event';\n\n@Component({\n selector: 'c3-file-display-list',\n imports: [\n C3StopPropagationDirective,\n C3FileViewerModule,\n C3FileDisplayIconComponent,\n CommonModule,\n MatButtonModule,\n MatIconModule,\n MatNativeDateModule,\n MatMenuModule,\n ],\n templateUrl: './c3-file-display-list.component.html',\n styleUrl: './c3-file-display-list.component.scss'\n})\nexport class C3FileDisplayListComponent {\n public readonly files = input.required<\n Array<\n FileMetadata & {\n location: string;\n }\n >\n >();\n public readonly config = input<C3FileViewerConfig>();\n public readonly displayFn = input<\n (file: FileMetadata & { location: string }) => string\n >((file) => file.name);\n\n public readonly deletable = input<boolean>(false);\n public readonly onDelete = output<FileMetadata>();\n public readonly dialog = viewChild(C3FileViewerDialogComponent);\n\n public fileViewer = new C3FileViewer({\n client: inject(HttpClient),\n });\n\n constructor() {\n effect(\n () => {\n this.fileViewer.files = this.files();\n }\n );\n\n effect(\n () => {\n if (this.config()) this.fileViewer.config = this.config()!;\n }\n );\n }\n\n openDialog($event: MouseEvent, index: number): void {\n $event.stopPropagation();\n this.fileViewer.currentIndex = index;\n this.dialog()?.openDialog();\n }\n}\n","<!-- header -->\n<div class=\"header\">\n <div class=\"title full\">\n <span>Nom</span>\n </div>\n <div class=\"title\">\n <span>Date d'ajout</span>\n </div>\n <div class=\"actions\">\n <ng-content></ng-content>\n </div>\n</div>\n<c3-file-viewer-dialog [fileViewer]=\"fileViewer\">\n <div class=\"file-display-list\">\n @for (file of files(); track $index) {\n <button>\n <div class=\"icon\">\n <c3-file-display-icon [fileType]=\"file.type\" />\n </div>\n <div class=\"name\">\n <span>{{ displayFn()(file) }}</span>\n </div>\n <div class=\"date-label\">\n <span>{{\n file.lastModified ? (file.lastModified | date : \"medium\") : \"-\"\n }}</span>\n </div>\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</c3-file-viewer-dialog>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { C3FileDisplayGridComponent } from './c3-file-display-grid/c3-file-display-grid.component';\nimport { C3FileDisplayListComponent } from './c3-file-display-list/c3-file-display-list.component';\nimport { C3FileDisplayCardComponent } from './c3-file-display-card/c3-file-display-card.component';\nimport { C3FileDisplayIconComponent } from './c3-file-display-icon/c3-file-display-icon.component';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n C3FileDisplayGridComponent,\n C3FileDisplayListComponent,\n C3FileDisplayCardComponent,\n C3FileDisplayIconComponent,\n ],\n exports: [\n C3FileDisplayGridComponent,\n C3FileDisplayListComponent,\n C3FileDisplayCardComponent,\n C3FileDisplayIconComponent,\n ],\n})\nexport class C3FileDisplayerModule {}\n","import {\n Component,\n HostBinding,\n ViewEncapsulation,\n input,\n output,\n} from '@angular/core';\n\n@Component({\n selector: 'c3-expansion-header',\n templateUrl: './c3-expansion-header.component.html',\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class C3ExpansionHeaderComponent {\n public title = input<string>();\n public isExpanded = input<boolean>(false);\n public toggleExpand = output();\n\n @HostBinding('class') get hostClass() {\n return 'c3-expansion-header';\n }\n}\n","<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éduire' : 'Développer'\"\n >\n <mat-icon>{{\n isExpanded() ? \"expand_less\" : \"expand_more\"\n }}</mat-icon>\n </button>\n</ng-content>\n","import { AfterViewInit, Directive, ElementRef, Input } from '@angular/core';\nimport autoAnimate, {\n AutoAnimateOptions,\n AutoAnimationPlugin,\n} from '@formkit/auto-animate';\n\n@Directive({\n selector: '[c3AutoAnimate]',\n standalone: true,\n})\nexport class C3AutoAnimateDirective implements AfterViewInit {\n @Input() options?: Partial<AutoAnimateOptions> | AutoAnimationPlugin;\n constructor(private el: ElementRef) {}\n\n ngAfterViewInit(): void {\n autoAnimate(this.el.nativeElement, this.options);\n }\n}\n","import {\n Component,\n contentChild,\n effect,\n ElementRef,\n HostBinding,\n inject,\n input,\n model,\n OnDestroy,\n} from '@angular/core';\nimport { C3AutoAnimateDirective } from '../../../c3-auto-animate/c3-auto-animate.directive';\nimport { C3ExpansionHeaderComponent } from '../c3-expansion-header/c3-expansion-header.component';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'c3-expansion',\n templateUrl: './c3-expansion.component.html',\n hostDirectives: [\n {\n directive: C3AutoAnimateDirective,\n inputs: ['options'],\n },\n ],\n standalone: false\n})\nexport class C3ExpansionComponent implements OnDestroy {\n public headerClass = input<string>('c3-expansion-header');\n public isExpanded = model<boolean>(false);\n\n @HostBinding('class') get hostClass() {\n return 'c3-expansion';\n }\n\n public readonly _elementRef = inject(ElementRef);\n public readonly header = contentChild(C3ExpansionHeaderComponent);\n\n private expandSubsciption: Subscription | undefined;\n\n constructor() {\n effect(() => {\n this.expandSubsciption?.unsubscribe();\n\n this.header()?.toggleExpand.subscribe(() => this.toggleExpand());\n });\n }\n\n ngOnDestroy() {\n this.expandSubsciption?.unsubscribe();\n }\n\n toggleExpand() {\n this.isExpanded.set(!this.isExpanded());\n }\n}\n","<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","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { C3ExpansionHeaderComponent } from './components/c3-expansion-header/c3-expansion-header.component';\nimport { C3ExpansionComponent } from './components/c3-expansion/c3-expansion.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { C3AutoAnimateDirective } from '../c3-auto-animate/c3-auto-animate.directive';\n\n@NgModule({\n declarations: [C3ExpansionComponent, C3ExpansionHeaderComponent],\n imports: [\n CommonModule,\n C3AutoAnimateDirective,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n MatButtonModule,\n MatToolbarModule,\n ],\n exports: [C3ExpansionComponent, C3ExpansionHeaderComponent],\n})\nexport class C3ExpansionModule {}\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[c3SelectOnFocus]',\n standalone: true,\n})\nexport class C3SelectOnFocusDirective {\n @HostListener('focus', ['$event.target'])\n onFocus(target: HTMLInputElement) {\n setTimeout(() => target.select());\n }\n}\n","import { signal, WritableSignal } from '@angular/core';\n\nclass BooleanSignal {\n private _signal: WritableSignal<boolean>;\n\n constructor(initialValue: boolean) {\n this._signal = signal<boolean>(initialValue);\n }\n\n get value() {\n return this._signal();\n }\n\n set value(newValue: boolean) {\n this._signal.set(newValue);\n }\n\n toggle() {\n this._signal.set(!this._signal());\n }\n\n reset() {\n this._signal.set(false);\n }\n\n setToTrue() {\n this._signal.set(true);\n }\n\n setToFalse() {\n this._signal.set(false);\n }\n}\n\nexport function booleanSignal(value: boolean) {\n return new BooleanSignal(value);\n}\n","import { FlatTreeControl } from '@angular/cdk/tree';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Component, effect, model, output } from '@angular/core';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport {\r\n MatTreeFlatDataSource,\r\n MatTreeFlattener,\r\n MatTreeModule,\r\n} from '@angular/material/tree';\r\n\r\nexport interface TreeType<T> {\r\n id: number;\r\n level: number;\r\n name: string;\r\n ancestorId?: number;\r\n ancestor?: TreeType<T>;\r\n children: TreeType<T>[];\r\n rawData: T;\r\n}\r\n\r\nexport interface FileNode<RawData> extends TreeType<RawData> {\r\n expandable: boolean;\r\n}\r\n\r\n@Component({\n selector: 'c3-tree',\n imports: [\n CommonModule,\n MatTreeModule,\n MatIconModule,\n MatRippleModule,\n MatProgressSpinnerModule,\n ],\n templateUrl: './c3-tree.component.html',\n styleUrls: ['./c3-tree.component.scss']\n})\r\nexport class C3TreeComponent<\r\n RawData,\r\n T extends TreeType<RawData> = TreeType<RawData>\r\n> {\r\n public readonly treeData = model.required<T[]>();\r\n public readonly isLoading = model<boolean>(false);\r\n public readonly treeDataSelected = output<T>();\r\n\r\n private _transformer = (\r\n node: TreeType<RawData>,\r\n level: number\r\n ): FileNode<RawData> => ({\r\n expandable: !!node.children && node.children.length > 0,\r\n children: node.children,\r\n id: node.id,\r\n level,\r\n name: node.name,\r\n rawData: node.rawData,\r\n });\r\n\r\n constructor() {\r\n effect(() => {\r\n this.dataSource.data = this.treeData();\r\n });\r\n }\r\n\r\n public hasChild = (_: number, node: T) => node.children.length > 0;\r\n\r\n public treeControl = new FlatTreeControl<FileNode<RawData>>(\r\n (node) => node.level,\r\n (node) => node.expandable\r\n );\r\n\r\n public treeFlattener = new MatTreeFlattener(\r\n this._transformer,\r\n (node) => node.level,\r\n (node) => node.expandable,\r\n (node) => node.children\r\n );\r\n\r\n public dataSource = new MatTreeFlatDataSource(\r\n this.treeControl,\r\n this.treeFlattener\r\n );\r\n}\r\n","@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","import { Component, signal, TemplateRef, viewChild } from '@angular/core';\n\n@Component({\n selector: 'c3-flowing-menu-item',\n templateUrl: './c3-flowing-menu-item.component.html',\n standalone: false\n})\nexport class C3FlowingMenuItemComponent {\n public readonly menuTpl = viewChild('menuTpl', {\n read: TemplateRef,\n });\n public readonly contentTpl = viewChild('contentTpl', {\n read: TemplateRef,\n });\n\n public readonly active = signal(false);\n}\n","<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","import {\n Component,\n contentChildren,\n effect,\n model,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { C3FlowingMenuItemComponent } from '../c3-flowing-menu-item/c3-flowing-menu-item.component';\n\n@Component({\n selector: 'c3-flowing-menu',\n templateUrl: './c3-flowing-menu.component.html',\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'c3-flowing-menu',\n ngSkipHydration: 'true',\n },\n standalone: false\n})\nexport class C3FlowingMenuComponent {\n public readonly c3FlowingMenu = contentChildren(C3FlowingMenuItemComponent);\n private readonly targetContentRef = viewChild('targetContent', {\n read: ViewContainerRef,\n });\n\n public readonly selectedIndex = model(0);\n\n constructor() {\n effect(() => {\n if (this.targetContentRef()) {\n this.updateView();\n }\n });\n }\n\n public selectMenu(index: number) {\n this.selectedIndex.set(index);\n this.updateView();\n }\n\n private updateView() {\n if (!this.targetContentRef()) return;\n\n this.targetContentRef()!.clear();\n const selectedMenu = this.c3FlowingMenu()[this.selectedIndex()];\n if (selectedMenu) {\n this.targetContentRef()!.createEmbeddedView(selectedMenu.contentTpl()!);\n }\n }\n}\n","<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","import { Component } from '@angular/core';\n\n@Component({\n selector: 'c3-flowing-menu-item-content',\n templateUrl: './c3-flowing-menu-item-content.component.html',\n standalone: false\n})\nexport class C3FlowingMenuItemContentComponent {}\n","<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { C3FlowingMenuComponent } from './components/c3-flowing-menu/c3-flowing-menu.component';\nimport { C3FlowingMenuItemComponent } from './components/c3-flowing-menu-item/c3-flowing-menu-item.component';\nimport { C3FlowingMenuItemContentComponent } from './components/c3-flowing-menu-item-content/c3-flowing-menu-item-content.component';\n\n@NgModule({\n declarations: [\n C3FlowingMenuComponent,\n C3FlowingMenuItemComponent,\n C3FlowingMenuItemContentComponent,\n ],\n imports: [CommonModule],\n exports: [\n C3FlowingMenuComponent,\n C3FlowingMenuItemComponent,\n C3FlowingMenuItemContentComponent,\n ],\n})\nexport class C3FlowingMenuModule {}\n","import {\n Component,\n HostBinding,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'c3-trace-card',\n templateUrl: './c3-trace-card.component.html',\n styleUrl: './c3-trace-card.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'c3-trace-card',\n },\n standalone: false\n})\nexport class C3TraceCardComponent {\n public readonly align = signal<'left' | 'right'>('left');\n\n @HostBinding('class.align-left')\n get alignLeft() {\n return this.align() === 'left';\n }\n @HostBinding('class.align-right')\n get alignRight() {\n return this.align() === 'right';\n }\n}\n","<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","import { Component } from '@angular/core';\n\n@Component({\n selector: 'c3-trace-card-title',\n templateUrl: './c3-trace-card-title.component.html',\n styleUrl: './c3-trace-card-title.component.scss',\n standalone: false\n})\nexport class C3TraceCardTitleComponent {}\n","<ng-content></ng-content>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'c3-trace-card-content',\n templateUrl: './c3-trace-card-content.component.html',\n styleUrl: './c3-trace-card-content.component.scss',\n standalone: false\n})\nexport class C3TraceCardContentComponent {}\n","<ng-content></ng-content>\n","import { Directive, inject } from '@angular/core';\nimport { C3TraceCardComponent } from '../components/c3-trace-card/c3-trace-card.component';\n\n@Directive({\n selector: 'c3-trace-card[align-left]',\n standalone: true,\n})\nexport class C3TraceCardAlignLeftDirective {\n private readonly c3CardTitle = inject(C3TraceCardComponent, {\n self: true,\n });\n\n constructor() {\n this.c3CardTitle.align.set('left');\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { C3TraceCardComponent } from '../components/c3-trace-card/c3-trace-card.component';\n\n@Directive({\n selector: 'c3-trace-card[align-right]',\n standalone: true,\n})\nexport class C3TraceCardAlignRightDirective {\n private readonly c3CardTitle = inject(C3TraceCardComponent, {\n self: true,\n });\n\n constructor() {\n this.c3CardTitle.align.set('right');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { C3TraceCardComponent } from './components/c3-trace-card/c3-trace-card.component';\nimport { C3TraceCardTitleComponent } from './components/c3-trace-card-title/c3-trace-card-title.component';\nimport { C3TraceCardContentComponent } from './components/c3-trace-card-content/c3-trace-card-content.component';\nimport { C3TraceCardAlignLeftDirective } from './directives/align-left.directive';\nimport { C3TraceCardAlignRightDirective } from './directives/align-right.directive';\n\n@NgModule({\n declarations: [\n C3TraceCardComponent,\n C3TraceCardTitleComponent,\n C3TraceCardContentComponent,\n ],\n imports: [\n CommonModule,\n C3TraceCardAlignLeftDirective,\n C3TraceCardAlignRightDirective,\n ],\n exports: [\n C3TraceCardComponent,\n C3TraceCardTitleComponent,\n C3TraceCardContentComponent,\n C3TraceCardAlignLeftDirective,\n C3TraceCardAlignRightDirective,\n ],\n})\nexport class C3TraceCardModule {}\n","import { inject, Injectable, signal } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { filter, map, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class C3MenuService {\n public selectedElement: HTMLElement | null = null;\n public currentRouteChange: Observable<string>;\n public readonly currentRoute = signal('');\n\n public readonly isHeadless = signal(false);\n private readonly _router = inject(Router);\n private readonly _ar = inject(ActivatedRoute);\n\n constructor() {\n this.currentRoute.set(this._router.routerState.snapshot.url);\n this.currentRouteChange = this._router.events.pipe(\n filter(\n (status: any) =>\n status.urlAfterRedirects !== undefined && status.state === undefined\n ),\n map((status: any) => {\n this.currentRoute.set(status.urlAfterRedirects);\n return status.urlAfterRedirects;\n })\n );\n this.isHeadless.set(this._ar.snapshot.queryParams['headless'] === 'true');\n }\n\n public setSelectedItem(element: HTMLElement) {\n if (this.selectedElement)\n this.selectedElement.classList.remove(\"active-item\");\n this.selectedElement = element;\n this.selectedElement.classList.add(\"active-item\");\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { C3MenuService } from '../../services/c3-menu.service';\n\n@Component({\n selector: 'c3-menu',\n standalone: false,\n templateUrl: './c3-menu.component.html',\n styleUrl: './c3-menu.component.scss',\n})\nexport class C3MenuComponent {\n public readonly _c3Menu = inject(C3MenuService);\n}\n","@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","import { Component, DestroyRef, effect, ElementRef, inject, input, signal, viewChild } from '@angular/core';\nimport { C3MenuService } from '../../services/c3-menu.service';\nimport { map, startWith, Subscription } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'c3-nav-item',\n standalone: false,\n templateUrl: './c3-nav-item.component.html',\n styleUrl: './c3-nav-item.component.scss',\n})\nexport class C3NavItemComponent {\n public readonly route = input.required<string>();\n public readonly itemTitle = input.required<string>();\n public readonly check = input<string | null>(null);\n public readonly isExternal = input<boolean>(false);\n\n private readonly element = viewChild('button', {\n read: ElementRef<HTMLButtonElement>,\n });\n private readonly _menu = inject(C3MenuService);\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly currentRouteChangeSubscription = signal<Subscription | null>(null);\n\n constructor() {\n effect(() => {\n if (!this.currentRouteChangeSubscription() && this.element()) {\n const subscribtion = this._menu.currentRouteChange\n .pipe(\n startWith(this._menu.currentRoute()),\n map((url) => url),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((url) => {\n const _regex = new RegExp(this.check() || this.route());\n if (_regex.exec(url) && this.element())\n this._menu.setSelectedItem(this.element()!.nativeElement);\n })\n this.currentRouteChangeSubscription.set(subscribtion);\n }\n })\n\n }\n}\n","<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","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { C3MenuComponent } from \"./components/c3-menu/c3-menu.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { MatRippleModule } from \"@angular/material/core\";\nimport { C3NavItemComponent } from \"./components/c3-nav-item/c3-nav-item.component\";\n\n@NgModule({\n imports: [CommonModule, RouterModule, MatRippleModule],\n declarations: [C3MenuComponent, C3NavItemComponent],\n exports: [C3MenuComponent, C3NavItemComponent],\n providers: [],\n})\nexport class C3MenuModule { }\n","/*\n * Public API Surface of c3-components\n */\n\nexport * from './lib/c3-file-viewer/models/http.client';\n\n/**\n * Dropdown\n */\nexport * from './lib/c3-dropdown/components/c3-dropdown.component';\nexport * from './lib/c3-dropdown/directives/c3-dropdown.trigger';\nexport * from './lib/c3-dropdown/c3-dropdown.module';\n\n/**\n * Dialog\n */\nexport * from './lib/c3-dialog/components/c3-dialog-alert.component'\nexport * from './lib/c3-dialog/components/c3-dialog-confirm.component';\nexport * from './lib/c3-dialog/components/c3-dialog-prompt.component';\nexport * from './lib/c3-dialog/components/c3-dialog-embed-child.component';\nexport * from './lib/c3-dialog/components/c3-dialog-template/c3-dialog-template.component';\nexport * from './lib/c3-dialog/services/c3-dialog.service';\nexport * from './lib/c3-dialog/directives/c3-open-dialog.directive';\nexport * from './lib/c3-dialog/c3-dialog.module';\n\n/**\n * File Viewer\n */\nexport * from './lib/c3-file-viewer/components/public/c3-file-viewer/c3-file-viewer.component';\nexport * from './lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component';\nexport * from './lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog';\nexport * from './lib/c3-file-viewer/directives/full-screen.directive';\nexport * from './lib/c3-file-viewer/models/custom-file-event.model';\nexport * from './lib/c3-file-viewer/models/file-viewer-config.model';\nexport * from './lib/c3-file-viewer/models/file-viewer';\nexport * from './lib/c3-file-viewer/models/file-metadata';\nexport * from './lib/c3-file-viewer/c3-file-viewer.module';\n\n/**\n * File Displayer\n */\nexport * from './lib/c3-file-displayer/c3-file-displayer.module';\nexport * from './lib/c3-file-displayer/c3-file-display-list/c3-file-display-list.component';\nexport * from './lib/c3-file-displayer/c3-file-display-icon/c3-file-display-icon.component';\nexport * from './lib/c3-file-displayer/c3-file-display-grid/c3-file-display-grid.component';\nexport * from './lib/c3-file-displayer/c3-file-display-card/c3-file-display-card.component';\n\n/**\n * Safe Url\n */\nexport * from './lib/c3-safe-url/pipes/c3-safe-url.pipe';\n\n/**\n * Expansion\n */\nexport * from './lib/c3-expansion/c3-expansion.module';\nexport * from './lib/c3-expansion/components/c3-expansion/c3-expansion.component';\nexport * from './lib/c3-expansion/components/c3-expansion-header/c3-expansion-header.component';\n\n/**\n * Auto Animate\n */\nexport * from './lib/c3-auto-animate/c3-auto-animate.directive';\n\n/**\n * Select on Focus\n */\nexport * from './lib/c3-select-on-focus/c3-select-on-focus.directive';\n\n/**\n * Toggle Signal\n */\nexport * from './lib/c3-signals/c3-boolean-signal';\n\n/**\n * C3 Tree\n */\nexport * from './lib/c3-tree/c3-tree.component';\n\n/**\n * C3 flowing menu\n */\nexport * from './lib/c3-flowing-menu/c3-flowing-menu.module';\nexport * from './lib/c3-flowing-menu/components/c3-flowing-menu/c3-flowing-menu.component';\nexport * from './lib/c3-flowing-menu/components/c3-flowing-menu-item/c3-flowing-menu-item.component';\nexport * from './lib/c3-flowing-menu/components/c3-flowing-menu-item-content/c3-flowing-menu-item-content.component';\n\n/**\n * C3 Trace Card\n */\nexport * from './lib/c3-trace-card/c3-trace-card.module';\nexport * from './lib/c3-trace-card/components/c3-trace-card/c3-trace-card.component';\nexport * from './lib/c3-trace-card/components/c3-trace-card-content/c3-trace-card-content.component';\nexport * from './lib/c3-trace-card/components/c3-trace-card-title/c3-trace-card-title.component';\nexport * from './lib/c3-trace-card/directives/align-left.directive';\nexport * from './lib/c3-trace-card/directives/align-right.directive';\n\n/**\n * C3 Prevent Event\n */\nexport * from './lib/c3-prevent-event/index';\n\n/**\n * C3 Menu\n */\nexport * from './lib/c3-menu/c3-menu.module';\nexport * from './lib/c3-menu/components/c3-menu/c3-menu.component';\nexport * from './lib/c3-menu/components/c3-nav-item/c3-nav-item.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4","i5","i2.C3SafeUrlPipe","i3.FullScreenDirective","i4.C3FileViewerActionsComponent","i5.C3FileViewerImageComponent","i6.C3FileViewerPdfComponent","i7.C3FileViewerVideoComponent","i1.C3FileViewerComponent","i1.C3FileViewerDialogComponent","i1.C3AutoAnimateDirective","i3.C3ExpansionHeaderComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c3-components.mjs","sources":["../../../projects/c3-components/src/lib/c3-dropdown/components/c3-dropdown.component.ts","../../../projects/c3-components/src/lib/c3-dropdown/directives/c3-dropdown.trigger.ts","../../../projects/c3-components/src/lib/c3-dropdown/c3-dropdown.module.ts","../../../projects/c3-components/src/lib/c3-dialog/components/c3-dialog-alert.component.ts","../../../projects/c3-components/src/lib/c3-dialog/components/c3-dialog-confirm.component.ts","../../../projects/c3-components/src/lib/c3-dialog/components/c3-dialog-prompt.component.ts","../../../projects/c3-components/src/lib/c3-dialog/components/c3-dialog-embed-child.component.ts","../../../projects/c3-components/src/lib/c3-dialog/components/c3-dialog-template/c3-dialog-template.component.ts","../../../projects/c3-components/src/lib/c3-dialog/components/c3-dialog-template/c3-dialog-template.component.html","../../../projects/c3-components/src/lib/c3-dialog/services/c3-dialog.service.ts","../../../projects/c3-components/src/lib/c3-dialog/directives/c3-open-dialog.directive.ts","../../../projects/c3-components/src/lib/c3-dialog/c3-dialog.module.ts","../../../projects/c3-components/src/lib/c3-file-viewer/directives/full-screen.directive.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-actions/c3-file-viewer-actions.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-actions/c3-file-viewer-actions.component.html","../../../projects/c3-components/src/lib/c3-safe-url/pipes/c3-safe-url.pipe.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-image/c3-file-viewer-image.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-image/c3-file-viewer-image.component.html","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-pdf/c3-file-viewer-pdf.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-pdf/c3-file-viewer-pdf.component.html","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-video/c3-file-viewer-video.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-video/c3-file-viewer-video.component.html","../../../projects/c3-components/src/lib/c3-file-viewer/components/public/c3-file-viewer/c3-file-viewer.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/public/c3-file-viewer/c3-file-viewer.component.html","../../../projects/c3-components/src/lib/c3-file-viewer/consts/default.config.ts","../../../projects/c3-components/src/lib/c3-file-viewer/models/custom-file-event.model.ts","../../../projects/c3-components/src/lib/c3-file-viewer/models/file-viewer.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/c3-file-viewer.module.ts","../../../projects/c3-components/src/lib/c3-file-displayer/c3-file-display-card/c3-file-display-card.component.ts","../../../projects/c3-components/src/lib/c3-file-displayer/c3-file-display-card/c3-file-display-card.component.html","../../../projects/c3-components/src/lib/c3-file-displayer/c3-file-display-grid/c3-file-display-grid.component.ts","../../../projects/c3-components/src/lib/c3-file-displayer/c3-file-display-grid/c3-file-display-grid.component.html","../../../projects/c3-components/src/lib/c3-file-displayer/c3-file-display-icon/c3-file-display-icon.component.ts","../../../projects/c3-components/src/lib/c3-file-displayer/c3-file-display-icon/c3-file-display-icon.component.html","../../../projects/c3-components/src/lib/c3-prevent-event/c3-prevent-click-event.directive.ts","../../../projects/c3-components/src/lib/c3-prevent-event/c3-prevent-keyboard-event.directive.ts","../../../projects/c3-components/src/lib/c3-prevent-event/c3-stop-click-propagation.directive.ts","../../../projects/c3-components/src/lib/c3-file-displayer/c3-file-display-list/c3-file-display-list.component.ts","../../../projects/c3-components/src/lib/c3-file-displayer/c3-file-display-list/c3-file-display-list.component.html","../../../projects/c3-components/src/lib/c3-file-displayer/c3-file-displayer.module.ts","../../../projects/c3-components/src/lib/c3-expansion/components/c3-expansion-header/c3-expansion-header.component.ts","../../../projects/c3-components/src/lib/c3-expansion/components/c3-expansion-header/c3-expansion-header.component.html","../../../projects/c3-components/src/lib/c3-auto-animate/c3-auto-animate.directive.ts","../../../projects/c3-components/src/lib/c3-expansion/components/c3-expansion/c3-expansion.component.ts","../../../projects/c3-components/src/lib/c3-expansion/components/c3-expansion/c3-expansion.component.html","../../../projects/c3-components/src/lib/c3-expansion/c3-expansion.module.ts","../../../projects/c3-components/src/lib/c3-select-on-focus/c3-select-on-focus.directive.ts","../../../projects/c3-components/src/lib/c3-signals/c3-boolean-signal.ts","../../../projects/c3-components/src/lib/c3-tree/c3-tree.component.ts","../../../projects/c3-components/src/lib/c3-tree/c3-tree.component.html","../../../projects/c3-components/src/lib/c3-flowing-menu/components/c3-flowing-menu-item/c3-flowing-menu-item.component.ts","../../../projects/c3-components/src/lib/c3-flowing-menu/components/c3-flowing-menu-item/c3-flowing-menu-item.component.html","../../../projects/c3-components/src/lib/c3-flowing-menu/components/c3-flowing-menu/c3-flowing-menu.component.ts","../../../projects/c3-components/src/lib/c3-flowing-menu/components/c3-flowing-menu/c3-flowing-menu.component.html","../../../projects/c3-components/src/lib/c3-flowing-menu/components/c3-flowing-menu-item-content/c3-flowing-menu-item-content.component.ts","../../../projects/c3-components/src/lib/c3-flowing-menu/components/c3-flowing-menu-item-content/c3-flowing-menu-item-content.component.html","../../../projects/c3-components/src/lib/c3-flowing-menu/c3-flowing-menu.module.ts","../../../projects/c3-components/src/lib/c3-trace-card/components/c3-trace-card/c3-trace-card.component.ts","../../../projects/c3-components/src/lib/c3-trace-card/components/c3-trace-card/c3-trace-card.component.html","../../../projects/c3-components/src/lib/c3-trace-card/components/c3-trace-card-title/c3-trace-card-title.component.ts","../../../projects/c3-components/src/lib/c3-trace-card/components/c3-trace-card-title/c3-trace-card-title.component.html","../../../projects/c3-components/src/lib/c3-trace-card/components/c3-trace-card-content/c3-trace-card-content.component.ts","../../../projects/c3-components/src/lib/c3-trace-card/components/c3-trace-card-content/c3-trace-card-content.component.html","../../../projects/c3-components/src/lib/c3-trace-card/directives/align-left.directive.ts","../../../projects/c3-components/src/lib/c3-trace-card/directives/align-right.directive.ts","../../../projects/c3-components/src/lib/c3-trace-card/c3-trace-card.module.ts","../../../projects/c3-components/src/lib/c3-menu/services/c3-menu.service.ts","../../../projects/c3-components/src/lib/c3-menu/components/c3-menu/c3-menu.component.ts","../../../projects/c3-components/src/lib/c3-menu/components/c3-menu/c3-menu.component.html","../../../projects/c3-components/src/lib/c3-menu/components/c3-nav-item/c3-nav-item.component.ts","../../../projects/c3-components/src/lib/c3-menu/components/c3-nav-item/c3-nav-item.component.html","../../../projects/c3-components/src/lib/c3-menu/c3-menu.module.ts","../../../projects/c3-components/src/public-api.ts","../../../projects/c3-components/src/c3-components.ts"],"sourcesContent":["import {\n Component,\n TemplateRef,\n viewChild,\n input,\n inject,\n ChangeDetectorRef,\n effect,\n signal,\n} from '@angular/core';\n\n@Component({\n selector: 'c3-dropdown',\n template: `\n <ng-template>\n <div class=\"c3-dropdown-panel\" [ngClass]=\"panelClass()\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n `,\n standalone: false,\n})\nexport class C3DropdownComponent {\n public readonly panelClass = input<\n string | string[] | Set<string> | { [key: string]: any }\n >();\n\n public readonly isOpen = signal(false);\n\n public readonly template = viewChild.required(TemplateRef<unknown>);\n\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n\n constructor() {\n effect(() => {\n if (this.panelClass()) {\n this._changeDetectorRef.markForCheck();\n }\n });\n }\n}\n","import {\n Directive,\n forwardRef,\n ElementRef,\n ViewContainerRef,\n OnDestroy,\n HostListener,\n input,\n model,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n Overlay,\n OverlayRef,\n OverlayConfig,\n ConnectedPosition,\n} from '@angular/cdk/overlay';\nimport { C3DropdownComponent } from '../components/c3-dropdown.component';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { merge, Subject, Subscription, takeUntil } from 'rxjs';\n\nexport const MAT_DROPDOWN_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => C3DropdownTrigger),\n multi: true,\n};\n\n/**\n * @description The C3DropdownTrigger directive is used to display or hide a dropdown menu\n * C3DropdownComponent when an item is clicked.\n * @selector [c3Dropdown]\n * @exportAs c3DropdownTrigger\n * @input c3Dropdown - A reference to an instance of C3DropdownComponent.\n * @input c3DropdownDisabled - A boolean indicating whether the directive should be disabled.\n * @input c3DropdownClass - A string, an array of strings, a set of strings or a\n * object representing the CSS classes to be applied to the dropdown menu.\n */\n@Directive({\n selector: '[c3DropdownTrigger]',\n providers: [MAT_DROPDOWN_VALUE_ACCESSOR],\n standalone: false,\n})\nexport class C3DropdownTrigger implements OnDestroy {\n private overlayRef?: OverlayRef | null;\n private _closingActionsSubscription: Subscription = Subscription.EMPTY;\n private _destroyed = new Subject<void>();\n\n /** The dropdown menu instance */\n public readonly dropdown = model.required<C3DropdownComponent>({\n alias: 'c3DropdownTrigger',\n });\n\n /** Whether the dropdown is disabled. */\n public readonly dropdownDisabled = input<boolean>(false);\n\n /** Classes to be passed to the dropdown menu. Supports the same syntax as `ngClass`. */\n public readonly dropdownClass = input<\n string | string[] | Set<string> | { [key: string]: any }\n >('');\n\n constructor(\n private _element: ElementRef<HTMLElement>,\n private _overlay: Overlay,\n private _viewContainerRef: ViewContainerRef\n ) {}\n\n @HostListener('click')\n onClick() {\n this.show();\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n this._closingActionsSubscription.unsubscribe();\n this.close();\n }\n\n public show(): void {\n if (!this.dropdown().template()) return;\n\n this.dropdown().isOpen.set(true);\n\n const overlayRef = this._overlay.create(this._getOverlayConfig());\n const portal = new TemplatePortal(\n this.dropdown().template(),\n this._viewContainerRef\n );\n overlayRef.attach(portal);\n\n this.overlayRef = overlayRef;\n\n this._closingActionsSubscription = this._menuClosingActions().subscribe(\n () => this.close()\n );\n }\n\n public close(): void {\n if (this.overlayRef && this.overlayRef.hasAttached())\n this.overlayRef.detach();\n\n this.dropdown().isOpen.set(false);\n }\n\n private _getOverlayConfig(): OverlayConfig {\n const belowPosition: ConnectedPosition = {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n };\n const abovePosition: ConnectedPosition = {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n\n // The overlay edge connected to the trigger should have squared corners, while\n // the opposite end has rounded corners. We apply a CSS class to swap the\n // border-radius based on the overlay position.\n panelClass: 'mat-autocomplete-panel-above',\n };\n\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(this._element)\n .withLockedPosition()\n .withPositions([belowPosition, abovePosition]);\n\n return new OverlayConfig({\n positionStrategy,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n hasBackdrop: true,\n });\n }\n\n /** Returns a stream that emits whenever an action that should close the menu occurs. */\n private _menuClosingActions() {\n const backdrop = this.overlayRef!.backdropClick();\n const detachments = this.overlayRef!.detachments();\n\n return merge(backdrop, detachments).pipe(takeUntil(this._destroyed));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { C3DropdownComponent } from './components/c3-dropdown.component';\nimport { C3DropdownTrigger } from './directives/c3-dropdown.trigger';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\n@NgModule({\n imports: [CommonModule, OverlayModule],\n declarations: [C3DropdownComponent, C3DropdownTrigger],\n exports: [C3DropdownComponent, C3DropdownTrigger],\n})\nexport class C3DropdownModule {}\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nexport interface AlertConfig {\n text: string;\n width?: string;\n acceptText?: string;\n}\n\n@Component({\n selector: 'AlertDialogComponent',\n template: `\n <mat-dialog-content>\n <div [innerHtml]=\"data.text\"></div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button [mat-dialog-close]=\"true\">\n {{ data.acceptText || 'ok' }}\n </button>\n </mat-dialog-actions>\n `,\n standalone: false\n})\nexport class C3AlertDialogComponent {\n constructor(\n public dialogRef: MatDialogRef<C3AlertDialogComponent>,\n @Inject(MAT_DIALOG_DATA)\n public data: AlertConfig\n ) {}\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n}\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nexport interface ConfirmConfig {\r\n text: string;\r\n placeholder?: string;\r\n reject?: {\r\n color?: string;\r\n text?: string;\r\n };\r\n accept?: {\r\n color?: string;\r\n text: string;\r\n };\r\n width?: string;\r\n}\r\n\r\n@Component({\n selector: 'ConfirmDialogComponent',\n template: `\r\n <mat-dialog-content>\r\n <div [innerHtml]=\"data.text\"></div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions class=\"flex flex-row justify-end items-center\">\r\n <button mat-button mat-dialog-close [color]=\"data.reject?.color\">\r\n {{ data.reject?.text }}\r\n </button>\r\n <button mat-button [color]=\"data.accept?.color\" [mat-dialog-close]=\"true\">\r\n {{ data.accept?.text }}\r\n </button>\r\n </mat-dialog-actions>\r\n `,\n standalone: false\n})\r\nexport class ConfirmDialogComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef<ConfirmDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: ConfirmConfig\r\n ) {}\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { FormBuilder, FormControl, ValidatorFn } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nexport interface PromptConfig {\r\n text: string;\r\n defaultValue?: string;\r\n placeholder?: string;\r\n multiline?: boolean;\r\n validators?: ValidatorFn | ValidatorFn[];\r\n required?: boolean;\r\n reject?: {\r\n color: string;\r\n text: string;\r\n };\r\n accept?: {\r\n color: string;\r\n text: string;\r\n };\r\n width?: string;\r\n maxWidth?: string;\r\n}\r\n\r\n@Component({\n selector: 'PrompDialogComponent',\n template: `\r\n <div mat-dialog-title>{{ data.text }}</div>\r\n <mat-dialog-content>\r\n <mat-form-field>\r\n <mat-label *ngIf=\"data.placeholder\">{{ data.placeholder }}</mat-label>\r\n <input\r\n *ngIf=\"!data.multiline\"\r\n matInput\r\n [formControl]=\"result\"\r\n (keydown.enter)=\"dialogRef.close(result.value)\"\r\n />\r\n <textarea\r\n *ngIf=\"data.multiline\"\r\n matInput\r\n [formControl]=\"result\"\r\n cdkTextareaAutosize\r\n ></textarea>\r\n </mat-form-field>\r\n </mat-dialog-content>\r\n <mat-dialog-actions align=\"center\">\r\n <button mat-raised-button mat-dialog-close [class]=\"data.reject?.color\">\r\n {{ data.reject?.text }}\r\n </button>\r\n <button\r\n mat-raised-button\r\n [disabled]=\"result.invalid || (data.required && !result.value)\"\r\n [class]=\"data.accept?.color\"\r\n [mat-dialog-close]=\"result.value\"\r\n >\r\n {{ data.accept?.text }}\r\n </button>\r\n </mat-dialog-actions>\r\n `,\n styles: [\n `\r\n mat-form-field {\r\n width: 100%;\r\n }\r\n `,\n ],\n standalone: false\n})\r\nexport class C3PromptDialogComponent {\r\n result: FormControl;\r\n constructor(\r\n public dialogRef: MatDialogRef<C3PromptDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: PromptConfig,\r\n private _fb: FormBuilder\r\n ) {\r\n this.result = this._fb.control(data.defaultValue, data.validators);\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","import { ComponentType } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n Inject,\n Signal,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n signal,\n} from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'C3DialogEmbedChildComponent',\n template: `\n <div [class]=\"'dialog-content-container ' + (data.classContainer || '')\">\n @if (data.toolbar) {\n <mat-toolbar\n [color]=\"data.toolbar.color || 'default'\"\n class=\"py-1\"\n >\n <span>{{ data.toolbar.title }}</span>\n <span class=\"spacer\"></span>\n <button\n *ngIf=\"data.toolbar.closeBtn\"\n mat-icon-button\n mat-dialog-close\n color=\"{{ data.toolbar.closeColor }}\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </mat-toolbar>\n }\n\n <div [class]=\"'dialog-content ' + (data.classContent || '')\">\n <!-- Si templateRef est présent, on l'affiche directement,\n sinon on laisse la place au composant dynamique -->\n @if (data.templateRef) {\n <ng-container\n *ngTemplateOutlet=\"data.templateRef\"\n ></ng-container>\n }\n @else {\n <ng-template #target></ng-template>\n }\n </div>\n\n @if (data.actions && data.actions.length > 0) {\n <div [class]=\"'dialog-actions ' + (data.classActions || '')\">\n @for (action of data.actions; track action.label) {\n @switch (action.apperance) {\n @case ('basic') {\n <button\n [class]=\"action.class\"\n (click)=\"action.action()\"\n >\n {{ action.label }}\n </button>\n }\n @case ('raised') {\n <button\n mat-raised-button\n [class]=\"action.class\"\n (click)=\"action.action()\"\n >\n {{ action.label }}\n </button>\n }\n @case ('stroked') {\n <button\n mat-stroked-button\n [class]=\"action.class\"\n (click)=\"action.action()\"\n >\n {{ action.label }}\n </button>\n }\n @case ('flat') {\n <button\n mat-flat-button\n [class]=\"action.class\"\n (click)=\"action.action()\"\n >\n {{ action.label }}\n </button>\n }\n @default {\n <button\n mat-button\n [class]=\"action.class\"\n (click)=\"action.action()\"\n >\n {{ action.label }}\n </button>\n }\n }\n }\n </div>\n }\n </div>\n `,\n styles: [\n `\n .dialog-content-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n padding: 1rem;\n overflow: auto;\n\n .dialog-content {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: auto;\n flex-grow: 1;\n }\n .mat-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-radius: 0.25rem;\n span {\n color: inherit;\n }\n }\n .spacer {\n flex: 1 1 auto;\n min-width: 16px;\n }\n }\n\n .dialog-actions {\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n }\n `,\n ],\n standalone: false,\n})\nexport class C3DialogEmbedChildComponent<C> implements AfterViewInit {\n @ViewChild('target', { read: ViewContainerRef })\n target!: ViewContainerRef;\n\n // On utilise un signal pour stocker la référence du composant créé\n createdComponent = signal<ComponentRef<C> | null>(null);\n\n constructor(\n public dialogRef: MatDialogRef<C3DialogEmbedChildComponent<C>>,\n @Inject(MAT_DIALOG_DATA)\n public data: {\n // Soit component, soit templateRef, ou les deux (mais on utilise en priorité un templateRef si fourni)\n component?: ComponentType<C>;\n templateRef?: TemplateRef<any>;\n\n // Pour les inputs du composant\n inputs?: Partial<Record<keyof C, unknown>>;\n\n // Classes CSS\n classActions?: string;\n classContainer?: string;\n classContent?: string;\n\n // Toolbar\n toolbar?: {\n title: string;\n closeBtn?: boolean;\n closeColor?: string;\n color?: string;\n };\n\n // Boutons d’action\n actions?: {\n label: string;\n apperance?: 'basic' | 'raised' | 'stroked' | 'flat';\n class?: string;\n action: () => void;\n }[];\n },\n private _cdr: ChangeDetectorRef\n ) { }\n\n ngAfterViewInit() {\n // Si on a un composant, on le crée dynamiquement\n if (this.data.component && !this.data.templateRef) {\n const compRef = this.target.createComponent(this.data.component);\n this.createdComponent.set(compRef);\n\n // Injecter les inputs dans le composant\n if (this.data.inputs) {\n this._setInputs(\n this.data.component,\n this.data.inputs,\n compRef\n );\n }\n }\n // Si on a juste un templateRef, on ne crée pas de composant :\n // l’affichage est déjà géré dans le template via <ng-template *ngTemplateOutlet=\"...\">\n else if (this.data.templateRef) {\n this.createdComponent.set(null);\n }\n // Si on n’a rien, on ferme le dialog\n else {\n this.dialogRef.close(false);\n }\n\n // Déclenche manuellement le cycle de détection pour actualiser l'affichage\n this._cdr.detectChanges();\n }\n\n /**\n * Retourne la référence du composant créé (s’il y en a un),\n * utile pour le service ou l’appelant.\n */\n public createdComponentInstance(): ComponentRef<C> | null {\n return this.createdComponent();\n }\n\n // Récupère la liste des @Input déclarés sur le composant\n private _getInputProperties<C>(component: Type<C>) {\n const inputs: string[] = [];\n const declaredInputs: Partial<Record<keyof C, string>> =\n component.prototype?.constructor['ɵcmp']?.declaredInputs;\n for (const input of Object.keys(declaredInputs)) {\n inputs.push(input);\n }\n return inputs;\n }\n\n // Assigne les inputs passés en configuration au composant dynamique\n private _setInputs<C>(\n component: Type<C>,\n inputs: Partial<Record<keyof C, unknown>>,\n componentRef: ComponentRef<C>\n ) {\n const inputProperties = this._getInputProperties(component);\n for (const key of inputProperties) {\n if (inputs[key as keyof C] !== undefined) {\n componentRef.setInput(key, inputs[key as keyof C]);\n }\n }\n }\n}\n","import { Component, signal, TemplateRef, viewChild } from '@angular/core';\nimport { C3CreateDialogFromComponentResult } from '../../services/c3-dialog.service';\n\n@Component({\n selector: 'c3-dialog-template',\n standalone: false,\n templateUrl: './c3-dialog-template.component.html',\n styleUrl: './c3-dialog-template.component.scss',\n})\nexport class C3DialogTemplateComponent {\n public readonly templateRef = viewChild('internalTemplate', {\n read: TemplateRef,\n });\n\n public readonly dialogRef = signal<C3CreateDialogFromComponentResult<unknown> | null>(null)\n}\n","<ng-template #internalTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import {\n ComponentRef,\n Injectable,\n Injector,\n TemplateRef,\n effect,\n inject,\n} from '@angular/core';\nimport {\n MatDialog,\n MatDialogConfig,\n MatDialogContainer,\n MatDialogRef,\n MatDialogState,\n} from '@angular/material/dialog';\nimport {\n ConfirmConfig,\n ConfirmDialogComponent,\n} from '../components/c3-dialog-confirm.component';\nimport {\n PromptConfig,\n C3PromptDialogComponent,\n} from '../components/c3-dialog-prompt.component';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { C3DialogEmbedChildComponent } from '../components/c3-dialog-embed-child.component';\nimport { Observable, Subject } from 'rxjs';\nimport {\n AlertConfig,\n C3AlertDialogComponent,\n} from '../components/c3-dialog-alert.component';\n\nexport type C3CreateDialogFromComponentConfig<C> = MatDialogConfig<\n Partial<Record<keyof C, unknown>>\n> & {\n component: ComponentType<C>;\n toolbar?: {\n title: string;\n closeBtn?: boolean;\n closeColor?: string;\n color?: string;\n };\n classActions?: string;\n classContainer?: string;\n classContent?: string;\n actions?: {\n label: string;\n class?: string;\n apperance?: 'basic' | 'raised' | 'stroked' | 'flat';\n action: () => void;\n }[];\n};\n\nexport type C3CreateDialogFromComponentResult<C> = {\n _containerInstance: MatDialogContainer;\n rootComponentRef: ComponentRef<C3DialogEmbedChildComponent<C>> | null;\n rootComponentInstance: C3DialogEmbedChildComponent<C>;\n componentRef: ComponentRef<C> | null;\n componentInstance: C | undefined;\n id: string;\n disableClose: boolean;\n close: (dialogResult?: C) => void;\n afterClosed: () => Observable<C | null>;\n afterOpened: () => Observable<void>;\n beforeClosed: () => Observable<C | null>;\n backdropClick: () => Observable<MouseEvent>;\n getState: () => MatDialogState;\n keydownEvents: () => Observable<KeyboardEvent>;\n updateSize: () => void;\n updatePosition: () => void;\n addPanelClass: (className: string) => void;\n removePanelClass: (className: string) => void;\n afterComponentMounted: () => Observable<C3CreateDialogFromComponentResult<C>>;\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class C3DialogService {\n readonly #dialog = inject(MatDialog);\n private readonly _injector = inject(Injector);\n\n /**\n * Opens a confirm dialog and returns a promise that resolves to a boolean indicating whether the user accepted or rejected the confirmation.\n *\n * @param {ConfirmConfig} data Configuration options for the confirm dialog. See ConfirmConfig below.\n * @returns {C3ExtendedPromise<boolean>} A promise that resolves to `true` if the user accepted the confirmation, and `false` otherwise.\n */\n public confirm(data: ConfirmConfig) {\n const dialogRef = this.#dialog.open(ConfirmDialogComponent, {\n width: data.width || '250px',\n data: {\n text: data.text,\n reject: {\n color:\n data.reject && data.reject.color ? data.reject.color : undefined,\n text: (data.reject && data.reject.text) || 'Annuler',\n },\n accept: {\n color: (data.accept && data.accept.color) || 'primary',\n text: (data.accept && data.accept.text) || 'Accepter',\n },\n },\n });\n\n return new Promise<boolean>((resolve, reject) => {\n dialogRef.afterClosed().subscribe({\n next: (value) => {\n resolve(value);\n },\n error: reject,\n });\n });\n }\n\n /**\n * Opens a prompt dialog and returns a promise that resolves to the value entered by the user, or `false` if the user cancelled the prompt.\n *\n * @param {PromptConfig} data Configuration options for the prompt dialog. See PromptConfig below.\n * @returns {C3ExtendedPromise<false | T>} A promise that resolves to the value entered by the user, or `false` if the user cancelled the prompt.\n */\n public prompt(data: PromptConfig): Promise<false | string> {\n const dialogRef = this.#dialog.open<C3PromptDialogComponent, any, string>(\n C3PromptDialogComponent,\n {\n width: data.width || '250px',\n maxWidth: data.maxWidth || '100vw',\n data: {\n text: data.text,\n defaultValue: data.defaultValue,\n placeholder: data.placeholder,\n multiline: data.multiline,\n validators: data.validators,\n required: data.required,\n reject: {\n color:\n data.reject && data.reject.color ? data.reject.color : undefined,\n text: (data.reject && data.reject.text) || 'Annuler',\n },\n accept: {\n color: (data.accept && data.accept.color) || 'primary',\n text: (data.accept && data.accept.text) || 'Accepter',\n },\n },\n }\n );\n\n return new Promise<string | false>((resolve, reject) => {\n dialogRef.afterClosed().subscribe({\n next: (value) => {\n if (value === undefined) {\n resolve(false);\n } else {\n resolve(value);\n }\n },\n error: reject,\n });\n });\n }\n\n /**\n * Opens a dialog with the provided component and inputs.\n * @param {C3CreateDialogFromComponentConfig<C>} config Configuration options for the dialog. See MatDialogConfig below.\n * @returns {MatDialogRef<C> & {component: ComponentRef<C> | undefined}} The dialog reference.\n */\n createDialogFromComponent<C>({\n component,\n toolbar,\n data,\n classContainer,\n classContent,\n classActions,\n actions,\n ...config\n }: C3CreateDialogFromComponentConfig<C>) {\n if (!component) throw new Error('No component provided');\n\n const dialog = this.#dialog.open(C3DialogEmbedChildComponent<C>, {\n ...config,\n data: {\n component,\n toolbar,\n inputs: data,\n classActions,\n classContainer,\n classContent,\n actions\n },\n });\n\n return this.createC3DialogResult(dialog);\n }\n\n /**\n * Ouvre un dialog à partir d'un TemplateRef.\n * @param templateRef Le TemplateRef à afficher dans la boîte de dialogue.\n * @param config (optionnel) Configuration pour le MatDialog (dimensions, position, etc.).\n */\n public createDialogFromTemplate(\n templateRef: TemplateRef<any>,\n config?: MatDialogConfig\n ): C3CreateDialogFromComponentResult<unknown> {\n // On ouvre le même composant hôte (C3DialogEmbedChildComponent)\n // mais on lui passe un paramètre templateRef plutôt qu'un component.\n const dialogRef = this.#dialog.open(C3DialogEmbedChildComponent<unknown>, {\n ...config,\n data: {\n templateRef,\n },\n });\n\n // On réutilise la méthode générique pour envelopper le MatDialogRef\n return this.createC3DialogResult(dialogRef);\n }\n\n public alert(text: string, data?: AlertConfig) {\n const dialogRef = this.#dialog.open(C3AlertDialogComponent, {\n data: {\n ...data,\n text,\n },\n });\n\n return dialogRef.afterClosed();\n }\n\n private createC3DialogResult<C>(\n dialog: MatDialogRef<C3DialogEmbedChildComponent<C>>\n ) {\n const _afterComponentMounted = new Subject<\n C3CreateDialogFromComponentResult<C>\n >();\n\n const result: C3CreateDialogFromComponentResult<C> = {\n _containerInstance: dialog._containerInstance,\n rootComponentRef: dialog.componentRef,\n rootComponentInstance: dialog.componentInstance,\n componentRef: dialog.componentInstance.createdComponent(),\n componentInstance: dialog.componentInstance.createdComponent()?.instance,\n id: dialog.id,\n disableClose: dialog.disableClose || false,\n close: dialog.close.bind(dialog),\n afterClosed: dialog.afterClosed.bind(dialog),\n afterOpened: dialog.afterOpened.bind(dialog),\n beforeClosed: dialog.beforeClosed.bind(dialog),\n backdropClick: dialog.backdropClick.bind(dialog),\n getState: dialog.getState.bind(dialog),\n keydownEvents: dialog.keydownEvents.bind(dialog),\n updateSize: dialog.updateSize.bind(dialog),\n updatePosition: dialog.updatePosition.bind(dialog),\n addPanelClass: dialog.addPanelClass.bind(dialog),\n removePanelClass: dialog.removePanelClass.bind(dialog),\n afterComponentMounted: () => _afterComponentMounted.asObservable(),\n };\n\n effect(\n () => {\n if (dialog.componentInstance.createdComponent()) {\n result.componentRef = dialog.componentInstance.createdComponent();\n result.componentInstance =\n dialog.componentInstance.createdComponent()?.instance;\n _afterComponentMounted.next(result);\n }\n },\n {\n injector: this._injector,\n }\n );\n\n return result;\n }\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { C3DialogTemplateComponent } from '../components/c3-dialog-template/c3-dialog-template.component';\nimport { C3DialogService } from '../services/c3-dialog.service';\nimport { MatDialogConfig } from '@angular/material/dialog';\n\n@Directive({\n selector: '[c3-dialog]',\n standalone: false,\n host: {\n '(click)': 'openDialog($event)'\n }\n})\nexport class C3OpenDialogDirective {\n public readonly template = input<C3DialogTemplateComponent>(undefined, {\n alias: 'c3-dialog'\n });\n public readonly config = input<MatDialogConfig>(undefined, {\n alias: 'c3-dialog-config'\n });\n\n private readonly _dialog = inject(C3DialogService)\n\n\n private openDialog($event: MouseEvent) {\n if (!this.template()?.templateRef()) return;\n\n const dialog = this._dialog.createDialogFromTemplate(this.template()!.templateRef()!, this.config())\n this.template()?.dialogRef.set(dialog)\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { ConfirmDialogComponent } from './components/c3-dialog-confirm.component';\nimport { C3DialogEmbedChildComponent } from './components/c3-dialog-embed-child.component';\nimport { C3PromptDialogComponent } from './components/c3-dialog-prompt.component';\nimport { C3DialogService } from './services/c3-dialog.service';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { C3AlertDialogComponent } from './components/c3-dialog-alert.component';\nimport { C3DialogTemplateComponent } from './components/c3-dialog-template/c3-dialog-template.component';\nimport { C3OpenDialogDirective } from './directives/c3-open-dialog.directive';\n\n@NgModule({\n declarations: [\n C3AlertDialogComponent,\n ConfirmDialogComponent,\n C3PromptDialogComponent,\n C3DialogEmbedChildComponent,\n C3DialogTemplateComponent,\n C3OpenDialogDirective,\n ],\n imports: [\n CommonModule,\n FormsModule,\n MatButtonModule,\n MatDialogModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatToolbarModule,\n ReactiveFormsModule,\n ],\n exports: [\n C3DialogTemplateComponent,\n C3OpenDialogDirective\n ],\n providers: [C3DialogService],\n})\nexport class C3DialogModule { }\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { BehaviorSubject, debounceTime, filter, skip } from 'rxjs';\n\n@Directive({\n selector: '[C3FullScreen], [c3-full-screen]',\n standalone: false\n})\nexport class FullScreenDirective {\n @Input('c3Screenfull')\n set fullscreenState(value: Boolean | null) {\n this._fullscreenState.next(value?.valueOf() || false);\n }\n\n @Input('c3-full-screen')\n set fullscreenStateSetter(value: Boolean | null) {\n this.fullscreenState = value;\n }\n\n private _fullscreenState = new BehaviorSubject(false);\n\n constructor(private el: ElementRef) {\n this._fullscreenState\n .pipe(\n filter((value) => value !== null),\n skip(2),\n debounceTime(100)\n )\n .subscribe(() => {\n this.defineState();\n });\n }\n\n private defineState() {\n if (this._fullscreenState.getValue()) {\n const element: any = this.el.nativeElement;\n\n const requestMethod =\n element.requestFullscreen ||\n element.webkitRequestFullScreen ||\n element.mozRequestFullScreen ||\n element.msRequestFullScreen;\n\n if (requestMethod) {\n // Native full screen.\n requestMethod.call(element);\n } else {\n console.log('FullScreen Request Method Not Supported on this browser.');\n }\n } else {\n const element: any = document;\n\n const requestMethod =\n element.cancelFullscreen ||\n element.webkitExitFullscreen ||\n element.webkitCancelFullScreen ||\n element.mozCancelFullScreen ||\n element.msExitFullScreen;\n\n if (requestMethod) {\n // Native Cancel full screen.\n requestMethod.call(element);\n } else {\n console.log(\n 'FullScreen Cancel Request Method Not Supported on this browser.'\n );\n }\n }\n }\n}\n","import { Component, Host, Input } from '@angular/core';\nimport { C3FileViewer } from '../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer-actions',\n templateUrl: './c3-file-viewer-actions.component.html',\n standalone: false\n})\nexport class C3FileViewerActionsComponent {\n @Input()\n fileViewer!: C3FileViewer;\n\n get config() {\n return this.fileViewer.config;\n }\n}\n","<div class=\"nav-button-container\">\n <button\n *ngIf=\"config.btnShow?.prev\"\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.previousImage($event)\"\n [disabled]=\"fileViewer.currentIndex === 0\"\n >\n <span\n *ngIf=\"config.btnIcons?.prev?.classes\"\n [class]=\"config.btnIcons?.prev?.classes\"\n ></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.prev?.text\"\n (click)=\"fileViewer.previousImage($event)\"\n >\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.prev?.text }}</span>\n </a>\n <button\n *ngIf=\"config.btnShow?.next\"\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.nextImage($event)\"\n [disabled]=\"fileViewer.currentIndex === fileViewer.files.length - 1\"\n >\n <span\n *ngIf=\"config.btnIcons?.next?.classes\"\n [class]=\"config.btnIcons?.next?.classes\"\n ></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.next?.text\"\n (click)=\"fileViewer.nextImage($event)\"\n >\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.next?.text }}</span>\n </a>\n</div>\n\n<!-- Button Container -->\n<div\n class=\"btn-container\"\n [class]=\"config.btnContainerClass\"\n *ngIf=\"fileViewer.currentFile.type.startsWith('image')\"\n>\n <!-- Rotate Counter Clockwise -->\n <ng-container *ngIf=\"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 </ng-container>\n\n <!-- Rotate Clockwise -->\n <ng-container *ngIf=\"config.btnShow?.rotateClockwise\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.rotateClockwise()\"\n *ngIf=\"config.btnIcons?.rotateClockwise?.classes\"\n >\n <span [class]=\"config.btnIcons?.rotateClockwise?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.rotateClockwise?.text\"\n (click)=\"fileViewer.rotateClockwise()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.rotateClockwise?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Zoom Out -->\n <ng-container *ngIf=\"config.btnShow?.zoomOut\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.zoomOut()\"\n *ngIf=\"config.btnIcons?.zoomOut?.classes\"\n >\n <span [class]=\"config.btnIcons?.zoomOut?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.zoomOut?.text\"\n (click)=\"fileViewer.zoomOut()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.zoomOut?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Zoom In -->\n <ng-container *ngIf=\"config.btnShow?.zoomIn\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.zoomIn()\"\n *ngIf=\"config.btnIcons?.zoomIn?.classes\"\n >\n <span [class]=\"config.btnIcons?.zoomIn?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.zoomIn?.text\"\n (click)=\"fileViewer.zoomIn()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.zoomIn?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Fullscreen -->\n <ng-container *ngIf=\"config.allowFullscreen\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.toggleFullscreen()\"\n *ngIf=\"config.btnIcons?.fullscreen?.classes\"\n >\n <span [class]=\"config.btnIcons?.fullscreen?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.fullscreen?.text\"\n (click)=\"fileViewer.toggleFullscreen()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.fullscreen?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Reset -->\n <ng-container *ngIf=\"config.btnShow?.reset\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.reset()\"\n *ngIf=\"config.btnIcons?.reset?.classes\"\n >\n <span [class]=\"config.btnIcons?.reset?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.reset?.text\"\n (click)=\"fileViewer.reset()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.reset?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Custom Buttons -->\n <ng-container *ngFor=\"let cBtn of config.customBtns\">\n <button *ngIf=\"cBtn.icon.classes\" type=\"button\" [class]=\"config.btnClass\">\n <span *ngIf=\"cBtn.icon.classes\" [class]=\"cBtn.icon.classes\"></span>\n </button>\n <ng-container *ngIf=\"cBtn.icon.text\">\n <a [class]=\"config.btnClass\" *ngIf=\"cBtn.icon.text\">\n <span [class]=\"config.btnSubClass\">{{ cBtn.icon.text }}</span>\n </a>\n </ng-container>\n </ng-container>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'c3SafeUrl',\n standalone: true,\n})\nexport class C3SafeUrlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n transform(url: string | null) {\n return url ? this.sanitizer.bypassSecurityTrustResourceUrl(url) : '';\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { C3FileViewer } from '../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer-image, [c3-file-viewer-image]',\n templateUrl: './c3-file-viewer-image.component.html',\n standalone: false\n})\nexport class C3FileViewerImageComponent {\n @Input()\n public fileViewer!: C3FileViewer;\n\n @Output()\n dragstart = new EventEmitter<DragEvent>();\n}\n","<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","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { C3FileViewer } from '../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer-pdf',\n templateUrl: './c3-file-viewer-pdf.component.html',\n encapsulation: ViewEncapsulation.None,\n host: {\n style: 'display: block',\n class: 'c3-file-viewer-pdf',\n },\n standalone: false\n})\nexport class C3FileViewerPdfComponent {\n @Input()\n public fileViewer!: C3FileViewer;\n\n @Output()\n dragstart = new EventEmitter<DragEvent>();\n}\n","<!-- 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","import { Component, Input } from '@angular/core';\nimport { FileMetadata } from '../../models/file-metadata';\nimport { Subject, filter, mergeMap, tap } from 'rxjs';\nimport { C3FileViewer } from '../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer-video',\n templateUrl: './c3-file-viewer-video.component.html',\n standalone: false\n})\nexport class C3FileViewerVideoComponent {\n @Input('file')\n set _srcUpdated({ location }: FileMetadata) {\n this.src$.next(location);\n }\n src = '';\n private src$ = new Subject<string>();\n\n @Input()\n public fileViewer!: C3FileViewer;\n\n constructor() {\n this.src$\n .pipe(\n mergeMap((src) => this.fileViewer.getFile(src)),\n filter((blob) => blob.type.startsWith('application/pdf')),\n tap((blob) => (this.src = URL.createObjectURL(blob)))\n )\n .subscribe({\n next: () => null,\n error: (error) => {\n console.log(error);\n },\n });\n }\n}\n","<video controls [src]=\"src\" crossorigin=\"*\"></video>\n","import {\n Component,\n EventEmitter,\n HostListener,\n Inject,\n Input,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { C3FileViewerConfig } from '../../../models/file-viewer-config.model';\nimport { CustomFileEvent } from '../../../models/custom-file-event.model';\nimport { HttpClient } from '@angular/common/http';\nimport { C3FileViewer } from '../../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer',\n templateUrl: './c3-file-viewer.component.html',\n styleUrls: ['./c3-file-viewer.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'c3-file-viewer',\n },\n standalone: false\n})\nexport class C3FileViewerComponent implements OnInit {\n @Input()\n public screenHeightOccupied?: 0; // In Px\n\n @Input()\n public fileViewer!: C3FileViewer;\n\n @Output()\n public indexChange: EventEmitter<number> = new EventEmitter();\n\n @Output()\n public configChange: EventEmitter<C3FileViewerConfig> = new EventEmitter();\n\n @Output()\n public customFileEvent: EventEmitter<CustomFileEvent> = new EventEmitter();\n\n constructor(\n @Optional() @Inject('config') public moduleConfig: C3FileViewerConfig,\n public _http: HttpClient\n ) { }\n\n ngOnInit() {\n this.defineStyleHeight();\n\n this.fileViewer.customFile$.subscribe((event) => {\n this.customFileEvent.emit(event);\n });\n\n this.fileViewer.index$.subscribe((index) => {\n this.indexChange.emit(index);\n });\n\n this.fileViewer.config$.subscribe((config) => {\n this.configChange.emit(config);\n });\n }\n\n @HostListener('mouseover')\n onMouseOver() {\n if (this.fileViewer) this.fileViewer.hovered = true;\n }\n\n @HostListener('mouseleave')\n onMouseLeave() {\n if (this.fileViewer) this.fileViewer.hovered = false;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['screenHeightOccupied'] && this.fileViewer)\n this.defineStyleHeight();\n }\n\n @HostListener('window:keyup.ArrowRight', ['$event'])\n next(event: KeyboardEvent) {\n this.fileViewer.nextImage(event);\n }\n\n @HostListener('window:keyup.ArrowLeft', ['$event'])\n previous(event: KeyboardEvent) {\n this.fileViewer.previousImage(event);\n }\n\n defineStyleHeight() {\n this.fileViewer.styleHeight =\n 'calc(100% - ' + this.screenHeightOccupied + 'px)';\n }\n}\n","<div\n class=\"c3-file-container\"\n *ngIf=\"fileViewer\"\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 <c3-file-viewer-image\n *ngIf=\"fileViewer.currentFile.type.startsWith('image')\"\n [fileViewer]=\"fileViewer\"\n [style]=\"fileViewer.style\"\n (dragstart)=\"fileViewer.onDragStart($event)\"\n />\n\n <c3-file-viewer-video\n *ngIf=\"fileViewer.currentFile.type.startsWith('video')\"\n />\n\n <c3-file-viewer-pdf\n *ngIf=\"fileViewer.currentFile.type.startsWith('application/pdf')\"\n [fileViewer]=\"fileViewer\"\n />\n <!-- Div below will be used to hide the 'ghost' image when dragging -->\n <div></div>\n <div class=\"spinner-container\" *ngIf=\"fileViewer.loading\">\n <div class=\"spinner\"></div>\n </div>\n\n <c3-file-viewer-actions [fileViewer]=\"fileViewer\" />\n</div>\n","import { C3FileViewerConfig } from '../models/file-viewer-config.model';\n\nexport const DEFAULT_CONFIG: C3FileViewerConfig = {\n btnContainerClass: 'btn-container',\n btnClass: 'default',\n btnSubClass: 'material-icons',\n zoomFactor: 0.1,\n containerBackgroundColor: '#00000000',\n wheelZoom: false,\n allowFullscreen: true,\n allowKeyboardNavigation: true,\n btnShow: {\n zoomIn: true,\n zoomOut: true,\n rotateClockwise: true,\n rotateCounterClockwise: true,\n next: true,\n prev: true,\n reset: true,\n },\n btnIcons: {\n zoomIn: {\n text: 'zoom_in',\n },\n zoomOut: {\n text: 'zoom_out',\n },\n rotateClockwise: {\n text: 'rotate_right',\n },\n rotateCounterClockwise: {\n text: 'rotate_left',\n },\n fullscreen: {\n text: 'fullscreen',\n },\n reset: {\n text: 'restore',\n },\n },\n};\n","export class CustomFileEvent {\n public name: string;\n public fileUrl: string;\n\n constructor(name: string, fileUrl: string) {\n this.name = name;\n this.fileUrl = fileUrl;\n }\n}\n","import { BehaviorSubject, Observable, map, mergeMap, of, tap } from 'rxjs';\nimport { DEFAULT_CONFIG } from '../consts/default.config';\nimport { C3FileViewerConfig } from './file-viewer-config.model';\nimport { HttpClient } from '@angular/common/http';\nimport { CustomFileEvent } from './custom-file-event.model';\nimport { FileMetadata, VariantFile } from './file-metadata';\n\nexport class C3FileViewer {\n private _config: C3FileViewerConfig = DEFAULT_CONFIG;\n private client: HttpClient['get'] | undefined;\n get config(): C3FileViewerConfig {\n return this._config;\n }\n\n set config(value: C3FileViewerConfig) {\n this._config = this.mergeConfig(DEFAULT_CONFIG, value);\n this.config$.next(this._config);\n }\n public config$ = new BehaviorSubject<C3FileViewerConfig>(DEFAULT_CONFIG);\n\n public fullscreen$ = new BehaviorSubject<Boolean>(false);\n\n public customFile$ = new BehaviorSubject<any>(null);\n public index$ = new BehaviorSubject<number>(0);\n public loading: boolean = true;\n public currentIndex: number = 0;\n\n get currentFile(): FileMetadata {\n return this.filesObjectUrl[this.currentIndex];\n }\n\n public style = {\n transform: '',\n msTransform: '',\n oTransform: '',\n webkitTransform: '',\n minHeight: 'auto',\n maxHeight: 'auto',\n height: 'auto',\n minWidth: 'auto',\n maxWidth: 'auto',\n width: 'auto',\n };\n public styleHeight = '100%';\n public hovered = false;\n\n public set files(newFiles: FileMetadata[]) {\n this._files = newFiles;\n this.currentIndex = 0;\n this.index$.next(this.currentIndex);\n\n for (const file of newFiles) {\n this.filesObjectUrl.push({\n ...file,\n objectUrl: file.objectUrl || this.createObjectURL(file),\n });\n\n if (file.alternativeVersions)\n for (const alternativeVersion of file.alternativeVersions) {\n this.filesObjectUrl.push({\n ...file,\n ...alternativeVersion,\n objectUrl: this.createObjectURL(alternativeVersion),\n });\n }\n }\n }\n\n public get files(): FileMetadata[] {\n return this._files;\n }\n\n private _files: FileMetadata[] = [];\n\n public filesObjectUrl: Array<\n FileMetadata & {\n objectUrl: Observable<string>;\n }\n > = [];\n\n private locationBlobMap = new Map<string, string>();\n\n private scale = 1;\n private rotation = 0;\n private translateX = 0;\n private translateY = 0;\n private prevX: number = 0;\n private prevY: number = 0;\n\n constructor({\n config,\n files,\n client,\n }: {\n config?: C3FileViewerConfig;\n files?: FileMetadata[];\n client: HttpClient;\n }) {\n if (config) this.config = config;\n if (client) this.client = client.get.bind(client);\n if (files) this.files = files;\n\n this.config$.subscribe((config) => {\n const { minHeight, maxHeight, minWidth, maxWidth, height, width } =\n config;\n this.style.minHeight = this.valueToCss(minHeight);\n this.style.height = this.valueToCss(height);\n this.style.width = this.valueToCss(width);\n this.style.maxHeight = this.valueToCss(maxHeight);\n this.style.minWidth = this.valueToCss(minWidth);\n this.style.maxWidth = this.valueToCss(maxWidth);\n this.styleHeight = this.valueToCss(height);\n\n this.updateStyle();\n });\n }\n\n createObjectURL(file: FileMetadata | VariantFile) {\n this.onLoadStart();\n return of(file.location).pipe(\n mergeMap((location) =>\n this.locationBlobMap.has(location)\n ? of(this.locationBlobMap.get(location)!)\n : this.getFile(location).pipe(\n map((response) => URL.createObjectURL(response)),\n tap((url) => this.locationBlobMap.set(location, url))\n )\n ),\n tap(() => this.onLoad())\n );\n }\n\n getFile(location: string) {\n const client = this.config.customClient || this.client;\n if (!client) {\n throw new Error(\n 'No http client provided. Please provide a custom client or import HttpClientModule'\n );\n }\n\n return client(location, {\n responseType: 'blob',\n });\n }\n\n previousImage(event: KeyboardEvent | MouseEvent) {\n if (this.canNavigate(event)) {\n this.loading = true;\n if (this.currentIndex > 0) this.currentIndex--;\n else this.currentIndex = this.files.length - 1;\n this.index$.next(this.currentIndex);\n this.reset();\n }\n }\n\n nextImage(event: KeyboardEvent | MouseEvent) {\n if (this.canNavigate(event)) {\n this.loading = true;\n if (this.currentIndex < this.files.length - 1) this.currentIndex++;\n else this.currentIndex = 0;\n this.index$.next(this.currentIndex);\n this.reset();\n }\n }\n\n zoomIn() {\n this.scale *= 1 + (this.config.zoomFactor || 0);\n this.updateStyle();\n }\n\n zoomOut() {\n if (this.scale > (this.config.zoomFactor || 0)) {\n this.scale /= 1 + (this.config.zoomFactor || 0);\n }\n this.updateStyle();\n }\n\n scrollZoom(evt: WheelEvent) {\n if (this.config.wheelZoom) {\n evt.deltaY > 0 ? this.zoomOut() : this.zoomIn();\n return false;\n } else {\n return true;\n }\n }\n\n rotateClockwise() {\n this.rotation += 90;\n this.updateStyle();\n }\n\n rotateCounterClockwise() {\n this.rotation -= 90;\n this.updateStyle();\n }\n\n onLoad() {\n this.loading = false;\n }\n\n onLoadStart() {\n this.loading = true;\n }\n\n imageNotFound(file: FileMetadata) {\n this.loading = false;\n this.customFile$.next(new CustomFileEvent('imageNotFound', file.location));\n }\n\n onDragOver(evt: DragEvent) {\n this.translateX += evt.clientX - this.prevX;\n this.translateY += evt.clientY - this.prevY;\n this.prevX = evt.clientX;\n this.prevY = evt.clientY;\n this.updateStyle();\n }\n\n onDragStart(evt: DragEvent) {\n if (evt.target && evt.dataTransfer && evt.dataTransfer.setDragImage) {\n const target = evt.target as HTMLDivElement;\n const nextElementSibling = target.nextElementSibling as HTMLDivElement;\n\n if (nextElementSibling)\n evt.dataTransfer.setDragImage(nextElementSibling, 0, 0);\n }\n this.prevX = evt.clientX;\n this.prevY = evt.clientY;\n }\n\n toggleFullscreen() {\n const fullScreenValue = this.fullscreen$.getValue();\n this.fullscreen$.next(!fullScreenValue);\n if (fullScreenValue) this.reset();\n }\n\n reset() {\n this.scale = 1;\n this.rotation = 0;\n this.translateX = 0;\n this.translateY = 0;\n this.updateStyle();\n }\n\n private canNavigate(event: any) {\n return (\n event == null || (this.config.allowKeyboardNavigation && this.hovered)\n );\n }\n\n private updateStyle() {\n this.style.transform = `translate(${this.translateX}px, ${this.translateY}px) rotate(${this.rotation}deg) scale(${this.scale})`;\n this.style.msTransform = this.style.transform;\n this.style.webkitTransform = this.style.transform;\n this.style.oTransform = this.style.transform;\n }\n\n private valueToCss(value: number | string | undefined) {\n return value ? (typeof value === 'string' ? value : value + 'px') : 'auto';\n }\n\n private mergeConfig(\n defaultValues: C3FileViewerConfig,\n overrideValues: C3FileViewerConfig\n ): C3FileViewerConfig {\n let result: C3FileViewerConfig = { ...defaultValues };\n if (overrideValues) {\n result = { ...defaultValues, ...overrideValues };\n\n if (overrideValues.btnIcons) {\n result.btnIcons = {\n ...defaultValues.btnIcons,\n ...overrideValues.btnIcons,\n };\n }\n }\n return result;\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { C3FileViewer } from '../../../models/file-viewer';\n\n@Component({\n template: `\n <c3-file-viewer [fileViewer]=\"fileViewer\" [screenHeightOccupied]=\"0\" />\n `,\n standalone: false\n})\nexport class C3FileViewerDialog {\n constructor(@Inject(MAT_DIALOG_DATA) public fileViewer: C3FileViewer) {}\n}\n","import { Component, HostListener, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { C3FileViewer } from '../../../models/file-viewer';\nimport { C3FileViewerDialog } from './c3-file-viewer-dialog';\n\n@Component({\n selector: 'c3-file-viewer-dialog',\n template: ` <ng-content /> `,\n host: {\n class: 'c3-file-viewer-dialog',\n },\n standalone: false\n})\nexport class C3FileViewerDialogComponent {\n @Input()\n public fileViewer!: C3FileViewer;\n\n @Input()\n public dialogConfig: Partial<MatDialogConfig> = {\n panelClass: 'c3-file-viewer-dialog',\n width: '80%',\n height: '80%',\n };\n\n constructor(private _dialog: MatDialog) {}\n\n @HostListener('click')\n openDialog() {\n this._dialog.open(C3FileViewerDialog, {\n data: this.fileViewer,\n ...this.dialogConfig,\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FullScreenDirective } from './directives/full-screen.directive';\nimport { C3FileViewerComponent } from './components/public/c3-file-viewer/c3-file-viewer.component';\nimport { CommonModule } from '@angular/common';\nimport { C3FileViewerActionsComponent } from './components/c3-file-viewer-actions/c3-file-viewer-actions.component';\nimport { C3FileViewerImageComponent } from './components/c3-file-viewer-image/c3-file-viewer-image.component';\nimport { C3FileViewerPdfComponent } from './components/c3-file-viewer-pdf/c3-file-viewer-pdf.component';\nimport { C3FileViewerVideoComponent } from './components/c3-file-viewer-video/c3-file-viewer-video.component';\nimport {\n provideHttpClient,\n withInterceptorsFromDi,\n} from '@angular/common/http';\nimport { C3SafeUrlPipe } from '../../public-api';\nimport { C3FileViewerDialogComponent } from './components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { C3FileViewerDialog } from './components/public/c3-file-viewer-dialog/c3-file-viewer-dialog';\n\n@NgModule({\n declarations: [\n FullScreenDirective,\n C3FileViewerComponent,\n C3FileViewerActionsComponent,\n C3FileViewerImageComponent,\n C3FileViewerPdfComponent,\n C3FileViewerVideoComponent,\n C3FileViewerDialogComponent,\n C3FileViewerDialog,\n ],\n exports: [\n FullScreenDirective,\n C3FileViewerComponent,\n C3FileViewerDialogComponent,\n ],\n imports: [CommonModule, C3SafeUrlPipe, MatDialogModule],\n providers: [provideHttpClient(withInterceptorsFromDi())],\n})\nexport class C3FileViewerModule {}\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, input, output } from '@angular/core';\nimport { FileMetadata } from '../../c3-file-viewer/models/file-metadata';\nimport { Observable } from 'rxjs';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nexport type C3FileCardSize = '16' | '32' | '64' | '128' | '256';\n\n@Component({\n selector: 'c3-file-display-card',\n imports: [CommonModule, MatButtonModule, MatIconModule],\n templateUrl: './c3-file-display-card.component.html',\n styleUrl: './c3-file-display-card.component.scss'\n})\nexport class C3FileDisplayCardComponent {\n public readonly fileObjectUrl = input.required<\n | (FileMetadata & {\n objectUrl?: Observable<string>;\n })\n | null\n >();\n public readonly displayFn = input<(file: FileMetadata) => string>(\n (file) => file.name\n );\n\n public readonly deletable = input<boolean>(false);\n public readonly size = input<C3FileCardSize>('32');\n public readonly onDelete = output();\n\n public readonly getFileType = computed(() => {\n const file = this.fileObjectUrl();\n if (file && file.type) {\n if (file.type.startsWith('image')) return 'image';\n if (file.type.startsWith('application')) return 'application';\n if (file.type.startsWith('video')) return 'video';\n }\n return 'unknown';\n });\n\n public readonly getFileObjectUrl = computed((): Observable<string> | null => {\n const file = this.fileObjectUrl();\n return file && file.objectUrl ? file.objectUrl : null;\n });\n\n public readonly getFileName = computed((): string => {\n const file = this.fileObjectUrl();\n return file ? this.displayFn()(file) : '';\n });\n\n public readonly getDisplayName = computed((): string => {\n const file = this.fileObjectUrl();\n return file ? this.displayFn()(file) : '';\n });\n}\n","<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 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","import { CommonModule } from '@angular/common';\nimport {\n Component,\n effect,\n inject,\n input,\n output,\n viewChild,\n} from '@angular/core';\nimport { FileMetadata } from '../../c3-file-viewer/models/file-metadata';\nimport {\n C3FileCardSize,\n C3FileDisplayCardComponent,\n} from '../c3-file-display-card/c3-file-display-card.component';\nimport { C3FileViewerModule } from '../../c3-file-viewer/c3-file-viewer.module';\nimport { C3FileViewer } from '../../c3-file-viewer/models/file-viewer';\nimport { HttpClient } from '@angular/common/http';\nimport { C3FileViewerDialogComponent } from '../../c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component';\nimport { C3FileViewerConfig } from '../../c3-file-viewer/models/file-viewer-config.model';\n\n@Component({\n selector: 'c3-file-display-grid',\n imports: [CommonModule, C3FileDisplayCardComponent, C3FileViewerModule],\n templateUrl: './c3-file-display-grid.component.html',\n styleUrl: './c3-file-display-grid.component.scss'\n})\nexport class C3FileDisplayGridComponent {\n public readonly files = input.required<\n Array<\n FileMetadata & {\n location: string;\n }\n >\n >();\n public readonly config = input<C3FileViewerConfig>();\n public readonly cardSize = input<C3FileCardSize>('32');\n public readonly displayFn = input<\n (file: FileMetadata & { location: string }) => string\n >((file) => file.name);\n\n public readonly deletable = input<boolean>(false);\n public readonly onDelete = output<FileMetadata>();\n public readonly dialog = viewChild(C3FileViewerDialogComponent);\n\n public fileViewer = new C3FileViewer({\n client: inject(HttpClient),\n });\n\n constructor() {\n effect(\n () => {\n this.fileViewer.files = this.files();\n },\n );\n\n effect(\n () => {\n if (this.config()) this.fileViewer.config = this.config()!;\n },\n );\n }\n\n openDialog($event: MouseEvent, index: number): void {\n $event.stopPropagation();\n this.fileViewer.currentIndex = index;\n this.dialog()?.openDialog();\n }\n}\n","<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 />\n }\n </div>\n</c3-file-viewer-dialog>\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'c3-file-display-icon',\n imports: [CommonModule, MatIconModule],\n templateUrl: './c3-file-display-icon.component.html',\n styleUrl: './c3-file-display-icon.component.scss'\n})\nexport class C3FileDisplayIconComponent {\n public readonly fileType = input.required<string>();\n\n public readonly displayedIcon = computed(() => {\n switch (this.fileType()) {\n case 'image/webp':\n case 'image/png':\n case 'image/jpeg':\n case 'image/jpg':\n return 'image';\n case 'video/mp4':\n case 'video/webm':\n return 'play_circle';\n case 'application/pdf':\n return 'picture_as_pdf';\n case 'application/msword':\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n return 'description';\n default:\n return 'content_copy';\n }\n });\n\n public readonly color = computed(() => {\n switch (this.fileType()) {\n case 'image/webp':\n case 'image/png':\n case 'image/jpeg':\n case 'image/jpg':\n return 'text-primary';\n case 'video/mp4':\n case 'video/webm':\n return 'text-secondary';\n case 'application/pdf':\n return 'text-error';\n case 'application/msword':\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n return 'text-success';\n default:\n return 'text-gray';\n }\n });\n}\n","<mat-icon [ngClass]=\"color()\">{{ displayedIcon() }}</mat-icon>\n","import { Directive, HostListener } from '@angular/core';\n/**\n * A directive that prevents the default action and stops event propagation on click events.\n */\n@Directive({\n selector: '[c3-prevent-click]',\n standalone: true,\n})\nexport class C3PreventClickDirective {\n /**\n * HostListener for the 'click' event.\n * @param {MouseEvent} event - The MouseEvent object representing the click event.\n */\n @HostListener('click', ['$event'])\n public onClick(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\n\n/**\n * A directive that prevents the default action and stops event propagation on specified keyboard events.\n */\n@Directive({\n selector: '[c3-prevent-keyboard-event]',\n standalone: true,\n})\nexport class C3PreventKeyboardEventDirective {\n /**\n * The keyboard key to prevent the default action and stop event propagation for. Defaults to 'enter'.\n */\n @Input() key = 'enter';\n\n /**\n * HostListener for the 'keydown' event.\n * @param {KeyboardEvent} event - The KeyboardEvent object representing the keydown event.\n */\n @HostListener('keydown', ['$event'])\n public onKeyDown(event: KeyboardEvent): void {\n // Check if the key pressed matches the input key.\n if (event.key?.toLocaleLowerCase() === this.key.toLocaleLowerCase()) {\n // Prevent the default action associated with the event.\n event.preventDefault();\n // Stop the event from bubbling up the event chain.\n event.stopPropagation();\n }\n }\n}\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[c3-stop-click-propagation]',\n standalone: true,\n})\nexport class C3StopPropagationDirective {\n @HostListener('click', ['$event'])\n public onClick(event: MouseEvent): void {\n event.stopImmediatePropagation();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport {\n Component,\n effect,\n inject,\n input,\n output,\n viewChild,\n} from '@angular/core';\nimport { C3FileViewerDialogComponent } from '../../c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component';\nimport { FileMetadata } from '../../c3-file-viewer/models/file-metadata';\nimport { C3FileViewer } from '../../c3-file-viewer/models/file-viewer';\nimport { C3FileViewerConfig } from '../../c3-file-viewer/models/file-viewer-config.model';\nimport { MatIconModule } from '@angular/material/icon';\nimport { C3FileViewerModule } from '../../c3-file-viewer/c3-file-viewer.module';\nimport { C3FileDisplayIconComponent } from '../c3-file-display-icon/c3-file-display-icon.component';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatButtonModule } from '@angular/material/button';\nimport { C3StopPropagationDirective } from '../../c3-prevent-event';\n\n@Component({\n selector: 'c3-file-display-list',\n imports: [\n C3StopPropagationDirective,\n C3FileViewerModule,\n C3FileDisplayIconComponent,\n CommonModule,\n MatButtonModule,\n MatIconModule,\n MatNativeDateModule,\n MatMenuModule,\n ],\n templateUrl: './c3-file-display-list.component.html',\n styleUrl: './c3-file-display-list.component.scss'\n})\nexport class C3FileDisplayListComponent {\n public readonly files = input.required<\n Array<\n FileMetadata & {\n location: string;\n }\n >\n >();\n public readonly config = input<C3FileViewerConfig>();\n public readonly displayFn = input<\n (file: FileMetadata & { location: string }) => string\n >((file) => file.name);\n\n public readonly deletable = input<boolean>(false);\n public readonly onDelete = output<FileMetadata>();\n public readonly dialog = viewChild(C3FileViewerDialogComponent);\n\n public fileViewer = new C3FileViewer({\n client: inject(HttpClient),\n });\n\n constructor() {\n effect(\n () => {\n this.fileViewer.files = this.files();\n }\n );\n\n effect(\n () => {\n if (this.config()) this.fileViewer.config = this.config()!;\n }\n );\n }\n\n openDialog($event: MouseEvent, index: number): void {\n $event.stopPropagation();\n this.fileViewer.currentIndex = index;\n this.dialog()?.openDialog();\n }\n}\n","<!-- header -->\n<div class=\"header\">\n <div class=\"title full\">\n <span>Nom</span>\n </div>\n <div class=\"title\">\n <span>Date d'ajout</span>\n </div>\n <div class=\"actions\">\n <ng-content></ng-content>\n </div>\n</div>\n<c3-file-viewer-dialog [fileViewer]=\"fileViewer\">\n <div class=\"file-display-list\">\n @for (file of files(); track $index) {\n <button>\n <div class=\"icon\">\n <c3-file-display-icon [fileType]=\"file.type\" />\n </div>\n <div class=\"name\">\n <span>{{ displayFn()(file) }}</span>\n </div>\n <div class=\"date-label\">\n <span>{{\n file.lastModified ? (file.lastModified | date : \"medium\") : \"-\"\n }}</span>\n </div>\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</c3-file-viewer-dialog>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { C3FileDisplayGridComponent } from './c3-file-display-grid/c3-file-display-grid.component';\nimport { C3FileDisplayListComponent } from './c3-file-display-list/c3-file-display-list.component';\nimport { C3FileDisplayCardComponent } from './c3-file-display-card/c3-file-display-card.component';\nimport { C3FileDisplayIconComponent } from './c3-file-display-icon/c3-file-display-icon.component';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n C3FileDisplayGridComponent,\n C3FileDisplayListComponent,\n C3FileDisplayCardComponent,\n C3FileDisplayIconComponent,\n ],\n exports: [\n C3FileDisplayGridComponent,\n C3FileDisplayListComponent,\n C3FileDisplayCardComponent,\n C3FileDisplayIconComponent,\n ],\n})\nexport class C3FileDisplayerModule {}\n","import {\n Component,\n HostBinding,\n ViewEncapsulation,\n input,\n output,\n} from '@angular/core';\n\n@Component({\n selector: 'c3-expansion-header',\n templateUrl: './c3-expansion-header.component.html',\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class C3ExpansionHeaderComponent {\n public title = input<string>();\n public isExpanded = input<boolean>(false);\n public toggleExpand = output();\n\n @HostBinding('class') get hostClass() {\n return 'c3-expansion-header';\n }\n}\n","<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éduire' : 'Développer'\"\n >\n <mat-icon>{{\n isExpanded() ? \"expand_less\" : \"expand_more\"\n }}</mat-icon>\n </button>\n</ng-content>\n","import { AfterViewInit, Directive, ElementRef, Input } from '@angular/core';\nimport autoAnimate, {\n AutoAnimateOptions,\n AutoAnimationPlugin,\n} from '@formkit/auto-animate';\n\n@Directive({\n selector: '[c3AutoAnimate]',\n standalone: true,\n})\nexport class C3AutoAnimateDirective implements AfterViewInit {\n @Input() options?: Partial<AutoAnimateOptions> | AutoAnimationPlugin;\n constructor(private el: ElementRef) {}\n\n ngAfterViewInit(): void {\n autoAnimate(this.el.nativeElement, this.options);\n }\n}\n","import {\n Component,\n contentChild,\n effect,\n ElementRef,\n HostBinding,\n inject,\n input,\n model,\n OnDestroy,\n} from '@angular/core';\nimport { C3AutoAnimateDirective } from '../../../c3-auto-animate/c3-auto-animate.directive';\nimport { C3ExpansionHeaderComponent } from '../c3-expansion-header/c3-expansion-header.component';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'c3-expansion',\n templateUrl: './c3-expansion.component.html',\n hostDirectives: [\n {\n directive: C3AutoAnimateDirective,\n inputs: ['options'],\n },\n ],\n standalone: false\n})\nexport class C3ExpansionComponent implements OnDestroy {\n public headerClass = input<string>('c3-expansion-header');\n public isExpanded = model<boolean>(false);\n\n @HostBinding('class') get hostClass() {\n return 'c3-expansion';\n }\n\n public readonly _elementRef = inject(ElementRef);\n public readonly header = contentChild(C3ExpansionHeaderComponent);\n\n private expandSubsciption: Subscription | undefined;\n\n constructor() {\n effect(() => {\n this.expandSubsciption?.unsubscribe();\n\n this.header()?.toggleExpand.subscribe(() => this.toggleExpand());\n });\n }\n\n ngOnDestroy() {\n this.expandSubsciption?.unsubscribe();\n }\n\n toggleExpand() {\n this.isExpanded.set(!this.isExpanded());\n }\n}\n","<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","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { C3ExpansionHeaderComponent } from './components/c3-expansion-header/c3-expansion-header.component';\nimport { C3ExpansionComponent } from './components/c3-expansion/c3-expansion.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { C3AutoAnimateDirective } from '../c3-auto-animate/c3-auto-animate.directive';\n\n@NgModule({\n declarations: [C3ExpansionComponent, C3ExpansionHeaderComponent],\n imports: [\n CommonModule,\n C3AutoAnimateDirective,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n MatButtonModule,\n MatToolbarModule,\n ],\n exports: [C3ExpansionComponent, C3ExpansionHeaderComponent],\n})\nexport class C3ExpansionModule {}\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[c3SelectOnFocus]',\n standalone: true,\n})\nexport class C3SelectOnFocusDirective {\n @HostListener('focus', ['$event.target'])\n onFocus(target: HTMLInputElement) {\n setTimeout(() => target.select());\n }\n}\n","import { signal, WritableSignal } from '@angular/core';\n\nclass BooleanSignal {\n private _signal: WritableSignal<boolean>;\n\n constructor(initialValue: boolean) {\n this._signal = signal<boolean>(initialValue);\n }\n\n get value() {\n return this._signal();\n }\n\n set value(newValue: boolean) {\n this._signal.set(newValue);\n }\n\n toggle() {\n this._signal.set(!this._signal());\n }\n\n reset() {\n this._signal.set(false);\n }\n\n setToTrue() {\n this._signal.set(true);\n }\n\n setToFalse() {\n this._signal.set(false);\n }\n}\n\nexport function booleanSignal(value: boolean) {\n return new BooleanSignal(value);\n}\n","import { FlatTreeControl } from '@angular/cdk/tree';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Component, effect, model, output } from '@angular/core';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport {\r\n MatTreeFlatDataSource,\r\n MatTreeFlattener,\r\n MatTreeModule,\r\n} from '@angular/material/tree';\r\n\r\nexport interface TreeType<T> {\r\n id: number;\r\n level: number;\r\n name: string;\r\n ancestorId?: number;\r\n ancestor?: TreeType<T>;\r\n children: TreeType<T>[];\r\n rawData: T;\r\n}\r\n\r\nexport interface FileNode<RawData> extends TreeType<RawData> {\r\n expandable: boolean;\r\n}\r\n\r\n@Component({\n selector: 'c3-tree',\n imports: [\n CommonModule,\n MatTreeModule,\n MatIconModule,\n MatRippleModule,\n MatProgressSpinnerModule,\n ],\n templateUrl: './c3-tree.component.html',\n styleUrls: ['./c3-tree.component.scss']\n})\r\nexport class C3TreeComponent<\r\n RawData,\r\n T extends TreeType<RawData> = TreeType<RawData>\r\n> {\r\n public readonly treeData = model.required<T[]>();\r\n public readonly isLoading = model<boolean>(false);\r\n public readonly treeDataSelected = output<T>();\r\n\r\n private _transformer = (\r\n node: TreeType<RawData>,\r\n level: number\r\n ): FileNode<RawData> => ({\r\n expandable: !!node.children && node.children.length > 0,\r\n children: node.children,\r\n id: node.id,\r\n level,\r\n name: node.name,\r\n rawData: node.rawData,\r\n });\r\n\r\n constructor() {\r\n effect(() => {\r\n this.dataSource.data = this.treeData();\r\n });\r\n }\r\n\r\n public hasChild = (_: number, node: T) => node.children.length > 0;\r\n\r\n public treeControl = new FlatTreeControl<FileNode<RawData>>(\r\n (node) => node.level,\r\n (node) => node.expandable\r\n );\r\n\r\n public treeFlattener = new MatTreeFlattener(\r\n this._transformer,\r\n (node) => node.level,\r\n (node) => node.expandable,\r\n (node) => node.children\r\n );\r\n\r\n public dataSource = new MatTreeFlatDataSource(\r\n this.treeControl,\r\n this.treeFlattener\r\n );\r\n}\r\n","@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","import { Component, signal, TemplateRef, viewChild } from '@angular/core';\n\n@Component({\n selector: 'c3-flowing-menu-item',\n templateUrl: './c3-flowing-menu-item.component.html',\n standalone: false\n})\nexport class C3FlowingMenuItemComponent {\n public readonly menuTpl = viewChild('menuTpl', {\n read: TemplateRef,\n });\n public readonly contentTpl = viewChild('contentTpl', {\n read: TemplateRef,\n });\n\n public readonly active = signal(false);\n}\n","<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","import {\n Component,\n contentChildren,\n effect,\n model,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { C3FlowingMenuItemComponent } from '../c3-flowing-menu-item/c3-flowing-menu-item.component';\n\n@Component({\n selector: 'c3-flowing-menu',\n templateUrl: './c3-flowing-menu.component.html',\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'c3-flowing-menu',\n ngSkipHydration: 'true',\n },\n standalone: false\n})\nexport class C3FlowingMenuComponent {\n public readonly c3FlowingMenu = contentChildren(C3FlowingMenuItemComponent);\n private readonly targetContentRef = viewChild('targetContent', {\n read: ViewContainerRef,\n });\n\n public readonly selectedIndex = model(0);\n\n constructor() {\n effect(() => {\n if (this.targetContentRef()) {\n this.updateView();\n }\n });\n }\n\n public selectMenu(index: number) {\n this.selectedIndex.set(index);\n this.updateView();\n }\n\n private updateView() {\n if (!this.targetContentRef()) return;\n\n this.targetContentRef()!.clear();\n const selectedMenu = this.c3FlowingMenu()[this.selectedIndex()];\n if (selectedMenu) {\n this.targetContentRef()!.createEmbeddedView(selectedMenu.contentTpl()!);\n }\n }\n}\n","<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","import { Component } from '@angular/core';\n\n@Component({\n selector: 'c3-flowing-menu-item-content',\n templateUrl: './c3-flowing-menu-item-content.component.html',\n standalone: false\n})\nexport class C3FlowingMenuItemContentComponent {}\n","<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { C3FlowingMenuComponent } from './components/c3-flowing-menu/c3-flowing-menu.component';\nimport { C3FlowingMenuItemComponent } from './components/c3-flowing-menu-item/c3-flowing-menu-item.component';\nimport { C3FlowingMenuItemContentComponent } from './components/c3-flowing-menu-item-content/c3-flowing-menu-item-content.component';\n\n@NgModule({\n declarations: [\n C3FlowingMenuComponent,\n C3FlowingMenuItemComponent,\n C3FlowingMenuItemContentComponent,\n ],\n imports: [CommonModule],\n exports: [\n C3FlowingMenuComponent,\n C3FlowingMenuItemComponent,\n C3FlowingMenuItemContentComponent,\n ],\n})\nexport class C3FlowingMenuModule {}\n","import {\n Component,\n HostBinding,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'c3-trace-card',\n templateUrl: './c3-trace-card.component.html',\n styleUrl: './c3-trace-card.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'c3-trace-card',\n },\n standalone: false\n})\nexport class C3TraceCardComponent {\n public readonly align = signal<'left' | 'right'>('left');\n\n @HostBinding('class.align-left')\n get alignLeft() {\n return this.align() === 'left';\n }\n @HostBinding('class.align-right')\n get alignRight() {\n return this.align() === 'right';\n }\n}\n","<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","import { Component } from '@angular/core';\n\n@Component({\n selector: 'c3-trace-card-title',\n templateUrl: './c3-trace-card-title.component.html',\n styleUrl: './c3-trace-card-title.component.scss',\n standalone: false\n})\nexport class C3TraceCardTitleComponent {}\n","<ng-content></ng-content>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'c3-trace-card-content',\n templateUrl: './c3-trace-card-content.component.html',\n styleUrl: './c3-trace-card-content.component.scss',\n standalone: false\n})\nexport class C3TraceCardContentComponent {}\n","<ng-content></ng-content>\n","import { Directive, inject } from '@angular/core';\nimport { C3TraceCardComponent } from '../components/c3-trace-card/c3-trace-card.component';\n\n@Directive({\n selector: 'c3-trace-card[align-left]',\n standalone: true,\n})\nexport class C3TraceCardAlignLeftDirective {\n private readonly c3CardTitle = inject(C3TraceCardComponent, {\n self: true,\n });\n\n constructor() {\n this.c3CardTitle.align.set('left');\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { C3TraceCardComponent } from '../components/c3-trace-card/c3-trace-card.component';\n\n@Directive({\n selector: 'c3-trace-card[align-right]',\n standalone: true,\n})\nexport class C3TraceCardAlignRightDirective {\n private readonly c3CardTitle = inject(C3TraceCardComponent, {\n self: true,\n });\n\n constructor() {\n this.c3CardTitle.align.set('right');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { C3TraceCardComponent } from './components/c3-trace-card/c3-trace-card.component';\nimport { C3TraceCardTitleComponent } from './components/c3-trace-card-title/c3-trace-card-title.component';\nimport { C3TraceCardContentComponent } from './components/c3-trace-card-content/c3-trace-card-content.component';\nimport { C3TraceCardAlignLeftDirective } from './directives/align-left.directive';\nimport { C3TraceCardAlignRightDirective } from './directives/align-right.directive';\n\n@NgModule({\n declarations: [\n C3TraceCardComponent,\n C3TraceCardTitleComponent,\n C3TraceCardContentComponent,\n ],\n imports: [\n CommonModule,\n C3TraceCardAlignLeftDirective,\n C3TraceCardAlignRightDirective,\n ],\n exports: [\n C3TraceCardComponent,\n C3TraceCardTitleComponent,\n C3TraceCardContentComponent,\n C3TraceCardAlignLeftDirective,\n C3TraceCardAlignRightDirective,\n ],\n})\nexport class C3TraceCardModule {}\n","import { inject, Injectable, signal } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { filter, map, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class C3MenuService {\n public selectedElement: HTMLElement | null = null;\n public currentRouteChange: Observable<string>;\n public readonly currentRoute = signal('');\n\n public readonly isHeadless = signal(false);\n private readonly _router = inject(Router);\n private readonly _ar = inject(ActivatedRoute);\n\n constructor() {\n this.currentRoute.set(this._router.routerState.snapshot.url);\n this.currentRouteChange = this._router.events.pipe(\n filter(\n (status: any) =>\n status.urlAfterRedirects !== undefined && status.state === undefined\n ),\n map((status: any) => {\n this.currentRoute.set(status.urlAfterRedirects);\n return status.urlAfterRedirects;\n })\n );\n this.isHeadless.set(this._ar.snapshot.queryParams['headless'] === 'true');\n }\n\n public setSelectedItem(element: HTMLElement) {\n if (this.selectedElement)\n this.selectedElement.classList.remove(\"active-item\");\n this.selectedElement = element;\n this.selectedElement.classList.add(\"active-item\");\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { C3MenuService } from '../../services/c3-menu.service';\n\n@Component({\n selector: 'c3-menu',\n standalone: false,\n templateUrl: './c3-menu.component.html',\n styleUrl: './c3-menu.component.scss',\n})\nexport class C3MenuComponent {\n public readonly _c3Menu = inject(C3MenuService);\n}\n","@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","import { Component, DestroyRef, effect, ElementRef, inject, input, signal, viewChild } from '@angular/core';\nimport { C3MenuService } from '../../services/c3-menu.service';\nimport { map, startWith, Subscription } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'c3-nav-item',\n standalone: false,\n templateUrl: './c3-nav-item.component.html',\n styleUrl: './c3-nav-item.component.scss',\n})\nexport class C3NavItemComponent {\n public readonly route = input.required<string>();\n public readonly itemTitle = input.required<string>();\n public readonly check = input<string | null>(null);\n public readonly isExternal = input<boolean>(false);\n\n private readonly element = viewChild('button', {\n read: ElementRef<HTMLButtonElement>,\n });\n private readonly _menu = inject(C3MenuService);\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly currentRouteChangeSubscription = signal<Subscription | null>(null);\n\n constructor() {\n effect(() => {\n if (!this.currentRouteChangeSubscription() && this.element()) {\n const subscribtion = this._menu.currentRouteChange\n .pipe(\n startWith(this._menu.currentRoute()),\n map((url) => url),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((url) => {\n const _regex = new RegExp(this.check() || this.route());\n if (_regex.exec(url) && this.element())\n this._menu.setSelectedItem(this.element()!.nativeElement);\n })\n this.currentRouteChangeSubscription.set(subscribtion);\n }\n })\n\n }\n}\n","<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","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { C3MenuComponent } from \"./components/c3-menu/c3-menu.component\";\nimport { RouterModule } from \"@angular/router\";\nimport { MatRippleModule } from \"@angular/material/core\";\nimport { C3NavItemComponent } from \"./components/c3-nav-item/c3-nav-item.component\";\n\n@NgModule({\n imports: [CommonModule, RouterModule, MatRippleModule],\n declarations: [C3MenuComponent, C3NavItemComponent],\n exports: [C3MenuComponent, C3NavItemComponent],\n providers: [],\n})\nexport class C3MenuModule { }\n","/*\n * Public API Surface of c3-components\n */\n\nexport * from './lib/c3-file-viewer/models/http.client';\n\n/**\n * Dropdown\n */\nexport * from './lib/c3-dropdown/components/c3-dropdown.component';\nexport * from './lib/c3-dropdown/directives/c3-dropdown.trigger';\nexport * from './lib/c3-dropdown/c3-dropdown.module';\n\n/**\n * Dialog\n */\nexport * from './lib/c3-dialog/components/c3-dialog-alert.component'\nexport * from './lib/c3-dialog/components/c3-dialog-confirm.component';\nexport * from './lib/c3-dialog/components/c3-dialog-prompt.component';\nexport * from './lib/c3-dialog/components/c3-dialog-embed-child.component';\nexport * from './lib/c3-dialog/components/c3-dialog-template/c3-dialog-template.component';\nexport * from './lib/c3-dialog/services/c3-dialog.service';\nexport * from './lib/c3-dialog/directives/c3-open-dialog.directive';\nexport * from './lib/c3-dialog/c3-dialog.module';\n\n/**\n * File Viewer\n */\nexport * from './lib/c3-file-viewer/components/public/c3-file-viewer/c3-file-viewer.component';\nexport * from './lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component';\nexport * from './lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog';\nexport * from './lib/c3-file-viewer/directives/full-screen.directive';\nexport * from './lib/c3-file-viewer/models/custom-file-event.model';\nexport * from './lib/c3-file-viewer/models/file-viewer-config.model';\nexport * from './lib/c3-file-viewer/models/file-viewer';\nexport * from './lib/c3-file-viewer/models/file-metadata';\nexport * from './lib/c3-file-viewer/c3-file-viewer.module';\n\n/**\n * File Displayer\n */\nexport * from './lib/c3-file-displayer/c3-file-displayer.module';\nexport * from './lib/c3-file-displayer/c3-file-display-list/c3-file-display-list.component';\nexport * from './lib/c3-file-displayer/c3-file-display-icon/c3-file-display-icon.component';\nexport * from './lib/c3-file-displayer/c3-file-display-grid/c3-file-display-grid.component';\nexport * from './lib/c3-file-displayer/c3-file-display-card/c3-file-display-card.component';\n\n/**\n * Safe Url\n */\nexport * from './lib/c3-safe-url/pipes/c3-safe-url.pipe';\n\n/**\n * Expansion\n */\nexport * from './lib/c3-expansion/c3-expansion.module';\nexport * from './lib/c3-expansion/components/c3-expansion/c3-expansion.component';\nexport * from './lib/c3-expansion/components/c3-expansion-header/c3-expansion-header.component';\n\n/**\n * Auto Animate\n */\nexport * from './lib/c3-auto-animate/c3-auto-animate.directive';\n\n/**\n * Select on Focus\n */\nexport * from './lib/c3-select-on-focus/c3-select-on-focus.directive';\n\n/**\n * Toggle Signal\n */\nexport * from './lib/c3-signals/c3-boolean-signal';\n\n/**\n * C3 Tree\n */\nexport * from './lib/c3-tree/c3-tree.component';\n\n/**\n * C3 flowing menu\n */\nexport * from './lib/c3-flowing-menu/c3-flowing-menu.module';\nexport * from './lib/c3-flowing-menu/components/c3-flowing-menu/c3-flowing-menu.component';\nexport * from './lib/c3-flowing-menu/components/c3-flowing-menu-item/c3-flowing-menu-item.component';\nexport * from './lib/c3-flowing-menu/components/c3-flowing-menu-item-content/c3-flowing-menu-item-content.component';\n\n/**\n * C3 Trace Card\n */\nexport * from './lib/c3-trace-card/c3-trace-card.module';\nexport * from './lib/c3-trace-card/components/c3-trace-card/c3-trace-card.component';\nexport * from './lib/c3-trace-card/components/c3-trace-card-content/c3-trace-card-content.component';\nexport * from './lib/c3-trace-card/components/c3-trace-card-title/c3-trace-card-title.component';\nexport * from './lib/c3-trace-card/directives/align-left.directive';\nexport * from './lib/c3-trace-card/directives/align-right.directive';\n\n/**\n * C3 Prevent Event\n */\nexport * from './lib/c3-prevent-event/index';\n\n/**\n * C3 Menu\n */\nexport * from './lib/c3-menu/c3-menu.module';\nexport * from './lib/c3-menu/components/c3-menu/c3-menu.component';\nexport * from './lib/c3-menu/components/c3-nav-item/c3-nav-item.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4","i5","i2.C3SafeUrlPipe","i3.FullScreenDirective","i4.C3FileViewerActionsComponent","i5.C3FileViewerImageComponent","i6.C3FileViewerPdfComponent","i7.C3FileViewerVideoComponent","i1.C3FileViewerComponent","i1.C3FileViewerDialogComponent","i1.C3AutoAnimateDirective","i3.C3ExpansionHeaderComponent"],"mappings":"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"}
|