@gingkoo/pandora-metabase 1.0.118 → 1.0.120
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/lib/cjs/common/Portal/index.js +0 -2
- package/lib/cjs/common/SplitView/index.d.ts +0 -4
- package/lib/cjs/common/SplitView/index.js +0 -10
- package/lib/cjs/components/dialog/custom-column/config.js +4 -48
- package/lib/cjs/components/dialog/custom-column/expression-editor.js +3 -14
- package/lib/cjs/components/dialog/custom-column/expressions/suggest.d.ts +2 -34
- package/lib/cjs/components/dialog/custom-column/expressions/suggest.js +2 -43
- package/lib/cjs/components/dialog/custom-column/expressions/tokenizer.js +8 -65
- package/lib/cjs/components/dialog/custom-column/index.js +2 -4
- package/lib/cjs/components/dialog/custom-column/tokenized-expression.js +2 -3
- package/lib/cjs/components/dialog/custom-column/tokenizedI-input.js +1 -1
- package/lib/cjs/components/dialog/custom-editor/index.js +2 -7
- package/lib/cjs/components/dialog/diff-viewer/index copy.js +1 -16
- package/lib/cjs/components/dialog/expression/date-format-picker.js +2 -20
- package/lib/cjs/components/dialog/expression/date-format.js +2 -8
- package/lib/cjs/components/dialog/expression/index.d.ts +0 -3
- package/lib/cjs/components/dialog/expression/index.js +2 -83
- package/lib/cjs/components/dialog/formula/index.js +6 -31
- package/lib/cjs/components/dialog/formula/utils.js +2 -10
- package/lib/cjs/components/dialog/formula-list/CaseWhenGroup.d.ts +19 -0
- package/lib/cjs/components/dialog/formula-list/CaseWhenGroup.js +109 -0
- package/lib/cjs/components/dialog/formula-list/LogicGroup.d.ts +9 -0
- package/lib/cjs/components/dialog/formula-list/LogicGroup.js +43 -0
- package/lib/cjs/components/dialog/formula-list/index.d.ts +3 -0
- package/lib/cjs/components/dialog/formula-list/index.js +970 -504
- package/lib/cjs/components/dialog/formula-list/index.less +724 -0
- package/lib/cjs/components/dialog/formula-list/utils.d.ts +0 -7
- package/lib/cjs/components/dialog/formula-list/utils.js +117 -113
- package/lib/cjs/components/dialog/select-column/index.d.ts +0 -6
- package/lib/cjs/components/dialog/select-column/index.js +4 -15
- package/lib/cjs/components/dialog/select-column-multiple/index.d.ts +0 -8
- package/lib/cjs/components/dialog/select-column-multiple/index.js +6 -45
- package/lib/cjs/components/dialog/select-join/index.d.ts +0 -5
- package/lib/cjs/components/dialog/select-join/index.js +0 -6
- package/lib/cjs/components/dialog/select-join-column/index.d.ts +0 -8
- package/lib/cjs/components/dialog/select-join-column/index.js +7 -21
- package/lib/cjs/components/dialog/select-join-column-multiple/index.d.ts +0 -8
- package/lib/cjs/components/dialog/select-join-column-multiple/index.js +5 -35
- package/lib/cjs/components/dialog/select-permission-table/index.d.ts +0 -5
- package/lib/cjs/components/dialog/select-permission-table/index.js +0 -6
- package/lib/cjs/components/dialog/select-summarize/index.d.ts +7 -4
- package/lib/cjs/components/dialog/select-summarize/index.js +105 -18
- package/lib/cjs/components/dialog/select-summarize/index.less +23 -0
- package/lib/cjs/components/dialog/select-table/index.d.ts +0 -6
- package/lib/cjs/components/dialog/select-table/index.js +1 -9
- package/lib/cjs/components/metabase/index.js +72 -86
- package/lib/cjs/components/metabase/index.less +7 -7
- package/lib/cjs/components/modules/components/Wrapper.js +1 -1
- package/lib/cjs/components/modules/components/header.js +2 -2
- package/lib/cjs/components/modules/components/meta-icon.d.ts +0 -3
- package/lib/cjs/components/modules/components/meta-icon.js +2 -47
- package/lib/cjs/components/modules/custom-column.js +3 -29
- package/lib/cjs/components/modules/enum/filter-enum.js +9 -88
- package/lib/cjs/components/modules/filter.js +2 -20
- package/lib/cjs/components/modules/index.d.ts +4 -2
- package/lib/cjs/components/modules/index.js +24 -1
- package/lib/cjs/components/modules/join-data.js +13 -291
- package/lib/cjs/components/modules/row-limit.js +0 -1
- package/lib/cjs/components/modules/sort.js +1 -61
- package/lib/cjs/components/modules/summarize/group-by.d.ts +0 -5
- package/lib/cjs/components/modules/summarize/group-by.js +251 -89
- package/lib/cjs/components/modules/summarize/select-index.js +116 -59
- package/lib/cjs/components/modules/table-data.js +11 -64
- package/lib/cjs/components/popup.js +26 -32
- package/lib/cjs/hooks/patch.d.ts +1 -0
- package/lib/cjs/hooks/patch.js +104 -6
- package/lib/cjs/hooks/patch2.js +3 -165
- package/lib/cjs/hooks/use-provider.js +0 -3
- package/lib/cjs/hooks/use-state.js +55 -135
- package/lib/cjs/index.js +0 -15
- package/lib/cjs/locale/en.js +5 -0
- package/lib/cjs/locale/index.js +1 -4
- package/lib/cjs/locale/zh.js +5 -0
- package/lib/cjs/sql-formula.js +0 -1
- package/lib/cjs/store/enum.d.ts +6 -6
- package/lib/cjs/store/enum.js +0 -13
- package/lib/cjs/store/helper.d.ts +2 -1
- package/lib/cjs/store/helper.js +15 -225
- package/lib/cjs/store/types.d.ts +45 -67
- package/lib/cjs/store/types.js +3 -49
- package/lib/cjs/types.d.ts +1 -0
- package/lib/cjs/utils/cookies.js +0 -3
- package/lib/cjs/utils/event.js +1 -1
- package/lib/cjs/utils/helper-dom.d.ts +1 -0
- package/lib/cjs/utils/helper-dom.js +17 -10
- package/lib/cjs/utils/helper.js +1 -24
- package/lib/cjs/utils/keydown.js +4 -7
- package/lib/cjs/utils/platform.d.ts +0 -9
- package/lib/cjs/utils/platform.js +0 -10
- package/lib/cjs/utils/selection.js +0 -6
- package/lib/cjs/utils/storage.d.ts +0 -9
- package/lib/cjs/utils/storage.js +1 -11
- package/lib/cjs/utils/transformSql.d.ts +5 -0
- package/lib/cjs/utils/transformSql.js +40 -101
- package/lib/cjs/utils.d.ts +1 -6
- package/lib/cjs/utils.js +126 -255
- package/lib/es/common/Portal/index.js +0 -2
- package/lib/es/common/SplitView/index.d.ts +0 -4
- package/lib/es/common/SplitView/index.js +0 -10
- package/lib/es/components/dialog/custom-column/config.js +4 -48
- package/lib/es/components/dialog/custom-column/expression-editor.js +3 -14
- package/lib/es/components/dialog/custom-column/expressions/suggest.d.ts +2 -34
- package/lib/es/components/dialog/custom-column/expressions/suggest.js +2 -43
- package/lib/es/components/dialog/custom-column/expressions/tokenizer.js +8 -65
- package/lib/es/components/dialog/custom-column/index.js +2 -4
- package/lib/es/components/dialog/custom-column/tokenized-expression.js +1 -3
- package/lib/es/components/dialog/custom-column/tokenizedI-input.js +1 -1
- package/lib/es/components/dialog/custom-editor/index.js +1 -7
- package/lib/es/components/dialog/diff-viewer/index copy.js +1 -15
- package/lib/es/components/dialog/expression/date-format-picker.js +2 -20
- package/lib/es/components/dialog/expression/date-format.js +2 -8
- package/lib/es/components/dialog/expression/index.d.ts +0 -3
- package/lib/es/components/dialog/expression/index.js +2 -82
- package/lib/es/components/dialog/formula/index.js +5 -31
- package/lib/es/components/dialog/formula/utils.js +2 -10
- package/lib/es/components/dialog/formula-list/CaseWhenGroup.d.ts +19 -0
- package/lib/es/components/dialog/formula-list/CaseWhenGroup.js +102 -0
- package/lib/es/components/dialog/formula-list/LogicGroup.d.ts +9 -0
- package/lib/es/components/dialog/formula-list/LogicGroup.js +36 -0
- package/lib/es/components/dialog/formula-list/index.d.ts +3 -0
- package/lib/es/components/dialog/formula-list/index.js +969 -504
- package/lib/es/components/dialog/formula-list/index.less +724 -0
- package/lib/es/components/dialog/formula-list/utils.d.ts +0 -7
- package/lib/es/components/dialog/formula-list/utils.js +117 -113
- package/lib/es/components/dialog/index.js +3 -3
- package/lib/es/components/dialog/select-column/index.d.ts +0 -6
- package/lib/es/components/dialog/select-column/index.js +4 -14
- package/lib/es/components/dialog/select-column-multiple/index.d.ts +0 -8
- package/lib/es/components/dialog/select-column-multiple/index.js +7 -47
- package/lib/es/components/dialog/select-join/index.d.ts +0 -5
- package/lib/es/components/dialog/select-join/index.js +0 -5
- package/lib/es/components/dialog/select-join-column/index.d.ts +0 -8
- package/lib/es/components/dialog/select-join-column/index.js +7 -20
- package/lib/es/components/dialog/select-join-column-multiple/index.d.ts +0 -8
- package/lib/es/components/dialog/select-join-column-multiple/index.js +5 -34
- package/lib/es/components/dialog/select-permission-table/index.d.ts +0 -5
- package/lib/es/components/dialog/select-permission-table/index.js +0 -5
- package/lib/es/components/dialog/select-summarize/index.d.ts +7 -4
- package/lib/es/components/dialog/select-summarize/index.js +106 -18
- package/lib/es/components/dialog/select-summarize/index.less +23 -0
- package/lib/es/components/dialog/select-table/index.d.ts +0 -6
- package/lib/es/components/dialog/select-table/index.js +1 -8
- package/lib/es/components/metabase/index.js +72 -87
- package/lib/es/components/metabase/index.less +7 -7
- package/lib/es/components/modules/components/Wrapper.js +1 -1
- package/lib/es/components/modules/components/header.js +2 -2
- package/lib/es/components/modules/components/meta-icon.d.ts +0 -3
- package/lib/es/components/modules/components/meta-icon.js +2 -46
- package/lib/es/components/modules/custom-column.js +3 -29
- package/lib/es/components/modules/enum/filter-enum.js +9 -88
- package/lib/es/components/modules/filter.js +2 -19
- package/lib/es/components/modules/index.d.ts +4 -2
- package/lib/es/components/modules/index.js +24 -1
- package/lib/es/components/modules/join-data.js +13 -291
- package/lib/es/components/modules/row-limit.js +0 -1
- package/lib/es/components/modules/sort.js +1 -61
- package/lib/es/components/modules/summarize/group-by.d.ts +0 -5
- package/lib/es/components/modules/summarize/group-by.js +253 -91
- package/lib/es/components/modules/summarize/select-index.js +116 -59
- package/lib/es/components/modules/table-data.js +11 -64
- package/lib/es/components/popup.js +27 -33
- package/lib/es/hooks/patch.d.ts +1 -0
- package/lib/es/hooks/patch.js +103 -5
- package/lib/es/hooks/patch2.js +2 -164
- package/lib/es/hooks/use-provider.js +0 -3
- package/lib/es/hooks/use-state.js +55 -135
- package/lib/es/index.js +0 -14
- package/lib/es/locale/en.js +5 -0
- package/lib/es/locale/index.js +1 -4
- package/lib/es/locale/zh.js +5 -0
- package/lib/es/sql-formula.js +0 -1
- package/lib/es/store/enum.d.ts +6 -6
- package/lib/es/store/enum.js +0 -13
- package/lib/es/store/helper.d.ts +2 -1
- package/lib/es/store/helper.js +13 -224
- package/lib/es/store/types.d.ts +45 -67
- package/lib/es/store/types.js +3 -49
- package/lib/es/types.d.ts +1 -0
- package/lib/es/types.js +1 -18
- package/lib/es/utils/cookies.js +0 -3
- package/lib/es/utils/event.js +1 -1
- package/lib/es/utils/helper-dom.d.ts +1 -0
- package/lib/es/utils/helper-dom.js +16 -9
- package/lib/es/utils/helper.js +1 -24
- package/lib/es/utils/keydown.js +4 -7
- package/lib/es/utils/platform.d.ts +0 -9
- package/lib/es/utils/platform.js +0 -10
- package/lib/es/utils/selection.js +0 -6
- package/lib/es/utils/storage.d.ts +0 -9
- package/lib/es/utils/storage.js +1 -10
- package/lib/es/utils/transformSql.d.ts +5 -0
- package/lib/es/utils/transformSql.js +40 -100
- package/lib/es/utils.d.ts +1 -6
- package/lib/es/utils.js +127 -255
- package/package.json +1 -1
|
@@ -15,7 +15,6 @@ var RowLimit = function RowLimit(props) {
|
|
|
15
15
|
var index = findIndex(store.metaList[groupIndex].list, meta);
|
|
16
16
|
function handleChange(inputValue) {
|
|
17
17
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
18
|
-
// @ts-ignore
|
|
19
18
|
newMeta[index].limit = inputValue;
|
|
20
19
|
store.setMeta(newMeta, groupIndex);
|
|
21
20
|
}
|
|
@@ -34,7 +34,6 @@ var Sort = function Sort(props) {
|
|
|
34
34
|
name: prevGroupBy.alias,
|
|
35
35
|
id: prevGroupBy.alias,
|
|
36
36
|
tableUuid: prevGroupBy.tableUuid || uuidv4('table'),
|
|
37
|
-
// alias: (prevGroupBy as MetaSummarize).alias,
|
|
38
37
|
columns: []
|
|
39
38
|
};
|
|
40
39
|
if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group = prevGroupBy.group) !== null && _prevGroupBy$group !== void 0 && _prevGroupBy$group.length) {
|
|
@@ -43,7 +42,6 @@ var Sort = function Sort(props) {
|
|
|
43
42
|
name: v.name || v.quotes,
|
|
44
43
|
name_zh: v.name_zh || v.quotes,
|
|
45
44
|
id: v.id || v.fieldId,
|
|
46
|
-
// name_zh: '',
|
|
47
45
|
database_type: (v === null || v === void 0 ? void 0 : v.database_type) || SQL_COLUMN_TYPE.FLOAT,
|
|
48
46
|
special_type: '',
|
|
49
47
|
sql: v.sql,
|
|
@@ -66,7 +64,6 @@ var Sort = function Sort(props) {
|
|
|
66
64
|
}
|
|
67
65
|
data = [_data];
|
|
68
66
|
} else {
|
|
69
|
-
//@ts-ignore
|
|
70
67
|
data = store.metaList[groupIndex].list.slice(0, index).map(function (v) {
|
|
71
68
|
if (v.type === TypeEnum.data) {
|
|
72
69
|
return {
|
|
@@ -103,9 +100,7 @@ var Sort = function Sort(props) {
|
|
|
103
100
|
var node = e.currentTarget || e.target;
|
|
104
101
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
105
102
|
var data = getColumns();
|
|
106
|
-
|
|
107
|
-
var selectedSort = {}; // {tableAlias: [columnName, columnName]}
|
|
108
|
-
//@ts-ignore
|
|
103
|
+
var selectedSort = {};
|
|
109
104
|
newMeta[index].sort.forEach(function (v) {
|
|
110
105
|
v.expression.forEach(function (vv) {
|
|
111
106
|
if (vv.type === AtomsTypeEnum.FIELD) {
|
|
@@ -141,59 +136,6 @@ var Sort = function Sort(props) {
|
|
|
141
136
|
expression: fields,
|
|
142
137
|
sort: SortEnum.asc
|
|
143
138
|
}]);
|
|
144
|
-
// let { table, name, tableId, tableUuid, id, alias, sql } = record;
|
|
145
|
-
// if (alias === SummarizeAlias) {
|
|
146
|
-
// let aliasColumns = (sql as string)?.split(' AS ')?.[1] || '';
|
|
147
|
-
// if (store.metaList[groupIndex].list[index - 1].type === TypeEnum.summarize) {
|
|
148
|
-
// //@ts-ignore
|
|
149
|
-
// newMeta[index].sort = [
|
|
150
|
-
// //@ts-ignore
|
|
151
|
-
// ...newMeta[index].sort,
|
|
152
|
-
// {
|
|
153
|
-
// table,
|
|
154
|
-
// tableId,
|
|
155
|
-
// tableUuid,
|
|
156
|
-
// id,
|
|
157
|
-
// alias,
|
|
158
|
-
// name,
|
|
159
|
-
// sort: SortEnum.asc,
|
|
160
|
-
// sql: aliasColumns,
|
|
161
|
-
// },
|
|
162
|
-
// ];
|
|
163
|
-
// } else {
|
|
164
|
-
// //@ts-ignore
|
|
165
|
-
// newMeta[index].sort = [
|
|
166
|
-
// //@ts-ignore
|
|
167
|
-
// ...newMeta[index].sort,
|
|
168
|
-
// {
|
|
169
|
-
// table,
|
|
170
|
-
// id,
|
|
171
|
-
// tableId,
|
|
172
|
-
// tableUuid,
|
|
173
|
-
// alias,
|
|
174
|
-
// name,
|
|
175
|
-
// sort: SortEnum.asc,
|
|
176
|
-
// sql: `${SummarizeAlias}.${aliasColumns}`,
|
|
177
|
-
// },
|
|
178
|
-
// ];
|
|
179
|
-
// }
|
|
180
|
-
// } else {
|
|
181
|
-
// //@ts-ignore
|
|
182
|
-
// newMeta[index].sort = [
|
|
183
|
-
// //@ts-ignore
|
|
184
|
-
// ...newMeta[index].sort,
|
|
185
|
-
// {
|
|
186
|
-
// table,
|
|
187
|
-
// tableId,
|
|
188
|
-
// tableUuid,
|
|
189
|
-
// id,
|
|
190
|
-
// alias,
|
|
191
|
-
// name,
|
|
192
|
-
// sort: SortEnum.asc,
|
|
193
|
-
// sql: `${alias}.${name}`,
|
|
194
|
-
// },
|
|
195
|
-
// ];
|
|
196
|
-
// }
|
|
197
139
|
store.setMeta(newMeta, groupIndex);
|
|
198
140
|
store.setPopup({
|
|
199
141
|
visible: false
|
|
@@ -204,7 +146,6 @@ var Sort = function Sort(props) {
|
|
|
204
146
|
}
|
|
205
147
|
function handleSort(itemIndex) {
|
|
206
148
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
207
|
-
//@ts-ignore
|
|
208
149
|
newMeta[index].sort = sort.map(function (v, i) {
|
|
209
150
|
if (i === itemIndex) {
|
|
210
151
|
return _objectSpread(_objectSpread({}, v), {}, {
|
|
@@ -218,7 +159,6 @@ var Sort = function Sort(props) {
|
|
|
218
159
|
function delSortColumn(e, itemIndex) {
|
|
219
160
|
e.stopPropagation();
|
|
220
161
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
221
|
-
//@ts-ignore
|
|
222
162
|
newMeta[index].sort = sort.filter(function (_, i) {
|
|
223
163
|
return i !== itemIndex;
|
|
224
164
|
});
|
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
import { MetaSummarize } from '../../../store/types';
|
|
2
|
-
import { ColumnType } from '../../dialog/select-join-column';
|
|
3
|
-
export type ValueType = ColumnType & {
|
|
4
|
-
condition: string;
|
|
5
|
-
quotes: string;
|
|
6
|
-
};
|
|
7
2
|
interface PropsType {
|
|
8
3
|
meta: MetaSummarize;
|
|
9
4
|
groupIndex: number;
|
|
@@ -1,21 +1,153 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
3
|
+
import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
|
|
2
4
|
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
3
5
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
6
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
7
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
5
|
-
import { jsx as _jsx,
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
9
|
+
import { useState } from 'react';
|
|
6
10
|
import cx from 'classnames';
|
|
7
11
|
import { __ } from '../../../locale';
|
|
8
12
|
import { findIndex, getHelper } from '../../../utils';
|
|
9
|
-
import { TypeEnum,
|
|
13
|
+
import { TypeEnum, SQL_COLUMN_TYPE } from '../../../store/enum';
|
|
10
14
|
import { MetaSummarize_Enum, AtomsTypeEnum, ChangeType } from '../../../store/types';
|
|
11
|
-
import SelectJoinColumn from '../../dialog/select-join-column';
|
|
12
15
|
import { Tooltip, Button, Modal, Input, Toast } from '@gingkoo/pandora';
|
|
13
16
|
import { uuidv4, getAlias } from '../../../utils/helper';
|
|
14
17
|
import { changeFieldAlias, isValidSQLAlias, isError } from '../../../utils';
|
|
15
18
|
import ItemName from '../components/item-name';
|
|
16
19
|
import { AddIcon, CloseIcon } from '../../icons';
|
|
20
|
+
import FormulaList from '../../dialog/formula-list';
|
|
17
21
|
import { useStore } from '../../../hooks/use-provider';
|
|
18
22
|
import cloneDeep from 'lodash/cloneDeep';
|
|
23
|
+
import { summarizeByToSql } from '../../../store/helper';
|
|
24
|
+
var _getSummaryText = function getSummaryText() {
|
|
25
|
+
var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
26
|
+
var itemToText = function itemToText(item) {
|
|
27
|
+
if (!item) return '';
|
|
28
|
+
if (item.quotes) return item.quotes;
|
|
29
|
+
if (item.fieldName) return item.fieldAlias || item.fieldName;
|
|
30
|
+
if (item.type === AtomsTypeEnum.FORMULA) {
|
|
31
|
+
var argsText = (item.args || []).map(function (arg) {
|
|
32
|
+
return _getSummaryText((arg === null || arg === void 0 ? void 0 : arg.list) || []);
|
|
33
|
+
}).filter(Boolean).join(', ');
|
|
34
|
+
return "".concat(item.name || '').concat(argsText ? "(".concat(argsText, ")") : '').trim();
|
|
35
|
+
}
|
|
36
|
+
if (item.type === AtomsTypeEnum.EXPRESSION) {
|
|
37
|
+
var lhs = _getSummaryText(item.lhs || []);
|
|
38
|
+
var rhs = _getSummaryText(item.rhs || []);
|
|
39
|
+
return [lhs, item.condition, rhs].filter(Boolean).join(' ').trim();
|
|
40
|
+
}
|
|
41
|
+
if (item.type === AtomsTypeEnum.AND_OR) {
|
|
42
|
+
return "".concat(item.operator || 'and', " ( ").concat(_getSummaryText(item.list || []), " )").replace(/\s+/g, ' ').trim();
|
|
43
|
+
}
|
|
44
|
+
if (item.type === AtomsTypeEnum.CASE_WHEN) {
|
|
45
|
+
return item.quotes || 'case when';
|
|
46
|
+
}
|
|
47
|
+
if (Array.isArray(item.val)) return item.val.join(', ');
|
|
48
|
+
return item.val || '';
|
|
49
|
+
};
|
|
50
|
+
return list.map(function (item) {
|
|
51
|
+
return itemToText(item);
|
|
52
|
+
}).filter(Boolean).join(' ').replace(/\s+/g, ' ').trim();
|
|
53
|
+
};
|
|
54
|
+
var SQL_ALIAS_MAX_LENGTH = 30;
|
|
55
|
+
var sanitizeAliasPart = function sanitizeAliasPart() {
|
|
56
|
+
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
57
|
+
return value.replace(/[^a-zA-Z0-9_]/g, '_').replace(/_+/g, '_').replace(/^_+|_+$/g, '');
|
|
58
|
+
};
|
|
59
|
+
var buildAutoGroupByAlias = function buildAutoGroupByAlias(tableAlias, fieldName, itemIndex) {
|
|
60
|
+
var fallbackAlias = "group_by_".concat(itemIndex + 1);
|
|
61
|
+
var aliasPrefix = sanitizeAliasPart(tableAlias);
|
|
62
|
+
var aliasField = sanitizeAliasPart(fieldName);
|
|
63
|
+
var autoAlias = (aliasPrefix && aliasField ? "".concat(aliasPrefix, "__").concat(aliasField) : aliasField || aliasPrefix) || fallbackAlias;
|
|
64
|
+
if (!/^[a-zA-Z]/.test(autoAlias)) {
|
|
65
|
+
autoAlias = "a_".concat(autoAlias.replace(/^[^a-zA-Z]+/, ''));
|
|
66
|
+
}
|
|
67
|
+
if (!/^[a-zA-Z]/.test(autoAlias)) {
|
|
68
|
+
autoAlias = fallbackAlias;
|
|
69
|
+
}
|
|
70
|
+
if (autoAlias.length > SQL_ALIAS_MAX_LENGTH) {
|
|
71
|
+
var uniqueSuffix = "_".concat(itemIndex + 1);
|
|
72
|
+
var maxBaseLength = Math.max(1, SQL_ALIAS_MAX_LENGTH - uniqueSuffix.length);
|
|
73
|
+
autoAlias = "".concat(autoAlias.slice(0, maxBaseLength)).concat(uniqueSuffix);
|
|
74
|
+
}
|
|
75
|
+
return autoAlias.slice(0, SQL_ALIAS_MAX_LENGTH);
|
|
76
|
+
};
|
|
77
|
+
var GroupByEditor = function GroupByEditor(_ref) {
|
|
78
|
+
var data = _ref.data,
|
|
79
|
+
value = _ref.value,
|
|
80
|
+
onChange = _ref.onChange;
|
|
81
|
+
var _useState = useState(function () {
|
|
82
|
+
if (Array.isArray(value.atoms) && value.atoms.length) {
|
|
83
|
+
return value.atoms;
|
|
84
|
+
}
|
|
85
|
+
if (value.name) {
|
|
86
|
+
var fieldAtom = {
|
|
87
|
+
fieldName: value.name,
|
|
88
|
+
fieldNameZh: value.name_zh || '',
|
|
89
|
+
fieldAlias: '',
|
|
90
|
+
fieldUuid: uuidv4('field'),
|
|
91
|
+
fieldId: value.id || value.fieldId || '',
|
|
92
|
+
tableName: value.table || '',
|
|
93
|
+
tableNameZh: '',
|
|
94
|
+
tableId: value.tableId || '',
|
|
95
|
+
tableAlias: value.alias || '',
|
|
96
|
+
tableUuid: value.tableUuid || '',
|
|
97
|
+
datasourceName: value.datasourceName || '',
|
|
98
|
+
datasourceId: value.datasourceId || '',
|
|
99
|
+
type: AtomsTypeEnum.FIELD
|
|
100
|
+
};
|
|
101
|
+
return [fieldAtom];
|
|
102
|
+
}
|
|
103
|
+
return [];
|
|
104
|
+
}),
|
|
105
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
106
|
+
atoms = _useState2[0],
|
|
107
|
+
setAtoms = _useState2[1];
|
|
108
|
+
return _jsxs("div", {
|
|
109
|
+
className: 'Sqb-SelectSummarize-formula',
|
|
110
|
+
children: [_jsx("div", {
|
|
111
|
+
className: 'back-title',
|
|
112
|
+
children: _jsx("div", {
|
|
113
|
+
children: _jsx("h3", {
|
|
114
|
+
children: __('SqlQueryBuilder.by')
|
|
115
|
+
})
|
|
116
|
+
})
|
|
117
|
+
}), _jsx("div", {
|
|
118
|
+
className: 'Sqb-SelectSummarize-formula-body',
|
|
119
|
+
children: _jsx("div", {
|
|
120
|
+
className: 'Sqb-item',
|
|
121
|
+
children: _jsx("div", {
|
|
122
|
+
className: 'Sqb-item--content',
|
|
123
|
+
children: _jsx(FormulaList, {
|
|
124
|
+
value: atoms,
|
|
125
|
+
data: data,
|
|
126
|
+
exitData: data,
|
|
127
|
+
enableCopy: false,
|
|
128
|
+
parentPopupChannel: 'secondary',
|
|
129
|
+
onChange: function onChange(nextValue) {
|
|
130
|
+
setAtoms(nextValue);
|
|
131
|
+
}
|
|
132
|
+
})
|
|
133
|
+
})
|
|
134
|
+
})
|
|
135
|
+
}), _jsx("div", {
|
|
136
|
+
className: 'Sqb-SelectSummarize-formula-footer',
|
|
137
|
+
children: _jsx(Button, {
|
|
138
|
+
primary: true,
|
|
139
|
+
disabled: !atoms.length,
|
|
140
|
+
onClick: function onClick() {
|
|
141
|
+
onChange(_objectSpread(_objectSpread({}, value), {}, {
|
|
142
|
+
atoms: atoms,
|
|
143
|
+
quotes: _getSummaryText(atoms)
|
|
144
|
+
}));
|
|
145
|
+
},
|
|
146
|
+
children: "\u786E\u5B9A"
|
|
147
|
+
})
|
|
148
|
+
})]
|
|
149
|
+
});
|
|
150
|
+
};
|
|
19
151
|
var GroupBy = function GroupBy(props) {
|
|
20
152
|
var meta = props.meta,
|
|
21
153
|
groupIndex = props.groupIndex;
|
|
@@ -32,8 +164,9 @@ var GroupBy = function GroupBy(props) {
|
|
|
32
164
|
if (ExistAboveGroupBy) {
|
|
33
165
|
var _prevGroupBy$group, _prevGroupBy$by;
|
|
34
166
|
var _data = {
|
|
35
|
-
|
|
36
|
-
|
|
167
|
+
name: prevGroupBy.alias,
|
|
168
|
+
id: prevGroupBy.alias,
|
|
169
|
+
name_zh: prevGroupBy.alias,
|
|
37
170
|
tableUuid: prevGroupBy.tableUuid || uuidv4('table'),
|
|
38
171
|
alias: prevGroupBy.alias,
|
|
39
172
|
columns: []
|
|
@@ -46,7 +179,6 @@ var GroupBy = function GroupBy(props) {
|
|
|
46
179
|
name_zh: v.name_zh || v.quotes,
|
|
47
180
|
id: v.id || v.fieldId,
|
|
48
181
|
realName: ((_v$sql = v.sql) === null || _v$sql === void 0 || (_v$sql = _v$sql.split(' AS ')) === null || _v$sql === void 0 ? void 0 : _v$sql[1]) || '',
|
|
49
|
-
// name_zh: '',
|
|
50
182
|
database_type: (v === null || v === void 0 ? void 0 : v.database_type) || SQL_COLUMN_TYPE.FLOAT,
|
|
51
183
|
special_type: '',
|
|
52
184
|
select: true
|
|
@@ -61,7 +193,6 @@ var GroupBy = function GroupBy(props) {
|
|
|
61
193
|
name_zh: v.name_zh || v.quotes,
|
|
62
194
|
id: v.id || v.fieldId,
|
|
63
195
|
realName: ((_v$sql2 = v.sql) === null || _v$sql2 === void 0 || (_v$sql2 = _v$sql2.split(' AS ')) === null || _v$sql2 === void 0 ? void 0 : _v$sql2[1]) || '',
|
|
64
|
-
// name_zh: '',
|
|
65
196
|
database_type: (v === null || v === void 0 ? void 0 : v.database_type) || SQL_COLUMN_TYPE.FLOAT,
|
|
66
197
|
special_type: '',
|
|
67
198
|
select: true
|
|
@@ -71,20 +202,17 @@ var GroupBy = function GroupBy(props) {
|
|
|
71
202
|
data = [_data];
|
|
72
203
|
var joinData = prevList.filter(function (v) {
|
|
73
204
|
return v.type === TypeEnum.joinData;
|
|
74
|
-
})
|
|
75
|
-
// @ts-ignore
|
|
76
|
-
.filter(function (v) {
|
|
205
|
+
}).filter(function (v) {
|
|
77
206
|
return v && v.table2.name;
|
|
78
207
|
});
|
|
79
208
|
if (joinData.length) {
|
|
80
|
-
data = data.concat(
|
|
81
|
-
// @ts-ignore
|
|
82
|
-
joinData.map(function (v) {
|
|
209
|
+
data = data.concat(joinData.map(function (v) {
|
|
83
210
|
return {
|
|
211
|
+
name: v.table2.name,
|
|
212
|
+
id: v.table2.id,
|
|
213
|
+
name_zh: v.table2.name_zh || v.table2.name,
|
|
84
214
|
alias: v.table2.alias,
|
|
85
215
|
tableUuid: v.table2.tableUuid,
|
|
86
|
-
tableId: v.table2.id,
|
|
87
|
-
table: v.table2.name,
|
|
88
216
|
datasourceId: v.table2.datasourceId,
|
|
89
217
|
datasourceName: v.table2.datasourceName,
|
|
90
218
|
columns: v.columns
|
|
@@ -92,23 +220,24 @@ var GroupBy = function GroupBy(props) {
|
|
|
92
220
|
}));
|
|
93
221
|
}
|
|
94
222
|
} else {
|
|
95
|
-
// @ts-ignore
|
|
96
223
|
data = store.metaList[groupIndex].list.slice(0, index).map(function (v) {
|
|
97
224
|
if (v.type === TypeEnum.data) {
|
|
98
225
|
return {
|
|
226
|
+
name: v.table.name,
|
|
227
|
+
id: v.table.id,
|
|
228
|
+
name_zh: v.table.name_zh || v.table.name,
|
|
99
229
|
alias: v.table.alias,
|
|
100
|
-
table: v.table.name,
|
|
101
230
|
tableUuid: v.table.tableUuid,
|
|
102
|
-
tableId: v.table.id,
|
|
103
231
|
datasourceId: v.table.datasourceId,
|
|
104
232
|
datasourceName: v.table.datasourceName,
|
|
105
233
|
columns: v.columns
|
|
106
234
|
};
|
|
107
235
|
} else if (v.type === TypeEnum.joinData) {
|
|
108
236
|
return {
|
|
237
|
+
name: v.table2.name,
|
|
238
|
+
id: v.table2.id,
|
|
239
|
+
name_zh: v.table2.name_zh || v.table2.name,
|
|
109
240
|
alias: v.table2.alias,
|
|
110
|
-
table: v.table2.name,
|
|
111
|
-
tableId: v.table2.id,
|
|
112
241
|
tableUuid: v.table2.tableUuid,
|
|
113
242
|
datasourceId: v.table2.datasourceId,
|
|
114
243
|
datasourceName: v.table2.datasourceName,
|
|
@@ -116,11 +245,16 @@ var GroupBy = function GroupBy(props) {
|
|
|
116
245
|
};
|
|
117
246
|
} else {
|
|
118
247
|
return {
|
|
119
|
-
|
|
248
|
+
name: '',
|
|
249
|
+
id: '',
|
|
250
|
+
name_zh: '',
|
|
251
|
+
alias: '',
|
|
252
|
+
tableUuid: '',
|
|
253
|
+
columns: []
|
|
120
254
|
};
|
|
121
255
|
}
|
|
122
256
|
}).filter(function (v) {
|
|
123
|
-
return v.
|
|
257
|
+
return Boolean(v.name);
|
|
124
258
|
});
|
|
125
259
|
}
|
|
126
260
|
return data;
|
|
@@ -129,29 +263,14 @@ var GroupBy = function GroupBy(props) {
|
|
|
129
263
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
130
264
|
var data = getColumns();
|
|
131
265
|
var value = by[i];
|
|
132
|
-
store.
|
|
266
|
+
store.setPopup2({
|
|
133
267
|
visible: true,
|
|
134
268
|
node: e.currentTarget,
|
|
135
|
-
content: _jsx(
|
|
269
|
+
content: _jsx(GroupByEditor, {
|
|
136
270
|
data: data,
|
|
137
271
|
value: value,
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
// @ts-ignore
|
|
141
|
-
onGroup: function onGroup(data) {
|
|
142
|
-
// @ts-ignore
|
|
143
|
-
newMeta[index].by.splice(i, 1, data);
|
|
144
|
-
// @ts-ignore
|
|
145
|
-
newMeta[index].by = newMeta[index].by.map(function (v) {
|
|
146
|
-
var fieldAlias = "".concat(v.alias, "__").concat(v.name);
|
|
147
|
-
return _objectSpread(_objectSpread({}, v), {}, {
|
|
148
|
-
sql: "".concat(v.alias, ".").concat(v.realName || v.name),
|
|
149
|
-
fieldAlias: fieldAlias
|
|
150
|
-
});
|
|
151
|
-
});
|
|
152
|
-
// if (value.quotes !== data.quotes) {
|
|
153
|
-
// newMeta = newMeta.filter((_: MetaListType, _i: number) => _i <= index);
|
|
154
|
-
// }
|
|
272
|
+
onChange: function onChange(nextValue) {
|
|
273
|
+
newMeta[index].by.splice(i, 1, normalizeByRecord(nextValue, i, newMeta));
|
|
155
274
|
store.setMeta(newMeta, groupIndex, {
|
|
156
275
|
obj: newMeta[index].by,
|
|
157
276
|
type: ChangeType.by
|
|
@@ -180,36 +299,17 @@ var GroupBy = function GroupBy(props) {
|
|
|
180
299
|
quotes: '',
|
|
181
300
|
datasourceId: '',
|
|
182
301
|
datasourceName: '',
|
|
183
|
-
|
|
184
|
-
// column_id: '',
|
|
302
|
+
atoms: [],
|
|
185
303
|
summarizeType: MetaSummarize_Enum.BY
|
|
186
304
|
};
|
|
187
|
-
store.
|
|
305
|
+
store.setPopup2({
|
|
188
306
|
visible: true,
|
|
189
307
|
node: e.currentTarget,
|
|
190
|
-
content: _jsx(
|
|
308
|
+
content: _jsx(GroupByEditor, {
|
|
191
309
|
data: data,
|
|
192
310
|
value: value,
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
// @ts-ignore
|
|
196
|
-
onGroup: function onGroup(data) {
|
|
197
|
-
// @ts-ignore
|
|
198
|
-
newMeta[index].by.push(data);
|
|
199
|
-
// @ts-ignore
|
|
200
|
-
newMeta[index].by = newMeta[index].by.map(function (v) {
|
|
201
|
-
var _store$preProps;
|
|
202
|
-
var fieldAlias = "".concat(getAlias(v.alias, newMeta, ((_store$preProps = store.preProps) === null || _store$preProps === void 0 ? void 0 : _store$preProps.notExistsColumns) || []), "__").concat(v.name);
|
|
203
|
-
if (!isValidSQLAlias(fieldAlias)) {
|
|
204
|
-
Toast.warning(__('SqlQueryBuilder.aliasForRules'));
|
|
205
|
-
}
|
|
206
|
-
return _objectSpread(_objectSpread({}, v), {}, {
|
|
207
|
-
sql: "".concat(v.alias, ".").concat(v.realName || v.name),
|
|
208
|
-
fieldAlias: v.fieldAlias || fieldAlias,
|
|
209
|
-
fieldUuid: uuidv4('field'),
|
|
210
|
-
summarizeType: MetaSummarize_Enum.BY
|
|
211
|
-
});
|
|
212
|
-
});
|
|
311
|
+
onChange: function onChange(nextValue) {
|
|
312
|
+
newMeta[index].by.push(normalizeByRecord(nextValue, newMeta[index].by.length, newMeta));
|
|
213
313
|
store.setMeta(newMeta, groupIndex, {
|
|
214
314
|
obj: newMeta[index].by,
|
|
215
315
|
type: ChangeType.by
|
|
@@ -223,15 +323,13 @@ var GroupBy = function GroupBy(props) {
|
|
|
223
323
|
e.stopPropagation();
|
|
224
324
|
closePopup();
|
|
225
325
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
226
|
-
// @ts-ignore
|
|
227
326
|
newMeta[index].by = by.filter(function (_, i) {
|
|
228
327
|
return i !== itemId;
|
|
229
328
|
});
|
|
230
|
-
// newMeta = newMeta.filter((_: MetaListType, _i: number) => _i <= index);
|
|
231
329
|
store.setMeta(newMeta, groupIndex);
|
|
232
330
|
}
|
|
233
331
|
function closePopup() {
|
|
234
|
-
store.
|
|
332
|
+
store.setPopup2({
|
|
235
333
|
visible: false
|
|
236
334
|
});
|
|
237
335
|
}
|
|
@@ -239,7 +337,6 @@ var GroupBy = function GroupBy(props) {
|
|
|
239
337
|
var fieldAlias = val || '';
|
|
240
338
|
Modal.confirm({
|
|
241
339
|
title: __('SqlQueryBuilder.alias'),
|
|
242
|
-
// 设置别名
|
|
243
340
|
content: _jsx(Input, {
|
|
244
341
|
defaultValue: fieldAlias,
|
|
245
342
|
onChange: function onChange(val) {
|
|
@@ -247,7 +344,7 @@ var GroupBy = function GroupBy(props) {
|
|
|
247
344
|
}
|
|
248
345
|
}),
|
|
249
346
|
onOk: function () {
|
|
250
|
-
var _onOk = _asyncToGenerator(
|
|
347
|
+
var _onOk = _asyncToGenerator(_regeneratorRuntime.mark(function _callee() {
|
|
251
348
|
var newMeta;
|
|
252
349
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
253
350
|
while (1) switch (_context.prev = _context.next) {
|
|
@@ -259,9 +356,9 @@ var GroupBy = function GroupBy(props) {
|
|
|
259
356
|
Toast.warning(__('SqlQueryBuilder.aliasForRules'));
|
|
260
357
|
return _context.abrupt("return", false);
|
|
261
358
|
case 1:
|
|
262
|
-
newMeta = store.metaList[groupIndex].list.slice();
|
|
263
|
-
newMeta[index].by[i].sql = newMeta[index].by[i].sql.split('AS ')[0] + "AS ".concat(fieldAlias); //修改sql
|
|
359
|
+
newMeta = store.metaList[groupIndex].list.slice();
|
|
264
360
|
newMeta[index].by[i].fieldAlias = fieldAlias;
|
|
361
|
+
newMeta[index].by[i].sql = summarizeByToSql(newMeta[index].by[i]);
|
|
265
362
|
newMeta = changeFieldAlias(newMeta, newMeta[index].by[i]);
|
|
266
363
|
store.setMeta(newMeta, groupIndex, {
|
|
267
364
|
obj: newMeta[index].by,
|
|
@@ -284,15 +381,11 @@ var GroupBy = function GroupBy(props) {
|
|
|
284
381
|
var _getColumns = function _getColumns() {
|
|
285
382
|
return getColumns().map(function (v) {
|
|
286
383
|
return _objectSpread(_objectSpread({}, v), {}, {
|
|
287
|
-
|
|
288
|
-
id: v.tableId,
|
|
289
|
-
name_zh: '',
|
|
384
|
+
name_zh: v.name_zh || '',
|
|
290
385
|
tableUuid: v.tableUuid,
|
|
291
386
|
alias: v.alias,
|
|
292
|
-
// 线上的都为空,默认会标红。 等统一格式后可隐藏
|
|
293
387
|
datasourceName: '',
|
|
294
|
-
|
|
295
|
-
datasourceId: '' // 数据源id
|
|
388
|
+
datasourceId: ''
|
|
296
389
|
});
|
|
297
390
|
});
|
|
298
391
|
};
|
|
@@ -300,36 +393,105 @@ var GroupBy = function GroupBy(props) {
|
|
|
300
393
|
var _v = cloneDeep(v);
|
|
301
394
|
return _objectSpread(_objectSpread({}, _v), {}, {
|
|
302
395
|
fieldName: v.name,
|
|
303
|
-
// 字段名
|
|
304
396
|
fieldNameZh: v.name_zh,
|
|
305
|
-
// 字段中文名
|
|
306
397
|
fieldAlias: v.fieldAlias,
|
|
307
|
-
// 别名
|
|
308
398
|
fieldUuid: v.fieldUuid,
|
|
309
|
-
// uuid
|
|
310
399
|
fieldId: v.fieldId,
|
|
311
|
-
// 字段id
|
|
312
400
|
tableName: v.table,
|
|
313
|
-
// 表名
|
|
314
401
|
tableNameZh: '',
|
|
315
402
|
tableId: v.tableId,
|
|
316
|
-
// 表名
|
|
317
403
|
tableAlias: v.alias,
|
|
318
|
-
// 别名
|
|
319
404
|
tableUuid: v.tableUuid,
|
|
320
|
-
// 表唯一标识
|
|
321
|
-
// 线上的都为空,默认会标红。 等统一格式后可隐藏
|
|
322
405
|
datasourceName: '',
|
|
323
|
-
// 数据源名
|
|
324
406
|
datasourceId: '',
|
|
325
|
-
// 数据源id
|
|
326
407
|
type: AtomsTypeEnum.FIELD
|
|
327
408
|
});
|
|
328
409
|
};
|
|
410
|
+
var _getFirstField = function getFirstField() {
|
|
411
|
+
var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
412
|
+
var _iterator = _createForOfIteratorHelper(list),
|
|
413
|
+
_step;
|
|
414
|
+
try {
|
|
415
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
416
|
+
var item = _step.value;
|
|
417
|
+
if (!item) continue;
|
|
418
|
+
if (item.type === AtomsTypeEnum.FIELD) return item;
|
|
419
|
+
if (item.type === AtomsTypeEnum.EXPRESSION) {
|
|
420
|
+
var found = _getFirstField([].concat(_toConsumableArray(item.lhs || []), _toConsumableArray(item.rhs || [])));
|
|
421
|
+
if (found) return found;
|
|
422
|
+
}
|
|
423
|
+
if (item.type === AtomsTypeEnum.FORMULA) {
|
|
424
|
+
var _found = (item.args || []).map(function (arg) {
|
|
425
|
+
return _getFirstField((arg === null || arg === void 0 ? void 0 : arg.list) || []);
|
|
426
|
+
}).find(Boolean);
|
|
427
|
+
if (_found) return _found;
|
|
428
|
+
}
|
|
429
|
+
if (item.type === AtomsTypeEnum.AND_OR) {
|
|
430
|
+
var _found2 = _getFirstField(item.list || []);
|
|
431
|
+
if (_found2) return _found2;
|
|
432
|
+
}
|
|
433
|
+
if (item.type === AtomsTypeEnum.CASE_WHEN) {
|
|
434
|
+
var _found3 = _getFirstField(item.caseValue || []) || (item.branches || []).map(function (branch) {
|
|
435
|
+
return _getFirstField([].concat(_toConsumableArray(branch.when || []), _toConsumableArray(branch.then || [])));
|
|
436
|
+
}).find(Boolean) || _getFirstField(item.elseValue || []);
|
|
437
|
+
if (_found3) return _found3;
|
|
438
|
+
}
|
|
439
|
+
if (item.type === AtomsTypeEnum.EXISTS || item.type === AtomsTypeEnum.NOT_EXISTS) {
|
|
440
|
+
var _found4 = _getFirstField(item.notExists || []);
|
|
441
|
+
if (_found4) return _found4;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
} catch (err) {
|
|
445
|
+
_iterator.e(err);
|
|
446
|
+
} finally {
|
|
447
|
+
_iterator.f();
|
|
448
|
+
}
|
|
449
|
+
return null;
|
|
450
|
+
};
|
|
451
|
+
var getAtomsValue = function getAtomsValue(record) {
|
|
452
|
+
var _record$atoms;
|
|
453
|
+
if ((_record$atoms = record.atoms) !== null && _record$atoms !== void 0 && _record$atoms.length) return record.atoms;
|
|
454
|
+
var field = getField(record);
|
|
455
|
+
return field.fieldName ? [field] : [];
|
|
456
|
+
};
|
|
457
|
+
var normalizeByRecord = function normalizeByRecord(record, itemIndex, metaList) {
|
|
458
|
+
var _store$preProps;
|
|
459
|
+
var atoms = getAtomsValue(record);
|
|
460
|
+
var firstField = _getFirstField(atoms);
|
|
461
|
+
var nextRecord = _objectSpread(_objectSpread({}, record), {}, {
|
|
462
|
+
atoms: atoms.length ? atoms : undefined,
|
|
463
|
+
quotes: _getSummaryText(atoms) || record.quotes || record.name || '',
|
|
464
|
+
summarizeType: MetaSummarize_Enum.BY
|
|
465
|
+
});
|
|
466
|
+
if (firstField) {
|
|
467
|
+
nextRecord.table = firstField.tableName || nextRecord.table;
|
|
468
|
+
nextRecord.tableId = firstField.tableId || nextRecord.tableId;
|
|
469
|
+
nextRecord.tableUuid = firstField.tableUuid || nextRecord.tableUuid;
|
|
470
|
+
nextRecord.alias = firstField.tableAlias || nextRecord.alias;
|
|
471
|
+
nextRecord.name = firstField.fieldName || nextRecord.name;
|
|
472
|
+
nextRecord.name_zh = firstField.fieldNameZh || nextRecord.name_zh;
|
|
473
|
+
nextRecord.id = firstField.fieldId || nextRecord.id;
|
|
474
|
+
nextRecord.fieldId = firstField.fieldId || nextRecord.fieldId;
|
|
475
|
+
nextRecord.realName = firstField.fieldName || nextRecord.realName;
|
|
476
|
+
nextRecord.fieldUuid = firstField.fieldUuid || nextRecord.fieldUuid;
|
|
477
|
+
nextRecord.datasourceId = firstField.datasourceId || nextRecord.datasourceId;
|
|
478
|
+
nextRecord.datasourceName = firstField.datasourceName || nextRecord.datasourceName;
|
|
479
|
+
nextRecord.database_type = firstField.database_type || nextRecord.database_type;
|
|
480
|
+
}
|
|
481
|
+
var defaultFieldAlias = firstField !== null && firstField !== void 0 && firstField.fieldName ? buildAutoGroupByAlias(getAlias(firstField.tableAlias || nextRecord.alias, metaList, ((_store$preProps = store.preProps) === null || _store$preProps === void 0 ? void 0 : _store$preProps.notExistsColumns) || []), firstField.fieldName, itemIndex) : "group_by_".concat(itemIndex + 1);
|
|
482
|
+
nextRecord.fieldAlias = nextRecord.fieldAlias || defaultFieldAlias;
|
|
483
|
+
nextRecord.fieldUuid = nextRecord.fieldUuid || uuidv4('field');
|
|
484
|
+
nextRecord.sql = summarizeByToSql(nextRecord);
|
|
485
|
+
if (!isValidSQLAlias(nextRecord.fieldAlias)) {
|
|
486
|
+
Toast.warning(__('SqlQueryBuilder.aliasForRules'));
|
|
487
|
+
}
|
|
488
|
+
return nextRecord;
|
|
489
|
+
};
|
|
329
490
|
return _jsxs(_Fragment, {
|
|
330
491
|
children: [meta.by.map(function (v, i) {
|
|
492
|
+
var atomsValue = getAtomsValue(v);
|
|
331
493
|
return _jsx(ItemName, {
|
|
332
|
-
isError: isError(getField(v), _getColumns()),
|
|
494
|
+
isError: isError(atomsValue.length ? atomsValue : getField(v), _getColumns()),
|
|
333
495
|
children: _jsxs("div", {
|
|
334
496
|
className: "Sqb-TableName green-name",
|
|
335
497
|
onClick: function onClick(e) {
|