react-survey-builder 1.0.76 → 1.0.77
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/dist/bundle.js +8 -8
- package/dist/src_survey-elements-edit_jsx.bundle.js +1 -1
- package/lib/form-fields.js +25 -20
- package/lib/form-steps.js +156 -152
- package/lib/form.js +25 -20
- package/lib/index.js +3 -3
- package/lib/multi-column/dustbin.js +2 -1
- package/lib/step/Step.js +45 -47
- package/lib/survey-elements/component-header.js +5 -1
- package/lib/survey-elements/header-bar.js +4 -2
- package/lib/survey-elements-edit.js +1 -0
- package/package.json +1 -1
- package/types/index.d.ts +3 -0
package/lib/form-steps.js
CHANGED
@@ -357,9 +357,10 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
|
|
357
357
|
});
|
358
358
|
};
|
359
359
|
var getContainerElement = function getContainerElement(item, Element) {
|
360
|
-
var
|
361
|
-
|
362
|
-
|
360
|
+
var _item$childItems;
|
361
|
+
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) {
|
362
|
+
return childItem ? getFieldElement(getDataItemById(childItem)) : /*#__PURE__*/React.createElement("div", null, "\xA0");
|
363
|
+
}) : [];
|
363
364
|
return /*#__PURE__*/React.createElement(Element, {
|
364
365
|
mutable: true,
|
365
366
|
key: "form_".concat(item.id),
|
@@ -453,106 +454,14 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
|
|
453
454
|
className: "btn-cancel"
|
454
455
|
}, backName);
|
455
456
|
};
|
456
|
-
|
457
|
-
|
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;
|
457
|
+
var getFieldElement = function getFieldElement(item) {
|
458
|
+
var _ref7, _ref8, _ref9;
|
550
459
|
if (!item) return null;
|
551
460
|
item.fieldRules = getFieldRules(item);
|
552
461
|
item.print = print !== null && print !== void 0 ? print : false;
|
553
|
-
item.readOnly = (
|
554
|
-
item.hideLabel = (
|
555
|
-
item.disabled = (
|
462
|
+
item.readOnly = (_ref7 = readOnly || item.readOnly) !== null && _ref7 !== void 0 ? _ref7 : false;
|
463
|
+
item.hideLabel = (_ref8 = hideLabels || item.hideLabel) !== null && _ref8 !== void 0 ? _ref8 : false;
|
464
|
+
item.disabled = (_ref9 = readOnly || item.readOnly) !== null && _ref9 !== void 0 ? _ref9 : false;
|
556
465
|
item.mutable = true;
|
557
466
|
switch (item.element) {
|
558
467
|
case 'RadioButtons':
|
@@ -590,19 +499,19 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
|
|
590
499
|
defaultValue: _getDefaultValue(item),
|
591
500
|
disabled: item.disabled,
|
592
501
|
required: item.required,
|
593
|
-
render: function render(
|
594
|
-
var
|
595
|
-
_onChange3 =
|
596
|
-
onBlur =
|
597
|
-
value =
|
598
|
-
name =
|
599
|
-
ref =
|
600
|
-
|
601
|
-
invalid =
|
602
|
-
isTouched =
|
603
|
-
isDirty =
|
604
|
-
error =
|
605
|
-
formState =
|
502
|
+
render: function render(_ref10) {
|
503
|
+
var _ref10$field = _ref10.field,
|
504
|
+
_onChange3 = _ref10$field.onChange,
|
505
|
+
onBlur = _ref10$field.onBlur,
|
506
|
+
value = _ref10$field.value,
|
507
|
+
name = _ref10$field.name,
|
508
|
+
ref = _ref10$field.ref,
|
509
|
+
_ref10$fieldState = _ref10.fieldState,
|
510
|
+
invalid = _ref10$fieldState.invalid,
|
511
|
+
isTouched = _ref10$fieldState.isTouched,
|
512
|
+
isDirty = _ref10$fieldState.isDirty,
|
513
|
+
error = _ref10$fieldState.error,
|
514
|
+
formState = _ref10.formState;
|
606
515
|
return /*#__PURE__*/React.createElement(Signature, {
|
607
516
|
methods: methods,
|
608
517
|
onBlur: onBlur,
|
@@ -628,19 +537,19 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
|
|
628
537
|
defaultValue: _optionsDefaultValue(item),
|
629
538
|
disabled: item.disabled,
|
630
539
|
required: item.required,
|
631
|
-
render: function render(
|
632
|
-
var
|
633
|
-
_onChange4 =
|
634
|
-
onBlur =
|
635
|
-
value =
|
636
|
-
name =
|
637
|
-
ref =
|
638
|
-
|
639
|
-
invalid =
|
640
|
-
isTouched =
|
641
|
-
isDirty =
|
642
|
-
error =
|
643
|
-
formState =
|
540
|
+
render: function render(_ref11) {
|
541
|
+
var _ref11$field = _ref11.field,
|
542
|
+
_onChange4 = _ref11$field.onChange,
|
543
|
+
onBlur = _ref11$field.onBlur,
|
544
|
+
value = _ref11$field.value,
|
545
|
+
name = _ref11$field.name,
|
546
|
+
ref = _ref11$field.ref,
|
547
|
+
_ref11$fieldState = _ref11.fieldState,
|
548
|
+
invalid = _ref11$fieldState.invalid,
|
549
|
+
isTouched = _ref11$fieldState.isTouched,
|
550
|
+
isDirty = _ref11$fieldState.isDirty,
|
551
|
+
error = _ref11$fieldState.error,
|
552
|
+
formState = _ref11.formState;
|
644
553
|
return /*#__PURE__*/React.createElement(Checkboxes, {
|
645
554
|
onBlur: onBlur,
|
646
555
|
onChange: function onChange(e) {
|
@@ -682,19 +591,19 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
|
|
682
591
|
defaultValue: _getDefaultValue(item),
|
683
592
|
disabled: item.disabled,
|
684
593
|
required: item.required,
|
685
|
-
render: function render(
|
686
|
-
var
|
687
|
-
_onChange5 =
|
688
|
-
onBlur =
|
689
|
-
value =
|
690
|
-
name =
|
691
|
-
ref =
|
692
|
-
|
693
|
-
invalid =
|
694
|
-
isTouched =
|
695
|
-
isDirty =
|
696
|
-
error =
|
697
|
-
formState =
|
594
|
+
render: function render(_ref12) {
|
595
|
+
var _ref12$field = _ref12.field,
|
596
|
+
_onChange5 = _ref12$field.onChange,
|
597
|
+
onBlur = _ref12$field.onBlur,
|
598
|
+
value = _ref12$field.value,
|
599
|
+
name = _ref12$field.name,
|
600
|
+
ref = _ref12$field.ref,
|
601
|
+
_ref12$fieldState = _ref12.fieldState,
|
602
|
+
invalid = _ref12$fieldState.invalid,
|
603
|
+
isTouched = _ref12$fieldState.isTouched,
|
604
|
+
isDirty = _ref12$fieldState.isDirty,
|
605
|
+
error = _ref12$fieldState.error,
|
606
|
+
formState = _ref12.formState;
|
698
607
|
return /*#__PURE__*/React.createElement(Camera, {
|
699
608
|
onBlur: onBlur,
|
700
609
|
onChange: function onChange(e) {
|
@@ -720,19 +629,19 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
|
|
720
629
|
defaultValue: _getDefaultValue(item),
|
721
630
|
disabled: item.disabled,
|
722
631
|
required: item.required,
|
723
|
-
render: function render(
|
724
|
-
var
|
725
|
-
_onChange6 =
|
726
|
-
onBlur =
|
727
|
-
value =
|
728
|
-
name =
|
729
|
-
ref =
|
730
|
-
|
731
|
-
invalid =
|
732
|
-
isTouched =
|
733
|
-
isDirty =
|
734
|
-
error =
|
735
|
-
formState =
|
632
|
+
render: function render(_ref13) {
|
633
|
+
var _ref13$field = _ref13.field,
|
634
|
+
_onChange6 = _ref13$field.onChange,
|
635
|
+
onBlur = _ref13$field.onBlur,
|
636
|
+
value = _ref13$field.value,
|
637
|
+
name = _ref13$field.name,
|
638
|
+
ref = _ref13$field.ref,
|
639
|
+
_ref13$fieldState = _ref13.fieldState,
|
640
|
+
invalid = _ref13$fieldState.invalid,
|
641
|
+
isTouched = _ref13$fieldState.isTouched,
|
642
|
+
isDirty = _ref13$fieldState.isDirty,
|
643
|
+
error = _ref13$fieldState.error,
|
644
|
+
formState = _ref13.formState;
|
736
645
|
return /*#__PURE__*/React.createElement(FileUpload, {
|
737
646
|
onBlur: onBlur,
|
738
647
|
onChange: function onChange(e) {
|
@@ -752,6 +661,101 @@ var ReactSurveyFormSteps = function ReactSurveyFormSteps(_ref) {
|
|
752
661
|
default:
|
753
662
|
return getSimpleElement(item);
|
754
663
|
}
|
664
|
+
};
|
665
|
+
|
666
|
+
//#endregion
|
667
|
+
|
668
|
+
var onBackStep = /*#__PURE__*/function () {
|
669
|
+
var _ref14 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
670
|
+
var oldStep, previousIndex;
|
671
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
672
|
+
while (1) switch (_context.prev = _context.next) {
|
673
|
+
case 0:
|
674
|
+
oldStep = steps.find(function (i) {
|
675
|
+
return i.id === id;
|
676
|
+
});
|
677
|
+
previousIndex = oldStep.index - 1;
|
678
|
+
setActiveStep(previousIndex > 0 ? steps[previousIndex] : null);
|
679
|
+
case 3:
|
680
|
+
case "end":
|
681
|
+
return _context.stop();
|
682
|
+
}
|
683
|
+
}, _callee);
|
684
|
+
}));
|
685
|
+
return function onBackStep() {
|
686
|
+
return _ref14.apply(this, arguments);
|
687
|
+
};
|
688
|
+
}();
|
689
|
+
var onNextStep = /*#__PURE__*/function () {
|
690
|
+
var _ref15 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
691
|
+
var oldStep, clean, updatedSteps, nextStep;
|
692
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
693
|
+
while (1) switch (_context2.prev = _context2.next) {
|
694
|
+
case 0:
|
695
|
+
oldStep = isObjectNotEmpty(activeStep) ? _objectSpread({}, activeStep) : null;
|
696
|
+
if (!oldStep) {
|
697
|
+
_context2.next = 15;
|
698
|
+
break;
|
699
|
+
}
|
700
|
+
console.log(oldStep);
|
701
|
+
// validate childItems of step
|
702
|
+
_context2.next = 5;
|
703
|
+
return methods.trigger(oldStep.childQuestions.map(function (i) {
|
704
|
+
return i.name;
|
705
|
+
}), true);
|
706
|
+
case 5:
|
707
|
+
clean = _context2.sent;
|
708
|
+
console.log(clean);
|
709
|
+
if (!clean) {
|
710
|
+
_context2.next = 14;
|
711
|
+
break;
|
712
|
+
}
|
713
|
+
updatedSteps = updateRecord('id', _objectSpread(_objectSpread({}, oldStep), {}, {
|
714
|
+
completed: true,
|
715
|
+
answers: _collectFormData(oldStep.childQuestions, (methods === null || methods === void 0 ? void 0 : methods.getValues()) || [])
|
716
|
+
}), _toConsumableArray(steps));
|
717
|
+
setSteps(updatedSteps);
|
718
|
+
|
719
|
+
// get next incomplete survey
|
720
|
+
nextStep = steps.find(function (i) {
|
721
|
+
return i.completed === false;
|
722
|
+
});
|
723
|
+
if (nextStep !== undefined) {
|
724
|
+
setActiveStep(nextStep);
|
725
|
+
} else {
|
726
|
+
if (onFinishedSurveys) {
|
727
|
+
onFinishedSurveys();
|
728
|
+
}
|
729
|
+
}
|
730
|
+
_context2.next = 15;
|
731
|
+
break;
|
732
|
+
case 14:
|
733
|
+
return _context2.abrupt("return");
|
734
|
+
case 15:
|
735
|
+
case "end":
|
736
|
+
return _context2.stop();
|
737
|
+
}
|
738
|
+
}, _callee2);
|
739
|
+
}));
|
740
|
+
return function onNextStep() {
|
741
|
+
return _ref15.apply(this, arguments);
|
742
|
+
};
|
743
|
+
}();
|
744
|
+
var dataItems = items ? _toConsumableArray(items) : [];
|
745
|
+
if (displayShort) {
|
746
|
+
dataItems = items ? _toConsumableArray(items).filter(function (i) {
|
747
|
+
return i.alternateForm === true;
|
748
|
+
}) : [];
|
749
|
+
}
|
750
|
+
dataItems.forEach(function (item) {
|
751
|
+
if (item && item.readOnly && item.variableKey && variables[item.variableKey]) {
|
752
|
+
answerData.current[item.fieldName] = variables[item.variableKey];
|
753
|
+
}
|
754
|
+
});
|
755
|
+
var stepItems = dataItems.filter(function (x) {
|
756
|
+
return !x.parentId && x.element === 'Step';
|
757
|
+
}).map(function (item) {
|
758
|
+
return getFieldElement(item);
|
755
759
|
});
|
756
760
|
React.useMemo(function () {
|
757
761
|
if (isListNotEmpty(stepItems)) {
|
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,
|
@@ -356,9 +357,10 @@ var ReactSurvey = function ReactSurvey(_ref) {
|
|
356
357
|
});
|
357
358
|
};
|
358
359
|
var getContainerElement = function getContainerElement(item, Element) {
|
359
|
-
var
|
360
|
-
|
361
|
-
|
360
|
+
var _item$childItems;
|
361
|
+
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) {
|
362
|
+
return childItem ? getFieldElement(getDataItemById(childItem)) : /*#__PURE__*/React.createElement("div", null, "\xA0");
|
363
|
+
}) : [];
|
362
364
|
return /*#__PURE__*/React.createElement(Element, {
|
363
365
|
mutable: true,
|
364
366
|
key: "form_".concat(item.id),
|
@@ -452,23 +454,7 @@ var ReactSurvey = function ReactSurvey(_ref) {
|
|
452
454
|
className: "btn-cancel"
|
453
455
|
}, backName);
|
454
456
|
};
|
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) {
|
457
|
+
var getFieldElement = function getFieldElement(item) {
|
472
458
|
var _ref7, _ref8, _ref9;
|
473
459
|
if (!item) return null;
|
474
460
|
item.fieldRules = getFieldRules(item);
|
@@ -675,6 +661,25 @@ var ReactSurvey = function ReactSurvey(_ref) {
|
|
675
661
|
default:
|
676
662
|
return getSimpleElement(item);
|
677
663
|
}
|
664
|
+
};
|
665
|
+
|
666
|
+
//#endregion
|
667
|
+
|
668
|
+
var dataItems = items ? _toConsumableArray(items) : [];
|
669
|
+
if (displayShort) {
|
670
|
+
dataItems = items ? _toConsumableArray(items).filter(function (i) {
|
671
|
+
return i.alternateForm === true;
|
672
|
+
}) : [];
|
673
|
+
}
|
674
|
+
dataItems.forEach(function (item) {
|
675
|
+
if (item && item.readOnly && item.variableKey && variables[item.variableKey]) {
|
676
|
+
answerData.current[item.fieldName] = variables[item.variableKey];
|
677
|
+
}
|
678
|
+
});
|
679
|
+
var fieldItems = dataItems.filter(function (x) {
|
680
|
+
return !x.parentId;
|
681
|
+
}).map(function (item) {
|
682
|
+
return getFieldElement(item);
|
678
683
|
});
|
679
684
|
var formProps = {};
|
680
685
|
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
|
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
|
-
|
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
|
-
|
51
|
-
|
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,42 @@ var StepBase = function StepBase(_ref) {
|
|
71
68
|
setChildItemIds([null]);
|
72
69
|
}
|
73
70
|
}, [item]);
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
71
|
+
|
72
|
+
// React.useEffect(() => {
|
73
|
+
// // console.log('all items', items);
|
74
|
+
// let hideStep = false;
|
75
|
+
// if (item?.conditional === true) {
|
76
|
+
// hideStep = true;
|
77
|
+
// if (item.conditionalFieldName && item.conditionalFieldValue && answers !== undefined && answers !== null && answers.length > 0) {
|
78
|
+
// const answerField = answers.find(i => i.name === item.conditionalFieldName);
|
79
|
+
// if (answerField !== undefined && answerField?.value !== undefined) {
|
80
|
+
// if (Array.isArray(item.conditionalFieldValue)) {
|
81
|
+
// if (Array.isArray(answerField?.value)) {
|
82
|
+
// let match = item.conditionalFieldValue.some(i => answerField.value.includes(i));
|
83
|
+
// if (match) {
|
84
|
+
// hideStep = false;
|
85
|
+
// }
|
86
|
+
// } else if (item.conditionalFieldValue.includes(answerField.value)) {
|
87
|
+
// hideStep = false;
|
88
|
+
// }
|
89
|
+
// } else {
|
90
|
+
// if (Array.isArray(answerField?.value)) {
|
91
|
+
// let match = answerField.value.includes(item.conditionalFieldValue);
|
92
|
+
// if (match) {
|
93
|
+
// hideStep = false;
|
94
|
+
// }
|
95
|
+
// } else if (item.conditionalFieldValue === answerField.value) {
|
96
|
+
// hideStep = false;
|
97
|
+
// }
|
98
|
+
// }
|
99
|
+
// }
|
100
|
+
// }
|
101
|
+
// }
|
102
|
+
|
103
|
+
// setHidden(hideStep);
|
104
|
+
// }, [item, answers]);
|
105
|
+
|
106
|
+
console.log('controls', controls);
|
110
107
|
return /*#__PURE__*/React.createElement("div", {
|
111
108
|
style: _objectSpread({}, style),
|
112
109
|
className: baseClasses
|
@@ -114,9 +111,10 @@ var StepBase = function StepBase(_ref) {
|
|
114
111
|
item: item,
|
115
112
|
index: index,
|
116
113
|
editModeOn: editModeOn,
|
117
|
-
setAsChild: setAsChild
|
118
|
-
|
119
|
-
|
114
|
+
setAsChild: setAsChild,
|
115
|
+
isStep: true
|
116
|
+
}, otherProps)), /*#__PURE__*/React.createElement("div", {
|
117
|
+
className: 'd-grid w-100'
|
120
118
|
}, childItemIds === null || childItemIds === void 0 ? void 0 : childItemIds.map(function (childItemId, childItemIndex) {
|
121
119
|
return /*#__PURE__*/React.createElement("div", {
|
122
120
|
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,
|
@@ -7,12 +7,14 @@ var HeaderBar = function HeaderBar(_ref) {
|
|
7
7
|
editModeOn = _ref.editModeOn,
|
8
8
|
onDestroy = _ref.onDestroy,
|
9
9
|
setAsChild = _ref.setAsChild,
|
10
|
-
index = _ref.index
|
10
|
+
index = _ref.index,
|
11
|
+
_ref$isStep = _ref.isStep,
|
12
|
+
isStep = _ref$isStep === void 0 ? false : _ref$isStep;
|
11
13
|
return /*#__PURE__*/React.createElement(ButtonToolbar, {
|
12
14
|
className: "d-flex toolbar-header align-items-center justify-content-between p-2"
|
13
15
|
}, /*#__PURE__*/React.createElement(Badge, {
|
14
16
|
bg: "secondary"
|
15
|
-
}, item.text), /*#__PURE__*/React.createElement("div", {
|
17
|
+
}, item.text, isStep ? ' ' + (Number(index) + 1) : '', isStep && (item === null || item === void 0 ? void 0 : item.conditional) === true ? ' (Conditional)' : ''), /*#__PURE__*/React.createElement("div", {
|
16
18
|
className: "toolbar-header-buttons"
|
17
19
|
}, item.element !== 'LineBreak' && /*#__PURE__*/React.createElement(Button, {
|
18
20
|
variant: "default",
|
@@ -595,6 +595,7 @@ var SurveyElementsEdit = function SurveyElementsEdit(_ref2) {
|
|
595
595
|
type: "checkbox",
|
596
596
|
checked: thisCheckedConditional,
|
597
597
|
value: true,
|
598
|
+
onBlur: onUpdateElement,
|
598
599
|
onChange: function onChange(e) {
|
599
600
|
editElementProp('conditional', 'checked', e);
|
600
601
|
}
|
package/package.json
CHANGED
package/types/index.d.ts
CHANGED
@@ -141,6 +141,9 @@ export interface SurveyBuilderProps {
|
|
141
141
|
saveAlways?: boolean;
|
142
142
|
editMode?: boolean;
|
143
143
|
renderEditForm?: (props: BaseElement) => React.ReactNode;
|
144
|
+
checkboxButtonClassName?: string;
|
145
|
+
headerClassName?: string;
|
146
|
+
labelClassName?: string;
|
144
147
|
}
|
145
148
|
|
146
149
|
export class ReactSurveyBuilder extends React.Component<SurveyBuilderProps> {}
|