sea-chart 2.0.37 → 2.0.38
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 +20 -69
- package/dist/assets/css/sea-chart-d3-tooltip.css +0 -1
- package/dist/components/cell-factory/FormatterConfig.js +55 -62
- package/dist/components/cell-factory/SimpleCellFormatter.js +5 -12
- package/dist/components/cell-factory/SingleSelectOption.js +11 -18
- package/dist/components/cell-factory/cell-editor-factory.js +5 -12
- package/dist/components/cell-factory/cell-formatter-factory.js +4 -11
- package/dist/components/cell-factory/link-content.js +30 -38
- package/dist/components/chart-color-selector/color-selector.js +11 -18
- package/dist/components/collaborator/index.js +7 -14
- package/dist/components/color-picker/index.js +12 -19
- package/dist/components/color-popover/color-rules/color-rule.js +26 -34
- package/dist/components/color-popover/color-rules/index.js +7 -15
- package/dist/components/color-popover/color-rules/rule-filters/filter.js +27 -34
- package/dist/components/color-popover/color-rules/rule-filters/index.js +17 -25
- package/dist/components/color-popover/color-rules/rule-filters/number-input.js +9 -17
- package/dist/components/color-popover/color-rules-popover.js +31 -37
- package/dist/components/color-popover/color-selector-popover.js +12 -20
- package/dist/components/color-setting/color-group-selector.js +13 -21
- package/dist/components/common-add-tool/index.js +8 -15
- package/dist/components/data-process-setter/data-setting-header.js +7 -14
- package/dist/components/data-process-setter/hide-column-setter.js +13 -20
- package/dist/components/data-process-setter/index.js +4 -27
- package/dist/components/data-process-setter/sort-setter.js +18 -26
- package/dist/components/draggable/Draggable.js +7 -13
- package/dist/components/drill-down-settings/drill-down-fields-popover/index.js +41 -48
- package/dist/components/drill-down-settings/drill-down-fields-settings/index.js +10 -18
- package/dist/components/drill-down-settings/index.js +11 -18
- package/dist/components/dtable-popover/index.js +13 -20
- package/dist/components/dtable-search-input/index.js +13 -21
- package/dist/components/font-settings/index.js +14 -22
- package/dist/components/goal-line-setting/goal-setting-item.js +6 -14
- package/dist/components/goal-line-setting/index.js +12 -19
- package/dist/components/highlighter/highlighter.js +7 -14
- package/dist/components/icon/index.js +12 -23
- package/dist/components/index.js +7 -48
- package/dist/components/loading/index.js +6 -13
- package/dist/components/number-input/index.js +11 -24
- package/dist/components/pixel-editor/index.js +15 -23
- package/dist/components/popover/hide-column-popover/hide-column-popover-widgets/hide-column-item.js +13 -16
- package/dist/components/popover/hide-column-popover/hide-column-popover.css +5 -1
- package/dist/components/popover/hide-column-popover/hide-column-popover.js +28 -38
- package/dist/components/popover/sort-popover/sort-popover-widgets/sort-utils.js +9 -18
- package/dist/components/popover/sort-popover/sort-popover.js +58 -69
- package/dist/components/resize-handle/ResizeHandle.js +6 -13
- package/dist/components/row-card/row-card-header-cell.js +17 -24
- package/dist/components/row-card/row-card-header.js +15 -22
- package/dist/components/row-card/row-card-item.js +35 -43
- package/dist/components/row-card/row-card.js +17 -25
- package/dist/components/statistic-record-dialog/index.js +61 -68
- package/dist/components/tooltip/index.js +39 -28
- package/dist/components/types-dialog/index.js +62 -70
- package/dist/components/types-dialog/use-force-update.js +4 -10
- package/dist/constants/color-rules.js +8 -14
- package/dist/constants/common-constants.js +8 -14
- package/dist/constants/error.js +2 -8
- package/dist/constants/geolocation.js +9 -15
- package/dist/constants/index.js +142 -271
- package/dist/constants/key-codes.js +0 -2
- package/dist/constants/model.js +3 -9
- package/dist/constants/regions.js +3 -8
- package/dist/constants/style.js +6 -12
- package/dist/constants/table.js +1 -7
- package/dist/constants/type-image.js +33 -39
- package/dist/constants/type.js +3 -9
- package/dist/context.js +13 -20
- package/dist/editor/index.js +13 -16
- package/dist/index.js +13 -104
- package/dist/intl.js +10 -17
- package/dist/locale/index.js +16 -23
- package/dist/locale/lang/de.js +2 -7
- package/dist/locale/lang/en.js +2 -7
- package/dist/locale/lang/es.js +2 -7
- package/dist/locale/lang/fr.js +2 -7
- package/dist/locale/lang/pt.js +2 -7
- package/dist/locale/lang/ru.js +2 -7
- package/dist/locale/lang/zh_CN.js +2 -7
- package/dist/model/area-group.js +12 -19
- package/dist/model/area.js +12 -19
- package/dist/model/bar-custom.js +11 -18
- package/dist/model/bar-group.js +12 -19
- package/dist/model/bar-stack.js +10 -17
- package/dist/model/bar.js +11 -18
- package/dist/model/base-model.js +4 -11
- package/dist/model/basic-number-card.js +13 -20
- package/dist/model/chart.js +7 -13
- package/dist/model/combination.js +15 -22
- package/dist/model/compare-bar.js +14 -21
- package/dist/model/completeness-group.js +11 -18
- package/dist/model/completeness.js +10 -17
- package/dist/model/dashboard.js +7 -14
- package/dist/model/funnel.js +14 -21
- package/dist/model/generic-model.js +135 -143
- package/dist/model/heat-map.js +9 -16
- package/dist/model/horizontal-bar.js +11 -18
- package/dist/model/horizontal-group-bar.js +10 -17
- package/dist/model/index.js +69 -93
- package/dist/model/line-group.js +13 -20
- package/dist/model/line.js +12 -19
- package/dist/model/map-bubble.js +14 -17
- package/dist/model/map.js +12 -19
- package/dist/model/mirror.js +13 -20
- package/dist/model/pie.js +12 -19
- package/dist/model/ring.js +12 -19
- package/dist/model/scatter.js +10 -17
- package/dist/model/stacked-horizontal-bar.js +11 -18
- package/dist/model/table-element.js +5 -12
- package/dist/model/table.js +7 -14
- package/dist/model/tree-map.js +7 -14
- package/dist/model/trend.js +11 -18
- package/dist/model/user.js +1 -7
- package/dist/model/world-map-bubble.js +12 -19
- package/dist/model/world-map.js +12 -19
- package/dist/services/map-json.js +14 -17
- package/dist/settings/advance-bar-settings/data-settings.js +36 -44
- package/dist/settings/advance-bar-settings/index.js +3 -20
- package/dist/settings/advance-bar-settings/style-settings.js +66 -73
- package/dist/settings/bar-settings/data-settings.js +39 -47
- package/dist/settings/bar-settings/index.js +3 -20
- package/dist/settings/bar-settings/style-settings.js +51 -59
- package/dist/settings/basic-number-card/data-settings.js +50 -57
- package/dist/settings/basic-number-card/index.js +3 -20
- package/dist/settings/basic-number-card/style-settings.js +19 -27
- package/dist/settings/combination-settings/data-settings.js +55 -64
- package/dist/settings/combination-settings/index.js +3 -20
- package/dist/settings/combination-settings/style-settings.js +67 -75
- package/dist/settings/completeness-settings/callbacks/callbacks.js +16 -27
- package/dist/settings/completeness-settings/data-settings/completion-settings.js +21 -28
- package/dist/settings/completeness-settings/data-settings/data-settings.js +25 -32
- package/dist/settings/completeness-settings/index.js +3 -20
- package/dist/settings/completeness-settings/style-settings.js +19 -26
- package/dist/settings/dashboard-settings/data-settings.js +44 -51
- package/dist/settings/dashboard-settings/index.js +2 -13
- package/dist/settings/data-settings.js +72 -79
- package/dist/settings/funnel-settings/components/dnd-item/dnd-item.js +12 -19
- package/dist/settings/funnel-settings/components/dnd-list.js +15 -23
- package/dist/settings/funnel-settings/components/funnel-label-setting.js +32 -40
- package/dist/settings/funnel-settings/components/funnel-layer-setting.js +22 -30
- package/dist/settings/funnel-settings/data-settings.js +23 -31
- package/dist/settings/funnel-settings/index.js +3 -20
- package/dist/settings/funnel-settings/style-settings.js +11 -19
- package/dist/settings/heat-map-settings/data-settings.js +18 -26
- package/dist/settings/heat-map-settings/index.js +3 -20
- package/dist/settings/heat-map-settings/style-settings.js +18 -26
- package/dist/settings/horizontal-bar-settings/data-settings.js +12 -19
- package/dist/settings/horizontal-bar-settings/index.js +3 -20
- package/dist/settings/horizontal-bar-settings/style-settings.js +12 -19
- package/dist/settings/index.js +57 -70
- package/dist/settings/map-settings/components/location-field-selector.js +10 -17
- package/dist/settings/map-settings/components/map-level-selector.js +11 -18
- package/dist/settings/map-settings/components/map-province-city-selector.js +19 -26
- package/dist/settings/map-settings/index.js +3 -20
- package/dist/settings/map-settings/map-data-settings.js +23 -30
- package/dist/settings/map-settings/map-style-settings.js +27 -35
- package/dist/settings/mirror-settings/data-settings.js +26 -34
- package/dist/settings/mirror-settings/index.js +2 -13
- package/dist/settings/pie-settings/data-settings.js +33 -41
- package/dist/settings/pie-settings/index.js +3 -20
- package/dist/settings/pie-settings/style-settings.js +47 -55
- package/dist/settings/scatter/data-settings.js +27 -34
- package/dist/settings/scatter/index.js +3 -12
- package/dist/settings/stacks-settings/index.js +19 -27
- package/dist/settings/stacks-settings/stack-item-settings.js +19 -27
- package/dist/settings/style-settings.js +65 -73
- package/dist/settings/table-element-settings/components/data-filter.js +49 -58
- package/dist/settings/table-element-settings/data-settings.js +21 -29
- package/dist/settings/table-element-settings/index.css +1 -31
- package/dist/settings/table-element-settings/index.js +2 -13
- package/dist/settings/table-settings/data-settings.js +113 -120
- package/dist/settings/table-settings/index.js +2 -13
- package/dist/settings/time-comparison-settings/data-settings.js +43 -51
- package/dist/settings/time-comparison-settings/index.js +3 -20
- package/dist/settings/time-comparison-settings/style-settings.js +44 -52
- package/dist/settings/trend-settings/data-settings.js +24 -32
- package/dist/settings/trend-settings/index.js +3 -20
- package/dist/settings/trend-settings/style-setting.js +19 -27
- package/dist/settings/widgets/basic-summary/index.js +59 -66
- package/dist/settings/widgets/chart-type/index.js +18 -26
- package/dist/settings/widgets/color-settings/index.js +72 -80
- package/dist/settings/widgets/common-data-settings.js +27 -34
- package/dist/settings/widgets/data-filter/index.js +59 -59
- package/dist/settings/widgets/data-sort.js +16 -24
- package/dist/settings/widgets/date-summary-item.js +26 -34
- package/dist/settings/widgets/display-values-settings/index.js +14 -22
- package/dist/settings/widgets/divider/index.js +8 -16
- package/dist/settings/widgets/font-settings/font-color-settings.js +11 -19
- package/dist/settings/widgets/font-settings/font-size-settings.js +14 -22
- package/dist/settings/widgets/font-settings/font-weight-settings.js +17 -25
- package/dist/settings/widgets/font-settings/index.js +4 -27
- package/dist/settings/widgets/group-by.js +52 -59
- package/dist/settings/widgets/min-max-setting.js +10 -18
- package/dist/settings/widgets/mininum-slice-percent.js +10 -18
- package/dist/settings/widgets/numeric-summary-item.js +25 -33
- package/dist/settings/widgets/select-line-type/index.js +10 -17
- package/dist/settings/widgets/select-table/index.js +9 -16
- package/dist/settings/widgets/select-view/index.js +20 -28
- package/dist/settings/widgets/stack.js +14 -22
- package/dist/settings/widgets/summary-method-setting.js +17 -25
- package/dist/settings/widgets/summary-settings.js +75 -82
- package/dist/settings/widgets/switch/index.js +9 -16
- package/dist/settings/widgets/text-horizontal-settings.js +15 -23
- package/dist/settings/widgets/time-picker.js +29 -37
- package/dist/settings/widgets/title-settings/index.js +29 -37
- package/dist/settings/widgets/title-settings/title-text.js +5 -12
- package/dist/settings/widgets/x-axios.js +0 -1
- package/dist/settings/widgets/y-axis-group-settings.js +65 -72
- package/dist/utils/cell-format-utils.js +25 -33
- package/dist/utils/cell-value-utils.js +4 -11
- package/dist/utils/chart-utils/base-utils.js +467 -367
- package/dist/utils/chart-utils/index.js +29 -40
- package/dist/utils/chart-utils/original-data-utils/basic-chart-calculator.js +78 -85
- package/dist/utils/chart-utils/original-data-utils/card-calculator.js +20 -21
- package/dist/utils/chart-utils/original-data-utils/combination-calculator.js +45 -52
- package/dist/utils/chart-utils/original-data-utils/compare-bar-chart-calculator.js +21 -28
- package/dist/utils/chart-utils/original-data-utils/completeness-calculator.js +33 -40
- package/dist/utils/chart-utils/original-data-utils/dashboard-calculator.js +28 -26
- package/dist/utils/chart-utils/original-data-utils/index.js +50 -57
- package/dist/utils/chart-utils/original-data-utils/mirror-calculator.js +19 -26
- package/dist/utils/chart-utils/original-data-utils/pivot-table-calculator.js +94 -97
- package/dist/utils/chart-utils/original-data-utils/scatter-calculator.js +19 -25
- package/dist/utils/chart-utils/original-data-utils/trend-calculator.js +50 -36
- package/dist/utils/chart-utils/sql-statistics-utils.js +385 -388
- package/dist/utils/chart.js +9 -17
- package/dist/utils/collaborator-manager.js +3 -9
- package/dist/utils/collaborator-utils.js +19 -31
- package/dist/utils/collaborator.js +6 -15
- package/dist/utils/color-utils.js +18 -29
- package/dist/utils/column-utils.js +88 -102
- package/dist/utils/common-utils.js +28 -53
- package/dist/utils/concurrency-manager.js +1 -7
- package/dist/utils/contexts.js +7 -11
- package/dist/utils/date-translate.js +12 -20
- package/dist/utils/digital-sign-utils.js +7 -14
- package/dist/utils/event-bus.js +1 -7
- package/dist/utils/hotkey.js +5 -11
- package/dist/utils/index.js +73 -219
- package/dist/utils/key-generator.js +2 -9
- package/dist/utils/map.js +22 -31
- package/dist/utils/object-utils.js +2 -8
- package/dist/utils/options-utils.js +10 -18
- package/dist/utils/row-record-utils.js +251 -183
- package/dist/utils/row-utils.js +27 -38
- package/dist/utils/search.js +24 -32
- package/dist/utils/sql/chart-data-sql.js +106 -112
- package/dist/utils/sql/column-2-sql-column.js +162 -172
- package/dist/utils/sql/index.js +3 -27
- package/dist/utils/trend-utils.js +50 -45
- package/dist/view/index.css +2 -8
- package/dist/view/index.js +102 -103
- package/dist/view/title/index.js +16 -24
- package/dist/view/wrapper/area-group.js +57 -57
- package/dist/view/wrapper/area.js +43 -51
- package/dist/view/wrapper/bar-compare.js +56 -48
- package/dist/view/wrapper/bar-custom-stack.js +73 -55
- package/dist/view/wrapper/bar-group.js +94 -73
- package/dist/view/wrapper/bar-stack.js +49 -57
- package/dist/view/wrapper/bar.js +40 -48
- package/dist/view/wrapper/basic-number-card.js +50 -34
- package/dist/view/wrapper/chart-component.js +164 -569
- package/dist/view/wrapper/combination.js +55 -63
- package/dist/view/wrapper/completeness-group.js +140 -93
- package/dist/view/wrapper/completeness.js +36 -44
- package/dist/view/wrapper/dashboard.js +104 -59
- package/dist/view/wrapper/funnel.js +40 -43
- package/dist/view/wrapper/heat-map.js +62 -70
- package/dist/view/wrapper/horizontal-bar-group.js +70 -58
- package/dist/view/wrapper/horizontal-bar-stack.js +48 -56
- package/dist/view/wrapper/horizontal-bar.js +41 -49
- package/dist/view/wrapper/index.js +107 -115
- package/dist/view/wrapper/line-group.js +49 -52
- package/dist/view/wrapper/line.js +42 -50
- package/dist/view/wrapper/map-bubble.js +40 -48
- package/dist/view/wrapper/map-world-bubble.js +40 -47
- package/dist/view/wrapper/map-world.js +42 -49
- package/dist/view/wrapper/map.js +42 -50
- package/dist/view/wrapper/mirror.js +41 -49
- package/dist/view/wrapper/pie.js +45 -53
- package/dist/view/wrapper/ring.js +50 -58
- package/dist/view/wrapper/scatter.js +50 -56
- package/dist/view/wrapper/table/index.js +14 -22
- package/dist/view/wrapper/table/one-dimension-table-no-numeric-columns.js +49 -57
- package/dist/view/wrapper/table/one-dimension-table-with-numeric-columns.js +53 -61
- package/dist/view/wrapper/table/pivot-table-display-name.js +82 -90
- package/dist/view/wrapper/table/two-dimension-table.js +85 -92
- package/dist/view/wrapper/table-element/components/dataset-utils.js +23 -36
- package/dist/view/wrapper/table-element/components/formatter.js +90 -99
- package/dist/view/wrapper/table-element/components/formatters/FileFormatter/index.js +23 -32
- package/dist/view/wrapper/table-element/components/formatters/formula-formatter.js +9 -16
- package/dist/view/wrapper/table-element/components/formatters/link-formatter.js +90 -97
- package/dist/view/wrapper/table-element/components/formula-formatter.js +9 -16
- package/dist/view/wrapper/table-element/components/link-formatter.js +90 -97
- package/dist/view/wrapper/table-element/components/record.js +13 -20
- package/dist/view/wrapper/table-element/components/records-body.js +9 -17
- package/dist/view/wrapper/table-element/components/records-header/index.js +7 -16
- package/dist/view/wrapper/table-element/components/records-header/records-header-cell.js +8 -16
- package/dist/view/wrapper/table-element/components/records.js +25 -33
- package/dist/view/wrapper/table-element/components/resize-column-handle/resize-column-handle.js +8 -13
- package/dist/view/wrapper/table-element/components/utils.js +6 -16
- package/dist/view/wrapper/table-element/components/value-display-utils.js +4 -11
- package/dist/view/wrapper/table-element/components/vertical-scrollbar/index.js +6 -13
- package/dist/view/wrapper/table-element/index.js +30 -43
- package/dist/view/wrapper/treemap.js +38 -46
- package/dist/view/wrapper/trend.js +80 -65
- package/package.json +15 -12
|
@@ -1,100 +1,93 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _constants = require("../../constants");
|
|
10
|
-
var _baseUtils = _interopRequireDefault(require("../chart-utils/base-utils"));
|
|
11
|
-
var _map = require("../map");
|
|
12
|
-
var _columnUtils = require("../column-utils");
|
|
13
|
-
var _intl = _interopRequireDefault(require("../../intl"));
|
|
14
|
-
const column2SqlColumn = function (column) {
|
|
1
|
+
import { CellType, getTableColumnByKey } from 'dtable-utils';
|
|
2
|
+
import { CHART_SUMMARY_TYPE, CHART_TYPE, DTABLE_DB_SUMMARY_METHOD, MAP_LEVEL } from '../../constants';
|
|
3
|
+
import BaseUtils from '../chart-utils/base-utils';
|
|
4
|
+
import { fixGeoGranularity } from '../map';
|
|
5
|
+
import { getSqlGroup, isDateColumn, isDateFormulaColumn } from '../column-utils';
|
|
6
|
+
import intl from '../../intl';
|
|
7
|
+
import { getFirstDayOfWeekForGroupby } from '../index';
|
|
8
|
+
export const column2SqlColumn = function (column) {
|
|
15
9
|
let {
|
|
16
10
|
dateGranularity,
|
|
17
11
|
geolocationGranularity
|
|
18
12
|
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
19
13
|
const {
|
|
20
14
|
name,
|
|
21
|
-
type,
|
|
22
15
|
key
|
|
23
16
|
} = column;
|
|
24
|
-
const validColumnName =
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
case
|
|
28
|
-
case
|
|
17
|
+
const validColumnName = `\`${name}\``;
|
|
18
|
+
const startOfWeek = getFirstDayOfWeekForGroupby('app').toLowerCase();
|
|
19
|
+
switch (true) {
|
|
20
|
+
case isDateColumn(column):
|
|
21
|
+
case isDateFormulaColumn(column):
|
|
29
22
|
{
|
|
30
23
|
const validDateGranularity = dateGranularity && dateGranularity.toUpperCase();
|
|
31
24
|
if (['DAY', 'DAYS_7', 'DAYS_30'].includes(validDateGranularity)) {
|
|
32
|
-
const sqlColumnName =
|
|
25
|
+
const sqlColumnName = `ISODATE(${validColumnName})`;
|
|
33
26
|
return {
|
|
34
27
|
name: sqlColumnName,
|
|
35
28
|
key: sqlColumnName
|
|
36
29
|
};
|
|
37
30
|
}
|
|
38
31
|
if (validDateGranularity === 'WEEK') {
|
|
39
|
-
const sqlColumnName =
|
|
32
|
+
const sqlColumnName = `ISODATE(STARTOFWEEK(${validColumnName}, "${startOfWeek}"))`;
|
|
40
33
|
return {
|
|
41
34
|
name: sqlColumnName,
|
|
42
35
|
key: sqlColumnName
|
|
43
36
|
};
|
|
44
37
|
}
|
|
45
38
|
if (validDateGranularity === 'MONTH') {
|
|
46
|
-
const sqlColumnName =
|
|
39
|
+
const sqlColumnName = `ISOMONTH(${validColumnName})`;
|
|
47
40
|
return {
|
|
48
41
|
name: sqlColumnName,
|
|
49
42
|
key: sqlColumnName
|
|
50
43
|
};
|
|
51
44
|
}
|
|
52
45
|
if (validDateGranularity === 'QUARTER') {
|
|
53
|
-
const sqlColumnName =
|
|
46
|
+
const sqlColumnName = `CONCATENATE(year(${validColumnName}), "-Q", quarter(${validColumnName}))`;
|
|
54
47
|
return {
|
|
55
48
|
name: sqlColumnName,
|
|
56
49
|
key: sqlColumnName
|
|
57
50
|
};
|
|
58
51
|
}
|
|
59
52
|
if (validDateGranularity === 'YEAR') {
|
|
60
|
-
const sqlColumnName =
|
|
53
|
+
const sqlColumnName = `YEAR(${validColumnName})`;
|
|
61
54
|
return {
|
|
62
55
|
name: sqlColumnName,
|
|
63
56
|
key: sqlColumnName
|
|
64
57
|
};
|
|
65
58
|
}
|
|
66
59
|
if (validDateGranularity === 'MAX' || validDateGranularity === 'MIN') {
|
|
67
|
-
const sqlColumnName =
|
|
60
|
+
const sqlColumnName = `${validDateGranularity}(${validColumnName})`;
|
|
68
61
|
return {
|
|
69
62
|
name: sqlColumnName,
|
|
70
63
|
key: sqlColumnName
|
|
71
64
|
};
|
|
72
65
|
}
|
|
73
|
-
const sqlColumnName =
|
|
66
|
+
const sqlColumnName = `ISOMONTH(${validColumnName})`;
|
|
74
67
|
return {
|
|
75
68
|
name: sqlColumnName,
|
|
76
69
|
key: sqlColumnName
|
|
77
70
|
};
|
|
78
71
|
}
|
|
79
|
-
case
|
|
72
|
+
case column.type === CellType.GEOLOCATION:
|
|
80
73
|
{
|
|
81
74
|
const validGeolocationGranularity = geolocationGranularity && geolocationGranularity.toUpperCase();
|
|
82
75
|
if (validGeolocationGranularity === 'PROVINCE') {
|
|
83
|
-
const sqlColumnName =
|
|
76
|
+
const sqlColumnName = `PROVINCE(${validColumnName})`;
|
|
84
77
|
return {
|
|
85
78
|
name: sqlColumnName,
|
|
86
79
|
key: sqlColumnName
|
|
87
80
|
};
|
|
88
81
|
}
|
|
89
82
|
if (validGeolocationGranularity === 'CITY') {
|
|
90
|
-
const sqlColumnName =
|
|
83
|
+
const sqlColumnName = `CITY(${validColumnName})`;
|
|
91
84
|
return {
|
|
92
85
|
name: sqlColumnName,
|
|
93
86
|
key: sqlColumnName
|
|
94
87
|
};
|
|
95
88
|
}
|
|
96
89
|
if (validGeolocationGranularity === 'DISTRICT') {
|
|
97
|
-
const sqlColumnName =
|
|
90
|
+
const sqlColumnName = `DISTRICT(${validColumnName})`;
|
|
98
91
|
return {
|
|
99
92
|
name: sqlColumnName,
|
|
100
93
|
key: sqlColumnName
|
|
@@ -114,22 +107,20 @@ const column2SqlColumn = function (column) {
|
|
|
114
107
|
}
|
|
115
108
|
}
|
|
116
109
|
};
|
|
117
|
-
|
|
118
|
-
const summaryMethodColumn2SqlColumn = function (summaryMethod) {
|
|
110
|
+
export const summaryMethodColumn2SqlColumn = function (summaryMethod) {
|
|
119
111
|
let column = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
120
112
|
const columnName = column.name || '';
|
|
121
|
-
if (summaryMethod ===
|
|
113
|
+
if (summaryMethod === DTABLE_DB_SUMMARY_METHOD.DISTINCT_VALUES) {
|
|
122
114
|
return {
|
|
123
|
-
name:
|
|
124
|
-
key:
|
|
115
|
+
name: `${DTABLE_DB_SUMMARY_METHOD.COUNT}(DISTINCT ${columnName})`,
|
|
116
|
+
key: `${DTABLE_DB_SUMMARY_METHOD.COUNT}(DISTINCT ${columnName})`
|
|
125
117
|
};
|
|
126
118
|
}
|
|
127
119
|
return {
|
|
128
|
-
name:
|
|
129
|
-
key:
|
|
120
|
+
name: `${DTABLE_DB_SUMMARY_METHOD[summaryMethod]}(\`${columnName}\`)`,
|
|
121
|
+
key: `${DTABLE_DB_SUMMARY_METHOD[summaryMethod]}(${columnName})`
|
|
130
122
|
};
|
|
131
123
|
};
|
|
132
|
-
exports.summaryMethodColumn2SqlColumn = summaryMethodColumn2SqlColumn;
|
|
133
124
|
const oneDimensionStatisticTableColumn2sqlColumn = (chart, table) => {
|
|
134
125
|
const {
|
|
135
126
|
groupby_column_key,
|
|
@@ -143,7 +134,7 @@ const oneDimensionStatisticTableColumn2sqlColumn = (chart, table) => {
|
|
|
143
134
|
column_groupby_date_granularity,
|
|
144
135
|
column_groupby_geolocation_granularity
|
|
145
136
|
} = chart;
|
|
146
|
-
const groupbyColumn =
|
|
137
|
+
const groupbyColumn = getTableColumnByKey(table, groupby_column_key);
|
|
147
138
|
if (!groupbyColumn) return {};
|
|
148
139
|
const {
|
|
149
140
|
key: sqlGroupbyColumnKey
|
|
@@ -153,7 +144,7 @@ const oneDimensionStatisticTableColumn2sqlColumn = (chart, table) => {
|
|
|
153
144
|
});
|
|
154
145
|
let sqlColumnGroupbyColumnKey;
|
|
155
146
|
if (column_groupby_column_key) {
|
|
156
|
-
const columnGroupbyColumn =
|
|
147
|
+
const columnGroupbyColumn = getTableColumnByKey(table, column_groupby_column_key);
|
|
157
148
|
const {
|
|
158
149
|
key
|
|
159
150
|
} = column2SqlColumn(columnGroupbyColumn, {
|
|
@@ -162,7 +153,7 @@ const oneDimensionStatisticTableColumn2sqlColumn = (chart, table) => {
|
|
|
162
153
|
});
|
|
163
154
|
sqlColumnGroupbyColumnKey = key;
|
|
164
155
|
}
|
|
165
|
-
if (summary_type ===
|
|
156
|
+
if (summary_type === CHART_SUMMARY_TYPE.COUNT) {
|
|
166
157
|
const {
|
|
167
158
|
key: sqlSummaryColumnKey
|
|
168
159
|
} = summaryMethodColumn2SqlColumn('COUNT', groupbyColumn);
|
|
@@ -185,8 +176,8 @@ const oneDimensionStatisticTableColumn2sqlColumn = (chart, table) => {
|
|
|
185
176
|
summary_method: item_summary_method
|
|
186
177
|
} = item;
|
|
187
178
|
const summaryMethod = item_summary_method.toUpperCase();
|
|
188
|
-
const column =
|
|
189
|
-
if (column && (
|
|
179
|
+
const column = getTableColumnByKey(table, column_key);
|
|
180
|
+
if (column && (BaseUtils.isDateSummaryColumn(column) || BaseUtils.isNumericSummaryColumn(column))) {
|
|
190
181
|
const {
|
|
191
182
|
key: sqlNumericColumnKey
|
|
192
183
|
} = summaryMethodColumn2SqlColumn(summaryMethod, column);
|
|
@@ -260,7 +251,7 @@ const pieChartStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
260
251
|
groupby_geolocation_granularity
|
|
261
252
|
} = chart;
|
|
262
253
|
if (!groupby_column_key) return {};
|
|
263
|
-
const groupbyColumn =
|
|
254
|
+
const groupbyColumn = getTableColumnByKey(table, groupby_column_key);
|
|
264
255
|
if (!groupbyColumn) return {};
|
|
265
256
|
const {
|
|
266
257
|
key: sqlGroupbyColumnKey
|
|
@@ -269,7 +260,7 @@ const pieChartStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
269
260
|
geolocationGranularity: groupby_geolocation_granularity
|
|
270
261
|
});
|
|
271
262
|
let sqlSummaryColumnKey;
|
|
272
|
-
if (summary_type ===
|
|
263
|
+
if (summary_type === CHART_SUMMARY_TYPE.COUNT) {
|
|
273
264
|
const {
|
|
274
265
|
key
|
|
275
266
|
} = summaryMethodColumn2SqlColumn('COUNT', groupbyColumn);
|
|
@@ -277,7 +268,7 @@ const pieChartStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
277
268
|
} else {
|
|
278
269
|
if (!summary_method) return {};
|
|
279
270
|
const summaryMethod = summary_method.toUpperCase();
|
|
280
|
-
const summaryColumn =
|
|
271
|
+
const summaryColumn = getTableColumnByKey(table, summary_column_key) || {};
|
|
281
272
|
if (summaryColumn) {
|
|
282
273
|
const {
|
|
283
274
|
key
|
|
@@ -299,7 +290,7 @@ const basicChartStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
299
290
|
y_axis_summary_column_key,
|
|
300
291
|
x_axis_geolocation_granularity
|
|
301
292
|
} = chart;
|
|
302
|
-
const groupbyColumn =
|
|
293
|
+
const groupbyColumn = getTableColumnByKey(table, x_axis_column_key);
|
|
303
294
|
if (!groupbyColumn) return {};
|
|
304
295
|
const {
|
|
305
296
|
key: sqlGroupbyColumnKey
|
|
@@ -309,13 +300,13 @@ const basicChartStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
309
300
|
});
|
|
310
301
|
const summaryMethod = y_axis_summary_method && y_axis_summary_method.toUpperCase();
|
|
311
302
|
let sqlSummaryColumnKey;
|
|
312
|
-
if (y_axis_summary_type ===
|
|
303
|
+
if (y_axis_summary_type === CHART_SUMMARY_TYPE.COUNT) {
|
|
313
304
|
const {
|
|
314
305
|
key
|
|
315
306
|
} = summaryMethodColumn2SqlColumn('COUNT', groupbyColumn);
|
|
316
307
|
sqlSummaryColumnKey = key;
|
|
317
308
|
} else {
|
|
318
|
-
const summaryColumn =
|
|
309
|
+
const summaryColumn = getTableColumnByKey(table, y_axis_summary_column_key);
|
|
319
310
|
if (summaryColumn) {
|
|
320
311
|
const {
|
|
321
312
|
key
|
|
@@ -335,7 +326,7 @@ const heatMapChartStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
335
326
|
summary_method,
|
|
336
327
|
summary_column_key
|
|
337
328
|
} = chart;
|
|
338
|
-
const groupbyColumn =
|
|
329
|
+
const groupbyColumn = getTableColumnByKey(table, time_column_key);
|
|
339
330
|
if (!groupbyColumn) return {};
|
|
340
331
|
const {
|
|
341
332
|
key: sqlGroupbyColumnKey
|
|
@@ -344,13 +335,13 @@ const heatMapChartStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
344
335
|
});
|
|
345
336
|
const summaryMethod = summary_method && summary_method.toUpperCase();
|
|
346
337
|
let sqlSummaryColumnKey;
|
|
347
|
-
if (summary_type ===
|
|
338
|
+
if (summary_type === CHART_SUMMARY_TYPE.COUNT) {
|
|
348
339
|
const {
|
|
349
340
|
key
|
|
350
341
|
} = summaryMethodColumn2SqlColumn('COUNT', groupbyColumn);
|
|
351
342
|
sqlSummaryColumnKey = key;
|
|
352
343
|
} else {
|
|
353
|
-
const summaryColumn =
|
|
344
|
+
const summaryColumn = getTableColumnByKey(table, summary_column_key);
|
|
354
345
|
if (summaryColumn) {
|
|
355
346
|
const {
|
|
356
347
|
key
|
|
@@ -370,20 +361,20 @@ const mirrorChartStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
370
361
|
summary_method,
|
|
371
362
|
summary_column_key
|
|
372
363
|
} = chart;
|
|
373
|
-
const groupbyColumn =
|
|
364
|
+
const groupbyColumn = getTableColumnByKey(table, column_key);
|
|
374
365
|
if (!groupbyColumn) return {};
|
|
375
366
|
const {
|
|
376
367
|
key: sqlGroupbyColumnKey
|
|
377
368
|
} = column2SqlColumn(groupbyColumn);
|
|
378
369
|
const summaryMethod = summary_method && summary_method.toUpperCase();
|
|
379
370
|
let sqlSummaryColumnKey;
|
|
380
|
-
if (summary_type ===
|
|
371
|
+
if (summary_type === CHART_SUMMARY_TYPE.COUNT) {
|
|
381
372
|
const {
|
|
382
373
|
key
|
|
383
374
|
} = summaryMethodColumn2SqlColumn('COUNT', groupbyColumn);
|
|
384
375
|
sqlSummaryColumnKey = key;
|
|
385
376
|
} else {
|
|
386
|
-
const summaryColumn =
|
|
377
|
+
const summaryColumn = getTableColumnByKey(table, summary_column_key);
|
|
387
378
|
if (summaryColumn) {
|
|
388
379
|
const {
|
|
389
380
|
key
|
|
@@ -404,7 +395,7 @@ const trendChartStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
404
395
|
summary_column_key,
|
|
405
396
|
date_granularity
|
|
406
397
|
} = chart;
|
|
407
|
-
const groupbyColumn =
|
|
398
|
+
const groupbyColumn = getTableColumnByKey(table, date_column_key);
|
|
408
399
|
if (!groupbyColumn) return {};
|
|
409
400
|
const {
|
|
410
401
|
key: sqlGroupbyColumnKey
|
|
@@ -413,13 +404,13 @@ const trendChartStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
413
404
|
});
|
|
414
405
|
const summaryMethod = summary_method && summary_method.toUpperCase();
|
|
415
406
|
let sqlSummaryColumnKey;
|
|
416
|
-
if (summary_type ===
|
|
407
|
+
if (summary_type === CHART_SUMMARY_TYPE.COUNT) {
|
|
417
408
|
const {
|
|
418
409
|
key
|
|
419
410
|
} = summaryMethodColumn2SqlColumn('COUNT', groupbyColumn);
|
|
420
411
|
sqlSummaryColumnKey = key;
|
|
421
412
|
} else {
|
|
422
|
-
const summaryColumn =
|
|
413
|
+
const summaryColumn = getTableColumnByKey(table, summary_column_key);
|
|
423
414
|
if (summaryColumn) {
|
|
424
415
|
const {
|
|
425
416
|
key
|
|
@@ -446,7 +437,7 @@ const combinationChartStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
446
437
|
y_axis_right_summary_method,
|
|
447
438
|
y_axis_left_group_by_numeric_columns
|
|
448
439
|
} = chart;
|
|
449
|
-
const groupbyColumn =
|
|
440
|
+
const groupbyColumn = getTableColumnByKey(table, x_axis_column_key);
|
|
450
441
|
if (!groupbyColumn) return {};
|
|
451
442
|
const {
|
|
452
443
|
key: sqlGroupbyColumnKey
|
|
@@ -457,13 +448,13 @@ const combinationChartStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
457
448
|
const summaryLeftMethod = y_axis_left_summary_method && y_axis_left_summary_method.toUpperCase();
|
|
458
449
|
const summaryRightMethod = y_axis_right_summary_method && y_axis_right_summary_method.toUpperCase();
|
|
459
450
|
let sqlLeftSummaryColumnKey, sqlRightSummaryColumnKey;
|
|
460
|
-
if (y_axis_right_summary_type ===
|
|
451
|
+
if (y_axis_right_summary_type === CHART_SUMMARY_TYPE.COUNT) {
|
|
461
452
|
const {
|
|
462
453
|
key
|
|
463
454
|
} = summaryMethodColumn2SqlColumn('COUNT', groupbyColumn);
|
|
464
455
|
sqlRightSummaryColumnKey = key;
|
|
465
456
|
} else {
|
|
466
|
-
const summaryColumn =
|
|
457
|
+
const summaryColumn = getTableColumnByKey(table, y_axis_right_summary_column);
|
|
467
458
|
if (summaryColumn) {
|
|
468
459
|
const {
|
|
469
460
|
key
|
|
@@ -471,7 +462,7 @@ const combinationChartStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
471
462
|
sqlRightSummaryColumnKey = key;
|
|
472
463
|
}
|
|
473
464
|
}
|
|
474
|
-
if (y_axis_left_summary_type ===
|
|
465
|
+
if (y_axis_left_summary_type === CHART_SUMMARY_TYPE.COUNT) {
|
|
475
466
|
const {
|
|
476
467
|
key
|
|
477
468
|
} = summaryMethodColumn2SqlColumn('COUNT', groupbyColumn);
|
|
@@ -493,7 +484,7 @@ const combinationChartStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
493
484
|
column_key,
|
|
494
485
|
summary_method = 'Sum'
|
|
495
486
|
} = summaryColumnOption;
|
|
496
|
-
const column =
|
|
487
|
+
const column = getTableColumnByKey(table, column_key);
|
|
497
488
|
if (column) {
|
|
498
489
|
const summaryMethod = summary_method.toUpperCase();
|
|
499
490
|
const {
|
|
@@ -513,7 +504,7 @@ const combinationChartStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
513
504
|
sqlLeftSummaryColumnKey
|
|
514
505
|
};
|
|
515
506
|
}
|
|
516
|
-
const summaryLeftColumn =
|
|
507
|
+
const summaryLeftColumn = getTableColumnByKey(table, y_axis_left_summary_column);
|
|
517
508
|
if (summaryLeftColumn) {
|
|
518
509
|
const {
|
|
519
510
|
key
|
|
@@ -535,7 +526,7 @@ const completenessColumn2SqlColumn = (chart, table) => {
|
|
|
535
526
|
if (!column_groupby_column_key) {
|
|
536
527
|
return null;
|
|
537
528
|
}
|
|
538
|
-
const columnGroupbyColumn =
|
|
529
|
+
const columnGroupbyColumn = getTableColumnByKey(table, column_groupby_column_key);
|
|
539
530
|
const {
|
|
540
531
|
key: sqlColumnGroupbyColumnKey
|
|
541
532
|
} = column2SqlColumn(columnGroupbyColumn, {
|
|
@@ -558,7 +549,7 @@ const groupingChartStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
558
549
|
column_groupby_multiple_numeric_column,
|
|
559
550
|
summary_columns = []
|
|
560
551
|
} = chart;
|
|
561
|
-
const groupbyColumn =
|
|
552
|
+
const groupbyColumn = getTableColumnByKey(table, x_axis_column_key);
|
|
562
553
|
if (!groupbyColumn) return {};
|
|
563
554
|
const {
|
|
564
555
|
key: sqlGroupbyColumnKey
|
|
@@ -566,8 +557,8 @@ const groupingChartStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
566
557
|
dateGranularity: x_axis_date_granularity,
|
|
567
558
|
geolocationGranularity: x_axis_geolocation_granularity
|
|
568
559
|
});
|
|
569
|
-
if (y_axis_summary_type ===
|
|
570
|
-
const columnGroupbyColumn =
|
|
560
|
+
if (y_axis_summary_type === CHART_SUMMARY_TYPE.COUNT) {
|
|
561
|
+
const columnGroupbyColumn = getTableColumnByKey(table, column_groupby_column_key);
|
|
571
562
|
if (!columnGroupbyColumn) return basicChartStatisticColumn2sqlColumn(chart, table);
|
|
572
563
|
const {
|
|
573
564
|
key: sqlColumnGroupbyColumnKey
|
|
@@ -595,7 +586,7 @@ const groupingChartStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
595
586
|
column_key,
|
|
596
587
|
summary_method = 'Sum'
|
|
597
588
|
} = summaryColumnOption;
|
|
598
|
-
const column =
|
|
589
|
+
const column = getTableColumnByKey(table, column_key);
|
|
599
590
|
if (column) {
|
|
600
591
|
const summaryMethod = summary_method.toUpperCase();
|
|
601
592
|
const {
|
|
@@ -613,9 +604,9 @@ const groupingChartStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
613
604
|
summaryColumns
|
|
614
605
|
};
|
|
615
606
|
}
|
|
616
|
-
const columnGroupbyColumn =
|
|
607
|
+
const columnGroupbyColumn = getTableColumnByKey(table, column_groupby_column_key);
|
|
617
608
|
const summaryMethod = y_axis_summary_method && y_axis_summary_method.toUpperCase();
|
|
618
|
-
const summaryColumn =
|
|
609
|
+
const summaryColumn = getTableColumnByKey(table, y_axis_summary_column_key);
|
|
619
610
|
const {
|
|
620
611
|
key: sqlSummaryColumnKey
|
|
621
612
|
} = summaryMethodColumn2SqlColumn(summaryMethod, summaryColumn);
|
|
@@ -644,10 +635,10 @@ const getCompletenessSettingColumn = (chart, table) => {
|
|
|
644
635
|
target_column_key,
|
|
645
636
|
column_groupby_column_key
|
|
646
637
|
} = chart;
|
|
647
|
-
const groupbyColumn =
|
|
648
|
-
const completedColumn =
|
|
649
|
-
const targetColumn =
|
|
650
|
-
const columnGroupbyColumn =
|
|
638
|
+
const groupbyColumn = getTableColumnByKey(table, groupby_column_key);
|
|
639
|
+
const completedColumn = getTableColumnByKey(table, completed_column_key);
|
|
640
|
+
const targetColumn = getTableColumnByKey(table, target_column_key);
|
|
641
|
+
const columnGroupbyColumn = getTableColumnByKey(table, column_groupby_column_key);
|
|
651
642
|
return {
|
|
652
643
|
name_column: groupbyColumn,
|
|
653
644
|
completed_column: completedColumn,
|
|
@@ -663,9 +654,9 @@ const scatterStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
663
654
|
date_granularity,
|
|
664
655
|
geolocation_granularity
|
|
665
656
|
} = chart;
|
|
666
|
-
const xColumn =
|
|
667
|
-
const yColumn =
|
|
668
|
-
const groupbyColumn =
|
|
657
|
+
const xColumn = getTableColumnByKey(table, x_axis_column_key);
|
|
658
|
+
const yColumn = getTableColumnByKey(table, y_axis_column_key);
|
|
659
|
+
const groupbyColumn = getTableColumnByKey(table, column_groupby_column_key);
|
|
669
660
|
const sqlXColumnKey = xColumn.key;
|
|
670
661
|
const sqlYColumnKey = yColumn.key;
|
|
671
662
|
let sqlColumnGroupbyColumnKey;
|
|
@@ -678,7 +669,7 @@ const scatterStatisticColumn2sqlColumn = (chart, table) => {
|
|
|
678
669
|
});
|
|
679
670
|
sqlColumnGroupbyColumnKey = key;
|
|
680
671
|
}
|
|
681
|
-
if (!sqlColumnGroupbyColumnKey) throw Error(
|
|
672
|
+
if (!sqlColumnGroupbyColumnKey) throw Error(intl.get('Please_select_a_grouping_column'));
|
|
682
673
|
return {
|
|
683
674
|
sqlXColumnKey,
|
|
684
675
|
sqlYColumnKey,
|
|
@@ -694,14 +685,14 @@ const mapColumnToSqlColumn = (chart, table) => {
|
|
|
694
685
|
summary_method,
|
|
695
686
|
summary_column_key
|
|
696
687
|
} = chart;
|
|
697
|
-
const geolocation_granularity =
|
|
698
|
-
const groupby_column =
|
|
699
|
-
const sqlGeoColumnKey =
|
|
688
|
+
const geolocation_granularity = fixGeoGranularity(map_level, map_location);
|
|
689
|
+
const groupby_column = getTableColumnByKey(table, geo_column_key);
|
|
690
|
+
const sqlGeoColumnKey = getSqlGroup(groupby_column, {
|
|
700
691
|
'date_granularity': null,
|
|
701
692
|
'geolocation_granularity': geolocation_granularity
|
|
702
693
|
});
|
|
703
694
|
let sqlSummaryColumnKey;
|
|
704
|
-
if (summary_type ===
|
|
695
|
+
if (summary_type === CHART_SUMMARY_TYPE.COUNT) {
|
|
705
696
|
const {
|
|
706
697
|
key
|
|
707
698
|
} = summaryMethodColumn2SqlColumn('COUNT', groupby_column);
|
|
@@ -709,7 +700,7 @@ const mapColumnToSqlColumn = (chart, table) => {
|
|
|
709
700
|
} else {
|
|
710
701
|
if (!summary_method) return {};
|
|
711
702
|
const summaryMethod = summary_method.toUpperCase();
|
|
712
|
-
const summaryColumn =
|
|
703
|
+
const summaryColumn = getTableColumnByKey(table, summary_column_key) || {};
|
|
713
704
|
if (summaryColumn) {
|
|
714
705
|
const {
|
|
715
706
|
key
|
|
@@ -729,14 +720,14 @@ const WorldMapColumnToSqlColumn = (chart, table) => {
|
|
|
729
720
|
summary_method,
|
|
730
721
|
summary_column_key
|
|
731
722
|
} = chart;
|
|
732
|
-
const geolocation_granularity =
|
|
733
|
-
const groupby_column =
|
|
734
|
-
const sqlGeoColumnKey =
|
|
723
|
+
const geolocation_granularity = fixGeoGranularity(MAP_LEVEL.COUNTRY);
|
|
724
|
+
const groupby_column = getTableColumnByKey(table, geo_column_key);
|
|
725
|
+
const sqlGeoColumnKey = getSqlGroup(groupby_column, {
|
|
735
726
|
'date_granularity': null,
|
|
736
727
|
'geolocation_granularity': geolocation_granularity
|
|
737
728
|
});
|
|
738
729
|
let sqlSummaryColumnKey;
|
|
739
|
-
if (summary_type ===
|
|
730
|
+
if (summary_type === CHART_SUMMARY_TYPE.COUNT) {
|
|
740
731
|
const {
|
|
741
732
|
key
|
|
742
733
|
} = summaryMethodColumn2SqlColumn('COUNT', groupby_column);
|
|
@@ -744,7 +735,7 @@ const WorldMapColumnToSqlColumn = (chart, table) => {
|
|
|
744
735
|
} else {
|
|
745
736
|
if (!summary_method) return {};
|
|
746
737
|
const summaryMethod = summary_method.toUpperCase();
|
|
747
|
-
const summaryColumn =
|
|
738
|
+
const summaryColumn = getTableColumnByKey(table, summary_column_key) || {};
|
|
748
739
|
if (summaryColumn) {
|
|
749
740
|
const {
|
|
750
741
|
key
|
|
@@ -766,11 +757,11 @@ const chartColumn2SqlColumn = (chartElement, table) => {
|
|
|
766
757
|
type
|
|
767
758
|
} = chart;
|
|
768
759
|
switch (type) {
|
|
769
|
-
case
|
|
760
|
+
case CHART_TYPE.TABLE_ELEMENT:
|
|
770
761
|
{
|
|
771
762
|
return {};
|
|
772
763
|
}
|
|
773
|
-
case
|
|
764
|
+
case CHART_TYPE.TABLE:
|
|
774
765
|
{
|
|
775
766
|
const {
|
|
776
767
|
// column_groupby_column_key,
|
|
@@ -782,57 +773,57 @@ const chartColumn2SqlColumn = (chartElement, table) => {
|
|
|
782
773
|
// }
|
|
783
774
|
// return twoDimensionStatisticTableColumn2sqlColumn(chart, table,);
|
|
784
775
|
}
|
|
785
|
-
case
|
|
776
|
+
case CHART_TYPE.COMBINATION:
|
|
786
777
|
{
|
|
787
778
|
return combinationChartStatisticColumn2sqlColumn(chart, table);
|
|
788
779
|
}
|
|
789
|
-
case
|
|
790
|
-
case
|
|
791
|
-
case
|
|
780
|
+
case CHART_TYPE.PIE:
|
|
781
|
+
case CHART_TYPE.RING:
|
|
782
|
+
case CHART_TYPE.TREE_MAP:
|
|
792
783
|
{
|
|
793
784
|
return pieChartStatisticColumn2sqlColumn(chart, table);
|
|
794
785
|
}
|
|
795
|
-
case
|
|
796
|
-
case
|
|
797
|
-
case
|
|
798
|
-
case
|
|
799
|
-
case
|
|
800
|
-
case
|
|
786
|
+
case CHART_TYPE.BAR:
|
|
787
|
+
case CHART_TYPE.LINE:
|
|
788
|
+
case CHART_TYPE.HORIZONTAL_BAR:
|
|
789
|
+
case CHART_TYPE.AREA:
|
|
790
|
+
case CHART_TYPE.COMPARE_BAR:
|
|
791
|
+
case CHART_TYPE.FUNNEL:
|
|
801
792
|
{
|
|
802
793
|
return basicChartStatisticColumn2sqlColumn(chart, table);
|
|
803
794
|
}
|
|
804
|
-
case
|
|
805
|
-
case
|
|
795
|
+
case CHART_TYPE.COMPLETENESS:
|
|
796
|
+
case CHART_TYPE.COMPLETENESS_GROUP:
|
|
806
797
|
{
|
|
807
798
|
const sqlColumns = getCompletenessSettingColumn(chart, table);
|
|
808
|
-
const
|
|
809
|
-
// only has
|
|
799
|
+
const sqlColumnGroupbyColumnKey = completenessColumn2SqlColumn(chart, table);
|
|
800
|
+
// only has columnGroupbyColumn key need maped to sql key
|
|
810
801
|
// for example: 'xxx' => 'ISODATE(xxxx)'
|
|
811
802
|
return {
|
|
812
803
|
sqlColumns,
|
|
813
|
-
|
|
804
|
+
sqlColumnGroupbyColumnKey
|
|
814
805
|
};
|
|
815
806
|
}
|
|
816
|
-
case
|
|
807
|
+
case CHART_TYPE.SCATTER:
|
|
817
808
|
{
|
|
818
809
|
return scatterStatisticColumn2sqlColumn(chart, table);
|
|
819
810
|
}
|
|
820
|
-
case
|
|
821
|
-
case
|
|
811
|
+
case CHART_TYPE.MAP:
|
|
812
|
+
case CHART_TYPE.MAP_BUBBLE:
|
|
822
813
|
{
|
|
823
814
|
return mapColumnToSqlColumn(chart, table);
|
|
824
815
|
}
|
|
825
|
-
case
|
|
826
|
-
case
|
|
816
|
+
case CHART_TYPE.WORLD_MAP:
|
|
817
|
+
case CHART_TYPE.WORLD_MAP_BUBBLE:
|
|
827
818
|
{
|
|
828
819
|
return WorldMapColumnToSqlColumn(chart, table);
|
|
829
820
|
}
|
|
830
|
-
case
|
|
831
|
-
case
|
|
832
|
-
case
|
|
833
|
-
case
|
|
834
|
-
case
|
|
835
|
-
case
|
|
821
|
+
case CHART_TYPE.BAR_GROUP:
|
|
822
|
+
case CHART_TYPE.BAR_STACK:
|
|
823
|
+
case CHART_TYPE.LINE_GROUP:
|
|
824
|
+
case CHART_TYPE.AREA_GROUP:
|
|
825
|
+
case CHART_TYPE.STACKED_HORIZONTAL_BAR:
|
|
826
|
+
case CHART_TYPE.HORIZONTAL_GROUP_BAR:
|
|
836
827
|
{
|
|
837
828
|
const {
|
|
838
829
|
column_groupby_column_key,
|
|
@@ -843,15 +834,15 @@ const chartColumn2SqlColumn = (chartElement, table) => {
|
|
|
843
834
|
}
|
|
844
835
|
return groupingChartStatisticColumn2sqlColumn(chart, table);
|
|
845
836
|
}
|
|
846
|
-
case
|
|
837
|
+
case CHART_TYPE.HEAT_MAP:
|
|
847
838
|
{
|
|
848
839
|
return heatMapChartStatisticColumn2sqlColumn(chart, table);
|
|
849
840
|
}
|
|
850
|
-
case
|
|
841
|
+
case CHART_TYPE.MIRROR:
|
|
851
842
|
{
|
|
852
843
|
return mirrorChartStatisticColumn2sqlColumn(chart, table);
|
|
853
844
|
}
|
|
854
|
-
case
|
|
845
|
+
case CHART_TYPE.TREND:
|
|
855
846
|
{
|
|
856
847
|
return trendChartStatisticColumn2sqlColumn(chart, table);
|
|
857
848
|
}
|
|
@@ -859,23 +850,23 @@ const chartColumn2SqlColumn = (chartElement, table) => {
|
|
|
859
850
|
return {};
|
|
860
851
|
}
|
|
861
852
|
};
|
|
862
|
-
const getDatabaseGroupName = (statItem, selectedTable) => {
|
|
853
|
+
export const getDatabaseGroupName = (statItem, selectedTable) => {
|
|
863
854
|
const type = statItem.type;
|
|
864
855
|
let groupName, selectedColumn, columnGroupName, columnSelectedColumn;
|
|
865
856
|
switch (type) {
|
|
866
|
-
case
|
|
867
|
-
case
|
|
868
|
-
case
|
|
869
|
-
case
|
|
870
|
-
case
|
|
871
|
-
case
|
|
872
|
-
case
|
|
873
|
-
case
|
|
874
|
-
case
|
|
875
|
-
case
|
|
876
|
-
case
|
|
877
|
-
case
|
|
878
|
-
case
|
|
857
|
+
case CHART_TYPE.BAR:
|
|
858
|
+
case CHART_TYPE.BAR_GROUP:
|
|
859
|
+
case CHART_TYPE.BAR_STACK:
|
|
860
|
+
case CHART_TYPE.LINE:
|
|
861
|
+
case CHART_TYPE.PIE:
|
|
862
|
+
case CHART_TYPE.RING:
|
|
863
|
+
case CHART_TYPE.AREA:
|
|
864
|
+
case CHART_TYPE.AREA_GROUP:
|
|
865
|
+
case CHART_TYPE.TREE_MAP:
|
|
866
|
+
case CHART_TYPE.HORIZONTAL_BAR:
|
|
867
|
+
case CHART_TYPE.HORIZONTAL_GROUP_BAR:
|
|
868
|
+
case CHART_TYPE.STACKED_HORIZONTAL_BAR:
|
|
869
|
+
case CHART_TYPE.FUNNEL:
|
|
879
870
|
{
|
|
880
871
|
let groupby_column_key, groupby_date_granularity, groupby_geolocation_granularity;
|
|
881
872
|
const {
|
|
@@ -884,11 +875,11 @@ const getDatabaseGroupName = (statItem, selectedTable) => {
|
|
|
884
875
|
column_groupby_date_granularity,
|
|
885
876
|
column_groupby_geolocation_granularity
|
|
886
877
|
} = statItem;
|
|
887
|
-
if (type ===
|
|
878
|
+
if (type === CHART_TYPE.PIE || type === CHART_TYPE.RING || type === CHART_TYPE.TREE_MAP) {
|
|
888
879
|
groupby_column_key = statItem.groupby_column_key;
|
|
889
880
|
groupby_date_granularity = statItem.groupby_date_granularity;
|
|
890
881
|
groupby_geolocation_granularity = statItem.groupby_geolocation_granularity;
|
|
891
|
-
} else if (type ===
|
|
882
|
+
} else if (type === CHART_TYPE.HORIZONTAL_BAR || type === CHART_TYPE.HORIZONTAL_GROUP_BAR || type === CHART_TYPE.STACKED_HORIZONTAL_BAR) {
|
|
892
883
|
groupby_column_key = statItem.vertical_axis_column_key;
|
|
893
884
|
groupby_date_granularity = statItem.vertical_axis_date_granularity;
|
|
894
885
|
groupby_geolocation_granularity = statItem.vertical_axis_geolocation_granularity;
|
|
@@ -898,7 +889,7 @@ const getDatabaseGroupName = (statItem, selectedTable) => {
|
|
|
898
889
|
groupby_geolocation_granularity = statItem.x_axis_geolocation_granularity;
|
|
899
890
|
}
|
|
900
891
|
if (!column_groupby_multiple_numeric_column && column_groupby_column_key) {
|
|
901
|
-
columnSelectedColumn =
|
|
892
|
+
columnSelectedColumn = getTableColumnByKey(selectedTable, column_groupby_column_key);
|
|
902
893
|
const {
|
|
903
894
|
name
|
|
904
895
|
} = column2SqlColumn(columnSelectedColumn, {
|
|
@@ -907,7 +898,7 @@ const getDatabaseGroupName = (statItem, selectedTable) => {
|
|
|
907
898
|
});
|
|
908
899
|
columnGroupName = name;
|
|
909
900
|
}
|
|
910
|
-
selectedColumn =
|
|
901
|
+
selectedColumn = getTableColumnByKey(selectedTable, groupby_column_key);
|
|
911
902
|
const {
|
|
912
903
|
name
|
|
913
904
|
} = column2SqlColumn(selectedColumn, {
|
|
@@ -917,14 +908,14 @@ const getDatabaseGroupName = (statItem, selectedTable) => {
|
|
|
917
908
|
groupName = name;
|
|
918
909
|
break;
|
|
919
910
|
}
|
|
920
|
-
case
|
|
921
|
-
case
|
|
911
|
+
case CHART_TYPE.MAP:
|
|
912
|
+
case CHART_TYPE.MAP_BUBBLE:
|
|
922
913
|
{
|
|
923
914
|
const {
|
|
924
915
|
geolocation_granularity,
|
|
925
916
|
geo_column_key
|
|
926
917
|
} = statItem;
|
|
927
|
-
selectedColumn =
|
|
918
|
+
selectedColumn = getTableColumnByKey(selectedTable, geo_column_key);
|
|
928
919
|
const {
|
|
929
920
|
name
|
|
930
921
|
} = column2SqlColumn(selectedColumn, {
|
|
@@ -933,42 +924,42 @@ const getDatabaseGroupName = (statItem, selectedTable) => {
|
|
|
933
924
|
groupName = name;
|
|
934
925
|
break;
|
|
935
926
|
}
|
|
936
|
-
case
|
|
937
|
-
case
|
|
927
|
+
case CHART_TYPE.WORLD_MAP:
|
|
928
|
+
case CHART_TYPE.WORLD_MAP_BUBBLE:
|
|
938
929
|
{
|
|
939
930
|
const {
|
|
940
931
|
geo_column_key
|
|
941
932
|
} = statItem;
|
|
942
|
-
selectedColumn =
|
|
933
|
+
selectedColumn = getTableColumnByKey(selectedTable, geo_column_key);
|
|
943
934
|
groupName = selectedColumn.name;
|
|
944
935
|
break;
|
|
945
936
|
}
|
|
946
|
-
case
|
|
937
|
+
case CHART_TYPE.MIRROR:
|
|
947
938
|
{
|
|
948
939
|
const {
|
|
949
940
|
column_key
|
|
950
941
|
} = statItem;
|
|
951
|
-
selectedColumn =
|
|
942
|
+
selectedColumn = getTableColumnByKey(selectedTable, column_key);
|
|
952
943
|
groupName = selectedColumn.name;
|
|
953
944
|
break;
|
|
954
945
|
}
|
|
955
|
-
case
|
|
946
|
+
case CHART_TYPE.HEAT_MAP:
|
|
956
947
|
{
|
|
957
948
|
const {
|
|
958
949
|
time_column_key
|
|
959
950
|
} = statItem;
|
|
960
|
-
selectedColumn =
|
|
961
|
-
groupName =
|
|
951
|
+
selectedColumn = getTableColumnByKey(selectedTable, time_column_key);
|
|
952
|
+
groupName = `ISODATE(${selectedColumn.name})`;
|
|
962
953
|
break;
|
|
963
954
|
}
|
|
964
|
-
case
|
|
955
|
+
case CHART_TYPE.SCATTER:
|
|
965
956
|
{
|
|
966
957
|
const {
|
|
967
958
|
x_axis_column_key,
|
|
968
959
|
x_axis_date_granularity: groupby_date_granularity,
|
|
969
960
|
x_axis_geolocation_granularity: groupby_geolocation_granularity
|
|
970
961
|
} = statItem;
|
|
971
|
-
selectedColumn =
|
|
962
|
+
selectedColumn = getTableColumnByKey(selectedTable, x_axis_column_key);
|
|
972
963
|
const {
|
|
973
964
|
name
|
|
974
965
|
} = column2SqlColumn(selectedColumn, {
|
|
@@ -978,18 +969,18 @@ const getDatabaseGroupName = (statItem, selectedTable) => {
|
|
|
978
969
|
groupName = name;
|
|
979
970
|
break;
|
|
980
971
|
}
|
|
981
|
-
case
|
|
972
|
+
case CHART_TYPE.BASIC_NUMBER_CARD:
|
|
982
973
|
{
|
|
983
974
|
// todo
|
|
984
975
|
break;
|
|
985
976
|
}
|
|
986
|
-
case
|
|
977
|
+
case CHART_TYPE.COMPARE_BAR:
|
|
987
978
|
{
|
|
988
979
|
const {
|
|
989
980
|
x_axis_column_key,
|
|
990
981
|
x_axis_date_granularity
|
|
991
982
|
} = statItem;
|
|
992
|
-
selectedColumn =
|
|
983
|
+
selectedColumn = getTableColumnByKey(selectedTable, x_axis_column_key);
|
|
993
984
|
const {
|
|
994
985
|
name
|
|
995
986
|
} = column2SqlColumn(selectedColumn, {
|
|
@@ -998,24 +989,24 @@ const getDatabaseGroupName = (statItem, selectedTable) => {
|
|
|
998
989
|
groupName = name;
|
|
999
990
|
break;
|
|
1000
991
|
}
|
|
1001
|
-
case
|
|
992
|
+
case CHART_TYPE.COMBINATION:
|
|
1002
993
|
{
|
|
1003
994
|
const {
|
|
1004
995
|
x_axis_column_key,
|
|
1005
996
|
x_axis_date_granularity: groupby_date_granularity,
|
|
1006
997
|
x_axis_geolocation_granularity: groupby_geolocation_granularity
|
|
1007
998
|
} = statItem;
|
|
1008
|
-
selectedColumn =
|
|
999
|
+
selectedColumn = getTableColumnByKey(selectedTable, x_axis_column_key);
|
|
1009
1000
|
if (!selectedColumn) return [];
|
|
1010
|
-
groupName =
|
|
1011
|
-
if ([
|
|
1001
|
+
groupName = `\`${selectedColumn.name}\``;
|
|
1002
|
+
if ([CellType.CTIME, CellType.MTIME, CellType.DATE].includes(selectedColumn.type)) {
|
|
1012
1003
|
const {
|
|
1013
1004
|
name
|
|
1014
1005
|
} = column2SqlColumn(selectedColumn, {
|
|
1015
1006
|
dateGranularity: groupby_date_granularity
|
|
1016
1007
|
});
|
|
1017
1008
|
groupName = name;
|
|
1018
|
-
} else if (selectedColumn.type ===
|
|
1009
|
+
} else if (selectedColumn.type === CellType.GEOLOCATION) {
|
|
1019
1010
|
const {
|
|
1020
1011
|
name
|
|
1021
1012
|
} = column2SqlColumn(selectedColumn, {
|
|
@@ -1025,13 +1016,13 @@ const getDatabaseGroupName = (statItem, selectedTable) => {
|
|
|
1025
1016
|
}
|
|
1026
1017
|
break;
|
|
1027
1018
|
}
|
|
1028
|
-
case
|
|
1019
|
+
case CHART_TYPE.TREND:
|
|
1029
1020
|
{
|
|
1030
1021
|
const {
|
|
1031
1022
|
date_column,
|
|
1032
1023
|
date_granularity
|
|
1033
1024
|
} = statItem;
|
|
1034
|
-
selectedColumn =
|
|
1025
|
+
selectedColumn = getTableColumnByKey(selectedTable, date_column);
|
|
1035
1026
|
const {
|
|
1036
1027
|
name
|
|
1037
1028
|
} = column2SqlColumn(selectedColumn, {
|
|
@@ -1040,22 +1031,22 @@ const getDatabaseGroupName = (statItem, selectedTable) => {
|
|
|
1040
1031
|
groupName = name;
|
|
1041
1032
|
break;
|
|
1042
1033
|
}
|
|
1043
|
-
case
|
|
1044
|
-
case
|
|
1034
|
+
case CHART_TYPE.COMPLETENESS:
|
|
1035
|
+
case CHART_TYPE.COMPLETENESS_GROUP:
|
|
1045
1036
|
{
|
|
1046
1037
|
const {
|
|
1047
1038
|
groupby_column_key
|
|
1048
1039
|
} = statItem;
|
|
1049
|
-
selectedColumn =
|
|
1050
|
-
groupName =
|
|
1040
|
+
selectedColumn = getTableColumnByKey(selectedTable, groupby_column_key);
|
|
1041
|
+
groupName = `\`${selectedColumn.name}\``;
|
|
1051
1042
|
break;
|
|
1052
1043
|
}
|
|
1053
|
-
case
|
|
1044
|
+
case CHART_TYPE.DASHBOARD:
|
|
1054
1045
|
{
|
|
1055
1046
|
// todo
|
|
1056
1047
|
break;
|
|
1057
1048
|
}
|
|
1058
|
-
case
|
|
1049
|
+
case CHART_TYPE.TABLE:
|
|
1059
1050
|
{
|
|
1060
1051
|
let {
|
|
1061
1052
|
groupby_column_key,
|
|
@@ -1067,7 +1058,7 @@ const getDatabaseGroupName = (statItem, selectedTable) => {
|
|
|
1067
1058
|
column_groupby_multiple_numeric_column
|
|
1068
1059
|
} = statItem;
|
|
1069
1060
|
if (!column_groupby_multiple_numeric_column && column_groupby_column_key) {
|
|
1070
|
-
columnSelectedColumn =
|
|
1061
|
+
columnSelectedColumn = getTableColumnByKey(selectedTable, column_groupby_column_key);
|
|
1071
1062
|
const {
|
|
1072
1063
|
name
|
|
1073
1064
|
} = column2SqlColumn(columnSelectedColumn, {
|
|
@@ -1076,7 +1067,7 @@ const getDatabaseGroupName = (statItem, selectedTable) => {
|
|
|
1076
1067
|
});
|
|
1077
1068
|
columnGroupName = name;
|
|
1078
1069
|
}
|
|
1079
|
-
selectedColumn =
|
|
1070
|
+
selectedColumn = getTableColumnByKey(selectedTable, groupby_column_key);
|
|
1080
1071
|
const {
|
|
1081
1072
|
name
|
|
1082
1073
|
} = column2SqlColumn(selectedColumn, {
|
|
@@ -1096,5 +1087,4 @@ const getDatabaseGroupName = (statItem, selectedTable) => {
|
|
|
1096
1087
|
columnSelectedColumn
|
|
1097
1088
|
};
|
|
1098
1089
|
};
|
|
1099
|
-
|
|
1100
|
-
var _default = exports.default = chartColumn2SqlColumn;
|
|
1090
|
+
export default chartColumn2SqlColumn;
|