@gingkoo/pandora-metabase 1.0.141 → 1.0.143

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 (33) hide show
  1. package/lib/cjs/components/dialog/formula-list/LogicGroup.d.ts +8 -5
  2. package/lib/cjs/components/dialog/formula-list/LogicGroup.js +64 -18
  3. package/lib/cjs/components/dialog/formula-list/index.js +374 -153
  4. package/lib/cjs/components/dialog/formula-list/index.less +18 -5
  5. package/lib/cjs/components/dialog/formula-list/utils.js +45 -17
  6. package/lib/cjs/components/dialog/select-column/index.js +5 -2
  7. package/lib/cjs/components/dialog/select-summarize/index.js +7 -0
  8. package/lib/cjs/components/modules/summarize/group-by.js +10 -1
  9. package/lib/cjs/components/modules/summarize/select-index.js +3 -1
  10. package/lib/cjs/hooks/use-state.js +167 -75
  11. package/lib/cjs/index.js +17 -3
  12. package/lib/cjs/store/types.d.ts +4 -4
  13. package/lib/cjs/types.d.ts +20 -1
  14. package/lib/cjs/utils/transformSql.js +51 -38
  15. package/lib/cjs/utils.d.ts +1 -0
  16. package/lib/cjs/utils.js +327 -57
  17. package/lib/es/components/dialog/formula-list/LogicGroup.d.ts +8 -5
  18. package/lib/es/components/dialog/formula-list/LogicGroup.js +65 -19
  19. package/lib/es/components/dialog/formula-list/index.js +373 -152
  20. package/lib/es/components/dialog/formula-list/index.less +18 -5
  21. package/lib/es/components/dialog/formula-list/utils.js +45 -17
  22. package/lib/es/components/dialog/select-column/index.js +5 -2
  23. package/lib/es/components/dialog/select-summarize/index.js +7 -0
  24. package/lib/es/components/modules/summarize/group-by.js +10 -1
  25. package/lib/es/components/modules/summarize/select-index.js +3 -1
  26. package/lib/es/hooks/use-state.js +167 -75
  27. package/lib/es/index.js +18 -4
  28. package/lib/es/store/types.d.ts +4 -4
  29. package/lib/es/types.d.ts +20 -1
  30. package/lib/es/utils/transformSql.js +52 -39
  31. package/lib/es/utils.d.ts +1 -0
  32. package/lib/es/utils.js +326 -56
  33. package/package.json +1 -1
@@ -1,12 +1,19 @@
1
1
  .preview-box {
2
- .pd-Radio-button-solid .pd-Radio-button.pd-Radio-checked {
3
- background-color: #509ee3;
4
- border-color: #509ee3;
5
- }
6
2
  .preview-container {
7
3
  width: 100%;
8
4
  }
9
5
 
6
+ .Sqb-FormulaPreviewHeader {
7
+ display: flex;
8
+ align-items: center;
9
+ gap: 8px;
10
+ flex-wrap: wrap;
11
+
12
+ p {
13
+ margin: 0;
14
+ }
15
+ }
16
+
10
17
  .isSqlError {
11
18
  background-color: rgba(255, 0, 0, 0.1) !important;
12
19
  padding: 5px;
@@ -20,6 +27,12 @@
20
27
  // font-size: 10px;
21
28
  }
22
29
  }
30
+
31
+ .Sqb-FormulaSqlPreview {
32
+ max-height: 100%;
33
+ overflow: auto;
34
+ }
35
+
23
36
  .Sqb-Filter-item {
24
37
  --sqb-item-shell-margin-x: 14px;
25
38
  --sqb-item-gap-x: 8px;
@@ -1441,7 +1454,7 @@
1441
1454
  vertical-align: middle;
1442
1455
  }
1443
1456
 
1444
- .Sqb-FormulaGroup.logic-group > .Sqb-TableName.logic-operator {
1457
+ .Sqb-FormulaGroup.logic-group .Sqb-TableName.logic-operator {
1445
1458
  justify-content: center;
1446
1459
  flex: 0 0 32px;
1447
1460
  width: 32px;
@@ -212,14 +212,17 @@ export var getTemplateItem = function getTemplateItem(type, item) {
212
212
  };
213
213
  } else if (type === AtomsTypeEnum.AND_OR) {
214
214
  return {
215
- operator: 'and',
216
- leftAtoms: [{
217
- val: '',
218
- type: AtomsTypeEnum.UNKNOWN
219
- }],
220
- rightAtoms: [{
221
- val: '',
222
- type: AtomsTypeEnum.UNKNOWN
215
+ items: [{
216
+ atoms: [{
217
+ val: '',
218
+ type: AtomsTypeEnum.UNKNOWN
219
+ }]
220
+ }, {
221
+ operator: 'and',
222
+ atoms: [{
223
+ val: '',
224
+ type: AtomsTypeEnum.UNKNOWN
225
+ }]
223
226
  }],
224
227
  quotes: '',
225
228
  type: type
@@ -270,12 +273,20 @@ var _isOk = function isOk(rhsVal) {
270
273
  return _isOk(clause.whenAtoms || []) && _isOk(clause.thenAtoms || []);
271
274
  }) && _isOk(v.caseAtoms || []) && _isOk(v.elseAtoms || []);
272
275
  } else if (v.type === AtomsTypeEnum.AND_OR) {
273
- var hasBinarySides = Array.isArray(v.leftAtoms) || Array.isArray(v.rightAtoms);
276
+ if (Array.isArray(v.items) && v.items.length > 0) {
277
+ return v.items.every(function (item, index) {
278
+ var _item$atoms;
279
+ if (index > 0 && !item.operator) return false;
280
+ return Boolean((_item$atoms = item.atoms) === null || _item$atoms === void 0 ? void 0 : _item$atoms.length) && _isOk(item.atoms || []);
281
+ });
282
+ }
283
+ var legacyItem = v;
284
+ var hasBinarySides = Array.isArray(legacyItem.leftAtoms) || Array.isArray(legacyItem.rightAtoms);
274
285
  if (hasBinarySides) {
275
- var _v$leftAtoms, _v$rightAtoms;
276
- return Boolean(v.operator) && Boolean((_v$leftAtoms = v.leftAtoms) === null || _v$leftAtoms === void 0 ? void 0 : _v$leftAtoms.length) && Boolean((_v$rightAtoms = v.rightAtoms) === null || _v$rightAtoms === void 0 ? void 0 : _v$rightAtoms.length) && _isOk(v.leftAtoms || []) && _isOk(v.rightAtoms || []);
286
+ var _legacyItem$leftAtoms, _legacyItem$rightAtom;
287
+ return Boolean(legacyItem.operator) && Boolean((_legacyItem$leftAtoms = legacyItem.leftAtoms) === null || _legacyItem$leftAtoms === void 0 ? void 0 : _legacyItem$leftAtoms.length) && Boolean((_legacyItem$rightAtom = legacyItem.rightAtoms) === null || _legacyItem$rightAtom === void 0 ? void 0 : _legacyItem$rightAtom.length) && _isOk(legacyItem.leftAtoms || []) && _isOk(legacyItem.rightAtoms || []);
277
288
  }
278
- return Boolean(v.operator) && _isOk(v.atoms || []);
289
+ return Boolean(legacyItem.operator) && _isOk(legacyItem.atoms || []);
279
290
  } else if (v.type === AtomsTypeEnum.FORMULA) {
280
291
  if (!v.quotes) {
281
292
  return false;
@@ -401,25 +412,42 @@ export function validateExpressionIntegrity(list) {
401
412
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
402
413
  var item = _step2.value;
403
414
  if (item.type === AtomsTypeEnum.AND_OR) {
404
- if (!item.operator) {
415
+ if (Array.isArray(item.items) && item.items.length > 0) {
416
+ for (var index = 0; index < item.items.length; index++) {
417
+ var logicItem = item.items[index];
418
+ if (index > 0 && !logicItem.operator) {
419
+ return {
420
+ isError: true,
421
+ error: 'AND / OR 结构缺少操作符'
422
+ };
423
+ }
424
+ var _nestedError = validateExpressionIntegrity(logicItem.atoms || []);
425
+ if (_nestedError.isError) {
426
+ return _nestedError;
427
+ }
428
+ }
429
+ continue;
430
+ }
431
+ var legacyItem = item;
432
+ if (!legacyItem.operator) {
405
433
  return {
406
434
  isError: true,
407
435
  error: 'AND / OR 结构缺少操作符'
408
436
  };
409
437
  }
410
- var hasBinarySides = Array.isArray(item.leftAtoms) || Array.isArray(item.rightAtoms);
438
+ var hasBinarySides = Array.isArray(legacyItem.leftAtoms) || Array.isArray(legacyItem.rightAtoms);
411
439
  if (hasBinarySides) {
412
- var leftError = validateExpressionIntegrity(item.leftAtoms || []);
440
+ var leftError = validateExpressionIntegrity(legacyItem.leftAtoms || []);
413
441
  if (leftError.isError) {
414
442
  return leftError;
415
443
  }
416
- var rightError = validateExpressionIntegrity(item.rightAtoms || []);
444
+ var rightError = validateExpressionIntegrity(legacyItem.rightAtoms || []);
417
445
  if (rightError.isError) {
418
446
  return rightError;
419
447
  }
420
448
  continue;
421
449
  }
422
- var nestedError = validateExpressionIntegrity(item.atoms || []);
450
+ var nestedError = validateExpressionIntegrity(legacyItem.atoms || []);
423
451
  if (nestedError.isError) {
424
452
  return nestedError;
425
453
  }
@@ -40,10 +40,12 @@ var SelectColumn = function SelectColumn(_ref) {
40
40
  useEffect(function () {
41
41
  setOriginList(function (currentList) {
42
42
  return data.map(function (item) {
43
+ var _ref2, _existingItem$fieldAl;
43
44
  var existingItem = currentList.find(function (current) {
44
45
  return isSameColumnByIdFirst(current, item);
45
46
  });
46
47
  return _objectSpread(_objectSpread(_objectSpread({}, existingItem || {}), item), {}, {
48
+ fieldAlias: (_ref2 = (_existingItem$fieldAl = existingItem === null || existingItem === void 0 ? void 0 : existingItem.fieldAlias) !== null && _existingItem$fieldAl !== void 0 ? _existingItem$fieldAl : item.fieldAlias) !== null && _ref2 !== void 0 ? _ref2 : '',
47
49
  fieldUuid: item.fieldUuid || (existingItem === null || existingItem === void 0 ? void 0 : existingItem.fieldUuid) || uuidv4('field')
48
50
  });
49
51
  });
@@ -82,8 +84,9 @@ var SelectColumn = function SelectColumn(_ref) {
82
84
  }
83
85
  }, [isAllSelect]);
84
86
  function onSelect(columns, newMetaList) {
87
+ var useColumnsDirectly = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
85
88
  var originalData = cloneDeep(originList);
86
- var mergedColumns = originalData.map(function (item) {
89
+ var mergedColumns = useColumnsDirectly ? cloneDeep(columns) : originalData.map(function (item) {
87
90
  var match = columns.find(function (col) {
88
91
  return isSameColumnByIdFirst(col, item);
89
92
  });
@@ -125,7 +128,7 @@ var SelectColumn = function SelectColumn(_ref) {
125
128
  obj: newColumns[i],
126
129
  type: ChangeType.fieldAlias
127
130
  });
128
- onSelect(newColumns, newMetaList);
131
+ onSelect(newColumns, newMetaList, true);
129
132
  setTimeout(function () {
130
133
  store.setClosable(true);
131
134
  }, 0);
@@ -133,6 +133,13 @@ var SelectSummarize = function SelectSummarize(_ref) {
133
133
  return [lhs, item.condition, rhs].filter(Boolean).join(' ').trim();
134
134
  }
135
135
  if (item.type === AtomsTypeEnum.AND_OR) {
136
+ if (Array.isArray(item.items) && item.items.length > 0) {
137
+ var itemsText = item.items.map(function (logicItem, index) {
138
+ var atomsText = getFormulaSummary(logicItem.atoms || []);
139
+ return index === 0 ? atomsText : "".concat(logicItem.operator || 'and', " ").concat(atomsText);
140
+ }).join(' ');
141
+ return "( ".concat(itemsText, " )").replace(/\s+/g, ' ').trim();
142
+ }
136
143
  var hasBinarySides = Array.isArray(item.leftAtoms) || Array.isArray(item.rightAtoms);
137
144
  if (hasBinarySides) {
138
145
  var leftText = getFormulaSummary(item.leftAtoms || []);
@@ -39,6 +39,13 @@ var _getSummaryText = function getSummaryText() {
39
39
  return [lhs, item.condition, rhs].filter(Boolean).join(' ').trim();
40
40
  }
41
41
  if (item.type === AtomsTypeEnum.AND_OR) {
42
+ if (Array.isArray(item.items) && item.items.length > 0) {
43
+ var itemsText = item.items.map(function (logicItem, index) {
44
+ var atomsText = _getSummaryText(logicItem.atoms || []);
45
+ return index === 0 ? atomsText : "".concat(logicItem.operator || 'and', " ").concat(atomsText);
46
+ }).join(' ');
47
+ return "( ".concat(itemsText, " )").replace(/\s+/g, ' ').trim();
48
+ }
42
49
  var hasBinarySides = Array.isArray(item.leftAtoms) || Array.isArray(item.rightAtoms);
43
50
  if (hasBinarySides) {
44
51
  var leftText = _getSummaryText(item.leftAtoms || []);
@@ -433,7 +440,9 @@ var GroupBy = function GroupBy(props) {
433
440
  if (_found) return _found;
434
441
  }
435
442
  if (item.type === AtomsTypeEnum.AND_OR) {
436
- var _found2 = _getFirstField([].concat(_toConsumableArray(item.leftAtoms || []), _toConsumableArray(item.rightAtoms || []), _toConsumableArray(item.atoms || [])));
443
+ var _found2 = _getFirstField([].concat(_toConsumableArray((item.items || []).flatMap(function (logicItem) {
444
+ return logicItem.atoms || [];
445
+ })), _toConsumableArray(item.leftAtoms || []), _toConsumableArray(item.rightAtoms || []), _toConsumableArray(item.atoms || [])));
437
446
  if (_found2) return _found2;
438
447
  }
439
448
  if (item.type === AtomsTypeEnum.CASE_WHEN) {
@@ -346,7 +346,9 @@ var SelectIndex = function SelectIndex(props) {
346
346
  if (_found) return _found;
347
347
  }
348
348
  if (item.type === AtomsTypeEnum.AND_OR) {
349
- var _found2 = _getFirstField([].concat(_toConsumableArray(item.leftAtoms || []), _toConsumableArray(item.rightAtoms || []), _toConsumableArray(item.atoms || [])));
349
+ var _found2 = _getFirstField([].concat(_toConsumableArray((item.items || []).flatMap(function (logicItem) {
350
+ return logicItem.atoms || [];
351
+ })), _toConsumableArray(item.leftAtoms || []), _toConsumableArray(item.rightAtoms || []), _toConsumableArray(item.atoms || [])));
350
352
  if (_found2) return _found2;
351
353
  }
352
354
  if (item.type === AtomsTypeEnum.CASE_WHEN) {
@@ -180,30 +180,46 @@ var useStore = function useStore() {
180
180
  _useState60 = _slicedToArray(_useState59, 2),
181
181
  moduleDiff = _useState60[0],
182
182
  setModuleDiff = _useState60[1];
183
- var _useState61 = useState([]),
183
+ var _useState61 = useState(false),
184
184
  _useState62 = _slicedToArray(_useState61, 2),
185
- sourceData = _useState62[0],
186
- setSourceData = _useState62[1];
185
+ showFormulaSql = _useState62[0],
186
+ setShowFormulaSql = _useState62[1];
187
187
  var _useState63 = useState(false),
188
188
  _useState64 = _slicedToArray(_useState63, 2),
189
- moduleCopy = _useState64[0],
190
- setModuleCopy = _useState64[1];
189
+ showFormulaDiff = _useState64[0],
190
+ setShowFormulaDiff = _useState64[1];
191
191
  var _useState65 = useState(false),
192
192
  _useState66 = _slicedToArray(_useState65, 2),
193
- isMetabaseCopy = _useState66[0],
194
- setIsMetabaseCopy = _useState66[1];
193
+ hasFormulaSqlCode = _useState66[0],
194
+ setHasFormulaSqlCode = _useState66[1];
195
195
  var _useState67 = useState(false),
196
196
  _useState68 = _slicedToArray(_useState67, 2),
197
- joinAliasConflictCheck = _useState68[0],
198
- setJoinAliasConflictCheck = _useState68[1];
197
+ hasFormulaDiffCode = _useState68[0],
198
+ setHasFormulaDiffCode = _useState68[1];
199
199
  var _useState69 = useState([]),
200
200
  _useState70 = _slicedToArray(_useState69, 2),
201
- existsError = _useState70[0],
202
- setExistsError = _useState70[1];
203
- var _useState71 = useState(storage._metabaseCopyModule || []),
201
+ sourceData = _useState70[0],
202
+ setSourceData = _useState70[1];
203
+ var _useState71 = useState(false),
204
204
  _useState72 = _slicedToArray(_useState71, 2),
205
- metabaseCopyModule = _useState72[0],
206
- setMetabaseCopyModule = _useState72[1];
205
+ moduleCopy = _useState72[0],
206
+ setModuleCopy = _useState72[1];
207
+ var _useState73 = useState(false),
208
+ _useState74 = _slicedToArray(_useState73, 2),
209
+ isMetabaseCopy = _useState74[0],
210
+ setIsMetabaseCopy = _useState74[1];
211
+ var _useState75 = useState(false),
212
+ _useState76 = _slicedToArray(_useState75, 2),
213
+ joinAliasConflictCheck = _useState76[0],
214
+ setJoinAliasConflictCheck = _useState76[1];
215
+ var _useState77 = useState([]),
216
+ _useState78 = _slicedToArray(_useState77, 2),
217
+ existsError = _useState78[0],
218
+ setExistsError = _useState78[1];
219
+ var _useState79 = useState(storage._metabaseCopyModule || []),
220
+ _useState80 = _slicedToArray(_useState79, 2),
221
+ metabaseCopyModule = _useState80[0],
222
+ setMetabaseCopyModule = _useState80[1];
207
223
  var setFormulaTemplates = function setFormulaTemplates(data) {
208
224
  var newData = data === null || data === void 0 ? void 0 : data.map(function (v) {
209
225
  var children = v.children.map(function (vv) {
@@ -225,6 +241,8 @@ var useStore = function useStore() {
225
241
  var fetchColumnsFn = useRef();
226
242
  var fetchChangeFn = useRef();
227
243
  var fetchDiffFn = useRef();
244
+ var fetchFormulaSqlFn = useRef();
245
+ var fetchFormulaDiffFn = useRef();
228
246
  var fetchExistsError = useRef();
229
247
  var setFetchChangeFn = function setFetchChangeFn(fn) {
230
248
  fetchChangeFn.current = fn;
@@ -232,6 +250,14 @@ var useStore = function useStore() {
232
250
  var setFetchDiffFn = function setFetchDiffFn(fn) {
233
251
  fetchDiffFn.current = fn;
234
252
  };
253
+ var setFetchFormulaSqlFn = function setFetchFormulaSqlFn(fn) {
254
+ fetchFormulaSqlFn.current = fn;
255
+ setHasFormulaSqlCode(Boolean(fn));
256
+ };
257
+ var setFetchFormulaDiffFn = function setFetchFormulaDiffFn(fn) {
258
+ fetchFormulaDiffFn.current = fn;
259
+ setHasFormulaDiffCode(Boolean(fn));
260
+ };
235
261
  var setExistsErrorFn = function () {
236
262
  var _ref = _asyncToGenerator(_regeneratorRuntime.mark(function _callee(fn, value) {
237
263
  var data;
@@ -289,6 +315,60 @@ var useStore = function useStore() {
289
315
  return _ref2.apply(this, arguments);
290
316
  };
291
317
  }();
318
+ var getFormulaSqlCode = function () {
319
+ var _ref3 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee3(value) {
320
+ var data;
321
+ return _regeneratorRuntime.wrap(function (_context3) {
322
+ while (1) switch (_context3.prev = _context3.next) {
323
+ case 0:
324
+ if (fetchFormulaSqlFn.current) {
325
+ _context3.next = 1;
326
+ break;
327
+ }
328
+ return _context3.abrupt("return", '');
329
+ case 1:
330
+ _context3.next = 2;
331
+ return fetchFormulaSqlFn.current(value);
332
+ case 2:
333
+ data = _context3.sent;
334
+ return _context3.abrupt("return", data);
335
+ case 3:
336
+ case "end":
337
+ return _context3.stop();
338
+ }
339
+ }, _callee3);
340
+ }));
341
+ return function getFormulaSqlCode(_x3) {
342
+ return _ref3.apply(this, arguments);
343
+ };
344
+ }();
345
+ var getFormulaDiffCode = function () {
346
+ var _ref4 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee4(params) {
347
+ var data;
348
+ return _regeneratorRuntime.wrap(function (_context4) {
349
+ while (1) switch (_context4.prev = _context4.next) {
350
+ case 0:
351
+ if (fetchFormulaDiffFn.current) {
352
+ _context4.next = 1;
353
+ break;
354
+ }
355
+ return _context4.abrupt("return", undefined);
356
+ case 1:
357
+ _context4.next = 2;
358
+ return fetchFormulaDiffFn.current(params);
359
+ case 2:
360
+ data = _context4.sent;
361
+ return _context4.abrupt("return", data);
362
+ case 3:
363
+ case "end":
364
+ return _context4.stop();
365
+ }
366
+ }, _callee4);
367
+ }));
368
+ return function getFormulaDiffCode(_x4) {
369
+ return _ref4.apply(this, arguments);
370
+ };
371
+ }();
292
372
  var setFetchColumnsFn = function setFetchColumnsFn(fn) {
293
373
  fetchColumnsFn.current = fn;
294
374
  };
@@ -322,84 +402,84 @@ var useStore = function useStore() {
322
402
  }
323
403
  }, [sourceList, isExit, tableFlat]);
324
404
  var getSourceTable = function () {
325
- var _ref3 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee4(source) {
405
+ var _ref5 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee6(source) {
326
406
  var results;
327
- return _regeneratorRuntime.wrap(function (_context4) {
328
- while (1) switch (_context4.prev = _context4.next) {
407
+ return _regeneratorRuntime.wrap(function (_context6) {
408
+ while (1) switch (_context6.prev = _context6.next) {
329
409
  case 0:
330
- _context4.next = 1;
410
+ _context6.next = 1;
331
411
  return Promise.all(source.map(function () {
332
- var _ref4 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee3(v) {
412
+ var _ref6 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee5(v) {
333
413
  var tables;
334
- return _regeneratorRuntime.wrap(function (_context3) {
335
- while (1) switch (_context3.prev = _context3.next) {
414
+ return _regeneratorRuntime.wrap(function (_context5) {
415
+ while (1) switch (_context5.prev = _context5.next) {
336
416
  case 0:
337
- _context3.next = 1;
417
+ _context5.next = 1;
338
418
  return fetchDataset(v.datasourceId);
339
419
  case 1:
340
- tables = _context3.sent;
341
- return _context3.abrupt("return", _objectSpread(_objectSpread({}, v), {}, {
420
+ tables = _context5.sent;
421
+ return _context5.abrupt("return", _objectSpread(_objectSpread({}, v), {}, {
342
422
  children: tables
343
423
  }));
344
424
  case 2:
345
425
  case "end":
346
- return _context3.stop();
426
+ return _context5.stop();
347
427
  }
348
- }, _callee3);
428
+ }, _callee5);
349
429
  }));
350
- return function (_x4) {
351
- return _ref4.apply(this, arguments);
430
+ return function (_x6) {
431
+ return _ref6.apply(this, arguments);
352
432
  };
353
433
  }()));
354
434
  case 1:
355
- results = _context4.sent;
435
+ results = _context6.sent;
356
436
  setSourceTable(results || []);
357
437
  case 2:
358
438
  case "end":
359
- return _context4.stop();
439
+ return _context6.stop();
360
440
  }
361
- }, _callee4);
441
+ }, _callee6);
362
442
  }));
363
- return function getSourceTable(_x3) {
364
- return _ref3.apply(this, arguments);
443
+ return function getSourceTable(_x5) {
444
+ return _ref5.apply(this, arguments);
365
445
  };
366
446
  }();
367
447
  var showToolbar = function showToolbar(name) {
368
448
  return !!~toolbar.indexOf(name);
369
449
  };
370
450
  var fetchDataset = function () {
371
- var _ref5 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee5(datasourceId) {
451
+ var _ref7 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee7(datasourceId) {
372
452
  var tables, _tables;
373
- return _regeneratorRuntime.wrap(function (_context5) {
374
- while (1) switch (_context5.prev = _context5.next) {
453
+ return _regeneratorRuntime.wrap(function (_context7) {
454
+ while (1) switch (_context7.prev = _context7.next) {
375
455
  case 0:
376
456
  tables = getDataset(datasourceId);
377
457
  if (!tables.length) {
378
- _context5.next = 1;
458
+ _context7.next = 1;
379
459
  break;
380
460
  }
381
- return _context5.abrupt("return", tables);
461
+ return _context7.abrupt("return", tables);
382
462
  case 1:
383
- _context5.next = 2;
463
+ _context7.next = 2;
384
464
  return fetchDatasetFn.current(datasourceId, {
385
465
  isExit: isExit
386
466
  });
387
467
  case 2:
388
- _tables = _context5.sent;
468
+ _tables = _context7.sent;
389
469
  setDataset(datasourceId, _tables);
390
- return _context5.abrupt("return", _tables);
470
+ return _context7.abrupt("return", _tables);
391
471
  case 3:
392
472
  case "end":
393
- return _context5.stop();
473
+ return _context7.stop();
394
474
  }
395
- }, _callee5);
475
+ }, _callee7);
396
476
  }));
397
- return function fetchDataset(_x5) {
398
- return _ref5.apply(this, arguments);
477
+ return function fetchDataset(_x7) {
478
+ return _ref7.apply(this, arguments);
399
479
  };
400
480
  }();
401
481
  var fetchColumns = function () {
402
- var _ref6 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee6(table, datasourceId) {
482
+ var _ref8 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee8(table, datasourceId) {
403
483
  var _columns2;
404
484
  var oldColumns,
405
485
  callback,
@@ -417,15 +497,15 @@ var useStore = function useStore() {
417
497
  tableName,
418
498
  columns,
419
499
  _columns,
420
- _args6 = arguments;
421
- return _regeneratorRuntime.wrap(function (_context6) {
422
- while (1) switch (_context6.prev = _context6.next) {
500
+ _args8 = arguments;
501
+ return _regeneratorRuntime.wrap(function (_context8) {
502
+ while (1) switch (_context8.prev = _context8.next) {
423
503
  case 0:
424
- oldColumns = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : [];
425
- callback = _args6.length > 3 ? _args6[3] : undefined;
426
- isSelect = _args6.length > 4 && _args6[4] !== undefined ? _args6[4] : isSelectFields;
427
- _isSubquery = _args6.length > 5 && _args6[5] !== undefined ? _args6[5] : isSubquery;
428
- _isExit = _args6.length > 6 && _args6[6] !== undefined ? _args6[6] : isExit;
504
+ oldColumns = _args8.length > 2 && _args8[2] !== undefined ? _args8[2] : [];
505
+ callback = _args8.length > 3 ? _args8[3] : undefined;
506
+ isSelect = _args8.length > 4 && _args8[4] !== undefined ? _args8[4] : isSelectFields;
507
+ _isSubquery = _args8.length > 5 && _args8[5] !== undefined ? _args8[5] : isSubquery;
508
+ _isExit = _args8.length > 6 && _args8[6] !== undefined ? _args8[6] : isExit;
429
509
  oldObj = {};
430
510
  selectId = oldColumns.filter(function (v) {
431
511
  oldObj[v.id] = v;
@@ -443,51 +523,53 @@ var useStore = function useStore() {
443
523
  tableName = table.name;
444
524
  columns = getColumns(tableName);
445
525
  if (columns.length) {
446
- _context6.next = 2;
526
+ _context8.next = 2;
447
527
  break;
448
528
  }
449
- _context6.next = 1;
529
+ _context8.next = 1;
450
530
  return fetchColumnsFn.current(extra, datasourceId, {
451
531
  isExit: _isExit
452
532
  });
453
533
  case 1:
454
- columns = _context6.sent;
534
+ columns = _context8.sent;
455
535
  setColumns(tableName, columns);
456
536
  case 2:
457
537
  _columns = (_columns2 = columns) === null || _columns2 === void 0 ? void 0 : _columns2.map(function (v) {
538
+ var _ref9, _obj$fieldAlias;
458
539
  var obj = oldColumns.find(function (oldColumn) {
459
540
  return isSameColumnByIdFirst(oldColumn, v);
460
541
  });
461
542
  var select = selectId.includes(v.id) || Boolean(obj === null || obj === void 0 ? void 0 : obj.select);
462
543
  return _objectSpread(_objectSpread(_objectSpread({}, obj), v), {}, {
463
544
  select: isSelect || select,
545
+ fieldAlias: (_ref9 = (_obj$fieldAlias = obj === null || obj === void 0 ? void 0 : obj.fieldAlias) !== null && _obj$fieldAlias !== void 0 ? _obj$fieldAlias : v.fieldAlias) !== null && _ref9 !== void 0 ? _ref9 : '',
464
546
  fieldUuid: (obj === null || obj === void 0 ? void 0 : obj.fieldUuid) || v.fieldUuid || uuidv4('field')
465
547
  });
466
548
  });
467
549
  typeof callback === 'function' && callback(_columns);
468
550
  case 3:
469
551
  case "end":
470
- return _context6.stop();
552
+ return _context8.stop();
471
553
  }
472
- }, _callee6);
554
+ }, _callee8);
473
555
  }));
474
- return function fetchColumns(_x6, _x7) {
475
- return _ref6.apply(this, arguments);
556
+ return function fetchColumns(_x8, _x9) {
557
+ return _ref8.apply(this, arguments);
476
558
  };
477
559
  }();
478
560
  var setMeta = function () {
479
- var _ref7 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee7(curData, groupInd) {
561
+ var _ref0 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee9(curData, groupInd) {
480
562
  var changeObj,
481
563
  _metaList,
482
564
  prevMeta,
483
565
  newMeta,
484
566
  isChange,
485
- _args7 = arguments;
486
- return _regeneratorRuntime.wrap(function (_context7) {
487
- while (1) switch (_context7.prev = _context7.next) {
567
+ _args9 = arguments;
568
+ return _regeneratorRuntime.wrap(function (_context9) {
569
+ while (1) switch (_context9.prev = _context9.next) {
488
570
  case 0:
489
- changeObj = _args7.length > 2 && _args7[2] !== undefined ? _args7[2] : {};
490
- _metaList = _args7.length > 3 ? _args7[3] : undefined;
571
+ changeObj = _args9.length > 2 && _args9[2] !== undefined ? _args9[2] : {};
572
+ _metaList = _args9.length > 3 ? _args9[3] : undefined;
491
573
  prevMeta = cloneDeep(_metaList || latestMetaListRef.current);
492
574
  newMeta = cloneDeep(prevMeta);
493
575
  if (newMeta[groupInd]) {
@@ -495,28 +577,28 @@ var useStore = function useStore() {
495
577
  _setMeta(newMeta);
496
578
  }
497
579
  if (!(changeObj === 'init')) {
498
- _context7.next = 1;
580
+ _context9.next = 1;
499
581
  break;
500
582
  }
501
- return _context7.abrupt("return");
583
+ return _context9.abrupt("return");
502
584
  case 1:
503
- _context7.next = 2;
585
+ _context9.next = 2;
504
586
  return fetchChangeFn.current(splitByUnion(newMeta), changeObj, {
505
587
  isExit: isExit
506
588
  });
507
589
  case 2:
508
- isChange = _context7.sent;
590
+ isChange = _context9.sent;
509
591
  if (isChange === false) {
510
592
  _setMeta(prevMeta);
511
593
  }
512
594
  case 3:
513
595
  case "end":
514
- return _context7.stop();
596
+ return _context9.stop();
515
597
  }
516
- }, _callee7);
598
+ }, _callee9);
517
599
  }));
518
- return function setMeta(_x8, _x9) {
519
- return _ref7.apply(this, arguments);
600
+ return function setMeta(_x0, _x1) {
601
+ return _ref0.apply(this, arguments);
520
602
  };
521
603
  }();
522
604
  var setPreData = function setPreData(data) {
@@ -998,10 +1080,20 @@ var useStore = function useStore() {
998
1080
  setMetabaseCopy: setMetabaseCopy,
999
1081
  moduleDiff: moduleDiff,
1000
1082
  setModuleDiff: setModuleDiff,
1083
+ showFormulaSql: showFormulaSql,
1084
+ setShowFormulaSql: setShowFormulaSql,
1085
+ showFormulaDiff: showFormulaDiff,
1086
+ setShowFormulaDiff: setShowFormulaDiff,
1087
+ hasFormulaSqlCode: hasFormulaSqlCode,
1088
+ hasFormulaDiffCode: hasFormulaDiffCode,
1001
1089
  sourceData: sourceData,
1002
1090
  setSourceData: setSourceData,
1003
1091
  setFetchDiffFn: setFetchDiffFn,
1004
1092
  getModuleDiffCode: getModuleDiffCode,
1093
+ setFetchFormulaSqlFn: setFetchFormulaSqlFn,
1094
+ getFormulaSqlCode: getFormulaSqlCode,
1095
+ setFetchFormulaDiffFn: setFetchFormulaDiffFn,
1096
+ getFormulaDiffCode: getFormulaDiffCode,
1005
1097
  isSubquery: isSubquery,
1006
1098
  setIsSubquery: setIsSubquery,
1007
1099
  moduleCopy: moduleCopy,