@alfresco/adf-core 8.1.0-14472605917 → 8.1.0-14486936416
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/viewer/components/pdf-viewer/pdf-viewer.component.mjs +2 -2
- package/esm2022/lib/viewer/components/viewer-render/viewer-render.component.mjs +3 -3
- package/fesm2022/adf-core.mjs +3 -3
- package/fesm2022/adf-core.mjs.map +1 -1
- package/lib/viewer/components/pdf-viewer/pdf-viewer.component.d.ts +1 -2
- package/package.json +3 -3
|
@@ -31,7 +31,7 @@ import { ToolbarComponent, ToolbarDividerComponent } from '../../../toolbar';
|
|
|
31
31
|
import { RenderingQueueServices } from '../../services/rendering-queue.services';
|
|
32
32
|
import { PdfPasswordDialogComponent } from '../pdf-viewer-password-dialog/pdf-viewer-password-dialog';
|
|
33
33
|
import { PdfThumbListComponent } from '../pdf-viewer-thumbnails/pdf-viewer-thumbnails.component';
|
|
34
|
-
import * as pdfjsLib from 'pdfjs-dist';
|
|
34
|
+
import * as pdfjsLib from 'pdfjs-dist/build/pdf.min.mjs';
|
|
35
35
|
import { EventBus, PDFViewer } from 'pdfjs-dist/web/pdf_viewer.mjs';
|
|
36
36
|
import * as i0 from "@angular/core";
|
|
37
37
|
import * as i1 from "@angular/material/button";
|
|
@@ -525,4 +525,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
525
525
|
type: HostListener,
|
|
526
526
|
args: ['document:keydown', ['$event']]
|
|
527
527
|
}] } });
|
|
528
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL3BkZi12aWV3ZXIvcGRmLXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL3BkZi12aWV3ZXIvcGRmLXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCx5REFBeUQ7QUFDekQseUNBQXlDO0FBQ3pDLHFEQUFxRDtBQUVyRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxFQUNYLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFB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QWlCLENBQUMsSUFBSTt3REFJckMsT0FBTztzQkFETixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsTUFBTTtnQkFJUCxLQUFLO3NCQURKLE1BQU07Z0JBSVAsS0FBSztzQkFESixNQUFNO2dCQUlQLFdBQVc7c0JBRFYsTUFBTTtnQkErZVAsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVuZGVyc2NvcmUtZGFuZ2xlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZSAqL1xuXG5pbXBvcnQgeyBOZ0lmLCBOZ1N0eWxlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgaW5qZWN0LFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgZnJvbSwgU3ViamVjdCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1jb25maWcnO1xuaW1wb3J0IHsgVG9vbGJhckNvbXBvbmVudCwgVG9vbGJhckRpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi90b29sYmFyJztcbmltcG9ydCB7IFJlbmRlcmluZ1F1ZXVlU2VydmljZXMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZW5kZXJpbmctcXVldWUuc2VydmljZXMnO1xuaW1wb3J0IHsgUGRmUGFzc3dvcmREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9wZGYtdmlld2VyLXBhc3N3b3JkLWRpYWxvZy9wZGYtdmlld2VyLXBhc3N3b3JkLWRpYWxvZyc7XG5pbXBvcnQgeyBQZGZUaHVtYkxpc3RDb21wb25lbnQgfSBmcm9tICcuLi9wZGYtdmlld2VyLXRodW1ibmFpbHMvcGRmLXZpZXdlci10aHVtYm5haWxzLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBwZGZqc0xpYiBmcm9tICdwZGZqcy1kaXN0JztcbmltcG9ydCB7IEV2ZW50QnVzLCBQREZWaWV3ZXIgfSBmcm9tICdwZGZqcy1kaXN0L3dlYi9wZGZfdmlld2VyLm1qcyc7XG5pbXBvcnQgeyBPblByb2dyZXNzUGFyYW1ldGVycywgUERGRG9jdW1lbnRMb2FkaW5nVGFzaywgUERGRG9jdW1lbnRQcm94eSB9IGZyb20gJ3BkZmpzLWRpc3QvdHlwZXMvc3JjL2Rpc3BsYXkvYXBpJztcblxuZXhwb3J0IHR5cGUgUGRmU2NhbGVNb2RlID0gJ2luaXQnIHwgJ3BhZ2UtYWN0dWFsJyB8ICdwYWdlLXdpZHRoJyB8ICdwYWdlLWhlaWdodCcgfCAncGFnZS1maXQnIHwgJ2F1dG8nO1xuXG5leHBvcnQgY29uc3QgUERGSlNfTU9EVUxFID0gbmV3IEluamVjdGlvblRva2VuKCdQREZKU19NT0RVTEUnLCB7IGZhY3Rvcnk6ICgpID0+IHBkZmpzTGliIH0pO1xuZXhwb3J0IGNvbnN0IFBERkpTX1ZJRVdFUl9NT0RVTEUgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ1BERkpTX1ZJRVdFUl9NT0RVTEUnLCB7IGZhY3Rvcnk6ICgpID0+IFBERlZpZXdlciB9KTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtcGRmLXZpZXdlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGRmLXZpZXdlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcGRmLXZpZXdlci1ob3N0LmNvbXBvbmVudC5zY3NzJywgJy4vcGRmLXZpZXdlci5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1JlbmRlcmluZ1F1ZXVlU2VydmljZXNdLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdhZGYtcGRmLXZpZXdlcicgfSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgICBQZGZUaHVtYkxpc3RDb21wb25lbnQsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgICAgICBOZ1N0eWxlLFxuICAgICAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgICAgICBUb29sYmFyRGl2aWRlckNvbXBvbmVudFxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBQZGZWaWV3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICB1cmxGaWxlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGJsb2JGaWxlOiBCbG9iO1xuXG4gICAgQElucHV0KClcbiAgICBmaWxlTmFtZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBzaG93VG9vbGJhcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIGFsbG93VGh1bWJuYWlscyA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICB0aHVtYm5haWxzVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBjYWNoZVR5cGU6IHN0cmluZyA9ICcnO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVuZGVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcGFnZXNMb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBwYWdlOiBudW1iZXI7XG4gICAgZGlzcGxheVBhZ2U6IG51bWJlcjtcbiAgICBfdG90YWxQYWdlczogbnVtYmVyO1xuICAgIHNldCB0b3RhbFBhZ2VzKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fdG90YWxQYWdlcyA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgdG90YWxQYWdlcygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdG90YWxQYWdlcztcbiAgICB9XG4gICAgbG9hZGluZ1BlcmNlbnQ6IG51bWJlcjtcbiAgICBwZGZWaWV3ZXI6IGFueTtcbiAgICBjdXJyZW50U2NhbGVNb2RlOiBQZGZTY2FsZU1vZGUgPSAnaW5pdCc7XG5cbiAgICBNQVhfQVVUT19TQ0FMRTogbnVtYmVyID0gMS4yNTtcbiAgICBERUZBVUxUX1NDQUxFX0RFTFRBOiBudW1iZXIgPSAxLjE7XG4gICAgTUlOX1NDQUxFOiBudW1iZXIgPSAwLjI1O1xuICAgIE1BWF9TQ0FMRTogbnVtYmVyID0gMTAuMDtcblxuICAgIGxvYWRpbmdUYXNrOiBQREZEb2N1bWVudExvYWRpbmdUYXNrO1xuICAgIGlzUGFuZWxEaXNhYmxlZCA9IHRydWU7XG4gICAgc2hvd1RodW1ibmFpbHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwZGZUaHVtYm5haWxzQ29udGV4dDogeyB2aWV3ZXI6IGFueSB9ID0geyB2aWV3ZXI6IG51bGwgfTtcbiAgICByYW5kb21QZGZJZDogc3RyaW5nO1xuICAgIGRvY3VtZW50T3ZlcmZsb3cgPSBmYWxzZTtcblxuICAgIGdldCBjdXJyZW50U2NhbGVUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnBkZlZpZXdlcj8uY3VycmVudFNjYWxlVmFsdWUgPyBNYXRoLnJvdW5kKHRoaXMucGRmVmlld2VyLmN1cnJlbnRTY2FsZVZhbHVlICogMTAwKSArICclJyA6ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXZlbnRCdXMgPSBuZXcgRXZlbnRCdXMoKTtcbiAgICBwcml2YXRlIHBkZmpzRGVmYXVsdE9wdGlvbnMgPSB7XG4gICAgICAgIGRpc2FibGVBdXRvRmV0Y2g6IHRydWUsXG4gICAgICAgIGRpc2FibGVTdHJlYW06IHRydWUsXG4gICAgICAgIGNNYXBVcmw6ICcuL2NtYXBzLycsXG4gICAgICAgIGNNYXBQYWNrZWQ6IHRydWVcbiAgICB9O1xuICAgIHByaXZhdGUgcGRmanNXb3JrZXJEZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBwcml2YXRlIGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICAgIHByaXZhdGUgcmVuZGVyaW5nUXVldWVTZXJ2aWNlcyA9IGluamVjdChSZW5kZXJpbmdRdWV1ZVNlcnZpY2VzKTtcbiAgICBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2UgPSBpbmplY3QoQXBwQ29uZmlnU2VydmljZSk7XG4gICAgcHJpdmF0ZSBwZGZqc1ZpZXdlciA9IGluamVjdChQREZKU19WSUVXRVJfTU9EVUxFKTtcbiAgICBwcml2YXRlIHBkZmpzTGliID0gaW5qZWN0KFBERkpTX01PRFVMRSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLy8gbmVlZGVkIHRvIHByZXNlcnZlIFwidGhpc1wiIGNvbnRleHRcbiAgICAgICAgdGhpcy5vblBhZ2VDaGFuZ2UgPSB0aGlzLm9uUGFnZUNoYW5nZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLm9uUGFnZXNMb2FkZWQgPSB0aGlzLm9uUGFnZXNMb2FkZWQuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5vblBhZ2VSZW5kZXJlZCA9IHRoaXMub25QYWdlUmVuZGVyZWQuYmluZCh0aGlzKTtcblxuICAgICAgICB0aGlzLnJhbmRvbVBkZklkID0gRGF0ZS5ub3coKS50b1N0cmluZygpO1xuICAgICAgICB0aGlzLnBkZmpzV29ya2VyRGVzdHJveSRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gbnVsbCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IGZyb20odGhpcy5kZXN0cm95UGRKc1dvcmtlcigpKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge30pO1xuICAgIH1cblxuICAgIGdldFVzZXJTY2FsaW5nKCk6IG51bWJlciB7XG4gICAgICAgIGxldCBzY2FsZUNvbmZpZyA9IHRoaXMuYXBwQ29uZmlnU2VydmljZS5nZXQ8bnVtYmVyPignYWRmLXZpZXdlci5wZGYtdmlld2VyLXNjYWxpbmcnLCB1bmRlZmluZWQpO1xuXG4gICAgICAgIGlmIChzY2FsZUNvbmZpZykge1xuICAgICAgICAgICAgc2NhbGVDb25maWcgPSBzY2FsZUNvbmZpZyAvIDEwMDtcbiAgICAgICAgICAgIHNjYWxlQ29uZmlnID0gdGhpcy5jaGVja0xpbWl0cyhzY2FsZUNvbmZpZyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc2NhbGVDb25maWc7XG4gICAgfVxuXG4gICAgY2hlY2tMaW1pdHMoc2NhbGVDb25maWc6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGlmIChzY2FsZUNvbmZpZyA+IHRoaXMuTUFYX1NDQUxFKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5NQVhfU0NBTEU7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NhbGVDb25maWcgPCB0aGlzLk1JTl9TQ0FMRSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuTUlOX1NDQUxFO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHNjYWxlQ29uZmlnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCBibG9iRmlsZSA9IGNoYW5nZXNbJ2Jsb2JGaWxlJ107XG5cbiAgICAgICAgaWYgKGJsb2JGaWxlPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBkZk9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMucGRmanNEZWZhdWx0T3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogcmVhZGVyLnJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0PGJvb2xlYW4+KCdhdXRoLndpdGhDcmVkZW50aWFscycsIHVuZGVmaW5lZCksXG4gICAgICAgICAgICAgICAgICAgIGlzRXZhbFN1cHBvcnRlZDogZmFsc2VcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHRoaXMuZXhlY3V0ZVBkZihwZGZPcHRpb25zKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoYmxvYkZpbGUuY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVybEZpbGUgPSBjaGFuZ2VzWyd1cmxGaWxlJ107XG4gICAgICAgIGlmICh1cmxGaWxlPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHBkZk9wdGlvbnM6IGFueSA9IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLnBkZmpzRGVmYXVsdE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgdXJsOiB1cmxGaWxlLmN1cnJlbnRWYWx1ZSxcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuYXBwQ29uZmlnU2VydmljZS5nZXQ8Ym9vbGVhbj4oJ2F1dGgud2l0aENyZWRlbnRpYWxzJywgdW5kZWZpbmVkKSxcbiAgICAgICAgICAgICAgICBpc0V2YWxTdXBwb3J0ZWQ6IGZhbHNlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHRoaXMuY2FjaGVUeXBlKSB7XG4gICAgICAgICAgICAgICAgcGRmT3B0aW9ucy5odHRwSGVhZGVycyA9IHtcbiAgICAgICAgICAgICAgICAgICAgJ0NhY2hlLUNvbnRyb2wnOiB0aGlzLmNhY2hlVHlwZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmV4ZWN1dGVQZGYocGRmT3B0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMudXJsRmlsZSAmJiAhdGhpcy5ibG9iRmlsZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdHRyaWJ1dGUgdXJsRmlsZSBvciBibG9iRmlsZSBpcyByZXF1aXJlZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZXhlY3V0ZVBkZihwZGZPcHRpb25zOiBhbnkpIHtcbiAgICAgICAgdGhpcy5wZGZqc0xpYi5HbG9iYWxXb3JrZXJPcHRpb25zLndvcmtlclNyYyA9ICdwZGYud29ya2VyLm1pbi5tanMnO1xuXG4gICAgICAgIHRoaXMubG9hZGluZ1Rhc2sgPSB0aGlzLnBkZmpzTGliLmdldERvY3VtZW50KHBkZk9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMubG9hZGluZ1Rhc2sub25QYXNzd29yZCA9IChjYWxsYmFjaywgcmVhc29uKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uUGRmUGFzc3dvcmQoY2FsbGJhY2ssIHJlYXNvbik7XG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5sb2FkaW5nVGFzay5vblByb2dyZXNzID0gKHByb2dyZXNzRGF0YTogT25Qcm9ncmVzc1BhcmFtZXRlcnMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxldmVsID0gcHJvZ3Jlc3NEYXRhLmxvYWRlZCAvIHByb2dyZXNzRGF0YS50b3RhbDtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ1BlcmNlbnQgPSBNYXRoLnJvdW5kKGxldmVsICogMTAwKTtcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmlzUGFuZWxEaXNhYmxlZCA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5sb2FkaW5nVGFzay5wcm9taXNlXG4gICAgICAgICAgICAudGhlbigocGRmRG9jdW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvdGFsUGFnZXMgPSBwZGZEb2N1bWVudC5udW1QYWdlcztcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2UgPSAxO1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVBhZ2UgPSAxO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdFBERlZpZXdlcihwZGZEb2N1bWVudCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcGRmRG9jdW1lbnQuZ2V0UGFnZSgxKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbigoKSA9PiB0aGlzLnNjYWxlUGFnZSgnaW5pdCcpKVxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHRoaXMuZXJyb3IuZW1pdCgpKTtcbiAgICB9XG5cbiAgICBpbml0UERGVmlld2VyKHBkZkRvY3VtZW50OiBQREZEb2N1bWVudFByb3h5KSB7XG4gICAgICAgIGNvbnN0IHZpZXdlcjogYW55ID0gdGhpcy5nZXRWaWV3ZXIoKTtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5nZXREb2N1bWVudENvbnRhaW5lcigpO1xuXG4gICAgICAgIGlmICh2aWV3ZXIgJiYgY29udGFpbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnBkZlZpZXdlciA9IG5ldyB0aGlzLnBkZmpzVmlld2VyKHtcbiAgICAgICAgICAgICAgICBjb250YWluZXIsXG4gICAgICAgICAgICAgICAgdmlld2VyLFxuICAgICAgICAgICAgICAgIHJlbmRlcmluZ1F1ZXVlOiB0aGlzLnJlbmRlcmluZ1F1ZXVlU2VydmljZXMsXG4gICAgICAgICAgICAgICAgZXZlbnRCdXM6IHRoaXMuZXZlbnRCdXMsXG4gICAgICAgICAgICAgICAgYW5ub3RhdGlvbk1vZGU6IDBcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyBjc3BlbGw6IGRpc2FibGUtbmV4dFxuICAgICAgICAgICAgdGhpcy5ldmVudEJ1cy5vbigncGFnZWNoYW5naW5nJywgdGhpcy5vblBhZ2VDaGFuZ2UpO1xuICAgICAgICAgICAgLy8gY3NwZWxsOiBkaXNhYmxlLW5leHRcbiAgICAgICAgICAgIHRoaXMuZXZlbnRCdXMub24oJ3BhZ2VzbG9hZGVkJywgdGhpcy5vblBhZ2VzTG9hZGVkKTtcbiAgICAgICAgICAgIC8vIGNzcGVsbDogZGlzYWJsZS1uZXh0XG4gICAgICAgICAgICB0aGlzLmV2ZW50QnVzLm9uKCd0ZXh0bGF5ZXJyZW5kZXJlZCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uUGFnZVJlbmRlcmVkKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuZXZlbnRCdXMub24oJ3BhZ2VyZW5kZXJlZCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uUGFnZVJlbmRlcmVkKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5yZW5kZXJpbmdRdWV1ZVNlcnZpY2VzLnNldFZpZXdlcih0aGlzLnBkZlZpZXdlcik7XG4gICAgICAgICAgICB0aGlzLnBkZlZpZXdlci5zZXREb2N1bWVudChwZGZEb2N1bWVudCk7XG4gICAgICAgICAgICB0aGlzLnBkZlRodW1ibmFpbHNDb250ZXh0LnZpZXdlciA9IHRoaXMucGRmVmlld2VyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLnBkZlZpZXdlcikge1xuICAgICAgICAgICAgLy8gY3NwZWxsOiBkaXNhYmxlLW5leHRcbiAgICAgICAgICAgIHRoaXMuZXZlbnRCdXMub2ZmKCdwYWdlY2hhbmdpbmcnLCAoKSA9PiB7fSk7XG4gICAgICAgICAgICAvLyBjc3BlbGw6IGRpc2FibGUtbmV4dFxuICAgICAgICAgICAgdGhpcy5ldmVudEJ1cy5vZmYoJ3BhZ2VzbG9hZGVkJywgKCkgPT4ge30pO1xuICAgICAgICAgICAgLy8gY3NwZWxsOiBkaXNhYmxlLW5leHRcbiAgICAgICAgICAgIHRoaXMuZXZlbnRCdXMub2ZmKCd0ZXh0bGF5ZXJyZW5kZXJlZCcsICgpID0+IHt9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmxvYWRpbmdUYXNrKSB7XG4gICAgICAgICAgICB0aGlzLnBkZmpzV29ya2VyRGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBkZmpzV29ya2VyRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGRlc3Ryb3lQZEpzV29ya2VyKCkge1xuICAgICAgICBpZiAodGhpcy5sb2FkaW5nVGFzay5kZXN0cm95KSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvYWRpbmdUYXNrLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvYWRpbmdUYXNrID0gbnVsbDtcbiAgICB9XG5cbiAgICB0b2dnbGVUaHVtYm5haWxzKCkge1xuICAgICAgICB0aGlzLnNob3dUaHVtYm5haWxzID0gIXRoaXMuc2hvd1RodW1ibmFpbHM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRvIHNjYWxlIHRoZSBwYWdlIGN1cnJlbnQgc3VwcG9ydCBpbXBsZW1lbnRhdGlvblxuICAgICAqXG4gICAgICogQHBhcmFtIHNjYWxlTW9kZSAtIG5ldyBzY2FsZSBtb2RlXG4gICAgICovXG4gICAgc2NhbGVQYWdlKHNjYWxlTW9kZTogUGRmU2NhbGVNb2RlKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFNjYWxlTW9kZSA9IHNjYWxlTW9kZTtcblxuICAgICAgICBjb25zdCB2aWV3ZXJDb250YWluZXIgPSB0aGlzLmdldE1haW5Db250YWluZXIoKTtcbiAgICAgICAgY29uc3QgZG9jdW1lbnRDb250YWluZXIgPSB0aGlzLmdldERvY3VtZW50Q29udGFpbmVyKCk7XG5cbiAgICAgICAgaWYgKHRoaXMucGRmVmlld2VyICYmIGRvY3VtZW50Q29udGFpbmVyKSB7XG4gICAgICAgICAgICBsZXQgd2lkdGhDb250YWluZXI6IG51bWJlcjtcbiAgICAgICAgICAgIGxldCBoZWlnaHRDb250YWluZXI6IG51bWJlcjtcblxuICAgICAgICAgICAgaWYgKHZpZXdlckNvbnRhaW5lciAmJiB2aWV3ZXJDb250YWluZXIuY2xpZW50V2lkdGggPD0gZG9jdW1lbnRDb250YWluZXIuY2xpZW50V2lkdGgpIHtcbiAgICAgICAgICAgICAgICB3aWR0aENvbnRhaW5lciA9IHZpZXdlckNvbnRhaW5lci5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICBoZWlnaHRDb250YWluZXIgPSB2aWV3ZXJDb250YWluZXIuY2xpZW50SGVpZ2h0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB3aWR0aENvbnRhaW5lciA9IGRvY3VtZW50Q29udGFpbmVyLmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgICAgIGhlaWdodENvbnRhaW5lciA9IGRvY3VtZW50Q29udGFpbmVyLmNsaWVudEhlaWdodDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY3VycmVudFBhZ2UgPSB0aGlzLnBkZlZpZXdlci5fcGFnZXNbdGhpcy5wZGZWaWV3ZXIuX2N1cnJlbnRQYWdlTnVtYmVyIC0gMV07XG5cbiAgICAgICAgICAgIGNvbnN0IHBhZGRpbmcgPSAyMDtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2VXaWR0aFNjYWxlID0gKCh3aWR0aENvbnRhaW5lciAtIHBhZGRpbmcpIC8gY3VycmVudFBhZ2Uud2lkdGgpICogY3VycmVudFBhZ2Uuc2NhbGU7XG4gICAgICAgICAgICBjb25zdCBwYWdlSGVpZ2h0U2NhbGUgPSAoKGhlaWdodENvbnRhaW5lciAtIHBhZGRpbmcpIC8gY3VycmVudFBhZ2Uud2lkdGgpICogY3VycmVudFBhZ2Uuc2NhbGU7XG5cbiAgICAgICAgICAgIGxldCBzY2FsZTogbnVtYmVyO1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLmN1cnJlbnRTY2FsZU1vZGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdpbml0JzpcbiAgICAgICAgICAgICAgICBjYXNlICdwYWdlLWZpdCc6IHtcbiAgICAgICAgICAgICAgICAgICAgc2NhbGUgPSB0aGlzLmdldFVzZXJTY2FsaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc2NhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlID0gdGhpcy5hdXRvU2NhbGluZyhwYWdlSGVpZ2h0U2NhbGUsIHBhZ2VXaWR0aFNjYWxlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAncGFnZS1hY3R1YWwnOiB7XG4gICAgICAgICAgICAgICAgICAgIHNjYWxlID0gMTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ3BhZ2Utd2lkdGgnOiB7XG4gICAgICAgICAgICAgICAgICAgIHNjYWxlID0gcGFnZVdpZHRoU2NhbGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICdwYWdlLWhlaWdodCc6IHtcbiAgICAgICAgICAgICAgICAgICAgc2NhbGUgPSBwYWdlSGVpZ2h0U2NhbGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICdhdXRvJzoge1xuICAgICAgICAgICAgICAgICAgICBzY2FsZSA9IHRoaXMuYXV0b1NjYWxpbmcocGFnZUhlaWdodFNjYWxlLCBwYWdlV2lkdGhTY2FsZSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc2V0U2NhbGVVcGRhdGVQYWdlcyhzY2FsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGF1dG9TY2FsaW5nKHBhZ2VIZWlnaHRTY2FsZTogbnVtYmVyLCBwYWdlV2lkdGhTY2FsZTogbnVtYmVyKSB7XG4gICAgICAgIGxldCBob3Jpem9udGFsU2NhbGU6IG51bWJlcjtcbiAgICAgICAgaWYgKHRoaXMuaXNMYW5kc2NhcGUpIHtcbiAgICAgICAgICAgIGhvcml6b250YWxTY2FsZSA9IE1hdGgubWluKHBhZ2VIZWlnaHRTY2FsZSwgcGFnZVdpZHRoU2NhbGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaG9yaXpvbnRhbFNjYWxlID0gcGFnZVdpZHRoU2NhbGU7XG4gICAgICAgIH1cbiAgICAgICAgaG9yaXpvbnRhbFNjYWxlID0gTWF0aC5yb3VuZChob3Jpem9udGFsU2NhbGUpO1xuICAgICAgICBjb25zdCBzY2FsZSA9IE1hdGgubWluKHRoaXMuTUFYX0FVVE9fU0NBTEUsIGhvcml6b250YWxTY2FsZSk7XG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrUGFnZUZpdEluQ29udGFpbmVyKHNjYWxlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1haW5Db250YWluZXIoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5yYW5kb21QZGZJZH0tdmlld2VyLW1haW4tY29udGFpbmVyYCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREb2N1bWVudENvbnRhaW5lcigpOiBIVE1MRGl2RWxlbWVudCB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLnJhbmRvbVBkZklkfS12aWV3ZXItcGRmLXZpZXdlcmApIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Vmlld2VyKCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGAke3RoaXMucmFuZG9tUGRmSWR9LXZpZXdlci12aWV3ZXJQZGZgKTtcbiAgICB9XG5cbiAgICBjaGVja1BhZ2VGaXRJbkNvbnRhaW5lcihzY2FsZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgZG9jdW1lbnRDb250YWluZXJTaXplID0gdGhpcy5nZXREb2N1bWVudENvbnRhaW5lcigpO1xuICAgICAgICBjb25zdCBwYWdlID0gdGhpcy5wZGZWaWV3ZXIuX3BhZ2VzW3RoaXMucGRmVmlld2VyLl9jdXJyZW50UGFnZU51bWJlciAtIDFdO1xuXG4gICAgICAgIGlmIChwYWdlLndpZHRoID4gZG9jdW1lbnRDb250YWluZXJTaXplLmNsaWVudFdpZHRoKSB7XG4gICAgICAgICAgICBzY2FsZSA9IE1hdGguZnJvdW5kKChkb2N1bWVudENvbnRhaW5lclNpemUuY2xpZW50V2lkdGggLSAyMCkgLyBwYWdlLndpZHRoKTtcbiAgICAgICAgICAgIGlmIChzY2FsZSA8IHRoaXMuTUlOX1NDQUxFKSB7XG4gICAgICAgICAgICAgICAgc2NhbGUgPSB0aGlzLk1JTl9TQ0FMRTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzY2FsZTtcbiAgICB9XG5cbiAgICBzZXREb2N1bWVudE92ZXJmbG93KCkge1xuICAgICAgICBjb25zdCBkb2N1bWVudENvbnRhaW5lclNpemUgPSB0aGlzLmdldERvY3VtZW50Q29udGFpbmVyKCk7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSB0aGlzLnBkZlZpZXdlci5fcGFnZXNbdGhpcy5wZGZWaWV3ZXIuX2N1cnJlbnRQYWdlTnVtYmVyIC0gMV07XG5cbiAgICAgICAgdGhpcy5kb2N1bWVudE92ZXJmbG93ID0gcGFnZS53aWR0aCA+IGRvY3VtZW50Q29udGFpbmVyU2l6ZS5jbGllbnRXaWR0aDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgYWxsIHRoZSBwYWdlcyB3aXRoIHRoZSBuZXdTY2FsZSBzY2FsZVxuICAgICAqXG4gICAgICogQHBhcmFtIG5ld1NjYWxlIC0gbmV3IHNjYWxlIHBhZ2VcbiAgICAgKi9cbiAgICBzZXRTY2FsZVVwZGF0ZVBhZ2VzKG5ld1NjYWxlOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMucGRmVmlld2VyKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNTYW1lU2NhbGUodGhpcy5wZGZWaWV3ZXIuY3VycmVudFNjYWxlVmFsdWUsIG5ld1NjYWxlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGRmVmlld2VyLmN1cnJlbnRTY2FsZVZhbHVlID0gbmV3U2NhbGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucGRmVmlld2VyLnVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0RG9jdW1lbnRPdmVyZmxvdygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHRoZSByZXF1ZXN0IHNjYWxlIG9mIHRoZSBwYWdlIGlzIHRoZSBzYW1lIGZvciBhdm9pZCB1c2VsZXNzIHJlLXJlbmRlcmluZ1xuICAgICAqXG4gICAgICogQHBhcmFtIG9sZFNjYWxlIC0gb2xkIHNjYWxlIHBhZ2VcbiAgICAgKiBAcGFyYW0gbmV3U2NhbGUgLSBuZXcgc2NhbGUgcGFnZVxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgc2NhbGUgaXMgdGhlIHNhbWUsIG90aGVyd2lzZSBgZmFsc2VgXG4gICAgICovXG4gICAgaXNTYW1lU2NhbGUob2xkU2NhbGU6IG51bWJlciwgbmV3U2NhbGU6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gbmV3U2NhbGUgPT09IG9sZFNjYWxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGlzIGEgbGFuZCBzY2FwZSB2aWV3XG4gICAgICpcbiAgICAgKiBAcGFyYW0gd2lkdGggdGFyZ2V0IHdpZHRoXG4gICAgICogQHBhcmFtIGhlaWdodCB0YXJnZXQgaGVpZ2h0XG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSB0YXJnZXQgaXMgaW4gdGhlIGxhbmRzY2FwZSBtb2RlLCBvdGhlcndpc2UgYGZhbHNlYFxuICAgICAqL1xuICAgIGlzTGFuZHNjYXBlKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB3aWR0aCA+IGhlaWdodDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdHJpZ2dlcmVkIHdoZW4gdGhlIHBhZ2UgaXMgcmVzaXplZFxuICAgICAqL1xuICAgIG9uUmVzaXplKCkge1xuICAgICAgICB0aGlzLnNjYWxlUGFnZSh0aGlzLmN1cnJlbnRTY2FsZU1vZGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHRvZ2dsZSB0aGUgZml0IHBhZ2UgcGRmXG4gICAgICovXG4gICAgcGFnZUZpdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFNjYWxlTW9kZSAhPT0gJ3BhZ2UtZml0Jykge1xuICAgICAgICAgICAgdGhpcy5zY2FsZVBhZ2UoJ3BhZ2UtZml0Jyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNjYWxlUGFnZSgnYXV0bycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogem9vbSBpbiBwYWdlIHBkZlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpY2tzIG51bWJlciBvZiB0aWNrcyB0byB6b29tXG4gICAgICovXG4gICAgem9vbUluKHRpY2tzPzogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGxldCBuZXdTY2FsZTogYW55ID0gdGhpcy5wZGZWaWV3ZXIuY3VycmVudFNjYWxlVmFsdWU7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIG5ld1NjYWxlID0gKG5ld1NjYWxlICogdGhpcy5ERUZBVUxUX1NDQUxFX0RFTFRBKS50b0ZpeGVkKDIpO1xuICAgICAgICAgICAgbmV3U2NhbGUgPSBNYXRoLmNlaWwobmV3U2NhbGUgKiAxMCkgLyAxMDtcbiAgICAgICAgICAgIG5ld1NjYWxlID0gTWF0aC5taW4odGhpcy5NQVhfU0NBTEUsIG5ld1NjYWxlKTtcbiAgICAgICAgfSB3aGlsZSAoLS10aWNrcyA+IDAgJiYgbmV3U2NhbGUgPCB0aGlzLk1BWF9TQ0FMRSk7XG4gICAgICAgIHRoaXMuY3VycmVudFNjYWxlTW9kZSA9ICdhdXRvJztcbiAgICAgICAgdGhpcy5zZXRTY2FsZVVwZGF0ZVBhZ2VzKG5ld1NjYWxlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB6b29tIG91dCBwYWdlIHBkZlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpY2tzIG51bWJlciBvZiB0aWNrcyB0byBzY2FsZVxuICAgICAqL1xuICAgIHpvb21PdXQodGlja3M/OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgbGV0IG5ld1NjYWxlOiBhbnkgPSB0aGlzLnBkZlZpZXdlci5jdXJyZW50U2NhbGVWYWx1ZTtcbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgbmV3U2NhbGUgPSAobmV3U2NhbGUgLyB0aGlzLkRFRkFVTFRfU0NBTEVfREVMVEEpLnRvRml4ZWQoMik7XG4gICAgICAgICAgICBuZXdTY2FsZSA9IE1hdGguZmxvb3IobmV3U2NhbGUgKiAxMCkgLyAxMDtcbiAgICAgICAgICAgIG5ld1NjYWxlID0gTWF0aC5tYXgodGhpcy5NSU5fU0NBTEUsIG5ld1NjYWxlKTtcbiAgICAgICAgfSB3aGlsZSAoLS10aWNrcyA+IDAgJiYgbmV3U2NhbGUgPiB0aGlzLk1JTl9TQ0FMRSk7XG4gICAgICAgIHRoaXMuY3VycmVudFNjYWxlTW9kZSA9ICdhdXRvJztcbiAgICAgICAgdGhpcy5zZXRTY2FsZVVwZGF0ZVBhZ2VzKG5ld1NjYWxlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBsb2FkIHRoZSBwcmV2aW91cyBwYWdlXG4gICAgICovXG4gICAgcHJldmlvdXNQYWdlKCkge1xuICAgICAgICBpZiAodGhpcy5wZGZWaWV3ZXIgJiYgdGhpcy5wYWdlID4gMSkge1xuICAgICAgICAgICAgdGhpcy5wYWdlLS07XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlQYWdlID0gdGhpcy5wYWdlO1xuXG4gICAgICAgICAgICB0aGlzLnBkZlZpZXdlci5jdXJyZW50UGFnZU51bWJlciA9IHRoaXMucGFnZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGxvYWQgdGhlIG5leHQgcGFnZVxuICAgICAqL1xuICAgIG5leHRQYWdlKCkge1xuICAgICAgICBpZiAodGhpcy5wZGZWaWV3ZXIgJiYgdGhpcy5wYWdlIDwgdGhpcy50b3RhbFBhZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2UrKztcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVBhZ2UgPSB0aGlzLnBhZ2U7XG5cbiAgICAgICAgICAgIHRoaXMucGRmVmlld2VyLmN1cnJlbnRQYWdlTnVtYmVyID0gdGhpcy5wYWdlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogbG9hZCB0aGUgcGFnZSBpbiBpbnB1dFxuICAgICAqXG4gICAgICogQHBhcmFtIHBhZ2UgdG8gbG9hZFxuICAgICAqL1xuICAgIGlucHV0UGFnZShwYWdlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgcGFnZUlucHV0ID0gcGFyc2VJbnQocGFnZSwgMTApO1xuXG4gICAgICAgIGlmICghaXNOYU4ocGFnZUlucHV0KSAmJiBwYWdlSW5wdXQgPiAwICYmIHBhZ2VJbnB1dCA8PSB0aGlzLnRvdGFsUGFnZXMpIHtcbiAgICAgICAgICAgIHRoaXMucGFnZSA9IHBhZ2VJbnB1dDtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVBhZ2UgPSB0aGlzLnBhZ2U7XG4gICAgICAgICAgICB0aGlzLnBkZlZpZXdlci5jdXJyZW50UGFnZU51bWJlciA9IHRoaXMucGFnZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVBhZ2UgPSB0aGlzLnBhZ2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYWdlIENoYW5nZSBFdmVudFxuICAgICAqXG4gICAgICogQHBhcmFtIGV2ZW50IGV2ZW50XG4gICAgICovXG4gICAgb25QYWdlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgaWYgKGV2ZW50LnNvdXJjZSAmJiBldmVudC5zb3VyY2UuY29udGFpbmVyLmlkID09PSBgJHt0aGlzLnJhbmRvbVBkZklkfS12aWV3ZXItcGRmLXZpZXdlcmApIHtcbiAgICAgICAgICAgIHRoaXMucGFnZSA9IGV2ZW50LnBhZ2VOdW1iZXI7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlQYWdlID0gZXZlbnQucGFnZU51bWJlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUGRmUGFzc3dvcmQoY2FsbGJhY2ssIHJlYXNvbikge1xuICAgICAgICB0aGlzLmRpYWxvZ1xuICAgICAgICAgICAgLm9wZW4oUGRmUGFzc3dvcmREaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJzQwMHB4JyxcbiAgICAgICAgICAgICAgICBkYXRhOiB7IHJlYXNvbiB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHBhc3N3b3JkKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHBhc3N3b3JkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHBhc3N3b3JkKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlLmVtaXQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYWdlIFJlbmRlcmVkIEV2ZW50XG4gICAgICovXG4gICAgb25QYWdlUmVuZGVyZWQoKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZWQuZW1pdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhZ2VzIExvYWRlZCBFdmVudFxuICAgICAqXG4gICAgICovXG4gICAgb25QYWdlc0xvYWRlZCgpIHtcbiAgICAgICAgdGhpcy5wYWdlc0xvYWRlZC5lbWl0KCk7XG4gICAgICAgIHRoaXMuaXNQYW5lbERpc2FibGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogS2V5Ym9hcmQgRXZlbnQgTGlzdGVuZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSBldmVudCBLZXlib2FyZEV2ZW50XG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBjb25zdCBrZXkgPSBldmVudC5rZXlDb2RlO1xuICAgICAgICBpZiAoa2V5ID09PSAzOSkge1xuICAgICAgICAgICAgLy8gcmlnaHQgYXJyb3dcbiAgICAgICAgICAgIHRoaXMubmV4dFBhZ2UoKTtcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09IDM3KSB7XG4gICAgICAgICAgICAvLyBsZWZ0IGFycm93XG4gICAgICAgICAgICB0aGlzLnByZXZpb3VzUGFnZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFkZi1wZGYtdmlld2VyX19jb250YWluZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1RodW1ibmFpbHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1wZGYtdmlld2VyX190aHVtYm5haWxzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLXRodW1ibmFpbHMtdGVtcGxhdGVfX2NvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtdGh1bWJuYWlscy10ZW1wbGF0ZV9fYnV0dG9uc1wiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD0nYWRmLXRodW1ibmFpbHMtY2xvc2UnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVRodW1ibmFpbHMoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQURGX1ZJRVdFUi5BUklBLlRIVU1CTkFJTFNfUEFOTEVMX0NMT1NFJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQURGX1ZJRVdFUi5BQ1RJT05TLkNMT1NFJyB8IHRyYW5zbGF0ZSB9fVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGh1bWJuYWlsc1RlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aHVtYm5haWxzVGVtcGxhdGU7Y29udGV4dDpwZGZUaHVtYm5haWxzQ29udGV4dFwiIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPGFkZi1wZGYtdGh1bWJuYWlscyAqbmdJZj1cIiF0aHVtYm5haWxzVGVtcGxhdGUgJiYgIWlzUGFuZWxEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2UpPVwidG9nZ2xlVGh1bWJuYWlscygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwZGZWaWV3ZXJdPVwicGRmVmlld2VyXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXYgY2xhc3M9XCJhZGYtcGRmLXZpZXdlcl9fY29udGVudFwiPlxuICAgICAgICA8ZGl2IFtpZF09XCJyYW5kb21QZGZJZCArICctdmlld2VyLXBkZi12aWV3ZXInXCJcbiAgICAgICAgICAgICBjbGFzcz1cImFkZi12aWV3ZXItcGRmLXZpZXdlclwiXG4gICAgICAgICAgICAgKHdpbmRvdzpyZXNpemUpPVwib25SZXNpemUoKVwiPlxuICAgICAgICAgICAgPGRpdiBbaWRdPVwicmFuZG9tUGRmSWQgKyAnLXZpZXdlci12aWV3ZXJQZGYnXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtcGRmVmlld2VyXCJcbiAgICAgICAgICAgICAgICAgcm9sZT1cImRvY3VtZW50XCJcbiAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwibG9hZGVyLWNvbnRhaW5lclwiIGNsYXNzPVwiYWRmLWxvYWRlci1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1sb2FkZXItaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgY2xhc3M9XCJhZGYtbG9hZGVyLWl0ZW0tcHJvZ3Jlc3MtYmFyXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiYWRmLXBkZi12aWV3ZXJfX3Rvb2xiYXJcIiAqbmdJZj1cInNob3dUb29sYmFyXCIgW25nU3R5bGVdPVwiZG9jdW1lbnRPdmVyZmxvdyAmJiB7Ym90dG9tOiAnMjVweCd9XCI+XG4gICAgPGFkZi10b29sYmFyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhbGxvd1RodW1ibmFpbHNcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FERl9WSUVXRVIuQVJJQS5USFVNQk5BSUxTJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwic2hvd1RodW1ibmFpbHNcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtdGh1bWJuYWlscy1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNQYW5lbERpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVRodW1ibmFpbHMoKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5kYXNoYm9hcmQ8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YWRmLXRvb2xiYXItZGl2aWRlciAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8YnV0dG9uIGlkPVwidmlld2VyLXByZXZpb3VzLXBhZ2UtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdBREZfVklFV0VSLkFSSUEuUFJFVklPVVNfUEFHRScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7ICdBREZfVklFV0VSLkFSSUEuUFJFVklPVVNfUEFHRScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwcmV2aW91c1BhZ2UoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmtleWJvYXJkX2Fycm93X3VwPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvbiBpZD1cInZpZXdlci1uZXh0LXBhZ2UtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdBREZfVklFV0VSLkFSSUEuTkVYVF9QQUdFJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwie3sgJ0FERl9WSUVXRVIuQVJJQS5ORVhUX1BBR0UnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibmV4dFBhZ2UoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmtleWJvYXJkX2Fycm93X2Rvd248L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLXBkZi12aWV3ZXJfX3Rvb2xiYXItcGFnZS1zZWxlY3RvclwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBhZ2Utc2VsZWN0b3JcIj57eyAnQURGX1ZJRVdFUi5QQUdFX0xBQkVMLlNIT1dJTkcnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCAjcGFnZVxuICAgICAgICAgICAgICAgICAgIGlkPVwicGFnZS1zZWxlY3RvclwiXG4gICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1wYWdlLXNlbGVjdG9yXCJcbiAgICAgICAgICAgICAgICAgICBwYXR0ZXJuPVwiLT9bMC05XSooXFwuWzAtOV0rKT9cIlxuICAgICAgICAgICAgICAgICAgIHZhbHVlPVwie3sgZGlzcGxheVBhZ2UgfX1cIlxuICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FERl9WSUVXRVIuUEFHRV9MQUJFTC5QQUdFX1NFTEVDVE9SX0xBQkVMJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImlucHV0UGFnZShwYWdlLnZhbHVlKVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgJ0FERl9WSUVXRVIuUEFHRV9MQUJFTC5PRicgfCB0cmFuc2xhdGUgfX0ge3sgdG90YWxQYWdlcyB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1wZGYtdmlld2VyX190b29sYmFyLXBhZ2Utc2NhbGVcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtcGFnZS1zY2FsZVwiPlxuICAgICAgICAgICAge3sgY3VycmVudFNjYWxlVGV4dCB9fVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YnV0dG9uIGlkPVwidmlld2VyLXpvb20taW4tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdBREZfVklFV0VSLkFSSUEuWk9PTV9JTicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7ICdBREZfVklFV0VSLkFSSUEuWk9PTV9JTicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ6b29tSW4oKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPnpvb21faW48L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uIGlkPVwidmlld2VyLXpvb20tb3V0LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQURGX1ZJRVdFUi5BUklBLlpPT01fT1VUJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwie3sgJ0FERl9WSUVXRVIuQVJJQS5aT09NX09VVCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ6b29tT3V0KClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj56b29tX291dDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b24gaWQ9XCJ2aWV3ZXItc2NhbGUtcGFnZS1idXR0b25cIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIiBhcmlhLXByZXNzZWQ9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdBREZfVklFV0VSLkFSSUEuRklUX1BBR0UnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJ7eyAnQURGX1ZJRVdFUi5BUklBLkZJVF9QQUdFJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBhZ2VGaXQoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPnpvb21fb3V0X21hcDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgPC9hZGYtdG9vbGJhcj5cbjwvZGl2PlxuIl19
|
|
528
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL3BkZi12aWV3ZXIvcGRmLXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL3BkZi12aWV3ZXIvcGRmLXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCx5REFBeUQ7QUFDekQseUNBQXlDO0FBQ3pDLHFEQUFxRDtBQUVyRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxFQUNYLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFB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QkFBaUIsQ0FBQyxJQUFJO3dEQUlyQyxPQUFPO3NCQUROLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxNQUFNO2dCQUlQLEtBQUs7c0JBREosTUFBTTtnQkFJUCxLQUFLO3NCQURKLE1BQU07Z0JBSVAsV0FBVztzQkFEVixNQUFNO2dCQStlUCxtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZXJzY29yZS1kYW5nbGUgKi9cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlICovXG5cbmltcG9ydCB7IE5nSWYsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBmcm9tLCBTdWJqZWN0LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLWNvbmZpZyc7XG5pbXBvcnQgeyBUb29sYmFyQ29tcG9uZW50LCBUb29sYmFyRGl2aWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3Rvb2xiYXInO1xuaW1wb3J0IHsgUmVuZGVyaW5nUXVldWVTZXJ2aWNlcyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JlbmRlcmluZy1xdWV1ZS5zZXJ2aWNlcyc7XG5pbXBvcnQgeyBQZGZQYXNzd29yZERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL3BkZi12aWV3ZXItcGFzc3dvcmQtZGlhbG9nL3BkZi12aWV3ZXItcGFzc3dvcmQtZGlhbG9nJztcbmltcG9ydCB7IFBkZlRodW1iTGlzdENvbXBvbmVudCB9IGZyb20gJy4uL3BkZi12aWV3ZXItdGh1bWJuYWlscy9wZGYtdmlld2VyLXRodW1ibmFpbHMuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIHBkZmpzTGliIGZyb20gJ3BkZmpzLWRpc3QvYnVpbGQvcGRmLm1pbi5tanMnO1xuaW1wb3J0IHsgRXZlbnRCdXMsIFBERlZpZXdlciB9IGZyb20gJ3BkZmpzLWRpc3Qvd2ViL3BkZl92aWV3ZXIubWpzJztcbmltcG9ydCB7IE9uUHJvZ3Jlc3NQYXJhbWV0ZXJzLCBQREZEb2N1bWVudExvYWRpbmdUYXNrLCBQREZEb2N1bWVudFByb3h5IH0gZnJvbSAncGRmanMtZGlzdC90eXBlcy9zcmMvZGlzcGxheS9hcGknO1xuXG5leHBvcnQgdHlwZSBQZGZTY2FsZU1vZGUgPSAnaW5pdCcgfCAncGFnZS1hY3R1YWwnIHwgJ3BhZ2Utd2lkdGgnIHwgJ3BhZ2UtaGVpZ2h0JyB8ICdwYWdlLWZpdCcgfCAnYXV0byc7XG5cbmV4cG9ydCBjb25zdCBQREZKU19NT0RVTEUgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ1BERkpTX01PRFVMRScsIHsgZmFjdG9yeTogKCkgPT4gcGRmanNMaWIgfSk7XG5leHBvcnQgY29uc3QgUERGSlNfVklFV0VSX01PRFVMRSA9IG5ldyBJbmplY3Rpb25Ub2tlbignUERGSlNfVklFV0VSX01PRFVMRScsIHsgZmFjdG9yeTogKCkgPT4gUERGVmlld2VyIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1wZGYtdmlld2VyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wZGYtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wZGYtdmlld2VyLWhvc3QuY29tcG9uZW50LnNjc3MnLCAnLi9wZGYtdmlld2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbUmVuZGVyaW5nUXVldWVTZXJ2aWNlc10sXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1wZGYtdmlld2VyJyB9LFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIFBkZlRodW1iTGlzdENvbXBvbmVudCxcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgICAgIE5nU3R5bGUsXG4gICAgICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgICAgIFRvb2xiYXJEaXZpZGVyQ29tcG9uZW50XG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFBkZlZpZXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKVxuICAgIHVybEZpbGU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgYmxvYkZpbGU6IEJsb2I7XG5cbiAgICBASW5wdXQoKVxuICAgIGZpbGVOYW1lOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHNob3dUb29sYmFyOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dUaHVtYm5haWxzID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHRodW1ibmFpbHNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIGNhY2hlVHlwZTogc3RyaW5nID0gJyc7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZW5kZXJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwYWdlc0xvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIHBhZ2U6IG51bWJlcjtcbiAgICBkaXNwbGF5UGFnZTogbnVtYmVyO1xuICAgIF90b3RhbFBhZ2VzOiBudW1iZXI7XG4gICAgc2V0IHRvdGFsUGFnZXModmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLl90b3RhbFBhZ2VzID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCB0b3RhbFBhZ2VzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl90b3RhbFBhZ2VzO1xuICAgIH1cbiAgICBsb2FkaW5nUGVyY2VudDogbnVtYmVyO1xuICAgIHBkZlZpZXdlcjogYW55O1xuICAgIGN1cnJlbnRTY2FsZU1vZGU6IFBkZlNjYWxlTW9kZSA9ICdpbml0JztcblxuICAgIE1BWF9BVVRPX1NDQUxFOiBudW1iZXIgPSAxLjI1O1xuICAgIERFRkFVTFRfU0NBTEVfREVMVEE6IG51bWJlciA9IDEuMTtcbiAgICBNSU5fU0NBTEU6IG51bWJlciA9IDAuMjU7XG4gICAgTUFYX1NDQUxFOiBudW1iZXIgPSAxMC4wO1xuXG4gICAgbG9hZGluZ1Rhc2s6IFBERkRvY3VtZW50TG9hZGluZ1Rhc2s7XG4gICAgaXNQYW5lbERpc2FibGVkID0gdHJ1ZTtcbiAgICBzaG93VGh1bWJuYWlsczogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHBkZlRodW1ibmFpbHNDb250ZXh0OiB7IHZpZXdlcjogYW55IH0gPSB7IHZpZXdlcjogbnVsbCB9O1xuICAgIHJhbmRvbVBkZklkOiBzdHJpbmc7XG4gICAgZG9jdW1lbnRPdmVyZmxvdyA9IGZhbHNlO1xuXG4gICAgZ2V0IGN1cnJlbnRTY2FsZVRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGRmVmlld2VyPy5jdXJyZW50U2NhbGVWYWx1ZSA/IE1hdGgucm91bmQodGhpcy5wZGZWaWV3ZXIuY3VycmVudFNjYWxlVmFsdWUgKiAxMDApICsgJyUnIDogJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBldmVudEJ1cyA9IG5ldyBFdmVudEJ1cygpO1xuICAgIHByaXZhdGUgcGRmanNEZWZhdWx0T3B0aW9ucyA9IHtcbiAgICAgICAgZGlzYWJsZUF1dG9GZXRjaDogdHJ1ZSxcbiAgICAgICAgZGlzYWJsZVN0cmVhbTogdHJ1ZSxcbiAgICAgICAgY01hcFVybDogJy4vY21hcHMvJyxcbiAgICAgICAgY01hcFBhY2tlZDogdHJ1ZVxuICAgIH07XG4gICAgcHJpdmF0ZSBwZGZqc1dvcmtlckRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIHByaXZhdGUgZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG4gICAgcHJpdmF0ZSByZW5kZXJpbmdRdWV1ZVNlcnZpY2VzID0gaW5qZWN0KFJlbmRlcmluZ1F1ZXVlU2VydmljZXMpO1xuICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZSA9IGluamVjdChBcHBDb25maWdTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHBkZmpzVmlld2VyID0gaW5qZWN0KFBERkpTX1ZJRVdFUl9NT0RVTEUpO1xuICAgIHByaXZhdGUgcGRmanNMaWIgPSBpbmplY3QoUERGSlNfTU9EVUxFKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvLyBuZWVkZWQgdG8gcHJlc2VydmUgXCJ0aGlzXCIgY29udGV4dFxuICAgICAgICB0aGlzLm9uUGFnZUNoYW5nZSA9IHRoaXMub25QYWdlQ2hhbmdlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMub25QYWdlc0xvYWRlZCA9IHRoaXMub25QYWdlc0xvYWRlZC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLm9uUGFnZVJlbmRlcmVkID0gdGhpcy5vblBhZ2VSZW5kZXJlZC5iaW5kKHRoaXMpO1xuXG4gICAgICAgIHRoaXMucmFuZG9tUGRmSWQgPSBEYXRlLm5vdygpLnRvU3RyaW5nKCk7XG4gICAgICAgIHRoaXMucGRmanNXb3JrZXJEZXN0cm95JFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBudWxsKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gZnJvbSh0aGlzLmRlc3Ryb3lQZEpzV29ya2VyKCkpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7fSk7XG4gICAgfVxuXG4gICAgZ2V0VXNlclNjYWxpbmcoKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IHNjYWxlQ29uZmlnID0gdGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldDxudW1iZXI+KCdhZGYtdmlld2VyLnBkZi12aWV3ZXItc2NhbGluZycsIHVuZGVmaW5lZCk7XG5cbiAgICAgICAgaWYgKHNjYWxlQ29uZmlnKSB7XG4gICAgICAgICAgICBzY2FsZUNvbmZpZyA9IHNjYWxlQ29uZmlnIC8gMTAwO1xuICAgICAgICAgICAgc2NhbGVDb25maWcgPSB0aGlzLmNoZWNrTGltaXRzKHNjYWxlQ29uZmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzY2FsZUNvbmZpZztcbiAgICB9XG5cbiAgICBjaGVja0xpbWl0cyhzY2FsZUNvbmZpZzogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHNjYWxlQ29uZmlnID4gdGhpcy5NQVhfU0NBTEUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLk1BWF9TQ0FMRTtcbiAgICAgICAgfSBlbHNlIGlmIChzY2FsZUNvbmZpZyA8IHRoaXMuTUlOX1NDQUxFKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5NSU5fU0NBTEU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gc2NhbGVDb25maWc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGNvbnN0IGJsb2JGaWxlID0gY2hhbmdlc1snYmxvYkZpbGUnXTtcblxuICAgICAgICBpZiAoYmxvYkZpbGU/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGRmT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5wZGZqc0RlZmF1bHRPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiByZWFkZXIucmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuYXBwQ29uZmlnU2VydmljZS5nZXQ8Ym9vbGVhbj4oJ2F1dGgud2l0aENyZWRlbnRpYWxzJywgdW5kZWZpbmVkKSxcbiAgICAgICAgICAgICAgICAgICAgaXNFdmFsU3VwcG9ydGVkOiBmYWxzZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdGhpcy5leGVjdXRlUGRmKHBkZk9wdGlvbnMpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihibG9iRmlsZS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdXJsRmlsZSA9IGNoYW5nZXNbJ3VybEZpbGUnXTtcbiAgICAgICAgaWYgKHVybEZpbGU/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgcGRmT3B0aW9uczogYW55ID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMucGRmanNEZWZhdWx0T3B0aW9ucyxcbiAgICAgICAgICAgICAgICB1cmw6IHVybEZpbGUuY3VycmVudFZhbHVlLFxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldDxib29sZWFuPignYXV0aC53aXRoQ3JlZGVudGlhbHMnLCB1bmRlZmluZWQpLFxuICAgICAgICAgICAgICAgIGlzRXZhbFN1cHBvcnRlZDogZmFsc2VcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAodGhpcy5jYWNoZVR5cGUpIHtcbiAgICAgICAgICAgICAgICBwZGZPcHRpb25zLmh0dHBIZWFkZXJzID0ge1xuICAgICAgICAgICAgICAgICAgICAnQ2FjaGUtQ29udHJvbCc6IHRoaXMuY2FjaGVUeXBlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZXhlY3V0ZVBkZihwZGZPcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy51cmxGaWxlICYmICF0aGlzLmJsb2JGaWxlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0dHJpYnV0ZSB1cmxGaWxlIG9yIGJsb2JGaWxlIGlzIHJlcXVpcmVkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBleGVjdXRlUGRmKHBkZk9wdGlvbnM6IGFueSkge1xuICAgICAgICB0aGlzLnBkZmpzTGliLkdsb2JhbFdvcmtlck9wdGlvbnMud29ya2VyU3JjID0gJ3BkZi53b3JrZXIubWluLm1qcyc7XG5cbiAgICAgICAgdGhpcy5sb2FkaW5nVGFzayA9IHRoaXMucGRmanNMaWIuZ2V0RG9jdW1lbnQocGRmT3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5sb2FkaW5nVGFzay5vblBhc3N3b3JkID0gKGNhbGxiYWNrLCByZWFzb24pID0+IHtcbiAgICAgICAgICAgIHRoaXMub25QZGZQYXNzd29yZChjYWxsYmFjaywgcmVhc29uKTtcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmxvYWRpbmdUYXNrLm9uUHJvZ3Jlc3MgPSAocHJvZ3Jlc3NEYXRhOiBPblByb2dyZXNzUGFyYW1ldGVycykgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGV2ZWwgPSBwcm9ncmVzc0RhdGEubG9hZGVkIC8gcHJvZ3Jlc3NEYXRhLnRvdGFsO1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nUGVyY2VudCA9IE1hdGgucm91bmQobGV2ZWwgKiAxMDApO1xuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuaXNQYW5lbERpc2FibGVkID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmxvYWRpbmdUYXNrLnByb21pc2VcbiAgICAgICAgICAgIC50aGVuKChwZGZEb2N1bWVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudG90YWxQYWdlcyA9IHBkZkRvY3VtZW50Lm51bVBhZ2VzO1xuICAgICAgICAgICAgICAgIHRoaXMucGFnZSA9IDE7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5UGFnZSA9IDE7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0UERGVmlld2VyKHBkZkRvY3VtZW50KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBwZGZEb2N1bWVudC5nZXRQYWdlKDEpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHRoaXMuc2NhbGVQYWdlKCdpbml0JykpXG4gICAgICAgICAgICAuY2F0Y2goKCkgPT4gdGhpcy5lcnJvci5lbWl0KCkpO1xuICAgIH1cblxuICAgIGluaXRQREZWaWV3ZXIocGRmRG9jdW1lbnQ6IFBERkRvY3VtZW50UHJveHkpIHtcbiAgICAgICAgY29uc3Qgdmlld2VyOiBhbnkgPSB0aGlzLmdldFZpZXdlcigpO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmdldERvY3VtZW50Q29udGFpbmVyKCk7XG5cbiAgICAgICAgaWYgKHZpZXdlciAmJiBjb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMucGRmVmlld2VyID0gbmV3IHRoaXMucGRmanNWaWV3ZXIoe1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lcixcbiAgICAgICAgICAgICAgICB2aWV3ZXIsXG4gICAgICAgICAgICAgICAgcmVuZGVyaW5nUXVldWU6IHRoaXMucmVuZGVyaW5nUXVldWVTZXJ2aWNlcyxcbiAgICAgICAgICAgICAgICBldmVudEJ1czogdGhpcy5ldmVudEJ1cyxcbiAgICAgICAgICAgICAgICBhbm5vdGF0aW9uTW9kZTogMFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIGNzcGVsbDogZGlzYWJsZS1uZXh0XG4gICAgICAgICAgICB0aGlzLmV2ZW50QnVzLm9uKCdwYWdlY2hhbmdpbmcnLCB0aGlzLm9uUGFnZUNoYW5nZSk7XG4gICAgICAgICAgICAvLyBjc3BlbGw6IGRpc2FibGUtbmV4dFxuICAgICAgICAgICAgdGhpcy5ldmVudEJ1cy5vbigncGFnZXNsb2FkZWQnLCB0aGlzLm9uUGFnZXNMb2FkZWQpO1xuICAgICAgICAgICAgLy8gY3NwZWxsOiBkaXNhYmxlLW5leHRcbiAgICAgICAgICAgIHRoaXMuZXZlbnRCdXMub24oJ3RleHRsYXllcnJlbmRlcmVkJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25QYWdlUmVuZGVyZWQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5ldmVudEJ1cy5vbigncGFnZXJlbmRlcmVkJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25QYWdlUmVuZGVyZWQoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmluZ1F1ZXVlU2VydmljZXMuc2V0Vmlld2VyKHRoaXMucGRmVmlld2VyKTtcbiAgICAgICAgICAgIHRoaXMucGRmVmlld2VyLnNldERvY3VtZW50KHBkZkRvY3VtZW50KTtcbiAgICAgICAgICAgIHRoaXMucGRmVGh1bWJuYWlsc0NvbnRleHQudmlld2VyID0gdGhpcy5wZGZWaWV3ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMucGRmVmlld2VyKSB7XG4gICAgICAgICAgICAvLyBjc3BlbGw6IGRpc2FibGUtbmV4dFxuICAgICAgICAgICAgdGhpcy5ldmVudEJ1cy5vZmYoJ3BhZ2VjaGFuZ2luZycsICgpID0+IHt9KTtcbiAgICAgICAgICAgIC8vIGNzcGVsbDogZGlzYWJsZS1uZXh0XG4gICAgICAgICAgICB0aGlzLmV2ZW50QnVzLm9mZigncGFnZXNsb2FkZWQnLCAoKSA9PiB7fSk7XG4gICAgICAgICAgICAvLyBjc3BlbGw6IGRpc2FibGUtbmV4dFxuICAgICAgICAgICAgdGhpcy5ldmVudEJ1cy5vZmYoJ3RleHRsYXllcnJlbmRlcmVkJywgKCkgPT4ge30pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubG9hZGluZ1Rhc2spIHtcbiAgICAgICAgICAgIHRoaXMucGRmanNXb3JrZXJEZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGRmanNXb3JrZXJEZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgZGVzdHJveVBkSnNXb3JrZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmxvYWRpbmdUYXNrLmRlc3Ryb3kpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZGluZ1Rhc2suZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9hZGluZ1Rhc2sgPSBudWxsO1xuICAgIH1cblxuICAgIHRvZ2dsZVRodW1ibmFpbHMoKSB7XG4gICAgICAgIHRoaXMuc2hvd1RodW1ibmFpbHMgPSAhdGhpcy5zaG93VGh1bWJuYWlscztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gc2NhbGUgdGhlIHBhZ2UgY3VycmVudCBzdXBwb3J0IGltcGxlbWVudGF0aW9uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2NhbGVNb2RlIC0gbmV3IHNjYWxlIG1vZGVcbiAgICAgKi9cbiAgICBzY2FsZVBhZ2Uoc2NhbGVNb2RlOiBQZGZTY2FsZU1vZGUpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50U2NhbGVNb2RlID0gc2NhbGVNb2RlO1xuXG4gICAgICAgIGNvbnN0IHZpZXdlckNvbnRhaW5lciA9IHRoaXMuZ2V0TWFpbkNvbnRhaW5lcigpO1xuICAgICAgICBjb25zdCBkb2N1bWVudENvbnRhaW5lciA9IHRoaXMuZ2V0RG9jdW1lbnRDb250YWluZXIoKTtcblxuICAgICAgICBpZiAodGhpcy5wZGZWaWV3ZXIgJiYgZG9jdW1lbnRDb250YWluZXIpIHtcbiAgICAgICAgICAgIGxldCB3aWR0aENvbnRhaW5lcjogbnVtYmVyO1xuICAgICAgICAgICAgbGV0IGhlaWdodENvbnRhaW5lcjogbnVtYmVyO1xuXG4gICAgICAgICAgICBpZiAodmlld2VyQ29udGFpbmVyICYmIHZpZXdlckNvbnRhaW5lci5jbGllbnRXaWR0aCA8PSBkb2N1bWVudENvbnRhaW5lci5jbGllbnRXaWR0aCkge1xuICAgICAgICAgICAgICAgIHdpZHRoQ29udGFpbmVyID0gdmlld2VyQ29udGFpbmVyLmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgICAgIGhlaWdodENvbnRhaW5lciA9IHZpZXdlckNvbnRhaW5lci5jbGllbnRIZWlnaHQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdpZHRoQ29udGFpbmVyID0gZG9jdW1lbnRDb250YWluZXIuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0Q29udGFpbmVyID0gZG9jdW1lbnRDb250YWluZXIuY2xpZW50SGVpZ2h0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50UGFnZSA9IHRoaXMucGRmVmlld2VyLl9wYWdlc1t0aGlzLnBkZlZpZXdlci5fY3VycmVudFBhZ2VOdW1iZXIgLSAxXTtcblxuICAgICAgICAgICAgY29uc3QgcGFkZGluZyA9IDIwO1xuICAgICAgICAgICAgY29uc3QgcGFnZVdpZHRoU2NhbGUgPSAoKHdpZHRoQ29udGFpbmVyIC0gcGFkZGluZykgLyBjdXJyZW50UGFnZS53aWR0aCkgKiBjdXJyZW50UGFnZS5zY2FsZTtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2VIZWlnaHRTY2FsZSA9ICgoaGVpZ2h0Q29udGFpbmVyIC0gcGFkZGluZykgLyBjdXJyZW50UGFnZS53aWR0aCkgKiBjdXJyZW50UGFnZS5zY2FsZTtcblxuICAgICAgICAgICAgbGV0IHNjYWxlOiBudW1iZXI7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY3VycmVudFNjYWxlTW9kZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2luaXQnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3BhZ2UtZml0Jzoge1xuICAgICAgICAgICAgICAgICAgICBzY2FsZSA9IHRoaXMuZ2V0VXNlclNjYWxpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzY2FsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGUgPSB0aGlzLmF1dG9TY2FsaW5nKHBhZ2VIZWlnaHRTY2FsZSwgcGFnZVdpZHRoU2NhbGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICdwYWdlLWFjdHVhbCc6IHtcbiAgICAgICAgICAgICAgICAgICAgc2NhbGUgPSAxO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAncGFnZS13aWR0aCc6IHtcbiAgICAgICAgICAgICAgICAgICAgc2NhbGUgPSBwYWdlV2lkdGhTY2FsZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ3BhZ2UtaGVpZ2h0Jzoge1xuICAgICAgICAgICAgICAgICAgICBzY2FsZSA9IHBhZ2VIZWlnaHRTY2FsZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ2F1dG8nOiB7XG4gICAgICAgICAgICAgICAgICAgIHNjYWxlID0gdGhpcy5hdXRvU2NhbGluZyhwYWdlSGVpZ2h0U2NhbGUsIHBhZ2VXaWR0aFNjYWxlKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zZXRTY2FsZVVwZGF0ZVBhZ2VzKHNjYWxlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXV0b1NjYWxpbmcocGFnZUhlaWdodFNjYWxlOiBudW1iZXIsIHBhZ2VXaWR0aFNjYWxlOiBudW1iZXIpIHtcbiAgICAgICAgbGV0IGhvcml6b250YWxTY2FsZTogbnVtYmVyO1xuICAgICAgICBpZiAodGhpcy5pc0xhbmRzY2FwZSkge1xuICAgICAgICAgICAgaG9yaXpvbnRhbFNjYWxlID0gTWF0aC5taW4ocGFnZUhlaWdodFNjYWxlLCBwYWdlV2lkdGhTY2FsZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBob3Jpem9udGFsU2NhbGUgPSBwYWdlV2lkdGhTY2FsZTtcbiAgICAgICAgfVxuICAgICAgICBob3Jpem9udGFsU2NhbGUgPSBNYXRoLnJvdW5kKGhvcml6b250YWxTY2FsZSk7XG4gICAgICAgIGNvbnN0IHNjYWxlID0gTWF0aC5taW4odGhpcy5NQVhfQVVUT19TQ0FMRSwgaG9yaXpvbnRhbFNjYWxlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tQYWdlRml0SW5Db250YWluZXIoc2NhbGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TWFpbkNvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLnJhbmRvbVBkZklkfS12aWV3ZXItbWFpbi1jb250YWluZXJgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERvY3VtZW50Q29udGFpbmVyKCk6IEhUTUxEaXZFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGAke3RoaXMucmFuZG9tUGRmSWR9LXZpZXdlci1wZGYtdmlld2VyYCkgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRWaWV3ZXIoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5yYW5kb21QZGZJZH0tdmlld2VyLXZpZXdlclBkZmApO1xuICAgIH1cblxuICAgIGNoZWNrUGFnZUZpdEluQ29udGFpbmVyKHNjYWxlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBkb2N1bWVudENvbnRhaW5lclNpemUgPSB0aGlzLmdldERvY3VtZW50Q29udGFpbmVyKCk7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSB0aGlzLnBkZlZpZXdlci5fcGFnZXNbdGhpcy5wZGZWaWV3ZXIuX2N1cnJlbnRQYWdlTnVtYmVyIC0gMV07XG5cbiAgICAgICAgaWYgKHBhZ2Uud2lkdGggPiBkb2N1bWVudENvbnRhaW5lclNpemUuY2xpZW50V2lkdGgpIHtcbiAgICAgICAgICAgIHNjYWxlID0gTWF0aC5mcm91bmQoKGRvY3VtZW50Q29udGFpbmVyU2l6ZS5jbGllbnRXaWR0aCAtIDIwKSAvIHBhZ2Uud2lkdGgpO1xuICAgICAgICAgICAgaWYgKHNjYWxlIDwgdGhpcy5NSU5fU0NBTEUpIHtcbiAgICAgICAgICAgICAgICBzY2FsZSA9IHRoaXMuTUlOX1NDQUxFO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNjYWxlO1xuICAgIH1cblxuICAgIHNldERvY3VtZW50T3ZlcmZsb3coKSB7XG4gICAgICAgIGNvbnN0IGRvY3VtZW50Q29udGFpbmVyU2l6ZSA9IHRoaXMuZ2V0RG9jdW1lbnRDb250YWluZXIoKTtcbiAgICAgICAgY29uc3QgcGFnZSA9IHRoaXMucGRmVmlld2VyLl9wYWdlc1t0aGlzLnBkZlZpZXdlci5fY3VycmVudFBhZ2VOdW1iZXIgLSAxXTtcblxuICAgICAgICB0aGlzLmRvY3VtZW50T3ZlcmZsb3cgPSBwYWdlLndpZHRoID4gZG9jdW1lbnRDb250YWluZXJTaXplLmNsaWVudFdpZHRoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBhbGwgdGhlIHBhZ2VzIHdpdGggdGhlIG5ld1NjYWxlIHNjYWxlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3U2NhbGUgLSBuZXcgc2NhbGUgcGFnZVxuICAgICAqL1xuICAgIHNldFNjYWxlVXBkYXRlUGFnZXMobmV3U2NhbGU6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5wZGZWaWV3ZXIpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1NhbWVTY2FsZSh0aGlzLnBkZlZpZXdlci5jdXJyZW50U2NhbGVWYWx1ZSwgbmV3U2NhbGUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wZGZWaWV3ZXIuY3VycmVudFNjYWxlVmFsdWUgPSBuZXdTY2FsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5wZGZWaWV3ZXIudXBkYXRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXREb2N1bWVudE92ZXJmbG93KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIHJlcXVlc3Qgc2NhbGUgb2YgdGhlIHBhZ2UgaXMgdGhlIHNhbWUgZm9yIGF2b2lkIHVzZWxlc3MgcmUtcmVuZGVyaW5nXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb2xkU2NhbGUgLSBvbGQgc2NhbGUgcGFnZVxuICAgICAqIEBwYXJhbSBuZXdTY2FsZSAtIG5ldyBzY2FsZSBwYWdlXG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBzY2FsZSBpcyB0aGUgc2FtZSwgb3RoZXJ3aXNlIGBmYWxzZWBcbiAgICAgKi9cbiAgICBpc1NhbWVTY2FsZShvbGRTY2FsZTogbnVtYmVyLCBuZXdTY2FsZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBuZXdTY2FsZSA9PT0gb2xkU2NhbGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgaXMgYSBsYW5kIHNjYXBlIHZpZXdcbiAgICAgKlxuICAgICAqIEBwYXJhbSB3aWR0aCB0YXJnZXQgd2lkdGhcbiAgICAgKiBAcGFyYW0gaGVpZ2h0IHRhcmdldCBoZWlnaHRcbiAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHRhcmdldCBpcyBpbiB0aGUgbGFuZHNjYXBlIG1vZGUsIG90aGVyd2lzZSBgZmFsc2VgXG4gICAgICovXG4gICAgaXNMYW5kc2NhcGUod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHdpZHRoID4gaGVpZ2h0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0cmlnZ2VyZWQgd2hlbiB0aGUgcGFnZSBpcyByZXNpemVkXG4gICAgICovXG4gICAgb25SZXNpemUoKSB7XG4gICAgICAgIHRoaXMuc2NhbGVQYWdlKHRoaXMuY3VycmVudFNjYWxlTW9kZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdG9nZ2xlIHRoZSBmaXQgcGFnZSBwZGZcbiAgICAgKi9cbiAgICBwYWdlRml0KCkge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50U2NhbGVNb2RlICE9PSAncGFnZS1maXQnKSB7XG4gICAgICAgICAgICB0aGlzLnNjYWxlUGFnZSgncGFnZS1maXQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2NhbGVQYWdlKCdhdXRvJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB6b29tIGluIHBhZ2UgcGRmXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGlja3MgbnVtYmVyIG9mIHRpY2tzIHRvIHpvb21cbiAgICAgKi9cbiAgICB6b29tSW4odGlja3M/OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgbGV0IG5ld1NjYWxlOiBhbnkgPSB0aGlzLnBkZlZpZXdlci5jdXJyZW50U2NhbGVWYWx1ZTtcbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgbmV3U2NhbGUgPSAobmV3U2NhbGUgKiB0aGlzLkRFRkFVTFRfU0NBTEVfREVMVEEpLnRvRml4ZWQoMik7XG4gICAgICAgICAgICBuZXdTY2FsZSA9IE1hdGguY2VpbChuZXdTY2FsZSAqIDEwKSAvIDEwO1xuICAgICAgICAgICAgbmV3U2NhbGUgPSBNYXRoLm1pbih0aGlzLk1BWF9TQ0FMRSwgbmV3U2NhbGUpO1xuICAgICAgICB9IHdoaWxlICgtLXRpY2tzID4gMCAmJiBuZXdTY2FsZSA8IHRoaXMuTUFYX1NDQUxFKTtcbiAgICAgICAgdGhpcy5jdXJyZW50U2NhbGVNb2RlID0gJ2F1dG8nO1xuICAgICAgICB0aGlzLnNldFNjYWxlVXBkYXRlUGFnZXMobmV3U2NhbGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHpvb20gb3V0IHBhZ2UgcGRmXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGlja3MgbnVtYmVyIG9mIHRpY2tzIHRvIHNjYWxlXG4gICAgICovXG4gICAgem9vbU91dCh0aWNrcz86IG51bWJlcik6IHZvaWQge1xuICAgICAgICBsZXQgbmV3U2NhbGU6IGFueSA9IHRoaXMucGRmVmlld2VyLmN1cnJlbnRTY2FsZVZhbHVlO1xuICAgICAgICBkbyB7XG4gICAgICAgICAgICBuZXdTY2FsZSA9IChuZXdTY2FsZSAvIHRoaXMuREVGQVVMVF9TQ0FMRV9ERUxUQSkudG9GaXhlZCgyKTtcbiAgICAgICAgICAgIG5ld1NjYWxlID0gTWF0aC5mbG9vcihuZXdTY2FsZSAqIDEwKSAvIDEwO1xuICAgICAgICAgICAgbmV3U2NhbGUgPSBNYXRoLm1heCh0aGlzLk1JTl9TQ0FMRSwgbmV3U2NhbGUpO1xuICAgICAgICB9IHdoaWxlICgtLXRpY2tzID4gMCAmJiBuZXdTY2FsZSA+IHRoaXMuTUlOX1NDQUxFKTtcbiAgICAgICAgdGhpcy5jdXJyZW50U2NhbGVNb2RlID0gJ2F1dG8nO1xuICAgICAgICB0aGlzLnNldFNjYWxlVXBkYXRlUGFnZXMobmV3U2NhbGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGxvYWQgdGhlIHByZXZpb3VzIHBhZ2VcbiAgICAgKi9cbiAgICBwcmV2aW91c1BhZ2UoKSB7XG4gICAgICAgIGlmICh0aGlzLnBkZlZpZXdlciAmJiB0aGlzLnBhZ2UgPiAxKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2UtLTtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVBhZ2UgPSB0aGlzLnBhZ2U7XG5cbiAgICAgICAgICAgIHRoaXMucGRmVmlld2VyLmN1cnJlbnRQYWdlTnVtYmVyID0gdGhpcy5wYWdlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogbG9hZCB0aGUgbmV4dCBwYWdlXG4gICAgICovXG4gICAgbmV4dFBhZ2UoKSB7XG4gICAgICAgIGlmICh0aGlzLnBkZlZpZXdlciAmJiB0aGlzLnBhZ2UgPCB0aGlzLnRvdGFsUGFnZXMpIHtcbiAgICAgICAgICAgIHRoaXMucGFnZSsrO1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5UGFnZSA9IHRoaXMucGFnZTtcblxuICAgICAgICAgICAgdGhpcy5wZGZWaWV3ZXIuY3VycmVudFBhZ2VOdW1iZXIgPSB0aGlzLnBhZ2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBsb2FkIHRoZSBwYWdlIGluIGlucHV0XG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFnZSB0byBsb2FkXG4gICAgICovXG4gICAgaW5wdXRQYWdlKHBhZ2U6IHN0cmluZykge1xuICAgICAgICBjb25zdCBwYWdlSW5wdXQgPSBwYXJzZUludChwYWdlLCAxMCk7XG5cbiAgICAgICAgaWYgKCFpc05hTihwYWdlSW5wdXQpICYmIHBhZ2VJbnB1dCA+IDAgJiYgcGFnZUlucHV0IDw9IHRoaXMudG90YWxQYWdlcykge1xuICAgICAgICAgICAgdGhpcy5wYWdlID0gcGFnZUlucHV0O1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5UGFnZSA9IHRoaXMucGFnZTtcbiAgICAgICAgICAgIHRoaXMucGRmVmlld2VyLmN1cnJlbnRQYWdlTnVtYmVyID0gdGhpcy5wYWdlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5UGFnZSA9IHRoaXMucGFnZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhZ2UgQ2hhbmdlIEV2ZW50XG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXZlbnQgZXZlbnRcbiAgICAgKi9cbiAgICBvblBhZ2VDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgICAgICBpZiAoZXZlbnQuc291cmNlICYmIGV2ZW50LnNvdXJjZS5jb250YWluZXIuaWQgPT09IGAke3RoaXMucmFuZG9tUGRmSWR9LXZpZXdlci1wZGYtdmlld2VyYCkge1xuICAgICAgICAgICAgdGhpcy5wYWdlID0gZXZlbnQucGFnZU51bWJlcjtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVBhZ2UgPSBldmVudC5wYWdlTnVtYmVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25QZGZQYXNzd29yZChjYWxsYmFjaywgcmVhc29uKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nXG4gICAgICAgICAgICAub3BlbihQZGZQYXNzd29yZERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgICAgICAgICAgIGRhdGE6IHsgcmVhc29uIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocGFzc3dvcmQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocGFzc3dvcmQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2socGFzc3dvcmQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhZ2UgUmVuZGVyZWQgRXZlbnRcbiAgICAgKi9cbiAgICBvblBhZ2VSZW5kZXJlZCgpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlZC5lbWl0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFnZXMgTG9hZGVkIEV2ZW50XG4gICAgICpcbiAgICAgKi9cbiAgICBvblBhZ2VzTG9hZGVkKCkge1xuICAgICAgICB0aGlzLnBhZ2VzTG9hZGVkLmVtaXQoKTtcbiAgICAgICAgdGhpcy5pc1BhbmVsRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBLZXlib2FyZCBFdmVudCBMaXN0ZW5lclxuICAgICAqXG4gICAgICogQHBhcmFtIGV2ZW50IEtleWJvYXJkRXZlbnRcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleUNvZGU7XG4gICAgICAgIGlmIChrZXkgPT09IDM5KSB7XG4gICAgICAgICAgICAvLyByaWdodCBhcnJvd1xuICAgICAgICAgICAgdGhpcy5uZXh0UGFnZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gMzcpIHtcbiAgICAgICAgICAgIC8vIGxlZnQgYXJyb3dcbiAgICAgICAgICAgIHRoaXMucHJldmlvdXNQYWdlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWRmLXBkZi12aWV3ZXJfX2NvbnRhaW5lclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93VGh1bWJuYWlsc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLXBkZi12aWV3ZXJfX3RodW1ibmFpbHNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtdGh1bWJuYWlscy10ZW1wbGF0ZV9fY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi10aHVtYm5haWxzLXRlbXBsYXRlX19idXR0b25zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPSdhZGYtdGh1bWJuYWlscy1jbG9zZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlVGh1bWJuYWlscygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBREZfVklFV0VSLkFSSUEuVEhVTUJOQUlMU19QQU5MRUxfQ0xPU0UnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdBREZfVklFV0VSLkFDVElPTlMuQ0xPU0UnIHwgdHJhbnNsYXRlIH19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0aHVtYm5haWxzVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRodW1ibmFpbHNUZW1wbGF0ZTtjb250ZXh0OnBkZlRodW1ibmFpbHNDb250ZXh0XCIgLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8YWRmLXBkZi10aHVtYm5haWxzICpuZ0lmPVwiIXRodW1ibmFpbHNUZW1wbGF0ZSAmJiAhaXNQYW5lbERpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbG9zZSk9XCJ0b2dnbGVUaHVtYm5haWxzKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BkZlZpZXdlcl09XCJwZGZWaWV3ZXJcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGRpdiBjbGFzcz1cImFkZi1wZGYtdmlld2VyX19jb250ZW50XCI+XG4gICAgICAgIDxkaXYgW2lkXT1cInJhbmRvbVBkZklkICsgJy12aWV3ZXItcGRmLXZpZXdlcidcIlxuICAgICAgICAgICAgIGNsYXNzPVwiYWRmLXZpZXdlci1wZGYtdmlld2VyXCJcbiAgICAgICAgICAgICAod2luZG93OnJlc2l6ZSk9XCJvblJlc2l6ZSgpXCI+XG4gICAgICAgICAgICA8ZGl2IFtpZF09XCJyYW5kb21QZGZJZCArICctdmlld2VyLXZpZXdlclBkZidcIlxuICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1wZGZWaWV3ZXJcIlxuICAgICAgICAgICAgICAgICByb2xlPVwiZG9jdW1lbnRcIlxuICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJsb2FkZXItY29udGFpbmVyXCIgY2xhc3M9XCJhZGYtbG9hZGVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWxvYWRlci1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBjbGFzcz1cImFkZi1sb2FkZXItaXRlbS1wcm9ncmVzcy1iYXJcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJhZGYtcGRmLXZpZXdlcl9fdG9vbGJhclwiICpuZ0lmPVwic2hvd1Rvb2xiYXJcIiBbbmdTdHlsZV09XCJkb2N1bWVudE92ZXJmbG93ICYmIHtib3R0b206ICcyNXB4J31cIj5cbiAgICA8YWRmLXRvb2xiYXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFsbG93VGh1bWJuYWlsc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQURGX1ZJRVdFUi5BUklBLlRIVU1CTkFJTFMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJzaG93VGh1bWJuYWlsc1wiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi10aHVtYm5haWxzLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1BhbmVsRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlVGh1bWJuYWlscygpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmRhc2hib2FyZDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxhZGYtdG9vbGJhci1kaXZpZGVyIC8+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxidXR0b24gaWQ9XCJ2aWV3ZXItcHJldmlvdXMtcGFnZS1idXR0b25cIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FERl9WSUVXRVIuQVJJQS5QUkVWSU9VU19QQUdFJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwie3sgJ0FERl9WSUVXRVIuQVJJQS5QUkVWSU9VU19QQUdFJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInByZXZpb3VzUGFnZSgpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfdXA8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uIGlkPVwidmlld2VyLW5leHQtcGFnZS1idXR0b25cIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FERl9WSUVXRVIuQVJJQS5ORVhUX1BBR0UnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJ7eyAnQURGX1ZJRVdFUi5BUklBLk5FWFRfUEFHRScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJuZXh0UGFnZSgpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfZG93bjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtcGRmLXZpZXdlcl9fdG9vbGJhci1wYWdlLXNlbGVjdG9yXCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwicGFnZS1zZWxlY3RvclwiPnt7ICdBREZfVklFV0VSLlBBR0VfTEFCRUwuU0hPV0lORycgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0ICNwYWdlXG4gICAgICAgICAgICAgICAgICAgaWQ9XCJwYWdlLXNlbGVjdG9yXCJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLXBhZ2Utc2VsZWN0b3JcIlxuICAgICAgICAgICAgICAgICAgIHBhdHRlcm49XCItP1swLTldKihcXC5bMC05XSspP1wiXG4gICAgICAgICAgICAgICAgICAgdmFsdWU9XCJ7eyBkaXNwbGF5UGFnZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQURGX1ZJRVdFUi5QQUdFX0xBQkVMLlBBR0VfU0VMRUNUT1JfTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwiaW5wdXRQYWdlKHBhZ2UudmFsdWUpXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyAnQURGX1ZJRVdFUi5QQUdFX0xBQkVMLk9GJyB8IHRyYW5zbGF0ZSB9fSB7eyB0b3RhbFBhZ2VzIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLXBkZi12aWV3ZXJfX3Rvb2xiYXItcGFnZS1zY2FsZVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1wYWdlLXNjYWxlXCI+XG4gICAgICAgICAgICB7eyBjdXJyZW50U2NhbGVUZXh0IH19XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxidXR0b24gaWQ9XCJ2aWV3ZXItem9vbS1pbi1idXR0b25cIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FERl9WSUVXRVIuQVJJQS5aT09NX0lOJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwie3sgJ0FERl9WSUVXRVIuQVJJQS5aT09NX0lOJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInpvb21JbigpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+em9vbV9pbjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b24gaWQ9XCJ2aWV3ZXItem9vbS1vdXQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdBREZfVklFV0VSLkFSSUEuWk9PTV9PVVQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJ7eyAnQURGX1ZJRVdFUi5BUklBLlpPT01fT1VUJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInpvb21PdXQoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPnpvb21fb3V0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvbiBpZD1cInZpZXdlci1zY2FsZS1wYWdlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiIGFyaWEtcHJlc3NlZD1cInRydWVcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FERl9WSUVXRVIuQVJJQS5GSVRfUEFHRScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7ICdBREZfVklFV0VSLkFSSUEuRklUX1BBR0UnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGFnZUZpdCgpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+em9vbV9vdXRfbWFwPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICA8L2FkZi10b29sYmFyPlxuPC9kaXY+XG4iXX0=
|
|
@@ -151,7 +151,7 @@ export class ViewerRenderComponent {
|
|
|
151
151
|
this.close.next(true);
|
|
152
152
|
}
|
|
153
153
|
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: "
|
|
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 }); }
|
|
155
155
|
}
|
|
156
156
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ViewerRenderComponent, decorators: [{
|
|
157
157
|
type: Component,
|
|
@@ -170,7 +170,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
170
170
|
ExtensionsModule,
|
|
171
171
|
NgForOf,
|
|
172
172
|
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 <
|
|
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"] }]
|
|
174
174
|
}], ctorParameters: () => [{ type: i1.ViewUtilService }, { type: i2.AppExtensionService }, { type: i3.MatDialog }, { type: i0.Injector }], propDecorators: { urlFile: [{
|
|
175
175
|
type: Input
|
|
176
176
|
}], blobFile: [{
|
|
@@ -208,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
208
208
|
}], isSaving: [{
|
|
209
209
|
type: Output
|
|
210
210
|
}] } });
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLXJlbmRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL3ZpZXdlci1yZW5kZXIvdmlld2VyLXJlbmRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL3ZpZXdlci1yZW5kZXIvdmlld2VyLXJlbmRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQXNCLE1BQU0sMEJBQTBCLENBQUM7QUFDckcsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hF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QUNSLFlBQVk7d0JBQ1osSUFBSTt3QkFDSixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3dCQUN0QixnQkFBZ0I7d0JBQ2hCLE9BQU87d0JBQ1AsZUFBZTtxQkFDbEIsYUFDVSxDQUFDLGVBQWUsQ0FBQztxS0FRNUIsT0FBTztzQkFETixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBU04sa0JBQWtCO3NCQURqQixLQUFLO2dCQVFOLE1BQU07c0JBREwsS0FBSztnQkFLTixNQUFNO3NCQURMLEtBQUs7Z0JBS04sd0JBQXdCO3NCQUR2QixLQUFLO2dCQUtOLFdBQVc7c0JBRFYsS0FBSztnQkFLTixlQUFlO3NCQURkLE1BQU07Z0JBS1AsVUFBVTtzQkFEVCxNQUFNO2dCQUtQLEtBQUs7c0JBREosTUFBTTtnQkFLUCxRQUFRO3NCQURQLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEFwcEV4dGVuc2lvblNlcnZpY2UsIEV4dGVuc2lvbnNNb2R1bGUsIFZpZXdlckV4dGVuc2lvblJlZiB9IGZyb20gJ0BhbGZyZXNjby9hZGYtZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBOZ0Zvck9mLCBOZ0lmLCBOZ1N3aXRjaCwgTmdTd2l0Y2hDYXNlLCBOZ1N3aXRjaERlZmF1bHQsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFRyYWNrIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3ZpZXdlci5tb2RlbCc7XG5pbXBvcnQgeyBWaWV3VXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92aWV3LXV0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBJbWdWaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuLi9pbWctdmlld2VyL2ltZy12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1lZGlhUGxheWVyQ29tcG9uZW50IH0gZnJvbSAnLi4vbWVkaWEtcGxheWVyL21lZGlhLXBsYXllci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRmVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vcGRmLXZpZXdlci9wZGYtdmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUeHRWaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuLi90eHQtdmlld2VyL3R4dC12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFVua25vd25Gb3JtYXRDb21wb25lbnQgfSBmcm9tICcuLi91bmtub3duLWZvcm1hdC91bmtub3duLWZvcm1hdC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi12aWV3ZXItcmVuZGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi92aWV3ZXItcmVuZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi92aWV3ZXItcmVuZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi12aWV3ZXItcmVuZGVyJyB9LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICAgICAgTmdTd2l0Y2gsXG4gICAgICAgIE5nU3dpdGNoQ2FzZSxcbiAgICAgICAgTmdJZixcbiAgICAgICAgUGRmVmlld2VyQ29tcG9uZW50LFxuICAgICAgICBJbWdWaWV3ZXJDb21wb25lbnQsXG4gICAgICAgIE1lZGlhUGxheWVyQ29tcG9uZW50LFxuICAgICAgICBUeHRWaWV3ZXJDb21wb25lbnQsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIFVua25vd25Gb3JtYXRDb21wb25lbnQsXG4gICAgICAgIEV4dGVuc2lvbnNNb2R1bGUsXG4gICAgICAgIE5nRm9yT2YsXG4gICAgICAgIE5nU3dpdGNoRGVmYXVsdFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbVmlld1V0aWxTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBWaWV3ZXJSZW5kZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICogSWYgeW91IHdhbnQgdG8gbG9hZCBhbiBleHRlcm5hbCBmaWxlIHRoYXQgZG9lcyBub3QgY29tZSBmcm9tIEFDUyB5b3VcbiAgICAgKiBjYW4gdXNlIHRoaXMgVVJMIHRvIHNwZWNpZnkgd2hlcmUgdG8gbG9hZCB0aGUgZmlsZSBmcm9tLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdXJsRmlsZSA9ICcnO1xuXG4gICAgLyoqIExvYWRzIGEgQmxvYiBGaWxlICovXG4gICAgQElucHV0KClcbiAgICBibG9iRmlsZTogQmxvYjtcblxuICAgIC8qKiBUb2dnbGVzIHRoZSAnRnVsbCBTY3JlZW4nIGZlYXR1cmUuICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd0Z1bGxTY3JlZW4gPSB0cnVlO1xuXG4gICAgLyoqIFRvZ2dsZXMgUERGIHRodW1ibmFpbHMuICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd1RodW1ibmFpbHMgPSB0cnVlO1xuXG4gICAgLyoqIFRoZSB0ZW1wbGF0ZSBmb3IgdGhlIHBkZiB0aHVtYm5haWxzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGh1bWJuYWlsc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcblxuICAgIC8qKiBNSU1FIHR5cGUgb2YgdGhlIGZpbGUgY29udGVudCAod2hlbiBub3QgZGV0ZXJtaW5lZCBieSB0aGUgZmlsZW5hbWUgZXh0ZW5zaW9uKS4gKi9cbiAgICBASW5wdXQoKVxuICAgIG1pbWVUeXBlOiBzdHJpbmc7XG5cbiAgICAvKiogT3ZlcnJpZGUgQ29udGVudCBmaWxlbmFtZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZpbGVOYW1lOiBzdHJpbmc7XG5cbiAgICAvKiogT3ZlcnJpZGUgbG9hZGluZyBzdGF0dXMgKi9cbiAgICBASW5wdXQoKVxuICAgIGlzTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgLyoqIEVuYWJsZSB3aGVuIHdoZXJlIGlzIHBvc3NpYmxlIHRoZSBlZGl0aW5nIGZ1bmN0aW9uYWxpdGllcyAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlYWRPbmx5ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIENvbnRyb2xzIHdoaWNoIGFjdGlvbnMgYXJlIGVuYWJsZWQgaW4gdGhlIHZpZXdlci5cbiAgICAgKiBFeGFtcGxlOlxuICAgICAqIHsgcm90YXRlOiB0cnVlLCBjcm9wOiBmYWxzZSB9IHdpbGwgZW5hYmxlIHJvdGF0aW9uIGJ1dCBkaXNhYmxlIGNyb3BwaW5nLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dlZEVkaXRBY3Rpb25zOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHtcbiAgICAgICAgcm90YXRlOiB0cnVlLFxuICAgICAgICBjcm9wOiB0cnVlXG4gICAgfTtcblxuICAgIC8qKiBtZWRpYSBzdWJ0aXRsZXMgZm9yIHRoZSBtZWRpYSBwbGF5ZXIqL1xuICAgIEBJbnB1dCgpXG4gICAgdHJhY2tzOiBUcmFja1tdID0gW107XG5cbiAgICAvKiogSWRlbnRpZmllciBvZiBhIG5vZGUgdGhhdCBpcyBvcGVuZWQgYnkgdGhlIHZpZXdlci4gKi9cbiAgICBASW5wdXQoKVxuICAgIG5vZGVJZDogc3RyaW5nID0gbnVsbDtcblxuICAgIC8qKiBUZW1wbGF0ZSBjb250YWluaW5nIFZpZXdlckV4dGVuc2lvbkRpcmVjdGl2ZSBpbnN0YW5jZXMgcHJvdmlkaW5nIGRpZmZlcmVudCB2aWV3ZXIgZXh0ZW5zaW9ucyBiYXNlZCBvbiBzdXBwb3J0ZWQgZmlsZSBleHRlbnNpb24uICovXG4gICAgQElucHV0KClcbiAgICB2aWV3ZXJUZW1wbGF0ZUV4dGVuc2lvbnM6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQ3VzdG9tIGVycm9yIG1lc3NhZ2UgdG8gYmUgZGlzcGxheWVkIGluIHRoZSB2aWV3ZXIuICovXG4gICAgQElucHV0KClcbiAgICBjdXN0b21FcnJvcjogc3RyaW5nID0gdW5kZWZpbmVkO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgZmlsZW5hbWUgZXh0ZW5zaW9uIGNoYW5nZXMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZXh0ZW5zaW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbWcgaXMgc3VibWl0dGVkIGluIHRoZSBpbWcgdmlld2VyLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHN1Ym1pdEZpbGUgPSBuZXcgRXZlbnRFbWl0dGVyPEJsb2I+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbWcgaXMgc3VibWl0dGVkIGluIHRoZSBpbWcgdmlld2VyLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW1nIGlzIHNhdmluZy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBpc1NhdmluZyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIGV4dGVuc2lvblRlbXBsYXRlczogeyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjsgaXNWaXNpYmxlOiBib29sZWFuIH1bXSA9IFtdO1xuICAgIGV4dGVuc2lvbnNTdXBwb3J0ZWRCeVRlbXBsYXRlczogc3RyaW5nW10gPSBbXTtcbiAgICBleHRlbnNpb246IHN0cmluZztcbiAgICBpbnRlcm5hbEZpbGVOYW1lOiBzdHJpbmc7XG4gICAgdmlld2VyVHlwZTogc3RyaW5nID0gJ3Vua25vd24nO1xuICAgIGlzQ29udGVudFJlYWR5ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiB0aGUgYWN0aXZlIFZpZXdlciBjb250ZW50IGV4dGVuc2lvbnMuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBsaXN0IG9mIGV4dGVuc2lvbiByZWZlcmVuY2VzXG4gICAgICovXG4gICAgZ2V0IHZpZXdlckV4dGVuc2lvbnMoKTogVmlld2VyRXh0ZW5zaW9uUmVmW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5leHRlbnNpb25TZXJ2aWNlLmdldFZpZXdlckV4dGVuc2lvbnMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBhIGxpc3Qgb2YgZmlsZSBleHRlbnNpb25zIHN1cHBvcnRlZCBieSBleHRlcm5hbCBwbHVnaW5zLlxuICAgICAqXG4gICAgICogQHJldHVybnMgbGlzdCBvZiBleHRlbnNpb25zXG4gICAgICovXG4gICAgZ2V0IGV4dGVybmFsRXh0ZW5zaW9ucygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdlckV4dGVuc2lvbnMubWFwKChleHQpID0+IGV4dC5maWxlRXh0ZW5zaW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9leHRlcm5hbFZpZXdlcjogVmlld2VyRXh0ZW5zaW9uUmVmO1xuICAgIGdldCBleHRlcm5hbFZpZXdlcigpOiBWaWV3ZXJFeHRlbnNpb25SZWYge1xuICAgICAgICBpZiAoIXRoaXMuX2V4dGVybmFsVmlld2VyKSB7XG4gICAgICAgICAgICB0aGlzLl9leHRlcm5hbFZpZXdlciA9IHRoaXMudmlld2VyRXh0ZW5zaW9ucy5maW5kKChleHQpID0+IGV4dC5maWxlRXh0ZW5zaW9uID09PSAnKicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2V4dGVybmFsVmlld2VyO1xuICAgIH1cblxuICAgIGNhY2hlVHlwZUZvckNvbnRlbnQgPSAnbm8tY2FjaGUnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdmlld1V0aWxTZXJ2aWNlOiBWaWV3VXRpbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZXh0ZW5zaW9uU2VydmljZTogQXBwRXh0ZW5zaW9uU2VydmljZSxcbiAgICAgICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuY2FjaGVUeXBlRm9yQ29udGVudCA9ICduby1jYWNoZSc7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIHRoaXMuaXNDb250ZW50UmVhZHkgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSAhdGhpcy5ibG9iRmlsZSAmJiAhdGhpcy51cmxGaWxlO1xuXG4gICAgICAgIGlmICh0aGlzLmJsb2JGaWxlKSB7XG4gICAgICAgICAgICB0aGlzLnNldFVwQmxvYkRhdGEoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVybEZpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VXBVcmxGaWxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFVwQmxvYkRhdGEoKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxGaWxlTmFtZSA9IHRoaXMuZmlsZU5hbWU7XG4gICAgICAgIHRoaXMudmlld2VyVHlwZSA9IHRoaXMudmlld1V0aWxTZXJ2aWNlLmdldFZpZXdlclR5cGVCeU1pbWVUeXBlKHRoaXMuYmxvYkZpbGUudHlwZSk7XG5cbiAgICAgICAgdGhpcy5leHRlbnNpb25DaGFuZ2UuZW1pdCh0aGlzLmJsb2JGaWxlLnR5cGUpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvcCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VXBVcmxGaWxlKCkge1xuICAgICAgICB0aGlzLmludGVybmFsRmlsZU5hbWUgPSB0aGlzLmZpbGVOYW1lID8gdGhpcy5maWxlTmFtZSA6IHRoaXMudmlld1V0aWxTZXJ2aWNlLmdldEZpbGVuYW1lRnJvbVVybCh0aGlzLnVybEZpbGUpO1xuICAgICAgICB0aGlzLmV4dGVuc2lvbiA9IHRoaXMudmlld1V0aWxTZXJ2aWNlLmdldEZpbGVFeHRlbnNpb24odGhpcy5pbnRlcm5hbEZpbGVOYW1lKTtcbiAgICAgICAgdGhpcy52aWV3ZXJUeXBlID0gdGhpcy52aWV3VXRpbFNlcnZpY2UuZ2V0Vmlld2VyVHlwZSh0aGlzLmV4dGVuc2lvbiwgdGhpcy5taW1lVHlwZSwgdGhpcy5leHRlbnNpb25zU3VwcG9ydGVkQnlUZW1wbGF0ZXMpO1xuXG4gICAgICAgIHRoaXMuZXh0ZW5zaW9uQ2hhbmdlLmVtaXQodGhpcy5leHRlbnNpb24pO1xuICAgICAgICB0aGlzLnNjcm9sbFRvcCgpO1xuICAgIH1cblxuICAgIHNjcm9sbFRvcCgpIHtcbiAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIDEpO1xuICAgIH1cblxuICAgIGNoZWNrRXh0ZW5zaW9ucyhleHRlbnNpb25BbGxvd2VkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZXh0ZW5zaW9uQWxsb3dlZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSBleHRlbnNpb25BbGxvd2VkLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXh0ZW5zaW9uQWxsb3dlZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZXh0ZW5zaW9uQWxsb3dlZC5maW5kKChjdXJyZW50RXh0ZW5zaW9uKSA9PiB0aGlzLmV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSBjdXJyZW50RXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TdWJtaXRGaWxlKG5ld0ltYWdlQmxvYjogQmxvYikge1xuICAgICAgICB0aGlzLnN1Ym1pdEZpbGUubmV4dChuZXdJbWFnZUJsb2IpO1xuICAgIH1cblxuICAgIG9uVW5zdXBwb3J0ZWRGaWxlKCkge1xuICAgICAgICB0aGlzLnZpZXdlclR5cGUgPSAndW5rbm93bic7XG4gICAgfVxuXG4gICAgb25DbG9zZSgpIHtcbiAgICAgICAgdGhpcy5jbG9zZS5uZXh0KHRydWUpO1xuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCIodmlld2VyVHlwZSA9PT0gJ21lZGlhJyB8fCB2aWV3ZXJUeXBlID09PSAncGRmJyB8fCB2aWV3ZXJUeXBlID09PSAnaW1hZ2UnKSA/IGlzTG9hZGluZyB8fCAhaXNDb250ZW50UmVhZHkgOiBpc0xvYWRpbmdcIlxuICAgIGNsYXNzPVwiYWRmLXZpZXdlci1yZW5kZXItbWFpbi1sb2FkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLXZpZXdlci1yZW5kZXItbGF5b3V0LWNvbnRlbnQgYWRmLXZpZXdlcl9fZnVsbHNjcmVlbi1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi12aWV3ZXItcmVuZGVyLWNvbnRlbnQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLXZpZXdlci1yZW5kZXJfX2xvYWRpbmctc2NyZWVuIFwiPlxuICAgICAgICAgICAgICAgIDxoMj57eyAnQURGX1ZJRVdFUi5MT0FESU5HJyB8IHRyYW5zbGF0ZSB9fTwvaDI+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zcGlubmVyIGNsYXNzPVwiYWRmLXZpZXdlci1yZW5kZXJfX2xvYWRpbmctc2NyZWVuX19zcGlubmVyXCIvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCIhaXNMb2FkaW5nXCJcbiAgICAgY2xhc3M9XCJhZGYtdmlld2VyLXJlbmRlci1tYWluXCI+XG4gICAgPGRpdiBjbGFzcz1cImFkZi12aWV3ZXItcmVuZGVyLWxheW91dC1jb250ZW50IGFkZi12aWV3ZXJfX2Z1bGxzY3JlZW4tY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtdmlld2VyLXJlbmRlci1jb250ZW50LWNvbnRhaW5lclwiIFtuZ1N3aXRjaF09XCJ2aWV3ZXJUeXBlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZXh0ZXJuYWwnXCI+XG4gICAgICAgICAgICAgICAgPGFkZi1wcmV2aWV3LWV4dGVuc2lvbiAqbmdJZj1cIiEhZXh0ZXJuYWxWaWV3ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImV4dGVybmFsVmlld2VyLmNvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdXJsXT1cInVybEZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4dGVuc2lvbl09XCJleHRlcm5hbFZpZXdlci5maWxlRXh0ZW5zaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtub2RlSWRdPVwibm9kZUlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCJleHRlcm5hbFZpZXdlci5jb21wb25lbnRcIiAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidwZGYnXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi12aWV3ZXItcmVuZGVyLXBkZlwiPlxuICAgICAgICAgICAgICAgIEBkZWZlciB7XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtcGRmLXZpZXdlciBbdGh1bWJuYWlsc1RlbXBsYXRlXT1cInRodW1ibmFpbHNUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWxsb3dUaHVtYm5haWxzXT1cImFsbG93VGh1bWJuYWlsc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYmxvYkZpbGVdPVwiYmxvYkZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VybEZpbGVdPVwidXJsRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsZU5hbWVdPVwiaW50ZXJuYWxGaWxlTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FjaGVUeXBlXT1cImNhY2hlVHlwZUZvckNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhZ2VzTG9hZGVkKT1cImlzQ29udGVudFJlYWR5ID0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2UpPVwib25DbG9zZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJvblVuc3VwcG9ydGVkRmlsZSgpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidpbWFnZSdcIj5cbiAgICAgICAgICAgICAgICA8YWRmLWltZy12aWV3ZXIgW3VybEZpbGVdPVwidXJsRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWxlTmFtZV09XCJpbnRlcm5hbEZpbGVOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsbG93ZWRFZGl0QWN0aW9uc109XCJhbGxvd2VkRWRpdEFjdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYmxvYkZpbGVdPVwiYmxvYkZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwib25VbnN1cHBvcnRlZEZpbGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJtaXQpPVwib25TdWJtaXRGaWxlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW1hZ2VMb2FkZWQpPVwiaXNDb250ZW50UmVhZHkgPSB0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlzU2F2aW5nKT1cImlzU2F2aW5nLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbWVkaWEnXCI+XG4gICAgICAgICAgICAgICAgPGFkZi1tZWRpYS1wbGF5ZXIgaWQ9XCJhZGYtbWRlZGlhLXBsYXllclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VybEZpbGVdPVwidXJsRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYWNrc109XCJ0cmFja3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW1lVHlwZV09XCJtaW1lVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Jsb2JGaWxlXT1cImJsb2JGaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsZU5hbWVdPVwiaW50ZXJuYWxGaWxlTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIm9uVW5zdXBwb3J0ZWRGaWxlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYW5QbGF5KT1cImlzQ29udGVudFJlYWR5ID0gdHJ1ZVwiLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIj5cbiAgICAgICAgICAgICAgICA8YWRmLXR4dC12aWV3ZXIgW3VybEZpbGVdPVwidXJsRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtibG9iRmlsZV09XCJibG9iRmlsZVwiIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2N1c3RvbSdcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBleHQgb2Ygdmlld2VyRXh0ZW5zaW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICA8YWRmLXByZXZpZXctZXh0ZW5zaW9uICpuZ0lmPVwiY2hlY2tFeHRlbnNpb25zKGV4dC5maWxlRXh0ZW5zaW9uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImV4dC5jb21wb25lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt1cmxdPVwidXJsRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4dGVuc2lvbl09XCJleHRlbnNpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtub2RlSWRdPVwibm9kZUlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiZXh0LmNvbXBvbmVudFwiIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBleHRlbnNpb25UZW1wbGF0ZSBvZiBleHRlbnNpb25UZW1wbGF0ZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJleHRlbnNpb25UZW1wbGF0ZS5pc1Zpc2libGVcIiBjbGFzcz1cImFkZi12aWV3ZXItcmVuZGVyLWN1c3RvbS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiZXh0ZW5zaW9uVGVtcGxhdGUudGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHVybEZpbGU6IHVybEZpbGUsIGV4dGVuc2lvbjogZXh0ZW5zaW9uIH1cIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICAgIDxhZGYtdmlld2VyLXVua25vd24tZm9ybWF0IFtjdXN0b21FcnJvcl09XCJjdXN0b21FcnJvclwiLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXdlclRlbXBsYXRlRXh0ZW5zaW9uc1wiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ2aWV3ZXJUZW1wbGF0ZUV4dGVuc2lvbnNcIiBbbmdUZW1wbGF0ZU91dGxldEluamVjdG9yXT1cImluamVjdG9yXCIgLz5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
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
|
package/fesm2022/adf-core.mjs
CHANGED
|
@@ -49,7 +49,7 @@ import { MatInputModule } from '@angular/material/input';
|
|
|
49
49
|
import * as i3$3 from '@angular/cdk/a11y';
|
|
50
50
|
import { FocusKeyManager, A11yModule } from '@angular/cdk/a11y';
|
|
51
51
|
import { UP_ARROW, DOWN_ARROW, TAB, ESCAPE, ENTER } from '@angular/cdk/keycodes';
|
|
52
|
-
import * as pdfjsLib$1 from 'pdfjs-dist';
|
|
52
|
+
import * as pdfjsLib$1 from 'pdfjs-dist/build/pdf.min.mjs';
|
|
53
53
|
import { PDFViewer, EventBus } from 'pdfjs-dist/web/pdf_viewer.mjs';
|
|
54
54
|
import * as i8 from '@angular/material/menu';
|
|
55
55
|
import { MatMenuModule, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';
|
|
@@ -5658,7 +5658,7 @@ class ViewerRenderComponent {
|
|
|
5658
5658
|
this.close.next(true);
|
|
5659
5659
|
}
|
|
5660
5660
|
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 }); }
|
|
5661
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
5661
|
+
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 }); }
|
|
5662
5662
|
}
|
|
5663
5663
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ViewerRenderComponent, decorators: [{
|
|
5664
5664
|
type: Component,
|
|
@@ -5677,7 +5677,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
5677
5677
|
ExtensionsModule,
|
|
5678
5678
|
NgForOf,
|
|
5679
5679
|
NgSwitchDefault
|
|
5680
|
-
], 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 <
|
|
5680
|
+
], 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"] }]
|
|
5681
5681
|
}], ctorParameters: () => [{ type: ViewUtilService }, { type: i2$2.AppExtensionService }, { type: i1$5.MatDialog }, { type: i0.Injector }], propDecorators: { urlFile: [{
|
|
5682
5682
|
type: Input
|
|
5683
5683
|
}], blobFile: [{
|