@tetacom/ng-components 1.0.10 → 1.0.14
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/assets/intersect.svg +3 -0
- package/assets/lithotype-icons.svg +7 -1
- package/component/chart/chart/chart.component.d.ts +2 -1
- package/component/chart/core/chart.d.ts +2 -0
- package/component/chart/model/enum/dispatch-type.d.ts +2 -1
- package/component/chart/model/enum/drag-point-type.d.ts +5 -0
- package/component/chart/model/plot-band.d.ts +2 -0
- package/component/chart/model/point/base-point.d.ts +2 -0
- package/component/chart/model/point/marker-options.d.ts +11 -0
- package/component/icon/icon-sprite.directive.d.ts +1 -1
- package/esm2020/component/chart/chart/chart.component.mjs +11 -4
- package/esm2020/component/chart/core/chart.mjs +25 -7
- package/esm2020/component/chart/drawer/line-drawer.mjs +49 -3
- package/esm2020/component/chart/drawer/spline-drawer.mjs +2 -1
- package/esm2020/component/chart/model/enum/dispatch-type.mjs +2 -1
- package/esm2020/component/chart/model/enum/drag-point-type.mjs +7 -0
- package/esm2020/component/chart/model/plot-band.mjs +2 -1
- package/esm2020/component/chart/model/point/base-point.mjs +1 -1
- package/esm2020/component/chart/model/point/marker-options.mjs +2 -0
- package/esm2020/component/icon/icon-sprite.directive.mjs +9 -2
- package/fesm2015/tetacom-ng-components.mjs +100 -13
- package/fesm2015/tetacom-ng-components.mjs.map +1 -1
- package/fesm2020/tetacom-ng-components.mjs +99 -12
- package/fesm2020/tetacom-ng-components.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import * as d3 from 'd3';
|
|
2
2
|
import { DispatchType } from '../model/enum/dispatch-type';
|
|
3
|
+
import { DragPointType } from '../model/enum/drag-point-type';
|
|
3
4
|
export class LineDrawer {
|
|
4
5
|
constructor() {
|
|
5
|
-
this.dispatch = d3.dispatch(DispatchType.moveLine);
|
|
6
|
+
this.dispatch = d3.dispatch(DispatchType.moveLine, DispatchType.movePoint);
|
|
6
7
|
}
|
|
7
8
|
draw(series, context, scaleX, scaleY, options) {
|
|
8
9
|
const points = series.data;
|
|
10
|
+
const markerPoints = points.filter((_) => _.marker);
|
|
9
11
|
const path = d3
|
|
10
12
|
.line()
|
|
11
13
|
.curve(series.curveType)
|
|
@@ -15,7 +17,7 @@ export class LineDrawer {
|
|
|
15
17
|
const seriesIndex = options.series.findIndex((_) => _.id === series.id);
|
|
16
18
|
context
|
|
17
19
|
.append('path')
|
|
18
|
-
.attr('class', (d) => series?.drag.enable ? 'draggable' :
|
|
20
|
+
.attr('class', (d) => series?.drag.enable ? 'draggable' : `series-${seriesIndex}`)
|
|
19
21
|
.attr('data-draggable-id', seriesIndex)
|
|
20
22
|
.attr('fill', 'none')
|
|
21
23
|
.attr('stroke', series.color)
|
|
@@ -101,6 +103,50 @@ export class LineDrawer {
|
|
|
101
103
|
if (series?.drag?.extendLine && points?.length) {
|
|
102
104
|
drawExtendedLine();
|
|
103
105
|
}
|
|
106
|
+
if (markerPoints?.length) {
|
|
107
|
+
const emit = (event, target) => {
|
|
108
|
+
this.dispatch.apply(DispatchType.movePoint, {
|
|
109
|
+
target: series,
|
|
110
|
+
point: {
|
|
111
|
+
...target,
|
|
112
|
+
},
|
|
113
|
+
event,
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
context
|
|
117
|
+
.selectAll(`draggable-marker-${seriesIndex}`)
|
|
118
|
+
.data(markerPoints)
|
|
119
|
+
.enter()
|
|
120
|
+
.append('circle')
|
|
121
|
+
.attr('class', `draggable-marker-${seriesIndex}`)
|
|
122
|
+
.attr('r', (d) => d.marker?.style?.radius || 5)
|
|
123
|
+
.attr('cx', function (d) {
|
|
124
|
+
return scaleX(d.x);
|
|
125
|
+
})
|
|
126
|
+
.attr('cy', function (d) {
|
|
127
|
+
return scaleY(d.y);
|
|
128
|
+
})
|
|
129
|
+
.style('cursor', 'pointer')
|
|
130
|
+
.style('fill', (d) => d.marker?.style?.color || 'red')
|
|
131
|
+
.attr('stroke', (d) => d.marker?.style?.stroke || 'none')
|
|
132
|
+
.attr('stroke-width', (d) => d.marker?.style?.strokeWidth || 0);
|
|
133
|
+
context.selectAll(`.draggable-marker-${seriesIndex}`).call(d3.drag().on('drag start end', function dragged(event, d) {
|
|
134
|
+
const node = d3.select(this);
|
|
135
|
+
if (event.type === 'start') {
|
|
136
|
+
node.raise().classed('active', true);
|
|
137
|
+
}
|
|
138
|
+
if (d.marker?.dragType === DragPointType.x) {
|
|
139
|
+
d.x = scaleX.invert(event.sourceEvent?.offsetX);
|
|
140
|
+
node.attr('cx', scaleX(d.x));
|
|
141
|
+
}
|
|
142
|
+
if (d.marker?.dragType === DragPointType.y) {
|
|
143
|
+
d.y = scaleY.invert(event.sourceEvent?.offsetY);
|
|
144
|
+
node.attr('cy', scaleY(d.y));
|
|
145
|
+
}
|
|
146
|
+
context.select(`.series-${seriesIndex}`).attr('d', path);
|
|
147
|
+
emit(event, d);
|
|
148
|
+
}));
|
|
149
|
+
}
|
|
104
150
|
}
|
|
105
151
|
}
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1kcmF3ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnQvY2hhcnQvZHJhd2VyL2xpbmUtZHJhd2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBR3pCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxNQUFNLE9BQU8sVUFBVTtJQUdyQjtRQUNFLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksQ0FDRixNQUF5QixFQUN6QixPQUEyRCxFQUMzRCxNQUFXLEVBQ1gsTUFBVyxFQUNYLE9BQXFCO1FBRXJCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFFM0IsTUFBTSxJQUFJLEdBQUcsRUFBRTthQUNaLElBQUksRUFBYTthQUNqQixLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQzthQUN2QixPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO2FBQzFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxNQUFNLENB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QUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDeEIsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7aUJBQ2xDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFFdEMsT0FBTztpQkFDSixNQUFNLENBQUMsTUFBTSxDQUFDO2lCQUNkLElBQUksQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDO2lCQUM3QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxDQUFDO2lCQUNyQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUM7aUJBQzdCLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQztpQkFDekMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxlQUFlLENBQUM7aUJBQ2pELElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDeEIsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN4QixJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDaEMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUM7UUFFRixJQUFJLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxJQUFJLE1BQU0sRUFBRSxNQUFNLEVBQUU7WUFDOUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElEcmF3ZXIgfSBmcm9tICcuLi9tb2RlbC9pLWRyYXdlcic7XG5pbXBvcnQgeyBCYXNlUG9pbnQgfSBmcm9tICcuLi9tb2RlbC9wb2ludC9iYXNlLXBvaW50JztcbmltcG9ydCB7IFNlcmllcyB9IGZyb20gJy4uL21vZGVsL3Nlcmllcyc7XG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XG5pbXBvcnQgeyBDaGFydE9wdGlvbnMgfSBmcm9tICcuLi9tb2RlbC9jaGFydC1vcHRpb25zJztcbmltcG9ydCB7IElEcmFnRXZlbnQgfSBmcm9tICcuLi9tb2RlbC9pLWRyYWctZXZlbnQnO1xuaW1wb3J0IHsgRGlzcGF0Y2hUeXBlIH0gZnJvbSAnLi4vbW9kZWwvZW51bS9kaXNwYXRjaC10eXBlJztcblxuZXhwb3J0IGNsYXNzIExpbmVEcmF3ZXIgaW1wbGVtZW50cyBJRHJhd2VyPEJhc2VQb2ludD4ge1xuICBkaXNwYXRjaDogZDMuRGlzcGF0Y2g8SURyYWdFdmVudDxTZXJpZXM8QmFzZVBvaW50Pj4+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuZGlzcGF0Y2ggPSBkMy5kaXNwYXRjaChEaXNwYXRjaFR5cGUubW92ZUxpbmUpO1xuICB9XG5cbiAgZHJhdyhcbiAgICBzZXJpZXM6IFNlcmllczxCYXNlUG9pbnQ+LFxuICAgIGNvbnRleHQ6IGQzLlNlbGVjdGlvbjxTVkdFbGVtZW50LCB1bmtub3duLCBudWxsLCB1bmRlZmluZWQ+LFxuICAgIHNjYWxlWDogYW55LFxuICAgIHNjYWxlWTogYW55LFxuICAgIG9wdGlvbnM6IENoYXJ0T3B0aW9uc1xuICApOiB2b2lkIHtcbiAgICBjb25zdCBwb2ludHMgPSBzZXJpZXMuZGF0YTtcblxuICAgIGNvbnN0IHBhdGggPSBkM1xuICAgICAgLmxpbmU8QmFzZVBvaW50PigpXG4gICAgICAuY3VydmUoc2VyaWVzLmN1cnZlVHlwZSlcbiAgICAgIC5kZWZpbmVkKChkKSA9PiBkLnggIT0gbnVsbCAmJiBkLnkgIT0gbnVsbClcbiAgICAgIC54KChkKSA9PiBzY2FsZVgoZC54KSlcbiAgICAgIC55KChkKSA9PiBzY2FsZVkoZC55KSk7XG4gICAgY29uc3Qgc2VyaWVzSW5kZXggPSBvcHRpb25zLnNlcmllcy5maW5kSW5kZXgoKF8pID0+IF8uaWQgPT09IHNlcmllcy5pZCk7XG5cbiAgICBjb250ZXh0XG4gICAgICAuYXBwZW5kKCdwYXRoJylcbiAgICAgIC5hdHRyKCdjbGFzcycsIChkOiBCYXNlUG9pbnQpID0+XG4gICAgICAgIHNlcmllcz8uZHJhZy5lbmFibGUgPyAnZHJhZ2dhYmxlJyA6IG51bGxcbiAgICAgIClcbiAgICAgIC5hdHRyKCdkYXRhLWRyYWdnYWJsZS1pZCcsIHNlcmllc0luZGV4KVxuICAgICAgLmF0dHIoJ2ZpbGwnLCAnbm9uZScpXG4gICAgICAuYXR0cignc3Ryb2tlJywgc2VyaWVzLmNvbG9yKVxuICAgICAgLmF0dHIoJ3N0cm9rZS1kYXNoYXJyYXknLCBzZXJpZXM/LnN0cm9rZURhc2hhcnJheSlcbiAgICAgIC5hdHRyKCdzdHJva2Utd2lkdGgnLCBzZXJpZXMuc3Ryb2tlV2lkdGggPyBzZXJpZXMuc3Ryb2tlV2lkdGggOiAxKVxuICAgICAgLnN0eWxlKCdjdXJzb3InLCBzZXJpZXM/LmRyYWc/LmVuYWJsZSA/ICdtb3ZlJyA6ICdkZWZhdWx0JylcbiAgICAgIC5kYXR1bShwb2ludHMpXG4gICAgICAuYXR0cignZCcsIHBhdGggYXMgYW55KTtcblxuICAgIGNvbnN0IHUgPSBjb250ZXh0LmFwcGVuZCgnZycpLmF0dHIoJ2NsYXNzJywgJ2dyYWJiZXJzJyk7XG5cbiAgICBjb25zdCBlbWl0ID0gKGV2ZW50OiBEcmFnRXZlbnQsIHRhcmdldDogU2VyaWVzPEJhc2VQb2ludD4pID0+IHtcbiAgICAgIHRoaXMuZGlzcGF0Y2guYXBwbHkoRGlzcGF0Y2hUeXBlLm1vdmVMaW5lLCB7XG4gICAgICAgIHRhcmdldCxcbiAgICAgICAgZXZlbnQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgaWYgKHNlcmllcy5kcmFnLmVuYWJsZSkge1xuICAgICAgdS5zZWxlY3RBbGwoJ2NpcmNsZScpXG4gICAgICAgIC5kYXRhKHBvaW50cylcbiAgICAgICAgLmVudGVyKClcbiAgICAgICAgLmFwcGVuZCgnY2lyY2xlJylcbiAgICAgICAgLmF0dHIoJ2RhdGEtZ3JhYmJlci1pZCcsIHNlcmllc0luZGV4KVxuICAgICAgICAuYXR0cignc3Ryb2tlJywgc2VyaWVzPy5kcmFnPy5ncmFiYmVycz8uc3Ryb2tlID8/IHNlcmllcz8uY29sb3IpXG4gICAgICAgIC5hdHRyKCdzdHJva2Utd2lkdGgnLCBzZXJpZXM/LmRyYWc/LmdyYWJiZXJzPy5zdHJva2VXaWR0aCA/PyAxKVxuICAgICAgICAuYXR0cignZmlsbCcsIHNlcmllcz8uZHJhZz8uZ3JhYmJlcnM/LmZpbGwgPz8gc2VyaWVzPy5jb2xvcilcbiAgICAgICAgLmF0dHIoJ3InLCBzZXJpZXM/LmRyYWc/LmdyYWJiZXJzPy5yYWRpdXMgPz8gNClcbiAgICAgICAgLmF0dHIoJ2N4JywgZnVuY3Rpb24gKGQpIHtcbiAgICAgICAgICByZXR1cm4gc2NhbGVYKGQueCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5hdHRyKCdjeScsIGZ1bmN0aW9uIChkKSB7XG4gICAgICAgICAgcmV0dXJuIHNjYWxlWShkLnkpO1xuICAgICAgICB9KVxuICAgICAgICAuc3R5bGUoJ2N1cnNvcicsICdtb3ZlJylcbiAgICAgICAgLmNhbGwoXG4gICAgICAgICAgZDMuZHJhZygpLm9uKCdzdGFydCBkcmFnIGVuZCcsIGZ1bmN0aW9uIChldmVudCwgZDogQmFzZVBvaW50KSB7XG4gICAgICAgICAgICBkLnggPSBzY2FsZVguaW52ZXJ0KGV2ZW50LnNvdXJjZUV2ZW50Py5vZmZzZXRYKTtcbiAgICAgICAgICAgIGQueSA9IHNjYWxlWS5pbnZlcnQoZXZlbnQuc291cmNlRXZlbnQ/Lm9mZnNldFkpO1xuICAgICAgICAgICAgZDMuc2VsZWN0KHRoaXMpLmF0dHIoJ2N4Jywgc2NhbGVYKGQueCkpLmF0dHIoJ2N5Jywgc2NhbGVZKGQueSkpO1xuXG4gICAgICAgICAgICBjb250ZXh0XG4gICAgICAgICAgICAgIC5zZWxlY3QoYFtkYXRhLWRyYWdnYWJsZS1pZD0nJHtzZXJpZXNJbmRleH0nXWApXG4gICAgICAgICAgICAgIC5hdHRyKCdkJywgcGF0aCk7XG5cbiAgICAgICAgICAgIGVtaXQoZXZlbnQsIHNlcmllcyk7XG5cbiAgICAgICAgICAgIGlmIChzZXJpZXM/LmRyYWc/LmV4dGVuZExpbmUpIHtcbiAgICAgICAgICAgICAgZHJhd0V4dGVuZGVkTGluZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgIHUuZXhpdCgpLnJlbW92ZSgpO1xuICAgIH1cblxuICAgIGNvbnN0IGRyYXdFeHRlbmRlZExpbmUgPSAoKSA9PiB7XG4gICAgICBjb250ZXh0LnNlbGVjdEFsbChgW2RhdGEtZXh0ZW5kZWQtaWQ9JyR7c2VyaWVzSW5kZXh9J11gKS5yZW1vdmUoKTtcblxuICAgICAgY29uc3QgcDEgPSBwb2ludHNbMF07XG4gICAgICBjb25zdCBwMiA9IHBvaW50c1twb2ludHMubGVuZ3RoIC0gMV07XG5cbiAgICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5zcXJ0KFxuICAgICAgICBNYXRoLnBvdyhwMi54IC0gcDEueCwgMikgKyBNYXRoLnBvdyhwMi55IC0gcDIueSwgMilcbiAgICAgICk7XG5cbiAgICAgIGlmIChkaXN0YW5jZSA8PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZXh0ZW5kTGVuZ3RoID0gNTA7XG5cbiAgICAgIGNvbnN0IGV4dGVuZGVkRW5kWCA9IHAyLnggKyAoKHAyLnggLSBwMS54KSAvIGRpc3RhbmNlKSAqIGV4dGVuZExlbmd0aDtcbiAgICAgIGNvbnN0IGV4dGVuZGVkRW5kWSA9IHAyLnkgKyAoKHAyLnkgLSBwMS55KSAvIGRpc3RhbmNlKSAqIGV4dGVuZExlbmd0aDtcblxuICAgICAgY29uc3QgZXh0ZW5kZWRTdGFydFggPSBwMS54IC0gKChwMi54IC0gcDEueCkgLyBkaXN0YW5jZSkgKiBleHRlbmRMZW5ndGg7XG4gICAgICBjb25zdCBleHRlbmRlZFN0YXJ0WSA9IHAxLnkgLSAoKHAyLnkgLSBwMS55KSAvIGRpc3RhbmNlKSAqIGV4dGVuZExlbmd0aDtcblxuICAgICAgY29udGV4dFxuICAgICAgICAuYXBwZW5kKCdsaW5lJylcbiAgICAgICAgLmF0dHIoJ2NsYXNzJywgJ2V4dGVuZGVkTGluZScpXG4gICAgICAgIC5hdHRyKCdkYXRhLWV4dGVuZGVkLWlkJywgc2VyaWVzSW5kZXgpXG4gICAgICAgIC5hdHRyKCdzdHJva2UnLCBzZXJpZXM/LmNvbG9yKVxuICAgICAgICAuYXR0cignc3Ryb2tlLXdpZHRoJywgc2VyaWVzPy5zdHJva2VXaWR0aClcbiAgICAgICAgLmF0dHIoJ3N0cm9rZS1kYXNoYXJyYXknLCBzZXJpZXM/LnN0cm9rZURhc2hhcnJheSlcbiAgICAgICAgLmF0dHIoJ3gxJywgc2NhbGVYKHAxLngpKVxuICAgICAgICAuYXR0cigneTEnLCBzY2FsZVkocDEueSkpXG4gICAgICAgIC5hdHRyKCd4MicsIHNjYWxlWChleHRlbmRlZFN0YXJ0WCkpXG4gICAgICAgIC5hdHRyKCd5MicsIHNjYWxlWShleHRlbmRlZFN0YXJ0WSkpO1xuXG4gICAgICBjb250ZXh0XG4gICAgICAgIC5hcHBlbmQoJ2xpbmUnKVxuICAgICAgICAuYXR0cignY2xhc3MnLCAnZXh0ZW5kZWRMaW5lJylcbiAgICAgICAgLmF0dHIoJ2RhdGEtZXh0ZW5kZWQtaWQnLCBzZXJpZXNJbmRleClcbiAgICAgICAgLmF0dHIoJ3N0cm9rZScsIHNlcmllcz8uY29sb3IpXG4gICAgICAgIC5hdHRyKCdzdHJva2Utd2lkdGgnLCBzZXJpZXM/LnN0cm9rZVdpZHRoKVxuICAgICAgICAuYXR0cignc3Ryb2tlLWRhc2hhcnJheScsIHNlcmllcz8uc3Ryb2tlRGFzaGFycmF5KVxuICAgICAgICAuYXR0cigneDEnLCBzY2FsZVgocDIueCkpXG4gICAgICAgIC5hdHRyKCd5MScsIHNjYWxlWShwMi55KSlcbiAgICAgICAgLmF0dHIoJ3gyJywgc2NhbGVYKGV4dGVuZGVkRW5kWCkpXG4gICAgICAgIC5hdHRyKCd5MicsIHNjYWxlWShleHRlbmRlZEVuZFkpKTtcbiAgICB9O1xuXG4gICAgaWYgKHNlcmllcz8uZHJhZz8uZXh0ZW5kTGluZSAmJiBwb2ludHM/Lmxlbmd0aCkge1xuICAgICAgZHJhd0V4dGVuZGVkTGluZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1kcmF3ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnQvY2hhcnQvZHJhd2VyL2xpbmUtZHJhd2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBR3pCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFOUQsTUFBTSxPQUFPLFVBQVU7SUFHckI7UUFDRSxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELElBQUksQ0FDRixNQUF5QixFQUN6QixPQUEyRCxFQUMzRCxNQUFXLEVBQ1gsTUFBVyxFQUNYLE9BQXFCO1FBRXJCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFFM0IsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXBELE1BQU0sSUFBSSxHQUFHLEVBQUU7YUFDWixJQUFJLEVBQWE7YUFDakIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7YUFDdkIsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQzthQUMxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDckIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFF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QUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUM5QjtnQkFFRCxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsV0FBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUV6RCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUNILENBQUM7U0FDSDtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElEcmF3ZXIgfSBmcm9tICcuLi9tb2RlbC9pLWRyYXdlcic7XG5pbXBvcnQgeyBCYXNlUG9pbnQgfSBmcm9tICcuLi9tb2RlbC9wb2ludC9iYXNlLXBvaW50JztcbmltcG9ydCB7IFNlcmllcyB9IGZyb20gJy4uL21vZGVsL3Nlcmllcyc7XG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XG5pbXBvcnQgeyBDaGFydE9wdGlvbnMgfSBmcm9tICcuLi9tb2RlbC9jaGFydC1vcHRpb25zJztcbmltcG9ydCB7IElEcmFnRXZlbnQgfSBmcm9tICcuLi9tb2RlbC9pLWRyYWctZXZlbnQnO1xuaW1wb3J0IHsgRGlzcGF0Y2hUeXBlIH0gZnJvbSAnLi4vbW9kZWwvZW51bS9kaXNwYXRjaC10eXBlJztcbmltcG9ydCB7IERyYWdQb2ludFR5cGUgfSBmcm9tICcuLi9tb2RlbC9lbnVtL2RyYWctcG9pbnQtdHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBMaW5lRHJhd2VyIGltcGxlbWVudHMgSURyYXdlcjxCYXNlUG9pbnQ+IHtcbiAgZGlzcGF0Y2g6IGQzLkRpc3BhdGNoPElEcmFnRXZlbnQ8U2VyaWVzPEJhc2VQb2ludD4+PjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmRpc3BhdGNoID0gZDMuZGlzcGF0Y2goRGlzcGF0Y2hUeXBlLm1vdmVMaW5lLCBEaXNwYXRjaFR5cGUubW92ZVBvaW50KTtcbiAgfVxuXG4gIGRyYXcoXG4gICAgc2VyaWVzOiBTZXJpZXM8QmFzZVBvaW50PixcbiAgICBjb250ZXh0OiBkMy5TZWxlY3Rpb248U1ZHRWxlbWVudCwgdW5rbm93biwgbnVsbCwgdW5kZWZpbmVkPixcbiAgICBzY2FsZVg6IGFueSxcbiAgICBzY2FsZVk6IGFueSxcbiAgICBvcHRpb25zOiBDaGFydE9wdGlvbnNcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgcG9pbnRzID0gc2VyaWVzLmRhdGE7XG5cbiAgICBjb25zdCBtYXJrZXJQb2ludHMgPSBwb2ludHMuZmlsdGVyKChfKSA9PiBfLm1hcmtlcik7XG5cbiAgICBjb25zdCBwYXRoID0gZDNcbiAgICAgIC5saW5lPEJhc2VQb2ludD4oKVxuICAgICAgLmN1cnZlKHNlcmllcy5jdXJ2ZVR5cGUpXG4gICAgICAuZGVmaW5lZCgoZCkgPT4gZC54ICE9IG51bGwgJiYgZC55ICE9IG51bGwpXG4gICAgICAueCgoZCkgPT4gc2NhbGVYKGQueCkpXG4gICAgICAueSgoZCkgPT4gc2NhbGVZKGQueSkpO1xuXG4gICAgY29uc3Qgc2VyaWVzSW5kZXggPSBvcHRpb25zLnNlcmllcy5maW5kSW5kZXgoKF8pID0+IF8uaWQgPT09IHNlcmllcy5pZCk7XG5cbiAgICBjb250ZXh0XG4gICAgICAuYXBwZW5kKCdwYXRoJylcbiAgICAgIC5hdHRyKCdjbGFzcycsIChkOiBCYXNlUG9pbnQpID0+XG4gICAgICAgIHNlcmllcz8uZHJhZy5lbmFibGUgPyAnZHJhZ2dhYmxlJyA6IGBzZXJpZXMtJHtzZXJpZXNJbmRleH1gXG4gICAgICApXG4gICAgICAuYXR0cignZGF0YS1kcmFnZ2FibGUtaWQnLCBzZXJpZXNJbmRleClcbiAgICAgIC5hdHRyKCdmaWxsJywgJ25vbmUnKVxuICAgICAgLmF0dHIoJ3N0cm9rZScsIHNlcmllcy5jb2xvcilcbiAgICAgIC5hdHRyKCdzdHJva2UtZGFzaGFycmF5Jywgc2VyaWVzPy5zdHJva2VEYXNoYXJyYXkpXG4gICAgICAuYXR0cignc3Ryb2tlLXdpZHRoJywgc2VyaWVzLnN0cm9rZVdpZHRoID8gc2VyaWVzLnN0cm9rZVdpZHRoIDogMSlcbiAgICAgIC5zdHlsZSgnY3Vyc29yJywgc2VyaWVzPy5kcmFnPy5lbmFibGUgPyAnbW92ZScgOiAnZGVmYXVsdCcpXG4gICAgICAuZGF0dW0ocG9pbnRzKVxuICAgICAgLmF0dHIoJ2QnLCBwYXRoKTtcblxuICAgIGNvbnN0IHUgPSBjb250ZXh0LmFwcGVuZCgnZycpLmF0dHIoJ2NsYXNzJywgJ2dyYWJiZXJzJyk7XG5cbiAgICBjb25zdCBlbWl0ID0gKGV2ZW50OiBEcmFnRXZlbnQsIHRhcmdldDogU2VyaWVzPEJhc2VQb2ludD4pID0+IHtcbiAgICAgIHRoaXMuZGlzcGF0Y2guYXBwbHkoRGlzcGF0Y2hUeXBlLm1vdmVMaW5lLCB7XG4gICAgICAgIHRhcmdldCxcbiAgICAgICAgZXZlbnQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgaWYgKHNlcmllcy5kcmFnLmVuYWJsZSkge1xuICAgICAgdS5zZWxlY3RBbGwoJ2NpcmNsZScpXG4gICAgICAgIC5kYXRhKHBvaW50cylcbiAgICAgICAgLmVudGVyKClcbiAgICAgICAgLmFwcGVuZCgnY2lyY2xlJylcbiAgICAgICAgLmF0dHIoJ2RhdGEtZ3JhYmJlci1pZCcsIHNlcmllc0luZGV4KVxuICAgICAgICAuYXR0cignc3Ryb2tlJywgc2VyaWVzPy5kcmFnPy5ncmFiYmVycz8uc3Ryb2tlID8/IHNlcmllcz8uY29sb3IpXG4gICAgICAgIC5hdHRyKCdzdHJva2Utd2lkdGgnLCBzZXJpZXM/LmRyYWc/LmdyYWJiZXJzPy5zdHJva2VXaWR0aCA/PyAxKVxuICAgICAgICAuYXR0cignZmlsbCcsIHNlcmllcz8uZHJhZz8uZ3JhYmJlcnM/LmZpbGwgPz8gc2VyaWVzPy5jb2xvcilcbiAgICAgICAgLmF0dHIoJ3InLCBzZXJpZXM/LmRyYWc/LmdyYWJiZXJzPy5yYWRpdXMgPz8gNClcbiAgICAgICAgLmF0dHIoJ2N4JywgZnVuY3Rpb24gKGQpIHtcbiAgICAgICAgICByZXR1cm4gc2NhbGVYKGQueCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5hdHRyKCdjeScsIGZ1bmN0aW9uIChkKSB7XG4gICAgICAgICAgcmV0dXJuIHNjYWxlWShkLnkpO1xuICAgICAgICB9KVxuICAgICAgICAuc3R5bGUoJ2N1cnNvcicsICdtb3ZlJylcbiAgICAgICAgLmNhbGwoXG4gICAgICAgICAgZDMuZHJhZygpLm9uKCdzdGFydCBkcmFnIGVuZCcsIGZ1bmN0aW9uIChldmVudCwgZDogQmFzZVBvaW50KSB7XG4gICAgICAgICAgICBkLnggPSBzY2FsZVguaW52ZXJ0KGV2ZW50LnNvdXJjZUV2ZW50Py5vZmZzZXRYKTtcbiAgICAgICAgICAgIGQueSA9IHNjYWxlWS5pbnZlcnQoZXZlbnQuc291cmNlRXZlbnQ/Lm9mZnNldFkpO1xuICAgICAgICAgICAgZDMuc2VsZWN0KHRoaXMpLmF0dHIoJ2N4Jywgc2NhbGVYKGQueCkpLmF0dHIoJ2N5Jywgc2NhbGVZKGQueSkpO1xuXG4gICAgICAgICAgICBjb250ZXh0XG4gICAgICAgICAgICAgIC5zZWxlY3QoYFtkYXRhLWRyYWdnYWJsZS1pZD0nJHtzZXJpZXNJbmRleH0nXWApXG4gICAgICAgICAgICAgIC5hdHRyKCdkJywgcGF0aCk7XG5cbiAgICAgICAgICAgIGVtaXQoZXZlbnQsIHNlcmllcyk7XG5cbiAgICAgICAgICAgIGlmIChzZXJpZXM/LmRyYWc/LmV4dGVuZExpbmUpIHtcbiAgICAgICAgICAgICAgZHJhd0V4dGVuZGVkTGluZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgIHUuZXhpdCgpLnJlbW92ZSgpO1xuICAgIH1cblxuICAgIGNvbnN0IGRyYXdFeHRlbmRlZExpbmUgPSAoKSA9PiB7XG4gICAgICBjb250ZXh0LnNlbGVjdEFsbChgW2RhdGEtZXh0ZW5kZWQtaWQ9JyR7c2VyaWVzSW5kZXh9J11gKS5yZW1vdmUoKTtcblxuICAgICAgY29uc3QgcDEgPSBwb2ludHNbMF07XG4gICAgICBjb25zdCBwMiA9IHBvaW50c1twb2ludHMubGVuZ3RoIC0gMV07XG5cbiAgICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5zcXJ0KFxuICAgICAgICBNYXRoLnBvdyhwMi54IC0gcDEueCwgMikgKyBNYXRoLnBvdyhwMi55IC0gcDIueSwgMilcbiAgICAgICk7XG5cbiAgICAgIGlmIChkaXN0YW5jZSA8PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZXh0ZW5kTGVuZ3RoID0gNTA7XG5cbiAgICAgIGNvbnN0IGV4dGVuZGVkRW5kWCA9IHAyLnggKyAoKHAyLnggLSBwMS54KSAvIGRpc3RhbmNlKSAqIGV4dGVuZExlbmd0aDtcbiAgICAgIGNvbnN0IGV4dGVuZGVkRW5kWSA9IHAyLnkgKyAoKHAyLnkgLSBwMS55KSAvIGRpc3RhbmNlKSAqIGV4dGVuZExlbmd0aDtcblxuICAgICAgY29uc3QgZXh0ZW5kZWRTdGFydFggPSBwMS54IC0gKChwMi54IC0gcDEueCkgLyBkaXN0YW5jZSkgKiBleHRlbmRMZW5ndGg7XG4gICAgICBjb25zdCBleHRlbmRlZFN0YXJ0WSA9IHAxLnkgLSAoKHAyLnkgLSBwMS55KSAvIGRpc3RhbmNlKSAqIGV4dGVuZExlbmd0aDtcblxuICAgICAgY29udGV4dFxuICAgICAgICAuYXBwZW5kKCdsaW5lJylcbiAgICAgICAgLmF0dHIoJ2NsYXNzJywgJ2V4dGVuZGVkTGluZScpXG4gICAgICAgIC5hdHRyKCdkYXRhLWV4dGVuZGVkLWlkJywgc2VyaWVzSW5kZXgpXG4gICAgICAgIC5hdHRyKCdzdHJva2UnLCBzZXJpZXM/LmNvbG9yKVxuICAgICAgICAuYXR0cignc3Ryb2tlLXdpZHRoJywgc2VyaWVzPy5zdHJva2VXaWR0aClcbiAgICAgICAgLmF0dHIoJ3N0cm9rZS1kYXNoYXJyYXknLCBzZXJpZXM/LnN0cm9rZURhc2hhcnJheSlcbiAgICAgICAgLmF0dHIoJ3gxJywgc2NhbGVYKHAxLngpKVxuICAgICAgICAuYXR0cigneTEnLCBzY2FsZVkocDEueSkpXG4gICAgICAgIC5hdHRyKCd4MicsIHNjYWxlWChleHRlbmRlZFN0YXJ0WCkpXG4gICAgICAgIC5hdHRyKCd5MicsIHNjYWxlWShleHRlbmRlZFN0YXJ0WSkpO1xuXG4gICAgICBjb250ZXh0XG4gICAgICAgIC5hcHBlbmQoJ2xpbmUnKVxuICAgICAgICAuYXR0cignY2xhc3MnLCAnZXh0ZW5kZWRMaW5lJylcbiAgICAgICAgLmF0dHIoJ2RhdGEtZXh0ZW5kZWQtaWQnLCBzZXJpZXNJbmRleClcbiAgICAgICAgLmF0dHIoJ3N0cm9rZScsIHNlcmllcz8uY29sb3IpXG4gICAgICAgIC5hdHRyKCdzdHJva2Utd2lkdGgnLCBzZXJpZXM/LnN0cm9rZVdpZHRoKVxuICAgICAgICAuYXR0cignc3Ryb2tlLWRhc2hhcnJheScsIHNlcmllcz8uc3Ryb2tlRGFzaGFycmF5KVxuICAgICAgICAuYXR0cigneDEnLCBzY2FsZVgocDIueCkpXG4gICAgICAgIC5hdHRyKCd5MScsIHNjYWxlWShwMi55KSlcbiAgICAgICAgLmF0dHIoJ3gyJywgc2NhbGVYKGV4dGVuZGVkRW5kWCkpXG4gICAgICAgIC5hdHRyKCd5MicsIHNjYWxlWShleHRlbmRlZEVuZFkpKTtcbiAgICB9O1xuXG4gICAgaWYgKHNlcmllcz8uZHJhZz8uZXh0ZW5kTGluZSAmJiBwb2ludHM/Lmxlbmd0aCkge1xuICAgICAgZHJhd0V4dGVuZGVkTGluZSgpO1xuICAgIH1cblxuICAgIGlmIChtYXJrZXJQb2ludHM/Lmxlbmd0aCkge1xuICAgICAgY29uc3QgZW1pdCA9IChldmVudDogRHJhZ0V2ZW50LCB0YXJnZXQ6IEJhc2VQb2ludCkgPT4ge1xuICAgICAgICB0aGlzLmRpc3BhdGNoLmFwcGx5KERpc3BhdGNoVHlwZS5tb3ZlUG9pbnQsIHtcbiAgICAgICAgICB0YXJnZXQ6IHNlcmllcyxcbiAgICAgICAgICBwb2ludDoge1xuICAgICAgICAgICAgLi4udGFyZ2V0LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXZlbnQsXG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgY29udGV4dFxuICAgICAgICAuc2VsZWN0QWxsKGBkcmFnZ2FibGUtbWFya2VyLSR7c2VyaWVzSW5kZXh9YClcbiAgICAgICAgLmRhdGEobWFya2VyUG9pbnRzKVxuICAgICAgICAuZW50ZXIoKVxuICAgICAgICAuYXBwZW5kKCdjaXJjbGUnKVxuICAgICAgICAuYXR0cignY2xhc3MnLCBgZHJhZ2dhYmxlLW1hcmtlci0ke3Nlcmllc0luZGV4fWApXG4gICAgICAgIC5hdHRyKCdyJywgKGQpID0+IGQubWFya2VyPy5zdHlsZT8ucmFkaXVzIHx8IDUpXG4gICAgICAgIC5hdHRyKCdjeCcsIGZ1bmN0aW9uIChkKSB7XG4gICAgICAgICAgcmV0dXJuIHNjYWxlWChkLngpO1xuICAgICAgICB9KVxuICAgICAgICAuYXR0cignY3knLCBmdW5jdGlvbiAoZCkge1xuICAgICAgICAgIHJldHVybiBzY2FsZVkoZC55KTtcbiAgICAgICAgfSlcbiAgICAgICAgLnN0eWxlKCdjdXJzb3InLCAncG9pbnRlcicpXG4gICAgICAgIC5zdHlsZSgnZmlsbCcsIChkKSA9PiBkLm1hcmtlcj8uc3R5bGU/LmNvbG9yIHx8ICdyZWQnKVxuICAgICAgICAuYXR0cignc3Ryb2tlJywgKGQpID0+IGQubWFya2VyPy5zdHlsZT8uc3Ryb2tlIHx8ICdub25lJylcbiAgICAgICAgLmF0dHIoJ3N0cm9rZS13aWR0aCcsIChkKSA9PiBkLm1hcmtlcj8uc3R5bGU/LnN0cm9rZVdpZHRoIHx8IDApO1xuXG4gICAgICBjb250ZXh0LnNlbGVjdEFsbChgLmRyYWdnYWJsZS1tYXJrZXItJHtzZXJpZXNJbmRleH1gKS5jYWxsKFxuICAgICAgICBkMy5kcmFnKCkub24oJ2RyYWcgc3RhcnQgZW5kJywgZnVuY3Rpb24gZHJhZ2dlZChldmVudCwgZDogQmFzZVBvaW50KSB7XG4gICAgICAgICAgY29uc3Qgbm9kZSA9IGQzLnNlbGVjdCh0aGlzKTtcblxuICAgICAgICAgIGlmIChldmVudC50eXBlID09PSAnc3RhcnQnKSB7XG4gICAgICAgICAgICBub2RlLnJhaXNlKCkuY2xhc3NlZCgnYWN0aXZlJywgdHJ1ZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGQubWFya2VyPy5kcmFnVHlwZSA9PT0gRHJhZ1BvaW50VHlwZS54KSB7XG4gICAgICAgICAgICBkLnggPSBzY2FsZVguaW52ZXJ0KGV2ZW50LnNvdXJjZUV2ZW50Py5vZmZzZXRYKTtcbiAgICAgICAgICAgIG5vZGUuYXR0cignY3gnLCBzY2FsZVgoZC54KSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGQubWFya2VyPy5kcmFnVHlwZSA9PT0gRHJhZ1BvaW50VHlwZS55KSB7XG4gICAgICAgICAgICBkLnkgPSBzY2FsZVkuaW52ZXJ0KGV2ZW50LnNvdXJjZUV2ZW50Py5vZmZzZXRZKTtcbiAgICAgICAgICAgIG5vZGUuYXR0cignY3knLCBzY2FsZVkoZC55KSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29udGV4dC5zZWxlY3QoYC5zZXJpZXMtJHtzZXJpZXNJbmRleH1gKS5hdHRyKCdkJywgcGF0aCk7XG5cbiAgICAgICAgICBlbWl0KGV2ZW50LCBkKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -5,6 +5,7 @@ export class SplineDrawer {
|
|
|
5
5
|
const path = d3
|
|
6
6
|
.line()
|
|
7
7
|
.curve(d3.curveCatmullRom)
|
|
8
|
+
.defined((d) => d.x != null && d.y != null)
|
|
8
9
|
.x((d) => scaleX(d.x))
|
|
9
10
|
.y((d) => scaleY(d.y));
|
|
10
11
|
context
|
|
@@ -19,4 +20,4 @@ export class SplineDrawer {
|
|
|
19
20
|
.duration(750);
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaW5lLWRyYXdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvbXBvbmVudC9jaGFydC9kcmF3ZXIvc3BsaW5lLWRyYXdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUV6QixNQUFNLE9BQU8sWUFBWTtJQUN2QixJQUFJLENBQ0YsTUFBeUIsRUFDekIsT0FBMkQsRUFDM0QsTUFBVyxFQUNYLE1BQVc7UUFFWCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBRTNCLE1BQU0sSUFBSSxHQUFHLEVBQUU7YUFDWixJQUFJLEVBQUU7YUFDTixLQUFLLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQzthQUN6QixPQUFPLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO2FBQy9DLENBQUMsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU5QixPQUFPO2FBQ0osTUFBTSxDQUFDLE1BQU0sQ0FBQzthQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQzthQUN2QyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQzthQUNwQixJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7YUFDNUIsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDakUsS0FBSyxDQUFDLE1BQU0sQ0FBQzthQUNiLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBVyxDQUFDO2FBQ3RCLFVBQVUsRUFBRTthQUNaLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRHJhd2VyIH0gZnJvbSAnLi4vbW9kZWwvaS1kcmF3ZXInO1xuaW1wb3J0IHsgQmFzZVBvaW50IH0gZnJvbSAnLi4vbW9kZWwvcG9pbnQvYmFzZS1wb2ludCc7XG5pbXBvcnQgeyBTZXJpZXMgfSBmcm9tICcuLi9tb2RlbC9zZXJpZXMnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuXG5leHBvcnQgY2xhc3MgU3BsaW5lRHJhd2VyIGltcGxlbWVudHMgSURyYXdlcjxCYXNlUG9pbnQ+IHtcbiAgZHJhdyhcbiAgICBzZXJpZXM6IFNlcmllczxCYXNlUG9pbnQ+LFxuICAgIGNvbnRleHQ6IGQzLlNlbGVjdGlvbjxTVkdFbGVtZW50LCB1bmtub3duLCBudWxsLCB1bmRlZmluZWQ+LFxuICAgIHNjYWxlWDogYW55LFxuICAgIHNjYWxlWTogYW55XG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50cyA9IHNlcmllcy5kYXRhO1xuXG4gICAgY29uc3QgcGF0aCA9IGQzXG4gICAgICAubGluZSgpXG4gICAgICAuY3VydmUoZDMuY3VydmVDYXRtdWxsUm9tKVxuICAgICAgLmRlZmluZWQoKGQ6IGFueSkgPT4gZC54ICE9IG51bGwgJiYgZC55ICE9IG51bGwpXG4gICAgICAueCgoZDogYW55KSA9PiBzY2FsZVgoZC54KSlcbiAgICAgIC55KChkOiBhbnkpID0+IHNjYWxlWShkLnkpKTtcblxuICAgIGNvbnRleHRcbiAgICAgIC5hcHBlbmQoJ3BhdGgnKVxuICAgICAgLmF0dHIoJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGUoJHswfSwgMClgKVxuICAgICAgLmF0dHIoJ2ZpbGwnLCAnbm9uZScpXG4gICAgICAuYXR0cignc3Ryb2tlJywgc2VyaWVzLmNvbG9yKVxuICAgICAgLmF0dHIoJ3N0cm9rZS13aWR0aCcsIHNlcmllcy5zdHJva2VXaWR0aCA/IHNlcmllcy5zdHJva2VXaWR0aCA6IDEpXG4gICAgICAuZGF0dW0ocG9pbnRzKVxuICAgICAgLmF0dHIoJ2QnLCBwYXRoIGFzIGFueSlcbiAgICAgIC50cmFuc2l0aW9uKClcbiAgICAgIC5kdXJhdGlvbig3NTApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export var DispatchType;
|
|
2
2
|
(function (DispatchType) {
|
|
3
3
|
DispatchType["moveLine"] = "moveLine";
|
|
4
|
+
DispatchType["movePoint"] = "movePoint";
|
|
4
5
|
})(DispatchType || (DispatchType = {}));
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2gtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvbXBvbmVudC9jaGFydC9tb2RlbC9lbnVtL2Rpc3BhdGNoLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUN0QixxQ0FBcUIsQ0FBQTtJQUNyQix1Q0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBSFcsWUFBWSxLQUFaLFlBQVksUUFHdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBEaXNwYXRjaFR5cGUge1xuICBtb3ZlTGluZSA9ICdtb3ZlTGluZScsXG4gIG1vdmVQb2ludCA9ICdtb3ZlUG9pbnQnLFxufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var DragPointType;
|
|
2
|
+
(function (DragPointType) {
|
|
3
|
+
DragPointType[DragPointType["x"] = 0] = "x";
|
|
4
|
+
DragPointType[DragPointType["y"] = 1] = "y";
|
|
5
|
+
DragPointType[DragPointType["xy"] = 2] = "xy";
|
|
6
|
+
})(DragPointType || (DragPointType = {}));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1wb2ludC10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvY29tcG9uZW50L2NoYXJ0L21vZGVsL2VudW0vZHJhZy1wb2ludC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDdkIsMkNBQUMsQ0FBQTtJQUNELDJDQUFDLENBQUE7SUFDRCw2Q0FBRSxDQUFBO0FBQ0osQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRHJhZ1BvaW50VHlwZSB7XG4gIHgsXG4gIHksXG4gIHh5LFxufVxuIl19
|
|
@@ -5,6 +5,7 @@ export class PlotBand {
|
|
|
5
5
|
this.to = options?.to;
|
|
6
6
|
this.label = options?.label;
|
|
7
7
|
this.color = options?.color || '#59AE501A';
|
|
8
|
+
this.image = options?.image;
|
|
8
9
|
this.showGrabbers =
|
|
9
10
|
options?.showGrabbers != null ? options.showGrabbers : true;
|
|
10
11
|
this.draggable = options?.draggable != null ? options?.draggable : false;
|
|
@@ -14,4 +15,4 @@ export class PlotBand {
|
|
|
14
15
|
this.opacity = options?.opacity;
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvdC1iYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvY29tcG9uZW50L2NoYXJ0L21vZGVsL3Bsb3QtYmFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sUUFBUTtJQWNuQixZQUFZLE9BYVg7UUFDQyxJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLEVBQUUsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sRUFBRSxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLEVBQUUsS0FBSyxJQUFJLFdBQVcsQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sRUFBRSxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLFlBQVk7WUFDZixPQUFPLEVBQUUsWUFBWSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzlELElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN6RSxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sRUFBRSxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDeEUsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLEVBQUUsR0FBRyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxFQUFFLEdBQUcsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sRUFBRSxPQUFPLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFBsb3RCYW5kIHtcbiAgaWQ6IGFueTtcbiAgZnJvbTogbnVtYmVyO1xuICB0bzogbnVtYmVyO1xuICBsYWJlbD86IHN0cmluZztcbiAgY29sb3I/OiBzdHJpbmc7XG4gIGltYWdlPzogc3RyaW5nO1xuICBzaG93R3JhYmJlcnM/OiBib29sZWFuO1xuICBkcmFnZ2FibGU/OiBib29sZWFuO1xuICByZXNpemFibGU/OiBib29sZWFuO1xuICBtaW4/OiBudW1iZXI7XG4gIG1heD86IG51bWJlcjtcbiAgb3BhY2l0eT86IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zPzoge1xuICAgIGlkOiBhbnk7XG4gICAgZnJvbTogbnVtYmVyO1xuICAgIHRvOiBudW1iZXI7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgaW1hZ2U/OiBzdHJpbmc7XG4gICAgc2hvd0dyYWJiZXJzPzogYm9vbGVhbjtcbiAgICBkcmFnZ2FibGU/OiBib29sZWFuO1xuICAgIHJlc2l6YWJsZT86IGJvb2xlYW47XG4gICAgbWluPzogbnVtYmVyO1xuICAgIG1heD86IG51bWJlcjtcbiAgICBvcGFjaXR5PzogbnVtYmVyO1xuICB9KSB7XG4gICAgdGhpcy5pZCA9IG9wdGlvbnM/LmlkO1xuICAgIHRoaXMuZnJvbSA9IG9wdGlvbnM/LmZyb207XG4gICAgdGhpcy50byA9IG9wdGlvbnM/LnRvO1xuICAgIHRoaXMubGFiZWwgPSBvcHRpb25zPy5sYWJlbDtcbiAgICB0aGlzLmNvbG9yID0gb3B0aW9ucz8uY29sb3IgfHwgJyM1OUFFNTAxQSc7XG4gICAgdGhpcy5pbWFnZSA9IG9wdGlvbnM/LmltYWdlO1xuICAgIHRoaXMuc2hvd0dyYWJiZXJzID1cbiAgICAgIG9wdGlvbnM/LnNob3dHcmFiYmVycyAhPSBudWxsID8gb3B0aW9ucy5zaG93R3JhYmJlcnMgOiB0cnVlO1xuICAgIHRoaXMuZHJhZ2dhYmxlID0gb3B0aW9ucz8uZHJhZ2dhYmxlICE9IG51bGwgPyBvcHRpb25zPy5kcmFnZ2FibGUgOiBmYWxzZTtcbiAgICB0aGlzLnJlc2l6YWJsZSA9IG9wdGlvbnM/LnJlc2l6YWJsZSAhPSBudWxsID8gb3B0aW9ucz8ucmVzaXphYmxlIDogdHJ1ZTtcbiAgICB0aGlzLm1pbiA9IG9wdGlvbnM/Lm1pbjtcbiAgICB0aGlzLm1heCA9IG9wdGlvbnM/Lm1heDtcbiAgICB0aGlzLm9wYWNpdHkgPSBvcHRpb25zPy5vcGFjaXR5O1xuICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvbXBvbmVudC9jaGFydC9tb2RlbC9wb2ludC9iYXNlLXBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXJrZXJPcHRpb25zIH0gZnJvbSAnLi9tYXJrZXItb3B0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZVBvaW50IHtcbiAgeDogbnVtYmVyO1xuICB4MT86IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB5MT86IG51bWJlcjtcbiAgY29sb3I/OiBzdHJpbmcgfCBudW1iZXI7XG4gIG1hcmtlcj86IE1hcmtlck9wdGlvbnM7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VyLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnQvY2hhcnQvbW9kZWwvcG9pbnQvbWFya2VyLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERyYWdQb2ludFR5cGUgfSBmcm9tICcuLi9lbnVtL2RyYWctcG9pbnQtdHlwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFya2VyT3B0aW9ucyB7XG4gIGRyYWdnYWJsZT86IGJvb2xlYW47XG4gIGRyYWdUeXBlOiBEcmFnUG9pbnRUeXBlO1xuICBzdHlsZT86IHtcbiAgICByYWRpdXM/OiBudW1iZXI7XG4gICAgc3Ryb2tlPzogbnVtYmVyO1xuICAgIHN0cm9rZVdpZHRoPzogbnVtYmVyO1xuICAgIGNvbG9yPzogc3RyaW5nO1xuICB9O1xufVxuIl19
|
|
@@ -7,7 +7,14 @@ export class IconSpriteDirective {
|
|
|
7
7
|
this.bypassInterceptors = true;
|
|
8
8
|
}
|
|
9
9
|
ngOnInit() {
|
|
10
|
-
|
|
10
|
+
if (typeof this.tetaIconSprite === 'string') {
|
|
11
|
+
this._iconService.addSprite(this.tetaIconSprite, this.bypassInterceptors);
|
|
12
|
+
}
|
|
13
|
+
if (this.tetaIconSprite instanceof Array && this.tetaIconSprite?.length) {
|
|
14
|
+
this.tetaIconSprite.forEach((sprite) => {
|
|
15
|
+
this._iconService.addSprite(sprite, this.bypassInterceptors);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
11
18
|
}
|
|
12
19
|
}
|
|
13
20
|
IconSpriteDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: IconSpriteDirective, deps: [{ token: i1.IconService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -22,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
|
|
|
22
29
|
}], bypassInterceptors: [{
|
|
23
30
|
type: Input
|
|
24
31
|
}] } });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1zcHJpdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvY29tcG9uZW50L2ljb24vaWNvbi1zcHJpdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDOzs7QUFNdkQsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QixZQUFvQixZQUF5QjtRQUF6QixpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUZwQyx1QkFBa0IsR0FBRyxJQUFJLENBQUM7SUFHbkMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLE9BQU8sSUFBSSxDQUFDLGNBQWMsS0FBSyxRQUFRLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUMzRTtRQUNELElBQUksSUFBSSxDQUFDLGNBQWMsWUFBWSxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUU7WUFDdkUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFjLEVBQUUsRUFBRTtnQkFDN0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQy9ELENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztnSEFoQlUsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2lCQUM3QjtrR0FFVSxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SWNvblNlcnZpY2V9IGZyb20gJy4vaWNvbi5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RldGFJY29uU3ByaXRlXSdcbn0pXG5leHBvcnQgY2xhc3MgSWNvblNwcml0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHRldGFJY29uU3ByaXRlOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgQElucHV0KCkgYnlwYXNzSW50ZXJjZXB0b3JzID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9pY29uU2VydmljZTogSWNvblNlcnZpY2UpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgdGhpcy50ZXRhSWNvblNwcml0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuX2ljb25TZXJ2aWNlLmFkZFNwcml0ZSh0aGlzLnRldGFJY29uU3ByaXRlLCB0aGlzLmJ5cGFzc0ludGVyY2VwdG9ycyk7XG4gICAgfVxuICAgIGlmICh0aGlzLnRldGFJY29uU3ByaXRlIGluc3RhbmNlb2YgQXJyYXkgJiYgdGhpcy50ZXRhSWNvblNwcml0ZT8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnRldGFJY29uU3ByaXRlLmZvckVhY2goKHNwcml0ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuX2ljb25TZXJ2aWNlLmFkZFNwcml0ZShzcHJpdGUsIHRoaXMuYnlwYXNzSW50ZXJjZXB0b3JzKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -247,7 +247,15 @@ class IconSpriteDirective {
|
|
|
247
247
|
this.bypassInterceptors = true;
|
|
248
248
|
}
|
|
249
249
|
ngOnInit() {
|
|
250
|
-
|
|
250
|
+
var _a;
|
|
251
|
+
if (typeof this.tetaIconSprite === 'string') {
|
|
252
|
+
this._iconService.addSprite(this.tetaIconSprite, this.bypassInterceptors);
|
|
253
|
+
}
|
|
254
|
+
if (this.tetaIconSprite instanceof Array && ((_a = this.tetaIconSprite) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
255
|
+
this.tetaIconSprite.forEach((sprite) => {
|
|
256
|
+
this._iconService.addSprite(sprite, this.bypassInterceptors);
|
|
257
|
+
});
|
|
258
|
+
}
|
|
251
259
|
}
|
|
252
260
|
}
|
|
253
261
|
IconSpriteDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: IconSpriteDirective, deps: [{ token: IconService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -10054,15 +10062,24 @@ class BarDrawer {
|
|
|
10054
10062
|
var DispatchType;
|
|
10055
10063
|
(function (DispatchType) {
|
|
10056
10064
|
DispatchType["moveLine"] = "moveLine";
|
|
10065
|
+
DispatchType["movePoint"] = "movePoint";
|
|
10057
10066
|
})(DispatchType || (DispatchType = {}));
|
|
10058
10067
|
|
|
10068
|
+
var DragPointType;
|
|
10069
|
+
(function (DragPointType) {
|
|
10070
|
+
DragPointType[DragPointType["x"] = 0] = "x";
|
|
10071
|
+
DragPointType[DragPointType["y"] = 1] = "y";
|
|
10072
|
+
DragPointType[DragPointType["xy"] = 2] = "xy";
|
|
10073
|
+
})(DragPointType || (DragPointType = {}));
|
|
10074
|
+
|
|
10059
10075
|
class LineDrawer {
|
|
10060
10076
|
constructor() {
|
|
10061
|
-
this.dispatch = d3.dispatch(DispatchType.moveLine);
|
|
10077
|
+
this.dispatch = d3.dispatch(DispatchType.moveLine, DispatchType.movePoint);
|
|
10062
10078
|
}
|
|
10063
10079
|
draw(series, context, scaleX, scaleY, options) {
|
|
10064
10080
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
10065
10081
|
const points = series.data;
|
|
10082
|
+
const markerPoints = points.filter((_) => _.marker);
|
|
10066
10083
|
const path = d3
|
|
10067
10084
|
.line()
|
|
10068
10085
|
.curve(series.curveType)
|
|
@@ -10072,7 +10089,7 @@ class LineDrawer {
|
|
|
10072
10089
|
const seriesIndex = options.series.findIndex((_) => _.id === series.id);
|
|
10073
10090
|
context
|
|
10074
10091
|
.append('path')
|
|
10075
|
-
.attr('class', (d) => (series === null || series === void 0 ? void 0 : series.drag.enable) ? 'draggable' :
|
|
10092
|
+
.attr('class', (d) => (series === null || series === void 0 ? void 0 : series.drag.enable) ? 'draggable' : `series-${seriesIndex}`)
|
|
10076
10093
|
.attr('data-draggable-id', seriesIndex)
|
|
10077
10094
|
.attr('fill', 'none')
|
|
10078
10095
|
.attr('stroke', series.color)
|
|
@@ -10159,6 +10176,49 @@ class LineDrawer {
|
|
|
10159
10176
|
if (((_p = series === null || series === void 0 ? void 0 : series.drag) === null || _p === void 0 ? void 0 : _p.extendLine) && (points === null || points === void 0 ? void 0 : points.length)) {
|
|
10160
10177
|
drawExtendedLine();
|
|
10161
10178
|
}
|
|
10179
|
+
if (markerPoints === null || markerPoints === void 0 ? void 0 : markerPoints.length) {
|
|
10180
|
+
const emit = (event, target) => {
|
|
10181
|
+
this.dispatch.apply(DispatchType.movePoint, {
|
|
10182
|
+
target: series,
|
|
10183
|
+
point: Object.assign({}, target),
|
|
10184
|
+
event,
|
|
10185
|
+
});
|
|
10186
|
+
};
|
|
10187
|
+
context
|
|
10188
|
+
.selectAll(`draggable-marker-${seriesIndex}`)
|
|
10189
|
+
.data(markerPoints)
|
|
10190
|
+
.enter()
|
|
10191
|
+
.append('circle')
|
|
10192
|
+
.attr('class', `draggable-marker-${seriesIndex}`)
|
|
10193
|
+
.attr('r', (d) => { var _a, _b; return ((_b = (_a = d.marker) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.radius) || 5; })
|
|
10194
|
+
.attr('cx', function (d) {
|
|
10195
|
+
return scaleX(d.x);
|
|
10196
|
+
})
|
|
10197
|
+
.attr('cy', function (d) {
|
|
10198
|
+
return scaleY(d.y);
|
|
10199
|
+
})
|
|
10200
|
+
.style('cursor', 'pointer')
|
|
10201
|
+
.style('fill', (d) => { var _a, _b; return ((_b = (_a = d.marker) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.color) || 'red'; })
|
|
10202
|
+
.attr('stroke', (d) => { var _a, _b; return ((_b = (_a = d.marker) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.stroke) || 'none'; })
|
|
10203
|
+
.attr('stroke-width', (d) => { var _a, _b; return ((_b = (_a = d.marker) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.strokeWidth) || 0; });
|
|
10204
|
+
context.selectAll(`.draggable-marker-${seriesIndex}`).call(d3.drag().on('drag start end', function dragged(event, d) {
|
|
10205
|
+
var _a, _b, _c, _d;
|
|
10206
|
+
const node = d3.select(this);
|
|
10207
|
+
if (event.type === 'start') {
|
|
10208
|
+
node.raise().classed('active', true);
|
|
10209
|
+
}
|
|
10210
|
+
if (((_a = d.marker) === null || _a === void 0 ? void 0 : _a.dragType) === DragPointType.x) {
|
|
10211
|
+
d.x = scaleX.invert((_b = event.sourceEvent) === null || _b === void 0 ? void 0 : _b.offsetX);
|
|
10212
|
+
node.attr('cx', scaleX(d.x));
|
|
10213
|
+
}
|
|
10214
|
+
if (((_c = d.marker) === null || _c === void 0 ? void 0 : _c.dragType) === DragPointType.y) {
|
|
10215
|
+
d.y = scaleY.invert((_d = event.sourceEvent) === null || _d === void 0 ? void 0 : _d.offsetY);
|
|
10216
|
+
node.attr('cy', scaleY(d.y));
|
|
10217
|
+
}
|
|
10218
|
+
context.select(`.series-${seriesIndex}`).attr('d', path);
|
|
10219
|
+
emit(event, d);
|
|
10220
|
+
}));
|
|
10221
|
+
}
|
|
10162
10222
|
}
|
|
10163
10223
|
}
|
|
10164
10224
|
|
|
@@ -10172,6 +10232,7 @@ class SplineDrawer {
|
|
|
10172
10232
|
const path = d3
|
|
10173
10233
|
.line()
|
|
10174
10234
|
.curve(d3.curveCatmullRom)
|
|
10235
|
+
.defined((d) => d.x != null && d.y != null)
|
|
10175
10236
|
.x((d) => scaleX(d.x))
|
|
10176
10237
|
.y((d) => scaleY(d.y));
|
|
10177
10238
|
context
|
|
@@ -10530,6 +10591,7 @@ class TetaChart {
|
|
|
10530
10591
|
this.plotLinesMove$ = new Subject();
|
|
10531
10592
|
this.plotBandsMove$ = new Subject();
|
|
10532
10593
|
this.seriesMove$ = new Subject();
|
|
10594
|
+
this.pointMove$ = new Subject();
|
|
10533
10595
|
this.zoom$ = new Subject();
|
|
10534
10596
|
this._container = null;
|
|
10535
10597
|
this._width = 0;
|
|
@@ -10551,6 +10613,7 @@ class TetaChart {
|
|
|
10551
10613
|
this.plotLinesMove = this.plotLinesMove$.asObservable();
|
|
10552
10614
|
this.plotBandsMove = this.plotBandsMove$.asObservable();
|
|
10553
10615
|
this.seriesMove = this.seriesMove$.asObservable();
|
|
10616
|
+
this.pointMove = this.pointMove$.asObservable();
|
|
10554
10617
|
this.zoom = this.zoom$.asObservable();
|
|
10555
10618
|
}
|
|
10556
10619
|
redraw(options) {
|
|
@@ -10663,11 +10726,11 @@ class TetaChart {
|
|
|
10663
10726
|
this.visibleChartWindowWidth = this.caluclateChartWidth();
|
|
10664
10727
|
}
|
|
10665
10728
|
_redraw() {
|
|
10729
|
+
this.drawPlotBands();
|
|
10730
|
+
this.drawPlotLines();
|
|
10666
10731
|
this.drawChart();
|
|
10667
10732
|
this.drawAxis();
|
|
10668
10733
|
this.drawGridLines();
|
|
10669
|
-
this.drawPlotBands();
|
|
10670
|
-
this.drawPlotLines();
|
|
10671
10734
|
this.drawAnnotations();
|
|
10672
10735
|
}
|
|
10673
10736
|
addZoom() {
|
|
@@ -11018,7 +11081,12 @@ class TetaChart {
|
|
|
11018
11081
|
.attr('x', (d) => x(d.from))
|
|
11019
11082
|
.attr('y', 0)
|
|
11020
11083
|
.attr('width', (d) => Math.abs(x(d.to) - x(d.from)))
|
|
11021
|
-
.attr('fill', (d) =>
|
|
11084
|
+
.attr('fill', (d) => {
|
|
11085
|
+
if (d.image) {
|
|
11086
|
+
return `url(#${d.image})`;
|
|
11087
|
+
}
|
|
11088
|
+
return d.color;
|
|
11089
|
+
})
|
|
11022
11090
|
.style('opacity', (d) => { var _a; return (_a = d.opacity) !== null && _a !== void 0 ? _a : 1; })
|
|
11023
11091
|
.attr('height', plotBandHeight > 0 ? plotBandHeight : 0)
|
|
11024
11092
|
.attr('transform', `translate(0, ${this._options.bounds.top})`);
|
|
@@ -11263,7 +11331,12 @@ class TetaChart {
|
|
|
11263
11331
|
.attr('x', 0)
|
|
11264
11332
|
.attr('y', (d) => y(d.from))
|
|
11265
11333
|
.attr('width', (d) => plotBandWidth)
|
|
11266
|
-
.attr('fill', (d) =>
|
|
11334
|
+
.attr('fill', (d) => {
|
|
11335
|
+
if (d.image) {
|
|
11336
|
+
return `url(#${d.image})`;
|
|
11337
|
+
}
|
|
11338
|
+
return d.color;
|
|
11339
|
+
})
|
|
11267
11340
|
.style('opacity', (d) => { var _a; return (_a = d.opacity) !== null && _a !== void 0 ? _a : 1; })
|
|
11268
11341
|
.attr('height', (d) => Math.abs(y(d.to) - y(d.from)))
|
|
11269
11342
|
.attr('cursor', (d) => (d.draggable ? 'move' : 'default'));
|
|
@@ -11347,7 +11420,7 @@ class TetaChart {
|
|
|
11347
11420
|
.attr('class', 'series')
|
|
11348
11421
|
.attr('clip-path', `url(#draw-window-${this.uniqId})`);
|
|
11349
11422
|
series === null || series === void 0 ? void 0 : series.forEach((seriesItem, index) => {
|
|
11350
|
-
var _a;
|
|
11423
|
+
var _a, _b;
|
|
11351
11424
|
if (seriesItem.renderTo === 'canvas') {
|
|
11352
11425
|
d3.select(this._container.nativeElement)
|
|
11353
11426
|
.select('canvas')
|
|
@@ -11405,9 +11478,15 @@ class TetaChart {
|
|
|
11405
11478
|
const emit = (event) => {
|
|
11406
11479
|
this.seriesMove$.next(event);
|
|
11407
11480
|
};
|
|
11481
|
+
const emitPoint = (event) => {
|
|
11482
|
+
this.pointMove$.next(event);
|
|
11483
|
+
};
|
|
11408
11484
|
(_a = drawer === null || drawer === void 0 ? void 0 : drawer.dispatch) === null || _a === void 0 ? void 0 : _a.on(DispatchType.moveLine, function () {
|
|
11409
11485
|
emit(this);
|
|
11410
11486
|
});
|
|
11487
|
+
(_b = drawer === null || drawer === void 0 ? void 0 : drawer.dispatch) === null || _b === void 0 ? void 0 : _b.on(DispatchType.movePoint, function () {
|
|
11488
|
+
emitPoint(this);
|
|
11489
|
+
});
|
|
11411
11490
|
});
|
|
11412
11491
|
}
|
|
11413
11492
|
createTooltip() {
|
|
@@ -11455,7 +11534,7 @@ class TetaChart {
|
|
|
11455
11534
|
color: d.color,
|
|
11456
11535
|
name: d.name,
|
|
11457
11536
|
});
|
|
11458
|
-
return `translate(${!isNaN(data === null || data === void 0 ? void 0 : data.x) ? foundX(data.x) : -10}, ${!isNaN(data === null || data === void 0 ? void 0 : data.y) ? foundY(data.y) : -10})`;
|
|
11537
|
+
return `translate(${!isNaN(data === null || data === void 0 ? void 0 : data.x) && (data === null || data === void 0 ? void 0 : data.x) != null ? foundX(data.x) : -10}, ${!isNaN(data === null || data === void 0 ? void 0 : data.y) && (data === null || data === void 0 ? void 0 : data.y) != null ? foundY(data.y) : -10})`;
|
|
11459
11538
|
}
|
|
11460
11539
|
if (this._options.tooltip.tracking === 'y') {
|
|
11461
11540
|
const sorted = [...d.data].sort((a, b) => d3.ascending(a.y, b.y));
|
|
@@ -11468,7 +11547,7 @@ class TetaChart {
|
|
|
11468
11547
|
color: d.color,
|
|
11469
11548
|
name: d.name,
|
|
11470
11549
|
});
|
|
11471
|
-
return `translate(${foundX(data.x)}, ${foundY(data.y)})`;
|
|
11550
|
+
return `translate(${!isNaN(data === null || data === void 0 ? void 0 : data.x) && (data === null || data === void 0 ? void 0 : data.x) != null ? foundX(data.x) : -10}, ${!isNaN(data === null || data === void 0 ? void 0 : data.y) && (data === null || data === void 0 ? void 0 : data.y) != null ? foundY(data.y) : -10})`;
|
|
11472
11551
|
}
|
|
11473
11552
|
});
|
|
11474
11553
|
if ((_a = this._options.tooltip) === null || _a === void 0 ? void 0 : _a.format) {
|
|
@@ -11856,6 +11935,7 @@ class ChartComponent {
|
|
|
11856
11935
|
this.plotLinesMove = new EventEmitter();
|
|
11857
11936
|
this.plotBandsMove = new EventEmitter();
|
|
11858
11937
|
this.seriesMove = new EventEmitter();
|
|
11938
|
+
this.pointMove = new EventEmitter();
|
|
11859
11939
|
this.zoomChange = new EventEmitter();
|
|
11860
11940
|
this._alive = true;
|
|
11861
11941
|
this.size$ = new Subject();
|
|
@@ -11904,8 +11984,7 @@ class ChartComponent {
|
|
|
11904
11984
|
(_b = this._chart) === null || _b === void 0 ? void 0 : _b.setZoom(this.zoom);
|
|
11905
11985
|
}
|
|
11906
11986
|
}
|
|
11907
|
-
ngOnInit() {
|
|
11908
|
-
}
|
|
11987
|
+
ngOnInit() { }
|
|
11909
11988
|
ngAfterViewInit() {
|
|
11910
11989
|
this._observer = new ResizeObserver((entries) => {
|
|
11911
11990
|
const { contentRect } = entries[0];
|
|
@@ -11953,6 +12032,11 @@ class ChartComponent {
|
|
|
11953
12032
|
this._chart.seriesMove
|
|
11954
12033
|
.pipe(takeWhile((_) => this._alive))
|
|
11955
12034
|
.subscribe((_) => this.seriesMove.emit(_));
|
|
12035
|
+
this._chart.pointMove
|
|
12036
|
+
.pipe(takeWhile((_) => this._alive))
|
|
12037
|
+
.subscribe((_) => {
|
|
12038
|
+
this.pointMove.emit(_);
|
|
12039
|
+
});
|
|
11956
12040
|
this._chart.zoom
|
|
11957
12041
|
.pipe(takeWhile((_) => this._alive), map((_) => {
|
|
11958
12042
|
this.zoomChange.emit(_);
|
|
@@ -11970,7 +12054,7 @@ class ChartComponent {
|
|
|
11970
12054
|
}
|
|
11971
12055
|
}
|
|
11972
12056
|
ChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
11973
|
-
ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ChartComponent, selector: "teta-chart", inputs: { zoom: "zoom", config: "config" }, outputs: { plotLinesMove: "plotLinesMove", plotBandsMove: "plotBandsMove", seriesMove: "seriesMove", zoomChange: "zoomChange" }, host: { listeners: { "click": "click($event)" } }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["chart"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div [style.display]=\"hasSeriesData ? 'contents' : 'none'\">\n <div #chart class=\"chart-container\"></div>\n <div class=\"legend-container\"></div>\n</div>\n<div [style.display]=\"!hasSeriesData ? 'block' : 'none'\" class=\"chart-placeholder text-align-center\">\n <span class=\"font-body-3 color-text-40\">\u0414\u0430\u043D\u043D\u044B\u0435 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442</span>\n</div>\n\n\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}.chart-container{position:relative;min-height:0;flex-grow:1;flex-basis:1px}.chart-placeholder{margin:auto;width:100%}.chart-placeholder span{text-overflow:ellipsis;overflow:hidden;display:block}.legend-container{flex-shrink:0;flex-basis:1px}::ng-deep .grid line{stroke-dasharray:1,4}::ng-deep .tooltip-chart{padding:8px 12px;border-radius:2px}::ng-deep .legend{grid-gap:8px;padding-bottom:5px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-evenly}::ng-deep .legend .item{display:flex;align-items:center;cursor:pointer}::ng-deep .legend .item .swatch{width:10px;height:10px}::ng-deep .legend .item .line{width:12px;height:2px}::ng-deep .legend .item .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:5px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
12057
|
+
ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ChartComponent, selector: "teta-chart", inputs: { zoom: "zoom", config: "config" }, outputs: { plotLinesMove: "plotLinesMove", plotBandsMove: "plotBandsMove", seriesMove: "seriesMove", pointMove: "pointMove", zoomChange: "zoomChange" }, host: { listeners: { "click": "click($event)" } }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["chart"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div [style.display]=\"hasSeriesData ? 'contents' : 'none'\">\n <div #chart class=\"chart-container\"></div>\n <div class=\"legend-container\"></div>\n</div>\n<div [style.display]=\"!hasSeriesData ? 'block' : 'none'\" class=\"chart-placeholder text-align-center\">\n <span class=\"font-body-3 color-text-40\">\u0414\u0430\u043D\u043D\u044B\u0435 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442</span>\n</div>\n\n\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}.chart-container{position:relative;min-height:0;flex-grow:1;flex-basis:1px}.chart-placeholder{margin:auto;width:100%}.chart-placeholder span{text-overflow:ellipsis;overflow:hidden;display:block}.legend-container{flex-shrink:0;flex-basis:1px}::ng-deep .grid line{stroke-dasharray:1,4}::ng-deep .tooltip-chart{padding:8px 12px;border-radius:2px}::ng-deep .legend{grid-gap:8px;padding-bottom:5px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-evenly}::ng-deep .legend .item{display:flex;align-items:center;cursor:pointer}::ng-deep .legend .item .swatch{width:10px;height:10px}::ng-deep .legend .item .line{width:12px;height:2px}::ng-deep .legend .item .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:5px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
11974
12058
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartComponent, decorators: [{
|
|
11975
12059
|
type: Component,
|
|
11976
12060
|
args: [{ selector: 'teta-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [style.display]=\"hasSeriesData ? 'contents' : 'none'\">\n <div #chart class=\"chart-container\"></div>\n <div class=\"legend-container\"></div>\n</div>\n<div [style.display]=\"!hasSeriesData ? 'block' : 'none'\" class=\"chart-placeholder text-align-center\">\n <span class=\"font-body-3 color-text-40\">\u0414\u0430\u043D\u043D\u044B\u0435 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442</span>\n</div>\n\n\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}.chart-container{position:relative;min-height:0;flex-grow:1;flex-basis:1px}.chart-placeholder{margin:auto;width:100%}.chart-placeholder span{text-overflow:ellipsis;overflow:hidden;display:block}.legend-container{flex-shrink:0;flex-basis:1px}::ng-deep .grid line{stroke-dasharray:1,4}::ng-deep .tooltip-chart{padding:8px 12px;border-radius:2px}::ng-deep .legend{grid-gap:8px;padding-bottom:5px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-evenly}::ng-deep .legend .item{display:flex;align-items:center;cursor:pointer}::ng-deep .legend .item .swatch{width:10px;height:10px}::ng-deep .legend .item .line{width:12px;height:2px}::ng-deep .legend .item .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:5px}\n"] }]
|
|
@@ -11984,6 +12068,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
|
|
|
11984
12068
|
type: Output
|
|
11985
12069
|
}], seriesMove: [{
|
|
11986
12070
|
type: Output
|
|
12071
|
+
}], pointMove: [{
|
|
12072
|
+
type: Output
|
|
11987
12073
|
}], zoomChange: [{
|
|
11988
12074
|
type: Output
|
|
11989
12075
|
}], chart: [{
|
|
@@ -12162,6 +12248,7 @@ class PlotBand {
|
|
|
12162
12248
|
this.to = options === null || options === void 0 ? void 0 : options.to;
|
|
12163
12249
|
this.label = options === null || options === void 0 ? void 0 : options.label;
|
|
12164
12250
|
this.color = (options === null || options === void 0 ? void 0 : options.color) || '#59AE501A';
|
|
12251
|
+
this.image = options === null || options === void 0 ? void 0 : options.image;
|
|
12165
12252
|
this.showGrabbers =
|
|
12166
12253
|
(options === null || options === void 0 ? void 0 : options.showGrabbers) != null ? options.showGrabbers : true;
|
|
12167
12254
|
this.draggable = (options === null || options === void 0 ? void 0 : options.draggable) != null ? options === null || options === void 0 ? void 0 : options.draggable : false;
|