@igo2/integration 1.13.0-alpha.0 → 1.13.0-alpha.1
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/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.mjs +3 -3
- package/esm2020/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.mjs +3 -3
- package/fesm2015/igo2-integration.mjs +4 -4
- package/fesm2015/igo2-integration.mjs.map +1 -1
- package/fesm2020/igo2-integration.mjs +4 -4
- package/fesm2020/igo2-integration.mjs.map +1 -1
- package/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.d.ts +3 -3
- package/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.d.ts +3 -3
- package/package.json +5 -5
package/esm2020/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.mjs
CHANGED
|
@@ -397,7 +397,7 @@ export class AdvancedCoordinatesComponent {
|
|
|
397
397
|
});
|
|
398
398
|
}
|
|
399
399
|
}
|
|
400
|
-
AdvancedCoordinatesComponent.ɵfac = function AdvancedCoordinatesComponent_Factory(t) { return new (t || AdvancedCoordinatesComponent)(i0.ɵɵdirectiveInject(i1.MapState), i0.ɵɵdirectiveInject(i2.LanguageService), i0.ɵɵdirectiveInject(i2.MessageService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.StorageService), i0.ɵɵdirectiveInject(i2.ConfigService), i0.ɵɵdirectiveInject(i3.
|
|
400
|
+
AdvancedCoordinatesComponent.ɵfac = function AdvancedCoordinatesComponent_Factory(t) { return new (t || AdvancedCoordinatesComponent)(i0.ɵɵdirectiveInject(i1.MapState), i0.ɵɵdirectiveInject(i2.LanguageService), i0.ɵɵdirectiveInject(i2.MessageService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.StorageService), i0.ɵɵdirectiveInject(i2.ConfigService), i0.ɵɵdirectiveInject(i3.FormBuilder)); };
|
|
401
401
|
AdvancedCoordinatesComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AdvancedCoordinatesComponent, selectors: [["igo-advanced-coordinates"]], inputs: { projectionsLimitations: "projectionsLimitations" }, decls: 32, vars: 37, consts: [["class", "coordinates", 4, "ngIf", "ngIfElse"], ["elseBlock", ""], ["class", "coordinates2", 4, "ngIf", "ngIfElse"], ["elseBlock2", ""], ["mat-raised-button", "", 1, "igo-form-button-group", 3, "click"], ["svgIcon", "content-copy"], [1, "igo-form", 3, "formGroup"], [1, "igo-input-container"], [3, "value", "valueChange"], ["matTooltipShowDelay", "500", 3, "value", "click", 4, "ngFor", "ngForOf"], [1, "center-toggle", "mat-typography", 3, "checked", "labelPosition", "change"], [1, "igo-zoom", "mat-typography"], [1, "coordinates"], ["matInput", "", "readonly", "", "rows", "1", 3, "placeholder", "value"], ["textArea", ""], [1, "coordinates2"], ["matTooltipShowDelay", "500", 3, "value", "click"]], template: function AdvancedCoordinatesComponent_Template(rf, ctx) { if (rf & 1) {
|
|
402
402
|
i0.ɵɵtemplate(0, AdvancedCoordinatesComponent_mat_form_field_0_Template, 4, 4, "mat-form-field", 0);
|
|
403
403
|
i0.ɵɵtemplate(1, AdvancedCoordinatesComponent_ng_template_1_Template, 4, 4, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
|
|
@@ -467,7 +467,7 @@ AdvancedCoordinatesComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type
|
|
|
467
467
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdvancedCoordinatesComponent, [{
|
|
468
468
|
type: Component,
|
|
469
469
|
args: [{ selector: 'igo-advanced-coordinates', template: "<mat-form-field *ngIf=\"units; else elseBlock\" class=\"coordinates\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.lon' | translate\"\r\n [value]=\"coordinates[0]\"></textarea>\r\n</mat-form-field>\r\n<ng-template #elseBlock >\r\n <mat-form-field class=\"coordinates\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.est' | translate\"\r\n [value]=\"coordinates[0]\"></textarea></mat-form-field>\r\n</ng-template>\r\n\r\n<mat-form-field *ngIf=\"units; else elseBlock2\" class=\"coordinates2\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.lat' | translate\"\r\n [value]=\"coordinates[1]\"></textarea>\r\n</mat-form-field>\r\n<ng-template #elseBlock2 >\r\n <mat-form-field class=\"coordinates2\"> <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.nord' | translate\"\r\n [value]=\"coordinates[1]\"></textarea></mat-form-field>\r\n</ng-template>\r\n\r\n<button class=\"igo-form-button-group\"\r\n mat-raised-button\r\n (click)=\"copyTextToClipboard()\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n {{ 'igo.integration.advanced-map-tool.advanced-coordinates.copy' | translate }}\r\n</button>\r\n\r\n<form class=\"igo-form\" [formGroup]=\"form\">\r\n <mat-form-field class=\"igo-input-container\">\r\n <mat-label>{{'igo.integration.advanced-map-tool.advanced-coordinates.coordSystem' | translate}}</mat-label>\r\n <mat-select [(value)]=\"inputProj\">\r\n <mat-option matTooltipShowDelay=\"500\"\r\n *ngFor=\"let projection of (projections$ | async)\"\r\n [value]=\"projection\"\r\n (click)=\"$event.stopPropagation()\">\r\n {{projection.translatedValue || projection.alias }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-slide-toggle class=\"center-toggle mat-typography\"\r\n [checked]=\"center\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"displayCenter($event.checked)\">\r\n {{'igo.integration.advanced-map-tool.advanced-coordinates.center' | translate}}\r\n </mat-slide-toggle> \r\n</form>\r\n\r\n<p class=\"igo-zoom mat-typography\">{{'igo.integration.advanced-map-tool.advanced-coordinates.zoom' | translate}} {{map.viewController.getZoom() }}</p>\r\n<p class=\"igo-zoom mat-typography\">{{'igo.integration.advanced-map-tool.advanced-coordinates.scale' | translate}} {{ formattedScale$ | async }}</p>\r\n<p class=\"igo-zoom mat-typography\">{{'igo.integration.advanced-map-tool.advanced-coordinates.resolution' | translate}} {{map.viewController.getResolution() | number: '1.0-0' }}</p>", styles: ["textarea{resize:none}mat-form-field{padding:10px 15px}mat-form-field.coordinates{width:120px}mat-form-field.coordinates2{width:120px;padding:0 10px 0 3px}mat-form-field.igo-input-container{width:60%;padding:0 15px}.igo-form-button-group{padding:0 10px;margin:0 10px}.center-toggle{padding:10px 15px 35px}mat-slide-toggle{font-size:small}.igo-zoom{padding:0 15px}\n"] }]
|
|
470
|
-
}], function () { return [{ type: i1.MapState }, { type: i2.LanguageService }, { type: i2.MessageService }, { type: i0.ChangeDetectorRef }, { type: i2.StorageService }, { type: i2.ConfigService }, { type: i3.
|
|
470
|
+
}], function () { return [{ type: i1.MapState }, { type: i2.LanguageService }, { type: i2.MessageService }, { type: i0.ChangeDetectorRef }, { type: i2.StorageService }, { type: i2.ConfigService }, { type: i3.FormBuilder }]; }, { projectionsLimitations: [{
|
|
471
471
|
type: Input
|
|
472
472
|
}] }); })();
|
|
473
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtY29vcmRpbmF0ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9tYXAvYWR2YW5jZWQtbWFwLXRvb2wvYWR2YW5jZWQtY29vcmRpbmF0ZXMvYWR2YW5jZWQtY29vcmRpbmF0ZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9tYXAvYWR2YW5jZWQtbWFwLXRvb2wvYWR2YW5jZWQtY29vcmRpbmF0ZXMvYWR2YW5jZWQtY29vcmRpbmF0ZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsV0FBVyxFQUEyRCxNQUFNLFdBQVcsQ0FBQztBQUVqRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBbUQsWUFBWSxFQUFpQixNQUFNLFlBQVksQ0FBQztBQUMxRyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEUsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDNUUsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQ1RsQywwQ0FBa0U7SUFDOUQsbUNBRXNDOztJQUMxQyxpQkFBaUI7OztJQUZYLGVBQXdGO0lBQXhGLGdIQUF3RixnQ0FBQTs7O0lBSTVGLDBDQUFvQztJQUNsQyxtQ0FFa0M7O0lB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Qyx5R0FBUyx5QkFBcUIsSUFBQztRQUMvQiw4QkFBNEM7UUFDNUMsWUFDSjs7UUFBQSxpQkFBUztRQUVULGdDQUEwQyx5QkFBQSxpQkFBQTtRQUUzQixhQUFvRjs7UUFBQSxpQkFBWTtRQUMzRyxzQ0FBa0M7UUFBdEIsMEpBQXFCO1FBQy9CLDZGQUthOztRQUNmLGlCQUFhLEVBQUE7UUFFZiw2Q0FHMkM7UUFBekMsNEhBQVUsaUNBQTZCLElBQUM7UUFDeEMsYUFDRjs7UUFBQSxpQkFBbUIsRUFBQTtRQUdyQiw4QkFBbUM7UUFBQSxhQUErRzs7UUFBQSxpQkFBSTtRQUN0Siw4QkFBbUM7UUFBQSxhQUE0Rzs7O1FBQUEsaUJBQUk7UUFDbkosOEJBQW1DO1FBQUEsYUFBNkk7OztRQUFBLGlCQUFJOzs7O1FBcERuSyxnQ0FBYSxpQkFBQTtRQVliLGVBQWE7UUFBYixnQ0FBYSxpQkFBQTtRQWUxQixlQUNKO1FBREksc0hBQ0o7UUFFdUIsZUFBa0I7UUFBbEIsb0NBQWtCO1FBRTFCLGVBQW9GO1FBQXBGLGtIQUFvRjtRQUNuRixlQUFxQjtRQUFyQixxQ0FBcUI7UUFFTixlQUF5QjtRQUF6QixrRUFBeUI7UUFRcEQsZUFBa0I7UUFBbEIsb0NBQWtCLDJCQUFBO1FBR2xCLGVBQ0Y7UUFERSx3SEFDRjtRQUdpQyxlQUErRztRQUEvRywySkFBK0c7UUFDL0csZUFBNEc7UUFBNUcsdUtBQTRHO1FBQzVHLGVBQTZJO1FBQTdJLHdNQUE2STs7dUZEbENuSyw0QkFBNEI7Y0FMeEMsU0FBUzsyQkFDRSwwQkFBMEI7Z1BBcUNoQyxzQkFBc0I7a0JBRHpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZm9ybWF0U2NhbGUsIElnb01hcCwgSW5wdXRQcm9qZWN0aW9ucywgUHJvamVjdGlvbnNMaW1pdGF0aW9uc09wdGlvbnMgfSBmcm9tICdAaWdvMi9nZW8nO1xyXG5pbXBvcnQgeyBNYXBTdGF0ZSB9IGZyb20gJy4uLy4uL21hcC5zdGF0ZSc7XHJcbmltcG9ydCB7IENsaXBib2FyZCB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UsIExhbmd1YWdlU2VydmljZSwgU3RvcmFnZVNlcnZpY2UsIFN0b3JhZ2VTY29wZSwgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgem9uZU10bSwgem9uZVV0bSwgY29tcHV0ZVByb2plY3Rpb25zQ29uc3RyYWludHMgfSBmcm9tICdAaWdvMi9nZW8nO1xyXG5pbXBvcnQgKiBhcyBvbHByb2ogZnJvbSAnb2wvcHJvaic7XHJcbi8qKlxyXG4gKiBUb29sIHRvIGRpc3BsYXkgdGhlIGNvb3JkaW5hdGVzIGFuZCBhIGN1cnNvciBvZiB0aGUgY2VudGVyIG9mIHRoZSBtYXBcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWFkdmFuY2VkLWNvb3JkaW5hdGVzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWR2YW5jZWQtY29vcmRpbmF0ZXMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FkdmFuY2VkLWNvb3JkaW5hdGVzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkQ29vcmRpbmF0ZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIGZvcm1hdHRlZFNjYWxlJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcclxuICBwdWJsaWMgcHJvamVjdGlvbnMkOiBCZWhhdmlvclN1YmplY3Q8SW5wdXRQcm9qZWN0aW9uc1tdPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xyXG4gIHB1YmxpYyBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIHB1YmxpYyBjb29yZGluYXRlczogc3RyaW5nW107XHJcbiAgcHJpdmF0ZSBjdXJyZW50Q2VudGVyRGVmYXVsdFByb2o6IFtudW1iZXIsIG51bWJlcl07XHJcbiAgcHVibGljIGNlbnRlcjogYm9vbGVhbiA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KCdjZW50ZXJUb2dnbGUnKSBhcyBib29sZWFuO1xyXG4gIHByaXZhdGUgaW5NdG1ab25lOiBib29sZWFuID0gdHJ1ZTtcclxuICBwcml2YXRlIGluTGFtYmVydDIgPSB7MzIxOTg6IHRydWUsIDM3OTg6IHRydWV9O1xyXG4gIHByaXZhdGUgbWFwU3RhdGUkJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgX3Byb2plY3Rpb25zTGltaXRhdGlvbnM6IFByb2plY3Rpb25zTGltaXRhdGlvbnNPcHRpb25zID0ge307XHJcbiAgcHJpdmF0ZSBwcm9qZWN0aW9uc0NvbnN0cmFpbnRzOiBQcm9qZWN0aW9uc0xpbWl0YXRpb25zT3B0aW9ucztcclxuICBwcml2YXRlIGRlZmF1bHRQcm9qOiBJbnB1dFByb2plY3Rpb25zID0ge1xyXG4gICAgdHJhbnNsYXRlZFZhbHVlOiB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5pbXBvcnRFeHBvcnRGb3JtLnByb2plY3Rpb25zLndnczg0JywgeyBjb2RlOiAnRVBTRzo0MzI2JyB9KSxcclxuICAgIHRyYW5zbGF0ZUtleTogJ3dnczg0JywgYWxpYXM6ICdXR1M4NCcsIGNvZGU6ICdFUFNHOjQzMjYnLCB6b25lOiAnJ1xyXG4gIH07XHJcbiAgcHJpdmF0ZSBjdXJyZW50Wm9uZXMgPSB7IHV0bTogdW5kZWZpbmVkLCBtdG06IHVuZGVmaW5lZCB9O1xyXG4gIHB1YmxpYyB1bml0czogYm9vbGVhbiA9IHRydWU7XHJcbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xyXG4gICAgcmV0dXJuIHRoaXMubWFwU3RhdGUubWFwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlucHV0UHJvaigpOiBJbnB1dFByb2plY3Rpb25zIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdpbnB1dFByb2onKS52YWx1ZTtcclxuICB9XHJcbiAgc2V0IGlucHV0UHJvaih2YWx1ZTogSW5wdXRQcm9qZWN0aW9ucykge1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBpbnB1dFByb2o6IHZhbHVlIH0pO1xyXG4gIH1cclxuICBnZXQgcHJvamVjdGlvbnNMaW1pdGF0aW9ucygpOiBQcm9qZWN0aW9uc0xpbWl0YXRpb25zT3B0aW9ucyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcHJvamVjdGlvbnNMaW1pdGF0aW9ucyB8fCB7fTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHByb2plY3Rpb25zTGltaXRhdGlvbnModmFsdWU6IFByb2plY3Rpb25zTGltaXRhdGlvbnNPcHRpb25zKSB7XHJcbiAgICB0aGlzLl9wcm9qZWN0aW9uc0xpbWl0YXRpb25zID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBtYXBTdGF0ZTogTWFwU3RhdGUsXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIpIHtcclxuICAgICAgdGhpcy5jb21wdXRlUHJvamVjdGlvbnMoKTtcclxuICAgICAgdGhpcy5idWlsZEZvcm0oKTtcclxuICAgIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdGVuIGEgc3RhdGUgb2YgdGhlIG1hcCwgYSBzdGF0ZSBvZiBhIGZvcm0sIHVwZGF0ZSB0aGUgY29vcmRpbmF0ZXNcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubWFwU3RhdGUkJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMubWFwLnZpZXdDb250cm9sbGVyLnN0YXRlJC5waXBlKGRlYm91bmNlVGltZSg1MCkpLCB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzXSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5zZXRTY2FsZVZhbHVlKHRoaXMubWFwKTtcclxuICAgICAgdGhpcy5jdXJyZW50Q2VudGVyRGVmYXVsdFByb2ogPSB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5nZXRDZW50ZXIodGhpcy5kZWZhdWx0UHJvai5jb2RlKTtcclxuICAgICAgY29uc3QgY3VycmVudE10bVpvbmUgPSB6b25lTXRtKHRoaXMuY3VycmVudENlbnRlckRlZmF1bHRQcm9qWzBdKTtcclxuICAgICAgY29uc3QgY3VycmVudFV0bVpvbmUgPSB6b25lVXRtKHRoaXMuY3VycmVudENlbnRlckRlZmF1bHRQcm9qWzBdKTtcclxuICAgICAgaWYgKCF0aGlzLmluTXRtWm9uZSAmJiBjdXJyZW50TXRtWm9uZSAhPT0gdGhpcy5jdXJyZW50Wm9uZXMubXRtKSB7XHJcbiAgICAgICAgdGhpcy5iYWNrMnF1ZWJlYygpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCB6b25lQ2hhbmdlID0gZmFsc2U7XHJcbiAgICAgIGlmIChjdXJyZW50TXRtWm9uZSAhPT0gdGhpcy5jdXJyZW50Wm9uZXMubXRtKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50Wm9uZXMubXRtID0gY3VycmVudE10bVpvbmU7XHJcbiAgICAgICAgem9uZUNoYW5nZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGN1cnJlbnRVdG1ab25lICE9PSB0aGlzLmN1cnJlbnRab25lcy51dG0pIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRab25lcy51dG0gPSBjdXJyZW50VXRtWm9uZTtcclxuICAgICAgICB6b25lQ2hhbmdlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoem9uZUNoYW5nZSkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlUHJvamVjdGlvbnNab25lQ2hhbmdlKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaGVja0xhbWJlcnQodGhpcy5jdXJyZW50Q2VudGVyRGVmYXVsdFByb2opO1xyXG4gICAgICB0aGlzLmNvb3JkaW5hdGVzID0gdGhpcy5nZXRDb29yZGluYXRlcygpO1xyXG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXQoJ2N1cnJlbnRQcm9qZWN0aW9uJywgdGhpcy5pbnB1dFByb2osIFN0b3JhZ2VTY29wZS5TRVNTSU9OKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHRlbXBJbnB1dFByb2ogPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldCgnY3VycmVudFByb2plY3Rpb24nKSBhcyBJbnB1dFByb2plY3Rpb25zO1xyXG4gICAgdGhpcy5pbnB1dFByb2ogPSB0aGlzLnByb2plY3Rpb25zJC52YWx1ZVswXTtcclxuICAgIGlmICh0ZW1wSW5wdXRQcm9qICE9PSBudWxsKVxyXG4gICAge1xyXG4gICAgICBjb25zdCBwb3MgPSB0aGlzLnBvc2l0aW9uSW5MaXN0KHRlbXBJbnB1dFByb2opO1xyXG4gICAgICB0aGlzLmlucHV0UHJvaiA9IHRoaXMucHJvamVjdGlvbnMkLnZhbHVlW3Bvc107XHJcbiAgICAgIHRoaXMudXBkYXRlWm9uZU10bVV0bSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tYXAubWFwQ2VudGVyJC5uZXh0KHRoaXMuY2VudGVyKTtcclxuICAgIHRoaXMuY29vcmRpbmF0ZXMgPSB0aGlzLmdldENvb3JkaW5hdGVzKCk7XHJcbiAgICB0aGlzLmN1cnJlbnRDZW50ZXJEZWZhdWx0UHJvaiA9IHRoaXMubWFwLnZpZXdDb250cm9sbGVyLmdldENlbnRlcih0aGlzLmRlZmF1bHRQcm9qLmNvZGUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLm1hcC5tYXBDZW50ZXIkLm5leHQoZmFsc2UpO1xyXG4gICAgdGhpcy5tYXBTdGF0ZSQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTY2FsZVZhbHVlKG1hcDogSWdvTWFwKSB7XHJcbiAgICB0aGlzLmZvcm1hdHRlZFNjYWxlJC5uZXh0KCc6IH4gMSAvICcgKyBmb3JtYXRTY2FsZShtYXAudmlld0NvbnRyb2xsZXIuZ2V0U2NhbGUoKSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDb29yZGluYXRlcyBvZiB0aGUgY2VudGVyIG9mIHRoZSBtYXAgb24gdGhlIGFwcHJvcHJpYXRlIHN5c3RlbWUgb2YgY29vcmRpbmF0ZXNcclxuICAgKiBAcmV0dXJucyBBcnJheSBvZiB0d28gbnVtYmVyc1xyXG4gICAqL1xyXG4gIGdldENvb3JkaW5hdGVzKCk6IHN0cmluZ1tdIHtcclxuICAgIHRoaXMuY3VycmVudFpvbmVzLm10bSA9IHpvbmVNdG0odGhpcy5jdXJyZW50Q2VudGVyRGVmYXVsdFByb2pbMF0pO1xyXG4gICAgdGhpcy5jdXJyZW50Wm9uZXMudXRtID0gem9uZVV0bSh0aGlzLmN1cnJlbnRDZW50ZXJEZWZhdWx0UHJvalswXSk7XHJcbiAgICBsZXQgY29vcmQ7XHJcbiAgICBjb25zdCBjb2RlID0gdGhpcy5pbnB1dFByb2ouY29kZTtcclxuICAgIGxldCBkZWNpbWFsID0gMjtcclxuICAgIGlmIChjb2RlLmluY2x1ZGVzKCdFUFNHOjQzMjYnKSB8fCBjb2RlLmluY2x1ZGVzKCdFUFNHOjQyNjknKSkge1xyXG4gICAgICBkZWNpbWFsID0gNTtcclxuICAgIH1cclxuICAgIHRoaXMudW5pdHMgPSAoY29kZSA9PT0gJ0VQU0c6NDMyNicgfHwgY29kZSA9PT0gJ0VQU0c6NDI2OScpO1xyXG4gICAgY29vcmQgPSB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5nZXRDZW50ZXIoY29kZSkubWFwKGMgPT4gYy50b0ZpeGVkKGRlY2ltYWwpKTtcclxuICAgIHJldHVybiBjb29yZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvcHkgdGhlIGNvb3JkaW5hdGVzIHRvIGEgY2xpcGJvYXJkXHJcbiAgICovXHJcbiAgY29weVRleHRUb0NsaXBib2FyZCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN1Y2Nlc3NmdWwgPSBDbGlwYm9hcmQuY29weSh0aGlzLmNvb3JkaW5hdGVzLnRvU3RyaW5nKCkpO1xyXG4gICAgaWYgKHN1Y2Nlc3NmdWwpIHtcclxuICAgICAgY29uc3QgdHJhbnNsYXRlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlO1xyXG4gICAgICBjb25zdCB0aXRsZSA9IHRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICdpZ28uaW50ZWdyYXRpb24uYWR2YW5jZWQtbWFwLXRvb2wuYWR2YW5jZWQtY29vcmRpbmF0ZXMuY29weVRpdGxlJ1xyXG4gICAgICApO1xyXG4gICAgICBjb25zdCBtc2cgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmludGVncmF0aW9uLmFkdmFuY2VkLW1hcC10b29sLmFkdmFuY2VkLWNvb3JkaW5hdGVzLmNvcHlNc2cnKTtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzKG1zZywgdGl0bGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGxheSBhIGN1cnNvciBvbiB0aGUgY2VudGVyIG9mIHRoZSBtYXBcclxuICAgKi9cclxuICBkaXNwbGF5Q2VudGVyKHRvZ2dsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5jZW50ZXIgPSB0b2dnbGU7XHJcbiAgICB0aGlzLm1hcC5tYXBDZW50ZXIkLm5leHQodG9nZ2xlKTtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0KCdjZW50ZXJUb2dnbGUnLCB0b2dnbGUsIFN0b3JhZ2VTY29wZS5TRVNTSU9OKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1aWxkZXIgb2YgdGhlIGZvcm1cclxuICAgKi9cclxuICBwcml2YXRlIGJ1aWxkRm9ybSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICBpbnB1dFByb2o6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgbGlzdCBvZiBwcm9qZWN0aW9ucyBhZnRlciBjaGFuZ2luZyBvZiB0aGUgc3RhdGUgb2YgdGhlIG1hcFxyXG4gICAqL1xyXG4gIHByaXZhdGUgdXBkYXRlUHJvamVjdGlvbnNab25lQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgbGV0IG1vZGlmaWVkUHJvaiA9IHRoaXMucHJvamVjdGlvbnMkLnZhbHVlO1xyXG4gICAgY29uc3QgdHJhbnNsYXRlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlO1xyXG4gICAgbW9kaWZpZWRQcm9qLm1hcChwID0+IHtcclxuICAgICAgaWYgKHAudHJhbnNsYXRlS2V5ID09PSAnbXRtJykge1xyXG4gICAgICAgIGNvbnN0IHpvbmUgPSB6b25lTXRtKHRoaXMuY3VycmVudENlbnRlckRlZmF1bHRQcm9qWzBdKTtcclxuICAgICAgICBpZiAoem9uZSkge1xyXG4gICAgICAgICAgY29uc3QgY29kZSA9IHpvbmUgPCAxMCA/IGBFUFNHOjMyMTgke3pvbmV9YCA6IGBFUFNHOjMyMSR7ODAgKyB6b25lfWA7XHJcbiAgICAgICAgICBwLmFsaWFzID0gYE1UTSAke3pvbmV9YDtcclxuICAgICAgICAgIHAuY29kZSA9IGNvZGU7XHJcbiAgICAgICAgICBwLnpvbmUgPSBgJHt6b25lfWA7XHJcbiAgICAgICAgICBwLnRyYW5zbGF0ZWRWYWx1ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmltcG9ydEV4cG9ydEZvcm0ucHJvamVjdGlvbnMubXRtJywgcCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgcC5hbGlhcyA9ICcnO1xyXG4gICAgICAgICAgdGhpcy5pbk10bVpvbmUgPSBmYWxzZTtcclxuICAgICAgICAgIGlmICh0aGlzLmlucHV0UHJvai50cmFuc2xhdGVLZXkgPT09ICdtdG0nKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXRQcm9qID0gdGhpcy5wcm9qZWN0aW9ucyQudmFsdWVbMF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChwLnRyYW5zbGF0ZUtleSA9PT0gJ3V0bScpIHtcclxuICAgICAgICBjb25zdCB6b25lID0gem9uZVV0bSh0aGlzLmN1cnJlbnRDZW50ZXJEZWZhdWx0UHJvalswXSk7XHJcbiAgICAgICAgY29uc3QgY29kZSA9IGBFUFNHOjMyNiR7em9uZX1gO1xyXG4gICAgICAgIHAuYWxpYXMgPSBgVVRNICR7em9uZX1gO1xyXG4gICAgICAgIHAuY29kZSA9IGNvZGU7XHJcbiAgICAgICAgcC56b25lID0gYCR7em9uZX1gO1xyXG4gICAgICAgIHAudHJhbnNsYXRlZFZhbHVlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uaW1wb3J0RXhwb3J0Rm9ybS5wcm9qZWN0aW9ucy51dG0nLCBwKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBtb2RpZmllZFByb2ogPSBtb2RpZmllZFByb2ouZmlsdGVyKHAgPT4gcC5hbGlhcyAhPT0gJycpO1xyXG4gICAgdGhpcy5wcm9qZWN0aW9ucyQubmV4dChtb2RpZmllZFByb2opO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgbGlzdCBvZiBjdXJyZW50cyBwcm9qZWN0aW9uc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgY29tcHV0ZVByb2plY3Rpb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9qZWN0aW9uc0NvbnN0cmFpbnRzID0gY29tcHV0ZVByb2plY3Rpb25zQ29uc3RyYWludHModGhpcy5wcm9qZWN0aW9uc0xpbWl0YXRpb25zKTtcclxuICAgIGNvbnN0IHByb2plY3Rpb25zOiBJbnB1dFByb2plY3Rpb25zW10gPSBbXTtcclxuXHJcbiAgICBpZiAoIXRoaXMuY3VycmVudENlbnRlckRlZmF1bHRQcm9qKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudENlbnRlckRlZmF1bHRQcm9qID0gdGhpcy5tYXAudmlld0NvbnRyb2xsZXIuZ2V0Q2VudGVyKHRoaXMuZGVmYXVsdFByb2ouY29kZSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdHJhbnNsYXRlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlO1xyXG4gICAgaWYgKHRoaXMucHJvamVjdGlvbnNDb25zdHJhaW50cy53Z3M4NCkge1xyXG4gICAgICBwcm9qZWN0aW9ucy5wdXNoKHtcclxuICAgICAgICB0cmFuc2xhdGVkVmFsdWU6IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmltcG9ydEV4cG9ydEZvcm0ucHJvamVjdGlvbnMud2dzODQnLCB7IGNvZGU6ICdFUFNHOjQzMjYnIH0pLFxyXG4gICAgICAgIHRyYW5zbGF0ZUtleTogJ3dnczg0JywgYWxpYXM6ICdXR1M4NCcsIGNvZGU6ICdFUFNHOjQzMjYnLCB6b25lOiAnJ1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5wcm9qZWN0aW9uc0NvbnN0cmFpbnRzLm5hZDgzKSB7XHJcbiAgICAgIHByb2plY3Rpb25zLnB1c2goe1xyXG4gICAgICAgIHRyYW5zbGF0ZWRWYWx1ZTogdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uaW1wb3J0RXhwb3J0Rm9ybS5wcm9qZWN0aW9ucy5uYWQ4MycsIHsgY29kZTogJ0VQU0c6NDI2OScgfSksXHJcbiAgICAgICAgdHJhbnNsYXRlS2V5OiAnbmFkODMnLCBhbGlhczogJ05BRDgzJywgY29kZTogJ0VQU0c6NDI2OScsIHpvbmU6ICcnXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnByb2plY3Rpb25zQ29uc3RyYWludHMud2ViTWVyY2F0b3IpIHtcclxuICAgICAgcHJvamVjdGlvbnMucHVzaCh7XHJcbiAgICAgICAgdHJhbnNsYXRlZFZhbHVlOiB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5pbXBvcnRFeHBvcnRGb3JtLnByb2plY3Rpb25zLndlYk1lcmNhdG9yJywgeyBjb2RlOiAnRVBTRzozODU3JyB9KSxcclxuICAgICAgICB0cmFuc2xhdGVLZXk6ICd3ZWJNZXJjYXRvcicsIGFsaWFzOiAnV2ViIE1lcmNhdG9yJywgY29kZTogJ0VQU0c6Mzg1NycsIHpvbmU6ICcnXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucHJvamVjdGlvbnNDb25zdHJhaW50cy5tdG0pIHtcclxuICAgICAgLy8gUXVlYmVjXHJcbiAgICAgIGNvbnN0IHpvbmUgPSB6b25lTXRtKHRoaXMuY3VycmVudENlbnRlckRlZmF1bHRQcm9qWzBdKTtcclxuICAgICAgaWYgKHpvbmUpIHtcclxuICAgICAgICB0aGlzLmluTXRtWm9uZSA9IHRydWU7XHJcbiAgICAgICAgY29uc3QgY29kZSA9IHpvbmUgPCAxMCA/IGBFUFNHOjMyMTgke3pvbmV9YCA6IGBFUFNHOjMyMSR7ODAgKyB6b25lfWA7XHJcbiAgICAgICAgcHJvamVjdGlvbnMuc3BsaWNlKDMsIDAsIHtcclxuICAgICAgICAgIHRyYW5zbGF0ZWRWYWx1ZTogdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uaW1wb3J0RXhwb3J0Rm9ybS5wcm9qZWN0aW9ucy5tdG0nLCB7IGNvZGUsIHpvbmUgfSksXHJcbiAgICAgICAgICB0cmFuc2xhdGVLZXk6ICdtdG0nLCBhbGlhczogYE1UTSAke3pvbmV9YCwgY29kZSwgem9uZTogYCR7em9uZX1gXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pbk10bVpvbmUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucHJvamVjdGlvbnNDb25zdHJhaW50cy51dG0pIHtcclxuICAgICAgY29uc3Qgb3JkZXIgPSB0aGlzLmluTXRtWm9uZSA/IDQgOiAzO1xyXG4gICAgICBjb25zdCB6b25lID0gem9uZVV0bSh0aGlzLmN1cnJlbnRDZW50ZXJEZWZhdWx0UHJvalswXSk7XHJcbiAgICAgIGNvbnN0IGNvZGUgPSB6b25lIDwgMTAgPyBgRVBTRzozMjYwJHt6b25lfWAgOiBgRVBTRzozMjYke3pvbmV9YDtcclxuICAgICAgcHJvamVjdGlvbnMuc3BsaWNlKG9yZGVyLCAwLCB7XHJcbiAgICAgICAgdHJhbnNsYXRlZFZhbHVlOiB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5pbXBvcnRFeHBvcnRGb3JtLnByb2plY3Rpb25zLnV0bScsIHsgY29kZSwgem9uZSB9KSxcclxuICAgICAgICB0cmFuc2xhdGVLZXk6ICd1dG0nLCBhbGlhczogYFVUTSAke3pvbmV9YCwgY29kZSwgem9uZTogYCR7em9uZX1gXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgbGV0IGNvbmZpZ1Byb2plY3Rpb24gPSBbXTtcclxuICAgIGlmICh0aGlzLnByb2plY3Rpb25zQ29uc3RyYWludHMucHJvakZyb21Db25maWcpIHtcclxuICAgICAgY29uZmlnUHJvamVjdGlvbiA9IHRoaXMuY29uZmlnLmdldENvbmZpZygncHJvamVjdGlvbnMnKSB8fCBbXTtcclxuICAgIH1cclxuICAgIHRoaXMucHJvamVjdGlvbnMkLm5leHQocHJvamVjdGlvbnMuY29uY2F0KGNvbmZpZ1Byb2plY3Rpb24pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFB1c2ggdGhlIE1UTSBpbiB0aGUgYXJyYXkgb2Ygc3lzdGVtZSBvZiBjb29yZGluYXRlc1xyXG4gICAqIEBwYXJhbSBwcm9qZWN0aW9ucyBBcnJheSBvZiB0aGUgSW5wdXRQcm9qZWN0aW9uc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgcHVzaE10bShwcm9qZWN0aW9uczogQXJyYXk8SW5wdXRQcm9qZWN0aW9ucz4pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnByb2plY3Rpb25zQ29uc3RyYWludHMubXRtKSB7XHJcbiAgICAgIGNvbnN0IHpvbmUgPSB6b25lTXRtKHRoaXMuY3VycmVudENlbnRlckRlZmF1bHRQcm9qWzBdKTtcclxuICAgICAgY29uc3QgY29kZSA9IHpvbmUgPCAxMCA/IGBFUFNHOjMyMTgke3pvbmV9YCA6IGBFUFNHOjMyMSR7ODAgKyB6b25lfWA7XHJcbiAgICAgIHByb2plY3Rpb25zLnNwbGljZSgzLCAwLCB7XHJcbiAgICAgICAgICB0cmFuc2xhdGVkVmFsdWU6IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmltcG9ydEV4cG9ydEZvcm0ucHJvamVjdGlvbnMubXRtJywgeyBjb2RlLCB6b25lIH0pLFxyXG4gICAgICAgICAgdHJhbnNsYXRlS2V5OiAnbXRtJywgYWxpYXM6IGBNVE0gJHt6b25lfWAsIGNvZGUsIHpvbmU6IGAke3pvbmV9YH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgbGlzdCBvZiBzeXN0ZW1zIG9mIGNvb3JkaW5hdGVzIGZvciB0ZXJyaXRvcnkgb2YgUXVlYmVjXHJcbiAgICogcHVzaCBNVE0gYW5kIFVUTSBpbiB0aGUgQXJyYXlcclxuICAgKi9cclxuICBwcml2YXRlIGJhY2sycXVlYmVjKCk6IHZvaWQge1xyXG4gICAgY29uc3QgcHJvamVjdGlvbnMgPSB0aGlzLnByb2plY3Rpb25zJC52YWx1ZTtcclxuICAgIHRoaXMucHVzaE10bShwcm9qZWN0aW9ucyk7XHJcbiAgICB0aGlzLmluTXRtWm9uZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgdGhlIG51bWJlcnMgb2YgdGhlIHpvbmVzIHdoZW4gYXBwbGljYXRpb24gaXMgcmVzdGFydGVkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1cGRhdGVab25lTXRtVXRtKCkge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRQcm9qLnRyYW5zbGF0ZUtleSA9PT0gJ210bScpIHtcclxuICAgICAgY29uc3Qgem9uZSA9IHpvbmVNdG0odGhpcy5jdXJyZW50Q2VudGVyRGVmYXVsdFByb2pbMF0pO1xyXG4gICAgICB0aGlzLmlucHV0UHJvai5hbGlhcyA9IGBNVE0gJHt6b25lfWA7XHJcbiAgICAgIGNvbnN0IGNvZGUgPSB6b25lIDwgMTAgPyBgRVBTRzozMjE4JHt6b25lfWAgOiBgRVBTRzozMjEkezgwICsgem9uZX1gO1xyXG4gICAgICB0aGlzLmlucHV0UHJvai5jb2RlID0gY29kZTtcclxuICAgICAgdGhpcy5pbnB1dFByb2ouem9uZSA9IGAke3pvbmV9YDtcclxuICAgICAgdGhpcy5pbnB1dFByb2oudHJhbnNsYXRlZFZhbHVlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uaW1wb3J0RXhwb3J0Rm9ybS5wcm9qZWN0aW9ucy5tdG0nLCB7IGNvZGUsIHpvbmUgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pbnB1dFByb2oudHJhbnNsYXRlS2V5ID09PSAndXRtJykge1xyXG4gICAgICBjb25zdCB6b25lID0gem9uZVV0bSh0aGlzLmN1cnJlbnRDZW50ZXJEZWZhdWx0UHJvalswXSk7XHJcbiAgICAgIHRoaXMuaW5wdXRQcm9qLmFsaWFzID0gYFVUTSAke3pvbmV9YDtcclxuICAgICAgY29uc3QgY29kZSA9IHpvbmUgPCAxMCA/IGBFUFNHOjMyNjAke3pvbmV9YCA6IGBFUFNHOjMyNiR7em9uZX1gO1xyXG4gICAgICB0aGlzLmlucHV0UHJvai5jb2RlID0gY29kZTtcclxuICAgICAgdGhpcy5pbnB1dFByb2ouem9uZSA9IGAke3pvbmV9YDtcclxuICAgICAgdGhpcy5pbnB1dFByb2oudHJhbnNsYXRlZFZhbHVlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uaW1wb3J0RXhwb3J0Rm9ybS5wcm9qZWN0aW9ucy51dG0nLCB7IGNvZGUsIHpvbmUgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb21wdXRlIHRoZSBwb3NpdGlvbiBvZiBhIGN1cnJlbnQgcHJvamVjdGlvbiBpbiBhIGxpc3QuIDAgaWYgdGhlIHByb2plY3Rpb24gaXMgbm90IGluIHRoZSBsaXN0XHJcbiAgICogQHBhcmFtIHRyYW5zbGF0ZUtleSBzdHJpbmcsIHRyYW5zbGF0ZSBrZXkgb2YgYSBwcm9qZWN0aW9uXHJcbiAgICogQHJldHVybnMgbnVtZXJpYywgcG9zaXRpb24gb2YgYW4gZWxlbWVudCBpbiB0aGUgYXJyYXlcclxuICAgKi9cclxuICBwb3NpdGlvbkluTGlzdCh0ZW1wSW5wdXRQcm9qOiBJbnB1dFByb2plY3Rpb25zKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IHRrID0gdGVtcElucHV0UHJvai50cmFuc2xhdGVLZXk7XHJcbiAgICBjb25zdCBhbGlhcyA9IHRlbXBJbnB1dFByb2ouYWxpYXM7XHJcbiAgICBsZXQgcG9zaXRpb247IC8vID0gdW5kZWZpbmVkO1xyXG4gICAgbGV0IGl0ZXIgPSAwO1xyXG4gICAgdGhpcy5wcm9qZWN0aW9ucyQudmFsdWUubWFwKChwcm9qZWN0aW9uKSA9PiB7XHJcbiAgICAgIGlmICh0aykge1xyXG4gICAgICAgIGlmICh0ayA9PT0gcHJvamVjdGlvbi50cmFuc2xhdGVLZXkpIHtcclxuICAgICAgICAgIHBvc2l0aW9uID0gaXRlcjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoYWxpYXMgPT09IHByb2plY3Rpb24uYWxpYXMpIHtcclxuICAgICAgICBwb3NpdGlvbiA9IGl0ZXI7XHJcbiAgICAgIH1cclxuICAgICAgaXRlcisrO1xyXG4gICAgfSk7XHJcbiAgICBwb3NpdGlvbiA9IHBvc2l0aW9uID8gcG9zaXRpb24gOiAwO1xyXG4gICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hhbmdlIHRoZSBsaXN0IG9mIHByb2plY3Rpb25zIGRlcGVuZGluZyBvbiB0aGUgcHJvamVjdGlvbnMgb2YgTGFtYmVydFxyXG4gICAqIEBwYXJhbSBjb29yZGluYXRlcyBBbiBhcnJheSBvZiBudW1iZXJzLCBsb25naXR1ZGUgYW5kIGxhdGl0dWRlXHJcbiAgICovXHJcbiAgY2hlY2tMYW1iZXJ0KGNvb3JkaW5hdGVzOiBbbnVtYmVyLCBudW1iZXJdKSB7XHJcbiAgICBjb25zdCBsYW1iZXJ0UHJvamVjdGlvbnMgPSB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ3Byb2plY3Rpb25zJyk7XHJcbiAgICBsYW1iZXJ0UHJvamVjdGlvbnMuZm9yRWFjaChwcm9qZWN0aW9uID0+IHtcclxuICAgICAgICBsZXQgbW9kaWZpZWRQcm9qID0gdGhpcy5wcm9qZWN0aW9ucyQudmFsdWU7XHJcbiAgICAgICAgY29uc3QgZXh0ZW50ID0gcHJvamVjdGlvbi5leHRlbnQ7XHJcbiAgICAgICAgY29uc3QgY29kZSA9IHByb2plY3Rpb24uY29kZS5tYXRjaCgvXFxkKy8pO1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFeHRlbnRXR1MgPSBvbHByb2oudHJhbnNmb3JtRXh0ZW50KGV4dGVudCwgcHJvamVjdGlvbi5jb2RlLCB0aGlzLmRlZmF1bHRQcm9qLmNvZGUpO1xyXG4gICAgICAgIGlmIChjb29yZGluYXRlc1swXSA8IGN1cnJlbnRFeHRlbnRXR1NbMF0gfHwgY29vcmRpbmF0ZXNbMF0gPiBjdXJyZW50RXh0ZW50V0dTWzJdIHx8XHJcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzWzFdIDwgY3VycmVudEV4dGVudFdHU1sxXSB8fCBjb29yZGluYXRlc1sxXSA+IGN1cnJlbnRFeHRlbnRXR1NbM10pIHtcclxuICAgICAgICAgICAgdGhpcy5pbkxhbWJlcnQyW2NvZGVdID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlucHV0UHJvai5hbGlhcyA9PT0gcHJvamVjdGlvbi5hbGlhcykge1xyXG4gICAgICAgICAgICAgIHRoaXMuaW5wdXRQcm9qID0gdGhpcy5wcm9qZWN0aW9ucyQudmFsdWVbMF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbW9kaWZpZWRQcm9qID0gbW9kaWZpZWRQcm9qLmZpbHRlcihwID0+IHAuYWxpYXMgIT09IHByb2plY3Rpb24uYWxpYXMpO1xyXG4gICAgICAgICAgICB0aGlzLnByb2plY3Rpb25zJC5uZXh0KG1vZGlmaWVkUHJvaik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaW5MYW1iZXJ0Mltjb2RlXSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9qZWN0aW9ucyQubmV4dChtb2RpZmllZFByb2ouY29uY2F0KHByb2plY3Rpb24pKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5MYW1iZXJ0Mltjb2RlXSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwidW5pdHM7IGVsc2UgZWxzZUJsb2NrXCIgY2xhc3M9XCJjb29yZGluYXRlc1wiPlxyXG4gICAgPHRleHRhcmVhICAjdGV4dEFyZWEgbWF0SW5wdXQgcmVhZG9ubHkgcm93cz1cIjFcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ2lnby5pbnRlZ3JhdGlvbi5hZHZhbmNlZC1tYXAtdG9vbC5hZHZhbmNlZC1jb29yZGluYXRlcy5sb24nIHwgdHJhbnNsYXRlXCJcclxuICAgICAgW3ZhbHVlXT1cImNvb3JkaW5hdGVzWzBdXCI+PC90ZXh0YXJlYT5cclxuPC9tYXQtZm9ybS1maWVsZD5cclxuPG5nLXRlbXBsYXRlICNlbHNlQmxvY2sgPlxyXG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImNvb3JkaW5hdGVzXCI+XHJcbiAgICA8dGV4dGFyZWEgI3RleHRBcmVhIG1hdElucHV0IHJlYWRvbmx5IHJvd3M9XCIxXCJcclxuICBbcGxhY2Vob2xkZXJdPVwiJ2lnby5pbnRlZ3JhdGlvbi5hZHZhbmNlZC1tYXAtdG9vbC5hZHZhbmNlZC1jb29yZGluYXRlcy5lc3QnIHwgdHJhbnNsYXRlXCJcclxuICBbdmFsdWVdPVwiY29vcmRpbmF0ZXNbMF1cIj48L3RleHRhcmVhPjwvbWF0LWZvcm0tZmllbGQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJ1bml0czsgZWxzZSBlbHNlQmxvY2syXCIgY2xhc3M9XCJjb29yZGluYXRlczJcIj5cclxuICAgIDx0ZXh0YXJlYSAjdGV4dEFyZWEgbWF0SW5wdXQgcmVhZG9ubHkgcm93cz1cIjFcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ2lnby5pbnRlZ3JhdGlvbi5hZHZhbmNlZC1tYXAtdG9vbC5hZHZhbmNlZC1jb29yZGluYXRlcy5sYXQnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgW3ZhbHVlXT1cImNvb3JkaW5hdGVzWzFdXCI+PC90ZXh0YXJlYT5cclxuPC9tYXQtZm9ybS1maWVsZD5cclxuPG5nLXRlbXBsYXRlICNlbHNlQmxvY2syID5cclxuICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJjb29yZGluYXRlczJcIj4gIDx0ZXh0YXJlYSAjdGV4dEFyZWEgbWF0SW5wdXQgcmVhZG9ubHkgcm93cz1cIjFcIlxyXG4gIFtwbGFjZWhvbGRlcl09XCInaWdvLmludGVncmF0aW9uLmFkdmFuY2VkLW1hcC10b29sLmFkdmFuY2VkLWNvb3JkaW5hdGVzLm5vcmQnIHwgdHJhbnNsYXRlXCJcclxuICBbdmFsdWVdPVwiY29vcmRpbmF0ZXNbMV1cIj48L3RleHRhcmVhPjwvbWF0LWZvcm0tZmllbGQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48YnV0dG9uIGNsYXNzPVwiaWdvLWZvcm0tYnV0dG9uLWdyb3VwXCJcclxuICAgIG1hdC1yYWlzZWQtYnV0dG9uXHJcbiAgICAoY2xpY2spPVwiY29weVRleHRUb0NsaXBib2FyZCgpXCI+XHJcbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImNvbnRlbnQtY29weVwiPjwvbWF0LWljb24+XHJcbiAgICB7eyAnaWdvLmludGVncmF0aW9uLmFkdmFuY2VkLW1hcC10b29sLmFkdmFuY2VkLWNvb3JkaW5hdGVzLmNvcHknIHwgdHJhbnNsYXRlIH19XHJcbjwvYnV0dG9uPlxyXG5cclxuPGZvcm0gY2xhc3M9XCJpZ28tZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIj5cclxuICAgIDxtYXQtbGFiZWw+e3snaWdvLmludGVncmF0aW9uLmFkdmFuY2VkLW1hcC10b29sLmFkdmFuY2VkLWNvb3JkaW5hdGVzLmNvb3JkU3lzdGVtJyB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXNlbGVjdCBbKHZhbHVlKV09XCJpbnB1dFByb2pcIj5cclxuICAgICAgPG1hdC1vcHRpb24gbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHByb2plY3Rpb24gb2YgKHByb2plY3Rpb25zJCB8IGFzeW5jKVwiXHJcbiAgICAgICAgW3ZhbHVlXT1cInByb2plY3Rpb25cIlxyXG4gICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICB7e3Byb2plY3Rpb24udHJhbnNsYXRlZFZhbHVlIHx8IHByb2plY3Rpb24uYWxpYXMgfX1cclxuICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgPC9tYXQtc2VsZWN0PlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPG1hdC1zbGlkZS10b2dnbGUgY2xhc3M9XCJjZW50ZXItdG9nZ2xlIG1hdC10eXBvZ3JhcGh5XCJcclxuICAgIFtjaGVja2VkXT1cImNlbnRlclwiXHJcbiAgICBbbGFiZWxQb3NpdGlvbl09XCInYmVmb3JlJ1wiXHJcbiAgICAoY2hhbmdlKT1cImRpc3BsYXlDZW50ZXIoJGV2ZW50LmNoZWNrZWQpXCI+XHJcbiAgICB7eydpZ28uaW50ZWdyYXRpb24uYWR2YW5jZWQtbWFwLXRvb2wuYWR2YW5jZWQtY29vcmRpbmF0ZXMuY2VudGVyJyB8IHRyYW5zbGF0ZX19XHJcbiAgPC9tYXQtc2xpZGUtdG9nZ2xlPiBcclxuPC9mb3JtPlxyXG5cclxuPHAgY2xhc3M9XCJpZ28tem9vbSBtYXQtdHlwb2dyYXBoeVwiPnt7J2lnby5pbnRlZ3JhdGlvbi5hZHZhbmNlZC1tYXAtdG9vbC5hZHZhbmNlZC1jb29yZGluYXRlcy56b29tJyB8IHRyYW5zbGF0ZX19IHt7bWFwLnZpZXdDb250cm9sbGVyLmdldFpvb20oKSB9fTwvcD5cclxuPHAgY2xhc3M9XCJpZ28tem9vbSBtYXQtdHlwb2dyYXBoeVwiPnt7J2lnby5pbnRlZ3JhdGlvbi5hZHZhbmNlZC1tYXAtdG9vbC5hZHZhbmNlZC1jb29yZGluYXRlcy5zY2FsZScgfCB0cmFuc2xhdGV9fSB7eyBmb3JtYXR0ZWRTY2FsZSQgfCBhc3luYyB9fTwvcD5cclxuPHAgY2xhc3M9XCJpZ28tem9vbSBtYXQtdHlwb2dyYXBoeVwiPnt7J2lnby5pbnRlZ3JhdGlvbi5hZHZhbmNlZC1tYXAtdG9vbC5hZHZhbmNlZC1jb29yZGluYXRlcy5yZXNvbHV0aW9uJyB8IHRyYW5zbGF0ZX19IHt7bWFwLnZpZXdDb250cm9sbGVyLmdldFJlc29sdXRpb24oKSB8IG51bWJlcjogJzEuMC0wJyB9fTwvcD4iXX0=
|
|
473
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtY29vcmRpbmF0ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9tYXAvYWR2YW5jZWQtbWFwLXRvb2wvYWR2YW5jZWQtY29vcmRpbmF0ZXMvYWR2YW5jZWQtY29vcmRpbmF0ZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9tYXAvYWR2YW5jZWQtbWFwLXRvb2wvYWR2YW5jZWQtY29vcmRpbmF0ZXMvYWR2YW5jZWQtY29vcmRpbmF0ZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsV0FBVyxFQUEyRCxNQUFNLFdBQVcsQ0FBQztBQUVqRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBbUQsWUFBWSxFQUFpQixNQUFNLFlBQVksQ0FBQztBQUMxRyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEUsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDNUUsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQ1RsQywwQ0FBa0U7SUFDOUQsbUNBRXNDOztJQUMxQyxpQkFBaUI7OztJQUZYLGVBQXdGO0lBQXhGLGdIQUF3RixnQ0FBQTs7O0lBSTVGLDBDQUFvQztJQUNsQyxtQ0FFa0M7O0lB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LHlHQUFTLHlCQUFxQixJQUFDO1FBQy9CLDhCQUE0QztRQUM1QyxZQUNKOztRQUFBLGlCQUFTO1FBRVQsZ0NBQTBDLHlCQUFBLGlCQUFBO1FBRTNCLGFBQW9GOztRQUFBLGlCQUFZO1FBQzNHLHNDQUFrQztRQUF0QiwwSkFBcUI7UUFDL0IsNkZBS2E7O1FBQ2YsaUJBQWEsRUFBQTtRQUVmLDZDQUcyQztRQUF6Qyw0SEFBVSxpQ0FBNkIsSUFBQztRQUN4QyxhQUNGOztRQUFBLGlCQUFtQixFQUFBO1FBR3JCLDhCQUFtQztRQUFBLGFBQStHOztRQUFBLGlCQUFJO1FBQ3RKLDhCQUFtQztRQUFBLGFBQTRHOzs7UUFBQSxpQkFBSTtRQUNuSiw4QkFBbUM7UUFBQSxhQUE2STs7O1FBQUEsaUJBQUk7Ozs7UUFwRG5LLGdDQUFhLGlCQUFBO1FBWWIsZUFBYTtRQUFiLGdDQUFhLGlCQUFBO1FBZTFCLGVBQ0o7UUFESSxzSEFDSjtRQUV1QixlQUFrQjtRQUFsQixvQ0FBa0I7UUFFMUIsZUFBb0Y7UUFBcEYsa0hBQW9GO1FBQ25GLGVBQXFCO1FBQXJCLHFDQUFxQjtRQUVOLGVBQXlCO1FBQXpCLGtFQUF5QjtRQVFwRCxlQUFrQjtRQUFsQixvQ0FBa0IsMkJBQUE7UUFHbEIsZUFDRjtRQURFLHdIQUNGO1FBR2lDLGVBQStHO1FBQS9HLDJKQUErRztRQUMvRyxlQUE0RztRQUE1Ryx1S0FBNEc7UUFDNUcsZUFBNkk7UUFBN0ksd01BQTZJOzt1RkRsQ25LLDRCQUE0QjtjQUx4QyxTQUFTOzJCQUNFLDBCQUEwQjt5T0FxQ2hDLHNCQUFzQjtrQkFEekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmb3JtYXRTY2FsZSwgSWdvTWFwLCBJbnB1dFByb2plY3Rpb25zLCBQcm9qZWN0aW9uc0xpbWl0YXRpb25zT3B0aW9ucyB9IGZyb20gJ0BpZ28yL2dlbyc7XHJcbmltcG9ydCB7IE1hcFN0YXRlIH0gZnJvbSAnLi4vLi4vbWFwLnN0YXRlJztcclxuaW1wb3J0IHsgQ2xpcGJvYXJkIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSwgTGFuZ3VhZ2VTZXJ2aWNlLCBTdG9yYWdlU2VydmljZSwgU3RvcmFnZVNjb3BlLCBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgem9uZU10bSwgem9uZVV0bSwgY29tcHV0ZVByb2plY3Rpb25zQ29uc3RyYWludHMgfSBmcm9tICdAaWdvMi9nZW8nO1xyXG5pbXBvcnQgKiBhcyBvbHByb2ogZnJvbSAnb2wvcHJvaic7XHJcbi8qKlxyXG4gKiBUb29sIHRvIGRpc3BsYXkgdGhlIGNvb3JkaW5hdGVzIGFuZCBhIGN1cnNvciBvZiB0aGUgY2VudGVyIG9mIHRoZSBtYXBcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWFkdmFuY2VkLWNvb3JkaW5hdGVzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWR2YW5jZWQtY29vcmRpbmF0ZXMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FkdmFuY2VkLWNvb3JkaW5hdGVzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkQ29vcmRpbmF0ZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIGZvcm1hdHRlZFNjYWxlJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcclxuICBwdWJsaWMgcHJvamVjdGlvbnMkOiBCZWhhdmlvclN1YmplY3Q8SW5wdXRQcm9qZWN0aW9uc1tdPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xyXG4gIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgcHVibGljIGNvb3JkaW5hdGVzOiBzdHJpbmdbXTtcclxuICBwcml2YXRlIGN1cnJlbnRDZW50ZXJEZWZhdWx0UHJvajogW251bWJlciwgbnVtYmVyXTtcclxuICBwdWJsaWMgY2VudGVyOiBib29sZWFuID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXQoJ2NlbnRlclRvZ2dsZScpIGFzIGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBpbk10bVpvbmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByaXZhdGUgaW5MYW1iZXJ0MiA9IHszMjE5ODogdHJ1ZSwgMzc5ODogdHJ1ZX07XHJcbiAgcHJpdmF0ZSBtYXBTdGF0ZSQkOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBfcHJvamVjdGlvbnNMaW1pdGF0aW9uczogUHJvamVjdGlvbnNMaW1pdGF0aW9uc09wdGlvbnMgPSB7fTtcclxuICBwcml2YXRlIHByb2plY3Rpb25zQ29uc3RyYWludHM6IFByb2plY3Rpb25zTGltaXRhdGlvbnNPcHRpb25zO1xyXG4gIHByaXZhdGUgZGVmYXVsdFByb2o6IElucHV0UHJvamVjdGlvbnMgPSB7XHJcbiAgICB0cmFuc2xhdGVkVmFsdWU6IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmltcG9ydEV4cG9ydEZvcm0ucHJvamVjdGlvbnMud2dzODQnLCB7IGNvZGU6ICdFUFNHOjQzMjYnIH0pLFxyXG4gICAgdHJhbnNsYXRlS2V5OiAnd2dzODQnLCBhbGlhczogJ1dHUzg0JywgY29kZTogJ0VQU0c6NDMyNicsIHpvbmU6ICcnXHJcbiAgfTtcclxuICBwcml2YXRlIGN1cnJlbnRab25lcyA9IHsgdXRtOiB1bmRlZmluZWQsIG10bTogdW5kZWZpbmVkIH07XHJcbiAgcHVibGljIHVuaXRzOiBib29sZWFuID0gdHJ1ZTtcclxuICBnZXQgbWFwKCk6IElnb01hcCB7XHJcbiAgICByZXR1cm4gdGhpcy5tYXBTdGF0ZS5tYXA7XHJcbiAgfVxyXG5cclxuICBnZXQgaW5wdXRQcm9qKCk6IElucHV0UHJvamVjdGlvbnMge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2lucHV0UHJvaicpLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgaW5wdXRQcm9qKHZhbHVlOiBJbnB1dFByb2plY3Rpb25zKSB7XHJcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IGlucHV0UHJvajogdmFsdWUgfSk7XHJcbiAgfVxyXG4gIGdldCBwcm9qZWN0aW9uc0xpbWl0YXRpb25zKCk6IFByb2plY3Rpb25zTGltaXRhdGlvbnNPcHRpb25zIHtcclxuICAgIHJldHVybiB0aGlzLl9wcm9qZWN0aW9uc0xpbWl0YXRpb25zIHx8IHt9O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgcHJvamVjdGlvbnNMaW1pdGF0aW9ucyh2YWx1ZTogUHJvamVjdGlvbnNMaW1pdGF0aW9uc09wdGlvbnMpIHtcclxuICAgIHRoaXMuX3Byb2plY3Rpb25zTGltaXRhdGlvbnMgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG1hcFN0YXRlOiBNYXBTdGF0ZSxcclxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICAgIHRoaXMuY29tcHV0ZVByb2plY3Rpb25zKCk7XHJcbiAgICAgIHRoaXMuYnVpbGRGb3JtKCk7XHJcbiAgICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3RlbiBhIHN0YXRlIG9mIHRoZSBtYXAsIGEgc3RhdGUgb2YgYSBmb3JtLCB1cGRhdGUgdGhlIGNvb3JkaW5hdGVzXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1hcFN0YXRlJCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLm1hcC52aWV3Q29udHJvbGxlci5zdGF0ZSQucGlwZShkZWJvdW5jZVRpbWUoNTApKSwgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlc10pXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0U2NhbGVWYWx1ZSh0aGlzLm1hcCk7XHJcbiAgICAgIHRoaXMuY3VycmVudENlbnRlckRlZmF1bHRQcm9qID0gdGhpcy5tYXAudmlld0NvbnRyb2xsZXIuZ2V0Q2VudGVyKHRoaXMuZGVmYXVsdFByb2ouY29kZSk7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRNdG1ab25lID0gem9uZU10bSh0aGlzLmN1cnJlbnRDZW50ZXJEZWZhdWx0UHJvalswXSk7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRVdG1ab25lID0gem9uZVV0bSh0aGlzLmN1cnJlbnRDZW50ZXJEZWZhdWx0UHJvalswXSk7XHJcbiAgICAgIGlmICghdGhpcy5pbk10bVpvbmUgJiYgY3VycmVudE10bVpvbmUgIT09IHRoaXMuY3VycmVudFpvbmVzLm10bSkge1xyXG4gICAgICAgIHRoaXMuYmFjazJxdWViZWMoKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgem9uZUNoYW5nZSA9IGZhbHNlO1xyXG4gICAgICBpZiAoY3VycmVudE10bVpvbmUgIT09IHRoaXMuY3VycmVudFpvbmVzLm10bSkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFpvbmVzLm10bSA9IGN1cnJlbnRNdG1ab25lO1xyXG4gICAgICAgIHpvbmVDaGFuZ2UgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjdXJyZW50VXRtWm9uZSAhPT0gdGhpcy5jdXJyZW50Wm9uZXMudXRtKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50Wm9uZXMudXRtID0gY3VycmVudFV0bVpvbmU7XHJcbiAgICAgICAgem9uZUNoYW5nZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHpvbmVDaGFuZ2UpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVByb2plY3Rpb25zWm9uZUNoYW5nZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tMYW1iZXJ0KHRoaXMuY3VycmVudENlbnRlckRlZmF1bHRQcm9qKTtcclxuICAgICAgdGhpcy5jb29yZGluYXRlcyA9IHRoaXMuZ2V0Q29vcmRpbmF0ZXMoKTtcclxuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0KCdjdXJyZW50UHJvamVjdGlvbicsIHRoaXMuaW5wdXRQcm9qLCBTdG9yYWdlU2NvcGUuU0VTU0lPTik7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCB0ZW1wSW5wdXRQcm9qID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXQoJ2N1cnJlbnRQcm9qZWN0aW9uJykgYXMgSW5wdXRQcm9qZWN0aW9ucztcclxuICAgIHRoaXMuaW5wdXRQcm9qID0gdGhpcy5wcm9qZWN0aW9ucyQudmFsdWVbMF07XHJcbiAgICBpZiAodGVtcElucHV0UHJvaiAhPT0gbnVsbClcclxuICAgIHtcclxuICAgICAgY29uc3QgcG9zID0gdGhpcy5wb3NpdGlvbkluTGlzdCh0ZW1wSW5wdXRQcm9qKTtcclxuICAgICAgdGhpcy5pbnB1dFByb2ogPSB0aGlzLnByb2plY3Rpb25zJC52YWx1ZVtwb3NdO1xyXG4gICAgICB0aGlzLnVwZGF0ZVpvbmVNdG1VdG0oKTtcclxuICAgIH1cclxuICAgIHRoaXMubWFwLm1hcENlbnRlciQubmV4dCh0aGlzLmNlbnRlcik7XHJcbiAgICB0aGlzLmNvb3JkaW5hdGVzID0gdGhpcy5nZXRDb29yZGluYXRlcygpO1xyXG4gICAgdGhpcy5jdXJyZW50Q2VudGVyRGVmYXVsdFByb2ogPSB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5nZXRDZW50ZXIodGhpcy5kZWZhdWx0UHJvai5jb2RlKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5tYXAubWFwQ2VudGVyJC5uZXh0KGZhbHNlKTtcclxuICAgIHRoaXMubWFwU3RhdGUkJC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0U2NhbGVWYWx1ZShtYXA6IElnb01hcCkge1xyXG4gICAgdGhpcy5mb3JtYXR0ZWRTY2FsZSQubmV4dCgnOiB+IDEgLyAnICsgZm9ybWF0U2NhbGUobWFwLnZpZXdDb250cm9sbGVyLmdldFNjYWxlKCkpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ29vcmRpbmF0ZXMgb2YgdGhlIGNlbnRlciBvZiB0aGUgbWFwIG9uIHRoZSBhcHByb3ByaWF0ZSBzeXN0ZW1lIG9mIGNvb3JkaW5hdGVzXHJcbiAgICogQHJldHVybnMgQXJyYXkgb2YgdHdvIG51bWJlcnNcclxuICAgKi9cclxuICBnZXRDb29yZGluYXRlcygpOiBzdHJpbmdbXSB7XHJcbiAgICB0aGlzLmN1cnJlbnRab25lcy5tdG0gPSB6b25lTXRtKHRoaXMuY3VycmVudENlbnRlckRlZmF1bHRQcm9qWzBdKTtcclxuICAgIHRoaXMuY3VycmVudFpvbmVzLnV0bSA9IHpvbmVVdG0odGhpcy5jdXJyZW50Q2VudGVyRGVmYXVsdFByb2pbMF0pO1xyXG4gICAgbGV0IGNvb3JkO1xyXG4gICAgY29uc3QgY29kZSA9IHRoaXMuaW5wdXRQcm9qLmNvZGU7XHJcbiAgICBsZXQgZGVjaW1hbCA9IDI7XHJcbiAgICBpZiAoY29kZS5pbmNsdWRlcygnRVBTRzo0MzI2JykgfHwgY29kZS5pbmNsdWRlcygnRVBTRzo0MjY5JykpIHtcclxuICAgICAgZGVjaW1hbCA9IDU7XHJcbiAgICB9XHJcbiAgICB0aGlzLnVuaXRzID0gKGNvZGUgPT09ICdFUFNHOjQzMjYnIHx8IGNvZGUgPT09ICdFUFNHOjQyNjknKTtcclxuICAgIGNvb3JkID0gdGhpcy5tYXAudmlld0NvbnRyb2xsZXIuZ2V0Q2VudGVyKGNvZGUpLm1hcChjID0+IGMudG9GaXhlZChkZWNpbWFsKSk7XHJcbiAgICByZXR1cm4gY29vcmQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb3B5IHRoZSBjb29yZGluYXRlcyB0byBhIGNsaXBib2FyZFxyXG4gICAqL1xyXG4gIGNvcHlUZXh0VG9DbGlwYm9hcmQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdWNjZXNzZnVsID0gQ2xpcGJvYXJkLmNvcHkodGhpcy5jb29yZGluYXRlcy50b1N0cmluZygpKTtcclxuICAgIGlmIChzdWNjZXNzZnVsKSB7XHJcbiAgICAgIGNvbnN0IHRyYW5zbGF0ZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZTtcclxuICAgICAgY29uc3QgdGl0bGUgPSB0cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAnaWdvLmludGVncmF0aW9uLmFkdmFuY2VkLW1hcC10b29sLmFkdmFuY2VkLWNvb3JkaW5hdGVzLmNvcHlUaXRsZSdcclxuICAgICAgKTtcclxuICAgICAgY29uc3QgbXNnID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5pbnRlZ3JhdGlvbi5hZHZhbmNlZC1tYXAtdG9vbC5hZHZhbmNlZC1jb29yZGluYXRlcy5jb3B5TXNnJyk7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2Uuc3VjY2Vzcyhtc2csIHRpdGxlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BsYXkgYSBjdXJzb3Igb24gdGhlIGNlbnRlciBvZiB0aGUgbWFwXHJcbiAgICovXHJcbiAgZGlzcGxheUNlbnRlcih0b2dnbGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuY2VudGVyID0gdG9nZ2xlO1xyXG4gICAgdGhpcy5tYXAubWFwQ2VudGVyJC5uZXh0KHRvZ2dsZSk7XHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldCgnY2VudGVyVG9nZ2xlJywgdG9nZ2xlLCBTdG9yYWdlU2NvcGUuU0VTU0lPTik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWlsZGVyIG9mIHRoZSBmb3JtXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBidWlsZEZvcm0oKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgaW5wdXRQcm9qOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIGxpc3Qgb2YgcHJvamVjdGlvbnMgYWZ0ZXIgY2hhbmdpbmcgb2YgdGhlIHN0YXRlIG9mIHRoZSBtYXBcclxuICAgKi9cclxuICBwcml2YXRlIHVwZGF0ZVByb2plY3Rpb25zWm9uZUNoYW5nZSgpOiB2b2lkIHtcclxuICAgIGxldCBtb2RpZmllZFByb2ogPSB0aGlzLnByb2plY3Rpb25zJC52YWx1ZTtcclxuICAgIGNvbnN0IHRyYW5zbGF0ZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZTtcclxuICAgIG1vZGlmaWVkUHJvai5tYXAocCA9PiB7XHJcbiAgICAgIGlmIChwLnRyYW5zbGF0ZUtleSA9PT0gJ210bScpIHtcclxuICAgICAgICBjb25zdCB6b25lID0gem9uZU10bSh0aGlzLmN1cnJlbnRDZW50ZXJEZWZhdWx0UHJvalswXSk7XHJcbiAgICAgICAgaWYgKHpvbmUpIHtcclxuICAgICAgICAgIGNvbnN0IGNvZGUgPSB6b25lIDwgMTAgPyBgRVBTRzozMjE4JHt6b25lfWAgOiBgRVBTRzozMjEkezgwICsgem9uZX1gO1xyXG4gICAgICAgICAgcC5hbGlhcyA9IGBNVE0gJHt6b25lfWA7XHJcbiAgICAgICAgICBwLmNvZGUgPSBjb2RlO1xyXG4gICAgICAgICAgcC56b25lID0gYCR7em9uZX1gO1xyXG4gICAgICAgICAgcC50cmFuc2xhdGVkVmFsdWUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5pbXBvcnRFeHBvcnRGb3JtLnByb2plY3Rpb25zLm10bScsIHApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHAuYWxpYXMgPSAnJztcclxuICAgICAgICAgIHRoaXMuaW5NdG1ab25lID0gZmFsc2U7XHJcbiAgICAgICAgICBpZiAodGhpcy5pbnB1dFByb2oudHJhbnNsYXRlS2V5ID09PSAnbXRtJykge1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0UHJvaiA9IHRoaXMucHJvamVjdGlvbnMkLnZhbHVlWzBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAocC50cmFuc2xhdGVLZXkgPT09ICd1dG0nKSB7XHJcbiAgICAgICAgY29uc3Qgem9uZSA9IHpvbmVVdG0odGhpcy5jdXJyZW50Q2VudGVyRGVmYXVsdFByb2pbMF0pO1xyXG4gICAgICAgIGNvbnN0IGNvZGUgPSBgRVBTRzozMjYke3pvbmV9YDtcclxuICAgICAgICBwLmFsaWFzID0gYFVUTSAke3pvbmV9YDtcclxuICAgICAgICBwLmNvZGUgPSBjb2RlO1xyXG4gICAgICAgIHAuem9uZSA9IGAke3pvbmV9YDtcclxuICAgICAgICBwLnRyYW5zbGF0ZWRWYWx1ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmltcG9ydEV4cG9ydEZvcm0ucHJvamVjdGlvbnMudXRtJywgcCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgbW9kaWZpZWRQcm9qID0gbW9kaWZpZWRQcm9qLmZpbHRlcihwID0+IHAuYWxpYXMgIT09ICcnKTtcclxuICAgIHRoaXMucHJvamVjdGlvbnMkLm5leHQobW9kaWZpZWRQcm9qKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhIGxpc3Qgb2YgY3VycmVudHMgcHJvamVjdGlvbnNcclxuICAgKi9cclxuICBwcml2YXRlIGNvbXB1dGVQcm9qZWN0aW9ucygpOiB2b2lkIHtcclxuICAgIHRoaXMucHJvamVjdGlvbnNDb25zdHJhaW50cyA9IGNvbXB1dGVQcm9qZWN0aW9uc0NvbnN0cmFpbnRzKHRoaXMucHJvamVjdGlvbnNMaW1pdGF0aW9ucyk7XHJcbiAgICBjb25zdCBwcm9qZWN0aW9uczogSW5wdXRQcm9qZWN0aW9uc1tdID0gW107XHJcblxyXG4gICAgaWYgKCF0aGlzLmN1cnJlbnRDZW50ZXJEZWZhdWx0UHJvaikge1xyXG4gICAgICB0aGlzLmN1cnJlbnRDZW50ZXJEZWZhdWx0UHJvaiA9IHRoaXMubWFwLnZpZXdDb250cm9sbGVyLmdldENlbnRlcih0aGlzLmRlZmF1bHRQcm9qLmNvZGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHRyYW5zbGF0ZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZTtcclxuICAgIGlmICh0aGlzLnByb2plY3Rpb25zQ29uc3RyYWludHMud2dzODQpIHtcclxuICAgICAgcHJvamVjdGlvbnMucHVzaCh7XHJcbiAgICAgICAgdHJhbnNsYXRlZFZhbHVlOiB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5pbXBvcnRFeHBvcnRGb3JtLnByb2plY3Rpb25zLndnczg0JywgeyBjb2RlOiAnRVBTRzo0MzI2JyB9KSxcclxuICAgICAgICB0cmFuc2xhdGVLZXk6ICd3Z3M4NCcsIGFsaWFzOiAnV0dTODQnLCBjb2RlOiAnRVBTRzo0MzI2Jywgem9uZTogJydcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMucHJvamVjdGlvbnNDb25zdHJhaW50cy5uYWQ4Mykge1xyXG4gICAgICBwcm9qZWN0aW9ucy5wdXNoKHtcclxuICAgICAgICB0cmFuc2xhdGVkVmFsdWU6IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmltcG9ydEV4cG9ydEZvcm0ucHJvamVjdGlvbnMubmFkODMnLCB7IGNvZGU6ICdFUFNHOjQyNjknIH0pLFxyXG4gICAgICAgIHRyYW5zbGF0ZUtleTogJ25hZDgzJywgYWxpYXM6ICdOQUQ4MycsIGNvZGU6ICdFUFNHOjQyNjknLCB6b25lOiAnJ1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5wcm9qZWN0aW9uc0NvbnN0cmFpbnRzLndlYk1lcmNhdG9yKSB7XHJcbiAgICAgIHByb2plY3Rpb25zLnB1c2goe1xyXG4gICAgICAgIHRyYW5zbGF0ZWRWYWx1ZTogdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uaW1wb3J0RXhwb3J0Rm9ybS5wcm9qZWN0aW9ucy53ZWJNZXJjYXRvcicsIHsgY29kZTogJ0VQU0c6Mzg1NycgfSksXHJcbiAgICAgICAgdHJhbnNsYXRlS2V5OiAnd2ViTWVyY2F0b3InLCBhbGlhczogJ1dlYiBNZXJjYXRvcicsIGNvZGU6ICdFUFNHOjM4NTcnLCB6b25lOiAnJ1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnByb2plY3Rpb25zQ29uc3RyYWludHMubXRtKSB7XHJcbiAgICAgIC8vIFF1ZWJlY1xyXG4gICAgICBjb25zdCB6b25lID0gem9uZU10bSh0aGlzLmN1cnJlbnRDZW50ZXJEZWZhdWx0UHJvalswXSk7XHJcbiAgICAgIGlmICh6b25lKSB7XHJcbiAgICAgICAgdGhpcy5pbk10bVpvbmUgPSB0cnVlO1xyXG4gICAgICAgIGNvbnN0IGNvZGUgPSB6b25lIDwgMTAgPyBgRVBTRzozMjE4JHt6b25lfWAgOiBgRVBTRzozMjEkezgwICsgem9uZX1gO1xyXG4gICAgICAgIHByb2plY3Rpb25zLnNwbGljZSgzLCAwLCB7XHJcbiAgICAgICAgICB0cmFuc2xhdGVkVmFsdWU6IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmltcG9ydEV4cG9ydEZvcm0ucHJvamVjdGlvbnMubXRtJywgeyBjb2RlLCB6b25lIH0pLFxyXG4gICAgICAgICAgdHJhbnNsYXRlS2V5OiAnbXRtJywgYWxpYXM6IGBNVE0gJHt6b25lfWAsIGNvZGUsIHpvbmU6IGAke3pvbmV9YFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaW5NdG1ab25lID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnByb2plY3Rpb25zQ29uc3RyYWludHMudXRtKSB7XHJcbiAgICAgIGNvbnN0IG9yZGVyID0gdGhpcy5pbk10bVpvbmUgPyA0IDogMztcclxuICAgICAgY29uc3Qgem9uZSA9IHpvbmVVdG0odGhpcy5jdXJyZW50Q2VudGVyRGVmYXVsdFByb2pbMF0pO1xyXG4gICAgICBjb25zdCBjb2RlID0gem9uZSA8IDEwID8gYEVQU0c6MzI2MCR7em9uZX1gIDogYEVQU0c6MzI2JHt6b25lfWA7XHJcbiAgICAgIHByb2plY3Rpb25zLnNwbGljZShvcmRlciwgMCwge1xyXG4gICAgICAgIHRyYW5zbGF0ZWRWYWx1ZTogdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uaW1wb3J0RXhwb3J0Rm9ybS5wcm9qZWN0aW9ucy51dG0nLCB7IGNvZGUsIHpvbmUgfSksXHJcbiAgICAgICAgdHJhbnNsYXRlS2V5OiAndXRtJywgYWxpYXM6IGBVVE0gJHt6b25lfWAsIGNvZGUsIHpvbmU6IGAke3pvbmV9YFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGxldCBjb25maWdQcm9qZWN0aW9uID0gW107XHJcbiAgICBpZiAodGhpcy5wcm9qZWN0aW9uc0NvbnN0cmFpbnRzLnByb2pGcm9tQ29uZmlnKSB7XHJcbiAgICAgIGNvbmZpZ1Byb2plY3Rpb24gPSB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ3Byb2plY3Rpb25zJykgfHwgW107XHJcbiAgICB9XHJcbiAgICB0aGlzLnByb2plY3Rpb25zJC5uZXh0KHByb2plY3Rpb25zLmNvbmNhdChjb25maWdQcm9qZWN0aW9uKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQdXNoIHRoZSBNVE0gaW4gdGhlIGFycmF5IG9mIHN5c3RlbWUgb2YgY29vcmRpbmF0ZXNcclxuICAgKiBAcGFyYW0gcHJvamVjdGlvbnMgQXJyYXkgb2YgdGhlIElucHV0UHJvamVjdGlvbnNcclxuICAgKi9cclxuICBwcml2YXRlIHB1c2hNdG0ocHJvamVjdGlvbnM6IEFycmF5PElucHV0UHJvamVjdGlvbnM+KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5wcm9qZWN0aW9uc0NvbnN0cmFpbnRzLm10bSkge1xyXG4gICAgICBjb25zdCB6b25lID0gem9uZU10bSh0aGlzLmN1cnJlbnRDZW50ZXJEZWZhdWx0UHJvalswXSk7XHJcbiAgICAgIGNvbnN0IGNvZGUgPSB6b25lIDwgMTAgPyBgRVBTRzozMjE4JHt6b25lfWAgOiBgRVBTRzozMjEkezgwICsgem9uZX1gO1xyXG4gICAgICBwcm9qZWN0aW9ucy5zcGxpY2UoMywgMCwge1xyXG4gICAgICAgICAgdHJhbnNsYXRlZFZhbHVlOiB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5pbXBvcnRFeHBvcnRGb3JtLnByb2plY3Rpb25zLm10bScsIHsgY29kZSwgem9uZSB9KSxcclxuICAgICAgICAgIHRyYW5zbGF0ZUtleTogJ210bScsIGFsaWFzOiBgTVRNICR7em9uZX1gLCBjb2RlLCB6b25lOiBgJHt6b25lfWB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGxpc3Qgb2Ygc3lzdGVtcyBvZiBjb29yZGluYXRlcyBmb3IgdGVycml0b3J5IG9mIFF1ZWJlY1xyXG4gICAqIHB1c2ggTVRNIGFuZCBVVE0gaW4gdGhlIEFycmF5XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBiYWNrMnF1ZWJlYygpOiB2b2lkIHtcclxuICAgIGNvbnN0IHByb2plY3Rpb25zID0gdGhpcy5wcm9qZWN0aW9ucyQudmFsdWU7XHJcbiAgICB0aGlzLnB1c2hNdG0ocHJvamVjdGlvbnMpO1xyXG4gICAgdGhpcy5pbk10bVpvbmUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIHRoZSBudW1iZXJzIG9mIHRoZSB6b25lcyB3aGVuIGFwcGxpY2F0aW9uIGlzIHJlc3RhcnRlZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgdXBkYXRlWm9uZU10bVV0bSgpIHtcclxuICAgIGlmICh0aGlzLmlucHV0UHJvai50cmFuc2xhdGVLZXkgPT09ICdtdG0nKSB7XHJcbiAgICAgIGNvbnN0IHpvbmUgPSB6b25lTXRtKHRoaXMuY3VycmVudENlbnRlckRlZmF1bHRQcm9qWzBdKTtcclxuICAgICAgdGhpcy5pbnB1dFByb2ouYWxpYXMgPSBgTVRNICR7em9uZX1gO1xyXG4gICAgICBjb25zdCBjb2RlID0gem9uZSA8IDEwID8gYEVQU0c6MzIxOCR7em9uZX1gIDogYEVQU0c6MzIxJHs4MCArIHpvbmV9YDtcclxuICAgICAgdGhpcy5pbnB1dFByb2ouY29kZSA9IGNvZGU7XHJcbiAgICAgIHRoaXMuaW5wdXRQcm9qLnpvbmUgPSBgJHt6b25lfWA7XHJcbiAgICAgIHRoaXMuaW5wdXRQcm9qLnRyYW5zbGF0ZWRWYWx1ZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmltcG9ydEV4cG9ydEZvcm0ucHJvamVjdGlvbnMubXRtJywgeyBjb2RlLCB6b25lIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaW5wdXRQcm9qLnRyYW5zbGF0ZUtleSA9PT0gJ3V0bScpIHtcclxuICAgICAgY29uc3Qgem9uZSA9IHpvbmVVdG0odGhpcy5jdXJyZW50Q2VudGVyRGVmYXVsdFByb2pbMF0pO1xyXG4gICAgICB0aGlzLmlucHV0UHJvai5hbGlhcyA9IGBVVE0gJHt6b25lfWA7XHJcbiAgICAgIGNvbnN0IGNvZGUgPSB6b25lIDwgMTAgPyBgRVBTRzozMjYwJHt6b25lfWAgOiBgRVBTRzozMjYke3pvbmV9YDtcclxuICAgICAgdGhpcy5pbnB1dFByb2ouY29kZSA9IGNvZGU7XHJcbiAgICAgIHRoaXMuaW5wdXRQcm9qLnpvbmUgPSBgJHt6b25lfWA7XHJcbiAgICAgIHRoaXMuaW5wdXRQcm9qLnRyYW5zbGF0ZWRWYWx1ZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmltcG9ydEV4cG9ydEZvcm0ucHJvamVjdGlvbnMudXRtJywgeyBjb2RlLCB6b25lIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29tcHV0ZSB0aGUgcG9zaXRpb24gb2YgYSBjdXJyZW50IHByb2plY3Rpb24gaW4gYSBsaXN0LiAwIGlmIHRoZSBwcm9qZWN0aW9uIGlzIG5vdCBpbiB0aGUgbGlzdFxyXG4gICAqIEBwYXJhbSB0cmFuc2xhdGVLZXkgc3RyaW5nLCB0cmFuc2xhdGUga2V5IG9mIGEgcHJvamVjdGlvblxyXG4gICAqIEByZXR1cm5zIG51bWVyaWMsIHBvc2l0aW9uIG9mIGFuIGVsZW1lbnQgaW4gdGhlIGFycmF5XHJcbiAgICovXHJcbiAgcG9zaXRpb25Jbkxpc3QodGVtcElucHV0UHJvajogSW5wdXRQcm9qZWN0aW9ucyk6IG51bWJlciB7XHJcbiAgICBjb25zdCB0ayA9IHRlbXBJbnB1dFByb2oudHJhbnNsYXRlS2V5O1xyXG4gICAgY29uc3QgYWxpYXMgPSB0ZW1wSW5wdXRQcm9qLmFsaWFzO1xyXG4gICAgbGV0IHBvc2l0aW9uOyAvLyA9IHVuZGVmaW5lZDtcclxuICAgIGxldCBpdGVyID0gMDtcclxuICAgIHRoaXMucHJvamVjdGlvbnMkLnZhbHVlLm1hcCgocHJvamVjdGlvbikgPT4ge1xyXG4gICAgICBpZiAodGspIHtcclxuICAgICAgICBpZiAodGsgPT09IHByb2plY3Rpb24udHJhbnNsYXRlS2V5KSB7XHJcbiAgICAgICAgICBwb3NpdGlvbiA9IGl0ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGFsaWFzID09PSBwcm9qZWN0aW9uLmFsaWFzKSB7XHJcbiAgICAgICAgcG9zaXRpb24gPSBpdGVyO1xyXG4gICAgICB9XHJcbiAgICAgIGl0ZXIrKztcclxuICAgIH0pO1xyXG4gICAgcG9zaXRpb24gPSBwb3NpdGlvbiA/IHBvc2l0aW9uIDogMDtcclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoYW5nZSB0aGUgbGlzdCBvZiBwcm9qZWN0aW9ucyBkZXBlbmRpbmcgb24gdGhlIHByb2plY3Rpb25zIG9mIExhbWJlcnRcclxuICAgKiBAcGFyYW0gY29vcmRpbmF0ZXMgQW4gYXJyYXkgb2YgbnVtYmVycywgbG9uZ2l0dWRlIGFuZCBsYXRpdHVkZVxyXG4gICAqL1xyXG4gIGNoZWNrTGFtYmVydChjb29yZGluYXRlczogW251bWJlciwgbnVtYmVyXSkge1xyXG4gICAgY29uc3QgbGFtYmVydFByb2plY3Rpb25zID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdwcm9qZWN0aW9ucycpO1xyXG4gICAgbGFtYmVydFByb2plY3Rpb25zLmZvckVhY2gocHJvamVjdGlvbiA9PiB7XHJcbiAgICAgICAgbGV0IG1vZGlmaWVkUHJvaiA9IHRoaXMucHJvamVjdGlvbnMkLnZhbHVlO1xyXG4gICAgICAgIGNvbnN0IGV4dGVudCA9IHByb2plY3Rpb24uZXh0ZW50O1xyXG4gICAgICAgIGNvbnN0IGNvZGUgPSBwcm9qZWN0aW9uLmNvZGUubWF0Y2goL1xcZCsvKTtcclxuICAgICAgICBjb25zdCBjdXJyZW50RXh0ZW50V0dTID0gb2xwcm9qLnRyYW5zZm9ybUV4dGVudChleHRlbnQsIHByb2plY3Rpb24uY29kZSwgdGhpcy5kZWZhdWx0UHJvai5jb2RlKTtcclxuICAgICAgICBpZiAoY29vcmRpbmF0ZXNbMF0gPCBjdXJyZW50RXh0ZW50V0dTWzBdIHx8IGNvb3JkaW5hdGVzWzBdID4gY3VycmVudEV4dGVudFdHU1syXSB8fFxyXG4gICAgICAgICAgICBjb29yZGluYXRlc1sxXSA8IGN1cnJlbnRFeHRlbnRXR1NbMV0gfHwgY29vcmRpbmF0ZXNbMV0gPiBjdXJyZW50RXh0ZW50V0dTWzNdKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5MYW1iZXJ0Mltjb2RlXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pbnB1dFByb2ouYWxpYXMgPT09IHByb2plY3Rpb24uYWxpYXMpIHtcclxuICAgICAgICAgICAgICB0aGlzLmlucHV0UHJvaiA9IHRoaXMucHJvamVjdGlvbnMkLnZhbHVlWzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG1vZGlmaWVkUHJvaiA9IG1vZGlmaWVkUHJvai5maWx0ZXIocCA9PiBwLmFsaWFzICE9PSBwcm9qZWN0aW9uLmFsaWFzKTtcclxuICAgICAgICAgICAgdGhpcy5wcm9qZWN0aW9ucyQubmV4dChtb2RpZmllZFByb2opO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmluTGFtYmVydDJbY29kZV0pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvamVjdGlvbnMkLm5leHQobW9kaWZpZWRQcm9qLmNvbmNhdChwcm9qZWN0aW9uKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluTGFtYmVydDJbY29kZV0gPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtZm9ybS1maWVsZCAqbmdJZj1cInVuaXRzOyBlbHNlIGVsc2VCbG9ja1wiIGNsYXNzPVwiY29vcmRpbmF0ZXNcIj5cclxuICAgIDx0ZXh0YXJlYSAgI3RleHRBcmVhIG1hdElucHV0IHJlYWRvbmx5IHJvd3M9XCIxXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cIidpZ28uaW50ZWdyYXRpb24uYWR2YW5jZWQtbWFwLXRvb2wuYWR2YW5jZWQtY29vcmRpbmF0ZXMubG9uJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgIFt2YWx1ZV09XCJjb29yZGluYXRlc1swXVwiPjwvdGV4dGFyZWE+XHJcbjwvbWF0LWZvcm0tZmllbGQ+XHJcbjxuZy10ZW1wbGF0ZSAjZWxzZUJsb2NrID5cclxuICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJjb29yZGluYXRlc1wiPlxyXG4gICAgPHRleHRhcmVhICN0ZXh0QXJlYSBtYXRJbnB1dCByZWFkb25seSByb3dzPVwiMVwiXHJcbiAgW3BsYWNlaG9sZGVyXT1cIidpZ28uaW50ZWdyYXRpb24uYWR2YW5jZWQtbWFwLXRvb2wuYWR2YW5jZWQtY29vcmRpbmF0ZXMuZXN0JyB8IHRyYW5zbGF0ZVwiXHJcbiAgW3ZhbHVlXT1cImNvb3JkaW5hdGVzWzBdXCI+PC90ZXh0YXJlYT48L21hdC1mb3JtLWZpZWxkPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwidW5pdHM7IGVsc2UgZWxzZUJsb2NrMlwiIGNsYXNzPVwiY29vcmRpbmF0ZXMyXCI+XHJcbiAgICA8dGV4dGFyZWEgI3RleHRBcmVhIG1hdElucHV0IHJlYWRvbmx5IHJvd3M9XCIxXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cIidpZ28uaW50ZWdyYXRpb24uYWR2YW5jZWQtbWFwLXRvb2wuYWR2YW5jZWQtY29vcmRpbmF0ZXMubGF0JyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgIFt2YWx1ZV09XCJjb29yZGluYXRlc1sxXVwiPjwvdGV4dGFyZWE+XHJcbjwvbWF0LWZvcm0tZmllbGQ+XHJcbjxuZy10ZW1wbGF0ZSAjZWxzZUJsb2NrMiA+XHJcbiAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiY29vcmRpbmF0ZXMyXCI+ICA8dGV4dGFyZWEgI3RleHRBcmVhIG1hdElucHV0IHJlYWRvbmx5IHJvd3M9XCIxXCJcclxuICBbcGxhY2Vob2xkZXJdPVwiJ2lnby5pbnRlZ3JhdGlvbi5hZHZhbmNlZC1tYXAtdG9vbC5hZHZhbmNlZC1jb29yZGluYXRlcy5ub3JkJyB8IHRyYW5zbGF0ZVwiXHJcbiAgW3ZhbHVlXT1cImNvb3JkaW5hdGVzWzFdXCI+PC90ZXh0YXJlYT48L21hdC1mb3JtLWZpZWxkPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPGJ1dHRvbiBjbGFzcz1cImlnby1mb3JtLWJ1dHRvbi1ncm91cFwiXHJcbiAgICBtYXQtcmFpc2VkLWJ1dHRvblxyXG4gICAgKGNsaWNrKT1cImNvcHlUZXh0VG9DbGlwYm9hcmQoKVwiPlxyXG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJjb250ZW50LWNvcHlcIj48L21hdC1pY29uPlxyXG4gICAge3sgJ2lnby5pbnRlZ3JhdGlvbi5hZHZhbmNlZC1tYXAtdG9vbC5hZHZhbmNlZC1jb29yZGluYXRlcy5jb3B5JyB8IHRyYW5zbGF0ZSB9fVxyXG48L2J1dHRvbj5cclxuXHJcbjxmb3JtIGNsYXNzPVwiaWdvLWZvcm1cIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cclxuICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LWxhYmVsPnt7J2lnby5pbnRlZ3JhdGlvbi5hZHZhbmNlZC1tYXAtdG9vbC5hZHZhbmNlZC1jb29yZGluYXRlcy5jb29yZFN5c3RlbScgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgPG1hdC1zZWxlY3QgWyh2YWx1ZSldPVwiaW5wdXRQcm9qXCI+XHJcbiAgICAgIDxtYXQtb3B0aW9uIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBwcm9qZWN0aW9uIG9mIChwcm9qZWN0aW9ucyQgfCBhc3luYylcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJwcm9qZWN0aW9uXCJcclxuICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICAgICAge3twcm9qZWN0aW9uLnRyYW5zbGF0ZWRWYWx1ZSB8fCBwcm9qZWN0aW9uLmFsaWFzIH19XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgIDwvbWF0LXNlbGVjdD5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDxtYXQtc2xpZGUtdG9nZ2xlIGNsYXNzPVwiY2VudGVyLXRvZ2dsZSBtYXQtdHlwb2dyYXBoeVwiXHJcbiAgICBbY2hlY2tlZF09XCJjZW50ZXJcIlxyXG4gICAgW2xhYmVsUG9zaXRpb25dPVwiJ2JlZm9yZSdcIlxyXG4gICAgKGNoYW5nZSk9XCJkaXNwbGF5Q2VudGVyKCRldmVudC5jaGVja2VkKVwiPlxyXG4gICAge3snaWdvLmludGVncmF0aW9uLmFkdmFuY2VkLW1hcC10b29sLmFkdmFuY2VkLWNvb3JkaW5hdGVzLmNlbnRlcicgfCB0cmFuc2xhdGV9fVxyXG4gIDwvbWF0LXNsaWRlLXRvZ2dsZT4gXHJcbjwvZm9ybT5cclxuXHJcbjxwIGNsYXNzPVwiaWdvLXpvb20gbWF0LXR5cG9ncmFwaHlcIj57eydpZ28uaW50ZWdyYXRpb24uYWR2YW5jZWQtbWFwLXRvb2wuYWR2YW5jZWQtY29vcmRpbmF0ZXMuem9vbScgfCB0cmFuc2xhdGV9fSB7e21hcC52aWV3Q29udHJvbGxlci5nZXRab29tKCkgfX08L3A+XHJcbjxwIGNsYXNzPVwiaWdvLXpvb20gbWF0LXR5cG9ncmFwaHlcIj57eydpZ28uaW50ZWdyYXRpb24uYWR2YW5jZWQtbWFwLXRvb2wuYWR2YW5jZWQtY29vcmRpbmF0ZXMuc2NhbGUnIHwgdHJhbnNsYXRlfX0ge3sgZm9ybWF0dGVkU2NhbGUkIHwgYXN5bmMgfX08L3A+XHJcbjxwIGNsYXNzPVwiaWdvLXpvb20gbWF0LXR5cG9ncmFwaHlcIj57eydpZ28uaW50ZWdyYXRpb24uYWR2YW5jZWQtbWFwLXRvb2wuYWR2YW5jZWQtY29vcmRpbmF0ZXMucmVzb2x1dGlvbicgfCB0cmFuc2xhdGV9fSB7e21hcC52aWV3Q29udHJvbGxlci5nZXRSZXNvbHV0aW9uKCkgfCBudW1iZXI6ICcxLjAtMCcgfX08L3A+Il19
|
|
@@ -203,7 +203,7 @@ export class AdvancedSwipeComponent {
|
|
|
203
203
|
this.toolState.toolbox.activateTool('contextManager');
|
|
204
204
|
}
|
|
205
205
|
}
|
|
206
|
-
AdvancedSwipeComponent.ɵfac = function AdvancedSwipeComponent_Factory(t) { return new (t || AdvancedSwipeComponent)(i0.ɵɵdirectiveInject(i1.MapState), i0.ɵɵdirectiveInject(i2.ContextService), i0.ɵɵdirectiveInject(i3.
|
|
206
|
+
AdvancedSwipeComponent.ɵfac = function AdvancedSwipeComponent_Factory(t) { return new (t || AdvancedSwipeComponent)(i0.ɵɵdirectiveInject(i1.MapState), i0.ɵɵdirectiveInject(i2.ContextService), i0.ɵɵdirectiveInject(i3.FormBuilder), i0.ɵɵdirectiveInject(i4.ToolState)); };
|
|
207
207
|
AdvancedSwipeComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AdvancedSwipeComponent, selectors: [["igo-advanced-swipe"]], decls: 3, vars: 2, consts: [["class", "igo-swipe-select-container", 4, "ngIf", "ngIfElse"], ["noLayersBlock", ""], [1, "igo-swipe-select-container"], [1, "igo-form", 3, "formGroup"], ["formControlName", "layers", "multiple", ""], [3, "value", "click"], ["e", ""], [3, "value", "click", 4, "ngFor", "ngForOf"], [1, "swipe-toggle", "mat-typography", 3, "checked", "labelPosition", "change"], [1, "map-empty", "mat-typography"], ["mat-list-icon", "", "svgIcon", "magnify"], ["matLine", "", 1, "search-tool", "mat-typography", 3, "click"], ["mat-list-icon", "", "svgIcon", "layers-plus"], ["matLine", "", 1, "catalog-tool", "mat-typography", 3, "click"], ["mat-list-icon", "", "svgIcon", "star"], ["matLine", "", 1, "context-tool", "mat-typography", 3, "click"]], template: function AdvancedSwipeComponent_Template(rf, ctx) { if (rf & 1) {
|
|
208
208
|
i0.ɵɵtemplate(0, AdvancedSwipeComponent_div_0_Template, 16, 14, "div", 0);
|
|
209
209
|
i0.ɵɵtemplate(1, AdvancedSwipeComponent_ng_template_1_Template, 22, 15, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
|
|
@@ -214,5 +214,5 @@ AdvancedSwipeComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Adva
|
|
|
214
214
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdvancedSwipeComponent, [{
|
|
215
215
|
type: Component,
|
|
216
216
|
args: [{ selector: 'igo-advanced-swipe', template: "<div *ngIf=\"userControlledLayerList.length; else noLayersBlock\" class=\"igo-swipe-select-container\">\r\n <form class=\"igo-form\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <mat-label>{{'igo.integration.advanced-map-tool.advanced-swipe.swipe-select' | translate}}</mat-label>\r\n <mat-select formControlName=\"layers\" multiple>\r\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.selectAll' | translate}}\r\n </mat-option>\r\n <mat-divider></mat-divider>\r\n <mat-option *ngFor=\"let layer of userControlledLayerList\" [value]=\"layer\" (click)=\"applyNewLayers(e)\">{{layer.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n\r\n <mat-slide-toggle class=\"swipe-toggle mat-typography\"\r\n [checked]=\"swipe\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"startSwipe($event.checked)\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.swipe' | translate}}\r\n </mat-slide-toggle> \r\n</div>\r\n\r\n<ng-template #noLayersBlock>\r\n <mat-list>\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.empty' | translate}}</p>\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.customize' | translate}}</p>\r\n <mat-list-item>\r\n <mat-icon mat-list-icon svgIcon=\"magnify\"></mat-icon>\r\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.search-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item>\r\n <mat-icon mat-list-icon svgIcon=\"layers-plus\"></mat-icon>\r\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.catalog-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item>\r\n <mat-icon mat-list-icon svgIcon=\"star\"></mat-icon>\r\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.context-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n </mat-list>\r\n</ng-template>\r\n", styles: [".nameOfTool{text-align:center;font-weight:700;font-size:small;margin:15px 10px 0}.igo-swipe-select-container{padding:10px}.igo-swipe-select-container mat-form-field{width:100%}.igo-form{padding:1px 5px;width:100%}.swipe-toggle{padding:10px 5px 35px}.map-empty,.search-tool,.catalog-tool,.context-tool{margin:5px}.map-empty{padding:10px;text-align:justify}.search-tool,.catalog-tool,.context-tool{cursor:pointer}mat-list mat-list-item h4{font-weight:700}mat-list-item ::ng-deep .mat-list-text{font-size:smaller}mat-list.mat-list-base mat-list-item.mat-list-item ::ng-deep div.mat-list-item-content div.mat-list-text{padding-left:15px}.advanced-tool-line{height:2px;background-color:gray}\n"] }]
|
|
217
|
-
}], function () { return [{ type: i1.MapState }, { type: i2.ContextService }, { type: i3.
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtc3dpcGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9tYXAvYWR2YW5jZWQtbWFwLXRvb2wvYWR2YW5jZWQtc3dpcGUvYWR2YW5jZWQtc3dpcGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9tYXAvYWR2YW5jZWQtbWFwLXRvb2wvYWR2YW5jZWQtc3dpcGUvYWR2YW5jZWQtc3dpcGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNRbEUscUNBQXNHO0lBQTVCLHdPQUFTLGVBQUEsMEJBQWlCLENBQUEsSUFBQztJQUFDLFlBQWU7SUFBQSxpQkFBYTs7O0lBQXhFLGdDQUFlO0lBQTZCLGVBQWU7SUFBZixvQ0FBZTs7OztJQVRySSw4QkFBbUcsY0FBQSxxQkFBQSxnQkFBQTtJQUc1RSxZQUErRTs7SUFBQSxpQkFBWTtJQUN0RyxxQ0FBOEMsdUJBQUE7SUFDbEIsc01BQVMsZUFBQSxxQkFBWSxDQUFBLElBQUM7SUFDMUMsWUFDSjs7SUFBQSxpQkFBYTtJQUNiLCtCQUEyQjtJQUMzQiw2RkFBa0k7SUFDdEksaUJBQWEsRUFBQSxFQUFBO0lBSXJCLDRDQUcwQztJQUF0Qyx1TEFBVSxlQUFBLGtDQUEwQixDQUFBLElBQUM7SUFDckMsYUFDSjs7SUFBQSxpQkFBbUIsRUFBQTs7O0lBbEJJLGVBQWtCO0lBQWxCLHVDQUFrQjtJQUV0QixlQUErRTtJQUEvRSwyR0FBK0U7SUFFMUUsZUFBVztJQUFYLHlCQUFXO0lBQ25CLGVBQ0o7SUFESSxxSEFDSjtJQUU4QixlQUEwQjtJQUExQix3REFBMEI7SUFNaEUsZUFBaUI7SUFBakIsc0NBQWlCLDJCQUFBO0lBR2pCLGVBQ0o7SUFESSxpSEFDSjs7OztJQUlBLGdDQUFVLFdBQUE7SUFFRixZQUF3RTs7SUFBQSxpQkFBSTtJQUNoRiw0QkFBb0M7SUFDaEMsWUFBNEU7O0lBQUEsaUJBQUk7SUFDcEYscUNBQWU7SUFDWCwrQkFBcUQ7SUFDckQsOEJBQXNFO0lBQXZCLHlLQUFTLGVBQUEsb0JBQVksQ0FBQSxJQUFDO0lBQ2pFLGFBQ0o7O0lBQUEsaUJBQUssRUFBQTtJQUVULHNDQUFlO0lBQ1gsZ0NBQXlEO0lBQ3pELCtCQUF3RTtJQUF4QiwwS0FBUyxlQUFBLHFCQUFhLENBQUEsSUFBQztJQUNuRSxhQUNKOztJQUFBLGlCQUFLLEVBQUE7SUFFVCxzQ0FBZTtJQUNYLGdDQUFrRDtJQUNsRCwrQkFBd0U7SUFBeEIsMEtBQVMsZUFBQSxxQkFBYSxDQUFBLElBQUM7SUFDbkUsYUFDSjs7SUFBQSxpQkFBSyxFQUFBLEVBQUE7O0lBbkJMLGVBQXdFO0lBQXhFLDhHQUF3RTtJQUV4RSxlQUE0RTtJQUE1RSxrSEFBNEU7SUFJeEUsZUFDSjtJQURJLHNIQUNKO0lBS0ksZUFDSjtJQURJLHdIQUNKO0lBS0ksZUFDSjtJQURJLHdIQUNKOztBRC9CWixNQUFNLE9BQU8sc0JBQXNCO0lBZ0JqQyxZQUNTLFFBQWtCLEVBQ2pCLGNBQThCLEVBQzlCLFdBQStCLEVBQy9CLFNBQW9CO1FBSHJCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDakIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBbkJ2QixVQUFLLEdBQVksS0FBSyxDQUFDO1FBb0IxQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQWJEOztPQUVHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztJQUMzQixDQUFDO0lBVUQ7OztPQUdHO0lBQ0YsUUFBUTtRQUNQLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ2hGLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssU0FBUztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDakMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVUsQ0FBQyxNQUFlO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUMxQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMvQjtRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxrQkFBa0I7UUFDMUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUU7WUFBQyxDQUFDLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUFFO1FBQ3hDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUM7UUFDdEQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDOUQsSUFBSSxjQUFjLEtBQUssU0FBUyxFQUFDO1lBQy9CLENBQUMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLENBQUM7UUFDVCxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUU7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ3BCO2FBQ0k7WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVU7UUFDUixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDeEQsQ0FBQzs7NEZBaEhVLHNCQUFzQjt5RUFBdEIsc0JBQXNCO1FDYm5DLHlFQW9CTTtRQUVOLDBIQXlCYzs7O1FBL0NSLHlEQUFzQyxpQkFBQTs7dUZEYS9CLHNCQUFzQjtjQU5sQyxTQUFTOzJCQUNFLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCwgVW50eXBlZEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSwgRGV0YWlsZWRDb250ZXh0IH0gZnJvbSAnQGlnbzIvY29udGV4dCc7XHJcbmltcG9ydCB7IElnb01hcCwgTGF5ZXIsIFZlY3RvckxheWVyIH0gZnJvbSAnQGlnbzIvZ2VvJztcclxuaW1wb3J0IHsgTWFwU3RhdGUgfSBmcm9tICcuLi8uLi9tYXAuc3RhdGUnO1xyXG5pbXBvcnQgeyBUb29sU3RhdGUgfSBmcm9tICcuLi8uLi8uLi90b29sL3Rvb2wuc3RhdGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tYWR2YW5jZWQtc3dpcGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hZHZhbmNlZC1zd2lwZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYWR2YW5jZWQtc3dpcGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkU3dpcGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIHN3aXBlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGxheWVyTGlzdDogTGF5ZXJbXTtcclxuICBwdWJsaWMgdXNlckNvbnRyb2xsZWRMYXllckxpc3Q6IExheWVyW107XHJcbiAgcHVibGljIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgcHVibGljIGxheWVyczogVmVjdG9yTGF5ZXJbXTtcclxuICBwdWJsaWMgcmVzOiBEZXRhaWxlZENvbnRleHQ7XHJcbiAgcHVibGljIGxpc3RGb3JTd2lwZTogTGF5ZXJbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGFuIGFjdGl2ZSBtYXAgc3RhdGVcclxuICAgKi9cclxuICBnZXQgbWFwKCk6IElnb01hcCB7XHJcbiAgICByZXR1cm4gdGhpcy5tYXBTdGF0ZS5tYXA7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBtYXBTdGF0ZTogTWFwU3RhdGUsXHJcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcclxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgdG9vbFN0YXRlOiBUb29sU3RhdGUpIHtcclxuICAgICAgdGhpcy5idWlsZEZvcm0oKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgbGlzdCBvZiBsYXllcnMgZm9yIHN3aXBlXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5tYXAubGF5ZXJzJC5zdWJzY3JpYmUobGwgPT4gdGhpcy51c2VyQ29udHJvbGxlZExheWVyTGlzdCA9IGxsLmZpbHRlcihsYXllciA9PlxyXG4gICAgICAoIWxheWVyLmJhc2VMYXllciAmJiBsYXllci5zaG93SW5MYXllckxpc3QgJiYgbGF5ZXIuZGlzcGxheWVkKSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVzYWN0aXZhdGUgdGhlIHN3aXBlXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKXtcclxuICAgIHRoaXMuc3dpcGUgPSBmYWxzZTtcclxuICAgIHRoaXMubWFwLnN3aXBlRW5hYmxlZCQubmV4dCh0aGlzLnN3aXBlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1aWxkIGEgZm9ybSBmb3IgY2hvaXNlIG9mIHRoZSBsYXllcnNcclxuICAgKi9cclxuICBwcml2YXRlIGJ1aWxkRm9ybSgpIHtcclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICBsYXllcnM6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBY3RpdmF0ZSB0aGUgc3dpcGUsIHNlbmQgYSBsaXN0IG9mIGxheWVycyBmb3IgYSBzd2lwZS10b29sXHJcbiAgICovXHJcbiAgc3RhcnRTd2lwZSh0b2dnbGU6IGJvb2xlYW4pe1xyXG4gICAgdGhpcy5zd2lwZSA9IHRvZ2dsZTtcclxuICAgIHRoaXMubWFwLnN3aXBlRW5hYmxlZCQubmV4dCh0b2dnbGUpO1xyXG4gICAgdGhpcy5saXN0Rm9yU3dpcGUgPSBbXTtcclxuICAgIGZvciAoY29uc3QgbGF5ZXIgb2YgdGhpcy5mb3JtLnZhbHVlLmxheWVycykge1xyXG4gICAgICB0aGlzLmxpc3RGb3JTd2lwZS5wdXNoKGxheWVyKTtcclxuICAgIH1cclxuICAgIHRoaXMubWFwLnNlbGVjdGVkRmVhdHVyZXMkLm5leHQodGhpcy5saXN0Rm9yU3dpcGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVzdGFydCBhIHN3aXBlIGZvciBhIG5ldyBsYXllcnMtbGlzdFxyXG4gICAqL1xyXG4gIGFwcGx5TmV3TGF5ZXJzKGUpIHtcclxuICAgIHRoaXMuc3RhcnRTd2lwZShmYWxzZSk7IC8vIGwnYXBwcm9jaGUgS0lTU1xyXG4gICAgdGhpcy5zdGFydFN3aXBlKHRydWUpO1xyXG4gICAgaWYgKGUuX3NlbGVjdGVkKSB7ZS5fc2VsZWN0ZWQgPSBmYWxzZTsgfVxyXG4gICAgY29uc3QgYWxsTGF5ZXJzID0gdGhpcy51c2VyQ29udHJvbGxlZExheWVyTGlzdC5sZW5ndGg7XHJcbiAgICBjb25zdCBzZWxlY3RlZExheWVycyA9IHRoaXMuZm9ybS5jb250cm9scy5sYXllcnMudmFsdWUubGVuZ3RoO1xyXG4gICAgaWYgKHNlbGVjdGVkTGF5ZXJzID09PSBhbGxMYXllcnMpe1xyXG4gICAgICBlLl9zZWxlY3RlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWxlY3QgYWxsIGxpc3Qgb2YgbGF5ZXJzIGFuZCByZXN0YXJ0IGEgdG9vbFxyXG4gICAqL1xyXG4gIHNlbGVjdEFsbChlKSB7XHJcbiAgICBpZiAoZS5fc2VsZWN0ZWQpIHtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmxheWVycy5zZXRWYWx1ZSh0aGlzLnVzZXJDb250cm9sbGVkTGF5ZXJMaXN0KTtcclxuICAgICAgZS5fc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5sYXllcnMuc2V0VmFsdWUoW10pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdGFydFN3aXBlKGZhbHNlKTtcclxuICAgIHRoaXMuc3RhcnRTd2lwZSh0cnVlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW4gc2VhcmNoIHRvb2xcclxuICAgKi9cclxuICBzZWFyY2hFbWl0KCkge1xyXG4gICAgdGhpcy50b29sU3RhdGUudG9vbGJveC5hY3RpdmF0ZVRvb2woJ3NlYXJjaFJlc3VsdHMnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW4gY2F0YWxvZ1xyXG4gICAqL1xyXG4gIGNhdGFsb2dFbWl0KCkge1xyXG4gICAgdGhpcy50b29sU3RhdGUudG9vbGJveC5hY3RpdmF0ZVRvb2woJ2NhdGFsb2cnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW4gY29udGV4dCBtYW5hZ2VyXHJcbiAgICovXHJcbiAgY29udGV4dEVtaXQoKSB7XHJcbiAgICB0aGlzLnRvb2xTdGF0ZS50b29sYm94LmFjdGl2YXRlVG9vbCgnY29udGV4dE1hbmFnZXInKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cInVzZXJDb250cm9sbGVkTGF5ZXJMaXN0Lmxlbmd0aDsgZWxzZSBub0xheWVyc0Jsb2NrXCIgY2xhc3M9XCJpZ28tc3dpcGUtc2VsZWN0LWNvbnRhaW5lclwiPlxyXG4gICAgPGZvcm0gY2xhc3M9XCJpZ28tZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPG1hdC1sYWJlbD57eydpZ28uaW50ZWdyYXRpb24uYWR2YW5jZWQtbWFwLXRvb2wuYWR2YW5jZWQtc3dpcGUuc3dpcGUtc2VsZWN0JyB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImxheWVyc1wiIG11bHRpcGxlPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIjFcIiAoY2xpY2spPVwic2VsZWN0QWxsKGUpXCIgI2U+XHJcbiAgICAgICAgICAgICAgICAgICAge3snaWdvLmludGVncmF0aW9uLmFkdmFuY2VkLW1hcC10b29sLmFkdmFuY2VkLXN3aXBlLnNlbGVjdEFsbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgbGF5ZXIgb2YgdXNlckNvbnRyb2xsZWRMYXllckxpc3RcIiBbdmFsdWVdPVwibGF5ZXJcIiAoY2xpY2spPVwiYXBwbHlOZXdMYXllcnMoZSlcIj57e2xheWVyLnRpdGxlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9mb3JtPlxyXG5cclxuICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGNsYXNzPVwic3dpcGUtdG9nZ2xlIG1hdC10eXBvZ3JhcGh5XCJcclxuICAgICAgICBbY2hlY2tlZF09XCJzd2lwZVwiXHJcbiAgICAgICAgW2xhYmVsUG9zaXRpb25dPVwiJ2JlZm9yZSdcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwic3RhcnRTd2lwZSgkZXZlbnQuY2hlY2tlZClcIj5cclxuICAgICAgICB7eydpZ28uaW50ZWdyYXRpb24uYWR2YW5jZWQtbWFwLXRvb2wuYWR2YW5jZWQtc3dpcGUuc3dpcGUnIHwgdHJhbnNsYXRlfX1cclxuICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT4gXHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNub0xheWVyc0Jsb2NrPlxyXG4gICAgPG1hdC1saXN0PlxyXG4gICAgICAgIDxwIGNsYXNzPVwibWFwLWVtcHR5IG1hdC10eXBvZ3JhcGh5XCI+XHJcbiAgICAgICAgICAgIHt7J2lnby5pbnRlZ3JhdGlvbi5hZHZhbmNlZC1tYXAtdG9vbC5hZHZhbmNlZC1zd2lwZS5lbXB0eScgfCB0cmFuc2xhdGV9fTwvcD5cclxuICAgICAgICA8cCBjbGFzcz1cIm1hcC1lbXB0eSBtYXQtdHlwb2dyYXBoeVwiPlxyXG4gICAgICAgICAgICB7eydpZ28uaW50ZWdyYXRpb24uYWR2YW5jZWQtbWFwLXRvb2wuYWR2YW5jZWQtc3dpcGUuY3VzdG9taXplJyB8IHRyYW5zbGF0ZX19PC9wPlxyXG4gICAgICAgIDxtYXQtbGlzdC1pdGVtPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gbWF0LWxpc3QtaWNvbiBzdmdJY29uPVwibWFnbmlmeVwiPjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDxoNCBtYXRMaW5lIGNsYXNzPVwic2VhcmNoLXRvb2wgbWF0LXR5cG9ncmFwaHlcIiAoY2xpY2spPVwic2VhcmNoRW1pdCgpXCI+XHJcbiAgICAgICAgICAgICAgICB7eydpZ28uaW50ZWdyYXRpb24uYWR2YW5jZWQtbWFwLXRvb2wuYWR2YW5jZWQtc3dpcGUuc2VhcmNoLXRvb2wnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9oND5cclxuICAgICAgICA8L21hdC1saXN0LWl0ZW0+XHJcbiAgICAgICAgPG1hdC1saXN0LWl0ZW0+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBtYXQtbGlzdC1pY29uIHN2Z0ljb249XCJsYXllcnMtcGx1c1wiPjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDxoNCBtYXRMaW5lIGNsYXNzPVwiY2F0YWxvZy10b29sIG1hdC10eXBvZ3JhcGh5XCIgKGNsaWNrKT1cImNhdGFsb2dFbWl0KClcIj5cclxuICAgICAgICAgICAgICAgIHt7J2lnby5pbnRlZ3JhdGlvbi5hZHZhbmNlZC1tYXAtdG9vbC5hZHZhbmNlZC1zd2lwZS5jYXRhbG9nLXRvb2wnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9oND5cclxuICAgICAgICA8L21hdC1saXN0LWl0ZW0+XHJcbiAgICAgICAgPG1hdC1saXN0LWl0ZW0+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBtYXQtbGlzdC1pY29uIHN2Z0ljb249XCJzdGFyXCI+PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPGg0IG1hdExpbmUgY2xhc3M9XCJjb250ZXh0LXRvb2wgbWF0LXR5cG9ncmFwaHlcIiAoY2xpY2spPVwiY29udGV4dEVtaXQoKVwiPlxyXG4gICAgICAgICAgICAgICAge3snaWdvLmludGVncmF0aW9uLmFkdmFuY2VkLW1hcC10b29sLmFkdmFuY2VkLXN3aXBlLmNvbnRleHQtdG9vbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuICAgIDwvbWF0LWxpc3Q+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
217
|
+
}], function () { return [{ type: i1.MapState }, { type: i2.ContextService }, { type: i3.FormBuilder }, { type: i4.ToolState }]; }, null); })();
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtc3dpcGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9tYXAvYWR2YW5jZWQtbWFwLXRvb2wvYWR2YW5jZWQtc3dpcGUvYWR2YW5jZWQtc3dpcGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9tYXAvYWR2YW5jZWQtbWFwLXRvb2wvYWR2YW5jZWQtc3dpcGUvYWR2YW5jZWQtc3dpcGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNRcEQscUNBQXNHO0lBQTVCLHdPQUFTLGVBQUEsMEJBQWlCLENBQUEsSUFBQztJQUFDLFlBQWU7SUFBQSxpQkFBYTs7O0lBQXhFLGdDQUFlO0lBQTZCLGVBQWU7SUFBZixvQ0FBZTs7OztJQVRySSw4QkFBbUcsY0FBQSxxQkFBQSxnQkFBQTtJQUc1RSxZQUErRTs7SUFBQSxpQkFBWTtJQUN0RyxxQ0FBOEMsdUJBQUE7SUFDbEIsc01BQVMsZUFBQSxxQkFBWSxDQUFBLElBQUM7SUFDMUMsWUFDSjs7SUFBQSxpQkFBYTtJQUNiLCtCQUEyQjtJQUMzQiw2RkFBa0k7SUFDdEksaUJBQWEsRUFBQSxFQUFBO0lBSXJCLDRDQUcwQztJQUF0Qyx1TEFBVSxlQUFBLGtDQUEwQixDQUFBLElBQUM7SUFDckMsYUFDSjs7SUFBQSxpQkFBbUIsRUFBQTs7O0lBbEJJLGVBQWtCO0lBQWxCLHVDQUFrQjtJQUV0QixlQUErRTtJQUEvRSwyR0FBK0U7SUFFMUUsZUFBVztJQUFYLHlCQUFXO0lBQ25CLGVBQ0o7SUFESSxxSEFDSjtJQUU4Qixl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SUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN4RCxDQUFDOzs0RkFoSFUsc0JBQXNCO3lFQUF0QixzQkFBc0I7UUNibkMseUVBb0JNO1FBRU4sMEhBeUJjOzs7UUEvQ1IseURBQXNDLGlCQUFBOzt1RkRhL0Isc0JBQXNCO2NBTmxDLFNBQVM7MkJBQ0Usb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSwgRGV0YWlsZWRDb250ZXh0IH0gZnJvbSAnQGlnbzIvY29udGV4dCc7XHJcbmltcG9ydCB7IElnb01hcCwgTGF5ZXIsIFZlY3RvckxheWVyIH0gZnJvbSAnQGlnbzIvZ2VvJztcclxuaW1wb3J0IHsgTWFwU3RhdGUgfSBmcm9tICcuLi8uLi9tYXAuc3RhdGUnO1xyXG5pbXBvcnQgeyBUb29sU3RhdGUgfSBmcm9tICcuLi8uLi8uLi90b29sL3Rvb2wuc3RhdGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tYWR2YW5jZWQtc3dpcGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hZHZhbmNlZC1zd2lwZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYWR2YW5jZWQtc3dpcGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkU3dpcGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIHN3aXBlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGxheWVyTGlzdDogTGF5ZXJbXTtcclxuICBwdWJsaWMgdXNlckNvbnRyb2xsZWRMYXllckxpc3Q6IExheWVyW107XHJcbiAgcHVibGljIGZvcm06IEZvcm1Hcm91cDtcclxuICBwdWJsaWMgbGF5ZXJzOiBWZWN0b3JMYXllcltdO1xyXG4gIHB1YmxpYyByZXM6IERldGFpbGVkQ29udGV4dDtcclxuICBwdWJsaWMgbGlzdEZvclN3aXBlOiBMYXllcltdO1xyXG5cclxuICAvKipcclxuICAgKiBHZXQgYW4gYWN0aXZlIG1hcCBzdGF0ZVxyXG4gICAqL1xyXG4gIGdldCBtYXAoKTogSWdvTWFwIHtcclxuICAgIHJldHVybiB0aGlzLm1hcFN0YXRlLm1hcDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG1hcFN0YXRlOiBNYXBTdGF0ZSxcclxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIHRvb2xTdGF0ZTogVG9vbFN0YXRlKSB7XHJcbiAgICAgIHRoaXMuYnVpbGRGb3JtKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIGxpc3Qgb2YgbGF5ZXJzIGZvciBzd2lwZVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubWFwLmxheWVycyQuc3Vic2NyaWJlKGxsID0+IHRoaXMudXNlckNvbnRyb2xsZWRMYXllckxpc3QgPSBsbC5maWx0ZXIobGF5ZXIgPT5cclxuICAgICAgKCFsYXllci5iYXNlTGF5ZXIgJiYgbGF5ZXIuc2hvd0luTGF5ZXJMaXN0ICYmIGxheWVyLmRpc3BsYXllZCkpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlc2FjdGl2YXRlIHRoZSBzd2lwZVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCl7XHJcbiAgICB0aGlzLnN3aXBlID0gZmFsc2U7XHJcbiAgICB0aGlzLm1hcC5zd2lwZUVuYWJsZWQkLm5leHQodGhpcy5zd2lwZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWlsZCBhIGZvcm0gZm9yIGNob2lzZSBvZiB0aGUgbGF5ZXJzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBidWlsZEZvcm0oKSB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgbGF5ZXJzOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWN0aXZhdGUgdGhlIHN3aXBlLCBzZW5kIGEgbGlzdCBvZiBsYXllcnMgZm9yIGEgc3dpcGUtdG9vbFxyXG4gICAqL1xyXG4gIHN0YXJ0U3dpcGUodG9nZ2xlOiBib29sZWFuKXtcclxuICAgIHRoaXMuc3dpcGUgPSB0b2dnbGU7XHJcbiAgICB0aGlzLm1hcC5zd2lwZUVuYWJsZWQkLm5leHQodG9nZ2xlKTtcclxuICAgIHRoaXMubGlzdEZvclN3aXBlID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGxheWVyIG9mIHRoaXMuZm9ybS52YWx1ZS5sYXllcnMpIHtcclxuICAgICAgdGhpcy5saXN0Rm9yU3dpcGUucHVzaChsYXllcik7XHJcbiAgICB9XHJcbiAgICB0aGlzLm1hcC5zZWxlY3RlZEZlYXR1cmVzJC5uZXh0KHRoaXMubGlzdEZvclN3aXBlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc3RhcnQgYSBzd2lwZSBmb3IgYSBuZXcgbGF5ZXJzLWxpc3RcclxuICAgKi9cclxuICBhcHBseU5ld0xheWVycyhlKSB7XHJcbiAgICB0aGlzLnN0YXJ0U3dpcGUoZmFsc2UpOyAvLyBsJ2FwcHJvY2hlIEtJU1NcclxuICAgIHRoaXMuc3RhcnRTd2lwZSh0cnVlKTtcclxuICAgIGlmIChlLl9zZWxlY3RlZCkge2UuX3NlbGVjdGVkID0gZmFsc2U7IH1cclxuICAgIGNvbnN0IGFsbExheWVycyA9IHRoaXMudXNlckNvbnRyb2xsZWRMYXllckxpc3QubGVuZ3RoO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRMYXllcnMgPSB0aGlzLmZvcm0uY29udHJvbHMubGF5ZXJzLnZhbHVlLmxlbmd0aDtcclxuICAgIGlmIChzZWxlY3RlZExheWVycyA9PT0gYWxsTGF5ZXJzKXtcclxuICAgICAgZS5fc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VsZWN0IGFsbCBsaXN0IG9mIGxheWVycyBhbmQgcmVzdGFydCBhIHRvb2xcclxuICAgKi9cclxuICBzZWxlY3RBbGwoZSkge1xyXG4gICAgaWYgKGUuX3NlbGVjdGVkKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5sYXllcnMuc2V0VmFsdWUodGhpcy51c2VyQ29udHJvbGxlZExheWVyTGlzdCk7XHJcbiAgICAgIGUuX3NlbGVjdGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMubGF5ZXJzLnNldFZhbHVlKFtdKTtcclxuICAgIH1cclxuICAgIHRoaXMuc3RhcnRTd2lwZShmYWxzZSk7XHJcbiAgICB0aGlzLnN0YXJ0U3dpcGUodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPcGVuIHNlYXJjaCB0b29sXHJcbiAgICovXHJcbiAgc2VhcmNoRW1pdCgpIHtcclxuICAgIHRoaXMudG9vbFN0YXRlLnRvb2xib3guYWN0aXZhdGVUb29sKCdzZWFyY2hSZXN1bHRzJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPcGVuIGNhdGFsb2dcclxuICAgKi9cclxuICBjYXRhbG9nRW1pdCgpIHtcclxuICAgIHRoaXMudG9vbFN0YXRlLnRvb2xib3guYWN0aXZhdGVUb29sKCdjYXRhbG9nJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPcGVuIGNvbnRleHQgbWFuYWdlclxyXG4gICAqL1xyXG4gIGNvbnRleHRFbWl0KCkge1xyXG4gICAgdGhpcy50b29sU3RhdGUudG9vbGJveC5hY3RpdmF0ZVRvb2woJ2NvbnRleHRNYW5hZ2VyJyk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJ1c2VyQ29udHJvbGxlZExheWVyTGlzdC5sZW5ndGg7IGVsc2Ugbm9MYXllcnNCbG9ja1wiIGNsYXNzPVwiaWdvLXN3aXBlLXNlbGVjdC1jb250YWluZXJcIj5cclxuICAgIDxmb3JtIGNsYXNzPVwiaWdvLWZvcm1cIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3snaWdvLmludGVncmF0aW9uLmFkdmFuY2VkLW1hcC10b29sLmFkdmFuY2VkLXN3aXBlLnN3aXBlLXNlbGVjdCcgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJsYXllcnNcIiBtdWx0aXBsZT5cclxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCIxXCIgKGNsaWNrKT1cInNlbGVjdEFsbChlKVwiICNlPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7J2lnby5pbnRlZ3JhdGlvbi5hZHZhbmNlZC1tYXAtdG9vbC5hZHZhbmNlZC1zd2lwZS5zZWxlY3RBbGwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGxheWVyIG9mIHVzZXJDb250cm9sbGVkTGF5ZXJMaXN0XCIgW3ZhbHVlXT1cImxheWVyXCIgKGNsaWNrKT1cImFwcGx5TmV3TGF5ZXJzKGUpXCI+e3tsYXllci50aXRsZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZm9ybT5cclxuXHJcbiAgICA8bWF0LXNsaWRlLXRvZ2dsZSBjbGFzcz1cInN3aXBlLXRvZ2dsZSBtYXQtdHlwb2dyYXBoeVwiXHJcbiAgICAgICAgW2NoZWNrZWRdPVwic3dpcGVcIlxyXG4gICAgICAgIFtsYWJlbFBvc2l0aW9uXT1cIidiZWZvcmUnXCJcclxuICAgICAgICAoY2hhbmdlKT1cInN0YXJ0U3dpcGUoJGV2ZW50LmNoZWNrZWQpXCI+XHJcbiAgICAgICAge3snaWdvLmludGVncmF0aW9uLmFkdmFuY2VkLW1hcC10b29sLmFkdmFuY2VkLXN3aXBlLnN3aXBlJyB8IHRyYW5zbGF0ZX19XHJcbiAgICA8L21hdC1zbGlkZS10b2dnbGU+IFxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbm9MYXllcnNCbG9jaz5cclxuICAgIDxtYXQtbGlzdD5cclxuICAgICAgICA8cCBjbGFzcz1cIm1hcC1lbXB0eSBtYXQtdHlwb2dyYXBoeVwiPlxyXG4gICAgICAgICAgICB7eydpZ28uaW50ZWdyYXRpb24uYWR2YW5jZWQtbWFwLXRvb2wuYWR2YW5jZWQtc3dpcGUuZW1wdHknIHwgdHJhbnNsYXRlfX08L3A+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJtYXAtZW1wdHkgbWF0LXR5cG9ncmFwaHlcIj5cclxuICAgICAgICAgICAge3snaWdvLmludGVncmF0aW9uLmFkdmFuY2VkLW1hcC10b29sLmFkdmFuY2VkLXN3aXBlLmN1c3RvbWl6ZScgfCB0cmFuc2xhdGV9fTwvcD5cclxuICAgICAgICA8bWF0LWxpc3QtaXRlbT5cclxuICAgICAgICAgICAgPG1hdC1pY29uIG1hdC1saXN0LWljb24gc3ZnSWNvbj1cIm1hZ25pZnlcIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8aDQgbWF0TGluZSBjbGFzcz1cInNlYXJjaC10b29sIG1hdC10eXBvZ3JhcGh5XCIgKGNsaWNrKT1cInNlYXJjaEVtaXQoKVwiPlxyXG4gICAgICAgICAgICAgICAge3snaWdvLmludGVncmF0aW9uLmFkdmFuY2VkLW1hcC10b29sLmFkdmFuY2VkLXN3aXBlLnNlYXJjaC10b29sJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gICAgICAgIDxtYXQtbGlzdC1pdGVtPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gbWF0LWxpc3QtaWNvbiBzdmdJY29uPVwibGF5ZXJzLXBsdXNcIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8aDQgbWF0TGluZSBjbGFzcz1cImNhdGFsb2ctdG9vbCBtYXQtdHlwb2dyYXBoeVwiIChjbGljayk9XCJjYXRhbG9nRW1pdCgpXCI+XHJcbiAgICAgICAgICAgICAgICB7eydpZ28uaW50ZWdyYXRpb24uYWR2YW5jZWQtbWFwLXRvb2wuYWR2YW5jZWQtc3dpcGUuY2F0YWxvZy10b29sJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gICAgICAgIDxtYXQtbGlzdC1pdGVtPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gbWF0LWxpc3QtaWNvbiBzdmdJY29uPVwic3RhclwiPjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDxoNCBtYXRMaW5lIGNsYXNzPVwiY29udGV4dC10b29sIG1hdC10eXBvZ3JhcGh5XCIgKGNsaWNrKT1cImNvbnRleHRFbWl0KClcIj5cclxuICAgICAgICAgICAgICAgIHt7J2lnby5pbnRlZ3JhdGlvbi5hZHZhbmNlZC1tYXAtdG9vbC5hZHZhbmNlZC1zd2lwZS5jb250ZXh0LXRvb2wnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9oND5cclxuICAgICAgICA8L21hdC1saXN0LWl0ZW0+XHJcbiAgICA8L21hdC1saXN0PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -3391,7 +3391,7 @@ class AdvancedSwipeComponent {
|
|
|
3391
3391
|
this.toolState.toolbox.activateTool('contextManager');
|
|
3392
3392
|
}
|
|
3393
3393
|
}
|
|
3394
|
-
AdvancedSwipeComponent.ɵfac = function AdvancedSwipeComponent_Factory(t) { return new (t || AdvancedSwipeComponent)(i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(i1.ContextService), i0.ɵɵdirectiveInject(i3.
|
|
3394
|
+
AdvancedSwipeComponent.ɵfac = function AdvancedSwipeComponent_Factory(t) { return new (t || AdvancedSwipeComponent)(i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(i1.ContextService), i0.ɵɵdirectiveInject(i3.FormBuilder), i0.ɵɵdirectiveInject(ToolState)); };
|
|
3395
3395
|
AdvancedSwipeComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AdvancedSwipeComponent, selectors: [["igo-advanced-swipe"]], decls: 3, vars: 2, consts: [["class", "igo-swipe-select-container", 4, "ngIf", "ngIfElse"], ["noLayersBlock", ""], [1, "igo-swipe-select-container"], [1, "igo-form", 3, "formGroup"], ["formControlName", "layers", "multiple", ""], [3, "value", "click"], ["e", ""], [3, "value", "click", 4, "ngFor", "ngForOf"], [1, "swipe-toggle", "mat-typography", 3, "checked", "labelPosition", "change"], [1, "map-empty", "mat-typography"], ["mat-list-icon", "", "svgIcon", "magnify"], ["matLine", "", 1, "search-tool", "mat-typography", 3, "click"], ["mat-list-icon", "", "svgIcon", "layers-plus"], ["matLine", "", 1, "catalog-tool", "mat-typography", 3, "click"], ["mat-list-icon", "", "svgIcon", "star"], ["matLine", "", 1, "context-tool", "mat-typography", 3, "click"]], template: function AdvancedSwipeComponent_Template(rf, ctx) {
|
|
3396
3396
|
if (rf & 1) {
|
|
3397
3397
|
i0.ɵɵtemplate(0, AdvancedSwipeComponent_div_0_Template, 16, 14, "div", 0);
|
|
@@ -3406,7 +3406,7 @@ AdvancedSwipeComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Adva
|
|
|
3406
3406
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdvancedSwipeComponent, [{
|
|
3407
3407
|
type: Component,
|
|
3408
3408
|
args: [{ selector: 'igo-advanced-swipe', template: "<div *ngIf=\"userControlledLayerList.length; else noLayersBlock\" class=\"igo-swipe-select-container\">\r\n <form class=\"igo-form\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <mat-label>{{'igo.integration.advanced-map-tool.advanced-swipe.swipe-select' | translate}}</mat-label>\r\n <mat-select formControlName=\"layers\" multiple>\r\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.selectAll' | translate}}\r\n </mat-option>\r\n <mat-divider></mat-divider>\r\n <mat-option *ngFor=\"let layer of userControlledLayerList\" [value]=\"layer\" (click)=\"applyNewLayers(e)\">{{layer.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n\r\n <mat-slide-toggle class=\"swipe-toggle mat-typography\"\r\n [checked]=\"swipe\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"startSwipe($event.checked)\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.swipe' | translate}}\r\n </mat-slide-toggle> \r\n</div>\r\n\r\n<ng-template #noLayersBlock>\r\n <mat-list>\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.empty' | translate}}</p>\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.customize' | translate}}</p>\r\n <mat-list-item>\r\n <mat-icon mat-list-icon svgIcon=\"magnify\"></mat-icon>\r\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.search-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item>\r\n <mat-icon mat-list-icon svgIcon=\"layers-plus\"></mat-icon>\r\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.catalog-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item>\r\n <mat-icon mat-list-icon svgIcon=\"star\"></mat-icon>\r\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.context-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n </mat-list>\r\n</ng-template>\r\n", styles: [".nameOfTool{text-align:center;font-weight:700;font-size:small;margin:15px 10px 0}.igo-swipe-select-container{padding:10px}.igo-swipe-select-container mat-form-field{width:100%}.igo-form{padding:1px 5px;width:100%}.swipe-toggle{padding:10px 5px 35px}.map-empty,.search-tool,.catalog-tool,.context-tool{margin:5px}.map-empty{padding:10px;text-align:justify}.search-tool,.catalog-tool,.context-tool{cursor:pointer}mat-list mat-list-item h4{font-weight:700}mat-list-item ::ng-deep .mat-list-text{font-size:smaller}mat-list.mat-list-base mat-list-item.mat-list-item ::ng-deep div.mat-list-item-content div.mat-list-text{padding-left:15px}.advanced-tool-line{height:2px;background-color:gray}\n"] }]
|
|
3409
|
-
}], function () { return [{ type: MapState }, { type: i1.ContextService }, { type: i3.
|
|
3409
|
+
}], function () { return [{ type: MapState }, { type: i1.ContextService }, { type: i3.FormBuilder }, { type: ToolState }]; }, null);
|
|
3410
3410
|
})();
|
|
3411
3411
|
|
|
3412
3412
|
function AdvancedCoordinatesComponent_mat_form_field_0_Template(rf, ctx) {
|
|
@@ -3801,7 +3801,7 @@ class AdvancedCoordinatesComponent {
|
|
|
3801
3801
|
});
|
|
3802
3802
|
}
|
|
3803
3803
|
}
|
|
3804
|
-
AdvancedCoordinatesComponent.ɵfac = function AdvancedCoordinatesComponent_Factory(t) { return new (t || AdvancedCoordinatesComponent)(i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(i2.LanguageService), i0.ɵɵdirectiveInject(i2.MessageService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.StorageService), i0.ɵɵdirectiveInject(i2.ConfigService), i0.ɵɵdirectiveInject(i3.
|
|
3804
|
+
AdvancedCoordinatesComponent.ɵfac = function AdvancedCoordinatesComponent_Factory(t) { return new (t || AdvancedCoordinatesComponent)(i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(i2.LanguageService), i0.ɵɵdirectiveInject(i2.MessageService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.StorageService), i0.ɵɵdirectiveInject(i2.ConfigService), i0.ɵɵdirectiveInject(i3.FormBuilder)); };
|
|
3805
3805
|
AdvancedCoordinatesComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AdvancedCoordinatesComponent, selectors: [["igo-advanced-coordinates"]], inputs: { projectionsLimitations: "projectionsLimitations" }, decls: 32, vars: 37, consts: [["class", "coordinates", 4, "ngIf", "ngIfElse"], ["elseBlock", ""], ["class", "coordinates2", 4, "ngIf", "ngIfElse"], ["elseBlock2", ""], ["mat-raised-button", "", 1, "igo-form-button-group", 3, "click"], ["svgIcon", "content-copy"], [1, "igo-form", 3, "formGroup"], [1, "igo-input-container"], [3, "value", "valueChange"], ["matTooltipShowDelay", "500", 3, "value", "click", 4, "ngFor", "ngForOf"], [1, "center-toggle", "mat-typography", 3, "checked", "labelPosition", "change"], [1, "igo-zoom", "mat-typography"], [1, "coordinates"], ["matInput", "", "readonly", "", "rows", "1", 3, "placeholder", "value"], ["textArea", ""], [1, "coordinates2"], ["matTooltipShowDelay", "500", 3, "value", "click"]], template: function AdvancedCoordinatesComponent_Template(rf, ctx) {
|
|
3806
3806
|
if (rf & 1) {
|
|
3807
3807
|
i0.ɵɵtemplate(0, AdvancedCoordinatesComponent_mat_form_field_0_Template, 4, 4, "mat-form-field", 0);
|
|
@@ -3875,7 +3875,7 @@ AdvancedCoordinatesComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type
|
|
|
3875
3875
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdvancedCoordinatesComponent, [{
|
|
3876
3876
|
type: Component,
|
|
3877
3877
|
args: [{ selector: 'igo-advanced-coordinates', template: "<mat-form-field *ngIf=\"units; else elseBlock\" class=\"coordinates\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.lon' | translate\"\r\n [value]=\"coordinates[0]\"></textarea>\r\n</mat-form-field>\r\n<ng-template #elseBlock >\r\n <mat-form-field class=\"coordinates\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.est' | translate\"\r\n [value]=\"coordinates[0]\"></textarea></mat-form-field>\r\n</ng-template>\r\n\r\n<mat-form-field *ngIf=\"units; else elseBlock2\" class=\"coordinates2\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.lat' | translate\"\r\n [value]=\"coordinates[1]\"></textarea>\r\n</mat-form-field>\r\n<ng-template #elseBlock2 >\r\n <mat-form-field class=\"coordinates2\"> <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.nord' | translate\"\r\n [value]=\"coordinates[1]\"></textarea></mat-form-field>\r\n</ng-template>\r\n\r\n<button class=\"igo-form-button-group\"\r\n mat-raised-button\r\n (click)=\"copyTextToClipboard()\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n {{ 'igo.integration.advanced-map-tool.advanced-coordinates.copy' | translate }}\r\n</button>\r\n\r\n<form class=\"igo-form\" [formGroup]=\"form\">\r\n <mat-form-field class=\"igo-input-container\">\r\n <mat-label>{{'igo.integration.advanced-map-tool.advanced-coordinates.coordSystem' | translate}}</mat-label>\r\n <mat-select [(value)]=\"inputProj\">\r\n <mat-option matTooltipShowDelay=\"500\"\r\n *ngFor=\"let projection of (projections$ | async)\"\r\n [value]=\"projection\"\r\n (click)=\"$event.stopPropagation()\">\r\n {{projection.translatedValue || projection.alias }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-slide-toggle class=\"center-toggle mat-typography\"\r\n [checked]=\"center\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"displayCenter($event.checked)\">\r\n {{'igo.integration.advanced-map-tool.advanced-coordinates.center' | translate}}\r\n </mat-slide-toggle> \r\n</form>\r\n\r\n<p class=\"igo-zoom mat-typography\">{{'igo.integration.advanced-map-tool.advanced-coordinates.zoom' | translate}} {{map.viewController.getZoom() }}</p>\r\n<p class=\"igo-zoom mat-typography\">{{'igo.integration.advanced-map-tool.advanced-coordinates.scale' | translate}} {{ formattedScale$ | async }}</p>\r\n<p class=\"igo-zoom mat-typography\">{{'igo.integration.advanced-map-tool.advanced-coordinates.resolution' | translate}} {{map.viewController.getResolution() | number: '1.0-0' }}</p>", styles: ["textarea{resize:none}mat-form-field{padding:10px 15px}mat-form-field.coordinates{width:120px}mat-form-field.coordinates2{width:120px;padding:0 10px 0 3px}mat-form-field.igo-input-container{width:60%;padding:0 15px}.igo-form-button-group{padding:0 10px;margin:0 10px}.center-toggle{padding:10px 15px 35px}mat-slide-toggle{font-size:small}.igo-zoom{padding:0 15px}\n"] }]
|
|
3878
|
-
}], function () { return [{ type: MapState }, { type: i2.LanguageService }, { type: i2.MessageService }, { type: i0.ChangeDetectorRef }, { type: i2.StorageService }, { type: i2.ConfigService }, { type: i3.
|
|
3878
|
+
}], function () { return [{ type: MapState }, { type: i2.LanguageService }, { type: i2.MessageService }, { type: i0.ChangeDetectorRef }, { type: i2.StorageService }, { type: i2.ConfigService }, { type: i3.FormBuilder }]; }, { projectionsLimitations: [{
|
|
3879
3879
|
type: Input
|
|
3880
3880
|
}] });
|
|
3881
3881
|
})();
|