sea-chart 2.0.43 → 2.0.45

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 (302) hide show
  1. package/dist/api/index.js +4 -11
  2. package/dist/components/cell-factory/FormatterConfig.js +55 -62
  3. package/dist/components/cell-factory/SimpleCellFormatter.js +4 -11
  4. package/dist/components/cell-factory/SingleSelectOption.js +11 -18
  5. package/dist/components/cell-factory/cell-editor-factory.js +5 -12
  6. package/dist/components/cell-factory/cell-formatter-factory.js +4 -11
  7. package/dist/components/cell-factory/link-content.js +27 -35
  8. package/dist/components/chart-color-selector/color-selector.js +11 -18
  9. package/dist/components/collaborator/index.js +7 -14
  10. package/dist/components/color-picker/index.js +11 -18
  11. package/dist/components/color-popover/color-rules/color-rule.js +25 -33
  12. package/dist/components/color-popover/color-rules/index.js +6 -14
  13. package/dist/components/color-popover/color-rules/rule-filters/filter.js +27 -34
  14. package/dist/components/color-popover/color-rules/rule-filters/index.js +17 -25
  15. package/dist/components/color-popover/color-rules/rule-filters/number-input.js +10 -18
  16. package/dist/components/color-popover/color-rules-popover.js +26 -34
  17. package/dist/components/color-popover/color-selector-popover.js +10 -18
  18. package/dist/components/color-setting/color-group-selector.js +12 -20
  19. package/dist/components/common-add-tool/index.js +6 -13
  20. package/dist/components/data-process-setter/data-setting-header.js +7 -14
  21. package/dist/components/data-process-setter/hide-column-setter.js +12 -19
  22. package/dist/components/data-process-setter/index.js +4 -27
  23. package/dist/components/data-process-setter/sort-setter.js +16 -24
  24. package/dist/components/draggable/Draggable.js +7 -13
  25. package/dist/components/drill-down-settings/drill-down-fields-popover/index.js +42 -50
  26. package/dist/components/drill-down-settings/drill-down-fields-settings/index.js +10 -18
  27. package/dist/components/drill-down-settings/index.js +11 -18
  28. package/dist/components/dtable-popover/index.js +13 -20
  29. package/dist/components/dtable-search-input/index.js +13 -21
  30. package/dist/components/font-settings/index.js +14 -22
  31. package/dist/components/goal-line-setting/goal-setting-item.js +6 -14
  32. package/dist/components/goal-line-setting/index.js +12 -19
  33. package/dist/components/highlighter/highlighter.js +7 -14
  34. package/dist/components/icon/index.js +4 -11
  35. package/dist/components/index.js +7 -48
  36. package/dist/components/loading/index.js +6 -13
  37. package/dist/components/number-input/index.js +4 -11
  38. package/dist/components/pixel-editor/index.js +15 -23
  39. package/dist/components/popover/hide-column-popover/hide-column-popover-widgets/hide-column-item.js +8 -15
  40. package/dist/components/popover/hide-column-popover/hide-column-popover.js +25 -33
  41. package/dist/components/popover/sort-popover/sort-popover-widgets/sort-utils.js +9 -18
  42. package/dist/components/popover/sort-popover/sort-popover.js +54 -64
  43. package/dist/components/resize-handle/ResizeHandle.js +6 -13
  44. package/dist/components/row-card/row-card-header-cell.js +15 -22
  45. package/dist/components/row-card/row-card-header.js +14 -21
  46. package/dist/components/row-card/row-card-item.js +33 -41
  47. package/dist/components/row-card/row-card.js +15 -23
  48. package/dist/components/statistic-record-dialog/index.js +56 -64
  49. package/dist/components/tooltip/index.js +21 -21
  50. package/dist/components/types-dialog/index.js +56 -64
  51. package/dist/components/types-dialog/use-force-update.js +4 -10
  52. package/dist/constants/color-rules.js +8 -14
  53. package/dist/constants/common-constants.js +8 -14
  54. package/dist/constants/error.js +2 -8
  55. package/dist/constants/geolocation.js +9 -15
  56. package/dist/constants/index.js +149 -273
  57. package/dist/constants/key-codes.js +0 -2
  58. package/dist/constants/model.js +3 -9
  59. package/dist/constants/regions.js +3 -8
  60. package/dist/constants/style.js +6 -12
  61. package/dist/constants/table.js +1 -7
  62. package/dist/constants/type-image.js +33 -39
  63. package/dist/constants/type.js +3 -9
  64. package/dist/context.js +20 -24
  65. package/dist/editor/index.js +8 -15
  66. package/dist/index.js +13 -104
  67. package/dist/intl.js +10 -17
  68. package/dist/locale/index.js +16 -23
  69. package/dist/locale/lang/de.js +1 -7
  70. package/dist/locale/lang/en.js +1 -7
  71. package/dist/locale/lang/es.js +1 -7
  72. package/dist/locale/lang/fr.js +1 -7
  73. package/dist/locale/lang/pt.js +1 -7
  74. package/dist/locale/lang/ru.js +1 -7
  75. package/dist/locale/lang/zh_CN.js +1 -7
  76. package/dist/model/area-group.js +12 -19
  77. package/dist/model/area.js +12 -19
  78. package/dist/model/bar-custom.js +11 -18
  79. package/dist/model/bar-group.js +12 -19
  80. package/dist/model/bar-stack.js +10 -17
  81. package/dist/model/bar.js +11 -18
  82. package/dist/model/base-model.js +8 -11
  83. package/dist/model/basic-number-card.js +13 -20
  84. package/dist/model/chart.js +7 -13
  85. package/dist/model/combination.js +19 -22
  86. package/dist/model/compare-bar.js +14 -21
  87. package/dist/model/completeness-group.js +11 -18
  88. package/dist/model/completeness.js +10 -17
  89. package/dist/model/dashboard.js +7 -14
  90. package/dist/model/funnel.js +14 -21
  91. package/dist/model/generic-model.js +135 -143
  92. package/dist/model/heat-map.js +9 -16
  93. package/dist/model/horizontal-bar.js +15 -18
  94. package/dist/model/horizontal-group-bar.js +14 -17
  95. package/dist/model/index.js +69 -93
  96. package/dist/model/line-group.js +13 -20
  97. package/dist/model/line.js +12 -19
  98. package/dist/model/map-bubble.js +12 -19
  99. package/dist/model/map.js +12 -19
  100. package/dist/model/mirror.js +13 -20
  101. package/dist/model/pie.js +12 -19
  102. package/dist/model/ring.js +12 -19
  103. package/dist/model/scatter.js +10 -17
  104. package/dist/model/stacked-horizontal-bar.js +15 -18
  105. package/dist/model/table-element.js +5 -12
  106. package/dist/model/table.js +7 -14
  107. package/dist/model/tree-map.js +7 -14
  108. package/dist/model/trend.js +11 -18
  109. package/dist/model/user.js +1 -7
  110. package/dist/model/world-map-bubble.js +12 -19
  111. package/dist/model/world-map.js +12 -19
  112. package/dist/services/map-json.js +7 -13
  113. package/dist/settings/advance-bar-settings/data-settings.js +36 -44
  114. package/dist/settings/advance-bar-settings/index.js +3 -20
  115. package/dist/settings/advance-bar-settings/style-settings.js +83 -74
  116. package/dist/settings/bar-settings/data-settings.js +39 -47
  117. package/dist/settings/bar-settings/index.js +3 -20
  118. package/dist/settings/bar-settings/style-settings.js +69 -60
  119. package/dist/settings/basic-number-card/data-settings.js +49 -57
  120. package/dist/settings/basic-number-card/index.js +3 -20
  121. package/dist/settings/basic-number-card/style-settings.js +18 -26
  122. package/dist/settings/combination-settings/data-settings.js +55 -63
  123. package/dist/settings/combination-settings/index.js +3 -20
  124. package/dist/settings/combination-settings/style-settings.js +94 -77
  125. package/dist/settings/completeness-settings/callbacks/callbacks.js +16 -27
  126. package/dist/settings/completeness-settings/data-settings/completion-settings.js +21 -28
  127. package/dist/settings/completeness-settings/data-settings/data-settings.js +25 -32
  128. package/dist/settings/completeness-settings/index.js +3 -20
  129. package/dist/settings/completeness-settings/style-settings.js +19 -26
  130. package/dist/settings/dashboard-settings/data-settings.js +43 -51
  131. package/dist/settings/dashboard-settings/index.js +2 -13
  132. package/dist/settings/data-settings.js +72 -79
  133. package/dist/settings/funnel-settings/components/dnd-item/dnd-item.js +12 -19
  134. package/dist/settings/funnel-settings/components/dnd-list.js +15 -23
  135. package/dist/settings/funnel-settings/components/funnel-label-setting.js +32 -40
  136. package/dist/settings/funnel-settings/components/funnel-layer-setting.js +20 -28
  137. package/dist/settings/funnel-settings/data-settings.js +23 -31
  138. package/dist/settings/funnel-settings/index.js +3 -20
  139. package/dist/settings/funnel-settings/style-settings.js +11 -19
  140. package/dist/settings/heat-map-settings/data-settings.js +18 -26
  141. package/dist/settings/heat-map-settings/index.js +3 -20
  142. package/dist/settings/heat-map-settings/style-settings.js +18 -26
  143. package/dist/settings/horizontal-bar-settings/data-settings.js +12 -19
  144. package/dist/settings/horizontal-bar-settings/index.js +3 -20
  145. package/dist/settings/horizontal-bar-settings/style-settings.js +12 -19
  146. package/dist/settings/index.js +52 -70
  147. package/dist/settings/map-settings/components/location-field-selector.js +10 -17
  148. package/dist/settings/map-settings/components/map-level-selector.js +11 -18
  149. package/dist/settings/map-settings/components/map-province-city-selector.js +19 -26
  150. package/dist/settings/map-settings/index.js +3 -20
  151. package/dist/settings/map-settings/map-data-settings.js +23 -30
  152. package/dist/settings/map-settings/map-style-settings.js +26 -34
  153. package/dist/settings/mirror-settings/data-settings.js +26 -34
  154. package/dist/settings/mirror-settings/index.js +2 -13
  155. package/dist/settings/pie-settings/data-settings.js +33 -41
  156. package/dist/settings/pie-settings/index.js +3 -20
  157. package/dist/settings/pie-settings/style-settings.js +47 -55
  158. package/dist/settings/scatter/data-settings.js +27 -34
  159. package/dist/settings/scatter/index.js +3 -12
  160. package/dist/settings/stacks-settings/index.js +19 -27
  161. package/dist/settings/stacks-settings/stack-item-settings.js +19 -27
  162. package/dist/settings/style-settings.js +64 -72
  163. package/dist/settings/table-element-settings/components/data-filter.js +30 -38
  164. package/dist/settings/table-element-settings/data-settings.js +21 -29
  165. package/dist/settings/table-element-settings/index.js +2 -13
  166. package/dist/settings/table-settings/data-settings.js +111 -119
  167. package/dist/settings/table-settings/index.js +2 -13
  168. package/dist/settings/time-comparison-settings/data-settings.js +43 -51
  169. package/dist/settings/time-comparison-settings/index.js +3 -20
  170. package/dist/settings/time-comparison-settings/style-settings.js +62 -53
  171. package/dist/settings/trend-settings/data-settings.js +24 -32
  172. package/dist/settings/trend-settings/index.js +3 -20
  173. package/dist/settings/trend-settings/style-setting.js +17 -25
  174. package/dist/settings/widgets/axis-title-font-settings/index.js +39 -0
  175. package/dist/settings/widgets/basic-summary/index.js +55 -63
  176. package/dist/settings/widgets/chart-type/index.js +18 -26
  177. package/dist/settings/widgets/color-settings/index.js +72 -80
  178. package/dist/settings/widgets/common-data-settings.js +21 -29
  179. package/dist/settings/widgets/data-filter/index.js +35 -43
  180. package/dist/settings/widgets/data-sort.js +16 -24
  181. package/dist/settings/widgets/date-summary-item.js +24 -32
  182. package/dist/settings/widgets/display-values-settings/index.js +14 -22
  183. package/dist/settings/widgets/divider/index.js +8 -16
  184. package/dist/settings/widgets/font-settings/font-color-settings.js +11 -19
  185. package/dist/settings/widgets/font-settings/font-size-settings.js +14 -22
  186. package/dist/settings/widgets/font-settings/font-weight-settings.js +17 -25
  187. package/dist/settings/widgets/font-settings/index.js +4 -27
  188. package/dist/settings/widgets/group-by.js +51 -59
  189. package/dist/settings/widgets/min-max-setting.js +10 -18
  190. package/dist/settings/widgets/mininum-slice-percent.js +10 -18
  191. package/dist/settings/widgets/numeric-summary-item.js +23 -31
  192. package/dist/settings/widgets/select-line-type/index.js +10 -17
  193. package/dist/settings/widgets/select-table/index.js +9 -16
  194. package/dist/settings/widgets/select-view/index.js +20 -28
  195. package/dist/settings/widgets/stack.js +14 -22
  196. package/dist/settings/widgets/summary-method-setting.js +17 -25
  197. package/dist/settings/widgets/summary-settings.js +72 -80
  198. package/dist/settings/widgets/switch/index.js +8 -15
  199. package/dist/settings/widgets/text-horizontal-settings.js +15 -23
  200. package/dist/settings/widgets/time-picker.js +29 -37
  201. package/dist/settings/widgets/title-settings/index.js +29 -37
  202. package/dist/settings/widgets/title-settings/title-text.js +5 -12
  203. package/dist/settings/widgets/x-axios.js +0 -1
  204. package/dist/settings/widgets/y-axis-group-settings.js +63 -71
  205. package/dist/utils/cell-format-utils.js +18 -28
  206. package/dist/utils/cell-value-utils.js +5 -12
  207. package/dist/utils/chart-utils/base-utils.js +362 -334
  208. package/dist/utils/chart-utils/index.js +28 -41
  209. package/dist/utils/chart-utils/original-data-utils/basic-chart-calculator.js +80 -86
  210. package/dist/utils/chart-utils/original-data-utils/card-calculator.js +13 -20
  211. package/dist/utils/chart-utils/original-data-utils/combination-calculator.js +45 -52
  212. package/dist/utils/chart-utils/original-data-utils/compare-bar-chart-calculator.js +19 -26
  213. package/dist/utils/chart-utils/original-data-utils/completeness-calculator.js +32 -39
  214. package/dist/utils/chart-utils/original-data-utils/dashboard-calculator.js +16 -23
  215. package/dist/utils/chart-utils/original-data-utils/index.js +50 -57
  216. package/dist/utils/chart-utils/original-data-utils/mirror-calculator.js +21 -28
  217. package/dist/utils/chart-utils/original-data-utils/pivot-table-calculator.js +91 -97
  218. package/dist/utils/chart-utils/original-data-utils/scatter-calculator.js +19 -26
  219. package/dist/utils/chart-utils/original-data-utils/trend-calculator.js +31 -38
  220. package/dist/utils/chart-utils/sql-statistics-utils.js +284 -246
  221. package/dist/utils/chart.js +9 -17
  222. package/dist/utils/collaborator-manager.js +3 -9
  223. package/dist/utils/collaborator-utils.js +18 -30
  224. package/dist/utils/collaborator.js +4 -13
  225. package/dist/utils/color-utils.js +18 -29
  226. package/dist/utils/column-utils.js +65 -92
  227. package/dist/utils/common-utils.js +27 -52
  228. package/dist/utils/concurrency-manager.js +1 -7
  229. package/dist/utils/contexts.js +5 -12
  230. package/dist/utils/date-translate.js +11 -19
  231. package/dist/utils/digital-sign-utils.js +7 -14
  232. package/dist/utils/event-bus.js +1 -7
  233. package/dist/utils/hotkey.js +5 -11
  234. package/dist/utils/index.js +54 -221
  235. package/dist/utils/key-generator.js +2 -9
  236. package/dist/utils/map.js +22 -31
  237. package/dist/utils/object-utils.js +1 -7
  238. package/dist/utils/options-utils.js +8 -16
  239. package/dist/utils/row-record-utils.js +182 -178
  240. package/dist/utils/row-utils.js +27 -38
  241. package/dist/utils/search.js +24 -32
  242. package/dist/utils/sql/chart-data-sql.js +49 -55
  243. package/dist/utils/sql/column-2-sql-column.js +146 -154
  244. package/dist/utils/sql/index.js +3 -27
  245. package/dist/utils/trend-utils.js +39 -47
  246. package/dist/view/index.css +0 -17
  247. package/dist/view/index.js +89 -95
  248. package/dist/view/title/index.js +15 -23
  249. package/dist/view/wrapper/area-group.js +57 -74
  250. package/dist/view/wrapper/area.js +51 -72
  251. package/dist/view/wrapper/bar-compare.js +47 -58
  252. package/dist/view/wrapper/bar-custom-stack.js +53 -121
  253. package/dist/view/wrapper/bar-group.js +55 -96
  254. package/dist/view/wrapper/bar-stack.js +58 -92
  255. package/dist/view/wrapper/bar.js +45 -66
  256. package/dist/view/wrapper/basic-number-card.js +25 -26
  257. package/dist/view/wrapper/chart-component.js +600 -166
  258. package/dist/view/wrapper/combination.js +79 -87
  259. package/dist/view/wrapper/completeness-group.js +46 -98
  260. package/dist/view/wrapper/completeness.js +45 -97
  261. package/dist/view/wrapper/dashboard.js +33 -47
  262. package/dist/view/wrapper/funnel.js +65 -64
  263. package/dist/view/wrapper/heat-map.js +126 -104
  264. package/dist/view/wrapper/horizontal-bar-group.js +61 -78
  265. package/dist/view/wrapper/horizontal-bar-stack.js +60 -111
  266. package/dist/view/wrapper/horizontal-bar.js +45 -68
  267. package/dist/view/wrapper/index.js +110 -115
  268. package/dist/view/wrapper/line-group.js +52 -68
  269. package/dist/view/wrapper/line.js +47 -67
  270. package/dist/view/wrapper/map-bubble.js +46 -59
  271. package/dist/view/wrapper/map-world-bubble.js +45 -58
  272. package/dist/view/wrapper/map-world.js +47 -60
  273. package/dist/view/wrapper/map.js +48 -60
  274. package/dist/view/wrapper/mirror.js +45 -64
  275. package/dist/view/wrapper/pie.js +51 -59
  276. package/dist/view/wrapper/ring.js +57 -64
  277. package/dist/view/wrapper/scatter.js +53 -69
  278. package/dist/view/wrapper/table/index.js +13 -21
  279. package/dist/view/wrapper/table/one-dimension-table-no-numeric-columns.js +49 -57
  280. package/dist/view/wrapper/table/one-dimension-table-with-numeric-columns.js +50 -58
  281. package/dist/view/wrapper/table/pivot-table-display-name.js +83 -91
  282. package/dist/view/wrapper/table/two-dimension-table.js +76 -84
  283. package/dist/view/wrapper/table-element/components/dataset-utils.js +23 -36
  284. package/dist/view/wrapper/table-element/components/formatter.js +96 -105
  285. package/dist/view/wrapper/table-element/components/formatters/FileFormatter/index.js +22 -31
  286. package/dist/view/wrapper/table-element/components/formatters/formula-formatter.js +9 -16
  287. package/dist/view/wrapper/table-element/components/formatters/link-formatter.js +73 -80
  288. package/dist/view/wrapper/table-element/components/formula-formatter.js +9 -16
  289. package/dist/view/wrapper/table-element/components/link-formatter.js +73 -80
  290. package/dist/view/wrapper/table-element/components/record.js +10 -17
  291. package/dist/view/wrapper/table-element/components/records-body.js +17 -19
  292. package/dist/view/wrapper/table-element/components/records-header/index.js +7 -15
  293. package/dist/view/wrapper/table-element/components/records-header/records-header-cell.js +8 -16
  294. package/dist/view/wrapper/table-element/components/records.js +23 -33
  295. package/dist/view/wrapper/table-element/components/resize-column-handle/resize-column-handle.js +5 -12
  296. package/dist/view/wrapper/table-element/components/utils.js +5 -15
  297. package/dist/view/wrapper/table-element/components/value-display-utils.js +4 -11
  298. package/dist/view/wrapper/table-element/components/vertical-scrollbar/index.js +6 -13
  299. package/dist/view/wrapper/table-element/index.js +18 -26
  300. package/dist/view/wrapper/treemap.js +39 -57
  301. package/dist/view/wrapper/trend.js +41 -48
  302. package/package.json +1 -1
@@ -1,25 +1,18 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
- var _dayjs = _interopRequireDefault(require("dayjs"));
10
- var _dtableUtils = require("dtable-utils");
11
- var _lodash = require("lodash");
12
- var _lodashEs = require("lodash-es");
13
- var _constants = require("../../constants");
14
- var _sql = require("../sql");
15
- var _cellFormatUtils = require("../cell-format-utils");
16
- var _column2SqlColumn = require("../sql/column-2-sql-column");
17
- var _columnUtils = require("../column-utils");
18
- var _trendUtils = require("../trend-utils");
19
- var _intl = _interopRequireDefault(require("../../intl"));
20
- var _dateTranslate = require("../date-translate");
21
- var _baseUtils = _interopRequireWildcard(require("./base-utils"));
22
1
  var _SQLStatisticsUtils;
2
+ import dayjs from 'dayjs';
3
+ import { CellType, MULTIPLE_CELL_VALUE_COLUMN_TYPE_MAP, getFormulaDisplayString, getGeolocationByGranularity, getGeolocationDisplayString, getPrecisionNumber, getTableById, getTableColumnByKey, GROUP_GEOLOCATION_GRANULARITY, isNumber, isEmpty } from 'dtable-utils';
4
+ import { isObject } from 'lodash';
5
+ import { cloneDeep } from 'lodash-es';
6
+ import { CHART_SUMMARY_TYPE, CHART_TYPE, SUPPORT_DATA_SORT_CHART_TYPES, TABLE_DIMENSIONS, Y_AXIS_TYPE_PREFIX, STYLE_COLORS, TREND_TYPES, CHART_STYLE_COLORS, MAP_CHART_TYPES } from '../../constants';
7
+ import { chartColumn2SqlColumn, summaryMethodColumn2SqlColumn } from '../sql';
8
+ import { getClientLinkDisplayString } from '../cell-format-utils';
9
+ import { column2SqlColumn } from '../sql/column-2-sql-column';
10
+ import { formatNumericValue, getFormattedValue, getSummaryResult } from '../column-utils';
11
+ import { getCompareDate } from '../trend-utils';
12
+ import { fixGeoGranularity } from '../map';
13
+ import intl from '../../intl';
14
+ import { convertQuarterToDate } from '../date-translate';
15
+ import BaseUtils, { findIfColumnDataIsArray } from './base-utils';
23
16
  class SQLStatisticsUtils {}
24
17
  _SQLStatisticsUtils = SQLStatisticsUtils;
25
18
  SQLStatisticsUtils.DATA_SOURCE = 'sql_statistics';
@@ -29,56 +22,57 @@ SQLStatisticsUtils.getGroupLabelFromDB = async (cellValue, column, chart, isPivo
29
22
  data
30
23
  } = column;
31
24
  switch (type) {
32
- case _dtableUtils.CellType.TEXT:
25
+ case CellType.TEXT:
33
26
  {
34
27
  return cellValue || null;
35
28
  }
36
- case _dtableUtils.CellType.DATE:
37
- case _dtableUtils.CellType.CTIME:
38
- case _dtableUtils.CellType.MTIME:
29
+ case CellType.DATE:
30
+ case CellType.CTIME:
31
+ case CellType.MTIME:
39
32
  {
40
33
  return cellValue;
41
34
  }
42
- case _dtableUtils.CellType.NUMBER:
35
+ case CellType.NUMBER:
43
36
  {
44
37
  if (!cellValue && cellValue !== 0) return null;
45
- return (0, _dtableUtils.getPrecisionNumber)(cellValue, data);
38
+ return getPrecisionNumber(cellValue, data);
46
39
  }
47
- case _dtableUtils.CellType.SINGLE_SELECT:
40
+ case CellType.SINGLE_SELECT:
48
41
  {
49
42
  let isInvalidValue = data && data.options && data.options.findIndex(opt => opt.id === cellValue) < 0;
50
43
  return isInvalidValue ? null : cellValue;
51
44
  }
52
- case _dtableUtils.CellType.MULTIPLE_SELECT:
45
+ case CellType.MULTIPLE_SELECT:
53
46
  {
54
47
  let options = data && data.options;
55
48
  if (!Array.isArray(options) || options.length === 0) return [];
56
49
  if (!Array.isArray(cellValue) || cellValue.length === 0) return [];
57
50
  return cellValue.filter(optionId => options.find(option => option.id === optionId));
58
51
  }
59
- case _dtableUtils.CellType.COLLABORATOR:
52
+ case CellType.COLLABORATOR:
60
53
  {
61
54
  if (!Array.isArray(cellValue) || cellValue.length === 0) return [];
62
55
  return cellValue;
63
56
  }
64
- case _dtableUtils.CellType.CREATOR:
65
- case _dtableUtils.CellType.LAST_MODIFIER:
57
+ case CellType.CREATOR:
58
+ case CellType.LAST_MODIFIER:
66
59
  {
67
60
  return cellValue ? cellValue : null;
68
61
  }
69
- case _dtableUtils.CellType.GEOLOCATION:
62
+ case CellType.GEOLOCATION:
70
63
  {
71
- return cellValue || null;
64
+ if (typeof cellValue === 'string') return cellValue || null;
65
+ return getGeolocationDisplayString(cellValue, data) || null;
72
66
  }
73
- case _dtableUtils.CellType.FORMULA:
67
+ case CellType.FORMULA:
74
68
  {
75
69
  if (Array.isArray(cellValue)) {
76
- const validValue = (0, _dtableUtils.getFormulaDisplayString)(cellValue, data) || [];
70
+ const validValue = getFormulaDisplayString(cellValue, data) || [];
77
71
  return validValue;
78
72
  }
79
73
  return cellValue || null;
80
74
  }
81
- case _dtableUtils.CellType.LINK_FORMULA:
75
+ case CellType.LINK_FORMULA:
82
76
  {
83
77
  const {
84
78
  result_type
@@ -87,21 +81,21 @@ SQLStatisticsUtils.getGroupLabelFromDB = async (cellValue, column, chart, isPivo
87
81
  if (result_type === 'array') {
88
82
  return cellValue;
89
83
  }
90
- const validValue = (0, _dtableUtils.getFormulaDisplayString)(cellValue, data) || [];
91
- if (!validValue && validValue !== 0) {
84
+ const validValue = getFormulaDisplayString(cellValue, data) || [];
85
+ if (isEmpty(validValue)) {
92
86
  return null;
93
87
  }
94
88
  return validValue;
95
89
  }
96
- case _dtableUtils.CellType.LINK:
90
+ case CellType.LINK:
97
91
  {
98
- return Array.isArray(cellValue) ? cellValue.map(linked => (0, _cellFormatUtils.getClientLinkDisplayString)([linked], data, {})) : [];
92
+ return Array.isArray(cellValue) ? cellValue.map(linked => getClientLinkDisplayString([linked], data, {})) : [];
99
93
  }
100
- case _dtableUtils.CellType.CHECKBOX:
94
+ case CellType.CHECKBOX:
101
95
  {
102
96
  return String(cellValue) === 'true' ? 'Checked' : 'Unchecked';
103
97
  }
104
- case _dtableUtils.CellType.RATE:
98
+ case CellType.RATE:
105
99
  {
106
100
  return cellValue ? String(cellValue) : null;
107
101
  }
@@ -176,7 +170,7 @@ SQLStatisticsUtils.updateTwoDimensionRows = (chart, pivot_rows, pivot_columns, i
176
170
  const {
177
171
  summary_type
178
172
  } = chart.config;
179
- const isCount = summary_type === _constants.CHART_SUMMARY_TYPE.COUNT;
173
+ const isCount = summary_type === CHART_SUMMARY_TYPE.COUNT;
180
174
  const {
181
175
  sqlSummaryColumnKey,
182
176
  summarySQLColumnName2ColumnKey = {}
@@ -196,11 +190,11 @@ SQLStatisticsUtils.updateTwoDimensionRows = (chart, pivot_rows, pivot_columns, i
196
190
  let {
197
191
  key
198
192
  } = c;
199
- if (_baseUtils.default.isSameGroup(isColumnDataAsAnArray, cellValue, key)) {
193
+ if (BaseUtils.isSameGroup(isColumnDataAsAnArray, cellValue, key)) {
200
194
  if (cells[key]) {
201
195
  cells[key].rows.push(row);
202
196
  if (isCount) {
203
- if (_baseUtils.default.isCollaboratorColumnOrMultipleColumn(columnMap)) {
197
+ if (BaseUtils.isCollaboratorColumnOrMultipleColumn(columnMap)) {
204
198
  cells[key].total = total + row[sqlSummaryColumnKey];
205
199
  } else {
206
200
  cells[key].total = row[sqlSummaryColumnKey];
@@ -212,10 +206,10 @@ SQLStatisticsUtils.updateTwoDimensionRows = (chart, pivot_rows, pivot_columns, i
212
206
  const nextValue = row[currentSqlName];
213
207
  // use columnKey to find current value
214
208
  const currentValue = Object.values(cells[key].total).find(item => item[2] === columnKey)[1];
215
- const computedValue = _baseUtils.default.getSummaryValue({
209
+ const computedValue = BaseUtils.getSummaryValue({
216
210
  summaryMethod: current.summary_method.toUpperCase(),
217
211
  summaryColumn: current.column
218
- }, currentValue, nextValue, _baseUtils.default.isCollaboratorColumnOrMultipleColumn(columnMap));
212
+ }, currentValue, nextValue, BaseUtils.isCollaboratorColumnOrMultipleColumn(columnMap));
219
213
  const columnName = current.column.name;
220
214
 
221
215
  // keep column key to find currentValue on updating
@@ -253,7 +247,7 @@ SQLStatisticsUtils.updateTwoDimensionRows = (chart, pivot_rows, pivot_columns, i
253
247
  } else {
254
248
  updatedPivotRow.total = Object.values(cells).reduce((acc, item) => {
255
249
  item.total.forEach(t => {
256
- (0, _dtableUtils.isNumber)(t[1]) && (acc += t[1]);
250
+ isNumber(t[1]) && (acc += t[1]);
257
251
  });
258
252
  return acc;
259
253
  }, 0);
@@ -269,7 +263,7 @@ SQLStatisticsUtils.updateTwoDimensionRows = (chart, pivot_rows, pivot_columns, i
269
263
  let {
270
264
  key
271
265
  } = c;
272
- if (_baseUtils.default.isSameGroup(isColumnDataAsAnArray, cellValue, key)) {
266
+ if (BaseUtils.isSameGroup(isColumnDataAsAnArray, cellValue, key)) {
273
267
  let total;
274
268
  if (isCount) {
275
269
  total = row[sqlSummaryColumnKey];
@@ -294,9 +288,9 @@ SQLStatisticsUtils.updateTwoDimensionRows = (chart, pivot_rows, pivot_columns, i
294
288
  const cellList = Object.values(cells);
295
289
  total = cellList.reduce((acc, item) => {
296
290
  let num;
297
- if ((0, _lodash.isObject)(item.total)) {
291
+ if (isObject(item.total)) {
298
292
  num = item.total.reduce((acc, item) => {
299
- (0, _dtableUtils.isNumber)(item[1]) && (acc += item[1]);
293
+ isNumber(item[1]) && (acc += item[1]);
300
294
  return acc;
301
295
  }, 0);
302
296
  } else {
@@ -326,7 +320,7 @@ SQLStatisticsUtils.getAndUpdateTwoDimensionTotal = (pivot_columns_total, pivot_c
326
320
  if (cell) {
327
321
  let pivot_column_total = pivot_columns_total && pivot_columns_total[key] ? pivot_columns_total[key] : 0;
328
322
  const currentCellTotal = Array.isArray(cell.total) ? cell.total.reduce((acc, item) => {
329
- (0, _dtableUtils.isNumber)(item[1]) && (acc += item[1]);
323
+ isNumber(item[1]) && (acc += item[1]);
330
324
  return acc;
331
325
  }, 0) : parseInt(cell.total);
332
326
  pivot_columns_total[key] = pivot_column_total + currentCellTotal;
@@ -348,22 +342,22 @@ SQLStatisticsUtils.oneDimensionTableSQLResult2JavaScript = async (chart, sqlRows
348
342
  } = chartSQLMap;
349
343
  let pivot_columns = [];
350
344
  let pivot_rows = [];
351
- const isCount = summary_type === _constants.CHART_SUMMARY_TYPE.COUNT;
345
+ const isCount = summary_type === CHART_SUMMARY_TYPE.COUNT;
352
346
 
353
347
  // if key is an array, handle it here ,currently only handle collaborator and multiple select
354
348
  // MULTIPLE_CELL_VALUE_COLUMN_TYPE = [CellType.COLLABORATOR, CellType.MULTIPLE_SELECT, CellType.LINK]
355
- const isGroupByColumnLinkFormula = groupbyColumn.type === _dtableUtils.CellType.LINK_FORMULA;
349
+ const isGroupByColumnLinkFormula = groupbyColumn.type === CellType.LINK_FORMULA;
356
350
  let newSqlRows = sqlRows;
357
351
  if (isGroupByColumnLinkFormula) {
358
352
  const {
359
353
  array_type
360
354
  } = groupbyColumn.data;
361
- if ([_dtableUtils.CellType.COLLABORATOR, _dtableUtils.CellType.MULTIPLE_SELECT].includes(array_type)) {
362
- newSqlRows = _baseUtils.default.formatedTableSqlRowsByCollaboratorAndMultiple(chart, sqlRows, chartSQLMap, columnMap);
355
+ if ([CellType.COLLABORATOR, CellType.MULTIPLE_SELECT].includes(array_type)) {
356
+ newSqlRows = BaseUtils.formatedTableSqlRowsByCollaboratorAndMultiple(chart, sqlRows, chartSQLMap, columnMap);
363
357
  }
364
358
  }
365
- if ([_dtableUtils.CellType.COLLABORATOR, _dtableUtils.CellType.MULTIPLE_SELECT].includes(groupbyColumn.type)) {
366
- newSqlRows = _baseUtils.default.formatedTableSqlRowsByCollaboratorAndMultiple(chart, sqlRows, chartSQLMap, columnMap);
359
+ if ([CellType.COLLABORATOR, CellType.MULTIPLE_SELECT].includes(groupbyColumn.type)) {
360
+ newSqlRows = BaseUtils.formatedTableSqlRowsByCollaboratorAndMultiple(chart, sqlRows, chartSQLMap, columnMap);
367
361
  }
368
362
  if (isCount) {
369
363
  let allTotal = 0;
@@ -379,7 +373,7 @@ SQLStatisticsUtils.oneDimensionTableSQLResult2JavaScript = async (chart, sqlRows
379
373
  }
380
374
  });
381
375
  }
382
- if (groupbyColumn.type === _dtableUtils.CellType.LINK_FORMULA && groupbyColumn.data.array_type === 'date') {
376
+ if (groupbyColumn.type === CellType.LINK_FORMULA && groupbyColumn.data.array_type === 'date') {
383
377
  pivot_rows = pivot_rows.reduce((acc, item) => {
384
378
  const {
385
379
  name,
@@ -396,7 +390,7 @@ SQLStatisticsUtils.oneDimensionTableSQLResult2JavaScript = async (chart, sqlRows
396
390
  return acc;
397
391
  }, []);
398
392
  }
399
- _baseUtils.default.sortCharts(pivot_rows, groupbyColumn, 'name', true);
393
+ BaseUtils.sortCharts(pivot_rows, groupbyColumn, 'name', true);
400
394
  return {
401
395
  pivot_columns,
402
396
  pivot_rows: pivot_rows,
@@ -415,7 +409,7 @@ SQLStatisticsUtils.oneDimensionTableSQLResult2JavaScript = async (chart, sqlRows
415
409
  let totalTemplate = {};
416
410
  Object.values(summaryColumnKeys).forEach(key => {
417
411
  const summaryMethod = summaryTableColumnKey2Method[key];
418
- totalTemplate[key] = _baseUtils.default.initTotal(summaryMethod);
412
+ totalTemplate[key] = BaseUtils.initTotal(summaryMethod);
419
413
  pivot_columns.push({
420
414
  key
421
415
  });
@@ -432,14 +426,14 @@ SQLStatisticsUtils.oneDimensionTableSQLResult2JavaScript = async (chart, sqlRows
432
426
  let columnKey = summarySQLColumnName2ColumnKey[key];
433
427
  let summaryColumn = summaryTableColumnKey2Column[columnKey];
434
428
  const summaryMethod = summaryTableColumnKey2Method[columnKey];
435
- let value = row[key] || _baseUtils.default.initTotal(summaryMethod);
436
- allTotal[columnKey] = _baseUtils.default.getSummaryValue({
429
+ let value = row[key] || BaseUtils.initTotal(summaryMethod);
430
+ allTotal[columnKey] = BaseUtils.getSummaryValue({
437
431
  summaryColumn,
438
432
  summaryMethod
439
433
  }, allTotal[columnKey], value);
440
- if (_baseUtils.default.isDateSummaryColumn(summaryColumn)) {
434
+ if (BaseUtils.isDateSummaryColumn(summaryColumn)) {
441
435
  rowTotal[columnKey] = value;
442
- } else if (_baseUtils.default.isNumericSummaryColumn(summaryColumn)) {
436
+ } else if (BaseUtils.isNumericSummaryColumn(summaryColumn)) {
443
437
  rowTotal[columnKey] = rowTotal[columnKey] + value;
444
438
  }
445
439
  });
@@ -449,7 +443,7 @@ SQLStatisticsUtils.oneDimensionTableSQLResult2JavaScript = async (chart, sqlRows
449
443
  total: rowTotal
450
444
  });
451
445
  }
452
- if (groupbyColumn.type === _dtableUtils.CellType.LINK_FORMULA && groupbyColumn.data.array_type === 'date') {
446
+ if (groupbyColumn.type === CellType.LINK_FORMULA && groupbyColumn.data.array_type === 'date') {
453
447
  pivot_rows = pivot_rows.reduce((acc, item) => {
454
448
  const {
455
449
  name,
@@ -482,12 +476,12 @@ SQLStatisticsUtils.oneDimensionTableSQLResult2JavaScript = async (chart, sqlRows
482
476
  total: allTotal[key]
483
477
  };
484
478
  }
485
- _baseUtils.default.sortCharts(pivot_rows, groupbyColumn, 'name', true);
479
+ BaseUtils.sortCharts(pivot_rows, groupbyColumn, 'name', true);
486
480
  return {
487
481
  pivot_columns,
488
482
  pivot_rows,
489
483
  pivot_columns_total: allTotal,
490
- dimensions: _constants.TABLE_DIMENSIONS.ONE
484
+ dimensions: TABLE_DIMENSIONS.ONE
491
485
  };
492
486
  };
493
487
  SQLStatisticsUtils.twoDimensionTableSQLResult2JavaScript = async (chart, sqlRows, chartSQLMap, columnMap, tables) => {
@@ -515,8 +509,8 @@ SQLStatisticsUtils.twoDimensionTableSQLResult2JavaScript = async (chart, sqlRows
515
509
  let newSqlRows = sqlRows;
516
510
 
517
511
  // handle LINK_FORMULA
518
- const isGroupByColumnLinkFormula = groupbyColumn.type === _dtableUtils.CellType.LINK_FORMULA;
519
- const isColumnGroupByColumnLinkFormula = columnGroupbyColumn.type === _dtableUtils.CellType.LINK_FORMULA;
512
+ const isGroupByColumnLinkFormula = groupbyColumn.type === CellType.LINK_FORMULA;
513
+ const isColumnGroupByColumnLinkFormula = columnGroupbyColumn.type === CellType.LINK_FORMULA;
520
514
  let isRowGroupbyColumnDataAsAnArray, isGroupbyColumnDataAsAnArray;
521
515
 
522
516
  // Group by column
@@ -524,14 +518,14 @@ SQLStatisticsUtils.twoDimensionTableSQLResult2JavaScript = async (chart, sqlRows
524
518
  if (isGroupByColumnLinkFormula && groupbyColumn.data.array_type !== 'date') {
525
519
  isGroupbyColumnDataAsAnArray = true;
526
520
  } else {
527
- isGroupbyColumnDataAsAnArray = !!_dtableUtils.MULTIPLE_CELL_VALUE_COLUMN_TYPE_MAP[groupbyColumn.type];
521
+ isGroupbyColumnDataAsAnArray = !!MULTIPLE_CELL_VALUE_COLUMN_TYPE_MAP[groupbyColumn.type];
528
522
  }
529
523
 
530
524
  // column group by column
531
525
  if (isColumnGroupByColumnLinkFormula && groupbyColumn.data.array_type !== 'date') {
532
526
  isRowGroupbyColumnDataAsAnArray = true;
533
527
  } else {
534
- isRowGroupbyColumnDataAsAnArray = !!_dtableUtils.MULTIPLE_CELL_VALUE_COLUMN_TYPE_MAP[columnGroupbyColumn.type];
528
+ isRowGroupbyColumnDataAsAnArray = !!MULTIPLE_CELL_VALUE_COLUMN_TYPE_MAP[columnGroupbyColumn.type];
535
529
  }
536
530
 
537
531
  // if key is an array, handle it here ,currently only handle collaborator and multiple select
@@ -540,12 +534,12 @@ SQLStatisticsUtils.twoDimensionTableSQLResult2JavaScript = async (chart, sqlRows
540
534
  const {
541
535
  array_type
542
536
  } = groupbyColumn.data;
543
- if ([_dtableUtils.CellType.COLLABORATOR, _dtableUtils.CellType.MULTIPLE_SELECT].includes(array_type)) {
544
- newSqlRows = _baseUtils.default.formatedTableSqlRowsByCollaboratorAndMultiple(chart, sqlRows, chartSQLMap, columnMap);
537
+ if ([CellType.COLLABORATOR, CellType.MULTIPLE_SELECT].includes(array_type)) {
538
+ newSqlRows = BaseUtils.formatedTableSqlRowsByCollaboratorAndMultiple(chart, sqlRows, chartSQLMap, columnMap);
545
539
  }
546
540
  }
547
- if ([_dtableUtils.CellType.COLLABORATOR, _dtableUtils.CellType.MULTIPLE_SELECT].includes(groupbyColumn.type)) {
548
- newSqlRows = _baseUtils.default.formatedTableSqlRowsByCollaboratorAndMultiple(chart, sqlRows, chartSQLMap, columnMap);
541
+ if ([CellType.COLLABORATOR, CellType.MULTIPLE_SELECT].includes(groupbyColumn.type)) {
542
+ newSqlRows = BaseUtils.formatedTableSqlRowsByCollaboratorAndMultiple(chart, sqlRows, chartSQLMap, columnMap);
549
543
  }
550
544
  let pivot_columns = [];
551
545
  let pivot_rows = [];
@@ -556,12 +550,12 @@ SQLStatisticsUtils.twoDimensionTableSQLResult2JavaScript = async (chart, sqlRows
556
550
  for (const row of newSqlRows) {
557
551
  const columnGroupbyColumnCellValue = row[sqlColumnGroupbyColumnKey];
558
552
  let columnGroupbyColumnCellValueKey;
559
- if (_baseUtils.default.isCollaborator(columnGroupbyColumn)) {
553
+ if (BaseUtils.isCollaborator(columnGroupbyColumn)) {
560
554
  columnGroupbyColumnCellValueKey = columnGroupbyColumnCellValue || [];
561
555
  } else {
562
556
  columnGroupbyColumnCellValueKey = await _SQLStatisticsUtils.getGroupLabelFromDB(columnGroupbyColumnCellValue, columnGroupbyColumn, chart.config, true);
563
557
  }
564
- if (_baseUtils.default.isValidCellValue(columnGroupbyColumnCellValue, groupby_include_empty_cells)) {
558
+ if (BaseUtils.isValidCellValue(columnGroupbyColumnCellValue, groupby_include_empty_cells)) {
565
559
  _SQLStatisticsUtils.updateTwoDimensionColumns(pivot_columns, columnGroupbyColumnCellValueKey, {
566
560
  isIncludeEmpty: groupby_include_empty_cells,
567
561
  isCellValueAsAnArray: isRowGroupbyColumnDataAsAnArray
@@ -571,19 +565,19 @@ SQLStatisticsUtils.twoDimensionTableSQLResult2JavaScript = async (chart, sqlRows
571
565
  for (const row of newSqlRows) {
572
566
  const groupbyColumnCellValue = row[sqlGroupbyColumnKey];
573
567
  let groupbyColumnCellValueKey;
574
- if (_baseUtils.default.isCollaborator(groupbyColumn)) {
568
+ if (BaseUtils.isCollaborator(groupbyColumn)) {
575
569
  groupbyColumnCellValueKey = groupbyColumnCellValue || [];
576
570
  } else {
577
571
  groupbyColumnCellValueKey = await _SQLStatisticsUtils.getGroupLabelFromDB(groupbyColumnCellValue, groupbyColumn, chart.config, true);
578
572
  }
579
573
  const columnGroupbyColumnCellValue = row[sqlColumnGroupbyColumnKey];
580
574
  let columnGroupbyColumnCellValueKey;
581
- if (_baseUtils.default.isCollaborator(columnGroupbyColumn)) {
575
+ if (BaseUtils.isCollaborator(columnGroupbyColumn)) {
582
576
  columnGroupbyColumnCellValueKey = columnGroupbyColumnCellValue || [];
583
577
  } else {
584
578
  columnGroupbyColumnCellValueKey = await _SQLStatisticsUtils.getGroupLabelFromDB(columnGroupbyColumnCellValue, columnGroupbyColumn, chart.config, true);
585
579
  }
586
- if (_baseUtils.default.isValidCellValue(groupbyColumnCellValue, groupby_include_empty_cells)) {
580
+ if (BaseUtils.isValidCellValue(groupbyColumnCellValue, groupby_include_empty_cells)) {
587
581
  // data is an array is handled previously, but to keep capability, still use old code
588
582
  if (isGroupbyColumnDataAsAnArray) {
589
583
  if ((!Array.isArray(groupbyColumnCellValueKey) || groupbyColumnCellValueKey.length === 0) && groupby_include_empty_cells) {
@@ -620,15 +614,15 @@ SQLStatisticsUtils.twoDimensionTableSQLResult2JavaScript = async (chart, sqlRows
620
614
  }
621
615
 
622
616
  // update Collaborator and Multiple mean value
623
- if (_baseUtils.default.isCollaboratorColumnOrMultipleColumn(columnMap)) {
624
- const new_pivot_rows = _baseUtils.default.updateCollaboratorAndMultipleAvg(pivot_rows, [singleNumeriColumnWithMethod, ...multipleNumericColumnsWithMethod]);
617
+ if (BaseUtils.isCollaboratorColumnOrMultipleColumn(columnMap)) {
618
+ const new_pivot_rows = BaseUtils.updateCollaboratorAndMultipleAvg(pivot_rows, [singleNumeriColumnWithMethod, ...multipleNumericColumnsWithMethod]);
625
619
  pivot_rows = new_pivot_rows;
626
620
  }
627
621
  [pivot_columns_total, pivot_table_total] = _SQLStatisticsUtils.getAndUpdateTwoDimensionTotal(pivot_columns_total, pivot_columns, pivot_rows, pivot_table_total, chart);
628
- _baseUtils.default.sortCharts(pivot_rows, groupbyColumn, 'name', true);
629
- _baseUtils.default.sortCharts(pivot_columns, columnGroupbyColumn, 'key', true);
630
- if ((groupbyColumn === null || groupbyColumn === void 0 ? void 0 : groupbyColumn.type) === _dtableUtils.CellType.COLLABORATOR) {
631
- pivot_rows = _baseUtils.default.mergePivotTableSameCollaborator(pivot_rows);
622
+ BaseUtils.sortCharts(pivot_rows, groupbyColumn, 'name', true);
623
+ BaseUtils.sortCharts(pivot_columns, columnGroupbyColumn, 'key', true);
624
+ if ((groupbyColumn === null || groupbyColumn === void 0 ? void 0 : groupbyColumn.type) === CellType.COLLABORATOR) {
625
+ pivot_rows = BaseUtils.mergePivotTableSameCollaborator(pivot_rows);
632
626
  }
633
627
  const summary_columns = [summaryColumn, ...summaryColumnsWithMethod.map(item => item.column)];
634
628
  return {
@@ -637,7 +631,7 @@ SQLStatisticsUtils.twoDimensionTableSQLResult2JavaScript = async (chart, sqlRows
637
631
  pivot_rows,
638
632
  pivot_columns_total,
639
633
  pivot_table_total,
640
- dimensions: _constants.TABLE_DIMENSIONS.TWO,
634
+ dimensions: TABLE_DIMENSIONS.TWO,
641
635
  isSingleNumericColumn
642
636
  };
643
637
  };
@@ -649,7 +643,6 @@ SQLStatisticsUtils.basicChartSQLResult2JavaScript = async (chart, sqlRows, chart
649
643
  type,
650
644
  sort_type,
651
645
  y_axis_summary_type,
652
- y_axis_summary_column_key,
653
646
  y_axis_summary_method,
654
647
  x_axis_include_empty_cells,
655
648
  groupby_include_empty_cells
@@ -658,7 +651,7 @@ SQLStatisticsUtils.basicChartSQLResult2JavaScript = async (chart, sqlRows, chart
658
651
  groupbyColumn,
659
652
  summaryColumn
660
653
  } = columnMap;
661
- const isGroupbyColumnDataAsAnArray = (0, _baseUtils.findIfColumnDataIsArray)(groupbyColumn);
654
+ const isGroupbyColumnDataAsAnArray = findIfColumnDataIsArray(groupbyColumn);
662
655
  const {
663
656
  sqlGroupbyColumnKey,
664
657
  sqlSummaryColumnKey
@@ -668,10 +661,10 @@ SQLStatisticsUtils.basicChartSQLResult2JavaScript = async (chart, sqlRows, chart
668
661
  const cellValue = row[sqlGroupbyColumnKey];
669
662
  const summaryValue = row[sqlSummaryColumnKey];
670
663
  let formatted_value = cellValue;
671
- if (y_axis_summary_type === _constants.CHART_SUMMARY_TYPE.ADVANCED) {
672
- formatted_value = (0, _columnUtils.getFormattedValue)(cellValue, y_axis_summary_column_key, y_axis_summary_method);
664
+ if (y_axis_summary_type === CHART_SUMMARY_TYPE.ADVANCED) {
665
+ formatted_value = getFormattedValue(summaryValue, summaryColumn, y_axis_summary_method);
673
666
  }
674
- if (_baseUtils.default.isValidCellValue(cellValue, x_axis_include_empty_cells || groupby_include_empty_cells)) {
667
+ if (BaseUtils.isValidCellValue(cellValue, x_axis_include_empty_cells || groupby_include_empty_cells)) {
675
668
  const key = await _SQLStatisticsUtils.getGroupLabelFromDB(cellValue, groupbyColumn, chart.config);
676
669
  if (isGroupbyColumnDataAsAnArray) {
677
670
  if (!Array.isArray(key) || key.length === 0) {
@@ -729,11 +722,11 @@ SQLStatisticsUtils.basicChartSQLResult2JavaScript = async (chart, sqlRows, chart
729
722
  }
730
723
  }
731
724
  }
732
- _baseUtils.default.sortCharts(result, groupbyColumn, 'name');
733
- await _baseUtils.default.updateTableViewList(result, groupbyColumn, 'name', 'color', false, true);
734
- _baseUtils.default.updateSummaryValuePrecision(result, summaryColumn, 'value');
735
- if (_constants.SUPPORT_DATA_SORT_CHART_TYPES.includes(type) && sort_type) {
736
- _baseUtils.default.sortChartData(result, sort_type);
725
+ BaseUtils.sortCharts(result, groupbyColumn, 'name');
726
+ await BaseUtils.updateTableViewList(result, groupbyColumn, 'name', 'color', false, true);
727
+ BaseUtils.updateSummaryValuePrecision(result, summaryColumn, 'value');
728
+ if (SUPPORT_DATA_SORT_CHART_TYPES.includes(type) && sort_type) {
729
+ BaseUtils.sortChartData(result, sort_type);
737
730
  return result;
738
731
  }
739
732
  return result;
@@ -762,28 +755,28 @@ SQLStatisticsUtils.customChartSQLResult2JavaScript = async (chart, sqlRows, char
762
755
  groupbyColumn,
763
756
  summaryColumn
764
757
  } = columnMap;
765
- const table = (0, _dtableUtils.getTableById)(tables, table_id);
758
+ const table = getTableById(tables, table_id);
766
759
  const stack = y_axises[index];
767
760
  if (!stack) return [];
768
761
  const {
769
762
  column_groupby_numeric_columns
770
763
  } = stack;
771
- const y_axis_type = `${_constants.Y_AXIS_TYPE_PREFIX}${index}`;
764
+ const y_axis_type = `${Y_AXIS_TYPE_PREFIX}${index}`;
772
765
  let summaryMethods = [];
773
766
  let originalMethods = [];
774
767
  let groupColumnNames = [];
775
768
  let numericColumns = [];
776
769
  column_groupby_numeric_columns.forEach(item => {
777
- const numericColumn = (0, _dtableUtils.getTableColumnByKey)(table, item.column_key);
770
+ const numericColumn = getTableColumnByKey(table, item.column_key);
778
771
  const groupColumnName = numericColumn.name;
779
772
  numericColumns.push(numericColumn);
780
773
  groupColumnNames.push(groupColumnName);
781
- summaryMethods.push((0, _sql.summaryMethodColumn2SqlColumn)(item.summary_method.toUpperCase(), numericColumn).key);
774
+ summaryMethods.push(summaryMethodColumn2SqlColumn(item.summary_method.toUpperCase(), numericColumn).key);
782
775
  originalMethods.push(item.summary_method);
783
776
  });
784
777
  const {
785
778
  key: sqlGroupbyColumnKey
786
- } = (0, _column2SqlColumn.column2SqlColumn)(groupbyColumn, {
779
+ } = column2SqlColumn(groupbyColumn, {
787
780
  dateGranularity: x_axis_date_granularity,
788
781
  geolocationGranularity: x_axis_geolocation_granularity
789
782
  });
@@ -791,14 +784,14 @@ SQLStatisticsUtils.customChartSQLResult2JavaScript = async (chart, sqlRows, char
791
784
  for (const row of sqlRows) {
792
785
  const cellValue = row[sqlGroupbyColumnKey];
793
786
  const label = await _SQLStatisticsUtils.getGroupLabelFromDB(cellValue, groupbyColumn, chart.config);
794
- const isEmpty = !label;
787
+ const isEmptyLabel = !label;
795
788
  const groupItems = [];
796
789
  summaryMethods.forEach((summaryMethod, index) => {
797
- if (!(x_axis_include_empty_cells || x_axis_include_empty) && isEmpty) return;
790
+ if (!(x_axis_include_empty_cells || x_axis_include_empty) && isEmptyLabel) return;
798
791
  let value = row[summaryMethod] || 0;
799
792
  let formatted_value = value;
800
- value = (0, _columnUtils.formatNumericValue)(value, numericColumns[index]);
801
- formatted_value = (0, _columnUtils.getFormattedValue)(value, numericColumns[index], originalMethods[index]);
793
+ value = formatNumericValue(value, numericColumns[index]);
794
+ formatted_value = getFormattedValue(value, numericColumns[index], originalMethods[index]);
802
795
  groupItems.push({
803
796
  name: label,
804
797
  value,
@@ -810,7 +803,7 @@ SQLStatisticsUtils.customChartSQLResult2JavaScript = async (chart, sqlRows, char
810
803
  });
811
804
  result = result.concat(groupItems);
812
805
  }
813
- const isCellValueAsAnArray = (0, _baseUtils.findIfColumnDataIsArray)(groupbyColumn);
806
+ const isCellValueAsAnArray = findIfColumnDataIsArray(groupbyColumn);
814
807
  if (isCellValueAsAnArray) {
815
808
  const takenApart = [];
816
809
  const assembled = [];
@@ -820,7 +813,7 @@ SQLStatisticsUtils.customChartSQLResult2JavaScript = async (chart, sqlRows, char
820
813
  name: names
821
814
  } = item;
822
815
  if (!Array.isArray(names)) return;
823
- if (!(names !== null && names !== void 0 && names.length)) {
816
+ if (!(names === null || names === void 0 ? void 0 : names.length)) {
824
817
  takenApart.push({
825
818
  ...item,
826
819
  name: null
@@ -851,9 +844,9 @@ SQLStatisticsUtils.customChartSQLResult2JavaScript = async (chart, sqlRows, char
851
844
  });
852
845
  result = assembled;
853
846
  }
854
- _baseUtils.default.sortCharts(result, groupbyColumn, 'name');
855
- await _baseUtils.default.updateTableViewList(result, groupbyColumn, 'name', '', false, true);
856
- _baseUtils.default.updateSummaryValuePrecision(result, summaryColumn, 'value');
847
+ BaseUtils.sortCharts(result, groupbyColumn, 'name');
848
+ await BaseUtils.updateTableViewList(result, groupbyColumn, 'name', '', false, true);
849
+ BaseUtils.updateSummaryValuePrecision(result, summaryColumn, 'value');
857
850
  return result;
858
851
  };
859
852
  SQLStatisticsUtils.compareSQLResult2Javascript = async (chart, sqlRows, chartSQLMap, columnMap, tables) => {
@@ -882,7 +875,7 @@ SQLStatisticsUtils.compareSQLResult2Javascript = async (chart, sqlRows, chartSQL
882
875
  const groupName2 = `${x_axis_compared_date_range_start} - ${x_axis_compared_date_range_end}`;
883
876
  const dateRangeResult = new Map();
884
877
  let dateComparedResult = new Map();
885
- const isAdvanced = y_axis_summary_type === _constants.CHART_SUMMARY_TYPE.ADVANCED;
878
+ const isAdvanced = y_axis_summary_type === CHART_SUMMARY_TYPE.ADVANCED;
886
879
  const startDate = new Date(x_axis_date_range_start);
887
880
  const endDate = new Date(x_axis_date_range_end);
888
881
  const comparedStartDate = new Date(x_axis_compared_date_range_start);
@@ -892,7 +885,7 @@ SQLStatisticsUtils.compareSQLResult2Javascript = async (chart, sqlRows, chartSQL
892
885
  if (!name) continue;
893
886
  const label = await _SQLStatisticsUtils.getGroupLabelFromDB(name, groupbyColumn, chart.config);
894
887
  if (x_axis_date_granularity === 'quarter') {
895
- name = (0, _dateTranslate.convertQuarterToDate)(name);
888
+ name = convertQuarterToDate(name);
896
889
  } else if (x_axis_date_granularity === 'year') {
897
890
  // set the date to the first day of the year, and set the time to 8:05, cause the time zone is UTC+8,
898
891
  // need to ensure time is at the range of user's slected time
@@ -972,8 +965,8 @@ SQLStatisticsUtils.compareSQLResult2Javascript = async (chart, sqlRows, chartSQL
972
965
  let value = rawValue;
973
966
  let formatted_value = value;
974
967
  if (isAdvanced) {
975
- value = (0, _columnUtils.getSummaryResult)(rawValue, y_axis_summary_method, data.precision);
976
- formatted_value = (0, _columnUtils.getFormattedValue)(value, summaryColumn, y_axis_summary_method);
968
+ value = getSummaryResult(rawValue, y_axis_summary_method, data.precision);
969
+ formatted_value = getFormattedValue(value, summaryColumn, y_axis_summary_method);
977
970
  }
978
971
  rangeResult.push({
979
972
  name: item[0],
@@ -994,8 +987,8 @@ SQLStatisticsUtils.compareSQLResult2Javascript = async (chart, sqlRows, chartSQL
994
987
  const rows = item[1].rows;
995
988
  let formatted_value = value;
996
989
  if (isAdvanced) {
997
- value = (0, _columnUtils.getSummaryResult)(item[1].value, y_axis_summary_method, data.precision);
998
- formatted_value = (0, _columnUtils.getFormattedValue)(value, summaryColumn, y_axis_summary_method);
990
+ value = getSummaryResult(item[1].value, y_axis_summary_method, data.precision);
991
+ formatted_value = getFormattedValue(value, summaryColumn, y_axis_summary_method);
999
992
  }
1000
993
  const newItem = {
1001
994
  name: dateRangeItem.name,
@@ -1019,10 +1012,10 @@ SQLStatisticsUtils.compareSQLResult2Javascript = async (chart, sqlRows, chartSQL
1019
1012
  if (comparedResult.length > rangeResult.length) {
1020
1013
  comparedResult = comparedResult.slice(0, rangeResult.length);
1021
1014
  }
1022
- _baseUtils.default.updateSummaryValuePrecision(comparedResult, summaryColumn, 'value');
1023
- _baseUtils.default.updateSummaryValuePrecision(rangeResult, summaryColumn, 'value');
1024
- _baseUtils.default.sortCharts(rangeResult, groupbyColumn, 'name');
1025
- _baseUtils.default.sortCharts(comparedResult, groupbyColumn, 'name');
1015
+ BaseUtils.updateSummaryValuePrecision(comparedResult, summaryColumn, 'value');
1016
+ BaseUtils.updateSummaryValuePrecision(rangeResult, summaryColumn, 'value');
1017
+ BaseUtils.sortCharts(rangeResult, groupbyColumn, 'name');
1018
+ BaseUtils.sortCharts(comparedResult, groupbyColumn, 'name');
1026
1019
  return [...comparedResult, ...rangeResult];
1027
1020
  };
1028
1021
  SQLStatisticsUtils.combinationSQLResult2Javascript = async (chart, sqlRows, chartSQLMap, columnMap, tables) => {
@@ -1039,7 +1032,7 @@ SQLStatisticsUtils.combinationSQLResult2Javascript = async (chart, sqlRows, char
1039
1032
  table_id,
1040
1033
  y_axis_left_group_by_numeric_columns
1041
1034
  } = config;
1042
- const table = (0, _dtableUtils.getTableById)(tables, table_id);
1035
+ const table = getTableById(tables, table_id);
1043
1036
  const {
1044
1037
  groupbyColumn,
1045
1038
  summaryColumn
@@ -1053,7 +1046,7 @@ SQLStatisticsUtils.combinationSQLResult2Javascript = async (chart, sqlRows, char
1053
1046
  sqlRightSummaryColumnKey,
1054
1047
  sqlLeftSummaryColumnKey
1055
1048
  } = chartSQLMap;
1056
- const isGroupbyColumnDataAsAnArray = (0, _baseUtils.findIfColumnDataIsArray)(groupbyColumn);
1049
+ const isGroupbyColumnDataAsAnArray = findIfColumnDataIsArray(groupbyColumn);
1057
1050
  let result = [];
1058
1051
  if (!y_axis_left_group_by_multiple_numeric_column) {
1059
1052
  // let leftSummaryColumn, rightSummaryColumn;
@@ -1080,7 +1073,7 @@ SQLStatisticsUtils.combinationSQLResult2Javascript = async (chart, sqlRows, char
1080
1073
  if (itemIdx < 0) {
1081
1074
  result.push({
1082
1075
  // color is defined by index of the name
1083
- color: _constants.STYLE_COLORS[0].colors[index % 12],
1076
+ color: STYLE_COLORS[0].colors[index % 12],
1084
1077
  name: null,
1085
1078
  rows: [row],
1086
1079
  value_left: valueLeft,
@@ -1097,7 +1090,7 @@ SQLStatisticsUtils.combinationSQLResult2Javascript = async (chart, sqlRows, char
1097
1090
  let itemIdx = result.findIndex(v => v.name === item);
1098
1091
  if (itemIdx < 0) {
1099
1092
  result.push({
1100
- color: _constants.STYLE_COLORS[0].colors[index % 12],
1093
+ color: STYLE_COLORS[0].colors[index % 12],
1101
1094
  name: item,
1102
1095
  rows: [row],
1103
1096
  value_left: valueLeft,
@@ -1115,7 +1108,7 @@ SQLStatisticsUtils.combinationSQLResult2Javascript = async (chart, sqlRows, char
1115
1108
  let itemIdx = result.findIndex(v => v.name === key);
1116
1109
  if (itemIdx < 0) {
1117
1110
  result.push({
1118
- color: _constants.STYLE_COLORS[0].colors[index % 12],
1111
+ color: STYLE_COLORS[0].colors[index % 12],
1119
1112
  name: key,
1120
1113
  rows: [row],
1121
1114
  value_left: valueLeft,
@@ -1135,11 +1128,11 @@ SQLStatisticsUtils.combinationSQLResult2Javascript = async (chart, sqlRows, char
1135
1128
  // rightSummaryColumn = getTableColumnByKey(table, y_axis_right_summary_column);
1136
1129
  // }
1137
1130
  const groupItems = [];
1138
- let leftSummaryColumn = (0, _dtableUtils.getTableColumnByKey)(table, y_axis_left_summary_column);
1131
+ let leftSummaryColumn = getTableColumnByKey(table, y_axis_left_summary_column);
1139
1132
  const summaryMethod = y_axis_left_summary_method.toUpperCase();
1140
1133
  const {
1141
1134
  key
1142
- } = (0, _sql.summaryMethodColumn2SqlColumn)(summaryMethod, leftSummaryColumn || {});
1135
+ } = summaryMethodColumn2SqlColumn(summaryMethod, leftSummaryColumn || {});
1143
1136
  const groupItem = {
1144
1137
  sqlName: key,
1145
1138
  column: leftSummaryColumn
@@ -1149,12 +1142,12 @@ SQLStatisticsUtils.combinationSQLResult2Javascript = async (chart, sqlRows, char
1149
1142
  groupItems.push(groupItem);
1150
1143
  }
1151
1144
  y_axis_left_group_by_numeric_columns.forEach((item, index) => {
1152
- const column = (0, _dtableUtils.getTableColumnByKey)(table, item.column_key);
1145
+ const column = getTableColumnByKey(table, item.column_key);
1153
1146
  if (column) {
1154
1147
  const itemSummaryMethod = item.summary_method.toUpperCase();
1155
1148
  const {
1156
1149
  key
1157
- } = (0, _sql.summaryMethodColumn2SqlColumn)(itemSummaryMethod, column || {});
1150
+ } = summaryMethodColumn2SqlColumn(itemSummaryMethod, column || {});
1158
1151
  const groupItem = {
1159
1152
  sqlName: key,
1160
1153
  column
@@ -1195,7 +1188,7 @@ SQLStatisticsUtils.combinationSQLResult2Javascript = async (chart, sqlRows, char
1195
1188
  rows: [item],
1196
1189
  group_name: groupName,
1197
1190
  // for multiple numeric_columns, color is defined by group_name
1198
- color: _constants.STYLE_COLORS[0].colors[index % 12]
1191
+ color: STYLE_COLORS[0].colors[index % 12]
1199
1192
  });
1200
1193
  } else {
1201
1194
  const itemRow = result[itemIdx];
@@ -1220,16 +1213,16 @@ SQLStatisticsUtils.combinationSQLResult2Javascript = async (chart, sqlRows, char
1220
1213
  value_right: valueRight,
1221
1214
  rows: [item],
1222
1215
  group_name: groupName,
1223
- color: _constants.STYLE_COLORS[0].colors[index % 12]
1216
+ color: STYLE_COLORS[0].colors[index % 12]
1224
1217
  });
1225
1218
  });
1226
1219
  }
1227
1220
  }
1228
1221
  }
1229
- await _baseUtils.default.updateTableViewList(result, groupbyColumn, 'name', '', false, true);
1230
- _baseUtils.default.sortCharts(result, groupbyColumn, 'name');
1231
- _baseUtils.default.updateSummaryValuePrecision(result, summaryColumnLeft, 'value_left');
1232
- _baseUtils.default.updateSummaryValuePrecision(result, summaryColumnRight, 'value_right');
1222
+ await BaseUtils.updateTableViewList(result, groupbyColumn, 'name', '', false, true);
1223
+ BaseUtils.sortCharts(result, groupbyColumn, 'name');
1224
+ BaseUtils.updateSummaryValuePrecision(result, summaryColumnLeft, 'value_left');
1225
+ BaseUtils.updateSummaryValuePrecision(result, summaryColumnRight, 'value_right');
1233
1226
  return result;
1234
1227
  };
1235
1228
  SQLStatisticsUtils.dashboardSQLResult2JavaScript = (chart, sqlRows, chartSQLMap, columnMap, tables) => {
@@ -1245,17 +1238,17 @@ SQLStatisticsUtils.dashboardSQLResult2JavaScript = (chart, sqlRows, chartSQLMap,
1245
1238
  total_value_column_key,
1246
1239
  table_id
1247
1240
  } = config;
1248
- const table = (0, _dtableUtils.getTableById)(tables, table_id);
1249
- const targetColumn = (0, _dtableUtils.getTableColumnByKey)(table, target_value_column_key);
1250
- const totalColumn = (0, _dtableUtils.getTableColumnByKey)(table, total_value_column_key);
1241
+ const table = getTableById(tables, table_id);
1242
+ const targetColumn = getTableColumnByKey(table, target_value_column_key);
1243
+ const totalColumn = getTableColumnByKey(table, total_value_column_key);
1251
1244
  const targetSummaryMethod = target_value_column_summary_method.toUpperCase();
1252
1245
  const totalSummaryMethod = total_value_column_summary_method.toUpperCase();
1253
1246
  const {
1254
1247
  key: targetResultKey
1255
- } = (0, _sql.summaryMethodColumn2SqlColumn)(targetSummaryMethod, targetColumn);
1248
+ } = summaryMethodColumn2SqlColumn(targetSummaryMethod, targetColumn);
1256
1249
  const {
1257
1250
  key: totalResultKey
1258
- } = (0, _sql.summaryMethodColumn2SqlColumn)(totalSummaryMethod, totalColumn);
1251
+ } = summaryMethodColumn2SqlColumn(totalSummaryMethod, totalColumn);
1259
1252
  const targetResult = summaryResult[targetResultKey];
1260
1253
  const totalResult = summaryResult[totalResultKey];
1261
1254
  if (totalResult === 0) {
@@ -1310,12 +1303,12 @@ SQLStatisticsUtils.groupingTwoDimensionChartSQLResult2JavaScript = async (chart,
1310
1303
  sqlSummaryColumnKey
1311
1304
  } = chartSQLMap;
1312
1305
  let result = [];
1313
- const isGroupbyColumnDataAsAnArray = (0, _baseUtils.findIfColumnDataIsArray)(groupbyColumn);
1314
- const isColumnGroupbyColumnDataAsAnArray = (0, _baseUtils.findIfColumnDataIsArray)(columnGroupbyColumn);
1306
+ const isGroupbyColumnDataAsAnArray = findIfColumnDataIsArray(groupbyColumn);
1307
+ const isColumnGroupbyColumnDataAsAnArray = findIfColumnDataIsArray(columnGroupbyColumn);
1315
1308
  for (const row of sqlRows) {
1316
1309
  const groupbyColumnCellValue = row[sqlGroupbyColumnKey];
1317
1310
  const groupbyColumnCellValueKey = await _SQLStatisticsUtils.getGroupLabelFromDB(groupbyColumnCellValue, groupbyColumn, chart.config);
1318
- if (_baseUtils.default.isValidCellValue(groupbyColumnCellValueKey, includeEmpty)) {
1311
+ if (BaseUtils.isValidCellValue(groupbyColumnCellValueKey, includeEmpty)) {
1319
1312
  const columnGroupbyColumnCellValue = row[sqlColumnGroupbyColumnKey];
1320
1313
  const columnGroupbyColumnCellValueKey = await _SQLStatisticsUtils.getGroupLabelFromDB(columnGroupbyColumnCellValue, columnGroupbyColumn, chart.config);
1321
1314
  const count = row[sqlSummaryColumnKey];
@@ -1336,6 +1329,8 @@ SQLStatisticsUtils.groupingTwoDimensionChartSQLResult2JavaScript = async (chart,
1336
1329
  // fill empty group name with value 0
1337
1330
  const allGroupNames = new Set();
1338
1331
  const nameGroupMap = new Map();
1332
+ const nameRawValueMap = new Map();
1333
+ const groupNameRawValueMap = new Map();
1339
1334
  result.forEach(item => {
1340
1335
  const {
1341
1336
  name,
@@ -1346,8 +1341,18 @@ SQLStatisticsUtils.groupingTwoDimensionChartSQLResult2JavaScript = async (chart,
1346
1341
  nameGroupMap.set(name, new Set());
1347
1342
  }
1348
1343
  nameGroupMap.get(name).add(groupName);
1344
+ if (!nameRawValueMap.has(name)) {
1345
+ var _item$rows$;
1346
+ const rawName = (_item$rows$ = item.rows[0]) === null || _item$rows$ === void 0 ? void 0 : _item$rows$[sqlGroupbyColumnKey];
1347
+ nameRawValueMap.set(name, isGroupbyColumnDataAsAnArray ? name : rawName !== null && rawName !== void 0 ? rawName : name);
1348
+ }
1349
+ if (groupName && !groupNameRawValueMap.has(groupName)) {
1350
+ var _item$rows$2;
1351
+ const rawGroupName = (_item$rows$2 = item.rows[0]) === null || _item$rows$2 === void 0 ? void 0 : _item$rows$2[sqlColumnGroupbyColumnKey];
1352
+ groupNameRawValueMap.set(groupName, isColumnGroupbyColumnDataAsAnArray ? groupName : rawGroupName !== null && rawGroupName !== void 0 ? rawGroupName : groupName);
1353
+ }
1349
1354
  });
1350
- const isEmptyGroupName = groupName => groupName === undefined || groupName === null || groupName === '';
1355
+ const isEmptyGroupName = groupName => isEmpty(groupName);
1351
1356
  const groupNameList = Array.from(allGroupNames).sort((a, b) => {
1352
1357
  const aEmpty = isEmptyGroupName(a);
1353
1358
  const bEmpty = isEmptyGroupName(b);
@@ -1358,9 +1363,14 @@ SQLStatisticsUtils.groupingTwoDimensionChartSQLResult2JavaScript = async (chart,
1358
1363
  nameGroupMap.forEach((groupSet, name) => {
1359
1364
  groupNameList.forEach(groupName => {
1360
1365
  if (!groupSet.has(groupName)) {
1366
+ var _nameRawValueMap$get, _groupNameRawValueMap;
1367
+ const rawName = (_nameRawValueMap$get = nameRawValueMap.get(name)) !== null && _nameRawValueMap$get !== void 0 ? _nameRawValueMap$get : name;
1368
+ const rawGroupName = (_groupNameRawValueMap = groupNameRawValueMap.get(groupName)) !== null && _groupNameRawValueMap !== void 0 ? _groupNameRawValueMap : groupName;
1361
1369
  result.push({
1362
1370
  name,
1363
1371
  rows: [],
1372
+ original_name: rawName,
1373
+ original_group_name: rawGroupName,
1364
1374
  group_name: groupName,
1365
1375
  value: 0
1366
1376
  });
@@ -1395,10 +1405,10 @@ SQLStatisticsUtils.groupingTwoDimensionChartSQLResult2JavaScript = async (chart,
1395
1405
  orderedResult.push(...items);
1396
1406
  });
1397
1407
  result.splice(0, result.length, ...orderedResult);
1398
- _baseUtils.default.sortCharts(result, groupbyColumn, 'name');
1399
- await _baseUtils.default.updateTableViewList(result, groupbyColumn, 'name', 'color', false, true);
1400
- await _baseUtils.default.updateTableViewList(result, columnGroupbyColumn, 'group_name', 'group_color', false, false);
1401
- _baseUtils.default.updateSummaryValuePrecision(result, summaryColumn, 'value');
1408
+ BaseUtils.sortCharts(result, groupbyColumn, 'name');
1409
+ await BaseUtils.updateTableViewList(result, groupbyColumn, 'name', 'color', false, true);
1410
+ await BaseUtils.updateTableViewList(result, columnGroupbyColumn, 'group_name', 'group_color', false, false);
1411
+ BaseUtils.updateSummaryValuePrecision(result, summaryColumn, 'value');
1402
1412
  return result;
1403
1413
  };
1404
1414
  SQLStatisticsUtils.groupingChartSQLResult2JavaScript = async (chart, sqlRows, chartSQLMap, columnMap, tables) => {
@@ -1417,7 +1427,7 @@ SQLStatisticsUtils.groupingChartSQLResult2JavaScript = async (chart, sqlRows, ch
1417
1427
  summaryColumn,
1418
1428
  summaryColumnsWithMethod
1419
1429
  } = columnMap;
1420
- if (y_axis_summary_type === _constants.CHART_SUMMARY_TYPE.COUNT) {
1430
+ if (y_axis_summary_type === CHART_SUMMARY_TYPE.COUNT) {
1421
1431
  if (!columnGroupbyColumn) return await _SQLStatisticsUtils.basicChartSQLResult2JavaScript(chart, sqlRows, chartSQLMap, columnMap, tables);
1422
1432
  return await _SQLStatisticsUtils.groupingTwoDimensionChartSQLResult2JavaScript(chart, sqlRows, chartSQLMap, columnMap, tables);
1423
1433
  }
@@ -1429,11 +1439,11 @@ SQLStatisticsUtils.groupingChartSQLResult2JavaScript = async (chart, sqlRows, ch
1429
1439
  summaryColumns
1430
1440
  } = chartSQLMap;
1431
1441
  let result = [];
1432
- const isGroupbyColumnDataAsAnArray = (0, _baseUtils.findIfColumnDataIsArray)(groupbyColumn);
1442
+ const isGroupbyColumnDataAsAnArray = findIfColumnDataIsArray(groupbyColumn);
1433
1443
  for (const row of sqlRows) {
1434
1444
  const groupbyColumnCellValue = row[sqlGroupbyColumnKey];
1435
1445
  const groupbyColumnCellValueKey = await _SQLStatisticsUtils.getGroupLabelFromDB(groupbyColumnCellValue, groupbyColumn, chart.config);
1436
- if (_baseUtils.default.isValidCellValue(groupbyColumnCellValueKey, includeEmpty)) {
1446
+ if (BaseUtils.isValidCellValue(groupbyColumnCellValueKey, includeEmpty)) {
1437
1447
  Object.keys(summaryColumns).forEach(sqlSummaryColumnName => {
1438
1448
  const {
1439
1449
  sqlSummaryColumnKey,
@@ -1454,8 +1464,8 @@ SQLStatisticsUtils.groupingChartSQLResult2JavaScript = async (chart, sqlRows, ch
1454
1464
  });
1455
1465
  }
1456
1466
  }
1457
- _baseUtils.default.sortCharts(result, groupbyColumn, 'name');
1458
- await _baseUtils.default.updateTableViewList(result, groupbyColumn, 'name', 'color', false, true);
1467
+ BaseUtils.sortCharts(result, groupbyColumn, 'name');
1468
+ await BaseUtils.updateTableViewList(result, groupbyColumn, 'name', 'color', false, true);
1459
1469
  const allSummaryColumns = [summaryColumn].concat(summaryColumnsWithMethod.map(item => item.column));
1460
1470
 
1461
1471
  // format precision of enabled precision columns
@@ -1468,7 +1478,7 @@ SQLStatisticsUtils.groupingChartSQLResult2JavaScript = async (chart, sqlRows, ch
1468
1478
  });
1469
1479
  Object.values(columnNameResultMap).forEach(items => {
1470
1480
  const targetColumn = allSummaryColumns.find(column => column.name === items[0].group_name);
1471
- _baseUtils.default.updateSummaryValuePrecision(items, targetColumn, 'value');
1481
+ BaseUtils.updateSummaryValuePrecision(items, targetColumn, 'value');
1472
1482
  });
1473
1483
  return result;
1474
1484
  }
@@ -1491,11 +1501,11 @@ SQLStatisticsUtils.heatMapChartSQLResult2JavaScript = (chart, sqlRows, chartSQLM
1491
1501
  if (currentValue || currentValue === 0) {
1492
1502
  let value = item[sqlSummaryColumnKey];
1493
1503
  if (summaryColumn) {
1494
- value = (0, _columnUtils.formatNumericValue)(value, summaryColumn);
1504
+ value = formatNumericValue(value, summaryColumn);
1495
1505
  }
1496
1506
  const name = typeof currentValue === 'string' ? currentValue : currentValue.country_region;
1497
1507
  result.push({
1498
- name: (0, _dayjs.default)(name).format('YYYY-MM-DD'),
1508
+ name: dayjs(name).format('YYYY-MM-DD'),
1499
1509
  value
1500
1510
  });
1501
1511
  }
@@ -1507,12 +1517,12 @@ SQLStatisticsUtils.heatMapChartSQLResult2JavaScript = (chart, sqlRows, chartSQLM
1507
1517
  data.push(item);
1508
1518
  return;
1509
1519
  }
1510
- const year = (0, _dayjs.default)(item.name).year();
1520
+ const year = dayjs(item.name).year();
1511
1521
  data.push({
1512
1522
  ...item,
1513
1523
  year
1514
1524
  });
1515
- if (years.indexOf(year) < 0) {
1525
+ if (!isNaN(year) && years.indexOf(year) < 0) {
1516
1526
  years.push(year);
1517
1527
  }
1518
1528
  });
@@ -1521,6 +1531,7 @@ SQLStatisticsUtils.heatMapChartSQLResult2JavaScript = (chart, sqlRows, chartSQLM
1521
1531
  if (current.year < next.year) return 1;
1522
1532
  return 0;
1523
1533
  });
1534
+ years.sort((current, next) => next - current);
1524
1535
  return {
1525
1536
  data,
1526
1537
  years
@@ -1545,7 +1556,7 @@ SQLStatisticsUtils.mirrorMapChartSQLResult2JavaScript = async (chart, sqlRows, c
1545
1556
  const {
1546
1557
  sqlSummaryColumnKey
1547
1558
  } = chartSQLMap;
1548
- const isAdvanced = summary_type === _constants.CHART_SUMMARY_TYPE.ADVANCED;
1559
+ const isAdvanced = summary_type === CHART_SUMMARY_TYPE.ADVANCED;
1549
1560
  const newResult = [];
1550
1561
  const groupData = _SQLStatisticsUtils.getGroupData(sqlRows, columnGroupbyColumn);
1551
1562
  if (groupData.length > 0) {
@@ -1561,8 +1572,8 @@ SQLStatisticsUtils.mirrorMapChartSQLResult2JavaScript = async (chart, sqlRows, c
1561
1572
  let value = item[sqlSummaryColumnKey];
1562
1573
  let formattedValue = value;
1563
1574
  if (isAdvanced) {
1564
- value = (0, _columnUtils.formatNumericValue)(value, summaryColumn);
1565
- formattedValue = (0, _columnUtils.getFormattedValue)(value, summary_column_key, summary_method);
1575
+ value = formatNumericValue(value, summaryColumn);
1576
+ formattedValue = getFormattedValue(value, summary_column_key, summary_method);
1566
1577
  }
1567
1578
  newResult.push({
1568
1579
  name: label,
@@ -1570,7 +1581,7 @@ SQLStatisticsUtils.mirrorMapChartSQLResult2JavaScript = async (chart, sqlRows, c
1570
1581
  value: equal2GroupData0 ? value : 0,
1571
1582
  formatted_value: equal2GroupData0 ? formattedValue : 0,
1572
1583
  group_name: ((_groupData$ = groupData[0]) === null || _groupData$ === void 0 ? void 0 : _groupData$.name) || '',
1573
- color: ((_groupData$2 = groupData[0]) === null || _groupData$2 === void 0 ? void 0 : _groupData$2.color) || _constants.STYLE_COLORS[0].colors[0],
1584
+ color: ((_groupData$2 = groupData[0]) === null || _groupData$2 === void 0 ? void 0 : _groupData$2.color) || STYLE_COLORS[0].colors[0],
1574
1585
  rows: [item]
1575
1586
  });
1576
1587
  groupData[1] && newResult.push({
@@ -1579,7 +1590,7 @@ SQLStatisticsUtils.mirrorMapChartSQLResult2JavaScript = async (chart, sqlRows, c
1579
1590
  value: equal2GroupData1 ? value : 0,
1580
1591
  formatted_value: equal2GroupData1 ? formattedValue : 0,
1581
1592
  group_name: ((_groupData$3 = groupData[1]) === null || _groupData$3 === void 0 ? void 0 : _groupData$3.name) || '',
1582
- color: ((_groupData$4 = groupData[1]) === null || _groupData$4 === void 0 ? void 0 : _groupData$4.color) || _constants.STYLE_COLORS[0].colors[0],
1593
+ color: ((_groupData$4 = groupData[1]) === null || _groupData$4 === void 0 ? void 0 : _groupData$4.color) || STYLE_COLORS[0].colors[0],
1583
1594
  rows: [item]
1584
1595
  });
1585
1596
  }
@@ -1610,14 +1621,14 @@ SQLStatisticsUtils.trendMapChartSQLResult2JavaScript = (chart, sqlRows, chartSQL
1610
1621
  const {
1611
1622
  compareValue: value1,
1612
1623
  comparedValue: value2
1613
- } = _baseUtils.default.summaryDurationResult(sqlRows, date_granularity, summary_type, summary_method, true, sqlGroupbyColumnKey, sqlSummaryColumnKey);
1624
+ } = BaseUtils.summaryDurationResult(sqlRows, date_granularity, summary_type, summary_method, true, sqlGroupbyColumnKey, sqlSummaryColumnKey);
1614
1625
  compareValue = value1;
1615
1626
  comparedValue = value2;
1616
1627
  } else {
1617
1628
  const {
1618
1629
  compareDate,
1619
1630
  comparedDate
1620
- } = (0, _trendUtils.getCompareDate)(date_granularity, 'app');
1631
+ } = getCompareDate(date_granularity, 'app');
1621
1632
  for (const item of sqlRows) {
1622
1633
  if (!item[sqlGroupbyColumnKey]) continue;
1623
1634
  const currentDate = item[sqlGroupbyColumnKey] + '';
@@ -1647,11 +1658,11 @@ SQLStatisticsUtils.trendMapChartSQLResult2JavaScript = (chart, sqlRows, chartSQL
1647
1658
  }
1648
1659
  let type;
1649
1660
  if (compareValue > comparedValue) {
1650
- type = _constants.TREND_TYPES.UP;
1661
+ type = TREND_TYPES.UP;
1651
1662
  } else if (compareValue < comparedValue) {
1652
- type = _constants.TREND_TYPES.DOWN;
1663
+ type = TREND_TYPES.DOWN;
1653
1664
  } else if (compareValue === comparedValue) {
1654
- type = _constants.TREND_TYPES.EQUAL;
1665
+ type = TREND_TYPES.EQUAL;
1655
1666
  }
1656
1667
  if (compareValue === 0 && comparedValue === 0) {
1657
1668
  result = '0%';
@@ -1668,15 +1679,15 @@ SQLStatisticsUtils.sqlResult2JavaScript = async (chart, sqlRows, chartSQLMap, co
1668
1679
  type
1669
1680
  } = chart.config;
1670
1681
  switch (type) {
1671
- case _constants.CHART_TYPE.TABLE_ELEMENT:
1682
+ case CHART_TYPE.TABLE_ELEMENT:
1672
1683
  {
1673
1684
  return {
1674
1685
  result: sqlRows
1675
1686
  };
1676
1687
  }
1677
- case _constants.CHART_TYPE.TABLE:
1688
+ case CHART_TYPE.TABLE:
1678
1689
  {
1679
- sqlRows = _baseUtils.default.recalculateAvg(sqlRows);
1690
+ sqlRows = BaseUtils.recalculateAvg(sqlRows);
1680
1691
  const {
1681
1692
  column_groupby_column_key
1682
1693
  } = chart.config;
@@ -1692,106 +1703,106 @@ SQLStatisticsUtils.sqlResult2JavaScript = async (chart, sqlRows, chartSQLMap, co
1692
1703
  }
1693
1704
  return result;
1694
1705
  }
1695
- case _constants.CHART_TYPE.PIE:
1696
- case _constants.CHART_TYPE.RING:
1697
- case _constants.CHART_TYPE.TREE_MAP:
1706
+ case CHART_TYPE.PIE:
1707
+ case CHART_TYPE.RING:
1708
+ case CHART_TYPE.TREE_MAP:
1698
1709
  {
1699
1710
  return {
1700
1711
  result: await _SQLStatisticsUtils.basicChartSQLResult2JavaScript(chart, sqlRows, chartSQLMap, columnMap, tables)
1701
1712
  };
1702
1713
  }
1703
- case _constants.CHART_TYPE.BASIC_NUMBER_CARD:
1714
+ case CHART_TYPE.BASIC_NUMBER_CARD:
1704
1715
  {
1705
1716
  return {
1706
1717
  result: _SQLStatisticsUtils.basicNumberCardSQLResult2JavaScript(chart, sqlRows, chartSQLMap, columnMap, tables)
1707
1718
  };
1708
1719
  }
1709
- case _constants.CHART_TYPE.DASHBOARD:
1720
+ case CHART_TYPE.DASHBOARD:
1710
1721
  {
1711
1722
  return {
1712
1723
  result: _SQLStatisticsUtils.dashboardSQLResult2JavaScript(chart, sqlRows, chartSQLMap, columnMap, tables)
1713
1724
  };
1714
1725
  }
1715
- case _constants.CHART_TYPE.BAR:
1716
- case _constants.CHART_TYPE.LINE:
1717
- case _constants.CHART_TYPE.HORIZONTAL_BAR:
1718
- case _constants.CHART_TYPE.AREA:
1719
- case _constants.CHART_TYPE.FUNNEL:
1726
+ case CHART_TYPE.BAR:
1727
+ case CHART_TYPE.LINE:
1728
+ case CHART_TYPE.HORIZONTAL_BAR:
1729
+ case CHART_TYPE.AREA:
1730
+ case CHART_TYPE.FUNNEL:
1720
1731
  {
1721
1732
  return {
1722
1733
  result: await _SQLStatisticsUtils.basicChartSQLResult2JavaScript(chart, sqlRows, chartSQLMap, columnMap, tables)
1723
1734
  };
1724
1735
  }
1725
- case _constants.CHART_TYPE.COMPLETENESS:
1726
- case _constants.CHART_TYPE.COMPLETENESS_GROUP:
1736
+ case CHART_TYPE.COMPLETENESS:
1737
+ case CHART_TYPE.COMPLETENESS_GROUP:
1727
1738
  {
1728
1739
  const result = await _SQLStatisticsUtils.completenessSQlResult(chart, sqlRows, chartSQLMap, tables);
1729
1740
  return {
1730
1741
  result
1731
1742
  };
1732
1743
  }
1733
- case _constants.CHART_TYPE.COMBINATION:
1744
+ case CHART_TYPE.COMBINATION:
1734
1745
  {
1735
1746
  return {
1736
1747
  result: await _SQLStatisticsUtils.combinationSQLResult2Javascript(chart, sqlRows, chartSQLMap, columnMap, tables)
1737
1748
  };
1738
1749
  }
1739
- case _constants.CHART_TYPE.COMPARE_BAR:
1750
+ case CHART_TYPE.COMPARE_BAR:
1740
1751
  {
1741
1752
  return {
1742
1753
  result: await _SQLStatisticsUtils.compareSQLResult2Javascript(chart, sqlRows, chartSQLMap, columnMap, tables)
1743
1754
  };
1744
1755
  }
1745
- case _constants.CHART_TYPE.BAR_GROUP:
1746
- case _constants.CHART_TYPE.BAR_STACK:
1747
- case _constants.CHART_TYPE.LINE_GROUP:
1748
- case _constants.CHART_TYPE.AREA_GROUP:
1749
- case _constants.CHART_TYPE.HORIZONTAL_GROUP_BAR:
1750
- case _constants.CHART_TYPE.STACKED_HORIZONTAL_BAR:
1756
+ case CHART_TYPE.BAR_GROUP:
1757
+ case CHART_TYPE.BAR_STACK:
1758
+ case CHART_TYPE.LINE_GROUP:
1759
+ case CHART_TYPE.AREA_GROUP:
1760
+ case CHART_TYPE.HORIZONTAL_GROUP_BAR:
1761
+ case CHART_TYPE.STACKED_HORIZONTAL_BAR:
1751
1762
  {
1752
1763
  return {
1753
1764
  result: await _SQLStatisticsUtils.groupingChartSQLResult2JavaScript(chart, sqlRows, chartSQLMap, columnMap, tables)
1754
1765
  };
1755
1766
  }
1756
- case _constants.CHART_TYPE.SCATTER:
1767
+ case CHART_TYPE.SCATTER:
1757
1768
  {
1758
1769
  return {
1759
1770
  result: await _SQLStatisticsUtils.scatterSQLResult2JavaScript(chart, sqlRows, chartSQLMap, columnMap, tables)
1760
1771
  };
1761
1772
  }
1762
- case _constants.CHART_TYPE.BAR_CUSTOM:
1773
+ case CHART_TYPE.BAR_CUSTOM:
1763
1774
  {
1764
1775
  return {
1765
1776
  result: await _SQLStatisticsUtils.customChartSQLResult2JavaScript(chart, sqlRows, chartSQLMap, columnMap, tables, params)
1766
1777
  };
1767
1778
  }
1768
- case _constants.CHART_TYPE.MAP:
1769
- case _constants.CHART_TYPE.MAP_BUBBLE:
1779
+ case CHART_TYPE.MAP:
1780
+ case CHART_TYPE.MAP_BUBBLE:
1770
1781
  {
1771
1782
  return {
1772
1783
  result: _SQLStatisticsUtils.mapSQLResult2JavaScript(chart, sqlRows, chartSQLMap, columnMap, tables)
1773
1784
  };
1774
1785
  }
1775
- case _constants.CHART_TYPE.WORLD_MAP:
1776
- case _constants.CHART_TYPE.WORLD_MAP_BUBBLE:
1786
+ case CHART_TYPE.WORLD_MAP:
1787
+ case CHART_TYPE.WORLD_MAP_BUBBLE:
1777
1788
  {
1778
1789
  return {
1779
1790
  result: _SQLStatisticsUtils.worldMapSQLResult2JavaScript(chart, sqlRows, chartSQLMap, columnMap, tables)
1780
1791
  };
1781
1792
  }
1782
- case _constants.CHART_TYPE.HEAT_MAP:
1793
+ case CHART_TYPE.HEAT_MAP:
1783
1794
  {
1784
1795
  return {
1785
1796
  result: _SQLStatisticsUtils.heatMapChartSQLResult2JavaScript(chart, sqlRows, chartSQLMap, columnMap, tables)
1786
1797
  };
1787
1798
  }
1788
- case _constants.CHART_TYPE.MIRROR:
1799
+ case CHART_TYPE.MIRROR:
1789
1800
  {
1790
1801
  return {
1791
1802
  result: await _SQLStatisticsUtils.mirrorMapChartSQLResult2JavaScript(chart, sqlRows, chartSQLMap, columnMap, tables)
1792
1803
  };
1793
1804
  }
1794
- case _constants.CHART_TYPE.TREND:
1805
+ case CHART_TYPE.TREND:
1795
1806
  {
1796
1807
  return {
1797
1808
  result: _SQLStatisticsUtils.trendMapChartSQLResult2JavaScript(chart, sqlRows, chartSQLMap, columnMap, tables)
@@ -1821,23 +1832,23 @@ SQLStatisticsUtils.completenessSQlResult = async (chart, sqlRows, chartSQLMap, t
1821
1832
  target_column,
1822
1833
  column_groupby_column
1823
1834
  } = sqlColumns;
1824
- const nameColumnDataAsAnArray = (0, _baseUtils.findIfColumnDataIsArray)(name_column);
1835
+ const nameColumnDataAsAnArray = findIfColumnDataIsArray(name_column);
1825
1836
  // group by name_column, so it can only have one value
1826
- let originalSqlRows = (0, _lodashEs.cloneDeep)(sqlRows);
1837
+ let originalSqlRows = cloneDeep(sqlRows);
1827
1838
  if (nameColumnDataAsAnArray) {
1828
1839
  sqlRows.forEach(row => {
1829
1840
  var _row$name_column$key;
1830
1841
  row[name_column.key] = (_row$name_column$key = row[name_column.key]) === null || _row$name_column$key === void 0 ? void 0 : _row$name_column$key[0];
1831
1842
  });
1832
1843
  }
1833
- await _baseUtils.default.updateTableViewList(sqlRows, name_column, name_column.key, 'color', false, true);
1834
- if (sqlColumnGroupbyColumnKey) await _baseUtils.default.updateTableViewList(sqlRows, column_groupby_column, sqlColumnGroupbyColumnKey, 'color', false, false);
1844
+ await BaseUtils.updateTableViewList(sqlRows, name_column, name_column.key, 'color', false, true);
1845
+ if (sqlColumnGroupbyColumnKey) await BaseUtils.updateTableViewList(sqlRows, column_groupby_column, sqlColumnGroupbyColumnKey, 'color', false, false);
1835
1846
  const res = [];
1836
1847
  sqlRows.forEach((row, index) => {
1837
1848
  const nameValue = row[name_column.key];
1838
1849
  const targetValue = row[`SUM(${target_column.name})`];
1839
1850
  const completedValue = row[`SUM(${completed_column.name})`];
1840
- const groupby = row[sqlColumnGroupbyColumnKey] || _intl.default.get('Empty');
1851
+ const groupby = row[sqlColumnGroupbyColumnKey] || intl.get('Empty');
1841
1852
  let completedRate;
1842
1853
  if (!targetValue && completedValue) {
1843
1854
  completedRate = 100;
@@ -1854,7 +1865,7 @@ SQLStatisticsUtils.completenessSQlResult = async (chart, sqlRows, chartSQLMap, t
1854
1865
  original_name,
1855
1866
  group_name: 'completed',
1856
1867
  groupby,
1857
- color: row.color || _constants.CHART_STYLE_COLORS[0],
1868
+ color: row.color || CHART_STYLE_COLORS[0],
1858
1869
  value: completedValue,
1859
1870
  rows: [originalSqlRows[index]]
1860
1871
  });
@@ -1878,12 +1889,11 @@ SQLStatisticsUtils.completenessSQlResult = async (chart, sqlRows, chartSQLMap, t
1878
1889
  return 1;
1879
1890
  }
1880
1891
  });
1881
-
1882
- // deduplicate by (name, group_name)
1892
+ const isGroup = chart.config.type === CHART_TYPE.COMPLETENESS_GROUP;
1883
1893
  const deduplicatedRes = [];
1884
1894
  const keyMap = {};
1885
1895
  res.forEach(item => {
1886
- const key = `${item.name}_${item.group_name}`;
1896
+ const key = isGroup ? `${item.name}_${item.groupby}_${item.group_name}` : `${item.name}_${item.group_name}`;
1887
1897
  if (!keyMap[key]) {
1888
1898
  keyMap[key] = item;
1889
1899
  deduplicatedRes.push(item);
@@ -1912,11 +1922,11 @@ SQLStatisticsUtils.scatterSQLResult2JavaScript = async (chart, sqlRows, chartSQL
1912
1922
  summaryColumn
1913
1923
  } = columnMap;
1914
1924
  // format sql rows
1915
- const originalSqlRows = (0, _lodashEs.cloneDeep)(sqlRows);
1925
+ const originalSqlRows = cloneDeep(sqlRows);
1916
1926
  const isScatter = true;
1917
- await _baseUtils.default.updateTableViewList(sqlRows, groupbyColumn, groupbyColumn.key, 'color', isScatter, true);
1918
- await _baseUtils.default.updateTableViewList(sqlRows, summaryColumn, summaryColumn.key, 'color', isScatter, true);
1919
- if (sqlColumnGroupbyColumnKey) await _baseUtils.default.updateTableViewList(sqlRows, columnGroupbyColumn, sqlColumnGroupbyColumnKey, 'color', isScatter, false);
1927
+ await BaseUtils.updateTableViewList(sqlRows, groupbyColumn, groupbyColumn.key, 'color', isScatter, true);
1928
+ await BaseUtils.updateTableViewList(sqlRows, summaryColumn, summaryColumn.key, 'color', isScatter, true);
1929
+ if (sqlColumnGroupbyColumnKey) await BaseUtils.updateTableViewList(sqlRows, columnGroupbyColumn, sqlColumnGroupbyColumnKey, 'color', isScatter, false);
1920
1930
  const res = [];
1921
1931
  sqlRows.forEach((row, index) => {
1922
1932
  const xValue = row[sqlXColumnKey];
@@ -1938,9 +1948,24 @@ SQLStatisticsUtils.scatterSQLResult2JavaScript = async (chart, sqlRows, chartSQL
1938
1948
  }
1939
1949
  });
1940
1950
  });
1941
- _baseUtils.default.sortCharts(res, groupbyColumn, 'name');
1951
+ BaseUtils.sortCharts(res, groupbyColumn, 'name');
1942
1952
  return res;
1943
1953
  };
1954
+ SQLStatisticsUtils.formatMapGeolocationName = (cellValue, mapLevel, mapLocation) => {
1955
+ if (isEmpty(cellValue)) return '';
1956
+ if (typeof cellValue === 'object' && !Array.isArray(cellValue)) {
1957
+ const granularity = fixGeoGranularity(mapLevel, mapLocation);
1958
+ return getGeolocationByGranularity(cellValue, granularity) || '';
1959
+ }
1960
+ return cellValue;
1961
+ };
1962
+ SQLStatisticsUtils.formatWorldMapGeolocationName = cellValue => {
1963
+ if (isEmpty(cellValue)) return '';
1964
+ if (typeof cellValue === 'object' && !Array.isArray(cellValue)) {
1965
+ return getGeolocationByGranularity(cellValue, GROUP_GEOLOCATION_GRANULARITY.COUNTRY) || '';
1966
+ }
1967
+ return cellValue;
1968
+ };
1944
1969
  SQLStatisticsUtils.mapSQLResult2JavaScript = (chart, sqlRows, chartSQLMap, columnMap, tables) => {
1945
1970
  const {
1946
1971
  sqlGeoColumnKey,
@@ -1949,6 +1974,10 @@ SQLStatisticsUtils.mapSQLResult2JavaScript = (chart, sqlRows, chartSQLMap, colum
1949
1974
  const {
1950
1975
  groupbyColumn
1951
1976
  } = columnMap;
1977
+ const {
1978
+ map_level,
1979
+ map_location
1980
+ } = (chart === null || chart === void 0 ? void 0 : chart.config) || {};
1952
1981
  if (groupbyColumn.type === 'link-formula') {
1953
1982
  const {
1954
1983
  data,
@@ -1963,9 +1992,10 @@ SQLStatisticsUtils.mapSQLResult2JavaScript = (chart, sqlRows, chartSQLMap, colum
1963
1992
  return [];
1964
1993
  }
1965
1994
  const nameValueMap = sqlRows.reduce((acc, row) => {
1966
- const geoList = row[key];
1995
+ const geoList = row[key] || [];
1967
1996
  const value = row[sqlSummaryColumnKey];
1968
1997
  geoList.forEach(geo => {
1998
+ if (!geo) return;
1969
1999
  const name = geo[geo_format];
1970
2000
  if (!acc[name]) {
1971
2001
  acc[name] = value;
@@ -1984,8 +2014,9 @@ SQLStatisticsUtils.mapSQLResult2JavaScript = (chart, sqlRows, chartSQLMap, colum
1984
2014
  }, []);
1985
2015
  } else {
1986
2016
  return sqlRows.reduce((acc, row) => {
1987
- const name = row[sqlGeoColumnKey];
2017
+ const rawName = row[sqlGeoColumnKey];
1988
2018
  const value = row[sqlSummaryColumnKey];
2019
+ const name = _SQLStatisticsUtils.formatMapGeolocationName(rawName, map_level, map_location);
1989
2020
  acc.push({
1990
2021
  name,
1991
2022
  value
@@ -2020,9 +2051,10 @@ SQLStatisticsUtils.worldMapSQLResult2JavaScript = (chart, sqlRows, chartSQLMap,
2020
2051
  return [];
2021
2052
  }
2022
2053
  const nameValueMap = sqlRows.reduce((acc, row) => {
2023
- const geoList = row[key];
2054
+ const geoList = row[key] || [];
2024
2055
  const value = row[sqlSummaryColumnKey];
2025
2056
  geoList.forEach(geo => {
2057
+ if (!geo) return;
2026
2058
  const name = geo[geo_format];
2027
2059
  if (!acc[name]) {
2028
2060
  acc[name] = value;
@@ -2036,8 +2068,8 @@ SQLStatisticsUtils.worldMapSQLResult2JavaScript = (chart, sqlRows, chartSQLMap,
2036
2068
  let value = nameValueMap[name];
2037
2069
  let formatted_value = value;
2038
2070
  if (summary_type === 'advanced') {
2039
- value = (0, _columnUtils.formatNumericValue)(value, summaryColumn);
2040
- formatted_value = (0, _columnUtils.getFormattedValue)(value, summaryColumn, summary_method);
2071
+ value = formatNumericValue(value, summaryColumn);
2072
+ formatted_value = getFormattedValue(value, summaryColumn, summary_method);
2041
2073
  }
2042
2074
  acc.push({
2043
2075
  name,
@@ -2053,11 +2085,11 @@ SQLStatisticsUtils.worldMapSQLResult2JavaScript = (chart, sqlRows, chartSQLMap,
2053
2085
  let value = item[sqlSummaryColumnKey];
2054
2086
  let formatted_value = value;
2055
2087
  if (summary_type === 'advanced') {
2056
- value = (0, _columnUtils.formatNumericValue)(value, summaryColumn);
2057
- formatted_value = (0, _columnUtils.getFormattedValue)(value, summaryColumn, summary_method);
2088
+ value = formatNumericValue(value, summaryColumn);
2089
+ formatted_value = getFormattedValue(value, summaryColumn, summary_method);
2058
2090
  }
2059
- if (currentValue) {
2060
- const name = typeof currentValue === 'string' ? currentValue : currentValue.country_region;
2091
+ const name = _SQLStatisticsUtils.formatWorldMapGeolocationName(currentValue);
2092
+ if (name) {
2061
2093
  result.push({
2062
2094
  name,
2063
2095
  value,
@@ -2072,7 +2104,7 @@ SQLStatisticsUtils.calculateChart = async (chart, value, callback, sqlRows) => {
2072
2104
  const {
2073
2105
  tables
2074
2106
  } = value;
2075
- if (!_baseUtils.default.isValidExistChart(tables, chart)) {
2107
+ if (!BaseUtils.isValidExistChart(tables, chart)) {
2076
2108
  const tip_message = 'Please_complete_the_chart_configuration_first';
2077
2109
  return callback && callback('', tip_message, null);
2078
2110
  }
@@ -2082,7 +2114,7 @@ SQLStatisticsUtils.calculateChart = async (chart, value, callback, sqlRows) => {
2082
2114
  type
2083
2115
  } = chart;
2084
2116
  const chartType = config.type;
2085
- const newConfig = _baseUtils.default.convertConfig(config);
2117
+ const newConfig = BaseUtils.convertConfig(config);
2086
2118
  const newChart = {
2087
2119
  id,
2088
2120
  config: newConfig,
@@ -2091,11 +2123,11 @@ SQLStatisticsUtils.calculateChart = async (chart, value, callback, sqlRows) => {
2091
2123
  const {
2092
2124
  table_id
2093
2125
  } = config;
2094
- const table = (0, _dtableUtils.getTableById)(tables, table_id);
2095
- const groupbyColumn = _baseUtils.default.getGroupColumn(table, newChart);
2096
- const columnGroupbyColumn = _baseUtils.default.getColumnGroupColumn(table, newChart);
2097
- const summaryColumn = _baseUtils.default.getSummaryColumn(table, newChart);
2098
- const summaryColumnsWithMethod = _baseUtils.default.getSummaryColumnsWithMethod(table, newChart);
2126
+ const table = getTableById(tables, table_id);
2127
+ const groupbyColumn = BaseUtils.getGroupColumn(table, newChart);
2128
+ const columnGroupbyColumn = BaseUtils.getColumnGroupColumn(table, newChart);
2129
+ const summaryColumn = BaseUtils.getSummaryColumn(table, newChart);
2130
+ const summaryColumnsWithMethod = BaseUtils.getSummaryColumnsWithMethod(table, newChart);
2099
2131
  // summary column is referring to single_numeric_column, but summaryColumns is referring to multiple_numeric_column
2100
2132
  // single_numeric_column is used as the first setting option when switched to multiple_numeric_column
2101
2133
  const columnMap = {
@@ -2107,7 +2139,7 @@ SQLStatisticsUtils.calculateChart = async (chart, value, callback, sqlRows) => {
2107
2139
  const chartTableColumns = table.columns;
2108
2140
  let chartSQLMap = null;
2109
2141
  try {
2110
- chartSQLMap = (0, _sql.chartColumn2SqlColumn)(newChart, table);
2142
+ chartSQLMap = chartColumn2SqlColumn(newChart, table);
2111
2143
  } catch (error) {
2112
2144
  let error_message = 'There_are_some_problems_with_the_filters';
2113
2145
  if (error.message) error_message = error.message;
@@ -2116,7 +2148,7 @@ SQLStatisticsUtils.calculateChart = async (chart, value, callback, sqlRows) => {
2116
2148
  const tipMessage = 'There_are_no_statistic_results_yet';
2117
2149
 
2118
2150
  // Custom Bar
2119
- if (chartType === _constants.CHART_TYPE.BAR_CUSTOM) {
2151
+ if (chartType === CHART_TYPE.BAR_CUSTOM) {
2120
2152
  const result = [];
2121
2153
  for (const [index, item] of sqlRows.entries()) {
2122
2154
  if (item.length !== 0) {
@@ -2143,14 +2175,20 @@ SQLStatisticsUtils.calculateChart = async (chart, value, callback, sqlRows) => {
2143
2175
  }
2144
2176
 
2145
2177
  // map is special, still need to show map even data is empty
2146
- if (!Array.isArray(sqlRows) || sqlRows.length === 0 && !_constants.MAP_CHART_TYPES.includes(chartType)) {
2178
+ if (!Array.isArray(sqlRows) || sqlRows.length === 0 && !MAP_CHART_TYPES.includes(chartType)) {
2147
2179
  callback && callback('', tipMessage, null);
2148
2180
  return;
2149
2181
  }
2150
- const chartResult = await _SQLStatisticsUtils.sqlResult2JavaScript(newChart, sqlRows, chartSQLMap, columnMap, tables);
2182
+ let chartResult = null;
2183
+ try {
2184
+ chartResult = await _SQLStatisticsUtils.sqlResult2JavaScript(newChart, sqlRows, chartSQLMap, columnMap, tables);
2185
+ } catch (error) {
2186
+ const errorMessage = (error === null || error === void 0 ? void 0 : error.message) || error;
2187
+ return callback && callback(errorMessage, '', null);
2188
+ }
2151
2189
 
2152
2190
  // map is special
2153
- if (_baseUtils.default.imEmptyChartResult(chartResult) && !chartType.includes('map')) {
2191
+ if (BaseUtils.imEmptyChartResult(chartResult) && !chartType.includes('map')) {
2154
2192
  callback && callback('', tipMessage, null);
2155
2193
  return;
2156
2194
  }
@@ -2170,7 +2208,7 @@ SQLStatisticsUtils.calculateStaticChart = (chart, value, statisticalResult, call
2170
2208
  config
2171
2209
  } = chart;
2172
2210
  const tables = value.tables;
2173
- const newConfig = _baseUtils.default.convertConfig(config);
2211
+ const newConfig = BaseUtils.convertConfig(config);
2174
2212
  const newChart = {
2175
2213
  id,
2176
2214
  config: newConfig
@@ -2178,31 +2216,31 @@ SQLStatisticsUtils.calculateStaticChart = (chart, value, statisticalResult, call
2178
2216
  const {
2179
2217
  type
2180
2218
  } = config;
2181
- if ([_constants.CHART_TYPE.TABLE, _constants.CHART_TYPE.TABLE_ELEMENT].includes(type)) return callback && callback('', '', statisticalResult);
2219
+ if ([CHART_TYPE.TABLE, CHART_TYPE.TABLE_ELEMENT].includes(type)) return callback && callback('', '', statisticalResult);
2182
2220
  const {
2183
2221
  table_id,
2184
2222
  sort_type
2185
2223
  } = config;
2186
- const table = (0, _dtableUtils.getTableById)(tables, table_id);
2187
- const groupbyColumn = _baseUtils.default.getGroupColumn(table, newChart);
2224
+ const table = getTableById(tables, table_id);
2225
+ const groupbyColumn = BaseUtils.getGroupColumn(table, newChart);
2188
2226
  let result = statisticalResult.result;
2189
2227
  if (!result) {
2190
2228
  const tip_message = 'There_are_no_statistic_results_yet';
2191
2229
  return callback && callback('', tip_message, null);
2192
2230
  }
2193
- if (_constants.SUPPORT_DATA_SORT_CHART_TYPES.includes(type) && sort_type) {
2194
- _baseUtils.default.sortChartData(result, sort_type);
2231
+ if (SUPPORT_DATA_SORT_CHART_TYPES.includes(type) && sort_type) {
2232
+ BaseUtils.sortChartData(result, sort_type);
2195
2233
  const newStatisticalResult = {
2196
2234
  ...statisticalResult,
2197
2235
  result
2198
2236
  };
2199
2237
  return callback && callback('', '', newStatisticalResult);
2200
2238
  }
2201
- _baseUtils.default.sortCharts(result, groupbyColumn, 'name');
2239
+ BaseUtils.sortCharts(result, groupbyColumn, 'name');
2202
2240
  const newStatisticalResult = {
2203
2241
  ...statisticalResult,
2204
2242
  result
2205
2243
  };
2206
2244
  return callback && callback('', '', newStatisticalResult);
2207
2245
  };
2208
- var _default = exports.default = SQLStatisticsUtils;
2246
+ export default SQLStatisticsUtils;