@tetacom/ng-components 1.0.27 → 1.0.28
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/component/filter/filter.module.d.ts +2 -1
- package/component/public-api.d.ts +0 -1
- package/directive/hint/hint.directive.d.ts +1 -0
- package/esm2020/component/filter/filter.module.mjs +6 -2
- package/esm2020/component/filter/numeric-filter/numeric-filter.component.mjs +4 -3
- package/esm2020/component/message/message.service.mjs +3 -3
- package/esm2020/component/public-api.mjs +1 -3
- package/esm2020/directive/click-outside/click-outside.directive.mjs +1 -3
- package/esm2020/directive/hint/hint.directive.mjs +4 -1
- package/esm2020/directive/only-number/only-number.directive.mjs +3 -2
- package/esm2020/pipe/public-api.mjs +2 -1
- package/esm2020/util/date-util.mjs +8 -5
- package/fesm2015/tetacom-ng-components.mjs +45 -2309
- package/fesm2015/tetacom-ng-components.mjs.map +1 -1
- package/fesm2020/tetacom-ng-components.mjs +45 -2303
- package/fesm2020/tetacom-ng-components.mjs.map +1 -1
- package/package.json +1 -1
- package/pipe/public-api.d.ts +1 -0
- package/component/chart/chart/chart.component.d.ts +0 -39
- package/component/chart/chart.module.d.ts +0 -8
- package/component/chart/core/axis-creator.d.ts +0 -29
- package/component/chart/core/chart.d.ts +0 -70
- package/component/chart/core/public-api.d.ts +0 -2
- package/component/chart/drawer/area-drawer.d.ts +0 -7
- package/component/chart/drawer/bar-drawer.d.ts +0 -8
- package/component/chart/drawer/contour-drawer.d.ts +0 -7
- package/component/chart/drawer/default-drawer-mapping.d.ts +0 -4
- package/component/chart/drawer/line-drawer.d.ts +0 -11
- package/component/chart/drawer/pie-drawer.d.ts +0 -7
- package/component/chart/drawer/public-api.d.ts +0 -6
- package/component/chart/drawer/scatter-drawer.d.ts +0 -15
- package/component/chart/drawer/spline-drawer.d.ts +0 -7
- package/component/chart/legend-drawer/default-drawer-legend-mapping.d.ts +0 -3
- package/component/chart/legend-drawer/gradient-drawer.d.ts +0 -5
- package/component/chart/legend-drawer/swatch-drawer.d.ts +0 -6
- package/component/chart/model/annotation.d.ts +0 -59
- package/component/chart/model/axis-options.d.ts +0 -43
- package/component/chart/model/chart-bounds.d.ts +0 -12
- package/component/chart/model/chart-options.d.ts +0 -51
- package/component/chart/model/enum/axis-type.d.ts +0 -4
- package/component/chart/model/enum/dispatch-type.d.ts +0 -4
- package/component/chart/model/enum/drag-point-type.d.ts +0 -5
- package/component/chart/model/enum/legend-type.d.ts +0 -4
- package/component/chart/model/enum/public-api.d.ts +0 -7
- package/component/chart/model/enum/scale-type.d.ts +0 -7
- package/component/chart/model/enum/scale.d.ts +0 -5
- package/component/chart/model/enum/series-type.d.ts +0 -10
- package/component/chart/model/enum/zoom-type.d.ts +0 -5
- package/component/chart/model/i-drag-event.d.ts +0 -5
- package/component/chart/model/i-drawer-legend.d.ts +0 -12
- package/component/chart/model/i-drawer.d.ts +0 -9
- package/component/chart/model/i-zoom-event.d.ts +0 -8
- package/component/chart/model/plot-band.d.ts +0 -28
- package/component/chart/model/plot-line.d.ts +0 -20
- package/component/chart/model/point/bar-point.d.ts +0 -6
- package/component/chart/model/point/base-point.d.ts +0 -9
- package/component/chart/model/point/contour-point.d.ts +0 -4
- package/component/chart/model/point/marker-options.d.ts +0 -11
- package/component/chart/model/point/public-api.d.ts +0 -3
- package/component/chart/model/point/scatter-point.d.ts +0 -5
- package/component/chart/model/public-api.d.ts +0 -15
- package/component/chart/model/series.d.ts +0 -62
- package/component/chart/model/tooltip-options.d.ts +0 -14
- package/component/chart/public-api.d.ts +0 -5
- package/esm2020/component/chart/chart/chart.component.mjs +0 -164
- package/esm2020/component/chart/chart.module.mjs +0 -18
- package/esm2020/component/chart/core/axis-creator.mjs +0 -82
- package/esm2020/component/chart/core/chart.mjs +0 -1339
- package/esm2020/component/chart/core/public-api.mjs +0 -3
- package/esm2020/component/chart/drawer/area-drawer.mjs +0 -20
- package/esm2020/component/chart/drawer/bar-drawer.mjs +0 -23
- package/esm2020/component/chart/drawer/contour-drawer.mjs +0 -29
- package/esm2020/component/chart/drawer/default-drawer-mapping.mjs +0 -17
- package/esm2020/component/chart/drawer/line-drawer.mjs +0 -152
- package/esm2020/component/chart/drawer/pie-drawer.mjs +0 -4
- package/esm2020/component/chart/drawer/public-api.mjs +0 -7
- package/esm2020/component/chart/drawer/scatter-drawer.mjs +0 -93
- package/esm2020/component/chart/drawer/spline-drawer.mjs +0 -23
- package/esm2020/component/chart/legend-drawer/default-drawer-legend-mapping.mjs +0 -7
- package/esm2020/component/chart/legend-drawer/gradient-drawer.mjs +0 -45
- package/esm2020/component/chart/legend-drawer/swatch-drawer.mjs +0 -62
- package/esm2020/component/chart/model/annotation.mjs +0 -30
- package/esm2020/component/chart/model/axis-options.mjs +0 -26
- package/esm2020/component/chart/model/chart-bounds.mjs +0 -13
- package/esm2020/component/chart/model/chart-options.mjs +0 -37
- package/esm2020/component/chart/model/enum/axis-type.mjs +0 -6
- package/esm2020/component/chart/model/enum/dispatch-type.mjs +0 -6
- package/esm2020/component/chart/model/enum/drag-point-type.mjs +0 -7
- package/esm2020/component/chart/model/enum/legend-type.mjs +0 -6
- package/esm2020/component/chart/model/enum/public-api.mjs +0 -8
- package/esm2020/component/chart/model/enum/scale-type.mjs +0 -9
- package/esm2020/component/chart/model/enum/scale.mjs +0 -7
- package/esm2020/component/chart/model/enum/series-type.mjs +0 -12
- package/esm2020/component/chart/model/enum/zoom-type.mjs +0 -7
- package/esm2020/component/chart/model/i-drag-event.mjs +0 -2
- package/esm2020/component/chart/model/i-drawer-legend.mjs +0 -2
- package/esm2020/component/chart/model/i-drawer.mjs +0 -2
- package/esm2020/component/chart/model/i-zoom-event.mjs +0 -2
- package/esm2020/component/chart/model/plot-band.mjs +0 -18
- package/esm2020/component/chart/model/plot-line.mjs +0 -13
- package/esm2020/component/chart/model/point/bar-point.mjs +0 -2
- package/esm2020/component/chart/model/point/base-point.mjs +0 -2
- package/esm2020/component/chart/model/point/contour-point.mjs +0 -2
- package/esm2020/component/chart/model/point/marker-options.mjs +0 -2
- package/esm2020/component/chart/model/point/public-api.mjs +0 -4
- package/esm2020/component/chart/model/point/scatter-point.mjs +0 -2
- package/esm2020/component/chart/model/public-api.mjs +0 -16
- package/esm2020/component/chart/model/series.mjs +0 -27
- package/esm2020/component/chart/model/tooltip-options.mjs +0 -19
- package/esm2020/component/chart/public-api.mjs +0 -6
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export * from './enum/public-api';
|
|
2
|
-
export * from './point/public-api';
|
|
3
|
-
export * from './axis-options';
|
|
4
|
-
export * from './point/base-point';
|
|
5
|
-
export * from './chart-options';
|
|
6
|
-
export * from './i-drawer';
|
|
7
|
-
export * from './i-drawer-legend';
|
|
8
|
-
export * from './series';
|
|
9
|
-
export * from './tooltip-options';
|
|
10
|
-
export * from './annotation';
|
|
11
|
-
export * from './chart-bounds';
|
|
12
|
-
export * from './plot-line';
|
|
13
|
-
export * from './plot-band';
|
|
14
|
-
export * from './i-drag-event';
|
|
15
|
-
export * from './i-zoom-event';
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { BasePoint } from './point/base-point';
|
|
2
|
-
import { SeriesType } from './enum/series-type';
|
|
3
|
-
import { IDrawer } from './i-drawer';
|
|
4
|
-
import * as d3 from 'd3';
|
|
5
|
-
export declare class Series<T extends BasePoint> {
|
|
6
|
-
id?: number;
|
|
7
|
-
renderTo?: 'canvas' | 'svg';
|
|
8
|
-
type: SeriesType;
|
|
9
|
-
curveType?: d3.CurveFactoryLineOnly | d3.CurveFactory;
|
|
10
|
-
data: T[];
|
|
11
|
-
axisFormat?: () => void;
|
|
12
|
-
name?: string;
|
|
13
|
-
xAxisIndex?: number;
|
|
14
|
-
yAxisIndex?: number;
|
|
15
|
-
drawer?: IDrawer<T>;
|
|
16
|
-
strokeWidth?: number;
|
|
17
|
-
strokeDasharray?: string;
|
|
18
|
-
visible?: boolean;
|
|
19
|
-
color?: string;
|
|
20
|
-
colorScale?: d3.ScaleSequential<any, any>;
|
|
21
|
-
drag?: {
|
|
22
|
-
enable?: boolean;
|
|
23
|
-
extendLine?: boolean;
|
|
24
|
-
grabbers?: {
|
|
25
|
-
radius?: number;
|
|
26
|
-
stroke?: string;
|
|
27
|
-
fill?: string;
|
|
28
|
-
strokeWidth?: string;
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
extend?: boolean;
|
|
32
|
-
showInLegend?: boolean;
|
|
33
|
-
constructor(options?: {
|
|
34
|
-
id?: number;
|
|
35
|
-
renderTo?: 'canvas' | 'svg';
|
|
36
|
-
type?: SeriesType;
|
|
37
|
-
curveType?: d3.CurveFactoryLineOnly | d3.CurveFactory;
|
|
38
|
-
data?: T[];
|
|
39
|
-
axisFormat?: () => void;
|
|
40
|
-
name?: string;
|
|
41
|
-
xAxisIndex?: number;
|
|
42
|
-
yAxisIndex?: number;
|
|
43
|
-
drawer?: IDrawer<T>;
|
|
44
|
-
strokeWidth?: number;
|
|
45
|
-
strokeDasharray?: string;
|
|
46
|
-
visible?: boolean;
|
|
47
|
-
color?: string;
|
|
48
|
-
colorScale?: d3.ScaleSequential<any, any>;
|
|
49
|
-
drag?: {
|
|
50
|
-
enable?: boolean;
|
|
51
|
-
extendLine?: boolean;
|
|
52
|
-
grabbers?: {
|
|
53
|
-
radius?: number;
|
|
54
|
-
stroke?: string;
|
|
55
|
-
fill?: string;
|
|
56
|
-
strokeWidth?: string;
|
|
57
|
-
};
|
|
58
|
-
};
|
|
59
|
-
extend?: boolean;
|
|
60
|
-
showInLegend?: boolean;
|
|
61
|
-
});
|
|
62
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export declare class TooltipOptions {
|
|
2
|
-
enable?: boolean;
|
|
3
|
-
showMarkers?: boolean;
|
|
4
|
-
showLine?: boolean;
|
|
5
|
-
tracking?: 'x' | 'y' | 'both';
|
|
6
|
-
format?: (data: any) => any;
|
|
7
|
-
constructor(options?: {
|
|
8
|
-
enable?: boolean;
|
|
9
|
-
showMarkers?: boolean;
|
|
10
|
-
showLine?: boolean;
|
|
11
|
-
tracking?: 'x' | 'y' | 'both';
|
|
12
|
-
format?: (data: any) => any;
|
|
13
|
-
});
|
|
14
|
-
}
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output, ViewChild, } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import { map, takeWhile, throttleTime } from 'rxjs/operators';
|
|
4
|
-
import { TetaChart } from '../core/chart';
|
|
5
|
-
import { SeriesType } from '../model/enum/series-type';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/common";
|
|
8
|
-
export class ChartComponent {
|
|
9
|
-
constructor(_zone) {
|
|
10
|
-
this._zone = _zone;
|
|
11
|
-
this.plotLinesMove = new EventEmitter();
|
|
12
|
-
this.plotBandsMove = new EventEmitter();
|
|
13
|
-
this.seriesMove = new EventEmitter();
|
|
14
|
-
this.pointMove = new EventEmitter();
|
|
15
|
-
this.zoomChange = new EventEmitter();
|
|
16
|
-
this._alive = true;
|
|
17
|
-
this.size$ = new Subject();
|
|
18
|
-
}
|
|
19
|
-
click(event) {
|
|
20
|
-
const composedPath = event.composedPath();
|
|
21
|
-
const triggerToken = 'legend';
|
|
22
|
-
const isLegend = composedPath.some((_) => _.classList?.contains(triggerToken));
|
|
23
|
-
if (isLegend) {
|
|
24
|
-
const clickedElement = event.target?.__data__;
|
|
25
|
-
if (!clickedElement) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
const serieIndex = this._config?.series?.indexOf(clickedElement);
|
|
29
|
-
if (clickedElement.serieType === SeriesType.bar) {
|
|
30
|
-
const foundSerie = this._config.series[clickedElement.serieIndex];
|
|
31
|
-
this._config.series[foundSerie.id].data = this._config.series[foundSerie.id].data.map((_) => {
|
|
32
|
-
if (clickedElement.id === _.id) {
|
|
33
|
-
return {
|
|
34
|
-
..._,
|
|
35
|
-
visible: !_.visible,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
return _;
|
|
39
|
-
});
|
|
40
|
-
this.redraw(this._config);
|
|
41
|
-
}
|
|
42
|
-
if (serieIndex !== -1) {
|
|
43
|
-
const foundSerie = this._config.series[serieIndex];
|
|
44
|
-
const yAxisIndex = foundSerie?.yAxisIndex;
|
|
45
|
-
this._config.series[serieIndex].visible = !foundSerie.visible;
|
|
46
|
-
const attachedYAxes = this._config.series
|
|
47
|
-
?.filter((_) => _.visible)
|
|
48
|
-
.map((_) => _.yAxisIndex);
|
|
49
|
-
const shouldVisibleYAxis = attachedYAxes?.includes(yAxisIndex);
|
|
50
|
-
this._config.yAxis[yAxisIndex].visible = shouldVisibleYAxis;
|
|
51
|
-
this.redraw(this._config);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
ngOnChanges(changes) {
|
|
56
|
-
if (this.config && changes.hasOwnProperty('config')) {
|
|
57
|
-
this.setConfig(this.config);
|
|
58
|
-
if (this.zoom) {
|
|
59
|
-
this._chart?.setZoom(this.zoom);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
if (this.zoom && changes.hasOwnProperty('zoom')) {
|
|
63
|
-
this._chart?.setZoom(this.zoom);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
ngOnInit() { }
|
|
67
|
-
ngAfterViewInit() {
|
|
68
|
-
this._observer = new ResizeObserver((entries) => {
|
|
69
|
-
const { contentRect } = entries[0];
|
|
70
|
-
this.size$.next(contentRect);
|
|
71
|
-
});
|
|
72
|
-
this._observer.observe(this.chart.nativeElement);
|
|
73
|
-
this.size$
|
|
74
|
-
.pipe(throttleTime(100, undefined, { trailing: true }))
|
|
75
|
-
.pipe(takeWhile((_) => this._alive), map((_) => {
|
|
76
|
-
this.resize(_);
|
|
77
|
-
this.redraw(this._config);
|
|
78
|
-
}))
|
|
79
|
-
.subscribe();
|
|
80
|
-
}
|
|
81
|
-
get showLegend() {
|
|
82
|
-
return this._config?.legend?.visible;
|
|
83
|
-
}
|
|
84
|
-
ngOnDestroy() {
|
|
85
|
-
this._alive = false;
|
|
86
|
-
this._observer?.unobserve(this.chart.nativeElement);
|
|
87
|
-
}
|
|
88
|
-
redraw(config) {
|
|
89
|
-
if (config) {
|
|
90
|
-
this._chart.redraw(config);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
resize(contentRect) {
|
|
94
|
-
const { width, height } = contentRect;
|
|
95
|
-
this._chart.setSize({
|
|
96
|
-
width,
|
|
97
|
-
height,
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
setConfig(config) {
|
|
101
|
-
if (config) {
|
|
102
|
-
this._config = config;
|
|
103
|
-
this.hasSeriesData = !!this._config?.series?.some((_) => _.data.length);
|
|
104
|
-
if (!this._chart) {
|
|
105
|
-
this._chart = new TetaChart(this._config, this.chart);
|
|
106
|
-
this._chart.plotLinesMove
|
|
107
|
-
.pipe(takeWhile((_) => this._alive))
|
|
108
|
-
.subscribe((_) => this.plotLinesMove.emit(_));
|
|
109
|
-
this._chart.plotBandsMove
|
|
110
|
-
.pipe(takeWhile((_) => this._alive))
|
|
111
|
-
.subscribe((_) => this.plotBandsMove.emit(_));
|
|
112
|
-
this._chart.seriesMove
|
|
113
|
-
.pipe(takeWhile((_) => this._alive))
|
|
114
|
-
.subscribe((_) => this.seriesMove.emit(_));
|
|
115
|
-
this._chart.pointMove
|
|
116
|
-
.pipe(takeWhile((_) => this._alive))
|
|
117
|
-
.subscribe((_) => {
|
|
118
|
-
this.pointMove.emit(_);
|
|
119
|
-
});
|
|
120
|
-
this._chart.zoom
|
|
121
|
-
.pipe(takeWhile((_) => this._alive), map((_) => {
|
|
122
|
-
this.zoomChange.emit(_);
|
|
123
|
-
}))
|
|
124
|
-
.subscribe();
|
|
125
|
-
}
|
|
126
|
-
if (this.chart) {
|
|
127
|
-
if (this.hasSeriesData) {
|
|
128
|
-
if (!this._zoom || this._zoom?.event?.type === 'end') {
|
|
129
|
-
this.redraw(this._config);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
ChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
137
|
-
ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ChartComponent, selector: "teta-chart", inputs: { zoom: "zoom", config: "config" }, outputs: { plotLinesMove: "plotLinesMove", plotBandsMove: "plotBandsMove", seriesMove: "seriesMove", pointMove: "pointMove", zoomChange: "zoomChange" }, host: { listeners: { "click": "click($event)" } }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["chart"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div [style.display]=\"hasSeriesData ? 'contents' : 'none'\">\n <div #chart class=\"chart-container\"></div>\n <div *ngIf=\"showLegend\" class=\"legend-container\"></div>\n</div>\n<div [style.display]=\"!hasSeriesData ? 'block' : 'none'\" class=\"chart-placeholder text-align-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\n\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}.chart-container{position:relative;min-height:0;flex-grow:1;flex-basis:1px}.chart-placeholder{margin:auto;width:100%}.chart-placeholder span{text-overflow:ellipsis;overflow:hidden;display:block}.legend-container{flex-shrink:0;flex-basis:1px}::ng-deep .grid line{stroke-dasharray:1,4}::ng-deep .tooltip-chart{padding:8px 12px;border-radius:2px}::ng-deep .legend{grid-gap:8px;padding-bottom:5px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-evenly}::ng-deep .legend .item{display:flex;align-items:center;cursor:pointer}::ng-deep .legend .item .swatch{width:10px;height:10px}::ng-deep .legend .item .line{width:12px;height:2px}::ng-deep .legend .item .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:5px}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
138
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartComponent, decorators: [{
|
|
139
|
-
type: Component,
|
|
140
|
-
args: [{ selector: 'teta-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [style.display]=\"hasSeriesData ? 'contents' : 'none'\">\n <div #chart class=\"chart-container\"></div>\n <div *ngIf=\"showLegend\" class=\"legend-container\"></div>\n</div>\n<div [style.display]=\"!hasSeriesData ? 'block' : 'none'\" class=\"chart-placeholder text-align-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\n\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}.chart-container{position:relative;min-height:0;flex-grow:1;flex-basis:1px}.chart-placeholder{margin:auto;width:100%}.chart-placeholder span{text-overflow:ellipsis;overflow:hidden;display:block}.legend-container{flex-shrink:0;flex-basis:1px}::ng-deep .grid line{stroke-dasharray:1,4}::ng-deep .tooltip-chart{padding:8px 12px;border-radius:2px}::ng-deep .legend{grid-gap:8px;padding-bottom:5px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-evenly}::ng-deep .legend .item{display:flex;align-items:center;cursor:pointer}::ng-deep .legend .item .swatch{width:10px;height:10px}::ng-deep .legend .item .line{width:12px;height:2px}::ng-deep .legend .item .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:5px}\n"] }]
|
|
141
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { zoom: [{
|
|
142
|
-
type: Input
|
|
143
|
-
}], config: [{
|
|
144
|
-
type: Input
|
|
145
|
-
}], plotLinesMove: [{
|
|
146
|
-
type: Output
|
|
147
|
-
}], plotBandsMove: [{
|
|
148
|
-
type: Output
|
|
149
|
-
}], seriesMove: [{
|
|
150
|
-
type: Output
|
|
151
|
-
}], pointMove: [{
|
|
152
|
-
type: Output
|
|
153
|
-
}], zoomChange: [{
|
|
154
|
-
type: Output
|
|
155
|
-
}], chart: [{
|
|
156
|
-
type: ViewChild,
|
|
157
|
-
args: ['chart', {
|
|
158
|
-
static: true,
|
|
159
|
-
}]
|
|
160
|
-
}], click: [{
|
|
161
|
-
type: HostListener,
|
|
162
|
-
args: ['click', ['$event']]
|
|
163
|
-
}] } });
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9jaGFydC9jaGFydC9jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2NoYXJ0L2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUtMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUTFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBU3ZELE1BQU0sT0FBTyxjQUFjO0lBMkN6QixZQUFvQixLQUFhO1FBQWIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQW5DakMsa0JBQWEsR0FBdUMsSUFBSSxZQUFZLEVBRWpFLENBQUM7UUFHSixrQkFBYSxHQUF1QyxJQUFJLFlBQVksRUFFakUsQ0FBQztRQUdKLGVBQVUsR0FBZ0QsSUFBSSxZQUFZLEVBRXZFLENBQUM7UUFHSixjQUFTLEdBQWdELElBQUksWUFBWSxFQUV0RSxDQUFDO1FBR0osZUFBVSxHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFDO1FBUzlELFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxVQUFLLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQUtDLENBQUM7SUFFRixLQUFLLENBQUMsS0FBVTtRQUNqRCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7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S0FBSyxLQUFLLEVBQUU7d0JBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUMzQjtpQkFDRjthQUNGO1NBQ0Y7SUFDSCxDQUFDOzsyR0EzTVUsY0FBYzsrRkFBZCxjQUFjLDZhQ3BDM0IsMmNBU0E7MkZEMkJhLGNBQWM7a0JBTjFCLFNBQVM7K0JBQ0UsWUFBWSxtQkFHTCx1QkFBdUIsQ0FBQyxNQUFNOzZGQUt0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUdOLGFBQWE7c0JBRFosTUFBTTtnQkFNUCxhQUFhO3NCQURaLE1BQU07Z0JBTVAsVUFBVTtzQkFEVCxNQUFNO2dCQU1QLFNBQVM7c0JBRFIsTUFBTTtnQkFNUCxVQUFVO3NCQURULE1BQU07Z0JBTVAsS0FBSztzQkFISixTQUFTO3VCQUFDLE9BQU8sRUFBRTt3QkFDbEIsTUFBTSxFQUFFLElBQUk7cUJBQ2I7Z0JBYWtDLEtBQUs7c0JBQXZDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCB0YWtlV2hpbGUsIHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRldGFDaGFydCB9IGZyb20gJy4uL2NvcmUvY2hhcnQnO1xuaW1wb3J0IHsgQ2hhcnRPcHRpb25zIH0gZnJvbSAnLi4vbW9kZWwvY2hhcnQtb3B0aW9ucyc7XG5pbXBvcnQgeyBCYXNlUG9pbnQgfSBmcm9tICcuLi9tb2RlbC9wb2ludC9iYXNlLXBvaW50JztcbmltcG9ydCB7IFNlcmllcyB9IGZyb20gJy4uL21vZGVsL3Nlcmllcyc7XG5pbXBvcnQgeyBQbG90TGluZSB9IGZyb20gJy4uL21vZGVsL3Bsb3QtbGluZSc7XG5pbXBvcnQgeyBQbG90QmFuZCB9IGZyb20gJy4uL21vZGVsL3Bsb3QtYmFuZCc7XG5pbXBvcnQgeyBJRHJhZ0V2ZW50IH0gZnJvbSAnLi4vbW9kZWwvaS1kcmFnLWV2ZW50JztcbmltcG9ydCB7IElab29tRXZlbnQgfSBmcm9tICcuLi9tb2RlbC9pLXpvb20tZXZlbnQnO1xuaW1wb3J0IHsgU2VyaWVzVHlwZSB9IGZyb20gJy4uL21vZGVsL2VudW0vc2VyaWVzLXR5cGUnO1xuaW1wb3J0IHsgQmFyUG9pbnQgfSBmcm9tICcuLi9tb2RlbC9wb2ludC9iYXItcG9pbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hhcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlc1xue1xuICBASW5wdXQoKSB6b29tOiBJWm9vbUV2ZW50O1xuXG4gIEBJbnB1dCgpIGNvbmZpZzogQ2hhcnRPcHRpb25zO1xuXG4gIEBPdXRwdXQoKVxuICBwbG90TGluZXNNb3ZlOiBFdmVudEVtaXR0ZXI8SURyYWdFdmVudDxQbG90TGluZT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBJRHJhZ0V2ZW50PFBsb3RMaW5lPlxuICA+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHBsb3RCYW5kc01vdmU6IEV2ZW50RW1pdHRlcjxJRHJhZ0V2ZW50PFBsb3RCYW5kPj4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIElEcmFnRXZlbnQ8UGxvdEJhbmQ+XG4gID4oKTtcblxuICBAT3V0cHV0KClcbiAgc2VyaWVzTW92ZTogRXZlbnRFbWl0dGVyPElEcmFnRXZlbnQ8U2VyaWVzPEJhc2VQb2ludD4+PiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgSURyYWdFdmVudDxTZXJpZXM8QmFzZVBvaW50Pj5cbiAgPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwb2ludE1vdmU6IEV2ZW50RW1pdHRlcjxJRHJhZ0V2ZW50PFNlcmllczxCYXNlUG9pbnQ+Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIElEcmFnRXZlbnQ8U2VyaWVzPEJhc2VQb2ludD4+XG4gID4oKTtcblxuICBAT3V0cHV0KClcbiAgem9vbUNoYW5nZTogRXZlbnRFbWl0dGVyPElab29tRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJWm9vbUV2ZW50PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2NoYXJ0Jywge1xuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgY2hhcnQ6IEVsZW1lbnRSZWY7XG4gIGhhc1Nlcmllc0RhdGE6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBfY29uZmlnOiBDaGFydE9wdGlvbnM7XG4gIHByaXZhdGUgX2FsaXZlID0gdHJ1ZTtcbiAgcHJpdmF0ZSBzaXplJCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgcHJpdmF0ZSBfb2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuICBwcml2YXRlIF9jaGFydDogVGV0YUNoYXJ0O1xuICBwcml2YXRlIF96b29tOiBJWm9vbUV2ZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3pvbmU6IE5nWm9uZSkge31cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIGNsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wb3NlZFBhdGggPSBldmVudC5jb21wb3NlZFBhdGgoKTtcbiAgICBjb25zdCB0cmlnZ2VyVG9rZW4gPSAnbGVnZW5kJztcblxuICAgIGNvbnN0IGlzTGVnZW5kID0gY29tcG9zZWRQYXRoLnNvbWUoKF8pID0+XG4gICAgICBfLmNsYXNzTGlzdD8uY29udGFpbnModHJpZ2dlclRva2VuKVxuICAgICk7XG5cbiAgICBpZiAoaXNMZWdlbmQpIHtcbiAgICAgIGNvbnN0IGNsaWNrZWRFbGVtZW50OiBhbnkgPSBldmVudC50YXJnZXQ/Ll9fZGF0YV9fO1xuXG4gICAgICBpZiAoIWNsaWNrZWRFbGVtZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc2VyaWVJbmRleCA9IHRoaXMuX2NvbmZpZz8uc2VyaWVzPy5pbmRleE9mKGNsaWNrZWRFbGVtZW50KTtcblxuICAgICAgaWYgKGNsaWNrZWRFbGVtZW50LnNlcmllVHlwZSA9PT0gU2VyaWVzVHlwZS5iYXIpIHtcbiAgICAgICAgY29uc3QgZm91bmRTZXJpZSA9IHRoaXMuX2NvbmZpZy5zZXJpZXNbY2xpY2tlZEVsZW1lbnQuc2VyaWVJbmRleF07XG5cbiAgICAgICAgdGhpcy5fY29uZmlnLnNlcmllc1tmb3VuZFNlcmllLmlkXS5kYXRhID0gdGhpcy5fY29uZmlnLnNlcmllc1tcbiAgICAgICAgICBmb3VuZFNlcmllLmlkXG4gICAgICAgIF0uZGF0YS5tYXAoKF86IEJhc2VQb2ludCAmIEJhclBvaW50KSA9PiB7XG4gICAgICAgICAgaWYgKGNsaWNrZWRFbGVtZW50LmlkID09PSBfLmlkKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5fLFxuICAgICAgICAgICAgICB2aXNpYmxlOiAhXy52aXNpYmxlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gXztcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5yZWRyYXcodGhpcy5fY29uZmlnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNlcmllSW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IGZvdW5kU2VyaWUgPSB0aGlzLl9jb25maWcuc2VyaWVzW3NlcmllSW5kZXhdO1xuXG4gICAgICAgIGNvbnN0IHlBeGlzSW5kZXggPSBmb3VuZFNlcmllPy55QXhpc0luZGV4O1xuXG4gICAgICAgIHRoaXMuX2NvbmZpZy5zZXJpZXNbc2VyaWVJbmRleF0udmlzaWJsZSA9ICFmb3VuZFNlcmllLnZpc2libGU7XG5cbiAgICAgICAgY29uc3QgYXR0YWNoZWRZQXhlcyA9IHRoaXMuX2NvbmZpZy5zZXJpZXNcbiAgICAgICAgICA/LmZpbHRlcigoXykgPT4gXy52aXNpYmxlKVxuICAgICAgICAgIC5tYXAoKF8pID0+IF8ueUF4aXNJbmRleCk7XG5cbiAgICAgICAgY29uc3Qgc2hvdWxkVmlzaWJsZVlBeGlzID0gYXR0YWNoZWRZQXhlcz8uaW5jbHVkZXMoeUF4aXNJbmRleCk7XG5cbiAgICAgICAgdGhpcy5fY29uZmlnLnlBeGlzW3lBeGlzSW5kZXhdLnZpc2libGUgPSBzaG91bGRWaXNpYmxlWUF4aXM7XG4gICAgICAgIHRoaXMucmVkcmF3KHRoaXMuX2NvbmZpZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICh0aGlzLmNvbmZpZyAmJiBjaGFuZ2VzLmhhc093blByb3BlcnR5KCdjb25maWcnKSkge1xuICAgICAgdGhpcy5zZXRDb25maWcodGhpcy5jb25maWcpO1xuXG4gICAgICBpZiAodGhpcy56b29tKSB7XG4gICAgICAgIHRoaXMuX2NoYXJ0Py5zZXRab29tKHRoaXMuem9vbSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuem9vbSAmJiBjaGFuZ2VzLmhhc093blByb3BlcnR5KCd6b29tJykpIHtcbiAgICAgIHRoaXMuX2NoYXJ0Py5zZXRab29tKHRoaXMuem9vbSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoZW50cmllcykgPT4ge1xuICAgICAgY29uc3QgeyBjb250ZW50UmVjdCB9ID0gZW50cmllc1swXTtcbiAgICAgIHRoaXMuc2l6ZSQubmV4dChjb250ZW50UmVjdCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9vYnNlcnZlci5vYnNlcnZlKHRoaXMuY2hhcnQubmF0aXZlRWxlbWVudCk7XG5cbiAgICB0aGlzLnNpemUkXG4gICAgICAucGlwZSh0aHJvdHRsZVRpbWUoMTAwLCB1bmRlZmluZWQsIHsgdHJhaWxpbmc6IHRydWUgfSkpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVdoaWxlKChfKSA9PiB0aGlzLl9hbGl2ZSksXG4gICAgICAgIG1hcCgoXykgPT4ge1xuICAgICAgICAgIHRoaXMucmVzaXplKF8pO1xuICAgICAgICAgIHRoaXMucmVkcmF3KHRoaXMuX2NvbmZpZyk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnZXQgc2hvd0xlZ2VuZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnPy5sZWdlbmQ/LnZpc2libGU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuX29ic2VydmVyPy51bm9ic2VydmUodGhpcy5jaGFydC5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVkcmF3KGNvbmZpZzogYW55KSB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgdGhpcy5fY2hhcnQucmVkcmF3KGNvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNpemUoY29udGVudFJlY3Q6IGFueSkge1xuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gY29udGVudFJlY3Q7XG4gICAgdGhpcy5fY2hhcnQuc2V0U2l6ZSh7XG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29uZmlnKGNvbmZpZzogQ2hhcnRPcHRpb25zKSB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgICAgdGhpcy5oYXNTZXJpZXNEYXRhID0gISF0aGlzLl9jb25maWc/LnNlcmllcz8uc29tZSgoXykgPT4gXy5kYXRhLmxlbmd0aCk7XG5cbiAgICAgIGlmICghdGhpcy5fY2hhcnQpIHtcbiAgICAgICAgdGhpcy5fY2hhcnQgPSBuZXcgVGV0YUNoYXJ0KHRoaXMuX2NvbmZpZywgdGhpcy5jaGFydCk7XG5cbiAgICAgICAgdGhpcy5fY2hhcnQucGxvdExpbmVzTW92ZVxuICAgICAgICAgIC5waXBlKHRha2VXaGlsZSgoXykgPT4gdGhpcy5fYWxpdmUpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHRoaXMucGxvdExpbmVzTW92ZS5lbWl0KF8pKTtcblxuICAgICAgICB0aGlzLl9jaGFydC5wbG90QmFuZHNNb3ZlXG4gICAgICAgICAgLnBpcGUodGFrZVdoaWxlKChfKSA9PiB0aGlzLl9hbGl2ZSkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoXykgPT4gdGhpcy5wbG90QmFuZHNNb3ZlLmVtaXQoXykpO1xuXG4gICAgICAgIHRoaXMuX2NoYXJ0LnNlcmllc01vdmVcbiAgICAgICAgICAucGlwZSh0YWtlV2hpbGUoKF8pID0+IHRoaXMuX2FsaXZlKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKChfKSA9PiB0aGlzLnNlcmllc01vdmUuZW1pdChfKSk7XG5cbiAgICAgICAgdGhpcy5fY2hhcnQucG9pbnRNb3ZlXG4gICAgICAgICAgLnBpcGUodGFrZVdoaWxlKChfKSA9PiB0aGlzLl9hbGl2ZSkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgdGhpcy5wb2ludE1vdmUuZW1pdChfKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9jaGFydC56b29tXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICB0YWtlV2hpbGUoKF8pID0+IHRoaXMuX2FsaXZlKSxcbiAgICAgICAgICAgIG1hcCgoXykgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnpvb21DaGFuZ2UuZW1pdChfKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuY2hhcnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzU2VyaWVzRGF0YSkge1xuICAgICAgICAgIGlmICghdGhpcy5fem9vbSB8fCB0aGlzLl96b29tPy5ldmVudD8udHlwZSA9PT0gJ2VuZCcpIHtcbiAgICAgICAgICAgIHRoaXMucmVkcmF3KHRoaXMuX2NvbmZpZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IFtzdHlsZS5kaXNwbGF5XT1cImhhc1Nlcmllc0RhdGEgPyAnY29udGVudHMnIDogJ25vbmUnXCI+XG4gIDxkaXYgI2NoYXJ0IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+PC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJzaG93TGVnZW5kXCIgY2xhc3M9XCJsZWdlbmQtY29udGFpbmVyXCI+PC9kaXY+XG48L2Rpdj5cbjxkaXYgW3N0eWxlLmRpc3BsYXldPVwiIWhhc1Nlcmllc0RhdGEgPyAnYmxvY2snIDogJ25vbmUnXCIgY2xhc3M9XCJjaGFydC1wbGFjZWhvbGRlciB0ZXh0LWFsaWduLWNlbnRlclwiPlxuICA8c3BhbiBjbGFzcz1cImZvbnQtYm9keS0zIGNvbG9yLXRleHQtNDBcIj7QlNCw0L3QvdGL0LUg0L7RgtGB0YPRgtGB0YLQstGD0Y7Rgjwvc3Bhbj5cbjwvZGl2PlxuXG5cbiJdfQ==
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { ChartComponent } from './chart/chart.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class ChartModule {
|
|
6
|
-
}
|
|
7
|
-
ChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
-
ChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartModule, declarations: [ChartComponent], imports: [CommonModule], exports: [ChartComponent] });
|
|
9
|
-
ChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartModule, imports: [[CommonModule]] });
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartModule, decorators: [{
|
|
11
|
-
type: NgModule,
|
|
12
|
-
args: [{
|
|
13
|
-
declarations: [ChartComponent],
|
|
14
|
-
exports: [ChartComponent],
|
|
15
|
-
imports: [CommonModule],
|
|
16
|
-
}]
|
|
17
|
-
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9jaGFydC9jaGFydC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQU96RCxNQUFNLE9BQU8sV0FBVzs7d0dBQVgsV0FBVzt5R0FBWCxXQUFXLGlCQUpQLGNBQWMsYUFFbkIsWUFBWSxhQURaLGNBQWM7eUdBR2IsV0FBVyxZQUZiLENBQUMsWUFBWSxDQUFDOzJGQUVaLFdBQVc7a0JBTHZCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsY0FBYyxDQUFDO29CQUM5QixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQ3pCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9jaGFydC9jaGFydC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDaGFydENvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtDaGFydENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFydE1vZHVsZSB7fVxuIl19
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import * as d3 from 'd3';
|
|
2
|
-
import { AxisType } from '../model/enum/axis-type';
|
|
3
|
-
export class Axis {
|
|
4
|
-
constructor(options) {
|
|
5
|
-
this._extents = [0, 0];
|
|
6
|
-
this._type = options?.type;
|
|
7
|
-
this._index = options?.index || 0;
|
|
8
|
-
this._chartOptions = options?.chartOptions;
|
|
9
|
-
this._height = options?.height;
|
|
10
|
-
if (this._chartOptions == null) {
|
|
11
|
-
throw new Error(`No chartOptions for axis ${AxisType[this._type]}`);
|
|
12
|
-
}
|
|
13
|
-
this.createExtents();
|
|
14
|
-
this.width = this.calculateAxisWidth();
|
|
15
|
-
}
|
|
16
|
-
get index() {
|
|
17
|
-
return this._index;
|
|
18
|
-
}
|
|
19
|
-
get options() {
|
|
20
|
-
return this._type === AxisType.abscissa
|
|
21
|
-
? this._chartOptions.xAxis[this.index]
|
|
22
|
-
: this._chartOptions.yAxis[this.index];
|
|
23
|
-
}
|
|
24
|
-
get extent() {
|
|
25
|
-
return this._extents;
|
|
26
|
-
}
|
|
27
|
-
get type() {
|
|
28
|
-
return this._type;
|
|
29
|
-
}
|
|
30
|
-
get offset() {
|
|
31
|
-
return this._offset;
|
|
32
|
-
}
|
|
33
|
-
get ticks() {
|
|
34
|
-
return this._ticks;
|
|
35
|
-
}
|
|
36
|
-
setOffset(offset) {
|
|
37
|
-
this._offset = offset;
|
|
38
|
-
}
|
|
39
|
-
calculateAxisWidth() {
|
|
40
|
-
if (this.type === AxisType.abscissa) {
|
|
41
|
-
return 0;
|
|
42
|
-
}
|
|
43
|
-
const y = d3
|
|
44
|
-
.scaleLinear()
|
|
45
|
-
.domain([this.extent[0], this.extent[1]])
|
|
46
|
-
.range([0, this._height])
|
|
47
|
-
.nice();
|
|
48
|
-
const body = d3
|
|
49
|
-
.select('body')
|
|
50
|
-
.append('svg')
|
|
51
|
-
.attr('class', 'calculate-offset')
|
|
52
|
-
.style('position', 'absolute')
|
|
53
|
-
.style('left', '-9999px');
|
|
54
|
-
const axis = d3.axisRight(y).tickValues(this.ticks);
|
|
55
|
-
const element = body.append('g').attr('class', 'font-caption').call(axis);
|
|
56
|
-
const bBox = element.node().getBBox();
|
|
57
|
-
d3.selectAll('.calculate-offset').remove();
|
|
58
|
-
return bBox.width;
|
|
59
|
-
}
|
|
60
|
-
createExtents() {
|
|
61
|
-
const hasMin = this.options?.min != null;
|
|
62
|
-
const hasMax = this.options?.max != null;
|
|
63
|
-
if (!hasMin || !hasMax) {
|
|
64
|
-
const filtered = this._chartOptions?.series?.filter((serie) => this._index ===
|
|
65
|
-
serie[this._type === AxisType.abscissa ? 'xAxisIndex' : 'yAxisIndex']);
|
|
66
|
-
const raw = filtered.map((series) => d3.extent(series?.data, (point) => this._type === AxisType.abscissa ? point.x : point.y));
|
|
67
|
-
const merged = [].concat(...(raw ?? []));
|
|
68
|
-
const abs = (num) => Math.abs(num);
|
|
69
|
-
this._extents = this.options.negative
|
|
70
|
-
? [-Math.abs(d3.max(merged.map(abs))), d3.max(merged.map(abs))]
|
|
71
|
-
: [d3.min(merged), d3.max(merged)];
|
|
72
|
-
}
|
|
73
|
-
if (hasMin) {
|
|
74
|
-
this._extents[0] = this.options?.min;
|
|
75
|
-
}
|
|
76
|
-
if (hasMax) {
|
|
77
|
-
this._extents[1] = this.options?.max;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
Axis.offsetFactor = 22;
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpcy1jcmVhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9jaGFydC9jb3JlL2F4aXMtY3JlYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFNakQsTUFBTSxPQUFPLElBQUk7SUFZZixZQUFZLE9BS1g7UUFYTyxhQUFRLEdBQXFCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBWTFDLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxFQUFFLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxFQUFFLFlBQVksQ0FBQztRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sRUFBRSxNQUFNLENBQUM7UUFFL0IsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksRUFBRTtZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNyRTtRQUVELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsUUFBUTtZQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FB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LEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3JELENBQ0YsQ0FBQztZQUVGLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRXpDLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRW5DLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO2dCQUNuQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDL0QsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDdEM7UUFFRCxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7U0FDdEM7UUFFRCxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7U0FDdEM7SUFDSCxDQUFDOztBQXhIYSxpQkFBWSxHQUFHLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCB7QXhpc1R5cGV9IGZyb20gJy4uL21vZGVsL2VudW0vYXhpcy10eXBlJztcbmltcG9ydCB7U2VyaWVzfSBmcm9tICcuLi9tb2RlbC9zZXJpZXMnO1xuaW1wb3J0IHtCYXNlUG9pbnR9IGZyb20gJy4uL21vZGVsL3BvaW50L2Jhc2UtcG9pbnQnO1xuaW1wb3J0IHtDaGFydE9wdGlvbnN9IGZyb20gJy4uL21vZGVsL2NoYXJ0LW9wdGlvbnMnO1xuaW1wb3J0IHtBeGlzT3B0aW9uc30gZnJvbSAnLi4vbW9kZWwvYXhpcy1vcHRpb25zJztcblxuZXhwb3J0IGNsYXNzIEF4aXMge1xuICBwdWJsaWMgc3RhdGljIG9mZnNldEZhY3RvciA9IDIyO1xuICBwdWJsaWMgcmVhZG9ubHkgd2lkdGg6IG51bWJlcjtcblxuICBwcml2YXRlIF90eXBlOiBBeGlzVHlwZTtcbiAgcHJpdmF0ZSBfY2hhcnRPcHRpb25zOiBDaGFydE9wdGlvbnM7XG4gIHByaXZhdGUgX2V4dGVudHM6IFtudW1iZXIsIG51bWJlcl0gPSBbMCwgMF07XG4gIHByaXZhdGUgX2luZGV4OiBudW1iZXI7XG4gIHByaXZhdGUgX2hlaWdodDogbnVtYmVyO1xuICBwcml2YXRlIF9vZmZzZXQ6IG51bWJlcjtcbiAgcHJpdmF0ZSBfdGlja3M6IGFueTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiB7XG4gICAgdHlwZTogQXhpc1R5cGU7XG4gICAgaW5kZXg6IG51bWJlcjtcbiAgICBjaGFydE9wdGlvbnM6IENoYXJ0T3B0aW9ucztcbiAgICBoZWlnaHQ/OiBudW1iZXI7XG4gIH0pIHtcbiAgICB0aGlzLl90eXBlID0gb3B0aW9ucz8udHlwZTtcbiAgICB0aGlzLl9pbmRleCA9IG9wdGlvbnM/LmluZGV4IHx8IDA7XG4gICAgdGhpcy5fY2hhcnRPcHRpb25zID0gb3B0aW9ucz8uY2hhcnRPcHRpb25zO1xuICAgIHRoaXMuX2hlaWdodCA9IG9wdGlvbnM/LmhlaWdodDtcblxuICAgIGlmICh0aGlzLl9jaGFydE9wdGlvbnMgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBjaGFydE9wdGlvbnMgZm9yIGF4aXMgJHtBeGlzVHlwZVt0aGlzLl90eXBlXX1gKTtcbiAgICB9XG5cbiAgICB0aGlzLmNyZWF0ZUV4dGVudHMoKTtcbiAgICB0aGlzLndpZHRoID0gdGhpcy5jYWxjdWxhdGVBeGlzV2lkdGgoKTtcbiAgfVxuXG4gIGdldCBpbmRleCgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5kZXg7XG4gIH1cblxuICBnZXQgb3B0aW9ucygpOiBBeGlzT3B0aW9ucyB7XG4gICAgcmV0dXJuIHRoaXMuX3R5cGUgPT09IEF4aXNUeXBlLmFic2Npc3NhXG4gICAgICA/IHRoaXMuX2NoYXJ0T3B0aW9ucy54QXhpc1t0aGlzLmluZGV4XVxuICAgICAgOiB0aGlzLl9jaGFydE9wdGlvbnMueUF4aXNbdGhpcy5pbmRleF07XG4gIH1cblxuICBnZXQgZXh0ZW50KCk6IFtudW1iZXIsIG51bWJlcl0ge1xuICAgIHJldHVybiB0aGlzLl9leHRlbnRzO1xuICB9XG5cbiAgZ2V0IHR5cGUoKTogQXhpc1R5cGUge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG5cbiAgZ2V0IG9mZnNldCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9vZmZzZXQ7XG4gIH1cblxuICBnZXQgdGlja3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3RpY2tzO1xuICB9XG5cbiAgc2V0T2Zmc2V0KG9mZnNldDogbnVtYmVyKSB7XG4gICAgdGhpcy5fb2Zmc2V0ID0gb2Zmc2V0O1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVBeGlzV2lkdGgoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBBeGlzVHlwZS5hYnNjaXNzYSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgY29uc3QgeSA9IGQzXG4gICAgICAuc2NhbGVMaW5lYXIoKVxuICAgICAgLmRvbWFpbihbdGhpcy5leHRlbnRbMF0sIHRoaXMuZXh0ZW50WzFdXSlcbiAgICAgIC5yYW5nZShbMCwgdGhpcy5faGVpZ2h0XSlcbiAgICAgIC5uaWNlKCk7XG5cbiAgICBjb25zdCBib2R5ID0gZDNcbiAgICAgIC5zZWxlY3QoJ2JvZHknKVxuICAgICAgLmFwcGVuZCgnc3ZnJylcbiAgICAgIC5hdHRyKCdjbGFzcycsICdjYWxjdWxhdGUtb2Zmc2V0JylcbiAgICAgIC5zdHlsZSgncG9zaXRpb24nLCAnYWJzb2x1dGUnKVxuICAgICAgLnN0eWxlKCdsZWZ0JywgJy05OTk5cHgnKTtcbiAgICBjb25zdCBheGlzID0gZDMuYXhpc1JpZ2h0KHkpLnRpY2tWYWx1ZXModGhpcy50aWNrcyk7XG4gICAgY29uc3QgZWxlbWVudCA9IGJvZHkuYXBwZW5kKCdnJykuYXR0cignY2xhc3MnLCAnZm9udC1jYXB0aW9uJykuY2FsbChheGlzKTtcblxuICAgIGNvbnN0IGJCb3ggPSBlbGVtZW50Lm5vZGUoKS5nZXRCQm94KCk7XG5cbiAgICBkMy5zZWxlY3RBbGwoJy5jYWxjdWxhdGUtb2Zmc2V0JykucmVtb3ZlKCk7XG5cbiAgICByZXR1cm4gYkJveC53aWR0aDtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRXh0ZW50cygpIHtcbiAgICBjb25zdCBoYXNNaW4gPSB0aGlzLm9wdGlvbnM/Lm1pbiAhPSBudWxsO1xuICAgIGNvbnN0IGhhc01heCA9IHRoaXMub3B0aW9ucz8ubWF4ICE9IG51bGw7XG5cbiAgICBpZiAoIWhhc01pbiB8fCAhaGFzTWF4KSB7XG4gICAgICBjb25zdCBmaWx0ZXJlZCA9IHRoaXMuX2NoYXJ0T3B0aW9ucz8uc2VyaWVzPy5maWx0ZXIoXG4gICAgICAgIChzZXJpZTogU2VyaWVzPEJhc2VQb2ludD4pID0+XG4gICAgICAgICAgdGhpcy5faW5kZXggPT09XG4gICAgICAgICAgc2VyaWVbdGhpcy5fdHlwZSA9PT0gQXhpc1R5cGUuYWJzY2lzc2EgPyAneEF4aXNJbmRleCcgOiAneUF4aXNJbmRleCddXG4gICAgICApO1xuXG4gICAgICBjb25zdCByYXcgPSBmaWx0ZXJlZC5tYXAoKHNlcmllczogU2VyaWVzPEJhc2VQb2ludD4pID0+XG4gICAgICAgIGQzLmV4dGVudChzZXJpZXM/LmRhdGEsIChwb2ludDogQmFzZVBvaW50KSA9PlxuICAgICAgICAgIHRoaXMuX3R5cGUgPT09IEF4aXNUeXBlLmFic2Npc3NhID8gcG9pbnQueCA6IHBvaW50LnlcbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgICAgY29uc3QgbWVyZ2VkID0gW10uY29uY2F0KC4uLihyYXcgPz8gW10pKTtcblxuICAgICAgY29uc3QgYWJzID0gKG51bSkgPT4gTWF0aC5hYnMobnVtKTtcblxuICAgICAgdGhpcy5fZXh0ZW50cyA9IHRoaXMub3B0aW9ucy5uZWdhdGl2ZVxuICAgICAgICA/IFstTWF0aC5hYnMoZDMubWF4KG1lcmdlZC5tYXAoYWJzKSkpLCBkMy5tYXgobWVyZ2VkLm1hcChhYnMpKV1cbiAgICAgICAgOiBbZDMubWluKG1lcmdlZCksIGQzLm1heChtZXJnZWQpXTtcbiAgICB9XG5cbiAgICBpZiAoaGFzTWluKSB7XG4gICAgICB0aGlzLl9leHRlbnRzWzBdID0gdGhpcy5vcHRpb25zPy5taW47XG4gICAgfVxuXG4gICAgaWYgKGhhc01heCkge1xuICAgICAgdGhpcy5fZXh0ZW50c1sxXSA9IHRoaXMub3B0aW9ucz8ubWF4O1xuICAgIH1cbiAgfVxufVxuIl19
|