sea-chart 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/README.md +4 -0
  2. package/lib/assets/icons/area-chart.svg +10 -0
  3. package/lib/assets/icons/bar-chart.svg +12 -0
  4. package/lib/assets/icons/card.svg +22 -0
  5. package/lib/assets/icons/combination-chart.svg +17 -0
  6. package/lib/assets/icons/dtable-logo.svg +16 -0
  7. package/lib/assets/icons/facet-chart.svg +12 -0
  8. package/lib/assets/icons/gauge.svg +18 -0
  9. package/lib/assets/icons/heat-map.svg +14 -0
  10. package/lib/assets/icons/histogram.svg +12 -0
  11. package/lib/assets/icons/line-chart.svg +12 -0
  12. package/lib/assets/icons/map.svg +20 -0
  13. package/lib/assets/icons/pie-chart.svg +11 -0
  14. package/lib/assets/icons/rectangular-tree-diagram.svg +10 -0
  15. package/lib/assets/icons/scatter-chart.svg +15 -0
  16. package/lib/assets/icons/type-change.svg +17 -0
  17. package/lib/assets/img/area-chart.png +0 -0
  18. package/lib/assets/img/area-group-chart.png +0 -0
  19. package/lib/assets/img/bar-group.png +0 -0
  20. package/lib/assets/img/bar-stack.png +0 -0
  21. package/lib/assets/img/bar.png +0 -0
  22. package/lib/assets/img/combination-chart.png +0 -0
  23. package/lib/assets/img/compared-chart.png +0 -0
  24. package/lib/assets/img/completeness-chart.png +0 -0
  25. package/lib/assets/img/custom-bar.png +0 -0
  26. package/lib/assets/img/dashboard-chart.png +0 -0
  27. package/lib/assets/img/group-completeness-chart.png +0 -0
  28. package/lib/assets/img/group_line.png +0 -0
  29. package/lib/assets/img/heat-map.png +0 -0
  30. package/lib/assets/img/horizontal-bar.png +0 -0
  31. package/lib/assets/img/horizontal-group-bar.png +0 -0
  32. package/lib/assets/img/line.png +0 -0
  33. package/lib/assets/img/map-bubble.png +0 -0
  34. package/lib/assets/img/map.png +0 -0
  35. package/lib/assets/img/mirror.png +0 -0
  36. package/lib/assets/img/number-card.png +0 -0
  37. package/lib/assets/img/pie.png +0 -0
  38. package/lib/assets/img/pivot-table.png +0 -0
  39. package/lib/assets/img/ring.png +0 -0
  40. package/lib/assets/img/scatter.png +0 -0
  41. package/lib/assets/img/stacked-horizontal-bar.png +0 -0
  42. package/lib/assets/img/treemap.png +0 -0
  43. package/lib/assets/img/trend-chart.png +0 -0
  44. package/lib/assets/img/world-map-bubble.png +0 -0
  45. package/lib/assets/img/world-map.png +0 -0
  46. package/lib/components/collaborator/index.js +24 -0
  47. package/lib/components/formatter/area.js +162 -0
  48. package/lib/components/formatter/bar-group.js +160 -0
  49. package/lib/components/formatter/bar.js +150 -0
  50. package/lib/components/formatter/basic-number-card.js +138 -0
  51. package/lib/components/formatter/chart-component.js +266 -0
  52. package/lib/components/formatter/combination.js +407 -0
  53. package/lib/components/formatter/dashboard.js +182 -0
  54. package/lib/components/formatter/horizontal-bar-group.js +161 -0
  55. package/lib/components/formatter/horizontal-bar.js +152 -0
  56. package/lib/components/formatter/horizontal-component.js +91 -0
  57. package/lib/components/formatter/index.js +181 -0
  58. package/lib/components/formatter/line-group.js +157 -0
  59. package/lib/components/formatter/line.js +170 -0
  60. package/lib/components/formatter/pie.js +201 -0
  61. package/lib/components/formatter/ring.js +277 -0
  62. package/lib/components/formatter/table/index.css +103 -0
  63. package/lib/components/formatter/table/index.js +42 -0
  64. package/lib/components/formatter/table/one-dimension-table-no-numeric-columns.js +145 -0
  65. package/lib/components/formatter/table/one-dimension-table-with-numeric-columns.js +193 -0
  66. package/lib/components/formatter/table/pivot-table-display-name.js +249 -0
  67. package/lib/components/formatter/table/two-dimension-table.js +241 -0
  68. package/lib/components/formatter/treemap.js +213 -0
  69. package/lib/components/icon/index.css +5 -0
  70. package/lib/components/icon/index.js +22 -0
  71. package/lib/components/index.js +5 -0
  72. package/lib/components/loading/index.css +54 -0
  73. package/lib/components/loading/index.js +10 -0
  74. package/lib/components/number-input/index.js +31 -0
  75. package/lib/components/pixel-editor/index.css +29 -0
  76. package/lib/components/pixel-editor/index.js +42 -0
  77. package/lib/components/select-group/index.css +67 -0
  78. package/lib/components/select-group/index.js +63 -0
  79. package/lib/components/settings/advance-bar-settings/data-settings.js +120 -0
  80. package/lib/components/settings/advance-bar-settings/index.js +3 -0
  81. package/lib/components/settings/advance-bar-settings/style-settings.js +149 -0
  82. package/lib/components/settings/bar-settings/data-settings.js +137 -0
  83. package/lib/components/settings/bar-settings/index.js +3 -0
  84. package/lib/components/settings/bar-settings/style-settings.js +163 -0
  85. package/lib/components/settings/basic-number-card/data-settings.js +121 -0
  86. package/lib/components/settings/basic-number-card/index.js +3 -0
  87. package/lib/components/settings/basic-number-card/style-settings.js +42 -0
  88. package/lib/components/settings/combination-settings/data-settings.js +256 -0
  89. package/lib/components/settings/combination-settings/index.js +3 -0
  90. package/lib/components/settings/combination-settings/style-settings.js +183 -0
  91. package/lib/components/settings/dashboard-settings/data-settings.js +167 -0
  92. package/lib/components/settings/dashboard-settings/index.js +2 -0
  93. package/lib/components/settings/data-settings.js +67 -0
  94. package/lib/components/settings/horizontal-bar-settings/data-settings.js +45 -0
  95. package/lib/components/settings/horizontal-bar-settings/index.js +3 -0
  96. package/lib/components/settings/horizontal-bar-settings/style-settings.js +38 -0
  97. package/lib/components/settings/index.css +73 -0
  98. package/lib/components/settings/index.js +74 -0
  99. package/lib/components/settings/pie-settings/data-settings.js +123 -0
  100. package/lib/components/settings/pie-settings/index.js +3 -0
  101. package/lib/components/settings/pie-settings/style-settings.js +123 -0
  102. package/lib/components/settings/style-settings.js +100 -0
  103. package/lib/components/settings/table-settings/data-settings.js +488 -0
  104. package/lib/components/settings/table-settings/index.js +2 -0
  105. package/lib/components/settings/time-comparison-settings/data-settings.js +157 -0
  106. package/lib/components/settings/time-comparison-settings/index.js +3 -0
  107. package/lib/components/settings/time-comparison-settings/style-settings.js +191 -0
  108. package/lib/components/settings/widgets/basic-summary/index.css +12 -0
  109. package/lib/components/settings/widgets/basic-summary/index.js +173 -0
  110. package/lib/components/settings/widgets/common-data-settings.js +42 -0
  111. package/lib/components/settings/widgets/data-filter/index.css +17 -0
  112. package/lib/components/settings/widgets/data-filter/index.js +76 -0
  113. package/lib/components/settings/widgets/data-sort.js +38 -0
  114. package/lib/components/settings/widgets/date-summary-item.js +126 -0
  115. package/lib/components/settings/widgets/display-values-settings/index.css +13 -0
  116. package/lib/components/settings/widgets/display-values-settings/index.js +37 -0
  117. package/lib/components/settings/widgets/divider/index.css +4 -0
  118. package/lib/components/settings/widgets/divider/index.js +10 -0
  119. package/lib/components/settings/widgets/font-settings/font-size-settings.js +31 -0
  120. package/lib/components/settings/widgets/font-settings/font-weight-settings.js +46 -0
  121. package/lib/components/settings/widgets/font-settings/index.js +3 -0
  122. package/lib/components/settings/widgets/group-by.js +168 -0
  123. package/lib/components/settings/widgets/label-color.js +30 -0
  124. package/lib/components/settings/widgets/min-max-setting.js +64 -0
  125. package/lib/components/settings/widgets/mininum-slice-percent.js +72 -0
  126. package/lib/components/settings/widgets/numeric-summary-item.js +109 -0
  127. package/lib/components/settings/widgets/select-table/index.css +0 -0
  128. package/lib/components/settings/widgets/select-table/index.js +49 -0
  129. package/lib/components/settings/widgets/stack.js +58 -0
  130. package/lib/components/settings/widgets/statistic-type/index.css +31 -0
  131. package/lib/components/settings/widgets/statistic-type/index.js +54 -0
  132. package/lib/components/settings/widgets/summary-method-setting.js +80 -0
  133. package/lib/components/settings/widgets/summary-settings.js +394 -0
  134. package/lib/components/settings/widgets/switch/index.css +37 -0
  135. package/lib/components/settings/widgets/switch/index.js +21 -0
  136. package/lib/components/settings/widgets/text-horizontal-settings.js +23 -0
  137. package/lib/components/settings/widgets/time-picker.js +182 -0
  138. package/lib/components/settings/widgets/title-settings/index.js +58 -0
  139. package/lib/components/settings/widgets/title-settings/title-text.js +31 -0
  140. package/lib/components/settings/widgets/x-axios.js +0 -0
  141. package/lib/components/settings/widgets/y-axis-group-settings.js +399 -0
  142. package/lib/components/types-dialog/index.css +97 -0
  143. package/lib/components/types-dialog/index.js +127 -0
  144. package/lib/constants/geolocation.js +11 -0
  145. package/lib/constants/index.js +164 -0
  146. package/lib/constants/model.js +167 -0
  147. package/lib/constants/style.js +13 -0
  148. package/lib/constants/type-image.js +32 -0
  149. package/lib/constants/type.js +97 -0
  150. package/lib/context.js +49 -0
  151. package/lib/index.js +6 -0
  152. package/lib/intl.js +37 -0
  153. package/lib/layout/index.js +4 -0
  154. package/lib/layout/statistic/index.css +53 -0
  155. package/lib/layout/statistic/index.js +190 -0
  156. package/lib/layout/title/index.css +3 -0
  157. package/lib/layout/title/index.js +41 -0
  158. package/lib/locale/index.js +11 -0
  159. package/lib/locale/lang/de.js +141 -0
  160. package/lib/locale/lang/en.js +143 -0
  161. package/lib/locale/lang/es.js +141 -0
  162. package/lib/locale/lang/fr.js +141 -0
  163. package/lib/locale/lang/pt.js +141 -0
  164. package/lib/locale/lang/ru.js +141 -0
  165. package/lib/locale/lang/zh_CN.js +143 -0
  166. package/lib/model/area-group.js +51 -0
  167. package/lib/model/area.js +42 -0
  168. package/lib/model/bar-group.js +54 -0
  169. package/lib/model/bar-stack.js +51 -0
  170. package/lib/model/bar.js +48 -0
  171. package/lib/model/base-model.js +11 -0
  172. package/lib/model/basic-number-card.js +32 -0
  173. package/lib/model/combination.js +48 -0
  174. package/lib/model/compare-bar.js +49 -0
  175. package/lib/model/completeness-group.js +34 -0
  176. package/lib/model/completeness.js +28 -0
  177. package/lib/model/dashboard.js +26 -0
  178. package/lib/model/generic-model.js +235 -0
  179. package/lib/model/heat-map.js +33 -0
  180. package/lib/model/horizontal-bar.js +48 -0
  181. package/lib/model/horizontal-group-bar.js +53 -0
  182. package/lib/model/index.js +36 -0
  183. package/lib/model/line-group.js +54 -0
  184. package/lib/model/line.js +48 -0
  185. package/lib/model/map-bubble.js +37 -0
  186. package/lib/model/map.js +37 -0
  187. package/lib/model/mirror.js +36 -0
  188. package/lib/model/pie.js +36 -0
  189. package/lib/model/ring.js +36 -0
  190. package/lib/model/scatter.js +29 -0
  191. package/lib/model/stacked-horizontal-bar.js +42 -0
  192. package/lib/model/statistic.js +22 -0
  193. package/lib/model/table.js +33 -0
  194. package/lib/model/tree-map.js +30 -0
  195. package/lib/model/trend.js +34 -0
  196. package/lib/model/user.js +22 -0
  197. package/lib/model/world-map-bubble.js +36 -0
  198. package/lib/model/world-map.js +36 -0
  199. package/lib/utils/cell-format-utils.js +41 -0
  200. package/lib/utils/chart.js +6 -0
  201. package/lib/utils/collaborator-utils.js +40 -0
  202. package/lib/utils/column-utils.js +247 -0
  203. package/lib/utils/custom-g2.js +612 -0
  204. package/lib/utils/data-filter/filter-item-utils.js +80 -0
  205. package/lib/utils/data-filter/filters-utils.js +406 -0
  206. package/lib/utils/data-filter/index.js +3 -0
  207. package/lib/utils/date-translate.js +66 -0
  208. package/lib/utils/index.js +50 -0
  209. package/lib/utils/key-generator.js +13 -0
  210. package/lib/utils/object-utils.js +61 -0
  211. package/lib/utils/options-utils.js +61 -0
  212. package/lib/utils/statistic-column-2-sql-column-utils.js +499 -0
  213. package/lib/utils/statistic-utils.js +1685 -0
  214. package/package.json +160 -0
@@ -0,0 +1,499 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
+ import { CellType, getTableColumnByKey } from 'dtable-utils';
3
+ import { STATISTIC_SUMMARY_TYPE, STATISTIC_TYPE, DTABLE_DB_SUMMARY_METHOD } from '../constants';
4
+ import StatisticsUtils from './statistic-utils';
5
+ var column2SqlColumn = function column2SqlColumn(column) {
6
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
7
+ dateGranularity = _ref.dateGranularity,
8
+ geolocationGranularity = _ref.geolocationGranularity;
9
+ var name = column.name,
10
+ type = column.type,
11
+ key = column.key;
12
+ var validColumnName = "`".concat(name, "`");
13
+ switch (type) {
14
+ case CellType.DATE:
15
+ case CellType.MTIME:
16
+ case CellType.CTIME:
17
+ {
18
+ var validDateGranularity = dateGranularity && dateGranularity.toUpperCase();
19
+ if (validDateGranularity === 'DAY') {
20
+ var _sqlColumnName = "ISODATE(".concat(validColumnName, ")");
21
+ return {
22
+ name: _sqlColumnName,
23
+ key: _sqlColumnName
24
+ };
25
+ }
26
+ if (validDateGranularity === 'WEEK') {
27
+ var _sqlColumnName2 = "ISODATE(STARTOFWEEK(".concat(validColumnName, ", \"monday\"))");
28
+ return {
29
+ name: _sqlColumnName2,
30
+ key: _sqlColumnName2
31
+ };
32
+ }
33
+ if (validDateGranularity === 'MONTH') {
34
+ var _sqlColumnName3 = "ISOMONTH(".concat(validColumnName, ")");
35
+ return {
36
+ name: _sqlColumnName3,
37
+ key: _sqlColumnName3
38
+ };
39
+ }
40
+ if (validDateGranularity === 'QUARTER') {
41
+ var _sqlColumnName4 = "CONCATENATE(year(".concat(validColumnName, "), \"-Q\", quarter(").concat(validColumnName, "))");
42
+ return {
43
+ name: _sqlColumnName4,
44
+ key: _sqlColumnName4
45
+ };
46
+ }
47
+ if (validDateGranularity === 'YEAR') {
48
+ var _sqlColumnName5 = "YEAR(".concat(validColumnName, ")");
49
+ return {
50
+ name: _sqlColumnName5,
51
+ key: _sqlColumnName5
52
+ };
53
+ }
54
+ if (validDateGranularity === 'MAX' || validDateGranularity === 'MIN') {
55
+ var _sqlColumnName6 = "".concat(validDateGranularity, "(").concat(validColumnName, ")");
56
+ return {
57
+ name: _sqlColumnName6,
58
+ key: _sqlColumnName6
59
+ };
60
+ }
61
+ var sqlColumnName = "ISOMONTH(".concat(validColumnName, ")");
62
+ return {
63
+ name: sqlColumnName,
64
+ key: sqlColumnName
65
+ };
66
+ }
67
+ case CellType.GEOLOCATION:
68
+ {
69
+ var validGeolocationGranularity = geolocationGranularity && geolocationGranularity.toUpperCase();
70
+ if (validGeolocationGranularity === 'PROVINCE') {
71
+ var _sqlColumnName7 = "PROVINCE(".concat(validColumnName, ")");
72
+ return {
73
+ name: _sqlColumnName7,
74
+ key: _sqlColumnName7
75
+ };
76
+ }
77
+ if (validGeolocationGranularity === 'CITY') {
78
+ var _sqlColumnName8 = "CITY(".concat(validColumnName, ")");
79
+ return {
80
+ name: _sqlColumnName8,
81
+ key: _sqlColumnName8
82
+ };
83
+ }
84
+ if (validGeolocationGranularity === 'DISTRICT') {
85
+ var _sqlColumnName9 = "DISTRICT(".concat(validColumnName, ")");
86
+ return {
87
+ name: _sqlColumnName9,
88
+ key: _sqlColumnName9
89
+ };
90
+ }
91
+ return {
92
+ name: validColumnName,
93
+ key: key
94
+ };
95
+ }
96
+ default:
97
+ {
98
+ return {
99
+ name: validColumnName,
100
+ key: key
101
+ };
102
+ }
103
+ }
104
+ };
105
+ export var summaryMethodColumn2SqlColumn = function summaryMethodColumn2SqlColumn(summaryMethod) {
106
+ var column = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
107
+ var columnName = column.name || '';
108
+ if (summaryMethod === DTABLE_DB_SUMMARY_METHOD.DISTINCT_VALUES) {
109
+ return {
110
+ name: "".concat(DTABLE_DB_SUMMARY_METHOD.COUNT, "(DISTINCT ").concat(columnName, ")"),
111
+ key: "".concat(DTABLE_DB_SUMMARY_METHOD.COUNT, "(DISTINCT ").concat(columnName, ")")
112
+ };
113
+ }
114
+ return {
115
+ name: "".concat(DTABLE_DB_SUMMARY_METHOD[summaryMethod], "(`").concat(columnName, "`)"),
116
+ key: "".concat(DTABLE_DB_SUMMARY_METHOD[summaryMethod], "(").concat(columnName, ")")
117
+ };
118
+ };
119
+ var oneDimensionStatisticTableColumn2sqlColumn = function oneDimensionStatisticTableColumn2sqlColumn(statistic, table) {
120
+ var groupby_column_key = statistic.groupby_column_key,
121
+ summary_type = statistic.summary_type,
122
+ summary_column_key = statistic.summary_column_key,
123
+ groupby_date_granularity = statistic.groupby_date_granularity,
124
+ groupby_geolocation_granularity = statistic.groupby_geolocation_granularity,
125
+ summary_method = statistic.summary_method,
126
+ summary_columns = statistic.summary_columns;
127
+ if (!summary_method) return {};
128
+ var groupbyColumn = getTableColumnByKey(table, groupby_column_key);
129
+ if (!groupbyColumn) return {};
130
+ var _column2SqlColumn = column2SqlColumn(groupbyColumn, {
131
+ dateGranularity: groupby_date_granularity,
132
+ geolocationGranularity: groupby_geolocation_granularity
133
+ }),
134
+ sqlGroupbyColumnKey = _column2SqlColumn.key;
135
+ if (summary_type === STATISTIC_SUMMARY_TYPE.COUNT) {
136
+ var _summaryMethodColumn = summaryMethodColumn2SqlColumn('COUNT', groupbyColumn),
137
+ sqlSummaryColumnKey = _summaryMethodColumn.key;
138
+ return {
139
+ sqlGroupbyColumnKey: sqlGroupbyColumnKey,
140
+ sqlSummaryColumnKey: sqlSummaryColumnKey
141
+ };
142
+ }
143
+ var summarySQLColumnName2ColumnKey = {};
144
+ var summaryTableColumnKey2Column = {};
145
+ var summaryTableColumnKey2Method = {};
146
+ var numericColumns = [{
147
+ column_key: summary_column_key,
148
+ summary_method: summary_method
149
+ }].concat(_toConsumableArray(summary_columns));
150
+ numericColumns.forEach(function (item) {
151
+ var column_key = item.column_key,
152
+ item_summary_method = item.summary_method;
153
+ var summaryMethod = item_summary_method.toUpperCase();
154
+ var column = getTableColumnByKey(table, column_key);
155
+ if (column && (StatisticsUtils.isDateSummaryColumn(column) || StatisticsUtils.isNumericSummaryColumn(column))) {
156
+ var _summaryMethodColumn2 = summaryMethodColumn2SqlColumn(summaryMethod, column),
157
+ sqlNumericColumnKey = _summaryMethodColumn2.key;
158
+ var summaryColumnKey = column.key;
159
+ summarySQLColumnName2ColumnKey[sqlNumericColumnKey] = summaryColumnKey;
160
+ summaryTableColumnKey2Column[summaryColumnKey] = column;
161
+ summaryTableColumnKey2Method[summaryColumnKey] = summaryMethod;
162
+ }
163
+ });
164
+ return {
165
+ sqlGroupbyColumnKey: sqlGroupbyColumnKey,
166
+ summarySQLColumnName2ColumnKey: summarySQLColumnName2ColumnKey,
167
+ summaryTableColumnKey2Column: summaryTableColumnKey2Column,
168
+ summaryTableColumnKey2Method: summaryTableColumnKey2Method
169
+ };
170
+ };
171
+ var twoDimensionStatisticTableColumn2sqlColumn = function twoDimensionStatisticTableColumn2sqlColumn(statistic, table) {
172
+ var groupby_column_key = statistic.groupby_column_key,
173
+ column_groupby_column_key = statistic.column_groupby_column_key,
174
+ summary_type = statistic.summary_type,
175
+ summary_column_key = statistic.summary_column_key,
176
+ groupby_date_granularity = statistic.groupby_date_granularity,
177
+ groupby_geolocation_granularity = statistic.groupby_geolocation_granularity,
178
+ column_groupby_date_granularity = statistic.column_groupby_date_granularity,
179
+ column_groupby_geolocation_granularity = statistic.column_groupby_geolocation_granularity,
180
+ summary_method = statistic.summary_method;
181
+ var columnGroupbyColumn = getTableColumnByKey(table, column_groupby_column_key);
182
+ if (!columnGroupbyColumn) return oneDimensionStatisticTableColumn2sqlColumn(statistic, table);
183
+ var groupbyColumn = getTableColumnByKey(table, groupby_column_key);
184
+ if (!groupbyColumn) return {};
185
+ var _column2SqlColumn2 = column2SqlColumn(groupbyColumn, {
186
+ dateGranularity: groupby_date_granularity,
187
+ geolocationGranularity: groupby_geolocation_granularity
188
+ }),
189
+ sqlGroupbyColumnKey = _column2SqlColumn2.key;
190
+ var _column2SqlColumn3 = column2SqlColumn(columnGroupbyColumn, {
191
+ dateGranularity: column_groupby_date_granularity,
192
+ geolocationGranularity: column_groupby_geolocation_granularity
193
+ }),
194
+ sqlColumnGroupbyColumnKey = _column2SqlColumn3.key;
195
+ var sqlSummaryColumnKey;
196
+ if (summary_type === STATISTIC_SUMMARY_TYPE.COUNT) {
197
+ var _summaryMethodColumn3 = summaryMethodColumn2SqlColumn('COUNT', groupbyColumn),
198
+ key = _summaryMethodColumn3.key;
199
+ sqlSummaryColumnKey = key;
200
+ } else {
201
+ if (!summary_method) return {};
202
+ var summaryMethod = (summary_method || '').toUpperCase();
203
+ var summaryColumn = getTableColumnByKey(table, summary_column_key) || {};
204
+ var _summaryMethodColumn4 = summaryMethodColumn2SqlColumn(summaryMethod, summaryColumn),
205
+ _key = _summaryMethodColumn4.key;
206
+ sqlSummaryColumnKey = _key;
207
+ }
208
+ return {
209
+ sqlGroupbyColumnKey: sqlGroupbyColumnKey,
210
+ sqlColumnGroupbyColumnKey: sqlColumnGroupbyColumnKey,
211
+ sqlSummaryColumnKey: sqlSummaryColumnKey
212
+ };
213
+ };
214
+ var pieChartStatisticColumn2sqlColumn = function pieChartStatisticColumn2sqlColumn(statistic, table) {
215
+ var groupby_column_key = statistic.groupby_column_key,
216
+ summary_type = statistic.summary_type,
217
+ summary_method = statistic.summary_method,
218
+ summary_column_key = statistic.summary_column_key,
219
+ groupby_date_granularity = statistic.groupby_date_granularity,
220
+ groupby_geolocation_granularity = statistic.groupby_geolocation_granularity;
221
+ if (!groupby_column_key) return {};
222
+ var groupbyColumn = getTableColumnByKey(table, groupby_column_key);
223
+ if (!groupbyColumn) return {};
224
+ var _column2SqlColumn4 = column2SqlColumn(groupbyColumn, {
225
+ dateGranularity: groupby_date_granularity,
226
+ geolocationGranularity: groupby_geolocation_granularity
227
+ }),
228
+ sqlGroupbyColumnKey = _column2SqlColumn4.key;
229
+ var sqlSummaryColumnKey;
230
+ if (summary_type === STATISTIC_SUMMARY_TYPE.COUNT) {
231
+ var _summaryMethodColumn5 = summaryMethodColumn2SqlColumn('COUNT', groupbyColumn),
232
+ key = _summaryMethodColumn5.key;
233
+ sqlSummaryColumnKey = key;
234
+ } else {
235
+ if (!summary_method) return {};
236
+ var summaryMethod = summary_method.toUpperCase();
237
+ var summaryColumn = getTableColumnByKey(table, summary_column_key) || {};
238
+ if (summaryColumn) {
239
+ var _summaryMethodColumn6 = summaryMethodColumn2SqlColumn(summaryMethod, summaryColumn),
240
+ _key2 = _summaryMethodColumn6.key;
241
+ sqlSummaryColumnKey = _key2;
242
+ }
243
+ }
244
+ return {
245
+ sqlGroupbyColumnKey: sqlGroupbyColumnKey,
246
+ sqlSummaryColumnKey: sqlSummaryColumnKey
247
+ };
248
+ };
249
+ var basicChartStatisticColumn2sqlColumn = function basicChartStatisticColumn2sqlColumn(statistic, table) {
250
+ var x_axis_column_key = statistic.x_axis_column_key,
251
+ y_axis_summary_type = statistic.y_axis_summary_type,
252
+ y_axis_summary_method = statistic.y_axis_summary_method,
253
+ y_axis_summary_column_key = statistic.y_axis_summary_column_key,
254
+ x_axis_date_granularity = statistic.x_axis_date_granularity,
255
+ x_axis_geolocation_granularity = statistic.x_axis_geolocation_granularity;
256
+ var groupbyColumn = getTableColumnByKey(table, x_axis_column_key);
257
+ if (!groupbyColumn) return {};
258
+ var _column2SqlColumn5 = column2SqlColumn(groupbyColumn, {
259
+ dateGranularity: x_axis_date_granularity,
260
+ geolocationGranularity: x_axis_geolocation_granularity
261
+ }),
262
+ sqlGroupbyColumnKey = _column2SqlColumn5.key;
263
+ var summaryMethod = y_axis_summary_method && y_axis_summary_method.toUpperCase();
264
+ var sqlSummaryColumnKey;
265
+ if (y_axis_summary_type === STATISTIC_SUMMARY_TYPE.COUNT) {
266
+ var _summaryMethodColumn7 = summaryMethodColumn2SqlColumn('COUNT', groupbyColumn),
267
+ key = _summaryMethodColumn7.key;
268
+ sqlSummaryColumnKey = key;
269
+ } else {
270
+ var summaryColumn = getTableColumnByKey(table, y_axis_summary_column_key);
271
+ if (summaryColumn) {
272
+ var _summaryMethodColumn8 = summaryMethodColumn2SqlColumn(summaryMethod, summaryColumn),
273
+ _key3 = _summaryMethodColumn8.key;
274
+ sqlSummaryColumnKey = _key3;
275
+ }
276
+ }
277
+ return {
278
+ sqlGroupbyColumnKey: sqlGroupbyColumnKey,
279
+ sqlSummaryColumnKey: sqlSummaryColumnKey
280
+ };
281
+ };
282
+ var combinationChartStatisticColumn2sqlColumn = function combinationChartStatisticColumn2sqlColumn(statistic, table) {
283
+ var x_axis_column_key = statistic.x_axis_column_key,
284
+ x_axis_date_granularity = statistic.x_axis_date_granularity,
285
+ x_axis_geolocation_granularity = statistic.x_axis_geolocation_granularity,
286
+ y_axis_left_group_by_multiple_numeric_column = statistic.y_axis_left_group_by_multiple_numeric_column,
287
+ y_axis_left_summary_type = statistic.y_axis_left_summary_type,
288
+ y_axis_left_summary_column = statistic.y_axis_left_summary_column,
289
+ y_axis_left_summary_method = statistic.y_axis_left_summary_method,
290
+ y_axis_right_summary_type = statistic.y_axis_right_summary_type,
291
+ y_axis_right_summary_column = statistic.y_axis_right_summary_column,
292
+ y_axis_right_summary_method = statistic.y_axis_right_summary_method,
293
+ y_axis_left_group_by_numeric_columns = statistic.y_axis_left_group_by_numeric_columns;
294
+ var groupbyColumn = getTableColumnByKey(table, x_axis_column_key);
295
+ if (!groupbyColumn) return {};
296
+ var _column2SqlColumn6 = column2SqlColumn(groupbyColumn, {
297
+ dateGranularity: x_axis_date_granularity,
298
+ geolocationGranularity: x_axis_geolocation_granularity
299
+ }),
300
+ sqlGroupbyColumnKey = _column2SqlColumn6.key;
301
+ var summaryLeftMethod = y_axis_left_summary_method && y_axis_left_summary_method.toUpperCase();
302
+ var summaryRightMethod = y_axis_right_summary_method && y_axis_right_summary_method.toUpperCase();
303
+ var sqlLeftSummaryColumnKey, sqlRightSummaryColumnKey;
304
+ if (y_axis_right_summary_type === STATISTIC_SUMMARY_TYPE.COUNT) {
305
+ var _summaryMethodColumn9 = summaryMethodColumn2SqlColumn('COUNT', groupbyColumn),
306
+ key = _summaryMethodColumn9.key;
307
+ sqlRightSummaryColumnKey = key;
308
+ } else {
309
+ var summaryColumn = getTableColumnByKey(table, y_axis_right_summary_column);
310
+ if (summaryColumn) {
311
+ var _summaryMethodColumn10 = summaryMethodColumn2SqlColumn(summaryRightMethod, summaryColumn),
312
+ _key4 = _summaryMethodColumn10.key;
313
+ sqlRightSummaryColumnKey = _key4;
314
+ }
315
+ }
316
+ if (y_axis_left_summary_type === STATISTIC_SUMMARY_TYPE.COUNT) {
317
+ var _summaryMethodColumn11 = summaryMethodColumn2SqlColumn('COUNT', groupbyColumn),
318
+ _key5 = _summaryMethodColumn11.key;
319
+ sqlLeftSummaryColumnKey = _key5;
320
+ return {
321
+ sqlGroupbyColumnKey: sqlGroupbyColumnKey,
322
+ sqlRightSummaryColumnKey: sqlRightSummaryColumnKey,
323
+ sqlLeftSummaryColumnKey: sqlLeftSummaryColumnKey
324
+ };
325
+ }
326
+ if (y_axis_left_group_by_multiple_numeric_column) {
327
+ var columnGroupbyNumericColumns = [{
328
+ column_key: y_axis_left_summary_column,
329
+ summary_method: y_axis_left_summary_method
330
+ }].concat(_toConsumableArray(y_axis_left_group_by_numeric_columns));
331
+ var summaryColumns = {};
332
+ columnGroupbyNumericColumns.forEach(function (summaryColumnOption) {
333
+ var column_key = summaryColumnOption.column_key,
334
+ _summaryColumnOption$ = summaryColumnOption.summary_method,
335
+ summary_method = _summaryColumnOption$ === void 0 ? 'Sum' : _summaryColumnOption$;
336
+ var column = getTableColumnByKey(table, column_key);
337
+ if (column) {
338
+ var summaryMethod = summary_method.toUpperCase();
339
+ var _summaryMethodColumn12 = summaryMethodColumn2SqlColumn(summaryMethod, column),
340
+ sqlSummaryColumnName = _summaryMethodColumn12.name,
341
+ sqlSummaryColumnKey = _summaryMethodColumn12.key;
342
+ summaryColumns[sqlSummaryColumnName] = {
343
+ sqlSummaryColumnKey: sqlSummaryColumnKey,
344
+ columnName: column.name
345
+ };
346
+ }
347
+ });
348
+ return {
349
+ sqlGroupbyColumnKey: sqlGroupbyColumnKey,
350
+ summaryColumns: summaryColumns,
351
+ sqlRightSummaryColumnKey: sqlRightSummaryColumnKey,
352
+ sqlLeftSummaryColumnKey: sqlLeftSummaryColumnKey
353
+ };
354
+ }
355
+ var summaryLeftColumn = getTableColumnByKey(table, y_axis_left_summary_column);
356
+ if (summaryLeftColumn) {
357
+ var _summaryMethodColumn13 = summaryMethodColumn2SqlColumn(summaryLeftMethod, summaryLeftColumn),
358
+ _key6 = _summaryMethodColumn13.key;
359
+ sqlLeftSummaryColumnKey = _key6;
360
+ }
361
+ return {
362
+ sqlGroupbyColumnKey: sqlGroupbyColumnKey,
363
+ sqlRightSummaryColumnKey: sqlRightSummaryColumnKey,
364
+ sqlLeftSummaryColumnKey: sqlLeftSummaryColumnKey
365
+ };
366
+ };
367
+ var groupingChartStatisticColumn2sqlColumn = function groupingChartStatisticColumn2sqlColumn(statistic, table) {
368
+ var x_axis_column_key = statistic.x_axis_column_key,
369
+ y_axis_summary_type = statistic.y_axis_summary_type,
370
+ y_axis_summary_method = statistic.y_axis_summary_method,
371
+ y_axis_summary_column_key = statistic.y_axis_summary_column_key,
372
+ x_axis_date_granularity = statistic.x_axis_date_granularity,
373
+ x_axis_geolocation_granularity = statistic.x_axis_geolocation_granularity,
374
+ column_groupby_column_key = statistic.column_groupby_column_key,
375
+ column_groupby_date_granularity = statistic.column_groupby_date_granularity,
376
+ column_groupby_geolocation_granularity = statistic.column_groupby_geolocation_granularity,
377
+ column_groupby_multiple_numeric_column = statistic.column_groupby_multiple_numeric_column,
378
+ _statistic$summary_co = statistic.summary_columns,
379
+ summary_columns = _statistic$summary_co === void 0 ? [] : _statistic$summary_co;
380
+ var groupbyColumn = getTableColumnByKey(table, x_axis_column_key);
381
+ if (!groupbyColumn) return {};
382
+ var _column2SqlColumn7 = column2SqlColumn(groupbyColumn, {
383
+ dateGranularity: x_axis_date_granularity,
384
+ geolocationGranularity: x_axis_geolocation_granularity
385
+ }),
386
+ sqlGroupbyColumnKey = _column2SqlColumn7.key;
387
+ if (y_axis_summary_type === STATISTIC_SUMMARY_TYPE.COUNT) {
388
+ var _columnGroupbyColumn = getTableColumnByKey(table, column_groupby_column_key);
389
+ if (!_columnGroupbyColumn) return basicChartStatisticColumn2sqlColumn(statistic, table);
390
+ var _column2SqlColumn8 = column2SqlColumn(_columnGroupbyColumn, {
391
+ dateGranularity: column_groupby_date_granularity,
392
+ geolocationGranularity: column_groupby_geolocation_granularity
393
+ }),
394
+ _sqlColumnGroupbyColumnKey = _column2SqlColumn8.key;
395
+ var _summaryMethodColumn14 = summaryMethodColumn2SqlColumn('COUNT', groupbyColumn),
396
+ _sqlSummaryColumnKey = _summaryMethodColumn14.key;
397
+ return {
398
+ sqlGroupbyColumnKey: sqlGroupbyColumnKey,
399
+ sqlColumnGroupbyColumnKey: _sqlColumnGroupbyColumnKey,
400
+ sqlSummaryColumnKey: _sqlSummaryColumnKey
401
+ };
402
+ }
403
+ if (column_groupby_multiple_numeric_column) {
404
+ var columnGroupbyNumericColumns = [{
405
+ column_key: y_axis_summary_column_key,
406
+ summary_method: y_axis_summary_method
407
+ }].concat(_toConsumableArray(summary_columns));
408
+ var summaryColumns = {};
409
+ columnGroupbyNumericColumns.forEach(function (summaryColumnOption) {
410
+ var column_key = summaryColumnOption.column_key,
411
+ _summaryColumnOption$2 = summaryColumnOption.summary_method,
412
+ summary_method = _summaryColumnOption$2 === void 0 ? 'Sum' : _summaryColumnOption$2;
413
+ var column = getTableColumnByKey(table, column_key);
414
+ if (column) {
415
+ var _summaryMethod = summary_method.toUpperCase();
416
+ var _summaryMethodColumn15 = summaryMethodColumn2SqlColumn(_summaryMethod, column),
417
+ sqlSummaryColumnName = _summaryMethodColumn15.name,
418
+ _sqlSummaryColumnKey2 = _summaryMethodColumn15.key;
419
+ summaryColumns[sqlSummaryColumnName] = {
420
+ sqlSummaryColumnKey: _sqlSummaryColumnKey2,
421
+ columnName: column.name
422
+ };
423
+ }
424
+ });
425
+ return {
426
+ sqlGroupbyColumnKey: sqlGroupbyColumnKey,
427
+ summaryColumns: summaryColumns
428
+ };
429
+ }
430
+ var columnGroupbyColumn = getTableColumnByKey(table, column_groupby_column_key);
431
+ var summaryMethod = y_axis_summary_method && y_axis_summary_method.toUpperCase();
432
+ var summaryColumn = getTableColumnByKey(table, y_axis_summary_column_key);
433
+ var _summaryMethodColumn16 = summaryMethodColumn2SqlColumn(summaryMethod, summaryColumn),
434
+ sqlSummaryColumnKey = _summaryMethodColumn16.key;
435
+ if (!columnGroupbyColumn) {
436
+ return {
437
+ sqlGroupbyColumnKey: sqlGroupbyColumnKey,
438
+ sqlSummaryColumnKey: sqlSummaryColumnKey
439
+ };
440
+ }
441
+ var _column2SqlColumn9 = column2SqlColumn(columnGroupbyColumn, {
442
+ dateGranularity: column_groupby_date_granularity,
443
+ geolocationGranularity: column_groupby_geolocation_granularity
444
+ }),
445
+ sqlColumnGroupbyColumnKey = _column2SqlColumn9.key;
446
+ return {
447
+ sqlGroupbyColumnKey: sqlGroupbyColumnKey,
448
+ sqlColumnGroupbyColumnKey: sqlColumnGroupbyColumnKey,
449
+ sqlSummaryColumnKey: sqlSummaryColumnKey
450
+ };
451
+ };
452
+ var statisticColumn2SqlColumn = function statisticColumn2SqlColumn(statisticELement, table) {
453
+ if (!statisticELement || !table) return {};
454
+ var statistic = statisticELement.config;
455
+ var type = statistic.type;
456
+ switch (type) {
457
+ case STATISTIC_TYPE.TABLE:
458
+ {
459
+ var column_groupby_column_key = statistic.column_groupby_column_key,
460
+ groupby_column_key = statistic.groupby_column_key;
461
+ if (!groupby_column_key) return {};
462
+ if (!column_groupby_column_key) {
463
+ return oneDimensionStatisticTableColumn2sqlColumn(statistic, table);
464
+ }
465
+ return twoDimensionStatisticTableColumn2sqlColumn(statistic, table);
466
+ }
467
+ case STATISTIC_TYPE.COMBINATION:
468
+ {
469
+ return combinationChartStatisticColumn2sqlColumn(statistic, table);
470
+ }
471
+ case STATISTIC_TYPE.PIE:
472
+ case STATISTIC_TYPE.RING:
473
+ case STATISTIC_TYPE.TREE_MAP:
474
+ {
475
+ return pieChartStatisticColumn2sqlColumn(statistic, table);
476
+ }
477
+ case STATISTIC_TYPE.BAR:
478
+ case STATISTIC_TYPE.LINE:
479
+ case STATISTIC_TYPE.HORIZONTAL_BAR:
480
+ case STATISTIC_TYPE.AREA:
481
+ {
482
+ return basicChartStatisticColumn2sqlColumn(statistic, table);
483
+ }
484
+ case STATISTIC_TYPE.BAR_GROUP:
485
+ case STATISTIC_TYPE.LINE_GROUP:
486
+ case STATISTIC_TYPE.HORIZONTAL_GROUP_BAR:
487
+ {
488
+ var _column_groupby_column_key = statistic.column_groupby_column_key,
489
+ column_groupby_multiple_numeric_column = statistic.column_groupby_multiple_numeric_column;
490
+ if (!_column_groupby_column_key && !column_groupby_multiple_numeric_column) {
491
+ return basicChartStatisticColumn2sqlColumn(statistic, table);
492
+ }
493
+ return groupingChartStatisticColumn2sqlColumn(statistic, table);
494
+ }
495
+ default:
496
+ return {};
497
+ }
498
+ };
499
+ export default statisticColumn2SqlColumn;