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.
- package/dist/components/tooltip/index.js +13 -3
- package/dist/components/types-dialog/index.js +1 -1
- package/dist/view/wrapper/area-group.js +60 -68
- package/dist/view/wrapper/area.js +43 -53
- package/dist/view/wrapper/chart-component.js +37 -9
- package/dist/view/wrapper/index.js +7 -0
- package/dist/view/wrapper/line-group.js +59 -66
- package/dist/view/wrapper/line.js +58 -54
- package/dist/view/wrapper/pie.js +3 -3
- package/dist/view/wrapper/ring.js +4 -4
- package/dist/view/wrapper/scatter.js +333 -0
- package/package.json +1 -1
|
@@ -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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
111
|
-
var
|
|
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 = (
|
|
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.
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
274
|
+
var _contentWrapper$selec2;
|
|
266
275
|
let {
|
|
267
276
|
event,
|
|
268
277
|
state,
|
|
269
278
|
circleDatas,
|
|
270
|
-
|
|
279
|
+
contentWrapper,
|
|
271
280
|
eventState
|
|
272
281
|
} = _ref2;
|
|
273
282
|
const {
|
|
274
|
-
|
|
275
|
-
|
|
283
|
+
globalTheme,
|
|
284
|
+
chart
|
|
285
|
+
} = this.props;
|
|
276
286
|
const {
|
|
277
|
-
|
|
278
|
-
|
|
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
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
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
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
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,
|
|
332
|
+
this.showTooltip(event, minDistanceItem, contentWrapper);
|
|
340
333
|
}
|
|
341
334
|
if (eventState === 'move') {
|
|
342
|
-
this.moveTooltip(event, minDistanceItem,
|
|
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.
|
|
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
|
|
172
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
242
|
+
var _contentWrapper$selec;
|
|
227
243
|
let {
|
|
228
244
|
event,
|
|
229
245
|
state,
|
|
230
246
|
circleData,
|
|
231
|
-
|
|
247
|
+
contentWrapper,
|
|
232
248
|
eventState,
|
|
233
249
|
tooltipTitle
|
|
234
250
|
} = _ref;
|
|
235
251
|
const {
|
|
236
|
-
|
|
237
|
-
|
|
252
|
+
globalTheme,
|
|
253
|
+
chart
|
|
254
|
+
} = this.props;
|
|
238
255
|
const {
|
|
239
|
-
|
|
240
|
-
|
|
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 = (
|
|
248
|
-
if (
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
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
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
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
|
package/dist/view/wrapper/pie.js
CHANGED
|
@@ -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(
|
|
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('
|
|
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:
|
|
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 {
|