@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.
- package/LICENSE +7 -0
- package/README.md +250 -0
- package/dist/1.app.js +1 -0
- package/dist/app.css +38 -0
- package/dist/app.css.map +1 -0
- package/dist/app.js +71 -0
- package/lib/ItemTypes.js +11 -0
- package/lib/UUID.js +67 -0
- package/lib/dynamic-option-list.js +189 -0
- package/lib/fieldset/FieldSet.js +121 -0
- package/lib/fieldset/index.js +13 -0
- package/lib/form-dynamic-edit.js +57 -0
- package/lib/form-elements/component-drag-handle.js +91 -0
- package/lib/form-elements/component-drag-layer.js +69 -0
- package/lib/form-elements/component-drag-preview.js +61 -0
- package/lib/form-elements/component-header.js +30 -0
- package/lib/form-elements/component-label.js +30 -0
- package/lib/form-elements/custom-element.js +74 -0
- package/lib/form-elements/date-picker.js +185 -0
- package/lib/form-elements/header-bar.js +55 -0
- package/lib/form-elements/index.js +1144 -0
- package/lib/form-elements/myxss.js +30 -0
- package/lib/form-elements/star-rating.js +338 -0
- package/lib/form-elements-edit.js +740 -0
- package/lib/form-place-holder.js +52 -0
- package/lib/form-validator.js +104 -0
- package/lib/form.js +592 -0
- package/lib/functions/index.js +47 -0
- package/lib/index.js +142 -0
- package/lib/language-provider/IntlMessages.js +16 -0
- package/lib/language-provider/entries/en-us.js +17 -0
- package/lib/language-provider/entries/fa-ir.js +17 -0
- package/lib/language-provider/entries/it-it.js +17 -0
- package/lib/language-provider/entries/vi-vn.js +17 -0
- package/lib/language-provider/index.js +41 -0
- package/lib/language-provider/locales/en-us.json +117 -0
- package/lib/language-provider/locales/fa-ir.json +109 -0
- package/lib/language-provider/locales/it-it.json +109 -0
- package/lib/language-provider/locales/vi-vn.json +96 -0
- package/lib/multi-column/MultiColumnRow.js +137 -0
- package/lib/multi-column/dustbin.js +156 -0
- package/lib/multi-column/grip.js +52 -0
- package/lib/multi-column/index.js +24 -0
- package/lib/preview.js +392 -0
- package/lib/sortable-element.js +177 -0
- package/lib/sortable-form-elements.js +66 -0
- package/lib/stores/registry.js +42 -0
- package/lib/stores/requests.js +31 -0
- package/lib/stores/store.js +139 -0
- package/lib/toolbar-draggable-item.js +60 -0
- package/lib/toolbar-group-item.js +40 -0
- package/lib/toolbar.js +726 -0
- package/package.json +118 -0
- 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();
|