@tetacom/svg-charts 1.4.21 → 1.4.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/chart/base/series-base.component.d.ts +1 -1
- package/chart/chart/chart.component.d.ts +1 -1
- package/chart/chart-container/annotation/annotation.component.d.ts +1 -1
- package/chart/chart-container/chart-container.component.d.ts +1 -1
- package/chart/chart-container/crosshair/crosshair.component.d.ts +1 -1
- package/chart/chart-container/gridlines/gridlines.component.d.ts +1 -1
- package/chart/chart-container/plotband/plot-band.component.d.ts +1 -1
- package/chart/chart-container/plotline/plotline.component.d.ts +1 -1
- package/chart/chart-container/series/area-series/area-series.component.d.ts +1 -1
- package/chart/chart-container/series/bar/bar-series.component.d.ts +1 -1
- package/chart/chart-container/series/block-area-series/block-area-series.component.d.ts +1 -1
- package/chart/chart-container/series/block-series/block-series.component.d.ts +1 -1
- package/chart/chart-container/series/line/line-series.component.d.ts +1 -1
- package/chart/chart-container/series/linear-series-base.d.ts +1 -1
- package/chart/chart-container/series/scatter-series/scatter-series.component.d.ts +1 -1
- package/chart/chart-container/series-host/series-host.component.d.ts +1 -1
- package/chart/chart-container/tooltip/tooltip.component.d.ts +1 -1
- package/chart/chart-container/x-axis/x-axis.component.d.ts +1 -1
- package/chart/chart-container/y-axis/y-axis.component.d.ts +1 -1
- package/chart/directives/brushable.directive.d.ts +1 -1
- package/chart/directives/draggable-point.directive.d.ts +1 -1
- package/chart/directives/zoomable.directive.d.ts +1 -1
- package/chart/legend/legend.component.d.ts +1 -1
- package/chart/model/i-broadcast-message.d.ts +2 -2
- package/chart/stories/bandseries/bandseries.component.d.ts +1 -1
- package/esm2022/chart/base/series-base.component.mjs +50 -0
- package/esm2022/chart/chart/chart.component.mjs +175 -0
- package/esm2022/chart/chart-container/annotation/annotation.component.mjs +108 -0
- package/esm2022/chart/chart-container/chart-container.component.mjs +194 -0
- package/esm2022/chart/chart-container/crosshair/crosshair.component.mjs +39 -0
- package/esm2022/chart/chart-container/gridlines/gridlines.component.mjs +45 -0
- package/esm2022/chart/chart-container/plotband/plot-band.component.mjs +174 -0
- package/esm2022/chart/chart-container/plotline/plotline.component.mjs +98 -0
- package/esm2022/chart/chart-container/series/area-series/area-series.component.mjs +74 -0
- package/esm2022/chart/chart-container/series/bar/bar-series.component.mjs +68 -0
- package/esm2022/chart/chart-container/series/block-area-series/block-area-series.component.mjs +69 -0
- package/esm2022/chart/chart-container/series/block-series/block-series.component.mjs +69 -0
- package/{esm2020 → esm2022}/chart/chart-container/series/line/line-series.component.mjs +37 -30
- package/esm2022/chart/chart-container/series/linear-series-base.mjs +210 -0
- package/esm2022/chart/chart-container/series/scatter-series/scatter-series.component.mjs +53 -0
- package/esm2022/chart/chart-container/series-host/series-host.component.mjs +50 -0
- package/{esm2020 → esm2022}/chart/chart-container/tooltip/tooltip.component.mjs +18 -5
- package/esm2022/chart/chart-container/x-axis/x-axis.component.mjs +54 -0
- package/esm2022/chart/chart-container/y-axis/y-axis.component.mjs +40 -0
- package/{esm2020 → esm2022}/chart/chart.module.mjs +36 -36
- package/esm2022/chart/core/axis/axis.mjs +135 -0
- package/esm2022/chart/core/axis/builders/axis-size-builder.mjs +31 -0
- package/esm2022/chart/core/axis/builders/extremes-builder.mjs +33 -0
- package/esm2022/chart/directives/brushable.directive.mjs +162 -0
- package/esm2022/chart/directives/draggable-point.directive.mjs +147 -0
- package/esm2022/chart/directives/zoomable.directive.mjs +263 -0
- package/esm2022/chart/legend/legend.component.mjs +38 -0
- package/{esm2020 → esm2022}/chart/model/chart-bounds.mjs +5 -5
- package/esm2022/chart/model/i-broadcast-message.mjs +27 -0
- package/esm2022/chart/model/plot-band.mjs +28 -0
- package/esm2022/chart/model/plot-line.mjs +21 -0
- package/esm2022/chart/service/broadcast.service.mjs +24 -0
- package/esm2022/chart/service/brush.service.mjs +22 -0
- package/esm2022/chart/service/chart.service.mjs +244 -0
- package/esm2022/chart/service/scale.service.mjs +206 -0
- package/esm2022/chart/service/zoom.service.mjs +85 -0
- package/esm2022/chart/stories/bandseries/bandseries.component.mjs +36 -0
- package/{fesm2020 → fesm2022}/tetacom-svg-charts.mjs +584 -338
- package/fesm2022/tetacom-svg-charts.mjs.map +1 -0
- package/package.json +8 -14
- package/esm2020/chart/base/series-base.component.mjs +0 -42
- package/esm2020/chart/chart/chart.component.mjs +0 -172
- package/esm2020/chart/chart-container/annotation/annotation.component.mjs +0 -99
- package/esm2020/chart/chart-container/chart-container.component.mjs +0 -182
- package/esm2020/chart/chart-container/crosshair/crosshair.component.mjs +0 -34
- package/esm2020/chart/chart-container/gridlines/gridlines.component.mjs +0 -37
- package/esm2020/chart/chart-container/plotband/plot-band.component.mjs +0 -163
- package/esm2020/chart/chart-container/plotline/plotline.component.mjs +0 -87
- package/esm2020/chart/chart-container/series/area-series/area-series.component.mjs +0 -67
- package/esm2020/chart/chart-container/series/bar/bar-series.component.mjs +0 -59
- package/esm2020/chart/chart-container/series/block-area-series/block-area-series.component.mjs +0 -60
- package/esm2020/chart/chart-container/series/block-series/block-series.component.mjs +0 -60
- package/esm2020/chart/chart-container/series/linear-series-base.mjs +0 -198
- package/esm2020/chart/chart-container/series/scatter-series/scatter-series.component.mjs +0 -43
- package/esm2020/chart/chart-container/series-host/series-host.component.mjs +0 -46
- package/esm2020/chart/chart-container/x-axis/x-axis.component.mjs +0 -48
- package/esm2020/chart/chart-container/y-axis/y-axis.component.mjs +0 -36
- package/esm2020/chart/core/axis/axis.mjs +0 -128
- package/esm2020/chart/core/axis/builders/axis-size-builder.mjs +0 -33
- package/esm2020/chart/core/axis/builders/extremes-builder.mjs +0 -35
- package/esm2020/chart/directives/brushable.directive.mjs +0 -153
- package/esm2020/chart/directives/draggable-point.directive.mjs +0 -141
- package/esm2020/chart/directives/zoomable.directive.mjs +0 -254
- package/esm2020/chart/legend/legend.component.mjs +0 -36
- package/esm2020/chart/model/i-broadcast-message.mjs +0 -18
- package/esm2020/chart/model/plot-band.mjs +0 -17
- package/esm2020/chart/model/plot-line.mjs +0 -13
- package/esm2020/chart/service/broadcast.service.mjs +0 -23
- package/esm2020/chart/service/brush.service.mjs +0 -21
- package/esm2020/chart/service/chart.service.mjs +0 -229
- package/esm2020/chart/service/scale.service.mjs +0 -203
- package/esm2020/chart/service/zoom.service.mjs +0 -80
- package/esm2020/chart/stories/bandseries/bandseries.component.mjs +0 -29
- package/fesm2015/tetacom-svg-charts.mjs +0 -3095
- package/fesm2015/tetacom-svg-charts.mjs.map +0 -1
- package/fesm2020/tetacom-svg-charts.mjs.map +0 -1
- /package/{esm2020 → esm2022}/chart/chart-container/series/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/core/axis/builders/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/core/utils/generate-ticks.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/core/utils/get-text-width.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/core/utils/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/default/default-axis-config.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/default/default-chart-config.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/default/default-series-config.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/default/defaultSeriesTypeMapping.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/annotation.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/axis-options.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/base-point.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/enum/axis-orientation.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/enum/brush-type.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/enum/clip-points-direction.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/enum/drag-point-type.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/enum/fill-type.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/enum/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/enum/scale-type.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/enum/series-type.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/enum/tooltip-tracking.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/enum/zoom-behavior-type.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/enum/zoom-type.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/i-builder.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/i-chart-config.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/i-chart-event.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/i-display-tooltip.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/i-point-move.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/i-scales-map.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/marker-options.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/series.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/svg-attributes.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/model/tooltip-options.mjs +0 -0
- /package/{esm2020 → esm2022}/chart/service/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/tetacom-svg-charts.mjs +0 -0
|
@@ -1,87 +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
|
-
import * as i4 from "@angular/common";
|
|
9
|
-
export class PlotlineComponent {
|
|
10
|
-
constructor(cdr, zoomService, scaleService, chartService, element) {
|
|
11
|
-
this.cdr = cdr;
|
|
12
|
-
this.zoomService = zoomService;
|
|
13
|
-
this.scaleService = scaleService;
|
|
14
|
-
this.chartService = chartService;
|
|
15
|
-
this.element = element;
|
|
16
|
-
this.orientation = AxisOrientation;
|
|
17
|
-
}
|
|
18
|
-
ngOnInit() {
|
|
19
|
-
this._domain = this.scale.domain();
|
|
20
|
-
const plotlineElement = d3
|
|
21
|
-
.select(this.element.nativeElement)
|
|
22
|
-
.select('.plotline');
|
|
23
|
-
const grabElement = d3
|
|
24
|
-
.select(this.element.nativeElement)
|
|
25
|
-
.selectAll('.grabber');
|
|
26
|
-
this.dragElements = d3
|
|
27
|
-
.drag()
|
|
28
|
-
.subject(() => {
|
|
29
|
-
if (this.axis.orientation === AxisOrientation.y) {
|
|
30
|
-
return { y: plotlineElement.attr('y1') };
|
|
31
|
-
}
|
|
32
|
-
if (this.axis.orientation === AxisOrientation.x) {
|
|
33
|
-
return { x: plotlineElement.attr('x1') };
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
const drag = this.dragElements
|
|
37
|
-
.on('start drag end', (event, d) => {
|
|
38
|
-
d.value = this.scale.invert(event[AxisOrientation[this.axis.orientation]]);
|
|
39
|
-
if (d.max !== null && d.max !== undefined && d.value >= d.max) {
|
|
40
|
-
d.value = d.max;
|
|
41
|
-
}
|
|
42
|
-
if (d.min !== null && d.min !== undefined && d.value <= d.min) {
|
|
43
|
-
d.value = d.min;
|
|
44
|
-
}
|
|
45
|
-
this.emit({
|
|
46
|
-
event,
|
|
47
|
-
target: d,
|
|
48
|
-
});
|
|
49
|
-
this.cdr.detectChanges();
|
|
50
|
-
});
|
|
51
|
-
plotlineElement.datum(this.plotLine);
|
|
52
|
-
grabElement.datum(this.plotLine);
|
|
53
|
-
if (this.plotLine.draggable) {
|
|
54
|
-
grabElement.call(drag);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
ngOnDestroy() {
|
|
58
|
-
this.dragElements.on('start drag end', null);
|
|
59
|
-
}
|
|
60
|
-
emit(event) {
|
|
61
|
-
this.chartService.emitPlotline(event);
|
|
62
|
-
}
|
|
63
|
-
get value() {
|
|
64
|
-
return this.scale(this.plotLine.value);
|
|
65
|
-
}
|
|
66
|
-
get height() {
|
|
67
|
-
return this.size.height;
|
|
68
|
-
}
|
|
69
|
-
get width() {
|
|
70
|
-
return this.size.width;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
PlotlineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PlotlineComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ZoomService }, { token: i2.ScaleService }, { token: i3.ChartService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
74
|
-
PlotlineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PlotlineComponent, selector: "[teta-plot-line]", inputs: { plotLine: "plotLine", size: "size", axis: "axis", scale: "scale" }, 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\n<svg:text\n *ngIf=\"axis.orientation === orientation.x\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n class=\"label font-title-2 fill-text-70\"\n [attr.x]=\"value\"\n dy=\"-2em\"\n [attr.transform]=\"'rotate(-90, '+ value +',' + height / 2 + ')'\"\n [attr.y]=\"height / 2\">{{plotLine.label}}\n</svg:text>\n\n<svg:text\n *ngIf=\"axis.orientation === orientation.y\"\n text-anchor=\"middle\"\n class=\"label font-title-2 fill-text-70\"\n dominant-baseline=\"central\"\n [attr.x]=\"value\"\n [attr.y]=\"width / 2\">{{plotLine.label}}\n</svg:text>\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"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PlotlineComponent, decorators: [{
|
|
76
|
-
type: Component,
|
|
77
|
-
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\n<svg:text\n *ngIf=\"axis.orientation === orientation.x\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n class=\"label font-title-2 fill-text-70\"\n [attr.x]=\"value\"\n dy=\"-2em\"\n [attr.transform]=\"'rotate(-90, '+ value +',' + height / 2 + ')'\"\n [attr.y]=\"height / 2\">{{plotLine.label}}\n</svg:text>\n\n<svg:text\n *ngIf=\"axis.orientation === orientation.y\"\n text-anchor=\"middle\"\n class=\"label font-title-2 fill-text-70\"\n dominant-baseline=\"central\"\n [attr.x]=\"value\"\n [attr.y]=\"width / 2\">{{plotLine.label}}\n</svg:text>\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"] }]
|
|
78
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.ZoomService }, { type: i2.ScaleService }, { type: i3.ChartService }, { type: i0.ElementRef }]; }, propDecorators: { plotLine: [{
|
|
79
|
-
type: Input
|
|
80
|
-
}], size: [{
|
|
81
|
-
type: Input
|
|
82
|
-
}], axis: [{
|
|
83
|
-
type: Input
|
|
84
|
-
}], scale: [{
|
|
85
|
-
type: Input
|
|
86
|
-
}] } });
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvdGxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9wbG90bGluZS9wbG90bGluZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL3Bsb3RsaW5lL3Bsb3RsaW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFHbEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7Ozs7OztBQVV6QixNQUFNLE9BQU8saUJBQWlCO0lBVTVCLFlBQ1UsR0FBc0IsRUFDdEIsV0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIsWUFBMEIsRUFDMUIsT0FBbUI7UUFKbkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQVY3QixnQkFBVyxHQUFHLGVBQWUsQ0FBQztJQVk5QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVuQyxNQUFNLGVBQWUsR0FBRyxFQUFFO2FBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQzthQUNsQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFdkIsTUFBTSxXQUFXLEdBQUcsRUFBRTthQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7YUFD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QUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGxvdExpbmV9IGZyb20gJy4uLy4uL21vZGVsL3Bsb3QtbGluZSc7XG5pbXBvcnQge0F4aXN9IGZyb20gJy4uLy4uL2NvcmUvYXhpcy9heGlzJztcbmltcG9ydCB7QXhpc09yaWVudGF0aW9ufSBmcm9tICcuLi8uLi9tb2RlbC9lbnVtL2F4aXMtb3JpZW50YXRpb24nO1xuaW1wb3J0IHtab29tU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHtTY2FsZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2Uvc2NhbGUuc2VydmljZSc7XG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XG5pbXBvcnQge0lDaGFydEV2ZW50fSBmcm9tICcuLi8uLi9tb2RlbC9pLWNoYXJ0LWV2ZW50JztcbmltcG9ydCB7Q2hhcnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdbdGV0YS1wbG90LWxpbmVdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Bsb3RsaW5lLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGxvdGxpbmUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFBsb3RsaW5lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwbG90TGluZTogUGxvdExpbmU7XG4gIEBJbnB1dCgpIHNpemU6IERPTVJlY3Q7XG4gIEBJbnB1dCgpIGF4aXM6IEF4aXM7XG4gIEBJbnB1dCgpIHNjYWxlOiBhbnk7XG4gIG9yaWVudGF0aW9uID0gQXhpc09yaWVudGF0aW9uO1xuICBkcmFnRWxlbWVudHM6IGFueTtcblxuICBwcml2YXRlIF9kb21haW46IG51bWJlcltdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcml2YXRlIHNjYWxlU2VydmljZTogU2NhbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhcnRTZXJ2aWNlOiBDaGFydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmXG4gICkge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZG9tYWluID0gdGhpcy5zY2FsZS5kb21haW4oKTtcblxuICAgIGNvbnN0IHBsb3RsaW5lRWxlbWVudCA9IGQzXG4gICAgICAuc2VsZWN0KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KVxuICAgICAgLnNlbGVjdCgnLnBsb3RsaW5lJyk7XG5cbiAgICBjb25zdCBncmFiRWxlbWVudCA9IGQzXG4gICAgICAuc2VsZWN0KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KVxuICAgICAgLnNlbGVjdEFsbCgnLmdyYWJiZXInKTtcblxuICAgIHRoaXMuZHJhZ0VsZW1lbnRzID0gZDNcbiAgICAgIC5kcmFnKClcbiAgICAgIC5zdWJqZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnkpIHtcbiAgICAgICAgICByZXR1cm4ge3k6IHBsb3RsaW5lRWxlbWVudC5hdHRyKCd5MScpfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueCkge1xuICAgICAgICAgIHJldHVybiB7eDogcGxvdGxpbmVFbGVtZW50LmF0dHIoJ3gxJyl9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICBjb25zdCBkcmFnID0gdGhpcy5kcmFnRWxlbWVudHNcbiAgICAgIC5vbihcbiAgICAgICAgJ3N0YXJ0IGRyYWcgZW5kJyxcbiAgICAgICAgKGV2ZW50OiBkMy5EM0RyYWdFdmVudDxhbnksIFBsb3RMaW5lLCBhbnk+LCBkOiBQbG90TGluZSkgPT4ge1xuICAgICAgICAgIGQudmFsdWUgPSB0aGlzLnNjYWxlLmludmVydChcbiAgICAgICAgICAgIGV2ZW50W0F4aXNPcmllbnRhdGlvblt0aGlzLmF4aXMub3JpZW50YXRpb25dXVxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGQubWF4ICE9PSBudWxsICYmIGQubWF4ICE9PSB1bmRlZmluZWQgJiYgZC52YWx1ZSA+PSBkLm1heCkge1xuICAgICAgICAgICAgZC52YWx1ZSA9IGQubWF4O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZC5taW4gIT09IG51bGwgJiYgZC5taW4gIT09IHVuZGVmaW5lZCAmJiBkLnZhbHVlIDw9IGQubWluKSB7XG4gICAgICAgICAgICBkLnZhbHVlID0gZC5taW47XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZW1pdCh7XG4gICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgIHRhcmdldDogZCxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgIHBsb3RsaW5lRWxlbWVudC5kYXR1bTxQbG90TGluZT4odGhpcy5wbG90TGluZSk7XG4gICAgZ3JhYkVsZW1lbnQuZGF0dW08UGxvdExpbmU+KHRoaXMucGxvdExpbmUpO1xuXG4gICAgaWYgKHRoaXMucGxvdExpbmUuZHJhZ2dhYmxlKSB7XG4gICAgICBncmFiRWxlbWVudC5jYWxsKGRyYWcpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZHJhZ0VsZW1lbnRzLm9uKCdzdGFydCBkcmFnIGVuZCcsIG51bGwpO1xuICB9XG5cbiAgZW1pdChldmVudDogSUNoYXJ0RXZlbnQ8UGxvdExpbmU+KSB7XG4gICAgdGhpcy5jaGFydFNlcnZpY2UuZW1pdFBsb3RsaW5lKGV2ZW50KTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zY2FsZSh0aGlzLnBsb3RMaW5lLnZhbHVlKTtcbiAgfVxuXG4gIGdldCBoZWlnaHQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zaXplLmhlaWdodDtcbiAgfVxuXG4gIGdldCB3aWR0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnNpemUud2lkdGg7XG4gIH1cbn1cbiIsIjxzdmc6bGluZSBjbGFzcz1cInBsb3RsaW5lXCJcbiAgICAgICAgICBbYXR0ci5zdHJva2VdPVwicGxvdExpbmUuc3R5bGU/LnN0cm9rZSB8fCAncmVkJ1wiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInBsb3RMaW5lLnN0eWxlPy5zdHJva2VXaWR0aCB8fCA0XCJcbiAgICAgICAgICBbYXR0ci5zdHJva2UtZGFzaGFycmF5XT1cInBsb3RMaW5lLnN0eWxlPy5zdHJva2VEYXNoYXJyYXlcIlxuICAgICAgICAgIFthdHRyLngxXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyB2YWx1ZSA6IDBcIlxuICAgICAgICAgIFthdHRyLngyXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyB2YWx1ZSA6IHdpZHRoXCJcbiAgICAgICAgICBbYXR0ci55MV09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gMCA6IHZhbHVlXCJcbiAgICAgICAgICBbYXR0ci55Ml09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gaGVpZ2h0IDogdmFsdWVcIj5cbjwvc3ZnOmxpbmU+XG5cblxuPHN2Zzp0ZXh0XG4gICpuZ0lmPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueFwiXG4gIHRleHQtYW5jaG9yPVwibWlkZGxlXCJcbiAgZG9taW5hbnQtYmFzZWxpbmU9XCJjZW50cmFsXCJcbiAgY2xhc3M9XCJsYWJlbCBmb250LXRpdGxlLTIgZmlsbC10ZXh0LTcwXCJcbiAgW2F0dHIueF09XCJ2YWx1ZVwiXG4gIGR5PVwiLTJlbVwiXG4gIFthdHRyLnRyYW5zZm9ybV09XCIncm90YXRlKC05MCwgJysgdmFsdWUgKycsJyArIGhlaWdodCAvIDIgKyAnKSdcIlxuICBbYXR0ci55XT1cImhlaWdodCAvIDJcIj57e3Bsb3RMaW5lLmxhYmVsfX1cbjwvc3ZnOnRleHQ+XG5cbjxzdmc6dGV4dFxuICAqbmdJZj1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnlcIlxuICB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiXG4gIGNsYXNzPVwibGFiZWwgZm9udC10aXRsZS0yIGZpbGwtdGV4dC03MFwiXG4gIGRvbWluYW50LWJhc2VsaW5lPVwiY2VudHJhbFwiXG4gIFthdHRyLnhdPVwidmFsdWVcIlxuICBbYXR0ci55XT1cIndpZHRoIC8gMlwiPnt7cGxvdExpbmUubGFiZWx9fVxuPC9zdmc6dGV4dD5cblxuPHN2ZzpsaW5lIGNsYXNzPVwiZ3JhYmJlclwiXG5cbiAgICAgICAgICBbY2xhc3MueC1ncmFiYmVyXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnhcIlxuICAgICAgICAgIFtjbGFzcy55LWdyYWJiZXJdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueVwiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cIidyZWQnXCJcbiAgICAgICAgICBbYXR0ci5zdHJva2Utd2lkdGhdPVwiOFwiXG4gICAgICAgICAgb3BhY2l0eT1cIjBcIlxuICAgICAgICAgIFthdHRyLngxXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyB2YWx1ZSA6IDBcIlxuICAgICAgICAgIFthdHRyLngyXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyB2YWx1ZSA6IHdpZHRoXCJcbiAgICAgICAgICBbYXR0ci55MV09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gMCA6IHZhbHVlXCJcbiAgICAgICAgICBbYXR0ci55Ml09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gaGVpZ2h0IDogdmFsdWVcIj5cbjwvc3ZnOmxpbmU+XG4iXX0=
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, } from '@angular/core';
|
|
2
|
-
import { FillDirection, FillType } from '../../../model/enum/fill-type';
|
|
3
|
-
import { LinearSeriesBase } from '../linear-series-base';
|
|
4
|
-
import { map } from 'rxjs';
|
|
5
|
-
import * as d3 from 'd3';
|
|
6
|
-
import { ClipPointsDirection } from "../../../model/enum/clip-points-direction";
|
|
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 AreaSeriesComponent extends LinearSeriesBase {
|
|
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
|
-
this.fillDirection = FillDirection;
|
|
21
|
-
this.fillType = FillType;
|
|
22
|
-
this.id = (Date.now() + Math.random()).toString(36);
|
|
23
|
-
}
|
|
24
|
-
ngOnInit() {
|
|
25
|
-
super.ngOnInit();
|
|
26
|
-
this.areaPath = this.scaleService.scales.pipe(map((data) => {
|
|
27
|
-
const { x, y } = data;
|
|
28
|
-
this.x = x.get(this.series.xAxisIndex)?.scale;
|
|
29
|
-
this.y = y.get(this.series.yAxisIndex)?.scale;
|
|
30
|
-
if (!this.x || !this.y) {
|
|
31
|
-
return '';
|
|
32
|
-
}
|
|
33
|
-
const area = d3
|
|
34
|
-
.area()
|
|
35
|
-
.defined((point) => point.x !== null &&
|
|
36
|
-
point.y !== null &&
|
|
37
|
-
!isNaN(point.x) &&
|
|
38
|
-
!isNaN(point.y));
|
|
39
|
-
area
|
|
40
|
-
.x1((_) => _.x1 !== null && _.x1 !== undefined ? this.x(_.x1) : this.x(0))
|
|
41
|
-
.x0((_) => this.x(_.x))
|
|
42
|
-
.y((_) => this.y(_.y));
|
|
43
|
-
const filter = this.defaultClipPointsMapping.get(this.series.clipPointsDirection);
|
|
44
|
-
let filteredData = this.series.data;
|
|
45
|
-
if (this.series.clipPointsDirection === ClipPointsDirection.x) {
|
|
46
|
-
let [min, max] = this.x.domain();
|
|
47
|
-
min = min instanceof Date ? min.getTime() : min;
|
|
48
|
-
max = max instanceof Date ? max.getTime() : max;
|
|
49
|
-
filteredData = filteredData?.filter(filter(min, max));
|
|
50
|
-
}
|
|
51
|
-
if (this.series.clipPointsDirection === ClipPointsDirection.y) {
|
|
52
|
-
let [min, max] = this.y.domain();
|
|
53
|
-
min = min instanceof Date ? min.getTime() : min;
|
|
54
|
-
max = max instanceof Date ? max.getTime() : max;
|
|
55
|
-
filteredData = filteredData?.filter(filter(min, max));
|
|
56
|
-
}
|
|
57
|
-
return area(filteredData);
|
|
58
|
-
}));
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
AreaSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AreaSeriesComponent, deps: [{ token: i1.ChartService }, { token: i0.ChangeDetectorRef }, { token: i2.ScaleService }, { token: i3.ZoomService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
62
|
-
AreaSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AreaSeriesComponent, selector: "svg:svg[teta-area-series]", usesInheritance: true, ngImport: i0, template: "<svg:defs *ngIf=\"series?.fillType === fillType.gradient\">\n <svg:linearGradient [id]=\"'gradient-fill-' + id\" gradientUnits=\"userSpaceOnUse\"\n x1=\"0%\"\n [attr.y1]=\"config?.inverted || series?.fillDirection === fillDirection.y ? '0%' : '100%'\"\n [attr.x2]=\"config?.inverted || series?.fillDirection === fillDirection.y ? '100%' : '0%'\"\n y2=\"0%\">\n <svg:stop offset=\"0%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0.8\"></svg:stop>\n </svg:linearGradient>\n</svg:defs>\n<svg:path\n class=\"area\"\n [attr.d]=\"areaPath | async\"\n [attr.stroke-width]=\"0\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\"\n [attr.fill]=\"series.fillType === fillType.gradient ? 'url(#gradient-fill-'+id+')' : series.style?.fill ?? series.color\">\n</svg:path>\n<svg:path\n class=\"area\"\n fill=\"none\"\n [attr.d]=\"path | async\"\n [attr.stroke]=\"series.color\"\n [attr.stroke-dasharray]=\"series.style?.strokeDasharray\"\n [attr.stroke-width]=\"series.style?.strokeWidth\">\n</svg:path>\n<ng-container *ngIf=\"transform | async as t\">\n <svg:circle\n *ngIf=\"t?.x !=null && t?.y !=null\"\n r=\"3\"\n [attr.fill]=\"series.color\"\n [attr.transform]=\"'translate('+ t.x +', '+ t.y +')'\"\n >\n </svg:circle>\n</ng-container>\n<ng-container *ngIf=\"markers as draggablePoints\">\n <svg:circle\n class=\"marker\"\n *ngFor=\"let point of draggablePoints\"\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</ng-container>\n\n\n\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AreaSeriesComponent, decorators: [{
|
|
64
|
-
type: Component,
|
|
65
|
-
args: [{ selector: 'svg:svg[teta-area-series]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg:defs *ngIf=\"series?.fillType === fillType.gradient\">\n <svg:linearGradient [id]=\"'gradient-fill-' + id\" gradientUnits=\"userSpaceOnUse\"\n x1=\"0%\"\n [attr.y1]=\"config?.inverted || series?.fillDirection === fillDirection.y ? '0%' : '100%'\"\n [attr.x2]=\"config?.inverted || series?.fillDirection === fillDirection.y ? '100%' : '0%'\"\n y2=\"0%\">\n <svg:stop offset=\"0%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0.8\"></svg:stop>\n </svg:linearGradient>\n</svg:defs>\n<svg:path\n class=\"area\"\n [attr.d]=\"areaPath | async\"\n [attr.stroke-width]=\"0\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\"\n [attr.fill]=\"series.fillType === fillType.gradient ? 'url(#gradient-fill-'+id+')' : series.style?.fill ?? series.color\">\n</svg:path>\n<svg:path\n class=\"area\"\n fill=\"none\"\n [attr.d]=\"path | async\"\n [attr.stroke]=\"series.color\"\n [attr.stroke-dasharray]=\"series.style?.strokeDasharray\"\n [attr.stroke-width]=\"series.style?.strokeWidth\">\n</svg:path>\n<ng-container *ngIf=\"transform | async as t\">\n <svg:circle\n *ngIf=\"t?.x !=null && t?.y !=null\"\n r=\"3\"\n [attr.fill]=\"series.color\"\n [attr.transform]=\"'translate('+ t.x +', '+ t.y +')'\"\n >\n </svg:circle>\n</ng-container>\n<ng-container *ngIf=\"markers as draggablePoints\">\n <svg:circle\n class=\"marker\"\n *ngFor=\"let point of draggablePoints\"\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</ng-container>\n\n\n\n" }]
|
|
66
|
-
}], ctorParameters: function () { return [{ type: i1.ChartService }, { type: i0.ChangeDetectorRef }, { type: i2.ScaleService }, { type: i3.ZoomService }, { type: i0.ElementRef }]; } });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJlYS1zZXJpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYXJlYS1zZXJpZXMvYXJlYS1zZXJpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYXJlYS1zZXJpZXMvYXJlYS1zZXJpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEdBR1YsTUFBTSxlQUFlLENBQUM7QUFLdkIsT0FBTyxFQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQWdCLEdBQUcsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7O0FBUzlFLE1BQU0sT0FBTyxtQkFDWCxTQUFRLGdCQUFtQjtJQVEzQixZQUNxQixHQUFpQixFQUNqQixHQUFzQixFQUN0QixZQUEwQixFQUMxQixXQUF3QixFQUN4QixPQUFtQjtRQUV0QyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBTmpDLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFDakIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQVR4QyxrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUM5QixhQUFR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QUFtQixLQUFLLG1CQUFtQixDQUFDLENBQUMsRUFBRTtnQkFDNUQsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUVqQyxHQUFHLEdBQUcsR0FBRyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7Z0JBQ2hELEdBQUcsR0FBRyxHQUFHLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFFaEQsWUFBWSxHQUFHLFlBQVksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3ZEO1lBRUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUNGLENBQ0YsQ0FBQztJQUNKLENBQUM7O2dIQW5GVSxtQkFBbUI7b0dBQW5CLG1CQUFtQix3RkN6QmhDLDB5RUF1REE7MkZEOUJhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSwyQkFBMkIsbUJBR3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZiwgTmdab25lLCBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Jhc2VQb2ludH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvYmFzZS1wb2ludCc7XG5pbXBvcnQge0NoYXJ0U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7U2NhbGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3NjYWxlLnNlcnZpY2UnO1xuaW1wb3J0IHtab29tU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHtGaWxsRGlyZWN0aW9uLCBGaWxsVHlwZX0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZW51bS9maWxsLXR5cGUnO1xuaW1wb3J0IHtMaW5lYXJTZXJpZXNCYXNlfSBmcm9tICcuLi9saW5lYXItc2VyaWVzLWJhc2UnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHtDbGlwUG9pbnRzRGlyZWN0aW9ufSBmcm9tIFwiLi4vLi4vLi4vbW9kZWwvZW51bS9jbGlwLXBvaW50cy1kaXJlY3Rpb25cIjtcbmltcG9ydCB7QXhpc30gZnJvbSBcIi4uLy4uLy4uL2NvcmUvYXhpcy9heGlzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N2ZzpzdmdbdGV0YS1hcmVhLXNlcmllc10nLFxuICB0ZW1wbGF0ZVVybDogJy4vYXJlYS1zZXJpZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hcmVhLXNlcmllcy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQXJlYVNlcmllc0NvbXBvbmVudDxUIGV4dGVuZHMgQmFzZVBvaW50PlxuICBleHRlbmRzIExpbmVhclNlcmllc0Jhc2U8VD5cbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGFyZWFQYXRoOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgZmlsbERpcmVjdGlvbiA9IEZpbGxEaXJlY3Rpb247XG4gIGZpbGxUeXBlID0gRmlsbFR5cGU7XG4gIGlkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHN2YzogQ2hhcnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzY2FsZVNlcnZpY2U6IFNjYWxlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgem9vbVNlcnZpY2U6IFpvb21TZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBlbGVtZW50OiBFbGVtZW50UmVmXG4gICkge1xuICAgIHN1cGVyKHN2YywgY2RyLCBzY2FsZVNlcnZpY2UsIHpvb21TZXJ2aWNlLCBlbGVtZW50KTtcbiAgICB0aGlzLmlkID0gKERhdGUubm93KCkgKyBNYXRoLnJhbmRvbSgpKS50b1N0cmluZygzNik7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuYXJlYVBhdGggPSB0aGlzLnNjYWxlU2VydmljZS5zY2FsZXMucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKFxuICAgICAgICAgIGRhdGFcbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgY29uc3Qge3gsIHl9ID0gZGF0YTtcblxuICAgICAgICAgIHRoaXMueCA9IHguZ2V0KHRoaXMuc2VyaWVzLnhBeGlzSW5kZXgpPy5zY2FsZTtcbiAgICAgICAgICB0aGlzLnkgPSB5LmdldCh0aGlzLnNlcmllcy55QXhpc0luZGV4KT8uc2NhbGU7XG5cbiAgICAgICAgICBpZighdGhpcy54IHx8ICF0aGlzLnkpIHtcbiAgICAgICAgICAgIHJldHVybiAnJ1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGFyZWEgPSBkM1xuICAgICAgICAgICAgLmFyZWE8QmFzZVBvaW50PigpXG4gICAgICAgICAgICAuZGVmaW5lZChcbiAgICAgICAgICAgICAgKHBvaW50KSA9PlxuICAgICAgICAgICAgICAgIHBvaW50LnggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICBwb2ludC55ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgIWlzTmFOKHBvaW50LngpICYmXG4gICAgICAgICAgICAgICAgIWlzTmFOKHBvaW50LnkpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgYXJlYVxuICAgICAgICAgICAgLngxKChfKSA9PlxuICAgICAgICAgICAgICBfLngxICE9PSBudWxsICYmIF8ueDEgIT09IHVuZGVmaW5lZCA/IHRoaXMueChfLngxKSA6IHRoaXMueCgwKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLngwKChfKSA9PiB0aGlzLngoXy54KSlcblxuICAgICAgICAgICAgLnkoKF8pID0+XG4gICAgICAgICAgICAgIHRoaXMueShfLnkpXG4gICAgICAgICAgICApO1xuXG5cbiAgICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmRlZmF1bHRDbGlwUG9pbnRzTWFwcGluZy5nZXQodGhpcy5zZXJpZXMuY2xpcFBvaW50c0RpcmVjdGlvbik7XG4gICAgICAgICAgbGV0IGZpbHRlcmVkRGF0YSA9IHRoaXMuc2VyaWVzLmRhdGE7XG5cbiAgICAgICAgICBpZih0aGlzLnNlcmllcy5jbGlwUG9pbnRzRGlyZWN0aW9uID09PSBDbGlwUG9pbnRzRGlyZWN0aW9uLngpIHtcbiAgICAgICAgICAgIGxldCBbbWluLCBtYXhdID0gdGhpcy54LmRvbWFpbigpO1xuXG4gICAgICAgICAgICBtaW4gPSBtaW4gaW5zdGFuY2VvZiBEYXRlID8gbWluLmdldFRpbWUoKSA6IG1pbjtcbiAgICAgICAgICAgIG1heCA9IG1heCBpbnN0YW5jZW9mIERhdGUgPyBtYXguZ2V0VGltZSgpIDogbWF4O1xuXG4gICAgICAgICAgICBmaWx0ZXJlZERhdGEgPSBmaWx0ZXJlZERhdGE/LmZpbHRlcihmaWx0ZXIobWluLCBtYXgpKTtcbiAgICAgICAgICB9XG5cblxuICAgICAgICAgIGlmKHRoaXMuc2VyaWVzLmNsaXBQb2ludHNEaXJlY3Rpb24gPT09IENsaXBQb2ludHNEaXJlY3Rpb24ueSkge1xuICAgICAgICAgICAgbGV0IFttaW4sIG1heF0gPSB0aGlzLnkuZG9tYWluKCk7XG5cbiAgICAgICAgICAgIG1pbiA9IG1pbiBpbnN0YW5jZW9mIERhdGUgPyBtaW4uZ2V0VGltZSgpIDogbWluO1xuICAgICAgICAgICAgbWF4ID0gbWF4IGluc3RhbmNlb2YgRGF0ZSA/IG1heC5nZXRUaW1lKCkgOiBtYXg7XG5cbiAgICAgICAgICAgIGZpbHRlcmVkRGF0YSA9IGZpbHRlcmVkRGF0YT8uZmlsdGVyKGZpbHRlcihtaW4sIG1heCkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBhcmVhKGZpbHRlcmVkRGF0YSk7XG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iLCI8c3ZnOmRlZnMgKm5nSWY9XCJzZXJpZXM/LmZpbGxUeXBlID09PSBmaWxsVHlwZS5ncmFkaWVudFwiPlxuICA8c3ZnOmxpbmVhckdyYWRpZW50IFtpZF09XCInZ3JhZGllbnQtZmlsbC0nICsgaWRcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIlxuICAgICAgICAgICAgICAgICAgICAgIHgxPVwiMCVcIlxuICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnkxXT1cImNvbmZpZz8uaW52ZXJ0ZWQgfHwgc2VyaWVzPy5maWxsRGlyZWN0aW9uID09PSBmaWxsRGlyZWN0aW9uLnkgPyAnMCUnIDogJzEwMCUnXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci54Ml09XCJjb25maWc/LmludmVydGVkIHx8IHNlcmllcz8uZmlsbERpcmVjdGlvbiA9PT0gZmlsbERpcmVjdGlvbi55ID8gJzEwMCUnIDogJzAlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgeTI9XCIwJVwiPlxuICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCIwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMFwiPjwvc3ZnOnN0b3A+XG4gICAgPHN2ZzpzdG9wIG9mZnNldD1cIjUlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuY29sb3JcIiBzdG9wLW9wYWNpdHk9XCIwLjFcIj48L3N2ZzpzdG9wPlxuICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCIyMCVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cInNlcmllcy5jb2xvclwiIHN0b3Atb3BhY2l0eT1cIjAuMlwiPjwvc3ZnOnN0b3A+XG4gICAgPHN2ZzpzdG9wIG9mZnNldD1cIjYwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC41XCI+PC9zdmc6c3RvcD5cbiAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiMTAwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC44XCI+PC9zdmc6c3RvcD5cbiAgPC9zdmc6bGluZWFyR3JhZGllbnQ+XG48L3N2ZzpkZWZzPlxuPHN2ZzpwYXRoXG4gIGNsYXNzPVwiYXJlYVwiXG4gIFthdHRyLmRdPVwiYXJlYVBhdGggfCBhc3luY1wiXG4gIFthdHRyLnN0cm9rZS13aWR0aF09XCIwXCJcbiAgW2F0dHIuZmlsbC1vcGFjaXR5XT1cInNlcmllcy5zdHlsZT8uZmlsbE9wYWNpdHlcIlxuICBbYXR0ci5maWxsXT1cInNlcmllcy5maWxsVHlwZSA9PT0gZmlsbFR5cGUuZ3JhZGllbnQgPyAndXJsKCNncmFkaWVudC1maWxsLScraWQrJyknIDogc2VyaWVzLnN0eWxlPy5maWxsID8/IHNlcmllcy5jb2xvclwiPlxuPC9zdmc6cGF0aD5cbjxzdmc6cGF0aFxuICBjbGFzcz1cImFyZWFcIlxuICBmaWxsPVwibm9uZVwiXG4gIFthdHRyLmRdPVwicGF0aCB8IGFzeW5jXCJcbiAgW2F0dHIuc3Ryb2tlXT1cInNlcmllcy5jb2xvclwiXG4gIFthdHRyLnN0cm9rZS1kYXNoYXJyYXldPVwic2VyaWVzLnN0eWxlPy5zdHJva2VEYXNoYXJyYXlcIlxuICBbYXR0ci5zdHJva2Utd2lkdGhdPVwic2VyaWVzLnN0eWxlPy5zdHJva2VXaWR0aFwiPlxuPC9zdmc6cGF0aD5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ0cmFuc2Zvcm0gfCBhc3luYyBhcyB0XCI+XG4gIDxzdmc6Y2lyY2xlXG4gICAgKm5nSWY9XCJ0Py54ICE9bnVsbCAmJiB0Py55ICE9bnVsbFwiXG4gICAgcj1cIjNcIlxuICAgIFthdHRyLmZpbGxdPVwic2VyaWVzLmNvbG9yXCJcbiAgICBbYXR0ci50cmFuc2Zvcm1dPVwiJ3RyYW5zbGF0ZSgnKyB0LnggKycsICcrIHQueSArJyknXCJcbiAgPlxuICA8L3N2ZzpjaXJjbGU+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJtYXJrZXJzIGFzIGRyYWdnYWJsZVBvaW50c1wiPlxuICA8c3ZnOmNpcmNsZVxuICAgIGNsYXNzPVwibWFya2VyXCJcbiAgICAqbmdGb3I9XCJsZXQgcG9pbnQgb2YgZHJhZ2dhYmxlUG9pbnRzXCJcbiAgICBbY2xhc3MuZHJhZ2dhYmxlLW1hcmtlcl09XCJwb2ludD8ubWFya2VyPy5kcmFnZ2FibGVcIlxuICAgIFthdHRyLnJdPVwicG9pbnQubWFya2VyLnN0eWxlPy5yYWRpdXMgPz8gNVwiXG4gICAgW2F0dHIuZmlsbF09XCJwb2ludC5tYXJrZXIuc3R5bGU/LmZpbGwgPz8gJ3RyYW5zcGFyZW50J1wiXG4gICAgW2F0dHIuc3Ryb2tlXT1cInBvaW50Lm1hcmtlci5zdHlsZT8uc3Ryb2tlID8/ICdub25lJ1wiXG4gICAgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInBvaW50Lm1hcmtlci5zdHlsZT8uc3Ryb2tlV2lkdGhcIlxuICAgIFthdHRyLnN0cm9rZS1kYXNoYXJyYXldPVwicG9pbnQubWFya2VyLnN0eWxlPy5zdHJva2VEYXNoYXJyYXlcIlxuICAgIFthdHRyLmN4XT1cIngocG9pbnQueClcIlxuICAgIFthdHRyLmN5XT1cInkocG9pbnQueSlcIlxuICA+XG4gIDwvc3ZnOmNpcmNsZT5cbjwvbmctY29udGFpbmVyPlxuXG5cblxuIl19
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, } from '@angular/core';
|
|
2
|
-
import { SeriesBaseComponent } from '../../../base/series-base.component';
|
|
3
|
-
import { map } from 'rxjs';
|
|
4
|
-
import { SeriesType } from '../../../model/enum/series-type';
|
|
5
|
-
import * as d3 from 'd3';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../../../service/chart.service";
|
|
8
|
-
import * as i2 from "../../../service/scale.service";
|
|
9
|
-
import * as i3 from "../../../service/zoom.service";
|
|
10
|
-
import * as i4 from "@angular/common";
|
|
11
|
-
export class BarSeriesComponent extends SeriesBaseComponent {
|
|
12
|
-
constructor(svc, cdr, scaleService, zoomService, element) {
|
|
13
|
-
super(svc, cdr, scaleService, zoomService, element);
|
|
14
|
-
this.svc = svc;
|
|
15
|
-
this.cdr = cdr;
|
|
16
|
-
this.scaleService = scaleService;
|
|
17
|
-
this.zoomService = zoomService;
|
|
18
|
-
this.element = element;
|
|
19
|
-
this.Math = Math;
|
|
20
|
-
}
|
|
21
|
-
ngOnInit() {
|
|
22
|
-
this.barSeriesCount = this.svc.config.pipe(map((_) => {
|
|
23
|
-
const count = _.series.filter((_) => _.type === SeriesType.bar && _.xAxisIndex === this.series.xAxisIndex);
|
|
24
|
-
return count.length;
|
|
25
|
-
}));
|
|
26
|
-
this.x1 = this.scaleService.scales.pipe(map((_) => {
|
|
27
|
-
const x = _.x.get(this.series.xAxisIndex)?.scale;
|
|
28
|
-
const range = x.range();
|
|
29
|
-
const domain = this.series.data.map((_) => _.x);
|
|
30
|
-
return d3
|
|
31
|
-
.scaleBand()
|
|
32
|
-
.range([0, range[1]])
|
|
33
|
-
.domain(domain)
|
|
34
|
-
.padding(0.1);
|
|
35
|
-
}));
|
|
36
|
-
this.x = this.scaleService.scales.pipe(map((_) => _.x.get(this.series.xAxisIndex)?.scale));
|
|
37
|
-
this.y = this.scaleService.scales.pipe(map((_) => _.y.get(this.series.yAxisIndex)?.scale));
|
|
38
|
-
}
|
|
39
|
-
mouseenter(point) {
|
|
40
|
-
this.svc.setTooltip({
|
|
41
|
-
point: point,
|
|
42
|
-
series: this.series,
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
mouseleave(point) {
|
|
46
|
-
this.svc.setTooltip({
|
|
47
|
-
point: null,
|
|
48
|
-
series: this.series,
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
ngOnChanges(changes) { }
|
|
52
|
-
}
|
|
53
|
-
BarSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BarSeriesComponent, deps: [{ token: i1.ChartService }, { token: i0.ChangeDetectorRef }, { token: i2.ScaleService }, { token: i3.ZoomService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
54
|
-
BarSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: BarSeriesComponent, selector: "svg:svg[teta-bar-series]", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"{\n x: x | async,\n x1: x1 | async,\n y: y | async,\n barSeriesCount: barSeriesCount | async\n} as data\">\n <ng-container *ngIf=\"data.x && data.y\">\n <ng-container *ngIf=\"data.barSeriesCount > 1\">\n <svg:rect\n *ngFor=\"let point of series.data\"\n (mouseenter)=\"mouseenter(point)\"\n (mouseleave)=\"mouseleave(point)\"\n [attr.x]=\"data.x(point.x) + (series.id * data.x1.bandwidth() / data.barSeriesCount)\"\n [attr.y]=\"point.y > 0 ? data.y(point.y) : data.y(0)\"\n [attr.width]=\"data.x1.bandwidth() / data.barSeriesCount\"\n [attr.height]=\"Math.abs(data.y(point.y) - data.y(0))\"\n [attr.fill]=\"series.color\"\n ></svg:rect>\n </ng-container>\n <ng-container *ngIf=\"data.barSeriesCount === 1\">\n <svg:rect\n *ngFor=\"let point of series.data\"\n (mouseenter)=\"mouseenter(point)\"\n (mouseleave)=\"mouseleave(point)\"\n [attr.x]=\"data.x(point.x)\"\n [attr.y]=\"point.y > 0 ? data.y(point.y) : data.y(0)\"\n [attr.width]=\"data.x1.bandwidth()\"\n [attr.height]=\"Math.abs(data.y(point.y) - data.y(0))\"\n [attr.fill]=\"point.color ?? series.color\"\n ></svg:rect>\n </ng-container>\n </ng-container>\n</ng-container>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BarSeriesComponent, decorators: [{
|
|
56
|
-
type: Component,
|
|
57
|
-
args: [{ selector: 'svg:svg[teta-bar-series]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"{\n x: x | async,\n x1: x1 | async,\n y: y | async,\n barSeriesCount: barSeriesCount | async\n} as data\">\n <ng-container *ngIf=\"data.x && data.y\">\n <ng-container *ngIf=\"data.barSeriesCount > 1\">\n <svg:rect\n *ngFor=\"let point of series.data\"\n (mouseenter)=\"mouseenter(point)\"\n (mouseleave)=\"mouseleave(point)\"\n [attr.x]=\"data.x(point.x) + (series.id * data.x1.bandwidth() / data.barSeriesCount)\"\n [attr.y]=\"point.y > 0 ? data.y(point.y) : data.y(0)\"\n [attr.width]=\"data.x1.bandwidth() / data.barSeriesCount\"\n [attr.height]=\"Math.abs(data.y(point.y) - data.y(0))\"\n [attr.fill]=\"series.color\"\n ></svg:rect>\n </ng-container>\n <ng-container *ngIf=\"data.barSeriesCount === 1\">\n <svg:rect\n *ngFor=\"let point of series.data\"\n (mouseenter)=\"mouseenter(point)\"\n (mouseleave)=\"mouseleave(point)\"\n [attr.x]=\"data.x(point.x)\"\n [attr.y]=\"point.y > 0 ? data.y(point.y) : data.y(0)\"\n [attr.width]=\"data.x1.bandwidth()\"\n [attr.height]=\"Math.abs(data.y(point.y) - data.y(0))\"\n [attr.fill]=\"point.color ?? series.color\"\n ></svg:rect>\n </ng-container>\n </ng-container>\n</ng-container>\n\n" }]
|
|
58
|
-
}], ctorParameters: function () { return [{ type: i1.ChartService }, { type: i0.ChangeDetectorRef }, { type: i2.ScaleService }, { type: i3.ZoomService }, { type: i0.ElementRef }]; } });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLXNlcmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL3Nlcmllcy9iYXIvYmFyLXNlcmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL3Nlcmllcy9iYXIvYmFyLXNlcmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsR0FLVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUsxRSxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQzs7Ozs7O0FBUXpCLE1BQU0sT0FBTyxrQkFDWCxTQUFRLG1CQUFzQjtJQVc5QixZQUNxQixHQUFpQixFQUNqQixHQUFzQixFQUN0QixZQUEwQixFQUMxQixXQUF3QixFQUN4QixPQUFtQjtRQUV0QyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBTmpDLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFDakIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQVB4QyxTQUFJLEdBQVEsSUFBSSxDQUFDO0lBVWpCLENBQUM7SUFFUSxRQUFRO1FBQ2YsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3hDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQzNCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDSixDQUFDLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FDdkUsQ0FBQztZQUVGLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3JDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLENBQUM7WUFDakQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWhELE9BQU8sRUFBRTtpQkFDTixTQUFTLEVBQVU7aUJBQ25CLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQztpQkFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNwQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQ25ELENBQUM7UUFFRixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDcEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUNuRCxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFnQjtRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNsQixLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWdCO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2xCLEtBQUssRUFBRSxJQUFJO1lBQ1gsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0IsSUFBRyxDQUFDOzsrR0F2RTNCLGtCQUFrQjttR0FBbEIsa0JBQWtCLDRHQ3hCL0IsNHhDQWtDQTsyRkRWYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsMEJBQTBCLG1CQUduQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlcmllc0Jhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9iYXNlL3Nlcmllcy1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXNlUG9pbnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9iYXNlLXBvaW50JztcbmltcG9ydCB7IENoYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvY2hhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBTY2FsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3NjYWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgWm9vbVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3pvb20uc2VydmljZSc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNlcmllc1R5cGUgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lbnVtL3Nlcmllcy10eXBlJztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3ZnOnN2Z1t0ZXRhLWJhci1zZXJpZXNdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jhci1zZXJpZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iYXItc2VyaWVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCYXJTZXJpZXNDb21wb25lbnQ8VCBleHRlbmRzIEJhc2VQb2ludD5cbiAgZXh0ZW5kcyBTZXJpZXNCYXNlQ29tcG9uZW50PFQ+XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXNcbntcbiAgeDogT2JzZXJ2YWJsZTxhbnk+O1xuICB4MTogT2JzZXJ2YWJsZTxhbnk+O1xuICB5OiBPYnNlcnZhYmxlPGFueT47XG5cbiAgYmFyU2VyaWVzQ291bnQ6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICBNYXRoOiBhbnkgPSBNYXRoO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzdmM6IENoYXJ0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2NhbGVTZXJ2aWNlOiBTY2FsZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZWxlbWVudDogRWxlbWVudFJlZlxuICApIHtcbiAgICBzdXBlcihzdmMsIGNkciwgc2NhbGVTZXJ2aWNlLCB6b29tU2VydmljZSwgZWxlbWVudCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmJhclNlcmllc0NvdW50ID0gdGhpcy5zdmMuY29uZmlnLnBpcGUoXG4gICAgICBtYXAoKF8pID0+IHtcbiAgICAgICAgY29uc3QgY291bnQgPSBfLnNlcmllcy5maWx0ZXIoXG4gICAgICAgICAgKF8pID0+XG4gICAgICAgICAgICBfLnR5cGUgPT09IFNlcmllc1R5cGUuYmFyICYmIF8ueEF4aXNJbmRleCA9PT0gdGhpcy5zZXJpZXMueEF4aXNJbmRleFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBjb3VudC5sZW5ndGg7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLngxID0gdGhpcy5zY2FsZVNlcnZpY2Uuc2NhbGVzLnBpcGUoXG4gICAgICBtYXAoKF8pID0+IHtcbiAgICAgICAgY29uc3QgeCA9IF8ueC5nZXQodGhpcy5zZXJpZXMueEF4aXNJbmRleCk/LnNjYWxlO1xuICAgICAgICBjb25zdCByYW5nZSA9IHgucmFuZ2UoKTtcbiAgICAgICAgY29uc3QgZG9tYWluID0gdGhpcy5zZXJpZXMuZGF0YS5tYXAoKF8pID0+IF8ueCk7XG5cbiAgICAgICAgcmV0dXJuIGQzXG4gICAgICAgICAgLnNjYWxlQmFuZDxudW1iZXI+KClcbiAgICAgICAgICAucmFuZ2UoWzAsIHJhbmdlWzFdXSlcbiAgICAgICAgICAuZG9tYWluKGRvbWFpbilcbiAgICAgICAgICAucGFkZGluZygwLjEpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy54ID0gdGhpcy5zY2FsZVNlcnZpY2Uuc2NhbGVzLnBpcGUoXG4gICAgICBtYXAoKF8pID0+IF8ueC5nZXQodGhpcy5zZXJpZXMueEF4aXNJbmRleCk/LnNjYWxlKVxuICAgICk7XG5cbiAgICB0aGlzLnkgPSB0aGlzLnNjYWxlU2VydmljZS5zY2FsZXMucGlwZShcbiAgICAgIG1hcCgoXykgPT4gXy55LmdldCh0aGlzLnNlcmllcy55QXhpc0luZGV4KT8uc2NhbGUpXG4gICAgKTtcbiAgfVxuXG4gIG1vdXNlZW50ZXIocG9pbnQ6IEJhc2VQb2ludCkge1xuICAgIHRoaXMuc3ZjLnNldFRvb2x0aXAoe1xuICAgICAgcG9pbnQ6IHBvaW50LFxuICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcbiAgICB9KTtcbiAgfVxuXG4gIG1vdXNlbGVhdmUocG9pbnQ6IEJhc2VQb2ludCkge1xuICAgIHRoaXMuc3ZjLnNldFRvb2x0aXAoe1xuICAgICAgcG9pbnQ6IG51bGwsXG4gICAgICBzZXJpZXM6IHRoaXMuc2VyaWVzLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge31cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ7XG4gIHg6IHggfCBhc3luYyxcbiAgeDE6IHgxIHwgYXN5bmMsXG4gIHk6IHkgfCBhc3luYyxcbiAgYmFyU2VyaWVzQ291bnQ6IGJhclNlcmllc0NvdW50IHwgYXN5bmNcbn0gYXMgZGF0YVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS54ICYmIGRhdGEueVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhLmJhclNlcmllc0NvdW50ID4gMVwiPlxuICAgICAgPHN2ZzpyZWN0XG4gICAgICAgICpuZ0Zvcj1cImxldCBwb2ludCBvZiBzZXJpZXMuZGF0YVwiXG4gICAgICAgIChtb3VzZWVudGVyKT1cIm1vdXNlZW50ZXIocG9pbnQpXCJcbiAgICAgICAgKG1vdXNlbGVhdmUpPVwibW91c2VsZWF2ZShwb2ludClcIlxuICAgICAgICBbYXR0ci54XT1cImRhdGEueChwb2ludC54KSArIChzZXJpZXMuaWQgKiBkYXRhLngxLmJhbmR3aWR0aCgpIC8gZGF0YS5iYXJTZXJpZXNDb3VudClcIlxuICAgICAgICBbYXR0ci55XT1cInBvaW50LnkgPiAwID8gZGF0YS55KHBvaW50LnkpIDogZGF0YS55KDApXCJcbiAgICAgICAgW2F0dHIud2lkdGhdPVwiZGF0YS54MS5iYW5kd2lkdGgoKSAvIGRhdGEuYmFyU2VyaWVzQ291bnRcIlxuICAgICAgICBbYXR0ci5oZWlnaHRdPVwiTWF0aC5hYnMoZGF0YS55KHBvaW50LnkpIC0gZGF0YS55KDApKVwiXG4gICAgICAgIFthdHRyLmZpbGxdPVwic2VyaWVzLmNvbG9yXCJcbiAgICAgID48L3N2ZzpyZWN0PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhLmJhclNlcmllc0NvdW50ID09PSAxXCI+XG4gICAgICA8c3ZnOnJlY3RcbiAgICAgICAgKm5nRm9yPVwibGV0IHBvaW50IG9mIHNlcmllcy5kYXRhXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwibW91c2VlbnRlcihwb2ludClcIlxuICAgICAgICAobW91c2VsZWF2ZSk9XCJtb3VzZWxlYXZlKHBvaW50KVwiXG4gICAgICAgIFthdHRyLnhdPVwiZGF0YS54KHBvaW50LngpXCJcbiAgICAgICAgW2F0dHIueV09XCJwb2ludC55ID4gMCA/IGRhdGEueShwb2ludC55KSA6IGRhdGEueSgwKVwiXG4gICAgICAgIFthdHRyLndpZHRoXT1cImRhdGEueDEuYmFuZHdpZHRoKClcIlxuICAgICAgICBbYXR0ci5oZWlnaHRdPVwiTWF0aC5hYnMoZGF0YS55KHBvaW50LnkpIC0gZGF0YS55KDApKVwiXG4gICAgICAgIFthdHRyLmZpbGxdPVwicG9pbnQuY29sb3IgPz8gc2VyaWVzLmNvbG9yXCJcbiAgICAgID48L3N2ZzpyZWN0PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG4iXX0=
|
package/esm2020/chart/chart-container/series/block-area-series/block-area-series.component.mjs
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, } from '@angular/core';
|
|
2
|
-
import { SeriesBaseComponent } from '../../../base/series-base.component';
|
|
3
|
-
import { filter, map } from 'rxjs';
|
|
4
|
-
import { FillType } from '../../../model/enum/fill-type';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../../../service/chart.service";
|
|
7
|
-
import * as i2 from "../../../service/scale.service";
|
|
8
|
-
import * as i3 from "../../../service/zoom.service";
|
|
9
|
-
import * as i4 from "@angular/common";
|
|
10
|
-
export class BlockAreaSeriesComponent extends SeriesBaseComponent {
|
|
11
|
-
constructor(svc, cdr, scaleService, zoomService, element) {
|
|
12
|
-
super(svc, cdr, scaleService, zoomService, element);
|
|
13
|
-
this.svc = svc;
|
|
14
|
-
this.cdr = cdr;
|
|
15
|
-
this.scaleService = scaleService;
|
|
16
|
-
this.zoomService = zoomService;
|
|
17
|
-
this.element = element;
|
|
18
|
-
this.fillType = FillType;
|
|
19
|
-
this.Math = Math;
|
|
20
|
-
this.id = (Date.now() + Math.random()).toString(36);
|
|
21
|
-
}
|
|
22
|
-
ngOnInit() {
|
|
23
|
-
this.x = this.scaleService.scales.pipe(map((_) => _.x.get(this.series.xAxisIndex)?.scale));
|
|
24
|
-
this.y = this.scaleService.scales.pipe(map((_) => _.y.get(this.series.yAxisIndex)?.scale));
|
|
25
|
-
this.displayPoints = this.y.pipe(filter((y) => y), map((y) => {
|
|
26
|
-
return this.series.data.filter((point, index, arr) => {
|
|
27
|
-
const [min, max] = y.domain();
|
|
28
|
-
return (point.y >= min ||
|
|
29
|
-
point.y1 >= min ||
|
|
30
|
-
arr[index + 1]?.y >= min ||
|
|
31
|
-
arr[index + 1]?.y1 >= min) &&
|
|
32
|
-
(point.y <= max ||
|
|
33
|
-
point.y1 <= max ||
|
|
34
|
-
arr[index - 1]?.y <= max ||
|
|
35
|
-
arr[index - 1]?.y1 <= max);
|
|
36
|
-
});
|
|
37
|
-
}));
|
|
38
|
-
}
|
|
39
|
-
ngAfterViewInit() {
|
|
40
|
-
}
|
|
41
|
-
mouseenter(point) {
|
|
42
|
-
this.svc.setTooltip({
|
|
43
|
-
point: point,
|
|
44
|
-
series: this.series,
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
mouseleave(point) {
|
|
48
|
-
this.svc.setTooltip({
|
|
49
|
-
point: null,
|
|
50
|
-
series: this.series,
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
BlockAreaSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BlockAreaSeriesComponent, deps: [{ token: i1.ChartService }, { token: i0.ChangeDetectorRef }, { token: i2.ScaleService }, { token: i3.ZoomService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
55
|
-
BlockAreaSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: BlockAreaSeriesComponent, selector: "svg:svg[teta-block-area-series]", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"{\n y: y | async,\n x: x | async,\n points: displayPoints | async\n} as data\">\n <svg:defs *ngIf=\"series?.fillType === fillType.gradient\">\n <svg:linearGradient [id]=\"'gradient-fill-' + id\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"0%\"\n [attr.y1]=\"config?.inverted ? '0%' : '100%'\"\n [attr.x2]=\"config?.inverted ? '100%' : '0%'\"\n y2=\"0%\">\n <svg:stop offset=\"0%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.9\"></svg:stop>\n </svg:linearGradient>\n </svg:defs>\n <ng-container *ngIf=\"data.x && data.y\">\n\n\n <ng-container *ngFor=\"let point of data.points\">\n <svg:g (mouseenter)=\"mouseenter(point)\"\n (mouseleave)=\"mouseleave(point)\">\n <svg:rect\n *ngIf=\"!!config.inverted\"\n [attr.x]=\"data.x(0) < data.x(point.x) ? data.x(0) : data.x(point.x)\"\n [attr.y]=\"data.y(point.y)\"\n [attr.height]=\"Math.abs(data.y(point.y1) - data.y(point.y))\"\n [attr.width]=\"data.x(0) < data.x(point.x) ? data.x(point.x) - data.x(0) : data.x(0) - data.x(point.x)\"\n [attr.stroke]=\"point.iconId ? '' : point.color ?? series.style?.stroke ?? series.color\"\n [attr.stroke-dasharray]=\"series.style?.strokeDasharray\"\n [attr.stroke-width]=\"series.style?.strokeWidth\"\n [attr.fill]=\"series.fillType === fillType.gradient ? 'url(#gradient-fill-'+id+')' : point.iconId ? 'url(#pattern'+point.iconId+')' : point.color ?? series.style?.fill ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\">\n </svg:rect>\n <svg:rect\n *ngIf=\"!config.inverted\"\n [attr.x]=\"data.x(point.x)\"\n [attr.y]=\"data.y(0)\"\n [attr.height]=\"Math.abs(data.y(0) - data.y(point.y))\"\n [attr.width]=\"data.x(point.x1) - data.x(point.x)\"\n [attr.stroke]=\"point.iconId ? '' : point.color ?? series.color\"\n [attr.stroke-dasharray]=\"series.style?.strokeDasharray\"\n [attr.stroke-width]=\"series.style?.strokeWidth\"\n [attr.fill]=\"series.fillType === fillType.gradient ? 'url(#gradient-fill-'+id+')' : point.iconId ? 'url(#pattern'+point.iconId+')' : point.color ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\">\n </svg:rect>\n <svg:text *ngIf=\"point.text\"\n x=\"50%\"\n [attr.y]=\"(data.y(point.y1) + data.y(point.y)) / 2\"\n alignment-baseline=\"middle\"\n text-anchor=\"middle\">{{ point.text }}\n </svg:text>\n\n <!-- <svg:line x1=\"0\" x2=\"100%\" [attr.y1]=\"data.y(point.y)\" [attr.y2]=\"data.y(point.y)\" [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.color\"></svg:line>-->\n <!-- <svg:line x1=\"0\" x2=\"100%\" [attr.y1]=\"data.y(point.y1)\" [attr.y2]=\"data.y(point.y1)\" [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.color\"></svg:line>-->\n\n </svg:g>\n </ng-container>\n\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BlockAreaSeriesComponent, decorators: [{
|
|
57
|
-
type: Component,
|
|
58
|
-
args: [{ selector: 'svg:svg[teta-block-area-series]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"{\n y: y | async,\n x: x | async,\n points: displayPoints | async\n} as data\">\n <svg:defs *ngIf=\"series?.fillType === fillType.gradient\">\n <svg:linearGradient [id]=\"'gradient-fill-' + id\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"0%\"\n [attr.y1]=\"config?.inverted ? '0%' : '100%'\"\n [attr.x2]=\"config?.inverted ? '100%' : '0%'\"\n y2=\"0%\">\n <svg:stop offset=\"0%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.9\"></svg:stop>\n </svg:linearGradient>\n </svg:defs>\n <ng-container *ngIf=\"data.x && data.y\">\n\n\n <ng-container *ngFor=\"let point of data.points\">\n <svg:g (mouseenter)=\"mouseenter(point)\"\n (mouseleave)=\"mouseleave(point)\">\n <svg:rect\n *ngIf=\"!!config.inverted\"\n [attr.x]=\"data.x(0) < data.x(point.x) ? data.x(0) : data.x(point.x)\"\n [attr.y]=\"data.y(point.y)\"\n [attr.height]=\"Math.abs(data.y(point.y1) - data.y(point.y))\"\n [attr.width]=\"data.x(0) < data.x(point.x) ? data.x(point.x) - data.x(0) : data.x(0) - data.x(point.x)\"\n [attr.stroke]=\"point.iconId ? '' : point.color ?? series.style?.stroke ?? series.color\"\n [attr.stroke-dasharray]=\"series.style?.strokeDasharray\"\n [attr.stroke-width]=\"series.style?.strokeWidth\"\n [attr.fill]=\"series.fillType === fillType.gradient ? 'url(#gradient-fill-'+id+')' : point.iconId ? 'url(#pattern'+point.iconId+')' : point.color ?? series.style?.fill ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\">\n </svg:rect>\n <svg:rect\n *ngIf=\"!config.inverted\"\n [attr.x]=\"data.x(point.x)\"\n [attr.y]=\"data.y(0)\"\n [attr.height]=\"Math.abs(data.y(0) - data.y(point.y))\"\n [attr.width]=\"data.x(point.x1) - data.x(point.x)\"\n [attr.stroke]=\"point.iconId ? '' : point.color ?? series.color\"\n [attr.stroke-dasharray]=\"series.style?.strokeDasharray\"\n [attr.stroke-width]=\"series.style?.strokeWidth\"\n [attr.fill]=\"series.fillType === fillType.gradient ? 'url(#gradient-fill-'+id+')' : point.iconId ? 'url(#pattern'+point.iconId+')' : point.color ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\">\n </svg:rect>\n <svg:text *ngIf=\"point.text\"\n x=\"50%\"\n [attr.y]=\"(data.y(point.y1) + data.y(point.y)) / 2\"\n alignment-baseline=\"middle\"\n text-anchor=\"middle\">{{ point.text }}\n </svg:text>\n\n <!-- <svg:line x1=\"0\" x2=\"100%\" [attr.y1]=\"data.y(point.y)\" [attr.y2]=\"data.y(point.y)\" [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.color\"></svg:line>-->\n <!-- <svg:line x1=\"0\" x2=\"100%\" [attr.y1]=\"data.y(point.y1)\" [attr.y2]=\"data.y(point.y1)\" [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.color\"></svg:line>-->\n\n </svg:g>\n </ng-container>\n\n </ng-container>\n</ng-container>\n" }]
|
|
59
|
-
}], ctorParameters: function () { return [{ type: i1.ChartService }, { type: i0.ChangeDetectorRef }, { type: i2.ScaleService }, { type: i3.ZoomService }, { type: i0.ElementRef }]; } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYXJlYS1zZXJpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEdBR1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFLeEUsT0FBTyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7QUFRdkQsTUFBTSxPQUFPLHdCQUNYLFNBQVEsbUJBQXNCO0lBUTlCLFlBQ3FCLEdBQWlCLEVBQ2pCLEdBQXNCLEVBQ3RCLFlBQTBCLEVBQzFCLFdBQXdCLEVBQ3hCLE9BQW1CO1FBRXRDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFOakMsUUFBRyxHQUFILEdBQUcsQ0FBYztRQUNqQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBUnhDLGFBQVEsR0FBRyxRQUFRLENBQUM7UUFFcEIsU0FBSSxHQUFHLElBQUksQ0FBQztRQVNWLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFUSxRQUFRO1FBQ2YsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3BDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FDbkQsQ0FBQztRQUNGLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNwQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQ25ELENBQUM7UUFFRixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM5QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUNoQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDbkQsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzlCLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEdBQUc7b0JBQ2xCLEtBQUssQ0FBQyxFQUFFLElBQUksR0FBRztvQkFDZixHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHO29CQUN4QixHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLENBQUM7b0JBQzVCLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHO3dCQUNiLEtBQUssQ0FBQyxFQUFFLElBQUksR0FBRzt3QkFDZixHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHO3dCQUN4QixHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZTtJQUNmLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBZ0I7UUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDbEIsS0FBSyxFQUFFLEtBQUs7WUFDWixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFnQjtRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNsQixLQUFLLEVBQUUsSUFBSTtZQUNYLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDOztxSEE3RFUsd0JBQXdCO3lHQUF4Qix3QkFBd0IsOEZDdEJyQyxzcUhBZ0VBOzJGRDFDYSx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0UsaUNBQWlDLG1CQUcxQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1Nlcmllc0Jhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2Jhc2Uvc2VyaWVzLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7QmFzZVBvaW50fSBmcm9tICcuLi8uLi8uLi9tb2RlbC9iYXNlLXBvaW50JztcbmltcG9ydCB7Q2hhcnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHtTY2FsZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2Uvc2NhbGUuc2VydmljZSc7XG5pbXBvcnQge1pvb21TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3pvb20uc2VydmljZSc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7RmlsbFR5cGV9IGZyb20gJy4uLy4uLy4uL21vZGVsL2VudW0vZmlsbC10eXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3ZnOnN2Z1t0ZXRhLWJsb2NrLWFyZWEtc2VyaWVzXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ibG9jay1hcmVhLXNlcmllcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Jsb2NrLWFyZWEtc2VyaWVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCbG9ja0FyZWFTZXJpZXNDb21wb25lbnQ8VCBleHRlbmRzIEJhc2VQb2ludD5cbiAgZXh0ZW5kcyBTZXJpZXNCYXNlQ29tcG9uZW50PFQ+XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgeDogT2JzZXJ2YWJsZTxhbnk+O1xuICB5OiBPYnNlcnZhYmxlPGFueT47XG4gIGRpc3BsYXlQb2ludHM6IE9ic2VydmFibGU8QmFzZVBvaW50W10+O1xuICBmaWxsVHlwZSA9IEZpbGxUeXBlO1xuICBpZDogc3RyaW5nO1xuICBNYXRoID0gTWF0aDtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHN2YzogQ2hhcnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzY2FsZVNlcnZpY2U6IFNjYWxlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgem9vbVNlcnZpY2U6IFpvb21TZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBlbGVtZW50OiBFbGVtZW50UmVmXG4gICkge1xuICAgIHN1cGVyKHN2YywgY2RyLCBzY2FsZVNlcnZpY2UsIHpvb21TZXJ2aWNlLCBlbGVtZW50KTtcbiAgICB0aGlzLmlkID0gKERhdGUubm93KCkgKyBNYXRoLnJhbmRvbSgpKS50b1N0cmluZygzNik7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnggPSB0aGlzLnNjYWxlU2VydmljZS5zY2FsZXMucGlwZShcbiAgICAgIG1hcCgoXykgPT4gXy54LmdldCh0aGlzLnNlcmllcy54QXhpc0luZGV4KT8uc2NhbGUpXG4gICAgKTtcbiAgICB0aGlzLnkgPSB0aGlzLnNjYWxlU2VydmljZS5zY2FsZXMucGlwZShcbiAgICAgIG1hcCgoXykgPT4gXy55LmdldCh0aGlzLnNlcmllcy55QXhpc0luZGV4KT8uc2NhbGUpXG4gICAgKTtcblxuICAgIHRoaXMuZGlzcGxheVBvaW50cyA9IHRoaXMueS5waXBlKFxuICAgICAgZmlsdGVyKCh5KSA9PiB5KSxcbiAgICAgIG1hcCgoeSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXJpZXMuZGF0YS5maWx0ZXIoKHBvaW50LCBpbmRleCwgYXJyKSA9PiB7XG4gICAgICAgICAgY29uc3QgW21pbiwgbWF4XSA9IHkuZG9tYWluKCk7XG4gICAgICAgICAgcmV0dXJuIChwb2ludC55ID49IG1pbiB8fFxuICAgICAgICAgICAgICBwb2ludC55MSA+PSBtaW4gfHxcbiAgICAgICAgICAgICAgYXJyW2luZGV4ICsgMV0/LnkgPj0gbWluIHx8XG4gICAgICAgICAgICAgIGFycltpbmRleCArIDFdPy55MSA+PSBtaW4pICYmXG4gICAgICAgICAgICAocG9pbnQueSA8PSBtYXggfHxcbiAgICAgICAgICAgICAgcG9pbnQueTEgPD0gbWF4IHx8XG4gICAgICAgICAgICAgIGFycltpbmRleCAtIDFdPy55IDw9IG1heCB8fFxuICAgICAgICAgICAgICBhcnJbaW5kZXggLSAxXT8ueTEgPD0gbWF4KTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gIH1cblxuICBtb3VzZWVudGVyKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgIHBvaW50OiBwb2ludCxcbiAgICAgIHNlcmllczogdGhpcy5zZXJpZXMsXG4gICAgfSk7XG4gIH1cblxuICBtb3VzZWxlYXZlKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgIHBvaW50OiBudWxsLFxuICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIntcbiAgeTogeSB8IGFzeW5jLFxuICB4OiB4IHwgYXN5bmMsXG4gIHBvaW50czogZGlzcGxheVBvaW50cyB8IGFzeW5jXG59IGFzIGRhdGFcIj5cbiAgPHN2ZzpkZWZzICpuZ0lmPVwic2VyaWVzPy5maWxsVHlwZSA9PT0gZmlsbFR5cGUuZ3JhZGllbnRcIj5cbiAgICA8c3ZnOmxpbmVhckdyYWRpZW50IFtpZF09XCInZ3JhZGllbnQtZmlsbC0nICsgaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHgxPVwiMCVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIueTFdPVwiY29uZmlnPy5pbnZlcnRlZCA/ICcwJScgOiAnMTAwJSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIueDJdPVwiY29uZmlnPy5pbnZlcnRlZCA/ICcxMDAlJyA6ICcwJSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgeTI9XCIwJVwiPlxuICAgICAgPHN2ZzpzdG9wIG9mZnNldD1cIjAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMFwiPjwvc3ZnOnN0b3A+XG4gICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiNSVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cInNlcmllcy5zdHlsZT8uZmlsbCA/PyBzZXJpZXMuY29sb3JcIiBzdG9wLW9wYWNpdHk9XCIwLjFcIj48L3N2ZzpzdG9wPlxuICAgICAgPHN2ZzpzdG9wIG9mZnNldD1cIjIwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLnN0eWxlPy5maWxsID8/IHNlcmllcy5jb2xvclwiIHN0b3Atb3BhY2l0eT1cIjAuMlwiPjwvc3ZnOnN0b3A+XG4gICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiNjAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC41XCI+PC9zdmc6c3RvcD5cbiAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCIxMDAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC45XCI+PC9zdmc6c3RvcD5cbiAgICA8L3N2ZzpsaW5lYXJHcmFkaWVudD5cbiAgPC9zdmc6ZGVmcz5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEueCAmJiBkYXRhLnlcIj5cblxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcG9pbnQgb2YgZGF0YS5wb2ludHNcIj5cbiAgICAgIDxzdmc6ZyAobW91c2VlbnRlcik9XCJtb3VzZWVudGVyKHBvaW50KVwiXG4gICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwibW91c2VsZWF2ZShwb2ludClcIj5cbiAgICAgICAgPHN2ZzpyZWN0XG4gICAgICAgICAgKm5nSWY9XCIhIWNvbmZpZy5pbnZlcnRlZFwiXG4gICAgICAgICAgW2F0dHIueF09XCJkYXRhLngoMCkgPCBkYXRhLngocG9pbnQueCkgPyBkYXRhLngoMCkgOiBkYXRhLngocG9pbnQueClcIlxuICAgICAgICAgIFthdHRyLnldPVwiZGF0YS55KHBvaW50LnkpXCJcbiAgICAgICAgICBbYXR0ci5oZWlnaHRdPVwiTWF0aC5hYnMoZGF0YS55KHBvaW50LnkxKSAtIGRhdGEueShwb2ludC55KSlcIlxuICAgICAgICAgIFthdHRyLndpZHRoXT1cImRhdGEueCgwKSA8IGRhdGEueChwb2ludC54KSA/IGRhdGEueChwb2ludC54KSAtIGRhdGEueCgwKSA6IGRhdGEueCgwKSAtIGRhdGEueChwb2ludC54KVwiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInBvaW50Lmljb25JZCA/ICcnIDogcG9pbnQuY29sb3IgPz8gc2VyaWVzLnN0eWxlPy5zdHJva2UgPz8gc2VyaWVzLmNvbG9yXCJcbiAgICAgICAgICBbYXR0ci5zdHJva2UtZGFzaGFycmF5XT1cInNlcmllcy5zdHlsZT8uc3Ryb2tlRGFzaGFycmF5XCJcbiAgICAgICAgICBbYXR0ci5zdHJva2Utd2lkdGhdPVwic2VyaWVzLnN0eWxlPy5zdHJva2VXaWR0aFwiXG4gICAgICAgICAgW2F0dHIuZmlsbF09XCJzZXJpZXMuZmlsbFR5cGUgPT09IGZpbGxUeXBlLmdyYWRpZW50ID8gJ3VybCgjZ3JhZGllbnQtZmlsbC0nK2lkKycpJyA6IHBvaW50Lmljb25JZCA/ICd1cmwoI3BhdHRlcm4nK3BvaW50Lmljb25JZCsnKScgOiBwb2ludC5jb2xvciA/PyBzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCJcbiAgICAgICAgICBbYXR0ci5maWxsLW9wYWNpdHldPVwic2VyaWVzLnN0eWxlPy5maWxsT3BhY2l0eVwiPlxuICAgICAgICA8L3N2ZzpyZWN0PlxuICAgICAgICA8c3ZnOnJlY3RcbiAgICAgICAgICAqbmdJZj1cIiFjb25maWcuaW52ZXJ0ZWRcIlxuICAgICAgICAgIFthdHRyLnhdPVwiZGF0YS54KHBvaW50LngpXCJcbiAgICAgICAgICBbYXR0ci55XT1cImRhdGEueSgwKVwiXG4gICAgICAgICAgW2F0dHIuaGVpZ2h0XT1cIk1hdGguYWJzKGRhdGEueSgwKSAtIGRhdGEueShwb2ludC55KSlcIlxuICAgICAgICAgIFthdHRyLndpZHRoXT1cImRhdGEueChwb2ludC54MSkgLSBkYXRhLngocG9pbnQueClcIlxuICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJwb2ludC5pY29uSWQgPyAnJyA6IHBvaW50LmNvbG9yID8/IHNlcmllcy5jb2xvclwiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlLWRhc2hhcnJheV09XCJzZXJpZXMuc3R5bGU/LnN0cm9rZURhc2hhcnJheVwiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInNlcmllcy5zdHlsZT8uc3Ryb2tlV2lkdGhcIlxuICAgICAgICAgIFthdHRyLmZpbGxdPVwic2VyaWVzLmZpbGxUeXBlID09PSBmaWxsVHlwZS5ncmFkaWVudCA/ICd1cmwoI2dyYWRpZW50LWZpbGwtJytpZCsnKScgOiBwb2ludC5pY29uSWQgPyAndXJsKCNwYXR0ZXJuJytwb2ludC5pY29uSWQrJyknIDogcG9pbnQuY29sb3IgPz8gc2VyaWVzLmNvbG9yXCJcbiAgICAgICAgICBbYXR0ci5maWxsLW9wYWNpdHldPVwic2VyaWVzLnN0eWxlPy5maWxsT3BhY2l0eVwiPlxuICAgICAgICA8L3N2ZzpyZWN0PlxuICAgICAgICA8c3ZnOnRleHQgKm5nSWY9XCJwb2ludC50ZXh0XCJcbiAgICAgICAgICAgICAgICAgIHg9XCI1MCVcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIueV09XCIoZGF0YS55KHBvaW50LnkxKSArIGRhdGEueShwb2ludC55KSkgLyAyXCJcbiAgICAgICAgICAgICAgICAgIGFsaWdubWVudC1iYXNlbGluZT1cIm1pZGRsZVwiXG4gICAgICAgICAgICAgICAgICB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiPnt7IHBvaW50LnRleHQgfX1cbiAgICAgICAgPC9zdmc6dGV4dD5cblxuICAgICAgICA8IS0tICAgICAgPHN2ZzpsaW5lIHgxPVwiMFwiIHgyPVwiMTAwJVwiIFthdHRyLnkxXT1cImRhdGEueShwb2ludC55KVwiIFthdHRyLnkyXT1cImRhdGEueShwb2ludC55KVwiIFthdHRyLnN0cm9rZV09XCJwb2ludC5pY29uSWQgPyAndmFyKCYjNDU7JiM0NTtjb2xvci10ZXh0LTEwKScgOiBwb2ludC5jb2xvciA/PyBzZXJpZXMuY29sb3JcIj48L3N2ZzpsaW5lPi0tPlxuICAgICAgICA8IS0tICAgICAgPHN2ZzpsaW5lIHgxPVwiMFwiIHgyPVwiMTAwJVwiIFthdHRyLnkxXT1cImRhdGEueShwb2ludC55MSlcIiBbYXR0ci55Ml09XCJkYXRhLnkocG9pbnQueTEpXCIgW2F0dHIuc3Ryb2tlXT1cInBvaW50Lmljb25JZCA/ICd2YXIoJiM0NTsmIzQ1O2NvbG9yLXRleHQtMTApJyA6IHBvaW50LmNvbG9yID8/IHNlcmllcy5jb2xvclwiPjwvc3ZnOmxpbmU+LS0+XG5cbiAgICAgIDwvc3ZnOmc+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, } from '@angular/core';
|
|
2
|
-
import { SeriesBaseComponent } from '../../../base/series-base.component';
|
|
3
|
-
import { filter, map } from 'rxjs';
|
|
4
|
-
import { FillType } from '../../../model/enum/fill-type';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../../../service/chart.service";
|
|
7
|
-
import * as i2 from "../../../service/scale.service";
|
|
8
|
-
import * as i3 from "../../../service/zoom.service";
|
|
9
|
-
import * as i4 from "@angular/common";
|
|
10
|
-
export class BlockSeriesComponent extends SeriesBaseComponent {
|
|
11
|
-
constructor(svc, cdr, scaleService, zoomService, element) {
|
|
12
|
-
super(svc, cdr, scaleService, zoomService, element);
|
|
13
|
-
this.svc = svc;
|
|
14
|
-
this.cdr = cdr;
|
|
15
|
-
this.scaleService = scaleService;
|
|
16
|
-
this.zoomService = zoomService;
|
|
17
|
-
this.element = element;
|
|
18
|
-
this.fillType = FillType;
|
|
19
|
-
this.Math = Math;
|
|
20
|
-
this.id = (Date.now() + Math.random()).toString(36);
|
|
21
|
-
}
|
|
22
|
-
ngOnInit() {
|
|
23
|
-
this.x = this.scaleService.scales.pipe(map((_) => _.x.get(this.series.xAxisIndex)?.scale));
|
|
24
|
-
this.y = this.scaleService.scales.pipe(map((_) => _.y.get(this.series.yAxisIndex)?.scale));
|
|
25
|
-
this.displayPoints = this.y.pipe(filter((y) => y), map((y) => {
|
|
26
|
-
return this.series.data.filter((point, index, arr) => {
|
|
27
|
-
const [min, max] = y.domain();
|
|
28
|
-
return (point.y >= min ||
|
|
29
|
-
point.y1 >= min ||
|
|
30
|
-
arr[index + 1]?.y >= min ||
|
|
31
|
-
arr[index + 1]?.y1 >= min) &&
|
|
32
|
-
(point.y <= max ||
|
|
33
|
-
point.y1 <= max ||
|
|
34
|
-
arr[index - 1]?.y <= max ||
|
|
35
|
-
arr[index - 1]?.y1 <= max);
|
|
36
|
-
});
|
|
37
|
-
}));
|
|
38
|
-
}
|
|
39
|
-
mouseenter(point) {
|
|
40
|
-
this.svc.setTooltip({
|
|
41
|
-
point: point,
|
|
42
|
-
series: this.series,
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
mouseleave(point) {
|
|
46
|
-
this.svc.setTooltip({
|
|
47
|
-
point: null,
|
|
48
|
-
series: this.series,
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
ngAfterViewInit() {
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
BlockSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BlockSeriesComponent, deps: [{ token: i1.ChartService }, { token: i0.ChangeDetectorRef }, { token: i2.ScaleService }, { token: i3.ZoomService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
55
|
-
BlockSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: BlockSeriesComponent, selector: "svg:svg[teta-block-series]", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"{\n y: y | async,\n x: x | async,\n points: displayPoints | async\n} as data\">\n <svg:defs *ngIf=\"series?.fillType === fillType.gradient\">\n <svg:linearGradient [id]=\"'gradient-fill-' + id\" gradientUnits=\"userSpaceOnUse\"\n x1=\"0%\"\n [attr.y1]=\"config?.inverted ? '0%' : '100%'\"\n [attr.x2]=\"config?.inverted ? '100%' : '0%'\"\n y2=\"0%\">\n <svg:stop offset=\"0%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.9\"></svg:stop>\n </svg:linearGradient>\n </svg:defs>\n <ng-container *ngIf=\"data.x && data.y\">\n <ng-container *ngFor=\"let point of data.points\">\n <svg:g (mouseenter)=\"mouseenter(point)\"\n (mouseleave)=\"mouseleave(point)\">\n <svg:rect\n x=\"0\"\n [attr.y]=\"data.y(point.y)\"\n [attr.height]=\"Math.abs(data.y(point.y1) - data.y(point.y))\"\n [attr.fill]=\"series.fillType === fillType.gradient ? 'url(#gradient-fill-'+id+')' : point.iconId ? 'url(#pattern'+point.iconId+')' : point.color ?? series.style?.fill ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\"\n width=\"100%\">\n </svg:rect>\n <svg:text *ngIf=\"point.text && data.y(point.y1) - data.y(point.y) > 8\"\n x=\"50%\"\n [attr.y]=\"(data.y(point.y1) + data.y(point.y)) / 2\"\n alignment-baseline=\"middle\"\n text-anchor=\"middle\">{{ point.text }}\n </svg:text>\n <svg:line x1=\"0\" x2=\"100%\" [attr.y1]=\"data.y(point.y)\" [attr.y2]=\"data.y(point.y)\"\n [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.style?.stroke ?? series.color\"></svg:line>\n <svg:line x1=\"0\" x2=\"100%\" [attr.y1]=\"data.y(point.y1)\" [attr.y2]=\"data.y(point.y1)\"\n [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.style?.stroke ?? series.color\"></svg:line>\n </svg:g>\n </ng-container>\n\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BlockSeriesComponent, decorators: [{
|
|
57
|
-
type: Component,
|
|
58
|
-
args: [{ selector: 'svg:svg[teta-block-series]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"{\n y: y | async,\n x: x | async,\n points: displayPoints | async\n} as data\">\n <svg:defs *ngIf=\"series?.fillType === fillType.gradient\">\n <svg:linearGradient [id]=\"'gradient-fill-' + id\" gradientUnits=\"userSpaceOnUse\"\n x1=\"0%\"\n [attr.y1]=\"config?.inverted ? '0%' : '100%'\"\n [attr.x2]=\"config?.inverted ? '100%' : '0%'\"\n y2=\"0%\">\n <svg:stop offset=\"0%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.9\"></svg:stop>\n </svg:linearGradient>\n </svg:defs>\n <ng-container *ngIf=\"data.x && data.y\">\n <ng-container *ngFor=\"let point of data.points\">\n <svg:g (mouseenter)=\"mouseenter(point)\"\n (mouseleave)=\"mouseleave(point)\">\n <svg:rect\n x=\"0\"\n [attr.y]=\"data.y(point.y)\"\n [attr.height]=\"Math.abs(data.y(point.y1) - data.y(point.y))\"\n [attr.fill]=\"series.fillType === fillType.gradient ? 'url(#gradient-fill-'+id+')' : point.iconId ? 'url(#pattern'+point.iconId+')' : point.color ?? series.style?.fill ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\"\n width=\"100%\">\n </svg:rect>\n <svg:text *ngIf=\"point.text && data.y(point.y1) - data.y(point.y) > 8\"\n x=\"50%\"\n [attr.y]=\"(data.y(point.y1) + data.y(point.y)) / 2\"\n alignment-baseline=\"middle\"\n text-anchor=\"middle\">{{ point.text }}\n </svg:text>\n <svg:line x1=\"0\" x2=\"100%\" [attr.y1]=\"data.y(point.y)\" [attr.y2]=\"data.y(point.y)\"\n [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.style?.stroke ?? series.color\"></svg:line>\n <svg:line x1=\"0\" x2=\"100%\" [attr.y1]=\"data.y(point.y1)\" [attr.y2]=\"data.y(point.y1)\"\n [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.style?.stroke ?? series.color\"></svg:line>\n </svg:g>\n </ng-container>\n\n </ng-container>\n</ng-container>\n" }]
|
|
59
|
-
}], ctorParameters: function () { return [{ type: i1.ChartService }, { type: i0.ChangeDetectorRef }, { type: i2.ScaleService }, { type: i3.ZoomService }, { type: i0.ElementRef }]; } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stc2VyaWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jaGFydC9jaGFydC1jb250YWluZXIvc2VyaWVzL2Jsb2NrLXNlcmllcy9ibG9jay1zZXJpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYmxvY2stc2VyaWVzL2Jsb2NrLXNlcmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsR0FHVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUk3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sK0JBQStCLENBQUM7Ozs7OztBQVF2RCxNQUFNLE9BQU8sb0JBQ1gsU0FBUSxtQkFBc0I7SUFTOUIsWUFDcUIsR0FBaUIsRUFDakIsR0FBc0IsRUFDdEIsWUFBMEIsRUFDMUIsV0FBd0IsRUFDeEIsT0FBbUI7UUFFdEMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQU5qQyxRQUFHLEdBQUgsR0FBRyxDQUFjO1FBQ2pCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFUeEMsYUFBUSxHQUFHLFFBQVEsQ0FBQztRQUVwQixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBVVYsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFdEQsQ0FBQztJQUVRLFFBQVE7UUFFZixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDcEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUNuRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3BDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FDbkQsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQ2hCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO2dCQUNuRCxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksR0FBRztvQkFDbEIsS0FBSyxDQUFDLEVBQUUsSUFBSSxHQUFHO29CQUNmLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUc7b0JBQ3hCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUcsQ0FBQztvQkFDNUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEdBQUc7d0JBQ2IsS0FBSyxDQUFDLEVBQUUsSUFBSSxHQUFHO3dCQUNmLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUc7d0JBQ3hCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBZ0I7UUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDbEIsS0FBSyxFQUFFLEtBQUs7WUFDWixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFnQjtRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNsQixLQUFLLEVBQUUsSUFBSTtZQUNYLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtJQUNmLENBQUM7O2lIQWhFVSxvQkFBb0I7cUdBQXBCLG9CQUFvQix5RkN0QmpDLDhsRkE2Q0E7MkZEdkJhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSw0QkFBNEIsbUJBR3JCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmFzZVBvaW50fSBmcm9tICcuLi8uLi8uLi9tb2RlbC9iYXNlLXBvaW50JztcbmltcG9ydCB7U2VyaWVzQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vYmFzZS9zZXJpZXMtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NoYXJ0U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7U2NhbGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3NjYWxlLnNlcnZpY2UnO1xuaW1wb3J0IHtab29tU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHtGaWxsVHlwZX0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZW51bS9maWxsLXR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdmc6c3ZnW3RldGEtYmxvY2stc2VyaWVzXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ibG9jay1zZXJpZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ibG9jay1zZXJpZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEJsb2NrU2VyaWVzQ29tcG9uZW50PFQgZXh0ZW5kcyBCYXNlUG9pbnQ+XG4gIGV4dGVuZHMgU2VyaWVzQmFzZUNvbXBvbmVudDxUPlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHg6IE9ic2VydmFibGU8YW55PjtcbiAgeTogT2JzZXJ2YWJsZTxhbnk+O1xuICBkaXNwbGF5UG9pbnRzOiBPYnNlcnZhYmxlPEJhc2VQb2ludFtdPjtcbiAgZmlsbFR5cGUgPSBGaWxsVHlwZTtcbiAgaWQ6IHN0cmluZztcbiAgTWF0aCA9IE1hdGg7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHN2YzogQ2hhcnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzY2FsZVNlcnZpY2U6IFNjYWxlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgem9vbVNlcnZpY2U6IFpvb21TZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBlbGVtZW50OiBFbGVtZW50UmVmXG4gICkge1xuICAgIHN1cGVyKHN2YywgY2RyLCBzY2FsZVNlcnZpY2UsIHpvb21TZXJ2aWNlLCBlbGVtZW50KTtcbiAgICB0aGlzLmlkID0gKERhdGUubm93KCkgKyBNYXRoLnJhbmRvbSgpKS50b1N0cmluZygzNik7XG5cbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gICAgdGhpcy54ID0gdGhpcy5zY2FsZVNlcnZpY2Uuc2NhbGVzLnBpcGUoXG4gICAgICBtYXAoKF8pID0+IF8ueC5nZXQodGhpcy5zZXJpZXMueEF4aXNJbmRleCk/LnNjYWxlKVxuICAgICk7XG4gICAgdGhpcy55ID0gdGhpcy5zY2FsZVNlcnZpY2Uuc2NhbGVzLnBpcGUoXG4gICAgICBtYXAoKF8pID0+IF8ueS5nZXQodGhpcy5zZXJpZXMueUF4aXNJbmRleCk/LnNjYWxlKVxuICAgICk7XG5cbiAgICB0aGlzLmRpc3BsYXlQb2ludHMgPSB0aGlzLnkucGlwZShcbiAgICAgIGZpbHRlcigoeSkgPT4geSksXG4gICAgICBtYXAoKHkpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VyaWVzLmRhdGEuZmlsdGVyKChwb2ludCwgaW5kZXgsIGFycikgPT4ge1xuICAgICAgICAgIGNvbnN0IFttaW4sIG1heF0gPSB5LmRvbWFpbigpO1xuICAgICAgICAgIHJldHVybiAocG9pbnQueSA+PSBtaW4gfHxcbiAgICAgICAgICAgICAgcG9pbnQueTEgPj0gbWluIHx8XG4gICAgICAgICAgICAgIGFycltpbmRleCArIDFdPy55ID49IG1pbiB8fFxuICAgICAgICAgICAgICBhcnJbaW5kZXggKyAxXT8ueTEgPj0gbWluKSAmJlxuICAgICAgICAgICAgKHBvaW50LnkgPD0gbWF4IHx8XG4gICAgICAgICAgICAgIHBvaW50LnkxIDw9IG1heCB8fFxuICAgICAgICAgICAgICBhcnJbaW5kZXggLSAxXT8ueSA8PSBtYXggfHxcbiAgICAgICAgICAgICAgYXJyW2luZGV4IC0gMV0/LnkxIDw9IG1heCk7XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbW91c2VlbnRlcihwb2ludDogQmFzZVBvaW50KSB7XG4gICAgdGhpcy5zdmMuc2V0VG9vbHRpcCh7XG4gICAgICBwb2ludDogcG9pbnQsXG4gICAgICBzZXJpZXM6IHRoaXMuc2VyaWVzLFxuICAgIH0pO1xuICB9XG5cbiAgbW91c2VsZWF2ZShwb2ludDogQmFzZVBvaW50KSB7XG4gICAgdGhpcy5zdmMuc2V0VG9vbHRpcCh7XG4gICAgICBwb2ludDogbnVsbCxcbiAgICAgIHNlcmllczogdGhpcy5zZXJpZXMsXG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ7XG4gIHk6IHkgfCBhc3luYyxcbiAgeDogeCB8IGFzeW5jLFxuICBwb2ludHM6IGRpc3BsYXlQb2ludHMgfCBhc3luY1xufSBhcyBkYXRhXCI+XG4gIDxzdmc6ZGVmcyAqbmdJZj1cInNlcmllcz8uZmlsbFR5cGUgPT09IGZpbGxUeXBlLmdyYWRpZW50XCI+XG4gICAgPHN2ZzpsaW5lYXJHcmFkaWVudCBbaWRdPVwiJ2dyYWRpZW50LWZpbGwtJyArIGlkXCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHgxPVwiMCVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIueTFdPVwiY29uZmlnPy5pbnZlcnRlZCA/ICcwJScgOiAnMTAwJSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIueDJdPVwiY29uZmlnPy5pbnZlcnRlZCA/ICcxMDAlJyA6ICcwJSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgeTI9XCIwJVwiPlxuICAgICAgPHN2ZzpzdG9wIG9mZnNldD1cIjAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMFwiPjwvc3ZnOnN0b3A+XG4gICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiNSVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cInNlcmllcy5zdHlsZT8uZmlsbCA/PyBzZXJpZXMuY29sb3JcIiBzdG9wLW9wYWNpdHk9XCIwLjFcIj48L3N2ZzpzdG9wPlxuICAgICAgPHN2ZzpzdG9wIG9mZnNldD1cIjIwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLnN0eWxlPy5maWxsID8/IHNlcmllcy5jb2xvclwiIHN0b3Atb3BhY2l0eT1cIjAuMlwiPjwvc3ZnOnN0b3A+XG4gICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiNjAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC41XCI+PC9zdmc6c3RvcD5cbiAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCIxMDAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC45XCI+PC9zdmc6c3RvcD5cbiAgICA8L3N2ZzpsaW5lYXJHcmFkaWVudD5cbiAgPC9zdmc6ZGVmcz5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEueCAmJiBkYXRhLnlcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwb2ludCBvZiBkYXRhLnBvaW50c1wiPlxuICAgICAgPHN2ZzpnIChtb3VzZWVudGVyKT1cIm1vdXNlZW50ZXIocG9pbnQpXCJcbiAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJtb3VzZWxlYXZlKHBvaW50KVwiPlxuICAgICAgICA8c3ZnOnJlY3RcbiAgICAgICAgICB4PVwiMFwiXG4gICAgICAgICAgW2F0dHIueV09XCJkYXRhLnkocG9pbnQueSlcIlxuICAgICAgICAgIFthdHRyLmhlaWdodF09XCJNYXRoLmFicyhkYXRhLnkocG9pbnQueTEpIC0gZGF0YS55KHBvaW50LnkpKVwiXG4gICAgICAgICAgW2F0dHIuZmlsbF09XCJzZXJpZXMuZmlsbFR5cGUgPT09IGZpbGxUeXBlLmdyYWRpZW50ID8gJ3VybCgjZ3JhZGllbnQtZmlsbC0nK2lkKycpJyA6IHBvaW50Lmljb25JZCA/ICd1cmwoI3BhdHRlcm4nK3BvaW50Lmljb25JZCsnKScgOiBwb2ludC5jb2xvciA/PyBzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCJcbiAgICAgICAgICBbYXR0ci5maWxsLW9wYWNpdHldPVwic2VyaWVzLnN0eWxlPy5maWxsT3BhY2l0eVwiXG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCI+XG4gICAgICAgIDwvc3ZnOnJlY3Q+XG4gICAgICAgIDxzdmc6dGV4dCAqbmdJZj1cInBvaW50LnRleHQgJiYgZGF0YS55KHBvaW50LnkxKSAtIGRhdGEueShwb2ludC55KSA+IDhcIlxuICAgICAgICAgICAgICAgICAgeD1cIjUwJVwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci55XT1cIihkYXRhLnkocG9pbnQueTEpICsgZGF0YS55KHBvaW50LnkpKSAvIDJcIlxuICAgICAgICAgICAgICAgICAgYWxpZ25tZW50LWJhc2VsaW5lPVwibWlkZGxlXCJcbiAgICAgICAgICAgICAgICAgIHRleHQtYW5jaG9yPVwibWlkZGxlXCI+e3sgcG9pbnQudGV4dCB9fVxuICAgICAgICA8L3N2Zzp0ZXh0PlxuICAgICAgICA8c3ZnOmxpbmUgeDE9XCIwXCIgeDI9XCIxMDAlXCIgW2F0dHIueTFdPVwiZGF0YS55KHBvaW50LnkpXCIgW2F0dHIueTJdPVwiZGF0YS55KHBvaW50LnkpXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJwb2ludC5pY29uSWQgPyAndmFyKC0tY29sb3ItdGV4dC0xMCknIDogcG9pbnQuY29sb3IgPz8gc2VyaWVzLnN0eWxlPy5zdHJva2UgPz8gc2VyaWVzLmNvbG9yXCI+PC9zdmc6bGluZT5cbiAgICAgICAgPHN2ZzpsaW5lIHgxPVwiMFwiIHgyPVwiMTAwJVwiIFthdHRyLnkxXT1cImRhdGEueShwb2ludC55MSlcIiBbYXR0ci55Ml09XCJkYXRhLnkocG9pbnQueTEpXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJwb2ludC5pY29uSWQgPyAndmFyKC0tY29sb3ItdGV4dC0xMCknIDogcG9pbnQuY29sb3IgPz8gc2VyaWVzLnN0eWxlPy5zdHJva2UgPz8gc2VyaWVzLmNvbG9yXCI+PC9zdmc6bGluZT5cbiAgICAgIDwvc3ZnOmc+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|