@gingkoo/pandora-metabase 1.0.94 → 1.0.96
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/components/dialog/expression/index.js +17 -10
- package/lib/cjs/components/dialog/formula/utils.js +3 -0
- package/lib/cjs/components/dialog/formula-list/index.js +1 -1
- package/lib/cjs/components/metabase/index.js +1 -1
- package/lib/cjs/components/modules/join-data.js +45 -38
- package/lib/cjs/hooks/patch.d.ts +4 -6
- package/lib/cjs/hooks/patch.js +77 -554
- package/lib/cjs/hooks/patch2.d.ts +7 -0
- package/lib/cjs/hooks/patch2.js +600 -0
- package/lib/cjs/hooks/use-state.js +18 -10
- package/lib/cjs/index.js +4 -4
- package/lib/cjs/types.d.ts +1 -1
- package/lib/cjs/utils.d.ts +2 -1
- package/lib/cjs/utils.js +20 -4
- package/lib/es/components/dialog/expression/index.js +17 -10
- package/lib/es/components/dialog/formula/utils.js +3 -0
- package/lib/es/components/dialog/formula-list/index.js +1 -1
- package/lib/es/components/metabase/index.js +1 -1
- package/lib/es/components/modules/join-data.js +17 -10
- package/lib/es/hooks/patch.d.ts +4 -6
- package/lib/es/hooks/patch.js +75 -552
- package/lib/es/hooks/patch2.d.ts +7 -0
- package/lib/es/hooks/patch2.js +594 -0
- package/lib/es/hooks/use-state.js +18 -10
- package/lib/es/index.js +4 -4
- package/lib/es/types.d.ts +1 -1
- package/lib/es/utils.d.ts +2 -1
- package/lib/es/utils.js +19 -3
- package/package.json +1 -1
|
@@ -0,0 +1,594 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
+
import { uuidv4 } from '../utils/helper';
|
|
3
|
+
import { buildSqlQuery } from '../utils';
|
|
4
|
+
import { AtomsTypeEnum } from '../store/types';
|
|
5
|
+
import { TypeEnum } from '../store/enum';
|
|
6
|
+
export var dataPatch = function dataPatch(newMeta) {
|
|
7
|
+
// let item = newMeta.expressions?.[0] || {};
|
|
8
|
+
// if (item?.type && Object.values(AtomsTypeEnum).includes(item.type)) {
|
|
9
|
+
// if (item.type === AtomsTypeEnum.EXPRESSION && item.lhs) {
|
|
10
|
+
// return newMeta;
|
|
11
|
+
// }
|
|
12
|
+
// }
|
|
13
|
+
newMeta.subquery = _patchMetas(newMeta.subquery);
|
|
14
|
+
return newMeta;
|
|
15
|
+
};
|
|
16
|
+
export var joinDataPatch = function joinDataPatch(newMeta) {
|
|
17
|
+
var _fields, _fields2, _fields3, _fields4, _newMeta$expressions;
|
|
18
|
+
// let item = newMeta.expressions?.[0] || {};
|
|
19
|
+
// if (item?.type && Object.values(AtomsTypeEnum).includes(item.type)) {
|
|
20
|
+
// if (
|
|
21
|
+
// (item.type === AtomsTypeEnum.EXPRESSION || item.type === AtomsTypeEnum.JOIN_DEFAULT) &&
|
|
22
|
+
// item.lhs
|
|
23
|
+
// ) {
|
|
24
|
+
// return newMeta;
|
|
25
|
+
// }
|
|
26
|
+
// if (item.type === AtomsTypeEnum.EXISTS && !item.tableUuid) {
|
|
27
|
+
// return newMeta;
|
|
28
|
+
// }
|
|
29
|
+
// if (item.type === AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
|
|
30
|
+
// return newMeta;
|
|
31
|
+
// }
|
|
32
|
+
// if (item.type === AtomsTypeEnum.FIELD && item.fieldName) {
|
|
33
|
+
// return newMeta;
|
|
34
|
+
// }
|
|
35
|
+
// }
|
|
36
|
+
// if (
|
|
37
|
+
// newMeta.expressions?.[0]?.type &&
|
|
38
|
+
// Object.values(AtomsTypeEnum).includes(newMeta.expressions[0].type)
|
|
39
|
+
// ) {
|
|
40
|
+
// return newMeta;
|
|
41
|
+
// }
|
|
42
|
+
var fields1 = newMeta.table1.fields || [];
|
|
43
|
+
var fields2 = newMeta.table2.fields || [];
|
|
44
|
+
// 处理老字段
|
|
45
|
+
var field1 = {
|
|
46
|
+
fieldAlias: newMeta.table1.fieldAlias || newMeta.table1.column || newMeta.table1.name,
|
|
47
|
+
fieldUuid: newMeta.table1.fieldUuid || uuidv4('field'),
|
|
48
|
+
fieldId: newMeta.table1.fieldId,
|
|
49
|
+
fieldNameZh: newMeta.table1.name_zh,
|
|
50
|
+
fieldName: newMeta.table1.fieldName || newMeta.table1.name
|
|
51
|
+
// quotes: newMeta.table1.quotes || newMeta.table1.column,
|
|
52
|
+
// tableUuid: newMeta.table1.tableUuid,
|
|
53
|
+
// tableId: newMeta.table1.datasourceId,
|
|
54
|
+
// tableAlias: newMeta.table1.alias,
|
|
55
|
+
};
|
|
56
|
+
var field2 = {
|
|
57
|
+
fieldAlias: newMeta.table2.fieldAlias || newMeta.table2.column || newMeta.table2.name,
|
|
58
|
+
fieldUuid: newMeta.table2.fieldUuid || uuidv4('field'),
|
|
59
|
+
fieldId: newMeta.table2.fieldId,
|
|
60
|
+
fieldNameZh: newMeta.table2.name_zh,
|
|
61
|
+
fieldName: newMeta.table2.fieldName || newMeta.table2.name
|
|
62
|
+
};
|
|
63
|
+
// 处理多选
|
|
64
|
+
if (field1.fieldAlias && ((_fields = fields1) === null || _fields === void 0 ? void 0 : _fields.length) < 1) {
|
|
65
|
+
fields1 = [_objectSpread(_objectSpread({}, field1), {}, {
|
|
66
|
+
// quotes: field1.quotes,
|
|
67
|
+
fieldUuid: field1.fieldUuid,
|
|
68
|
+
fieldAlias: field1.fieldAlias,
|
|
69
|
+
fieldId: field1.fieldId
|
|
70
|
+
// fieldNameZh: newMeta.table1.name_zh,
|
|
71
|
+
// fieldName: newMeta.table1.fieldName || newMeta.table1.name,
|
|
72
|
+
// tableAlias: newMeta.table1.alias,
|
|
73
|
+
// tableId: newMeta.table1.id,
|
|
74
|
+
// tableName: newMeta.table1.name,
|
|
75
|
+
// tableNameZh: newMeta.table1.name_zh,
|
|
76
|
+
// tableUuid: newMeta.table1.tableUuid,
|
|
77
|
+
// datasourceName: newMeta.table1.datasourceName, // 数据源名
|
|
78
|
+
// datasourceId: newMeta.table1.datasourceId, // 数据源id
|
|
79
|
+
})];
|
|
80
|
+
}
|
|
81
|
+
if (field2.fieldAlias && ((_fields2 = fields2) === null || _fields2 === void 0 ? void 0 : _fields2.length) < 1) {
|
|
82
|
+
fields2 = [_objectSpread(_objectSpread({}, field2), {}, {
|
|
83
|
+
// quotes: field2.quotes,
|
|
84
|
+
fieldUuid: field2.fieldUuid,
|
|
85
|
+
fieldAlias: field2.fieldAlias,
|
|
86
|
+
fieldId: field2.fieldId
|
|
87
|
+
// fieldNameZh: newMeta.table2.name_zh,
|
|
88
|
+
// fieldName: newMeta.table2.fieldName || newMeta.table2.name,
|
|
89
|
+
// tableAlias: newMeta.table2.alias,
|
|
90
|
+
// tableId: newMeta.table2.id,
|
|
91
|
+
// tableName: newMeta.table2.name,
|
|
92
|
+
// tableNameZh: newMeta.table2.name_zh,
|
|
93
|
+
// tableUuid: newMeta.table2.tableUuid,
|
|
94
|
+
// datasourceName: newMeta.table2.datasourceName, // 数据源名
|
|
95
|
+
// datasourceId: newMeta.table2.datasourceId, // 数据源id
|
|
96
|
+
})];
|
|
97
|
+
}
|
|
98
|
+
// newMeta.table1 = {
|
|
99
|
+
// ...newMeta.table1,
|
|
100
|
+
// ...field1,
|
|
101
|
+
// tableUuid: newMeta.table1.tableUuid || uuidv4('table'),
|
|
102
|
+
// fields: fields1,
|
|
103
|
+
// };
|
|
104
|
+
// newMeta.table2 = {
|
|
105
|
+
// ...newMeta.table2,
|
|
106
|
+
// ...field2,
|
|
107
|
+
// tableUuid: newMeta.table2.tableUuid || uuidv4('table'),
|
|
108
|
+
// fields: fields2,
|
|
109
|
+
// };
|
|
110
|
+
var beforeExpressions = [];
|
|
111
|
+
if (((_fields3 = fields1) === null || _fields3 === void 0 ? void 0 : _fields3.length) > 0 || ((_fields4 = fields2) === null || _fields4 === void 0 ? void 0 : _fields4.length) > 0) {
|
|
112
|
+
beforeExpressions = [{
|
|
113
|
+
left_constant: '',
|
|
114
|
+
left_string: '',
|
|
115
|
+
operator: '等于',
|
|
116
|
+
left_fields: fields1 || [],
|
|
117
|
+
left_type: 'field',
|
|
118
|
+
right_constant: '',
|
|
119
|
+
right_string: '',
|
|
120
|
+
right_fields: fields2 || [],
|
|
121
|
+
right_type: 'field',
|
|
122
|
+
type: 'default' // 默认是字段模式
|
|
123
|
+
}];
|
|
124
|
+
}
|
|
125
|
+
var expressions = ((_newMeta$expressions = newMeta.expressions) === null || _newMeta$expressions === void 0 ? void 0 : _newMeta$expressions.map(function (v) {
|
|
126
|
+
var _left_fields, _right_fields;
|
|
127
|
+
var left_fields = v.left_fields || [];
|
|
128
|
+
var right_fields = v.right_fields || [];
|
|
129
|
+
// if (v.type !== 'default') {
|
|
130
|
+
// return v;
|
|
131
|
+
// }
|
|
132
|
+
// 先处理老数据的字段
|
|
133
|
+
var left_field = {
|
|
134
|
+
left_fieldAlias: v.left_fieldAlias || v.left_column,
|
|
135
|
+
left_fieldUuid: v.left_fieldUuid || uuidv4('field'),
|
|
136
|
+
left_quotes: v.left_quotes || v.left_column
|
|
137
|
+
};
|
|
138
|
+
var right_field = {
|
|
139
|
+
right_fieldAlias: v.right_fieldAlias || v.right_column,
|
|
140
|
+
right_fieldUuid: v.right_fieldUuid || uuidv4('field'),
|
|
141
|
+
right_quotes: v.right_quotes || v.right_column
|
|
142
|
+
};
|
|
143
|
+
// 再处理多选
|
|
144
|
+
if (left_field.left_fieldAlias && ((_left_fields = left_fields) === null || _left_fields === void 0 ? void 0 : _left_fields.length) < 1) {
|
|
145
|
+
left_fields = [{
|
|
146
|
+
fieldAlias: left_field.left_fieldAlias,
|
|
147
|
+
fieldUuid: left_field.left_fieldUuid,
|
|
148
|
+
quotes: left_field.left_quotes
|
|
149
|
+
// tableUuid: newMeta.table1.tableUuid,
|
|
150
|
+
// tableId: newMeta.table1.datasourceId,
|
|
151
|
+
// tableAlias: newMeta.table1.alias,
|
|
152
|
+
}];
|
|
153
|
+
}
|
|
154
|
+
if (right_field.right_fieldAlias && ((_right_fields = right_fields) === null || _right_fields === void 0 ? void 0 : _right_fields.length) < 1) {
|
|
155
|
+
right_fields = [{
|
|
156
|
+
fieldAlias: right_field.right_fieldAlias,
|
|
157
|
+
fieldUuid: right_field.right_fieldUuid,
|
|
158
|
+
quotes: right_field.right_quotes
|
|
159
|
+
// tableUuid: newMeta.table2.tableUuid,
|
|
160
|
+
// tableId: newMeta.table2.datasourceId,
|
|
161
|
+
// tableAlias: newMeta.table2.alias,
|
|
162
|
+
}];
|
|
163
|
+
}
|
|
164
|
+
return {
|
|
165
|
+
left_constant: v.left_constant || '',
|
|
166
|
+
left_string: v.left_string || '',
|
|
167
|
+
left_fields: left_fields,
|
|
168
|
+
left_type: v.left_type || '',
|
|
169
|
+
operator: v.operator || '',
|
|
170
|
+
right_constant: v.right_constant || '',
|
|
171
|
+
right_string: v.right_string || '',
|
|
172
|
+
right_fields: right_fields,
|
|
173
|
+
right_type: v.right_type || '',
|
|
174
|
+
type: v.type || 'default' // 默认是字段模式
|
|
175
|
+
};
|
|
176
|
+
})) || [];
|
|
177
|
+
var _expressions = beforeExpressions.concat(expressions);
|
|
178
|
+
var newExpressions = [];
|
|
179
|
+
_expressions === null || _expressions === void 0 || _expressions.map(function (v, i) {
|
|
180
|
+
var lhs = [];
|
|
181
|
+
var rhs = [];
|
|
182
|
+
if (v.left_type === 'string') {
|
|
183
|
+
lhs = [{
|
|
184
|
+
val: v.left_string,
|
|
185
|
+
type: AtomsTypeEnum.INPUT_STRING
|
|
186
|
+
}];
|
|
187
|
+
} else if (v.left_type === 'constant') {
|
|
188
|
+
lhs = [{
|
|
189
|
+
val: v.left_constant,
|
|
190
|
+
type: AtomsTypeEnum.CONSTANT
|
|
191
|
+
}];
|
|
192
|
+
} else {
|
|
193
|
+
var _v$left_fields;
|
|
194
|
+
lhs = (_v$left_fields = v.left_fields) === null || _v$left_fields === void 0 ? void 0 : _v$left_fields.map(function (vv) {
|
|
195
|
+
return _objectSpread({
|
|
196
|
+
fieldNameZh: newMeta.table1.name_zh,
|
|
197
|
+
fieldName: vv.fieldName || vv.quotes || vv.fieldAlias || newMeta.table1.fieldName || newMeta.table1.name,
|
|
198
|
+
tableAlias: newMeta.table1.alias,
|
|
199
|
+
tableId: newMeta.table1.id,
|
|
200
|
+
tableName: newMeta.table1.name,
|
|
201
|
+
tableNameZh: newMeta.table1.name_zh,
|
|
202
|
+
tableUuid: newMeta.table1.tableUuid,
|
|
203
|
+
datasourceName: newMeta.table1.datasourceName,
|
|
204
|
+
// 数据源名
|
|
205
|
+
datasourceId: newMeta.table1.datasourceId,
|
|
206
|
+
// 数据源id
|
|
207
|
+
type: AtomsTypeEnum.FIELD
|
|
208
|
+
}, vv);
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
if (v.right_type === 'string') {
|
|
212
|
+
rhs = [{
|
|
213
|
+
val: v.right_string,
|
|
214
|
+
type: AtomsTypeEnum.INPUT_STRING
|
|
215
|
+
}];
|
|
216
|
+
} else if (v.right_type === 'constant') {
|
|
217
|
+
rhs = [{
|
|
218
|
+
val: v.right_constant,
|
|
219
|
+
type: AtomsTypeEnum.CONSTANT
|
|
220
|
+
}];
|
|
221
|
+
} else {
|
|
222
|
+
var _v$right_fields;
|
|
223
|
+
rhs = (_v$right_fields = v.right_fields) === null || _v$right_fields === void 0 ? void 0 : _v$right_fields.map(function (vv) {
|
|
224
|
+
return _objectSpread({
|
|
225
|
+
fieldNameZh: newMeta.table2.name_zh,
|
|
226
|
+
fieldName: vv.fieldName || vv.quotes || vv.fieldAlias || newMeta.table2.fieldName || newMeta.table2.name,
|
|
227
|
+
tableAlias: newMeta.table2.alias,
|
|
228
|
+
tableId: newMeta.table2.id,
|
|
229
|
+
tableName: newMeta.table2.name,
|
|
230
|
+
tableNameZh: newMeta.table2.name_zh,
|
|
231
|
+
tableUuid: newMeta.table2.tableUuid,
|
|
232
|
+
datasourceName: newMeta.table2.datasourceName,
|
|
233
|
+
// 数据源名
|
|
234
|
+
datasourceId: newMeta.table2.datasourceId,
|
|
235
|
+
// 数据源id
|
|
236
|
+
type: AtomsTypeEnum.FIELD
|
|
237
|
+
}, vv);
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
var item = {
|
|
241
|
+
lhs: lhs,
|
|
242
|
+
rhs: rhs,
|
|
243
|
+
// database_type: '',
|
|
244
|
+
condition: '',
|
|
245
|
+
// quotes: '',
|
|
246
|
+
type: AtomsTypeEnum.JOIN_DEFAULT
|
|
247
|
+
};
|
|
248
|
+
newExpressions.push(item);
|
|
249
|
+
if (_expressions.length - 1 > i) {
|
|
250
|
+
newExpressions.push({
|
|
251
|
+
val: 'AND',
|
|
252
|
+
type: AtomsTypeEnum.OPERATOR
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
return item;
|
|
256
|
+
});
|
|
257
|
+
// 清除table1中不用字段
|
|
258
|
+
delete newMeta.table1.fields;
|
|
259
|
+
// 清除table2中不用字段
|
|
260
|
+
delete newMeta.table2.fields;
|
|
261
|
+
newMeta.subquery = _patchMetas(newMeta.subquery);
|
|
262
|
+
newMeta.expressions = newExpressions;
|
|
263
|
+
return newMeta;
|
|
264
|
+
};
|
|
265
|
+
export var filterPatch = function filterPatch(newMeta) {
|
|
266
|
+
var _newMeta$filter;
|
|
267
|
+
// let item = newMeta.filter?.[0] || {};
|
|
268
|
+
// if (item?.type && Object.values(AtomsTypeEnum).includes(item.type)) {
|
|
269
|
+
// if (item.type === AtomsTypeEnum.EXPRESSION && item.lhs) {
|
|
270
|
+
// return newMeta;
|
|
271
|
+
// }
|
|
272
|
+
// if (item.type === AtomsTypeEnum.EXISTS && !item.tableUuid) {
|
|
273
|
+
// return newMeta;
|
|
274
|
+
// }
|
|
275
|
+
// if (item.type === AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
|
|
276
|
+
// return newMeta;
|
|
277
|
+
// }
|
|
278
|
+
// if (item.type === AtomsTypeEnum.FIELD && item.fieldName) {
|
|
279
|
+
// return newMeta;
|
|
280
|
+
// }
|
|
281
|
+
// }
|
|
282
|
+
var _filter = (_newMeta$filter = newMeta.filter) === null || _newMeta$filter === void 0 ? void 0 : _newMeta$filter.map(function (v) {
|
|
283
|
+
// 表达式
|
|
284
|
+
var tem;
|
|
285
|
+
if (typeof v === 'string') {
|
|
286
|
+
return {
|
|
287
|
+
val: v,
|
|
288
|
+
type: AtomsTypeEnum.OPERATOR
|
|
289
|
+
};
|
|
290
|
+
} else if (v.type === 'expression') {
|
|
291
|
+
var rhs;
|
|
292
|
+
if (v.valType === 'field') {
|
|
293
|
+
rhs = [{
|
|
294
|
+
fieldName: v.table2.name,
|
|
295
|
+
fieldNameZh: v.table2.name_zh,
|
|
296
|
+
fieldAlias: v.table2.fieldAlias,
|
|
297
|
+
fieldUuid: v.table2.fieldUuid,
|
|
298
|
+
fieldId: v.table2.id,
|
|
299
|
+
tableName: v.table2.table,
|
|
300
|
+
tableNameZh: '',
|
|
301
|
+
tableId: v.table2.tableId,
|
|
302
|
+
tableAlias: v.table2.alias,
|
|
303
|
+
tableUuid: v.table2.tableUuid,
|
|
304
|
+
datasourceName: v.table2.datasourceName,
|
|
305
|
+
datasourceId: v.table2.datasourceId,
|
|
306
|
+
type: AtomsTypeEnum.FIELD
|
|
307
|
+
}];
|
|
308
|
+
} else if (v.valType === 'constant') {
|
|
309
|
+
var _v$val;
|
|
310
|
+
rhs = [{
|
|
311
|
+
val: ((_v$val = v.val) === null || _v$val === void 0 ? void 0 : _v$val[0]) || '',
|
|
312
|
+
type: AtomsTypeEnum.CONSTANT
|
|
313
|
+
}];
|
|
314
|
+
} else {
|
|
315
|
+
var _v$val2;
|
|
316
|
+
if (((_v$val2 = v.val) === null || _v$val2 === void 0 ? void 0 : _v$val2.length) > 1) {
|
|
317
|
+
rhs = [{
|
|
318
|
+
val: v.val,
|
|
319
|
+
type: AtomsTypeEnum.INPUT_STRING_LIST
|
|
320
|
+
}];
|
|
321
|
+
} else {
|
|
322
|
+
var _v$val3;
|
|
323
|
+
rhs = [{
|
|
324
|
+
val: ((_v$val3 = v.val) === null || _v$val3 === void 0 ? void 0 : _v$val3[0]) || '',
|
|
325
|
+
type: AtomsTypeEnum.INPUT_STRING
|
|
326
|
+
}];
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
tem = {
|
|
330
|
+
lhs: [{
|
|
331
|
+
fieldName: v.name,
|
|
332
|
+
fieldNameZh: v.name_zh,
|
|
333
|
+
fieldAlias: v.fieldAlias || v.name,
|
|
334
|
+
fieldUuid: v.fieldUuid,
|
|
335
|
+
fieldId: v.id,
|
|
336
|
+
tableName: v.table,
|
|
337
|
+
tableNameZh: '',
|
|
338
|
+
tableId: v.tableId,
|
|
339
|
+
tableAlias: v.alias,
|
|
340
|
+
tableUuid: v.tableUuid,
|
|
341
|
+
datasourceName: v.datasourceName,
|
|
342
|
+
datasourceId: v.datasourceId,
|
|
343
|
+
type: AtomsTypeEnum.FIELD
|
|
344
|
+
}],
|
|
345
|
+
rhs: rhs,
|
|
346
|
+
database_type: v.database_type,
|
|
347
|
+
condition: v.condition,
|
|
348
|
+
quotes: v.quotes,
|
|
349
|
+
formula: v.formula,
|
|
350
|
+
type: AtomsTypeEnum.EXPRESSION
|
|
351
|
+
};
|
|
352
|
+
return tem;
|
|
353
|
+
} else if (v.type === 'notExists') {
|
|
354
|
+
var notExists = _patchMetas(v.notExists);
|
|
355
|
+
return {
|
|
356
|
+
notExists: notExists,
|
|
357
|
+
quotes: buildSqlQuery(notExists, v.type),
|
|
358
|
+
type: AtomsTypeEnum.NOT_EXISTS
|
|
359
|
+
};
|
|
360
|
+
} else if (v.type === 'exists') {
|
|
361
|
+
var _notExists = _patchMetas(v.notExists);
|
|
362
|
+
return {
|
|
363
|
+
notExists: _notExists,
|
|
364
|
+
quotes: buildSqlQuery(_notExists, v.type),
|
|
365
|
+
type: AtomsTypeEnum.EXISTS
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
return v;
|
|
369
|
+
});
|
|
370
|
+
newMeta.filter = _filter;
|
|
371
|
+
return newMeta;
|
|
372
|
+
};
|
|
373
|
+
export var customColumnPatch = function customColumnPatch(newMeta) {
|
|
374
|
+
var _newMeta$customColumn;
|
|
375
|
+
// let item = newMeta.customColumn?.[0]?.formulaList?.[0] || {};
|
|
376
|
+
// if (item?.type && Object.values(AtomsTypeEnum).includes(item.type)) {
|
|
377
|
+
// if (item.type === AtomsTypeEnum.EXPRESSION && item.lhs) {
|
|
378
|
+
// return newMeta;
|
|
379
|
+
// }
|
|
380
|
+
// if (item.type === AtomsTypeEnum.EXISTS && !item.tableUuid) {
|
|
381
|
+
// return newMeta;
|
|
382
|
+
// }
|
|
383
|
+
// if (item.type === AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
|
|
384
|
+
// return newMeta;
|
|
385
|
+
// }
|
|
386
|
+
// if (item.type === AtomsTypeEnum.FIELD && item.fieldName) {
|
|
387
|
+
// return newMeta;
|
|
388
|
+
// }
|
|
389
|
+
// }
|
|
390
|
+
newMeta.customColumn = (newMeta === null || newMeta === void 0 || (_newMeta$customColumn = newMeta.customColumn) === null || _newMeta$customColumn === void 0 ? void 0 : _newMeta$customColumn.map(function (v) {
|
|
391
|
+
var _formulaList = v.formulaList.map(function (formula) {
|
|
392
|
+
var tem = formula;
|
|
393
|
+
if (formula.type === 'expression') {
|
|
394
|
+
var rhs;
|
|
395
|
+
if (formula.expression.valType === 'field') {
|
|
396
|
+
rhs = [{
|
|
397
|
+
fieldName: formula.expression.table2.name,
|
|
398
|
+
fieldNameZh: formula.expression.table2.name_zh,
|
|
399
|
+
fieldAlias: formula.expression.table2.fieldAlias,
|
|
400
|
+
fieldUuid: formula.expression.table2.fieldUuid,
|
|
401
|
+
fieldId: formula.expression.table2.id,
|
|
402
|
+
tableName: formula.expression.table2.table,
|
|
403
|
+
tableNameZh: '',
|
|
404
|
+
tableId: formula.expression.table2.tableId,
|
|
405
|
+
tableAlias: formula.expression.table2.alias,
|
|
406
|
+
tableUuid: formula.expression.table2.tableUuid,
|
|
407
|
+
datasourceName: formula.expression.table2.datasourceName,
|
|
408
|
+
datasourceId: formula.expression.table2.datasourceId,
|
|
409
|
+
// quotes: formula.expression.table2.quotes,
|
|
410
|
+
type: AtomsTypeEnum.FIELD
|
|
411
|
+
}];
|
|
412
|
+
} else if (formula.expression.valType === 'constant') {
|
|
413
|
+
var _formula$expression$v;
|
|
414
|
+
rhs = [{
|
|
415
|
+
val: ((_formula$expression$v = formula.expression.val) === null || _formula$expression$v === void 0 ? void 0 : _formula$expression$v[0]) || '',
|
|
416
|
+
type: AtomsTypeEnum.CONSTANT
|
|
417
|
+
}];
|
|
418
|
+
} else {
|
|
419
|
+
var _formula$expression$v2;
|
|
420
|
+
if (((_formula$expression$v2 = formula.expression.val) === null || _formula$expression$v2 === void 0 ? void 0 : _formula$expression$v2.length) > 1) {
|
|
421
|
+
rhs = [{
|
|
422
|
+
val: formula.expression.val,
|
|
423
|
+
type: AtomsTypeEnum.INPUT_STRING_LIST
|
|
424
|
+
}];
|
|
425
|
+
} else {
|
|
426
|
+
var _formula$expression$v3;
|
|
427
|
+
rhs = [{
|
|
428
|
+
val: ((_formula$expression$v3 = formula.expression.val) === null || _formula$expression$v3 === void 0 ? void 0 : _formula$expression$v3[0]) || '',
|
|
429
|
+
type: AtomsTypeEnum.INPUT_STRING
|
|
430
|
+
}];
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
tem = {
|
|
434
|
+
lhs: [{
|
|
435
|
+
fieldName: formula.expression.name,
|
|
436
|
+
fieldNameZh: formula.expression.name_zh,
|
|
437
|
+
fieldAlias: formula.expression.fieldAlias || formula.expression.name,
|
|
438
|
+
fieldUuid: formula.expression.fieldUuid,
|
|
439
|
+
fieldId: formula.expression.id,
|
|
440
|
+
tableName: formula.expression.table,
|
|
441
|
+
tableNameZh: '',
|
|
442
|
+
tableId: formula.expression.tableId,
|
|
443
|
+
tableAlias: formula.expression.alias,
|
|
444
|
+
tableUuid: formula.expression.tableUuid,
|
|
445
|
+
datasourceName: formula.expression.datasourceName,
|
|
446
|
+
datasourceId: formula.expression.datasourceId,
|
|
447
|
+
// quotes: formula.expression.name,
|
|
448
|
+
type: AtomsTypeEnum.FIELD
|
|
449
|
+
}],
|
|
450
|
+
rhs: rhs,
|
|
451
|
+
database_type: formula.expression.database_type,
|
|
452
|
+
condition: formula.expression.condition,
|
|
453
|
+
quotes: formula.expression.quotes,
|
|
454
|
+
formula: formula.expression.formula,
|
|
455
|
+
type: AtomsTypeEnum.EXPRESSION
|
|
456
|
+
};
|
|
457
|
+
} else if (formula.type === 'field') {
|
|
458
|
+
tem = {
|
|
459
|
+
fieldName: formula.expression.name,
|
|
460
|
+
fieldNameZh: formula.expression.name_zh,
|
|
461
|
+
fieldAlias: formula.expression.fieldAlias,
|
|
462
|
+
fieldUuid: formula.expression.fieldUuid,
|
|
463
|
+
fieldId: formula.expression.id,
|
|
464
|
+
tableName: formula.expression.table,
|
|
465
|
+
tableNameZh: '',
|
|
466
|
+
tableId: formula.expression.tableId,
|
|
467
|
+
tableAlias: formula.expression.alias,
|
|
468
|
+
tableUuid: formula.expression.tableUuid,
|
|
469
|
+
datasourceName: formula.expression.datasourceName,
|
|
470
|
+
datasourceId: formula.expression.datasourceId,
|
|
471
|
+
// quotes: formula.expression.quotes,
|
|
472
|
+
type: AtomsTypeEnum.FIELD
|
|
473
|
+
};
|
|
474
|
+
} else if (formula.type === 'operator') {
|
|
475
|
+
tem = {
|
|
476
|
+
val: formula.operator,
|
|
477
|
+
type: AtomsTypeEnum.OPERATOR
|
|
478
|
+
};
|
|
479
|
+
} else if (formula.type === 'other') {
|
|
480
|
+
tem = {
|
|
481
|
+
val: formula.operator,
|
|
482
|
+
type: AtomsTypeEnum.OPERATOR
|
|
483
|
+
};
|
|
484
|
+
} else if (formula.type === 'input') {
|
|
485
|
+
tem = {
|
|
486
|
+
val: formula.operator,
|
|
487
|
+
type: AtomsTypeEnum.INPUT_STRING
|
|
488
|
+
};
|
|
489
|
+
} else if (formula.type === 'notExists') {
|
|
490
|
+
//应该是多余
|
|
491
|
+
return {
|
|
492
|
+
notExists: v.expression.notExists,
|
|
493
|
+
quotes: v.expression.quotes,
|
|
494
|
+
type: AtomsTypeEnum.NOT_EXISTS
|
|
495
|
+
};
|
|
496
|
+
}
|
|
497
|
+
return tem;
|
|
498
|
+
});
|
|
499
|
+
{}
|
|
500
|
+
return _objectSpread(_objectSpread({}, v), {}, {
|
|
501
|
+
formulaList: _formulaList
|
|
502
|
+
});
|
|
503
|
+
})) || newMeta.customColumn;
|
|
504
|
+
return newMeta;
|
|
505
|
+
};
|
|
506
|
+
export var sortPatch = function sortPatch(newMeta) {
|
|
507
|
+
var _newMeta$sort;
|
|
508
|
+
// let item = newMeta.sort?.[0].expression?.[0] || {};
|
|
509
|
+
// if (item?.type && Object.values(AtomsTypeEnum).includes(item.type)) {
|
|
510
|
+
// if (item.type === AtomsTypeEnum.EXPRESSION && item.lhs) {
|
|
511
|
+
// return newMeta;
|
|
512
|
+
// }
|
|
513
|
+
// if (item.type === AtomsTypeEnum.EXISTS && !item.tableUuid) {
|
|
514
|
+
// return newMeta;
|
|
515
|
+
// }
|
|
516
|
+
// if (item.type === AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
|
|
517
|
+
// return newMeta;
|
|
518
|
+
// }
|
|
519
|
+
// if (item.type === AtomsTypeEnum.FIELD && item.fieldName) {
|
|
520
|
+
// return newMeta;
|
|
521
|
+
// }
|
|
522
|
+
// }
|
|
523
|
+
var _sort = (_newMeta$sort = newMeta.sort) === null || _newMeta$sort === void 0 ? void 0 : _newMeta$sort.map(function (v) {
|
|
524
|
+
return {
|
|
525
|
+
expression: [{
|
|
526
|
+
fieldName: v.name,
|
|
527
|
+
fieldNameZh: v.name_zh,
|
|
528
|
+
fieldAlias: v.fieldAlias || v.name,
|
|
529
|
+
fieldUuid: v.fieldUuid,
|
|
530
|
+
fieldId: v.id,
|
|
531
|
+
tableName: v.table,
|
|
532
|
+
tableNameZh: '',
|
|
533
|
+
tableId: v.tableId,
|
|
534
|
+
tableAlias: v.alias,
|
|
535
|
+
tableUuid: v.tableUuid,
|
|
536
|
+
datasourceName: v.datasourceName,
|
|
537
|
+
datasourceId: v.datasourceId,
|
|
538
|
+
type: AtomsTypeEnum.FIELD
|
|
539
|
+
}],
|
|
540
|
+
sort: v.sort
|
|
541
|
+
};
|
|
542
|
+
});
|
|
543
|
+
newMeta.sort = _sort;
|
|
544
|
+
return newMeta;
|
|
545
|
+
};
|
|
546
|
+
var _patchMetas = function patchMetas(items) {
|
|
547
|
+
return (items === null || items === void 0 ? void 0 : items.map(function (v) {
|
|
548
|
+
if (v.type === TypeEnum.data) {
|
|
549
|
+
v = dataPatch(v);
|
|
550
|
+
}
|
|
551
|
+
if (v.type === TypeEnum.joinData) {
|
|
552
|
+
v = joinDataPatch(v);
|
|
553
|
+
}
|
|
554
|
+
if (v.type === TypeEnum.filter) {
|
|
555
|
+
v = filterPatch(v);
|
|
556
|
+
}
|
|
557
|
+
if (v.type === TypeEnum.sort) {
|
|
558
|
+
v = sortPatch(v);
|
|
559
|
+
}
|
|
560
|
+
if (v.type === TypeEnum.customColumn) {
|
|
561
|
+
v = customColumnPatch(v);
|
|
562
|
+
}
|
|
563
|
+
if (v.type === TypeEnum.union) {
|
|
564
|
+
v.subquery = _patchMetas(v.subquery || []);
|
|
565
|
+
}
|
|
566
|
+
return v;
|
|
567
|
+
})) || [];
|
|
568
|
+
};
|
|
569
|
+
// export const patchMetas1 = (items: MetaListType[]) => {
|
|
570
|
+
// return (
|
|
571
|
+
// items?.map((v: MetaListType): MetaListType => {
|
|
572
|
+
// // if (v.type === TypeEnum.data) {
|
|
573
|
+
// // v = dataPatch(v);
|
|
574
|
+
// // }
|
|
575
|
+
// // if (v.type === TypeEnum.joinData) {
|
|
576
|
+
// // v = joinDataPatch(v);
|
|
577
|
+
// // }
|
|
578
|
+
// // if (v.type === TypeEnum.filter) {
|
|
579
|
+
// // v = filterPatch(v);
|
|
580
|
+
// // }
|
|
581
|
+
// // if (v.type === TypeEnum.sort) {
|
|
582
|
+
// // v = sortPatch(v);
|
|
583
|
+
// // }
|
|
584
|
+
// // if (v.type === TypeEnum.customColumn) {
|
|
585
|
+
// // v = customColumnPatch(v);
|
|
586
|
+
// // }
|
|
587
|
+
// if (v.type === TypeEnum.union) {
|
|
588
|
+
// v.subquery = patchMetas(v.subquery || []);
|
|
589
|
+
// }
|
|
590
|
+
// return v;
|
|
591
|
+
// }) || []
|
|
592
|
+
// );
|
|
593
|
+
// };
|
|
594
|
+
export { _patchMetas as patchMetas };
|
|
@@ -12,6 +12,7 @@ import { splitByUnion } from '../utils';
|
|
|
12
12
|
import storage from '../utils/storage';
|
|
13
13
|
import cloneDeep from 'lodash/cloneDeep';
|
|
14
14
|
import { findIndex } from '../utils';
|
|
15
|
+
// import { joinDataPatch, filterPatch, sortPatch, customColumnPatch, dataPatch } from './patch';
|
|
15
16
|
var metaKey = 1;
|
|
16
17
|
export var SummarizeAlias = 'source';
|
|
17
18
|
var useStore = function useStore() {
|
|
@@ -226,23 +227,30 @@ var useStore = function useStore() {
|
|
|
226
227
|
fetchDiffFn.current = fn;
|
|
227
228
|
};
|
|
228
229
|
var setExistsErrorFn = /*#__PURE__*/function () {
|
|
229
|
-
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(fn) {
|
|
230
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(fn, value) {
|
|
230
231
|
var data;
|
|
231
232
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
232
233
|
while (1) switch (_context.prev = _context.next) {
|
|
233
234
|
case 0:
|
|
234
|
-
|
|
235
|
-
|
|
235
|
+
if (!(!value || value.length < 1)) {
|
|
236
|
+
_context.next = 1;
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
239
|
+
setExistsError([]);
|
|
240
|
+
return _context.abrupt("return");
|
|
236
241
|
case 1:
|
|
242
|
+
_context.next = 2;
|
|
243
|
+
return fn(value);
|
|
244
|
+
case 2:
|
|
237
245
|
data = _context.sent;
|
|
238
246
|
setExistsError(data || []);
|
|
239
|
-
case
|
|
247
|
+
case 3:
|
|
240
248
|
case "end":
|
|
241
249
|
return _context.stop();
|
|
242
250
|
}
|
|
243
251
|
}, _callee);
|
|
244
252
|
}));
|
|
245
|
-
return function setExistsErrorFn(_x) {
|
|
253
|
+
return function setExistsErrorFn(_x, _x2) {
|
|
246
254
|
return _ref.apply(this, arguments);
|
|
247
255
|
};
|
|
248
256
|
}();
|
|
@@ -339,7 +347,7 @@ var useStore = function useStore() {
|
|
|
339
347
|
}
|
|
340
348
|
}, _callee3);
|
|
341
349
|
}));
|
|
342
|
-
return function (
|
|
350
|
+
return function (_x4) {
|
|
343
351
|
return _ref4.apply(this, arguments);
|
|
344
352
|
};
|
|
345
353
|
}()));
|
|
@@ -352,7 +360,7 @@ var useStore = function useStore() {
|
|
|
352
360
|
}
|
|
353
361
|
}, _callee4);
|
|
354
362
|
}));
|
|
355
|
-
return function getSourceTable(
|
|
363
|
+
return function getSourceTable(_x3) {
|
|
356
364
|
return _ref3.apply(this, arguments);
|
|
357
365
|
};
|
|
358
366
|
}();
|
|
@@ -398,7 +406,7 @@ var useStore = function useStore() {
|
|
|
398
406
|
}
|
|
399
407
|
}, _callee5);
|
|
400
408
|
}));
|
|
401
|
-
return function fetchDataset(
|
|
409
|
+
return function fetchDataset(_x5) {
|
|
402
410
|
return _ref5.apply(this, arguments);
|
|
403
411
|
};
|
|
404
412
|
}();
|
|
@@ -478,7 +486,7 @@ var useStore = function useStore() {
|
|
|
478
486
|
}
|
|
479
487
|
}, _callee6);
|
|
480
488
|
}));
|
|
481
|
-
return function fetchColumns(
|
|
489
|
+
return function fetchColumns(_x6, _x7) {
|
|
482
490
|
return _ref6.apply(this, arguments);
|
|
483
491
|
};
|
|
484
492
|
}();
|
|
@@ -522,7 +530,7 @@ var useStore = function useStore() {
|
|
|
522
530
|
}
|
|
523
531
|
}, _callee7);
|
|
524
532
|
}));
|
|
525
|
-
return function setMeta(
|
|
533
|
+
return function setMeta(_x8, _x9) {
|
|
526
534
|
return _ref7.apply(this, arguments);
|
|
527
535
|
};
|
|
528
536
|
}();
|