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.
Files changed (94) hide show
  1. package/dist/components/cell-factory/SimpleCellFormatter.js +1 -1
  2. package/dist/components/cell-factory/link-content.js +4 -4
  3. package/dist/components/color-picker/index.js +1 -1
  4. package/dist/components/color-popover/color-rules/color-rule.js +1 -1
  5. package/dist/components/color-popover/color-rules/index.js +1 -1
  6. package/dist/components/color-popover/color-rules-popover.js +6 -6
  7. package/dist/components/color-popover/color-selector-popover.js +2 -2
  8. package/dist/components/color-setting/color-group-selector.js +1 -1
  9. package/dist/components/common-add-tool/index.js +2 -2
  10. package/dist/components/data-process-setter/hide-column-setter.js +1 -1
  11. package/dist/components/data-process-setter/sort-setter.js +2 -2
  12. package/dist/components/drill-down-settings/drill-down-fields-popover/index.js +4 -4
  13. package/dist/components/icon/index.js +2 -2
  14. package/dist/components/popover/hide-column-popover/hide-column-popover-widgets/hide-column-item.js +1 -1
  15. package/dist/components/popover/hide-column-popover/hide-column-popover.js +1 -1
  16. package/dist/components/popover/sort-popover/sort-popover.js +1 -1
  17. package/dist/components/row-card/row-card-header-cell.js +2 -2
  18. package/dist/components/row-card/row-card-header.js +1 -1
  19. package/dist/components/row-card/row-card-item.js +2 -2
  20. package/dist/components/row-card/row-card.js +2 -2
  21. package/dist/components/statistic-record-dialog/index.js +1 -1
  22. package/dist/components/types-dialog/index.js +7 -7
  23. package/dist/context.js +2 -2
  24. package/dist/services/map-json.js +4 -4
  25. package/dist/settings/basic-number-card/style-settings.js +1 -1
  26. package/dist/settings/index.js +3 -3
  27. package/dist/settings/map-settings/map-style-settings.js +1 -1
  28. package/dist/settings/stacks-settings/index.js +1 -1
  29. package/dist/settings/style-settings.js +1 -1
  30. package/dist/settings/table-settings/data-settings.js +1 -1
  31. package/dist/settings/trend-settings/style-setting.js +2 -2
  32. package/dist/settings/widgets/chart-type/index.js +3 -3
  33. package/dist/settings/widgets/date-summary-item.js +2 -2
  34. package/dist/settings/widgets/numeric-summary-item.js +2 -2
  35. package/dist/settings/widgets/summary-settings.js +2 -2
  36. package/dist/settings/widgets/switch/index.js +1 -1
  37. package/dist/settings/widgets/y-axis-group-settings.js +1 -1
  38. package/dist/utils/chart-utils/base-utils.js +7 -7
  39. package/dist/utils/chart-utils/original-data-utils/basic-chart-calculator.js +1 -1
  40. package/dist/utils/chart-utils/original-data-utils/compare-bar-chart-calculator.js +2 -2
  41. package/dist/utils/chart-utils/original-data-utils/completeness-calculator.js +1 -1
  42. package/dist/utils/chart-utils/sql-statistics-utils.js +9 -9
  43. package/dist/utils/collaborator-utils.js +1 -1
  44. package/dist/utils/collaborator.js +2 -2
  45. package/dist/utils/column-utils.js +12 -12
  46. package/dist/utils/common-utils.js +1 -1
  47. package/dist/utils/date-translate.js +1 -1
  48. package/dist/utils/object-utils.js +1 -1
  49. package/dist/utils/options-utils.js +2 -2
  50. package/dist/utils/row-record-utils.js +2 -2
  51. package/dist/utils/sql/chart-data-sql.js +58 -58
  52. package/dist/utils/sql/column-2-sql-column.js +18 -18
  53. package/dist/view/index.js +2 -5
  54. package/dist/view/title/index.js +2 -2
  55. package/dist/view/wrapper/bar-group.js +22 -31
  56. package/dist/view/wrapper/bar.js +168 -95
  57. package/dist/view/wrapper/basic-number-card.js +8 -8
  58. package/dist/view/wrapper/chart-component.js +17 -54
  59. package/dist/view/wrapper/index.js +2 -231
  60. package/dist/view/wrapper/table/index.js +1 -1
  61. package/dist/view/wrapper/table/one-dimension-table-with-numeric-columns.js +3 -3
  62. package/dist/view/wrapper/table/pivot-table-display-name.js +1 -1
  63. package/dist/view/wrapper/table/two-dimension-table.js +8 -8
  64. package/dist/view/wrapper/table-element/components/formatter.js +2 -2
  65. package/dist/view/wrapper/table-element/components/formatters/FileFormatter/index.js +1 -1
  66. package/dist/view/wrapper/table-element/components/formatters/link-formatter.js +17 -17
  67. package/dist/view/wrapper/table-element/components/link-formatter.js +17 -17
  68. package/dist/view/wrapper/table-element/components/record.js +3 -3
  69. package/dist/view/wrapper/table-element/components/records.js +4 -4
  70. package/dist/view/wrapper/table-element/components/utils.js +1 -1
  71. package/dist/view/wrapper/trend.js +18 -18
  72. package/package.json +5 -11
  73. package/dist/utils/custom-g2.js +0 -684
  74. package/dist/view/wrapper/area.js +0 -282
  75. package/dist/view/wrapper/bar-custom.js +0 -239
  76. package/dist/view/wrapper/combination.js +0 -728
  77. package/dist/view/wrapper/compare.js +0 -383
  78. package/dist/view/wrapper/completeness.js +0 -174
  79. package/dist/view/wrapper/dashboard.js +0 -179
  80. package/dist/view/wrapper/funnel.js +0 -206
  81. package/dist/view/wrapper/heat-map.js +0 -434
  82. package/dist/view/wrapper/horizontal-bar-group.js +0 -226
  83. package/dist/view/wrapper/horizontal-bar.js +0 -175
  84. package/dist/view/wrapper/horizontal-component.js +0 -89
  85. package/dist/view/wrapper/line-group.js +0 -219
  86. package/dist/view/wrapper/line.js +0 -222
  87. package/dist/view/wrapper/map.js +0 -368
  88. package/dist/view/wrapper/mirror.js +0 -218
  89. package/dist/view/wrapper/pie.js +0 -253
  90. package/dist/view/wrapper/ring.js +0 -328
  91. package/dist/view/wrapper/scatter.js +0 -140
  92. package/dist/view/wrapper/treemap.js +0 -206
  93. package/dist/view/wrapper/world-map.js +0 -413
  94. 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 _constants2 = require("../../constants");
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 === _constants2.CHART_TYPE.BAR_STACK && sort_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
- requestAnimationFrame(() => {
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 = _constants2.CHART_THEME_COLOR[globalTheme];
100
- const isGroup = type === _constants2.CHART_TYPE.BAR_GROUP;
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) === _constants.CellType.SINGLE_SELECT && color_theme === _colorRules.SUPPORT_SINGLE_SELECT_THEMES_OPTIONS.SINGLE_SELECT_COLUMN_COLORS;
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 === _constants2.CHART_TYPE.BAR_STACK) {
116
+ if (type === _constants.CHART_TYPE.BAR_STACK) {
122
117
  yAxisShowValue = display_each_block_data;
123
- let summaryColumnData = _constants2.DEFAULT_NUMBER_FORMAT_OBJECT;
124
- if (y_axis_summary_type === _constants2.CHART_SUMMARY_TYPE.ADVANCED) {
125
- summaryColumnData = (summaryColumn === null || summaryColumn === void 0 ? void 0 : summaryColumn.data) || _constants2.DEFAULT_NUMBER_FORMAT_OBJECT;
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 _dataSet.default.DataView().source(data);
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 === _constants2.CHART_SUMMARY_TYPE.DISTINCT_VALUES) {
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 === _constants2.CHART_TYPE.BAR_STACK ? 'middle' : ''
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] || _constants2.CHART_STYLE_COLORS[0];
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(_constants2.EMPTY_NAME) : name,
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(_constants2.EMPTY_NAME) : group_name
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$chart2;
245
- ((_this$chart2 = this.chart) === null || _this$chart2 === void 0 ? void 0 : _this$chart2.autoPadding) && this.chart.destroy();
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() {
@@ -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 _classnames = _interopRequireDefault(require("classnames"));
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.destroy();
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
- chart
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
- y_axis_show_value
48
+ y_axis_label_color,
49
+ color_option,
50
+ y_axis_label_color_rules
31
51
  } = chart.config;
32
- const appendPadding = [y_axis_show_value ? 17 : 0, 0, 0, 0]; // used to display value on the top
33
- this.initChart(this.container, {
34
- appendPadding
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
- this.chart.on('interval:click', e => {
37
- this.props.toggleRecords(e.data.data);
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.clearChart = () => {
41
- this.chart.annotation().clear(true);
42
- this.chart.clear(true);
99
+ this.hiddenTooltip = event => {
100
+ this.setState({
101
+ toolTipPosition: null
102
+ });
43
103
  };
44
- this.drawChart = () => {
45
- let {
46
- result: data
104
+ this.setActiveAndInActiveState = (state, data) => {
105
+ const {
106
+ chart
47
107
  } = this.props;
48
- data = _utils.BaseUtils.formatEmptyName(data, '', _intl.default.get('Empty'));
49
- if (!Array.isArray(data)) return;
50
- this.loadData(data);
51
- this.draw(data);
52
- requestAnimationFrame(() => {
53
- this.chart.render();
54
- this.renderAxisLabel(this.props.chart, this.props.tables);
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
- color_option,
76
- y_axis_label_color_rules,
77
- table_id
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
- display_goal_line,
81
- goal_value,
82
- goal_label
83
- } = chart.style_config || {};
84
- // y-axis label width:6 + 10
85
- const chartWidth = this.chart.width - 6 - 10; // 10 is y-axis number width and 6 is gap between number and y axis line
86
- const singleBarWidth = Math.round(chartWidth / (2 * data.length));
87
- const singleBarRadius = Math.min(singleBarWidth / 5, 10);
88
- let chartBarColor = y_axis_label_color || _constants.CHART_STYLE_COLORS[0];
89
- if (chartColorTheme) {
90
- chartBarColor = _utils.BaseUtils.getCurrentTheme(chartColorTheme).colors[0];
91
- }
92
- const colorRules = color_option === _constants.TYPE_COLOR_USING.USE_RULES && y_axis_label_color_rules && (0, _colorUtils.getConvertedColorRules)(y_axis_label_color_rules);
93
- const title = this.getTitle(tables, table_id, y_axis_summary_type, y_axis_column_key || y_axis_summary_column_key);
94
- this.drawLabels(data);
95
- // set Coord type
96
- this.chart.coordinate('rect');
97
- this.autoAdjustDataOptions(chart, data, summaryColumn);
98
- this.chart.interval().label(y_axis_show_value ? 'value' : false, {
99
- style: {
100
- fontSize: _utils.BaseUtils.getLabelFontSize(label_font_size),
101
- fill: theme.labelColor,
102
- ...this.labelStroke
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
- }).position('name*value').size(singleBarWidth).color('value', value => {
105
- const color = (0, _colorUtils.getLabelColor)({
106
- chart: chart.config,
107
- colorRules,
108
- value
109
- });
110
- return color || chartBarColor;
111
- }).tooltip('name*value', (name, value) => {
112
- return {
113
- title,
114
- value: _utils.BaseUtils.getSummaryValueDisplayString(summaryColumn, value, y_axis_summary_method),
115
- name
116
- };
117
- }).state({
118
- active: {
119
- style: {
120
- stroke: null
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
- }).style('value', value => {
124
- return {
125
- radius: [singleBarRadius, singleBarRadius, 0, 0]
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 && goal_label && goal_value) {
129
- this.setDispalyGoalLine(goal_label, goal_value, chartWidth);
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
- var _this$chart2;
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
- chart
164
- } = this.props;
238
+ tooltipData,
239
+ toolTipPosition
240
+ } = this.state;
165
241
  return /*#__PURE__*/_react.default.createElement("div", {
166
- className: (0, _classnames.default)('sea-chart-container', {
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: `${font_size}px`,
130
+ fontSize: "".concat(font_size, "px"),
131
131
  margin: '-8px 0 2px 0',
132
- textAlign: `${text_align}`,
133
- fontWeight: `${font_weight}`,
134
- color: `${font_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 ? `translateY(${currentLabelHeight - currentLineHeight}px)` : '',
144
- fontSize: `${card_label_font_size}px`,
145
- fontWeight: `${label_font_weight}`,
146
- textAlign: `${label_text_align}`,
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',