sea-chart 2.0.38 → 2.0.39
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 +15 -8
- package/dist/components/cell-factory/FormatterConfig.js +62 -55
- package/dist/components/cell-factory/SimpleCellFormatter.js +12 -5
- package/dist/components/cell-factory/SingleSelectOption.js +18 -11
- package/dist/components/cell-factory/cell-editor-factory.js +12 -5
- package/dist/components/cell-factory/cell-formatter-factory.js +11 -4
- package/dist/components/cell-factory/link-content.js +38 -30
- package/dist/components/chart-color-selector/color-selector.js +18 -11
- package/dist/components/collaborator/index.js +14 -7
- package/dist/components/color-picker/index.js +19 -12
- package/dist/components/color-popover/color-rules/color-rule.js +34 -26
- package/dist/components/color-popover/color-rules/index.js +15 -7
- package/dist/components/color-popover/color-rules/rule-filters/filter.js +34 -27
- package/dist/components/color-popover/color-rules/rule-filters/index.js +25 -17
- package/dist/components/color-popover/color-rules/rule-filters/number-input.js +17 -9
- package/dist/components/color-popover/color-rules-popover.js +38 -30
- package/dist/components/color-popover/color-selector-popover.js +20 -12
- package/dist/components/color-setting/color-group-selector.js +21 -13
- package/dist/components/common-add-tool/index.js +15 -8
- package/dist/components/data-process-setter/data-setting-header.js +14 -7
- package/dist/components/data-process-setter/hide-column-setter.js +20 -13
- package/dist/components/data-process-setter/index.js +27 -4
- package/dist/components/data-process-setter/sort-setter.js +26 -18
- package/dist/components/draggable/Draggable.js +13 -7
- package/dist/components/drill-down-settings/drill-down-fields-popover/index.js +48 -40
- package/dist/components/drill-down-settings/drill-down-fields-settings/index.js +18 -10
- package/dist/components/drill-down-settings/index.js +18 -11
- package/dist/components/dtable-popover/index.js +20 -13
- package/dist/components/dtable-search-input/index.js +21 -13
- package/dist/components/font-settings/index.js +22 -14
- package/dist/components/goal-line-setting/goal-setting-item.js +14 -6
- package/dist/components/goal-line-setting/index.js +19 -12
- package/dist/components/highlighter/highlighter.js +14 -7
- package/dist/components/icon/index.js +12 -5
- package/dist/components/index.js +48 -7
- package/dist/components/loading/index.js +13 -6
- package/dist/components/number-input/index.js +11 -4
- package/dist/components/pixel-editor/index.js +23 -15
- package/dist/components/popover/hide-column-popover/hide-column-popover-widgets/hide-column-item.js +15 -8
- package/dist/components/popover/hide-column-popover/hide-column-popover.js +34 -26
- package/dist/components/popover/sort-popover/sort-popover-widgets/sort-utils.js +18 -9
- package/dist/components/popover/sort-popover/sort-popover.js +65 -55
- package/dist/components/resize-handle/ResizeHandle.js +13 -6
- package/dist/components/row-card/row-card-header-cell.js +24 -17
- package/dist/components/row-card/row-card-header.js +22 -15
- package/dist/components/row-card/row-card-item.js +43 -35
- package/dist/components/row-card/row-card.js +25 -17
- package/dist/components/statistic-record-dialog/index.js +64 -56
- package/dist/components/tooltip/index.js +21 -14
- package/dist/components/types-dialog/index.js +70 -62
- package/dist/components/types-dialog/use-force-update.js +10 -4
- package/dist/constants/color-rules.js +14 -8
- package/dist/constants/common-constants.js +14 -8
- package/dist/constants/error.js +8 -2
- package/dist/constants/geolocation.js +15 -9
- package/dist/constants/index.js +271 -142
- package/dist/constants/key-codes.js +2 -0
- package/dist/constants/model.js +9 -3
- package/dist/constants/regions.js +8 -3
- package/dist/constants/style.js +12 -6
- package/dist/constants/table.js +7 -1
- package/dist/constants/type-image.js +39 -33
- package/dist/constants/type.js +9 -3
- package/dist/context.js +20 -13
- package/dist/editor/index.js +15 -8
- package/dist/index.js +104 -13
- package/dist/intl.js +17 -10
- package/dist/locale/index.js +23 -16
- package/dist/locale/lang/de.js +7 -1
- package/dist/locale/lang/en.js +7 -1
- package/dist/locale/lang/es.js +7 -1
- package/dist/locale/lang/fr.js +7 -1
- package/dist/locale/lang/pt.js +7 -1
- package/dist/locale/lang/ru.js +7 -1
- package/dist/locale/lang/zh_CN.js +7 -1
- package/dist/model/area-group.js +19 -12
- package/dist/model/area.js +19 -12
- package/dist/model/bar-custom.js +18 -11
- package/dist/model/bar-group.js +19 -12
- package/dist/model/bar-stack.js +17 -10
- package/dist/model/bar.js +18 -11
- package/dist/model/base-model.js +11 -4
- package/dist/model/basic-number-card.js +20 -13
- package/dist/model/chart.js +13 -7
- package/dist/model/combination.js +22 -15
- package/dist/model/compare-bar.js +21 -14
- package/dist/model/completeness-group.js +18 -11
- package/dist/model/completeness.js +17 -10
- package/dist/model/dashboard.js +14 -7
- package/dist/model/funnel.js +21 -14
- package/dist/model/generic-model.js +143 -135
- package/dist/model/heat-map.js +16 -9
- package/dist/model/horizontal-bar.js +18 -11
- package/dist/model/horizontal-group-bar.js +17 -10
- package/dist/model/index.js +93 -69
- package/dist/model/line-group.js +20 -13
- package/dist/model/line.js +19 -12
- package/dist/model/map-bubble.js +19 -12
- package/dist/model/map.js +19 -12
- package/dist/model/mirror.js +20 -13
- package/dist/model/pie.js +19 -12
- package/dist/model/ring.js +19 -12
- package/dist/model/scatter.js +17 -10
- package/dist/model/stacked-horizontal-bar.js +18 -11
- package/dist/model/table-element.js +12 -5
- package/dist/model/table.js +14 -7
- package/dist/model/tree-map.js +14 -7
- package/dist/model/trend.js +18 -11
- package/dist/model/user.js +7 -1
- package/dist/model/world-map-bubble.js +19 -12
- package/dist/model/world-map.js +19 -12
- package/dist/services/map-json.js +17 -11
- package/dist/settings/advance-bar-settings/data-settings.js +44 -36
- package/dist/settings/advance-bar-settings/index.js +20 -3
- package/dist/settings/advance-bar-settings/style-settings.js +71 -63
- package/dist/settings/bar-settings/data-settings.js +47 -39
- package/dist/settings/bar-settings/index.js +20 -3
- package/dist/settings/bar-settings/style-settings.js +57 -49
- package/dist/settings/basic-number-card/data-settings.js +57 -49
- package/dist/settings/basic-number-card/index.js +20 -3
- package/dist/settings/basic-number-card/style-settings.js +27 -19
- package/dist/settings/combination-settings/data-settings.js +63 -55
- package/dist/settings/combination-settings/index.js +20 -3
- package/dist/settings/combination-settings/style-settings.js +73 -65
- package/dist/settings/completeness-settings/callbacks/callbacks.js +27 -16
- package/dist/settings/completeness-settings/data-settings/completion-settings.js +28 -21
- package/dist/settings/completeness-settings/data-settings/data-settings.js +32 -25
- package/dist/settings/completeness-settings/index.js +20 -3
- package/dist/settings/completeness-settings/style-settings.js +26 -19
- package/dist/settings/dashboard-settings/data-settings.js +51 -43
- package/dist/settings/dashboard-settings/index.js +13 -2
- package/dist/settings/data-settings.js +79 -72
- package/dist/settings/funnel-settings/components/dnd-item/dnd-item.js +19 -12
- package/dist/settings/funnel-settings/components/dnd-list.js +23 -15
- package/dist/settings/funnel-settings/components/funnel-label-setting.js +40 -32
- package/dist/settings/funnel-settings/components/funnel-layer-setting.js +28 -20
- package/dist/settings/funnel-settings/data-settings.js +31 -23
- package/dist/settings/funnel-settings/index.js +20 -3
- package/dist/settings/funnel-settings/style-settings.js +19 -11
- package/dist/settings/heat-map-settings/data-settings.js +26 -18
- package/dist/settings/heat-map-settings/index.js +20 -3
- package/dist/settings/heat-map-settings/style-settings.js +26 -18
- package/dist/settings/horizontal-bar-settings/data-settings.js +19 -12
- package/dist/settings/horizontal-bar-settings/index.js +20 -3
- package/dist/settings/horizontal-bar-settings/style-settings.js +19 -12
- package/dist/settings/index.js +70 -52
- package/dist/settings/map-settings/components/location-field-selector.js +17 -10
- package/dist/settings/map-settings/components/map-level-selector.js +18 -11
- package/dist/settings/map-settings/components/map-province-city-selector.js +26 -19
- package/dist/settings/map-settings/index.js +20 -3
- package/dist/settings/map-settings/map-data-settings.js +30 -23
- package/dist/settings/map-settings/map-style-settings.js +35 -27
- package/dist/settings/mirror-settings/data-settings.js +34 -26
- package/dist/settings/mirror-settings/index.js +13 -2
- package/dist/settings/pie-settings/data-settings.js +41 -33
- package/dist/settings/pie-settings/index.js +20 -3
- package/dist/settings/pie-settings/style-settings.js +55 -47
- package/dist/settings/scatter/data-settings.js +34 -27
- package/dist/settings/scatter/index.js +12 -3
- package/dist/settings/stacks-settings/index.js +27 -19
- package/dist/settings/stacks-settings/stack-item-settings.js +27 -19
- package/dist/settings/style-settings.js +73 -65
- package/dist/settings/table-element-settings/components/data-filter.js +38 -30
- package/dist/settings/table-element-settings/data-settings.js +29 -21
- package/dist/settings/table-element-settings/index.js +13 -2
- package/dist/settings/table-settings/data-settings.js +120 -112
- package/dist/settings/table-settings/index.js +13 -2
- package/dist/settings/time-comparison-settings/data-settings.js +51 -43
- package/dist/settings/time-comparison-settings/index.js +20 -3
- package/dist/settings/time-comparison-settings/style-settings.js +50 -42
- package/dist/settings/trend-settings/data-settings.js +32 -24
- package/dist/settings/trend-settings/index.js +20 -3
- package/dist/settings/trend-settings/style-setting.js +27 -19
- package/dist/settings/widgets/basic-summary/index.js +63 -55
- package/dist/settings/widgets/chart-type/index.js +26 -18
- package/dist/settings/widgets/color-settings/index.js +80 -72
- package/dist/settings/widgets/common-data-settings.js +29 -21
- package/dist/settings/widgets/data-filter/index.js +43 -35
- package/dist/settings/widgets/data-sort.js +24 -16
- package/dist/settings/widgets/date-summary-item.js +34 -26
- package/dist/settings/widgets/display-values-settings/index.js +22 -14
- package/dist/settings/widgets/divider/index.js +16 -8
- package/dist/settings/widgets/font-settings/font-color-settings.js +19 -11
- package/dist/settings/widgets/font-settings/font-size-settings.js +22 -14
- package/dist/settings/widgets/font-settings/font-weight-settings.js +25 -17
- package/dist/settings/widgets/font-settings/index.js +27 -4
- package/dist/settings/widgets/group-by.js +59 -51
- package/dist/settings/widgets/min-max-setting.js +18 -10
- package/dist/settings/widgets/mininum-slice-percent.js +18 -10
- package/dist/settings/widgets/numeric-summary-item.js +33 -25
- package/dist/settings/widgets/select-line-type/index.js +17 -10
- package/dist/settings/widgets/select-table/index.js +16 -9
- package/dist/settings/widgets/select-view/index.js +28 -20
- package/dist/settings/widgets/stack.js +22 -14
- package/dist/settings/widgets/summary-method-setting.js +25 -17
- package/dist/settings/widgets/summary-settings.js +82 -74
- package/dist/settings/widgets/switch/index.js +16 -9
- package/dist/settings/widgets/text-horizontal-settings.js +23 -15
- package/dist/settings/widgets/time-picker.js +37 -29
- package/dist/settings/widgets/title-settings/index.js +37 -29
- package/dist/settings/widgets/title-settings/title-text.js +12 -5
- package/dist/settings/widgets/x-axios.js +1 -0
- package/dist/settings/widgets/y-axis-group-settings.js +72 -64
- package/dist/utils/cell-format-utils.js +27 -17
- package/dist/utils/cell-value-utils.js +11 -4
- package/dist/utils/chart-utils/base-utils.js +332 -324
- package/dist/utils/chart-utils/index.js +41 -28
- package/dist/utils/chart-utils/original-data-utils/basic-chart-calculator.js +84 -77
- package/dist/utils/chart-utils/original-data-utils/card-calculator.js +20 -13
- package/dist/utils/chart-utils/original-data-utils/combination-calculator.js +52 -45
- package/dist/utils/chart-utils/original-data-utils/compare-bar-chart-calculator.js +28 -21
- package/dist/utils/chart-utils/original-data-utils/completeness-calculator.js +40 -33
- package/dist/utils/chart-utils/original-data-utils/dashboard-calculator.js +23 -16
- package/dist/utils/chart-utils/original-data-utils/index.js +57 -50
- package/dist/utils/chart-utils/original-data-utils/mirror-calculator.js +26 -19
- package/dist/utils/chart-utils/original-data-utils/pivot-table-calculator.js +96 -90
- package/dist/utils/chart-utils/original-data-utils/scatter-calculator.js +26 -19
- package/dist/utils/chart-utils/original-data-utils/trend-calculator.js +38 -31
- package/dist/utils/chart-utils/sql-statistics-utils.js +237 -229
- package/dist/utils/chart.js +17 -9
- package/dist/utils/collaborator-manager.js +9 -3
- package/dist/utils/collaborator-utils.js +31 -19
- package/dist/utils/collaborator.js +15 -6
- package/dist/utils/color-utils.js +29 -18
- package/dist/utils/column-utils.js +104 -77
- package/dist/utils/common-utils.js +53 -28
- package/dist/utils/concurrency-manager.js +7 -1
- package/dist/utils/contexts.js +12 -5
- package/dist/utils/date-translate.js +20 -12
- package/dist/utils/digital-sign-utils.js +14 -7
- package/dist/utils/event-bus.js +7 -1
- package/dist/utils/hotkey.js +11 -5
- package/dist/utils/index.js +221 -54
- package/dist/utils/key-generator.js +9 -2
- package/dist/utils/map.js +31 -22
- package/dist/utils/object-utils.js +8 -2
- package/dist/utils/options-utils.js +18 -10
- package/dist/utils/row-record-utils.js +178 -166
- package/dist/utils/row-utils.js +38 -27
- package/dist/utils/search.js +32 -24
- package/dist/utils/sql/chart-data-sql.js +112 -106
- package/dist/utils/sql/column-2-sql-column.js +168 -158
- package/dist/utils/sql/index.js +27 -3
- package/dist/utils/trend-utils.js +47 -39
- package/dist/view/index.js +96 -90
- package/dist/view/title/index.js +24 -16
- package/dist/view/wrapper/area-group.js +53 -45
- package/dist/view/wrapper/area.js +51 -43
- package/dist/view/wrapper/bar-compare.js +46 -38
- package/dist/view/wrapper/bar-custom-stack.js +47 -39
- package/dist/view/wrapper/bar-group.js +53 -45
- package/dist/view/wrapper/bar-stack.js +56 -48
- package/dist/view/wrapper/bar.js +48 -40
- package/dist/view/wrapper/basic-number-card.js +34 -26
- package/dist/view/wrapper/chart-component.js +131 -123
- package/dist/view/wrapper/combination.js +63 -55
- package/dist/view/wrapper/completeness-group.js +48 -40
- package/dist/view/wrapper/completeness.js +44 -36
- package/dist/view/wrapper/dashboard.js +44 -39
- package/dist/view/wrapper/funnel.js +43 -40
- package/dist/view/wrapper/heat-map.js +70 -62
- package/dist/view/wrapper/horizontal-bar-group.js +60 -52
- package/dist/view/wrapper/horizontal-bar-stack.js +55 -47
- package/dist/view/wrapper/horizontal-bar.js +49 -41
- package/dist/view/wrapper/index.js +115 -107
- package/dist/view/wrapper/line-group.js +51 -43
- package/dist/view/wrapper/line.js +50 -42
- package/dist/view/wrapper/map-bubble.js +48 -40
- package/dist/view/wrapper/map-world-bubble.js +47 -39
- package/dist/view/wrapper/map-world.js +49 -41
- package/dist/view/wrapper/map.js +50 -42
- package/dist/view/wrapper/mirror.js +49 -41
- package/dist/view/wrapper/pie.js +52 -44
- package/dist/view/wrapper/ring.js +57 -49
- package/dist/view/wrapper/scatter.js +50 -42
- package/dist/view/wrapper/table/index.js +22 -14
- package/dist/view/wrapper/table/one-dimension-table-no-numeric-columns.js +57 -49
- package/dist/view/wrapper/table/one-dimension-table-with-numeric-columns.js +61 -53
- package/dist/view/wrapper/table/pivot-table-display-name.js +90 -82
- package/dist/view/wrapper/table/two-dimension-table.js +93 -85
- package/dist/view/wrapper/table-element/components/dataset-utils.js +36 -23
- package/dist/view/wrapper/table-element/components/formatter.js +99 -90
- package/dist/view/wrapper/table-element/components/formatters/FileFormatter/index.js +32 -23
- package/dist/view/wrapper/table-element/components/formatters/formula-formatter.js +16 -9
- package/dist/view/wrapper/table-element/components/formatters/link-formatter.js +97 -90
- package/dist/view/wrapper/table-element/components/formula-formatter.js +16 -9
- package/dist/view/wrapper/table-element/components/link-formatter.js +97 -90
- package/dist/view/wrapper/table-element/components/record.js +20 -13
- package/dist/view/wrapper/table-element/components/records-body.js +17 -9
- package/dist/view/wrapper/table-element/components/records-header/index.js +15 -7
- package/dist/view/wrapper/table-element/components/records-header/records-header-cell.js +16 -8
- package/dist/view/wrapper/table-element/components/records.js +33 -25
- package/dist/view/wrapper/table-element/components/resize-column-handle/resize-column-handle.js +12 -5
- package/dist/view/wrapper/table-element/components/utils.js +16 -6
- package/dist/view/wrapper/table-element/components/value-display-utils.js +11 -4
- package/dist/view/wrapper/table-element/components/vertical-scrollbar/index.js +13 -6
- package/dist/view/wrapper/table-element/index.js +26 -18
- package/dist/view/wrapper/treemap.js +46 -38
- package/dist/view/wrapper/trend.js +66 -58
- package/package.json +1 -1
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
import dayjs from 'dayjs';
|
|
3
|
-
import { getSqlGroup } from '../column-utils';
|
|
4
|
-
import { CHART_TYPE, DTABLE_DB_SUMMARY_METHOD, CHART_SUMMARY_TYPE, CHART_Y_GROUP_TYPE } from '../../constants';
|
|
5
|
-
import { fixGeoGranularity } from '../map';
|
|
6
|
-
import { getDatabaseGroupName } from './column-2-sql-column';
|
|
1
|
+
"use strict";
|
|
7
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 _dtableUtils = require("dtable-utils");
|
|
9
|
+
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
10
|
+
var _columnUtils = require("../column-utils");
|
|
11
|
+
var _constants = require("../../constants");
|
|
12
|
+
var _map = require("../map");
|
|
13
|
+
var _column2SqlColumn = require("./column-2-sql-column");
|
|
8
14
|
/*
|
|
9
15
|
query chart data by dtable-db
|
|
10
16
|
**/
|
|
@@ -20,42 +26,42 @@ class ChartDataSQL {
|
|
|
20
26
|
userDepartmentIdsMap
|
|
21
27
|
} = _ref;
|
|
22
28
|
this._chart_column_name_to_sql = (column, groupBy) => {
|
|
23
|
-
return getSqlGroup(column, groupBy);
|
|
29
|
+
return (0, _columnUtils.getSqlGroup)(column, groupBy);
|
|
24
30
|
};
|
|
25
31
|
this._get_column_by_key = key => {
|
|
26
32
|
return this.column_key_map[key];
|
|
27
33
|
};
|
|
28
34
|
this._get_sql_order_by = (sortType, groupName) => {
|
|
29
35
|
if (!sortType) {
|
|
30
|
-
return
|
|
36
|
+
return "ORDER BY ".concat(groupName);
|
|
31
37
|
}
|
|
32
38
|
return '';
|
|
33
39
|
};
|
|
34
40
|
this._update_filter_sql = (include_empty, column, method) => {
|
|
35
41
|
const column_name = (column === null || column === void 0 ? void 0 : column.name) || '';
|
|
36
42
|
if (!include_empty) {
|
|
37
|
-
const sql_column_name = method ?
|
|
38
|
-
const not_include_empty_sql =
|
|
43
|
+
const sql_column_name = method ? "".concat(method, "(`").concat(column_name, "`)") : "`".concat(column_name, "`");
|
|
44
|
+
const not_include_empty_sql = "".concat(sql_column_name, " IS NOT NULL");
|
|
39
45
|
if (this.filter_sql) {
|
|
40
46
|
if (this.filter_sql.startsWith('WHERE')) {
|
|
41
47
|
this.filter_sql = this.filter_sql.slice(5);
|
|
42
48
|
}
|
|
43
|
-
this.filter_sql =
|
|
49
|
+
this.filter_sql = "WHERE ".concat(not_include_empty_sql, " AND ").concat(this.filter_sql);
|
|
44
50
|
} else {
|
|
45
|
-
this.filter_sql =
|
|
51
|
+
this.filter_sql = "WHERE ".concat(not_include_empty_sql);
|
|
46
52
|
}
|
|
47
53
|
}
|
|
48
54
|
};
|
|
49
55
|
this._summary_column_2_sql = (summary_method, column) => {
|
|
50
56
|
const column_name = (column === null || column === void 0 ? void 0 : column.name) || '';
|
|
51
|
-
const valid_column_name =
|
|
52
|
-
if (summary_method === 'DISTINCT_VALUES') return
|
|
53
|
-
if (summary_method === 'ROW_COUNT') return
|
|
54
|
-
return
|
|
57
|
+
const valid_column_name = "`".concat(column_name, "`");
|
|
58
|
+
if (summary_method === 'DISTINCT_VALUES') return "COUNT(DISTINCT ".concat(valid_column_name, ")");
|
|
59
|
+
if (summary_method === 'ROW_COUNT') return "COUNT(".concat(valid_column_name, ")");
|
|
60
|
+
return "".concat(_constants.DTABLE_DB_SUMMARY_METHOD[summary_method], "(").concat(valid_column_name, ")");
|
|
55
61
|
};
|
|
56
62
|
this._basic_statistic_2_sql = () => {
|
|
57
63
|
let x_axis_column_key, x_axis_date_granularity, x_axis_geolocation_granularity, x_axis_include_empty_cells, y_axis_summary_type, y_axis_summary_method, y_axis_summary_column_key;
|
|
58
|
-
if ([CHART_TYPE.HORIZONTAL_BAR, CHART_TYPE.STACKED_HORIZONTAL_BAR, CHART_TYPE.HORIZONTAL_GROUP_BAR].includes(this.chart_type)) {
|
|
64
|
+
if ([_constants.CHART_TYPE.HORIZONTAL_BAR, _constants.CHART_TYPE.STACKED_HORIZONTAL_BAR, _constants.CHART_TYPE.HORIZONTAL_GROUP_BAR].includes(this.chart_type)) {
|
|
59
65
|
x_axis_column_key = this.chart['vertical_axis_column_key'] || '';
|
|
60
66
|
x_axis_date_granularity = this.chart['vertical_axis_date_granularity'] || '';
|
|
61
67
|
x_axis_geolocation_granularity = this.chart['vertical_axis_geolocation_granularity'] || '';
|
|
@@ -96,9 +102,9 @@ class ChartDataSQL {
|
|
|
96
102
|
}
|
|
97
103
|
}
|
|
98
104
|
if (summary_column_name) {
|
|
99
|
-
return
|
|
105
|
+
return "SELECT ".concat(groupby_column_name, ", ").concat(summary_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
100
106
|
}
|
|
101
|
-
return
|
|
107
|
+
return "SELECT ".concat(groupby_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
102
108
|
};
|
|
103
109
|
this._heat_map_statistic_2_sql = () => {
|
|
104
110
|
const {
|
|
@@ -117,7 +123,7 @@ class ChartDataSQL {
|
|
|
117
123
|
date_granularity: 'day'
|
|
118
124
|
});
|
|
119
125
|
let summary_column_name = this._summary_column_2_sql('COUNT', groupby_column);
|
|
120
|
-
if (summary_type === CHART_SUMMARY_TYPE.ADVANCED) {
|
|
126
|
+
if (summary_type === _constants.CHART_SUMMARY_TYPE.ADVANCED) {
|
|
121
127
|
const summary_column = this._get_column_by_key(summary_column_key);
|
|
122
128
|
if (!summary_column) {
|
|
123
129
|
this.error = 'Summary_column_not_found';
|
|
@@ -125,7 +131,7 @@ class ChartDataSQL {
|
|
|
125
131
|
}
|
|
126
132
|
summary_column_name = this._summary_column_2_sql(summary_method.toUpperCase(), summary_column);
|
|
127
133
|
}
|
|
128
|
-
return
|
|
134
|
+
return "SELECT ".concat(column_name, ", ").concat(summary_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(column_name, " LIMIT 0, 5000");
|
|
129
135
|
};
|
|
130
136
|
this._mirror_map_statistic_2_sql = () => {
|
|
131
137
|
const {
|
|
@@ -149,7 +155,7 @@ class ChartDataSQL {
|
|
|
149
155
|
const column_name = this._chart_column_name_to_sql(groupby_column, {});
|
|
150
156
|
const column_groupby_column_name = this._chart_column_name_to_sql(column_groupby_column, {});
|
|
151
157
|
let summary_column_name = this._summary_column_2_sql('COUNT', groupby_column);
|
|
152
|
-
if (summary_type === CHART_SUMMARY_TYPE.ADVANCED) {
|
|
158
|
+
if (summary_type === _constants.CHART_SUMMARY_TYPE.ADVANCED) {
|
|
153
159
|
const summary_column = this._get_column_by_key(summary_column_key);
|
|
154
160
|
if (!summary_column) {
|
|
155
161
|
this.error = 'Summary_column_not_found';
|
|
@@ -157,7 +163,7 @@ class ChartDataSQL {
|
|
|
157
163
|
}
|
|
158
164
|
summary_column_name = this._summary_column_2_sql(summary_method.toUpperCase(), summary_column);
|
|
159
165
|
}
|
|
160
|
-
return
|
|
166
|
+
return "SELECT ".concat(column_name, ", ").concat(column_groupby_column_name, ", ").concat(summary_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(column_name, ", ").concat(column_groupby_column_name, " LIMIT 0, 5000");
|
|
161
167
|
};
|
|
162
168
|
this._trend_map_statistic_2_sql = () => {
|
|
163
169
|
const {
|
|
@@ -177,7 +183,7 @@ class ChartDataSQL {
|
|
|
177
183
|
'date_granularity': date_granularity
|
|
178
184
|
});
|
|
179
185
|
let summary_column_name = this._summary_column_2_sql('COUNT', groupby_column);
|
|
180
|
-
if (summary_type === CHART_SUMMARY_TYPE.ADVANCED) {
|
|
186
|
+
if (summary_type === _constants.CHART_SUMMARY_TYPE.ADVANCED) {
|
|
181
187
|
const summary_column = this._get_column_by_key(summary_column_key);
|
|
182
188
|
if (!summary_column) {
|
|
183
189
|
this.error = 'Summary_column_not_found';
|
|
@@ -185,11 +191,11 @@ class ChartDataSQL {
|
|
|
185
191
|
}
|
|
186
192
|
summary_column_name = this._summary_column_2_sql(summary_method.toUpperCase(), summary_column);
|
|
187
193
|
}
|
|
188
|
-
return
|
|
194
|
+
return "SELECT ".concat(groupby_column_name, ", ").concat(summary_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
189
195
|
};
|
|
190
196
|
this._grouping_statistic_2_sql = () => {
|
|
191
197
|
let x_axis_column_key, x_axis_date_granularity, x_axis_geolocation_granularity, x_axis_include_empty_cells, y_axis_summary_type, y_axis_summary_method, y_axis_summary_column_key;
|
|
192
|
-
if ([CHART_TYPE.HORIZONTAL_GROUP_BAR, CHART_TYPE.STACKED_HORIZONTAL_BAR].includes(this.chart_type)) {
|
|
198
|
+
if ([_constants.CHART_TYPE.HORIZONTAL_GROUP_BAR, _constants.CHART_TYPE.STACKED_HORIZONTAL_BAR].includes(this.chart_type)) {
|
|
193
199
|
x_axis_column_key = this.chart['vertical_axis_column_key'] || '';
|
|
194
200
|
x_axis_date_granularity = this.chart['vertical_axis_date_granularity'] || '';
|
|
195
201
|
x_axis_geolocation_granularity = this.chart['vertical_axis_geolocation_granularity'] || '';
|
|
@@ -230,7 +236,7 @@ class ChartDataSQL {
|
|
|
230
236
|
'geolocation_granularity': column_groupby_geolocation_granularity
|
|
231
237
|
});
|
|
232
238
|
const summary_column_name = this._summary_column_2_sql('COUNT', groupby_column);
|
|
233
|
-
return
|
|
239
|
+
return "SELECT ".concat(groupby_column_name, ", ").concat(column_groupby_column_name, ", ").concat(summary_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, ", ").concat(column_groupby_column_name, " LIMIT 0, 5000");
|
|
234
240
|
}
|
|
235
241
|
if (column_groupby_multiple_numeric_column) {
|
|
236
242
|
let column_groupby_numeric_columns = summary_columns.slice(0);
|
|
@@ -251,7 +257,7 @@ class ChartDataSQL {
|
|
|
251
257
|
column_groupby_numeric_column_names.push(summary_column_name);
|
|
252
258
|
}
|
|
253
259
|
const column_groupby_numeric_column_names_string = column_groupby_numeric_column_names.join(', ');
|
|
254
|
-
return
|
|
260
|
+
return "SELECT ".concat(groupby_column_name, ", ").concat(column_groupby_numeric_column_names_string, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
255
261
|
}
|
|
256
262
|
const summary_column = this._get_column_by_key(y_axis_summary_column_key);
|
|
257
263
|
if (!summary_column) return this._basic_statistic_2_sql();
|
|
@@ -259,13 +265,13 @@ class ChartDataSQL {
|
|
|
259
265
|
const column_groupby_column = this._get_column_by_key(column_groupby_column_key);
|
|
260
266
|
const summary_column_name = this._summary_column_2_sql(summary_method, summary_column);
|
|
261
267
|
if (!column_groupby_column) {
|
|
262
|
-
return
|
|
268
|
+
return "SELECT ".concat(groupby_column_name, ", ").concat(summary_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
263
269
|
}
|
|
264
270
|
const column_groupby_column_name = this._chart_column_name_to_sql(column_groupby_column, {
|
|
265
271
|
'date_granularity': column_groupby_date_granularity,
|
|
266
272
|
'geolocation_granularity': column_groupby_geolocation_granularity
|
|
267
273
|
});
|
|
268
|
-
return
|
|
274
|
+
return "SELECT ".concat(groupby_column_name, ", ").concat(column_groupby_column_name, ", ").concat(summary_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, ", ").concat(column_groupby_column_name, " LIMIT 0, 5000");
|
|
269
275
|
};
|
|
270
276
|
this._custom_statistic_2_sql = () => {
|
|
271
277
|
const {
|
|
@@ -297,14 +303,14 @@ class ChartDataSQL {
|
|
|
297
303
|
column_groupby_numeric_columns
|
|
298
304
|
} = stack;
|
|
299
305
|
let sql = '';
|
|
300
|
-
if (y_axis_type === CHART_TYPE.BAR_STACK && column_groupby_numeric_columns && Array.isArray(column_groupby_numeric_columns) && column_groupby_numeric_columns.length !== 0) {
|
|
306
|
+
if (y_axis_type === _constants.CHART_TYPE.BAR_STACK && column_groupby_numeric_columns && Array.isArray(column_groupby_numeric_columns) && column_groupby_numeric_columns.length !== 0) {
|
|
301
307
|
// just support summary numeric columns.
|
|
302
308
|
let group_methods = [];
|
|
303
309
|
column_groupby_numeric_columns.forEach(item => {
|
|
304
310
|
const numeric_column = this._get_column_by_key(item.column_key);
|
|
305
|
-
group_methods.push(this._summary_column_2_sql(DTABLE_DB_SUMMARY_METHOD[item.summary_method.toUpperCase()], numeric_column));
|
|
311
|
+
group_methods.push(this._summary_column_2_sql(_constants.DTABLE_DB_SUMMARY_METHOD[item.summary_method.toUpperCase()], numeric_column));
|
|
306
312
|
});
|
|
307
|
-
sql =
|
|
313
|
+
sql = "SELECT ".concat(groupby_column_name, ", ").concat(group_methods.join(','), " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 5000");
|
|
308
314
|
}
|
|
309
315
|
SQLs.push(sql);
|
|
310
316
|
}
|
|
@@ -338,7 +344,7 @@ class ChartDataSQL {
|
|
|
338
344
|
'geolocation_granularity': x_axis_geolocation_granularity
|
|
339
345
|
});
|
|
340
346
|
let summary_column_name = this._summary_column_2_sql('COUNT', groupby_column);
|
|
341
|
-
if (y_axis_summary_type === CHART_SUMMARY_TYPE.ADVANCED) {
|
|
347
|
+
if (y_axis_summary_type === _constants.CHART_SUMMARY_TYPE.ADVANCED) {
|
|
342
348
|
const summary_column = this._get_column_by_key(y_axis_summary_column_key);
|
|
343
349
|
if (!summary_column) {
|
|
344
350
|
this.error = 'Summary_column_not_found';
|
|
@@ -351,11 +357,11 @@ class ChartDataSQL {
|
|
|
351
357
|
let filter_sql = this.filter_sql;
|
|
352
358
|
if (x_axis_date_range_start && x_axis_date_range_end && x_axis_compared_date_range_start && x_axis_compared_date_range_end) {
|
|
353
359
|
filter_sql = this.filter_sql.length === 0 ? 'where ' : this.filter_sql + ' AND';
|
|
354
|
-
const formattedXAxisDateRangeEnd =
|
|
355
|
-
const formattedXAxisComparedDateRangeEnd =
|
|
356
|
-
filter_sql = filter_sql +
|
|
360
|
+
const formattedXAxisDateRangeEnd = (0, _dayjs.default)(x_axis_date_range_end).add(1, 'days').format('YYYY-MM-DD');
|
|
361
|
+
const formattedXAxisComparedDateRangeEnd = (0, _dayjs.default)(x_axis_compared_date_range_end).add(1, 'days').format('YYYY-MM-DD');
|
|
362
|
+
filter_sql = filter_sql + " ((".concat(groupby_column.name, " >= '").concat(x_axis_date_range_start, "' AND ").concat(groupby_column.name, " < '").concat(formattedXAxisDateRangeEnd, "') Or (").concat(groupby_column.name, " >= '").concat(x_axis_compared_date_range_start, "' AND ").concat(groupby_column.name, " < '").concat(formattedXAxisComparedDateRangeEnd, "'))");
|
|
357
363
|
}
|
|
358
|
-
return
|
|
364
|
+
return "SELECT ".concat(groupby_column_name, ", ").concat(summary_column_name, " FROM ").concat(this.table_name, " ").concat(filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
359
365
|
};
|
|
360
366
|
this._combination_chart_statistic_2_sql = () => {
|
|
361
367
|
const x_axis_column_key = this.chart['x_axis_column_key'] || '';
|
|
@@ -386,13 +392,13 @@ class ChartDataSQL {
|
|
|
386
392
|
let summary_column_name = '';
|
|
387
393
|
if (right_summary_type === 'COUNT') {
|
|
388
394
|
summary_column_name = this._summary_column_2_sql('COUNT', groupby_column);
|
|
389
|
-
return
|
|
395
|
+
return "SELECT ".concat(groupby_column_name, ", ").concat(summary_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
390
396
|
} else {
|
|
391
397
|
const right_summary_column = this._get_column_by_key(y_axis_right_summary_column);
|
|
392
398
|
if (right_summary_column) {
|
|
393
399
|
const right_summary_method = y_axis_right_summary_method.toUpperCase();
|
|
394
400
|
summary_column_name = this._summary_column_2_sql(right_summary_method, right_summary_column);
|
|
395
|
-
return
|
|
401
|
+
return "SELECT ".concat(groupby_column_name, ", COUNT(").concat(groupby_column_name, "), ").concat(summary_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
396
402
|
}
|
|
397
403
|
}
|
|
398
404
|
}
|
|
@@ -432,7 +438,7 @@ class ChartDataSQL {
|
|
|
432
438
|
}
|
|
433
439
|
}
|
|
434
440
|
const column_groupby_numeric_column_names_string = column_groupby_numeric_column_names.join(', ');
|
|
435
|
-
return
|
|
441
|
+
return "SELECT ".concat(groupby_column_name, ", ").concat(column_groupby_numeric_column_names_string, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
436
442
|
}
|
|
437
443
|
const summary_column = this._get_column_by_key(y_axis_left_summary_column);
|
|
438
444
|
const summary_method = y_axis_left_summary_method.toUpperCase();
|
|
@@ -449,17 +455,17 @@ class ChartDataSQL {
|
|
|
449
455
|
}
|
|
450
456
|
if (right_summary_column_name) {
|
|
451
457
|
if (left_summary_column_name === right_summary_column_name) {
|
|
452
|
-
return
|
|
458
|
+
return "SELECT ".concat(groupby_column_name, ", ").concat(left_summary_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
453
459
|
}
|
|
454
|
-
return
|
|
460
|
+
return "SELECT ".concat(groupby_column_name, ", ").concat(right_summary_column_name, ", ").concat(left_summary_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
455
461
|
}
|
|
456
|
-
return
|
|
462
|
+
return "SELECT ".concat(groupby_column_name, ", ").concat(left_summary_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
457
463
|
};
|
|
458
464
|
this._summary_columns_2_sql = (summary_columns, summary_column_key, groupby_column, summary_method) => {
|
|
459
465
|
const summary_column = this._get_column_by_key(summary_column_key);
|
|
460
466
|
summary_method = summary_method.toUpperCase();
|
|
461
467
|
let summary_column_names = [];
|
|
462
|
-
if (summary_column && (isNumericColumn(summary_column) || isDateColumn(summary_column))) {
|
|
468
|
+
if (summary_column && ((0, _dtableUtils.isNumericColumn)(summary_column) || (0, _dtableUtils.isDateColumn)(summary_column))) {
|
|
463
469
|
const summary_column_name = this._summary_column_2_sql(summary_method, summary_column);
|
|
464
470
|
summary_column_names.push(summary_column_name);
|
|
465
471
|
}
|
|
@@ -470,14 +476,14 @@ class ChartDataSQL {
|
|
|
470
476
|
} = column_option;
|
|
471
477
|
const method = summary_method === null || summary_method === void 0 ? void 0 : summary_method.toUpperCase();
|
|
472
478
|
const column = this._get_column_by_key(column_key);
|
|
473
|
-
if (column && (isNumericColumn(column) || isDateColumn(column))) {
|
|
479
|
+
if (column && ((0, _dtableUtils.isNumericColumn)(column) || (0, _dtableUtils.isDateColumn)(column))) {
|
|
474
480
|
const column_name = this._summary_column_2_sql(method, column);
|
|
475
481
|
summary_column_names.push(column_name);
|
|
476
482
|
}
|
|
477
483
|
});
|
|
478
484
|
|
|
479
485
|
// groupby_column is COLLABORATOR or MULTIPLE_SELECT, replace AVG with SUM, and add 'COUNT(*)'
|
|
480
|
-
if (groupby_column.type === CellType.COLLABORATOR || groupby_column.type === CellType.MULTIPLE_SELECT) {
|
|
486
|
+
if (groupby_column.type === _dtableUtils.CellType.COLLABORATOR || groupby_column.type === _dtableUtils.CellType.MULTIPLE_SELECT) {
|
|
481
487
|
summary_column_names.forEach((item, index) => {
|
|
482
488
|
if (item.startsWith('AVG')) {
|
|
483
489
|
summary_column_names[index] = 'SUM' + item.slice(3);
|
|
@@ -510,26 +516,26 @@ class ChartDataSQL {
|
|
|
510
516
|
summary_type = summary_type.toUpperCase();
|
|
511
517
|
if (summary_type === 'COUNT') {
|
|
512
518
|
const summary_column_name = this._summary_column_2_sql('COUNT', groupby_column);
|
|
513
|
-
return
|
|
519
|
+
return "SELECT ".concat(groupby_column_name, ", ").concat(summary_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
514
520
|
}
|
|
515
521
|
if (summary_columns) {
|
|
516
522
|
const summary_column_names_str = this._summary_columns_2_sql(summary_columns, summary_column_key, groupby_column, summary_method);
|
|
517
|
-
return
|
|
523
|
+
return "SELECT ".concat(groupby_column_name, ", ").concat(summary_column_names_str, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
518
524
|
}
|
|
519
525
|
summary_method = summary_method.toUpperCase();
|
|
520
526
|
let new_numeric_column_keys = [summary_column_key];
|
|
521
527
|
let numeric_column_names = [];
|
|
522
528
|
new_numeric_column_keys.forEach(column_key => {
|
|
523
529
|
const column = this._get_column_by_key(column_key);
|
|
524
|
-
if (column && (isNumericColumn(column) || isDateColumn(column))) {
|
|
530
|
+
if (column && ((0, _dtableUtils.isNumericColumn)(column) || (0, _dtableUtils.isDateColumn)(column))) {
|
|
525
531
|
const column_name = this._summary_column_2_sql(summary_method, column);
|
|
526
532
|
numeric_column_names.append(column_name);
|
|
527
533
|
}
|
|
528
534
|
});
|
|
529
535
|
if (numeric_column_names.length > 0) {
|
|
530
|
-
return
|
|
536
|
+
return "SELECT ".concat(groupby_column_name, ", ").concat(numeric_column_names.join(', '), " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
531
537
|
}
|
|
532
|
-
return
|
|
538
|
+
return "SELECT ".concat(groupby_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
533
539
|
};
|
|
534
540
|
this._two_dimension_statistic_table_2_sql = () => {
|
|
535
541
|
const groupby_column_key = this.chart['groupby_column_key'] || '';
|
|
@@ -578,7 +584,7 @@ class ChartDataSQL {
|
|
|
578
584
|
summary_column_names_str = this._summary_columns_2_sql(summary_columns, summary_column_key, groupby_column, summary_method);
|
|
579
585
|
}
|
|
580
586
|
}
|
|
581
|
-
return
|
|
587
|
+
return "SELECT ".concat(groupby_column_name, ", ").concat(column_groupby_column_name, ", ").concat(summary_column_names_str, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, ", ").concat(column_groupby_column_name, " LIMIT 0, 5000");
|
|
582
588
|
};
|
|
583
589
|
this._pie_chart_statistic_2_sql = () => {
|
|
584
590
|
const groupby_column_key = this.chart['groupby_column_key'] || '';
|
|
@@ -614,14 +620,14 @@ class ChartDataSQL {
|
|
|
614
620
|
}
|
|
615
621
|
}
|
|
616
622
|
if (summary_column_name) {
|
|
617
|
-
return
|
|
623
|
+
return "SELECT ".concat(groupby_column_name, ", ").concat(summary_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
618
624
|
}
|
|
619
|
-
return
|
|
625
|
+
return "SELECT ".concat(groupby_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
620
626
|
};
|
|
621
627
|
this._basic_number_card_chart_statistic_2_sql = () => {
|
|
622
628
|
const summary_type = this.chart['summary_type'];
|
|
623
|
-
if (summary_type === CHART_Y_GROUP_TYPE.COUNT) {
|
|
624
|
-
return
|
|
629
|
+
if (summary_type === _constants.CHART_Y_GROUP_TYPE.COUNT) {
|
|
630
|
+
return "SELECT COUNT(*) FROM ".concat(this.table_name, " ").concat(this.filter_sql, " LIMIT 0, 5000");
|
|
625
631
|
}
|
|
626
632
|
const numeric_column_key = this.chart['numeric_column_key'] || '';
|
|
627
633
|
let summary_method = this.chart['summary_method'] || '';
|
|
@@ -637,7 +643,7 @@ class ChartDataSQL {
|
|
|
637
643
|
this._update_filter_sql(true, numeric_column);
|
|
638
644
|
summary_method = summary_method.toUpperCase();
|
|
639
645
|
const summary_column_name = this._summary_column_2_sql(summary_method, numeric_column);
|
|
640
|
-
return
|
|
646
|
+
return "SELECT ".concat(summary_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " LIMIT 0, 5000");
|
|
641
647
|
};
|
|
642
648
|
this._dashboard_chart_statistic_2_sql = () => {
|
|
643
649
|
const target_column_key = this.chart['target_value_column_key'] || '';
|
|
@@ -667,7 +673,7 @@ class ChartDataSQL {
|
|
|
667
673
|
this._update_filter_sql(true, target_column);
|
|
668
674
|
total_summary_method = total_summary_method.toUpperCase();
|
|
669
675
|
const total_summary_column_name = this._summary_column_2_sql(total_summary_method, total_column);
|
|
670
|
-
return
|
|
676
|
+
return "SELECT ".concat(target_summary_column_name, ", ").concat(total_summary_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " LIMIT 0, 5000");
|
|
671
677
|
};
|
|
672
678
|
this._completeness_chart_statistic_2_sql = () => {
|
|
673
679
|
const groupby_column_key = this.chart['groupby_column_key'];
|
|
@@ -706,9 +712,9 @@ class ChartDataSQL {
|
|
|
706
712
|
'date_granularity': date_granularity,
|
|
707
713
|
'geolocation_granularity': geolocation_granularity
|
|
708
714
|
});
|
|
709
|
-
return
|
|
715
|
+
return "SELECT `".concat(groupby_column_name, "`, ").concat(column_groupby_column_name, ", SUM(`").concat(target_column_name, "`), SUM(`").concat(completed_column_name, "`) FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY `").concat(groupby_column_name, "`, ").concat(column_groupby_column_name, " LIMIT 0, 5000");
|
|
710
716
|
}
|
|
711
|
-
return
|
|
717
|
+
return "SELECT `".concat(groupby_column_name, "`, `").concat(target_column_name, "`, `").concat(completed_column_name, "` FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY `").concat(groupby_column_name, "`, `").concat(target_column_name, "`, `").concat(completed_column_name, "` LIMIT 0, 5000");
|
|
712
718
|
};
|
|
713
719
|
this._scatter_statistic_2_sql = () => {
|
|
714
720
|
const x_axis_column_key = this.chart['x_axis_column_key'];
|
|
@@ -748,9 +754,9 @@ class ChartDataSQL {
|
|
|
748
754
|
'date_granularity': date_granularity,
|
|
749
755
|
'geolocation_granularity': geolocation_granularity
|
|
750
756
|
});
|
|
751
|
-
return
|
|
757
|
+
return "SELECT `".concat(xAxisColumnName, "`, `").concat(yAxisColumnName, "`, ").concat(column_groupby_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY `").concat(xAxisColumnName, "`, `").concat(yAxisColumnName, "`, ").concat(column_groupby_column_name, " LIMIT 0, 5000");
|
|
752
758
|
}
|
|
753
|
-
return
|
|
759
|
+
return "SELECT `".concat(xAxisColumnName, "`, `").concat(yAxisColumnName, "` FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY `").concat(xAxisColumnName, "`, `").concat(yAxisColumnName, "` LIMIT 0, 5000");
|
|
754
760
|
};
|
|
755
761
|
this._map_statistic_2_sql = () => {
|
|
756
762
|
const {
|
|
@@ -766,7 +772,7 @@ class ChartDataSQL {
|
|
|
766
772
|
this.error = 'Geo_column_not_found';
|
|
767
773
|
return '';
|
|
768
774
|
}
|
|
769
|
-
const geolocation_granularity = fixGeoGranularity(map_level, map_location);
|
|
775
|
+
const geolocation_granularity = (0, _map.fixGeoGranularity)(map_level, map_location);
|
|
770
776
|
this._update_filter_sql(false, groupby_column);
|
|
771
777
|
|
|
772
778
|
// map do not have date column ,so date_granularity is not needed
|
|
@@ -786,9 +792,9 @@ class ChartDataSQL {
|
|
|
786
792
|
}
|
|
787
793
|
}
|
|
788
794
|
if (summary_column_name) {
|
|
789
|
-
return
|
|
795
|
+
return "SELECT ".concat(groupby_column_name, ", ").concat(summary_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
790
796
|
}
|
|
791
|
-
return
|
|
797
|
+
return "SELECT ".concat(groupby_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(groupby_column_name, " LIMIT 0, 5000");
|
|
792
798
|
};
|
|
793
799
|
this._world_map_basic_statistic_2_sql = () => {
|
|
794
800
|
const {
|
|
@@ -808,7 +814,7 @@ class ChartDataSQL {
|
|
|
808
814
|
'geolocation_granularity': ''
|
|
809
815
|
});
|
|
810
816
|
let summary_column_name = this._summary_column_2_sql('COUNT', groupby_column);
|
|
811
|
-
if (summary_type === CHART_SUMMARY_TYPE.ADVANCED) {
|
|
817
|
+
if (summary_type === _constants.CHART_SUMMARY_TYPE.ADVANCED) {
|
|
812
818
|
const summary_column = this._get_column_by_key(summary_column_key);
|
|
813
819
|
if (!summary_column) {
|
|
814
820
|
this.error = 'Summary_column_not_found';
|
|
@@ -816,7 +822,7 @@ class ChartDataSQL {
|
|
|
816
822
|
}
|
|
817
823
|
summary_column_name = this._summary_column_2_sql(summary_method.toUpperCase(), summary_column);
|
|
818
824
|
}
|
|
819
|
-
return
|
|
825
|
+
return "SELECT ".concat(column_name, ", ").concat(summary_column_name, " FROM ").concat(this.table_name, " ").concat(this.filter_sql, " GROUP BY ").concat(column_name, " LIMIT 0, 5000");
|
|
820
826
|
};
|
|
821
827
|
this.to_sql = () => {
|
|
822
828
|
if (this.error) {
|
|
@@ -825,14 +831,14 @@ class ChartDataSQL {
|
|
|
825
831
|
error: this.error
|
|
826
832
|
};
|
|
827
833
|
}
|
|
828
|
-
if ([CHART_TYPE.BAR, CHART_TYPE.LINE, CHART_TYPE.HORIZONTAL_BAR, CHART_TYPE.AREA, CHART_TYPE.FUNNEL].includes(this.chart_type)) {
|
|
834
|
+
if ([_constants.CHART_TYPE.BAR, _constants.CHART_TYPE.LINE, _constants.CHART_TYPE.HORIZONTAL_BAR, _constants.CHART_TYPE.AREA, _constants.CHART_TYPE.FUNNEL].includes(this.chart_type)) {
|
|
829
835
|
const sql = this._basic_statistic_2_sql();
|
|
830
836
|
return {
|
|
831
837
|
sql,
|
|
832
838
|
error: this.error
|
|
833
839
|
};
|
|
834
840
|
}
|
|
835
|
-
if ([CHART_TYPE.BAR_GROUP, CHART_TYPE.LINE_GROUP, CHART_TYPE.AREA_GROUP, CHART_TYPE.HORIZONTAL_GROUP_BAR, CHART_TYPE.STACKED_HORIZONTAL_BAR, CHART_TYPE.BAR_STACK].includes(this.chart_type)) {
|
|
841
|
+
if ([_constants.CHART_TYPE.BAR_GROUP, _constants.CHART_TYPE.LINE_GROUP, _constants.CHART_TYPE.AREA_GROUP, _constants.CHART_TYPE.HORIZONTAL_GROUP_BAR, _constants.CHART_TYPE.STACKED_HORIZONTAL_BAR, _constants.CHART_TYPE.BAR_STACK].includes(this.chart_type)) {
|
|
836
842
|
const column_groupby_column_key = this.chart['column_groupby_column_key'] || '';
|
|
837
843
|
const column_groupby_multiple_numeric_column = this.chart['column_groupby_multiple_numeric_column'] || false;
|
|
838
844
|
if (!(column_groupby_column_key || column_groupby_multiple_numeric_column)) {
|
|
@@ -848,63 +854,63 @@ class ChartDataSQL {
|
|
|
848
854
|
error: this.error
|
|
849
855
|
};
|
|
850
856
|
}
|
|
851
|
-
if (this.chart_type === CHART_TYPE.COMPLETENESS || this.chart_type === CHART_TYPE.COMPLETENESS_GROUP) {
|
|
857
|
+
if (this.chart_type === _constants.CHART_TYPE.COMPLETENESS || this.chart_type === _constants.CHART_TYPE.COMPLETENESS_GROUP) {
|
|
852
858
|
const sql = this._completeness_chart_statistic_2_sql();
|
|
853
859
|
return {
|
|
854
860
|
sql,
|
|
855
861
|
error: this.error
|
|
856
862
|
};
|
|
857
863
|
}
|
|
858
|
-
if (this.chart_type === CHART_TYPE.SCATTER) {
|
|
864
|
+
if (this.chart_type === _constants.CHART_TYPE.SCATTER) {
|
|
859
865
|
const sql = this._scatter_statistic_2_sql();
|
|
860
866
|
return {
|
|
861
867
|
sql,
|
|
862
868
|
error: this.error
|
|
863
869
|
};
|
|
864
870
|
}
|
|
865
|
-
if (this.chart_type === CHART_TYPE.BAR_CUSTOM) {
|
|
871
|
+
if (this.chart_type === _constants.CHART_TYPE.BAR_CUSTOM) {
|
|
866
872
|
const sql = this._custom_statistic_2_sql();
|
|
867
873
|
return {
|
|
868
874
|
sql,
|
|
869
875
|
error: this.error
|
|
870
876
|
};
|
|
871
877
|
}
|
|
872
|
-
if (this.chart_type === CHART_TYPE.COMPARE_BAR) {
|
|
878
|
+
if (this.chart_type === _constants.CHART_TYPE.COMPARE_BAR) {
|
|
873
879
|
const sql = this._compare_chart_statistic_2_sql();
|
|
874
880
|
return {
|
|
875
881
|
sql,
|
|
876
882
|
error: this.error
|
|
877
883
|
};
|
|
878
884
|
}
|
|
879
|
-
if (this.chart_type === CHART_TYPE.COMBINATION) {
|
|
885
|
+
if (this.chart_type === _constants.CHART_TYPE.COMBINATION) {
|
|
880
886
|
const sql = this._combination_chart_statistic_2_sql();
|
|
881
887
|
return {
|
|
882
888
|
sql,
|
|
883
889
|
error: this.error
|
|
884
890
|
};
|
|
885
891
|
}
|
|
886
|
-
if ([CHART_TYPE.PIE, CHART_TYPE.RING, CHART_TYPE.TREE_MAP].includes(this.chart_type)) {
|
|
892
|
+
if ([_constants.CHART_TYPE.PIE, _constants.CHART_TYPE.RING, _constants.CHART_TYPE.TREE_MAP].includes(this.chart_type)) {
|
|
887
893
|
const sql = this._pie_chart_statistic_2_sql();
|
|
888
894
|
return {
|
|
889
895
|
sql,
|
|
890
896
|
error: this.error
|
|
891
897
|
};
|
|
892
898
|
}
|
|
893
|
-
if (this.chart_type === CHART_TYPE.BASIC_NUMBER_CARD) {
|
|
899
|
+
if (this.chart_type === _constants.CHART_TYPE.BASIC_NUMBER_CARD) {
|
|
894
900
|
const sql = this._basic_number_card_chart_statistic_2_sql();
|
|
895
901
|
return {
|
|
896
902
|
sql,
|
|
897
903
|
error: this.error
|
|
898
904
|
};
|
|
899
905
|
}
|
|
900
|
-
if (this.chart_type === CHART_TYPE.DASHBOARD) {
|
|
906
|
+
if (this.chart_type === _constants.CHART_TYPE.DASHBOARD) {
|
|
901
907
|
const sql = this._dashboard_chart_statistic_2_sql();
|
|
902
908
|
return {
|
|
903
909
|
sql,
|
|
904
910
|
error: this.error
|
|
905
911
|
};
|
|
906
912
|
}
|
|
907
|
-
const mapChart = [CHART_TYPE.MAP, CHART_TYPE.MAP_BUBBLE];
|
|
913
|
+
const mapChart = [_constants.CHART_TYPE.MAP, _constants.CHART_TYPE.MAP_BUBBLE];
|
|
908
914
|
if (mapChart.includes(this.chart_type)) {
|
|
909
915
|
const sql = this._map_statistic_2_sql();
|
|
910
916
|
return {
|
|
@@ -912,7 +918,7 @@ class ChartDataSQL {
|
|
|
912
918
|
error: this.error
|
|
913
919
|
};
|
|
914
920
|
}
|
|
915
|
-
if (this.chart_type === CHART_TYPE.TABLE) {
|
|
921
|
+
if (this.chart_type === _constants.CHART_TYPE.TABLE) {
|
|
916
922
|
const column_groupby_column_key = this.chart['column_groupby_column_key'] || '';
|
|
917
923
|
const groupby_column_key = this.chart['groupby_column_key'] || '';
|
|
918
924
|
if (!groupby_column_key) {
|
|
@@ -934,28 +940,28 @@ class ChartDataSQL {
|
|
|
934
940
|
error: this.error
|
|
935
941
|
};
|
|
936
942
|
}
|
|
937
|
-
if ([CHART_TYPE.WORLD_MAP, CHART_TYPE.WORLD_MAP_BUBBLE].includes(this.chart_type)) {
|
|
943
|
+
if ([_constants.CHART_TYPE.WORLD_MAP, _constants.CHART_TYPE.WORLD_MAP_BUBBLE].includes(this.chart_type)) {
|
|
938
944
|
const sql = this._world_map_basic_statistic_2_sql();
|
|
939
945
|
return {
|
|
940
946
|
sql,
|
|
941
947
|
error: this.error
|
|
942
948
|
};
|
|
943
949
|
}
|
|
944
|
-
if (this.chart_type === CHART_TYPE.HEAT_MAP) {
|
|
950
|
+
if (this.chart_type === _constants.CHART_TYPE.HEAT_MAP) {
|
|
945
951
|
const sql = this._heat_map_statistic_2_sql();
|
|
946
952
|
return {
|
|
947
953
|
sql,
|
|
948
954
|
error: this.error
|
|
949
955
|
};
|
|
950
956
|
}
|
|
951
|
-
if (this.chart_type === CHART_TYPE.MIRROR) {
|
|
957
|
+
if (this.chart_type === _constants.CHART_TYPE.MIRROR) {
|
|
952
958
|
const sql = this._mirror_map_statistic_2_sql();
|
|
953
959
|
return {
|
|
954
960
|
sql,
|
|
955
961
|
error: this.error
|
|
956
962
|
};
|
|
957
963
|
}
|
|
958
|
-
if (this.chart_type === CHART_TYPE.TREND) {
|
|
964
|
+
if (this.chart_type === _constants.CHART_TYPE.TREND) {
|
|
959
965
|
const sql = this._trend_map_statistic_2_sql();
|
|
960
966
|
return {
|
|
961
967
|
sql,
|
|
@@ -972,10 +978,10 @@ class ChartDataSQL {
|
|
|
972
978
|
const {
|
|
973
979
|
type
|
|
974
980
|
} = column || {};
|
|
975
|
-
if (type === CellType.SINGLE_SELECT || type === CellType.MULTIPLE_SELECT) {
|
|
976
|
-
return
|
|
981
|
+
if (type === _dtableUtils.CellType.SINGLE_SELECT || type === _dtableUtils.CellType.MULTIPLE_SELECT) {
|
|
982
|
+
return "'".concat(name, "'");
|
|
977
983
|
}
|
|
978
|
-
if (type === CellType.NUMBER) {
|
|
984
|
+
if (type === _dtableUtils.CellType.NUMBER) {
|
|
979
985
|
const newName = Number(name);
|
|
980
986
|
if (!Number.isNaN(newName)) {
|
|
981
987
|
return newName;
|
|
@@ -986,7 +992,7 @@ class ChartDataSQL {
|
|
|
986
992
|
if (typeof newName === 'number') {
|
|
987
993
|
return newName;
|
|
988
994
|
}
|
|
989
|
-
return
|
|
995
|
+
return "'".concat(newName, "'");
|
|
990
996
|
};
|
|
991
997
|
this.get_statistic_record_sql = (statItem, statisticRecord, _ref2) => {
|
|
992
998
|
let {
|
|
@@ -1003,7 +1009,7 @@ class ChartDataSQL {
|
|
|
1003
1009
|
groupName,
|
|
1004
1010
|
selectedColumn,
|
|
1005
1011
|
columnSelectedColumn
|
|
1006
|
-
} = getDatabaseGroupName(statItem.config, this.table);
|
|
1012
|
+
} = (0, _column2SqlColumn.getDatabaseGroupName)(statItem.config, this.table);
|
|
1007
1013
|
let isGroup = column_groupby_column_key && !column_groupby_multiple_numeric_column;
|
|
1008
1014
|
let {
|
|
1009
1015
|
name,
|
|
@@ -1013,10 +1019,10 @@ class ChartDataSQL {
|
|
|
1013
1019
|
} = statisticRecord;
|
|
1014
1020
|
|
|
1015
1021
|
// No grouping required type
|
|
1016
|
-
if ([CHART_TYPE.COMPLETENESS_GROUP].includes(type)) {
|
|
1022
|
+
if ([_constants.CHART_TYPE.COMPLETENESS_GROUP].includes(type)) {
|
|
1017
1023
|
isGroup = false;
|
|
1018
1024
|
}
|
|
1019
|
-
if ([CHART_TYPE.PIE, CHART_TYPE.RING, CHART_TYPE.TREE_MAP].includes(type)) {
|
|
1025
|
+
if ([_constants.CHART_TYPE.PIE, _constants.CHART_TYPE.RING, _constants.CHART_TYPE.TREE_MAP].includes(type)) {
|
|
1020
1026
|
name = name.trim();
|
|
1021
1027
|
}
|
|
1022
1028
|
let sqlName = this.get_sql_group_name(name, original_name, selectedColumn);
|
|
@@ -1025,37 +1031,37 @@ class ChartDataSQL {
|
|
|
1025
1031
|
sqlGroupName = this.get_sql_group_name(group_name, group_original_name, columnSelectedColumn);
|
|
1026
1032
|
}
|
|
1027
1033
|
let sqlString;
|
|
1028
|
-
if (type === CHART_TYPE.TABLE) {
|
|
1029
|
-
let pivotGroupName =
|
|
1034
|
+
if (type === _constants.CHART_TYPE.TABLE) {
|
|
1035
|
+
let pivotGroupName = "".concat(isGroup ? "".concat(columnGroupName, "=").concat(sqlGroupName) : '');
|
|
1030
1036
|
if (isColumn) {
|
|
1031
1037
|
if (this.filter_sql && pivotGroupName) {
|
|
1032
|
-
sqlString =
|
|
1038
|
+
sqlString = "select * from ".concat(this.table_name, " ").concat(this.filter_sql, " and ").concat(pivotGroupName, " limit 5000");
|
|
1033
1039
|
} else if (groupName && !this.filter_sql) {
|
|
1034
|
-
sqlString =
|
|
1040
|
+
sqlString = "select * from ".concat(this.table_name, " where ").concat(pivotGroupName, " limit 5000");
|
|
1035
1041
|
} else {
|
|
1036
|
-
sqlString =
|
|
1042
|
+
sqlString = "select * from ".concat(this.table_name, " ").concat(this.filter_sql, " limit 5000");
|
|
1037
1043
|
}
|
|
1038
1044
|
return sqlString;
|
|
1039
1045
|
}
|
|
1040
1046
|
if (isRow) {
|
|
1041
1047
|
if (groupName && this.filter_sql) {
|
|
1042
|
-
sqlString =
|
|
1048
|
+
sqlString = "select * from ".concat(this.table_name, " ").concat(this.filter_sql, " and ").concat(groupName, "=").concat(sqlName, " limit 5000");
|
|
1043
1049
|
} else if (groupName && !this.filter_sql) {
|
|
1044
|
-
sqlString =
|
|
1050
|
+
sqlString = "select * from ".concat(this.table_name, " where ").concat(groupName, "=").concat(sqlName, " limit 5000");
|
|
1045
1051
|
} else {
|
|
1046
|
-
sqlString =
|
|
1052
|
+
sqlString = "select * from ".concat(this.table_name, " ").concat(this.filter_sql, " limit 5000");
|
|
1047
1053
|
}
|
|
1048
1054
|
return sqlString;
|
|
1049
1055
|
}
|
|
1050
|
-
sqlString =
|
|
1056
|
+
sqlString = "select * from ".concat(this.table_name, " limit 5000");
|
|
1051
1057
|
return sqlString;
|
|
1052
1058
|
}
|
|
1053
1059
|
if (groupName && this.filter_sql) {
|
|
1054
|
-
sqlString =
|
|
1060
|
+
sqlString = "select * from ".concat(this.table_name, " ").concat(this.filter_sql, " and ").concat(groupName, "=").concat(sqlName, " ").concat(isGroup ? "and ".concat(columnGroupName, "=").concat(sqlGroupName) : '', " limit 5000");
|
|
1055
1061
|
} else if (groupName && !this.filter_sql) {
|
|
1056
|
-
sqlString =
|
|
1062
|
+
sqlString = "select * from ".concat(this.table_name, " where ").concat(groupName, "=").concat(sqlName, " ").concat(isGroup ? "and ".concat(columnGroupName, "=").concat(sqlGroupName) : '', " limit 5000");
|
|
1057
1063
|
} else {
|
|
1058
|
-
sqlString =
|
|
1064
|
+
sqlString = "select * from ".concat(this.table_name, " ").concat(this.filter_sql, " limit 5000");
|
|
1059
1065
|
}
|
|
1060
1066
|
return sqlString;
|
|
1061
1067
|
};
|
|
@@ -1065,7 +1071,7 @@ class ChartDataSQL {
|
|
|
1065
1071
|
this.chart = (chart === null || chart === void 0 ? void 0 : chart.config) || {};
|
|
1066
1072
|
this.username = username;
|
|
1067
1073
|
const table_name = (table === null || table === void 0 ? void 0 : table.name) || '';
|
|
1068
|
-
this.table_name =
|
|
1074
|
+
this.table_name = "`".concat(table_name, "`");
|
|
1069
1075
|
this.userId = userId;
|
|
1070
1076
|
this.userDepartmentIdsMap = userDepartmentIdsMap;
|
|
1071
1077
|
this.chart_type = (chart === null || chart === void 0 ? void 0 : (_chart$config = chart.config) === null || _chart$config === void 0 ? void 0 : _chart$config.type) || '';
|
|
@@ -1075,7 +1081,7 @@ class ChartDataSQL {
|
|
|
1075
1081
|
Array.isArray(table.columns) && table.columns.forEach(column => {
|
|
1076
1082
|
this.column_key_map[column.key] = column;
|
|
1077
1083
|
});
|
|
1078
|
-
this.filter_sql = filter2SqlCondition(table, view, username, userId, userDepartmentIdsMap);
|
|
1084
|
+
this.filter_sql = (0, _dtableUtils.filter2SqlCondition)(table, view, username, userId, userDepartmentIdsMap);
|
|
1079
1085
|
}
|
|
1080
1086
|
}
|
|
1081
|
-
|
|
1087
|
+
var _default = exports.default = ChartDataSQL;
|