@tetacom/svg-charts 1.3.3 → 1.4.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/chart/directives/zoomable.directive.d.ts +1 -3
- package/chart/service/zoom.service.d.ts +4 -1
- package/esm2020/chart/chart-container/plotband/plot-band.component.mjs +4 -2
- package/esm2020/chart/directives/brushable.directive.mjs +2 -2
- package/esm2020/chart/directives/zoomable.directive.mjs +58 -63
- package/esm2020/chart/service/brush.service.mjs +1 -3
- package/esm2020/chart/service/zoom.service.mjs +17 -2
- package/fesm2015/tetacom-svg-charts.mjs +88 -75
- package/fesm2015/tetacom-svg-charts.mjs.map +1 -1
- package/fesm2020/tetacom-svg-charts.mjs +76 -65
- package/fesm2020/tetacom-svg-charts.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -4,13 +4,11 @@ import { IChartConfig } from '../model/i-chart-config';
|
|
|
4
4
|
import { Axis } from '../core/axis/axis';
|
|
5
5
|
import { D3ZoomEvent } from 'd3';
|
|
6
6
|
import { ChartService } from '../service/chart.service';
|
|
7
|
-
import { BroadcastService } from "../service/broadcast.service";
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
8
|
export declare class ZoomableDirective implements OnDestroy, AfterViewInit {
|
|
10
9
|
private elementRef;
|
|
11
10
|
private zoomService;
|
|
12
11
|
private chartService;
|
|
13
|
-
private broadcast;
|
|
14
12
|
private zone;
|
|
15
13
|
config: IChartConfig;
|
|
16
14
|
axis: Axis;
|
|
@@ -21,7 +19,7 @@ export declare class ZoomableDirective implements OnDestroy, AfterViewInit {
|
|
|
21
19
|
private zoom;
|
|
22
20
|
private alive;
|
|
23
21
|
private currentTransform;
|
|
24
|
-
constructor(elementRef: ElementRef, zoomService: ZoomService, chartService: ChartService,
|
|
22
|
+
constructor(elementRef: ElementRef, zoomService: ZoomService, chartService: ChartService, zone: NgZone);
|
|
25
23
|
ngOnInit(): void;
|
|
26
24
|
ngAfterViewInit(): void;
|
|
27
25
|
ngOnDestroy(): void;
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { AxisOrientation } from '../model/enum/axis-orientation';
|
|
3
|
+
import { OnDestroy } from '@angular/core';
|
|
3
4
|
import { ZoomMessage } from '../model/i-broadcast-message';
|
|
4
5
|
import { BroadcastService } from './broadcast.service';
|
|
5
6
|
import { ChartService } from './chart.service';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
|
-
export declare class ZoomService {
|
|
8
|
+
export declare class ZoomService implements OnDestroy {
|
|
8
9
|
private _broadcast;
|
|
9
10
|
private _chart;
|
|
10
11
|
zoomed: Observable<ZoomMessage>;
|
|
11
12
|
private zoomed$;
|
|
12
13
|
private broadcastChannel;
|
|
14
|
+
private broadcastSub;
|
|
13
15
|
constructor(_broadcast: BroadcastService, _chart: ChartService);
|
|
14
16
|
fireZoom(zoom: ZoomMessage): void;
|
|
15
17
|
broadcastZoom(zoom: ZoomMessage): void;
|
|
16
18
|
setBroadcastChannel(channel: string): void;
|
|
17
19
|
getD3Transform(targetDomain: [number, number], originalDomain: [number, number], scale: any, orientation: AxisOrientation, inverted: boolean): import("d3-zoom").ZoomTransform;
|
|
20
|
+
ngOnDestroy(): void;
|
|
18
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<ZoomService, never>;
|
|
19
22
|
static ɵprov: i0.ɵɵInjectableDeclaration<ZoomService>;
|
|
20
23
|
}
|
|
@@ -18,7 +18,9 @@ export class PlotBandComponent {
|
|
|
18
18
|
let [min, max] = this.scale.domain();
|
|
19
19
|
min = min instanceof Date ? min.getTime() : min;
|
|
20
20
|
max = max instanceof Date ? max.getTime() : max;
|
|
21
|
-
const
|
|
21
|
+
const from = this.plotBand.from instanceof Date ? this.plotBand.from.getTime() : this.plotBand.from;
|
|
22
|
+
const to = this.plotBand.to instanceof Date ? this.plotBand.to.getTime() : this.plotBand.to;
|
|
23
|
+
const position = ((from <= min ? min : from) + (to >= max ? max : to)) / 2;
|
|
22
24
|
return this.scale(position);
|
|
23
25
|
};
|
|
24
26
|
}
|
|
@@ -158,4 +160,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
158
160
|
type: HostListener,
|
|
159
161
|
args: ['contextmenu', ['$event']]
|
|
160
162
|
}] } });
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvdC1iYW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jaGFydC9jaGFydC1jb250YWluZXIvcGxvdGJhbmQvcGxvdC1iYW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jaGFydC9jaGFydC1jb250YWluZXIvcGxvdGJhbmQvcGxvdC1iYW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFLekIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFVbEUsTUFBTSxPQUFPLGlCQUFpQjtJQVU1QixZQUNVLFlBQTBCLEVBQzFCLFdBQXdCLEVBQ3hCLFlBQTBCLEVBQzFCLEdBQXNCLEVBQ3RCLE9BQW1CO1FBSm5CLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFUN0IsZ0JBQVcsR0FBRyxlQUFlLENBQUM7UUFnTDlCLG9CQUFlLEdBQUcsR0FBRyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUVyQyxHQUFHLEdBQUcsR0FBRyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDaEQsR0FBRyxHQUFHLEdBQUcsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBRWhELE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25JLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUE7SUE3S0QsQ0FBQztJQUVrQyxLQUFLLENBQUMsS0FBaUI7UUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNSLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNyQixLQUFLO1NBQ04sQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUV3QyxXQUFXLENBQUMsS0FBaUI7UUFDcEUsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNSLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNyQixLQUFLO1NBQ04sQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksQ0FBQyxLQUE0QjtRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsZUFBZTtRQUViLE1BQU0sZUFBZSxHQUFHLEVBQUU7YUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO2FBQ2xDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV2QixNQUFNLFlBQVksR0FBRyxFQUFFO2FBQ3BCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQzthQUNsQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFekIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFO2FBQ25CLElBQUksRUFBRTthQUNOLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxLQUFLLGVBQWUsQ0FBQyxDQUFDLEVBQUU7Z0JBQy9DLE9BQU8sRUFBQyxDQUFDLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDO2FBQ3ZDO1lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxlQUFlLENBQUMsQ0FBQyxFQUFFO2dCQUMvQyxPQUFPLEVBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQzthQUN2QztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUwsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVk7YUFDM0IsRUFBRSxDQUNELGdCQUFnQixFQUNoQixDQUFDLEtBQXlDLEVBQUUsQ0FBVyxFQUFFLEVBQUU7WUFFekQsSUFBSSxRQUFRLEdBQUcsVUFBVSxDQUN2QixlQUFlLENBQUMsSUFBSSxDQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FDakUsQ0FDRixDQUFDO1lBRUYsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDeEIsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQzlDLENBQUM7WUFFRixDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUN0QixLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQ3pELENBQUM7WUFFRixJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNSLEtBQUs7Z0JBQ0wsTUFBTSxFQUFFLENBQUM7YUFDVixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FDRixDQUFDO1FBRUosSUFBSSxVQUFVLENBQUM7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUU7YUFDckIsSUFBSSxFQUFFLENBQUM7UUFFVixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYzthQUMvQixFQUFFLENBQ0QsZ0JBQWdCLEVBQ2hCLENBQUMsS0FBeUMsRUFBRSxDQUFXLEVBQUUsRUFBRTtZQUN6RCxJQUFJLEtBQUssRUFBRSxJQUFJLEtBQUssT0FBTyxFQUFFO2dCQUMzQixNQUFNLEVBQUMsT0FBTyxFQUFDLEdBQUcsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDO2dCQUN0RCxVQUFVLEdBQUcsT0FBTyxDQUFDO2FBQ3RCO1lBRUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUM3QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBRTdDLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDO1lBRTlCLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDL0IsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQzlDLENBQUM7WUFFRixJQUFJLFVBQVUsS0FBSyxNQUFNLEVBQUU7Z0JBQ3pCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDO2dCQUVyQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDbEIsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUNmO2dCQUVELElBQUksU0FBUyxFQUFFO29CQUNiLENBQUMsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO2lCQUNuQjthQUNGO1lBRUQsSUFBSSxVQUFVLEtBQUssSUFBSSxFQUFFO2dCQUN2QixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLFFBQVEsQ0FBQztnQkFFbkMsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsQ0FBQyxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUM7aUJBQ2pCO2dCQUVELElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFO29CQUNsQixDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7aUJBQ2Y7YUFDRjtZQUVELElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ1IsS0FBSztnQkFDTCxNQUFNLEVBQUUsQ0FBQzthQUNWLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUNGLENBQUM7UUFFSixlQUFlLENBQUMsS0FBSyxDQUFXLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQyxZQUFZLENBQUMsS0FBSyxDQUFXLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1QyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFO1lBQzNCLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDNUI7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFO1lBQzNCLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxFQUFFO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FDYixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUM5RCxDQUFDO0lBQ0osQ0FBQztJQVlELE9BQU8sQ0FBQyxDQUFXO1FBQ2pCLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFO1lBQ25DLE9BQU8sUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxZQUFZLEdBQUcsQ0FBQztTQUNsRDtRQUNELE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDO0lBQ2hDLENBQUM7OzhHQXJNVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwrTkN4QjlCLHdsSUFvRkE7MkZENURhLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTtpTkFHdEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFlNkIsS0FBSztzQkFBdkMsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBT1EsV0FBVztzQkFBbkQsWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCwgT25EZXN0cm95XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHtQbG90QmFuZH0gZnJvbSAnLi4vLi4vbW9kZWwvcGxvdC1iYW5kJztcbmltcG9ydCB7U2NhbGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3NjYWxlLnNlcnZpY2UnO1xuaW1wb3J0IHtBeGlzfSBmcm9tICcuLi8uLi9jb3JlL2F4aXMvYXhpcyc7XG5pbXBvcnQge1pvb21TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3pvb20uc2VydmljZSc7XG5pbXBvcnQge0F4aXNPcmllbnRhdGlvbn0gZnJvbSAnLi4vLi4vbW9kZWwvZW51bS9heGlzLW9yaWVudGF0aW9uJztcbmltcG9ydCB7SUNoYXJ0RXZlbnR9IGZyb20gJy4uLy4uL21vZGVsL2ktY2hhcnQtZXZlbnQnO1xuaW1wb3J0IHtDaGFydFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvY2hhcnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1t0ZXRhLXBsb3QtYmFuZF0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGxvdC1iYW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGxvdC1iYW5kLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQbG90QmFuZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBsb3RCYW5kOiBQbG90QmFuZDtcbiAgQElucHV0KCkgYXhpczogQXhpcztcbiAgQElucHV0KCkgc2NhbGU6IGFueTtcbiAgQElucHV0KCkgc2l6ZTogRE9NUmVjdDtcblxuICBvcmllbnRhdGlvbiA9IEF4aXNPcmllbnRhdGlvbjtcbiAgcmVzaXplRWxlbWVudHM6IGFueTtcbiAgZHJhZ0VsZW1lbnRzOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzY2FsZVNlcnZpY2U6IFNjYWxlU2VydmljZSxcbiAgICBwcml2YXRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcml2YXRlIGNoYXJ0U2VydmljZTogQ2hhcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWZcbiAgKSB7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIGNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5lbWl0KHtcbiAgICAgIHRhcmdldDogdGhpcy5wbG90QmFuZCxcbiAgICAgIGV2ZW50LFxuICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY29udGV4dG1lbnUnLCBbJyRldmVudCddKSBjb250ZXh0TWVudShldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuZW1pdCh7XG4gICAgICB0YXJnZXQ6IHRoaXMucGxvdEJhbmQsXG4gICAgICBldmVudCxcbiAgICB9KTtcbiAgfVxuXG4gIGVtaXQoZXZlbnQ6IElDaGFydEV2ZW50PFBsb3RCYW5kPikge1xuICAgIHRoaXMuY2hhcnRTZXJ2aWNlLmVtaXRQbG90YmFuZChldmVudCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG5cbiAgICBjb25zdCBwbG90YmFuZEVsZW1lbnQgPSBkM1xuICAgICAgLnNlbGVjdCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudClcbiAgICAgIC5zZWxlY3QoJy5wbG90YmFuZCcpO1xuXG4gICAgY29uc3QgZ3JhYkVsZW1lbnRzID0gZDNcbiAgICAgIC5zZWxlY3QodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpXG4gICAgICAuc2VsZWN0QWxsKCcuZ3JhYmJlcicpO1xuXG4gICAgdGhpcy5kcmFnRWxlbWVudHMgPSBkM1xuICAgICAgLmRyYWcoKVxuICAgICAgLnN1YmplY3QoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueCkge1xuICAgICAgICAgIHJldHVybiB7eDogcGxvdGJhbmRFbGVtZW50LmF0dHIoJ3gnKX07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueSkge1xuICAgICAgICAgIHJldHVybiB7eTogcGxvdGJhbmRFbGVtZW50LmF0dHIoJ3knKX07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgY29uc3QgZHJhZyA9IHRoaXMuZHJhZ0VsZW1lbnRzXG4gICAgICAub24oXG4gICAgICAgICdzdGFydCBkcmFnIGVuZCcsXG4gICAgICAgIChldmVudDogZDMuRDNEcmFnRXZlbnQ8YW55LCBQbG90QmFuZCwgYW55PiwgZDogUGxvdEJhbmQpID0+IHtcblxuICAgICAgICAgIGxldCBiYW5kU2l6ZSA9IHBhcnNlRmxvYXQoXG4gICAgICAgICAgICBwbG90YmFuZEVsZW1lbnQuYXR0cihcbiAgICAgICAgICAgICAgdGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueCA/ICd3aWR0aCcgOiAnaGVpZ2h0J1xuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBkLmZyb20gPSB0aGlzLnNjYWxlLmludmVydChcbiAgICAgICAgICAgIGV2ZW50W0F4aXNPcmllbnRhdGlvblt0aGlzLmF4aXMub3JpZW50YXRpb25dXVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBkLnRvID0gdGhpcy5zY2FsZS5pbnZlcnQoXG4gICAgICAgICAgICBldmVudFtBeGlzT3JpZW50YXRpb25bdGhpcy5heGlzLm9yaWVudGF0aW9uXV0gKyBiYW5kU2l6ZVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aGlzLmVtaXQoe1xuICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICB0YXJnZXQ6IGQsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICBsZXQgZ3JhYmJlcktleTtcbiAgICB0aGlzLnJlc2l6ZUVsZW1lbnRzID0gZDNcbiAgICAgIC5kcmFnKCk7XG5cbiAgICBjb25zdCByZXNpemUgPSB0aGlzLnJlc2l6ZUVsZW1lbnRzXG4gICAgICAub24oXG4gICAgICAgICdzdGFydCBkcmFnIGVuZCcsXG4gICAgICAgIChldmVudDogZDMuRDNEcmFnRXZlbnQ8YW55LCBQbG90QmFuZCwgYW55PiwgZDogUGxvdEJhbmQpID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQ/LnR5cGUgPT09ICdzdGFydCcpIHtcbiAgICAgICAgICAgIGNvbnN0IHtncmFiYmVyfSA9IGV2ZW50Py5zb3VyY2VFdmVudD8udGFyZ2V0Py5kYXRhc2V0O1xuICAgICAgICAgICAgZ3JhYmJlcktleSA9IGdyYWJiZXI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgbWluID0gTWF0aC5taW4oLi4udGhpcy5zY2FsZS5kb21haW4oKSk7XG4gICAgICAgICAgY29uc3QgbWF4ID0gTWF0aC5tYXgoLi4udGhpcy5zY2FsZS5kb21haW4oKSk7XG5cbiAgICAgICAgICBjb25zdCBtaW5WYWx1ZSA9IGQubWluID8/IG1pbjtcbiAgICAgICAgICBjb25zdCBtYXhWYWx1ZSA9IGQubWF4ID8/IG1heDtcblxuICAgICAgICAgIGRbZ3JhYmJlcktleV0gPSB0aGlzLnNjYWxlLmludmVydChcbiAgICAgICAgICAgIGV2ZW50W0F4aXNPcmllbnRhdGlvblt0aGlzLmF4aXMub3JpZW50YXRpb25dXVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoZ3JhYmJlcktleSA9PT0gJ2Zyb20nKSB7XG4gICAgICAgICAgICBjb25zdCBib3JkZXJNaW4gPSBkLmZyb20gPD0gbWluVmFsdWU7XG5cbiAgICAgICAgICAgIGlmIChkLmZyb20gPj0gZC50bykge1xuICAgICAgICAgICAgICBkLmZyb20gPSBkLnRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoYm9yZGVyTWluKSB7XG4gICAgICAgICAgICAgIGQuZnJvbSA9IG1pblZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChncmFiYmVyS2V5ID09PSAndG8nKSB7XG4gICAgICAgICAgICBjb25zdCBib3JkZXJNYXggPSBkLnRvID49IG1heFZhbHVlO1xuXG4gICAgICAgICAgICBpZiAoYm9yZGVyTWF4KSB7XG4gICAgICAgICAgICAgIGQudG8gPSBtYXhWYWx1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGQudG8gPD0gZC5mcm9tKSB7XG4gICAgICAgICAgICAgIGQudG8gPSBkLmZyb207XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5lbWl0KHtcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgdGFyZ2V0OiBkLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgcGxvdGJhbmRFbGVtZW50LmRhdHVtPFBsb3RCYW5kPih0aGlzLnBsb3RCYW5kKTtcbiAgICBncmFiRWxlbWVudHMuZGF0dW08UGxvdEJhbmQ+KHRoaXMucGxvdEJhbmQpO1xuXG4gICAgaWYgKHRoaXMucGxvdEJhbmQuZHJhZ2dhYmxlKSB7XG4gICAgICBwbG90YmFuZEVsZW1lbnQuY2FsbChkcmFnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wbG90QmFuZC5yZXNpemFibGUpIHtcbiAgICAgIGdyYWJFbGVtZW50cy5jYWxsKHJlc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kcmFnRWxlbWVudHMub24oJ3N0YXJ0IGRyYWcgZW5kJywgbnVsbCk7XG4gICAgdGhpcy5yZXNpemVFbGVtZW50cy5vbignc3RhcnQgZHJhZyBlbmQnLCBudWxsKTtcbiAgfVxuXG4gIGdldCBoZWlnaHQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zaXplLmhlaWdodDtcbiAgfVxuXG4gIGdldCB3aWR0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnNpemUud2lkdGg7XG4gIH1cblxuICBnZXQgZnJvbSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnNjYWxlKHRoaXMucGxvdEJhbmQuZnJvbSk7XG4gIH1cblxuICBnZXQgdG8oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zY2FsZSh0aGlzLnBsb3RCYW5kLnRvKTtcbiAgfVxuXG4gIGdldCBiYW5kU2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLmFicyhcbiAgICAgIHRoaXMuc2NhbGUodGhpcy5wbG90QmFuZC50bykgLSB0aGlzLnNjYWxlKHRoaXMucGxvdEJhbmQuZnJvbSlcbiAgICApO1xuICB9XG5cbiAgZ2V0VGV4dFBvc2l0aW9uID0gKCkgPT4ge1xuICAgIGxldCBbbWluLCBtYXhdID0gdGhpcy5zY2FsZS5kb21haW4oKTtcblxuICAgIG1pbiA9IG1pbiBpbnN0YW5jZW9mIERhdGUgPyBtaW4uZ2V0VGltZSgpIDogbWluO1xuICAgIG1heCA9IG1heCBpbnN0YW5jZW9mIERhdGUgPyBtYXguZ2V0VGltZSgpIDogbWF4O1xuXG4gICAgY29uc3QgcG9zaXRpb24gPSAoKHRoaXMucGxvdEJhbmQuZnJvbSA8PSBtaW4gPyBtaW4gOiB0aGlzLnBsb3RCYW5kLmZyb20pICsgKHRoaXMucGxvdEJhbmQudG8gPj0gbWF4ID8gbWF4IDogdGhpcy5wbG90QmFuZC50bykpIC8gMjtcbiAgICByZXR1cm4gdGhpcy5zY2FsZShwb3NpdGlvbik7XG4gIH1cblxuICBnZXRGaWxsKGQ6IFBsb3RCYW5kKTogc3RyaW5nIHtcbiAgICBpZiAoZC5zdHlsZT8ucGxvdEJhbmQ/LnBhdHRlcm5JbWFnZSkge1xuICAgICAgcmV0dXJuIGB1cmwoIyR7ZC5zdHlsZS5wbG90QmFuZD8ucGF0dGVybkltYWdlfSlgO1xuICAgIH1cbiAgICByZXR1cm4gZC5zdHlsZS5wbG90QmFuZD8uZmlsbDtcbiAgfVxufVxuIiwiPHN2ZzpyZWN0XG4gIGNsYXNzPVwicGxvdGJhbmRcIiB4bWxuczpzdmc9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L2h0bWxcIlxuICBbY2xhc3MuZHJhZ2dhYmxlXT1cInBsb3RCYW5kPy5kcmFnZ2FibGUgPT09IHRydWVcIlxuICBbYXR0ci5maWxsXT1cImdldEZpbGwocGxvdEJhbmQpXCJcbiAgW2F0dHIub3BhY2l0eV09XCJwbG90QmFuZC5zdHlsZT8ucGxvdEJhbmQ/Lm9wYWNpdHlcIlxuICBbYXR0ci5oZWlnaHRdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IGhlaWdodCA6IGJhbmRTaXplXCJcbiAgW2F0dHIud2lkdGhdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IGJhbmRTaXplIDogd2lkdGhcIlxuICBbYXR0ci55XT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnkgPyBmcm9tIDogbnVsbFwiXG4gIFthdHRyLnhdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IGZyb20gOiBudWxsXCI+XG48L3N2ZzpyZWN0PlxuXG48c3ZnOnRleHRcbiAgKm5nSWY9XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54XCJcbiAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIlxuICBkb21pbmFudC1iYXNlbGluZT1cIm1pZGRsZVwiXG4gIGNsYXNzPVwibGFiZWwgZm9udC1jYXB0aW9uIGZpbGwtdGV4dC05MFwiXG4gIFthdHRyLnhdPVwiZ2V0VGV4dFBvc2l0aW9uKClcIlxuICBbYXR0ci50cmFuc2Zvcm1dPVwiJ3JvdGF0ZSgtOTAsICcrIGdldFRleHRQb3NpdGlvbigpICsnLCcgKyBoZWlnaHQgLyAyICsgJyknXCJcbiAgW2F0dHIueV09XCJoZWlnaHQgLyAyXCI+e3twbG90QmFuZC5sYWJlbH19XG48L3N2Zzp0ZXh0PlxuXG48c3ZnOnRleHRcbiAgKm5nSWY9XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi55XCJcbiAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIlxuICBjbGFzcz1cImxhYmVsIGZvbnQtY2FwdGlvbiBmaWxsLXRleHQtOTBcIlxuICBkb21pbmFudC1iYXNlbGluZT1cImNlbnRyYWxcIlxuICBbYXR0ci54XT1cImdldFRleHRQb3NpdGlvbigpXCJcbiAgW2F0dHIueV09XCJ3aWR0aCAvIDJcIj57e3Bsb3RCYW5kLmxhYmVsfX1cbjwvc3ZnOnRleHQ+XG5cbjxzdmc6bGluZSBjbGFzcz1cImRpc3BsYXktZ3JhYmJlclwiXG4gICAgICAgICAgKm5nSWY9XCJwbG90QmFuZC5zaG93R3JhYmJlcnMgJiYgcGxvdEJhbmQucmVzaXphYmxlXCJcbiAgICAgICAgICBbYXR0ci5zdHJva2VdPVwicGxvdEJhbmQuc3R5bGU/LmdyYWJiZXJzPy5zdHJva2UgfHwgJ3ZhcigtLWNvbG9yLXRleHQtNTApJ1wiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInBsb3RCYW5kLnN0eWxlPy5ncmFiYmVycz8uc3Ryb2tlV2lkdGggfHwgNFwiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlLWRhc2hhcnJheV09XCJwbG90QmFuZC5zdHlsZT8uZ3JhYmJlcnM/LnN0cm9rZURhc2hhcnJheVwiXG4gICAgICAgICAgW2F0dHIueDFdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IGZyb20gOiAwXCJcbiAgICAgICAgICBbYXR0ci54Ml09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gZnJvbSA6IHdpZHRoXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLWdyYWJiZXJdPVwiJ2Zyb20nXCJcbiAgICAgICAgICBbYXR0ci55MV09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gMCA6IGZyb21cIlxuICAgICAgICAgIFthdHRyLnkyXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyBoZWlnaHQgOiBmcm9tXCI+XG48L3N2ZzpsaW5lPlxuXG48c3ZnOmxpbmUgY2xhc3M9XCJkaXNwbGF5LWdyYWJiZXJcIlxuICAgICAgICAgICpuZ0lmPVwicGxvdEJhbmQuc2hvd0dyYWJiZXJzICYmIHBsb3RCYW5kLnJlc2l6YWJsZVwiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInBsb3RCYW5kLnN0eWxlPy5ncmFiYmVycz8uc3Ryb2tlIHx8ICd2YXIoLS1jb2xvci10ZXh0LTUwKSdcIlxuICAgICAgICAgIFthdHRyLnN0cm9rZS13aWR0aF09XCJwbG90QmFuZC5zdHlsZT8uZ3JhYmJlcnM/LnN0cm9rZVdpZHRoIHx8IDRcIlxuICAgICAgICAgIFthdHRyLnN0cm9rZS1kYXNoYXJyYXldPVwicGxvdEJhbmQuc3R5bGU/LmdyYWJiZXJzPy5zdHJva2VEYXNoYXJyYXlcIlxuICAgICAgICAgIFthdHRyLngxXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyB0byA6IDBcIlxuICAgICAgICAgIFthdHRyLngyXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyB0byA6IHdpZHRoXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLWdyYWJiZXJdPVwiJ3RvJ1wiXG4gICAgICAgICAgW2F0dHIueTFdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IDAgOiB0b1wiXG4gICAgICAgICAgW2F0dHIueTJdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IGhlaWdodCA6IHRvXCI+XG48L3N2ZzpsaW5lPlxuXG48c3ZnOmxpbmUgY2xhc3M9XCJncmFiYmVyXCJcbiAgICAgICAgICAqbmdJZj1cInBsb3RCYW5kLnJlc2l6YWJsZVwiXG4gICAgICAgICAgW2NsYXNzLngtZ3JhYmJlcl09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54XCJcbiAgICAgICAgICBbY2xhc3MueS1ncmFiYmVyXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnlcIlxuICAgICAgICAgIFtjbGFzcy5yZXNpemVhYmxlXT1cInBsb3RCYW5kPy5yZXNpemFibGVcIlxuICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJwbG90QmFuZC5zdHlsZT8uZ3JhYmJlcnM/LnN0cm9rZSB8fCAndmFyKC0tY29sb3ItdGV4dC01MCknXCJcbiAgICAgICAgICBbYXR0ci5zdHJva2Utd2lkdGhdPVwiOFwiXG4gICAgICAgICAgW3N0eWxlLnRyYW5zZm9ybV09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gJ3RyYW5zbGF0ZVgoMnB4KScgOiAndHJhbnNsYXRlWSgycHgpJ1wiXG4gICAgICAgICAgW2F0dHIueDFdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IGZyb20gOiAwXCJcbiAgICAgICAgICBbYXR0ci54Ml09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gZnJvbSA6IHdpZHRoXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLWdyYWJiZXJdPVwiJ2Zyb20nXCJcbiAgICAgICAgICBbYXR0ci55MV09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gMCA6IGZyb21cIlxuICAgICAgICAgIFthdHRyLnkyXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyBoZWlnaHQgOiBmcm9tXCI+XG48L3N2ZzpsaW5lPlxuPHN2ZzpsaW5lIGNsYXNzPVwiZ3JhYmJlclwiXG4gICAgICAgICAgKm5nSWY9XCJwbG90QmFuZC5yZXNpemFibGVcIlxuICAgICAgICAgIFtjbGFzcy54LWdyYWJiZXJdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueFwiXG4gICAgICAgICAgW2NsYXNzLnktZ3JhYmJlcl09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi55XCJcbiAgICAgICAgICBbY2xhc3MucmVzaXplYWJsZV09XCJwbG90QmFuZD8ucmVzaXphYmxlXCJcbiAgICAgICAgICBbYXR0ci5zdHJva2VdPVwicGxvdEJhbmQuc3R5bGU/LmdyYWJiZXJzPy5zdHJva2UgfHwgJ3ZhcigtLWNvbG9yLXRleHQtNTApJ1wiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cIjhcIlxuICAgICAgICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/ICd0cmFuc2xhdGVYKC0ycHgpJyA6ICd0cmFuc2xhdGVZKC0ycHgpJ1wiXG4gICAgICAgICAgW2F0dHIueDFdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IHRvIDogMFwiXG4gICAgICAgICAgW2F0dHIueDJdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IHRvIDogd2lkdGhcIlxuICAgICAgICAgIFthdHRyLmRhdGEtZ3JhYmJlcl09XCIndG8nXCJcbiAgICAgICAgICBbYXR0ci55MV09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gMCA6IHRvXCJcbiAgICAgICAgICBbYXR0ci55Ml09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gaGVpZ2h0IDogdG9cIj5cbjwvc3ZnOmxpbmU+XG5cblxuIl19
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvdC1iYW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jaGFydC9jaGFydC1jb250YWluZXIvcGxvdGJhbmQvcGxvdC1iYW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jaGFydC9jaGFydC1jb250YWluZXIvcGxvdGJhbmQvcGxvdC1iYW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFLekIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFVbEUsTUFBTSxPQUFPLGlCQUFpQjtJQVU1QixZQUNVLFlBQTBCLEVBQzFCLFdBQXdCLEVBQ3hCLFlBQTBCLEVBQzFCLEdBQXNCLEVBQ3RCLE9BQW1CO1FBSm5CLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFUN0IsZ0JBQVcsR0FBRyxlQUFlLENBQUM7UUFnTDlCLG9CQUFlLEdBQUcsR0FBRyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNyQyxHQUFHLEdBQUcsR0FBRyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDaEQsR0FBRyxHQUFHLEdBQUcsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ2hELE1BQU0sSUFBSSxHQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBWSxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFZLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ3RILE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBVSxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzdHLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFBO0lBN0tELENBQUM7SUFFa0MsS0FBSyxDQUFDLEtBQWlCO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUM7WUFDUixNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDckIsS0FBSztTQUNOLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFd0MsV0FBVyxDQUFDLEtBQWlCO1FBQ3BFLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDUixNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDckIsS0FBSztTQUNOLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBNEI7UUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFD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QUssQ0FBQyxRQUFRLEVBQUUsWUFBWSxHQUFHLENBQUM7U0FDbEQ7UUFDRCxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQztJQUNoQyxDQUFDOzs4R0FyTVUsaUJBQWlCO2tHQUFqQixpQkFBaUIsK05DeEI5Qix3bElBb0ZBOzJGRDVEYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU07aU5BR3RDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBZTZCLEtBQUs7c0JBQXZDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU9RLFdBQVc7c0JBQW5ELFlBQVk7dUJBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsIE9uRGVzdHJveVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCB7UGxvdEJhbmR9IGZyb20gJy4uLy4uL21vZGVsL3Bsb3QtYmFuZCc7XG5pbXBvcnQge1NjYWxlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7QXhpc30gZnJvbSAnLi4vLi4vY29yZS9heGlzL2F4aXMnO1xuaW1wb3J0IHtab29tU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHtBeGlzT3JpZW50YXRpb259IGZyb20gJy4uLy4uL21vZGVsL2VudW0vYXhpcy1vcmllbnRhdGlvbic7XG5pbXBvcnQge0lDaGFydEV2ZW50fSBmcm9tICcuLi8uLi9tb2RlbC9pLWNoYXJ0LWV2ZW50JztcbmltcG9ydCB7Q2hhcnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdbdGV0YS1wbG90LWJhbmRdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Bsb3QtYmFuZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Bsb3QtYmFuZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUGxvdEJhbmRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwbG90QmFuZDogUGxvdEJhbmQ7XG4gIEBJbnB1dCgpIGF4aXM6IEF4aXM7XG4gIEBJbnB1dCgpIHNjYWxlOiBhbnk7XG4gIEBJbnB1dCgpIHNpemU6IERPTVJlY3Q7XG5cbiAgb3JpZW50YXRpb24gPSBBeGlzT3JpZW50YXRpb247XG4gIHJlc2l6ZUVsZW1lbnRzOiBhbnk7XG4gIGRyYWdFbGVtZW50czogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2NhbGVTZXJ2aWNlOiBTY2FsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB6b29tU2VydmljZTogWm9vbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFydFNlcnZpY2U6IENoYXJ0U2VydmljZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmXG4gICkge1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKSBjbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuZW1pdCh7XG4gICAgICB0YXJnZXQ6IHRoaXMucGxvdEJhbmQsXG4gICAgICBldmVudCxcbiAgICB9KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgWyckZXZlbnQnXSkgY29udGV4dE1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmVtaXQoe1xuICAgICAgdGFyZ2V0OiB0aGlzLnBsb3RCYW5kLFxuICAgICAgZXZlbnQsXG4gICAgfSk7XG4gIH1cblxuICBlbWl0KGV2ZW50OiBJQ2hhcnRFdmVudDxQbG90QmFuZD4pIHtcbiAgICB0aGlzLmNoYXJ0U2VydmljZS5lbWl0UGxvdGJhbmQoZXZlbnQpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuXG4gICAgY29uc3QgcGxvdGJhbmRFbGVtZW50ID0gZDNcbiAgICAgIC5zZWxlY3QodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpXG4gICAgICAuc2VsZWN0KCcucGxvdGJhbmQnKTtcblxuICAgIGNvbnN0IGdyYWJFbGVtZW50cyA9IGQzXG4gICAgICAuc2VsZWN0KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KVxuICAgICAgLnNlbGVjdEFsbCgnLmdyYWJiZXInKTtcblxuICAgIHRoaXMuZHJhZ0VsZW1lbnRzID0gZDNcbiAgICAgIC5kcmFnKClcbiAgICAgIC5zdWJqZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLngpIHtcbiAgICAgICAgICByZXR1cm4ge3g6IHBsb3RiYW5kRWxlbWVudC5hdHRyKCd4Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnkpIHtcbiAgICAgICAgICByZXR1cm4ge3k6IHBsb3RiYW5kRWxlbWVudC5hdHRyKCd5Jyl9O1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIGNvbnN0IGRyYWcgPSB0aGlzLmRyYWdFbGVtZW50c1xuICAgICAgLm9uKFxuICAgICAgICAnc3RhcnQgZHJhZyBlbmQnLFxuICAgICAgICAoZXZlbnQ6IGQzLkQzRHJhZ0V2ZW50PGFueSwgUGxvdEJhbmQsIGFueT4sIGQ6IFBsb3RCYW5kKSA9PiB7XG5cbiAgICAgICAgICBsZXQgYmFuZFNpemUgPSBwYXJzZUZsb2F0KFxuICAgICAgICAgICAgcGxvdGJhbmRFbGVtZW50LmF0dHIoXG4gICAgICAgICAgICAgIHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnggPyAnd2lkdGgnIDogJ2hlaWdodCdcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgZC5mcm9tID0gdGhpcy5zY2FsZS5pbnZlcnQoXG4gICAgICAgICAgICBldmVudFtBeGlzT3JpZW50YXRpb25bdGhpcy5heGlzLm9yaWVudGF0aW9uXV1cbiAgICAgICAgICApO1xuXG4gICAgICAgICAgZC50byA9IHRoaXMuc2NhbGUuaW52ZXJ0KFxuICAgICAgICAgICAgZXZlbnRbQXhpc09yaWVudGF0aW9uW3RoaXMuYXhpcy5vcmllbnRhdGlvbl1dICsgYmFuZFNpemVcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5lbWl0KHtcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgdGFyZ2V0OiBkLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgbGV0IGdyYWJiZXJLZXk7XG4gICAgdGhpcy5yZXNpemVFbGVtZW50cyA9IGQzXG4gICAgICAuZHJhZygpO1xuXG4gICAgY29uc3QgcmVzaXplID0gdGhpcy5yZXNpemVFbGVtZW50c1xuICAgICAgLm9uKFxuICAgICAgICAnc3RhcnQgZHJhZyBlbmQnLFxuICAgICAgICAoZXZlbnQ6IGQzLkQzRHJhZ0V2ZW50PGFueSwgUGxvdEJhbmQsIGFueT4sIGQ6IFBsb3RCYW5kKSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50Py50eXBlID09PSAnc3RhcnQnKSB7XG4gICAgICAgICAgICBjb25zdCB7Z3JhYmJlcn0gPSBldmVudD8uc291cmNlRXZlbnQ/LnRhcmdldD8uZGF0YXNldDtcbiAgICAgICAgICAgIGdyYWJiZXJLZXkgPSBncmFiYmVyO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG1pbiA9IE1hdGgubWluKC4uLnRoaXMuc2NhbGUuZG9tYWluKCkpO1xuICAgICAgICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KC4uLnRoaXMuc2NhbGUuZG9tYWluKCkpO1xuXG4gICAgICAgICAgY29uc3QgbWluVmFsdWUgPSBkLm1pbiA/PyBtaW47XG4gICAgICAgICAgY29uc3QgbWF4VmFsdWUgPSBkLm1heCA/PyBtYXg7XG5cbiAgICAgICAgICBkW2dyYWJiZXJLZXldID0gdGhpcy5zY2FsZS5pbnZlcnQoXG4gICAgICAgICAgICBldmVudFtBeGlzT3JpZW50YXRpb25bdGhpcy5heGlzLm9yaWVudGF0aW9uXV1cbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKGdyYWJiZXJLZXkgPT09ICdmcm9tJykge1xuICAgICAgICAgICAgY29uc3QgYm9yZGVyTWluID0gZC5mcm9tIDw9IG1pblZhbHVlO1xuXG4gICAgICAgICAgICBpZiAoZC5mcm9tID49IGQudG8pIHtcbiAgICAgICAgICAgICAgZC5mcm9tID0gZC50bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGJvcmRlck1pbikge1xuICAgICAgICAgICAgICBkLmZyb20gPSBtaW5WYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZ3JhYmJlcktleSA9PT0gJ3RvJykge1xuICAgICAgICAgICAgY29uc3QgYm9yZGVyTWF4ID0gZC50byA+PSBtYXhWYWx1ZTtcblxuICAgICAgICAgICAgaWYgKGJvcmRlck1heCkge1xuICAgICAgICAgICAgICBkLnRvID0gbWF4VmFsdWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChkLnRvIDw9IGQuZnJvbSkge1xuICAgICAgICAgICAgICBkLnRvID0gZC5mcm9tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuZW1pdCh7XG4gICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgIHRhcmdldDogZCxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgIHBsb3RiYW5kRWxlbWVudC5kYXR1bTxQbG90QmFuZD4odGhpcy5wbG90QmFuZCk7XG4gICAgZ3JhYkVsZW1lbnRzLmRhdHVtPFBsb3RCYW5kPih0aGlzLnBsb3RCYW5kKTtcblxuICAgIGlmICh0aGlzLnBsb3RCYW5kLmRyYWdnYWJsZSkge1xuICAgICAgcGxvdGJhbmRFbGVtZW50LmNhbGwoZHJhZyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGxvdEJhbmQucmVzaXphYmxlKSB7XG4gICAgICBncmFiRWxlbWVudHMuY2FsbChyZXNpemUpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZHJhZ0VsZW1lbnRzLm9uKCdzdGFydCBkcmFnIGVuZCcsIG51bGwpO1xuICAgIHRoaXMucmVzaXplRWxlbWVudHMub24oJ3N0YXJ0IGRyYWcgZW5kJywgbnVsbCk7XG4gIH1cblxuICBnZXQgaGVpZ2h0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc2l6ZS5oZWlnaHQ7XG4gIH1cblxuICBnZXQgd2lkdGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zaXplLndpZHRoO1xuICB9XG5cbiAgZ2V0IGZyb20oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zY2FsZSh0aGlzLnBsb3RCYW5kLmZyb20pO1xuICB9XG5cbiAgZ2V0IHRvKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc2NhbGUodGhpcy5wbG90QmFuZC50byk7XG4gIH1cblxuICBnZXQgYmFuZFNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5hYnMoXG4gICAgICB0aGlzLnNjYWxlKHRoaXMucGxvdEJhbmQudG8pIC0gdGhpcy5zY2FsZSh0aGlzLnBsb3RCYW5kLmZyb20pXG4gICAgKTtcbiAgfVxuXG4gIGdldFRleHRQb3NpdGlvbiA9ICgpID0+IHtcbiAgICBsZXQgW21pbiwgbWF4XSA9IHRoaXMuc2NhbGUuZG9tYWluKCk7XG4gICAgbWluID0gbWluIGluc3RhbmNlb2YgRGF0ZSA/IG1pbi5nZXRUaW1lKCkgOiBtaW47XG4gICAgbWF4ID0gbWF4IGluc3RhbmNlb2YgRGF0ZSA/IG1heC5nZXRUaW1lKCkgOiBtYXg7XG4gICAgY29uc3QgZnJvbSA9ICh0aGlzLnBsb3RCYW5kLmZyb20gYXMgYW55KSBpbnN0YW5jZW9mIERhdGUgPyAodGhpcy5wbG90QmFuZC5mcm9tIGFzIGFueSkuZ2V0VGltZSgpIDogdGhpcy5wbG90QmFuZC5mcm9tO1xuICAgIGNvbnN0IHRvPSAodGhpcy5wbG90QmFuZC50byBhcyBhbnkpIGluc3RhbmNlb2YgRGF0ZSA/ICh0aGlzLnBsb3RCYW5kLnRvIGFzIGFueSkuZ2V0VGltZSgpIDogdGhpcy5wbG90QmFuZC50bztcbiAgICBjb25zdCBwb3NpdGlvbiA9ICgoZnJvbSA8PSBtaW4gPyBtaW4gOiBmcm9tKSArICh0byA+PSBtYXggPyBtYXggOiB0bykpIC8gMjtcbiAgICByZXR1cm4gdGhpcy5zY2FsZShwb3NpdGlvbik7XG4gIH1cblxuICBnZXRGaWxsKGQ6IFBsb3RCYW5kKTogc3RyaW5nIHtcbiAgICBpZiAoZC5zdHlsZT8ucGxvdEJhbmQ/LnBhdHRlcm5JbWFnZSkge1xuICAgICAgcmV0dXJuIGB1cmwoIyR7ZC5zdHlsZS5wbG90QmFuZD8ucGF0dGVybkltYWdlfSlgO1xuICAgIH1cbiAgICByZXR1cm4gZC5zdHlsZS5wbG90QmFuZD8uZmlsbDtcbiAgfVxufVxuIiwiPHN2ZzpyZWN0XG4gIGNsYXNzPVwicGxvdGJhbmRcIiB4bWxuczpzdmc9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L2h0bWxcIlxuICBbY2xhc3MuZHJhZ2dhYmxlXT1cInBsb3RCYW5kPy5kcmFnZ2FibGUgPT09IHRydWVcIlxuICBbYXR0ci5maWxsXT1cImdldEZpbGwocGxvdEJhbmQpXCJcbiAgW2F0dHIub3BhY2l0eV09XCJwbG90QmFuZC5zdHlsZT8ucGxvdEJhbmQ/Lm9wYWNpdHlcIlxuICBbYXR0ci5oZWlnaHRdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IGhlaWdodCA6IGJhbmRTaXplXCJcbiAgW2F0dHIud2lkdGhdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IGJhbmRTaXplIDogd2lkdGhcIlxuICBbYXR0ci55XT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnkgPyBmcm9tIDogbnVsbFwiXG4gIFthdHRyLnhdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IGZyb20gOiBudWxsXCI+XG48L3N2ZzpyZWN0PlxuXG48c3ZnOnRleHRcbiAgKm5nSWY9XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54XCJcbiAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIlxuICBkb21pbmFudC1iYXNlbGluZT1cIm1pZGRsZVwiXG4gIGNsYXNzPVwibGFiZWwgZm9udC1jYXB0aW9uIGZpbGwtdGV4dC05MFwiXG4gIFthdHRyLnhdPVwiZ2V0VGV4dFBvc2l0aW9uKClcIlxuICBbYXR0ci50cmFuc2Zvcm1dPVwiJ3JvdGF0ZSgtOTAsICcrIGdldFRleHRQb3NpdGlvbigpICsnLCcgKyBoZWlnaHQgLyAyICsgJyknXCJcbiAgW2F0dHIueV09XCJoZWlnaHQgLyAyXCI+e3twbG90QmFuZC5sYWJlbH19XG48L3N2Zzp0ZXh0PlxuXG48c3ZnOnRleHRcbiAgKm5nSWY9XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi55XCJcbiAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIlxuICBjbGFzcz1cImxhYmVsIGZvbnQtY2FwdGlvbiBmaWxsLXRleHQtOTBcIlxuICBkb21pbmFudC1iYXNlbGluZT1cImNlbnRyYWxcIlxuICBbYXR0ci54XT1cImdldFRleHRQb3NpdGlvbigpXCJcbiAgW2F0dHIueV09XCJ3aWR0aCAvIDJcIj57e3Bsb3RCYW5kLmxhYmVsfX1cbjwvc3ZnOnRleHQ+XG5cbjxzdmc6bGluZSBjbGFzcz1cImRpc3BsYXktZ3JhYmJlclwiXG4gICAgICAgICAgKm5nSWY9XCJwbG90QmFuZC5zaG93R3JhYmJlcnMgJiYgcGxvdEJhbmQucmVzaXphYmxlXCJcbiAgICAgICAgICBbYXR0ci5zdHJva2VdPVwicGxvdEJhbmQuc3R5bGU/LmdyYWJiZXJzPy5zdHJva2UgfHwgJ3ZhcigtLWNvbG9yLXRleHQtNTApJ1wiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInBsb3RCYW5kLnN0eWxlPy5ncmFiYmVycz8uc3Ryb2tlV2lkdGggfHwgNFwiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlLWRhc2hhcnJheV09XCJwbG90QmFuZC5zdHlsZT8uZ3JhYmJlcnM/LnN0cm9rZURhc2hhcnJheVwiXG4gICAgICAgICAgW2F0dHIueDFdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IGZyb20gOiAwXCJcbiAgICAgICAgICBbYXR0ci54Ml09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gZnJvbSA6IHdpZHRoXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLWdyYWJiZXJdPVwiJ2Zyb20nXCJcbiAgICAgICAgICBbYXR0ci55MV09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gMCA6IGZyb21cIlxuICAgICAgICAgIFthdHRyLnkyXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyBoZWlnaHQgOiBmcm9tXCI+XG48L3N2ZzpsaW5lPlxuXG48c3ZnOmxpbmUgY2xhc3M9XCJkaXNwbGF5LWdyYWJiZXJcIlxuICAgICAgICAgICpuZ0lmPVwicGxvdEJhbmQuc2hvd0dyYWJiZXJzICYmIHBsb3RCYW5kLnJlc2l6YWJsZVwiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInBsb3RCYW5kLnN0eWxlPy5ncmFiYmVycz8uc3Ryb2tlIHx8ICd2YXIoLS1jb2xvci10ZXh0LTUwKSdcIlxuICAgICAgICAgIFthdHRyLnN0cm9rZS13aWR0aF09XCJwbG90QmFuZC5zdHlsZT8uZ3JhYmJlcnM/LnN0cm9rZVdpZHRoIHx8IDRcIlxuICAgICAgICAgIFthdHRyLnN0cm9rZS1kYXNoYXJyYXldPVwicGxvdEJhbmQuc3R5bGU/LmdyYWJiZXJzPy5zdHJva2VEYXNoYXJyYXlcIlxuICAgICAgICAgIFthdHRyLngxXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyB0byA6IDBcIlxuICAgICAgICAgIFthdHRyLngyXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyB0byA6IHdpZHRoXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLWdyYWJiZXJdPVwiJ3RvJ1wiXG4gICAgICAgICAgW2F0dHIueTFdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IDAgOiB0b1wiXG4gICAgICAgICAgW2F0dHIueTJdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IGhlaWdodCA6IHRvXCI+XG48L3N2ZzpsaW5lPlxuXG48c3ZnOmxpbmUgY2xhc3M9XCJncmFiYmVyXCJcbiAgICAgICAgICAqbmdJZj1cInBsb3RCYW5kLnJlc2l6YWJsZVwiXG4gICAgICAgICAgW2NsYXNzLngtZ3JhYmJlcl09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54XCJcbiAgICAgICAgICBbY2xhc3MueS1ncmFiYmVyXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnlcIlxuICAgICAgICAgIFtjbGFzcy5yZXNpemVhYmxlXT1cInBsb3RCYW5kPy5yZXNpemFibGVcIlxuICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJwbG90QmFuZC5zdHlsZT8uZ3JhYmJlcnM/LnN0cm9rZSB8fCAndmFyKC0tY29sb3ItdGV4dC01MCknXCJcbiAgICAgICAgICBbYXR0ci5zdHJva2Utd2lkdGhdPVwiOFwiXG4gICAgICAgICAgW3N0eWxlLnRyYW5zZm9ybV09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gJ3RyYW5zbGF0ZVgoMnB4KScgOiAndHJhbnNsYXRlWSgycHgpJ1wiXG4gICAgICAgICAgW2F0dHIueDFdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IGZyb20gOiAwXCJcbiAgICAgICAgICBbYXR0ci54Ml09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gZnJvbSA6IHdpZHRoXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLWdyYWJiZXJdPVwiJ2Zyb20nXCJcbiAgICAgICAgICBbYXR0ci55MV09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gMCA6IGZyb21cIlxuICAgICAgICAgIFthdHRyLnkyXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyBoZWlnaHQgOiBmcm9tXCI+XG48L3N2ZzpsaW5lPlxuPHN2ZzpsaW5lIGNsYXNzPVwiZ3JhYmJlclwiXG4gICAgICAgICAgKm5nSWY9XCJwbG90QmFuZC5yZXNpemFibGVcIlxuICAgICAgICAgIFtjbGFzcy54LWdyYWJiZXJdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueFwiXG4gICAgICAgICAgW2NsYXNzLnktZ3JhYmJlcl09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi55XCJcbiAgICAgICAgICBbY2xhc3MucmVzaXplYWJsZV09XCJwbG90QmFuZD8ucmVzaXphYmxlXCJcbiAgICAgICAgICBbYXR0ci5zdHJva2VdPVwicGxvdEJhbmQuc3R5bGU/LmdyYWJiZXJzPy5zdHJva2UgfHwgJ3ZhcigtLWNvbG9yLXRleHQtNTApJ1wiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cIjhcIlxuICAgICAgICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/ICd0cmFuc2xhdGVYKC0ycHgpJyA6ICd0cmFuc2xhdGVZKC0ycHgpJ1wiXG4gICAgICAgICAgW2F0dHIueDFdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IHRvIDogMFwiXG4gICAgICAgICAgW2F0dHIueDJdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IHRvIDogd2lkdGhcIlxuICAgICAgICAgIFthdHRyLmRhdGEtZ3JhYmJlcl09XCIndG8nXCJcbiAgICAgICAgICBbYXR0ci55MV09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gMCA6IHRvXCJcbiAgICAgICAgICBbYXR0ci55Ml09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gaGVpZ2h0IDogdG9cIj5cbjwvc3ZnOmxpbmU+XG5cblxuIl19
|
|
@@ -33,7 +33,7 @@ export class BrushableDirective {
|
|
|
33
33
|
if (this.config?.brush?.enable) {
|
|
34
34
|
const brushMessage = new BrushMessage({
|
|
35
35
|
chartId: this.config.id,
|
|
36
|
-
selection: [this.config
|
|
36
|
+
selection: [this.config?.brush?.from, this.config?.brush?.to],
|
|
37
37
|
});
|
|
38
38
|
this.brushService.setBrush(brushMessage);
|
|
39
39
|
}
|
|
@@ -148,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
148
148
|
}], axis: [{
|
|
149
149
|
type: Input
|
|
150
150
|
}] } });
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJ1c2hhYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9kaXJlY3RpdmVzL2JydXNoYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFLdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7OztBQUt2QyxNQUFNLE9BQU8sa0JBQWtCO0lBWTdCLFlBQ1UsWUFBMEIsRUFDMUIsWUFBMEIsRUFDMUIsT0FBbUIsRUFDbkIsSUFBWTtRQUhaLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQVZkLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBb0M7YUFDM0QsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQzdCLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFTcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ2hDLFNBQVMsQ0FB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RUFBRSxFQUFFO3dCQUNyQixNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7cUJBQzdCO29CQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFDZixJQUFJLENBQUMsU0FBUzt3QkFDWixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO3dCQUNoQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FDM0IsQ0FBQztnQkFDSixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDUixDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDOzsrR0EzTFUsa0JBQWtCO21HQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFIOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1Qjs0S0FFVSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCwgTmdab25lLCBPbkNoYW5nZXMsIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SUNoYXJ0Q29uZmlnfSBmcm9tICcuLi9tb2RlbC9pLWNoYXJ0LWNvbmZpZyc7XG5pbXBvcnQge0JydXNoU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS9icnVzaC5zZXJ2aWNlJztcbmltcG9ydCB7Q2hhcnRTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHtBeGlzfSBmcm9tICcuLi9jb3JlL2F4aXMvYXhpcyc7XG5pbXBvcnQge0JydXNoVHlwZX0gZnJvbSAnLi4vbW9kZWwvZW51bS9icnVzaC10eXBlJztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCB7QnJ1c2hNZXNzYWdlfSBmcm9tICcuLi9tb2RlbC9pLWJyb2FkY2FzdC1tZXNzYWdlJztcbmltcG9ydCB7ZmlsdGVyLCB0YWtlV2hpbGV9IGZyb20gJ3J4anMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGV0YUJydXNoYWJsZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBCcnVzaGFibGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgY29uZmlnOiBJQ2hhcnRDb25maWc7XG4gIEBJbnB1dCgpIGF4aXM6IEF4aXM7XG5cbiAgcHJpdmF0ZSBzZWxlY3Rpb246IG51bWJlcltdO1xuICBwcml2YXRlIGJydXNoOiBkMy5CcnVzaEJlaGF2aW9yPGFueT47XG4gIHByaXZhdGUgYnJ1c2hNYXAgPSBuZXcgTWFwPEJydXNoVHlwZSwgZDMuQnJ1c2hCZWhhdmlvcjxhbnk+PigpXG4gICAgLnNldChCcnVzaFR5cGUueCwgZDMuYnJ1c2hYKCkpXG4gICAgLnNldChCcnVzaFR5cGUueSwgZDMuYnJ1c2hZKCkpO1xuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG4gIHByaXZhdGUgX2NvbnRhaW5lcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJydXNoU2VydmljZTogQnJ1c2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhcnRTZXJ2aWNlOiBDaGFydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgem9uZTogTmdab25lXG4gICkge1xuICAgIHRoaXMuX2NvbnRhaW5lciA9IGQzLnNlbGVjdCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmJydXNoU2VydmljZS5icnVzaERvbWFpbi5waXBlKFxuICAgICAgdGFrZVdoaWxlKCgpID0+IHRoaXMuX2FsaXZlKSxcbiAgICAgIGZpbHRlcigoYnJ1c2gpID0+IGJydXNoLmNoYXJ0SWQgIT09IHRoaXMuY29uZmlnLmlkKVxuICAgICkuc3Vic2NyaWJlKChicnVzaCkgPT4ge1xuICAgICAgdGhpcy5fY29udGFpbmVyLmNhbGwoXG4gICAgICAgIHRoaXMuYnJ1c2gubW92ZSxcbiAgICAgICAgW1xuICAgICAgICAgIE1hdGguZmxvb3IoYnJ1c2guc2VsZWN0aW9uWzBdKSxcbiAgICAgICAgICBNYXRoLmZsb29yKGJydXNoLnNlbGVjdGlvblsxXSksXG4gICAgICAgIF0ubWFwKHRoaXMuYXhpcy5zY2FsZSlcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmNvbmZpZz8uYnJ1c2g/LmVuYWJsZSkge1xuICAgICAgY29uc3QgYnJ1c2hNZXNzYWdlID0gbmV3IEJydXNoTWVzc2FnZSh7XG4gICAgICAgIGNoYXJ0SWQ6IHRoaXMuY29uZmlnLmlkLFxuICAgICAgICBzZWxlY3Rpb246IFt0aGlzLmNvbmZpZy5icnVzaD8uZnJvbSwgdGhpcy5jb25maWcuYnJ1c2g/LnRvXSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5icnVzaFNlcnZpY2Uuc2V0QnJ1c2goYnJ1c2hNZXNzYWdlKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ2NvbmZpZycpKSB7XG4gICAgICB0aGlzLmNsZWFyUHJldmlvdXNTZWxlY3Rpb24oKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWc/LmJydXNoPy5lbmFibGUpIHtcbiAgICAgIHRoaXMuYXBwbHlCcnVzaChcbiAgICAgICAgdGhpcy5jb25maWcsXG4gICAgICAgIHRoaXMuYXhpcy5zY2FsZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBhcHBseUJydXNoKGNvbmZpZzogSUNoYXJ0Q29uZmlnLCBicnVzaFNjYWxlOiBhbnkpIHtcbiAgICB0aGlzLmJydXNoPy5vbignc3RhcnQgYnJ1c2ggZW5kJywgbnVsbCk7XG4gICAgaWYgKGNvbmZpZy5icnVzaD8uZW5hYmxlKSB7XG4gICAgICB0aGlzLmJydXNoID0gdGhpcy5icnVzaE1hcC5nZXQoY29uZmlnPy5icnVzaD8udHlwZSA/PyBCcnVzaFR5cGUueCk7XG4gICAgICB0aGlzLmJydXNoLm9uKCdzdGFydCBicnVzaCBlbmQnLCAoXzogZDMuRDNCcnVzaEV2ZW50PGFueT4pID0+IHtcbiAgICAgICAgaWYgKF8uc291cmNlRXZlbnQpIHtcbiAgICAgICAgICBpZiAoIV8uc2VsZWN0aW9uKSByZXR1cm47XG4gICAgICAgICAgY29uc3QgW2Zyb20sIHRvXSA9IF8uc2VsZWN0aW9uIGFzIG51bWJlcltdO1xuICAgICAgICAgIGlmICh0byAtIGZyb20gPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbjogbnVtYmVyW10gPVxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbj8ubWFwKGJydXNoU2NhbGUpID8/XG4gICAgICAgICAgICAgIFtjb25maWcuYnJ1c2g/LmZyb20sIGNvbmZpZy5icnVzaD8udG9dLm1hcChicnVzaFNjYWxlKTtcbiAgICAgICAgICAgIGNvbnN0IGhhbGZCcnVzaEhlaWdodCA9IChzZWxlY3Rpb25bMV0gLSBzZWxlY3Rpb25bMF0pIC8gMjtcbiAgICAgICAgICAgIGNvbnN0IGludmVydGVkU2VsZWN0aW9uOiBudW1iZXJbXSA9IFtcbiAgICAgICAgICAgICAgZnJvbSAtIGhhbGZCcnVzaEhlaWdodCxcbiAgICAgICAgICAgICAgdG8gKyBoYWxmQnJ1c2hIZWlnaHQsXG4gICAgICAgICAgICBdLm1hcChicnVzaFNjYWxlLmludmVydCk7XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgaW52ZXJ0ZWRTZWxlY3Rpb25bMV0gLSBpbnZlcnRlZFNlbGVjdGlvblswXSA+XG4gICAgICAgICAgICAgIGNvbmZpZy5icnVzaD8ubWF4XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyLmNhbGwoXG4gICAgICAgICAgICAgICAgdGhpcy5icnVzaC5tb3ZlLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IoaW52ZXJ0ZWRTZWxlY3Rpb25bMF0pLFxuICAgICAgICAgICAgICAgICAgTWF0aC5mbG9vcihpbnZlcnRlZFNlbGVjdGlvblswXSArIGNvbmZpZy5icnVzaD8ubWF4KSxcbiAgICAgICAgICAgICAgICBdLm1hcChicnVzaFNjYWxlKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgaW52ZXJ0ZWRTZWxlY3Rpb25bMV0gLSBpbnZlcnRlZFNlbGVjdGlvblswXSA8XG4gICAgICAgICAgICAgIGNvbmZpZy5icnVzaD8ubWluXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyLmNhbGwoXG4gICAgICAgICAgICAgICAgdGhpcy5icnVzaC5tb3ZlLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IoaW52ZXJ0ZWRTZWxlY3Rpb25bMF0pLFxuICAgICAgICAgICAgICAgICAgTWF0aC5jZWlsKGludmVydGVkU2VsZWN0aW9uWzBdICsgY29uZmlnLmJydXNoPy5taW4pLFxuICAgICAgICAgICAgICAgIF0ubWFwKGJydXNoU2NhbGUpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyLmNhbGwodGhpcy5icnVzaC5tb3ZlLCBbXG4gICAgICAgICAgICAgIGZyb20gLSBoYWxmQnJ1c2hIZWlnaHQsXG4gICAgICAgICAgICAgIHRvICsgaGFsZkJydXNoSGVpZ2h0LFxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgYnJ1c2hTY2FsZS5pbnZlcnQodG8pIC0gYnJ1c2hTY2FsZS5pbnZlcnQoZnJvbSkgPlxuICAgICAgICAgICAgY29uZmlnLmJydXNoPy5tYXhcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRhaW5lci5jYWxsKFxuICAgICAgICAgICAgICB0aGlzLmJydXNoLm1vdmUsXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uXG4gICAgICAgICAgICAgICAgPyBbXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblswXSxcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uWzBdICsgY29uZmlnLmJydXNoPy5tYXgsXG4gICAgICAgICAgICAgICAgXS5tYXAoYnJ1c2hTY2FsZSlcbiAgICAgICAgICAgICAgICA6IFtjb25maWcuYnJ1c2g/LmZyb20sIGNvbmZpZy5icnVzaD8udG9dLm1hcChicnVzaFNjYWxlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBicnVzaFNjYWxlLmludmVydCh0bykgLSBicnVzaFNjYWxlLmludmVydChmcm9tKSA8XG4gICAgICAgICAgICBjb25maWcuYnJ1c2g/Lm1pblxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyLmNhbGwoXG4gICAgICAgICAgICAgIHRoaXMuYnJ1c2gubW92ZSxcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25cbiAgICAgICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uWzBdLFxuICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25bMF0gKyBjb25maWcuYnJ1c2g/Lm1pbixcbiAgICAgICAgICAgICAgICBdLm1hcChicnVzaFNjYWxlKVxuICAgICAgICAgICAgICAgIDogW2NvbmZpZy5icnVzaD8uZnJvbSwgY29uZmlnLmJydXNoPy50b10ubWFwKGJydXNoU2NhbGUpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChfLnNvdXJjZUV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBfLnNlbGVjdGlvbi5tYXAoYnJ1c2hTY2FsZS5pbnZlcnQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGJydXNoTWVzc2FnZSA9IG5ldyBCcnVzaE1lc3NhZ2Uoe1xuICAgICAgICAgICAgY2hhcnRJZDogdGhpcy5jb25maWcuaWQsXG4gICAgICAgICAgICBzZWxlY3Rpb246IFticnVzaFNjYWxlLmludmVydChmcm9tKSwgYnJ1c2hTY2FsZS5pbnZlcnQodG8pXSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmJydXNoU2VydmljZS5zZXRCcnVzaChicnVzaE1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fY29udGFpbmVyLmNhbGwodGhpcy5icnVzaCk7XG5cbiAgICAgICAgICBsZXQgZG9tYWluID0gYnJ1c2hTY2FsZS5kb21haW4oKTtcblxuICAgICAgICAgIGlmIChjb25maWc/LmJydXNoPy5mcm9tKSB7XG4gICAgICAgICAgICBkb21haW5bMF0gPSBjb25maWcuYnJ1c2guZnJvbTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY29uZmlnPy5icnVzaD8udG8pIHtcbiAgICAgICAgICAgIGRvbWFpblsxXSA9IGNvbmZpZy5icnVzaC50bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLl9jb250YWluZXIuY2FsbChcbiAgICAgICAgICAgIHRoaXMuYnJ1c2gubW92ZSxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uXG4gICAgICAgICAgICAgID8gdGhpcy5zZWxlY3Rpb24ubWFwKGJydXNoU2NhbGUpXG4gICAgICAgICAgICAgIDogZG9tYWluLm1hcChicnVzaFNjYWxlKVxuICAgICAgICAgICk7XG4gICAgICAgIH0sIDApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJQcmV2aW91c1NlbGVjdGlvbigpIHtcbiAgICB0aGlzLnNlbGVjdGlvbiA9IG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJ1c2hhYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9kaXJlY3RpdmVzL2JydXNoYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFLdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7OztBQUt2QyxNQUFNLE9BQU8sa0JBQWtCO0lBWTdCLFlBQ1UsWUFBMEIsRUFDMUIsWUFBMEIsRUFDMUIsT0FBbUIsRUFDbkIsSUFBWTtRQUhaLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQVZkLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBb0M7YUFDM0QsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQzdCLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFTcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ2hDLFNBQVMsQ0FB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RUFBRSxFQUFFO3dCQUNyQixNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7cUJBQzdCO29CQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFDZixJQUFJLENBQUMsU0FBUzt3QkFDWixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO3dCQUNoQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FDM0IsQ0FBQztnQkFDSixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDUixDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDOzsrR0EzTFUsa0JBQWtCO21HQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFIOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1Qjs0S0FFVSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCwgTmdab25lLCBPbkNoYW5nZXMsIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SUNoYXJ0Q29uZmlnfSBmcm9tICcuLi9tb2RlbC9pLWNoYXJ0LWNvbmZpZyc7XG5pbXBvcnQge0JydXNoU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS9icnVzaC5zZXJ2aWNlJztcbmltcG9ydCB7Q2hhcnRTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHtBeGlzfSBmcm9tICcuLi9jb3JlL2F4aXMvYXhpcyc7XG5pbXBvcnQge0JydXNoVHlwZX0gZnJvbSAnLi4vbW9kZWwvZW51bS9icnVzaC10eXBlJztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCB7QnJ1c2hNZXNzYWdlfSBmcm9tICcuLi9tb2RlbC9pLWJyb2FkY2FzdC1tZXNzYWdlJztcbmltcG9ydCB7ZmlsdGVyLCB0YWtlV2hpbGV9IGZyb20gJ3J4anMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGV0YUJydXNoYWJsZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBCcnVzaGFibGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgY29uZmlnOiBJQ2hhcnRDb25maWc7XG4gIEBJbnB1dCgpIGF4aXM6IEF4aXM7XG5cbiAgcHJpdmF0ZSBzZWxlY3Rpb246IG51bWJlcltdO1xuICBwcml2YXRlIGJydXNoOiBkMy5CcnVzaEJlaGF2aW9yPGFueT47XG4gIHByaXZhdGUgYnJ1c2hNYXAgPSBuZXcgTWFwPEJydXNoVHlwZSwgZDMuQnJ1c2hCZWhhdmlvcjxhbnk+PigpXG4gICAgLnNldChCcnVzaFR5cGUueCwgZDMuYnJ1c2hYKCkpXG4gICAgLnNldChCcnVzaFR5cGUueSwgZDMuYnJ1c2hZKCkpO1xuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG4gIHByaXZhdGUgX2NvbnRhaW5lcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJydXNoU2VydmljZTogQnJ1c2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhcnRTZXJ2aWNlOiBDaGFydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgem9uZTogTmdab25lXG4gICkge1xuICAgIHRoaXMuX2NvbnRhaW5lciA9IGQzLnNlbGVjdCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmJydXNoU2VydmljZS5icnVzaERvbWFpbi5waXBlKFxuICAgICAgdGFrZVdoaWxlKCgpID0+IHRoaXMuX2FsaXZlKSxcbiAgICAgIGZpbHRlcigoYnJ1c2gpID0+IGJydXNoLmNoYXJ0SWQgIT09IHRoaXMuY29uZmlnLmlkKVxuICAgICkuc3Vic2NyaWJlKChicnVzaCkgPT4ge1xuICAgICAgdGhpcy5fY29udGFpbmVyLmNhbGwoXG4gICAgICAgIHRoaXMuYnJ1c2gubW92ZSxcbiAgICAgICAgW1xuICAgICAgICAgIE1hdGguZmxvb3IoYnJ1c2guc2VsZWN0aW9uWzBdKSxcbiAgICAgICAgICBNYXRoLmZsb29yKGJydXNoLnNlbGVjdGlvblsxXSksXG4gICAgICAgIF0ubWFwKHRoaXMuYXhpcy5zY2FsZSlcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmKHRoaXMuY29uZmlnPy5icnVzaD8uZW5hYmxlKSB7XG4gICAgICBjb25zdCBicnVzaE1lc3NhZ2UgPSBuZXcgQnJ1c2hNZXNzYWdlKHtcbiAgICAgICAgY2hhcnRJZDogdGhpcy5jb25maWcuaWQsXG4gICAgICAgIHNlbGVjdGlvbjogW3RoaXMuY29uZmlnPy5icnVzaD8uZnJvbSwgdGhpcy5jb25maWc/LmJydXNoPy50b10sXG4gICAgICB9KTtcbiAgICAgIHRoaXMuYnJ1c2hTZXJ2aWNlLnNldEJydXNoKGJydXNoTWVzc2FnZSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLmhhc093blByb3BlcnR5KCdjb25maWcnKSkge1xuICAgICAgdGhpcy5jbGVhclByZXZpb3VzU2VsZWN0aW9uKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnPy5icnVzaD8uZW5hYmxlKSB7XG4gICAgICB0aGlzLmFwcGx5QnJ1c2goXG4gICAgICAgIHRoaXMuY29uZmlnLFxuICAgICAgICB0aGlzLmF4aXMuc2NhbGVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgYXBwbHlCcnVzaChjb25maWc6IElDaGFydENvbmZpZywgYnJ1c2hTY2FsZTogYW55KSB7XG4gICAgdGhpcy5icnVzaD8ub24oJ3N0YXJ0IGJydXNoIGVuZCcsIG51bGwpO1xuICAgIGlmIChjb25maWcuYnJ1c2g/LmVuYWJsZSkge1xuICAgICAgdGhpcy5icnVzaCA9IHRoaXMuYnJ1c2hNYXAuZ2V0KGNvbmZpZz8uYnJ1c2g/LnR5cGUgPz8gQnJ1c2hUeXBlLngpO1xuICAgICAgdGhpcy5icnVzaC5vbignc3RhcnQgYnJ1c2ggZW5kJywgKF86IGQzLkQzQnJ1c2hFdmVudDxhbnk+KSA9PiB7XG4gICAgICAgIGlmIChfLnNvdXJjZUV2ZW50KSB7XG4gICAgICAgICAgaWYgKCFfLnNlbGVjdGlvbikgcmV0dXJuO1xuICAgICAgICAgIGNvbnN0IFtmcm9tLCB0b10gPSBfLnNlbGVjdGlvbiBhcyBudW1iZXJbXTtcbiAgICAgICAgICBpZiAodG8gLSBmcm9tID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb246IG51bWJlcltdID1cbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24/Lm1hcChicnVzaFNjYWxlKSA/P1xuICAgICAgICAgICAgICBbY29uZmlnLmJydXNoPy5mcm9tLCBjb25maWcuYnJ1c2g/LnRvXS5tYXAoYnJ1c2hTY2FsZSk7XG4gICAgICAgICAgICBjb25zdCBoYWxmQnJ1c2hIZWlnaHQgPSAoc2VsZWN0aW9uWzFdIC0gc2VsZWN0aW9uWzBdKSAvIDI7XG4gICAgICAgICAgICBjb25zdCBpbnZlcnRlZFNlbGVjdGlvbjogbnVtYmVyW10gPSBbXG4gICAgICAgICAgICAgIGZyb20gLSBoYWxmQnJ1c2hIZWlnaHQsXG4gICAgICAgICAgICAgIHRvICsgaGFsZkJydXNoSGVpZ2h0LFxuICAgICAgICAgICAgXS5tYXAoYnJ1c2hTY2FsZS5pbnZlcnQpO1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGludmVydGVkU2VsZWN0aW9uWzFdIC0gaW52ZXJ0ZWRTZWxlY3Rpb25bMF0gPlxuICAgICAgICAgICAgICBjb25maWcuYnJ1c2g/Lm1heFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2NvbnRhaW5lci5jYWxsKFxuICAgICAgICAgICAgICAgIHRoaXMuYnJ1c2gubW92ZSxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICBNYXRoLmZsb29yKGludmVydGVkU2VsZWN0aW9uWzBdKSxcbiAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IoaW52ZXJ0ZWRTZWxlY3Rpb25bMF0gKyBjb25maWcuYnJ1c2g/Lm1heCksXG4gICAgICAgICAgICAgICAgXS5tYXAoYnJ1c2hTY2FsZSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGludmVydGVkU2VsZWN0aW9uWzFdIC0gaW52ZXJ0ZWRTZWxlY3Rpb25bMF0gPFxuICAgICAgICAgICAgICBjb25maWcuYnJ1c2g/Lm1pblxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2NvbnRhaW5lci5jYWxsKFxuICAgICAgICAgICAgICAgIHRoaXMuYnJ1c2gubW92ZSxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICBNYXRoLmZsb29yKGludmVydGVkU2VsZWN0aW9uWzBdKSxcbiAgICAgICAgICAgICAgICAgIE1hdGguY2VpbChpbnZlcnRlZFNlbGVjdGlvblswXSArIGNvbmZpZy5icnVzaD8ubWluKSxcbiAgICAgICAgICAgICAgICBdLm1hcChicnVzaFNjYWxlKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2NvbnRhaW5lci5jYWxsKHRoaXMuYnJ1c2gubW92ZSwgW1xuICAgICAgICAgICAgICBmcm9tIC0gaGFsZkJydXNoSGVpZ2h0LFxuICAgICAgICAgICAgICB0byArIGhhbGZCcnVzaEhlaWdodCxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGJydXNoU2NhbGUuaW52ZXJ0KHRvKSAtIGJydXNoU2NhbGUuaW52ZXJ0KGZyb20pID5cbiAgICAgICAgICAgIGNvbmZpZy5icnVzaD8ubWF4XG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLl9jb250YWluZXIuY2FsbChcbiAgICAgICAgICAgICAgdGhpcy5icnVzaC5tb3ZlLFxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblxuICAgICAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25bMF0sXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblswXSArIGNvbmZpZy5icnVzaD8ubWF4LFxuICAgICAgICAgICAgICAgIF0ubWFwKGJydXNoU2NhbGUpXG4gICAgICAgICAgICAgICAgOiBbY29uZmlnLmJydXNoPy5mcm9tLCBjb25maWcuYnJ1c2g/LnRvXS5tYXAoYnJ1c2hTY2FsZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgYnJ1c2hTY2FsZS5pbnZlcnQodG8pIC0gYnJ1c2hTY2FsZS5pbnZlcnQoZnJvbSkgPFxuICAgICAgICAgICAgY29uZmlnLmJydXNoPy5taW5cbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRhaW5lci5jYWxsKFxuICAgICAgICAgICAgICB0aGlzLmJydXNoLm1vdmUsXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uXG4gICAgICAgICAgICAgICAgPyBbXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblswXSxcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uWzBdICsgY29uZmlnLmJydXNoPy5taW4sXG4gICAgICAgICAgICAgICAgXS5tYXAoYnJ1c2hTY2FsZSlcbiAgICAgICAgICAgICAgICA6IFtjb25maWcuYnJ1c2g/LmZyb20sIGNvbmZpZy5icnVzaD8udG9dLm1hcChicnVzaFNjYWxlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoXy5zb3VyY2VFdmVudCBpbnN0YW5jZW9mIE1vdXNlRXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uID0gXy5zZWxlY3Rpb24ubWFwKGJydXNoU2NhbGUuaW52ZXJ0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBicnVzaE1lc3NhZ2UgPSBuZXcgQnJ1c2hNZXNzYWdlKHtcbiAgICAgICAgICAgIGNoYXJ0SWQ6IHRoaXMuY29uZmlnLmlkLFxuICAgICAgICAgICAgc2VsZWN0aW9uOiBbYnJ1c2hTY2FsZS5pbnZlcnQoZnJvbSksIGJydXNoU2NhbGUuaW52ZXJ0KHRvKV0sXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5icnVzaFNlcnZpY2Uuc2V0QnJ1c2goYnJ1c2hNZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2NvbnRhaW5lci5jYWxsKHRoaXMuYnJ1c2gpO1xuXG4gICAgICAgICAgbGV0IGRvbWFpbiA9IGJydXNoU2NhbGUuZG9tYWluKCk7XG5cbiAgICAgICAgICBpZiAoY29uZmlnPy5icnVzaD8uZnJvbSkge1xuICAgICAgICAgICAgZG9tYWluWzBdID0gY29uZmlnLmJydXNoLmZyb207XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGNvbmZpZz8uYnJ1c2g/LnRvKSB7XG4gICAgICAgICAgICBkb21haW5bMV0gPSBjb25maWcuYnJ1c2gudG87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5fY29udGFpbmVyLmNhbGwoXG4gICAgICAgICAgICB0aGlzLmJydXNoLm1vdmUsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblxuICAgICAgICAgICAgICA/IHRoaXMuc2VsZWN0aW9uLm1hcChicnVzaFNjYWxlKVxuICAgICAgICAgICAgICA6IGRvbWFpbi5tYXAoYnJ1c2hTY2FsZSlcbiAgICAgICAgICApO1xuICAgICAgICB9LCAwKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyUHJldmlvdXNTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24gPSBudWxsO1xuICB9XG59XG4iXX0=
|
|
@@ -9,43 +9,38 @@ import { ZoomBehaviorType } from '../model/enum/zoom-behavior-type';
|
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "../service/zoom.service";
|
|
11
11
|
import * as i2 from "../service/chart.service";
|
|
12
|
-
import * as i3 from "../service/broadcast.service";
|
|
13
12
|
export class ZoomableDirective {
|
|
14
|
-
constructor(elementRef, zoomService, chartService,
|
|
13
|
+
constructor(elementRef, zoomService, chartService, zone) {
|
|
15
14
|
this.elementRef = elementRef;
|
|
16
15
|
this.zoomService = zoomService;
|
|
17
16
|
this.chartService = chartService;
|
|
18
|
-
this.broadcast = broadcast;
|
|
19
17
|
this.zone = zone;
|
|
20
18
|
this.zoomable = false;
|
|
21
19
|
this.crosshair = false;
|
|
22
20
|
this.alive = true;
|
|
23
21
|
this.currentTransform = zoomIdentity;
|
|
24
22
|
this.zoomed = (event) => {
|
|
25
|
-
if (
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
this.zoomService.fireZoom(message);
|
|
46
|
-
this.zoomService.broadcastZoom(message);
|
|
23
|
+
if (event.sourceEvent) {
|
|
24
|
+
if (Object.keys(event.sourceEvent).length !== 0) {
|
|
25
|
+
const origin = this.axis.scale.copy().domain(this.axis.originDomain);
|
|
26
|
+
let domain = this.axis.orientation === AxisOrientation.y
|
|
27
|
+
? event.transform.rescaleY(origin).domain()
|
|
28
|
+
: event.transform.rescaleX(origin).domain();
|
|
29
|
+
const message = new ZoomMessage({
|
|
30
|
+
eventType: event.type,
|
|
31
|
+
axis: {
|
|
32
|
+
index: this.axis.index,
|
|
33
|
+
orientation: this.axis.orientation,
|
|
34
|
+
},
|
|
35
|
+
element: this.elementRef,
|
|
36
|
+
domain: domain,
|
|
37
|
+
chartId: this.config.id
|
|
38
|
+
});
|
|
39
|
+
this.zoomService.fireZoom(message);
|
|
40
|
+
this.zoomService.broadcastZoom(message);
|
|
41
|
+
}
|
|
42
|
+
this.currentTransform = event.transform;
|
|
47
43
|
}
|
|
48
|
-
this.currentTransform = event.transform;
|
|
49
44
|
};
|
|
50
45
|
}
|
|
51
46
|
ngOnInit() {
|
|
@@ -67,7 +62,7 @@ export class ZoomableDirective {
|
|
|
67
62
|
this.zoomService.zoomed.pipe(takeWhile(() => this.alive)).subscribe((zoomed) => {
|
|
68
63
|
if (this._element && this.elementRef !== zoomed?.element
|
|
69
64
|
&& zoomed?.axis?.index === this.axis.index
|
|
70
|
-
&& zoomed?.axis?.orientation === this.axis.orientation
|
|
65
|
+
&& zoomed?.axis?.orientation === this.axis.orientation) {
|
|
71
66
|
const scale = this.axis.scale.copy().domain(this.axis.originDomain);
|
|
72
67
|
let transform;
|
|
73
68
|
if (zoomed.domain === null) {
|
|
@@ -77,12 +72,7 @@ export class ZoomableDirective {
|
|
|
77
72
|
transform =
|
|
78
73
|
this.zoomService.getD3Transform(zoomed.domain, this.axis.originDomain, scale, this.axis.orientation, this.axis.options.inverted);
|
|
79
74
|
}
|
|
80
|
-
|
|
81
|
-
this._element.transition().call(this.zoom.transform, transform);
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
this._element.call(this.zoom.transform, transform);
|
|
85
|
-
}
|
|
75
|
+
this._element.call(this.zoom.transform, transform);
|
|
86
76
|
this.currentTransform = transform;
|
|
87
77
|
}
|
|
88
78
|
});
|
|
@@ -100,30 +90,31 @@ export class ZoomableDirective {
|
|
|
100
90
|
]);
|
|
101
91
|
const min = this.config?.zoom?.minTranslate
|
|
102
92
|
? this.axis.scale(this.config?.zoom?.minTranslate)
|
|
103
|
-
:
|
|
104
|
-
const max = this.config?.zoom?.maxTranslate
|
|
105
|
-
? this.axis.scale(this.config?.zoom?.maxTranslate)
|
|
106
|
-
:
|
|
107
|
-
if (this.axis.orientation === AxisOrientation.x && this.config.zoom
|
|
93
|
+
: -Infinity;
|
|
94
|
+
const max = (this.config?.zoom?.maxTranslate
|
|
95
|
+
? this.axis.scale(this.config?.zoom?.maxTranslate) - (this.axis.orientation === AxisOrientation.x ? this.size.width : this.size.height)
|
|
96
|
+
: Infinity);
|
|
97
|
+
if (this.axis.orientation === AxisOrientation.x && this.config.zoom.type === ZoomType.x) {
|
|
108
98
|
this.zoom.translateExtent([
|
|
109
|
-
[min,
|
|
110
|
-
[max,
|
|
99
|
+
[min, -Infinity],
|
|
100
|
+
[max, Infinity],
|
|
111
101
|
]);
|
|
112
102
|
}
|
|
113
|
-
if (this.axis.orientation === AxisOrientation.y && this.config.zoom
|
|
103
|
+
if (this.axis.orientation === AxisOrientation.y && this.config.zoom.type === ZoomType.y) {
|
|
114
104
|
this.zoom.translateExtent([
|
|
115
|
-
[
|
|
116
|
-
[
|
|
105
|
+
[-Infinity, min],
|
|
106
|
+
[Infinity, max],
|
|
117
107
|
]);
|
|
118
108
|
}
|
|
119
109
|
if (this.config.zoom?.wheelDelta) {
|
|
120
110
|
this.zoom.wheelDelta(this.config.zoom?.wheelDelta);
|
|
121
111
|
}
|
|
122
112
|
const maxZoom = this.config.zoom?.max
|
|
123
|
-
? (this.axis.extremes[1] - this.axis.extremes[0]) /
|
|
124
|
-
|
|
125
|
-
this.
|
|
126
|
-
|
|
113
|
+
? (this.axis.extremes[1] - this.axis.extremes[0]) /
|
|
114
|
+
this.config.zoom?.max
|
|
115
|
+
: this.config.zoom?.limitZoomByData
|
|
116
|
+
? 1
|
|
117
|
+
: 0;
|
|
127
118
|
const minZoom = this.config.zoom?.min
|
|
128
119
|
? (this.axis.extremes[1] - this.axis.extremes[0]) /
|
|
129
120
|
this.config.zoom?.min
|
|
@@ -134,18 +125,6 @@ export class ZoomableDirective {
|
|
|
134
125
|
if (this.config?.zoom?.zoomBehavior === ZoomBehaviorType.wheel) {
|
|
135
126
|
this.runWheelTranslate();
|
|
136
127
|
}
|
|
137
|
-
this.broadcast.subscribeToZoom(this.config?.zoom.syncChannel).subscribe((zoom) => {
|
|
138
|
-
if (zoom.message.chartId !== this.config?.id && zoom.message.axis.orientation === this.axis.orientation && zoom.message.axis.index === this.axis.index) {
|
|
139
|
-
const scale = this.axis.scale.copy().domain(this.axis.originDomain);
|
|
140
|
-
const transform = this.zoomService.getD3Transform(zoom.message.domain, this.axis.originDomain, scale, this.axis.orientation, this.axis.options.inverted);
|
|
141
|
-
if (zoom.message.style?.transition) {
|
|
142
|
-
this._element.transition().duration(300).call(this.zoom.transform, transform, null, { type: 'broadcast' });
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
this._element.call(this.zoom.transform, transform, null, { type: 'broadcast' });
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
128
|
}
|
|
150
129
|
runWheelTranslate() {
|
|
151
130
|
let type = 'start';
|
|
@@ -162,6 +141,7 @@ export class ZoomableDirective {
|
|
|
162
141
|
return delta * 0.002;
|
|
163
142
|
});
|
|
164
143
|
const emit = (type, event) => {
|
|
144
|
+
const origin = this.axis.scale.copy().domain(this.axis.originDomain);
|
|
165
145
|
let transform = zoomIdentity;
|
|
166
146
|
const delta = type === 'end'
|
|
167
147
|
? 0
|
|
@@ -175,7 +155,22 @@ export class ZoomableDirective {
|
|
|
175
155
|
transform = transform.translate(this.currentTransform.x - delta / 2, 0);
|
|
176
156
|
}
|
|
177
157
|
transform = transform.scale(this.currentTransform.k);
|
|
178
|
-
this.
|
|
158
|
+
let domain = this.axis.orientation === AxisOrientation.y
|
|
159
|
+
? transform.rescaleY(origin).domain()
|
|
160
|
+
: transform.rescaleX(origin).domain();
|
|
161
|
+
const message = new ZoomMessage({
|
|
162
|
+
eventType: type,
|
|
163
|
+
element: this.elementRef,
|
|
164
|
+
axis: {
|
|
165
|
+
index: this.axis.index,
|
|
166
|
+
orientation: this.axis.orientation
|
|
167
|
+
},
|
|
168
|
+
domain,
|
|
169
|
+
chartId: this.config.id,
|
|
170
|
+
});
|
|
171
|
+
this._element?.call(this.zoom.transform, transform);
|
|
172
|
+
this.zoomService.fireZoom(message);
|
|
173
|
+
this.zoomService.broadcastZoom(message);
|
|
179
174
|
this.currentTransform = transform;
|
|
180
175
|
};
|
|
181
176
|
this._element.on('wheel', (event) => {
|
|
@@ -195,14 +190,14 @@ export class ZoomableDirective {
|
|
|
195
190
|
});
|
|
196
191
|
}
|
|
197
192
|
}
|
|
198
|
-
ZoomableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ZoomableDirective, deps: [{ token: i0.ElementRef }, { token: i1.ZoomService }, { token: i2.ChartService }, { token:
|
|
193
|
+
ZoomableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ZoomableDirective, deps: [{ token: i0.ElementRef }, { token: i1.ZoomService }, { token: i2.ChartService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
199
194
|
ZoomableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.2", type: ZoomableDirective, selector: "[tetaZoomable]", inputs: { config: "config", axis: "axis", size: "size" }, host: { properties: { "class.zoomable": "this.zoomable", "class.crosshair": "this.crosshair" } }, ngImport: i0 });
|
|
200
195
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ZoomableDirective, decorators: [{
|
|
201
196
|
type: Directive,
|
|
202
197
|
args: [{
|
|
203
198
|
selector: '[tetaZoomable]',
|
|
204
199
|
}]
|
|
205
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ZoomService }, { type: i2.ChartService }, { type:
|
|
200
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ZoomService }, { type: i2.ChartService }, { type: i0.NgZone }]; }, propDecorators: { config: [{
|
|
206
201
|
type: Input
|
|
207
202
|
}], axis: [{
|
|
208
203
|
type: Input
|
|
@@ -215,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
215
210
|
type: HostBinding,
|
|
216
211
|
args: ['class.crosshair']
|
|
217
212
|
}] } });
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbWFibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2RpcmVjdGl2ZXMvem9vbWFibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFjLFdBQVcsRUFBRSxLQUFLLEdBQXFCLE1BQU0sZUFBZSxDQUFDO0FBSTNHLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sRUFBNEIsWUFBWSxFQUFDLE1BQU0sSUFBSSxDQUFDO0FBQzNELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFDLFdBQVcsR0FBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0FBTWxFLE1BQU0sT0FBTyxpQkFBaUI7SUFjNUIsWUFDVSxVQUFzQixFQUN0QixXQUF3QixFQUN4QixZQUEwQixFQUMxQixTQUEyQixFQUMzQixJQUFZO1FBSlosZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBZGlCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDaEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUlsRCxVQUFLLEdBQUcsSUFBSSxDQUFDO1FBRWIscUJBQWdCLEdBQUcsWUFBWSxDQUFDO1FBb0l4QyxXQUFNLEdBQUcsQ0FBQyxLQUE0QixFQUFFLEVBQUU7WUFFeEMsSUFBRyxDQUFDLEtBQUssQ0FBQyxX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LElBQUksR0FBRyxPQUFPLENBQUM7Z0JBQ2pCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNULENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs4R0FsUFUsaUJBQWlCO2tHQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFIN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2lCQUMzQjswTUFFVSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFaUMsUUFBUTtzQkFBOUMsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBQ1csU0FBUztzQkFBaEQsV0FBVzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtab29tU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHtJQ2hhcnRDb25maWd9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7QXhpc30gZnJvbSAnLi4vY29yZS9heGlzL2F4aXMnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHtEM1pvb21FdmVudCwgWm9vbUJlaGF2aW9yLCB6b29tSWRlbnRpdHl9IGZyb20gJ2QzJztcbmltcG9ydCB7Wm9vbVR5cGV9IGZyb20gJy4uL21vZGVsL2VudW0vem9vbS10eXBlJztcbmltcG9ydCB7QXhpc09yaWVudGF0aW9ufSBmcm9tICcuLi9tb2RlbC9lbnVtL2F4aXMtb3JpZW50YXRpb24nO1xuaW1wb3J0IHtab29tTWVzc2FnZSx9IGZyb20gJy4uL21vZGVsL2ktYnJvYWRjYXN0LW1lc3NhZ2UnO1xuaW1wb3J0IHt0YWtlV2hpbGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDaGFydFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvY2hhcnQuc2VydmljZSc7XG5pbXBvcnQge1pvb21CZWhhdmlvclR5cGV9IGZyb20gJy4uL21vZGVsL2VudW0vem9vbS1iZWhhdmlvci10eXBlJztcbmltcG9ydCB7QnJvYWRjYXN0U2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2UvYnJvYWRjYXN0LnNlcnZpY2VcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RldGFab29tYWJsZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBab29tYWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGNvbmZpZzogSUNoYXJ0Q29uZmlnO1xuICBASW5wdXQoKSBheGlzOiBBeGlzO1xuICBASW5wdXQoKSBzaXplOiBET01SZWN0O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muem9vbWFibGUnKSBwcml2YXRlIHpvb21hYmxlID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuY3Jvc3NoYWlyJykgcHJpdmF0ZSBjcm9zc2hhaXIgPSBmYWxzZTtcblxuICBwcml2YXRlIF9lbGVtZW50OiBkMy5TZWxlY3Rpb248U1ZHRWxlbWVudCwgYW55LCBhbnksIGFueT47XG4gIHByaXZhdGUgem9vbTogWm9vbUJlaGF2aW9yPGFueSwgYW55PjtcbiAgcHJpdmF0ZSBhbGl2ZSA9IHRydWU7XG5cbiAgcHJpdmF0ZSBjdXJyZW50VHJhbnNmb3JtID0gem9vbUlkZW50aXR5O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcml2YXRlIGNoYXJ0U2VydmljZTogQ2hhcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnJvYWRjYXN0OiBCcm9hZGNhc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgem9uZTogTmdab25lXG4gICkge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuYXhpcz8ub3B0aW9ucz8uem9vbSB8fCB0aGlzLmNvbmZpZz8uem9vbT8uZW5hYmxlKSB7XG4gICAgICB0aGlzLnpvb21hYmxlID0gdGhpcy5jb25maWc/Lnpvb20/Lnpvb21CZWhhdmlvciA9PT0gWm9vbUJlaGF2aW9yVHlwZS5tb3ZlICYmICF0aGlzLmNvbmZpZz8udG9vbHRpcD8uc2hvd0Nyb3NzaGFpcjtcbiAgICAgIHRoaXMuY3Jvc3NoYWlyID0gdGhpcy5jb25maWc/LnRvb2x0aXA/LnNob3dDcm9zc2hhaXI7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuaW5pdFpvb21MaXN0ZW5lcnMoKTtcbiAgICB0aGlzLmluaXRab29tU3luYygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy56b29tPy5vbignc3RhcnQgem9vbSBlbmQnLCBudWxsKTtcbiAgICB0aGlzLl9lbGVtZW50Py5vbignd2hlZWwnLCBudWxsKTtcbiAgICB0aGlzLmFsaXZlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGluaXRab29tU3luYygpIHtcbiAgICB0aGlzLnpvb21TZXJ2aWNlLnpvb21lZC5waXBlKFxuICAgICAgdGFrZVdoaWxlKCgpID0+IHRoaXMuYWxpdmUpXG4gICAgKS5zdWJzY3JpYmUoKHpvb21lZDogWm9vbU1lc3NhZ2UpID0+IHtcbiAgICAgIGlmICh0aGlzLl9lbGVtZW50ICYmIHRoaXMuZWxlbWVudFJlZiAhPT0gem9vbWVkPy5lbGVtZW50XG4gICAgICAgICYmIHpvb21lZD8uYXhpcz8uaW5kZXggPT09IHRoaXMuYXhpcy5pbmRleFxuICAgICAgICAmJiB6b29tZWQ/LmF4aXM/Lm9yaWVudGF0aW9uID09PSB0aGlzLmF4aXMub3JpZW50YXRpb24gJiYgem9vbWVkLmV2ZW50VHlwZSA9PT0gJ2VuZCcpIHtcbiAgICAgICAgY29uc3Qgc2NhbGUgPSB0aGlzLmF4aXMuc2NhbGUuY29weSgpLmRvbWFpbih0aGlzLmF4aXMub3JpZ2luRG9tYWluKTtcbiAgICAgICAgbGV0IHRyYW5zZm9ybTtcbiAgICAgICAgaWYgKHpvb21lZC5kb21haW4gPT09IG51bGwpIHtcbiAgICAgICAgICB0cmFuc2Zvcm0gPSB6b29tSWRlbnRpdHk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHJhbnNmb3JtID1cbiAgICAgICAgICAgIHRoaXMuem9vbVNlcnZpY2UuZ2V0RDNUcmFuc2Zvcm0oem9vbWVkLmRvbWFpbiwgdGhpcy5heGlzLm9yaWdpbkRvbWFpbiwgc2NhbGUsIHRoaXMuYXhpcy5vcmllbnRhdGlvbiwgdGhpcy5heGlzLm9wdGlvbnMuaW52ZXJ0ZWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh6b29tZWQuc3R5bGU/LnRyYW5zaXRpb24pIHtcbiAgICAgICAgICB0aGlzLl9lbGVtZW50LnRyYW5zaXRpb24oKS5jYWxsKHRoaXMuem9vbS50cmFuc2Zvcm0sIHRyYW5zZm9ybSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fZWxlbWVudC5jYWxsKHRoaXMuem9vbS50cmFuc2Zvcm0sIHRyYW5zZm9ybSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50VHJhbnNmb3JtID0gdHJhbnNmb3JtO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Wm9vbUxpc3RlbmVycygpIHtcbiAgICBjb25zdCBlbmFibGUgPVxuICAgICAgKHRoaXMuYXhpcz8ub3B0aW9ucz8uem9vbSAmJiB0aGlzLmF4aXM/Lm9wdGlvbnMudmlzaWJsZSAhPT0gZmFsc2UpIHx8XG4gICAgICB0aGlzLmNvbmZpZz8uem9vbT8uZW5hYmxlO1xuXG4gICAgaWYgKCFlbmFibGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9lbGVtZW50ID0gZDMuc2VsZWN0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnpvb20gPSBkMy56b29tKCkuZXh0ZW50KFtcbiAgICAgIFswLCAwXSxcbiAgICAgIFt0aGlzLnNpemUud2lkdGgsIHRoaXMuc2l6ZS5oZWlnaHRdLFxuICAgIF0pO1xuXG4gICAgY29uc3QgbWluID0gdGhpcy5jb25maWc/Lnpvb20/Lm1pblRyYW5zbGF0ZVxuICAgICAgPyB0aGlzLmF4aXMuc2NhbGUodGhpcy5jb25maWc/Lnpvb20/Lm1pblRyYW5zbGF0ZSlcbiAgICAgIDogMDtcblxuICAgIGNvbnN0IG1heCA9IHRoaXMuY29uZmlnPy56b29tPy5tYXhUcmFuc2xhdGVcbiAgICAgID8gdGhpcy5heGlzLnNjYWxlKHRoaXMuY29uZmlnPy56b29tPy5tYXhUcmFuc2xhdGUpXG4gICAgICA6IHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnggPyB0aGlzLnNpemUud2lkdGggOiB0aGlzLnNpemUuaGVpZ2h0O1xuXG5cbiAgICBpZiAodGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueCAmJiB0aGlzLmNvbmZpZy56b29tPy50eXBlID09PSBab29tVHlwZS54KSB7XG4gICAgICB0aGlzLnpvb20udHJhbnNsYXRlRXh0ZW50KFtcbiAgICAgICAgW21pbiwgMF0sXG4gICAgICAgIFttYXgsIHRoaXMuc2l6ZS5oZWlnaHRdLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnkgJiYgdGhpcy5jb25maWcuem9vbT8udHlwZSA9PT0gWm9vbVR5cGUueSkge1xuICAgICAgdGhpcy56b29tLnRyYW5zbGF0ZUV4dGVudChbXG4gICAgICAgIFswLCBtaW5dLFxuICAgICAgICBbdGhpcy5zaXplLndpZHRoLCBtYXhdLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnLnpvb20/LndoZWVsRGVsdGEpIHtcbiAgICAgIHRoaXMuem9vbS53aGVlbERlbHRhKHRoaXMuY29uZmlnLnpvb20/LndoZWVsRGVsdGEpO1xuICAgIH1cblxuICAgIGNvbnN0IG1heFpvb20gPSB0aGlzLmNvbmZpZy56b29tPy5tYXhcbiAgICAgID8gKHRoaXMuYXhpcy5leHRyZW1lc1sxXSAtIHRoaXMuYXhpcy5leHRyZW1lc1swXSkgLyB0aGlzLmNvbmZpZy56b29tPy5tYXggOiB0aGlzLmNvbmZpZy56b29tPy5saW1pdFpvb21CeURhdGEgPyAxIDogMDtcblxuICAgIGlmICh0aGlzLmNvbmZpZy56b29tPy53aGVlbERlbHRhKSB7XG4gICAgICB0aGlzLnpvb20ud2hlZWxEZWx0YSh0aGlzLmNvbmZpZy56b29tPy53aGVlbERlbHRhKTtcbiAgICB9XG5cbiAgICBjb25zdCBtaW5ab29tID0gdGhpcy5jb25maWcuem9vbT8ubWluXG4gICAgICA/ICh0aGlzLmF4aXMuZXh0cmVtZXNbMV0gLSB0aGlzLmF4aXMuZXh0cmVtZXNbMF0pIC9cbiAgICAgIHRoaXMuY29uZmlnLnpvb20/Lm1pblxuICAgICAgOiBJbmZpbml0eTtcblxuICAgIHRoaXMuem9vbS5zY2FsZUV4dGVudChbbWF4Wm9vbSwgbWluWm9vbV0pO1xuXG4gICAgdGhpcy56b29tLm9uKCd6b29tIGVuZCcsIHRoaXMuem9vbWVkKTtcbiAgICB0aGlzLl9lbGVtZW50LmNhbGwodGhpcy56b29tKS5vbignZGJsY2xpY2suem9vbScsIG51bGwpO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnPy56b29tPy56b29tQmVoYXZpb3IgPT09IFpvb21CZWhhdmlvclR5cGUud2hlZWwpIHtcbiAgICAgIHRoaXMucnVuV2hlZWxUcmFuc2xhdGUoKTtcbiAgICB9XG5cblxuICAgIHRoaXMuYnJvYWRjYXN0LnN1YnNjcmliZVRvWm9vbSh0aGlzLmNvbmZpZz8uem9vbS5zeW5jQ2hhbm5lbCkuc3Vic2NyaWJlKCh6b29tKSA9PiB7XG4gICAgICBpZiAoem9vbS5tZXNzYWdlLmNoYXJ0SWQgIT09IHRoaXMuY29uZmlnPy5pZCAmJiB6b29tLm1lc3NhZ2UuYXhpcy5vcmllbnRhdGlvbiA9PT0gdGhpcy5heGlzLm9yaWVudGF0aW9uICYmIHpvb20ubWVzc2FnZS5heGlzLmluZGV4ID09PSB0aGlzLmF4aXMuaW5kZXgpIHtcbiAgICAgICAgY29uc3Qgc2NhbGUgPSB0aGlzLmF4aXMuc2NhbGUuY29weSgpLmRvbWFpbih0aGlzLmF4aXMub3JpZ2luRG9tYWluKTtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtID0gdGhpcy56b29tU2VydmljZS5nZXREM1RyYW5zZm9ybSh6b29tLm1lc3NhZ2UuZG9tYWluLCB0aGlzLmF4aXMub3JpZ2luRG9tYWluLCBzY2FsZSwgdGhpcy5heGlzLm9yaWVudGF0aW9uLCB0aGlzLmF4aXMub3B0aW9ucy5pbnZlcnRlZCk7XG4gICAgICAgIGlmKHpvb20ubWVzc2FnZS5zdHlsZT8udHJhbnNpdGlvbikge1xuICAgICAgICAgIHRoaXMuX2VsZW1lbnQudHJhbnNpdGlvbigpLmR1cmF0aW9uKDMwMCkuY2FsbCh0aGlzLnpvb20udHJhbnNmb3JtLCB0cmFuc2Zvcm0sIG51bGwsIHt0eXBlOiAnYnJvYWRjYXN0J30pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fZWxlbWVudC5jYWxsKHRoaXMuem9vbS50cmFuc2Zvcm0sIHRyYW5zZm9ybSwgbnVsbCwge3R5cGU6ICdicm9hZGNhc3QnfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuXG4gIHpvb21lZCA9IChldmVudDogRDNab29tRXZlbnQ8YW55LCBhbnk+KSA9PiB7XG5cbiAgICBpZighZXZlbnQuc291cmNlRXZlbnQpIHJldHVybjtcblxuICAgIGNvbnN0IG9yaWdpbiA9IHRoaXMuYXhpcy5zY2FsZS5jb3B5KCkuZG9tYWluKHRoaXMuYXhpcy5vcmlnaW5Eb21haW4pO1xuXG4gICAgbGV0IGRvbWFpbiA9XG4gICAgICB0aGlzLmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55XG4gICAgICAgID8gZXZlbnQudHJhbnNmb3JtLnJlc2NhbGVZKG9yaWdpbikuZG9tYWluKClcbiAgICAgICAgOiBldmVudC50cmFuc2Zvcm0ucmVzY2FsZVgob3JpZ2luKS5kb21haW4oKTtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgWm9vbU1lc3NhZ2Uoe1xuICAgICAgZXZlbnRUeXBlOiBldmVudC50eXBlLFxuICAgICAgYXhpczoge1xuICAgICAgICBpbmRleDogdGhpcy5heGlzLmluZGV4LFxuICAgICAgICBvcmllbnRhdGlvbjogdGhpcy5heGlzLm9yaWVudGF0aW9uLFxuICAgICAgfSxcbiAgICAgIGVsZW1lbnQ6IHRoaXMuZWxlbWVudFJlZixcbiAgICAgIGRvbWFpbjogZG9tYWluLFxuICAgICAgY2hhcnRJZDogdGhpcy5jb25maWcuaWRcbiAgICB9KTtcblxuICAgIGlmIChldmVudC5zb3VyY2VFdmVudC50eXBlID09PSAnYnJvYWRjYXN0Jykge1xuICAgICAgdGhpcy56b29tU2VydmljZS5maXJlWm9vbShtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQuc291cmNlRXZlbnQudHlwZSA9PT0gJ3doZWVsaW5nJyB8fCBldmVudC5zb3VyY2VFdmVudCBpbnN0YW5jZW9mIE1vdXNlRXZlbnQgfHwgKHdpbmRvdy5Ub3VjaEV2ZW50ICYmIGV2ZW50LnNvdXJjZUV2ZW50IGluc3RhbmNlb2YgVG91Y2hFdmVudCkpIHtcbiAgICAgIHRoaXMuem9vbVNlcnZpY2UuZmlyZVpvb20obWVzc2FnZSk7XG4gICAgICB0aGlzLnpvb21TZXJ2aWNlLmJyb2FkY2FzdFpvb20obWVzc2FnZSk7XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50VHJhbnNmb3JtID0gZXZlbnQudHJhbnNmb3JtO1xuXG4gIH07XG5cbiAgcHJpdmF0ZSBydW5XaGVlbFRyYW5zbGF0ZSgpIHtcbiAgICBsZXQgdHlwZTogJ3N0YXJ0JyB8ICd6b29tJyB8ICdlbmQnID0gJ3N0YXJ0JztcbiAgICBsZXQgd2hlZWxpbmc7XG5cbiAgICB0aGlzLnpvb21cbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIHJldHVybiAoZXZlbnQuY3RybEtleSAmJiBldmVudC50eXBlID09PSAnd2hlZWwnKSB8fFxuICAgICAgICAgICAgQm9vbGVhbih3aW5kb3cuVG91Y2hFdmVudCAmJiBldmVudC50eXBlICE9PSAnd2hlZWwnKTtcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLndoZWVsRGVsdGEoKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGRlbHRhID1cbiAgICAgICAgICB0aGlzLmNvbmZpZz8uem9vbS50eXBlID09PSBab29tVHlwZS54XG4gICAgICAgICAgICA/IC1ldmVudC5kZWx0YVhcbiAgICAgICAgICAgIDogLWV2ZW50LmRlbHRhWTtcbiAgICAgICAgcmV0dXJuIGRlbHRhICogMC4wMDI7XG4gICAgICB9KTtcblxuICAgIGNvbnN0IGVtaXQgPSAodHlwZTogc3RyaW5nLCBldmVudDogV2hlZWxFdmVudCkgPT4ge1xuICAgICAgbGV0IHRyYW5zZm9ybSA9IHpvb21JZGVudGl0eTtcbiAgICAgIGNvbnN0IGRlbHRhID1cbiAgICAgICAgdHlwZSA9PT0gJ2VuZCdcbiAgICAgICAgICA/IDBcbiAgICAgICAgICA6IHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnlcbiAgICAgICAgICAgID8gZXZlbnQuZGVsdGFZXG4gICAgICAgICAgICA6IGV2ZW50LmRlbHRhWDtcblxuICAgICAgaWYgKHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnkpIHtcbiAgICAgICAgdHJhbnNmb3JtID0gdHJhbnNmb3JtLnRyYW5zbGF0ZShcbiAgICAgICAgICAwLFxuICAgICAgICAgIHRoaXMuY3VycmVudFRyYW5zZm9ybS55IC0gZGVsdGEgLyAyXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi54KSB7XG4gICAgICAgIHRyYW5zZm9ybSA9IHRyYW5zZm9ybS50cmFuc2xhdGUoXG4gICAgICAgICAgdGhpcy5jdXJyZW50VHJhbnNmb3JtLnggLSBkZWx0YSAvIDIsXG4gICAgICAgICAgMFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0cmFuc2Zvcm0gPSB0cmFuc2Zvcm0uc2NhbGUodGhpcy5jdXJyZW50VHJhbnNmb3JtLmspO1xuXG4gICAgICB0aGlzLl9lbGVtZW50Py5jYWxsKHRoaXMuem9vbS50cmFuc2Zvcm0sIHRyYW5zZm9ybSwgbnVsbCwge3R5cGU6ICd3aGVlbGluZyd9KTtcbiAgICAgIHRoaXMuY3VycmVudFRyYW5zZm9ybSA9IHRyYW5zZm9ybTtcbiAgICB9O1xuXG4gICAgdGhpcy5fZWxlbWVudC5vbignd2hlZWwnLCAoZXZlbnQ6IFdoZWVsRXZlbnQpID0+IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAoZXZlbnQuY3RybEtleSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQod2hlZWxpbmcpO1xuICAgICAgICBlbWl0KHR5cGUsIGV2ZW50KTtcbiAgICAgICAgdHlwZSA9ICd6b29tJztcbiAgICAgICAgd2hlZWxpbmcgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBlbWl0KCdlbmQnLCBldmVudCk7XG4gICAgICAgICAgdHlwZSA9ICdzdGFydCc7XG4gICAgICAgIH0sIDUwKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbWFibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2RpcmVjdGl2ZXMvem9vbWFibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFjLFdBQVcsRUFBRSxLQUFLLEdBQXFCLE1BQU0sZUFBZSxDQUFDO0FBSTNHLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sRUFBNEIsWUFBWSxFQUFDLE1BQU0sSUFBSSxDQUFDO0FBQzNELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFDLFdBQVcsR0FBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFLbEUsTUFBTSxPQUFPLGlCQUFpQjtJQWM1QixZQUNVLFVBQXNCLEVBQ3RCLFdBQXdCLEVBQ3hCLFlBQTBCLEVBQzFCLElBQVk7UUFIWixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQVE7UUFiaUIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNoQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBSWxELFVBQUssR0FBRyxJQUFJLENBQUM7UUFFYixxQkFBZ0IsR0FBRyxZQUFZLENBQUM7UUEyR3hDLFdBQU0sR0FBRyxDQUFDLEtBQTRCLEVBQUUsRUFBRTtZQUN4QyxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUU7Z0JBQ3JCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFL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SSxHQUFHLE9BQU8sQ0FBQztnQkFDakIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ1QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzhHQXBPVSxpQkFBaUI7a0dBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUg3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzNCOzJLQUVVLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVpQyxRQUFRO3NCQUE5QyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFDVyxTQUFTO3NCQUFoRCxXQUFXO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE5nWm9uZSwgT25EZXN0cm95LH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1pvb21TZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3pvb20uc2VydmljZSc7XG5pbXBvcnQge0lDaGFydENvbmZpZ30gZnJvbSAnLi4vbW9kZWwvaS1jaGFydC1jb25maWcnO1xuaW1wb3J0IHtBeGlzfSBmcm9tICcuLi9jb3JlL2F4aXMvYXhpcyc7XG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XG5pbXBvcnQge0QzWm9vbUV2ZW50LCBab29tQmVoYXZpb3IsIHpvb21JZGVudGl0eX0gZnJvbSAnZDMnO1xuaW1wb3J0IHtab29tVHlwZX0gZnJvbSAnLi4vbW9kZWwvZW51bS96b29tLXR5cGUnO1xuaW1wb3J0IHtBeGlzT3JpZW50YXRpb259IGZyb20gJy4uL21vZGVsL2VudW0vYXhpcy1vcmllbnRhdGlvbic7XG5pbXBvcnQge1pvb21NZXNzYWdlLH0gZnJvbSAnLi4vbW9kZWwvaS1icm9hZGNhc3QtbWVzc2FnZSc7XG5pbXBvcnQge3Rha2VXaGlsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NoYXJ0U2VydmljZX0gZnJvbSAnLi4vc2VydmljZS9jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7Wm9vbUJlaGF2aW9yVHlwZX0gZnJvbSAnLi4vbW9kZWwvZW51bS96b29tLWJlaGF2aW9yLXR5cGUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGV0YVpvb21hYmxlXScsXG59KVxuZXhwb3J0IGNsYXNzIFpvb21hYmxlRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgY29uZmlnOiBJQ2hhcnRDb25maWc7XG4gIEBJbnB1dCgpIGF4aXM6IEF4aXM7XG4gIEBJbnB1dCgpIHNpemU6IERPTVJlY3Q7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy56b29tYWJsZScpIHByaXZhdGUgem9vbWFibGUgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jcm9zc2hhaXInKSBwcml2YXRlIGNyb3NzaGFpciA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2VsZW1lbnQ6IGQzLlNlbGVjdGlvbjxTVkdFbGVtZW50LCBhbnksIGFueSwgYW55PjtcbiAgcHJpdmF0ZSB6b29tOiBab29tQmVoYXZpb3I8YW55LCBhbnk+O1xuICBwcml2YXRlIGFsaXZlID0gdHJ1ZTtcblxuICBwcml2YXRlIGN1cnJlbnRUcmFuc2Zvcm0gPSB6b29tSWRlbnRpdHk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgem9vbVNlcnZpY2U6IFpvb21TZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhcnRTZXJ2aWNlOiBDaGFydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmVcbiAgKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5heGlzPy5vcHRpb25zPy56b29tIHx8IHRoaXMuY29uZmlnPy56b29tPy5lbmFibGUpIHtcbiAgICAgIHRoaXMuem9vbWFibGUgPSB0aGlzLmNvbmZpZz8uem9vbT8uem9vbUJlaGF2aW9yID09PSBab29tQmVoYXZpb3JUeXBlLm1vdmUgJiYgIXRoaXMuY29uZmlnPy50b29sdGlwPy5zaG93Q3Jvc3NoYWlyO1xuICAgICAgdGhpcy5jcm9zc2hhaXIgPSB0aGlzLmNvbmZpZz8udG9vbHRpcD8uc2hvd0Nyb3NzaGFpcjtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pbml0Wm9vbUxpc3RlbmVycygpO1xuICAgIHRoaXMuaW5pdFpvb21TeW5jKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnpvb20/Lm9uKCdzdGFydCB6b29tIGVuZCcsIG51bGwpO1xuICAgIHRoaXMuX2VsZW1lbnQ/Lm9uKCd3aGVlbCcsIG51bGwpO1xuICAgIHRoaXMuYWxpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFpvb21TeW5jKCkge1xuICAgIHRoaXMuem9vbVNlcnZpY2Uuem9vbWVkLnBpcGUoXG4gICAgICB0YWtlV2hpbGUoKCkgPT4gdGhpcy5hbGl2ZSlcbiAgICApLnN1YnNjcmliZSgoem9vbWVkOiBab29tTWVzc2FnZSkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2VsZW1lbnQgJiYgdGhpcy5lbGVtZW50UmVmICE9PSB6b29tZWQ/LmVsZW1lbnRcbiAgICAgICAgJiYgem9vbWVkPy5heGlzPy5pbmRleCA9PT0gdGhpcy5heGlzLmluZGV4XG4gICAgICAgICYmIHpvb21lZD8uYXhpcz8ub3JpZW50YXRpb24gPT09IHRoaXMuYXhpcy5vcmllbnRhdGlvbikge1xuICAgICAgICBjb25zdCBzY2FsZSA9IHRoaXMuYXhpcy5zY2FsZS5jb3B5KCkuZG9tYWluKHRoaXMuYXhpcy5vcmlnaW5Eb21haW4pO1xuICAgICAgICBsZXQgdHJhbnNmb3JtO1xuICAgICAgICBpZiAoem9vbWVkLmRvbWFpbiA9PT0gbnVsbCkge1xuICAgICAgICAgIHRyYW5zZm9ybSA9IHpvb21JZGVudGl0eTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0cmFuc2Zvcm0gPVxuICAgICAgICAgICAgdGhpcy56b29tU2VydmljZS5nZXREM1RyYW5zZm9ybSh6b29tZWQuZG9tYWluLCB0aGlzLmF4aXMub3JpZ2luRG9tYWluLCBzY2FsZSwgdGhpcy5heGlzLm9yaWVudGF0aW9uLCB0aGlzLmF4aXMub3B0aW9ucy5pbnZlcnRlZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZWxlbWVudC5jYWxsKHRoaXMuem9vbS50cmFuc2Zvcm0sIHRyYW5zZm9ybSk7XG4gICAgICAgIHRoaXMuY3VycmVudFRyYW5zZm9ybSA9IHRyYW5zZm9ybTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFpvb21MaXN0ZW5lcnMoKSB7XG4gICAgY29uc3QgZW5hYmxlID1cbiAgICAgICh0aGlzLmF4aXM/Lm9wdGlvbnM/Lnpvb20gJiYgdGhpcy5heGlzPy5vcHRpb25zLnZpc2libGUgIT09IGZhbHNlKSB8fFxuICAgICAgdGhpcy5jb25maWc/Lnpvb20/LmVuYWJsZTtcbiAgICBpZiAoIWVuYWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9lbGVtZW50ID0gZDMuc2VsZWN0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnpvb20gPSBkMy56b29tKCkuZXh0ZW50KFtcbiAgICAgIFswLCAwXSxcbiAgICAgIFt0aGlzLnNpemUud2lkdGgsIHRoaXMuc2l6ZS5oZWlnaHRdLFxuICAgIF0pO1xuXG4gICAgY29uc3QgbWluID0gdGhpcy5jb25maWc/Lnpvb20/Lm1pblRyYW5zbGF0ZVxuICAgICAgPyB0aGlzLmF4aXMuc2NhbGUodGhpcy5jb25maWc/Lnpvb20/Lm1pblRyYW5zbGF0ZSlcbiAgICAgIDogLUluZmluaXR5O1xuICAgIGNvbnN0IG1heCA9ICh0aGlzLmNvbmZpZz8uem9vbT8ubWF4VHJhbnNsYXRlXG4gICAgICA/IHRoaXMuYXhpcy5zY2FsZSh0aGlzLmNvbmZpZz8uem9vbT8ubWF4VHJhbnNsYXRlKSAtICh0aGlzLmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi54ID8gdGhpcy5zaXplLndpZHRoIDogdGhpcy5zaXplLmhlaWdodClcbiAgICAgIDogSW5maW5pdHkpO1xuICAgIGlmICh0aGlzLmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi54ICYmIHRoaXMuY29uZmlnLnpvb20udHlwZSA9PT0gWm9vbVR5cGUueCkge1xuICAgICAgdGhpcy56b29tLnRyYW5zbGF0ZUV4dGVudChbXG4gICAgICAgIFttaW4sIC1JbmZpbml0eV0sXG4gICAgICAgIFttYXgsIEluZmluaXR5XSxcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55ICYmIHRoaXMuY29uZmlnLnpvb20udHlwZSA9PT0gWm9vbVR5cGUueSkge1xuICAgICAgdGhpcy56b29tLnRyYW5zbGF0ZUV4dGVudChbXG4gICAgICAgIFstSW5maW5pdHksIG1pbl0sXG4gICAgICAgIFtJbmZpbml0eSwgbWF4XSxcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZy56b29tPy53aGVlbERlbHRhKSB7XG4gICAgICB0aGlzLnpvb20ud2hlZWxEZWx0YSh0aGlzLmNvbmZpZy56b29tPy53aGVlbERlbHRhKTtcbiAgICB9XG4gICAgY29uc3QgbWF4Wm9vbSA9IHRoaXMuY29uZmlnLnpvb20/Lm1heFxuICAgICAgPyAodGhpcy5heGlzLmV4dHJlbWVzWzFdIC0gdGhpcy5heGlzLmV4dHJlbWVzWzBdKSAvXG4gICAgICB0aGlzLmNvbmZpZy56b29tPy5tYXhcbiAgICAgIDogdGhpcy5jb25maWcuem9vbT8ubGltaXRab29tQnlEYXRhXG4gICAgICAgID8gMVxuICAgICAgICA6IDA7XG5cbiAgICBjb25zdCBtaW5ab29tID0gdGhpcy5jb25maWcuem9vbT8ubWluXG4gICAgICA/ICh0aGlzLmF4aXMuZXh0cmVtZXNbMV0gLSB0aGlzLmF4aXMuZXh0cmVtZXNbMF0pIC9cbiAgICAgIHRoaXMuY29uZmlnLnpvb20/Lm1pblxuICAgICAgOiBJbmZpbml0eTtcblxuICAgIHRoaXMuem9vbS5zY2FsZUV4dGVudChbbWF4Wm9vbSwgbWluWm9vbV0pO1xuXG4gICAgdGhpcy56b29tLm9uKCd6b29tIGVuZCcsIHRoaXMuem9vbWVkKTtcbiAgICB0aGlzLl9lbGVtZW50LmNhbGwodGhpcy56b29tKS5vbignZGJsY2xpY2suem9vbScsIG51bGwpO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnPy56b29tPy56b29tQmVoYXZpb3IgPT09IFpvb21CZWhhdmlvclR5cGUud2hlZWwpIHtcbiAgICAgIHRoaXMucnVuV2hlZWxUcmFuc2xhdGUoKTtcbiAgICB9XG4gIH1cblxuICB6b29tZWQgPSAoZXZlbnQ6IEQzWm9vbUV2ZW50PGFueSwgYW55PikgPT4ge1xuICAgIGlmIChldmVudC5zb3VyY2VFdmVudCkge1xuICAgICAgaWYgKE9iamVjdC5rZXlzKGV2ZW50LnNvdXJjZUV2ZW50KS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luID0gdGhpcy5heGlzLnNjYWxlLmNvcHkoKS5kb21haW4odGhpcy5heGlzLm9yaWdpbkRvbWFpbik7XG5cbiAgICAgICAgbGV0IGRvbWFpbiA9XG4gICAgICAgICAgdGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueVxuICAgICAgICAgICAgPyBldmVudC50cmFuc2Zvcm0ucmVzY2FsZVkob3JpZ2luKS5kb21haW4oKVxuICAgICAgICAgICAgOiBldmVudC50cmFuc2Zvcm0ucmVzY2FsZVgob3JpZ2luKS5kb21haW4oKTtcblxuICAgICAgICBjb25zdCBtZXNzYWdlID0gbmV3IFpvb21NZXNzYWdlKHtcbiAgICAgICAgICBldmVudFR5cGU6IGV2ZW50LnR5cGUsXG4gICAgICAgICAgYXhpczoge1xuICAgICAgICAgICAgaW5kZXg6IHRoaXMuYXhpcy5pbmRleCxcbiAgICAgICAgICAgIG9yaWVudGF0aW9uOiB0aGlzLmF4aXMub3JpZW50YXRpb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBlbGVtZW50OiB0aGlzLmVsZW1lbnRSZWYsXG4gICAgICAgICAgZG9tYWluOiBkb21haW4sXG4gICAgICAgICAgY2hhcnRJZDogdGhpcy5jb25maWcuaWRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy56b29tU2VydmljZS5maXJlWm9vbShtZXNzYWdlKTtcbiAgICAgICAgdGhpcy56b29tU2VydmljZS5icm9hZGNhc3Rab29tKG1lc3NhZ2UpO1xuICAgICAgfVxuICAgICAgdGhpcy5jdXJyZW50VHJhbnNmb3JtID0gZXZlbnQudHJhbnNmb3JtO1xuICAgIH1cbiAgfTsgXG5cbiAgcHJpdmF0ZSBydW5XaGVlbFRyYW5zbGF0ZSgpIHtcbiAgICBsZXQgdHlwZTogJ3N0YXJ0JyB8ICd6b29tJyB8ICdlbmQnID0gJ3N0YXJ0JztcbiAgICBsZXQgd2hlZWxpbmc7XG5cbiAgICB0aGlzLnpvb21cbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIHJldHVybiAoZXZlbnQuY3RybEtleSAmJiBldmVudC50eXBlID09PSAnd2hlZWwnKSB8fFxuICAgICAgICAgICAgQm9vbGVhbih3aW5kb3cuVG91Y2hFdmVudCAmJiBldmVudC50eXBlICE9PSAnd2hlZWwnKTtcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLndoZWVsRGVsdGEoKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGRlbHRhID1cbiAgICAgICAgICB0aGlzLmNvbmZpZz8uem9vbS50eXBlID09PSBab29tVHlwZS54XG4gICAgICAgICAgICA/IC1ldmVudC5kZWx0YVhcbiAgICAgICAgICAgIDogLWV2ZW50LmRlbHRhWTtcbiAgICAgICAgcmV0dXJuIGRlbHRhICogMC4wMDI7XG4gICAgICB9KTtcblxuICAgIGNvbnN0IGVtaXQgPSAodHlwZTogc3RyaW5nLCBldmVudDogV2hlZWxFdmVudCkgPT4ge1xuICAgICAgY29uc3Qgb3JpZ2luID0gdGhpcy5heGlzLnNjYWxlLmNvcHkoKS5kb21haW4odGhpcy5heGlzLm9yaWdpbkRvbWFpbik7XG4gICAgICBsZXQgdHJhbnNmb3JtID0gem9vbUlkZW50aXR5O1xuICAgICAgY29uc3QgZGVsdGEgPVxuICAgICAgICB0eXBlID09PSAnZW5kJ1xuICAgICAgICAgID8gMFxuICAgICAgICAgIDogdGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueVxuICAgICAgICAgICAgPyBldmVudC5kZWx0YVlcbiAgICAgICAgICAgIDogZXZlbnQuZGVsdGFYO1xuXG4gICAgICBpZiAodGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueSkge1xuICAgICAgICB0cmFuc2Zvcm0gPSB0cmFuc2Zvcm0udHJhbnNsYXRlKFxuICAgICAgICAgIDAsXG4gICAgICAgICAgdGhpcy5jdXJyZW50VHJhbnNmb3JtLnkgLSBkZWx0YSAvIDJcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLngpIHtcbiAgICAgICAgdHJhbnNmb3JtID0gdHJhbnNmb3JtLnRyYW5zbGF0ZShcbiAgICAgICAgICB0aGlzLmN1cnJlbnRUcmFuc2Zvcm0ueCAtIGRlbHRhIC8gMixcbiAgICAgICAgICAwXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRyYW5zZm9ybSA9IHRyYW5zZm9ybS5zY2FsZSh0aGlzLmN1cnJlbnRUcmFuc2Zvcm0uayk7XG5cbiAgICAgIGxldCBkb21haW4gPVxuICAgICAgICB0aGlzLmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55XG4gICAgICAgICAgPyB0cmFuc2Zvcm0ucmVzY2FsZVkob3JpZ2luKS5kb21haW4oKVxuICAgICAgICAgIDogdHJhbnNmb3JtLnJlc2NhbGVYKG9yaWdpbikuZG9tYWluKCk7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgWm9vbU1lc3NhZ2Uoe1xuICAgICAgICBldmVudFR5cGU6IHR5cGUsXG4gICAgICAgIGVsZW1lbnQ6IHRoaXMuZWxlbWVudFJlZixcbiAgICAgICAgYXhpczoge1xuICAgICAgICAgIGluZGV4OiB0aGlzLmF4aXMuaW5kZXgsXG4gICAgICAgICAgb3JpZW50YXRpb246IHRoaXMuYXhpcy5vcmllbnRhdGlvblxuICAgICAgICB9LFxuICAgICAgICBkb21haW4sXG4gICAgICAgIGNoYXJ0SWQ6IHRoaXMuY29uZmlnLmlkLFxuICAgICAgfSk7XG4gICAgICB0aGlzLl9lbGVtZW50Py5jYWxsKHRoaXMuem9vbS50cmFuc2Zvcm0sIHRyYW5zZm9ybSk7XG4gICAgICB0aGlzLnpvb21TZXJ2aWNlLmZpcmVab29tKG1lc3NhZ2UpO1xuICAgICAgdGhpcy56b29tU2VydmljZS5icm9hZGNhc3Rab29tKG1lc3NhZ2UpO1xuICAgICAgdGhpcy5jdXJyZW50VHJhbnNmb3JtID0gdHJhbnNmb3JtO1xuICAgIH07XG5cbiAgICB0aGlzLl9lbGVtZW50Lm9uKCd3aGVlbCcsIChldmVudDogV2hlZWxFdmVudCkgPT4ge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGlmIChldmVudC5jdHJsS2V5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh3aGVlbGluZyk7XG4gICAgICAgIGVtaXQodHlwZSwgZXZlbnQpO1xuICAgICAgICB0eXBlID0gJ3pvb20nO1xuICAgICAgICB3aGVlbGluZyA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGVtaXQoJ2VuZCcsIGV2ZW50KTtcbiAgICAgICAgICB0eXBlID0gJ3N0YXJ0JztcbiAgICAgICAgfSwgNTApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -2,9 +2,7 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import { ReplaySubject } from 'rxjs';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class BrushService {
|
|
5
|
-
// private _outBrushDomain = new ReplaySubject<[number, number]>(1);
|
|
6
5
|
constructor() {
|
|
7
|
-
// outBrushDomain: Observable<[number, number]>;
|
|
8
6
|
this._brushDomain = new ReplaySubject(1);
|
|
9
7
|
this.brushDomain = this._brushDomain.asObservable();
|
|
10
8
|
}
|
|
@@ -20,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
20
18
|
providedIn: 'root',
|
|
21
19
|
}]
|
|
22
20
|
}], ctorParameters: function () { return []; } });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJ1c2guc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL2JydXNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQWEsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQU0vQyxNQUFNLE9BQU8sWUFBWTtJQUl2QjtRQUZRLGlCQUFZLEdBQUcsSUFBSSxhQUFhLENBQWUsQ0FBQyxDQUFDLENBQUM7UUFHeEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxRQUFRLENBQUMsS0FBbUI7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7eUdBVlUsWUFBWTs2R0FBWixZQUFZLGNBRlgsTUFBTTsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGUsIFJlcGxheVN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtCcnVzaE1lc3NhZ2V9IGZyb20gJy4uL21vZGVsL2ktYnJvYWRjYXN0LW1lc3NhZ2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQnJ1c2hTZXJ2aWNlIHtcbiAgYnJ1c2hEb21haW46IE9ic2VydmFibGU8QnJ1c2hNZXNzYWdlPjtcbiAgcHJpdmF0ZSBfYnJ1c2hEb21haW4gPSBuZXcgUmVwbGF5U3ViamVjdDxCcnVzaE1lc3NhZ2U+KDEpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYnJ1c2hEb21haW4gPSB0aGlzLl9icnVzaERvbWFpbi5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHNldEJydXNoKGJydXNoOiBCcnVzaE1lc3NhZ2UpIHtcbiAgICB0aGlzLl9icnVzaERvbWFpbi5uZXh0KGJydXNoKTtcbiAgfVxufVxuIl19
|