sea-chart 2.0.43 → 2.0.45
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 +4 -11
- package/dist/components/cell-factory/FormatterConfig.js +55 -62
- package/dist/components/cell-factory/SimpleCellFormatter.js +4 -11
- 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 +27 -35
- 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 +11 -18
- package/dist/components/color-popover/color-rules/color-rule.js +25 -33
- package/dist/components/color-popover/color-rules/index.js +6 -14
- 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 +10 -18
- package/dist/components/color-popover/color-rules-popover.js +26 -34
- package/dist/components/color-popover/color-selector-popover.js +10 -18
- package/dist/components/color-setting/color-group-selector.js +12 -20
- package/dist/components/common-add-tool/index.js +6 -13
- package/dist/components/data-process-setter/data-setting-header.js +7 -14
- package/dist/components/data-process-setter/hide-column-setter.js +12 -19
- package/dist/components/data-process-setter/index.js +4 -27
- package/dist/components/data-process-setter/sort-setter.js +16 -24
- package/dist/components/draggable/Draggable.js +7 -13
- package/dist/components/drill-down-settings/drill-down-fields-popover/index.js +42 -50
- 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 +4 -11
- package/dist/components/index.js +7 -48
- package/dist/components/loading/index.js +6 -13
- package/dist/components/number-input/index.js +4 -11
- package/dist/components/pixel-editor/index.js +15 -23
- package/dist/components/popover/hide-column-popover/hide-column-popover-widgets/hide-column-item.js +8 -15
- package/dist/components/popover/hide-column-popover/hide-column-popover.js +25 -33
- package/dist/components/popover/sort-popover/sort-popover-widgets/sort-utils.js +9 -18
- package/dist/components/popover/sort-popover/sort-popover.js +54 -64
- package/dist/components/resize-handle/ResizeHandle.js +6 -13
- package/dist/components/row-card/row-card-header-cell.js +15 -22
- package/dist/components/row-card/row-card-header.js +14 -21
- package/dist/components/row-card/row-card-item.js +33 -41
- package/dist/components/row-card/row-card.js +15 -23
- package/dist/components/statistic-record-dialog/index.js +56 -64
- package/dist/components/tooltip/index.js +21 -21
- package/dist/components/types-dialog/index.js +56 -64
- 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 +149 -273
- 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 +20 -24
- package/dist/editor/index.js +8 -15
- 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 +1 -7
- package/dist/locale/lang/en.js +1 -7
- package/dist/locale/lang/es.js +1 -7
- package/dist/locale/lang/fr.js +1 -7
- package/dist/locale/lang/pt.js +1 -7
- package/dist/locale/lang/ru.js +1 -7
- package/dist/locale/lang/zh_CN.js +1 -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 +8 -11
- package/dist/model/basic-number-card.js +13 -20
- package/dist/model/chart.js +7 -13
- package/dist/model/combination.js +19 -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 +15 -18
- package/dist/model/horizontal-group-bar.js +14 -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 +12 -19
- 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 +15 -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 +7 -13
- 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 +83 -74
- 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 +69 -60
- package/dist/settings/basic-number-card/data-settings.js +49 -57
- package/dist/settings/basic-number-card/index.js +3 -20
- package/dist/settings/basic-number-card/style-settings.js +18 -26
- package/dist/settings/combination-settings/data-settings.js +55 -63
- package/dist/settings/combination-settings/index.js +3 -20
- package/dist/settings/combination-settings/style-settings.js +94 -77
- 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 +43 -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 +20 -28
- 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 +52 -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 +26 -34
- 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 +64 -72
- package/dist/settings/table-element-settings/components/data-filter.js +30 -38
- package/dist/settings/table-element-settings/data-settings.js +21 -29
- package/dist/settings/table-element-settings/index.js +2 -13
- package/dist/settings/table-settings/data-settings.js +111 -119
- 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 +62 -53
- 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 +17 -25
- package/dist/settings/widgets/axis-title-font-settings/index.js +39 -0
- package/dist/settings/widgets/basic-summary/index.js +55 -63
- 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 +21 -29
- package/dist/settings/widgets/data-filter/index.js +35 -43
- package/dist/settings/widgets/data-sort.js +16 -24
- package/dist/settings/widgets/date-summary-item.js +24 -32
- 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 +51 -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 +23 -31
- 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 +72 -80
- package/dist/settings/widgets/switch/index.js +8 -15
- 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 +63 -71
- package/dist/utils/cell-format-utils.js +18 -28
- package/dist/utils/cell-value-utils.js +5 -12
- package/dist/utils/chart-utils/base-utils.js +362 -334
- package/dist/utils/chart-utils/index.js +28 -41
- package/dist/utils/chart-utils/original-data-utils/basic-chart-calculator.js +80 -86
- package/dist/utils/chart-utils/original-data-utils/card-calculator.js +13 -20
- 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 +19 -26
- package/dist/utils/chart-utils/original-data-utils/completeness-calculator.js +32 -39
- package/dist/utils/chart-utils/original-data-utils/dashboard-calculator.js +16 -23
- package/dist/utils/chart-utils/original-data-utils/index.js +50 -57
- package/dist/utils/chart-utils/original-data-utils/mirror-calculator.js +21 -28
- package/dist/utils/chart-utils/original-data-utils/pivot-table-calculator.js +91 -97
- package/dist/utils/chart-utils/original-data-utils/scatter-calculator.js +19 -26
- package/dist/utils/chart-utils/original-data-utils/trend-calculator.js +31 -38
- package/dist/utils/chart-utils/sql-statistics-utils.js +284 -246
- package/dist/utils/chart.js +9 -17
- package/dist/utils/collaborator-manager.js +3 -9
- package/dist/utils/collaborator-utils.js +18 -30
- package/dist/utils/collaborator.js +4 -13
- package/dist/utils/color-utils.js +18 -29
- package/dist/utils/column-utils.js +65 -92
- package/dist/utils/common-utils.js +27 -52
- package/dist/utils/concurrency-manager.js +1 -7
- package/dist/utils/contexts.js +5 -12
- package/dist/utils/date-translate.js +11 -19
- 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 +54 -221
- package/dist/utils/key-generator.js +2 -9
- package/dist/utils/map.js +22 -31
- package/dist/utils/object-utils.js +1 -7
- package/dist/utils/options-utils.js +8 -16
- package/dist/utils/row-record-utils.js +182 -178
- package/dist/utils/row-utils.js +27 -38
- package/dist/utils/search.js +24 -32
- package/dist/utils/sql/chart-data-sql.js +49 -55
- package/dist/utils/sql/column-2-sql-column.js +146 -154
- package/dist/utils/sql/index.js +3 -27
- package/dist/utils/trend-utils.js +39 -47
- package/dist/view/index.css +0 -17
- package/dist/view/index.js +89 -95
- package/dist/view/title/index.js +15 -23
- package/dist/view/wrapper/area-group.js +57 -74
- package/dist/view/wrapper/area.js +51 -72
- package/dist/view/wrapper/bar-compare.js +47 -58
- package/dist/view/wrapper/bar-custom-stack.js +53 -121
- package/dist/view/wrapper/bar-group.js +55 -96
- package/dist/view/wrapper/bar-stack.js +58 -92
- package/dist/view/wrapper/bar.js +45 -66
- package/dist/view/wrapper/basic-number-card.js +25 -26
- package/dist/view/wrapper/chart-component.js +600 -166
- package/dist/view/wrapper/combination.js +79 -87
- package/dist/view/wrapper/completeness-group.js +46 -98
- package/dist/view/wrapper/completeness.js +45 -97
- package/dist/view/wrapper/dashboard.js +33 -47
- package/dist/view/wrapper/funnel.js +65 -64
- package/dist/view/wrapper/heat-map.js +126 -104
- package/dist/view/wrapper/horizontal-bar-group.js +61 -78
- package/dist/view/wrapper/horizontal-bar-stack.js +60 -111
- package/dist/view/wrapper/horizontal-bar.js +45 -68
- package/dist/view/wrapper/index.js +110 -115
- package/dist/view/wrapper/line-group.js +52 -68
- package/dist/view/wrapper/line.js +47 -67
- package/dist/view/wrapper/map-bubble.js +46 -59
- package/dist/view/wrapper/map-world-bubble.js +45 -58
- package/dist/view/wrapper/map-world.js +47 -60
- package/dist/view/wrapper/map.js +48 -60
- package/dist/view/wrapper/mirror.js +45 -64
- package/dist/view/wrapper/pie.js +51 -59
- package/dist/view/wrapper/ring.js +57 -64
- package/dist/view/wrapper/scatter.js +53 -69
- package/dist/view/wrapper/table/index.js +13 -21
- 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 +50 -58
- package/dist/view/wrapper/table/pivot-table-display-name.js +83 -91
- package/dist/view/wrapper/table/two-dimension-table.js +76 -84
- package/dist/view/wrapper/table-element/components/dataset-utils.js +23 -36
- package/dist/view/wrapper/table-element/components/formatter.js +96 -105
- package/dist/view/wrapper/table-element/components/formatters/FileFormatter/index.js +22 -31
- package/dist/view/wrapper/table-element/components/formatters/formula-formatter.js +9 -16
- package/dist/view/wrapper/table-element/components/formatters/link-formatter.js +73 -80
- package/dist/view/wrapper/table-element/components/formula-formatter.js +9 -16
- package/dist/view/wrapper/table-element/components/link-formatter.js +73 -80
- package/dist/view/wrapper/table-element/components/record.js +10 -17
- package/dist/view/wrapper/table-element/components/records-body.js +17 -19
- package/dist/view/wrapper/table-element/components/records-header/index.js +7 -15
- package/dist/view/wrapper/table-element/components/records-header/records-header-cell.js +8 -16
- package/dist/view/wrapper/table-element/components/records.js +23 -33
- package/dist/view/wrapper/table-element/components/resize-column-handle/resize-column-handle.js +5 -12
- package/dist/view/wrapper/table-element/components/utils.js +5 -15
- 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 +18 -26
- package/dist/view/wrapper/treemap.js +39 -57
- package/dist/view/wrapper/trend.js +41 -48
- package/package.json +1 -1
package/dist/utils/row-utils.js
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getCellValue = getCellValue;
|
|
7
|
-
exports.resizeColumn = exports.isValidRow = exports.isEmptyGeolocationCell = exports.getFormattedLabel = void 0;
|
|
8
|
-
var _dtableUtils = require("dtable-utils");
|
|
9
|
-
var _cellFormatUtils = require("./cell-format-utils");
|
|
10
|
-
const resizeColumn = (resizedColumnKey, width, columns) => {
|
|
1
|
+
import { CellType, COLLABORATOR_COLUMN_TYPES, FORMULA_COLUMN_TYPES_MAP, FORMULA_RESULT_TYPE, isNumber, getNumberDisplayString, getOption, getColumnOptions } from 'dtable-utils';
|
|
2
|
+
import { getClientFormulaDisplayString } from './cell-format-utils';
|
|
3
|
+
export const resizeColumn = (resizedColumnKey, width, columns) => {
|
|
11
4
|
const columnIndex = columns.findIndex(column => column.key === resizedColumnKey);
|
|
12
5
|
const column = columns[columnIndex];
|
|
13
6
|
const newColumn = Object.assign({}, column, {
|
|
@@ -17,8 +10,7 @@ const resizeColumn = (resizedColumnKey, width, columns) => {
|
|
|
17
10
|
updateColumns[columnIndex] = newColumn;
|
|
18
11
|
return updateColumns;
|
|
19
12
|
};
|
|
20
|
-
|
|
21
|
-
const isEmptyGeolocationCell = (cellValue, format) => {
|
|
13
|
+
export const isEmptyGeolocationCell = (cellValue, format) => {
|
|
22
14
|
if (!cellValue) return null;
|
|
23
15
|
if (format === 'lng_lat') {
|
|
24
16
|
return (cellValue.lng || cellValue.lng === 0) && (cellValue.lat || cellValue.lat === 0);
|
|
@@ -28,32 +20,30 @@ const isEmptyGeolocationCell = (cellValue, format) => {
|
|
|
28
20
|
}
|
|
29
21
|
return cellValue.province;
|
|
30
22
|
};
|
|
31
|
-
|
|
32
|
-
const isValidRow = (row, formulaRow, column, includeEmpty) => {
|
|
23
|
+
export const isValidRow = (row, formulaRow, column, includeEmpty) => {
|
|
33
24
|
const {
|
|
34
25
|
type: columnType,
|
|
35
26
|
key: columnKey
|
|
36
27
|
} = column;
|
|
37
|
-
if (includeEmpty || columnType ===
|
|
38
|
-
if (columnType ===
|
|
28
|
+
if (includeEmpty || columnType === CellType.CHECKBOX) return true;
|
|
29
|
+
if (columnType === CellType.GEOLOCATION) {
|
|
39
30
|
const {
|
|
40
31
|
geo_format
|
|
41
32
|
} = column.data || {};
|
|
42
33
|
return isEmptyGeolocationCell(row[columnKey], geo_format);
|
|
43
34
|
}
|
|
44
35
|
let cellValue = row[columnKey];
|
|
45
|
-
if (
|
|
36
|
+
if (FORMULA_COLUMN_TYPES_MAP[columnType] || columnType === CellType.LINK) {
|
|
46
37
|
cellValue = formulaRow ? formulaRow[columnKey] : null;
|
|
47
38
|
}
|
|
48
39
|
return cellValue || cellValue === 0;
|
|
49
40
|
};
|
|
50
|
-
|
|
51
|
-
const getFormattedLabel = (column, name, collaborators, chartType) => {
|
|
41
|
+
export const getFormattedLabel = (column, name, collaborators, chartType) => {
|
|
52
42
|
let {
|
|
53
43
|
type: columnType,
|
|
54
44
|
data: columnData
|
|
55
45
|
} = column || {};
|
|
56
|
-
if (columnType ===
|
|
46
|
+
if (columnType === CellType.SINGLE_SELECT) {
|
|
57
47
|
let options = columnData ? columnData.options : [];
|
|
58
48
|
let selectedOption = options.find(o => {
|
|
59
49
|
let id = name;
|
|
@@ -68,9 +58,9 @@ const getFormattedLabel = (column, name, collaborators, chartType) => {
|
|
|
68
58
|
if (selectedOption) {
|
|
69
59
|
return optionName;
|
|
70
60
|
}
|
|
71
|
-
} else if (columnType ===
|
|
72
|
-
const options =
|
|
73
|
-
let selectedOption =
|
|
61
|
+
} else if (columnType === CellType.MULTIPLE_SELECT) {
|
|
62
|
+
const options = getColumnOptions(column);
|
|
63
|
+
let selectedOption = getOption(options, name);
|
|
74
64
|
let {
|
|
75
65
|
name: optionName,
|
|
76
66
|
color: optionColor
|
|
@@ -78,7 +68,7 @@ const getFormattedLabel = (column, name, collaborators, chartType) => {
|
|
|
78
68
|
// TODO:use option‘s color
|
|
79
69
|
// return { name: optionName, color: optionColor };
|
|
80
70
|
return optionName;
|
|
81
|
-
} else if (columnType ===
|
|
71
|
+
} else if (columnType === CellType.COLLABORATOR) {
|
|
82
72
|
let collaborator = collaborators.find(item => {
|
|
83
73
|
let email = name;
|
|
84
74
|
if (Array.isArray(name)) {
|
|
@@ -89,7 +79,7 @@ const getFormattedLabel = (column, name, collaborators, chartType) => {
|
|
|
89
79
|
if (collaborator) {
|
|
90
80
|
return collaborator.name;
|
|
91
81
|
}
|
|
92
|
-
} else if (columnType ===
|
|
82
|
+
} else if (columnType === CellType.CREATOR || columnType === CellType.LAST_MODIFIER) {
|
|
93
83
|
if (name === 'anonymous') {
|
|
94
84
|
return name;
|
|
95
85
|
} else {
|
|
@@ -98,25 +88,25 @@ const getFormattedLabel = (column, name, collaborators, chartType) => {
|
|
|
98
88
|
return collaborator.name;
|
|
99
89
|
}
|
|
100
90
|
}
|
|
101
|
-
} else if (columnType ===
|
|
102
|
-
return
|
|
91
|
+
} else if (columnType === CellType.LINK) {
|
|
92
|
+
return getClientFormulaDisplayString(Array.isArray(name) ? name : [name], columnData, {
|
|
103
93
|
collaborators
|
|
104
94
|
});
|
|
105
|
-
} else if (columnType ===
|
|
95
|
+
} else if (columnType === CellType.CHECKBOX) {
|
|
106
96
|
return name === 'true' ? 'Checked' : 'Unchecked';
|
|
107
|
-
} else if (
|
|
97
|
+
} else if (FORMULA_COLUMN_TYPES_MAP[columnType]) {
|
|
108
98
|
const {
|
|
109
99
|
result_type,
|
|
110
100
|
array_type
|
|
111
101
|
} = columnData || {};
|
|
112
|
-
if (!name && !
|
|
113
|
-
if (result_type ===
|
|
102
|
+
if (!name && !isNumber(name)) return '';
|
|
103
|
+
if (result_type === FORMULA_RESULT_TYPE.NUMBER) {
|
|
114
104
|
const valueNumber = parseFloat(name);
|
|
115
|
-
return
|
|
105
|
+
return isNumber(valueNumber) ? getNumberDisplayString(valueNumber, column.data) : name;
|
|
116
106
|
}
|
|
117
|
-
if (result_type ===
|
|
118
|
-
if (
|
|
119
|
-
if ([
|
|
107
|
+
if (result_type === FORMULA_RESULT_TYPE.ARRAY) {
|
|
108
|
+
if (COLLABORATOR_COLUMN_TYPES.includes(array_type)) {
|
|
109
|
+
if ([CellType.CREATOR, CellType.LAST_MODIFIER].includes(array_type) && name === 'anonymous') {
|
|
120
110
|
return name;
|
|
121
111
|
}
|
|
122
112
|
const collaborator = collaborators.find(item => {
|
|
@@ -137,14 +127,13 @@ const getFormattedLabel = (column, name, collaborators, chartType) => {
|
|
|
137
127
|
}
|
|
138
128
|
return name;
|
|
139
129
|
};
|
|
140
|
-
|
|
141
|
-
function getCellValue(row, formulaRow, column) {
|
|
130
|
+
export function getCellValue(row, formulaRow, column) {
|
|
142
131
|
if (!column) return null;
|
|
143
132
|
const {
|
|
144
133
|
type,
|
|
145
134
|
key
|
|
146
135
|
} = column;
|
|
147
|
-
if (
|
|
136
|
+
if (FORMULA_COLUMN_TYPES_MAP[type]) {
|
|
148
137
|
const cellValue = formulaRow && formulaRow[key];
|
|
149
138
|
if (Array.isArray(cellValue)) {
|
|
150
139
|
return cellValue[0];
|
package/dist/utils/search.js
CHANGED
|
@@ -1,18 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _context = _interopRequireDefault(require("../context"));
|
|
10
|
-
var _dtableUtils = require("dtable-utils");
|
|
11
|
-
var _columnUtils = require("./column-utils");
|
|
12
|
-
const SUPPORT_SEARCH_COLUMN_TYPES = [_dtableUtils.CellType.DATE, _dtableUtils.CellType.TEXT, _dtableUtils.CellType.LONG_TEXT, _dtableUtils.CellType.NUMBER, _dtableUtils.CellType.URL, _dtableUtils.CellType.EMAIL, _dtableUtils.CellType.SINGLE_SELECT, _dtableUtils.CellType.CTIME, _dtableUtils.CellType.MTIME, _dtableUtils.CellType.MULTIPLE_SELECT, _dtableUtils.CellType.LAST_MODIFIER, _dtableUtils.CellType.CREATOR, _dtableUtils.CellType.COLLABORATOR, _dtableUtils.CellType.LINK, _dtableUtils.CellType.FORMULA, _dtableUtils.CellType.LINK_FORMULA, _dtableUtils.CellType.AUTO_NUMBER, _dtableUtils.CellType.GEOLOCATION, _dtableUtils.CellType.DURATION];
|
|
13
|
-
const searchRows = (rows, columns, val, processRow) => {
|
|
14
|
-
let dtableCollaborators = _context.default.getCollaboratorFromCache() || [];
|
|
15
|
-
let collaborators = _context.default.collaborators || [];
|
|
1
|
+
import dayjs from 'dayjs';
|
|
2
|
+
import context from '../context';
|
|
3
|
+
import { CellType, getNumberDisplayString, getMultipleOptionName, getCollaboratorsName, getGeolocationDisplayString } from 'dtable-utils';
|
|
4
|
+
import { getSelectColumnOptions } from './column-utils';
|
|
5
|
+
const SUPPORT_SEARCH_COLUMN_TYPES = [CellType.DATE, CellType.TEXT, CellType.LONG_TEXT, CellType.NUMBER, CellType.URL, CellType.EMAIL, CellType.SINGLE_SELECT, CellType.CTIME, CellType.MTIME, CellType.MULTIPLE_SELECT, CellType.LAST_MODIFIER, CellType.CREATOR, CellType.COLLABORATOR, CellType.LINK, CellType.FORMULA, CellType.LINK_FORMULA, CellType.AUTO_NUMBER, CellType.GEOLOCATION, CellType.DURATION];
|
|
6
|
+
export const searchRows = (rows, columns, val, processRow) => {
|
|
7
|
+
let dtableCollaborators = context.getCollaboratorFromCache() || [];
|
|
8
|
+
let collaborators = context.collaborators || [];
|
|
16
9
|
let searchResult = [];
|
|
17
10
|
rows.forEach(row => {
|
|
18
11
|
let column = columns.find(column => {
|
|
@@ -26,20 +19,20 @@ const searchRows = (rows, columns, val, processRow) => {
|
|
|
26
19
|
const cellValue = row[columnKey];
|
|
27
20
|
if (cellValue) {
|
|
28
21
|
let text;
|
|
29
|
-
if (columnType ===
|
|
22
|
+
if (columnType === CellType.LONG_TEXT) {
|
|
30
23
|
text = cellValue.text;
|
|
31
|
-
} else if (columnType ===
|
|
32
|
-
text =
|
|
33
|
-
} else if (columnType ===
|
|
34
|
-
const options =
|
|
24
|
+
} else if (columnType === CellType.NUMBER || columnType === CellType.DURATION) {
|
|
25
|
+
text = getNumberDisplayString(cellValue, column.data);
|
|
26
|
+
} else if (columnType === CellType.SINGLE_SELECT) {
|
|
27
|
+
const options = getSelectColumnOptions(column);
|
|
35
28
|
const option = options.find(option => option.id === cellValue);
|
|
36
29
|
text = option ? option.name : '';
|
|
37
|
-
} else if (columnType ===
|
|
38
|
-
const options =
|
|
39
|
-
text =
|
|
40
|
-
} else if (columnType ===
|
|
41
|
-
text =
|
|
42
|
-
} else if (columnType ===
|
|
30
|
+
} else if (columnType === CellType.MULTIPLE_SELECT) {
|
|
31
|
+
const options = getSelectColumnOptions(column);
|
|
32
|
+
text = getMultipleOptionName(options, cellValue);
|
|
33
|
+
} else if (columnType === CellType.COLLABORATOR) {
|
|
34
|
+
text = getCollaboratorsName(collaborators, cellValue);
|
|
35
|
+
} else if (columnType === CellType.LAST_MODIFIER || columnType === CellType.CREATOR) {
|
|
43
36
|
if (cellValue === 'anonymous') {
|
|
44
37
|
text = cellValue;
|
|
45
38
|
} else {
|
|
@@ -51,10 +44,10 @@ const searchRows = (rows, columns, val, processRow) => {
|
|
|
51
44
|
text = collaborator.name;
|
|
52
45
|
}
|
|
53
46
|
}
|
|
54
|
-
} else if (columnType ===
|
|
55
|
-
text =
|
|
56
|
-
} else if (columnType ===
|
|
57
|
-
text = (
|
|
47
|
+
} else if (columnType === CellType.GEOLOCATION) {
|
|
48
|
+
text = getGeolocationDisplayString(cellValue, column.data);
|
|
49
|
+
} else if (columnType === CellType.CTIME || columnType === CellType.MTIME) {
|
|
50
|
+
text = dayjs(cellValue).format('YYYY-MM-DD HH:mm:ss');
|
|
58
51
|
} else {
|
|
59
52
|
text = cellValue;
|
|
60
53
|
}
|
|
@@ -70,5 +63,4 @@ const searchRows = (rows, columns, val, processRow) => {
|
|
|
70
63
|
}
|
|
71
64
|
});
|
|
72
65
|
return searchResult;
|
|
73
|
-
};
|
|
74
|
-
exports.searchRows = searchRows;
|
|
66
|
+
};
|
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
import { CellType, filter2SqlCondition, isNumericColumn, isDateColumn } from 'dtable-utils';
|
|
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';
|
|
2
7
|
|
|
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");
|
|
14
8
|
/*
|
|
15
9
|
query chart data by dtable-db
|
|
16
10
|
**/
|
|
@@ -26,7 +20,7 @@ class ChartDataSQL {
|
|
|
26
20
|
userDepartmentIdsMap
|
|
27
21
|
} = _ref;
|
|
28
22
|
this._chart_column_name_to_sql = (column, groupBy) => {
|
|
29
|
-
return
|
|
23
|
+
return getSqlGroup(column, groupBy);
|
|
30
24
|
};
|
|
31
25
|
this._get_column_by_key = key => {
|
|
32
26
|
return this.column_key_map[key];
|
|
@@ -57,11 +51,11 @@ class ChartDataSQL {
|
|
|
57
51
|
const valid_column_name = `\`${column_name}\``;
|
|
58
52
|
if (summary_method === 'DISTINCT_VALUES') return `COUNT(DISTINCT ${valid_column_name})`;
|
|
59
53
|
if (summary_method === 'ROW_COUNT') return `COUNT(${valid_column_name})`;
|
|
60
|
-
return `${
|
|
54
|
+
return `${DTABLE_DB_SUMMARY_METHOD[summary_method]}(${valid_column_name})`;
|
|
61
55
|
};
|
|
62
56
|
this._basic_statistic_2_sql = () => {
|
|
63
57
|
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;
|
|
64
|
-
if ([
|
|
58
|
+
if ([CHART_TYPE.HORIZONTAL_BAR, CHART_TYPE.STACKED_HORIZONTAL_BAR, CHART_TYPE.HORIZONTAL_GROUP_BAR].includes(this.chart_type)) {
|
|
65
59
|
x_axis_column_key = this.chart['vertical_axis_column_key'] || '';
|
|
66
60
|
x_axis_date_granularity = this.chart['vertical_axis_date_granularity'] || '';
|
|
67
61
|
x_axis_geolocation_granularity = this.chart['vertical_axis_geolocation_granularity'] || '';
|
|
@@ -123,7 +117,7 @@ class ChartDataSQL {
|
|
|
123
117
|
date_granularity: 'day'
|
|
124
118
|
});
|
|
125
119
|
let summary_column_name = this._summary_column_2_sql('COUNT', groupby_column);
|
|
126
|
-
if (summary_type ===
|
|
120
|
+
if (summary_type === CHART_SUMMARY_TYPE.ADVANCED) {
|
|
127
121
|
const summary_column = this._get_column_by_key(summary_column_key);
|
|
128
122
|
if (!summary_column) {
|
|
129
123
|
this.error = 'Summary_column_not_found';
|
|
@@ -155,7 +149,7 @@ class ChartDataSQL {
|
|
|
155
149
|
const column_name = this._chart_column_name_to_sql(groupby_column, {});
|
|
156
150
|
const column_groupby_column_name = this._chart_column_name_to_sql(column_groupby_column, {});
|
|
157
151
|
let summary_column_name = this._summary_column_2_sql('COUNT', groupby_column);
|
|
158
|
-
if (summary_type ===
|
|
152
|
+
if (summary_type === CHART_SUMMARY_TYPE.ADVANCED) {
|
|
159
153
|
const summary_column = this._get_column_by_key(summary_column_key);
|
|
160
154
|
if (!summary_column) {
|
|
161
155
|
this.error = 'Summary_column_not_found';
|
|
@@ -183,7 +177,7 @@ class ChartDataSQL {
|
|
|
183
177
|
'date_granularity': date_granularity
|
|
184
178
|
});
|
|
185
179
|
let summary_column_name = this._summary_column_2_sql('COUNT', groupby_column);
|
|
186
|
-
if (summary_type ===
|
|
180
|
+
if (summary_type === CHART_SUMMARY_TYPE.ADVANCED) {
|
|
187
181
|
const summary_column = this._get_column_by_key(summary_column_key);
|
|
188
182
|
if (!summary_column) {
|
|
189
183
|
this.error = 'Summary_column_not_found';
|
|
@@ -195,7 +189,7 @@ class ChartDataSQL {
|
|
|
195
189
|
};
|
|
196
190
|
this._grouping_statistic_2_sql = () => {
|
|
197
191
|
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;
|
|
198
|
-
if ([
|
|
192
|
+
if ([CHART_TYPE.HORIZONTAL_GROUP_BAR, CHART_TYPE.STACKED_HORIZONTAL_BAR].includes(this.chart_type)) {
|
|
199
193
|
x_axis_column_key = this.chart['vertical_axis_column_key'] || '';
|
|
200
194
|
x_axis_date_granularity = this.chart['vertical_axis_date_granularity'] || '';
|
|
201
195
|
x_axis_geolocation_granularity = this.chart['vertical_axis_geolocation_granularity'] || '';
|
|
@@ -303,12 +297,12 @@ class ChartDataSQL {
|
|
|
303
297
|
column_groupby_numeric_columns
|
|
304
298
|
} = stack;
|
|
305
299
|
let sql = '';
|
|
306
|
-
if (y_axis_type ===
|
|
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) {
|
|
307
301
|
// just support summary numeric columns.
|
|
308
302
|
let group_methods = [];
|
|
309
303
|
column_groupby_numeric_columns.forEach(item => {
|
|
310
304
|
const numeric_column = this._get_column_by_key(item.column_key);
|
|
311
|
-
group_methods.push(this._summary_column_2_sql(
|
|
305
|
+
group_methods.push(this._summary_column_2_sql(DTABLE_DB_SUMMARY_METHOD[item.summary_method.toUpperCase()], numeric_column));
|
|
312
306
|
});
|
|
313
307
|
sql = `SELECT ${groupby_column_name}, ${group_methods.join(',')} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 5000`;
|
|
314
308
|
}
|
|
@@ -344,7 +338,7 @@ class ChartDataSQL {
|
|
|
344
338
|
'geolocation_granularity': x_axis_geolocation_granularity
|
|
345
339
|
});
|
|
346
340
|
let summary_column_name = this._summary_column_2_sql('COUNT', groupby_column);
|
|
347
|
-
if (y_axis_summary_type ===
|
|
341
|
+
if (y_axis_summary_type === CHART_SUMMARY_TYPE.ADVANCED) {
|
|
348
342
|
const summary_column = this._get_column_by_key(y_axis_summary_column_key);
|
|
349
343
|
if (!summary_column) {
|
|
350
344
|
this.error = 'Summary_column_not_found';
|
|
@@ -357,8 +351,8 @@ class ChartDataSQL {
|
|
|
357
351
|
let filter_sql = this.filter_sql;
|
|
358
352
|
if (x_axis_date_range_start && x_axis_date_range_end && x_axis_compared_date_range_start && x_axis_compared_date_range_end) {
|
|
359
353
|
filter_sql = this.filter_sql.length === 0 ? 'where ' : this.filter_sql + ' AND';
|
|
360
|
-
const formattedXAxisDateRangeEnd = (
|
|
361
|
-
const formattedXAxisComparedDateRangeEnd = (
|
|
354
|
+
const formattedXAxisDateRangeEnd = dayjs(x_axis_date_range_end).add(1, 'days').format('YYYY-MM-DD');
|
|
355
|
+
const formattedXAxisComparedDateRangeEnd = dayjs(x_axis_compared_date_range_end).add(1, 'days').format('YYYY-MM-DD');
|
|
362
356
|
filter_sql = filter_sql + ` ((${groupby_column.name} >= '${x_axis_date_range_start}' AND ${groupby_column.name} < '${formattedXAxisDateRangeEnd}') Or (${groupby_column.name} >= '${x_axis_compared_date_range_start}' AND ${groupby_column.name} < '${formattedXAxisComparedDateRangeEnd}'))`;
|
|
363
357
|
}
|
|
364
358
|
return `SELECT ${groupby_column_name}, ${summary_column_name} FROM ${this.table_name} ${filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
@@ -465,7 +459,7 @@ class ChartDataSQL {
|
|
|
465
459
|
const summary_column = this._get_column_by_key(summary_column_key);
|
|
466
460
|
summary_method = summary_method.toUpperCase();
|
|
467
461
|
let summary_column_names = [];
|
|
468
|
-
if (summary_column && (
|
|
462
|
+
if (summary_column && (isNumericColumn(summary_column) || isDateColumn(summary_column))) {
|
|
469
463
|
const summary_column_name = this._summary_column_2_sql(summary_method, summary_column);
|
|
470
464
|
summary_column_names.push(summary_column_name);
|
|
471
465
|
}
|
|
@@ -476,14 +470,14 @@ class ChartDataSQL {
|
|
|
476
470
|
} = column_option;
|
|
477
471
|
const method = summary_method === null || summary_method === void 0 ? void 0 : summary_method.toUpperCase();
|
|
478
472
|
const column = this._get_column_by_key(column_key);
|
|
479
|
-
if (column && (
|
|
473
|
+
if (column && (isNumericColumn(column) || isDateColumn(column))) {
|
|
480
474
|
const column_name = this._summary_column_2_sql(method, column);
|
|
481
475
|
summary_column_names.push(column_name);
|
|
482
476
|
}
|
|
483
477
|
});
|
|
484
478
|
|
|
485
479
|
// groupby_column is COLLABORATOR or MULTIPLE_SELECT, replace AVG with SUM, and add 'COUNT(*)'
|
|
486
|
-
if (groupby_column.type ===
|
|
480
|
+
if (groupby_column.type === CellType.COLLABORATOR || groupby_column.type === CellType.MULTIPLE_SELECT) {
|
|
487
481
|
summary_column_names.forEach((item, index) => {
|
|
488
482
|
if (item.startsWith('AVG')) {
|
|
489
483
|
summary_column_names[index] = 'SUM' + item.slice(3);
|
|
@@ -527,7 +521,7 @@ class ChartDataSQL {
|
|
|
527
521
|
let numeric_column_names = [];
|
|
528
522
|
new_numeric_column_keys.forEach(column_key => {
|
|
529
523
|
const column = this._get_column_by_key(column_key);
|
|
530
|
-
if (column && (
|
|
524
|
+
if (column && (isNumericColumn(column) || isDateColumn(column))) {
|
|
531
525
|
const column_name = this._summary_column_2_sql(summary_method, column);
|
|
532
526
|
numeric_column_names.append(column_name);
|
|
533
527
|
}
|
|
@@ -626,7 +620,7 @@ class ChartDataSQL {
|
|
|
626
620
|
};
|
|
627
621
|
this._basic_number_card_chart_statistic_2_sql = () => {
|
|
628
622
|
const summary_type = this.chart['summary_type'];
|
|
629
|
-
if (summary_type ===
|
|
623
|
+
if (summary_type === CHART_Y_GROUP_TYPE.COUNT) {
|
|
630
624
|
return `SELECT COUNT(*) FROM ${this.table_name} ${this.filter_sql} LIMIT 0, 5000`;
|
|
631
625
|
}
|
|
632
626
|
const numeric_column_key = this.chart['numeric_column_key'] || '';
|
|
@@ -772,7 +766,7 @@ class ChartDataSQL {
|
|
|
772
766
|
this.error = 'Geo_column_not_found';
|
|
773
767
|
return '';
|
|
774
768
|
}
|
|
775
|
-
const geolocation_granularity =
|
|
769
|
+
const geolocation_granularity = fixGeoGranularity(map_level, map_location);
|
|
776
770
|
this._update_filter_sql(false, groupby_column);
|
|
777
771
|
|
|
778
772
|
// map do not have date column ,so date_granularity is not needed
|
|
@@ -814,7 +808,7 @@ class ChartDataSQL {
|
|
|
814
808
|
'geolocation_granularity': ''
|
|
815
809
|
});
|
|
816
810
|
let summary_column_name = this._summary_column_2_sql('COUNT', groupby_column);
|
|
817
|
-
if (summary_type ===
|
|
811
|
+
if (summary_type === CHART_SUMMARY_TYPE.ADVANCED) {
|
|
818
812
|
const summary_column = this._get_column_by_key(summary_column_key);
|
|
819
813
|
if (!summary_column) {
|
|
820
814
|
this.error = 'Summary_column_not_found';
|
|
@@ -831,14 +825,14 @@ class ChartDataSQL {
|
|
|
831
825
|
error: this.error
|
|
832
826
|
};
|
|
833
827
|
}
|
|
834
|
-
if ([
|
|
828
|
+
if ([CHART_TYPE.BAR, CHART_TYPE.LINE, CHART_TYPE.HORIZONTAL_BAR, CHART_TYPE.AREA, CHART_TYPE.FUNNEL].includes(this.chart_type)) {
|
|
835
829
|
const sql = this._basic_statistic_2_sql();
|
|
836
830
|
return {
|
|
837
831
|
sql,
|
|
838
832
|
error: this.error
|
|
839
833
|
};
|
|
840
834
|
}
|
|
841
|
-
if ([
|
|
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)) {
|
|
842
836
|
const column_groupby_column_key = this.chart['column_groupby_column_key'] || '';
|
|
843
837
|
const column_groupby_multiple_numeric_column = this.chart['column_groupby_multiple_numeric_column'] || false;
|
|
844
838
|
if (!(column_groupby_column_key || column_groupby_multiple_numeric_column)) {
|
|
@@ -854,63 +848,63 @@ class ChartDataSQL {
|
|
|
854
848
|
error: this.error
|
|
855
849
|
};
|
|
856
850
|
}
|
|
857
|
-
if (this.chart_type ===
|
|
851
|
+
if (this.chart_type === CHART_TYPE.COMPLETENESS || this.chart_type === CHART_TYPE.COMPLETENESS_GROUP) {
|
|
858
852
|
const sql = this._completeness_chart_statistic_2_sql();
|
|
859
853
|
return {
|
|
860
854
|
sql,
|
|
861
855
|
error: this.error
|
|
862
856
|
};
|
|
863
857
|
}
|
|
864
|
-
if (this.chart_type ===
|
|
858
|
+
if (this.chart_type === CHART_TYPE.SCATTER) {
|
|
865
859
|
const sql = this._scatter_statistic_2_sql();
|
|
866
860
|
return {
|
|
867
861
|
sql,
|
|
868
862
|
error: this.error
|
|
869
863
|
};
|
|
870
864
|
}
|
|
871
|
-
if (this.chart_type ===
|
|
865
|
+
if (this.chart_type === CHART_TYPE.BAR_CUSTOM) {
|
|
872
866
|
const sql = this._custom_statistic_2_sql();
|
|
873
867
|
return {
|
|
874
868
|
sql,
|
|
875
869
|
error: this.error
|
|
876
870
|
};
|
|
877
871
|
}
|
|
878
|
-
if (this.chart_type ===
|
|
872
|
+
if (this.chart_type === CHART_TYPE.COMPARE_BAR) {
|
|
879
873
|
const sql = this._compare_chart_statistic_2_sql();
|
|
880
874
|
return {
|
|
881
875
|
sql,
|
|
882
876
|
error: this.error
|
|
883
877
|
};
|
|
884
878
|
}
|
|
885
|
-
if (this.chart_type ===
|
|
879
|
+
if (this.chart_type === CHART_TYPE.COMBINATION) {
|
|
886
880
|
const sql = this._combination_chart_statistic_2_sql();
|
|
887
881
|
return {
|
|
888
882
|
sql,
|
|
889
883
|
error: this.error
|
|
890
884
|
};
|
|
891
885
|
}
|
|
892
|
-
if ([
|
|
886
|
+
if ([CHART_TYPE.PIE, CHART_TYPE.RING, CHART_TYPE.TREE_MAP].includes(this.chart_type)) {
|
|
893
887
|
const sql = this._pie_chart_statistic_2_sql();
|
|
894
888
|
return {
|
|
895
889
|
sql,
|
|
896
890
|
error: this.error
|
|
897
891
|
};
|
|
898
892
|
}
|
|
899
|
-
if (this.chart_type ===
|
|
893
|
+
if (this.chart_type === CHART_TYPE.BASIC_NUMBER_CARD) {
|
|
900
894
|
const sql = this._basic_number_card_chart_statistic_2_sql();
|
|
901
895
|
return {
|
|
902
896
|
sql,
|
|
903
897
|
error: this.error
|
|
904
898
|
};
|
|
905
899
|
}
|
|
906
|
-
if (this.chart_type ===
|
|
900
|
+
if (this.chart_type === CHART_TYPE.DASHBOARD) {
|
|
907
901
|
const sql = this._dashboard_chart_statistic_2_sql();
|
|
908
902
|
return {
|
|
909
903
|
sql,
|
|
910
904
|
error: this.error
|
|
911
905
|
};
|
|
912
906
|
}
|
|
913
|
-
const mapChart = [
|
|
907
|
+
const mapChart = [CHART_TYPE.MAP, CHART_TYPE.MAP_BUBBLE];
|
|
914
908
|
if (mapChart.includes(this.chart_type)) {
|
|
915
909
|
const sql = this._map_statistic_2_sql();
|
|
916
910
|
return {
|
|
@@ -918,7 +912,7 @@ class ChartDataSQL {
|
|
|
918
912
|
error: this.error
|
|
919
913
|
};
|
|
920
914
|
}
|
|
921
|
-
if (this.chart_type ===
|
|
915
|
+
if (this.chart_type === CHART_TYPE.TABLE) {
|
|
922
916
|
const column_groupby_column_key = this.chart['column_groupby_column_key'] || '';
|
|
923
917
|
const groupby_column_key = this.chart['groupby_column_key'] || '';
|
|
924
918
|
if (!groupby_column_key) {
|
|
@@ -940,28 +934,28 @@ class ChartDataSQL {
|
|
|
940
934
|
error: this.error
|
|
941
935
|
};
|
|
942
936
|
}
|
|
943
|
-
if ([
|
|
937
|
+
if ([CHART_TYPE.WORLD_MAP, CHART_TYPE.WORLD_MAP_BUBBLE].includes(this.chart_type)) {
|
|
944
938
|
const sql = this._world_map_basic_statistic_2_sql();
|
|
945
939
|
return {
|
|
946
940
|
sql,
|
|
947
941
|
error: this.error
|
|
948
942
|
};
|
|
949
943
|
}
|
|
950
|
-
if (this.chart_type ===
|
|
944
|
+
if (this.chart_type === CHART_TYPE.HEAT_MAP) {
|
|
951
945
|
const sql = this._heat_map_statistic_2_sql();
|
|
952
946
|
return {
|
|
953
947
|
sql,
|
|
954
948
|
error: this.error
|
|
955
949
|
};
|
|
956
950
|
}
|
|
957
|
-
if (this.chart_type ===
|
|
951
|
+
if (this.chart_type === CHART_TYPE.MIRROR) {
|
|
958
952
|
const sql = this._mirror_map_statistic_2_sql();
|
|
959
953
|
return {
|
|
960
954
|
sql,
|
|
961
955
|
error: this.error
|
|
962
956
|
};
|
|
963
957
|
}
|
|
964
|
-
if (this.chart_type ===
|
|
958
|
+
if (this.chart_type === CHART_TYPE.TREND) {
|
|
965
959
|
const sql = this._trend_map_statistic_2_sql();
|
|
966
960
|
return {
|
|
967
961
|
sql,
|
|
@@ -978,10 +972,10 @@ class ChartDataSQL {
|
|
|
978
972
|
const {
|
|
979
973
|
type
|
|
980
974
|
} = column || {};
|
|
981
|
-
if (type ===
|
|
975
|
+
if (type === CellType.SINGLE_SELECT || type === CellType.MULTIPLE_SELECT) {
|
|
982
976
|
return `'${name}'`;
|
|
983
977
|
}
|
|
984
|
-
if (type ===
|
|
978
|
+
if (type === CellType.NUMBER) {
|
|
985
979
|
const newName = Number(name);
|
|
986
980
|
if (!Number.isNaN(newName)) {
|
|
987
981
|
return newName;
|
|
@@ -1009,7 +1003,7 @@ class ChartDataSQL {
|
|
|
1009
1003
|
groupName,
|
|
1010
1004
|
selectedColumn,
|
|
1011
1005
|
columnSelectedColumn
|
|
1012
|
-
} =
|
|
1006
|
+
} = getDatabaseGroupName(statItem.config, this.table);
|
|
1013
1007
|
let isGroup = column_groupby_column_key && !column_groupby_multiple_numeric_column;
|
|
1014
1008
|
let {
|
|
1015
1009
|
name,
|
|
@@ -1019,10 +1013,10 @@ class ChartDataSQL {
|
|
|
1019
1013
|
} = statisticRecord;
|
|
1020
1014
|
|
|
1021
1015
|
// No grouping required type
|
|
1022
|
-
if ([
|
|
1016
|
+
if ([CHART_TYPE.COMPLETENESS_GROUP].includes(type)) {
|
|
1023
1017
|
isGroup = false;
|
|
1024
1018
|
}
|
|
1025
|
-
if ([
|
|
1019
|
+
if ([CHART_TYPE.PIE, CHART_TYPE.RING, CHART_TYPE.TREE_MAP].includes(type)) {
|
|
1026
1020
|
name = name.trim();
|
|
1027
1021
|
}
|
|
1028
1022
|
let sqlName = this.get_sql_group_name(name, original_name, selectedColumn);
|
|
@@ -1031,7 +1025,7 @@ class ChartDataSQL {
|
|
|
1031
1025
|
sqlGroupName = this.get_sql_group_name(group_name, group_original_name, columnSelectedColumn);
|
|
1032
1026
|
}
|
|
1033
1027
|
let sqlString;
|
|
1034
|
-
if (type ===
|
|
1028
|
+
if (type === CHART_TYPE.TABLE) {
|
|
1035
1029
|
let pivotGroupName = `${isGroup ? `${columnGroupName}=${sqlGroupName}` : ''}`;
|
|
1036
1030
|
if (isColumn) {
|
|
1037
1031
|
if (this.filter_sql && pivotGroupName) {
|
|
@@ -1081,7 +1075,7 @@ class ChartDataSQL {
|
|
|
1081
1075
|
Array.isArray(table.columns) && table.columns.forEach(column => {
|
|
1082
1076
|
this.column_key_map[column.key] = column;
|
|
1083
1077
|
});
|
|
1084
|
-
this.filter_sql =
|
|
1078
|
+
this.filter_sql = filter2SqlCondition(table, view, username, userId, userDepartmentIdsMap);
|
|
1085
1079
|
}
|
|
1086
1080
|
}
|
|
1087
|
-
|
|
1081
|
+
export default ChartDataSQL;
|