@kiwibit/chart 1.0.4 → 1.0.9
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/README.md +8 -11
- package/esm2020/lib/chart.component.mjs +116 -78
- package/esm2020/lib/constants/chart.constants.mjs +3 -3
- package/esm2020/lib/models/chart.models.mjs +1 -6
- package/fesm2015/kiwibit-chart.mjs +121 -88
- package/fesm2015/kiwibit-chart.mjs.map +1 -1
- package/fesm2020/kiwibit-chart.mjs +117 -84
- package/fesm2020/kiwibit-chart.mjs.map +1 -1
- package/lib/chart.component.d.ts +52 -2
- package/lib/constants/chart.constants.d.ts +2 -2
- package/lib/models/chart.models.d.ts +93 -7
- package/package.json +1 -1
|
@@ -9,8 +9,8 @@ import { TitleComponent, TooltipComponent, GridComponent, LegendComponent, DataZ
|
|
|
9
9
|
import { LineChart, ScatterChart } from 'echarts/charts';
|
|
10
10
|
import { CanvasRenderer } from 'echarts/renderers';
|
|
11
11
|
|
|
12
|
-
const ADD_POINT_IMG_OFF = "image://data:image/png;base64,
|
|
13
|
-
const ADD_POINT_IMG_ON = "image://data:image/png;base64,
|
|
12
|
+
const ADD_POINT_IMG_OFF = "image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABmJLR0QA/wD/AP+gvaeTAAADgElEQVR4nO2bTUsbURSG3zMmkWLoThetboq46AdI7b+woLYQrGNdRjDSTW0tXbkralctEWN34kQY2hJB6J+oxYK0lOhK2y7iSpSiyeR0ESe5M34sJs4cP+ZZ3TlzhrznZe5J5uYOEHK1odNOmqYZKxxYfQD3gHAfQCuApmCkeWYPwBYY31hDriUSySUSiYOTkk804H02+1hjTAG45YfKoCBgg8EvU7r++YTzTkzTbCiUSpNgPPdfXpDw20I+Pz4xMVFWo5o77XIWDwA01tzR8eZIVD04vO0/unL2Ac6wpmX/FYtrL4aG9nzVWSfT8/NN16LRu7BYJ0ISQKN6ngh9IwMDueqxPTBNM1Yoln5CnfOE35aldT972v89AO1nTtowOkG0DMbNWpTWm6MNd+zGWJ0ClW7vaHj7F7l4AEjp+iqYHwLYr0W5fbtY7LGPlB7APXDAmYtcvE1K11cB+qDGGHSMAYQuNUkDDN/VBQSx5a7lgT1QvwVuqBnlaPSHn6KChGOxNVeo2hNUA+JqRiqR2PVTVJAcU0u11iO/A64aEakPnllc7OYyzwGwiLXhkcH+LxI6xO4ALvMsKn2njamckdIhOQValXGblIgr3wNCA6QFSBMaIC1AmtAAaQHShAZIC5AmNEBagDShAdICpPG8HjCzuNjNzBnnkrN30kaWPV66Rawlva4neL4DuMyzZ1V8nbTWs55w5aeAZwOItSSArTPU4pVNVP4C84TnHnA45zyv5LjnfEofOHWvgl+EU0BagDShAdICpAkNkBYgTWiAtABpQgOkBUgTGiAtQJrQAMHPVh+lN6VEiBmgrCfU9TxfL2J7hOpdTzgrwh6gjB176dKmGccl4d3CwnVXaMceqAb8UTO0YvG2n6KCJAK4a/lrD2oGMFbUDItp0F9ZwcHUoLtCX+1B1QDWkFMziJBMG0anz9p8J20YnQx2fsswVWutGtASieQI2FDSGkG0fJFNsF+YICBWi9J6ZG9nqXrkuuARQJ/UGAMHBJojtgyOxdbO+ybqtGnGuVS6R0wDDE46iwcY3Duq68cbAABpw5gGaCwIsUHDoMlR/ckrNXb0rbF8fpwY08HJCgjC1Hb+1+uj4ROYyWZ7mWka4HZ/lfkNrTPKY+pt7zh72qWZTCZqxeO9h+/YdKGywfm8/0DaReUZYwVMucjeztLw8HBRWlTIeeU/aykWi4H+qgIAAAAASUVORK5CYII=";
|
|
13
|
+
const ADD_POINT_IMG_ON = "image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABmJLR0QA/wD/AP+gvaeTAAADjUlEQVR4nO2by08TURTGvzNAK49oDCsRNqbFxPogtsQ/AhNAowsxLksTlxIxrtwZwJUJsa07E1wQNSUh8X+wrQFDNSklMQGVjRgMj7TIHBcww50WWEyZOTzmt7pz7pn2O1/n3pne3gIeJxvarzM0nvM1LPl7GegGcB3gVgCN7kizzSpACwA+E3NqrbmUyt0NlfZK3tOAyKv8bRANA7jghEoXmSPw43Ss/cNunRUG3Bnnmu+/C0NMeOS8Nvdg8IvsYnAQz0hX41p54nEsHgAINBA5N/e8Mq6wfdm/K8spElNC1/S3G/XrM18eXFt1VGmVXH0z3Vi3Xn+ZGH0ARQH41X4m6s32B1LGsWlAaDznq1/yfYMy5hn4UQO961Ps4rQb4g+azmS+Q9dpkoDzZpBQWD9bChkTozkEGpb8vbBOeMWjXDwApKPtU5rGNwEUzSAjcOqPr9s41Hbi6FZPJqbEUS7eIB1tnwLhtSXIqDQA4LA1Z3PMYW2uoW/CUguBIkZbvQu0qEnr+r+vDutyjSKXZqwRNucE1YAmNSX3MLTiqCoX2aUWs9aK54CTRq3UG4cT+S7SKQnCJjTqz0QDHyV0iF0BxBQHoQVAG3ROSOmQHAKtSrtNSsSJnwM8A6QFSOMZIC1AGs8AaQHSeAZIC5DGM0BagDSeAdICpLG9HhBO5LvAlLAsOVdBJD7LNk9dgEZRu+sJtq8AYoofVPFV0lrNesKJHwL2DdAoCmDh4KTYZp62fgKzhe05YHvM2V7JKR/zmVhw370KTuENAWkB0ngGSAuQxjNAWoA0ngHSAqTxDJAWII1ngLQAaTwDBN9b/So9LyVCzoCd9YSqvs9Xi9geoWrXEw4Kbw5Q2pa9dKHRXBOOCTdezp4uC/01GqoBP9WMeq32kpOi3GSjFmW10C+jpRhAWWsO3XdUlYtoNehTjxmcMfuMBjGnYIGincl8h9PinKYzme8Aw3KXIcCs1TRgrbmUAjCn5Pl1nSaPsgnGHyYA+MwgocC0PLFzqJ4Qz99i0Puy1ymBkNQ3MVbk0sxh30QdGs01Ndb4ruiEe9ufvK8spScTC+5uAACE4/kRAg04LVQCAobSseATNVbxHJBdDA4CNOKeLJcgGk4vBp5WhPfKDycKPQQeASPgrDKHIRTAGFAve2v3PoQTmTrgTA8Y3QSEsbXB+bA/IK0AWGAgS0CKaXki2x/ZkBblcVj5D1vBAfS1aXiGAAAAAElFTkSuQmCC";
|
|
14
14
|
|
|
15
15
|
var TraceType;
|
|
16
16
|
(function (TraceType) {
|
|
@@ -34,91 +34,71 @@ var TraceStyle;
|
|
|
34
34
|
var AxisType;
|
|
35
35
|
(function (AxisType) {
|
|
36
36
|
AxisType["VALUE"] = "value";
|
|
37
|
-
AxisType["CATEGORY"] = "category";
|
|
38
|
-
AxisType["TIME"] = "time";
|
|
39
|
-
AxisType["LOG"] = "log";
|
|
40
37
|
})(AxisType || (AxisType = {}));
|
|
41
38
|
var ShapeVariant;
|
|
42
39
|
(function (ShapeVariant) {
|
|
43
40
|
ShapeVariant[ShapeVariant["TRACE"] = 0] = "TRACE";
|
|
44
|
-
ShapeVariant[ShapeVariant["POLYGON"] = 1] = "POLYGON";
|
|
45
|
-
ShapeVariant[ShapeVariant["CIRCLE"] = 2] = "CIRCLE";
|
|
46
41
|
})(ShapeVariant || (ShapeVariant = {}));
|
|
47
42
|
|
|
48
43
|
class KiwiChartComponent {
|
|
49
44
|
constructor() {
|
|
45
|
+
/**
|
|
46
|
+
* The Chart Object rendered by the canvas. For all the available options refer
|
|
47
|
+
* to Chart interface in the models folder.
|
|
48
|
+
*
|
|
49
|
+
* @type {(Chart | null)}
|
|
50
|
+
* @memberof KiwiChartComponent
|
|
51
|
+
*/
|
|
50
52
|
this.chart = null;
|
|
53
|
+
/**
|
|
54
|
+
* Width and Height of the chart area. The dimensions refer to the father component
|
|
55
|
+
* into which the kiwi-chart is inserted. For example in an empty page the width/height
|
|
56
|
+
* of the chart can take the whole available space in the page.
|
|
57
|
+
*
|
|
58
|
+
* @type {string}
|
|
59
|
+
* @memberof KiwiChartComponent
|
|
60
|
+
*/
|
|
51
61
|
this.width = '100%';
|
|
52
62
|
this.height = '480px';
|
|
63
|
+
/**
|
|
64
|
+
* This property simply activates or not the dark theme of the chart
|
|
65
|
+
* defined by the Echarts library. In addition the background color can be custom
|
|
66
|
+
* so that the chart can match the background of the application in which it's used.
|
|
67
|
+
*
|
|
68
|
+
* @type {boolean}
|
|
69
|
+
* @memberof KiwiChartComponent
|
|
70
|
+
*/
|
|
71
|
+
this.darkTheme = false;
|
|
72
|
+
/**
|
|
73
|
+
* Output event used to emit to the father component the coordinates
|
|
74
|
+
* of the point clicked in the chart area. This functionality to be used must
|
|
75
|
+
* have the property "clickToAddPoint" in the Chart object set to true.
|
|
76
|
+
*
|
|
77
|
+
* @type {EventEmitter<BasePoint>}
|
|
78
|
+
* @memberof KiwiChartComponent
|
|
79
|
+
*/
|
|
53
80
|
this.addPoint = new EventEmitter();
|
|
54
|
-
|
|
81
|
+
/**
|
|
82
|
+
* The object used by echarts to initially create the Chart.
|
|
83
|
+
*
|
|
84
|
+
* @type {EChartsOption}
|
|
85
|
+
* @memberof KiwiChartComponent
|
|
86
|
+
*/
|
|
87
|
+
this.chartOption = {};
|
|
88
|
+
/**
|
|
89
|
+
* The instance of the Chart.
|
|
90
|
+
*
|
|
91
|
+
* @type {(ECharts | null)}
|
|
92
|
+
* @memberof KiwiChartComponent
|
|
93
|
+
*/
|
|
55
94
|
this.echartsInstance = null;
|
|
95
|
+
/**
|
|
96
|
+
* Used to perform actions (as point addition based on the cursor position) on the chart.
|
|
97
|
+
*
|
|
98
|
+
* @type {(zrender.ZRenderType | null)}
|
|
99
|
+
* @memberof KiwiChartComponent
|
|
100
|
+
*/
|
|
56
101
|
this.zr = null;
|
|
57
|
-
this.chartOption = {
|
|
58
|
-
title: {
|
|
59
|
-
text: "Chart",
|
|
60
|
-
},
|
|
61
|
-
tooltip: {
|
|
62
|
-
axisPointer: {
|
|
63
|
-
type: 'cross',
|
|
64
|
-
crossStyle: {
|
|
65
|
-
color: '#bebebe'
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
},
|
|
69
|
-
toolbox: {
|
|
70
|
-
orient: 'horizontal',
|
|
71
|
-
feature: {
|
|
72
|
-
dataZoom: {
|
|
73
|
-
brushStyle: {
|
|
74
|
-
borderColor: '#000',
|
|
75
|
-
borderWidth: 1,
|
|
76
|
-
borderType: 'dashed'
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
saveAsImage: {}
|
|
80
|
-
},
|
|
81
|
-
left: 'center'
|
|
82
|
-
},
|
|
83
|
-
dataZoom: [
|
|
84
|
-
{
|
|
85
|
-
type: 'inside',
|
|
86
|
-
xAxisIndex: [0],
|
|
87
|
-
throttle: 0,
|
|
88
|
-
filterMode: 'none'
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
type: 'inside',
|
|
92
|
-
yAxisIndex: [0],
|
|
93
|
-
throttle: 0,
|
|
94
|
-
filterMode: 'none'
|
|
95
|
-
}
|
|
96
|
-
],
|
|
97
|
-
xAxis: {
|
|
98
|
-
type: "value",
|
|
99
|
-
name: "X",
|
|
100
|
-
nameLocation: 'middle',
|
|
101
|
-
nameGap: 30,
|
|
102
|
-
splitLine: {
|
|
103
|
-
lineStyle: {
|
|
104
|
-
color: '#ccc'
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
},
|
|
108
|
-
yAxis: {
|
|
109
|
-
type: "value",
|
|
110
|
-
name: "Y",
|
|
111
|
-
nameLocation: 'middle',
|
|
112
|
-
nameGap: 50,
|
|
113
|
-
splitLine: {
|
|
114
|
-
lineStyle: {
|
|
115
|
-
color: '#ccc'
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
|
-
series: [],
|
|
120
|
-
animation: false
|
|
121
|
-
};
|
|
122
102
|
}
|
|
123
103
|
onChartInit(ec) {
|
|
124
104
|
this.echartsInstance = ec;
|
|
@@ -126,6 +106,10 @@ class KiwiChartComponent {
|
|
|
126
106
|
}
|
|
127
107
|
setupZrEventHandler(ec) {
|
|
128
108
|
this.zr = ec.getZr();
|
|
109
|
+
/**
|
|
110
|
+
* Intercepts the click event on the chart (if the clickToAddPoint property is set to true)
|
|
111
|
+
* and emits the point coordinates to the father component.
|
|
112
|
+
*/
|
|
129
113
|
this.zr.on('click', params => {
|
|
130
114
|
var _a, _b, _c, _d, _e;
|
|
131
115
|
let option = ec.getOption();
|
|
@@ -142,6 +126,10 @@ class KiwiChartComponent {
|
|
|
142
126
|
}
|
|
143
127
|
}
|
|
144
128
|
});
|
|
129
|
+
/**
|
|
130
|
+
* This is used to change the cursor's icon when the selected action is
|
|
131
|
+
* click to add point and viceversa back to default icon when it's not selected.
|
|
132
|
+
*/
|
|
145
133
|
this.zr.on('mousemove', params => {
|
|
146
134
|
var _a, _b, _c, _d, _e;
|
|
147
135
|
const pointInPixel = [params.offsetX, params.offsetY];
|
|
@@ -153,18 +141,37 @@ class KiwiChartComponent {
|
|
|
153
141
|
});
|
|
154
142
|
}
|
|
155
143
|
ngOnChanges(changes) {
|
|
156
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
144
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
157
145
|
let chart = (_a = changes['chart']) === null || _a === void 0 ? void 0 : _a.currentValue;
|
|
158
146
|
if (chart) {
|
|
159
|
-
this.
|
|
147
|
+
this.chartOption = {
|
|
160
148
|
title: {
|
|
161
149
|
text: chart.title,
|
|
162
150
|
},
|
|
151
|
+
backgroundColor: this.darkTheme ? (_b = this.darkThemeBackground) !== null && _b !== void 0 ? _b : '#303030' : 'transparent', tooltip: {
|
|
152
|
+
axisPointer: {
|
|
153
|
+
type: 'cross',
|
|
154
|
+
crossStyle: {
|
|
155
|
+
color: '#bebebe'
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
},
|
|
163
159
|
toolbox: {
|
|
160
|
+
orient: 'horizontal',
|
|
161
|
+
left: 'center',
|
|
164
162
|
feature: {
|
|
163
|
+
dataZoom: {
|
|
164
|
+
brushStyle: {
|
|
165
|
+
borderColor: '#000',
|
|
166
|
+
borderWidth: 1,
|
|
167
|
+
borderType: 'dashed'
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
saveAsImage: {},
|
|
171
|
+
restore: {},
|
|
165
172
|
myAddPoint: {
|
|
166
|
-
show: (
|
|
167
|
-
title: (
|
|
173
|
+
show: (_c = chart.clickToAddPoint) !== null && _c !== void 0 ? _c : false,
|
|
174
|
+
title: (_d = chart.addPointCustomName) !== null && _d !== void 0 ? _d : 'Add Point',
|
|
168
175
|
icon: ADD_POINT_IMG_OFF,
|
|
169
176
|
iconStatus: false,
|
|
170
177
|
onclick: () => {
|
|
@@ -186,8 +193,20 @@ class KiwiChartComponent {
|
|
|
186
193
|
},
|
|
187
194
|
},
|
|
188
195
|
dataZoom: [
|
|
189
|
-
{
|
|
190
|
-
|
|
196
|
+
{
|
|
197
|
+
type: 'inside',
|
|
198
|
+
xAxisIndex: [0],
|
|
199
|
+
throttle: 0,
|
|
200
|
+
filterMode: 'none',
|
|
201
|
+
disabled: (_e = !chart.scrollToZoom) !== null && _e !== void 0 ? _e : true
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
type: 'inside',
|
|
205
|
+
yAxisIndex: [0],
|
|
206
|
+
throttle: 0,
|
|
207
|
+
filterMode: 'none',
|
|
208
|
+
disabled: (_f = !chart.scrollToZoom) !== null && _f !== void 0 ? _f : true
|
|
209
|
+
},
|
|
191
210
|
],
|
|
192
211
|
legend: {
|
|
193
212
|
data: chart.shapes.map((shape) => ({
|
|
@@ -195,7 +214,7 @@ class KiwiChartComponent {
|
|
|
195
214
|
icon: 'circle'
|
|
196
215
|
})),
|
|
197
216
|
selected: chart.shapes.reduce((accumulator, shape) => { var _a; return (Object.assign(Object.assign({}, accumulator), { [shape.name]: (_a = shape.selectedByDefault) !== null && _a !== void 0 ? _a : true })); }, {}),
|
|
198
|
-
show: (
|
|
217
|
+
show: (_g = chart.showLegend) !== null && _g !== void 0 ? _g : false,
|
|
199
218
|
orient: 'vertical',
|
|
200
219
|
left: 'right',
|
|
201
220
|
padding: [60, 20],
|
|
@@ -209,16 +228,26 @@ class KiwiChartComponent {
|
|
|
209
228
|
xAxis: {
|
|
210
229
|
type: chart.xAxisType,
|
|
211
230
|
name: chart.xAxisUom ? `${chart.xAxisName} [ ${chart.xAxisUom} ]` : chart.xAxisName,
|
|
231
|
+
nameLocation: 'middle',
|
|
232
|
+
nameGap: 30,
|
|
212
233
|
splitLine: {
|
|
213
|
-
show: (
|
|
234
|
+
show: (_h = chart.showGrid) !== null && _h !== void 0 ? _h : true,
|
|
235
|
+
lineStyle: {
|
|
236
|
+
color: this.darkTheme ? '#595959' : '#ccc'
|
|
237
|
+
}
|
|
214
238
|
}
|
|
215
239
|
},
|
|
216
240
|
yAxis: {
|
|
217
241
|
type: chart.yAxisType,
|
|
218
242
|
name: chart.yAxisUom ? `${chart.yAxisName} [ ${chart.yAxisUom} ]` : chart.yAxisName,
|
|
243
|
+
nameLocation: 'middle',
|
|
244
|
+
nameGap: 50,
|
|
219
245
|
splitLine: {
|
|
220
|
-
show: (
|
|
221
|
-
|
|
246
|
+
show: (_j = chart.showGrid) !== null && _j !== void 0 ? _j : true,
|
|
247
|
+
lineStyle: {
|
|
248
|
+
color: this.darkTheme ? '#595959' : '#ccc'
|
|
249
|
+
}
|
|
250
|
+
},
|
|
222
251
|
},
|
|
223
252
|
series: this.createSeries(chart.shapes),
|
|
224
253
|
animation: chart.hasAnimations,
|
|
@@ -262,13 +291,13 @@ class KiwiChartComponent {
|
|
|
262
291
|
align: 'left',
|
|
263
292
|
verticalAlign: 'bottom',
|
|
264
293
|
formatter: () => { var _a; return `${(_a = point.name) !== null && _a !== void 0 ? _a : ''}`; },
|
|
265
|
-
color: '#000',
|
|
266
294
|
fontSize: 13,
|
|
267
295
|
padding: [0, 0, 0, 10],
|
|
268
296
|
width: 100,
|
|
269
297
|
overflow: 'truncate',
|
|
270
298
|
ellipsis: '...',
|
|
271
|
-
fontWeight: 'bold'
|
|
299
|
+
fontWeight: 'bold',
|
|
300
|
+
color: this.darkTheme ? '#fff' : '#000'
|
|
272
301
|
},
|
|
273
302
|
tooltip: {
|
|
274
303
|
formatter: ({ value }) => {
|
|
@@ -292,16 +321,16 @@ class KiwiChartComponent {
|
|
|
292
321
|
}
|
|
293
322
|
}
|
|
294
323
|
KiwiChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: KiwiChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
295
|
-
KiwiChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: KiwiChartComponent, selector: "kiwi-chart", inputs: { chart: "chart", width: "width", height: "height" }, outputs: { addPoint: "addPoint" }, usesOnChanges: true, ngImport: i0, template: `
|
|
324
|
+
KiwiChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: KiwiChartComponent, selector: "kiwi-chart", inputs: { chart: "chart", width: "width", height: "height", darkTheme: "darkTheme", darkThemeBackground: "darkThemeBackground" }, outputs: { addPoint: "addPoint" }, usesOnChanges: true, ngImport: i0, template: `
|
|
296
325
|
<div
|
|
297
326
|
echarts
|
|
298
327
|
[options]="chartOption"
|
|
299
|
-
[merge]="updateOption"
|
|
300
328
|
[ngStyle]="{
|
|
301
329
|
'width': width,
|
|
302
330
|
'height': height
|
|
303
331
|
}"
|
|
304
332
|
(chartInit)="onChartInit($event)"
|
|
333
|
+
[theme]="darkTheme ? 'dark' : ''"
|
|
305
334
|
></div>
|
|
306
335
|
`, isInline: true, styles: [""], directives: [{ type: i1.NgxEchartsDirective, selector: "echarts, [echarts]", inputs: ["options", "theme", "loading", "initOpts", "merge", "autoResize", "loadingType", "loadingOpts"], outputs: ["chartInit", "optionsError", "chartClick", "chartDblClick", "chartMouseDown", "chartMouseMove", "chartMouseUp", "chartMouseOver", "chartMouseOut", "chartGlobalOut", "chartContextMenu", "chartLegendSelectChanged", "chartLegendSelected", "chartLegendUnselected", "chartLegendScroll", "chartDataZoom", "chartDataRangeSelected", "chartTimelineChanged", "chartTimelinePlayChanged", "chartRestore", "chartDataViewChanged", "chartMagicTypeChanged", "chartPieSelectChanged", "chartPieSelected", "chartPieUnselected", "chartMapSelectChanged", "chartMapSelected", "chartMapUnselected", "chartAxisAreaSelected", "chartFocusNodeAdjacency", "chartUnfocusNodeAdjacency", "chartBrush", "chartBrushEnd", "chartBrushSelected", "chartRendered", "chartFinished"], exportAs: ["echarts"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
307
336
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: KiwiChartComponent, decorators: [{
|
|
@@ -312,12 +341,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
|
|
|
312
341
|
<div
|
|
313
342
|
echarts
|
|
314
343
|
[options]="chartOption"
|
|
315
|
-
[merge]="updateOption"
|
|
316
344
|
[ngStyle]="{
|
|
317
345
|
'width': width,
|
|
318
346
|
'height': height
|
|
319
347
|
}"
|
|
320
348
|
(chartInit)="onChartInit($event)"
|
|
349
|
+
[theme]="darkTheme ? 'dark' : ''"
|
|
321
350
|
></div>
|
|
322
351
|
`,
|
|
323
352
|
styles: [`
|
|
@@ -329,6 +358,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
|
|
|
329
358
|
type: Input
|
|
330
359
|
}], height: [{
|
|
331
360
|
type: Input
|
|
361
|
+
}], darkTheme: [{
|
|
362
|
+
type: Input
|
|
363
|
+
}], darkThemeBackground: [{
|
|
364
|
+
type: Input
|
|
332
365
|
}], addPoint: [{
|
|
333
366
|
type: Output
|
|
334
367
|
}] } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kiwibit-chart.mjs","sources":["../../../../projects/kiwibit/chart/src/lib/constants/chart.constants.ts","../../../../projects/kiwibit/chart/src/lib/models/chart.models.ts","../../../../projects/kiwibit/chart/src/lib/chart.component.ts","../../../../projects/kiwibit/chart/src/lib/chart.module.ts","../../../../projects/kiwibit/chart/src/public-api.ts","../../../../projects/kiwibit/chart/src/kiwibit-chart.ts"],"sourcesContent":["export const ADD_POINT_IMG_OFF = \"image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAEZklEQVRYhcWXX2xTVRzHP797t+FgSAkmpCskkGCYmcP23nZBmpiZYUKyIBIdUR80JiYmSnzQGPDBGNRoYsAXQ0wwvvgCYRqGgUj4o4txiRu9ZQUGqCNogm0lsNXVSGHt+flQumxlZR24+X1qz/n2+/2ec27v7/zgf4bMhNza2royn8+vF5HVwAPAfCAjIkljTKK+vv54b29v9j8N0NLSsriurm4r8DTwCHAd+F1ErqjqCLAUWAb4gTxwQlW/jMfj+wG96wBtbW33ZbPZrcDbgFHVfarabVnWD57njZXzW1tblxhjOlR1M7ARGDDGbDt16tSJGQcIhUKNItItIs3Ap8BHnuf9Nd1qSnBdtwl4D+gUkT0NDQ2v9fT05KsKEIlEIsaYg8AwsMnzvIvVGpcjHA4/p6pfqGpPbW3ts319faPlHGviF8dxVhljjohIoqamZt29mAPEYrG9xpjHRCQ0Nja2r7Oz0y7njA9Eo9GFhULhGHAN2HDy5Mm/78W8hHQ6nWxsbPxeRHaMjIz4UqnU0Ynz4zuQy+V2AUvy+fyTnuf9M51wJBJZ57ruhWpCeJ4XF5GXgTdDoVD7bQHC4fBq4CVVfSuRSPxRjagxJgCsroYLxeMADluWtYsJCy99+BA4G4/H91YreDcQke3Aw47jPDMeoKWlZbGqbhSRjwEzmwFisdhZ4JCIvDAeoLa2tgMwtm0fnk3zElS1G1gfjUYXQvEIOoCeqf6jswEROQTU5HK5dgBLRNYAZ+bCHMDzvKtAClgDxR1YdmtgLpEElgPUAAtU9Uo5IxQKhS3L6gXq7qTkuu6dKt7Pnuc1lQ+KyJ/GmIZSgBsicn85KZvNnvH5fFtUtVKAtcAbwJZK7saYyxWmFonItVKAqxRr+SQMDQ3dAA5WEnddFwDP87oqcSpBVf0i0gfFZ+ACsHKmIneL5ubmOorP3QUAS1WPAxva2tpq5iLAvHnzHgfq8/n8d1DcgQPAktHR0UfnIoCIbALiAwMDvwFY8Xh8CDgtIq/MtnkwGPQBW1T169KYBaCqO4DnHcdxZzOAbdvbARWR3ZMCxOPxAyLyk2VZn0x1a5kKInITuFmteTAYfBB4Hfhg4v2yVI5VRF5V1fClS5d2ViOYyWSOGGOi1XBd111k2/Y3wOlcLvfZxLnx1SaTybTf7x8CdgYCgWvJZLL/TqLDw8OFdDqdrMJ8PvAVxVdveyKRmHS7nrTdqVRqMBAIXFfVXYFAwBeNRo+fO3du2uaiEiKRyHJVPQo8BHR4nvdrOee2804mk71+v/888H4mk3nC7/efTqVSMy1WluM4LwL7gZxt2+2xWOz8VMSKnVEkEgkWCoXdIrIW2GdZ1p4VK1b82NXVVaj0m2Aw6LMsq0NEtgFNwOe5XG7b4OBgxRv2tL2h4zibReRdin3hVeAYcPFWRRsRkaUislxVm4E2iv1gt23b7/T39/8ynX7V3bHjOKtE5CkRaVfVJord8QIgA1ym+DI7pKrfzqSN+xdx6bFz0kwqIAAAAABJRU5ErkJggg==\";\r\nexport const ADD_POINT_IMG_ON = \"image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAEUUlEQVRYhcWXbWiVZRjHf9f9nJ3Nt6ZTWr4FguFgYoUT3Dnb2RkTioaZmKP6IEQvZ2sy6FX7EK2IssggdK8ig74ok9oMRSF1ZzsvOJgjp8GKJAPTJk6dibmzc56rD8eZ285xZ8ut/8fnvu7/9btvHu7ruuB/lkwk2LOnfZlEHesUVoAsQHSmwnVRLgpyOuq0j4VeKfjrgQIU1AbmiWVtNaqbFB4H/gZ+By4D14BsYAmwEIgCx0G/6fC5mxHRSQN4m9oy7MH0raDvAzYi+1VpvSXOjlO+vKHR8SW7O+cPOWKlgm5UWC8iP9rKtkC56/iEAdy7gossh7Qi5AK7nJL+2TFf3sB4p7kL3xDOsVU/BjYDjebPSKW/ujiaEkBRY2iN2hwUuGoJG0743OdSTTzGqz78oqJ7UfEPDpkXOqvW3hgdY0aQ14SXq81RRU/fjliu/5IcoL3ctc+gHsR+Mj3N3r+5udlKCuDeG5xjW9oCnL8lGZsS0U5G/vKCLhWrFNGivv7FnycFMEOyE5jvUHn2lC/v1njGnsawq6g+1JsKRMCX3y3IqwhvF9aHS8YAuGuDKwReRvXdExWuP1IxFWVx/D1ITe3lrn3AYYPupFr/PTiAZcynwNmOPve+VA0nI6NsV1jpyQ49f/dbQW1gHuh6Qb6gWuypBPBXuM8ChxDZchdAjCkF7NsRc3gqkw9LlVZgnXtvcA6AMUIp4H9Qf/14skzkEOAwUVMCYFRlFeiZ6UgO4PcVXwEuGbVXARjQJYJcmi6AO7qIylIABzDLjle2EfLWB/NsJAQ4Ezmoxgudpz6UtOIJ/Nxe7s5JsNKH0dnDAIMGHhodMiNy48xNZ2aZEUkIYKuuFXhLRMqSAaB6IclCJkr/MMAVjdfyETpS9cwgcDCZd1FDGFWl3ec6kBQguRaCdEL8IeoFlk3CZFLKbf7JCSxRpRfAqOgx4GlvdZtjOgCy+geKgRkGOQFgrKhpAebrw2n50wEAugHo9lfknwcw/krXr4j2qBHfVKf2NrXNFaFMRL8d/havSspHwEsFtYHVUwlgDzq3A5pGRs0IgA6fuwU4aYz5KlHXktBMNQJEUk3uqT/5GFAF8sm9/WX8BkTUGN4A8vquLvoyFcPZkYGjBnWnEruuoSsTYt+D9PRnZdbduzaiKfXUBcvi7bdWBSoKdqdiPp5WN3TNnKWD3wErVWJrAj7PiGd/bFdcF3pPhR2gX2dnXXznQFlZbLLJPTXtS7EcrcCjKuapgC+/e3RMwrngzk00AV0q5s1EG++rajWF2eEtIuwALmNFN3S8VvRbotDkk1Fj6Ak7Rg3CWlT3q2UaH5l7IXi/G/E2tc21b6eVIrINyAH2mFhkm7+y+GayPePOhkV14Y2IfnhnLryi8IPAOVXtE7gmItmKLgXJBbyAgrTaJvZB8PXCX8bzT3k69taEl9sWzyl2iSA5wAJgFnAduAD0qHIo3aQfmcgY9w8YoaK2AOtXYQAAAABJRU5ErkJggg==\";","export interface Chart {\n title: string;\n showLegend?: boolean;\n xAxisType: AxisType;\n xAxisName: string;\n xAxisUom?: string;\n yAxisType: AxisType;\n yAxisName: string;\n yAxisUom?: string;\n hasAnimations?: boolean;//If the chart should have rendering animations\n shapes: Shape[];\n clickToAddPoint?: boolean;//If the chart should add a point when clicking in the grid area\n addPointCustomName?: string;//We can also choose a custom name for the Add Point button\n scrollToZoom?: boolean;//Use the scroll to zoom in/out of the chart\n showGrid?: boolean;//Whether to show the chart grid lines or not\n}\n\nexport type Shape = Trace;\n\nexport interface Trace {\n name?: string;\n variant: ShapeVariant;\n color?: string;\n type: TraceType;\n width?: number;\n points: Point[];\n smooth?: boolean;\n style?: TraceStyle;\n selectedByDefault?: boolean;\n}\n\nexport interface Point extends BasePoint {\n name?: string;\n symbol?: PointSymbol;\n symbolSize?: number;\n color?: string;\n}\n\nexport interface BasePoint {\n x: number;\n y: number\n}\n\nexport enum TraceType {\n LINE = \"line\",\n SCATTER = \"scatter\"\n}\n\nexport enum PointSymbol {\n NONE = \"none\",\n CIRCLE = \"circle\",\n TRIANGLE = \"triangle\",\n PIN = \"pin\",\n DIAMOND = \"diamond\"\n}\n\nexport enum TraceStyle {\n SOLID = \"solid\",\n DASHED = \"dashed\",\n DOTTED = \"dotted\"\n}\n\nexport enum AxisType {\n VALUE = \"value\",\n CATEGORY = \"category\",\n TIME = \"time\",\n LOG = \"log\"\n}\n\nexport enum ShapeVariant {\n TRACE,\n POLYGON,\n CIRCLE\n}","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { CustomSeriesOption, ECharts, EChartsOption, LineSeriesOption, ScatterSeriesOption, zrender } from 'echarts';\nimport { ADD_POINT_IMG_OFF, ADD_POINT_IMG_ON } from './constants/chart.constants';\nimport { Chart, Shape, ShapeVariant, Trace, Point, BasePoint } from './models/chart.models';\n\n@Component({\n selector: 'kiwi-chart',\n template: `\n <div \n echarts \n [options]=\"chartOption\" \n [merge]=\"updateOption\"\n [ngStyle]=\"{\n 'width': width,\n 'height': height\n }\"\n (chartInit)=\"onChartInit($event)\"\n ></div> \n `,\n styles: [`\n `]\n})\nexport class KiwiChartComponent implements OnChanges {\n\n @Input() chart: Chart | null = null;\n\n @Input() width: string = '100%';\n\n @Input() height: string = '480px';\n\n @Output() addPoint: EventEmitter<BasePoint> = new EventEmitter<BasePoint>();\n\n chartOption: EChartsOption;\n\n updateOption: EChartsOption = {};\n\n echartsInstance: ECharts | null = null;\n\n zr: zrender.ZRenderType | null = null;\n\n constructor() {\n this.chartOption = {\n title: {\n text: \"Chart\",\n },\n tooltip: {\n axisPointer: {\n type: 'cross',\n crossStyle: {\n color: '#bebebe'\n }\n }\n },\n toolbox: {\n orient: 'horizontal',\n feature: {\n dataZoom: {\n brushStyle: {\n borderColor: '#000',\n borderWidth: 1,\n borderType: 'dashed'\n },\n },\n saveAsImage: {}\n },\n left: 'center'\n },\n dataZoom: [\n {\n type: 'inside',\n xAxisIndex: [0],\n throttle: 0,\n filterMode: 'none'\n },\n {\n type: 'inside',\n yAxisIndex: [0],\n throttle: 0,\n filterMode: 'none'\n }\n ],\n xAxis: {\n type: \"value\",\n name: \"X\",\n nameLocation: 'middle',\n nameGap: 30,\n splitLine: {\n lineStyle: {\n color: '#ccc'\n }\n }\n },\n yAxis: {\n type: \"value\",\n name: \"Y\",\n nameLocation: 'middle',\n nameGap: 50,\n splitLine: {\n lineStyle: {\n color: '#ccc'\n }\n }\n },\n series: [],\n animation: false\n };\n }\n\n onChartInit(ec: ECharts) {\n this.echartsInstance = ec;\n this.setupZrEventHandler(ec);\n }\n\n setupZrEventHandler(ec: ECharts) {\n this.zr = ec.getZr();\n this.zr.on('click', params => {\n let option: any = ec.getOption();\n let active = option?.toolbox?.[0]?.feature?.myAddPoint?.iconStatus;\n if (active && this.chart?.clickToAddPoint) {\n const pointInPixel = [params.offsetX, params.offsetY];\n const pointInGrid = ec.convertFromPixel('grid', pointInPixel);\n if (ec.containPixel('grid', pointInPixel) && pointInGrid) {\n let newPoint: { x: number, y: number } = {\n x: +pointInGrid[0].toFixed(3),\n y: +pointInGrid[1].toFixed(3)\n };\n this.addPoint.emit(newPoint);\n }\n }\n });\n this.zr.on('mousemove', params => {\n const pointInPixel = [params.offsetX, params.offsetY];\n const option: any = ec.getOption();\n const active = option?.toolbox?.[0]?.feature?.myAddPoint?.iconStatus;\n if (active) {\n this.zr?.setCursorStyle(\n ec.containPixel('grid', pointInPixel) ? 'copy' : 'default'\n );\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n let chart: Chart = changes['chart']?.currentValue;\n if (chart) {\n this.updateOption = {\n title: {\n text: chart.title,\n },\n toolbox: {\n feature: {\n myAddPoint: {\n show: chart.clickToAddPoint ?? false,\n title: chart.addPointCustomName ?? 'Add Point',\n icon: ADD_POINT_IMG_OFF,\n iconStatus: false,\n onclick: () => {\n let option: any = this.echartsInstance?.getOption();\n let status = option.toolbox[0].feature.myAddPoint.iconStatus;\n this.echartsInstance?.setOption({\n toolbox: {\n feature: {\n myAddPoint: {\n iconStatus: !status,\n icon: !status ? ADD_POINT_IMG_ON : ADD_POINT_IMG_OFF\n }\n }\n }\n })\n }\n }\n },\n },\n dataZoom: [\n { disabled: !chart.scrollToZoom ?? true },\n { disabled: !chart.scrollToZoom ?? true },\n ],\n legend: {\n data: chart.shapes.map(\n (shape: Shape) => ({\n name: shape.name,\n icon: 'circle'\n })\n ),\n selected: chart.shapes.reduce((accumulator, shape: Shape) => ({ ...accumulator, [shape.name as string]: shape.selectedByDefault ?? true }), {}),\n show: chart.showLegend ?? false,\n orient: 'vertical',\n left: 'right',\n padding: [60, 20],\n type: 'scroll',\n textStyle: {\n width: 100,\n fontWeight: 'bold',\n overflow: 'break'\n }\n },\n xAxis: {\n type: chart.xAxisType,\n name: chart.xAxisUom ? `${chart.xAxisName} [ ${chart.xAxisUom} ]` : chart.xAxisName,\n splitLine: {\n show: chart.showGrid ?? true\n }\n },\n yAxis: {\n type: chart.yAxisType,\n name: chart.yAxisUom ? `${chart.yAxisName} [ ${chart.yAxisUom} ]` : chart.yAxisName,\n splitLine: {\n show: chart.showGrid ?? true\n }\n },\n series: this.createSeries(chart.shapes),\n animation: chart.hasAnimations,\n };\n }\n }\n\n createSeries(shapes: Shape[]): Array<LineSeriesOption | CustomSeriesOption | ScatterSeriesOption> {\n let series: Array<LineSeriesOption | CustomSeriesOption | ScatterSeriesOption> = [];\n shapes.forEach(\n (shape: Shape) => {\n switch (shape.variant) {\n case ShapeVariant.TRACE:\n series.push(this.createTrace(shape as Trace))\n break;\n default:\n break;\n }\n }\n );\n return series;\n }\n\n createTrace(trace: Trace): LineSeriesOption | ScatterSeriesOption {\n return {\n type: trace.type,\n name: trace.name,\n data: trace.points.map(\n (point: Point) => ({\n value: [point.x, point.y],\n symbol: point.symbol ?? 'circle',\n name: point.name,\n symbolSize: point.symbolSize ?? 2,\n itemStyle: {\n color: point.color\n },\n emphasis: {\n disabled: true\n },\n label: {\n show: true,\n position: 'bottom',\n align: 'left',\n verticalAlign: 'bottom',\n formatter: () => `${point.name ?? ''}`,\n color: '#000',\n fontSize: 13,\n padding: [0, 0, 0, 10],\n width: 100,\n overflow: 'truncate',\n ellipsis: '...',\n fontWeight: 'bold'\n },\n tooltip: {\n formatter: ({ value }: { value: number[] }) => `\n <strong>${this.chart?.xAxisName}:</strong> ${value[0].toFixed(3).replace(/[.,]000$/, \"\")}\n <br>\n <strong>${this.chart?.yAxisName}:</strong> ${value[1].toFixed(3).replace(/[.,]000$/, \"\")}\n `\n }\n })\n ),\n color: trace.color,\n lineStyle: {\n width: trace.width,\n type: trace.style\n },\n smooth: trace.smooth ?? false\n };\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KiwiChartComponent } from './chart.component';\nimport { NgxEchartsModule } from 'ngx-echarts';\nimport * as echarts from 'echarts/core';\nimport { TitleComponent, TooltipComponent, GridComponent, LegendComponent, DataZoomComponent, ToolboxComponent } from 'echarts/components';\nimport { LineChart, ScatterChart } from 'echarts/charts';\nimport { CanvasRenderer } from 'echarts/renderers';\necharts.use([\n TitleComponent,\n TooltipComponent,\n GridComponent,\n LineChart,\n CanvasRenderer,\n LegendComponent,\n DataZoomComponent,\n ToolboxComponent,\n ScatterChart\n]);\n\n\n@NgModule({\n declarations: [\n KiwiChartComponent\n ],\n imports: [\n CommonModule,\n NgxEchartsModule.forRoot({ echarts })\n ],\n exports: [\n KiwiChartComponent\n ]\n})\nexport class KiwiChartModule { }\n","/*\n * Public API Surface of chart\n */\n\nexport * from './lib/chart.component';\nexport * from './lib/chart.module';\nexport * from './lib/models/chart.models';\nexport * from './lib/constants/chart.constants';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kiwibit-chart.mjs","sources":["../../../../projects/kiwibit/chart/src/lib/constants/chart.constants.ts","../../../../projects/kiwibit/chart/src/lib/models/chart.models.ts","../../../../projects/kiwibit/chart/src/lib/chart.component.ts","../../../../projects/kiwibit/chart/src/lib/chart.module.ts","../../../../projects/kiwibit/chart/src/public-api.ts","../../../../projects/kiwibit/chart/src/kiwibit-chart.ts"],"sourcesContent":["export const ADD_POINT_IMG_OFF = \"image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABmJLR0QA/wD/AP+gvaeTAAADgElEQVR4nO2bTUsbURSG3zMmkWLoThetboq46AdI7b+woLYQrGNdRjDSTW0tXbkralctEWN34kQY2hJB6J+oxYK0lOhK2y7iSpSiyeR0ESe5M34sJs4cP+ZZ3TlzhrznZe5J5uYOEHK1odNOmqYZKxxYfQD3gHAfQCuApmCkeWYPwBYY31hDriUSySUSiYOTkk804H02+1hjTAG45YfKoCBgg8EvU7r++YTzTkzTbCiUSpNgPPdfXpDw20I+Pz4xMVFWo5o77XIWDwA01tzR8eZIVD04vO0/unL2Ac6wpmX/FYtrL4aG9nzVWSfT8/NN16LRu7BYJ0ISQKN6ngh9IwMDueqxPTBNM1Yoln5CnfOE35aldT972v89AO1nTtowOkG0DMbNWpTWm6MNd+zGWJ0ClW7vaHj7F7l4AEjp+iqYHwLYr0W5fbtY7LGPlB7APXDAmYtcvE1K11cB+qDGGHSMAYQuNUkDDN/VBQSx5a7lgT1QvwVuqBnlaPSHn6KChGOxNVeo2hNUA+JqRiqR2PVTVJAcU0u11iO/A64aEakPnllc7OYyzwGwiLXhkcH+LxI6xO4ALvMsKn2njamckdIhOQValXGblIgr3wNCA6QFSBMaIC1AmtAAaQHShAZIC5AmNEBagDShAdICpPG8HjCzuNjNzBnnkrN30kaWPV66Rawlva4neL4DuMyzZ1V8nbTWs55w5aeAZwOItSSArTPU4pVNVP4C84TnHnA45zyv5LjnfEofOHWvgl+EU0BagDShAdICpAkNkBYgTWiAtABpQgOkBUgTGiAtQJrQAMHPVh+lN6VEiBmgrCfU9TxfL2J7hOpdTzgrwh6gjB176dKmGccl4d3CwnVXaMceqAb8UTO0YvG2n6KCJAK4a/lrD2oGMFbUDItp0F9ZwcHUoLtCX+1B1QDWkFMziJBMG0anz9p8J20YnQx2fsswVWutGtASieQI2FDSGkG0fJFNsF+YICBWi9J6ZG9nqXrkuuARQJ/UGAMHBJojtgyOxdbO+ybqtGnGuVS6R0wDDE46iwcY3Duq68cbAABpw5gGaCwIsUHDoMlR/ckrNXb0rbF8fpwY08HJCgjC1Hb+1+uj4ROYyWZ7mWka4HZ/lfkNrTPKY+pt7zh72qWZTCZqxeO9h+/YdKGywfm8/0DaReUZYwVMucjeztLw8HBRWlTIeeU/aykWi4H+qgIAAAAASUVORK5CYII=\";\r\nexport const ADD_POINT_IMG_ON = \"image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABmJLR0QA/wD/AP+gvaeTAAADjUlEQVR4nO2by08TURTGvzNAK49oDCsRNqbFxPogtsQ/AhNAowsxLksTlxIxrtwZwJUJsa07E1wQNSUh8X+wrQFDNSklMQGVjRgMj7TIHBcww50WWEyZOTzmt7pz7pn2O1/n3pne3gIeJxvarzM0nvM1LPl7GegGcB3gVgCN7kizzSpACwA+E3NqrbmUyt0NlfZK3tOAyKv8bRANA7jghEoXmSPw43Ss/cNunRUG3Bnnmu+/C0NMeOS8Nvdg8IvsYnAQz0hX41p54nEsHgAINBA5N/e8Mq6wfdm/K8spElNC1/S3G/XrM18eXFt1VGmVXH0z3Vi3Xn+ZGH0ARQH41X4m6s32B1LGsWlAaDznq1/yfYMy5hn4UQO961Ps4rQb4g+azmS+Q9dpkoDzZpBQWD9bChkTozkEGpb8vbBOeMWjXDwApKPtU5rGNwEUzSAjcOqPr9s41Hbi6FZPJqbEUS7eIB1tnwLhtSXIqDQA4LA1Z3PMYW2uoW/CUguBIkZbvQu0qEnr+r+vDutyjSKXZqwRNucE1YAmNSX3MLTiqCoX2aUWs9aK54CTRq3UG4cT+S7SKQnCJjTqz0QDHyV0iF0BxBQHoQVAG3ROSOmQHAKtSrtNSsSJnwM8A6QFSOMZIC1AGs8AaQHSeAZIC5DGM0BagDSeAdICpLG9HhBO5LvAlLAsOVdBJD7LNk9dgEZRu+sJtq8AYoofVPFV0lrNesKJHwL2DdAoCmDh4KTYZp62fgKzhe05YHvM2V7JKR/zmVhw370KTuENAWkB0ngGSAuQxjNAWoA0ngHSAqTxDJAWII1ngLQAaTwDBN9b/So9LyVCzoCd9YSqvs9Xi9geoWrXEw4Kbw5Q2pa9dKHRXBOOCTdezp4uC/01GqoBP9WMeq32kpOi3GSjFmW10C+jpRhAWWsO3XdUlYtoNehTjxmcMfuMBjGnYIGincl8h9PinKYzme8Aw3KXIcCs1TRgrbmUAjCn5Pl1nSaPsgnGHyYA+MwgocC0PLFzqJ4Qz99i0Puy1ymBkNQ3MVbk0sxh30QdGs01Ndb4ruiEe9ufvK8spScTC+5uAACE4/kRAg04LVQCAobSseATNVbxHJBdDA4CNOKeLJcgGk4vBp5WhPfKDycKPQQeASPgrDKHIRTAGFAve2v3PoQTmTrgTA8Y3QSEsbXB+bA/IK0AWGAgS0CKaXki2x/ZkBblcVj5D1vBAfS1aXiGAAAAAElFTkSuQmCC\";","/**\n * Interface to define the Chart model.\n *\n * @export\n * @interface Chart\n */\nexport interface Chart {\n title: string;\n showLegend?: boolean;\n xAxisType: AxisType;\n xAxisName: string;\n xAxisUom?: string;\n yAxisType: AxisType;\n yAxisName: string;\n yAxisUom?: string;\n /**\n * If the chart should have rendering animations.\n *\n * @type {boolean}\n * @memberof Chart\n */\n hasAnimations?: boolean;\n /**\n * The list of Shapes that the chart must render.\n * Each Shape corrisponds to a single chart component.\n *\n * @type {Shape[]}\n * @memberof Chart\n */\n shapes: Shape[];\n /**\n * Adds interaction with the chart, so that when clicking\n * everywhere in the chart area a point gets added and it's coordinate are \n * emitted with an event to the parent component.\n *\n * @type {boolean}\n * @memberof Chart\n */\n clickToAddPoint?: boolean;\n /**\n * Custom name for the \"clickToAddPoint\" event related button. \n *\n * @type {string}\n * @memberof Chart\n */\n addPointCustomName?: string;\n /**\n * Adds the possibility to use the scroll \n * to zoom in/out the chart area.\n *\n * @type {boolean}\n * @memberof Chart\n */\n scrollToZoom?: boolean;\n /**\n * Tells the chart to render or not the grid lines.\n *\n * @type {boolean}\n * @memberof Chart\n */\n showGrid?: boolean;\n}\n\nexport type Shape = Trace;\n\nexport interface Trace {\n name?: string;\n /**\n * The variant of the Shape, must be of type Trace.\n *\n * @type {ShapeVariant}\n * @memberof Trace\n */\n variant: ShapeVariant;\n color?: string;\n /**\n * The type of the Trace drawn by the chart.\n * Can be a line or a scatter. \n *\n * @type {TraceType}\n * @memberof Trace\n */\n type: TraceType;\n width?: number;\n /**\n * The list of points that define the Trace.\n *\n * @type {Point[]}\n * @memberof Trace\n */\n points: Point[];\n /**\n * Whether to show a smooth curve or a segmented curve.\n *\n * @type {boolean}\n * @memberof Trace\n */\n smooth?: boolean;\n /**\n * The style of the Trace.\n * Can be solid, dashed or dotted.\n *\n * @type {TraceStyle}\n * @memberof Trace\n */\n style?: TraceStyle;\n /**\n * Option to make the Trace selected/deselected by default.\n * A deselected Trace is obscured from the chart and can be toggled from the legend. \n *\n * @type {boolean}\n * @memberof Trace\n */\n selectedByDefault?: boolean;\n}\n\nexport interface Point extends BasePoint {\n name?: string;\n /**\n * Symbol used to represent the point in the chart.\n *\n * @type {PointSymbol}\n * @memberof Point\n */\n symbol?: PointSymbol;\n symbolSize?: number;\n color?: string;\n}\n\nexport interface BasePoint {\n x: number;\n y: number\n}\n\nexport enum TraceType {\n LINE = \"line\",\n SCATTER = \"scatter\"\n}\n\nexport enum PointSymbol {\n NONE = \"none\",\n CIRCLE = \"circle\",\n TRIANGLE = \"triangle\",\n PIN = \"pin\",\n DIAMOND = \"diamond\"\n}\n\nexport enum TraceStyle {\n SOLID = \"solid\",\n DASHED = \"dashed\",\n DOTTED = \"dotted\"\n}\n\nexport enum AxisType {\n VALUE = \"value\"\n}\n\nexport enum ShapeVariant {\n TRACE\n}","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { CustomSeriesOption, ECharts, EChartsOption, LineSeriesOption, ScatterSeriesOption, zrender } from 'echarts';\nimport { ADD_POINT_IMG_OFF, ADD_POINT_IMG_ON } from './constants/chart.constants';\nimport { Chart, Shape, ShapeVariant, Trace, Point, BasePoint } from './models/chart.models';\n@Component({\n selector: 'kiwi-chart',\n template: `\n <div \n echarts \n [options]=\"chartOption\" \n [ngStyle]=\"{\n 'width': width,\n 'height': height\n }\"\n (chartInit)=\"onChartInit($event)\"\n [theme]=\"darkTheme ? 'dark' : ''\"\n ></div> \n `,\n styles: [`\n `]\n})\nexport class KiwiChartComponent implements OnChanges {\n\n /**\n * The Chart Object rendered by the canvas. For all the available options refer \n * to Chart interface in the models folder.\n *\n * @type {(Chart | null)}\n * @memberof KiwiChartComponent\n */\n @Input() chart: Chart | null = null;\n\n /**\n * Width and Height of the chart area. The dimensions refer to the father component \n * into which the kiwi-chart is inserted. For example in an empty page the width/height \n * of the chart can take the whole available space in the page.\n *\n * @type {string}\n * @memberof KiwiChartComponent\n */\n @Input() width: string = '100%';\n @Input() height: string = '480px';\n\n /**\n * This property simply activates or not the dark theme of the chart\n * defined by the Echarts library. In addition the background color can be custom\n * so that the chart can match the background of the application in which it's used.\n *\n * @type {boolean}\n * @memberof KiwiChartComponent\n */\n @Input() darkTheme: boolean = false;\n @Input() darkThemeBackground?: string;\n\n /**\n * Output event used to emit to the father component the coordinates\n * of the point clicked in the chart area. This functionality to be used must\n * have the property \"clickToAddPoint\" in the Chart object set to true.\n *\n * @type {EventEmitter<BasePoint>}\n * @memberof KiwiChartComponent\n */\n @Output() addPoint: EventEmitter<BasePoint> = new EventEmitter<BasePoint>();\n\n /**\n * The object used by echarts to initially create the Chart.\n *\n * @type {EChartsOption}\n * @memberof KiwiChartComponent\n */\n chartOption: EChartsOption = {};\n\n /**\n * The instance of the Chart.\n *\n * @type {(ECharts | null)}\n * @memberof KiwiChartComponent\n */\n echartsInstance: ECharts | null = null;\n\n /**\n * Used to perform actions (as point addition based on the cursor position) on the chart.\n *\n * @type {(zrender.ZRenderType | null)}\n * @memberof KiwiChartComponent\n */\n zr: zrender.ZRenderType | null = null;\n\n constructor() { }\n\n onChartInit(ec: ECharts) {\n this.echartsInstance = ec;\n this.setupZrEventHandler(ec);\n }\n\n setupZrEventHandler(ec: ECharts) {\n this.zr = ec.getZr();\n\n /** \n * Intercepts the click event on the chart (if the clickToAddPoint property is set to true)\n * and emits the point coordinates to the father component.\n */\n this.zr.on('click', params => {\n let option: any = ec.getOption();\n let active = option?.toolbox?.[0]?.feature?.myAddPoint?.iconStatus;\n if (active && this.chart?.clickToAddPoint) {\n const pointInPixel = [params.offsetX, params.offsetY];\n const pointInGrid = ec.convertFromPixel('grid', pointInPixel);\n if (ec.containPixel('grid', pointInPixel) && pointInGrid) {\n let newPoint: { x: number, y: number } = {\n x: +pointInGrid[0].toFixed(3),\n y: +pointInGrid[1].toFixed(3)\n };\n this.addPoint.emit(newPoint);\n }\n }\n });\n\n /** \n * This is used to change the cursor's icon when the selected action is\n * click to add point and viceversa back to default icon when it's not selected.\n */\n this.zr.on('mousemove', params => {\n const pointInPixel = [params.offsetX, params.offsetY];\n const option: any = ec.getOption();\n const active = option?.toolbox?.[0]?.feature?.myAddPoint?.iconStatus;\n if (active) {\n this.zr?.setCursorStyle(\n ec.containPixel('grid', pointInPixel) ? 'copy' : 'default'\n );\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n let chart: Chart = changes['chart']?.currentValue;\n if (chart) {\n this.chartOption = {\n title: {\n text: chart.title,\n },\n backgroundColor: this.darkTheme ? this.darkThemeBackground ?? '#303030' : 'transparent', tooltip: {\n axisPointer: {\n type: 'cross',\n crossStyle: {\n color: '#bebebe'\n }\n }\n },\n toolbox: {\n orient: 'horizontal',\n left: 'center',\n feature: {\n dataZoom: {\n brushStyle: {\n borderColor: '#000',\n borderWidth: 1,\n borderType: 'dashed'\n },\n },\n saveAsImage: {},\n restore: {},\n myAddPoint: {\n show: chart.clickToAddPoint ?? false,\n title: chart.addPointCustomName ?? 'Add Point',\n icon: ADD_POINT_IMG_OFF,\n iconStatus: false,\n onclick: () => {\n let option: any = this.echartsInstance?.getOption();\n let status = option.toolbox[0].feature.myAddPoint.iconStatus;\n this.echartsInstance?.setOption({\n toolbox: {\n feature: {\n myAddPoint: {\n iconStatus: !status,\n icon: !status ? ADD_POINT_IMG_ON : ADD_POINT_IMG_OFF\n }\n }\n }\n });\n }\n }\n },\n },\n dataZoom: [\n {\n type: 'inside',\n xAxisIndex: [0],\n throttle: 0,\n filterMode: 'none',\n disabled: !chart.scrollToZoom ?? true\n },\n {\n type: 'inside',\n yAxisIndex: [0],\n throttle: 0,\n filterMode: 'none',\n disabled: !chart.scrollToZoom ?? true\n },\n ],\n legend: {\n data: chart.shapes.map(\n (shape: Shape) => ({\n name: shape.name,\n icon: 'circle'\n })\n ),\n selected: chart.shapes.reduce((accumulator, shape: Shape) => ({ ...accumulator, [shape.name as string]: shape.selectedByDefault ?? true }), {}),\n show: chart.showLegend ?? false,\n orient: 'vertical',\n left: 'right',\n padding: [60, 20],\n type: 'scroll',\n textStyle: {\n width: 100,\n fontWeight: 'bold',\n overflow: 'break'\n }\n },\n xAxis: {\n type: chart.xAxisType,\n name: chart.xAxisUom ? `${chart.xAxisName} [ ${chart.xAxisUom} ]` : chart.xAxisName,\n nameLocation: 'middle',\n nameGap: 30,\n splitLine: {\n show: chart.showGrid ?? true,\n lineStyle: {\n color: this.darkTheme ? '#595959' : '#ccc'\n }\n }\n },\n yAxis: {\n type: chart.yAxisType,\n name: chart.yAxisUom ? `${chart.yAxisName} [ ${chart.yAxisUom} ]` : chart.yAxisName,\n nameLocation: 'middle',\n nameGap: 50,\n splitLine: {\n show: chart.showGrid ?? true,\n lineStyle: {\n color: this.darkTheme ? '#595959' : '#ccc'\n }\n },\n },\n series: this.createSeries(chart.shapes),\n animation: chart.hasAnimations,\n };\n }\n }\n\n createSeries(shapes: Shape[]): Array<LineSeriesOption | CustomSeriesOption | ScatterSeriesOption> {\n let series: Array<LineSeriesOption | CustomSeriesOption | ScatterSeriesOption> = [];\n shapes.forEach(\n (shape: Shape) => {\n switch (shape.variant) {\n case ShapeVariant.TRACE:\n series.push(this.createTrace(shape as Trace))\n break;\n default:\n break;\n }\n }\n );\n return series;\n }\n\n createTrace(trace: Trace): LineSeriesOption | ScatterSeriesOption {\n return {\n type: trace.type,\n name: trace.name,\n data: trace.points.map(\n (point: Point) => ({\n value: [point.x, point.y],\n symbol: point.symbol ?? 'circle',\n name: point.name,\n symbolSize: point.symbolSize ?? 2,\n itemStyle: {\n color: point.color\n },\n emphasis: {\n disabled: true\n },\n label: {\n show: true,\n position: 'bottom',\n align: 'left',\n verticalAlign: 'bottom',\n formatter: () => `${point.name ?? ''}`,\n fontSize: 13,\n padding: [0, 0, 0, 10],\n width: 100,\n overflow: 'truncate',\n ellipsis: '...',\n fontWeight: 'bold',\n color: this.darkTheme ? '#fff' : '#000'\n },\n tooltip: {\n formatter: ({ value }: { value: number[] }) => `\n <strong>${this.chart?.xAxisName}:</strong> ${value[0].toFixed(3).replace(/[.,]000$/, \"\")}\n <br>\n <strong>${this.chart?.yAxisName}:</strong> ${value[1].toFixed(3).replace(/[.,]000$/, \"\")}\n `\n }\n })\n ),\n color: trace.color,\n lineStyle: {\n width: trace.width,\n type: trace.style\n },\n smooth: trace.smooth ?? false\n };\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KiwiChartComponent } from './chart.component';\nimport { NgxEchartsModule } from 'ngx-echarts';\nimport * as echarts from 'echarts/core';\nimport { TitleComponent, TooltipComponent, GridComponent, LegendComponent, DataZoomComponent, ToolboxComponent } from 'echarts/components';\nimport { LineChart, ScatterChart } from 'echarts/charts';\nimport { CanvasRenderer } from 'echarts/renderers';\necharts.use([\n TitleComponent,\n TooltipComponent,\n GridComponent,\n LineChart,\n CanvasRenderer,\n LegendComponent,\n DataZoomComponent,\n ToolboxComponent,\n ScatterChart\n]);\n\n\n@NgModule({\n declarations: [\n KiwiChartComponent\n ],\n imports: [\n CommonModule,\n NgxEchartsModule.forRoot({ echarts })\n ],\n exports: [\n KiwiChartComponent\n ]\n})\nexport class KiwiChartModule { }\n","/*\n * Public API Surface of chart\n */\n\nexport * from './lib/chart.component';\nexport * from './lib/chart.module';\nexport * from './lib/models/chart.models';\nexport * from './lib/constants/chart.constants';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|