dtable-statistic 4.2.1 → 4.3.0

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,100 +1,71 @@
1
- import _regeneratorRuntime from "@babel/runtime/regenerator";
2
- import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
- import _createClass from "@babel/runtime/helpers/esm/createClass";
5
1
  import BasicChartCalculator from './basic-chart-calculator';
6
2
  import { DATA_SORT_TYPE } from '../constants';
7
- var HorizontalBarCalculator = /*#__PURE__*/function () {
8
- function HorizontalBarCalculator(_ref) {
9
- var value = _ref.value,
10
- statisticThreadManager = _ref.statisticThreadManager,
11
- username = _ref.username,
12
- userId = _ref.userId;
13
- _classCallCheck(this, HorizontalBarCalculator);
3
+ class HorizontalBarCalculator {
4
+ constructor(_ref) {
5
+ let {
6
+ value,
7
+ statisticThreadManager,
8
+ username,
9
+ userId
10
+ } = _ref;
14
11
  this.basicChartCalculator = new BasicChartCalculator({
15
- value: value,
16
- username: username,
17
- userId: userId,
18
- statisticThreadManager: statisticThreadManager
12
+ value,
13
+ username,
14
+ userId,
15
+ statisticThreadManager
19
16
  });
20
17
  }
21
- _createClass(HorizontalBarCalculator, [{
22
- key: "isValidChart",
23
- value: function isValidChart(chart) {
24
- var convertedChart = this.convertChart(chart);
25
- return this.basicChartCalculator.isValidChart(convertedChart);
26
- }
27
- }, {
28
- key: "calculate",
29
- value: function () {
30
- var _calculate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(chart) {
31
- var convertedChart;
32
- return _regeneratorRuntime.wrap(function _callee$(_context) {
33
- while (1) {
34
- switch (_context.prev = _context.next) {
35
- case 0:
36
- convertedChart = this.convertChart(chart);
37
- _context.next = 3;
38
- return this.basicChartCalculator.calculate(convertedChart);
39
- case 3:
40
- return _context.abrupt("return", _context.sent);
41
- case 4:
42
- case "end":
43
- return _context.stop();
44
- }
45
- }
46
- }, _callee, this);
47
- }));
48
- function calculate(_x) {
49
- return _calculate.apply(this, arguments);
50
- }
51
- return calculate;
52
- }()
53
- }, {
54
- key: "convertChart",
55
- value: function convertChart(chart) {
56
- var _id = chart._id,
57
- table_id = chart.table_id,
58
- view_id = chart.view_id,
59
- vertical_axis_column_key = chart.vertical_axis_column_key,
60
- vertical_axis_date_granularity = chart.vertical_axis_date_granularity,
61
- vertical_axis_geolocation_granularity = chart.vertical_axis_geolocation_granularity,
62
- vertical_axis_include_empty = chart.vertical_axis_include_empty,
63
- horizontal_axis_summary_type = chart.horizontal_axis_summary_type,
64
- horizontal_axis_column_key = chart.horizontal_axis_column_key,
65
- horizontal_axis_summary_method = chart.horizontal_axis_summary_method,
66
- column_groupby_column_key = chart.column_groupby_column_key,
67
- column_groupby_date_granularity = chart.column_groupby_date_granularity,
68
- column_groupby_geolocation_granularity = chart.column_groupby_geolocation_granularity,
69
- column_groupby_multiple_numeric_column = chart.column_groupby_multiple_numeric_column,
70
- column_groupby_numeric_columns = chart.column_groupby_numeric_columns;
71
- var sortType = chart.sort_type;
72
- if (sortType === DATA_SORT_TYPE.ASCENDING) {
73
- sortType = DATA_SORT_TYPE.DESCENDING;
74
- } else if (sortType === DATA_SORT_TYPE.DESCENDING) {
75
- sortType = DATA_SORT_TYPE.ASCENDING;
76
- }
77
- return {
78
- type: 'bar',
79
- _id: _id,
80
- table_id: table_id,
81
- view_id: view_id,
82
- y_axis_column_key: horizontal_axis_column_key,
83
- x_axis_date_granularity: vertical_axis_date_granularity,
84
- x_axis_geolocation_granularity: vertical_axis_geolocation_granularity,
85
- x_axis_include_empty: vertical_axis_include_empty,
86
- y_axis_summary_type: horizontal_axis_summary_type,
87
- x_axis_column_key: vertical_axis_column_key,
88
- y_axis_summary_method: horizontal_axis_summary_method,
89
- column_groupby_column_key: column_groupby_column_key,
90
- column_groupby_date_granularity: column_groupby_date_granularity,
91
- column_groupby_geolocation_granularity: column_groupby_geolocation_granularity,
92
- column_groupby_multiple_numeric_column: column_groupby_multiple_numeric_column,
93
- column_groupby_numeric_columns: column_groupby_numeric_columns,
94
- sort_type: sortType
95
- };
18
+ isValidChart(chart) {
19
+ const convertedChart = this.convertChart(chart);
20
+ return this.basicChartCalculator.isValidChart(convertedChart);
21
+ }
22
+ async calculate(chart) {
23
+ const convertedChart = this.convertChart(chart);
24
+ return await this.basicChartCalculator.calculate(convertedChart);
25
+ }
26
+ convertChart(chart) {
27
+ const {
28
+ _id,
29
+ table_id,
30
+ view_id,
31
+ vertical_axis_column_key,
32
+ vertical_axis_date_granularity,
33
+ vertical_axis_geolocation_granularity,
34
+ vertical_axis_include_empty,
35
+ horizontal_axis_summary_type,
36
+ horizontal_axis_column_key,
37
+ horizontal_axis_summary_method,
38
+ column_groupby_column_key,
39
+ column_groupby_date_granularity,
40
+ column_groupby_geolocation_granularity,
41
+ column_groupby_multiple_numeric_column,
42
+ column_groupby_numeric_columns
43
+ } = chart;
44
+ let sortType = chart.sort_type;
45
+ if (sortType === DATA_SORT_TYPE.ASCENDING) {
46
+ sortType = DATA_SORT_TYPE.DESCENDING;
47
+ } else if (sortType === DATA_SORT_TYPE.DESCENDING) {
48
+ sortType = DATA_SORT_TYPE.ASCENDING;
96
49
  }
97
- }]);
98
- return HorizontalBarCalculator;
99
- }();
50
+ return {
51
+ type: 'bar',
52
+ _id,
53
+ table_id,
54
+ view_id,
55
+ y_axis_column_key: horizontal_axis_column_key,
56
+ x_axis_date_granularity: vertical_axis_date_granularity,
57
+ x_axis_geolocation_granularity: vertical_axis_geolocation_granularity,
58
+ x_axis_include_empty: vertical_axis_include_empty,
59
+ y_axis_summary_type: horizontal_axis_summary_type,
60
+ x_axis_column_key: vertical_axis_column_key,
61
+ y_axis_summary_method: horizontal_axis_summary_method,
62
+ column_groupby_column_key,
63
+ column_groupby_date_granularity,
64
+ column_groupby_geolocation_granularity,
65
+ column_groupby_multiple_numeric_column,
66
+ column_groupby_numeric_columns,
67
+ sort_type: sortType
68
+ };
69
+ }
70
+ }
100
71
  export default HorizontalBarCalculator;
@@ -1,8 +1,3 @@
1
- import _regeneratorRuntime from "@babel/runtime/regenerator";
2
- import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
5
- import _createClass from "@babel/runtime/helpers/esm/createClass";
6
1
  import PivotTableCalculator from './pivot-table-calculator';
7
2
  import BasicChartCalculator from './basic-chart-calculator';
8
3
  import CompareBarCalculator from './compare-bar-calculator';
@@ -18,71 +13,60 @@ import NumberCardCalculator from './number-card-calculator';
18
13
  import TrendCalculator from './trend-calculator';
19
14
  import DashboardCalculator from './dashboard-calculator';
20
15
  import { STAT_TYPE } from '../constants';
21
- var BASIC_CHART = 'basic_chart';
22
- var ChartCalculator = /*#__PURE__*/function () {
23
- function ChartCalculator(_ref) {
24
- var _this$chartCalculatio;
25
- var username = _ref.username,
26
- userId = _ref.userId,
27
- value = _ref.value,
28
- statisticThreadManager = _ref.statisticThreadManager;
29
- _classCallCheck(this, ChartCalculator);
30
- var configs = {
31
- username: username,
32
- userId: userId,
33
- value: value,
34
- statisticThreadManager: statisticThreadManager
16
+ const BASIC_CHART = 'basic_chart';
17
+ class ChartCalculator {
18
+ constructor(_ref) {
19
+ let {
20
+ username,
21
+ userId,
22
+ value,
23
+ statisticThreadManager
24
+ } = _ref;
25
+ const configs = {
26
+ username,
27
+ userId,
28
+ value,
29
+ statisticThreadManager
30
+ };
31
+ this.chartCalculationMap = {
32
+ [STAT_TYPE.PIVOT_TABLE]: new PivotTableCalculator(configs),
33
+ [BASIC_CHART]: new BasicChartCalculator(configs),
34
+ [STAT_TYPE.COMPARE_BAR]: new CompareBarCalculator(configs),
35
+ [STAT_TYPE.HORIZONTAL_BAR]: new HorizontalBarCalculator(configs),
36
+ [STAT_TYPE.HORIZONTAL_GROUP_BAR]: new HorizontalBarCalculator(configs),
37
+ [STAT_TYPE.STACKED_HORIZONTAL_BAR]: new HorizontalBarCalculator(configs),
38
+ [STAT_TYPE.COMPLETENESS_CHART]: new CompletenessCalculator(configs),
39
+ [STAT_TYPE.GROUP_COMPLETENESS_CHART]: new CompletenessCalculator(configs),
40
+ [STAT_TYPE.SCATTER]: new ScatterCalculator(configs),
41
+ [STAT_TYPE.COMBINATION_CHART]: new CombinationCalculator(configs),
42
+ [STAT_TYPE.MAP]: new MapCalculator(configs),
43
+ [STAT_TYPE.MAP_BUBBLE]: new MapCalculator(configs),
44
+ [STAT_TYPE.WORLD_MAP]: new WorldMapCalculator(configs),
45
+ [STAT_TYPE.WORLD_MAP_BUBBLE]: new WorldMapCalculator(configs),
46
+ [STAT_TYPE.HEAT_MAP]: new HeatMapCalculator(configs),
47
+ [STAT_TYPE.MIRROR]: new MirrorCalculator(configs),
48
+ [STAT_TYPE.BASIC_NUMBER_CARD]: new NumberCardCalculator(configs),
49
+ [STAT_TYPE.TREND_CHART]: new TrendCalculator(configs),
50
+ [STAT_TYPE.DASHBOARD]: new DashboardCalculator(configs)
35
51
  };
36
- this.chartCalculationMap = (_this$chartCalculatio = {}, _defineProperty(_this$chartCalculatio, STAT_TYPE.PIVOT_TABLE, new PivotTableCalculator(configs)), _defineProperty(_this$chartCalculatio, BASIC_CHART, new BasicChartCalculator(configs)), _defineProperty(_this$chartCalculatio, STAT_TYPE.COMPARE_BAR, new CompareBarCalculator(configs)), _defineProperty(_this$chartCalculatio, STAT_TYPE.HORIZONTAL_BAR, new HorizontalBarCalculator(configs)), _defineProperty(_this$chartCalculatio, STAT_TYPE.HORIZONTAL_GROUP_BAR, new HorizontalBarCalculator(configs)), _defineProperty(_this$chartCalculatio, STAT_TYPE.STACKED_HORIZONTAL_BAR, new HorizontalBarCalculator(configs)), _defineProperty(_this$chartCalculatio, STAT_TYPE.COMPLETENESS_CHART, new CompletenessCalculator(configs)), _defineProperty(_this$chartCalculatio, STAT_TYPE.GROUP_COMPLETENESS_CHART, new CompletenessCalculator(configs)), _defineProperty(_this$chartCalculatio, STAT_TYPE.SCATTER, new ScatterCalculator(configs)), _defineProperty(_this$chartCalculatio, STAT_TYPE.COMBINATION_CHART, new CombinationCalculator(configs)), _defineProperty(_this$chartCalculatio, STAT_TYPE.MAP, new MapCalculator(configs)), _defineProperty(_this$chartCalculatio, STAT_TYPE.MAP_BUBBLE, new MapCalculator(configs)), _defineProperty(_this$chartCalculatio, STAT_TYPE.WORLD_MAP, new WorldMapCalculator(configs)), _defineProperty(_this$chartCalculatio, STAT_TYPE.WORLD_MAP_BUBBLE, new WorldMapCalculator(configs)), _defineProperty(_this$chartCalculatio, STAT_TYPE.HEAT_MAP, new HeatMapCalculator(configs)), _defineProperty(_this$chartCalculatio, STAT_TYPE.MIRROR, new MirrorCalculator(configs)), _defineProperty(_this$chartCalculatio, STAT_TYPE.BASIC_NUMBER_CARD, new NumberCardCalculator(configs)), _defineProperty(_this$chartCalculatio, STAT_TYPE.TREND_CHART, new TrendCalculator(configs)), _defineProperty(_this$chartCalculatio, STAT_TYPE.DASHBOARD, new DashboardCalculator(configs)), _this$chartCalculatio);
37
52
  }
38
- _createClass(ChartCalculator, [{
39
- key: "isValidChart",
40
- value: function isValidChart(chart) {
41
- if (!chart) {
42
- return false;
43
- }
44
- var chartCalculation = this.chartCalculationMap[chart.type];
45
- if (!chartCalculation) {
46
- return this.chartCalculationMap[BASIC_CHART].isValidChart(chart);
47
- }
48
- return chartCalculation ? chartCalculation.isValidChart(chart) : false;
53
+ isValidChart(chart) {
54
+ if (!chart) {
55
+ return false;
56
+ }
57
+ const chartCalculation = this.chartCalculationMap[chart.type];
58
+ if (!chartCalculation) {
59
+ return this.chartCalculationMap[BASIC_CHART].isValidChart(chart);
49
60
  }
50
- }, {
51
- key: "calculate",
52
- value: function () {
53
- var _calculate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(chart) {
54
- var chartCalculation;
55
- return _regeneratorRuntime.wrap(function _callee$(_context) {
56
- while (1) {
57
- switch (_context.prev = _context.next) {
58
- case 0:
59
- if (chart) {
60
- _context.next = 2;
61
- break;
62
- }
63
- return _context.abrupt("return", null);
64
- case 2:
65
- chartCalculation = this.chartCalculationMap[chart.type];
66
- if (chartCalculation) {
67
- _context.next = 5;
68
- break;
69
- }
70
- return _context.abrupt("return", this.chartCalculationMap[BASIC_CHART].calculate(chart));
71
- case 5:
72
- return _context.abrupt("return", chartCalculation.calculate(chart));
73
- case 6:
74
- case "end":
75
- return _context.stop();
76
- }
77
- }
78
- }, _callee, this);
79
- }));
80
- function calculate(_x) {
81
- return _calculate.apply(this, arguments);
82
- }
83
- return calculate;
84
- }()
85
- }]);
86
- return ChartCalculator;
87
- }();
61
+ return chartCalculation ? chartCalculation.isValidChart(chart) : false;
62
+ }
63
+ async calculate(chart) {
64
+ if (!chart) return null;
65
+ const chartCalculation = this.chartCalculationMap[chart.type];
66
+ if (!chartCalculation) {
67
+ return this.chartCalculationMap[BASIC_CHART].calculate(chart);
68
+ }
69
+ return chartCalculation.calculate(chart);
70
+ }
71
+ }
88
72
  export default ChartCalculator;
@@ -1,9 +1,3 @@
1
- import _regeneratorRuntime from "@babel/runtime/regenerator";
2
- import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
- import _createClass from "@babel/runtime/helpers/esm/createClass";
5
- import _inherits from "@babel/runtime/helpers/esm/inherits";
6
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
7
1
  import { CellType, filter2SqlCondition, TableUtils } from 'dtable-store';
8
2
  import BaseCalculator from './base-calculator';
9
3
  import { formatNumericValue, getSummaryColumnMethod } from '../utils/common-utils';
@@ -11,176 +5,106 @@ import { getSqlGroup } from '../utils/sql-utils';
11
5
  import { DTABLE_DB_SUMMARY_METHOD } from '../constants';
12
6
  import { fixMapGeoGranularity } from '../utils/map';
13
7
  import StatUtils from '../utils/stat-utils';
14
- var MapCalculator = /*#__PURE__*/function (_BaseCalculator) {
15
- _inherits(MapCalculator, _BaseCalculator);
16
- var _super = _createSuper(MapCalculator);
17
- function MapCalculator(_ref) {
18
- var value = _ref.value,
19
- statisticThreadManager = _ref.statisticThreadManager,
20
- username = _ref.username,
21
- userId = _ref.userId;
22
- _classCallCheck(this, MapCalculator);
23
- return _super.call(this, {
24
- value: value,
25
- statisticThreadManager: statisticThreadManager,
26
- username: username,
27
- userId: userId
8
+ class MapCalculator extends BaseCalculator {
9
+ constructor(_ref) {
10
+ let {
11
+ value,
12
+ statisticThreadManager,
13
+ username,
14
+ userId
15
+ } = _ref;
16
+ super({
17
+ value,
18
+ statisticThreadManager,
19
+ username,
20
+ userId
28
21
  });
29
22
  }
30
- _createClass(MapCalculator, [{
31
- key: "isValidChart",
32
- value: function isValidChart(chart) {
33
- if (!this.validateBaseConfigs(chart)) {
34
- return false;
35
- }
36
- var table_id = chart.table_id,
37
- geo_column = chart.geo_column,
38
- summary_column = chart.summary_column;
39
- var table = this.getTableById(table_id);
40
- var selectedColumn = geo_column && TableUtils.getTableColumnByKey(table, geo_column);
41
- if (geo_column && (!selectedColumn || selectedColumn.type !== CellType.GEOLOCATION)) {
42
- return false;
43
- }
44
- if (summary_column && !TableUtils.getTableColumnByKey(table, summary_column)) {
45
- return false;
46
- }
47
- return true;
23
+ isValidChart(chart) {
24
+ if (!this.validateBaseConfigs(chart)) {
25
+ return false;
48
26
  }
49
- }, {
50
- key: "calculate",
51
- value: function () {
52
- var _calculate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(chart) {
53
- return _regeneratorRuntime.wrap(function _callee$(_context) {
54
- while (1) {
55
- switch (_context.prev = _context.next) {
56
- case 0:
57
- if (this.isValidChart(chart)) {
58
- _context.next = 2;
59
- break;
60
- }
61
- return _context.abrupt("return", []);
62
- case 2:
63
- if (!this.isCalcByQueryDB(chart)) {
64
- _context.next = 6;
65
- break;
66
- }
67
- _context.next = 5;
68
- return this.queryDb(chart);
69
- case 5:
70
- return _context.abrupt("return", _context.sent);
71
- case 6:
72
- _context.next = 8;
73
- return this.calculateWithWorker(chart);
74
- case 8:
75
- return _context.abrupt("return", _context.sent);
76
- case 9:
77
- case "end":
78
- return _context.stop();
79
- }
80
- }
81
- }, _callee, this);
82
- }));
83
- function calculate(_x) {
84
- return _calculate.apply(this, arguments);
85
- }
86
- return calculate;
87
- }()
88
- }, {
89
- key: "queryDb",
90
- value: function () {
91
- var _queryDb = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(chart) {
92
- var table_id, view_id, geo_column, summary_type, summary_method, summary_column, selectedTable, selectedView, column, columnName, isAdvanced, geoGranularity, method, sqlCondition, groupName, sqlString, summaryColumn, summaryColumnName, summaryColumnMethod, result, data, newResult, _summaryColumnMethod, valueKey;
93
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
94
- while (1) {
95
- switch (_context2.prev = _context2.next) {
96
- case 0:
97
- table_id = chart.table_id, view_id = chart.view_id, geo_column = chart.geo_column, summary_type = chart.summary_type, summary_method = chart.summary_method, summary_column = chart.summary_column;
98
- selectedTable = this.getTableById(table_id);
99
- selectedView = this.getViewById(view_id, selectedTable);
100
- column = TableUtils.getTableColumnByKey(selectedTable, geo_column);
101
- if (column) {
102
- _context2.next = 6;
103
- break;
104
- }
105
- return _context2.abrupt("return", []);
106
- case 6:
107
- columnName = column.name;
108
- isAdvanced = summary_type === 'advanced';
109
- geoGranularity = fixMapGeoGranularity(chart);
110
- method = isAdvanced ? DTABLE_DB_SUMMARY_METHOD[summary_method] : 'COUNT';
111
- sqlCondition = filter2SqlCondition(selectedTable, selectedView);
112
- groupName = getSqlGroup(geoGranularity, column);
113
- sqlString = '';
114
- summaryColumnName = '';
115
- if (!isAdvanced) {
116
- _context2.next = 23;
117
- break;
118
- }
119
- summaryColumn = TableUtils.getTableColumnByKey(selectedTable, summary_column);
120
- if (summaryColumn) {
121
- _context2.next = 18;
122
- break;
123
- }
124
- return _context2.abrupt("return", []);
125
- case 18:
126
- summaryColumnName = summaryColumn.name;
127
- summaryColumnMethod = getSummaryColumnMethod(method, summaryColumnName);
128
- sqlString = "select ".concat(groupName, ", ").concat(summaryColumnMethod, " from `").concat(selectedTable.name, "` ").concat(sqlCondition, " group by ").concat(groupName, " limit 5000");
129
- _context2.next = 24;
130
- break;
131
- case 23:
132
- sqlString = "select ".concat(groupName, ", ").concat(method, "(`").concat(columnName, "`) from `").concat(selectedTable.name, "` ").concat(sqlCondition, " group by ").concat(groupName, " limit 5000");
133
- case 24:
134
- _context2.next = 26;
135
- return this.sqlQuery(sqlString);
136
- case 26:
137
- result = _context2.sent;
138
- if (!(result.status === 200 && result.data.success)) {
139
- _context2.next = 36;
140
- break;
141
- }
142
- data = result.data;
143
- if (data.results) {
144
- _context2.next = 31;
145
- break;
146
- }
147
- return _context2.abrupt("return", []);
148
- case 31:
149
- newResult = [];
150
- _summaryColumnMethod = getSummaryColumnMethod(method, summaryColumnName);
151
- valueKey = isAdvanced ? "".concat(_summaryColumnMethod) : "".concat(method, "(").concat(columnName, ")");
152
- data.results.forEach(function (item) {
153
- var currentValue = item[groupName];
154
- var value = item[valueKey];
155
- var formatted_value = value;
156
- if (isAdvanced) {
157
- value = formatNumericValue(value, summaryColumn);
158
- formatted_value = StatUtils.getFormattedValue(value, summaryColumn, method);
159
- }
160
- if (currentValue) {
161
- newResult.push({
162
- name: currentValue,
163
- value: value,
164
- formatted_value: formatted_value
165
- });
166
- }
167
- });
168
- return _context2.abrupt("return", newResult);
169
- case 36:
170
- return _context2.abrupt("return", []);
171
- case 37:
172
- case "end":
173
- return _context2.stop();
174
- }
175
- }
176
- }, _callee2, this);
177
- }));
178
- function queryDb(_x2) {
179
- return _queryDb.apply(this, arguments);
27
+ const {
28
+ table_id,
29
+ geo_column,
30
+ summary_column
31
+ } = chart;
32
+ const table = this.getTableById(table_id);
33
+ const selectedColumn = geo_column && TableUtils.getTableColumnByKey(table, geo_column);
34
+ if (geo_column && (!selectedColumn || selectedColumn.type !== CellType.GEOLOCATION)) {
35
+ return false;
36
+ }
37
+ if (summary_column && !TableUtils.getTableColumnByKey(table, summary_column)) {
38
+ return false;
39
+ }
40
+ return true;
41
+ }
42
+ async calculate(chart) {
43
+ if (!this.isValidChart(chart)) return [];
44
+ if (this.isCalcByQueryDB(chart)) {
45
+ return await this.queryDb(chart);
46
+ }
47
+ return await this.calculateWithWorker(chart);
48
+ }
49
+ async queryDb(chart) {
50
+ const {
51
+ table_id,
52
+ view_id,
53
+ geo_column,
54
+ summary_type,
55
+ summary_method,
56
+ summary_column
57
+ } = chart;
58
+ const selectedTable = this.getTableById(table_id);
59
+ const selectedView = this.getViewById(view_id, selectedTable);
60
+ const column = TableUtils.getTableColumnByKey(selectedTable, geo_column);
61
+ if (!column) return [];
62
+ const columnName = column.name;
63
+ const isAdvanced = summary_type === 'advanced';
64
+ const geoGranularity = fixMapGeoGranularity(chart);
65
+ const method = isAdvanced ? DTABLE_DB_SUMMARY_METHOD[summary_method] : 'COUNT';
66
+ const sqlCondition = filter2SqlCondition(selectedTable, selectedView);
67
+ const groupName = getSqlGroup(geoGranularity, column);
68
+ let sqlString = '';
69
+ let summaryColumn;
70
+ let summaryColumnName = '';
71
+ if (isAdvanced) {
72
+ summaryColumn = TableUtils.getTableColumnByKey(selectedTable, summary_column);
73
+ if (!summaryColumn) {
74
+ return [];
180
75
  }
181
- return queryDb;
182
- }()
183
- }]);
184
- return MapCalculator;
185
- }(BaseCalculator);
76
+ summaryColumnName = summaryColumn.name;
77
+ const summaryColumnMethod = getSummaryColumnMethod(method, summaryColumnName);
78
+ sqlString = "select ".concat(groupName, ", ").concat(summaryColumnMethod, " from `").concat(selectedTable.name, "` ").concat(sqlCondition, " group by ").concat(groupName, " limit 5000");
79
+ } else {
80
+ sqlString = "select ".concat(groupName, ", ").concat(method, "(`").concat(columnName, "`) from `").concat(selectedTable.name, "` ").concat(sqlCondition, " group by ").concat(groupName, " limit 5000");
81
+ }
82
+ const result = await this.sqlQuery(sqlString);
83
+ if (result.status === 200 && result.data.success) {
84
+ const data = result.data;
85
+ if (!data.results) return [];
86
+ const newResult = [];
87
+ const summaryColumnMethod = getSummaryColumnMethod(method, summaryColumnName);
88
+ const valueKey = isAdvanced ? "".concat(summaryColumnMethod) : "".concat(method, "(").concat(columnName, ")");
89
+ data.results.forEach(item => {
90
+ const currentValue = item[groupName];
91
+ let value = item[valueKey];
92
+ let formatted_value = value;
93
+ if (isAdvanced) {
94
+ value = formatNumericValue(value, summaryColumn);
95
+ formatted_value = StatUtils.getFormattedValue(value, summaryColumn, method);
96
+ }
97
+ if (currentValue) {
98
+ newResult.push({
99
+ name: currentValue,
100
+ value,
101
+ formatted_value
102
+ });
103
+ }
104
+ });
105
+ return newResult;
106
+ }
107
+ return [];
108
+ }
109
+ }
186
110
  export default MapCalculator;