sea-chart 2.0.9 → 2.0.11

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.
@@ -0,0 +1,282 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _lodashEs = require("lodash-es");
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+ var d3 = _interopRequireWildcard(require("d3"));
14
+ var _dtableUtils = require("dtable-utils");
15
+ var _constants = require("../../constants");
16
+ var _utils = require("../../utils");
17
+ var _intl = _interopRequireDefault(require("../../intl"));
18
+ var _colorRules = require("../../constants/color-rules");
19
+ var _columnUtils = require("../../utils/column-utils");
20
+ var _tooltip = _interopRequireDefault(require("../../components/tooltip"));
21
+ var _chartComponent = _interopRequireDefault(require("./chart-component"));
22
+ class HorizontalBarGroup extends _chartComponent.default {
23
+ constructor(props) {
24
+ super(props);
25
+ this.handleResize = (0, _lodashEs.debounce)(() => {
26
+ this.chart.node() && this.chart.node().remove();
27
+ this.createChart();
28
+ this.drawChart();
29
+ }, 300);
30
+ this.createChart = () => {
31
+ const {
32
+ chart
33
+ } = this.props;
34
+ const {
35
+ show_horizontal_axis_label,
36
+ show_vertical_axis_label,
37
+ display_data
38
+ } = chart.config;
39
+ const initConfig = {
40
+ insertPadding: 30,
41
+ borderRadius: 0.2,
42
+ marginLeft: show_vertical_axis_label ? 20 : 0,
43
+ marginBottom: show_horizontal_axis_label ? 20 : 0,
44
+ marginRight: display_data ? 15 : 0
45
+ };
46
+ this.initChart(this.container, chart === null || chart === void 0 ? void 0 : chart.id, initConfig);
47
+ };
48
+ this.drawChart = () => {
49
+ let {
50
+ result: data,
51
+ customRender,
52
+ chart
53
+ } = this.props;
54
+ data = _utils.BaseUtils.formatEmptyName(data, '', _intl.default.get('Empty'));
55
+ if (!Array.isArray(data)) return;
56
+ const {
57
+ sort_type,
58
+ type
59
+ } = chart.config;
60
+ if (type === _constants.CHART_TYPE.STACKED_HORIZONTAL_BAR && sort_type) {
61
+ data = (0, _columnUtils.sortDataByGroupSum)(data, sort_type);
62
+ }
63
+ this.draw(data);
64
+ (0, _utils.isFunction)(customRender) && customRender(this.chart);
65
+ this.renderHorizontalLabel(this.props.chart, this.props.tables, this.container);
66
+ };
67
+ this.draw = data => {
68
+ const {
69
+ chart,
70
+ globalTheme,
71
+ chartColorTheme,
72
+ tables
73
+ } = this.props;
74
+ const theme = _constants.CHART_THEME_COLOR[globalTheme];
75
+ const {
76
+ display_data,
77
+ label_font_size,
78
+ column_groupby_column_key,
79
+ table_id,
80
+ color_theme,
81
+ horizontal_axis_auto_range,
82
+ horizontal_axis_min,
83
+ horizontal_axis_max
84
+ } = chart.config;
85
+ const {
86
+ width: chartWidth,
87
+ height: chartHeight,
88
+ insertPadding,
89
+ marginRight
90
+ } = this.chartBoundingClientRect;
91
+ const groupByColumn = this.getColumn(tables, table_id, column_groupby_column_key);
92
+ const useSingleSelectColumnColor = (groupByColumn === null || groupByColumn === void 0 ? void 0 : groupByColumn.type) === _dtableUtils.CellType.SINGLE_SELECT && color_theme === _colorRules.SUPPORT_SINGLE_SELECT_THEMES_OPTIONS.SINGLE_SELECT_COLUMN_COLORS;
93
+ useSingleSelectColumnColor ? this.setSingleSelectColorMap(data) : this.setColorMap(data, chartColorTheme);
94
+ const fy = d3.scaleBand().domain(new Set(data.map(d => d.name))).range([chartHeight - insertPadding, insertPadding]).paddingInner(0.1);
95
+ const y = d3.scaleBand().domain(new Set(data.map(d => d.group_name))).range([0, fy.bandwidth()]);
96
+ const yAxis = this.chart.append('g').call(d3.axisLeft(fy).tickSizeOuter(0).tickPadding(0).tickSizeInner(5)).call(g => {
97
+ g.selectAll('.domain').attr('stroke', theme.XAxisColor);
98
+ g.selectAll('.tick line').attr('stroke', theme.XAxisColor);
99
+ g.selectAll('text').attr('font-size', theme.fontSize);
100
+ g.selectAll('text').attr('fill', theme.textColor);
101
+ // Update axis transform
102
+ const {
103
+ width: axisWidth
104
+ } = g.node().getBoundingClientRect();
105
+ g.attr('transform', "translate(".concat(axisWidth, ", 0)")).attr('data-axisWidth', axisWidth);
106
+ });
107
+ const niceEnd = d3.nice(0, d3.max(data, d => d.value), 5)[1];
108
+ const x = d3.scaleLinear().domain(horizontal_axis_auto_range ? [0, niceEnd] : [horizontal_axis_min || 0, horizontal_axis_max || niceEnd]).range([Number(yAxis.node().getAttribute('data-axisWidth')), chartWidth - insertPadding - marginRight]);
109
+ this.chart.append('g').attr('transform', "translate(0, ".concat(chartHeight - insertPadding, ")")).call(d3.axisBottom(x).tickSizeInner(0).ticks(5).tickFormat(d => d)).call(g => {
110
+ g.selectAll('.domain').remove();
111
+ g.selectAll('.tick line').node() && g.selectAll('.tick line').node().remove(); // delete the first line
112
+ g.selectAll('.tick line').attr('y2', -(chartHeight - insertPadding * 2)).attr('stroke', theme.gridColor).attr('stroke-dasharray', '8,3');
113
+ g.selectAll('text').attr('font-size', theme.fontSize);
114
+ g.selectAll('text').attr('fill', theme.textColor);
115
+ });
116
+
117
+ // Rect group
118
+ const rectsWrapper = this.chart.append('g').attr('class', "rects-wrapper-".concat(chart === null || chart === void 0 ? void 0 : chart.id)).attr('transform', "translate(".concat(Number(yAxis.node().getAttribute('data-axisWidth')), ", 0)"));
119
+ rectsWrapper.selectAll().data(d3.group(data, d => d.name)).join('g').attr('transform', _ref => {
120
+ let [name, dum] = _ref;
121
+ const offset = (fy.bandwidth() - dum.length * y.bandwidth()) / 2;
122
+ return "translate(0, ".concat(fy(name) + offset, ")");
123
+ })
124
+ // rect item
125
+ .selectAll().data(_ref2 => {
126
+ let [_, d] = _ref2;
127
+ return d;
128
+ }).join('rect').attr('x', 0).attr('y', (d, index) => index * y.bandwidth()).attr('width', d => x(d.value) - x(0)).attr('height', y.bandwidth()).attr('fill', d => {
129
+ return this.colorMap[d.group_name] || _constants.CHART_STYLE_COLORS[0];
130
+ }).attr('value', d => d.value).attr('data-slugid', d => d.slugId).attr('data-groupName', d => d.name).call(g => {
131
+ // add rect borderRadius
132
+ g.nodes().forEach(rect => {
133
+ this.addClipPath({
134
+ rect,
135
+ parentNode: rect.parentNode,
136
+ attr: 'x',
137
+ rectId: rect.getAttribute('data-slugid')
138
+ });
139
+ });
140
+
141
+ // Add label
142
+ g.nodes().forEach(rect => {
143
+ if (display_data) {
144
+ this.addLabelToRectRight({
145
+ container: rect.parentNode,
146
+ xWidth: Number(rect.getAttribute('width')),
147
+ yHeight: Number(rect.getAttribute('height')),
148
+ y: Number(rect.getAttribute('y')),
149
+ theme,
150
+ label_font_size,
151
+ text: Number(rect.getAttribute('value'))
152
+ });
153
+ }
154
+ });
155
+ }).on('click', (event, data) => {
156
+ this.props.toggleRecords(data);
157
+ }).on('mouseover', event => {
158
+ this.showTooltip(event);
159
+ this.handleAcitveAndInActiveState('inActive', event);
160
+ }).on('mousemove', event => {
161
+ this.moveTooltip(event);
162
+ }).on('mouseleave', event => {
163
+ this.hiddenTooltip();
164
+ this.handleAcitveAndInActiveState('active', event);
165
+ });
166
+ this.setLegend({
167
+ legendName: 'group_name',
168
+ theme,
169
+ legendPosition: 'top-left',
170
+ data,
171
+ groupColumn: this.props.columnGroupbyColumn
172
+ });
173
+ };
174
+ this.handleAcitveAndInActiveState = (state, event) => {
175
+ const allGroup = Array.from(event.currentTarget.parentNode.parentNode.children);
176
+ const curGroupName = event.currentTarget.getAttribute('data-groupName');
177
+ this.setActiveAndInActiveState(state, allGroup, curGroupName);
178
+ };
179
+ this.showTooltip = event => {
180
+ const {
181
+ offsetX,
182
+ offsetY
183
+ } = event;
184
+ const title = event.currentTarget.getAttribute('data-groupName');
185
+ const children = Array.from(event.currentTarget.parentNode.children).filter(item => item.tagName === 'rect');
186
+ const newTooltipData = {
187
+ title: !title && typeof title !== 'number' ? _intl.default.get(_constants.EMPTY_NAME) : title,
188
+ items: children.map(child => {
189
+ const data = child.__data__;
190
+ return {
191
+ color: this.colorMap[data.group_name] || _constants.CHART_STYLE_COLORS[0],
192
+ name: data.group_name,
193
+ value: data.value
194
+ };
195
+ })
196
+ };
197
+ this.setState({
198
+ tooltipData: newTooltipData
199
+ });
200
+ this.setState({
201
+ toolTipPosition: {
202
+ offsetX,
203
+ offsetY
204
+ }
205
+ });
206
+ };
207
+ this.moveTooltip = event => {
208
+ const {
209
+ offsetX,
210
+ offsetY
211
+ } = event;
212
+ this.setState({
213
+ toolTipPosition: {
214
+ offsetX,
215
+ offsetY
216
+ }
217
+ });
218
+ };
219
+ this.hiddenTooltip = event => {
220
+ this.setState({
221
+ toolTipPosition: null
222
+ });
223
+ };
224
+ this.chart = null;
225
+ this.state = {
226
+ tooltipData: null,
227
+ toolTipPosition: null
228
+ };
229
+ }
230
+ componentDidMount() {
231
+ this.createChart();
232
+ this.drawChart();
233
+ window.addEventListener('resize', this.handleResize);
234
+ }
235
+ componentDidUpdate(prevProps) {
236
+ super.componentDidUpdate(prevProps);
237
+ if (_utils.BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
238
+ this.chart.node() && this.chart.node().remove();
239
+ this.createChart();
240
+ this.drawChart();
241
+ }
242
+ }
243
+ componentWillUnmount() {
244
+ var _this$chart;
245
+ ((_this$chart = this.chart) === null || _this$chart === void 0 ? void 0 : _this$chart.autoPadding) && this.chart.destroy();
246
+ window.removeEventListener('resize', this.handleResize);
247
+ }
248
+ render() {
249
+ const {
250
+ chart
251
+ } = this.props;
252
+ const {
253
+ tooltipData,
254
+ toolTipPosition
255
+ } = this.state;
256
+ return /*#__PURE__*/_react.default.createElement("div", {
257
+ ref: ref => this.container = ref,
258
+ className: (0, _classnames.default)('sea-chart-container', {
259
+ 'show-x-axis-label': this.isShowHorizontalAxisLabel(chart),
260
+ 'show-y-axis-label': this.isShowVerticalAxisLabel(chart)
261
+ })
262
+ }, /*#__PURE__*/_react.default.createElement(_tooltip.default, {
263
+ tooltipData: tooltipData,
264
+ toolTipPosition: toolTipPosition,
265
+ chart: this.chart
266
+ }));
267
+ }
268
+ }
269
+ HorizontalBarGroup.propTypes = {
270
+ canvasStyle: _propTypes.default.object,
271
+ chart: _propTypes.default.object,
272
+ groupbyColumn: _propTypes.default.object,
273
+ columnGroupbyColumn: _propTypes.default.object,
274
+ summaryColumn: _propTypes.default.object,
275
+ result: _propTypes.default.array,
276
+ tables: _propTypes.default.array,
277
+ globalTheme: _propTypes.default.string,
278
+ chartColorTheme: _propTypes.default.string,
279
+ toggleRecords: _propTypes.default.func,
280
+ customRender: _propTypes.default.func
281
+ };
282
+ var _default = exports.default = HorizontalBarGroup;
@@ -0,0 +1,266 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _lodashEs = require("lodash-es");
12
+ var d3 = _interopRequireWildcard(require("d3"));
13
+ var _classnames = _interopRequireDefault(require("classnames"));
14
+ var _constants = require("../../constants");
15
+ var _utils = require("../../utils");
16
+ var _colorUtils = require("../../utils/color-utils");
17
+ var _intl = _interopRequireDefault(require("../../intl"));
18
+ var _tooltip = _interopRequireDefault(require("../../components/tooltip"));
19
+ var _chartComponent = _interopRequireDefault(require("./chart-component"));
20
+ class HorizontalBar extends _chartComponent.default {
21
+ constructor(props) {
22
+ super(props);
23
+ this.handleResize = () => {
24
+ this.chart.node() && this.chart.node().remove();
25
+ this.createChart();
26
+ this.drawChart();
27
+ };
28
+ this.createChart = () => {
29
+ const {
30
+ chart
31
+ } = this.props;
32
+ const {
33
+ show_horizontal_axis_label,
34
+ show_vertical_axis_label,
35
+ display_data
36
+ } = chart.config;
37
+ const initConfig = {
38
+ insertPadding: 30,
39
+ borderRadius: 0.2,
40
+ marginLeft: show_vertical_axis_label ? 20 : 0,
41
+ marginBottom: show_horizontal_axis_label ? 20 : 0,
42
+ marginRight: display_data ? 15 : 0
43
+ };
44
+ this.initChart(this.container, chart === null || chart === void 0 ? void 0 : chart.id, initConfig);
45
+ };
46
+ this.drawChart = () => {
47
+ let {
48
+ result: data,
49
+ customRender
50
+ } = this.props;
51
+ data = _utils.BaseUtils.formatEmptyName(data, '', _intl.default.get('Empty'));
52
+ if (!Array.isArray(data)) return;
53
+ this.draw(data);
54
+ (0, _utils.isFunction)(customRender) && customRender(this.chart);
55
+ this.renderHorizontalLabel(this.props.chart, this.props.tables, this.container);
56
+ };
57
+ this.draw = data => {
58
+ const {
59
+ chart,
60
+ globalTheme,
61
+ chartColorTheme,
62
+ tables
63
+ } = this.props;
64
+ const theme = _constants.CHART_THEME_COLOR[globalTheme];
65
+ const {
66
+ table_id,
67
+ horizontal_axis_summary_type,
68
+ horizontal_axis_column_key,
69
+ color_option,
70
+ horizontal_axis_label_color_rules,
71
+ horizontal_axis_label_color,
72
+ display_data,
73
+ label_font_size,
74
+ horizontal_axis_auto_range,
75
+ horizontal_axis_min,
76
+ horizontal_axis_max
77
+ } = chart.config;
78
+ const {
79
+ width: chartWidth,
80
+ height: chartHeight,
81
+ insertPadding,
82
+ marginRight
83
+ } = this.chartBoundingClientRect;
84
+ let chartBarColor = horizontal_axis_label_color || _constants.CHART_STYLE_COLORS[0];
85
+ if (chartColorTheme) {
86
+ chartBarColor = _utils.BaseUtils.getCurrentTheme(chartColorTheme).colors[0];
87
+ }
88
+ const colorRules = color_option === _constants.TYPE_COLOR_USING.USE_RULES && horizontal_axis_label_color_rules && (0, _colorUtils.getConvertedColorRules)(horizontal_axis_label_color_rules);
89
+ const tooltipTitle = this.getTitle(tables, table_id, horizontal_axis_summary_type, horizontal_axis_column_key);
90
+ data.reverse();
91
+ const y = d3.scaleBand().domain(data.map(item => item.name)).range([chartHeight - insertPadding, insertPadding]).paddingInner(0.1).paddingOuter(0.1);
92
+ const yAxis = this.chart.append('g').call(d3.axisLeft(y).tickSizeOuter(0).tickPadding(0).tickSizeInner(5)).call(g => {
93
+ g.selectAll('.domain').attr('stroke', theme.XAxisColor);
94
+ g.selectAll('.tick line').attr('stroke', theme.XAxisColor);
95
+ g.selectAll('text').attr('font-size', theme.fontSize);
96
+ g.selectAll('text').attr('fill', theme.textColor);
97
+ // Update axis transform
98
+ const {
99
+ width: axisWidth
100
+ } = g.node().getBoundingClientRect();
101
+ g.attr('transform', "translate(".concat(axisWidth, ", 0)")).attr('data-axisWidth', axisWidth);
102
+ });
103
+ const niceEnd = d3.nice(0, d3.max(data, d => d.value), 5)[1];
104
+ const x = d3.scaleLinear().domain(horizontal_axis_auto_range ? [0, niceEnd] : [horizontal_axis_min || 0, horizontal_axis_max || niceEnd]).range([Number(yAxis.node().getAttribute('data-axisWidth')), chartWidth - insertPadding - marginRight]);
105
+ this.chart.append('g').attr('transform', "translate(0, ".concat(chartHeight - insertPadding, ")")).call(d3.axisBottom(x).tickSizeInner(0).ticks(5)).call(g => {
106
+ g.selectAll('.domain').remove();
107
+ g.selectAll('.tick line').node() && g.selectAll('.tick line').node().remove(); // delete the first line
108
+ g.selectAll('.tick line').attr('y2', -(chartHeight - insertPadding * 2)).attr('stroke', theme.gridColor).attr('stroke-dasharray', '8,3');
109
+ g.selectAll('text').attr('font-size', theme.fontSize);
110
+ g.selectAll('text').attr('fill', theme.textColor);
111
+ });
112
+ const rectsWrapper = this.chart.append('g').attr('class', "rects-wrapper-".concat(chart === null || chart === void 0 ? void 0 : chart.id)).attr('transform', "translate(".concat(Number(yAxis.node().getAttribute('data-axisWidth')), ", 0)"));
113
+ rectsWrapper.selectAll().data(data).join('rect').attr('x', 0).attr('y', d => y(d.name)).attr('width', d => x(d.value) - x(0)).attr('height', y.bandwidth()).attr('fill', d => {
114
+ const color = (0, _colorUtils.getLabelColor)({
115
+ chart: chart.config,
116
+ colorRules,
117
+ value: d.value
118
+ });
119
+ return color || chartBarColor;
120
+ }).attr('value', d => d.value).attr('data-slugid', d => d.slugId).attr('data-groupName', d => d.name).call(g => {
121
+ // add rect borderRadius
122
+ g.nodes().forEach(rect => {
123
+ this.addClipPath({
124
+ rect,
125
+ parentNode: rect.parentNode,
126
+ attr: 'x',
127
+ rectId: rect.getAttribute('data-slugid')
128
+ });
129
+ });
130
+
131
+ // Add label
132
+ g.nodes().forEach(rect => {
133
+ if (display_data) {
134
+ this.addLabelToRectRight({
135
+ container: g._parents[0],
136
+ xWidth: Number(rect.getAttribute('width')),
137
+ yHeight: Number(rect.getAttribute('height')),
138
+ y: Number(rect.getAttribute('y')),
139
+ theme,
140
+ label_font_size,
141
+ text: Number(rect.getAttribute('value'))
142
+ });
143
+ }
144
+ });
145
+ }).on('click', (event, data) => {
146
+ this.props.toggleRecords(data);
147
+ }).on('mouseover', (event, data) => {
148
+ this.showTooltip(event, data, tooltipTitle, colorRules, chartBarColor);
149
+ this.handleAcitveAndInActiveState('inActive', event);
150
+ }).on('mousemove', event => {
151
+ this.moveTooltip(event);
152
+ }).on('mouseleave', (event, data) => {
153
+ this.hiddenTooltip();
154
+ this.handleAcitveAndInActiveState('active', event);
155
+ });
156
+ };
157
+ this.handleAcitveAndInActiveState = (state, event) => {
158
+ const allGroup = [event.currentTarget.parentNode];
159
+ const curGroupName = event.currentTarget.getAttribute('data-groupName');
160
+ this.setActiveAndInActiveState(state, allGroup, curGroupName);
161
+ };
162
+ this.showTooltip = (event, data, title, colorRules, chartBarColor) => {
163
+ const {
164
+ chart
165
+ } = this.props;
166
+ const {
167
+ offsetX,
168
+ offsetY
169
+ } = event;
170
+ const newTooltipData = {
171
+ title: title,
172
+ items: [{
173
+ color: (0, _colorUtils.getLabelColor)({
174
+ chart: chart.config,
175
+ colorRules,
176
+ value: data.value
177
+ }) || chartBarColor,
178
+ name: data.name,
179
+ value: data.value
180
+ }]
181
+ };
182
+ this.setState({
183
+ tooltipData: newTooltipData
184
+ });
185
+ this.setState({
186
+ toolTipPosition: {
187
+ offsetX,
188
+ offsetY
189
+ }
190
+ });
191
+ };
192
+ this.moveTooltip = event => {
193
+ const {
194
+ offsetX,
195
+ offsetY
196
+ } = event;
197
+ this.setState({
198
+ toolTipPosition: {
199
+ offsetX,
200
+ offsetY
201
+ }
202
+ });
203
+ };
204
+ this.hiddenTooltip = event => {
205
+ this.setState({
206
+ toolTipPosition: null
207
+ });
208
+ };
209
+ this.chart = null;
210
+ this.state = {
211
+ tooltipData: null,
212
+ toolTipPosition: null
213
+ };
214
+ }
215
+ componentDidMount() {
216
+ super.componentDidMount();
217
+ this.createChart();
218
+ this.drawChart();
219
+ this.debouncedHandleResize = (0, _lodashEs.debounce)(this.handleResize, 300);
220
+ window.addEventListener('resize', this.debouncedHandleResize);
221
+ }
222
+ componentDidUpdate(prevProps) {
223
+ super.componentDidUpdate(prevProps);
224
+ if (_utils.BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
225
+ this.drawChart();
226
+ }
227
+ }
228
+ componentWillUnmount() {
229
+ super.componentWillUnmount();
230
+ this.chart.node() && this.chart.node().remove();
231
+ window.removeEventListener('resize', this.debouncedHandleResize);
232
+ }
233
+ render() {
234
+ const {
235
+ chart
236
+ } = this.props;
237
+ const {
238
+ tooltipData,
239
+ toolTipPosition
240
+ } = this.state;
241
+ return /*#__PURE__*/_react.default.createElement("div", {
242
+ ref: ref => this.container = ref,
243
+ className: (0, _classnames.default)('sea-chart-container', {
244
+ 'show-x-axis-label': this.isShowHorizontalAxisLabel(chart),
245
+ 'show-y-axis-label': this.isShowVerticalAxisLabel(chart)
246
+ })
247
+ }, /*#__PURE__*/_react.default.createElement(_tooltip.default, {
248
+ tooltipData: tooltipData,
249
+ toolTipPosition: toolTipPosition,
250
+ chart: this.chart
251
+ }));
252
+ }
253
+ }
254
+ HorizontalBar.propTypes = {
255
+ canvasStyle: _propTypes.default.object,
256
+ chart: _propTypes.default.object,
257
+ groupbyColumn: _propTypes.default.object,
258
+ columnGroupbyColumn: _propTypes.default.object,
259
+ summaryColumn: _propTypes.default.object,
260
+ result: _propTypes.default.array,
261
+ tables: _propTypes.default.array,
262
+ globalTheme: _propTypes.default.string,
263
+ chartColorTheme: _propTypes.default.string,
264
+ toggleRecords: _propTypes.default.func
265
+ };
266
+ var _default = exports.default = HorizontalBar;
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _constants = require("../../constants");
11
+ var _utils = require("../../utils");
11
12
  var _statisticRecordDialog = _interopRequireDefault(require("../../components/statistic-record-dialog"));
12
13
  var _table = _interopRequireDefault(require("./table"));
13
14
  var _bar = _interopRequireDefault(require("./bar"));
@@ -15,6 +16,8 @@ var _barGroup = _interopRequireDefault(require("./bar-group"));
15
16
  var _barStack = _interopRequireDefault(require("./bar-stack"));
16
17
  var _barCompare = _interopRequireDefault(require("./bar-compare"));
17
18
  var _barCustomStack = _interopRequireDefault(require("./bar-custom-stack"));
19
+ var _horizontalBar = _interopRequireDefault(require("./horizontal-bar"));
20
+ var _horizontalBarGroup = _interopRequireDefault(require("./horizontal-bar-group"));
18
21
  var _basicNumberCard = _interopRequireDefault(require("./basic-number-card"));
19
22
  var _trend = _interopRequireDefault(require("./trend"));
20
23
  var _tableElement = _interopRequireDefault(require("./table-element"));
@@ -110,9 +113,10 @@ const Wrapper = _ref => {
110
113
  config
111
114
  } = chart;
112
115
  const {
113
- column_groupby_multiple_numeric_column
116
+ column_groupby_multiple_numeric_column,
117
+ column_groupby_column_key
114
118
  } = config;
115
- const BarGroupComponent = column_groupby_multiple_numeric_column ? _barStack.default : _barGroup.default;
119
+ const BarGroupComponent = column_groupby_column_key || column_groupby_multiple_numeric_column ? _barStack.default : _bar.default;
116
120
  return /*#__PURE__*/_react.default.createElement(BarGroupComponent, Object.assign({}, baseProps, {
117
121
  canvasStyle: canvasStyle
118
122
  }));
@@ -129,6 +133,30 @@ const Wrapper = _ref => {
129
133
  canvasStyle: canvasStyle
130
134
  }));
131
135
  }
136
+ case _constants.CHART_TYPE.HORIZONTAL_BAR:
137
+ {
138
+ return /*#__PURE__*/_react.default.createElement(_horizontalBar.default, Object.assign({}, baseProps, {
139
+ canvasStyle: canvasStyle
140
+ }));
141
+ }
142
+ case _constants.CHART_TYPE.HORIZONTAL_GROUP_BAR:
143
+ {
144
+ const {
145
+ config,
146
+ id,
147
+ style_config
148
+ } = chart;
149
+ const newConfig = _utils.BaseUtils.convertConfig(config);
150
+ const newChart = {
151
+ id,
152
+ config: newConfig,
153
+ style_config
154
+ };
155
+ return /*#__PURE__*/_react.default.createElement(_horizontalBarGroup.default, Object.assign({}, baseProps, {
156
+ canvasStyle: canvasStyle,
157
+ chart: newChart
158
+ }));
159
+ }
132
160
  case _constants.CHART_TYPE.BASIC_NUMBER_CARD:
133
161
  {
134
162
  return /*#__PURE__*/_react.default.createElement(_basicNumberCard.default, Object.assign({}, baseProps, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sea-chart",
3
- "version": "2.0.9",
3
+ "version": "2.0.11",
4
4
  "main": "./dist/index.js",
5
5
  "dependencies": {
6
6
  "@dnd-kit/core": "^6.1.0",