@maif/react-forms 1.0.21 → 1.0.25

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.js CHANGED
@@ -41,6 +41,14 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
41
41
 
42
42
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
43
43
 
44
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
45
+
46
+ 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."); }
47
+
48
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
49
+
50
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
51
+
44
52
  function _extends() { _extends = Object.assign || 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); }
45
53
 
46
54
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
@@ -165,6 +173,10 @@ var getDefaultValues = function getDefaultValues(flow, schema) {
165
173
  return flow.reduce(function (acc, key) {
166
174
  var entry = schema[key];
167
175
 
176
+ if (!entry) {
177
+ return acc;
178
+ }
179
+
168
180
  if (_typeof(key) === 'object') {
169
181
  return _objectSpread(_objectSpread({}, acc), getDefaultValues(key.flow, schema));
170
182
  }
@@ -238,7 +250,7 @@ var Form = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
238
250
  }
239
251
 
240
252
  return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, v));
241
- } else if (!!v && _typeof(v) === 'object') {
253
+ } else if (!!v && _typeof(v) === 'object' && !(v instanceof Date)) {
242
254
  var _subSchema$key;
243
255
 
244
256
  return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, cleanInputArray(v, ((_subSchema$key = subSchema[key]) === null || _subSchema$key === void 0 ? void 0 : _subSchema$key.schema) || {})));
@@ -269,7 +281,7 @@ var Form = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
269
281
  }
270
282
 
271
283
  return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, v));
272
- } else if (!!v && _typeof(v) === 'object') {
284
+ } else if (!!v && _typeof(v) === 'object' && !(v instanceof Date)) {
273
285
  var _subSchema$key2;
274
286
 
275
287
  return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, cleanOutputArray(v, ((_subSchema$key2 = subSchema[key]) === null || _subSchema$key2 === void 0 ? void 0 : _subSchema$key2.schema) || {})));
@@ -343,6 +355,12 @@ var Form = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
343
355
  }, onError)
344
356
  }, formFlow.map(function (entry, idx) {
345
357
  var step = schema[entry];
358
+
359
+ if (!step && typeof entry === 'string') {
360
+ console.error("no step found for the entry \"".concat(entry, "\" in the given schema. Your form might not work properly. Please fix it"));
361
+ return null;
362
+ }
363
+
346
364
  var error = _typeof(entry) === 'object' ? undefined : entry.split('.').reduce(function (object, key) {
347
365
  return object && object[key];
348
366
  }, errors);
@@ -469,6 +487,12 @@ var Step = function Step(_ref4) {
469
487
  var err = _typeof(en) === 'object' ? undefined : en.split('.').reduce(function (object, key) {
470
488
  return object && object[key];
471
489
  }, errors);
490
+
491
+ if (!stp && typeof en === 'string') {
492
+ console.error("no step found for the entry \"".concat(en, "\" in the given schema. Your form might not work properly. Please fix it"));
493
+ return null;
494
+ }
495
+
472
496
  var visibleStep = (0, _Option.option)(stp).map(function (s) {
473
497
  return s.visible;
474
498
  }).map(function (visible) {
@@ -493,7 +517,6 @@ var Step = function Step(_ref4) {
493
517
 
494
518
  return /*#__PURE__*/_react["default"].createElement(BasicWrapper, {
495
519
  key: "collapse-".concat(en, "-").concat(entryIdx),
496
- className: classes.collapseInline,
497
520
  entry: en,
498
521
  error: err,
499
522
  label: (stp === null || stp === void 0 ? void 0 : stp.label) === null ? null : (stp === null || stp === void 0 ? void 0 : stp.label) || en,
@@ -513,11 +536,22 @@ var Step = function Step(_ref4) {
513
536
  watch: watch,
514
537
  inputWrapper: inputWrapper,
515
538
  httpClient: httpClient,
516
- defaultValue: stp.defaultValue
539
+ defaultValue: stp === null || stp === void 0 ? void 0 : stp.defaultValue
517
540
  }));
518
541
  }));
519
542
  }
520
543
 
544
+ var disabled = function disabled() {
545
+ if (typeof step.disabled === 'function') {
546
+ return step.disabled({
547
+ rawValues: getValues(),
548
+ value: getValues(entry)
549
+ });
550
+ } else {
551
+ return step.disabled;
552
+ }
553
+ };
554
+
521
555
  if (step.array) {
522
556
  return /*#__PURE__*/_react["default"].createElement(ArrayStep, {
523
557
  entry: entry,
@@ -529,12 +563,15 @@ var Step = function Step(_ref4) {
529
563
  setValue: _setValue,
530
564
  values: getValues(entry),
531
565
  defaultValue: step.defaultValue || defaultVal(step.type),
566
+ getValues: getValues,
567
+ disabled: disabled(),
532
568
  component: function component(props, idx) {
533
569
  var _error$idx;
534
570
 
535
571
  return /*#__PURE__*/_react["default"].createElement(Step, {
536
572
  entry: "".concat(entry, "[").concat(idx, "].value"),
537
573
  step: _objectSpread(_objectSpread({}, schema[realEntry || entry]), {}, {
574
+ onChange: undefined,
538
575
  array: false
539
576
  }),
540
577
  error: error && ((_error$idx = error[idx]) === null || _error$idx === void 0 ? void 0 : _error$idx.value),
@@ -555,6 +592,21 @@ var Step = function Step(_ref4) {
555
592
  });
556
593
  }
557
594
 
595
+ var registeredInput = register(entry);
596
+
597
+ var inputProps = _objectSpread(_objectSpread({}, registeredInput), {}, {
598
+ onChange: function onChange(e) {
599
+ registeredInput.onChange(e);
600
+ (0, _Option.option)(step.onChange).map(function (onChange) {
601
+ return onChange({
602
+ rawValues: getValues(),
603
+ value: e.target.value,
604
+ setValue: _setValue
605
+ });
606
+ });
607
+ }
608
+ });
609
+
558
610
  switch (step.type) {
559
611
  case _type.type.string:
560
612
  switch (step.format) {
@@ -576,12 +628,11 @@ var Step = function Step(_ref4) {
576
628
  type: "text",
577
629
  id: entry,
578
630
  className: (0, _classnames["default"])(classes.input, _defineProperty({}, classes.input__invalid, error)),
579
- readOnly: step.disabled ? 'readOnly' : null
631
+ readOnly: disabled() ? 'readOnly' : null
580
632
  }, step.props, {
581
- name: entry,
582
633
  defaultValue: defaultValue,
583
634
  placeholder: step.placeholder
584
- }, register(entry))));
635
+ }, inputProps)));
585
636
 
586
637
  case _format.format.code:
587
638
  return /*#__PURE__*/_react["default"].createElement(_reactHookForm.Controller, {
@@ -600,8 +651,17 @@ var Step = function Step(_ref4) {
600
651
  error: error
601
652
  }, /*#__PURE__*/_react["default"].createElement(_index.CodeInput, _extends({
602
653
  className: (0, _classnames["default"])(_defineProperty({}, classes.input__invalid, error)),
603
- readOnly: step.disabled ? true : false,
604
- onChange: field.onChange,
654
+ readOnly: disabled() ? true : false,
655
+ onChange: function onChange(e) {
656
+ field.onChange(e);
657
+ (0, _Option.option)(step.onChange).map(function (onChange) {
658
+ return onChange({
659
+ rawValues: getValues(),
660
+ value: e,
661
+ setValue: _setValue
662
+ });
663
+ });
664
+ },
605
665
  value: field.value,
606
666
  defaultValue: defaultValue
607
667
  }, step.props)));
@@ -625,8 +685,17 @@ var Step = function Step(_ref4) {
625
685
  error: error
626
686
  }, /*#__PURE__*/_react["default"].createElement(_index.MarkdownInput, _extends({}, step.props, {
627
687
  className: (0, _classnames["default"])(_defineProperty({}, classes.input__invalid, error)),
628
- readOnly: step.disabled ? 'readOnly' : null,
629
- onChange: field.onChange,
688
+ readOnly: disabled() ? 'readOnly' : null,
689
+ onChange: function onChange(e) {
690
+ field.onChange(e);
691
+ (0, _Option.option)(step.onChange).map(function (onChange) {
692
+ return onChange({
693
+ rawValues: getValues(),
694
+ value: e,
695
+ setValue: _setValue
696
+ });
697
+ });
698
+ },
630
699
  value: field.value,
631
700
  defaultValue: defaultValue
632
701
  }, step)));
@@ -649,15 +718,24 @@ var Step = function Step(_ref4) {
649
718
  rawValues: getValues()
650
719
  }, field),
651
720
  error: error
652
- }, /*#__PURE__*/_react["default"].createElement(_index.SelectInput, _extends({}, step.props, {
721
+ }, /*#__PURE__*/_react["default"].createElement(_index.SelectInput, _extends({}, step.props, step, {
653
722
  className: (0, _classnames["default"])(_defineProperty({}, classes.input__invalid, error)),
654
- readOnly: step.disabled ? 'readOnly' : null,
655
- onChange: field.onChange,
723
+ disabled: disabled(),
656
724
  value: field.value,
657
725
  possibleValues: step.options,
658
726
  defaultValue: defaultValue,
659
- httpClient: httpClient
660
- }, step)));
727
+ httpClient: httpClient,
728
+ onChange: function onChange(value) {
729
+ field.onChange(value);
730
+ (0, _Option.option)(step.onChange).map(function (onChange) {
731
+ return onChange({
732
+ rawValues: getValues(),
733
+ value: value,
734
+ setValue: _setValue
735
+ });
736
+ });
737
+ }
738
+ })));
661
739
  }
662
740
  });
663
741
 
@@ -678,14 +756,13 @@ var Step = function Step(_ref4) {
678
756
  },
679
757
  error: error
680
758
  }, /*#__PURE__*/_react["default"].createElement("input", _extends({
681
- // {...step.props}
682
759
  type: step.format || 'text',
683
760
  id: entry,
684
761
  className: (0, _classnames["default"])(classes.input, _defineProperty({}, classes.input__invalid, error)),
685
- readOnly: step.disabled ? 'readOnly' : null // defaultValue={defaultValue}
686
- ,
762
+ readOnly: disabled() ? 'readOnly' : null,
763
+ defaultValue: defaultValue,
687
764
  placeholder: step.placeholder
688
- }, register(entry))));
765
+ }, inputProps)));
689
766
  }
690
767
 
691
768
  case _type.type.number:
@@ -706,15 +783,24 @@ var Step = function Step(_ref4) {
706
783
  rawValues: getValues()
707
784
  }, field),
708
785
  error: error
709
- }, /*#__PURE__*/_react["default"].createElement(_index.SelectInput, _extends({}, step.props, {
786
+ }, /*#__PURE__*/_react["default"].createElement(_index.SelectInput, _extends({}, step.props, step, {
710
787
  className: (0, _classnames["default"])(classes.content, _defineProperty({}, classes.input__invalid, error)),
711
- readOnly: step.disabled ? 'readOnly' : null,
712
- onChange: field.onChange,
788
+ readOnly: disabled() ? 'readOnly' : null,
789
+ onChange: function onChange(e) {
790
+ field.onChange(e);
791
+ (0, _Option.option)(step.onChange).map(function (onChange) {
792
+ return onChange({
793
+ rawValues: getValues(),
794
+ value: e,
795
+ setValue: _setValue
796
+ });
797
+ });
798
+ },
713
799
  value: field.value,
714
800
  possibleValues: step.options,
715
801
  defaultValue: defaultValue,
716
802
  httpClient: httpClient
717
- }, step)));
803
+ })));
718
804
  }
719
805
  });
720
806
 
@@ -736,11 +822,11 @@ var Step = function Step(_ref4) {
736
822
  type: step.format || 'number',
737
823
  id: entry,
738
824
  className: (0, _classnames["default"])(classes.input, _defineProperty({}, classes.input__invalid, error)),
739
- readOnly: step.disabled ? 'readOnly' : null,
825
+ readOnly: disabled() ? 'readOnly' : null,
740
826
  name: entry,
741
827
  placeholder: step.placeholder,
742
828
  defaultValue: defaultValue
743
- }, register(entry))));
829
+ }, inputProps)));
744
830
  }
745
831
 
746
832
  case _type.type.bool:
@@ -760,8 +846,17 @@ var Step = function Step(_ref4) {
760
846
  error: error
761
847
  }, /*#__PURE__*/_react["default"].createElement(_index.BooleanInput, _extends({}, step.props, {
762
848
  className: (0, _classnames["default"])(_defineProperty({}, classes.input__invalid, error)),
763
- readOnly: step.disabled ? 'readOnly' : null,
764
- onChange: field.onChange,
849
+ readOnly: disabled() ? 'readOnly' : null,
850
+ onChange: function onChange(e) {
851
+ field.onChange(e);
852
+ (0, _Option.option)(step.onChange).map(function (onChange) {
853
+ return onChange({
854
+ rawValues: getValues(),
855
+ value: e,
856
+ setValue: _setValue
857
+ });
858
+ });
859
+ },
765
860
  value: field.value
766
861
  })));
767
862
  }
@@ -786,18 +881,28 @@ var Step = function Step(_ref4) {
786
881
  rawValues: getValues()
787
882
  }, field),
788
883
  error: error
789
- }, /*#__PURE__*/_react["default"].createElement(_index.SelectInput, _extends({}, step.props, {
884
+ }, /*#__PURE__*/_react["default"].createElement(_index.SelectInput, _extends({}, step.props, step, {
790
885
  className: (0, _classnames["default"])(_defineProperty({}, classes.input__invalid, error)),
791
- readOnly: step.disabled ? 'readOnly' : null,
792
- onChange: field.onChange,
886
+ readOnly: disabled() ? 'readOnly' : null,
887
+ onChange: function onChange(e) {
888
+ field.onChange(e);
889
+ (0, _Option.option)(step.onChange).map(function (onChange) {
890
+ return onChange({
891
+ rawValues: getValues(),
892
+ value: e,
893
+ setValue: _setValue
894
+ });
895
+ });
896
+ },
793
897
  value: field.value,
794
898
  possibleValues: step.options,
795
899
  httpClient: httpClient
796
- }, step)));
900
+ })));
797
901
  }
798
902
  });
799
903
 
800
904
  case _format.format.form:
905
+ //todo: disabled ?
801
906
  var flow = (0, _Option.option)(step.flow).getOrElse((0, _Option.option)(step.schema).map(function (s) {
802
907
  return Object.keys(s);
803
908
  }).getOrNull());
@@ -844,13 +949,22 @@ var Step = function Step(_ref4) {
844
949
  rawValues: getValues()
845
950
  }, field),
846
951
  error: error
847
- }, /*#__PURE__*/_react["default"].createElement(_index.ObjectInput, _extends({}, step.props, {
952
+ }, /*#__PURE__*/_react["default"].createElement(_index.ObjectInput, _extends({}, step.props, step, {
848
953
  className: (0, _classnames["default"])(_defineProperty({}, classes.input__invalid, error)),
849
- readOnly: step.disabled ? 'readOnly' : null,
850
- onChange: field.onChange,
954
+ readOnly: disabled() ? 'readOnly' : null,
955
+ onChange: function onChange(e) {
956
+ field.onChange(e);
957
+ (0, _Option.option)(step.onChange).map(function (onChange) {
958
+ return onChange({
959
+ rawValues: getValues(),
960
+ value: e,
961
+ setValue: _setValue
962
+ });
963
+ });
964
+ },
851
965
  value: field.value,
852
966
  possibleValues: step.options
853
- }, step)));
967
+ })));
854
968
  }
855
969
  });
856
970
  }
@@ -874,11 +988,19 @@ var Step = function Step(_ref4) {
874
988
  }, /*#__PURE__*/_react["default"].createElement(_reactRainbowComponents.DatePicker, _extends({}, step.props, {
875
989
  id: "datePicker-1",
876
990
  className: (0, _classnames["default"])(_defineProperty({}, classes.input__invalid, error)),
877
- readOnly: step.disabled ? 'readOnly' : null,
991
+ readOnly: disabled() ? 'readOnly' : null,
878
992
  value: field.value,
879
- onChange: field.onChange,
880
- formatStyle: "large" // locale={state.locale.name}
881
-
993
+ onChange: function onChange(e) {
994
+ field.onChange(e);
995
+ (0, _Option.option)(step.onChange).map(function (onChange) {
996
+ return onChange({
997
+ rawValues: getValues(),
998
+ value: e,
999
+ setValue: _setValue
1000
+ });
1001
+ });
1002
+ },
1003
+ formatStyle: "large"
882
1004
  })));
883
1005
  }
884
1006
  });
@@ -928,7 +1050,7 @@ var Step = function Step(_ref4) {
928
1050
  }), /*#__PURE__*/_react["default"].createElement("button", {
929
1051
  type: "button",
930
1052
  className: "".concat(classes.btn, " ").concat(classes.flex, " ").concat(classes.ai_center),
931
- disabled: uploading,
1053
+ disabled: uploading || disabled(),
932
1054
  onClick: trigger
933
1055
  }, uploading && /*#__PURE__*/_react["default"].createElement(_reactFeather.Loader, null), !uploading && /*#__PURE__*/_react["default"].createElement(_reactFeather.Upload, null), /*#__PURE__*/_react["default"].createElement("span", {
934
1056
  className: "".concat(classes.ml_5)
@@ -945,7 +1067,16 @@ var Step = function Step(_ref4) {
945
1067
  }, field),
946
1068
  error: error
947
1069
  }, /*#__PURE__*/_react["default"].createElement(FileInput, {
948
- onChange: field.onChange,
1070
+ onChange: function onChange(e) {
1071
+ field.onChange(e);
1072
+ (0, _Option.option)(step.onChange).map(function (onChange) {
1073
+ return onChange({
1074
+ rawValues: getValues(),
1075
+ value: e,
1076
+ setValue: _setValue
1077
+ });
1078
+ });
1079
+ },
949
1080
  error: error
950
1081
  }));
951
1082
  }
@@ -971,10 +1102,10 @@ var Step = function Step(_ref4) {
971
1102
  type: "file",
972
1103
  id: entry,
973
1104
  className: (0, _classnames["default"])(classes.input, _defineProperty({}, classes.input__invalid, error)),
974
- readOnly: step.disabled ? 'readOnly' : null,
1105
+ readOnly: disabled() ? 'readOnly' : null,
975
1106
  name: entry,
976
1107
  placeholder: step.placeholder
977
- }, register(entry))));
1108
+ }, inputProps)));
978
1109
 
979
1110
  default:
980
1111
  return null;
@@ -991,7 +1122,9 @@ var ArrayStep = function ArrayStep(_ref15) {
991
1122
  component = _ref15.component,
992
1123
  values = _ref15.values,
993
1124
  defaultValue = _ref15.defaultValue,
994
- setValue = _ref15.setValue;
1125
+ setValue = _ref15.setValue,
1126
+ getValues = _ref15.getValues,
1127
+ disabled = _ref15.disabled;
995
1128
  var classes = (0, _styleContext.useCustomStyle)();
996
1129
 
997
1130
  var _useFieldArray = (0, _reactHookForm.useFieldArray)({
@@ -1019,6 +1152,7 @@ var ArrayStep = function ArrayStep(_ref15) {
1019
1152
  className: "input-group-append"
1020
1153
  }, /*#__PURE__*/_react["default"].createElement("button", {
1021
1154
  className: "btn btn-danger btn-sm",
1155
+ disabled: disabled,
1022
1156
  onClick: function onClick() {
1023
1157
  remove(idx);
1024
1158
  trigger(entry);
@@ -1029,10 +1163,18 @@ var ArrayStep = function ArrayStep(_ref15) {
1029
1163
  className: (0, _classnames["default"])("btn btn-info mt-2", _defineProperty({}, classes.input__invalid, error)),
1030
1164
  onClick: function onClick() {
1031
1165
  append({
1032
- value: step.addableDefaultValue
1166
+ value: step.addableDefaultValue || defaultVal(step.type)
1033
1167
  });
1034
1168
  trigger(entry);
1169
+ (0, _Option.option)(step.onChange).map(function (onChange) {
1170
+ return onChange({
1171
+ rawValues: getValues(),
1172
+ value: getValues(entry),
1173
+ setValue: setValue
1174
+ });
1175
+ });
1035
1176
  },
1177
+ disabled: disabled,
1036
1178
  value: "Add"
1037
1179
  }), error && /*#__PURE__*/_react["default"].createElement("div", {
1038
1180
  className: "invalid-feedback"
@@ -1096,14 +1238,38 @@ var NestedForm = function NestedForm(_ref16) {
1096
1238
  });
1097
1239
  }
1098
1240
  }, [prevSchema, schemaAndFlow.schema]);
1241
+ var computedSandF = schemaAndFlow.flow.reduce(function (acc, entry) {
1242
+ var step = schemaAndFlow.schema[entry];
1243
+ var visibleStep = (0, _Option.option)(step).map(function (s) {
1244
+ return s.visible;
1245
+ }).map(function (visible) {
1246
+ switch (_typeof(visible)) {
1247
+ case 'object':
1248
+ var _value2 = watch(visible.ref);
1249
+
1250
+ return (0, _Option.option)(visible.test).map(function (test) {
1251
+ return test(_value2);
1252
+ }).getOrElse(_value2);
1253
+
1254
+ case 'boolean':
1255
+ return visible;
1256
+
1257
+ default:
1258
+ return true;
1259
+ }
1260
+ }).getOrElse(true);
1261
+ return [].concat(_toConsumableArray(acc), [{
1262
+ step: step,
1263
+ visibleStep: visibleStep,
1264
+ entry: entry
1265
+ }]);
1266
+ }, []);
1267
+ var bordered = computedSandF.filter(function (x) {
1268
+ return x.visibleStep;
1269
+ }).length > 1 && step.label === null;
1099
1270
  return /*#__PURE__*/_react["default"].createElement("div", {
1100
- style: {
1101
- borderLeft: '2px solid lightGray',
1102
- paddingLeft: '1rem',
1103
- marginBottom: '.5rem',
1104
- position: 'relative'
1105
- }
1106
- }, collapsed && /*#__PURE__*/_react["default"].createElement(_reactFeather.ArrowDown, {
1271
+ className: (0, _classnames["default"])(_defineProperty({}, classes.nestedform__border, bordered))
1272
+ }, !!step.collapsable && schemaAndFlow.flow.length > 1 && collapsed && /*#__PURE__*/_react["default"].createElement(_reactFeather.ArrowDown, {
1107
1273
  size: 30,
1108
1274
  className: classes.cursor_pointer,
1109
1275
  style: {
@@ -1115,7 +1281,7 @@ var NestedForm = function NestedForm(_ref16) {
1115
1281
  onClick: function onClick() {
1116
1282
  return setCollapsed(!collapsed);
1117
1283
  }
1118
- }), !collapsed && /*#__PURE__*/_react["default"].createElement(_reactFeather.ArrowUp, {
1284
+ }), !!step.collapsable && schemaAndFlow.flow.length > 1 && !collapsed && /*#__PURE__*/_react["default"].createElement(_reactFeather.ArrowUp, {
1119
1285
  size: 30,
1120
1286
  className: classes.cursor_pointer,
1121
1287
  style: {
@@ -1123,20 +1289,28 @@ var NestedForm = function NestedForm(_ref16) {
1123
1289
  top: '5px',
1124
1290
  left: '-16px'
1125
1291
  },
1126
- "stroke-width": "3",
1292
+ "strok-width": "3",
1127
1293
  onClick: function onClick() {
1128
1294
  return setCollapsed(!collapsed);
1129
1295
  }
1130
- }), schemaAndFlow.flow.map(function (entry, idx) {
1131
- var step = schemaAndFlow.schema[entry];
1296
+ }), computedSandF.map(function (_ref17, idx) {
1297
+ var step = _ref17.step,
1298
+ visibleStep = _ref17.visibleStep,
1299
+ entry = _ref17.entry;
1300
+
1301
+ if (!step && typeof entry === 'string') {
1302
+ console.error("no step found for the entry \"".concat(entry, "\" in the given schema. Your form might not work properly. Please fix it"));
1303
+ return null;
1304
+ }
1305
+
1132
1306
  var realError = error && error[entry];
1133
- var oneVisibleSetup = Object.values(schema).some(function (v) {
1307
+ var oneVisibleSetup = Object.values(schemaAndFlow.schema).some(function (v) {
1134
1308
  return !!v.visibleOnCollapse;
1135
1309
  });
1136
1310
  var isCollapsed = collapsed && (oneVisibleSetup ? !step.visibleOnCollapse : idx > 0);
1137
1311
  return /*#__PURE__*/_react["default"].createElement(BasicWrapper, {
1138
1312
  key: "".concat(entry, ".").concat(idx),
1139
- className: (0, _classnames["default"])(_defineProperty({}, classes.display__none, isCollapsed)),
1313
+ className: (0, _classnames["default"])(_defineProperty({}, classes.display__none, isCollapsed || !visibleStep)),
1140
1314
  entry: "".concat(parent, ".").concat(entry),
1141
1315
  error: realError,
1142
1316
  label: (step === null || step === void 0 ? void 0 : step.label) === null ? null : (step === null || step === void 0 ? void 0 : step.label) || entry,
@@ -66,7 +66,7 @@ var Collapse = function Collapse(props) {
66
66
  }), !collapsed && /*#__PURE__*/_react["default"].createElement(_reactFeather.EyeOff, {
67
67
  size: 16
68
68
  }))), /*#__PURE__*/_react["default"].createElement("div", {
69
- className: (0, _classnames["default"])(classes.ml_10, (_classNames4 = {}, _defineProperty(_classNames4, classes.display__none, !!collapsed), _defineProperty(_classNames4, classes.flex, !!props.inline), _classNames4))
69
+ className: (0, _classnames["default"])("".concat(classes.ml_10), (_classNames4 = {}, _defineProperty(_classNames4, classes.display__none, !!collapsed), _defineProperty(_classNames4, classes.flex, !!props.inline), _defineProperty(_classNames4, classes.collapse__inline, !!props.inline), _classNames4))
70
70
  }, props.children), props.lineEnd && /*#__PURE__*/_react["default"].createElement("hr", null));
71
71
  };
72
72
 
@@ -189,6 +189,7 @@ var SelectInput = function SelectInput(props) {
189
189
  return /*#__PURE__*/_react["default"].createElement("button", {
190
190
  key: idx,
191
191
  type: "button",
192
+ disabled: props.disabled,
192
193
  className: (0, _classnames["default"])(props.className, classes.btn, classes.btn_grey, classes.ml_5, {
193
194
  active: active
194
195
  }),
@@ -213,7 +214,8 @@ var SelectInput = function SelectInput(props) {
213
214
  return handleCreate(option, props.onCreateOption);
214
215
  },
215
216
  classNamePrefix: "react-form-select",
216
- className: props.className
217
+ className: props.className,
218
+ readOnly: props.disabled ? 'readOnly' : null
217
219
  }));
218
220
  } else {
219
221
  return /*#__PURE__*/_react["default"].createElement(_reactSelect["default"], _extends({}, props, {
@@ -225,7 +227,8 @@ var SelectInput = function SelectInput(props) {
225
227
  options: values,
226
228
  onChange: onChange,
227
229
  classNamePrefix: "react-form-select",
228
- className: props.className
230
+ className: props.className,
231
+ readOnly: props.disabled ? 'readOnly' : null
229
232
  }));
230
233
  }
231
234
  };
package/lib/style.d.ts CHANGED
@@ -211,9 +211,16 @@ export namespace style {
211
211
  const display_3: string;
212
212
  export { display_3 as display };
213
213
  }
214
- const collapseInline: {
215
- "&+ .form-group": {
214
+ const collapse__inline: {
215
+ "& .form-group+.form-group": {
216
216
  marginLeft: string;
217
217
  };
218
218
  };
219
+ namespace nestedform__border {
220
+ export const borderLeft: string;
221
+ export const paddingLeft: string;
222
+ const marginBottom_1: string;
223
+ export { marginBottom_1 as marginBottom };
224
+ export const position: string;
225
+ }
219
226
  }
package/lib/style.js CHANGED
@@ -159,9 +159,14 @@ var style = (_style = {
159
159
  color: "#dc3545"
160
160
  }), _defineProperty(_style, "display__none", {
161
161
  display: "none"
162
- }), _defineProperty(_style, "collapseInline", {
163
- "&+ .form-group": {
162
+ }), _defineProperty(_style, "collapse__inline", {
163
+ "& .form-group+.form-group": {
164
164
  marginLeft: '20px'
165
165
  }
166
+ }), _defineProperty(_style, "nestedform__border", {
167
+ borderLeft: '2px solid lightGray',
168
+ paddingLeft: '1rem',
169
+ marginBottom: '.5rem',
170
+ position: 'relative'
166
171
  }), _style);
167
172
  exports.style = style;
@@ -1 +1 @@
1
- export function useCustomStyle(overrideStyle?: {}): import("jss").Classes<"code" | "flex" | "input" | "btn" | "btn_sm" | "btn_group" | "btn_red" | "btn_green" | "btn_blue" | "btn_grey" | "txt_red" | "ml_5" | "ml_10" | "mr_5" | "mr_10" | "mt_5" | "mt_10" | "mt_20" | "mb_5" | "p_15" | "pr_15" | "full_width" | "d_none" | "flexColumn" | "justifyContentBetween" | "jc_end" | "ac_center" | "ai_center" | "cursor_pointer" | "collapse" | "collapse_label" | "collapse_error" | "datepicker" | "input__boolean__on" | "input__boolean__off" | "input__invalid" | "invalid_feedback" | "display__none" | "collapseInline">;
1
+ export function useCustomStyle(overrideStyle?: {}): import("jss").Classes<"code" | "flex" | "input" | "btn" | "btn_sm" | "btn_group" | "btn_red" | "btn_green" | "btn_blue" | "btn_grey" | "txt_red" | "ml_5" | "ml_10" | "mr_5" | "mr_10" | "mt_5" | "mt_10" | "mt_20" | "mb_5" | "p_15" | "pr_15" | "full_width" | "d_none" | "flexColumn" | "justifyContentBetween" | "jc_end" | "ac_center" | "ai_center" | "cursor_pointer" | "collapse" | "collapse_label" | "collapse_error" | "datepicker" | "input__boolean__on" | "input__boolean__off" | "input__invalid" | "invalid_feedback" | "display__none" | "collapse__inline" | "nestedform__border">;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@maif/react-forms",
3
3
  "description": "Build react safe forms as fast as possible",
4
- "version": "1.0.21",
4
+ "version": "1.0.25",
5
5
  "main": "lib/index.js",
6
6
  "author": "MAIF team",
7
7
  "keywords": [