react-survey-builder 1.0.72 → 1.0.73
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/README.md +2 -0
- package/dist/app.css +1 -1
- package/dist/app.css.map +1 -1
- package/dist/bundle.js +628 -35
- package/dist/src_survey-elements-edit_jsx.bundle.js +2 -2
- package/lib/dynamic-option-list.js +140 -155
- package/lib/fieldset/FieldSet.js +118 -0
- package/lib/fieldset/index.js +2 -132
- package/lib/form-fields.js +41 -14
- package/lib/form-steps.js +793 -0
- package/lib/form.js +43 -15
- package/lib/index.js +130 -124
- package/lib/multi-column/MultiColumnRow.js +69 -81
- package/lib/multi-column/dustbin.js +52 -18
- package/lib/preview.js +378 -349
- package/lib/sortable-element.js +9 -0
- package/lib/sortable-form-elements.js +28 -2
- package/lib/step/Step.js +147 -0
- package/lib/step/index.js +2 -0
- package/lib/survey-elements/component-drag-layer.js +13 -8
- package/lib/survey-elements/component-error-message.js +1 -1
- package/lib/survey-elements/component-header.js +12 -11
- package/lib/survey-elements/custom-element.js +51 -62
- package/lib/survey-elements/header-bar.js +36 -55
- package/lib/survey-elements/index.js +372 -370
- package/lib/survey-elements/star-rating.js +232 -282
- package/lib/survey-elements-edit.js +659 -564
- package/lib/survey-place-holder.js +9 -33
- package/lib/survey-validator.js +45 -75
- package/lib/toolbar-draggable-item.js +10 -34
- package/lib/toolbar-group-item.js +1 -1
- package/lib/toolbar.js +578 -558
- package/lib/utils/objectUtils.js +139 -0
- package/package.json +6 -5
- package/types/index.d.ts +5 -0
package/lib/form-fields.js
CHANGED
@@ -2,23 +2,28 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
|
|
2
2
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
3
3
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
4
4
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
5
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
6
5
|
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
7
6
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
8
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
9
7
|
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; }
|
10
8
|
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) { _defineProperty(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; }
|
11
9
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
12
10
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
13
11
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
12
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
13
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
14
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
15
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
16
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
17
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
14
18
|
import React from 'react';
|
15
19
|
import ReactDOM from 'react-dom';
|
16
20
|
import SurveyElements, { Image, Checkboxes, Signature, Download, Camera, FileUpload, PhoneNumber, DatePicker, TextInput, EmailInput, NumberInput, TextArea, Dropdown, Tags } from './survey-elements';
|
17
21
|
import { TwoColumnRow, ThreeColumnRow, MultiColumnRow } from './multi-column';
|
18
|
-
import FieldSet from './fieldset';
|
22
|
+
import { FieldSet } from './fieldset';
|
23
|
+
import { Step } from './step';
|
19
24
|
import CustomElement from './survey-elements/custom-element';
|
20
25
|
import Registry from './stores/registry';
|
21
|
-
import { Button, Form } from 'react-bootstrap
|
26
|
+
import { Button, Form } from 'react-bootstrap';
|
22
27
|
import { Controller, FormProvider } from "react-hook-form";
|
23
28
|
var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
24
29
|
var _ref$validateForCorre = _ref.validateForCorrectness,
|
@@ -45,6 +50,8 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
45
50
|
variables = _ref.variables,
|
46
51
|
buttonClassName = _ref.buttonClassName,
|
47
52
|
checkboxButtonClassName = _ref.checkboxButtonClassName,
|
53
|
+
headerClassName = _ref.headerClassName,
|
54
|
+
labelClassName = _ref.labelClassName,
|
48
55
|
formId = _ref.formId,
|
49
56
|
methods = _ref.methods,
|
50
57
|
_ref$print = _ref.print,
|
@@ -64,6 +71,10 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
64
71
|
var form = React.useRef();
|
65
72
|
var inputs = React.useRef({});
|
66
73
|
var answerData = React.useRef(_convert(answers));
|
74
|
+
var _React$useState = React.useState(null),
|
75
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
76
|
+
formAnswers = _React$useState2[0],
|
77
|
+
setFormAnswers = _React$useState2[1];
|
67
78
|
var _getDefaultValue = function _getDefaultValue($dataItem) {
|
68
79
|
var defaultValue = answerData.current[$dataItem.fieldName];
|
69
80
|
if ($dataItem.element === 'DatePicker') {
|
@@ -178,7 +189,9 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
178
189
|
};
|
179
190
|
var _collectFormData = function _collectFormData($dataItems, $formData) {
|
180
191
|
var formData = [];
|
181
|
-
$dataItems.
|
192
|
+
$dataItems.filter(function (i) {
|
193
|
+
return i["static"] !== true;
|
194
|
+
}).forEach(function (item) {
|
182
195
|
var itemData = {
|
183
196
|
id: item.id,
|
184
197
|
name: item.fieldName,
|
@@ -212,6 +225,7 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
212
225
|
formData: $formData,
|
213
226
|
answers: $data
|
214
227
|
});
|
228
|
+
setFormAnswers($data);
|
215
229
|
} else {
|
216
230
|
var $form = ReactDOM.findDOMNode(form.current);
|
217
231
|
$form.submit();
|
@@ -219,12 +233,14 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
219
233
|
}
|
220
234
|
};
|
221
235
|
var handleChange = function handleChange(event) {
|
222
|
-
// console.log('handleChange');
|
223
236
|
// Call submit function on change
|
237
|
+
var $data = _collectFormData(items, (methods === null || methods === void 0 ? void 0 : methods.getValues()) || []);
|
238
|
+
// console.log('handleChange', $data);
|
239
|
+
|
224
240
|
if (onChange) {
|
225
|
-
var $data = _collectFormData(items, (methods === null || methods === void 0 ? void 0 : methods.getValues()) || []);
|
226
241
|
onChange($data);
|
227
242
|
}
|
243
|
+
setFormAnswers($data);
|
228
244
|
};
|
229
245
|
var validateForm = function validateForm() {
|
230
246
|
var hasErrors = false;
|
@@ -252,14 +268,18 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
252
268
|
return x.id === id;
|
253
269
|
});
|
254
270
|
if ($dataItem !== undefined) {
|
255
|
-
var _ref2, _ref3, _ref4;
|
271
|
+
var _ref2, _ref3, _ref4, _$dataItem$fieldName;
|
256
272
|
return _objectSpread(_objectSpread({}, $dataItem), {}, {
|
257
273
|
fieldRules: getFieldRules($dataItem),
|
258
274
|
print: print !== null && print !== void 0 ? print : false,
|
259
275
|
readOnly: (_ref2 = readOnly || $dataItem.readOnly) !== null && _ref2 !== void 0 ? _ref2 : false,
|
260
276
|
hideLabel: (_ref3 = hideLabels || $dataItem.hideLabel) !== null && _ref3 !== void 0 ? _ref3 : false,
|
261
277
|
disabled: (_ref4 = readOnly || $dataItem.readOnly) !== null && _ref4 !== void 0 ? _ref4 : false,
|
262
|
-
mutable: true
|
278
|
+
mutable: true,
|
279
|
+
name: (_$dataItem$fieldName = $dataItem.fieldName) !== null && _$dataItem$fieldName !== void 0 ? _$dataItem$fieldName : $dataItem.name,
|
280
|
+
key: "form_".concat($dataItem.id),
|
281
|
+
item: $dataItem,
|
282
|
+
value: _getDefaultValue($dataItem)
|
263
283
|
});
|
264
284
|
}
|
265
285
|
return null;
|
@@ -274,7 +294,8 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
274
294
|
name: item.fieldName,
|
275
295
|
key: "form_".concat(item.id),
|
276
296
|
item: item,
|
277
|
-
value: _getDefaultValue(item)
|
297
|
+
value: _getDefaultValue(item),
|
298
|
+
onChange: handleChange
|
278
299
|
});
|
279
300
|
};
|
280
301
|
var getInputElement = function getInputElement(item) {
|
@@ -324,14 +345,16 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
324
345
|
});
|
325
346
|
};
|
326
347
|
var getContainerElement = function getContainerElement(item, Element) {
|
327
|
-
var controls = item.childItems.map(function (childItem) {
|
348
|
+
var controls = item === null || item === void 0 ? void 0 : item.childItems.map(function (childItem) {
|
328
349
|
return childItem ? getInputElement(getDataItemById(childItem)) : /*#__PURE__*/React.createElement("div", null, "\xA0");
|
329
350
|
});
|
330
351
|
return /*#__PURE__*/React.createElement(Element, {
|
331
352
|
mutable: true,
|
332
353
|
key: "form_".concat(item.id),
|
333
354
|
item: item,
|
334
|
-
controls: controls
|
355
|
+
controls: controls,
|
356
|
+
items: items,
|
357
|
+
answers: formAnswers
|
335
358
|
});
|
336
359
|
};
|
337
360
|
var getSimpleElement = function getSimpleElement(item) {
|
@@ -339,7 +362,9 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
339
362
|
return /*#__PURE__*/React.createElement(Element, {
|
340
363
|
mutable: true,
|
341
364
|
key: "form_".concat(item.id),
|
342
|
-
item: item
|
365
|
+
item: item,
|
366
|
+
headerClassName: headerClassName,
|
367
|
+
labelClassName: labelClassName
|
343
368
|
});
|
344
369
|
};
|
345
370
|
var getCustomElement = function getCustomElement(item) {
|
@@ -443,10 +468,10 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
443
468
|
item.mutable = true;
|
444
469
|
switch (item.element) {
|
445
470
|
case 'RadioButtons':
|
446
|
-
case 'Rating':
|
447
471
|
case 'Range':
|
448
472
|
case 'Checkbox':
|
449
473
|
return getInputElement(item);
|
474
|
+
case 'Rating':
|
450
475
|
case 'Tags':
|
451
476
|
case 'Dropdown':
|
452
477
|
case 'TextInput':
|
@@ -464,6 +489,8 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
464
489
|
return getContainerElement(item, ThreeColumnRow);
|
465
490
|
case 'TwoColumnRow':
|
466
491
|
return getContainerElement(item, TwoColumnRow);
|
492
|
+
case 'Step':
|
493
|
+
return getContainerElement(item, Step);
|
467
494
|
case 'FieldSet':
|
468
495
|
return getContainerElement(item, FieldSet);
|
469
496
|
case 'Signature':
|