react-survey-builder 1.0.76 → 1.0.78

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/lib/form-steps.js CHANGED
@@ -1,17 +1,14 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
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
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
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 _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
6
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
7
- function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
8
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
9
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
10
3
  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; }
11
4
  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; }
12
5
  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; }
13
6
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
14
7
  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); }
8
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
9
+ 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."); }
10
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
11
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
15
12
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
16
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."); }
17
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); }
@@ -41,6 +38,7 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
41
38
  onSubmit = _ref.onSubmit,
42
39
  onChange = _ref.onChange,
43
40
  items = _ref.items,
41
+ activeStep = _ref.activeStep,
44
42
  _ref$submitButton = _ref.submitButton,
45
43
  submitButton = _ref$submitButton === void 0 ? false : _ref$submitButton,
46
44
  _ref$backButton = _ref.backButton,
@@ -56,6 +54,7 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
56
54
  checkboxButtonClassName = _ref.checkboxButtonClassName,
57
55
  headerClassName = _ref.headerClassName,
58
56
  labelClassName = _ref.labelClassName,
57
+ paragraphClassName = _ref.paragraphClassName,
59
58
  formId = _ref.formId,
60
59
  methods = _ref.methods,
61
60
  _ref$print = _ref.print,
@@ -79,14 +78,6 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
79
78
  _React$useState2 = _slicedToArray(_React$useState, 2),
80
79
  formAnswers = _React$useState2[0],
81
80
  setFormAnswers = _React$useState2[1];
82
- var _React$useState3 = React.useState([]),
83
- _React$useState4 = _slicedToArray(_React$useState3, 2),
84
- steps = _React$useState4[0],
85
- setSteps = _React$useState4[1];
86
- var _React$useState5 = React.useState(null),
87
- _React$useState6 = _slicedToArray(_React$useState5, 2),
88
- activeStep = _React$useState6[0],
89
- setActiveStep = _React$useState6[1];
90
81
  var _getDefaultValue = function _getDefaultValue($dataItem) {
91
82
  var defaultValue = answerData.current[$dataItem.fieldName];
92
83
  if ($dataItem.element === 'DatePicker') {
@@ -256,13 +247,13 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
256
247
  };
257
248
  var validateForm = function validateForm() {
258
249
  var hasErrors = false;
259
- var dataItems = items;
250
+ var $dataItems = _toConsumableArray(items);
260
251
  if (displayShort) {
261
- dataItems = items.filter(function (i) {
252
+ $dataItems = $dataItems.filter(function (i) {
262
253
  return i.alternateForm === true;
263
254
  });
264
255
  }
265
- dataItems.forEach(function (item) {
256
+ $dataItems.forEach(function (item) {
266
257
  if (_isIncorrect(item)) {
267
258
  if (methods) {
268
259
  methods.setError(item.fieldName, {
@@ -357,9 +348,10 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
357
348
  });
358
349
  };
359
350
  var getContainerElement = function getContainerElement(item, Element) {
360
- var controls = item === null || item === void 0 ? void 0 : item.childItems.map(function (childItem) {
361
- return childItem ? getInputElement(getDataItemById(childItem)) : /*#__PURE__*/React.createElement("div", null, "\xA0");
362
- });
351
+ var _item$childItems;
352
+ var controls = isObjectNotEmpty(item) && isListNotEmpty(item.childItems) ? item === null || item === void 0 || (_item$childItems = item.childItems) === null || _item$childItems === void 0 ? void 0 : _item$childItems.map(function (childItem) {
353
+ return childItem ? getFieldElement(getDataItemById(childItem)) : /*#__PURE__*/React.createElement("div", null, "\xA0");
354
+ }) : [];
363
355
  return /*#__PURE__*/React.createElement(Element, {
364
356
  mutable: true,
365
357
  key: "form_".concat(item.id),
@@ -376,7 +368,8 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
376
368
  key: "form_".concat(item.id),
377
369
  item: item,
378
370
  headerClassName: headerClassName,
379
- labelClassName: labelClassName
371
+ labelClassName: labelClassName,
372
+ paragraphClassName: paragraphClassName
380
373
  });
381
374
  };
382
375
  var getCustomElement = function getCustomElement(item) {
@@ -453,106 +446,14 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
453
446
  className: "btn-cancel"
454
447
  }, backName);
455
448
  };
456
-
457
- //#endregion
458
-
459
- var onBackStep = /*#__PURE__*/function () {
460
- var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
461
- var oldStep, previousIndex;
462
- return _regeneratorRuntime().wrap(function _callee$(_context) {
463
- while (1) switch (_context.prev = _context.next) {
464
- case 0:
465
- oldStep = steps.find(function (i) {
466
- return i.id === id;
467
- });
468
- previousIndex = oldStep.index - 1;
469
- setActiveStep(previousIndex > 0 ? steps[previousIndex] : null);
470
- case 3:
471
- case "end":
472
- return _context.stop();
473
- }
474
- }, _callee);
475
- }));
476
- return function onBackStep() {
477
- return _ref7.apply(this, arguments);
478
- };
479
- }();
480
- var onNextStep = /*#__PURE__*/function () {
481
- var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
482
- var oldStep, clean, updatedSteps, nextStep;
483
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
484
- while (1) switch (_context2.prev = _context2.next) {
485
- case 0:
486
- oldStep = isObjectNotEmpty(activeStep) ? _objectSpread({}, activeStep) : null;
487
- if (!oldStep) {
488
- _context2.next = 15;
489
- break;
490
- }
491
- console.log(oldStep);
492
- // validate childItems of step
493
- _context2.next = 5;
494
- return methods.trigger(oldStep.childQuestions.map(function (i) {
495
- return i.name;
496
- }), true);
497
- case 5:
498
- clean = _context2.sent;
499
- console.log(clean);
500
- if (!clean) {
501
- _context2.next = 14;
502
- break;
503
- }
504
- updatedSteps = updateRecord('id', _objectSpread(_objectSpread({}, oldStep), {}, {
505
- completed: true,
506
- answers: _collectFormData(oldStep.childQuestions, (methods === null || methods === void 0 ? void 0 : methods.getValues()) || [])
507
- }), _toConsumableArray(steps));
508
- setSteps(updatedSteps);
509
-
510
- // get next incomplete survey
511
- nextStep = steps.find(function (i) {
512
- return i.completed === false;
513
- });
514
- if (nextStep !== undefined) {
515
- setActiveStep(nextStep);
516
- } else {
517
- if (onFinishedSurveys) {
518
- onFinishedSurveys();
519
- }
520
- }
521
- _context2.next = 15;
522
- break;
523
- case 14:
524
- return _context2.abrupt("return");
525
- case 15:
526
- case "end":
527
- return _context2.stop();
528
- }
529
- }, _callee2);
530
- }));
531
- return function onNextStep() {
532
- return _ref8.apply(this, arguments);
533
- };
534
- }();
535
- var dataItems = items ? _toConsumableArray(items) : [];
536
- if (displayShort) {
537
- dataItems = items ? _toConsumableArray(items).filter(function (i) {
538
- return i.alternateForm === true;
539
- }) : [];
540
- }
541
- dataItems.forEach(function (item) {
542
- if (item && item.readOnly && item.variableKey && variables[item.variableKey]) {
543
- answerData.current[item.fieldName] = variables[item.variableKey];
544
- }
545
- });
546
- var stepItems = dataItems.filter(function (x) {
547
- return !x.parentId && x.element === 'Step';
548
- }).map(function (item) {
549
- var _ref9, _ref10, _ref11;
449
+ var getFieldElement = function getFieldElement(item) {
450
+ var _ref7, _ref8, _ref9;
550
451
  if (!item) return null;
551
452
  item.fieldRules = getFieldRules(item);
552
453
  item.print = print !== null && print !== void 0 ? print : false;
553
- item.readOnly = (_ref9 = readOnly || item.readOnly) !== null && _ref9 !== void 0 ? _ref9 : false;
554
- item.hideLabel = (_ref10 = hideLabels || item.hideLabel) !== null && _ref10 !== void 0 ? _ref10 : false;
555
- item.disabled = (_ref11 = readOnly || item.readOnly) !== null && _ref11 !== void 0 ? _ref11 : false;
454
+ item.readOnly = (_ref7 = readOnly || item.readOnly) !== null && _ref7 !== void 0 ? _ref7 : false;
455
+ item.hideLabel = (_ref8 = hideLabels || item.hideLabel) !== null && _ref8 !== void 0 ? _ref8 : false;
456
+ item.disabled = (_ref9 = readOnly || item.readOnly) !== null && _ref9 !== void 0 ? _ref9 : false;
556
457
  item.mutable = true;
557
458
  switch (item.element) {
558
459
  case 'RadioButtons':
@@ -590,19 +491,19 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
590
491
  defaultValue: _getDefaultValue(item),
591
492
  disabled: item.disabled,
592
493
  required: item.required,
593
- render: function render(_ref12) {
594
- var _ref12$field = _ref12.field,
595
- _onChange3 = _ref12$field.onChange,
596
- onBlur = _ref12$field.onBlur,
597
- value = _ref12$field.value,
598
- name = _ref12$field.name,
599
- ref = _ref12$field.ref,
600
- _ref12$fieldState = _ref12.fieldState,
601
- invalid = _ref12$fieldState.invalid,
602
- isTouched = _ref12$fieldState.isTouched,
603
- isDirty = _ref12$fieldState.isDirty,
604
- error = _ref12$fieldState.error,
605
- formState = _ref12.formState;
494
+ render: function render(_ref10) {
495
+ var _ref10$field = _ref10.field,
496
+ _onChange3 = _ref10$field.onChange,
497
+ onBlur = _ref10$field.onBlur,
498
+ value = _ref10$field.value,
499
+ name = _ref10$field.name,
500
+ ref = _ref10$field.ref,
501
+ _ref10$fieldState = _ref10.fieldState,
502
+ invalid = _ref10$fieldState.invalid,
503
+ isTouched = _ref10$fieldState.isTouched,
504
+ isDirty = _ref10$fieldState.isDirty,
505
+ error = _ref10$fieldState.error,
506
+ formState = _ref10.formState;
606
507
  return /*#__PURE__*/React.createElement(Signature, {
607
508
  methods: methods,
608
509
  onBlur: onBlur,
@@ -628,19 +529,19 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
628
529
  defaultValue: _optionsDefaultValue(item),
629
530
  disabled: item.disabled,
630
531
  required: item.required,
631
- render: function render(_ref13) {
632
- var _ref13$field = _ref13.field,
633
- _onChange4 = _ref13$field.onChange,
634
- onBlur = _ref13$field.onBlur,
635
- value = _ref13$field.value,
636
- name = _ref13$field.name,
637
- ref = _ref13$field.ref,
638
- _ref13$fieldState = _ref13.fieldState,
639
- invalid = _ref13$fieldState.invalid,
640
- isTouched = _ref13$fieldState.isTouched,
641
- isDirty = _ref13$fieldState.isDirty,
642
- error = _ref13$fieldState.error,
643
- formState = _ref13.formState;
532
+ render: function render(_ref11) {
533
+ var _ref11$field = _ref11.field,
534
+ _onChange4 = _ref11$field.onChange,
535
+ onBlur = _ref11$field.onBlur,
536
+ value = _ref11$field.value,
537
+ name = _ref11$field.name,
538
+ ref = _ref11$field.ref,
539
+ _ref11$fieldState = _ref11.fieldState,
540
+ invalid = _ref11$fieldState.invalid,
541
+ isTouched = _ref11$fieldState.isTouched,
542
+ isDirty = _ref11$fieldState.isDirty,
543
+ error = _ref11$fieldState.error,
544
+ formState = _ref11.formState;
644
545
  return /*#__PURE__*/React.createElement(Checkboxes, {
645
546
  onBlur: onBlur,
646
547
  onChange: function onChange(e) {
@@ -682,19 +583,19 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
682
583
  defaultValue: _getDefaultValue(item),
683
584
  disabled: item.disabled,
684
585
  required: item.required,
685
- render: function render(_ref14) {
686
- var _ref14$field = _ref14.field,
687
- _onChange5 = _ref14$field.onChange,
688
- onBlur = _ref14$field.onBlur,
689
- value = _ref14$field.value,
690
- name = _ref14$field.name,
691
- ref = _ref14$field.ref,
692
- _ref14$fieldState = _ref14.fieldState,
693
- invalid = _ref14$fieldState.invalid,
694
- isTouched = _ref14$fieldState.isTouched,
695
- isDirty = _ref14$fieldState.isDirty,
696
- error = _ref14$fieldState.error,
697
- formState = _ref14.formState;
586
+ render: function render(_ref12) {
587
+ var _ref12$field = _ref12.field,
588
+ _onChange5 = _ref12$field.onChange,
589
+ onBlur = _ref12$field.onBlur,
590
+ value = _ref12$field.value,
591
+ name = _ref12$field.name,
592
+ ref = _ref12$field.ref,
593
+ _ref12$fieldState = _ref12.fieldState,
594
+ invalid = _ref12$fieldState.invalid,
595
+ isTouched = _ref12$fieldState.isTouched,
596
+ isDirty = _ref12$fieldState.isDirty,
597
+ error = _ref12$fieldState.error,
598
+ formState = _ref12.formState;
698
599
  return /*#__PURE__*/React.createElement(Camera, {
699
600
  onBlur: onBlur,
700
601
  onChange: function onChange(e) {
@@ -720,19 +621,19 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
720
621
  defaultValue: _getDefaultValue(item),
721
622
  disabled: item.disabled,
722
623
  required: item.required,
723
- render: function render(_ref15) {
724
- var _ref15$field = _ref15.field,
725
- _onChange6 = _ref15$field.onChange,
726
- onBlur = _ref15$field.onBlur,
727
- value = _ref15$field.value,
728
- name = _ref15$field.name,
729
- ref = _ref15$field.ref,
730
- _ref15$fieldState = _ref15.fieldState,
731
- invalid = _ref15$fieldState.invalid,
732
- isTouched = _ref15$fieldState.isTouched,
733
- isDirty = _ref15$fieldState.isDirty,
734
- error = _ref15$fieldState.error,
735
- formState = _ref15.formState;
624
+ render: function render(_ref13) {
625
+ var _ref13$field = _ref13.field,
626
+ _onChange6 = _ref13$field.onChange,
627
+ onBlur = _ref13$field.onBlur,
628
+ value = _ref13$field.value,
629
+ name = _ref13$field.name,
630
+ ref = _ref13$field.ref,
631
+ _ref13$fieldState = _ref13.fieldState,
632
+ invalid = _ref13$fieldState.invalid,
633
+ isTouched = _ref13$fieldState.isTouched,
634
+ isDirty = _ref13$fieldState.isDirty,
635
+ error = _ref13$fieldState.error,
636
+ formState = _ref13.formState;
736
637
  return /*#__PURE__*/React.createElement(FileUpload, {
737
638
  onBlur: onBlur,
738
639
  onChange: function onChange(e) {
@@ -752,26 +653,26 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
752
653
  default:
753
654
  return getSimpleElement(item);
754
655
  }
755
- });
756
- React.useMemo(function () {
757
- if (isListNotEmpty(stepItems)) {
758
- var surveySteps = stepItems.map(function (step, index) {
759
- return _objectSpread(_objectSpread({}, step), {}, {
760
- childQuestions: dataItems.filter(function (i) {
761
- return step.id === i.parentId;
762
- }),
763
- completed: false,
764
- answers: []
765
- });
766
- });
767
- setSteps(surveySteps);
768
- if (isListNotEmpty(surveySteps)) {
769
- setActiveStep(surveySteps[0]);
770
- } else {
771
- setActiveStep(null);
772
- }
656
+ };
657
+
658
+ //#endregion
659
+
660
+ var dataItems = activeStep ? [activeStep] : [];
661
+ if (displayShort) {
662
+ dataItems = activeStep ? [activeStep].filter(function (i) {
663
+ return i.alternateForm === true;
664
+ }) : [];
665
+ }
666
+ dataItems.forEach(function (item) {
667
+ if (item && item.readOnly && item.variableKey && variables[item.variableKey]) {
668
+ answerData.current[item.fieldName] = variables[item.variableKey];
773
669
  }
774
- }, []);
670
+ });
671
+ var stepItems = dataItems.filter(function (x) {
672
+ return !x.parentId && x.element === 'Step';
673
+ }).map(function (item) {
674
+ return getFieldElement(item);
675
+ });
775
676
  var formProps = {};
776
677
  if (formId) {
777
678
  formProps.id = formId;
@@ -780,14 +681,8 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
780
681
  className: "react-survey-builder-form"
781
682
  }, /*#__PURE__*/React.createElement(FormProvider, methods, /*#__PURE__*/React.createElement(Form, _extends({
782
683
  onSubmit: methods.handleSubmit(handleSubmit)
783
- }, formProps), activeStep, /*#__PURE__*/React.createElement("div", {
684
+ }, formProps), stepItems, /*#__PURE__*/React.createElement("div", {
784
685
  className: buttonClassName ? buttonClassName : 'btn-toolbar'
785
- }, !hideActions && handleRenderSubmit(), !hideActions && backAction && handleRenderBack(), /*#__PURE__*/React.createElement(Button, {
786
- variant: "secondary",
787
- onClick: onBackStep
788
- }, "Back"), /*#__PURE__*/React.createElement(Button, {
789
- variant: "primary",
790
- onClick: onNextStep
791
- }, "Next"))))));
686
+ }, !hideActions && handleRenderSubmit(), !hideActions && backAction && handleRenderBack())))));
792
687
  };
793
688
  export default ReactSurveyFormSteps;
package/lib/form.js CHANGED
@@ -25,6 +25,7 @@ import CustomElement from './survey-elements/custom-element';
25
25
  import Registry from './stores/registry';
26
26
  import { Button, Form } from 'react-bootstrap';
27
27
  import { Controller, FormProvider, useForm } from "react-hook-form";
28
+ import { isListNotEmpty, isObjectNotEmpty } from './utils/objectUtils';
28
29
  var ReactSurvey = function ReactSurvey(_ref) {
29
30
  var _ref$validateForCorre = _ref.validateForCorrectness,
30
31
  validateForCorrectness = _ref$validateForCorre === void 0 ? false : _ref$validateForCorre,
@@ -52,6 +53,7 @@ var ReactSurvey = function ReactSurvey(_ref) {
52
53
  checkboxButtonClassName = _ref.checkboxButtonClassName,
53
54
  headerClassName = _ref.headerClassName,
54
55
  labelClassName = _ref.labelClassName,
56
+ paragraphClassName = _ref.paragraphClassName,
55
57
  formId = _ref.formId,
56
58
  _ref$print = _ref.print,
57
59
  print = _ref$print === void 0 ? false : _ref$print;
@@ -356,9 +358,10 @@ var ReactSurvey = function ReactSurvey(_ref) {
356
358
  });
357
359
  };
358
360
  var getContainerElement = function getContainerElement(item, Element) {
359
- var controls = item === null || item === void 0 ? void 0 : item.childItems.map(function (childItem) {
360
- return childItem ? getInputElement(getDataItemById(childItem)) : /*#__PURE__*/React.createElement("div", null, "\xA0");
361
- });
361
+ var _item$childItems;
362
+ var controls = isObjectNotEmpty(item) && isListNotEmpty(item.childItems) ? item === null || item === void 0 || (_item$childItems = item.childItems) === null || _item$childItems === void 0 ? void 0 : _item$childItems.map(function (childItem) {
363
+ return childItem ? getFieldElement(getDataItemById(childItem)) : /*#__PURE__*/React.createElement("div", null, "\xA0");
364
+ }) : [];
362
365
  return /*#__PURE__*/React.createElement(Element, {
363
366
  mutable: true,
364
367
  key: "form_".concat(item.id),
@@ -375,7 +378,8 @@ var ReactSurvey = function ReactSurvey(_ref) {
375
378
  key: "form_".concat(item.id),
376
379
  item: item,
377
380
  headerClassName: headerClassName,
378
- labelClassName: labelClassName
381
+ labelClassName: labelClassName,
382
+ paragraphClassName: paragraphClassName
379
383
  });
380
384
  };
381
385
  var getCustomElement = function getCustomElement(item) {
@@ -452,23 +456,7 @@ var ReactSurvey = function ReactSurvey(_ref) {
452
456
  className: "btn-cancel"
453
457
  }, backName);
454
458
  };
455
-
456
- //#endregion
457
-
458
- var dataItems = items ? _toConsumableArray(items) : [];
459
- if (displayShort) {
460
- dataItems = items ? _toConsumableArray(items).filter(function (i) {
461
- return i.alternateForm === true;
462
- }) : [];
463
- }
464
- dataItems.forEach(function (item) {
465
- if (item && item.readOnly && item.variableKey && variables[item.variableKey]) {
466
- answerData.current[item.fieldName] = variables[item.variableKey];
467
- }
468
- });
469
- var fieldItems = dataItems.filter(function (x) {
470
- return !x.parentId;
471
- }).map(function (item) {
459
+ var getFieldElement = function getFieldElement(item) {
472
460
  var _ref7, _ref8, _ref9;
473
461
  if (!item) return null;
474
462
  item.fieldRules = getFieldRules(item);
@@ -675,6 +663,25 @@ var ReactSurvey = function ReactSurvey(_ref) {
675
663
  default:
676
664
  return getSimpleElement(item);
677
665
  }
666
+ };
667
+
668
+ //#endregion
669
+
670
+ var dataItems = items ? _toConsumableArray(items) : [];
671
+ if (displayShort) {
672
+ dataItems = items ? _toConsumableArray(items).filter(function (i) {
673
+ return i.alternateForm === true;
674
+ }) : [];
675
+ }
676
+ dataItems.forEach(function (item) {
677
+ if (item && item.readOnly && item.variableKey && variables[item.variableKey]) {
678
+ answerData.current[item.fieldName] = variables[item.variableKey];
679
+ }
680
+ });
681
+ var fieldItems = dataItems.filter(function (x) {
682
+ return !x.parentId;
683
+ }).map(function (item) {
684
+ return getFieldElement(item);
678
685
  });
679
686
  var formProps = {};
680
687
  if (formId) {
package/lib/index.js CHANGED
@@ -89,11 +89,11 @@ var ReactSurveyBuilder = function ReactSurveyBuilder(_ref) {
89
89
  }, /*#__PURE__*/React.createElement(Toolbar, {
90
90
  toolbarTop: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("h3", null, surveyName !== null && surveyName !== void 0 ? surveyName : 'Preview')), /*#__PURE__*/React.createElement("div", {
91
91
  className: "d-grid gap-3 mb-3"
92
- }, !!!saveAlways && /*#__PURE__*/React.createElement(Button, {
92
+ }, !!!saveAlways ? /*#__PURE__*/React.createElement(Button, {
93
93
  onClick: function onClick() {
94
94
  saveFormData();
95
95
  }
96
- }, saveSurveyName || 'Save Survey'), previewSurveyBlock ? previewSurveyBlock : null)),
96
+ }, saveSurveyName || 'Save Survey') : null, previewSurveyBlock ? previewSurveyBlock : null)),
97
97
  showDescription: showDescription,
98
98
  items: toolbarItems,
99
99
  customItems: customToolbarItems
@@ -250,4 +250,4 @@ SurveyBuilders.ElementStore = store;
250
250
  SurveyBuilders.Registry = Registry;
251
251
  SurveyBuilders.cleanUpSurveyItems = cleanUpSurveyItems;
252
252
  export default SurveyBuilders;
253
- export { cleanUpSurveyItems, ReactSurveyBuilder, ReactSurveyGenerator, ReactSurveyFieldGenerator, store as ElementStore, Registry };
253
+ export { cleanUpSurveyItems, ReactSurveyBuilder, ReactSurveyGenerator, ReactSurveyFieldGenerator, ReactSurveyStepGenerator, store as ElementStore, Registry };
@@ -15,6 +15,7 @@ import ItemTypes from '../ItemTypes';
15
15
  import CustomElement from '../survey-elements/custom-element';
16
16
  import Registry from '../stores/registry';
17
17
  import store from '../stores/store';
18
+ import { isListNotEmpty } from '../utils/objectUtils';
18
19
  function getCustomElement(item, props) {
19
20
  var _item$fieldName;
20
21
  if (!item.component || typeof item.component !== 'function') {
@@ -93,7 +94,7 @@ var Dustbin = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
93
94
  col = _ref.col,
94
95
  getItemById = _ref.getItemById,
95
96
  otherProps = _objectWithoutProperties(_ref, _excluded);
96
- var item = getItemById(items[col]);
97
+ var item = isListNotEmpty(items) ? getItemById(items[col]) : null;
97
98
  React.useImperativeHandle(ref, function () {
98
99
  return {
99
100
  onDrop: function onDrop(dropped) {
package/lib/step/Step.js CHANGED
@@ -27,7 +27,6 @@ import { Col, Container, Row } from "react-bootstrap";
27
27
  import { isListNotEmpty, isObjectNotEmpty } from "../utils/objectUtils";
28
28
  var accepts = [ItemTypes.BOX, ItemTypes.CARD];
29
29
  var StepBase = function StepBase(_ref) {
30
- var _item$conditional;
31
30
  var item = _ref.item,
32
31
  controls = _ref.controls,
33
32
  items = _ref.items,
@@ -45,14 +44,12 @@ var StepBase = function StepBase(_ref) {
45
44
  if (pageBreakBefore) {
46
45
  baseClasses += " alwaysbreak";
47
46
  }
48
- var _React$useState = React.useState((_item$conditional = item === null || item === void 0 ? void 0 : item.conditional) !== null && _item$conditional !== void 0 ? _item$conditional : false),
47
+
48
+ // const [hidden, setHidden] = React.useState(item?.conditional ?? false);
49
+ var _React$useState = React.useState(isObjectNotEmpty(item) && isListNotEmpty(item === null || item === void 0 ? void 0 : item.childItems) ? _toConsumableArray(item === null || item === void 0 ? void 0 : item.childItems) : [null]),
49
50
  _React$useState2 = _slicedToArray(_React$useState, 2),
50
- hidden = _React$useState2[0],
51
- setHidden = _React$useState2[1];
52
- var _React$useState3 = React.useState(isObjectNotEmpty(item) && isListNotEmpty(item === null || item === void 0 ? void 0 : item.childItems) ? _toConsumableArray(item === null || item === void 0 ? void 0 : item.childItems) : [null]),
53
- _React$useState4 = _slicedToArray(_React$useState3, 2),
54
- childItemIds = _React$useState4[0],
55
- setChildItemIds = _React$useState4[1];
51
+ childItemIds = _React$useState2[0],
52
+ setChildItemIds = _React$useState2[1];
56
53
  var _onDropSuccess = function onDropSuccess(droppedIndex) {
57
54
  // let updatedItem = isObjectNotEmpty(item) ? { ...item } : {};
58
55
  // let existingChildItemIds = isListNotEmpty(updatedItem.childItems) ? [...updatedItem.childItems] : [null];
@@ -71,42 +68,6 @@ var StepBase = function StepBase(_ref) {
71
68
  setChildItemIds([null]);
72
69
  }
73
70
  }, [item]);
74
- React.useEffect(function () {
75
- // console.log('all items', items);
76
- var hideStep = false;
77
- if ((item === null || item === void 0 ? void 0 : item.conditional) === true) {
78
- hideStep = true;
79
- if (item.conditionalFieldName && item.conditionalFieldValue && answers !== undefined && answers !== null && answers.length > 0) {
80
- var answerField = answers.find(function (i) {
81
- return i.name === item.conditionalFieldName;
82
- });
83
- if (answerField !== undefined && (answerField === null || answerField === void 0 ? void 0 : answerField.value) !== undefined) {
84
- if (Array.isArray(item.conditionalFieldValue)) {
85
- if (Array.isArray(answerField === null || answerField === void 0 ? void 0 : answerField.value)) {
86
- var match = item.conditionalFieldValue.some(function (i) {
87
- return answerField.value.includes(i);
88
- });
89
- if (match) {
90
- hideStep = false;
91
- }
92
- } else if (item.conditionalFieldValue.includes(answerField.value)) {
93
- hideStep = false;
94
- }
95
- } else {
96
- if (Array.isArray(answerField === null || answerField === void 0 ? void 0 : answerField.value)) {
97
- var _match = answerField.value.includes(item.conditionalFieldValue);
98
- if (_match) {
99
- hideStep = false;
100
- }
101
- } else if (item.conditionalFieldValue === answerField.value) {
102
- hideStep = false;
103
- }
104
- }
105
- }
106
- }
107
- }
108
- setHidden(hideStep);
109
- }, [item, answers]);
110
71
  return /*#__PURE__*/React.createElement("div", {
111
72
  style: _objectSpread({}, style),
112
73
  className: baseClasses
@@ -114,9 +75,10 @@ var StepBase = function StepBase(_ref) {
114
75
  item: item,
115
76
  index: index,
116
77
  editModeOn: editModeOn,
117
- setAsChild: setAsChild
118
- }, otherProps)), /*#__PURE__*/React.createElement("fieldset", {
119
- className: hidden ? 'w-100 d-none' : 'w-100'
78
+ setAsChild: setAsChild,
79
+ isStep: true
80
+ }, otherProps)), /*#__PURE__*/React.createElement("div", {
81
+ className: 'd-grid w-100'
120
82
  }, childItemIds === null || childItemIds === void 0 ? void 0 : childItemIds.map(function (childItemId, childItemIndex) {
121
83
  return /*#__PURE__*/React.createElement("div", {
122
84
  key: "".concat(childItemIndex, "_").concat(childItemId || "_")
@@ -2,7 +2,10 @@ import React from 'react';
2
2
  import HeaderBar from './header-bar';
3
3
  var ComponentHeader = function ComponentHeader(_ref) {
4
4
  var item = _ref.item,
5
- isFieldSet = _ref.isFieldSet,
5
+ _ref$isFieldSet = _ref.isFieldSet,
6
+ isFieldSet = _ref$isFieldSet === void 0 ? false : _ref$isFieldSet,
7
+ _ref$isStep = _ref.isStep,
8
+ isStep = _ref$isStep === void 0 ? false : _ref$isStep,
6
9
  index = _ref.index,
7
10
  editModeOn = _ref.editModeOn,
8
11
  setAsChild = _ref.setAsChild,
@@ -15,6 +18,7 @@ var ComponentHeader = function ComponentHeader(_ref) {
15
18
  className: "preview-page-break"
16
19
  }, "Page Break"), /*#__PURE__*/React.createElement(HeaderBar, {
17
20
  isFieldSet: isFieldSet,
21
+ isStep: isStep,
18
22
  editModeOn: editModeOn,
19
23
  item: item,
20
24
  index: index,