dtable-statistic 4.2.2 → 4.3.1

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 (219) hide show
  1. package/es/api/dtable-db-api.js +31 -37
  2. package/es/calculator/base-calculator.js +49 -99
  3. package/es/calculator/basic-chart-calculator.js +335 -559
  4. package/es/calculator/combination-calculator.js +231 -299
  5. package/es/calculator/compare-bar-calculator.js +184 -281
  6. package/es/calculator/completeness-calculator.js +203 -288
  7. package/es/calculator/copy-value.js +18 -18
  8. package/es/calculator/dashboard-calculator.js +68 -137
  9. package/es/calculator/heat-map-calculator.js +139 -220
  10. package/es/calculator/horizontal-bar-calculator.js +64 -93
  11. package/es/calculator/index.js +53 -69
  12. package/es/calculator/map-calculator.js +98 -174
  13. package/es/calculator/mirror-calculator.js +137 -216
  14. package/es/calculator/number-card-calculator.js +58 -126
  15. package/es/calculator/pivot-table-calculator.js +750 -792
  16. package/es/calculator/scatter-calculator.js +72 -140
  17. package/es/calculator/thread-manager.js +48 -67
  18. package/es/calculator/trend-calculator.js +107 -191
  19. package/es/calculator/workers/basic-chart-calculator-worker.js +194 -165
  20. package/es/calculator/workers/calculator.worker.js +22 -6
  21. package/es/calculator/workers/card-calculator-worker.js +16 -14
  22. package/es/calculator/workers/combination-calculator-worker.js +128 -135
  23. package/es/calculator/workers/compare-bar-chart-calculator-worker.js +80 -96
  24. package/es/calculator/workers/completeness-calculator-worker.js +56 -49
  25. package/es/calculator/workers/dashboard-calculator-worker.js +24 -22
  26. package/es/calculator/workers/mirror-calculator-worker.js +52 -52
  27. package/es/calculator/workers/pivot-table-calculator-worker.js +247 -230
  28. package/es/calculator/workers/scatter-calculator-worker.js +34 -32
  29. package/es/calculator/workers/trend-calculator-worker.js +33 -29
  30. package/es/calculator/world-map-calculator.js +120 -197
  31. package/es/components/common-add-tool.js +7 -5
  32. package/es/components/dialog/chart-addition-edit-dialog.js +67 -77
  33. package/es/components/dialog/chart-addition-widgets/chart-selector.js +57 -67
  34. package/es/components/dialog/color-theme-dialog.js +34 -47
  35. package/es/components/dialog/delete-confirmation-dialog.js +7 -5
  36. package/es/components/dialog/enlarged-chart-dialog.js +68 -81
  37. package/es/components/dialog/new-table-dialog.js +62 -80
  38. package/es/components/dialog/new-view-dialog.js +50 -62
  39. package/es/components/dialog/rename-view-dialog.js +49 -58
  40. package/es/components/dialog/statistic-record-dialog/index.js +233 -231
  41. package/es/components/dialog/statistic-types-dialog/index.js +40 -49
  42. package/es/components/dialog/table-select-dialog.js +61 -70
  43. package/es/components/dropdown-menu/statistic-dropdown-menu.js +129 -142
  44. package/es/components/dtable-popover.js +62 -81
  45. package/es/components/dtable-search-input.js +89 -99
  46. package/es/components/dtable-select.js +55 -74
  47. package/es/components/icon.js +5 -3
  48. package/es/components/loading.js +1 -1
  49. package/es/components/modal-portal.js +15 -32
  50. package/es/components/popover/color-rules/color-rule.js +137 -141
  51. package/es/components/popover/color-rules/index.js +58 -66
  52. package/es/components/popover/color-rules/rule-filters/filter.js +124 -124
  53. package/es/components/popover/color-rules/rule-filters/index.js +50 -58
  54. package/es/components/popover/color-rules/rule-filters/number-input.js +42 -57
  55. package/es/components/popover/color-rules-popover.js +117 -121
  56. package/es/components/popover/color-selector-popover.js +60 -70
  57. package/es/components/seatable-radio/index.js +2 -2
  58. package/es/components/select/option-group.js +139 -157
  59. package/es/components/select/option.js +26 -40
  60. package/es/components/select/select.js +97 -112
  61. package/es/components/toast/alert.js +65 -80
  62. package/es/components/toast/index.js +1 -1
  63. package/es/components/toast/toast.js +76 -103
  64. package/es/components/toast/toastManager.js +57 -93
  65. package/es/components/toast/toaster.js +58 -56
  66. package/es/constants/color-rules.js +8 -5
  67. package/es/constants/dtable-select-style.js +44 -48
  68. package/es/constants/event-types.js +4 -4
  69. package/es/constants/index.js +328 -242
  70. package/es/constants/map.js +2 -2
  71. package/es/constants/model.js +20 -20
  72. package/es/constants/regions.js +1 -1
  73. package/es/constants/zIndexes.js +1 -1
  74. package/es/custom-g2.js +11 -11
  75. package/es/dashboard.js +343 -333
  76. package/es/desktop-dashboard.js +217 -224
  77. package/es/index.js +45 -58
  78. package/es/locale/index.js +3 -3
  79. package/es/locale/lang/de.js +1 -1
  80. package/es/locale/lang/en.js +7 -7
  81. package/es/locale/lang/fr.js +1 -1
  82. package/es/locale/lang/zh_CN.js +1 -1
  83. package/es/mobile-dashboard.js +76 -89
  84. package/es/model/bar-group.js +34 -44
  85. package/es/model/bar.js +26 -36
  86. package/es/model/base-model.js +11 -12
  87. package/es/model/basic-number-card.js +10 -20
  88. package/es/model/collaborators.js +10 -11
  89. package/es/model/combination.js +32 -42
  90. package/es/model/compare-bar.js +30 -40
  91. package/es/model/completeness-group.js +19 -29
  92. package/es/model/completeness.js +14 -24
  93. package/es/model/custom-bar.js +14 -24
  94. package/es/model/dashboard.js +9 -19
  95. package/es/model/generic-model.js +187 -197
  96. package/es/model/heat-map.js +16 -26
  97. package/es/model/horizontal-bar-group.js +32 -42
  98. package/es/model/horizontal-bar.js +26 -36
  99. package/es/model/index.js +31 -3
  100. package/es/model/map.js +20 -30
  101. package/es/model/mirror.js +15 -25
  102. package/es/model/pie.js +21 -31
  103. package/es/model/ring.js +23 -33
  104. package/es/model/scatter.js +11 -21
  105. package/es/model/statistic-dashboard.js +7 -8
  106. package/es/model/table.js +19 -29
  107. package/es/model/trend.js +15 -25
  108. package/es/model/world-map.js +17 -27
  109. package/es/service/chart-service.js +69 -65
  110. package/es/service/dashboard-service.js +421 -419
  111. package/es/service/map-json.js +112 -132
  112. package/es/stat-editor/chart-name-editor.js +44 -58
  113. package/es/stat-editor/index.js +59 -70
  114. package/es/stat-editor/stat-settings/advance-chart-settings/basic-number-card-settings.js +93 -98
  115. package/es/stat-editor/stat-settings/advance-chart-settings/combination-settings.js +246 -248
  116. package/es/stat-editor/stat-settings/advance-chart-settings/dashboard-chart-settings.js +127 -126
  117. package/es/stat-editor/stat-settings/advance-chart-settings/geo-granularity-settings.js +5 -3
  118. package/es/stat-editor/stat-settings/advance-chart-settings/heat-map-settings.js +78 -90
  119. package/es/stat-editor/stat-settings/advance-chart-settings/index.js +146 -150
  120. package/es/stat-editor/stat-settings/advance-chart-settings/map-settings.js +88 -98
  121. package/es/stat-editor/stat-settings/advance-chart-settings/mirror-settings.js +100 -118
  122. package/es/stat-editor/stat-settings/advance-chart-settings/style-setting/combination-style-setting.js +161 -148
  123. package/es/stat-editor/stat-settings/advance-chart-settings/style-setting/heat-map-settings.js +58 -66
  124. package/es/stat-editor/stat-settings/advance-chart-settings/style-setting/map-setting.js +58 -60
  125. package/es/stat-editor/stat-settings/advance-chart-settings/summary-settings.js +152 -148
  126. package/es/stat-editor/stat-settings/advance-chart-settings/trend-chart-settings.js +101 -105
  127. package/es/stat-editor/stat-settings/advance-chart-settings/world-map-settings.js +81 -91
  128. package/es/stat-editor/stat-settings/basic-chart-settings/advance-bar-chart-settings.js +110 -122
  129. package/es/stat-editor/stat-settings/basic-chart-settings/bar-settings.js +101 -113
  130. package/es/stat-editor/stat-settings/basic-chart-settings/completeness-chart-settings.js +130 -120
  131. package/es/stat-editor/stat-settings/basic-chart-settings/custom-bar-settings.js +88 -102
  132. package/es/stat-editor/stat-settings/basic-chart-settings/groupby-settings.js +88 -102
  133. package/es/stat-editor/stat-settings/basic-chart-settings/horizontal-axis-group-settings.js +200 -194
  134. package/es/stat-editor/stat-settings/basic-chart-settings/horizontal-bar-settings.js +98 -110
  135. package/es/stat-editor/stat-settings/basic-chart-settings/horizontal-group-chart-settings.js +106 -118
  136. package/es/stat-editor/stat-settings/basic-chart-settings/index.js +212 -223
  137. package/es/stat-editor/stat-settings/basic-chart-settings/pie-settings.js +109 -119
  138. package/es/stat-editor/stat-settings/basic-chart-settings/pivot-table-settings.js +329 -319
  139. package/es/stat-editor/stat-settings/basic-chart-settings/scatter-settings.js +82 -90
  140. package/es/stat-editor/stat-settings/basic-chart-settings/stack-item-settings.js +58 -65
  141. package/es/stat-editor/stat-settings/basic-chart-settings/stacks-settings.js +126 -116
  142. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/bar-chart-style-setting.js +201 -182
  143. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/completeness-style.js +79 -79
  144. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/horizontal-bar-chart-style.js +196 -175
  145. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/label-font-size-editor.js +35 -50
  146. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/pie-chart-style-settings.js +180 -147
  147. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/time-compare-style.js +31 -40
  148. package/es/stat-editor/stat-settings/basic-chart-settings/summary-method-setting.js +56 -67
  149. package/es/stat-editor/stat-settings/basic-chart-settings/summary-settings.js +60 -69
  150. package/es/stat-editor/stat-settings/basic-chart-settings/time-comparison-settings.js +165 -158
  151. package/es/stat-editor/stat-settings/basic-chart-settings/timer-picker.js +61 -74
  152. package/es/stat-editor/stat-settings/basic-chart-settings/y-axis-group-settings.js +199 -193
  153. package/es/stat-editor/stat-settings/color-setting/color-group-selector.js +25 -38
  154. package/es/stat-editor/stat-settings/color-setting/color-picker.js +79 -86
  155. package/es/stat-editor/stat-settings/color-setting/color-use-type-selector.js +138 -120
  156. package/es/stat-editor/stat-settings/map/map-level.js +31 -43
  157. package/es/stat-editor/stat-settings/map/map-province-city.js +82 -83
  158. package/es/stat-editor/stat-settings/public-setting/axis-label-position-setting.js +48 -50
  159. package/es/stat-editor/stat-settings/public-setting/base-settings.js +96 -96
  160. package/es/stat-editor/stat-settings/public-setting/calender.js +69 -75
  161. package/es/stat-editor/stat-settings/public-setting/column-settings.js +5 -3
  162. package/es/stat-editor/stat-settings/public-setting/custom-title-setting.js +36 -41
  163. package/es/stat-editor/stat-settings/public-setting/data-sort-setting.js +37 -41
  164. package/es/stat-editor/stat-settings/public-setting/ind-toggle-setting.js +25 -38
  165. package/es/stat-editor/stat-settings/public-setting/min-max-setting.js +40 -52
  166. package/es/stat-editor/stat-settings/public-setting/numeric-summary-item.js +90 -93
  167. package/es/stat-editor/stat-settings/public-setting/toggle-setting.js +23 -36
  168. package/es/stat-editor/stat-settings/public-setting/type-settings/index.js +39 -44
  169. package/es/stat-list/chart-preview.js +85 -98
  170. package/es/stat-list/index.js +170 -178
  171. package/es/stat-view/area-chart.js +282 -274
  172. package/es/stat-view/bar-chart.js +300 -292
  173. package/es/stat-view/base-chart.js +58 -52
  174. package/es/stat-view/basic-number-card.js +115 -168
  175. package/es/stat-view/combination-chart.js +298 -334
  176. package/es/stat-view/compare-chart.js +256 -254
  177. package/es/stat-view/completeness-chart.js +194 -206
  178. package/es/stat-view/custom-bar.js +221 -223
  179. package/es/stat-view/dashboard-chart.js +122 -180
  180. package/es/stat-view/heat-map.js +268 -294
  181. package/es/stat-view/horizontal-bar-chart.js +291 -281
  182. package/es/stat-view/index.js +136 -152
  183. package/es/stat-view/line-chart.js +267 -265
  184. package/es/stat-view/map.js +246 -246
  185. package/es/stat-view/mirror.js +141 -152
  186. package/es/stat-view/pie-chart.js +143 -156
  187. package/es/stat-view/pivot-table/index.js +113 -118
  188. package/es/stat-view/pivot-table/one-dimension-table-no-numeric-columns.js +104 -102
  189. package/es/stat-view/pivot-table/one-dimension-table-with-numeric-columns.js +116 -118
  190. package/es/stat-view/pivot-table/pivot-table-display-name.js +96 -95
  191. package/es/stat-view/pivot-table/two-dimension-table.js +238 -229
  192. package/es/stat-view/ring-chart.js +189 -200
  193. package/es/stat-view/scatter-chart.js +162 -213
  194. package/es/stat-view/treemap-chart.js +136 -200
  195. package/es/stat-view/trend-chart.js +137 -183
  196. package/es/stat-view/world-map.js +233 -243
  197. package/es/tabs/index.js +164 -169
  198. package/es/tabs/tab.js +101 -116
  199. package/es/utils/basic-chart-utils.js +7 -9
  200. package/es/utils/cell-format.js +48 -51
  201. package/es/utils/cell-value.js +1 -1
  202. package/es/utils/collaborator.js +15 -14
  203. package/es/utils/color-utils.js +48 -37
  204. package/es/utils/column-utils.js +47 -33
  205. package/es/utils/column.js +1 -1
  206. package/es/utils/common-utils.js +111 -117
  207. package/es/utils/date-format.js +17 -17
  208. package/es/utils/export-table-utils.js +507 -396
  209. package/es/utils/index.js +6 -6
  210. package/es/utils/map.js +30 -34
  211. package/es/utils/model.js +3 -5
  212. package/es/utils/object.js +4 -4
  213. package/es/utils/pivot-table.js +20 -20
  214. package/es/utils/row-utils.js +41 -33
  215. package/es/utils/search.js +18 -20
  216. package/es/utils/sql-utils.js +132 -98
  217. package/es/utils/stat-utils.js +303 -320
  218. package/es/utils/trend-utils.js +57 -67
  219. package/package.json +2 -2
@@ -1,6 +1,3 @@
1
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
- import _inherits from "@babel/runtime/helpers/esm/inherits";
3
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
4
1
  import React, { Component } from 'react';
5
2
  import intl from 'react-intl-universal';
6
3
  import { getNumberDisplayString } from 'dtable-store';
@@ -8,7 +5,7 @@ import { Loading } from '../components';
8
5
  import { getLabelFontSize, isStatItemEqual, shouldCalculateStatItem } from '../utils/common-utils';
9
6
  import { getChartDisplayLabels } from '../utils/basic-chart-utils';
10
7
  import { EMPTY_NAME, NO_STATISTIC_RESULTS, STAT_ITEM_THEME_COLORS, SUMMARY_METHOD_MAP, THEME_NAME_MAP } from '../constants';
11
- var CHART_STYLE_CONFIG = {
8
+ const CHART_STYLE_CONFIG = {
12
9
  'g2-tooltip': {
13
10
  borderRadius: '2px',
14
11
  backgroundColor: '#fff',
@@ -18,70 +15,77 @@ var CHART_STYLE_CONFIG = {
18
15
  marginTop: '5px'
19
16
  }
20
17
  };
21
- var BaseChart = /*#__PURE__*/function (_Component) {
22
- _inherits(BaseChart, _Component);
23
- var _super = _createSuper(BaseChart);
24
- function BaseChart() {
18
+ class BaseChart extends Component {
19
+ constructor() {
25
20
  var _this;
26
- _classCallCheck(this, BaseChart);
27
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
28
- args[_key] = arguments[_key];
29
- }
30
- _this = _super.call.apply(_super, [this].concat(args));
31
- _this.needRefresh = function (preProps, nextProps) {
32
- var dtableChangedTime = nextProps.dtableChangedTime;
21
+ super(...arguments);
22
+ _this = this;
23
+ this.needRefresh = (preProps, nextProps) => {
24
+ const {
25
+ dtableChangedTime
26
+ } = nextProps;
33
27
  return dtableChangedTime !== preProps.dtableChangedTime;
34
28
  };
35
- _this.canUpdate = function (preProps, nextProps) {
36
- var statItem = preProps.statItem,
37
- theme = preProps.theme;
38
- var nextStatItem = nextProps.statItem,
39
- nextTheme = nextProps.theme;
40
- return !isStatItemEqual(statItem, nextStatItem) || _this.needRefresh(preProps, nextProps) || nextTheme !== theme;
29
+ this.canUpdate = (preProps, nextProps) => {
30
+ const {
31
+ statItem,
32
+ theme
33
+ } = preProps;
34
+ const {
35
+ statItem: nextStatItem,
36
+ theme: nextTheme
37
+ } = nextProps;
38
+ return !isStatItemEqual(statItem, nextStatItem) || this.needRefresh(preProps, nextProps) || nextTheme !== theme;
41
39
  };
42
- _this.shouldCalculateStatItem = function (preProps, nextProps) {
43
- var statItem = preProps.statItem;
44
- var nextStatItem = nextProps.statItem;
45
- return shouldCalculateStatItem(statItem, nextStatItem) || _this.needRefresh(preProps, nextProps);
40
+ this.shouldCalculateStatItem = (preProps, nextProps) => {
41
+ const {
42
+ statItem
43
+ } = preProps;
44
+ const {
45
+ statItem: nextStatItem
46
+ } = nextProps;
47
+ return shouldCalculateStatItem(statItem, nextStatItem) || this.needRefresh(preProps, nextProps);
46
48
  };
47
- _this.getTicks = function (data, width) {
48
- var labelCount = data.length;
49
+ this.getTicks = (data, width) => {
50
+ const labelCount = data.length;
49
51
  if (Math.floor(width / labelCount) > 20) {
50
52
  return [];
51
53
  }
52
54
  return getChartDisplayLabels(width, 20, data);
53
55
  };
54
- _this.getLabelCount = function (ticks, data) {
55
- var ticksLen = ticks.length;
56
+ this.getLabelCount = (ticks, data) => {
57
+ const ticksLen = ticks.length;
56
58
  return ticksLen > 0 ? ticksLen : data.length;
57
59
  };
58
- _this.getThemeColors = function () {
59
- var themeColors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
60
+ this.getThemeColors = function () {
61
+ let themeColors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
60
62
  // dark->custom->light
61
- var _this$props = _this.props,
62
- isPreview = _this$props.isPreview,
63
- isEnlarge = _this$props.isEnlarge,
64
- theme = _this$props.theme;
63
+ const {
64
+ isPreview,
65
+ isEnlarge,
66
+ theme
67
+ } = _this.props;
65
68
  if (theme === THEME_NAME_MAP.DARK && !isEnlarge && isPreview) {
66
69
  themeColors = STAT_ITEM_THEME_COLORS.dark;
67
70
  }
68
71
  return themeColors || STAT_ITEM_THEME_COLORS[THEME_NAME_MAP.LIGHT];
69
72
  };
70
- _this.getAxisLabelColor = function (textColor) {
71
- var _this$props2 = _this.props,
72
- isPreview = _this$props2.isPreview,
73
- isEnlarge = _this$props2.isEnlarge,
74
- theme = _this$props2.theme;
73
+ this.getAxisLabelColor = textColor => {
74
+ const {
75
+ isPreview,
76
+ isEnlarge,
77
+ theme
78
+ } = this.props;
75
79
  if (theme === THEME_NAME_MAP.DARK && !isEnlarge && isPreview) {
76
80
  return '#ffffff';
77
81
  }
78
82
  return textColor || '#999999';
79
83
  };
80
- _this.getDefaultChartStyleByKey = function (key) {
84
+ this.getDefaultChartStyleByKey = key => {
81
85
  return CHART_STYLE_CONFIG[key] || {};
82
86
  };
83
- _this.labelFormatter = function (name) {
84
- var label = name;
87
+ this.labelFormatter = name => {
88
+ let label = name;
85
89
  if (name.length > 10) {
86
90
  label = "".concat(name.slice(0, 10), "...");
87
91
  }
@@ -90,29 +94,31 @@ var BaseChart = /*#__PURE__*/function (_Component) {
90
94
  }
91
95
  return label;
92
96
  };
93
- _this.getLabelFontSize = function () {
94
- var statItem = _this.props.statItem;
95
- var label_font_size = statItem.label_font_size;
97
+ this.getLabelFontSize = () => {
98
+ const {
99
+ statItem
100
+ } = this.props;
101
+ const {
102
+ label_font_size
103
+ } = statItem;
96
104
  return getLabelFontSize(label_font_size);
97
105
  };
98
- _this.getNumberDisplayString = function (value, columnData, summaryMethod) {
106
+ this.getNumberDisplayString = (value, columnData, summaryMethod) => {
99
107
  if (summaryMethod === SUMMARY_METHOD_MAP.Distinct_values) {
100
108
  return value;
101
109
  }
102
110
  return getNumberDisplayString(value, columnData);
103
111
  };
104
- _this.renderLoading = function () {
112
+ this.renderLoading = () => {
105
113
  return /*#__PURE__*/React.createElement("div", {
106
114
  className: 'statistic-chart-loading-container'
107
115
  }, /*#__PURE__*/React.createElement(Loading, null));
108
116
  };
109
- _this.renderEmpty = function () {
117
+ this.renderEmpty = () => {
110
118
  return /*#__PURE__*/React.createElement("div", {
111
119
  className: 'statistic-chart-text'
112
120
  }, intl.get(NO_STATISTIC_RESULTS));
113
121
  };
114
- return _this;
115
122
  }
116
- return BaseChart;
117
- }(Component);
123
+ }
118
124
  export default BaseChart;
@@ -1,9 +1,3 @@
1
- import _regeneratorRuntime from "@babel/runtime/regenerator";
2
- import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
- import _createClass from "@babel/runtime/helpers/esm/createClass";
5
- import _inherits from "@babel/runtime/helpers/esm/inherits";
6
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
7
1
  import React from 'react';
8
2
  import PropTypes from 'prop-types';
9
3
  import intl from 'react-intl-universal';
@@ -11,164 +5,125 @@ import { TableUtils } from 'dtable-store';
11
5
  import BaseChart from './base-chart';
12
6
  import { Chart } from '../custom-g2';
13
7
  import { EMPTY_NAME, SUMMARY_METHOD_MAP } from '../constants';
14
- var propTypes = {
8
+ const propTypes = {
15
9
  isPreview: PropTypes.bool,
16
10
  statItem: PropTypes.object,
17
11
  chartCalculator: PropTypes.object,
18
12
  getTableById: PropTypes.func
19
13
  };
20
- var BasicNumericCard = /*#__PURE__*/function (_BaseChart) {
21
- _inherits(BasicNumericCard, _BaseChart);
22
- var _super = _createSuper(BasicNumericCard);
23
- function BasicNumericCard(props) {
24
- var _this;
25
- _classCallCheck(this, BasicNumericCard);
26
- _this = _super.call(this, props);
27
- _this.componentDidMount = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
28
- var _this$props, statItem, chartCalculator, data;
29
- return _regeneratorRuntime.wrap(function _callee$(_context) {
30
- while (1) {
31
- switch (_context.prev = _context.next) {
32
- case 0:
33
- _this$props = _this.props, statItem = _this$props.statItem, chartCalculator = _this$props.chartCalculator;
34
- if (!_this.container) {
35
- _context.next = 8;
36
- break;
37
- }
38
- _context.next = 4;
39
- return chartCalculator.calculate(statItem);
40
- case 4:
41
- data = _context.sent;
42
- _this.setState({
43
- isCalculatingData: false
44
- });
45
- _this.drawChart(data);
46
- _this.calculateData = data;
47
- case 8:
48
- case "end":
49
- return _context.stop();
14
+ class BasicNumericCard extends BaseChart {
15
+ constructor(props) {
16
+ super(props);
17
+ this.componentDidMount = async () => {
18
+ const {
19
+ statItem,
20
+ chartCalculator
21
+ } = this.props;
22
+ if (this.container) {
23
+ const data = await chartCalculator.calculate(statItem);
24
+ this.setState({
25
+ isCalculatingData: false
26
+ });
27
+ this.drawChart(data);
28
+ this.calculateData = data;
29
+ }
30
+ };
31
+ this.componentDidUpdate = async (preProps, preState) => {
32
+ const {
33
+ statItem,
34
+ chartCalculator
35
+ } = this.props;
36
+ const {
37
+ isCalculatingData
38
+ } = this.state;
39
+ if (isCalculatingData !== preState.isCalculatingData) return;
40
+ if (this.shouldCalculateStatItem(preProps, this.props)) {
41
+ this.setState({
42
+ isCalculatingData: true
43
+ });
44
+ if (this.container) {
45
+ const data = await chartCalculator.calculate(statItem);
46
+ this.calculateData = data;
47
+ this.setState({
48
+ isCalculatingData: false
49
+ });
50
+ this.chart && this.chart.destroy();
51
+ this.drawChart(data);
52
+ if (this.props.isPreview) {
53
+ this.chart.forceFit();
50
54
  }
51
55
  }
52
- }, _callee);
53
- }));
54
- _this.componentDidUpdate = /*#__PURE__*/function () {
55
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(preProps, preState) {
56
- var _this$props2, statItem, chartCalculator, isCalculatingData, data;
57
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
58
- while (1) {
59
- switch (_context2.prev = _context2.next) {
60
- case 0:
61
- _this$props2 = _this.props, statItem = _this$props2.statItem, chartCalculator = _this$props2.chartCalculator;
62
- isCalculatingData = _this.state.isCalculatingData;
63
- if (!(isCalculatingData !== preState.isCalculatingData)) {
64
- _context2.next = 4;
65
- break;
66
- }
67
- return _context2.abrupt("return");
68
- case 4:
69
- if (!_this.shouldCalculateStatItem(preProps, _this.props)) {
70
- _context2.next = 17;
71
- break;
72
- }
73
- _this.setState({
74
- isCalculatingData: true
75
- });
76
- if (!_this.container) {
77
- _context2.next = 15;
78
- break;
79
- }
80
- _context2.next = 9;
81
- return chartCalculator.calculate(statItem);
82
- case 9:
83
- data = _context2.sent;
84
- _this.calculateData = data;
85
- _this.setState({
86
- isCalculatingData: false
87
- });
88
- _this.chart && _this.chart.destroy();
89
- _this.drawChart(data);
90
- if (_this.props.isPreview) {
91
- _this.chart.forceFit();
92
- }
93
- case 15:
94
- _context2.next = 20;
95
- break;
96
- case 17:
97
- _this.chart && _this.chart.destroy();
98
- _this.drawChart(_this.calculateData);
99
- if (_this.props.isPreview) {
100
- _this.chart.forceFit();
101
- }
102
- case 20:
103
- case "end":
104
- return _context2.stop();
105
- }
106
- }
107
- }, _callee2);
108
- }));
109
- return function (_x, _x2) {
110
- return _ref2.apply(this, arguments);
111
- };
112
- }();
113
- _this.drawChart = function (data) {
114
- var _this$props3 = _this.props,
115
- isPreview = _this$props3.isPreview,
116
- statItem = _this$props3.statItem;
56
+ } else {
57
+ this.chart && this.chart.destroy();
58
+ this.drawChart(this.calculateData);
59
+ if (this.props.isPreview) {
60
+ this.chart.forceFit();
61
+ }
62
+ }
63
+ };
64
+ this.drawChart = data => {
65
+ const {
66
+ isPreview,
67
+ statItem
68
+ } = this.props;
117
69
  if (isPreview) {
118
- _this.chart = new Chart({
119
- container: _this.container,
70
+ this.chart = new Chart({
71
+ container: this.container,
120
72
  autoFit: true
121
73
  });
122
74
  } else {
123
- _this.chart = new Chart({
124
- container: _this.container,
75
+ this.chart = new Chart({
76
+ container: this.container,
125
77
  autoFit: true,
126
78
  height: 400,
127
79
  width: 700
128
80
  });
129
81
  }
130
- var content = _this.formatData(data);
131
- var fontSize = _this.getFontSize(content);
132
- var labelFontSize = fontSize - 35;
82
+ const content = this.formatData(data);
83
+ const fontSize = this.getFontSize(content);
84
+ let labelFontSize = fontSize - 35;
133
85
  if (labelFontSize > 20) {
134
86
  labelFontSize = 20;
135
87
  }
136
88
  if (labelFontSize < 12) {
137
89
  labelFontSize = 12;
138
90
  }
139
- var themeColors = _this.getThemeColors();
140
- _this.chart.annotation().html({
91
+ const themeColors = this.getThemeColors();
92
+ this.chart.annotation().html({
141
93
  position: ['50%', '50%'],
142
94
  html: "\n <div style=\"color: ".concat(themeColors.cardColor, "; text-align: center;\">\n <p class=\"text-content\" style=\"font-size: ").concat(fontSize, "px; margin: -15px 0 2px 0;\">").concat(content, "</p>\n <p style=\"font-size: ").concat(labelFontSize, "px;margin: 0;\">").concat(statItem.name || '', "</p>\n </div>\n ")
143
95
  });
144
- _this.chart.render();
96
+ this.chart.render();
145
97
  };
146
- _this.formatData = function (data) {
147
- var _this$props4 = _this.props,
148
- getTableById = _this$props4.getTableById,
149
- statItem = _this$props4.statItem;
150
- var summary_method = statItem.summary_method,
151
- table_id = statItem.table_id,
152
- numeric_column = statItem.numeric_column;
98
+ this.formatData = data => {
99
+ const {
100
+ getTableById,
101
+ statItem
102
+ } = this.props;
103
+ const {
104
+ summary_method,
105
+ table_id,
106
+ numeric_column
107
+ } = statItem;
153
108
  if (summary_method === SUMMARY_METHOD_MAP.Distinct_values) {
154
109
  return data;
155
110
  }
156
111
  if (!data) return intl.get(EMPTY_NAME);
157
112
  if (summary_method !== 'Row_count') {
158
- var table = getTableById(table_id);
159
- var selectedColumn = TableUtils.getTableColumnByKey(table, numeric_column);
160
- var formattedContent = _this.getNumberDisplayString(data, selectedColumn.data || {});
113
+ const table = getTableById(table_id);
114
+ const selectedColumn = TableUtils.getTableColumnByKey(table, numeric_column);
115
+ const formattedContent = this.getNumberDisplayString(data, selectedColumn.data || {});
161
116
  return formattedContent;
162
117
  }
163
- var string = data + '';
164
- var isFloat = string.indexOf('.') > 0;
118
+ let string = data + '';
119
+ const isFloat = string.indexOf('.') > 0;
165
120
  if (isFloat) {
166
121
  string = string.slice(0, string.indexOf('.'));
167
122
  }
168
- var content = '';
169
- var endPoint = -3;
170
- var startPoint = 0;
171
- var subString = string.slice(endPoint);
123
+ let content = '';
124
+ let endPoint = -3;
125
+ let startPoint = 0;
126
+ let subString = string.slice(endPoint);
172
127
  while (subString.length === 3) {
173
128
  content = ',' + subString + content;
174
129
  startPoint = endPoint;
@@ -180,18 +135,20 @@ var BasicNumericCard = /*#__PURE__*/function (_BaseChart) {
180
135
  content = content.slice(1);
181
136
  }
182
137
  if (isFloat) {
183
- var initString = data + '';
138
+ const initString = data + '';
184
139
  content = content + initString.slice(initString.indexOf('.'));
185
140
  }
186
141
  return content;
187
142
  };
188
- _this.getFontSize = function (content) {
189
- var canvas = document.createElement('canvas');
190
- var context = canvas.getContext('2d');
191
- var width = _this.chart.width;
192
- var font = context.font;
193
- var initFontSize = 70;
194
- var fontStyle = font.slice(font.indexOf('px'));
143
+ this.getFontSize = content => {
144
+ let canvas = document.createElement('canvas');
145
+ const context = canvas.getContext('2d');
146
+ const {
147
+ width
148
+ } = this.chart;
149
+ let font = context.font;
150
+ let initFontSize = 70;
151
+ const fontStyle = font.slice(font.indexOf('px'));
195
152
  font = initFontSize + fontStyle;
196
153
  context.font = font;
197
154
  context.fontSize = initFontSize;
@@ -206,42 +163,32 @@ var BasicNumericCard = /*#__PURE__*/function (_BaseChart) {
206
163
  }
207
164
  return initFontSize;
208
165
  };
209
- _this.state = {
166
+ this.state = {
210
167
  isCalculatingData: true
211
168
  };
212
- _this.calculateData = null;
213
- return _this;
169
+ this.calculateData = null;
214
170
  }
215
- _createClass(BasicNumericCard, [{
216
- key: "shouldComponentUpdate",
217
- value: function shouldComponentUpdate(nextProps, nextState) {
218
- if (this.canUpdate(this.props, nextProps)) {
219
- return true;
220
- }
221
- if (nextState.isCalculatingData !== this.state.isCalculatingData) {
222
- return true;
223
- }
224
- return false;
225
- }
226
- }, {
227
- key: "componentWillUnmount",
228
- value: function componentWillUnmount() {
229
- this.container = null;
171
+ shouldComponentUpdate(nextProps, nextState) {
172
+ if (this.canUpdate(this.props, nextProps)) {
173
+ return true;
230
174
  }
231
- }, {
232
- key: "render",
233
- value: function render() {
234
- var _this2 = this;
235
- var isCalculatingData = this.state.isCalculatingData;
236
- return /*#__PURE__*/React.createElement(React.Fragment, null, isCalculatingData && this.renderLoading(), /*#__PURE__*/React.createElement("div", {
237
- ref: function ref(_ref3) {
238
- return _this2.container = _ref3;
239
- },
240
- className: "statistic-chart-container statistic-number-card"
241
- }));
175
+ if (nextState.isCalculatingData !== this.state.isCalculatingData) {
176
+ return true;
242
177
  }
243
- }]);
244
- return BasicNumericCard;
245
- }(BaseChart);
178
+ return false;
179
+ }
180
+ componentWillUnmount() {
181
+ this.container = null;
182
+ }
183
+ render() {
184
+ const {
185
+ isCalculatingData
186
+ } = this.state;
187
+ return /*#__PURE__*/React.createElement(React.Fragment, null, isCalculatingData && this.renderLoading(), /*#__PURE__*/React.createElement("div", {
188
+ ref: ref => this.container = ref,
189
+ className: "statistic-chart-container statistic-number-card"
190
+ }));
191
+ }
192
+ }
246
193
  BasicNumericCard.propTypes = propTypes;
247
194
  export default BasicNumericCard;