@kiwibit/chart 1.0.3 → 1.0.8

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.
@@ -1,5 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Component, Input, Output, NgModule } from '@angular/core';
3
+ import { interval } from 'rxjs';
3
4
  import * as i1 from 'ngx-echarts';
4
5
  import { NgxEchartsModule } from 'ngx-echarts';
5
6
  import * as i2 from '@angular/common';
@@ -9,8 +10,8 @@ import { TitleComponent, TooltipComponent, GridComponent, LegendComponent, DataZ
9
10
  import { LineChart, ScatterChart } from 'echarts/charts';
10
11
  import { CanvasRenderer } from 'echarts/renderers';
11
12
 
12
- 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==";
13
- 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==";
13
+ 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=";
14
+ 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
15
 
15
16
  var TraceType;
16
17
  (function (TraceType) {
@@ -34,91 +35,84 @@ var TraceStyle;
34
35
  var AxisType;
35
36
  (function (AxisType) {
36
37
  AxisType["VALUE"] = "value";
37
- AxisType["CATEGORY"] = "category";
38
- AxisType["TIME"] = "time";
39
- AxisType["LOG"] = "log";
40
38
  })(AxisType || (AxisType = {}));
41
39
  var ShapeVariant;
42
40
  (function (ShapeVariant) {
43
41
  ShapeVariant[ShapeVariant["TRACE"] = 0] = "TRACE";
44
- ShapeVariant[ShapeVariant["POLYGON"] = 1] = "POLYGON";
45
- ShapeVariant[ShapeVariant["CIRCLE"] = 2] = "CIRCLE";
46
42
  })(ShapeVariant || (ShapeVariant = {}));
47
43
 
48
44
  class KiwiChartComponent {
49
- constructor() {
45
+ constructor(cd) {
46
+ this.cd = cd;
47
+ /**
48
+ * The Chart Object rendered by the canvas. For all the available options refer
49
+ * to Chart interface in the models folder.
50
+ *
51
+ * @type {(Chart | null)}
52
+ * @memberof KiwiChartComponent
53
+ */
50
54
  this.chart = null;
55
+ /**
56
+ * Width and Height of the chart area. The dimensions refer to the father component
57
+ * into which the kiwi-chart is inserted. For example in an empty page the width/height
58
+ * of the chart can take the whole available space in the page.
59
+ *
60
+ * @type {string}
61
+ * @memberof KiwiChartComponent
62
+ */
51
63
  this.width = '100%';
52
64
  this.height = '480px';
65
+ /**
66
+ * This property simply activates or not the dark theme of the chart
67
+ * defined by the Echarts library. In addition the background color can be custom
68
+ * so that the chart can match the background of the application in which it's used.
69
+ *
70
+ * @type {boolean}
71
+ * @memberof KiwiChartComponent
72
+ */
73
+ this.darkTheme = false;
74
+ /**
75
+ * Output event used to emit to the father component the coordinates
76
+ * of the point clicked in the chart area. This functionality to be used must
77
+ * have the property "clickToAddPoint" in the Chart object set to true.
78
+ *
79
+ * @type {EventEmitter<BasePoint>}
80
+ * @memberof KiwiChartComponent
81
+ */
53
82
  this.addPoint = new EventEmitter();
54
- this.updateOption = {};
83
+ /**
84
+ * The object used by echarts to initially create the Chart.
85
+ *
86
+ * @type {EChartsOption}
87
+ * @memberof KiwiChartComponent
88
+ */
89
+ this.chartOption = {};
90
+ /**
91
+ * The instance of the Chart.
92
+ *
93
+ * @type {(ECharts | null)}
94
+ * @memberof KiwiChartComponent
95
+ */
55
96
  this.echartsInstance = null;
97
+ /**
98
+ * Used to perform actions (as point addition based on the cursor position) on the chart.
99
+ *
100
+ * @type {(zrender.ZRenderType | null)}
101
+ * @memberof KiwiChartComponent
102
+ */
56
103
  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
- };
104
+ this.subscriptions = [];
105
+ }
106
+ ngAfterViewInit() {
107
+ /**
108
+ * This is a manual change detection running every 200ms, the memory should not be much afflicted.
109
+ * It's necessary because when interacting with the chart (for example addPoint),
110
+ * Angular loses the change detection and the point is not added in the chart canvas.
111
+ */
112
+ this.subscriptions.push(interval(200)
113
+ .subscribe(() => {
114
+ this.cd.detectChanges();
115
+ }));
122
116
  }
123
117
  onChartInit(ec) {
124
118
  this.echartsInstance = ec;
@@ -126,6 +120,10 @@ class KiwiChartComponent {
126
120
  }
127
121
  setupZrEventHandler(ec) {
128
122
  this.zr = ec.getZr();
123
+ /**
124
+ * Intercepts the click event on the chart (if the clickToAddPoint property is set to true)
125
+ * and emits the point coordinates to the father component.
126
+ */
129
127
  this.zr.on('click', params => {
130
128
  let option = ec.getOption();
131
129
  let active = option?.toolbox?.[0]?.feature?.myAddPoint?.iconStatus;
@@ -141,6 +139,10 @@ class KiwiChartComponent {
141
139
  }
142
140
  }
143
141
  });
142
+ /**
143
+ * This is used to change the cursor's icon when the selected action is
144
+ * click to add point and viceversa back to default icon when it's not selected.
145
+ */
144
146
  this.zr.on('mousemove', params => {
145
147
  const pointInPixel = [params.offsetX, params.offsetY];
146
148
  const option = ec.getOption();
@@ -153,12 +155,31 @@ class KiwiChartComponent {
153
155
  ngOnChanges(changes) {
154
156
  let chart = changes['chart']?.currentValue;
155
157
  if (chart) {
156
- this.updateOption = {
158
+ this.chartOption = {
157
159
  title: {
158
160
  text: chart.title,
159
161
  },
162
+ backgroundColor: this.darkTheme ? this.darkThemeBackground ?? '#303030' : 'transparent', tooltip: {
163
+ axisPointer: {
164
+ type: 'cross',
165
+ crossStyle: {
166
+ color: '#bebebe'
167
+ }
168
+ }
169
+ },
160
170
  toolbox: {
171
+ orient: 'horizontal',
172
+ left: 'center',
161
173
  feature: {
174
+ dataZoom: {
175
+ brushStyle: {
176
+ borderColor: '#000',
177
+ borderWidth: 1,
178
+ borderType: 'dashed'
179
+ },
180
+ },
181
+ saveAsImage: {},
182
+ restore: {},
162
183
  myAddPoint: {
163
184
  show: chart.clickToAddPoint ?? false,
164
185
  title: chart.addPointCustomName ?? 'Add Point',
@@ -182,8 +203,20 @@ class KiwiChartComponent {
182
203
  },
183
204
  },
184
205
  dataZoom: [
185
- { disabled: !chart.scrollToZoom ?? true },
186
- { disabled: !chart.scrollToZoom ?? true },
206
+ {
207
+ type: 'inside',
208
+ xAxisIndex: [0],
209
+ throttle: 0,
210
+ filterMode: 'none',
211
+ disabled: !chart.scrollToZoom ?? true
212
+ },
213
+ {
214
+ type: 'inside',
215
+ yAxisIndex: [0],
216
+ throttle: 0,
217
+ filterMode: 'none',
218
+ disabled: !chart.scrollToZoom ?? true
219
+ },
187
220
  ],
188
221
  legend: {
189
222
  data: chart.shapes.map((shape) => ({
@@ -205,16 +238,26 @@ class KiwiChartComponent {
205
238
  xAxis: {
206
239
  type: chart.xAxisType,
207
240
  name: chart.xAxisUom ? `${chart.xAxisName} [ ${chart.xAxisUom} ]` : chart.xAxisName,
241
+ nameLocation: 'middle',
242
+ nameGap: 30,
208
243
  splitLine: {
209
- show: chart.showGrid ?? true
244
+ show: chart.showGrid ?? true,
245
+ lineStyle: {
246
+ color: this.darkTheme ? '#595959' : '#ccc'
247
+ }
210
248
  }
211
249
  },
212
250
  yAxis: {
213
251
  type: chart.yAxisType,
214
252
  name: chart.yAxisUom ? `${chart.yAxisName} [ ${chart.yAxisUom} ]` : chart.yAxisName,
253
+ nameLocation: 'middle',
254
+ nameGap: 50,
215
255
  splitLine: {
216
- show: chart.showGrid ?? true
217
- }
256
+ show: chart.showGrid ?? true,
257
+ lineStyle: {
258
+ color: this.darkTheme ? '#595959' : '#ccc'
259
+ }
260
+ },
218
261
  },
219
262
  series: this.createSeries(chart.shapes),
220
263
  animation: chart.hasAnimations,
@@ -243,6 +286,9 @@ class KiwiChartComponent {
243
286
  symbol: point.symbol ?? 'circle',
244
287
  name: point.name,
245
288
  symbolSize: point.symbolSize ?? 2,
289
+ itemStyle: {
290
+ color: point.color
291
+ },
246
292
  emphasis: {
247
293
  disabled: true
248
294
  },
@@ -252,13 +298,13 @@ class KiwiChartComponent {
252
298
  align: 'left',
253
299
  verticalAlign: 'bottom',
254
300
  formatter: () => `${point.name ?? ''}`,
255
- color: '#000',
256
301
  fontSize: 13,
257
302
  padding: [0, 0, 0, 10],
258
303
  width: 100,
259
304
  overflow: 'truncate',
260
305
  ellipsis: '...',
261
- fontWeight: 'bold'
306
+ fontWeight: 'bold',
307
+ color: this.darkTheme ? '#fff' : '#000'
262
308
  },
263
309
  tooltip: {
264
310
  formatter: ({ value }) => `
@@ -276,18 +322,21 @@ class KiwiChartComponent {
276
322
  smooth: trace.smooth ?? false
277
323
  };
278
324
  }
325
+ ngOnDestroy() {
326
+ this.subscriptions.forEach((subscription) => subscription.unsubscribe());
327
+ }
279
328
  }
280
- KiwiChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: KiwiChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
281
- 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: `
329
+ KiwiChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: KiwiChartComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
330
+ 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: `
282
331
  <div
283
332
  echarts
284
333
  [options]="chartOption"
285
- [merge]="updateOption"
286
334
  [ngStyle]="{
287
335
  'width': width,
288
336
  'height': height
289
337
  }"
290
338
  (chartInit)="onChartInit($event)"
339
+ [theme]="darkTheme ? 'dark' : ''"
291
340
  ></div>
292
341
  `, 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"] }] });
293
342
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: KiwiChartComponent, decorators: [{
@@ -298,23 +347,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
298
347
  <div
299
348
  echarts
300
349
  [options]="chartOption"
301
- [merge]="updateOption"
302
350
  [ngStyle]="{
303
351
  'width': width,
304
352
  'height': height
305
353
  }"
306
354
  (chartInit)="onChartInit($event)"
355
+ [theme]="darkTheme ? 'dark' : ''"
307
356
  ></div>
308
357
  `,
309
358
  styles: [`
310
359
  `]
311
360
  }]
312
- }], ctorParameters: function () { return []; }, propDecorators: { chart: [{
361
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { chart: [{
313
362
  type: Input
314
363
  }], width: [{
315
364
  type: Input
316
365
  }], height: [{
317
366
  type: Input
367
+ }], darkTheme: [{
368
+ type: Input
369
+ }], darkThemeBackground: [{
370
+ type: Input
318
371
  }], addPoint: [{
319
372
  type: Output
320
373
  }] } });
@@ -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}\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 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 { AfterViewInit, ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnDestroy, Output, SimpleChanges } from '@angular/core';\nimport { CustomSeriesOption, ECharts, EChartsOption, LineSeriesOption, ScatterSeriesOption, zrender } from 'echarts';\nimport { interval, Subscription } from 'rxjs';\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 [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 AfterViewInit, OnChanges, OnDestroy {\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 subscriptions: Subscription[] = [];\n\n constructor(\n private cd: ChangeDetectorRef\n ) { }\n\n ngAfterViewInit(): void {\n /** \n * This is a manual change detection running every 200ms, the memory should not be much afflicted.\n * It's necessary because when interacting with the chart (for example addPoint),\n * Angular loses the change detection and the point is not added in the chart canvas.\n */\n this.subscriptions.push(\n interval(200)\n .subscribe(() => {\n this.cd.detectChanges();\n })\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\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 ngOnDestroy(): void {\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\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,22 +1,77 @@
1
- import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
1
+ import { AfterViewInit, ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
2
2
  import { CustomSeriesOption, ECharts, EChartsOption, LineSeriesOption, ScatterSeriesOption, zrender } from 'echarts';
3
+ import { Subscription } from 'rxjs';
3
4
  import { Chart, Shape, Trace, BasePoint } from './models/chart.models';
4
5
  import * as i0 from "@angular/core";
5
- export declare class KiwiChartComponent implements OnChanges {
6
+ export declare class KiwiChartComponent implements AfterViewInit, OnChanges, OnDestroy {
7
+ private cd;
8
+ /**
9
+ * The Chart Object rendered by the canvas. For all the available options refer
10
+ * to Chart interface in the models folder.
11
+ *
12
+ * @type {(Chart | null)}
13
+ * @memberof KiwiChartComponent
14
+ */
6
15
  chart: Chart | null;
16
+ /**
17
+ * Width and Height of the chart area. The dimensions refer to the father component
18
+ * into which the kiwi-chart is inserted. For example in an empty page the width/height
19
+ * of the chart can take the whole available space in the page.
20
+ *
21
+ * @type {string}
22
+ * @memberof KiwiChartComponent
23
+ */
7
24
  width: string;
8
25
  height: string;
26
+ /**
27
+ * This property simply activates or not the dark theme of the chart
28
+ * defined by the Echarts library. In addition the background color can be custom
29
+ * so that the chart can match the background of the application in which it's used.
30
+ *
31
+ * @type {boolean}
32
+ * @memberof KiwiChartComponent
33
+ */
34
+ darkTheme: boolean;
35
+ darkThemeBackground?: string;
36
+ /**
37
+ * Output event used to emit to the father component the coordinates
38
+ * of the point clicked in the chart area. This functionality to be used must
39
+ * have the property "clickToAddPoint" in the Chart object set to true.
40
+ *
41
+ * @type {EventEmitter<BasePoint>}
42
+ * @memberof KiwiChartComponent
43
+ */
9
44
  addPoint: EventEmitter<BasePoint>;
45
+ /**
46
+ * The object used by echarts to initially create the Chart.
47
+ *
48
+ * @type {EChartsOption}
49
+ * @memberof KiwiChartComponent
50
+ */
10
51
  chartOption: EChartsOption;
11
- updateOption: EChartsOption;
52
+ /**
53
+ * The instance of the Chart.
54
+ *
55
+ * @type {(ECharts | null)}
56
+ * @memberof KiwiChartComponent
57
+ */
12
58
  echartsInstance: ECharts | null;
59
+ /**
60
+ * Used to perform actions (as point addition based on the cursor position) on the chart.
61
+ *
62
+ * @type {(zrender.ZRenderType | null)}
63
+ * @memberof KiwiChartComponent
64
+ */
13
65
  zr: zrender.ZRenderType | null;
14
- constructor();
66
+ subscriptions: Subscription[];
67
+ constructor(cd: ChangeDetectorRef);
68
+ ngAfterViewInit(): void;
15
69
  onChartInit(ec: ECharts): void;
16
70
  setupZrEventHandler(ec: ECharts): void;
17
71
  ngOnChanges(changes: SimpleChanges): void;
18
72
  createSeries(shapes: Shape[]): Array<LineSeriesOption | CustomSeriesOption | ScatterSeriesOption>;
19
73
  createTrace(trace: Trace): LineSeriesOption | ScatterSeriesOption;
74
+ ngOnDestroy(): void;
20
75
  static ɵfac: i0.ɵɵFactoryDeclaration<KiwiChartComponent, never>;
21
- static ɵcmp: i0.ɵɵComponentDeclaration<KiwiChartComponent, "kiwi-chart", never, { "chart": "chart"; "width": "width"; "height": "height"; }, { "addPoint": "addPoint"; }, never, never>;
76
+ static ɵcmp: i0.ɵɵComponentDeclaration<KiwiChartComponent, "kiwi-chart", never, { "chart": "chart"; "width": "width"; "height": "height"; "darkTheme": "darkTheme"; "darkThemeBackground": "darkThemeBackground"; }, { "addPoint": "addPoint"; }, never, never>;
22
77
  }
@@ -1,2 +1,2 @@
1
- export declare 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==";
2
- export declare 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==";
1
+ export declare 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=";
2
+ export declare 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";