@goldenpine/react-form-builder2 0.18.4-patch.1 → 0.20.3-build.10

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 (46) hide show
  1. package/README.md +154 -121
  2. package/dist/845.app.js +1 -0
  3. package/dist/app.css +1 -38
  4. package/dist/app.css.map +1 -1
  5. package/dist/app.js +2 -71
  6. package/dist/app.js.LICENSE.txt +66 -0
  7. package/lib/ItemTypes.js +2 -3
  8. package/lib/UUID.js +1 -3
  9. package/lib/dynamic-option-list.js +10 -12
  10. package/lib/fieldset/FieldSet.js +3 -4
  11. package/lib/form-dynamic-edit.js +17 -21
  12. package/lib/form-elements/component-drag-handle.js +49 -75
  13. package/lib/form-elements/component-drag-layer.js +18 -18
  14. package/lib/form-elements/component-drag-preview.js +5 -15
  15. package/lib/form-elements/component-header.js +1 -2
  16. package/lib/form-elements/component-label.js +21 -9
  17. package/lib/form-elements/custom-element.js +10 -14
  18. package/lib/form-elements/date-picker.js +11 -16
  19. package/lib/form-elements/header-bar.js +10 -13
  20. package/lib/form-elements/index.js +195 -214
  21. package/lib/form-elements/myxss.js +1 -2
  22. package/lib/form-elements/star-rating.js +97 -90
  23. package/lib/form-elements-edit.js +9 -12
  24. package/lib/form-place-holder.js +7 -10
  25. package/lib/form-validator.js +11 -14
  26. package/lib/form.js +25 -30
  27. package/lib/functions/index.js +3 -6
  28. package/lib/index.js +9 -14
  29. package/lib/language-provider/IntlMessages.js +2 -3
  30. package/lib/language-provider/entries/en-us.js +3 -4
  31. package/lib/language-provider/entries/fa-ir.js +3 -4
  32. package/lib/language-provider/entries/it-it.js +3 -4
  33. package/lib/language-provider/entries/vi-vn.js +3 -4
  34. package/lib/language-provider/index.js +2 -4
  35. package/lib/multi-column/MultiColumnRow.js +12 -17
  36. package/lib/multi-column/dustbin.js +62 -75
  37. package/lib/multi-column/grip.js +2 -3
  38. package/lib/preview.js +18 -22
  39. package/lib/sortable-element.js +169 -143
  40. package/lib/sortable-form-elements.js +1 -2
  41. package/lib/stores/store.js +1 -2
  42. package/lib/toolbar-draggable-item.js +41 -46
  43. package/lib/toolbar-group-item.js +2 -4
  44. package/lib/toolbar.js +16 -20
  45. package/package.json +21 -28
  46. package/dist/1.app.js +0 -1
@@ -44,9 +44,8 @@ var Grip = function Grip(_ref) {
44
44
  className: "is-isolated fas fa-grip-vertical"
45
45
  })));
46
46
  };
47
- var _default = (0, _reactDnd.DragSource)(_ItemTypes["default"].BOX, gripSource, function (connect) {
47
+ var _default = exports["default"] = (0, _reactDnd.DragSource)(_ItemTypes["default"].BOX, gripSource, function (connect) {
48
48
  return {
49
49
  connectDragSource: connect.dragSource()
50
50
  };
51
- })(Grip);
52
- exports["default"] = _default;
51
+ })(Grip);
package/lib/preview.js CHANGED
@@ -8,10 +8,9 @@ exports["default"] = void 0;
8
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
10
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
12
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
11
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
14
12
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
15
  var _react = _interopRequireDefault(require("react"));
17
16
  var _immutabilityHelper = _interopRequireDefault(require("immutability-helper"));
@@ -19,28 +18,26 @@ var _store = _interopRequireDefault(require("./stores/store"));
19
18
  var _formDynamicEdit = _interopRequireDefault(require("./form-dynamic-edit"));
20
19
  var _sortableFormElements = _interopRequireDefault(require("./sortable-form-elements"));
21
20
  var _componentDragLayer = _interopRequireDefault(require("./form-elements/component-drag-layer"));
22
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
23
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /**
21
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
22
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /**
24
23
  * <Preview />
25
24
  */
26
25
  var PlaceHolder = _sortableFormElements["default"].PlaceHolder;
27
- var Preview = /*#__PURE__*/function (_React$Component) {
28
- (0, _inherits2["default"])(Preview, _React$Component);
29
- var _super = _createSuper(Preview);
26
+ var Preview = exports["default"] = /*#__PURE__*/function (_React$Component) {
30
27
  function Preview(props) {
31
28
  var _this;
32
29
  (0, _classCallCheck2["default"])(this, Preview);
33
- _this = _super.call(this, props);
34
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
30
+ _this = _callSuper(this, Preview, [props]);
31
+ (0, _defineProperty2["default"])(_this, "state", {
35
32
  data: [],
36
33
  answer_data: {}
37
34
  });
38
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "editModeOff", function (e) {
35
+ (0, _defineProperty2["default"])(_this, "editModeOff", function (e) {
39
36
  if (_this.editForm.current && !_this.editForm.current.contains(e.target)) {
40
37
  _this.manualEditModeOff();
41
38
  }
42
39
  });
43
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "manualEditModeOff", function () {
40
+ (0, _defineProperty2["default"])(_this, "manualEditModeOff", function () {
44
41
  var editElement = _this.props.editElement;
45
42
  if (editElement && editElement.dirty) {
46
43
  editElement.dirty = false;
@@ -57,16 +54,17 @@ var Preview = /*#__PURE__*/function (_React$Component) {
57
54
  answer_data: {}
58
55
  };
59
56
  _this.seq = 0;
60
- _this._onUpdate = _this._onChange.bind((0, _assertThisInitialized2["default"])(_this));
61
- _this.getDataById = _this.getDataById.bind((0, _assertThisInitialized2["default"])(_this));
62
- _this.moveCard = _this.moveCard.bind((0, _assertThisInitialized2["default"])(_this));
63
- _this.insertCard = _this.insertCard.bind((0, _assertThisInitialized2["default"])(_this));
64
- _this.setAsChild = _this.setAsChild.bind((0, _assertThisInitialized2["default"])(_this));
65
- _this.removeChild = _this.removeChild.bind((0, _assertThisInitialized2["default"])(_this));
66
- _this._onDestroy = _this._onDestroy.bind((0, _assertThisInitialized2["default"])(_this));
57
+ _this._onUpdate = _this._onChange.bind(_this);
58
+ _this.getDataById = _this.getDataById.bind(_this);
59
+ _this.moveCard = _this.moveCard.bind(_this);
60
+ _this.insertCard = _this.insertCard.bind(_this);
61
+ _this.setAsChild = _this.setAsChild.bind(_this);
62
+ _this.removeChild = _this.removeChild.bind(_this);
63
+ _this._onDestroy = _this._onDestroy.bind(_this);
67
64
  return _this;
68
65
  }
69
- (0, _createClass2["default"])(Preview, [{
66
+ (0, _inherits2["default"])(Preview, _React$Component);
67
+ return (0, _createClass2["default"])(Preview, [{
70
68
  key: "componentDidMount",
71
69
  value: function componentDidMount() {
72
70
  var _this2 = this;
@@ -377,15 +375,13 @@ var Preview = /*#__PURE__*/function (_React$Component) {
377
375
  }), /*#__PURE__*/_react["default"].createElement(_componentDragLayer["default"], null));
378
376
  }
379
377
  }]);
380
- return Preview;
381
378
  }(_react["default"].Component);
382
- exports["default"] = Preview;
383
379
  Preview.defaultProps = {
384
380
  showCorrectColumn: false,
385
381
  files: [],
386
382
  editMode: false,
387
383
  editElement: null,
388
- className: 'col-md-9 react-form-builder-preview float-left',
384
+ className: 'col-md-9 react-form-builder-preview float-start',
389
385
  renderEditForm: function renderEditForm(props) {
390
386
  return /*#__PURE__*/_react["default"].createElement(_formDynamicEdit["default"], props);
391
387
  }
@@ -5,25 +5,19 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = _default;
8
+ exports["default"] = createDraggableCard;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
14
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
15
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
16
13
  var _react = _interopRequireWildcard(require("react"));
17
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
18
- var _reactDom = require("react-dom");
19
15
  var _reactDnd = require("react-dnd");
20
16
  var _ItemTypes = _interopRequireDefault(require("./ItemTypes"));
21
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
24
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
26
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
17
+ var _excluded = ["index", "id", "moveCard", "seq"];
18
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
19
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
27
21
  var style = {
28
22
  border: '1px dashed gray',
29
23
  padding: '0.5rem 1rem',
@@ -31,147 +25,179 @@ var style = {
31
25
  backgroundColor: 'white',
32
26
  cursor: 'pointer'
33
27
  };
34
- var cardSource = {
35
- beginDrag: function beginDrag(props) {
36
- return {
37
- itemType: _ItemTypes["default"].CARD,
38
- id: props.id,
39
- index: props.index
40
- };
41
- }
42
- };
43
- var cardTarget = {
44
- drop: function drop(props, monitor, component) {
45
- if (!component) {
46
- return;
47
- }
48
- var item = monitor.getItem();
49
- var hoverIndex = props.index;
50
- var dragIndex = item.index;
51
- if (props.data && props.data.isContainer || item.itemType === _ItemTypes["default"].CARD) {
52
- // console.log('cardTarget - Drop', item.itemType);
53
- return;
54
- }
55
- if (item.data && typeof item.setAsChild === 'function') {
56
- // console.log('BOX', item);
57
- if (dragIndex === -1) {
58
- props.insertCard(item, hoverIndex, item.id);
59
- }
60
- }
61
- },
62
- hover: function hover(props, monitor, component) {
63
- var _props$data, _item$data;
64
- var item = monitor.getItem();
65
- if (item.itemType === _ItemTypes["default"].BOX && item.index === -1) return;
66
-
67
- // Don't replace multi-column component unless both drag & hover are multi-column
68
- if ((_props$data = props.data) !== null && _props$data !== void 0 && _props$data.isContainer && !((_item$data = item.data) !== null && _item$data !== void 0 && _item$data.isContainer)) return;
69
- var dragIndex = item.index;
70
- var hoverIndex = props.index;
71
-
72
- // Don't replace items with themselves
73
- if (dragIndex === hoverIndex) {
74
- return;
75
- }
76
- if (dragIndex === -1) {
77
- if (props.data && props.data.isContainer) {
78
- return;
28
+
29
+ // Modern approach using a custom hook for DnD logic
30
+ var useDragAndDrop = function useDragAndDrop(props) {
31
+ var _ref = (0, _react.useRef)(null);
32
+
33
+ // Setup drag
34
+ var _useDrag = (0, _reactDnd.useDrag)({
35
+ type: _ItemTypes["default"].CARD,
36
+ item: function item() {
37
+ return {
38
+ itemType: _ItemTypes["default"].CARD,
39
+ id: props.id,
40
+ index: props.index
41
+ };
42
+ },
43
+ collect: function collect(monitor) {
44
+ return {
45
+ isDragging: monitor.isDragging()
46
+ };
79
47
  }
80
- // console.log('CARD', item);
81
- item.index = hoverIndex;
82
- props.insertCard(item.onCreate(item.data), hoverIndex);
83
- }
48
+ }),
49
+ _useDrag2 = (0, _slicedToArray2["default"])(_useDrag, 3),
50
+ isDragging = _useDrag2[0].isDragging,
51
+ drag = _useDrag2[1],
52
+ preview = _useDrag2[2];
84
53
 
85
- // Determine rectangle on screen
86
- var hoverBoundingRect = (0, _reactDom.findDOMNode)(component).getBoundingClientRect();
54
+ // Setup drop
55
+ var _useDrop = (0, _reactDnd.useDrop)({
56
+ accept: [_ItemTypes["default"].CARD, _ItemTypes["default"].BOX],
57
+ drop: function drop(item) {
58
+ // Don't handle drops if we're a container and this is a card drop
59
+ if (props.data && props.data.isContainer || item.itemType === _ItemTypes["default"].CARD) {
60
+ return;
61
+ }
62
+ var hoverIndex = props.index;
63
+ var dragIndex = item.index;
87
64
 
88
- // Get vertical middle
89
- var hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;
65
+ // Handle box drops
66
+ if (item.data && typeof item.setAsChild === 'function') {
67
+ if (dragIndex === -1) {
68
+ props.insertCard(item, hoverIndex, item.id);
69
+ }
70
+ }
71
+ },
72
+ hover: function hover(item, monitor) {
73
+ var _props$data, _item$data;
74
+ // Don't replace items being dragged from box with index -1
75
+ if (item.itemType === _ItemTypes["default"].BOX && item.index === -1) return;
90
76
 
91
- // Determine mouse position
92
- var clientOffset = monitor.getClientOffset();
77
+ // Don't replace multi-column component unless both drag & hover are multi-column
78
+ if ((_props$data = props.data) !== null && _props$data !== void 0 && _props$data.isContainer && !((_item$data = item.data) !== null && _item$data !== void 0 && _item$data.isContainer)) return;
79
+ var dragIndex = item.index;
80
+ var hoverIndex = props.index;
93
81
 
94
- // Get pixels to the top
95
- var hoverClientY = clientOffset.y - hoverBoundingRect.top;
82
+ // Don't replace items with themselves
83
+ if (dragIndex === hoverIndex) {
84
+ return;
85
+ }
96
86
 
97
- // Only perform the move when the mouse has crossed half of the items height
98
- // When dragging downwards, only move when the cursor is below 50%
99
- // When dragging upwards, only move when the cursor is above 50%
87
+ // Handle new items being created
88
+ if (dragIndex === -1) {
89
+ if (props.data && props.data.isContainer) {
90
+ return;
91
+ }
92
+ item.index = hoverIndex;
93
+ props.insertCard(item.onCreate(item.data), hoverIndex);
94
+ return;
95
+ }
100
96
 
101
- // Dragging downwards
102
- if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {
103
- return;
104
- }
97
+ // Skip if no ref available
98
+ if (!_ref.current) {
99
+ return;
100
+ }
105
101
 
106
- // Dragging upwards
107
- if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {
108
- return;
109
- }
102
+ // Determine rectangle on screen
103
+ var hoverBoundingRect = _ref.current.getBoundingClientRect();
110
104
 
111
- // Time to actually perform the action
112
- props.moveCard(dragIndex, hoverIndex);
105
+ // Get vertical middle
106
+ var hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;
113
107
 
114
- // Note: we're mutating the monitor item here!
115
- // Generally it's better to avoid mutations,
116
- // but it's good here for the sake of performance
117
- // to avoid expensive index searches.
108
+ // Determine mouse position
109
+ var clientOffset = monitor.getClientOffset();
110
+ if (!clientOffset) return;
118
111
 
119
- // if (item.itemType == ItemTypes.BOX) item.cardIndex = hoverIndex;
120
- // else
121
- item.index = hoverIndex;
122
- }
123
- };
112
+ // Get pixels to the top
113
+ var hoverClientY = clientOffset.y - hoverBoundingRect.top;
114
+
115
+ // Only perform the move when the mouse has crossed half of the items height
116
+ // When dragging downwards, only move when the cursor is below 50%
117
+ // When dragging upwards, only move when the cursor is above 50%
118
+
119
+ // Dragging downwards
120
+ if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {
121
+ return;
122
+ }
123
+
124
+ // Dragging upwards
125
+ if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {
126
+ return;
127
+ }
128
+
129
+ // Time to actually perform the action
130
+ props.moveCard(dragIndex, hoverIndex);
124
131
 
125
- // eslint-disable-next-line no-unused-vars
126
- function _default(ComposedComponent) {
127
- var Card = /*#__PURE__*/function (_Component) {
128
- (0, _inherits2["default"])(Card, _Component);
129
- var _super = _createSuper(Card);
130
- function Card() {
131
- (0, _classCallCheck2["default"])(this, Card);
132
- return _super.apply(this, arguments);
133
- }
134
- (0, _createClass2["default"])(Card, [{
135
- key: "render",
136
- value: function render() {
137
- var _this$props = this.props,
138
- isDragging = _this$props.isDragging,
139
- connectDragPreview = _this$props.connectDragPreview,
140
- connectDropTarget = _this$props.connectDropTarget;
141
- var opacity = isDragging ? 0 : 1;
142
- return connectDragPreview(connectDropTarget(/*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(ComposedComponent, (0, _extends2["default"])({}, this.props, {
143
- style: _objectSpread(_objectSpread({}, style), {}, {
144
- opacity: opacity
145
- })
146
- })))));
132
+ // Note: we're mutating the monitor item here!
133
+ // Generally it's better to avoid mutations,
134
+ // but it's good here for the sake of performance
135
+ // to avoid expensive index searches.
136
+ item.index = hoverIndex;
147
137
  }
148
- }]);
149
- return Card;
150
- }(_react.Component);
151
- (0, _defineProperty2["default"])(Card, "propTypes", {
152
- connectDragSource: _propTypes["default"].func,
153
- connectDragPreview: _propTypes["default"].func,
154
- connectDropTarget: _propTypes["default"].func,
155
- index: _propTypes["default"].number.isRequired,
156
- isDragging: _propTypes["default"].bool,
157
- id: _propTypes["default"].any.isRequired,
158
- // text: PropTypes.string.isRequired,
159
- moveCard: _propTypes["default"].func.isRequired,
160
- seq: _propTypes["default"].number
161
- });
162
- (0, _defineProperty2["default"])(Card, "defaultProps", {
163
- seq: -1
164
- });
165
- var x = (0, _reactDnd.DropTarget)([_ItemTypes["default"].CARD, _ItemTypes["default"].BOX], cardTarget, function (connect) {
166
- return {
167
- connectDropTarget: connect.dropTarget()
168
- };
169
- })(Card);
170
- return (0, _reactDnd.DragSource)(_ItemTypes["default"].CARD, cardSource, function (connect, monitor) {
171
- return {
172
- connectDragSource: connect.dragSource(),
173
- connectDragPreview: connect.dragPreview(),
174
- isDragging: monitor.isDragging()
175
- };
176
- })(x);
138
+ }),
139
+ _useDrop2 = (0, _slicedToArray2["default"])(_useDrop, 2),
140
+ drop = _useDrop2[1];
141
+
142
+ // Connect the drag and drop refs to the same element
143
+ return {
144
+ ref: function ref(node) {
145
+ _ref.current = node;
146
+ drop(node);
147
+ drag(node);
148
+ },
149
+ previewRef: preview,
150
+ isDragging: isDragging
151
+ };
152
+ };
153
+
154
+ // Modern approach using a functional component wrapper instead of HOC
155
+ var DraggableCard = function DraggableCard(props) {
156
+ var index = props.index,
157
+ id = props.id,
158
+ moveCard = props.moveCard,
159
+ _props$seq = props.seq,
160
+ seq = _props$seq === void 0 ? -1 : _props$seq,
161
+ restProps = (0, _objectWithoutProperties2["default"])(props, _excluded);
162
+ var _useDragAndDrop = useDragAndDrop(props),
163
+ ref = _useDragAndDrop.ref,
164
+ previewRef = _useDragAndDrop.previewRef,
165
+ isDragging = _useDragAndDrop.isDragging;
166
+ var opacity = isDragging ? 0 : 1;
167
+
168
+ // Use the ComposedComponent passed in props
169
+ var ComposedComponent = props.component;
170
+ return /*#__PURE__*/_react["default"].createElement("div", {
171
+ ref: previewRef
172
+ }, /*#__PURE__*/_react["default"].createElement("div", {
173
+ ref: ref
174
+ }, /*#__PURE__*/_react["default"].createElement(ComposedComponent, (0, _extends2["default"])({}, restProps, {
175
+ index: index,
176
+ id: id,
177
+ moveCard: moveCard,
178
+ seq: seq,
179
+ style: _objectSpread(_objectSpread({}, style), {}, {
180
+ opacity: opacity
181
+ })
182
+ }))));
183
+ };
184
+ DraggableCard.propTypes = {
185
+ component: _propTypes["default"].elementType.isRequired,
186
+ index: _propTypes["default"].number.isRequired,
187
+ isDragging: _propTypes["default"].bool,
188
+ id: _propTypes["default"].any.isRequired,
189
+ moveCard: _propTypes["default"].func.isRequired,
190
+ seq: _propTypes["default"].number
191
+ };
192
+ DraggableCard.defaultProps = {
193
+ seq: -1
194
+ };
195
+
196
+ // This replaces the HOC pattern with a component that takes the component as a prop
197
+ function createDraggableCard(ComposedComponent) {
198
+ return function (props) {
199
+ return /*#__PURE__*/_react["default"].createElement(DraggableCard, (0, _extends2["default"])({}, props, {
200
+ component: ComposedComponent
201
+ }));
202
+ };
177
203
  }
@@ -62,5 +62,4 @@ FormElements.TwoColumnRow = (0, _sortableElement["default"])(_multiColumn.TwoCol
62
62
  FormElements.ThreeColumnRow = (0, _sortableElement["default"])(_multiColumn.ThreeColumnRow);
63
63
  FormElements.MultiColumnRow = (0, _sortableElement["default"])(_multiColumn.MultiColumnRow);
64
64
  FormElements.CustomElement = (0, _sortableElement["default"])(_customElement["default"]);
65
- var _default = FormElements;
66
- exports["default"] = _default;
65
+ var _default = exports["default"] = FormElements;
@@ -135,5 +135,4 @@ store.setExternalHandler = function (onLoad, onPost) {
135
135
  _onLoad = onLoad;
136
136
  _onPost = onPost;
137
137
  };
138
- var _default = store;
139
- exports["default"] = _default;
138
+ var _default = exports["default"] = store;
@@ -5,56 +5,51 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports["default"] = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
11
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
12
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
9
  var _react = _interopRequireDefault(require("react"));
14
10
  var _reactDnd = require("react-dnd");
15
11
  var _ItemTypes = _interopRequireDefault(require("./ItemTypes"));
16
12
  var _UUID = _interopRequireDefault(require("./UUID"));
17
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
18
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /**
13
+ /**
19
14
  * <ToolbarItem />
20
15
  */
21
- var cardSource = {
22
- beginDrag: function beginDrag(props) {
23
- return {
24
- id: _UUID["default"].uuid(),
25
- index: -1,
26
- data: props.data,
27
- onCreate: props.onCreate
28
- };
29
- }
30
- };
31
- var ToolbarItem = /*#__PURE__*/function (_React$Component) {
32
- (0, _inherits2["default"])(ToolbarItem, _React$Component);
33
- var _super = _createSuper(ToolbarItem);
34
- function ToolbarItem() {
35
- (0, _classCallCheck2["default"])(this, ToolbarItem);
36
- return _super.apply(this, arguments);
37
- }
38
- (0, _createClass2["default"])(ToolbarItem, [{
39
- key: "render",
40
- value: function render() {
41
- var _this$props = this.props,
42
- connectDragSource = _this$props.connectDragSource,
43
- data = _this$props.data,
44
- onClick = _this$props.onClick;
45
- if (!connectDragSource) return null;
46
- return connectDragSource(/*#__PURE__*/_react["default"].createElement("li", {
47
- onClick: onClick
48
- }, /*#__PURE__*/_react["default"].createElement("i", {
49
- className: data.icon
50
- }), data.name));
16
+
17
+ var ToolbarItem = function ToolbarItem(_ref) {
18
+ var data = _ref.data,
19
+ onCreate = _ref.onCreate,
20
+ onClick = _ref.onClick;
21
+ // Setup drag functionality using the useDrag hook
22
+ var _useDrag = (0, _reactDnd.useDrag)({
23
+ type: _ItemTypes["default"].CARD,
24
+ item: function item() {
25
+ return {
26
+ id: _UUID["default"].uuid(),
27
+ index: -1,
28
+ data: data,
29
+ onCreate: onCreate
30
+ };
31
+ },
32
+ collect: function collect(monitor) {
33
+ return {
34
+ isDragging: monitor.isDragging()
35
+ };
36
+ }
37
+ }),
38
+ _useDrag2 = (0, _slicedToArray2["default"])(_useDrag, 2),
39
+ isDragging = _useDrag2[0].isDragging,
40
+ drag = _useDrag2[1];
41
+
42
+ // Apply slight opacity while dragging for better UX
43
+ var opacity = isDragging ? 0.5 : 1;
44
+ return /*#__PURE__*/_react["default"].createElement("li", {
45
+ ref: drag,
46
+ onClick: onClick,
47
+ style: {
48
+ opacity: opacity,
49
+ cursor: 'move'
51
50
  }
52
- }]);
53
- return ToolbarItem;
54
- }(_react["default"].Component);
55
- var _default = (0, _reactDnd.DragSource)(_ItemTypes["default"].CARD, cardSource, function (connect) {
56
- return {
57
- connectDragSource: connect.dragSource()
58
- };
59
- })(ToolbarItem);
60
- exports["default"] = _default;
51
+ }, /*#__PURE__*/_react["default"].createElement("i", {
52
+ className: data.icon
53
+ }), data.name);
54
+ };
55
+ var _default = exports["default"] = ToolbarItem;
@@ -8,8 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports["default"] = void 0;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
13
12
  /**
14
13
  * <ToolbarGroupItem />
15
14
  */
@@ -36,5 +35,4 @@ function ToolbarGroupItem(props) {
36
35
  className: classShow
37
36
  }, /*#__PURE__*/_react["default"].createElement("ul", null, group.map(renderItem)))));
38
37
  }
39
- var _default = ToolbarGroupItem;
40
- exports["default"] = _default;
38
+ var _default = exports["default"] = ToolbarGroupItem;