sea-chart 2.0.37 → 2.0.38

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 (304) hide show
  1. package/dist/api/index.js +20 -69
  2. package/dist/assets/css/sea-chart-d3-tooltip.css +0 -1
  3. package/dist/components/cell-factory/FormatterConfig.js +55 -62
  4. package/dist/components/cell-factory/SimpleCellFormatter.js +5 -12
  5. package/dist/components/cell-factory/SingleSelectOption.js +11 -18
  6. package/dist/components/cell-factory/cell-editor-factory.js +5 -12
  7. package/dist/components/cell-factory/cell-formatter-factory.js +4 -11
  8. package/dist/components/cell-factory/link-content.js +30 -38
  9. package/dist/components/chart-color-selector/color-selector.js +11 -18
  10. package/dist/components/collaborator/index.js +7 -14
  11. package/dist/components/color-picker/index.js +12 -19
  12. package/dist/components/color-popover/color-rules/color-rule.js +26 -34
  13. package/dist/components/color-popover/color-rules/index.js +7 -15
  14. package/dist/components/color-popover/color-rules/rule-filters/filter.js +27 -34
  15. package/dist/components/color-popover/color-rules/rule-filters/index.js +17 -25
  16. package/dist/components/color-popover/color-rules/rule-filters/number-input.js +9 -17
  17. package/dist/components/color-popover/color-rules-popover.js +31 -37
  18. package/dist/components/color-popover/color-selector-popover.js +12 -20
  19. package/dist/components/color-setting/color-group-selector.js +13 -21
  20. package/dist/components/common-add-tool/index.js +8 -15
  21. package/dist/components/data-process-setter/data-setting-header.js +7 -14
  22. package/dist/components/data-process-setter/hide-column-setter.js +13 -20
  23. package/dist/components/data-process-setter/index.js +4 -27
  24. package/dist/components/data-process-setter/sort-setter.js +18 -26
  25. package/dist/components/draggable/Draggable.js +7 -13
  26. package/dist/components/drill-down-settings/drill-down-fields-popover/index.js +41 -48
  27. package/dist/components/drill-down-settings/drill-down-fields-settings/index.js +10 -18
  28. package/dist/components/drill-down-settings/index.js +11 -18
  29. package/dist/components/dtable-popover/index.js +13 -20
  30. package/dist/components/dtable-search-input/index.js +13 -21
  31. package/dist/components/font-settings/index.js +14 -22
  32. package/dist/components/goal-line-setting/goal-setting-item.js +6 -14
  33. package/dist/components/goal-line-setting/index.js +12 -19
  34. package/dist/components/highlighter/highlighter.js +7 -14
  35. package/dist/components/icon/index.js +12 -23
  36. package/dist/components/index.js +7 -48
  37. package/dist/components/loading/index.js +6 -13
  38. package/dist/components/number-input/index.js +11 -24
  39. package/dist/components/pixel-editor/index.js +15 -23
  40. package/dist/components/popover/hide-column-popover/hide-column-popover-widgets/hide-column-item.js +13 -16
  41. package/dist/components/popover/hide-column-popover/hide-column-popover.css +5 -1
  42. package/dist/components/popover/hide-column-popover/hide-column-popover.js +28 -38
  43. package/dist/components/popover/sort-popover/sort-popover-widgets/sort-utils.js +9 -18
  44. package/dist/components/popover/sort-popover/sort-popover.js +58 -69
  45. package/dist/components/resize-handle/ResizeHandle.js +6 -13
  46. package/dist/components/row-card/row-card-header-cell.js +17 -24
  47. package/dist/components/row-card/row-card-header.js +15 -22
  48. package/dist/components/row-card/row-card-item.js +35 -43
  49. package/dist/components/row-card/row-card.js +17 -25
  50. package/dist/components/statistic-record-dialog/index.js +61 -68
  51. package/dist/components/tooltip/index.js +39 -28
  52. package/dist/components/types-dialog/index.js +62 -70
  53. package/dist/components/types-dialog/use-force-update.js +4 -10
  54. package/dist/constants/color-rules.js +8 -14
  55. package/dist/constants/common-constants.js +8 -14
  56. package/dist/constants/error.js +2 -8
  57. package/dist/constants/geolocation.js +9 -15
  58. package/dist/constants/index.js +142 -271
  59. package/dist/constants/key-codes.js +0 -2
  60. package/dist/constants/model.js +3 -9
  61. package/dist/constants/regions.js +3 -8
  62. package/dist/constants/style.js +6 -12
  63. package/dist/constants/table.js +1 -7
  64. package/dist/constants/type-image.js +33 -39
  65. package/dist/constants/type.js +3 -9
  66. package/dist/context.js +13 -20
  67. package/dist/editor/index.js +13 -16
  68. package/dist/index.js +13 -104
  69. package/dist/intl.js +10 -17
  70. package/dist/locale/index.js +16 -23
  71. package/dist/locale/lang/de.js +2 -7
  72. package/dist/locale/lang/en.js +2 -7
  73. package/dist/locale/lang/es.js +2 -7
  74. package/dist/locale/lang/fr.js +2 -7
  75. package/dist/locale/lang/pt.js +2 -7
  76. package/dist/locale/lang/ru.js +2 -7
  77. package/dist/locale/lang/zh_CN.js +2 -7
  78. package/dist/model/area-group.js +12 -19
  79. package/dist/model/area.js +12 -19
  80. package/dist/model/bar-custom.js +11 -18
  81. package/dist/model/bar-group.js +12 -19
  82. package/dist/model/bar-stack.js +10 -17
  83. package/dist/model/bar.js +11 -18
  84. package/dist/model/base-model.js +4 -11
  85. package/dist/model/basic-number-card.js +13 -20
  86. package/dist/model/chart.js +7 -13
  87. package/dist/model/combination.js +15 -22
  88. package/dist/model/compare-bar.js +14 -21
  89. package/dist/model/completeness-group.js +11 -18
  90. package/dist/model/completeness.js +10 -17
  91. package/dist/model/dashboard.js +7 -14
  92. package/dist/model/funnel.js +14 -21
  93. package/dist/model/generic-model.js +135 -143
  94. package/dist/model/heat-map.js +9 -16
  95. package/dist/model/horizontal-bar.js +11 -18
  96. package/dist/model/horizontal-group-bar.js +10 -17
  97. package/dist/model/index.js +69 -93
  98. package/dist/model/line-group.js +13 -20
  99. package/dist/model/line.js +12 -19
  100. package/dist/model/map-bubble.js +14 -17
  101. package/dist/model/map.js +12 -19
  102. package/dist/model/mirror.js +13 -20
  103. package/dist/model/pie.js +12 -19
  104. package/dist/model/ring.js +12 -19
  105. package/dist/model/scatter.js +10 -17
  106. package/dist/model/stacked-horizontal-bar.js +11 -18
  107. package/dist/model/table-element.js +5 -12
  108. package/dist/model/table.js +7 -14
  109. package/dist/model/tree-map.js +7 -14
  110. package/dist/model/trend.js +11 -18
  111. package/dist/model/user.js +1 -7
  112. package/dist/model/world-map-bubble.js +12 -19
  113. package/dist/model/world-map.js +12 -19
  114. package/dist/services/map-json.js +14 -17
  115. package/dist/settings/advance-bar-settings/data-settings.js +36 -44
  116. package/dist/settings/advance-bar-settings/index.js +3 -20
  117. package/dist/settings/advance-bar-settings/style-settings.js +66 -73
  118. package/dist/settings/bar-settings/data-settings.js +39 -47
  119. package/dist/settings/bar-settings/index.js +3 -20
  120. package/dist/settings/bar-settings/style-settings.js +51 -59
  121. package/dist/settings/basic-number-card/data-settings.js +50 -57
  122. package/dist/settings/basic-number-card/index.js +3 -20
  123. package/dist/settings/basic-number-card/style-settings.js +19 -27
  124. package/dist/settings/combination-settings/data-settings.js +55 -64
  125. package/dist/settings/combination-settings/index.js +3 -20
  126. package/dist/settings/combination-settings/style-settings.js +67 -75
  127. package/dist/settings/completeness-settings/callbacks/callbacks.js +16 -27
  128. package/dist/settings/completeness-settings/data-settings/completion-settings.js +21 -28
  129. package/dist/settings/completeness-settings/data-settings/data-settings.js +25 -32
  130. package/dist/settings/completeness-settings/index.js +3 -20
  131. package/dist/settings/completeness-settings/style-settings.js +19 -26
  132. package/dist/settings/dashboard-settings/data-settings.js +44 -51
  133. package/dist/settings/dashboard-settings/index.js +2 -13
  134. package/dist/settings/data-settings.js +72 -79
  135. package/dist/settings/funnel-settings/components/dnd-item/dnd-item.js +12 -19
  136. package/dist/settings/funnel-settings/components/dnd-list.js +15 -23
  137. package/dist/settings/funnel-settings/components/funnel-label-setting.js +32 -40
  138. package/dist/settings/funnel-settings/components/funnel-layer-setting.js +22 -30
  139. package/dist/settings/funnel-settings/data-settings.js +23 -31
  140. package/dist/settings/funnel-settings/index.js +3 -20
  141. package/dist/settings/funnel-settings/style-settings.js +11 -19
  142. package/dist/settings/heat-map-settings/data-settings.js +18 -26
  143. package/dist/settings/heat-map-settings/index.js +3 -20
  144. package/dist/settings/heat-map-settings/style-settings.js +18 -26
  145. package/dist/settings/horizontal-bar-settings/data-settings.js +12 -19
  146. package/dist/settings/horizontal-bar-settings/index.js +3 -20
  147. package/dist/settings/horizontal-bar-settings/style-settings.js +12 -19
  148. package/dist/settings/index.js +57 -70
  149. package/dist/settings/map-settings/components/location-field-selector.js +10 -17
  150. package/dist/settings/map-settings/components/map-level-selector.js +11 -18
  151. package/dist/settings/map-settings/components/map-province-city-selector.js +19 -26
  152. package/dist/settings/map-settings/index.js +3 -20
  153. package/dist/settings/map-settings/map-data-settings.js +23 -30
  154. package/dist/settings/map-settings/map-style-settings.js +27 -35
  155. package/dist/settings/mirror-settings/data-settings.js +26 -34
  156. package/dist/settings/mirror-settings/index.js +2 -13
  157. package/dist/settings/pie-settings/data-settings.js +33 -41
  158. package/dist/settings/pie-settings/index.js +3 -20
  159. package/dist/settings/pie-settings/style-settings.js +47 -55
  160. package/dist/settings/scatter/data-settings.js +27 -34
  161. package/dist/settings/scatter/index.js +3 -12
  162. package/dist/settings/stacks-settings/index.js +19 -27
  163. package/dist/settings/stacks-settings/stack-item-settings.js +19 -27
  164. package/dist/settings/style-settings.js +65 -73
  165. package/dist/settings/table-element-settings/components/data-filter.js +49 -58
  166. package/dist/settings/table-element-settings/data-settings.js +21 -29
  167. package/dist/settings/table-element-settings/index.css +1 -31
  168. package/dist/settings/table-element-settings/index.js +2 -13
  169. package/dist/settings/table-settings/data-settings.js +113 -120
  170. package/dist/settings/table-settings/index.js +2 -13
  171. package/dist/settings/time-comparison-settings/data-settings.js +43 -51
  172. package/dist/settings/time-comparison-settings/index.js +3 -20
  173. package/dist/settings/time-comparison-settings/style-settings.js +44 -52
  174. package/dist/settings/trend-settings/data-settings.js +24 -32
  175. package/dist/settings/trend-settings/index.js +3 -20
  176. package/dist/settings/trend-settings/style-setting.js +19 -27
  177. package/dist/settings/widgets/basic-summary/index.js +59 -66
  178. package/dist/settings/widgets/chart-type/index.js +18 -26
  179. package/dist/settings/widgets/color-settings/index.js +72 -80
  180. package/dist/settings/widgets/common-data-settings.js +27 -34
  181. package/dist/settings/widgets/data-filter/index.js +59 -59
  182. package/dist/settings/widgets/data-sort.js +16 -24
  183. package/dist/settings/widgets/date-summary-item.js +26 -34
  184. package/dist/settings/widgets/display-values-settings/index.js +14 -22
  185. package/dist/settings/widgets/divider/index.js +8 -16
  186. package/dist/settings/widgets/font-settings/font-color-settings.js +11 -19
  187. package/dist/settings/widgets/font-settings/font-size-settings.js +14 -22
  188. package/dist/settings/widgets/font-settings/font-weight-settings.js +17 -25
  189. package/dist/settings/widgets/font-settings/index.js +4 -27
  190. package/dist/settings/widgets/group-by.js +52 -59
  191. package/dist/settings/widgets/min-max-setting.js +10 -18
  192. package/dist/settings/widgets/mininum-slice-percent.js +10 -18
  193. package/dist/settings/widgets/numeric-summary-item.js +25 -33
  194. package/dist/settings/widgets/select-line-type/index.js +10 -17
  195. package/dist/settings/widgets/select-table/index.js +9 -16
  196. package/dist/settings/widgets/select-view/index.js +20 -28
  197. package/dist/settings/widgets/stack.js +14 -22
  198. package/dist/settings/widgets/summary-method-setting.js +17 -25
  199. package/dist/settings/widgets/summary-settings.js +75 -82
  200. package/dist/settings/widgets/switch/index.js +9 -16
  201. package/dist/settings/widgets/text-horizontal-settings.js +15 -23
  202. package/dist/settings/widgets/time-picker.js +29 -37
  203. package/dist/settings/widgets/title-settings/index.js +29 -37
  204. package/dist/settings/widgets/title-settings/title-text.js +5 -12
  205. package/dist/settings/widgets/x-axios.js +0 -1
  206. package/dist/settings/widgets/y-axis-group-settings.js +65 -72
  207. package/dist/utils/cell-format-utils.js +25 -33
  208. package/dist/utils/cell-value-utils.js +4 -11
  209. package/dist/utils/chart-utils/base-utils.js +467 -367
  210. package/dist/utils/chart-utils/index.js +29 -40
  211. package/dist/utils/chart-utils/original-data-utils/basic-chart-calculator.js +78 -85
  212. package/dist/utils/chart-utils/original-data-utils/card-calculator.js +20 -21
  213. package/dist/utils/chart-utils/original-data-utils/combination-calculator.js +45 -52
  214. package/dist/utils/chart-utils/original-data-utils/compare-bar-chart-calculator.js +21 -28
  215. package/dist/utils/chart-utils/original-data-utils/completeness-calculator.js +33 -40
  216. package/dist/utils/chart-utils/original-data-utils/dashboard-calculator.js +28 -26
  217. package/dist/utils/chart-utils/original-data-utils/index.js +50 -57
  218. package/dist/utils/chart-utils/original-data-utils/mirror-calculator.js +19 -26
  219. package/dist/utils/chart-utils/original-data-utils/pivot-table-calculator.js +94 -97
  220. package/dist/utils/chart-utils/original-data-utils/scatter-calculator.js +19 -25
  221. package/dist/utils/chart-utils/original-data-utils/trend-calculator.js +50 -36
  222. package/dist/utils/chart-utils/sql-statistics-utils.js +385 -388
  223. package/dist/utils/chart.js +9 -17
  224. package/dist/utils/collaborator-manager.js +3 -9
  225. package/dist/utils/collaborator-utils.js +19 -31
  226. package/dist/utils/collaborator.js +6 -15
  227. package/dist/utils/color-utils.js +18 -29
  228. package/dist/utils/column-utils.js +88 -102
  229. package/dist/utils/common-utils.js +28 -53
  230. package/dist/utils/concurrency-manager.js +1 -7
  231. package/dist/utils/contexts.js +7 -11
  232. package/dist/utils/date-translate.js +12 -20
  233. package/dist/utils/digital-sign-utils.js +7 -14
  234. package/dist/utils/event-bus.js +1 -7
  235. package/dist/utils/hotkey.js +5 -11
  236. package/dist/utils/index.js +73 -219
  237. package/dist/utils/key-generator.js +2 -9
  238. package/dist/utils/map.js +22 -31
  239. package/dist/utils/object-utils.js +2 -8
  240. package/dist/utils/options-utils.js +10 -18
  241. package/dist/utils/row-record-utils.js +251 -183
  242. package/dist/utils/row-utils.js +27 -38
  243. package/dist/utils/search.js +24 -32
  244. package/dist/utils/sql/chart-data-sql.js +106 -112
  245. package/dist/utils/sql/column-2-sql-column.js +162 -172
  246. package/dist/utils/sql/index.js +3 -27
  247. package/dist/utils/trend-utils.js +50 -45
  248. package/dist/view/index.css +2 -8
  249. package/dist/view/index.js +102 -103
  250. package/dist/view/title/index.js +16 -24
  251. package/dist/view/wrapper/area-group.js +57 -57
  252. package/dist/view/wrapper/area.js +43 -51
  253. package/dist/view/wrapper/bar-compare.js +56 -48
  254. package/dist/view/wrapper/bar-custom-stack.js +73 -55
  255. package/dist/view/wrapper/bar-group.js +94 -73
  256. package/dist/view/wrapper/bar-stack.js +49 -57
  257. package/dist/view/wrapper/bar.js +40 -48
  258. package/dist/view/wrapper/basic-number-card.js +50 -34
  259. package/dist/view/wrapper/chart-component.js +164 -569
  260. package/dist/view/wrapper/combination.js +55 -63
  261. package/dist/view/wrapper/completeness-group.js +140 -93
  262. package/dist/view/wrapper/completeness.js +36 -44
  263. package/dist/view/wrapper/dashboard.js +104 -59
  264. package/dist/view/wrapper/funnel.js +40 -43
  265. package/dist/view/wrapper/heat-map.js +62 -70
  266. package/dist/view/wrapper/horizontal-bar-group.js +70 -58
  267. package/dist/view/wrapper/horizontal-bar-stack.js +48 -56
  268. package/dist/view/wrapper/horizontal-bar.js +41 -49
  269. package/dist/view/wrapper/index.js +107 -115
  270. package/dist/view/wrapper/line-group.js +49 -52
  271. package/dist/view/wrapper/line.js +42 -50
  272. package/dist/view/wrapper/map-bubble.js +40 -48
  273. package/dist/view/wrapper/map-world-bubble.js +40 -47
  274. package/dist/view/wrapper/map-world.js +42 -49
  275. package/dist/view/wrapper/map.js +42 -50
  276. package/dist/view/wrapper/mirror.js +41 -49
  277. package/dist/view/wrapper/pie.js +45 -53
  278. package/dist/view/wrapper/ring.js +50 -58
  279. package/dist/view/wrapper/scatter.js +50 -56
  280. package/dist/view/wrapper/table/index.js +14 -22
  281. package/dist/view/wrapper/table/one-dimension-table-no-numeric-columns.js +49 -57
  282. package/dist/view/wrapper/table/one-dimension-table-with-numeric-columns.js +53 -61
  283. package/dist/view/wrapper/table/pivot-table-display-name.js +82 -90
  284. package/dist/view/wrapper/table/two-dimension-table.js +85 -92
  285. package/dist/view/wrapper/table-element/components/dataset-utils.js +23 -36
  286. package/dist/view/wrapper/table-element/components/formatter.js +90 -99
  287. package/dist/view/wrapper/table-element/components/formatters/FileFormatter/index.js +23 -32
  288. package/dist/view/wrapper/table-element/components/formatters/formula-formatter.js +9 -16
  289. package/dist/view/wrapper/table-element/components/formatters/link-formatter.js +90 -97
  290. package/dist/view/wrapper/table-element/components/formula-formatter.js +9 -16
  291. package/dist/view/wrapper/table-element/components/link-formatter.js +90 -97
  292. package/dist/view/wrapper/table-element/components/record.js +13 -20
  293. package/dist/view/wrapper/table-element/components/records-body.js +9 -17
  294. package/dist/view/wrapper/table-element/components/records-header/index.js +7 -16
  295. package/dist/view/wrapper/table-element/components/records-header/records-header-cell.js +8 -16
  296. package/dist/view/wrapper/table-element/components/records.js +25 -33
  297. package/dist/view/wrapper/table-element/components/resize-column-handle/resize-column-handle.js +8 -13
  298. package/dist/view/wrapper/table-element/components/utils.js +6 -16
  299. package/dist/view/wrapper/table-element/components/value-display-utils.js +4 -11
  300. package/dist/view/wrapper/table-element/components/vertical-scrollbar/index.js +6 -13
  301. package/dist/view/wrapper/table-element/index.js +30 -43
  302. package/dist/view/wrapper/treemap.js +38 -46
  303. package/dist/view/wrapper/trend.js +80 -65
  304. package/package.json +15 -12
@@ -1,22 +1,14 @@
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 d3 = _interopRequireWildcard(require("d3"));
12
- var _classnames = _interopRequireDefault(require("classnames"));
13
- var _dtableUtils = require("dtable-utils");
14
- var _constants = require("../../constants");
15
- var _chartUtils = require("../../utils/chart-utils");
16
- var _intl = _interopRequireDefault(require("../../intl"));
17
- var _tooltip = _interopRequireDefault(require("../../components/tooltip"));
18
- var _chartComponent = _interopRequireDefault(require("./chart-component"));
19
- class BarCompare extends _chartComponent.default {
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import * as d3 from 'd3';
4
+ import classNames from 'classnames';
5
+ import { getNumberDisplayString } from 'dtable-utils';
6
+ import { CHART_SUMMARY_SHOW, TITLE_AMOUNT, TITLE_INCREASE, CHART_THEME_COLOR } from '../../constants';
7
+ import { BaseUtils } from '../../utils/chart-utils';
8
+ import intl from '../../intl';
9
+ import ToolTip from '../../components/tooltip';
10
+ import ChartComponent from './chart-component';
11
+ class BarCompare extends ChartComponent {
20
12
  constructor(props) {
21
13
  super(props);
22
14
  this.createChart = () => {
@@ -39,7 +31,7 @@ class BarCompare extends _chartComponent.default {
39
31
  let {
40
32
  result: data
41
33
  } = this.props;
42
- data = _chartUtils.BaseUtils.formatEmptyName(data, '', _intl.default.get('Empty'));
34
+ data = BaseUtils.formatEmptyName(data, '', intl.get('Empty'));
43
35
  if (!Array.isArray(data)) return;
44
36
  this.draw(data);
45
37
  this.renderAxisLabel(this.props.chart, this.props.tables, this.container);
@@ -51,7 +43,7 @@ class BarCompare extends _chartComponent.default {
51
43
  chartColorTheme,
52
44
  columnGroupbyColumn
53
45
  } = this.props;
54
- const theme = _constants.CHART_THEME_COLOR[globalTheme];
46
+ const theme = CHART_THEME_COLOR[globalTheme];
55
47
  const {
56
48
  display_increase,
57
49
  y_axis_auto_range = true,
@@ -68,13 +60,13 @@ class BarCompare extends _chartComponent.default {
68
60
  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]);
69
61
 
70
62
  // Y axis
71
- 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 => _chartUtils.BaseUtils.getSummaryValueDisplayString(columnGroupbyColumn, d, y_axis_summary_method))).call(g => this.drawYaxis(g, theme));
63
+ this.chart.append('g').attr('class', 'y-axis-wrapper').attr('transform', `translate(${insertPadding},0)`).call(d3.axisLeft(y).tickSizeInner(0).ticks(5).tickFormat(d => BaseUtils.getSummaryValueDisplayString(columnGroupbyColumn, d, y_axis_summary_method))).call(g => this.drawYaxis(g, theme));
72
64
  const fx = d3.scaleBand().domain(d3.group(data, d => d.name).keys()).range([insertPadding + this.horizontalOverflowOffset, chartWidth - insertPadding]).paddingInner(0.5).paddingOuter(0.1);
73
- const color = d3.scaleOrdinal().domain(d3.group(data, d => d.group_name).keys()).range(_chartUtils.BaseUtils.getCurrentTheme(chartColorTheme).colors).unknown('#ccc');
65
+ const color = d3.scaleOrdinal().domain(d3.group(data, d => d.group_name).keys()).range(BaseUtils.getCurrentTheme(chartColorTheme).colors).unknown('#ccc');
74
66
  const x = d3.scaleBand().domain(d3.group(data, d => d.group_name).keys()).range([0, fx.bandwidth()]).paddingInner(0).paddingOuter(0);
75
67
 
76
68
  // X axis
77
- this.chart.append('g').attr('class', 'x-axis-wrapper').attr('transform', "translate(0,".concat(chartHeight - insertPadding, ")")).call(d3.axisBottom(fx).tickSizeOuter(0).tickSizeInner(5)).call(g => {
69
+ this.chart.append('g').attr('class', 'x-axis-wrapper').attr('transform', `translate(0,${chartHeight - insertPadding})`).call(d3.axisBottom(fx).tickSizeOuter(0).tickSizeInner(5)).call(g => {
78
70
  g.selectAll('.domain').attr('stroke', theme.XAxisColor);
79
71
  g.selectAll('.tick line').attr('stroke', theme.XAxisColor);
80
72
  g.selectAll('text').attr('font-size', theme.fontSize);
@@ -87,7 +79,7 @@ class BarCompare extends _chartComponent.default {
87
79
  let [name, dum] = _ref;
88
80
  // Each group is horizontally centered
89
81
  const offset = (fx.bandwidth() - dum.length * x.bandwidth()) / 2;
90
- return "translate(".concat(fx(name) + offset, ",0)");
82
+ return `translate(${fx(name) + offset},0)`;
91
83
  })
92
84
  // rect item
93
85
  .selectAll().data(_ref2 => {
@@ -140,7 +132,7 @@ class BarCompare extends _chartComponent.default {
140
132
  if (isCircle) {
141
133
  const circleEl = event.target;
142
134
  newTooltipData = {
143
- title: _intl.default.get(_constants.TITLE_INCREASE),
135
+ title: intl.get(TITLE_INCREASE),
144
136
  items: [{
145
137
  color: increase_line_color || '#fbd44a',
146
138
  name: circleEl.getAttribute('data-name'),
@@ -151,7 +143,7 @@ class BarCompare extends _chartComponent.default {
151
143
  const curGroup = event.target.parentNode;
152
144
  const [, data] = curGroup.__data__;
153
145
  newTooltipData = {
154
- title: y_axis_summary_type === 'count' ? _intl.default.get(_constants.TITLE_AMOUNT) : _intl.default.get(_constants.CHART_SUMMARY_SHOW[y_axis_summary_method]),
146
+ title: y_axis_summary_type === 'count' ? intl.get(TITLE_AMOUNT) : intl.get(CHART_SUMMARY_SHOW[y_axis_summary_method]),
155
147
  items: data.map(item => {
156
148
  return {
157
149
  color: colorScale(item.group_name),
@@ -193,10 +185,9 @@ class BarCompare extends _chartComponent.default {
193
185
  chart,
194
186
  globalTheme
195
187
  } = this.props;
196
- const theme = _constants.CHART_THEME_COLOR[globalTheme];
188
+ const theme = CHART_THEME_COLOR[globalTheme];
197
189
  const {
198
190
  label_font_size,
199
- y_axis_auto_range,
200
191
  y_axis_min,
201
192
  y_axis_max,
202
193
  increase_line_color,
@@ -207,9 +198,26 @@ class BarCompare extends _chartComponent.default {
207
198
  height: chartHeight,
208
199
  insertPadding
209
200
  } = this.chartBoundingClientRect;
201
+ if (!Array.isArray(increaseData) || increaseData.length === 0) return;
210
202
  const circleData = increaseData.map(() => ({}));
211
203
  const lineX = d3.scaleBand().domain(increaseData.map(d => d.name)).range([insertPadding + this.horizontalOverflowOffset, chartWidth - insertPadding]).paddingInner(0.5).paddingOuter(0.1);
212
- const lineY = d3.scaleLinear().domain(y_axis_auto_range ? [d3.min(increaseData, d => d.value), d3.max(increaseData, d => d.value)] : [y_axis_min, y_axis_max]).range([chartHeight - insertPadding, insertPadding]);
204
+ const autoMin = d3.min(increaseData, d => d.value);
205
+ const autoMax = d3.max(increaseData, d => d.value);
206
+ let min, max;
207
+ if (!(y_axis_min && y_axis_max)) {
208
+ min = autoMin;
209
+ max = autoMax;
210
+ } else {
211
+ min = y_axis_min;
212
+ max = y_axis_max;
213
+ }
214
+ let yDomain = [min, max];
215
+ // avoid y axis range is invalid
216
+ if (min === max) {
217
+ const padding = min === 0 ? 1 : Math.max(Math.abs(min) * 0.1, 0.1);
218
+ yDomain = [min - padding, max + padding];
219
+ }
220
+ const lineY = d3.scaleLinear().domain(yDomain).range([chartHeight - insertPadding, insertPadding]);
213
221
  const line = d3.line().x((d, index) => {
214
222
  const x = lineX(d.name) + lineX.bandwidth() / 2;
215
223
  circleData[index]['x'] = x;
@@ -232,13 +240,13 @@ class BarCompare extends _chartComponent.default {
232
240
  // circle label
233
241
  if (display_increase_percentage) {
234
242
  const curCircleEl = g.node();
235
- wrapper.append('text').attr('stroke', '#fff').attr('stroke-width', 1).attr('paint-order', 'stroke').attr('fill', theme.labelColor).attr('font-size', _chartUtils.BaseUtils.getLabelFontSize(label_font_size)).text(curCircleEl.getAttribute('data-text')).call(g => {
243
+ wrapper.append('text').attr('stroke', '#fff').attr('stroke-width', 1).attr('paint-order', 'stroke').attr('fill', theme.labelColor).attr('font-size', BaseUtils.getLabelFontSize(label_font_size)).text(curCircleEl.getAttribute('data-text')).call(g => {
236
244
  const {
237
245
  width
238
246
  } = g.node().getBoundingClientRect();
239
247
  const translateX = Number(curCircleEl.getAttribute('cx')) - width / 2;
240
248
  const translateY = Number(curCircleEl.getAttribute('cy')) - 10;
241
- g.attr('transform', "translate(".concat(translateX, ", ").concat(translateY, ")"));
249
+ g.attr('transform', `translate(${translateX}, ${translateY})`);
242
250
  });
243
251
  }
244
252
  }).on('mouseover', event => {
@@ -259,7 +267,7 @@ class BarCompare extends _chartComponent.default {
259
267
  const increaseValue = value.filter(d => (d === null || d === void 0 ? void 0 : d.increase_value) !== undefined) || [{
260
268
  increaseValue: 0
261
269
  }];
262
- const formatValue = (0, _dtableUtils.getNumberDisplayString)((_increaseValue$ = increaseValue[0]) === null || _increaseValue$ === void 0 ? void 0 : _increaseValue$.increase_value, {
270
+ const formatValue = getNumberDisplayString((_increaseValue$ = increaseValue[0]) === null || _increaseValue$ === void 0 ? void 0 : _increaseValue$.increase_value, {
263
271
  format: 'percent'
264
272
  });
265
273
  const data = {
@@ -298,7 +306,7 @@ class BarCompare extends _chartComponent.default {
298
306
  }
299
307
  componentDidUpdate(prevProps) {
300
308
  super.componentDidUpdate(prevProps);
301
- if (_chartUtils.BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
309
+ if (BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
302
310
  this.destroyChart();
303
311
  this.createChart();
304
312
  this.drawChart();
@@ -315,13 +323,13 @@ class BarCompare extends _chartComponent.default {
315
323
  tooltipData,
316
324
  toolTipPosition
317
325
  } = this.state;
318
- return /*#__PURE__*/_react.default.createElement("div", {
326
+ return /*#__PURE__*/React.createElement("div", {
319
327
  ref: ref => this.container = ref,
320
- className: (0, _classnames.default)('sea-chart-container', {
328
+ className: classNames('sea-chart-container', {
321
329
  'show-x-axis-label': this.isShowXAxisLabel(chart),
322
330
  'show-y-axis-label': this.isShowYAxisLabel(chart)
323
331
  })
324
- }, /*#__PURE__*/_react.default.createElement(_tooltip.default, {
332
+ }, /*#__PURE__*/React.createElement(ToolTip, {
325
333
  tooltipData: tooltipData,
326
334
  toolTipPosition: toolTipPosition,
327
335
  chart: this.chart
@@ -329,15 +337,15 @@ class BarCompare extends _chartComponent.default {
329
337
  }
330
338
  }
331
339
  BarCompare.propTypes = {
332
- canvasStyle: _propTypes.default.object,
333
- chart: _propTypes.default.object,
334
- groupbyColumn: _propTypes.default.object,
335
- columnGroupbyColumn: _propTypes.default.object,
336
- summaryColumn: _propTypes.default.object,
337
- result: _propTypes.default.array,
338
- tables: _propTypes.default.array,
339
- globalTheme: _propTypes.default.string,
340
- chartColorTheme: _propTypes.default.string,
341
- toggleRecords: _propTypes.default.func
340
+ canvasStyle: PropTypes.object,
341
+ chart: PropTypes.object,
342
+ groupbyColumn: PropTypes.object,
343
+ columnGroupbyColumn: PropTypes.object,
344
+ summaryColumn: PropTypes.object,
345
+ result: PropTypes.array,
346
+ tables: PropTypes.array,
347
+ globalTheme: PropTypes.string,
348
+ chartColorTheme: PropTypes.string,
349
+ toggleRecords: PropTypes.func
342
350
  };
343
- var _default = exports.default = BarCompare;
351
+ export default BarCompare;
@@ -1,26 +1,18 @@
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 _slugid = _interopRequireDefault(require("slugid"));
14
- var _classnames = _interopRequireDefault(require("classnames"));
15
- var _intl = _interopRequireDefault(require("../../intl"));
16
- var _chartUtils = require("../../utils/chart-utils");
17
- var _constants = require("../../constants");
18
- var _tooltip = _interopRequireDefault(require("../../components/tooltip"));
19
- var _chartComponent = _interopRequireDefault(require("./chart-component"));
20
- class BarCustom extends _chartComponent.default {
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { debounce } from 'lodash-es';
4
+ import * as d3 from 'd3';
5
+ import slugid from 'slugid';
6
+ import classNames from 'classnames';
7
+ import intl from '../../intl';
8
+ import { BaseUtils } from '../../utils/chart-utils';
9
+ import { EMPTY_NAME, CHART_THEME_COLOR } from '../../constants';
10
+ import ToolTip from '../../components/tooltip';
11
+ import ChartComponent from './chart-component';
12
+ class BarCustom extends ChartComponent {
21
13
  constructor(props) {
22
14
  super(props);
23
- this.handleResize = (0, _lodashEs.debounce)(() => {
15
+ this.handleResize = debounce(() => {
24
16
  this.destroyChart();
25
17
  this.createChart();
26
18
  this.drawChart();
@@ -45,7 +37,7 @@ class BarCustom extends _chartComponent.default {
45
37
  let {
46
38
  result: data
47
39
  } = this.props;
48
- data = _chartUtils.BaseUtils.formatEmptyName(data, '', _intl.default.get('Empty'));
40
+ data = BaseUtils.formatEmptyName(data, '', intl.get('Empty'));
49
41
  if (!Array.isArray(data)) return;
50
42
  this.draw(data);
51
43
  this.renderAxisLabel(this.props.chart, this.props.tables, this.container);
@@ -106,7 +98,7 @@ class BarCustom extends _chartComponent.default {
106
98
  key: itemKey,
107
99
  value,
108
100
  series,
109
- slugid: _slugid.default.nice()
101
+ slugid: slugid.nice()
110
102
  });
111
103
  });
112
104
  stacksData.push({
@@ -133,7 +125,7 @@ class BarCustom extends _chartComponent.default {
133
125
  globalTheme,
134
126
  chartColorTheme
135
127
  } = this.props;
136
- const theme = _constants.CHART_THEME_COLOR[globalTheme];
128
+ const theme = CHART_THEME_COLOR[globalTheme];
137
129
  const {
138
130
  display_each_block_data
139
131
  } = chart.config;
@@ -148,18 +140,18 @@ class BarCustom extends _chartComponent.default {
148
140
  insertPadding
149
141
  } = this.chartBoundingClientRect;
150
142
  const organizedData = this.organizeData(data);
151
- const color = d3.scaleOrdinal().domain(d3.group(data, d => d.group_name).keys()).range(_chartUtils.BaseUtils.getCurrentTheme(chartColorTheme).colors).unknown('#ccc');
143
+ const color = d3.scaleOrdinal().domain(d3.group(data, d => d.group_name).keys()).range(BaseUtils.getCurrentTheme(chartColorTheme).colors).unknown('#ccc');
152
144
  const allSeries = this.getAllSeries(organizedData);
153
145
  const niceEnd = d3.nice(0, d3.max(allSeries, d => d[1]), 5)[1];
154
146
  const y = d3.scaleLinear().domain([0, niceEnd]).range([chartHeight - insertPadding, insertPadding]);
155
147
 
156
148
  // Y axis
157
- 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 => d)).call(g => this.drawYaxis(g, theme));
149
+ this.chart.append('g').attr('class', 'y-axis-wrapper').attr('transform', `translate(${insertPadding},0)`).call(d3.axisLeft(y).tickSizeInner(0).ticks(5).tickFormat(d => d)).call(g => this.drawYaxis(g, theme));
158
150
  const fx = d3.scaleBand().domain(new Set(organizedData.map(d => d.name))).range([insertPadding + this.horizontalOverflowOffset, chartWidth - insertPadding]).paddingInner(0.5).paddingOuter(0.1);
159
151
  const x = d3.scaleBand().domain(new Set(data.map(d => d.y_axis_type))).range([0, fx.bandwidth()]).paddingInner(0).paddingOuter(0);
160
152
 
161
153
  // X axis
162
- this.chart.append('g').attr('class', 'x-axis-wrapper').attr('transform', "translate(0,".concat(chartHeight - insertPadding, ")")).call(d3.axisBottom(fx).tickSizeOuter(0).tickSizeInner(5)).call(g => {
154
+ this.chart.append('g').attr('class', 'x-axis-wrapper').attr('transform', `translate(0,${chartHeight - insertPadding})`).call(d3.axisBottom(fx).tickSizeOuter(0).tickSizeInner(5)).call(g => {
163
155
  g.selectAll('.domain').attr('stroke', theme.XAxisColor);
164
156
  g.selectAll('.tick line').attr('stroke', theme.XAxisColor);
165
157
  g.selectAll('text').attr('font-size', theme.fontSize);
@@ -172,7 +164,7 @@ class BarCustom extends _chartComponent.default {
172
164
  const {
173
165
  name
174
166
  } = d;
175
- return "translate(".concat(fx(name), ",0)");
167
+ return `translate(${fx(name)},0)`;
176
168
  }).attr('data-transform', d => {
177
169
  const {
178
170
  name
@@ -182,16 +174,39 @@ class BarCustom extends _chartComponent.default {
182
174
  const height = y(d[0][0]) - y(d[0][1]);
183
175
  return isNaN(height) ? 0 : height;
184
176
  }).attr('fill', d => color(d.key)).attr('data-value', d => d.stackData.value).attr('data-rectId', d => d.stackData.slugId).attr('data-groupName', d => d.stackData.group_name).attr('data-title', d => d.stackData.name).call(g => {
185
- // add rect borderRadius
186
- Array.from(g._parents).forEach(group => {
187
- const topRect = Array.from(group.children).reverse().find(rect => Number(rect.getAttribute('height')) !== 0);
188
- // Add mask rect
189
- if (topRect) {
190
- this.addMaskRect(group, topRect, x.bandwidth(), color);
177
+ const {
178
+ borderRadius
179
+ } = this.chartBoundingClientRect;
180
+ const xWidth = x.bandwidth();
181
+ const stackGroupNodes = Array.from(g._parents);
182
+ const nameGroups = [];
183
+ stackGroupNodes.forEach(stackGroup => {
184
+ const nameGroup = stackGroup.parentNode;
185
+ if (nameGroup && !nameGroups.includes(nameGroup)) {
186
+ nameGroups.push(nameGroup);
187
+ }
188
+ });
189
+ nameGroups.forEach(nameGroup => {
190
+ const stackGroups = Array.from(nameGroup.children);
191
+ let groupBorderRadius = Infinity;
192
+ stackGroups.forEach(stackGroup => {
193
+ const topRect = Array.from(stackGroup.children).reverse().find(rect => Number(rect.getAttribute('height')) !== 0);
194
+ if (!topRect) return;
195
+ const rectHeight = Number(topRect.getAttribute('height'));
196
+ const computedBorderRadius = Math.min(xWidth * borderRadius, rectHeight / 2, xWidth / 2);
197
+ groupBorderRadius = Math.min(groupBorderRadius, computedBorderRadius);
198
+ });
199
+ if (!Number.isFinite(groupBorderRadius)) {
200
+ groupBorderRadius = 0;
191
201
  }
202
+ stackGroups.forEach(stackGroup => {
203
+ const topRect = Array.from(stackGroup.children).reverse().find(rect => Number(rect.getAttribute('height')) !== 0);
204
+ if (!topRect) return;
205
+ this.addMaskRect(stackGroup, topRect, xWidth, color, groupBorderRadius);
206
+ });
192
207
  });
193
208
  if (display_each_block_data) {
194
- this.handleLabelToRectCenter(g, x.bandwidth());
209
+ this.handleLabelToRectCenter(g, xWidth);
195
210
  }
196
211
  }).on('click', (event, data) => {
197
212
  this.props.toggleRecords(data);
@@ -223,7 +238,7 @@ class BarCustom extends _chartComponent.default {
223
238
  const {
224
239
  label_font_size
225
240
  } = chart.config;
226
- const theme = _constants.CHART_THEME_COLOR[globalTheme];
241
+ const theme = CHART_THEME_COLOR[globalTheme];
227
242
  Array.from(g._parents).forEach(group => {
228
243
  Array.from(group.children).forEach(rect => {
229
244
  // The height is 0, and the label is not displayed.
@@ -241,10 +256,13 @@ class BarCustom extends _chartComponent.default {
241
256
  });
242
257
  });
243
258
  };
244
- this.addMaskRect = (topG, rect, xWidth, colorScale) => {
259
+ this.addMaskRect = (topG, rect, xWidth, colorScale, borderRadiusVal) => {
245
260
  const {
246
261
  borderRadius
247
262
  } = this.chartBoundingClientRect;
263
+ const rectHeight = Number(rect.getAttribute('height'));
264
+ const computedBorderRadius = Math.min(xWidth * borderRadius, rectHeight / 2, xWidth / 2);
265
+ const safeBorderRadius = Math.min(borderRadiusVal !== null && borderRadiusVal !== void 0 ? borderRadiusVal : computedBorderRadius, rectHeight / 2, xWidth / 2);
248
266
  // Add mask rect
249
267
  d3.select(topG).append('foreignObject').attr('class', 'stack-wrapper').attr('opacity', rect.getAttribute('opacity')).attr('x', rect.getAttribute('x')).attr('data-x', topG.parentNode.getAttribute('data-transform')).attr('y', rect.getAttribute('y')).attr('width', xWidth).attr('height', rect.getAttribute('height')).attr('data-groupName', rect.getAttribute('data-groupName')).attr('data-value', rect.getAttribute('data-value')).attr('data-title', rect.getAttribute('data-title')).attr('data-rectId', rect.getAttribute('data-rectId')).on('click', (event, data) => {
250
268
  this.props.toggleRecords(data);
@@ -256,7 +274,7 @@ class BarCustom extends _chartComponent.default {
256
274
  }).on('mouseleave', (event, data) => {
257
275
  this.hiddenTooltip();
258
276
  this.handleStacksAcitveAndInActiveState('active', event);
259
- }).append('xhtml:div').attr('class', 'stack').attr('data-rectId', rect.getAttribute('data-rectId')).attr('style', "width: 100%; height: 100%; background-color: ".concat(rect.getAttribute('fill'), "; border-radius: ").concat(xWidth * borderRadius, "px ").concat(xWidth * borderRadius, "px 0px 0px"));
277
+ }).append('xhtml:div').attr('class', 'stack').attr('data-rectId', rect.getAttribute('data-rectId')).attr('style', `width: 100%; height: 100%; background-color: ${rect.getAttribute('fill')}; border-radius: ${safeBorderRadius}px ${safeBorderRadius}px 0px 0px`);
260
278
 
261
279
  // Remove old rect
262
280
  d3.select(rect).remove();
@@ -307,10 +325,10 @@ class BarCustom extends _chartComponent.default {
307
325
  const name = event.currentTarget.getAttribute('data-groupName');
308
326
  const value = event.currentTarget.getAttribute('data-value');
309
327
  const newTooltipData = {
310
- title: !title && typeof title !== 'number' ? _intl.default.get(_constants.EMPTY_NAME) : title,
328
+ title: !title && typeof title !== 'number' ? intl.get(EMPTY_NAME) : title,
311
329
  items: [{
312
330
  color: colorScale(name),
313
- name: !name && typeof name !== 'number' ? _intl.default.get(_constants.EMPTY_NAME) : name,
331
+ name: !name && typeof name !== 'number' ? intl.get(EMPTY_NAME) : name,
314
332
  value
315
333
  }]
316
334
  };
@@ -360,7 +378,7 @@ class BarCustom extends _chartComponent.default {
360
378
  }
361
379
  componentDidUpdate(prevProps) {
362
380
  super.componentDidUpdate(prevProps);
363
- if (_chartUtils.BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
381
+ if (BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
364
382
  this.destroyChart();
365
383
  this.createChart();
366
384
  this.drawChart();
@@ -378,13 +396,13 @@ class BarCustom extends _chartComponent.default {
378
396
  tooltipData,
379
397
  toolTipPosition
380
398
  } = this.state;
381
- return /*#__PURE__*/_react.default.createElement("div", {
399
+ return /*#__PURE__*/React.createElement("div", {
382
400
  ref: ref => this.container = ref,
383
- className: (0, _classnames.default)('sea-chart-container', {
401
+ className: classNames('sea-chart-container', {
384
402
  'show-x-axis-label': this.isShowXAxisLabel(chart),
385
403
  'show-y-axis-label': this.isShowYAxisLabel(chart)
386
404
  })
387
- }, /*#__PURE__*/_react.default.createElement(_tooltip.default, {
405
+ }, /*#__PURE__*/React.createElement(ToolTip, {
388
406
  tooltipData: tooltipData,
389
407
  toolTipPosition: toolTipPosition,
390
408
  chart: this.chart
@@ -392,15 +410,15 @@ class BarCustom extends _chartComponent.default {
392
410
  }
393
411
  }
394
412
  BarCustom.propTypes = {
395
- canvasStyle: _propTypes.default.object,
396
- chart: _propTypes.default.object,
397
- groupbyColumn: _propTypes.default.object,
398
- columnGroupbyColumn: _propTypes.default.object,
399
- summaryColumn: _propTypes.default.object,
400
- result: _propTypes.default.array,
401
- tables: _propTypes.default.array,
402
- globalTheme: _propTypes.default.string,
403
- chartColorTheme: _propTypes.default.string,
404
- toggleRecords: _propTypes.default.func
413
+ canvasStyle: PropTypes.object,
414
+ chart: PropTypes.object,
415
+ groupbyColumn: PropTypes.object,
416
+ columnGroupbyColumn: PropTypes.object,
417
+ summaryColumn: PropTypes.object,
418
+ result: PropTypes.array,
419
+ tables: PropTypes.array,
420
+ globalTheme: PropTypes.string,
421
+ chartColorTheme: PropTypes.string,
422
+ toggleRecords: PropTypes.func
405
423
  };
406
- var _default = exports.default = BarCustom;
424
+ export default BarCustom;