dtable-statistic 4.3.6 → 4.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/calculator/base-calculator.js +16 -5
- package/es/calculator/basic-chart-calculator.js +17 -31
- package/es/calculator/combination-calculator.js +20 -34
- package/es/calculator/compare-bar-calculator.js +9 -20
- package/es/calculator/completeness-calculator.js +10 -24
- package/es/calculator/dashboard-calculator.js +6 -20
- package/es/calculator/heat-map-calculator.js +6 -20
- package/es/calculator/horizontal-bar-calculator.js +2 -13
- package/es/calculator/index.js +2 -0
- package/es/calculator/map-calculator.js +7 -21
- package/es/calculator/mirror-calculator.js +8 -22
- package/es/calculator/number-card-calculator.js +4 -18
- package/es/calculator/pivot-table-calculator.js +40 -54
- package/es/calculator/scatter-calculator.js +6 -20
- package/es/calculator/thread-manager.js +41 -41
- package/es/calculator/trend-calculator.js +6 -20
- package/es/calculator/workers/basic-chart-calculator-worker.js +77 -45
- package/es/calculator/workers/calculator.worker.js +5 -2
- package/es/calculator/workers/card-calculator-worker.js +13 -9
- package/es/calculator/workers/combination-calculator-worker.js +20 -16
- package/es/calculator/workers/compare-bar-chart-calculator-worker.js +12 -8
- package/es/calculator/workers/completeness-calculator-worker.js +21 -17
- package/es/calculator/workers/dashboard-calculator-worker.js +16 -12
- package/es/calculator/workers/mirror-calculator-worker.js +14 -10
- package/es/calculator/workers/pivot-table-calculator-worker.js +53 -35
- package/es/calculator/workers/scatter-calculator-worker.js +15 -11
- package/es/calculator/workers/trend-calculator-worker.js +14 -10
- package/es/calculator/world-map-calculator.js +6 -20
- package/es/components/dialog/chart-addition-edit-dialog.js +1 -1
- package/es/components/dialog/chart-addition-widgets/chart-selector.js +1 -1
- package/es/components/dialog/statistic-record-dialog/index.js +21 -11
- package/es/components/dropdown-menu/statistic-dropdown-menu.js +1 -1
- package/es/components/popover/color-rules/rule-filters/number-input.js +5 -5
- package/es/components/popover/color-rules-popover.js +2 -2
- package/es/components/select/select.js +3 -3
- package/es/components/toast/alert.js +2 -0
- package/es/components/toast/toastManager.js +1 -0
- package/es/constants/color-rules.js +3 -3
- package/es/constants/index.js +9 -9
- package/es/dashboard.js +7 -13
- package/es/desktop-dashboard.js +1 -1
- package/es/locale/lang/de.js +10 -10
- package/es/locale/lang/en.js +8 -8
- package/es/locale/lang/fr.js +10 -10
- package/es/locale/lang/zh_CN.js +8 -8
- package/es/model/basic-number-card.js +3 -3
- package/es/model/compare-bar.js +2 -2
- package/es/model/generic-model.js +11 -11
- package/es/model/heat-map.js +2 -2
- package/es/model/horizontal-bar.js +2 -2
- package/es/model/index.js +3 -2
- package/es/model/map.js +3 -3
- package/es/model/mirror.js +2 -2
- package/es/model/trend.js +2 -2
- package/es/model/world-map.js +3 -3
- package/es/stat-editor/stat-settings/advance-chart-settings/combination-settings.js +7 -7
- package/es/stat-editor/stat-settings/advance-chart-settings/index.js +2 -2
- package/es/stat-editor/stat-settings/advance-chart-settings/style-setting/combination-style-setting.js +2 -2
- package/es/stat-editor/stat-settings/advance-chart-settings/summary-settings.js +1 -1
- package/es/stat-editor/stat-settings/basic-chart-settings/bar-settings.js +1 -1
- package/es/stat-editor/stat-settings/basic-chart-settings/completeness-chart-settings.js +7 -7
- package/es/stat-editor/stat-settings/basic-chart-settings/groupby-settings.js +6 -6
- package/es/stat-editor/stat-settings/basic-chart-settings/index.js +4 -4
- package/es/stat-editor/stat-settings/basic-chart-settings/pivot-table-settings.js +5 -5
- package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/bar-chart-style-setting.js +3 -3
- package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/horizontal-bar-chart-style.js +3 -3
- package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/pie-chart-style-settings.js +3 -3
- package/es/stat-editor/stat-settings/basic-chart-settings/summary-method-setting.js +1 -1
- package/es/stat-editor/stat-settings/basic-chart-settings/summary-settings.js +1 -1
- package/es/stat-editor/stat-settings/basic-chart-settings/time-comparison-settings.js +4 -18
- package/es/stat-editor/stat-settings/color-setting/color-picker.js +1 -0
- package/es/stat-editor/stat-settings/public-setting/column-settings.js +1 -1
- package/es/stat-editor/stat-settings/public-setting/numeric-summary-item.js +1 -1
- package/es/stat-view/area-chart.js +4 -4
- package/es/stat-view/bar-chart.js +4 -4
- package/es/stat-view/base-chart.js +2 -2
- package/es/stat-view/basic-number-card.js +49 -49
- package/es/stat-view/combination-chart.js +69 -69
- package/es/stat-view/compare-chart.js +4 -4
- package/es/stat-view/completeness-chart.js +3 -3
- package/es/stat-view/custom-bar.js +2 -2
- package/es/stat-view/dashboard-chart.js +50 -50
- package/es/stat-view/heat-map.js +2 -2
- package/es/stat-view/horizontal-bar-chart.js +4 -4
- package/es/stat-view/line-chart.js +4 -4
- package/es/stat-view/map.js +3 -3
- package/es/stat-view/mirror.js +2 -2
- package/es/stat-view/pivot-table/index.js +6 -6
- package/es/stat-view/pivot-table/one-dimension-table-no-numeric-columns.js +5 -5
- package/es/stat-view/pivot-table/one-dimension-table-with-numeric-columns.js +3 -3
- package/es/stat-view/pivot-table/pivot-table-display-name.js +19 -19
- package/es/stat-view/pivot-table/two-dimension-table.js +7 -7
- package/es/stat-view/ring-chart.js +2 -2
- package/es/stat-view/scatter-chart.js +56 -56
- package/es/stat-view/treemap-chart.js +50 -49
- package/es/stat-view/trend-chart.js +52 -52
- package/es/stat-view/world-map.js +3 -3
- package/es/utils/cell-format.js +16 -16
- package/es/utils/cell-value.js +3 -3
- package/es/utils/color-utils.js +3 -3
- package/es/utils/column-utils.js +10 -10
- package/es/utils/column.js +2 -2
- package/es/utils/common-utils.js +10 -8
- package/es/utils/export-table-utils.js +38 -38
- package/es/utils/object.js +3 -3
- package/es/utils/pivot-table.js +3 -3
- package/es/utils/row-utils.js +17 -17
- package/es/utils/search.js +14 -14
- package/es/utils/sql-utils.js +23 -20
- package/es/utils/stat-utils.js +52 -52
- package/es/utils/trend-utils.js +1 -0
- package/package.json +6 -3
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var
|
|
8
|
+
var _dtableUtils = require("dtable-utils");
|
|
9
9
|
var _baseCalculator = _interopRequireDefault(require("./base-calculator"));
|
|
10
10
|
var _commonUtils = require("../utils/common-utils");
|
|
11
11
|
var _sqlUtils = require("../utils/sql-utils");
|
|
@@ -13,20 +13,6 @@ var _constants = require("../constants");
|
|
|
13
13
|
var _map = require("../utils/map");
|
|
14
14
|
var _statUtils = _interopRequireDefault(require("../utils/stat-utils"));
|
|
15
15
|
class MapCalculator extends _baseCalculator.default {
|
|
16
|
-
constructor(_ref) {
|
|
17
|
-
let {
|
|
18
|
-
value,
|
|
19
|
-
statisticThreadManager,
|
|
20
|
-
username,
|
|
21
|
-
userId
|
|
22
|
-
} = _ref;
|
|
23
|
-
super({
|
|
24
|
-
value,
|
|
25
|
-
statisticThreadManager,
|
|
26
|
-
username,
|
|
27
|
-
userId
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
16
|
isValidChart(chart) {
|
|
31
17
|
if (!this.validateBaseConfigs(chart)) {
|
|
32
18
|
return false;
|
|
@@ -37,11 +23,11 @@ class MapCalculator extends _baseCalculator.default {
|
|
|
37
23
|
summary_column
|
|
38
24
|
} = chart;
|
|
39
25
|
const table = this.getTableById(table_id);
|
|
40
|
-
const selectedColumn = geo_column &&
|
|
41
|
-
if (geo_column && (!selectedColumn || selectedColumn.type !==
|
|
26
|
+
const selectedColumn = geo_column && (0, _dtableUtils.getTableColumnByKey)(table, geo_column);
|
|
27
|
+
if (geo_column && (!selectedColumn || selectedColumn.type !== _dtableUtils.CellType.GEOLOCATION)) {
|
|
42
28
|
return false;
|
|
43
29
|
}
|
|
44
|
-
if (summary_column && !
|
|
30
|
+
if (summary_column && !(0, _dtableUtils.getTableColumnByKey)(table, summary_column)) {
|
|
45
31
|
return false;
|
|
46
32
|
}
|
|
47
33
|
return true;
|
|
@@ -64,19 +50,19 @@ class MapCalculator extends _baseCalculator.default {
|
|
|
64
50
|
} = chart;
|
|
65
51
|
const selectedTable = this.getTableById(table_id);
|
|
66
52
|
const selectedView = this.getViewById(view_id, selectedTable);
|
|
67
|
-
const column =
|
|
53
|
+
const column = (0, _dtableUtils.getTableColumnByKey)(selectedTable, geo_column);
|
|
68
54
|
if (!column) return [];
|
|
69
55
|
const columnName = column.name;
|
|
70
56
|
const isAdvanced = summary_type === 'advanced';
|
|
71
57
|
const geoGranularity = (0, _map.fixMapGeoGranularity)(chart);
|
|
72
58
|
const method = isAdvanced ? _constants.DTABLE_DB_SUMMARY_METHOD[summary_method] : 'COUNT';
|
|
73
|
-
const sqlCondition =
|
|
59
|
+
const sqlCondition = this.filter2SqlCondition(selectedTable, selectedView);
|
|
74
60
|
const groupName = (0, _sqlUtils.getSqlGroup)(geoGranularity, column);
|
|
75
61
|
let sqlString = '';
|
|
76
62
|
let summaryColumn;
|
|
77
63
|
let summaryColumnName = '';
|
|
78
64
|
if (isAdvanced) {
|
|
79
|
-
summaryColumn =
|
|
65
|
+
summaryColumn = (0, _dtableUtils.getTableColumnByKey)(selectedTable, summary_column);
|
|
80
66
|
if (!summaryColumn) {
|
|
81
67
|
return [];
|
|
82
68
|
}
|
|
@@ -5,26 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var
|
|
8
|
+
var _dtableUtils = require("dtable-utils");
|
|
9
9
|
var _baseCalculator = _interopRequireDefault(require("./base-calculator"));
|
|
10
10
|
var _commonUtils = require("../utils/common-utils");
|
|
11
11
|
var _statUtils = _interopRequireDefault(require("../utils/stat-utils"));
|
|
12
12
|
var _constants = require("../constants");
|
|
13
13
|
class MirrorCalculator extends _baseCalculator.default {
|
|
14
|
-
constructor(_ref) {
|
|
15
|
-
let {
|
|
16
|
-
value,
|
|
17
|
-
statisticThreadManager,
|
|
18
|
-
username,
|
|
19
|
-
userId
|
|
20
|
-
} = _ref;
|
|
21
|
-
super({
|
|
22
|
-
value,
|
|
23
|
-
statisticThreadManager,
|
|
24
|
-
username,
|
|
25
|
-
userId
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
14
|
isValidChart(chart) {
|
|
29
15
|
if (!this.validateBaseConfigs(chart)) {
|
|
30
16
|
return false;
|
|
@@ -36,13 +22,13 @@ class MirrorCalculator extends _baseCalculator.default {
|
|
|
36
22
|
group_column
|
|
37
23
|
} = chart;
|
|
38
24
|
const table = this.getTableById(table_id);
|
|
39
|
-
if (!
|
|
25
|
+
if (!(0, _dtableUtils.getTableColumnByKey)(table, column)) {
|
|
40
26
|
return false;
|
|
41
27
|
}
|
|
42
|
-
if (summary_column && !
|
|
28
|
+
if (summary_column && !(0, _dtableUtils.getTableColumnByKey)(table, summary_column)) {
|
|
43
29
|
return false;
|
|
44
30
|
}
|
|
45
|
-
const selectedGroupColumn =
|
|
31
|
+
const selectedGroupColumn = (0, _dtableUtils.getTableColumnByKey)(table, group_column);
|
|
46
32
|
if (!selectedGroupColumn) return false;
|
|
47
33
|
const data = selectedGroupColumn.data || {};
|
|
48
34
|
const options = data.options || [];
|
|
@@ -69,17 +55,17 @@ class MirrorCalculator extends _baseCalculator.default {
|
|
|
69
55
|
const selectedTable = this.getTableById(table_id);
|
|
70
56
|
const selectedView = this.getViewById(view_id, selectedTable);
|
|
71
57
|
let sqlString = '';
|
|
72
|
-
const selectedColumn =
|
|
58
|
+
const selectedColumn = (0, _dtableUtils.getTableColumnByKey)(selectedTable, column);
|
|
73
59
|
const columnName = selectedColumn.name;
|
|
74
|
-
const selectedGroupColumn =
|
|
60
|
+
const selectedGroupColumn = (0, _dtableUtils.getTableColumnByKey)(selectedTable, group_column);
|
|
75
61
|
const groupColumnName = selectedGroupColumn.name;
|
|
76
62
|
const isAdvanced = summary_type === 'advanced';
|
|
77
63
|
const method = isAdvanced ? _constants.DTABLE_DB_SUMMARY_METHOD[summary_method] : 'COUNT';
|
|
78
|
-
const sqlCondition =
|
|
64
|
+
const sqlCondition = this.filter2SqlCondition(selectedTable, selectedView);
|
|
79
65
|
let summaryColumnName = '',
|
|
80
66
|
summaryColumn;
|
|
81
67
|
if (isAdvanced) {
|
|
82
|
-
summaryColumn =
|
|
68
|
+
summaryColumn = (0, _dtableUtils.getTableColumnByKey)(selectedTable, summary_column);
|
|
83
69
|
if (!summaryColumn) {
|
|
84
70
|
return [];
|
|
85
71
|
}
|
|
@@ -5,25 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var
|
|
8
|
+
var _dtableUtils = require("dtable-utils");
|
|
9
9
|
var _constants = require("../constants");
|
|
10
10
|
var _commonUtils = require("../utils/common-utils");
|
|
11
11
|
var _baseCalculator = _interopRequireDefault(require("./base-calculator"));
|
|
12
12
|
class NumberCardCalculator extends _baseCalculator.default {
|
|
13
|
-
constructor(_ref) {
|
|
14
|
-
let {
|
|
15
|
-
value,
|
|
16
|
-
statisticThreadManager,
|
|
17
|
-
username,
|
|
18
|
-
userId
|
|
19
|
-
} = _ref;
|
|
20
|
-
super({
|
|
21
|
-
value,
|
|
22
|
-
statisticThreadManager,
|
|
23
|
-
username,
|
|
24
|
-
userId
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
13
|
isValidChart(chart) {
|
|
28
14
|
if (!this.validateBaseConfigs(chart)) {
|
|
29
15
|
return false;
|
|
@@ -33,7 +19,7 @@ class NumberCardCalculator extends _baseCalculator.default {
|
|
|
33
19
|
numeric_column
|
|
34
20
|
} = chart;
|
|
35
21
|
const table = this.getTableById(table_id);
|
|
36
|
-
if (!
|
|
22
|
+
if (!(0, _dtableUtils.getTableColumnByKey)(table, numeric_column)) {
|
|
37
23
|
return false;
|
|
38
24
|
}
|
|
39
25
|
return true;
|
|
@@ -54,8 +40,8 @@ class NumberCardCalculator extends _baseCalculator.default {
|
|
|
54
40
|
} = chart;
|
|
55
41
|
const selectedTable = this.getTableById(table_id);
|
|
56
42
|
const selectedView = this.getViewById(view_id, selectedTable);
|
|
57
|
-
const selectedColumn =
|
|
58
|
-
const sqlCondition =
|
|
43
|
+
const selectedColumn = (0, _dtableUtils.getTableColumnByKey)(selectedTable, numeric_column);
|
|
44
|
+
const sqlCondition = this.filter2SqlCondition(selectedTable, selectedView);
|
|
59
45
|
const summaryColumnMethod = (0, _commonUtils.getSummaryColumnMethod)(_constants.DTABLE_DB_SUMMARY_METHOD[summary_method], selectedColumn.name);
|
|
60
46
|
const sqlString = "select ".concat(summaryColumnMethod, " from `").concat(selectedTable.name, "` ").concat(sqlCondition, " limit 5000");
|
|
61
47
|
const result = await this.sqlQuery(sqlString);
|
|
@@ -6,27 +6,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
9
|
-
var
|
|
9
|
+
var _dtableUtils = require("dtable-utils");
|
|
10
10
|
var _baseCalculator = _interopRequireDefault(require("./base-calculator"));
|
|
11
11
|
var _constants = require("../constants");
|
|
12
12
|
var _commonUtils = require("../utils/common-utils");
|
|
13
13
|
var _statUtils = _interopRequireDefault(require("../utils/stat-utils"));
|
|
14
14
|
var _rowUtils = require("../utils/row-utils");
|
|
15
15
|
class PivotTableCalculator extends _baseCalculator.default {
|
|
16
|
-
constructor(_ref) {
|
|
17
|
-
let {
|
|
18
|
-
value,
|
|
19
|
-
statisticThreadManager,
|
|
20
|
-
username,
|
|
21
|
-
userId
|
|
22
|
-
} = _ref;
|
|
23
|
-
super({
|
|
24
|
-
value,
|
|
25
|
-
statisticThreadManager,
|
|
26
|
-
username,
|
|
27
|
-
userId
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
16
|
isValidChart(chart) {
|
|
31
17
|
if (!this.validateBaseConfigs(chart)) {
|
|
32
18
|
return false;
|
|
@@ -40,10 +26,10 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
40
26
|
summary_columns_option
|
|
41
27
|
} = chart;
|
|
42
28
|
const table = this.getTableById(table_id);
|
|
43
|
-
if (!groupby_column_key || !
|
|
29
|
+
if (!groupby_column_key || !(0, _dtableUtils.getTableColumnByKey)(table, groupby_column_key)) {
|
|
44
30
|
return false;
|
|
45
31
|
}
|
|
46
|
-
if (column_groupby_column_key && !
|
|
32
|
+
if (column_groupby_column_key && !(0, _dtableUtils.getTableColumnByKey)(table, column_groupby_column_key)) {
|
|
47
33
|
return false;
|
|
48
34
|
}
|
|
49
35
|
if (summary_type === _constants.SUMMARY_TYPE.ADVANCED) {
|
|
@@ -71,9 +57,9 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
71
57
|
} = chart;
|
|
72
58
|
const table = this.getTableById(table_id);
|
|
73
59
|
const view = this.getViewById(view_id, table);
|
|
74
|
-
const groupbyColumn =
|
|
75
|
-
const columnGroupbyColumn =
|
|
76
|
-
const summaryColumn =
|
|
60
|
+
const groupbyColumn = (0, _dtableUtils.getTableColumnByKey)(table, groupby_column_key);
|
|
61
|
+
const columnGroupbyColumn = (0, _dtableUtils.getTableColumnByKey)(table, column_groupby_column_key);
|
|
62
|
+
const summaryColumn = (0, _dtableUtils.getTableColumnByKey)(table, summary_column_key);
|
|
77
63
|
const sqlMap = this.generateSqlFromChart(chart, table, view);
|
|
78
64
|
const columnMap = {
|
|
79
65
|
groupbyColumn,
|
|
@@ -101,7 +87,7 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
101
87
|
groupby_column_key
|
|
102
88
|
} = chart;
|
|
103
89
|
if (!groupby_column_key) return '';
|
|
104
|
-
const condition =
|
|
90
|
+
const condition = this.filter2SqlCondition(table, view);
|
|
105
91
|
if (!column_groupby_column_key) {
|
|
106
92
|
return this.oneDimensionStatisticTable2sql(chart, condition);
|
|
107
93
|
}
|
|
@@ -120,7 +106,7 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
120
106
|
summary_columns_option
|
|
121
107
|
} = chart;
|
|
122
108
|
const table = this.getTableById(table_id);
|
|
123
|
-
const groupbyColumn =
|
|
109
|
+
const groupbyColumn = (0, _dtableUtils.getTableColumnByKey)(table, groupby_column_key);
|
|
124
110
|
if (!groupbyColumn) return '';
|
|
125
111
|
const {
|
|
126
112
|
name: sqlGroupbyColumnName,
|
|
@@ -146,8 +132,8 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
146
132
|
let summaries = [];
|
|
147
133
|
let summaryColumnOptions = [];
|
|
148
134
|
const summaryMethod = summary_method;
|
|
149
|
-
const summaryColumn =
|
|
150
|
-
if (summaryColumn && ((0,
|
|
135
|
+
const summaryColumn = (0, _dtableUtils.getTableColumnByKey)(table, summary_column_key);
|
|
136
|
+
if (summaryColumn && ((0, _dtableUtils.isNumericColumn)(summaryColumn) || (0, _dtableUtils.isDateColumn)(summaryColumn))) {
|
|
151
137
|
const {
|
|
152
138
|
name: sqlSummaryMethodColumnName,
|
|
153
139
|
key: sqlSummaryMethodColumnKey
|
|
@@ -164,9 +150,9 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
164
150
|
key,
|
|
165
151
|
method
|
|
166
152
|
} = option;
|
|
167
|
-
const summaryColumn =
|
|
153
|
+
const summaryColumn = (0, _dtableUtils.getTableColumnByKey)(table, key);
|
|
168
154
|
const summaryMethod = method;
|
|
169
|
-
if (summaryColumn && ((0,
|
|
155
|
+
if (summaryColumn && ((0, _dtableUtils.isNumericColumn)(summaryColumn) || (0, _dtableUtils.isDateColumn)(summaryColumn))) {
|
|
170
156
|
const {
|
|
171
157
|
name: sqlSummaryMethodColumnName,
|
|
172
158
|
key: sqlSummaryMethodColumnKey
|
|
@@ -192,7 +178,7 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
192
178
|
const validStatisticNumericColumnKeys = [...new Set(statisticNumericColumnKeys)];
|
|
193
179
|
let sqlNumericColumns = [];
|
|
194
180
|
let summaries = [];
|
|
195
|
-
validStatisticNumericColumnKeys.map(key =>
|
|
181
|
+
validStatisticNumericColumnKeys.map(key => (0, _dtableUtils.getTableColumnByKey)(table, key)).filter(column => column && ((0, _dtableUtils.isDateColumn)(column) || (0, _dtableUtils.isNumericColumn)(column))).forEach(column => {
|
|
196
182
|
const {
|
|
197
183
|
name: sqlNumericColumn,
|
|
198
184
|
key: sqlNumericColumnKey
|
|
@@ -229,9 +215,9 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
229
215
|
} = chart;
|
|
230
216
|
const table = this.getTableById(table_id);
|
|
231
217
|
let tableName = "`".concat(table.name, "`");
|
|
232
|
-
const columnGroupbyColumn =
|
|
218
|
+
const columnGroupbyColumn = (0, _dtableUtils.getTableColumnByKey)(table, column_groupby_column_key);
|
|
233
219
|
if (!columnGroupbyColumn) return this.oneDimensionStatisticTable2sql(chart, table, tableName, condition);
|
|
234
|
-
const groupbyColumn =
|
|
220
|
+
const groupbyColumn = (0, _dtableUtils.getTableColumnByKey)(table, groupby_column_key);
|
|
235
221
|
if (!groupbyColumn) return '';
|
|
236
222
|
const {
|
|
237
223
|
name: sqlGroupbyColumnName,
|
|
@@ -258,7 +244,7 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
258
244
|
sqlSummaryColumnKey = key;
|
|
259
245
|
} else {
|
|
260
246
|
const summaryMethod = summary_method;
|
|
261
|
-
const summaryColumn =
|
|
247
|
+
const summaryColumn = (0, _dtableUtils.getTableColumnByKey)(table, summary_column_key) || {};
|
|
262
248
|
const {
|
|
263
249
|
name,
|
|
264
250
|
key
|
|
@@ -267,7 +253,7 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
267
253
|
sqlSummaryColumnKey = key;
|
|
268
254
|
if (column_groupby_multiple_numeric_column && column_groupby_column_key) {
|
|
269
255
|
const sqlSummaryMultipleNumericColumnName = Array.isArray(summary_columns_option) ? summary_columns_option.forEach(item => {
|
|
270
|
-
const summaryColumn =
|
|
256
|
+
const summaryColumn = (0, _dtableUtils.getTableColumnByKey)(table, item.key) || {};
|
|
271
257
|
const {
|
|
272
258
|
name
|
|
273
259
|
} = this.summaryMethodColumn2SqlColumn(item.method, summaryColumn);
|
|
@@ -282,9 +268,9 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
282
268
|
key,
|
|
283
269
|
method
|
|
284
270
|
} = option;
|
|
285
|
-
const summaryColumn =
|
|
271
|
+
const summaryColumn = (0, _dtableUtils.getTableColumnByKey)(table, key);
|
|
286
272
|
const summaryMethod = method;
|
|
287
|
-
if (summaryColumn && ((0,
|
|
273
|
+
if (summaryColumn && ((0, _dtableUtils.isNumericColumn)(summaryColumn) || (0, _dtableUtils.isDateColumn)(summaryColumn))) {
|
|
288
274
|
const {
|
|
289
275
|
name: sqlSummaryMethodColumnName
|
|
290
276
|
} = this.summaryMethodColumn2SqlColumn(summaryMethod, summaryColumn);
|
|
@@ -396,9 +382,9 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
396
382
|
summaryColumn,
|
|
397
383
|
summaryMethod
|
|
398
384
|
}, allTotal[totalKey], value);
|
|
399
|
-
if (summaryColumn && (0,
|
|
385
|
+
if (summaryColumn && (0, _dtableUtils.isDateColumn)(summaryColumn)) {
|
|
400
386
|
rowTotal[totalKey] = value;
|
|
401
|
-
} else if (summaryColumn && (0,
|
|
387
|
+
} else if (summaryColumn && (0, _dtableUtils.isNumericColumn)(summaryColumn)) {
|
|
402
388
|
rowTotal[totalKey] = rowTotal[totalKey] + value;
|
|
403
389
|
}
|
|
404
390
|
});
|
|
@@ -500,11 +486,11 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
500
486
|
key,
|
|
501
487
|
method
|
|
502
488
|
} = columnOption;
|
|
503
|
-
const column =
|
|
489
|
+
const column = (0, _dtableUtils.getTableColumnByKey)(selectedTable, columnOption.key);
|
|
504
490
|
const {
|
|
505
491
|
name
|
|
506
492
|
} = this.summaryMethodColumn2SqlColumn(columnOption.method, column, true);
|
|
507
|
-
if (column && (0,
|
|
493
|
+
if (column && (0, _dtableUtils.isNumericColumn)(column)) {
|
|
508
494
|
pivot_summary_multiple_columns.push({
|
|
509
495
|
key,
|
|
510
496
|
method,
|
|
@@ -535,9 +521,9 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
535
521
|
} = column;
|
|
536
522
|
const validColumnName = "`".concat(name, "`");
|
|
537
523
|
switch (type) {
|
|
538
|
-
case
|
|
539
|
-
case
|
|
540
|
-
case
|
|
524
|
+
case _dtableUtils.CellType.DATE:
|
|
525
|
+
case _dtableUtils.CellType.MTIME:
|
|
526
|
+
case _dtableUtils.CellType.CTIME:
|
|
541
527
|
{
|
|
542
528
|
const validDateGranularity = dateGranularity && dateGranularity.toUpperCase();
|
|
543
529
|
if (validDateGranularity === 'DAY') {
|
|
@@ -588,7 +574,7 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
588
574
|
key: sqlColumnName
|
|
589
575
|
};
|
|
590
576
|
}
|
|
591
|
-
case
|
|
577
|
+
case _dtableUtils.CellType.GEOLOCATION:
|
|
592
578
|
{
|
|
593
579
|
let sqlColumnName;
|
|
594
580
|
if (geolocationGranularity === 'province') {
|
|
@@ -624,7 +610,7 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
624
610
|
}
|
|
625
611
|
getOriginalLabel(groupColumn, groupName, statRow, groupby_date_granularity, groupby_geolocation_granularity) {
|
|
626
612
|
const isTimeColumn = _constants.TIME_COLUMN_LIST.includes(groupColumn.type);
|
|
627
|
-
if (isTimeColumn || groupColumn.type ===
|
|
613
|
+
if (isTimeColumn || groupColumn.type === _dtableUtils.CellType.GEOLOCATION) {
|
|
628
614
|
return statRow[groupName];
|
|
629
615
|
}
|
|
630
616
|
const currentGroupLabel = statRow[groupColumn.key];
|
|
@@ -632,20 +618,20 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
632
618
|
}
|
|
633
619
|
getOriginalName(groupColumn, originalLabel) {
|
|
634
620
|
const isTimeColumn = _constants.TIME_COLUMN_LIST.includes(groupColumn.type);
|
|
635
|
-
if (isTimeColumn || groupColumn.type ===
|
|
621
|
+
if (isTimeColumn || groupColumn.type === _dtableUtils.CellType.GEOLOCATION) {
|
|
636
622
|
return originalLabel;
|
|
637
623
|
}
|
|
638
624
|
let {
|
|
639
625
|
type: columnType
|
|
640
626
|
} = groupColumn;
|
|
641
|
-
if (columnType ===
|
|
627
|
+
if (columnType === _dtableUtils.CellType.MULTIPLE_SELECT || columnType === _dtableUtils.CellType.COLLABORATOR) {
|
|
642
628
|
return Array.isArray(originalLabel) ? originalLabel[0] : null;
|
|
643
629
|
}
|
|
644
630
|
return originalLabel;
|
|
645
631
|
}
|
|
646
632
|
getLabel(groupColumn, originalLabel) {
|
|
647
633
|
const isTimeColumn = _constants.TIME_COLUMN_LIST.includes(groupColumn.type);
|
|
648
|
-
if (isTimeColumn || groupColumn.type ===
|
|
634
|
+
if (isTimeColumn || groupColumn.type === _dtableUtils.CellType.GEOLOCATION) {
|
|
649
635
|
return originalLabel;
|
|
650
636
|
}
|
|
651
637
|
return (0, _rowUtils.getFormattedLabel)(groupColumn, originalLabel, this.value.collaborators);
|
|
@@ -654,12 +640,12 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
654
640
|
if (summaryMethod === 'SUM' || summaryMethod === 'DISTINCT_VALUES') return 0;
|
|
655
641
|
return null;
|
|
656
642
|
}
|
|
657
|
-
getSummaryValue(
|
|
643
|
+
getSummaryValue(_ref, currentValue, nextValue) {
|
|
658
644
|
let {
|
|
659
645
|
summaryMethod,
|
|
660
646
|
summaryColumn
|
|
661
|
-
} =
|
|
662
|
-
if (summaryColumn && (0,
|
|
647
|
+
} = _ref;
|
|
648
|
+
if (summaryColumn && (0, _dtableUtils.isDateColumn)(summaryColumn)) {
|
|
663
649
|
if (summaryMethod === _constants.SUMMARY_METHOD_MAP.Max) {
|
|
664
650
|
if (currentValue && nextValue) {
|
|
665
651
|
return (0, _dayjs.default)(currentValue).isBefore(nextValue) ? nextValue : currentValue;
|
|
@@ -694,11 +680,11 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
694
680
|
if (includeEmpty) return true;
|
|
695
681
|
return cellValue || cellValue === 0;
|
|
696
682
|
}
|
|
697
|
-
updateTwoDimensionColumns(pivot_columns, key, original_key,
|
|
683
|
+
updateTwoDimensionColumns(pivot_columns, key, original_key, _ref2) {
|
|
698
684
|
let {
|
|
699
685
|
isIncludeEmpty,
|
|
700
686
|
isCellValueAsAnArray
|
|
701
|
-
} =
|
|
687
|
+
} = _ref2;
|
|
702
688
|
if (isCellValueAsAnArray && Array.isArray(key)) {
|
|
703
689
|
if (key.length === 0 && isIncludeEmpty) {
|
|
704
690
|
const pivotColumnIndex = pivot_columns.findIndex(r => !r.key);
|
|
@@ -732,11 +718,11 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
732
718
|
});
|
|
733
719
|
}
|
|
734
720
|
}
|
|
735
|
-
updateTwoDimensionRows(pivot_rows, pivot_columns, index, name, original_name, count, row, isColumnDataAsAnArray, cellValue,
|
|
721
|
+
updateTwoDimensionRows(pivot_rows, pivot_columns, index, name, original_name, count, row, isColumnDataAsAnArray, cellValue, _ref3) {
|
|
736
722
|
let {
|
|
737
723
|
summaryMethod,
|
|
738
724
|
summaryColumn
|
|
739
|
-
} =
|
|
725
|
+
} = _ref3;
|
|
740
726
|
if (index > -1) {
|
|
741
727
|
let updatedPivotRow = pivot_rows[index];
|
|
742
728
|
let {
|
|
@@ -800,11 +786,11 @@ class PivotTableCalculator extends _baseCalculator.default {
|
|
|
800
786
|
}
|
|
801
787
|
return source === null && target === null || source === undefined && target === undefined || source === target;
|
|
802
788
|
}
|
|
803
|
-
getAndUpdateTwoDimensionTotal(pivot_columns_total, pivot_columns, pivot_rows,
|
|
789
|
+
getAndUpdateTwoDimensionTotal(pivot_columns_total, pivot_columns, pivot_rows, _ref4) {
|
|
804
790
|
let {
|
|
805
791
|
summaryMethod,
|
|
806
792
|
summaryColumn
|
|
807
|
-
} =
|
|
793
|
+
} = _ref4;
|
|
808
794
|
let pivot_table_total = this.initTotal(summaryMethod);
|
|
809
795
|
pivot_rows.forEach(row => {
|
|
810
796
|
const {
|
|
@@ -5,26 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var
|
|
8
|
+
var _dtableUtils = require("dtable-utils");
|
|
9
9
|
var _baseCalculator = _interopRequireDefault(require("./base-calculator"));
|
|
10
10
|
var _rowUtils = require("../utils/row-utils");
|
|
11
11
|
var _statUtils = _interopRequireDefault(require("../utils/stat-utils"));
|
|
12
12
|
var _constants = require("../constants");
|
|
13
13
|
class ScatterCalculator extends _baseCalculator.default {
|
|
14
|
-
constructor(_ref) {
|
|
15
|
-
let {
|
|
16
|
-
value,
|
|
17
|
-
statisticThreadManager,
|
|
18
|
-
username,
|
|
19
|
-
userId
|
|
20
|
-
} = _ref;
|
|
21
|
-
super({
|
|
22
|
-
value,
|
|
23
|
-
statisticThreadManager,
|
|
24
|
-
username,
|
|
25
|
-
userId
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
14
|
isValidChart(chart) {
|
|
29
15
|
if (!this.validateBaseConfigs(chart)) {
|
|
30
16
|
return false;
|
|
@@ -36,7 +22,7 @@ class ScatterCalculator extends _baseCalculator.default {
|
|
|
36
22
|
group_column
|
|
37
23
|
} = chart;
|
|
38
24
|
const table = this.getTableById(table_id);
|
|
39
|
-
if (!
|
|
25
|
+
if (!(0, _dtableUtils.getTableColumnByKey)(table, x_axis_column) || !(0, _dtableUtils.getTableColumnByKey)(table, y_axis_column) || !(0, _dtableUtils.getTableColumnByKey)(table, group_column)) {
|
|
40
26
|
return false;
|
|
41
27
|
}
|
|
42
28
|
return true;
|
|
@@ -58,10 +44,10 @@ class ScatterCalculator extends _baseCalculator.default {
|
|
|
58
44
|
} = chart;
|
|
59
45
|
const selectedTable = this.getTableById(table_id);
|
|
60
46
|
const selectedView = this.getViewById(view_id, selectedTable);
|
|
61
|
-
const selectedXAxisColumn =
|
|
62
|
-
const selectedYAxisColumn =
|
|
63
|
-
const selectedGroupColumn =
|
|
64
|
-
const sqlCondition =
|
|
47
|
+
const selectedXAxisColumn = (0, _dtableUtils.getTableColumnByKey)(selectedTable, x_axis_column);
|
|
48
|
+
const selectedYAxisColumn = (0, _dtableUtils.getTableColumnByKey)(selectedTable, y_axis_column);
|
|
49
|
+
const selectedGroupColumn = (0, _dtableUtils.getTableColumnByKey)(selectedTable, group_column);
|
|
50
|
+
const sqlCondition = this.filter2SqlCondition(selectedTable, selectedView);
|
|
65
51
|
const sqlString = "select `".concat(selectedXAxisColumn.name, "`, `").concat(selectedYAxisColumn.name, "`, `").concat(selectedGroupColumn.name, "` from `").concat(selectedTable.name, "` ").concat(sqlCondition, " limit 5000");
|
|
66
52
|
const result = await this.sqlQuery(sqlString);
|
|
67
53
|
if (result.status === 200 && result.data.success) {
|
|
@@ -6,52 +6,52 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
class ThreadManager {
|
|
8
8
|
constructor(threadCount) {
|
|
9
|
-
this.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
} else {
|
|
17
|
-
this.queue.push({
|
|
18
|
-
id,
|
|
19
|
-
emitter: resolve,
|
|
20
|
-
workerConstructor
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
this.removeThread = id => {
|
|
26
|
-
const index = this.threadList.findIndex(worker => worker.id === id);
|
|
27
|
-
if (index > -1) {
|
|
28
|
-
this.threadList[index] && this.threadList[index].terminate();
|
|
29
|
-
this.threadList.splice(index, 1);
|
|
30
|
-
}
|
|
31
|
-
if (this.queue.length > 0) {
|
|
32
|
-
const {
|
|
33
|
-
id,
|
|
34
|
-
emitter,
|
|
35
|
-
workerConstructor
|
|
36
|
-
} = this.queue.shift();
|
|
9
|
+
this.threadCount = threadCount;
|
|
10
|
+
this.threadList = [];
|
|
11
|
+
this.queue = [];
|
|
12
|
+
}
|
|
13
|
+
async applyThread(id, workerConstructor) {
|
|
14
|
+
return new Promise((resolve, reject) => {
|
|
15
|
+
if (this.threadList.length < this.threadCount) {
|
|
37
16
|
const worker = new workerConstructor();
|
|
38
17
|
worker.id = id;
|
|
39
18
|
this.threadList.push(worker);
|
|
40
|
-
|
|
19
|
+
resolve(worker);
|
|
20
|
+
} else {
|
|
21
|
+
this.queue.push({
|
|
22
|
+
id,
|
|
23
|
+
emitter: resolve,
|
|
24
|
+
workerConstructor
|
|
25
|
+
});
|
|
41
26
|
}
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
this.threadList.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
removeThread(id) {
|
|
30
|
+
const index = this.threadList.findIndex(worker => worker.id === id);
|
|
31
|
+
if (index > -1) {
|
|
32
|
+
this.threadList[index] && this.threadList[index].terminate();
|
|
33
|
+
this.threadList.splice(index, 1);
|
|
34
|
+
}
|
|
35
|
+
if (this.queue.length > 0) {
|
|
36
|
+
const {
|
|
37
|
+
id,
|
|
38
|
+
emitter,
|
|
39
|
+
workerConstructor
|
|
40
|
+
} = this.queue.shift();
|
|
41
|
+
const worker = new workerConstructor();
|
|
42
|
+
worker.id = id;
|
|
43
|
+
this.threadList.push(worker);
|
|
44
|
+
emitter(worker);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
clearQueue() {
|
|
54
48
|
this.queue = [];
|
|
55
49
|
}
|
|
50
|
+
terminateWorkers() {
|
|
51
|
+
this.threadList.forEach(item => {
|
|
52
|
+
item && item.terminate();
|
|
53
|
+
});
|
|
54
|
+
this.threadList = [];
|
|
55
|
+
}
|
|
56
56
|
}
|
|
57
57
|
var _default = exports.default = ThreadManager;
|
|
@@ -5,27 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var
|
|
8
|
+
var _dtableUtils = require("dtable-utils");
|
|
9
9
|
var _baseCalculator = _interopRequireDefault(require("./base-calculator"));
|
|
10
10
|
var _commonUtils = require("../utils/common-utils");
|
|
11
11
|
var _sqlUtils = require("../utils/sql-utils");
|
|
12
12
|
var _trendUtils = require("../utils/trend-utils");
|
|
13
13
|
var _constants = require("../constants");
|
|
14
14
|
class TrendCalculator extends _baseCalculator.default {
|
|
15
|
-
constructor(_ref) {
|
|
16
|
-
let {
|
|
17
|
-
value,
|
|
18
|
-
statisticThreadManager,
|
|
19
|
-
username,
|
|
20
|
-
userId
|
|
21
|
-
} = _ref;
|
|
22
|
-
super({
|
|
23
|
-
value,
|
|
24
|
-
statisticThreadManager,
|
|
25
|
-
username,
|
|
26
|
-
userId
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
15
|
isValidChart(chart) {
|
|
30
16
|
if (!this.validateBaseConfigs(chart)) {
|
|
31
17
|
return false;
|
|
@@ -37,8 +23,8 @@ class TrendCalculator extends _baseCalculator.default {
|
|
|
37
23
|
summary_type
|
|
38
24
|
} = chart;
|
|
39
25
|
const table = this.getTableById(table_id);
|
|
40
|
-
if (!
|
|
41
|
-
if (summary_type === _constants.SUMMARY_TYPE.ADVANCED && !
|
|
26
|
+
if (!(0, _dtableUtils.getTableColumnByKey)(table, date_column)) return false;
|
|
27
|
+
if (summary_type === _constants.SUMMARY_TYPE.ADVANCED && !(0, _dtableUtils.getTableColumnByKey)(table, summary_column)) {
|
|
42
28
|
return false;
|
|
43
29
|
}
|
|
44
30
|
return true;
|
|
@@ -62,10 +48,10 @@ class TrendCalculator extends _baseCalculator.default {
|
|
|
62
48
|
} = chart;
|
|
63
49
|
const selectedTable = this.getTableById(table_id);
|
|
64
50
|
const selectedView = this.getViewById(view_id, selectedTable);
|
|
65
|
-
const selectedColumn =
|
|
51
|
+
const selectedColumn = (0, _dtableUtils.getTableColumnByKey)(selectedTable, date_column);
|
|
66
52
|
if (!selectedColumn) return {};
|
|
67
|
-
const sqlCondition =
|
|
68
|
-
const numericColumn =
|
|
53
|
+
const sqlCondition = this.filter2SqlCondition(selectedTable, selectedView);
|
|
54
|
+
const numericColumn = (0, _dtableUtils.getTableColumnByKey)(selectedTable, summary_column);
|
|
69
55
|
const columnName = selectedColumn.name;
|
|
70
56
|
const dateGroupBy = (0, _sqlUtils.getSqlGroup)(date_granularity, selectedColumn);
|
|
71
57
|
let sqlString = '';
|