@pareto-engineering/design-system 4.0.0-alpha.81 → 4.0.0-alpha.83
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/dist/cjs/a/People/styles.scss +1 -1
- package/dist/cjs/f/fields/SelectInput/common/Multiple/Multiple.js +1 -1
- package/dist/cjs/f/fields/SelectInput/common/Single/Single.js +1 -1
- package/dist/cjs/f/fields/TextInput/TextInput.js +1 -2
- package/dist/cjs/f/fields/TextareaInput/TextareaInput.js +1 -2
- package/dist/cjs/g/DragAndDrop/DragAndDrop.js +97 -0
- package/dist/cjs/g/DragAndDrop/common/DraggableItem/DraggableItem.js +80 -0
- package/dist/cjs/g/DragAndDrop/common/DraggableItem/index.js +13 -0
- package/dist/cjs/g/DragAndDrop/common/DraggableItem/styles.scss +12 -0
- package/dist/cjs/g/DragAndDrop/common/index.js +12 -0
- package/dist/cjs/g/DragAndDrop/index.js +13 -0
- package/dist/cjs/g/DragAndDrop/styles.scss +8 -0
- package/dist/cjs/g/index.js +8 -1
- package/dist/es/a/People/styles.scss +1 -1
- package/dist/es/f/fields/SelectInput/common/Multiple/Multiple.js +1 -1
- package/dist/es/f/fields/SelectInput/common/Single/Single.js +1 -1
- package/dist/es/f/fields/TextInput/TextInput.js +1 -2
- package/dist/es/f/fields/TextareaInput/TextareaInput.js +1 -2
- package/dist/es/g/DragAndDrop/DragAndDrop.js +88 -0
- package/dist/es/g/DragAndDrop/common/DraggableItem/DraggableItem.js +72 -0
- package/dist/es/g/DragAndDrop/common/DraggableItem/index.js +2 -0
- package/dist/es/g/DragAndDrop/common/DraggableItem/styles.scss +12 -0
- package/dist/es/g/DragAndDrop/common/index.js +1 -0
- package/dist/es/g/DragAndDrop/index.js +2 -0
- package/dist/es/g/DragAndDrop/styles.scss +8 -0
- package/dist/es/g/index.js +2 -1
- package/package.json +3 -3
- package/src/stories/g/DragAndDrop.stories.jsx +114 -0
- package/src/ui/a/People/styles.scss +1 -1
- package/src/ui/f/fields/SelectInput/common/Multiple/Multiple.jsx +16 -14
- package/src/ui/f/fields/SelectInput/common/Single/Single.jsx +9 -7
- package/src/ui/f/fields/TextInput/TextInput.jsx +9 -8
- package/src/ui/f/fields/TextareaInput/TextareaInput.jsx +9 -9
- package/src/ui/g/DragAndDrop/DragAndDrop.jsx +118 -0
- package/src/ui/g/DragAndDrop/common/DraggableItem/DraggableItem.jsx +98 -0
- package/src/ui/g/DragAndDrop/common/DraggableItem/index.js +2 -0
- package/src/ui/g/DragAndDrop/common/DraggableItem/styles.scss +12 -0
- package/src/ui/g/DragAndDrop/common/index.js +1 -0
- package/src/ui/g/DragAndDrop/index.js +2 -0
- package/src/ui/g/DragAndDrop/styles.scss +8 -0
- package/src/ui/g/index.js +1 -0
- package/tests/__snapshots__/Storyshots.test.js.snap +695 -0
|
@@ -11,7 +11,7 @@ $default-padding:var(--u);
|
|
|
11
11
|
$default-horizontal-margin: .5em;
|
|
12
12
|
|
|
13
13
|
$default-grid-gap: 1em;
|
|
14
|
-
$default-margin:
|
|
14
|
+
$default-margin: 1em;
|
|
15
15
|
$default-image-margin: var(--default-image-margin, #{$default-margin});
|
|
16
16
|
$default-color: var(--default-color, var(--paragraph));
|
|
17
17
|
|
|
@@ -160,7 +160,7 @@ const Multiple = _ref => {
|
|
|
160
160
|
className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
|
|
161
161
|
style: style,
|
|
162
162
|
ref: parentRef
|
|
163
|
-
}, getComboboxProps()), /*#__PURE__*/React.createElement(_.FormLabel, _extends({
|
|
163
|
+
}, getComboboxProps()), label && /*#__PURE__*/React.createElement(_.FormLabel, _extends({
|
|
164
164
|
className: [baseClassName, componentClassName].filter(e => e).join(' ')
|
|
165
165
|
}, getLabelProps(), {
|
|
166
166
|
name: name,
|
|
@@ -59,7 +59,7 @@ const Single = _ref => {
|
|
|
59
59
|
id: id,
|
|
60
60
|
className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
|
|
61
61
|
style: style
|
|
62
|
-
}, /*#__PURE__*/React.createElement(_.FormLabel, {
|
|
62
|
+
}, label && /*#__PURE__*/React.createElement(_.FormLabel, {
|
|
63
63
|
name: name,
|
|
64
64
|
color: labelColor,
|
|
65
65
|
optional: optional
|
|
@@ -58,11 +58,10 @@ const TextInput = _ref => {
|
|
|
58
58
|
...symbolStyle,
|
|
59
59
|
...style
|
|
60
60
|
}
|
|
61
|
-
}, /*#__PURE__*/React.createElement(_common.FormLabel, {
|
|
61
|
+
}, label && /*#__PURE__*/React.createElement(_common.FormLabel, {
|
|
62
62
|
name: name,
|
|
63
63
|
color: labelColor,
|
|
64
64
|
optional: optional
|
|
65
|
-
// {...otherProps}
|
|
66
65
|
}, label), /*#__PURE__*/React.createElement(InputWrapper, inputWrapperProps, /*#__PURE__*/React.createElement("input", _extends({
|
|
67
66
|
id: name,
|
|
68
67
|
className: "input",
|
|
@@ -48,11 +48,10 @@ const TextareaInput = _ref => {
|
|
|
48
48
|
id: id,
|
|
49
49
|
className: [baseClassName, componentClassName, userClassName, `y-${color}`].filter(e => e).join(' '),
|
|
50
50
|
style: style
|
|
51
|
-
}, /*#__PURE__*/React.createElement(_common.FormLabel, {
|
|
51
|
+
}, label && /*#__PURE__*/React.createElement(_common.FormLabel, {
|
|
52
52
|
name: name,
|
|
53
53
|
color: labelColor,
|
|
54
54
|
optional: optional
|
|
55
|
-
// {...otherProps}
|
|
56
55
|
}, label), /*#__PURE__*/React.createElement("textarea", _extends({
|
|
57
56
|
id: name,
|
|
58
57
|
className: "textarea"
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var React = _react;
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
var _exports = _interopRequireDefault(require("@pareto-engineering/bem/exports"));
|
|
11
|
+
var _common = require("./common");
|
|
12
|
+
require("./styles.scss");
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
|
+
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; }
|
|
16
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /* @pareto-engineering/generator-front 1.0.12 */ // Local Definitions
|
|
17
|
+
const baseClassName = _exports.default.base;
|
|
18
|
+
const componentClassName = 'drag-and-drop';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* This is the component description.
|
|
22
|
+
*/
|
|
23
|
+
const DragAndDrop = _ref => {
|
|
24
|
+
let {
|
|
25
|
+
id,
|
|
26
|
+
className: userClassName,
|
|
27
|
+
style,
|
|
28
|
+
as: Wrapper,
|
|
29
|
+
onOrderChange,
|
|
30
|
+
items
|
|
31
|
+
// ...otherProps
|
|
32
|
+
} = _ref;
|
|
33
|
+
const [draggableItems, setDraggableItems] = (0, _react.useState)(items);
|
|
34
|
+
const handleDrop = (e, dragOverItemIndex) => {
|
|
35
|
+
e.preventDefault();
|
|
36
|
+
const dragItemIndex = e.dataTransfer.getData('text');
|
|
37
|
+
const orderedItems = [...draggableItems];
|
|
38
|
+
const [reorderedItem] = orderedItems.splice(dragItemIndex, 1);
|
|
39
|
+
orderedItems.splice(dragOverItemIndex, 0, reorderedItem);
|
|
40
|
+
setDraggableItems(orderedItems);
|
|
41
|
+
onOrderChange?.(orderedItems);
|
|
42
|
+
};
|
|
43
|
+
return /*#__PURE__*/React.createElement(Wrapper, {
|
|
44
|
+
id: id,
|
|
45
|
+
className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
|
|
46
|
+
style: style
|
|
47
|
+
// {...otherProps}
|
|
48
|
+
}, draggableItems.map((_ref2, index) => {
|
|
49
|
+
let {
|
|
50
|
+
identifier,
|
|
51
|
+
disabled,
|
|
52
|
+
Content,
|
|
53
|
+
...rest
|
|
54
|
+
} = _ref2;
|
|
55
|
+
return /*#__PURE__*/React.createElement(_common.DraggableItem, _extends({
|
|
56
|
+
draggable: true,
|
|
57
|
+
onDrop: e => handleDrop(e, index),
|
|
58
|
+
index: index,
|
|
59
|
+
key: identifier
|
|
60
|
+
}, rest), Content);
|
|
61
|
+
}));
|
|
62
|
+
};
|
|
63
|
+
DragAndDrop.propTypes = {
|
|
64
|
+
/**
|
|
65
|
+
* The HTML id for this element
|
|
66
|
+
*/
|
|
67
|
+
id: _propTypes.default.string,
|
|
68
|
+
/**
|
|
69
|
+
* The HTML class names for this element
|
|
70
|
+
*/
|
|
71
|
+
className: _propTypes.default.string,
|
|
72
|
+
/**
|
|
73
|
+
* The React-written, css properties for this element.
|
|
74
|
+
*/
|
|
75
|
+
style: _propTypes.default.objectOf(_propTypes.default.string),
|
|
76
|
+
/**
|
|
77
|
+
* The html element to use to display this component.
|
|
78
|
+
*/
|
|
79
|
+
as: _propTypes.default.string,
|
|
80
|
+
/**
|
|
81
|
+
* The node list of items to be dragged around
|
|
82
|
+
*/
|
|
83
|
+
items: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
84
|
+
Content: _propTypes.default.node.isRequired,
|
|
85
|
+
identifier: _propTypes.default.string.isRequired,
|
|
86
|
+
as: _propTypes.default.string
|
|
87
|
+
})).isRequired,
|
|
88
|
+
/*
|
|
89
|
+
* A function to be called when the draggable items are re-ordered
|
|
90
|
+
*/
|
|
91
|
+
onOrderChange: _propTypes.default.func
|
|
92
|
+
};
|
|
93
|
+
DragAndDrop.defaultProps = {
|
|
94
|
+
as: 'ul'
|
|
95
|
+
};
|
|
96
|
+
DragAndDrop.DraggableItem = _common.DraggableItem;
|
|
97
|
+
var _default = exports.default = DragAndDrop;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var React = _react;
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
var _exports = _interopRequireDefault(require("@pareto-engineering/bem/exports"));
|
|
11
|
+
require("./styles.scss");
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
14
|
+
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; }
|
|
15
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /* @pareto-engineering/generator-front 1.0.12 */
|
|
16
|
+
// Local Definitions
|
|
17
|
+
|
|
18
|
+
const baseClassName = _exports.default.base;
|
|
19
|
+
const componentClassName = 'draggable-item';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* This is the component description.
|
|
23
|
+
*/
|
|
24
|
+
const DraggableItem = _ref => {
|
|
25
|
+
let {
|
|
26
|
+
id,
|
|
27
|
+
className: userClassName,
|
|
28
|
+
style,
|
|
29
|
+
as: Wrapper,
|
|
30
|
+
children,
|
|
31
|
+
index,
|
|
32
|
+
...otherProps
|
|
33
|
+
} = _ref;
|
|
34
|
+
const [isDragging, setIsDragging] = (0, _react.useState)(false);
|
|
35
|
+
const handleDragStart = e => {
|
|
36
|
+
setIsDragging(true);
|
|
37
|
+
e.dataTransfer.effectAllowed = 'move';
|
|
38
|
+
e.dataTransfer.setData('text/plain', index);
|
|
39
|
+
};
|
|
40
|
+
const handleDragEnd = () => {
|
|
41
|
+
setIsDragging(false);
|
|
42
|
+
};
|
|
43
|
+
const handleDragOver = e => {
|
|
44
|
+
e.preventDefault();
|
|
45
|
+
};
|
|
46
|
+
return /*#__PURE__*/React.createElement(Wrapper, _extends({
|
|
47
|
+
id: id,
|
|
48
|
+
className: [baseClassName, componentClassName, userClassName, isDragging && 'dragging'].filter(e => e).join(' '),
|
|
49
|
+
style: style,
|
|
50
|
+
onDragStart: e => handleDragStart(e),
|
|
51
|
+
onDragOver: e => handleDragOver(e),
|
|
52
|
+
onDragEnd: e => handleDragEnd(e)
|
|
53
|
+
}, otherProps), children);
|
|
54
|
+
};
|
|
55
|
+
DraggableItem.propTypes = {
|
|
56
|
+
/**
|
|
57
|
+
* The HTML id for this element
|
|
58
|
+
*/
|
|
59
|
+
id: _propTypes.default.string,
|
|
60
|
+
/**
|
|
61
|
+
* The HTML class names for this element
|
|
62
|
+
*/
|
|
63
|
+
className: _propTypes.default.string,
|
|
64
|
+
/**
|
|
65
|
+
* The React-written, css properties for this element.
|
|
66
|
+
*/
|
|
67
|
+
style: _propTypes.default.objectOf(_propTypes.default.string),
|
|
68
|
+
/**
|
|
69
|
+
* The children JSX
|
|
70
|
+
*/
|
|
71
|
+
children: _propTypes.default.node,
|
|
72
|
+
/**
|
|
73
|
+
* The html element to use to display this component.
|
|
74
|
+
*/
|
|
75
|
+
as: _propTypes.default.string
|
|
76
|
+
};
|
|
77
|
+
DraggableItem.defaultProps = {
|
|
78
|
+
as: 'li'
|
|
79
|
+
};
|
|
80
|
+
var _default = exports.default = DraggableItem;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "DraggableItem", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _DraggableItem.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _DraggableItem = _interopRequireDefault(require("./DraggableItem"));
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "DraggableItem", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _DraggableItem.DraggableItem;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _DraggableItem = require("./DraggableItem");
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "DragAndDrop", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _DragAndDrop.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _DragAndDrop = _interopRequireDefault(require("./DragAndDrop"));
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
package/dist/cjs/g/index.js
CHANGED
|
@@ -3,10 +3,17 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "DragAndDrop", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _DragAndDrop.DragAndDrop;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
6
12
|
Object.defineProperty(exports, "ExpandableLexicalPreview", {
|
|
7
13
|
enumerable: true,
|
|
8
14
|
get: function () {
|
|
9
15
|
return _ExpandableLexicalPreview.ExpandableLexicalPreview;
|
|
10
16
|
}
|
|
11
17
|
});
|
|
12
|
-
var _ExpandableLexicalPreview = require("./ExpandableLexicalPreview");
|
|
18
|
+
var _ExpandableLexicalPreview = require("./ExpandableLexicalPreview");
|
|
19
|
+
var _DragAndDrop = require("./DragAndDrop");
|
|
@@ -11,7 +11,7 @@ $default-padding:var(--u);
|
|
|
11
11
|
$default-horizontal-margin: .5em;
|
|
12
12
|
|
|
13
13
|
$default-grid-gap: 1em;
|
|
14
|
-
$default-margin:
|
|
14
|
+
$default-margin: 1em;
|
|
15
15
|
$default-image-margin: var(--default-image-margin, #{$default-margin});
|
|
16
16
|
$default-color: var(--default-color, var(--paragraph));
|
|
17
17
|
|
|
@@ -151,7 +151,7 @@ const Multiple = ({
|
|
|
151
151
|
className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
|
|
152
152
|
style: style,
|
|
153
153
|
ref: parentRef
|
|
154
|
-
}, getComboboxProps()), /*#__PURE__*/React.createElement(FormLabel, _extends({
|
|
154
|
+
}, getComboboxProps()), label && /*#__PURE__*/React.createElement(FormLabel, _extends({
|
|
155
155
|
className: [baseClassName, componentClassName].filter(e => e).join(' ')
|
|
156
156
|
}, getLabelProps(), {
|
|
157
157
|
name: name,
|
|
@@ -51,7 +51,7 @@ const Single = ({
|
|
|
51
51
|
id: id,
|
|
52
52
|
className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
|
|
53
53
|
style: style
|
|
54
|
-
}, /*#__PURE__*/React.createElement(FormLabel, {
|
|
54
|
+
}, label && /*#__PURE__*/React.createElement(FormLabel, {
|
|
55
55
|
name: name,
|
|
56
56
|
color: labelColor,
|
|
57
57
|
optional: optional
|
|
@@ -52,11 +52,10 @@ const TextInput = ({
|
|
|
52
52
|
...symbolStyle,
|
|
53
53
|
...style
|
|
54
54
|
}
|
|
55
|
-
}, /*#__PURE__*/React.createElement(FormLabel, {
|
|
55
|
+
}, label && /*#__PURE__*/React.createElement(FormLabel, {
|
|
56
56
|
name: name,
|
|
57
57
|
color: labelColor,
|
|
58
58
|
optional: optional
|
|
59
|
-
// {...otherProps}
|
|
60
59
|
}, label), /*#__PURE__*/React.createElement(InputWrapper, inputWrapperProps, /*#__PURE__*/React.createElement("input", _extends({
|
|
61
60
|
id: name,
|
|
62
61
|
className: "input",
|
|
@@ -42,11 +42,10 @@ const TextareaInput = ({
|
|
|
42
42
|
id: id,
|
|
43
43
|
className: [baseClassName, componentClassName, userClassName, `y-${color}`].filter(e => e).join(' '),
|
|
44
44
|
style: style
|
|
45
|
-
}, /*#__PURE__*/React.createElement(FormLabel, {
|
|
45
|
+
}, label && /*#__PURE__*/React.createElement(FormLabel, {
|
|
46
46
|
name: name,
|
|
47
47
|
color: labelColor,
|
|
48
48
|
optional: optional
|
|
49
|
-
// {...otherProps}
|
|
50
49
|
}, label), /*#__PURE__*/React.createElement("textarea", _extends({
|
|
51
50
|
id: name,
|
|
52
51
|
className: "textarea"
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
+
/* @pareto-engineering/generator-front 1.0.12 */
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { useState } from 'react';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
6
|
+
import styleNames from '@pareto-engineering/bem/exports';
|
|
7
|
+
import { DraggableItem } from "./common";
|
|
8
|
+
|
|
9
|
+
// Local Definitions
|
|
10
|
+
|
|
11
|
+
import "./styles.scss";
|
|
12
|
+
const baseClassName = styleNames.base;
|
|
13
|
+
const componentClassName = 'drag-and-drop';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* This is the component description.
|
|
17
|
+
*/
|
|
18
|
+
const DragAndDrop = ({
|
|
19
|
+
id,
|
|
20
|
+
className: userClassName,
|
|
21
|
+
style,
|
|
22
|
+
as: Wrapper,
|
|
23
|
+
onOrderChange,
|
|
24
|
+
items
|
|
25
|
+
// ...otherProps
|
|
26
|
+
}) => {
|
|
27
|
+
const [draggableItems, setDraggableItems] = useState(items);
|
|
28
|
+
const handleDrop = (e, dragOverItemIndex) => {
|
|
29
|
+
e.preventDefault();
|
|
30
|
+
const dragItemIndex = e.dataTransfer.getData('text');
|
|
31
|
+
const orderedItems = [...draggableItems];
|
|
32
|
+
const [reorderedItem] = orderedItems.splice(dragItemIndex, 1);
|
|
33
|
+
orderedItems.splice(dragOverItemIndex, 0, reorderedItem);
|
|
34
|
+
setDraggableItems(orderedItems);
|
|
35
|
+
onOrderChange?.(orderedItems);
|
|
36
|
+
};
|
|
37
|
+
return /*#__PURE__*/React.createElement(Wrapper, {
|
|
38
|
+
id: id,
|
|
39
|
+
className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
|
|
40
|
+
style: style
|
|
41
|
+
// {...otherProps}
|
|
42
|
+
}, draggableItems.map(({
|
|
43
|
+
identifier,
|
|
44
|
+
disabled,
|
|
45
|
+
Content,
|
|
46
|
+
...rest
|
|
47
|
+
}, index) => /*#__PURE__*/React.createElement(DraggableItem, _extends({
|
|
48
|
+
draggable: true,
|
|
49
|
+
onDrop: e => handleDrop(e, index),
|
|
50
|
+
index: index,
|
|
51
|
+
key: identifier
|
|
52
|
+
}, rest), Content)));
|
|
53
|
+
};
|
|
54
|
+
DragAndDrop.propTypes = {
|
|
55
|
+
/**
|
|
56
|
+
* The HTML id for this element
|
|
57
|
+
*/
|
|
58
|
+
id: PropTypes.string,
|
|
59
|
+
/**
|
|
60
|
+
* The HTML class names for this element
|
|
61
|
+
*/
|
|
62
|
+
className: PropTypes.string,
|
|
63
|
+
/**
|
|
64
|
+
* The React-written, css properties for this element.
|
|
65
|
+
*/
|
|
66
|
+
style: PropTypes.objectOf(PropTypes.string),
|
|
67
|
+
/**
|
|
68
|
+
* The html element to use to display this component.
|
|
69
|
+
*/
|
|
70
|
+
as: PropTypes.string,
|
|
71
|
+
/**
|
|
72
|
+
* The node list of items to be dragged around
|
|
73
|
+
*/
|
|
74
|
+
items: PropTypes.arrayOf(PropTypes.shape({
|
|
75
|
+
Content: PropTypes.node.isRequired,
|
|
76
|
+
identifier: PropTypes.string.isRequired,
|
|
77
|
+
as: PropTypes.string
|
|
78
|
+
})).isRequired,
|
|
79
|
+
/*
|
|
80
|
+
* A function to be called when the draggable items are re-ordered
|
|
81
|
+
*/
|
|
82
|
+
onOrderChange: PropTypes.func
|
|
83
|
+
};
|
|
84
|
+
DragAndDrop.defaultProps = {
|
|
85
|
+
as: 'ul'
|
|
86
|
+
};
|
|
87
|
+
DragAndDrop.DraggableItem = DraggableItem;
|
|
88
|
+
export default DragAndDrop;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
+
/* @pareto-engineering/generator-front 1.0.12 */
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { useState } from 'react';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
6
|
+
import styleNames from '@pareto-engineering/bem/exports';
|
|
7
|
+
import "./styles.scss";
|
|
8
|
+
|
|
9
|
+
// Local Definitions
|
|
10
|
+
|
|
11
|
+
const baseClassName = styleNames.base;
|
|
12
|
+
const componentClassName = 'draggable-item';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* This is the component description.
|
|
16
|
+
*/
|
|
17
|
+
const DraggableItem = ({
|
|
18
|
+
id,
|
|
19
|
+
className: userClassName,
|
|
20
|
+
style,
|
|
21
|
+
as: Wrapper,
|
|
22
|
+
children,
|
|
23
|
+
index,
|
|
24
|
+
...otherProps
|
|
25
|
+
}) => {
|
|
26
|
+
const [isDragging, setIsDragging] = useState(false);
|
|
27
|
+
const handleDragStart = e => {
|
|
28
|
+
setIsDragging(true);
|
|
29
|
+
e.dataTransfer.effectAllowed = 'move';
|
|
30
|
+
e.dataTransfer.setData('text/plain', index);
|
|
31
|
+
};
|
|
32
|
+
const handleDragEnd = () => {
|
|
33
|
+
setIsDragging(false);
|
|
34
|
+
};
|
|
35
|
+
const handleDragOver = e => {
|
|
36
|
+
e.preventDefault();
|
|
37
|
+
};
|
|
38
|
+
return /*#__PURE__*/React.createElement(Wrapper, _extends({
|
|
39
|
+
id: id,
|
|
40
|
+
className: [baseClassName, componentClassName, userClassName, isDragging && 'dragging'].filter(e => e).join(' '),
|
|
41
|
+
style: style,
|
|
42
|
+
onDragStart: e => handleDragStart(e),
|
|
43
|
+
onDragOver: e => handleDragOver(e),
|
|
44
|
+
onDragEnd: e => handleDragEnd(e)
|
|
45
|
+
}, otherProps), children);
|
|
46
|
+
};
|
|
47
|
+
DraggableItem.propTypes = {
|
|
48
|
+
/**
|
|
49
|
+
* The HTML id for this element
|
|
50
|
+
*/
|
|
51
|
+
id: PropTypes.string,
|
|
52
|
+
/**
|
|
53
|
+
* The HTML class names for this element
|
|
54
|
+
*/
|
|
55
|
+
className: PropTypes.string,
|
|
56
|
+
/**
|
|
57
|
+
* The React-written, css properties for this element.
|
|
58
|
+
*/
|
|
59
|
+
style: PropTypes.objectOf(PropTypes.string),
|
|
60
|
+
/**
|
|
61
|
+
* The children JSX
|
|
62
|
+
*/
|
|
63
|
+
children: PropTypes.node,
|
|
64
|
+
/**
|
|
65
|
+
* The html element to use to display this component.
|
|
66
|
+
*/
|
|
67
|
+
as: PropTypes.string
|
|
68
|
+
};
|
|
69
|
+
DraggableItem.defaultProps = {
|
|
70
|
+
as: 'li'
|
|
71
|
+
};
|
|
72
|
+
export default DraggableItem;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { DraggableItem } from "./DraggableItem";
|
package/dist/es/g/index.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { ExpandableLexicalPreview } from "./ExpandableLexicalPreview";
|
|
1
|
+
export { ExpandableLexicalPreview } from "./ExpandableLexicalPreview";
|
|
2
|
+
export { DragAndDrop } from "./DragAndDrop";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pareto-engineering/design-system",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
3
|
+
"version": "4.0.0-alpha.83",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/es/index.js",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"@lexical/selection": "0.12.2",
|
|
60
60
|
"@lexical/table": "0.12.2",
|
|
61
61
|
"@lexical/utils": "0.12.2",
|
|
62
|
-
"@pareto-engineering/assets": "^4.0.0-alpha.
|
|
62
|
+
"@pareto-engineering/assets": "^4.0.0-alpha.82",
|
|
63
63
|
"@pareto-engineering/bem": "^4.0.0-alpha.20",
|
|
64
64
|
"@pareto-engineering/styles": "^4.0.0-alpha.73",
|
|
65
65
|
"@pareto-engineering/utils": "^4.0.0-alpha.81",
|
|
@@ -82,5 +82,5 @@
|
|
|
82
82
|
"relay-test-utils": "^15.0.0"
|
|
83
83
|
},
|
|
84
84
|
"browserslist": "> 2%",
|
|
85
|
-
"gitHead": "
|
|
85
|
+
"gitHead": "0aaf2a086fb7dcc893ecf5a21f206897db01b1d4"
|
|
86
86
|
}
|