@gingkoo/pandora-metabase 1.0.20 → 1.0.22
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/metabase/index.js +1 -0
- package/lib/cjs/components/modules/custom-column.js +9 -6
- package/lib/cjs/components/modules/join-data.js +78 -68
- package/lib/cjs/components/modules/sort.js +1 -1
- package/lib/cjs/hooks/patch.d.ts +2 -0
- package/lib/cjs/hooks/patch.js +68 -24
- package/lib/cjs/hooks/use-state.js +19 -16
- package/lib/cjs/index.js +1 -1
- package/lib/cjs/store/types.d.ts +6 -1
- package/lib/cjs/utils.d.ts +1 -0
- package/lib/cjs/utils.js +12 -3
- package/lib/es/components/metabase/index.js +1 -0
- package/lib/es/components/modules/custom-column.js +9 -6
- package/lib/es/components/modules/join-data.js +78 -68
- package/lib/es/components/modules/sort.js +1 -1
- package/lib/es/hooks/patch.d.ts +2 -0
- package/lib/es/hooks/patch.js +69 -24
- package/lib/es/hooks/use-state.js +19 -16
- package/lib/es/index.js +2 -2
- package/lib/es/store/types.d.ts +6 -1
- package/lib/es/utils.d.ts +1 -0
- package/lib/es/utils.js +11 -2
- package/package.json +1 -1
|
@@ -60,6 +60,7 @@ var Metabase = function Metabase(props) {
|
|
|
60
60
|
case 0:
|
|
61
61
|
intercept = false; // 是否返回
|
|
62
62
|
_metaList = (0, _utils.splitByUnion)(store.metaList);
|
|
63
|
+
_metaList[0].patchVersion = '1.0.0';
|
|
63
64
|
store.metaList.map(function (v) {
|
|
64
65
|
var _v$list;
|
|
65
66
|
if (v.type !== 'union' && !((_v$list = v.list) === null || _v$list === void 0 ? void 0 : _v$list[0]).table.name) {
|
|
@@ -122,6 +122,9 @@ var CustomColumn = function CustomColumn(props) {
|
|
|
122
122
|
var _prevGroupBy$group, _prevGroupBy$by;
|
|
123
123
|
var _data = {
|
|
124
124
|
table: prevGroupBy.alias,
|
|
125
|
+
name: prevGroupBy.alias,
|
|
126
|
+
name_zh: prevGroupBy.alias,
|
|
127
|
+
id: prevGroupBy.alias,
|
|
125
128
|
tableId: prevGroupBy.alias,
|
|
126
129
|
tableUuid: prevGroupBy.tableUuid || (0, _helper.uuidv4)('table'),
|
|
127
130
|
alias: prevGroupBy.alias,
|
|
@@ -167,7 +170,7 @@ var CustomColumn = function CustomColumn(props) {
|
|
|
167
170
|
data = data.concat(
|
|
168
171
|
// @ts-ignore
|
|
169
172
|
joinData.map(function (v) {
|
|
170
|
-
return {
|
|
173
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v.table2), {}, {
|
|
171
174
|
alias: v.table2.alias,
|
|
172
175
|
table: v.table2.name,
|
|
173
176
|
tableId: v.table2.id,
|
|
@@ -175,14 +178,14 @@ var CustomColumn = function CustomColumn(props) {
|
|
|
175
178
|
columns: v.columns,
|
|
176
179
|
datasourceId: mainTable.table.datasourceId,
|
|
177
180
|
datasourceName: mainTable.table.datasourceName
|
|
178
|
-
};
|
|
181
|
+
});
|
|
179
182
|
}));
|
|
180
183
|
}
|
|
181
184
|
} else {
|
|
182
185
|
// @ts-ignore
|
|
183
186
|
data = store.metaList[groupIndex].list.slice(0, index).map(function (v) {
|
|
184
187
|
if (v.type === _enum.TypeEnum.data) {
|
|
185
|
-
return {
|
|
188
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v.table), {}, {
|
|
186
189
|
alias: v.table.alias,
|
|
187
190
|
table: v.table.name,
|
|
188
191
|
tableId: v.table.id,
|
|
@@ -190,9 +193,9 @@ var CustomColumn = function CustomColumn(props) {
|
|
|
190
193
|
columns: v.columns,
|
|
191
194
|
datasourceId: mainTable.table.datasourceId,
|
|
192
195
|
datasourceName: mainTable.table.datasourceName
|
|
193
|
-
};
|
|
196
|
+
});
|
|
194
197
|
} else if (v.type === _enum.TypeEnum.joinData) {
|
|
195
|
-
return {
|
|
198
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v.table2), {}, {
|
|
196
199
|
alias: v.table2.alias,
|
|
197
200
|
table: v.table2.name,
|
|
198
201
|
tableId: v.table2.id,
|
|
@@ -200,7 +203,7 @@ var CustomColumn = function CustomColumn(props) {
|
|
|
200
203
|
columns: v.columns,
|
|
201
204
|
datasourceId: mainTable.table.datasourceId,
|
|
202
205
|
datasourceName: mainTable.table.datasourceName
|
|
203
|
-
};
|
|
206
|
+
});
|
|
204
207
|
} else {
|
|
205
208
|
return {
|
|
206
209
|
table: null
|
|
@@ -73,7 +73,7 @@ var JoinData = function JoinData(props) {
|
|
|
73
73
|
var table1Selected = Boolean(meta.table1.name);
|
|
74
74
|
var table2Selected = Boolean(meta.table2.name);
|
|
75
75
|
var subQuerySelected = Boolean((_meta$subquery = meta.subquery) === null || _meta$subquery === void 0 || (_meta$subquery = _meta$subquery[0]) === null || _meta$subquery === void 0 || (_meta$subquery = _meta$subquery.table) === null || _meta$subquery === void 0 ? void 0 : _meta$subquery.name);
|
|
76
|
-
var columnsSelected = meta.table1.
|
|
76
|
+
var columnsSelected = meta.table1.name && meta.table2.name;
|
|
77
77
|
// useEffect(() => {
|
|
78
78
|
// let newMetaList = store.metaList[groupIndex].list.slice();
|
|
79
79
|
// newMetaList[index] = setQuotes(meta);
|
|
@@ -86,6 +86,7 @@ var JoinData = function JoinData(props) {
|
|
|
86
86
|
ExistAboveGroupBy = _getHelper.ExistAboveGroupBy,
|
|
87
87
|
prevList = _getHelper.prevList,
|
|
88
88
|
prevGroupBy = _getHelper.prevGroupBy;
|
|
89
|
+
// 获取左侧表
|
|
89
90
|
if (ExistAboveGroupBy) {
|
|
90
91
|
var _prevGroupBy$group, _prevGroupBy$by;
|
|
91
92
|
var _data = {
|
|
@@ -147,7 +148,7 @@ var JoinData = function JoinData(props) {
|
|
|
147
148
|
} else {
|
|
148
149
|
data = store.metaList[groupIndex].list.slice(0, index + 1).reduce(function (mo, v) {
|
|
149
150
|
if (v.type === _enum.TypeEnum.data) {
|
|
150
|
-
mo.push({
|
|
151
|
+
mo.push((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v.table), {}, {
|
|
151
152
|
alias: v.table.alias,
|
|
152
153
|
name: v.table.name,
|
|
153
154
|
name_zh: v.table.name_zh,
|
|
@@ -156,7 +157,7 @@ var JoinData = function JoinData(props) {
|
|
|
156
157
|
columns: v.columns,
|
|
157
158
|
datasourceId: v.table.datasourceId,
|
|
158
159
|
datasourceName: v.table.datasourceName
|
|
159
|
-
});
|
|
160
|
+
}));
|
|
160
161
|
} else if (v.type === _enum.TypeEnum.joinData) {
|
|
161
162
|
mo.push({
|
|
162
163
|
alias: v.table2.alias,
|
|
@@ -170,9 +171,12 @@ var JoinData = function JoinData(props) {
|
|
|
170
171
|
});
|
|
171
172
|
}
|
|
172
173
|
return mo;
|
|
173
|
-
}, [])
|
|
174
|
+
}, []).filter(function (v) {
|
|
175
|
+
return v.tableUuid === meta.table1.tableUuid;
|
|
176
|
+
});
|
|
174
177
|
}
|
|
175
|
-
//
|
|
178
|
+
// 获取右侧表
|
|
179
|
+
// 添加table2
|
|
176
180
|
data = data.concat([{
|
|
177
181
|
alias: meta.table2.alias,
|
|
178
182
|
name: meta.table2.name,
|
|
@@ -389,71 +393,77 @@ var JoinData = function JoinData(props) {
|
|
|
389
393
|
})
|
|
390
394
|
});
|
|
391
395
|
}
|
|
396
|
+
// 切换表后重置数据
|
|
392
397
|
function initExpressions() {
|
|
393
|
-
|
|
398
|
+
console.log(11);
|
|
394
399
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
400
|
+
newMeta[index].expressions = [{
|
|
401
|
+
lhs: [{
|
|
402
|
+
fieldName: '',
|
|
403
|
+
// 字段名
|
|
404
|
+
fieldNameZh: '',
|
|
405
|
+
// 字段中文名
|
|
406
|
+
fieldAlias: '',
|
|
407
|
+
// 别名
|
|
408
|
+
fieldUuid: '',
|
|
409
|
+
// uuid
|
|
410
|
+
fieldId: '',
|
|
411
|
+
// 字段id
|
|
412
|
+
// quotes?: string; // 字段展示的 不知道有没有用
|
|
413
|
+
tableName: '',
|
|
414
|
+
// 表名
|
|
415
|
+
tableNameZh: '',
|
|
416
|
+
tableId: '',
|
|
417
|
+
// 表名
|
|
418
|
+
tableAlias: '',
|
|
419
|
+
// 别名
|
|
420
|
+
tableUuid: '',
|
|
421
|
+
// 表唯一标识
|
|
422
|
+
datasourceName: '',
|
|
423
|
+
// 数据源名
|
|
424
|
+
datasourceId: '',
|
|
425
|
+
// 数据源id
|
|
426
|
+
type: _types.AtomsTypeEnum.FIELD
|
|
427
|
+
}],
|
|
428
|
+
condition: '',
|
|
429
|
+
rhs: [{
|
|
430
|
+
fieldName: '',
|
|
431
|
+
// 字段名
|
|
432
|
+
fieldNameZh: '',
|
|
433
|
+
// 字段中文名
|
|
434
|
+
fieldAlias: '',
|
|
435
|
+
// 别名
|
|
436
|
+
fieldUuid: '',
|
|
437
|
+
// uuid
|
|
438
|
+
fieldId: '',
|
|
439
|
+
// 字段id
|
|
440
|
+
// quotes?: string; // 字段展示的 不知道有没有用
|
|
441
|
+
tableName: '',
|
|
442
|
+
// 表名
|
|
443
|
+
tableNameZh: '',
|
|
444
|
+
tableId: '',
|
|
445
|
+
// 表名
|
|
446
|
+
tableAlias: '',
|
|
447
|
+
// 别名
|
|
448
|
+
tableUuid: '',
|
|
449
|
+
// 表唯一标识
|
|
450
|
+
datasourceName: '',
|
|
451
|
+
// 数据源名
|
|
452
|
+
datasourceId: '',
|
|
453
|
+
// 数据源id
|
|
454
|
+
type: _types.AtomsTypeEnum.FIELD
|
|
455
|
+
}],
|
|
456
|
+
// quotes: '',
|
|
457
|
+
type: _types.AtomsTypeEnum.JOIN_DEFAULT
|
|
458
|
+
}];
|
|
459
|
+
store.setMeta(newMeta, groupIndex);
|
|
460
|
+
// if (
|
|
461
|
+
// ((newMeta[index] as MetaJoin).table1.name &&
|
|
462
|
+
// (newMeta[index] as MetaJoin).table2.name &&
|
|
463
|
+
// !(newMeta[index] as MetaJoin)?.expressions) ||
|
|
464
|
+
// (newMeta[index] as MetaJoin)?.expressions?.length < 1
|
|
465
|
+
// ) {
|
|
466
|
+
// }
|
|
457
467
|
}
|
|
458
468
|
function selectJoin(e) {
|
|
459
469
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
@@ -114,7 +114,7 @@ var Sort = function Sort(props) {
|
|
|
114
114
|
newMeta[index].sort.forEach(function (v) {
|
|
115
115
|
v.expression.forEach(function (vv) {
|
|
116
116
|
if (vv.type === _types.AtomsTypeEnum.FIELD) {
|
|
117
|
-
if (selectedSort[vv.
|
|
117
|
+
if (selectedSort[vv.tableName]) {
|
|
118
118
|
selectedSort[vv.tableAlias].push(vv.fieldName);
|
|
119
119
|
} else {
|
|
120
120
|
selectedSort[vv.tableAlias] = [vv.fieldName];
|
package/lib/cjs/hooks/patch.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { MetaListType } from '../store/types';
|
|
1
2
|
export declare const dataPatch: (newMeta: any) => any;
|
|
2
3
|
export declare const joinDataPatch: (newMeta: any) => any;
|
|
3
4
|
export declare const filterPatch: (newMeta: any) => any;
|
|
4
5
|
export declare const customColumnPatch: (newMeta: any) => any;
|
|
5
6
|
export declare const sortPatch: (newMeta: any) => any;
|
|
7
|
+
export declare const patchMetas: (items: MetaListType[]) => MetaListType[];
|
package/lib/cjs/hooks/patch.js
CHANGED
|
@@ -4,9 +4,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.sortPatch = exports.joinDataPatch = exports.filterPatch = exports.dataPatch = exports.customColumnPatch = void 0;
|
|
7
|
+
exports.sortPatch = exports.patchMetas = exports.joinDataPatch = exports.filterPatch = exports.dataPatch = exports.customColumnPatch = void 0;
|
|
8
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
9
9
|
var _helper = require("../utils/helper");
|
|
10
|
+
var _utils = require("../utils");
|
|
10
11
|
var _types = require("../store/types");
|
|
11
12
|
var _enum = require("../store/enum");
|
|
12
13
|
var dataPatch = exports.dataPatch = function dataPatch(newMeta) {
|
|
@@ -17,16 +18,25 @@ var dataPatch = exports.dataPatch = function dataPatch(newMeta) {
|
|
|
17
18
|
return newMeta;
|
|
18
19
|
}
|
|
19
20
|
}
|
|
20
|
-
newMeta.subquery =
|
|
21
|
+
newMeta.subquery = _patchMetas(newMeta.subquery);
|
|
21
22
|
return newMeta;
|
|
22
23
|
};
|
|
23
24
|
var joinDataPatch = exports.joinDataPatch = function joinDataPatch(newMeta) {
|
|
24
|
-
var _newMeta$expressions2, _fields, _fields2, _fields3, _fields4, _newMeta$expressions3
|
|
25
|
+
var _newMeta$expressions2, _fields, _fields2, _fields3, _fields4, _newMeta$expressions3;
|
|
25
26
|
var item = ((_newMeta$expressions2 = newMeta.expressions) === null || _newMeta$expressions2 === void 0 ? void 0 : _newMeta$expressions2[0]) || {};
|
|
26
27
|
if (item !== null && item !== void 0 && item.type && Object.values(_types.AtomsTypeEnum).includes(item.type)) {
|
|
27
28
|
if ((item.type === _types.AtomsTypeEnum.EXPRESSION || item.type === _types.AtomsTypeEnum.JOIN_DEFAULT) && item.lhs) {
|
|
28
29
|
return newMeta;
|
|
29
30
|
}
|
|
31
|
+
if (item.type === _types.AtomsTypeEnum.EXISTS && !item.tableUuid) {
|
|
32
|
+
return newMeta;
|
|
33
|
+
}
|
|
34
|
+
if (item.type === _types.AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
|
|
35
|
+
return newMeta;
|
|
36
|
+
}
|
|
37
|
+
if (item.type === _types.AtomsTypeEnum.FIELD && item.fieldName) {
|
|
38
|
+
return newMeta;
|
|
39
|
+
}
|
|
30
40
|
}
|
|
31
41
|
// if (
|
|
32
42
|
// newMeta.expressions?.[0]?.type &&
|
|
@@ -117,7 +127,7 @@ var joinDataPatch = exports.joinDataPatch = function joinDataPatch(newMeta) {
|
|
|
117
127
|
type: 'default' // 默认是字段模式
|
|
118
128
|
}];
|
|
119
129
|
}
|
|
120
|
-
var expressions = (_newMeta$expressions3 = newMeta.expressions) === null || _newMeta$expressions3 === void 0 ? void 0 : _newMeta$expressions3.map(function (v) {
|
|
130
|
+
var expressions = ((_newMeta$expressions3 = newMeta.expressions) === null || _newMeta$expressions3 === void 0 ? void 0 : _newMeta$expressions3.map(function (v) {
|
|
121
131
|
var _left_fields, _right_fields;
|
|
122
132
|
var left_fields = v.left_fields || [];
|
|
123
133
|
var right_fields = v.right_fields || [];
|
|
@@ -168,9 +178,10 @@ var joinDataPatch = exports.joinDataPatch = function joinDataPatch(newMeta) {
|
|
|
168
178
|
right_type: v.right_type || '',
|
|
169
179
|
type: v.type || 'default' // 默认是字段模式
|
|
170
180
|
};
|
|
171
|
-
});
|
|
181
|
+
})) || [];
|
|
172
182
|
var _expressions = beforeExpressions.concat(expressions);
|
|
173
|
-
|
|
183
|
+
var newExpressions = [];
|
|
184
|
+
_expressions === null || _expressions === void 0 || _expressions.map(function (v, i) {
|
|
174
185
|
var lhs = [];
|
|
175
186
|
var rhs = [];
|
|
176
187
|
if (v.left_type === 'string') {
|
|
@@ -186,9 +197,9 @@ var joinDataPatch = exports.joinDataPatch = function joinDataPatch(newMeta) {
|
|
|
186
197
|
} else {
|
|
187
198
|
var _v$left_fields;
|
|
188
199
|
lhs = (_v$left_fields = v.left_fields) === null || _v$left_fields === void 0 ? void 0 : _v$left_fields.map(function (vv) {
|
|
189
|
-
return (0, _objectSpread2["default"])(
|
|
200
|
+
return (0, _objectSpread2["default"])({
|
|
190
201
|
fieldNameZh: newMeta.table1.name_zh,
|
|
191
|
-
fieldName: newMeta.table1.fieldName || newMeta.table1.name,
|
|
202
|
+
fieldName: vv.fieldName || vv.quotes || vv.fieldAlias || newMeta.table1.fieldName || newMeta.table1.name,
|
|
192
203
|
tableAlias: newMeta.table1.alias,
|
|
193
204
|
tableId: newMeta.table1.id,
|
|
194
205
|
tableName: newMeta.table1.name,
|
|
@@ -199,7 +210,7 @@ var joinDataPatch = exports.joinDataPatch = function joinDataPatch(newMeta) {
|
|
|
199
210
|
datasourceId: newMeta.table1.datasourceId,
|
|
200
211
|
// 数据源id
|
|
201
212
|
type: _types.AtomsTypeEnum.FIELD
|
|
202
|
-
});
|
|
213
|
+
}, vv);
|
|
203
214
|
});
|
|
204
215
|
}
|
|
205
216
|
if (v.right_type === 'string') {
|
|
@@ -215,9 +226,9 @@ var joinDataPatch = exports.joinDataPatch = function joinDataPatch(newMeta) {
|
|
|
215
226
|
} else {
|
|
216
227
|
var _v$right_fields;
|
|
217
228
|
rhs = (_v$right_fields = v.right_fields) === null || _v$right_fields === void 0 ? void 0 : _v$right_fields.map(function (vv) {
|
|
218
|
-
return (0, _objectSpread2["default"])(
|
|
229
|
+
return (0, _objectSpread2["default"])({
|
|
219
230
|
fieldNameZh: newMeta.table2.name_zh,
|
|
220
|
-
fieldName: newMeta.table2.fieldName || newMeta.table2.name,
|
|
231
|
+
fieldName: vv.fieldName || vv.quotes || vv.fieldAlias || newMeta.table2.fieldName || newMeta.table2.name,
|
|
221
232
|
tableAlias: newMeta.table2.alias,
|
|
222
233
|
tableId: newMeta.table2.id,
|
|
223
234
|
tableName: newMeta.table2.name,
|
|
@@ -228,7 +239,7 @@ var joinDataPatch = exports.joinDataPatch = function joinDataPatch(newMeta) {
|
|
|
228
239
|
datasourceId: newMeta.table2.datasourceId,
|
|
229
240
|
// 数据源id
|
|
230
241
|
type: _types.AtomsTypeEnum.FIELD
|
|
231
|
-
});
|
|
242
|
+
}, vv);
|
|
232
243
|
});
|
|
233
244
|
}
|
|
234
245
|
var item = {
|
|
@@ -239,14 +250,21 @@ var joinDataPatch = exports.joinDataPatch = function joinDataPatch(newMeta) {
|
|
|
239
250
|
// quotes: '',
|
|
240
251
|
type: _types.AtomsTypeEnum.JOIN_DEFAULT
|
|
241
252
|
};
|
|
253
|
+
newExpressions.push(item);
|
|
254
|
+
if (_expressions.length - 1 > i) {
|
|
255
|
+
newExpressions.push({
|
|
256
|
+
val: 'AND',
|
|
257
|
+
type: _types.AtomsTypeEnum.OPERATOR
|
|
258
|
+
});
|
|
259
|
+
}
|
|
242
260
|
return item;
|
|
243
261
|
});
|
|
244
262
|
// 清除table1中不用字段
|
|
245
263
|
delete newMeta.table1.fields;
|
|
246
264
|
// 清除table2中不用字段
|
|
247
265
|
delete newMeta.table2.fields;
|
|
248
|
-
newMeta.subquery =
|
|
249
|
-
newMeta.expressions =
|
|
266
|
+
newMeta.subquery = _patchMetas(newMeta.subquery);
|
|
267
|
+
newMeta.expressions = newExpressions;
|
|
250
268
|
return newMeta;
|
|
251
269
|
};
|
|
252
270
|
var filterPatch = exports.filterPatch = function filterPatch(newMeta) {
|
|
@@ -262,6 +280,9 @@ var filterPatch = exports.filterPatch = function filterPatch(newMeta) {
|
|
|
262
280
|
if (item.type === _types.AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
|
|
263
281
|
return newMeta;
|
|
264
282
|
}
|
|
283
|
+
if (item.type === _types.AtomsTypeEnum.FIELD && item.fieldName) {
|
|
284
|
+
return newMeta;
|
|
285
|
+
}
|
|
265
286
|
}
|
|
266
287
|
var _filter = (_newMeta$filter2 = newMeta.filter) === null || _newMeta$filter2 === void 0 ? void 0 : _newMeta$filter2.map(function (v) {
|
|
267
288
|
// 表达式
|
|
@@ -269,7 +290,7 @@ var filterPatch = exports.filterPatch = function filterPatch(newMeta) {
|
|
|
269
290
|
if (typeof v === 'string') {
|
|
270
291
|
return {
|
|
271
292
|
val: v,
|
|
272
|
-
type: _types.AtomsTypeEnum.
|
|
293
|
+
type: _types.AtomsTypeEnum.OPERATOR
|
|
273
294
|
};
|
|
274
295
|
} else if (v.type === 'expression') {
|
|
275
296
|
var rhs;
|
|
@@ -335,15 +356,17 @@ var filterPatch = exports.filterPatch = function filterPatch(newMeta) {
|
|
|
335
356
|
};
|
|
336
357
|
return tem;
|
|
337
358
|
} else if (v.type === 'notExists') {
|
|
359
|
+
var notExists = _patchMetas(v.notExists);
|
|
338
360
|
return {
|
|
339
|
-
notExists:
|
|
340
|
-
quotes: v.
|
|
361
|
+
notExists: notExists,
|
|
362
|
+
quotes: (0, _utils.buildSqlQuery)(notExists, v.type),
|
|
341
363
|
type: _types.AtomsTypeEnum.NOT_EXISTS
|
|
342
364
|
};
|
|
343
365
|
} else if (v.type === 'exists') {
|
|
366
|
+
var _notExists = _patchMetas(v.notExists);
|
|
344
367
|
return {
|
|
345
|
-
notExists:
|
|
346
|
-
quotes: v.
|
|
368
|
+
notExists: _notExists,
|
|
369
|
+
quotes: (0, _utils.buildSqlQuery)(_notExists, v.type),
|
|
347
370
|
type: _types.AtomsTypeEnum.EXISTS
|
|
348
371
|
};
|
|
349
372
|
}
|
|
@@ -353,14 +376,23 @@ var filterPatch = exports.filterPatch = function filterPatch(newMeta) {
|
|
|
353
376
|
return newMeta;
|
|
354
377
|
};
|
|
355
378
|
var customColumnPatch = exports.customColumnPatch = function customColumnPatch(newMeta) {
|
|
356
|
-
var _newMeta$customColumn;
|
|
379
|
+
var _newMeta$customColumn, _newMeta$customColumn2;
|
|
357
380
|
var item = ((_newMeta$customColumn = newMeta.customColumn[0].formulaList) === null || _newMeta$customColumn === void 0 ? void 0 : _newMeta$customColumn[0]) || {};
|
|
358
|
-
if (item.type && Object.values(_types.AtomsTypeEnum).includes(item.type
|
|
381
|
+
if (item !== null && item !== void 0 && item.type && Object.values(_types.AtomsTypeEnum).includes(item.type)) {
|
|
359
382
|
if (item.type === _types.AtomsTypeEnum.EXPRESSION && item.lhs) {
|
|
360
383
|
return newMeta;
|
|
361
384
|
}
|
|
385
|
+
if (item.type === _types.AtomsTypeEnum.EXISTS && !item.tableUuid) {
|
|
386
|
+
return newMeta;
|
|
387
|
+
}
|
|
388
|
+
if (item.type === _types.AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
|
|
389
|
+
return newMeta;
|
|
390
|
+
}
|
|
391
|
+
if (item.type === _types.AtomsTypeEnum.FIELD && item.fieldName) {
|
|
392
|
+
return newMeta;
|
|
393
|
+
}
|
|
362
394
|
}
|
|
363
|
-
newMeta.customColumn = newMeta.customColumn.map(function (v) {
|
|
395
|
+
newMeta.customColumn = (newMeta === null || newMeta === void 0 || (_newMeta$customColumn2 = newMeta.customColumn) === null || _newMeta$customColumn2 === void 0 ? void 0 : _newMeta$customColumn2.map(function (v) {
|
|
364
396
|
var _formulaList = v.formulaList.map(function (formula) {
|
|
365
397
|
var tem = formula;
|
|
366
398
|
if (formula.type === 'expression') {
|
|
@@ -473,7 +505,7 @@ var customColumnPatch = exports.customColumnPatch = function customColumnPatch(n
|
|
|
473
505
|
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
|
|
474
506
|
formulaList: _formulaList
|
|
475
507
|
});
|
|
476
|
-
});
|
|
508
|
+
})) || newMeta.customColumn;
|
|
477
509
|
return newMeta;
|
|
478
510
|
};
|
|
479
511
|
var sortPatch = exports.sortPatch = function sortPatch(newMeta) {
|
|
@@ -483,6 +515,15 @@ var sortPatch = exports.sortPatch = function sortPatch(newMeta) {
|
|
|
483
515
|
if (item.type === _types.AtomsTypeEnum.EXPRESSION && item.lhs) {
|
|
484
516
|
return newMeta;
|
|
485
517
|
}
|
|
518
|
+
if (item.type === _types.AtomsTypeEnum.EXISTS && !item.tableUuid) {
|
|
519
|
+
return newMeta;
|
|
520
|
+
}
|
|
521
|
+
if (item.type === _types.AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
|
|
522
|
+
return newMeta;
|
|
523
|
+
}
|
|
524
|
+
if (item.type === _types.AtomsTypeEnum.FIELD && item.fieldName) {
|
|
525
|
+
return newMeta;
|
|
526
|
+
}
|
|
486
527
|
}
|
|
487
528
|
var _sort = (_newMeta$sort2 = newMeta.sort) === null || _newMeta$sort2 === void 0 ? void 0 : _newMeta$sort2.map(function (v) {
|
|
488
529
|
return {
|
|
@@ -507,7 +548,7 @@ var sortPatch = exports.sortPatch = function sortPatch(newMeta) {
|
|
|
507
548
|
newMeta.sort = _sort;
|
|
508
549
|
return newMeta;
|
|
509
550
|
};
|
|
510
|
-
var
|
|
551
|
+
var _patchMetas = exports.patchMetas = function patchMetas(items) {
|
|
511
552
|
return (items === null || items === void 0 ? void 0 : items.map(function (v) {
|
|
512
553
|
if (v.type === _enum.TypeEnum.joinData) {
|
|
513
554
|
v = joinDataPatch(v);
|
|
@@ -521,6 +562,9 @@ var renderExists = function renderExists(items) {
|
|
|
521
562
|
if (v.type === _enum.TypeEnum.customColumn) {
|
|
522
563
|
v = customColumnPatch(v);
|
|
523
564
|
}
|
|
565
|
+
if (v.type === _enum.TypeEnum.union) {
|
|
566
|
+
v.subquery = _patchMetas(v.subquery || []);
|
|
567
|
+
}
|
|
524
568
|
return v;
|
|
525
569
|
})) || [];
|
|
526
570
|
};
|
|
@@ -15,7 +15,6 @@ var _react = require("react");
|
|
|
15
15
|
var _helper = require("../utils/helper");
|
|
16
16
|
var _enum = require("../store/enum");
|
|
17
17
|
var _utils = require("../utils");
|
|
18
|
-
var _patch = require("./patch");
|
|
19
18
|
var _excluded = ["alias", "datasourceName", "datasourceId", "column"];
|
|
20
19
|
var metaKey = 1;
|
|
21
20
|
var SummarizeAlias = exports.SummarizeAlias = 'source';
|
|
@@ -259,6 +258,7 @@ var useStore = function useStore() {
|
|
|
259
258
|
return newMeta;
|
|
260
259
|
};
|
|
261
260
|
var setPreData = function setPreData(data) {
|
|
261
|
+
// let patchVersion = (data?.[0]?.list?.[0] as any)?.patchVersion || '';
|
|
262
262
|
if (data.length) {
|
|
263
263
|
var _metaList = data === null || data === void 0 ? void 0 : data.map(function (item, groupIndex) {
|
|
264
264
|
var _item$list;
|
|
@@ -268,21 +268,24 @@ var useStore = function useStore() {
|
|
|
268
268
|
if (v.table) {
|
|
269
269
|
v.table.tableUuid = v.table.tableUuid || (0, _helper.uuidv4)('table');
|
|
270
270
|
}
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
271
|
+
// // 兼容
|
|
272
|
+
// if (patchVersion != '1.0.0') {
|
|
273
|
+
// if (v.type === TypeEnum.joinData) {
|
|
274
|
+
// v = joinDataPatch(v);
|
|
275
|
+
// }
|
|
276
|
+
// if (v.type === TypeEnum.filter) {
|
|
277
|
+
// v = filterPatch(v);
|
|
278
|
+
// }
|
|
279
|
+
// if (v.type === TypeEnum.sort) {
|
|
280
|
+
// v = sortPatch(v);
|
|
281
|
+
// }
|
|
282
|
+
// if (v.type === TypeEnum.customColumn) {
|
|
283
|
+
// v = customColumnPatch(v);
|
|
284
|
+
// }
|
|
285
|
+
// if (v.type === TypeEnum.data) {
|
|
286
|
+
// v = dataPatch(v);
|
|
287
|
+
// }
|
|
288
|
+
// }
|
|
286
289
|
// if (v.type === TypeEnum.filter) {
|
|
287
290
|
// newMeta[i] = setFilterQuotes(newMeta[i]);
|
|
288
291
|
// }
|
package/lib/cjs/index.js
CHANGED
|
@@ -61,7 +61,7 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
|
|
|
61
61
|
store.setProps(props);
|
|
62
62
|
}, [props]);
|
|
63
63
|
(0, _react.useEffect)(function () {
|
|
64
|
-
var _value = (0, _utils.reassembleByUnion)(value);
|
|
64
|
+
var _value = (0, _utils.reassembleByUnion)((0, _utils.patchData)(value));
|
|
65
65
|
store.setPreData(_value);
|
|
66
66
|
}, [value]);
|
|
67
67
|
(0, _react.useEffect)(function () {
|
package/lib/cjs/store/types.d.ts
CHANGED
|
@@ -84,7 +84,7 @@ export interface AtomsUnknown {
|
|
|
84
84
|
}
|
|
85
85
|
export type AtomsItem = AtomsNotExists | AtomsExists | AtomsJoinDefault | AtomsExpression | AtomsField | AtomsInputString | AtomsInputStringList | AtomsInputNumberList | AtomsInputNumber | AtomsOprator | AtomsConstant | AtomsUnknown;
|
|
86
86
|
export type ToolbarType = TypeEnum | 'filter' | 'summarize' | 'joinData' | 'permissionTable' | 'customColumn' | 'sort' | 'rowLimit' | 'union';
|
|
87
|
-
export type MetaListType = MetaData | MetaJoin | MetaCustom | MetaFilter | MetaSummarize | MetaSort | MetaLimit | MetaPermissionTable;
|
|
87
|
+
export type MetaListType = MetaData | MetaJoin | MetaCustom | MetaFilter | MetaSummarize | MetaSort | MetaLimit | MetaPermissionTable | MetaUnion;
|
|
88
88
|
export type initColumnsType = MetaData_ColumnsType;
|
|
89
89
|
export interface TableColumnsMapType {
|
|
90
90
|
[tableName: string]: initColumnsType[];
|
|
@@ -243,6 +243,11 @@ export interface MetaPermissionTable {
|
|
|
243
243
|
type: TypeEnum.permissionTable;
|
|
244
244
|
table: MetaData_TableType;
|
|
245
245
|
}
|
|
246
|
+
export interface MetaUnion {
|
|
247
|
+
metaKey: number;
|
|
248
|
+
type: TypeEnum.union;
|
|
249
|
+
subquery: MetaListType[];
|
|
250
|
+
}
|
|
246
251
|
export interface LooseObject {
|
|
247
252
|
[TypeEnum.data]?: MetaData;
|
|
248
253
|
[TypeEnum.joinData]?: MetaJoin[];
|
package/lib/cjs/utils.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export declare const getSubColumns: (metaList: any) => DataType[];
|
|
|
17
17
|
export declare const changeTableAlias: (list: MetaListType[] | [], curObj: Pick<MetaData_TableType, "tableUuid" | "alias">) => MetaListType[];
|
|
18
18
|
export declare const changeFieldAlias: (list: MetaListType[], curObj: Pick<MetaData_ColumnsType, "fieldUuid" | "fieldAlias">) => MetaListType[];
|
|
19
19
|
export declare function splitByUnion(data: any): any[];
|
|
20
|
+
export declare const patchData: (metas: MetaListType[]) => MetaListType[];
|
|
20
21
|
export declare function reassembleByUnion(target?: any[]): any[];
|
|
21
22
|
export declare const buildSqlQuery: (data: MetaListType[] | undefined, type: string) => string;
|
|
22
23
|
export {};
|
package/lib/cjs/utils.js
CHANGED
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.getSubColumns = exports.getHelper = exports.findIndex = exports.changeTableAlias = exports.changeFieldAlias = exports.buildSqlQuery = void 0;
|
|
7
|
+
exports.patchData = exports.getSubColumns = exports.getHelper = exports.findIndex = exports.changeTableAlias = exports.changeFieldAlias = exports.buildSqlQuery = void 0;
|
|
8
8
|
exports.reassembleByUnion = reassembleByUnion;
|
|
9
9
|
exports.splitByUnion = splitByUnion;
|
|
10
10
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
|
|
@@ -17,6 +17,7 @@ var _types = require("./store/types");
|
|
|
17
17
|
var _helper = require("./store/helper");
|
|
18
18
|
var _helper2 = require("./utils/helper");
|
|
19
19
|
var _cloneDeep3 = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
20
|
+
var _patch = require("./hooks/patch");
|
|
20
21
|
var _excluded = ["list"];
|
|
21
22
|
var findIndex = exports.findIndex = function findIndex(arr, item) {
|
|
22
23
|
return arr.indexOf(item);
|
|
@@ -446,6 +447,14 @@ function splitByUnion(data) {
|
|
|
446
447
|
}
|
|
447
448
|
return result;
|
|
448
449
|
}
|
|
450
|
+
var patchData = exports.patchData = function patchData(metas) {
|
|
451
|
+
var mainTable = metas[0] || {};
|
|
452
|
+
var version = (mainTable === null || mainTable === void 0 ? void 0 : mainTable.patchVersion) || '';
|
|
453
|
+
if (version != '1.0.0') {
|
|
454
|
+
return (0, _patch.patchMetas)(metas);
|
|
455
|
+
}
|
|
456
|
+
return metas;
|
|
457
|
+
};
|
|
449
458
|
function reassembleByUnion() {
|
|
450
459
|
var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
451
460
|
if (!target) return [];
|
|
@@ -532,7 +541,7 @@ var buildSqlQuery = exports.buildSqlQuery = function buildSqlQuery() {
|
|
|
532
541
|
var tables = [];
|
|
533
542
|
var joins = [];
|
|
534
543
|
var wheres = [];
|
|
535
|
-
data.forEach(function (item) {
|
|
544
|
+
data === null || data === void 0 || data.forEach(function (item) {
|
|
536
545
|
if (item.type === _enum.TypeEnum.data) {
|
|
537
546
|
var meta = item;
|
|
538
547
|
var tableName = "".concat(meta.table.name);
|
|
@@ -606,7 +615,7 @@ var buildSqlQuery = exports.buildSqlQuery = function buildSqlQuery() {
|
|
|
606
615
|
sqlClauses.push(joins.join(' '));
|
|
607
616
|
}
|
|
608
617
|
if (wheres.length > 0) {
|
|
609
|
-
sqlClauses.push("WHERE ".concat(wheres.join('
|
|
618
|
+
sqlClauses.push("WHERE ".concat(wheres.join(' ')));
|
|
610
619
|
}
|
|
611
620
|
}
|
|
612
621
|
sqlClauses.push(')');
|