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';
@@ -11,87 +7,87 @@ import { Chart } from '../custom-g2';
11
7
  import { formatPieChartData, getCurrentTheme } from '../utils/common-utils';
12
8
  import { DEFAULT_ANNOTATION_SIZE, DEFAULT_NUMBER_FORMAT_OBJECT, EMPTY_NAME, LABEL_FORMATS, LABEL_POSITIONS, SUMMARY_TYPE, TITLE_TOTAL } from '../constants';
13
9
  import chartStyles from '../assets/css/statistic-chart.module.css';
14
- var propTypes = {
10
+ const propTypes = {
15
11
  isPreview: PropTypes.bool,
16
12
  colorThemeName: PropTypes.string,
17
13
  statItem: PropTypes.object,
18
14
  chartCalculator: PropTypes.object,
19
15
  toggleStatisticRecordsDialog: PropTypes.func
20
16
  };
21
- var RingChart = /*#__PURE__*/function (_BaseChart) {
22
- _inherits(RingChart, _BaseChart);
23
- var _super = _createSuper(RingChart);
24
- function RingChart(props) {
25
- var _this;
26
- _classCallCheck(this, RingChart);
27
- _this = _super.call(this, props);
28
- _this.drawChart = function (data) {
29
- var _this$props = _this.props,
30
- isPreview = _this$props.isPreview,
31
- statItem = _this$props.statItem;
17
+ class RingChart extends BaseChart {
18
+ constructor(props) {
19
+ super(props);
20
+ this.drawChart = data => {
21
+ const {
22
+ isPreview,
23
+ statItem
24
+ } = this.props;
32
25
  if (isPreview) {
33
- _this.chart = new Chart({
34
- container: _this.container,
26
+ this.chart = new Chart({
27
+ container: this.container,
35
28
  autoFit: true,
36
29
  padding: [20, 0]
37
30
  });
38
31
  } else {
39
- _this.chart = new Chart({
40
- container: _this.container,
32
+ this.chart = new Chart({
33
+ container: this.container,
41
34
  autoFit: true,
42
35
  height: 400,
43
36
  width: 700
44
37
  });
45
38
  }
46
- _this.chart.on('element:click', function (e) {
47
- var clickData = e.data.data;
39
+ this.chart.on('element:click', e => {
40
+ const clickData = e.data.data;
48
41
  if (clickData.name !== 'Others') {
49
- _this.props.toggleStatisticRecordsDialog(e.data.data, statItem);
42
+ this.props.toggleStatisticRecordsDialog(e.data.data, statItem);
50
43
  }
51
44
  });
52
- _this.drawRingChart(data, !isPreview);
53
- _this.chart.render();
45
+ this.drawRingChart(data, !isPreview);
46
+ this.chart.render();
54
47
  };
55
- _this.drawRingChart = function (data, isCreating) {
56
- _this.sum = data.total;
48
+ this.drawRingChart = (data, isCreating) => {
49
+ this.sum = data.total;
57
50
  if (data.length === 0) return;
58
- var _this$props2 = _this.props,
59
- getTableById = _this$props2.getTableById,
60
- statItem = _this$props2.statItem,
61
- colorThemeName = _this$props2.colorThemeName;
62
- var summaryColumn = null;
63
- var summaryColumnData = DEFAULT_NUMBER_FORMAT_OBJECT;
64
- var summary_type = statItem.summary_type,
65
- summary_method = statItem.summary_method,
66
- summary_column_key = statItem.summary_column_key,
67
- table_id = statItem.table_id,
68
- show_legend = statItem.show_legend,
69
- show_percent = statItem.show_percent,
70
- display_label = statItem.display_label,
71
- label_position = statItem.label_position,
72
- display_annotation = statItem.display_annotation;
73
- var table = getTableById(table_id);
51
+ let {
52
+ getTableById,
53
+ statItem,
54
+ colorThemeName
55
+ } = this.props;
56
+ let summaryColumn = null;
57
+ let summaryColumnData = DEFAULT_NUMBER_FORMAT_OBJECT;
58
+ const {
59
+ summary_type,
60
+ summary_method,
61
+ summary_column_key,
62
+ table_id,
63
+ show_legend,
64
+ show_percent,
65
+ display_label,
66
+ label_position,
67
+ display_annotation
68
+ } = statItem;
69
+ const table = getTableById(table_id);
74
70
  if (summary_type !== SUMMARY_TYPE.COUNT) {
75
71
  summaryColumn = summary_column_key && TableUtils.getTableColumnByKey(table, summary_column_key);
76
72
  summaryColumnData = summaryColumn && summaryColumn.data || DEFAULT_NUMBER_FORMAT_OBJECT;
77
73
  }
78
- _this.chart.coordinate('theta', {
74
+ this.chart.coordinate('theta', {
79
75
  radius: isCreating ? 0.75 : 0.95,
80
76
  innerRadius: isCreating ? 0.6 : 0.7
81
77
  });
82
- var currentTheme = getCurrentTheme(colorThemeName);
83
- var themeColors = _this.getThemeColors();
84
- var newData = formatPieChartData(data, statItem, table, currentTheme);
85
- _this.chart.data(newData, {
78
+ const currentTheme = getCurrentTheme(colorThemeName);
79
+ const themeColors = this.getThemeColors();
80
+ const newData = formatPieChartData(data, statItem, table, currentTheme);
81
+ this.chart.data(newData, {
86
82
  'name': {
87
83
  type: 'cat',
88
84
  nice: false
89
85
  }
90
86
  });
91
- var colorSet = newData.colorSet;
92
- _this.sum = newData.total;
87
+ const colorSet = newData.colorSet;
88
+ this.sum = newData.total;
93
89
  if (show_legend) {
94
- _this.chart.legend('name', {
90
+ this.chart.legend('name', {
95
91
  position: 'right',
96
92
  custom: true,
97
93
  pageNavigator: {
@@ -113,17 +109,17 @@ var RingChart = /*#__PURE__*/function (_BaseChart) {
113
109
  fill: themeColors.textColor
114
110
  }
115
111
  },
116
- items: newData.map(function (obj, index) {
117
- var sIndex = String(index);
118
- var colorIndex = sIndex.charAt(sIndex.length - 1);
119
- var name = obj.name;
112
+ items: newData.map((obj, index) => {
113
+ const sIndex = String(index);
114
+ const colorIndex = sIndex.charAt(sIndex.length - 1);
115
+ let name = obj.name;
120
116
  if (!obj.name && typeof obj.name !== 'number') {
121
117
  name = intl.get(EMPTY_NAME);
122
118
  } else if (obj.name === 'Others') {
123
119
  name = intl.get('Others');
124
120
  }
125
121
  return {
126
- name: name,
122
+ name,
127
123
  value: obj.value,
128
124
  marker: {
129
125
  symbol: 'circle',
@@ -136,38 +132,38 @@ var RingChart = /*#__PURE__*/function (_BaseChart) {
136
132
  })
137
133
  });
138
134
  } else {
139
- _this.chart.legend(false);
135
+ this.chart.legend(false);
140
136
  }
141
137
 
142
138
  // Do not automatically adjust the maximum and minimum values in ring chart
143
- _this.chart.scale({
139
+ this.chart.scale({
144
140
  value: {
145
141
  nice: false
146
142
  }
147
143
  });
148
- _this.chart.interval().adjust('stack').position('value').color('name', colorSet).label('formatted_value*percent', function (value, percent) {
144
+ this.chart.interval().adjust('stack').position('value').color('name', colorSet).label('formatted_value*percent', (value, percent) => {
149
145
  return {
150
- content: _this.getLabel(value, percent)
146
+ content: this.getLabel(value, percent)
151
147
  };
152
148
  }, {
153
149
  offset: !label_position || label_position == LABEL_POSITIONS[0] ? isCreating ? -10 : -2 : undefined,
154
150
  style: {
155
151
  fill: themeColors.labelColor,
156
- fontSize: _this.getLabelFontSize(),
152
+ fontSize: this.getLabelFontSize(),
157
153
  shadowBlur: 2,
158
154
  shadowColor: 'rgba(0, 0, 0, .45)'
159
155
  }
160
- }).tooltip('name*formatted_value*percent', function (name, value, percent) {
161
- var title = name;
156
+ }).tooltip('name*formatted_value*percent', (name, value, percent) => {
157
+ let title = name;
162
158
  if (!name || name === 'undefined') {
163
159
  title = intl.get(EMPTY_NAME);
164
160
  }
165
161
  return show_percent || display_label ? {
166
162
  name: title,
167
- value: _this.getLabel(value, percent)
163
+ value: this.getLabel(value, percent)
168
164
  } : {
169
165
  name: title,
170
- value: value
166
+ value
171
167
  };
172
168
  }).state({
173
169
  active: {
@@ -178,31 +174,28 @@ var RingChart = /*#__PURE__*/function (_BaseChart) {
178
174
  }
179
175
  }
180
176
  });
181
- _this.chart.tooltip({
177
+ this.chart.tooltip({
182
178
  showTitle: false,
183
179
  showMarkers: false,
184
180
  itemTpl: '<div class="g2-tooltip-list-item"><span style="background-color:{color};" class="g2-tooltip-marker"></span>{name}: {value}</div>'
185
181
  });
186
- _this.chart.interaction('element-active');
182
+ this.chart.interaction('element-active');
187
183
  if (display_annotation == undefined || display_annotation) {
188
- _this.setAnnotation({
184
+ this.setAnnotation({
189
185
  name: intl.get(TITLE_TOTAL),
190
- value: summaryColumn ? _this.getNumberDisplayString(_this.sum, summaryColumnData, summary_method) : _this.sum
186
+ value: summaryColumn ? this.getNumberDisplayString(this.sum, summaryColumnData, summary_method) : this.sum
191
187
  }, themeColors.labelColor);
192
- _this.chart.on('interval:mouseenter', function (evt) {
193
- return _this.onEnterRingChart(evt, themeColors.labelColor, summaryColumn, summaryColumnData);
194
- });
195
- _this.chart.on('interval:mouseleave', function (evt) {
196
- return _this.onLeaveRingChart(evt, themeColors.labelColor, summaryColumn, summaryColumnData);
197
- });
188
+ this.chart.on('interval:mouseenter', evt => this.onEnterRingChart(evt, themeColors.labelColor, summaryColumn, summaryColumnData));
189
+ this.chart.on('interval:mouseleave', evt => this.onLeaveRingChart(evt, themeColors.labelColor, summaryColumn, summaryColumnData));
198
190
  }
199
191
  };
200
- _this.getLabel = function (value, percent) {
201
- var _this$props$statItem = _this.props.statItem,
202
- show_percent = _this$props$statItem.show_percent,
203
- display_label = _this$props$statItem.display_label,
204
- label_format = _this$props$statItem.label_format;
205
- var content;
192
+ this.getLabel = (value, percent) => {
193
+ const {
194
+ show_percent,
195
+ display_label,
196
+ label_format
197
+ } = this.props.statItem;
198
+ let content;
206
199
  if (show_percent) {
207
200
  content = percent;
208
201
  return content;
@@ -227,28 +220,35 @@ var RingChart = /*#__PURE__*/function (_BaseChart) {
227
220
  }
228
221
  return content;
229
222
  };
230
- _this.getAnnotationFontSize = function () {
231
- var statItem = _this.props.statItem;
232
- var annotation_font_size = statItem.annotation_font_size;
233
- var mainFontSize = annotation_font_size || DEFAULT_ANNOTATION_SIZE;
234
- var subFontSize = Math.max(mainFontSize - 12, 12);
223
+ this.getAnnotationFontSize = () => {
224
+ const {
225
+ statItem
226
+ } = this.props;
227
+ const {
228
+ annotation_font_size
229
+ } = statItem;
230
+ const mainFontSize = annotation_font_size || DEFAULT_ANNOTATION_SIZE;
231
+ const subFontSize = Math.max(mainFontSize - 12, 12);
235
232
  return {
236
- mainFontSize: mainFontSize,
237
- subFontSize: subFontSize
233
+ mainFontSize,
234
+ subFontSize
238
235
  };
239
236
  };
240
- _this.setAnnotation = function (content, fontColor, summaryColumn, summaryColumnData) {
241
- var summary_method = _this.props.statItem.summary_method;
242
- var name = content.name;
237
+ this.setAnnotation = (content, fontColor, summaryColumn, summaryColumnData) => {
238
+ const {
239
+ summary_method
240
+ } = this.props.statItem;
241
+ let name = content.name;
243
242
  if (!name || name === 'undefined') {
244
243
  name = intl.get(EMPTY_NAME);
245
244
  } else if (name === 'Others') {
246
245
  name = intl.get('Others');
247
246
  }
248
- var _this$getAnnotationFo = _this.getAnnotationFontSize(),
249
- mainFontSize = _this$getAnnotationFo.mainFontSize,
250
- subFontSize = _this$getAnnotationFo.subFontSize;
251
- _this.chart.annotation().text({
247
+ const {
248
+ mainFontSize,
249
+ subFontSize
250
+ } = this.getAnnotationFontSize();
251
+ this.chart.annotation().text({
252
252
  content: name,
253
253
  position: ['50%', '50%'],
254
254
  style: {
@@ -260,7 +260,7 @@ var RingChart = /*#__PURE__*/function (_BaseChart) {
260
260
  offsetY: -20
261
261
  }).text({
262
262
  position: ['50%', '50%'],
263
- content: summaryColumn ? _this.getNumberDisplayString(content.value, summaryColumnData, summary_method) : content.value,
263
+ content: summaryColumn ? this.getNumberDisplayString(content.value, summaryColumnData, summary_method) : content.value,
264
264
  style: {
265
265
  fontSize: mainFontSize,
266
266
  fill: fontColor,
@@ -269,128 +269,117 @@ var RingChart = /*#__PURE__*/function (_BaseChart) {
269
269
  offsetY: 20
270
270
  });
271
271
  };
272
- _this.onEnterRingChart = function (ev, color, summaryColumn, summaryColumnData) {
273
- var item = ev.data.data;
274
- _this.chart.annotation().clear(true);
275
- _this.setAnnotation(item, color, summaryColumn, summaryColumnData);
276
- _this.chart.render(true);
272
+ this.onEnterRingChart = (ev, color, summaryColumn, summaryColumnData) => {
273
+ const item = ev.data.data;
274
+ this.chart.annotation().clear(true);
275
+ this.setAnnotation(item, color, summaryColumn, summaryColumnData);
276
+ this.chart.render(true);
277
277
  };
278
- _this.onLeaveRingChart = function (ev, color, summaryColumn, summaryColumnData) {
279
- _this.chart.annotation().clear(true);
280
- _this.setAnnotation({
278
+ this.onLeaveRingChart = (ev, color, summaryColumn, summaryColumnData) => {
279
+ this.chart.annotation().clear(true);
280
+ this.setAnnotation({
281
281
  name: intl.get(TITLE_TOTAL),
282
- value: _this.sum
282
+ value: this.sum
283
283
  }, color, summaryColumn, summaryColumnData);
284
- _this.chart.render(true);
284
+ this.chart.render(true);
285
285
  };
286
- _this.destroyChart = function () {
287
- _this.chart.destroy();
288
- _this.chart = null;
286
+ this.destroyChart = () => {
287
+ this.chart.destroy();
288
+ this.chart = null;
289
289
  };
290
- _this.state = {
290
+ this.state = {
291
291
  isCalculatingData: true,
292
292
  showResultDescription: true
293
293
  };
294
- _this.calculateData = null;
295
- return _this;
294
+ this.calculateData = null;
296
295
  }
297
- _createClass(RingChart, [{
298
- key: "componentDidMount",
299
- value: function componentDidMount() {
300
- var _this2 = this;
301
- var _this$props3 = this.props,
302
- statItem = _this$props3.statItem,
303
- chartCalculator = _this$props3.chartCalculator;
296
+ componentDidMount() {
297
+ const {
298
+ statItem,
299
+ chartCalculator
300
+ } = this.props;
301
+ if (this.container) {
302
+ chartCalculator.calculate(statItem).then(data => {
303
+ const showResultDescription = data.length > 0 ? false : true;
304
+ this.setState({
305
+ isCalculatingData: false,
306
+ showResultDescription
307
+ }, () => {
308
+ if (!showResultDescription) {
309
+ this.drawChart(data);
310
+ this.calculateData = data;
311
+ }
312
+ });
313
+ });
314
+ }
315
+ }
316
+ shouldComponentUpdate(nextProps, nextState) {
317
+ const {
318
+ colorThemeName
319
+ } = this.props;
320
+ if (this.canUpdate(this.props, nextProps)) {
321
+ return true;
322
+ }
323
+ if (nextState.isCalculatingData !== this.state.isCalculatingData) {
324
+ return true;
325
+ }
326
+ if (nextProps.colorThemeName !== colorThemeName) {
327
+ return true;
328
+ }
329
+ return false;
330
+ }
331
+ componentDidUpdate(preProps, preState) {
332
+ const {
333
+ statItem,
334
+ chartCalculator
335
+ } = this.props;
336
+ const {
337
+ isCalculatingData
338
+ } = this.state;
339
+ if (isCalculatingData !== preState.isCalculatingData) return;
340
+ if (this.shouldCalculateStatItem(preProps, this.props)) {
341
+ this.setState({
342
+ isCalculatingData: true
343
+ });
304
344
  if (this.container) {
305
- chartCalculator.calculate(statItem).then(function (data) {
306
- var showResultDescription = data.length > 0 ? false : true;
307
- _this2.setState({
345
+ chartCalculator.calculate(statItem).then(data => {
346
+ const showResultDescription = data.length > 0 ? false : true;
347
+ this.chart && this.destroyChart();
348
+ this.calculateData = data;
349
+ this.setState({
308
350
  isCalculatingData: false,
309
- showResultDescription: showResultDescription
310
- }, function () {
351
+ showResultDescription
352
+ }, () => {
311
353
  if (!showResultDescription) {
312
- _this2.drawChart(data);
313
- _this2.calculateData = data;
354
+ this.drawChart(data);
355
+ if (this.props.isPreview) this.chart.forceFit();
314
356
  }
315
357
  });
316
358
  });
317
359
  }
318
- }
319
- }, {
320
- key: "shouldComponentUpdate",
321
- value: function shouldComponentUpdate(nextProps, nextState) {
322
- var colorThemeName = this.props.colorThemeName;
323
- if (this.canUpdate(this.props, nextProps)) {
324
- return true;
325
- }
326
- if (nextState.isCalculatingData !== this.state.isCalculatingData) {
327
- return true;
328
- }
329
- if (nextProps.colorThemeName !== colorThemeName) {
330
- return true;
331
- }
332
- return false;
333
- }
334
- }, {
335
- key: "componentDidUpdate",
336
- value: function componentDidUpdate(preProps, preState) {
337
- var _this3 = this;
338
- var _this$props4 = this.props,
339
- statItem = _this$props4.statItem,
340
- chartCalculator = _this$props4.chartCalculator;
341
- var isCalculatingData = this.state.isCalculatingData;
342
- if (isCalculatingData !== preState.isCalculatingData) return;
343
- if (this.shouldCalculateStatItem(preProps, this.props)) {
344
- this.setState({
345
- isCalculatingData: true
346
- });
347
- if (this.container) {
348
- chartCalculator.calculate(statItem).then(function (data) {
349
- var showResultDescription = data.length > 0 ? false : true;
350
- _this3.chart && _this3.destroyChart();
351
- _this3.calculateData = data;
352
- _this3.setState({
353
- isCalculatingData: false,
354
- showResultDescription: showResultDescription
355
- }, function () {
356
- if (!showResultDescription) {
357
- _this3.drawChart(data);
358
- if (_this3.props.isPreview) _this3.chart.forceFit();
359
- }
360
- });
361
- });
362
- }
363
- } else {
364
- if (!this.state.showResultDescription) {
365
- this.chart && this.destroyChart();
366
- this.drawChart(this.calculateData);
367
- if (this.props.isPreview) {
368
- this.chart.forceFit();
369
- }
360
+ } else {
361
+ if (!this.state.showResultDescription) {
362
+ this.chart && this.destroyChart();
363
+ this.drawChart(this.calculateData);
364
+ if (this.props.isPreview) {
365
+ this.chart.forceFit();
370
366
  }
371
367
  }
372
368
  }
373
- }, {
374
- key: "componentWillUnmount",
375
- value: function componentWillUnmount() {
376
- this.container = null;
377
- }
378
- }, {
379
- key: "render",
380
- value: function render() {
381
- var _this4 = this;
382
- var _this$state = this.state,
383
- isCalculatingData = _this$state.isCalculatingData,
384
- showResultDescription = _this$state.showResultDescription;
385
- return /*#__PURE__*/React.createElement(React.Fragment, null, isCalculatingData && this.renderLoading(), showResultDescription && this.renderEmpty(), /*#__PURE__*/React.createElement("div", {
386
- ref: function ref(_ref) {
387
- return _this4.container = _ref;
388
- },
389
- className: "".concat(chartStyles['statistic-pie-chart-container'], " statistic-chart-container")
390
- }));
391
- }
392
- }]);
393
- return RingChart;
394
- }(BaseChart);
369
+ }
370
+ componentWillUnmount() {
371
+ this.container = null;
372
+ }
373
+ render() {
374
+ const {
375
+ isCalculatingData,
376
+ showResultDescription
377
+ } = this.state;
378
+ return /*#__PURE__*/React.createElement(React.Fragment, null, isCalculatingData && this.renderLoading(), showResultDescription && this.renderEmpty(), /*#__PURE__*/React.createElement("div", {
379
+ ref: ref => this.container = ref,
380
+ className: "".concat(chartStyles['statistic-pie-chart-container'], " statistic-chart-container")
381
+ }));
382
+ }
383
+ }
395
384
  RingChart.propTypes = propTypes;
396
385
  export default RingChart;