ronds-metadata 1.1.88 → 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.
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Date.js +3 -2
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/List.d.ts +2 -0
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/List.js +17 -0
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/MutiSelect.js +45 -3
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Number.js +5 -2
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Obj.d.ts +2 -0
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Obj.js +22 -0
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Select.js +47 -3
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Switch.js +4 -2
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/TextArea.js +5 -2
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/HOC/index.js +122 -2
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/index.js +6 -2
- package/es/comps/FormGenerator/comps/Canvas/core/index.js +53 -11
- package/es/comps/FormGenerator/comps/Canvas/core/index.less +0 -1
- package/es/comps/FormGenerator/comps/Settings/index.js +1 -1
- package/es/comps/FormGenerator/comps/Sidebar/index.js +1 -1
- package/es/comps/FormGenerator/settings/index.d.ts +83 -70
- package/es/comps/FormGenerator/settings/index.js +22 -15
- package/es/comps/FormGenerator/settings/ruleConfig.d.ts +32 -2
- package/es/comps/FormGenerator/settings/ruleConfig.js +201 -7
- package/es/comps/FormGenerator/transformer.js +2 -2
- package/es/comps/MetadataForm/DataCell/Array.js +18 -4
- package/es/comps/MetadataForm/DataCell/Select.js +38 -11
- package/es/comps/MetadataForm/DataCell/layout/TableArray.d.ts +1 -1
- package/es/comps/MetadataForm/DataCell/layout/TableArray.js +75 -28
- package/es/comps/MetadataForm/utils.d.ts +1 -0
- package/es/comps/MetadataForm/utils.js +13 -1
- package/es/utils.d.ts +3 -0
- package/es/utils.js +28 -2
- package/package.json +1 -1
@@ -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
|
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,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
|
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
|
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
|
-
|
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
|
8
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_InputNumber,
|
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,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
|
8
|
-
|
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
|
8
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Switch,
|
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
|
8
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Input.TextArea,
|
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
|
-
|
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-
|
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
|
|
@@ -45,22 +45,53 @@ var CanvasCore = function CanvasCore(props) {
|
|
45
45
|
setAllSetting = _React$useState8[1];
|
46
46
|
|
47
47
|
React.useEffect(function () {
|
48
|
-
onChange && onChange(
|
48
|
+
onChange && onChange(list);
|
49
49
|
}, [list]);
|
50
|
-
var addNewNode = React.useCallback(function (_node) {
|
50
|
+
var addNewNode = React.useCallback(function (_node, dropId, position) {
|
51
|
+
var _newNode;
|
52
|
+
|
51
53
|
var _list = listRef.current;
|
54
|
+
var newNode = _node;
|
52
55
|
|
53
|
-
var
|
54
|
-
id
|
56
|
+
var oldIdx = _list.findIndex(function (it) {
|
57
|
+
return it.id === _node.id;
|
55
58
|
});
|
56
59
|
|
57
|
-
|
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
|
+
}
|
58
94
|
|
59
|
-
setCurNodeId(obj.id);
|
60
|
-
fGCtx.fgStream && fGCtx.fgStream.next({
|
61
|
-
type: streamEventType.onNodeSelect,
|
62
|
-
payload: obj
|
63
|
-
});
|
64
95
|
setList(_toConsumableArray(_list));
|
65
96
|
listRef.current = _list;
|
66
97
|
}, []);
|
@@ -73,6 +104,10 @@ var CanvasCore = function CanvasCore(props) {
|
|
73
104
|
listRef.current = [];
|
74
105
|
break;
|
75
106
|
|
107
|
+
case streamEventType.onDropOver:
|
108
|
+
addNewNode(p.payload.dragItem, p.payload.dropId, p.payload.position);
|
109
|
+
break;
|
110
|
+
|
76
111
|
case streamEventType.onNodeCopy:
|
77
112
|
addNewNode(p.payload);
|
78
113
|
break;
|
@@ -113,6 +148,13 @@ var CanvasCore = function CanvasCore(props) {
|
|
113
148
|
var _useDrop = useDrop({
|
114
149
|
accept: [dragItemType],
|
115
150
|
drop: function drop(item, monitor) {
|
151
|
+
// 如果 children 已经作为了 drop target,不处理
|
152
|
+
var didDrop = monitor.didDrop();
|
153
|
+
|
154
|
+
if (didDrop) {
|
155
|
+
return;
|
156
|
+
}
|
157
|
+
|
116
158
|
addNewNode(item.dragItem);
|
117
159
|
}
|
118
160
|
}),
|