@zgfe/business-lib 1.0.23 → 1.0.24-alpha.2
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/attributeSelector/listPanel.js +0 -1
- package/es/dnd/demo/data.d.ts +2 -0
- package/es/dnd/demo/data.js +75 -0
- package/es/dnd/demo/handle.d.ts +2 -0
- package/es/dnd/demo/handle.js +77 -0
- package/es/dnd/demo/index.js +25 -5
- package/es/dnd/demo/styles/index.less +21 -1
- package/es/dnd/index.d.ts +3 -4
- package/es/dnd/index.js +116 -7
- package/es/dnd/item.js +141 -3
- package/es/dnd/styles/index.less +19 -0
- package/es/dnd/types.d.ts +22 -3
- package/package.json +2 -2
|
@@ -149,7 +149,6 @@ var AttrListPanel = function AttrListPanel(props) {
|
|
|
149
149
|
disableItemlist === null || disableItemlist === void 0 ? void 0 : disableItemlist.forEach(function (item) {
|
|
150
150
|
if (item.key === option.key) disabled = true;
|
|
151
151
|
});
|
|
152
|
-
console.log('>>>>>>>>>', option === null || option === void 0 ? void 0 : option.key);
|
|
153
152
|
childList.push( /*#__PURE__*/React.createElement(Option, {
|
|
154
153
|
option: option,
|
|
155
154
|
key: option === null || option === void 0 ? void 0 : option.key,
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
|
|
3
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
+
|
|
5
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
+
|
|
7
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
8
|
+
|
|
9
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
10
|
+
|
|
11
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
|
+
|
|
13
|
+
import React, { useState } from 'react';
|
|
14
|
+
import { BizDnd } from '@zgfe/business-lib';
|
|
15
|
+
import styles from './styles/index.less';
|
|
16
|
+
import _ from 'lodash';
|
|
17
|
+
export default (function () {
|
|
18
|
+
var _useState = useState([{
|
|
19
|
+
id: 0,
|
|
20
|
+
label: 'a'
|
|
21
|
+
}, {
|
|
22
|
+
id: 1,
|
|
23
|
+
label: 'b'
|
|
24
|
+
}, {
|
|
25
|
+
id: 2,
|
|
26
|
+
label: 'c'
|
|
27
|
+
}, {
|
|
28
|
+
id: 3,
|
|
29
|
+
label: '添加',
|
|
30
|
+
disabled: true,
|
|
31
|
+
isAdd: true
|
|
32
|
+
}]),
|
|
33
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
34
|
+
list = _useState2[0],
|
|
35
|
+
setList = _useState2[1];
|
|
36
|
+
|
|
37
|
+
function onAdd() {
|
|
38
|
+
setList(function (list) {
|
|
39
|
+
var res = [];
|
|
40
|
+
list.forEach(function (item, i) {
|
|
41
|
+
if (item.isAdd) {
|
|
42
|
+
res.push({
|
|
43
|
+
id: Math.random(),
|
|
44
|
+
label: String.fromCharCode(97 + i)
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
res.push(_.cloneDeep(item));
|
|
49
|
+
});
|
|
50
|
+
return res;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(BizDnd, {
|
|
55
|
+
className: styles.container,
|
|
56
|
+
store: list,
|
|
57
|
+
keyField: "id",
|
|
58
|
+
itemClassName: styles.item,
|
|
59
|
+
tempClassName: styles.temp,
|
|
60
|
+
draddingClassName: styles.doing,
|
|
61
|
+
itemRender: function itemRender(data) {
|
|
62
|
+
if (data.isAdd) return /*#__PURE__*/React.createElement("div", {
|
|
63
|
+
key: data.id,
|
|
64
|
+
className: styles.add,
|
|
65
|
+
onClick: onAdd
|
|
66
|
+
}, "+");
|
|
67
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
68
|
+
key: data.id
|
|
69
|
+
}, data.label);
|
|
70
|
+
},
|
|
71
|
+
onChange: function onChange(list) {
|
|
72
|
+
console.log('排序后数据', list);
|
|
73
|
+
}
|
|
74
|
+
}));
|
|
75
|
+
});
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
|
|
3
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
+
|
|
5
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
+
|
|
7
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
8
|
+
|
|
9
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
10
|
+
|
|
11
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
|
+
|
|
13
|
+
import React, { useState } from 'react';
|
|
14
|
+
import { BizDnd } from '@zgfe/business-lib';
|
|
15
|
+
import styles from './styles/index.less';
|
|
16
|
+
import _ from 'lodash';
|
|
17
|
+
export default (function () {
|
|
18
|
+
var _useState = useState([{
|
|
19
|
+
id: 0,
|
|
20
|
+
label: 'a'
|
|
21
|
+
}, {
|
|
22
|
+
id: 1,
|
|
23
|
+
label: 'b'
|
|
24
|
+
}, {
|
|
25
|
+
id: 2,
|
|
26
|
+
label: 'c'
|
|
27
|
+
}, {
|
|
28
|
+
id: 3,
|
|
29
|
+
label: '添加',
|
|
30
|
+
disabled: true,
|
|
31
|
+
isAdd: true
|
|
32
|
+
}]),
|
|
33
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
34
|
+
list = _useState2[0],
|
|
35
|
+
setList = _useState2[1];
|
|
36
|
+
|
|
37
|
+
function onAdd() {
|
|
38
|
+
setList(function (list) {
|
|
39
|
+
var res = [];
|
|
40
|
+
list.forEach(function (item, i) {
|
|
41
|
+
if (item.isAdd) {
|
|
42
|
+
res.push({
|
|
43
|
+
id: Math.random(),
|
|
44
|
+
label: String.fromCharCode(97 + i)
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
res.push(_.cloneDeep(item));
|
|
49
|
+
});
|
|
50
|
+
return res;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(BizDnd, {
|
|
55
|
+
className: styles.container,
|
|
56
|
+
store: list,
|
|
57
|
+
keyField: "id",
|
|
58
|
+
itemClassName: styles.item,
|
|
59
|
+
tempClassName: styles.temp,
|
|
60
|
+
draddingClassName: styles.doing,
|
|
61
|
+
handleClassName: styles.handle,
|
|
62
|
+
handle: /*#__PURE__*/React.createElement("div", null, "\u64CD\u4F5C\u680F"),
|
|
63
|
+
itemRender: function itemRender(data, _index, handle) {
|
|
64
|
+
if (data.isAdd) return /*#__PURE__*/React.createElement("div", {
|
|
65
|
+
key: data.id,
|
|
66
|
+
className: styles.add,
|
|
67
|
+
onClick: onAdd
|
|
68
|
+
}, "+");
|
|
69
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
70
|
+
key: data.id
|
|
71
|
+
}, handle, data.label);
|
|
72
|
+
},
|
|
73
|
+
onChange: function onChange(list) {
|
|
74
|
+
console.log('排序后数据', list);
|
|
75
|
+
}
|
|
76
|
+
}));
|
|
77
|
+
});
|
package/es/dnd/demo/index.js
CHANGED
|
@@ -2,9 +2,29 @@ import React from 'react';
|
|
|
2
2
|
import { BizDnd } from '@zgfe/business-lib';
|
|
3
3
|
import styles from './styles/index.less';
|
|
4
4
|
export default (function () {
|
|
5
|
-
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(BizDnd
|
|
6
|
-
className: styles.container
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(BizDnd, {
|
|
6
|
+
className: styles.container,
|
|
7
|
+
store: [{
|
|
8
|
+
id: 0,
|
|
9
|
+
label: 'a'
|
|
10
|
+
}, {
|
|
11
|
+
id: 1,
|
|
12
|
+
label: 'b'
|
|
13
|
+
}, {
|
|
14
|
+
id: 2,
|
|
15
|
+
label: 'c'
|
|
16
|
+
}],
|
|
17
|
+
keyField: "id",
|
|
18
|
+
itemClassName: styles.item,
|
|
19
|
+
tempClassName: styles.temp,
|
|
20
|
+
draddingClassName: styles.doing,
|
|
21
|
+
itemRender: function itemRender(data) {
|
|
22
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
23
|
+
key: data.id
|
|
24
|
+
}, data.label);
|
|
25
|
+
},
|
|
26
|
+
onChange: function onChange(list) {
|
|
27
|
+
console.log('排序后数据', list);
|
|
28
|
+
}
|
|
29
|
+
}));
|
|
10
30
|
});
|
|
@@ -6,9 +6,29 @@
|
|
|
6
6
|
}
|
|
7
7
|
.item {
|
|
8
8
|
display: inline-block;
|
|
9
|
-
width:
|
|
9
|
+
width: 10%;
|
|
10
10
|
height: 150px;
|
|
11
|
+
margin: @margin-md;
|
|
12
|
+
line-height: 150px;
|
|
11
13
|
text-align: center;
|
|
14
|
+
vertical-align: top;
|
|
12
15
|
background: @background-color-base;
|
|
13
16
|
border-radius: @border-radius-normal;
|
|
14
17
|
}
|
|
18
|
+
.temp {
|
|
19
|
+
display: inline-block;
|
|
20
|
+
border: 2px dashed @primary-color;
|
|
21
|
+
border-radius: @border-radius-normal;
|
|
22
|
+
}
|
|
23
|
+
.add {
|
|
24
|
+
font-size: 48px;
|
|
25
|
+
cursor: pointer;
|
|
26
|
+
}
|
|
27
|
+
.doing {
|
|
28
|
+
border: 1px solid @warning-color;
|
|
29
|
+
}
|
|
30
|
+
.handle {
|
|
31
|
+
display: block;
|
|
32
|
+
height: 25px;
|
|
33
|
+
background: @info-color;
|
|
34
|
+
}
|
package/es/dnd/index.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { DndTypes } from './types';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
3
|
+
import './styles/index.less';
|
|
4
|
+
export declare const classPrefix = "biz-dnd";
|
|
5
|
+
declare const BizDnd: React.FC<DndTypes.ContainerProps>;
|
|
7
6
|
export default BizDnd;
|
package/es/dnd/index.js
CHANGED
|
@@ -1,14 +1,123 @@
|
|
|
1
|
-
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
|
|
3
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
4
|
+
|
|
5
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
6
|
+
|
|
7
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
8
|
+
|
|
9
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
10
|
+
|
|
11
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
12
|
+
|
|
13
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
|
+
|
|
15
|
+
import React, { useEffect, useState } from 'react';
|
|
2
16
|
import BizDndItem from './item';
|
|
17
|
+
import _ from 'lodash';
|
|
18
|
+
import './styles/index.less';
|
|
19
|
+
export var classPrefix = 'biz-dnd';
|
|
20
|
+
|
|
21
|
+
var BizDnd = function BizDnd(props) {
|
|
22
|
+
var store = props.store,
|
|
23
|
+
keyField = props.keyField,
|
|
24
|
+
className = props.className,
|
|
25
|
+
itemClassName = props.itemClassName,
|
|
26
|
+
tempClassName = props.tempClassName,
|
|
27
|
+
draddingClassName = props.draddingClassName,
|
|
28
|
+
handle = props.handle,
|
|
29
|
+
handleClassName = props.handleClassName;
|
|
30
|
+
|
|
31
|
+
var _useState = useState(),
|
|
32
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
33
|
+
current = _useState2[0],
|
|
34
|
+
setCurrent = _useState2[1];
|
|
35
|
+
|
|
36
|
+
var _useState3 = useState(),
|
|
37
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
38
|
+
setHoverTarget = _useState4[1];
|
|
39
|
+
|
|
40
|
+
var _useState5 = useState(store),
|
|
41
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
42
|
+
renderData = _useState6[0],
|
|
43
|
+
setRenderData = _useState6[1];
|
|
44
|
+
|
|
45
|
+
useEffect(function () {
|
|
46
|
+
setRenderData(_.cloneDeep(store));
|
|
47
|
+
}, [store]);
|
|
48
|
+
|
|
49
|
+
function onMouseOver(data) {
|
|
50
|
+
setHoverTarget(data);
|
|
51
|
+
setHoverTarget(data);
|
|
52
|
+
setRenderData(function (list) {
|
|
53
|
+
var res = [];
|
|
54
|
+
|
|
55
|
+
for (var i = 0; i < list.length; i++) {
|
|
56
|
+
var item = _.cloneDeep(list[i]);
|
|
57
|
+
|
|
58
|
+
if (item.isTemp) continue;
|
|
59
|
+
|
|
60
|
+
if (current && item[keyField] === data[keyField]) {
|
|
61
|
+
var _res$push;
|
|
62
|
+
|
|
63
|
+
res.push((_res$push = {}, _defineProperty(_res$push, props.keyField, "".concat(item[props.keyField], "-temp")), _defineProperty(_res$push, "isTemp", true), _res$push));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
res.push(item);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return res;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function onDropEnd(data) {
|
|
74
|
+
setHoverTarget(function (target) {
|
|
75
|
+
setCurrent(undefined);
|
|
76
|
+
setRenderData(function (list) {
|
|
77
|
+
var res = [];
|
|
78
|
+
if (!list.find(function (item) {
|
|
79
|
+
return item.isTemp;
|
|
80
|
+
})) return list;
|
|
81
|
+
|
|
82
|
+
for (var i = 0; i < list.length; i++) {
|
|
83
|
+
var item = _.cloneDeep(list[i]);
|
|
84
|
+
|
|
85
|
+
if (item[keyField] === data[keyField] || item.isTemp) continue;
|
|
86
|
+
|
|
87
|
+
if (item[keyField] === target[keyField]) {
|
|
88
|
+
res.push(data);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
res.push(item);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if (props.onChange) props.onChange(res);
|
|
95
|
+
return res;
|
|
96
|
+
});
|
|
97
|
+
return target;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
3
100
|
|
|
4
|
-
var Container = function Container(props) {
|
|
5
101
|
return /*#__PURE__*/React.createElement("div", {
|
|
6
|
-
className: "".concat(
|
|
7
|
-
},
|
|
102
|
+
className: "".concat(classPrefix, "-container ").concat(className)
|
|
103
|
+
}, renderData.map(function (data, i) {
|
|
104
|
+
return /*#__PURE__*/React.createElement(BizDndItem, {
|
|
105
|
+
data: data,
|
|
106
|
+
key: data[keyField],
|
|
107
|
+
className: "".concat(itemClassName, " ").concat(data.isTemp ? tempClassName : ''),
|
|
108
|
+
draddingClassName: draddingClassName,
|
|
109
|
+
index: i,
|
|
110
|
+
handle: handle,
|
|
111
|
+
handleClassName: handleClassName,
|
|
112
|
+
render: props.itemRender,
|
|
113
|
+
onDragging: setCurrent,
|
|
114
|
+
onMouseOver: onMouseOver,
|
|
115
|
+
onDropEnd: onDropEnd
|
|
116
|
+
});
|
|
117
|
+
}));
|
|
8
118
|
};
|
|
9
119
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
Item: BizDndItem
|
|
120
|
+
BizDnd.defaultProps = {
|
|
121
|
+
keyField: 'key'
|
|
13
122
|
};
|
|
14
123
|
export default BizDnd;
|
package/es/dnd/item.js
CHANGED
|
@@ -1,9 +1,147 @@
|
|
|
1
|
-
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
|
|
3
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
+
|
|
5
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
+
|
|
7
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
8
|
+
|
|
9
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
10
|
+
|
|
11
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
|
+
|
|
13
|
+
import React, { useRef, useState } from 'react';
|
|
14
|
+
import { classPrefix } from '.';
|
|
15
|
+
var preMouse = {
|
|
16
|
+
x: 0,
|
|
17
|
+
y: 0
|
|
18
|
+
};
|
|
19
|
+
var style = {
|
|
20
|
+
position: 'inherit',
|
|
21
|
+
top: 0,
|
|
22
|
+
left: 0,
|
|
23
|
+
pointerEvents: 'inherit'
|
|
24
|
+
};
|
|
2
25
|
|
|
3
26
|
var BizDndItem = function BizDndItem(props) {
|
|
27
|
+
var className = props.className,
|
|
28
|
+
render = props.render,
|
|
29
|
+
data = props.data,
|
|
30
|
+
draddingClassName = props.draddingClassName;
|
|
31
|
+
|
|
32
|
+
var _useState = useState(false),
|
|
33
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
34
|
+
isDragging = _useState2[0],
|
|
35
|
+
setIsDragging = _useState2[1];
|
|
36
|
+
|
|
37
|
+
var ref = useRef();
|
|
38
|
+
|
|
39
|
+
function onMousedown(e) {
|
|
40
|
+
var _e$currentTarget$getB = e.currentTarget.getBoundingClientRect(),
|
|
41
|
+
top = _e$currentTarget$getB.top,
|
|
42
|
+
left = _e$currentTarget$getB.left;
|
|
43
|
+
|
|
44
|
+
window.addEventListener('mousemove', onMouseMove);
|
|
45
|
+
window.addEventListener('mouseup', onMouseUp);
|
|
46
|
+
|
|
47
|
+
if (ref.current) {
|
|
48
|
+
var computedStyle = window.getComputedStyle(ref.current);
|
|
49
|
+
style = {
|
|
50
|
+
position: '',
|
|
51
|
+
pointerEvents: 'inherit',
|
|
52
|
+
top: top - Number(computedStyle.marginTop.replace('px', '')),
|
|
53
|
+
left: left - Number(computedStyle.marginLeft.replace('px', '')),
|
|
54
|
+
width: computedStyle.width,
|
|
55
|
+
height: computedStyle.height
|
|
56
|
+
};
|
|
57
|
+
setStyle();
|
|
58
|
+
preMouse = {
|
|
59
|
+
x: e.clientX,
|
|
60
|
+
y: e.clientY
|
|
61
|
+
};
|
|
62
|
+
setIsDragging(true);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function onMouseMove(e) {
|
|
67
|
+
var computedStyle = window.getComputedStyle(ref.current);
|
|
68
|
+
style.position = 'fixed';
|
|
69
|
+
style.top += e.clientY - (preMouse.y || 0);
|
|
70
|
+
style.left += e.clientX - (preMouse.x || 0);
|
|
71
|
+
style.pointerEvents = 'none';
|
|
72
|
+
style.width = computedStyle.width;
|
|
73
|
+
style.height = computedStyle.height;
|
|
74
|
+
setStyle();
|
|
75
|
+
preMouse = {
|
|
76
|
+
x: e.clientX,
|
|
77
|
+
y: e.clientY
|
|
78
|
+
};
|
|
79
|
+
if (props.onDragging) props.onDragging(data);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function onMouseUp() {
|
|
83
|
+
setIsDragging(false);
|
|
84
|
+
window.removeEventListener('mousemove', onMouseMove);
|
|
85
|
+
window.removeEventListener('mouseup', onMouseUp);
|
|
86
|
+
style = {
|
|
87
|
+
position: 'inherit',
|
|
88
|
+
pointerEvents: 'inherit',
|
|
89
|
+
top: 0,
|
|
90
|
+
left: 0,
|
|
91
|
+
width: '',
|
|
92
|
+
height: ''
|
|
93
|
+
};
|
|
94
|
+
setStyle();
|
|
95
|
+
if (props.onDropEnd) props.onDropEnd(data);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function setStyle() {
|
|
99
|
+
if (ref.current) {
|
|
100
|
+
ref.current.style.position = style.position;
|
|
101
|
+
ref.current.style.top = "".concat(style.top, "px");
|
|
102
|
+
ref.current.style.left = "".concat(style.left, "px");
|
|
103
|
+
ref.current.style.pointerEvents = style.pointerEvents;
|
|
104
|
+
ref.current.style.width = style.width;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if (props.data.isTemp) return /*#__PURE__*/React.createElement("div", {
|
|
109
|
+
className: "".concat(classPrefix, "-item ").concat(className),
|
|
110
|
+
ref: ref
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
if (props.data.disabled) {
|
|
114
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
115
|
+
className: "".concat(classPrefix, "-item disable ").concat(className),
|
|
116
|
+
ref: ref,
|
|
117
|
+
onMouseOver: function onMouseOver() {
|
|
118
|
+
if (props.onMouseOver) props.onMouseOver(data);
|
|
119
|
+
}
|
|
120
|
+
}, render(data, props.index));
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if (props.handle) {
|
|
124
|
+
var handle = /*#__PURE__*/React.createElement("span", {
|
|
125
|
+
className: "".concat(classPrefix, "-handle ").concat(props.handleClassName),
|
|
126
|
+
onMouseDown: onMousedown
|
|
127
|
+
}, props.handle);
|
|
128
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
129
|
+
className: "".concat(classPrefix, "-item handle ").concat(className, " ").concat(isDragging ? draddingClassName : ''),
|
|
130
|
+
onMouseOver: function onMouseOver() {
|
|
131
|
+
if (props.onMouseOver) props.onMouseOver(data);
|
|
132
|
+
},
|
|
133
|
+
ref: ref
|
|
134
|
+
}, render(data, props.index, handle));
|
|
135
|
+
}
|
|
136
|
+
|
|
4
137
|
return /*#__PURE__*/React.createElement("div", {
|
|
5
|
-
className: "".concat(
|
|
6
|
-
|
|
138
|
+
className: "".concat(classPrefix, "-item ").concat(className, " ").concat(isDragging ? draddingClassName : ''),
|
|
139
|
+
onMouseDown: onMousedown,
|
|
140
|
+
onMouseOver: function onMouseOver() {
|
|
141
|
+
if (props.onMouseOver) props.onMouseOver(data);
|
|
142
|
+
},
|
|
143
|
+
ref: ref
|
|
144
|
+
}, render(data, props.index));
|
|
7
145
|
};
|
|
8
146
|
|
|
9
147
|
export default BizDndItem;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
@import '../../assets/styles/inner.less';
|
|
2
|
+
.biz-dnd {
|
|
3
|
+
&-item {
|
|
4
|
+
cursor: move;
|
|
5
|
+
user-select: none;
|
|
6
|
+
&.disable,
|
|
7
|
+
&.handle {
|
|
8
|
+
cursor: inherit;
|
|
9
|
+
user-select: inherit;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
&-handle {
|
|
13
|
+
cursor: move;
|
|
14
|
+
user-select: none;
|
|
15
|
+
}
|
|
16
|
+
&-temp {
|
|
17
|
+
pointer-events: none;
|
|
18
|
+
}
|
|
19
|
+
}
|
package/es/dnd/types.d.ts
CHANGED
|
@@ -1,13 +1,32 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
export declare namespace DndTypes {
|
|
3
|
+
type Data = Record<string, any> & {
|
|
4
|
+
isTemp?: boolean;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
};
|
|
2
7
|
interface ContainerProps {
|
|
3
8
|
className?: string;
|
|
9
|
+
itemClassName?: string;
|
|
10
|
+
draddingClassName?: string;
|
|
4
11
|
tempClassName?: string;
|
|
5
|
-
|
|
12
|
+
handle?: React.ReactNode;
|
|
13
|
+
handleClassName?: string;
|
|
14
|
+
tempRender?: (data: Data) => React.ReactNode;
|
|
15
|
+
itemRender: (data: Data, index: number, handle?: React.ReactNode) => React.ReactNode;
|
|
16
|
+
keyField: string;
|
|
17
|
+
store: Data[];
|
|
18
|
+
onChange?: (list: Data[]) => void;
|
|
6
19
|
}
|
|
7
20
|
interface ItemProps {
|
|
8
21
|
className?: string;
|
|
22
|
+
data: Data;
|
|
23
|
+
index: number;
|
|
24
|
+
render: (data: Data, index: number, handle?: React.ReactNode) => React.ReactNode;
|
|
25
|
+
handle?: React.ReactNode;
|
|
26
|
+
handleClassName?: string;
|
|
9
27
|
draddingClassName?: string;
|
|
10
|
-
|
|
11
|
-
data:
|
|
28
|
+
onDragging?: (data: Data) => void;
|
|
29
|
+
onMouseOver?: (data: Data) => void;
|
|
30
|
+
onDropEnd?: (data: Data) => void;
|
|
12
31
|
}
|
|
13
32
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zgfe/business-lib",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.24-alpha.2",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"start": "dumi dev",
|
|
6
6
|
"docs:build": "dumi build",
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"react": "^16.12.0 || ^17.0.0",
|
|
59
59
|
"yorkie": "^2.0.0"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "262599946c1ae80f9f6836a01aa0b615efbeba23"
|
|
62
62
|
}
|