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,7 +1,3 @@
1
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/esm/createClass";
3
- import _inherits from "@babel/runtime/helpers/esm/inherits";
4
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
1
  import React from 'react';
6
2
  import PropTypes from 'prop-types';
7
3
  import intl from 'react-intl-universal';
@@ -10,7 +6,7 @@ import { Chart } from '../custom-g2';
10
6
  import { formatPieChartData, getCurrentTheme } from '../utils/common-utils';
11
7
  import { EMPTY_NAME, LABEL_FORMATS, LABEL_POSITIONS } from '../constants';
12
8
  import chartStyles from '../assets/css/statistic-chart.module.css';
13
- var propTypes = {
9
+ const propTypes = {
14
10
  isPreview: PropTypes.bool,
15
11
  colorThemeName: PropTypes.string,
16
12
  statItem: PropTypes.object,
@@ -18,62 +14,63 @@ var propTypes = {
18
14
  getTableById: PropTypes.func,
19
15
  toggleStatisticRecordsDialog: PropTypes.func
20
16
  };
21
- var PieChart = /*#__PURE__*/function (_BaseChart) {
22
- _inherits(PieChart, _BaseChart);
23
- var _super = _createSuper(PieChart);
24
- function PieChart(props) {
25
- var _this;
26
- _classCallCheck(this, PieChart);
27
- _this = _super.call(this, props);
28
- _this.drawChart = function (data) {
29
- var isPreview = _this.props.isPreview;
17
+ class PieChart extends BaseChart {
18
+ constructor(props) {
19
+ super(props);
20
+ this.drawChart = data => {
21
+ const {
22
+ isPreview
23
+ } = this.props;
30
24
  if (isPreview) {
31
- _this.chart = new Chart({
32
- container: _this.container,
25
+ this.chart = new Chart({
26
+ container: this.container,
33
27
  autoFit: true,
34
28
  padding: [20, 0]
35
29
  });
36
30
  } else {
37
- _this.chart = new Chart({
38
- container: _this.container,
31
+ this.chart = new Chart({
32
+ container: this.container,
39
33
  autoFit: true,
40
34
  height: 400,
41
35
  width: 700
42
36
  });
43
37
  }
44
- _this.drawPieChart(data, !isPreview);
45
- _this.chart.render();
38
+ this.drawPieChart(data, !isPreview);
39
+ this.chart.render();
46
40
  };
47
- _this.drawPieChart = function (data, isCreating) {
41
+ this.drawPieChart = (data, isCreating) => {
48
42
  if (data.length === 0) return;
49
- var _this$props = _this.props,
50
- getTableById = _this$props.getTableById,
51
- statItem = _this$props.statItem,
52
- colorThemeName = _this$props.colorThemeName;
53
- _this.chart.coordinate('theta', {
43
+ let {
44
+ getTableById,
45
+ statItem,
46
+ colorThemeName
47
+ } = this.props;
48
+ this.chart.coordinate('theta', {
54
49
  radius: isCreating ? 0.75 : 0.95
55
50
  });
56
- var table_id = statItem.table_id,
57
- show_legend = statItem.show_legend,
58
- show_percent = statItem.show_percent,
59
- display_label = statItem.display_label,
60
- label_position = statItem.label_position;
61
- var table = getTableById(table_id);
62
- var currentTheme = getCurrentTheme(colorThemeName);
63
- var themeColors = _this.getThemeColors();
64
- var newData = formatPieChartData(data, statItem, table, currentTheme);
65
- _this.chart.data(newData, {
51
+ const {
52
+ table_id,
53
+ show_legend,
54
+ show_percent,
55
+ display_label,
56
+ label_position
57
+ } = statItem;
58
+ const table = getTableById(table_id);
59
+ const currentTheme = getCurrentTheme(colorThemeName);
60
+ const themeColors = this.getThemeColors();
61
+ const newData = formatPieChartData(data, statItem, table, currentTheme);
62
+ this.chart.data(newData, {
66
63
  'name': {
67
64
  type: 'cat',
68
65
  nice: false
69
66
  }
70
67
  });
71
- _this.chart.on('element:click', function (e) {
72
- _this.props.toggleStatisticRecordsDialog(e.data.data, statItem);
68
+ this.chart.on('element:click', e => {
69
+ this.props.toggleStatisticRecordsDialog(e.data.data, statItem);
73
70
  });
74
- var colorSet = newData.colorSet;
71
+ const colorSet = newData.colorSet;
75
72
  if (show_legend) {
76
- _this.chart.legend('name', {
73
+ this.chart.legend('name', {
77
74
  position: 'right',
78
75
  custom: true,
79
76
  itemName: {
@@ -81,15 +78,15 @@ var PieChart = /*#__PURE__*/function (_BaseChart) {
81
78
  fill: themeColors.textColor
82
79
  }
83
80
  },
84
- items: newData.map(function (obj, index) {
85
- var sIndex = String(index);
86
- var colorIndex = sIndex.charAt(sIndex.length - 1);
87
- var name = obj.name;
81
+ items: newData.map((obj, index) => {
82
+ const sIndex = String(index);
83
+ const colorIndex = sIndex.charAt(sIndex.length - 1);
84
+ let name = obj.name;
88
85
  if (!obj.name && typeof obj.name !== 'number') {
89
86
  name = intl.get(EMPTY_NAME);
90
87
  }
91
88
  return {
92
- name: name,
89
+ name,
93
90
  value: obj.value,
94
91
  marker: {
95
92
  symbol: 'circle',
@@ -102,29 +99,29 @@ var PieChart = /*#__PURE__*/function (_BaseChart) {
102
99
  })
103
100
  });
104
101
  } else {
105
- _this.chart.legend(false);
102
+ this.chart.legend(false);
106
103
  }
107
104
 
108
105
  // Do not automatically adjust the maximum and minimum values in pie chart
109
- _this.chart.scale({
106
+ this.chart.scale({
110
107
  value: {
111
108
  nice: false
112
109
  }
113
110
  });
114
- _this.chart.interval().adjust('stack').position('value').color('name', colorSet).label('formatted_value*percent', function (value, percent) {
111
+ this.chart.interval().adjust('stack').position('value').color('name', colorSet).label('formatted_value*percent', (value, percent) => {
115
112
  return {
116
- content: _this.getLabel(value, percent)
113
+ content: this.getLabel(value, percent)
117
114
  };
118
115
  }, {
119
116
  offset: !label_position || label_position == LABEL_POSITIONS[0] ? isCreating ? -10 : -2 : undefined,
120
117
  style: {
121
118
  fill: themeColors.labelColor,
122
- fontSize: _this.getLabelFontSize(),
119
+ fontSize: this.getLabelFontSize(),
123
120
  shadowBlur: 2,
124
121
  shadowColor: 'rgba(0, 0, 0, .45)'
125
122
  }
126
- }).tooltip('name*formatted_value*percent', function (name, value, percent) {
127
- var title = name;
123
+ }).tooltip('name*formatted_value*percent', (name, value, percent) => {
124
+ let title = name;
128
125
  if (!name || name === 'undefined') {
129
126
  title = intl.get(EMPTY_NAME);
130
127
  } else if (name === 'Others') {
@@ -132,10 +129,10 @@ var PieChart = /*#__PURE__*/function (_BaseChart) {
132
129
  }
133
130
  return show_percent || display_label ? {
134
131
  name: title,
135
- value: _this.getLabel(value, percent)
132
+ value: this.getLabel(value, percent)
136
133
  } : {
137
134
  name: title,
138
- value: value
135
+ value
139
136
  };
140
137
  }).state({
141
138
  active: {
@@ -146,19 +143,20 @@ var PieChart = /*#__PURE__*/function (_BaseChart) {
146
143
  }
147
144
  }
148
145
  });
149
- _this.chart.tooltip({
146
+ this.chart.tooltip({
150
147
  showTitle: false,
151
148
  showMarkers: false,
152
149
  itemTpl: '<div class="g2-tooltip-list-item"><span style="background-color:{color};" class="g2-tooltip-marker"></span>{name}: {value}</div>'
153
150
  });
154
- _this.chart.interaction('element-active');
151
+ this.chart.interaction('element-active');
155
152
  };
156
- _this.getLabel = function (value, percent) {
157
- var _this$props$statItem = _this.props.statItem,
158
- show_percent = _this$props$statItem.show_percent,
159
- display_label = _this$props$statItem.display_label,
160
- label_format = _this$props$statItem.label_format;
161
- var content;
153
+ this.getLabel = (value, percent) => {
154
+ const {
155
+ show_percent,
156
+ display_label,
157
+ label_format
158
+ } = this.props.statItem;
159
+ let content;
162
160
  if (show_percent) {
163
161
  content = percent;
164
162
  return content;
@@ -183,114 +181,103 @@ var PieChart = /*#__PURE__*/function (_BaseChart) {
183
181
  }
184
182
  return content;
185
183
  };
186
- _this.destroyChart = function () {
187
- _this.chart.destroy();
188
- _this.chart = null;
184
+ this.destroyChart = () => {
185
+ this.chart.destroy();
186
+ this.chart = null;
189
187
  };
190
- _this.state = {
188
+ this.state = {
191
189
  isCalculatingData: true,
192
190
  showResultDescription: true
193
191
  };
194
- _this.calculateData = null;
195
- return _this;
192
+ this.calculateData = null;
196
193
  }
197
- _createClass(PieChart, [{
198
- key: "componentDidMount",
199
- value: function componentDidMount() {
200
- var _this2 = this;
201
- var _this$props2 = this.props,
202
- statItem = _this$props2.statItem,
203
- chartCalculator = _this$props2.chartCalculator;
194
+ componentDidMount() {
195
+ const {
196
+ statItem,
197
+ chartCalculator
198
+ } = this.props;
199
+ if (this.container) {
200
+ chartCalculator.calculate(statItem).then(data => {
201
+ const showResultDescription = data && data.length > 0 ? false : true;
202
+ this.setState({
203
+ isCalculatingData: false,
204
+ showResultDescription
205
+ }, () => {
206
+ if (!showResultDescription) {
207
+ this.drawChart(data);
208
+ this.calculateData = data;
209
+ }
210
+ });
211
+ });
212
+ }
213
+ }
214
+ shouldComponentUpdate(nextProps, nextState) {
215
+ const {
216
+ colorThemeName
217
+ } = this.props;
218
+ if (this.canUpdate(this.props, nextProps)) {
219
+ return true;
220
+ }
221
+ if (nextState.isCalculatingData !== this.state.isCalculatingData) {
222
+ return true;
223
+ }
224
+ if (nextProps.colorThemeName !== colorThemeName) {
225
+ return true;
226
+ }
227
+ return false;
228
+ }
229
+ componentDidUpdate(preProps, preState) {
230
+ const {
231
+ statItem,
232
+ chartCalculator
233
+ } = this.props;
234
+ const {
235
+ isCalculatingData
236
+ } = this.state;
237
+ if (isCalculatingData !== preState.isCalculatingData) return;
238
+ if (this.shouldCalculateStatItem(preProps, this.props)) {
239
+ this.setState({
240
+ isCalculatingData: true
241
+ });
204
242
  if (this.container) {
205
- chartCalculator.calculate(statItem).then(function (data) {
206
- var showResultDescription = data && data.length > 0 ? false : true;
207
- _this2.setState({
243
+ chartCalculator.calculate(statItem).then(data => {
244
+ const showResultDescription = data && data.length > 0 ? false : true;
245
+ this.chart && this.destroyChart();
246
+ this.calculateData = data;
247
+ this.setState({
208
248
  isCalculatingData: false,
209
- showResultDescription: showResultDescription
210
- }, function () {
249
+ showResultDescription
250
+ }, () => {
211
251
  if (!showResultDescription) {
212
- _this2.drawChart(data);
213
- _this2.calculateData = data;
252
+ this.drawChart(data);
253
+ if (this.props.isPreview) this.chart.forceFit();
214
254
  }
215
255
  });
216
256
  });
217
257
  }
218
- }
219
- }, {
220
- key: "shouldComponentUpdate",
221
- value: function shouldComponentUpdate(nextProps, nextState) {
222
- var colorThemeName = this.props.colorThemeName;
223
- if (this.canUpdate(this.props, nextProps)) {
224
- return true;
225
- }
226
- if (nextState.isCalculatingData !== this.state.isCalculatingData) {
227
- return true;
228
- }
229
- if (nextProps.colorThemeName !== colorThemeName) {
230
- return true;
231
- }
232
- return false;
233
- }
234
- }, {
235
- key: "componentDidUpdate",
236
- value: function componentDidUpdate(preProps, preState) {
237
- var _this3 = this;
238
- var _this$props3 = this.props,
239
- statItem = _this$props3.statItem,
240
- chartCalculator = _this$props3.chartCalculator;
241
- var isCalculatingData = this.state.isCalculatingData;
242
- if (isCalculatingData !== preState.isCalculatingData) return;
243
- if (this.shouldCalculateStatItem(preProps, this.props)) {
244
- this.setState({
245
- isCalculatingData: true
246
- });
247
- if (this.container) {
248
- chartCalculator.calculate(statItem).then(function (data) {
249
- var showResultDescription = data && data.length > 0 ? false : true;
250
- _this3.chart && _this3.destroyChart();
251
- _this3.calculateData = data;
252
- _this3.setState({
253
- isCalculatingData: false,
254
- showResultDescription: showResultDescription
255
- }, function () {
256
- if (!showResultDescription) {
257
- _this3.drawChart(data);
258
- if (_this3.props.isPreview) _this3.chart.forceFit();
259
- }
260
- });
261
- });
262
- }
263
- } else {
264
- if (!this.state.showResultDescription) {
265
- this.chart && this.destroyChart();
266
- this.drawChart(this.calculateData);
267
- if (this.props.isPreview) {
268
- this.chart.forceFit();
269
- }
258
+ } else {
259
+ if (!this.state.showResultDescription) {
260
+ this.chart && this.destroyChart();
261
+ this.drawChart(this.calculateData);
262
+ if (this.props.isPreview) {
263
+ this.chart.forceFit();
270
264
  }
271
265
  }
272
266
  }
273
- }, {
274
- key: "componentWillUnmount",
275
- value: function componentWillUnmount() {
276
- this.container = null;
277
- }
278
- }, {
279
- key: "render",
280
- value: function render() {
281
- var _this4 = this;
282
- var _this$state = this.state,
283
- isCalculatingData = _this$state.isCalculatingData,
284
- showResultDescription = _this$state.showResultDescription;
285
- return /*#__PURE__*/React.createElement(React.Fragment, null, isCalculatingData && this.renderLoading(), showResultDescription && this.renderEmpty(), /*#__PURE__*/React.createElement("div", {
286
- ref: function ref(_ref) {
287
- return _this4.container = _ref;
288
- },
289
- className: "".concat(chartStyles['statistic-pie-chart-container'], " statistic-chart-container")
290
- }));
291
- }
292
- }]);
293
- return PieChart;
294
- }(BaseChart);
267
+ }
268
+ componentWillUnmount() {
269
+ this.container = null;
270
+ }
271
+ render() {
272
+ const {
273
+ isCalculatingData,
274
+ showResultDescription
275
+ } = this.state;
276
+ return /*#__PURE__*/React.createElement(React.Fragment, null, isCalculatingData && this.renderLoading(), showResultDescription && this.renderEmpty(), /*#__PURE__*/React.createElement("div", {
277
+ ref: ref => this.container = ref,
278
+ className: "".concat(chartStyles['statistic-pie-chart-container'], " statistic-chart-container")
279
+ }));
280
+ }
281
+ }
295
282
  PieChart.propTypes = propTypes;
296
283
  export default PieChart;