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.
- package/README.md +4 -0
- package/lib/assets/icons/area-chart.svg +10 -0
- package/lib/assets/icons/bar-chart.svg +12 -0
- package/lib/assets/icons/card.svg +22 -0
- package/lib/assets/icons/combination-chart.svg +17 -0
- package/lib/assets/icons/dtable-logo.svg +16 -0
- package/lib/assets/icons/facet-chart.svg +12 -0
- package/lib/assets/icons/gauge.svg +18 -0
- package/lib/assets/icons/heat-map.svg +14 -0
- package/lib/assets/icons/histogram.svg +12 -0
- package/lib/assets/icons/line-chart.svg +12 -0
- package/lib/assets/icons/map.svg +20 -0
- package/lib/assets/icons/pie-chart.svg +11 -0
- package/lib/assets/icons/rectangular-tree-diagram.svg +10 -0
- package/lib/assets/icons/scatter-chart.svg +15 -0
- package/lib/assets/icons/type-change.svg +17 -0
- package/lib/assets/img/area-chart.png +0 -0
- package/lib/assets/img/area-group-chart.png +0 -0
- package/lib/assets/img/bar-group.png +0 -0
- package/lib/assets/img/bar-stack.png +0 -0
- package/lib/assets/img/bar.png +0 -0
- package/lib/assets/img/combination-chart.png +0 -0
- package/lib/assets/img/compared-chart.png +0 -0
- package/lib/assets/img/completeness-chart.png +0 -0
- package/lib/assets/img/custom-bar.png +0 -0
- package/lib/assets/img/dashboard-chart.png +0 -0
- package/lib/assets/img/group-completeness-chart.png +0 -0
- package/lib/assets/img/group_line.png +0 -0
- package/lib/assets/img/heat-map.png +0 -0
- package/lib/assets/img/horizontal-bar.png +0 -0
- package/lib/assets/img/horizontal-group-bar.png +0 -0
- package/lib/assets/img/line.png +0 -0
- package/lib/assets/img/map-bubble.png +0 -0
- package/lib/assets/img/map.png +0 -0
- package/lib/assets/img/mirror.png +0 -0
- package/lib/assets/img/number-card.png +0 -0
- package/lib/assets/img/pie.png +0 -0
- package/lib/assets/img/pivot-table.png +0 -0
- package/lib/assets/img/ring.png +0 -0
- package/lib/assets/img/scatter.png +0 -0
- package/lib/assets/img/stacked-horizontal-bar.png +0 -0
- package/lib/assets/img/treemap.png +0 -0
- package/lib/assets/img/trend-chart.png +0 -0
- package/lib/assets/img/world-map-bubble.png +0 -0
- package/lib/assets/img/world-map.png +0 -0
- package/lib/components/collaborator/index.js +24 -0
- package/lib/components/formatter/area.js +162 -0
- package/lib/components/formatter/bar-group.js +160 -0
- package/lib/components/formatter/bar.js +150 -0
- package/lib/components/formatter/basic-number-card.js +138 -0
- package/lib/components/formatter/chart-component.js +266 -0
- package/lib/components/formatter/combination.js +407 -0
- package/lib/components/formatter/dashboard.js +182 -0
- package/lib/components/formatter/horizontal-bar-group.js +161 -0
- package/lib/components/formatter/horizontal-bar.js +152 -0
- package/lib/components/formatter/horizontal-component.js +91 -0
- package/lib/components/formatter/index.js +181 -0
- package/lib/components/formatter/line-group.js +157 -0
- package/lib/components/formatter/line.js +170 -0
- package/lib/components/formatter/pie.js +201 -0
- package/lib/components/formatter/ring.js +277 -0
- package/lib/components/formatter/table/index.css +103 -0
- package/lib/components/formatter/table/index.js +42 -0
- package/lib/components/formatter/table/one-dimension-table-no-numeric-columns.js +145 -0
- package/lib/components/formatter/table/one-dimension-table-with-numeric-columns.js +193 -0
- package/lib/components/formatter/table/pivot-table-display-name.js +249 -0
- package/lib/components/formatter/table/two-dimension-table.js +241 -0
- package/lib/components/formatter/treemap.js +213 -0
- package/lib/components/icon/index.css +5 -0
- package/lib/components/icon/index.js +22 -0
- package/lib/components/index.js +5 -0
- package/lib/components/loading/index.css +54 -0
- package/lib/components/loading/index.js +10 -0
- package/lib/components/number-input/index.js +31 -0
- package/lib/components/pixel-editor/index.css +29 -0
- package/lib/components/pixel-editor/index.js +42 -0
- package/lib/components/select-group/index.css +67 -0
- package/lib/components/select-group/index.js +63 -0
- package/lib/components/settings/advance-bar-settings/data-settings.js +120 -0
- package/lib/components/settings/advance-bar-settings/index.js +3 -0
- package/lib/components/settings/advance-bar-settings/style-settings.js +149 -0
- package/lib/components/settings/bar-settings/data-settings.js +137 -0
- package/lib/components/settings/bar-settings/index.js +3 -0
- package/lib/components/settings/bar-settings/style-settings.js +163 -0
- package/lib/components/settings/basic-number-card/data-settings.js +121 -0
- package/lib/components/settings/basic-number-card/index.js +3 -0
- package/lib/components/settings/basic-number-card/style-settings.js +42 -0
- package/lib/components/settings/combination-settings/data-settings.js +256 -0
- package/lib/components/settings/combination-settings/index.js +3 -0
- package/lib/components/settings/combination-settings/style-settings.js +183 -0
- package/lib/components/settings/dashboard-settings/data-settings.js +167 -0
- package/lib/components/settings/dashboard-settings/index.js +2 -0
- package/lib/components/settings/data-settings.js +67 -0
- package/lib/components/settings/horizontal-bar-settings/data-settings.js +45 -0
- package/lib/components/settings/horizontal-bar-settings/index.js +3 -0
- package/lib/components/settings/horizontal-bar-settings/style-settings.js +38 -0
- package/lib/components/settings/index.css +73 -0
- package/lib/components/settings/index.js +74 -0
- package/lib/components/settings/pie-settings/data-settings.js +123 -0
- package/lib/components/settings/pie-settings/index.js +3 -0
- package/lib/components/settings/pie-settings/style-settings.js +123 -0
- package/lib/components/settings/style-settings.js +100 -0
- package/lib/components/settings/table-settings/data-settings.js +488 -0
- package/lib/components/settings/table-settings/index.js +2 -0
- package/lib/components/settings/time-comparison-settings/data-settings.js +157 -0
- package/lib/components/settings/time-comparison-settings/index.js +3 -0
- package/lib/components/settings/time-comparison-settings/style-settings.js +191 -0
- package/lib/components/settings/widgets/basic-summary/index.css +12 -0
- package/lib/components/settings/widgets/basic-summary/index.js +173 -0
- package/lib/components/settings/widgets/common-data-settings.js +42 -0
- package/lib/components/settings/widgets/data-filter/index.css +17 -0
- package/lib/components/settings/widgets/data-filter/index.js +76 -0
- package/lib/components/settings/widgets/data-sort.js +38 -0
- package/lib/components/settings/widgets/date-summary-item.js +126 -0
- package/lib/components/settings/widgets/display-values-settings/index.css +13 -0
- package/lib/components/settings/widgets/display-values-settings/index.js +37 -0
- package/lib/components/settings/widgets/divider/index.css +4 -0
- package/lib/components/settings/widgets/divider/index.js +10 -0
- package/lib/components/settings/widgets/font-settings/font-size-settings.js +31 -0
- package/lib/components/settings/widgets/font-settings/font-weight-settings.js +46 -0
- package/lib/components/settings/widgets/font-settings/index.js +3 -0
- package/lib/components/settings/widgets/group-by.js +168 -0
- package/lib/components/settings/widgets/label-color.js +30 -0
- package/lib/components/settings/widgets/min-max-setting.js +64 -0
- package/lib/components/settings/widgets/mininum-slice-percent.js +72 -0
- package/lib/components/settings/widgets/numeric-summary-item.js +109 -0
- package/lib/components/settings/widgets/select-table/index.css +0 -0
- package/lib/components/settings/widgets/select-table/index.js +49 -0
- package/lib/components/settings/widgets/stack.js +58 -0
- package/lib/components/settings/widgets/statistic-type/index.css +31 -0
- package/lib/components/settings/widgets/statistic-type/index.js +54 -0
- package/lib/components/settings/widgets/summary-method-setting.js +80 -0
- package/lib/components/settings/widgets/summary-settings.js +394 -0
- package/lib/components/settings/widgets/switch/index.css +37 -0
- package/lib/components/settings/widgets/switch/index.js +21 -0
- package/lib/components/settings/widgets/text-horizontal-settings.js +23 -0
- package/lib/components/settings/widgets/time-picker.js +182 -0
- package/lib/components/settings/widgets/title-settings/index.js +58 -0
- package/lib/components/settings/widgets/title-settings/title-text.js +31 -0
- package/lib/components/settings/widgets/x-axios.js +0 -0
- package/lib/components/settings/widgets/y-axis-group-settings.js +399 -0
- package/lib/components/types-dialog/index.css +97 -0
- package/lib/components/types-dialog/index.js +127 -0
- package/lib/constants/geolocation.js +11 -0
- package/lib/constants/index.js +164 -0
- package/lib/constants/model.js +167 -0
- package/lib/constants/style.js +13 -0
- package/lib/constants/type-image.js +32 -0
- package/lib/constants/type.js +97 -0
- package/lib/context.js +49 -0
- package/lib/index.js +6 -0
- package/lib/intl.js +37 -0
- package/lib/layout/index.js +4 -0
- package/lib/layout/statistic/index.css +53 -0
- package/lib/layout/statistic/index.js +190 -0
- package/lib/layout/title/index.css +3 -0
- package/lib/layout/title/index.js +41 -0
- package/lib/locale/index.js +11 -0
- package/lib/locale/lang/de.js +141 -0
- package/lib/locale/lang/en.js +143 -0
- package/lib/locale/lang/es.js +141 -0
- package/lib/locale/lang/fr.js +141 -0
- package/lib/locale/lang/pt.js +141 -0
- package/lib/locale/lang/ru.js +141 -0
- package/lib/locale/lang/zh_CN.js +143 -0
- package/lib/model/area-group.js +51 -0
- package/lib/model/area.js +42 -0
- package/lib/model/bar-group.js +54 -0
- package/lib/model/bar-stack.js +51 -0
- package/lib/model/bar.js +48 -0
- package/lib/model/base-model.js +11 -0
- package/lib/model/basic-number-card.js +32 -0
- package/lib/model/combination.js +48 -0
- package/lib/model/compare-bar.js +49 -0
- package/lib/model/completeness-group.js +34 -0
- package/lib/model/completeness.js +28 -0
- package/lib/model/dashboard.js +26 -0
- package/lib/model/generic-model.js +235 -0
- package/lib/model/heat-map.js +33 -0
- package/lib/model/horizontal-bar.js +48 -0
- package/lib/model/horizontal-group-bar.js +53 -0
- package/lib/model/index.js +36 -0
- package/lib/model/line-group.js +54 -0
- package/lib/model/line.js +48 -0
- package/lib/model/map-bubble.js +37 -0
- package/lib/model/map.js +37 -0
- package/lib/model/mirror.js +36 -0
- package/lib/model/pie.js +36 -0
- package/lib/model/ring.js +36 -0
- package/lib/model/scatter.js +29 -0
- package/lib/model/stacked-horizontal-bar.js +42 -0
- package/lib/model/statistic.js +22 -0
- package/lib/model/table.js +33 -0
- package/lib/model/tree-map.js +30 -0
- package/lib/model/trend.js +34 -0
- package/lib/model/user.js +22 -0
- package/lib/model/world-map-bubble.js +36 -0
- package/lib/model/world-map.js +36 -0
- package/lib/utils/cell-format-utils.js +41 -0
- package/lib/utils/chart.js +6 -0
- package/lib/utils/collaborator-utils.js +40 -0
- package/lib/utils/column-utils.js +247 -0
- package/lib/utils/custom-g2.js +612 -0
- package/lib/utils/data-filter/filter-item-utils.js +80 -0
- package/lib/utils/data-filter/filters-utils.js +406 -0
- package/lib/utils/data-filter/index.js +3 -0
- package/lib/utils/date-translate.js +66 -0
- package/lib/utils/index.js +50 -0
- package/lib/utils/key-generator.js +13 -0
- package/lib/utils/object-utils.js +61 -0
- package/lib/utils/options-utils.js +61 -0
- package/lib/utils/statistic-column-2-sql-column-utils.js +499 -0
- package/lib/utils/statistic-utils.js +1685 -0
- 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;
|