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
@@ -2,20 +2,22 @@ import { isNumber, isNumericColumn, TableUtils, Views } from 'dtable-store';
2
2
  import { getSummaryResult } from '../../utils/common-utils';
3
3
  import { getCellValue } from '../../utils/row-utils';
4
4
  function calculateResult(chart, dtableValue, username, userId) {
5
- var table_id = chart.table_id,
6
- view_id = chart.view_id,
7
- numeric_column = chart.numeric_column,
8
- summary_method = chart.summary_method;
9
- var selectedTable = TableUtils.getTableById(dtableValue.tables, table_id);
10
- var selectedView = selectedTable && Views.getViewById(selectedTable.views, view_id);
11
- var selectedColumn = TableUtils.getTableColumnByKey(selectedTable, numeric_column);
12
- var _isNumericColumn = selectedColumn && isNumericColumn(selectedColumn);
13
- var statRows = Views.getViewRows(selectedView, selectedTable, dtableValue, username, userId);
14
- var formulaRows = _isNumericColumn ? Views.getTableFormulaResults(selectedTable, statRows, dtableValue) : {};
15
- var numberList = [];
16
- _isNumericColumn && statRows.forEach(function (row) {
17
- var formulaRow = formulaRows[row._id];
18
- var cellValue = getCellValue(row, formulaRow, selectedColumn);
5
+ const {
6
+ table_id,
7
+ view_id,
8
+ numeric_column,
9
+ summary_method
10
+ } = chart;
11
+ const selectedTable = TableUtils.getTableById(dtableValue.tables, table_id);
12
+ const selectedView = selectedTable && Views.getViewById(selectedTable.views, view_id);
13
+ const selectedColumn = TableUtils.getTableColumnByKey(selectedTable, numeric_column);
14
+ const _isNumericColumn = selectedColumn && isNumericColumn(selectedColumn);
15
+ const statRows = Views.getViewRows(selectedView, selectedTable, dtableValue, username, userId);
16
+ const formulaRows = _isNumericColumn ? Views.getTableFormulaResults(selectedTable, statRows, dtableValue) : {};
17
+ const numberList = [];
18
+ _isNumericColumn && statRows.forEach(row => {
19
+ const formulaRow = formulaRows[row._id];
20
+ const cellValue = getCellValue(row, formulaRow, selectedColumn);
19
21
  if (isNumber(cellValue)) {
20
22
  numberList.push(cellValue);
21
23
  }
@@ -1,41 +1,41 @@
1
- import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
2
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
1
  import { isNumber, TableUtils, Views } from 'dtable-store';
4
2
  import StatUtils from '../../utils/stat-utils';
5
3
  import { getSummaryResult, isArrayCellValue } from '../../utils/common-utils';
6
4
  import { LABEL_COLORS, SUMMARY_TYPE } from '../../constants';
7
5
  import { getCellValue, getFormattedLabel } from '../../utils/row-utils';
8
6
  export default function calculateResult(chart, value, username, userId) {
9
- var table_id = chart.table_id,
10
- view_id = chart.view_id,
11
- x_axis_column_key = chart.x_axis_column_key,
12
- x_axis_include_empty = chart.x_axis_include_empty,
13
- groupby_date_granularity = chart.x_axis_date_granularity,
14
- groupby_geolocation_granularity = chart.x_axis_geolocation_granularity,
15
- y_axis_left_summary_column = chart.y_axis_left_summary_column,
16
- y_axis_right_summary_column = chart.y_axis_right_summary_column,
17
- y_axis_left_summary_type = chart.y_axis_left_summary_type,
18
- y_axis_right_summary_type = chart.y_axis_right_summary_type,
19
- y_axis_left_summary_method = chart.y_axis_left_summary_method,
20
- y_axis_right_summary_method = chart.y_axis_right_summary_method,
21
- y_axis_left_group_by_multiple_numeric_column = chart.y_axis_left_group_by_multiple_numeric_column,
22
- y_axis_left_group_by_numeric_columns = chart.y_axis_left_group_by_numeric_columns;
23
- var table = TableUtils.getTableById(value.tables, table_id);
24
- var view = table && Views.getViewById(table.views, view_id);
7
+ const {
8
+ table_id,
9
+ view_id,
10
+ x_axis_column_key,
11
+ x_axis_include_empty,
12
+ x_axis_date_granularity: groupby_date_granularity,
13
+ x_axis_geolocation_granularity: groupby_geolocation_granularity,
14
+ y_axis_left_summary_column,
15
+ y_axis_right_summary_column,
16
+ y_axis_left_summary_type,
17
+ y_axis_right_summary_type,
18
+ y_axis_left_summary_method,
19
+ y_axis_right_summary_method,
20
+ y_axis_left_group_by_multiple_numeric_column,
21
+ y_axis_left_group_by_numeric_columns
22
+ } = chart;
23
+ const table = TableUtils.getTableById(value.tables, table_id);
24
+ const view = table && Views.getViewById(table.views, view_id);
25
25
  if (!view) {
26
26
  return [];
27
27
  }
28
- var xAxisColumn = TableUtils.getTableColumnByKey(table, x_axis_column_key);
28
+ const xAxisColumn = TableUtils.getTableColumnByKey(table, x_axis_column_key);
29
29
  if (!xAxisColumn) return [];
30
- var statRows = Views.getViewRows(view, table, value, username, userId);
31
- var formulaRows = Views.getTableFormulaResults(table, statRows, value);
32
- var column1 = TableUtils.getTableColumnByKey(table, y_axis_left_summary_column);
33
- var column2 = TableUtils.getTableColumnByKey(table, y_axis_right_summary_column);
34
- var leftResultMap = new Map();
35
- var rightResultMap = new Map();
36
- var isColumnDataAsAnArray = isArrayCellValue(xAxisColumn);
37
- var leftSummaryColumn = {};
38
- var leftSummaryColumnKeys = [];
30
+ const statRows = Views.getViewRows(view, table, value, username, userId);
31
+ const formulaRows = Views.getTableFormulaResults(table, statRows, value);
32
+ const column1 = TableUtils.getTableColumnByKey(table, y_axis_left_summary_column);
33
+ const column2 = TableUtils.getTableColumnByKey(table, y_axis_right_summary_column);
34
+ const leftResultMap = new Map();
35
+ const rightResultMap = new Map();
36
+ let isColumnDataAsAnArray = isArrayCellValue(xAxisColumn);
37
+ let leftSummaryColumn = {};
38
+ let leftSummaryColumnKeys = [];
39
39
  if (y_axis_left_summary_type === SUMMARY_TYPE.ADVANCED) {
40
40
  if (column1) {
41
41
  leftSummaryColumn[y_axis_left_summary_column] = {
@@ -47,8 +47,8 @@ export default function calculateResult(chart, value, username, userId) {
47
47
  };
48
48
  }
49
49
  if (y_axis_left_group_by_multiple_numeric_column) {
50
- y_axis_left_group_by_numeric_columns.forEach(function (item, index) {
51
- var summaryColumn = TableUtils.getTableColumnByKey(table, item.column_key);
50
+ y_axis_left_group_by_numeric_columns.forEach((item, index) => {
51
+ const summaryColumn = TableUtils.getTableColumnByKey(table, item.column_key);
52
52
  if (summaryColumn) {
53
53
  leftSummaryColumn[item.column_key] = {
54
54
  method: item.summary_method,
@@ -62,30 +62,32 @@ export default function calculateResult(chart, value, username, userId) {
62
62
  }
63
63
  leftSummaryColumnKeys = Object.keys(leftSummaryColumn);
64
64
  }
65
- statRows.forEach(function (row) {
66
- var rowId = row._id;
67
- var formulaRow = formulaRows[rowId];
68
- var currentValue = row[xAxisColumn.key];
69
- var label = StatUtils.getGroupLabel(currentValue, formulaRow, xAxisColumn, groupby_date_granularity, groupby_geolocation_granularity, value);
65
+ statRows.forEach(row => {
66
+ let {
67
+ _id: rowId
68
+ } = row;
69
+ let formulaRow = formulaRows[rowId];
70
+ const currentValue = row[xAxisColumn.key];
71
+ let label = StatUtils.getGroupLabel(currentValue, formulaRow, xAxisColumn, groupby_date_granularity, groupby_geolocation_granularity, value);
70
72
 
71
73
  // collect left y axis data
72
74
  if (y_axis_left_summary_type === SUMMARY_TYPE.COUNT) {
73
75
  if (isColumnDataAsAnArray) {
74
76
  if (label.length > 0) {
75
- label.forEach(function (name) {
76
- var currentValue = leftResultMap.get(name) || 0;
77
+ label.forEach(name => {
78
+ let currentValue = leftResultMap.get(name) || 0;
77
79
  currentValue = currentValue + 1;
78
80
  leftResultMap.set(name, currentValue);
79
81
  });
80
82
  }
81
83
  if (label.length === 0 && x_axis_include_empty) {
82
- var _currentValue = leftResultMap.get(null) || 0;
83
- _currentValue += 1;
84
- leftResultMap.set(null, _currentValue);
84
+ let currentValue = leftResultMap.get(null) || 0;
85
+ currentValue += 1;
86
+ leftResultMap.set(null, currentValue);
85
87
  }
86
88
  } else {
87
89
  if (x_axis_include_empty || label) {
88
- var currentLabelCount = leftResultMap.get(label) || 0;
90
+ let currentLabelCount = leftResultMap.get(label) || 0;
89
91
  currentLabelCount = currentLabelCount + 1;
90
92
  leftResultMap.set(label, currentLabelCount);
91
93
  }
@@ -94,13 +96,14 @@ export default function calculateResult(chart, value, username, userId) {
94
96
  if (y_axis_left_summary_type === SUMMARY_TYPE.ADVANCED) {
95
97
  if (isColumnDataAsAnArray) {
96
98
  if (label.length > 0) {
97
- label.forEach(function (name) {
98
- var currentLabelMap = leftResultMap.get(name) || {};
99
- leftSummaryColumnKeys.forEach(function (key) {
100
- var cellValue = getCellValue(row, formulaRow, _objectSpread(_objectSpread({}, leftSummaryColumn[key]), {}, {
101
- key: key
102
- }));
103
- var currentLabelList = currentLabelMap[key] || [];
99
+ label.forEach(name => {
100
+ const currentLabelMap = leftResultMap.get(name) || {};
101
+ leftSummaryColumnKeys.forEach(key => {
102
+ const cellValue = getCellValue(row, formulaRow, {
103
+ ...leftSummaryColumn[key],
104
+ key
105
+ });
106
+ const currentLabelList = currentLabelMap[key] || [];
104
107
  if (isNumber(cellValue)) {
105
108
  currentLabelList.push(cellValue);
106
109
  }
@@ -110,33 +113,35 @@ export default function calculateResult(chart, value, username, userId) {
110
113
  });
111
114
  }
112
115
  if (label.length === 0 && x_axis_include_empty) {
113
- var _currentValue2 = leftResultMap.get(null) || {};
114
- leftSummaryColumnKeys.forEach(function (key) {
115
- var cellValue = getCellValue(row, formulaRow, _objectSpread(_objectSpread({}, leftSummaryColumn[key]), {}, {
116
- key: key
117
- }));
118
- var currentLabelList = _currentValue2[key] || [];
116
+ let currentValue = leftResultMap.get(null) || {};
117
+ leftSummaryColumnKeys.forEach(key => {
118
+ const cellValue = getCellValue(row, formulaRow, {
119
+ ...leftSummaryColumn[key],
120
+ key
121
+ });
122
+ const currentLabelList = currentValue[key] || [];
119
123
  if (isNumber(cellValue)) {
120
124
  currentLabelList.push(cellValue);
121
125
  }
122
- _currentValue2[key] = currentLabelList;
126
+ currentValue[key] = currentLabelList;
123
127
  });
124
- leftResultMap.set(null, _currentValue2);
128
+ leftResultMap.set(null, currentValue);
125
129
  }
126
130
  } else {
127
131
  if (x_axis_include_empty || label) {
128
- var _currentValue3 = leftResultMap.get(label) || {};
129
- leftSummaryColumnKeys.forEach(function (key) {
130
- var cellValue = getCellValue(row, formulaRow, _objectSpread(_objectSpread({}, leftSummaryColumn[key]), {}, {
131
- key: key
132
- }));
133
- var currentList = _currentValue3[key] || [];
132
+ const currentValue = leftResultMap.get(label) || {};
133
+ leftSummaryColumnKeys.forEach(key => {
134
+ const cellValue = getCellValue(row, formulaRow, {
135
+ ...leftSummaryColumn[key],
136
+ key
137
+ });
138
+ const currentList = currentValue[key] || [];
134
139
  if (isNumber(cellValue)) {
135
140
  currentList.push(cellValue);
136
141
  }
137
- _currentValue3[key] = currentList;
142
+ currentValue[key] = currentList;
138
143
  });
139
- leftResultMap.set(label, _currentValue3);
144
+ leftResultMap.set(label, currentValue);
140
145
  }
141
146
  }
142
147
  }
@@ -145,31 +150,31 @@ export default function calculateResult(chart, value, username, userId) {
145
150
  if (y_axis_right_summary_type === SUMMARY_TYPE.COUNT) {
146
151
  if (isColumnDataAsAnArray) {
147
152
  if (label.length > 0) {
148
- label.forEach(function (name) {
149
- var currentValue = rightResultMap.get(name) || 0;
153
+ label.forEach(name => {
154
+ let currentValue = rightResultMap.get(name) || 0;
150
155
  currentValue = currentValue + 1;
151
156
  rightResultMap.set(name, currentValue);
152
157
  });
153
158
  }
154
159
  if (label.length === 0 && x_axis_include_empty) {
155
- var _currentValue4 = rightResultMap.get(null) || 0;
156
- _currentValue4 += 1;
157
- rightResultMap.set(null, _currentValue4);
160
+ let currentValue = rightResultMap.get(null) || 0;
161
+ currentValue += 1;
162
+ rightResultMap.set(null, currentValue);
158
163
  }
159
164
  } else {
160
165
  if (x_axis_include_empty || label) {
161
- var _currentLabelCount = rightResultMap.get(label) || 0;
162
- _currentLabelCount = _currentLabelCount + 1;
163
- rightResultMap.set(label, _currentLabelCount);
166
+ let currentLabelCount = rightResultMap.get(label) || 0;
167
+ currentLabelCount = currentLabelCount + 1;
168
+ rightResultMap.set(label, currentLabelCount);
164
169
  }
165
170
  }
166
171
  }
167
172
  if (y_axis_right_summary_column && y_axis_right_summary_type === SUMMARY_TYPE.ADVANCED) {
168
- var cellValue = getCellValue(row, formulaRow, column2);
173
+ const cellValue = getCellValue(row, formulaRow, column2);
169
174
  if (isColumnDataAsAnArray) {
170
175
  if (label.length > 0) {
171
- label.forEach(function (name) {
172
- var currentLabelList = rightResultMap.get(name) || [];
176
+ label.forEach(name => {
177
+ const currentLabelList = rightResultMap.get(name) || [];
173
178
  if (isNumber(cellValue)) {
174
179
  currentLabelList.push(cellValue);
175
180
  }
@@ -177,15 +182,15 @@ export default function calculateResult(chart, value, username, userId) {
177
182
  });
178
183
  }
179
184
  if (label.length === 0 && x_axis_include_empty) {
180
- var _currentValue5 = rightResultMap.get(null) || [];
185
+ let currentValue = rightResultMap.get(null) || [];
181
186
  if (isNumber(cellValue)) {
182
- _currentValue5.push(cellValue);
187
+ currentValue.push(cellValue);
183
188
  }
184
- rightResultMap.set(null, _currentValue5);
189
+ rightResultMap.set(null, currentValue);
185
190
  }
186
191
  } else {
187
192
  if (x_axis_include_empty || label) {
188
- var currentLabelList = rightResultMap.get(label) || [];
193
+ const currentLabelList = rightResultMap.get(label) || [];
189
194
  if (isNumber(cellValue)) {
190
195
  currentLabelList.push(cellValue);
191
196
  }
@@ -196,76 +201,64 @@ export default function calculateResult(chart, value, username, userId) {
196
201
  });
197
202
 
198
203
  // Summary collect data
199
- var results = [];
200
- var targetMap = leftResultMap;
204
+ let results = [];
205
+ let targetMap = leftResultMap;
201
206
  if (leftSummaryColumnKeys.length === 0 && y_axis_left_summary_type === SUMMARY_TYPE.ADVANCED) {
202
207
  targetMap = rightResultMap;
203
208
  }
204
- var _iterator = _createForOfIteratorHelper(targetMap),
205
- _step;
206
- try {
207
- var _loop = function _loop() {
208
- var item = _step.value;
209
- var key = item[0];
210
- var leftValue = item[1];
211
- var value1 = 0;
212
- var value2 = 0;
213
- var formattedValueLeft = value1;
214
- var formattedValueRight = value2;
215
- var rightValue = rightResultMap.get(key);
216
- if (y_axis_right_summary_type === SUMMARY_TYPE.COUNT) {
217
- value2 = rightValue;
218
- formattedValueRight = value2;
209
+ for (let item of targetMap) {
210
+ const key = item[0];
211
+ const leftValue = item[1];
212
+ let value1 = 0;
213
+ let value2 = 0;
214
+ let formattedValueLeft = value1;
215
+ let formattedValueRight = value2;
216
+ const rightValue = rightResultMap.get(key);
217
+ if (y_axis_right_summary_type === SUMMARY_TYPE.COUNT) {
218
+ value2 = rightValue;
219
+ formattedValueRight = value2;
220
+ }
221
+ if (y_axis_right_summary_type === SUMMARY_TYPE.ADVANCED) {
222
+ value2 = getSummaryResult(rightValue, y_axis_right_summary_method);
223
+ formattedValueRight = StatUtils.getFormattedValue(value2, column2, y_axis_right_summary_method);
224
+ }
225
+ if (!y_axis_left_group_by_multiple_numeric_column) {
226
+ if (y_axis_left_summary_type === SUMMARY_TYPE.COUNT) {
227
+ value1 = leftValue;
228
+ formattedValueLeft = value1;
219
229
  }
220
- if (y_axis_right_summary_type === SUMMARY_TYPE.ADVANCED) {
221
- value2 = getSummaryResult(rightValue, y_axis_right_summary_method);
222
- formattedValueRight = StatUtils.getFormattedValue(value2, column2, y_axis_right_summary_method);
230
+ if (y_axis_left_summary_type === SUMMARY_TYPE.ADVANCED) {
231
+ const list = leftValue[column1.key];
232
+ value1 = getSummaryResult(list, y_axis_left_summary_method);
233
+ formattedValueLeft = StatUtils.getFormattedValue(value1, column1, y_axis_left_summary_method);
223
234
  }
224
- if (!y_axis_left_group_by_multiple_numeric_column) {
225
- if (y_axis_left_summary_type === SUMMARY_TYPE.COUNT) {
226
- value1 = leftValue;
227
- formattedValueLeft = value1;
228
- }
229
- if (y_axis_left_summary_type === SUMMARY_TYPE.ADVANCED) {
230
- var list = leftValue[column1.key];
231
- value1 = getSummaryResult(list, y_axis_left_summary_method);
232
- formattedValueLeft = StatUtils.getFormattedValue(value1, column1, y_axis_left_summary_method);
233
- }
235
+ results.push({
236
+ name: key,
237
+ value_left: value1,
238
+ value_right: value2,
239
+ formatted_value_left: formattedValueLeft,
240
+ formatted_value_right: formattedValueRight
241
+ });
242
+ } else {
243
+ leftSummaryColumnKeys.forEach(columnKey => {
244
+ const summaryColumn = leftSummaryColumn[columnKey];
245
+ const summaryMethod = summaryColumn.method;
246
+ const list = leftValue[columnKey];
247
+ const value = getSummaryResult(list, summaryMethod);
248
+ formattedValueLeft = StatUtils.getFormattedValue(value, summaryColumn, summaryMethod);
234
249
  results.push({
235
250
  name: key,
236
- value_left: value1,
251
+ value_left: value,
252
+ color: leftSummaryColumn[columnKey].color,
237
253
  value_right: value2,
238
254
  formatted_value_left: formattedValueLeft,
239
255
  formatted_value_right: formattedValueRight
240
256
  });
241
- } else {
242
- leftSummaryColumnKeys.forEach(function (columnKey) {
243
- var summaryColumn = leftSummaryColumn[columnKey];
244
- var summaryMethod = summaryColumn.method;
245
- var list = leftValue[columnKey];
246
- var value = getSummaryResult(list, summaryMethod);
247
- formattedValueLeft = StatUtils.getFormattedValue(value, summaryColumn, summaryMethod);
248
- results.push({
249
- name: key,
250
- value_left: value,
251
- color: leftSummaryColumn[columnKey].color,
252
- value_right: value2,
253
- formatted_value_left: formattedValueLeft,
254
- formatted_value_right: formattedValueRight
255
- });
256
- });
257
- }
258
- };
259
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
260
- _loop();
257
+ });
261
258
  }
262
- } catch (err) {
263
- _iterator.e(err);
264
- } finally {
265
- _iterator.f();
266
259
  }
267
260
  StatUtils.sortStatistics(results, xAxisColumn, 'name');
268
- results.forEach(function (item) {
261
+ results.forEach(item => {
269
262
  item.name = getFormattedLabel(xAxisColumn, item.name, value.collaborators);
270
263
  });
271
264
  return results;
@@ -1,145 +1,129 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
- import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
3
1
  import { TableUtils, Views } from 'dtable-store';
4
2
  import StatUtils from '../../utils/stat-utils';
5
3
  import { getSummaryResult } from '../../utils/common-utils';
6
4
  import { getCellValue } from '../../utils/row-utils';
7
5
  import { SUMMARY_TYPE } from '../../constants';
8
6
  function calculateChart(chart, value, username, userId) {
9
- var table_id = chart.table_id,
10
- view_id = chart.view_id,
11
- x_axis_column_key = chart.x_axis_column_key,
12
- y_axis_summary_type = chart.y_axis_summary_type,
13
- y_axis_summary_method = chart.y_axis_summary_method,
14
- y_axis_column_key = chart.y_axis_column_key,
15
- x_axis_date_granularity = chart.x_axis_date_granularity,
16
- x_axis_date_range_start = chart.x_axis_date_range_start,
17
- x_axis_date_range_end = chart.x_axis_date_range_end,
18
- x_axis_compared_date_range_start = chart.x_axis_compared_date_range_start,
19
- x_axis_compared_date_range_end = chart.x_axis_compared_date_range_end,
20
- display_increase = chart.display_increase;
21
- var groupName1 = "".concat(x_axis_date_range_start, " - ").concat(x_axis_date_range_end);
22
- var groupName2 = "".concat(x_axis_compared_date_range_start, " - ").concat(x_axis_compared_date_range_end);
23
- var table = TableUtils.getTableById(value.tables, table_id);
24
- var view = table && Views.getViewById(table.views, view_id);
7
+ const {
8
+ table_id,
9
+ view_id,
10
+ x_axis_column_key,
11
+ y_axis_summary_type,
12
+ y_axis_summary_method,
13
+ y_axis_column_key,
14
+ x_axis_date_granularity,
15
+ x_axis_date_range_start,
16
+ x_axis_date_range_end,
17
+ x_axis_compared_date_range_start,
18
+ x_axis_compared_date_range_end,
19
+ display_increase
20
+ } = chart;
21
+ const groupName1 = "".concat(x_axis_date_range_start, " - ").concat(x_axis_date_range_end);
22
+ const groupName2 = "".concat(x_axis_compared_date_range_start, " - ").concat(x_axis_compared_date_range_end);
23
+ const table = TableUtils.getTableById(value.tables, table_id);
24
+ const view = table && Views.getViewById(table.views, view_id);
25
25
  if (!view || !x_axis_column_key) {
26
26
  return [];
27
27
  }
28
- var groupbyColumn = TableUtils.getTableColumnByKey(table, x_axis_column_key);
28
+ const groupbyColumn = TableUtils.getTableColumnByKey(table, x_axis_column_key);
29
29
  if (!groupbyColumn) {
30
30
  return [];
31
31
  }
32
- var summaryColumn = TableUtils.getTableColumnByKey(table, y_axis_column_key) || {};
33
- var statRows = Views.getViewRows(view, table, value, username, userId);
34
- var formulaRows = Views.getTableFormulaResults(table, statRows, value);
35
- var dateRangeResultMap = new Map();
36
- var comparedDateRangeResultMap = new Map();
37
- var isAdvance = y_axis_summary_type === SUMMARY_TYPE.ADVANCED;
38
- statRows.forEach(function (row) {
39
- var rowId = row._id;
40
- var cellValue = row[groupbyColumn.key];
41
- var formulaRow = formulaRows[rowId];
32
+ const summaryColumn = TableUtils.getTableColumnByKey(table, y_axis_column_key) || {};
33
+ const statRows = Views.getViewRows(view, table, value, username, userId);
34
+ const formulaRows = Views.getTableFormulaResults(table, statRows, value);
35
+ const dateRangeResultMap = new Map();
36
+ const comparedDateRangeResultMap = new Map();
37
+ const isAdvance = y_axis_summary_type === SUMMARY_TYPE.ADVANCED;
38
+ statRows.forEach(row => {
39
+ const {
40
+ _id: rowId
41
+ } = row;
42
+ const cellValue = row[groupbyColumn.key];
43
+ const formulaRow = formulaRows[rowId];
42
44
  if (!cellValue) return;
43
45
  if (cellValue >= x_axis_date_range_start && cellValue <= x_axis_date_range_end || cellValue >= x_axis_compared_date_range_start && cellValue <= x_axis_compared_date_range_end) {
44
- var name = StatUtils.getGroupLabel(cellValue, formulaRow, groupbyColumn, x_axis_date_granularity, '', value);
46
+ const name = StatUtils.getGroupLabel(cellValue, formulaRow, groupbyColumn, x_axis_date_granularity, '', value);
45
47
  if (cellValue >= x_axis_date_range_start && cellValue <= x_axis_date_range_end) {
46
48
  if (isAdvance) {
47
- var currentValue = dateRangeResultMap.get(name);
48
- var _cellValue = getCellValue(row, formulaRow, summaryColumn);
49
+ const currentValue = dateRangeResultMap.get(name);
50
+ const _cellValue = getCellValue(row, formulaRow, summaryColumn);
49
51
  if (!currentValue) {
50
52
  dateRangeResultMap.set(name, [_cellValue]);
51
53
  } else {
52
54
  currentValue.push(_cellValue);
53
55
  }
54
56
  } else {
55
- var _currentValue = dateRangeResultMap.get(name);
56
- if (!_currentValue) {
57
+ const currentValue = dateRangeResultMap.get(name);
58
+ if (!currentValue) {
57
59
  dateRangeResultMap.set(name, 1);
58
60
  } else {
59
- dateRangeResultMap.set(name, _currentValue + 1);
61
+ dateRangeResultMap.set(name, currentValue + 1);
60
62
  }
61
63
  }
62
64
  } else {
63
65
  if (isAdvance) {
64
- var _currentValue2 = comparedDateRangeResultMap.get(name);
65
- var _cellValue2 = getCellValue(row, formulaRow, summaryColumn);
66
- if (!_currentValue2 && summaryColumn) {
67
- comparedDateRangeResultMap.set(name, [_cellValue2]);
66
+ const currentValue = comparedDateRangeResultMap.get(name);
67
+ const _cellValue = getCellValue(row, formulaRow, summaryColumn);
68
+ if (!currentValue && summaryColumn) {
69
+ comparedDateRangeResultMap.set(name, [_cellValue]);
68
70
  } else {
69
- _currentValue2.push(_cellValue2);
71
+ currentValue.push(_cellValue);
70
72
  }
71
73
  } else {
72
- var _currentValue3 = comparedDateRangeResultMap.get(name);
73
- if (!_currentValue3) {
74
+ const currentValue = comparedDateRangeResultMap.get(name);
75
+ if (!currentValue) {
74
76
  comparedDateRangeResultMap.set(name, 1);
75
77
  } else {
76
- comparedDateRangeResultMap.set(name, _currentValue3 + 1);
78
+ comparedDateRangeResultMap.set(name, currentValue + 1);
77
79
  }
78
80
  }
79
81
  }
80
82
  }
81
83
  });
82
- var dateRangeResult = [];
83
- var comparedDateRangeResult = [];
84
- var data = summaryColumn.data || {};
85
- var _iterator = _createForOfIteratorHelper(dateRangeResultMap),
86
- _step;
87
- try {
88
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
89
- var item = _step.value;
90
- var key = item[0];
91
- var _value = item[1];
92
- var formatted_value = _value;
93
- if (isAdvance) {
94
- _value = getSummaryResult(_value, y_axis_summary_method, data.precision);
95
- formatted_value = StatUtils.getFormattedValue(_value, summaryColumn, y_axis_summary_method);
96
- }
97
- dateRangeResult.push({
98
- name: key,
99
- group_name: groupName1,
100
- raw_name: key,
101
- value: _value,
102
- formatted_value: formatted_value
103
- });
84
+ let dateRangeResult = [];
85
+ let comparedDateRangeResult = [];
86
+ const data = summaryColumn.data || {};
87
+ for (let item of dateRangeResultMap) {
88
+ const key = item[0];
89
+ let value = item[1];
90
+ let formatted_value = value;
91
+ if (isAdvance) {
92
+ value = getSummaryResult(value, y_axis_summary_method, data.precision);
93
+ formatted_value = StatUtils.getFormattedValue(value, summaryColumn, y_axis_summary_method);
104
94
  }
105
- } catch (err) {
106
- _iterator.e(err);
107
- } finally {
108
- _iterator.f();
95
+ dateRangeResult.push({
96
+ name: key,
97
+ group_name: groupName1,
98
+ raw_name: key,
99
+ value,
100
+ formatted_value
101
+ });
109
102
  }
110
103
  StatUtils.sortStatistics(dateRangeResult, groupbyColumn, 'name');
111
- var _iterator2 = _createForOfIteratorHelper(comparedDateRangeResultMap),
112
- _step2;
113
- try {
114
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
115
- var _item = _step2.value;
116
- var _key = _item[0];
117
- var _value2 = _item[1];
118
- var _formatted_value = _value2;
119
- if (isAdvance) {
120
- _value2 = getSummaryResult(_value2, y_axis_summary_method, data.precision);
121
- _formatted_value = StatUtils.getFormattedValue(_value2, summaryColumn, y_axis_summary_method);
122
- }
123
- comparedDateRangeResult.push({
124
- name: _key,
125
- group_name: groupName2,
126
- raw_name: _key,
127
- value: _value2,
128
- formatted_value: _formatted_value
129
- });
104
+ for (let item of comparedDateRangeResultMap) {
105
+ const key = item[0];
106
+ let value = item[1];
107
+ let formatted_value = value;
108
+ if (isAdvance) {
109
+ value = getSummaryResult(value, y_axis_summary_method, data.precision);
110
+ formatted_value = StatUtils.getFormattedValue(value, summaryColumn, y_axis_summary_method);
130
111
  }
131
- } catch (err) {
132
- _iterator2.e(err);
133
- } finally {
134
- _iterator2.f();
112
+ comparedDateRangeResult.push({
113
+ name: key,
114
+ group_name: groupName2,
115
+ raw_name: key,
116
+ value,
117
+ formatted_value
118
+ });
135
119
  }
136
120
  StatUtils.sortStatistics(comparedDateRangeResult, groupbyColumn, 'name');
137
- for (var i = 0; i < dateRangeResult.length; i++) {
121
+ for (let i = 0; i < dateRangeResult.length; i++) {
138
122
  if (!comparedDateRangeResult[i]) break;
139
123
  comparedDateRangeResult[i].name = dateRangeResult[i].name;
140
124
  if (display_increase) {
141
- var value1 = dateRangeResult[i].value;
142
- var value2 = comparedDateRangeResult[i].value || 0.001;
125
+ const value1 = dateRangeResult[i].value;
126
+ const value2 = comparedDateRangeResult[i].value || 0.001;
143
127
  if (!value2) {
144
128
  comparedDateRangeResult[i].increase_value = 1;
145
129
  } else {
@@ -150,6 +134,6 @@ function calculateChart(chart, value, username, userId) {
150
134
  if (comparedDateRangeResult.length > dateRangeResult.length) {
151
135
  comparedDateRangeResult = comparedDateRangeResult.slice(0, dateRangeResult.length);
152
136
  }
153
- return [].concat(_toConsumableArray(comparedDateRangeResult), dateRangeResult);
137
+ return [...comparedDateRangeResult, ...dateRangeResult];
154
138
  }
155
139
  export default calculateChart;