sea-chart 2.0.1 → 2.0.2-alpha.3
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/cell-factory/SimpleCellFormatter.js +1 -1
- package/dist/components/cell-factory/link-content.js +4 -4
- package/dist/components/color-picker/index.js +1 -1
- package/dist/components/color-popover/color-rules/color-rule.js +1 -1
- package/dist/components/color-popover/color-rules/index.js +1 -1
- package/dist/components/color-popover/color-rules-popover.js +6 -6
- package/dist/components/color-popover/color-selector-popover.js +2 -2
- package/dist/components/color-setting/color-group-selector.js +1 -1
- package/dist/components/common-add-tool/index.js +2 -2
- package/dist/components/data-process-setter/hide-column-setter.js +1 -1
- package/dist/components/data-process-setter/sort-setter.js +2 -2
- package/dist/components/drill-down-settings/drill-down-fields-popover/index.js +4 -4
- package/dist/components/icon/index.js +2 -2
- package/dist/components/popover/hide-column-popover/hide-column-popover-widgets/hide-column-item.js +1 -1
- package/dist/components/popover/hide-column-popover/hide-column-popover.js +1 -1
- package/dist/components/popover/sort-popover/sort-popover.js +1 -1
- package/dist/components/row-card/row-card-header-cell.js +2 -2
- package/dist/components/row-card/row-card-header.js +1 -1
- package/dist/components/row-card/row-card-item.js +2 -2
- package/dist/components/row-card/row-card.js +2 -2
- package/dist/components/statistic-record-dialog/index.js +1 -1
- package/dist/components/types-dialog/index.js +7 -7
- package/dist/context.js +2 -2
- package/dist/services/map-json.js +4 -4
- package/dist/settings/basic-number-card/style-settings.js +1 -1
- package/dist/settings/index.js +3 -3
- package/dist/settings/map-settings/map-style-settings.js +1 -1
- package/dist/settings/stacks-settings/index.js +1 -1
- package/dist/settings/style-settings.js +1 -1
- package/dist/settings/table-settings/data-settings.js +1 -1
- package/dist/settings/trend-settings/style-setting.js +2 -2
- package/dist/settings/widgets/chart-type/index.js +3 -3
- package/dist/settings/widgets/date-summary-item.js +2 -2
- package/dist/settings/widgets/numeric-summary-item.js +2 -2
- package/dist/settings/widgets/summary-settings.js +2 -2
- package/dist/settings/widgets/switch/index.js +1 -1
- package/dist/settings/widgets/y-axis-group-settings.js +1 -1
- package/dist/utils/chart-utils/base-utils.js +7 -7
- package/dist/utils/chart-utils/original-data-utils/basic-chart-calculator.js +1 -1
- package/dist/utils/chart-utils/original-data-utils/compare-bar-chart-calculator.js +2 -2
- package/dist/utils/chart-utils/original-data-utils/completeness-calculator.js +1 -1
- package/dist/utils/chart-utils/sql-statistics-utils.js +9 -9
- package/dist/utils/collaborator-utils.js +1 -1
- package/dist/utils/collaborator.js +2 -2
- package/dist/utils/column-utils.js +12 -12
- package/dist/utils/common-utils.js +1 -1
- package/dist/utils/date-translate.js +1 -1
- package/dist/utils/object-utils.js +1 -1
- package/dist/utils/options-utils.js +2 -2
- package/dist/utils/row-record-utils.js +2 -2
- package/dist/utils/sql/chart-data-sql.js +58 -58
- package/dist/utils/sql/column-2-sql-column.js +18 -18
- package/dist/view/index.js +2 -5
- package/dist/view/title/index.js +2 -2
- package/dist/view/wrapper/bar-group.js +22 -31
- package/dist/view/wrapper/bar.js +168 -95
- package/dist/view/wrapper/basic-number-card.js +8 -8
- package/dist/view/wrapper/chart-component.js +17 -54
- package/dist/view/wrapper/index.js +2 -231
- package/dist/view/wrapper/table/index.js +1 -1
- package/dist/view/wrapper/table/one-dimension-table-with-numeric-columns.js +3 -3
- package/dist/view/wrapper/table/pivot-table-display-name.js +1 -1
- package/dist/view/wrapper/table/two-dimension-table.js +8 -8
- package/dist/view/wrapper/table-element/components/formatter.js +2 -2
- package/dist/view/wrapper/table-element/components/formatters/FileFormatter/index.js +1 -1
- package/dist/view/wrapper/table-element/components/formatters/link-formatter.js +17 -17
- package/dist/view/wrapper/table-element/components/link-formatter.js +17 -17
- package/dist/view/wrapper/table-element/components/record.js +3 -3
- package/dist/view/wrapper/table-element/components/records.js +4 -4
- package/dist/view/wrapper/table-element/components/utils.js +1 -1
- package/dist/view/wrapper/trend.js +18 -18
- package/package.json +5 -11
- package/dist/utils/custom-g2.js +0 -684
- package/dist/view/wrapper/area.js +0 -282
- package/dist/view/wrapper/bar-custom.js +0 -239
- package/dist/view/wrapper/combination.js +0 -728
- package/dist/view/wrapper/compare.js +0 -383
- package/dist/view/wrapper/completeness.js +0 -174
- package/dist/view/wrapper/dashboard.js +0 -179
- package/dist/view/wrapper/funnel.js +0 -206
- package/dist/view/wrapper/heat-map.js +0 -434
- package/dist/view/wrapper/horizontal-bar-group.js +0 -226
- package/dist/view/wrapper/horizontal-bar.js +0 -175
- package/dist/view/wrapper/horizontal-component.js +0 -89
- package/dist/view/wrapper/line-group.js +0 -219
- package/dist/view/wrapper/line.js +0 -222
- package/dist/view/wrapper/map.js +0 -368
- package/dist/view/wrapper/mirror.js +0 -218
- package/dist/view/wrapper/pie.js +0 -253
- package/dist/view/wrapper/ring.js +0 -328
- package/dist/view/wrapper/scatter.js +0 -140
- package/dist/view/wrapper/treemap.js +0 -206
- package/dist/view/wrapper/world-map.js +0 -413
- package/dist/view/wrapper/wrappers-d3/bar.js +0 -262
|
@@ -7,14 +7,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
-
var _dataSet = _interopRequireDefault(require("@antv/data-set"));
|
|
11
10
|
var _dtableUtils = require("dtable-utils");
|
|
12
11
|
var _lodashEs = require("lodash-es");
|
|
13
12
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
14
|
-
var _constants = require("dtable-ui-component/lib/constants");
|
|
15
13
|
var _intl = _interopRequireDefault(require("../../intl"));
|
|
16
14
|
var _columnUtils = require("../../utils/column-utils");
|
|
17
|
-
var
|
|
15
|
+
var _constants = require("../../constants");
|
|
18
16
|
var _utils = require("../../utils");
|
|
19
17
|
var _colorRules = require("../../constants/color-rules");
|
|
20
18
|
var _chartComponent = _interopRequireDefault(require("./chart-component"));
|
|
@@ -24,8 +22,7 @@ class BarGroup extends _chartComponent.default {
|
|
|
24
22
|
this.handleResize = () => {
|
|
25
23
|
this.chart && this.chart.destroy();
|
|
26
24
|
this.createChart();
|
|
27
|
-
this.drawChart();
|
|
28
|
-
this.renderAxisLabel(this.props.chart, this.props.tables);
|
|
25
|
+
// this.drawChart();
|
|
29
26
|
};
|
|
30
27
|
this.createChart = () => {
|
|
31
28
|
const {
|
|
@@ -62,14 +59,12 @@ class BarGroup extends _chartComponent.default {
|
|
|
62
59
|
sort_type,
|
|
63
60
|
type
|
|
64
61
|
} = chart.config;
|
|
65
|
-
if (type ===
|
|
62
|
+
if (type === _constants.CHART_TYPE.BAR_STACK && sort_type) {
|
|
66
63
|
data = (0, _columnUtils.sortDataByGroupSum)(data, sort_type);
|
|
67
64
|
}
|
|
68
65
|
this.loadData(data);
|
|
69
66
|
this.draw(data);
|
|
70
|
-
|
|
71
|
-
this.chart.render();
|
|
72
|
-
});
|
|
67
|
+
this.renderAxisLabel(this.props.chart, this.props.tables, this.container);
|
|
73
68
|
};
|
|
74
69
|
this.draw = data => {
|
|
75
70
|
const {
|
|
@@ -96,14 +91,14 @@ class BarGroup extends _chartComponent.default {
|
|
|
96
91
|
goal_value,
|
|
97
92
|
goal_label
|
|
98
93
|
} = chart.style_config || {};
|
|
99
|
-
const theme =
|
|
100
|
-
const isGroup = type ===
|
|
94
|
+
const theme = _constants.CHART_THEME_COLOR[globalTheme];
|
|
95
|
+
const isGroup = type === _constants.CHART_TYPE.BAR_GROUP;
|
|
101
96
|
const newData = this.getChartGroupData(data);
|
|
102
97
|
const column_groupby_column = this.getColumn(tables, table_id, column_groupby_column_key);
|
|
103
|
-
const useSingleSelectColumnColor = (column_groupby_column === null || column_groupby_column === void 0 ? void 0 : column_groupby_column.type) ===
|
|
98
|
+
const useSingleSelectColumnColor = (column_groupby_column === null || column_groupby_column === void 0 ? void 0 : column_groupby_column.type) === _dtableUtils.CellType.SINGLE_SELECT && color_theme === _colorRules.SUPPORT_SINGLE_SELECT_THEMES_OPTIONS.SINGLE_SELECT_COLUMN_COLORS;
|
|
104
99
|
let singleBarWidth, singleBarRadius;
|
|
105
100
|
// y-axis label width:6 + 10
|
|
106
|
-
const chartWidth = this.chart.width - 6 - 10; // 10 is y-axis number width and 6 is gap between number and y axis line
|
|
101
|
+
const chartWidth = this.chart.width - 6 - 10; // 10 is y-axis number width and 6 is gap between number and y axis line
|
|
107
102
|
if (!isGroup) {
|
|
108
103
|
singleBarWidth = Math.round(chartWidth / (2 * newData.length));
|
|
109
104
|
this.markFirstOrLast(data, 'first');
|
|
@@ -118,14 +113,14 @@ class BarGroup extends _chartComponent.default {
|
|
|
118
113
|
this.chart.coordinate('rect');
|
|
119
114
|
this.autoAdjustDataOptions(chart, data, summaryColumn);
|
|
120
115
|
let yAxisShowValue = y_axis_show_value;
|
|
121
|
-
if (type ===
|
|
116
|
+
if (type === _constants.CHART_TYPE.BAR_STACK) {
|
|
122
117
|
yAxisShowValue = display_each_block_data;
|
|
123
|
-
let summaryColumnData =
|
|
124
|
-
if (y_axis_summary_type ===
|
|
125
|
-
summaryColumnData = (summaryColumn === null || summaryColumn === void 0 ? void 0 : summaryColumn.data) ||
|
|
118
|
+
let summaryColumnData = _constants.DEFAULT_NUMBER_FORMAT_OBJECT;
|
|
119
|
+
if (y_axis_summary_type === _constants.CHART_SUMMARY_TYPE.ADVANCED) {
|
|
120
|
+
summaryColumnData = (summaryColumn === null || summaryColumn === void 0 ? void 0 : summaryColumn.data) || _constants.DEFAULT_NUMBER_FORMAT_OBJECT;
|
|
126
121
|
}
|
|
127
122
|
// get the total value of each stack
|
|
128
|
-
const dv = new
|
|
123
|
+
const dv = new DataSet.DataView().source(data);
|
|
129
124
|
dv.transform({
|
|
130
125
|
type: 'aggregate',
|
|
131
126
|
fields: ['value'],
|
|
@@ -137,7 +132,7 @@ class BarGroup extends _chartComponent.default {
|
|
|
137
132
|
dv.rows.forEach(item => {
|
|
138
133
|
this.chart.annotation().text({
|
|
139
134
|
content: () => {
|
|
140
|
-
if (y_axis_summary_method ===
|
|
135
|
+
if (y_axis_summary_method === _constants.CHART_SUMMARY_TYPE.DISTINCT_VALUES) {
|
|
141
136
|
return item.value_sum;
|
|
142
137
|
}
|
|
143
138
|
return (0, _dtableUtils.getNumberDisplayString)(item.value_sum, summaryColumnData);
|
|
@@ -176,14 +171,14 @@ class BarGroup extends _chartComponent.default {
|
|
|
176
171
|
fill: theme.labelColor,
|
|
177
172
|
...this.labelStroke
|
|
178
173
|
},
|
|
179
|
-
position: type ===
|
|
174
|
+
position: type === _constants.CHART_TYPE.BAR_STACK ? 'middle' : ''
|
|
180
175
|
}).position('name*value').size(singleBarWidth).color('group_name', group_name => {
|
|
181
|
-
return this.colorMap[group_name] ||
|
|
176
|
+
return this.colorMap[group_name] || _constants.CHART_STYLE_COLORS[0];
|
|
182
177
|
}).tooltip('name*value*group_name*raw_name', (name, value, group_name, raw_name) => {
|
|
183
178
|
return {
|
|
184
|
-
title: !name && typeof name !== 'number' ? _intl.default.get(
|
|
179
|
+
title: !name && typeof name !== 'number' ? _intl.default.get(_constants.EMPTY_NAME) : name,
|
|
185
180
|
value: _utils.BaseUtils.getSummaryValueDisplayString(summaryColumn, value, y_axis_summary_method),
|
|
186
|
-
name: !group_name && typeof group_name !== 'number' ? _intl.default.get(
|
|
181
|
+
name: !group_name && typeof group_name !== 'number' ? _intl.default.get(_constants.EMPTY_NAME) : group_name
|
|
187
182
|
};
|
|
188
183
|
}).adjust([adjust]).state({
|
|
189
184
|
active: {
|
|
@@ -225,24 +220,20 @@ class BarGroup extends _chartComponent.default {
|
|
|
225
220
|
}
|
|
226
221
|
componentDidMount() {
|
|
227
222
|
this.createChart();
|
|
228
|
-
this.drawChart();
|
|
229
|
-
this.renderAxisLabel(this.props.chart, this.props.tables);
|
|
223
|
+
// this.drawChart();
|
|
230
224
|
this.debouncedHandleResize = (0, _lodashEs.debounce)(this.handleResize, 300);
|
|
231
225
|
window.addEventListener('resize', this.debouncedHandleResize);
|
|
232
226
|
}
|
|
233
227
|
componentDidUpdate(prevProps) {
|
|
234
228
|
super.componentDidUpdate(prevProps);
|
|
235
229
|
if (_utils.BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
|
|
236
|
-
var _this$chart;
|
|
237
|
-
((_this$chart = this.chart) === null || _this$chart === void 0 ? void 0 : _this$chart.autoPadding) && this.chart.destroy();
|
|
238
230
|
this.createChart();
|
|
239
|
-
this.drawChart();
|
|
240
|
-
this.renderAxisLabel(prevProps.chart, prevProps.tables);
|
|
231
|
+
// this.drawChart();
|
|
241
232
|
}
|
|
242
233
|
}
|
|
243
234
|
componentWillUnmount() {
|
|
244
|
-
var _this$
|
|
245
|
-
((_this$
|
|
235
|
+
var _this$chart;
|
|
236
|
+
((_this$chart = this.chart) === null || _this$chart === void 0 ? void 0 : _this$chart.autoPadding) && this.chart.destroy();
|
|
246
237
|
window.removeEventListener('resize', this.debouncedHandleResize);
|
|
247
238
|
}
|
|
248
239
|
render() {
|
package/dist/view/wrapper/bar.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
3
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
@@ -8,7 +9,7 @@ exports.default = void 0;
|
|
|
8
9
|
var _react = _interopRequireDefault(require("react"));
|
|
9
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
11
|
var _lodashEs = require("lodash-es");
|
|
11
|
-
var
|
|
12
|
+
var d3 = _interopRequireWildcard(require("d3"));
|
|
12
13
|
var _constants = require("../../constants");
|
|
13
14
|
var _utils = require("../../utils");
|
|
14
15
|
var _colorUtils = require("../../utils/color-utils");
|
|
@@ -18,124 +19,202 @@ class Bar extends _chartComponent.default {
|
|
|
18
19
|
constructor(props) {
|
|
19
20
|
super(props);
|
|
20
21
|
this.handleResize = () => {
|
|
21
|
-
this.chart && this.chart.
|
|
22
|
+
this.chart.node() && this.chart.node().remove();
|
|
22
23
|
this.createChart();
|
|
23
24
|
this.drawChart();
|
|
24
25
|
};
|
|
25
26
|
this.createChart = () => {
|
|
27
|
+
this.initChart(this.container);
|
|
28
|
+
};
|
|
29
|
+
this.drawChart = () => {
|
|
26
30
|
const {
|
|
27
|
-
|
|
31
|
+
customRender
|
|
32
|
+
} = this.props;
|
|
33
|
+
let {
|
|
34
|
+
result: data
|
|
35
|
+
} = this.props;
|
|
36
|
+
data = _utils.BaseUtils.formatEmptyName(data, '', _intl.default.get('Empty'));
|
|
37
|
+
if (!Array.isArray(data)) return;
|
|
38
|
+
this.draw(data);
|
|
39
|
+
this.renderAxisLabel(this.props.chart, this.props.tables, this.container);
|
|
40
|
+
(0, _utils.isFunction)(customRender) && customRender(this.chart);
|
|
41
|
+
};
|
|
42
|
+
this.getFillColor = data => {
|
|
43
|
+
const {
|
|
44
|
+
chart,
|
|
45
|
+
chartColorTheme
|
|
28
46
|
} = this.props;
|
|
29
47
|
const {
|
|
30
|
-
|
|
48
|
+
y_axis_label_color,
|
|
49
|
+
color_option,
|
|
50
|
+
y_axis_label_color_rules
|
|
31
51
|
} = chart.config;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
52
|
+
let chartBarColor = y_axis_label_color || _constants.CHART_STYLE_COLORS[0];
|
|
53
|
+
if (chartColorTheme) {
|
|
54
|
+
chartBarColor = _utils.BaseUtils.getCurrentTheme(chartColorTheme).colors[0];
|
|
55
|
+
}
|
|
56
|
+
const colorRules = color_option === _constants.TYPE_COLOR_USING.USE_RULES && y_axis_label_color_rules && (0, _colorUtils.getConvertedColorRules)(y_axis_label_color_rules);
|
|
57
|
+
const color = (0, _colorUtils.getLabelColor)({
|
|
58
|
+
chart: chart.config,
|
|
59
|
+
colorRules,
|
|
60
|
+
value: data.value
|
|
61
|
+
});
|
|
62
|
+
return color || chartBarColor;
|
|
63
|
+
};
|
|
64
|
+
this.showTooltip = (event, data, title) => {
|
|
65
|
+
const {
|
|
66
|
+
offsetX,
|
|
67
|
+
offsetY
|
|
68
|
+
} = event;
|
|
69
|
+
const newTooltipData = {
|
|
70
|
+
title: title,
|
|
71
|
+
items: [{
|
|
72
|
+
color: this.getFillColor(data),
|
|
73
|
+
name: data.name,
|
|
74
|
+
value: data.value
|
|
75
|
+
}]
|
|
76
|
+
};
|
|
77
|
+
this.setState({
|
|
78
|
+
tooltipData: newTooltipData
|
|
79
|
+
});
|
|
80
|
+
this.setState({
|
|
81
|
+
toolTipPosition: {
|
|
82
|
+
offsetX,
|
|
83
|
+
offsetY
|
|
84
|
+
}
|
|
35
85
|
});
|
|
36
|
-
|
|
37
|
-
|
|
86
|
+
};
|
|
87
|
+
this.moveTooltip = event => {
|
|
88
|
+
const {
|
|
89
|
+
offsetX,
|
|
90
|
+
offsetY
|
|
91
|
+
} = event;
|
|
92
|
+
this.setState({
|
|
93
|
+
toolTipPosition: {
|
|
94
|
+
offsetX,
|
|
95
|
+
offsetY
|
|
96
|
+
}
|
|
38
97
|
});
|
|
39
98
|
};
|
|
40
|
-
this.
|
|
41
|
-
this.
|
|
42
|
-
|
|
99
|
+
this.hiddenTooltip = event => {
|
|
100
|
+
this.setState({
|
|
101
|
+
toolTipPosition: null
|
|
102
|
+
});
|
|
43
103
|
};
|
|
44
|
-
this.
|
|
45
|
-
|
|
46
|
-
|
|
104
|
+
this.setActiveAndInActiveState = (state, data) => {
|
|
105
|
+
const {
|
|
106
|
+
chart
|
|
47
107
|
} = this.props;
|
|
48
|
-
|
|
49
|
-
if (
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
108
|
+
const paths = d3.selectAll(".rects-wrapper-".concat(chart === null || chart === void 0 ? void 0 : chart.id, " path"));
|
|
109
|
+
if (state === 'active') {
|
|
110
|
+
paths.nodes().forEach(path => {
|
|
111
|
+
d3.select(path).attr('opacity', 1);
|
|
112
|
+
});
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
paths.nodes().forEach(path => {
|
|
116
|
+
if (path.id !== data.slugId) {
|
|
117
|
+
d3.select(path).attr('opacity', 0.3);
|
|
118
|
+
}
|
|
55
119
|
});
|
|
56
120
|
};
|
|
57
121
|
this.draw = data => {
|
|
58
122
|
const {
|
|
59
123
|
chart,
|
|
60
|
-
summaryColumn,
|
|
61
124
|
globalTheme,
|
|
62
|
-
customRender,
|
|
63
|
-
chartColorTheme,
|
|
64
125
|
tables
|
|
65
126
|
} = this.props;
|
|
66
127
|
const theme = _constants.CHART_THEME_COLOR[globalTheme];
|
|
128
|
+
const {
|
|
129
|
+
display_goal_line,
|
|
130
|
+
goal_value,
|
|
131
|
+
goal_label
|
|
132
|
+
} = chart.style_config || {};
|
|
67
133
|
const {
|
|
68
134
|
y_axis_summary_type,
|
|
69
135
|
y_axis_summary_column_key,
|
|
70
136
|
y_axis_column_key,
|
|
71
|
-
y_axis_summary_method,
|
|
72
|
-
y_axis_label_color,
|
|
73
137
|
y_axis_show_value,
|
|
74
138
|
label_font_size,
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
139
|
+
table_id,
|
|
140
|
+
y_axis_max,
|
|
141
|
+
y_axis_min,
|
|
142
|
+
y_axis_auto_range
|
|
78
143
|
} = chart.config;
|
|
144
|
+
const tooltipTitle = this.getTitle(tables, table_id, y_axis_summary_type, y_axis_column_key || y_axis_summary_column_key);
|
|
79
145
|
const {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
const
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
146
|
+
width: chartWidth,
|
|
147
|
+
height: chartHeight
|
|
148
|
+
} = this.chartBoundingClientRect;
|
|
149
|
+
const insertPadding = 30;
|
|
150
|
+
const borderRadius = 10;
|
|
151
|
+
const x = d3.scaleBand().domain(data.map(item => item.name)).range([insertPadding, chartWidth - insertPadding]).paddingInner(0.4).paddingOuter(0.1);
|
|
152
|
+
const y = d3.scaleLinear().domain(y_axis_auto_range ? [0, d3.max(data, d => d.value)] : [y_axis_min, y_axis_max]).range([chartHeight - insertPadding, insertPadding]);
|
|
153
|
+
this.chart.append('g').attr('transform', "translate(0, ".concat(chartHeight - insertPadding, ")")).call(d3.axisBottom(x).tickSizeOuter(0).tickSizeInner(5)).call(g => {
|
|
154
|
+
g.selectAll('.domain').attr('stroke', theme.XAxisColor);
|
|
155
|
+
g.selectAll('.tick line').attr('stroke', theme.XAxisColor);
|
|
156
|
+
g.selectAll('text').attr('font-size', theme.fontSize);
|
|
157
|
+
g.selectAll('text').attr('fill', theme.textColor);
|
|
158
|
+
});
|
|
159
|
+
this.chart.append('g').attr('transform', "translate(".concat(insertPadding, ", 0)")).call(d3.axisLeft(y).tickSizeInner(0).ticks(5).tickFormat(d => d)).call(g => {
|
|
160
|
+
g.select('.domain').remove();
|
|
161
|
+
g.selectAll('line').node().remove(); // delete the first line
|
|
162
|
+
g.selectAll('.tick line').clone().attr('x2', chartWidth - insertPadding * 2).attr('stroke', theme.gridColor).attr('stroke-dasharray', '8,3');
|
|
163
|
+
g.selectAll('text').attr('font-size', theme.fontSize);
|
|
164
|
+
g.selectAll('text').attr('fill', theme.textColor);
|
|
165
|
+
});
|
|
166
|
+
this.chart.append('g').attr('class', "rects-wrapper-".concat(chart === null || chart === void 0 ? void 0 : chart.id)).selectAll().data(data).join('path').attr('fill', d => d3.color(this.getFillColor(d))).attr('data-x', d => x(d.name)).attr('data-y', d => y(d.value)).attr('data-width', x.bandwidth()).attr('data-value', d => d.value).attr('id', (d, index) => d.slugId).attr('d', d => {
|
|
167
|
+
// Do not draw if the range is smaller than the minimum
|
|
168
|
+
if (!y_axis_auto_range && d.value <= y_axis_min) {
|
|
169
|
+
return '';
|
|
103
170
|
}
|
|
104
|
-
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
171
|
+
const path = d3.path();
|
|
172
|
+
const startX = x(d.name);
|
|
173
|
+
const startY = y(d.value);
|
|
174
|
+
path.moveTo(startX, startY + borderRadius);
|
|
175
|
+
path.quadraticCurveTo(startX, startY, startX + borderRadius, startY);
|
|
176
|
+
path.lineTo(startX + x.bandwidth() - borderRadius, startY);
|
|
177
|
+
path.quadraticCurveTo(startX + x.bandwidth(), startY, startX + x.bandwidth(), startY + borderRadius);
|
|
178
|
+
path.lineTo(startX + x.bandwidth(), y_axis_auto_range ? y(0) : y(y_axis_min));
|
|
179
|
+
path.lineTo(startX, y_axis_auto_range ? y(0) : y(y_axis_min));
|
|
180
|
+
path.closePath();
|
|
181
|
+
return path.toString();
|
|
182
|
+
}).call(g => {
|
|
183
|
+
const parentNode = d3.select('.rects-wrapper');
|
|
184
|
+
g.nodes().forEach(path => {
|
|
185
|
+
// Add label
|
|
186
|
+
if (y_axis_show_value) {
|
|
187
|
+
parentNode.append('text').attr('y', Number(path.dataset.y) - 10).attr('fill', theme.labelColor).attr('font-size', _utils.BaseUtils.getLabelFontSize(label_font_size)).text(path.dataset.value).call(g => {
|
|
188
|
+
const {
|
|
189
|
+
width
|
|
190
|
+
} = g.node().getBoundingClientRect();
|
|
191
|
+
g.attr('x', Number(path.dataset.x) + Number(path.dataset.width) / 2 - width);
|
|
192
|
+
});
|
|
121
193
|
}
|
|
122
|
-
}
|
|
123
|
-
}).
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
194
|
+
});
|
|
195
|
+
}).on('click', (event, data) => {
|
|
196
|
+
this.props.toggleRecords(data);
|
|
197
|
+
}).on('mouseover', (event, data) => {
|
|
198
|
+
this.showTooltip(event, data, tooltipTitle);
|
|
199
|
+
this.setActiveAndInActiveState('inActive', data);
|
|
200
|
+
}).on('mousemove', event => {
|
|
201
|
+
this.moveTooltip(event);
|
|
202
|
+
}).on('mouseleave', (event, data) => {
|
|
203
|
+
this.hiddenTooltip();
|
|
204
|
+
this.setActiveAndInActiveState('active', data);
|
|
127
205
|
});
|
|
128
|
-
if (display_goal_line
|
|
129
|
-
this.
|
|
206
|
+
if (display_goal_line) {
|
|
207
|
+
this.chart.append('g').attr('class', 'annotation-wrapper').append('line').attr('stroke', '#aaa').attr('x1', insertPadding).attr('y1', y(goal_value)).attr('x2', chartWidth - insertPadding).attr('y2', y(goal_value)).call(g => {
|
|
208
|
+
const parentNode = d3.select('.annotation-wrapper');
|
|
209
|
+
parentNode.append('text').attr('x', chartWidth - insertPadding - 30).attr('y', y(goal_value) - 10).attr('fill', '#666').text(goal_label);
|
|
210
|
+
});
|
|
130
211
|
}
|
|
131
|
-
this.chart.legend(false);
|
|
132
|
-
this.setToolTip();
|
|
133
|
-
(0, _utils.isFunction)(customRender) && customRender(this.chart);
|
|
134
|
-
this.setNameLabelAndTooltip(theme, this.labelCount);
|
|
135
|
-
this.setValueLabel(theme);
|
|
136
|
-
this.chart.interaction('element-highlight');
|
|
137
212
|
};
|
|
138
213
|
this.chart = null;
|
|
214
|
+
this.state = {
|
|
215
|
+
tooltipData: null,
|
|
216
|
+
toolTipPosition: null
|
|
217
|
+
};
|
|
139
218
|
}
|
|
140
219
|
componentDidMount() {
|
|
141
220
|
this.createChart();
|
|
@@ -146,29 +225,23 @@ class Bar extends _chartComponent.default {
|
|
|
146
225
|
componentDidUpdate(prevProps) {
|
|
147
226
|
super.componentDidUpdate(prevProps);
|
|
148
227
|
if (_utils.BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
|
|
149
|
-
var _this$chart;
|
|
150
|
-
((_this$chart = this.chart) === null || _this$chart === void 0 ? void 0 : _this$chart.autoPadding) && this.chart.destroy();
|
|
151
228
|
this.createChart();
|
|
152
229
|
this.drawChart();
|
|
153
230
|
}
|
|
154
231
|
}
|
|
155
232
|
componentWillUnmount() {
|
|
156
|
-
|
|
157
|
-
// chart doesn't have autoPadding before they were rendered
|
|
158
|
-
((_this$chart2 = this.chart) === null || _this$chart2 === void 0 ? void 0 : _this$chart2.autoPadding) && this.chart.destroy();
|
|
233
|
+
this.chart.node() && this.chart.node().remove();
|
|
159
234
|
window.removeEventListener('resize', this.debouncedHandleResize);
|
|
160
235
|
}
|
|
161
236
|
render() {
|
|
162
237
|
const {
|
|
163
|
-
|
|
164
|
-
|
|
238
|
+
tooltipData,
|
|
239
|
+
toolTipPosition
|
|
240
|
+
} = this.state;
|
|
165
241
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
166
|
-
className:
|
|
167
|
-
'show-x-axis-label': this.isShowXAxisLabel(chart),
|
|
168
|
-
'show-y-axis-label': this.isShowYAxisLabel(chart)
|
|
169
|
-
}),
|
|
242
|
+
className: "sea-chart-container",
|
|
170
243
|
ref: ref => this.container = ref
|
|
171
|
-
});
|
|
244
|
+
}, this.getToolTipContainer(tooltipData, toolTipPosition));
|
|
172
245
|
}
|
|
173
246
|
}
|
|
174
247
|
Bar.propTypes = {
|
|
@@ -127,11 +127,11 @@ class BasicNumericCard extends _react.Component {
|
|
|
127
127
|
width: '100%',
|
|
128
128
|
top: 'calc((100% - 25px)/2)',
|
|
129
129
|
transform: 'translateY(-50%)',
|
|
130
|
-
fontSize:
|
|
130
|
+
fontSize: "".concat(font_size, "px"),
|
|
131
131
|
margin: '-8px 0 2px 0',
|
|
132
|
-
textAlign:
|
|
133
|
-
fontWeight:
|
|
134
|
-
color:
|
|
132
|
+
textAlign: "".concat(text_align),
|
|
133
|
+
fontWeight: "".concat(font_weight),
|
|
134
|
+
color: "".concat(font_color)
|
|
135
135
|
}
|
|
136
136
|
}, content), /*#__PURE__*/_react.default.createElement("p", {
|
|
137
137
|
ref: ref => this.labelRef = ref,
|
|
@@ -140,10 +140,10 @@ class BasicNumericCard extends _react.Component {
|
|
|
140
140
|
width: '100%',
|
|
141
141
|
bottom: '0px',
|
|
142
142
|
margin: '0',
|
|
143
|
-
transform: currentLineHeight ?
|
|
144
|
-
fontSize:
|
|
145
|
-
fontWeight:
|
|
146
|
-
textAlign:
|
|
143
|
+
transform: currentLineHeight ? "translateY(".concat(currentLabelHeight - currentLineHeight, "px)") : '',
|
|
144
|
+
fontSize: "".concat(card_label_font_size, "px"),
|
|
145
|
+
fontWeight: "".concat(label_font_weight),
|
|
146
|
+
textAlign: "".concat(label_text_align),
|
|
147
147
|
color: label_font_color,
|
|
148
148
|
overflow: 'hidden',
|
|
149
149
|
textOverflow: 'ellipsis',
|