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 DataSet from '@antv/data-set/lib/index';
@@ -11,44 +7,42 @@ import BaseChart from './base-chart';
11
7
  import { Chart } from '../custom-g2';
12
8
  import { COLOR_OPTIONS, DEFAULT_NUMBER_FORMAT_OBJECT, STAT_TYPE, SUMMARY_TYPE, TITLE_AMOUNT } from '../constants';
13
9
  import { MAP_LEVEL } from '../constants/map';
14
- var WIDTH = 798;
15
- var HEIGHT = 394;
16
- var WorldMap = /*#__PURE__*/function (_BaseChart) {
17
- _inherits(WorldMap, _BaseChart);
18
- var _super = _createSuper(WorldMap);
19
- function WorldMap(props) {
20
- var _this;
21
- _classCallCheck(this, WorldMap);
22
- _this = _super.call(this, props);
23
- _this.rerenderChart = function () {
24
- if (!_this.chart) return;
25
- _this.chart.destroy();
26
- _this.initStatisticContext(_this.geoData);
10
+ const WIDTH = 798;
11
+ const HEIGHT = 394;
12
+ class WorldMap extends BaseChart {
13
+ constructor(props) {
14
+ super(props);
15
+ this.rerenderChart = () => {
16
+ if (!this.chart) return;
17
+ this.chart.destroy();
18
+ this.initStatisticContext(this.geoData);
27
19
  };
28
- _this.fixData = function (statisticData) {
20
+ this.fixData = statisticData => {
29
21
  if (!statisticData) return [];
30
- var statisticNewData = [];
31
- var sum = 0;
32
- var statItem = _this.props.statItem;
33
- var type = statItem.type;
34
- statisticData.forEach(function (item, index) {
22
+ let statisticNewData = [];
23
+ let sum = 0;
24
+ const {
25
+ statItem
26
+ } = this.props;
27
+ const type = statItem.type;
28
+ statisticData.forEach((item, index) => {
35
29
  if (item && item.name) {
36
- var nameType, name, name_cn;
37
- if (_this.reg.test(item.name)) {
30
+ let nameType, name, name_cn;
31
+ if (this.reg.test(item.name)) {
38
32
  nameType = 'en';
39
33
  name = item.name;
40
- name_cn = _this.countryMap.get(name);
34
+ name_cn = this.countryMap.get(name);
41
35
  } else {
42
36
  nameType = 'zh-cn';
43
- name = _this.countryMap.get(item.name);
37
+ name = this.countryMap.get(item.name);
44
38
  name_cn = item.name;
45
39
  }
46
- var value = item.value;
40
+ const value = item.value;
47
41
  if (name_cn && name) {
48
42
  statisticNewData.push({
49
- name_cn: name_cn,
50
- name: name,
51
- nameType: nameType,
43
+ name_cn,
44
+ name,
45
+ nameType,
52
46
  value: value || 0,
53
47
  formatted_value: item.formatted_value
54
48
  });
@@ -63,36 +57,38 @@ var WorldMap = /*#__PURE__*/function (_BaseChart) {
63
57
  }
64
58
  return statisticNewData;
65
59
  };
66
- _this.renderCommonMap = function (data) {
67
- var _this$props = _this.props,
68
- getTableById = _this$props.getTableById,
69
- statItem = _this$props.statItem;
70
- var userDataView = _this.dataSet.getView('statisticViewModel').source(data).transform({
71
- geoDataView: _this.dataSet.getView('mapDataModel'),
60
+ this.renderCommonMap = data => {
61
+ const {
62
+ getTableById,
63
+ statItem
64
+ } = this.props;
65
+ const userDataView = this.dataSet.getView('statisticViewModel').source(data).transform({
66
+ geoDataView: this.dataSet.getView('mapDataModel'),
72
67
  field: 'name',
73
68
  type: 'geo.region',
74
69
  as: ['longitude', 'latitude']
75
70
  });
76
- var _this$props$statItem = _this.props.statItem,
77
- table_id = _this$props$statItem.table_id,
78
- data_color = _this$props$statItem.data_color,
79
- summary_type = _this$props$statItem.summary_type,
80
- summary_method = _this$props$statItem.summary_method,
81
- summary_column = _this$props$statItem.summary_column;
82
- var currentColorOption = COLOR_OPTIONS.filter(function (item) {
83
- return item.name == data_color;
84
- })[0] || COLOR_OPTIONS[0];
85
- var exampleColors = currentColorOption.exampleColors,
86
- highlightedBorderColor = currentColorOption.highlightedBorderColor;
87
- var summaryColumnData = DEFAULT_NUMBER_FORMAT_OBJECT;
71
+ const {
72
+ table_id,
73
+ data_color,
74
+ summary_type,
75
+ summary_method,
76
+ summary_column
77
+ } = this.props.statItem;
78
+ const currentColorOption = COLOR_OPTIONS.filter(item => item.name == data_color)[0] || COLOR_OPTIONS[0];
79
+ const {
80
+ exampleColors,
81
+ highlightedBorderColor
82
+ } = currentColorOption;
83
+ let summaryColumnData = DEFAULT_NUMBER_FORMAT_OBJECT;
88
84
  if (summary_type === SUMMARY_TYPE.ADVANCED) {
89
- var table = getTableById(table_id);
90
- var summaryColumn = TableUtils.getTableColumnByKey(table, summary_column) || {};
85
+ const table = getTableById(table_id);
86
+ const summaryColumn = TableUtils.getTableColumnByKey(table, summary_column) || {};
91
87
  summaryColumnData = summaryColumn.data || DEFAULT_NUMBER_FORMAT_OBJECT;
92
88
  }
93
- _this.statisticView = _this.chart.createView();
94
- _this.statisticView.data(userDataView.rows);
95
- _this.statisticView.polygon().position('longitude*latitude').color('value', "".concat(exampleColors[0], "-").concat(exampleColors[4], "-").concat(exampleColors[8])).style({
89
+ this.statisticView = this.chart.createView();
90
+ this.statisticView.data(userDataView.rows);
91
+ this.statisticView.polygon().position('longitude*latitude').color('value', "".concat(exampleColors[0], "-").concat(exampleColors[4], "-").concat(exampleColors[8])).style({
96
92
  lineWidth: 1,
97
93
  stroke: '#bdbdbd',
98
94
  strokeOpacity: 0.5
@@ -103,17 +99,17 @@ var WorldMap = /*#__PURE__*/function (_BaseChart) {
103
99
  stroke: highlightedBorderColor
104
100
  }
105
101
  }
106
- }).tooltip('name*formatted_value*color*nameType*name_cn', function (name, value, color, nameType, name_cn) {
102
+ }).tooltip('name*formatted_value*color*nameType*name_cn', (name, value, color, nameType, name_cn) => {
107
103
  return {
108
104
  name: nameType === 'en' ? name : name_cn,
109
- color: color,
110
- value: value
105
+ color,
106
+ value
111
107
  };
112
108
  });
113
- var themeColors = _this.getThemeColors();
114
- var legendDirection = statItem.legend_direction || 'vertical';
115
- var size = statItem.legend_size || 1;
116
- _this.chart.legend({
109
+ const themeColors = this.getThemeColors();
110
+ const legendDirection = statItem.legend_direction || 'vertical';
111
+ const size = statItem.legend_size || 1;
112
+ this.chart.legend({
117
113
  layout: legendDirection,
118
114
  position: legendDirection === 'vertical' ? 'left-bottom' : 'bottom-left',
119
115
  rail: {
@@ -126,54 +122,56 @@ var WorldMap = /*#__PURE__*/function (_BaseChart) {
126
122
  fill: themeColors.textColor
127
123
  },
128
124
  align: legendDirection === 'vertical' ? 'right' : 'bottom',
129
- formatter: function formatter(value) {
130
- return _this.getNumberDisplayString(value, summaryColumnData, summary_method);
125
+ formatter: value => {
126
+ return this.getNumberDisplayString(value, summaryColumnData, summary_method);
131
127
  }
132
128
  },
133
129
  slidable: false
134
130
  });
135
- _this.statisticView.interaction('element-active');
136
- _this.statisticView.render();
131
+ this.statisticView.interaction('element-active');
132
+ this.statisticView.render();
137
133
  };
138
- _this.renderBubbleMap = function (data) {
139
- var _this$props2 = _this.props,
140
- getTableById = _this$props2.getTableById,
141
- statItem = _this$props2.statItem,
142
- isPreview = _this$props2.isPreview;
143
- var userDv = _this.dataSet.createView().source(data).transform({
144
- geoDataView: _this.dataSet.getView('mapDataModel'),
134
+ this.renderBubbleMap = data => {
135
+ const {
136
+ getTableById,
137
+ statItem,
138
+ isPreview
139
+ } = this.props;
140
+ const userDv = this.dataSet.createView().source(data).transform({
141
+ geoDataView: this.dataSet.getView('mapDataModel'),
145
142
  field: 'name',
146
143
  type: 'geo.centroid',
147
144
  as: ['longitude', 'latitude']
148
145
  });
149
- var _this$props$statItem2 = _this.props.statItem,
150
- table_id = _this$props$statItem2.table_id,
151
- summary_type = _this$props$statItem2.summary_type,
152
- summary_method = _this$props$statItem2.summary_method,
153
- summary_column = _this$props$statItem2.summary_column;
154
- var summaryColumnData = DEFAULT_NUMBER_FORMAT_OBJECT;
146
+ const {
147
+ table_id,
148
+ summary_type,
149
+ summary_method,
150
+ summary_column
151
+ } = this.props.statItem;
152
+ let summaryColumnData = DEFAULT_NUMBER_FORMAT_OBJECT;
155
153
  if (summary_type === SUMMARY_TYPE.ADVANCED) {
156
- var table = getTableById(table_id);
157
- var summaryColumn = TableUtils.getTableColumnByKey(table, summary_column) || {};
154
+ const table = getTableById(table_id);
155
+ const summaryColumn = TableUtils.getTableColumnByKey(table, summary_column) || {};
158
156
  summaryColumnData = summaryColumn.data || DEFAULT_NUMBER_FORMAT_OBJECT;
159
157
  }
160
- _this.statisticView = _this.chart.createView();
161
- _this.statisticView.data(userDv.rows);
162
- _this.chart.theme({
158
+ this.statisticView = this.chart.createView();
159
+ this.statisticView.data(userDv.rows);
160
+ this.chart.theme({
163
161
  defaultColor: statItem.bubble_color || '#2a67d1'
164
162
  });
165
- _this.statisticView.point().position('longitude*latitude').size('value', function (value) {
166
- var percent = value / data.sum;
167
- var size = percent * 100;
163
+ this.statisticView.point().position('longitude*latitude').size('value', value => {
164
+ const percent = value / data.sum;
165
+ let size = percent * 100;
168
166
  if (isPreview && size > 60) {
169
167
  size = 60;
170
168
  }
171
169
  return size;
172
- }).shape('circle').color(statItem.bubble_color || '#2a67d1').tooltip('name*formatted_value*color', function (name, value, color) {
170
+ }).shape('circle').color(statItem.bubble_color || '#2a67d1').tooltip('name*formatted_value*color', (name, value, color) => {
173
171
  return {
174
- name: name,
175
- color: color,
176
- value: value
172
+ name,
173
+ color,
174
+ value
177
175
  };
178
176
  }).style({
179
177
  fillOpacity: 0.6,
@@ -187,10 +185,10 @@ var WorldMap = /*#__PURE__*/function (_BaseChart) {
187
185
  }
188
186
  }
189
187
  });
190
- var themeColors = _this.getThemeColors();
191
- var legendDirection = statItem.legend_direction || 'vertical';
192
- var size = statItem.legend_size || 1;
193
- _this.chart.legend({
188
+ const themeColors = this.getThemeColors();
189
+ const legendDirection = statItem.legend_direction || 'vertical';
190
+ const size = statItem.legend_size || 1;
191
+ this.chart.legend({
194
192
  layout: legendDirection,
195
193
  position: legendDirection === 'vertical' ? 'left-bottom' : 'bottom-left',
196
194
  rail: {
@@ -202,95 +200,98 @@ var WorldMap = /*#__PURE__*/function (_BaseChart) {
202
200
  fill: themeColors.textColor
203
201
  },
204
202
  align: legendDirection === 'vertical' ? 'right' : 'bottom',
205
- formatter: function formatter(value) {
206
- return _this.getNumberDisplayString(value, summaryColumnData, summary_method);
203
+ formatter: value => {
204
+ return this.getNumberDisplayString(value, summaryColumnData, summary_method);
207
205
  }
208
206
  },
209
207
  slidable: false
210
208
  });
211
- _this.statisticView.interaction('element-active');
212
- _this.statisticView.render();
209
+ this.statisticView.interaction('element-active');
210
+ this.statisticView.render();
213
211
  };
214
- _this.updateStatisticData = function (data) {
212
+ this.updateStatisticData = data => {
215
213
  // re-render statistic data view;
216
- if (_this.statisticView) {
217
- _this.statisticView.destroy();
214
+ if (this.statisticView) {
215
+ this.statisticView.destroy();
218
216
  }
219
217
  if (data.length === 0) {
220
- _this.chart.legend(false);
221
- _this.chart.render();
218
+ this.chart.legend(false);
219
+ this.chart.render();
222
220
  return;
223
221
  }
224
- var statItem = _this.props.statItem;
225
- var type = statItem.type;
222
+ const {
223
+ statItem
224
+ } = this.props;
225
+ const type = statItem.type;
226
226
  if (!type.includes('bubble')) {
227
- _this.renderCommonMap(data);
227
+ this.renderCommonMap(data);
228
228
  } else {
229
- _this.renderBubbleMap(data);
229
+ this.renderBubbleMap(data);
230
230
  }
231
- _this.chart.render();
231
+ this.chart.render();
232
232
  };
233
- _this.getSize = function () {
234
- var containerWidth = _this.container.clientWidth - 40; // 40: padding
235
- var containerHeight = _this.container.clientHeight - 40;
236
- var h = containerHeight;
237
- var w = h * (WIDTH / HEIGHT);
233
+ this.getSize = () => {
234
+ const containerWidth = this.container.clientWidth - 40; // 40: padding
235
+ const containerHeight = this.container.clientHeight - 40;
236
+ let h = containerHeight;
237
+ let w = h * (WIDTH / HEIGHT);
238
238
  if (w > containerWidth) {
239
239
  w = containerWidth;
240
240
  h = w * (HEIGHT / WIDTH);
241
241
  }
242
242
  return {
243
- containerWidth: containerWidth,
244
- containerHeight: containerHeight,
245
- w: w,
246
- h: h
243
+ containerWidth,
244
+ containerHeight,
245
+ w,
246
+ h
247
247
  };
248
248
  };
249
- _this.initStatisticContext = function (geolocation) {
250
- _this.countryMap = new Map();
251
- geolocation.features.forEach(function (item) {
252
- _this.countryMap.set(item.properties.name, item.properties.name_cn);
253
- _this.countryMap.set(item.properties.name_cn, item.properties.name);
249
+ this.initStatisticContext = geolocation => {
250
+ this.countryMap = new Map();
251
+ geolocation.features.forEach(item => {
252
+ this.countryMap.set(item.properties.name, item.properties.name_cn);
253
+ this.countryMap.set(item.properties.name_cn, item.properties.name);
254
254
  });
255
- if (!_this.container) return;
255
+ if (!this.container) return;
256
256
 
257
257
  // create chart
258
- var _this$getSize = _this.getSize(),
259
- containerWidth = _this$getSize.containerWidth,
260
- containerHeight = _this$getSize.containerHeight,
261
- mapWidth = _this$getSize.w;
262
- var horizontalPadding = (containerWidth - mapWidth) / 4;
263
- var leftPadding = horizontalPadding < 20 ? 20 : horizontalPadding;
264
- _this.chart = new Chart({
265
- container: _this.container,
258
+ const {
259
+ containerWidth,
260
+ containerHeight,
261
+ w: mapWidth
262
+ } = this.getSize();
263
+ const horizontalPadding = (containerWidth - mapWidth) / 4;
264
+ const leftPadding = horizontalPadding < 20 ? 20 : horizontalPadding;
265
+ this.chart = new Chart({
266
+ container: this.container,
266
267
  width: containerWidth,
267
268
  height: containerHeight,
268
269
  padding: [0, horizontalPadding, 0, leftPadding]
269
270
  });
270
- _this.chart.on('element:click', function (e) {
271
- var statItem = _this.props.statItem;
272
- var data = e.data.data;
273
- var lang = window.dtable ? window.dtable.lang : 'zh-cn';
274
- var countryName = lang === 'zh-cn' ? data.name_cn : data.name;
275
- var clickData = _this.calculateData.find(function (i) {
276
- return i.name === countryName;
277
- });
271
+ this.chart.on('element:click', e => {
272
+ const {
273
+ statItem
274
+ } = this.props;
275
+ const data = e.data.data;
276
+ const lang = window.dtable ? window.dtable.lang : 'zh-cn';
277
+ const countryName = lang === 'zh-cn' ? data.name_cn : data.name;
278
+ const clickData = this.calculateData.find(i => i.name === countryName);
278
279
  if (clickData) {
279
- _this.props.toggleStatisticRecordsDialog(clickData, statItem);
280
+ this.props.toggleStatisticRecordsDialog(clickData, statItem);
280
281
  }
281
282
  });
282
- _this.chart.tooltip({
283
+ this.chart.tooltip({
283
284
  showTitle: false,
284
285
  showMarkers: false,
285
286
  shared: true,
286
287
  containerTpl: '<div class="g2-tooltip"><div class="g2-tooltip-list"></div></div>',
287
288
  itemTpl: "<div class=\"g2-tooltip-content\"><div class=\"tooltip-name\">{name}<div><div class=\"tooltip-item\">".concat(intl.get(TITLE_AMOUNT), " : {value}<div></div>"),
288
289
  domStyles: {
289
- 'g2-tooltip': _this.getDefaultChartStyleByKey('g2-tooltip'),
290
- 'tooltip-item': _this.getDefaultChartStyleByKey('tooltip-item')
290
+ 'g2-tooltip': this.getDefaultChartStyleByKey('g2-tooltip'),
291
+ 'tooltip-item': this.getDefaultChartStyleByKey('tooltip-item')
291
292
  }
292
293
  });
293
- _this.chart.scale({
294
+ this.chart.scale({
294
295
  longitude: {
295
296
  sync: true
296
297
  },
@@ -298,14 +299,14 @@ var WorldMap = /*#__PURE__*/function (_BaseChart) {
298
299
  sync: true
299
300
  }
300
301
  });
301
- _this.chart.axis(false);
302
- _this.dataSet = new DataSet();
302
+ this.chart.axis(false);
303
+ this.dataSet = new DataSet();
303
304
 
304
305
  // transform map data
305
- var mapData = _this.dataSet.createView('mapDataModel').source(geolocation, {
306
+ const mapData = this.dataSet.createView('mapDataModel').source(geolocation, {
306
307
  type: 'GeoJSON'
307
308
  });
308
- var mapView = _this.chart.createView();
309
+ const mapView = this.chart.createView();
309
310
 
310
311
  // draw background map
311
312
  mapView.data(mapData.rows);
@@ -315,114 +316,103 @@ var WorldMap = /*#__PURE__*/function (_BaseChart) {
315
316
  stroke: '#bdbdbd',
316
317
  lineWidth: 1
317
318
  });
318
- _this.dataSet.createView('statisticViewModel');
319
+ this.dataSet.createView('statisticViewModel');
319
320
  mapView.render();
320
321
  };
321
- _this.getGeoLocationData = function () {
322
- var mediaUrl = window.dtable.mediaUrl;
323
- return fetch("".concat(mediaUrl, "dtable-statistic/geolocation/world.json")).catch(function (err) {});
322
+ this.getGeoLocationData = () => {
323
+ const {
324
+ mediaUrl
325
+ } = window.dtable;
326
+ return fetch("".concat(mediaUrl, "dtable-statistic/geolocation/world.json")).catch(err => {});
324
327
  };
325
- _this.state = {
328
+ this.state = {
326
329
  isDataLoaded: false,
327
330
  isCalculatingData: true
328
331
  };
329
- _this.reg = /^([A-Za-z])/;
330
- _this.calculateData = null;
331
- _this.countryMap = null;
332
- return _this;
332
+ this.reg = /^([A-Za-z])/;
333
+ this.calculateData = null;
334
+ this.countryMap = null;
333
335
  }
334
- _createClass(WorldMap, [{
335
- key: "componentDidMount",
336
- value: function componentDidMount() {
337
- var _this2 = this;
338
- var _this$props3 = this.props,
339
- statItem = _this$props3.statItem,
340
- chartCalculator = _this$props3.chartCalculator;
341
- this.props.queryMapJson({
342
- map_level: MAP_LEVEL.WORLD
343
- }, function (mapJson) {
344
- _this2.setState({
345
- isDataLoaded: true
346
- });
347
- if (!mapJson) return;
348
- _this2.geoData = mapJson;
349
- _this2.initStatisticContext(mapJson);
350
- if (_this2.container) {
351
- chartCalculator.calculate(statItem).then(function (calculation) {
352
- _this2.setState({
353
- isCalculatingData: false
354
- });
355
- _this2.calculateData = calculation;
356
- _this2.updateStatisticData(_this2.fixData(calculation));
357
- });
358
- }
336
+ componentDidMount() {
337
+ const {
338
+ statItem,
339
+ chartCalculator
340
+ } = this.props;
341
+ this.props.queryMapJson({
342
+ map_level: MAP_LEVEL.WORLD
343
+ }, mapJson => {
344
+ this.setState({
345
+ isDataLoaded: true
359
346
  });
360
- }
361
- }, {
362
- key: "shouldComponentUpdate",
363
- value: function shouldComponentUpdate(nextProps, nextState) {
364
- if (this.canUpdate(this.props, nextProps) && nextState.isDataLoaded === this.state.isDataLoaded) {
365
- return true;
366
- }
367
- if (nextState.isCalculatingData !== this.state.isCalculatingData) {
368
- return true;
369
- }
370
- return false;
371
- }
372
- }, {
373
- key: "componentDidUpdate",
374
- value: function componentDidUpdate(preProps, preState) {
375
- var _this3 = this;
376
- if (!this.chart || !this.dataSet) return;
377
- var _this$props4 = this.props,
378
- statItem = _this$props4.statItem,
379
- chartCalculator = _this$props4.chartCalculator;
380
- var isCalculatingData = this.state.isCalculatingData;
381
- if (isCalculatingData !== preState.isCalculatingData) return;
382
- if (this.shouldCalculateStatItem(preProps, this.props)) {
383
- this.setState({
384
- isCalculatingData: true
385
- });
386
- if (this.container) {
387
- this.rerenderChart();
388
- chartCalculator.calculate(statItem).then(function (calculation) {
389
- _this3.setState({
390
- isCalculatingData: false
391
- });
392
- _this3.calculateData = calculation;
393
- _this3.updateStatisticData(_this3.fixData(calculation));
347
+ if (!mapJson) return;
348
+ this.geoData = mapJson;
349
+ this.initStatisticContext(mapJson);
350
+ if (this.container) {
351
+ chartCalculator.calculate(statItem).then(calculation => {
352
+ this.setState({
353
+ isCalculatingData: false
394
354
  });
395
- }
396
- } else {
397
- if (this.props.isPreview) {
398
- this.rerenderChart();
399
- }
400
- this.updateStatisticData(this.fixData(this.calculateData));
355
+ this.calculateData = calculation;
356
+ this.updateStatisticData(this.fixData(calculation));
357
+ });
401
358
  }
359
+ });
360
+ }
361
+ shouldComponentUpdate(nextProps, nextState) {
362
+ if (this.canUpdate(this.props, nextProps) && nextState.isDataLoaded === this.state.isDataLoaded) {
363
+ return true;
402
364
  }
403
- }, {
404
- key: "componentWillUnmount",
405
- value: function componentWillUnmount() {
406
- this.container = null;
407
- this.setState = function () {};
365
+ if (nextState.isCalculatingData !== this.state.isCalculatingData) {
366
+ return true;
408
367
  }
409
- }, {
410
- key: "render",
411
- value: function render() {
412
- var _this4 = this;
413
- var _this$state = this.state,
414
- isDataLoaded = _this$state.isDataLoaded,
415
- isCalculatingData = _this$state.isCalculatingData;
416
- return /*#__PURE__*/React.createElement(React.Fragment, null, (!isDataLoaded || isCalculatingData) && this.renderLoading(), /*#__PURE__*/React.createElement("div", {
417
- ref: function ref(_ref) {
418
- return _this4.container = _ref;
419
- },
420
- className: "statistic-chart-container map d-flex justify-content-around align-items-center w-100 h-100"
421
- }));
368
+ return false;
369
+ }
370
+ componentDidUpdate(preProps, preState) {
371
+ if (!this.chart || !this.dataSet) return;
372
+ const {
373
+ statItem,
374
+ chartCalculator
375
+ } = this.props;
376
+ const {
377
+ isCalculatingData
378
+ } = this.state;
379
+ if (isCalculatingData !== preState.isCalculatingData) return;
380
+ if (this.shouldCalculateStatItem(preProps, this.props)) {
381
+ this.setState({
382
+ isCalculatingData: true
383
+ });
384
+ if (this.container) {
385
+ this.rerenderChart();
386
+ chartCalculator.calculate(statItem).then(calculation => {
387
+ this.setState({
388
+ isCalculatingData: false
389
+ });
390
+ this.calculateData = calculation;
391
+ this.updateStatisticData(this.fixData(calculation));
392
+ });
393
+ }
394
+ } else {
395
+ if (this.props.isPreview) {
396
+ this.rerenderChart();
397
+ }
398
+ this.updateStatisticData(this.fixData(this.calculateData));
422
399
  }
423
- }]);
424
- return WorldMap;
425
- }(BaseChart);
400
+ }
401
+ componentWillUnmount() {
402
+ this.container = null;
403
+ this.setState = () => {};
404
+ }
405
+ render() {
406
+ const {
407
+ isDataLoaded,
408
+ isCalculatingData
409
+ } = this.state;
410
+ return /*#__PURE__*/React.createElement(React.Fragment, null, (!isDataLoaded || isCalculatingData) && this.renderLoading(), /*#__PURE__*/React.createElement("div", {
411
+ ref: ref => this.container = ref,
412
+ className: "statistic-chart-container map d-flex justify-content-around align-items-center w-100 h-100"
413
+ }));
414
+ }
415
+ }
426
416
  WorldMap.propTypes = {
427
417
  isPreview: PropTypes.bool,
428
418
  statItem: PropTypes.object,