sea-chart 2.0.36 → 2.0.37
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/dist/api/index.js +59 -17
- package/dist/assets/css/sea-chart-d3-tooltip.css +1 -0
- package/dist/components/color-popover/color-rules-popover.js +2 -4
- package/dist/components/drill-down-settings/drill-down-fields-popover/index.js +4 -5
- package/dist/components/icon/index.js +13 -9
- package/dist/components/number-input/index.js +13 -7
- package/dist/components/popover/hide-column-popover/hide-column-popover-widgets/hide-column-item.js +3 -7
- package/dist/components/popover/hide-column-popover/hide-column-popover.css +1 -5
- package/dist/components/popover/hide-column-popover/hide-column-popover.js +4 -2
- package/dist/components/popover/sort-popover/sort-popover.js +7 -6
- package/dist/components/statistic-record-dialog/index.js +8 -9
- package/dist/components/tooltip/index.js +8 -26
- package/dist/editor/index.js +1 -5
- package/dist/locale/lang/de.js +0 -1
- package/dist/locale/lang/en.js +0 -1
- package/dist/locale/lang/es.js +0 -1
- package/dist/locale/lang/fr.js +0 -1
- package/dist/locale/lang/pt.js +0 -1
- package/dist/locale/lang/ru.js +0 -1
- package/dist/locale/lang/zh_CN.js +0 -1
- package/dist/model/funnel.js +2 -2
- package/dist/model/map-bubble.js +0 -4
- package/dist/services/map-json.js +0 -3
- package/dist/settings/advance-bar-settings/data-settings.js +1 -1
- package/dist/settings/advance-bar-settings/style-settings.js +3 -4
- package/dist/settings/bar-settings/data-settings.js +1 -1
- package/dist/settings/bar-settings/style-settings.js +2 -2
- package/dist/settings/basic-number-card/data-settings.js +2 -3
- package/dist/settings/combination-settings/data-settings.js +1 -0
- package/dist/settings/combination-settings/style-settings.js +2 -2
- package/dist/settings/dashboard-settings/data-settings.js +2 -3
- package/dist/settings/funnel-settings/components/funnel-layer-setting.js +7 -7
- package/dist/settings/index.js +3 -8
- package/dist/settings/table-element-settings/components/data-filter.js +25 -24
- package/dist/settings/table-element-settings/index.css +31 -1
- package/dist/settings/table-settings/data-settings.js +2 -3
- package/dist/settings/time-comparison-settings/style-settings.js +2 -2
- package/dist/settings/widgets/basic-summary/index.js +7 -8
- package/dist/settings/widgets/common-data-settings.js +6 -7
- package/dist/settings/widgets/data-filter/index.js +22 -30
- package/dist/settings/widgets/group-by.js +3 -4
- package/dist/settings/widgets/summary-settings.js +2 -3
- package/dist/settings/widgets/y-axis-group-settings.js +2 -3
- package/dist/utils/cell-format-utils.js +7 -9
- package/dist/utils/chart-utils/base-utils.js +86 -194
- package/dist/utils/chart-utils/index.js +3 -5
- package/dist/utils/chart-utils/original-data-utils/basic-chart-calculator.js +5 -5
- package/dist/utils/chart-utils/original-data-utils/card-calculator.js +2 -8
- package/dist/utils/chart-utils/original-data-utils/dashboard-calculator.js +3 -12
- package/dist/utils/chart-utils/original-data-utils/pivot-table-calculator.js +1 -4
- package/dist/utils/chart-utils/original-data-utils/scatter-calculator.js +0 -1
- package/dist/utils/chart-utils/original-data-utils/trend-calculator.js +3 -24
- package/dist/utils/chart-utils/sql-statistics-utils.js +177 -182
- package/dist/utils/column-utils.js +7 -20
- package/dist/utils/contexts.js +2 -5
- package/dist/utils/index.js +4 -25
- package/dist/utils/row-record-utils.js +20 -100
- package/dist/utils/sql/column-2-sql-column.js +10 -10
- package/dist/utils/trend-utils.js +2 -15
- package/dist/view/index.css +8 -2
- package/dist/view/index.js +9 -14
- package/dist/view/wrapper/area-group.js +7 -15
- package/dist/view/wrapper/bar-compare.js +2 -18
- package/dist/view/wrapper/bar-custom-stack.js +9 -35
- package/dist/view/wrapper/bar-group.js +26 -55
- package/dist/view/wrapper/bar-stack.js +2 -2
- package/dist/view/wrapper/basic-number-card.js +3 -27
- package/dist/view/wrapper/chart-component.js +440 -43
- package/dist/view/wrapper/completeness-group.js +49 -104
- package/dist/view/wrapper/dashboard.js +18 -68
- package/dist/view/wrapper/horizontal-bar-group.js +6 -26
- package/dist/view/wrapper/horizontal-bar-stack.js +2 -2
- package/dist/view/wrapper/line-group.js +3 -8
- package/dist/view/wrapper/map-world-bubble.js +0 -1
- package/dist/view/wrapper/map-world.js +0 -1
- package/dist/view/wrapper/pie.js +1 -1
- package/dist/view/wrapper/ring.js +1 -1
- package/dist/view/wrapper/scatter.js +6 -8
- package/dist/view/wrapper/table/two-dimension-table.js +2 -3
- package/dist/view/wrapper/table-element/components/records-header/index.js +1 -0
- package/dist/view/wrapper/table-element/components/resize-column-handle/resize-column-handle.js +1 -3
- package/dist/view/wrapper/table-element/index.js +21 -16
- package/dist/view/wrapper/trend.js +1 -24
- package/package.json +14 -17
|
@@ -24,6 +24,7 @@ class SQLStatisticsUtils {}
|
|
|
24
24
|
_SQLStatisticsUtils = SQLStatisticsUtils;
|
|
25
25
|
SQLStatisticsUtils.DATA_SOURCE = 'sql_statistics';
|
|
26
26
|
SQLStatisticsUtils.getGroupLabelFromDB = async (cellValue, column, chart, isPivot) => {
|
|
27
|
+
const dateGranularity = _baseUtils.default.getDateGranularityByType(chart);
|
|
27
28
|
const {
|
|
28
29
|
type,
|
|
29
30
|
data
|
|
@@ -37,6 +38,7 @@ SQLStatisticsUtils.getGroupLabelFromDB = async (cellValue, column, chart, isPivo
|
|
|
37
38
|
case _dtableUtils.CellType.CTIME:
|
|
38
39
|
case _dtableUtils.CellType.MTIME:
|
|
39
40
|
{
|
|
41
|
+
// handled in sql query result
|
|
40
42
|
return cellValue;
|
|
41
43
|
}
|
|
42
44
|
case _dtableUtils.CellType.NUMBER:
|
|
@@ -71,23 +73,23 @@ SQLStatisticsUtils.getGroupLabelFromDB = async (cellValue, column, chart, isPivo
|
|
|
71
73
|
return cellValue || null;
|
|
72
74
|
}
|
|
73
75
|
case _dtableUtils.CellType.FORMULA:
|
|
74
|
-
{
|
|
75
|
-
if (Array.isArray(cellValue)) {
|
|
76
|
-
const validValue = (0, _dtableUtils.getFormulaDisplayString)(cellValue, data) || [];
|
|
77
|
-
return validValue;
|
|
78
|
-
}
|
|
79
|
-
return cellValue || null;
|
|
80
|
-
}
|
|
81
76
|
case _dtableUtils.CellType.LINK_FORMULA:
|
|
82
77
|
{
|
|
83
78
|
const {
|
|
79
|
+
array_type,
|
|
84
80
|
result_type
|
|
85
81
|
} = data || {};
|
|
82
|
+
const validValue = (0, _dtableUtils.getFormulaDisplayString)(cellValue, data) || [];
|
|
83
|
+
if (array_type === 'date' && (cellValue === null || cellValue === void 0 ? void 0 : cellValue.length) === 1) {
|
|
84
|
+
if (!dateGranularity) return validValue;
|
|
85
|
+
if (dateGranularity.toUpperCase() === 'QUARTER') return _dtableUtils.DateUtils.getDateByGranularity(validValue, 'QUARTAR');
|
|
86
|
+
return _dtableUtils.DateUtils.getDateByGranularity(validValue, dateGranularity);
|
|
87
|
+
}
|
|
88
|
+
|
|
86
89
|
// handles mutiple select
|
|
87
90
|
if (result_type === 'array') {
|
|
88
91
|
return cellValue;
|
|
89
92
|
}
|
|
90
|
-
const validValue = (0, _dtableUtils.getFormulaDisplayString)(cellValue, data) || [];
|
|
91
93
|
if (!validValue && validValue !== 0) {
|
|
92
94
|
return null;
|
|
93
95
|
}
|
|
@@ -730,7 +732,7 @@ SQLStatisticsUtils.basicChartSQLResult2JavaScript = async (chart, sqlRows, chart
|
|
|
730
732
|
}
|
|
731
733
|
}
|
|
732
734
|
_baseUtils.default.sortCharts(result, groupbyColumn, 'name');
|
|
733
|
-
|
|
735
|
+
_baseUtils.default.updateTableViewList(result, groupbyColumn, 'name', 'color', false, true);
|
|
734
736
|
_baseUtils.default.updateSummaryValuePrecision(result, summaryColumn, 'value');
|
|
735
737
|
if (_constants.SUPPORT_DATA_SORT_CHART_TYPES.includes(type) && sort_type) {
|
|
736
738
|
_baseUtils.default.sortChartData(result, sort_type);
|
|
@@ -852,7 +854,7 @@ SQLStatisticsUtils.customChartSQLResult2JavaScript = async (chart, sqlRows, char
|
|
|
852
854
|
result = assembled;
|
|
853
855
|
}
|
|
854
856
|
_baseUtils.default.sortCharts(result, groupbyColumn, 'name');
|
|
855
|
-
|
|
857
|
+
_baseUtils.default.updateTableViewList(result, groupbyColumn, 'name', '', false, true);
|
|
856
858
|
_baseUtils.default.updateSummaryValuePrecision(result, summaryColumn, 'value');
|
|
857
859
|
return result;
|
|
858
860
|
};
|
|
@@ -889,7 +891,6 @@ SQLStatisticsUtils.compareSQLResult2Javascript = async (chart, sqlRows, chartSQL
|
|
|
889
891
|
const comparedEndDate = new Date(x_axis_compared_date_range_end);
|
|
890
892
|
for (const item of sqlRows) {
|
|
891
893
|
let name = item[sqlGroupbyColumnKey];
|
|
892
|
-
if (!name) continue;
|
|
893
894
|
const label = await _SQLStatisticsUtils.getGroupLabelFromDB(name, groupbyColumn, chart.config);
|
|
894
895
|
if (x_axis_date_granularity === 'quarter') {
|
|
895
896
|
name = (0, _dateTranslate.convertQuarterToDate)(name);
|
|
@@ -905,50 +906,30 @@ SQLStatisticsUtils.compareSQLResult2Javascript = async (chart, sqlRows, chartSQL
|
|
|
905
906
|
const currentValue = dateRangeResult.get(label);
|
|
906
907
|
if (!currentValue) {
|
|
907
908
|
if (isAdvanced) {
|
|
908
|
-
dateRangeResult.set(label,
|
|
909
|
-
value: [value],
|
|
910
|
-
date: name,
|
|
911
|
-
rows: [item]
|
|
912
|
-
});
|
|
909
|
+
dateRangeResult.set(label, [value]);
|
|
913
910
|
} else {
|
|
914
|
-
dateRangeResult.set(label,
|
|
915
|
-
value,
|
|
916
|
-
date: name,
|
|
917
|
-
rows: [item]
|
|
918
|
-
});
|
|
911
|
+
dateRangeResult.set(label, value);
|
|
919
912
|
}
|
|
920
913
|
} else {
|
|
921
914
|
if (isAdvanced) {
|
|
922
|
-
currentValue.
|
|
923
|
-
currentValue.rows.push(item);
|
|
915
|
+
currentValue.push(value);
|
|
924
916
|
} else {
|
|
925
|
-
|
|
926
|
-
currentValue.rows.push(item);
|
|
917
|
+
dateRangeResult.set(label, value + currentValue);
|
|
927
918
|
}
|
|
928
919
|
}
|
|
929
920
|
} else if (name >= comparedStartDate && name <= comparedEndDate) {
|
|
930
921
|
const currentValue = dateComparedResult.get(label);
|
|
931
922
|
if (!currentValue) {
|
|
932
923
|
if (isAdvanced) {
|
|
933
|
-
dateComparedResult.set(label,
|
|
934
|
-
value: [value],
|
|
935
|
-
date: name,
|
|
936
|
-
rows: [item]
|
|
937
|
-
});
|
|
924
|
+
dateComparedResult.set(label, [value]);
|
|
938
925
|
} else {
|
|
939
|
-
dateComparedResult.set(label,
|
|
940
|
-
value,
|
|
941
|
-
date: name,
|
|
942
|
-
rows: [item]
|
|
943
|
-
});
|
|
926
|
+
dateComparedResult.set(label, value);
|
|
944
927
|
}
|
|
945
928
|
} else {
|
|
946
929
|
if (isAdvanced) {
|
|
947
|
-
|
|
948
|
-
currentValue.rows.push(item);
|
|
930
|
+
dateComparedResult.push(value);
|
|
949
931
|
} else {
|
|
950
|
-
|
|
951
|
-
currentValue.rows.push(item);
|
|
932
|
+
dateComparedResult.set(label, value + currentValue);
|
|
952
933
|
}
|
|
953
934
|
}
|
|
954
935
|
}
|
|
@@ -956,23 +937,11 @@ SQLStatisticsUtils.compareSQLResult2Javascript = async (chart, sqlRows, chartSQL
|
|
|
956
937
|
let comparedResult = [];
|
|
957
938
|
let rangeResult = [];
|
|
958
939
|
const data = (summaryColumn === null || summaryColumn === void 0 ? void 0 : summaryColumn.data) || {};
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
const sortedDateRangeEntries = Array.from(dateRangeResult.entries()).sort((a, b) => {
|
|
962
|
-
return a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0;
|
|
963
|
-
});
|
|
964
|
-
const sortedDateComparedEntries = Array.from(dateComparedResult.entries()).sort((a, b) => {
|
|
965
|
-
return a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0;
|
|
966
|
-
});
|
|
967
|
-
for (let item of sortedDateRangeEntries) {
|
|
968
|
-
const {
|
|
969
|
-
value: rawValue,
|
|
970
|
-
rows
|
|
971
|
-
} = item[1] || {};
|
|
972
|
-
let value = rawValue;
|
|
940
|
+
for (let item of dateRangeResult) {
|
|
941
|
+
let value = item[1];
|
|
973
942
|
let formatted_value = value;
|
|
974
943
|
if (isAdvanced) {
|
|
975
|
-
value = (0, _columnUtils.getSummaryResult)(
|
|
944
|
+
value = (0, _columnUtils.getSummaryResult)(item[1], y_axis_summary_method, data.precision);
|
|
976
945
|
formatted_value = (0, _columnUtils.getFormattedValue)(value, summaryColumn, y_axis_summary_method);
|
|
977
946
|
}
|
|
978
947
|
rangeResult.push({
|
|
@@ -980,21 +949,19 @@ SQLStatisticsUtils.compareSQLResult2Javascript = async (chart, sqlRows, chartSQL
|
|
|
980
949
|
group_name: groupName1,
|
|
981
950
|
raw_name: item[0],
|
|
982
951
|
value,
|
|
983
|
-
rows: rows || [],
|
|
984
952
|
formatted_value
|
|
985
953
|
});
|
|
986
954
|
}
|
|
987
955
|
let index = 0;
|
|
988
|
-
for (let item of
|
|
956
|
+
for (let item of dateComparedResult) {
|
|
989
957
|
let dateRangeItem = rangeResult[index];
|
|
990
958
|
if (!dateRangeItem) {
|
|
991
959
|
break;
|
|
992
960
|
}
|
|
993
|
-
let value = item[1]
|
|
994
|
-
const rows = item[1].rows;
|
|
961
|
+
let value = item[1];
|
|
995
962
|
let formatted_value = value;
|
|
996
963
|
if (isAdvanced) {
|
|
997
|
-
value = (0, _columnUtils.getSummaryResult)(item[1]
|
|
964
|
+
value = (0, _columnUtils.getSummaryResult)(item[1], y_axis_summary_method, data.precision);
|
|
998
965
|
formatted_value = (0, _columnUtils.getFormattedValue)(value, summaryColumn, y_axis_summary_method);
|
|
999
966
|
}
|
|
1000
967
|
const newItem = {
|
|
@@ -1002,7 +969,6 @@ SQLStatisticsUtils.compareSQLResult2Javascript = async (chart, sqlRows, chartSQL
|
|
|
1002
969
|
group_name: groupName2,
|
|
1003
970
|
raw_name: item[0],
|
|
1004
971
|
value,
|
|
1005
|
-
rows,
|
|
1006
972
|
formatted_value
|
|
1007
973
|
};
|
|
1008
974
|
if (display_increase) {
|
|
@@ -1021,8 +987,6 @@ SQLStatisticsUtils.compareSQLResult2Javascript = async (chart, sqlRows, chartSQL
|
|
|
1021
987
|
}
|
|
1022
988
|
_baseUtils.default.updateSummaryValuePrecision(comparedResult, summaryColumn, 'value');
|
|
1023
989
|
_baseUtils.default.updateSummaryValuePrecision(rangeResult, summaryColumn, 'value');
|
|
1024
|
-
_baseUtils.default.sortCharts(rangeResult, groupbyColumn, 'name');
|
|
1025
|
-
_baseUtils.default.sortCharts(comparedResult, groupbyColumn, 'name');
|
|
1026
990
|
return [...comparedResult, ...rangeResult];
|
|
1027
991
|
};
|
|
1028
992
|
SQLStatisticsUtils.combinationSQLResult2Javascript = async (chart, sqlRows, chartSQLMap, columnMap, tables) => {
|
|
@@ -1226,7 +1190,7 @@ SQLStatisticsUtils.combinationSQLResult2Javascript = async (chart, sqlRows, char
|
|
|
1226
1190
|
}
|
|
1227
1191
|
}
|
|
1228
1192
|
}
|
|
1229
|
-
|
|
1193
|
+
_baseUtils.default.updateTableViewList(result, groupbyColumn, 'name', '', false, true);
|
|
1230
1194
|
_baseUtils.default.sortCharts(result, groupbyColumn, 'name');
|
|
1231
1195
|
_baseUtils.default.updateSummaryValuePrecision(result, summaryColumnLeft, 'value_left');
|
|
1232
1196
|
_baseUtils.default.updateSummaryValuePrecision(result, summaryColumnRight, 'value_right');
|
|
@@ -1332,72 +1296,9 @@ SQLStatisticsUtils.groupingTwoDimensionChartSQLResult2JavaScript = async (chart,
|
|
|
1332
1296
|
}
|
|
1333
1297
|
}
|
|
1334
1298
|
}
|
|
1335
|
-
|
|
1336
|
-
// fill empty group name with value 0
|
|
1337
|
-
const allGroupNames = new Set();
|
|
1338
|
-
const nameGroupMap = new Map();
|
|
1339
|
-
result.forEach(item => {
|
|
1340
|
-
const {
|
|
1341
|
-
name,
|
|
1342
|
-
group_name: groupName
|
|
1343
|
-
} = item;
|
|
1344
|
-
allGroupNames.add(groupName);
|
|
1345
|
-
if (!nameGroupMap.has(name)) {
|
|
1346
|
-
nameGroupMap.set(name, new Set());
|
|
1347
|
-
}
|
|
1348
|
-
nameGroupMap.get(name).add(groupName);
|
|
1349
|
-
});
|
|
1350
|
-
const isEmptyGroupName = groupName => groupName === undefined || groupName === null || groupName === '';
|
|
1351
|
-
const groupNameList = Array.from(allGroupNames).sort((a, b) => {
|
|
1352
|
-
const aEmpty = isEmptyGroupName(a);
|
|
1353
|
-
const bEmpty = isEmptyGroupName(b);
|
|
1354
|
-
if (aEmpty && !bEmpty) return 1;
|
|
1355
|
-
if (!aEmpty && bEmpty) return -1;
|
|
1356
|
-
return "".concat(a !== null && a !== void 0 ? a : '').localeCompare("".concat(b !== null && b !== void 0 ? b : ''));
|
|
1357
|
-
});
|
|
1358
|
-
nameGroupMap.forEach((groupSet, name) => {
|
|
1359
|
-
groupNameList.forEach(groupName => {
|
|
1360
|
-
if (!groupSet.has(groupName)) {
|
|
1361
|
-
result.push({
|
|
1362
|
-
name,
|
|
1363
|
-
rows: [],
|
|
1364
|
-
group_name: groupName,
|
|
1365
|
-
value: 0
|
|
1366
|
-
});
|
|
1367
|
-
}
|
|
1368
|
-
});
|
|
1369
|
-
});
|
|
1370
|
-
|
|
1371
|
-
// ensure each name keeps original order while its group_name entries follow the normalized group order
|
|
1372
|
-
const groupOrder = new Map(groupNameList.map((groupName, index) => [groupName, index]));
|
|
1373
|
-
const nameOrder = [];
|
|
1374
|
-
const seenNames = new Set();
|
|
1375
|
-
const nameBuckets = new Map();
|
|
1376
|
-
result.forEach(item => {
|
|
1377
|
-
if (!seenNames.has(item.name)) {
|
|
1378
|
-
seenNames.add(item.name);
|
|
1379
|
-
nameOrder.push(item.name);
|
|
1380
|
-
}
|
|
1381
|
-
if (!nameBuckets.has(item.name)) {
|
|
1382
|
-
nameBuckets.set(item.name, []);
|
|
1383
|
-
}
|
|
1384
|
-
nameBuckets.get(item.name).push(item);
|
|
1385
|
-
});
|
|
1386
|
-
const orderedResult = [];
|
|
1387
|
-
nameOrder.forEach(name => {
|
|
1388
|
-
const items = nameBuckets.get(name).sort((a, b) => {
|
|
1389
|
-
var _a$group_name, _b$group_name;
|
|
1390
|
-
const aOrder = groupOrder.has(a.group_name) ? groupOrder.get(a.group_name) : Number.MAX_SAFE_INTEGER;
|
|
1391
|
-
const bOrder = groupOrder.has(b.group_name) ? groupOrder.get(b.group_name) : Number.MAX_SAFE_INTEGER;
|
|
1392
|
-
if (aOrder !== bOrder) return aOrder - bOrder;
|
|
1393
|
-
return "".concat((_a$group_name = a.group_name) !== null && _a$group_name !== void 0 ? _a$group_name : '').localeCompare("".concat((_b$group_name = b.group_name) !== null && _b$group_name !== void 0 ? _b$group_name : ''));
|
|
1394
|
-
});
|
|
1395
|
-
orderedResult.push(...items);
|
|
1396
|
-
});
|
|
1397
|
-
result.splice(0, result.length, ...orderedResult);
|
|
1398
1299
|
_baseUtils.default.sortCharts(result, groupbyColumn, 'name');
|
|
1399
|
-
|
|
1400
|
-
|
|
1300
|
+
_baseUtils.default.updateTableViewList(result, groupbyColumn, 'name', 'color', false, true);
|
|
1301
|
+
_baseUtils.default.updateTableViewList(result, columnGroupbyColumn, 'group_name', 'group_color', false, false);
|
|
1401
1302
|
_baseUtils.default.updateSummaryValuePrecision(result, summaryColumn, 'value');
|
|
1402
1303
|
return result;
|
|
1403
1304
|
};
|
|
@@ -1455,7 +1356,7 @@ SQLStatisticsUtils.groupingChartSQLResult2JavaScript = async (chart, sqlRows, ch
|
|
|
1455
1356
|
}
|
|
1456
1357
|
}
|
|
1457
1358
|
_baseUtils.default.sortCharts(result, groupbyColumn, 'name');
|
|
1458
|
-
|
|
1359
|
+
_baseUtils.default.updateTableViewList(result, groupbyColumn, 'name', 'color', false, true);
|
|
1459
1360
|
const allSummaryColumns = [summaryColumn].concat(summaryColumnsWithMethod.map(item => item.column));
|
|
1460
1361
|
|
|
1461
1362
|
// format precision of enabled precision columns
|
|
@@ -1617,7 +1518,7 @@ SQLStatisticsUtils.trendMapChartSQLResult2JavaScript = (chart, sqlRows, chartSQL
|
|
|
1617
1518
|
const {
|
|
1618
1519
|
compareDate,
|
|
1619
1520
|
comparedDate
|
|
1620
|
-
} = (0, _trendUtils.getCompareDate)(date_granularity
|
|
1521
|
+
} = (0, _trendUtils.getCompareDate)(date_granularity);
|
|
1621
1522
|
for (const item of sqlRows) {
|
|
1622
1523
|
if (!item[sqlGroupbyColumnKey]) continue;
|
|
1623
1524
|
const currentDate = item[sqlGroupbyColumnKey] + '';
|
|
@@ -1725,7 +1626,7 @@ SQLStatisticsUtils.sqlResult2JavaScript = async (chart, sqlRows, chartSQLMap, co
|
|
|
1725
1626
|
case _constants.CHART_TYPE.COMPLETENESS:
|
|
1726
1627
|
case _constants.CHART_TYPE.COMPLETENESS_GROUP:
|
|
1727
1628
|
{
|
|
1728
|
-
const result =
|
|
1629
|
+
const result = _SQLStatisticsUtils.completenessSQlResult(chart, sqlRows, chartSQLMap, tables);
|
|
1729
1630
|
return {
|
|
1730
1631
|
result
|
|
1731
1632
|
};
|
|
@@ -1756,7 +1657,7 @@ SQLStatisticsUtils.sqlResult2JavaScript = async (chart, sqlRows, chartSQLMap, co
|
|
|
1756
1657
|
case _constants.CHART_TYPE.SCATTER:
|
|
1757
1658
|
{
|
|
1758
1659
|
return {
|
|
1759
|
-
result:
|
|
1660
|
+
result: _SQLStatisticsUtils.scatterSQLResult2JavaScript(chart, sqlRows, chartSQLMap, columnMap, tables)
|
|
1760
1661
|
};
|
|
1761
1662
|
}
|
|
1762
1663
|
case _constants.CHART_TYPE.BAR_CUSTOM:
|
|
@@ -1810,10 +1711,16 @@ SQLStatisticsUtils._get_completeness_name = (row, column) => {
|
|
|
1810
1711
|
}
|
|
1811
1712
|
return value;
|
|
1812
1713
|
};
|
|
1813
|
-
SQLStatisticsUtils.completenessSQlResult =
|
|
1714
|
+
SQLStatisticsUtils.completenessSQlResult = (chart, sqlRows, chartSQLMap, tables) => {
|
|
1715
|
+
const {
|
|
1716
|
+
config: {
|
|
1717
|
+
type
|
|
1718
|
+
}
|
|
1719
|
+
} = chart;
|
|
1720
|
+
const isGroup = type === _constants.CHART_TYPE.COMPLETENESS_GROUP;
|
|
1814
1721
|
const {
|
|
1815
1722
|
sqlColumns,
|
|
1816
|
-
|
|
1723
|
+
sqlColumnGroupByColumnKey
|
|
1817
1724
|
} = chartSQLMap;
|
|
1818
1725
|
const {
|
|
1819
1726
|
name_column,
|
|
@@ -1821,23 +1728,134 @@ SQLStatisticsUtils.completenessSQlResult = async (chart, sqlRows, chartSQLMap, t
|
|
|
1821
1728
|
target_column,
|
|
1822
1729
|
column_groupby_column
|
|
1823
1730
|
} = sqlColumns;
|
|
1731
|
+
const res = [];
|
|
1732
|
+
let summedSqlRows;
|
|
1824
1733
|
const nameColumnDataAsAnArray = (0, _baseUtils.findIfColumnDataIsArray)(name_column);
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1734
|
+
if (!isGroup) {
|
|
1735
|
+
if (nameColumnDataAsAnArray) {
|
|
1736
|
+
const sumSqlRows = sqlRows.reduce((acc, row) => {
|
|
1737
|
+
const names = row[name_column.key];
|
|
1738
|
+
if (!names) {
|
|
1739
|
+
row[name_column.key] = _intl.default.get('Empty');
|
|
1740
|
+
acc[_intl.default.get('Empty')] = row;
|
|
1741
|
+
return acc;
|
|
1742
|
+
}
|
|
1743
|
+
names.forEach(name => {
|
|
1744
|
+
if (!acc[name]) {
|
|
1745
|
+
row[name_column.key] = name;
|
|
1746
|
+
acc[name] = row;
|
|
1747
|
+
} else {
|
|
1748
|
+
const accRow = acc[name];
|
|
1749
|
+
Object.keys(row).forEach(key => {
|
|
1750
|
+
if (key === completed_column.key || key === target_column.key) {
|
|
1751
|
+
// in case of null
|
|
1752
|
+
if (!row[key]) {
|
|
1753
|
+
row[key] = 0;
|
|
1754
|
+
}
|
|
1755
|
+
if (!accRow[key]) {
|
|
1756
|
+
accRow[key] = 0;
|
|
1757
|
+
}
|
|
1758
|
+
accRow[key] = accRow[key] + row[key];
|
|
1759
|
+
}
|
|
1760
|
+
});
|
|
1761
|
+
}
|
|
1762
|
+
});
|
|
1763
|
+
return acc;
|
|
1764
|
+
}, {});
|
|
1765
|
+
summedSqlRows = Object.values(sumSqlRows);
|
|
1766
|
+
} else {
|
|
1767
|
+
const sumSqlRows = sqlRows.reduce((acc, row) => {
|
|
1768
|
+
const nameValue = row[name_column.key];
|
|
1769
|
+
if (!nameValue) {
|
|
1770
|
+
row[name_column.key] = _intl.default.get('Empty');
|
|
1771
|
+
acc[_intl.default.get('Empty')] = row;
|
|
1772
|
+
return acc;
|
|
1773
|
+
}
|
|
1774
|
+
if (!acc[nameValue]) {
|
|
1775
|
+
acc[nameValue] = row;
|
|
1776
|
+
} else {
|
|
1777
|
+
const accRow = acc[nameValue];
|
|
1778
|
+
Object.keys(row).forEach(key => {
|
|
1779
|
+
if (key === completed_column.key || key === target_column.key) {
|
|
1780
|
+
accRow[key] = accRow[key] + row[key];
|
|
1781
|
+
}
|
|
1782
|
+
});
|
|
1783
|
+
}
|
|
1784
|
+
return acc;
|
|
1785
|
+
}, {});
|
|
1786
|
+
summedSqlRows = Object.values(sumSqlRows);
|
|
1787
|
+
}
|
|
1788
|
+
} else {
|
|
1789
|
+
if (nameColumnDataAsAnArray) {
|
|
1790
|
+
const sumSqlRows = sqlRows.reduce((acc, row) => {
|
|
1791
|
+
const groupby = row[sqlColumnGroupByColumnKey];
|
|
1792
|
+
const names = row[name_column.key];
|
|
1793
|
+
if (!names) {
|
|
1794
|
+
const key = "empty_".concat(groupby);
|
|
1795
|
+
row[name_column.key] = _intl.default.get('Empty');
|
|
1796
|
+
acc[key] = row;
|
|
1797
|
+
return acc;
|
|
1798
|
+
}
|
|
1799
|
+
names.forEach(name => {
|
|
1800
|
+
const key = "".concat(name, "_").concat(groupby);
|
|
1801
|
+
if (!acc[key]) {
|
|
1802
|
+
row[name_column.key] = name;
|
|
1803
|
+
acc[key] = row;
|
|
1804
|
+
} else {
|
|
1805
|
+
const accRow = acc[key];
|
|
1806
|
+
Object.keys(row).forEach(k => {
|
|
1807
|
+
if (key === completed_column.key || key === target_column.key) {
|
|
1808
|
+
accRow[key] = accRow[key] + row[key];
|
|
1809
|
+
}
|
|
1810
|
+
});
|
|
1811
|
+
}
|
|
1812
|
+
});
|
|
1813
|
+
return acc;
|
|
1814
|
+
}, {});
|
|
1815
|
+
summedSqlRows = Object.values(sumSqlRows);
|
|
1816
|
+
} else {
|
|
1817
|
+
const sumSqlRows = sqlRows.reduce((acc, row) => {
|
|
1818
|
+
const nameValue = row[name_column.key];
|
|
1819
|
+
const groupby = row[sqlColumnGroupByColumnKey];
|
|
1820
|
+
if (!nameValue) {
|
|
1821
|
+
const key = "empty_".concat(groupby);
|
|
1822
|
+
row[name_column.key] = _intl.default.get('Empty');
|
|
1823
|
+
acc[key] = row;
|
|
1824
|
+
return acc;
|
|
1825
|
+
}
|
|
1826
|
+
const key = "".concat(nameValue, "_").concat(groupby);
|
|
1827
|
+
if (!acc[key]) {
|
|
1828
|
+
acc[key] = row;
|
|
1829
|
+
} else {
|
|
1830
|
+
const accRow = acc[key];
|
|
1831
|
+
Object.keys(row).forEach(key => {
|
|
1832
|
+
if (key === completed_column.key || key === target_column.key) {
|
|
1833
|
+
accRow[key] = accRow[key] + row[key];
|
|
1834
|
+
}
|
|
1835
|
+
});
|
|
1836
|
+
}
|
|
1837
|
+
return acc;
|
|
1838
|
+
}, {});
|
|
1839
|
+
summedSqlRows = Object.values(sumSqlRows);
|
|
1840
|
+
}
|
|
1832
1841
|
}
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1842
|
+
|
|
1843
|
+
// format the fetched value
|
|
1844
|
+
_baseUtils.default.updateTableViewList(sqlRows, name_column, name_column.key, 'color', false, true);
|
|
1845
|
+
if (sqlColumnGroupByColumnKey) _baseUtils.default.updateTableViewList(sqlRows, column_groupby_column, sqlColumnGroupByColumnKey, 'color', false, false);
|
|
1846
|
+
summedSqlRows.forEach(row => {
|
|
1837
1847
|
const nameValue = row[name_column.key];
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1848
|
+
let targetValue;
|
|
1849
|
+
let completedValue;
|
|
1850
|
+
let groupby;
|
|
1851
|
+
if (sqlColumnGroupByColumnKey) {
|
|
1852
|
+
targetValue = row["SUM(".concat(target_column.name, ")")];
|
|
1853
|
+
completedValue = row["SUM(".concat(completed_column.name, ")")];
|
|
1854
|
+
groupby = row[sqlColumnGroupByColumnKey] || _intl.default.get('Empty');
|
|
1855
|
+
} else {
|
|
1856
|
+
completedValue = _SQLStatisticsUtils._get_completeness_name(row, completed_column);
|
|
1857
|
+
targetValue = _SQLStatisticsUtils._get_completeness_name(row, target_column);
|
|
1858
|
+
}
|
|
1841
1859
|
let completedRate;
|
|
1842
1860
|
if (!targetValue && completedValue) {
|
|
1843
1861
|
completedRate = 100;
|
|
@@ -1855,8 +1873,7 @@ SQLStatisticsUtils.completenessSQlResult = async (chart, sqlRows, chartSQLMap, t
|
|
|
1855
1873
|
group_name: 'completed',
|
|
1856
1874
|
groupby,
|
|
1857
1875
|
color: row.color || _constants.CHART_STYLE_COLORS[0],
|
|
1858
|
-
value: completedValue
|
|
1859
|
-
rows: [originalSqlRows[index]]
|
|
1876
|
+
value: completedValue
|
|
1860
1877
|
});
|
|
1861
1878
|
res.push({
|
|
1862
1879
|
name: nameValue,
|
|
@@ -1865,8 +1882,7 @@ SQLStatisticsUtils.completenessSQlResult = async (chart, sqlRows, chartSQLMap, t
|
|
|
1865
1882
|
value: Math.max(targetValue - completedValue, 0),
|
|
1866
1883
|
groupby,
|
|
1867
1884
|
color: '#bdbdbd',
|
|
1868
|
-
completedRate
|
|
1869
|
-
rows: [originalSqlRows[index]]
|
|
1885
|
+
completedRate
|
|
1870
1886
|
});
|
|
1871
1887
|
});
|
|
1872
1888
|
|
|
@@ -1878,29 +1894,9 @@ SQLStatisticsUtils.completenessSQlResult = async (chart, sqlRows, chartSQLMap, t
|
|
|
1878
1894
|
return 1;
|
|
1879
1895
|
}
|
|
1880
1896
|
});
|
|
1881
|
-
|
|
1882
|
-
// deduplicate by (name, group_name)
|
|
1883
|
-
const deduplicatedRes = [];
|
|
1884
|
-
const keyMap = {};
|
|
1885
|
-
res.forEach(item => {
|
|
1886
|
-
const key = "".concat(item.name, "_").concat(item.group_name);
|
|
1887
|
-
if (!keyMap[key]) {
|
|
1888
|
-
keyMap[key] = item;
|
|
1889
|
-
deduplicatedRes.push(item);
|
|
1890
|
-
} else {
|
|
1891
|
-
const existingItem = keyMap[key];
|
|
1892
|
-
existingItem.value = (existingItem.value || 0) + (item.value || 0);
|
|
1893
|
-
if (item.rows) {
|
|
1894
|
-
existingItem.rows = (existingItem.rows || []).concat(item.rows);
|
|
1895
|
-
}
|
|
1896
|
-
if (item.group_name === 'rest' && item.completedRate !== undefined) {
|
|
1897
|
-
existingItem.completedRate = item.completedRate;
|
|
1898
|
-
}
|
|
1899
|
-
}
|
|
1900
|
-
});
|
|
1901
|
-
return deduplicatedRes;
|
|
1897
|
+
return res;
|
|
1902
1898
|
};
|
|
1903
|
-
SQLStatisticsUtils.scatterSQLResult2JavaScript =
|
|
1899
|
+
SQLStatisticsUtils.scatterSQLResult2JavaScript = (chart, sqlRows, chartSQLMap, columnMap, tables) => {
|
|
1904
1900
|
const {
|
|
1905
1901
|
sqlXColumnKey,
|
|
1906
1902
|
sqlYColumnKey,
|
|
@@ -1914,13 +1910,13 @@ SQLStatisticsUtils.scatterSQLResult2JavaScript = async (chart, sqlRows, chartSQL
|
|
|
1914
1910
|
// format sql rows
|
|
1915
1911
|
const originalSqlRows = (0, _lodashEs.cloneDeep)(sqlRows);
|
|
1916
1912
|
const isScatter = true;
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
if (sqlColumnGroupbyColumnKey)
|
|
1913
|
+
_baseUtils.default.updateTableViewList(sqlRows, groupbyColumn, groupbyColumn.key, 'color', isScatter, true);
|
|
1914
|
+
_baseUtils.default.updateTableViewList(sqlRows, summaryColumn, summaryColumn.key, 'color', isScatter, true);
|
|
1915
|
+
if (sqlColumnGroupbyColumnKey) _baseUtils.default.updateTableViewList(sqlRows, columnGroupbyColumn, sqlColumnGroupbyColumnKey, 'color', isScatter, false);
|
|
1920
1916
|
const res = [];
|
|
1921
1917
|
sqlRows.forEach((row, index) => {
|
|
1922
|
-
const xValue = row[sqlXColumnKey];
|
|
1923
|
-
const yValue = row[sqlYColumnKey];
|
|
1918
|
+
const xValue = row[sqlXColumnKey] ? '' + row[sqlXColumnKey] : _intl.default.get('Empty');
|
|
1919
|
+
const yValue = row[sqlYColumnKey] ? '' + row[sqlYColumnKey] : _intl.default.get('Empty');
|
|
1924
1920
|
const groupby = row[sqlColumnGroupbyColumnKey] ? '' + row[sqlColumnGroupbyColumnKey] : null;
|
|
1925
1921
|
const originalSqlRow = originalSqlRows[index];
|
|
1926
1922
|
const originalXValue = originalSqlRow[sqlXColumnKey];
|
|
@@ -1928,17 +1924,16 @@ SQLStatisticsUtils.scatterSQLResult2JavaScript = async (chart, sqlRows, chartSQL
|
|
|
1928
1924
|
const originalGroupby = originalSqlRow[sqlColumnGroupbyColumnKey];
|
|
1929
1925
|
res.push({
|
|
1930
1926
|
name: xValue,
|
|
1931
|
-
value: yValue
|
|
1927
|
+
value: yValue,
|
|
1932
1928
|
groupby,
|
|
1933
|
-
rows: [originalSqlRow],
|
|
1934
1929
|
original_value: {
|
|
1930
|
+
rows: [originalSqlRow],
|
|
1935
1931
|
name: originalXValue,
|
|
1936
1932
|
value: originalYValue,
|
|
1937
1933
|
groupby: originalGroupby
|
|
1938
1934
|
}
|
|
1939
1935
|
});
|
|
1940
1936
|
});
|
|
1941
|
-
_baseUtils.default.sortCharts(res, groupbyColumn, 'name');
|
|
1942
1937
|
return res;
|
|
1943
1938
|
};
|
|
1944
1939
|
SQLStatisticsUtils.mapSQLResult2JavaScript = (chart, sqlRows, chartSQLMap, columnMap, tables) => {
|
|
@@ -8,8 +8,7 @@ exports.getColumnByKey = exports.getColorFromSingleSelectColumn = exports.format
|
|
|
8
8
|
exports.getColumnOptions = getColumnOptions;
|
|
9
9
|
exports.getFormattedValue = exports.getDateColumnFormat = void 0;
|
|
10
10
|
exports.getSelectColumnOptions = getSelectColumnOptions;
|
|
11
|
-
exports.sortDataByGroupSum = exports.isWorldMapColumn = exports.isStatisticWorldMapColumn = exports.isStatisticMirrorColumn = exports.isStatisticMapColumn = exports.isMapColumn = exports.
|
|
12
|
-
var _DTableColumnIcon2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableColumnIcon"));
|
|
11
|
+
exports.sortDataByGroupSum = exports.islinkDateFormula = exports.isWorldMapColumn = exports.isStatisticWorldMapColumn = exports.isStatisticMirrorColumn = exports.isStatisticMapColumn = exports.isMapColumn = exports.isCheckboxColumn = exports.getSummaryResult = exports.getSqlGroup = void 0;
|
|
13
12
|
var _dtableUtils = require("dtable-utils");
|
|
14
13
|
var _react = _interopRequireDefault(require("react"));
|
|
15
14
|
var _constants = require("../constants");
|
|
@@ -190,42 +189,30 @@ const isStatisticMirrorColumn = column => {
|
|
|
190
189
|
return _constants.MIRROR_COLUMN_LIST.includes(column.type);
|
|
191
190
|
};
|
|
192
191
|
exports.isStatisticMirrorColumn = isStatisticMirrorColumn;
|
|
193
|
-
const
|
|
192
|
+
const islinkDateFormula = column => {
|
|
194
193
|
if (column) {
|
|
195
194
|
const {
|
|
196
195
|
type,
|
|
197
196
|
data
|
|
198
197
|
} = column;
|
|
199
198
|
const {
|
|
200
|
-
array_type
|
|
201
|
-
result_type
|
|
199
|
+
array_type
|
|
202
200
|
} = data || {};
|
|
203
|
-
|
|
204
|
-
if (type === 'link-formula' && array_type === 'date' || type === 'formula' && result_type === _dtableUtils.FORMULA_RESULT_TYPE.DATE) return true;
|
|
205
|
-
}
|
|
206
|
-
return false;
|
|
207
|
-
};
|
|
208
|
-
exports.isDateFormulaColumn = isDateFormulaColumn;
|
|
209
|
-
const isDateColumn = column => {
|
|
210
|
-
if (column) {
|
|
211
|
-
const {
|
|
212
|
-
type
|
|
213
|
-
} = column;
|
|
214
|
-
return type === _dtableUtils.CellType.CTIME || type === _dtableUtils.CellType.MTIME || type === _dtableUtils.CellType.DATE;
|
|
201
|
+
if (type === 'link-formula' && array_type === 'date') return true;
|
|
215
202
|
}
|
|
216
203
|
return false;
|
|
217
204
|
};
|
|
218
205
|
|
|
219
206
|
// get
|
|
220
|
-
exports.
|
|
207
|
+
exports.islinkDateFormula = islinkDateFormula;
|
|
221
208
|
function getColumnOptions(columns) {
|
|
222
209
|
return columns.map(column => {
|
|
223
210
|
return {
|
|
224
211
|
value: column,
|
|
225
212
|
label: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
226
213
|
className: "sea-chart-column-icon"
|
|
227
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
228
|
-
|
|
214
|
+
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
215
|
+
className: _dtableUtils.COLUMNS_ICON_CONFIG[column.type]
|
|
229
216
|
})), /*#__PURE__*/_react.default.createElement("span", {
|
|
230
217
|
className: 'select-module select-module-name ml-0'
|
|
231
218
|
}, column.name))
|
package/dist/utils/contexts.js
CHANGED
|
@@ -4,11 +4,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.settingsContext = exports.GlobalThemeContext = exports.
|
|
7
|
+
exports.settingsContext = exports.GlobalThemeContext = exports.DepartmentsContext = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
const settingsContext = exports.settingsContext = /*#__PURE__*/_react.default.createContext('');
|
|
10
10
|
const DepartmentsContext = exports.DepartmentsContext = /*#__PURE__*/_react.default.createContext([]);
|
|
11
|
-
const GlobalThemeContext = exports.GlobalThemeContext = /*#__PURE__*/_react.default.createContext({});
|
|
12
|
-
const FirstDayOfWeekContext = exports.FirstDayOfWeekContext = /*#__PURE__*/_react.default.createContext({
|
|
13
|
-
firstDayOfWeek: 'Sunday'
|
|
14
|
-
});
|
|
11
|
+
const GlobalThemeContext = exports.GlobalThemeContext = /*#__PURE__*/_react.default.createContext({});
|