@gingkoo/pandora-metabase 1.0.126 → 1.0.128

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 +67 -16
  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 +26 -5
  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 +349 -58
  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 +67 -16
  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 +26 -5
  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 +350 -59
  65. package/package.json +1 -1
package/lib/cjs/utils.js CHANGED
@@ -144,7 +144,7 @@ var getSubColumns = exports.getSubColumns = function getSubColumns(metaList) {
144
144
  _data.columns = _data.columns.concat(prevGroupBy.group.map(function (v) {
145
145
  var _v$sql;
146
146
  return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
147
- name: v.name || v.quotes,
147
+ name: v.fieldAlias || v.name || v.quotes,
148
148
  name_zh: v.name_zh || v.quotes,
149
149
  id: v.id || v.fieldId,
150
150
  realName: ((_v$sql = v.sql) === null || _v$sql === void 0 || (_v$sql = _v$sql.split(' AS ')) === null || _v$sql === void 0 ? void 0 : _v$sql[1]) || '',
@@ -158,7 +158,7 @@ var getSubColumns = exports.getSubColumns = function getSubColumns(metaList) {
158
158
  _data.columns = _data.columns.concat(prevGroupBy.by.map(function (v) {
159
159
  var _v$sql2;
160
160
  return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
161
- name: v.name || v.quotes,
161
+ name: v.fieldAlias || v.name || v.quotes,
162
162
  name_zh: v.name_zh || v.quotes,
163
163
  id: v.id || v.fieldId,
164
164
  realName: ((_v$sql2 = v.sql) === null || _v$sql2 === void 0 || (_v$sql2 = _v$sql2.split(' AS ')) === null || _v$sql2 === void 0 ? void 0 : _v$sql2[1]) || '',
@@ -253,71 +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 || '',
281
549
  fieldAlias: val.alias
282
550
  });
283
551
  }
284
- return v;
285
552
  } else if (v.type === _types.AtomsTypeEnum.SUB_QUERY) {
553
+ nextItem = (0, _objectSpread6["default"])({}, v);
286
554
  if (type === AliasType.table) {
287
- v.subQuery = changeTableAlias(v.subQuery || [], {
288
- tableUuid: val.uuid,
555
+ nextItem.subQuery = changeTableAlias(v.subQuery || [], {
556
+ tableUuid: val.uuid || '',
289
557
  alias: val.alias
290
558
  });
291
559
  }
292
560
  if (type === AliasType.field) {
293
- v.subQuery = changeFieldAlias(v.subQuery || [], {
294
- fieldUuid: val.uuid,
561
+ nextItem.subQuery = changeFieldAlias(v.subQuery || [], {
562
+ fieldUuid: val.uuid || '',
295
563
  fieldAlias: val.alias
296
564
  });
297
565
  }
298
- return v;
299
566
  } else if (v.type === _types.AtomsTypeEnum.FORMULA) {
300
- v.args = _changeAlias(v.args, val, type);
301
- return v;
567
+ nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
568
+ args: _changeAlias(v.args || [], val, type)
569
+ });
302
570
  } else if (v.type === _types.AtomsTypeEnum.COLLECTION) {
303
- v.list = _changeAlias(v.list, val, type);
304
- return v;
571
+ nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
572
+ list: _changeAlias(v.list || [], val, type)
573
+ });
305
574
  } else if (v.type === _types.AtomsTypeEnum.CASE_WHEN) {
306
- v.caseValue = _changeAlias(v.caseValue || [], val, type);
307
- v.branches = (v.branches || []).map(function (branch) {
308
- return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, branch), {}, {
309
- when: _changeAlias(branch.when || [], val, type),
310
- then: _changeAlias(branch.then || [], val, type)
311
- });
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)
312
584
  });
313
- v.elseValue = _changeAlias(v.elseValue || [], val, type);
314
- return v;
315
585
  } else if (v.type === _types.AtomsTypeEnum.AND_OR) {
316
- v.list = _changeAlias(v.list || [], val, type);
317
- return v;
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
+ });
318
594
  } else {
319
- return v;
595
+ nextItem = v;
320
596
  }
597
+ return syncAtomQuotes(nextItem);
321
598
  });
322
599
  };
323
600
  function isValidSQLAlias(str) {
@@ -417,27 +694,41 @@ var changeTableAlias = exports.changeTableAlias = function changeTableAlias(list
417
694
  })) || [];
418
695
  };
419
696
  var changeFieldAlias = exports.changeFieldAlias = function changeFieldAlias(list, curObj) {
697
+ var _firstData$table, _firstData$table2, _firstData$table3, _firstData$table4;
420
698
  var _cloneDeep2 = (0, _cloneDeep3["default"])(curObj),
421
699
  uuid = _cloneDeep2.fieldUuid,
422
- 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
+ };
423
720
  var newList = (0, _cloneDeep3["default"])(list);
424
721
  return (newList === null || newList === void 0 ? void 0 : newList.map(function (v) {
425
722
  if (v.type === _enum.TypeEnum.data) {}
426
723
  if (v.type === _enum.TypeEnum.joinData) {
427
724
  if (v.expressions && v.expressions.length > 0) {
428
- v.expressions = _changeAlias(v.expressions, {
429
- uuid: uuid,
430
- alias: alias
431
- }, AliasType.field);
725
+ v.expressions = _changeAlias(v.expressions, aliasTarget, AliasType.field);
432
726
  }
433
727
  }
434
728
  if (v.type === _enum.TypeEnum.customColumn) {
435
729
  v.customColumn.map(function (item) {
436
730
  if (item.formulaList && item.formulaList.length > 0) {
437
- item.formulaList = _changeAlias(item.formulaList, {
438
- uuid: uuid,
439
- alias: alias
440
- }, AliasType.field);
731
+ item.formulaList = _changeAlias(item.formulaList, aliasTarget, AliasType.field);
441
732
  }
442
733
  });
443
734
  }
@@ -446,10 +737,7 @@ var changeFieldAlias = exports.changeFieldAlias = function changeFieldAlias(list
446
737
  v.group.map(function (group) {
447
738
  var groupAtoms = group.atoms;
448
739
  if (groupAtoms && groupAtoms.length > 0) {
449
- group.atoms = _changeAlias(groupAtoms, {
450
- uuid: uuid,
451
- alias: alias
452
- }, AliasType.field);
740
+ group.atoms = _changeAlias(groupAtoms, aliasTarget, AliasType.field);
453
741
  group.sql = (0, _helper.summarizeToSql)(v.group, group).sql;
454
742
  } else if (group.fieldUuid === uuid) {
455
743
  group.fieldAlias = alias;
@@ -458,10 +746,7 @@ var changeFieldAlias = exports.changeFieldAlias = function changeFieldAlias(list
458
746
  });
459
747
  v.by.map(function (by) {
460
748
  if (by.atoms && by.atoms.length > 0) {
461
- by.atoms = _changeAlias(by.atoms, {
462
- uuid: uuid,
463
- alias: alias
464
- }, AliasType.field);
749
+ by.atoms = _changeAlias(by.atoms, aliasTarget, AliasType.field);
465
750
  by.sql = (0, _helper.summarizeByToSql)(by);
466
751
  } else if (by.fieldUuid === uuid) {
467
752
  by.fieldAlias = alias;
@@ -471,20 +756,14 @@ var changeFieldAlias = exports.changeFieldAlias = function changeFieldAlias(list
471
756
  }
472
757
  if (v.type === _enum.TypeEnum.filter) {
473
758
  if (v.filter && v.filter.length > 0) {
474
- v.filter = _changeAlias(v.filter, {
475
- uuid: uuid,
476
- alias: alias
477
- }, AliasType.field);
759
+ v.filter = _changeAlias(v.filter, aliasTarget, AliasType.field);
478
760
  }
479
761
  }
480
762
  if (v.type === _enum.TypeEnum.sort) {
481
763
  if (v.sort && v.sort.length > 0) {
482
764
  v.sort = v.sort.map(function (sort) {
483
765
  return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, sort), {}, {
484
- expression: _changeAlias(sort.expression, {
485
- uuid: uuid,
486
- alias: alias
487
- }, AliasType.field)
766
+ expression: _changeAlias(sort.expression, aliasTarget, AliasType.field)
488
767
  });
489
768
  });
490
769
  }
@@ -542,7 +821,8 @@ var stripSummarizeTableFields = function stripSummarizeTableFields(record) {
542
821
  tableUuid: '',
543
822
  alias: '',
544
823
  datasourceId: '',
545
- datasourceName: ''
824
+ datasourceName: '',
825
+ datasourceType: ''
546
826
  });
547
827
  };
548
828
  var createSummarizeFieldAtom = function createSummarizeFieldAtom(record) {
@@ -560,6 +840,7 @@ var createSummarizeFieldAtom = function createSummarizeFieldAtom(record) {
560
840
  tableUuid: record.tableUuid || '',
561
841
  datasourceName: record.datasourceName || '',
562
842
  datasourceId: record.datasourceId || '',
843
+ datasourceType: record.datasourceType || '',
563
844
  type: _types.AtomsTypeEnum.FIELD
564
845
  };
565
846
  };
@@ -820,6 +1101,7 @@ function setNewField(field, data) {
820
1101
  }
821
1102
  field.datasourceId = table.datasourceId || '';
822
1103
  field.datasourceName = table.datasourceName || '';
1104
+ field.datasourceType = table.datasourceType || '';
823
1105
  field.tableId = table.id || '';
824
1106
  field.tableName = table.name || '';
825
1107
  field.tableAlias = table.alias || '';
@@ -859,6 +1141,15 @@ var _changeCopyField = exports.changeCopyField = function changeCopyField(items,
859
1141
  } else if (v.type === _types.AtomsTypeEnum.FORMULA) {
860
1142
  v.args = _changeCopyField(v.args, data);
861
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
+ });
862
1153
  } else if (v.type === _types.AtomsTypeEnum.COLLECTION) {
863
1154
  v.list = _changeCopyField(v.list, data);
864
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) {