@goldenpine/react-form-builder2 0.18.4-patch.1

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 (54) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +250 -0
  3. package/dist/1.app.js +1 -0
  4. package/dist/app.css +38 -0
  5. package/dist/app.css.map +1 -0
  6. package/dist/app.js +71 -0
  7. package/lib/ItemTypes.js +11 -0
  8. package/lib/UUID.js +67 -0
  9. package/lib/dynamic-option-list.js +189 -0
  10. package/lib/fieldset/FieldSet.js +121 -0
  11. package/lib/fieldset/index.js +13 -0
  12. package/lib/form-dynamic-edit.js +57 -0
  13. package/lib/form-elements/component-drag-handle.js +91 -0
  14. package/lib/form-elements/component-drag-layer.js +69 -0
  15. package/lib/form-elements/component-drag-preview.js +61 -0
  16. package/lib/form-elements/component-header.js +30 -0
  17. package/lib/form-elements/component-label.js +30 -0
  18. package/lib/form-elements/custom-element.js +74 -0
  19. package/lib/form-elements/date-picker.js +185 -0
  20. package/lib/form-elements/header-bar.js +55 -0
  21. package/lib/form-elements/index.js +1144 -0
  22. package/lib/form-elements/myxss.js +30 -0
  23. package/lib/form-elements/star-rating.js +338 -0
  24. package/lib/form-elements-edit.js +740 -0
  25. package/lib/form-place-holder.js +52 -0
  26. package/lib/form-validator.js +104 -0
  27. package/lib/form.js +592 -0
  28. package/lib/functions/index.js +47 -0
  29. package/lib/index.js +142 -0
  30. package/lib/language-provider/IntlMessages.js +16 -0
  31. package/lib/language-provider/entries/en-us.js +17 -0
  32. package/lib/language-provider/entries/fa-ir.js +17 -0
  33. package/lib/language-provider/entries/it-it.js +17 -0
  34. package/lib/language-provider/entries/vi-vn.js +17 -0
  35. package/lib/language-provider/index.js +41 -0
  36. package/lib/language-provider/locales/en-us.json +117 -0
  37. package/lib/language-provider/locales/fa-ir.json +109 -0
  38. package/lib/language-provider/locales/it-it.json +109 -0
  39. package/lib/language-provider/locales/vi-vn.json +96 -0
  40. package/lib/multi-column/MultiColumnRow.js +137 -0
  41. package/lib/multi-column/dustbin.js +156 -0
  42. package/lib/multi-column/grip.js +52 -0
  43. package/lib/multi-column/index.js +24 -0
  44. package/lib/preview.js +392 -0
  45. package/lib/sortable-element.js +177 -0
  46. package/lib/sortable-form-elements.js +66 -0
  47. package/lib/stores/registry.js +42 -0
  48. package/lib/stores/requests.js +31 -0
  49. package/lib/stores/store.js +139 -0
  50. package/lib/toolbar-draggable-item.js +60 -0
  51. package/lib/toolbar-group-item.js +40 -0
  52. package/lib/toolbar.js +726 -0
  53. package/package.json +118 -0
  54. package/types/index.d.ts +184 -0
package/lib/preview.js ADDED
@@ -0,0 +1,392 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
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
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
14
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _react = _interopRequireDefault(require("react"));
17
+ var _immutabilityHelper = _interopRequireDefault(require("immutability-helper"));
18
+ var _store = _interopRequireDefault(require("./stores/store"));
19
+ var _formDynamicEdit = _interopRequireDefault(require("./form-dynamic-edit"));
20
+ var _sortableFormElements = _interopRequireDefault(require("./sortable-form-elements"));
21
+ 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; } } /**
24
+ * <Preview />
25
+ */
26
+ var PlaceHolder = _sortableFormElements["default"].PlaceHolder;
27
+ var Preview = /*#__PURE__*/function (_React$Component) {
28
+ (0, _inherits2["default"])(Preview, _React$Component);
29
+ var _super = _createSuper(Preview);
30
+ function Preview(props) {
31
+ var _this;
32
+ (0, _classCallCheck2["default"])(this, Preview);
33
+ _this = _super.call(this, props);
34
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
35
+ data: [],
36
+ answer_data: {}
37
+ });
38
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "editModeOff", function (e) {
39
+ if (_this.editForm.current && !_this.editForm.current.contains(e.target)) {
40
+ _this.manualEditModeOff();
41
+ }
42
+ });
43
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "manualEditModeOff", function () {
44
+ var editElement = _this.props.editElement;
45
+ if (editElement && editElement.dirty) {
46
+ editElement.dirty = false;
47
+ _this.updateElement(editElement);
48
+ }
49
+ _this.props.manualEditModeOff();
50
+ });
51
+ var onLoad = props.onLoad,
52
+ onPost = props.onPost;
53
+ _store["default"].setExternalHandler(onLoad, onPost);
54
+ _this.editForm = /*#__PURE__*/_react["default"].createRef();
55
+ _this.state = {
56
+ data: props.data || [],
57
+ answer_data: {}
58
+ };
59
+ _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));
67
+ return _this;
68
+ }
69
+ (0, _createClass2["default"])(Preview, [{
70
+ key: "componentDidMount",
71
+ value: function componentDidMount() {
72
+ var _this2 = this;
73
+ var _this$props = this.props,
74
+ data = _this$props.data,
75
+ url = _this$props.url,
76
+ saveUrl = _this$props.saveUrl,
77
+ saveAlways = _this$props.saveAlways;
78
+ _store["default"].subscribe(function (state) {
79
+ return _this2._onUpdate(state.data);
80
+ });
81
+ _store["default"].dispatch('load', {
82
+ loadUrl: url,
83
+ saveUrl: saveUrl,
84
+ data: data || [],
85
+ saveAlways: saveAlways
86
+ });
87
+ document.addEventListener('mousedown', this.editModeOff);
88
+ }
89
+ }, {
90
+ key: "componentWillUnmount",
91
+ value: function componentWillUnmount() {
92
+ document.removeEventListener('mousedown', this.editModeOff);
93
+ }
94
+ }, {
95
+ key: "_setValue",
96
+ value: function _setValue(text) {
97
+ return text.replace(/[^A-Z0-9]+/ig, '_').toLowerCase();
98
+ }
99
+ }, {
100
+ key: "updateElement",
101
+ value: function updateElement(element) {
102
+ var data = this.state.data;
103
+ var found = false;
104
+ for (var i = 0, len = data.length; i < len; i++) {
105
+ if (element.id === data[i].id) {
106
+ data[i] = element;
107
+ found = true;
108
+ break;
109
+ }
110
+ }
111
+ if (found) {
112
+ this.seq = this.seq > 100000 ? 0 : this.seq + 1;
113
+ _store["default"].dispatch('updateOrder', data);
114
+ }
115
+ }
116
+ }, {
117
+ key: "_onChange",
118
+ value: function _onChange(data) {
119
+ var _this3 = this;
120
+ var answer_data = {};
121
+ data.forEach(function (item) {
122
+ if (item && item.readOnly && _this3.props.variables[item.variableKey]) {
123
+ answer_data[item.field_name] = _this3.props.variables[item.variableKey];
124
+ }
125
+ });
126
+ this.setState({
127
+ data: data,
128
+ answer_data: answer_data
129
+ });
130
+ }
131
+ }, {
132
+ key: "_onDestroy",
133
+ value: function _onDestroy(item) {
134
+ var _this4 = this;
135
+ if (item.childItems) {
136
+ item.childItems.forEach(function (x) {
137
+ var child = _this4.getDataById(x);
138
+ if (child) {
139
+ _store["default"].dispatch('delete', child);
140
+ }
141
+ });
142
+ }
143
+ _store["default"].dispatch('delete', item);
144
+ }
145
+ }, {
146
+ key: "getDataById",
147
+ value: function getDataById(id) {
148
+ var data = this.state.data;
149
+ return data.find(function (x) {
150
+ return x && x.id === id;
151
+ });
152
+ }
153
+ }, {
154
+ key: "swapChildren",
155
+ value: function swapChildren(data, item, child, col) {
156
+ if (child.col !== undefined && item.id !== child.parentId) {
157
+ return false;
158
+ }
159
+ if (!(child.col !== undefined && child.col !== col && item.childItems[col])) {
160
+ // No child was assigned yet in both source and target.
161
+ return false;
162
+ }
163
+ var oldId = item.childItems[col];
164
+ var oldItem = this.getDataById(oldId);
165
+ var oldCol = child.col;
166
+ // eslint-disable-next-line no-param-reassign
167
+ item.childItems[oldCol] = oldId;
168
+ oldItem.col = oldCol;
169
+ // eslint-disable-next-line no-param-reassign
170
+ item.childItems[col] = child.id;
171
+ child.col = col;
172
+ _store["default"].dispatch('updateOrder', data);
173
+ return true;
174
+ }
175
+ }, {
176
+ key: "setAsChild",
177
+ value: function setAsChild(item, child, col, isBusy) {
178
+ var data = this.state.data;
179
+ if (this.swapChildren(data, item, child, col)) {
180
+ return;
181
+ }
182
+ if (isBusy) {
183
+ return;
184
+ }
185
+ var oldParent = this.getDataById(child.parentId);
186
+ var oldCol = child.col;
187
+ // eslint-disable-next-line no-param-reassign
188
+ item.childItems[col] = child.id;
189
+ child.col = col;
190
+ // eslint-disable-next-line no-param-reassign
191
+ child.parentId = item.id;
192
+ // eslint-disable-next-line no-param-reassign
193
+ child.parentIndex = data.indexOf(item);
194
+ if (oldParent) {
195
+ oldParent.childItems[oldCol] = null;
196
+ }
197
+ var list = data.filter(function (x) {
198
+ return x && x.parentId === item.id;
199
+ });
200
+ var toRemove = list.filter(function (x) {
201
+ return item.childItems.indexOf(x.id) === -1;
202
+ });
203
+ var newData = data;
204
+ if (toRemove.length) {
205
+ // console.log('toRemove', toRemove);
206
+ newData = data.filter(function (x) {
207
+ return toRemove.indexOf(x) === -1;
208
+ });
209
+ }
210
+ if (!this.getDataById(child.id)) {
211
+ newData.push(child);
212
+ }
213
+ _store["default"].dispatch('updateOrder', newData);
214
+ }
215
+ }, {
216
+ key: "removeChild",
217
+ value: function removeChild(item, col) {
218
+ var data = this.state.data;
219
+ var oldId = item.childItems[col];
220
+ var oldItem = this.getDataById(oldId);
221
+ if (oldItem) {
222
+ var newData = data.filter(function (x) {
223
+ return x !== oldItem;
224
+ });
225
+ // eslint-disable-next-line no-param-reassign
226
+ item.childItems[col] = null;
227
+ // delete oldItem.parentId;
228
+ this.seq = this.seq > 100000 ? 0 : this.seq + 1;
229
+ _store["default"].dispatch('updateOrder', newData);
230
+ this.setState({
231
+ data: newData
232
+ });
233
+ }
234
+ }
235
+ }, {
236
+ key: "restoreCard",
237
+ value: function restoreCard(item, id) {
238
+ var data = this.state.data;
239
+ var parent = this.getDataById(item.data.parentId);
240
+ var oldItem = this.getDataById(id);
241
+ if (parent && oldItem) {
242
+ var newIndex = data.indexOf(oldItem);
243
+ var newData = (0, _toConsumableArray2["default"])(data); // data.filter(x => x !== oldItem);
244
+ // eslint-disable-next-line no-param-reassign
245
+ parent.childItems[oldItem.col] = null;
246
+ delete oldItem.parentId;
247
+ // eslint-disable-next-line no-param-reassign
248
+ delete item.setAsChild;
249
+ // eslint-disable-next-line no-param-reassign
250
+ delete item.parentIndex;
251
+ // eslint-disable-next-line no-param-reassign
252
+ item.index = newIndex;
253
+ this.seq = this.seq > 100000 ? 0 : this.seq + 1;
254
+ _store["default"].dispatch('updateOrder', newData);
255
+ this.setState({
256
+ data: newData
257
+ });
258
+ }
259
+ }
260
+ }, {
261
+ key: "insertCard",
262
+ value: function insertCard(item, hoverIndex, id) {
263
+ var data = this.state.data;
264
+ if (id) {
265
+ this.restoreCard(item, id);
266
+ } else {
267
+ data.splice(hoverIndex, 0, item);
268
+ this.saveData(item, hoverIndex, hoverIndex);
269
+ _store["default"].dispatch('insertItem', item);
270
+ }
271
+ }
272
+ }, {
273
+ key: "moveCard",
274
+ value: function moveCard(dragIndex, hoverIndex) {
275
+ var data = this.state.data;
276
+ var dragCard = data[dragIndex];
277
+ // happens sometimes when you click to insert a new item from the toolbox
278
+ if (dragCard !== undefined) {
279
+ this.saveData(dragCard, dragIndex, hoverIndex);
280
+ }
281
+ }
282
+
283
+ // eslint-disable-next-line no-unused-vars
284
+ }, {
285
+ key: "cardPlaceHolder",
286
+ value: function cardPlaceHolder(dragIndex, hoverIndex) {
287
+ // Dummy
288
+ }
289
+ }, {
290
+ key: "saveData",
291
+ value: function saveData(dragCard, dragIndex, hoverIndex) {
292
+ var newData = (0, _immutabilityHelper["default"])(this.state, {
293
+ data: {
294
+ $splice: [[dragIndex, 1], [hoverIndex, 0, dragCard]]
295
+ }
296
+ });
297
+ this.setState(newData);
298
+ _store["default"].dispatch('updateOrder', newData.data);
299
+ }
300
+ }, {
301
+ key: "getElement",
302
+ value: function getElement(item, index) {
303
+ if (item.custom) {
304
+ if (!item.component || typeof item.component !== 'function') {
305
+ // eslint-disable-next-line no-param-reassign
306
+ item.component = this.props.registry.get(item.key);
307
+ }
308
+ }
309
+ var SortableFormElement = _sortableFormElements["default"][item.element];
310
+ if (SortableFormElement === null) {
311
+ return null;
312
+ }
313
+ return /*#__PURE__*/_react["default"].createElement(SortableFormElement, {
314
+ id: item.id,
315
+ seq: this.seq,
316
+ index: index,
317
+ moveCard: this.moveCard,
318
+ insertCard: this.insertCard,
319
+ mutable: false,
320
+ parent: this.props.parent,
321
+ editModeOn: this.props.editModeOn,
322
+ isDraggable: true,
323
+ key: item.id,
324
+ sortData: item.id,
325
+ data: item,
326
+ getDataById: this.getDataById,
327
+ setAsChild: this.setAsChild,
328
+ removeChild: this.removeChild,
329
+ _onDestroy: this._onDestroy
330
+ });
331
+ }
332
+ }, {
333
+ key: "showEditForm",
334
+ value: function showEditForm() {
335
+ var _this5 = this;
336
+ var handleUpdateElement = function handleUpdateElement(element) {
337
+ return _this5.updateElement(element);
338
+ };
339
+ handleUpdateElement.bind(this);
340
+ var formElementEditProps = {
341
+ showCorrectColumn: this.props.showCorrectColumn,
342
+ files: this.props.files,
343
+ manualEditModeOff: this.manualEditModeOff,
344
+ preview: this,
345
+ element: this.props.editElement,
346
+ updateElement: handleUpdateElement
347
+ };
348
+ return this.props.renderEditForm(formElementEditProps);
349
+ }
350
+ }, {
351
+ key: "render",
352
+ value: function render() {
353
+ var _this6 = this;
354
+ var classes = this.props.className;
355
+ if (this.props.editMode) {
356
+ classes += ' is-editing';
357
+ }
358
+ var data = this.state.data.filter(function (x) {
359
+ return !!x && !x.parentId;
360
+ });
361
+ var items = data.map(function (item, index) {
362
+ return _this6.getElement(item, index);
363
+ });
364
+ return /*#__PURE__*/_react["default"].createElement("div", {
365
+ className: classes
366
+ }, /*#__PURE__*/_react["default"].createElement("div", {
367
+ className: "edit-form",
368
+ ref: this.editForm
369
+ }, this.props.editElement !== null && this.showEditForm()), /*#__PURE__*/_react["default"].createElement("div", {
370
+ className: "Sortable"
371
+ }, items), /*#__PURE__*/_react["default"].createElement(PlaceHolder, {
372
+ id: "form-place-holder",
373
+ show: items.length === 0,
374
+ index: items.length,
375
+ moveCard: this.cardPlaceHolder,
376
+ insertCard: this.insertCard
377
+ }), /*#__PURE__*/_react["default"].createElement(_componentDragLayer["default"], null));
378
+ }
379
+ }]);
380
+ return Preview;
381
+ }(_react["default"].Component);
382
+ exports["default"] = Preview;
383
+ Preview.defaultProps = {
384
+ showCorrectColumn: false,
385
+ files: [],
386
+ editMode: false,
387
+ editElement: null,
388
+ className: 'col-md-9 react-form-builder-preview float-left',
389
+ renderEditForm: function renderEditForm(props) {
390
+ return /*#__PURE__*/_react["default"].createElement(_formDynamicEdit["default"], props);
391
+ }
392
+ };
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = _default;
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
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _react = _interopRequireWildcard(require("react"));
17
+ var _propTypes = _interopRequireDefault(require("prop-types"));
18
+ var _reactDom = require("react-dom");
19
+ var _reactDnd = require("react-dnd");
20
+ 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; } }
27
+ var style = {
28
+ border: '1px dashed gray',
29
+ padding: '0.5rem 1rem',
30
+ marginBottom: '.5rem',
31
+ backgroundColor: 'white',
32
+ cursor: 'pointer'
33
+ };
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;
79
+ }
80
+ // console.log('CARD', item);
81
+ item.index = hoverIndex;
82
+ props.insertCard(item.onCreate(item.data), hoverIndex);
83
+ }
84
+
85
+ // Determine rectangle on screen
86
+ var hoverBoundingRect = (0, _reactDom.findDOMNode)(component).getBoundingClientRect();
87
+
88
+ // Get vertical middle
89
+ var hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;
90
+
91
+ // Determine mouse position
92
+ var clientOffset = monitor.getClientOffset();
93
+
94
+ // Get pixels to the top
95
+ var hoverClientY = clientOffset.y - hoverBoundingRect.top;
96
+
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%
100
+
101
+ // Dragging downwards
102
+ if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {
103
+ return;
104
+ }
105
+
106
+ // Dragging upwards
107
+ if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {
108
+ return;
109
+ }
110
+
111
+ // Time to actually perform the action
112
+ props.moveCard(dragIndex, hoverIndex);
113
+
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.
118
+
119
+ // if (item.itemType == ItemTypes.BOX) item.cardIndex = hoverIndex;
120
+ // else
121
+ item.index = hoverIndex;
122
+ }
123
+ };
124
+
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
+ })))));
147
+ }
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);
177
+ }
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _sortableElement = _interopRequireDefault(require("./sortable-element"));
9
+ var _formPlaceHolder = _interopRequireDefault(require("./form-place-holder"));
10
+ var _formElements = _interopRequireDefault(require("./form-elements"));
11
+ var _multiColumn = require("./multi-column");
12
+ var _fieldset = require("./fieldset");
13
+ var _customElement = _interopRequireDefault(require("./form-elements/custom-element"));
14
+ var Header = _formElements["default"].Header,
15
+ Paragraph = _formElements["default"].Paragraph,
16
+ Label = _formElements["default"].Label,
17
+ LineBreak = _formElements["default"].LineBreak,
18
+ TextInput = _formElements["default"].TextInput,
19
+ EmailInput = _formElements["default"].EmailInput,
20
+ PhoneNumber = _formElements["default"].PhoneNumber,
21
+ NumberInput = _formElements["default"].NumberInput,
22
+ TextArea = _formElements["default"].TextArea,
23
+ Dropdown = _formElements["default"].Dropdown,
24
+ Checkboxes = _formElements["default"].Checkboxes,
25
+ DatePicker = _formElements["default"].DatePicker,
26
+ RadioButtons = _formElements["default"].RadioButtons,
27
+ Image = _formElements["default"].Image,
28
+ Rating = _formElements["default"].Rating,
29
+ Tags = _formElements["default"].Tags,
30
+ Signature = _formElements["default"].Signature,
31
+ HyperLink = _formElements["default"].HyperLink,
32
+ Download = _formElements["default"].Download,
33
+ Camera = _formElements["default"].Camera,
34
+ Range = _formElements["default"].Range,
35
+ FileUpload = _formElements["default"].FileUpload;
36
+ var FormElements = {};
37
+ FormElements.Header = (0, _sortableElement["default"])(Header);
38
+ FormElements.Paragraph = (0, _sortableElement["default"])(Paragraph);
39
+ FormElements.Label = (0, _sortableElement["default"])(Label);
40
+ FormElements.LineBreak = (0, _sortableElement["default"])(LineBreak);
41
+ FormElements.TextInput = (0, _sortableElement["default"])(TextInput);
42
+ FormElements.EmailInput = (0, _sortableElement["default"])(EmailInput);
43
+ FormElements.PhoneNumber = (0, _sortableElement["default"])(PhoneNumber);
44
+ FormElements.NumberInput = (0, _sortableElement["default"])(NumberInput);
45
+ FormElements.TextArea = (0, _sortableElement["default"])(TextArea);
46
+ FormElements.Dropdown = (0, _sortableElement["default"])(Dropdown);
47
+ FormElements.Signature = (0, _sortableElement["default"])(Signature);
48
+ FormElements.Checkboxes = (0, _sortableElement["default"])(Checkboxes);
49
+ FormElements.DatePicker = (0, _sortableElement["default"])(DatePicker);
50
+ FormElements.RadioButtons = (0, _sortableElement["default"])(RadioButtons);
51
+ FormElements.Image = (0, _sortableElement["default"])(Image);
52
+ FormElements.Rating = (0, _sortableElement["default"])(Rating);
53
+ FormElements.Tags = (0, _sortableElement["default"])(Tags);
54
+ FormElements.HyperLink = (0, _sortableElement["default"])(HyperLink);
55
+ FormElements.Download = (0, _sortableElement["default"])(Download);
56
+ FormElements.Camera = (0, _sortableElement["default"])(Camera);
57
+ FormElements.FileUpload = (0, _sortableElement["default"])(FileUpload);
58
+ FormElements.Range = (0, _sortableElement["default"])(Range);
59
+ FormElements.PlaceHolder = (0, _sortableElement["default"])(_formPlaceHolder["default"]);
60
+ FormElements.FieldSet = (0, _sortableElement["default"])(_fieldset.FieldSet);
61
+ FormElements.TwoColumnRow = (0, _sortableElement["default"])(_multiColumn.TwoColumnRow);
62
+ FormElements.ThreeColumnRow = (0, _sortableElement["default"])(_multiColumn.ThreeColumnRow);
63
+ FormElements.MultiColumnRow = (0, _sortableElement["default"])(_multiColumn.MultiColumnRow);
64
+ FormElements.CustomElement = (0, _sortableElement["default"])(_customElement["default"]);
65
+ var _default = FormElements;
66
+ exports["default"] = _default;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ /* eslint-disable no-use-before-define */
4
+ function regg() {
5
+ var registry = {};
6
+ var self = {
7
+ register: register,
8
+ list: list,
9
+ get: get
10
+ };
11
+
12
+ /**
13
+ * Registers a entry and make it read only
14
+ * @param {String} name To get the entry by
15
+ * @param {Object} entry What you want to register
16
+ */
17
+ function register(name, entry) {
18
+ if (!name) {
19
+ throw new Error('You must provide a valid name for this entry.');
20
+ }
21
+ if (registry[name] !== undefined) {
22
+ throw new Error("'".concat(name, "' already registered"));
23
+ }
24
+ if (!entry) {
25
+ throw new Error("You must provide something to register as '".concat(name, "'"));
26
+ }
27
+ registry[name] = entry;
28
+ return self;
29
+ }
30
+ function get(name) {
31
+ // eslint-disable-next-line no-prototype-builtins
32
+ if (!registry.hasOwnProperty(name)) {
33
+ console.error("No such entry '".concat(name, "'"));
34
+ }
35
+ return registry[name];
36
+ }
37
+ function list() {
38
+ return Object.keys(registry);
39
+ }
40
+ return self;
41
+ }
42
+ module.exports = regg();