c3-components 0.1.2 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/esm2022/lib/c3-file-displayer/c3-file-display-card/c3-file-display-card.component.mjs +26 -0
  2. package/esm2022/lib/c3-file-displayer/c3-file-display-grid/c3-file-display-grid.component.mjs +44 -0
  3. package/esm2022/lib/c3-file-displayer/c3-file-display-icon/c3-file-display-icon.component.mjs +56 -0
  4. package/esm2022/lib/c3-file-displayer/c3-file-display-list/c3-file-display-list.component.mjs +60 -0
  5. package/esm2022/lib/c3-file-displayer/c3-file-displayer.module.mjs +43 -0
  6. package/esm2022/lib/c3-file-viewer/models/file-viewer.mjs +7 -7
  7. package/esm2022/public-api.mjs +9 -2
  8. package/fesm2022/c3-components.mjs +194 -29
  9. package/fesm2022/c3-components.mjs.map +1 -1
  10. package/lib/c3-file-displayer/c3-file-display-card/c3-file-display-card.component.d.ts +14 -0
  11. package/lib/c3-file-displayer/c3-file-display-card/c3-file-display-card.component.scss +34 -0
  12. package/lib/c3-file-displayer/c3-file-display-grid/c3-file-display-grid.component.d.ts +19 -0
  13. package/lib/c3-file-displayer/c3-file-display-grid/c3-file-display-grid.component.scss +9 -0
  14. package/lib/c3-file-displayer/c3-file-display-icon/c3-file-display-icon.component.d.ts +8 -0
  15. package/lib/c3-file-displayer/c3-file-display-icon/c3-file-display-icon.component.scss +19 -0
  16. package/lib/c3-file-displayer/c3-file-display-list/c3-file-display-list.component.d.ts +19 -0
  17. package/lib/c3-file-displayer/c3-file-display-list/c3-file-display-list.component.scss +64 -0
  18. package/lib/c3-file-displayer/c3-file-displayer.module.d.ts +11 -0
  19. package/lib/c3-file-viewer/models/file-viewer.d.ts +5 -2
  20. package/package.json +1 -1
  21. package/public-api.d.ts +8 -1
  22. package/esm2022/lib/c3-signals/c3-signal.mjs +0 -24
  23. package/lib/c3-signals/c3-signal.d.ts +0 -11
@@ -0,0 +1,26 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, effect, input, output } from '@angular/core';
3
+ import { MatButtonModule } from '@angular/material/button';
4
+ import { MatIconModule } from '@angular/material/icon';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/material/button";
8
+ import * as i3 from "@angular/material/icon";
9
+ export class C3FileDisplayCardComponent {
10
+ constructor() {
11
+ this.fileObjectUrl = input.required();
12
+ this.deletable = input(false);
13
+ this.size = input('32');
14
+ this.onDelete = output();
15
+ effect(() => {
16
+ console.log('fileObjectUrl', this.fileObjectUrl());
17
+ });
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: C3FileDisplayCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: C3FileDisplayCardComponent, isStandalone: true, selector: "c3-file-display-card", inputs: { fileObjectUrl: { classPropertyName: "fileObjectUrl", publicName: "fileObjectUrl", isSignal: true, isRequired: true, transformFunction: null }, deletable: { classPropertyName: "deletable", publicName: "deletable", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDelete: "onDelete" }, ngImport: i0, template: "<button\n class=\"file-card border\"\n [class.size-16]=\"size() === '16'\"\n [class.size-32]=\"size() === '32'\"\n [class.size-64]=\"size() === '64'\"\n [class.size-128]=\"size() === '128'\"\n [class.size-256]=\"size() === '256'\"\n>\n @if(deletable()) {\n <div class=\"actions\">\n <button mat-icon-button color=\"red\" (click)=\"onDelete.emit()\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n } @if(fileObjectUrl()) { @if(fileObjectUrl()!.type.startsWith('image')) {\n <img\n class=\"h-full w-full object-cover\"\n [src]=\"(fileObjectUrl()!.objectUrl | async) || '/default-image.svg'\"\n [alt]=\"fileObjectUrl()!.name\"\n />\n } @else if (fileObjectUrl()!.type.startsWith('application')) {\n <mat-icon> file-pdf-box </mat-icon>\n } @else if (fileObjectUrl()!.type.startsWith('video')) {\n <mat-icon> video </mat-icon>\n }\n\n <div class=\"informations flex justify-between items-center\">\n <span class=\"text-xs text-white\">\n {{ fileObjectUrl()!.name }}\n </span>\n </div>\n }\n</button>\n", styles: [":host{display:block}:host .file-card{position:relative;border-radius:4px;border:1px solid #e0e0e0;overflow:auto}:host .file-card .actions{position:absolute;top:-21px;right:-21px;z-index:1;display:none}:host .file-card img{border-radius:4px}:host .file-card:hover .actions{display:block}:host .file-card .informations{position:absolute;bottom:0;left:0;z-index:1;width:100%;background:#00000080;padding:0 4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: C3FileDisplayCardComponent, decorators: [{
23
+ type: Component,
24
+ args: [{ selector: 'c3-file-display-card', standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule], template: "<button\n class=\"file-card border\"\n [class.size-16]=\"size() === '16'\"\n [class.size-32]=\"size() === '32'\"\n [class.size-64]=\"size() === '64'\"\n [class.size-128]=\"size() === '128'\"\n [class.size-256]=\"size() === '256'\"\n>\n @if(deletable()) {\n <div class=\"actions\">\n <button mat-icon-button color=\"red\" (click)=\"onDelete.emit()\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n } @if(fileObjectUrl()) { @if(fileObjectUrl()!.type.startsWith('image')) {\n <img\n class=\"h-full w-full object-cover\"\n [src]=\"(fileObjectUrl()!.objectUrl | async) || '/default-image.svg'\"\n [alt]=\"fileObjectUrl()!.name\"\n />\n } @else if (fileObjectUrl()!.type.startsWith('application')) {\n <mat-icon> file-pdf-box </mat-icon>\n } @else if (fileObjectUrl()!.type.startsWith('video')) {\n <mat-icon> video </mat-icon>\n }\n\n <div class=\"informations flex justify-between items-center\">\n <span class=\"text-xs text-white\">\n {{ fileObjectUrl()!.name }}\n </span>\n </div>\n }\n</button>\n", styles: [":host{display:block}:host .file-card{position:relative;border-radius:4px;border:1px solid #e0e0e0;overflow:auto}:host .file-card .actions{position:absolute;top:-21px;right:-21px;z-index:1;display:none}:host .file-card img{border-radius:4px}:host .file-card:hover .actions{display:block}:host .file-card .informations{position:absolute;bottom:0;left:0;z-index:1;width:100%;background:#00000080;padding:0 4px}\n"] }]
25
+ }], ctorParameters: () => [] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtZmlsZS1kaXNwbGF5LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYzMtY29tcG9uZW50cy9zcmMvbGliL2MzLWZpbGUtZGlzcGxheWVyL2MzLWZpbGUtZGlzcGxheS1jYXJkL2MzLWZpbGUtZGlzcGxheS1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2MzLWNvbXBvbmVudHMvc3JjL2xpYi9jMy1maWxlLWRpc3BsYXllci9jMy1maWxlLWRpc3BsYXktY2FyZC9jMy1maWxlLWRpc3BsYXktY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztBQVN2RCxNQUFNLE9BQU8sMEJBQTBCO0lBWXJDO1FBWGdCLGtCQUFhLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFLM0MsQ0FBQztRQUVZLGNBQVMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbEMsU0FBSSxHQUFHLEtBQUssQ0FBcUMsSUFBSSxDQUFDLENBQUM7UUFDdkQsYUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBR2xDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBaEJVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLHVnQkNkdkMsK2hDQWlDQSxrZER2QlksWUFBWSxtRkFBRSxlQUFlLDJJQUFFLGFBQWE7OzJGQUkzQywwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgZWZmZWN0LCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWxlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9jMy1maWxlLXZpZXdlci9tb2RlbHMvZmlsZS1tZXRhZGF0YSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjMy1maWxlLWRpc3BsYXktY2FyZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jMy1maWxlLWRpc3BsYXktY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jMy1maWxlLWRpc3BsYXktY2FyZC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEMzRmlsZURpc3BsYXlDYXJkQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IGZpbGVPYmplY3RVcmwgPSBpbnB1dC5yZXF1aXJlZDxcbiAgICB8IChGaWxlTWV0YWRhdGEgJiB7XG4gICAgICAgIG9iamVjdFVybD86IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICAgIH0pXG4gICAgfCBudWxsXG4gID4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZGVsZXRhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2l6ZSA9IGlucHV0PCcxNicgfCAnMzInIHwgJzY0JyB8ICcxMjgnIHwgJzI1Nic+KCczMicpO1xuICBwdWJsaWMgcmVhZG9ubHkgb25EZWxldGUgPSBvdXRwdXQoKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ2ZpbGVPYmplY3RVcmwnLCB0aGlzLmZpbGVPYmplY3RVcmwoKSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgY2xhc3M9XCJmaWxlLWNhcmQgYm9yZGVyXCJcbiAgW2NsYXNzLnNpemUtMTZdPVwic2l6ZSgpID09PSAnMTYnXCJcbiAgW2NsYXNzLnNpemUtMzJdPVwic2l6ZSgpID09PSAnMzInXCJcbiAgW2NsYXNzLnNpemUtNjRdPVwic2l6ZSgpID09PSAnNjQnXCJcbiAgW2NsYXNzLnNpemUtMTI4XT1cInNpemUoKSA9PT0gJzEyOCdcIlxuICBbY2xhc3Muc2l6ZS0yNTZdPVwic2l6ZSgpID09PSAnMjU2J1wiXG4+XG4gIEBpZihkZWxldGFibGUoKSkge1xuICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicmVkXCIgKGNsaWNrKT1cIm9uRGVsZXRlLmVtaXQoKVwiPlxuICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICB9IEBpZihmaWxlT2JqZWN0VXJsKCkpIHsgQGlmKGZpbGVPYmplY3RVcmwoKSEudHlwZS5zdGFydHNXaXRoKCdpbWFnZScpKSB7XG4gIDxpbWdcbiAgICBjbGFzcz1cImgtZnVsbCB3LWZ1bGwgb2JqZWN0LWNvdmVyXCJcbiAgICBbc3JjXT1cIihmaWxlT2JqZWN0VXJsKCkhLm9iamVjdFVybCB8IGFzeW5jKSB8fCAnL2RlZmF1bHQtaW1hZ2Uuc3ZnJ1wiXG4gICAgW2FsdF09XCJmaWxlT2JqZWN0VXJsKCkhLm5hbWVcIlxuICAvPlxuICB9IEBlbHNlIGlmIChmaWxlT2JqZWN0VXJsKCkhLnR5cGUuc3RhcnRzV2l0aCgnYXBwbGljYXRpb24nKSkge1xuICA8bWF0LWljb24+IGZpbGUtcGRmLWJveCA8L21hdC1pY29uPlxuICB9IEBlbHNlIGlmIChmaWxlT2JqZWN0VXJsKCkhLnR5cGUuc3RhcnRzV2l0aCgndmlkZW8nKSkge1xuICA8bWF0LWljb24+IHZpZGVvIDwvbWF0LWljb24+XG4gIH1cblxuICA8ZGl2IGNsYXNzPVwiaW5mb3JtYXRpb25zIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC14cyB0ZXh0LXdoaXRlXCI+XG4gICAgICB7eyBmaWxlT2JqZWN0VXJsKCkhLm5hbWUgfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuICB9XG48L2J1dHRvbj5cbiJdfQ==
@@ -0,0 +1,44 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, effect, inject, input, output, viewChild, } from '@angular/core';
3
+ import { C3FileDisplayCardComponent } from '../c3-file-display-card/c3-file-display-card.component';
4
+ import { C3FileViewerModule } from '../../c3-file-viewer/c3-file-viewer.module';
5
+ import { C3FileViewer } from '../../c3-file-viewer/models/file-viewer';
6
+ import { HttpClient } from '@angular/common/http';
7
+ import { C3FileViewerDialogComponent } from '../../c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component";
10
+ export class C3FileDisplayGridComponent {
11
+ constructor() {
12
+ this.files = input.required();
13
+ this.config = input();
14
+ this.deletable = input(false);
15
+ this.onDelete = output();
16
+ this.dialog = viewChild(C3FileViewerDialogComponent);
17
+ this.fileViewer = new C3FileViewer({
18
+ client: inject(HttpClient),
19
+ });
20
+ effect(() => {
21
+ this.fileViewer.files = this.files();
22
+ }, {
23
+ allowSignalWrites: true,
24
+ });
25
+ effect(() => {
26
+ if (this.config())
27
+ this.fileViewer.config = this.config();
28
+ }, {
29
+ allowSignalWrites: true,
30
+ });
31
+ }
32
+ openDialog($event, index) {
33
+ $event.stopPropagation();
34
+ this.fileViewer.currentIndex = index;
35
+ this.dialog()?.openDialog();
36
+ }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: C3FileDisplayGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
38
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: C3FileDisplayGridComponent, isStandalone: true, selector: "c3-file-display-grid", inputs: { files: { classPropertyName: "files", publicName: "files", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, deletable: { classPropertyName: "deletable", publicName: "deletable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDelete: "onDelete" }, viewQueries: [{ propertyName: "dialog", first: true, predicate: C3FileViewerDialogComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<c3-file-viewer-dialog [fileViewer]=\"fileViewer\">\n <div class=\"c3-file-display-grid\">\n @for (file of files(); track $index) {\n <c3-file-display-card\n [fileObjectUrl]=\"fileViewer.filesObjectUrl[$index]\"\n (click)=\"openDialog($event, $index)\"\n (onDelete)=\"onDelete.emit(file)\"\n />\n }\n </div>\n</c3-file-viewer-dialog>\n", styles: [":host{display:block}:host .c3-file-display-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: C3FileDisplayCardComponent, selector: "c3-file-display-card", inputs: ["fileObjectUrl", "deletable", "size"], outputs: ["onDelete"] }, { kind: "ngmodule", type: C3FileViewerModule }, { kind: "component", type: i1.C3FileViewerDialogComponent, selector: "c3-file-viewer-dialog", inputs: ["fileViewer", "dialogConfig"] }] }); }
39
+ }
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: C3FileDisplayGridComponent, decorators: [{
41
+ type: Component,
42
+ args: [{ selector: 'c3-file-display-grid', standalone: true, imports: [CommonModule, C3FileDisplayCardComponent, C3FileViewerModule], template: "<c3-file-viewer-dialog [fileViewer]=\"fileViewer\">\n <div class=\"c3-file-display-grid\">\n @for (file of files(); track $index) {\n <c3-file-display-card\n [fileObjectUrl]=\"fileViewer.filesObjectUrl[$index]\"\n (click)=\"openDialog($event, $index)\"\n (onDelete)=\"onDelete.emit(file)\"\n />\n }\n </div>\n</c3-file-viewer-dialog>\n", styles: [":host{display:block}:host .c3-file-display-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:10px}\n"] }]
43
+ }], ctorParameters: () => [] });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtZmlsZS1kaXNwbGF5LWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYzMtY29tcG9uZW50cy9zcmMvbGliL2MzLWZpbGUtZGlzcGxheWVyL2MzLWZpbGUtZGlzcGxheS1ncmlkL2MzLWZpbGUtZGlzcGxheS1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2MzLWNvbXBvbmVudHMvc3JjL2xpYi9jMy1maWxlLWRpc3BsYXllci9jMy1maWxlLWRpc3BsYXktZ3JpZC9jMy1maWxlLWRpc3BsYXktZ3JpZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEZBQThGLENBQUM7OztBQVUzSSxNQUFNLE9BQU8sMEJBQTBCO0lBa0JyQztRQWpCZ0IsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBTW5DLENBQUM7UUFDWSxXQUFNLEdBQUcsS0FBSyxFQUFzQixDQUFDO1FBRXJDLGNBQVMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbEMsYUFBUSxHQUFHLE1BQU0sRUFBZ0IsQ0FBQztRQUNsQyxXQUFNLEdBQUcsU0FBUyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFFekQsZUFBVSxHQUFHLElBQUksWUFBWSxDQUFDO1lBQ25DLE1BQU0sRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDO1NBQzNCLENBQUMsQ0FBQztRQUdELE1BQU0sQ0FDSixHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkMsQ0FBQyxFQUNEO1lBQ0UsaUJBQWlCLEVBQUUsSUFBSTtTQUN4QixDQUNGLENBQUM7UUFFRixNQUFNLENBQ0osR0FBRyxFQUFFO1lBQ0gsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUcsQ0FBQztRQUM3RCxDQUFDLEVBQ0Q7WUFDRSxpQkFBaUIsRUFBRSxJQUFJO1NBQ3hCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVLENBQUMsTUFBa0IsRUFBRSxLQUFhO1FBQzFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlCLENBQUM7OEdBMUNVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLDZoQkFZRiwyQkFBMkIsZ0VDcENoRSw4V0FXQSxnTURTWSxZQUFZLCtCQUFFLDBCQUEwQix1SUFBRSxrQkFBa0I7OzJGQUkzRCwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSwwQkFBMEIsRUFBRSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlsZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vYzMtZmlsZS12aWV3ZXIvbW9kZWxzL2ZpbGUtbWV0YWRhdGEnO1xuaW1wb3J0IHsgQzNGaWxlRGlzcGxheUNhcmRDb21wb25lbnQgfSBmcm9tICcuLi9jMy1maWxlLWRpc3BsYXktY2FyZC9jMy1maWxlLWRpc3BsYXktY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQzNGaWxlVmlld2VyTW9kdWxlIH0gZnJvbSAnLi4vLi4vYzMtZmlsZS12aWV3ZXIvYzMtZmlsZS12aWV3ZXIubW9kdWxlJztcbmltcG9ydCB7IEMzRmlsZVZpZXdlciB9IGZyb20gJy4uLy4uL2MzLWZpbGUtdmlld2VyL21vZGVscy9maWxlLXZpZXdlcic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQzNGaWxlVmlld2VyRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYzMtZmlsZS12aWV3ZXIvY29tcG9uZW50cy9wdWJsaWMvYzMtZmlsZS12aWV3ZXItZGlhbG9nL2MzLWZpbGUtdmlld2VyLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQzNGaWxlVmlld2VyQ29uZmlnIH0gZnJvbSAnLi4vLi4vYzMtZmlsZS12aWV3ZXIvbW9kZWxzL2ZpbGUtdmlld2VyLWNvbmZpZy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MzLWZpbGUtZGlzcGxheS1ncmlkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQzNGaWxlRGlzcGxheUNhcmRDb21wb25lbnQsIEMzRmlsZVZpZXdlck1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jMy1maWxlLWRpc3BsYXktZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jMy1maWxlLWRpc3BsYXktZ3JpZC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEMzRmlsZURpc3BsYXlHcmlkQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IGZpbGVzID0gaW5wdXQucmVxdWlyZWQ8XG4gICAgQXJyYXk8XG4gICAgICBGaWxlTWV0YWRhdGEgJiB7XG4gICAgICAgIGxvY2F0aW9uOiBzdHJpbmc7XG4gICAgICB9XG4gICAgPlxuICA+KCk7XG4gIHB1YmxpYyByZWFkb25seSBjb25maWcgPSBpbnB1dDxDM0ZpbGVWaWV3ZXJDb25maWc+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRlbGV0YWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IG9uRGVsZXRlID0gb3V0cHV0PEZpbGVNZXRhZGF0YT4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGRpYWxvZyA9IHZpZXdDaGlsZChDM0ZpbGVWaWV3ZXJEaWFsb2dDb21wb25lbnQpO1xuXG4gIHB1YmxpYyBmaWxlVmlld2VyID0gbmV3IEMzRmlsZVZpZXdlcih7XG4gICAgY2xpZW50OiBpbmplY3QoSHR0cENsaWVudCksXG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5maWxlVmlld2VyLmZpbGVzID0gdGhpcy5maWxlcygpO1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUsXG4gICAgICB9XG4gICAgKTtcblxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnKCkpIHRoaXMuZmlsZVZpZXdlci5jb25maWcgPSB0aGlzLmNvbmZpZygpITtcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlLFxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBvcGVuRGlhbG9nKCRldmVudDogTW91c2VFdmVudCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmZpbGVWaWV3ZXIuY3VycmVudEluZGV4ID0gaW5kZXg7XG4gICAgdGhpcy5kaWFsb2coKT8ub3BlbkRpYWxvZygpO1xuICB9XG59XG4iLCI8YzMtZmlsZS12aWV3ZXItZGlhbG9nIFtmaWxlVmlld2VyXT1cImZpbGVWaWV3ZXJcIj5cbiAgPGRpdiBjbGFzcz1cImMzLWZpbGUtZGlzcGxheS1ncmlkXCI+XG4gICAgQGZvciAoZmlsZSBvZiBmaWxlcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICA8YzMtZmlsZS1kaXNwbGF5LWNhcmRcbiAgICAgIFtmaWxlT2JqZWN0VXJsXT1cImZpbGVWaWV3ZXIuZmlsZXNPYmplY3RVcmxbJGluZGV4XVwiXG4gICAgICAoY2xpY2spPVwib3BlbkRpYWxvZygkZXZlbnQsICRpbmRleClcIlxuICAgICAgKG9uRGVsZXRlKT1cIm9uRGVsZXRlLmVtaXQoZmlsZSlcIlxuICAgIC8+XG4gICAgfVxuICA8L2Rpdj5cbjwvYzMtZmlsZS12aWV3ZXItZGlhbG9nPlxuIl19
@@ -0,0 +1,56 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, computed, input } from '@angular/core';
3
+ import { MatIconModule } from '@angular/material/icon';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/material/icon";
7
+ export class C3FileDisplayIconComponent {
8
+ constructor() {
9
+ this.fileType = input.required();
10
+ this.displayedIcon = computed(() => {
11
+ switch (this.fileType()) {
12
+ case 'image/webp':
13
+ case 'image/png':
14
+ case 'image/jpeg':
15
+ case 'image/jpg':
16
+ return 'image';
17
+ case 'video/mp4':
18
+ case 'video/webm':
19
+ return 'play_circle';
20
+ case 'application/pdf':
21
+ return 'picture_as_pdf';
22
+ case 'application/msword':
23
+ case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':
24
+ return 'description';
25
+ default:
26
+ return 'content_copy';
27
+ }
28
+ });
29
+ this.color = computed(() => {
30
+ switch (this.fileType()) {
31
+ case 'image/webp':
32
+ case 'image/png':
33
+ case 'image/jpeg':
34
+ case 'image/jpg':
35
+ return 'text-primary';
36
+ case 'video/mp4':
37
+ case 'video/webm':
38
+ return 'text-secondary';
39
+ case 'application/pdf':
40
+ return 'text-error';
41
+ case 'application/msword':
42
+ case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':
43
+ return 'text-success';
44
+ default:
45
+ return 'text-gray';
46
+ }
47
+ });
48
+ }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: C3FileDisplayIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.1", type: C3FileDisplayIconComponent, isStandalone: true, selector: "c3-file-display-icon", inputs: { fileType: { classPropertyName: "fileType", publicName: "fileType", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<mat-icon [ngClass]=\"color()\">{{ displayedIcon() }}</mat-icon>\n", styles: [":host{display:block}:host .text-primary{color:var(--primary-color)}:host .text-secondary{color:var(--secondary-color)}:host .text-success{color:var(--success-color)}:host .text-gray{color:var(--gray-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: C3FileDisplayIconComponent, decorators: [{
53
+ type: Component,
54
+ args: [{ selector: 'c3-file-display-icon', standalone: true, imports: [CommonModule, MatIconModule], template: "<mat-icon [ngClass]=\"color()\">{{ displayedIcon() }}</mat-icon>\n", styles: [":host{display:block}:host .text-primary{color:var(--primary-color)}:host .text-secondary{color:var(--secondary-color)}:host .text-success{color:var(--success-color)}:host .text-gray{color:var(--gray-color)}\n"] }]
55
+ }] });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtZmlsZS1kaXNwbGF5LWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYzMtY29tcG9uZW50cy9zcmMvbGliL2MzLWZpbGUtZGlzcGxheWVyL2MzLWZpbGUtZGlzcGxheS1pY29uL2MzLWZpbGUtZGlzcGxheS1pY29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2MzLWNvbXBvbmVudHMvc3JjL2xpYi9jMy1maWxlLWRpc3BsYXllci9jMy1maWxlLWRpc3BsYXktaWNvbi9jMy1maWxlLWRpc3BsYXktaWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQVN2RCxNQUFNLE9BQU8sMEJBQTBCO0lBUHZDO1FBUWtCLGFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFFcEMsa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzVDLFFBQVEsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7Z0JBQ3hCLEtBQUssWUFBWSxDQUFDO2dCQUNsQixLQUFLLFdBQVcsQ0FBQztnQkFDakIsS0FBSyxZQUFZLENBQUM7Z0JBQ2xCLEtBQUssV0FBVztvQkFDZCxPQUFPLE9BQU8sQ0FBQztnQkFDakIsS0FBSyxXQUFXLENBQUM7Z0JBQ2pCLEtBQUssWUFBWTtvQkFDZixPQUFPLGFBQWEsQ0FBQztnQkFDdkIsS0FBSyxpQkFBaUI7b0JBQ3BCLE9BQU8sZ0JBQWdCLENBQUM7Z0JBQzFCLEtBQUssb0JBQW9CLENBQUM7Z0JBQzFCLEtBQUsseUVBQXlFO29CQUM1RSxPQUFPLGFBQWEsQ0FBQztnQkFDdkI7b0JBQ0UsT0FBTyxjQUFjLENBQUM7WUFDMUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRWEsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsUUFBUSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztnQkFDeEIsS0FBSyxZQUFZLENBQUM7Z0JBQ2xCLEtBQUssV0FBVyxDQUFDO2dCQUNqQixLQUFLLFlBQVksQ0FBQztnQkFDbEIsS0FBSyxXQUFXO29CQUNkLE9BQU8sY0FBYyxDQUFDO2dCQUN4QixLQUFLLFdBQVcsQ0FBQztnQkFDakIsS0FBSyxZQUFZO29CQUNmLE9BQU8sZ0JBQWdCLENBQUM7Z0JBQzFCLEtBQUssaUJBQWlCO29CQUNwQixPQUFPLFlBQVksQ0FBQztnQkFDdEIsS0FBSyxvQkFBb0IsQ0FBQztnQkFDMUIsS0FBSyx5RUFBeUU7b0JBQzVFLE9BQU8sY0FBYyxDQUFDO2dCQUN4QjtvQkFDRSxPQUFPLFdBQVcsQ0FBQztZQUN2QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7S0FDSjs4R0ExQ1ksMEJBQTBCO2tHQUExQiwwQkFBMEIsNE5DWHZDLG9FQUNBLHlRRE1ZLFlBQVksNEhBQUUsYUFBYTs7MkZBSTFCLDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjMy1maWxlLWRpc3BsYXktaWNvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEljb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vYzMtZmlsZS1kaXNwbGF5LWljb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYzMtZmlsZS1kaXNwbGF5LWljb24uY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBDM0ZpbGVEaXNwbGF5SWNvbkNvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSBmaWxlVHlwZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheWVkSWNvbiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBzd2l0Y2ggKHRoaXMuZmlsZVR5cGUoKSkge1xuICAgICAgY2FzZSAnaW1hZ2Uvd2VicCc6XG4gICAgICBjYXNlICdpbWFnZS9wbmcnOlxuICAgICAgY2FzZSAnaW1hZ2UvanBlZyc6XG4gICAgICBjYXNlICdpbWFnZS9qcGcnOlxuICAgICAgICByZXR1cm4gJ2ltYWdlJztcbiAgICAgIGNhc2UgJ3ZpZGVvL21wNCc6XG4gICAgICBjYXNlICd2aWRlby93ZWJtJzpcbiAgICAgICAgcmV0dXJuICdwbGF5X2NpcmNsZSc7XG4gICAgICBjYXNlICdhcHBsaWNhdGlvbi9wZGYnOlxuICAgICAgICByZXR1cm4gJ3BpY3R1cmVfYXNfcGRmJztcbiAgICAgIGNhc2UgJ2FwcGxpY2F0aW9uL21zd29yZCc6XG4gICAgICBjYXNlICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCc6XG4gICAgICAgIHJldHVybiAnZGVzY3JpcHRpb24nO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdjb250ZW50X2NvcHknO1xuICAgIH1cbiAgfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbG9yID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHN3aXRjaCAodGhpcy5maWxlVHlwZSgpKSB7XG4gICAgICBjYXNlICdpbWFnZS93ZWJwJzpcbiAgICAgIGNhc2UgJ2ltYWdlL3BuZyc6XG4gICAgICBjYXNlICdpbWFnZS9qcGVnJzpcbiAgICAgIGNhc2UgJ2ltYWdlL2pwZyc6XG4gICAgICAgIHJldHVybiAndGV4dC1wcmltYXJ5JztcbiAgICAgIGNhc2UgJ3ZpZGVvL21wNCc6XG4gICAgICBjYXNlICd2aWRlby93ZWJtJzpcbiAgICAgICAgcmV0dXJuICd0ZXh0LXNlY29uZGFyeSc7XG4gICAgICBjYXNlICdhcHBsaWNhdGlvbi9wZGYnOlxuICAgICAgICByZXR1cm4gJ3RleHQtZXJyb3InO1xuICAgICAgY2FzZSAnYXBwbGljYXRpb24vbXN3b3JkJzpcbiAgICAgIGNhc2UgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JzpcbiAgICAgICAgcmV0dXJuICd0ZXh0LXN1Y2Nlc3MnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICd0ZXh0LWdyYXknO1xuICAgIH1cbiAgfSk7XG59XG4iLCI8bWF0LWljb24gW25nQ2xhc3NdPVwiY29sb3IoKVwiPnt7IGRpc3BsYXllZEljb24oKSB9fTwvbWF0LWljb24+XG4iXX0=
@@ -0,0 +1,60 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { Component, effect, inject, input, output, viewChild, } from '@angular/core';
4
+ import { C3FileViewerDialogComponent } from '../../c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component';
5
+ import { C3FileViewer } from '../../c3-file-viewer/models/file-viewer';
6
+ import { MatIconModule } from '@angular/material/icon';
7
+ import { C3FileViewerModule } from '../../c3-file-viewer/c3-file-viewer.module';
8
+ import { C3FileDisplayIconComponent } from '../c3-file-display-icon/c3-file-display-icon.component';
9
+ import { MatNativeDateModule } from '@angular/material/core';
10
+ import { MatMenuModule } from '@angular/material/menu';
11
+ import { MatButtonModule } from '@angular/material/button';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "../../c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component";
14
+ import * as i2 from "@angular/common";
15
+ import * as i3 from "@angular/material/button";
16
+ import * as i4 from "@angular/material/icon";
17
+ import * as i5 from "@angular/material/menu";
18
+ export class C3FileDisplayListComponent {
19
+ constructor() {
20
+ this.files = input.required();
21
+ this.config = input();
22
+ this.deletable = input(false);
23
+ this.onDelete = output();
24
+ this.dialog = viewChild(C3FileViewerDialogComponent);
25
+ this.fileViewer = new C3FileViewer({
26
+ client: inject(HttpClient),
27
+ });
28
+ effect(() => {
29
+ this.fileViewer.files = this.files();
30
+ }, {
31
+ allowSignalWrites: true,
32
+ });
33
+ effect(() => {
34
+ if (this.config())
35
+ this.fileViewer.config = this.config();
36
+ }, {
37
+ allowSignalWrites: true,
38
+ });
39
+ }
40
+ openDialog($event, index) {
41
+ $event.stopPropagation();
42
+ this.fileViewer.currentIndex = index;
43
+ this.dialog()?.openDialog();
44
+ }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: C3FileDisplayListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: C3FileDisplayListComponent, isStandalone: true, selector: "c3-file-display-list", inputs: { files: { classPropertyName: "files", publicName: "files", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, deletable: { classPropertyName: "deletable", publicName: "deletable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDelete: "onDelete" }, viewQueries: [{ propertyName: "dialog", first: true, predicate: C3FileViewerDialogComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<!-- 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=\"icon\">\n <mat-icon>more_vert</mat-icon>\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>{{ file.name }}</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>\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", styles: [":host{display:flex;flex-direction:column;margin:.5rem}:host .header{display:flex;align-items:center;padding:0 .5rem;border-bottom:1px solid var(--mat-divider-color)}:host .header .title{flex-basis:304px;width:304px;font-size:1.5rem;font-weight:700}:host .header .title.full{flex:auto}:host .header .icon{flex-basis:40px;width:40px}:host .file-display-list{display:flex;flex-direction:column}:host .file-display-list>button{display:flex;flex-direction:row;height:3rem;align-items:center;border-bottom:1px solid var(--mat-divider-color);background-color:var(--mdc-protected-button-container-color);text-align:start;padding:0 .5rem}:host .file-display-list>button:hover{background-color:var(--background-hover)}:host .file-display-list>button .icon{flex-basis:56px;width:56px}:host .file-display-list>button .name{flex:auto;flex-basis:304px;width:304px}:host .file-display-list>button .date-label{flex-basis:304px;width:304px}\n"], dependencies: [{ kind: "ngmodule", type: C3FileViewerModule }, { kind: "component", type: i1.C3FileViewerDialogComponent, selector: "c3-file-viewer-dialog", inputs: ["fileViewer", "dialogConfig"] }, { kind: "component", type: C3FileDisplayIconComponent, selector: "c3-file-display-icon", inputs: ["fileType"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }] }); }
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: C3FileDisplayListComponent, decorators: [{
49
+ type: Component,
50
+ args: [{ selector: 'c3-file-display-list', standalone: true, imports: [
51
+ C3FileViewerModule,
52
+ C3FileDisplayIconComponent,
53
+ CommonModule,
54
+ MatButtonModule,
55
+ MatIconModule,
56
+ MatNativeDateModule,
57
+ MatMenuModule,
58
+ ], template: "<!-- 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=\"icon\">\n <mat-icon>more_vert</mat-icon>\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>{{ file.name }}</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>\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", styles: [":host{display:flex;flex-direction:column;margin:.5rem}:host .header{display:flex;align-items:center;padding:0 .5rem;border-bottom:1px solid var(--mat-divider-color)}:host .header .title{flex-basis:304px;width:304px;font-size:1.5rem;font-weight:700}:host .header .title.full{flex:auto}:host .header .icon{flex-basis:40px;width:40px}:host .file-display-list{display:flex;flex-direction:column}:host .file-display-list>button{display:flex;flex-direction:row;height:3rem;align-items:center;border-bottom:1px solid var(--mat-divider-color);background-color:var(--mdc-protected-button-container-color);text-align:start;padding:0 .5rem}:host .file-display-list>button:hover{background-color:var(--background-hover)}:host .file-display-list>button .icon{flex-basis:56px;width:56px}:host .file-display-list>button .name{flex:auto;flex-basis:304px;width:304px}:host .file-display-list>button .date-label{flex-basis:304px;width:304px}\n"] }]
59
+ }], ctorParameters: () => [] });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtZmlsZS1kaXNwbGF5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYzMtY29tcG9uZW50cy9zcmMvbGliL2MzLWZpbGUtZGlzcGxheWVyL2MzLWZpbGUtZGlzcGxheS1saXN0L2MzLWZpbGUtZGlzcGxheS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2MzLWNvbXBvbmVudHMvc3JjL2xpYi9jMy1maWxlLWRpc3BsYXllci9jMy1maWxlLWRpc3BsYXktbGlzdC9jMy1maWxlLWRpc3BsYXktbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4RkFBOEYsQ0FBQztBQUUzSSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFpQjNELE1BQU0sT0FBTywwQkFBMEI7SUFrQnJDO1FBakJnQixVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFNbkMsQ0FBQztRQUNZLFdBQU0sR0FBRyxLQUFLLEVBQXNCLENBQUM7UUFFckMsY0FBUyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNsQyxhQUFRLEdBQUcsTUFBTSxFQUFnQixDQUFDO1FBQ2xDLFdBQU0sR0FBRyxTQUFTLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUV6RCxlQUFVLEdBQUcsSUFBSSxZQUFZLENBQUM7WUFDbkMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUM7U0FDM0IsQ0FBQyxDQUFDO1FBR0QsTUFBTSxDQUNKLEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QyxDQUFDLEVBQ0Q7WUFDRSxpQkFBaUIsRUFBRSxJQUFJO1NBQ3hCLENBQ0YsQ0FBQztRQUVGLE1BQU0sQ0FDSixHQUFHLEVBQUU7WUFDSCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRyxDQUFDO1FBQzdELENBQUMsRUFDRDtZQUNFLGlCQUFpQixFQUFFLElBQUk7U0FDeEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFrQixFQUFFLEtBQWE7UUFDMUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0ExQ1UsMEJBQTBCO2tHQUExQiwwQkFBMEIsNmhCQVlGLDJCQUEyQixnRUNoRGhFLHNwQ0EwQ0EsczlCRGpCSSxrQkFBa0IsdUtBQ2xCLDBCQUEwQixzRkFDMUIsWUFBWSxpRkFDWixlQUFlLDJJQUNmLGFBQWEsbUxBQ2IsbUJBQW1CLDhCQUNuQixhQUFhOzsyRkFLSiwwQkFBMEI7a0JBZnRDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUDt3QkFDUCxrQkFBa0I7d0JBQ2xCLDBCQUEwQjt3QkFDMUIsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixhQUFhO3FCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQzNGaWxlVmlld2VyRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYzMtZmlsZS12aWV3ZXIvY29tcG9uZW50cy9wdWJsaWMvYzMtZmlsZS12aWV3ZXItZGlhbG9nL2MzLWZpbGUtdmlld2VyLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vYzMtZmlsZS12aWV3ZXIvbW9kZWxzL2ZpbGUtbWV0YWRhdGEnO1xuaW1wb3J0IHsgQzNGaWxlVmlld2VyIH0gZnJvbSAnLi4vLi4vYzMtZmlsZS12aWV3ZXIvbW9kZWxzL2ZpbGUtdmlld2VyJztcbmltcG9ydCB7IEMzRmlsZVZpZXdlckNvbmZpZyB9IGZyb20gJy4uLy4uL2MzLWZpbGUtdmlld2VyL21vZGVscy9maWxlLXZpZXdlci1jb25maWcubW9kZWwnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgQzNGaWxlVmlld2VyTW9kdWxlIH0gZnJvbSAnLi4vLi4vYzMtZmlsZS12aWV3ZXIvYzMtZmlsZS12aWV3ZXIubW9kdWxlJztcbmltcG9ydCB7IEMzRmlsZURpc3BsYXlJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vYzMtZmlsZS1kaXNwbGF5LWljb24vYzMtZmlsZS1kaXNwbGF5LWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IE1hdE5hdGl2ZURhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MzLWZpbGUtZGlzcGxheS1saXN0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEMzRmlsZVZpZXdlck1vZHVsZSxcbiAgICBDM0ZpbGVEaXNwbGF5SWNvbkNvbXBvbmVudCxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vYzMtZmlsZS1kaXNwbGF5LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYzMtZmlsZS1kaXNwbGF5LWxpc3QuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBDM0ZpbGVEaXNwbGF5TGlzdENvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSBmaWxlcyA9IGlucHV0LnJlcXVpcmVkPFxuICAgIEFycmF5PFxuICAgICAgRmlsZU1ldGFkYXRhICYge1xuICAgICAgICBsb2NhdGlvbjogc3RyaW5nO1xuICAgICAgfVxuICAgID5cbiAgPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgY29uZmlnID0gaW5wdXQ8QzNGaWxlVmlld2VyQ29uZmlnPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBkZWxldGFibGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBvbkRlbGV0ZSA9IG91dHB1dDxGaWxlTWV0YWRhdGE+KCk7XG4gIHB1YmxpYyByZWFkb25seSBkaWFsb2cgPSB2aWV3Q2hpbGQoQzNGaWxlVmlld2VyRGlhbG9nQ29tcG9uZW50KTtcblxuICBwdWJsaWMgZmlsZVZpZXdlciA9IG5ldyBDM0ZpbGVWaWV3ZXIoe1xuICAgIGNsaWVudDogaW5qZWN0KEh0dHBDbGllbnQpLFxuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuZmlsZVZpZXdlci5maWxlcyA9IHRoaXMuZmlsZXMoKTtcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlLFxuICAgICAgfVxuICAgICk7XG5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZygpKSB0aGlzLmZpbGVWaWV3ZXIuY29uZmlnID0gdGhpcy5jb25maWcoKSE7XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSxcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgb3BlbkRpYWxvZygkZXZlbnQ6IE1vdXNlRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5maWxlVmlld2VyLmN1cnJlbnRJbmRleCA9IGluZGV4O1xuICAgIHRoaXMuZGlhbG9nKCk/Lm9wZW5EaWFsb2coKTtcbiAgfVxufVxuIiwiPCEtLSBoZWFkZXIgLS0+XG48ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJ0aXRsZSBmdWxsXCI+XG4gICAgPHNwYW4+Tm9tPC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XG4gICAgPHNwYW4+RGF0ZSBkJ2Fqb3V0PC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImljb25cIj5cbiAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxjMy1maWxlLXZpZXdlci1kaWFsb2cgW2ZpbGVWaWV3ZXJdPVwiZmlsZVZpZXdlclwiPlxuICA8ZGl2IGNsYXNzPVwiZmlsZS1kaXNwbGF5LWxpc3RcIj5cbiAgICBAZm9yIChmaWxlIG9mIGZpbGVzKCk7IHRyYWNrICRpbmRleCkge1xuICAgIDxidXR0b24+XG4gICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPlxuICAgICAgICA8YzMtZmlsZS1kaXNwbGF5LWljb24gW2ZpbGVUeXBlXT1cImZpbGUudHlwZVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+XG4gICAgICAgIDxzcGFuPnt7IGZpbGUubmFtZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImRhdGUtbGFiZWxcIj5cbiAgICAgICAgPHNwYW4+e3tcbiAgICAgICAgICBmaWxlLmxhc3RNb2RpZmllZCA/IChmaWxlLmxhc3RNb2RpZmllZCB8IGRhdGUgOiBcIm1lZGl1bVwiKSA6IFwiLVwiXG4gICAgICAgIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbj5cbiAgICAgICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJvcGVuRGlhbG9nKCRldmVudCwgJGluZGV4KVwiPlxuICAgICAgICAgIE91dnJpclxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgQGlmIChkZWxldGFibGUoKSkge1xuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm9uRGVsZXRlLmVtaXQoZmlsZSlcIj5TdXBwcmltZXI8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9tYXQtbWVudT5cbiAgICA8L2J1dHRvbj5cbiAgICB9XG4gIDwvZGl2PlxuPC9jMy1maWxlLXZpZXdlci1kaWFsb2c+XG4iXX0=
@@ -0,0 +1,43 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { C3FileDisplayGridComponent } from './c3-file-display-grid/c3-file-display-grid.component';
4
+ import { C3FileDisplayListComponent } from './c3-file-display-list/c3-file-display-list.component';
5
+ import { C3FileDisplayCardComponent } from './c3-file-display-card/c3-file-display-card.component';
6
+ import { C3FileDisplayIconComponent } from './c3-file-display-icon/c3-file-display-icon.component';
7
+ import * as i0 from "@angular/core";
8
+ export class C3FileDisplayerModule {
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: C3FileDisplayerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: C3FileDisplayerModule, imports: [CommonModule,
11
+ C3FileDisplayGridComponent,
12
+ C3FileDisplayListComponent,
13
+ C3FileDisplayCardComponent,
14
+ C3FileDisplayIconComponent], exports: [C3FileDisplayGridComponent,
15
+ C3FileDisplayListComponent,
16
+ C3FileDisplayCardComponent,
17
+ C3FileDisplayIconComponent] }); }
18
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: C3FileDisplayerModule, imports: [CommonModule,
19
+ C3FileDisplayGridComponent,
20
+ C3FileDisplayListComponent,
21
+ C3FileDisplayCardComponent,
22
+ C3FileDisplayIconComponent] }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: C3FileDisplayerModule, decorators: [{
25
+ type: NgModule,
26
+ args: [{
27
+ declarations: [],
28
+ imports: [
29
+ CommonModule,
30
+ C3FileDisplayGridComponent,
31
+ C3FileDisplayListComponent,
32
+ C3FileDisplayCardComponent,
33
+ C3FileDisplayIconComponent,
34
+ ],
35
+ exports: [
36
+ C3FileDisplayGridComponent,
37
+ C3FileDisplayListComponent,
38
+ C3FileDisplayCardComponent,
39
+ C3FileDisplayIconComponent,
40
+ ],
41
+ }]
42
+ }] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtZmlsZS1kaXNwbGF5ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYzMtY29tcG9uZW50cy9zcmMvbGliL2MzLWZpbGUtZGlzcGxheWVyL2MzLWZpbGUtZGlzcGxheWVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7QUFrQm5HLE1BQU0sT0FBTyxxQkFBcUI7OEdBQXJCLHFCQUFxQjsrR0FBckIscUJBQXFCLFlBYjlCLFlBQVk7WUFDWiwwQkFBMEI7WUFDMUIsMEJBQTBCO1lBQzFCLDBCQUEwQjtZQUMxQiwwQkFBMEIsYUFHMUIsMEJBQTBCO1lBQzFCLDBCQUEwQjtZQUMxQiwwQkFBMEI7WUFDMUIsMEJBQTBCOytHQUdqQixxQkFBcUIsWUFiOUIsWUFBWTtZQUNaLDBCQUEwQjtZQUMxQiwwQkFBMEI7WUFDMUIsMEJBQTBCO1lBQzFCLDBCQUEwQjs7MkZBU2pCLHFCQUFxQjtrQkFoQmpDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3dCQUMxQiwwQkFBMEI7d0JBQzFCLDBCQUEwQjtxQkFDM0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3dCQUMxQiwwQkFBMEI7d0JBQzFCLDBCQUEwQjtxQkFDM0I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEMzRmlsZURpc3BsYXlHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi9jMy1maWxlLWRpc3BsYXktZ3JpZC9jMy1maWxlLWRpc3BsYXktZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQzNGaWxlRGlzcGxheUxpc3RDb21wb25lbnQgfSBmcm9tICcuL2MzLWZpbGUtZGlzcGxheS1saXN0L2MzLWZpbGUtZGlzcGxheS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDM0ZpbGVEaXNwbGF5Q2FyZENvbXBvbmVudCB9IGZyb20gJy4vYzMtZmlsZS1kaXNwbGF5LWNhcmQvYzMtZmlsZS1kaXNwbGF5LWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEMzRmlsZURpc3BsYXlJY29uQ29tcG9uZW50IH0gZnJvbSAnLi9jMy1maWxlLWRpc3BsYXktaWNvbi9jMy1maWxlLWRpc3BsYXktaWNvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEMzRmlsZURpc3BsYXlHcmlkQ29tcG9uZW50LFxuICAgIEMzRmlsZURpc3BsYXlMaXN0Q29tcG9uZW50LFxuICAgIEMzRmlsZURpc3BsYXlDYXJkQ29tcG9uZW50LFxuICAgIEMzRmlsZURpc3BsYXlJY29uQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQzNGaWxlRGlzcGxheUdyaWRDb21wb25lbnQsXG4gICAgQzNGaWxlRGlzcGxheUxpc3RDb21wb25lbnQsXG4gICAgQzNGaWxlRGlzcGxheUNhcmRDb21wb25lbnQsXG4gICAgQzNGaWxlRGlzcGxheUljb25Db21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEMzRmlsZURpc3BsYXllck1vZHVsZSB7fVxuIl19
@@ -1,8 +1,6 @@
1
1
  import { BehaviorSubject, map, tap } from 'rxjs';
2
2
  import { DEFAULT_CONFIG } from '../consts/default.config';
3
- import { HttpClient } from '@angular/common/http';
4
3
  import { CustomFileEvent } from './custom-file-event.model';
5
- import { inject } from '@angular/core';
6
4
  export class C3FileViewer {
7
5
  get config() {
8
6
  return this._config;
@@ -19,16 +17,17 @@ export class C3FileViewer {
19
17
  this.currentIndex = 0;
20
18
  this.index$.next(this.currentIndex);
21
19
  this.filesObjectUrl = value.map((file) => {
20
+ const objectUrl = file.objectUrl || this.createObjectURL(file);
22
21
  return {
23
22
  ...file,
24
- objectUrl: file.objectUrl || this.createObjectURL(file),
23
+ objectUrl,
25
24
  };
26
25
  });
27
26
  }
28
27
  get files() {
29
28
  return this._files;
30
29
  }
31
- constructor({ config, files, }) {
30
+ constructor({ config, files, client, }) {
32
31
  this._config = DEFAULT_CONFIG;
33
32
  this.config$ = new BehaviorSubject(DEFAULT_CONFIG);
34
33
  this.fullscreen$ = new BehaviorSubject(false);
@@ -62,6 +61,8 @@ export class C3FileViewer {
62
61
  this.config = config;
63
62
  if (files)
64
63
  this.files = files;
64
+ if (client)
65
+ this.client = client.get.bind(client);
65
66
  this.config$.subscribe((config) => {
66
67
  const { minHeight, maxHeight, minWidth, maxWidth, height, width } = config;
67
68
  this.style.minHeight = this.valueToCss(minHeight);
@@ -79,8 +80,7 @@ export class C3FileViewer {
79
80
  return this.getFile(file.location).pipe(map((response) => URL.createObjectURL(response)), tap(() => this.onLoad(file)));
80
81
  }
81
82
  getFile(location) {
82
- const client = this.config.customClient ||
83
- inject(HttpClient).get.bind(inject(HttpClient));
83
+ const client = this.config.customClient || this.client;
84
84
  if (!client) {
85
85
  throw new Error('No http client provided. Please provide a custom client or import HttpClientModule');
86
86
  }
@@ -203,4 +203,4 @@ export class C3FileViewer {
203
203
  return result;
204
204
  }
205
205
  }
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS12aWV3ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jMy1jb21wb25lbnRzL3NyYy9saWIvYzMtZmlsZS12aWV3ZXIvbW9kZWxzL2ZpbGUtdmlld2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE1BQU0sT0FBTyxZQUFZO0lBRXZCLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsS0FBeUI7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQVVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQWlCRCxJQUFXLEtBQUssQ0FBQyxLQUFxQjtRQUNwQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFcEMs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ZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgbWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERFRkFVTFRfQ09ORklHIH0gZnJvbSAnLi4vY29uc3RzL2RlZmF1bHQuY29uZmlnJztcbmltcG9ydCB7IEMzRmlsZVZpZXdlckNvbmZpZyB9IGZyb20gJy4vZmlsZS12aWV3ZXItY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDdXN0b21GaWxlRXZlbnQgfSBmcm9tICcuL2N1c3RvbS1maWxlLWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7IEZpbGVNZXRhZGF0YSB9IGZyb20gJy4vZmlsZS1tZXRhZGF0YSc7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEMzRmlsZVZpZXdlciB7XG4gIHByaXZhdGUgX2NvbmZpZzogQzNGaWxlVmlld2VyQ29uZmlnID0gREVGQVVMVF9DT05GSUc7XG4gIGdldCBjb25maWcoKTogQzNGaWxlVmlld2VyQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnO1xuICB9XG5cbiAgc2V0IGNvbmZpZyh2YWx1ZTogQzNGaWxlVmlld2VyQ29uZmlnKSB7XG4gICAgdGhpcy5fY29uZmlnID0gdGhpcy5tZXJnZUNvbmZpZyhERUZBVUxUX0NPTkZJRywgdmFsdWUpO1xuICAgIHRoaXMuY29uZmlnJC5uZXh0KHRoaXMuX2NvbmZpZyk7XG4gIH1cbiAgcHVibGljIGNvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEMzRmlsZVZpZXdlckNvbmZpZz4oREVGQVVMVF9DT05GSUcpO1xuXG4gIHB1YmxpYyBmdWxsc2NyZWVuJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Qm9vbGVhbj4oZmFsc2UpO1xuXG4gIHB1YmxpYyBjdXN0b21GaWxlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgcHVibGljIGluZGV4JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgcHVibGljIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICBwdWJsaWMgY3VycmVudEluZGV4OiBudW1iZXIgPSAwO1xuXG4gIGdldCBjdXJyZW50RmlsZSgpOiBGaWxlTWV0YWRhdGEge1xuICAgIHJldHVybiB0aGlzLmZpbGVzT2JqZWN0VXJsW3RoaXMuY3VycmVudEluZGV4XTtcbiAgfVxuXG4gIHB1YmxpYyBzdHlsZSA9IHtcbiAgICB0cmFuc2Zvcm06ICcnLFxuICAgIG1zVHJhbnNmb3JtOiAnJyxcbiAgICBvVHJhbnNmb3JtOiAnJyxcbiAgICB3ZWJraXRUcmFuc2Zvcm06ICcnLFxuICAgIG1pbkhlaWdodDogJ2F1dG8nLFxuICAgIG1heEhlaWdodDogJ2F1dG8nLFxuICAgIGhlaWdodDogJ2F1dG8nLFxuICAgIG1pbldpZHRoOiAnYXV0bycsXG4gICAgbWF4V2lkdGg6ICdhdXRvJyxcbiAgICB3aWR0aDogJ2F1dG8nLFxuICB9O1xuICBwdWJsaWMgc3R5bGVIZWlnaHQgPSAnMTAwJSc7XG4gIHB1YmxpYyBob3ZlcmVkID0gZmFsc2U7XG5cbiAgcHVibGljIHNldCBmaWxlcyh2YWx1ZTogRmlsZU1ldGFkYXRhW10pIHtcbiAgICB0aGlzLl9maWxlcyA9IHZhbHVlO1xuICAgIHRoaXMuY3VycmVudEluZGV4ID0gMDtcbiAgICB0aGlzLmluZGV4JC5uZXh0KHRoaXMuY3VycmVudEluZGV4KTtcblxuICAgIHRoaXMuZmlsZXNPYmplY3RVcmwgPSB2YWx1ZS5tYXAoKGZpbGUpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmZpbGUsXG4gICAgICAgIG9iamVjdFVybDogZmlsZS5vYmplY3RVcmwgfHwgdGhpcy5jcmVhdGVPYmplY3RVUkwoZmlsZSksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBmaWxlcygpOiBGaWxlTWV0YWRhdGFbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlsZXM6IEZpbGVNZXRhZGF0YVtdID0gW107XG5cbiAgcHVibGljIGZpbGVzT2JqZWN0VXJsOiBBcnJheTxcbiAgICBGaWxlTWV0YWRhdGEgJiB7XG4gICAgICBvYmplY3RVcmw/OiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgfVxuICA+ID0gW107XG5cbiAgcHJpdmF0ZSBzY2FsZSA9IDE7XG4gIHByaXZhdGUgcm90YXRpb24gPSAwO1xuICBwcml2YXRlIHRyYW5zbGF0ZVggPSAwO1xuICBwcml2YXRlIHRyYW5zbGF0ZVkgPSAwO1xuICBwcml2YXRlIHByZXZYOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIHByZXZZOiBudW1iZXIgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKHtcbiAgICBjb25maWcsXG4gICAgZmlsZXMsXG4gIH06IHtcbiAgICBjb25maWc/OiBDM0ZpbGVWaWV3ZXJDb25maWc7XG4gICAgZmlsZXM/OiBGaWxlTWV0YWRhdGFbXTtcbiAgfSkge1xuICAgIGlmIChjb25maWcpIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIGlmIChmaWxlcykgdGhpcy5maWxlcyA9IGZpbGVzO1xuXG4gICAgdGhpcy5jb25maWckLnN1YnNjcmliZSgoY29uZmlnKSA9PiB7XG4gICAgICBjb25zdCB7IG1pbkhlaWdodCwgbWF4SGVpZ2h0LCBtaW5XaWR0aCwgbWF4V2lkdGgsIGhlaWdodCwgd2lkdGggfSA9XG4gICAgICAgIGNvbmZpZztcbiAgICAgIHRoaXMuc3R5bGUubWluSGVpZ2h0ID0gdGhpcy52YWx1ZVRvQ3NzKG1pbkhlaWdodCk7XG4gICAgICB0aGlzLnN0eWxlLmhlaWdodCA9IHRoaXMudmFsdWVUb0NzcyhoZWlnaHQpO1xuICAgICAgdGhpcy5zdHlsZS53aWR0aCA9IHRoaXMudmFsdWVUb0Nzcyh3aWR0aCk7XG4gICAgICB0aGlzLnN0eWxlLm1heEhlaWdodCA9IHRoaXMudmFsdWVUb0NzcyhtYXhIZWlnaHQpO1xuICAgICAgdGhpcy5zdHlsZS5taW5XaWR0aCA9IHRoaXMudmFsdWVUb0NzcyhtaW5XaWR0aCk7XG4gICAgICB0aGlzLnN0eWxlLm1heFdpZHRoID0gdGhpcy52YWx1ZVRvQ3NzKG1heFdpZHRoKTtcbiAgICAgIHRoaXMuc3R5bGVIZWlnaHQgPSB0aGlzLnZhbHVlVG9Dc3MoaGVpZ2h0KTtcblxuICAgICAgdGhpcy51cGRhdGVTdHlsZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlT2JqZWN0VVJMKGZpbGU6IEZpbGVNZXRhZGF0YSkge1xuICAgIHRoaXMub25Mb2FkU3RhcnQoZmlsZSk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RmlsZShmaWxlLmxvY2F0aW9uKS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZSkgPT4gVVJMLmNyZWF0ZU9iamVjdFVSTChyZXNwb25zZSkpLFxuICAgICAgdGFwKCgpID0+IHRoaXMub25Mb2FkKGZpbGUpKVxuICAgICk7XG4gIH1cblxuICBnZXRGaWxlKGxvY2F0aW9uOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjbGllbnQgPVxuICAgICAgdGhpcy5jb25maWcuY3VzdG9tQ2xpZW50IHx8XG4gICAgICBpbmplY3QoSHR0cENsaWVudCkuZ2V0LmJpbmQoaW5qZWN0KEh0dHBDbGllbnQpKTtcbiAgICBpZiAoIWNsaWVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTm8gaHR0cCBjbGllbnQgcHJvdmlkZWQuIFBsZWFzZSBwcm92aWRlIGEgY3VzdG9tIGNsaWVudCBvciBpbXBvcnQgSHR0cENsaWVudE1vZHVsZSdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsaWVudChsb2NhdGlvbiwge1xuICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXG4gICAgfSk7XG4gIH1cblxuICBwcmV2aW91c0ltYWdlKGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgTW91c2VFdmVudCkge1xuICAgIGlmICh0aGlzLmNhbk5hdmlnYXRlKGV2ZW50KSkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRJbmRleCA+IDApIHRoaXMuY3VycmVudEluZGV4LS07XG4gICAgICBlbHNlIHRoaXMuY3VycmVudEluZGV4ID0gdGhpcy5maWxlcy5sZW5ndGggLSAxO1xuICAgICAgdGhpcy5pbmRleCQubmV4dCh0aGlzLmN1cnJlbnRJbmRleCk7XG4gICAgICB0aGlzLnJlc2V0KCk7XG4gICAgfVxuICB9XG5cbiAgbmV4dEltYWdlKGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgTW91c2VFdmVudCkge1xuICAgIGlmICh0aGlzLmNhbk5hdmlnYXRlKGV2ZW50KSkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRJbmRleCA8IHRoaXMuZmlsZXMubGVuZ3RoIC0gMSkgdGhpcy5jdXJyZW50SW5kZXgrKztcbiAgICAgIGVsc2UgdGhpcy5jdXJyZW50SW5kZXggPSAwO1xuICAgICAgdGhpcy5pbmRleCQubmV4dCh0aGlzLmN1cnJlbnRJbmRleCk7XG4gICAgICB0aGlzLnJlc2V0KCk7XG4gICAgfVxuICB9XG5cbiAgem9vbUluKCkge1xuICAgIHRoaXMuc2NhbGUgKj0gMSArICh0aGlzLmNvbmZpZy56b29tRmFjdG9yIHx8IDApO1xuICAgIHRoaXMudXBkYXRlU3R5bGUoKTtcbiAgfVxuXG4gIHpvb21PdXQoKSB7XG4gICAgaWYgKHRoaXMuc2NhbGUgPiAodGhpcy5jb25maWcuem9vbUZhY3RvciB8fCAwKSkge1xuICAgICAgdGhpcy5zY2FsZSAvPSAxICsgKHRoaXMuY29uZmlnLnpvb21GYWN0b3IgfHwgMCk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlU3R5bGUoKTtcbiAgfVxuXG4gIHNjcm9sbFpvb20oZXZ0OiBXaGVlbEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLndoZWVsWm9vbSkge1xuICAgICAgZXZ0LmRlbHRhWSA+IDAgPyB0aGlzLnpvb21PdXQoKSA6IHRoaXMuem9vbUluKCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJvdGF0ZUNsb2Nrd2lzZSgpIHtcbiAgICB0aGlzLnJvdGF0aW9uICs9IDkwO1xuICAgIHRoaXMudXBkYXRlU3R5bGUoKTtcbiAgfVxuXG4gIHJvdGF0ZUNvdW50ZXJDbG9ja3dpc2UoKSB7XG4gICAgdGhpcy5yb3RhdGlvbiAtPSA5MDtcbiAgICB0aGlzLnVwZGF0ZVN0eWxlKCk7XG4gIH1cblxuICBvbkxvYWQoZmlsZTogRmlsZU1ldGFkYXRhKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gIH1cblxuICBvbkxvYWRTdGFydChmaWxlOiBGaWxlTWV0YWRhdGEpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICB9XG5cbiAgaW1hZ2VOb3RGb3VuZChmaWxlOiBGaWxlTWV0YWRhdGEpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmN1c3RvbUZpbGUkLm5leHQobmV3IEN1c3RvbUZpbGVFdmVudCgnaW1hZ2VOb3RGb3VuZCcsIGZpbGUubG9jYXRpb24pKTtcbiAgfVxuXG4gIG9uRHJhZ092ZXIoZXZ0OiBEcmFnRXZlbnQpIHtcbiAgICB0aGlzLnRyYW5zbGF0ZVggKz0gZXZ0LmNsaWVudFggLSB0aGlzLnByZXZYO1xuICAgIHRoaXMudHJhbnNsYXRlWSArPSBldnQuY2xpZW50WSAtIHRoaXMucHJldlk7XG4gICAgdGhpcy5wcmV2WCA9IGV2dC5jbGllbnRYO1xuICAgIHRoaXMucHJldlkgPSBldnQuY2xpZW50WTtcbiAgICB0aGlzLnVwZGF0ZVN0eWxlKCk7XG4gIH1cblxuICBvbkRyYWdTdGFydChldnQ6IERyYWdFdmVudCkge1xuICAgIGlmIChldnQudGFyZ2V0ICYmIGV2dC5kYXRhVHJhbnNmZXIgJiYgZXZ0LmRhdGFUcmFuc2Zlci5zZXREcmFnSW1hZ2UpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICBjb25zdCBuZXh0RWxlbWVudFNpYmxpbmcgPSB0YXJnZXQubmV4dEVsZW1lbnRTaWJsaW5nIGFzIEhUTUxEaXZFbGVtZW50O1xuXG4gICAgICBpZiAobmV4dEVsZW1lbnRTaWJsaW5nKVxuICAgICAgICBldnQuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShuZXh0RWxlbWVudFNpYmxpbmcsIDAsIDApO1xuICAgIH1cbiAgICB0aGlzLnByZXZYID0gZXZ0LmNsaWVudFg7XG4gICAgdGhpcy5wcmV2WSA9IGV2dC5jbGllbnRZO1xuICB9XG5cbiAgdG9nZ2xlRnVsbHNjcmVlbigpIHtcbiAgICBjb25zdCBmdWxsU2NyZWVuVmFsdWUgPSB0aGlzLmZ1bGxzY3JlZW4kLmdldFZhbHVlKCk7XG4gICAgdGhpcy5mdWxsc2NyZWVuJC5uZXh0KCFmdWxsU2NyZWVuVmFsdWUpO1xuICAgIGlmIChmdWxsU2NyZWVuVmFsdWUpIHRoaXMucmVzZXQoKTtcbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMuc2NhbGUgPSAxO1xuICAgIHRoaXMucm90YXRpb24gPSAwO1xuICAgIHRoaXMudHJhbnNsYXRlWCA9IDA7XG4gICAgdGhpcy50cmFuc2xhdGVZID0gMDtcbiAgICB0aGlzLnVwZGF0ZVN0eWxlKCk7XG4gIH1cblxuICBwcml2YXRlIGNhbk5hdmlnYXRlKGV2ZW50OiBhbnkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgZXZlbnQgPT0gbnVsbCB8fCAodGhpcy5jb25maWcuYWxsb3dLZXlib2FyZE5hdmlnYXRpb24gJiYgdGhpcy5ob3ZlcmVkKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN0eWxlKCkge1xuICAgIHRoaXMuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgke3RoaXMudHJhbnNsYXRlWH1weCwgJHt0aGlzLnRyYW5zbGF0ZVl9cHgpIHJvdGF0ZSgke3RoaXMucm90YXRpb259ZGVnKSBzY2FsZSgke3RoaXMuc2NhbGV9KWA7XG4gICAgdGhpcy5zdHlsZS5tc1RyYW5zZm9ybSA9IHRoaXMuc3R5bGUudHJhbnNmb3JtO1xuICAgIHRoaXMuc3R5bGUud2Via2l0VHJhbnNmb3JtID0gdGhpcy5zdHlsZS50cmFuc2Zvcm07XG4gICAgdGhpcy5zdHlsZS5vVHJhbnNmb3JtID0gdGhpcy5zdHlsZS50cmFuc2Zvcm07XG4gIH1cblxuICBwcml2YXRlIHZhbHVlVG9Dc3ModmFsdWU6IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB2YWx1ZSA/ICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUgOiB2YWx1ZSArICdweCcpIDogJ2F1dG8nO1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZUNvbmZpZyhcbiAgICBkZWZhdWx0VmFsdWVzOiBDM0ZpbGVWaWV3ZXJDb25maWcsXG4gICAgb3ZlcnJpZGVWYWx1ZXM6IEMzRmlsZVZpZXdlckNvbmZpZ1xuICApOiBDM0ZpbGVWaWV3ZXJDb25maWcge1xuICAgIGxldCByZXN1bHQ6IEMzRmlsZVZpZXdlckNvbmZpZyA9IHsgLi4uZGVmYXVsdFZhbHVlcyB9O1xuICAgIGlmIChvdmVycmlkZVZhbHVlcykge1xuICAgICAgcmVzdWx0ID0geyAuLi5kZWZhdWx0VmFsdWVzLCAuLi5vdmVycmlkZVZhbHVlcyB9O1xuXG4gICAgICBpZiAob3ZlcnJpZGVWYWx1ZXMuYnRuSWNvbnMpIHtcbiAgICAgICAgcmVzdWx0LmJ0bkljb25zID0ge1xuICAgICAgICAgIC4uLmRlZmF1bHRWYWx1ZXMuYnRuSWNvbnMsXG4gICAgICAgICAgLi4ub3ZlcnJpZGVWYWx1ZXMuYnRuSWNvbnMsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS12aWV3ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jMy1jb21wb25lbnRzL3NyYy9saWIvYzMtZmlsZS12aWV3ZXIvbW9kZWxzL2ZpbGUtdmlld2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzVELE1BQU0sT0FBTyxZQUFZO0lBR3ZCLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsS0FBeUI7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQVVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQWlCRCxJQUFXLEtBQUssQ0FBQyxLQUFxQjtRQUNwQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFcEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdkMsTUFBTSxTQUFTLEdBQUcsSUFB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aGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgbWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERFRkFVTFRfQ09ORklHIH0gZnJvbSAnLi4vY29uc3RzL2RlZmF1bHQuY29uZmlnJztcbmltcG9ydCB7IEMzRmlsZVZpZXdlckNvbmZpZyB9IGZyb20gJy4vZmlsZS12aWV3ZXItY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDdXN0b21GaWxlRXZlbnQgfSBmcm9tICcuL2N1c3RvbS1maWxlLWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7IEZpbGVNZXRhZGF0YSB9IGZyb20gJy4vZmlsZS1tZXRhZGF0YSc7XG5cbmV4cG9ydCBjbGFzcyBDM0ZpbGVWaWV3ZXIge1xuICBwcml2YXRlIF9jb25maWc6IEMzRmlsZVZpZXdlckNvbmZpZyA9IERFRkFVTFRfQ09ORklHO1xuICBwcml2YXRlIGNsaWVudDogSHR0cENsaWVudFsnZ2V0J10gfCB1bmRlZmluZWQ7XG4gIGdldCBjb25maWcoKTogQzNGaWxlVmlld2VyQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnO1xuICB9XG5cbiAgc2V0IGNvbmZpZyh2YWx1ZTogQzNGaWxlVmlld2VyQ29uZmlnKSB7XG4gICAgdGhpcy5fY29uZmlnID0gdGhpcy5tZXJnZUNvbmZpZyhERUZBVUxUX0NPTkZJRywgdmFsdWUpO1xuICAgIHRoaXMuY29uZmlnJC5uZXh0KHRoaXMuX2NvbmZpZyk7XG4gIH1cbiAgcHVibGljIGNvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEMzRmlsZVZpZXdlckNvbmZpZz4oREVGQVVMVF9DT05GSUcpO1xuXG4gIHB1YmxpYyBmdWxsc2NyZWVuJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Qm9vbGVhbj4oZmFsc2UpO1xuXG4gIHB1YmxpYyBjdXN0b21GaWxlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgcHVibGljIGluZGV4JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgcHVibGljIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICBwdWJsaWMgY3VycmVudEluZGV4OiBudW1iZXIgPSAwO1xuXG4gIGdldCBjdXJyZW50RmlsZSgpOiBGaWxlTWV0YWRhdGEge1xuICAgIHJldHVybiB0aGlzLmZpbGVzT2JqZWN0VXJsW3RoaXMuY3VycmVudEluZGV4XTtcbiAgfVxuXG4gIHB1YmxpYyBzdHlsZSA9IHtcbiAgICB0cmFuc2Zvcm06ICcnLFxuICAgIG1zVHJhbnNmb3JtOiAnJyxcbiAgICBvVHJhbnNmb3JtOiAnJyxcbiAgICB3ZWJraXRUcmFuc2Zvcm06ICcnLFxuICAgIG1pbkhlaWdodDogJ2F1dG8nLFxuICAgIG1heEhlaWdodDogJ2F1dG8nLFxuICAgIGhlaWdodDogJ2F1dG8nLFxuICAgIG1pbldpZHRoOiAnYXV0bycsXG4gICAgbWF4V2lkdGg6ICdhdXRvJyxcbiAgICB3aWR0aDogJ2F1dG8nLFxuICB9O1xuICBwdWJsaWMgc3R5bGVIZWlnaHQgPSAnMTAwJSc7XG4gIHB1YmxpYyBob3ZlcmVkID0gZmFsc2U7XG5cbiAgcHVibGljIHNldCBmaWxlcyh2YWx1ZTogRmlsZU1ldGFkYXRhW10pIHtcbiAgICB0aGlzLl9maWxlcyA9IHZhbHVlO1xuICAgIHRoaXMuY3VycmVudEluZGV4ID0gMDtcbiAgICB0aGlzLmluZGV4JC5uZXh0KHRoaXMuY3VycmVudEluZGV4KTtcblxuICAgIHRoaXMuZmlsZXNPYmplY3RVcmwgPSB2YWx1ZS5tYXAoKGZpbGUpID0+IHtcbiAgICAgIGNvbnN0IG9iamVjdFVybCA9IGZpbGUub2JqZWN0VXJsIHx8IHRoaXMuY3JlYXRlT2JqZWN0VVJMKGZpbGUpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZmlsZSxcbiAgICAgICAgb2JqZWN0VXJsLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsZXMoKTogRmlsZU1ldGFkYXRhW10ge1xuICAgIHJldHVybiB0aGlzLl9maWxlcztcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbGVzOiBGaWxlTWV0YWRhdGFbXSA9IFtdO1xuXG4gIHB1YmxpYyBmaWxlc09iamVjdFVybDogQXJyYXk8XG4gICAgRmlsZU1ldGFkYXRhICYge1xuICAgICAgb2JqZWN0VXJsOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgfVxuICA+ID0gW107XG5cbiAgcHJpdmF0ZSBzY2FsZSA9IDE7XG4gIHByaXZhdGUgcm90YXRpb24gPSAwO1xuICBwcml2YXRlIHRyYW5zbGF0ZVggPSAwO1xuICBwcml2YXRlIHRyYW5zbGF0ZVkgPSAwO1xuICBwcml2YXRlIHByZXZYOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIHByZXZZOiBudW1iZXIgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKHtcbiAgICBjb25maWcsXG4gICAgZmlsZXMsXG4gICAgY2xpZW50LFxuICB9OiB7XG4gICAgY29uZmlnPzogQzNGaWxlVmlld2VyQ29uZmlnO1xuICAgIGZpbGVzPzogRmlsZU1ldGFkYXRhW107XG4gICAgY2xpZW50OiBIdHRwQ2xpZW50O1xuICB9KSB7XG4gICAgaWYgKGNvbmZpZykgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgaWYgKGZpbGVzKSB0aGlzLmZpbGVzID0gZmlsZXM7XG4gICAgaWYgKGNsaWVudCkgdGhpcy5jbGllbnQgPSBjbGllbnQuZ2V0LmJpbmQoY2xpZW50KTtcblxuICAgIHRoaXMuY29uZmlnJC5zdWJzY3JpYmUoKGNvbmZpZykgPT4ge1xuICAgICAgY29uc3QgeyBtaW5IZWlnaHQsIG1heEhlaWdodCwgbWluV2lkdGgsIG1heFdpZHRoLCBoZWlnaHQsIHdpZHRoIH0gPVxuICAgICAgICBjb25maWc7XG4gICAgICB0aGlzLnN0eWxlLm1pbkhlaWdodCA9IHRoaXMudmFsdWVUb0NzcyhtaW5IZWlnaHQpO1xuICAgICAgdGhpcy5zdHlsZS5oZWlnaHQgPSB0aGlzLnZhbHVlVG9Dc3MoaGVpZ2h0KTtcbiAgICAgIHRoaXMuc3R5bGUud2lkdGggPSB0aGlzLnZhbHVlVG9Dc3Mod2lkdGgpO1xuICAgICAgdGhpcy5zdHlsZS5tYXhIZWlnaHQgPSB0aGlzLnZhbHVlVG9Dc3MobWF4SGVpZ2h0KTtcbiAgICAgIHRoaXMuc3R5bGUubWluV2lkdGggPSB0aGlzLnZhbHVlVG9Dc3MobWluV2lkdGgpO1xuICAgICAgdGhpcy5zdHlsZS5tYXhXaWR0aCA9IHRoaXMudmFsdWVUb0NzcyhtYXhXaWR0aCk7XG4gICAgICB0aGlzLnN0eWxlSGVpZ2h0ID0gdGhpcy52YWx1ZVRvQ3NzKGhlaWdodCk7XG5cbiAgICAgIHRoaXMudXBkYXRlU3R5bGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZU9iamVjdFVSTChmaWxlOiBGaWxlTWV0YWRhdGEpIHtcbiAgICB0aGlzLm9uTG9hZFN0YXJ0KGZpbGUpO1xuICAgIHJldHVybiB0aGlzLmdldEZpbGUoZmlsZS5sb2NhdGlvbikucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2UpID0+IFVSTC5jcmVhdGVPYmplY3RVUkwocmVzcG9uc2UpKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLm9uTG9hZChmaWxlKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0RmlsZShsb2NhdGlvbjogc3RyaW5nKSB7XG4gICAgY29uc3QgY2xpZW50ID0gdGhpcy5jb25maWcuY3VzdG9tQ2xpZW50IHx8IHRoaXMuY2xpZW50O1xuICAgIGlmICghY2xpZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdObyBodHRwIGNsaWVudCBwcm92aWRlZC4gUGxlYXNlIHByb3ZpZGUgYSBjdXN0b20gY2xpZW50IG9yIGltcG9ydCBIdHRwQ2xpZW50TW9kdWxlJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xpZW50KGxvY2F0aW9uLCB7XG4gICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByZXZpb3VzSW1hZ2UoZXZlbnQ6IEtleWJvYXJkRXZlbnQgfCBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuY2FuTmF2aWdhdGUoZXZlbnQpKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgaWYgKHRoaXMuY3VycmVudEluZGV4ID4gMCkgdGhpcy5jdXJyZW50SW5kZXgtLTtcbiAgICAgIGVsc2UgdGhpcy5jdXJyZW50SW5kZXggPSB0aGlzLmZpbGVzLmxlbmd0aCAtIDE7XG4gICAgICB0aGlzLmluZGV4JC5uZXh0KHRoaXMuY3VycmVudEluZGV4KTtcbiAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9XG4gIH1cblxuICBuZXh0SW1hZ2UoZXZlbnQ6IEtleWJvYXJkRXZlbnQgfCBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuY2FuTmF2aWdhdGUoZXZlbnQpKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgaWYgKHRoaXMuY3VycmVudEluZGV4IDwgdGhpcy5maWxlcy5sZW5ndGggLSAxKSB0aGlzLmN1cnJlbnRJbmRleCsrO1xuICAgICAgZWxzZSB0aGlzLmN1cnJlbnRJbmRleCA9IDA7XG4gICAgICB0aGlzLmluZGV4JC5uZXh0KHRoaXMuY3VycmVudEluZGV4KTtcbiAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9XG4gIH1cblxuICB6b29tSW4oKSB7XG4gICAgdGhpcy5zY2FsZSAqPSAxICsgKHRoaXMuY29uZmlnLnpvb21GYWN0b3IgfHwgMCk7XG4gICAgdGhpcy51cGRhdGVTdHlsZSgpO1xuICB9XG5cbiAgem9vbU91dCgpIHtcbiAgICBpZiAodGhpcy5zY2FsZSA+ICh0aGlzLmNvbmZpZy56b29tRmFjdG9yIHx8IDApKSB7XG4gICAgICB0aGlzLnNjYWxlIC89IDEgKyAodGhpcy5jb25maWcuem9vbUZhY3RvciB8fCAwKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVTdHlsZSgpO1xuICB9XG5cbiAgc2Nyb2xsWm9vbShldnQ6IFdoZWVsRXZlbnQpIHtcbiAgICBpZiAodGhpcy5jb25maWcud2hlZWxab29tKSB7XG4gICAgICBldnQuZGVsdGFZID4gMCA/IHRoaXMuem9vbU91dCgpIDogdGhpcy56b29tSW4oKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcm90YXRlQ2xvY2t3aXNlKCkge1xuICAgIHRoaXMucm90YXRpb24gKz0gOTA7XG4gICAgdGhpcy51cGRhdGVTdHlsZSgpO1xuICB9XG5cbiAgcm90YXRlQ291bnRlckNsb2Nrd2lzZSgpIHtcbiAgICB0aGlzLnJvdGF0aW9uIC09IDkwO1xuICAgIHRoaXMudXBkYXRlU3R5bGUoKTtcbiAgfVxuXG4gIG9uTG9hZChmaWxlOiBGaWxlTWV0YWRhdGEpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIG9uTG9hZFN0YXJ0KGZpbGU6IEZpbGVNZXRhZGF0YSkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gIH1cblxuICBpbWFnZU5vdEZvdW5kKGZpbGU6IEZpbGVNZXRhZGF0YSkge1xuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuY3VzdG9tRmlsZSQubmV4dChuZXcgQ3VzdG9tRmlsZUV2ZW50KCdpbWFnZU5vdEZvdW5kJywgZmlsZS5sb2NhdGlvbikpO1xuICB9XG5cbiAgb25EcmFnT3ZlcihldnQ6IERyYWdFdmVudCkge1xuICAgIHRoaXMudHJhbnNsYXRlWCArPSBldnQuY2xpZW50WCAtIHRoaXMucHJldlg7XG4gICAgdGhpcy50cmFuc2xhdGVZICs9IGV2dC5jbGllbnRZIC0gdGhpcy5wcmV2WTtcbiAgICB0aGlzLnByZXZYID0gZXZ0LmNsaWVudFg7XG4gICAgdGhpcy5wcmV2WSA9IGV2dC5jbGllbnRZO1xuICAgIHRoaXMudXBkYXRlU3R5bGUoKTtcbiAgfVxuXG4gIG9uRHJhZ1N0YXJ0KGV2dDogRHJhZ0V2ZW50KSB7XG4gICAgaWYgKGV2dC50YXJnZXQgJiYgZXZ0LmRhdGFUcmFuc2ZlciAmJiBldnQuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZSkge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIGNvbnN0IG5leHRFbGVtZW50U2libGluZyA9IHRhcmdldC5uZXh0RWxlbWVudFNpYmxpbmcgYXMgSFRNTERpdkVsZW1lbnQ7XG5cbiAgICAgIGlmIChuZXh0RWxlbWVudFNpYmxpbmcpXG4gICAgICAgIGV2dC5kYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKG5leHRFbGVtZW50U2libGluZywgMCwgMCk7XG4gICAgfVxuICAgIHRoaXMucHJldlggPSBldnQuY2xpZW50WDtcbiAgICB0aGlzLnByZXZZID0gZXZ0LmNsaWVudFk7XG4gIH1cblxuICB0b2dnbGVGdWxsc2NyZWVuKCkge1xuICAgIGNvbnN0IGZ1bGxTY3JlZW5WYWx1ZSA9IHRoaXMuZnVsbHNjcmVlbiQuZ2V0VmFsdWUoKTtcbiAgICB0aGlzLmZ1bGxzY3JlZW4kLm5leHQoIWZ1bGxTY3JlZW5WYWx1ZSk7XG4gICAgaWYgKGZ1bGxTY3JlZW5WYWx1ZSkgdGhpcy5yZXNldCgpO1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5zY2FsZSA9IDE7XG4gICAgdGhpcy5yb3RhdGlvbiA9IDA7XG4gICAgdGhpcy50cmFuc2xhdGVYID0gMDtcbiAgICB0aGlzLnRyYW5zbGF0ZVkgPSAwO1xuICAgIHRoaXMudXBkYXRlU3R5bGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FuTmF2aWdhdGUoZXZlbnQ6IGFueSkge1xuICAgIHJldHVybiAoXG4gICAgICBldmVudCA9PSBudWxsIHx8ICh0aGlzLmNvbmZpZy5hbGxvd0tleWJvYXJkTmF2aWdhdGlvbiAmJiB0aGlzLmhvdmVyZWQpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3R5bGUoKSB7XG4gICAgdGhpcy5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKCR7dGhpcy50cmFuc2xhdGVYfXB4LCAke3RoaXMudHJhbnNsYXRlWX1weCkgcm90YXRlKCR7dGhpcy5yb3RhdGlvbn1kZWcpIHNjYWxlKCR7dGhpcy5zY2FsZX0pYDtcbiAgICB0aGlzLnN0eWxlLm1zVHJhbnNmb3JtID0gdGhpcy5zdHlsZS50cmFuc2Zvcm07XG4gICAgdGhpcy5zdHlsZS53ZWJraXRUcmFuc2Zvcm0gPSB0aGlzLnN0eWxlLnRyYW5zZm9ybTtcbiAgICB0aGlzLnN0eWxlLm9UcmFuc2Zvcm0gPSB0aGlzLnN0eWxlLnRyYW5zZm9ybTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsdWVUb0Nzcyh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHZhbHVlID8gKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZSA6IHZhbHVlICsgJ3B4JykgOiAnYXV0byc7XG4gIH1cblxuICBwcml2YXRlIG1lcmdlQ29uZmlnKFxuICAgIGRlZmF1bHRWYWx1ZXM6IEMzRmlsZVZpZXdlckNvbmZpZyxcbiAgICBvdmVycmlkZVZhbHVlczogQzNGaWxlVmlld2VyQ29uZmlnXG4gICk6IEMzRmlsZVZpZXdlckNvbmZpZyB7XG4gICAgbGV0IHJlc3VsdDogQzNGaWxlVmlld2VyQ29uZmlnID0geyAuLi5kZWZhdWx0VmFsdWVzIH07XG4gICAgaWYgKG92ZXJyaWRlVmFsdWVzKSB7XG4gICAgICByZXN1bHQgPSB7IC4uLmRlZmF1bHRWYWx1ZXMsIC4uLm92ZXJyaWRlVmFsdWVzIH07XG5cbiAgICAgIGlmIChvdmVycmlkZVZhbHVlcy5idG5JY29ucykge1xuICAgICAgICByZXN1bHQuYnRuSWNvbnMgPSB7XG4gICAgICAgICAgLi4uZGVmYXVsdFZhbHVlcy5idG5JY29ucyxcbiAgICAgICAgICAuLi5vdmVycmlkZVZhbHVlcy5idG5JY29ucyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
@@ -28,6 +28,14 @@ export * from './lib/c3-file-viewer/models/file-viewer-config.model';
28
28
  export * from './lib/c3-file-viewer/models/file-viewer';
29
29
  export * from './lib/c3-file-viewer/models/file-metadata';
30
30
  export * from './lib/c3-file-viewer/c3-file-viewer.module';
31
+ /**
32
+ * File Displayer
33
+ */
34
+ export * from './lib/c3-file-displayer/c3-file-displayer.module';
35
+ export * from './lib/c3-file-displayer/c3-file-display-list/c3-file-display-list.component';
36
+ export * from './lib/c3-file-displayer/c3-file-display-icon/c3-file-display-icon.component';
37
+ export * from './lib/c3-file-displayer/c3-file-display-grid/c3-file-display-grid.component';
38
+ export * from './lib/c3-file-displayer/c3-file-display-card/c3-file-display-card.component';
31
39
  /**
32
40
  * Safe Url
33
41
  */
@@ -50,5 +58,4 @@ export * from './lib/c3-select-on-focus/c3-select-on-focus.directive';
50
58
  * Toggle Signal
51
59
  */
52
60
  export * from './lib/c3-signals/c3-boolean-signal';
53
- export * from './lib/c3-signals/c3-signal';
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2MzLWNvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHlDQUF5QyxDQUFDO0FBRXhEOztHQUVHO0FBQ0gsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsc0NBQXNDLENBQUM7QUFFckQ7O0dBRUc7QUFDSCxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsa0NBQWtDLENBQUM7QUFFakQ7O0dBRUc7QUFDSCxjQUFjLGdGQUFnRixDQUFDO0FBQy9GLGNBQWMsOEZBQThGLENBQUM7QUFDN0csY0FBYyxvRkFBb0YsQ0FBQztBQUNuRyxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyw0Q0FBNEMsQ0FBQztBQUUzRDs7R0FFRztBQUNILGNBQWMsMENBQTBDLENBQUM7QUFFekQ7O0dBRUc7QUFDSCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyxpRkFBaUYsQ0FBQztBQUVoRzs7R0FFRztBQUNILGNBQWMsaURBQWlELENBQUM7QUFFaEU7O0dBRUc7QUFDSCxjQUFjLHVEQUF1RCxDQUFDO0FBRXRFOztHQUVHO0FBQ0gsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjMy1jb21wb25lbnRzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZmlsZS12aWV3ZXIvbW9kZWxzL2h0dHAuY2xpZW50JztcblxuLyoqXG4gKiBEcm9wZG93blxuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jMy1kcm9wZG93bi9jb21wb25lbnRzL2MzLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jMy1kcm9wZG93bi9kaXJlY3RpdmVzL2MzLWRyb3Bkb3duLnRyaWdnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZHJvcGRvd24vYzMtZHJvcGRvd24ubW9kdWxlJztcblxuLyoqXG4gKiBEaWFsb2dcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZGlhbG9nL2NvbXBvbmVudHMvYzMtZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWRpYWxvZy9jb21wb25lbnRzL2MzLWRpYWxvZy1wcm9tcHQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWRpYWxvZy9jb21wb25lbnRzL2MzLWRpYWxvZy1lbWJlZC1jaGlsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZGlhbG9nL3NlcnZpY2VzL2MzLWRpYWxvZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWRpYWxvZy9jMy1kaWFsb2cubW9kdWxlJztcblxuLyoqXG4gKiBGaWxlIFZpZXdlclxuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jMy1maWxlLXZpZXdlci9jb21wb25lbnRzL3B1YmxpYy9jMy1maWxlLXZpZXdlci9jMy1maWxlLXZpZXdlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZmlsZS12aWV3ZXIvY29tcG9uZW50cy9wdWJsaWMvYzMtZmlsZS12aWV3ZXItZGlhbG9nL2MzLWZpbGUtdmlld2VyLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZmlsZS12aWV3ZXIvY29tcG9uZW50cy9wdWJsaWMvYzMtZmlsZS12aWV3ZXItZGlhbG9nL2MzLWZpbGUtdmlld2VyLWRpYWxvZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jMy1maWxlLXZpZXdlci9kaXJlY3RpdmVzL2Z1bGwtc2NyZWVuLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jMy1maWxlLXZpZXdlci9tb2RlbHMvY3VzdG9tLWZpbGUtZXZlbnQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZmlsZS12aWV3ZXIvbW9kZWxzL2ZpbGUtdmlld2VyLWNvbmZpZy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jMy1maWxlLXZpZXdlci9tb2RlbHMvZmlsZS12aWV3ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZmlsZS12aWV3ZXIvbW9kZWxzL2ZpbGUtbWV0YWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZmlsZS12aWV3ZXIvYzMtZmlsZS12aWV3ZXIubW9kdWxlJztcblxuLyoqXG4gKiBTYWZlIFVybFxuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jMy1zYWZlLXVybC9waXBlcy9jMy1zYWZlLXVybC5waXBlJztcblxuLyoqXG4gKiBFeHBhbnNpb25cbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZXhwYW5zaW9uL2MzLWV4cGFuc2lvbi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZXhwYW5zaW9uL2NvbXBvbmVudHMvYzMtZXhwYW5zaW9uL2MzLWV4cGFuc2lvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZXhwYW5zaW9uL2NvbXBvbmVudHMvYzMtZXhwYW5zaW9uLWhlYWRlci9jMy1leHBhbnNpb24taGVhZGVyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQXV0byBBbmltYXRlXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWF1dG8tYW5pbWF0ZS9jMy1hdXRvLWFuaW1hdGUuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBTZWxlY3Qgb24gRm9jdXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtc2VsZWN0LW9uLWZvY3VzL2MzLXNlbGVjdC1vbi1mb2N1cy5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIFRvZ2dsZSBTaWduYWxcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtc2lnbmFscy9jMy1ib29sZWFuLXNpZ25hbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jMy1zaWduYWxzL2MzLXNpZ25hbCc7XG4iXX0=
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2MzLWNvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHlDQUF5QyxDQUFDO0FBRXhEOztHQUVHO0FBQ0gsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsc0NBQXNDLENBQUM7QUFFckQ7O0dBRUc7QUFDSCxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsa0NBQWtDLENBQUM7QUFFakQ7O0dBRUc7QUFDSCxjQUFjLGdGQUFnRixDQUFDO0FBQy9GLGNBQWMsOEZBQThGLENBQUM7QUFDN0csY0FBYyxvRkFBb0YsQ0FBQztBQUNuRyxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyw0Q0FBNEMsQ0FBQztBQUUzRDs7R0FFRztBQUNILGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw2RUFBNkUsQ0FBQztBQUM1RixjQUFjLDZFQUE2RSxDQUFDO0FBQzVGLGNBQWMsNkVBQTZFLENBQUM7QUFDNUYsY0FBYyw2RUFBNkUsQ0FBQztBQUU1Rjs7R0FFRztBQUNILGNBQWMsMENBQTBDLENBQUM7QUFFekQ7O0dBRUc7QUFDSCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyxpRkFBaUYsQ0FBQztBQUVoRzs7R0FFRztBQUNILGNBQWMsaURBQWlELENBQUM7QUFFaEU7O0dBRUc7QUFDSCxjQUFjLHVEQUF1RCxDQUFDO0FBRXRFOztHQUVHO0FBQ0gsY0FBYyxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYzMtY29tcG9uZW50c1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWZpbGUtdmlld2VyL21vZGVscy9odHRwLmNsaWVudCc7XG5cbi8qKlxuICogRHJvcGRvd25cbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZHJvcGRvd24vY29tcG9uZW50cy9jMy1kcm9wZG93bi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZHJvcGRvd24vZGlyZWN0aXZlcy9jMy1kcm9wZG93bi50cmlnZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWRyb3Bkb3duL2MzLWRyb3Bkb3duLm1vZHVsZSc7XG5cbi8qKlxuICogRGlhbG9nXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWRpYWxvZy9jb21wb25lbnRzL2MzLWRpYWxvZy1jb25maXJtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jMy1kaWFsb2cvY29tcG9uZW50cy9jMy1kaWFsb2ctcHJvbXB0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jMy1kaWFsb2cvY29tcG9uZW50cy9jMy1kaWFsb2ctZW1iZWQtY2hpbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWRpYWxvZy9zZXJ2aWNlcy9jMy1kaWFsb2cuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jMy1kaWFsb2cvYzMtZGlhbG9nLm1vZHVsZSc7XG5cbi8qKlxuICogRmlsZSBWaWV3ZXJcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZmlsZS12aWV3ZXIvY29tcG9uZW50cy9wdWJsaWMvYzMtZmlsZS12aWV3ZXIvYzMtZmlsZS12aWV3ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWZpbGUtdmlld2VyL2NvbXBvbmVudHMvcHVibGljL2MzLWZpbGUtdmlld2VyLWRpYWxvZy9jMy1maWxlLXZpZXdlci1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWZpbGUtdmlld2VyL2NvbXBvbmVudHMvcHVibGljL2MzLWZpbGUtdmlld2VyLWRpYWxvZy9jMy1maWxlLXZpZXdlci1kaWFsb2cnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZmlsZS12aWV3ZXIvZGlyZWN0aXZlcy9mdWxsLXNjcmVlbi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZmlsZS12aWV3ZXIvbW9kZWxzL2N1c3RvbS1maWxlLWV2ZW50Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWZpbGUtdmlld2VyL21vZGVscy9maWxlLXZpZXdlci1jb25maWcubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZmlsZS12aWV3ZXIvbW9kZWxzL2ZpbGUtdmlld2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWZpbGUtdmlld2VyL21vZGVscy9maWxlLW1ldGFkYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWZpbGUtdmlld2VyL2MzLWZpbGUtdmlld2VyLm1vZHVsZSc7XG5cbi8qKlxuICogRmlsZSBEaXNwbGF5ZXJcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZmlsZS1kaXNwbGF5ZXIvYzMtZmlsZS1kaXNwbGF5ZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWZpbGUtZGlzcGxheWVyL2MzLWZpbGUtZGlzcGxheS1saXN0L2MzLWZpbGUtZGlzcGxheS1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jMy1maWxlLWRpc3BsYXllci9jMy1maWxlLWRpc3BsYXktaWNvbi9jMy1maWxlLWRpc3BsYXktaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZmlsZS1kaXNwbGF5ZXIvYzMtZmlsZS1kaXNwbGF5LWdyaWQvYzMtZmlsZS1kaXNwbGF5LWdyaWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWZpbGUtZGlzcGxheWVyL2MzLWZpbGUtZGlzcGxheS1jYXJkL2MzLWZpbGUtZGlzcGxheS1jYXJkLmNvbXBvbmVudCc7XG5cbi8qKlxuICogU2FmZSBVcmxcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtc2FmZS11cmwvcGlwZXMvYzMtc2FmZS11cmwucGlwZSc7XG5cbi8qKlxuICogRXhwYW5zaW9uXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWV4cGFuc2lvbi9jMy1leHBhbnNpb24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWV4cGFuc2lvbi9jb21wb25lbnRzL2MzLWV4cGFuc2lvbi9jMy1leHBhbnNpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWV4cGFuc2lvbi9jb21wb25lbnRzL2MzLWV4cGFuc2lvbi1oZWFkZXIvYzMtZXhwYW5zaW9uLWhlYWRlci5jb21wb25lbnQnO1xuXG4vKipcbiAqIEF1dG8gQW5pbWF0ZVxuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jMy1hdXRvLWFuaW1hdGUvYzMtYXV0by1hbmltYXRlLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogU2VsZWN0IG9uIEZvY3VzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLXNlbGVjdC1vbi1mb2N1cy9jMy1zZWxlY3Qtb24tZm9jdXMuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBUb2dnbGUgU2lnbmFsXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLXNpZ25hbHMvYzMtYm9vbGVhbi1zaWduYWwnO1xuIl19