ronds-metadata 1.1.87 → 1.1.89

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 (35) hide show
  1. package/es/api/index.d.ts +1 -1
  2. package/es/api/index.js +21 -7
  3. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Date.js +3 -2
  4. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/List.d.ts +2 -0
  5. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/List.js +17 -0
  6. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/MutiSelect.js +45 -3
  7. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Number.js +5 -2
  8. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Obj.d.ts +2 -0
  9. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Obj.js +22 -0
  10. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Select.js +47 -3
  11. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Switch.js +4 -2
  12. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/TextArea.js +5 -2
  13. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/HOC/index.js +122 -2
  14. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/index.js +6 -2
  15. package/es/comps/FormGenerator/comps/Canvas/core/index.js +72 -14
  16. package/es/comps/FormGenerator/comps/Canvas/core/index.less +0 -1
  17. package/es/comps/FormGenerator/comps/Settings/index.js +1 -1
  18. package/es/comps/FormGenerator/comps/Sidebar/index.js +1 -1
  19. package/es/comps/FormGenerator/settings/index.d.ts +645 -17
  20. package/es/comps/FormGenerator/settings/index.js +71 -17
  21. package/es/comps/FormGenerator/settings/ruleConfig.d.ts +51 -2
  22. package/es/comps/FormGenerator/settings/ruleConfig.js +220 -7
  23. package/es/comps/FormGenerator/transformer.js +2 -2
  24. package/es/comps/MetadataForm/DataCell/Array.js +18 -4
  25. package/es/comps/MetadataForm/DataCell/Select.js +59 -9
  26. package/es/comps/MetadataForm/DataCell/layout/TableArray.d.ts +1 -1
  27. package/es/comps/MetadataForm/DataCell/layout/TableArray.js +75 -28
  28. package/es/comps/MetadataForm/utils.d.ts +1 -0
  29. package/es/comps/MetadataForm/utils.js +23 -2
  30. package/es/framework/metadata/MetadataService.d.ts +1 -1
  31. package/es/framework/metadata/MetadataService.js +8 -3
  32. package/es/framework/metadata/types.d.ts +98 -98
  33. package/es/utils.d.ts +3 -0
  34. package/es/utils.js +28 -2
  35. package/package.json +1 -1
package/es/api/index.d.ts CHANGED
@@ -15,5 +15,5 @@ export default class Api implements IAPI {
15
15
  /** 添加元数据 */
16
16
  SaveMetadata(data: any, metadataTag: string): Promise<any>;
17
17
  GetMetadataObjList(data: any): Promise<any>;
18
- GetEnumDataByUrl(url: string): Promise<any>;
18
+ GetEnumDataByUrl(url: string, method: 'get' | 'post', body?: any): Promise<any>;
19
19
  }
package/es/api/index.js CHANGED
@@ -6,7 +6,7 @@ import _createClass from "@babel/runtime/helpers/esm/createClass";
6
6
  /*
7
7
  * @Author:wangxian
8
8
  * @Date: 2021-09-18 14:15:04
9
- * @LastEditTime: 2022-12-07 15:45:18
9
+ * @LastEditTime: 2023-02-09 19:16:42
10
10
  */
11
11
  import { guid, md5 } from '../utils';
12
12
  import { addInterceptor, HttpHelper } from '../framework/http';
@@ -200,20 +200,34 @@ var Api = /*#__PURE__*/function () {
200
200
  }, {
201
201
  key: "GetEnumDataByUrl",
202
202
  value: function () {
203
- var _GetEnumDataByUrl = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(url) {
204
- var res;
203
+ var _GetEnumDataByUrl = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(url, method, body) {
204
+ var res, _res;
205
+
205
206
  return _regeneratorRuntime.wrap(function _callee5$(_context5) {
206
207
  while (1) {
207
208
  switch (_context5.prev = _context5.next) {
208
209
  case 0:
209
- _context5.next = 2;
210
+ if (!(method === 'get')) {
211
+ _context5.next = 7;
212
+ break;
213
+ }
214
+
215
+ _context5.next = 3;
210
216
  return http.get(encodeURI(url));
211
217
 
212
- case 2:
218
+ case 3:
213
219
  res = _context5.sent;
214
220
  return _context5.abrupt("return", res.successed ? res.data : []);
215
221
 
216
- case 4:
222
+ case 7:
223
+ _context5.next = 9;
224
+ return http.post(encodeURI(url), body);
225
+
226
+ case 9:
227
+ _res = _context5.sent;
228
+ return _context5.abrupt("return", _res.successed ? _res.data : []);
229
+
230
+ case 11:
217
231
  case "end":
218
232
  return _context5.stop();
219
233
  }
@@ -221,7 +235,7 @@ var Api = /*#__PURE__*/function () {
221
235
  }, _callee5);
222
236
  }));
223
237
 
224
- function GetEnumDataByUrl(_x6) {
238
+ function GetEnumDataByUrl(_x6, _x7, _x8) {
225
239
  return _GetEnumDataByUrl.apply(this, arguments);
226
240
  }
227
241
 
@@ -5,10 +5,11 @@ import { withFieldCellWrapper } from '../HOC';
5
5
  import { DEFAULT_DATE_FORMAT } from '../../../../../../../comps/MetadataForm/DataCell/Input';
6
6
 
7
7
  var Index = function Index(props) {
8
- var data = props.data;
8
+ var setting = props.setting;
9
9
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_DatePicker, {
10
10
  showTime: true,
11
- format: DEFAULT_DATE_FORMAT
11
+ format: DEFAULT_DATE_FORMAT,
12
+ disabled: setting === null || setting === void 0 ? void 0 : setting.disabled
12
13
  }));
13
14
  };
14
15
 
@@ -0,0 +1,2 @@
1
+ declare const _default: (props: any) => JSX.Element;
2
+ export default _default;
@@ -0,0 +1,17 @@
1
+ import "antd/es/input/style";
2
+ import _Input from "antd/es/input";
3
+ import React from "react";
4
+ import { withFieldCellWrapper } from '../HOC';
5
+
6
+ var Index = function Index(props) {
7
+ var data = props.data,
8
+ fgStream = props.fgStream,
9
+ setting = props.setting;
10
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Input, {
11
+ disabled: setting === null || setting === void 0 ? void 0 : setting.disabled,
12
+ placeholder: setting === null || setting === void 0 ? void 0 : setting.placeholder,
13
+ allowClear: true
14
+ }));
15
+ };
16
+
17
+ export default withFieldCellWrapper(Index);
@@ -1,12 +1,54 @@
1
1
  import "antd/es/select/style";
2
2
  import _Select from "antd/es/select";
3
- import React from "react";
3
+ import React from 'react';
4
4
  import { withFieldCellWrapper } from '../HOC';
5
+ import { deepClone } from '../../../../../../../utils';
5
6
 
6
7
  var Index = function Index(props) {
7
- var data = props.data;
8
+ var setting = props.setting;
9
+ var processNormalOptions = React.useCallback(function (opt) {
10
+ var _options = [];
11
+
12
+ var _enum = deepClone(opt);
13
+
14
+ _enum.forEach(function (it) {
15
+ var _it$key;
16
+
17
+ var obj = {
18
+ label: it.value,
19
+ value: (_it$key = it === null || it === void 0 ? void 0 : it.key) !== null && _it$key !== void 0 ? _it$key : it === null || it === void 0 ? void 0 : it.value
20
+ };
21
+
22
+ _options.push(obj);
23
+ });
24
+
25
+ return _options;
26
+ }, []);
27
+ var options = React.useMemo(function () {
28
+ var _setting$enum;
29
+
30
+ if (setting === null || setting === void 0 ? void 0 : (_setting$enum = setting.enum) === null || _setting$enum === void 0 ? void 0 : _setting$enum.value) {
31
+ var _setting$enum2;
32
+
33
+ return processNormalOptions(setting === null || setting === void 0 ? void 0 : (_setting$enum2 = setting.enum) === null || _setting$enum2 === void 0 ? void 0 : _setting$enum2.value);
34
+ }
35
+
36
+ return [{
37
+ label: 'uloveits1',
38
+ value: '1'
39
+ }, {
40
+ label: 'uloveits2',
41
+ value: '2'
42
+ }, {
43
+ label: 'uloveits3',
44
+ value: '3'
45
+ }];
46
+ }, [setting === null || setting === void 0 ? void 0 : setting.enum]);
8
47
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Select, {
9
- mode: "multiple"
48
+ options: options,
49
+ mode: "multiple",
50
+ placeholder: setting === null || setting === void 0 ? void 0 : setting.placeholder,
51
+ disabled: setting === null || setting === void 0 ? void 0 : setting.disabled
10
52
  }));
11
53
  };
12
54
 
@@ -4,8 +4,11 @@ import React from "react";
4
4
  import { withFieldCellWrapper } from '../HOC';
5
5
 
6
6
  var Index = function Index(props) {
7
- var data = props.data;
8
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_InputNumber, null));
7
+ var setting = props.setting;
8
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_InputNumber, {
9
+ placeholder: setting === null || setting === void 0 ? void 0 : setting.placeholder,
10
+ disabled: setting === null || setting === void 0 ? void 0 : setting.disabled
11
+ }));
9
12
  };
10
13
 
11
14
  export default withFieldCellWrapper(Index);
@@ -0,0 +1,2 @@
1
+ declare const _default: (props: any) => JSX.Element;
2
+ export default _default;
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+
3
+ /*
4
+ * @Author: uloveits 719310130@qq.com
5
+ * @Date: 2023-02-06 15:05:42
6
+ * @LastEditors: uloveits 719310130@qq.com
7
+ * @LastEditTime: 2023-02-13 19:39:56
8
+ */
9
+ import CanvasCore from '../../index';
10
+ import { withFieldCellWrapper } from '../HOC';
11
+
12
+ var Index = function Index(props) {
13
+ var data = props.data,
14
+ fgStream = props.fgStream,
15
+ setting = props.setting;
16
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CanvasCore, {
17
+ onChange: function onChange(nodes) {// nodesRef.current = nodes;
18
+ }
19
+ }));
20
+ };
21
+
22
+ export default withFieldCellWrapper(Index);
@@ -1,11 +1,55 @@
1
1
  import "antd/es/select/style";
2
2
  import _Select from "antd/es/select";
3
- import React from "react";
4
3
  import { withFieldCellWrapper } from '../HOC';
4
+ import React from 'react';
5
+ import { deepClone } from '@/utils';
5
6
 
6
7
  var Index = function Index(props) {
7
- var data = props.data;
8
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Select, null));
8
+ var setting = props.setting;
9
+ var processNormalOptions = React.useCallback(function (opt) {
10
+ var _options = [];
11
+
12
+ var _enum = deepClone(opt);
13
+
14
+ _enum.forEach(function (it) {
15
+ var _it$key;
16
+
17
+ var obj = {
18
+ label: it.value,
19
+ value: (_it$key = it === null || it === void 0 ? void 0 : it.key) !== null && _it$key !== void 0 ? _it$key : it === null || it === void 0 ? void 0 : it.value
20
+ };
21
+
22
+ _options.push(obj);
23
+ });
24
+
25
+ return _options;
26
+ }, []);
27
+ var options = React.useMemo(function () {
28
+ var _setting$enum;
29
+
30
+ if (setting === null || setting === void 0 ? void 0 : (_setting$enum = setting.enum) === null || _setting$enum === void 0 ? void 0 : _setting$enum.value) {
31
+ var _setting$enum2;
32
+
33
+ return processNormalOptions(setting === null || setting === void 0 ? void 0 : (_setting$enum2 = setting.enum) === null || _setting$enum2 === void 0 ? void 0 : _setting$enum2.value);
34
+ }
35
+
36
+ return [{
37
+ label: 'uloveits1',
38
+ value: '1'
39
+ }, {
40
+ label: 'uloveits2',
41
+ value: '2'
42
+ }, {
43
+ label: 'uloveits3',
44
+ value: '3'
45
+ }];
46
+ }, [setting === null || setting === void 0 ? void 0 : setting.enum]);
47
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Select, {
48
+ options: options,
49
+ placeholder: setting === null || setting === void 0 ? void 0 : setting.placeholder,
50
+ disabled: setting === null || setting === void 0 ? void 0 : setting.disabled,
51
+ allowClear: true
52
+ }));
9
53
  };
10
54
 
11
55
  export default withFieldCellWrapper(Index);
@@ -4,8 +4,10 @@ import React from "react";
4
4
  import { withFieldCellWrapper } from '../HOC';
5
5
 
6
6
  var Index = function Index(props) {
7
- var data = props.data;
8
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Switch, null));
7
+ var setting = props.setting;
8
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Switch, {
9
+ disabled: setting === null || setting === void 0 ? void 0 : setting.disabled
10
+ }));
9
11
  };
10
12
 
11
13
  export default withFieldCellWrapper(Index);
@@ -4,8 +4,11 @@ import React from "react";
4
4
  import { withFieldCellWrapper } from '../HOC';
5
5
 
6
6
  var Index = function Index(props) {
7
- var data = props.data;
8
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Input.TextArea, null));
7
+ var setting = props.setting;
8
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Input.TextArea, {
9
+ placeholder: setting === null || setting === void 0 ? void 0 : setting.placeholder,
10
+ disabled: setting === null || setting === void 0 ? void 0 : setting.disabled
11
+ }));
9
12
  };
10
13
 
11
14
  export default withFieldCellWrapper(Index);
@@ -3,24 +3,32 @@ import _Button from "antd/es/button";
3
3
  import "antd/es/form/style";
4
4
  import _Form from "antd/es/form";
5
5
  import _extends from "@babel/runtime/helpers/esm/extends";
6
+ import _objectDestructuringEmpty from "@babel/runtime/helpers/esm/objectDestructuringEmpty";
6
7
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
7
8
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
8
9
  import React from 'react';
9
10
  import { DragOutlined, SnippetsOutlined, DeleteOutlined } from '@ant-design/icons';
10
11
  import { FGCtx } from '../../../../../Provider';
11
- import { streamEventType } from '../../../../../settings';
12
+ import { dragItemType, streamEventType } from '../../../../../settings';
12
13
  import useObservable from '../../../../../../../framework/rxjs-hooks/useObservable';
14
+ import { useDrag, useDrop } from 'react-dnd';
13
15
  export function withFieldCellWrapper(WrappedComponent) {
14
16
  return function (props) {
15
17
  var data = props.data,
16
18
  isShowAction = props.isShowAction;
17
19
  var fGCtx = React.useContext(FGCtx) || {};
20
+ var boxRef = React.useRef(null);
18
21
 
19
22
  var _React$useState = React.useState(),
20
23
  _React$useState2 = _slicedToArray(_React$useState, 2),
21
24
  cellSetting = _React$useState2[0],
22
25
  setCellSetting = _React$useState2[1];
23
26
 
27
+ var _React$useState3 = React.useState(),
28
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
29
+ position = _React$useState4[0],
30
+ setPosition = _React$useState4[1];
31
+
24
32
  var processFgStreamData = React.useCallback(function (p) {
25
33
  switch (p === null || p === void 0 ? void 0 : p.type) {
26
34
  case streamEventType.onSettingValueChange:
@@ -35,6 +43,97 @@ export function withFieldCellWrapper(WrappedComponent) {
35
43
  processFgStreamData(p);
36
44
  }, [fGCtx.fgStream]);
37
45
 
46
+ var _useDrag = useDrag({
47
+ item: {
48
+ dragItem: data,
49
+ type: dragItemType
50
+ },
51
+ end: function end(item, monitor) {
52
+ var dropResult = monitor.getDropResult();
53
+
54
+ if (item && dropResult) {}
55
+ },
56
+ collect: function collect(monitor) {
57
+ return {
58
+ isDragging: monitor.isDragging()
59
+ };
60
+ }
61
+ }),
62
+ _useDrag2 = _slicedToArray(_useDrag, 3);
63
+
64
+ _objectDestructuringEmpty(_useDrag2[0]);
65
+
66
+ var drag = _useDrag2[1],
67
+ dragPreview = _useDrag2[2]; // 处理组件拖拽落下事件
68
+
69
+ var _useDrop = useDrop({
70
+ accept: [dragItemType],
71
+ drop: function drop(item, monitor) {
72
+ // 如果 children 已经作为了 drop target,不处理
73
+ var didDrop = monitor.didDrop();
74
+
75
+ if (didDrop) {
76
+ return;
77
+ }
78
+
79
+ (fGCtx === null || fGCtx === void 0 ? void 0 : fGCtx.fgStream) && fGCtx.fgStream.next({
80
+ type: streamEventType.onDropOver,
81
+ payload: {
82
+ dragItem: item.dragItem,
83
+ dropId: data.id,
84
+ position: position
85
+ }
86
+ }); // setPosition(undefined);
87
+ },
88
+ hover: function hover(item, monitor) {
89
+ // 只检查被hover的最小元素
90
+ var didHover = monitor.isOver({
91
+ shallow: true
92
+ });
93
+
94
+ if (didHover) {
95
+ if (item.dragItem.id === data.id) return; // Determine rectangle on screen
96
+
97
+ // Determine rectangle on screen
98
+ var hoverBoundingRect = boxRef.current && boxRef.current.getBoundingClientRect(); // Get vertical middle
99
+
100
+ // Get vertical middle
101
+ var hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2; // Determine mouse position
102
+ // const clientOffset = monitor.getClientOffset();
103
+
104
+ // Determine mouse position
105
+ // const clientOffset = monitor.getClientOffset();
106
+ var dragOffset = monitor.getSourceClientOffset(); // Get pixels to the top
107
+
108
+ // Get pixels to the top
109
+ var hoverClientY = dragOffset.y - hoverBoundingRect.top;
110
+
111
+ if (hoverClientY <= hoverMiddleY) {
112
+ setPosition('borderTop');
113
+ } // Dragging upwards
114
+
115
+
116
+ // Dragging upwards
117
+ if (hoverClientY > hoverMiddleY) {
118
+ setPosition('borderBottom');
119
+ }
120
+ }
121
+ },
122
+ collect: function collect(monitor) {
123
+ return {
124
+ isOver: monitor.isOver({
125
+ shallow: true
126
+ }),
127
+ canDrop: monitor.canDrop()
128
+ };
129
+ }
130
+ }),
131
+ _useDrop2 = _slicedToArray(_useDrop, 2),
132
+ _useDrop2$ = _useDrop2[0],
133
+ canDrop = _useDrop2$.canDrop,
134
+ isOver = _useDrop2$.isOver,
135
+ dropRef = _useDrop2[1];
136
+
38
137
  var onNodeDelete = function onNodeDelete(e) {
39
138
  e.stopPropagation();
40
139
  fGCtx.fgStream && fGCtx.fgStream.next({
@@ -53,7 +152,27 @@ export function withFieldCellWrapper(WrappedComponent) {
53
152
  });
54
153
  };
55
154
 
56
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
155
+ var isActive = canDrop && isOver;
156
+ dragPreview(dropRef(boxRef));
157
+
158
+ var getBorder = function getBorder(_position) {
159
+ var _style = {
160
+ width: '100%',
161
+ height: '100%',
162
+ padding: '4px 10px'
163
+ };
164
+
165
+ if (_position && isActive) {
166
+ _style[_position] = '2px solid red';
167
+ }
168
+
169
+ return _style;
170
+ };
171
+
172
+ return /*#__PURE__*/React.createElement("div", {
173
+ ref: boxRef,
174
+ style: _objectSpread({}, getBorder(position))
175
+ }, /*#__PURE__*/React.createElement("div", {
57
176
  style: {
58
177
  fontSize: '12px',
59
178
  textAlign: 'right'
@@ -84,6 +203,7 @@ export function withFieldCellWrapper(WrappedComponent) {
84
203
  fgStream: fGCtx.fgStream,
85
204
  setting: cellSetting
86
205
  }))), isShowAction && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
206
+ ref: drag,
87
207
  style: {
88
208
  position: 'absolute',
89
209
  top: '-3px',
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  * @Author: wangxian
3
3
  * @Date: 2023-02-06 11:35:45
4
- * @LastEditTime: 2023-02-08 13:41:36
4
+ * @LastEditTime: 2023-02-13 14:52:56
5
5
  */
6
6
  import React from 'react';
7
7
  import Input from './Cell/Input';
@@ -11,6 +11,8 @@ import Number from './Cell/Number';
11
11
  import Switch from './Cell/Switch';
12
12
  import Select from './Cell/Select';
13
13
  import MutiSelect from './Cell/MutiSelect';
14
+ import Obj from './Cell/Obj';
15
+ import List from './Cell/List';
14
16
 
15
17
  var RenderField = function RenderField(props) {
16
18
  var data = props.data,
@@ -40,5 +42,7 @@ var DataCellMap = {
40
42
  number: Number,
41
43
  switch: Switch,
42
44
  select: Select,
43
- mutiSelect: MutiSelect
45
+ mutiSelect: MutiSelect,
46
+ obj: Obj,
47
+ list: List
44
48
  };
@@ -12,7 +12,7 @@ import { useDrop } from 'react-dnd';
12
12
  import { FGCtx } from '../../../../../comps/FormGenerator/Provider';
13
13
  import { dragItemType, streamEventType } from '../../../settings';
14
14
  import useObservable from '../../../../../framework/rxjs-hooks/useObservable';
15
- import { guid } from '../../../../../utils';
15
+ import { arrayInsert, arrayMoveImmutable, guid } from '../../../../../utils';
16
16
  import RenderField from './RenderField';
17
17
  import './index.less';
18
18
 
@@ -39,28 +39,64 @@ var CanvasCore = function CanvasCore(props) {
39
39
  formSetting = _React$useState6[0],
40
40
  setFormSetting = _React$useState6[1];
41
41
 
42
+ var _React$useState7 = React.useState(),
43
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
44
+ allSetting = _React$useState8[0],
45
+ setAllSetting = _React$useState8[1];
46
+
42
47
  React.useEffect(function () {
43
- onChange && onChange(listRef.current);
48
+ onChange && onChange(list);
44
49
  }, [list]);
45
- var addNewNode = React.useCallback(function (_node) {
50
+ var addNewNode = React.useCallback(function (_node, dropId, position) {
51
+ var _newNode;
52
+
46
53
  var _list = listRef.current;
54
+ var newNode = _node;
47
55
 
48
- var obj = _objectSpread(_objectSpread({}, _node), {}, {
49
- id: "".concat(_node.id.split('-')[0], "-").concat(guid().substring(0, 4))
56
+ var oldIdx = _list.findIndex(function (it) {
57
+ return it.id === _node.id;
50
58
  });
51
59
 
52
- _list.push(obj);
60
+ if (dropId && position) {
61
+ //先判断是新增还是改变顺序
62
+ var newIdx = _list.findIndex(function (it) {
63
+ return it.id === dropId;
64
+ });
65
+
66
+ newIdx = position === 'borderTop' ? newIdx : newIdx + 1;
67
+
68
+ if (oldIdx === -1) {
69
+ newNode = _objectSpread(_objectSpread({}, _node), {}, {
70
+ id: "".concat(_node.id.split('-')[0], "-").concat(guid().substring(0, 4))
71
+ });
72
+ _list = arrayInsert(_list, newIdx, newNode);
73
+ } else {
74
+ newIdx = oldIdx < newIdx ? newIdx - 1 : newIdx;
75
+ _list = arrayMoveImmutable(_list, oldIdx, newIdx);
76
+ }
77
+ } else {
78
+ if (oldIdx === -1) {
79
+ newNode = _objectSpread(_objectSpread({}, _node), {}, {
80
+ id: "".concat(_node.id.split('-')[0], "-").concat(guid().substring(0, 4))
81
+ });
82
+
83
+ _list.push(newNode);
84
+ }
85
+ }
86
+
87
+ if ((_newNode = newNode) === null || _newNode === void 0 ? void 0 : _newNode.id) {
88
+ setCurNodeId(newNode.id);
89
+ fGCtx.fgStream && fGCtx.fgStream.next({
90
+ type: streamEventType.onNodeSelect,
91
+ payload: newNode
92
+ });
93
+ }
53
94
 
54
- setCurNodeId(obj.id);
55
- fGCtx.fgStream && fGCtx.fgStream.next({
56
- type: streamEventType.onNodeSelect,
57
- payload: obj
58
- });
59
95
  setList(_toConsumableArray(_list));
60
96
  listRef.current = _list;
61
97
  }, []);
62
98
  var processFgStreamData = React.useCallback(function (p) {
63
- var _p$payload;
99
+ var _p$payload, _p$payload3;
64
100
 
65
101
  switch (p === null || p === void 0 ? void 0 : p.type) {
66
102
  case streamEventType.onClearCanvas:
@@ -68,6 +104,10 @@ var CanvasCore = function CanvasCore(props) {
68
104
  listRef.current = [];
69
105
  break;
70
106
 
107
+ case streamEventType.onDropOver:
108
+ addNewNode(p.payload.dragItem, p.payload.dropId, p.payload.position);
109
+ break;
110
+
71
111
  case streamEventType.onNodeCopy:
72
112
  addNewNode(p.payload);
73
113
  break;
@@ -97,6 +137,7 @@ var CanvasCore = function CanvasCore(props) {
97
137
  setFormSetting(_objectSpread({}, p === null || p === void 0 ? void 0 : (_p$payload2 = p.payload) === null || _p$payload2 === void 0 ? void 0 : _p$payload2.formSetting));
98
138
  }
99
139
 
140
+ setAllSetting(_objectSpread({}, p === null || p === void 0 ? void 0 : (_p$payload3 = p.payload) === null || _p$payload3 === void 0 ? void 0 : _p$payload3.allSetting));
100
141
  break;
101
142
  }
102
143
  }, []);
@@ -107,6 +148,13 @@ var CanvasCore = function CanvasCore(props) {
107
148
  var _useDrop = useDrop({
108
149
  accept: [dragItemType],
109
150
  drop: function drop(item, monitor) {
151
+ // 如果 children 已经作为了 drop target,不处理
152
+ var didDrop = monitor.didDrop();
153
+
154
+ if (didDrop) {
155
+ return;
156
+ }
157
+
110
158
  addNewNode(item.dragItem);
111
159
  }
112
160
  }),
@@ -121,6 +169,16 @@ var CanvasCore = function CanvasCore(props) {
121
169
  });
122
170
  };
123
171
 
172
+ var processColSpan = function processColSpan(compColSpan, formColSpan) {
173
+ var _formColSpan = formColSpan !== null && formColSpan !== void 0 ? formColSpan : 24;
174
+
175
+ if (compColSpan) {
176
+ return compColSpan * _formColSpan <= 24 ? compColSpan * _formColSpan : 24;
177
+ }
178
+
179
+ return _formColSpan;
180
+ };
181
+
124
182
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
125
183
  className: "canvas-wrapper",
126
184
  ref: dropRef,
@@ -147,10 +205,10 @@ var CanvasCore = function CanvasCore(props) {
147
205
  }, /*#__PURE__*/React.createElement(_Row, {
148
206
  gutter: 8
149
207
  }, list.map(function (it) {
150
- var _formSetting$colSpan;
208
+ var _allSetting$it$id;
151
209
 
152
210
  return /*#__PURE__*/React.createElement(_Col, {
153
- span: (_formSetting$colSpan = formSetting === null || formSetting === void 0 ? void 0 : formSetting.colSpan) !== null && _formSetting$colSpan !== void 0 ? _formSetting$colSpan : 24,
211
+ span: processColSpan(allSetting && ((_allSetting$it$id = allSetting[it.id]) === null || _allSetting$it$id === void 0 ? void 0 : _allSetting$it$id.colSpan), formSetting === null || formSetting === void 0 ? void 0 : formSetting.colSpan),
154
212
  style: {
155
213
  width: '100%'
156
214
  }
@@ -3,7 +3,6 @@
3
3
  position: relative;
4
4
  border: 1px dashed var(--ronds-metadata-color-border-1);
5
5
  background: var(--ronds-metadata-color-bg-4);
6
- padding: 4px 10px;
7
6
  margin-bottom: 8px;
8
7
  }
9
8
 
@@ -76,7 +76,7 @@ var Settings = function Settings() {
76
76
  return /*#__PURE__*/React.createElement("div", {
77
77
  style: {
78
78
  height: '100%',
79
- width: '20%',
79
+ width: '23%',
80
80
  padding: '4px'
81
81
  }
82
82
  }, /*#__PURE__*/React.createElement(_Tabs, {
@@ -8,7 +8,7 @@ var Sidebar = function Sidebar() {
8
8
  return /*#__PURE__*/React.createElement("div", {
9
9
  style: {
10
10
  height: '100%',
11
- width: '20%',
11
+ width: '17%',
12
12
  padding: '4px',
13
13
  overflowY: 'auto'
14
14
  }