@gingkoo/pandora-metabase 1.0.23 → 1.0.25

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 (89) hide show
  1. package/lib/cjs/common/SplitView/index.js +12 -11
  2. package/lib/cjs/components/dialog/custom-column/expression-editor.js +2 -1
  3. package/lib/cjs/components/dialog/custom-column/tokenizedI-input.js +2 -1
  4. package/lib/cjs/components/dialog/custom-editor/index.js +2 -1
  5. package/lib/cjs/components/dialog/expression/index.js +13 -12
  6. package/lib/cjs/components/dialog/formula/index.d.ts +10 -0
  7. package/lib/cjs/components/dialog/formula/index.js +242 -0
  8. package/lib/cjs/components/dialog/formula/index.less +81 -0
  9. package/lib/cjs/components/dialog/formula/utils.d.ts +7 -0
  10. package/lib/cjs/components/dialog/formula/utils.js +45 -0
  11. package/lib/cjs/components/dialog/formula-list/index.d.ts +3 -1
  12. package/lib/cjs/components/dialog/formula-list/index.js +107 -43
  13. package/lib/cjs/components/dialog/formula-list/utils.d.ts +14 -1
  14. package/lib/cjs/components/dialog/formula-list/utils.js +159 -2
  15. package/lib/cjs/components/dialog/index.d.ts +1 -0
  16. package/lib/cjs/components/dialog/index.js +9 -2
  17. package/lib/cjs/components/dialog/select-column/index.js +6 -13
  18. package/lib/cjs/components/dialog/select-column-multiple/index.js +0 -1
  19. package/lib/cjs/components/dialog/select-table/index.js +7 -7
  20. package/lib/cjs/components/icons.js +36 -36
  21. package/lib/cjs/components/metabase/index.js +6 -6
  22. package/lib/cjs/components/metabase/index.less +10 -0
  23. package/lib/cjs/components/modules/components/Wrapper.js +6 -6
  24. package/lib/cjs/components/modules/custom-column.js +4 -4
  25. package/lib/cjs/components/modules/enum/filter-enum.d.ts +7 -2
  26. package/lib/cjs/components/modules/enum/filter-enum.js +8 -2
  27. package/lib/cjs/components/modules/join-data.js +78 -36
  28. package/lib/cjs/components/modules/summarize/group-by.js +6 -13
  29. package/lib/cjs/components/modules/summarize/select-index.js +6 -13
  30. package/lib/cjs/components/modules/table-data.js +9 -16
  31. package/lib/cjs/components/popup.js +2 -1
  32. package/lib/cjs/hooks/patch.js +106 -76
  33. package/lib/cjs/hooks/use-state.js +100 -65
  34. package/lib/cjs/index.js +5 -2
  35. package/lib/cjs/locale/en.js +6 -3
  36. package/lib/cjs/locale/zh.js +6 -3
  37. package/lib/cjs/store/helper.d.ts +1 -2
  38. package/lib/cjs/store/helper.js +1 -76
  39. package/lib/cjs/store/types.d.ts +36 -2
  40. package/lib/cjs/store/types.js +3 -0
  41. package/lib/cjs/types.d.ts +2 -1
  42. package/lib/cjs/utils.d.ts +1 -0
  43. package/lib/cjs/utils.js +16 -2
  44. package/lib/es/common/SplitView/index.js +10 -10
  45. package/lib/es/components/dialog/custom-editor/index.js +2 -1
  46. package/lib/es/components/dialog/expression/index.js +11 -11
  47. package/lib/es/components/dialog/formula/index.d.ts +10 -0
  48. package/lib/es/components/dialog/formula/index.js +236 -0
  49. package/lib/es/components/dialog/formula/index.less +81 -0
  50. package/lib/es/components/dialog/formula/utils.d.ts +7 -0
  51. package/lib/es/components/dialog/formula/utils.js +37 -0
  52. package/lib/es/components/dialog/formula-list/index.d.ts +3 -1
  53. package/lib/es/components/dialog/formula-list/index.js +104 -40
  54. package/lib/es/components/dialog/formula-list/utils.d.ts +14 -1
  55. package/lib/es/components/dialog/formula-list/utils.js +160 -2
  56. package/lib/es/components/dialog/index.d.ts +1 -0
  57. package/lib/es/components/dialog/index.js +2 -1
  58. package/lib/es/components/dialog/select-column/index.js +7 -14
  59. package/lib/es/components/dialog/select-column-multiple/index.js +0 -1
  60. package/lib/es/components/dialog/select-table/index.js +7 -7
  61. package/lib/es/components/icons.js +36 -36
  62. package/lib/es/components/metabase/index.js +6 -6
  63. package/lib/es/components/metabase/index.less +10 -0
  64. package/lib/es/components/modules/components/Wrapper.js +6 -6
  65. package/lib/es/components/modules/custom-column.js +4 -4
  66. package/lib/es/components/modules/enum/filter-enum.d.ts +7 -2
  67. package/lib/es/components/modules/enum/filter-enum.js +8 -2
  68. package/lib/es/components/modules/join-data.js +78 -36
  69. package/lib/es/components/modules/summarize/group-by.js +7 -14
  70. package/lib/es/components/modules/summarize/select-index.js +7 -14
  71. package/lib/es/components/modules/table-data.js +10 -17
  72. package/lib/es/hooks/patch.js +105 -75
  73. package/lib/es/hooks/use-state.js +101 -66
  74. package/lib/es/index.js +3 -1
  75. package/lib/es/locale/en.js +6 -3
  76. package/lib/es/locale/zh.js +6 -3
  77. package/lib/es/store/helper.d.ts +1 -2
  78. package/lib/es/store/helper.js +0 -75
  79. package/lib/es/store/types.d.ts +36 -2
  80. package/lib/es/store/types.js +3 -0
  81. package/lib/es/types.d.ts +2 -1
  82. package/lib/es/types.js +18 -1
  83. package/lib/es/utils.d.ts +1 -0
  84. package/lib/es/utils.js +13 -1
  85. package/package.json +2 -2
  86. package/lib/cjs/components/dialog/formula-list/enum.d.ts +0 -39
  87. package/lib/cjs/components/dialog/formula-list/enum.js +0 -123
  88. package/lib/es/components/dialog/formula-list/enum.d.ts +0 -39
  89. package/lib/es/components/dialog/formula-list/enum.js +0 -117
@@ -11,33 +11,35 @@ var _utils = require("../utils");
11
11
  var _types = require("../store/types");
12
12
  var _enum = require("../store/enum");
13
13
  var dataPatch = exports.dataPatch = function dataPatch(newMeta) {
14
- var _newMeta$expressions;
15
- var item = ((_newMeta$expressions = newMeta.expressions) === null || _newMeta$expressions === void 0 ? void 0 : _newMeta$expressions[0]) || {};
16
- if (item !== null && item !== void 0 && item.type && Object.values(_types.AtomsTypeEnum).includes(item.type)) {
17
- if (item.type === _types.AtomsTypeEnum.EXPRESSION && item.lhs) {
18
- return newMeta;
19
- }
20
- }
14
+ // let item = newMeta.expressions?.[0] || {};
15
+ // if (item?.type && Object.values(AtomsTypeEnum).includes(item.type)) {
16
+ // if (item.type === AtomsTypeEnum.EXPRESSION && item.lhs) {
17
+ // return newMeta;
18
+ // }
19
+ // }
21
20
  newMeta.subquery = _patchMetas(newMeta.subquery);
22
21
  return newMeta;
23
22
  };
24
23
  var joinDataPatch = exports.joinDataPatch = function joinDataPatch(newMeta) {
25
- var _newMeta$expressions2, _fields, _fields2, _fields3, _fields4, _newMeta$expressions3;
26
- var item = ((_newMeta$expressions2 = newMeta.expressions) === null || _newMeta$expressions2 === void 0 ? void 0 : _newMeta$expressions2[0]) || {};
27
- if (item !== null && item !== void 0 && item.type && Object.values(_types.AtomsTypeEnum).includes(item.type)) {
28
- if ((item.type === _types.AtomsTypeEnum.EXPRESSION || item.type === _types.AtomsTypeEnum.JOIN_DEFAULT) && item.lhs) {
29
- return newMeta;
30
- }
31
- if (item.type === _types.AtomsTypeEnum.EXISTS && !item.tableUuid) {
32
- return newMeta;
33
- }
34
- if (item.type === _types.AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
35
- return newMeta;
36
- }
37
- if (item.type === _types.AtomsTypeEnum.FIELD && item.fieldName) {
38
- return newMeta;
39
- }
40
- }
24
+ var _fields, _fields2, _fields3, _fields4, _newMeta$expressions;
25
+ // let item = newMeta.expressions?.[0] || {};
26
+ // if (item?.type && Object.values(AtomsTypeEnum).includes(item.type)) {
27
+ // if (
28
+ // (item.type === AtomsTypeEnum.EXPRESSION || item.type === AtomsTypeEnum.JOIN_DEFAULT) &&
29
+ // item.lhs
30
+ // ) {
31
+ // return newMeta;
32
+ // }
33
+ // if (item.type === AtomsTypeEnum.EXISTS && !item.tableUuid) {
34
+ // return newMeta;
35
+ // }
36
+ // if (item.type === AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
37
+ // return newMeta;
38
+ // }
39
+ // if (item.type === AtomsTypeEnum.FIELD && item.fieldName) {
40
+ // return newMeta;
41
+ // }
42
+ // }
41
43
  // if (
42
44
  // newMeta.expressions?.[0]?.type &&
43
45
  // Object.values(AtomsTypeEnum).includes(newMeta.expressions[0].type)
@@ -127,7 +129,7 @@ var joinDataPatch = exports.joinDataPatch = function joinDataPatch(newMeta) {
127
129
  type: 'default' // 默认是字段模式
128
130
  }];
129
131
  }
130
- var expressions = ((_newMeta$expressions3 = newMeta.expressions) === null || _newMeta$expressions3 === void 0 ? void 0 : _newMeta$expressions3.map(function (v) {
132
+ var expressions = ((_newMeta$expressions = newMeta.expressions) === null || _newMeta$expressions === void 0 ? void 0 : _newMeta$expressions.map(function (v) {
131
133
  var _left_fields, _right_fields;
132
134
  var left_fields = v.left_fields || [];
133
135
  var right_fields = v.right_fields || [];
@@ -268,23 +270,23 @@ var joinDataPatch = exports.joinDataPatch = function joinDataPatch(newMeta) {
268
270
  return newMeta;
269
271
  };
270
272
  var filterPatch = exports.filterPatch = function filterPatch(newMeta) {
271
- var _newMeta$filter, _newMeta$filter2;
272
- var item = ((_newMeta$filter = newMeta.filter) === null || _newMeta$filter === void 0 ? void 0 : _newMeta$filter[0]) || {};
273
- if (item !== null && item !== void 0 && item.type && Object.values(_types.AtomsTypeEnum).includes(item.type)) {
274
- if (item.type === _types.AtomsTypeEnum.EXPRESSION && item.lhs) {
275
- return newMeta;
276
- }
277
- if (item.type === _types.AtomsTypeEnum.EXISTS && !item.tableUuid) {
278
- return newMeta;
279
- }
280
- if (item.type === _types.AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
281
- return newMeta;
282
- }
283
- if (item.type === _types.AtomsTypeEnum.FIELD && item.fieldName) {
284
- return newMeta;
285
- }
286
- }
287
- var _filter = (_newMeta$filter2 = newMeta.filter) === null || _newMeta$filter2 === void 0 ? void 0 : _newMeta$filter2.map(function (v) {
273
+ var _newMeta$filter;
274
+ // let item = newMeta.filter?.[0] || {};
275
+ // if (item?.type && Object.values(AtomsTypeEnum).includes(item.type)) {
276
+ // if (item.type === AtomsTypeEnum.EXPRESSION && item.lhs) {
277
+ // return newMeta;
278
+ // }
279
+ // if (item.type === AtomsTypeEnum.EXISTS && !item.tableUuid) {
280
+ // return newMeta;
281
+ // }
282
+ // if (item.type === AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
283
+ // return newMeta;
284
+ // }
285
+ // if (item.type === AtomsTypeEnum.FIELD && item.fieldName) {
286
+ // return newMeta;
287
+ // }
288
+ // }
289
+ var _filter = (_newMeta$filter = newMeta.filter) === null || _newMeta$filter === void 0 ? void 0 : _newMeta$filter.map(function (v) {
288
290
  // 表达式
289
291
  var tem;
290
292
  if (typeof v === 'string') {
@@ -376,23 +378,23 @@ var filterPatch = exports.filterPatch = function filterPatch(newMeta) {
376
378
  return newMeta;
377
379
  };
378
380
  var customColumnPatch = exports.customColumnPatch = function customColumnPatch(newMeta) {
379
- var _newMeta$customColumn, _newMeta$customColumn2;
380
- var item = ((_newMeta$customColumn = newMeta.customColumn[0].formulaList) === null || _newMeta$customColumn === void 0 ? void 0 : _newMeta$customColumn[0]) || {};
381
- if (item !== null && item !== void 0 && item.type && Object.values(_types.AtomsTypeEnum).includes(item.type)) {
382
- if (item.type === _types.AtomsTypeEnum.EXPRESSION && item.lhs) {
383
- return newMeta;
384
- }
385
- if (item.type === _types.AtomsTypeEnum.EXISTS && !item.tableUuid) {
386
- return newMeta;
387
- }
388
- if (item.type === _types.AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
389
- return newMeta;
390
- }
391
- if (item.type === _types.AtomsTypeEnum.FIELD && item.fieldName) {
392
- return newMeta;
393
- }
394
- }
395
- newMeta.customColumn = (newMeta === null || newMeta === void 0 || (_newMeta$customColumn2 = newMeta.customColumn) === null || _newMeta$customColumn2 === void 0 ? void 0 : _newMeta$customColumn2.map(function (v) {
381
+ var _newMeta$customColumn;
382
+ // let item = newMeta.customColumn?.[0]?.formulaList?.[0] || {};
383
+ // if (item?.type && Object.values(AtomsTypeEnum).includes(item.type)) {
384
+ // if (item.type === AtomsTypeEnum.EXPRESSION && item.lhs) {
385
+ // return newMeta;
386
+ // }
387
+ // if (item.type === AtomsTypeEnum.EXISTS && !item.tableUuid) {
388
+ // return newMeta;
389
+ // }
390
+ // if (item.type === AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
391
+ // return newMeta;
392
+ // }
393
+ // if (item.type === AtomsTypeEnum.FIELD && item.fieldName) {
394
+ // return newMeta;
395
+ // }
396
+ // }
397
+ newMeta.customColumn = (newMeta === null || newMeta === void 0 || (_newMeta$customColumn = newMeta.customColumn) === null || _newMeta$customColumn === void 0 ? void 0 : _newMeta$customColumn.map(function (v) {
396
398
  var _formulaList = v.formulaList.map(function (formula) {
397
399
  var tem = formula;
398
400
  if (formula.type === 'expression') {
@@ -509,23 +511,23 @@ var customColumnPatch = exports.customColumnPatch = function customColumnPatch(n
509
511
  return newMeta;
510
512
  };
511
513
  var sortPatch = exports.sortPatch = function sortPatch(newMeta) {
512
- var _newMeta$sort, _newMeta$sort2;
513
- var item = ((_newMeta$sort = newMeta.sort) === null || _newMeta$sort === void 0 || (_newMeta$sort = _newMeta$sort[0].expression) === null || _newMeta$sort === void 0 ? void 0 : _newMeta$sort[0]) || {};
514
- if (item !== null && item !== void 0 && item.type && Object.values(_types.AtomsTypeEnum).includes(item.type)) {
515
- if (item.type === _types.AtomsTypeEnum.EXPRESSION && item.lhs) {
516
- return newMeta;
517
- }
518
- if (item.type === _types.AtomsTypeEnum.EXISTS && !item.tableUuid) {
519
- return newMeta;
520
- }
521
- if (item.type === _types.AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
522
- return newMeta;
523
- }
524
- if (item.type === _types.AtomsTypeEnum.FIELD && item.fieldName) {
525
- return newMeta;
526
- }
527
- }
528
- var _sort = (_newMeta$sort2 = newMeta.sort) === null || _newMeta$sort2 === void 0 ? void 0 : _newMeta$sort2.map(function (v) {
514
+ var _newMeta$sort;
515
+ // let item = newMeta.sort?.[0].expression?.[0] || {};
516
+ // if (item?.type && Object.values(AtomsTypeEnum).includes(item.type)) {
517
+ // if (item.type === AtomsTypeEnum.EXPRESSION && item.lhs) {
518
+ // return newMeta;
519
+ // }
520
+ // if (item.type === AtomsTypeEnum.EXISTS && !item.tableUuid) {
521
+ // return newMeta;
522
+ // }
523
+ // if (item.type === AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
524
+ // return newMeta;
525
+ // }
526
+ // if (item.type === AtomsTypeEnum.FIELD && item.fieldName) {
527
+ // return newMeta;
528
+ // }
529
+ // }
530
+ var _sort = (_newMeta$sort = newMeta.sort) === null || _newMeta$sort === void 0 ? void 0 : _newMeta$sort.map(function (v) {
529
531
  return {
530
532
  expression: [{
531
533
  fieldName: v.name,
@@ -550,6 +552,9 @@ var sortPatch = exports.sortPatch = function sortPatch(newMeta) {
550
552
  };
551
553
  var _patchMetas = exports.patchMetas = function patchMetas(items) {
552
554
  return (items === null || items === void 0 ? void 0 : items.map(function (v) {
555
+ if (v.type === _enum.TypeEnum.data) {
556
+ v = dataPatch(v);
557
+ }
553
558
  if (v.type === _enum.TypeEnum.joinData) {
554
559
  v = joinDataPatch(v);
555
560
  }
@@ -567,4 +572,29 @@ var _patchMetas = exports.patchMetas = function patchMetas(items) {
567
572
  }
568
573
  return v;
569
574
  })) || [];
570
- };
575
+ };
576
+ // export const patchMetas1 = (items: MetaListType[]) => {
577
+ // return (
578
+ // items?.map((v: MetaListType): MetaListType => {
579
+ // // if (v.type === TypeEnum.data) {
580
+ // // v = dataPatch(v);
581
+ // // }
582
+ // // if (v.type === TypeEnum.joinData) {
583
+ // // v = joinDataPatch(v);
584
+ // // }
585
+ // // if (v.type === TypeEnum.filter) {
586
+ // // v = filterPatch(v);
587
+ // // }
588
+ // // if (v.type === TypeEnum.sort) {
589
+ // // v = sortPatch(v);
590
+ // // }
591
+ // // if (v.type === TypeEnum.customColumn) {
592
+ // // v = customColumnPatch(v);
593
+ // // }
594
+ // if (v.type === TypeEnum.union) {
595
+ // v.subquery = patchMetas(v.subquery || []);
596
+ // }
597
+ // return v;
598
+ // }) || []
599
+ // );
600
+ // };
@@ -62,65 +62,69 @@ var useStore = function useStore() {
62
62
  toolbar = _useState8[0],
63
63
  setToolbar = _useState8[1]; //工具列表
64
64
  var _useState9 = (0, _react.useState)('${name}'),
65
- _useState0 = (0, _slicedToArray2["default"])(_useState9, 2),
66
- fieldNameTpl = _useState0[0],
67
- setFieldNameTpl = _useState0[1]; //显示字段
68
- var _useState1 = (0, _react.useState)('${name}'),
69
- _useState10 = (0, _slicedToArray2["default"])(_useState1, 2),
70
- tableNameTpl = _useState10[0],
71
- setTableNameTpl = _useState10[1]; //显示字段
72
- var _useState11 = (0, _react.useState)([]),
65
+ _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
66
+ fieldNameTpl = _useState10[0],
67
+ setFieldNameTpl = _useState10[1]; //显示字段
68
+ var _useState11 = (0, _react.useState)('${name}'),
73
69
  _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
74
- sourceList = _useState12[0],
75
- setSourceList = _useState12[1]; //数据源列表
70
+ tableNameTpl = _useState12[0],
71
+ setTableNameTpl = _useState12[1]; //显示字段
76
72
  var _useState13 = (0, _react.useState)([]),
77
73
  _useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
78
- constantList = _useState14[0],
79
- setConstantList = _useState14[1]; //常量列表
80
- var _useState15 = (0, _react.useState)(false),
74
+ sourceList = _useState14[0],
75
+ setSourceList = _useState14[1]; //数据源列表
76
+ var _useState15 = (0, _react.useState)([]),
81
77
  _useState16 = (0, _slicedToArray2["default"])(_useState15, 2),
82
- ignoreGroupByType = _useState16[0],
83
- setIgnoreGroupByType = _useState16[1]; // 忽略groupBy类型
84
- var _useState17 = (0, _react.useState)(false),
78
+ constantList = _useState16[0],
79
+ setConstantList = _useState16[1]; //常量列表
80
+ var _useState17 = (0, _react.useState)([]),
85
81
  _useState18 = (0, _slicedToArray2["default"])(_useState17, 2),
86
- filterCustomType = _useState18[0],
87
- setfilterCustomType = _useState18[1]; // 过滤器自定义类型
88
- var _useState19 = (0, _react.useState)({}),
82
+ formulaTemplates = _useState18[0],
83
+ setFormulaTemplates = _useState18[1]; //公式配置数组
84
+ var _useState19 = (0, _react.useState)(false),
89
85
  _useState20 = (0, _slicedToArray2["default"])(_useState19, 2),
90
- _cacheSource2TableMap = _useState20[0],
91
- set_cacheSource2TableMap = _useState20[1]; //数据源id 对应数据集列表
92
- var _useState21 = (0, _react.useState)({}),
86
+ ignoreGroupByType = _useState20[0],
87
+ setIgnoreGroupByType = _useState20[1]; // 忽略groupBy类型
88
+ var _useState21 = (0, _react.useState)(false),
93
89
  _useState22 = (0, _slicedToArray2["default"])(_useState21, 2),
94
- _cacheColumnsMap = _useState22[0],
95
- set_cacheColumnsMap = _useState22[1]; //数据源id 对应数据集列表
96
- var _useState23 = (0, _react.useState)(defaultMeta),
90
+ filterCustomType = _useState22[0],
91
+ setfilterCustomType = _useState22[1]; // 过滤器自定义类型
92
+ var _useState23 = (0, _react.useState)({}),
97
93
  _useState24 = (0, _slicedToArray2["default"])(_useState23, 2),
98
- metaList = _useState24[0],
99
- _setMeta = _useState24[1]; //数据源id 对应数据集列表
100
- var _useState25 = (0, _react.useState)({
94
+ _cacheSource2TableMap = _useState24[0],
95
+ set_cacheSource2TableMap = _useState24[1]; //数据源id 对应数据集列表
96
+ var _useState25 = (0, _react.useState)({}),
97
+ _useState26 = (0, _slicedToArray2["default"])(_useState25, 2),
98
+ _cacheColumnsMap = _useState26[0],
99
+ set_cacheColumnsMap = _useState26[1]; //数据源id 对应数据集列表
100
+ var _useState27 = (0, _react.useState)(defaultMeta),
101
+ _useState28 = (0, _slicedToArray2["default"])(_useState27, 2),
102
+ metaList = _useState28[0],
103
+ _setMeta = _useState28[1]; //数据源id 对应数据集列表
104
+ var _useState29 = (0, _react.useState)({
101
105
  visible: false,
102
106
  node: null,
103
107
  content: null
104
108
  }),
105
- _useState26 = (0, _slicedToArray2["default"])(_useState25, 2),
106
- popupData = _useState26[0],
107
- setPopup = _useState26[1]; //弹窗
108
- var _useState27 = (0, _react.useState)({
109
+ _useState30 = (0, _slicedToArray2["default"])(_useState29, 2),
110
+ popupData = _useState30[0],
111
+ setPopup = _useState30[1]; //弹窗
112
+ var _useState31 = (0, _react.useState)({
109
113
  visible: false,
110
114
  node: null,
111
115
  content: null
112
116
  }),
113
- _useState28 = (0, _slicedToArray2["default"])(_useState27, 2),
114
- popupData2 = _useState28[0],
115
- setPopup2 = _useState28[1]; //弹窗
116
- var _useState29 = (0, _react.useState)(true),
117
- _useState30 = (0, _slicedToArray2["default"])(_useState29, 2),
118
- popupClosable = _useState30[0],
119
- setClosable = _useState30[1]; //是否可关闭 如果弹框里面再弹框 则不可关闭
120
- var _useState31 = (0, _react.useState)(true),
121
117
  _useState32 = (0, _slicedToArray2["default"])(_useState31, 2),
122
- popupClosable2 = _useState32[0],
123
- setClosable2 = _useState32[1]; //是否可关闭 如果弹框里面再弹框 则不可关闭
118
+ popupData2 = _useState32[0],
119
+ setPopup2 = _useState32[1]; //弹窗
120
+ var _useState33 = (0, _react.useState)(true),
121
+ _useState34 = (0, _slicedToArray2["default"])(_useState33, 2),
122
+ popupClosable = _useState34[0],
123
+ setClosable = _useState34[1]; //是否可关闭 如果弹框里面再弹框 则不可关闭
124
+ var _useState35 = (0, _react.useState)(true),
125
+ _useState36 = (0, _slicedToArray2["default"])(_useState35, 2),
126
+ popupClosable2 = _useState36[0],
127
+ setClosable2 = _useState36[1]; //是否可关闭 如果弹框里面再弹框 则不可关闭
124
128
  // 外层ref
125
129
  var popupContainer = (0, _react.useRef)();
126
130
  // const [fetchDatasetFn, setFetchDatasetFn] = useState<(id: string) => Promise<any>>(
@@ -145,14 +149,21 @@ var useStore = function useStore() {
145
149
  var summarizeItems = item.list.filter(function (v) {
146
150
  return v.type === _enum.TypeEnum.summarize;
147
151
  });
152
+ var index = (0, _utils.findIndex)(item.list, summarizeItems[summarizeItems.length - 1]);
148
153
  // 如果没有汇总项,默认显示主列
149
154
  if (summarizeItems.length === 0) {
150
- return true;
155
+ return {
156
+ showColumn: true,
157
+ index: -1
158
+ };
151
159
  }
152
160
  // 如果只有一个汇总项,并且 group 和 by 都为空,则也显示主列
153
161
  var onlyItem = summarizeItems[0];
154
162
  var hasGroupOrBy = Array.isArray(onlyItem.group) && onlyItem.group.length > 0 || Array.isArray(onlyItem.by) && onlyItem.by.length > 0;
155
- return !hasGroupOrBy;
163
+ return {
164
+ showColumn: !hasGroupOrBy,
165
+ index: index
166
+ };
156
167
  });
157
168
  }, [metaList]);
158
169
  // const showMainColumn = useMemo(() => {
@@ -173,23 +184,23 @@ var useStore = function useStore() {
173
184
  var fetchDataset = /*#__PURE__*/function () {
174
185
  var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(datasourceId) {
175
186
  var tables, _tables;
176
- return _regenerator["default"].wrap(function (_context) {
187
+ return _regenerator["default"].wrap(function _callee$(_context) {
177
188
  while (1) switch (_context.prev = _context.next) {
178
189
  case 0:
179
190
  tables = getDataset(datasourceId);
180
191
  if (!tables.length) {
181
- _context.next = 1;
192
+ _context.next = 3;
182
193
  break;
183
194
  }
184
195
  return _context.abrupt("return", tables);
185
- case 1:
186
- _context.next = 2;
196
+ case 3:
197
+ _context.next = 5;
187
198
  return fetchDatasetFn.current(datasourceId);
188
- case 2:
199
+ case 5:
189
200
  _tables = _context.sent;
190
201
  setDataset(datasourceId, _tables);
191
202
  return _context.abrupt("return", _tables);
192
- case 3:
203
+ case 8:
193
204
  case "end":
194
205
  return _context.stop();
195
206
  }
@@ -203,38 +214,60 @@ var useStore = function useStore() {
203
214
  // fetchDataset():
204
215
  // 查询表字段
205
216
  var fetchColumns = /*#__PURE__*/function () {
206
- var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(table, datasourceId, callback) {
217
+ var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(table, datasourceId) {
207
218
  var _columns2;
208
- var _table$alias, alias, datasourceName, did, column, extra, tableName, columns, _columns;
209
- return _regenerator["default"].wrap(function (_context2) {
219
+ var oldColumns,
220
+ callback,
221
+ selectId,
222
+ _table$alias,
223
+ alias,
224
+ datasourceName,
225
+ did,
226
+ column,
227
+ extra,
228
+ tableName,
229
+ columns,
230
+ _columns,
231
+ _args2 = arguments;
232
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
210
233
  while (1) switch (_context2.prev = _context2.next) {
211
234
  case 0:
235
+ oldColumns = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : [];
236
+ callback = _args2.length > 3 ? _args2[3] : undefined;
237
+ // 获取之前选中的数据
238
+ selectId = oldColumns.filter(function (v) {
239
+ return v.select;
240
+ }).map(function (v) {
241
+ return v.id;
242
+ });
212
243
  _table$alias = table.alias, alias = _table$alias === void 0 ? '' : _table$alias, datasourceName = table.datasourceName, did = table.datasourceId, column = table.column, extra = (0, _objectWithoutProperties2["default"])(table, _excluded);
213
244
  tableName = table.name;
214
245
  columns = getColumns(tableName);
215
246
  if (columns.length) {
216
- _context2.next = 2;
247
+ _context2.next = 11;
217
248
  break;
218
249
  }
219
- _context2.next = 1;
250
+ _context2.next = 9;
220
251
  return fetchColumnsFn.current(extra, datasourceId);
221
- case 1:
252
+ case 9:
222
253
  columns = _context2.sent;
223
254
  setColumns(tableName, columns);
224
- case 2:
255
+ case 11:
225
256
  _columns = (_columns2 = columns) === null || _columns2 === void 0 ? void 0 : _columns2.map(function (v) {
257
+ var select = selectId.includes(v.id);
226
258
  return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
227
- fieldUuid: v.fieldAlias || (0, _helper.uuidv4)('field')
259
+ select: select,
260
+ fieldUuid: v.fieldUuid || (0, _helper.uuidv4)('field')
228
261
  });
229
262
  });
230
263
  typeof callback === 'function' && callback(_columns);
231
- case 3:
264
+ case 13:
232
265
  case "end":
233
266
  return _context2.stop();
234
267
  }
235
268
  }, _callee2);
236
269
  }));
237
- return function fetchColumns(_x2, _x3, _x4) {
270
+ return function fetchColumns(_x2, _x3) {
238
271
  return _ref2.apply(this, arguments);
239
272
  };
240
273
  }();
@@ -290,8 +323,8 @@ var useStore = function useStore() {
290
323
  // newMeta[i] = setFilterQuotes(newMeta[i]);
291
324
  // }
292
325
  // 设置右侧column
293
- if ((_v$table = v.table2) !== null && _v$table !== void 0 && _v$table.datasourceId && v.columns.length < 1) {
294
- fetchColumns(newMeta[i].table2, newMeta[i].table2.datasourceId, function () {
326
+ if ((_v$table = v.table2) !== null && _v$table !== void 0 && _v$table.datasourceId) {
327
+ fetchColumns(newMeta[i].table2, newMeta[i].table2.datasourceId, v.columns, function () {
295
328
  var columns = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
296
329
  if (v.isSubquery) {
297
330
  var newColumns = [];
@@ -308,8 +341,8 @@ var useStore = function useStore() {
308
341
  return (0, _objectSpread2["default"])({}, v);
309
342
  }
310
343
  // 设置column
311
- if ((_v$table2 = v.table) !== null && _v$table2 !== void 0 && _v$table2.datasourceId && v.columns.length < 1) {
312
- fetchColumns(newMeta[i].table, newMeta[i].table.datasourceId, function () {
344
+ if ((_v$table2 = v.table) !== null && _v$table2 !== void 0 && _v$table2.datasourceId) {
345
+ fetchColumns(newMeta[i].table, newMeta[i].table.datasourceId, v.columns, function () {
313
346
  var columns = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
314
347
  if (v.isSubquery) {
315
348
  var newColumns = [];
@@ -592,7 +625,9 @@ var useStore = function useStore() {
592
625
  ignoreGroupByType: ignoreGroupByType,
593
626
  setIgnoreGroupByType: setIgnoreGroupByType,
594
627
  filterCustomType: filterCustomType,
595
- setfilterCustomType: setfilterCustomType
628
+ setfilterCustomType: setfilterCustomType,
629
+ formulaTemplates: formulaTemplates,
630
+ setFormulaTemplates: setFormulaTemplates
596
631
  };
597
632
  };
598
633
  var _default = exports["default"] = useStore;
package/lib/cjs/index.js CHANGED
@@ -17,7 +17,8 @@ var _locale = require("./locale");
17
17
  var _Loading = _interopRequireDefault(require("./common/Loading"));
18
18
  var _metabase = _interopRequireDefault(require("./components/metabase"));
19
19
  var _utils = require("./utils");
20
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
20
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
21
22
  // export { restoreStructure, handleSqlStruct, compressionStructure } from './store/helper';
22
23
 
23
24
  /**
@@ -48,6 +49,7 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
48
49
  _props$subShowSubquer = props.subShowSubquery,
49
50
  subShowSubquery = _props$subShowSubquer === void 0 ? false : _props$subShowSubquer,
50
51
  constantList = props.constantList,
52
+ formulaTemplates = props.formulaTemplates,
51
53
  _props$ignoreGroupByT = props.ignoreGroupByType,
52
54
  ignoreGroupByType = _props$ignoreGroupByT === void 0 ? false : _props$ignoreGroupByT,
53
55
  _props$filterCustomTy = props.filterCustomType,
@@ -75,9 +77,10 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
75
77
  store.setShowSubquery(showSubquery);
76
78
  store._setShowSubquery(subShowSubquery);
77
79
  store.setConstantList(constantList || []);
80
+ store.setFormulaTemplates(formulaTemplates || []);
78
81
  store.setIgnoreGroupByType(ignoreGroupByType);
79
82
  store.setfilterCustomType(filterCustomType);
80
- }, [showFields, fieldNameTpl, tableNameTpl, toolbar, showSubquery, subShowSubquery, constantList, ignoreGroupByType, filterCustomType]);
83
+ }, [showFields, fieldNameTpl, tableNameTpl, toolbar, showSubquery, subShowSubquery, constantList, formulaTemplates, ignoreGroupByType, filterCustomType]);
81
84
  _react["default"].useImperativeHandle(ref, function () {
82
85
  return {
83
86
  // setDatasource: (list) => {
@@ -39,8 +39,10 @@ var _default = exports["default"] = (0, _index.register)('en', {
39
39
  'SqlQueryBuilder.customExpression': 'customExpression',
40
40
  'SqlQueryBuilder.pickTable': 'Select data table...',
41
41
  'SqlQueryBuilder.pickConstant': 'Select constant...',
42
- 'SqlQueryBuilder.input': 'Input',
43
- 'SqlQueryBuilder.numberInput': 'Number Input',
42
+ 'customColumn.input': 'Input',
43
+ 'customColumn.numberInput': 'Number input',
44
+ 'customColumn.formula': 'Formula',
45
+ 'customColumn.selectFormula': 'Select formula...',
44
46
  'SqlQueryBuilder.switchSubQuery': 'Open subquery',
45
47
  'SqlQueryBuilder.setSubQuery': 'Set Subquery...',
46
48
  'SqlQueryBuilder.subquery': 'Subquery',
@@ -53,8 +55,9 @@ var _default = exports["default"] = (0, _index.register)('en', {
53
55
  'SqlQueryBuilder.visualize': 'visualize',
54
56
  'SqlQueryBuilder.selectColumnAll': 'select all',
55
57
  'SqlQueryBuilder.alias': 'alias',
56
- 'SqlQueryBuilder.aliasCannotEmpty': 'Alias cannot be empty',
58
+ 'SqlQueryBuilder.aliasForRules': 'Please modify the alias according to the rules, and ensure its length does not exceed 30 characters',
57
59
  'customColumn.operator': 'operator',
60
+ 'customColumn.collection': 'collection',
58
61
  'customColumn.field': 'field',
59
62
  'customColumn.constant': 'constant',
60
63
  'customColumn.str': 'string',
@@ -39,8 +39,6 @@ var _default = exports["default"] = (0, _index.register)('zh', {
39
39
  'SqlQueryBuilder.customExpression': '自定义表达方式',
40
40
  'SqlQueryBuilder.pickTable': '选择数据表...',
41
41
  'SqlQueryBuilder.pickConstant': '选择常量...',
42
- 'SqlQueryBuilder.input': '输入框',
43
- 'SqlQueryBuilder.numberInput': '数字输入框',
44
42
  'SqlQueryBuilder.switchSubQuery': '切换子查询',
45
43
  'SqlQueryBuilder.setSubQuery': '设置子查询...',
46
44
  'SqlQueryBuilder.subquery': '子查询',
@@ -53,8 +51,9 @@ var _default = exports["default"] = (0, _index.register)('zh', {
53
51
  'SqlQueryBuilder.visualize': '可视化',
54
52
  'SqlQueryBuilder.selectColumnAll': '全选',
55
53
  'SqlQueryBuilder.alias': '别名',
56
- 'SqlQueryBuilder.aliasCannotEmpty': '别名不能为空',
54
+ 'SqlQueryBuilder.aliasForRules': '请按规则修改别名,且长度不能超过30',
57
55
  'customColumn.operator': '操作符',
56
+ 'customColumn.collection': '自定义组合',
58
57
  'customColumn.field': '字段',
59
58
  'customColumn.constant': '常量',
60
59
  'customColumn.str': '字符串',
@@ -71,6 +70,10 @@ var _default = exports["default"] = (0, _index.register)('zh', {
71
70
  'customColumn.selectExpression': '选择表达式',
72
71
  'customColumn.selectOtherSyntax': '选择其他语法',
73
72
  'customColumn.selectCustomInput': '选择自定义输入框',
73
+ 'customColumn.formula': '公式',
74
+ 'customColumn.selectFormula': '选择公式...',
75
+ 'customColumn.input': '输入框',
76
+ 'customColumn.numberInput': '数字输入框',
74
77
  'filter.addFilter': '添加过滤器',
75
78
  'filter.confirm': '确认',
76
79
  'filter.pleaseEnter': '请输入',
@@ -1,4 +1,4 @@
1
- import { MetaListType, MetaSummarize_Group, AtomsTypeEnum, AtomsItem } from './types';
1
+ import { MetaListType, MetaSummarize_Group } from './types';
2
2
  export declare const SummarizeAlias = "source";
3
3
  export declare const summarizeToSql: (arr: MetaSummarize_Group[], record: MetaSummarize_Group) => {
4
4
  sql: string;
@@ -6,4 +6,3 @@ export declare const summarizeToSql: (arr: MetaSummarize_Group[], record: MetaSu
6
6
  };
7
7
  export declare const compressionStructure: (data: MetaListType[]) => string;
8
8
  export declare const restoreStructure: (data: string) => MetaListType[];
9
- export declare const getTemItem: (type: AtomsTypeEnum) => AtomsItem;