sea-chart 2.0.18 → 2.0.20

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.
@@ -56,7 +56,7 @@ class LineGroup extends _chartComponent.default {
56
56
  this.renderAxisLabel(this.props.chart, this.props.tables, this.container);
57
57
  (0, _utils.isFunction)(customRender) && customRender(this.chart);
58
58
  };
59
- this.showTooltip = (event, data, rectsWrapper) => {
59
+ this.showTooltip = (event, data, contentWrapper) => {
60
60
  const {
61
61
  offsetX,
62
62
  offsetY
@@ -64,7 +64,7 @@ class LineGroup extends _chartComponent.default {
64
64
  const {
65
65
  title,
66
66
  items
67
- } = this.getTooltipItems(data, rectsWrapper);
67
+ } = this.getTooltipItems(data, contentWrapper);
68
68
  const newTooltipData = {
69
69
  title,
70
70
  items
@@ -79,7 +79,7 @@ class LineGroup extends _chartComponent.default {
79
79
  }
80
80
  });
81
81
  };
82
- this.moveTooltip = (event, data, rectsWrapper) => {
82
+ this.moveTooltip = (event, data, contentWrapper) => {
83
83
  const {
84
84
  offsetX,
85
85
  offsetY
@@ -87,7 +87,7 @@ class LineGroup extends _chartComponent.default {
87
87
  const {
88
88
  title,
89
89
  items
90
- } = this.getTooltipItems(data, rectsWrapper);
90
+ } = this.getTooltipItems(data, contentWrapper);
91
91
  const newTooltipData = {
92
92
  title,
93
93
  items
@@ -107,15 +107,22 @@ class LineGroup extends _chartComponent.default {
107
107
  toolTipPosition: null
108
108
  });
109
109
  };
110
- this.getTooltipItems = (data, rectsWrapper) => {
111
- var _rectsWrapper$selectA;
110
+ this.getTooltipItems = (data, contentWrapper) => {
111
+ var _contentWrapper$selec;
112
+ const {
113
+ summaryColumn,
114
+ chart
115
+ } = this.props;
116
+ const {
117
+ y_axis_summary_method
118
+ } = chart.config;
112
119
  const title = !data.name && typeof data.name !== 'number' ? _intl.default.get(_constants.EMPTY_NAME) : data.name;
113
- const circleList = (_rectsWrapper$selectA = rectsWrapper.selectAll('circle')) === null || _rectsWrapper$selectA === void 0 ? void 0 : _rectsWrapper$selectA.nodes();
120
+ const circleList = (_contentWrapper$selec = contentWrapper.selectAll('circle')) === null || _contentWrapper$selec === void 0 ? void 0 : _contentWrapper$selec.nodes();
114
121
  const items = circleList.filter(circle => circle.getAttribute('data-name') === title).map(circle => {
115
122
  return {
116
123
  color: this.colorMap[circle.getAttribute('data-groupName')],
117
124
  name: circle.getAttribute('data-groupName'),
118
- value: circle.getAttribute('data-text')
125
+ value: _utils.BaseUtils.getSummaryValueDisplayString(summaryColumn, Number(circle.getAttribute('data-text')), y_axis_summary_method)
119
126
  };
120
127
  });
121
128
  return {
@@ -128,7 +135,8 @@ class LineGroup extends _chartComponent.default {
128
135
  chart,
129
136
  globalTheme,
130
137
  columnGroupbyColumn,
131
- chartColorTheme
138
+ chartColorTheme,
139
+ summaryColumn
132
140
  } = this.props;
133
141
  const theme = _constants.CHART_THEME_COLOR[globalTheme];
134
142
  const {
@@ -137,6 +145,7 @@ class LineGroup extends _chartComponent.default {
137
145
  goal_label
138
146
  } = chart.style_config || {};
139
147
  const {
148
+ y_axis_summary_method,
140
149
  y_axis_show_value,
141
150
  label_font_size,
142
151
  line_type,
@@ -157,12 +166,12 @@ class LineGroup extends _chartComponent.default {
157
166
  // Y axis
158
167
  const niceEnd = d3.nice(0, d3.max(data, d => d.value), 5)[1];
159
168
  const y = d3.scaleLinear().domain(y_axis_auto_range ? [0, niceEnd] : [y_axis_min || 0, y_axis_max || niceEnd]).range([chartHeight - insertPadding, insertPadding + marginTop]);
160
- this.chart.append('g').attr('transform', "translate(".concat(insertPadding, ", 0)")).call(d3.axisLeft(y).tickSizeInner(0).ticks(5).tickFormat(d => d)).call(g => this.drawYaxis(g, theme));
169
+ this.chart.append('g').attr('class', 'y-axis-wrapper').attr('transform', "translate(".concat(insertPadding, ", 0)")).call(d3.axisLeft(y).tickSizeInner(0).ticks(5).tickFormat(d => _utils.BaseUtils.getSummaryValueDisplayString(summaryColumn, d, y_axis_summary_method))).call(g => this.drawYaxis(g, theme));
161
170
 
162
171
  // X axis
163
172
  const xDomain = data.map(item => item.name);
164
173
  const x = d3.scaleBand().domain(xDomain).range([insertPadding + this.horizontalOverflowOffset, chartWidth - insertPadding]).paddingInner(0.4).paddingOuter(0.1);
165
- this.ticksWrapper = this.chart.append('g').attr('transform', "translate(0, ".concat(chartHeight - insertPadding, ")")).call(d3.axisBottom(x).tickSizeOuter(0).tickSizeInner(5)).call(g => {
174
+ this.chart.append('g').attr('class', 'x-axis-wrapper').attr('transform', "translate(0, ".concat(chartHeight - insertPadding, ")")).call(d3.axisBottom(x).tickSizeOuter(0).tickSizeInner(5)).call(g => {
166
175
  this.ticksAddName(g);
167
176
  g.selectAll('.domain').attr('stroke', theme.XAxisColor);
168
177
  g.selectAll('.tick line').attr('stroke', theme.XAxisColor);
@@ -172,7 +181,7 @@ class LineGroup extends _chartComponent.default {
172
181
  });
173
182
 
174
183
  // Line
175
- const rectsWrapper = this.chart.append('g').attr('class', "rects-wrapper-".concat(chart === null || chart === void 0 ? void 0 : chart.id));
184
+ const contentWrapper = this.chart.append('g').attr('class', 'content-wrapper');
176
185
  const circleDatas = [];
177
186
  const groupData = d3.groups(data, d => d.group_name);
178
187
  groupData.forEach(item => {
@@ -190,7 +199,7 @@ class LineGroup extends _chartComponent.default {
190
199
  }).curve(line_type === _constants.CHART_LINE_TYPES[1] ? d3.curveBumpX : d3.curveLinear);
191
200
  const group_name = item[0];
192
201
  const data = item[1];
193
- rectsWrapper.append('path').attr('fill', 'none').attr('stroke', this.colorMap[group_name]).attr('stroke-width', 2).attr('d', () => line(data));
202
+ contentWrapper.append('path').attr('fill', 'none').attr('stroke', this.colorMap[group_name]).attr('stroke-width', 2).attr('d', () => line(data));
194
203
  circleDatas.push({
195
204
  group_name,
196
205
  circleData
@@ -205,11 +214,11 @@ class LineGroup extends _chartComponent.default {
205
214
  } = _ref;
206
215
  circleData.forEach(item => {
207
216
  if (Object.keys(item).length > 0) {
208
- rectsWrapper.append('circle').attr('cx', item.x).attr('cy', item.y).attr('r', 3).attr('fill', this.colorMap[group_name]).attr('opacity', y_axis_show_value ? 1 : 0).attr('data-groupName', group_name).attr('data-text', item.value).attr('data-name', item.name).call(g => {
217
+ contentWrapper.append('circle').attr('cx', item.x).attr('cy', item.y).attr('r', 3).attr('fill', this.colorMap[group_name]).attr('opacity', y_axis_show_value ? 1 : 0).attr('data-groupName', group_name).attr('data-text', item.value).attr('data-name', item.name).call(g => {
209
218
  // circle label
210
219
  if (y_axis_show_value) {
211
220
  const curCircleEl = g.node();
212
- rectsWrapper.append('text').attr('stroke', '#fff').attr('stroke-width', 1).attr('paint-order', 'stroke').attr('fill', theme.labelColor).attr('font-size', _utils.BaseUtils.getLabelFontSize(label_font_size)).text(curCircleEl.getAttribute('data-text')).call(g => {
221
+ contentWrapper.append('text').attr('stroke', '#fff').attr('stroke-width', 1).attr('paint-order', 'stroke').attr('fill', theme.labelColor).attr('font-size', _utils.BaseUtils.getLabelFontSize(label_font_size)).text(_utils.BaseUtils.getSummaryValueDisplayString(summaryColumn, Number(curCircleEl.getAttribute('data-text')), y_axis_summary_method)).call(g => {
213
222
  const {
214
223
  width
215
224
  } = g.node().getBoundingClientRect();
@@ -229,7 +238,7 @@ class LineGroup extends _chartComponent.default {
229
238
  event,
230
239
  state: 'zoomIn',
231
240
  circleDatas,
232
- rectsWrapper,
241
+ contentWrapper,
233
242
  eventState: 'over'
234
243
  });
235
244
  }).on('mousemove', event => {
@@ -237,7 +246,7 @@ class LineGroup extends _chartComponent.default {
237
246
  event,
238
247
  state: 'zoomIn',
239
248
  circleDatas,
240
- rectsWrapper,
249
+ contentWrapper,
241
250
  eventState: 'move'
242
251
  });
243
252
  }).on('mouseleave', event => {
@@ -245,7 +254,7 @@ class LineGroup extends _chartComponent.default {
245
254
  event,
246
255
  state: 'zoomOut',
247
256
  circleDatas,
248
- rectsWrapper,
257
+ contentWrapper,
249
258
  eventState: 'leave'
250
259
  });
251
260
  });
@@ -262,22 +271,21 @@ class LineGroup extends _chartComponent.default {
262
271
  });
263
272
  };
264
273
  this.updateCircleAndTickStyle = _ref2 => {
265
- var _rectsWrapper$selectA2, _this$ticksWrapper$se;
274
+ var _contentWrapper$selec2;
266
275
  let {
267
276
  event,
268
277
  state,
269
278
  circleDatas,
270
- rectsWrapper,
279
+ contentWrapper,
271
280
  eventState
272
281
  } = _ref2;
273
282
  const {
274
- y_axis_show_value
275
- } = this.props.chart.config;
283
+ globalTheme,
284
+ chart
285
+ } = this.props;
276
286
  const {
277
- height: chartHeight,
278
- insertPadding,
279
- marginTop
280
- } = this.chartBoundingClientRect;
287
+ y_axis_show_value
288
+ } = chart.config;
281
289
  const {
282
290
  offsetX
283
291
  } = event;
@@ -292,54 +300,39 @@ class LineGroup extends _chartComponent.default {
292
300
  });
293
301
  const minIndex = d3.minIndex(minDistanceArr, d => d.distance);
294
302
  const minDistanceItem = minDistanceArr[minIndex];
295
-
296
- // circle
297
- const circleList = (_rectsWrapper$selectA2 = rectsWrapper.selectAll('circle')) === null || _rectsWrapper$selectA2 === void 0 ? void 0 : _rectsWrapper$selectA2.nodes();
298
- if (circleList.length !== 0) {
299
- if (state === 'zoomIn') {
300
- circleList.forEach(circle => {
301
- const name = circle.getAttribute('data-name');
302
- if (name === minDistanceItem.name) {
303
- d3.select(circle).attr('opacity', 1);
304
- d3.select(circle).attr('r', 5);
305
- } else {
306
- d3.select(circle).attr('opacity', 0);
307
- d3.select(circle).attr('r', 3);
308
- }
309
- });
310
- } else {
311
- circleList.forEach(circle => {
303
+ const circleList = (_contentWrapper$selec2 = contentWrapper.selectAll('circle')) === null || _contentWrapper$selec2 === void 0 ? void 0 : _contentWrapper$selec2.nodes();
304
+ if (state === 'zoomIn') {
305
+ // circle
306
+ circleList && circleList.forEach(circle => {
307
+ const name = circle.getAttribute('data-name');
308
+ if (name === minDistanceItem.name) {
309
+ d3.select(circle).attr('opacity', 1);
310
+ d3.select(circle).attr('r', 5);
311
+ } else {
312
312
  !y_axis_show_value && d3.select(circle).attr('opacity', 0);
313
313
  d3.select(circle).attr('r', 3);
314
- });
315
- }
316
- }
317
-
318
- // tick
319
- const ticks = (_this$ticksWrapper$se = this.ticksWrapper.selectAll('.tick line')) === null || _this$ticksWrapper$se === void 0 ? void 0 : _this$ticksWrapper$se.nodes();
320
- if (ticks.length !== 0) {
321
- if (state === 'zoomIn') {
322
- ticks.forEach(tick => {
323
- const name = tick.getAttribute('data-name');
324
- if (name === minDistanceItem.name) {
325
- d3.select(tick).attr('y2', -(chartHeight - insertPadding * 2 - marginTop));
326
- } else {
327
- d3.select(tick).attr('y2', 0);
328
- }
329
- });
330
- } else {
331
- ticks.forEach(tick => {
332
- d3.select(tick).attr('y2', 0);
333
- });
334
- }
314
+ }
315
+ });
316
+ // line
317
+ const theme = _constants.CHART_THEME_COLOR[globalTheme];
318
+ this.clearOldVerticalAnnotation(contentWrapper);
319
+ this.addVerticalAnnotation(contentWrapper, minDistanceItem, theme);
320
+ } else {
321
+ // circle
322
+ circleList && circleList.forEach(circle => {
323
+ !y_axis_show_value && d3.select(circle).attr('opacity', 0);
324
+ d3.select(circle).attr('r', 3);
325
+ });
326
+ // line
327
+ this.clearOldVerticalAnnotation(contentWrapper);
335
328
  }
336
329
 
337
330
  // tooltip
338
331
  if (eventState === 'over') {
339
- this.showTooltip(event, minDistanceItem, rectsWrapper);
332
+ this.showTooltip(event, minDistanceItem, contentWrapper);
340
333
  }
341
334
  if (eventState === 'move') {
342
- this.moveTooltip(event, minDistanceItem, rectsWrapper);
335
+ this.moveTooltip(event, minDistanceItem, contentWrapper);
343
336
  }
344
337
  if (eventState === 'leave') {
345
338
  this.hiddenTooltip();
@@ -55,6 +55,13 @@ class Line extends _chartComponent.default {
55
55
  (0, _utils.isFunction)(customRender) && customRender(this.chart);
56
56
  };
57
57
  this.showTooltip = (event, data, title) => {
58
+ const {
59
+ chart,
60
+ summaryColumn
61
+ } = this.props;
62
+ const {
63
+ y_axis_summary_method
64
+ } = chart.config;
58
65
  const {
59
66
  offsetX,
60
67
  offsetY
@@ -64,7 +71,7 @@ class Line extends _chartComponent.default {
64
71
  items: [{
65
72
  color: this.getLineColor(),
66
73
  name: data.name,
67
- value: data.value
74
+ value: _utils.BaseUtils.getSummaryValueDisplayString(summaryColumn, Number(data.value), y_axis_summary_method)
68
75
  }]
69
76
  };
70
77
  this.setState({
@@ -78,6 +85,13 @@ class Line extends _chartComponent.default {
78
85
  });
79
86
  };
80
87
  this.moveTooltip = (event, data, title) => {
88
+ const {
89
+ chart,
90
+ summaryColumn
91
+ } = this.props;
92
+ const {
93
+ y_axis_summary_method
94
+ } = chart.config;
81
95
  const {
82
96
  offsetX,
83
97
  offsetY
@@ -87,7 +101,7 @@ class Line extends _chartComponent.default {
87
101
  items: [{
88
102
  color: this.getLineColor(),
89
103
  name: data.name,
90
- value: data.value
104
+ value: _utils.BaseUtils.getSummaryValueDisplayString(summaryColumn, Number(data.value), y_axis_summary_method)
91
105
  }]
92
106
  };
93
107
  this.setState({
@@ -109,7 +123,8 @@ class Line extends _chartComponent.default {
109
123
  const {
110
124
  chart,
111
125
  globalTheme,
112
- tables
126
+ tables,
127
+ summaryColumn
113
128
  } = this.props;
114
129
  const theme = _constants.CHART_THEME_COLOR[globalTheme];
115
130
  const {
@@ -120,6 +135,7 @@ class Line extends _chartComponent.default {
120
135
  const {
121
136
  table_id,
122
137
  y_axis_column_key,
138
+ y_axis_summary_method,
123
139
  y_axis_summary_column_key,
124
140
  y_axis_show_value,
125
141
  label_font_size,
@@ -141,12 +157,12 @@ class Line extends _chartComponent.default {
141
157
  // Y axis
142
158
  const niceEnd = d3.nice(0, d3.max(data, d => d.value), 5)[1];
143
159
  const y = d3.scaleLinear().domain(y_axis_auto_range ? [0, niceEnd] : [y_axis_min || 0, y_axis_max || niceEnd]).range([chartHeight - insertPadding, insertPadding + marginTop]);
144
- this.chart.append('g').attr('transform', "translate(".concat(insertPadding, ", 0)")).call(d3.axisLeft(y).tickSizeInner(0).ticks(5).tickFormat(d => d)).call(g => this.drawYaxis(g, theme));
160
+ this.chart.append('g').attr('class', 'y-axis-wrapper').attr('transform', "translate(".concat(insertPadding, ", 0)")).call(d3.axisLeft(y).tickSizeInner(0).ticks(5).tickFormat(d => _utils.BaseUtils.getSummaryValueDisplayString(summaryColumn, d, y_axis_summary_method))).call(g => this.drawYaxis(g, theme));
145
161
 
146
162
  // X axis
147
163
  const xDomain = data.map(item => item.name);
148
164
  const x = d3.scaleBand().domain(xDomain).range([insertPadding + this.horizontalOverflowOffset, chartWidth - insertPadding]).paddingInner(0.4).paddingOuter(0.1);
149
- this.ticksWrapper = this.chart.append('g').attr('transform', "translate(0, ".concat(chartHeight - insertPadding, ")")).call(d3.axisBottom(x).tickSizeOuter(0).tickSizeInner(5)).call(g => {
165
+ this.chart.append('g').attr('class', 'x-axis-wrapper').attr('transform', "translate(0, ".concat(chartHeight - insertPadding, ")")).call(d3.axisBottom(x).tickSizeOuter(0).tickSizeInner(5)).call(g => {
150
166
  this.ticksAddName(g);
151
167
  g.selectAll('.domain').attr('stroke', theme.XAxisColor);
152
168
  g.selectAll('.tick line').attr('stroke', theme.XAxisColor);
@@ -168,16 +184,16 @@ class Line extends _chartComponent.default {
168
184
  circleData[index]['value'] = d.value;
169
185
  return yVal;
170
186
  }).curve(line_type === _constants.CHART_LINE_TYPES[1] ? d3.curveBumpX : d3.curveLinear);
171
- const rectsWrapper = this.chart.append('g').attr('class', "rects-wrapper-".concat(chart === null || chart === void 0 ? void 0 : chart.id));
172
- rectsWrapper.append('path').attr('fill', 'none').attr('stroke', chartBarColor).attr('stroke-width', 2).attr('d', () => line(data));
187
+ const contentWrapper = this.chart.append('g').attr('class', 'content-wrapper');
188
+ contentWrapper.append('path').attr('fill', 'none').attr('stroke', chartBarColor).attr('stroke-width', 2).attr('d', () => line(data));
173
189
 
174
190
  // circle
175
191
  circleData.forEach(item => {
176
- rectsWrapper.append('circle').attr('cx', item.x).attr('cy', item.y).attr('r', 3).attr('fill', chartBarColor).attr('opacity', y_axis_show_value ? 1 : 0).attr('data-text', item.value).attr('data-name', item.name).call(g => {
192
+ contentWrapper.append('circle').attr('cx', item.x).attr('cy', item.y).attr('r', 3).attr('fill', chartBarColor).attr('opacity', y_axis_show_value ? 1 : 0).attr('data-text', item.value).attr('data-name', item.name).call(g => {
177
193
  // circle label
178
194
  if (y_axis_show_value) {
179
195
  const curCircleEl = g.node();
180
- rectsWrapper.append('text').attr('stroke', '#fff').attr('stroke-width', 1).attr('paint-order', 'stroke').attr('fill', theme.labelColor).attr('font-size', _utils.BaseUtils.getLabelFontSize(label_font_size)).text(curCircleEl.getAttribute('data-text')).call(g => {
196
+ contentWrapper.append('text').attr('stroke', '#fff').attr('stroke-width', 1).attr('paint-order', 'stroke').attr('fill', theme.labelColor).attr('font-size', _utils.BaseUtils.getLabelFontSize(label_font_size)).text(_utils.BaseUtils.getSummaryValueDisplayString(summaryColumn, Number(curCircleEl.getAttribute('data-text')), y_axis_summary_method)).call(g => {
181
197
  const {
182
198
  width
183
199
  } = g.node().getBoundingClientRect();
@@ -195,7 +211,7 @@ class Line extends _chartComponent.default {
195
211
  event,
196
212
  state: 'zoomIn',
197
213
  circleData,
198
- rectsWrapper,
214
+ contentWrapper,
199
215
  eventState: 'over',
200
216
  tooltipTitle
201
217
  });
@@ -204,7 +220,7 @@ class Line extends _chartComponent.default {
204
220
  event,
205
221
  state: 'zoomIn',
206
222
  circleData,
207
- rectsWrapper,
223
+ contentWrapper,
208
224
  eventState: 'move',
209
225
  tooltipTitle
210
226
  });
@@ -213,7 +229,7 @@ class Line extends _chartComponent.default {
213
229
  event,
214
230
  state: 'zoomOut',
215
231
  circleData,
216
- rectsWrapper,
232
+ contentWrapper,
217
233
  eventState: 'leave',
218
234
  tooltipTitle
219
235
  });
@@ -223,63 +239,51 @@ class Line extends _chartComponent.default {
223
239
  }
224
240
  };
225
241
  this.updateCircleAndTickStyle = _ref => {
226
- var _rectsWrapper$selectA, _this$ticksWrapper$se;
242
+ var _contentWrapper$selec;
227
243
  let {
228
244
  event,
229
245
  state,
230
246
  circleData,
231
- rectsWrapper,
247
+ contentWrapper,
232
248
  eventState,
233
249
  tooltipTitle
234
250
  } = _ref;
235
251
  const {
236
- y_axis_show_value
237
- } = this.props.chart.config;
252
+ globalTheme,
253
+ chart
254
+ } = this.props;
238
255
  const {
239
- height: chartHeight,
240
- insertPadding,
241
- marginTop
242
- } = this.chartBoundingClientRect;
256
+ y_axis_show_value
257
+ } = chart.config;
243
258
  const {
244
259
  offsetX
245
260
  } = event;
246
261
  const minDistanceItem = this.getMinDistanceItem(offsetX, circleData);
247
- const circleList = (_rectsWrapper$selectA = rectsWrapper.selectAll('circle')) === null || _rectsWrapper$selectA === void 0 ? void 0 : _rectsWrapper$selectA.nodes();
248
- if (circleList.length !== 0) {
249
- if (state === 'zoomIn') {
250
- circleList.forEach(circle => {
251
- const name = circle.getAttribute('data-name');
252
- if (name === minDistanceItem.name) {
253
- d3.select(circle).attr('opacity', 1);
254
- d3.select(circle).attr('r', 5);
255
- } else {
256
- d3.select(circle).attr('opacity', 0);
257
- d3.select(circle).attr('r', 3);
258
- }
259
- });
260
- } else {
261
- circleList.forEach(circle => {
262
+ const circleList = (_contentWrapper$selec = contentWrapper.selectAll('circle')) === null || _contentWrapper$selec === void 0 ? void 0 : _contentWrapper$selec.nodes();
263
+ if (state === 'zoomIn') {
264
+ // circle
265
+ circleList && circleList.forEach(circle => {
266
+ const name = circle.getAttribute('data-name');
267
+ if (name === minDistanceItem.name) {
268
+ d3.select(circle).attr('opacity', 1);
269
+ d3.select(circle).attr('r', 5);
270
+ } else {
262
271
  !y_axis_show_value && d3.select(circle).attr('opacity', 0);
263
272
  d3.select(circle).attr('r', 3);
264
- });
265
- }
266
- }
267
- const ticks = (_this$ticksWrapper$se = this.ticksWrapper.selectAll('.tick line')) === null || _this$ticksWrapper$se === void 0 ? void 0 : _this$ticksWrapper$se.nodes();
268
- if (ticks.length !== 0) {
269
- if (state === 'zoomIn') {
270
- ticks.forEach(tick => {
271
- const name = tick.getAttribute('data-name');
272
- if (name === minDistanceItem.name) {
273
- d3.select(tick).attr('y2', -(chartHeight - insertPadding * 2 - marginTop));
274
- } else {
275
- d3.select(tick).attr('y2', 0);
276
- }
277
- });
278
- } else {
279
- ticks.forEach(tick => {
280
- d3.select(tick).attr('y2', 0);
281
- });
282
- }
273
+ }
274
+ });
275
+ // line
276
+ const theme = _constants.CHART_THEME_COLOR[globalTheme];
277
+ this.clearOldVerticalAnnotation(contentWrapper);
278
+ this.addVerticalAnnotation(contentWrapper, minDistanceItem, theme);
279
+ } else {
280
+ // circle
281
+ circleList && circleList.forEach(circle => {
282
+ !y_axis_show_value && d3.select(circle).attr('opacity', 0);
283
+ d3.select(circle).attr('r', 3);
284
+ });
285
+ // line
286
+ this.clearOldVerticalAnnotation(contentWrapper);
283
287
  }
284
288
 
285
289
  // tooltip
@@ -83,10 +83,10 @@ class Pie extends _chartComponent.default {
83
83
  // Pie and Arc
84
84
  const pie = d3.pie().sort(null).value(d => d.value);
85
85
  const arcs = pie(data);
86
- const arc = d3.arc().innerRadius(Math.min(chartWidth, chartHeight) / 2 * 0.7 * 0.03).outerRadius(Math.min(chartWidth, chartHeight) / 2 * 0.7);
86
+ const arc = d3.arc().innerRadius(0).outerRadius(Math.min(chartWidth, chartHeight) / 2 * 0.7);
87
87
 
88
88
  // Draw Pie
89
- this.chart.append('g').attr('stroke', 'white').attr('stroke-width', 2).selectAll().data(arcs).join('path').attr('fill', d => color(d.data.name)).attr('d', arc).attr('data-groupName', d => d.data.name).call(g => {
89
+ this.chart.append('g').attr('class', 'content-wrapper').attr('stroke', 'white').selectAll().data(arcs).join('path').attr('stroke-width', 2).attr('opacity', 1).attr('fill', d => color(d.data.name)).attr('d', arc).attr('data-groupName', d => d.data.name).call(g => {
90
90
  var _g$node$parentNode;
91
91
  const {
92
92
  width,
@@ -185,7 +185,7 @@ class Pie extends _chartComponent.default {
185
185
  this.handleAcitveAndInActiveState = (state, event) => {
186
186
  const allGroup = [event.currentTarget.parentNode];
187
187
  const curGroupName = event.currentTarget.getAttribute('data-groupName');
188
- this.setActiveAndInActiveState(state, allGroup, curGroupName);
188
+ this.setActiveAndInActiveState(state, allGroup, curGroupName, _constants.CHART_TYPE.PIE);
189
189
  };
190
190
  this.getLabel = (val, percent) => {
191
191
  const {
@@ -87,7 +87,7 @@ class Ring extends _chartComponent.default {
87
87
  const arc = d3.arc().innerRadius(Math.min(chartWidth, chartHeight) / 2 * 0.7).outerRadius(Math.min(chartWidth, chartHeight) / 2 * 0.5);
88
88
 
89
89
  // Draw Ring
90
- this.chart.append('g').selectAll().data(arcs).join('path').attr('stroke', 'white').attr('stroke-width', 2).attr('fill', d => color(d.data.name)).attr('d', arc).attr('data-groupName', d => d.data.name).call(g => {
90
+ this.chart.append('g').attr('class', 'content-wrapper').selectAll().data(arcs).join('path').attr('stroke', 'white').attr('stroke-width', 2).attr('opacity', 1).attr('fill', d => color(d.data.name)).attr('d', arc).attr('data-groupName', d => d.data.name).call(g => {
91
91
  var _g$node$parentNode;
92
92
  const {
93
93
  width,
@@ -108,7 +108,7 @@ class Ring extends _chartComponent.default {
108
108
  if (display_label) {
109
109
  const labelRadius = this.isInnerLabel ? arc.outerRadius()() * 1.2 : arc.outerRadius()() * 1.65;
110
110
  const arcLabel = d3.arc().innerRadius(labelRadius).outerRadius(labelRadius);
111
- this.chart.append('g').attr('transform', "translate(".concat(left + offsetX, ", ").concat(top + offsetY, ")")).attr('text-anchor', 'middle').selectAll().data(arcs).join('text').attr('class', 'label').attr('stroke', '#fff').attr('stroke-width', 1).attr('paint-order', 'stroke').attr('transform', d => "translate(".concat(arcLabel.centroid(d), ")")).text(d => {
111
+ this.chart.append('g').attr('class', 'label-wrapper').attr('transform', "translate(".concat(left + offsetX, ", ").concat(top + offsetY, ")")).attr('text-anchor', 'middle').selectAll().data(arcs).join('text').attr('class', 'label').attr('stroke', '#fff').attr('stroke-width', 1).attr('paint-order', 'stroke').attr('transform', d => "translate(".concat(arcLabel.centroid(d), ")")).text(d => {
112
112
  const {
113
113
  value,
114
114
  percent
@@ -130,7 +130,7 @@ class Ring extends _chartComponent.default {
130
130
  this.handleAcitveAndInActiveState('inActive', event);
131
131
  this.setAnnotationTotal(event.currentTarget.parentNode, {
132
132
  name: this.getTooltipName(rowData.data.name),
133
- value: this.getLabel(rowData.data.value, rowData.data.percent)
133
+ value: rowData.data.value
134
134
  });
135
135
  }).on('mousemove', event => {
136
136
  this.moveTooltip(event);
@@ -199,7 +199,7 @@ class Ring extends _chartComponent.default {
199
199
  this.handleAcitveAndInActiveState = (state, event) => {
200
200
  const allGroup = [event.currentTarget.parentNode];
201
201
  const curGroupName = event.currentTarget.getAttribute('data-groupName');
202
- this.setActiveAndInActiveState(state, allGroup, curGroupName);
202
+ this.setActiveAndInActiveState(state, allGroup, curGroupName, _constants.CHART_TYPE.RING);
203
203
  };
204
204
  this.getLabel = (val, percent) => {
205
205
  const {