barsa-sap-ui 2.0.36 → 2.0.38
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/esm2022/lib/blob-viewer/blob-viewer.component.mjs +3 -3
- package/esm2022/lib/file-viewer-content/file-viewer-content.component.mjs +17 -4
- package/esm2022/lib/file-viewer-popover/file-viewer-popover.component.mjs +7 -9
- package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +28 -8
- package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +6 -4
- package/fesm2022/barsa-sap-ui.mjs +53 -23
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/lib/file-viewer-content/file-viewer-content.component.d.ts +5 -2
- package/lib/file-viewer-popover/file-viewer-popover.component.d.ts +3 -4
- package/lib/ui-simple-combo/ui-simple-combo.component.d.ts +9 -1
- package/lib/ulv-toolbar/ulv-toolbar.component.d.ts +3 -2
- package/package.json +1 -1
|
@@ -64,15 +64,15 @@ export class BlobViewerComponent extends BaseComponent {
|
|
|
64
64
|
this.valueUrl = this._domSanitizer.bypassSecurityTrustResourceUrl(url.createObjectURL(blob));
|
|
65
65
|
}
|
|
66
66
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BlobViewerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
67
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BlobViewerComponent, selector: "bsu-blob-viewer", inputs: { file: "file" }, viewQueries: [{ propertyName: "_pdfViewerOnDemand", first: true, predicate: ["pdfViewerOnDemand"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (loading) {\n<bsu-mask></bsu-mask>\n} @if (
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BlobViewerComponent, selector: "bsu-blob-viewer", inputs: { file: "file" }, viewQueries: [{ propertyName: "_pdfViewerOnDemand", first: true, predicate: ["pdfViewerOnDemand"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (loading) {\n<bsu-mask></bsu-mask>\n} @else if (valueUrl) { @switch (file.Type) { @case ('pdf') {\n<ng-container *ngTemplateOutlet=\"objectTpl\"></ng-container>\n} @case('txt'){\n<ng-container *ngTemplateOutlet=\"objectTpl\"></ng-container>\n} @case('m4a'){\n<ng-container *ngTemplateOutlet=\"audio\"></ng-container>\n} @case('x-ms-wma'){\n<ng-container *ngTemplateOutlet=\"audio\"></ng-container>\n} @case('x-wav'){\n<ng-container *ngTemplateOutlet=\"audio\"></ng-container>\n} @case('mp4'){\n<ng-container *ngTemplateOutlet=\"video\"></ng-container>\n} @case('webm'){\n<ng-container *ngTemplateOutlet=\"video\"></ng-container>\n} } }\n\n<ng-template #objectTpl let-type>\n @if(isMobile){\n <ng2-pdfjs-viewer\n #pdfViewerOnDemand\n [externalWindow]=\"false\"\n [downloadFileName]=\"blobUrl\"\n [openFile]=\"false\"\n [viewBookmark]=\"false\"\n [showSpinner]=\"true\"\n [download]=\"true\"\n ></ng2-pdfjs-viewer>\n }@else{\n <object\n style=\"flex-grow: 1\"\n [attr.data]=\"valueUrl\"\n type=\"application/pdf\"\n width=\"100%\"\n height=\"100%\"\n [attr.html]=\"fallbackUrl\"\n ></object>\n }\n</ng-template>\n<ng-template #audio>\n <audio controls>\n <source [src]=\"valueUrl\" />\n Your browser does not support the audio element.\n </audio>\n</ng-template>\n<ng-template #video>\n <video controls>\n <source [src]=\"valueUrl\" />\n Your browser does not support the audio element.\n </video>\n</ng-template>\n", styles: [":host{display:block;position:relative;height:100%;width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.PdfJsViewerComponent, selector: "ng2-pdfjs-viewer", inputs: ["viewerId", "viewerFolder", "externalWindow", "target", "showSpinner", "downloadFileName", "openFile", "download", "startDownload", "viewBookmark", "print", "startPrint", "fullScreen", "find", "zoom", "nameddest", "pagemode", "lastPage", "rotatecw", "rotateccw", "cursor", "scroll", "spread", "locale", "useOnlyCssZoom", "errorOverride", "errorAppend", "errorMessage", "diagnosticLogs", "externalWindowOptions", "page", "pdfSrc"], outputs: ["onBeforePrint", "onAfterPrint", "onDocumentLoad", "onPageChange"] }, { kind: "component", type: i4.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
68
68
|
}
|
|
69
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BlobViewerComponent, decorators: [{
|
|
70
70
|
type: Component,
|
|
71
|
-
args: [{ selector: 'bsu-blob-viewer', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (loading) {\n<bsu-mask></bsu-mask>\n} @if (
|
|
71
|
+
args: [{ selector: 'bsu-blob-viewer', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (loading) {\n<bsu-mask></bsu-mask>\n} @else if (valueUrl) { @switch (file.Type) { @case ('pdf') {\n<ng-container *ngTemplateOutlet=\"objectTpl\"></ng-container>\n} @case('txt'){\n<ng-container *ngTemplateOutlet=\"objectTpl\"></ng-container>\n} @case('m4a'){\n<ng-container *ngTemplateOutlet=\"audio\"></ng-container>\n} @case('x-ms-wma'){\n<ng-container *ngTemplateOutlet=\"audio\"></ng-container>\n} @case('x-wav'){\n<ng-container *ngTemplateOutlet=\"audio\"></ng-container>\n} @case('mp4'){\n<ng-container *ngTemplateOutlet=\"video\"></ng-container>\n} @case('webm'){\n<ng-container *ngTemplateOutlet=\"video\"></ng-container>\n} } }\n\n<ng-template #objectTpl let-type>\n @if(isMobile){\n <ng2-pdfjs-viewer\n #pdfViewerOnDemand\n [externalWindow]=\"false\"\n [downloadFileName]=\"blobUrl\"\n [openFile]=\"false\"\n [viewBookmark]=\"false\"\n [showSpinner]=\"true\"\n [download]=\"true\"\n ></ng2-pdfjs-viewer>\n }@else{\n <object\n style=\"flex-grow: 1\"\n [attr.data]=\"valueUrl\"\n type=\"application/pdf\"\n width=\"100%\"\n height=\"100%\"\n [attr.html]=\"fallbackUrl\"\n ></object>\n }\n</ng-template>\n<ng-template #audio>\n <audio controls>\n <source [src]=\"valueUrl\" />\n Your browser does not support the audio element.\n </audio>\n</ng-template>\n<ng-template #video>\n <video controls>\n <source [src]=\"valueUrl\" />\n Your browser does not support the audio element.\n </video>\n</ng-template>\n", styles: [":host{display:block;position:relative;height:100%;width:100%}\n"] }]
|
|
72
72
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.DomSanitizer }], propDecorators: { file: [{
|
|
73
73
|
type: Input
|
|
74
74
|
}], _pdfViewerOnDemand: [{
|
|
75
75
|
type: ViewChild,
|
|
76
76
|
args: ['pdfViewerOnDemand']
|
|
77
77
|
}] } });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvYi12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmxvYi12aWV3ZXIvYmxvYi12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmxvYi12aWV3ZXIvYmxvYi12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsS0FBSyxFQUlMLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBc0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBUXRHLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBUWxELFlBQW9CLElBQXVCLEVBQVUsYUFBMkI7UUFDNUUsS0FBSyxFQUFFLENBQUM7UUFEUSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBSmhGLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFNaEIsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDekIsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsRSxDQUFDO0lBQ0wsQ0FBQztJQUVTLGVBQWUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsY0FBYztRQUM5RSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDL0M7WUFDSSxNQUFNO1lBQ04sT0FBTyxFQUFFLElBQUk7WUFDYixhQUFhO1lBQ2IsU0FBUztZQUNULGNBQWM7WUFDZCxNQUFNO1NBQ1QsRUFDRCxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ1QsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM1QyxDQUFDO1lBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNOLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDO0lBQ1MsY0FBYyxDQUFDLE1BQU07UUFDM0IsT0FBTzttRUFDb0QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQ25HLE1BQU0sRUFDTixLQUFLLEVBQ0wsSUFBSSxDQUNQLGdEQUFnRCxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FDakYsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLENBQ1Isb0NBQW9DLENBQUM7SUFDMUMsQ0FBQztJQUNTLFdBQVcsQ0FBQyxPQUFPO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNTLHdCQUF3QixDQUFDLFFBQVE7UUFDdkMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BGLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsbUNBQW1DO1lBQ2xGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLHFDQUFxQztRQUM1RSxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqRyxDQUFDOzhHQTNFUSxtQkFBbUI7a0dBQW5CLG1CQUFtQixzUENuQmhDLDhvQkF5QkE7OzJGRE5hLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDSSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTTtpSEFHdEMsSUFBSTtzQkFBWixLQUFLO2dCQUMwQixrQkFBa0I7c0JBQWpELFNBQVM7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBnZXREZXZpY2VJc01vYmlsZSwgQmFyc2FBcGksIEJhc2VDb21wb25lbnQsIEZpbGVBdHRhY2htZW50SW5mbyB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtYmxvYi12aWV3ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ibG9iLXZpZXdlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYmxvYi12aWV3ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBCbG9iVmlld2VyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBmaWxlOiBGaWxlQXR0YWNobWVudEluZm87XG4gICAgQFZpZXdDaGlsZCgncGRmVmlld2VyT25EZW1hbmQnKSBfcGRmVmlld2VyT25EZW1hbmQ6IGFueTtcbiAgICB2YWx1ZVVybDogU2FmZVJlc291cmNlVXJsO1xuICAgIGxvYWRpbmcgPSBmYWxzZTtcbiAgICBmYWxsYmFja1VybDogc3RyaW5nO1xuICAgIGlzTW9iaWxlOiBib29sZWFuO1xuICAgIGJsb2JVcmw6IHN0cmluZztcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIF9kb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmlzTW9iaWxlID0gZ2V0RGV2aWNlSXNNb2JpbGUoKTtcbiAgICAgICAgdGhpcy5mYWxsYmFja1VybCA9IHRoaXMuZ2V0RmFsbGJhY2tVcmwodGhpcy5maWxlLklkKTtcbiAgICAgICAgdGhpcy5fZG93bmxvYWRGaWxlSWQodGhpcy5maWxlLklkLCB0cnVlLCAncGRmJywgZmFsc2UsIGZhbHNlKTtcbiAgICB9XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgICAgY29uc3QgeyBmaWxlIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAoZmlsZSAmJiAhZmlsZS5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5mYWxsYmFja1VybCA9IHRoaXMuZ2V0RmFsbGJhY2tVcmwodGhpcy5maWxlLklkKTtcbiAgICAgICAgICAgIHRoaXMuX2Rvd25sb2FkRmlsZUlkKHRoaXMuZmlsZS5JZCwgdHJ1ZSwgJ3BkZicsIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2Rvd25sb2FkRmlsZUlkKGZpbGVJZCwgdmlld0luQnJvd3NlciwgY29udmVydFRvLCBmb3JPY3gsIGlzT2ZmaWNlT25saW5lKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgIEJhcnNhQXBpLkNvbW1vbi5GaWxlLkRvd25sb2FkRmlsZUNvbnRlbnQuYmluZCh0aGlzKShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWxlSWQsXG4gICAgICAgICAgICAgICAgZmlsZVVybDogbnVsbCxcbiAgICAgICAgICAgICAgICB2aWV3SW5Ccm93c2VyLFxuICAgICAgICAgICAgICAgIGNvbnZlcnRUbyxcbiAgICAgICAgICAgICAgICBpc09mZmljZU9ubGluZSxcbiAgICAgICAgICAgICAgICBmb3JPY3hcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kb3dubG9hZEZpbGVJZENvbXBsZXRlZChyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX3NldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIGFsZXJ0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVXJsKGZpbGVJZCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBg2KfZhdqp2KfZhiDZhtmF2KfbjNi0INmB2KfbjNmEINiv2LEg2KfbjNmGINmF2LHZiNix2q/YsSDZiNis2YjYryDZhtiv2KfYsdivLlxuICAgINio2LHYp9uMINio2KfYsiDaqdix2K/ZhiDZgdin24zZhCDYp9iyINmE24zZhtqpINiy24zYsSDYp9iz2KrZgdin2K/ZhyDaqdmG24zYrzogIDwvYnI+IDxhIGhyZWY9JyR7QmFyc2FBcGkuQ29tbW9uLkZpbGUuQ3JlYXRlQXR0YWNobWVudFVybChcbiAgICAgICAgZmlsZUlkLFxuICAgICAgICBmYWxzZSxcbiAgICAgICAgdHJ1ZVxuICAgICl9Jz7Yr9in2YbZhNmI2K8g2YHYp9uM2YQg2KjYtdmI2LHYqiBwZGY8L2E+ICA8L2JyPiAgPGEgaHJlZj0nJHtCYXJzYUFwaS5Db21tb24uRmlsZS5DcmVhdGVBdHRhY2htZW50VXJsKFxuICAgICAgICAgICAgZmlsZUlkLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApfSc+2K/Yp9mG2YTZiNivINmB2KfbjNmEINio2LXZiNix2Kog2KjYtdmI2LHYqiDYp9i12YTbjDwvYT5gO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NldExvYWRpbmcobG9hZGluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBsb2FkaW5nO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2Rvd25sb2FkRmlsZUlkQ29tcGxldGVkKHJlc3BvbnNlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGJsb2IgPSBCYXJzYUFwaS5Db21tb24uRmlsZS5CNjR0b0Jsb2IocmVzcG9uc2UuY29udGVudCwgcmVzcG9uc2UuY29udGVudFR5cGUpO1xuICAgICAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMIHx8IHdpbmRvdy53ZWJraXRVUkw7XG4gICAgICAgIHRoaXMuYmxvYlVybCA9IHVybC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLl9wZGZWaWV3ZXJPbkRlbWFuZC5wZGZTcmMgPSB0aGlzLmJsb2JVcmw7IC8vIHBkZlNyYyBjYW4gYmUgQmxvYiBvciBVaW50OEFycmF5XG4gICAgICAgICAgICB0aGlzLl9wZGZWaWV3ZXJPbkRlbWFuZC5yZWZyZXNoKCk7IC8vIEFzayBwZGYgdmlld2VyIHRvIGxvYWQvcmVmcmVzaCBwZGZcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbHVlVXJsID0gdGhpcy5fZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh1cmwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpKTtcbiAgICB9XG59XG4iLCJAaWYgKGxvYWRpbmcpIHtcbjxic3UtbWFzaz48L2JzdS1tYXNrPlxufSBAaWYgKGlzTW9iaWxlKSB7XG48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGRmSnNcIj4gPC9uZy1jb250YWluZXI+XG59IEBlbHNlIHsgQGlmICh2YWx1ZVVybCkge1xuPG9iamVjdFxuICAgIHN0eWxlPVwiZmxleC1ncm93OiAxXCJcbiAgICBbYXR0ci5kYXRhXT1cInZhbHVlVXJsXCJcbiAgICB0eXBlPVwiYXBwbGljYXRpb24vcGRmXCJcbiAgICB3aWR0aD1cIjEwMCVcIlxuICAgIGhlaWdodD1cIjEwMCVcIlxuICAgIFthdHRyLmh0bWxdPVwiZmFsbGJhY2tVcmxcIlxuPjwvb2JqZWN0PlxufSB9XG48bmctdGVtcGxhdGUgI3BkZkpzPlxuICAgIDxuZzItcGRmanMtdmlld2VyXG4gICAgICAgICNwZGZWaWV3ZXJPbkRlbWFuZFxuICAgICAgICBbZXh0ZXJuYWxXaW5kb3ddPVwiZmFsc2VcIlxuICAgICAgICBbZG93bmxvYWRGaWxlTmFtZV09XCJibG9iVXJsXCJcbiAgICAgICAgW29wZW5GaWxlXT1cImZhbHNlXCJcbiAgICAgICAgW3ZpZXdCb29rbWFya109XCJmYWxzZVwiXG4gICAgICAgIFtzaG93U3Bpbm5lcl09XCJ0cnVlXCJcbiAgICAgICAgW2Rvd25sb2FkXT1cInRydWVcIlxuICAgID48L25nMi1wZGZqcy12aWV3ZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvYi12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmxvYi12aWV3ZXIvYmxvYi12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmxvYi12aWV3ZXIvYmxvYi12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsS0FBSyxFQUlMLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBc0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBUXRHLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBUWxELFlBQW9CLElBQXVCLEVBQVUsYUFBMkI7UUFDNUUsS0FBSyxFQUFFLENBQUM7UUFEUSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBSmhGLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFNaEIsQ0FBQztJQUNELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixLQUFLLENBQUMsV0FB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LHVCQUF1QixDQUFDLE1BQU07aUhBR3RDLElBQUk7c0JBQVosS0FBSztnQkFDMEIsa0JBQWtCO3NCQUFqRCxTQUFTO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgZ2V0RGV2aWNlSXNNb2JpbGUsIEJhcnNhQXBpLCBCYXNlQ29tcG9uZW50LCBGaWxlQXR0YWNobWVudEluZm8gfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWJsb2Itdmlld2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmxvYi12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Jsb2Itdmlld2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQmxvYlZpZXdlckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgZmlsZTogRmlsZUF0dGFjaG1lbnRJbmZvO1xuICAgIEBWaWV3Q2hpbGQoJ3BkZlZpZXdlck9uRGVtYW5kJykgX3BkZlZpZXdlck9uRGVtYW5kOiBhbnk7XG4gICAgdmFsdWVVcmw6IFNhZmVSZXNvdXJjZVVybDtcbiAgICBsb2FkaW5nID0gZmFsc2U7XG4gICAgZmFsbGJhY2tVcmw6IHN0cmluZztcbiAgICBpc01vYmlsZTogYm9vbGVhbjtcbiAgICBibG9iVXJsOiBzdHJpbmc7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBfZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBnZXREZXZpY2VJc01vYmlsZSgpO1xuICAgICAgICB0aGlzLmZhbGxiYWNrVXJsID0gdGhpcy5nZXRGYWxsYmFja1VybCh0aGlzLmZpbGUuSWQpO1xuICAgICAgICB0aGlzLl9kb3dubG9hZEZpbGVJZCh0aGlzLmZpbGUuSWQsIHRydWUsICdwZGYnLCBmYWxzZSwgZmFsc2UpO1xuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgICAgICBjb25zdCB7IGZpbGUgfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmIChmaWxlICYmICFmaWxlLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLmZhbGxiYWNrVXJsID0gdGhpcy5nZXRGYWxsYmFja1VybCh0aGlzLmZpbGUuSWQpO1xuICAgICAgICAgICAgdGhpcy5fZG93bmxvYWRGaWxlSWQodGhpcy5maWxlLklkLCB0cnVlLCAncGRmJywgZmFsc2UsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBfZG93bmxvYWRGaWxlSWQoZmlsZUlkLCB2aWV3SW5Ccm93c2VyLCBjb252ZXJ0VG8sIGZvck9jeCwgaXNPZmZpY2VPbmxpbmUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgQmFyc2FBcGkuQ29tbW9uLkZpbGUuRG93bmxvYWRGaWxlQ29udGVudC5iaW5kKHRoaXMpKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZpbGVJZCxcbiAgICAgICAgICAgICAgICBmaWxlVXJsOiBudWxsLFxuICAgICAgICAgICAgICAgIHZpZXdJbkJyb3dzZXIsXG4gICAgICAgICAgICAgICAgY29udmVydFRvLFxuICAgICAgICAgICAgICAgIGlzT2ZmaWNlT25saW5lLFxuICAgICAgICAgICAgICAgIGZvck9jeFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZWVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Rvd25sb2FkRmlsZUlkQ29tcGxldGVkKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgYWxlcnQoZXJyb3IpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tVcmwoZmlsZUlkKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGDYp9mF2qnYp9mGINmG2YXYp9uM2LQg2YHYp9uM2YQg2K/YsSDYp9uM2YYg2YXYsdmI2LHar9ixINmI2KzZiNivINmG2K/Yp9ix2K8uXG4gICAg2KjYsdin24wg2KjYp9iyINqp2LHYr9mGINmB2KfbjNmEINin2LIg2YTbjNmG2qkg2LLbjNixINin2LPYqtmB2KfYr9mHINqp2YbbjNivOiAgPC9icj4gPGEgaHJlZj0nJHtCYXJzYUFwaS5Db21tb24uRmlsZS5DcmVhdGVBdHRhY2htZW50VXJsKFxuICAgICAgICBmaWxlSWQsXG4gICAgICAgIGZhbHNlLFxuICAgICAgICB0cnVlXG4gICAgKX0nPtiv2KfZhtmE2YjYryDZgdin24zZhCDYqNi12YjYsdiqIHBkZjwvYT4gIDwvYnI+ICA8YSBocmVmPScke0JhcnNhQXBpLkNvbW1vbi5GaWxlLkNyZWF0ZUF0dGFjaG1lbnRVcmwoXG4gICAgICAgICAgICBmaWxlSWQsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICl9Jz7Yr9in2YbZhNmI2K8g2YHYp9uM2YQg2KjYtdmI2LHYqiDYqNi12YjYsdiqINin2LXZhNuMPC9hPmA7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0TG9hZGluZyhsb2FkaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGxvYWRpbmc7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZG93bmxvYWRGaWxlSWRDb21wbGV0ZWQocmVzcG9uc2UpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYmxvYiA9IEJhcnNhQXBpLkNvbW1vbi5GaWxlLkI2NHRvQmxvYihyZXNwb25zZS5jb250ZW50LCByZXNwb25zZS5jb250ZW50VHlwZSk7XG4gICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwgfHwgd2luZG93LndlYmtpdFVSTDtcbiAgICAgICAgdGhpcy5ibG9iVXJsID0gdXJsLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgaWYgKHRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3BkZlZpZXdlck9uRGVtYW5kLnBkZlNyYyA9IHRoaXMuYmxvYlVybDsgLy8gcGRmU3JjIGNhbiBiZSBCbG9iIG9yIFVpbnQ4QXJyYXlcbiAgICAgICAgICAgIHRoaXMuX3BkZlZpZXdlck9uRGVtYW5kLnJlZnJlc2goKTsgLy8gQXNrIHBkZiB2aWV3ZXIgdG8gbG9hZC9yZWZyZXNoIHBkZlxuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsdWVVcmwgPSB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHVybC5jcmVhdGVPYmplY3RVUkwoYmxvYikpO1xuICAgIH1cbn1cbiIsIkBpZiAobG9hZGluZykge1xuPGJzdS1tYXNrPjwvYnN1LW1hc2s+XG59IEBlbHNlIGlmICh2YWx1ZVVybCkgeyBAc3dpdGNoIChmaWxlLlR5cGUpIHsgQGNhc2UgKCdwZGYnKSB7XG48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwib2JqZWN0VHBsXCI+PC9uZy1jb250YWluZXI+XG59IEBjYXNlKCd0eHQnKXtcbjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvYmplY3RUcGxcIj48L25nLWNvbnRhaW5lcj5cbn0gQGNhc2UoJ200YScpe1xuPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImF1ZGlvXCI+PC9uZy1jb250YWluZXI+XG59IEBjYXNlKCd4LW1zLXdtYScpe1xuPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImF1ZGlvXCI+PC9uZy1jb250YWluZXI+XG59IEBjYXNlKCd4LXdhdicpe1xuPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImF1ZGlvXCI+PC9uZy1jb250YWluZXI+XG59IEBjYXNlKCdtcDQnKXtcbjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ2aWRlb1wiPjwvbmctY29udGFpbmVyPlxufSBAY2FzZSgnd2VibScpe1xuPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInZpZGVvXCI+PC9uZy1jb250YWluZXI+XG59IH0gfVxuXG48bmctdGVtcGxhdGUgI29iamVjdFRwbCBsZXQtdHlwZT5cbiAgICBAaWYoaXNNb2JpbGUpe1xuICAgIDxuZzItcGRmanMtdmlld2VyXG4gICAgICAgICNwZGZWaWV3ZXJPbkRlbWFuZFxuICAgICAgICBbZXh0ZXJuYWxXaW5kb3ddPVwiZmFsc2VcIlxuICAgICAgICBbZG93bmxvYWRGaWxlTmFtZV09XCJibG9iVXJsXCJcbiAgICAgICAgW29wZW5GaWxlXT1cImZhbHNlXCJcbiAgICAgICAgW3ZpZXdCb29rbWFya109XCJmYWxzZVwiXG4gICAgICAgIFtzaG93U3Bpbm5lcl09XCJ0cnVlXCJcbiAgICAgICAgW2Rvd25sb2FkXT1cInRydWVcIlxuICAgID48L25nMi1wZGZqcy12aWV3ZXI+XG4gICAgfUBlbHNle1xuICAgIDxvYmplY3RcbiAgICAgICAgc3R5bGU9XCJmbGV4LWdyb3c6IDFcIlxuICAgICAgICBbYXR0ci5kYXRhXT1cInZhbHVlVXJsXCJcbiAgICAgICAgdHlwZT1cImFwcGxpY2F0aW9uL3BkZlwiXG4gICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgICAgICBbYXR0ci5odG1sXT1cImZhbGxiYWNrVXJsXCJcbiAgICA+PC9vYmplY3Q+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjYXVkaW8+XG4gICAgPGF1ZGlvIGNvbnRyb2xzPlxuICAgICAgICA8c291cmNlIFtzcmNdPVwidmFsdWVVcmxcIiAvPlxuICAgICAgICBZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGUgYXVkaW8gZWxlbWVudC5cbiAgICA8L2F1ZGlvPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdmlkZW8+XG4gICAgPHZpZGVvIGNvbnRyb2xzPlxuICAgICAgICA8c291cmNlIFtzcmNdPVwidmFsdWVVcmxcIiAvPlxuICAgICAgICBZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGUgYXVkaW8gZWxlbWVudC5cbiAgICA8L3ZpZGVvPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
|
|
2
2
|
import { BaseComponent, getIcon, isImage } from 'barsa-novin-ray-core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "barsa-novin-ray-core";
|
|
@@ -10,6 +10,9 @@ export class FileViewerContentComponent extends BaseComponent {
|
|
|
10
10
|
constructor(_picFieldSrc) {
|
|
11
11
|
super();
|
|
12
12
|
this._picFieldSrc = _picFieldSrc;
|
|
13
|
+
this.cantView = new EventEmitter();
|
|
14
|
+
this._height = null;
|
|
15
|
+
this.hideContent = false;
|
|
13
16
|
}
|
|
14
17
|
ngOnInit() {
|
|
15
18
|
super.ngOnInit();
|
|
@@ -22,13 +25,18 @@ export class FileViewerContentComponent extends BaseComponent {
|
|
|
22
25
|
(file.mediaUrl = this._picFieldSrc.transform(file.Id, this.isImageGallery ? 'BarsaPicture.Full' : 'Attachment', '', '', 0, 0)) &&
|
|
23
26
|
(file.isImage = true);
|
|
24
27
|
!isImg && (file.thumbnailUrl = getIcon(ext || file.Type));
|
|
28
|
+
if (!isImg && ['webm', 'mp4', 'x-wav', 'x-ms-wma', 'm4a', 'txt', 'pdf'].indexOf(this.file.Type) < 0) {
|
|
29
|
+
this.hideContent = true;
|
|
30
|
+
this._height = '0px';
|
|
31
|
+
this.cantView.emit();
|
|
32
|
+
}
|
|
25
33
|
}
|
|
26
34
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FileViewerContentComponent, deps: [{ token: i1.PictureFieldSourcePipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: FileViewerContentComponent, selector: "bsu-file-viewer-content", inputs: { fillWidth: "fillWidth", imageOnly: "imageOnly", isImageGallery: "isImageGallery", cardMode: "cardMode", showFooter: "showFooter", showContent: "showContent", width: "width", deviceSize: "deviceSize", cardContentHeight: "cardContentHeight", file: "file" }, outputs: { cantView: "cantView" }, host: { properties: { "style.height": "this._height" } }, usesInheritance: true, ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"cardMode ? cardTpl : file.isImage || imageOnly ? showImage : blobViewer\"\n></ng-container>\n\n<ng-template #showImage>\n <div class=\"column big-imgs-box\" [class.fill-width]=\"fillWidth\">\n <div class=\"pics\">\n <bsu-mask></bsu-mask>\n <img imgLazy [imgLazy]=\"file.mediaUrl\" [src]=\"file.mediaUrl\" [style.width]=\"width\" />\n </div>\n </div>\n</ng-template>\n<ng-template #blobViewer>\n @if(!hideContent){\n <bsu-blob-viewer\n [file]=\"file\"\n [style.width]=\"width\"\n fillEmptySpace\n [disable]=\"deviceSize !== 's'\"\n [decrement]=\"'25px'\"\n ></bsu-blob-viewer>\n }@else{ }\n</ng-template>\n<ng-template #cardTpl>\n <fd-card class=\"media\">\n <fd-card-content\n style=\"text-align: center\"\n [style.height]=\"cardContentHeight\"\n [style.display]=\"hideContent ? 'none' : null\"\n >\n <ng-container\n *ngTemplateOutlet=\"!showContent ? thumbnailTpl : file.isImage || imageOnly ? showImage : blobViewer\"\n ></ng-container>\n </fd-card-content>\n </fd-card>\n</ng-template>\n<ng-template #thumbnailTpl>\n <img imgLazy [imgLazy]=\"file.thumbnailUrl\" [src]=\"file.thumbnailUrl\" [style.width]=\"width\" />\n</ng-template>\n", styles: [":host{display:block;height:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.ImageLazyDirective, selector: "[imgLazy]", inputs: ["auto", "threshold", "imgLazy"], outputs: ["imageLoaded"] }, { kind: "directive", type: i1.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight"], exportAs: ["fillEmptySpace"] }, { kind: "component", type: i3.CardComponent, selector: "fd-card", inputs: ["badge", "isLoading", "cardType", "id", "role"] }, { kind: "component", type: i3.CardContentComponent, selector: "fd-card-content" }, { kind: "component", type: i4.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i5.BlobViewerComponent, selector: "bsu-blob-viewer", inputs: ["file"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28
36
|
}
|
|
29
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FileViewerContentComponent, decorators: [{
|
|
30
38
|
type: Component,
|
|
31
|
-
args: [{ selector: 'bsu-file-viewer-content', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container\
|
|
39
|
+
args: [{ selector: 'bsu-file-viewer-content', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container\n *ngTemplateOutlet=\"cardMode ? cardTpl : file.isImage || imageOnly ? showImage : blobViewer\"\n></ng-container>\n\n<ng-template #showImage>\n <div class=\"column big-imgs-box\" [class.fill-width]=\"fillWidth\">\n <div class=\"pics\">\n <bsu-mask></bsu-mask>\n <img imgLazy [imgLazy]=\"file.mediaUrl\" [src]=\"file.mediaUrl\" [style.width]=\"width\" />\n </div>\n </div>\n</ng-template>\n<ng-template #blobViewer>\n @if(!hideContent){\n <bsu-blob-viewer\n [file]=\"file\"\n [style.width]=\"width\"\n fillEmptySpace\n [disable]=\"deviceSize !== 's'\"\n [decrement]=\"'25px'\"\n ></bsu-blob-viewer>\n }@else{ }\n</ng-template>\n<ng-template #cardTpl>\n <fd-card class=\"media\">\n <fd-card-content\n style=\"text-align: center\"\n [style.height]=\"cardContentHeight\"\n [style.display]=\"hideContent ? 'none' : null\"\n >\n <ng-container\n *ngTemplateOutlet=\"!showContent ? thumbnailTpl : file.isImage || imageOnly ? showImage : blobViewer\"\n ></ng-container>\n </fd-card-content>\n </fd-card>\n</ng-template>\n<ng-template #thumbnailTpl>\n <img imgLazy [imgLazy]=\"file.thumbnailUrl\" [src]=\"file.thumbnailUrl\" [style.width]=\"width\" />\n</ng-template>\n", styles: [":host{display:block;height:100%}\n"] }]
|
|
32
40
|
}], ctorParameters: () => [{ type: i1.PictureFieldSourcePipe }], propDecorators: { fillWidth: [{
|
|
33
41
|
type: Input
|
|
34
42
|
}], imageOnly: [{
|
|
@@ -49,5 +57,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
49
57
|
type: Input
|
|
50
58
|
}], file: [{
|
|
51
59
|
type: Input
|
|
60
|
+
}], cantView: [{
|
|
61
|
+
type: Output
|
|
62
|
+
}], _height: [{
|
|
63
|
+
type: HostBinding,
|
|
64
|
+
args: ['style.height']
|
|
52
65
|
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS12aWV3ZXItY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9maWxlLXZpZXdlci1jb250ZW50L2ZpbGUtdmlld2VyLWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZmlsZS12aWV3ZXItY29udGVudC9maWxlLXZpZXdlci1jb250ZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFDSCxhQUFhLEVBR2IsT0FBTyxFQUNQLE9BQU8sRUFFVixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7O0FBUTlCLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxhQUFhO0lBY3pELFlBQW9CLFlBQW9DO1FBQ3BELEtBQUssRUFBRSxDQUFDO1FBRFEsaUJBQVksR0FBWixZQUFZLENBQXdCO1FBSDlDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ1gsWUFBTyxHQUFrQixJQUFJLENBQUM7UUFDM0QsZ0JBQVcsR0FBRyxLQUFLLENBQUM7SUFHcEIsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0MsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLEtBQUs7WUFDRCxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQzVDLElBQUksQ0FBQyxFQUFFLEVBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLElBQUksRUFDckQsSUFBSSxFQUNKLEVBQUUsRUFDRixHQUFHLEVBQ0gsR0FBRyxDQUNOLENBQUM7WUFDRixDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQ3hDLElBQUksQ0FBQyxFQUFFLEVBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFDeEQsRUFBRSxFQUNGLEVBQUUsRUFDRixDQUFDLEVBQ0QsQ0FBQyxDQUNKLENBQUM7WUFDRixDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDMUIsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xHLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNMLENBQUM7OEdBaERRLDBCQUEwQjtrR0FBMUIsMEJBQTBCLDZiQ2hCdkMsdTFDQXVDQTs7MkZEdkJhLDBCQUEwQjtrQkFOdEMsU0FBUzsrQkFDSSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU07MkZBR3RDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTTtnQkFDc0IsT0FBTztzQkFBbkMsV0FBVzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEJhc2VDb21wb25lbnQsXG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplLFxuICAgIEZpbGVBdHRhY2htZW50SW5mbyxcbiAgICBnZXRJY29uLFxuICAgIGlzSW1hZ2UsXG4gICAgUGljdHVyZUZpZWxkU291cmNlUGlwZVxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWZpbGUtdmlld2VyLWNvbnRlbnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWxlLXZpZXdlci1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9maWxlLXZpZXdlci1jb250ZW50LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVZpZXdlckNvbnRlbnRDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBmaWxsV2lkdGg6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaW1hZ2VPbmx5OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzSW1hZ2VHYWxsZXJ5OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNhcmRNb2RlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNob3dGb290ZXI6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2hvd0NvbnRlbnQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgd2lkdGg6IHN0cmluZztcbiAgICBASW5wdXQoKSBkZXZpY2VTaXplOiBBYmJyZXZhdGlvbkRldmljZVNpemU7XG4gICAgQElucHV0KCkgY2FyZENvbnRlbnRIZWlnaHQ6IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KCkgZmlsZTogRmlsZUF0dGFjaG1lbnRJbmZvO1xuICAgIEBPdXRwdXQoKSBjYW50VmlldyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodCcpIF9oZWlnaHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIGhpZGVDb250ZW50ID0gZmFsc2U7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfcGljRmllbGRTcmM6IFBpY3R1cmVGaWVsZFNvdXJjZVBpcGUpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgY29uc3QgZmlsZSA9IHRoaXMuZmlsZTtcbiAgICAgICAgY29uc3Qgc3BsID0gZmlsZS5GaWxlTmFtZT8uc3BsaXQoJy4nKTtcbiAgICAgICAgY29uc3QgZXh0ID0gc3BsID8gc3BsW3NwbC5sZW5ndGggLSAxXSA6ICcnO1xuICAgICAgICBjb25zdCBpc0ltZyA9IGlzSW1hZ2UoZXh0KTtcbiAgICAgICAgaXNJbWcgJiZcbiAgICAgICAgICAgIChmaWxlLnRodW1ibmFpbFVybCA9IHRoaXMuX3BpY0ZpZWxkU3JjLnRyYW5zZm9ybShcbiAgICAgICAgICAgICAgICBmaWxlLklkLFxuICAgICAgICAgICAgICAgIHRoaXMuaXNJbWFnZUdhbGxlcnkgPyAnQmFyc2FQaWN0dXJlLlRodW1ibmFpbCcgOiAnSUQnLFxuICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgMTIwLFxuICAgICAgICAgICAgICAgIDEyMFxuICAgICAgICAgICAgKSkgJiZcbiAgICAgICAgICAgIChmaWxlLm1lZGlhVXJsID0gdGhpcy5fcGljRmllbGRTcmMudHJhbnNmb3JtKFxuICAgICAgICAgICAgICAgIGZpbGUuSWQsXG4gICAgICAgICAgICAgICAgdGhpcy5pc0ltYWdlR2FsbGVyeSA/ICdCYXJzYVBpY3R1cmUuRnVsbCcgOiAnQXR0YWNobWVudCcsXG4gICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAwXG4gICAgICAgICAgICApKSAmJlxuICAgICAgICAgICAgKGZpbGUuaXNJbWFnZSA9IHRydWUpO1xuICAgICAgICAhaXNJbWcgJiYgKGZpbGUudGh1bWJuYWlsVXJsID0gZ2V0SWNvbihleHQgfHwgZmlsZS5UeXBlKSk7XG4gICAgICAgIGlmICghaXNJbWcgJiYgWyd3ZWJtJywgJ21wNCcsICd4LXdhdicsICd4LW1zLXdtYScsICdtNGEnLCAndHh0JywgJ3BkZiddLmluZGV4T2YodGhpcy5maWxlLlR5cGUpIDwgMCkge1xuICAgICAgICAgICAgdGhpcy5oaWRlQ29udGVudCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9oZWlnaHQgPSAnMHB4JztcbiAgICAgICAgICAgIHRoaXMuY2FudFZpZXcuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FyZE1vZGUgPyBjYXJkVHBsIDogZmlsZS5pc0ltYWdlIHx8IGltYWdlT25seSA/IHNob3dJbWFnZSA6IGJsb2JWaWV3ZXJcIlxuPjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3Nob3dJbWFnZT5cbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGJpZy1pbWdzLWJveFwiIFtjbGFzcy5maWxsLXdpZHRoXT1cImZpbGxXaWR0aFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicGljc1wiPlxuICAgICAgICAgICAgPGJzdS1tYXNrPjwvYnN1LW1hc2s+XG4gICAgICAgICAgICA8aW1nIGltZ0xhenkgW2ltZ0xhenldPVwiZmlsZS5tZWRpYVVybFwiIFtzcmNdPVwiZmlsZS5tZWRpYVVybFwiIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjYmxvYlZpZXdlcj5cbiAgICBAaWYoIWhpZGVDb250ZW50KXtcbiAgICA8YnN1LWJsb2Itdmlld2VyXG4gICAgICAgIFtmaWxlXT1cImZpbGVcIlxuICAgICAgICBbc3R5bGUud2lkdGhdPVwid2lkdGhcIlxuICAgICAgICBmaWxsRW1wdHlTcGFjZVxuICAgICAgICBbZGlzYWJsZV09XCJkZXZpY2VTaXplICE9PSAncydcIlxuICAgICAgICBbZGVjcmVtZW50XT1cIicyNXB4J1wiXG4gICAgPjwvYnN1LWJsb2Itdmlld2VyPlxuICAgIH1AZWxzZXsgfVxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjY2FyZFRwbD5cbiAgICA8ZmQtY2FyZCBjbGFzcz1cIm1lZGlhXCI+XG4gICAgICAgIDxmZC1jYXJkLWNvbnRlbnRcbiAgICAgICAgICAgIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyXCJcbiAgICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwiY2FyZENvbnRlbnRIZWlnaHRcIlxuICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiaGlkZUNvbnRlbnQgPyAnbm9uZScgOiBudWxsXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiIXNob3dDb250ZW50ID8gdGh1bWJuYWlsVHBsIDogZmlsZS5pc0ltYWdlIHx8IGltYWdlT25seSA/IHNob3dJbWFnZSA6IGJsb2JWaWV3ZXJcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZkLWNhcmQtY29udGVudD5cbiAgICA8L2ZkLWNhcmQ+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICN0aHVtYm5haWxUcGw+XG4gICAgPGltZyBpbWdMYXp5IFtpbWdMYXp5XT1cImZpbGUudGh1bWJuYWlsVXJsXCIgW3NyY109XCJmaWxlLnRodW1ibmFpbFVybFwiIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiIC8+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -11,19 +11,17 @@ import * as i7 from "../fullscreen-files.directive";
|
|
|
11
11
|
import * as i8 from "../download-files.directive";
|
|
12
12
|
export class FileViewerPopoverComponent extends BaseComponent {
|
|
13
13
|
constructor() {
|
|
14
|
-
super();
|
|
14
|
+
super(...arguments);
|
|
15
15
|
this.remove = new EventEmitter();
|
|
16
|
+
this.hideFullScreen = false;
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FileViewerPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: { files: "files", file: "file", deviceSize: "deviceSize", canDownload: "canDownload", disableRemove: "disableRemove", fdType: "fdType" }, outputs: { remove: "remove" }, usesInheritance: true, ngImport: i0, template: "<!-- <div class=\"box\" #divRef (mouseover)=\"divRef.classList.add('onside')\" (mouseout)=\"divRef.classList.remove('onside')\">\n<div class=\"box-content\">\n <fd-icon [glyph]=\"'pdf-attachment'\"></fd-icon>\n</div>\n<div class=\"box-file-download\">\n <div class=\"icon\">\n <img\n id=\":1wy\"\n class=\"aSM\"\n src=\"//ssl.gstatic.com/docs/doclist/images/mediatype/icon_2_archive_x16.png\"\n title=\"Compressed Archive\"\n />\n </div>\n <div class=\"filename-wrapper\">\n <span class=\"filename\">build.rar</span>\n </div>\n </div>\n <div class=\"download-wrapper\">\n <button fd-button glyph=\"download\" fdType=\"transparent\"></button>\n <button fd-button glyph=\"download\" fdType=\"transparent\"></button>\n </div>\n</div> -->\n\n<div style=\"display: flex; align-items: center; column-gap: 1px\">\n <button\n fd-button\n [fdPopoverTrigger]=\"deviceSize === 's' ? popoverMobile : popoverLarge\"\n [label]=\"file.FileName || ''\"\n [title]=\"file.FileName || ''\"\n glyph=\"attachment\"\n [fdMenu]=\"true\"\n [fdType]=\"fdType\"\n class=\"btn-actionsheet\"\n ></button>\n <fd-popover\n #popoverMobile\n [mobile]=\"true\"\n [mobileConfig]=\"{ title: 'ShowFiles' | bbbTranslate, hasCloseButton: true }\"\n >\n <ng-template #popoverBodyContent>\n <ng-container\n *ngTemplateOutlet=\"popoverbodyTpl; context: { $implicit: popoverMobile, mobile: true }\"\n ></ng-container>\n </ng-template>\n </fd-popover>\n <fd-popover #popoverLarge>\n <fd-popover-body>\n <ng-container\n *ngTemplateOutlet=\"popoverbodyTpl; context: { $implicit: popoverLarge, mobile: false }\"\n ></ng-container>\n </fd-popover-body>\n </fd-popover>\n\n @if (!disableRemove) {\n <button fd-button glyph=\"delete\" (click)=\"remove.emit()\"></button>\n }\n</div>\n\n<ng-template #popoverbodyTpl let-popover let-mobile=\"mobile\">\n <div fd-popover-body-header>\n <div fd-bar [cozy]=\"true\" id=\"popover-bar-header-3\">\n <div fd-bar-left>\n <fd-bar-element>{{ file.FileName }}</fd-bar-element>\n </div>\n </div>\n </div>\n <bsu-file-viewer-content\n [file]=\"file\"\n [width]=\"mobile ? '100vw' : '30vw'\"\n [cardMode]=\"true\"\n [showContent]=\"true\"\n [showFooter]=\"true\"\n [deviceSize]=\"deviceSize\"\n [cardContentHeight]=\"mobile ? null : '320px'\"\n ></bsu-file-viewer-content>\n @if (canDownload) {\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-button-bar\n fdType=\"transparent\"\n glyph=\"download\"\n downloadFiles\n [files]=\"[file]\"\n (click)=\"popover.close()\"\n ></fd-button-bar>\n @if (!mobile) {\n <fd-button-bar\n fdType=\"transparent\"\n glyph=\"resize\"\n fullscreenFiles\n [files]=\"files?.length ? files : [file]\"\n (click)=\"popover.close()\"\n ></fd-button-bar>\n }\n </div>\n </div>\n </div>\n }\n</ng-template>\n", styles: [":host{display:block}.btn-actionsheet{width:100%!important;max-width:100%!important}.box{display:flex;flex-direction:column;width:175px;height:120px;position:relative;border:1px solid #ccc}.box .box-content{height:85px;text-align:center;display:flex;align-items:center;justify-content:center}.box .box-content fd-icon{font-size:1.825rem;color:#e5e5e5}.box .box-file-download{background-color:#f5f5f5;border-top:1px solid #e5e5e5;display:flex;gap:.285rem}.box .box-file-download .icon{align-items:center;float:left;display:-webkit-box;display:-webkit-flex;display:flex;height:32px;-webkit-justify-content:center;justify-content:center;width:32px}.box .box-file-download .filename-wrapper{display:flex;overflow:hidden}.box .box-file-download .filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777;font-size:12px;font-weight:700;line-height:16px;margin-top:8px;word-wrap:normal}.box .download-wrapper{display:none}.box.onside{background:#f5f5f5}.box.onside .box-content{display:none}.box.onside .box-file-download{border-top:none;height:85px}.box.onside .download-wrapper{display:flex;gap:.285rem;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "component", type: i3.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i3.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i3.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i3.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: i5.PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "directive", type: i5.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i5.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "directive", type: i5.PopoverTriggerDirective, selector: "[fdPopoverTrigger], [fd-popover-trigger]", inputs: ["fdPopoverTrigger"] }, { kind: "component", type: i6.FileViewerContentComponent, selector: "bsu-file-viewer-content", inputs: ["fillWidth", "imageOnly", "isImageGallery", "cardMode", "showFooter", "showContent", "width", "deviceSize", "cardContentHeight", "file"] }, { kind: "directive", type: i7.FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "directive", type: i8.DownloadFilesDirective, selector: "[downloadFiles]", inputs: ["files"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FileViewerPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: { files: "files", file: "file", deviceSize: "deviceSize", canDownload: "canDownload", disableRemove: "disableRemove", fdType: "fdType" }, outputs: { remove: "remove" }, usesInheritance: true, ngImport: i0, template: "<!-- <div class=\"box\" #divRef (mouseover)=\"divRef.classList.add('onside')\" (mouseout)=\"divRef.classList.remove('onside')\">\n<div class=\"box-content\">\n <fd-icon [glyph]=\"'pdf-attachment'\"></fd-icon>\n</div>\n<div class=\"box-file-download\">\n <div class=\"icon\">\n <img\n id=\":1wy\"\n class=\"aSM\"\n src=\"//ssl.gstatic.com/docs/doclist/images/mediatype/icon_2_archive_x16.png\"\n title=\"Compressed Archive\"\n />\n </div>\n <div class=\"filename-wrapper\">\n <span class=\"filename\">build.rar</span>\n </div>\n </div>\n <div class=\"download-wrapper\">\n <button fd-button glyph=\"download\" fdType=\"transparent\"></button>\n <button fd-button glyph=\"download\" fdType=\"transparent\"></button>\n </div>\n</div> -->\n\n<div style=\"display: flex; align-items: center; column-gap: 1px\">\n <button\n fd-button\n [fdPopoverTrigger]=\"deviceSize === 's' ? popoverMobile : popoverLarge\"\n [label]=\"file.FileName || ''\"\n [title]=\"file.FileName || ''\"\n glyph=\"attachment\"\n [fdMenu]=\"true\"\n [fdType]=\"fdType\"\n class=\"btn-actionsheet\"\n ></button>\n <fd-popover\n #popoverMobile\n [mobile]=\"true\"\n [mobileConfig]=\"{ title: 'ShowFiles' | bbbTranslate, hasCloseButton: true }\"\n >\n <ng-template #popoverBodyContent>\n <ng-container\n *ngTemplateOutlet=\"popoverbodyTpl; context: { $implicit: popoverMobile, mobile: true }\"\n ></ng-container>\n </ng-template>\n </fd-popover>\n <fd-popover #popoverLarge>\n <fd-popover-body>\n <ng-container\n *ngTemplateOutlet=\"popoverbodyTpl; context: { $implicit: popoverLarge, mobile: false }\"\n ></ng-container>\n </fd-popover-body>\n </fd-popover>\n\n @if (!disableRemove) {\n <button fd-button glyph=\"delete\" (click)=\"remove.emit()\"></button>\n }\n</div>\n\n<ng-template #popoverbodyTpl let-popover let-mobile=\"mobile\">\n <div fd-popover-body-header>\n <div fd-bar [cozy]=\"true\" id=\"popover-bar-header-3\">\n <div fd-bar-left>\n <fd-bar-element>{{ file.FileName }}</fd-bar-element>\n </div>\n </div>\n </div>\n <bsu-file-viewer-content\n [file]=\"file\"\n [width]=\"mobile ? '100vw' : '30vw'\"\n [cardMode]=\"true\"\n [showContent]=\"true\"\n [showFooter]=\"true\"\n [deviceSize]=\"deviceSize\"\n [cardContentHeight]=\"mobile ? null : '320px'\"\n (cantView)=\"hideFullScreen = true\"\n ></bsu-file-viewer-content>\n @if (canDownload) {\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-button-bar\n fdType=\"transparent\"\n glyph=\"download\"\n downloadFiles\n [files]=\"[file]\"\n (click)=\"popover.close()\"\n ></fd-button-bar>\n @if (!mobile && !hideFullScreen) {\n <fd-button-bar\n fdType=\"transparent\"\n glyph=\"resize\"\n fullscreenFiles\n [files]=\"files?.length ? files : [file]\"\n (click)=\"popover.close()\"\n ></fd-button-bar>\n }\n </div>\n </div>\n </div>\n }\n</ng-template>\n", styles: [":host{display:block}.btn-actionsheet{width:100%!important;max-width:100%!important}.box{display:flex;flex-direction:column;width:175px;height:120px;position:relative;border:1px solid #ccc}.box .box-content{height:85px;text-align:center;display:flex;align-items:center;justify-content:center}.box .box-content fd-icon{font-size:1.825rem;color:#e5e5e5}.box .box-file-download{background-color:#f5f5f5;border-top:1px solid #e5e5e5;display:flex;gap:.285rem}.box .box-file-download .icon{align-items:center;float:left;display:-webkit-box;display:-webkit-flex;display:flex;height:32px;-webkit-justify-content:center;justify-content:center;width:32px}.box .box-file-download .filename-wrapper{display:flex;overflow:hidden}.box .box-file-download .filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777;font-size:12px;font-weight:700;line-height:16px;margin-top:8px;word-wrap:normal}.box .download-wrapper{display:none}.box.onside{background:#f5f5f5}.box.onside .box-content{display:none}.box.onside .box-file-download{border-top:none;height:85px}.box.onside .download-wrapper{display:flex;gap:.285rem;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "component", type: i3.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i3.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i3.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i3.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: i5.PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "directive", type: i5.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i5.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "directive", type: i5.PopoverTriggerDirective, selector: "[fdPopoverTrigger], [fd-popover-trigger]", inputs: ["fdPopoverTrigger"] }, { kind: "component", type: i6.FileViewerContentComponent, selector: "bsu-file-viewer-content", inputs: ["fillWidth", "imageOnly", "isImageGallery", "cardMode", "showFooter", "showContent", "width", "deviceSize", "cardContentHeight", "file"], outputs: ["cantView"] }, { kind: "directive", type: i7.FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "directive", type: i8.DownloadFilesDirective, selector: "[downloadFiles]", inputs: ["files"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
22
20
|
}
|
|
23
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FileViewerPopoverComponent, decorators: [{
|
|
24
22
|
type: Component,
|
|
25
|
-
args: [{ selector: 'bsu-file-viewer-popover', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <div class=\"box\" #divRef (mouseover)=\"divRef.classList.add('onside')\" (mouseout)=\"divRef.classList.remove('onside')\">\n<div class=\"box-content\">\n <fd-icon [glyph]=\"'pdf-attachment'\"></fd-icon>\n</div>\n<div class=\"box-file-download\">\n <div class=\"icon\">\n <img\n id=\":1wy\"\n class=\"aSM\"\n src=\"//ssl.gstatic.com/docs/doclist/images/mediatype/icon_2_archive_x16.png\"\n title=\"Compressed Archive\"\n />\n </div>\n <div class=\"filename-wrapper\">\n <span class=\"filename\">build.rar</span>\n </div>\n </div>\n <div class=\"download-wrapper\">\n <button fd-button glyph=\"download\" fdType=\"transparent\"></button>\n <button fd-button glyph=\"download\" fdType=\"transparent\"></button>\n </div>\n</div> -->\n\n<div style=\"display: flex; align-items: center; column-gap: 1px\">\n <button\n fd-button\n [fdPopoverTrigger]=\"deviceSize === 's' ? popoverMobile : popoverLarge\"\n [label]=\"file.FileName || ''\"\n [title]=\"file.FileName || ''\"\n glyph=\"attachment\"\n [fdMenu]=\"true\"\n [fdType]=\"fdType\"\n class=\"btn-actionsheet\"\n ></button>\n <fd-popover\n #popoverMobile\n [mobile]=\"true\"\n [mobileConfig]=\"{ title: 'ShowFiles' | bbbTranslate, hasCloseButton: true }\"\n >\n <ng-template #popoverBodyContent>\n <ng-container\n *ngTemplateOutlet=\"popoverbodyTpl; context: { $implicit: popoverMobile, mobile: true }\"\n ></ng-container>\n </ng-template>\n </fd-popover>\n <fd-popover #popoverLarge>\n <fd-popover-body>\n <ng-container\n *ngTemplateOutlet=\"popoverbodyTpl; context: { $implicit: popoverLarge, mobile: false }\"\n ></ng-container>\n </fd-popover-body>\n </fd-popover>\n\n @if (!disableRemove) {\n <button fd-button glyph=\"delete\" (click)=\"remove.emit()\"></button>\n }\n</div>\n\n<ng-template #popoverbodyTpl let-popover let-mobile=\"mobile\">\n <div fd-popover-body-header>\n <div fd-bar [cozy]=\"true\" id=\"popover-bar-header-3\">\n <div fd-bar-left>\n <fd-bar-element>{{ file.FileName }}</fd-bar-element>\n </div>\n </div>\n </div>\n <bsu-file-viewer-content\n [file]=\"file\"\n [width]=\"mobile ? '100vw' : '30vw'\"\n [cardMode]=\"true\"\n [showContent]=\"true\"\n [showFooter]=\"true\"\n [deviceSize]=\"deviceSize\"\n [cardContentHeight]=\"mobile ? null : '320px'\"\n ></bsu-file-viewer-content>\n @if (canDownload) {\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-button-bar\n fdType=\"transparent\"\n glyph=\"download\"\n downloadFiles\n [files]=\"[file]\"\n (click)=\"popover.close()\"\n ></fd-button-bar>\n @if (!mobile) {\n <fd-button-bar\n fdType=\"transparent\"\n glyph=\"resize\"\n fullscreenFiles\n [files]=\"files?.length ? files : [file]\"\n (click)=\"popover.close()\"\n ></fd-button-bar>\n }\n </div>\n </div>\n </div>\n }\n</ng-template>\n", styles: [":host{display:block}.btn-actionsheet{width:100%!important;max-width:100%!important}.box{display:flex;flex-direction:column;width:175px;height:120px;position:relative;border:1px solid #ccc}.box .box-content{height:85px;text-align:center;display:flex;align-items:center;justify-content:center}.box .box-content fd-icon{font-size:1.825rem;color:#e5e5e5}.box .box-file-download{background-color:#f5f5f5;border-top:1px solid #e5e5e5;display:flex;gap:.285rem}.box .box-file-download .icon{align-items:center;float:left;display:-webkit-box;display:-webkit-flex;display:flex;height:32px;-webkit-justify-content:center;justify-content:center;width:32px}.box .box-file-download .filename-wrapper{display:flex;overflow:hidden}.box .box-file-download .filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777;font-size:12px;font-weight:700;line-height:16px;margin-top:8px;word-wrap:normal}.box .download-wrapper{display:none}.box.onside{background:#f5f5f5}.box.onside .box-content{display:none}.box.onside .box-file-download{border-top:none;height:85px}.box.onside .download-wrapper{display:flex;gap:.285rem;justify-content:center}\n"] }]
|
|
26
|
-
}],
|
|
23
|
+
args: [{ selector: 'bsu-file-viewer-popover', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <div class=\"box\" #divRef (mouseover)=\"divRef.classList.add('onside')\" (mouseout)=\"divRef.classList.remove('onside')\">\n<div class=\"box-content\">\n <fd-icon [glyph]=\"'pdf-attachment'\"></fd-icon>\n</div>\n<div class=\"box-file-download\">\n <div class=\"icon\">\n <img\n id=\":1wy\"\n class=\"aSM\"\n src=\"//ssl.gstatic.com/docs/doclist/images/mediatype/icon_2_archive_x16.png\"\n title=\"Compressed Archive\"\n />\n </div>\n <div class=\"filename-wrapper\">\n <span class=\"filename\">build.rar</span>\n </div>\n </div>\n <div class=\"download-wrapper\">\n <button fd-button glyph=\"download\" fdType=\"transparent\"></button>\n <button fd-button glyph=\"download\" fdType=\"transparent\"></button>\n </div>\n</div> -->\n\n<div style=\"display: flex; align-items: center; column-gap: 1px\">\n <button\n fd-button\n [fdPopoverTrigger]=\"deviceSize === 's' ? popoverMobile : popoverLarge\"\n [label]=\"file.FileName || ''\"\n [title]=\"file.FileName || ''\"\n glyph=\"attachment\"\n [fdMenu]=\"true\"\n [fdType]=\"fdType\"\n class=\"btn-actionsheet\"\n ></button>\n <fd-popover\n #popoverMobile\n [mobile]=\"true\"\n [mobileConfig]=\"{ title: 'ShowFiles' | bbbTranslate, hasCloseButton: true }\"\n >\n <ng-template #popoverBodyContent>\n <ng-container\n *ngTemplateOutlet=\"popoverbodyTpl; context: { $implicit: popoverMobile, mobile: true }\"\n ></ng-container>\n </ng-template>\n </fd-popover>\n <fd-popover #popoverLarge>\n <fd-popover-body>\n <ng-container\n *ngTemplateOutlet=\"popoverbodyTpl; context: { $implicit: popoverLarge, mobile: false }\"\n ></ng-container>\n </fd-popover-body>\n </fd-popover>\n\n @if (!disableRemove) {\n <button fd-button glyph=\"delete\" (click)=\"remove.emit()\"></button>\n }\n</div>\n\n<ng-template #popoverbodyTpl let-popover let-mobile=\"mobile\">\n <div fd-popover-body-header>\n <div fd-bar [cozy]=\"true\" id=\"popover-bar-header-3\">\n <div fd-bar-left>\n <fd-bar-element>{{ file.FileName }}</fd-bar-element>\n </div>\n </div>\n </div>\n <bsu-file-viewer-content\n [file]=\"file\"\n [width]=\"mobile ? '100vw' : '30vw'\"\n [cardMode]=\"true\"\n [showContent]=\"true\"\n [showFooter]=\"true\"\n [deviceSize]=\"deviceSize\"\n [cardContentHeight]=\"mobile ? null : '320px'\"\n (cantView)=\"hideFullScreen = true\"\n ></bsu-file-viewer-content>\n @if (canDownload) {\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-button-bar\n fdType=\"transparent\"\n glyph=\"download\"\n downloadFiles\n [files]=\"[file]\"\n (click)=\"popover.close()\"\n ></fd-button-bar>\n @if (!mobile && !hideFullScreen) {\n <fd-button-bar\n fdType=\"transparent\"\n glyph=\"resize\"\n fullscreenFiles\n [files]=\"files?.length ? files : [file]\"\n (click)=\"popover.close()\"\n ></fd-button-bar>\n }\n </div>\n </div>\n </div>\n }\n</ng-template>\n", styles: [":host{display:block}.btn-actionsheet{width:100%!important;max-width:100%!important}.box{display:flex;flex-direction:column;width:175px;height:120px;position:relative;border:1px solid #ccc}.box .box-content{height:85px;text-align:center;display:flex;align-items:center;justify-content:center}.box .box-content fd-icon{font-size:1.825rem;color:#e5e5e5}.box .box-file-download{background-color:#f5f5f5;border-top:1px solid #e5e5e5;display:flex;gap:.285rem}.box .box-file-download .icon{align-items:center;float:left;display:-webkit-box;display:-webkit-flex;display:flex;height:32px;-webkit-justify-content:center;justify-content:center;width:32px}.box .box-file-download .filename-wrapper{display:flex;overflow:hidden}.box .box-file-download .filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777;font-size:12px;font-weight:700;line-height:16px;margin-top:8px;word-wrap:normal}.box .download-wrapper{display:none}.box.onside{background:#f5f5f5}.box.onside .box-content{display:none}.box.onside .box-file-download{border-top:none;height:85px}.box.onside .download-wrapper{display:flex;gap:.285rem;justify-content:center}\n"] }]
|
|
24
|
+
}], propDecorators: { files: [{
|
|
27
25
|
type: Input
|
|
28
26
|
}], file: [{
|
|
29
27
|
type: Input
|
|
@@ -38,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
38
36
|
}], remove: [{
|
|
39
37
|
type: Output
|
|
40
38
|
}] } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS12aWV3ZXItcG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9maWxlLXZpZXdlci1wb3BvdmVyL2ZpbGUtdmlld2VyLXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZmlsZS12aWV3ZXItcG9wb3Zlci9maWxlLXZpZXdlci1wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUF5QixhQUFhLEVBQXNCLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7QUFRaEcsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGFBQWE7SUFON0Q7O1FBYWMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDNUMsbUJBQWMsR0FBRyxLQUFLLENBQUM7S0FDMUI7OEdBVFksMEJBQTBCO2tHQUExQiwwQkFBMEIsdVFDVnZDLDQ4R0FxR0E7OzJGRDNGYSwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0kseUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJ1dHRvblR5cGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuaW1wb3J0IHsgQWJicmV2YXRpb25EZXZpY2VTaXplLCBCYXNlQ29tcG9uZW50LCBGaWxlQXR0YWNobWVudEluZm8gfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWZpbGUtdmlld2VyLXBvcG92ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWxlLXZpZXdlci1wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9maWxlLXZpZXdlci1wb3BvdmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVZpZXdlclBvcG92ZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBmaWxlczogRmlsZUF0dGFjaG1lbnRJbmZvW107XG4gICAgQElucHV0KCkgZmlsZTogRmlsZUF0dGFjaG1lbnRJbmZvO1xuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcbiAgICBASW5wdXQoKSBjYW5Eb3dubG9hZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkaXNhYmxlUmVtb3ZlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGZkVHlwZTogQnV0dG9uVHlwZTtcbiAgICBAT3V0cHV0KCkgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIGhpZGVGdWxsU2NyZWVuID0gZmFsc2U7XG59XG4iLCI8IS0tIDxkaXYgY2xhc3M9XCJib3hcIiAjZGl2UmVmIChtb3VzZW92ZXIpPVwiZGl2UmVmLmNsYXNzTGlzdC5hZGQoJ29uc2lkZScpXCIgKG1vdXNlb3V0KT1cImRpdlJlZi5jbGFzc0xpc3QucmVtb3ZlKCdvbnNpZGUnKVwiPlxuPGRpdiBjbGFzcz1cImJveC1jb250ZW50XCI+XG4gIDxmZC1pY29uIFtnbHlwaF09XCIncGRmLWF0dGFjaG1lbnQnXCI+PC9mZC1pY29uPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYm94LWZpbGUtZG93bmxvYWRcIj5cbiAgPGRpdiBjbGFzcz1cImljb25cIj5cbiAgICA8aW1nXG4gICAgICBpZD1cIjoxd3lcIlxuICAgICAgY2xhc3M9XCJhU01cIlxuICAgICAgc3JjPVwiLy9zc2wuZ3N0YXRpYy5jb20vZG9jcy9kb2NsaXN0L2ltYWdlcy9tZWRpYXR5cGUvaWNvbl8yX2FyY2hpdmVfeDE2LnBuZ1wiXG4gICAgICB0aXRsZT1cIkNvbXByZXNzZWQgQXJjaGl2ZVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmaWxlbmFtZS13cmFwcGVyXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImZpbGVuYW1lXCI+YnVpbGQucmFyPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImRvd25sb2FkLXdyYXBwZXJcIj5cbiAgICA8YnV0dG9uIGZkLWJ1dHRvbiBnbHlwaD1cImRvd25sb2FkXCIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIj48L2J1dHRvbj5cbiAgICA8YnV0dG9uIGZkLWJ1dHRvbiBnbHlwaD1cImRvd25sb2FkXCIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIj48L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj4gLS0+XG5cbjxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBjb2x1bW4tZ2FwOiAxcHhcIj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGZkLWJ1dHRvblxuICAgICAgICBbZmRQb3BvdmVyVHJpZ2dlcl09XCJkZXZpY2VTaXplID09PSAncycgPyBwb3BvdmVyTW9iaWxlIDogcG9wb3ZlckxhcmdlXCJcbiAgICAgICAgW2xhYmVsXT1cImZpbGUuRmlsZU5hbWUgfHwgJydcIlxuICAgICAgICBbdGl0bGVdPVwiZmlsZS5GaWxlTmFtZSB8fCAnJ1wiXG4gICAgICAgIGdseXBoPVwiYXR0YWNobWVudFwiXG4gICAgICAgIFtmZE1lbnVdPVwidHJ1ZVwiXG4gICAgICAgIFtmZFR5cGVdPVwiZmRUeXBlXCJcbiAgICAgICAgY2xhc3M9XCJidG4tYWN0aW9uc2hlZXRcIlxuICAgID48L2J1dHRvbj5cbiAgICA8ZmQtcG9wb3ZlclxuICAgICAgICAjcG9wb3Zlck1vYmlsZVxuICAgICAgICBbbW9iaWxlXT1cInRydWVcIlxuICAgICAgICBbbW9iaWxlQ29uZmlnXT1cInsgdGl0bGU6ICdTaG93RmlsZXMnIHwgYmJiVHJhbnNsYXRlLCBoYXNDbG9zZUJ1dHRvbjogdHJ1ZSB9XCJcbiAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjcG9wb3ZlckJvZHlDb250ZW50PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicG9wb3ZlcmJvZHlUcGw7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBwb3BvdmVyTW9iaWxlLCBtb2JpbGU6IHRydWUgfVwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9mZC1wb3BvdmVyPlxuICAgIDxmZC1wb3BvdmVyICNwb3BvdmVyTGFyZ2U+XG4gICAgICAgIDxmZC1wb3BvdmVyLWJvZHk+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwb3BvdmVyYm9keVRwbDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHBvcG92ZXJMYXJnZSwgbW9iaWxlOiBmYWxzZSB9XCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XG4gICAgPC9mZC1wb3BvdmVyPlxuXG4gICAgQGlmICghZGlzYWJsZVJlbW92ZSkge1xuICAgIDxidXR0b24gZmQtYnV0dG9uIGdseXBoPVwiZGVsZXRlXCIgKGNsaWNrKT1cInJlbW92ZS5lbWl0KClcIj48L2J1dHRvbj5cbiAgICB9XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNwb3BvdmVyYm9keVRwbCBsZXQtcG9wb3ZlciBsZXQtbW9iaWxlPVwibW9iaWxlXCI+XG4gICAgPGRpdiBmZC1wb3BvdmVyLWJvZHktaGVhZGVyPlxuICAgICAgICA8ZGl2IGZkLWJhciBbY296eV09XCJ0cnVlXCIgaWQ9XCJwb3BvdmVyLWJhci1oZWFkZXItM1wiPlxuICAgICAgICAgICAgPGRpdiBmZC1iYXItbGVmdD5cbiAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+e3sgZmlsZS5GaWxlTmFtZSB9fTwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGJzdS1maWxlLXZpZXdlci1jb250ZW50XG4gICAgICAgIFtmaWxlXT1cImZpbGVcIlxuICAgICAgICBbd2lkdGhdPVwibW9iaWxlID8gJzEwMHZ3JyA6ICczMHZ3J1wiXG4gICAgICAgIFtjYXJkTW9kZV09XCJ0cnVlXCJcbiAgICAgICAgW3Nob3dDb250ZW50XT1cInRydWVcIlxuICAgICAgICBbc2hvd0Zvb3Rlcl09XCJ0cnVlXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtjYXJkQ29udGVudEhlaWdodF09XCJtb2JpbGUgPyBudWxsIDogJzMyMHB4J1wiXG4gICAgICAgIChjYW50Vmlldyk9XCJoaWRlRnVsbFNjcmVlbiA9IHRydWVcIlxuICAgID48L2JzdS1maWxlLXZpZXdlci1jb250ZW50PlxuICAgIEBpZiAoY2FuRG93bmxvYWQpIHtcbiAgICA8ZGl2IGZkLXBvcG92ZXItYm9keS1mb290ZXI+XG4gICAgICAgIDxkaXYgZmQtYmFyIGJhckRlc2lnbj1cImZvb3RlclwiPlxuICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XG4gICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICBnbHlwaD1cImRvd25sb2FkXCJcbiAgICAgICAgICAgICAgICAgICAgZG93bmxvYWRGaWxlc1xuICAgICAgICAgICAgICAgICAgICBbZmlsZXNdPVwiW2ZpbGVdXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInBvcG92ZXIuY2xvc2UoKVwiXG4gICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICBAaWYgKCFtb2JpbGUgJiYgIWhpZGVGdWxsU2NyZWVuKSB7XG4gICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICBnbHlwaD1cInJlc2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW5GaWxlc1xuICAgICAgICAgICAgICAgICAgICBbZmlsZXNdPVwiZmlsZXM/Lmxlbmd0aCA/IGZpbGVzIDogW2ZpbGVdXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInBvcG92ZXIuY2xvc2UoKVwiXG4gICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,12 +1,19 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { ComboboxComponent } from '@fundamental-ngx/core';
|
|
2
3
|
import { FieldBaseComponent } from 'barsa-novin-ray-core';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/
|
|
5
|
+
import * as i1 from "@angular/forms";
|
|
5
6
|
import * as i2 from "barsa-novin-ray-core";
|
|
6
7
|
import * as i3 from "@fundamental-ngx/core/button";
|
|
7
|
-
import * as i4 from "@fundamental-ngx/core/
|
|
8
|
-
import * as i5 from "@fundamental-ngx/core/
|
|
8
|
+
import * as i4 from "@fundamental-ngx/core/combobox";
|
|
9
|
+
import * as i5 from "@fundamental-ngx/core/list";
|
|
10
|
+
import * as i6 from "@fundamental-ngx/core/popover";
|
|
11
|
+
import * as i7 from "@angular/common";
|
|
9
12
|
export class UiSimpleComboComponent extends FieldBaseComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
this.displayFn = (obj) => (obj ? (obj.IsEmpty ? '' : obj.txt) : '');
|
|
16
|
+
}
|
|
10
17
|
get MinSize() {
|
|
11
18
|
return { width: 0, height: 27 };
|
|
12
19
|
}
|
|
@@ -15,23 +22,36 @@ export class UiSimpleComboComponent extends FieldBaseComponent {
|
|
|
15
22
|
this.mobileConfig.approveButtonText = false;
|
|
16
23
|
this.mobileConfig.cancelButtonText = false;
|
|
17
24
|
this.popupMode = this.parameters?.PopupMode;
|
|
25
|
+
if (this.value) {
|
|
26
|
+
this.tvalue = this.context.store.data[this.context.store.root].find((c) => c.id === this.value);
|
|
27
|
+
}
|
|
18
28
|
}
|
|
19
29
|
onValueChange(value) {
|
|
20
30
|
const selectedValue = value;
|
|
21
31
|
this._handleValueChange(selectedValue);
|
|
22
32
|
}
|
|
33
|
+
onItemClick(e) {
|
|
34
|
+
this._handleValueChange(e.item.id);
|
|
35
|
+
}
|
|
36
|
+
onChange(e) {
|
|
37
|
+
this.tvalue = this.context.store.data[this.context.store.root].find((c) => c.txt === e.target.value);
|
|
38
|
+
this._handleValueChange(this.tvalue.id);
|
|
39
|
+
}
|
|
23
40
|
_handleValueChange(selectedValue) {
|
|
24
41
|
this.value = selectedValue;
|
|
25
42
|
this.valueChange.emit(this.value);
|
|
26
43
|
this.fireContextEvent('select', this.value);
|
|
27
44
|
}
|
|
28
45
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiSimpleComboComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiSimpleComboComponent, selector: "bsu-ui-simple-combo", inputs: { MinSize: "MinSize" }, usesInheritance: true, ngImport: i0, template: "@if (Setting.IconDisplayType !== 'Image' && !popupMode) {\n<fd-select\n style=\"width: 100%\"\n [placeholder]=\"'Select' | bbbTranslate\"\n [value]=\"value\"\n [mobile]=\"(deviceSize$ | async) === 's'\"\n [mobileConfig]=\"mobileConfig\"\n (valueChange)=\"onValueChange($event)\"\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\n [style.text-align]=\"Setting.IsLtr === true ? 'left' : null\"\n [readonly]=\"(readonly$ | async) === true ? true : false\"\n [disabled]=\"(disable$ | async) === true ? true : false\"\n>\n @for (item of context.store.data[context.store.root]; track item) {\n <fd-option\n [value]=\"item.id\"\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\n [class.control-disabled]=\"item.IsEmpty\"\n [class.list-empty-item]=\"item.IsEmpty\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, popupMode: true }\"></ng-container>\n </fd-option>\n }\n</fd-select>\n} @if (Setting.IconDisplayType === 'Image' || popupMode) {\n<fd-popover #popover [focusTrapped]=\"true\" [focusAutoCapture]=\"true\">\n <fd-popover-control>\n <button fd-button fdType=\"transparent\" [fdMenu]=\"true\">\n @if (value && value !== '0') {\n <img [src]=\"value | comboRowImg: context.store.data.Rows\" />\n }\n </button>\n </fd-popover-control>\n <fd-popover-body class=\"combo-popupmode\">\n @for (item of context.store.data[context.store.root]; track item) {\n <button fd-button fdType=\"transparent\" [title]=\"item.txt\" (click)=\"popover.close(); onValueChange(item.id)\">\n @if (item.url) {\n <img [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\n }\n </button>\n }\n </fd-popover-body>\n</fd-popover>\n}\n<ng-template #itemTemplate let-item let-popupMode=\"popupMode\">\n @if (Setting.IconDisplayType !== 'NoImage') { @if (item.url) {\n <img [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\n } } @if (Setting.IconDisplayType !== 'Image') {\n {{ item.IsEmpty ? ('Select' | bbbTranslate) : (item.txt | bbbTranslate) }}\n }\n</ng-template>\n", styles: [":host{display:flex;align-self:center;align-items:center;width:100%;height:100%}:host ::ng-deep fd-select fd-popover{width:100%}img[rtl=true]{margin-left:5px}img[rtl=false]{margin-right:5px}fd-popover{margin:.25rem 0}\n"], dependencies: [{ kind: "directive", type: i1.
|
|
46
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiSimpleComboComponent, selector: "bsu-ui-simple-combo", inputs: { MinSize: "MinSize" }, viewQueries: [{ propertyName: "fdComboRef", first: true, predicate: ComboboxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (Setting.IconDisplayType !== 'Image' && !popupMode) {\n<!-- <fd-select\n style=\"width: 100%\"\n [placeholder]=\"'Select' | bbbTranslate\"\n [value]=\"value\"\n [mobile]=\"(deviceSize$ | async) === 's'\"\n [mobileConfig]=\"mobileConfig\"\n (valueChange)=\"onValueChange($event)\"\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\n [style.text-align]=\"Setting.IsLtr === true ? 'left' : null\"\n [readonly]=\"(readonly$ | async) === true ? true : false\"\n [disabled]=\"(disable$ | async) === true ? true : false\"\n>\n @for (item of context.store.data[context.store.root]; track item) {\n <fd-option\n [value]=\"item.id\"\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\n [class.control-disabled]=\"item.IsEmpty\"\n [class.list-empty-item]=\"item.IsEmpty\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, popupMode: true }\"></ng-container>\n </fd-option>\n }\n</fd-select> -->\n<fd-combobox\n [inputId]=\"id\"\n [mobile]=\"(deviceSize$ | async) === 's'\"\n [placeholder]=\"'Select' | bbbTranslate\"\n [displayFn]=\"displayFn\"\n [(ngModel)]=\"tvalue\"\n [readOnly]=\"(readonly$ | async) === true ? true : false\"\n [disabled]=\"(disable$ | async) === true ? true : false\"\n [fillOnSelect]=\"true\"\n [dropdownValues]=\"context.store.data[context.store.root]\"\n (itemClicked)=\"onItemClick($event)\"\n (change)=\"onChange($event)\"\n>\n <ng-container *fdComboboxItem=\"let item; use: rowDataOption; inputText as search\">\n <!-- Note that in this case you are responsible for highlighting. -->\n @if (Setting.IconDisplayType !== 'NoImage') { @if (item.url) {\n <img fd-list-icon [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\n } } @if (Setting.IconDisplayType !== 'Image') {\n <span fd-list-title [innerHTML]=\"item.IsEmpty ? ('Select' | bbbTranslate) : (item.txt | bbbTranslate)\"></span>\n }\n </ng-container>\n</fd-combobox>\n} @if (Setting.IconDisplayType === 'Image' || popupMode) {\n<fd-popover #popover [focusTrapped]=\"true\" [focusAutoCapture]=\"true\">\n <fd-popover-control>\n <button fd-button fdType=\"transparent\" [fdMenu]=\"true\">\n @if (value && value !== '0') {\n <img [src]=\"value | comboRowImg: context.store.data.Rows\" />\n }\n </button>\n </fd-popover-control>\n <fd-popover-body class=\"combo-popupmode\">\n @for (item of context.store.data[context.store.root]; track item) {\n <button fd-button fdType=\"transparent\" [title]=\"item.txt\" (click)=\"popover.close(); onValueChange(item.id)\">\n @if (item.url) {\n <img [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\n }\n </button>\n }\n </fd-popover-body>\n</fd-popover>\n}\n<ng-template #itemTemplate let-item let-popupMode=\"popupMode\">\n @if (Setting.IconDisplayType !== 'NoImage') { @if (item.url) {\n <img [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\n } } @if (Setting.IconDisplayType !== 'Image') {\n {{ item.IsEmpty ? ('Select' | bbbTranslate) : (item.txt | bbbTranslate) }}\n }\n</ng-template>\n", styles: [":host{display:flex;align-self:center;align-items:center;width:100%;height:100%}:host ::ng-deep fd-select fd-popover{width:100%}:host fd-combobox{width:100%}:host fd-combobox ::ng-deep fd-popover{width:100%}:host ::ng-deep .fd-popover-custom{width:100%}img[rtl=true]{margin-left:5px}img[rtl=false]{margin-right:5px}fd-popover{margin:.25rem 0}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.AttrRtlDirective, selector: "[attrRtl]", inputs: ["attrRtl"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.ComboboxComponent, selector: "fd-combobox", inputs: ["comboboxId", "inputId", "ariaLabel", "ariaLabelledBy", "required", "dropdownValues", "filterFn", "disabled", "placeholder", "isSearch", "glyph", "glyphFont", "showClearButton", "triggers", "closeOnOutsideClick", "openOnKeyboardEvent", "state", "itemTemplate", "groupFn", "maxHeight", "searchFn", "highlighting", "closeOnSelect", "fillOnSelect", "autoComplete", "fillControlMode", "communicateByObject", "displayFn", "buttonFocusable", "clearButtonFocusable", "readOnly", "mobile", "mobileConfig", "showDropdownButton", "includes", "title", "byline", "tabOutStrategy"], outputs: ["itemClicked", "openChange", "inputTextChange"] }, { kind: "directive", type: i4.ComboboxItemDirective, selector: "[fdComboboxItem]", inputs: ["fdComboboxItemUse"] }, { kind: "directive", type: i5.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i5.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role"] }, { kind: "component", type: i6.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i6.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i6.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.ComboRowImagePipe, name: "comboRowImg" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30
47
|
}
|
|
31
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiSimpleComboComponent, decorators: [{
|
|
32
49
|
type: Component,
|
|
33
|
-
args: [{ selector: 'bsu-ui-simple-combo', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (Setting.IconDisplayType !== 'Image' && !popupMode) {\n<fd-select\n style=\"width: 100%\"\n [placeholder]=\"'Select' | bbbTranslate\"\n [value]=\"value\"\n [mobile]=\"(deviceSize$ | async) === 's'\"\n [mobileConfig]=\"mobileConfig\"\n (valueChange)=\"onValueChange($event)\"\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\n [style.text-align]=\"Setting.IsLtr === true ? 'left' : null\"\n [readonly]=\"(readonly$ | async) === true ? true : false\"\n [disabled]=\"(disable$ | async) === true ? true : false\"\n>\n @for (item of context.store.data[context.store.root]; track item) {\n <fd-option\n [value]=\"item.id\"\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\n [class.control-disabled]=\"item.IsEmpty\"\n [class.list-empty-item]=\"item.IsEmpty\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, popupMode: true }\"></ng-container>\n </fd-option>\n }\n</fd-select>\n} @if (Setting.IconDisplayType === 'Image' || popupMode) {\n<fd-popover #popover [focusTrapped]=\"true\" [focusAutoCapture]=\"true\">\n <fd-popover-control>\n <button fd-button fdType=\"transparent\" [fdMenu]=\"true\">\n @if (value && value !== '0') {\n <img [src]=\"value | comboRowImg: context.store.data.Rows\" />\n }\n </button>\n </fd-popover-control>\n <fd-popover-body class=\"combo-popupmode\">\n @for (item of context.store.data[context.store.root]; track item) {\n <button fd-button fdType=\"transparent\" [title]=\"item.txt\" (click)=\"popover.close(); onValueChange(item.id)\">\n @if (item.url) {\n <img [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\n }\n </button>\n }\n </fd-popover-body>\n</fd-popover>\n}\n<ng-template #itemTemplate let-item let-popupMode=\"popupMode\">\n @if (Setting.IconDisplayType !== 'NoImage') { @if (item.url) {\n <img [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\n } } @if (Setting.IconDisplayType !== 'Image') {\n {{ item.IsEmpty ? ('Select' | bbbTranslate) : (item.txt | bbbTranslate) }}\n }\n</ng-template>\n", styles: [":host{display:flex;align-self:center;align-items:center;width:100%;height:100%}:host ::ng-deep fd-select fd-popover{width:100%}img[rtl=true]{margin-left:5px}img[rtl=false]{margin-right:5px}fd-popover{margin:.25rem 0}\n"] }]
|
|
34
|
-
}], propDecorators: {
|
|
50
|
+
args: [{ selector: 'bsu-ui-simple-combo', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (Setting.IconDisplayType !== 'Image' && !popupMode) {\n<!-- <fd-select\n style=\"width: 100%\"\n [placeholder]=\"'Select' | bbbTranslate\"\n [value]=\"value\"\n [mobile]=\"(deviceSize$ | async) === 's'\"\n [mobileConfig]=\"mobileConfig\"\n (valueChange)=\"onValueChange($event)\"\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\n [style.text-align]=\"Setting.IsLtr === true ? 'left' : null\"\n [readonly]=\"(readonly$ | async) === true ? true : false\"\n [disabled]=\"(disable$ | async) === true ? true : false\"\n>\n @for (item of context.store.data[context.store.root]; track item) {\n <fd-option\n [value]=\"item.id\"\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\n [class.control-disabled]=\"item.IsEmpty\"\n [class.list-empty-item]=\"item.IsEmpty\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, popupMode: true }\"></ng-container>\n </fd-option>\n }\n</fd-select> -->\n<fd-combobox\n [inputId]=\"id\"\n [mobile]=\"(deviceSize$ | async) === 's'\"\n [placeholder]=\"'Select' | bbbTranslate\"\n [displayFn]=\"displayFn\"\n [(ngModel)]=\"tvalue\"\n [readOnly]=\"(readonly$ | async) === true ? true : false\"\n [disabled]=\"(disable$ | async) === true ? true : false\"\n [fillOnSelect]=\"true\"\n [dropdownValues]=\"context.store.data[context.store.root]\"\n (itemClicked)=\"onItemClick($event)\"\n (change)=\"onChange($event)\"\n>\n <ng-container *fdComboboxItem=\"let item; use: rowDataOption; inputText as search\">\n <!-- Note that in this case you are responsible for highlighting. -->\n @if (Setting.IconDisplayType !== 'NoImage') { @if (item.url) {\n <img fd-list-icon [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\n } } @if (Setting.IconDisplayType !== 'Image') {\n <span fd-list-title [innerHTML]=\"item.IsEmpty ? ('Select' | bbbTranslate) : (item.txt | bbbTranslate)\"></span>\n }\n </ng-container>\n</fd-combobox>\n} @if (Setting.IconDisplayType === 'Image' || popupMode) {\n<fd-popover #popover [focusTrapped]=\"true\" [focusAutoCapture]=\"true\">\n <fd-popover-control>\n <button fd-button fdType=\"transparent\" [fdMenu]=\"true\">\n @if (value && value !== '0') {\n <img [src]=\"value | comboRowImg: context.store.data.Rows\" />\n }\n </button>\n </fd-popover-control>\n <fd-popover-body class=\"combo-popupmode\">\n @for (item of context.store.data[context.store.root]; track item) {\n <button fd-button fdType=\"transparent\" [title]=\"item.txt\" (click)=\"popover.close(); onValueChange(item.id)\">\n @if (item.url) {\n <img [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\n }\n </button>\n }\n </fd-popover-body>\n</fd-popover>\n}\n<ng-template #itemTemplate let-item let-popupMode=\"popupMode\">\n @if (Setting.IconDisplayType !== 'NoImage') { @if (item.url) {\n <img [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\n } } @if (Setting.IconDisplayType !== 'Image') {\n {{ item.IsEmpty ? ('Select' | bbbTranslate) : (item.txt | bbbTranslate) }}\n }\n</ng-template>\n", styles: [":host{display:flex;align-self:center;align-items:center;width:100%;height:100%}:host ::ng-deep fd-select fd-popover{width:100%}:host fd-combobox{width:100%}:host fd-combobox ::ng-deep fd-popover{width:100%}:host ::ng-deep .fd-popover-custom{width:100%}img[rtl=true]{margin-left:5px}img[rtl=false]{margin-right:5px}fd-popover{margin:.25rem 0}\n"] }]
|
|
51
|
+
}], propDecorators: { fdComboRef: [{
|
|
52
|
+
type: ViewChild,
|
|
53
|
+
args: [ComboboxComponent]
|
|
54
|
+
}], MinSize: [{
|
|
35
55
|
type: Input
|
|
36
56
|
}] } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktc2ltcGxlLWNvbWJvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLXNpbXBsZS1jb21iby91aS1zaW1wbGUtY29tYm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktc2ltcGxlLWNvbWJvL3VpLXNpbXBsZS1jb21iby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLGlCQUFpQixFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRXhFLE9BQU8sRUFBRSxrQkFBa0IsRUFBaUIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0FBT3pFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxrQkFBa0I7SUFOOUQ7O1FBdUNJLGNBQVMsR0FBRyxDQUFDLEdBQWtCLEVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQU96RjtJQWhDRyxJQUFhLE9BQU87UUFDaEIsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzVDLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7UUFDNUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BHLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLEtBQUs7UUFDZixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxXQUFXLENBQUMsQ0FBZTtRQUN2QixJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsUUFBUSxDQUFDLENBQUM7UUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBSVMsa0JBQWtCLENBQUMsYUFBa0I7UUFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7OEdBdkNRLHNCQUFzQjtrR0FBdEIsc0JBQXNCLHVJQUNwQixpQkFBaUIsdUVDWGhDLGt4R0F5RUE7OzJGRC9EYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0kscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07OEJBR2pCLFVBQVU7c0JBQXZDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQU9mLE9BQU87c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbWJvYm94Q29tcG9uZW50LCBDb21ib2JveEl0ZW0gfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuXG5pbXBvcnQgeyBGaWVsZEJhc2VDb21wb25lbnQsIFJvd0RhdGFPcHRpb24gfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1zaW1wbGUtY29tYm8nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1zaW1wbGUtY29tYm8uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VpLXNpbXBsZS1jb21iby5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVpU2ltcGxlQ29tYm9Db21wb25lbnQgZXh0ZW5kcyBGaWVsZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoQ29tYm9ib3hDb21wb25lbnQpIGZkQ29tYm9SZWY6IENvbWJvYm94Q29tcG9uZW50O1xuXG4gICAgY2FwdGlvbjogc3RyaW5nO1xuICAgIHBvcHVwTW9kZTogYm9vbGVhbjtcbiAgICB2YWx1ZVRleHQ6IGFueTtcbiAgICByb3dEYXRhT3B0aW9uOiBSb3dEYXRhT3B0aW9uO1xuICAgIHR2YWx1ZTogUm93RGF0YU9wdGlvbjtcbiAgICBASW5wdXQoKSBnZXQgTWluU2l6ZSgpOiB7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0ge1xuICAgICAgICByZXR1cm4geyB3aWR0aDogMCwgaGVpZ2h0OiAyNyB9O1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLm1vYmlsZUNvbmZpZy5hcHByb3ZlQnV0dG9uVGV4dCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1vYmlsZUNvbmZpZy5jYW5jZWxCdXR0b25UZXh0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMucG9wdXBNb2RlID0gdGhpcy5wYXJhbWV0ZXJzPy5Qb3B1cE1vZGU7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnR2YWx1ZSA9IHRoaXMuY29udGV4dC5zdG9yZS5kYXRhW3RoaXMuY29udGV4dC5zdG9yZS5yb290XS5maW5kKChjKSA9PiBjLmlkID09PSB0aGlzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5faGFuZGxlVmFsdWVDaGFuZ2Uoc2VsZWN0ZWRWYWx1ZSk7XG4gICAgfVxuICAgIG9uSXRlbUNsaWNrKGU6IENvbWJvYm94SXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9oYW5kbGVWYWx1ZUNoYW5nZShlLml0ZW0uaWQpO1xuICAgIH1cbiAgICBvbkNoYW5nZShlKTogdm9pZCB7XG4gICAgICAgIHRoaXMudHZhbHVlID0gdGhpcy5jb250ZXh0LnN0b3JlLmRhdGFbdGhpcy5jb250ZXh0LnN0b3JlLnJvb3RdLmZpbmQoKGMpID0+IGMudHh0ID09PSBlLnRhcmdldC52YWx1ZSk7XG4gICAgICAgIHRoaXMuX2hhbmRsZVZhbHVlQ2hhbmdlKHRoaXMudHZhbHVlLmlkKTtcbiAgICB9XG5cbiAgICBkaXNwbGF5Rm4gPSAob2JqOiBSb3dEYXRhT3B0aW9uKTogc3RyaW5nID0+IChvYmogPyAob2JqLklzRW1wdHkgPyAnJyA6IG9iai50eHQpIDogJycpO1xuXG4gICAgcHJvdGVjdGVkIF9oYW5kbGVWYWx1ZUNoYW5nZShzZWxlY3RlZFZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHNlbGVjdGVkVmFsdWU7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5maXJlQ29udGV4dEV2ZW50KCdzZWxlY3QnLCB0aGlzLnZhbHVlKTtcbiAgICB9XG59XG4iLCJAaWYgKFNldHRpbmcuSWNvbkRpc3BsYXlUeXBlICE9PSAnSW1hZ2UnICYmICFwb3B1cE1vZGUpIHtcbjwhLS0gPGZkLXNlbGVjdFxuICAgIHN0eWxlPVwid2lkdGg6IDEwMCVcIlxuICAgIFtwbGFjZWhvbGRlcl09XCInU2VsZWN0JyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICBbbW9iaWxlXT1cIihkZXZpY2VTaXplJCB8IGFzeW5jKSA9PT0gJ3MnXCJcbiAgICBbbW9iaWxlQ29uZmlnXT1cIm1vYmlsZUNvbmZpZ1wiXG4gICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW3N0eWxlLmRpcmVjdGlvbl09XCJTZXR0aW5nLklzTHRyID09PSB0cnVlID8gJ2x0cicgOiBudWxsXCJcbiAgICBbc3R5bGUudGV4dC1hbGlnbl09XCJTZXR0aW5nLklzTHRyID09PSB0cnVlID8gJ2xlZnQnIDogbnVsbFwiXG4gICAgW3JlYWRvbmx5XT1cIihyZWFkb25seSQgfCBhc3luYykgPT09IHRydWUgPyB0cnVlIDogZmFsc2VcIlxuICAgIFtkaXNhYmxlZF09XCIoZGlzYWJsZSQgfCBhc3luYykgPT09IHRydWUgPyB0cnVlIDogZmFsc2VcIlxuPlxuICAgIEBmb3IgKGl0ZW0gb2YgY29udGV4dC5zdG9yZS5kYXRhW2NvbnRleHQuc3RvcmUucm9vdF07IHRyYWNrIGl0ZW0pIHtcbiAgICA8ZmQtb3B0aW9uXG4gICAgICAgIFt2YWx1ZV09XCJpdGVtLmlkXCJcbiAgICAgICAgW3N0eWxlLmRpcmVjdGlvbl09XCJTZXR0aW5nLklzTHRyID09PSB0cnVlID8gJ2x0cicgOiBudWxsXCJcbiAgICAgICAgW2NsYXNzLmNvbnRyb2wtZGlzYWJsZWRdPVwiaXRlbS5Jc0VtcHR5XCJcbiAgICAgICAgW2NsYXNzLmxpc3QtZW1wdHktaXRlbV09XCJpdGVtLklzRW1wdHlcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIHBvcHVwTW9kZTogdHJ1ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9mZC1vcHRpb24+XG4gICAgfVxuPC9mZC1zZWxlY3Q+IC0tPlxuPGZkLWNvbWJvYm94XG4gICAgW2lucHV0SWRdPVwiaWRcIlxuICAgIFttb2JpbGVdPVwiKGRldmljZVNpemUkIHwgYXN5bmMpID09PSAncydcIlxuICAgIFtwbGFjZWhvbGRlcl09XCInU2VsZWN0JyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgW2Rpc3BsYXlGbl09XCJkaXNwbGF5Rm5cIlxuICAgIFsobmdNb2RlbCldPVwidHZhbHVlXCJcbiAgICBbcmVhZE9ubHldPVwiKHJlYWRvbmx5JCB8IGFzeW5jKSA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZVwiXG4gICAgW2Rpc2FibGVkXT1cIihkaXNhYmxlJCB8IGFzeW5jKSA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZVwiXG4gICAgW2ZpbGxPblNlbGVjdF09XCJ0cnVlXCJcbiAgICBbZHJvcGRvd25WYWx1ZXNdPVwiY29udGV4dC5zdG9yZS5kYXRhW2NvbnRleHQuc3RvcmUucm9vdF1cIlxuICAgIChpdGVtQ2xpY2tlZCk9XCJvbkl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxuPlxuICAgIDxuZy1jb250YWluZXIgKmZkQ29tYm9ib3hJdGVtPVwibGV0IGl0ZW07IHVzZTogcm93RGF0YU9wdGlvbjsgaW5wdXRUZXh0IGFzIHNlYXJjaFwiPlxuICAgICAgICA8IS0tIE5vdGUgdGhhdCBpbiB0aGlzIGNhc2UgeW91IGFyZSByZXNwb25zaWJsZSBmb3IgaGlnaGxpZ2h0aW5nLiAtLT5cbiAgICAgICAgQGlmIChTZXR0aW5nLkljb25EaXNwbGF5VHlwZSAhPT0gJ05vSW1hZ2UnKSB7IEBpZiAoaXRlbS51cmwpIHtcbiAgICAgICAgPGltZyBmZC1saXN0LWljb24gW2F0dHJSdGxdPVwiU2V0dGluZy5Jc0x0ciA9PT0gdHJ1ZSA/IGZhbHNlIDogdW5kZWZpbmVkXCIgW3NyY109XCJpdGVtLnVybFwiIC8+XG4gICAgICAgIH0gfSBAaWYgKFNldHRpbmcuSWNvbkRpc3BsYXlUeXBlICE9PSAnSW1hZ2UnKSB7XG4gICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGUgW2lubmVySFRNTF09XCJpdGVtLklzRW1wdHkgPyAoJ1NlbGVjdCcgfCBiYmJUcmFuc2xhdGUpIDogKGl0ZW0udHh0IHwgYmJiVHJhbnNsYXRlKVwiPjwvc3Bhbj5cbiAgICAgICAgfVxuICAgIDwvbmctY29udGFpbmVyPlxuPC9mZC1jb21ib2JveD5cbn0gQGlmIChTZXR0aW5nLkljb25EaXNwbGF5VHlwZSA9PT0gJ0ltYWdlJyB8fCBwb3B1cE1vZGUpIHtcbjxmZC1wb3BvdmVyICNwb3BvdmVyIFtmb2N1c1RyYXBwZWRdPVwidHJ1ZVwiIFtmb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIj5cbiAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIFtmZE1lbnVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgQGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gJzAnKSB7XG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwidmFsdWUgfCBjb21ib1Jvd0ltZzogY29udGV4dC5zdG9yZS5kYXRhLlJvd3NcIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cbiAgICA8ZmQtcG9wb3Zlci1ib2R5IGNsYXNzPVwiY29tYm8tcG9wdXBtb2RlXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgY29udGV4dC5zdG9yZS5kYXRhW2NvbnRleHQuc3RvcmUucm9vdF07IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBbdGl0bGVdPVwiaXRlbS50eHRcIiAoY2xpY2spPVwicG9wb3Zlci5jbG9zZSgpOyBvblZhbHVlQ2hhbmdlKGl0ZW0uaWQpXCI+XG4gICAgICAgICAgICBAaWYgKGl0ZW0udXJsKSB7XG4gICAgICAgICAgICA8aW1nIFthdHRyUnRsXT1cIlNldHRpbmcuSXNMdHIgPT09IHRydWUgPyBmYWxzZSA6IHVuZGVmaW5lZFwiIFtzcmNdPVwiaXRlbS51cmxcIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuPC9mZC1wb3BvdmVyPlxufVxuPG5nLXRlbXBsYXRlICNpdGVtVGVtcGxhdGUgbGV0LWl0ZW0gbGV0LXBvcHVwTW9kZT1cInBvcHVwTW9kZVwiPlxuICAgIEBpZiAoU2V0dGluZy5JY29uRGlzcGxheVR5cGUgIT09ICdOb0ltYWdlJykgeyBAaWYgKGl0ZW0udXJsKSB7XG4gICAgPGltZyBbYXR0clJ0bF09XCJTZXR0aW5nLklzTHRyID09PSB0cnVlID8gZmFsc2UgOiB1bmRlZmluZWRcIiBbc3JjXT1cIml0ZW0udXJsXCIgLz5cbiAgICB9IH0gQGlmIChTZXR0aW5nLkljb25EaXNwbGF5VHlwZSAhPT0gJ0ltYWdlJykge1xuICAgIHt7IGl0ZW0uSXNFbXB0eSA/ICgnU2VsZWN0JyB8IGJiYlRyYW5zbGF0ZSkgOiAoaXRlbS50eHQgfCBiYmJUcmFuc2xhdGUpIH19XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|