dtable-statistic 4.3.2 → 4.3.3
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/api/dtable-db-api.js +10 -3
- package/es/calculator/base-calculator.js +20 -12
- package/es/calculator/basic-chart-calculator.js +72 -65
- package/es/calculator/combination-calculator.js +64 -57
- package/es/calculator/compare-bar-calculator.js +33 -26
- package/es/calculator/completeness-calculator.js +37 -30
- package/es/calculator/copy-value.js +7 -1
- package/es/calculator/dashboard-calculator.js +20 -13
- package/es/calculator/heat-map-calculator.js +25 -18
- package/es/calculator/horizontal-bar-calculator.js +15 -8
- package/es/calculator/index.js +42 -35
- package/es/calculator/map-calculator.js +29 -22
- package/es/calculator/mirror-calculator.js +27 -20
- package/es/calculator/number-card-calculator.js +17 -10
- package/es/calculator/pivot-table-calculator.js +65 -58
- package/es/calculator/scatter-calculator.js +21 -14
- package/es/calculator/thread-manager.js +7 -1
- package/es/calculator/trend-calculator.js +29 -22
- package/es/calculator/workers/basic-chart-calculator-worker.js +83 -76
- package/es/calculator/workers/calculator.worker.js +33 -30
- package/es/calculator/workers/card-calculator-worker.js +19 -13
- package/es/calculator/workers/combination-calculator-worker.js +53 -46
- package/es/calculator/workers/compare-bar-chart-calculator-worker.js +29 -22
- package/es/calculator/workers/completeness-calculator-worker.js +41 -34
- package/es/calculator/workers/dashboard-calculator-worker.js +24 -18
- package/es/calculator/workers/mirror-calculator-worker.js +29 -22
- package/es/calculator/workers/pivot-table-calculator-worker.js +84 -77
- package/es/calculator/workers/scatter-calculator-worker.js +27 -20
- package/es/calculator/workers/trend-calculator-worker.js +34 -27
- package/es/calculator/world-map-calculator.js +24 -17
- package/es/components/common-add-tool.js +12 -5
- package/es/components/dialog/chart-addition-edit-dialog.js +20 -12
- package/es/components/dialog/chart-addition-widgets/chart-selector.js +110 -103
- package/es/components/dialog/color-theme-dialog.js +22 -15
- package/es/components/dialog/delete-confirmation-dialog.js +18 -11
- package/es/components/dialog/enlarged-chart-dialog.js +28 -20
- package/es/components/dialog/new-table-dialog.js +23 -16
- package/es/components/dialog/new-view-dialog.js +22 -15
- package/es/components/dialog/rename-view-dialog.js +22 -14
- package/es/components/dialog/statistic-record-dialog/index.js +45 -37
- package/es/components/dialog/statistic-types-dialog/index.js +22 -14
- package/es/components/dialog/table-select-dialog.js +23 -15
- package/es/components/dropdown-menu/statistic-dropdown-menu.js +56 -43
- package/es/components/dtable-popover.js +19 -12
- package/es/components/dtable-search-input.js +21 -13
- package/es/components/dtable-select.js +20 -12
- package/es/components/icon.js +11 -4
- package/es/components/index.js +76 -11
- package/es/components/loading.js +10 -3
- package/es/components/modal-portal.js +12 -5
- package/es/components/popover/color-rules/color-rule.js +33 -25
- package/es/components/popover/color-rules/index.js +14 -6
- package/es/components/popover/color-rules/rule-filters/filter.js +35 -28
- package/es/components/popover/color-rules/rule-filters/index.js +25 -17
- package/es/components/popover/color-rules/rule-filters/number-input.js +17 -9
- package/es/components/popover/color-rules-popover.js +32 -24
- package/es/components/popover/color-selector-popover.js +17 -10
- package/es/components/seatable-radio/index.js +16 -9
- package/es/components/select/index.js +9 -2
- package/es/components/select/option-group.js +27 -19
- package/es/components/select/option.js +14 -6
- package/es/components/select/select.js +25 -17
- package/es/components/toast/alert.js +31 -24
- package/es/components/toast/index.js +10 -3
- package/es/components/toast/toast.js +20 -12
- package/es/components/toast/toastManager.js +17 -9
- package/es/components/toast/toaster.js +14 -6
- package/es/constants/color-rules.js +12 -6
- package/es/constants/dtable-select-style.js +9 -4
- package/es/constants/event-types.js +10 -4
- package/es/constants/index.js +96 -67
- package/es/constants/key-codes.js +2 -0
- package/es/constants/map.js +8 -2
- package/es/constants/model.js +26 -20
- package/es/constants/regions.js +8 -3
- package/es/constants/zIndexes.js +7 -1
- package/es/custom-g2.js +236 -208
- package/es/dashboard.js +58 -50
- package/es/desktop-dashboard.js +55 -47
- package/es/index.js +6 -3
- package/es/locale/index.js +13 -10
- package/es/locale/lang/de.js +7 -1
- package/es/locale/lang/en.js +7 -1
- package/es/locale/lang/fr.js +7 -1
- package/es/locale/lang/zh_CN.js +7 -1
- package/es/mobile-dashboard.js +46 -38
- package/es/model/bar-group.js +19 -11
- package/es/model/bar.js +18 -10
- package/es/model/base-model.js +9 -2
- package/es/model/basic-number-card.js +16 -8
- package/es/model/collaborators.js +9 -2
- package/es/model/combination.js +20 -12
- package/es/model/compare-bar.js +24 -16
- package/es/model/completeness-group.js +16 -8
- package/es/model/completeness.js +13 -5
- package/es/model/custom-bar.js +14 -6
- package/es/model/dashboard.js +14 -6
- package/es/model/generic-model.js +141 -133
- package/es/model/heat-map.js +19 -11
- package/es/model/horizontal-bar-group.js +18 -10
- package/es/model/horizontal-bar.js +18 -10
- package/es/model/index.js +185 -53
- package/es/model/map.js +23 -15
- package/es/model/mirror.js +21 -13
- package/es/model/pie.js +18 -10
- package/es/model/ring.js +19 -11
- package/es/model/scatter.js +14 -6
- package/es/model/statistic-dashboard.js +9 -2
- package/es/model/table.js +18 -10
- package/es/model/trend.js +20 -12
- package/es/model/world-map.js +21 -13
- package/es/service/chart-service.js +14 -7
- package/es/service/dashboard-service.js +42 -35
- package/es/service/map-json.js +14 -8
- package/es/stat-editor/chart-name-editor.js +15 -8
- package/es/stat-editor/index.js +24 -16
- package/es/stat-editor/stat-settings/advance-chart-settings/basic-number-card-settings.js +30 -22
- package/es/stat-editor/stat-settings/advance-chart-settings/combination-settings.js +57 -49
- package/es/stat-editor/stat-settings/advance-chart-settings/dashboard-chart-settings.js +32 -24
- package/es/stat-editor/stat-settings/advance-chart-settings/geo-granularity-settings.js +11 -4
- package/es/stat-editor/stat-settings/advance-chart-settings/heat-map-settings.js +27 -19
- package/es/stat-editor/stat-settings/advance-chart-settings/index.js +51 -43
- package/es/stat-editor/stat-settings/advance-chart-settings/map-settings.js +31 -23
- package/es/stat-editor/stat-settings/advance-chart-settings/mirror-settings.js +31 -23
- package/es/stat-editor/stat-settings/advance-chart-settings/style-setting/combination-style-setting.js +48 -40
- package/es/stat-editor/stat-settings/advance-chart-settings/style-setting/heat-map-settings.js +29 -21
- package/es/stat-editor/stat-settings/advance-chart-settings/style-setting/map-setting.js +34 -26
- package/es/stat-editor/stat-settings/advance-chart-settings/summary-settings.js +55 -47
- package/es/stat-editor/stat-settings/advance-chart-settings/trend-chart-settings.js +30 -22
- package/es/stat-editor/stat-settings/advance-chart-settings/world-map-settings.js +26 -18
- package/es/stat-editor/stat-settings/basic-chart-settings/advance-bar-chart-settings.js +35 -27
- package/es/stat-editor/stat-settings/basic-chart-settings/bar-settings.js +32 -24
- package/es/stat-editor/stat-settings/basic-chart-settings/completeness-chart-settings.js +41 -33
- package/es/stat-editor/stat-settings/basic-chart-settings/custom-bar-settings.js +30 -22
- package/es/stat-editor/stat-settings/basic-chart-settings/groupby-settings.js +25 -17
- package/es/stat-editor/stat-settings/basic-chart-settings/horizontal-axis-group-settings.js +54 -46
- package/es/stat-editor/stat-settings/basic-chart-settings/horizontal-bar-settings.js +31 -23
- package/es/stat-editor/stat-settings/basic-chart-settings/horizontal-group-chart-settings.js +34 -26
- package/es/stat-editor/stat-settings/basic-chart-settings/index.js +85 -77
- package/es/stat-editor/stat-settings/basic-chart-settings/pie-settings.js +29 -21
- package/es/stat-editor/stat-settings/basic-chart-settings/pivot-table-settings.js +81 -73
- package/es/stat-editor/stat-settings/basic-chart-settings/scatter-settings.js +24 -16
- package/es/stat-editor/stat-settings/basic-chart-settings/stack-item-settings.js +27 -19
- package/es/stat-editor/stat-settings/basic-chart-settings/stacks-settings.js +26 -18
- package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/bar-chart-style-setting.js +59 -51
- package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/completeness-style.js +27 -19
- package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/horizontal-bar-chart-style.js +57 -49
- package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/label-font-size-editor.js +20 -12
- package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/pie-chart-style-settings.js +56 -48
- package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/time-compare-style.js +17 -9
- package/es/stat-editor/stat-settings/basic-chart-settings/summary-method-setting.js +29 -21
- package/es/stat-editor/stat-settings/basic-chart-settings/summary-settings.js +38 -30
- package/es/stat-editor/stat-settings/basic-chart-settings/time-comparison-settings.js +58 -50
- package/es/stat-editor/stat-settings/basic-chart-settings/timer-picker.js +25 -17
- package/es/stat-editor/stat-settings/basic-chart-settings/y-axis-group-settings.js +56 -47
- package/es/stat-editor/stat-settings/color-setting/color-group-selector.js +20 -12
- package/es/stat-editor/stat-settings/color-setting/color-picker.js +19 -12
- package/es/stat-editor/stat-settings/color-setting/color-use-type-selector.js +70 -62
- package/es/stat-editor/stat-settings/map/map-level.js +20 -13
- package/es/stat-editor/stat-settings/map/map-province-city.js +27 -20
- package/es/stat-editor/stat-settings/public-setting/axis-label-position-setting.js +19 -11
- package/es/stat-editor/stat-settings/public-setting/base-settings.js +28 -20
- package/es/stat-editor/stat-settings/public-setting/calender.js +29 -22
- package/es/stat-editor/stat-settings/public-setting/column-settings.js +13 -6
- package/es/stat-editor/stat-settings/public-setting/custom-title-setting.js +16 -9
- package/es/stat-editor/stat-settings/public-setting/data-sort-setting.js +21 -13
- package/es/stat-editor/stat-settings/public-setting/ind-toggle-setting.js +15 -8
- package/es/stat-editor/stat-settings/public-setting/min-max-setting.js +19 -11
- package/es/stat-editor/stat-settings/public-setting/numeric-summary-item.js +35 -27
- package/es/stat-editor/stat-settings/public-setting/toggle-setting.js +15 -8
- package/es/stat-editor/stat-settings/public-setting/type-settings/index.js +26 -18
- package/es/stat-list/chart-preview.js +33 -20
- package/es/stat-list/index.js +36 -28
- package/es/stat-view/area-chart.js +51 -44
- package/es/stat-view/bar-chart.js +55 -48
- package/es/stat-view/base-chart.js +32 -24
- package/es/stat-view/basic-number-card.js +26 -19
- package/es/stat-view/combination-chart.js +57 -50
- package/es/stat-view/compare-chart.js +47 -40
- package/es/stat-view/completeness-chart.js +37 -30
- package/es/stat-view/custom-bar.js +38 -31
- package/es/stat-view/dashboard-chart.js +22 -15
- package/es/stat-view/heat-map.js +50 -43
- package/es/stat-view/horizontal-bar-chart.js +59 -52
- package/es/stat-view/index.js +80 -73
- package/es/stat-view/line-chart.js +47 -40
- package/es/stat-view/map.js +40 -33
- package/es/stat-view/mirror.js +28 -21
- package/es/stat-view/pie-chart.js +36 -29
- package/es/stat-view/pivot-table/index.js +39 -32
- package/es/stat-view/pivot-table/one-dimension-table-no-numeric-columns.js +39 -31
- package/es/stat-view/pivot-table/one-dimension-table-with-numeric-columns.js +37 -29
- package/es/stat-view/pivot-table/pivot-table-display-name.js +54 -46
- package/es/stat-view/pivot-table/two-dimension-table.js +70 -62
- package/es/stat-view/ring-chart.js +46 -39
- package/es/stat-view/scatter-chart.js +37 -30
- package/es/stat-view/treemap-chart.js +45 -38
- package/es/stat-view/trend-chart.js +39 -32
- package/es/stat-view/world-map.js +40 -33
- package/es/tabs/index.js +40 -32
- package/es/tabs/tab.js +35 -27
- package/es/utils/basic-chart-utils.js +9 -2
- package/es/utils/cell-format.js +22 -14
- package/es/utils/cell-value.js +14 -7
- package/es/utils/collaborator.js +13 -4
- package/es/utils/color-utils.js +29 -18
- package/es/utils/column-utils.js +29 -18
- package/es/utils/column.js +11 -4
- package/es/utils/common-utils.js +67 -43
- package/es/utils/date-format.js +8 -2
- package/es/utils/export-table-utils.js +91 -82
- package/es/utils/index.js +100 -11
- package/es/utils/map.js +36 -26
- package/es/utils/model.js +14 -6
- package/es/utils/object.js +15 -6
- package/es/utils/pivot-table.js +23 -16
- package/es/utils/row-utils.js +34 -24
- package/es/utils/search.js +29 -21
- package/es/utils/sql-utils.js +75 -65
- package/es/utils/stat-utils.js +67 -60
- package/es/utils/trend-utils.js +40 -32
- package/package.json +82 -125
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _dtableStore = require("dtable-store");
|
|
9
|
+
var _utils = require("../../utils");
|
|
10
|
+
var _commonUtils = require("../../utils/common-utils");
|
|
11
|
+
var _rowUtils = require("../../utils/row-utils");
|
|
12
|
+
var _constants = require("../../constants");
|
|
13
|
+
var _statUtils = _interopRequireDefault(require("../../utils/stat-utils"));
|
|
7
14
|
function calculateStatItem(chart, dtableValue, username, userId) {
|
|
8
15
|
const {
|
|
9
16
|
table_id,
|
|
@@ -14,23 +21,23 @@ function calculateStatItem(chart, dtableValue, username, userId) {
|
|
|
14
21
|
summary_method,
|
|
15
22
|
group_column
|
|
16
23
|
} = chart;
|
|
17
|
-
const table = TableUtils.getTableById(dtableValue.tables, table_id);
|
|
18
|
-
const view = table && Views.getViewById(table.views, view_id);
|
|
19
|
-
const columnItem = TableUtils.getTableColumnByKey(table, column);
|
|
20
|
-
const rows = Views.getViewRows(view, table, dtableValue, username, userId);
|
|
21
|
-
const formulaRows = Views.getTableFormulaResults(table, rows, dtableValue);
|
|
22
|
-
const groupColumn = TableUtils.getTableColumnByKey(table, group_column);
|
|
23
|
-
const numericColumn = summary_column && TableUtils.getTableColumnByKey(table, summary_column);
|
|
24
|
+
const table = _dtableStore.TableUtils.getTableById(dtableValue.tables, table_id);
|
|
25
|
+
const view = table && _dtableStore.Views.getViewById(table.views, view_id);
|
|
26
|
+
const columnItem = _dtableStore.TableUtils.getTableColumnByKey(table, column);
|
|
27
|
+
const rows = _dtableStore.Views.getViewRows(view, table, dtableValue, username, userId);
|
|
28
|
+
const formulaRows = _dtableStore.Views.getTableFormulaResults(table, rows, dtableValue);
|
|
29
|
+
const groupColumn = _dtableStore.TableUtils.getTableColumnByKey(table, group_column);
|
|
30
|
+
const numericColumn = summary_column && _dtableStore.TableUtils.getTableColumnByKey(table, summary_column);
|
|
24
31
|
const groupItems = getGroupItems(rows, groupColumn);
|
|
25
32
|
if (groupColumn.length === 0) return;
|
|
26
33
|
let result = {};
|
|
27
34
|
groupItems.forEach(groupValue => {
|
|
28
35
|
result[groupValue] = {};
|
|
29
36
|
});
|
|
30
|
-
if (summary_type === SUMMARY_TYPE.COUNT) {
|
|
37
|
+
if (summary_type === _constants.SUMMARY_TYPE.COUNT) {
|
|
31
38
|
groupItems.forEach(groupItem => {
|
|
32
39
|
rows.forEach(row => {
|
|
33
|
-
let value = getClientCellValueDisplayString(row, columnItem.type, columnItem.key, {
|
|
40
|
+
let value = (0, _utils.getClientCellValueDisplayString)(row, columnItem.type, columnItem.key, {
|
|
34
41
|
collaborators: dtableValue.collaborators,
|
|
35
42
|
data: columnItem.data,
|
|
36
43
|
formulaRows
|
|
@@ -56,7 +63,7 @@ function calculateStatItem(chart, dtableValue, username, userId) {
|
|
|
56
63
|
} else {
|
|
57
64
|
groupItems.forEach(groupItem => {
|
|
58
65
|
rows.forEach(row => {
|
|
59
|
-
let value = getClientCellValueDisplayString(row, columnItem.type, columnItem.key, {
|
|
66
|
+
let value = (0, _utils.getClientCellValueDisplayString)(row, columnItem.type, columnItem.key, {
|
|
60
67
|
collaborators: dtableValue.collaborators,
|
|
61
68
|
data: columnItem.data,
|
|
62
69
|
formulaRows
|
|
@@ -66,8 +73,8 @@ function calculateStatItem(chart, dtableValue, username, userId) {
|
|
|
66
73
|
if (groupItems.includes(groupValue)) {
|
|
67
74
|
const list = result[groupItem][value];
|
|
68
75
|
const formulaRow = formulaRows[row._id];
|
|
69
|
-
let cellValue = getCellValue(row, formulaRow, numericColumn);
|
|
70
|
-
cellValue = isNumber(cellValue) ? cellValue : 0;
|
|
76
|
+
let cellValue = (0, _rowUtils.getCellValue)(row, formulaRow, numericColumn);
|
|
77
|
+
cellValue = (0, _dtableStore.isNumber)(cellValue) ? cellValue : 0;
|
|
71
78
|
if (groupItem === groupValue) {
|
|
72
79
|
if (!list) {
|
|
73
80
|
result[groupItem][value] = [cellValue];
|
|
@@ -95,7 +102,7 @@ function summaryResult(result, summaryMethod, precision) {
|
|
|
95
102
|
newResult[groupId] = {};
|
|
96
103
|
Object.keys(result[groupId]).forEach(key => {
|
|
97
104
|
const currentValue = result[groupId][key];
|
|
98
|
-
newResult[groupId][key] = getSummaryResult(currentValue, summaryMethod, precision);
|
|
105
|
+
newResult[groupId][key] = (0, _commonUtils.getSummaryResult)(currentValue, summaryMethod, precision);
|
|
99
106
|
});
|
|
100
107
|
});
|
|
101
108
|
return newResult;
|
|
@@ -110,8 +117,8 @@ function normalizeResult(result, groupColumn, summaryColumn, summaryType, summar
|
|
|
110
117
|
Object.keys(result[groupId]).forEach(name => {
|
|
111
118
|
const value = result[groupId][name];
|
|
112
119
|
let formattedValue = value;
|
|
113
|
-
if (summaryType === SUMMARY_TYPE.ADVANCED) {
|
|
114
|
-
formattedValue =
|
|
120
|
+
if (summaryType === _constants.SUMMARY_TYPE.ADVANCED) {
|
|
121
|
+
formattedValue = _statUtils.default.getFormattedValue(value, summaryColumn, summaryMethod);
|
|
115
122
|
}
|
|
116
123
|
data.push({
|
|
117
124
|
name,
|
|
@@ -138,4 +145,4 @@ function getGroupItems(rows, groupColumn) {
|
|
|
138
145
|
}
|
|
139
146
|
return items;
|
|
140
147
|
}
|
|
141
|
-
|
|
148
|
+
var _default = exports.default = calculateStatItem;
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = calculateStatItem;
|
|
8
|
+
var _dtableStore = require("dtable-store");
|
|
9
|
+
var _constants = require("../../constants");
|
|
10
|
+
var _commonUtils = require("../../utils/common-utils");
|
|
11
|
+
var _rowUtils = require("../../utils/row-utils");
|
|
12
|
+
var _statUtils = _interopRequireDefault(require("../../utils/stat-utils"));
|
|
13
|
+
function calculateStatItem(chart, value, username, userId) {
|
|
7
14
|
const {
|
|
8
15
|
groupby_column_key,
|
|
9
16
|
column_groupby_column_key
|
|
@@ -29,21 +36,21 @@ function calculateOneDimensionTable(chart, value, username, userId) {
|
|
|
29
36
|
groupby_geolocation_granularity,
|
|
30
37
|
summary_columns_option
|
|
31
38
|
} = chart;
|
|
32
|
-
const table = TableUtils.getTableById(value.tables, table_id);
|
|
33
|
-
const view = table && Views.getViewById(table.views, view_id);
|
|
34
|
-
const column = TableUtils.getTableColumnByKey(table, groupby_column_key);
|
|
39
|
+
const table = _dtableStore.TableUtils.getTableById(value.tables, table_id);
|
|
40
|
+
const view = table && _dtableStore.Views.getViewById(table.views, view_id);
|
|
41
|
+
const column = _dtableStore.TableUtils.getTableColumnByKey(table, groupby_column_key);
|
|
35
42
|
if (!column) return {};
|
|
36
|
-
const isColumnDataAsAnArray = isArrayCellValue(column);
|
|
37
|
-
const statRows = Views.getViewRows(view, table, value, username, userId);
|
|
38
|
-
const formulaRows = Views.getTableFormulaResults(table, statRows, value);
|
|
43
|
+
const isColumnDataAsAnArray = (0, _commonUtils.isArrayCellValue)(column);
|
|
44
|
+
const statRows = _dtableStore.Views.getViewRows(view, table, value, username, userId);
|
|
45
|
+
const formulaRows = _dtableStore.Views.getTableFormulaResults(table, statRows, value);
|
|
39
46
|
let pivot_rows = [];
|
|
40
47
|
statRows.forEach(row => {
|
|
41
48
|
const {
|
|
42
49
|
_id: rowId
|
|
43
50
|
} = row;
|
|
44
51
|
const formulaRow = formulaRows[rowId];
|
|
45
|
-
if (isValidRow(row, formulaRow, column, include_empty)) {
|
|
46
|
-
const name =
|
|
52
|
+
if ((0, _rowUtils.isValidRow)(row, formulaRow, column, include_empty)) {
|
|
53
|
+
const name = _statUtils.default.getGroupLabel(row[column.key], formulaRow, column, groupby_date_granularity, groupby_geolocation_granularity, value);
|
|
47
54
|
let pivotRowIndex;
|
|
48
55
|
if (isColumnDataAsAnArray) {
|
|
49
56
|
if (name.length === 0 && include_empty) {
|
|
@@ -67,7 +74,7 @@ function calculateOneDimensionTable(chart, value, username, userId) {
|
|
|
67
74
|
const statisticColumnKeys = [summary_column_key, ...summary_columns_option_keys];
|
|
68
75
|
const validStatisticColumnKeys = statisticColumnKeys;
|
|
69
76
|
let statisticColumns = validStatisticColumnKeys.map(key => {
|
|
70
|
-
const column = TableUtils.getTableColumnByKey(table, key);
|
|
77
|
+
const column = _dtableStore.TableUtils.getTableColumnByKey(table, key);
|
|
71
78
|
return column ? {
|
|
72
79
|
...column
|
|
73
80
|
} : null;
|
|
@@ -83,16 +90,16 @@ function calculateOneDimensionTable(chart, value, username, userId) {
|
|
|
83
90
|
const {
|
|
84
91
|
pivot_columns_total
|
|
85
92
|
} = getOneDimensionTotal(statisticColumns, summary_type, formulaRows, pivot_rows);
|
|
86
|
-
|
|
87
|
-
const pivot_columns = summary_type === SUMMARY_TYPE.COUNT ? [] : statisticColumns.map(column => {
|
|
93
|
+
_statUtils.default.sortStatistics(pivot_rows, column, 'name');
|
|
94
|
+
const pivot_columns = summary_type === _constants.SUMMARY_TYPE.COUNT ? [] : statisticColumns.map(column => {
|
|
88
95
|
return {
|
|
89
96
|
key: column.key,
|
|
90
97
|
method: column.method
|
|
91
98
|
};
|
|
92
|
-
}).filter(item => TableUtils.getTableColumnByKey(table, item.key));
|
|
99
|
+
}).filter(item => _dtableStore.TableUtils.getTableColumnByKey(table, item.key));
|
|
93
100
|
pivot_rows.forEach(row => {
|
|
94
101
|
row.original_name = row.name;
|
|
95
|
-
row.name = getFormattedLabel(column, row.name, value.collaborators);
|
|
102
|
+
row.name = (0, _rowUtils.getFormattedLabel)(column, row.name, value.collaborators);
|
|
96
103
|
});
|
|
97
104
|
return {
|
|
98
105
|
pivot_columns_total,
|
|
@@ -121,7 +128,7 @@ function getOneDimensionTotal(columns, summary_type, formula_rows) {
|
|
|
121
128
|
let dateColumnsTotalArr = {};
|
|
122
129
|
if (Array.isArray(columns) && columns.length > 0) {
|
|
123
130
|
columns.forEach(column => {
|
|
124
|
-
if (column && isDateColumn(column)) {
|
|
131
|
+
if (column && (0, _dtableStore.isDateColumn)(column)) {
|
|
125
132
|
dateColumnsTotalArr[column.key] = [];
|
|
126
133
|
}
|
|
127
134
|
});
|
|
@@ -134,7 +141,7 @@ function getOneDimensionTotal(columns, summary_type, formula_rows) {
|
|
|
134
141
|
...item
|
|
135
142
|
};
|
|
136
143
|
let totalMap = {};
|
|
137
|
-
if (summary_type === SUMMARY_TYPE.COUNT) {
|
|
144
|
+
if (summary_type === _constants.SUMMARY_TYPE.COUNT) {
|
|
138
145
|
totalMap['total'] = rows.length;
|
|
139
146
|
pivot_columns_total.total = (pivot_columns_total['total'] || 0) + rows.length;
|
|
140
147
|
} else {
|
|
@@ -146,8 +153,8 @@ function getOneDimensionTotal(columns, summary_type, formula_rows) {
|
|
|
146
153
|
method
|
|
147
154
|
} = summaryColumn;
|
|
148
155
|
const total = getTotal(summaryColumn, summary_type, method, rows, formula_rows);
|
|
149
|
-
if (summaryColumn && isDateColumn(summaryColumn)) {
|
|
150
|
-
if (method === SUMMARY_METHOD_MAP.Distinct_values) {
|
|
156
|
+
if (summaryColumn && (0, _dtableStore.isDateColumn)(summaryColumn)) {
|
|
157
|
+
if (method === _constants.SUMMARY_METHOD_MAP.Distinct_values) {
|
|
151
158
|
totalMap['total'] = total;
|
|
152
159
|
} else {
|
|
153
160
|
totalMap['total'] = total === 0 ? 0 : total.date;
|
|
@@ -155,11 +162,11 @@ function getOneDimensionTotal(columns, summary_type, formula_rows) {
|
|
|
155
162
|
dateColumnsTotalArr[key].push(total);
|
|
156
163
|
}
|
|
157
164
|
}
|
|
158
|
-
if (method === SUMMARY_METHOD_MAP.Max) {
|
|
159
|
-
pivot_columns_total['total'] = dateColumnsTotalArr[key].length === 0 ? 0 : getDateMaxOrMinTotal(dateColumnsTotalArr[key], SUMMARY_METHOD_MAP.Max).date;
|
|
160
|
-
} else if (method === SUMMARY_METHOD_MAP.Min) {
|
|
161
|
-
pivot_columns_total['total'] = dateColumnsTotalArr[key].length === 0 ? 0 : getDateMaxOrMinTotal(dateColumnsTotalArr[key], SUMMARY_METHOD_MAP.Min).date;
|
|
162
|
-
} else if (method === SUMMARY_METHOD_MAP.Distinct_values) {
|
|
165
|
+
if (method === _constants.SUMMARY_METHOD_MAP.Max) {
|
|
166
|
+
pivot_columns_total['total'] = dateColumnsTotalArr[key].length === 0 ? 0 : getDateMaxOrMinTotal(dateColumnsTotalArr[key], _constants.SUMMARY_METHOD_MAP.Max).date;
|
|
167
|
+
} else if (method === _constants.SUMMARY_METHOD_MAP.Min) {
|
|
168
|
+
pivot_columns_total['total'] = dateColumnsTotalArr[key].length === 0 ? 0 : getDateMaxOrMinTotal(dateColumnsTotalArr[key], _constants.SUMMARY_METHOD_MAP.Min).date;
|
|
169
|
+
} else if (method === _constants.SUMMARY_METHOD_MAP.Distinct_values) {
|
|
163
170
|
const pivotColumnTotal = (pivot_columns_total['total'] ? pivot_columns_total['total'] - 0 : 0) + total;
|
|
164
171
|
pivot_columns_total['total'] = Number.parseFloat(pivotColumnTotal.toFixed(8));
|
|
165
172
|
}
|
|
@@ -177,8 +184,8 @@ function getOneDimensionTotal(columns, summary_type, formula_rows) {
|
|
|
177
184
|
} = column;
|
|
178
185
|
const totalKey = key + method;
|
|
179
186
|
const total = getTotal(column, summary_type, method, rows, formula_rows);
|
|
180
|
-
if (column && isDateColumn(column)) {
|
|
181
|
-
if (method === SUMMARY_METHOD_MAP.Distinct_values) {
|
|
187
|
+
if (column && (0, _dtableStore.isDateColumn)(column)) {
|
|
188
|
+
if (method === _constants.SUMMARY_METHOD_MAP.Distinct_values) {
|
|
182
189
|
totalMap[totalKey] = total;
|
|
183
190
|
} else {
|
|
184
191
|
totalMap[totalKey] = total === 0 ? 0 : total.date;
|
|
@@ -186,11 +193,11 @@ function getOneDimensionTotal(columns, summary_type, formula_rows) {
|
|
|
186
193
|
dateColumnsTotalArr[key].push(total);
|
|
187
194
|
}
|
|
188
195
|
}
|
|
189
|
-
if (method === SUMMARY_METHOD_MAP.Max) {
|
|
190
|
-
pivot_columns_total[totalKey] = dateColumnsTotalArr[key].length === 0 ? 0 : getDateMaxOrMinTotal(dateColumnsTotalArr[key], SUMMARY_METHOD_MAP.Max).date;
|
|
191
|
-
} else if (method === SUMMARY_METHOD_MAP.Min) {
|
|
192
|
-
pivot_columns_total[totalKey] = dateColumnsTotalArr[key].length === 0 ? 0 : getDateMaxOrMinTotal(dateColumnsTotalArr[key], SUMMARY_METHOD_MAP.Min).date;
|
|
193
|
-
} else if (method === SUMMARY_METHOD_MAP.Distinct_values) {
|
|
196
|
+
if (method === _constants.SUMMARY_METHOD_MAP.Max) {
|
|
197
|
+
pivot_columns_total[totalKey] = dateColumnsTotalArr[key].length === 0 ? 0 : getDateMaxOrMinTotal(dateColumnsTotalArr[key], _constants.SUMMARY_METHOD_MAP.Max).date;
|
|
198
|
+
} else if (method === _constants.SUMMARY_METHOD_MAP.Min) {
|
|
199
|
+
pivot_columns_total[totalKey] = dateColumnsTotalArr[key].length === 0 ? 0 : getDateMaxOrMinTotal(dateColumnsTotalArr[key], _constants.SUMMARY_METHOD_MAP.Min).date;
|
|
200
|
+
} else if (method === _constants.SUMMARY_METHOD_MAP.Distinct_values) {
|
|
194
201
|
const pivotColumnTotal = (pivot_columns_total[totalKey] ? pivot_columns_total[totalKey] - 0 : 0) + total;
|
|
195
202
|
pivot_columns_total[totalKey] = Number.parseFloat(pivotColumnTotal.toFixed(8));
|
|
196
203
|
}
|
|
@@ -227,24 +234,24 @@ function calculateTwoDimensionTable(chart, value, username, userId) {
|
|
|
227
234
|
column_groupby_geolocation_granularity,
|
|
228
235
|
summary_columns_option
|
|
229
236
|
} = chart;
|
|
230
|
-
const table = TableUtils.getTableById(value.tables, table_id);
|
|
231
|
-
const view = table && Views.getViewById(table.views, view_id);
|
|
237
|
+
const table = _dtableStore.TableUtils.getTableById(value.tables, table_id);
|
|
238
|
+
const view = table && _dtableStore.Views.getViewById(table.views, view_id);
|
|
232
239
|
if (!view) return;
|
|
233
|
-
const groupbyColumn = TableUtils.getTableColumnByKey(table, groupby_column_key);
|
|
240
|
+
const groupbyColumn = _dtableStore.TableUtils.getTableColumnByKey(table, groupby_column_key);
|
|
234
241
|
if (!groupbyColumn) return;
|
|
235
|
-
const isGroupbyColumnDataAsAnArray = isArrayCellValue(groupbyColumn);
|
|
236
|
-
const rowGroupbyColumn = TableUtils.getTableColumnByKey(table, column_groupby_column_key);
|
|
242
|
+
const isGroupbyColumnDataAsAnArray = (0, _commonUtils.isArrayCellValue)(groupbyColumn);
|
|
243
|
+
const rowGroupbyColumn = _dtableStore.TableUtils.getTableColumnByKey(table, column_groupby_column_key);
|
|
237
244
|
if (!rowGroupbyColumn) {
|
|
238
245
|
return calculateOneDimensionTable(chart, value);
|
|
239
246
|
}
|
|
240
|
-
const isRowGroupbyColumnDataAsAnArray = isArrayCellValue(rowGroupbyColumn);
|
|
241
|
-
const summaryColumn = TableUtils.getTableColumnByKey(table, summary_column_key);
|
|
242
|
-
const statRows = Views.getViewRows(view, table, value, username, userId);
|
|
243
|
-
const formulaRows = Views.getTableFormulaResults(table, statRows, value);
|
|
247
|
+
const isRowGroupbyColumnDataAsAnArray = (0, _commonUtils.isArrayCellValue)(rowGroupbyColumn);
|
|
248
|
+
const summaryColumn = _dtableStore.TableUtils.getTableColumnByKey(table, summary_column_key);
|
|
249
|
+
const statRows = _dtableStore.Views.getViewRows(view, table, value, username, userId);
|
|
250
|
+
const formulaRows = _dtableStore.Views.getTableFormulaResults(table, statRows, value);
|
|
244
251
|
const pivot_summary_multiple_columns = [];
|
|
245
252
|
summary_columns_option.forEach(item => {
|
|
246
|
-
const column = TableUtils.getTableColumnByKey(table, item.key);
|
|
247
|
-
if (column && isNumericColumn(column)) {
|
|
253
|
+
const column = _dtableStore.TableUtils.getTableColumnByKey(table, item.key);
|
|
254
|
+
if (column && (0, _dtableStore.isNumericColumn)(column)) {
|
|
248
255
|
pivot_summary_multiple_columns.push({
|
|
249
256
|
key: item.key,
|
|
250
257
|
type: column.type,
|
|
@@ -275,12 +282,12 @@ function calculateTwoDimensionTable(chart, value, username, userId) {
|
|
|
275
282
|
_id: rowId
|
|
276
283
|
} = row;
|
|
277
284
|
const formulaRow = formulaRows[rowId];
|
|
278
|
-
const cellValueForColumn =
|
|
279
|
-
if (isValidRow(row, formulaRow, rowGroupbyColumn, include_empty)) {
|
|
285
|
+
const cellValueForColumn = _statUtils.default.getGroupLabel(row[rowGroupbyColumn.key], formulaRow, rowGroupbyColumn, column_groupby_date_granularity, column_groupby_geolocation_granularity, value);
|
|
286
|
+
if ((0, _rowUtils.isValidRow)(row, formulaRow, rowGroupbyColumn, include_empty)) {
|
|
280
287
|
updateTwoDimensionColumns(value, pivot_columns, rowGroupbyColumn, row, formulaRow, include_empty, column_groupby_date_granularity, column_groupby_geolocation_granularity, isRowGroupbyColumnDataAsAnArray);
|
|
281
288
|
}
|
|
282
|
-
if (isValidRow(row, formulaRow, groupbyColumn, include_empty)) {
|
|
283
|
-
const name =
|
|
289
|
+
if ((0, _rowUtils.isValidRow)(row, formulaRow, groupbyColumn, include_empty)) {
|
|
290
|
+
const name = _statUtils.default.getGroupLabel(row[groupbyColumn.key], formulaRow, groupbyColumn, groupby_date_granularity, groupby_geolocation_granularity, value);
|
|
284
291
|
let pivotRowIndex;
|
|
285
292
|
if (isGroupbyColumnDataAsAnArray) {
|
|
286
293
|
if (name.length === 0 && include_empty) {
|
|
@@ -304,18 +311,18 @@ function calculateTwoDimensionTable(chart, value, username, userId) {
|
|
|
304
311
|
pivot_columns_total,
|
|
305
312
|
pivot_table_total
|
|
306
313
|
} = getTwoDimensionTotal(summaryColumn, summary_type, summary_method, formulaRows, pivot_rows, pivot_columns);
|
|
307
|
-
|
|
308
|
-
|
|
314
|
+
_statUtils.default.sortStatistics(pivot_rows, groupbyColumn, 'name');
|
|
315
|
+
_statUtils.default.sortStatistics(pivot_columns, rowGroupbyColumn, 'key');
|
|
309
316
|
|
|
310
317
|
// format shown label(name)
|
|
311
318
|
const map = {};
|
|
312
319
|
pivot_columns.forEach(column => {
|
|
313
|
-
const name = getFormattedLabel(rowGroupbyColumn, column.key, value.collaborators);
|
|
320
|
+
const name = (0, _rowUtils.getFormattedLabel)(rowGroupbyColumn, column.key, value.collaborators);
|
|
314
321
|
map[column.key] = name;
|
|
315
322
|
column.key = name;
|
|
316
323
|
});
|
|
317
324
|
pivot_rows.forEach(row => {
|
|
318
|
-
row.name = getFormattedLabel(groupbyColumn, row.name, value.collaborators);
|
|
325
|
+
row.name = (0, _rowUtils.getFormattedLabel)(groupbyColumn, row.name, value.collaborators);
|
|
319
326
|
const cells = {};
|
|
320
327
|
Object.keys(row.cells).forEach(key => {
|
|
321
328
|
cells[map[key]] = row.cells[key];
|
|
@@ -336,7 +343,7 @@ function calculateTwoDimensionTable(chart, value, username, userId) {
|
|
|
336
343
|
};
|
|
337
344
|
}
|
|
338
345
|
function updateTwoDimensionColumns(value, pivot_columns, column, row, formulaRow, isIncludeEmpty, dateGranularity, geolocationGranularity, isRowGroupbyColumnDataAsAnArray) {
|
|
339
|
-
let key =
|
|
346
|
+
let key = _statUtils.default.getGroupLabel(row[column.key], formulaRow, column, dateGranularity, geolocationGranularity, value);
|
|
340
347
|
let pivotColumnIndex;
|
|
341
348
|
if (isRowGroupbyColumnDataAsAnArray) {
|
|
342
349
|
if (key.length === 0 && isIncludeEmpty) {
|
|
@@ -413,7 +420,7 @@ function updateTwoDimensionRows(pivot_rows, pivot_columns, index, name, row, isC
|
|
|
413
420
|
}
|
|
414
421
|
}
|
|
415
422
|
function isSameName(prevName, currName) {
|
|
416
|
-
if (isNumber(prevName) && isNumber(currName)) {
|
|
423
|
+
if ((0, _dtableStore.isNumber)(prevName) && (0, _dtableStore.isNumber)(currName)) {
|
|
417
424
|
return prevName === currName;
|
|
418
425
|
}
|
|
419
426
|
if (!prevName && !currName) {
|
|
@@ -436,7 +443,7 @@ function getTwoDimensionTotal(summaryColumn, summary_type, summary_method, formu
|
|
|
436
443
|
let {
|
|
437
444
|
type: summary_column_type
|
|
438
445
|
} = summaryColumn || {};
|
|
439
|
-
const isSummaryDateColumn = summaryColumn && isDateColumn(summaryColumn);
|
|
446
|
+
const isSummaryDateColumn = summaryColumn && (0, _dtableStore.isDateColumn)(summaryColumn);
|
|
440
447
|
let date_summary_column_format = isSummaryDateColumn ? summaryColumn.data.format : '';
|
|
441
448
|
Array.isArray(pivot_rows) && pivot_rows.forEach(pivotRow => {
|
|
442
449
|
let {
|
|
@@ -475,8 +482,8 @@ function getTwoDimensionTotal(summaryColumn, summary_type, summary_method, formu
|
|
|
475
482
|
pivot_table_total += total;
|
|
476
483
|
}
|
|
477
484
|
});
|
|
478
|
-
if (summaryColumn && isDateColumn(summaryColumn)) {
|
|
479
|
-
if (summary_method === SUMMARY_METHOD_MAP.Distinct_values) {
|
|
485
|
+
if (summaryColumn && (0, _dtableStore.isDateColumn)(summaryColumn)) {
|
|
486
|
+
if (summary_method === _constants.SUMMARY_METHOD_MAP.Distinct_values) {
|
|
480
487
|
pivot_columns_total = Number.parseFloat(pivot_table_total.toFixed(8));
|
|
481
488
|
} else {
|
|
482
489
|
pivot_columns_total = showTwoDimensionDateColumnsAndRowsTotal(dateColumnsTotalArr, pivot_rows, date_summary_column_format, pivot_columns, summary_method);
|
|
@@ -501,15 +508,15 @@ function getTotal(summary_column, summary_type, summary_method) {
|
|
|
501
508
|
const summary_column_type = summary_column ? summary_column.type : '';
|
|
502
509
|
const rowsLength = rows.length;
|
|
503
510
|
let total;
|
|
504
|
-
if (summary_type === SUMMARY_TYPE.COUNT) {
|
|
511
|
+
if (summary_type === _constants.SUMMARY_TYPE.COUNT) {
|
|
505
512
|
total = rowsLength;
|
|
506
|
-
} else if (summary_type === SUMMARY_TYPE.ADVANCED) {
|
|
507
|
-
if (summary_method === SUMMARY_METHOD_MAP.Distinct_values) {
|
|
513
|
+
} else if (summary_type === _constants.SUMMARY_TYPE.ADVANCED) {
|
|
514
|
+
if (summary_method === _constants.SUMMARY_METHOD_MAP.Distinct_values) {
|
|
508
515
|
total = 0;
|
|
509
516
|
let existMap = {};
|
|
510
517
|
rows.forEach(row => {
|
|
511
518
|
let num;
|
|
512
|
-
if (FORMULA_COLUMN_TYPES_MAP[summary_column_type]) {
|
|
519
|
+
if (_dtableStore.FORMULA_COLUMN_TYPES_MAP[summary_column_type]) {
|
|
513
520
|
const formulaRow = formula_rows[row._id] || {};
|
|
514
521
|
num = formulaRow[summary_column_key];
|
|
515
522
|
num = Array.isArray(num) ? num[0] : num;
|
|
@@ -530,14 +537,14 @@ function getTotal(summary_column, summary_type, summary_method) {
|
|
|
530
537
|
});
|
|
531
538
|
return total;
|
|
532
539
|
}
|
|
533
|
-
if (summary_column && isDateColumn(summary_column)) {
|
|
540
|
+
if (summary_column && (0, _dtableStore.isDateColumn)(summary_column)) {
|
|
534
541
|
if (rowsLength === 0) return;
|
|
535
542
|
let dateArr = [];
|
|
536
543
|
rows.forEach(r => {
|
|
537
544
|
let formatDate = {};
|
|
538
545
|
let formatDateData;
|
|
539
546
|
let value = r[summary_column_key];
|
|
540
|
-
if (FORMULA_COLUMN_TYPES_MAP[summary_column_type]) {
|
|
547
|
+
if (_dtableStore.FORMULA_COLUMN_TYPES_MAP[summary_column_type]) {
|
|
541
548
|
let formulaRow = formula_rows[r._id] || {};
|
|
542
549
|
value = formulaRow[summary_column_key];
|
|
543
550
|
}
|
|
@@ -554,21 +561,21 @@ function getTotal(summary_column, summary_type, summary_method) {
|
|
|
554
561
|
formatDate.value = Date.parse(formatDateData);
|
|
555
562
|
dateArr.push(formatDate);
|
|
556
563
|
});
|
|
557
|
-
if (summary_method === SUMMARY_METHOD_MAP.Max) {
|
|
558
|
-
total = getDateMaxOrMinTotal(dateArr, SUMMARY_METHOD_MAP.Max);
|
|
559
|
-
} else if (summary_method === SUMMARY_METHOD_MAP.Min) {
|
|
560
|
-
total = getDateMaxOrMinTotal(dateArr, SUMMARY_METHOD_MAP.Min);
|
|
564
|
+
if (summary_method === _constants.SUMMARY_METHOD_MAP.Max) {
|
|
565
|
+
total = getDateMaxOrMinTotal(dateArr, _constants.SUMMARY_METHOD_MAP.Max);
|
|
566
|
+
} else if (summary_method === _constants.SUMMARY_METHOD_MAP.Min) {
|
|
567
|
+
total = getDateMaxOrMinTotal(dateArr, _constants.SUMMARY_METHOD_MAP.Min);
|
|
561
568
|
}
|
|
562
569
|
} else {
|
|
563
570
|
switch (summary_method) {
|
|
564
|
-
case SUMMARY_METHOD_MAP.Sum:
|
|
565
|
-
case SUMMARY_METHOD_MAP.Mean:
|
|
571
|
+
case _constants.SUMMARY_METHOD_MAP.Sum:
|
|
572
|
+
case _constants.SUMMARY_METHOD_MAP.Mean:
|
|
566
573
|
{
|
|
567
574
|
let sum = 0;
|
|
568
575
|
let validNumbersCount = 0;
|
|
569
576
|
rows.forEach(r => {
|
|
570
577
|
let num;
|
|
571
|
-
if (FORMULA_COLUMN_TYPES_MAP[summary_column_type]) {
|
|
578
|
+
if (_dtableStore.FORMULA_COLUMN_TYPES_MAP[summary_column_type]) {
|
|
572
579
|
let formulaRow = formula_rows[r._id] || {};
|
|
573
580
|
if (formulaRow[summary_column_key] && typeof formulaRow[summary_column_key] === 'object') {
|
|
574
581
|
num = formulaRow[summary_column_key][0];
|
|
@@ -578,7 +585,7 @@ function getTotal(summary_column, summary_type, summary_method) {
|
|
|
578
585
|
} else {
|
|
579
586
|
num = r[summary_column_key];
|
|
580
587
|
}
|
|
581
|
-
if (isNumber(num)) {
|
|
588
|
+
if ((0, _dtableStore.isNumber)(num)) {
|
|
582
589
|
validNumbersCount++;
|
|
583
590
|
sum += num;
|
|
584
591
|
}
|
|
@@ -590,13 +597,13 @@ function getTotal(summary_column, summary_type, summary_method) {
|
|
|
590
597
|
}
|
|
591
598
|
break;
|
|
592
599
|
}
|
|
593
|
-
case SUMMARY_METHOD_MAP.Max:
|
|
594
|
-
case SUMMARY_METHOD_MAP.Min:
|
|
600
|
+
case _constants.SUMMARY_METHOD_MAP.Max:
|
|
601
|
+
case _constants.SUMMARY_METHOD_MAP.Min:
|
|
595
602
|
{
|
|
596
603
|
if (rowsLength > 0) {
|
|
597
604
|
let result = rows.reduce((current, next) => {
|
|
598
605
|
let currentValue, nextValue;
|
|
599
|
-
if (FORMULA_COLUMN_TYPES_MAP[summary_column_type]) {
|
|
606
|
+
if (_dtableStore.FORMULA_COLUMN_TYPES_MAP[summary_column_type]) {
|
|
600
607
|
let currentFormulaRow = formula_rows[current._id] || {};
|
|
601
608
|
let nextFormulaRow = formula_rows[next._id] || {};
|
|
602
609
|
currentValue = currentFormulaRow[summary_column_key];
|
|
@@ -615,7 +622,7 @@ function getTotal(summary_column, summary_type, summary_method) {
|
|
|
615
622
|
return isNextGreater ? next : current;
|
|
616
623
|
}
|
|
617
624
|
});
|
|
618
|
-
if (FORMULA_COLUMN_TYPES_MAP[summary_column_type]) {
|
|
625
|
+
if (_dtableStore.FORMULA_COLUMN_TYPES_MAP[summary_column_type]) {
|
|
619
626
|
let formulaRow = formula_rows[result._id];
|
|
620
627
|
if (formulaRow) {
|
|
621
628
|
if (formulaRow[summary_column_key] && typeof formulaRow[summary_column_key] === 'object') {
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _dtableStore = require("dtable-store");
|
|
9
|
+
var _statUtils = _interopRequireDefault(require("../../utils/stat-utils"));
|
|
10
|
+
var _commonUtils = require("../../utils/common-utils");
|
|
11
|
+
var _rowUtils = require("../../utils/row-utils");
|
|
12
|
+
var _constants = require("../../constants");
|
|
6
13
|
function calculateResult(chart, value, username, userId) {
|
|
7
14
|
const {
|
|
8
15
|
table_id,
|
|
@@ -11,26 +18,26 @@ function calculateResult(chart, value, username, userId) {
|
|
|
11
18
|
y_axis_column,
|
|
12
19
|
group_column
|
|
13
20
|
} = chart;
|
|
14
|
-
const table = TableUtils.getTableById(value.tables, table_id);
|
|
15
|
-
const view = table && Views.getViewById(table.views, view_id);
|
|
21
|
+
const table = _dtableStore.TableUtils.getTableById(value.tables, table_id);
|
|
22
|
+
const view = table && _dtableStore.Views.getViewById(table.views, view_id);
|
|
16
23
|
if (!view) {
|
|
17
24
|
return [];
|
|
18
25
|
}
|
|
19
|
-
const selectedXAxisColumn = TableUtils.getTableColumnByKey(table, x_axis_column);
|
|
20
|
-
const selectedYAxisColumn = TableUtils.getTableColumnByKey(table, y_axis_column);
|
|
21
|
-
const selectedGroupColumn = TableUtils.getTableColumnByKey(table, group_column);
|
|
22
|
-
const statRows = Views.getViewRows(view, table, value, username, userId);
|
|
23
|
-
const formulaRows = Views.getTableFormulaResults(table, statRows, value);
|
|
26
|
+
const selectedXAxisColumn = _dtableStore.TableUtils.getTableColumnByKey(table, x_axis_column);
|
|
27
|
+
const selectedYAxisColumn = _dtableStore.TableUtils.getTableColumnByKey(table, y_axis_column);
|
|
28
|
+
const selectedGroupColumn = _dtableStore.TableUtils.getTableColumnByKey(table, group_column);
|
|
29
|
+
const statRows = _dtableStore.Views.getViewRows(view, table, value, username, userId);
|
|
30
|
+
const formulaRows = _dtableStore.Views.getTableFormulaResults(table, statRows, value);
|
|
24
31
|
const data = [];
|
|
25
32
|
statRows.forEach(row => {
|
|
26
33
|
const {
|
|
27
34
|
_id: rowId
|
|
28
35
|
} = row;
|
|
29
36
|
const formulaRow = formulaRows[rowId] || {};
|
|
30
|
-
let x_axis = getCellValue(row, formulaRow, selectedXAxisColumn);
|
|
31
|
-
let y_axis = getCellValue(row, formulaRow, selectedYAxisColumn);
|
|
32
|
-
x_axis = isNumber(x_axis) ? x_axis : 0;
|
|
33
|
-
y_axis = isNumber(y_axis) ? y_axis : 0;
|
|
37
|
+
let x_axis = (0, _rowUtils.getCellValue)(row, formulaRow, selectedXAxisColumn);
|
|
38
|
+
let y_axis = (0, _rowUtils.getCellValue)(row, formulaRow, selectedYAxisColumn);
|
|
39
|
+
x_axis = (0, _dtableStore.isNumber)(x_axis) ? x_axis : 0;
|
|
40
|
+
y_axis = (0, _dtableStore.isNumber)(y_axis) ? y_axis : 0;
|
|
34
41
|
const name = getColumnValue(row, formulaRow, selectedGroupColumn, value);
|
|
35
42
|
const nameIndex = data.findIndex(r => r.name === name && r.x_axis === x_axis && r.y_axis === y_axis);
|
|
36
43
|
const dataItem = {
|
|
@@ -59,11 +66,11 @@ function updateBasicChartRows(results, index, name, dataItem, row) {
|
|
|
59
66
|
}
|
|
60
67
|
function getColumnValue(data, formulaRow, column, dtableValue) {
|
|
61
68
|
const tempValue = data[column.key];
|
|
62
|
-
let value =
|
|
63
|
-
if (isArrayCellValue(column)) {
|
|
69
|
+
let value = _statUtils.default.getGroupLabel(tempValue, formulaRow, column, _constants.DATE_GRANULARITY.DAY, '', dtableValue);
|
|
70
|
+
if ((0, _commonUtils.isArrayCellValue)(column)) {
|
|
64
71
|
value = value[0];
|
|
65
72
|
}
|
|
66
|
-
value = getFormattedLabel(column, value, dtableValue.collaborators);
|
|
73
|
+
value = (0, _rowUtils.getFormattedLabel)(column, value, dtableValue.collaborators);
|
|
67
74
|
return value;
|
|
68
75
|
}
|
|
69
|
-
|
|
76
|
+
var _default = exports.default = calculateResult;
|
|
@@ -1,12 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
dayjs
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
9
|
+
var _quarterOfYear = _interopRequireDefault(require("dayjs/plugin/quarterOfYear"));
|
|
10
|
+
var _dtableStore = require("dtable-store");
|
|
11
|
+
var _constants = require("../../constants");
|
|
12
|
+
var _statUtils = _interopRequireDefault(require("../../utils/stat-utils"));
|
|
13
|
+
var _rowUtils = require("../../utils/row-utils");
|
|
14
|
+
var _commonUtils = require("../../utils/common-utils");
|
|
15
|
+
var _trendUtils = require("../../utils/trend-utils");
|
|
16
|
+
_dayjs.default.extend(_quarterOfYear.default);
|
|
10
17
|
function calculateStatItem(chart, value, username, userId) {
|
|
11
18
|
const {
|
|
12
19
|
table_id,
|
|
@@ -17,16 +24,16 @@ function calculateStatItem(chart, value, username, userId) {
|
|
|
17
24
|
summary_type,
|
|
18
25
|
summary_method
|
|
19
26
|
} = chart;
|
|
20
|
-
const selectedTable = TableUtils.getTableById(value.tables, table_id);
|
|
21
|
-
const selectedView = selectedTable && Views.getViewById(selectedTable.views, view_id);
|
|
22
|
-
const selectedColumn = TableUtils.getTableColumnByKey(selectedTable, date_column);
|
|
27
|
+
const selectedTable = _dtableStore.TableUtils.getTableById(value.tables, table_id);
|
|
28
|
+
const selectedView = selectedTable && _dtableStore.Views.getViewById(selectedTable.views, view_id);
|
|
29
|
+
const selectedColumn = _dtableStore.TableUtils.getTableColumnByKey(selectedTable, date_column);
|
|
23
30
|
const resultMap = new Map();
|
|
24
31
|
let formulaRows = {};
|
|
25
|
-
const rows = Views.getViewRows(selectedView, selectedTable, value, username, userId);
|
|
26
|
-
const numericColumn = TableUtils.getTableColumnByKey(selectedTable, summary_column);
|
|
27
|
-
if (summary_type === SUMMARY_TYPE.ADVANCED) {
|
|
28
|
-
if (FORMULA_COLUMN_TYPES_MAP[numericColumn.type]) {
|
|
29
|
-
formulaRows = Views.getTableFormulaResults(selectedTable, rows, value);
|
|
32
|
+
const rows = _dtableStore.Views.getViewRows(selectedView, selectedTable, value, username, userId);
|
|
33
|
+
const numericColumn = _dtableStore.TableUtils.getTableColumnByKey(selectedTable, summary_column);
|
|
34
|
+
if (summary_type === _constants.SUMMARY_TYPE.ADVANCED) {
|
|
35
|
+
if (_dtableStore.FORMULA_COLUMN_TYPES_MAP[numericColumn.type]) {
|
|
36
|
+
formulaRows = _dtableStore.Views.getTableFormulaResults(selectedTable, rows, value);
|
|
30
37
|
}
|
|
31
38
|
}
|
|
32
39
|
let granularity = date_granularity;
|
|
@@ -35,16 +42,16 @@ function calculateStatItem(chart, value, username, userId) {
|
|
|
35
42
|
}
|
|
36
43
|
rows.forEach(row => {
|
|
37
44
|
const dateValue = row[selectedColumn.key];
|
|
38
|
-
const label =
|
|
45
|
+
const label = _statUtils.default.getGroupLabel(dateValue, {}, selectedColumn, granularity, '', value);
|
|
39
46
|
if (dateValue) {
|
|
40
|
-
if (summary_type === SUMMARY_TYPE.COUNT) {
|
|
47
|
+
if (summary_type === _constants.SUMMARY_TYPE.COUNT) {
|
|
41
48
|
const currentCount = resultMap.get(label) || 0;
|
|
42
49
|
resultMap.set(label, currentCount + 1);
|
|
43
50
|
} else {
|
|
44
51
|
const formulaRow = formulaRows[row._id];
|
|
45
|
-
const numericValue = getCellValue(row, formulaRow, numericColumn);
|
|
52
|
+
const numericValue = (0, _rowUtils.getCellValue)(row, formulaRow, numericColumn);
|
|
46
53
|
const currentList = resultMap.get(label) || [];
|
|
47
|
-
if (isNumber(numericValue)) {
|
|
54
|
+
if ((0, _dtableStore.isNumber)(numericValue)) {
|
|
48
55
|
currentList.push(numericValue);
|
|
49
56
|
}
|
|
50
57
|
resultMap.set(label, currentList);
|
|
@@ -56,22 +63,22 @@ function calculateStatItem(chart, value, username, userId) {
|
|
|
56
63
|
const {
|
|
57
64
|
compareValue: value1,
|
|
58
65
|
comparedValue: value2
|
|
59
|
-
} = summaryDurationResult(resultMap, date_granularity, summary_type, summary_column, false);
|
|
66
|
+
} = (0, _trendUtils.summaryDurationResult)(resultMap, date_granularity, summary_type, summary_column, false);
|
|
60
67
|
currentValues = value1;
|
|
61
68
|
previousValues = value2;
|
|
62
69
|
} else {
|
|
63
70
|
const {
|
|
64
71
|
compareDate,
|
|
65
72
|
comparedDate
|
|
66
|
-
} = getCompareDate(date_granularity);
|
|
73
|
+
} = (0, _trendUtils.getCompareDate)(date_granularity);
|
|
67
74
|
currentValues = resultMap.get(compareDate);
|
|
68
75
|
previousValues = resultMap.get(comparedDate);
|
|
69
|
-
if (summary_type === SUMMARY_TYPE.ADVANCED) {
|
|
76
|
+
if (summary_type === _constants.SUMMARY_TYPE.ADVANCED) {
|
|
70
77
|
if (currentValues) {
|
|
71
|
-
currentValues = getSummaryResult(currentValues, summary_method);
|
|
78
|
+
currentValues = (0, _commonUtils.getSummaryResult)(currentValues, summary_method);
|
|
72
79
|
}
|
|
73
80
|
if (previousValues) {
|
|
74
|
-
previousValues = getSummaryResult(previousValues, summary_method);
|
|
81
|
+
previousValues = (0, _commonUtils.getSummaryResult)(previousValues, summary_method);
|
|
75
82
|
}
|
|
76
83
|
}
|
|
77
84
|
}
|
|
@@ -94,4 +101,4 @@ function calculateStatItem(chart, value, username, userId) {
|
|
|
94
101
|
type: currentValues > previousValues ? 'up' : 'down'
|
|
95
102
|
};
|
|
96
103
|
}
|
|
97
|
-
|
|
104
|
+
var _default = exports.default = calculateStatItem;
|