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