@alfresco/adf-core 8.1.0-14992884874 → 8.1.0-14994828016

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.
@@ -108,14 +108,18 @@ export class ViewerRenderComponent {
108
108
  this.cacheTypeForContent = 'no-cache';
109
109
  }
110
110
  ngOnChanges() {
111
- this.isContentReady = false;
112
- this.isLoading = !this.blobFile && !this.urlFile;
111
+ this.updateLoadingState();
113
112
  if (this.blobFile) {
114
113
  this.setUpBlobData();
115
114
  }
116
115
  else if (this.urlFile) {
117
116
  this.setUpUrlFile();
118
117
  }
118
+ this.updateLoadingState();
119
+ }
120
+ updateLoadingState() {
121
+ this.isContentReady = !(this.viewerType === 'media' || this.viewerType === 'pdf' || this.viewerType === 'image');
122
+ this.isLoading = !this.blobFile && !this.urlFile;
119
123
  }
120
124
  setUpBlobData() {
121
125
  this.internalFileName = this.fileName;
@@ -151,7 +155,7 @@ export class ViewerRenderComponent {
151
155
  this.close.next(true);
152
156
  }
153
157
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ViewerRenderComponent, deps: [{ token: i1.ViewUtilService }, { token: i2.AppExtensionService }, { token: i3.MatDialog }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
154
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: ViewerRenderComponent, isStandalone: true, selector: "adf-viewer-render", inputs: { urlFile: "urlFile", blobFile: "blobFile", allowFullScreen: "allowFullScreen", allowThumbnails: "allowThumbnails", thumbnailsTemplate: "thumbnailsTemplate", mimeType: "mimeType", fileName: "fileName", isLoading: "isLoading", readOnly: "readOnly", allowedEditActions: "allowedEditActions", tracks: "tracks", nodeId: "nodeId", viewerTemplateExtensions: "viewerTemplateExtensions", customError: "customError" }, outputs: { extensionChange: "extensionChange", submitFile: "submitFile", close: "close", isSaving: "isSaving" }, host: { classAttribute: "adf-viewer-render" }, providers: [ViewUtilService], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"(viewerType === 'media' || viewerType === 'pdf' || viewerType === 'image') ? isLoading || !isContentReady : isLoading\"\n class=\"adf-viewer-render-main-loader\">\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\">\n <div class=\"adf-viewer-render__loading-screen \">\n <h2>{{ 'ADF_VIEWER.LOADING' | translate }}</h2>\n <div>\n <mat-spinner class=\"adf-viewer-render__loading-screen__spinner\"/>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"!isLoading\"\n class=\"adf-viewer-render-main\">\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\" [ngSwitch]=\"viewerType\">\n <ng-container *ngSwitchCase=\"'external'\">\n <adf-preview-extension *ngIf=\"!!externalViewer\"\n [id]=\"externalViewer.component\"\n [url]=\"urlFile\"\n [extension]=\"externalViewer.fileExtension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"externalViewer.component\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'pdf'\">\n <adf-pdf-viewer [thumbnailsTemplate]=\"thumbnailsTemplate\"\n [allowThumbnails]=\"allowThumbnails\"\n [blobFile]=\"blobFile\"\n [urlFile]=\"urlFile\"\n [fileName]=\"internalFileName\"\n [cacheType]=\"cacheTypeForContent\"\n (pagesLoaded)=\"isContentReady = true\"\n (close)=\"onClose()\"\n (error)=\"onUnsupportedFile()\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'image'\">\n <adf-img-viewer [urlFile]=\"urlFile\"\n [readOnly]=\"readOnly\"\n [fileName]=\"internalFileName\"\n [allowedEditActions]=\"allowedEditActions\"\n [blobFile]=\"blobFile\"\n (error)=\"onUnsupportedFile()\"\n (submit)=\"onSubmitFile($event)\"\n (imageLoaded)=\"isContentReady = true\"\n (isSaving)=\"isSaving.emit($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'media'\">\n <adf-media-player id=\"adf-mdedia-player\"\n [urlFile]=\"urlFile\"\n [tracks]=\"tracks\"\n [mimeType]=\"mimeType\"\n [blobFile]=\"blobFile\"\n [fileName]=\"internalFileName\"\n (error)=\"onUnsupportedFile()\"\n (canPlay)=\"isContentReady = true\"/>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'text'\">\n <adf-txt-viewer [urlFile]=\"urlFile\"\n [blobFile]=\"blobFile\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'custom'\">\n <ng-container *ngFor=\"let ext of viewerExtensions\">\n <adf-preview-extension *ngIf=\"checkExtensions(ext.fileExtension)\"\n [id]=\"ext.component\"\n [url]=\"urlFile\"\n [extension]=\"extension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"ext.component\" />\n </ng-container>\n\n <ng-container *ngFor=\"let extensionTemplate of extensionTemplates\">\n <span *ngIf=\"extensionTemplate.isVisible\" class=\"adf-viewer-render-custom-content\">\n <ng-template [ngTemplateOutlet]=\"extensionTemplate.template\"\n [ngTemplateOutletContext]=\"{ urlFile: urlFile, extension: extension }\" />\n </span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <adf-viewer-unknown-format [customError]=\"customError\"/>\n </ng-container>\n </div>\n </div>\n</div>\n<ng-container *ngIf=\"viewerTemplateExtensions\">\n <ng-template [ngTemplateOutlet]=\"viewerTemplateExtensions\" [ngTemplateOutletInjector]=\"injector\" />\n</ng-container>\n", styles: [".adf-full-screen,.adf-viewer-render-layout-content{width:100%;height:100%;background-color:var(--adf-theme-background-card-color)}.adf-viewer-render-main-loader{position:fixed;top:64px;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center}.adf-viewer-render-main{width:0;order:1;flex:1 1 auto}.adf-viewer-render-content-container{display:flex;justify-content:center}.adf-viewer-render-layout-content{position:relative;overflow:hidden;z-index:1;background-color:var(--theme-background-color);display:flex;flex-flow:row wrap;flex:1}.adf-viewer-render-layout-content>div{display:flex;flex-flow:row wrap;margin:0 auto;align-items:stretch;height:93vh;width:100%}.adf-viewer-render-overlay-container .adf-viewer-render-content{position:fixed;top:0;left:0;z-index:1000}.adf-viewer-render__loading-screen{display:flex;flex:1 1 auto;align-items:center;justify-content:center;flex-direction:column;height:85vh}.adf-viewer-render__loading-screen__spinner{margin:0 auto}.adf-viewer-render-custom-content{width:100vw}.adf-viewer-render-unknown-content{align-items:center;display:flex}.adf-viewer-render-pdf{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdfViewerComponent, selector: "adf-pdf-viewer", inputs: ["urlFile", "blobFile", "fileName", "showToolbar", "allowThumbnails", "thumbnailsTemplate", "cacheType"], outputs: ["rendered", "error", "close", "pagesLoaded"] }, { kind: "component", type: ImgViewerComponent, selector: "adf-img-viewer", inputs: ["showToolbar", "readOnly", "allowedEditActions", "urlFile", "blobFile", "fileName"], outputs: ["error", "submit", "isSaving", "imageLoaded"] }, { kind: "component", type: MediaPlayerComponent, selector: "adf-media-player", inputs: ["urlFile", "blobFile", "mimeType", "fileName", "tracks"], outputs: ["error", "canPlay"] }, { kind: "component", type: TxtViewerComponent, selector: "adf-txt-viewer", inputs: ["urlFile", "blobFile"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: UnknownFormatComponent, selector: "adf-viewer-unknown-format", inputs: ["customError"] }, { kind: "ngmodule", type: ExtensionsModule }, { kind: "component", type: i2.PreviewExtensionComponent, selector: "adf-preview-extension", inputs: ["id", "nodeId", "url", "extension"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }], encapsulation: i0.ViewEncapsulation.None }); }
158
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: ViewerRenderComponent, isStandalone: true, selector: "adf-viewer-render", inputs: { urlFile: "urlFile", blobFile: "blobFile", allowFullScreen: "allowFullScreen", allowThumbnails: "allowThumbnails", thumbnailsTemplate: "thumbnailsTemplate", mimeType: "mimeType", fileName: "fileName", isLoading: "isLoading", readOnly: "readOnly", allowedEditActions: "allowedEditActions", tracks: "tracks", nodeId: "nodeId", viewerTemplateExtensions: "viewerTemplateExtensions", customError: "customError" }, outputs: { extensionChange: "extensionChange", submitFile: "submitFile", close: "close", isSaving: "isSaving" }, host: { classAttribute: "adf-viewer-render" }, providers: [ViewUtilService], usesOnChanges: true, ngImport: i0, template: "<div\n *ngIf=\"viewerType === 'media' || viewerType === 'pdf' || viewerType === 'image' ? (isLoading || !isContentReady) : isLoading\"\n class=\"adf-viewer-render-main-loader\"\n>\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\">\n <div class=\"adf-viewer-render__loading-screen\">\n <h2>{{ 'ADF_VIEWER.LOADING' | translate }}</h2>\n <div>\n <mat-spinner class=\"adf-viewer-render__loading-screen__spinner\" />\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div\n [hidden]=\"viewerType === 'media' || viewerType === 'pdf' || viewerType === 'image' ? (isLoading || !isContentReady) : isLoading\"\n class=\"adf-viewer-render-main\"\n>\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\" [ngSwitch]=\"viewerType\">\n <ng-container *ngSwitchCase=\"'external'\">\n <adf-preview-extension\n *ngIf=\"!!externalViewer\"\n [id]=\"externalViewer.component\"\n [url]=\"urlFile\"\n [extension]=\"externalViewer.fileExtension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"externalViewer.component\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'pdf'\">\n <adf-pdf-viewer\n [thumbnailsTemplate]=\"thumbnailsTemplate\"\n [allowThumbnails]=\"allowThumbnails\"\n [blobFile]=\"blobFile\"\n [urlFile]=\"urlFile\"\n [fileName]=\"internalFileName\"\n [cacheType]=\"cacheTypeForContent\"\n (pagesLoaded)=\"isContentReady = true\"\n (close)=\"onClose()\"\n (error)=\"onUnsupportedFile()\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'image'\">\n <adf-img-viewer\n [urlFile]=\"urlFile\"\n [readOnly]=\"readOnly\"\n [fileName]=\"internalFileName\"\n [allowedEditActions]=\"allowedEditActions\"\n [blobFile]=\"blobFile\"\n (error)=\"onUnsupportedFile()\"\n (submit)=\"onSubmitFile($event)\"\n (imageLoaded)=\"isContentReady = true\"\n (isSaving)=\"isSaving.emit($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'media'\">\n <adf-media-player\n id=\"adf-mdedia-player\"\n [urlFile]=\"urlFile\"\n [tracks]=\"tracks\"\n [mimeType]=\"mimeType\"\n [blobFile]=\"blobFile\"\n [fileName]=\"internalFileName\"\n (error)=\"onUnsupportedFile()\"\n (canPlay)=\"isContentReady = true\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'text'\">\n <adf-txt-viewer [urlFile]=\"urlFile\" [blobFile]=\"blobFile\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'custom'\">\n <ng-container *ngFor=\"let ext of viewerExtensions\">\n <adf-preview-extension\n *ngIf=\"checkExtensions(ext.fileExtension)\"\n [id]=\"ext.component\"\n [url]=\"urlFile\"\n [extension]=\"extension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"ext.component\"\n />\n </ng-container>\n\n <ng-container *ngFor=\"let extensionTemplate of extensionTemplates\">\n <span *ngIf=\"extensionTemplate.isVisible\" class=\"adf-viewer-render-custom-content\">\n <ng-template\n [ngTemplateOutlet]=\"extensionTemplate.template\"\n [ngTemplateOutletContext]=\"{ urlFile: urlFile, extension: extension }\"\n />\n </span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <adf-viewer-unknown-format [customError]=\"customError\" />\n </ng-container>\n </div>\n </div>\n</div>\n<ng-container *ngIf=\"viewerTemplateExtensions\">\n <ng-template [ngTemplateOutlet]=\"viewerTemplateExtensions\" [ngTemplateOutletInjector]=\"injector\" />\n</ng-container>\n", styles: [".adf-full-screen,.adf-viewer-render-layout-content{width:100%;height:100%;background-color:var(--adf-theme-background-card-color)}.adf-viewer-render-main-loader{position:fixed;top:64px;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center}.adf-viewer-render-main{width:0;order:1;flex:1 1 auto}.adf-viewer-render-content-container{display:flex;justify-content:center}.adf-viewer-render-layout-content{position:relative;overflow:hidden;z-index:1;background-color:var(--theme-background-color);display:flex;flex-flow:row wrap;flex:1}.adf-viewer-render-layout-content>div{display:flex;flex-flow:row wrap;margin:0 auto;align-items:stretch;height:93vh;width:100%}.adf-viewer-render-overlay-container .adf-viewer-render-content{position:fixed;top:0;left:0;z-index:1000}.adf-viewer-render__loading-screen{display:flex;flex:1 1 auto;align-items:center;justify-content:center;flex-direction:column;height:85vh}.adf-viewer-render__loading-screen__spinner{margin:0 auto}.adf-viewer-render-custom-content{width:100vw}.adf-viewer-render-unknown-content{align-items:center;display:flex}.adf-viewer-render-pdf{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdfViewerComponent, selector: "adf-pdf-viewer", inputs: ["urlFile", "blobFile", "fileName", "showToolbar", "allowThumbnails", "thumbnailsTemplate", "cacheType"], outputs: ["rendered", "error", "close", "pagesLoaded"] }, { kind: "component", type: ImgViewerComponent, selector: "adf-img-viewer", inputs: ["showToolbar", "readOnly", "allowedEditActions", "urlFile", "blobFile", "fileName"], outputs: ["error", "submit", "isSaving", "imageLoaded"] }, { kind: "component", type: MediaPlayerComponent, selector: "adf-media-player", inputs: ["urlFile", "blobFile", "mimeType", "fileName", "tracks"], outputs: ["error", "canPlay"] }, { kind: "component", type: TxtViewerComponent, selector: "adf-txt-viewer", inputs: ["urlFile", "blobFile"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: UnknownFormatComponent, selector: "adf-viewer-unknown-format", inputs: ["customError"] }, { kind: "ngmodule", type: ExtensionsModule }, { kind: "component", type: i2.PreviewExtensionComponent, selector: "adf-preview-extension", inputs: ["id", "nodeId", "url", "extension"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }], encapsulation: i0.ViewEncapsulation.None }); }
155
159
  }
156
160
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ViewerRenderComponent, decorators: [{
157
161
  type: Component,
@@ -170,7 +174,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
170
174
  ExtensionsModule,
171
175
  NgForOf,
172
176
  NgSwitchDefault
173
- ], providers: [ViewUtilService], template: "<div *ngIf=\"(viewerType === 'media' || viewerType === 'pdf' || viewerType === 'image') ? isLoading || !isContentReady : isLoading\"\n class=\"adf-viewer-render-main-loader\">\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\">\n <div class=\"adf-viewer-render__loading-screen \">\n <h2>{{ 'ADF_VIEWER.LOADING' | translate }}</h2>\n <div>\n <mat-spinner class=\"adf-viewer-render__loading-screen__spinner\"/>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"!isLoading\"\n class=\"adf-viewer-render-main\">\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\" [ngSwitch]=\"viewerType\">\n <ng-container *ngSwitchCase=\"'external'\">\n <adf-preview-extension *ngIf=\"!!externalViewer\"\n [id]=\"externalViewer.component\"\n [url]=\"urlFile\"\n [extension]=\"externalViewer.fileExtension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"externalViewer.component\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'pdf'\">\n <adf-pdf-viewer [thumbnailsTemplate]=\"thumbnailsTemplate\"\n [allowThumbnails]=\"allowThumbnails\"\n [blobFile]=\"blobFile\"\n [urlFile]=\"urlFile\"\n [fileName]=\"internalFileName\"\n [cacheType]=\"cacheTypeForContent\"\n (pagesLoaded)=\"isContentReady = true\"\n (close)=\"onClose()\"\n (error)=\"onUnsupportedFile()\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'image'\">\n <adf-img-viewer [urlFile]=\"urlFile\"\n [readOnly]=\"readOnly\"\n [fileName]=\"internalFileName\"\n [allowedEditActions]=\"allowedEditActions\"\n [blobFile]=\"blobFile\"\n (error)=\"onUnsupportedFile()\"\n (submit)=\"onSubmitFile($event)\"\n (imageLoaded)=\"isContentReady = true\"\n (isSaving)=\"isSaving.emit($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'media'\">\n <adf-media-player id=\"adf-mdedia-player\"\n [urlFile]=\"urlFile\"\n [tracks]=\"tracks\"\n [mimeType]=\"mimeType\"\n [blobFile]=\"blobFile\"\n [fileName]=\"internalFileName\"\n (error)=\"onUnsupportedFile()\"\n (canPlay)=\"isContentReady = true\"/>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'text'\">\n <adf-txt-viewer [urlFile]=\"urlFile\"\n [blobFile]=\"blobFile\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'custom'\">\n <ng-container *ngFor=\"let ext of viewerExtensions\">\n <adf-preview-extension *ngIf=\"checkExtensions(ext.fileExtension)\"\n [id]=\"ext.component\"\n [url]=\"urlFile\"\n [extension]=\"extension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"ext.component\" />\n </ng-container>\n\n <ng-container *ngFor=\"let extensionTemplate of extensionTemplates\">\n <span *ngIf=\"extensionTemplate.isVisible\" class=\"adf-viewer-render-custom-content\">\n <ng-template [ngTemplateOutlet]=\"extensionTemplate.template\"\n [ngTemplateOutletContext]=\"{ urlFile: urlFile, extension: extension }\" />\n </span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <adf-viewer-unknown-format [customError]=\"customError\"/>\n </ng-container>\n </div>\n </div>\n</div>\n<ng-container *ngIf=\"viewerTemplateExtensions\">\n <ng-template [ngTemplateOutlet]=\"viewerTemplateExtensions\" [ngTemplateOutletInjector]=\"injector\" />\n</ng-container>\n", styles: [".adf-full-screen,.adf-viewer-render-layout-content{width:100%;height:100%;background-color:var(--adf-theme-background-card-color)}.adf-viewer-render-main-loader{position:fixed;top:64px;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center}.adf-viewer-render-main{width:0;order:1;flex:1 1 auto}.adf-viewer-render-content-container{display:flex;justify-content:center}.adf-viewer-render-layout-content{position:relative;overflow:hidden;z-index:1;background-color:var(--theme-background-color);display:flex;flex-flow:row wrap;flex:1}.adf-viewer-render-layout-content>div{display:flex;flex-flow:row wrap;margin:0 auto;align-items:stretch;height:93vh;width:100%}.adf-viewer-render-overlay-container .adf-viewer-render-content{position:fixed;top:0;left:0;z-index:1000}.adf-viewer-render__loading-screen{display:flex;flex:1 1 auto;align-items:center;justify-content:center;flex-direction:column;height:85vh}.adf-viewer-render__loading-screen__spinner{margin:0 auto}.adf-viewer-render-custom-content{width:100vw}.adf-viewer-render-unknown-content{align-items:center;display:flex}.adf-viewer-render-pdf{display:contents}\n"] }]
177
+ ], providers: [ViewUtilService], template: "<div\n *ngIf=\"viewerType === 'media' || viewerType === 'pdf' || viewerType === 'image' ? (isLoading || !isContentReady) : isLoading\"\n class=\"adf-viewer-render-main-loader\"\n>\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\">\n <div class=\"adf-viewer-render__loading-screen\">\n <h2>{{ 'ADF_VIEWER.LOADING' | translate }}</h2>\n <div>\n <mat-spinner class=\"adf-viewer-render__loading-screen__spinner\" />\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div\n [hidden]=\"viewerType === 'media' || viewerType === 'pdf' || viewerType === 'image' ? (isLoading || !isContentReady) : isLoading\"\n class=\"adf-viewer-render-main\"\n>\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\" [ngSwitch]=\"viewerType\">\n <ng-container *ngSwitchCase=\"'external'\">\n <adf-preview-extension\n *ngIf=\"!!externalViewer\"\n [id]=\"externalViewer.component\"\n [url]=\"urlFile\"\n [extension]=\"externalViewer.fileExtension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"externalViewer.component\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'pdf'\">\n <adf-pdf-viewer\n [thumbnailsTemplate]=\"thumbnailsTemplate\"\n [allowThumbnails]=\"allowThumbnails\"\n [blobFile]=\"blobFile\"\n [urlFile]=\"urlFile\"\n [fileName]=\"internalFileName\"\n [cacheType]=\"cacheTypeForContent\"\n (pagesLoaded)=\"isContentReady = true\"\n (close)=\"onClose()\"\n (error)=\"onUnsupportedFile()\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'image'\">\n <adf-img-viewer\n [urlFile]=\"urlFile\"\n [readOnly]=\"readOnly\"\n [fileName]=\"internalFileName\"\n [allowedEditActions]=\"allowedEditActions\"\n [blobFile]=\"blobFile\"\n (error)=\"onUnsupportedFile()\"\n (submit)=\"onSubmitFile($event)\"\n (imageLoaded)=\"isContentReady = true\"\n (isSaving)=\"isSaving.emit($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'media'\">\n <adf-media-player\n id=\"adf-mdedia-player\"\n [urlFile]=\"urlFile\"\n [tracks]=\"tracks\"\n [mimeType]=\"mimeType\"\n [blobFile]=\"blobFile\"\n [fileName]=\"internalFileName\"\n (error)=\"onUnsupportedFile()\"\n (canPlay)=\"isContentReady = true\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'text'\">\n <adf-txt-viewer [urlFile]=\"urlFile\" [blobFile]=\"blobFile\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'custom'\">\n <ng-container *ngFor=\"let ext of viewerExtensions\">\n <adf-preview-extension\n *ngIf=\"checkExtensions(ext.fileExtension)\"\n [id]=\"ext.component\"\n [url]=\"urlFile\"\n [extension]=\"extension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"ext.component\"\n />\n </ng-container>\n\n <ng-container *ngFor=\"let extensionTemplate of extensionTemplates\">\n <span *ngIf=\"extensionTemplate.isVisible\" class=\"adf-viewer-render-custom-content\">\n <ng-template\n [ngTemplateOutlet]=\"extensionTemplate.template\"\n [ngTemplateOutletContext]=\"{ urlFile: urlFile, extension: extension }\"\n />\n </span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <adf-viewer-unknown-format [customError]=\"customError\" />\n </ng-container>\n </div>\n </div>\n</div>\n<ng-container *ngIf=\"viewerTemplateExtensions\">\n <ng-template [ngTemplateOutlet]=\"viewerTemplateExtensions\" [ngTemplateOutletInjector]=\"injector\" />\n</ng-container>\n", styles: [".adf-full-screen,.adf-viewer-render-layout-content{width:100%;height:100%;background-color:var(--adf-theme-background-card-color)}.adf-viewer-render-main-loader{position:fixed;top:64px;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center}.adf-viewer-render-main{width:0;order:1;flex:1 1 auto}.adf-viewer-render-content-container{display:flex;justify-content:center}.adf-viewer-render-layout-content{position:relative;overflow:hidden;z-index:1;background-color:var(--theme-background-color);display:flex;flex-flow:row wrap;flex:1}.adf-viewer-render-layout-content>div{display:flex;flex-flow:row wrap;margin:0 auto;align-items:stretch;height:93vh;width:100%}.adf-viewer-render-overlay-container .adf-viewer-render-content{position:fixed;top:0;left:0;z-index:1000}.adf-viewer-render__loading-screen{display:flex;flex:1 1 auto;align-items:center;justify-content:center;flex-direction:column;height:85vh}.adf-viewer-render__loading-screen__spinner{margin:0 auto}.adf-viewer-render-custom-content{width:100vw}.adf-viewer-render-unknown-content{align-items:center;display:flex}.adf-viewer-render-pdf{display:contents}\n"] }]
174
178
  }], ctorParameters: () => [{ type: i1.ViewUtilService }, { type: i2.AppExtensionService }, { type: i3.MatDialog }, { type: i0.Injector }], propDecorators: { urlFile: [{
175
179
  type: Input
176
180
  }], blobFile: [{
@@ -208,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
208
212
  }], isSaving: [{
209
213
  type: Output
210
214
  }] } });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLXJlbmRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL3ZpZXdlci1yZW5kZXIvdmlld2VyLXJlbmRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL3ZpZXdlci1yZW5kZXIvdmlld2VyLXJlbmRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQXNCLE1BQU0sMEJBQTBCLENBQUM7QUFDckcsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hF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d0JBQ3hCLFFBQVE7d0JBQ1IsWUFBWTt3QkFDWixJQUFJO3dCQUNKLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixzQkFBc0I7d0JBQ3RCLGdCQUFnQjt3QkFDaEIsT0FBTzt3QkFDUCxlQUFlO3FCQUNsQixhQUNVLENBQUMsZUFBZSxDQUFDO3FLQVE1QixPQUFPO3NCQUROLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLGVBQWU7c0JBRGQsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sa0JBQWtCO3NCQURqQixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFTTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBUU4sTUFBTTtzQkFETCxLQUFLO2dCQUtOLE1BQU07c0JBREwsS0FBSztnQkFLTix3QkFBd0I7c0JBRHZCLEtBQUs7Z0JBS04sV0FBVztzQkFEVixLQUFLO2dCQUtOLGVBQWU7c0JBRGQsTUFBTTtnQkFLUCxVQUFVO3NCQURULE1BQU07Z0JBS1AsS0FBSztzQkFESixNQUFNO2dCQUtQLFFBQVE7c0JBRFAsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQXBwRXh0ZW5zaW9uU2VydmljZSwgRXh0ZW5zaW9uc01vZHVsZSwgVmlld2VyRXh0ZW5zaW9uUmVmIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1leHRlbnNpb25zJztcbmltcG9ydCB7IE5nRm9yT2YsIE5nSWYsIE5nU3dpdGNoLCBOZ1N3aXRjaENhc2UsIE5nU3dpdGNoRGVmYXVsdCwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgVHJhY2sgfSBmcm9tICcuLi8uLi9tb2RlbHMvdmlld2VyLm1vZGVsJztcbmltcG9ydCB7IFZpZXdVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ZpZXctdXRpbC5zZXJ2aWNlJztcbmltcG9ydCB7IEltZ1ZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4uL2ltZy12aWV3ZXIvaW1nLXZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVkaWFQbGF5ZXJDb21wb25lbnQgfSBmcm9tICcuLi9tZWRpYS1wbGF5ZXIvbWVkaWEtcGxheWVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZGZWaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuLi9wZGYtdmlld2VyL3BkZi12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFR4dFZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4uL3R4dC12aWV3ZXIvdHh0LXZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVW5rbm93bkZvcm1hdENvbXBvbmVudCB9IGZyb20gJy4uL3Vua25vd24tZm9ybWF0L3Vua25vd24tZm9ybWF0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLXZpZXdlci1yZW5kZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ZpZXdlci1yZW5kZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3ZpZXdlci1yZW5kZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7IGNsYXNzOiAnYWRmLXZpZXdlci1yZW5kZXInIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgICAgICBOZ1N3aXRjaCxcbiAgICAgICAgTmdTd2l0Y2hDYXNlLFxuICAgICAgICBOZ0lmLFxuICAgICAgICBQZGZWaWV3ZXJDb21wb25lbnQsXG4gICAgICAgIEltZ1ZpZXdlckNvbXBvbmVudCxcbiAgICAgICAgTWVkaWFQbGF5ZXJDb21wb25lbnQsXG4gICAgICAgIFR4dFZpZXdlckNvbXBvbmVudCxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgVW5rbm93bkZvcm1hdENvbXBvbmVudCxcbiAgICAgICAgRXh0ZW5zaW9uc01vZHVsZSxcbiAgICAgICAgTmdGb3JPZixcbiAgICAgICAgTmdTd2l0Y2hEZWZhdWx0XG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtWaWV3VXRpbFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFZpZXdlclJlbmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiBJZiB5b3Ugd2FudCB0byBsb2FkIGFuIGV4dGVybmFsIGZpbGUgdGhhdCBkb2VzIG5vdCBjb21lIGZyb20gQUNTIHlvdVxuICAgICAqIGNhbiB1c2UgdGhpcyBVUkwgdG8gc3BlY2lmeSB3aGVyZSB0byBsb2FkIHRoZSBmaWxlIGZyb20uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB1cmxGaWxlID0gJyc7XG5cbiAgICAvKiogTG9hZHMgYSBCbG9iIEZpbGUgKi9cbiAgICBASW5wdXQoKVxuICAgIGJsb2JGaWxlOiBCbG9iO1xuXG4gICAgLyoqIFRvZ2dsZXMgdGhlICdGdWxsIFNjcmVlbicgZmVhdHVyZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFsbG93RnVsbFNjcmVlbiA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlcyBQREYgdGh1bWJuYWlscy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFsbG93VGh1bWJuYWlscyA9IHRydWU7XG5cbiAgICAvKiogVGhlIHRlbXBsYXRlIGZvciB0aGUgcGRmIHRodW1ibmFpbHMuICovXG4gICAgQElucHV0KClcbiAgICB0aHVtYm5haWxzVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gPSBudWxsO1xuXG4gICAgLyoqIE1JTUUgdHlwZSBvZiB0aGUgZmlsZSBjb250ZW50ICh3aGVuIG5vdCBkZXRlcm1pbmVkIGJ5IHRoZSBmaWxlbmFtZSBleHRlbnNpb24pLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWltZVR5cGU6IHN0cmluZztcblxuICAgIC8qKiBPdmVycmlkZSBDb250ZW50IGZpbGVuYW1lLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsZU5hbWU6IHN0cmluZztcblxuICAgIC8qKiBPdmVycmlkZSBsb2FkaW5nIHN0YXR1cyAqL1xuICAgIEBJbnB1dCgpXG4gICAgaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgICAvKiogRW5hYmxlIHdoZW4gd2hlcmUgaXMgcG9zc2libGUgdGhlIGVkaXRpbmcgZnVuY3Rpb25hbGl0aWVzICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVhZE9ubHkgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQ29udHJvbHMgd2hpY2ggYWN0aW9ucyBhcmUgZW5hYmxlZCBpbiB0aGUgdmlld2VyLlxuICAgICAqIEV4YW1wbGU6XG4gICAgICogeyByb3RhdGU6IHRydWUsIGNyb3A6IGZhbHNlIH0gd2lsbCBlbmFibGUgcm90YXRpb24gYnV0IGRpc2FibGUgY3JvcHBpbmcuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd2VkRWRpdEFjdGlvbnM6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge1xuICAgICAgICByb3RhdGU6IHRydWUsXG4gICAgICAgIGNyb3A6IHRydWVcbiAgICB9O1xuXG4gICAgLyoqIG1lZGlhIHN1YnRpdGxlcyBmb3IgdGhlIG1lZGlhIHBsYXllciovXG4gICAgQElucHV0KClcbiAgICB0cmFja3M6IFRyYWNrW10gPSBbXTtcblxuICAgIC8qKiBJZGVudGlmaWVyIG9mIGEgbm9kZSB0aGF0IGlzIG9wZW5lZCBieSB0aGUgdmlld2VyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbm9kZUlkOiBzdHJpbmcgPSBudWxsO1xuXG4gICAgLyoqIFRlbXBsYXRlIGNvbnRhaW5pbmcgVmlld2VyRXh0ZW5zaW9uRGlyZWN0aXZlIGluc3RhbmNlcyBwcm92aWRpbmcgZGlmZmVyZW50IHZpZXdlciBleHRlbnNpb25zIGJhc2VkIG9uIHN1cHBvcnRlZCBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHZpZXdlclRlbXBsYXRlRXh0ZW5zaW9uczogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBDdXN0b20gZXJyb3IgbWVzc2FnZSB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHZpZXdlci4gKi9cbiAgICBASW5wdXQoKVxuICAgIGN1c3RvbUVycm9yOiBzdHJpbmcgPSB1bmRlZmluZWQ7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBmaWxlbmFtZSBleHRlbnNpb24gY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBleHRlbnNpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGltZyBpcyBzdWJtaXR0ZWQgaW4gdGhlIGltZyB2aWV3ZXIuICovXG4gICAgQE91dHB1dCgpXG4gICAgc3VibWl0RmlsZSA9IG5ldyBFdmVudEVtaXR0ZXI8QmxvYj4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGltZyBpcyBzdWJtaXR0ZWQgaW4gdGhlIGltZyB2aWV3ZXIuICovXG4gICAgQE91dHB1dCgpXG4gICAgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbWcgaXMgc2F2aW5nLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGlzU2F2aW5nID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgZXh0ZW5zaW9uVGVtcGxhdGVzOiB7IHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+OyBpc1Zpc2libGU6IGJvb2xlYW4gfVtdID0gW107XG4gICAgZXh0ZW5zaW9uc1N1cHBvcnRlZEJ5VGVtcGxhdGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGV4dGVuc2lvbjogc3RyaW5nO1xuICAgIGludGVybmFsRmlsZU5hbWU6IHN0cmluZztcbiAgICB2aWV3ZXJUeXBlOiBzdHJpbmcgPSAndW5rbm93bic7XG4gICAgaXNDb250ZW50UmVhZHkgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBsaXN0IG9mIHRoZSBhY3RpdmUgVmlld2VyIGNvbnRlbnQgZXh0ZW5zaW9ucy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGxpc3Qgb2YgZXh0ZW5zaW9uIHJlZmVyZW5jZXNcbiAgICAgKi9cbiAgICBnZXQgdmlld2VyRXh0ZW5zaW9ucygpOiBWaWV3ZXJFeHRlbnNpb25SZWZbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4dGVuc2lvblNlcnZpY2UuZ2V0Vmlld2VyRXh0ZW5zaW9ucygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIGEgbGlzdCBvZiBmaWxlIGV4dGVuc2lvbnMgc3VwcG9ydGVkIGJ5IGV4dGVybmFsIHBsdWdpbnMuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBsaXN0IG9mIGV4dGVuc2lvbnNcbiAgICAgKi9cbiAgICBnZXQgZXh0ZXJuYWxFeHRlbnNpb25zKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlld2VyRXh0ZW5zaW9ucy5tYXAoKGV4dCkgPT4gZXh0LmZpbGVFeHRlbnNpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2V4dGVybmFsVmlld2VyOiBWaWV3ZXJFeHRlbnNpb25SZWY7XG4gICAgZ2V0IGV4dGVybmFsVmlld2VyKCk6IFZpZXdlckV4dGVuc2lvblJlZiB7XG4gICAgICAgIGlmICghdGhpcy5fZXh0ZXJuYWxWaWV3ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2V4dGVybmFsVmlld2VyID0gdGhpcy52aWV3ZXJFeHRlbnNpb25zLmZpbmQoKGV4dCkgPT4gZXh0LmZpbGVFeHRlbnNpb24gPT09ICcqJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fZXh0ZXJuYWxWaWV3ZXI7XG4gICAgfVxuXG4gICAgY2FjaGVUeXBlRm9yQ29udGVudCA9ICduby1jYWNoZSc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB2aWV3VXRpbFNlcnZpY2U6IFZpZXdVdGlsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBleHRlbnNpb25TZXJ2aWNlOiBBcHBFeHRlbnNpb25TZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3JcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5jYWNoZVR5cGVGb3JDb250ZW50ID0gJ25vLWNhY2hlJztcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy5pc0NvbnRlbnRSZWFkeSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9ICF0aGlzLmJsb2JGaWxlICYmICF0aGlzLnVybEZpbGU7XG5cbiAgICAgICAgaWYgKHRoaXMuYmxvYkZpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VXBCbG9iRGF0YSgpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudXJsRmlsZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRVcFVybEZpbGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VXBCbG9iRGF0YSgpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbEZpbGVOYW1lID0gdGhpcy5maWxlTmFtZTtcbiAgICAgICAgdGhpcy52aWV3ZXJUeXBlID0gdGhpcy52aWV3VXRpbFNlcnZpY2UuZ2V0Vmlld2VyVHlwZUJ5TWltZVR5cGUodGhpcy5ibG9iRmlsZS50eXBlKTtcblxuICAgICAgICB0aGlzLmV4dGVuc2lvbkNoYW5nZS5lbWl0KHRoaXMuYmxvYkZpbGUudHlwZSk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9wKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRVcFVybEZpbGUoKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxGaWxlTmFtZSA9IHRoaXMuZmlsZU5hbWUgPyB0aGlzLmZpbGVOYW1lIDogdGhpcy52aWV3VXRpbFNlcnZpY2UuZ2V0RmlsZW5hbWVGcm9tVXJsKHRoaXMudXJsRmlsZSk7XG4gICAgICAgIHRoaXMuZXh0ZW5zaW9uID0gdGhpcy52aWV3VXRpbFNlcnZpY2UuZ2V0RmlsZUV4dGVuc2lvbih0aGlzLmludGVybmFsRmlsZU5hbWUpO1xuICAgICAgICB0aGlzLnZpZXdlclR5cGUgPSB0aGlzLnZpZXdVdGlsU2VydmljZS5nZXRWaWV3ZXJUeXBlKHRoaXMuZXh0ZW5zaW9uLCB0aGlzLm1pbWVUeXBlLCB0aGlzLmV4dGVuc2lvbnNTdXBwb3J0ZWRCeVRlbXBsYXRlcyk7XG5cbiAgICAgICAgdGhpcy5leHRlbnNpb25DaGFuZ2UuZW1pdCh0aGlzLmV4dGVuc2lvbik7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9wKCk7XG4gICAgfVxuXG4gICAgc2Nyb2xsVG9wKCkge1xuICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMSk7XG4gICAgfVxuXG4gICAgY2hlY2tFeHRlbnNpb25zKGV4dGVuc2lvbkFsbG93ZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBleHRlbnNpb25BbGxvd2VkID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCkgPT09IGV4dGVuc2lvbkFsbG93ZWQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgfSBlbHNlIGlmIChleHRlbnNpb25BbGxvd2VkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiBleHRlbnNpb25BbGxvd2VkLmZpbmQoKGN1cnJlbnRFeHRlbnNpb24pID0+IHRoaXMuZXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCkgPT09IGN1cnJlbnRFeHRlbnNpb24udG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblN1Ym1pdEZpbGUobmV3SW1hZ2VCbG9iOiBCbG9iKSB7XG4gICAgICAgIHRoaXMuc3VibWl0RmlsZS5uZXh0KG5ld0ltYWdlQmxvYik7XG4gICAgfVxuXG4gICAgb25VbnN1cHBvcnRlZEZpbGUoKSB7XG4gICAgICAgIHRoaXMudmlld2VyVHlwZSA9ICd1bmtub3duJztcbiAgICB9XG5cbiAgICBvbkNsb3NlKCkge1xuICAgICAgICB0aGlzLmNsb3NlLm5leHQodHJ1ZSk7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIih2aWV3ZXJUeXBlID09PSAnbWVkaWEnIHx8IHZpZXdlclR5cGUgPT09ICdwZGYnIHx8IHZpZXdlclR5cGUgPT09ICdpbWFnZScpID8gaXNMb2FkaW5nIHx8ICFpc0NvbnRlbnRSZWFkeSA6IGlzTG9hZGluZ1wiXG4gICAgY2xhc3M9XCJhZGYtdmlld2VyLXJlbmRlci1tYWluLWxvYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJhZGYtdmlld2VyLXJlbmRlci1sYXlvdXQtY29udGVudCBhZGYtdmlld2VyX19mdWxsc2NyZWVuLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLXZpZXdlci1yZW5kZXItY29udGVudC1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtdmlld2VyLXJlbmRlcl9fbG9hZGluZy1zY3JlZW4gXCI+XG4gICAgICAgICAgICAgICAgPGgyPnt7ICdBREZfVklFV0VSLkxPQURJTkcnIHwgdHJhbnNsYXRlIH19PC9oMj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNwaW5uZXIgY2xhc3M9XCJhZGYtdmlld2VyLXJlbmRlcl9fbG9hZGluZy1zY3JlZW5fX3NwaW5uZXJcIi8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cIiFpc0xvYWRpbmdcIlxuICAgICBjbGFzcz1cImFkZi12aWV3ZXItcmVuZGVyLW1haW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLXZpZXdlci1yZW5kZXItbGF5b3V0LWNvbnRlbnQgYWRmLXZpZXdlcl9fZnVsbHNjcmVlbi1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi12aWV3ZXItcmVuZGVyLWNvbnRlbnQtY29udGFpbmVyXCIgW25nU3dpdGNoXT1cInZpZXdlclR5cGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidleHRlcm5hbCdcIj5cbiAgICAgICAgICAgICAgICA8YWRmLXByZXZpZXctZXh0ZW5zaW9uICpuZ0lmPVwiISFleHRlcm5hbFZpZXdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZXh0ZXJuYWxWaWV3ZXIuY29tcG9uZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt1cmxdPVwidXJsRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXh0ZW5zaW9uXT1cImV4dGVybmFsVmlld2VyLmZpbGVFeHRlbnNpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25vZGVJZF09XCJub2RlSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cImV4dGVybmFsVmlld2VyLmNvbXBvbmVudFwiIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3BkZidcIj5cbiAgICAgICAgICAgICAgICA8YWRmLXBkZi12aWV3ZXIgW3RodW1ibmFpbHNUZW1wbGF0ZV09XCJ0aHVtYm5haWxzVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWxsb3dUaHVtYm5haWxzXT1cImFsbG93VGh1bWJuYWlsc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtibG9iRmlsZV09XCJibG9iRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt1cmxGaWxlXT1cInVybEZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsZU5hbWVdPVwiaW50ZXJuYWxGaWxlTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjYWNoZVR5cGVdPVwiY2FjaGVUeXBlRm9yQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYWdlc0xvYWRlZCk9XCJpc0NvbnRlbnRSZWFkeSA9IHRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2UpPVwib25DbG9zZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIm9uVW5zdXBwb3J0ZWRGaWxlKClcIiAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidpbWFnZSdcIj5cbiAgICAgICAgICAgICAgICA8YWRmLWltZy12aWV3ZXIgW3VybEZpbGVdPVwidXJsRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWxlTmFtZV09XCJpbnRlcm5hbEZpbGVOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsbG93ZWRFZGl0QWN0aW9uc109XCJhbGxvd2VkRWRpdEFjdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYmxvYkZpbGVdPVwiYmxvYkZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwib25VbnN1cHBvcnRlZEZpbGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJtaXQpPVwib25TdWJtaXRGaWxlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW1hZ2VMb2FkZWQpPVwiaXNDb250ZW50UmVhZHkgPSB0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlzU2F2aW5nKT1cImlzU2F2aW5nLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbWVkaWEnXCI+XG4gICAgICAgICAgICAgICAgPGFkZi1tZWRpYS1wbGF5ZXIgaWQ9XCJhZGYtbWRlZGlhLXBsYXllclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VybEZpbGVdPVwidXJsRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYWNrc109XCJ0cmFja3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW1lVHlwZV09XCJtaW1lVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Jsb2JGaWxlXT1cImJsb2JGaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsZU5hbWVdPVwiaW50ZXJuYWxGaWxlTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIm9uVW5zdXBwb3J0ZWRGaWxlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYW5QbGF5KT1cImlzQ29udGVudFJlYWR5ID0gdHJ1ZVwiLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIj5cbiAgICAgICAgICAgICAgICA8YWRmLXR4dC12aWV3ZXIgW3VybEZpbGVdPVwidXJsRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtibG9iRmlsZV09XCJibG9iRmlsZVwiIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2N1c3RvbSdcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBleHQgb2Ygdmlld2VyRXh0ZW5zaW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICA8YWRmLXByZXZpZXctZXh0ZW5zaW9uICpuZ0lmPVwiY2hlY2tFeHRlbnNpb25zKGV4dC5maWxlRXh0ZW5zaW9uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImV4dC5jb21wb25lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt1cmxdPVwidXJsRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4dGVuc2lvbl09XCJleHRlbnNpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtub2RlSWRdPVwibm9kZUlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiZXh0LmNvbXBvbmVudFwiIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBleHRlbnNpb25UZW1wbGF0ZSBvZiBleHRlbnNpb25UZW1wbGF0ZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJleHRlbnNpb25UZW1wbGF0ZS5pc1Zpc2libGVcIiBjbGFzcz1cImFkZi12aWV3ZXItcmVuZGVyLWN1c3RvbS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiZXh0ZW5zaW9uVGVtcGxhdGUudGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHVybEZpbGU6IHVybEZpbGUsIGV4dGVuc2lvbjogZXh0ZW5zaW9uIH1cIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICAgIDxhZGYtdmlld2VyLXVua25vd24tZm9ybWF0IFtjdXN0b21FcnJvcl09XCJjdXN0b21FcnJvclwiLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXdlclRlbXBsYXRlRXh0ZW5zaW9uc1wiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ2aWV3ZXJUZW1wbGF0ZUV4dGVuc2lvbnNcIiBbbmdUZW1wbGF0ZU91dGxldEluamVjdG9yXT1cImluamVjdG9yXCIgLz5cbjwvbmctY29udGFpbmVyPlxuIl19
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLXJlbmRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL3ZpZXdlci1yZW5kZXIvdmlld2VyLXJlbmRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL3ZpZXdlci1yZW5kZXIvdmlld2VyLXJlbmRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQXNCLE1BQU0sMEJBQTBCLENBQUM7QUFDckcsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hF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aEIsc0JBQXNCLDhGQUN0QixnQkFBZ0IsMktBQ2hCLE9BQU8sbUhBQ1AsZUFBZTs7MkZBSVYscUJBQXFCO2tCQXpCakMsU0FBUzsrQkFDSSxtQkFBbUIsY0FDakIsSUFBSSxRQUdWLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLGlCQUNyQixpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCO3dCQUNMLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4QixRQUFRO3dCQUNSLFlBQVk7d0JBQ1osSUFBSTt3QkFDSixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3dCQUN0QixnQkFBZ0I7d0JBQ2hCLE9BQU87d0JBQ1AsZUFBZTtxQkFDbEIsYUFDVSxDQUFDLGVBQWUsQ0FBQztxS0FRNUIsT0FBTztzQkFETixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBU04sa0JBQWtCO3NCQURqQixLQUFLO2dCQVFOLE1BQU07c0JBREwsS0FBSztnQkFLTixNQUFNO3NCQURMLEtBQUs7Z0JBS04sd0JBQXdCO3NCQUR2QixLQUFLO2dCQUtOLFdBQVc7c0JBRFYsS0FBSztnQkFLTixlQUFlO3NCQURkLE1BQU07Z0JBS1AsVUFBVTtzQkFEVCxNQUFNO2dCQUtQLEtBQUs7c0JBREosTUFBTTtnQkFLUCxRQUFRO3NCQURQLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEFwcEV4dGVuc2lvblNlcnZpY2UsIEV4dGVuc2lvbnNNb2R1bGUsIFZpZXdlckV4dGVuc2lvblJlZiB9IGZyb20gJ0BhbGZyZXNjby9hZGYtZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBOZ0Zvck9mLCBOZ0lmLCBOZ1N3aXRjaCwgTmdTd2l0Y2hDYXNlLCBOZ1N3aXRjaERlZmF1bHQsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFRyYWNrIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3ZpZXdlci5tb2RlbCc7XG5pbXBvcnQgeyBWaWV3VXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92aWV3LXV0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBJbWdWaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuLi9pbWctdmlld2VyL2ltZy12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1lZGlhUGxheWVyQ29tcG9uZW50IH0gZnJvbSAnLi4vbWVkaWEtcGxheWVyL21lZGlhLXBsYXllci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRmVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vcGRmLXZpZXdlci9wZGYtdmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUeHRWaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuLi90eHQtdmlld2VyL3R4dC12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFVua25vd25Gb3JtYXRDb21wb25lbnQgfSBmcm9tICcuLi91bmtub3duLWZvcm1hdC91bmtub3duLWZvcm1hdC5jb21wb25lbnQnO1xuXG50eXBlIFZpZXdlclR5cGUgPSAnbWVkaWEnIHwgJ2ltYWdlJyB8ICdwZGYnIHwgJ3Vua25vd24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi12aWV3ZXItcmVuZGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi92aWV3ZXItcmVuZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi92aWV3ZXItcmVuZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi12aWV3ZXItcmVuZGVyJyB9LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICAgICAgTmdTd2l0Y2gsXG4gICAgICAgIE5nU3dpdGNoQ2FzZSxcbiAgICAgICAgTmdJZixcbiAgICAgICAgUGRmVmlld2VyQ29tcG9uZW50LFxuICAgICAgICBJbWdWaWV3ZXJDb21wb25lbnQsXG4gICAgICAgIE1lZGlhUGxheWVyQ29tcG9uZW50LFxuICAgICAgICBUeHRWaWV3ZXJDb21wb25lbnQsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIFVua25vd25Gb3JtYXRDb21wb25lbnQsXG4gICAgICAgIEV4dGVuc2lvbnNNb2R1bGUsXG4gICAgICAgIE5nRm9yT2YsXG4gICAgICAgIE5nU3dpdGNoRGVmYXVsdFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbVmlld1V0aWxTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBWaWV3ZXJSZW5kZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICogSWYgeW91IHdhbnQgdG8gbG9hZCBhbiBleHRlcm5hbCBmaWxlIHRoYXQgZG9lcyBub3QgY29tZSBmcm9tIEFDUyB5b3VcbiAgICAgKiBjYW4gdXNlIHRoaXMgVVJMIHRvIHNwZWNpZnkgd2hlcmUgdG8gbG9hZCB0aGUgZmlsZSBmcm9tLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdXJsRmlsZSA9ICcnO1xuXG4gICAgLyoqIExvYWRzIGEgQmxvYiBGaWxlICovXG4gICAgQElucHV0KClcbiAgICBibG9iRmlsZTogQmxvYjtcblxuICAgIC8qKiBUb2dnbGVzIHRoZSAnRnVsbCBTY3JlZW4nIGZlYXR1cmUuICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd0Z1bGxTY3JlZW4gPSB0cnVlO1xuXG4gICAgLyoqIFRvZ2dsZXMgUERGIHRodW1ibmFpbHMuICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd1RodW1ibmFpbHMgPSB0cnVlO1xuXG4gICAgLyoqIFRoZSB0ZW1wbGF0ZSBmb3IgdGhlIHBkZiB0aHVtYm5haWxzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGh1bWJuYWlsc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcblxuICAgIC8qKiBNSU1FIHR5cGUgb2YgdGhlIGZpbGUgY29udGVudCAod2hlbiBub3QgZGV0ZXJtaW5lZCBieSB0aGUgZmlsZW5hbWUgZXh0ZW5zaW9uKS4gKi9cbiAgICBASW5wdXQoKVxuICAgIG1pbWVUeXBlOiBzdHJpbmc7XG5cbiAgICAvKiogT3ZlcnJpZGUgQ29udGVudCBmaWxlbmFtZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZpbGVOYW1lOiBzdHJpbmc7XG5cbiAgICAvKiogT3ZlcnJpZGUgbG9hZGluZyBzdGF0dXMgKi9cbiAgICBASW5wdXQoKVxuICAgIGlzTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgLyoqIEVuYWJsZSB3aGVuIHdoZXJlIGlzIHBvc3NpYmxlIHRoZSBlZGl0aW5nIGZ1bmN0aW9uYWxpdGllcyAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlYWRPbmx5ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIENvbnRyb2xzIHdoaWNoIGFjdGlvbnMgYXJlIGVuYWJsZWQgaW4gdGhlIHZpZXdlci5cbiAgICAgKiBFeGFtcGxlOlxuICAgICAqIHsgcm90YXRlOiB0cnVlLCBjcm9wOiBmYWxzZSB9IHdpbGwgZW5hYmxlIHJvdGF0aW9uIGJ1dCBkaXNhYmxlIGNyb3BwaW5nLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dlZEVkaXRBY3Rpb25zOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHtcbiAgICAgICAgcm90YXRlOiB0cnVlLFxuICAgICAgICBjcm9wOiB0cnVlXG4gICAgfTtcblxuICAgIC8qKiBtZWRpYSBzdWJ0aXRsZXMgZm9yIHRoZSBtZWRpYSBwbGF5ZXIqL1xuICAgIEBJbnB1dCgpXG4gICAgdHJhY2tzOiBUcmFja1tdID0gW107XG5cbiAgICAvKiogSWRlbnRpZmllciBvZiBhIG5vZGUgdGhhdCBpcyBvcGVuZWQgYnkgdGhlIHZpZXdlci4gKi9cbiAgICBASW5wdXQoKVxuICAgIG5vZGVJZDogc3RyaW5nID0gbnVsbDtcblxuICAgIC8qKiBUZW1wbGF0ZSBjb250YWluaW5nIFZpZXdlckV4dGVuc2lvbkRpcmVjdGl2ZSBpbnN0YW5jZXMgcHJvdmlkaW5nIGRpZmZlcmVudCB2aWV3ZXIgZXh0ZW5zaW9ucyBiYXNlZCBvbiBzdXBwb3J0ZWQgZmlsZSBleHRlbnNpb24uICovXG4gICAgQElucHV0KClcbiAgICB2aWV3ZXJUZW1wbGF0ZUV4dGVuc2lvbnM6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQ3VzdG9tIGVycm9yIG1lc3NhZ2UgdG8gYmUgZGlzcGxheWVkIGluIHRoZSB2aWV3ZXIuICovXG4gICAgQElucHV0KClcbiAgICBjdXN0b21FcnJvcjogc3RyaW5nID0gdW5kZWZpbmVkO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgZmlsZW5hbWUgZXh0ZW5zaW9uIGNoYW5nZXMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZXh0ZW5zaW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbWcgaXMgc3VibWl0dGVkIGluIHRoZSBpbWcgdmlld2VyLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHN1Ym1pdEZpbGUgPSBuZXcgRXZlbnRFbWl0dGVyPEJsb2I+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbWcgaXMgc3VibWl0dGVkIGluIHRoZSBpbWcgdmlld2VyLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW1nIGlzIHNhdmluZy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBpc1NhdmluZyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIGV4dGVuc2lvblRlbXBsYXRlczogeyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjsgaXNWaXNpYmxlOiBib29sZWFuIH1bXSA9IFtdO1xuICAgIGV4dGVuc2lvbnNTdXBwb3J0ZWRCeVRlbXBsYXRlczogc3RyaW5nW10gPSBbXTtcbiAgICBleHRlbnNpb246IHN0cmluZztcbiAgICBpbnRlcm5hbEZpbGVOYW1lOiBzdHJpbmc7XG4gICAgdmlld2VyVHlwZTogVmlld2VyVHlwZSA9ICd1bmtub3duJztcbiAgICBpc0NvbnRlbnRSZWFkeSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGxpc3Qgb2YgdGhlIGFjdGl2ZSBWaWV3ZXIgY29udGVudCBleHRlbnNpb25zLlxuICAgICAqXG4gICAgICogQHJldHVybnMgbGlzdCBvZiBleHRlbnNpb24gcmVmZXJlbmNlc1xuICAgICAqL1xuICAgIGdldCB2aWV3ZXJFeHRlbnNpb25zKCk6IFZpZXdlckV4dGVuc2lvblJlZltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5zaW9uU2VydmljZS5nZXRWaWV3ZXJFeHRlbnNpb25zKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvdmlkZXMgYSBsaXN0IG9mIGZpbGUgZXh0ZW5zaW9ucyBzdXBwb3J0ZWQgYnkgZXh0ZXJuYWwgcGx1Z2lucy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGxpc3Qgb2YgZXh0ZW5zaW9uc1xuICAgICAqL1xuICAgIGdldCBleHRlcm5hbEV4dGVuc2lvbnMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gdGhpcy52aWV3ZXJFeHRlbnNpb25zLm1hcCgoZXh0KSA9PiBleHQuZmlsZUV4dGVuc2lvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZXh0ZXJuYWxWaWV3ZXI6IFZpZXdlckV4dGVuc2lvblJlZjtcbiAgICBnZXQgZXh0ZXJuYWxWaWV3ZXIoKTogVmlld2VyRXh0ZW5zaW9uUmVmIHtcbiAgICAgICAgaWYgKCF0aGlzLl9leHRlcm5hbFZpZXdlcikge1xuICAgICAgICAgICAgdGhpcy5fZXh0ZXJuYWxWaWV3ZXIgPSB0aGlzLnZpZXdlckV4dGVuc2lvbnMuZmluZCgoZXh0KSA9PiBleHQuZmlsZUV4dGVuc2lvbiA9PT0gJyonKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9leHRlcm5hbFZpZXdlcjtcbiAgICB9XG5cbiAgICBjYWNoZVR5cGVGb3JDb250ZW50ID0gJ25vLWNhY2hlJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHZpZXdVdGlsU2VydmljZTogVmlld1V0aWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGV4dGVuc2lvblNlcnZpY2U6IEFwcEV4dGVuc2lvblNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvclxuICAgICkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmNhY2hlVHlwZUZvckNvbnRlbnQgPSAnbm8tY2FjaGUnO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUxvYWRpbmdTdGF0ZSgpO1xuXG4gICAgICAgIGlmICh0aGlzLmJsb2JGaWxlKSB7XG4gICAgICAgICAgICB0aGlzLnNldFVwQmxvYkRhdGEoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVybEZpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VXBVcmxGaWxlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZUxvYWRpbmdTdGF0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlTG9hZGluZ1N0YXRlKCkge1xuICAgICAgICB0aGlzLmlzQ29udGVudFJlYWR5ID0gISh0aGlzLnZpZXdlclR5cGUgPT09ICdtZWRpYScgfHwgdGhpcy52aWV3ZXJUeXBlID09PSAncGRmJyB8fCB0aGlzLnZpZXdlclR5cGUgPT09ICdpbWFnZScpO1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9ICF0aGlzLmJsb2JGaWxlICYmICF0aGlzLnVybEZpbGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRVcEJsb2JEYXRhKCkge1xuICAgICAgICB0aGlzLmludGVybmFsRmlsZU5hbWUgPSB0aGlzLmZpbGVOYW1lO1xuICAgICAgICB0aGlzLnZpZXdlclR5cGUgPSB0aGlzLnZpZXdVdGlsU2VydmljZS5nZXRWaWV3ZXJUeXBlQnlNaW1lVHlwZSh0aGlzLmJsb2JGaWxlLnR5cGUpIGFzIFZpZXdlclR5cGU7XG5cbiAgICAgICAgdGhpcy5leHRlbnNpb25DaGFuZ2UuZW1pdCh0aGlzLmJsb2JGaWxlLnR5cGUpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvcCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VXBVcmxGaWxlKCkge1xuICAgICAgICB0aGlzLmludGVybmFsRmlsZU5hbWUgPSB0aGlzLmZpbGVOYW1lID8gdGhpcy5maWxlTmFtZSA6IHRoaXMudmlld1V0aWxTZXJ2aWNlLmdldEZpbGVuYW1lRnJvbVVybCh0aGlzLnVybEZpbGUpO1xuICAgICAgICB0aGlzLmV4dGVuc2lvbiA9IHRoaXMudmlld1V0aWxTZXJ2aWNlLmdldEZpbGVFeHRlbnNpb24odGhpcy5pbnRlcm5hbEZpbGVOYW1lKTtcbiAgICAgICAgdGhpcy52aWV3ZXJUeXBlID0gdGhpcy52aWV3VXRpbFNlcnZpY2UuZ2V0Vmlld2VyVHlwZSh0aGlzLmV4dGVuc2lvbiwgdGhpcy5taW1lVHlwZSwgdGhpcy5leHRlbnNpb25zU3VwcG9ydGVkQnlUZW1wbGF0ZXMpIGFzIFZpZXdlclR5cGU7XG5cbiAgICAgICAgdGhpcy5leHRlbnNpb25DaGFuZ2UuZW1pdCh0aGlzLmV4dGVuc2lvbik7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9wKCk7XG4gICAgfVxuXG4gICAgc2Nyb2xsVG9wKCkge1xuICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMSk7XG4gICAgfVxuXG4gICAgY2hlY2tFeHRlbnNpb25zKGV4dGVuc2lvbkFsbG93ZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBleHRlbnNpb25BbGxvd2VkID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCkgPT09IGV4dGVuc2lvbkFsbG93ZWQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgfSBlbHNlIGlmIChleHRlbnNpb25BbGxvd2VkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiBleHRlbnNpb25BbGxvd2VkLmZpbmQoKGN1cnJlbnRFeHRlbnNpb24pID0+IHRoaXMuZXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCkgPT09IGN1cnJlbnRFeHRlbnNpb24udG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblN1Ym1pdEZpbGUobmV3SW1hZ2VCbG9iOiBCbG9iKSB7XG4gICAgICAgIHRoaXMuc3VibWl0RmlsZS5uZXh0KG5ld0ltYWdlQmxvYik7XG4gICAgfVxuXG4gICAgb25VbnN1cHBvcnRlZEZpbGUoKSB7XG4gICAgICAgIHRoaXMudmlld2VyVHlwZSA9ICd1bmtub3duJztcbiAgICB9XG5cbiAgICBvbkNsb3NlKCkge1xuICAgICAgICB0aGlzLmNsb3NlLm5leHQodHJ1ZSk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgICpuZ0lmPVwidmlld2VyVHlwZSA9PT0gJ21lZGlhJyB8fCB2aWV3ZXJUeXBlID09PSAncGRmJyB8fCB2aWV3ZXJUeXBlID09PSAnaW1hZ2UnID8gKGlzTG9hZGluZyB8fCAhaXNDb250ZW50UmVhZHkpIDogaXNMb2FkaW5nXCJcbiAgICBjbGFzcz1cImFkZi12aWV3ZXItcmVuZGVyLW1haW4tbG9hZGVyXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLXZpZXdlci1yZW5kZXItbGF5b3V0LWNvbnRlbnQgYWRmLXZpZXdlcl9fZnVsbHNjcmVlbi1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi12aWV3ZXItcmVuZGVyLWNvbnRlbnQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLXZpZXdlci1yZW5kZXJfX2xvYWRpbmctc2NyZWVuXCI+XG4gICAgICAgICAgICAgICAgPGgyPnt7ICdBREZfVklFV0VSLkxPQURJTkcnIHwgdHJhbnNsYXRlIH19PC9oMj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNwaW5uZXIgY2xhc3M9XCJhZGYtdmlld2VyLXJlbmRlcl9fbG9hZGluZy1zY3JlZW5fX3NwaW5uZXJcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXZcbiAgICBbaGlkZGVuXT1cInZpZXdlclR5cGUgPT09ICdtZWRpYScgfHwgdmlld2VyVHlwZSA9PT0gJ3BkZicgfHwgdmlld2VyVHlwZSA9PT0gJ2ltYWdlJyA/IChpc0xvYWRpbmcgfHwgIWlzQ29udGVudFJlYWR5KSA6IGlzTG9hZGluZ1wiXG4gICAgY2xhc3M9XCJhZGYtdmlld2VyLXJlbmRlci1tYWluXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLXZpZXdlci1yZW5kZXItbGF5b3V0LWNvbnRlbnQgYWRmLXZpZXdlcl9fZnVsbHNjcmVlbi1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi12aWV3ZXItcmVuZGVyLWNvbnRlbnQtY29udGFpbmVyXCIgW25nU3dpdGNoXT1cInZpZXdlclR5cGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidleHRlcm5hbCdcIj5cbiAgICAgICAgICAgICAgICA8YWRmLXByZXZpZXctZXh0ZW5zaW9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiISFleHRlcm5hbFZpZXdlclwiXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJleHRlcm5hbFZpZXdlci5jb21wb25lbnRcIlxuICAgICAgICAgICAgICAgICAgICBbdXJsXT1cInVybEZpbGVcIlxuICAgICAgICAgICAgICAgICAgICBbZXh0ZW5zaW9uXT1cImV4dGVybmFsVmlld2VyLmZpbGVFeHRlbnNpb25cIlxuICAgICAgICAgICAgICAgICAgICBbbm9kZUlkXT1cIm5vZGVJZFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCJleHRlcm5hbFZpZXdlci5jb21wb25lbnRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3BkZidcIj5cbiAgICAgICAgICAgICAgICA8YWRmLXBkZi12aWV3ZXJcbiAgICAgICAgICAgICAgICAgICAgW3RodW1ibmFpbHNUZW1wbGF0ZV09XCJ0aHVtYm5haWxzVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbYWxsb3dUaHVtYm5haWxzXT1cImFsbG93VGh1bWJuYWlsc1wiXG4gICAgICAgICAgICAgICAgICAgIFtibG9iRmlsZV09XCJibG9iRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgIFt1cmxGaWxlXT1cInVybEZpbGVcIlxuICAgICAgICAgICAgICAgICAgICBbZmlsZU5hbWVdPVwiaW50ZXJuYWxGaWxlTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjYWNoZVR5cGVdPVwiY2FjaGVUeXBlRm9yQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgIChwYWdlc0xvYWRlZCk9XCJpc0NvbnRlbnRSZWFkeSA9IHRydWVcIlxuICAgICAgICAgICAgICAgICAgICAoY2xvc2UpPVwib25DbG9zZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIm9uVW5zdXBwb3J0ZWRGaWxlKClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ltYWdlJ1wiPlxuICAgICAgICAgICAgICAgIDxhZGYtaW1nLXZpZXdlclxuICAgICAgICAgICAgICAgICAgICBbdXJsRmlsZV09XCJ1cmxGaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgW2ZpbGVOYW1lXT1cImludGVybmFsRmlsZU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbYWxsb3dlZEVkaXRBY3Rpb25zXT1cImFsbG93ZWRFZGl0QWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIFtibG9iRmlsZV09XCJibG9iRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJvblVuc3VwcG9ydGVkRmlsZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgKHN1Ym1pdCk9XCJvblN1Ym1pdEZpbGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChpbWFnZUxvYWRlZCk9XCJpc0NvbnRlbnRSZWFkeSA9IHRydWVcIlxuICAgICAgICAgICAgICAgICAgICAoaXNTYXZpbmcpPVwiaXNTYXZpbmcuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtZWRpYSdcIj5cbiAgICAgICAgICAgICAgICA8YWRmLW1lZGlhLXBsYXllclxuICAgICAgICAgICAgICAgICAgICBpZD1cImFkZi1tZGVkaWEtcGxheWVyXCJcbiAgICAgICAgICAgICAgICAgICAgW3VybEZpbGVdPVwidXJsRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgIFt0cmFja3NdPVwidHJhY2tzXCJcbiAgICAgICAgICAgICAgICAgICAgW21pbWVUeXBlXT1cIm1pbWVUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgW2Jsb2JGaWxlXT1cImJsb2JGaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZpbGVOYW1lXT1cImludGVybmFsRmlsZU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwib25VbnN1cHBvcnRlZEZpbGUoKVwiXG4gICAgICAgICAgICAgICAgICAgIChjYW5QbGF5KT1cImlzQ29udGVudFJlYWR5ID0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIj5cbiAgICAgICAgICAgICAgICA8YWRmLXR4dC12aWV3ZXIgW3VybEZpbGVdPVwidXJsRmlsZVwiIFtibG9iRmlsZV09XCJibG9iRmlsZVwiIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2N1c3RvbSdcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBleHQgb2Ygdmlld2VyRXh0ZW5zaW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICA8YWRmLXByZXZpZXctZXh0ZW5zaW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNoZWNrRXh0ZW5zaW9ucyhleHQuZmlsZUV4dGVuc2lvbilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImV4dC5jb21wb25lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3VybF09XCJ1cmxGaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtleHRlbnNpb25dPVwiZXh0ZW5zaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtub2RlSWRdPVwibm9kZUlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCJleHQuY29tcG9uZW50XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGV4dGVuc2lvblRlbXBsYXRlIG9mIGV4dGVuc2lvblRlbXBsYXRlc1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImV4dGVuc2lvblRlbXBsYXRlLmlzVmlzaWJsZVwiIGNsYXNzPVwiYWRmLXZpZXdlci1yZW5kZXItY3VzdG9tLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImV4dGVuc2lvblRlbXBsYXRlLnRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB1cmxGaWxlOiB1cmxGaWxlLCBleHRlbnNpb246IGV4dGVuc2lvbiB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICAgICAgPGFkZi12aWV3ZXItdW5rbm93bi1mb3JtYXQgW2N1c3RvbUVycm9yXT1cImN1c3RvbUVycm9yXCIgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXdlclRlbXBsYXRlRXh0ZW5zaW9uc1wiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ2aWV3ZXJUZW1wbGF0ZUV4dGVuc2lvbnNcIiBbbmdUZW1wbGF0ZU91dGxldEluamVjdG9yXT1cImluamVjdG9yXCIgLz5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -5632,14 +5632,18 @@ class ViewerRenderComponent {
5632
5632
  this.cacheTypeForContent = 'no-cache';
5633
5633
  }
5634
5634
  ngOnChanges() {
5635
- this.isContentReady = false;
5636
- this.isLoading = !this.blobFile && !this.urlFile;
5635
+ this.updateLoadingState();
5637
5636
  if (this.blobFile) {
5638
5637
  this.setUpBlobData();
5639
5638
  }
5640
5639
  else if (this.urlFile) {
5641
5640
  this.setUpUrlFile();
5642
5641
  }
5642
+ this.updateLoadingState();
5643
+ }
5644
+ updateLoadingState() {
5645
+ this.isContentReady = !(this.viewerType === 'media' || this.viewerType === 'pdf' || this.viewerType === 'image');
5646
+ this.isLoading = !this.blobFile && !this.urlFile;
5643
5647
  }
5644
5648
  setUpBlobData() {
5645
5649
  this.internalFileName = this.fileName;
@@ -5675,7 +5679,7 @@ class ViewerRenderComponent {
5675
5679
  this.close.next(true);
5676
5680
  }
5677
5681
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ViewerRenderComponent, deps: [{ token: ViewUtilService }, { token: i2$2.AppExtensionService }, { token: i1$5.MatDialog }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
5678
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: ViewerRenderComponent, isStandalone: true, selector: "adf-viewer-render", inputs: { urlFile: "urlFile", blobFile: "blobFile", allowFullScreen: "allowFullScreen", allowThumbnails: "allowThumbnails", thumbnailsTemplate: "thumbnailsTemplate", mimeType: "mimeType", fileName: "fileName", isLoading: "isLoading", readOnly: "readOnly", allowedEditActions: "allowedEditActions", tracks: "tracks", nodeId: "nodeId", viewerTemplateExtensions: "viewerTemplateExtensions", customError: "customError" }, outputs: { extensionChange: "extensionChange", submitFile: "submitFile", close: "close", isSaving: "isSaving" }, host: { classAttribute: "adf-viewer-render" }, providers: [ViewUtilService], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"(viewerType === 'media' || viewerType === 'pdf' || viewerType === 'image') ? isLoading || !isContentReady : isLoading\"\n class=\"adf-viewer-render-main-loader\">\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\">\n <div class=\"adf-viewer-render__loading-screen \">\n <h2>{{ 'ADF_VIEWER.LOADING' | translate }}</h2>\n <div>\n <mat-spinner class=\"adf-viewer-render__loading-screen__spinner\"/>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"!isLoading\"\n class=\"adf-viewer-render-main\">\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\" [ngSwitch]=\"viewerType\">\n <ng-container *ngSwitchCase=\"'external'\">\n <adf-preview-extension *ngIf=\"!!externalViewer\"\n [id]=\"externalViewer.component\"\n [url]=\"urlFile\"\n [extension]=\"externalViewer.fileExtension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"externalViewer.component\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'pdf'\">\n <adf-pdf-viewer [thumbnailsTemplate]=\"thumbnailsTemplate\"\n [allowThumbnails]=\"allowThumbnails\"\n [blobFile]=\"blobFile\"\n [urlFile]=\"urlFile\"\n [fileName]=\"internalFileName\"\n [cacheType]=\"cacheTypeForContent\"\n (pagesLoaded)=\"isContentReady = true\"\n (close)=\"onClose()\"\n (error)=\"onUnsupportedFile()\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'image'\">\n <adf-img-viewer [urlFile]=\"urlFile\"\n [readOnly]=\"readOnly\"\n [fileName]=\"internalFileName\"\n [allowedEditActions]=\"allowedEditActions\"\n [blobFile]=\"blobFile\"\n (error)=\"onUnsupportedFile()\"\n (submit)=\"onSubmitFile($event)\"\n (imageLoaded)=\"isContentReady = true\"\n (isSaving)=\"isSaving.emit($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'media'\">\n <adf-media-player id=\"adf-mdedia-player\"\n [urlFile]=\"urlFile\"\n [tracks]=\"tracks\"\n [mimeType]=\"mimeType\"\n [blobFile]=\"blobFile\"\n [fileName]=\"internalFileName\"\n (error)=\"onUnsupportedFile()\"\n (canPlay)=\"isContentReady = true\"/>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'text'\">\n <adf-txt-viewer [urlFile]=\"urlFile\"\n [blobFile]=\"blobFile\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'custom'\">\n <ng-container *ngFor=\"let ext of viewerExtensions\">\n <adf-preview-extension *ngIf=\"checkExtensions(ext.fileExtension)\"\n [id]=\"ext.component\"\n [url]=\"urlFile\"\n [extension]=\"extension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"ext.component\" />\n </ng-container>\n\n <ng-container *ngFor=\"let extensionTemplate of extensionTemplates\">\n <span *ngIf=\"extensionTemplate.isVisible\" class=\"adf-viewer-render-custom-content\">\n <ng-template [ngTemplateOutlet]=\"extensionTemplate.template\"\n [ngTemplateOutletContext]=\"{ urlFile: urlFile, extension: extension }\" />\n </span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <adf-viewer-unknown-format [customError]=\"customError\"/>\n </ng-container>\n </div>\n </div>\n</div>\n<ng-container *ngIf=\"viewerTemplateExtensions\">\n <ng-template [ngTemplateOutlet]=\"viewerTemplateExtensions\" [ngTemplateOutletInjector]=\"injector\" />\n</ng-container>\n", styles: [".adf-full-screen,.adf-viewer-render-layout-content{width:100%;height:100%;background-color:var(--adf-theme-background-card-color)}.adf-viewer-render-main-loader{position:fixed;top:64px;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center}.adf-viewer-render-main{width:0;order:1;flex:1 1 auto}.adf-viewer-render-content-container{display:flex;justify-content:center}.adf-viewer-render-layout-content{position:relative;overflow:hidden;z-index:1;background-color:var(--theme-background-color);display:flex;flex-flow:row wrap;flex:1}.adf-viewer-render-layout-content>div{display:flex;flex-flow:row wrap;margin:0 auto;align-items:stretch;height:93vh;width:100%}.adf-viewer-render-overlay-container .adf-viewer-render-content{position:fixed;top:0;left:0;z-index:1000}.adf-viewer-render__loading-screen{display:flex;flex:1 1 auto;align-items:center;justify-content:center;flex-direction:column;height:85vh}.adf-viewer-render__loading-screen__spinner{margin:0 auto}.adf-viewer-render-custom-content{width:100vw}.adf-viewer-render-unknown-content{align-items:center;display:flex}.adf-viewer-render-pdf{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i3$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdfViewerComponent, selector: "adf-pdf-viewer", inputs: ["urlFile", "blobFile", "fileName", "showToolbar", "allowThumbnails", "thumbnailsTemplate", "cacheType"], outputs: ["rendered", "error", "close", "pagesLoaded"] }, { kind: "component", type: ImgViewerComponent, selector: "adf-img-viewer", inputs: ["showToolbar", "readOnly", "allowedEditActions", "urlFile", "blobFile", "fileName"], outputs: ["error", "submit", "isSaving", "imageLoaded"] }, { kind: "component", type: MediaPlayerComponent, selector: "adf-media-player", inputs: ["urlFile", "blobFile", "mimeType", "fileName", "tracks"], outputs: ["error", "canPlay"] }, { kind: "component", type: TxtViewerComponent, selector: "adf-txt-viewer", inputs: ["urlFile", "blobFile"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: UnknownFormatComponent, selector: "adf-viewer-unknown-format", inputs: ["customError"] }, { kind: "ngmodule", type: ExtensionsModule }, { kind: "component", type: i2$2.PreviewExtensionComponent, selector: "adf-preview-extension", inputs: ["id", "nodeId", "url", "extension"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }], encapsulation: i0.ViewEncapsulation.None }); }
5682
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: ViewerRenderComponent, isStandalone: true, selector: "adf-viewer-render", inputs: { urlFile: "urlFile", blobFile: "blobFile", allowFullScreen: "allowFullScreen", allowThumbnails: "allowThumbnails", thumbnailsTemplate: "thumbnailsTemplate", mimeType: "mimeType", fileName: "fileName", isLoading: "isLoading", readOnly: "readOnly", allowedEditActions: "allowedEditActions", tracks: "tracks", nodeId: "nodeId", viewerTemplateExtensions: "viewerTemplateExtensions", customError: "customError" }, outputs: { extensionChange: "extensionChange", submitFile: "submitFile", close: "close", isSaving: "isSaving" }, host: { classAttribute: "adf-viewer-render" }, providers: [ViewUtilService], usesOnChanges: true, ngImport: i0, template: "<div\n *ngIf=\"viewerType === 'media' || viewerType === 'pdf' || viewerType === 'image' ? (isLoading || !isContentReady) : isLoading\"\n class=\"adf-viewer-render-main-loader\"\n>\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\">\n <div class=\"adf-viewer-render__loading-screen\">\n <h2>{{ 'ADF_VIEWER.LOADING' | translate }}</h2>\n <div>\n <mat-spinner class=\"adf-viewer-render__loading-screen__spinner\" />\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div\n [hidden]=\"viewerType === 'media' || viewerType === 'pdf' || viewerType === 'image' ? (isLoading || !isContentReady) : isLoading\"\n class=\"adf-viewer-render-main\"\n>\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\" [ngSwitch]=\"viewerType\">\n <ng-container *ngSwitchCase=\"'external'\">\n <adf-preview-extension\n *ngIf=\"!!externalViewer\"\n [id]=\"externalViewer.component\"\n [url]=\"urlFile\"\n [extension]=\"externalViewer.fileExtension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"externalViewer.component\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'pdf'\">\n <adf-pdf-viewer\n [thumbnailsTemplate]=\"thumbnailsTemplate\"\n [allowThumbnails]=\"allowThumbnails\"\n [blobFile]=\"blobFile\"\n [urlFile]=\"urlFile\"\n [fileName]=\"internalFileName\"\n [cacheType]=\"cacheTypeForContent\"\n (pagesLoaded)=\"isContentReady = true\"\n (close)=\"onClose()\"\n (error)=\"onUnsupportedFile()\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'image'\">\n <adf-img-viewer\n [urlFile]=\"urlFile\"\n [readOnly]=\"readOnly\"\n [fileName]=\"internalFileName\"\n [allowedEditActions]=\"allowedEditActions\"\n [blobFile]=\"blobFile\"\n (error)=\"onUnsupportedFile()\"\n (submit)=\"onSubmitFile($event)\"\n (imageLoaded)=\"isContentReady = true\"\n (isSaving)=\"isSaving.emit($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'media'\">\n <adf-media-player\n id=\"adf-mdedia-player\"\n [urlFile]=\"urlFile\"\n [tracks]=\"tracks\"\n [mimeType]=\"mimeType\"\n [blobFile]=\"blobFile\"\n [fileName]=\"internalFileName\"\n (error)=\"onUnsupportedFile()\"\n (canPlay)=\"isContentReady = true\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'text'\">\n <adf-txt-viewer [urlFile]=\"urlFile\" [blobFile]=\"blobFile\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'custom'\">\n <ng-container *ngFor=\"let ext of viewerExtensions\">\n <adf-preview-extension\n *ngIf=\"checkExtensions(ext.fileExtension)\"\n [id]=\"ext.component\"\n [url]=\"urlFile\"\n [extension]=\"extension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"ext.component\"\n />\n </ng-container>\n\n <ng-container *ngFor=\"let extensionTemplate of extensionTemplates\">\n <span *ngIf=\"extensionTemplate.isVisible\" class=\"adf-viewer-render-custom-content\">\n <ng-template\n [ngTemplateOutlet]=\"extensionTemplate.template\"\n [ngTemplateOutletContext]=\"{ urlFile: urlFile, extension: extension }\"\n />\n </span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <adf-viewer-unknown-format [customError]=\"customError\" />\n </ng-container>\n </div>\n </div>\n</div>\n<ng-container *ngIf=\"viewerTemplateExtensions\">\n <ng-template [ngTemplateOutlet]=\"viewerTemplateExtensions\" [ngTemplateOutletInjector]=\"injector\" />\n</ng-container>\n", styles: [".adf-full-screen,.adf-viewer-render-layout-content{width:100%;height:100%;background-color:var(--adf-theme-background-card-color)}.adf-viewer-render-main-loader{position:fixed;top:64px;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center}.adf-viewer-render-main{width:0;order:1;flex:1 1 auto}.adf-viewer-render-content-container{display:flex;justify-content:center}.adf-viewer-render-layout-content{position:relative;overflow:hidden;z-index:1;background-color:var(--theme-background-color);display:flex;flex-flow:row wrap;flex:1}.adf-viewer-render-layout-content>div{display:flex;flex-flow:row wrap;margin:0 auto;align-items:stretch;height:93vh;width:100%}.adf-viewer-render-overlay-container .adf-viewer-render-content{position:fixed;top:0;left:0;z-index:1000}.adf-viewer-render__loading-screen{display:flex;flex:1 1 auto;align-items:center;justify-content:center;flex-direction:column;height:85vh}.adf-viewer-render__loading-screen__spinner{margin:0 auto}.adf-viewer-render-custom-content{width:100vw}.adf-viewer-render-unknown-content{align-items:center;display:flex}.adf-viewer-render-pdf{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i3$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdfViewerComponent, selector: "adf-pdf-viewer", inputs: ["urlFile", "blobFile", "fileName", "showToolbar", "allowThumbnails", "thumbnailsTemplate", "cacheType"], outputs: ["rendered", "error", "close", "pagesLoaded"] }, { kind: "component", type: ImgViewerComponent, selector: "adf-img-viewer", inputs: ["showToolbar", "readOnly", "allowedEditActions", "urlFile", "blobFile", "fileName"], outputs: ["error", "submit", "isSaving", "imageLoaded"] }, { kind: "component", type: MediaPlayerComponent, selector: "adf-media-player", inputs: ["urlFile", "blobFile", "mimeType", "fileName", "tracks"], outputs: ["error", "canPlay"] }, { kind: "component", type: TxtViewerComponent, selector: "adf-txt-viewer", inputs: ["urlFile", "blobFile"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: UnknownFormatComponent, selector: "adf-viewer-unknown-format", inputs: ["customError"] }, { kind: "ngmodule", type: ExtensionsModule }, { kind: "component", type: i2$2.PreviewExtensionComponent, selector: "adf-preview-extension", inputs: ["id", "nodeId", "url", "extension"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }], encapsulation: i0.ViewEncapsulation.None }); }
5679
5683
  }
5680
5684
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ViewerRenderComponent, decorators: [{
5681
5685
  type: Component,
@@ -5694,7 +5698,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
5694
5698
  ExtensionsModule,
5695
5699
  NgForOf,
5696
5700
  NgSwitchDefault
5697
- ], providers: [ViewUtilService], template: "<div *ngIf=\"(viewerType === 'media' || viewerType === 'pdf' || viewerType === 'image') ? isLoading || !isContentReady : isLoading\"\n class=\"adf-viewer-render-main-loader\">\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\">\n <div class=\"adf-viewer-render__loading-screen \">\n <h2>{{ 'ADF_VIEWER.LOADING' | translate }}</h2>\n <div>\n <mat-spinner class=\"adf-viewer-render__loading-screen__spinner\"/>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"!isLoading\"\n class=\"adf-viewer-render-main\">\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\" [ngSwitch]=\"viewerType\">\n <ng-container *ngSwitchCase=\"'external'\">\n <adf-preview-extension *ngIf=\"!!externalViewer\"\n [id]=\"externalViewer.component\"\n [url]=\"urlFile\"\n [extension]=\"externalViewer.fileExtension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"externalViewer.component\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'pdf'\">\n <adf-pdf-viewer [thumbnailsTemplate]=\"thumbnailsTemplate\"\n [allowThumbnails]=\"allowThumbnails\"\n [blobFile]=\"blobFile\"\n [urlFile]=\"urlFile\"\n [fileName]=\"internalFileName\"\n [cacheType]=\"cacheTypeForContent\"\n (pagesLoaded)=\"isContentReady = true\"\n (close)=\"onClose()\"\n (error)=\"onUnsupportedFile()\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'image'\">\n <adf-img-viewer [urlFile]=\"urlFile\"\n [readOnly]=\"readOnly\"\n [fileName]=\"internalFileName\"\n [allowedEditActions]=\"allowedEditActions\"\n [blobFile]=\"blobFile\"\n (error)=\"onUnsupportedFile()\"\n (submit)=\"onSubmitFile($event)\"\n (imageLoaded)=\"isContentReady = true\"\n (isSaving)=\"isSaving.emit($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'media'\">\n <adf-media-player id=\"adf-mdedia-player\"\n [urlFile]=\"urlFile\"\n [tracks]=\"tracks\"\n [mimeType]=\"mimeType\"\n [blobFile]=\"blobFile\"\n [fileName]=\"internalFileName\"\n (error)=\"onUnsupportedFile()\"\n (canPlay)=\"isContentReady = true\"/>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'text'\">\n <adf-txt-viewer [urlFile]=\"urlFile\"\n [blobFile]=\"blobFile\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'custom'\">\n <ng-container *ngFor=\"let ext of viewerExtensions\">\n <adf-preview-extension *ngIf=\"checkExtensions(ext.fileExtension)\"\n [id]=\"ext.component\"\n [url]=\"urlFile\"\n [extension]=\"extension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"ext.component\" />\n </ng-container>\n\n <ng-container *ngFor=\"let extensionTemplate of extensionTemplates\">\n <span *ngIf=\"extensionTemplate.isVisible\" class=\"adf-viewer-render-custom-content\">\n <ng-template [ngTemplateOutlet]=\"extensionTemplate.template\"\n [ngTemplateOutletContext]=\"{ urlFile: urlFile, extension: extension }\" />\n </span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <adf-viewer-unknown-format [customError]=\"customError\"/>\n </ng-container>\n </div>\n </div>\n</div>\n<ng-container *ngIf=\"viewerTemplateExtensions\">\n <ng-template [ngTemplateOutlet]=\"viewerTemplateExtensions\" [ngTemplateOutletInjector]=\"injector\" />\n</ng-container>\n", styles: [".adf-full-screen,.adf-viewer-render-layout-content{width:100%;height:100%;background-color:var(--adf-theme-background-card-color)}.adf-viewer-render-main-loader{position:fixed;top:64px;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center}.adf-viewer-render-main{width:0;order:1;flex:1 1 auto}.adf-viewer-render-content-container{display:flex;justify-content:center}.adf-viewer-render-layout-content{position:relative;overflow:hidden;z-index:1;background-color:var(--theme-background-color);display:flex;flex-flow:row wrap;flex:1}.adf-viewer-render-layout-content>div{display:flex;flex-flow:row wrap;margin:0 auto;align-items:stretch;height:93vh;width:100%}.adf-viewer-render-overlay-container .adf-viewer-render-content{position:fixed;top:0;left:0;z-index:1000}.adf-viewer-render__loading-screen{display:flex;flex:1 1 auto;align-items:center;justify-content:center;flex-direction:column;height:85vh}.adf-viewer-render__loading-screen__spinner{margin:0 auto}.adf-viewer-render-custom-content{width:100vw}.adf-viewer-render-unknown-content{align-items:center;display:flex}.adf-viewer-render-pdf{display:contents}\n"] }]
5701
+ ], providers: [ViewUtilService], template: "<div\n *ngIf=\"viewerType === 'media' || viewerType === 'pdf' || viewerType === 'image' ? (isLoading || !isContentReady) : isLoading\"\n class=\"adf-viewer-render-main-loader\"\n>\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\">\n <div class=\"adf-viewer-render__loading-screen\">\n <h2>{{ 'ADF_VIEWER.LOADING' | translate }}</h2>\n <div>\n <mat-spinner class=\"adf-viewer-render__loading-screen__spinner\" />\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div\n [hidden]=\"viewerType === 'media' || viewerType === 'pdf' || viewerType === 'image' ? (isLoading || !isContentReady) : isLoading\"\n class=\"adf-viewer-render-main\"\n>\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\" [ngSwitch]=\"viewerType\">\n <ng-container *ngSwitchCase=\"'external'\">\n <adf-preview-extension\n *ngIf=\"!!externalViewer\"\n [id]=\"externalViewer.component\"\n [url]=\"urlFile\"\n [extension]=\"externalViewer.fileExtension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"externalViewer.component\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'pdf'\">\n <adf-pdf-viewer\n [thumbnailsTemplate]=\"thumbnailsTemplate\"\n [allowThumbnails]=\"allowThumbnails\"\n [blobFile]=\"blobFile\"\n [urlFile]=\"urlFile\"\n [fileName]=\"internalFileName\"\n [cacheType]=\"cacheTypeForContent\"\n (pagesLoaded)=\"isContentReady = true\"\n (close)=\"onClose()\"\n (error)=\"onUnsupportedFile()\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'image'\">\n <adf-img-viewer\n [urlFile]=\"urlFile\"\n [readOnly]=\"readOnly\"\n [fileName]=\"internalFileName\"\n [allowedEditActions]=\"allowedEditActions\"\n [blobFile]=\"blobFile\"\n (error)=\"onUnsupportedFile()\"\n (submit)=\"onSubmitFile($event)\"\n (imageLoaded)=\"isContentReady = true\"\n (isSaving)=\"isSaving.emit($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'media'\">\n <adf-media-player\n id=\"adf-mdedia-player\"\n [urlFile]=\"urlFile\"\n [tracks]=\"tracks\"\n [mimeType]=\"mimeType\"\n [blobFile]=\"blobFile\"\n [fileName]=\"internalFileName\"\n (error)=\"onUnsupportedFile()\"\n (canPlay)=\"isContentReady = true\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'text'\">\n <adf-txt-viewer [urlFile]=\"urlFile\" [blobFile]=\"blobFile\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'custom'\">\n <ng-container *ngFor=\"let ext of viewerExtensions\">\n <adf-preview-extension\n *ngIf=\"checkExtensions(ext.fileExtension)\"\n [id]=\"ext.component\"\n [url]=\"urlFile\"\n [extension]=\"extension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"ext.component\"\n />\n </ng-container>\n\n <ng-container *ngFor=\"let extensionTemplate of extensionTemplates\">\n <span *ngIf=\"extensionTemplate.isVisible\" class=\"adf-viewer-render-custom-content\">\n <ng-template\n [ngTemplateOutlet]=\"extensionTemplate.template\"\n [ngTemplateOutletContext]=\"{ urlFile: urlFile, extension: extension }\"\n />\n </span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <adf-viewer-unknown-format [customError]=\"customError\" />\n </ng-container>\n </div>\n </div>\n</div>\n<ng-container *ngIf=\"viewerTemplateExtensions\">\n <ng-template [ngTemplateOutlet]=\"viewerTemplateExtensions\" [ngTemplateOutletInjector]=\"injector\" />\n</ng-container>\n", styles: [".adf-full-screen,.adf-viewer-render-layout-content{width:100%;height:100%;background-color:var(--adf-theme-background-card-color)}.adf-viewer-render-main-loader{position:fixed;top:64px;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center}.adf-viewer-render-main{width:0;order:1;flex:1 1 auto}.adf-viewer-render-content-container{display:flex;justify-content:center}.adf-viewer-render-layout-content{position:relative;overflow:hidden;z-index:1;background-color:var(--theme-background-color);display:flex;flex-flow:row wrap;flex:1}.adf-viewer-render-layout-content>div{display:flex;flex-flow:row wrap;margin:0 auto;align-items:stretch;height:93vh;width:100%}.adf-viewer-render-overlay-container .adf-viewer-render-content{position:fixed;top:0;left:0;z-index:1000}.adf-viewer-render__loading-screen{display:flex;flex:1 1 auto;align-items:center;justify-content:center;flex-direction:column;height:85vh}.adf-viewer-render__loading-screen__spinner{margin:0 auto}.adf-viewer-render-custom-content{width:100vw}.adf-viewer-render-unknown-content{align-items:center;display:flex}.adf-viewer-render-pdf{display:contents}\n"] }]
5698
5702
  }], ctorParameters: () => [{ type: ViewUtilService }, { type: i2$2.AppExtensionService }, { type: i1$5.MatDialog }, { type: i0.Injector }], propDecorators: { urlFile: [{
5699
5703
  type: Input
5700
5704
  }], blobFile: [{