sea-chart 2.0.43 → 2.0.45

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 (302) hide show
  1. package/dist/api/index.js +4 -11
  2. package/dist/components/cell-factory/FormatterConfig.js +55 -62
  3. package/dist/components/cell-factory/SimpleCellFormatter.js +4 -11
  4. package/dist/components/cell-factory/SingleSelectOption.js +11 -18
  5. package/dist/components/cell-factory/cell-editor-factory.js +5 -12
  6. package/dist/components/cell-factory/cell-formatter-factory.js +4 -11
  7. package/dist/components/cell-factory/link-content.js +27 -35
  8. package/dist/components/chart-color-selector/color-selector.js +11 -18
  9. package/dist/components/collaborator/index.js +7 -14
  10. package/dist/components/color-picker/index.js +11 -18
  11. package/dist/components/color-popover/color-rules/color-rule.js +25 -33
  12. package/dist/components/color-popover/color-rules/index.js +6 -14
  13. package/dist/components/color-popover/color-rules/rule-filters/filter.js +27 -34
  14. package/dist/components/color-popover/color-rules/rule-filters/index.js +17 -25
  15. package/dist/components/color-popover/color-rules/rule-filters/number-input.js +10 -18
  16. package/dist/components/color-popover/color-rules-popover.js +26 -34
  17. package/dist/components/color-popover/color-selector-popover.js +10 -18
  18. package/dist/components/color-setting/color-group-selector.js +12 -20
  19. package/dist/components/common-add-tool/index.js +6 -13
  20. package/dist/components/data-process-setter/data-setting-header.js +7 -14
  21. package/dist/components/data-process-setter/hide-column-setter.js +12 -19
  22. package/dist/components/data-process-setter/index.js +4 -27
  23. package/dist/components/data-process-setter/sort-setter.js +16 -24
  24. package/dist/components/draggable/Draggable.js +7 -13
  25. package/dist/components/drill-down-settings/drill-down-fields-popover/index.js +42 -50
  26. package/dist/components/drill-down-settings/drill-down-fields-settings/index.js +10 -18
  27. package/dist/components/drill-down-settings/index.js +11 -18
  28. package/dist/components/dtable-popover/index.js +13 -20
  29. package/dist/components/dtable-search-input/index.js +13 -21
  30. package/dist/components/font-settings/index.js +14 -22
  31. package/dist/components/goal-line-setting/goal-setting-item.js +6 -14
  32. package/dist/components/goal-line-setting/index.js +12 -19
  33. package/dist/components/highlighter/highlighter.js +7 -14
  34. package/dist/components/icon/index.js +4 -11
  35. package/dist/components/index.js +7 -48
  36. package/dist/components/loading/index.js +6 -13
  37. package/dist/components/number-input/index.js +4 -11
  38. package/dist/components/pixel-editor/index.js +15 -23
  39. package/dist/components/popover/hide-column-popover/hide-column-popover-widgets/hide-column-item.js +8 -15
  40. package/dist/components/popover/hide-column-popover/hide-column-popover.js +25 -33
  41. package/dist/components/popover/sort-popover/sort-popover-widgets/sort-utils.js +9 -18
  42. package/dist/components/popover/sort-popover/sort-popover.js +54 -64
  43. package/dist/components/resize-handle/ResizeHandle.js +6 -13
  44. package/dist/components/row-card/row-card-header-cell.js +15 -22
  45. package/dist/components/row-card/row-card-header.js +14 -21
  46. package/dist/components/row-card/row-card-item.js +33 -41
  47. package/dist/components/row-card/row-card.js +15 -23
  48. package/dist/components/statistic-record-dialog/index.js +56 -64
  49. package/dist/components/tooltip/index.js +21 -21
  50. package/dist/components/types-dialog/index.js +56 -64
  51. package/dist/components/types-dialog/use-force-update.js +4 -10
  52. package/dist/constants/color-rules.js +8 -14
  53. package/dist/constants/common-constants.js +8 -14
  54. package/dist/constants/error.js +2 -8
  55. package/dist/constants/geolocation.js +9 -15
  56. package/dist/constants/index.js +149 -273
  57. package/dist/constants/key-codes.js +0 -2
  58. package/dist/constants/model.js +3 -9
  59. package/dist/constants/regions.js +3 -8
  60. package/dist/constants/style.js +6 -12
  61. package/dist/constants/table.js +1 -7
  62. package/dist/constants/type-image.js +33 -39
  63. package/dist/constants/type.js +3 -9
  64. package/dist/context.js +20 -24
  65. package/dist/editor/index.js +8 -15
  66. package/dist/index.js +13 -104
  67. package/dist/intl.js +10 -17
  68. package/dist/locale/index.js +16 -23
  69. package/dist/locale/lang/de.js +1 -7
  70. package/dist/locale/lang/en.js +1 -7
  71. package/dist/locale/lang/es.js +1 -7
  72. package/dist/locale/lang/fr.js +1 -7
  73. package/dist/locale/lang/pt.js +1 -7
  74. package/dist/locale/lang/ru.js +1 -7
  75. package/dist/locale/lang/zh_CN.js +1 -7
  76. package/dist/model/area-group.js +12 -19
  77. package/dist/model/area.js +12 -19
  78. package/dist/model/bar-custom.js +11 -18
  79. package/dist/model/bar-group.js +12 -19
  80. package/dist/model/bar-stack.js +10 -17
  81. package/dist/model/bar.js +11 -18
  82. package/dist/model/base-model.js +8 -11
  83. package/dist/model/basic-number-card.js +13 -20
  84. package/dist/model/chart.js +7 -13
  85. package/dist/model/combination.js +19 -22
  86. package/dist/model/compare-bar.js +14 -21
  87. package/dist/model/completeness-group.js +11 -18
  88. package/dist/model/completeness.js +10 -17
  89. package/dist/model/dashboard.js +7 -14
  90. package/dist/model/funnel.js +14 -21
  91. package/dist/model/generic-model.js +135 -143
  92. package/dist/model/heat-map.js +9 -16
  93. package/dist/model/horizontal-bar.js +15 -18
  94. package/dist/model/horizontal-group-bar.js +14 -17
  95. package/dist/model/index.js +69 -93
  96. package/dist/model/line-group.js +13 -20
  97. package/dist/model/line.js +12 -19
  98. package/dist/model/map-bubble.js +12 -19
  99. package/dist/model/map.js +12 -19
  100. package/dist/model/mirror.js +13 -20
  101. package/dist/model/pie.js +12 -19
  102. package/dist/model/ring.js +12 -19
  103. package/dist/model/scatter.js +10 -17
  104. package/dist/model/stacked-horizontal-bar.js +15 -18
  105. package/dist/model/table-element.js +5 -12
  106. package/dist/model/table.js +7 -14
  107. package/dist/model/tree-map.js +7 -14
  108. package/dist/model/trend.js +11 -18
  109. package/dist/model/user.js +1 -7
  110. package/dist/model/world-map-bubble.js +12 -19
  111. package/dist/model/world-map.js +12 -19
  112. package/dist/services/map-json.js +7 -13
  113. package/dist/settings/advance-bar-settings/data-settings.js +36 -44
  114. package/dist/settings/advance-bar-settings/index.js +3 -20
  115. package/dist/settings/advance-bar-settings/style-settings.js +83 -74
  116. package/dist/settings/bar-settings/data-settings.js +39 -47
  117. package/dist/settings/bar-settings/index.js +3 -20
  118. package/dist/settings/bar-settings/style-settings.js +69 -60
  119. package/dist/settings/basic-number-card/data-settings.js +49 -57
  120. package/dist/settings/basic-number-card/index.js +3 -20
  121. package/dist/settings/basic-number-card/style-settings.js +18 -26
  122. package/dist/settings/combination-settings/data-settings.js +55 -63
  123. package/dist/settings/combination-settings/index.js +3 -20
  124. package/dist/settings/combination-settings/style-settings.js +94 -77
  125. package/dist/settings/completeness-settings/callbacks/callbacks.js +16 -27
  126. package/dist/settings/completeness-settings/data-settings/completion-settings.js +21 -28
  127. package/dist/settings/completeness-settings/data-settings/data-settings.js +25 -32
  128. package/dist/settings/completeness-settings/index.js +3 -20
  129. package/dist/settings/completeness-settings/style-settings.js +19 -26
  130. package/dist/settings/dashboard-settings/data-settings.js +43 -51
  131. package/dist/settings/dashboard-settings/index.js +2 -13
  132. package/dist/settings/data-settings.js +72 -79
  133. package/dist/settings/funnel-settings/components/dnd-item/dnd-item.js +12 -19
  134. package/dist/settings/funnel-settings/components/dnd-list.js +15 -23
  135. package/dist/settings/funnel-settings/components/funnel-label-setting.js +32 -40
  136. package/dist/settings/funnel-settings/components/funnel-layer-setting.js +20 -28
  137. package/dist/settings/funnel-settings/data-settings.js +23 -31
  138. package/dist/settings/funnel-settings/index.js +3 -20
  139. package/dist/settings/funnel-settings/style-settings.js +11 -19
  140. package/dist/settings/heat-map-settings/data-settings.js +18 -26
  141. package/dist/settings/heat-map-settings/index.js +3 -20
  142. package/dist/settings/heat-map-settings/style-settings.js +18 -26
  143. package/dist/settings/horizontal-bar-settings/data-settings.js +12 -19
  144. package/dist/settings/horizontal-bar-settings/index.js +3 -20
  145. package/dist/settings/horizontal-bar-settings/style-settings.js +12 -19
  146. package/dist/settings/index.js +52 -70
  147. package/dist/settings/map-settings/components/location-field-selector.js +10 -17
  148. package/dist/settings/map-settings/components/map-level-selector.js +11 -18
  149. package/dist/settings/map-settings/components/map-province-city-selector.js +19 -26
  150. package/dist/settings/map-settings/index.js +3 -20
  151. package/dist/settings/map-settings/map-data-settings.js +23 -30
  152. package/dist/settings/map-settings/map-style-settings.js +26 -34
  153. package/dist/settings/mirror-settings/data-settings.js +26 -34
  154. package/dist/settings/mirror-settings/index.js +2 -13
  155. package/dist/settings/pie-settings/data-settings.js +33 -41
  156. package/dist/settings/pie-settings/index.js +3 -20
  157. package/dist/settings/pie-settings/style-settings.js +47 -55
  158. package/dist/settings/scatter/data-settings.js +27 -34
  159. package/dist/settings/scatter/index.js +3 -12
  160. package/dist/settings/stacks-settings/index.js +19 -27
  161. package/dist/settings/stacks-settings/stack-item-settings.js +19 -27
  162. package/dist/settings/style-settings.js +64 -72
  163. package/dist/settings/table-element-settings/components/data-filter.js +30 -38
  164. package/dist/settings/table-element-settings/data-settings.js +21 -29
  165. package/dist/settings/table-element-settings/index.js +2 -13
  166. package/dist/settings/table-settings/data-settings.js +111 -119
  167. package/dist/settings/table-settings/index.js +2 -13
  168. package/dist/settings/time-comparison-settings/data-settings.js +43 -51
  169. package/dist/settings/time-comparison-settings/index.js +3 -20
  170. package/dist/settings/time-comparison-settings/style-settings.js +62 -53
  171. package/dist/settings/trend-settings/data-settings.js +24 -32
  172. package/dist/settings/trend-settings/index.js +3 -20
  173. package/dist/settings/trend-settings/style-setting.js +17 -25
  174. package/dist/settings/widgets/axis-title-font-settings/index.js +39 -0
  175. package/dist/settings/widgets/basic-summary/index.js +55 -63
  176. package/dist/settings/widgets/chart-type/index.js +18 -26
  177. package/dist/settings/widgets/color-settings/index.js +72 -80
  178. package/dist/settings/widgets/common-data-settings.js +21 -29
  179. package/dist/settings/widgets/data-filter/index.js +35 -43
  180. package/dist/settings/widgets/data-sort.js +16 -24
  181. package/dist/settings/widgets/date-summary-item.js +24 -32
  182. package/dist/settings/widgets/display-values-settings/index.js +14 -22
  183. package/dist/settings/widgets/divider/index.js +8 -16
  184. package/dist/settings/widgets/font-settings/font-color-settings.js +11 -19
  185. package/dist/settings/widgets/font-settings/font-size-settings.js +14 -22
  186. package/dist/settings/widgets/font-settings/font-weight-settings.js +17 -25
  187. package/dist/settings/widgets/font-settings/index.js +4 -27
  188. package/dist/settings/widgets/group-by.js +51 -59
  189. package/dist/settings/widgets/min-max-setting.js +10 -18
  190. package/dist/settings/widgets/mininum-slice-percent.js +10 -18
  191. package/dist/settings/widgets/numeric-summary-item.js +23 -31
  192. package/dist/settings/widgets/select-line-type/index.js +10 -17
  193. package/dist/settings/widgets/select-table/index.js +9 -16
  194. package/dist/settings/widgets/select-view/index.js +20 -28
  195. package/dist/settings/widgets/stack.js +14 -22
  196. package/dist/settings/widgets/summary-method-setting.js +17 -25
  197. package/dist/settings/widgets/summary-settings.js +72 -80
  198. package/dist/settings/widgets/switch/index.js +8 -15
  199. package/dist/settings/widgets/text-horizontal-settings.js +15 -23
  200. package/dist/settings/widgets/time-picker.js +29 -37
  201. package/dist/settings/widgets/title-settings/index.js +29 -37
  202. package/dist/settings/widgets/title-settings/title-text.js +5 -12
  203. package/dist/settings/widgets/x-axios.js +0 -1
  204. package/dist/settings/widgets/y-axis-group-settings.js +63 -71
  205. package/dist/utils/cell-format-utils.js +18 -28
  206. package/dist/utils/cell-value-utils.js +5 -12
  207. package/dist/utils/chart-utils/base-utils.js +362 -334
  208. package/dist/utils/chart-utils/index.js +28 -41
  209. package/dist/utils/chart-utils/original-data-utils/basic-chart-calculator.js +80 -86
  210. package/dist/utils/chart-utils/original-data-utils/card-calculator.js +13 -20
  211. package/dist/utils/chart-utils/original-data-utils/combination-calculator.js +45 -52
  212. package/dist/utils/chart-utils/original-data-utils/compare-bar-chart-calculator.js +19 -26
  213. package/dist/utils/chart-utils/original-data-utils/completeness-calculator.js +32 -39
  214. package/dist/utils/chart-utils/original-data-utils/dashboard-calculator.js +16 -23
  215. package/dist/utils/chart-utils/original-data-utils/index.js +50 -57
  216. package/dist/utils/chart-utils/original-data-utils/mirror-calculator.js +21 -28
  217. package/dist/utils/chart-utils/original-data-utils/pivot-table-calculator.js +91 -97
  218. package/dist/utils/chart-utils/original-data-utils/scatter-calculator.js +19 -26
  219. package/dist/utils/chart-utils/original-data-utils/trend-calculator.js +31 -38
  220. package/dist/utils/chart-utils/sql-statistics-utils.js +284 -246
  221. package/dist/utils/chart.js +9 -17
  222. package/dist/utils/collaborator-manager.js +3 -9
  223. package/dist/utils/collaborator-utils.js +18 -30
  224. package/dist/utils/collaborator.js +4 -13
  225. package/dist/utils/color-utils.js +18 -29
  226. package/dist/utils/column-utils.js +65 -92
  227. package/dist/utils/common-utils.js +27 -52
  228. package/dist/utils/concurrency-manager.js +1 -7
  229. package/dist/utils/contexts.js +5 -12
  230. package/dist/utils/date-translate.js +11 -19
  231. package/dist/utils/digital-sign-utils.js +7 -14
  232. package/dist/utils/event-bus.js +1 -7
  233. package/dist/utils/hotkey.js +5 -11
  234. package/dist/utils/index.js +54 -221
  235. package/dist/utils/key-generator.js +2 -9
  236. package/dist/utils/map.js +22 -31
  237. package/dist/utils/object-utils.js +1 -7
  238. package/dist/utils/options-utils.js +8 -16
  239. package/dist/utils/row-record-utils.js +182 -178
  240. package/dist/utils/row-utils.js +27 -38
  241. package/dist/utils/search.js +24 -32
  242. package/dist/utils/sql/chart-data-sql.js +49 -55
  243. package/dist/utils/sql/column-2-sql-column.js +146 -154
  244. package/dist/utils/sql/index.js +3 -27
  245. package/dist/utils/trend-utils.js +39 -47
  246. package/dist/view/index.css +0 -17
  247. package/dist/view/index.js +89 -95
  248. package/dist/view/title/index.js +15 -23
  249. package/dist/view/wrapper/area-group.js +57 -74
  250. package/dist/view/wrapper/area.js +51 -72
  251. package/dist/view/wrapper/bar-compare.js +47 -58
  252. package/dist/view/wrapper/bar-custom-stack.js +53 -121
  253. package/dist/view/wrapper/bar-group.js +55 -96
  254. package/dist/view/wrapper/bar-stack.js +58 -92
  255. package/dist/view/wrapper/bar.js +45 -66
  256. package/dist/view/wrapper/basic-number-card.js +25 -26
  257. package/dist/view/wrapper/chart-component.js +600 -166
  258. package/dist/view/wrapper/combination.js +79 -87
  259. package/dist/view/wrapper/completeness-group.js +46 -98
  260. package/dist/view/wrapper/completeness.js +45 -97
  261. package/dist/view/wrapper/dashboard.js +33 -47
  262. package/dist/view/wrapper/funnel.js +65 -64
  263. package/dist/view/wrapper/heat-map.js +126 -104
  264. package/dist/view/wrapper/horizontal-bar-group.js +61 -78
  265. package/dist/view/wrapper/horizontal-bar-stack.js +60 -111
  266. package/dist/view/wrapper/horizontal-bar.js +45 -68
  267. package/dist/view/wrapper/index.js +110 -115
  268. package/dist/view/wrapper/line-group.js +52 -68
  269. package/dist/view/wrapper/line.js +47 -67
  270. package/dist/view/wrapper/map-bubble.js +46 -59
  271. package/dist/view/wrapper/map-world-bubble.js +45 -58
  272. package/dist/view/wrapper/map-world.js +47 -60
  273. package/dist/view/wrapper/map.js +48 -60
  274. package/dist/view/wrapper/mirror.js +45 -64
  275. package/dist/view/wrapper/pie.js +51 -59
  276. package/dist/view/wrapper/ring.js +57 -64
  277. package/dist/view/wrapper/scatter.js +53 -69
  278. package/dist/view/wrapper/table/index.js +13 -21
  279. package/dist/view/wrapper/table/one-dimension-table-no-numeric-columns.js +49 -57
  280. package/dist/view/wrapper/table/one-dimension-table-with-numeric-columns.js +50 -58
  281. package/dist/view/wrapper/table/pivot-table-display-name.js +83 -91
  282. package/dist/view/wrapper/table/two-dimension-table.js +76 -84
  283. package/dist/view/wrapper/table-element/components/dataset-utils.js +23 -36
  284. package/dist/view/wrapper/table-element/components/formatter.js +96 -105
  285. package/dist/view/wrapper/table-element/components/formatters/FileFormatter/index.js +22 -31
  286. package/dist/view/wrapper/table-element/components/formatters/formula-formatter.js +9 -16
  287. package/dist/view/wrapper/table-element/components/formatters/link-formatter.js +73 -80
  288. package/dist/view/wrapper/table-element/components/formula-formatter.js +9 -16
  289. package/dist/view/wrapper/table-element/components/link-formatter.js +73 -80
  290. package/dist/view/wrapper/table-element/components/record.js +10 -17
  291. package/dist/view/wrapper/table-element/components/records-body.js +17 -19
  292. package/dist/view/wrapper/table-element/components/records-header/index.js +7 -15
  293. package/dist/view/wrapper/table-element/components/records-header/records-header-cell.js +8 -16
  294. package/dist/view/wrapper/table-element/components/records.js +23 -33
  295. package/dist/view/wrapper/table-element/components/resize-column-handle/resize-column-handle.js +5 -12
  296. package/dist/view/wrapper/table-element/components/utils.js +5 -15
  297. package/dist/view/wrapper/table-element/components/value-display-utils.js +4 -11
  298. package/dist/view/wrapper/table-element/components/vertical-scrollbar/index.js +6 -13
  299. package/dist/view/wrapper/table-element/index.js +18 -26
  300. package/dist/view/wrapper/treemap.js +39 -57
  301. package/dist/view/wrapper/trend.js +41 -48
  302. package/package.json +1 -1
@@ -1,29 +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 _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 _intl = _interopRequireDefault(require("../../intl"));
17
- var _tooltip = _interopRequireDefault(require("../../components/tooltip"));
18
- var _chartComponent = _interopRequireDefault(require("./chart-component"));
19
- class Completeness extends _chartComponent.default {
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import * as d3 from 'd3';
4
+ import { CHART_THEME_COLOR } from '../../constants';
5
+ import { BaseUtils } from '../../utils';
6
+ import intl from '../../intl';
7
+ import ToolTip from '../../components/tooltip';
8
+ import ChartComponent from './chart-component';
9
+ class Completeness extends ChartComponent {
20
10
  constructor(props) {
21
11
  super(props);
22
- this.handleResize = () => {
23
- this.destroyChart();
24
- this.createChart();
25
- this.drawChart();
26
- };
27
12
  this.createChart = () => {
28
13
  const {
29
14
  chart
@@ -42,17 +27,19 @@ class Completeness extends _chartComponent.default {
42
27
  let {
43
28
  result: data
44
29
  } = this.props;
45
- data = _utils.BaseUtils.formatEmptyName(data, '', _intl.default.get('Empty'));
30
+ data = BaseUtils.formatEmptyName(data, '', intl.get('Empty'));
46
31
  if (!Array.isArray(data)) return;
47
32
  this.draw(data);
48
33
  };
49
34
  this.draw = data => {
35
+ const fullData = data;
36
+ data = this.getVisibleLegendData(data, 'group_name');
50
37
  const {
51
38
  chart,
52
39
  globalTheme,
53
40
  chartColorTheme
54
41
  } = this.props;
55
- const theme = _constants.CHART_THEME_COLOR[globalTheme];
42
+ const theme = CHART_THEME_COLOR[globalTheme];
56
43
  const {
57
44
  y_axis_auto_range,
58
45
  y_axis_min,
@@ -66,7 +53,7 @@ class Completeness extends _chartComponent.default {
66
53
  insertPadding,
67
54
  marginRight
68
55
  } = this.chartBoundingClientRect;
69
- const colors = _utils.BaseUtils.getCurrentTheme(chartColorTheme).colors;
56
+ const colors = BaseUtils.getCurrentTheme(chartColorTheme).colors;
70
57
  this.markFirstOrLast(data, 'last');
71
58
  const series = d3.stack().keys(d3.union(data.map(d => d.group_name))).value((_ref, key) => {
72
59
  var _group$get;
@@ -91,7 +78,7 @@ class Completeness extends _chartComponent.default {
91
78
  });
92
79
 
93
80
  // X axis
94
- const niceEnd = d3.nice(0, d3.max(newSeries, d => d[1].sumValue), 5)[1];
81
+ const niceEnd = d3.nice(0, d3.max(newSeries, d => d[1].sumValue) || 0, 5)[1];
95
82
  const x = d3.scaleLinear().domain(y_axis_auto_range ? [0, niceEnd] : [y_axis_min || 0, y_axis_max || niceEnd]).range([Number(yAxis.node().getAttribute('data-axisWidth')), chartWidth - insertPadding - marginRight]);
96
83
  this.chart.append('g').attr('class', 'x-axis-wrapper').attr('transform', `translate(0, ${chartHeight - insertPadding})`).call(d3.axisBottom(x).tickSizeInner(0).ticks(5)).call(g => {
97
84
  g.selectAll('.domain').remove();
@@ -142,7 +129,7 @@ class Completeness extends _chartComponent.default {
142
129
  });
143
130
  }
144
131
  }).on('click', (event, data) => {
145
- this.props.toggleRecords(data);
132
+ this.toggleRecords(data.data);
146
133
  }).on('mouseover', event => {
147
134
  this.showTooltip(event);
148
135
  this.handleAcitveAndInActiveState('inActive', event);
@@ -151,12 +138,15 @@ class Completeness extends _chartComponent.default {
151
138
  }).on('mouseleave', (event, data) => {
152
139
  this.hiddenTooltip();
153
140
  this.handleAcitveAndInActiveState('active', event);
141
+ }).call(g => {
142
+ this.animateStackGrowInX(g);
143
+ this.animateFadeIn(contentWrapper.selectAll('text'), this.transitionDuration, this.transitionDuration * 0.5);
154
144
  });
155
145
  this.setLegend({
156
146
  legendName: 'group_name',
157
147
  theme,
158
148
  legendPosition: 'top-right',
159
- data,
149
+ data: fullData,
160
150
  colorScale: group_name => group_name === 'rest' ? '#bdbdbd' : colors[0]
161
151
  });
162
152
  };
@@ -165,26 +155,20 @@ class Completeness extends _chartComponent.default {
165
155
  const curGroupName = event.currentTarget.getAttribute('data-groupName');
166
156
  this.setActiveAndInActiveState(state, allGroup, curGroupName);
167
157
  };
168
- this.showTooltip = (event, isDiv) => {
169
- let {
158
+ this.showTooltip = event => {
159
+ const {
170
160
  offsetX,
171
161
  offsetY
172
162
  } = event;
173
- if (isDiv) {
174
- const initX = Number(event.currentTarget.getAttribute('data-x'));
175
- const initY = Number(event.currentTarget.getAttribute('y'));
176
- offsetX = offsetX + initX;
177
- offsetY = offsetY + initY;
178
- }
179
163
  const {
180
164
  chartColorTheme
181
165
  } = this.props;
182
- const colors = _utils.BaseUtils.getCurrentTheme(chartColorTheme).colors;
166
+ const colors = BaseUtils.getCurrentTheme(chartColorTheme).colors;
183
167
  const newTooltipData = {
184
168
  title: event.currentTarget.getAttribute('data-tooltipTitle'),
185
169
  items: [{
186
- color: event.currentTarget.getAttribute('data-tooltipTitle') === 'rest' ? '#bdbdbd' : colors[0],
187
- name: _intl.default.get(event.currentTarget.getAttribute('data-tooltipName')),
170
+ color: event.currentTarget.getAttribute('data-tooltipName') === 'rest' ? '#bdbdbd' : colors[0],
171
+ name: intl.get(event.currentTarget.getAttribute('data-tooltipName')),
188
172
  value: event.currentTarget.getAttribute('data-value')
189
173
  }]
190
174
  };
@@ -198,17 +182,11 @@ class Completeness extends _chartComponent.default {
198
182
  }
199
183
  });
200
184
  };
201
- this.moveTooltip = (event, isDiv) => {
202
- let {
185
+ this.moveTooltip = event => {
186
+ const {
203
187
  offsetX,
204
188
  offsetY
205
189
  } = event;
206
- if (isDiv) {
207
- const initX = Number(event.currentTarget.getAttribute('data-x'));
208
- const initY = Number(event.currentTarget.getAttribute('y'));
209
- offsetX = offsetX + initX;
210
- offsetY = offsetY + initY;
211
- }
212
190
  this.setState({
213
191
  toolTipPosition: {
214
192
  offsetX,
@@ -261,28 +239,7 @@ class Completeness extends _chartComponent.default {
261
239
  return allGroup;
262
240
  };
263
241
  this.addMaskRect = (topG, rect, yAxis) => {
264
- const xWidth = Number(rect.getAttribute('height'));
265
- const {
266
- borderRadius
267
- } = this.chartBoundingClientRect;
268
- // Add mask rect
269
- d3.select(topG).append('foreignObject').attr('opacity', rect.getAttribute('opacity')).attr('x', rect.getAttribute('x')).attr('y', rect.getAttribute('y')).attr('width', rect.getAttribute('width')).attr('height', rect.getAttribute('height')).attr('data-groupName', rect.getAttribute('data-groupName')).attr('data-value', rect.getAttribute('data-value')).attr('data-tooltipTitle', rect.getAttribute('data-tooltipTitle')).attr('data-tooltipName', rect.getAttribute('data-tooltipName')).attr('data-x', () => {
270
- const x = Number(rect.getAttribute('x'));
271
- return x + Number(yAxis.node().getAttribute('data-axisWidth'));
272
- }).on('click', (event, data) => {
273
- this.props.toggleRecords(data);
274
- }).on('mouseover', event => {
275
- this.showTooltip(event, true);
276
- this.handleAcitveAndInActiveState('inActive', event);
277
- }).on('mousemove', event => {
278
- this.moveTooltip(event, true);
279
- }).on('mouseleave', event => {
280
- this.hiddenTooltip();
281
- this.handleAcitveAndInActiveState('active', event);
282
- }).append('xhtml:div').attr('style', `width: 100%; height: 100%; background-color: ${rect.getAttribute('fill')}; border-radius: 0px ${xWidth * borderRadius}px ${xWidth * borderRadius}px 0px`);
283
-
284
- // Remove old rect
285
- d3.select(rect).remove();
242
+ return this.addRoundedClip(rect, 'x');
286
243
  };
287
244
  this.chart = null;
288
245
  this.state = {
@@ -291,40 +248,31 @@ class Completeness extends _chartComponent.default {
291
248
  };
292
249
  }
293
250
  componentDidMount() {
294
- super.componentDidMount();
295
251
  this.createChart();
296
252
  this.drawChart();
297
- this.debouncedHandleResize = (0, _lodashEs.debounce)(this.handleResize, 300);
298
- window.addEventListener('resize', this.debouncedHandleResize);
253
+ super.componentDidMount();
299
254
  }
300
255
  componentDidUpdate(prevProps) {
301
256
  super.componentDidUpdate(prevProps);
302
- if (_utils.BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
257
+ if (BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
303
258
  this.destroyChart();
304
259
  this.createChart();
305
260
  this.drawChart();
306
261
  }
307
262
  }
308
263
  componentWillUnmount() {
309
- super.componentWillUnmount();
310
264
  this.destroyChart();
311
- window.removeEventListener('resize', this.debouncedHandleResize);
265
+ super.componentWillUnmount();
312
266
  }
313
267
  render() {
314
- const {
315
- chart
316
- } = this.props;
317
268
  const {
318
269
  tooltipData,
319
270
  toolTipPosition
320
271
  } = this.state;
321
- return /*#__PURE__*/_react.default.createElement("div", {
272
+ return /*#__PURE__*/React.createElement("div", {
322
273
  ref: ref => this.container = ref,
323
- className: (0, _classnames.default)('sea-chart-container', {
324
- 'show-x-axis-label': this.isShowHorizontalAxisLabel(chart),
325
- 'show-y-axis-label': this.isShowVerticalAxisLabel(chart)
326
- })
327
- }, /*#__PURE__*/_react.default.createElement(_tooltip.default, {
274
+ className: "sea-chart-container"
275
+ }, /*#__PURE__*/React.createElement(ToolTip, {
328
276
  tooltipData: tooltipData,
329
277
  toolTipPosition: toolTipPosition,
330
278
  chart: this.chart
@@ -332,15 +280,15 @@ class Completeness extends _chartComponent.default {
332
280
  }
333
281
  }
334
282
  Completeness.propTypes = {
335
- canvasStyle: _propTypes.default.object,
336
- chart: _propTypes.default.object,
337
- groupbyColumn: _propTypes.default.object,
338
- columnGroupbyColumn: _propTypes.default.object,
339
- summaryColumn: _propTypes.default.object,
340
- result: _propTypes.default.array,
341
- tables: _propTypes.default.array,
342
- globalTheme: _propTypes.default.string,
343
- chartColorTheme: _propTypes.default.string,
344
- toggleRecords: _propTypes.default.func
283
+ canvasStyle: PropTypes.object,
284
+ chart: PropTypes.object,
285
+ groupbyColumn: PropTypes.object,
286
+ columnGroupbyColumn: PropTypes.object,
287
+ summaryColumn: PropTypes.object,
288
+ result: PropTypes.array,
289
+ tables: PropTypes.array,
290
+ globalTheme: PropTypes.string,
291
+ chartColorTheme: PropTypes.string,
292
+ toggleRecords: PropTypes.func
345
293
  };
346
- var _default = exports.default = Completeness;
294
+ export default Completeness;
@@ -1,20 +1,11 @@
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 _constants = require("../../constants");
14
- var _utils = require("../../utils");
15
- var _tooltip = _interopRequireDefault(require("../../components/tooltip"));
16
- var _chartComponent = _interopRequireDefault(require("./chart-component"));
17
- class Dashboard extends _chartComponent.default {
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import * as d3 from 'd3';
4
+ import { CHART_THEME_COLOR } from '../../constants';
5
+ import { BaseUtils, isFunction } from '../../utils';
6
+ import ToolTip from '../../components/tooltip';
7
+ import ChartComponent from './chart-component';
8
+ class Dashboard extends ChartComponent {
18
9
  constructor(props) {
19
10
  super(props);
20
11
  this.handleClickNumber = () => {
@@ -33,17 +24,6 @@ class Dashboard extends _chartComponent.default {
33
24
  });
34
25
  }
35
26
  };
36
- this.componentDidMount = () => {
37
- this.createChart();
38
- this.drawChart();
39
- this.debouncedHandleResize = (0, _lodashEs.debounce)(this.handleResize, 300);
40
- window.addEventListener('resize', this.debouncedHandleResize);
41
- };
42
- this.handleResize = () => {
43
- this.destroyChart();
44
- this.createChart();
45
- this.drawChart();
46
- };
47
27
  this.createChart = () => {
48
28
  const {
49
29
  chart
@@ -59,7 +39,7 @@ class Dashboard extends _chartComponent.default {
59
39
  customRender
60
40
  } = this.props;
61
41
  this.draw(data);
62
- (0, _utils.isFunction)(customRender) && customRender(this.chart);
42
+ isFunction(customRender) && customRender(this.chart);
63
43
  };
64
44
  this.draw = data => {
65
45
  const {
@@ -67,7 +47,7 @@ class Dashboard extends _chartComponent.default {
67
47
  height: chartHeight,
68
48
  insertPadding
69
49
  } = this.chartBoundingClientRect;
70
- const value = Number(data) * 100;
50
+ const value = (Number(data) || 0) * 100;
71
51
  const formatValue = value >= 100 ? 100 : value.toFixed(1);
72
52
  const innerRadius = Math.min(chartWidth, chartHeight) / 2 * 0.7;
73
53
  const outerRadius = Math.min(chartWidth, chartHeight) / 2 * 0.75;
@@ -106,12 +86,13 @@ class Dashboard extends _chartComponent.default {
106
86
  // Draw total
107
87
  this.drawTotal(g.node().parentNode, formatValue);
108
88
  });
89
+ this.animateFadeIn(this.chart.selectAll('path, circle, rect, line, text'));
109
90
  };
110
91
  this.drawTicks = (left, offsetX, top, offsetY, startAngle, endAngle, arc) => {
111
92
  const {
112
93
  globalTheme
113
94
  } = this.props;
114
- const theme = _constants.CHART_THEME_COLOR[globalTheme];
95
+ const theme = CHART_THEME_COLOR[globalTheme];
115
96
  const ticks = Array.from({
116
97
  length: 51
117
98
  }, (_, i) => i);
@@ -173,7 +154,7 @@ class Dashboard extends _chartComponent.default {
173
154
  const {
174
155
  name
175
156
  } = chart.config;
176
- const theme = _constants.CHART_THEME_COLOR[globalTheme];
157
+ const theme = CHART_THEME_COLOR[globalTheme];
177
158
  const {
178
159
  height: chartHeight
179
160
  } = this.chartBoundingClientRect;
@@ -234,9 +215,14 @@ class Dashboard extends _chartComponent.default {
234
215
  toolTipPosition: null
235
216
  };
236
217
  }
218
+ componentDidMount() {
219
+ this.createChart();
220
+ this.drawChart();
221
+ super.componentDidMount();
222
+ }
237
223
  componentDidUpdate(prevProps) {
238
224
  super.componentDidUpdate(prevProps);
239
- if (_utils.BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
225
+ if (BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
240
226
  this.destroyChart();
241
227
  this.createChart();
242
228
  this.drawChart();
@@ -244,17 +230,17 @@ class Dashboard extends _chartComponent.default {
244
230
  }
245
231
  componentWillUnmount() {
246
232
  this.destroyChart();
247
- window.removeEventListener('resize', this.debouncedHandleResize);
233
+ super.componentWillUnmount();
248
234
  }
249
235
  render() {
250
236
  const {
251
237
  tooltipData,
252
238
  toolTipPosition
253
239
  } = this.state;
254
- return /*#__PURE__*/_react.default.createElement("div", {
240
+ return /*#__PURE__*/React.createElement("div", {
255
241
  ref: ref => this.container = ref,
256
242
  className: "sea-chart-container"
257
- }, /*#__PURE__*/_react.default.createElement(_tooltip.default, {
243
+ }, /*#__PURE__*/React.createElement(ToolTip, {
258
244
  tooltipData: tooltipData,
259
245
  toolTipPosition: toolTipPosition,
260
246
  chart: this.chart
@@ -262,15 +248,15 @@ class Dashboard extends _chartComponent.default {
262
248
  }
263
249
  }
264
250
  Dashboard.propTypes = {
265
- canvasStyle: _propTypes.default.object,
266
- chart: _propTypes.default.object,
267
- groupbyColumn: _propTypes.default.object,
268
- summaryColumn: _propTypes.default.object,
269
- result: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.object]),
270
- tables: _propTypes.default.array,
271
- globalTheme: _propTypes.default.string,
272
- chartColorTheme: _propTypes.default.string,
273
- toggleRecords: _propTypes.default.func,
274
- customRender: _propTypes.default.func
251
+ canvasStyle: PropTypes.object,
252
+ chart: PropTypes.object,
253
+ groupbyColumn: PropTypes.object,
254
+ summaryColumn: PropTypes.object,
255
+ result: PropTypes.oneOfType([PropTypes.number, PropTypes.object]),
256
+ tables: PropTypes.array,
257
+ globalTheme: PropTypes.string,
258
+ chartColorTheme: PropTypes.string,
259
+ toggleRecords: PropTypes.func,
260
+ customRender: PropTypes.func
275
261
  };
276
- var _default = exports.default = Dashboard;
262
+ export default Dashboard;
@@ -1,28 +1,13 @@
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 _tooltip = _interopRequireDefault(require("../../components/tooltip"));
17
- var _chartComponent = _interopRequireDefault(require("./chart-component"));
18
- class Funnel extends _chartComponent.default {
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import * as d3 from 'd3';
4
+ import { FUNNEL_LABEL_FORMAT, FUNNEL_LABEL_POSITIONS, CHART_THEME_COLOR } from '../../constants';
5
+ import { BaseUtils, getSortedDataByGivenOrder } from '../../utils';
6
+ import ToolTip from '../../components/tooltip';
7
+ import ChartComponent from './chart-component';
8
+ class Funnel extends ChartComponent {
19
9
  constructor(props) {
20
10
  super(props);
21
- this.handleResize = () => {
22
- this.destroyChart();
23
- this.createChart();
24
- this.drawChart();
25
- };
26
11
  this.createChart = () => {
27
12
  const {
28
13
  chart
@@ -42,7 +27,7 @@ class Funnel extends _chartComponent.default {
42
27
  funnel_accumulate_values
43
28
  } = chart.config;
44
29
  if (!x_axis_option_list.length) return;
45
- const sortedData = (0, _utils.getSortedDataByGivenOrder)(data, x_axis_option_list);
30
+ const sortedData = getSortedDataByGivenOrder(data, x_axis_option_list);
46
31
  const formatSortedData = this.formatSortedData(sortedData, funnel_accumulate_values);
47
32
  this.draw(formatSortedData);
48
33
  };
@@ -63,7 +48,7 @@ class Funnel extends _chartComponent.default {
63
48
  items: [{
64
49
  color: colorScale(data === null || data === void 0 ? void 0 : data.name),
65
50
  name: data === null || data === void 0 ? void 0 : data.name,
66
- value: _utils.BaseUtils.getSummaryValueDisplayString(summaryColumn, Number(data === null || data === void 0 ? void 0 : data.value), y_axis_summary_method)
51
+ value: BaseUtils.getSummaryValueDisplayString(summaryColumn, Number(data === null || data === void 0 ? void 0 : data.value), y_axis_summary_method)
67
52
  }]
68
53
  };
69
54
  this.setState({
@@ -116,33 +101,54 @@ class Funnel extends _chartComponent.default {
116
101
  height: chartHeight,
117
102
  insertPadding
118
103
  } = this.chartBoundingClientRect;
119
- const theme = _constants.CHART_THEME_COLOR[globalTheme];
120
- const isInside = funnel_label_position === _constants.FUNNEL_LABEL_POSITIONS.INSIDE;
104
+ const theme = CHART_THEME_COLOR[globalTheme];
105
+ const isInside = funnel_label_position === FUNNEL_LABEL_POSITIONS.INSIDE;
121
106
  const title = this.getTitle(tables, table_id, y_axis_summary_type, y_axis_column_key || y_axis_summary_column_key);
107
+
108
+ // Only the visible stages are laid out; the legend still shows every stage.
109
+ const fullData = data;
110
+ data = this.getVisibleLegendData(data, 'name');
122
111
  const nameDomain = new Set(data.map(item => item.name));
123
112
 
124
- // Color scale
125
- const colorScale = d3.scaleOrdinal().domain(nameDomain).range(['#0050B3', '#1890FF', '#40A9FF', '#69C0FF', '#BAE7FF']);
113
+ // Color scale keeps the full domain so stage colors stay stable when toggling.
114
+ const colorScale = d3.scaleOrdinal().domain(new Set(fullData.map(item => item.name))).range(['#0050B3', '#1890FF', '#40A9FF', '#69C0FF', '#BAE7FF']);
126
115
 
127
116
  // Y scale
128
117
  const y = d3.scaleBand().domain(nameDomain).range([insertPadding, chartHeight - insertPadding]).paddingInner(0).paddingOuter(0);
129
118
 
119
+ // Reserve horizontal space on both sides for outside labels, otherwise the
120
+ // widest (top) layer spans nearly the full width and its label is clipped off
121
+ // the left edge.
122
+ let labelSpace = 0;
123
+ if (funnel_show_labels && !isInside) {
124
+ const measureWrapper = this.chart.append('g').attr('opacity', 0);
125
+ data.forEach(_ref => {
126
+ let {
127
+ name
128
+ } = _ref;
129
+ measureWrapper.append('text').attr('font-size', funnel_label_font_size).text(name);
130
+ });
131
+ const maxNameWidth = d3.max(measureWrapper.selectAll('text').nodes(), node => node.getBoundingClientRect().width) || 0;
132
+ measureWrapper.remove();
133
+ labelSpace = Math.min(maxNameWidth + 10, (chartWidth - insertPadding * 2) * 0.35);
134
+ }
135
+
130
136
  // X scale
131
- const x = d3.scaleLinear().domain([0, d3.max(data, d => d.value)]).range([insertPadding, chartWidth - insertPadding]);
137
+ const x = d3.scaleLinear().domain([0, d3.max(data, d => d.value)]).range([insertPadding + labelSpace, chartWidth - insertPadding - labelSpace]);
132
138
 
133
139
  // Content
134
140
  const contentWrapper = this.chart.append('g').attr('class', 'content-wrapper');
135
- const allWidth = chartWidth - insertPadding * 2;
136
- data.forEach((_ref, index) => {
141
+ const allWidth = chartWidth - insertPadding * 2 - labelSpace * 2;
142
+ data.forEach((_ref2, index) => {
137
143
  let {
138
144
  name: curName,
139
145
  value: curValue
140
- } = _ref;
146
+ } = _ref2;
141
147
  const curOffsetX = (allWidth - (x(curValue) - x(0))) / 2;
142
148
  let points3X = x(curValue) + curOffsetX;
143
149
  let points3Y = y(curName) + y.bandwidth();
144
150
  let points4X = x(0) + curOffsetX;
145
- let points4Y = y(curName) + +y.bandwidth();
151
+ let points4Y = y(curName) + y.bandwidth();
146
152
  const nextD = data[index + 1];
147
153
  if (nextD) {
148
154
  const {
@@ -178,7 +184,7 @@ class Funnel extends _chartComponent.default {
178
184
  width,
179
185
  height
180
186
  } = g.node().getBoundingClientRect();
181
- const x = isInside ? left + gWidth / 2 - width / 2 : left - width - 5; // add offsetX is 5
187
+ const x = isInside ? left + gWidth / 2 - width / 2 : Math.max(left - width - 5, 2); // add offsetX is 5
182
188
  const y = isInside ? top + height + 10 : top + gHeight / 2 + height / 2; // add offsetY is 10
183
189
  g.attr('x', x);
184
190
  g.attr('y', y);
@@ -218,12 +224,14 @@ class Funnel extends _chartComponent.default {
218
224
  this.hiddenTooltip(event);
219
225
  });
220
226
  });
227
+ this.animateFadeIn(contentWrapper.selectAll('polygon'));
228
+ this.animateFadeIn(contentWrapper.selectAll('text'), this.transitionDuration, this.transitionDuration * 0.5);
221
229
  if (funnel_show_legend) {
222
230
  this.setLegend({
223
231
  legendName: 'name',
224
232
  theme,
225
233
  legendPosition: 'top-right',
226
- data,
234
+ data: fullData,
227
235
  chart,
228
236
  colorScale
229
237
  });
@@ -250,20 +258,19 @@ class Funnel extends _chartComponent.default {
250
258
  toolTipPosition: null
251
259
  };
252
260
  this.contentFormatterMap = {
253
- [_constants.FUNNEL_LABEL_FORMAT.NUMBER]: obj => obj === null || obj === void 0 ? void 0 : obj.value,
254
- [_constants.FUNNEL_LABEL_FORMAT.PERCENTAGE]: obj => ((obj === null || obj === void 0 ? void 0 : obj.percent) || 0) + '%',
255
- [_constants.FUNNEL_LABEL_FORMAT.NUMBER_AND_PERCENTAGE]: obj => `${obj === null || obj === void 0 ? void 0 : obj.value} (${(obj === null || obj === void 0 ? void 0 : obj.percent) || 0}%)`
261
+ [FUNNEL_LABEL_FORMAT.NUMBER]: obj => obj === null || obj === void 0 ? void 0 : obj.value,
262
+ [FUNNEL_LABEL_FORMAT.PERCENTAGE]: obj => ((obj === null || obj === void 0 ? void 0 : obj.percent) || 0) + '%',
263
+ [FUNNEL_LABEL_FORMAT.NUMBER_AND_PERCENTAGE]: obj => `${obj === null || obj === void 0 ? void 0 : obj.value} (${(obj === null || obj === void 0 ? void 0 : obj.percent) || 0}%)`
256
264
  };
257
265
  }
258
266
  componentDidMount() {
259
267
  this.createChart();
260
268
  this.drawChart();
261
- this.debouncedHandleResize = (0, _lodashEs.debounce)(this.handleResize, 300);
262
- window.addEventListener('resize', this.debouncedHandleResize);
269
+ super.componentDidMount();
263
270
  }
264
271
  componentDidUpdate(prevProps) {
265
272
  super.componentDidUpdate(prevProps);
266
- if (_utils.BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
273
+ if (BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
267
274
  this.destroyChart();
268
275
  this.createChart();
269
276
  this.drawChart();
@@ -271,23 +278,17 @@ class Funnel extends _chartComponent.default {
271
278
  }
272
279
  componentWillUnmount() {
273
280
  this.destroyChart();
274
- window.removeEventListener('resize', this.debouncedHandleResize);
281
+ super.componentWillUnmount();
275
282
  }
276
283
  render() {
277
- const {
278
- chart
279
- } = this.props;
280
284
  const {
281
285
  tooltipData,
282
286
  toolTipPosition
283
287
  } = this.state;
284
- return /*#__PURE__*/_react.default.createElement("div", {
288
+ return /*#__PURE__*/React.createElement("div", {
285
289
  ref: ref => this.container = ref,
286
- className: (0, _classnames.default)('sea-chart-container', {
287
- 'show-x-axis-label': this.isShowXAxisLabel(chart),
288
- 'show-y-axis-label': this.isShowYAxisLabel(chart)
289
- })
290
- }, /*#__PURE__*/_react.default.createElement(_tooltip.default, {
290
+ className: "sea-chart-container"
291
+ }, /*#__PURE__*/React.createElement(ToolTip, {
291
292
  tooltipData: tooltipData,
292
293
  toolTipPosition: toolTipPosition,
293
294
  chart: this.chart
@@ -295,16 +296,16 @@ class Funnel extends _chartComponent.default {
295
296
  }
296
297
  }
297
298
  Funnel.propTypes = {
298
- canvasStyle: _propTypes.default.object,
299
- chart: _propTypes.default.object,
300
- groupbyColumn: _propTypes.default.object,
301
- columnGroupbyColumn: _propTypes.default.object,
302
- summaryColumn: _propTypes.default.object,
303
- result: _propTypes.default.array,
304
- tables: _propTypes.default.array,
305
- globalTheme: _propTypes.default.string,
306
- chartColorTheme: _propTypes.default.string,
307
- toggleRecords: _propTypes.default.func,
308
- customRender: _propTypes.default.func
299
+ canvasStyle: PropTypes.object,
300
+ chart: PropTypes.object,
301
+ groupbyColumn: PropTypes.object,
302
+ columnGroupbyColumn: PropTypes.object,
303
+ summaryColumn: PropTypes.object,
304
+ result: PropTypes.array,
305
+ tables: PropTypes.array,
306
+ globalTheme: PropTypes.string,
307
+ chartColorTheme: PropTypes.string,
308
+ toggleRecords: PropTypes.func,
309
+ customRender: PropTypes.func
309
310
  };
310
- var _default = exports.default = Funnel;
311
+ export default Funnel;