@eui/mobile-core 18.0.2-snapshot-1741849501379 → 18.0.2-snapshot-1742404594349
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/docs/components/EuimPdfViewerComponent.html +82 -0
- package/docs/js/search/search_index.js +2 -2
- package/esm2022/lib/components/euim-pdf-viewer/euim-pdf-viewer.component.mjs +7 -4
- package/fesm2022/eui-mobile-core.mjs +5 -2
- package/fesm2022/eui-mobile-core.mjs.map +1 -1
- package/lib/components/euim-pdf-viewer/euim-pdf-viewer.component.d.ts +1 -0
- package/lib/components/euim-pdf-viewer/euim-pdf-viewer.component.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, Input, ViewEncapsulation, ViewChild } from '@angular/core';
|
|
1
|
+
import { Component, HostBinding, Input, ViewEncapsulation, ViewChild } from '@angular/core';
|
|
2
2
|
import { Subject, throwError } from 'rxjs';
|
|
3
3
|
import { map, switchMap, catchError, startWith } from 'rxjs/operators';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -14,6 +14,7 @@ export class EuimPdfViewerComponent {
|
|
|
14
14
|
this.alertService = alertService;
|
|
15
15
|
this.http = http;
|
|
16
16
|
this.page = 1;
|
|
17
|
+
this.className = 'euim-pdf-viewer';
|
|
17
18
|
this.zoom = 1;
|
|
18
19
|
this.loading = true;
|
|
19
20
|
this.errorMessage = '';
|
|
@@ -125,17 +126,19 @@ export class EuimPdfViewerComponent {
|
|
|
125
126
|
}));
|
|
126
127
|
}
|
|
127
128
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuimPdfViewerComponent, deps: [{ token: i1.AlertController }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
128
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EuimPdfViewerComponent, selector: "euim-pdf-viewer", inputs: { url: "url", page: "page" }, viewQueries: [{ propertyName: "pinch", first: true, predicate: ["pinch"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (loading || errorMessage) {\n<div>\n @if (loading) {\n <euim-spinner>\n <div euimSpinnerMessage>{{'euim.pdf-viewer.SPINNER-MESSAGE' | translate }}</div>\n </euim-spinner>\n }\n @if (errorMessage) {\n <div>{{'euim.pdf-viewer.LOADING-PDF-ERROR-MESSAGE' | translate }}</div>\n }\n</div>\n}\n\n<pinch-zoom [limit-zoom]=\"4\"\n [transition-duration]=\"50\"\n [zoomControlScale]=\"0.5\"\n (onZoomChange)=\"zoomChange($event)\" [wheelZoomFactor]=\"0.5\" [stepZoomFactor]=\"0.5\" #pinch>\n <div class=\"euim-pdf-viewer__container\">\n @if (data) {\n <pdf-viewer [src]=\"data\"\n [original-size]=\"false\"\n [zoom-scale]=\"'page-height'\"\n (after-load-complete)=\"onLoaded($event)\"\n (error)=\"onError()\"\n [(page)]=\"page\"\n [stick-to-page]=\"false\"\n [show-all]=\"false\"\n [render-text]=\"true\"\n style=\"width: 100%; height: 100%\">\n </pdf-viewer>\n }\n </div>\n</pinch-zoom>\n\n<ion-footer>\n <ion-toolbar color=\"primary\" class=\"euim-pdf-viewer__footer\">\n <ion-buttons slot=\"start\">\n <ion-button (click)=\"onDownload()\" [disabled]=\"!pdf || !data\">\n <ion-icon name=\"download-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-buttons>\n <ion-button (click)=\"onZoomOut()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n <ion-icon name=\"remove-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"onResetZoom()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n <ion-icon name=\"refresh-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"onZoomIn()\" [disabled]=\"zoom === 4 || !pdf || !data\">\n <ion-icon name=\"add-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"prevPage()\" [disabled]=\"page === 1 || !pdf || !data\">\n <ion-icon name=\"arrow-back-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <span>{{ page }}/{{ pdfNumPages }}</span>\n <ion-button (click)=\"nextPage()\" [disabled]=\"page === pdfNumPages || !pdf || !data\">\n <ion-icon name=\"arrow-forward-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-footer>\n", styles: [".euim-pdf-viewer{display:flex;flex-direction:column;height:100%;min-height:600px}.euim-pdf-viewer__container{display:block;width:100%;height:calc(100vh - var(--eui-s-5xl))}.euim-pdf-viewer__footer-zoom-container{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i3.PdfViewerComponent, selector: "pdf-viewer", inputs: ["src", "c-maps-url", "page", "render-text", "render-text-mode", "original-size", "show-all", "stick-to-page", "zoom", "zoom-scale", "rotation", "external-link-target", "autoresize", "fit-to-page", "show-borders"], outputs: ["after-load-complete", "page-rendered", "pages-initialized", "text-layer-rendered", "error", "on-progress", "pageChange"] }, { kind: "component", type: i4.PinchZoomComponent, selector: "pinch-zoom, [pinch-zoom]", inputs: ["properties", "transition-duration", "transitionDuration", "double-tap", "doubleTap", "double-tap-scale", "doubleTapScale", "auto-zoom-out", "autoZoomOut", "limit-zoom", "limitZoom", "disabled", "disablePan", "overflow", "zoomControlScale", "disableZoomControl", "backgroundColor", "limitPan", "minPanScale", "minScale", "listeners", "wheel", "autoHeight", "stepZoomFactor", "wheelZoomFactor", "draggableImage"], outputs: ["onZoomChange"], exportAs: ["pinchZoom"] }, { kind: "component", type: i5.EuimSpinnerComponent, selector: "euim-spinner" }, { kind: "component", type: i6.EuimSpinnerMessageComponent, selector: "[euimSpinnerMessage]" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
129
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EuimPdfViewerComponent, selector: "euim-pdf-viewer", inputs: { url: "url", page: "page" }, host: { properties: { "className": "this.className" } }, viewQueries: [{ propertyName: "pinch", first: true, predicate: ["pinch"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (loading || errorMessage) {\n<div>\n @if (loading) {\n <euim-spinner>\n <div euimSpinnerMessage>{{'euim.pdf-viewer.SPINNER-MESSAGE' | translate }}</div>\n </euim-spinner>\n }\n @if (errorMessage) {\n <div>{{'euim.pdf-viewer.LOADING-PDF-ERROR-MESSAGE' | translate }}</div>\n }\n</div>\n}\n\n<pinch-zoom [limit-zoom]=\"4\"\n [transition-duration]=\"50\"\n [zoomControlScale]=\"0.5\"\n (onZoomChange)=\"zoomChange($event)\" [wheelZoomFactor]=\"0.5\" [stepZoomFactor]=\"0.5\" #pinch>\n <div class=\"euim-pdf-viewer__container\">\n @if (data) {\n <pdf-viewer [src]=\"data\"\n [original-size]=\"false\"\n [zoom-scale]=\"'page-height'\"\n (after-load-complete)=\"onLoaded($event)\"\n (error)=\"onError()\"\n [(page)]=\"page\"\n [stick-to-page]=\"false\"\n [show-all]=\"false\"\n [render-text]=\"true\"\n style=\"width: 100%; height: 100%\">\n </pdf-viewer>\n }\n </div>\n</pinch-zoom>\n\n<ion-footer>\n <ion-toolbar color=\"primary\" class=\"euim-pdf-viewer__footer\">\n <ion-buttons slot=\"start\">\n <ion-button (click)=\"onDownload()\" [disabled]=\"!pdf || !data\">\n <ion-icon name=\"download-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-buttons>\n <ion-button (click)=\"onZoomOut()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n <ion-icon name=\"remove-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"onResetZoom()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n <ion-icon name=\"refresh-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"onZoomIn()\" [disabled]=\"zoom === 4 || !pdf || !data\">\n <ion-icon name=\"add-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"prevPage()\" [disabled]=\"page === 1 || !pdf || !data\">\n <ion-icon name=\"arrow-back-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <span>{{ page }}/{{ pdfNumPages }}</span>\n <ion-button (click)=\"nextPage()\" [disabled]=\"page === pdfNumPages || !pdf || !data\">\n <ion-icon name=\"arrow-forward-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-footer>\n", styles: [".euim-pdf-viewer{display:flex;flex-direction:column;height:100%;min-height:600px}.euim-pdf-viewer__container{display:block;width:100%;height:calc(100vh - var(--eui-s-5xl))}.euim-pdf-viewer__footer-zoom-container{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}ion-content .euim-pdf-viewer{display:flex;flex-direction:column;height:calc(100vh - var(--eui-s-5xl))}ion-content .euim-pdf-viewer__container{display:block;width:100%;height:calc(100vh - var(--eui-s-5xl) * 2)}ion-content .euim-pdf-viewer ion-footer{margin-top:auto}ion-modal .euim-pdf-viewer{height:100%;min-height:auto}ion-modal .euim-pdf-viewer__container{height:400px}@media (max-width: 767px){ion-modal .euim-pdf-viewer{height:calc(100vh - var(--eui-s-5xl))}ion-modal .euim-pdf-viewer__container{height:calc(100vh - var(--eui-s-5xl) * 2)}}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i3.PdfViewerComponent, selector: "pdf-viewer", inputs: ["src", "c-maps-url", "page", "render-text", "render-text-mode", "original-size", "show-all", "stick-to-page", "zoom", "zoom-scale", "rotation", "external-link-target", "autoresize", "fit-to-page", "show-borders"], outputs: ["after-load-complete", "page-rendered", "pages-initialized", "text-layer-rendered", "error", "on-progress", "pageChange"] }, { kind: "component", type: i4.PinchZoomComponent, selector: "pinch-zoom, [pinch-zoom]", inputs: ["properties", "transition-duration", "transitionDuration", "double-tap", "doubleTap", "double-tap-scale", "doubleTapScale", "auto-zoom-out", "autoZoomOut", "limit-zoom", "limitZoom", "disabled", "disablePan", "overflow", "zoomControlScale", "disableZoomControl", "backgroundColor", "limitPan", "minPanScale", "minScale", "listeners", "wheel", "autoHeight", "stepZoomFactor", "wheelZoomFactor", "draggableImage"], outputs: ["onZoomChange"], exportAs: ["pinchZoom"] }, { kind: "component", type: i5.EuimSpinnerComponent, selector: "euim-spinner" }, { kind: "component", type: i6.EuimSpinnerMessageComponent, selector: "[euimSpinnerMessage]" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
129
130
|
}
|
|
130
131
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuimPdfViewerComponent, decorators: [{
|
|
131
132
|
type: Component,
|
|
132
|
-
args: [{ selector: 'euim-pdf-viewer', encapsulation: ViewEncapsulation.None, template: "@if (loading || errorMessage) {\n<div>\n @if (loading) {\n <euim-spinner>\n <div euimSpinnerMessage>{{'euim.pdf-viewer.SPINNER-MESSAGE' | translate }}</div>\n </euim-spinner>\n }\n @if (errorMessage) {\n <div>{{'euim.pdf-viewer.LOADING-PDF-ERROR-MESSAGE' | translate }}</div>\n }\n</div>\n}\n\n<pinch-zoom [limit-zoom]=\"4\"\n [transition-duration]=\"50\"\n [zoomControlScale]=\"0.5\"\n (onZoomChange)=\"zoomChange($event)\" [wheelZoomFactor]=\"0.5\" [stepZoomFactor]=\"0.5\" #pinch>\n <div class=\"euim-pdf-viewer__container\">\n @if (data) {\n <pdf-viewer [src]=\"data\"\n [original-size]=\"false\"\n [zoom-scale]=\"'page-height'\"\n (after-load-complete)=\"onLoaded($event)\"\n (error)=\"onError()\"\n [(page)]=\"page\"\n [stick-to-page]=\"false\"\n [show-all]=\"false\"\n [render-text]=\"true\"\n style=\"width: 100%; height: 100%\">\n </pdf-viewer>\n }\n </div>\n</pinch-zoom>\n\n<ion-footer>\n <ion-toolbar color=\"primary\" class=\"euim-pdf-viewer__footer\">\n <ion-buttons slot=\"start\">\n <ion-button (click)=\"onDownload()\" [disabled]=\"!pdf || !data\">\n <ion-icon name=\"download-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-buttons>\n <ion-button (click)=\"onZoomOut()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n <ion-icon name=\"remove-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"onResetZoom()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n <ion-icon name=\"refresh-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"onZoomIn()\" [disabled]=\"zoom === 4 || !pdf || !data\">\n <ion-icon name=\"add-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"prevPage()\" [disabled]=\"page === 1 || !pdf || !data\">\n <ion-icon name=\"arrow-back-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <span>{{ page }}/{{ pdfNumPages }}</span>\n <ion-button (click)=\"nextPage()\" [disabled]=\"page === pdfNumPages || !pdf || !data\">\n <ion-icon name=\"arrow-forward-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-footer>\n", styles: [".euim-pdf-viewer{display:flex;flex-direction:column;height:100%;min-height:600px}.euim-pdf-viewer__container{display:block;width:100%;height:calc(100vh - var(--eui-s-5xl))}.euim-pdf-viewer__footer-zoom-container{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}\n"] }]
|
|
133
|
+
args: [{ selector: 'euim-pdf-viewer', encapsulation: ViewEncapsulation.None, template: "@if (loading || errorMessage) {\n<div>\n @if (loading) {\n <euim-spinner>\n <div euimSpinnerMessage>{{'euim.pdf-viewer.SPINNER-MESSAGE' | translate }}</div>\n </euim-spinner>\n }\n @if (errorMessage) {\n <div>{{'euim.pdf-viewer.LOADING-PDF-ERROR-MESSAGE' | translate }}</div>\n }\n</div>\n}\n\n<pinch-zoom [limit-zoom]=\"4\"\n [transition-duration]=\"50\"\n [zoomControlScale]=\"0.5\"\n (onZoomChange)=\"zoomChange($event)\" [wheelZoomFactor]=\"0.5\" [stepZoomFactor]=\"0.5\" #pinch>\n <div class=\"euim-pdf-viewer__container\">\n @if (data) {\n <pdf-viewer [src]=\"data\"\n [original-size]=\"false\"\n [zoom-scale]=\"'page-height'\"\n (after-load-complete)=\"onLoaded($event)\"\n (error)=\"onError()\"\n [(page)]=\"page\"\n [stick-to-page]=\"false\"\n [show-all]=\"false\"\n [render-text]=\"true\"\n style=\"width: 100%; height: 100%\">\n </pdf-viewer>\n }\n </div>\n</pinch-zoom>\n\n<ion-footer>\n <ion-toolbar color=\"primary\" class=\"euim-pdf-viewer__footer\">\n <ion-buttons slot=\"start\">\n <ion-button (click)=\"onDownload()\" [disabled]=\"!pdf || !data\">\n <ion-icon name=\"download-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-buttons>\n <ion-button (click)=\"onZoomOut()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n <ion-icon name=\"remove-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"onResetZoom()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n <ion-icon name=\"refresh-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"onZoomIn()\" [disabled]=\"zoom === 4 || !pdf || !data\">\n <ion-icon name=\"add-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"prevPage()\" [disabled]=\"page === 1 || !pdf || !data\">\n <ion-icon name=\"arrow-back-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <span>{{ page }}/{{ pdfNumPages }}</span>\n <ion-button (click)=\"nextPage()\" [disabled]=\"page === pdfNumPages || !pdf || !data\">\n <ion-icon name=\"arrow-forward-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-footer>\n", styles: [".euim-pdf-viewer{display:flex;flex-direction:column;height:100%;min-height:600px}.euim-pdf-viewer__container{display:block;width:100%;height:calc(100vh - var(--eui-s-5xl))}.euim-pdf-viewer__footer-zoom-container{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}ion-content .euim-pdf-viewer{display:flex;flex-direction:column;height:calc(100vh - var(--eui-s-5xl))}ion-content .euim-pdf-viewer__container{display:block;width:100%;height:calc(100vh - var(--eui-s-5xl) * 2)}ion-content .euim-pdf-viewer ion-footer{margin-top:auto}ion-modal .euim-pdf-viewer{height:100%;min-height:auto}ion-modal .euim-pdf-viewer__container{height:400px}@media (max-width: 767px){ion-modal .euim-pdf-viewer{height:calc(100vh - var(--eui-s-5xl))}ion-modal .euim-pdf-viewer__container{height:calc(100vh - var(--eui-s-5xl) * 2)}}\n"] }]
|
|
133
134
|
}], ctorParameters: () => [{ type: i1.AlertController }, { type: i2.HttpClient }], propDecorators: { url: [{
|
|
134
135
|
type: Input
|
|
135
136
|
}], page: [{
|
|
136
137
|
type: Input
|
|
138
|
+
}], className: [{
|
|
139
|
+
type: HostBinding
|
|
137
140
|
}], pinch: [{
|
|
138
141
|
type: ViewChild,
|
|
139
142
|
args: ['pinch', { static: true }]
|
|
140
143
|
}] } });
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpbS1wZGYtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9ldWltLXBkZi12aWV3ZXIvZXVpbS1wZGYtdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9ldWltLXBkZi12aWV3ZXIvZXVpbS1wZGYtdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUMsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLNUgsT0FBTyxFQUFjLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBUXZFLE1BQU0sT0FBTyxzQkFBc0I7SUFtQi9CLFlBQW9CLFlBQTZCLEVBQVUsSUFBZ0I7UUFBdkQsaUJBQVksR0FBWixZQUFZLENBQWlCO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBWTtRQWpCbEUsU0FBSSxHQUFJLENBQUMsQ0FBQztRQUluQixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1QsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBSVIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFJbEIsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFLdkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLDBCQUEwQixFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1RSxDQUFDO1FBQ0wsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUVELFFBQVE7UUFDSiwwRkFBMEY7UUFDMUYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDcEMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFDbkIsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzNDLENBQUMsU0FBUyxDQUFDO1lBQ1IsSUFBSSxFQUFFLENBQUMsSUFBZ0IsRUFBRSxFQUFFO2dCQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDakIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztnQkFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDekIsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLENBQUM7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFnQjtRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBcUI7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7SUFDekMsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsMkJBQTJCLENBQUM7SUFDcEQsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoQixDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hCLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssWUFBWSxDQUFDLElBQWdCLEVBQUUsUUFBZ0I7UUFDbkQsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN0QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDVixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ1QsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxVQUFVLENBQUMsR0FBVztRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsQ0FBQztZQUN0RCxzQ0FBc0M7YUFDckMsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLElBQWlCLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ2hELFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDO2tJQWpKUSxzQkFBc0I7c0hBQXRCLHNCQUFzQixnT0NkbkMsMmhGQStEQTs7NEZEakRhLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDSSxpQkFBaUIsaUJBR1osaUJBQWlCLENBQUMsSUFBSTs2R0FHNUIsR0FBRztzQkFBWCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFZ0MsS0FBSztzQkFBMUMsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2ltcGxlQ2hhbmdlcywgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBWaWV3Q2hpbGQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUERGRG9jdW1lbnRQcm94eSB9IGZyb20gJ25nMi1wZGYtdmlld2VyJztcbmltcG9ydCB7IEFsZXJ0Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFBpbmNoWm9vbUNvbXBvbmVudCwgWm9vbUV2ZW50IH0gZnJvbSAnQG1hcGF4ZS9uZ3gtcGluY2gtem9vbSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCwgY2F0Y2hFcnJvciwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aW0tcGRmLXZpZXdlcicsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aW0tcGRmLXZpZXdlci5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpbVBkZlZpZXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIHVybDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHBhZ2UgID0gMTtcblxuICAgIEBWaWV3Q2hpbGQoJ3BpbmNoJywgeyBzdGF0aWM6IHRydWUgfSkgcGluY2ghOiBQaW5jaFpvb21Db21wb25lbnQ7XG5cbiAgICB6b29tID0gMTtcbiAgICBsb2FkaW5nID0gdHJ1ZTtcbiAgICBlcnJvck1lc3NhZ2UgPSAnJztcbiAgICBwZGY6IFBERkRvY3VtZW50UHJveHk7XG5cbiAgICBldmVudFJlc3VsdD86IFpvb21FdmVudDtcbiAgICBwcm90ZWN0ZWQgcGRmTnVtUGFnZXMgPSAxO1xuICAgIHByb3RlY3RlZCBkYXRhOiBVaW50OEFycmF5O1xuXG4gICAgcHJpdmF0ZSBzaG93RGVmYXVsdEVycm9yOiBib29sZWFuO1xuICAgIHByaXZhdGUgdXJsQ2hhbmdlJCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0Q29udHJvbGxlciwgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG5cbiAgICAgICAgdGhpcy5zaG93RGVmYXVsdEVycm9yID0gdHJ1ZTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5zaG93RGVmYXVsdEVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuY3JlYXRlKHsgaGVhZGVyOiAnUERGIGNvdWxkIG5vdCBiZSBsb2FkZWQuJyB9KS50aGVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDE1MDAwKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gc3Vic2NyaWJlIGFuZCBjYW5jZWwgcHJldmlvdXMgc3Vic2NyaXB0aW9uIChpZiBhbnkpIGZvciBmZXRjaGluZyBkYXRhIHdoaWxlIFVSTCBjaGFuZ2VzXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy51cmxDaGFuZ2UkLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgodGhpcy51cmwpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKCh1cmwpID0+IHRoaXMuZ2V0UERGRGF0YSh1cmwpKSxcbiAgICAgICAgKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKGRhdGE6IFVpbnQ4QXJyYXkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0RlZmF1bHRFcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkVycm9yKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhID0gbnVsbDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYoY2hhbmdlc1sndXJsJ10pIHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnVybENoYW5nZSQubmV4dChjaGFuZ2VzWyd1cmwnXS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgem9vbUNoYW5nZShldmVudDogWm9vbUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXZlbnRSZXN1bHQgPSBldmVudDtcbiAgICAgICAgdGhpcy56b29tID0gdGhpcy5ldmVudFJlc3VsdC5zY2FsZTtcbiAgICB9XG5cbiAgICBvbkxvYWRlZChwZGY6IFBERkRvY3VtZW50UHJveHkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93RGVmYXVsdEVycm9yID0gZmFsc2U7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnBkZiA9IHBkZjtcbiAgICAgICAgdGhpcy5wZGZOdW1QYWdlcyA9IHRoaXMucGRmLm51bVBhZ2VzO1xuICAgIH1cblxuICAgIG9uRXJyb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hvd0RlZmF1bHRFcnJvciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkLic7XG4gICAgfVxuXG4gICAgb25Eb3dubG9hZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wZGY/LmdldERhdGEoKS50aGVuKCh1OCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kb3dubG9hZEZpbGUodTgsICdmaWxlLnBkZicpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvblpvb21JbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5waW5jaC56b29tSW4oKTtcbiAgICB9XG5cbiAgICBvblpvb21PdXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnpvb20gPiAxKSB7XG4gICAgICAgICAgICB0aGlzLnBpbmNoLnpvb21PdXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUmVzZXRab29tKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBpbmNoLnJlc2V0Wm9vbSgpO1xuICAgIH1cblxuICAgIG5leHRQYWdlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wYWdlIDwgdGhpcy5wZGYubnVtUGFnZXMpIHtcbiAgICAgICAgICAgIHRoaXMucGFnZSsrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJldlBhZ2UoKTp2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGFnZSA+IDEpIHtcbiAgICAgICAgICAgIHRoaXMucGFnZS0tO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRG93bmxvYWQgZmlsZSBmcm9tIHRoZSBnaXZlbiBkYXRhIGFuZCBmaWxlbmFtZSB1c2luZyBCbG9iLlxuICAgICAqIEl0IGdlbmVyYXRlcyBhbiBhbmNob3IgbGluayBhbmQgY2xpY2tzIG9uIGl0IHRvIGRvd25sb2FkIHRoZSBmaWxlLlxuICAgICAqIEBwYXJhbSBkYXRhXG4gICAgICogQHBhcmFtIGZpbGVuYW1lXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGRvd25sb2FkRmlsZShkYXRhOiBVaW50OEFycmF5LCBmaWxlbmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZGF0YS5idWZmZXJdLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9wZGYnIH0pO1xuICAgICAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgYS5ocmVmID0gdXJsO1xuICAgICAgICBhLmRvd25sb2FkID0gZmlsZW5hbWU7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gICAgICAgIGEuY2xpY2soKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICAgICAgICB9LCA1MDAwKTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGZXRjaCBQREYgZGF0YSBmcm9tIHRoZSBnaXZlbiBVUkwgYW5kIHJldHVybiBhcyBVaW50OEFycmF5LlxuICAgICAqIEBwYXJhbSB1cmxcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0UERGRGF0YSh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8VWludDhBcnJheT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHsgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInIH0pXG4gICAgICAgICAgICAvLyB0cmFuc2Zvcm0gQXJyYXlCdWZmZXIgdG8gVWludDhBcnJheVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChkYXRhOiBBcnJheUJ1ZmZlcikgPT4gbmV3IFVpbnQ4QXJyYXkoZGF0YSkpLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkVycm9yKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycik7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cbn1cbiIsIkBpZiAobG9hZGluZyB8fCBlcnJvck1lc3NhZ2UpIHtcbjxkaXY+XG4gIEBpZiAobG9hZGluZykge1xuICAgIDxldWltLXNwaW5uZXI+XG4gICAgICA8ZGl2IGV1aW1TcGlubmVyTWVzc2FnZT57eydldWltLnBkZi12aWV3ZXIuU1BJTk5FUi1NRVNTQUdFJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgIDwvZXVpbS1zcGlubmVyPlxuICB9XG4gIEBpZiAoZXJyb3JNZXNzYWdlKSB7XG4gICAgPGRpdj57eydldWltLnBkZi12aWV3ZXIuTE9BRElORy1QREYtRVJST1ItTUVTU0FHRScgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgfVxuPC9kaXY+XG59XG5cbjxwaW5jaC16b29tIFtsaW1pdC16b29tXT1cIjRcIlxuICAgICAgICAgICAgW3RyYW5zaXRpb24tZHVyYXRpb25dPVwiNTBcIlxuICAgICAgICAgICAgW3pvb21Db250cm9sU2NhbGVdPVwiMC41XCJcbiAgICAgICAgICAgIChvblpvb21DaGFuZ2UpPVwiem9vbUNoYW5nZSgkZXZlbnQpXCIgW3doZWVsWm9vbUZhY3Rvcl09XCIwLjVcIiBbc3RlcFpvb21GYWN0b3JdPVwiMC41XCIgI3BpbmNoPlxuICAgIDxkaXYgY2xhc3M9XCJldWltLXBkZi12aWV3ZXJfX2NvbnRhaW5lclwiPlxuICAgICAgICBAaWYgKGRhdGEpIHtcbiAgICAgICAgPHBkZi12aWV3ZXIgW3NyY109XCJkYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgW29yaWdpbmFsLXNpemVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbem9vbS1zY2FsZV09XCIncGFnZS1oZWlnaHQnXCJcbiAgICAgICAgICAgICAgICAgICAgKGFmdGVyLWxvYWQtY29tcGxldGUpPVwib25Mb2FkZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJvbkVycm9yKClcIlxuICAgICAgICAgICAgICAgICAgICBbKHBhZ2UpXT1cInBhZ2VcIlxuICAgICAgICAgICAgICAgICAgICBbc3RpY2stdG8tcGFnZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaG93LWFsbF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtyZW5kZXItdGV4dF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlXCI+XG4gICAgICAgIDwvcGRmLXZpZXdlcj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9waW5jaC16b29tPlxuXG48aW9uLWZvb3Rlcj5cbiAgPGlvbi10b29sYmFyIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwiZXVpbS1wZGYtdmlld2VyX19mb290ZXJcIj5cbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCI+XG4gICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwib25Eb3dubG9hZCgpXCIgW2Rpc2FibGVkXT1cIiFwZGYgfHwgIWRhdGFcIj5cbiAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJkb3dubG9hZC1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tYnV0dG9ucz5cbiAgICA8aW9uLWJ1dHRvbnM+XG4gICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwib25ab29tT3V0KClcIiBbZGlzYWJsZWRdPVwiem9vbSA9PT0gMSB8fCAhcGRmIHx8ICFkYXRhXCI+XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwicmVtb3ZlLWNpcmNsZS1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwib25SZXNldFpvb20oKVwiIFtkaXNhYmxlZF09XCJ6b29tID09PSAxIHx8ICFwZGYgfHwgIWRhdGFcIj5cbiAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJyZWZyZXNoLWNpcmNsZS1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwib25ab29tSW4oKVwiIFtkaXNhYmxlZF09XCJ6b29tID09PSA0IHx8ICFwZGYgfHwgIWRhdGFcIj5cbiAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJhZGQtY2lyY2xlLW91dGxpbmVcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICA8L2lvbi1idXR0b25zPlxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwicHJldlBhZ2UoKVwiIFtkaXNhYmxlZF09XCJwYWdlID09PSAxIHx8ICFwZGYgfHwgIWRhdGFcIj5cbiAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJhcnJvdy1iYWNrLWNpcmNsZS1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgICA8c3Bhbj57eyBwYWdlIH19L3t7IHBkZk51bVBhZ2VzIH19PC9zcGFuPlxuICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cIm5leHRQYWdlKClcIiBbZGlzYWJsZWRdPVwicGFnZSA9PT0gcGRmTnVtUGFnZXMgfHwgIXBkZiB8fCAhZGF0YVwiPlxuICAgICAgICA8aW9uLWljb24gbmFtZT1cImFycm93LWZvcndhcmQtY2lyY2xlLW91dGxpbmVcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICA8L2lvbi1idXR0b25zPlxuICA8L2lvbi10b29sYmFyPlxuPC9pb24tZm9vdGVyPlxuIl19
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpbS1wZGYtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9ldWltLXBkZi12aWV3ZXIvZXVpbS1wZGYtdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9ldWltLXBkZi12aWV3ZXIvZXVpbS1wZGYtdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBS3pJLE9BQU8sRUFBYyxPQUFPLEVBQWdCLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQVF2RSxNQUFNLE9BQU8sc0JBQXNCO0lBb0IvQixZQUFvQixZQUE2QixFQUFVLElBQWdCO1FBQXZELGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFsQmxFLFNBQUksR0FBSSxDQUFDLENBQUM7UUFDSixjQUFTLEdBQUcsaUJBQWlCLENBQUM7UUFJN0MsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUNULFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUlSLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBSWxCLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBS3ZDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxP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QUM7WUFDdEQsc0NBQXNDO2FBQ3JDLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxJQUFpQixFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUNoRCxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDYixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztrSUFsSlEsc0JBQXNCO3NIQUF0QixzQkFBc0IseVJDZG5DLDJoRkErREE7OzRGRGpEYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0ksaUJBQWlCLGlCQUdaLGlCQUFpQixDQUFDLElBQUk7NkdBRzVCLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ1MsU0FBUztzQkFBdkIsV0FBVztnQkFFMEIsS0FBSztzQkFBMUMsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2ltcGxlQ2hhbmdlcywgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgVmlld0NoaWxkLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBERkRvY3VtZW50UHJveHkgfSBmcm9tICduZzItcGRmLXZpZXdlcic7XG5pbXBvcnQgeyBBbGVydENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBQaW5jaFpvb21Db21wb25lbnQsIFpvb21FdmVudCB9IGZyb20gJ0BtYXBheGUvbmd4LXBpbmNoLXpvb20nO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAsIGNhdGNoRXJyb3IsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWltLXBkZi12aWV3ZXInLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWltLXBkZi12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aW1QZGZWaWV3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSB1cmw6IHN0cmluZztcbiAgICBASW5wdXQoKSBwYWdlICA9IDE7XG4gICAgQEhvc3RCaW5kaW5nKCkgY2xhc3NOYW1lID0gJ2V1aW0tcGRmLXZpZXdlcic7XG5cbiAgICBAVmlld0NoaWxkKCdwaW5jaCcsIHsgc3RhdGljOiB0cnVlIH0pIHBpbmNoITogUGluY2hab29tQ29tcG9uZW50O1xuXG4gICAgem9vbSA9IDE7XG4gICAgbG9hZGluZyA9IHRydWU7XG4gICAgZXJyb3JNZXNzYWdlID0gJyc7XG4gICAgcGRmOiBQREZEb2N1bWVudFByb3h5O1xuXG4gICAgZXZlbnRSZXN1bHQ/OiBab29tRXZlbnQ7XG4gICAgcHJvdGVjdGVkIHBkZk51bVBhZ2VzID0gMTtcbiAgICBwcm90ZWN0ZWQgZGF0YTogVWludDhBcnJheTtcblxuICAgIHByaXZhdGUgc2hvd0RlZmF1bHRFcnJvcjogYm9vbGVhbjtcbiAgICBwcml2YXRlIHVybENoYW5nZSQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydENvbnRyb2xsZXIsIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xuXG4gICAgICAgIHRoaXMuc2hvd0RlZmF1bHRFcnJvciA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2hvd0RlZmF1bHRFcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmNyZWF0ZSh7IGhlYWRlcjogJ1BERiBjb3VsZCBub3QgYmUgbG9hZGVkLicgfSkudGhlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAxNTAwMCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIHN1YnNjcmliZSBhbmQgY2FuY2VsIHByZXZpb3VzIHN1YnNjcmlwdGlvbiAoaWYgYW55KSBmb3IgZmV0Y2hpbmcgZGF0YSB3aGlsZSBVUkwgY2hhbmdlc1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMudXJsQ2hhbmdlJC5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMudXJsKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgodXJsKSA9PiB0aGlzLmdldFBERkRhdGEodXJsKSksXG4gICAgICAgICkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChkYXRhOiBVaW50OEFycmF5KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhID0gZGF0YTtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dEZWZhdWx0RXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25FcnJvcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IG51bGw7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmKGNoYW5nZXNbJ3VybCddKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy51cmxDaGFuZ2UkLm5leHQoY2hhbmdlc1sndXJsJ10uY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHpvb21DaGFuZ2UoZXZlbnQ6IFpvb21FdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmV2ZW50UmVzdWx0ID0gZXZlbnQ7XG4gICAgICAgIHRoaXMuem9vbSA9IHRoaXMuZXZlbnRSZXN1bHQuc2NhbGU7XG4gICAgfVxuXG4gICAgb25Mb2FkZWQocGRmOiBQREZEb2N1bWVudFByb3h5KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hvd0RlZmF1bHRFcnJvciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5wZGYgPSBwZGY7XG4gICAgICAgIHRoaXMucGRmTnVtUGFnZXMgPSB0aGlzLnBkZi5udW1QYWdlcztcbiAgICB9XG5cbiAgICBvbkVycm9yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNob3dEZWZhdWx0RXJyb3IgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0ZpbGUgY291bGQgbm90IGJlIGxvYWRlZC4nO1xuICAgIH1cblxuICAgIG9uRG93bmxvYWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGRmPy5nZXREYXRhKCkudGhlbigodTgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZG93bmxvYWRGaWxlKHU4LCAnZmlsZS5wZGYnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25ab29tSW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGluY2guem9vbUluKCk7XG4gICAgfVxuXG4gICAgb25ab29tT3V0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy56b29tID4gMSkge1xuICAgICAgICAgICAgdGhpcy5waW5jaC56b29tT3V0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblJlc2V0Wm9vbSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5waW5jaC5yZXNldFpvb20oKTtcbiAgICB9XG5cbiAgICBuZXh0UGFnZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGFnZSA8IHRoaXMucGRmLm51bVBhZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2UrKztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByZXZQYWdlKCk6dm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnBhZ2UgPiAxKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2UtLTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERvd25sb2FkIGZpbGUgZnJvbSB0aGUgZ2l2ZW4gZGF0YSBhbmQgZmlsZW5hbWUgdXNpbmcgQmxvYi5cbiAgICAgKiBJdCBnZW5lcmF0ZXMgYW4gYW5jaG9yIGxpbmsgYW5kIGNsaWNrcyBvbiBpdCB0byBkb3dubG9hZCB0aGUgZmlsZS5cbiAgICAgKiBAcGFyYW0gZGF0YVxuICAgICAqIEBwYXJhbSBmaWxlbmFtZVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBkb3dubG9hZEZpbGUoZGF0YTogVWludDhBcnJheSwgZmlsZW5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2RhdGEuYnVmZmVyXSwgeyB0eXBlOiAnYXBwbGljYXRpb24vcGRmJyB9KTtcbiAgICAgICAgY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgIGEuaHJlZiA9IHVybDtcbiAgICAgICAgYS5kb3dubG9hZCA9IGZpbGVuYW1lO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuICAgICAgICBhLmNsaWNrKCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcbiAgICAgICAgfSwgNTAwMCk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmV0Y2ggUERGIGRhdGEgZnJvbSB0aGUgZ2l2ZW4gVVJMIGFuZCByZXR1cm4gYXMgVWludDhBcnJheS5cbiAgICAgKiBAcGFyYW0gdXJsXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFBERkRhdGEodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVpbnQ4QXJyYXk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsLCB7IHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyB9KVxuICAgICAgICAgICAgLy8gdHJhbnNmb3JtIEFycmF5QnVmZmVyIHRvIFVpbnQ4QXJyYXlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoZGF0YTogQXJyYXlCdWZmZXIpID0+IG5ldyBVaW50OEFycmF5KGRhdGEpKSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25FcnJvcigpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnIpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG59XG4iLCJAaWYgKGxvYWRpbmcgfHwgZXJyb3JNZXNzYWdlKSB7XG48ZGl2PlxuICBAaWYgKGxvYWRpbmcpIHtcbiAgICA8ZXVpbS1zcGlubmVyPlxuICAgICAgPGRpdiBldWltU3Bpbm5lck1lc3NhZ2U+e3snZXVpbS5wZGYtdmlld2VyLlNQSU5ORVItTUVTU0FHRScgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICA8L2V1aW0tc3Bpbm5lcj5cbiAgfVxuICBAaWYgKGVycm9yTWVzc2FnZSkge1xuICAgIDxkaXY+e3snZXVpbS5wZGYtdmlld2VyLkxPQURJTkctUERGLUVSUk9SLU1FU1NBR0UnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gIH1cbjwvZGl2PlxufVxuXG48cGluY2gtem9vbSBbbGltaXQtem9vbV09XCI0XCJcbiAgICAgICAgICAgIFt0cmFuc2l0aW9uLWR1cmF0aW9uXT1cIjUwXCJcbiAgICAgICAgICAgIFt6b29tQ29udHJvbFNjYWxlXT1cIjAuNVwiXG4gICAgICAgICAgICAob25ab29tQ2hhbmdlKT1cInpvb21DaGFuZ2UoJGV2ZW50KVwiIFt3aGVlbFpvb21GYWN0b3JdPVwiMC41XCIgW3N0ZXBab29tRmFjdG9yXT1cIjAuNVwiICNwaW5jaD5cbiAgICA8ZGl2IGNsYXNzPVwiZXVpbS1wZGYtdmlld2VyX19jb250YWluZXJcIj5cbiAgICAgICAgQGlmIChkYXRhKSB7XG4gICAgICAgIDxwZGYtdmlld2VyIFtzcmNdPVwiZGF0YVwiXG4gICAgICAgICAgICAgICAgICAgIFtvcmlnaW5hbC1zaXplXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW3pvb20tc2NhbGVdPVwiJ3BhZ2UtaGVpZ2h0J1wiXG4gICAgICAgICAgICAgICAgICAgIChhZnRlci1sb2FkLWNvbXBsZXRlKT1cIm9uTG9hZGVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwib25FcnJvcigpXCJcbiAgICAgICAgICAgICAgICAgICAgWyhwYWdlKV09XCJwYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0aWNrLXRvLXBhZ2VdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvdy1hbGxdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbcmVuZGVyLXRleHRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJVwiPlxuICAgICAgICA8L3BkZi12aWV3ZXI+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvcGluY2gtem9vbT5cblxuPGlvbi1mb290ZXI+XG4gIDxpb24tdG9vbGJhciBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cImV1aW0tcGRmLXZpZXdlcl9fZm9vdGVyXCI+XG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiPlxuICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cIm9uRG93bmxvYWQoKVwiIFtkaXNhYmxlZF09XCIhcGRmIHx8ICFkYXRhXCI+XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiZG93bmxvYWQtb3V0bGluZVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxuICAgICAgPC9pb24tYnV0dG9uPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgPGlvbi1idXR0b25zPlxuICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cIm9uWm9vbU91dCgpXCIgW2Rpc2FibGVkXT1cInpvb20gPT09IDEgfHwgIXBkZiB8fCAhZGF0YVwiPlxuICAgICAgICA8aW9uLWljb24gbmFtZT1cInJlbW92ZS1jaXJjbGUtb3V0bGluZVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxuICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cIm9uUmVzZXRab29tKClcIiBbZGlzYWJsZWRdPVwiem9vbSA9PT0gMSB8fCAhcGRmIHx8ICFkYXRhXCI+XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwicmVmcmVzaC1jaXJjbGUtb3V0bGluZVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxuICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cIm9uWm9vbUluKClcIiBbZGlzYWJsZWRdPVwiem9vbSA9PT0gNCB8fCAhcGRmIHx8ICFkYXRhXCI+XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiYWRkLWNpcmNsZS1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tYnV0dG9ucz5cbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cInByZXZQYWdlKClcIiBbZGlzYWJsZWRdPVwicGFnZSA9PT0gMSB8fCAhcGRmIHx8ICFkYXRhXCI+XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiYXJyb3ctYmFjay1jaXJjbGUtb3V0bGluZVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxuICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPHNwYW4+e3sgcGFnZSB9fS97eyBwZGZOdW1QYWdlcyB9fTwvc3Bhbj5cbiAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJuZXh0UGFnZSgpXCIgW2Rpc2FibGVkXT1cInBhZ2UgPT09IHBkZk51bVBhZ2VzIHx8ICFwZGYgfHwgIWRhdGFcIj5cbiAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJhcnJvdy1mb3J3YXJkLWNpcmNsZS1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tYnV0dG9ucz5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWZvb3Rlcj5cbiJdfQ==
|
|
@@ -3447,6 +3447,7 @@ class EuimPdfViewerComponent {
|
|
|
3447
3447
|
this.alertService = alertService;
|
|
3448
3448
|
this.http = http;
|
|
3449
3449
|
this.page = 1;
|
|
3450
|
+
this.className = 'euim-pdf-viewer';
|
|
3450
3451
|
this.zoom = 1;
|
|
3451
3452
|
this.loading = true;
|
|
3452
3453
|
this.errorMessage = '';
|
|
@@ -3558,15 +3559,17 @@ class EuimPdfViewerComponent {
|
|
|
3558
3559
|
}));
|
|
3559
3560
|
}
|
|
3560
3561
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuimPdfViewerComponent, deps: [{ token: i2.AlertController }, { token: i2$3.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3561
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EuimPdfViewerComponent, selector: "euim-pdf-viewer", inputs: { url: "url", page: "page" }, viewQueries: [{ propertyName: "pinch", first: true, predicate: ["pinch"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (loading || errorMessage) {\n<div>\n @if (loading) {\n <euim-spinner>\n <div euimSpinnerMessage>{{'euim.pdf-viewer.SPINNER-MESSAGE' | translate }}</div>\n </euim-spinner>\n }\n @if (errorMessage) {\n <div>{{'euim.pdf-viewer.LOADING-PDF-ERROR-MESSAGE' | translate }}</div>\n }\n</div>\n}\n\n<pinch-zoom [limit-zoom]=\"4\"\n [transition-duration]=\"50\"\n [zoomControlScale]=\"0.5\"\n (onZoomChange)=\"zoomChange($event)\" [wheelZoomFactor]=\"0.5\" [stepZoomFactor]=\"0.5\" #pinch>\n <div class=\"euim-pdf-viewer__container\">\n @if (data) {\n <pdf-viewer [src]=\"data\"\n [original-size]=\"false\"\n [zoom-scale]=\"'page-height'\"\n (after-load-complete)=\"onLoaded($event)\"\n (error)=\"onError()\"\n [(page)]=\"page\"\n [stick-to-page]=\"false\"\n [show-all]=\"false\"\n [render-text]=\"true\"\n style=\"width: 100%; height: 100%\">\n </pdf-viewer>\n }\n </div>\n</pinch-zoom>\n\n<ion-footer>\n <ion-toolbar color=\"primary\" class=\"euim-pdf-viewer__footer\">\n <ion-buttons slot=\"start\">\n <ion-button (click)=\"onDownload()\" [disabled]=\"!pdf || !data\">\n <ion-icon name=\"download-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-buttons>\n <ion-button (click)=\"onZoomOut()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n <ion-icon name=\"remove-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"onResetZoom()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n <ion-icon name=\"refresh-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"onZoomIn()\" [disabled]=\"zoom === 4 || !pdf || !data\">\n <ion-icon name=\"add-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"prevPage()\" [disabled]=\"page === 1 || !pdf || !data\">\n <ion-icon name=\"arrow-back-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <span>{{ page }}/{{ pdfNumPages }}</span>\n <ion-button (click)=\"nextPage()\" [disabled]=\"page === pdfNumPages || !pdf || !data\">\n <ion-icon name=\"arrow-forward-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-footer>\n", styles: [".euim-pdf-viewer{display:flex;flex-direction:column;height:100%;min-height:600px}.euim-pdf-viewer__container{display:block;width:100%;height:calc(100vh - var(--eui-s-5xl))}.euim-pdf-viewer__footer-zoom-container{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}\n"], dependencies: [{ kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i3.PdfViewerComponent, selector: "pdf-viewer", inputs: ["src", "c-maps-url", "page", "render-text", "render-text-mode", "original-size", "show-all", "stick-to-page", "zoom", "zoom-scale", "rotation", "external-link-target", "autoresize", "fit-to-page", "show-borders"], outputs: ["after-load-complete", "page-rendered", "pages-initialized", "text-layer-rendered", "error", "on-progress", "pageChange"] }, { kind: "component", type: i4.PinchZoomComponent, selector: "pinch-zoom, [pinch-zoom]", inputs: ["properties", "transition-duration", "transitionDuration", "double-tap", "doubleTap", "double-tap-scale", "doubleTapScale", "auto-zoom-out", "autoZoomOut", "limit-zoom", "limitZoom", "disabled", "disablePan", "overflow", "zoomControlScale", "disableZoomControl", "backgroundColor", "limitPan", "minPanScale", "minScale", "listeners", "wheel", "autoHeight", "stepZoomFactor", "wheelZoomFactor", "draggableImage"], outputs: ["onZoomChange"], exportAs: ["pinchZoom"] }, { kind: "component", type: EuimSpinnerComponent, selector: "euim-spinner" }, { kind: "component", type: EuimSpinnerMessageComponent, selector: "[euimSpinnerMessage]" }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3562
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EuimPdfViewerComponent, selector: "euim-pdf-viewer", inputs: { url: "url", page: "page" }, host: { properties: { "className": "this.className" } }, viewQueries: [{ propertyName: "pinch", first: true, predicate: ["pinch"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (loading || errorMessage) {\n<div>\n @if (loading) {\n <euim-spinner>\n <div euimSpinnerMessage>{{'euim.pdf-viewer.SPINNER-MESSAGE' | translate }}</div>\n </euim-spinner>\n }\n @if (errorMessage) {\n <div>{{'euim.pdf-viewer.LOADING-PDF-ERROR-MESSAGE' | translate }}</div>\n }\n</div>\n}\n\n<pinch-zoom [limit-zoom]=\"4\"\n [transition-duration]=\"50\"\n [zoomControlScale]=\"0.5\"\n (onZoomChange)=\"zoomChange($event)\" [wheelZoomFactor]=\"0.5\" [stepZoomFactor]=\"0.5\" #pinch>\n <div class=\"euim-pdf-viewer__container\">\n @if (data) {\n <pdf-viewer [src]=\"data\"\n [original-size]=\"false\"\n [zoom-scale]=\"'page-height'\"\n (after-load-complete)=\"onLoaded($event)\"\n (error)=\"onError()\"\n [(page)]=\"page\"\n [stick-to-page]=\"false\"\n [show-all]=\"false\"\n [render-text]=\"true\"\n style=\"width: 100%; height: 100%\">\n </pdf-viewer>\n }\n </div>\n</pinch-zoom>\n\n<ion-footer>\n <ion-toolbar color=\"primary\" class=\"euim-pdf-viewer__footer\">\n <ion-buttons slot=\"start\">\n <ion-button (click)=\"onDownload()\" [disabled]=\"!pdf || !data\">\n <ion-icon name=\"download-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-buttons>\n <ion-button (click)=\"onZoomOut()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n <ion-icon name=\"remove-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"onResetZoom()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n <ion-icon name=\"refresh-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"onZoomIn()\" [disabled]=\"zoom === 4 || !pdf || !data\">\n <ion-icon name=\"add-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"prevPage()\" [disabled]=\"page === 1 || !pdf || !data\">\n <ion-icon name=\"arrow-back-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <span>{{ page }}/{{ pdfNumPages }}</span>\n <ion-button (click)=\"nextPage()\" [disabled]=\"page === pdfNumPages || !pdf || !data\">\n <ion-icon name=\"arrow-forward-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-footer>\n", styles: [".euim-pdf-viewer{display:flex;flex-direction:column;height:100%;min-height:600px}.euim-pdf-viewer__container{display:block;width:100%;height:calc(100vh - var(--eui-s-5xl))}.euim-pdf-viewer__footer-zoom-container{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}ion-content .euim-pdf-viewer{display:flex;flex-direction:column;height:calc(100vh - var(--eui-s-5xl))}ion-content .euim-pdf-viewer__container{display:block;width:100%;height:calc(100vh - var(--eui-s-5xl) * 2)}ion-content .euim-pdf-viewer ion-footer{margin-top:auto}ion-modal .euim-pdf-viewer{height:100%;min-height:auto}ion-modal .euim-pdf-viewer__container{height:400px}@media (max-width: 767px){ion-modal .euim-pdf-viewer{height:calc(100vh - var(--eui-s-5xl))}ion-modal .euim-pdf-viewer__container{height:calc(100vh - var(--eui-s-5xl) * 2)}}\n"], dependencies: [{ kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i3.PdfViewerComponent, selector: "pdf-viewer", inputs: ["src", "c-maps-url", "page", "render-text", "render-text-mode", "original-size", "show-all", "stick-to-page", "zoom", "zoom-scale", "rotation", "external-link-target", "autoresize", "fit-to-page", "show-borders"], outputs: ["after-load-complete", "page-rendered", "pages-initialized", "text-layer-rendered", "error", "on-progress", "pageChange"] }, { kind: "component", type: i4.PinchZoomComponent, selector: "pinch-zoom, [pinch-zoom]", inputs: ["properties", "transition-duration", "transitionDuration", "double-tap", "doubleTap", "double-tap-scale", "doubleTapScale", "auto-zoom-out", "autoZoomOut", "limit-zoom", "limitZoom", "disabled", "disablePan", "overflow", "zoomControlScale", "disableZoomControl", "backgroundColor", "limitPan", "minPanScale", "minScale", "listeners", "wheel", "autoHeight", "stepZoomFactor", "wheelZoomFactor", "draggableImage"], outputs: ["onZoomChange"], exportAs: ["pinchZoom"] }, { kind: "component", type: EuimSpinnerComponent, selector: "euim-spinner" }, { kind: "component", type: EuimSpinnerMessageComponent, selector: "[euimSpinnerMessage]" }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3562
3563
|
}
|
|
3563
3564
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuimPdfViewerComponent, decorators: [{
|
|
3564
3565
|
type: Component,
|
|
3565
|
-
args: [{ selector: 'euim-pdf-viewer', encapsulation: ViewEncapsulation.None, template: "@if (loading || errorMessage) {\n<div>\n @if (loading) {\n <euim-spinner>\n <div euimSpinnerMessage>{{'euim.pdf-viewer.SPINNER-MESSAGE' | translate }}</div>\n </euim-spinner>\n }\n @if (errorMessage) {\n <div>{{'euim.pdf-viewer.LOADING-PDF-ERROR-MESSAGE' | translate }}</div>\n }\n</div>\n}\n\n<pinch-zoom [limit-zoom]=\"4\"\n [transition-duration]=\"50\"\n [zoomControlScale]=\"0.5\"\n (onZoomChange)=\"zoomChange($event)\" [wheelZoomFactor]=\"0.5\" [stepZoomFactor]=\"0.5\" #pinch>\n <div class=\"euim-pdf-viewer__container\">\n @if (data) {\n <pdf-viewer [src]=\"data\"\n [original-size]=\"false\"\n [zoom-scale]=\"'page-height'\"\n (after-load-complete)=\"onLoaded($event)\"\n (error)=\"onError()\"\n [(page)]=\"page\"\n [stick-to-page]=\"false\"\n [show-all]=\"false\"\n [render-text]=\"true\"\n style=\"width: 100%; height: 100%\">\n </pdf-viewer>\n }\n </div>\n</pinch-zoom>\n\n<ion-footer>\n <ion-toolbar color=\"primary\" class=\"euim-pdf-viewer__footer\">\n <ion-buttons slot=\"start\">\n <ion-button (click)=\"onDownload()\" [disabled]=\"!pdf || !data\">\n <ion-icon name=\"download-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-buttons>\n <ion-button (click)=\"onZoomOut()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n <ion-icon name=\"remove-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"onResetZoom()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n <ion-icon name=\"refresh-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"onZoomIn()\" [disabled]=\"zoom === 4 || !pdf || !data\">\n <ion-icon name=\"add-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"prevPage()\" [disabled]=\"page === 1 || !pdf || !data\">\n <ion-icon name=\"arrow-back-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <span>{{ page }}/{{ pdfNumPages }}</span>\n <ion-button (click)=\"nextPage()\" [disabled]=\"page === pdfNumPages || !pdf || !data\">\n <ion-icon name=\"arrow-forward-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-footer>\n", styles: [".euim-pdf-viewer{display:flex;flex-direction:column;height:100%;min-height:600px}.euim-pdf-viewer__container{display:block;width:100%;height:calc(100vh - var(--eui-s-5xl))}.euim-pdf-viewer__footer-zoom-container{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}\n"] }]
|
|
3566
|
+
args: [{ selector: 'euim-pdf-viewer', encapsulation: ViewEncapsulation.None, template: "@if (loading || errorMessage) {\n<div>\n @if (loading) {\n <euim-spinner>\n <div euimSpinnerMessage>{{'euim.pdf-viewer.SPINNER-MESSAGE' | translate }}</div>\n </euim-spinner>\n }\n @if (errorMessage) {\n <div>{{'euim.pdf-viewer.LOADING-PDF-ERROR-MESSAGE' | translate }}</div>\n }\n</div>\n}\n\n<pinch-zoom [limit-zoom]=\"4\"\n [transition-duration]=\"50\"\n [zoomControlScale]=\"0.5\"\n (onZoomChange)=\"zoomChange($event)\" [wheelZoomFactor]=\"0.5\" [stepZoomFactor]=\"0.5\" #pinch>\n <div class=\"euim-pdf-viewer__container\">\n @if (data) {\n <pdf-viewer [src]=\"data\"\n [original-size]=\"false\"\n [zoom-scale]=\"'page-height'\"\n (after-load-complete)=\"onLoaded($event)\"\n (error)=\"onError()\"\n [(page)]=\"page\"\n [stick-to-page]=\"false\"\n [show-all]=\"false\"\n [render-text]=\"true\"\n style=\"width: 100%; height: 100%\">\n </pdf-viewer>\n }\n </div>\n</pinch-zoom>\n\n<ion-footer>\n <ion-toolbar color=\"primary\" class=\"euim-pdf-viewer__footer\">\n <ion-buttons slot=\"start\">\n <ion-button (click)=\"onDownload()\" [disabled]=\"!pdf || !data\">\n <ion-icon name=\"download-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-buttons>\n <ion-button (click)=\"onZoomOut()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n <ion-icon name=\"remove-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"onResetZoom()\" [disabled]=\"zoom === 1 || !pdf || !data\">\n <ion-icon name=\"refresh-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"onZoomIn()\" [disabled]=\"zoom === 4 || !pdf || !data\">\n <ion-icon name=\"add-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"prevPage()\" [disabled]=\"page === 1 || !pdf || !data\">\n <ion-icon name=\"arrow-back-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n <span>{{ page }}/{{ pdfNumPages }}</span>\n <ion-button (click)=\"nextPage()\" [disabled]=\"page === pdfNumPages || !pdf || !data\">\n <ion-icon name=\"arrow-forward-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-footer>\n", styles: [".euim-pdf-viewer{display:flex;flex-direction:column;height:100%;min-height:600px}.euim-pdf-viewer__container{display:block;width:100%;height:calc(100vh - var(--eui-s-5xl))}.euim-pdf-viewer__footer-zoom-container{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}ion-content .euim-pdf-viewer{display:flex;flex-direction:column;height:calc(100vh - var(--eui-s-5xl))}ion-content .euim-pdf-viewer__container{display:block;width:100%;height:calc(100vh - var(--eui-s-5xl) * 2)}ion-content .euim-pdf-viewer ion-footer{margin-top:auto}ion-modal .euim-pdf-viewer{height:100%;min-height:auto}ion-modal .euim-pdf-viewer__container{height:400px}@media (max-width: 767px){ion-modal .euim-pdf-viewer{height:calc(100vh - var(--eui-s-5xl))}ion-modal .euim-pdf-viewer__container{height:calc(100vh - var(--eui-s-5xl) * 2)}}\n"] }]
|
|
3566
3567
|
}], ctorParameters: () => [{ type: i2.AlertController }, { type: i2$3.HttpClient }], propDecorators: { url: [{
|
|
3567
3568
|
type: Input
|
|
3568
3569
|
}], page: [{
|
|
3569
3570
|
type: Input
|
|
3571
|
+
}], className: [{
|
|
3572
|
+
type: HostBinding
|
|
3570
3573
|
}], pinch: [{
|
|
3571
3574
|
type: ViewChild,
|
|
3572
3575
|
args: ['pinch', { static: true }]
|