@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.
Files changed (65) hide show
  1. package/lib/cjs/components/dialog/expression/index.js +0 -1
  2. package/lib/cjs/components/dialog/formula-list/utils.js +0 -3
  3. package/lib/cjs/components/dialog/select-column/index.js +2 -2
  4. package/lib/cjs/components/dialog/select-column-multiple/index.d.ts +0 -1
  5. package/lib/cjs/components/dialog/select-column-multiple/index.js +44 -19
  6. package/lib/cjs/components/dialog/select-join-column/index.js +23 -7
  7. package/lib/cjs/components/dialog/select-join-column-multiple/index.js +15 -6
  8. package/lib/cjs/components/dialog/select-permission-table/index.js +2 -2
  9. package/lib/cjs/components/dialog/select-summarize/index.js +1 -3
  10. package/lib/cjs/components/dialog/select-table/index.d.ts +1 -2
  11. package/lib/cjs/components/dialog/select-table/index.js +230 -210
  12. package/lib/cjs/components/dialog/select-table/index.less +51 -36
  13. package/lib/cjs/components/metabase/index.js +34 -16
  14. package/lib/cjs/components/modules/components/item-name.js +0 -1
  15. package/lib/cjs/components/modules/custom-column.js +3 -7
  16. package/lib/cjs/components/modules/filter.js +3 -6
  17. package/lib/cjs/components/modules/join-data.js +41 -87
  18. package/lib/cjs/components/modules/permission-table.js +5 -9
  19. package/lib/cjs/components/modules/sort.js +1 -2
  20. package/lib/cjs/components/modules/summarize/group-by.js +1 -8
  21. package/lib/cjs/components/modules/summarize/select-index.js +1 -4
  22. package/lib/cjs/components/modules/table-data.js +28 -44
  23. package/lib/cjs/hooks/use-state.js +22 -147
  24. package/lib/cjs/index.js +1 -7
  25. package/lib/cjs/locale/en.js +1 -0
  26. package/lib/cjs/locale/zh.js +1 -0
  27. package/lib/cjs/store/types.d.ts +4 -5
  28. package/lib/cjs/types.d.ts +0 -8
  29. package/lib/cjs/utils/helper.d.ts +4 -0
  30. package/lib/cjs/utils/helper.js +102 -1
  31. package/lib/cjs/utils/transformSql.js +0 -2
  32. package/lib/cjs/utils.js +38 -18
  33. package/lib/es/components/dialog/expression/index.js +0 -1
  34. package/lib/es/components/dialog/formula-list/utils.js +0 -3
  35. package/lib/es/components/dialog/select-column/index.js +3 -3
  36. package/lib/es/components/dialog/select-column-multiple/index.d.ts +0 -1
  37. package/lib/es/components/dialog/select-column-multiple/index.js +45 -21
  38. package/lib/es/components/dialog/select-join-column/index.js +24 -8
  39. package/lib/es/components/dialog/select-join-column-multiple/index.js +16 -7
  40. package/lib/es/components/dialog/select-permission-table/index.js +3 -3
  41. package/lib/es/components/dialog/select-summarize/index.js +1 -3
  42. package/lib/es/components/dialog/select-table/index.d.ts +1 -2
  43. package/lib/es/components/dialog/select-table/index.js +232 -212
  44. package/lib/es/components/dialog/select-table/index.less +51 -36
  45. package/lib/es/components/metabase/index.js +34 -16
  46. package/lib/es/components/modules/components/item-name.js +0 -1
  47. package/lib/es/components/modules/custom-column.js +3 -7
  48. package/lib/es/components/modules/filter.js +3 -6
  49. package/lib/es/components/modules/join-data.js +42 -88
  50. package/lib/es/components/modules/permission-table.js +6 -10
  51. package/lib/es/components/modules/sort.js +1 -2
  52. package/lib/es/components/modules/summarize/group-by.js +1 -8
  53. package/lib/es/components/modules/summarize/select-index.js +1 -4
  54. package/lib/es/components/modules/table-data.js +29 -45
  55. package/lib/es/hooks/use-state.js +23 -148
  56. package/lib/es/index.js +1 -7
  57. package/lib/es/locale/en.js +1 -0
  58. package/lib/es/locale/zh.js +1 -0
  59. package/lib/es/store/types.d.ts +4 -5
  60. package/lib/es/types.d.ts +0 -8
  61. package/lib/es/utils/helper.d.ts +4 -0
  62. package/lib/es/utils/helper.js +101 -0
  63. package/lib/es/utils/transformSql.js +0 -2
  64. package/lib/es/utils.js +39 -19
  65. 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$table5, _meta$table6, _meta$table8, _meta$table9, _store$showMainColumn;
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, _meta$table2;
49
- var tableName, tables, names;
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
- tableName = (_meta$table = meta.table) === null || _meta$table === void 0 ? void 0 : _meta$table.name;
54
- if (meta !== null && meta !== void 0 && (_meta$table2 = meta.table) !== null && _meta$table2 !== void 0 && _meta$table2.datasourceId) {
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, meta.table.datasourceType);
62
+ return store === null || store === void 0 ? void 0 : store.fetchDataset(meta.table.datasourceId);
63
63
  case 2:
64
64
  tables = _context.sent;
65
- names = (tables === null || tables === void 0 ? void 0 : tables.map(function (v) {
66
- return v.name;
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 (meta.table.datasourceId !== data.datasourceId || meta.table.datasourceType !== data.datasourceType || meta.table.name !== data.name) {
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 newCol.fieldUuid && oldCol.fieldUuid === newCol.fieldUuid || newCol.fieldAlias && oldCol.fieldAlias === newCol.fieldAlias || oldCol.name === newCol.name;
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$table3;
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$table3 = meta.table) === null || _meta$table3 === void 0 ? void 0 : _meta$table3.alias;
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$table4;
336
+ var _meta$table3;
353
337
  e.stopPropagation();
354
- onChangeTableAlias(((_meta$table4 = meta.table) === null || _meta$table4 === void 0 ? void 0 : _meta$table4.alias) || '');
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$table5 = meta.table) !== null && _meta$table5 !== void 0 && _meta$table5.alias && store.tableEnableAlias ? "as ".concat((_meta$table6 = meta.table) === null || _meta$table6 === void 0 ? void 0 : _meta$table6.alias) : '', " ") : (0, _locale.__)('SqlQueryBuilder.setSubQuery')]
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$table7;
375
+ var _meta$table6;
392
376
  e.stopPropagation();
393
- onChangeTableAlias(((_meta$table7 = meta.table) === null || _meta$table7 === void 0 ? void 0 : _meta$table7.alias) || '');
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$table8 = meta.table) !== null && _meta$table8 !== void 0 && _meta$table8.alias && store.tableEnableAlias ? "as ".concat((_meta$table9 = meta.table) === null || _meta$table9 === void 0 ? void 0 : _meta$table9.alias) : '') : (0, _locale.__)('SqlQueryBuilder.pickTable')]
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", "datasourceType", "column"];
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 datasourceType, tables;
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, datasourceType);
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 _preProps$current;
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
- datasourceType = _args5.length > 1 && _args5[1] !== undefined ? _args5[1] : '';
474
- force = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : false;
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 fetchTables(datasourceId, {
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, datasourceType);
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, datasourceType = table.datasourceType, column = table.column, extra = (0, _objectWithoutProperties2["default"])(table, _excluded);
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
- tableCacheKey = getDatasetCacheKey("".concat(datasourceId, "_").concat(tableName), datasourceType || '');
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(tableCacheKey, columns);
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 select = selectId.includes(v.id);
564
- var obj = {};
565
- obj = oldObj[v.id] || {};
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[getDatasetCacheKey(datasourceId, datasourceType)] = tables;
906
+ map[datasourceId] = tables;
1031
907
  set_cacheSource2TableMap(map);
1032
908
  };
1033
909
  var getDataset = function getDataset(datasourceId) {
1034
- var datasourceType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
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
- }, [getModuleDiffCode]);
88
+ }, []);
95
89
  (0, _react.useEffect)(function () {
96
90
  store.setProps(props);
97
91
  }, [props]);
@@ -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',
@@ -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': '复制成功',
@@ -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 | '';
@@ -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 = {