react-survey-builder 1.0.71 → 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) {
@@ -317,20 +338,23 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
317
338
  },
318
339
  isInvalid: invalid,
319
340
  item: item,
320
- className: item.element === 'RadioButtons' || item.element === 'Checkbox' ? checkboxButtonClassName !== null && checkboxButtonClassName !== void 0 ? checkboxButtonClassName : null : null
341
+ className: item.element === 'RadioButtons' || item.element === 'Checkbox' ? checkboxButtonClassName !== null && checkboxButtonClassName !== void 0 ? checkboxButtonClassName : null : null,
342
+ checkboxButtonClassName: item.element === 'RadioButtons' || item.element === 'Checkbox' ? checkboxButtonClassName !== null && checkboxButtonClassName !== void 0 ? checkboxButtonClassName : null : null
321
343
  });
322
344
  }
323
345
  });
324
346
  };
325
347
  var getContainerElement = function getContainerElement(item, Element) {
326
- var controls = item.childItems.map(function (childItem) {
348
+ var controls = item === null || item === void 0 ? void 0 : item.childItems.map(function (childItem) {
327
349
  return childItem ? getInputElement(getDataItemById(childItem)) : /*#__PURE__*/React.createElement("div", null, "\xA0");
328
350
  });
329
351
  return /*#__PURE__*/React.createElement(Element, {
330
352
  mutable: true,
331
353
  key: "form_".concat(item.id),
332
354
  item: item,
333
- controls: controls
355
+ controls: controls,
356
+ items: items,
357
+ answers: formAnswers
334
358
  });
335
359
  };
336
360
  var getSimpleElement = function getSimpleElement(item) {
@@ -338,7 +362,9 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
338
362
  return /*#__PURE__*/React.createElement(Element, {
339
363
  mutable: true,
340
364
  key: "form_".concat(item.id),
341
- item: item
365
+ item: item,
366
+ headerClassName: headerClassName,
367
+ labelClassName: labelClassName
342
368
  });
343
369
  };
344
370
  var getCustomElement = function getCustomElement(item) {
@@ -442,10 +468,10 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
442
468
  item.mutable = true;
443
469
  switch (item.element) {
444
470
  case 'RadioButtons':
445
- case 'Rating':
446
471
  case 'Range':
447
472
  case 'Checkbox':
448
473
  return getInputElement(item);
474
+ case 'Rating':
449
475
  case 'Tags':
450
476
  case 'Dropdown':
451
477
  case 'TextInput':
@@ -463,6 +489,8 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
463
489
  return getContainerElement(item, ThreeColumnRow);
464
490
  case 'TwoColumnRow':
465
491
  return getContainerElement(item, TwoColumnRow);
492
+ case 'Step':
493
+ return getContainerElement(item, Step);
466
494
  case 'FieldSet':
467
495
  return getContainerElement(item, FieldSet);
468
496
  case 'Signature':
@@ -538,7 +566,8 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
538
566
  },
539
567
  isInvalid: invalid,
540
568
  item: item,
541
- className: checkboxButtonClassName !== null && checkboxButtonClassName !== void 0 ? checkboxButtonClassName : null
569
+ className: checkboxButtonClassName !== null && checkboxButtonClassName !== void 0 ? checkboxButtonClassName : null,
570
+ checkboxButtonClassName: checkboxButtonClassName !== null && checkboxButtonClassName !== void 0 ? checkboxButtonClassName : null
542
571
  });
543
572
  }
544
573
  });