dtable-statistic 4.0.7 → 4.0.8

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 (60) hide show
  1. package/es/calculator/basic-chart-calculator.js +27 -18
  2. package/es/calculator/combination-calculator.js +34 -9
  3. package/es/calculator/compare-bar-calculator.js +37 -30
  4. package/es/calculator/heat-map-calculator.js +25 -14
  5. package/es/calculator/map-calculator.js +25 -14
  6. package/es/calculator/mirror-calculator.js +29 -14
  7. package/es/calculator/pivot-table-calculator.js +78 -51
  8. package/es/calculator/workers/basic-chart-calculator-worker.js +21 -6
  9. package/es/calculator/workers/combination-calculator-worker.js +20 -5
  10. package/es/calculator/workers/compare-bar-chart-calculator-worker.js +12 -6
  11. package/es/calculator/workers/mirror-calculator-worker.js +15 -6
  12. package/es/calculator/workers/pivot-table-calculator-worker.js +87 -41
  13. package/es/calculator/world-map-calculator.js +25 -14
  14. package/es/components/dialog/enlarged-chart-dialog.js +2 -2
  15. package/es/components/dialog/statistic-record-dialog/index.js +71 -41
  16. package/es/constants/index.js +30 -29
  17. package/es/dashboard.js +57 -43
  18. package/es/desktop-dashboard.js +16 -51
  19. package/es/index.js +34 -2
  20. package/es/locale/lang/de.js +2 -0
  21. package/es/locale/lang/en.js +2 -0
  22. package/es/locale/lang/fr.js +2 -0
  23. package/es/locale/lang/zh_CN.js +2 -0
  24. package/es/mobile-dashboard.js +5 -5
  25. package/es/model/horizontal-bar-group.js +2 -0
  26. package/es/stat-editor/stat-settings/advance-chart-settings/index.js +1 -2
  27. package/es/stat-editor/stat-settings/advance-chart-settings/summary-settings.js +1 -1
  28. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/horizontal-bar-chart-style.js +20 -3
  29. package/es/stat-editor/stat-settings/basic-chart-settings/summary-settings.js +2 -8
  30. package/es/stat-editor/stat-settings/public-setting/type-settings/index.js +23 -2
  31. package/es/stat-list/chart-preview.js +3 -4
  32. package/es/stat-list/index.js +10 -4
  33. package/es/stat-view/area-chart.js +177 -162
  34. package/es/stat-view/bar-chart.js +221 -222
  35. package/es/stat-view/base-chart.js +79 -7
  36. package/es/stat-view/basic-number-card.js +11 -19
  37. package/es/stat-view/combination-chart.js +100 -83
  38. package/es/stat-view/compare-chart.js +133 -144
  39. package/es/stat-view/completeness-chart.js +108 -102
  40. package/es/stat-view/custom-bar.js +79 -99
  41. package/es/stat-view/dashboard-chart.js +57 -57
  42. package/es/stat-view/heat-map.js +13 -32
  43. package/es/stat-view/horizontal-bar-chart.js +200 -230
  44. package/es/stat-view/index.js +2 -2
  45. package/es/stat-view/line-chart.js +162 -158
  46. package/es/stat-view/map.js +26 -40
  47. package/es/stat-view/mirror.js +88 -94
  48. package/es/stat-view/pie-chart.js +11 -39
  49. package/es/stat-view/pivot-table/index.js +4 -16
  50. package/es/stat-view/pivot-table/one-dimension-table-no-numeric-columns.js +22 -15
  51. package/es/stat-view/ring-chart.js +24 -42
  52. package/es/stat-view/scatter-chart.js +4 -21
  53. package/es/stat-view/treemap-chart.js +3 -12
  54. package/es/stat-view/trend-chart.js +6 -17
  55. package/es/stat-view/world-map.js +39 -50
  56. package/es/tabs/tab.js +2 -1
  57. package/es/utils/common-utils.js +24 -6
  58. package/es/utils/sql-utils.js +10 -9
  59. package/es/utils/stat-utils.js +8 -5
  60. package/package.json +1 -1
@@ -112,7 +112,7 @@ var BasicChartCalculator = /*#__PURE__*/function (_BaseCalculator) {
112
112
  key: "queryDb",
113
113
  value: function () {
114
114
  var _queryDb = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(chart) {
115
- var table_id, view_id, groupby_column_key, summary_type, summary_method, summary_column_key, groupby_date_granularity, include_empty, groupby_geolocation_granularity, column_groupby_multiple_numeric_column, column_groupby_column_key, sortType, yAxisType, selectedTable, selectedView, groupbyColumn, sqlCondition, groupbyName, isTimeColumn, results, column_groupby_numeric_columns, summaryColumn, column_groupby_date_granularity, column_groupby_geolocation_granularity;
115
+ var table_id, view_id, column_groupby_multiple_numeric_column, groupby_column_key, summary_type, summary_method, summary_column_key, groupby_date_granularity, include_empty, groupby_geolocation_granularity, column_groupby_column_key, sortType, yAxisType, selectedTable, selectedView, groupbyColumn, sqlCondition, groupbyName, isTimeColumn, results, column_groupby_numeric_columns, summaryColumn, column_groupby_date_granularity, column_groupby_geolocation_granularity;
116
116
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
117
117
  while (1) {
118
118
  switch (_context2.prev = _context2.next) {
@@ -123,7 +123,7 @@ var BasicChartCalculator = /*#__PURE__*/function (_BaseCalculator) {
123
123
  }
124
124
  return _context2.abrupt("return", this.queryDbFromCustomBar(chart));
125
125
  case 2:
126
- table_id = chart.table_id, view_id = chart.view_id;
126
+ table_id = chart.table_id, view_id = chart.view_id, column_groupby_multiple_numeric_column = chart.column_groupby_multiple_numeric_column;
127
127
  column_groupby_column_key = chart.column_groupby_column_key;
128
128
  sortType = chart.sort_type;
129
129
  if (chart.type === STAT_TYPE.PIE || chart.type === STAT_TYPE.RING || chart.type === STAT_TYPE.TREEMAP) {
@@ -341,16 +341,19 @@ var BasicChartCalculator = /*#__PURE__*/function (_BaseCalculator) {
341
341
  valueKey = isAdvanced ? "".concat(summaryColumnMethod) : "".concat(method, "(").concat(groupbyColumn.name, ")");
342
342
  data.results.forEach(function (item) {
343
343
  var label = _this.getLabel(groupbyColumn, groupbyName, item, groupbyDateGranularity, groupbyGeolocationGranularity);
344
+ if (!includeEmpty && _this.isEmptyLabel(label)) {
345
+ return;
346
+ }
344
347
  var value = item[valueKey] || 0;
348
+ var formatted_value = value;
345
349
  if (isAdvanced) {
346
350
  value = formatNumericValue(value, selectedSummaryColumn);
347
- }
348
- if (!includeEmpty && _this.isEmptyLabel(label)) {
349
- return;
351
+ formatted_value = StatUtils.getFormattedValue(value, selectedSummaryColumn, summaryMethod);
350
352
  }
351
353
  newResult.push({
352
354
  name: label,
353
355
  value: value,
356
+ formatted_value: formatted_value,
354
357
  original_name: item[groupbyColumn.key],
355
358
  y_axis_type: yAxisType
356
359
  });
@@ -423,14 +426,16 @@ var BasicChartCalculator = /*#__PURE__*/function (_BaseCalculator) {
423
426
  newResult = [];
424
427
  valueKey = isAdvanced ? "".concat(summaryColumnMethod) : "".concat(method, "(").concat(groupbyColumn.name, ")");
425
428
  data.results.forEach(function (item) {
426
- var value = item[valueKey] || 0;
427
- if (isAdvanced) {
428
- value = formatNumericValue(value, selectedSummaryColumn);
429
- }
430
429
  var label = _this2.getLabel(groupbyColumn, groupbyName, item, groupbyDateGranularity, groupbyGeolocationGranularity);
431
430
  if (!includeEmpty && _this2.isEmptyLabel(label)) {
432
431
  return;
433
432
  }
433
+ var value = item[valueKey] || 0;
434
+ var formatted_value = value;
435
+ if (isAdvanced) {
436
+ value = formatNumericValue(value, selectedSummaryColumn);
437
+ formatted_value = StatUtils.getFormattedValue(value, selectedSummaryColumn, summaryMethod);
438
+ }
434
439
  var color;
435
440
  if (columnGroupbyColumn.type === CellType.SINGLE_SELECT) {
436
441
  var tempValue = StatUtils.getGroupLabel(item[columnGroupbyColumn.key], {}, columnGroupbyColumn, columnGroupbyDateGranularity, columnGroupbyGeolocationGranularity, _this2.value);
@@ -439,6 +444,7 @@ var BasicChartCalculator = /*#__PURE__*/function (_BaseCalculator) {
439
444
  var groupLabel = _this2.getLabel(columnGroupbyColumn, columnGroupbyColumnName, item, columnGroupbyDateGranularity, columnGroupbyGeolocationGranularity);
440
445
  newResult.push({
441
446
  value: value,
447
+ formatted_value: formatted_value,
442
448
  color: color,
443
449
  name: label,
444
450
  group_name: groupLabel,
@@ -465,7 +471,7 @@ var BasicChartCalculator = /*#__PURE__*/function (_BaseCalculator) {
465
471
  value: function () {
466
472
  var _getGroupbyMultipleNumericColumnsResults = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(groupbyName, groupbyColumn, groupbyDateGranularity, groupbyGeolocationGranularity, includeEmpty, summaryType, summaryColumn, summaryMethod, columnGroupbyNumericColumns, sqlCondition, table, yAxisType) {
467
473
  var _this3 = this;
468
- var isAdvanced, numericColumns, groupColumnNames, groupMethods, summaryColumnName, method, summaryColumnMethod, sqlString, result, data, newResult;
474
+ var isAdvanced, numericColumns, groupColumnNames, groupMethods, originalMethods, summaryColumnName, method, summaryColumnMethod, sqlString, result, data, newResult;
469
475
  return _regeneratorRuntime.wrap(function _callee6$(_context6) {
470
476
  while (1) {
471
477
  switch (_context6.prev = _context6.next) {
@@ -474,6 +480,7 @@ var BasicChartCalculator = /*#__PURE__*/function (_BaseCalculator) {
474
480
  numericColumns = [];
475
481
  groupColumnNames = [];
476
482
  groupMethods = [];
483
+ originalMethods = [];
477
484
  if (summaryColumn) {
478
485
  summaryColumnName = isAdvanced ? summaryColumn.name : "`".concat(groupbyColumn.name, "`");
479
486
  method = isAdvanced ? DTABLE_DB_SUMMARY_METHOD[summaryMethod] : 'COUNT';
@@ -481,6 +488,7 @@ var BasicChartCalculator = /*#__PURE__*/function (_BaseCalculator) {
481
488
  numericColumns.push(summaryColumn);
482
489
  groupColumnNames.push(summaryColumnName);
483
490
  groupMethods.push(summaryColumnMethod);
491
+ originalMethods.push(summaryMethod);
484
492
  }
485
493
  columnGroupbyNumericColumns.forEach(function (item) {
486
494
  var numericColumn = TableUtils.getTableColumnByKey(table, item.column_key);
@@ -488,25 +496,26 @@ var BasicChartCalculator = /*#__PURE__*/function (_BaseCalculator) {
488
496
  numericColumns.push(numericColumn);
489
497
  groupColumnNames.push(groupColumnName);
490
498
  groupMethods.push(getSummaryColumnMethod(DTABLE_DB_SUMMARY_METHOD[item.summary_method], groupColumnName));
499
+ originalMethods.push(item.summary_method);
491
500
  });
492
501
  sqlString = "select ".concat(groupbyName, ", ").concat(groupMethods.join(','), " from `").concat(table.name, "` ").concat(sqlCondition, " group by ").concat(groupbyName, " order by ").concat(groupbyName, " limit 5000");
493
- _context6.next = 9;
502
+ _context6.next = 10;
494
503
  return this.sqlQuery(sqlString);
495
- case 9:
504
+ case 10:
496
505
  result = _context6.sent;
497
506
  if (!(result.status !== 200 || !result.data.success)) {
498
- _context6.next = 12;
507
+ _context6.next = 13;
499
508
  break;
500
509
  }
501
510
  return _context6.abrupt("return", []);
502
- case 12:
511
+ case 13:
503
512
  data = result.data;
504
513
  if (data.results) {
505
- _context6.next = 15;
514
+ _context6.next = 16;
506
515
  break;
507
516
  }
508
517
  return _context6.abrupt("return", []);
509
- case 15:
518
+ case 16:
510
519
  newResult = [];
511
520
  data.results.forEach(function (item) {
512
521
  var label = _this3.getLabel(groupbyColumn, groupbyName, item, groupbyDateGranularity, groupbyGeolocationGranularity);
@@ -520,7 +529,7 @@ var BasicChartCalculator = /*#__PURE__*/function (_BaseCalculator) {
520
529
  var formatted_value = value;
521
530
  if (isAdvanced) {
522
531
  value = formatNumericValue(value, numericColumns[index]);
523
- formatted_value = StatUtils.getFormattedValue(value, numericColumns[index]);
532
+ formatted_value = StatUtils.getFormattedValue(value, numericColumns[index], originalMethods[index]);
524
533
  }
525
534
  groupItems.push({
526
535
  name: label,
@@ -534,7 +543,7 @@ var BasicChartCalculator = /*#__PURE__*/function (_BaseCalculator) {
534
543
  newResult = newResult.concat(groupItems);
535
544
  });
536
545
  return _context6.abrupt("return", newResult);
537
- case 18:
546
+ case 19:
538
547
  case "end":
539
548
  return _context6.stop();
540
549
  }
@@ -103,7 +103,7 @@ var CombinationCalculator = /*#__PURE__*/function (_BaseCalculator) {
103
103
  value: function () {
104
104
  var _queryDb = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(chart) {
105
105
  var _this2 = this;
106
- var table_id, x_axis_column_key, x_axis_include_empty, groupby_date_granularity, groupby_geolocation_granularity, y_axis_left_summary_type, y_axis_right_summary_type, y_axis_right_summary_method, y_axis_left_summary_method, y_axis_left_summary_column, y_axis_right_summary_column, y_axis_left_group_by_multiple_numeric_column, y_axis_left_group_by_numeric_columns, selectedTable, selectedColumn, groupName, sqlString, result, newResult, results, data, value1Key, leftSummaryColumn, rightSummaryColumn, value2Key, _rightSummaryColumn, _value2Key, groupItems, _leftSummaryColumn, groupItem;
106
+ var table_id, x_axis_column_key, x_axis_include_empty, groupby_date_granularity, groupby_geolocation_granularity, y_axis_left_summary_type, y_axis_right_summary_type, y_axis_right_summary_method, y_axis_left_summary_method, y_axis_left_summary_column, y_axis_right_summary_column, y_axis_left_group_by_multiple_numeric_column, y_axis_left_group_by_numeric_columns, selectedTable, selectedColumn, groupName, sqlString, result, newResult, results, data, value1Key, leftSummaryColumn, rightSummaryColumn, value2Key, _rightSummaryColumn, _value2Key, groupItems, summaries, _leftSummaryColumn, groupItem;
107
107
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
108
108
  while (1) {
109
109
  switch (_context2.prev = _context2.next) {
@@ -161,18 +161,24 @@ var CombinationCalculator = /*#__PURE__*/function (_BaseCalculator) {
161
161
  data.forEach(function (item) {
162
162
  var label = _this2.getLabel(selectedColumn, groupName, item, groupby_date_granularity, groupby_geolocation_granularity);
163
163
  var value1 = item[value1Key] || 0;
164
+ var value2 = item[value2Key] || 0;
165
+ var formattedValueLeft = value1;
166
+ var formattedValueRight = value2;
164
167
  if (y_axis_left_summary_type === SUMMARY_TYPE.ADVANCED) {
165
168
  value1 = formatNumericValue(value1, leftSummaryColumn);
169
+ formattedValueLeft = StatUtils.getFormattedValue(value1, leftSummaryColumn, y_axis_left_summary_method);
166
170
  }
167
- var value2 = item[value2Key] || 0;
168
171
  if (y_axis_right_summary_type === SUMMARY_TYPE.ADVANCED) {
169
172
  value2 = formatNumericValue(value2, rightSummaryColumn);
173
+ formattedValueRight = StatUtils.getFormattedValue(value2, rightSummaryColumn, y_axis_right_summary_method);
170
174
  }
171
175
  if (!_this2.isEmptyLabel(label) || x_axis_include_empty) {
172
176
  newResult.push({
173
177
  name: label,
174
178
  value_left: value1,
175
179
  value_right: value2,
180
+ formatted_value_left: formattedValueLeft,
181
+ formatted_value_right: formattedValueRight,
176
182
  original_name: item[selectedColumn.key]
177
183
  });
178
184
  }
@@ -184,32 +190,51 @@ var CombinationCalculator = /*#__PURE__*/function (_BaseCalculator) {
184
190
  _value2Key = getSummaryColumnMethod(DTABLE_DB_SUMMARY_METHOD[y_axis_right_summary_method], _rightSummaryColumn.name);
185
191
  }
186
192
  groupItems = [];
193
+ summaries = [];
187
194
  _leftSummaryColumn = TableUtils.getTableColumnByKey(selectedTable, y_axis_left_summary_column);
188
195
  groupItem = getSummaryColumnMethod(DTABLE_DB_SUMMARY_METHOD[y_axis_left_summary_method], _leftSummaryColumn.name);
189
- _leftSummaryColumn && !groupItems.includes(groupItem) && groupItems.push(groupItem);
196
+ if (_leftSummaryColumn && !groupItems.includes(groupItem)) {
197
+ groupItems.push(groupItem);
198
+ summaries.push({
199
+ column: _leftSummaryColumn,
200
+ method: y_axis_left_summary_method
201
+ });
202
+ }
190
203
  y_axis_left_group_by_numeric_columns.forEach(function (item, index) {
191
204
  var column = TableUtils.getTableColumnByKey(selectedTable, item.column_key);
192
205
  if (column) {
193
- var _groupItem = getSummaryColumnMethod(DTABLE_DB_SUMMARY_METHOD[item.summary_method], column.name);
194
- !groupItems.includes(_groupItem) && groupItems.push(_groupItem);
206
+ var method = item.summary_method;
207
+ var _groupItem = getSummaryColumnMethod(DTABLE_DB_SUMMARY_METHOD[method], column.name);
208
+ if (!groupItems.includes(_groupItem)) {
209
+ groupItems.push(_groupItem);
210
+ summaries.push({
211
+ column: column,
212
+ method: method
213
+ });
214
+ }
195
215
  }
196
216
  });
197
217
  data.forEach(function (item, index) {
198
218
  var label = _this2.getLabel(selectedColumn, groupName, item, groupby_date_granularity, groupby_geolocation_granularity);
199
219
  var value2 = item[_value2Key] || 0;
220
+ var formattedValueRight = value2;
200
221
  if (y_axis_right_summary_type === SUMMARY_TYPE.ADVANCED) {
201
222
  value2 = formatNumericValue(value2, _rightSummaryColumn);
223
+ formattedValueRight = StatUtils.getFormattedValue(value2, _rightSummaryColumn, y_axis_right_summary_method);
202
224
  }
203
225
  groupItems.forEach(function (groupItem, index) {
204
226
  if (!_this2.isEmptyLabel(label) || x_axis_include_empty) {
205
- var value = item[groupItems[index]] || 0;
206
- if (y_axis_right_summary_type === SUMMARY_TYPE.ADVANCED) {
207
- value = formatNumericValue(value, _leftSummaryColumn);
208
- }
227
+ var summary = summaries[index];
228
+ var method = summary.method,
229
+ column = summary.column;
230
+ var value = formatNumericValue(item[groupItems[index]] || 0, column);
231
+ var formattedValueLeft = StatUtils.getFormattedValue(value, column, method);
209
232
  newResult.push({
210
233
  name: label,
211
234
  value_left: value,
212
235
  value_right: value2,
236
+ formatted_value_left: formattedValueLeft,
237
+ formatted_value_right: formattedValueRight,
213
238
  color: LABEL_COLORS[index % 12],
214
239
  original_name: item[selectedColumn.key]
215
240
  });
@@ -11,7 +11,7 @@ import { filter2SqlCondition, TableUtils } from 'dtable-store';
11
11
  import BaseCalculator from './base-calculator';
12
12
  import { getSqlGroup, getSqlOrder } from '../utils/sql-utils';
13
13
  import StatUtils from '../utils/stat-utils';
14
- import { getSummaryResult } from '../utils/common-utils';
14
+ import { getSummaryColumnMethod, getSummaryResult } from '../utils/common-utils';
15
15
  import { DTABLE_DB_SUMMARY_METHOD, SUMMARY_TYPE } from '../constants';
16
16
  var CompareBarCalculator = /*#__PURE__*/function (_BaseCalculator) {
17
17
  _inherits(CompareBarCalculator, _BaseCalculator);
@@ -99,7 +99,7 @@ var CompareBarCalculator = /*#__PURE__*/function (_BaseCalculator) {
99
99
  value: function () {
100
100
  var _queryDb = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(chart) {
101
101
  var _this = this;
102
- var table_id, view_id, x_axis_column_key, x_axis_date_granularity, y_axis_summary_type, y_axis_summary_method, y_axis_column_key, x_axis_date_range_start, x_axis_date_range_end, x_axis_compared_date_range_start, x_axis_compared_date_range_end, display_increase, selectedTable, selectedView, selectedColumn, isAdvanced, method, sqlString, groupName, sqlOrder, summaryColumnName, selectedSummaryColumn, sqlCondition, result, groupName1, groupName2, dateRangeResult, dateComparedResult, valueKey, comparedResult, rangeResult, data, _iterator, _step, item, value, index, _iterator2, _step2, _item, dateRangeItem, _value, newItem, value1, increaseValue;
102
+ var table_id, view_id, x_axis_column_key, x_axis_date_granularity, y_axis_summary_type, y_axis_summary_method, y_axis_column_key, x_axis_date_range_start, x_axis_date_range_end, x_axis_compared_date_range_start, x_axis_compared_date_range_end, display_increase, selectedTable, selectedView, selectedColumn, isAdvanced, method, sqlString, groupName, sqlOrder, summaryColumnName, selectedSummaryColumn, summaryColumnMethod, sqlCondition, result, groupName1, groupName2, dateRangeResult, dateComparedResult, valueKey, comparedResult, rangeResult, data, _iterator, _step, item, value, formatted_value, index, _iterator2, _step2, _item, dateRangeItem, _value, _formatted_value, newItem, value1, increaseValue;
103
103
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
104
104
  while (1) {
105
105
  switch (_context2.prev = _context2.next) {
@@ -109,7 +109,7 @@ var CompareBarCalculator = /*#__PURE__*/function (_BaseCalculator) {
109
109
  selectedView = this.getViewById(view_id, selectedTable);
110
110
  selectedColumn = TableUtils.getTableColumnByKey(selectedTable, x_axis_column_key);
111
111
  isAdvanced = y_axis_summary_type === SUMMARY_TYPE.ADVANCED;
112
- method = isAdvanced ? DTABLE_DB_SUMMARY_METHOD[y_axis_summary_method] : 'COUNT';
112
+ method = isAdvanced ? DTABLE_DB_SUMMARY_METHOD[y_axis_summary_method] : DTABLE_DB_SUMMARY_METHOD.Count;
113
113
  sqlString = '';
114
114
  groupName = getSqlGroup('day', selectedColumn);
115
115
  sqlOrder = getSqlOrder(null, groupName);
@@ -128,17 +128,18 @@ var CompareBarCalculator = /*#__PURE__*/function (_BaseCalculator) {
128
128
  case 15:
129
129
  summaryColumnName = "".concat(selectedSummaryColumn.name);
130
130
  case 16:
131
+ summaryColumnMethod = getSummaryColumnMethod(method, summaryColumnName);
131
132
  sqlCondition = filter2SqlCondition(selectedTable, selectedView);
132
133
  sqlCondition = this.getStatItemSqlCondition(chart, sqlCondition, "`".concat(selectedColumn.name, "`"));
133
- sqlString = "select ".concat(groupName, ", ").concat(method, "(").concat(summaryColumnName, ") from `").concat(selectedTable.name, "` ").concat(sqlCondition, " group by ").concat(groupName, " ").concat(sqlOrder, " limit 5000");
134
- _context2.next = 21;
134
+ sqlString = "select ".concat(groupName, ", ").concat(summaryColumnMethod, " from `").concat(selectedTable.name, "` ").concat(sqlCondition, " group by ").concat(groupName, " ").concat(sqlOrder, " limit 5000");
135
+ _context2.next = 22;
135
136
  return this.sqlQuery(sqlString);
136
- case 21:
137
+ case 22:
137
138
  result = _context2.sent;
138
139
  groupName1 = "".concat(x_axis_date_range_start, " - ").concat(x_axis_date_range_end);
139
140
  groupName2 = "".concat(x_axis_compared_date_range_start, " - ").concat(x_axis_compared_date_range_end);
140
141
  if (!(result.status === 200 && result.data.success)) {
141
- _context2.next = 61;
142
+ _context2.next = 63;
142
143
  break;
143
144
  }
144
145
  dateRangeResult = new Map();
@@ -188,14 +189,17 @@ var CompareBarCalculator = /*#__PURE__*/function (_BaseCalculator) {
188
189
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
189
190
  item = _step.value;
190
191
  value = item[1];
192
+ formatted_value = value;
191
193
  if (isAdvanced) {
192
194
  value = getSummaryResult(item[1], y_axis_summary_method, data.precision);
195
+ formatted_value = StatUtils.getFormattedValue(value, selectedSummaryColumn, y_axis_summary_method);
193
196
  }
194
197
  rangeResult.push({
195
198
  name: item[0],
196
- value: value,
197
199
  group_name: groupName1,
198
- raw_name: item[0]
200
+ raw_name: item[0],
201
+ value: value,
202
+ formatted_value: formatted_value
199
203
  });
200
204
  }
201
205
  } catch (err) {
@@ -205,30 +209,33 @@ var CompareBarCalculator = /*#__PURE__*/function (_BaseCalculator) {
205
209
  }
206
210
  index = 0;
207
211
  _iterator2 = _createForOfIteratorHelper(dateComparedResult);
208
- _context2.prev = 36;
212
+ _context2.prev = 37;
209
213
  _iterator2.s();
210
- case 38:
214
+ case 39:
211
215
  if ((_step2 = _iterator2.n()).done) {
212
- _context2.next = 51;
216
+ _context2.next = 53;
213
217
  break;
214
218
  }
215
219
  _item = _step2.value;
216
220
  dateRangeItem = rangeResult[index];
217
221
  if (dateRangeItem) {
218
- _context2.next = 43;
222
+ _context2.next = 44;
219
223
  break;
220
224
  }
221
- return _context2.abrupt("break", 51);
222
- case 43:
225
+ return _context2.abrupt("break", 53);
226
+ case 44:
223
227
  _value = _item[1];
228
+ _formatted_value = _value;
224
229
  if (isAdvanced) {
225
230
  _value = getSummaryResult(_item[1], y_axis_summary_method, data.precision);
231
+ _formatted_value = StatUtils.getFormattedValue(_value, selectedSummaryColumn, y_axis_summary_method);
226
232
  }
227
233
  newItem = {
228
234
  name: dateRangeItem.name,
229
- value: _value,
230
235
  group_name: groupName2,
231
- raw_name: _item[0]
236
+ raw_name: _item[0],
237
+ value: _value,
238
+ formatted_value: _formatted_value
232
239
  };
233
240
  if (display_increase) {
234
241
  value1 = dateRangeItem.value;
@@ -240,33 +247,33 @@ var CompareBarCalculator = /*#__PURE__*/function (_BaseCalculator) {
240
247
  }
241
248
  comparedResult.push(newItem);
242
249
  index++;
243
- case 49:
244
- _context2.next = 38;
245
- break;
246
250
  case 51:
247
- _context2.next = 56;
251
+ _context2.next = 39;
248
252
  break;
249
253
  case 53:
250
- _context2.prev = 53;
251
- _context2.t0 = _context2["catch"](36);
254
+ _context2.next = 58;
255
+ break;
256
+ case 55:
257
+ _context2.prev = 55;
258
+ _context2.t0 = _context2["catch"](37);
252
259
  _iterator2.e(_context2.t0);
253
- case 56:
254
- _context2.prev = 56;
260
+ case 58:
261
+ _context2.prev = 58;
255
262
  _iterator2.f();
256
- return _context2.finish(56);
257
- case 59:
263
+ return _context2.finish(58);
264
+ case 61:
258
265
  if (comparedResult.length > rangeResult.length) {
259
266
  comparedResult = comparedResult.slice(0, rangeResult.length);
260
267
  }
261
268
  return _context2.abrupt("return", [].concat(_toConsumableArray(comparedResult), rangeResult));
262
- case 61:
269
+ case 63:
263
270
  return _context2.abrupt("return", []);
264
- case 62:
271
+ case 64:
265
272
  case "end":
266
273
  return _context2.stop();
267
274
  }
268
275
  }
269
- }, _callee2, this, [[36, 53, 56, 59]]);
276
+ }, _callee2, this, [[37, 55, 58, 61]]);
270
277
  }));
271
278
  function queryDb(_x2) {
272
279
  return _queryDb.apply(this, arguments);
@@ -130,29 +130,40 @@ var HeatMapCalculator = /*#__PURE__*/function (_BaseCalculator) {
130
130
  sqlCondition = filter2SqlCondition(selectedTable, selectedView);
131
131
  summaryColumnName = '';
132
132
  sqlString = '';
133
- if (isAdvanced) {
134
- summaryColumn = TableUtils.getTableColumnByKey(selectedTable, summary_column);
135
- summaryColumnName = summaryColumn.name;
136
- summaryColumnMethod = getSummaryColumnMethod(method, summaryColumnName);
137
- sqlString = "select `".concat(columnName, "`, ").concat(summaryColumnMethod, " from `").concat(selectedTable.name, "` ").concat(sqlCondition, " group by `").concat(columnName, "` limit 5000");
138
- } else {
139
- sqlString = "select `".concat(columnName, "`, ").concat(method, "(").concat(columnName, ") from `").concat(selectedTable.name, "` ").concat(sqlCondition, " group by `").concat(columnName, "` limit 5000");
133
+ if (!isAdvanced) {
134
+ _context2.next = 19;
135
+ break;
136
+ }
137
+ summaryColumn = TableUtils.getTableColumnByKey(selectedTable, summary_column);
138
+ if (summaryColumn) {
139
+ _context2.next = 14;
140
+ break;
140
141
  }
141
- _context2.next = 13;
142
+ return _context2.abrupt("return", []);
143
+ case 14:
144
+ summaryColumnName = summaryColumn.name;
145
+ summaryColumnMethod = getSummaryColumnMethod(method, summaryColumnName);
146
+ sqlString = "select `".concat(columnName, "`, ").concat(summaryColumnMethod, " from `").concat(selectedTable.name, "` ").concat(sqlCondition, " group by `").concat(columnName, "` limit 5000");
147
+ _context2.next = 20;
148
+ break;
149
+ case 19:
150
+ sqlString = "select `".concat(columnName, "`, ").concat(method, "(").concat(columnName, ") from `").concat(selectedTable.name, "` ").concat(sqlCondition, " group by `").concat(columnName, "` limit 5000");
151
+ case 20:
152
+ _context2.next = 22;
142
153
  return this.sqlQuery(sqlString);
143
- case 13:
154
+ case 22:
144
155
  result = _context2.sent;
145
156
  if (!(result.status === 200 && result.data.success)) {
146
- _context2.next = 23;
157
+ _context2.next = 32;
147
158
  break;
148
159
  }
149
160
  data = result.data;
150
161
  if (data.results) {
151
- _context2.next = 18;
162
+ _context2.next = 27;
152
163
  break;
153
164
  }
154
165
  return _context2.abrupt("return", []);
155
- case 18:
166
+ case 27:
156
167
  newResult = [];
157
168
  _summaryColumnMethod = getSummaryColumnMethod(method, summaryColumnName);
158
169
  valueKey = isAdvanced ? "".concat(_summaryColumnMethod) : "".concat(method, "(").concat(columnName, ")");
@@ -171,9 +182,9 @@ var HeatMapCalculator = /*#__PURE__*/function (_BaseCalculator) {
171
182
  }
172
183
  });
173
184
  return _context2.abrupt("return", newResult);
174
- case 23:
185
+ case 32:
175
186
  return _context2.abrupt("return", []);
176
- case 24:
187
+ case 33:
177
188
  case "end":
178
189
  return _context2.stop();
179
190
  }
@@ -109,29 +109,40 @@ var MapCalculator = /*#__PURE__*/function (_BaseCalculator) {
109
109
  groupName = getSqlGroup(geolocation_granularity, column);
110
110
  sqlString = '';
111
111
  summaryColumnName = '';
112
- if (isAdvanced) {
113
- summaryColumn = TableUtils.getTableColumnByKey(selectedTable, summary_column);
114
- summaryColumnName = summaryColumn.name;
115
- summaryColumnMethod = getSummaryColumnMethod(method, summaryColumnName);
116
- sqlString = "select ".concat(groupName, ", ").concat(summaryColumnMethod, " from `").concat(selectedTable.name, "` ").concat(sqlCondition, " group by ").concat(groupName, " limit 5000");
117
- } else {
118
- sqlString = "select ".concat(groupName, ", ").concat(method, "(`").concat(columnName, "`) from `").concat(selectedTable.name, "` ").concat(sqlCondition, " group by ").concat(groupName, " limit 5000");
112
+ if (!isAdvanced) {
113
+ _context2.next = 22;
114
+ break;
115
+ }
116
+ summaryColumn = TableUtils.getTableColumnByKey(selectedTable, summary_column);
117
+ if (summaryColumn) {
118
+ _context2.next = 17;
119
+ break;
119
120
  }
120
- _context2.next = 16;
121
+ return _context2.abrupt("return", []);
122
+ case 17:
123
+ summaryColumnName = summaryColumn.name;
124
+ summaryColumnMethod = getSummaryColumnMethod(method, summaryColumnName);
125
+ sqlString = "select ".concat(groupName, ", ").concat(summaryColumnMethod, " from `").concat(selectedTable.name, "` ").concat(sqlCondition, " group by ").concat(groupName, " limit 5000");
126
+ _context2.next = 23;
127
+ break;
128
+ case 22:
129
+ sqlString = "select ".concat(groupName, ", ").concat(method, "(`").concat(columnName, "`) from `").concat(selectedTable.name, "` ").concat(sqlCondition, " group by ").concat(groupName, " limit 5000");
130
+ case 23:
131
+ _context2.next = 25;
121
132
  return this.sqlQuery(sqlString);
122
- case 16:
133
+ case 25:
123
134
  result = _context2.sent;
124
135
  if (!(result.status === 200 && result.data.success)) {
125
- _context2.next = 26;
136
+ _context2.next = 35;
126
137
  break;
127
138
  }
128
139
  data = result.data;
129
140
  if (data.results) {
130
- _context2.next = 21;
141
+ _context2.next = 30;
131
142
  break;
132
143
  }
133
144
  return _context2.abrupt("return", []);
134
- case 21:
145
+ case 30:
135
146
  newResult = [];
136
147
  _summaryColumnMethod = getSummaryColumnMethod(method, summaryColumnName);
137
148
  valueKey = isAdvanced ? "".concat(_summaryColumnMethod) : "".concat(method, "(").concat(columnName, ")");
@@ -149,9 +160,9 @@ var MapCalculator = /*#__PURE__*/function (_BaseCalculator) {
149
160
  }
150
161
  });
151
162
  return _context2.abrupt("return", newResult);
152
- case 26:
163
+ case 35:
153
164
  return _context2.abrupt("return", []);
154
- case 27:
165
+ case 36:
155
166
  case "end":
156
167
  return _context2.stop();
157
168
  }
@@ -110,29 +110,40 @@ var MirrorCalculator = /*#__PURE__*/function (_BaseCalculator) {
110
110
  method = isAdvanced ? DTABLE_DB_SUMMARY_METHOD[summary_method] : 'COUNT';
111
111
  sqlCondition = filter2SqlCondition(selectedTable, selectedView);
112
112
  summaryColumnName = '';
113
- if (isAdvanced) {
114
- summaryColumn = TableUtils.getTableColumnByKey(selectedTable, summary_column);
115
- summaryColumnName = summaryColumn.name;
116
- summaryColumnMethod = getSummaryColumnMethod(method, summaryColumnName);
117
- sqlString = "select `".concat(columnName, "`, `").concat(groupColumnName, "`, ").concat(summaryColumnMethod, " from `").concat(selectedTable.name, "` ").concat(sqlCondition, " group by `").concat(columnName, "`, `").concat(groupColumnName, "` limit 5000");
118
- } else {
119
- sqlString = "select `".concat(columnName, "`, `").concat(groupColumnName, "`, ").concat(method, "(").concat(columnName, ") from `").concat(selectedTable.name, "` ").concat(sqlCondition, " group by `").concat(columnName, "`, `").concat(groupColumnName, "` limit 5000");
113
+ if (!isAdvanced) {
114
+ _context2.next = 21;
115
+ break;
116
+ }
117
+ summaryColumn = TableUtils.getTableColumnByKey(selectedTable, summary_column);
118
+ if (summaryColumn) {
119
+ _context2.next = 16;
120
+ break;
120
121
  }
121
- _context2.next = 15;
122
+ return _context2.abrupt("return", []);
123
+ case 16:
124
+ summaryColumnName = summaryColumn.name;
125
+ summaryColumnMethod = getSummaryColumnMethod(method, summaryColumnName);
126
+ sqlString = "select `".concat(columnName, "`, `").concat(groupColumnName, "`, ").concat(summaryColumnMethod, " from `").concat(selectedTable.name, "` ").concat(sqlCondition, " group by `").concat(columnName, "`, `").concat(groupColumnName, "` limit 5000");
127
+ _context2.next = 22;
128
+ break;
129
+ case 21:
130
+ sqlString = "select `".concat(columnName, "`, `").concat(groupColumnName, "`, ").concat(method, "(").concat(columnName, ") from `").concat(selectedTable.name, "` ").concat(sqlCondition, " group by `").concat(columnName, "`, `").concat(groupColumnName, "` limit 5000");
131
+ case 22:
132
+ _context2.next = 24;
122
133
  return this.sqlQuery(sqlString);
123
- case 15:
134
+ case 24:
124
135
  result = _context2.sent;
125
136
  if (!(result.status === 200 && result.data.success)) {
126
- _context2.next = 26;
137
+ _context2.next = 35;
127
138
  break;
128
139
  }
129
140
  data = result.data;
130
141
  if (data.results) {
131
- _context2.next = 20;
142
+ _context2.next = 29;
132
143
  break;
133
144
  }
134
145
  return _context2.abrupt("return", []);
135
- case 20:
146
+ case 29:
136
147
  newResult = [];
137
148
  _summaryColumnMethod = getSummaryColumnMethod(method, summaryColumnName);
138
149
  valueKey = isAdvanced ? "".concat(_summaryColumnMethod) : "".concat(method, "(").concat(columnName, ")");
@@ -147,19 +158,23 @@ var MirrorCalculator = /*#__PURE__*/function (_BaseCalculator) {
147
158
  var equal2GroupData1 = groupData1.id === groupValue;
148
159
  if (equal2GroupData0 || equal2GroupData1) {
149
160
  var value = item[valueKey];
161
+ var formattedValue = value;
150
162
  if (isAdvanced) {
151
163
  value = formatNumericValue(value, summaryColumn);
164
+ formattedValue = StatUtils.getFormattedValue(value, summaryColumn, summary_method);
152
165
  }
153
166
  newResult.push({
154
167
  name: label,
155
168
  original_name: item[column],
156
169
  value: equal2GroupData0 ? value : 0,
170
+ formatted_value: equal2GroupData0 ? formattedValue : 0,
157
171
  group_name: groupData[0].name,
158
172
  color: groupData[0].color
159
173
  }, {
160
174
  name: label,
161
175
  original_name: item[column],
162
176
  value: equal2GroupData1 ? value : 0,
177
+ formatted_value: equal2GroupData1 ? formattedValue : 0,
163
178
  group_name: groupData[1].name,
164
179
  color: groupData[1].color
165
180
  });
@@ -170,9 +185,9 @@ var MirrorCalculator = /*#__PURE__*/function (_BaseCalculator) {
170
185
  data: newResult,
171
186
  colorSet: [groupData[0] && groupData[0].color, groupData[1] && groupData[1].color]
172
187
  });
173
- case 26:
188
+ case 35:
174
189
  return _context2.abrupt("return", []);
175
- case 27:
190
+ case 36:
176
191
  case "end":
177
192
  return _context2.stop();
178
193
  }