@gingkoo/pandora-metabase 1.0.129 → 1.0.131
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 +0 -1
- package/lib/cjs/components/dialog/formula-list/utils.js +0 -3
- package/lib/cjs/components/dialog/select-column/index.js +2 -2
- package/lib/cjs/components/dialog/select-column-multiple/index.d.ts +0 -1
- package/lib/cjs/components/dialog/select-column-multiple/index.js +44 -19
- package/lib/cjs/components/dialog/select-join-column/index.js +23 -7
- package/lib/cjs/components/dialog/select-join-column-multiple/index.js +15 -6
- package/lib/cjs/components/dialog/select-permission-table/index.js +2 -2
- package/lib/cjs/components/dialog/select-summarize/index.js +1 -3
- package/lib/cjs/components/dialog/select-table/index.d.ts +1 -2
- package/lib/cjs/components/dialog/select-table/index.js +230 -210
- package/lib/cjs/components/dialog/select-table/index.less +51 -36
- package/lib/cjs/components/metabase/index.js +34 -16
- package/lib/cjs/components/modules/components/item-name.js +0 -1
- package/lib/cjs/components/modules/custom-column.js +3 -7
- package/lib/cjs/components/modules/filter.js +3 -6
- package/lib/cjs/components/modules/join-data.js +41 -87
- package/lib/cjs/components/modules/permission-table.js +5 -9
- package/lib/cjs/components/modules/sort.js +1 -2
- package/lib/cjs/components/modules/summarize/group-by.js +1 -8
- package/lib/cjs/components/modules/summarize/select-index.js +1 -4
- package/lib/cjs/components/modules/table-data.js +28 -44
- package/lib/cjs/hooks/use-state.js +22 -147
- package/lib/cjs/index.js +1 -7
- package/lib/cjs/locale/en.js +1 -0
- package/lib/cjs/locale/zh.js +1 -0
- package/lib/cjs/store/types.d.ts +4 -5
- package/lib/cjs/types.d.ts +0 -8
- package/lib/cjs/utils/helper.d.ts +4 -0
- package/lib/cjs/utils/helper.js +102 -1
- package/lib/cjs/utils/transformSql.js +0 -2
- package/lib/cjs/utils.js +38 -18
- package/lib/es/components/dialog/expression/index.js +0 -1
- package/lib/es/components/dialog/formula-list/utils.js +0 -3
- package/lib/es/components/dialog/select-column/index.js +3 -3
- package/lib/es/components/dialog/select-column-multiple/index.d.ts +0 -1
- package/lib/es/components/dialog/select-column-multiple/index.js +45 -21
- package/lib/es/components/dialog/select-join-column/index.js +24 -8
- package/lib/es/components/dialog/select-join-column-multiple/index.js +16 -7
- package/lib/es/components/dialog/select-permission-table/index.js +3 -3
- package/lib/es/components/dialog/select-summarize/index.js +1 -3
- package/lib/es/components/dialog/select-table/index.d.ts +1 -2
- package/lib/es/components/dialog/select-table/index.js +232 -212
- package/lib/es/components/dialog/select-table/index.less +51 -36
- package/lib/es/components/metabase/index.js +34 -16
- package/lib/es/components/modules/components/item-name.js +0 -1
- package/lib/es/components/modules/custom-column.js +3 -7
- package/lib/es/components/modules/filter.js +3 -6
- package/lib/es/components/modules/join-data.js +42 -88
- package/lib/es/components/modules/permission-table.js +6 -10
- package/lib/es/components/modules/sort.js +1 -2
- package/lib/es/components/modules/summarize/group-by.js +1 -8
- package/lib/es/components/modules/summarize/select-index.js +1 -4
- package/lib/es/components/modules/table-data.js +29 -45
- package/lib/es/hooks/use-state.js +23 -148
- package/lib/es/index.js +1 -7
- package/lib/es/locale/en.js +1 -0
- package/lib/es/locale/zh.js +1 -0
- package/lib/es/store/types.d.ts +4 -5
- package/lib/es/types.d.ts +0 -8
- package/lib/es/utils/helper.d.ts +4 -0
- package/lib/es/utils/helper.js +101 -0
- package/lib/es/utils/transformSql.js +0 -2
- package/lib/es/utils.js +39 -19
- package/package.json +1 -1
|
@@ -33,7 +33,7 @@ var _itemWrapper = _interopRequireDefault(require("./components/item-wrapper"));
|
|
|
33
33
|
var _useProvider = require("../../hooks/use-provider");
|
|
34
34
|
var _excluded = ["subToolbar", "notExistsColumns", "isExit", "toolbar"];
|
|
35
35
|
var TableData = function TableData(props) {
|
|
36
|
-
var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$
|
|
36
|
+
var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$table4, _meta$table5, _meta$table7, _meta$table8, _store$showMainColumn;
|
|
37
37
|
var meta = props.meta,
|
|
38
38
|
groupIndex = props.groupIndex;
|
|
39
39
|
var store = (0, _useProvider.useStore)();
|
|
@@ -45,13 +45,13 @@ var TableData = function TableData(props) {
|
|
|
45
45
|
setIsDel = _useState2[1];
|
|
46
46
|
var tableIsDel = function () {
|
|
47
47
|
var _ref = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee() {
|
|
48
|
-
var _meta$table
|
|
49
|
-
var
|
|
48
|
+
var _meta$table;
|
|
49
|
+
var tableInfo, tables;
|
|
50
50
|
return _regenerator["default"].wrap(function (_context) {
|
|
51
51
|
while (1) switch (_context.prev = _context.next) {
|
|
52
52
|
case 0:
|
|
53
|
-
|
|
54
|
-
if (meta !== null && meta !== void 0 && (_meta$
|
|
53
|
+
tableInfo = meta.table;
|
|
54
|
+
if (meta !== null && meta !== void 0 && (_meta$table = meta.table) !== null && _meta$table !== void 0 && _meta$table.datasourceId) {
|
|
55
55
|
_context.next = 1;
|
|
56
56
|
break;
|
|
57
57
|
}
|
|
@@ -59,13 +59,12 @@ var TableData = function TableData(props) {
|
|
|
59
59
|
return _context.abrupt("return");
|
|
60
60
|
case 1:
|
|
61
61
|
_context.next = 2;
|
|
62
|
-
return store === null || store === void 0 ? void 0 : store.fetchDataset(meta.table.datasourceId
|
|
62
|
+
return store === null || store === void 0 ? void 0 : store.fetchDataset(meta.table.datasourceId);
|
|
63
63
|
case 2:
|
|
64
64
|
tables = _context.sent;
|
|
65
|
-
|
|
66
|
-
return v
|
|
67
|
-
}))
|
|
68
|
-
if (!names.includes(tableName)) {
|
|
65
|
+
if (!(tables !== null && tables !== void 0 && tables.some(function (v) {
|
|
66
|
+
return (0, _helper.isSameTableByIdFirst)(tableInfo, v);
|
|
67
|
+
}))) {
|
|
69
68
|
setIsDel(true);
|
|
70
69
|
} else {
|
|
71
70
|
setIsDel(false);
|
|
@@ -94,25 +93,8 @@ var TableData = function TableData(props) {
|
|
|
94
93
|
data: store.sourceList,
|
|
95
94
|
sourceTable: store.sourceTable || [],
|
|
96
95
|
value: meta.table,
|
|
97
|
-
onDatasourceTypeChange: function onDatasourceTypeChange(data) {
|
|
98
|
-
var newMetas = store.metaList[groupIndex].list.slice();
|
|
99
|
-
var newMetaList = newMetas[0];
|
|
100
|
-
newMetaList.table = (0, _objectSpread2["default"])((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, newMetaList.table), data), {}, {
|
|
101
|
-
datasourceType: data.datasourceType
|
|
102
|
-
});
|
|
103
|
-
newMetaList.columns = newMetaList.columns.map(function (column) {
|
|
104
|
-
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, column), {}, {
|
|
105
|
-
datasourceType: data.datasourceType
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
newMetas[0] = newMetaList;
|
|
109
|
-
store.setMeta(newMetas, groupIndex, {
|
|
110
|
-
obj: data,
|
|
111
|
-
type: _types.ChangeType.datasource
|
|
112
|
-
});
|
|
113
|
-
},
|
|
114
96
|
onChange: function onChange(data) {
|
|
115
|
-
if (
|
|
97
|
+
if (!(0, _helper.isSameTableByIdFirst)(meta.table, data)) {
|
|
116
98
|
var _store$preProps;
|
|
117
99
|
var newMetaList = store.metaList[groupIndex].list.slice()[0];
|
|
118
100
|
newMetaList.table = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, data), {}, {
|
|
@@ -239,20 +221,23 @@ var TableData = function TableData(props) {
|
|
|
239
221
|
});
|
|
240
222
|
var items = (0, _utils.getSubColumns)(newList);
|
|
241
223
|
var newColumns = items.flatMap(function (item) {
|
|
242
|
-
return item.columns
|
|
224
|
+
return item.columns.map(function (column) {
|
|
225
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, column), {}, {
|
|
226
|
+
tableId: column.tableId || column.id || item.id,
|
|
227
|
+
tableUuid: column.tableUuid || item.tableUuid,
|
|
228
|
+
datasourceId: column.datasourceId || item.datasourceId || ''
|
|
229
|
+
});
|
|
230
|
+
});
|
|
243
231
|
}).map(function (v) {
|
|
244
232
|
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
|
|
245
233
|
select: false
|
|
246
234
|
});
|
|
247
235
|
});
|
|
248
236
|
newMetaList.columns = newColumns.map(function (newCol) {
|
|
249
|
-
var _existingCol$select;
|
|
250
237
|
var existingCol = newMetaList.columns.find(function (oldCol) {
|
|
251
|
-
return
|
|
252
|
-
});
|
|
253
|
-
var _column = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, newCol), {}, {
|
|
254
|
-
select: (_existingCol$select = existingCol === null || existingCol === void 0 ? void 0 : existingCol.select) !== null && _existingCol$select !== void 0 ? _existingCol$select : newCol.select
|
|
238
|
+
return (0, _helper.isSameColumnByIdFirst)(oldCol, newCol);
|
|
255
239
|
});
|
|
240
|
+
var _column = existingCol ? existingCol : newCol;
|
|
256
241
|
_column.select = store.isSelectFields || _column.select;
|
|
257
242
|
return _column;
|
|
258
243
|
});
|
|
@@ -284,17 +269,16 @@ var TableData = function TableData(props) {
|
|
|
284
269
|
id: '',
|
|
285
270
|
alias: '',
|
|
286
271
|
datasourceName: '',
|
|
287
|
-
datasourceId: ''
|
|
288
|
-
datasourceType: ''
|
|
272
|
+
datasourceId: ''
|
|
289
273
|
};
|
|
290
274
|
store.setMeta(newMetaList, groupIndex);
|
|
291
275
|
};
|
|
292
276
|
var tableIsError = function tableIsError() {
|
|
293
|
-
var _store$preProps3, _meta$
|
|
277
|
+
var _store$preProps3, _meta$table2;
|
|
294
278
|
var aliass = ((_store$preProps3 = store.preProps) === null || _store$preProps3 === void 0 || (_store$preProps3 = _store$preProps3.notExistsColumns) === null || _store$preProps3 === void 0 ? void 0 : _store$preProps3.map(function (v) {
|
|
295
279
|
return v.alias;
|
|
296
280
|
})) || [];
|
|
297
|
-
var tableAlias = (_meta$
|
|
281
|
+
var tableAlias = (_meta$table2 = meta.table) === null || _meta$table2 === void 0 ? void 0 : _meta$table2.alias;
|
|
298
282
|
if (tableAlias && aliass.includes(tableAlias) || isDel) {
|
|
299
283
|
return true;
|
|
300
284
|
}
|
|
@@ -349,15 +333,15 @@ var TableData = function TableData(props) {
|
|
|
349
333
|
size: 'small',
|
|
350
334
|
onClick: function onClick(e) {
|
|
351
335
|
if (store.tableEnableAlias) {
|
|
352
|
-
var _meta$
|
|
336
|
+
var _meta$table3;
|
|
353
337
|
e.stopPropagation();
|
|
354
|
-
onChangeTableAlias(((_meta$
|
|
338
|
+
onChangeTableAlias(((_meta$table3 = meta.table) === null || _meta$table3 === void 0 ? void 0 : _meta$table3.alias) || '');
|
|
355
339
|
}
|
|
356
340
|
}
|
|
357
341
|
})
|
|
358
342
|
}) : null;
|
|
359
343
|
}()
|
|
360
|
-
}), subQuerySelected ? "".concat(((_meta$subquery2 = meta.subquery) === null || _meta$subquery2 === void 0 ? void 0 : _meta$subquery2[0]).table.datasourceName, ".").concat(((_meta$subquery3 = meta.subquery) === null || _meta$subquery3 === void 0 ? void 0 : _meta$subquery3[0]).table.name, " ").concat((_meta$
|
|
344
|
+
}), subQuerySelected ? "".concat(((_meta$subquery2 = meta.subquery) === null || _meta$subquery2 === void 0 ? void 0 : _meta$subquery2[0]).table.datasourceName, ".").concat(((_meta$subquery3 = meta.subquery) === null || _meta$subquery3 === void 0 ? void 0 : _meta$subquery3[0]).table.name, " ").concat((_meta$table4 = meta.table) !== null && _meta$table4 !== void 0 && _meta$table4.alias && store.tableEnableAlias ? "as ".concat((_meta$table5 = meta.table) === null || _meta$table5 === void 0 ? void 0 : _meta$table5.alias) : '', " ") : (0, _locale.__)('SqlQueryBuilder.setSubQuery')]
|
|
361
345
|
})
|
|
362
346
|
}) : (0, _jsxRuntime.jsxs)("div", {
|
|
363
347
|
className: (0, _classnames["default"])("Sqb-TableName", {
|
|
@@ -388,15 +372,15 @@ var TableData = function TableData(props) {
|
|
|
388
372
|
size: 'small',
|
|
389
373
|
onClick: function onClick(e) {
|
|
390
374
|
if (store.tableEnableAlias) {
|
|
391
|
-
var _meta$
|
|
375
|
+
var _meta$table6;
|
|
392
376
|
e.stopPropagation();
|
|
393
|
-
onChangeTableAlias(((_meta$
|
|
377
|
+
onChangeTableAlias(((_meta$table6 = meta.table) === null || _meta$table6 === void 0 ? void 0 : _meta$table6.alias) || '');
|
|
394
378
|
}
|
|
395
379
|
}
|
|
396
380
|
})
|
|
397
381
|
}) : null;
|
|
398
382
|
}()
|
|
399
|
-
}), selected ? "".concat(meta.table.datasourceName, ".").concat(meta.table.name, " ").concat((_meta$
|
|
383
|
+
}), selected ? "".concat(meta.table.datasourceName, ".").concat(meta.table.name, " ").concat((_meta$table7 = meta.table) !== null && _meta$table7 !== void 0 && _meta$table7.alias && store.tableEnableAlias ? "as ".concat((_meta$table8 = meta.table) === null || _meta$table8 === void 0 ? void 0 : _meta$table8.alias) : '') : (0, _locale.__)('SqlQueryBuilder.pickTable')]
|
|
400
384
|
}), store.showSubquery && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
401
385
|
title: (0, _locale.__)('SqlQueryBuilder.switchSubQuery'),
|
|
402
386
|
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
@@ -19,7 +19,7 @@ var _enum = require("../store/enum");
|
|
|
19
19
|
var _utils = require("../utils");
|
|
20
20
|
var _storage = _interopRequireDefault(require("../utils/storage"));
|
|
21
21
|
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
22
|
-
var _excluded = ["alias", "datasourceName", "datasourceId", "
|
|
22
|
+
var _excluded = ["alias", "datasourceName", "datasourceId", "column"];
|
|
23
23
|
var metaKey = 1;
|
|
24
24
|
var SummarizeAlias = exports.SummarizeAlias = 'source';
|
|
25
25
|
var useStore = function useStore() {
|
|
@@ -34,7 +34,6 @@ var useStore = function useStore() {
|
|
|
34
34
|
alias: '',
|
|
35
35
|
datasourceId: '',
|
|
36
36
|
datasourceName: '',
|
|
37
|
-
datasourceType: '',
|
|
38
37
|
tableUuid: (0, _helper.uuidv4)('table')
|
|
39
38
|
},
|
|
40
39
|
columns: []
|
|
@@ -319,97 +318,10 @@ var useStore = function useStore() {
|
|
|
319
318
|
});
|
|
320
319
|
}, [metaList]);
|
|
321
320
|
(0, _react.useEffect)(function () {
|
|
322
|
-
if (sourceList.length) {
|
|
323
|
-
var metaListWithDefaultType = fillDefaultDatasourceTypeInMetaList(metaList, isExit);
|
|
324
|
-
if (metaListWithDefaultType !== metaList) {
|
|
325
|
-
setPreData(metaListWithDefaultType, isSubquery, isExit);
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
321
|
if (tableFlat) {
|
|
329
322
|
getSourceTable(sourceList);
|
|
330
323
|
}
|
|
331
324
|
}, [sourceList, isExit, tableFlat]);
|
|
332
|
-
var getDefaultDatasourceType = function getDefaultDatasourceType(datasource) {
|
|
333
|
-
var _datasource$datasourc;
|
|
334
|
-
return (datasource === null || datasource === void 0 ? void 0 : datasource.defaultDatasourceType) || (datasource === null || datasource === void 0 ? void 0 : datasource.datasourceType) || (datasource === null || datasource === void 0 || (_datasource$datasourc = datasource.datasourceTypeList) === null || _datasource$datasourc === void 0 || (_datasource$datasourc = _datasource$datasourc[0]) === null || _datasource$datasourc === void 0 ? void 0 : _datasource$datasourc.value) || '';
|
|
335
|
-
};
|
|
336
|
-
var getActiveSourceList = function getActiveSourceList() {
|
|
337
|
-
var _props$exitSourceList, _props$sourceList;
|
|
338
|
-
var _isExit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : isExit;
|
|
339
|
-
var props = preProps.current || {};
|
|
340
|
-
if (_isExit && (_props$exitSourceList = props.exitSourceList) !== null && _props$exitSourceList !== void 0 && _props$exitSourceList.length) {
|
|
341
|
-
return props.exitSourceList;
|
|
342
|
-
}
|
|
343
|
-
if ((_props$sourceList = props.sourceList) !== null && _props$sourceList !== void 0 && _props$sourceList.length) {
|
|
344
|
-
return props.sourceList;
|
|
345
|
-
}
|
|
346
|
-
return sourceList;
|
|
347
|
-
};
|
|
348
|
-
var getDefaultDatasourceTypeById = function getDefaultDatasourceTypeById(datasourceId) {
|
|
349
|
-
var _isExit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : isExit;
|
|
350
|
-
if (!datasourceId) return '';
|
|
351
|
-
var datasource = getActiveSourceList(_isExit).find(function (item) {
|
|
352
|
-
return item.datasourceId === datasourceId;
|
|
353
|
-
});
|
|
354
|
-
return getDefaultDatasourceType(datasource);
|
|
355
|
-
};
|
|
356
|
-
var fillDefaultDatasourceTypeInTable = function fillDefaultDatasourceTypeInTable(table) {
|
|
357
|
-
var _isExit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : isExit;
|
|
358
|
-
if (!(table !== null && table !== void 0 && table.datasourceId) || table.datasourceType) return false;
|
|
359
|
-
var defaultDatasourceType = getDefaultDatasourceTypeById(table.datasourceId, _isExit);
|
|
360
|
-
if (!defaultDatasourceType) return false;
|
|
361
|
-
table.datasourceType = defaultDatasourceType;
|
|
362
|
-
return true;
|
|
363
|
-
};
|
|
364
|
-
var fillDefaultDatasourceTypeInColumns = function fillDefaultDatasourceTypeInColumns(columns, datasourceType) {
|
|
365
|
-
if (!datasourceType || !Array.isArray(columns)) return false;
|
|
366
|
-
var changed = false;
|
|
367
|
-
columns.forEach(function (column) {
|
|
368
|
-
if (!column.datasourceType) {
|
|
369
|
-
column.datasourceType = datasourceType;
|
|
370
|
-
changed = true;
|
|
371
|
-
}
|
|
372
|
-
});
|
|
373
|
-
return changed;
|
|
374
|
-
};
|
|
375
|
-
var _fillDefaultDatasourceTypeInList = function fillDefaultDatasourceTypeInList(list) {
|
|
376
|
-
var _isExit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : isExit;
|
|
377
|
-
if (!Array.isArray(list)) return false;
|
|
378
|
-
var changed = false;
|
|
379
|
-
list.forEach(function (item) {
|
|
380
|
-
if (item.table) {
|
|
381
|
-
changed = fillDefaultDatasourceTypeInTable(item.table, _isExit) || changed;
|
|
382
|
-
changed = fillDefaultDatasourceTypeInColumns(item.columns, item.table.datasourceType) || changed;
|
|
383
|
-
}
|
|
384
|
-
if (item.table1) {
|
|
385
|
-
changed = fillDefaultDatasourceTypeInTable(item.table1, _isExit) || changed;
|
|
386
|
-
}
|
|
387
|
-
if (item.table2) {
|
|
388
|
-
changed = fillDefaultDatasourceTypeInTable(item.table2, _isExit) || changed;
|
|
389
|
-
changed = fillDefaultDatasourceTypeInColumns(item.columns, item.table2.datasourceType) || changed;
|
|
390
|
-
}
|
|
391
|
-
if (Array.isArray(item.subquery)) {
|
|
392
|
-
changed = _fillDefaultDatasourceTypeInList(item.subquery, _isExit) || changed;
|
|
393
|
-
}
|
|
394
|
-
});
|
|
395
|
-
return changed;
|
|
396
|
-
};
|
|
397
|
-
var fillDefaultDatasourceTypeInMetaList = function fillDefaultDatasourceTypeInMetaList() {
|
|
398
|
-
var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
399
|
-
var _isExit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : isExit;
|
|
400
|
-
if (!data.length) return data;
|
|
401
|
-
var nextData = (0, _cloneDeep["default"])(data);
|
|
402
|
-
var changed = false;
|
|
403
|
-
nextData.forEach(function (group) {
|
|
404
|
-
changed = _fillDefaultDatasourceTypeInList(group.list, _isExit) || changed;
|
|
405
|
-
changed = _fillDefaultDatasourceTypeInList(group.subquery, _isExit) || changed;
|
|
406
|
-
});
|
|
407
|
-
return changed ? nextData : data;
|
|
408
|
-
};
|
|
409
|
-
var getDatasetCacheKey = function getDatasetCacheKey(datasourceId) {
|
|
410
|
-
var datasourceType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
411
|
-
return datasourceType ? "".concat(datasourceId, "__").concat(datasourceType) : datasourceId;
|
|
412
|
-
};
|
|
413
325
|
var getSourceTable = function () {
|
|
414
326
|
var _ref3 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(source) {
|
|
415
327
|
var results;
|
|
@@ -419,17 +331,15 @@ var useStore = function useStore() {
|
|
|
419
331
|
_context4.next = 1;
|
|
420
332
|
return Promise.all(source.map(function () {
|
|
421
333
|
var _ref4 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(v) {
|
|
422
|
-
var
|
|
334
|
+
var tables;
|
|
423
335
|
return _regenerator["default"].wrap(function (_context3) {
|
|
424
336
|
while (1) switch (_context3.prev = _context3.next) {
|
|
425
337
|
case 0:
|
|
426
|
-
datasourceType = getDefaultDatasourceType(v);
|
|
427
338
|
_context3.next = 1;
|
|
428
|
-
return fetchDataset(v.datasourceId
|
|
339
|
+
return fetchDataset(v.datasourceId);
|
|
429
340
|
case 1:
|
|
430
341
|
tables = _context3.sent;
|
|
431
342
|
return _context3.abrupt("return", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
|
|
432
|
-
datasourceType: datasourceType,
|
|
433
343
|
children: tables
|
|
434
344
|
}));
|
|
435
345
|
case 2:
|
|
@@ -460,34 +370,24 @@ var useStore = function useStore() {
|
|
|
460
370
|
};
|
|
461
371
|
var fetchDataset = function () {
|
|
462
372
|
var _ref5 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5(datasourceId) {
|
|
463
|
-
var
|
|
464
|
-
var datasourceType,
|
|
465
|
-
force,
|
|
466
|
-
tables,
|
|
467
|
-
fetchTables,
|
|
468
|
-
_tables,
|
|
469
|
-
_args5 = arguments;
|
|
373
|
+
var tables, _tables;
|
|
470
374
|
return _regenerator["default"].wrap(function (_context5) {
|
|
471
375
|
while (1) switch (_context5.prev = _context5.next) {
|
|
472
376
|
case 0:
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
tables = getDataset(datasourceId, datasourceType);
|
|
476
|
-
if (!(!force && tables.length)) {
|
|
377
|
+
tables = getDataset(datasourceId);
|
|
378
|
+
if (!tables.length) {
|
|
477
379
|
_context5.next = 1;
|
|
478
380
|
break;
|
|
479
381
|
}
|
|
480
382
|
return _context5.abrupt("return", tables);
|
|
481
383
|
case 1:
|
|
482
|
-
fetchTables = ((_preProps$current = preProps.current) === null || _preProps$current === void 0 ? void 0 : _preProps$current.getTables) || fetchDatasetFn.current;
|
|
483
384
|
_context5.next = 2;
|
|
484
|
-
return
|
|
485
|
-
isExit: isExit
|
|
486
|
-
datasourceType: datasourceType
|
|
385
|
+
return fetchDatasetFn.current(datasourceId, {
|
|
386
|
+
isExit: isExit
|
|
487
387
|
});
|
|
488
388
|
case 2:
|
|
489
389
|
_tables = _context5.sent;
|
|
490
|
-
setDataset(datasourceId, _tables
|
|
390
|
+
setDataset(datasourceId, _tables);
|
|
491
391
|
return _context5.abrupt("return", _tables);
|
|
492
392
|
case 3:
|
|
493
393
|
case "end":
|
|
@@ -513,11 +413,9 @@ var useStore = function useStore() {
|
|
|
513
413
|
alias,
|
|
514
414
|
datasourceName,
|
|
515
415
|
did,
|
|
516
|
-
datasourceType,
|
|
517
416
|
column,
|
|
518
417
|
extra,
|
|
519
418
|
tableName,
|
|
520
|
-
tableCacheKey,
|
|
521
419
|
columns,
|
|
522
420
|
_columns,
|
|
523
421
|
_args6 = arguments;
|
|
@@ -542,33 +440,29 @@ var useStore = function useStore() {
|
|
|
542
440
|
selectId = [];
|
|
543
441
|
isSelect = false;
|
|
544
442
|
}
|
|
545
|
-
_table$alias = table.alias, alias = _table$alias === void 0 ? '' : _table$alias, datasourceName = table.datasourceName, did = table.datasourceId,
|
|
443
|
+
_table$alias = table.alias, alias = _table$alias === void 0 ? '' : _table$alias, datasourceName = table.datasourceName, did = table.datasourceId, column = table.column, extra = (0, _objectWithoutProperties2["default"])(table, _excluded);
|
|
546
444
|
tableName = table.name;
|
|
547
|
-
|
|
548
|
-
columns = getColumns(tableCacheKey);
|
|
445
|
+
columns = getColumns(tableName);
|
|
549
446
|
if (columns.length) {
|
|
550
447
|
_context6.next = 2;
|
|
551
448
|
break;
|
|
552
449
|
}
|
|
553
450
|
_context6.next = 1;
|
|
554
451
|
return fetchColumnsFn.current(extra, datasourceId, {
|
|
555
|
-
isExit: _isExit
|
|
556
|
-
datasourceType: datasourceType
|
|
452
|
+
isExit: _isExit
|
|
557
453
|
});
|
|
558
454
|
case 1:
|
|
559
455
|
columns = _context6.sent;
|
|
560
|
-
setColumns(
|
|
456
|
+
setColumns(tableName, columns);
|
|
561
457
|
case 2:
|
|
562
458
|
_columns = (_columns2 = columns) === null || _columns2 === void 0 ? void 0 : _columns2.map(function (v) {
|
|
563
|
-
var
|
|
564
|
-
|
|
565
|
-
|
|
459
|
+
var obj = oldColumns.find(function (oldColumn) {
|
|
460
|
+
return (0, _helper.isSameColumnByIdFirst)(oldColumn, v);
|
|
461
|
+
});
|
|
462
|
+
var select = selectId.includes(v.id) || Boolean(obj === null || obj === void 0 ? void 0 : obj.select);
|
|
566
463
|
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, obj), v), {}, {
|
|
567
|
-
datasourceId: obj.datasourceId || v.datasourceId || did || datasourceId || '',
|
|
568
|
-
datasourceName: obj.datasourceName || v.datasourceName || datasourceName || '',
|
|
569
|
-
datasourceType: obj.datasourceType || v.datasourceType || datasourceType || '',
|
|
570
464
|
select: isSelect || select,
|
|
571
|
-
fieldUuid: obj.fieldUuid || v.fieldUuid || (0, _helper.uuidv4)('field')
|
|
465
|
+
fieldUuid: (obj === null || obj === void 0 ? void 0 : obj.fieldUuid) || v.fieldUuid || (0, _helper.uuidv4)('field')
|
|
572
466
|
});
|
|
573
467
|
});
|
|
574
468
|
typeof callback === 'function' && callback(_columns);
|
|
@@ -634,16 +528,7 @@ var useStore = function useStore() {
|
|
|
634
528
|
var _v$table, _v$table2;
|
|
635
529
|
var newMeta = item.list;
|
|
636
530
|
if (v.table) {
|
|
637
|
-
fillDefaultDatasourceTypeInTable(v.table, _isExit);
|
|
638
531
|
v.table.tableUuid = v.table.tableUuid || (0, _helper.uuidv4)('table');
|
|
639
|
-
fillDefaultDatasourceTypeInColumns(v.columns, v.table.datasourceType);
|
|
640
|
-
}
|
|
641
|
-
if (v.table1) {
|
|
642
|
-
fillDefaultDatasourceTypeInTable(v.table1, _isExit);
|
|
643
|
-
}
|
|
644
|
-
if (v.table2) {
|
|
645
|
-
fillDefaultDatasourceTypeInTable(v.table2, _isExit);
|
|
646
|
-
fillDefaultDatasourceTypeInColumns(v.columns, v.table2.datasourceType);
|
|
647
532
|
}
|
|
648
533
|
if ((_v$table = v.table2) !== null && _v$table !== void 0 && _v$table.datasourceId) {
|
|
649
534
|
fetchColumns(newMeta[i].table2, newMeta[i].table2.datasourceId, v.columns, function () {
|
|
@@ -651,8 +536,6 @@ var useStore = function useStore() {
|
|
|
651
536
|
if (v.isSubquery) {} else {
|
|
652
537
|
newMeta[i].columns = columns || [];
|
|
653
538
|
}
|
|
654
|
-
fillDefaultDatasourceTypeInTable(newMeta[i].table2, _isExit);
|
|
655
|
-
fillDefaultDatasourceTypeInColumns(newMeta[i].columns, newMeta[i].table2.datasourceType);
|
|
656
539
|
setMeta(newMeta, groupIndex, 'init', data);
|
|
657
540
|
}, false, _isSubquery, _isExit);
|
|
658
541
|
return (0, _objectSpread2["default"])({}, v);
|
|
@@ -663,8 +546,6 @@ var useStore = function useStore() {
|
|
|
663
546
|
if (v.isSubquery) {} else {
|
|
664
547
|
newMeta[i].columns = columns || [];
|
|
665
548
|
}
|
|
666
|
-
fillDefaultDatasourceTypeInTable(newMeta[i].table, _isExit);
|
|
667
|
-
fillDefaultDatasourceTypeInColumns(newMeta[i].columns, newMeta[i].table.datasourceType);
|
|
668
549
|
setMeta(newMeta, groupIndex, 'init', data);
|
|
669
550
|
}, false, _isSubquery, _isExit);
|
|
670
551
|
return (0, _objectSpread2["default"])({}, v);
|
|
@@ -783,7 +664,6 @@ var useStore = function useStore() {
|
|
|
783
664
|
tableUuid: '',
|
|
784
665
|
datasourceId: '',
|
|
785
666
|
datasourceName: '',
|
|
786
|
-
datasourceType: '',
|
|
787
667
|
fieldAlias: '',
|
|
788
668
|
fieldUuid: '',
|
|
789
669
|
fields: []
|
|
@@ -795,7 +675,6 @@ var useStore = function useStore() {
|
|
|
795
675
|
name_zh: mainTable.table.name_zh,
|
|
796
676
|
datasourceId: mainTable.table.datasourceId,
|
|
797
677
|
datasourceName: mainTable.table.datasourceName,
|
|
798
|
-
datasourceType: mainTable.table.datasourceType || '',
|
|
799
678
|
fieldAlias: '',
|
|
800
679
|
fieldUuid: '',
|
|
801
680
|
fields: []
|
|
@@ -813,8 +692,7 @@ var useStore = function useStore() {
|
|
|
813
692
|
alias: '',
|
|
814
693
|
tableUuid: '',
|
|
815
694
|
datasourceId: '',
|
|
816
|
-
datasourceName: ''
|
|
817
|
-
datasourceType: ''
|
|
695
|
+
datasourceName: ''
|
|
818
696
|
},
|
|
819
697
|
columns: [],
|
|
820
698
|
expressions: []
|
|
@@ -869,8 +747,7 @@ var useStore = function useStore() {
|
|
|
869
747
|
alias: '',
|
|
870
748
|
tableUuid: '',
|
|
871
749
|
datasourceId: '',
|
|
872
|
-
datasourceName: ''
|
|
873
|
-
datasourceType: ''
|
|
750
|
+
datasourceName: ''
|
|
874
751
|
}
|
|
875
752
|
};
|
|
876
753
|
}
|
|
@@ -1025,14 +902,12 @@ var useStore = function useStore() {
|
|
|
1025
902
|
return _cacheColumnsMap[tableId] || [];
|
|
1026
903
|
};
|
|
1027
904
|
var setDataset = function setDataset(datasourceId, tables) {
|
|
1028
|
-
var datasourceType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
1029
905
|
var map = (0, _objectSpread2["default"])({}, _cacheSource2TableMap);
|
|
1030
|
-
map[
|
|
906
|
+
map[datasourceId] = tables;
|
|
1031
907
|
set_cacheSource2TableMap(map);
|
|
1032
908
|
};
|
|
1033
909
|
var getDataset = function getDataset(datasourceId) {
|
|
1034
|
-
|
|
1035
|
-
return _cacheSource2TableMap[getDatasetCacheKey(datasourceId, datasourceType)] || [];
|
|
910
|
+
return _cacheSource2TableMap[datasourceId] || [];
|
|
1036
911
|
};
|
|
1037
912
|
var reset = function reset() {
|
|
1038
913
|
_setMeta(defaultMeta);
|
package/lib/cjs/index.js
CHANGED
|
@@ -82,16 +82,10 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
|
|
|
82
82
|
var store = (0, _useState["default"])();
|
|
83
83
|
(0, _react.useEffect)(function () {
|
|
84
84
|
getTables && store.setFetchDatasetFn(getTables);
|
|
85
|
-
}, [getTables]);
|
|
86
|
-
(0, _react.useEffect)(function () {
|
|
87
85
|
getColumns && store.setFetchColumnsFn(getColumns);
|
|
88
|
-
}, [getColumns]);
|
|
89
|
-
(0, _react.useEffect)(function () {
|
|
90
86
|
onChange && store.setFetchChangeFn(onChange);
|
|
91
|
-
}, [onChange]);
|
|
92
|
-
(0, _react.useEffect)(function () {
|
|
93
87
|
getModuleDiffCode && store.setFetchDiffFn(getModuleDiffCode);
|
|
94
|
-
}, [
|
|
88
|
+
}, []);
|
|
95
89
|
(0, _react.useEffect)(function () {
|
|
96
90
|
store.setProps(props);
|
|
97
91
|
}, [props]);
|
package/lib/cjs/locale/en.js
CHANGED
|
@@ -175,6 +175,7 @@ var _default = exports["default"] = (0, _index.register)('en', {
|
|
|
175
175
|
'metabase.validationFailed': 'Validation failed. Do you still want to save?',
|
|
176
176
|
'metabase.validationFilter': 'The filter configuration is incorrect. Saving is prohibited!',
|
|
177
177
|
'metabase.validationFormula': 'The formula configuration is incorrect. Saving is prohibited!',
|
|
178
|
+
'metabase.validationFormulaSave': 'The formula configuration is incorrect. Do you still want to save?',
|
|
178
179
|
'metabase.prompt': 'Prompt',
|
|
179
180
|
'metabase.copy': 'Copy',
|
|
180
181
|
'metabase.copySuccess': 'Copy success',
|
package/lib/cjs/locale/zh.js
CHANGED
|
@@ -175,6 +175,7 @@ var _default = exports["default"] = (0, _index.register)('zh', {
|
|
|
175
175
|
'metabase.validationFailed': '校验未通过,是否依然保存?',
|
|
176
176
|
'metabase.validationFilter': '过滤器配置有误,禁止保存!',
|
|
177
177
|
'metabase.validationFormula': '公式配置有误,禁止保存!',
|
|
178
|
+
'metabase.validationFormulaSave': '公式配置有误,是否依然保存?',
|
|
178
179
|
'metabase.prompt': '提示',
|
|
179
180
|
'metabase.copy': '复制',
|
|
180
181
|
'metabase.copySuccess': '复制成功',
|
package/lib/cjs/store/types.d.ts
CHANGED
|
@@ -123,7 +123,6 @@ export interface AtomsField {
|
|
|
123
123
|
tableUuid: string;
|
|
124
124
|
datasourceName: string;
|
|
125
125
|
datasourceId: string;
|
|
126
|
-
datasourceType?: string;
|
|
127
126
|
type: AtomsTypeEnum.FIELD;
|
|
128
127
|
}
|
|
129
128
|
export interface AtomsInputString {
|
|
@@ -189,20 +188,23 @@ export interface TableType {
|
|
|
189
188
|
id: string;
|
|
190
189
|
alias: string;
|
|
191
190
|
tableUuid: string;
|
|
191
|
+
table_type?: string;
|
|
192
192
|
}
|
|
193
193
|
export type MetaData_TableType = TableType & DatasourceType;
|
|
194
194
|
export interface MetaData_ColumnsType {
|
|
195
195
|
name: string;
|
|
196
196
|
id: string;
|
|
197
|
+
fieldId?: string;
|
|
197
198
|
name_zh?: string;
|
|
198
199
|
fieldAlias: string;
|
|
199
200
|
fieldUuid: string;
|
|
201
|
+
tableId?: string;
|
|
202
|
+
tableUuid?: string;
|
|
200
203
|
realName?: string;
|
|
201
204
|
database_type: SQL_COLUMN_TYPE | '';
|
|
202
205
|
special_type: SpecialType | '';
|
|
203
206
|
datasourceId: string;
|
|
204
207
|
datasourceName: string;
|
|
205
|
-
datasourceType?: string;
|
|
206
208
|
select: boolean;
|
|
207
209
|
summarizeType?: MetaSummarize_Enum;
|
|
208
210
|
}
|
|
@@ -231,7 +233,6 @@ export interface MetaJoin_TalbeType {
|
|
|
231
233
|
alias: string;
|
|
232
234
|
datasourceName: string;
|
|
233
235
|
datasourceId: string;
|
|
234
|
-
datasourceType?: string;
|
|
235
236
|
quotes?: string;
|
|
236
237
|
columns?: MetaData_ColumnsType[];
|
|
237
238
|
}
|
|
@@ -291,7 +292,6 @@ export interface MetaSummarize_Group {
|
|
|
291
292
|
quotes: string;
|
|
292
293
|
datasourceId: string;
|
|
293
294
|
datasourceName: string;
|
|
294
|
-
datasourceType?: string;
|
|
295
295
|
atoms?: AtomsItem[];
|
|
296
296
|
summarizeType: MetaSummarize_Enum;
|
|
297
297
|
[params: string]: any;
|
|
@@ -309,7 +309,6 @@ export interface MetaSummarize_By {
|
|
|
309
309
|
id: string;
|
|
310
310
|
datasourceId: string;
|
|
311
311
|
datasourceName: string;
|
|
312
|
-
datasourceType?: string;
|
|
313
312
|
realName?: string;
|
|
314
313
|
sql: string;
|
|
315
314
|
database_type: SQL_COLUMN_TYPE | '';
|
package/lib/cjs/types.d.ts
CHANGED
|
@@ -10,7 +10,6 @@ export interface MetaListProps {
|
|
|
10
10
|
}
|
|
11
11
|
export interface FetchOptions {
|
|
12
12
|
isExit: boolean;
|
|
13
|
-
datasourceType?: string;
|
|
14
13
|
}
|
|
15
14
|
export interface MetabaseProps {
|
|
16
15
|
loading?: boolean;
|
|
@@ -71,16 +70,9 @@ export interface OptionItem {
|
|
|
71
70
|
label: string;
|
|
72
71
|
icon?: React.ReactNode;
|
|
73
72
|
}
|
|
74
|
-
export interface DatasourceTypeOption {
|
|
75
|
-
value: string;
|
|
76
|
-
label: string;
|
|
77
|
-
}
|
|
78
73
|
export interface DatasourceType {
|
|
79
74
|
datasourceId: string;
|
|
80
75
|
datasourceName: string;
|
|
81
|
-
defaultDatasourceType?: string;
|
|
82
|
-
datasourceType?: string;
|
|
83
|
-
datasourceTypeList?: DatasourceTypeOption[];
|
|
84
76
|
}
|
|
85
77
|
export interface SqlVisionBuilderRef {
|
|
86
78
|
reset: () => void;
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { MetaListType } from '../store/types';
|
|
2
|
+
export declare const getTableIdFirstKey: (table?: any) => string;
|
|
3
|
+
export declare const isSameTableByIdFirst: (left?: any, right?: any) => boolean;
|
|
4
|
+
export declare const getColumnIdFirstKey: (column?: any) => string;
|
|
5
|
+
export declare const isSameColumnByIdFirst: (left?: any, right?: any) => boolean;
|
|
2
6
|
export declare const throttle: (fn: Function, wait?: number) => Function;
|
|
3
7
|
export declare const debounce: (fn: Function, wait?: number) => () => void;
|
|
4
8
|
export type ScreenType = {
|