@hestia-earth/ui-components 0.23.21 → 0.23.23
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/common/maps-drawing-confirm/maps-drawing-confirm.component.d.ts +9 -5
- package/common/navigation-menu/navigation-menu.component.d.ts +5 -6
- package/esm2022/common/maps-drawing-confirm/maps-drawing-confirm.component.mjs +46 -34
- package/esm2022/common/navigation-menu/navigation-menu.component.mjs +14 -14
- package/esm2022/files/files-error.model.mjs +15 -8
- package/fesm2022/hestia-earth-ui-components.mjs +73 -57
- package/fesm2022/hestia-earth-ui-components.mjs.map +1 -1
- package/files/files-error.model.d.ts +1 -1
- package/package.json +1 -1
- package/svg-icons/bug.svg +13 -0
- package/svg-icons/checkmark.svg +6 -0
- package/svg-icons/copy.svg +6 -0
- package/svg-icons/csv.svg +3 -0
- package/svg-icons/cycle.svg +20 -0
- package/svg-icons/far-circle-info.svg +6 -7
- package/svg-icons/filter.svg +5 -0
- package/svg-icons/glossary.svg +7 -7
- package/svg-icons/icons.json +74 -34
- package/svg-icons/map-pin.svg +11 -0
- package/svg-icons/map.svg +7 -0
- package/svg-icons/paper.svg +10 -0
- package/svg-icons/schema.svg +10 -8
- package/svg-icons/search-large.svg +5 -0
- package/svg-icons/search-small.svg +5 -0
- package/svg-icons/far-info-circle.svg +0 -5
|
@@ -1,26 +1,30 @@
|
|
|
1
1
|
/// <reference types="google.maps" />
|
|
2
|
-
import { OnInit,
|
|
2
|
+
import { OnInit, OnDestroy, EventEmitter, DestroyRef } from '@angular/core';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class MapsDrawingConfirmComponent implements OnInit,
|
|
5
|
+
export declare class MapsDrawingConfirmComponent implements OnInit, OnDestroy {
|
|
6
|
+
protected mapLoaded$: Observable<boolean>;
|
|
5
7
|
private listeners;
|
|
6
8
|
private shapes;
|
|
7
9
|
private feature?;
|
|
8
10
|
private coordinates?;
|
|
9
11
|
private map?;
|
|
10
12
|
value?: string;
|
|
11
|
-
modes
|
|
13
|
+
modes?: google.maps.drawing.OverlayType[];
|
|
12
14
|
center: {
|
|
13
15
|
lat: number;
|
|
14
16
|
lng: number;
|
|
15
17
|
};
|
|
16
18
|
zoom: number;
|
|
17
19
|
closed: EventEmitter<string | google.maps.LatLngLiteral>;
|
|
18
|
-
options: google.maps.MapOptions
|
|
20
|
+
protected options: import("@angular/core").WritableSignal<google.maps.MapOptions>;
|
|
21
|
+
constructor(destroyRef: DestroyRef, mapLoaded$: Observable<boolean>);
|
|
19
22
|
ngOnInit(): void;
|
|
20
|
-
ngAfterViewInit(): void;
|
|
21
23
|
ngOnDestroy(): void;
|
|
22
24
|
private onPolygonAdded;
|
|
23
25
|
private onMarkerAdded;
|
|
26
|
+
private loadData;
|
|
27
|
+
protected mapInitialized(): void;
|
|
24
28
|
confirm(): void;
|
|
25
29
|
clear(): void;
|
|
26
30
|
static ɵfac: i0.ɵɵFactoryDeclaration<MapsDrawingConfirmComponent, never>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { OnChanges, SimpleChanges } from '@angular/core';
|
|
2
1
|
import { IsActiveMatchOptions } from '@angular/router';
|
|
3
2
|
import { NavigationMenuService } from '../navigation-menu.service';
|
|
4
3
|
import { ResponsiveService } from '../responsive.service';
|
|
@@ -12,15 +11,15 @@ export interface INavigationMenuLink {
|
|
|
12
11
|
[key: string]: string;
|
|
13
12
|
};
|
|
14
13
|
fragment?: string;
|
|
14
|
+
expanded?: boolean;
|
|
15
15
|
}
|
|
16
|
-
export declare class NavigationMenuComponent
|
|
16
|
+
export declare class NavigationMenuComponent {
|
|
17
17
|
private service;
|
|
18
18
|
protected responsiveService: ResponsiveService;
|
|
19
19
|
protected sticky: boolean;
|
|
20
20
|
protected collapsible: boolean;
|
|
21
21
|
protected links: INavigationMenuLink[];
|
|
22
22
|
protected routerLinkMatchOptions: IsActiveMatchOptions;
|
|
23
|
-
protected listExpanded: string[];
|
|
24
23
|
collapsed: boolean;
|
|
25
24
|
opened: boolean;
|
|
26
25
|
protected classes: string;
|
|
@@ -28,10 +27,10 @@ export declare class NavigationMenuComponent implements OnChanges {
|
|
|
28
27
|
constructor(service: NavigationMenuService, responsiveService: ResponsiveService);
|
|
29
28
|
get maxHeight(): string;
|
|
30
29
|
get withPrimaryIcons(): boolean;
|
|
31
|
-
ngOnChanges(changes: SimpleChanges): void;
|
|
32
30
|
toggle(): void;
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
private collapseOtherLinks;
|
|
32
|
+
toggleLinks(item: INavigationMenuLink, index: number): void;
|
|
33
|
+
listActiveLinkChange(item: INavigationMenuLink): void;
|
|
35
34
|
static ɵfac: i0.ɵɵFactoryDeclaration<NavigationMenuComponent, never>;
|
|
36
35
|
static ɵcmp: i0.ɵɵComponentDeclaration<NavigationMenuComponent, "he-navigation-menu", never, { "sticky": { "alias": "sticky"; "required": false; }; "collapsible": { "alias": "collapsible"; "required": false; }; "links": { "alias": "links"; "required": false; }; "routerLinkMatchOptions": { "alias": "routerLinkMatchOptions"; "required": false; }; }, {}, never, ["[outer-content]", "[inner-content]"], false, never>;
|
|
37
36
|
}
|
|
@@ -1,46 +1,38 @@
|
|
|
1
|
-
import { Component, Output, EventEmitter, Input, ViewChild } from '@angular/core';
|
|
1
|
+
import { Component, Output, EventEmitter, Input, ViewChild, Inject, signal } from '@angular/core';
|
|
2
2
|
import { GoogleMap } from '@angular/google-maps';
|
|
3
3
|
import { isNumber } from '@hestia-earth/utils';
|
|
4
|
-
import {
|
|
4
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
|
+
import { HE_MAP_LOADED, defaultFeature, addPolygonToFeature, polygonsFromFeature, strokeStyle } from '../maps-utils';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/
|
|
7
|
-
import * as i2 from "@
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
import * as i2 from "@angular/google-maps";
|
|
9
|
+
import * as i3 from "@fortawesome/angular-fontawesome";
|
|
10
|
+
import * as i4 from "rxjs";
|
|
8
11
|
export class MapsDrawingConfirmComponent {
|
|
9
|
-
constructor() {
|
|
12
|
+
constructor(destroyRef, mapLoaded$) {
|
|
13
|
+
this.mapLoaded$ = mapLoaded$;
|
|
10
14
|
this.listeners = [];
|
|
11
15
|
this.shapes = [];
|
|
12
16
|
this.feature = defaultFeature();
|
|
13
|
-
this.modes = [google.maps.drawing.OverlayType.POLYGON];
|
|
14
17
|
this.center = { lat: 0, lng: 0 };
|
|
15
18
|
this.zoom = 3;
|
|
16
19
|
this.closed = new EventEmitter();
|
|
17
|
-
this.options = {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
this.options = signal({});
|
|
21
|
+
mapLoaded$.pipe(takeUntilDestroyed(destroyRef)).subscribe(() => {
|
|
22
|
+
this.options.set({
|
|
23
|
+
fullscreenControl: false,
|
|
24
|
+
mapTypeControl: true,
|
|
25
|
+
streetViewControl: false,
|
|
26
|
+
zoomControl: true,
|
|
27
|
+
zoomControlOptions: {
|
|
28
|
+
position: google.maps.ControlPosition.TOP_RIGHT
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
});
|
|
26
32
|
}
|
|
27
33
|
ngOnInit() {
|
|
28
34
|
this.feature = this.value && !isNumber(this.value) ? JSON.parse(this.value) : this.feature;
|
|
29
35
|
}
|
|
30
|
-
ngAfterViewInit() {
|
|
31
|
-
this.shapes = polygonsFromFeature(this.feature);
|
|
32
|
-
this.shapes.forEach(polygon => polygon.setMap(this.map?.googleMap));
|
|
33
|
-
const drawingManager = new google.maps.drawing.DrawingManager({
|
|
34
|
-
drawingControlOptions: {
|
|
35
|
-
position: google.maps.ControlPosition.TOP_CENTER,
|
|
36
|
-
drawingModes: this.modes
|
|
37
|
-
},
|
|
38
|
-
polygonOptions: strokeStyle
|
|
39
|
-
});
|
|
40
|
-
drawingManager.setMap(this.map?.googleMap);
|
|
41
|
-
this.listeners.push(google.maps.event.addListener(drawingManager, 'polygoncomplete', polygon => this.onPolygonAdded(polygon)));
|
|
42
|
-
this.listeners.push(google.maps.event.addListener(drawingManager, 'markercomplete', marker => this.onMarkerAdded(marker)));
|
|
43
|
-
}
|
|
44
36
|
ngOnDestroy() {
|
|
45
37
|
this.listeners.map(listener => google.maps.event.removeListener(listener));
|
|
46
38
|
}
|
|
@@ -54,6 +46,23 @@ export class MapsDrawingConfirmComponent {
|
|
|
54
46
|
const position = marker.getPosition();
|
|
55
47
|
this.coordinates = position?.toJSON();
|
|
56
48
|
}
|
|
49
|
+
loadData() {
|
|
50
|
+
this.shapes = polygonsFromFeature(this.feature);
|
|
51
|
+
this.shapes.forEach(polygon => polygon.setMap(this.map?.googleMap));
|
|
52
|
+
const drawingManager = new google.maps.drawing.DrawingManager({
|
|
53
|
+
drawingControlOptions: {
|
|
54
|
+
position: google.maps.ControlPosition.TOP_CENTER,
|
|
55
|
+
drawingModes: this.modes || [google.maps.drawing.OverlayType.POLYGON]
|
|
56
|
+
},
|
|
57
|
+
polygonOptions: strokeStyle
|
|
58
|
+
});
|
|
59
|
+
drawingManager.setMap(this.map?.googleMap);
|
|
60
|
+
this.listeners.push(google.maps.event.addListener(drawingManager, 'polygoncomplete', polygon => this.onPolygonAdded(polygon)));
|
|
61
|
+
this.listeners.push(google.maps.event.addListener(drawingManager, 'markercomplete', marker => this.onMarkerAdded(marker)));
|
|
62
|
+
}
|
|
63
|
+
mapInitialized() {
|
|
64
|
+
setTimeout(() => this.loadData());
|
|
65
|
+
}
|
|
57
66
|
confirm() {
|
|
58
67
|
this.closed.next(this.coordinates || JSON.stringify(this.feature) || '');
|
|
59
68
|
}
|
|
@@ -63,13 +72,16 @@ export class MapsDrawingConfirmComponent {
|
|
|
63
72
|
this.coordinates = undefined;
|
|
64
73
|
this.feature = undefined;
|
|
65
74
|
}
|
|
66
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: MapsDrawingConfirmComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
67
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: MapsDrawingConfirmComponent, selector: "he-maps-drawing-confirm", inputs: { value: "value", modes: "modes", center: "center", zoom: "zoom" }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "map", first: true, predicate: GoogleMap, descendants: true }], ngImport: i0, template: "<div class=\"modal is-large is-active\">\n <div class=\"modal-background\"></div>\n <div class=\"modal-card\">\n <header class=\"modal-card-head\">\n <p class=\"modal-card-title\">Draw on Map</p>\n <button class=\"delete\" aria-label=\"close\" (click)=\"closed.next(value)\"></button>\n </header>\n <section class=\"modal-card-body p-0\">\n <google-map height=\"100%\"
|
|
75
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: MapsDrawingConfirmComponent, deps: [{ token: i0.DestroyRef }, { token: HE_MAP_LOADED }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
76
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: MapsDrawingConfirmComponent, selector: "he-maps-drawing-confirm", inputs: { value: "value", modes: "modes", center: "center", zoom: "zoom" }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "map", first: true, predicate: GoogleMap, descendants: true }], ngImport: i0, template: "<div class=\"modal is-large is-active\">\n <div class=\"modal-background\"></div>\n <div class=\"modal-card\">\n <header class=\"modal-card-head\">\n <p class=\"modal-card-title\">Draw on Map</p>\n <button class=\"delete\" aria-label=\"close\" (click)=\"closed.next(value)\"></button>\n </header>\n <section class=\"modal-card-body p-0\">\n <google-map\n *ngIf=\"mapLoaded$ | async\"\n (mapInitialized)=\"mapInitialized()\"\n height=\"100%\"\n width=\"100%\"\n [zoom]=\"zoom\"\n [center]=\"center\"\n [options]=\"options()\"></google-map>\n </section>\n <footer class=\"modal-card-foot\">\n <button class=\"button is-primary\" (click)=\"confirm()\">\n <span>Confirm</span>\n </button>\n <button class=\"button is-ghost\" (click)=\"closed.next(value)\">\n <span>Close</span>\n </button>\n <button class=\"button is-danger\" (click)=\"clear()\">\n <fa-icon class=\"mr-2\" icon=\"times\"></fa-icon>\n <span>Clear</span>\n </button>\n </footer>\n </div>\n</div>\n", styles: ["google-map{display:block;height:100%;max-height:calc(100vh - 146px);min-height:500px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.GoogleMap, selector: "google-map", inputs: ["height", "width", "mapTypeId", "center", "zoom", "options"], outputs: ["mapInitialized", "authFailure", "boundsChanged", "centerChanged", "mapClick", "mapDblclick", "mapDrag", "mapDragend", "mapDragstart", "headingChanged", "idle", "maptypeidChanged", "mapMousemove", "mapMouseout", "mapMouseover", "projectionChanged", "mapRightclick", "tilesloaded", "tiltChanged", "zoomChanged"], exportAs: ["googleMap"] }, { kind: "component", type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
|
|
68
77
|
}
|
|
69
78
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: MapsDrawingConfirmComponent, decorators: [{
|
|
70
79
|
type: Component,
|
|
71
|
-
args: [{ selector: 'he-maps-drawing-confirm', template: "<div class=\"modal is-large is-active\">\n <div class=\"modal-background\"></div>\n <div class=\"modal-card\">\n <header class=\"modal-card-head\">\n <p class=\"modal-card-title\">Draw on Map</p>\n <button class=\"delete\" aria-label=\"close\" (click)=\"closed.next(value)\"></button>\n </header>\n <section class=\"modal-card-body p-0\">\n <google-map height=\"100%\"
|
|
72
|
-
}],
|
|
80
|
+
args: [{ selector: 'he-maps-drawing-confirm', template: "<div class=\"modal is-large is-active\">\n <div class=\"modal-background\"></div>\n <div class=\"modal-card\">\n <header class=\"modal-card-head\">\n <p class=\"modal-card-title\">Draw on Map</p>\n <button class=\"delete\" aria-label=\"close\" (click)=\"closed.next(value)\"></button>\n </header>\n <section class=\"modal-card-body p-0\">\n <google-map\n *ngIf=\"mapLoaded$ | async\"\n (mapInitialized)=\"mapInitialized()\"\n height=\"100%\"\n width=\"100%\"\n [zoom]=\"zoom\"\n [center]=\"center\"\n [options]=\"options()\"></google-map>\n </section>\n <footer class=\"modal-card-foot\">\n <button class=\"button is-primary\" (click)=\"confirm()\">\n <span>Confirm</span>\n </button>\n <button class=\"button is-ghost\" (click)=\"closed.next(value)\">\n <span>Close</span>\n </button>\n <button class=\"button is-danger\" (click)=\"clear()\">\n <fa-icon class=\"mr-2\" icon=\"times\"></fa-icon>\n <span>Clear</span>\n </button>\n </footer>\n </div>\n</div>\n", styles: ["google-map{display:block;height:100%;max-height:calc(100vh - 146px);min-height:500px}\n"] }]
|
|
81
|
+
}], ctorParameters: function () { return [{ type: i0.DestroyRef }, { type: i4.Observable, decorators: [{
|
|
82
|
+
type: Inject,
|
|
83
|
+
args: [HE_MAP_LOADED]
|
|
84
|
+
}] }]; }, propDecorators: { map: [{
|
|
73
85
|
type: ViewChild,
|
|
74
86
|
args: [GoogleMap]
|
|
75
87
|
}], value: [{
|
|
@@ -83,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
|
|
|
83
95
|
}], closed: [{
|
|
84
96
|
type: Output
|
|
85
97
|
}] } });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcy1kcmF3aW5nLWNvbmZpcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1vbi9tYXBzLWRyYXdpbmctY29uZmlybS9tYXBzLWRyYXdpbmctY29uZmlybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL21hcHMtZHJhd2luZy1jb25maXJtL21hcHMtZHJhd2luZy1jb25maXJtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9DLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRS9DLE9BQU8sRUFHTCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixXQUFXLEVBQ1osTUFBTSxlQUFlLENBQUM7Ozs7QUFPdkIsTUFBTSxPQUFPLDJCQUEyQjtJQUx4QztRQU1VLGNBQVMsR0FBb0MsRUFBRSxDQUFDO1FBQ2hELFdBQU0sR0FBaUQsRUFBRSxDQUFDO1FBRTFELFlBQU8sR0FBbUMsY0FBYyxFQUFFLENBQUM7UUFTNUQsVUFBSyxHQUFzQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVyRixXQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUU1QixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBR1QsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFzQyxDQUFDO1FBRWhFLFlBQU8sR0FBMkI7WUFDdkMsaUJBQWlCLEVBQUUsS0FBSztZQUN4QixjQUFjLEVBQUUsSUFBSTtZQUNw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Q0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7SUFDM0IsQ0FBQzs4R0FoRlUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsK01BTzNCLFNBQVMsZ0RDekJ0Qiw0OEJBd0JBOzsyRkROYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UseUJBQXlCOzhCQVkzQixHQUFHO3NCQURWLFNBQVM7dUJBQUMsU0FBUztnQkFJYixLQUFLO3NCQURYLEtBQUs7Z0JBR0MsS0FBSztzQkFEWCxLQUFLO2dCQUdDLE1BQU07c0JBRFosS0FBSztnQkFHQyxJQUFJO3NCQURWLEtBQUs7Z0JBSUMsTUFBTTtzQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdvb2dsZU1hcCB9IGZyb20gJ0Bhbmd1bGFyL2dvb2dsZS1tYXBzJztcbmltcG9ydCB7IGlzTnVtYmVyIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscyc7XG5cbmltcG9ydCB7XG4gIElGZWF0dXJlLFxuICBJRmVhdHVyZUNvbGxlY3Rpb24sXG4gIGRlZmF1bHRGZWF0dXJlLFxuICBhZGRQb2x5Z29uVG9GZWF0dXJlLFxuICBwb2x5Z29uc0Zyb21GZWF0dXJlLFxuICBzdHJva2VTdHlsZVxufSBmcm9tICcuLi9tYXBzLXV0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtbWFwcy1kcmF3aW5nLWNvbmZpcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFwcy1kcmF3aW5nLWNvbmZpcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXBzLWRyYXdpbmctY29uZmlybS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1hcHNEcmF3aW5nQ29uZmlybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBsaXN0ZW5lcnM6IGdvb2dsZS5tYXBzLk1hcHNFdmVudExpc3RlbmVyW10gPSBbXTtcbiAgcHJpdmF0ZSBzaGFwZXM6IChnb29nbGUubWFwcy5NYXJrZXIgfCBnb29nbGUubWFwcy5Qb2x5Z29uKVtdID0gW107XG5cbiAgcHJpdmF0ZSBmZWF0dXJlPzogSUZlYXR1cmUgfCBJRmVhdHVyZUNvbGxlY3Rpb24gPSBkZWZhdWx0RmVhdHVyZSgpO1xuICBwcml2YXRlIGNvb3JkaW5hdGVzPzogZ29vZ2xlLm1hcHMuTGF0TG5nTGl0ZXJhbDtcblxuICBAVmlld0NoaWxkKEdvb2dsZU1hcClcbiAgcHJpdmF0ZSBtYXA/OiBHb29nbGVNYXA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHZhbHVlPzogc3RyaW5nO1xuICBASW5wdXQoKVxuICBwdWJsaWMgbW9kZXM6IGdvb2dsZS5tYXBzLmRyYXdpbmcuT3ZlcmxheVR5cGVbXSA9IFtnb29nbGUubWFwcy5kcmF3aW5nLk92ZXJsYXlUeXBlLlBPTFlHT05dO1xuICBASW5wdXQoKVxuICBwdWJsaWMgY2VudGVyID0geyBsYXQ6IDAsIGxuZzogMCB9O1xuICBASW5wdXQoKVxuICBwdWJsaWMgem9vbSA9IDM7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGdvb2dsZS5tYXBzLkxhdExuZ0xpdGVyYWwgfCBzdHJpbmc+KCk7XG5cbiAgcHVibGljIG9wdGlvbnM6IGdvb2dsZS5tYXBzLk1hcE9wdGlvbnMgPSB7XG4gICAgZnVsbHNjcmVlbkNvbnRyb2w6IGZhbHNlLFxuICAgIG1hcFR5cGVDb250cm9sOiB0cnVlLFxuICAgIHN0cmVldFZpZXdDb250cm9sOiBmYWxzZSxcbiAgICB6b29tQ29udHJvbDogdHJ1ZSxcbiAgICB6b29tQ29udHJvbE9wdGlvbnM6IHtcbiAgICAgIHBvc2l0aW9uOiBnb29nbGUubWFwcy5Db250cm9sUG9zaXRpb24uVE9QX1JJR0hUXG4gICAgfVxuICB9O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZmVhdHVyZSA9IHRoaXMudmFsdWUgJiYgIWlzTnVtYmVyKHRoaXMudmFsdWUpID8gSlNPTi5wYXJzZSh0aGlzLnZhbHVlKSA6IHRoaXMuZmVhdHVyZTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnNoYXBlcyA9IHBvbHlnb25zRnJvbUZlYXR1cmUodGhpcy5mZWF0dXJlKTtcbiAgICB0aGlzLnNoYXBlcy5mb3JFYWNoKHBvbHlnb24gPT4gcG9seWdvbi5zZXRNYXAodGhpcy5tYXA/Lmdvb2dsZU1hcCkpO1xuICAgIGNvbnN0IGRyYXdpbmdNYW5hZ2VyID0gbmV3IGdvb2dsZS5tYXBzLmRyYXdpbmcuRHJhd2luZ01hbmFnZXIoe1xuICAgICAgZHJhd2luZ0NvbnRyb2xPcHRpb25zOiB7XG4gICAgICAgIHBvc2l0aW9uOiBnb29nbGUubWFwcy5Db250cm9sUG9zaXRpb24uVE9QX0NFTlRFUixcbiAgICAgICAgZHJhd2luZ01vZGVzOiB0aGlzLm1vZGVzXG4gICAgICB9LFxuICAgICAgcG9seWdvbk9wdGlvbnM6IHN0cm9rZVN0eWxlXG4gICAgfSk7XG4gICAgZHJhd2luZ01hbmFnZXIuc2V0TWFwKHRoaXMubWFwPy5nb29nbGVNYXApO1xuICAgIHRoaXMubGlzdGVuZXJzLnB1c2goXG4gICAgICBnb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lcihkcmF3aW5nTWFuYWdlciwgJ3BvbHlnb25jb21wbGV0ZScsIHBvbHlnb24gPT4gdGhpcy5vblBvbHlnb25BZGRlZChwb2x5Z29uKSlcbiAgICApO1xuICAgIHRoaXMubGlzdGVuZXJzLnB1c2goXG4gICAgICBnb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lcihkcmF3aW5nTWFuYWdlciwgJ21hcmtlcmNvbXBsZXRlJywgbWFya2VyID0+IHRoaXMub25NYXJrZXJBZGRlZChtYXJrZXIpKVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmxpc3RlbmVycy5tYXAobGlzdGVuZXIgPT4gZ29vZ2xlLm1hcHMuZXZlbnQucmVtb3ZlTGlzdGVuZXIobGlzdGVuZXIpKTtcbiAgfVxuXG4gIHByaXZhdGUgb25Qb2x5Z29uQWRkZWQocG9seWdvbjogZ29vZ2xlLm1hcHMuUG9seWdvbikge1xuICAgIHRoaXMuc2hhcGVzLnB1c2gocG9seWdvbik7XG4gICAgdGhpcy5mZWF0dXJlID0gdGhpcy5mZWF0dXJlIHx8IGRlZmF1bHRGZWF0dXJlKCk7XG4gICAgYWRkUG9seWdvblRvRmVhdHVyZSh0aGlzLmZlYXR1cmUsIHBvbHlnb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBvbk1hcmtlckFkZGVkKG1hcmtlcjogZ29vZ2xlLm1hcHMuTWFya2VyKSB7XG4gICAgdGhpcy5zaGFwZXMucHVzaChtYXJrZXIpO1xuICAgIGNvbnN0IHBvc2l0aW9uID0gbWFya2VyLmdldFBvc2l0aW9uKCk7XG4gICAgdGhpcy5jb29yZGluYXRlcyA9IHBvc2l0aW9uPy50b0pTT04oKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25maXJtKCkge1xuICAgIHRoaXMuY2xvc2VkLm5leHQodGhpcy5jb29yZGluYXRlcyB8fCBKU09OLnN0cmluZ2lmeSh0aGlzLmZlYXR1cmUpIHx8ICcnKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpIHtcbiAgICB0aGlzLnNoYXBlcy5mb3JFYWNoKHNoYXBlID0+IHNoYXBlLnNldE1hcChudWxsKSk7XG4gICAgdGhpcy5zaGFwZXMgPSBbXTtcbiAgICB0aGlzLmNvb3JkaW5hdGVzID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuZmVhdHVyZSA9IHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsIGlzLWxhcmdlIGlzLWFjdGl2ZVwiPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYmFja2dyb3VuZFwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtY2FyZFwiPlxuICAgIDxoZWFkZXIgY2xhc3M9XCJtb2RhbC1jYXJkLWhlYWRcIj5cbiAgICAgIDxwIGNsYXNzPVwibW9kYWwtY2FyZC10aXRsZVwiPkRyYXcgb24gTWFwPC9wPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImRlbGV0ZVwiIGFyaWEtbGFiZWw9XCJjbG9zZVwiIChjbGljayk9XCJjbG9zZWQubmV4dCh2YWx1ZSlcIj48L2J1dHRvbj5cbiAgICA8L2hlYWRlcj5cbiAgICA8c2VjdGlvbiBjbGFzcz1cIm1vZGFsLWNhcmQtYm9keSBwLTBcIj5cbiAgICAgIDxnb29nbGUtbWFwIGhlaWdodD1cIjEwMCVcIiB3aWR0aD1cIjEwMCVcIiBbem9vbV09XCJ6b29tXCIgW2NlbnRlcl09XCJjZW50ZXJcIiBbb3B0aW9uc109XCJvcHRpb25zXCI+PC9nb29nbGUtbWFwPlxuICAgIDwvc2VjdGlvbj5cbiAgICA8Zm9vdGVyIGNsYXNzPVwibW9kYWwtY2FyZC1mb290XCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGlzLXByaW1hcnlcIiAoY2xpY2spPVwiY29uZmlybSgpXCI+XG4gICAgICAgIDxzcGFuPkNvbmZpcm08L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gaXMtZ2hvc3RcIiAoY2xpY2spPVwiY2xvc2VkLm5leHQodmFsdWUpXCI+XG4gICAgICAgIDxzcGFuPkNsb3NlPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGlzLWRhbmdlclwiIChjbGljayk9XCJjbGVhcigpXCI+XG4gICAgICAgIDxmYS1pY29uIGNsYXNzPVwibXItMlwiIGljb249XCJ0aW1lc1wiPjwvZmEtaWNvbj5cbiAgICAgICAgPHNwYW4+Q2xlYXI8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Zvb3Rlcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcy1kcmF3aW5nLWNvbmZpcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1vbi9tYXBzLWRyYXdpbmctY29uZmlybS9tYXBzLWRyYXdpbmctY29uZmlybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL21hcHMtZHJhd2luZy1jb25maXJtL21hcHMtZHJhd2luZy1jb25maXJtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBR1QsTUFBTSxFQUNOLFlBQVksRUFDWixLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUdoRSxPQUFPLEVBQ0wsYUFBYSxFQUdiLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLFdBQVcsRUFDWixNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBT3ZCLE1BQU0sT0FBTywyQkFBMkI7SUF3QnRDLFlBQ0UsVUFBc0IsRUFDVyxVQUErQjtRQUEvQixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQXpCMUQsY0FBUyxHQUFvQyxFQUFFLENBQUM7UUFDaEQsV0FBTSxHQUFpRCxFQUFFLENBQUM7UUFFMUQsWUFBTyxHQUFtQyxjQUFjLEVBQUUsQ0FBQztRQVc1RCxXQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUU1QixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBR1QsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFzQyxDQUFDO1FBRTdELFlBQU8sR0FB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b3ksXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgVmlld0NoaWxkLFxuICBJbmplY3QsXG4gIHNpZ25hbCxcbiAgRGVzdHJveVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdvb2dsZU1hcCB9IGZyb20gJ0Bhbmd1bGFyL2dvb2dsZS1tYXBzJztcbmltcG9ydCB7IGlzTnVtYmVyIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIEhFX01BUF9MT0FERUQsXG4gIElGZWF0dXJlLFxuICBJRmVhdHVyZUNvbGxlY3Rpb24sXG4gIGRlZmF1bHRGZWF0dXJlLFxuICBhZGRQb2x5Z29uVG9GZWF0dXJlLFxuICBwb2x5Z29uc0Zyb21GZWF0dXJlLFxuICBzdHJva2VTdHlsZVxufSBmcm9tICcuLi9tYXBzLXV0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtbWFwcy1kcmF3aW5nLWNvbmZpcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFwcy1kcmF3aW5nLWNvbmZpcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXBzLWRyYXdpbmctY29uZmlybS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1hcHNEcmF3aW5nQ29uZmlybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBsaXN0ZW5lcnM6IGdvb2dsZS5tYXBzLk1hcHNFdmVudExpc3RlbmVyW10gPSBbXTtcbiAgcHJpdmF0ZSBzaGFwZXM6IChnb29nbGUubWFwcy5NYXJrZXIgfCBnb29nbGUubWFwcy5Qb2x5Z29uKVtdID0gW107XG5cbiAgcHJpdmF0ZSBmZWF0dXJlPzogSUZlYXR1cmUgfCBJRmVhdHVyZUNvbGxlY3Rpb24gPSBkZWZhdWx0RmVhdHVyZSgpO1xuICBwcml2YXRlIGNvb3JkaW5hdGVzPzogZ29vZ2xlLm1hcHMuTGF0TG5nTGl0ZXJhbDtcblxuICBAVmlld0NoaWxkKEdvb2dsZU1hcClcbiAgcHJpdmF0ZSBtYXA/OiBHb29nbGVNYXA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHZhbHVlPzogc3RyaW5nO1xuICBASW5wdXQoKVxuICBwdWJsaWMgbW9kZXM/OiBnb29nbGUubWFwcy5kcmF3aW5nLk92ZXJsYXlUeXBlW107XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjZW50ZXIgPSB7IGxhdDogMCwgbG5nOiAwIH07XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB6b29tID0gMztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Z29vZ2xlLm1hcHMuTGF0TG5nTGl0ZXJhbCB8IHN0cmluZz4oKTtcblxuICBwcm90ZWN0ZWQgb3B0aW9ucyA9IHNpZ25hbCh7fSBhcyBnb29nbGUubWFwcy5NYXBPcHRpb25zKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkZXN0cm95UmVmOiBEZXN0cm95UmVmLFxuICAgIEBJbmplY3QoSEVfTUFQX0xPQURFRCkgcHJvdGVjdGVkIG1hcExvYWRlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cbiAgKSB7XG4gICAgbWFwTG9hZGVkJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZChkZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMub3B0aW9ucy5zZXQoe1xuICAgICAgICBmdWxsc2NyZWVuQ29udHJvbDogZmFsc2UsXG4gICAgICAgIG1hcFR5cGVDb250cm9sOiB0cnVlLFxuICAgICAgICBzdHJlZXRWaWV3Q29udHJvbDogZmFsc2UsXG4gICAgICAgIHpvb21Db250cm9sOiB0cnVlLFxuICAgICAgICB6b29tQ29udHJvbE9wdGlvbnM6IHtcbiAgICAgICAgICBwb3NpdGlvbjogZ29vZ2xlLm1hcHMuQ29udHJvbFBvc2l0aW9uLlRPUF9SSUdIVFxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZmVhdHVyZSA9IHRoaXMudmFsdWUgJiYgIWlzTnVtYmVyKHRoaXMudmFsdWUpID8gSlNPTi5wYXJzZSh0aGlzLnZhbHVlKSA6IHRoaXMuZmVhdHVyZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMubGlzdGVuZXJzLm1hcChsaXN0ZW5lciA9PiBnb29nbGUubWFwcy5ldmVudC5yZW1vdmVMaXN0ZW5lcihsaXN0ZW5lcikpO1xuICB9XG5cbiAgcHJpdmF0ZSBvblBvbHlnb25BZGRlZChwb2x5Z29uOiBnb29nbGUubWFwcy5Qb2x5Z29uKSB7XG4gICAgdGhpcy5zaGFwZXMucHVzaChwb2x5Z29uKTtcbiAgICB0aGlzLmZlYXR1cmUgPSB0aGlzLmZlYXR1cmUgfHwgZGVmYXVsdEZlYXR1cmUoKTtcbiAgICBhZGRQb2x5Z29uVG9GZWF0dXJlKHRoaXMuZmVhdHVyZSwgcG9seWdvbik7XG4gIH1cblxuICBwcml2YXRlIG9uTWFya2VyQWRkZWQobWFya2VyOiBnb29nbGUubWFwcy5NYXJrZXIpIHtcbiAgICB0aGlzLnNoYXBlcy5wdXNoKG1hcmtlcik7XG4gICAgY29uc3QgcG9zaXRpb24gPSBtYXJrZXIuZ2V0UG9zaXRpb24oKTtcbiAgICB0aGlzLmNvb3JkaW5hdGVzID0gcG9zaXRpb24/LnRvSlNPTigpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRGF0YSgpIHtcbiAgICB0aGlzLnNoYXBlcyA9IHBvbHlnb25zRnJvbUZlYXR1cmUodGhpcy5mZWF0dXJlKTtcbiAgICB0aGlzLnNoYXBlcy5mb3JFYWNoKHBvbHlnb24gPT4gcG9seWdvbi5zZXRNYXAodGhpcy5tYXA/Lmdvb2dsZU1hcCkpO1xuICAgIGNvbnN0IGRyYXdpbmdNYW5hZ2VyID0gbmV3IGdvb2dsZS5tYXBzLmRyYXdpbmcuRHJhd2luZ01hbmFnZXIoe1xuICAgICAgZHJhd2luZ0NvbnRyb2xPcHRpb25zOiB7XG4gICAgICAgIHBvc2l0aW9uOiBnb29nbGUubWFwcy5Db250cm9sUG9zaXRpb24uVE9QX0NFTlRFUixcbiAgICAgICAgZHJhd2luZ01vZGVzOiB0aGlzLm1vZGVzIHx8IFtnb29nbGUubWFwcy5kcmF3aW5nLk92ZXJsYXlUeXBlLlBPTFlHT05dXG4gICAgICB9LFxuICAgICAgcG9seWdvbk9wdGlvbnM6IHN0cm9rZVN0eWxlXG4gICAgfSk7XG4gICAgZHJhd2luZ01hbmFnZXIuc2V0TWFwKHRoaXMubWFwPy5nb29nbGVNYXApO1xuICAgIHRoaXMubGlzdGVuZXJzLnB1c2goXG4gICAgICBnb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lcihkcmF3aW5nTWFuYWdlciwgJ3BvbHlnb25jb21wbGV0ZScsIHBvbHlnb24gPT4gdGhpcy5vblBvbHlnb25BZGRlZChwb2x5Z29uKSlcbiAgICApO1xuICAgIHRoaXMubGlzdGVuZXJzLnB1c2goXG4gICAgICBnb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lcihkcmF3aW5nTWFuYWdlciwgJ21hcmtlcmNvbXBsZXRlJywgbWFya2VyID0+IHRoaXMub25NYXJrZXJBZGRlZChtYXJrZXIpKVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFwSW5pdGlhbGl6ZWQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmxvYWREYXRhKCkpO1xuICB9XG5cbiAgcHVibGljIGNvbmZpcm0oKSB7XG4gICAgdGhpcy5jbG9zZWQubmV4dCh0aGlzLmNvb3JkaW5hdGVzIHx8IEpTT04uc3RyaW5naWZ5KHRoaXMuZmVhdHVyZSkgfHwgJycpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKCkge1xuICAgIHRoaXMuc2hhcGVzLmZvckVhY2goc2hhcGUgPT4gc2hhcGUuc2V0TWFwKG51bGwpKTtcbiAgICB0aGlzLnNoYXBlcyA9IFtdO1xuICAgIHRoaXMuY29vcmRpbmF0ZXMgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5mZWF0dXJlID0gdW5kZWZpbmVkO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibW9kYWwgaXMtbGFyZ2UgaXMtYWN0aXZlXCI+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1iYWNrZ3JvdW5kXCI+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1jYXJkXCI+XG4gICAgPGhlYWRlciBjbGFzcz1cIm1vZGFsLWNhcmQtaGVhZFwiPlxuICAgICAgPHAgY2xhc3M9XCJtb2RhbC1jYXJkLXRpdGxlXCI+RHJhdyBvbiBNYXA8L3A+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiZGVsZXRlXCIgYXJpYS1sYWJlbD1cImNsb3NlXCIgKGNsaWNrKT1cImNsb3NlZC5uZXh0KHZhbHVlKVwiPjwvYnV0dG9uPlxuICAgIDwvaGVhZGVyPlxuICAgIDxzZWN0aW9uIGNsYXNzPVwibW9kYWwtY2FyZC1ib2R5IHAtMFwiPlxuICAgICAgPGdvb2dsZS1tYXBcbiAgICAgICAgKm5nSWY9XCJtYXBMb2FkZWQkIHwgYXN5bmNcIlxuICAgICAgICAobWFwSW5pdGlhbGl6ZWQpPVwibWFwSW5pdGlhbGl6ZWQoKVwiXG4gICAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICBbem9vbV09XCJ6b29tXCJcbiAgICAgICAgW2NlbnRlcl09XCJjZW50ZXJcIlxuICAgICAgICBbb3B0aW9uc109XCJvcHRpb25zKClcIj48L2dvb2dsZS1tYXA+XG4gICAgPC9zZWN0aW9uPlxuICAgIDxmb290ZXIgY2xhc3M9XCJtb2RhbC1jYXJkLWZvb3RcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gaXMtcHJpbWFyeVwiIChjbGljayk9XCJjb25maXJtKClcIj5cbiAgICAgICAgPHNwYW4+Q29uZmlybTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBpcy1naG9zdFwiIChjbGljayk9XCJjbG9zZWQubmV4dCh2YWx1ZSlcIj5cbiAgICAgICAgPHNwYW4+Q2xvc2U8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gaXMtZGFuZ2VyXCIgKGNsaWNrKT1cImNsZWFyKClcIj5cbiAgICAgICAgPGZhLWljb24gY2xhc3M9XCJtci0yXCIgaWNvbj1cInRpbWVzXCI+PC9mYS1pY29uPlxuICAgICAgICA8c3Bhbj5DbGVhcjwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZm9vdGVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|