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.
@@ -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/esm';
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.forEach(function (item) {
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':