@gingkoo/pandora-metabase 1.0.125 → 1.0.127

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 +15 -5
  2. package/lib/cjs/components/dialog/expression/index.less +31 -16
  3. package/lib/cjs/components/dialog/formula-list/CaseWhenGroup.d.ts +14 -5
  4. package/lib/cjs/components/dialog/formula-list/CaseWhenGroup.js +236 -62
  5. package/lib/cjs/components/dialog/formula-list/LogicGroup.d.ts +3 -2
  6. package/lib/cjs/components/dialog/formula-list/LogicGroup.js +19 -11
  7. package/lib/cjs/components/dialog/formula-list/index.d.ts +1 -0
  8. package/lib/cjs/components/dialog/formula-list/index.js +658 -174
  9. package/lib/cjs/components/dialog/formula-list/index.less +1438 -145
  10. package/lib/cjs/components/dialog/formula-list/utils.js +50 -19
  11. package/lib/cjs/components/dialog/select-column-multiple/index.d.ts +1 -0
  12. package/lib/cjs/components/dialog/select-column-multiple/index.js +42 -22
  13. package/lib/cjs/components/dialog/select-summarize/index.js +10 -2
  14. package/lib/cjs/components/dialog/select-table/index.d.ts +2 -1
  15. package/lib/cjs/components/dialog/select-table/index.js +197 -52
  16. package/lib/cjs/components/dialog/select-table/index.less +45 -2
  17. package/lib/cjs/components/metabase/index.less +156 -39
  18. package/lib/cjs/components/modules/custom-column.js +7 -3
  19. package/lib/cjs/components/modules/filter.js +6 -3
  20. package/lib/cjs/components/modules/join-data.js +62 -14
  21. package/lib/cjs/components/modules/permission-table.js +8 -4
  22. package/lib/cjs/components/modules/sort.js +2 -1
  23. package/lib/cjs/components/modules/summarize/group-by.js +20 -6
  24. package/lib/cjs/components/modules/summarize/select-index.js +9 -5
  25. package/lib/cjs/components/modules/table-data.js +21 -3
  26. package/lib/cjs/hooks/use-state.js +143 -17
  27. package/lib/cjs/index.js +7 -1
  28. package/lib/cjs/store/types.d.ts +14 -7
  29. package/lib/cjs/types.d.ts +8 -0
  30. package/lib/cjs/utils/transformSql.js +44 -21
  31. package/lib/cjs/utils.d.ts +2 -2
  32. package/lib/cjs/utils.js +381 -63
  33. package/lib/es/components/dialog/expression/index.js +15 -5
  34. package/lib/es/components/dialog/expression/index.less +31 -16
  35. package/lib/es/components/dialog/formula-list/CaseWhenGroup.d.ts +14 -5
  36. package/lib/es/components/dialog/formula-list/CaseWhenGroup.js +238 -64
  37. package/lib/es/components/dialog/formula-list/LogicGroup.d.ts +3 -2
  38. package/lib/es/components/dialog/formula-list/LogicGroup.js +19 -11
  39. package/lib/es/components/dialog/formula-list/index.d.ts +1 -0
  40. package/lib/es/components/dialog/formula-list/index.js +660 -176
  41. package/lib/es/components/dialog/formula-list/index.less +1438 -145
  42. package/lib/es/components/dialog/formula-list/utils.js +50 -19
  43. package/lib/es/components/dialog/select-column-multiple/index.d.ts +1 -0
  44. package/lib/es/components/dialog/select-column-multiple/index.js +42 -22
  45. package/lib/es/components/dialog/select-summarize/index.js +10 -2
  46. package/lib/es/components/dialog/select-table/index.d.ts +2 -1
  47. package/lib/es/components/dialog/select-table/index.js +197 -52
  48. package/lib/es/components/dialog/select-table/index.less +45 -2
  49. package/lib/es/components/metabase/index.less +156 -39
  50. package/lib/es/components/modules/custom-column.js +7 -3
  51. package/lib/es/components/modules/filter.js +6 -3
  52. package/lib/es/components/modules/join-data.js +62 -14
  53. package/lib/es/components/modules/permission-table.js +8 -4
  54. package/lib/es/components/modules/sort.js +2 -1
  55. package/lib/es/components/modules/summarize/group-by.js +21 -7
  56. package/lib/es/components/modules/summarize/select-index.js +10 -6
  57. package/lib/es/components/modules/table-data.js +21 -3
  58. package/lib/es/hooks/use-state.js +143 -17
  59. package/lib/es/index.js +7 -1
  60. package/lib/es/store/types.d.ts +14 -7
  61. package/lib/es/types.d.ts +8 -0
  62. package/lib/es/utils/transformSql.js +45 -22
  63. package/lib/es/utils.d.ts +2 -2
  64. package/lib/es/utils.js +382 -64
  65. package/package.json +1 -1
package/lib/cjs/utils.js CHANGED
@@ -253,44 +253,348 @@ var AliasType;
253
253
  AliasType["table"] = "table";
254
254
  AliasType["field"] = "field";
255
255
  })(AliasType || (AliasType = {}));
256
+ var normalizeAtomQuotes = function normalizeAtomQuotes(quotes) {
257
+ return quotes.replace(/\s+/g, ' ').trim();
258
+ };
259
+ var getExpressionConditionText = function getExpressionConditionText(condition) {
260
+ var localeKey = {
261
+ 等于: 'filter.equal',
262
+ 不等于: 'filter.notEqual',
263
+ 大于: 'filter.greaterThan',
264
+ 小于: 'filter.lessThan',
265
+ 介于之间: 'filter.inBetween',
266
+ 大于或等于: 'filter.greaterThanOrEqualTo',
267
+ 小于或等于: 'filter.lessThanOrEqualTo',
268
+ 为空: 'filter.empty',
269
+ 不为空: 'filter.notEmpty',
270
+ 包含: 'filter.contain',
271
+ 不包含: 'filter.notInclude',
272
+ '以...开始': 'filter.startWith',
273
+ '以...结束': 'filter.endWith',
274
+ '不以...开始': 'filter.notStartWith',
275
+ '不以...结束': 'filter.notEndWith',
276
+ 早于: 'filter.earlierThan',
277
+ 晚于: 'filter.laterThan',
278
+ 是空的: 'filter.isEmpty',
279
+ In: 'filter.within',
280
+ 'Not In': 'filter.withnotin',
281
+ 无需结果: 'filter.notresults',
282
+ 正则匹配: 'filter.regularMatch'
283
+ }[condition];
284
+ return localeKey ? (0, _locale.__)(localeKey) : condition;
285
+ };
286
+ var getSelectAtomText = function getSelectAtomText(item) {
287
+ var displayField = item.displayField || 'value';
288
+ var getOptionText = function getOptionText(value) {
289
+ var _ref, _option$displayField;
290
+ var option = (item.options || []).find(function (currentOption) {
291
+ return currentOption.value === value;
292
+ });
293
+ if (!option) return value || '';
294
+ return String((_ref = (_option$displayField = option[displayField]) !== null && _option$displayField !== void 0 ? _option$displayField : option.value) !== null && _ref !== void 0 ? _ref : '');
295
+ };
296
+ if (Array.isArray(item.val)) {
297
+ return item.val.map(function (currentValue) {
298
+ return getOptionText(String(currentValue));
299
+ }).join(', ');
300
+ }
301
+ return getOptionText(String(item.val || ''));
302
+ };
303
+ var _getAtomDisplayText = function getAtomDisplayText(item) {
304
+ if (!item) return '';
305
+ if (item.type === _types.AtomsTypeEnum.FIELD) {
306
+ return item.fieldAlias || item.fieldName || '';
307
+ }
308
+ if (item.type === _types.AtomsTypeEnum.CASE_WHEN) {
309
+ return buildCaseWhenQuotes(item);
310
+ }
311
+ if (item.type === _types.AtomsTypeEnum.AND_OR) {
312
+ return buildAndOrQuotes(item);
313
+ }
314
+ if (item.type === _types.AtomsTypeEnum.EXPRESSION) {
315
+ return buildExpressionQuotes(item);
316
+ }
317
+ if (item.type === _types.AtomsTypeEnum.FORMULA) {
318
+ return buildFormulaQuotes(item);
319
+ }
320
+ if (item.type === _types.AtomsTypeEnum.COLLECTION) {
321
+ return (item.list || []).map(_getAtomDisplayText).join(' ');
322
+ }
323
+ if (item.type === _types.AtomsTypeEnum.SELECT) {
324
+ return getSelectAtomText(item);
325
+ }
326
+ if (item.type === _types.AtomsTypeEnum.EXISTS || item.type === _types.AtomsTypeEnum.NOT_EXISTS || item.type === _types.AtomsTypeEnum.SUB_QUERY) {
327
+ return item.quotes || '';
328
+ }
329
+ var val = item.val;
330
+ if (Array.isArray(val)) return val.join(', ');
331
+ return val || val === 0 ? String(val) : '';
332
+ };
333
+ var buildFormulaQuotes = function buildFormulaQuotes(item) {
334
+ var argsText = (item.args || []).map(_getAtomDisplayText).join(' , ');
335
+ return normalizeAtomQuotes("".concat(item.name || '', " ( ").concat(argsText, " )"));
336
+ };
337
+ var buildAndOrQuotes = function buildAndOrQuotes(item) {
338
+ var hasBinarySides = Array.isArray(item.leftAtoms) || Array.isArray(item.rightAtoms);
339
+ if (hasBinarySides) {
340
+ var leftText = (item.leftAtoms || []).map(_getAtomDisplayText).join(' ');
341
+ var rightText = (item.rightAtoms || []).map(_getAtomDisplayText).join(' ');
342
+ return normalizeAtomQuotes("( ".concat(leftText, " ").concat(item.operator || 'and', " ").concat(rightText, " )"));
343
+ }
344
+ var atomsText = (item.atoms || []).map(_getAtomDisplayText).join(' ');
345
+ return normalizeAtomQuotes("".concat(item.operator || 'and', " ( ").concat(atomsText, " )"));
346
+ };
347
+ var buildCaseWhenQuotes = function buildCaseWhenQuotes(item) {
348
+ var caseAtomsText = (item.caseAtoms || []).map(_getAtomDisplayText).join(' ');
349
+ var whenClausesText = (item.whenClauses || []).map(function (clause) {
350
+ var whenText = (clause.whenAtoms || []).map(_getAtomDisplayText).join(' ');
351
+ var thenText = (clause.thenAtoms || []).map(_getAtomDisplayText).join(' ');
352
+ return "when ".concat(whenText, " then ").concat(thenText).trim();
353
+ }).join(' ');
354
+ var elseAtomsText = (item.elseAtoms || []).length ? " else ".concat((item.elseAtoms || []).map(_getAtomDisplayText).join(' ')) : '';
355
+ return normalizeAtomQuotes("case ".concat(caseAtomsText, " ").concat(whenClausesText).concat(elseAtomsText, " end"));
356
+ };
357
+ var getExpressionAtomsText = function getExpressionAtomsText() {
358
+ var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
359
+ var formula = arguments.length > 1 ? arguments[1] : undefined;
360
+ var names = items.map(_getAtomDisplayText).join(' || ');
361
+ if ((formula === null || formula === void 0 ? void 0 : formula.type) === 'SUBSTR') {
362
+ var _formula$params, _formula$params2;
363
+ return "SUBSTR(".concat(names, ",").concat(formula === null || formula === void 0 || (_formula$params = formula.params) === null || _formula$params === void 0 ? void 0 : _formula$params[1], ",").concat(formula === null || formula === void 0 || (_formula$params2 = formula.params) === null || _formula$params2 === void 0 ? void 0 : _formula$params2[2], ")");
364
+ }
365
+ return names;
366
+ };
367
+ var getExpressionFirstValue = function getExpressionFirstValue() {
368
+ var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
369
+ var firstItem = items[0];
370
+ if (!firstItem) {
371
+ return {
372
+ firstVal: '',
373
+ secondVal: ''
374
+ };
375
+ }
376
+ if (Array.isArray(firstItem.val)) {
377
+ return {
378
+ firstVal: firstItem.val[0] || '',
379
+ secondVal: firstItem.val[1] || ''
380
+ };
381
+ }
382
+ return {
383
+ firstVal: firstItem.val || firstItem.val === 0 ? String(firstItem.val) : _getAtomDisplayText(firstItem),
384
+ secondVal: ''
385
+ };
386
+ };
387
+ var buildExpressionQuotes = function buildExpressionQuotes(item) {
388
+ var condition = item.condition || '';
389
+ var lhsText = getExpressionAtomsText(item.lhs || [], item.formula);
390
+ var rhsText = getExpressionAtomsText(item.rhs || [], item.formula);
391
+ var _getExpressionFirstVa = getExpressionFirstValue(item.rhs || []),
392
+ firstVal = _getExpressionFirstVa.firstVal,
393
+ secondVal = _getExpressionFirstVa.secondVal;
394
+ if (condition === '以...开始') {
395
+ return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? "startWith ".concat(firstVal) : "\u4EE5 ".concat(firstVal, " \u5F00\u59CB")));
396
+ }
397
+ if (condition === '不以...开始') {
398
+ return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? "not startWith ".concat(firstVal) : "\u4E0D\u4EE5 ".concat(firstVal, " \u5F00\u59CB")));
399
+ }
400
+ if (condition === '以...结束') {
401
+ return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? "endWith ".concat(firstVal) : "\u4EE5 ".concat(firstVal, " \u7ED3\u675F")));
402
+ }
403
+ if (condition === '不以...结束') {
404
+ return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? "not endWith ".concat(firstVal) : "\u4E0D\u4EE5 ".concat(firstVal, " \u7ED3\u675F")));
405
+ }
406
+ if (condition === '介于之间') {
407
+ return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? "Between ".concat(firstVal, " and ").concat(secondVal) : "\u4ECB\u4E8E".concat(firstVal, "\u548C").concat(secondVal, "\u4E4B\u95F4")));
408
+ }
409
+ if (condition === '前') {
410
+ return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? "previous ".concat(firstVal).concat(secondVal) : "\u4E0A\u4E00\u4E2A".concat(firstVal).concat(secondVal)));
411
+ }
412
+ if (condition === '下一个') {
413
+ return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? "next ".concat(firstVal).concat(secondVal) : "\u4E0B\u4E00\u4E2A".concat(firstVal).concat(secondVal)));
414
+ }
415
+ if (condition === '在') {
416
+ return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? 'is' : '是', " ").concat(firstVal));
417
+ }
418
+ if (condition === '是空的') {
419
+ return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? 'is empty' : '为空'));
420
+ }
421
+ if (condition === '不是空的') {
422
+ return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? 'not empty' : '不为空'));
423
+ }
424
+ if (condition === '当前') {
425
+ if (firstVal === '天') {
426
+ return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? 'today' : '今天'));
427
+ }
428
+ return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? "this is ".concat(firstVal) : "\u8FD9\u4E2A".concat(firstVal)));
429
+ }
430
+ if (condition === 'In' || condition === 'Not In') {
431
+ return normalizeAtomQuotes("".concat(lhsText, " ").concat(getExpressionConditionText(condition), " (").concat(firstVal, ")"));
432
+ }
433
+ return normalizeAtomQuotes("".concat(lhsText, " ").concat(getExpressionConditionText(condition), " ").concat(rhsText || firstVal));
434
+ };
435
+ var syncAtomQuotes = function syncAtomQuotes(item) {
436
+ if (item.type === _types.AtomsTypeEnum.JOIN_DEFAULT) {
437
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), {}, {
438
+ lhs: syncAtomQuotesList(item.lhs || []),
439
+ rhs: syncAtomQuotesList(item.rhs || [])
440
+ });
441
+ }
442
+ if (item.type === _types.AtomsTypeEnum.EXPRESSION) {
443
+ var nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), {}, {
444
+ lhs: syncAtomQuotesList(item.lhs || []),
445
+ rhs: syncAtomQuotesList(item.rhs || [])
446
+ });
447
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, nextItem), {}, {
448
+ quotes: buildExpressionQuotes(nextItem)
449
+ });
450
+ }
451
+ if (item.type === _types.AtomsTypeEnum.FORMULA) {
452
+ var _nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), {}, {
453
+ args: syncAtomQuotesList(item.args || [])
454
+ });
455
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _nextItem), {}, {
456
+ quotes: buildFormulaQuotes(_nextItem)
457
+ });
458
+ }
459
+ if (item.type === _types.AtomsTypeEnum.COLLECTION) {
460
+ var _nextItem2 = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), {}, {
461
+ list: syncAtomQuotesList(item.list || [])
462
+ });
463
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _nextItem2), {}, {
464
+ quotes: (_nextItem2.list || []).map(_getAtomDisplayText).join(' ')
465
+ });
466
+ }
467
+ if (item.type === _types.AtomsTypeEnum.CASE_WHEN) {
468
+ var _nextItem3 = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), {}, {
469
+ caseAtoms: syncAtomQuotesList(item.caseAtoms || []),
470
+ whenClauses: (item.whenClauses || []).map(function (clause) {
471
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, clause), {}, {
472
+ whenAtoms: syncAtomQuotesList(clause.whenAtoms || []),
473
+ thenAtoms: syncAtomQuotesList(clause.thenAtoms || [])
474
+ });
475
+ }),
476
+ elseAtoms: syncAtomQuotesList(item.elseAtoms || [])
477
+ });
478
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _nextItem3), {}, {
479
+ quotes: buildCaseWhenQuotes(_nextItem3)
480
+ });
481
+ }
482
+ if (item.type === _types.AtomsTypeEnum.AND_OR) {
483
+ var hasBinarySides = Array.isArray(item.leftAtoms) || Array.isArray(item.rightAtoms);
484
+ var _nextItem4 = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), hasBinarySides ? {
485
+ atoms: undefined,
486
+ leftAtoms: syncAtomQuotesList(item.leftAtoms || []),
487
+ rightAtoms: syncAtomQuotesList(item.rightAtoms || [])
488
+ } : {
489
+ atoms: syncAtomQuotesList(item.atoms || [])
490
+ });
491
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _nextItem4), {}, {
492
+ quotes: buildAndOrQuotes(_nextItem4)
493
+ });
494
+ }
495
+ return item;
496
+ };
497
+ var syncAtomQuotesList = function syncAtomQuotesList(items) {
498
+ return items.map(syncAtomQuotes);
499
+ };
500
+ var isSameAliasTargetTable = function isSameAliasTargetTable(item, target) {
501
+ if (target.tableUuid && item.tableUuid && item.tableUuid === target.tableUuid) {
502
+ return true;
503
+ }
504
+ if (target.datasourceId && item.datasourceId && item.datasourceId !== target.datasourceId) {
505
+ return false;
506
+ }
507
+ if (target.tableId && item.tableId && item.tableId === target.tableId) {
508
+ return true;
509
+ }
510
+ return Boolean(target.tableName && item.tableName && item.tableName === target.tableName);
511
+ };
512
+ var isAliasTargetField = function isAliasTargetField(item, target) {
513
+ if (target.uuid && item.fieldUuid && item.fieldUuid === target.uuid) {
514
+ return true;
515
+ }
516
+ var sameTable = isSameAliasTargetTable(item, target);
517
+ if (target.fieldId && item.fieldId && item.fieldId === target.fieldId) {
518
+ return sameTable || !target.tableId;
519
+ }
520
+ return Boolean(target.fieldName && item.fieldName && item.fieldName === target.fieldName && sameTable);
521
+ };
256
522
  var _changeAlias = function changeAlias(items, val, type) {
257
523
  return items.map(function (v) {
524
+ var nextItem;
258
525
  if (v.type === _types.AtomsTypeEnum.JOIN_DEFAULT || v.type === _types.AtomsTypeEnum.EXPRESSION) {
259
- return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
526
+ nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
260
527
  lhs: _changeAlias(v.lhs, val, type),
261
528
  rhs: _changeAlias(v.rhs, val, type)
262
529
  });
263
530
  } else if (v.type === _types.AtomsTypeEnum.FIELD) {
531
+ nextItem = (0, _objectSpread6["default"])({}, v);
264
532
  if (type === AliasType.table && v.tableUuid === val.uuid) {
265
- v.tableAlias = val.alias;
533
+ nextItem.tableAlias = val.alias;
266
534
  }
267
- if (type === AliasType.field && v.fieldUuid === val.uuid) {
268
- v.fieldAlias = val.alias;
535
+ if (type === AliasType.field && isAliasTargetField(v, val)) {
536
+ nextItem.fieldAlias = val.alias;
269
537
  }
270
- return v;
271
538
  } else if (v.type === _types.AtomsTypeEnum.EXISTS || v.type === _types.AtomsTypeEnum.NOT_EXISTS) {
539
+ nextItem = (0, _objectSpread6["default"])({}, v);
272
540
  if (type === AliasType.table) {
273
- v.notExists = changeTableAlias(v.notExists || [], {
274
- tableUuid: val.uuid,
541
+ nextItem.notExists = changeTableAlias(v.notExists || [], {
542
+ tableUuid: val.uuid || '',
275
543
  alias: val.alias
276
544
  });
277
545
  }
278
546
  if (type === AliasType.field) {
279
- v.notExists = changeFieldAlias(v.notExists || [], {
280
- fieldUuid: val.uuid,
547
+ nextItem.notExists = changeFieldAlias(v.notExists || [], {
548
+ fieldUuid: val.uuid || '',
549
+ fieldAlias: val.alias
550
+ });
551
+ }
552
+ } else if (v.type === _types.AtomsTypeEnum.SUB_QUERY) {
553
+ nextItem = (0, _objectSpread6["default"])({}, v);
554
+ if (type === AliasType.table) {
555
+ nextItem.subQuery = changeTableAlias(v.subQuery || [], {
556
+ tableUuid: val.uuid || '',
557
+ alias: val.alias
558
+ });
559
+ }
560
+ if (type === AliasType.field) {
561
+ nextItem.subQuery = changeFieldAlias(v.subQuery || [], {
562
+ fieldUuid: val.uuid || '',
281
563
  fieldAlias: val.alias
282
564
  });
283
565
  }
284
- return v;
285
566
  } else if (v.type === _types.AtomsTypeEnum.FORMULA) {
286
- v.args = _changeAlias(v.args, val, type);
287
- return v;
567
+ nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
568
+ args: _changeAlias(v.args || [], val, type)
569
+ });
288
570
  } else if (v.type === _types.AtomsTypeEnum.COLLECTION) {
289
- v.list = _changeAlias(v.list, val, type);
290
- return v;
571
+ nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
572
+ list: _changeAlias(v.list || [], val, type)
573
+ });
574
+ } else if (v.type === _types.AtomsTypeEnum.CASE_WHEN) {
575
+ nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
576
+ caseAtoms: _changeAlias(v.caseAtoms || [], val, type),
577
+ whenClauses: (v.whenClauses || []).map(function (clause) {
578
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, clause), {}, {
579
+ whenAtoms: _changeAlias(clause.whenAtoms || [], val, type),
580
+ thenAtoms: _changeAlias(clause.thenAtoms || [], val, type)
581
+ });
582
+ }),
583
+ elseAtoms: _changeAlias(v.elseAtoms || [], val, type)
584
+ });
585
+ } else if (v.type === _types.AtomsTypeEnum.AND_OR) {
586
+ var hasBinarySides = Array.isArray(v.leftAtoms) || Array.isArray(v.rightAtoms);
587
+ nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), hasBinarySides ? {
588
+ atoms: undefined,
589
+ leftAtoms: _changeAlias(v.leftAtoms || [], val, type),
590
+ rightAtoms: _changeAlias(v.rightAtoms || [], val, type)
591
+ } : {
592
+ atoms: _changeAlias(v.atoms || [], val, type)
593
+ });
291
594
  } else {
292
- return v;
595
+ nextItem = v;
293
596
  }
597
+ return syncAtomQuotes(nextItem);
294
598
  });
295
599
  };
296
600
  function isValidSQLAlias(str) {
@@ -353,27 +657,27 @@ var changeTableAlias = exports.changeTableAlias = function changeTableAlias(list
353
657
  }
354
658
  if (v.type === _enum.TypeEnum.summarize) {
355
659
  v.group.map(function (group) {
356
- if (group.tableUuid === tableUuid) {
660
+ var groupAtoms = group.atoms;
661
+ if (groupAtoms && groupAtoms.length > 0) {
662
+ group.atoms = _changeAlias(groupAtoms, {
663
+ uuid: tableUuid,
664
+ alias: alias
665
+ }, AliasType.table);
666
+ group.sql = (0, _helper.summarizeToSql)(v.group, group).sql;
667
+ } else if (group.tableUuid === tableUuid) {
357
668
  group.alias = alias;
358
- var groupAtoms = group.atoms;
359
- if (groupAtoms && groupAtoms.length > 0) {
360
- group.atoms = _changeAlias(groupAtoms, {
361
- uuid: tableUuid,
362
- alias: alias
363
- }, AliasType.table);
364
- }
365
669
  group.sql = (0, _helper.summarizeToSql)(v.group, group).sql;
366
670
  }
367
671
  });
368
672
  v.by.map(function (by) {
369
- if (by.tableUuid === tableUuid) {
673
+ if (by.atoms && by.atoms.length > 0) {
674
+ by.atoms = _changeAlias(by.atoms, {
675
+ uuid: tableUuid,
676
+ alias: alias
677
+ }, AliasType.table);
678
+ by.sql = (0, _helper.summarizeByToSql)(by);
679
+ } else if (by.tableUuid === tableUuid) {
370
680
  by.alias = alias;
371
- if (by.atoms && by.atoms.length > 0) {
372
- by.atoms = _changeAlias(by.atoms, {
373
- uuid: tableUuid,
374
- alias: alias
375
- }, AliasType.table);
376
- }
377
681
  by.sql = (0, _helper.summarizeByToSql)(by);
378
682
  }
379
683
  });
@@ -390,74 +694,76 @@ var changeTableAlias = exports.changeTableAlias = function changeTableAlias(list
390
694
  })) || [];
391
695
  };
392
696
  var changeFieldAlias = exports.changeFieldAlias = function changeFieldAlias(list, curObj) {
697
+ var _firstData$table, _firstData$table2, _firstData$table3, _firstData$table4;
393
698
  var _cloneDeep2 = (0, _cloneDeep3["default"])(curObj),
394
699
  uuid = _cloneDeep2.fieldUuid,
395
- alias = _cloneDeep2.fieldAlias;
700
+ alias = _cloneDeep2.fieldAlias,
701
+ fieldId = _cloneDeep2.id,
702
+ fieldName = _cloneDeep2.name,
703
+ datasourceId = _cloneDeep2.datasourceId,
704
+ table = _cloneDeep2.table,
705
+ tableId = _cloneDeep2.tableId,
706
+ tableUuid = _cloneDeep2.tableUuid;
707
+ var firstData = list.find(function (item) {
708
+ return item.type === _enum.TypeEnum.data;
709
+ });
710
+ var aliasTarget = {
711
+ uuid: uuid,
712
+ alias: alias,
713
+ fieldId: curObj.fieldId || fieldId,
714
+ fieldName: fieldName,
715
+ tableId: tableId || (firstData === null || firstData === void 0 || (_firstData$table = firstData.table) === null || _firstData$table === void 0 ? void 0 : _firstData$table.id),
716
+ tableName: table || (firstData === null || firstData === void 0 || (_firstData$table2 = firstData.table) === null || _firstData$table2 === void 0 ? void 0 : _firstData$table2.name),
717
+ tableUuid: tableUuid || (firstData === null || firstData === void 0 || (_firstData$table3 = firstData.table) === null || _firstData$table3 === void 0 ? void 0 : _firstData$table3.tableUuid),
718
+ datasourceId: datasourceId || (firstData === null || firstData === void 0 || (_firstData$table4 = firstData.table) === null || _firstData$table4 === void 0 ? void 0 : _firstData$table4.datasourceId)
719
+ };
396
720
  var newList = (0, _cloneDeep3["default"])(list);
397
721
  return (newList === null || newList === void 0 ? void 0 : newList.map(function (v) {
398
722
  if (v.type === _enum.TypeEnum.data) {}
399
723
  if (v.type === _enum.TypeEnum.joinData) {
400
724
  if (v.expressions && v.expressions.length > 0) {
401
- v.expressions = _changeAlias(v.expressions, {
402
- uuid: uuid,
403
- alias: alias
404
- }, AliasType.field);
725
+ v.expressions = _changeAlias(v.expressions, aliasTarget, AliasType.field);
405
726
  }
406
727
  }
407
728
  if (v.type === _enum.TypeEnum.customColumn) {
408
729
  v.customColumn.map(function (item) {
409
730
  if (item.formulaList && item.formulaList.length > 0) {
410
- item.formulaList = _changeAlias(item.formulaList, {
411
- uuid: uuid,
412
- alias: alias
413
- }, AliasType.field);
731
+ item.formulaList = _changeAlias(item.formulaList, aliasTarget, AliasType.field);
414
732
  }
415
733
  });
416
734
  }
417
735
  if (v.type === _enum.TypeEnum.rowLimit) {}
418
736
  if (v.type === _enum.TypeEnum.summarize) {
419
737
  v.group.map(function (group) {
420
- if (group.fieldUuid === uuid) {
738
+ var groupAtoms = group.atoms;
739
+ if (groupAtoms && groupAtoms.length > 0) {
740
+ group.atoms = _changeAlias(groupAtoms, aliasTarget, AliasType.field);
741
+ group.sql = (0, _helper.summarizeToSql)(v.group, group).sql;
742
+ } else if (group.fieldUuid === uuid) {
421
743
  group.fieldAlias = alias;
422
- var groupAtoms = group.atoms;
423
- if (groupAtoms && groupAtoms.length > 0) {
424
- group.atoms = _changeAlias(groupAtoms, {
425
- uuid: uuid,
426
- alias: alias
427
- }, AliasType.field);
428
- }
429
744
  group.sql = (0, _helper.summarizeToSql)(v.group, group).sql;
430
745
  }
431
746
  });
432
747
  v.by.map(function (by) {
433
- if (by.fieldUuid === uuid) {
748
+ if (by.atoms && by.atoms.length > 0) {
749
+ by.atoms = _changeAlias(by.atoms, aliasTarget, AliasType.field);
750
+ by.sql = (0, _helper.summarizeByToSql)(by);
751
+ } else if (by.fieldUuid === uuid) {
434
752
  by.fieldAlias = alias;
435
- if (by.atoms && by.atoms.length > 0) {
436
- by.atoms = _changeAlias(by.atoms, {
437
- uuid: uuid,
438
- alias: alias
439
- }, AliasType.field);
440
- }
441
753
  by.sql = (0, _helper.summarizeByToSql)(by);
442
754
  }
443
755
  });
444
756
  }
445
757
  if (v.type === _enum.TypeEnum.filter) {
446
758
  if (v.filter && v.filter.length > 0) {
447
- v.filter = _changeAlias(v.filter, {
448
- uuid: uuid,
449
- alias: alias
450
- }, AliasType.field);
759
+ v.filter = _changeAlias(v.filter, aliasTarget, AliasType.field);
451
760
  }
452
761
  }
453
762
  if (v.type === _enum.TypeEnum.sort) {
454
763
  if (v.sort && v.sort.length > 0) {
455
764
  v.sort = v.sort.map(function (sort) {
456
765
  return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, sort), {}, {
457
- expression: _changeAlias(sort.expression, {
458
- uuid: uuid,
459
- alias: alias
460
- }, AliasType.field)
766
+ expression: _changeAlias(sort.expression, aliasTarget, AliasType.field)
461
767
  });
462
768
  });
463
769
  }
@@ -515,7 +821,8 @@ var stripSummarizeTableFields = function stripSummarizeTableFields(record) {
515
821
  tableUuid: '',
516
822
  alias: '',
517
823
  datasourceId: '',
518
- datasourceName: ''
824
+ datasourceName: '',
825
+ datasourceType: ''
519
826
  });
520
827
  };
521
828
  var createSummarizeFieldAtom = function createSummarizeFieldAtom(record) {
@@ -533,6 +840,7 @@ var createSummarizeFieldAtom = function createSummarizeFieldAtom(record) {
533
840
  tableUuid: record.tableUuid || '',
534
841
  datasourceName: record.datasourceName || '',
535
842
  datasourceId: record.datasourceId || '',
843
+ datasourceType: record.datasourceType || '',
536
844
  type: _types.AtomsTypeEnum.FIELD
537
845
  };
538
846
  };
@@ -793,6 +1101,7 @@ function setNewField(field, data) {
793
1101
  }
794
1102
  field.datasourceId = table.datasourceId || '';
795
1103
  field.datasourceName = table.datasourceName || '';
1104
+ field.datasourceType = table.datasourceType || '';
796
1105
  field.tableId = table.id || '';
797
1106
  field.tableName = table.name || '';
798
1107
  field.tableAlias = table.alias || '';
@@ -832,6 +1141,15 @@ var _changeCopyField = exports.changeCopyField = function changeCopyField(items,
832
1141
  } else if (v.type === _types.AtomsTypeEnum.FORMULA) {
833
1142
  v.args = _changeCopyField(v.args, data);
834
1143
  return v;
1144
+ } else if (v.type === _types.AtomsTypeEnum.AND_OR) {
1145
+ var hasBinarySides = Array.isArray(v.leftAtoms) || Array.isArray(v.rightAtoms);
1146
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), hasBinarySides ? {
1147
+ atoms: undefined,
1148
+ leftAtoms: _changeCopyField(v.leftAtoms || [], data),
1149
+ rightAtoms: _changeCopyField(v.rightAtoms || [], data)
1150
+ } : {
1151
+ atoms: _changeCopyField(v.atoms || [], data)
1152
+ });
835
1153
  } else if (v.type === _types.AtomsTypeEnum.COLLECTION) {
836
1154
  v.list = _changeCopyField(v.list, data);
837
1155
  return v;
@@ -11,6 +11,7 @@ import { ChevronODown } from '@gingkoo/pandora-icons';
11
11
  import moment from 'dayjs';
12
12
  import { __, isEn } from '../../../locale';
13
13
  import { ColumnsPopupThemeEnum, SQL_COLUMN_TYPE, SQL_GROUP_TYPE } from '../../../store/enum';
14
+ import { SummarizeAlias } from '../../../store/helper';
14
15
  import { AtomsTypeEnum } from '../../../store/types';
15
16
  import { NUMBER_GROUP, DATE_GROUP } from '../const';
16
17
  import SelectList from '../select-list';
@@ -109,6 +110,13 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
109
110
  return popupContainer || document.body;
110
111
  };
111
112
  var table2Selected = Boolean(rhsVal && (rhsVal === null || rhsVal === void 0 ? void 0 : rhsVal.length) > 0);
113
+ function getFieldDisplayName(field) {
114
+ if (!field) return '';
115
+ if (field.tableId === SummarizeAlias) {
116
+ return field.fieldAlias || field.fieldName || '';
117
+ }
118
+ return field.fieldName || field.fieldAlias || '';
119
+ }
112
120
  var disabled = useMemo(function () {
113
121
  if (!condition) return true;
114
122
  if (~['无需结果'].indexOf(condition)) {
@@ -127,7 +135,7 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
127
135
  });
128
136
  }
129
137
  if (v.type === AtomsTypeEnum.FIELD) {
130
- return v.fieldName;
138
+ return getFieldDisplayName(v);
131
139
  }
132
140
  });
133
141
  return !isOk;
@@ -139,7 +147,7 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
139
147
  var getAtomsQuotesName = function getAtomsQuotesName(items) {
140
148
  var names = items.map(function (v) {
141
149
  if ((v === null || v === void 0 ? void 0 : v.type) === AtomsTypeEnum.FIELD) {
142
- return v.fieldName;
150
+ return getFieldDisplayName(v);
143
151
  } else {
144
152
  return v.val;
145
153
  }
@@ -628,6 +636,7 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
628
636
  tableUuid: '',
629
637
  datasourceName: '',
630
638
  datasourceId: '',
639
+ datasourceType: '',
631
640
  type: AtomsTypeEnum.FIELD
632
641
  }]);
633
642
  }
@@ -686,7 +695,7 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
686
695
  curColumn.lhs.filter(function (v) {
687
696
  return v.type === AtomsTypeEnum.FIELD;
688
697
  }).map(function (v) {
689
- names.push(v.fieldName);
698
+ names.push(getFieldDisplayName(v));
690
699
  });
691
700
  params[0] = names.join(' || ');
692
701
  }
@@ -823,13 +832,14 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
823
832
  className: 'content',
824
833
  children: [rhsVal === null || rhsVal === void 0 ? void 0 : rhsVal.map(function (v, i) {
825
834
  if (v.type === AtomsTypeEnum.FIELD) {
835
+ var displayName = getFieldDisplayName(v);
826
836
  return _jsx("div", {
827
837
  className: cx("Sqb-TableName purple-name", {
828
- notSelected: !v.fieldName
838
+ notSelected: !displayName
829
839
  }),
830
840
  "v-index": i,
831
841
  onClick: selectTable,
832
- children: v.fieldName || __('SqlQueryBuilder.pickTable')
842
+ children: displayName || __('SqlQueryBuilder.pickTable')
833
843
  }, i);
834
844
  }
835
845
  if (v.type === AtomsTypeEnum.CONSTANT) {