@tetacom/svg-charts 1.1.4 → 1.1.8
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/base/series-base.component.d.ts +3 -1
- package/chart/chart/chart.component.d.ts +5 -2
- package/chart/chart-container/chart-container.component.d.ts +2 -0
- package/chart/chart-container/plotband/plot-band.component.d.ts +1 -0
- package/chart/chart-container/series/bar/bar-series.component.d.ts +8 -6
- package/chart/chart-container/series/block-area-series/block-area-series.component.d.ts +8 -11
- package/chart/chart-container/series/block-series/block-series.component.d.ts +5 -0
- package/chart/chart-container/series/scatter-series/scatter-series.component.d.ts +2 -2
- package/chart/chart-container/tooltip/tooltip.component.d.ts +2 -1
- package/chart/chart.module.d.ts +1 -1
- package/chart/default/default-chart-config.d.ts +1 -1
- package/chart/default/default-series-config.d.ts +1 -1
- package/chart/directives/brushable.directive.d.ts +2 -1
- package/chart/directives/zoomable.directive.d.ts +2 -1
- package/chart/model/enum/public-api.d.ts +1 -0
- package/chart/model/i-broadcast-message.d.ts +1 -1
- package/chart/service/brush.service.d.ts +2 -1
- package/chart/service/chart.service.d.ts +8 -0
- package/chart/service/public-api.d.ts +5 -0
- package/esm2020/chart/base/series-base.component.mjs +9 -2
- package/esm2020/chart/chart/chart.component.mjs +31 -7
- package/esm2020/chart/chart-container/chart-container.component.mjs +41 -11
- package/esm2020/chart/chart-container/gridlines/gridlines.component.mjs +3 -2
- package/esm2020/chart/chart-container/plotband/plot-band.component.mjs +14 -13
- package/esm2020/chart/chart-container/series/area-series/area-series.component.mjs +36 -32
- package/esm2020/chart/chart-container/series/bar/bar-series.component.mjs +33 -22
- package/esm2020/chart/chart-container/series/block-area-series/block-area-series.component.mjs +33 -165
- package/esm2020/chart/chart-container/series/block-series/block-series.component.mjs +21 -5
- package/esm2020/chart/chart-container/series/line/line-series.component.mjs +37 -14
- package/esm2020/chart/chart-container/series/scatter-series/scatter-series.component.mjs +14 -72
- package/esm2020/chart/chart-container/tooltip/tooltip.component.mjs +21 -10
- package/esm2020/chart/chart.module.mjs +5 -1
- package/esm2020/chart/default/default-chart-config.mjs +3 -3
- package/esm2020/chart/default/default-series-config.mjs +3 -3
- package/esm2020/chart/default/defaultSeriesTypeMapping.mjs +3 -1
- package/esm2020/chart/directives/brushable.directive.mjs +5 -4
- package/esm2020/chart/directives/zoomable.directive.mjs +4 -3
- package/esm2020/chart/model/enum/public-api.mjs +2 -1
- package/esm2020/chart/model/i-broadcast-message.mjs +1 -1
- package/esm2020/chart/model/series.mjs +1 -1
- package/esm2020/chart/service/broadcast.service.mjs +3 -3
- package/esm2020/chart/service/brush.service.mjs +17 -10
- package/esm2020/chart/service/chart.service.mjs +39 -10
- package/esm2020/chart/service/public-api.mjs +6 -0
- package/esm2020/chart/service/scale.service.mjs +1 -1
- package/esm2020/chart/service/zoom.service.mjs +9 -35
- package/esm2020/public-api.mjs +5 -2
- package/fesm2015/tetacom-svg-charts.mjs +476 -526
- package/fesm2015/tetacom-svg-charts.mjs.map +1 -1
- package/fesm2020/tetacom-svg-charts.mjs +474 -517
- package/fesm2020/tetacom-svg-charts.mjs.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +4 -1
|
@@ -14,10 +14,12 @@ export declare class SeriesBaseComponent<T extends BasePoint> implements OnInit
|
|
|
14
14
|
protected zoomService: ZoomService;
|
|
15
15
|
protected element: ElementRef;
|
|
16
16
|
config: IChartConfig;
|
|
17
|
-
series: Series<T
|
|
17
|
+
set series(series: Series<T>);
|
|
18
|
+
get series(): Series<T>;
|
|
18
19
|
size: DOMRect;
|
|
19
20
|
rect: any;
|
|
20
21
|
zoom: Observable<any>;
|
|
22
|
+
protected _series: Series<T>;
|
|
21
23
|
constructor(svc: ChartService, cdr: ChangeDetectorRef, scaleService: ScaleService, zoomService: ZoomService, element: ElementRef);
|
|
22
24
|
ngOnInit(): void;
|
|
23
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<SeriesBaseComponent<any>, never>;
|
|
@@ -17,9 +17,12 @@ export declare class ChartComponent implements OnInit, OnChanges, OnDestroy {
|
|
|
17
17
|
hasSeriesData: Observable<boolean>;
|
|
18
18
|
svcConfig: Observable<IChartConfig>;
|
|
19
19
|
plotBandsMove: EventEmitter<IChartEvent<PlotBand>>;
|
|
20
|
-
|
|
20
|
+
plotBandClick: EventEmitter<IChartEvent<PlotBand>>;
|
|
21
|
+
plotBandContextMenu: EventEmitter<IChartEvent<PlotBand>>;
|
|
21
22
|
plotLinesMove: EventEmitter<IChartEvent<PlotLine>>;
|
|
22
23
|
pointMove: EventEmitter<IChartEvent<IPointMove>>;
|
|
24
|
+
chartClick: EventEmitter<IChartEvent<BasePoint>>;
|
|
25
|
+
chartContextMenu: EventEmitter<IChartEvent<BasePoint>>;
|
|
23
26
|
set config(config: IChartConfig);
|
|
24
27
|
private _alive;
|
|
25
28
|
constructor(_svc: ChartService, _zoomService: ZoomService);
|
|
@@ -28,5 +31,5 @@ export declare class ChartComponent implements OnInit, OnChanges, OnDestroy {
|
|
|
28
31
|
ngAfterViewInit(): void;
|
|
29
32
|
ngOnDestroy(): void;
|
|
30
33
|
static ɵfac: i0.ɵɵFactoryDeclaration<ChartComponent, never>;
|
|
31
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ChartComponent, "teta-svg-chart", never, { "config": "config"; }, { "plotBandsMove": "plotBandsMove"; "
|
|
34
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChartComponent, "teta-svg-chart", never, { "config": "config"; }, { "plotBandsMove": "plotBandsMove"; "plotBandClick": "plotBandClick"; "plotBandContextMenu": "plotBandContextMenu"; "plotLinesMove": "plotLinesMove"; "pointMove": "pointMove"; "chartClick": "chartClick"; "chartContextMenu": "chartContextMenu"; }, never, never>;
|
|
32
35
|
}
|
|
@@ -29,6 +29,8 @@ export declare class ChartContainerComponent implements OnInit {
|
|
|
29
29
|
private sumSize;
|
|
30
30
|
getTranslate(axis?: Axis, size?: DOMRect): Observable<string>;
|
|
31
31
|
identify(index: any, item: any): any;
|
|
32
|
+
click(event: PointerEvent, xScales: Map<number, any>, yScales: Map<number, any>): void;
|
|
33
|
+
contextMenu(event: MouseEvent, xScales: Map<number, any>, yScales: Map<number, any>): void;
|
|
32
34
|
mouseMove(event: any): void;
|
|
33
35
|
mouseLeave(event: any): void;
|
|
34
36
|
id(): string;
|
|
@@ -21,6 +21,7 @@ export declare class PlotBandComponent implements AfterViewInit {
|
|
|
21
21
|
domain: number[];
|
|
22
22
|
constructor(scaleService: ScaleService, zoomService: ZoomService, chartService: ChartService, cdr: ChangeDetectorRef, element: ElementRef);
|
|
23
23
|
click(event: MouseEvent): void;
|
|
24
|
+
contextMenu(event: MouseEvent): void;
|
|
24
25
|
emit(event: IChartEvent<PlotBand>): void;
|
|
25
26
|
ngAfterViewInit(): void;
|
|
26
27
|
get bandSize(): number;
|
|
@@ -4,6 +4,7 @@ import { BasePoint } from '../../../model/base-point';
|
|
|
4
4
|
import { ChartService } from '../../../service/chart.service';
|
|
5
5
|
import { ScaleService } from '../../../service/scale.service';
|
|
6
6
|
import { ZoomService } from '../../../service/zoom.service';
|
|
7
|
+
import { Observable } from 'rxjs';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
export declare class BarSeriesComponent<T extends BasePoint> extends SeriesBaseComponent<T> implements OnInit, OnChanges {
|
|
9
10
|
protected svc: ChartService;
|
|
@@ -11,14 +12,15 @@ export declare class BarSeriesComponent<T extends BasePoint> extends SeriesBaseC
|
|
|
11
12
|
protected scaleService: ScaleService;
|
|
12
13
|
protected zoomService: ZoomService;
|
|
13
14
|
protected element: ElementRef;
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
x: Observable<any>;
|
|
16
|
+
x1: Observable<any>;
|
|
17
|
+
y: Observable<any>;
|
|
18
|
+
barSeriesCount: Observable<number>;
|
|
19
|
+
Math: any;
|
|
16
20
|
constructor(svc: ChartService, cdr: ChangeDetectorRef, scaleService: ScaleService, zoomService: ZoomService, element: ElementRef);
|
|
17
21
|
ngOnInit(): void;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
getX(point: BasePoint): number;
|
|
21
|
-
getY(point: BasePoint): any;
|
|
22
|
+
mouseenter(point: BasePoint): void;
|
|
23
|
+
mouseleave(point: BasePoint): void;
|
|
22
24
|
ngOnChanges(changes: SimpleChanges): void;
|
|
23
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<BarSeriesComponent<any>, never>;
|
|
24
26
|
static ɵcmp: i0.ɵɵComponentDeclaration<BarSeriesComponent<any>, "svg:svg[teta-bar-series]", never, {}, {}, never, never>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectorRef, ElementRef, OnInit } from '@angular/core';
|
|
1
|
+
import { AfterViewInit, ChangeDetectorRef, ElementRef, OnInit } from '@angular/core';
|
|
2
2
|
import { SeriesBaseComponent } from '../../../base/series-base.component';
|
|
3
3
|
import { BasePoint } from '../../../model/base-point';
|
|
4
4
|
import { ChartService } from '../../../service/chart.service';
|
|
@@ -7,25 +7,22 @@ import { ZoomService } from '../../../service/zoom.service';
|
|
|
7
7
|
import { Observable } from 'rxjs';
|
|
8
8
|
import { FillType } from '../../../model/enum/fill-type';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
|
-
export declare class BlockAreaSeriesComponent<T extends BasePoint> extends SeriesBaseComponent<T> implements OnInit {
|
|
10
|
+
export declare class BlockAreaSeriesComponent<T extends BasePoint> extends SeriesBaseComponent<T> implements OnInit, AfterViewInit {
|
|
11
11
|
protected svc: ChartService;
|
|
12
12
|
protected cdr: ChangeDetectorRef;
|
|
13
13
|
protected scaleService: ScaleService;
|
|
14
14
|
protected zoomService: ZoomService;
|
|
15
15
|
protected element: ElementRef;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
svgElement: SVGGeometryElement;
|
|
20
|
-
x: any;
|
|
21
|
-
y: any;
|
|
22
|
-
id: string;
|
|
16
|
+
x: Observable<any>;
|
|
17
|
+
y: Observable<any>;
|
|
18
|
+
displayPoints: Observable<BasePoint[]>;
|
|
23
19
|
fillType: typeof FillType;
|
|
20
|
+
id: string;
|
|
24
21
|
constructor(svc: ChartService, cdr: ChangeDetectorRef, scaleService: ScaleService, zoomService: ZoomService, element: ElementRef);
|
|
25
22
|
ngOnInit(): void;
|
|
26
23
|
ngAfterViewInit(): void;
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
mouseenter(point: BasePoint): void;
|
|
25
|
+
mouseleave(point: BasePoint): void;
|
|
29
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<BlockAreaSeriesComponent<any>, never>;
|
|
30
27
|
static ɵcmp: i0.ɵɵComponentDeclaration<BlockAreaSeriesComponent<any>, "svg:svg[teta-block-area-series]", never, {}, {}, never, never>;
|
|
31
28
|
}
|
|
@@ -5,6 +5,7 @@ import { Observable } from 'rxjs';
|
|
|
5
5
|
import { ChartService } from '../../../service/chart.service';
|
|
6
6
|
import { ScaleService } from '../../../service/scale.service';
|
|
7
7
|
import { ZoomService } from '../../../service/zoom.service';
|
|
8
|
+
import { FillType } from '../../../model/enum/fill-type';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
export declare class BlockSeriesComponent<T extends BasePoint> extends SeriesBaseComponent<T> implements OnInit, AfterViewInit {
|
|
10
11
|
protected svc: ChartService;
|
|
@@ -15,8 +16,12 @@ export declare class BlockSeriesComponent<T extends BasePoint> extends SeriesBas
|
|
|
15
16
|
x: Observable<any>;
|
|
16
17
|
y: Observable<any>;
|
|
17
18
|
displayPoints: Observable<BasePoint[]>;
|
|
19
|
+
fillType: typeof FillType;
|
|
20
|
+
id: string;
|
|
18
21
|
constructor(svc: ChartService, cdr: ChangeDetectorRef, scaleService: ScaleService, zoomService: ZoomService, element: ElementRef);
|
|
19
22
|
ngOnInit(): void;
|
|
23
|
+
mouseenter(point: BasePoint): void;
|
|
24
|
+
mouseleave(point: BasePoint): void;
|
|
20
25
|
ngAfterViewInit(): void;
|
|
21
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<BlockSeriesComponent<any>, never>;
|
|
22
27
|
static ɵcmp: i0.ɵɵComponentDeclaration<BlockSeriesComponent<any>, "svg:svg[teta-block-series]", never, {}, {}, never, never>;
|
|
@@ -21,8 +21,8 @@ export declare class ScatterSeriesComponent<T extends BasePoint> extends SeriesB
|
|
|
21
21
|
constructor(svc: ChartService, cdr: ChangeDetectorRef, scaleService: ScaleService, zoomService: ZoomService, element: ElementRef);
|
|
22
22
|
ngOnInit(): void;
|
|
23
23
|
ngAfterViewInit(): void;
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
mouseenter(point: BasePoint): void;
|
|
25
|
+
mouseleave(point: BasePoint): void;
|
|
26
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<ScatterSeriesComponent<any>, never>;
|
|
27
27
|
static ɵcmp: i0.ɵɵComponentDeclaration<ScatterSeriesComponent<any>, "svg:svg[teta-scatter-series]", never, {}, {}, never, never>;
|
|
28
28
|
}
|
|
@@ -5,6 +5,7 @@ import { ZoomService } from '../../service/zoom.service';
|
|
|
5
5
|
import { IDisplayTooltip } from '../../model/i-display-tooltip';
|
|
6
6
|
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
|
|
7
7
|
import { IChartConfig } from '../../model/i-chart-config';
|
|
8
|
+
import { Series } from '../../model/series';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
export declare class TooltipComponent implements OnInit, OnDestroy {
|
|
10
11
|
private svc;
|
|
@@ -21,7 +22,7 @@ export declare class TooltipComponent implements OnInit, OnDestroy {
|
|
|
21
22
|
right: string;
|
|
22
23
|
}>;
|
|
23
24
|
displayTooltips: Observable<SafeHtml>;
|
|
24
|
-
tooltips: IDisplayTooltip
|
|
25
|
+
tooltips: Observable<Map<Series<any>, IDisplayTooltip>>;
|
|
25
26
|
private alive;
|
|
26
27
|
display: Observable<number>;
|
|
27
28
|
constructor(svc: ChartService, cdr: ChangeDetectorRef, zoomService: ZoomService, sanitizer: DomSanitizer, _zone: NgZone);
|
package/chart/chart.module.d.ts
CHANGED
|
@@ -21,6 +21,6 @@ import * as i19 from "./chart-container/series/block-area-series/block-area-seri
|
|
|
21
21
|
import * as i20 from "@angular/common";
|
|
22
22
|
export declare class ChartModule {
|
|
23
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<ChartModule, never>;
|
|
24
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ChartModule, [typeof i1.ChartComponent, typeof i2.SeriesHostComponent, typeof i3.ChartContainerComponent, typeof i4.LegendComponent, typeof i5.SeriesBaseComponent, typeof i6.LineSeriesComponent, typeof i7.GridlinesComponent, typeof i8.XAxisComponent, typeof i9.YAxisComponent, typeof i10.PlotlineComponent, typeof i11.PlotBandComponent, typeof i12.BarSeriesComponent, typeof i13.TooltipComponent, typeof i14.ZoomableDirective, typeof i15.BrushableDirective, typeof i16.AreaSeriesComponent, typeof i17.ScatterSeriesComponent, typeof i18.BlockSeriesComponent, typeof i19.BlockAreaSeriesComponent], [typeof i20.CommonModule], [typeof i1.ChartComponent, typeof i6.LineSeriesComponent, typeof i12.BarSeriesComponent, typeof i17.ScatterSeriesComponent, typeof i16.AreaSeriesComponent, typeof i18.BlockSeriesComponent, typeof i19.BlockAreaSeriesComponent]>;
|
|
24
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ChartModule, [typeof i1.ChartComponent, typeof i2.SeriesHostComponent, typeof i3.ChartContainerComponent, typeof i4.LegendComponent, typeof i5.SeriesBaseComponent, typeof i6.LineSeriesComponent, typeof i7.GridlinesComponent, typeof i8.XAxisComponent, typeof i9.YAxisComponent, typeof i10.PlotlineComponent, typeof i11.PlotBandComponent, typeof i12.BarSeriesComponent, typeof i13.TooltipComponent, typeof i14.ZoomableDirective, typeof i15.BrushableDirective, typeof i16.AreaSeriesComponent, typeof i17.ScatterSeriesComponent, typeof i18.BlockSeriesComponent, typeof i19.BlockAreaSeriesComponent], [typeof i20.CommonModule], [typeof i1.ChartComponent, typeof i4.LegendComponent, typeof i5.SeriesBaseComponent, typeof i6.LineSeriesComponent, typeof i12.BarSeriesComponent, typeof i17.ScatterSeriesComponent, typeof i16.AreaSeriesComponent, typeof i18.BlockSeriesComponent, typeof i19.BlockAreaSeriesComponent]>;
|
|
25
25
|
static ɵinj: i0.ɵɵInjectorDeclaration<ChartModule>;
|
|
26
26
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { IChartConfig } from '../model/i-chart-config';
|
|
2
|
-
export declare const defaultChartConfig: IChartConfig;
|
|
2
|
+
export declare const defaultChartConfig: () => IChartConfig;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AfterViewInit, ElementRef, OnInit } from '@angular/core';
|
|
1
|
+
import { AfterViewInit, ElementRef, OnInit, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { IChartConfig } from '../model/i-chart-config';
|
|
3
3
|
import { BrushService } from '../service/brush.service';
|
|
4
4
|
import { ChartService } from '../service/chart.service';
|
|
@@ -13,6 +13,7 @@ export declare class BrushableDirective implements OnInit, AfterViewInit {
|
|
|
13
13
|
constructor(brushService: BrushService, chartService: ChartService, element: ElementRef);
|
|
14
14
|
ngOnInit(): void;
|
|
15
15
|
ngAfterViewInit(): void;
|
|
16
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
16
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<BrushableDirective, never>;
|
|
17
18
|
static ɵdir: i0.ɵɵDirectiveDeclaration<BrushableDirective, "svg:svg[tetaBrushable]", never, { "config": "config"; "size": "size"; "brushScale": "brushScale"; }, {}, never>;
|
|
18
19
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ElementRef } from '@angular/core';
|
|
1
|
+
import { ElementRef, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { ZoomService } from '../service/zoom.service';
|
|
3
3
|
import { IChartConfig } from '../model/i-chart-config';
|
|
4
4
|
import { Axis } from '../core/axis/axis';
|
|
@@ -14,6 +14,7 @@ export declare class ZoomableDirective {
|
|
|
14
14
|
constructor(element: ElementRef, svc: ZoomService);
|
|
15
15
|
ngOnInit(): void;
|
|
16
16
|
ngAfterViewInit(): void;
|
|
17
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
17
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<ZoomableDirective, never>;
|
|
18
19
|
static ɵdir: i0.ɵɵDirectiveDeclaration<ZoomableDirective, "[tetaZoomable]", never, { "config": "config"; "axis": "axis"; "size": "size"; "brushScale": "brushScale"; }, {}, never>;
|
|
19
20
|
}
|
|
@@ -6,9 +6,10 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
export declare class BrushService {
|
|
7
7
|
private broadcastService;
|
|
8
8
|
broadcastSubscribtion: Subscription;
|
|
9
|
+
private brush;
|
|
9
10
|
private brushMap;
|
|
10
11
|
constructor(broadcastService: BroadcastService);
|
|
11
|
-
applyBrush(svgElement: ElementRef, config: IChartConfig, brushScale: any): void;
|
|
12
|
+
applyBrush(svgElement: ElementRef, config: IChartConfig, brushScale: any, size: DOMRect): void;
|
|
12
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<BrushService, never>;
|
|
13
14
|
static ɵprov: i0.ɵɵInjectableDeclaration<BrushService>;
|
|
14
15
|
}
|
|
@@ -5,6 +5,7 @@ import { IDisplayTooltip } from '../model/i-display-tooltip';
|
|
|
5
5
|
import { PlotBand } from '../model/plot-band';
|
|
6
6
|
import { PlotLine } from '../model/plot-line';
|
|
7
7
|
import { IPointMove } from '../model/i-point-move';
|
|
8
|
+
import { BasePoint } from '../model/base-point';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
export declare class ChartService {
|
|
10
11
|
config: Observable<IChartConfig>;
|
|
@@ -14,7 +15,10 @@ export declare class ChartService {
|
|
|
14
15
|
plotBandEvent: Observable<IChartEvent<PlotBand>>;
|
|
15
16
|
plotLineMove: Observable<IChartEvent<PlotLine>>;
|
|
16
17
|
plotBandClick: Observable<IChartEvent<PlotBand>>;
|
|
18
|
+
plotBandContextMenu: Observable<IChartEvent<PlotBand>>;
|
|
17
19
|
pointMove: Observable<IChartEvent<IPointMove>>;
|
|
20
|
+
chartClick: Observable<IChartEvent<BasePoint>>;
|
|
21
|
+
chartContextMenu: Observable<IChartEvent<BasePoint>>;
|
|
18
22
|
private config$;
|
|
19
23
|
private size$;
|
|
20
24
|
private pointerMove$;
|
|
@@ -22,6 +26,8 @@ export declare class ChartService {
|
|
|
22
26
|
private plotBandEvent$;
|
|
23
27
|
private plotLineMove$;
|
|
24
28
|
private pointMove$;
|
|
29
|
+
private chartClick$;
|
|
30
|
+
private chartContextMenu$;
|
|
25
31
|
constructor();
|
|
26
32
|
setConfig(config: IChartConfig): void;
|
|
27
33
|
setSize(size: DOMRect): void;
|
|
@@ -30,6 +36,8 @@ export declare class ChartService {
|
|
|
30
36
|
emitPlotband(event: IChartEvent<PlotBand>): void;
|
|
31
37
|
emitPlotline(event: IChartEvent<PlotLine>): void;
|
|
32
38
|
emitPoint(event: IChartEvent<IPointMove>): void;
|
|
39
|
+
emitChartClick(event: IChartEvent<BasePoint>): void;
|
|
40
|
+
emitChartContextMenu(event: IChartEvent<BasePoint>): void;
|
|
33
41
|
private setDefaults;
|
|
34
42
|
private setpreparationData;
|
|
35
43
|
static ɵfac: i0.ɵɵFactoryDeclaration<ChartService, never>;
|
|
@@ -11,7 +11,14 @@ export class SeriesBaseComponent {
|
|
|
11
11
|
this.zoomService = zoomService;
|
|
12
12
|
this.element = element;
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
set series(series) {
|
|
15
|
+
this._series = series;
|
|
16
|
+
}
|
|
17
|
+
get series() {
|
|
18
|
+
return this._series;
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
}
|
|
15
22
|
}
|
|
16
23
|
SeriesBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SeriesBaseComponent, deps: [{ token: i1.ChartService }, { token: i0.ChangeDetectorRef }, { token: i2.ScaleService }, { token: i3.ZoomService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
17
24
|
SeriesBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: SeriesBaseComponent, selector: "ng-component", inputs: { config: "config", series: "series", size: "size", rect: "rect" }, ngImport: i0, template: '', isInline: true });
|
|
@@ -29,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
|
|
|
29
36
|
}], rect: [{
|
|
30
37
|
type: Input
|
|
31
38
|
}] } });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWVzLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2Jhc2Uvc2VyaWVzLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDOzs7OztBQVl2QixNQUFNLE9BQU8sbUJBQW1CO0lBa0I5QixZQUNZLEdBQWlCLEVBQ2pCLEdBQXNCLEVBQ3RCLFlBQTBCLEVBQzFCLFdBQXdCLEVBQ3hCLE9BQW1CO1FBSm5CLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFDakIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtJQUUvQixDQUFDO0lBdEJELElBQ0ksTUFBTSxDQUFDLE1BQWlCO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQWlCRCxRQUFRO0lBQ1IsQ0FBQzs7Z0hBNUJVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLGdJQUZwQixFQUFFOzJGQUVELG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtpQkFDYjtpTkFFVSxNQUFNO3NCQUFkLEtBQUs7Z0JBR0YsTUFBTTtzQkFEVCxLQUFLO2dCQVNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q2hhcnRTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHtTZXJpZXN9IGZyb20gJy4uL21vZGVsL3Nlcmllcyc7XG5pbXBvcnQge0Jhc2VQb2ludH0gZnJvbSAnLi4vbW9kZWwvYmFzZS1wb2ludCc7XG5pbXBvcnQge1NjYWxlU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7Wm9vbVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2Uvem9vbS5zZXJ2aWNlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0lDaGFydENvbmZpZ30gZnJvbSAnLi4vbW9kZWwvaS1jaGFydC1jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6ICcnLFxufSlcbmV4cG9ydCBjbGFzcyBTZXJpZXNCYXNlQ29tcG9uZW50PFQgZXh0ZW5kcyBCYXNlUG9pbnQ+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgY29uZmlnOiBJQ2hhcnRDb25maWc7XG5cbiAgQElucHV0KClcbiAgc2V0IHNlcmllcyhzZXJpZXM6IFNlcmllczxUPikge1xuICAgIHRoaXMuX3NlcmllcyA9IHNlcmllcztcbiAgfVxuXG4gIGdldCBzZXJpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlcmllcztcbiAgfVxuXG4gIEBJbnB1dCgpIHNpemU6IERPTVJlY3Q7XG4gIEBJbnB1dCgpIHJlY3Q6IGFueTtcbiAgem9vbTogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIHByb3RlY3RlZCBfc2VyaWVzOiBTZXJpZXM8VD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHN2YzogQ2hhcnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBzY2FsZVNlcnZpY2U6IFNjYWxlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgem9vbVNlcnZpY2U6IFpvb21TZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBlbGVtZW50OiBFbGVtZW50UmVmXG4gICkge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -15,9 +15,12 @@ export class ChartComponent {
|
|
|
15
15
|
this._svc = _svc;
|
|
16
16
|
this._zoomService = _zoomService;
|
|
17
17
|
this.plotBandsMove = new EventEmitter();
|
|
18
|
-
this.
|
|
18
|
+
this.plotBandClick = new EventEmitter();
|
|
19
|
+
this.plotBandContextMenu = new EventEmitter();
|
|
19
20
|
this.plotLinesMove = new EventEmitter();
|
|
20
21
|
this.pointMove = new EventEmitter();
|
|
22
|
+
this.chartClick = new EventEmitter();
|
|
23
|
+
this.chartContextMenu = new EventEmitter();
|
|
21
24
|
this._alive = true;
|
|
22
25
|
this.svcConfig = this._svc.config;
|
|
23
26
|
this.hasSeriesData = this.svcConfig.pipe(map((_) => _.series?.length > 0 && _.series?.some((_) => _.data?.length > 0)));
|
|
@@ -25,7 +28,8 @@ export class ChartComponent {
|
|
|
25
28
|
set config(config) {
|
|
26
29
|
this._svc.setConfig(config);
|
|
27
30
|
}
|
|
28
|
-
ngOnChanges(changes) {
|
|
31
|
+
ngOnChanges(changes) {
|
|
32
|
+
}
|
|
29
33
|
ngOnInit() {
|
|
30
34
|
this._svc.plotBandEvent
|
|
31
35
|
.pipe(takeWhile(() => this._alive))
|
|
@@ -38,13 +42,27 @@ export class ChartComponent {
|
|
|
38
42
|
this._svc.pointMove.pipe(takeWhile(() => this._alive)).subscribe((_) => {
|
|
39
43
|
this.pointMove.emit(_);
|
|
40
44
|
});
|
|
45
|
+
this._svc.chartClick
|
|
46
|
+
.pipe(takeWhile(() => this._alive)).subscribe((_) => {
|
|
47
|
+
this.chartClick.emit(_);
|
|
48
|
+
});
|
|
49
|
+
this._svc.chartContextMenu
|
|
50
|
+
.pipe(takeWhile(() => this._alive)).subscribe((_) => {
|
|
51
|
+
this.chartContextMenu.emit(_);
|
|
52
|
+
});
|
|
41
53
|
this._svc.plotBandClick
|
|
42
54
|
.pipe(takeWhile(() => this._alive))
|
|
43
55
|
.subscribe((_) => {
|
|
44
|
-
this.
|
|
56
|
+
this.plotBandClick.emit(_);
|
|
57
|
+
});
|
|
58
|
+
this._svc.plotBandContextMenu
|
|
59
|
+
.pipe(takeWhile(() => this._alive))
|
|
60
|
+
.subscribe((_) => {
|
|
61
|
+
this.plotBandContextMenu.emit(_);
|
|
45
62
|
});
|
|
46
63
|
}
|
|
47
|
-
ngAfterViewInit() {
|
|
64
|
+
ngAfterViewInit() {
|
|
65
|
+
}
|
|
48
66
|
ngOnDestroy() {
|
|
49
67
|
this._alive = false;
|
|
50
68
|
this._zoomService.broadcastSubscription?.forEach((sub) => {
|
|
@@ -53,19 +71,25 @@ export class ChartComponent {
|
|
|
53
71
|
}
|
|
54
72
|
}
|
|
55
73
|
ChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartComponent, deps: [{ token: i1.ChartService }, { token: i2.ZoomService }], target: i0.ɵɵFactoryTarget.Component });
|
|
56
|
-
ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ChartComponent, selector: "teta-svg-chart", inputs: { config: "config" }, outputs: { plotBandsMove: "plotBandsMove",
|
|
74
|
+
ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ChartComponent, selector: "teta-svg-chart", inputs: { config: "config" }, outputs: { plotBandsMove: "plotBandsMove", plotBandClick: "plotBandClick", plotBandContextMenu: "plotBandContextMenu", plotLinesMove: "plotLinesMove", pointMove: "pointMove", chartClick: "chartClick", chartContextMenu: "chartContextMenu" }, providers: [ChartService, ZoomService, ScaleService, BrushService], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"{\n hasSeriesData: hasSeriesData | async,\n svcConfig: svcConfig | async\n} as data\">\n <ng-container *ngIf=\"data.hasSeriesData === true else noData\">\n <div class=\"column column_auto\">\n <teta-chart-container class=\"chart-container\"></teta-chart-container>\n </div>\n <teta-legend *ngIf=\"data.svcConfig.legend?.enable === true\" [series]=\"data.svcConfig.series\"></teta-legend>\n </ng-container>\n</ng-container>\n<ng-template #noData>\n <div class=\"column column_auto align-center justify-content-center\">\n <span class=\"font-body-3 color-text-40\">\u0414\u0430\u043D\u043D\u044B\u0435 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442</span>\n </div>\n</ng-template>\n", styles: [":host{position:relative;display:flex;flex-direction:column;height:100%;width:100%}\n"], components: [{ type: i3.ChartContainerComponent, selector: "teta-chart-container" }, { type: i4.LegendComponent, selector: "teta-legend", inputs: ["series"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
57
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartComponent, decorators: [{
|
|
58
76
|
type: Component,
|
|
59
77
|
args: [{ selector: 'teta-svg-chart', providers: [ChartService, ZoomService, ScaleService, BrushService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"{\n hasSeriesData: hasSeriesData | async,\n svcConfig: svcConfig | async\n} as data\">\n <ng-container *ngIf=\"data.hasSeriesData === true else noData\">\n <div class=\"column column_auto\">\n <teta-chart-container class=\"chart-container\"></teta-chart-container>\n </div>\n <teta-legend *ngIf=\"data.svcConfig.legend?.enable === true\" [series]=\"data.svcConfig.series\"></teta-legend>\n </ng-container>\n</ng-container>\n<ng-template #noData>\n <div class=\"column column_auto align-center justify-content-center\">\n <span class=\"font-body-3 color-text-40\">\u0414\u0430\u043D\u043D\u044B\u0435 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442</span>\n </div>\n</ng-template>\n", styles: [":host{position:relative;display:flex;flex-direction:column;height:100%;width:100%}\n"] }]
|
|
60
78
|
}], ctorParameters: function () { return [{ type: i1.ChartService }, { type: i2.ZoomService }]; }, propDecorators: { plotBandsMove: [{
|
|
61
79
|
type: Output
|
|
62
|
-
}],
|
|
80
|
+
}], plotBandClick: [{
|
|
81
|
+
type: Output
|
|
82
|
+
}], plotBandContextMenu: [{
|
|
63
83
|
type: Output
|
|
64
84
|
}], plotLinesMove: [{
|
|
65
85
|
type: Output
|
|
66
86
|
}], pointMove: [{
|
|
67
87
|
type: Output
|
|
88
|
+
}], chartClick: [{
|
|
89
|
+
type: Output
|
|
90
|
+
}], chartContextMenu: [{
|
|
91
|
+
type: Output
|
|
68
92
|
}], config: [{
|
|
69
93
|
type: Input
|
|
70
94
|
}] } });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9jaGFydC9jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFLeEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQU8sTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFTdkQsTUFBTSxPQUFPLGNBQWM7SUE4QnpCLFlBQW9CLElBQWtCLEVBQVUsWUFBeUI7UUFBckQsU0FBSSxHQUFKLElBQUksQ0FBYztRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBekJ6RSxrQkFBYSxHQUF3QyxJQUFJLFlBQVksRUFFbEUsQ0FBQztRQUdKLG1CQUFjLEdBQXdDLElBQUksWUFBWSxFQUVuRSxDQUFDO1FBR0osa0JBQWEsR0FBd0MsSUFBSSxZQUFZLEVBRWxFLENBQUM7UUFHSixjQUFTLEdBQTBDLElBQUksWUFBWSxFQUVoRSxDQUFDO1FBTUksV0FBTSxHQUFHLElBQUksQ0FBQztRQUdwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ3RDLEdBQUcsQ0FDRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FDekUsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQWJELElBQWEsTUFBTSxDQUFDLE1BQW9CO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFhRCxXQUFXLENBQUMsT0FBc0IsSUFBRyxDQUFDO0lBRXRDLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7YUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDbEMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDZixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDeEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3JFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhO2FBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ2xDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZUFBZSxLQUFJLENBQUM7SUFFcEIsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLEVBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDdkQsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MkdBdEVVLGNBQWM7K0ZBQWQsY0FBYyw4TUFIZCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQywrQ0M1QnBFLDJ1QkFnQkE7MkZEZWEsY0FBYztrQkFQMUIsU0FBUzsrQkFDRSxnQkFBZ0IsYUFHZixDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQyxtQkFDakQsdUJBQXVCLENBQUMsTUFBTTs2SEFPL0MsYUFBYTtzQkFEWixNQUFNO2dCQU1QLGNBQWM7c0JBRGIsTUFBTTtnQkFNUCxhQUFhO3NCQURaLE1BQU07Z0JBTVAsU0FBUztzQkFEUixNQUFNO2dCQUtNLE1BQU07c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7IElDaGFydENvbmZpZyB9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7IEJhc2VQb2ludCB9IGZyb20gJy4uL21vZGVsL2Jhc2UtcG9pbnQnO1xuaW1wb3J0IHsgU2VyaWVzIH0gZnJvbSAnLi4vbW9kZWwvc2VyaWVzJztcbmltcG9ydCB7IFpvb21TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NhbGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7IEJydXNoU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvYnJ1c2guc2VydmljZSc7XG5pbXBvcnQgeyBJQ2hhcnRFdmVudCB9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtZXZlbnQnO1xuaW1wb3J0IHsgUGxvdExpbmUgfSBmcm9tICcuLi9tb2RlbC9wbG90LWxpbmUnO1xuaW1wb3J0IHsgUGxvdEJhbmQgfSBmcm9tICcuLi9tb2RlbC9wbG90LWJhbmQnO1xuaW1wb3J0IHsgSVBvaW50TW92ZSB9IGZyb20gJy4uL21vZGVsL2ktcG9pbnQtbW92ZSc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIHRha2VXaGlsZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtc3ZnLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hhcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbQ2hhcnRTZXJ2aWNlLCBab29tU2VydmljZSwgU2NhbGVTZXJ2aWNlLCBCcnVzaFNlcnZpY2VdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgbGVnZW5kU2VyaWVzOiBBcnJheTxTZXJpZXM8QmFzZVBvaW50Pj47XG4gIGhhc1Nlcmllc0RhdGE6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHN2Y0NvbmZpZzogT2JzZXJ2YWJsZTxJQ2hhcnRDb25maWc+O1xuICBAT3V0cHV0KClcbiAgcGxvdEJhbmRzTW92ZTogRXZlbnRFbWl0dGVyPElDaGFydEV2ZW50PFBsb3RCYW5kPj4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIElDaGFydEV2ZW50PFBsb3RCYW5kPlxuICA+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHBsb3RCYW5kc0NsaWNrOiBFdmVudEVtaXR0ZXI8SUNoYXJ0RXZlbnQ8UGxvdEJhbmQ+PiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgSUNoYXJ0RXZlbnQ8UGxvdEJhbmQ+XG4gID4oKTtcblxuICBAT3V0cHV0KClcbiAgcGxvdExpbmVzTW92ZTogRXZlbnRFbWl0dGVyPElDaGFydEV2ZW50PFBsb3RMaW5lPj4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIElDaGFydEV2ZW50PFBsb3RMaW5lPlxuICA+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHBvaW50TW92ZTogRXZlbnRFbWl0dGVyPElDaGFydEV2ZW50PElQb2ludE1vdmU+PiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgSUNoYXJ0RXZlbnQ8SVBvaW50TW92ZT5cbiAgPigpO1xuXG4gIEBJbnB1dCgpIHNldCBjb25maWcoY29uZmlnOiBJQ2hhcnRDb25maWcpIHtcbiAgICB0aGlzLl9zdmMuc2V0Q29uZmlnKGNvbmZpZyk7XG4gIH1cblxuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc3ZjOiBDaGFydFNlcnZpY2UsIHByaXZhdGUgX3pvb21TZXJ2aWNlOiBab29tU2VydmljZSkge1xuICAgIHRoaXMuc3ZjQ29uZmlnID0gdGhpcy5fc3ZjLmNvbmZpZztcbiAgICB0aGlzLmhhc1Nlcmllc0RhdGEgPSB0aGlzLnN2Y0NvbmZpZy5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICAoXykgPT4gXy5zZXJpZXM/Lmxlbmd0aCA+IDAgJiYgXy5zZXJpZXM/LnNvbWUoKF8pID0+IF8uZGF0YT8ubGVuZ3RoID4gMClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdmMucGxvdEJhbmRFdmVudFxuICAgICAgLnBpcGUodGFrZVdoaWxlKCgpID0+IHRoaXMuX2FsaXZlKSlcbiAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgdGhpcy5wbG90QmFuZHNNb3ZlLmVtaXQoXyk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuX3N2Yy5wbG90TGluZU1vdmUucGlwZSh0YWtlV2hpbGUoKCkgPT4gdGhpcy5fYWxpdmUpKS5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgIHRoaXMucGxvdExpbmVzTW92ZS5lbWl0KF8pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fc3ZjLnBvaW50TW92ZS5waXBlKHRha2VXaGlsZSgoKSA9PiB0aGlzLl9hbGl2ZSkpLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgdGhpcy5wb2ludE1vdmUuZW1pdChfKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3N2Yy5wbG90QmFuZENsaWNrXG4gICAgICAucGlwZSh0YWtlV2hpbGUoKCkgPT4gdGhpcy5fYWxpdmUpKVxuICAgICAgLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICB0aGlzLnBsb3RCYW5kc0NsaWNrLmVtaXQoXyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHt9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fYWxpdmUgPSBmYWxzZTtcbiAgICB0aGlzLl96b29tU2VydmljZS5icm9hZGNhc3RTdWJzY3JpcHRpb24/LmZvckVhY2goKHN1YikgPT4ge1xuICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ7XG4gIGhhc1Nlcmllc0RhdGE6IGhhc1Nlcmllc0RhdGEgfCBhc3luYyxcbiAgc3ZjQ29uZmlnOiBzdmNDb25maWcgfCBhc3luY1xufSBhcyBkYXRhXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhLmhhc1Nlcmllc0RhdGEgPT09IHRydWUgZWxzZSBub0RhdGFcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGNvbHVtbl9hdXRvXCI+XG4gICAgICA8dGV0YS1jaGFydC1jb250YWluZXIgY2xhc3M9XCJjaGFydC1jb250YWluZXJcIj48L3RldGEtY2hhcnQtY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDx0ZXRhLWxlZ2VuZCAqbmdJZj1cImRhdGEuc3ZjQ29uZmlnLmxlZ2VuZD8uZW5hYmxlID09PSB0cnVlXCIgW3Nlcmllc109XCJkYXRhLnN2Y0NvbmZpZy5zZXJpZXNcIj48L3RldGEtbGVnZW5kPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNub0RhdGE+XG4gIDxkaXYgY2xhc3M9XCJjb2x1bW4gY29sdW1uX2F1dG8gYWxpZ24tY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9keS0zIGNvbG9yLXRleHQtNDBcIj7QlNCw0L3QvdGL0LUg0L7RgtGB0YPRgtGB0YLQstGD0Y7Rgjwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9jaGFydC9jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFJdEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFLdEQsT0FBTyxFQUFDLEdBQUcsRUFBYyxTQUFTLEVBQU0sTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFTckQsTUFBTSxPQUFPLGNBQWM7SUFnQ3pCLFlBQW9CLElBQWtCLEVBQVUsWUFBeUI7UUFBckQsU0FBSSxHQUFKLElBQUksQ0FBYztRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBM0J6RSxrQkFBYSxHQUF3QyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQUcvRixrQkFBYSxHQUF3QyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQUcvRix3QkFBbUIsR0FBd0MsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFJckcsa0JBQWEsR0FBd0MsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFHL0YsY0FBUyxHQUEwQyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUcvRixlQUFVLEdBQXlDLElBQUksWUFBWSxFQUEwQixDQUFDO1FBRzlGLHFCQUFnQixHQUF5QyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQU01RixXQUFNLEdBQUcsSUFB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RTtZQUNmLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZUFBZTtJQUNmLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN2RCxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzsyR0FoR1UsY0FBYzsrRkFBZCxjQUFjLHdUQUhkLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLCtDQzVCcEUsMnVCQWdCQTsyRkRlYSxjQUFjO2tCQVAxQixTQUFTOytCQUNFLGdCQUFnQixhQUdmLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLG1CQUNqRCx1QkFBdUIsQ0FBQyxNQUFNOzZIQU8vQyxhQUFhO3NCQURaLE1BQU07Z0JBSVAsYUFBYTtzQkFEWixNQUFNO2dCQUlQLG1CQUFtQjtzQkFEbEIsTUFBTTtnQkFLUCxhQUFhO3NCQURaLE1BQU07Z0JBSVAsU0FBUztzQkFEUixNQUFNO2dCQUlQLFVBQVU7c0JBRFQsTUFBTTtnQkFJUCxnQkFBZ0I7c0JBRGYsTUFBTTtnQkFHTSxNQUFNO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q2hhcnRTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHtJQ2hhcnRDb25maWd9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7QmFzZVBvaW50fSBmcm9tICcuLi9tb2RlbC9iYXNlLXBvaW50JztcbmltcG9ydCB7U2VyaWVzfSBmcm9tICcuLi9tb2RlbC9zZXJpZXMnO1xuaW1wb3J0IHtab29tU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHtTY2FsZVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2Uvc2NhbGUuc2VydmljZSc7XG5pbXBvcnQge0JydXNoU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS9icnVzaC5zZXJ2aWNlJztcbmltcG9ydCB7SUNoYXJ0RXZlbnR9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtZXZlbnQnO1xuaW1wb3J0IHtQbG90TGluZX0gZnJvbSAnLi4vbW9kZWwvcGxvdC1saW5lJztcbmltcG9ydCB7UGxvdEJhbmR9IGZyb20gJy4uL21vZGVsL3Bsb3QtYmFuZCc7XG5pbXBvcnQge0lQb2ludE1vdmV9IGZyb20gJy4uL21vZGVsL2ktcG9pbnQtbW92ZSc7XG5pbXBvcnQge21hcCwgT2JzZXJ2YWJsZSwgdGFrZVdoaWxlLCB0YXB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLXN2Zy1jaGFydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoYXJ0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0NoYXJ0U2VydmljZSwgWm9vbVNlcnZpY2UsIFNjYWxlU2VydmljZSwgQnJ1c2hTZXJ2aWNlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIGxlZ2VuZFNlcmllczogQXJyYXk8U2VyaWVzPEJhc2VQb2ludD4+O1xuICBoYXNTZXJpZXNEYXRhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBzdmNDb25maWc6IE9ic2VydmFibGU8SUNoYXJ0Q29uZmlnPjtcbiAgQE91dHB1dCgpXG4gIHBsb3RCYW5kc01vdmU6IEV2ZW50RW1pdHRlcjxJQ2hhcnRFdmVudDxQbG90QmFuZD4+ID0gbmV3IEV2ZW50RW1pdHRlcjxJQ2hhcnRFdmVudDxQbG90QmFuZD4+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHBsb3RCYW5kQ2xpY2s6IEV2ZW50RW1pdHRlcjxJQ2hhcnRFdmVudDxQbG90QmFuZD4+ID0gbmV3IEV2ZW50RW1pdHRlcjxJQ2hhcnRFdmVudDxQbG90QmFuZD4+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHBsb3RCYW5kQ29udGV4dE1lbnU6IEV2ZW50RW1pdHRlcjxJQ2hhcnRFdmVudDxQbG90QmFuZD4+ID0gbmV3IEV2ZW50RW1pdHRlcjxJQ2hhcnRFdmVudDxQbG90QmFuZD4+KCk7XG5cblxuICBAT3V0cHV0KClcbiAgcGxvdExpbmVzTW92ZTogRXZlbnRFbWl0dGVyPElDaGFydEV2ZW50PFBsb3RMaW5lPj4gPSBuZXcgRXZlbnRFbWl0dGVyPElDaGFydEV2ZW50PFBsb3RMaW5lPj4oKTtcblxuICBAT3V0cHV0KClcbiAgcG9pbnRNb3ZlOiBFdmVudEVtaXR0ZXI8SUNoYXJ0RXZlbnQ8SVBvaW50TW92ZT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxJQ2hhcnRFdmVudDxJUG9pbnRNb3ZlPj4oKTtcblxuICBAT3V0cHV0KClcbiAgY2hhcnRDbGljazogRXZlbnRFbWl0dGVyPElDaGFydEV2ZW50PEJhc2VQb2ludD4+ID0gbmV3IEV2ZW50RW1pdHRlcjxJQ2hhcnRFdmVudDxCYXNlUG9pbnQ+PigpO1xuXG4gIEBPdXRwdXQoKVxuICBjaGFydENvbnRleHRNZW51OiBFdmVudEVtaXR0ZXI8SUNoYXJ0RXZlbnQ8QmFzZVBvaW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPElDaGFydEV2ZW50PEJhc2VQb2ludD4+KCk7XG5cbiAgQElucHV0KCkgc2V0IGNvbmZpZyhjb25maWc6IElDaGFydENvbmZpZykge1xuICAgIHRoaXMuX3N2Yy5zZXRDb25maWcoY29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgX2FsaXZlID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zdmM6IENoYXJ0U2VydmljZSwgcHJpdmF0ZSBfem9vbVNlcnZpY2U6IFpvb21TZXJ2aWNlKSB7XG4gICAgdGhpcy5zdmNDb25maWcgPSB0aGlzLl9zdmMuY29uZmlnO1xuICAgIHRoaXMuaGFzU2VyaWVzRGF0YSA9IHRoaXMuc3ZjQ29uZmlnLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChfKSA9PiBfLnNlcmllcz8ubGVuZ3RoID4gMCAmJiBfLnNlcmllcz8uc29tZSgoXykgPT4gXy5kYXRhPy5sZW5ndGggPiAwKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdmMucGxvdEJhbmRFdmVudFxuICAgICAgLnBpcGUodGFrZVdoaWxlKCgpID0+IHRoaXMuX2FsaXZlKSlcbiAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgdGhpcy5wbG90QmFuZHNNb3ZlLmVtaXQoXyk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuX3N2Yy5wbG90TGluZU1vdmUucGlwZSh0YWtlV2hpbGUoKCkgPT4gdGhpcy5fYWxpdmUpKS5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgIHRoaXMucGxvdExpbmVzTW92ZS5lbWl0KF8pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fc3ZjLnBvaW50TW92ZS5waXBlKHRha2VXaGlsZSgoKSA9PiB0aGlzLl9hbGl2ZSkpLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgdGhpcy5wb2ludE1vdmUuZW1pdChfKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3N2Yy5jaGFydENsaWNrXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVdoaWxlKCgpID0+IHRoaXMuX2FsaXZlKVxuICAgICAgKS5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgIHRoaXMuY2hhcnRDbGljay5lbWl0KF8pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fc3ZjLmNoYXJ0Q29udGV4dE1lbnVcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlV2hpbGUoKCkgPT4gdGhpcy5fYWxpdmUpXG4gICAgICApLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgdGhpcy5jaGFydENvbnRleHRNZW51LmVtaXQoXyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9zdmMucGxvdEJhbmRDbGlja1xuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VXaGlsZSgoKSA9PiB0aGlzLl9hbGl2ZSkpXG4gICAgICAuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICAgIHRoaXMucGxvdEJhbmRDbGljay5lbWl0KF8pO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLl9zdmMucGxvdEJhbmRDb250ZXh0TWVudVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VXaGlsZSgoKSA9PiB0aGlzLl9hbGl2ZSkpXG4gICAgICAuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICAgIHRoaXMucGxvdEJhbmRDb250ZXh0TWVudS5lbWl0KF8pO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuX3pvb21TZXJ2aWNlLmJyb2FkY2FzdFN1YnNjcmlwdGlvbj8uZm9yRWFjaCgoc3ViKSA9PiB7XG4gICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIntcbiAgaGFzU2VyaWVzRGF0YTogaGFzU2VyaWVzRGF0YSB8IGFzeW5jLFxuICBzdmNDb25maWc6IHN2Y0NvbmZpZyB8IGFzeW5jXG59IGFzIGRhdGFcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEuaGFzU2VyaWVzRGF0YSA9PT0gdHJ1ZSBlbHNlIG5vRGF0YVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4gY29sdW1uX2F1dG9cIj5cbiAgICAgIDx0ZXRhLWNoYXJ0LWNvbnRhaW5lciBjbGFzcz1cImNoYXJ0LWNvbnRhaW5lclwiPjwvdGV0YS1jaGFydC1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPHRldGEtbGVnZW5kICpuZ0lmPVwiZGF0YS5zdmNDb25maWcubGVnZW5kPy5lbmFibGUgPT09IHRydWVcIiBbc2VyaWVzXT1cImRhdGEuc3ZjQ29uZmlnLnNlcmllc1wiPjwvdGV0YS1sZWdlbmQ+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI25vRGF0YT5cbiAgPGRpdiBjbGFzcz1cImNvbHVtbiBjb2x1bW5fYXV0byBhbGlnbi1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2R5LTMgY29sb3ItdGV4dC00MFwiPtCU0LDQvdC90YvQtSDQvtGC0YHRg9GC0YHRgtCy0YPRjtGCPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|