@gingkoo/pandora-metabase 1.0.140 → 1.0.141-alpha.5

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 (32) hide show
  1. package/README.md +2 -3
  2. package/lib/cjs/components/dialog/formula-list/LogicGroup.d.ts +8 -5
  3. package/lib/cjs/components/dialog/formula-list/LogicGroup.js +64 -18
  4. package/lib/cjs/components/dialog/formula-list/index.js +374 -153
  5. package/lib/cjs/components/dialog/formula-list/index.less +18 -5
  6. package/lib/cjs/components/dialog/formula-list/utils.js +45 -17
  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 +181 -80
  11. package/lib/cjs/index.js +24 -3
  12. package/lib/cjs/store/types.d.ts +4 -4
  13. package/lib/cjs/types.d.ts +21 -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 +291 -56
  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-summarize/index.js +7 -0
  23. package/lib/es/components/modules/summarize/group-by.js +10 -1
  24. package/lib/es/components/modules/summarize/select-index.js +3 -1
  25. package/lib/es/hooks/use-state.js +182 -81
  26. package/lib/es/index.js +25 -4
  27. package/lib/es/store/types.d.ts +4 -4
  28. package/lib/es/types.d.ts +21 -1
  29. package/lib/es/utils/transformSql.js +52 -39
  30. package/lib/es/utils.d.ts +1 -0
  31. package/lib/es/utils.js +290 -55
  32. package/package.json +1 -1
package/README.md CHANGED
@@ -73,9 +73,8 @@ export interface OptionItem {
73
73
  }
74
74
 
75
75
  export interface SqlVisionBuilderRef {
76
- setDatasource: (list: DatasourceType[]) => void; // 设置数据源列表
77
- setPreData: (data: MetaListType[]) => void; // 设置回显数据
78
76
  reset: () => void; // 重置到上次设置的数据
77
+ getConfig: () => MetaListType[]; // 获取当前最新配置
79
78
  }
80
79
 
81
80
  ```
@@ -126,4 +125,4 @@ export interface SqlVisionBuilderRef {
126
125
  console.log(v);
127
126
  }}
128
127
  />
129
- ```
128
+ ```
@@ -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;
@@ -5,35 +5,81 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports["default"] = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
8
9
  var _jsxRuntime = require("react/jsx-runtime");
10
+ var _react = _interopRequireDefault(require("react"));
9
11
  var _classnames = _interopRequireDefault(require("classnames"));
10
12
  var _pandora = require("@gingkoo/pandora");
11
13
  var _icons = require("../../icons");
14
+ var operatorMenuItems = [{
15
+ key: 'add',
16
+ label: '添加连接符'
17
+ }, {
18
+ key: 'delete-left',
19
+ label: '删除左侧和当前连接符'
20
+ }, {
21
+ key: 'delete-right',
22
+ label: '删除右侧和当前连接符'
23
+ }];
12
24
  var LogicGroup = function LogicGroup(_ref) {
13
- var operator = _ref.operator,
14
- onToggleOperator = _ref.onToggleOperator,
15
- leftContent = _ref.leftContent,
16
- rightContent = _ref.rightContent,
25
+ var items = _ref.items,
26
+ onChangeOperator = _ref.onChangeOperator,
27
+ onAddItem = _ref.onAddItem,
28
+ onDeleteItem = _ref.onDeleteItem,
17
29
  onDelete = _ref.onDelete;
30
+ var canDeleteItem = items.length > 2;
31
+ var handleOperatorMenuChange = function handleOperatorMenuChange(operatorIndex, action) {
32
+ if (action === 'add') {
33
+ onAddItem();
34
+ return;
35
+ }
36
+ if (action === 'delete-left' || action === 'delete-right') {
37
+ var side = action === 'delete-left' ? 'left' : 'right';
38
+ onDeleteItem(operatorIndex, side);
39
+ }
40
+ };
41
+ var renderOperator = function renderOperator(operator, index) {
42
+ return (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
43
+ trigger: 'contextMenu',
44
+ droplist: operatorMenuItems.map(function (item) {
45
+ return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, item), {}, {
46
+ disabled: item.key !== 'add' && !canDeleteItem
47
+ });
48
+ }),
49
+ triggerProps: {
50
+ clickToClose: true,
51
+ style: {
52
+ zIndex: 9999
53
+ }
54
+ },
55
+ onChange: function onChange(action) {
56
+ handleOperatorMenuChange(index, action);
57
+ },
58
+ children: (0, _jsxRuntime.jsx)("button", {
59
+ type: 'button',
60
+ className: (0, _classnames["default"])(':Sqb-TableName', 'operator-trigger', 'logic-operator', {
61
+ 'logic-and': operator === 'and',
62
+ 'logic-or': operator === 'or'
63
+ }),
64
+ onClick: function onClick() {
65
+ return onChangeOperator(index, operator === 'or' ? 'and' : 'or');
66
+ },
67
+ children: operator
68
+ })
69
+ });
70
+ };
18
71
  return (0, _jsxRuntime.jsxs)("div", {
19
72
  className: (0, _classnames["default"])('Sqb-FormulaGroup', 'logic-group', 'formula-node-group'),
20
73
  children: [(0, _jsxRuntime.jsx)("span", {
21
74
  className: 'Sqb-CaseKeyword',
22
75
  children: "("
23
- }), (0, _jsxRuntime.jsx)("div", {
24
- className: 'Sqb-LogicGroup-content',
25
- children: leftContent
26
- }), (0, _jsxRuntime.jsx)("button", {
27
- type: 'button',
28
- className: (0, _classnames["default"])('Sqb-TableName', 'operator-trigger', 'logic-operator', {
29
- 'logic-and': operator === 'and',
30
- 'logic-or': operator === 'or'
31
- }),
32
- onClick: onToggleOperator,
33
- children: operator
34
- }), (0, _jsxRuntime.jsx)("div", {
35
- className: 'Sqb-LogicGroup-content',
36
- children: rightContent
76
+ }), items.map(function (item, index) {
77
+ return (0, _jsxRuntime.jsxs)(_react["default"].Fragment, {
78
+ children: [index > 0 && renderOperator(item.operator || 'and', index), (0, _jsxRuntime.jsx)("div", {
79
+ className: 'Sqb-LogicGroup-content',
80
+ children: item.content
81
+ })]
82
+ }, index);
37
83
  }), (0, _jsxRuntime.jsx)("span", {
38
84
  className: 'Sqb-CaseKeyword',
39
85
  children: ")"