@net7/boilerplate-arianna 3.7.2 → 3.8.0
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/esm2020/lib/components/index.mjs +2 -1
- package/esm2020/lib/components/scheda-image-navigator/scheda-image-navigator.mjs +22 -0
- package/esm2020/lib/config-types/arianna/layouts.mjs +1 -1
- package/esm2020/lib/data-sources/index.mjs +2 -1
- package/esm2020/lib/data-sources/scheda-image-navigator.ds.mjs +82 -0
- package/esm2020/lib/data-sources/scheda-image.ds.mjs +11 -2
- package/esm2020/lib/event-handlers/index.mjs +2 -1
- package/esm2020/lib/event-handlers/scheda-image-navigator.eh.mjs +18 -0
- package/esm2020/lib/layouts/scheda-layout/scheda-layout.config.mjs +2 -1
- package/esm2020/lib/layouts/scheda-layout/scheda-layout.ds.mjs +11 -3
- package/esm2020/lib/layouts/scheda-layout/scheda-layout.mjs +7 -6
- package/esm2020/lib/n7-boilerplate-arianna.module.mjs +7 -3
- package/fesm2015/net7-boilerplate-arianna.mjs +148 -7
- package/fesm2015/net7-boilerplate-arianna.mjs.map +1 -1
- package/fesm2020/net7-boilerplate-arianna.mjs +146 -7
- package/fesm2020/net7-boilerplate-arianna.mjs.map +1 -1
- package/lib/components/index.d.ts +1 -0
- package/lib/components/scheda-image-navigator/scheda-image-navigator.d.ts +17 -0
- package/lib/config-types/arianna/layouts.d.ts +6 -0
- package/lib/data-sources/index.d.ts +1 -0
- package/lib/data-sources/scheda-image-navigator.ds.d.ts +16 -0
- package/lib/data-sources/scheda-image.ds.d.ts +2 -0
- package/lib/event-handlers/index.d.ts +1 -0
- package/lib/event-handlers/scheda-image-navigator.eh.d.ts +6 -0
- package/lib/n7-boilerplate-arianna.module.d.ts +7 -6
- package/package.json +1 -1
- package/src/lib/styles/arianna/components/_scheda-image-navigator.scss +51 -0
- package/src/lib/styles/arianna/layouts/_scheda-layout.scss +4 -0
|
@@ -5,4 +5,5 @@ export * from './aw-facets-wrapper/aw-facets-wrapper';
|
|
|
5
5
|
export * from './pdf-viewer/pdf-viewer';
|
|
6
6
|
export * from './scheda-dropdown/scheda-dropdown';
|
|
7
7
|
export * from './extended-tree/extended-tree';
|
|
8
|
-
|
|
8
|
+
export * from './scheda-image-navigator/scheda-image-navigator';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsaURBQWlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2J1YmJsZS1jaGFydC13cmFwcGVyL2J1YmJsZS1jaGFydC13cmFwcGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc21hcnQtYnJlYWRjcnVtYnMvc21hcnQtYnJlYWRjcnVtYnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC10aXBweS9jaGFydC10aXBweSc7XG5leHBvcnQgKiBmcm9tICcuL2F3LWZhY2V0cy13cmFwcGVyL2F3LWZhY2V0cy13cmFwcGVyJztcbmV4cG9ydCAqIGZyb20gJy4vcGRmLXZpZXdlci9wZGYtdmlld2VyJztcbmV4cG9ydCAqIGZyb20gJy4vc2NoZWRhLWRyb3Bkb3duL3NjaGVkYS1kcm9wZG93bic7XG5leHBvcnQgKiBmcm9tICcuL2V4dGVuZGVkLXRyZWUvZXh0ZW5kZWQtdHJlZSc7XG5leHBvcnQgKiBmcm9tICcuL3NjaGVkYS1pbWFnZS1uYXZpZ2F0b3Ivc2NoZWRhLWltYWdlLW5hdmlnYXRvcic7XG4iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@net7/components";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
export class SchedaImageNavigatorComponent {
|
|
6
|
+
onSubmit() {
|
|
7
|
+
if (!this.emit)
|
|
8
|
+
return;
|
|
9
|
+
this.emit('submit');
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
SchedaImageNavigatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SchedaImageNavigatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
+
SchedaImageNavigatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SchedaImageNavigatorComponent, selector: "aw-scheda-image-navigator", inputs: { data: "data", emit: "emit" }, ngImport: i0, template: "<div *ngIf=\"data\" class=\"aw-scheda-image-navigator\" [ngClass]=\"data.classes\">\n <div class=\"aw-scheda-image-navigator__input\">\n <n7-input-text \n [data]=\"data.input\"\n [emit]=\"this.emit\"></n7-input-text>\n </div>\n <div *ngIf=\"data.button as button\" class=\"aw-scheda-image-navigator__button\">\n <button class=\"n7-btn\"\n [ngClass]=\"{\n 'is-disabled': button.disabled\n }\"\n [disabled]=\"button.disabled\"\n (click)=\"onSubmit()\">{{ button.label }}</button>\n </div>\n</div>", components: [{ type: i1.InputTextComponent, selector: "n7-input-text", inputs: ["data", "emit"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SchedaImageNavigatorComponent, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{ selector: 'aw-scheda-image-navigator', template: "<div *ngIf=\"data\" class=\"aw-scheda-image-navigator\" [ngClass]=\"data.classes\">\n <div class=\"aw-scheda-image-navigator__input\">\n <n7-input-text \n [data]=\"data.input\"\n [emit]=\"this.emit\"></n7-input-text>\n </div>\n <div *ngIf=\"data.button as button\" class=\"aw-scheda-image-navigator__button\">\n <button class=\"n7-btn\"\n [ngClass]=\"{\n 'is-disabled': button.disabled\n }\"\n [disabled]=\"button.disabled\"\n (click)=\"onSubmit()\">{{ button.label }}</button>\n </div>\n</div>" }]
|
|
17
|
+
}], propDecorators: { data: [{
|
|
18
|
+
type: Input
|
|
19
|
+
}], emit: [{
|
|
20
|
+
type: Input
|
|
21
|
+
}] } });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWRhLWltYWdlLW5hdmlnYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9jb21wb25lbnRzL3NjaGVkYS1pbWFnZS1uYXZpZ2F0b3Ivc2NoZWRhLWltYWdlLW5hdmlnYXRvci50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9jb21wb25lbnRzL3NjaGVkYS1pbWFnZS1uYXZpZ2F0b3Ivc2NoZWRhLWltYWdlLW5hdmlnYXRvci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBZ0JqRCxNQUFNLE9BQU8sNkJBQTZCO0lBS3hDLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEIsQ0FBQzs7MEhBUlUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIseUdDaEIxQywrakJBY007MkZERU8sNkJBQTZCO2tCQUp6QyxTQUFTOytCQUNFLDJCQUEyQjs4QkFJNUIsSUFBSTtzQkFBWixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElucHV0VGV4dERhdGEgfSBmcm9tICdAbmV0Ny9jb21wb25lbnRzJztcblxuZXhwb3J0IHR5cGUgU2NoZWRhSW1hZ2VOYXZpZ2F0b3JEYXRhID0ge1xuICBpbnB1dDogSW5wdXRUZXh0RGF0YTtcbiAgYnV0dG9uOiB7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIH07XG4gIGNsYXNzZXM/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F3LXNjaGVkYS1pbWFnZS1uYXZpZ2F0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vc2NoZWRhLWltYWdlLW5hdmlnYXRvci5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTY2hlZGFJbWFnZU5hdmlnYXRvckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGRhdGE6IFNjaGVkYUltYWdlTmF2aWdhdG9yRGF0YTtcblxuICBASW5wdXQoKSBlbWl0OiAodHlwZTogc3RyaW5nLCBwYXlsb2FkPzogdW5rbm93bikgPT4gdm9pZDtcblxuICBvblN1Ym1pdCgpIHtcbiAgICBpZiAoIXRoaXMuZW1pdCkgcmV0dXJuO1xuICAgIHRoaXMuZW1pdCgnc3VibWl0Jyk7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJkYXRhXCIgY2xhc3M9XCJhdy1zY2hlZGEtaW1hZ2UtbmF2aWdhdG9yXCIgW25nQ2xhc3NdPVwiZGF0YS5jbGFzc2VzXCI+XG4gICAgPGRpdiBjbGFzcz1cImF3LXNjaGVkYS1pbWFnZS1uYXZpZ2F0b3JfX2lucHV0XCI+XG4gICAgICAgIDxuNy1pbnB1dC10ZXh0IFxuICAgICAgICBbZGF0YV09XCJkYXRhLmlucHV0XCJcbiAgICAgICAgW2VtaXRdPVwidGhpcy5lbWl0XCI+PC9uNy1pbnB1dC10ZXh0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJkYXRhLmJ1dHRvbiBhcyBidXR0b25cIiBjbGFzcz1cImF3LXNjaGVkYS1pbWFnZS1uYXZpZ2F0b3JfX2J1dHRvblwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibjctYnRuXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2lzLWRpc2FibGVkJzogYnV0dG9uLmRpc2FibGVkXG4gICAgICAgIH1cIlxuICAgICAgICBbZGlzYWJsZWRdPVwiYnV0dG9uLmRpc2FibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU3VibWl0KClcIj57eyBidXR0b24ubGFiZWwgfX08L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9jb25maWctdHlwZXMvYXJpYW5uYS9sYXlvdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlICovXG5pbXBvcnQgeyBIZXJvRGF0YSwgSXRlbVByZXZpZXdEYXRhIH0gZnJvbSAnQG5ldDcvY29tcG9uZW50cyc7XG5cbmludGVyZmFjZSBIb21lSGVyb0RhdGEgZXh0ZW5kcyBPbWl0PEhlcm9EYXRhLCAnaW5wdXQnPiB7XG4gIC8qKiBhZHZhbmNlZCBzZWFyY2ggZmFsbGJhY2sgdGV4dCAqL1xuICBmYWxsYmFjaz86IHN0cmluZztcbiAgLyoqIGhlcm8gdGV4dCBpbnB1dCAqL1xuICBpbnB1dD86IHtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIHBheWxvYWQ/OiBhbnk7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnQXJpYW5uYUhvbWVMYXlvdXQge1xuICAvKiogaG9tZSB0b3AgaGVybyAqL1xuICAndG9wLWhlcm8nPzogSG9tZUhlcm9EYXRhO1xuICAvKiogaG9tZSBib3R0b20gaGVybyAqL1xuICAnYm90dG9tLWhlcm8nPzogSG9tZUhlcm9EYXRhO1xuICAvKiogaG9tZSBleHRlcm5hbCBsaW5rcyAqL1xuICAnb3V0ZXItbGlua3MnPzoge1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIHRlc3Q6IEl0ZW1QcmV2aWV3RGF0YVtdO1xuICB9O1xuICAvKiogZmFjZXRzIHdyYXBwZXIgYXV0b2NvbXBsZXRlIHJlc3VsdHMgbGltaXQgKi9cbiAgJ3Jlc3VsdHMtbGltaXQnOiBudW1iZXI7XG4gIC8qKiBmYWNldHMgd3JhcHBlciBhdXRvY29tcGxldGUgaXRlbSBsZW5ndGggKi9cbiAgJ21heC1pdGVtLWxlbmd0aCc6IG51bWJlcjtcbiAgLyoqIGZhY2V0cyB3cmFwcGVyIGF1dG9jb21wbGV0ZSBmYWxsYmFjayB0ZXh0ICovXG4gICdhdXRvY29tcGxldGUtZmFsbGJhY2snOiBzdHJpbmc7XG4gIC8qKiBpdGVtIHByZXZpZXcgKHJpZ2h0IHNpZGViYXIpIGZhbGxiYWNrIHRleHQgKi9cbiAgJ2xpbmtlZC1vYmplY3RzLWZhbGxiYWNrJzogc3RyaW5nO1xufVxuXG50eXBlIFN0cmluZ0xpbWl0Q29uZmlnID0ge1xuICAvKiogdGV4dCBsaW1pdCAqL1xuICBtYXhMZW5ndGg/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9jb25maWctdHlwZXMvYXJpYW5uYS9sYXlvdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlICovXG5pbXBvcnQgeyBIZXJvRGF0YSwgSXRlbVByZXZpZXdEYXRhIH0gZnJvbSAnQG5ldDcvY29tcG9uZW50cyc7XG5cbmludGVyZmFjZSBIb21lSGVyb0RhdGEgZXh0ZW5kcyBPbWl0PEhlcm9EYXRhLCAnaW5wdXQnPiB7XG4gIC8qKiBhZHZhbmNlZCBzZWFyY2ggZmFsbGJhY2sgdGV4dCAqL1xuICBmYWxsYmFjaz86IHN0cmluZztcbiAgLyoqIGhlcm8gdGV4dCBpbnB1dCAqL1xuICBpbnB1dD86IHtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIHBheWxvYWQ/OiBhbnk7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnQXJpYW5uYUhvbWVMYXlvdXQge1xuICAvKiogaG9tZSB0b3AgaGVybyAqL1xuICAndG9wLWhlcm8nPzogSG9tZUhlcm9EYXRhO1xuICAvKiogaG9tZSBib3R0b20gaGVybyAqL1xuICAnYm90dG9tLWhlcm8nPzogSG9tZUhlcm9EYXRhO1xuICAvKiogaG9tZSBleHRlcm5hbCBsaW5rcyAqL1xuICAnb3V0ZXItbGlua3MnPzoge1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIHRlc3Q6IEl0ZW1QcmV2aWV3RGF0YVtdO1xuICB9O1xuICAvKiogZmFjZXRzIHdyYXBwZXIgYXV0b2NvbXBsZXRlIHJlc3VsdHMgbGltaXQgKi9cbiAgJ3Jlc3VsdHMtbGltaXQnOiBudW1iZXI7XG4gIC8qKiBmYWNldHMgd3JhcHBlciBhdXRvY29tcGxldGUgaXRlbSBsZW5ndGggKi9cbiAgJ21heC1pdGVtLWxlbmd0aCc6IG51bWJlcjtcbiAgLyoqIGZhY2V0cyB3cmFwcGVyIGF1dG9jb21wbGV0ZSBmYWxsYmFjayB0ZXh0ICovXG4gICdhdXRvY29tcGxldGUtZmFsbGJhY2snOiBzdHJpbmc7XG4gIC8qKiBpdGVtIHByZXZpZXcgKHJpZ2h0IHNpZGViYXIpIGZhbGxiYWNrIHRleHQgKi9cbiAgJ2xpbmtlZC1vYmplY3RzLWZhbGxiYWNrJzogc3RyaW5nO1xufVxuXG50eXBlIFN0cmluZ0xpbWl0Q29uZmlnID0ge1xuICAvKiogdGV4dCBsaW1pdCAqL1xuICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIC8qKiBlbGxpcHNpcyBzdHJpbmcgKi9cbiAgY2hhcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWdBcmlhbm5hQ29sbGVjdGlvbkxheW91dCB7XG4gIC8qKiBwYWdlIGhlYWRlciAqL1xuICBoZWFkZXI6IFN0cmluZ0xpbWl0Q29uZmlnO1xuICAvKiogcGFnZSBkZXNjcmlwdGlvbiAqL1xuICBkZXNjcmlwdGlvbjogU3RyaW5nTGltaXRDb25maWc7XG4gIC8qKiBpdGVtIHdhdGVybWFyayBwYXRoICovXG4gIHdhdGVybWFyaz86IHN0cmluZztcbiAgLyoqIGNvbGxlY3Rpb24gaXRlbSAqL1xuICBpdGVtOiB7XG4gICAgLyoqIGl0ZW0gdGl0bGUgKi9cbiAgICB0aXRsZTogU3RyaW5nTGltaXRDb25maWc7XG4gICAgLyoqIGl0ZW0gZGVzY3JpcHRpb24gKi9cbiAgICBkZXNjcmlwdGlvbjogU3RyaW5nTGltaXRDb25maWc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnQXJpYW5uYUVudGl0YUxheW91dCB7XG4gIC8qKiBvdmVydmlldyB0YWIgKi9cbiAgb3ZlcnZpZXc6IHtcbiAgICAvKiogYWxsb3dlZCBtZXRhZGF0YSBrZXlzICovXG4gICAgaW5mb3JtYXppb25pOiBzdHJpbmdbXTtcbiAgICAvKiogYnViYmxlIGNoYXJ0IHNpemUgKi9cbiAgICBzbWFsbENoYXJ0U2l6ZTogbnVtYmVyO1xuICB9O1xuICAvKiogbm8gaW5mbyBmYWxsYmFjayB0ZXh0ICovXG4gIGZhbGxiYWNrOiBzdHJpbmc7XG4gIC8qKiBERVBSRUNBVEVEOiBlbnRpdGllcyByZXF1ZXN0IGxpbWl0ICovXG4gIGVudGl0aWVzUXVlcnlTaXplOiBudW1iZXI7XG4gIC8qKiBpbmZvIHRhYiBhbGxvd2VkIG1ldGFkYXRhIGtleXMgKi9cbiAgJ21ldGFkYXRhLXRvLXNob3cnOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWdBcmlhbm5hTWFwTGF5b3V0IHtcbiAgLy8gbm90aGluZyBoZXJlIVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ0FyaWFubmFUaW1lbGluZUxheW91dCB7XG4gIC8qKiBPcHRpb25zIGZvciB0aGUgdGltZWxpbmUgY29tcG9uZW50ICovXG4gIHRpbWVsaW5lOiB7XG4gICAgLyoqIEZvcmNlcyB0aGUgdGltZWxpbmUgdG8gcmVuZGVyIGFsbCBkYXRlcyBhcyBzaW5nbGUgbW9tZW50cyAqL1xuICAgIGRpc2FibGVFbmREYXRlczogYm9vbGVhbjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWdBcmlhbm5hU2NoZWRhTGF5b3V0IHtcbiAgLyoqIG5vIGl0ZW0gaW5mb3JtYXRpb24gZmFsbGJhY2sgdGV4dCAqL1xuICAnZW1wdHktaHRtbCc6IHN0cmluZztcbiAgLyoqIGluaXRpYWwgcGFnZSB0ZXh0IG5vIGl0ZW0gc2VsZWN0ZWQgKi9cbiAgJ2VtcHR5LWxhYmVsJzogc3RyaW5nO1xuICAvKiogZGVmYXVsdCB0ZXh0IGZvciBleHRlcm5hbCBsaW5rc3xyZXNvdXJjZXMgKi9cbiAgJ2V4dGVybmFsLXVybC10ZXh0Jzogc3RyaW5nO1xuICAvKiogcmVsYXRlZCBlbnRpdGllcyBzZWN0aW9uICovXG4gICdyZWxhdGVkLWVudGl0aWVzJzoge1xuICAgIC8qKiByZWxhdGVkIGVudGl0aWVzIHNlY3Rpb24gdGl0bGUgKi9cbiAgICB0aXRsZTogc3RyaW5nO1xuICB9O1xuICAvKiogcmVsYXRlZCBpdGVtcyBzZWN0aW9uICovXG4gICdyZWxhdGVkLWl0ZW1zJzoge1xuICAgIC8qKiByZWxhdGVkIGl0ZW1zIHNlY3Rpb24gdGl0bGUgKi9cbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIC8qKiBob3cgbWFueSByZWxhdGVkIGl0ZW1zICovXG4gICAgJ21heC1yZWxhdGVkLWl0ZW1zJzogbnVtYmVyO1xuICB9O1xuICAvKiogZXh0ZW5kZWQgdHJlZSBzZWN0aW9uICovXG4gICdleHRlbmRlZC10cmVlJz86IHtcbiAgICAvKiogZXh0ZW5kZWQgdHJlZSBzZWN0aW9uIHRpdGxlICovXG4gICAgdGl0bGU6IHN0cmluZztcbiAgICAvKiogZXh0ZW5kZWQgdHJlZSBzZWFyY2ggaW5wdXQgKi9cbiAgICBzZWFyY2g6IHtcbiAgICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgfVxuICAgIC8qKiBleHRlbmRlZCB0cmVlIGxpdGUgdmVyc2lvbj8gKi9cbiAgICBsaXRlPzogYm9vbGVhbjtcbiAgfTtcbiAgLyoqIGltYWdlIHZpZXdlciBuYXZpZ2F0aW9uICovXG4gICdpbWFnZS12aWV3ZXItbmF2Jz86IHtcbiAgICBlbmFibGVkOiBib29sZWFuO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgYnV0dG9uVGV4dDogc3RyaW5nO1xuICB9O1xuICAvKiogdGl0bGUgcHJldi9uZXh0IG5hdmlnYXRpb24gKi9cbiAgJ3RpdGxlLW5hdic/OiB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgfTtcbiAgLyoqIG1ldGFkYXRhIHNlY3Rpb24gKi9cbiAgbWV0YWRhdGE6IHtcbiAgICAvKiogbWV0YWRhdGEgc2VjdGlvbiB0aXRsZSAqL1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gIH07XG4gIC8qKiB0cmVlIGNvbmZpZyAqL1xuICB0cmVlOiB7XG4gICAgLyoqIHRyZWUgbGl0ZSB2ZXJzaW9uPyAqL1xuICAgIGxpdGU/OiBib29sZWFuO1xuICAgIC8qKiB0cmVlIHNpZGViYXIgY29sbGFwc2VkPyAqL1xuICAgIGNvbGxhcHNlZEJ5RGVmYXVsdD86IGJvb2xlYW47XG4gICAgLyoqIGljb24gZXhwYW5kIGNsYXNzICovXG4gICAgJ2ljb24tZXhwYW5kJzogc3RyaW5nO1xuICAgIC8qKiBpY29uIGNvbGxhcHNlIGNsYXNzICovXG4gICAgJ2ljb24tY29sbGFwc2UnOiBzdHJpbmc7XG4gICAgLyoqIGRlZmF1bHQgaW1hZ2UgaWNvbiBjbGFzcyAqL1xuICAgICdpY29uLWltYWdlJzogc3RyaW5nO1xuICAgIC8qKiB0eXBlcyBpY29uIG1hcCAqL1xuICAgICdpY29uLW1hcCc6IHtcbiAgICAgIC8qKiB0eXBlaWQgPT4gaWNvbiBjbGFzcyAqL1xuICAgICAgW3R5cGVLZXk6IHN0cmluZ106IHN0cmluZztcbiAgICB9W107XG4gIH07XG4gIC8qKiBpbWFnZSB2aWV3ZXIgb3B0aW9ucyAqL1xuICAnaW1hZ2Utdmlld2VyJz86IHtcbiAgICAvKiogaXMgbW91c2UgY29udGV4dCBtZW51IChyaWdodCBjbGljaykgZGlzYWJsZWQ/ICovXG4gICAgJ2NvbnRleHQtbWVudSc/OiBib29sZWFuO1xuICB9O1xuICAvKiogcGRmIHZpZXdlciBvcHRpb25zICovXG4gICdwZGYtdmlld2VyJz86IHtcbiAgICAvKiogcGRmIGxpYiAobmd4LWV4dGVuZGVkLXBkZi12aWV3ZXIpIG9wdGlvbnMgKi9cbiAgICBsaWJPcHRpb25zPzoge1xuICAgICAgc2hvd1Rvb2xiYXI/OiBib29sZWFuO1xuICAgICAgc2hvd1NpZGViYXJCdXR0b24/OiBib29sZWFuO1xuICAgICAgc2hvd0ZpbmRCdXR0b24/OiBib29sZWFuO1xuICAgICAgc2hvd1BhZ2luZ0J1dHRvbnM/OiBib29sZWFuO1xuICAgICAgc2hvd1pvb21CdXR0b25zPzogYm9vbGVhbjtcbiAgICAgIHNob3dQcmVzZW50YXRpb25Nb2RlQnV0dG9uPzogYm9vbGVhbjtcbiAgICAgIHNob3dPcGVuRmlsZUJ1dHRvbj86IGJvb2xlYW47XG4gICAgICBzaG93UHJpbnRCdXR0b24/OiBib29sZWFuO1xuICAgICAgc2hvd0Rvd25sb2FkQnV0dG9uPzogYm9vbGVhbjtcbiAgICAgIHNob3dCb29rbWFya0J1dHRvbj86IGJvb2xlYW47XG4gICAgICBzaG93U2Vjb25kYXJ5VG9vbGJhckJ1dHRvbj86IGJvb2xlYW47XG4gICAgICBzaG93Um90YXRlQnV0dG9uPzogYm9vbGVhbjtcbiAgICAgIHNob3dIYW5kVG9vbEJ1dHRvbj86IGJvb2xlYW47XG4gICAgICBzaG93U2Nyb2xsaW5nQnV0dG9uPzogYm9vbGVhbjtcbiAgICAgIHNob3dTcHJlYWRCdXR0b24/OiBib29sZWFuO1xuICAgICAgc2hvd1Byb3BlcnRpZXNCdXR0b24/OiBib29sZWFuO1xuICAgIH07XG4gIH07XG4gIC8qKiBhbGxvd2VkIG1ldGFkYXRhICovXG4gICdtZXRhZGF0YS10by1zaG93Jzoge1xuICAgIC8qKiB0eXBlIGtleSA9PiBBcnJheTxtZXRhZGF0YSBrZXlzPiAqL1xuICAgIFt0eXBlOiBzdHJpbmddOiBzdHJpbmdbXTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWdBcmlhbm5hU2VhcmNoTGF5b3V0IHtcbiAgLyoqIHBhZ2UgdGl0bGUgKi9cbiAgdGl0bGU6IHN0cmluZztcbiAgLyoqIHJlc3VsdHMgbGFiZWxzOiAwIGl0ZW1zIHwgMSBpdGVtIHwgbiBpdGVtcyAqL1xuICByZXN1bHRzOiBbc3RyaW5nLCBzdHJpbmcsIHN0cmluZ107XG4gIC8qKiBhbGxvd2VkIGVudGl0aWVzIGtleXMgKi9cbiAgZW5hYmxlZEVudGl0aWVzOiBzdHJpbmdbXTtcbiAgLyoqIG5vIHJlc3VsdHMgZmFsbGJhY2sgdGV4dCAqL1xuICBmYWxsYmFjazogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ0FyaWFubmFHYWxsZXJ5TGF5b3V0IGV4dGVuZHMgQ29uZmlnQXJpYW5uYVNlYXJjaExheW91dCB7XG4gIC8vIG5vdGhpbmcgaGVyZVxufVxuIl19
|
|
@@ -25,6 +25,7 @@ export * from './scheda-metadata.ds';
|
|
|
25
25
|
export * from './scheda-pdf.ds';
|
|
26
26
|
export * from './tree.ds';
|
|
27
27
|
export * from './extended-tree.ds';
|
|
28
|
+
export * from './scheda-image-navigator.ds';
|
|
28
29
|
// Search layout
|
|
29
30
|
export * from './search-layout-tabs.ds';
|
|
30
31
|
export * from './aw-facets-wrapper.ds';
|
|
@@ -34,4 +35,4 @@ export * from './gallery-results.ds';
|
|
|
34
35
|
export * from './map.ds';
|
|
35
36
|
// Timeline Layout
|
|
36
37
|
export * from './timeline.ds';
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvZGF0YS1zb3VyY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFDTixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGtCQUFrQixDQUFDO0FBRWpDLGNBQWM7QUFDZCxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLGdCQUFnQjtBQUNoQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsZ0JBQWdCO0FBQ2hCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsZ0JBQWdCO0FBQ2hCLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxpQkFBaUI7QUFDakIsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxhQUFhO0FBQ2IsY0FBYyxVQUFVLENBQUM7QUFFekIsa0JBQWtCO0FBQ2xCLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW55XG5leHBvcnQgKiBmcm9tICcuL2xpbmtlZC1vYmplY3RzLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0b2NvbXBsZXRlLXdyYXBwZXIuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9idWJibGUtY2hhcnQuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC10aXBweS5kcyc7XG5cbi8vIEhvbWUgTGF5b3V0XG5leHBvcnQgKiBmcm9tICcuL2Nhcm91c2VsLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vaGVyby5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vaG9tZS1oZXJvLXBhdHJpbW9uaW8uZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9ob21lLWZhY2V0cy13cmFwcGVyLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vaG9tZS1pdGVtLXRhZ3Mtd3JhcHBlci5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2hvbWUtYXV0b2NvbXBsZXRlLmRzJztcblxuLy8gRW50aXRhIExheW91dFxuZXhwb3J0ICogZnJvbSAnLi9lbnRpdGEtbmF2LmRzJztcbmV4cG9ydCAqIGZyb20gJy4vZW50aXRhLW1ldGFkYXRhLXZpZXdlci5kcyc7XG5cbi8vIFNjaGVkYSBMYXlvdXRcbmV4cG9ydCAqIGZyb20gJy4vcmVsYXRlZC1lbnRpdGllcy5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3NjaGVkYS1icmVhZGNydW1icy5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3NjaGVkYS1kcm9wZG93bi5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3NpZGViYXItaGVhZGVyLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vc2NoZWRhLWltYWdlLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vc2NoZWRhLWlubmVyLXRpdGxlLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vc2NoZWRhLW1ldGFkYXRhLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vc2NoZWRhLXBkZi5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3RyZWUuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9leHRlbmRlZC10cmVlLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vc2NoZWRhLWltYWdlLW5hdmlnYXRvci5kcyc7XG5cbi8vIFNlYXJjaCBsYXlvdXRcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLWxheW91dC10YWJzLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vYXctZmFjZXRzLXdyYXBwZXIuZHMnO1xuXG4vLyBHYWxsZXJ5IExheW91dFxuZXhwb3J0ICogZnJvbSAnLi9nYWxsZXJ5LXJlc3VsdHMuZHMnO1xuXG4vLyBNYXAgTGF5b3V0XG5leHBvcnQgKiBmcm9tICcuL21hcC5kcyc7XG5cbi8vIFRpbWVsaW5lIExheW91dFxuZXhwb3J0ICogZnJvbSAnLi90aW1lbGluZS5kcyc7XG4iXX0=
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { DataSource } from '@net7/core';
|
|
2
|
+
export class AwSchedaImageNavigatorDS extends DataSource {
|
|
3
|
+
transform(instance) {
|
|
4
|
+
this.instance = instance;
|
|
5
|
+
this.current = 1;
|
|
6
|
+
this.total = this.instance.referenceStrip?.panels?.length;
|
|
7
|
+
// check images total > 1
|
|
8
|
+
if (!this.total)
|
|
9
|
+
return null;
|
|
10
|
+
const { buttonText } = (this.options || {});
|
|
11
|
+
// listen viewer
|
|
12
|
+
this.listenViewer();
|
|
13
|
+
return {
|
|
14
|
+
input: {
|
|
15
|
+
id: 'scheda-image-navigator-input',
|
|
16
|
+
type: 'number',
|
|
17
|
+
label: this.getLabel(),
|
|
18
|
+
min: 1,
|
|
19
|
+
max: this.total,
|
|
20
|
+
value: this.current,
|
|
21
|
+
inputPayload: 'input',
|
|
22
|
+
enterPayload: 'enter'
|
|
23
|
+
},
|
|
24
|
+
button: {
|
|
25
|
+
label: buttonText,
|
|
26
|
+
// disabled: true,
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
onChange({ inputPayload, value }) {
|
|
31
|
+
if (inputPayload === 'input') {
|
|
32
|
+
let formattedValue = value;
|
|
33
|
+
if (formattedValue) {
|
|
34
|
+
formattedValue = +formattedValue;
|
|
35
|
+
if (formattedValue > this.total) {
|
|
36
|
+
formattedValue = this.total;
|
|
37
|
+
}
|
|
38
|
+
if (formattedValue < 1) {
|
|
39
|
+
formattedValue = 1;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
this.current = formattedValue || null;
|
|
43
|
+
// force input value
|
|
44
|
+
this.output.input.value = this.current;
|
|
45
|
+
}
|
|
46
|
+
else if (inputPayload === 'enter') {
|
|
47
|
+
this.onSubmit();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
onSubmit() {
|
|
51
|
+
if (this.instance && this.current) {
|
|
52
|
+
this.instance.goToPage(this.current - 1);
|
|
53
|
+
// update label
|
|
54
|
+
this.updateLabel();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
updateLabel() {
|
|
58
|
+
const { input } = this.output;
|
|
59
|
+
input.label = this.getLabel();
|
|
60
|
+
}
|
|
61
|
+
getLabel() {
|
|
62
|
+
const { label } = this.options;
|
|
63
|
+
return label
|
|
64
|
+
.replace('{current}', this.current)
|
|
65
|
+
.replace('{total}', this.total);
|
|
66
|
+
}
|
|
67
|
+
listenViewer() {
|
|
68
|
+
this.instance.addHandler('page', (event) => {
|
|
69
|
+
const { page } = event;
|
|
70
|
+
if ((page + 1) !== this.current) {
|
|
71
|
+
// trigger change manually
|
|
72
|
+
this.onChange({
|
|
73
|
+
inputPayload: 'input',
|
|
74
|
+
value: page + 1
|
|
75
|
+
});
|
|
76
|
+
// update label
|
|
77
|
+
this.updateLabel();
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWRhLWltYWdlLW5hdmlnYXRvci5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9kYXRhLXNvdXJjZXMvc2NoZWRhLWltYWdlLW5hdmlnYXRvci5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBR3hDLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxVQUFVO0lBTzVDLFNBQVMsQ0FBQyxRQUFRO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztRQUUxRCx5QkFBeUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFN0IsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU1QyxnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXBCLE9BQU87WUFDTCxLQUFLLEVBQUU7Z0JBQ0wsRUFBRSxFQUFFLDhCQUE4QjtnQkFDbEMsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3RCLEdBQUcsRUFBRSxDQUFDO2dCQUNOLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ25CLFlBQVksRUFBRSxPQUFPO2dCQUNyQixZQUFZLEVBQUUsT0FBTzthQUN0QjtZQUNELE1BQU0sRUFBRTtnQkFDTixLQUFLLEVBQUUsVUFBVTtnQkFDakIsa0JBQWtCO2FBQ25CO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxRQUFRLENBQUMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFO1FBQ3JDLElBQUksWUFBWSxLQUFLLE9BQU8sRUFBRTtZQUM1QixJQUFJLGNBQWMsR0FBRyxLQUFLLENBQUM7WUFDM0IsSUFBSSxjQUFjLEVBQUU7Z0JBQ2xCLGNBQWMsR0FBRyxDQUFDLGNBQWMsQ0FBQztnQkFDakMsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtvQkFDL0IsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7aUJBQzdCO2dCQUNELElBQUksY0FBYyxHQUFHLENBQUMsRUFBRTtvQkFDdEIsY0FBYyxHQUFHLENBQUMsQ0FBQztpQkFDcEI7YUFDRjtZQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsY0FBYyxJQUFJLElBQUksQ0FBQztZQUV0QyxvQkFBb0I7WUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDeEM7YUFBTSxJQUFJLFlBQVksS0FBSyxPQUFPLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRXpDLGVBQWU7WUFDZixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRU8sV0FBVztRQUNqQixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM5QixLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU8sUUFBUTtRQUNkLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQy9CLE9BQU8sS0FBSzthQUNULE9BQU8sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUNsQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN6QyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDL0IsMEJBQTBCO2dCQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDO29CQUNaLFlBQVksRUFBRSxPQUFPO29CQUNyQixLQUFLLEVBQUUsSUFBSSxHQUFHLENBQUM7aUJBQ2hCLENBQUMsQ0FBQztnQkFFSCxlQUFlO2dCQUNmLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNwQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0BuZXQ3L2NvcmUnO1xuaW1wb3J0IHsgU2NoZWRhSW1hZ2VOYXZpZ2F0b3JEYXRhIH0gZnJvbSAnLi4vY29tcG9uZW50cy9zY2hlZGEtaW1hZ2UtbmF2aWdhdG9yL3NjaGVkYS1pbWFnZS1uYXZpZ2F0b3InO1xuXG5leHBvcnQgY2xhc3MgQXdTY2hlZGFJbWFnZU5hdmlnYXRvckRTIGV4dGVuZHMgRGF0YVNvdXJjZSB7XG4gIHByaXZhdGUgaW5zdGFuY2U7XG5cbiAgcHJpdmF0ZSBjdXJyZW50O1xuXG4gIHByaXZhdGUgdG90YWw7XG5cbiAgcHJvdGVjdGVkIHRyYW5zZm9ybShpbnN0YW5jZSk6IFNjaGVkYUltYWdlTmF2aWdhdG9yRGF0YSB7XG4gICAgdGhpcy5pbnN0YW5jZSA9IGluc3RhbmNlO1xuICAgIHRoaXMuY3VycmVudCA9IDE7XG4gICAgdGhpcy50b3RhbCA9IHRoaXMuaW5zdGFuY2UucmVmZXJlbmNlU3RyaXA/LnBhbmVscz8ubGVuZ3RoO1xuXG4gICAgLy8gY2hlY2sgaW1hZ2VzIHRvdGFsID4gMVxuICAgIGlmICghdGhpcy50b3RhbCkgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCB7IGJ1dHRvblRleHQgfSA9ICh0aGlzLm9wdGlvbnMgfHwge30pO1xuXG4gICAgLy8gbGlzdGVuIHZpZXdlclxuICAgIHRoaXMubGlzdGVuVmlld2VyKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgaWQ6ICdzY2hlZGEtaW1hZ2UtbmF2aWdhdG9yLWlucHV0JyxcbiAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgIGxhYmVsOiB0aGlzLmdldExhYmVsKCksXG4gICAgICAgIG1pbjogMSxcbiAgICAgICAgbWF4OiB0aGlzLnRvdGFsLFxuICAgICAgICB2YWx1ZTogdGhpcy5jdXJyZW50LFxuICAgICAgICBpbnB1dFBheWxvYWQ6ICdpbnB1dCcsXG4gICAgICAgIGVudGVyUGF5bG9hZDogJ2VudGVyJ1xuICAgICAgfSxcbiAgICAgIGJ1dHRvbjoge1xuICAgICAgICBsYWJlbDogYnV0dG9uVGV4dCxcbiAgICAgICAgLy8gZGlzYWJsZWQ6IHRydWUsXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNoYW5nZSh7IGlucHV0UGF5bG9hZCwgdmFsdWUgfSkge1xuICAgIGlmIChpbnB1dFBheWxvYWQgPT09ICdpbnB1dCcpIHtcbiAgICAgIGxldCBmb3JtYXR0ZWRWYWx1ZSA9IHZhbHVlO1xuICAgICAgaWYgKGZvcm1hdHRlZFZhbHVlKSB7XG4gICAgICAgIGZvcm1hdHRlZFZhbHVlID0gK2Zvcm1hdHRlZFZhbHVlO1xuICAgICAgICBpZiAoZm9ybWF0dGVkVmFsdWUgPiB0aGlzLnRvdGFsKSB7XG4gICAgICAgICAgZm9ybWF0dGVkVmFsdWUgPSB0aGlzLnRvdGFsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtYXR0ZWRWYWx1ZSA8IDEpIHtcbiAgICAgICAgICBmb3JtYXR0ZWRWYWx1ZSA9IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuY3VycmVudCA9IGZvcm1hdHRlZFZhbHVlIHx8IG51bGw7XG5cbiAgICAgIC8vIGZvcmNlIGlucHV0IHZhbHVlXG4gICAgICB0aGlzLm91dHB1dC5pbnB1dC52YWx1ZSA9IHRoaXMuY3VycmVudDtcbiAgICB9IGVsc2UgaWYgKGlucHV0UGF5bG9hZCA9PT0gJ2VudGVyJykge1xuICAgICAgdGhpcy5vblN1Ym1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblN1Ym1pdCgpIHtcbiAgICBpZiAodGhpcy5pbnN0YW5jZSAmJiB0aGlzLmN1cnJlbnQpIHtcbiAgICAgIHRoaXMuaW5zdGFuY2UuZ29Ub1BhZ2UodGhpcy5jdXJyZW50IC0gMSk7XG5cbiAgICAgIC8vIHVwZGF0ZSBsYWJlbFxuICAgICAgdGhpcy51cGRhdGVMYWJlbCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTGFiZWwoKSB7XG4gICAgY29uc3QgeyBpbnB1dCB9ID0gdGhpcy5vdXRwdXQ7XG4gICAgaW5wdXQubGFiZWwgPSB0aGlzLmdldExhYmVsKCk7XG4gIH1cblxuICBwcml2YXRlIGdldExhYmVsKCkge1xuICAgIGNvbnN0IHsgbGFiZWwgfSA9IHRoaXMub3B0aW9ucztcbiAgICByZXR1cm4gbGFiZWxcbiAgICAgIC5yZXBsYWNlKCd7Y3VycmVudH0nLCB0aGlzLmN1cnJlbnQpXG4gICAgICAucmVwbGFjZSgne3RvdGFsfScsIHRoaXMudG90YWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5WaWV3ZXIoKSB7XG4gICAgdGhpcy5pbnN0YW5jZS5hZGRIYW5kbGVyKCdwYWdlJywgKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB7IHBhZ2UgfSA9IGV2ZW50O1xuICAgICAgaWYgKChwYWdlICsgMSkgIT09IHRoaXMuY3VycmVudCkge1xuICAgICAgICAvLyB0cmlnZ2VyIGNoYW5nZSBtYW51YWxseVxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHtcbiAgICAgICAgICBpbnB1dFBheWxvYWQ6ICdpbnB1dCcsXG4gICAgICAgICAgdmFsdWU6IHBhZ2UgKyAxXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIHVwZGF0ZSBsYWJlbFxuICAgICAgICB0aGlzLnVwZGF0ZUxhYmVsKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { DataSource } from '@net7/core';
|
|
2
|
-
import { interval } from 'rxjs';
|
|
2
|
+
import { interval, Subject } from 'rxjs';
|
|
3
3
|
import { filter, first } from 'rxjs/operators';
|
|
4
4
|
export class AwSchedaImageDS extends DataSource {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
7
|
+
this.instanceLoaded$ = new Subject();
|
|
8
|
+
}
|
|
5
9
|
transform(data) {
|
|
6
10
|
const tileSources = this.getTileSources(data.items);
|
|
7
11
|
return {
|
|
@@ -16,6 +20,11 @@ export class AwSchedaImageDS extends DataSource {
|
|
|
16
20
|
},
|
|
17
21
|
_setViewer: (viewer) => {
|
|
18
22
|
this.instance = viewer;
|
|
23
|
+
this.instanceLoaded$.next(this.instance);
|
|
24
|
+
if (data.hasNavigation$) {
|
|
25
|
+
const { nextButton } = this.instance;
|
|
26
|
+
data.hasNavigation$.next(!!(nextButton && !nextButton.element?.disabled));
|
|
27
|
+
}
|
|
19
28
|
}
|
|
20
29
|
};
|
|
21
30
|
}
|
|
@@ -62,4 +71,4 @@ export class AwSchedaImageDS extends DataSource {
|
|
|
62
71
|
return tileSources;
|
|
63
72
|
}
|
|
64
73
|
}
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWRhLWltYWdlLmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtYXJpYW5uYS9zcmMvbGliL2RhdGEtc291cmNlcy9zY2hlZGEtaW1hZ2UuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE1BQU0sT0FBTyxlQUFnQixTQUFRLFVBQVU7SUFBL0M7O1FBR1Msb0JBQWUsR0FBaUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQXlFdkQsQ0FBQztJQXZFVyxTQUFTLENBQUMsSUFBSTtRQUN0QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwRCxPQUFPO1lBQ0wsTUFBTSxFQUFFLEVBQUU7WUFDVixRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDakIsVUFBVSxFQUFFO2dCQUNWLFdBQVc7Z0JBQ1gsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLGtCQUFrQixFQUFFLElBQUk7Z0JBQ3hCLGdCQUFnQixFQUFFLEtBQUs7Z0JBQ3ZCLGFBQWEsRUFBRSxLQUFLO2FBQ3JCO1lBQ0QsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO2dCQUV2QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRXpDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtvQkFDdkIsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztpQkFDM0U7WUFDSCxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxXQUFXO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUFJO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFM0IseUJBQXlCO1FBQ3pCLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ2YsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDN0QsS0FBSyxFQUFFLENBQ1IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2YsUUFBUTtZQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUFNO1FBQzNCLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxJQUFJLEtBQUssZUFBZSxFQUFFO2dCQUM1QixXQUFXLENBQUMsSUFBSSxDQUFDO29CQUNmLEdBQUc7b0JBQ0gsSUFBSSxFQUFFLE9BQU87aUJBQ2QsQ0FBQyxDQUFDO2FBQ0o7aUJBQU0sSUFBSSxJQUFJLEtBQUssWUFBWSxFQUFFO2dCQUNoQywwQkFBMEI7Z0JBQzFCLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO2FBQzlFO2lCQUFNLElBQUksSUFBSSxLQUFLLGFBQWEsRUFBRTtnQkFDakMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO29CQUM3QixXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM1QixDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQG5ldDcvY29yZSc7XG5pbXBvcnQgeyBJbWFnZVZpZXdlckRhdGEgfSBmcm9tICdAbmV0Ny9jb21wb25lbnRzJztcbmltcG9ydCB7IGludGVydmFsLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY2xhc3MgQXdTY2hlZGFJbWFnZURTIGV4dGVuZHMgRGF0YVNvdXJjZSB7XG4gIHByaXZhdGUgaW5zdGFuY2U7XG5cbiAgcHVibGljIGluc3RhbmNlTG9hZGVkJDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwcm90ZWN0ZWQgdHJhbnNmb3JtKGRhdGEpOiBJbWFnZVZpZXdlckRhdGEge1xuICAgIGNvbnN0IHRpbGVTb3VyY2VzID0gdGhpcy5nZXRUaWxlU291cmNlcyhkYXRhLml0ZW1zKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpbWFnZXM6IFtdLFxuICAgICAgdmlld2VySWQ6IGRhdGEuaWQsXG4gICAgICBsaWJPcHRpb25zOiB7XG4gICAgICAgIHRpbGVTb3VyY2VzLFxuICAgICAgICBzZXF1ZW5jZU1vZGU6IHRydWUsXG4gICAgICAgIHNob3dSZWZlcmVuY2VTdHJpcDogdHJ1ZSxcbiAgICAgICAgYXV0b0hpZGVDb250cm9sczogZmFsc2UsXG4gICAgICAgIHNob3dOYXZpZ2F0b3I6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIF9zZXRWaWV3ZXI6ICh2aWV3ZXIpID0+IHtcbiAgICAgICAgdGhpcy5pbnN0YW5jZSA9IHZpZXdlcjtcblxuICAgICAgICB0aGlzLmluc3RhbmNlTG9hZGVkJC5uZXh0KHRoaXMuaW5zdGFuY2UpO1xuXG4gICAgICAgIGlmIChkYXRhLmhhc05hdmlnYXRpb24kKSB7XG4gICAgICAgICAgY29uc3QgeyBuZXh0QnV0dG9uIH0gPSB0aGlzLmluc3RhbmNlO1xuICAgICAgICAgIGRhdGEuaGFzTmF2aWdhdGlvbiQubmV4dCghIShuZXh0QnV0dG9uICYmICFuZXh0QnV0dG9uLmVsZW1lbnQ/LmRpc2FibGVkKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGhhc0luc3RhbmNlKCkge1xuICAgIHJldHVybiAhIXRoaXMuaW5zdGFuY2U7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlSW1hZ2VzKGRhdGEpIHtcbiAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHJldHVybjtcblxuICAgIC8vIGNvbnRhaW5lciBleGlzdHMgY2hlY2tcbiAgICBpbnRlcnZhbCgxMCkucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiAhIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMub3V0cHV0LnZpZXdlcklkKSksXG4gICAgICBmaXJzdCgpXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgLy8gcmVzZXRcbiAgICAgIHRoaXMuaW5zdGFuY2Uud29ybGQucmVtb3ZlQWxsKCk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgaW1hZ2VzID0gdGhpcy5nZXRUaWxlU291cmNlcyhkYXRhLml0ZW1zKTtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5vcGVuKGltYWdlcyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpIHtcbiAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHJldHVybjtcbiAgICB0aGlzLmluc3RhbmNlLndvcmxkLnJlbW92ZUFsbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUaWxlU291cmNlcyhpbWFnZXMpIHtcbiAgICBjb25zdCB0aWxlU291cmNlcyA9IFtdO1xuICAgIGltYWdlcy5mb3JFYWNoKCh7IHR5cGUsIHVybCwgaWlpZkltYWdlcyB9KSA9PiB7XG4gICAgICBpZiAodHlwZSA9PT0gJ2ltYWdlcy1zaW1wbGUnKSB7XG4gICAgICAgIHRpbGVTb3VyY2VzLnB1c2goe1xuICAgICAgICAgIHVybCxcbiAgICAgICAgICB0eXBlOiAnaW1hZ2UnXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnaW1hZ2VzLWlpcCcpIHtcbiAgICAgICAgLy8gRklYTUU6IHRvZ2xpZXJlIHJlcGxhY2VcbiAgICAgICAgdGlsZVNvdXJjZXMucHVzaCh1cmwucmVwbGFjZSgnRklGJywgJ0RlZXB6b29tJykucmVwbGFjZSgnLnRpZicsICcudGlmLmR6aScpKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2ltYWdlcy1paWlmJykge1xuICAgICAgICBpaWlmSW1hZ2VzLmZvckVhY2goKGlpaWZVcmwpID0+IHtcbiAgICAgICAgICB0aWxlU291cmNlcy5wdXNoKGlpaWZVcmwpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdGlsZVNvdXJjZXM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -13,6 +13,7 @@ export * from './tree.eh';
|
|
|
13
13
|
export * from './scheda-dropdown.eh';
|
|
14
14
|
export * from './scheda-pdf.eh';
|
|
15
15
|
export * from './extended-tree.eh';
|
|
16
|
+
export * from './scheda-image-navigator.eh';
|
|
16
17
|
// Search layout
|
|
17
18
|
export * from './search-layout-tabs.eh';
|
|
18
19
|
export * from './aw-facets-wrapper.eh';
|
|
@@ -28,4 +29,4 @@ export * from './autocomplete-wrapper.eh';
|
|
|
28
29
|
export * from './bubble-chart.eh';
|
|
29
30
|
export * from './table.eh';
|
|
30
31
|
export * from './chart-tippy.eh';
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvZXZlbnQtaGFuZGxlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYztBQUNkLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsd0JBQXdCLENBQUM7QUFFdkMsZ0JBQWdCO0FBQ2hCLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsZ0JBQWdCO0FBQ2hCLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGdCQUFnQjtBQUNoQixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsd0JBQXdCLENBQUM7QUFFdkMsaUJBQWlCO0FBQ2pCLGNBQWMsc0JBQXNCLENBQUM7QUFFckMsYUFBYTtBQUNiLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGtCQUFrQjtBQUNsQixjQUFjLGVBQWUsQ0FBQztBQUU5QixNQUFNO0FBQ04sY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEhvbWUgTGF5b3V0XG5leHBvcnQgKiBmcm9tICcuL2hlcm8uZWgnO1xuZXhwb3J0ICogZnJvbSAnLi9ob21lLWZhY2V0cy13cmFwcGVyLmVoJztcbmV4cG9ydCAqIGZyb20gJy4vaG9tZS1oZXJvLXBhdHJpbW9uaW8uZWgnO1xuZXhwb3J0ICogZnJvbSAnLi9ob21lLWl0ZW0tdGFncy13cmFwcGVyLmVoJztcbmV4cG9ydCAqIGZyb20gJy4vaG9tZS1hdXRvY29tcGxldGUuZWgnO1xuXG4vLyBFbnRpdGEgTGF5b3V0XG5leHBvcnQgKiBmcm9tICcuL2VudGl0YS1uYXYuZWgnO1xuXG4vLyBTY2hlZGEgTGF5b3V0XG5leHBvcnQgKiBmcm9tICcuL3NjaGVkYS1icmVhZGNydW1icy5laCc7XG5leHBvcnQgKiBmcm9tICcuL3NpZGViYXItaGVhZGVyLmVoJztcbmV4cG9ydCAqIGZyb20gJy4vdHJlZS5laCc7XG5leHBvcnQgKiBmcm9tICcuL3NjaGVkYS1kcm9wZG93bi5laCc7XG5leHBvcnQgKiBmcm9tICcuL3NjaGVkYS1wZGYuZWgnO1xuZXhwb3J0ICogZnJvbSAnLi9leHRlbmRlZC10cmVlLmVoJztcbmV4cG9ydCAqIGZyb20gJy4vc2NoZWRhLWltYWdlLW5hdmlnYXRvci5laCc7XG5cbi8vIFNlYXJjaCBsYXlvdXRcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLWxheW91dC10YWJzLmVoJztcbmV4cG9ydCAqIGZyb20gJy4vYXctZmFjZXRzLXdyYXBwZXIuZWgnO1xuXG4vLyBHYWxsZXJ5IGxheW91dFxuZXhwb3J0ICogZnJvbSAnLi9nYWxsZXJ5LXJlc3VsdHMuZWgnO1xuXG4vLyBNYXAgbGF5b3V0XG5leHBvcnQgKiBmcm9tICcuL21hcC5laCc7XG5cbi8vIFRpbWVsaW5lIGxheW91dFxuZXhwb3J0ICogZnJvbSAnLi90aW1lbGluZS5laCc7XG5cbi8vIEFueVxuZXhwb3J0ICogZnJvbSAnLi9saW5rZWQtb2JqZWN0cy5laCc7XG5leHBvcnQgKiBmcm9tICcuL2F1dG9jb21wbGV0ZS13cmFwcGVyLmVoJztcbmV4cG9ydCAqIGZyb20gJy4vYnViYmxlLWNoYXJ0LmVoJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUuZWgnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC10aXBweS5laCc7XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { EventHandler } from '@net7/core';
|
|
2
|
+
export class AwSchedaImageNavigatorEH extends EventHandler {
|
|
3
|
+
listen() {
|
|
4
|
+
this.innerEvents$.subscribe(({ type, payload }) => {
|
|
5
|
+
switch (type) {
|
|
6
|
+
case 'aw-scheda-image-navigator.change':
|
|
7
|
+
this.dataSource.onChange(payload);
|
|
8
|
+
break;
|
|
9
|
+
case 'aw-scheda-image-navigator.submit':
|
|
10
|
+
this.dataSource.onSubmit();
|
|
11
|
+
break;
|
|
12
|
+
default:
|
|
13
|
+
break;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWRhLWltYWdlLW5hdmlnYXRvci5laC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9ldmVudC1oYW5kbGVycy9zY2hlZGEtaW1hZ2UtbmF2aWdhdG9yLmVoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHMUMsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFlBQVk7SUFHakQsTUFBTTtRQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtZQUNoRCxRQUFRLElBQUksRUFBRTtnQkFDWixLQUFLLGtDQUFrQztvQkFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ2xDLE1BQU07Z0JBQ1IsS0FBSyxrQ0FBa0M7b0JBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQzNCLE1BQU07Z0JBQ1I7b0JBQ0UsTUFBTTthQUNUO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEhhbmRsZXIgfSBmcm9tICdAbmV0Ny9jb3JlJztcbmltcG9ydCB7IEF3U2NoZWRhSW1hZ2VOYXZpZ2F0b3JEUyB9IGZyb20gJy4uL2RhdGEtc291cmNlcyc7XG5cbmV4cG9ydCBjbGFzcyBBd1NjaGVkYUltYWdlTmF2aWdhdG9yRUggZXh0ZW5kcyBFdmVudEhhbmRsZXIge1xuICBkYXRhU291cmNlOiBBd1NjaGVkYUltYWdlTmF2aWdhdG9yRFM7XG5cbiAgcHVibGljIGxpc3RlbigpIHtcbiAgICB0aGlzLmlubmVyRXZlbnRzJC5zdWJzY3JpYmUoKHsgdHlwZSwgcGF5bG9hZCB9KSA9PiB7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAnYXctc2NoZWRhLWltYWdlLW5hdmlnYXRvci5jaGFuZ2UnOlxuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5vbkNoYW5nZShwYXlsb2FkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYXctc2NoZWRhLWltYWdlLW5hdmlnYXRvci5zdWJtaXQnOlxuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5vblN1Ym1pdCgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -15,6 +15,7 @@ export const AwPatrimonioLayoutConfig = {
|
|
|
15
15
|
{ id: 'aw-scheda-metadata' },
|
|
16
16
|
{ id: 'aw-scheda-dropdown' },
|
|
17
17
|
{ id: 'aw-scheda-image' },
|
|
18
|
+
{ id: 'aw-scheda-image-navigator' },
|
|
18
19
|
{ id: 'aw-scheda-pdf' },
|
|
19
20
|
{ id: 'aw-scheda-inner-title' },
|
|
20
21
|
{ id: 'aw-related-entities' },
|
|
@@ -30,4 +31,4 @@ export const AwPatrimonioLayoutConfig = {
|
|
|
30
31
|
// TODO
|
|
31
32
|
},
|
|
32
33
|
};
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWRhLWxheW91dC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvbGF5b3V0cy9zY2hlZGEtbGF5b3V0L3NjaGVkYS1sYXlvdXQuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekMsT0FBTyxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxRQUFRLEVBQUUsa0JBQWtCO0lBQzVCOzs7T0FHRztJQUNILE9BQU8sRUFBRTtRQUNQLEVBQUUsRUFBRSxFQUFFLG1CQUFtQixFQUFFO1FBQzNCLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRTtRQUNqQixFQUFFLEVBQUUsRUFBRSx1QkFBdUIsRUFBRTtRQUMvQixFQUFFLEVBQUUsRUFBRSxvQkFBb0IsRUFBRTtRQUM1QixFQUFFLEVBQUUsRUFBRSxvQkFBb0IsRUFBRTtRQUM1QixFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRTtRQUN6QixFQUFFLEVBQUUsRUFBRSwyQkFBMkIsRUFBRTtRQUNuQyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUU7UUFDdkIsRUFBRSxFQUFFLEVBQUUsdUJBQXVCLEVBQUU7UUFDL0IsRUFBRSxFQUFFLEVBQUUscUJBQXFCLEVBQUU7UUFDN0IsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUU7UUFDeEIsRUFBRSxFQUFFLEVBQUUsbUJBQW1CLEVBQUU7UUFDM0IsRUFBRSxFQUFFLEVBQUUsa0JBQWtCLEVBQUU7S0FDM0I7SUFDRCxRQUFRLEVBQUUsZ0JBQWdCO0lBQzFCLFFBQVEsRUFBRSxnQkFBZ0I7SUFDMUIsa0JBQWtCLEVBQUUsRUFBRTtJQUN0QixvQkFBb0IsRUFBRSxFQUFFO0lBQ3hCLE9BQU8sRUFBRTtJQUNQLE9BQU87S0FDUjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd1NjaGVkYUxheW91dERTIH0gZnJvbSAnLi9zY2hlZGEtbGF5b3V0LmRzJztcbmltcG9ydCB7IEF3U2NoZWRhTGF5b3V0RUggfSBmcm9tICcuL3NjaGVkYS1sYXlvdXQuZWgnO1xuaW1wb3J0ICogYXMgRFMgZnJvbSAnLi4vLi4vZGF0YS1zb3VyY2VzJztcbmltcG9ydCAqIGFzIEVIIGZyb20gJy4uLy4uL2V2ZW50LWhhbmRsZXJzJztcblxuZXhwb3J0IGNvbnN0IEF3UGF0cmltb25pb0xheW91dENvbmZpZyA9IHtcbiAgbGF5b3V0SWQ6ICdhdy1zY2hlZGEtbGF5b3V0JyxcbiAgLyoqXG4gICAqIEFycmF5IG9mIGNvbXBvbmVudHMgeW91IHdhbnQgdG8gdXNlXG4gICAqIGluIHRoaXMgbGV5b3V0XG4gICAqL1xuICB3aWRnZXRzOiBbXG4gICAgeyBpZDogJ2F3LXNpZGViYXItaGVhZGVyJyB9LFxuICAgIHsgaWQ6ICdhdy10cmVlJyB9LFxuICAgIHsgaWQ6ICdhdy1zY2hlZGEtYnJlYWRjcnVtYnMnIH0sXG4gICAgeyBpZDogJ2F3LXNjaGVkYS1tZXRhZGF0YScgfSxcbiAgICB7IGlkOiAnYXctc2NoZWRhLWRyb3Bkb3duJyB9LFxuICAgIHsgaWQ6ICdhdy1zY2hlZGEtaW1hZ2UnIH0sXG4gICAgeyBpZDogJ2F3LXNjaGVkYS1pbWFnZS1uYXZpZ2F0b3InIH0sXG4gICAgeyBpZDogJ2F3LXNjaGVkYS1wZGYnIH0sXG4gICAgeyBpZDogJ2F3LXNjaGVkYS1pbm5lci10aXRsZScgfSxcbiAgICB7IGlkOiAnYXctcmVsYXRlZC1lbnRpdGllcycgfSxcbiAgICB7IGlkOiAnYXctY2hhcnQtdGlwcHknIH0sXG4gICAgeyBpZDogJ2F3LWxpbmtlZC1vYmplY3RzJyB9LFxuICAgIHsgaWQ6ICdhdy1leHRlbmRlZC10cmVlJyB9LFxuICBdLFxuICBsYXlvdXREUzogQXdTY2hlZGFMYXlvdXREUyxcbiAgbGF5b3V0RUg6IEF3U2NoZWRhTGF5b3V0RUgsXG4gIHdpZGdldHNEYXRhU291cmNlczogRFMsXG4gIHdpZGdldHNFdmVudEhhbmRsZXJzOiBFSCxcbiAgb3B0aW9uczoge1xuICAgIC8vIFRPRE9cbiAgfSxcbn07XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LayoutDataSource } from '@net7/core';
|
|
2
2
|
import { fromEvent, Subject, of, merge, } from 'rxjs';
|
|
3
|
-
import { takeUntil } from 'rxjs/operators';
|
|
3
|
+
import { first, takeUntil } from 'rxjs/operators';
|
|
4
4
|
import { clone, get as _get } from 'lodash';
|
|
5
5
|
import { helpers } from '@net7/boilerplate-common';
|
|
6
6
|
import metadataHelper from '../../helpers/metadata.helper';
|
|
@@ -367,6 +367,14 @@ export class AwSchedaLayoutDS extends LayoutDataSource {
|
|
|
367
367
|
else {
|
|
368
368
|
this.one('aw-scheda-image').update(this.currentDigitalObject);
|
|
369
369
|
}
|
|
370
|
+
// image viewer navigator
|
|
371
|
+
const navigatorConfig = this.layoutConfig['image-viewer-nav'];
|
|
372
|
+
if (navigatorConfig?.enabled) {
|
|
373
|
+
schedaImageDS.instanceLoaded$.pipe(first()).subscribe((viewer) => {
|
|
374
|
+
this.one('aw-scheda-image-navigator').updateOptions(navigatorConfig);
|
|
375
|
+
this.one('aw-scheda-image-navigator').update(viewer);
|
|
376
|
+
});
|
|
377
|
+
}
|
|
370
378
|
}
|
|
371
379
|
else if (this.currentDigitalObject.type === 'pdf') {
|
|
372
380
|
this.one('aw-scheda-pdf').update(this.currentDigitalObject);
|
|
@@ -381,7 +389,7 @@ export class AwSchedaLayoutDS extends LayoutDataSource {
|
|
|
381
389
|
id: 'scheda-layout-viewer',
|
|
382
390
|
type: $do.type,
|
|
383
391
|
label: $do.label,
|
|
384
|
-
hasNavigation
|
|
392
|
+
hasNavigation$: new Subject(),
|
|
385
393
|
items: $do.items.map(({ url, iiifImages }) => ({
|
|
386
394
|
url,
|
|
387
395
|
iiifImages,
|
|
@@ -394,4 +402,4 @@ export class AwSchedaLayoutDS extends LayoutDataSource {
|
|
|
394
402
|
}
|
|
395
403
|
}
|
|
396
404
|
AwSchedaLayoutDS.tree = null;
|
|
397
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWRhLWxheW91dC5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9sYXlvdXRzL3NjaGVkYS1sYXlvdXQvc2NoZWRhLWxheW91dC5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUMsT0FBTyxFQUNMLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FDOUIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLGNBQWMsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLFVBQVUsTUFBTSwyQkFBMkIsQ0FBQztBQUVuRCxNQUFNLG9CQUFvQixHQUFHLFdBQVcsQ0FBQztBQUV6QyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZ0JBQWdCO0lBQXREOztRQUdVLGVBQVUsR0FBaUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV6QywwQkFBcUIsR0FBaUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQW9CckQsaUJBQVksR0FBUSxFQUFFLENBQUM7UUE4QnZCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBRXhCLGtCQUFhLEdBQUcsTUFBTSxDQUFDO1FBRXZCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUV6QixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUl2QyxvREFBb0Q7UUFDN0MsZUFBVSxHQUFHLElBQUksQ0FBQztRQVNsQix1QkFBa0IsR0FFckIsRUFBRSxDQUFDO1FBSVAsMkRBQTJEO1FBQ25ELGlCQUFZ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dXREYXRhU291cmNlIH0gZnJvbSAnQG5ldDcvY29yZSc7XG5pbXBvcnQge1xuICBmcm9tRXZlbnQsIFN1YmplY3QsIG9mLCBtZXJnZSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjbG9uZSwgZ2V0IGFzIF9nZXQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgaGVscGVycyB9IGZyb20gJ0BuZXQ3L2JvaWxlcnBsYXRlLWNvbW1vbic7XG5pbXBvcnQgbWV0YWRhdGFIZWxwZXIgZnJvbSAnLi4vLi4vaGVscGVycy9tZXRhZGF0YS5oZWxwZXInO1xuaW1wb3J0IG5vZGVIZWxwZXIgZnJvbSAnLi4vLi4vaGVscGVycy9ub2RlLmhlbHBlcic7XG5cbmNvbnN0IExPQ0FMX1NUT1JBR0VfUFJFRklYID0gJ2F3LnNjaGVkYSc7XG5cbmV4cG9ydCBjbGFzcyBBd1NjaGVkYUxheW91dERTIGV4dGVuZHMgTGF5b3V0RGF0YVNvdXJjZSB7XG4gIHN0YXRpYyB0cmVlOiBhbnkgPSBudWxsO1xuXG4gIHByaXZhdGUgZGVzdHJveWVkJDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIHN0aWNreUNvbnRyb2xUcmlnZ2VyJDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIGNvbW11bmljYXRpb246IGFueTtcblxuICBwcm90ZWN0ZWQgY29uZmlndXJhdGlvbjogYW55O1xuXG4gIHByb3RlY3RlZCBtYWluU3RhdGU6IGFueTtcblxuICBwcm90ZWN0ZWQgcm91dGVyOiBhbnk7XG5cbiAgcHJvdGVjdGVkIHRpdGxlU2VydmljZTogYW55O1xuXG4gIHB1YmxpYyBvcHRpb25zOiBhbnk7XG5cbiAgcHJpdmF0ZSBsYXlvdXRDb25maWc7XG5cbiAgcHVibGljIHBhZ2VUaXRsZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBoYXNCcmVhZGNydW1iOiBib29sZWFuO1xuXG4gIHB1YmxpYyBjb250ZW50UGFydHM6IGFueSA9IHt9O1xuXG4gIHB1YmxpYyB0cmVlOiBhbnk7XG5cbiAgcHVibGljIHNpZGViYXJDb2xsYXBzZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIHJlbGF0ZWRFbnRpdGllc0hlYWRlcjogc3RyaW5nO1xuXG4gIHB1YmxpYyBzaW1pbGFySXRlbXNTZWN0aW9uVGl0bGU6IHN0cmluZztcblxuICBwdWJsaWMgbWV0YWRhdGFTZWN0aW9uVGl0bGU6IHN0cmluZztcblxuICBwdWJsaWMgaGFzTWV0YWRhdGE6IGJvb2xlYW47XG5cbiAgcHVibGljIGhhc1JlbGF0ZWRFbnRpdGllczogYm9vbGVhbjtcblxuICBwdWJsaWMgaGFzU2ltaWxhckl0ZW1zOiBib29sZWFuO1xuXG4gIHB1YmxpYyBoYXNFeHRlbmRlZFRyZWU6IGJvb2xlYW47XG5cbiAgcHVibGljIGhhc0RpZ2l0YWxPYmplY3RzOiBib29sZWFuO1xuXG4gIHB1YmxpYyBkaWdpdGFsT2JqZWN0czogYW55O1xuXG4gIHB1YmxpYyBjdXJyZW50RGlnaXRhbE9iamVjdDogYW55O1xuXG4gIHB1YmxpYyBjdXJyZW50RGlnaXRhbE9iamVjdEluZGV4OiBudW1iZXI7XG5cbiAgcHVibGljIGltYWdlVmlld2VySXN0YW5jZTogYW55O1xuXG4gIHB1YmxpYyBzaWRlYmFySXNTdGlja3kgPSBmYWxzZTtcblxuICBwdWJsaWMgdHJlZU1heEhlaWdodCA9ICcxMDAlJztcblxuICBwdWJsaWMgY29udGVudElzTG9hZGluZyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjdXJyZW50SWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBlbXB0eUxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqIFN3aXRjaCBsb2FkZWQtY29udGVudCBhbmQgbG9hZGVkLWVtcHR5IHN0YXRlcyAqL1xuICBwdWJsaWMgaGFzQ29udGVudCA9IHRydWU7XG5cbiAgLyoqIFN0cmluZyB0byByZW5kZXIgaW4gdGhlIGxvYWRlZC1lbXB0eSBzdGF0ZSAqL1xuICBwdWJsaWMgZW1wdHlTdGF0ZVN0cmluZzogc3RyaW5nO1xuXG4gIHB1YmxpYyBleHRlcm5hbFVybFRleHQ6IHN0cmluZztcblxuICBwdWJsaWMgaGFzQ29udGV4dE1lbnU6ICgpID0+IGJvb2xlYW47XG5cbiAgcHVibGljIGV4dGVuZGVkVHJlZVBhcmFtczoge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgfSA9IHt9O1xuXG4gIHB1YmxpYyBsYXN0UmVzcG9uc2U7XG5cbiAgLyoqIE5hbWUgb2YgcXVlcnkgdGhhdCBzaG91bGQgYmUgdXNlZCAoY2hvc2VuIGluIGNvbmZpZykgKi9cbiAgcHJpdmF0ZSBnZXRUcmVlUXVlcnk6ICdnZXRUcmVlJyB8ICdnZXRUcmVlTGl0ZScgPSAnZ2V0VHJlZSc7XG5cbiAgcHVibGljIHRpdGxlTmF2aWdhdGlvbjoge1xuICAgIHByZXY6IHsgaHJlZjogc3RyaW5nOyBsYWJlbDogc3RyaW5nOyB9O1xuICAgIG5leHQ6IHsgaHJlZjogc3RyaW5nOyBsYWJlbDogc3RyaW5nOyB9O1xuICB9ID0gbnVsbDtcblxuICBwdWJsaWMgc2VjdGlvbkNvbGxhcHNlU3RhdGUgPSB7XG4gICAgbWV0YWRhdGE6IGZhbHNlLFxuICAgICdleHRlbmRlZC10cmVlJzogZmFsc2UsXG4gICAgJ3NpbWlsYXItaXRlbXMnOiBmYWxzZSxcbiAgICAncmVsYXRlZC1lbnRpdGllcyc6IGZhbHNlXG4gIH07XG5cbiAgcHVibGljIGRvY3VtZW50VHlwZToge1xuICAgIGljb246IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICB9ID0gbnVsbDtcblxuICBvbkluaXQoe1xuICAgIGNvbmZpZ3VyYXRpb24sIG1haW5TdGF0ZSwgcm91dGVyLCBvcHRpb25zLCB0aXRsZVNlcnZpY2UsIGNvbW11bmljYXRpb24sXG4gIH0pIHtcbiAgICBpZiAoY29uZmlndXJhdGlvbikge1xuICAgICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjtcbiAgICAgIHRoaXMubGF5b3V0Q29uZmlnID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgnc2NoZWRhLWxheW91dCcpO1xuICAgIH1cbiAgICB0aGlzLm1haW5TdGF0ZSA9IG1haW5TdGF0ZTtcbiAgICB0aGlzLnJvdXRlciA9IHJvdXRlcjtcbiAgICB0aGlzLnRpdGxlU2VydmljZSA9IHRpdGxlU2VydmljZTtcbiAgICB0aGlzLmNvbW11bmljYXRpb24gPSBjb21tdW5pY2F0aW9uO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgaWYgKCF0aGlzLnNpZGViYXJDb2xsYXBzZWQpIHtcbiAgICAgIHRoaXMuc2lkZWJhckNvbGxhcHNlZCA9IHRoaXMubGF5b3V0Q29uZmlnLnRyZWUuY29sbGFwc2VkQnlEZWZhdWx0ID8/IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLnJlbGF0ZWRFbnRpdGllc0hlYWRlciA9IHRoaXMubGF5b3V0Q29uZmlnWydyZWxhdGVkLWVudGl0aWVzJ10udGl0bGU7XG4gICAgdGhpcy5zaW1pbGFySXRlbXNTZWN0aW9uVGl0bGUgPSB0aGlzLmxheW91dENvbmZpZ1sncmVsYXRlZC1pdGVtcyddLnRpdGxlO1xuICAgIHRoaXMuZXh0ZXJuYWxVcmxUZXh0ID0gdGhpcy5sYXlvdXRDb25maWdbJ2V4dGVybmFsLXVybC10ZXh0J107XG4gICAgdGhpcy5tZXRhZGF0YVNlY3Rpb25UaXRsZSA9IHRoaXMuZ2V0TWV0YWRhdGFTZWN0aW9uVGl0bGUoKTtcbiAgICB0aGlzLmhhc1NpbWlsYXJJdGVtcyA9IGZhbHNlO1xuICAgIHRoaXMub25lKCdhdy1jaGFydC10aXBweScpLnVwZGF0ZU9wdGlvbnMoe1xuICAgICAgYmFzZVBhdGg6IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3BhdGhzJykuZW50aXRhQmFzZVBhdGgsXG4gICAgfSk7XG4gICAgdGhpcy5lbXB0eUxhYmVsID0gdGhpcy5sYXlvdXRDb25maWdbJ2VtcHR5LWxhYmVsJ107XG4gICAgdGhpcy5lbXB0eVN0YXRlU3RyaW5nID0gdGhpcy5sYXlvdXRDb25maWdbJ2VtcHR5LWh0bWwnXTtcbiAgICB0aGlzLm9uZSgnYXctdHJlZScpLnVwZGF0ZU9wdGlvbnMoeyBjb25maWc6IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ2NvbmZpZy1rZXlzJykgfSk7XG5cbiAgICAvLyBzd2l0Y2ggdGhlIHRyZWUgcXVlcnkgdG8gdGhlIHNsaW0gdmVyc2lvblxuICAgIGlmICh0aGlzLmxheW91dENvbmZpZz8udHJlZT8ubGl0ZSkge1xuICAgICAgdGhpcy5nZXRUcmVlUXVlcnkgPSAnZ2V0VHJlZUxpdGUnO1xuICAgIH1cblxuICAgIHRoaXMubWFpblN0YXRlLnVwZGF0ZSgnaGVhZFRpdGxlJywgJ0FyaWFubmE0VmlldyAtIFBhdHJpbW9uaW8nKTtcbiAgICB0aGlzLm1haW5TdGF0ZS51cGRhdGUoJ3BhZ2VUaXRsZScsICdBcmlhbm5hNFZpZXcgLSBQYXRyaW1vbmlvJyk7XG4gICAgdGhpcy5tYWluU3RhdGUudXBkYXRlQ3VzdG9tKCdjdXJyZW50TmF2JywgJ3BhdHJpbW9uaW8nKTtcblxuICAgIC8vIGltYWdlIHZpZXdlciBjb250ZXh0LW1lbnUgY2hlY2tcbiAgICBjb25zdCBpbWFnZVZpZXdlckNvbmZpZyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3NjaGVkYS1sYXlvdXQnKVsnaW1hZ2Utdmlld2VyJ10gfHwge307XG4gICAgdGhpcy5oYXNDb250ZXh0TWVudSA9ICgpID0+ICEhaW1hZ2VWaWV3ZXJDb25maWdbJ2NvbnRleHQtbWVudSddO1xuXG4gICAgLy8gcGRmIHZpZXdlciBvcHRpb25zXG4gICAgdGhpcy5vbmUoJ2F3LXNjaGVkYS1wZGYnKS51cGRhdGVPcHRpb25zKHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3NjaGVkYS1sYXlvdXQnKVsncGRmLXZpZXdlciddIHx8IHt9KTtcblxuICAgIC8vIGNoZWNrIHNlY3Rpb24gY29sbGFwc2Ugc3RhdGVcbiAgICBPYmplY3Qua2V5cyh0aGlzLnNlY3Rpb25Db2xsYXBzZVN0YXRlKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IHN0b3JhZ2VLZXkgPSBgJHtMT0NBTF9TVE9SQUdFX1BSRUZJWH0uJHtrZXl9YDtcbiAgICAgIGNvbnN0IHN0b3JhZ2VWYWx1ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHN0b3JhZ2VLZXkpO1xuICAgICAgdGhpcy5zZWN0aW9uQ29sbGFwc2VTdGF0ZVtrZXldID0gc3RvcmFnZVZhbHVlID8gSlNPTi5wYXJzZShzdG9yYWdlVmFsdWUpIDogZmFsc2U7XG4gICAgfSk7XG5cbiAgICAvLyBzaWRlYmFyIHN0aWNreSBjb250cm9sXG4gICAgdGhpcy5fc2lkZWJhclN0aWNreUNvbnRyb2woKTtcbiAgfVxuXG4gIG9uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG5cbiAgZ2V0TWV0YWRhdGFTZWN0aW9uVGl0bGUoKSB7XG4gICAgY29uc3QgbGF5b3V0Q29uZmlnID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgnc2NoZWRhLWxheW91dCcpO1xuICAgIGNvbnN0IG1ldGFkYXRhQ29uZmlnID0gbGF5b3V0Q29uZmlnLm1ldGFkYXRhIHx8IHt9O1xuICAgIHJldHVybiBtZXRhZGF0YUNvbmZpZy50aXRsZSB8fCBudWxsO1xuICB9XG5cbiAgZ2V0TmF2aWdhdGlvbigpIHtcbiAgICBpZiAoQXdTY2hlZGFMYXlvdXREUy50cmVlKSB7XG4gICAgICByZXR1cm4gb2YoQXdTY2hlZGFMYXlvdXREUy50cmVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29tbXVuaWNhdGlvbi5yZXF1ZXN0JCh0aGlzLmdldFRyZWVRdWVyeSwge1xuICAgICAgb25FcnJvcjogKGVycm9yKSA9PiBjb25zb2xlLmVycm9yKGVycm9yKSxcbiAgICAgIHBhcmFtczoge1xuICAgICAgICBvbmx5QWw6ICEhdGhpcy5sYXlvdXRDb25maWdbJ2V4dGVuZGVkLXRyZWUnXVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHNldFRyZWUodHJlZSkge1xuICAgIEF3U2NoZWRhTGF5b3V0RFMudHJlZSA9IHRyZWU7XG4gIH1cblxuICBnZXRUcmVlID0gKCkgPT4gQXdTY2hlZGFMYXlvdXREUy50cmVlO1xuXG4gIHVwZGF0ZU5hdmlnYXRpb24odGV4dCkge1xuICAgIHRoaXMub25lKCdhdy1zaWRlYmFyLWhlYWRlcicpLnVwZGF0ZSh7IHRleHQsIGlzRXhwYW5kZWQ6ICF0aGlzLnNpZGViYXJDb2xsYXBzZWQgfSk7XG4gIH1cblxuICBsb2FkSXRlbShpZCkge1xuICAgIGNvbnN0IG1heFNpbWlsYXJJdGVtcyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3NjaGVkYS1sYXlvdXQnKVsncmVsYXRlZC1pdGVtcyddWydtYXgtcmVsYXRlZC1pdGVtcyddO1xuICAgIHJldHVybiB0aGlzLmNvbW11bmljYXRpb24ucmVxdWVzdCQoJ2dldE5vZGUnLCB7XG4gICAgICBvbkVycm9yOiAoZXJyb3IpID0+IGNvbnNvbGUuZXJyb3IoZXJyb3IpLFxuICAgICAgcGFyYW1zOiB7IGlkLCBtYXhTaW1pbGFySXRlbXMgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgY29udGVudCBvZiB0aGUgc2VsZWN0ZWQgdHJlZSBpdGVtIGluIHRoZSByaWdodCBwb3J0aW9uIG9mIHRoZSB2aWV3LlxuICAgKiBAcGFyYW0gcmVzcG9uc2UgaHR0cCByZXNwb25zZSBmb3IgdGhlIHRyZWUgaXRlbVxuICAgKi9cbiAgbG9hZENvbnRlbnQocmVzcG9uc2UpIHtcbiAgICB0aGlzLmxhc3RSZXNwb25zZSA9IHJlc3BvbnNlO1xuICAgIGlmIChyZXNwb25zZSkge1xuICAgICAgLy8gcmVzZXRcbiAgICAgIHRoaXMuY3VycmVudERpZ2l0YWxPYmplY3QgPSBudWxsO1xuICAgICAgdGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdEluZGV4ID0gbnVsbDtcblxuICAgICAgY29uc3QgbWV0YWRhdGFGaWVsZHMgPSB0aGlzLmdldEZpZWxkcyhyZXNwb25zZSk7XG4gICAgICB0aGlzLmhhc01ldGFkYXRhID0gISEoQXJyYXkuaXNBcnJheShtZXRhZGF0YUZpZWxkcykgJiYgbWV0YWRhdGFGaWVsZHMubGVuZ3RoKTtcbiAgICAgIHRoaXMuaGFzU2ltaWxhckl0ZW1zID0gKFxuICAgICAgICAhdGhpcy5sYXlvdXRDb25maWdbJ2V4dGVuZGVkLXRyZWUnXVxuICAgICAgICAmJiBBcnJheS5pc0FycmF5KHJlc3BvbnNlLnJlbGF0ZWRJdGVtcylcbiAgICAgICAgJiYgcmVzcG9uc2UucmVsYXRlZEl0ZW1zLmxlbmd0aFxuICAgICAgKTtcbiAgICAgIHRoaXMuaGFzQnJlYWRjcnVtYiA9IEFycmF5LmlzQXJyYXkocmVzcG9uc2UuYnJlYWRjcnVtYnMpICYmIHJlc3BvbnNlLmJyZWFkY3J1bWJzLmxlbmd0aDtcbiAgICAgIHRoaXMuaGFzRGlnaXRhbE9iamVjdHMgPSAoXG4gICAgICAgIEFycmF5LmlzQXJyYXkocmVzcG9uc2UuZGlnaXRhbE9iamVjdHMpXG4gICAgICAgICYmIHJlc3BvbnNlLmRpZ2l0YWxPYmplY3RzLmxlbmd0aFxuICAgICAgKTtcbiAgICAgIHRoaXMuaGFzUmVsYXRlZEVudGl0aWVzID0gKFxuICAgICAgICBBcnJheS5pc0FycmF5KHJlc3BvbnNlLnJlbGF0ZWRFbnRpdGllcylcbiAgICAgICAgJiYgcmVzcG9uc2UucmVsYXRlZEVudGl0aWVzLmxlbmd0aFxuICAgICAgKTtcbiAgICAgIHRoaXMuaGFzQ29udGVudCA9ICEhKFxuICAgICAgICB0aGlzLmhhc01ldGFkYXRhXG4gICAgICAgIHx8IHRoaXMuaGFzU2ltaWxhckl0ZW1zXG4gICAgICAgIHx8IHRoaXMuaGFzUmVsYXRlZEVudGl0aWVzXG4gICAgICAgIHx8IHRoaXMuaGFzRGlnaXRhbE9iamVjdHNcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuY29udGVudFBhcnRzID0gW107XG4gICAgICBjb25zdCBjb250ZW50ID0geyBjb250ZW50OiBudWxsIH07XG5cbiAgICAgIGlmIChyZXNwb25zZS50ZXh0KSB7XG4gICAgICAgIGNvbnRlbnQuY29udGVudCA9IHJlc3BvbnNlLnRleHQ7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbnRlbnRQYXJ0cy5wdXNoKGNvbnRlbnQpO1xuXG4gICAgICAvLyBkaWdpdGFsIG9iamVjdHNcbiAgICAgIGlmICh0aGlzLmhhc0RpZ2l0YWxPYmplY3RzKSB7XG4gICAgICAgIHJlc3BvbnNlLmRpZ2l0YWxPYmplY3RzID0gdGhpcy5ub3JtYWxpemVEaWdpdGFsT2JqZWN0cyhyZXNwb25zZS5kaWdpdGFsT2JqZWN0cyk7XG4gICAgICAgIC8vIHRoaXMub25lKCdhdy1zY2hlZGEtZGlnaXRhbC1vYmplY3RzJykudXBkYXRlKHJlc3BvbnNlLmRpZ2l0YWxPYmplY3RzKTtcbiAgICAgICAgdGhpcy5vbmUoJ2F3LXNjaGVkYS1kcm9wZG93bicpLnVwZGF0ZShyZXNwb25zZSk7XG4gICAgICAgIHRoaXMuZGlnaXRhbE9iamVjdHMgPSByZXNwb25zZS5kaWdpdGFsT2JqZWN0cztcbiAgICAgICAgdGhpcy5jaGFuZ2VEaWdpdGFsT2JqZWN0KDApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0aXRsZU9iaiA9IHtcbiAgICAgICAgaWNvbjogcmVzcG9uc2UuaWNvbixcbiAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICBtYWluOiB7XG4gICAgICAgICAgICB0ZXh0OiByZXNwb25zZS50aXRsZSB8fCByZXNwb25zZS5sYWJlbCxcbiAgICAgICAgICAgIGNsYXNzZXM6ICdib2xkJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB0b29sczogcmVzcG9uc2Uuc3ViVGl0bGUsXG4gICAgICAgIGFjdGlvbnM6IHt9LFxuICAgICAgfTtcblxuICAgICAgdGhpcy5vbmUoJ2F3LXNjaGVkYS1pbm5lci10aXRsZScpLnVwZGF0ZSh0aXRsZU9iaik7XG4gICAgICB0aGlzLm9uZSgnYXctc2NoZWRhLW1ldGFkYXRhJykudXBkYXRlKG1ldGFkYXRhRmllbGRzKTtcblxuICAgICAgLy8gQnJlYWRjcnVtYiBzZWN0aW9uXG4gICAgICBjb25zdCBicmVhZGNydW1icyA9IHtcbiAgICAgICAgaXRlbXM6IFtdLFxuICAgICAgfTtcblxuICAgICAgaWYgKHJlc3BvbnNlLmJyZWFkY3J1bWJzKSB7XG4gICAgICAgIHJlc3BvbnNlLmJyZWFkY3J1bWJzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICBicmVhZGNydW1icy5pdGVtcy5wdXNoKHtcbiAgICAgICAgICAgIGxhYmVsOiBlbGVtZW50LmxhYmVsLFxuICAgICAgICAgICAgYW5jaG9yOiB7XG4gICAgICAgICAgICAgIGhyZWY6IFtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdwYXRocycpLnNjaGVkYUJhc2VQYXRoLFxuICAgICAgICAgICAgICAgIGAke2VsZW1lbnQubGlua30vYCxcbiAgICAgICAgICAgICAgICBoZWxwZXJzLnNsdWdpZnkoZWxlbWVudC5sYWJlbCksXG4gICAgICAgICAgICAgIF0uam9pbignJyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbmUoJ2F3LXNjaGVkYS1icmVhZGNydW1icycpLnVwZGF0ZShicmVhZGNydW1icyk7XG4gICAgICB9XG5cbiAgICAgIC8vIHRpdGxlIHByZXYgLyBuZXh0IG5hdmlnYXRpb25cbiAgICAgIHRoaXMubG9hZFRpdGxlTmF2aWdhdGlvbigpO1xuXG4gICAgICAvLyBkb2N1bWVudCB0aXRsZSB0eXBlIChpY29uLCBsYWJlbClcbiAgICAgIHRoaXMubG9hZERvY3VtZW50VHlwZSgpO1xuXG4gICAgICAvLyB1cGRhdGUgaGVhZCB0aXRsZVxuICAgICAgdGhpcy5tYWluU3RhdGUudXBkYXRlKCdoZWFkVGl0bGUnLCBgQXJpYW5uYTRWaWV3IC0gUGF0cmltb25pbyAtICR7cmVzcG9uc2UudGl0bGUgfHwgcmVzcG9uc2UubGFiZWx9YCk7XG4gICAgfVxuXG4gICAgaWYgKHJlc3BvbnNlLnJlbGF0ZWRJdGVtcykge1xuICAgICAgdGhpcy5vbmUoJ2F3LWxpbmtlZC1vYmplY3RzJykudXBkYXRlT3B0aW9ucyh7IGNvbnRleHQ6ICdzY2hlZGEnLCBjb25maWc6IHRoaXMuY29uZmlndXJhdGlvbiB9KTtcbiAgICAgIHRoaXMub25lKCdhdy1saW5rZWQtb2JqZWN0cycpLnVwZGF0ZShyZXNwb25zZSk7XG4gICAgfVxuICAgIGlmIChyZXNwb25zZS5yZWxhdGVkRW50aXRpZXMpIHtcbiAgICAgIHJlc3BvbnNlLnJlbGF0ZWRFbnRpdGllcy5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgICBjb25zdCBsYWJlbCA9IHJlc3BvbnNlLnRpdGxlIHx8IHJlc3BvbnNlLmxhYmVsO1xuICAgICAgICBlbC5yZWxhdGlvbk5hbWUgPSBsYWJlbC5sZW5ndGggPiAzMFxuICAgICAgICAgID8gYCR7bGFiZWwuc3Vic3RyKDAsIDMwKX0uLi4gYFxuICAgICAgICAgIDogbGFiZWw7XG4gICAgICB9KTtcbiAgICAgIHRoaXMub25lKCdhdy1yZWxhdGVkLWVudGl0aWVzJykudXBkYXRlT3B0aW9ucyh7XG4gICAgICAgIGNvbnRleHQ6ICdzY2hlZGEnLCBjb25maWc6IHRoaXMuY29uZmlndXJhdGlvbiwgbGlzdDogJ3JlbGF0ZWRFbnRpdGllcycsIHRpdGxlOiByZXNwb25zZS50aXRsZVxuICAgICAgfSk7XG4gICAgICB0aGlzLm9uZSgnYXctcmVsYXRlZC1lbnRpdGllcycpLnVwZGF0ZShyZXNwb25zZS5yZWxhdGVkRW50aXRpZXMpO1xuICAgIH1cblxuICAgIC8vIGNvbnRyb2wgc3RpY2t5XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnN0aWNreUNvbnRyb2xUcmlnZ2VyJC5uZXh0KCk7XG4gICAgfSk7XG4gIH1cblxuICBsb2FkRXh0ZW5kZWRUcmVlKCkge1xuICAgIGNvbnN0IHBhcmVudFJlc3BvbnNlID0gdGhpcy5sYXN0UmVzcG9uc2U7XG5cbiAgICBpZiAodGhpcy5sYXlvdXRDb25maWdbJ2V4dGVuZGVkLXRyZWUnXSkge1xuICAgICAgY29uc3QgY29uZmlnS2V5cyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ2NvbmZpZy1rZXlzJyk7XG4gICAgICBjb25zdCB3aWRnZXRPcHRpb25zID0gdGhpcy5sYXlvdXRDb25maWdbJ2V4dGVuZGVkLXRyZWUnXTtcbiAgICAgIGNvbnN0IHBhcmFtczogYW55ID0ge1xuICAgICAgICBpZDogcGFyZW50UmVzcG9uc2UuaWQsXG4gICAgICAgIHBhZ2U6IDEsXG4gICAgICAgIGxpbWl0OiAxMCxcbiAgICAgICAgcXVlcnk6IG51bGwsXG4gICAgICAgIC4uLnRoaXMuZXh0ZW5kZWRUcmVlUGFyYW1zLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHdpZGdldFBhcmFtcyA9IGNsb25lKHBhcmFtcyk7XG5cbiAgICAgIC8vIG5vcm1hbGl6ZSBwYXJhbXNcbiAgICAgIHBhcmFtcy5vZmZzZXQgPSAocGFyYW1zLnBhZ2UgLSAxKSAqIHBhcmFtcy5saW1pdDtcbiAgICAgIGRlbGV0ZSBwYXJhbXMucGFnZTtcblxuICAgICAgY29uc3QgYmFzZVBhdGggPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdwYXRocycpLnNjaGVkYUJhc2VQYXRoO1xuICAgICAgY29uc3QgcmVxdWVzdCQgPSB0aGlzLmNvbW11bmljYXRpb24ucmVxdWVzdCQoJ2dldE5vZGVDaGlsZHJlbicsIHtcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICBvbkVycm9yOiAoZXJyb3IpID0+IGNvbnNvbGUuZXJyb3IoZXJyb3IpLFxuICAgICAgfSk7XG4gICAgICByZXF1ZXN0JC5zdWJzY3JpYmUoKG5vZGVzUmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5oYXNFeHRlbmRlZFRyZWUgPSAoXG4gICAgICAgICAgcGFyYW1zLnF1ZXJ5XG4gICAgICAgICAgfHwgd2lkZ2V0UGFyYW1zLnBhZ2UgPiAxXG4gICAgICAgICAgfHwgISFub2Rlc1Jlc3BvbnNlPy5pdGVtcz8ubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICAgIGlmICh0aGlzLmhhc0V4dGVuZGVkVHJlZSkge1xuICAgICAgICAgIHRoaXMub25lKCdhdy1leHRlbmRlZC10cmVlJykudXBkYXRlT3B0aW9ucyh7XG4gICAgICAgICAgICBiYXNlUGF0aCxcbiAgICAgICAgICAgIGNvbmZpZ0tleXMsXG4gICAgICAgICAgICBwYXJhbXM6IHdpZGdldFBhcmFtcyxcbiAgICAgICAgICAgIC4uLndpZGdldE9wdGlvbnMsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5vbmUoJ2F3LWV4dGVuZGVkLXRyZWUnKS51cGRhdGUoe1xuICAgICAgICAgICAgcGFyZW50OiBwYXJlbnRSZXNwb25zZSxcbiAgICAgICAgICAgIG5vZGVzOiBub2Rlc1Jlc3BvbnNlXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICAvLyBmaXggcXVlcnkgaW5wdXQgdXBkYXRlXG4gICAgICAgICAgaWYgKHBhcmFtcy5xdWVyeSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHF1ZXJ5SW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgPSBkb2N1bWVudFxuICAgICAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCcuYXctZXh0ZW5kZWQtdHJlZV9faGVhZGVyIC5uNy1pbm5lci10aXRsZV9fc2VhcmNoLWJhcicpO1xuICAgICAgICAgICAgICBxdWVyeUlucHV0LnZhbHVlID0gcGFyYW1zLnF1ZXJ5IHx8ICcnO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYXNFeHRlbmRlZFRyZWUgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBsb2FkVGl0bGVOYXZpZ2F0aW9uKCkge1xuICAgIC8vIHJlc2V0XG4gICAgdGhpcy50aXRsZU5hdmlnYXRpb24gPSBudWxsO1xuXG4gICAgY29uc3QgaGFzVGl0bGVOYXYgPSAoXG4gICAgICAhIXRoaXMubGF5b3V0Q29uZmlnWyd0aXRsZS1uYXYnXT8uZW5hYmxlZFxuICAgICAgJiYgdGhpcy5sYXN0UmVzcG9uc2UuZG9jdW1lbnRfdHlwZSA9PT0gJ29nZ2V0dG8tY3VsdHVyYWxlJ1xuICAgICk7XG4gICAgaWYgKCFoYXNUaXRsZU5hdikgcmV0dXJuO1xuXG4gICAgdGhpcy50aXRsZU5hdmlnYXRpb24gPSB7IHByZXY6IG51bGwsIG5leHQ6IG51bGwgfTtcbiAgICBjb25zdCBiYXNlUGF0aCA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3BhdGhzJykuc2NoZWRhQmFzZVBhdGg7XG4gICAgWydwcmV2JywgJ25leHQnXS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmxhc3RSZXNwb25zZVtrZXldO1xuICAgICAgdGhpcy50aXRsZU5hdmlnYXRpb25ba2V5XSA9IGl0ZW1cbiAgICAgICAgPyB7XG4gICAgICAgICAgaHJlZjogYCR7YmFzZVBhdGh9LyR7aXRlbS5pZH0vJHtoZWxwZXJzLnNsdWdpZnkoaXRlbS5sYWJlbCl9YCxcbiAgICAgICAgICBsYWJlbDogaXRlbS5sYWJlbCxcbiAgICAgICAgfSA6IG51bGw7XG4gICAgfSk7XG4gIH1cblxuICBsb2FkRG9jdW1lbnRUeXBlKCkge1xuICAgIGNvbnN0IGNvbmZpZ0tleXMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdjb25maWcta2V5cycpO1xuICAgIGNvbnN0IHsgZG9jdW1lbnRfdHlwZTogdHlwZSB9ID0gdGhpcy5sYXN0UmVzcG9uc2U7XG4gICAgY29uc3QgaWNvbiA9IG5vZGVIZWxwZXIuZ2V0Tm9kZUljb24oY29uZmlnS2V5cywgdGhpcy5sYXN0UmVzcG9uc2UpO1xuICAgIGlmIChjb25maWdLZXlzW3R5cGVdKSB7XG4gICAgICB0aGlzLmRvY3VtZW50VHlwZSA9IHtcbiAgICAgICAgaWNvbixcbiAgICAgICAgbGFiZWw6IGNvbmZpZ0tleXNbdHlwZV1bJ3Npbmd1bGFyLWxhYmVsJ11cbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZG9jdW1lbnRUeXBlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlIGJldHdlZW4gdGhlIHRyZWUncyBjb2xsYXBzZWQgb3IgZXhwYW5kZWQgc3RhdGUuXG4gICAqL1xuICBjb2xsYXBzZVNpZGViYXIoKSB7XG4gICAgLy8gb3ZlcndyaXRlIHRoZSBjb25maWd1cmF0aW9uIHRvIHByZXZlbnQgdW53YW50ZWQgY2hhbmdlcyB0byB0aGUgdHJlZSBzdGF0ZS5cbiAgICB0aGlzLmxheW91dENvbmZpZy50cmVlLmNvbGxhcHNlZEJ5RGVmYXVsdCA9ICF0aGlzLmxheW91dENvbmZpZy50cmVlLmNvbGxhcHNlZEJ5RGVmYXVsdDtcbiAgICB0aGlzLnNpZGViYXJDb2xsYXBzZWQgPSAhdGhpcy5zaWRlYmFyQ29sbGFwc2VkO1xuICAgIHRoaXMuZ2V0V2lkZ2V0RGF0YVNvdXJjZSgnYXctc2lkZWJhci1oZWFkZXInKS50b2dnbGVTaWRlYmFyKCk7XG4gIH1cblxuICBvblNlY3Rpb25Db2xsYXBzZShpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWN0aW9uQ29sbGFwc2VTdGF0ZVtpZF0gPSAhdGhpcy5zZWN0aW9uQ29sbGFwc2VTdGF0ZVtpZF07XG5cbiAgICAvLyB1cGRhdGUgc3RvcmFnZVxuICAgIGNvbnN0IHN0b3JhZ2VLZXkgPSBgJHtMT0NBTF9TVE9SQUdFX1BSRUZJWH0uJHtpZH1gO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHN0b3JhZ2VLZXksIHRoaXMuc2VjdGlvbkNvbGxhcHNlU3RhdGVbaWRdKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NpZGViYXJTdGlja3lDb250cm9sKCkge1xuICAgIC8vIG5vIHN0aWNreSBmb3IgSW50ZXJuZXQgRXhwbG9yZXJcbiAgICBpZiAoaGVscGVycy5icm93c2VySXNJRSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHNvdXJjZSQgPSBmcm9tRXZlbnQod2luZG93LCAnc2Nyb2xsJyk7XG5cbiAgICBtZXJnZShzb3VyY2UkLCB0aGlzLnN0aWNreUNvbnRyb2xUcmlnZ2VyJCkucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpLFxuICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNvbnN0IHdpbmRvd1RvcCA9IHdpbmRvdy5wYWdlWU9mZnNldDtcbiAgICAgIGNvbnN0IHdpbmRvd0JvdHRvbSA9IHdpbmRvdy5zY3JvbGxZICsgd2luZG93LmlubmVySGVpZ2h0O1xuICAgICAgY29uc3Qgd3JhcHBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3N0aWNreS1wYXJlbnQnKVswXSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNvbnN0IHdyYXBwZXJUb3AgPSB3cmFwcGVyLm9mZnNldFRvcDtcbiAgICAgIGNvbnN0IHdyYXBwZXJCb3R0b20gPSB3cmFwcGVyVG9wICsgd3JhcHBlci5jbGllbnRIZWlnaHQ7XG5cbiAgICAgIHRoaXMuc2lkZWJhcklzU3RpY2t5ID0gd3JhcHBlclRvcCA8PSB3aW5kb3dUb3A7XG5cbiAgICAgIC8vIHRyZWUgaGVpZ2h0IGNvbnRyb2xcbiAgICAgIGlmICh0aGlzLnNpZGViYXJJc1N0aWNreSAmJiB3aW5kb3dCb3R0b20gPCB3cmFwcGVyQm90dG9tKSB7XG4gICAgICAgIHRoaXMudHJlZU1heEhlaWdodCA9IGAke3dpbmRvd0JvdHRvbSAtIHdpbmRvd1RvcCAtIDUwfXB4YDtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zaWRlYmFySXNTdGlja3kgJiYgd2luZG93Qm90dG9tID49IHdyYXBwZXJCb3R0b20pIHtcbiAgICAgICAgdGhpcy50cmVlTWF4SGVpZ2h0ID0gYCR7d3JhcHBlckJvdHRvbSAtIHdpbmRvd1RvcCAtIDUwfXB4YDtcbiAgICAgIH0gZWxzZSBpZiAod2luZG93Qm90dG9tIDwgd3JhcHBlckJvdHRvbSkge1xuICAgICAgICB0aGlzLnRyZWVNYXhIZWlnaHQgPSBgJHt3aW5kb3dCb3R0b20gLSB3cmFwcGVyVG9wIC0gNTB9cHhgO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50cmVlTWF4SGVpZ2h0ID0gYCR7d3JhcHBlckJvdHRvbSAtIHdyYXBwZXJUb3AgLSA1MH1weGA7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmllbGRzKHJlc3BvbnNlKSB7XG4gICAgY29uc3Qge1xuICAgICAgZmllbGRzLFxuICAgICAgZG9jdW1lbnRfdHlwZTogZHQsXG4gICAgICBkb2N1bWVudF9jbGFzc2lmaWNhdGlvbjogZGNcbiAgICB9ID0gcmVzcG9uc2U7XG4gICAgY29uc3QgcGF0aHMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdwYXRocycpO1xuICAgIGNvbnN0IGxhYmVscyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ2xhYmVscycpO1xuICAgIGNvbnN0IGRjU2VnbWVudHMgPSB0eXBlb2YgZGMgPT09ICdzdHJpbmcnID8gZGMuc3BsaXQoJy4nKSA6IFtdO1xuICAgIGNvbnN0IGRjTGFzdFNlZ21lbnQgPSBkY1NlZ21lbnRzW2RjU2VnbWVudHMubGVuZ3RoIC0gMV07XG4gICAgbGV0IG1ldGFkYXRhVG9TaG93ID0gX2dldCh0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdzY2hlZGEtbGF5b3V0JyksICdtZXRhZGF0YS10by1zaG93Jywge30pO1xuICAgIG1ldGFkYXRhVG9TaG93ID0gbWV0YWRhdGFUb1Nob3dbZGNMYXN0U2VnbWVudF0gfHwgbWV0YWRhdGFUb1Nob3dbZHRdIHx8IFtdO1xuXG4gICAgcmV0dXJuIG1ldGFkYXRhSGVscGVyLm5vcm1hbGl6ZSh7XG4gICAgICBmaWVsZHMsXG4gICAgICBwYXRocyxcbiAgICAgIGxhYmVscyxcbiAgICAgIG1ldGFkYXRhVG9TaG93LFxuICAgICAgdHlwZTogZHRcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VEaWdpdGFsT2JqZWN0KHBheWxvYWQpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdEluZGV4ICE9PSBwYXlsb2FkKSB7XG4gICAgICAvLyBsaW5rIGNoZWNrXG4gICAgICBpZiAodGhpcy5kaWdpdGFsT2JqZWN0c1twYXlsb2FkXS50eXBlID09PSAnZXh0ZXJuYWwnICYmIHRoaXMuY3VycmVudERpZ2l0YWxPYmplY3QpIHtcbiAgICAgICAgd2luZG93Lm9wZW4odGhpcy5kaWdpdGFsT2JqZWN0c1twYXlsb2FkXS51cmwsICdfYmxhbmsnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGFsd2F5cyByZXNldCBpbWFnZSB2aWV3ZXJcbiAgICAgICAgY29uc3Qgc2NoZWRhSW1hZ2VEUyA9IHRoaXMuZ2V0V2lkZ2V0RGF0YVNvdXJjZSgnYXctc2NoZWRhLWltYWdlJyk7XG4gICAgICAgIHNjaGVkYUltYWdlRFMucmVzZXQoKTtcblxuICAgICAgICB0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0SW5kZXggPSBwYXlsb2FkO1xuICAgICAgICB0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0ID0gdGhpcy5kaWdpdGFsT2JqZWN0c1twYXlsb2FkXTtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudERpZ2l0YWxPYmplY3QudHlwZS5pbmNsdWRlcygnaW1hZ2VzJykpIHtcbiAgICAgICAgICBpZiAoc2NoZWRhSW1hZ2VEUy5oYXNJbnN0YW5jZSgpKSB7XG4gICAgICAgICAgICBzY2hlZGFJbWFnZURTLnVwZGF0ZUltYWdlcyh0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vbmUoJ2F3LXNjaGVkYS1pbWFnZScpLnVwZGF0ZSh0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdC50eXBlID09PSAncGRmJykge1xuICAgICAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtcGRmJykudXBkYXRlKHRoaXMuY3VycmVudERpZ2l0YWxPYmplY3QpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVEaWdpdGFsT2JqZWN0cyhkaWdpdGFsT2JqZWN0cykge1xuICAgIHJldHVybiBkaWdpdGFsT2JqZWN0cy5tYXAoKCRkbykgPT4ge1xuICAgICAgaWYgKCRkby50eXBlLmluY2x1ZGVzKCdpbWFnZXMnKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGlkOiAnc2NoZWRhLWxheW91dC12aWV3ZXInLFxuICAgICAgICAgIHR5cGU6ICRkby50eXBlLFxuICAgICAgICAgIGxhYmVsOiAkZG8ubGFiZWwsXG4gICAgICAgICAgaGFzTmF2aWdhdGlvbjogJGRvLml0ZW1zLmxlbmd0aCA+IDEsXG4gICAgICAgICAgaXRlbXM6ICRkby5pdGVtcy5tYXAoKHsgdXJsLCBpaWlmSW1hZ2VzIH0pID0+ICh7XG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBpaWlmSW1hZ2VzLFxuICAgICAgICAgICAgdHlwZTogJGRvLnR5cGUsXG4gICAgICAgICAgfSkpXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gJGRvO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
405
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWRhLWxheW91dC5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9sYXlvdXRzL3NjaGVkYS1sYXlvdXQvc2NoZWRhLWxheW91dC5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUMsT0FBTyxFQUNMLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FDOUIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxjQUFjLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFFbkQsTUFBTSxvQkFBb0IsR0FBRyxXQUFXLENBQUM7QUFFekMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGdCQUFnQjtJQUF0RDs7UUFHVSxlQUFVLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFekMsMEJBQXFCLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7UUFvQnJELGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBOEJ2QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4QixrQkFBYSxHQUFHLE1BQU0sQ0FBQztRQUV2QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFekIsY0FBUyxHQUFrQixJQUFJLENBQUM7UUFJdkMsb0RBQW9EO1FBQzdDLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFTbEIsdUJBQWtCLEdBRXJCLEVBQUUsQ0FBQztRQUlQLDJEQUEyRDtR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LEVBQUUsR0FBRyxDQUFDLEtBQUs7b0JBQ2hCLGNBQWMsRUFBRSxJQUFJLE9BQU8sRUFBRTtvQkFDN0IsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQzdDLEdBQUc7d0JBQ0gsVUFBVTt3QkFDVixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7cUJBQ2YsQ0FBQyxDQUFDO2lCQUNKLENBQUM7YUFDSDtZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQW5oQk0scUJBQUksR0FBUSxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYXlvdXREYXRhU291cmNlIH0gZnJvbSAnQG5ldDcvY29yZSc7XG5pbXBvcnQge1xuICBmcm9tRXZlbnQsIFN1YmplY3QsIG9mLCBtZXJnZSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY2xvbmUsIGdldCBhcyBfZ2V0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGhlbHBlcnMgfSBmcm9tICdAbmV0Ny9ib2lsZXJwbGF0ZS1jb21tb24nO1xuaW1wb3J0IG1ldGFkYXRhSGVscGVyIGZyb20gJy4uLy4uL2hlbHBlcnMvbWV0YWRhdGEuaGVscGVyJztcbmltcG9ydCBub2RlSGVscGVyIGZyb20gJy4uLy4uL2hlbHBlcnMvbm9kZS5oZWxwZXInO1xuXG5jb25zdCBMT0NBTF9TVE9SQUdFX1BSRUZJWCA9ICdhdy5zY2hlZGEnO1xuXG5leHBvcnQgY2xhc3MgQXdTY2hlZGFMYXlvdXREUyBleHRlbmRzIExheW91dERhdGFTb3VyY2Uge1xuICBzdGF0aWMgdHJlZTogYW55ID0gbnVsbDtcblxuICBwcml2YXRlIGRlc3Ryb3llZCQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBzdGlja3lDb250cm9sVHJpZ2dlciQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBjb21tdW5pY2F0aW9uOiBhbnk7XG5cbiAgcHJvdGVjdGVkIGNvbmZpZ3VyYXRpb246IGFueTtcblxuICBwcm90ZWN0ZWQgbWFpblN0YXRlOiBhbnk7XG5cbiAgcHJvdGVjdGVkIHJvdXRlcjogYW55O1xuXG4gIHByb3RlY3RlZCB0aXRsZVNlcnZpY2U6IGFueTtcblxuICBwdWJsaWMgb3B0aW9uczogYW55O1xuXG4gIHByaXZhdGUgbGF5b3V0Q29uZmlnO1xuXG4gIHB1YmxpYyBwYWdlVGl0bGU6IHN0cmluZztcblxuICBwdWJsaWMgaGFzQnJlYWRjcnVtYjogYm9vbGVhbjtcblxuICBwdWJsaWMgY29udGVudFBhcnRzOiBhbnkgPSB7fTtcblxuICBwdWJsaWMgdHJlZTogYW55O1xuXG4gIHB1YmxpYyBzaWRlYmFyQ29sbGFwc2VkOiBib29sZWFuO1xuXG4gIHB1YmxpYyByZWxhdGVkRW50aXRpZXNIZWFkZXI6IHN0cmluZztcblxuICBwdWJsaWMgc2ltaWxhckl0ZW1zU2VjdGlvblRpdGxlOiBzdHJpbmc7XG5cbiAgcHVibGljIG1ldGFkYXRhU2VjdGlvblRpdGxlOiBzdHJpbmc7XG5cbiAgcHVibGljIGhhc01ldGFkYXRhOiBib29sZWFuO1xuXG4gIHB1YmxpYyBoYXNSZWxhdGVkRW50aXRpZXM6IGJvb2xlYW47XG5cbiAgcHVibGljIGhhc1NpbWlsYXJJdGVtczogYm9vbGVhbjtcblxuICBwdWJsaWMgaGFzRXh0ZW5kZWRUcmVlOiBib29sZWFuO1xuXG4gIHB1YmxpYyBoYXNEaWdpdGFsT2JqZWN0czogYm9vbGVhbjtcblxuICBwdWJsaWMgZGlnaXRhbE9iamVjdHM6IGFueTtcblxuICBwdWJsaWMgY3VycmVudERpZ2l0YWxPYmplY3Q6IGFueTtcblxuICBwdWJsaWMgY3VycmVudERpZ2l0YWxPYmplY3RJbmRleDogbnVtYmVyO1xuXG4gIHB1YmxpYyBpbWFnZVZpZXdlcklzdGFuY2U6IGFueTtcblxuICBwdWJsaWMgc2lkZWJhcklzU3RpY2t5ID0gZmFsc2U7XG5cbiAgcHVibGljIHRyZWVNYXhIZWlnaHQgPSAnMTAwJSc7XG5cbiAgcHVibGljIGNvbnRlbnRJc0xvYWRpbmcgPSBmYWxzZTtcblxuICBwdWJsaWMgY3VycmVudElkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgZW1wdHlMYWJlbDogc3RyaW5nO1xuXG4gIC8qKiBTd2l0Y2ggbG9hZGVkLWNvbnRlbnQgYW5kIGxvYWRlZC1lbXB0eSBzdGF0ZXMgKi9cbiAgcHVibGljIGhhc0NvbnRlbnQgPSB0cnVlO1xuXG4gIC8qKiBTdHJpbmcgdG8gcmVuZGVyIGluIHRoZSBsb2FkZWQtZW1wdHkgc3RhdGUgKi9cbiAgcHVibGljIGVtcHR5U3RhdGVTdHJpbmc6IHN0cmluZztcblxuICBwdWJsaWMgZXh0ZXJuYWxVcmxUZXh0OiBzdHJpbmc7XG5cbiAgcHVibGljIGhhc0NvbnRleHRNZW51OiAoKSA9PiBib29sZWFuO1xuXG4gIHB1YmxpYyBleHRlbmRlZFRyZWVQYXJhbXM6IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH0gPSB7fTtcblxuICBwdWJsaWMgbGFzdFJlc3BvbnNlO1xuXG4gIC8qKiBOYW1lIG9mIHF1ZXJ5IHRoYXQgc2hvdWxkIGJlIHVzZWQgKGNob3NlbiBpbiBjb25maWcpICovXG4gIHByaXZhdGUgZ2V0VHJlZVF1ZXJ5OiAnZ2V0VHJlZScgfCAnZ2V0VHJlZUxpdGUnID0gJ2dldFRyZWUnO1xuXG4gIHB1YmxpYyB0aXRsZU5hdmlnYXRpb246IHtcbiAgICBwcmV2OiB7IGhyZWY6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgfTtcbiAgICBuZXh0OiB7IGhyZWY6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgfTtcbiAgfSA9IG51bGw7XG5cbiAgcHVibGljIHNlY3Rpb25Db2xsYXBzZVN0YXRlID0ge1xuICAgIG1ldGFkYXRhOiBmYWxzZSxcbiAgICAnZXh0ZW5kZWQtdHJlZSc6IGZhbHNlLFxuICAgICdzaW1pbGFyLWl0ZW1zJzogZmFsc2UsXG4gICAgJ3JlbGF0ZWQtZW50aXRpZXMnOiBmYWxzZVxuICB9O1xuXG4gIHB1YmxpYyBkb2N1bWVudFR5cGU6IHtcbiAgICBpY29uOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgfSA9IG51bGw7XG5cbiAgb25Jbml0KHtcbiAgICBjb25maWd1cmF0aW9uLCBtYWluU3RhdGUsIHJvdXRlciwgb3B0aW9ucywgdGl0bGVTZXJ2aWNlLCBjb21tdW5pY2F0aW9uLFxuICB9KSB7XG4gICAgaWYgKGNvbmZpZ3VyYXRpb24pIHtcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247XG4gICAgICB0aGlzLmxheW91dENvbmZpZyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3NjaGVkYS1sYXlvdXQnKTtcbiAgICB9XG4gICAgdGhpcy5tYWluU3RhdGUgPSBtYWluU3RhdGU7XG4gICAgdGhpcy5yb3V0ZXIgPSByb3V0ZXI7XG4gICAgdGhpcy50aXRsZVNlcnZpY2UgPSB0aXRsZVNlcnZpY2U7XG4gICAgdGhpcy5jb21tdW5pY2F0aW9uID0gY29tbXVuaWNhdGlvbjtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIGlmICghdGhpcy5zaWRlYmFyQ29sbGFwc2VkKSB7XG4gICAgICB0aGlzLnNpZGViYXJDb2xsYXBzZWQgPSB0aGlzLmxheW91dENvbmZpZy50cmVlLmNvbGxhcHNlZEJ5RGVmYXVsdCA/PyBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5yZWxhdGVkRW50aXRpZXNIZWFkZXIgPSB0aGlzLmxheW91dENvbmZpZ1sncmVsYXRlZC1lbnRpdGllcyddLnRpdGxlO1xuICAgIHRoaXMuc2ltaWxhckl0ZW1zU2VjdGlvblRpdGxlID0gdGhpcy5sYXlvdXRDb25maWdbJ3JlbGF0ZWQtaXRlbXMnXS50aXRsZTtcbiAgICB0aGlzLmV4dGVybmFsVXJsVGV4dCA9IHRoaXMubGF5b3V0Q29uZmlnWydleHRlcm5hbC11cmwtdGV4dCddO1xuICAgIHRoaXMubWV0YWRhdGFTZWN0aW9uVGl0bGUgPSB0aGlzLmdldE1ldGFkYXRhU2VjdGlvblRpdGxlKCk7XG4gICAgdGhpcy5oYXNTaW1pbGFySXRlbXMgPSBmYWxzZTtcbiAgICB0aGlzLm9uZSgnYXctY2hhcnQtdGlwcHknKS51cGRhdGVPcHRpb25zKHtcbiAgICAgIGJhc2VQYXRoOiB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdwYXRocycpLmVudGl0YUJhc2VQYXRoLFxuICAgIH0pO1xuICAgIHRoaXMuZW1wdHlMYWJlbCA9IHRoaXMubGF5b3V0Q29uZmlnWydlbXB0eS1sYWJlbCddO1xuICAgIHRoaXMuZW1wdHlTdGF0ZVN0cmluZyA9IHRoaXMubGF5b3V0Q29uZmlnWydlbXB0eS1odG1sJ107XG4gICAgdGhpcy5vbmUoJ2F3LXRyZWUnKS51cGRhdGVPcHRpb25zKHsgY29uZmlnOiB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdjb25maWcta2V5cycpIH0pO1xuXG4gICAgLy8gc3dpdGNoIHRoZSB0cmVlIHF1ZXJ5IHRvIHRoZSBzbGltIHZlcnNpb25cbiAgICBpZiAodGhpcy5sYXlvdXRDb25maWc/LnRyZWU/LmxpdGUpIHtcbiAgICAgIHRoaXMuZ2V0VHJlZVF1ZXJ5ID0gJ2dldFRyZWVMaXRlJztcbiAgICB9XG5cbiAgICB0aGlzLm1haW5TdGF0ZS51cGRhdGUoJ2hlYWRUaXRsZScsICdBcmlhbm5hNFZpZXcgLSBQYXRyaW1vbmlvJyk7XG4gICAgdGhpcy5tYWluU3RhdGUudXBkYXRlKCdwYWdlVGl0bGUnLCAnQXJpYW5uYTRWaWV3IC0gUGF0cmltb25pbycpO1xuICAgIHRoaXMubWFpblN0YXRlLnVwZGF0ZUN1c3RvbSgnY3VycmVudE5hdicsICdwYXRyaW1vbmlvJyk7XG5cbiAgICAvLyBpbWFnZSB2aWV3ZXIgY29udGV4dC1tZW51IGNoZWNrXG4gICAgY29uc3QgaW1hZ2VWaWV3ZXJDb25maWcgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdzY2hlZGEtbGF5b3V0JylbJ2ltYWdlLXZpZXdlciddIHx8IHt9O1xuICAgIHRoaXMuaGFzQ29udGV4dE1lbnUgPSAoKSA9PiAhIWltYWdlVmlld2VyQ29uZmlnWydjb250ZXh0LW1lbnUnXTtcblxuICAgIC8vIHBkZiB2aWV3ZXIgb3B0aW9uc1xuICAgIHRoaXMub25lKCdhdy1zY2hlZGEtcGRmJykudXBkYXRlT3B0aW9ucyh0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdzY2hlZGEtbGF5b3V0JylbJ3BkZi12aWV3ZXInXSB8fCB7fSk7XG5cbiAgICAvLyBjaGVjayBzZWN0aW9uIGNvbGxhcHNlIHN0YXRlXG4gICAgT2JqZWN0LmtleXModGhpcy5zZWN0aW9uQ29sbGFwc2VTdGF0ZSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBjb25zdCBzdG9yYWdlS2V5ID0gYCR7TE9DQUxfU1RPUkFHRV9QUkVGSVh9LiR7a2V5fWA7XG4gICAgICBjb25zdCBzdG9yYWdlVmFsdWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShzdG9yYWdlS2V5KTtcbiAgICAgIHRoaXMuc2VjdGlvbkNvbGxhcHNlU3RhdGVba2V5XSA9IHN0b3JhZ2VWYWx1ZSA/IEpTT04ucGFyc2Uoc3RvcmFnZVZhbHVlKSA6IGZhbHNlO1xuICAgIH0pO1xuXG4gICAgLy8gc2lkZWJhciBzdGlja3kgY29udHJvbFxuICAgIHRoaXMuX3NpZGViYXJTdGlja3lDb250cm9sKCk7XG4gIH1cblxuICBvbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgfVxuXG4gIGdldE1ldGFkYXRhU2VjdGlvblRpdGxlKCkge1xuICAgIGNvbnN0IGxheW91dENvbmZpZyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3NjaGVkYS1sYXlvdXQnKTtcbiAgICBjb25zdCBtZXRhZGF0YUNvbmZpZyA9IGxheW91dENvbmZpZy5tZXRhZGF0YSB8fCB7fTtcbiAgICByZXR1cm4gbWV0YWRhdGFDb25maWcudGl0bGUgfHwgbnVsbDtcbiAgfVxuXG4gIGdldE5hdmlnYXRpb24oKSB7XG4gICAgaWYgKEF3U2NoZWRhTGF5b3V0RFMudHJlZSkge1xuICAgICAgcmV0dXJuIG9mKEF3U2NoZWRhTGF5b3V0RFMudHJlZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbW11bmljYXRpb24ucmVxdWVzdCQodGhpcy5nZXRUcmVlUXVlcnksIHtcbiAgICAgIG9uRXJyb3I6IChlcnJvcikgPT4gY29uc29sZS5lcnJvcihlcnJvciksXG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgb25seUFsOiAhIXRoaXMubGF5b3V0Q29uZmlnWydleHRlbmRlZC10cmVlJ11cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBzZXRUcmVlKHRyZWUpIHtcbiAgICBBd1NjaGVkYUxheW91dERTLnRyZWUgPSB0cmVlO1xuICB9XG5cbiAgZ2V0VHJlZSA9ICgpID0+IEF3U2NoZWRhTGF5b3V0RFMudHJlZTtcblxuICB1cGRhdGVOYXZpZ2F0aW9uKHRleHQpIHtcbiAgICB0aGlzLm9uZSgnYXctc2lkZWJhci1oZWFkZXInKS51cGRhdGUoeyB0ZXh0LCBpc0V4cGFuZGVkOiAhdGhpcy5zaWRlYmFyQ29sbGFwc2VkIH0pO1xuICB9XG5cbiAgbG9hZEl0ZW0oaWQpIHtcbiAgICBjb25zdCBtYXhTaW1pbGFySXRlbXMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdzY2hlZGEtbGF5b3V0JylbJ3JlbGF0ZWQtaXRlbXMnXVsnbWF4LXJlbGF0ZWQtaXRlbXMnXTtcbiAgICByZXR1cm4gdGhpcy5jb21tdW5pY2F0aW9uLnJlcXVlc3QkKCdnZXROb2RlJywge1xuICAgICAgb25FcnJvcjogKGVycm9yKSA9PiBjb25zb2xlLmVycm9yKGVycm9yKSxcbiAgICAgIHBhcmFtczogeyBpZCwgbWF4U2ltaWxhckl0ZW1zIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIGNvbnRlbnQgb2YgdGhlIHNlbGVjdGVkIHRyZWUgaXRlbSBpbiB0aGUgcmlnaHQgcG9ydGlvbiBvZiB0aGUgdmlldy5cbiAgICogQHBhcmFtIHJlc3BvbnNlIGh0dHAgcmVzcG9uc2UgZm9yIHRoZSB0cmVlIGl0ZW1cbiAgICovXG4gIGxvYWRDb250ZW50KHJlc3BvbnNlKSB7XG4gICAgdGhpcy5sYXN0UmVzcG9uc2UgPSByZXNwb25zZTtcbiAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgIC8vIHJlc2V0XG4gICAgICB0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0ID0gbnVsbDtcbiAgICAgIHRoaXMuY3VycmVudERpZ2l0YWxPYmplY3RJbmRleCA9IG51bGw7XG5cbiAgICAgIGNvbnN0IG1ldGFkYXRhRmllbGRzID0gdGhpcy5nZXRGaWVsZHMocmVzcG9uc2UpO1xuICAgICAgdGhpcy5oYXNNZXRhZGF0YSA9ICEhKEFycmF5LmlzQXJyYXkobWV0YWRhdGFGaWVsZHMpICYmIG1ldGFkYXRhRmllbGRzLmxlbmd0aCk7XG4gICAgICB0aGlzLmhhc1NpbWlsYXJJdGVtcyA9IChcbiAgICAgICAgIXRoaXMubGF5b3V0Q29uZmlnWydleHRlbmRlZC10cmVlJ11cbiAgICAgICAgJiYgQXJyYXkuaXNBcnJheShyZXNwb25zZS5yZWxhdGVkSXRlbXMpXG4gICAgICAgICYmIHJlc3BvbnNlLnJlbGF0ZWRJdGVtcy5sZW5ndGhcbiAgICAgICk7XG4gICAgICB0aGlzLmhhc0JyZWFkY3J1bWIgPSBBcnJheS5pc0FycmF5KHJlc3BvbnNlLmJyZWFkY3J1bWJzKSAmJiByZXNwb25zZS5icmVhZGNydW1icy5sZW5ndGg7XG4gICAgICB0aGlzLmhhc0RpZ2l0YWxPYmplY3RzID0gKFxuICAgICAgICBBcnJheS5pc0FycmF5KHJlc3BvbnNlLmRpZ2l0YWxPYmplY3RzKVxuICAgICAgICAmJiByZXNwb25zZS5kaWdpdGFsT2JqZWN0cy5sZW5ndGhcbiAgICAgICk7XG4gICAgICB0aGlzLmhhc1JlbGF0ZWRFbnRpdGllcyA9IChcbiAgICAgICAgQXJyYXkuaXNBcnJheShyZXNwb25zZS5yZWxhdGVkRW50aXRpZXMpXG4gICAgICAgICYmIHJlc3BvbnNlLnJlbGF0ZWRFbnRpdGllcy5sZW5ndGhcbiAgICAgICk7XG4gICAgICB0aGlzLmhhc0NvbnRlbnQgPSAhIShcbiAgICAgICAgdGhpcy5oYXNNZXRhZGF0YVxuICAgICAgICB8fCB0aGlzLmhhc1NpbWlsYXJJdGVtc1xuICAgICAgICB8fCB0aGlzLmhhc1JlbGF0ZWRFbnRpdGllc1xuICAgICAgICB8fCB0aGlzLmhhc0RpZ2l0YWxPYmplY3RzXG4gICAgICApO1xuXG4gICAgICB0aGlzLmNvbnRlbnRQYXJ0cyA9IFtdO1xuICAgICAgY29uc3QgY29udGVudCA9IHsgY29udGVudDogbnVsbCB9O1xuXG4gICAgICBpZiAocmVzcG9uc2UudGV4dCkge1xuICAgICAgICBjb250ZW50LmNvbnRlbnQgPSByZXNwb25zZS50ZXh0O1xuICAgICAgfVxuICAgICAgdGhpcy5jb250ZW50UGFydHMucHVzaChjb250ZW50KTtcblxuICAgICAgLy8gZGlnaXRhbCBvYmplY3RzXG4gICAgICBpZiAodGhpcy5oYXNEaWdpdGFsT2JqZWN0cykge1xuICAgICAgICByZXNwb25zZS5kaWdpdGFsT2JqZWN0cyA9IHRoaXMubm9ybWFsaXplRGlnaXRhbE9iamVjdHMocmVzcG9uc2UuZGlnaXRhbE9iamVjdHMpO1xuICAgICAgICAvLyB0aGlzLm9uZSgnYXctc2NoZWRhLWRpZ2l0YWwtb2JqZWN0cycpLnVwZGF0ZShyZXNwb25zZS5kaWdpdGFsT2JqZWN0cyk7XG4gICAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtZHJvcGRvd24nKS51cGRhdGUocmVzcG9uc2UpO1xuICAgICAgICB0aGlzLmRpZ2l0YWxPYmplY3RzID0gcmVzcG9uc2UuZGlnaXRhbE9iamVjdHM7XG4gICAgICAgIHRoaXMuY2hhbmdlRGlnaXRhbE9iamVjdCgwKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdGl0bGVPYmogPSB7XG4gICAgICAgIGljb246IHJlc3BvbnNlLmljb24sXG4gICAgICAgIHRpdGxlOiB7XG4gICAgICAgICAgbWFpbjoge1xuICAgICAgICAgICAgdGV4dDogcmVzcG9uc2UudGl0bGUgfHwgcmVzcG9uc2UubGFiZWwsXG4gICAgICAgICAgICBjbGFzc2VzOiAnYm9sZCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgdG9vbHM6IHJlc3BvbnNlLnN1YlRpdGxlLFxuICAgICAgICBhY3Rpb25zOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtaW5uZXItdGl0bGUnKS51cGRhdGUodGl0bGVPYmopO1xuICAgICAgdGhpcy5vbmUoJ2F3LXNjaGVkYS1tZXRhZGF0YScpLnVwZGF0ZShtZXRhZGF0YUZpZWxkcyk7XG5cbiAgICAgIC8vIEJyZWFkY3J1bWIgc2VjdGlvblxuICAgICAgY29uc3QgYnJlYWRjcnVtYnMgPSB7XG4gICAgICAgIGl0ZW1zOiBbXSxcbiAgICAgIH07XG5cbiAgICAgIGlmIChyZXNwb25zZS5icmVhZGNydW1icykge1xuICAgICAgICByZXNwb25zZS5icmVhZGNydW1icy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgYnJlYWRjcnVtYnMuaXRlbXMucHVzaCh7XG4gICAgICAgICAgICBsYWJlbDogZWxlbWVudC5sYWJlbCxcbiAgICAgICAgICAgIGFuY2hvcjoge1xuICAgICAgICAgICAgICBocmVmOiBbXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uLmdldCgncGF0aHMnKS5zY2hlZGFCYXNlUGF0aCxcbiAgICAgICAgICAgICAgICBgJHtlbGVtZW50Lmxpbmt9L2AsXG4gICAgICAgICAgICAgICAgaGVscGVycy5zbHVnaWZ5KGVsZW1lbnQubGFiZWwpLFxuICAgICAgICAgICAgICBdLmpvaW4oJycpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtYnJlYWRjcnVtYnMnKS51cGRhdGUoYnJlYWRjcnVtYnMpO1xuICAgICAgfVxuXG4gICAgICAvLyB0aXRsZSBwcmV2IC8gbmV4dCBuYXZpZ2F0aW9uXG4gICAgICB0aGlzLmxvYWRUaXRsZU5hdmlnYXRpb24oKTtcblxuICAgICAgLy8gZG9jdW1lbnQgdGl0bGUgdHlwZSAoaWNvbiwgbGFiZWwpXG4gICAgICB0aGlzLmxvYWREb2N1bWVudFR5cGUoKTtcblxuICAgICAgLy8gdXBkYXRlIGhlYWQgdGl0bGVcbiAgICAgIHRoaXMubWFpblN0YXRlLnVwZGF0ZSgnaGVhZFRpdGxlJywgYEFyaWFubmE0VmlldyAtIFBhdHJpbW9uaW8gLSAke3Jlc3BvbnNlLnRpdGxlIHx8IHJlc3BvbnNlLmxhYmVsfWApO1xuICAgIH1cblxuICAgIGlmIChyZXNwb25zZS5yZWxhdGVkSXRlbXMpIHtcbiAgICAgIHRoaXMub25lKCdhdy1saW5rZWQtb2JqZWN0cycpLnVwZGF0ZU9wdGlvbnMoeyBjb250ZXh0OiAnc2NoZWRhJywgY29uZmlnOiB0aGlzLmNvbmZpZ3VyYXRpb24gfSk7XG4gICAgICB0aGlzLm9uZSgnYXctbGlua2VkLW9iamVjdHMnKS51cGRhdGUocmVzcG9uc2UpO1xuICAgIH1cbiAgICBpZiAocmVzcG9uc2UucmVsYXRlZEVudGl0aWVzKSB7XG4gICAgICByZXNwb25zZS5yZWxhdGVkRW50aXRpZXMuZm9yRWFjaCgoZWwpID0+IHtcbiAgICAgICAgY29uc3QgbGFiZWwgPSByZXNwb25zZS50aXRsZSB8fCByZXNwb25zZS5sYWJlbDtcbiAgICAgICAgZWwucmVsYXRpb25OYW1lID0gbGFiZWwubGVuZ3RoID4gMzBcbiAgICAgICAgICA/IGAke2xhYmVsLnN1YnN0cigwLCAzMCl9Li4uIGBcbiAgICAgICAgICA6IGxhYmVsO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm9uZSgnYXctcmVsYXRlZC1lbnRpdGllcycpLnVwZGF0ZU9wdGlvbnMoe1xuICAgICAgICBjb250ZXh0OiAnc2NoZWRhJywgY29uZmlnOiB0aGlzLmNvbmZpZ3VyYXRpb24sIGxpc3Q6ICdyZWxhdGVkRW50aXRpZXMnLCB0aXRsZTogcmVzcG9uc2UudGl0bGVcbiAgICAgIH0pO1xuICAgICAgdGhpcy5vbmUoJ2F3LXJlbGF0ZWQtZW50aXRpZXMnKS51cGRhdGUocmVzcG9uc2UucmVsYXRlZEVudGl0aWVzKTtcbiAgICB9XG5cbiAgICAvLyBjb250cm9sIHN0aWNreVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zdGlja3lDb250cm9sVHJpZ2dlciQubmV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZEV4dGVuZGVkVHJlZSgpIHtcbiAgICBjb25zdCBwYXJlbnRSZXNwb25zZSA9IHRoaXMubGFzdFJlc3BvbnNlO1xuXG4gICAgaWYgKHRoaXMubGF5b3V0Q29uZmlnWydleHRlbmRlZC10cmVlJ10pIHtcbiAgICAgIGNvbnN0IGNvbmZpZ0tleXMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdjb25maWcta2V5cycpO1xuICAgICAgY29uc3Qgd2lkZ2V0T3B0aW9ucyA9IHRoaXMubGF5b3V0Q29uZmlnWydleHRlbmRlZC10cmVlJ107XG4gICAgICBjb25zdCBwYXJhbXM6IGFueSA9IHtcbiAgICAgICAgaWQ6IHBhcmVudFJlc3BvbnNlLmlkLFxuICAgICAgICBwYWdlOiAxLFxuICAgICAgICBsaW1pdDogMTAsXG4gICAgICAgIHF1ZXJ5OiBudWxsLFxuICAgICAgICAuLi50aGlzLmV4dGVuZGVkVHJlZVBhcmFtcyxcbiAgICAgIH07XG4gICAgICBjb25zdCB3aWRnZXRQYXJhbXMgPSBjbG9uZShwYXJhbXMpO1xuXG4gICAgICAvLyBub3JtYWxpemUgcGFyYW1zXG4gICAgICBwYXJhbXMub2Zmc2V0ID0gKHBhcmFtcy5wYWdlIC0gMSkgKiBwYXJhbXMubGltaXQ7XG4gICAgICBkZWxldGUgcGFyYW1zLnBhZ2U7XG5cbiAgICAgIGNvbnN0IGJhc2VQYXRoID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgncGF0aHMnKS5zY2hlZGFCYXNlUGF0aDtcbiAgICAgIGNvbnN0IHJlcXVlc3QkID0gdGhpcy5jb21tdW5pY2F0aW9uLnJlcXVlc3QkKCdnZXROb2RlQ2hpbGRyZW4nLCB7XG4gICAgICAgIHBhcmFtcyxcbiAgICAgICAgb25FcnJvcjogKGVycm9yKSA9PiBjb25zb2xlLmVycm9yKGVycm9yKSxcbiAgICAgIH0pO1xuICAgICAgcmVxdWVzdCQuc3Vic2NyaWJlKChub2Rlc1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuaGFzRXh0ZW5kZWRUcmVlID0gKFxuICAgICAgICAgIHBhcmFtcy5xdWVyeVxuICAgICAgICAgIHx8IHdpZGdldFBhcmFtcy5wYWdlID4gMVxuICAgICAgICAgIHx8ICEhbm9kZXNSZXNwb25zZT8uaXRlbXM/Lmxlbmd0aFxuICAgICAgICApO1xuICAgICAgICBpZiAodGhpcy5oYXNFeHRlbmRlZFRyZWUpIHtcbiAgICAgICAgICB0aGlzLm9uZSgnYXctZXh0ZW5kZWQtdHJlZScpLnVwZGF0ZU9wdGlvbnMoe1xuICAgICAgICAgICAgYmFzZVBhdGgsXG4gICAgICAgICAgICBjb25maWdLZXlzLFxuICAgICAgICAgICAgcGFyYW1zOiB3aWRnZXRQYXJhbXMsXG4gICAgICAgICAgICAuLi53aWRnZXRPcHRpb25zLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMub25lKCdhdy1leHRlbmRlZC10cmVlJykudXBkYXRlKHtcbiAgICAgICAgICAgIHBhcmVudDogcGFyZW50UmVzcG9uc2UsXG4gICAgICAgICAgICBub2Rlczogbm9kZXNSZXNwb25zZVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgLy8gZml4IHF1ZXJ5IGlucHV0IHVwZGF0ZVxuICAgICAgICAgIGlmIChwYXJhbXMucXVlcnkpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBxdWVyeUlucHV0OiBIVE1MSW5wdXRFbGVtZW50ID0gZG9jdW1lbnRcbiAgICAgICAgICAgICAgICAucXVlcnlTZWxlY3RvcignLmF3LWV4dGVuZGVkLXRyZWVfX2hlYWRlciAubjctaW5uZXItdGl0bGVfX3NlYXJjaC1iYXInKTtcbiAgICAgICAgICAgICAgcXVlcnlJbnB1dC52YWx1ZSA9IHBhcmFtcy5xdWVyeSB8fCAnJztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFzRXh0ZW5kZWRUcmVlID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgbG9hZFRpdGxlTmF2aWdhdGlvbigpIHtcbiAgICAvLyByZXNldFxuICAgIHRoaXMudGl0bGVOYXZpZ2F0aW9uID0gbnVsbDtcblxuICAgIGNvbnN0IGhhc1RpdGxlTmF2ID0gKFxuICAgICAgISF0aGlzLmxheW91dENvbmZpZ1sndGl0bGUtbmF2J10/LmVuYWJsZWRcbiAgICAgICYmIHRoaXMubGFzdFJlc3BvbnNlLmRvY3VtZW50X3R5cGUgPT09ICdvZ2dldHRvLWN1bHR1cmFsZSdcbiAgICApO1xuICAgIGlmICghaGFzVGl0bGVOYXYpIHJldHVybjtcblxuICAgIHRoaXMudGl0bGVOYXZpZ2F0aW9uID0geyBwcmV2OiBudWxsLCBuZXh0OiBudWxsIH07XG4gICAgY29uc3QgYmFzZVBhdGggPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdwYXRocycpLnNjaGVkYUJhc2VQYXRoO1xuICAgIFsncHJldicsICduZXh0J10uZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5sYXN0UmVzcG9uc2Vba2V5XTtcbiAgICAgIHRoaXMudGl0bGVOYXZpZ2F0aW9uW2tleV0gPSBpdGVtXG4gICAgICAgID8ge1xuICAgICAgICAgIGhyZWY6IGAke2Jhc2VQYXRofS8ke2l0ZW0uaWR9LyR7aGVscGVycy5zbHVnaWZ5KGl0ZW0ubGFiZWwpfWAsXG4gICAgICAgICAgbGFiZWw6IGl0ZW0ubGFiZWwsXG4gICAgICAgIH0gOiBudWxsO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZERvY3VtZW50VHlwZSgpIHtcbiAgICBjb25zdCBjb25maWdLZXlzID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgnY29uZmlnLWtleXMnKTtcbiAgICBjb25zdCB7IGRvY3VtZW50X3R5cGU6IHR5cGUgfSA9IHRoaXMubGFzdFJlc3BvbnNlO1xuICAgIGNvbnN0IGljb24gPSBub2RlSGVscGVyLmdldE5vZGVJY29uKGNvbmZpZ0tleXMsIHRoaXMubGFzdFJlc3BvbnNlKTtcbiAgICBpZiAoY29uZmlnS2V5c1t0eXBlXSkge1xuICAgICAgdGhpcy5kb2N1bWVudFR5cGUgPSB7XG4gICAgICAgIGljb24sXG4gICAgICAgIGxhYmVsOiBjb25maWdLZXlzW3R5cGVdWydzaW5ndWxhci1sYWJlbCddXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRvY3VtZW50VHlwZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSBiZXR3ZWVuIHRoZSB0cmVlJ3MgY29sbGFwc2VkIG9yIGV4cGFuZGVkIHN0YXRlLlxuICAgKi9cbiAgY29sbGFwc2VTaWRlYmFyKCkge1xuICAgIC8vIG92ZXJ3cml0ZSB0aGUgY29uZmlndXJhdGlvbiB0byBwcmV2ZW50IHVud2FudGVkIGNoYW5nZXMgdG8gdGhlIHRyZWUgc3RhdGUuXG4gICAgdGhpcy5sYXlvdXRDb25maWcudHJlZS5jb2xsYXBzZWRCeURlZmF1bHQgPSAhdGhpcy5sYXlvdXRDb25maWcudHJlZS5jb2xsYXBzZWRCeURlZmF1bHQ7XG4gICAgdGhpcy5zaWRlYmFyQ29sbGFwc2VkID0gIXRoaXMuc2lkZWJhckNvbGxhcHNlZDtcbiAgICB0aGlzLmdldFdpZGdldERhdGFTb3VyY2UoJ2F3LXNpZGViYXItaGVhZGVyJykudG9nZ2xlU2lkZWJhcigpO1xuICB9XG5cbiAgb25TZWN0aW9uQ29sbGFwc2UoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc2VjdGlvbkNvbGxhcHNlU3RhdGVbaWRdID0gIXRoaXMuc2VjdGlvbkNvbGxhcHNlU3RhdGVbaWRdO1xuXG4gICAgLy8gdXBkYXRlIHN0b3JhZ2VcbiAgICBjb25zdCBzdG9yYWdlS2V5ID0gYCR7TE9DQUxfU1RPUkFHRV9QUkVGSVh9LiR7aWR9YDtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShzdG9yYWdlS2V5LCB0aGlzLnNlY3Rpb25Db2xsYXBzZVN0YXRlW2lkXSk7XG4gIH1cblxuICBwcml2YXRlIF9zaWRlYmFyU3RpY2t5Q29udHJvbCgpIHtcbiAgICAvLyBubyBzdGlja3kgZm9yIEludGVybmV0IEV4cGxvcmVyXG4gICAgaWYgKGhlbHBlcnMuYnJvd3NlcklzSUUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzb3VyY2UkID0gZnJvbUV2ZW50KHdpbmRvdywgJ3Njcm9sbCcpO1xuXG4gICAgbWVyZ2Uoc291cmNlJCwgdGhpcy5zdGlja3lDb250cm9sVHJpZ2dlciQpLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCB3aW5kb3dUb3AgPSB3aW5kb3cucGFnZVlPZmZzZXQ7XG4gICAgICBjb25zdCB3aW5kb3dCb3R0b20gPSB3aW5kb3cuc2Nyb2xsWSArIHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdzdGlja3ktcGFyZW50JylbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCB3cmFwcGVyVG9wID0gd3JhcHBlci5vZmZzZXRUb3A7XG4gICAgICBjb25zdCB3cmFwcGVyQm90dG9tID0gd3JhcHBlclRvcCArIHdyYXBwZXIuY2xpZW50SGVpZ2h0O1xuXG4gICAgICB0aGlzLnNpZGViYXJJc1N0aWNreSA9IHdyYXBwZXJUb3AgPD0gd2luZG93VG9wO1xuXG4gICAgICAvLyB0cmVlIGhlaWdodCBjb250cm9sXG4gICAgICBpZiAodGhpcy5zaWRlYmFySXNTdGlja3kgJiYgd2luZG93Qm90dG9tIDwgd3JhcHBlckJvdHRvbSkge1xuICAgICAgICB0aGlzLnRyZWVNYXhIZWlnaHQgPSBgJHt3aW5kb3dCb3R0b20gLSB3aW5kb3dUb3AgLSA1MH1weGA7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc2lkZWJhcklzU3RpY2t5ICYmIHdpbmRvd0JvdHRvbSA+PSB3cmFwcGVyQm90dG9tKSB7XG4gICAgICAgIHRoaXMudHJlZU1heEhlaWdodCA9IGAke3dyYXBwZXJCb3R0b20gLSB3aW5kb3dUb3AgLSA1MH1weGA7XG4gICAgICB9IGVsc2UgaWYgKHdpbmRvd0JvdHRvbSA8IHdyYXBwZXJCb3R0b20pIHtcbiAgICAgICAgdGhpcy50cmVlTWF4SGVpZ2h0ID0gYCR7d2luZG93Qm90dG9tIC0gd3JhcHBlclRvcCAtIDUwfXB4YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudHJlZU1heEhlaWdodCA9IGAke3dyYXBwZXJCb3R0b20gLSB3cmFwcGVyVG9wIC0gNTB9cHhgO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEZpZWxkcyhyZXNwb25zZSkge1xuICAgIGNvbnN0IHtcbiAgICAgIGZpZWxkcyxcbiAgICAgIGRvY3VtZW50X3R5cGU6IGR0LFxuICAgICAgZG9jdW1lbnRfY2xhc3NpZmljYXRpb246IGRjXG4gICAgfSA9IHJlc3BvbnNlO1xuICAgIGNvbnN0IHBhdGhzID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgncGF0aHMnKTtcbiAgICBjb25zdCBsYWJlbHMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdsYWJlbHMnKTtcbiAgICBjb25zdCBkY1NlZ21lbnRzID0gdHlwZW9mIGRjID09PSAnc3RyaW5nJyA/IGRjLnNwbGl0KCcuJykgOiBbXTtcbiAgICBjb25zdCBkY0xhc3RTZWdtZW50ID0gZGNTZWdtZW50c1tkY1NlZ21lbnRzLmxlbmd0aCAtIDFdO1xuICAgIGxldCBtZXRhZGF0YVRvU2hvdyA9IF9nZXQodGhpcy5jb25maWd1cmF0aW9uLmdldCgnc2NoZWRhLWxheW91dCcpLCAnbWV0YWRhdGEtdG8tc2hvdycsIHt9KTtcbiAgICBtZXRhZGF0YVRvU2hvdyA9IG1ldGFkYXRhVG9TaG93W2RjTGFzdFNlZ21lbnRdIHx8IG1ldGFkYXRhVG9TaG93W2R0XSB8fCBbXTtcblxuICAgIHJldHVybiBtZXRhZGF0YUhlbHBlci5ub3JtYWxpemUoe1xuICAgICAgZmllbGRzLFxuICAgICAgcGF0aHMsXG4gICAgICBsYWJlbHMsXG4gICAgICBtZXRhZGF0YVRvU2hvdyxcbiAgICAgIHR5cGU6IGR0XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlRGlnaXRhbE9iamVjdChwYXlsb2FkKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudERpZ2l0YWxPYmplY3RJbmRleCAhPT0gcGF5bG9hZCkge1xuICAgICAgLy8gbGluayBjaGVja1xuICAgICAgaWYgKHRoaXMuZGlnaXRhbE9iamVjdHNbcGF5bG9hZF0udHlwZSA9PT0gJ2V4dGVybmFsJyAmJiB0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0KSB7XG4gICAgICAgIHdpbmRvdy5vcGVuKHRoaXMuZGlnaXRhbE9iamVjdHNbcGF5bG9hZF0udXJsLCAnX2JsYW5rJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBhbHdheXMgcmVzZXQgaW1hZ2Ugdmlld2VyXG4gICAgICAgIGNvbnN0IHNjaGVkYUltYWdlRFMgPSB0aGlzLmdldFdpZGdldERhdGFTb3VyY2UoJ2F3LXNjaGVkYS1pbWFnZScpO1xuICAgICAgICBzY2hlZGFJbWFnZURTLnJlc2V0KCk7XG5cbiAgICAgICAgdGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdEluZGV4ID0gcGF5bG9hZDtcbiAgICAgICAgdGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdCA9IHRoaXMuZGlnaXRhbE9iamVjdHNbcGF5bG9hZF07XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0LnR5cGUuaW5jbHVkZXMoJ2ltYWdlcycpKSB7XG4gICAgICAgICAgaWYgKHNjaGVkYUltYWdlRFMuaGFzSW5zdGFuY2UoKSkge1xuICAgICAgICAgICAgc2NoZWRhSW1hZ2VEUy51cGRhdGVJbWFnZXModGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtaW1hZ2UnKS51cGRhdGUodGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gaW1hZ2Ugdmlld2VyIG5hdmlnYXRvclxuICAgICAgICAgIGNvbnN0IG5hdmlnYXRvckNvbmZpZyA9IHRoaXMubGF5b3V0Q29uZmlnWydpbWFnZS12aWV3ZXItbmF2J107XG4gICAgICAgICAgaWYgKG5hdmlnYXRvckNvbmZpZz8uZW5hYmxlZCkge1xuICAgICAgICAgICAgc2NoZWRhSW1hZ2VEUy5pbnN0YW5jZUxvYWRlZCQucGlwZShcbiAgICAgICAgICAgICAgZmlyc3QoKVxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoKHZpZXdlcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLm9uZSgnYXctc2NoZWRhLWltYWdlLW5hdmlnYXRvcicpLnVwZGF0ZU9wdGlvbnMobmF2aWdhdG9yQ29uZmlnKTtcbiAgICAgICAgICAgICAgdGhpcy5vbmUoJ2F3LXNjaGVkYS1pbWFnZS1uYXZpZ2F0b3InKS51cGRhdGUodmlld2VyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0LnR5cGUgPT09ICdwZGYnKSB7XG4gICAgICAgICAgdGhpcy5vbmUoJ2F3LXNjaGVkYS1wZGYnKS51cGRhdGUodGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZURpZ2l0YWxPYmplY3RzKGRpZ2l0YWxPYmplY3RzKSB7XG4gICAgcmV0dXJuIGRpZ2l0YWxPYmplY3RzLm1hcCgoJGRvKSA9PiB7XG4gICAgICBpZiAoJGRvLnR5cGUuaW5jbHVkZXMoJ2ltYWdlcycpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaWQ6ICdzY2hlZGEtbGF5b3V0LXZpZXdlcicsXG4gICAgICAgICAgdHlwZTogJGRvLnR5cGUsXG4gICAgICAgICAgbGFiZWw6ICRkby5sYWJlbCxcbiAgICAgICAgICBoYXNOYXZpZ2F0aW9uJDogbmV3IFN1YmplY3QoKSxcbiAgICAgICAgICBpdGVtczogJGRvLml0ZW1zLm1hcCgoeyB1cmwsIGlpaWZJbWFnZXMgfSkgPT4gKHtcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgIGlpaWZJbWFnZXMsXG4gICAgICAgICAgICB0eXBlOiAkZG8udHlwZSxcbiAgICAgICAgICB9KSlcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAkZG87XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|