@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
package/lib/cjs/utils.js CHANGED
@@ -8,13 +8,13 @@ exports.changeTableAlias = exports.changeFieldAlias = exports.changeExistsCopyFi
8
8
  exports.containsSubset = containsSubset;
9
9
  exports.isExistsError = exports.isError = exports.isCanPaste = exports.getSubQueryColumnInstanceUuid = exports.getSubColumns = exports.getObjTem = exports.getMetaTabels = exports.getHelper = exports.getColumnsTables = exports.findMetaKey = exports.findIndex = void 0;
10
10
  exports.isValidSQLAlias = isValidSQLAlias;
11
- exports.patchData = exports.normalizeLegacySummarizeForSave = exports.metaIsCheck = exports.mergeSubQueryColumns = void 0;
11
+ exports.patchData = exports.normalizeLegacySummarizeForSave = exports.normalizeAndOrStructure = exports.metaIsCheck = exports.mergeSubQueryColumns = void 0;
12
12
  exports.reassembleByUnion = reassembleByUnion;
13
13
  exports.splitByUnion = splitByUnion;
14
14
  exports.syncSubQueryFieldReferences = void 0;
15
+ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createForOfIteratorHelper"));
15
16
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/typeof"));
16
17
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
17
- var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createForOfIteratorHelper"));
18
18
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
19
19
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
20
20
  var _objectSpread6 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
@@ -26,7 +26,10 @@ var _transformSql2 = require("./utils/transformSql");
26
26
  var _helper2 = require("./utils/helper");
27
27
  var _cloneDeep3 = _interopRequireDefault(require("lodash/cloneDeep"));
28
28
  var _patch = require("./hooks/patch");
29
- var _excluded = ["list"];
29
+ var _excluded = ["operator", "leftAtoms", "rightAtoms", "atoms"],
30
+ _excluded2 = ["operator", "leftAtoms", "rightAtoms", "atoms"],
31
+ _excluded3 = ["operator", "leftAtoms", "rightAtoms", "atoms", "items"],
32
+ _excluded4 = ["list"];
30
33
  var findIndex = exports.findIndex = function findIndex(arr, item) {
31
34
  return arr.indexOf(item);
32
35
  };
@@ -326,14 +329,13 @@ var _syncSubQueryFieldItems = function syncSubQueryFieldItems() {
326
329
  elseAtoms: _syncSubQueryFieldItems(item.elseAtoms || [], table, columns, oldColumns)
327
330
  });
328
331
  } else if (item.type === _types.AtomsTypeEnum.AND_OR) {
329
- var hasBinarySides = Array.isArray(item.leftAtoms) || Array.isArray(item.rightAtoms);
330
- nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), hasBinarySides ? {
331
- atoms: undefined,
332
- leftAtoms: _syncSubQueryFieldItems(item.leftAtoms || [], table, columns, oldColumns),
333
- rightAtoms: _syncSubQueryFieldItems(item.rightAtoms || [], table, columns, oldColumns)
334
- } : {
335
- atoms: _syncSubQueryFieldItems(item.atoms || [], table, columns, oldColumns)
336
- });
332
+ nextItem = syncAndOrBinaryFields((0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), {}, {
333
+ items: normalizeAndOrItems(item).map(function (logicItem) {
334
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, logicItem), {}, {
335
+ atoms: _syncSubQueryFieldItems(logicItem.atoms || [], table, columns, oldColumns)
336
+ });
337
+ })
338
+ }));
337
339
  } else {
338
340
  nextItem = item;
339
341
  }
@@ -633,15 +635,250 @@ var buildFormulaQuotes = function buildFormulaQuotes(item) {
633
635
  var argsText = (item.args || []).map(_getAtomDisplayText).join(' , ');
634
636
  return normalizeAtomQuotes("".concat(item.name || '', " ( ").concat(argsText, " )"));
635
637
  };
638
+ var normalizeAndOrItems = function normalizeAndOrItems(item) {
639
+ if (Array.isArray(item.items) && item.items.length > 0) {
640
+ return item.items.map(function (logicItem, index) {
641
+ var operator = logicItem.operator,
642
+ leftAtoms = logicItem.leftAtoms,
643
+ rightAtoms = logicItem.rightAtoms,
644
+ atoms = logicItem.atoms,
645
+ nextLogicItem = (0, _objectWithoutProperties2["default"])(logicItem, _excluded);
646
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, nextLogicItem), index > 0 ? {
647
+ operator: operator || item.operator || 'and'
648
+ } : {}), {}, {
649
+ atoms: Array.isArray(atoms) && atoms.length > 0 ? atoms : []
650
+ });
651
+ });
652
+ }
653
+ if (Array.isArray(item.leftAtoms) || Array.isArray(item.rightAtoms)) {
654
+ return [{
655
+ atoms: Array.isArray(item.leftAtoms) ? item.leftAtoms : []
656
+ }, {
657
+ operator: item.operator || 'and',
658
+ atoms: Array.isArray(item.rightAtoms) ? item.rightAtoms : []
659
+ }];
660
+ }
661
+ return [{
662
+ atoms: Array.isArray(item.atoms) ? item.atoms : []
663
+ }];
664
+ };
636
665
  var buildAndOrQuotes = function buildAndOrQuotes(item) {
637
- var hasBinarySides = Array.isArray(item.leftAtoms) || Array.isArray(item.rightAtoms);
638
- if (hasBinarySides) {
639
- var leftText = (item.leftAtoms || []).map(_getAtomDisplayText).join(' ');
640
- var rightText = (item.rightAtoms || []).map(_getAtomDisplayText).join(' ');
641
- return normalizeAtomQuotes("( ".concat(leftText, " ").concat(item.operator || 'and', " ").concat(rightText, " )"));
642
- }
643
- var atomsText = (item.atoms || []).map(_getAtomDisplayText).join(' ');
644
- return normalizeAtomQuotes("".concat(item.operator || 'and', " ( ").concat(atomsText, " )"));
666
+ var itemsText = normalizeAndOrItems(item).map(function (logicItem, index) {
667
+ var atomsText = (logicItem.atoms || []).map(_getAtomDisplayText).join(' ');
668
+ return index === 0 ? atomsText : "".concat(logicItem.operator || 'and', " ").concat(atomsText);
669
+ }).join(' ');
670
+ return normalizeAtomQuotes("( ".concat(itemsText, " )"));
671
+ };
672
+ var syncAndOrBinaryFields = function syncAndOrBinaryFields(item) {
673
+ var operator = item.operator,
674
+ leftAtoms = item.leftAtoms,
675
+ rightAtoms = item.rightAtoms,
676
+ atoms = item.atoms,
677
+ nextItem = (0, _objectWithoutProperties2["default"])(item, _excluded2);
678
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, nextItem), {}, {
679
+ items: normalizeAndOrItems(item)
680
+ });
681
+ };
682
+ var _normalizeAndOrStructureInner = function normalizeAndOrStructureInner(data, cache) {
683
+ if (!data || (0, _typeof2["default"])(data) !== 'object') return data;
684
+ if (cache.has(data)) return cache.get(data);
685
+ if (Array.isArray(data)) {
686
+ var nextList = [];
687
+ cache.set(data, nextList);
688
+ data.forEach(function (item) {
689
+ nextList.push(_normalizeAndOrStructureInner(item, cache));
690
+ });
691
+ return nextList;
692
+ }
693
+ var item = data;
694
+ if (item.type === _types.AtomsTypeEnum.AND_OR) {
695
+ var operator = item.operator,
696
+ leftAtoms = item.leftAtoms,
697
+ rightAtoms = item.rightAtoms,
698
+ atoms = item.atoms,
699
+ items = item.items,
700
+ nextItem = (0, _objectWithoutProperties2["default"])(item, _excluded3);
701
+ var normalizedItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, nextItem), {}, {
702
+ items: []
703
+ });
704
+ cache.set(item, normalizedItem);
705
+ normalizedItem.items = normalizeAndOrItems(item).map(function (logicItem) {
706
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, logicItem.operator ? {
707
+ operator: logicItem.operator
708
+ } : {}), {}, {
709
+ atoms: _normalizeAndOrStructureInner(logicItem.atoms || [], cache)
710
+ });
711
+ });
712
+ normalizedItem.quotes = buildAndOrQuotes(normalizedItem);
713
+ return normalizedItem;
714
+ }
715
+ if (item.type === _types.AtomsTypeEnum.JOIN_DEFAULT || item.type === _types.AtomsTypeEnum.EXPRESSION) {
716
+ var _nextItem = (0, _objectSpread6["default"])({}, item);
717
+ cache.set(item, _nextItem);
718
+ if (Array.isArray(item.lhs)) {
719
+ _nextItem.lhs = _normalizeAndOrStructureInner(item.lhs, cache);
720
+ }
721
+ if (Array.isArray(item.rhs)) {
722
+ _nextItem.rhs = _normalizeAndOrStructureInner(item.rhs, cache);
723
+ }
724
+ return _nextItem;
725
+ }
726
+ if (item.type === _types.AtomsTypeEnum.FORMULA) {
727
+ var _nextItem2 = (0, _objectSpread6["default"])({}, item);
728
+ cache.set(item, _nextItem2);
729
+ if (Array.isArray(item.args)) {
730
+ _nextItem2.args = _normalizeAndOrStructureInner(item.args, cache);
731
+ }
732
+ return _nextItem2;
733
+ }
734
+ if (item.type === _types.AtomsTypeEnum.COLLECTION) {
735
+ var _nextItem3 = (0, _objectSpread6["default"])({}, item);
736
+ cache.set(item, _nextItem3);
737
+ if (Array.isArray(item.list)) {
738
+ _nextItem3.list = _normalizeAndOrStructureInner(item.list, cache);
739
+ }
740
+ return _nextItem3;
741
+ }
742
+ if (item.type === _types.AtomsTypeEnum.CASE_WHEN) {
743
+ var _nextItem4 = (0, _objectSpread6["default"])({}, item);
744
+ cache.set(item, _nextItem4);
745
+ if (Array.isArray(item.caseAtoms)) {
746
+ _nextItem4.caseAtoms = _normalizeAndOrStructureInner(item.caseAtoms, cache);
747
+ }
748
+ if (Array.isArray(item.whenClauses)) {
749
+ _nextItem4.whenClauses = item.whenClauses.map(function (clause) {
750
+ if (!clause || (0, _typeof2["default"])(clause) !== 'object') return clause;
751
+ if (cache.has(clause)) return cache.get(clause);
752
+ var nextClause = (0, _objectSpread6["default"])({}, clause);
753
+ cache.set(clause, nextClause);
754
+ if (Array.isArray(clause.whenAtoms)) {
755
+ nextClause.whenAtoms = _normalizeAndOrStructureInner(clause.whenAtoms, cache);
756
+ }
757
+ if (Array.isArray(clause.thenAtoms)) {
758
+ nextClause.thenAtoms = _normalizeAndOrStructureInner(clause.thenAtoms, cache);
759
+ }
760
+ return nextClause;
761
+ });
762
+ }
763
+ if (Array.isArray(item.elseAtoms)) {
764
+ _nextItem4.elseAtoms = _normalizeAndOrStructureInner(item.elseAtoms, cache);
765
+ }
766
+ return _nextItem4;
767
+ }
768
+ if (item.type === _types.AtomsTypeEnum.EXISTS || item.type === _types.AtomsTypeEnum.NOT_EXISTS || item.type === _types.AtomsTypeEnum.SUB_QUERY) {
769
+ var _nextItem5 = (0, _objectSpread6["default"])({}, item);
770
+ cache.set(item, _nextItem5);
771
+ if (Array.isArray(item.notExists)) {
772
+ _nextItem5.notExists = _normalizeAndOrStructureInner(item.notExists, cache);
773
+ }
774
+ if (Array.isArray(item.subQuery)) {
775
+ _nextItem5.subQuery = _normalizeAndOrStructureInner(item.subQuery, cache);
776
+ }
777
+ return _nextItem5;
778
+ }
779
+ if (item.type === _enum.TypeEnum.data) {
780
+ var _nextItem6 = (0, _objectSpread6["default"])({}, item);
781
+ cache.set(item, _nextItem6);
782
+ if (Array.isArray(item.subquery)) {
783
+ _nextItem6.subquery = _normalizeAndOrStructureInner(item.subquery, cache);
784
+ }
785
+ return _nextItem6;
786
+ }
787
+ if (item.type === _enum.TypeEnum.joinData) {
788
+ var _nextItem7 = (0, _objectSpread6["default"])({}, item);
789
+ cache.set(item, _nextItem7);
790
+ if (Array.isArray(item.expressions)) {
791
+ _nextItem7.expressions = _normalizeAndOrStructureInner(item.expressions, cache);
792
+ }
793
+ if (Array.isArray(item.subquery)) {
794
+ _nextItem7.subquery = _normalizeAndOrStructureInner(item.subquery, cache);
795
+ }
796
+ return _nextItem7;
797
+ }
798
+ if (item.type === _enum.TypeEnum.customColumn) {
799
+ var _nextItem8 = (0, _objectSpread6["default"])({}, item);
800
+ cache.set(item, _nextItem8);
801
+ if (Array.isArray(item.customColumn)) {
802
+ _nextItem8.customColumn = item.customColumn.map(function (column) {
803
+ if (!column || (0, _typeof2["default"])(column) !== 'object') return column;
804
+ if (cache.has(column)) return cache.get(column);
805
+ var nextColumn = (0, _objectSpread6["default"])({}, column);
806
+ cache.set(column, nextColumn);
807
+ if (Array.isArray(column.formulaList)) {
808
+ nextColumn.formulaList = _normalizeAndOrStructureInner(column.formulaList, cache);
809
+ }
810
+ return nextColumn;
811
+ });
812
+ }
813
+ return _nextItem8;
814
+ }
815
+ if (item.type === _enum.TypeEnum.filter) {
816
+ var _nextItem9 = (0, _objectSpread6["default"])({}, item);
817
+ cache.set(item, _nextItem9);
818
+ if (Array.isArray(item.filter)) {
819
+ _nextItem9.filter = _normalizeAndOrStructureInner(item.filter, cache);
820
+ }
821
+ return _nextItem9;
822
+ }
823
+ if (item.type === _enum.TypeEnum.summarize) {
824
+ var _nextItem0 = (0, _objectSpread6["default"])({}, item);
825
+ cache.set(item, _nextItem0);
826
+ if (Array.isArray(item.group)) {
827
+ _nextItem0.group = item.group.map(function (record) {
828
+ if (!record || (0, _typeof2["default"])(record) !== 'object') return record;
829
+ if (cache.has(record)) return cache.get(record);
830
+ var nextRecord = (0, _objectSpread6["default"])({}, record);
831
+ cache.set(record, nextRecord);
832
+ if (Array.isArray(record.atoms)) {
833
+ nextRecord.atoms = _normalizeAndOrStructureInner(record.atoms, cache);
834
+ }
835
+ return nextRecord;
836
+ });
837
+ }
838
+ if (Array.isArray(item.by)) {
839
+ _nextItem0.by = item.by.map(function (record) {
840
+ if (!record || (0, _typeof2["default"])(record) !== 'object') return record;
841
+ if (cache.has(record)) return cache.get(record);
842
+ var nextRecord = (0, _objectSpread6["default"])({}, record);
843
+ cache.set(record, nextRecord);
844
+ if (Array.isArray(record.atoms)) {
845
+ nextRecord.atoms = _normalizeAndOrStructureInner(record.atoms, cache);
846
+ }
847
+ return nextRecord;
848
+ });
849
+ }
850
+ return _nextItem0;
851
+ }
852
+ if (item.type === _enum.TypeEnum.sort) {
853
+ var _nextItem1 = (0, _objectSpread6["default"])({}, item);
854
+ cache.set(item, _nextItem1);
855
+ if (Array.isArray(item.sort)) {
856
+ _nextItem1.sort = item.sort.map(function (record) {
857
+ if (!record || (0, _typeof2["default"])(record) !== 'object') return record;
858
+ if (cache.has(record)) return cache.get(record);
859
+ var nextRecord = (0, _objectSpread6["default"])({}, record);
860
+ cache.set(record, nextRecord);
861
+ if (Array.isArray(record.expression)) {
862
+ nextRecord.expression = _normalizeAndOrStructureInner(record.expression, cache);
863
+ }
864
+ return nextRecord;
865
+ });
866
+ }
867
+ return _nextItem1;
868
+ }
869
+ if (item.type === _enum.TypeEnum.union) {
870
+ var _nextItem10 = (0, _objectSpread6["default"])({}, item);
871
+ cache.set(item, _nextItem10);
872
+ if (Array.isArray(item.subquery)) {
873
+ _nextItem10.subquery = _normalizeAndOrStructureInner(item.subquery, cache);
874
+ }
875
+ return _nextItem10;
876
+ }
877
+ cache.set(item, item);
878
+ return item;
879
+ };
880
+ var normalizeAndOrStructure = exports.normalizeAndOrStructure = function normalizeAndOrStructure(data) {
881
+ return _normalizeAndOrStructureInner(data, new WeakMap());
645
882
  };
646
883
  var buildCaseWhenQuotes = function buildCaseWhenQuotes(item) {
647
884
  var caseAtomsText = (item.caseAtoms || []).map(_getAtomDisplayText).join(' ');
@@ -748,23 +985,23 @@ var syncAtomQuotes = function syncAtomQuotes(item) {
748
985
  });
749
986
  }
750
987
  if (item.type === _types.AtomsTypeEnum.FORMULA) {
751
- var _nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), {}, {
988
+ var _nextItem11 = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), {}, {
752
989
  args: syncAtomQuotesList(item.args || [])
753
990
  });
754
- return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _nextItem), {}, {
755
- quotes: buildFormulaQuotes(_nextItem)
991
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _nextItem11), {}, {
992
+ quotes: buildFormulaQuotes(_nextItem11)
756
993
  });
757
994
  }
758
995
  if (item.type === _types.AtomsTypeEnum.COLLECTION) {
759
- var _nextItem2 = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), {}, {
996
+ var _nextItem12 = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), {}, {
760
997
  list: syncAtomQuotesList(item.list || [])
761
998
  });
762
- return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _nextItem2), {}, {
763
- quotes: (_nextItem2.list || []).map(_getAtomDisplayText).join(' ')
999
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _nextItem12), {}, {
1000
+ quotes: (_nextItem12.list || []).map(_getAtomDisplayText).join(' ')
764
1001
  });
765
1002
  }
766
1003
  if (item.type === _types.AtomsTypeEnum.CASE_WHEN) {
767
- var _nextItem3 = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), {}, {
1004
+ var _nextItem13 = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), {}, {
768
1005
  caseAtoms: syncAtomQuotesList(item.caseAtoms || []),
769
1006
  whenClauses: (item.whenClauses || []).map(function (clause) {
770
1007
  return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, clause), {}, {
@@ -774,21 +1011,20 @@ var syncAtomQuotes = function syncAtomQuotes(item) {
774
1011
  }),
775
1012
  elseAtoms: syncAtomQuotesList(item.elseAtoms || [])
776
1013
  });
777
- return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _nextItem3), {}, {
778
- quotes: buildCaseWhenQuotes(_nextItem3)
1014
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _nextItem13), {}, {
1015
+ quotes: buildCaseWhenQuotes(_nextItem13)
779
1016
  });
780
1017
  }
781
1018
  if (item.type === _types.AtomsTypeEnum.AND_OR) {
782
- var hasBinarySides = Array.isArray(item.leftAtoms) || Array.isArray(item.rightAtoms);
783
- var _nextItem4 = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), hasBinarySides ? {
784
- atoms: undefined,
785
- leftAtoms: syncAtomQuotesList(item.leftAtoms || []),
786
- rightAtoms: syncAtomQuotesList(item.rightAtoms || [])
787
- } : {
788
- atoms: syncAtomQuotesList(item.atoms || [])
789
- });
790
- return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _nextItem4), {}, {
791
- quotes: buildAndOrQuotes(_nextItem4)
1019
+ var _nextItem14 = syncAndOrBinaryFields((0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), {}, {
1020
+ items: normalizeAndOrItems(item).map(function (logicItem) {
1021
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, logicItem), {}, {
1022
+ atoms: syncAtomQuotesList(logicItem.atoms || [])
1023
+ });
1024
+ })
1025
+ }));
1026
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _nextItem14), {}, {
1027
+ quotes: buildAndOrQuotes(_nextItem14)
792
1028
  });
793
1029
  }
794
1030
  return item;
@@ -835,6 +1071,34 @@ var isAliasTargetSummarizeRecord = function isAliasTargetSummarizeRecord(record,
835
1071
  type: _types.AtomsTypeEnum.FIELD
836
1072
  }, target);
837
1073
  };
1074
+ var isAliasTargetColumn = function isAliasTargetColumn(column, target, table) {
1075
+ return isAliasTargetField({
1076
+ fieldName: column.name || '',
1077
+ fieldNameZh: column.name_zh || '',
1078
+ fieldAlias: column.fieldAlias || '',
1079
+ fieldUuid: column.fieldUuid || '',
1080
+ fieldId: column.fieldId || column.id || '',
1081
+ tableName: (table === null || table === void 0 ? void 0 : table.name) || column.tableName || '',
1082
+ tableNameZh: (table === null || table === void 0 ? void 0 : table.name_zh) || column.tableNameZh || '',
1083
+ tableId: (table === null || table === void 0 ? void 0 : table.id) || column.tableId || '',
1084
+ tableAlias: (table === null || table === void 0 ? void 0 : table.alias) || column.tableAlias || '',
1085
+ tableUuid: (table === null || table === void 0 ? void 0 : table.tableUuid) || column.tableUuid || '',
1086
+ datasourceName: (table === null || table === void 0 ? void 0 : table.datasourceName) || column.datasourceName || '',
1087
+ datasourceId: (table === null || table === void 0 ? void 0 : table.datasourceId) || column.datasourceId || '',
1088
+ type: _types.AtomsTypeEnum.FIELD
1089
+ }, target);
1090
+ };
1091
+ var changeColumnAlias = function changeColumnAlias() {
1092
+ var columns = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
1093
+ var target = arguments.length > 1 ? arguments[1] : undefined;
1094
+ var table = arguments.length > 2 ? arguments[2] : undefined;
1095
+ return columns.map(function (column) {
1096
+ return isAliasTargetColumn(column, target, table) ? (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, column), {}, {
1097
+ fieldAlias: target.alias,
1098
+ fieldUuid: column.fieldUuid || target.uuid || ''
1099
+ }) : column;
1100
+ });
1101
+ };
838
1102
  var _changeAlias = function changeAlias(items, val, type) {
839
1103
  return items.map(function (v) {
840
1104
  var nextItem;
@@ -907,14 +1171,13 @@ var _changeAlias = function changeAlias(items, val, type) {
907
1171
  elseAtoms: _changeAlias(v.elseAtoms || [], val, type)
908
1172
  });
909
1173
  } else if (v.type === _types.AtomsTypeEnum.AND_OR) {
910
- var hasBinarySides = Array.isArray(v.leftAtoms) || Array.isArray(v.rightAtoms);
911
- nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), hasBinarySides ? {
912
- atoms: undefined,
913
- leftAtoms: _changeAlias(v.leftAtoms || [], val, type),
914
- rightAtoms: _changeAlias(v.rightAtoms || [], val, type)
915
- } : {
916
- atoms: _changeAlias(v.atoms || [], val, type)
917
- });
1174
+ nextItem = syncAndOrBinaryFields((0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
1175
+ items: normalizeAndOrItems(v).map(function (logicItem) {
1176
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, logicItem), {}, {
1177
+ atoms: _changeAlias(logicItem.atoms || [], val, type)
1178
+ });
1179
+ })
1180
+ }));
918
1181
  } else {
919
1182
  nextItem = v;
920
1183
  }
@@ -1044,8 +1307,15 @@ var changeFieldAlias = exports.changeFieldAlias = function changeFieldAlias(list
1044
1307
  };
1045
1308
  var newList = (0, _cloneDeep3["default"])(list);
1046
1309
  return (newList === null || newList === void 0 ? void 0 : newList.map(function (v) {
1047
- if (v.type === _enum.TypeEnum.data) {}
1310
+ if (v.type === _enum.TypeEnum.data) {
1311
+ if (v.columns && v.columns.length > 0) {
1312
+ v.columns = changeColumnAlias(v.columns, aliasTarget, v.table);
1313
+ }
1314
+ }
1048
1315
  if (v.type === _enum.TypeEnum.joinData) {
1316
+ if (v.columns && v.columns.length > 0) {
1317
+ v.columns = changeColumnAlias(v.columns, aliasTarget, v.table2);
1318
+ }
1049
1319
  if (v.expressions && v.expressions.length > 0) {
1050
1320
  v.expressions = _changeAlias(v.expressions, aliasTarget, AliasType.field);
1051
1321
  }
@@ -1119,7 +1389,7 @@ function splitByUnion(data) {
1119
1389
  i++;
1120
1390
  } else if (item.type === 'union') {
1121
1391
  var list = item.list,
1122
- otehr = (0, _objectWithoutProperties2["default"])(item, _excluded);
1392
+ otehr = (0, _objectWithoutProperties2["default"])(item, _excluded4);
1123
1393
  var nextItem = original[i + 1];
1124
1394
  if (nextItem && nextItem.type === 'group') {
1125
1395
  result.push((0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, otehr), {}, {
@@ -1190,7 +1460,7 @@ var normalizeSummarizeByForSave = function normalizeSummarizeByForSave(record) {
1190
1460
  };
1191
1461
  var _normalizeLegacySummarizeForSave = exports.normalizeLegacySummarizeForSave = function normalizeLegacySummarizeForSave() {
1192
1462
  var metas = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
1193
- return metas.map(function (meta) {
1463
+ var normalizedMetas = metas.map(function (meta) {
1194
1464
  if (meta.type === _enum.TypeEnum.summarize) {
1195
1465
  return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, meta), {}, {
1196
1466
  group: meta.group.map(function (item) {
@@ -1208,6 +1478,7 @@ var _normalizeLegacySummarizeForSave = exports.normalizeLegacySummarizeForSave =
1208
1478
  }
1209
1479
  return meta;
1210
1480
  });
1481
+ return normalizeAndOrStructure(normalizedMetas);
1211
1482
  };
1212
1483
  var getObjTem = exports.getObjTem = function getObjTem(arr) {
1213
1484
  var obj = {};
@@ -1509,14 +1780,13 @@ var _changeCopyField = exports.changeCopyField = function changeCopyField(items,
1509
1780
  v.args = _changeCopyField(v.args, data);
1510
1781
  return v;
1511
1782
  } else if (v.type === _types.AtomsTypeEnum.AND_OR) {
1512
- var hasBinarySides = Array.isArray(v.leftAtoms) || Array.isArray(v.rightAtoms);
1513
- return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), hasBinarySides ? {
1514
- atoms: undefined,
1515
- leftAtoms: _changeCopyField(v.leftAtoms || [], data),
1516
- rightAtoms: _changeCopyField(v.rightAtoms || [], data)
1517
- } : {
1518
- atoms: _changeCopyField(v.atoms || [], data)
1519
- });
1783
+ return syncAndOrBinaryFields((0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
1784
+ items: normalizeAndOrItems(v).map(function (logicItem) {
1785
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, logicItem), {}, {
1786
+ atoms: _changeCopyField(logicItem.atoms || [], data)
1787
+ });
1788
+ })
1789
+ }));
1520
1790
  } else if (v.type === _types.AtomsTypeEnum.COLLECTION) {
1521
1791
  v.list = _changeCopyField(v.list, data);
1522
1792
  return v;
@@ -1,10 +1,13 @@
1
1
  import React from 'react';
2
2
  type Props = {
3
- operator: 'and' | 'or';
4
- onToggleOperator: () => void;
5
- leftContent: React.ReactNode;
6
- rightContent: React.ReactNode;
3
+ items: {
4
+ operator?: 'and' | 'or';
5
+ content: React.ReactNode;
6
+ }[];
7
+ onChangeOperator: (index: number, operator: 'and' | 'or') => void;
8
+ onAddItem: () => void;
9
+ onDeleteItem: (operatorIndex: number, side: 'left' | 'right') => void;
7
10
  onDelete: (e: any) => void;
8
11
  };
9
- declare const LogicGroup: ({ operator, onToggleOperator, leftContent, rightContent, onDelete, }: Props) => import("react/jsx-runtime").JSX.Element;
12
+ declare const LogicGroup: ({ items, onChangeOperator, onAddItem, onDeleteItem, onDelete, }: Props) => import("react/jsx-runtime").JSX.Element;
10
13
  export default LogicGroup;
@@ -1,32 +1,78 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
1
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import React from 'react';
2
4
  import cx from 'classnames';
3
- import { Tooltip } from '@gingkoo/pandora';
5
+ import { Dropdown, Tooltip } from '@gingkoo/pandora';
4
6
  import { CloseIcon } from '../../icons';
7
+ var operatorMenuItems = [{
8
+ key: 'add',
9
+ label: '添加连接符'
10
+ }, {
11
+ key: 'delete-left',
12
+ label: '删除左侧和当前连接符'
13
+ }, {
14
+ key: 'delete-right',
15
+ label: '删除右侧和当前连接符'
16
+ }];
5
17
  var LogicGroup = function LogicGroup(_ref) {
6
- var operator = _ref.operator,
7
- onToggleOperator = _ref.onToggleOperator,
8
- leftContent = _ref.leftContent,
9
- rightContent = _ref.rightContent,
18
+ var items = _ref.items,
19
+ onChangeOperator = _ref.onChangeOperator,
20
+ onAddItem = _ref.onAddItem,
21
+ onDeleteItem = _ref.onDeleteItem,
10
22
  onDelete = _ref.onDelete;
23
+ var canDeleteItem = items.length > 2;
24
+ var handleOperatorMenuChange = function handleOperatorMenuChange(operatorIndex, action) {
25
+ if (action === 'add') {
26
+ onAddItem();
27
+ return;
28
+ }
29
+ if (action === 'delete-left' || action === 'delete-right') {
30
+ var side = action === 'delete-left' ? 'left' : 'right';
31
+ onDeleteItem(operatorIndex, side);
32
+ }
33
+ };
34
+ var renderOperator = function renderOperator(operator, index) {
35
+ return _jsx(Dropdown, {
36
+ trigger: 'contextMenu',
37
+ droplist: operatorMenuItems.map(function (item) {
38
+ return _objectSpread(_objectSpread({}, item), {}, {
39
+ disabled: item.key !== 'add' && !canDeleteItem
40
+ });
41
+ }),
42
+ triggerProps: {
43
+ clickToClose: true,
44
+ style: {
45
+ zIndex: 9999
46
+ }
47
+ },
48
+ onChange: function onChange(action) {
49
+ handleOperatorMenuChange(index, action);
50
+ },
51
+ children: _jsx("button", {
52
+ type: 'button',
53
+ className: cx(':Sqb-TableName', 'operator-trigger', 'logic-operator', {
54
+ 'logic-and': operator === 'and',
55
+ 'logic-or': operator === 'or'
56
+ }),
57
+ onClick: function onClick() {
58
+ return onChangeOperator(index, operator === 'or' ? 'and' : 'or');
59
+ },
60
+ children: operator
61
+ })
62
+ });
63
+ };
11
64
  return _jsxs("div", {
12
65
  className: cx('Sqb-FormulaGroup', 'logic-group', 'formula-node-group'),
13
66
  children: [_jsx("span", {
14
67
  className: 'Sqb-CaseKeyword',
15
68
  children: "("
16
- }), _jsx("div", {
17
- className: 'Sqb-LogicGroup-content',
18
- children: leftContent
19
- }), _jsx("button", {
20
- type: 'button',
21
- className: cx('Sqb-TableName', 'operator-trigger', 'logic-operator', {
22
- 'logic-and': operator === 'and',
23
- 'logic-or': operator === 'or'
24
- }),
25
- onClick: onToggleOperator,
26
- children: operator
27
- }), _jsx("div", {
28
- className: 'Sqb-LogicGroup-content',
29
- children: rightContent
69
+ }), items.map(function (item, index) {
70
+ return _jsxs(React.Fragment, {
71
+ children: [index > 0 && renderOperator(item.operator || 'and', index), _jsx("div", {
72
+ className: 'Sqb-LogicGroup-content',
73
+ children: item.content
74
+ })]
75
+ }, index);
30
76
  }), _jsx("span", {
31
77
  className: 'Sqb-CaseKeyword',
32
78
  children: ")"