@tetacom/svg-charts 1.0.2 → 1.1.3
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/{dist/chart → chart}/base/series-base.component.d.ts +4 -1
- package/{dist/chart → chart}/chart/chart.component.d.ts +12 -9
- package/chart/chart-container/chart-container.component.d.ts +37 -0
- package/chart/chart-container/gridlines/gridlines.component.d.ts +14 -0
- package/{dist/chart/chart-container/plotband/plotband.component.d.ts → chart/chart-container/plotband/plot-band.component.d.ts} +11 -10
- package/{dist/chart → chart}/chart-container/plotline/plotline.component.d.ts +5 -5
- package/{dist/chart → chart}/chart-container/series/bar/bar-series.component.d.ts +0 -0
- package/{dist/chart → chart}/chart-container/series/line/line-series.component.d.ts +2 -2
- package/chart/chart-container/series/scatter-series/scatter-series.component.d.ts +28 -0
- package/{dist/chart → chart}/chart-container/series-host/series-host.component.d.ts +4 -1
- package/{dist/chart → chart}/chart-container/tooltip/tooltip.component.d.ts +6 -3
- package/chart/chart-container/x-axis/x-axis.component.d.ts +19 -0
- package/chart/chart-container/y-axis/y-axis.component.d.ts +20 -0
- package/{dist/chart → chart}/chart.module.d.ts +4 -3
- package/{dist/chart → chart}/core/axis/axis.d.ts +8 -3
- package/{dist/chart → chart}/core/axis/builders/axis-size-builder.d.ts +0 -0
- package/{dist/chart → chart}/core/axis/builders/extremes-builder.d.ts +0 -0
- package/{dist/chart → chart}/core/axis/builders/public-api.d.ts +0 -0
- package/{dist/chart → chart}/core/utils/generate-ticks.d.ts +0 -0
- package/{dist/chart → chart}/core/utils/get-text-width.d.ts +0 -0
- package/{dist/chart → chart}/core/utils/public-api.d.ts +0 -0
- package/chart/default/default-axis-config.d.ts +2 -0
- package/chart/default/default-chart-config.d.ts +2 -0
- package/chart/default/default-series-config.d.ts +3 -0
- package/{dist/chart → chart}/directives/brushable.directive.d.ts +2 -1
- package/{dist/chart → chart}/directives/zoomable.directive.d.ts +1 -3
- package/{dist/chart → chart}/legend/legend.component.d.ts +1 -3
- package/chart/model/axis-options.d.ts +19 -0
- package/{dist/chart → chart}/model/base-point.d.ts +1 -1
- package/{dist/chart → chart}/model/chart-bounds.d.ts +0 -0
- package/{dist/chart → chart}/model/enum/axis-orientation.d.ts +0 -0
- package/{dist/chart → chart}/model/enum/brush-type.d.ts +0 -0
- package/{dist/chart → chart}/model/enum/drag-point-type.d.ts +0 -0
- package/{dist/chart → chart}/model/enum/public-api.d.ts +1 -1
- package/chart/model/enum/scale-type.d.ts +8 -0
- package/{dist/chart → chart}/model/enum/series-type.d.ts +2 -1
- package/{dist/chart → chart}/model/enum/tooltip-tracking.d.ts +0 -0
- package/{dist/chart → chart}/model/enum/zoom-type.d.ts +0 -0
- package/chart/model/i-broadcast-message.d.ts +17 -0
- package/{dist/chart → chart}/model/i-builder.d.ts +0 -0
- package/{dist/chart → chart}/model/i-chart-config.d.ts +1 -0
- package/{dist/chart → chart}/model/i-chart-event.d.ts +0 -0
- package/{dist/chart → chart}/model/i-display-tooltip.d.ts +0 -0
- package/{dist/chart → chart}/model/i-point-move.d.ts +0 -0
- package/{dist/chart → chart}/model/marker-options.d.ts +0 -0
- package/{dist/chart/model/plotband.d.ts → chart/model/plot-band.d.ts} +7 -5
- package/{dist/chart/model/plotline.d.ts → chart/model/plot-line.d.ts} +3 -1
- package/{dist/chart → chart}/model/public-api.d.ts +2 -2
- package/{dist/chart → chart}/model/series.d.ts +0 -0
- package/{dist/chart → chart}/model/svg-attributes.d.ts +0 -0
- package/{dist/chart → chart}/model/tooltip-options.d.ts +0 -0
- package/{dist/chart → chart}/service/broadcast.service.d.ts +0 -0
- package/{dist/chart → chart}/service/brush.service.d.ts +2 -5
- package/{dist/chart → chart}/service/chart.service.d.ts +16 -17
- package/chart/service/scale.service.d.ts +19 -0
- package/{dist/chart → chart}/service/zoom.service.d.ts +6 -14
- package/esm2020/chart/base/series-base.component.mjs +32 -0
- package/esm2020/chart/chart/chart.component.mjs +71 -0
- package/esm2020/chart/chart-container/chart-container.component.mjs +133 -0
- package/esm2020/chart/chart-container/gridlines/gridlines.component.mjs +29 -0
- package/esm2020/chart/chart-container/plotband/plot-band.component.mjs +150 -0
- package/esm2020/chart/chart-container/plotline/plotline.component.mjs +76 -0
- package/esm2020/chart/chart-container/series/bar/bar-series.component.mjs +48 -0
- package/esm2020/chart/chart-container/series/line/line-series.component.mjs +152 -0
- package/esm2020/chart/chart-container/series/scatter-series/scatter-series.component.mjs +174 -0
- package/esm2020/chart/chart-container/series-host/series-host.component.mjs +68 -0
- package/esm2020/chart/chart-container/tooltip/tooltip.component.mjs +83 -0
- package/esm2020/chart/chart-container/x-axis/x-axis.component.mjs +53 -0
- package/esm2020/chart/chart-container/y-axis/y-axis.component.mjs +58 -0
- package/{dist/esm2020 → esm2020}/chart/chart.module.mjs +8 -5
- package/esm2020/chart/core/axis/axis.mjs +105 -0
- package/{dist/esm2020 → esm2020}/chart/core/axis/builders/axis-size-builder.mjs +0 -0
- package/esm2020/chart/core/axis/builders/extremes-builder.mjs +31 -0
- package/{dist/esm2020 → esm2020}/chart/core/axis/builders/public-api.mjs +0 -0
- package/{dist/esm2020 → esm2020}/chart/core/utils/generate-ticks.mjs +0 -0
- package/{dist/esm2020 → esm2020}/chart/core/utils/get-text-width.mjs +0 -0
- package/{dist/esm2020 → esm2020}/chart/core/utils/public-api.mjs +0 -0
- package/esm2020/chart/default/default-axis-config.mjs +9 -0
- package/esm2020/chart/default/default-chart-config.mjs +23 -0
- package/esm2020/chart/default/default-series-config.mjs +8 -0
- package/{dist/esm2020 → esm2020}/chart/directives/brushable.directive.mjs +5 -3
- package/esm2020/chart/directives/zoomable.directive.mjs +36 -0
- package/esm2020/chart/legend/legend.component.mjs +27 -0
- package/esm2020/chart/model/axis-options.mjs +2 -0
- package/{dist/esm2020 → esm2020}/chart/model/base-point.mjs +1 -1
- package/{dist/esm2020 → esm2020}/chart/model/chart-bounds.mjs +0 -0
- package/{dist/esm2020 → esm2020}/chart/model/enum/axis-orientation.mjs +0 -0
- package/{dist/esm2020 → esm2020}/chart/model/enum/brush-type.mjs +0 -0
- package/{dist/esm2020 → esm2020}/chart/model/enum/drag-point-type.mjs +0 -0
- package/{dist/esm2020 → esm2020}/chart/model/enum/public-api.mjs +2 -2
- package/esm2020/chart/model/enum/scale-type.mjs +10 -0
- package/{dist/esm2020 → esm2020}/chart/model/enum/series-type.mjs +2 -1
- package/{dist/esm2020 → esm2020}/chart/model/enum/tooltip-tracking.mjs +0 -0
- package/{dist/esm2020 → esm2020}/chart/model/enum/zoom-type.mjs +0 -0
- package/esm2020/chart/model/i-broadcast-message.mjs +2 -0
- package/{dist/esm2020 → esm2020}/chart/model/i-builder.mjs +0 -0
- package/{dist/esm2020 → esm2020}/chart/model/i-chart-config.mjs +1 -1
- package/{dist/esm2020 → esm2020}/chart/model/i-chart-event.mjs +0 -0
- package/{dist/esm2020 → esm2020}/chart/model/i-display-tooltip.mjs +0 -0
- package/{dist/esm2020 → esm2020}/chart/model/i-point-move.mjs +0 -0
- package/{dist/esm2020 → esm2020}/chart/model/marker-options.mjs +0 -0
- package/esm2020/chart/model/plot-band.mjs +17 -0
- package/esm2020/chart/model/plot-line.mjs +13 -0
- package/{dist/esm2020 → esm2020}/chart/model/public-api.mjs +3 -3
- package/{dist/esm2020 → esm2020}/chart/model/series.mjs +0 -0
- package/{dist/esm2020 → esm2020}/chart/model/svg-attributes.mjs +0 -0
- package/{dist/esm2020 → esm2020}/chart/model/tooltip-options.mjs +0 -0
- package/esm2020/chart/service/broadcast.service.mjs +23 -0
- package/esm2020/chart/service/brush.service.mjs +70 -0
- package/esm2020/chart/service/chart.service.mjs +95 -0
- package/esm2020/chart/service/scale.service.mjs +152 -0
- package/esm2020/chart/service/zoom.service.mjs +114 -0
- package/esm2020/public-api.mjs +9 -0
- package/{dist/esm2020 → esm2020}/tetacom-svg-charts.mjs +0 -0
- package/fesm2015/tetacom-svg-charts.mjs +1912 -0
- package/fesm2015/tetacom-svg-charts.mjs.map +1 -0
- package/fesm2020/tetacom-svg-charts.mjs +1887 -0
- package/fesm2020/tetacom-svg-charts.mjs.map +1 -0
- package/package.json +22 -2
- package/{dist/public-api.d.ts → public-api.d.ts} +0 -0
- package/{dist/tetacom-svg-charts.d.ts → tetacom-svg-charts.d.ts} +0 -0
- package/dist/README.md +0 -24
- package/dist/chart/chart-container/chart-container.component.d.ts +0 -42
- package/dist/chart/chart-container/gridlines/gridlines.component.d.ts +0 -23
- package/dist/chart/chart-container/x-axis/x-axis.component.d.ts +0 -23
- package/dist/chart/chart-container/y-axis/y-axis.component.d.ts +0 -24
- package/dist/chart/model/axis-options.d.ts +0 -17
- package/dist/chart/model/enum/axis-type.d.ts +0 -7
- package/dist/chart/model/i-broadcast-message.d.ts +0 -5
- package/dist/chart/service/axes.service.d.ts +0 -11
- package/dist/chart/service/scale.service.d.ts +0 -14
- package/dist/esm2020/chart/base/series-base.component.mjs +0 -34
- package/dist/esm2020/chart/chart/chart.component.mjs +0 -73
- package/dist/esm2020/chart/chart-container/chart-container.component.mjs +0 -151
- package/dist/esm2020/chart/chart-container/gridlines/gridlines.component.mjs +0 -41
- package/dist/esm2020/chart/chart-container/plotband/plotband.component.mjs +0 -139
- package/dist/esm2020/chart/chart-container/plotline/plotline.component.mjs +0 -79
- package/dist/esm2020/chart/chart-container/series/bar/bar-series.component.mjs +0 -48
- package/dist/esm2020/chart/chart-container/series/line/line-series.component.mjs +0 -148
- package/dist/esm2020/chart/chart-container/series-host/series-host.component.mjs +0 -59
- package/dist/esm2020/chart/chart-container/tooltip/tooltip.component.mjs +0 -81
- package/dist/esm2020/chart/chart-container/x-axis/x-axis.component.mjs +0 -56
- package/dist/esm2020/chart/chart-container/y-axis/y-axis.component.mjs +0 -63
- package/dist/esm2020/chart/core/axis/axis.mjs +0 -96
- package/dist/esm2020/chart/core/axis/builders/extremes-builder.mjs +0 -32
- package/dist/esm2020/chart/directives/zoomable.directive.mjs +0 -37
- package/dist/esm2020/chart/legend/legend.component.mjs +0 -30
- package/dist/esm2020/chart/model/axis-options.mjs +0 -2
- package/dist/esm2020/chart/model/enum/axis-type.mjs +0 -9
- package/dist/esm2020/chart/model/i-broadcast-message.mjs +0 -2
- package/dist/esm2020/chart/model/plotband.mjs +0 -16
- package/dist/esm2020/chart/model/plotline.mjs +0 -12
- package/dist/esm2020/chart/service/axes.service.mjs +0 -29
- package/dist/esm2020/chart/service/broadcast.service.mjs +0 -25
- package/dist/esm2020/chart/service/brush.service.mjs +0 -67
- package/dist/esm2020/chart/service/chart.service.mjs +0 -76
- package/dist/esm2020/chart/service/scale.service.mjs +0 -64
- package/dist/esm2020/chart/service/zoom.service.mjs +0 -117
- package/dist/esm2020/public-api.mjs +0 -8
- package/dist/fesm2015/tetacom-svg-charts.mjs +0 -1617
- package/dist/fesm2015/tetacom-svg-charts.mjs.map +0 -1
- package/dist/fesm2020/tetacom-svg-charts.mjs +0 -1603
- package/dist/fesm2020/tetacom-svg-charts.mjs.map +0 -1
- package/dist/package.json +0 -35
- package/karma.conf.js +0 -44
- package/ng-package.json +0 -7
- package/src/chart/Chart.stories.ts +0 -397
- package/src/chart/base/series-base.component.ts +0 -41
- package/src/chart/chart/chart.component.html +0 -5
- package/src/chart/chart/chart.component.scss +0 -6
- package/src/chart/chart/chart.component.spec.ts +0 -25
- package/src/chart/chart/chart.component.ts +0 -97
- package/src/chart/chart-container/chart-container.component.html +0 -78
- package/src/chart/chart-container/chart-container.component.scss +0 -15
- package/src/chart/chart-container/chart-container.component.spec.ts +0 -25
- package/src/chart/chart-container/chart-container.component.ts +0 -242
- package/src/chart/chart-container/gridlines/gridlines.component.html +0 -7
- package/src/chart/chart-container/gridlines/gridlines.component.scss +0 -8
- package/src/chart/chart-container/gridlines/gridlines.component.spec.ts +0 -25
- package/src/chart/chart-container/gridlines/gridlines.component.ts +0 -55
- package/src/chart/chart-container/plotband/plotband.component.html +0 -58
- package/src/chart/chart-container/plotband/plotband.component.scss +0 -13
- package/src/chart/chart-container/plotband/plotband.component.spec.ts +0 -25
- package/src/chart/chart-container/plotband/plotband.component.ts +0 -206
- package/src/chart/chart-container/plotline/plotline.component.html +0 -22
- package/src/chart/chart-container/plotline/plotline.component.scss +0 -6
- package/src/chart/chart-container/plotline/plotline.component.spec.ts +0 -25
- package/src/chart/chart-container/plotline/plotline.component.ts +0 -113
- package/src/chart/chart-container/series/bar/bar-series.component.html +0 -3
- package/src/chart/chart-container/series/bar/bar-series.component.scss +0 -0
- package/src/chart/chart-container/series/bar/bar-series.component.ts +0 -71
- package/src/chart/chart-container/series/line/line-series.component.html +0 -38
- package/src/chart/chart-container/series/line/line-series.component.scss +0 -9
- package/src/chart/chart-container/series/line/line-series.component.spec.ts +0 -25
- package/src/chart/chart-container/series/line/line-series.component.ts +0 -245
- package/src/chart/chart-container/series-host/series-host.component.ts +0 -80
- package/src/chart/chart-container/tooltip/tooltip.component.html +0 -14
- package/src/chart/chart-container/tooltip/tooltip.component.scss +0 -7
- package/src/chart/chart-container/tooltip/tooltip.component.spec.ts +0 -25
- package/src/chart/chart-container/tooltip/tooltip.component.ts +0 -134
- package/src/chart/chart-container/x-axis/x-axis.component.html +0 -1
- package/src/chart/chart-container/x-axis/x-axis.component.scss +0 -3
- package/src/chart/chart-container/x-axis/x-axis.component.spec.ts +0 -25
- package/src/chart/chart-container/x-axis/x-axis.component.ts +0 -80
- package/src/chart/chart-container/y-axis/y-axis.component.html +0 -4
- package/src/chart/chart-container/y-axis/y-axis.component.scss +0 -13
- package/src/chart/chart-container/y-axis/y-axis.component.spec.ts +0 -25
- package/src/chart/chart-container/y-axis/y-axis.component.ts +0 -90
- package/src/chart/chart.module.ts +0 -40
- package/src/chart/core/axis/axis.ts +0 -132
- package/src/chart/core/axis/builders/axis-size-builder.ts +0 -37
- package/src/chart/core/axis/builders/extremes-builder.ts +0 -45
- package/src/chart/core/axis/builders/public-api.ts +0 -2
- package/src/chart/core/utils/generate-ticks.ts +0 -14
- package/src/chart/core/utils/get-text-width.ts +0 -10
- package/src/chart/core/utils/public-api.ts +0 -2
- package/src/chart/default/default-chart-config.ts +0 -12
- package/src/chart/directives/brushable.directive.ts +0 -30
- package/src/chart/directives/zoomable.directive.ts +0 -31
- package/src/chart/legend/legend.component.html +0 -6
- package/src/chart/legend/legend.component.scss +0 -20
- package/src/chart/legend/legend.component.spec.ts +0 -25
- package/src/chart/legend/legend.component.ts +0 -35
- package/src/chart/model/axis-options.ts +0 -18
- package/src/chart/model/base-point.ts +0 -10
- package/src/chart/model/chart-bounds.ts +0 -18
- package/src/chart/model/enum/axis-orientation.ts +0 -4
- package/src/chart/model/enum/axis-type.ts +0 -7
- package/src/chart/model/enum/brush-type.ts +0 -5
- package/src/chart/model/enum/drag-point-type.ts +0 -5
- package/src/chart/model/enum/public-api.ts +0 -7
- package/src/chart/model/enum/series-type.ts +0 -4
- package/src/chart/model/enum/tooltip-tracking.ts +0 -4
- package/src/chart/model/enum/zoom-type.ts +0 -5
- package/src/chart/model/i-broadcast-message.ts +0 -5
- package/src/chart/model/i-builder.ts +0 -3
- package/src/chart/model/i-chart-config.ts +0 -33
- package/src/chart/model/i-chart-event.ts +0 -4
- package/src/chart/model/i-display-tooltip.ts +0 -7
- package/src/chart/model/i-drag-event.ts +0 -5
- package/src/chart/model/i-point-move.ts +0 -7
- package/src/chart/model/marker-options.ts +0 -8
- package/src/chart/model/plotband.ts +0 -45
- package/src/chart/model/plotline.ts +0 -29
- package/src/chart/model/public-api.ts +0 -14
- package/src/chart/model/series.ts +0 -18
- package/src/chart/model/svg-attributes.ts +0 -14
- package/src/chart/model/tooltip-options.ts +0 -37
- package/src/chart/service/axes.service.spec.ts +0 -16
- package/src/chart/service/axes.service.ts +0 -27
- package/src/chart/service/broadcast.service.spec.ts +0 -16
- package/src/chart/service/broadcast.service.ts +0 -24
- package/src/chart/service/brush.service.spec.ts +0 -16
- package/src/chart/service/brush.service.ts +0 -87
- package/src/chart/service/chart.service.spec.ts +0 -16
- package/src/chart/service/chart.service.ts +0 -100
- package/src/chart/service/scale.service.spec.ts +0 -16
- package/src/chart/service/scale.service.ts +0 -74
- package/src/chart/service/zoom.service.spec.ts +0 -16
- package/src/chart/service/zoom.service.ts +0 -153
- package/src/public-api.ts +0 -8
- package/src/test.ts +0 -27
- package/tsconfig.lib.json +0 -15
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -17
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
|
|
2
|
-
import { AxisOrientation } from '../../model/enum/axis-orientation';
|
|
3
|
-
import * as d3 from 'd3';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../../service/zoom.service";
|
|
6
|
-
import * as i2 from "../../service/scale.service";
|
|
7
|
-
import * as i3 from "../../service/chart.service";
|
|
8
|
-
export class PlotlineComponent {
|
|
9
|
-
constructor(cdr, zoomService, scaleService, chartService, element) {
|
|
10
|
-
this.cdr = cdr;
|
|
11
|
-
this.zoomService = zoomService;
|
|
12
|
-
this.scaleService = scaleService;
|
|
13
|
-
this.chartService = chartService;
|
|
14
|
-
this.element = element;
|
|
15
|
-
this.orientation = AxisOrientation;
|
|
16
|
-
this.zoomService.zoomed.subscribe(() => {
|
|
17
|
-
this.scale = this.scaleService[this.axis.orientation === AxisOrientation.x ? 'xScales' : 'yScales'].get(this.axis.index);
|
|
18
|
-
this.cdr.detectChanges();
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
ngOnInit() {
|
|
22
|
-
this.scale = this.scaleService[this.axis.orientation === AxisOrientation.x ? 'xScales' : 'yScales'].get(this.axis.index);
|
|
23
|
-
this.domain = this.scale.domain();
|
|
24
|
-
const plotlineElement = d3
|
|
25
|
-
.select(this.element.nativeElement)
|
|
26
|
-
.select('.plotline');
|
|
27
|
-
const grabElement = d3
|
|
28
|
-
.select(this.element.nativeElement)
|
|
29
|
-
.selectAll('.grabber');
|
|
30
|
-
const drag = d3
|
|
31
|
-
.drag()
|
|
32
|
-
.subject(() => {
|
|
33
|
-
if (this.axis.orientation === AxisOrientation.y) {
|
|
34
|
-
return { y: plotlineElement.attr('y1') };
|
|
35
|
-
}
|
|
36
|
-
if (this.axis.orientation === AxisOrientation.x) {
|
|
37
|
-
return { x: plotlineElement.attr('x1') };
|
|
38
|
-
}
|
|
39
|
-
})
|
|
40
|
-
.on('start drag end', (event, d) => {
|
|
41
|
-
d.value = this.scale.invert(event[AxisOrientation[this.axis.orientation]]);
|
|
42
|
-
this.emit({
|
|
43
|
-
event,
|
|
44
|
-
target: d,
|
|
45
|
-
});
|
|
46
|
-
this.cdr.detectChanges();
|
|
47
|
-
});
|
|
48
|
-
plotlineElement.datum(this.plotline);
|
|
49
|
-
grabElement.datum(this.plotline);
|
|
50
|
-
if (this.plotline.draggable) {
|
|
51
|
-
grabElement.call(drag);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
emit(event) {
|
|
55
|
-
this.chartService.emitPlotline(event);
|
|
56
|
-
}
|
|
57
|
-
get value() {
|
|
58
|
-
return this.scale(this.plotline.value);
|
|
59
|
-
}
|
|
60
|
-
get height() {
|
|
61
|
-
return this.size.height;
|
|
62
|
-
}
|
|
63
|
-
get width() {
|
|
64
|
-
return this.size.width;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
PlotlineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: PlotlineComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ZoomService }, { token: i2.ScaleService }, { token: i3.ChartService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
68
|
-
PlotlineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: PlotlineComponent, selector: "[teta-plot-line]", inputs: { plotline: "plotline", size: "size", axis: "axis" }, ngImport: i0, template: "<svg:line class=\"plotline\"\n [attr.stroke]=\"plotline.style?.stroke || 'red'\"\n [attr.stroke-width]=\"plotline.style?.strokeWidth || 4\"\n [attr.stroke-dasharray]=\"plotline.style?.strokeDasharray\"\n [attr.x1]=\"axis.orientation === orientation.x ? value : 0\"\n [attr.x2]=\"axis.orientation === orientation.x ? value : width\"\n [attr.y1]=\"axis.orientation === orientation.x ? 0 : value\"\n [attr.y2]=\"axis.orientation === orientation.x ? height : value\">\n</svg:line>\n\n<svg:line class=\"grabber\"\n\n [class.x-grabber]=\"axis.orientation === orientation.x\"\n [class.y-grabber]=\"axis.orientation === orientation.y\"\n [attr.stroke]=\"'red'\"\n [attr.stroke-width]=\"8\"\n opacity=\"0\"\n [attr.x1]=\"axis.orientation === orientation.x ? value : 0\"\n [attr.x2]=\"axis.orientation === orientation.x ? value : width\"\n [attr.y1]=\"axis.orientation === orientation.x ? 0 : value\"\n [attr.y2]=\"axis.orientation === orientation.x ? height : value\">\n</svg:line>\n", styles: [":host .x-grabber{cursor:col-resize}:host .y-grabber{cursor:row-resize}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: PlotlineComponent, decorators: [{
|
|
70
|
-
type: Component,
|
|
71
|
-
args: [{ selector: '[teta-plot-line]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg:line class=\"plotline\"\n [attr.stroke]=\"plotline.style?.stroke || 'red'\"\n [attr.stroke-width]=\"plotline.style?.strokeWidth || 4\"\n [attr.stroke-dasharray]=\"plotline.style?.strokeDasharray\"\n [attr.x1]=\"axis.orientation === orientation.x ? value : 0\"\n [attr.x2]=\"axis.orientation === orientation.x ? value : width\"\n [attr.y1]=\"axis.orientation === orientation.x ? 0 : value\"\n [attr.y2]=\"axis.orientation === orientation.x ? height : value\">\n</svg:line>\n\n<svg:line class=\"grabber\"\n\n [class.x-grabber]=\"axis.orientation === orientation.x\"\n [class.y-grabber]=\"axis.orientation === orientation.y\"\n [attr.stroke]=\"'red'\"\n [attr.stroke-width]=\"8\"\n opacity=\"0\"\n [attr.x1]=\"axis.orientation === orientation.x ? value : 0\"\n [attr.x2]=\"axis.orientation === orientation.x ? value : width\"\n [attr.y1]=\"axis.orientation === orientation.x ? 0 : value\"\n [attr.y2]=\"axis.orientation === orientation.x ? height : value\">\n</svg:line>\n", styles: [":host .x-grabber{cursor:col-resize}:host .y-grabber{cursor:row-resize}\n"] }]
|
|
72
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.ZoomService }, { type: i2.ScaleService }, { type: i3.ChartService }, { type: i0.ElementRef }]; }, propDecorators: { plotline: [{
|
|
73
|
-
type: Input
|
|
74
|
-
}], size: [{
|
|
75
|
-
type: Input
|
|
76
|
-
}], axis: [{
|
|
77
|
-
type: Input
|
|
78
|
-
}] } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvdGxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9wbG90bGluZS9wbG90bGluZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL3Bsb3RsaW5lL3Bsb3RsaW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHcEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7Ozs7O0FBV3pCLE1BQU0sT0FBTyxpQkFBaUI7SUFTNUIsWUFDVSxHQUFzQixFQUN0QixXQUF3QixFQUN4QixZQUEwQixFQUMxQixZQUEwQixFQUMxQixPQUFtQjtRQUpuQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBVjdCLGdCQUFXLEdBQUcsZUFBZSxDQUFDO1FBWTVCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDckMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDcEUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMs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UUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGxvdExpbmUgfSBmcm9tICcuLi8uLi9tb2RlbC9wbG90bGluZSc7XG5pbXBvcnQgeyBBeGlzIH0gZnJvbSAnLi4vLi4vY29yZS9heGlzL2F4aXMnO1xuaW1wb3J0IHsgQXhpc09yaWVudGF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWwvZW51bS9heGlzLW9yaWVudGF0aW9uJztcbmltcG9ydCB7IFpvb21TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NhbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCB7IElDaGFydEV2ZW50IH0gZnJvbSAnLi4vLi4vbW9kZWwvaS1jaGFydC1ldmVudCc7XG5pbXBvcnQgeyBQbG90YmFuZCB9IGZyb20gJy4uLy4uL21vZGVsL3Bsb3RiYW5kJztcbmltcG9ydCB7IENoYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvY2hhcnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1t0ZXRhLXBsb3QtbGluZV0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGxvdGxpbmUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wbG90bGluZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUGxvdGxpbmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwbG90bGluZTogUGxvdExpbmU7XG4gIEBJbnB1dCgpIHNpemU6IERPTVJlY3Q7XG4gIEBJbnB1dCgpIGF4aXM6IEF4aXM7XG4gIG9yaWVudGF0aW9uID0gQXhpc09yaWVudGF0aW9uO1xuXG4gIHByaXZhdGUgc2NhbGU6IGFueTtcbiAgcHJpdmF0ZSBkb21haW46IG51bWJlcltdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcml2YXRlIHNjYWxlU2VydmljZTogU2NhbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhcnRTZXJ2aWNlOiBDaGFydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmXG4gICkge1xuICAgIHRoaXMuem9vbVNlcnZpY2Uuem9vbWVkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnNjYWxlID0gdGhpcy5zY2FsZVNlcnZpY2VbXG4gICAgICAgIHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnggPyAneFNjYWxlcycgOiAneVNjYWxlcydcbiAgICAgIF0uZ2V0KHRoaXMuYXhpcy5pbmRleCk7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNjYWxlID0gdGhpcy5zY2FsZVNlcnZpY2VbXG4gICAgICB0aGlzLmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi54ID8gJ3hTY2FsZXMnIDogJ3lTY2FsZXMnXG4gICAgXS5nZXQodGhpcy5heGlzLmluZGV4KTtcblxuICAgIHRoaXMuZG9tYWluID0gdGhpcy5zY2FsZS5kb21haW4oKTtcblxuICAgIGNvbnN0IHBsb3RsaW5lRWxlbWVudCA9IGQzXG4gICAgICAuc2VsZWN0KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KVxuICAgICAgLnNlbGVjdCgnLnBsb3RsaW5lJyk7XG5cbiAgICBjb25zdCBncmFiRWxlbWVudCA9IGQzXG4gICAgICAuc2VsZWN0KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KVxuICAgICAgLnNlbGVjdEFsbCgnLmdyYWJiZXInKTtcblxuICAgIGNvbnN0IGRyYWcgPSBkM1xuICAgICAgLmRyYWcoKVxuICAgICAgLnN1YmplY3QoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueSkge1xuICAgICAgICAgIHJldHVybiB7IHk6IHBsb3RsaW5lRWxlbWVudC5hdHRyKCd5MScpIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLngpIHtcbiAgICAgICAgICByZXR1cm4geyB4OiBwbG90bGluZUVsZW1lbnQuYXR0cigneDEnKSB9O1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLm9uKFxuICAgICAgICAnc3RhcnQgZHJhZyBlbmQnLFxuICAgICAgICAoZXZlbnQ6IGQzLkQzRHJhZ0V2ZW50PGFueSwgUGxvdExpbmUsIGFueT4sIGQ6IFBsb3RMaW5lKSA9PiB7XG4gICAgICAgICAgZC52YWx1ZSA9IHRoaXMuc2NhbGUuaW52ZXJ0KFxuICAgICAgICAgICAgZXZlbnRbQXhpc09yaWVudGF0aW9uW3RoaXMuYXhpcy5vcmllbnRhdGlvbl1dXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHRoaXMuZW1pdCh7XG4gICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgIHRhcmdldDogZCxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgIHBsb3RsaW5lRWxlbWVudC5kYXR1bTxQbG90TGluZT4odGhpcy5wbG90bGluZSk7XG4gICAgZ3JhYkVsZW1lbnQuZGF0dW08UGxvdExpbmU+KHRoaXMucGxvdGxpbmUpO1xuXG4gICAgaWYgKHRoaXMucGxvdGxpbmUuZHJhZ2dhYmxlKSB7XG4gICAgICBncmFiRWxlbWVudC5jYWxsKGRyYWcpO1xuICAgIH1cbiAgfVxuXG4gIGVtaXQoZXZlbnQ6IElDaGFydEV2ZW50PFBsb3RMaW5lPikge1xuICAgIHRoaXMuY2hhcnRTZXJ2aWNlLmVtaXRQbG90bGluZShldmVudCk7XG4gIH1cblxuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2NhbGUodGhpcy5wbG90bGluZS52YWx1ZSk7XG4gIH1cblxuICBnZXQgaGVpZ2h0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc2l6ZS5oZWlnaHQ7XG4gIH1cblxuICBnZXQgd2lkdGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zaXplLndpZHRoO1xuICB9XG59XG4iLCI8c3ZnOmxpbmUgY2xhc3M9XCJwbG90bGluZVwiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInBsb3RsaW5lLnN0eWxlPy5zdHJva2UgfHwgJ3JlZCdcIlxuICAgICAgICAgIFthdHRyLnN0cm9rZS13aWR0aF09XCJwbG90bGluZS5zdHlsZT8uc3Ryb2tlV2lkdGggfHwgNFwiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlLWRhc2hhcnJheV09XCJwbG90bGluZS5zdHlsZT8uc3Ryb2tlRGFzaGFycmF5XCJcbiAgICAgICAgICBbYXR0ci54MV09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gdmFsdWUgOiAwXCJcbiAgICAgICAgICBbYXR0ci54Ml09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gdmFsdWUgOiB3aWR0aFwiXG4gICAgICAgICAgW2F0dHIueTFdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IDAgOiB2YWx1ZVwiXG4gICAgICAgICAgW2F0dHIueTJdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IGhlaWdodCA6IHZhbHVlXCI+XG48L3N2ZzpsaW5lPlxuXG48c3ZnOmxpbmUgY2xhc3M9XCJncmFiYmVyXCJcblxuICAgICAgICAgIFtjbGFzcy54LWdyYWJiZXJdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueFwiXG4gICAgICAgICAgW2NsYXNzLnktZ3JhYmJlcl09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi55XCJcbiAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiJ3JlZCdcIlxuICAgICAgICAgIFthdHRyLnN0cm9rZS13aWR0aF09XCI4XCJcbiAgICAgICAgICBvcGFjaXR5PVwiMFwiXG4gICAgICAgICAgW2F0dHIueDFdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IHZhbHVlIDogMFwiXG4gICAgICAgICAgW2F0dHIueDJdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IHZhbHVlIDogd2lkdGhcIlxuICAgICAgICAgIFthdHRyLnkxXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyAwIDogdmFsdWVcIlxuICAgICAgICAgIFthdHRyLnkyXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyBoZWlnaHQgOiB2YWx1ZVwiPlxuPC9zdmc6bGluZT5cbiJdfQ==
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, } from '@angular/core';
|
|
2
|
-
import * as d3 from 'd3';
|
|
3
|
-
import { SeriesBaseComponent } from '../../../base/series-base.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../../../service/chart.service";
|
|
6
|
-
import * as i2 from "../../../service/scale.service";
|
|
7
|
-
import * as i3 from "../../../service/zoom.service";
|
|
8
|
-
import * as i4 from "@angular/common";
|
|
9
|
-
export class BarSeriesComponent extends SeriesBaseComponent {
|
|
10
|
-
constructor(svc, cdr, scaleService, zoomService, element) {
|
|
11
|
-
super(svc, cdr, scaleService, zoomService, element);
|
|
12
|
-
this.svc = svc;
|
|
13
|
-
this.cdr = cdr;
|
|
14
|
-
this.scaleService = scaleService;
|
|
15
|
-
this.zoomService = zoomService;
|
|
16
|
-
this.element = element;
|
|
17
|
-
}
|
|
18
|
-
ngOnInit() {
|
|
19
|
-
const x = this.scaleService.xScales.get(this.series.xAxisIndex);
|
|
20
|
-
const y = this.scaleService.yScales.get(this.series.yAxisIndex);
|
|
21
|
-
const domain = this.series.data?.map((_) => _.x);
|
|
22
|
-
const range = [x(domain[0]), x(domain[domain?.length - 1])];
|
|
23
|
-
this.scaleBand = d3.scaleBand().domain(domain).range(range);
|
|
24
|
-
this.y = y;
|
|
25
|
-
}
|
|
26
|
-
width() {
|
|
27
|
-
return this.scaleBand.bandwidth();
|
|
28
|
-
}
|
|
29
|
-
height(point) {
|
|
30
|
-
return Math.abs(this.y(0) - this.y(point.y));
|
|
31
|
-
}
|
|
32
|
-
getX(point) {
|
|
33
|
-
return this.scaleBand(point.x);
|
|
34
|
-
}
|
|
35
|
-
getY(point) {
|
|
36
|
-
return this.y(point.y);
|
|
37
|
-
}
|
|
38
|
-
ngOnChanges(changes) {
|
|
39
|
-
console.log(changes);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
BarSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BarSeriesComponent, deps: [{ token: i1.ChartService }, { token: i0.ChangeDetectorRef }, { token: i2.ScaleService }, { token: i3.ZoomService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
-
BarSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: BarSeriesComponent, selector: "svg:svg[teta-bar-series]", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg:rect *ngFor=\"let point of series.data\" [attr.y]=\"getY(point)\" [attr.x]=\"getX(point)\" [attr.width]=\"width()\"\n [attr.height]=\"height(point)\"\n [attr.fill]=\"point.color\"></svg:rect>\n", styles: [""], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BarSeriesComponent, decorators: [{
|
|
45
|
-
type: Component,
|
|
46
|
-
args: [{ selector: 'svg:svg[teta-bar-series]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg:rect *ngFor=\"let point of series.data\" [attr.y]=\"getY(point)\" [attr.x]=\"getX(point)\" [attr.width]=\"width()\"\n [attr.height]=\"height(point)\"\n [attr.fill]=\"point.color\"></svg:rect>\n", styles: [""] }]
|
|
47
|
-
}], ctorParameters: function () { return [{ type: i1.ChartService }, { type: i0.ChangeDetectorRef }, { type: i2.ScaleService }, { type: i3.ZoomService }, { type: i0.ElementRef }]; } });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLXNlcmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL3Nlcmllcy9iYXIvYmFyLXNlcmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL3Nlcmllcy9iYXIvYmFyLXNlcmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsR0FLVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7O0FBWTFFLE1BQU0sT0FBTyxrQkFDWCxTQUFRLG1CQUFzQjtJQU05QixZQUNxQixHQUFpQixFQUNqQixHQUFzQixFQUN0QixZQUEwQixFQUMxQixXQUF3QixFQUN4QixPQUFtQjtRQUV0QyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBTmpDLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFDakIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtJQUd4QyxDQUFDO0lBRVEsUUFBUTtRQUNmLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFNUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwRSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQWdCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFnQjtRQUNuQixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QixDQUFDOzsrR0EvQ1Usa0JBQWtCO21HQUFsQixrQkFBa0IsNEdDdEIvQiwwTkFHQTsyRkRtQmEsa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XG5pbXBvcnQgeyBTZXJpZXNCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYmFzZS9zZXJpZXMtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFzZVBvaW50IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvYmFzZS1wb2ludCc7XG5pbXBvcnQgeyBDaGFydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NhbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFpvb21TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdmc6c3ZnW3RldGEtYmFyLXNlcmllc10nLFxuICB0ZW1wbGF0ZVVybDogJy4vYmFyLXNlcmllcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Jhci1zZXJpZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEJhclNlcmllc0NvbXBvbmVudDxUIGV4dGVuZHMgQmFzZVBvaW50PlxuICBleHRlbmRzIFNlcmllc0Jhc2VDb21wb25lbnQ8VD5cbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlc1xue1xuICBwcml2YXRlIHNjYWxlQmFuZDogZDMuU2NhbGVCYW5kPGFueT47XG4gIHByaXZhdGUgeTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzdmM6IENoYXJ0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2NhbGVTZXJ2aWNlOiBTY2FsZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZWxlbWVudDogRWxlbWVudFJlZlxuICApIHtcbiAgICBzdXBlcihzdmMsIGNkciwgc2NhbGVTZXJ2aWNlLCB6b29tU2VydmljZSwgZWxlbWVudCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCB4ID0gdGhpcy5zY2FsZVNlcnZpY2UueFNjYWxlcy5nZXQodGhpcy5zZXJpZXMueEF4aXNJbmRleCk7XG4gICAgY29uc3QgeSA9IHRoaXMuc2NhbGVTZXJ2aWNlLnlTY2FsZXMuZ2V0KHRoaXMuc2VyaWVzLnlBeGlzSW5kZXgpO1xuXG4gICAgY29uc3QgZG9tYWluID0gdGhpcy5zZXJpZXMuZGF0YT8ubWFwKChfOiBCYXNlUG9pbnQpID0+IF8ueCk7XG4gICAgY29uc3QgcmFuZ2UgPSBbeChkb21haW5bMF0pLCB4KGRvbWFpbltkb21haW4/Lmxlbmd0aCAtIDFdKV07XG5cbiAgICB0aGlzLnNjYWxlQmFuZCA9IGQzLnNjYWxlQmFuZDxudW1iZXI+KCkuZG9tYWluKGRvbWFpbikucmFuZ2UocmFuZ2UpO1xuXG4gICAgdGhpcy55ID0geTtcbiAgfVxuXG4gIHdpZHRoKCkge1xuICAgIHJldHVybiB0aGlzLnNjYWxlQmFuZC5iYW5kd2lkdGgoKTtcbiAgfVxuXG4gIGhlaWdodChwb2ludDogQmFzZVBvaW50KSB7XG4gICAgcmV0dXJuIE1hdGguYWJzKHRoaXMueSgwKSAtIHRoaXMueShwb2ludC55KSk7XG4gIH1cblxuICBnZXRYKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICByZXR1cm4gdGhpcy5zY2FsZUJhbmQocG9pbnQueCk7XG4gIH1cblxuICBnZXRZKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICByZXR1cm4gdGhpcy55KHBvaW50LnkpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnNvbGUubG9nKGNoYW5nZXMpO1xuICB9XG59XG4iLCI8c3ZnOnJlY3QgKm5nRm9yPVwibGV0IHBvaW50IG9mIHNlcmllcy5kYXRhXCIgW2F0dHIueV09XCJnZXRZKHBvaW50KVwiIFthdHRyLnhdPVwiZ2V0WChwb2ludClcIiBbYXR0ci53aWR0aF09XCJ3aWR0aCgpXCJcbiAgICAgICAgICBbYXR0ci5oZWlnaHRdPVwiaGVpZ2h0KHBvaW50KVwiXG4gICAgICAgICAgW2F0dHIuZmlsbF09XCJwb2ludC5jb2xvclwiPjwvc3ZnOnJlY3Q+XG4iXX0=
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, } from '@angular/core';
|
|
2
|
-
import * as d3 from 'd3';
|
|
3
|
-
import { SeriesBaseComponent } from '../../../base/series-base.component';
|
|
4
|
-
import { filter, map, tap } from 'rxjs';
|
|
5
|
-
import { TooltipTracking } from '../../../model/enum/tooltip-tracking';
|
|
6
|
-
import { DragPointType } from '../../../model/enum/drag-point-type';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../../../service/chart.service";
|
|
9
|
-
import * as i2 from "../../../service/scale.service";
|
|
10
|
-
import * as i3 from "../../../service/zoom.service";
|
|
11
|
-
import * as i4 from "@angular/common";
|
|
12
|
-
export class LineSeriesComponent extends SeriesBaseComponent {
|
|
13
|
-
constructor(svc, cdr, scaleService, zoomService, element) {
|
|
14
|
-
super(svc, cdr, scaleService, zoomService, element);
|
|
15
|
-
this.svc = svc;
|
|
16
|
-
this.cdr = cdr;
|
|
17
|
-
this.scaleService = scaleService;
|
|
18
|
-
this.zoomService = zoomService;
|
|
19
|
-
this.element = element;
|
|
20
|
-
}
|
|
21
|
-
ngOnInit() {
|
|
22
|
-
this.display = this.zoomService.zoomed.pipe(map(({ event }) => {
|
|
23
|
-
return event?.type === 'end' ? 1 : 0;
|
|
24
|
-
}));
|
|
25
|
-
this.transform = this.svc.pointerMove.pipe(filter(({ event }) => event), map(({ event }) => {
|
|
26
|
-
return this.getTransform(event);
|
|
27
|
-
}), tap((_) => this.cdr.detectChanges()));
|
|
28
|
-
}
|
|
29
|
-
ngAfterViewInit() {
|
|
30
|
-
const drag = (node, event, d) => {
|
|
31
|
-
if (d.marker?.dragType === DragPointType.x ||
|
|
32
|
-
d.marker?.dragType === DragPointType.xy) {
|
|
33
|
-
d.x = this.x.invert(event.x);
|
|
34
|
-
}
|
|
35
|
-
if (d.marker?.dragType === DragPointType.y ||
|
|
36
|
-
d.marker?.dragType === DragPointType.xy) {
|
|
37
|
-
d.y = this.y.invert(event.y);
|
|
38
|
-
}
|
|
39
|
-
this.svc.emitPoint({
|
|
40
|
-
target: {
|
|
41
|
-
series: this.series,
|
|
42
|
-
point: d,
|
|
43
|
-
},
|
|
44
|
-
event,
|
|
45
|
-
});
|
|
46
|
-
this.cdr.detectChanges();
|
|
47
|
-
};
|
|
48
|
-
const dragMarkers = d3
|
|
49
|
-
.drag()
|
|
50
|
-
.subject(function (event, d) {
|
|
51
|
-
const node = d3.select(this);
|
|
52
|
-
return { x: node.attr('cx'), y: node.attr('cy') };
|
|
53
|
-
})
|
|
54
|
-
.on('start drag end', function (event, d) {
|
|
55
|
-
const node = d3.select(this);
|
|
56
|
-
drag(node, event, d);
|
|
57
|
-
});
|
|
58
|
-
const draggableMarkers = this.series.data?.filter((_) => _?.marker && _?.marker?.draggable);
|
|
59
|
-
const element = d3
|
|
60
|
-
.select(this.element.nativeElement)
|
|
61
|
-
.selectAll('.draggable-marker')
|
|
62
|
-
.data(draggableMarkers);
|
|
63
|
-
element.call(dragMarkers);
|
|
64
|
-
this.svgElement = d3
|
|
65
|
-
.select(this.element.nativeElement)
|
|
66
|
-
.select('.line')
|
|
67
|
-
.node();
|
|
68
|
-
}
|
|
69
|
-
getPath() {
|
|
70
|
-
this.x = this.scaleService.xScales.get(this.series.xAxisIndex);
|
|
71
|
-
this.y = this.scaleService.yScales.get(this.series.yAxisIndex);
|
|
72
|
-
const line = d3
|
|
73
|
-
.line()
|
|
74
|
-
.defined((point) => point.x !== null || point.y !== null)
|
|
75
|
-
.x((point) => this.x(point.x))
|
|
76
|
-
.y((point) => this.y(point.y));
|
|
77
|
-
const path = line(this.series.data);
|
|
78
|
-
return path;
|
|
79
|
-
}
|
|
80
|
-
getMarkers() {
|
|
81
|
-
return this.series.data?.filter((_) => _?.marker);
|
|
82
|
-
}
|
|
83
|
-
getTransform(event) {
|
|
84
|
-
const mouse = d3.pointer(event);
|
|
85
|
-
const foundX = this.scaleService.xScales.get(this.series.xAxisIndex);
|
|
86
|
-
const foundY = this.scaleService.yScales.get(this.series.yAxisIndex);
|
|
87
|
-
const tooltipTracking = this.svc.config?.tooltip?.tracking;
|
|
88
|
-
const lineIntersection = (p0_x, p0_y, p1_x, p1_y, p2_x, p2_y, p3_x, p3_y) => {
|
|
89
|
-
const rV = {};
|
|
90
|
-
let s1_x, s1_y, s2_x, s2_y;
|
|
91
|
-
s1_x = p1_x - p0_x;
|
|
92
|
-
s1_y = p1_y - p0_y;
|
|
93
|
-
s2_x = p3_x - p2_x;
|
|
94
|
-
s2_y = p3_y - p2_y;
|
|
95
|
-
let s, t;
|
|
96
|
-
s =
|
|
97
|
-
(-s1_y * (p0_x - p2_x) + s1_x * (p0_y - p2_y)) /
|
|
98
|
-
(-s2_x * s1_y + s1_x * s2_y);
|
|
99
|
-
t =
|
|
100
|
-
(s2_x * (p0_y - p2_y) - s2_y * (p0_x - p2_x)) /
|
|
101
|
-
(-s2_x * s1_y + s1_x * s2_y);
|
|
102
|
-
if (s >= 0 && s <= 1 && t >= 0 && t <= 1) {
|
|
103
|
-
// Collision detected
|
|
104
|
-
rV.x = p0_x + t * s1_x;
|
|
105
|
-
rV.y = p0_y + t * s1_y;
|
|
106
|
-
}
|
|
107
|
-
return rV;
|
|
108
|
-
};
|
|
109
|
-
if (tooltipTracking === TooltipTracking.x) {
|
|
110
|
-
const bisect = d3.bisector((_) => _.x).right;
|
|
111
|
-
const x0 = foundX.invert(mouse[0]);
|
|
112
|
-
const rightId = bisect(this.series.data, x0);
|
|
113
|
-
const range = foundY.range();
|
|
114
|
-
const intersect = lineIntersection(mouse[0], range[0], mouse[0], range[1], foundX(this.series.data[rightId - 1]?.x), foundY(this.series.data[rightId - 1]?.y), foundX(this.series.data[rightId]?.x), foundY(this.series.data[rightId]?.y));
|
|
115
|
-
console.log(intersect);
|
|
116
|
-
this.svc.setTooltip({
|
|
117
|
-
point: { x: foundX.invert(intersect.x), y: foundY.invert(intersect.y) },
|
|
118
|
-
series: this.series,
|
|
119
|
-
});
|
|
120
|
-
return {
|
|
121
|
-
x: intersect.x,
|
|
122
|
-
y: intersect.y,
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
if (tooltipTracking === TooltipTracking.y) {
|
|
126
|
-
const bisect = d3.bisector((_) => _.y).right;
|
|
127
|
-
const y0 = foundY.invert(mouse[1]);
|
|
128
|
-
const rightId = bisect(this.series.data, y0);
|
|
129
|
-
const range = foundX.range();
|
|
130
|
-
const intersect = lineIntersection(range[0], mouse[1], range[1], mouse[1], foundX(this.series.data[rightId - 1]?.x), foundY(this.series.data[rightId - 1]?.y), foundX(this.series.data[rightId]?.x), foundY(this.series.data[rightId]?.y));
|
|
131
|
-
this.svc.setTooltip({
|
|
132
|
-
point: { x: foundX.invert(intersect.x), y: foundY.invert(intersect.y) },
|
|
133
|
-
series: this.series,
|
|
134
|
-
});
|
|
135
|
-
return {
|
|
136
|
-
x: intersect.x,
|
|
137
|
-
y: intersect.y,
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
LineSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LineSeriesComponent, deps: [{ token: i1.ChartService }, { token: i0.ChangeDetectorRef }, { token: i2.ScaleService }, { token: i3.ZoomService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
143
|
-
LineSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: LineSeriesComponent, selector: "svg:svg[teta-line-series]", usesInheritance: true, ngImport: i0, template: "<svg:path\n class=\"line\"\n [attr.d]=\"getPath()\"\n [attr.stroke]=\"series.color\"\n [attr.stroke-width]=\"series.style?.strokeWidth\"\n fill=\"none\">\n</svg:path>\n\n<ng-container *ngIf=\"transform | async as t\">\n <svg:circle\n r=\"3\"\n [attr.fill]=\"series.color\"\n [attr.transform]=\"'translate('+ t.x +', '+ t.y +')'\"\n [attr.opacity]=\"display | async\">\n </svg:circle>\n</ng-container>\n\n<ng-container *ngIf=\"getMarkers() as markers\">\n\n <svg:circle\n class=\"marker\"\n *ngFor=\"let point of markers\"\n [class.draggable-marker]=\"point?.marker?.draggable\"\n [attr.r]=\"point.marker.style?.radius ?? 5\"\n [attr.fill]=\"point.marker.style?.fill ?? 'transparent'\"\n [attr.stroke]=\"point.marker.style?.stroke ?? 'none'\"\n [attr.stroke-width]=\"point.marker.style?.strokeWidth\"\n [attr.stroke-dasharray]=\"point.marker.style?.strokeDasharray\"\n [attr.cx]=\"x(point.x)\"\n [attr.cy]=\"y(point.y)\"\n >\n </svg:circle>\n\n\n</ng-container>\n\n\n\n", styles: [".draggable-marker{cursor:move}.active{stroke-opacity:.5}.marker-grab{opacity:0}\n"], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i4.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
144
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LineSeriesComponent, decorators: [{
|
|
145
|
-
type: Component,
|
|
146
|
-
args: [{ selector: 'svg:svg[teta-line-series]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg:path\n class=\"line\"\n [attr.d]=\"getPath()\"\n [attr.stroke]=\"series.color\"\n [attr.stroke-width]=\"series.style?.strokeWidth\"\n fill=\"none\">\n</svg:path>\n\n<ng-container *ngIf=\"transform | async as t\">\n <svg:circle\n r=\"3\"\n [attr.fill]=\"series.color\"\n [attr.transform]=\"'translate('+ t.x +', '+ t.y +')'\"\n [attr.opacity]=\"display | async\">\n </svg:circle>\n</ng-container>\n\n<ng-container *ngIf=\"getMarkers() as markers\">\n\n <svg:circle\n class=\"marker\"\n *ngFor=\"let point of markers\"\n [class.draggable-marker]=\"point?.marker?.draggable\"\n [attr.r]=\"point.marker.style?.radius ?? 5\"\n [attr.fill]=\"point.marker.style?.fill ?? 'transparent'\"\n [attr.stroke]=\"point.marker.style?.stroke ?? 'none'\"\n [attr.stroke-width]=\"point.marker.style?.strokeWidth\"\n [attr.stroke-dasharray]=\"point.marker.style?.strokeDasharray\"\n [attr.cx]=\"x(point.x)\"\n [attr.cy]=\"y(point.y)\"\n >\n </svg:circle>\n\n\n</ng-container>\n\n\n\n", styles: [".draggable-marker{cursor:move}.active{stroke-opacity:.5}.marker-grab{opacity:0}\n"] }]
|
|
147
|
-
}], ctorParameters: function () { return [{ type: i1.ChartService }, { type: i0.ChangeDetectorRef }, { type: i2.ScaleService }, { type: i3.ZoomService }, { type: i0.ElementRef }]; } });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1zZXJpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvbGluZS9saW5lLXNlcmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL3Nlcmllcy9saW5lL2xpbmUtc2VyaWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBSTFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7QUFRcEUsTUFBTSxPQUFPLG1CQUNYLFNBQVEsbUJBQXNCO0lBVTlCLFlBQ3FCLEdBQWlCLEVBQ2pCLEdBQXNCLEVBQ3RCLFlBQTBCLEVBQzFCLFdBQXdCLEVBQ3hCLE9BQW1CO1FBRXRDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFOakMsUUFBRyxHQUFILEdBQUcsQ0FBYztRQUNqQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixZQUFPLEdBQVAsT0FBTyxDQUFZO0lBR3hDLENBQUM7SUFFUSxRQUFRO1FBQ2YsSUFBSSxDQUFDLE9BQU8sR0FB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O2FBQ2YsQ0FBQztTQUNIO0lBQ0gsQ0FBQzs7Z0hBMU5VLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHdGQ3pCaEMsd2hDQXNDQTsyRkRiYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsMkJBQTJCLG1CQUdwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XG5pbXBvcnQgeyBTZXJpZXNCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYmFzZS9zZXJpZXMtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VQb2ludCB9IGZyb20gJy4uLy4uLy4uL21vZGVsL2Jhc2UtcG9pbnQnO1xuaW1wb3J0IHsgU2NhbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgWm9vbVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3pvb20uc2VydmljZSc7XG5pbXBvcnQgeyBUb29sdGlwVHJhY2tpbmcgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lbnVtL3Rvb2x0aXAtdHJhY2tpbmcnO1xuaW1wb3J0IHsgRHJhZ1BvaW50VHlwZSB9IGZyb20gJy4uLy4uLy4uL21vZGVsL2VudW0vZHJhZy1wb2ludC10eXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3ZnOnN2Z1t0ZXRhLWxpbmUtc2VyaWVzXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9saW5lLXNlcmllcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpbmUtc2VyaWVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBMaW5lU2VyaWVzQ29tcG9uZW50PFQgZXh0ZW5kcyBCYXNlUG9pbnQ+XG4gIGV4dGVuZHMgU2VyaWVzQmFzZUNvbXBvbmVudDxUPlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdFxue1xuICB0cmFuc2Zvcm06IE9ic2VydmFibGU8UGljazxCYXNlUG9pbnQsICd4JyB8ICd5Jz4+O1xuICBkaXNwbGF5OiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgc3ZnRWxlbWVudDogU1ZHR2VvbWV0cnlFbGVtZW50O1xuICB4OiBhbnk7XG4gIHk6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc3ZjOiBDaGFydFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNjYWxlU2VydmljZTogU2NhbGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB6b29tU2VydmljZTogWm9vbVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGVsZW1lbnQ6IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgc3VwZXIoc3ZjLCBjZHIsIHNjYWxlU2VydmljZSwgem9vbVNlcnZpY2UsIGVsZW1lbnQpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5ID0gdGhpcy56b29tU2VydmljZS56b29tZWQucGlwZShcbiAgICAgIG1hcCgoeyBldmVudCB9KSA9PiB7XG4gICAgICAgIHJldHVybiBldmVudD8udHlwZSA9PT0gJ2VuZCcgPyAxIDogMDtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMudHJhbnNmb3JtID0gdGhpcy5zdmMucG9pbnRlck1vdmUucGlwZShcbiAgICAgIGZpbHRlcigoeyBldmVudCB9KSA9PiBldmVudCksXG4gICAgICBtYXAoKHsgZXZlbnQgfSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2Zvcm0oZXZlbnQpO1xuICAgICAgfSksXG4gICAgICB0YXAoKF8pID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSlcbiAgICApO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IGRyYWcgPSAobm9kZSwgZXZlbnQ6IGQzLkQzRHJhZ0V2ZW50PGFueSwgYW55LCBhbnk+LCBkOiBCYXNlUG9pbnQpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgZC5tYXJrZXI/LmRyYWdUeXBlID09PSBEcmFnUG9pbnRUeXBlLnggfHxcbiAgICAgICAgZC5tYXJrZXI/LmRyYWdUeXBlID09PSBEcmFnUG9pbnRUeXBlLnh5XG4gICAgICApIHtcbiAgICAgICAgZC54ID0gdGhpcy54LmludmVydChldmVudC54KTtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBkLm1hcmtlcj8uZHJhZ1R5cGUgPT09IERyYWdQb2ludFR5cGUueSB8fFxuICAgICAgICBkLm1hcmtlcj8uZHJhZ1R5cGUgPT09IERyYWdQb2ludFR5cGUueHlcbiAgICAgICkge1xuICAgICAgICBkLnkgPSB0aGlzLnkuaW52ZXJ0KGV2ZW50LnkpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN2Yy5lbWl0UG9pbnQoe1xuICAgICAgICB0YXJnZXQ6IHtcbiAgICAgICAgICBzZXJpZXM6IHRoaXMuc2VyaWVzLFxuICAgICAgICAgIHBvaW50OiBkLFxuICAgICAgICB9LFxuICAgICAgICBldmVudCxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGRyYWdNYXJrZXJzID0gZDNcbiAgICAgIC5kcmFnKClcbiAgICAgIC5zdWJqZWN0KGZ1bmN0aW9uIChldmVudCwgZDogQmFzZVBvaW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBkMy5zZWxlY3QodGhpcyk7XG4gICAgICAgIHJldHVybiB7IHg6IG5vZGUuYXR0cignY3gnKSwgeTogbm9kZS5hdHRyKCdjeScpIH07XG4gICAgICB9KVxuICAgICAgLm9uKFxuICAgICAgICAnc3RhcnQgZHJhZyBlbmQnLFxuICAgICAgICBmdW5jdGlvbiAoZXZlbnQ6IGQzLkQzRHJhZ0V2ZW50PGFueSwgYW55LCBhbnk+LCBkOiBCYXNlUG9pbnQpIHtcbiAgICAgICAgICBjb25zdCBub2RlID0gZDMuc2VsZWN0KHRoaXMpO1xuXG4gICAgICAgICAgZHJhZyhub2RlLCBldmVudCwgZCk7XG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICBjb25zdCBkcmFnZ2FibGVNYXJrZXJzID0gdGhpcy5zZXJpZXMuZGF0YT8uZmlsdGVyKFxuICAgICAgKF8pID0+IF8/Lm1hcmtlciAmJiBfPy5tYXJrZXI/LmRyYWdnYWJsZVxuICAgICk7XG5cbiAgICBjb25zdCBlbGVtZW50ID0gZDNcbiAgICAgIC5zZWxlY3QodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpXG4gICAgICAuc2VsZWN0QWxsKCcuZHJhZ2dhYmxlLW1hcmtlcicpXG4gICAgICAuZGF0YShkcmFnZ2FibGVNYXJrZXJzKTtcblxuICAgIGVsZW1lbnQuY2FsbChkcmFnTWFya2VycyBhcyBhbnkpO1xuXG4gICAgdGhpcy5zdmdFbGVtZW50ID0gZDNcbiAgICAgIC5zZWxlY3QodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpXG4gICAgICAuc2VsZWN0KCcubGluZScpXG4gICAgICAubm9kZSgpIGFzIFNWR0dlb21ldHJ5RWxlbWVudDtcbiAgfVxuXG4gIGdldFBhdGgoKSB7XG4gICAgdGhpcy54ID0gdGhpcy5zY2FsZVNlcnZpY2UueFNjYWxlcy5nZXQodGhpcy5zZXJpZXMueEF4aXNJbmRleCk7XG4gICAgdGhpcy55ID0gdGhpcy5zY2FsZVNlcnZpY2UueVNjYWxlcy5nZXQodGhpcy5zZXJpZXMueUF4aXNJbmRleCk7XG5cbiAgICBjb25zdCBsaW5lID0gZDNcbiAgICAgIC5saW5lPEJhc2VQb2ludD4oKVxuICAgICAgLmRlZmluZWQoKHBvaW50KSA9PiBwb2ludC54ICE9PSBudWxsIHx8IHBvaW50LnkgIT09IG51bGwpXG4gICAgICAueCgocG9pbnQpID0+IHRoaXMueChwb2ludC54KSlcbiAgICAgIC55KChwb2ludCkgPT4gdGhpcy55KHBvaW50LnkpKTtcblxuICAgIGNvbnN0IHBhdGggPSBsaW5lKHRoaXMuc2VyaWVzLmRhdGEpO1xuXG4gICAgcmV0dXJuIHBhdGg7XG4gIH1cblxuICBnZXRNYXJrZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnNlcmllcy5kYXRhPy5maWx0ZXIoKF8pID0+IF8/Lm1hcmtlcik7XG4gIH1cblxuICBnZXRUcmFuc2Zvcm0oZXZlbnQ6IGFueSk6IFBpY2s8QmFzZVBvaW50LCAneCcgfCAneSc+IHtcbiAgICBjb25zdCBtb3VzZSA9IGQzLnBvaW50ZXIoZXZlbnQpO1xuXG4gICAgY29uc3QgZm91bmRYID0gdGhpcy5zY2FsZVNlcnZpY2UueFNjYWxlcy5nZXQodGhpcy5zZXJpZXMueEF4aXNJbmRleCk7XG4gICAgY29uc3QgZm91bmRZID0gdGhpcy5zY2FsZVNlcnZpY2UueVNjYWxlcy5nZXQodGhpcy5zZXJpZXMueUF4aXNJbmRleCk7XG5cbiAgICBjb25zdCB0b29sdGlwVHJhY2tpbmcgPSB0aGlzLnN2Yy5jb25maWc/LnRvb2x0aXA/LnRyYWNraW5nO1xuXG4gICAgY29uc3QgbGluZUludGVyc2VjdGlvbiA9IChcbiAgICAgIHAwX3gsXG4gICAgICBwMF95LFxuICAgICAgcDFfeCxcbiAgICAgIHAxX3ksXG4gICAgICBwMl94LFxuICAgICAgcDJfeSxcbiAgICAgIHAzX3gsXG4gICAgICBwM195XG4gICAgKSA9PiB7XG4gICAgICBjb25zdCByViA9IHt9IGFzIGFueTtcbiAgICAgIGxldCBzMV94LCBzMV95LCBzMl94LCBzMl95O1xuICAgICAgczFfeCA9IHAxX3ggLSBwMF94O1xuICAgICAgczFfeSA9IHAxX3kgLSBwMF95O1xuICAgICAgczJfeCA9IHAzX3ggLSBwMl94O1xuICAgICAgczJfeSA9IHAzX3kgLSBwMl95O1xuXG4gICAgICBsZXQgcywgdDtcbiAgICAgIHMgPVxuICAgICAgICAoLXMxX3kgKiAocDBfeCAtIHAyX3gpICsgczFfeCAqIChwMF95IC0gcDJfeSkpIC9cbiAgICAgICAgKC1zMl94ICogczFfeSArIHMxX3ggKiBzMl95KTtcbiAgICAgIHQgPVxuICAgICAgICAoczJfeCAqIChwMF95IC0gcDJfeSkgLSBzMl95ICogKHAwX3ggLSBwMl94KSkgL1xuICAgICAgICAoLXMyX3ggKiBzMV95ICsgczFfeCAqIHMyX3kpO1xuXG4gICAgICBpZiAocyA+PSAwICYmIHMgPD0gMSAmJiB0ID49IDAgJiYgdCA8PSAxKSB7XG4gICAgICAgIC8vIENvbGxpc2lvbiBkZXRlY3RlZFxuICAgICAgICByVi54ID0gcDBfeCArIHQgKiBzMV94O1xuICAgICAgICByVi55ID0gcDBfeSArIHQgKiBzMV95O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gclY7XG4gICAgfTtcblxuICAgIGlmICh0b29sdGlwVHJhY2tpbmcgPT09IFRvb2x0aXBUcmFja2luZy54KSB7XG4gICAgICBjb25zdCBiaXNlY3QgPSBkMy5iaXNlY3RvcigoXzogQmFzZVBvaW50KSA9PiBfLngpLnJpZ2h0O1xuXG4gICAgICBjb25zdCB4MCA9IGZvdW5kWC5pbnZlcnQobW91c2VbMF0pO1xuICAgICAgY29uc3QgcmlnaHRJZCA9IGJpc2VjdCh0aGlzLnNlcmllcy5kYXRhLCB4MCk7XG5cbiAgICAgIGNvbnN0IHJhbmdlID0gZm91bmRZLnJhbmdlKCk7XG5cbiAgICAgIGNvbnN0IGludGVyc2VjdCA9IGxpbmVJbnRlcnNlY3Rpb24oXG4gICAgICAgIG1vdXNlWzBdLFxuICAgICAgICByYW5nZVswXSxcbiAgICAgICAgbW91c2VbMF0sXG4gICAgICAgIHJhbmdlWzFdLFxuICAgICAgICBmb3VuZFgodGhpcy5zZXJpZXMuZGF0YVtyaWdodElkIC0gMV0/LngpLFxuICAgICAgICBmb3VuZFkodGhpcy5zZXJpZXMuZGF0YVtyaWdodElkIC0gMV0/LnkpLFxuICAgICAgICBmb3VuZFgodGhpcy5zZXJpZXMuZGF0YVtyaWdodElkXT8ueCksXG4gICAgICAgIGZvdW5kWSh0aGlzLnNlcmllcy5kYXRhW3JpZ2h0SWRdPy55KVxuICAgICAgKTtcblxuICAgICAgY29uc29sZS5sb2coaW50ZXJzZWN0KTtcblxuICAgICAgdGhpcy5zdmMuc2V0VG9vbHRpcCh7XG4gICAgICAgIHBvaW50OiB7IHg6IGZvdW5kWC5pbnZlcnQoaW50ZXJzZWN0LngpLCB5OiBmb3VuZFkuaW52ZXJ0KGludGVyc2VjdC55KSB9LFxuICAgICAgICBzZXJpZXM6IHRoaXMuc2VyaWVzLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHg6IGludGVyc2VjdC54LFxuICAgICAgICB5OiBpbnRlcnNlY3QueSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHRvb2x0aXBUcmFja2luZyA9PT0gVG9vbHRpcFRyYWNraW5nLnkpIHtcbiAgICAgIGNvbnN0IGJpc2VjdCA9IGQzLmJpc2VjdG9yKChfOiBCYXNlUG9pbnQpID0+IF8ueSkucmlnaHQ7XG5cbiAgICAgIGNvbnN0IHkwID0gZm91bmRZLmludmVydChtb3VzZVsxXSk7XG5cbiAgICAgIGNvbnN0IHJpZ2h0SWQgPSBiaXNlY3QodGhpcy5zZXJpZXMuZGF0YSwgeTApO1xuICAgICAgY29uc3QgcmFuZ2UgPSBmb3VuZFgucmFuZ2UoKTtcblxuICAgICAgY29uc3QgaW50ZXJzZWN0ID0gbGluZUludGVyc2VjdGlvbihcbiAgICAgICAgcmFuZ2VbMF0sXG4gICAgICAgIG1vdXNlWzFdLFxuICAgICAgICByYW5nZVsxXSxcbiAgICAgICAgbW91c2VbMV0sXG4gICAgICAgIGZvdW5kWCh0aGlzLnNlcmllcy5kYXRhW3JpZ2h0SWQgLSAxXT8ueCksXG4gICAgICAgIGZvdW5kWSh0aGlzLnNlcmllcy5kYXRhW3JpZ2h0SWQgLSAxXT8ueSksXG4gICAgICAgIGZvdW5kWCh0aGlzLnNlcmllcy5kYXRhW3JpZ2h0SWRdPy54KSxcbiAgICAgICAgZm91bmRZKHRoaXMuc2VyaWVzLmRhdGFbcmlnaHRJZF0/LnkpXG4gICAgICApO1xuXG4gICAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgICAgcG9pbnQ6IHsgeDogZm91bmRYLmludmVydChpbnRlcnNlY3QueCksIHk6IGZvdW5kWS5pbnZlcnQoaW50ZXJzZWN0LnkpIH0sXG4gICAgICAgIHNlcmllczogdGhpcy5zZXJpZXMsXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgeDogaW50ZXJzZWN0LngsXG4gICAgICAgIHk6IGludGVyc2VjdC55LFxuICAgICAgfTtcbiAgICB9XG4gIH1cbn1cbiIsIjxzdmc6cGF0aFxuICBjbGFzcz1cImxpbmVcIlxuICBbYXR0ci5kXT1cImdldFBhdGgoKVwiXG4gIFthdHRyLnN0cm9rZV09XCJzZXJpZXMuY29sb3JcIlxuICBbYXR0ci5zdHJva2Utd2lkdGhdPVwic2VyaWVzLnN0eWxlPy5zdHJva2VXaWR0aFwiXG4gIGZpbGw9XCJub25lXCI+XG48L3N2ZzpwYXRoPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwidHJhbnNmb3JtIHwgYXN5bmMgYXMgdFwiPlxuICA8c3ZnOmNpcmNsZVxuICAgIHI9XCIzXCJcbiAgICBbYXR0ci5maWxsXT1cInNlcmllcy5jb2xvclwiXG4gICAgW2F0dHIudHJhbnNmb3JtXT1cIid0cmFuc2xhdGUoJysgdC54ICsnLCAnKyB0LnkgKycpJ1wiXG4gICAgW2F0dHIub3BhY2l0eV09XCJkaXNwbGF5IHwgYXN5bmNcIj5cbiAgPC9zdmc6Y2lyY2xlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJnZXRNYXJrZXJzKCkgYXMgbWFya2Vyc1wiPlxuXG4gICAgPHN2ZzpjaXJjbGVcbiAgICAgIGNsYXNzPVwibWFya2VyXCJcbiAgICAgICpuZ0Zvcj1cImxldCBwb2ludCBvZiBtYXJrZXJzXCJcbiAgICAgIFtjbGFzcy5kcmFnZ2FibGUtbWFya2VyXT1cInBvaW50Py5tYXJrZXI/LmRyYWdnYWJsZVwiXG4gICAgICBbYXR0ci5yXT1cInBvaW50Lm1hcmtlci5zdHlsZT8ucmFkaXVzID8/IDVcIlxuICAgICAgW2F0dHIuZmlsbF09XCJwb2ludC5tYXJrZXIuc3R5bGU/LmZpbGwgPz8gJ3RyYW5zcGFyZW50J1wiXG4gICAgICBbYXR0ci5zdHJva2VdPVwicG9pbnQubWFya2VyLnN0eWxlPy5zdHJva2UgPz8gJ25vbmUnXCJcbiAgICAgIFthdHRyLnN0cm9rZS13aWR0aF09XCJwb2ludC5tYXJrZXIuc3R5bGU/LnN0cm9rZVdpZHRoXCJcbiAgICAgIFthdHRyLnN0cm9rZS1kYXNoYXJyYXldPVwicG9pbnQubWFya2VyLnN0eWxlPy5zdHJva2VEYXNoYXJyYXlcIlxuICAgICAgW2F0dHIuY3hdPVwieChwb2ludC54KVwiXG4gICAgICBbYXR0ci5jeV09XCJ5KHBvaW50LnkpXCJcbiAgICA+XG4gICAgPC9zdmc6Y2lyY2xlPlxuXG5cbjwvbmctY29udGFpbmVyPlxuXG5cblxuIl19
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, } from '@angular/core';
|
|
2
|
-
import { SeriesBaseComponent } from '../../base/series-base.component';
|
|
3
|
-
import { LineSeriesComponent } from '../series/line/line-series.component';
|
|
4
|
-
import { BarSeriesComponent } from '../series/bar/bar-series.component';
|
|
5
|
-
import { tap } from 'rxjs';
|
|
6
|
-
import { throttleTime } from 'rxjs/operators';
|
|
7
|
-
import { SeriesType } from '../../model/enum/series-type';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "../../service/chart.service";
|
|
10
|
-
export class SeriesHostComponent {
|
|
11
|
-
constructor(viewContainerRef, chartService) {
|
|
12
|
-
this.viewContainerRef = viewContainerRef;
|
|
13
|
-
this.chartService = chartService;
|
|
14
|
-
this.defaultSeriesTypeMapping = new Map()
|
|
15
|
-
.set(SeriesType.line, LineSeriesComponent)
|
|
16
|
-
.set(SeriesType.bar, BarSeriesComponent);
|
|
17
|
-
this._init = false;
|
|
18
|
-
this.chartService.size
|
|
19
|
-
.pipe(throttleTime(100, null, { trailing: true }), tap(() => {
|
|
20
|
-
this._componentRef?.injector.get(ChangeDetectorRef).detectChanges();
|
|
21
|
-
}))
|
|
22
|
-
.subscribe();
|
|
23
|
-
}
|
|
24
|
-
ngOnInit() {
|
|
25
|
-
if (!SeriesBaseComponent.isPrototypeOf(this.series.component)) {
|
|
26
|
-
this.series.component =
|
|
27
|
-
this.defaultSeriesTypeMapping.get(this.series.type) ||
|
|
28
|
-
LineSeriesComponent;
|
|
29
|
-
}
|
|
30
|
-
this._componentRef = this.viewContainerRef.createComponent(this.series.component);
|
|
31
|
-
this._componentRef.instance.series = this.series;
|
|
32
|
-
this._componentRef.instance.size = this.size;
|
|
33
|
-
this._init = true;
|
|
34
|
-
}
|
|
35
|
-
ngOnDestroy() { }
|
|
36
|
-
ngOnChanges(changes) {
|
|
37
|
-
if (this._init && changes.hasOwnProperty('series')) {
|
|
38
|
-
this._componentRef.instance.series = this.series;
|
|
39
|
-
this._componentRef.instance.size = this.size;
|
|
40
|
-
this._componentRef.injector.get(ChangeDetectorRef).markForCheck();
|
|
41
|
-
this._componentRef.injector.get(ChangeDetectorRef).detectChanges();
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
SeriesHostComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SeriesHostComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.ChartService }], target: i0.ɵɵFactoryTarget.Component });
|
|
46
|
-
SeriesHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: SeriesHostComponent, selector: "[teta-series-host]", inputs: { series: "series", size: "size" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SeriesHostComponent, decorators: [{
|
|
48
|
-
type: Component,
|
|
49
|
-
args: [{
|
|
50
|
-
selector: '[teta-series-host]',
|
|
51
|
-
template: '',
|
|
52
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
53
|
-
}]
|
|
54
|
-
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i1.ChartService }]; }, propDecorators: { series: [{
|
|
55
|
-
type: Input
|
|
56
|
-
}], size: [{
|
|
57
|
-
type: Input
|
|
58
|
-
}] } });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWVzLWhvc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMtaG9zdC9zZXJpZXMtaG9zdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUVULEtBQUssR0FJTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUt4RSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQU8xRCxNQUFNLE9BQU8sbUJBQW1CO0lBYzlCLFlBQ1UsZ0JBQWtDLEVBQ2xDLFlBQTBCO1FBRDFCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFaNUIsNkJBQXdCLEdBQUcsSUFBSSxHQUFHLEVBR3ZDO2FBQ0EsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUM7YUFDekMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUVuQyxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBT3BCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSTthQUNuQixJQUFJLENBQ0gsWUFBWSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFDM0MsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RFLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTO2dCQUNuQixJQUFJLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO29CQUNuRCxtQkFBbUIsQ0FBQztTQUN2QjtRQUVELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FDeEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQ3RCLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM3QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUNwQixDQUFDO0lBRUQsV0FBVyxLQUFVLENBQUM7SUFFdEIsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ2pELElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzdDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3BFO0lBQ0gsQ0FBQzs7Z0hBcERVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLDJIQUhwQixFQUFFOzJGQUdELG1CQUFtQjtrQkFML0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7a0lBRVUsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VyaWVzQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2Uvc2VyaWVzLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IExpbmVTZXJpZXNDb21wb25lbnQgfSBmcm9tICcuLi9zZXJpZXMvbGluZS9saW5lLXNlcmllcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFyU2VyaWVzQ29tcG9uZW50IH0gZnJvbSAnLi4vc2VyaWVzL2Jhci9iYXItc2VyaWVzLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFNlcmllcyB9IGZyb20gJy4uLy4uL21vZGVsL3Nlcmllcyc7XG5pbXBvcnQgeyBCYXNlUG9pbnQgfSBmcm9tICcuLi8uLi9tb2RlbC9iYXNlLXBvaW50JztcbmltcG9ydCB7IENoYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvY2hhcnQuc2VydmljZSc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNlcmllc1R5cGUgfSBmcm9tICcuLi8uLi9tb2RlbC9lbnVtL3Nlcmllcy10eXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW3RldGEtc2VyaWVzLWhvc3RdJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2VyaWVzSG9zdENvbXBvbmVudDxUIGV4dGVuZHMgQmFzZVBvaW50PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHNlcmllczogU2VyaWVzPFQ+O1xuICBASW5wdXQoKSBzaXplOiBET01SZWN0O1xuXG4gIHByaXZhdGUgZGVmYXVsdFNlcmllc1R5cGVNYXBwaW5nID0gbmV3IE1hcDxcbiAgICBTZXJpZXNUeXBlLFxuICAgIHR5cGVvZiBTZXJpZXNCYXNlQ29tcG9uZW50XG4gID4oKVxuICAgIC5zZXQoU2VyaWVzVHlwZS5saW5lLCBMaW5lU2VyaWVzQ29tcG9uZW50KVxuICAgIC5zZXQoU2VyaWVzVHlwZS5iYXIsIEJhclNlcmllc0NvbXBvbmVudCk7XG5cbiAgcHJpdmF0ZSBfaW5pdCA9IGZhbHNlO1xuICBwcml2YXRlIF9jb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIGNoYXJ0U2VydmljZTogQ2hhcnRTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuY2hhcnRTZXJ2aWNlLnNpemVcbiAgICAgIC5waXBlKFxuICAgICAgICB0aHJvdHRsZVRpbWUoMTAwLCBudWxsLCB7IHRyYWlsaW5nOiB0cnVlIH0pLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZj8uaW5qZWN0b3IuZ2V0KENoYW5nZURldGVjdG9yUmVmKS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIVNlcmllc0Jhc2VDb21wb25lbnQuaXNQcm90b3R5cGVPZih0aGlzLnNlcmllcy5jb21wb25lbnQpKSB7XG4gICAgICB0aGlzLnNlcmllcy5jb21wb25lbnQgPVxuICAgICAgICB0aGlzLmRlZmF1bHRTZXJpZXNUeXBlTWFwcGluZy5nZXQodGhpcy5zZXJpZXMudHlwZSkgfHxcbiAgICAgICAgTGluZVNlcmllc0NvbXBvbmVudDtcbiAgICB9XG5cbiAgICB0aGlzLl9jb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxuICAgICAgdGhpcy5zZXJpZXMuY29tcG9uZW50XG4gICAgKTtcbiAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VyaWVzID0gdGhpcy5zZXJpZXM7XG4gICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnNpemUgPSB0aGlzLnNpemU7XG4gICAgdGhpcy5faW5pdCA9IHRydWU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pbml0ICYmIGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ3NlcmllcycpKSB7XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VyaWVzID0gdGhpcy5zZXJpZXM7XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2Uuc2l6ZSA9IHRoaXMuc2l6ZTtcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbmplY3Rvci5nZXQoQ2hhbmdlRGV0ZWN0b3JSZWYpLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluamVjdG9yLmdldChDaGFuZ2VEZXRlY3RvclJlZikuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { Component, Input, } from '@angular/core';
|
|
2
|
-
import { filter, map, merge, takeWhile, tap } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../../service/chart.service";
|
|
5
|
-
import * as i2 from "../../service/zoom.service";
|
|
6
|
-
import * as i3 from "@angular/platform-browser";
|
|
7
|
-
import * as i4 from "@angular/common";
|
|
8
|
-
export class TooltipComponent {
|
|
9
|
-
constructor(svc, cdr, zoomService, sanitizer) {
|
|
10
|
-
this.svc = svc;
|
|
11
|
-
this.cdr = cdr;
|
|
12
|
-
this.zoomService = zoomService;
|
|
13
|
-
this.sanitizer = sanitizer;
|
|
14
|
-
this.tooltips = [];
|
|
15
|
-
this.alive = true;
|
|
16
|
-
}
|
|
17
|
-
ngOnInit() {
|
|
18
|
-
this.display = merge(this.svc.pointerMove, this.zoomService.zoomed).pipe(map(({ event }) => {
|
|
19
|
-
const opacity = event?.type === 'mousemove' ? 1 : 0;
|
|
20
|
-
return opacity;
|
|
21
|
-
}), tap(() => {
|
|
22
|
-
requestAnimationFrame(() => {
|
|
23
|
-
this.cdr.detectChanges();
|
|
24
|
-
});
|
|
25
|
-
}));
|
|
26
|
-
this.position = this.svc.pointerMove.pipe(filter(({ event }) => event), map((_) => {
|
|
27
|
-
return this.getPoisition(_);
|
|
28
|
-
}), tap((_) => this.cdr.detectChanges()));
|
|
29
|
-
const transformHtml = (html) => {
|
|
30
|
-
return this.sanitizer.bypassSecurityTrustHtml(html);
|
|
31
|
-
};
|
|
32
|
-
const defaultFormatter = (tooltips) => {
|
|
33
|
-
let html = '';
|
|
34
|
-
tooltips.forEach((_) => {
|
|
35
|
-
const indicatorStyle = `display:block; width: 10px; height: 2px; background-color: ${_?.series?.color}`;
|
|
36
|
-
html += `<div class="display-flex align-center"><span class="margin-right-1" style="${indicatorStyle}"></span>
|
|
37
|
-
<span class="font-title-3">${_.series.name}
|
|
38
|
-
<span class="font-body-3">x: ${_.point.x?.toFixed(2)} y: ${_.point.y?.toFixed(2)}</span></span></div>`;
|
|
39
|
-
});
|
|
40
|
-
return transformHtml(html);
|
|
41
|
-
};
|
|
42
|
-
const formatter = this.svc.config?.tooltip?.format;
|
|
43
|
-
this.displayTooltips = merge(this.svc.pointerMove.pipe(tap((_) => (this.tooltips = []))), this.svc.tooltips).pipe(takeWhile((_) => this.alive), filter((_) => !_['event']), map((tooltip) => {
|
|
44
|
-
if (tooltip) {
|
|
45
|
-
this.tooltips.push(tooltip);
|
|
46
|
-
}
|
|
47
|
-
const formatted = formatter
|
|
48
|
-
? formatter(this.tooltips)
|
|
49
|
-
: defaultFormatter(this.tooltips);
|
|
50
|
-
return formatted;
|
|
51
|
-
}));
|
|
52
|
-
}
|
|
53
|
-
getPoisition({ event }) {
|
|
54
|
-
const centerX = this.size.width / 2;
|
|
55
|
-
const centerY = this.size.height / 2;
|
|
56
|
-
const padding = { x: 10, y: 10 };
|
|
57
|
-
const scene = {
|
|
58
|
-
left: event.pageX > centerX ? 'initial' : `${event.pageX + padding.x}px`,
|
|
59
|
-
top: event.pageY > centerY ? 'initial' : `${event.pageY + padding.y}px`,
|
|
60
|
-
bottom: event.pageY > centerY
|
|
61
|
-
? `${window.innerHeight - event.pageY}px`
|
|
62
|
-
: 'initial',
|
|
63
|
-
right: event.pageX > centerX
|
|
64
|
-
? `${window.innerWidth - event.pageX + padding.x}px`
|
|
65
|
-
: 'initial',
|
|
66
|
-
};
|
|
67
|
-
return scene;
|
|
68
|
-
}
|
|
69
|
-
ngOnDestroy() {
|
|
70
|
-
this.alive = false;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
TooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TooltipComponent, deps: [{ token: i1.ChartService }, { token: i0.ChangeDetectorRef }, { token: i2.ZoomService }, { token: i3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
74
|
-
TooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: TooltipComponent, selector: "teta-tooltip", inputs: { size: "size" }, ngImport: i0, template: "<ng-container *ngIf=\"position | async as p\">\n\n <div class=\"chart-tooltip color-text-90 bg-background-50 shadow-2 padding-2 border-radius-1\"\n [style.position]=\"'fixed'\"\n [style.opacity]=\"display | async\"\n style=\"pointer-events: none;\"\n [style.left]=\"p.left\"\n [style.top]=\"p.top\"\n [style.bottom]=\"p.bottom\"\n [style.right]=\"p.right\"\n [innerHTML]=\"displayTooltips | async\">\n </div>\n</ng-container>\n\n", styles: [":host{position:absolute}.chart-tooltip{transition:all .1s ease}\n"], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i4.AsyncPipe } });
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TooltipComponent, decorators: [{
|
|
76
|
-
type: Component,
|
|
77
|
-
args: [{ selector: 'teta-tooltip', template: "<ng-container *ngIf=\"position | async as p\">\n\n <div class=\"chart-tooltip color-text-90 bg-background-50 shadow-2 padding-2 border-radius-1\"\n [style.position]=\"'fixed'\"\n [style.opacity]=\"display | async\"\n style=\"pointer-events: none;\"\n [style.left]=\"p.left\"\n [style.top]=\"p.top\"\n [style.bottom]=\"p.bottom\"\n [style.right]=\"p.right\"\n [innerHTML]=\"displayTooltips | async\">\n </div>\n</ng-container>\n\n", styles: [":host{position:absolute}.chart-tooltip{transition:all .1s ease}\n"] }]
|
|
78
|
-
}], ctorParameters: function () { return [{ type: i1.ChartService }, { type: i0.ChangeDetectorRef }, { type: i2.ZoomService }, { type: i3.DomSanitizer }]; }, propDecorators: { size: [{
|
|
79
|
-
type: Input
|
|
80
|
-
}] } });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQWMsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBWXRFLE1BQU0sT0FBTyxnQkFBZ0I7SUFrQjNCLFlBQ1UsR0FBaUIsRUFDakIsR0FBc0IsRUFDdEIsV0FBd0IsRUFDeEIsU0FBdUI7UUFIdkIsUUFBRyxHQUFILEdBQUcsQ0FBYztRQUNqQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBVmpDLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFFTixVQUFLLEdBQUcsSUFBSSxDQUFDO0lBU2xCLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ3RFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNoQixNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFcEQsT0FBTyxPQUFPLENBQUM7UUFDakIs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RGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBtZXJnZSwgT2JzZXJ2YWJsZSwgdGFrZVdoaWxlLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENoYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvY2hhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBab29tU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2Uvem9vbS5zZXJ2aWNlJztcbmltcG9ydCB7IElDaGFydEV2ZW50IH0gZnJvbSAnLi4vLi4vbW9kZWwvaS1jaGFydC1ldmVudCc7XG5pbXBvcnQgeyBJRGlzcGxheVRvb2x0aXAgfSBmcm9tICcuLi8uLi9tb2RlbC9pLWRpc3BsYXktdG9vbHRpcCc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS10b29sdGlwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90b29sdGlwLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHNpemU6IERPTVJlY3Q7XG5cbiAgcG9zaXRpb246IE9ic2VydmFibGU8e1xuICAgIGxlZnQ6IHN0cmluZztcbiAgICB0b3A6IHN0cmluZztcbiAgICBib3R0b206IHN0cmluZztcbiAgICByaWdodDogc3RyaW5nO1xuICB9PjtcblxuICBkaXNwbGF5VG9vbHRpcHM6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICB0b29sdGlwcyA9IFtdO1xuXG4gIHByaXZhdGUgYWxpdmUgPSB0cnVlO1xuXG4gIGRpc3BsYXk6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN2YzogQ2hhcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXkgPSBtZXJnZSh0aGlzLnN2Yy5wb2ludGVyTW92ZSwgdGhpcy56b29tU2VydmljZS56b29tZWQpLnBpcGUoXG4gICAgICBtYXAoKHsgZXZlbnQgfSkgPT4ge1xuICAgICAgICBjb25zdCBvcGFjaXR5ID0gZXZlbnQ/LnR5cGUgPT09ICdtb3VzZW1vdmUnID8gMSA6IDA7XG5cbiAgICAgICAgcmV0dXJuIG9wYWNpdHk7XG4gICAgICB9KSxcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMucG9zaXRpb24gPSB0aGlzLnN2Yy5wb2ludGVyTW92ZS5waXBlKFxuICAgICAgZmlsdGVyKCh7IGV2ZW50IH0pID0+IGV2ZW50KSxcbiAgICAgIG1hcCgoXykgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRQb2lzaXRpb24oXyk7XG4gICAgICB9KSxcbiAgICAgIHRhcCgoXykgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpKVxuICAgICk7XG5cbiAgICBjb25zdCB0cmFuc2Zvcm1IdG1sID0gKGh0bWwpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChodG1sKTtcbiAgICB9O1xuXG4gICAgY29uc3QgZGVmYXVsdEZvcm1hdHRlciA9ICh0b29sdGlwczogSURpc3BsYXlUb29sdGlwW10pID0+IHtcbiAgICAgIGxldCBodG1sID0gJyc7XG5cbiAgICAgIHRvb2x0aXBzLmZvckVhY2goKF8pID0+IHtcbiAgICAgICAgY29uc3QgaW5kaWNhdG9yU3R5bGUgPSBgZGlzcGxheTpibG9jazsgd2lkdGg6IDEwcHg7IGhlaWdodDogMnB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAke18/LnNlcmllcz8uY29sb3J9YDtcblxuICAgICAgICBodG1sICs9IGA8ZGl2IGNsYXNzPVwiZGlzcGxheS1mbGV4IGFsaWduLWNlbnRlclwiPjxzcGFuIGNsYXNzPVwibWFyZ2luLXJpZ2h0LTFcIiBzdHlsZT1cIiR7aW5kaWNhdG9yU3R5bGV9XCI+PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC10aXRsZS0zXCI+JHtfLnNlcmllcy5uYW1lfVxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2R5LTNcIj54OiAke18ucG9pbnQueD8udG9GaXhlZChcbiAgICAgICAgICAgIDJcbiAgICAgICAgICApfSB5OiAke18ucG9pbnQueT8udG9GaXhlZCgyKX08L3NwYW4+PC9zcGFuPjwvZGl2PmA7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHRyYW5zZm9ybUh0bWwoaHRtbCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGZvcm1hdHRlciA9IHRoaXMuc3ZjLmNvbmZpZz8udG9vbHRpcD8uZm9ybWF0O1xuXG4gICAgdGhpcy5kaXNwbGF5VG9vbHRpcHMgPSBtZXJnZShcbiAgICAgIHRoaXMuc3ZjLnBvaW50ZXJNb3ZlLnBpcGUodGFwKChfKSA9PiAodGhpcy50b29sdGlwcyA9IFtdKSkpLFxuICAgICAgdGhpcy5zdmMudG9vbHRpcHNcbiAgICApLnBpcGUoXG4gICAgICB0YWtlV2hpbGUoKF8pID0+IHRoaXMuYWxpdmUpLFxuICAgICAgZmlsdGVyKChfKSA9PiAhX1snZXZlbnQnXSksXG4gICAgICBtYXAoKHRvb2x0aXA6IGFueSkgPT4ge1xuICAgICAgICBpZiAodG9vbHRpcCkge1xuICAgICAgICAgIHRoaXMudG9vbHRpcHMucHVzaCh0b29sdGlwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdHRlclxuICAgICAgICAgID8gZm9ybWF0dGVyKHRoaXMudG9vbHRpcHMpXG4gICAgICAgICAgOiBkZWZhdWx0Rm9ybWF0dGVyKHRoaXMudG9vbHRpcHMpO1xuXG4gICAgICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldFBvaXNpdGlvbih7IGV2ZW50IH06IGFueSkge1xuICAgIGNvbnN0IGNlbnRlclggPSB0aGlzLnNpemUud2lkdGggLyAyO1xuICAgIGNvbnN0IGNlbnRlclkgPSB0aGlzLnNpemUuaGVpZ2h0IC8gMjtcblxuICAgIGNvbnN0IHBhZGRpbmcgPSB7IHg6IDEwLCB5OiAxMCB9O1xuXG4gICAgY29uc3Qgc2NlbmUgPSB7XG4gICAgICBsZWZ0OiBldmVudC5wYWdlWCA+IGNlbnRlclggPyAnaW5pdGlhbCcgOiBgJHtldmVudC5wYWdlWCArIHBhZGRpbmcueH1weGAsXG4gICAgICB0b3A6IGV2ZW50LnBhZ2VZID4gY2VudGVyWSA/ICdpbml0aWFsJyA6IGAke2V2ZW50LnBhZ2VZICsgcGFkZGluZy55fXB4YCxcbiAgICAgIGJvdHRvbTpcbiAgICAgICAgZXZlbnQucGFnZVkgPiBjZW50ZXJZXG4gICAgICAgICAgPyBgJHt3aW5kb3cuaW5uZXJIZWlnaHQgLSBldmVudC5wYWdlWX1weGBcbiAgICAgICAgICA6ICdpbml0aWFsJyxcbiAgICAgIHJpZ2h0OlxuICAgICAgICBldmVudC5wYWdlWCA+IGNlbnRlclhcbiAgICAgICAgICA/IGAke3dpbmRvdy5pbm5lcldpZHRoIC0gZXZlbnQucGFnZVggKyBwYWRkaW5nLnh9cHhgXG4gICAgICAgICAgOiAnaW5pdGlhbCcsXG4gICAgfTtcblxuICAgIHJldHVybiBzY2VuZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuYWxpdmUgPSBmYWxzZTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInBvc2l0aW9uIHwgYXN5bmMgYXMgcFwiPlxuXG4gIDxkaXYgY2xhc3M9XCJjaGFydC10b29sdGlwIGNvbG9yLXRleHQtOTAgYmctYmFja2dyb3VuZC01MCBzaGFkb3ctMiBwYWRkaW5nLTIgYm9yZGVyLXJhZGl1cy0xXCJcbiAgICAgICBbc3R5bGUucG9zaXRpb25dPVwiJ2ZpeGVkJ1wiXG4gICAgICAgW3N0eWxlLm9wYWNpdHldPVwiZGlzcGxheSB8IGFzeW5jXCJcbiAgICAgICBzdHlsZT1cInBvaW50ZXItZXZlbnRzOiBub25lO1wiXG4gICAgICAgW3N0eWxlLmxlZnRdPVwicC5sZWZ0XCJcbiAgICAgICBbc3R5bGUudG9wXT1cInAudG9wXCJcbiAgICAgICBbc3R5bGUuYm90dG9tXT1cInAuYm90dG9tXCJcbiAgICAgICBbc3R5bGUucmlnaHRdPVwicC5yaWdodFwiXG4gICAgICAgW2lubmVySFRNTF09XCJkaXNwbGF5VG9vbHRpcHMgfCBhc3luY1wiPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG4iXX0=
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input, ViewChild, } from '@angular/core';
|
|
2
|
-
import * as d3 from 'd3';
|
|
3
|
-
import { merge, takeWhile, tap } from 'rxjs';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../../service/scale.service";
|
|
6
|
-
import * as i2 from "../../service/chart.service";
|
|
7
|
-
import * as i3 from "../../service/zoom.service";
|
|
8
|
-
export class XAxisComponent {
|
|
9
|
-
constructor(scaleService, chartService, cdr, zoomService) {
|
|
10
|
-
this.scaleService = scaleService;
|
|
11
|
-
this.chartService = chartService;
|
|
12
|
-
this.cdr = cdr;
|
|
13
|
-
this.zoomService = zoomService;
|
|
14
|
-
this._alive = true;
|
|
15
|
-
merge(this.zoomService.zoomed, this.chartService.size)
|
|
16
|
-
.pipe(takeWhile(() => this._alive), tap((_) => {
|
|
17
|
-
this.draw();
|
|
18
|
-
this.cdr.detectChanges();
|
|
19
|
-
}))
|
|
20
|
-
.subscribe();
|
|
21
|
-
}
|
|
22
|
-
ngOnInit() { }
|
|
23
|
-
ngOnDestroy() {
|
|
24
|
-
this._alive = false;
|
|
25
|
-
}
|
|
26
|
-
ngAfterViewInit() {
|
|
27
|
-
this.draw();
|
|
28
|
-
}
|
|
29
|
-
draw() {
|
|
30
|
-
const scale = this.scaleService.xScales.get(this.axis.index);
|
|
31
|
-
const axis = this.axis.options.opposite
|
|
32
|
-
? d3
|
|
33
|
-
.axisTop(scale)
|
|
34
|
-
.tickFormat(this.axis.options.tickFormat ?? this.axis.defaultFormatter())
|
|
35
|
-
: d3
|
|
36
|
-
.axisBottom(scale)
|
|
37
|
-
.tickFormat(this.axis.options.tickFormat ?? this.axis.defaultFormatter());
|
|
38
|
-
d3.select(this.node.nativeElement)
|
|
39
|
-
.call(axis)
|
|
40
|
-
.call((_) => _.select('.domain').remove());
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
XAxisComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: XAxisComponent, deps: [{ token: i1.ScaleService }, { token: i2.ChartService }, { token: i0.ChangeDetectorRef }, { token: i3.ZoomService }], target: i0.ɵɵFactoryTarget.Component });
|
|
44
|
-
XAxisComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: XAxisComponent, selector: "[teta-x-axis]", inputs: { axis: "axis", size: "size" }, viewQueries: [{ propertyName: "node", first: true, predicate: ["svg"], descendants: true }], ngImport: i0, template: "<svg:g #svg></svg:g>\n", styles: [":host .tick{stroke:var(--color-text-20)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: XAxisComponent, decorators: [{
|
|
46
|
-
type: Component,
|
|
47
|
-
args: [{ selector: '[teta-x-axis]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg:g #svg></svg:g>\n", styles: [":host .tick{stroke:var(--color-text-20)}\n"] }]
|
|
48
|
-
}], ctorParameters: function () { return [{ type: i1.ScaleService }, { type: i2.ChartService }, { type: i0.ChangeDetectorRef }, { type: i3.ZoomService }]; }, propDecorators: { axis: [{
|
|
49
|
-
type: Input
|
|
50
|
-
}], size: [{
|
|
51
|
-
type: Input
|
|
52
|
-
}], node: [{
|
|
53
|
-
type: ViewChild,
|
|
54
|
-
args: ['svg']
|
|
55
|
-
}] } });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieC1heGlzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jaGFydC9jaGFydC1jb250YWluZXIveC1heGlzL3gtYXhpcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL3gtYXhpcy94LWF4aXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsS0FBSyxFQUtMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUV6QixPQUFPLEVBQWUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBUTFELE1BQU0sT0FBTyxjQUFjO0lBT3pCLFlBQ1UsWUFBMEIsRUFDMUIsWUFBMEIsRUFDMUIsR0FBc0IsRUFDdEIsV0FBd0I7UUFIeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFOMUIsV0FBTSxHQUFHLElBQUksQ0FBQztRQVFwQixLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7YUFDbkQsSUFBSSxDQUNILFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQzVCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLEtBQVUsQ0FBQztJQUVuQixXQUFXO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRU8sSUFBSTtRQUNWLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7WUFDckMsQ0FBQyxDQUFDLEVBQUU7aUJBQ0MsT0FBTyxDQUFDLEtBQUssQ0FBQztpQkFDZCxVQUFVLENBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FDN0Q7WUFDTCxDQUFDLENBQUMsRUFBRTtpQkFDQyxVQUFVLENBQUMsS0FBSyxDQUFDO2lCQUNqQixVQUFVLENBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FDN0QsQ0FBQztRQUVSLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7YUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNWLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7OzJHQXBEVSxjQUFjOytGQUFkLGNBQWMsMExDMUIzQix3QkFDQTsyRkR5QmEsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU07d0xBR3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ1ksSUFBSTtzQkFBckIsU0FBUzt1QkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXhpcyB9IGZyb20gJy4uLy4uL2NvcmUvYXhpcy9heGlzJztcbmltcG9ydCB7IFNjYWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2Uvc2NhbGUuc2VydmljZSc7XG5pbXBvcnQgeyBDaGFydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHsgWm9vbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3pvb20uc2VydmljZSc7XG5pbXBvcnQgeyBjb25jYXQsIG1hcCwgbWVyZ2UsIHRha2VXaGlsZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1t0ZXRhLXgtYXhpc10nLFxuICB0ZW1wbGF0ZVVybDogJy4veC1heGlzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4veC1heGlzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBYQXhpc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgYXhpczogQXhpcztcbiAgQElucHV0KCkgc2l6ZTogRE9NUmVjdDtcbiAgQFZpZXdDaGlsZCgnc3ZnJykgbm9kZTogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzY2FsZVNlcnZpY2U6IFNjYWxlU2VydmljZSxcbiAgICBwcml2YXRlIGNoYXJ0U2VydmljZTogQ2hhcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZVxuICApIHtcbiAgICBtZXJnZSh0aGlzLnpvb21TZXJ2aWNlLnpvb21lZCwgdGhpcy5jaGFydFNlcnZpY2Uuc2l6ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlV2hpbGUoKCkgPT4gdGhpcy5fYWxpdmUpLFxuICAgICAgICB0YXAoKF8pID0+IHtcbiAgICAgICAgICB0aGlzLmRyYXcoKTtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fYWxpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmRyYXcoKTtcbiAgfVxuXG4gIHByaXZhdGUgZHJhdygpIHtcbiAgICBjb25zdCBzY2FsZSA9IHRoaXMuc2NhbGVTZXJ2aWNlLnhTY2FsZXMuZ2V0KHRoaXMuYXhpcy5pbmRleCk7XG5cbiAgICBjb25zdCBheGlzID0gdGhpcy5heGlzLm9wdGlvbnMub3Bwb3NpdGVcbiAgICAgID8gZDNcbiAgICAgICAgICAuYXhpc1RvcChzY2FsZSlcbiAgICAgICAgICAudGlja0Zvcm1hdChcbiAgICAgICAgICAgIHRoaXMuYXhpcy5vcHRpb25zLnRpY2tGb3JtYXQgPz8gdGhpcy5heGlzLmRlZmF1bHRGb3JtYXR0ZXIoKVxuICAgICAgICAgIClcbiAgICAgIDogZDNcbiAgICAgICAgICAuYXhpc0JvdHRvbShzY2FsZSlcbiAgICAgICAgICAudGlja0Zvcm1hdChcbiAgICAgICAgICAgIHRoaXMuYXhpcy5vcHRpb25zLnRpY2tGb3JtYXQgPz8gdGhpcy5heGlzLmRlZmF1bHRGb3JtYXR0ZXIoKVxuICAgICAgICAgICk7XG5cbiAgICBkMy5zZWxlY3QodGhpcy5ub2RlLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAuY2FsbChheGlzKVxuICAgICAgLmNhbGwoKF8pID0+IF8uc2VsZWN0KCcuZG9tYWluJykucmVtb3ZlKCkpO1xuICB9XG59XG4iLCI8c3ZnOmcgI3N2Zz48L3N2ZzpnPlxuIl19
|