@maif/react-forms 1.0.38 → 1.0.41

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.
Files changed (3) hide show
  1. package/lib/esm/index.js +100 -42
  2. package/lib/index.js +100 -42
  3. package/package.json +1 -1
package/lib/esm/index.js CHANGED
@@ -22,7 +22,8 @@ var type = {
22
22
  bool: 'bool',
23
23
  date: 'date',
24
24
  object: 'object',
25
- file: 'file'
25
+ file: 'file',
26
+ json: 'json'
26
27
  };
27
28
 
28
29
  var format = {
@@ -219,9 +220,9 @@ var _oneOf = function oneOf(arrayOfValues) {
219
220
  var _blacklist = function blacklist(arrayOfValues) {
220
221
  var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "This value can't include the following values ".concat(arrayOfValues.join(', '));
221
222
  return function (r) {
222
- return r.test('blacklist' + Date.now(), message, function (value) {
223
+ return r.test('blacklist', message, function (value) {
223
224
  return !arrayOfValues.some(function (f) {
224
- return value.includes(f);
225
+ return (value || '').includes(f);
225
226
  });
226
227
  });
227
228
  };
@@ -451,6 +452,10 @@ function _extends() {
451
452
  return _extends.apply(this, arguments);
452
453
  }
453
454
 
455
+ function _readOnlyError(name) {
456
+ throw new TypeError("\"" + name + "\" is read-only");
457
+ }
458
+
454
459
  function _slicedToArray(arr, i) {
455
460
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest();
456
461
  }
@@ -642,6 +647,9 @@ var style = (_style = {
642
647
  d_none: {
643
648
  display: "none"
644
649
  },
650
+ flexWrap: {
651
+ flexWrap: 'wrap'
652
+ },
645
653
  flex: {
646
654
  display: "flex"
647
655
  },
@@ -1068,7 +1076,7 @@ var SelectInput = /*#__PURE__*/React.forwardRef(function (props, _) {
1068
1076
  display: 'flex'
1069
1077
  }
1070
1078
  }, values.map(function (v, idx) {
1071
- var active = props.isMulti ? value.includes(v) : v.value === value.value;
1079
+ var active = !!value && (props.isMulti ? value.includes(v) : v.value === value.value);
1072
1080
  return /*#__PURE__*/React.createElement("button", {
1073
1081
  key: idx,
1074
1082
  type: "button",
@@ -28452,7 +28460,7 @@ function Editor(parent, mode, onChange, value) {
28452
28460
  }
28453
28461
  } catch (_) {}
28454
28462
  }), EditorView.editable.of(!readOnly)]),
28455
- doc: !value ? '' : _typeof(value) === 'object' ? value.value : value
28463
+ doc: value === null || value === undefined ? '' : _typeof(value) === 'object' ? value.value : value
28456
28464
  });
28457
28465
  return new EditorView({
28458
28466
  state: state,
@@ -28499,13 +28507,16 @@ function CodeInput(_ref) {
28499
28507
  setEditor(e);
28500
28508
  }, []);
28501
28509
  useEffect(function () {
28502
- if (editor && (_typeof$1(value) === 'object' ? JSON.stringify(value, null, 2) : value) !== editor.state.doc.toString()) editor.dispatch({
28503
- changes: {
28504
- from: 0,
28505
- to: editor.state.doc.length,
28506
- insert: value === null ? '' : _typeof$1(value) === 'object' ? JSON.stringify(value, null, 2) : value
28507
- }
28508
- });
28510
+ if (editor && (_typeof$1(value) === 'object' ? JSON.stringify(value, null, 2) : value) !== editor.state.doc.toString()) {
28511
+ console.log("set value", value, value === null || value === undefined ? '' : _typeof$1(value) === 'object' ? JSON.stringify(value, null, 2) : value, editor.state.doc.toString());
28512
+ editor.dispatch({
28513
+ changes: {
28514
+ from: 0,
28515
+ to: editor.state.doc.length,
28516
+ insert: value === null || value === undefined ? '' : _typeof$1(value) === 'object' ? JSON.stringify(value, null, 2) : value
28517
+ }
28518
+ });
28519
+ }
28509
28520
  }, [value]);
28510
28521
  return /*#__PURE__*/React.createElement("div", {
28511
28522
  ref: ref
@@ -28535,7 +28546,7 @@ var MarkdownInput = function MarkdownInput(props) {
28535
28546
  if (preview) {
28536
28547
  showPreview();
28537
28548
  }
28538
- }, [preview]);
28549
+ }, [preview, props.value]);
28539
28550
  var commands = [{
28540
28551
  name: 'Add header',
28541
28552
  icon: 'heading',
@@ -28728,7 +28739,7 @@ var MarkdownInput = function MarkdownInput(props) {
28728
28739
  return setPreview(true);
28729
28740
  }
28730
28741
  }, "Preview"))), /*#__PURE__*/React.createElement("div", {
28731
- className: classNames(classes.flex)
28742
+ className: classNames(classes.flex, classes.flexWrap)
28732
28743
  }, injectButtons())), !preview && /*#__PURE__*/React.createElement(CodeInput, _extends({}, props, {
28733
28744
  setRef: function setRef(e) {
28734
28745
  return ref.current = e;
@@ -28796,6 +28807,8 @@ var resolvers = (_resolvers = {}, _defineProperty$1(_resolvers, type.string, fun
28796
28807
  return yup.date().nullable().optional().typeError(typeErrorMessage || 'Value must be a date');
28797
28808
  }), _defineProperty$1(_resolvers, type.file, function () {
28798
28809
  return yup.mixed();
28810
+ }), _defineProperty$1(_resolvers, type.json, function () {
28811
+ return yup.mixed();
28799
28812
  }), _resolvers);
28800
28813
  var buildSubResolver = function buildSubResolver(props, key, dependencies, rawData) {
28801
28814
  var _props$constraints = props.constraints,
@@ -28901,7 +28914,6 @@ var getShapeAndDependencies = function getShapeAndDependencies(flow, schema) {
28901
28914
  };
28902
28915
 
28903
28916
  var CustomizableInput$1 = /*#__PURE__*/React.memo(function (props) {
28904
- // console.log("CUSTOMIZABLE_INPUT" + props.field.name)
28905
28917
  if (props.render) {
28906
28918
  return props.render(_objectSpread2$1(_objectSpread2$1({}, props.field), {}, {
28907
28919
  error: props.error
@@ -28910,14 +28922,15 @@ var CustomizableInput$1 = /*#__PURE__*/React.memo(function (props) {
28910
28922
 
28911
28923
  return props.children;
28912
28924
  }, function (prev, next) {
28913
- return prev.field.value === next.field.value;
28925
+ return prev.field.value === next.field.value && next.errorDisplayed === prev.errorDisplayed;
28914
28926
  });
28915
28927
  var ControlledInput = function ControlledInput(_ref) {
28916
28928
  var defaultValue = _ref.defaultValue,
28917
28929
  step = _ref.step,
28918
28930
  entry = _ref.entry,
28919
28931
  children = _ref.children,
28920
- component = _ref.component;
28932
+ component = _ref.component,
28933
+ errorDisplayed = _ref.errorDisplayed;
28921
28934
 
28922
28935
  var _useController = useController({
28923
28936
  defaultValue: defaultValue || null,
@@ -28958,8 +28971,7 @@ var ControlledInput = function ControlledInput(_ref) {
28958
28971
  } else {
28959
28972
  return e;
28960
28973
  }
28961
- }(); // field.onChange(!e ? null : e.target ? e.target.value || null : e)
28962
-
28974
+ }();
28963
28975
 
28964
28976
  field.onChange(value);
28965
28977
  option(step.onChange).map(function (onChange) {
@@ -28985,7 +28997,8 @@ var ControlledInput = function ControlledInput(_ref) {
28985
28997
  },
28986
28998
  rawValues: getValues()
28987
28999
  }, field),
28988
- error: error
29000
+ error: error,
29001
+ errorDisplayed: errorDisplayed
28989
29002
  }, component ? component(field, props) : /*#__PURE__*/React.cloneElement(children, _objectSpread2$1({}, props)));
28990
29003
  };
28991
29004
 
@@ -29087,7 +29100,7 @@ var defaultVal = function defaultVal(value, array, defaultValue) {
29087
29100
  };
29088
29101
 
29089
29102
  var getDefaultValues = function getDefaultValues(flow, schema, value) {
29090
- return flow.reduce(function (acc, key) {
29103
+ return (flow || []).reduce(function (acc, key) {
29091
29104
  if (_typeof$1(key) === 'object') {
29092
29105
  return _objectSpread2$1(_objectSpread2$1({}, acc), getDefaultValues(key.flow, schema, value));
29093
29106
  }
@@ -29165,7 +29178,17 @@ var cleanOutputArray = function cleanOutputArray(obj, subSchema) {
29165
29178
 
29166
29179
  return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, cleanOutputArray(v, ((_subSchema$key3 = subSchema[key]) === null || _subSchema$key3 === void 0 ? void 0 : _subSchema$key3.schema) || {})));
29167
29180
  } else {
29168
- return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, v));
29181
+ var _subSchema$key4;
29182
+
29183
+ if (((_subSchema$key4 = subSchema[key]) === null || _subSchema$key4 === void 0 ? void 0 : _subSchema$key4.type) === 'json') {
29184
+ try {
29185
+ return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, JSON.parse(v)));
29186
+ } catch (err) {
29187
+ return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, v));
29188
+ }
29189
+ } else {
29190
+ return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, v));
29191
+ }
29169
29192
  }
29170
29193
  }, {});
29171
29194
  };
@@ -29592,7 +29615,8 @@ var Step = function Step(_ref9) {
29592
29615
  return /*#__PURE__*/React.createElement(ControlledInput, {
29593
29616
  defaultValue: defaultValue,
29594
29617
  step: step,
29595
- entry: entry
29618
+ entry: entry,
29619
+ errorDisplayed: errorDisplayed
29596
29620
  }, /*#__PURE__*/React.createElement("textarea", {
29597
29621
  type: "text",
29598
29622
  className: classNames(classes.input, _defineProperty$1({}, classes.input__invalid, errorDisplayed))
@@ -29604,7 +29628,8 @@ var Step = function Step(_ref9) {
29604
29628
  return /*#__PURE__*/React.createElement(ControlledInput, {
29605
29629
  defaultValue: defaultValue,
29606
29630
  step: step,
29607
- entry: entry
29631
+ entry: entry,
29632
+ errorDisplayed: errorDisplayed
29608
29633
  }, /*#__PURE__*/React.createElement(Component, {
29609
29634
  className: classNames(_defineProperty$1({}, classes.input__invalid, errorDisplayed))
29610
29635
  }));
@@ -29613,7 +29638,8 @@ var Step = function Step(_ref9) {
29613
29638
  return /*#__PURE__*/React.createElement(ControlledInput, {
29614
29639
  defaultValue: defaultValue,
29615
29640
  step: step,
29616
- entry: entry
29641
+ entry: entry,
29642
+ errorDisplayed: errorDisplayed
29617
29643
  }, /*#__PURE__*/React.createElement(MarkdownInput, {
29618
29644
  className: classNames(_defineProperty$1({}, classes.input__invalid, errorDisplayed))
29619
29645
  }));
@@ -29624,7 +29650,8 @@ var Step = function Step(_ref9) {
29624
29650
  return /*#__PURE__*/React.createElement(ControlledInput, {
29625
29651
  defaultValue: defaultValue,
29626
29652
  step: step,
29627
- entry: entry
29653
+ entry: entry,
29654
+ errorDisplayed: errorDisplayed
29628
29655
  }, /*#__PURE__*/React.createElement(SelectInput, {
29629
29656
  className: classNames(classes.flex_grow_1, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29630
29657
  disabled: functionalProperty(entry, step.disabled),
@@ -29633,7 +29660,6 @@ var Step = function Step(_ref9) {
29633
29660
  isMulti: step.isMulti,
29634
29661
  createOption: step.createOption,
29635
29662
  transformer: step.transformer,
29636
- optionsFrom: step.optionsFrom,
29637
29663
  buttons: step.format === format.buttonsSelect
29638
29664
  }));
29639
29665
  }
@@ -29642,7 +29668,8 @@ var Step = function Step(_ref9) {
29642
29668
  return /*#__PURE__*/React.createElement(ControlledInput, {
29643
29669
  defaultValue: defaultValue,
29644
29670
  step: step,
29645
- entry: entry
29671
+ entry: entry,
29672
+ errorDisplayed: errorDisplayed
29646
29673
  }, /*#__PURE__*/React.createElement("input", {
29647
29674
  type: step.format || 'text',
29648
29675
  className: classNames(classes.input, _defineProperty$1({}, classes.input__invalid, errorDisplayed))
@@ -29656,7 +29683,8 @@ var Step = function Step(_ref9) {
29656
29683
  return /*#__PURE__*/React.createElement(ControlledInput, {
29657
29684
  defaultValue: defaultValue,
29658
29685
  step: step,
29659
- entry: entry
29686
+ entry: entry,
29687
+ errorDisplayed: errorDisplayed
29660
29688
  }, /*#__PURE__*/React.createElement(SelectInput, {
29661
29689
  className: classNames(classes.content, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29662
29690
  possibleValues: step.options,
@@ -29665,7 +29693,6 @@ var Step = function Step(_ref9) {
29665
29693
  createOption: step.createOption,
29666
29694
  onCreateOption: step.onCreateOption,
29667
29695
  transformer: step.transformer,
29668
- optionsFrom: step.optionsFrom,
29669
29696
  buttons: step.format === format.buttonsSelect
29670
29697
  }));
29671
29698
 
@@ -29673,7 +29700,8 @@ var Step = function Step(_ref9) {
29673
29700
  return /*#__PURE__*/React.createElement(ControlledInput, {
29674
29701
  defaultValue: defaultValue,
29675
29702
  step: step,
29676
- entry: entry
29703
+ entry: entry,
29704
+ errorDisplayed: errorDisplayed
29677
29705
  }, /*#__PURE__*/React.createElement("input", {
29678
29706
  type: step.format || 'number',
29679
29707
  className: classNames(classes.input, _defineProperty$1({}, classes.input__invalid, errorDisplayed))
@@ -29684,7 +29712,8 @@ var Step = function Step(_ref9) {
29684
29712
  return /*#__PURE__*/React.createElement(ControlledInput, {
29685
29713
  defaultValue: defaultValue,
29686
29714
  step: step,
29687
- entry: entry
29715
+ entry: entry,
29716
+ errorDisplayed: errorDisplayed
29688
29717
  }, /*#__PURE__*/React.createElement(BooleanInput, {
29689
29718
  className: classNames(_defineProperty$1({}, classes.input__invalid, errorDisplayed))
29690
29719
  }));
@@ -29696,7 +29725,8 @@ var Step = function Step(_ref9) {
29696
29725
  return /*#__PURE__*/React.createElement(ControlledInput, {
29697
29726
  defaultValue: defaultValue,
29698
29727
  step: step,
29699
- entry: entry
29728
+ entry: entry,
29729
+ errorDisplayed: errorDisplayed
29700
29730
  }, /*#__PURE__*/React.createElement(SelectInput, {
29701
29731
  className: classNames(classes.flex_grow_1, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29702
29732
  possibleValues: step.options,
@@ -29705,7 +29735,6 @@ var Step = function Step(_ref9) {
29705
29735
  createOption: step.createOption,
29706
29736
  onCreateOption: step.onCreateOption,
29707
29737
  transformer: step.transformer,
29708
- optionsFrom: step.optionsFrom,
29709
29738
  buttons: step.format === format.buttonsSelect
29710
29739
  }));
29711
29740
 
@@ -29747,10 +29776,12 @@ var Step = function Step(_ref9) {
29747
29776
  defaultValue: defaultValue,
29748
29777
  step: step,
29749
29778
  entry: entry,
29779
+ errorDisplayed: errorDisplayed,
29750
29780
  component: function component(field, props) {
29751
29781
  return /*#__PURE__*/React.createElement(CodeInput, _extends({}, props, {
29752
29782
  className: classNames(_defineProperty$1({}, classes.input__invalid, error)),
29753
29783
  onChange: function onChange(e) {
29784
+ _readOnlyError("errorDisplayed");
29754
29785
  var v;
29755
29786
 
29756
29787
  try {
@@ -29777,7 +29808,8 @@ var Step = function Step(_ref9) {
29777
29808
  return /*#__PURE__*/React.createElement(ControlledInput, {
29778
29809
  defaultValue: defaultValue,
29779
29810
  step: step,
29780
- entry: entry
29811
+ entry: entry,
29812
+ errorDisplayed: errorDisplayed
29781
29813
  }, /*#__PURE__*/React.createElement(ObjectInput, {
29782
29814
  className: classNames(_defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29783
29815
  possibleValues: step.options
@@ -29788,7 +29820,8 @@ var Step = function Step(_ref9) {
29788
29820
  return /*#__PURE__*/React.createElement(ControlledInput, {
29789
29821
  defaultValue: defaultValue,
29790
29822
  step: step,
29791
- entry: entry
29823
+ entry: entry,
29824
+ errorDisplayed: errorDisplayed
29792
29825
  }, /*#__PURE__*/React.createElement(DatePicker, {
29793
29826
  className: classNames(classes.datepicker, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29794
29827
  formatStyle: "large"
@@ -29853,11 +29886,35 @@ var Step = function Step(_ref9) {
29853
29886
  return /*#__PURE__*/React.createElement(ControlledInput, {
29854
29887
  defaultValue: defaultValue,
29855
29888
  step: step,
29856
- entry: entry
29889
+ entry: entry,
29890
+ errorDisplayed: errorDisplayed
29857
29891
  }, /*#__PURE__*/React.createElement(FileInput, null));
29858
29892
  }
29859
29893
  });
29860
29894
 
29895
+ case type.json:
29896
+ return /*#__PURE__*/React.createElement(ControlledInput, {
29897
+ defaultValue: defaultValue,
29898
+ step: step,
29899
+ entry: entry,
29900
+ component: function component(field, props) {
29901
+ return /*#__PURE__*/React.createElement(CodeInput, _extends({}, props, {
29902
+ className: classNames(_defineProperty$1({}, classes.input__invalid, error)),
29903
+ onChange: function onChange(v) {
29904
+ field.onChange(v);
29905
+ option(step.onChange).map(function (onChange) {
29906
+ return onChange({
29907
+ rawValues: getValues(),
29908
+ value: v,
29909
+ setValue: _setValue
29910
+ });
29911
+ });
29912
+ },
29913
+ value: field.value
29914
+ }));
29915
+ }
29916
+ });
29917
+
29861
29918
  default:
29862
29919
  return null;
29863
29920
  }
@@ -29935,10 +29992,11 @@ var ArrayStep = function ArrayStep(_ref12) {
29935
29992
  type: "button",
29936
29993
  className: classNames(classes.btn, classes.btn_blue, classes.btn_sm, classes.mt_5, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29937
29994
  onClick: function onClick() {
29995
+ var newValue = cleanInputArray({}, getValues(entry), step.flow, step.schema);
29938
29996
  append({
29939
- value: step.addableDefaultValue || defaultVal(null)
29940
- });
29941
- trigger(entry);
29997
+ value: step.addableDefaultValue || (newValue ? newValue : defaultVal())
29998
+ }); // trigger(entry);
29999
+
29942
30000
  option(step.onChange).map(function (onChange) {
29943
30001
  return onChange({
29944
30002
  rawValues: getValues(),
@@ -29954,7 +30012,7 @@ var ArrayStep = function ArrayStep(_ref12) {
29954
30012
  };
29955
30013
 
29956
30014
  var NestedForm = function NestedForm(_ref13) {
29957
- var _classNames16;
30015
+ var _classNames17;
29958
30016
 
29959
30017
  var schema = _ref13.schema,
29960
30018
  flow = _ref13.flow,
@@ -30046,7 +30104,7 @@ var NestedForm = function NestedForm(_ref13) {
30046
30104
  return x.visibleStep;
30047
30105
  }).length > 1 && step.label !== null;
30048
30106
  return /*#__PURE__*/React.createElement("div", {
30049
- className: classNames((_classNames16 = {}, _defineProperty$1(_classNames16, classes.nestedform__border, bordered), _defineProperty$1(_classNames16, classes.border__error, !!errorDisplayed), _classNames16)),
30107
+ className: classNames((_classNames17 = {}, _defineProperty$1(_classNames17, classes.nestedform__border, bordered), _defineProperty$1(_classNames17, classes.border__error, !!errorDisplayed), _classNames17)),
30050
30108
  style: {
30051
30109
  position: 'relative'
30052
30110
  }
package/lib/index.js CHANGED
@@ -56,7 +56,8 @@ var type = {
56
56
  bool: 'bool',
57
57
  date: 'date',
58
58
  object: 'object',
59
- file: 'file'
59
+ file: 'file',
60
+ json: 'json'
60
61
  };
61
62
 
62
63
  var format = {
@@ -253,9 +254,9 @@ var _oneOf = function oneOf(arrayOfValues) {
253
254
  var _blacklist = function blacklist(arrayOfValues) {
254
255
  var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "This value can't include the following values ".concat(arrayOfValues.join(', '));
255
256
  return function (r) {
256
- return r.test('blacklist' + Date.now(), message, function (value) {
257
+ return r.test('blacklist', message, function (value) {
257
258
  return !arrayOfValues.some(function (f) {
258
- return value.includes(f);
259
+ return (value || '').includes(f);
259
260
  });
260
261
  });
261
262
  };
@@ -485,6 +486,10 @@ function _extends() {
485
486
  return _extends.apply(this, arguments);
486
487
  }
487
488
 
489
+ function _readOnlyError(name) {
490
+ throw new TypeError("\"" + name + "\" is read-only");
491
+ }
492
+
488
493
  function _slicedToArray(arr, i) {
489
494
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest();
490
495
  }
@@ -676,6 +681,9 @@ var style = (_style = {
676
681
  d_none: {
677
682
  display: "none"
678
683
  },
684
+ flexWrap: {
685
+ flexWrap: 'wrap'
686
+ },
679
687
  flex: {
680
688
  display: "flex"
681
689
  },
@@ -1102,7 +1110,7 @@ var SelectInput = /*#__PURE__*/React__default["default"].forwardRef(function (pr
1102
1110
  display: 'flex'
1103
1111
  }
1104
1112
  }, values.map(function (v, idx) {
1105
- var active = props.isMulti ? value.includes(v) : v.value === value.value;
1113
+ var active = !!value && (props.isMulti ? value.includes(v) : v.value === value.value);
1106
1114
  return /*#__PURE__*/React__default["default"].createElement("button", {
1107
1115
  key: idx,
1108
1116
  type: "button",
@@ -28486,7 +28494,7 @@ function Editor(parent, mode, onChange, value) {
28486
28494
  }
28487
28495
  } catch (_) {}
28488
28496
  }), EditorView.editable.of(!readOnly)]),
28489
- doc: !value ? '' : _typeof(value) === 'object' ? value.value : value
28497
+ doc: value === null || value === undefined ? '' : _typeof(value) === 'object' ? value.value : value
28490
28498
  });
28491
28499
  return new EditorView({
28492
28500
  state: state,
@@ -28533,13 +28541,16 @@ function CodeInput(_ref) {
28533
28541
  setEditor(e);
28534
28542
  }, []);
28535
28543
  React.useEffect(function () {
28536
- if (editor && (_typeof$1(value) === 'object' ? JSON.stringify(value, null, 2) : value) !== editor.state.doc.toString()) editor.dispatch({
28537
- changes: {
28538
- from: 0,
28539
- to: editor.state.doc.length,
28540
- insert: value === null ? '' : _typeof$1(value) === 'object' ? JSON.stringify(value, null, 2) : value
28541
- }
28542
- });
28544
+ if (editor && (_typeof$1(value) === 'object' ? JSON.stringify(value, null, 2) : value) !== editor.state.doc.toString()) {
28545
+ console.log("set value", value, value === null || value === undefined ? '' : _typeof$1(value) === 'object' ? JSON.stringify(value, null, 2) : value, editor.state.doc.toString());
28546
+ editor.dispatch({
28547
+ changes: {
28548
+ from: 0,
28549
+ to: editor.state.doc.length,
28550
+ insert: value === null || value === undefined ? '' : _typeof$1(value) === 'object' ? JSON.stringify(value, null, 2) : value
28551
+ }
28552
+ });
28553
+ }
28543
28554
  }, [value]);
28544
28555
  return /*#__PURE__*/React__default["default"].createElement("div", {
28545
28556
  ref: ref
@@ -28569,7 +28580,7 @@ var MarkdownInput = function MarkdownInput(props) {
28569
28580
  if (preview) {
28570
28581
  showPreview();
28571
28582
  }
28572
- }, [preview]);
28583
+ }, [preview, props.value]);
28573
28584
  var commands = [{
28574
28585
  name: 'Add header',
28575
28586
  icon: 'heading',
@@ -28762,7 +28773,7 @@ var MarkdownInput = function MarkdownInput(props) {
28762
28773
  return setPreview(true);
28763
28774
  }
28764
28775
  }, "Preview"))), /*#__PURE__*/React__default["default"].createElement("div", {
28765
- className: classNames__default["default"](classes.flex)
28776
+ className: classNames__default["default"](classes.flex, classes.flexWrap)
28766
28777
  }, injectButtons())), !preview && /*#__PURE__*/React__default["default"].createElement(CodeInput, _extends({}, props, {
28767
28778
  setRef: function setRef(e) {
28768
28779
  return ref.current = e;
@@ -28830,6 +28841,8 @@ var resolvers = (_resolvers = {}, _defineProperty$1(_resolvers, type.string, fun
28830
28841
  return yup__namespace.date().nullable().optional().typeError(typeErrorMessage || 'Value must be a date');
28831
28842
  }), _defineProperty$1(_resolvers, type.file, function () {
28832
28843
  return yup__namespace.mixed();
28844
+ }), _defineProperty$1(_resolvers, type.json, function () {
28845
+ return yup__namespace.mixed();
28833
28846
  }), _resolvers);
28834
28847
  var buildSubResolver = function buildSubResolver(props, key, dependencies, rawData) {
28835
28848
  var _props$constraints = props.constraints,
@@ -28935,7 +28948,6 @@ var getShapeAndDependencies = function getShapeAndDependencies(flow, schema) {
28935
28948
  };
28936
28949
 
28937
28950
  var CustomizableInput$1 = /*#__PURE__*/React__default["default"].memo(function (props) {
28938
- // console.log("CUSTOMIZABLE_INPUT" + props.field.name)
28939
28951
  if (props.render) {
28940
28952
  return props.render(_objectSpread2$1(_objectSpread2$1({}, props.field), {}, {
28941
28953
  error: props.error
@@ -28944,14 +28956,15 @@ var CustomizableInput$1 = /*#__PURE__*/React__default["default"].memo(function (
28944
28956
 
28945
28957
  return props.children;
28946
28958
  }, function (prev, next) {
28947
- return prev.field.value === next.field.value;
28959
+ return prev.field.value === next.field.value && next.errorDisplayed === prev.errorDisplayed;
28948
28960
  });
28949
28961
  var ControlledInput = function ControlledInput(_ref) {
28950
28962
  var defaultValue = _ref.defaultValue,
28951
28963
  step = _ref.step,
28952
28964
  entry = _ref.entry,
28953
28965
  children = _ref.children,
28954
- component = _ref.component;
28966
+ component = _ref.component,
28967
+ errorDisplayed = _ref.errorDisplayed;
28955
28968
 
28956
28969
  var _useController = reactHookForm.useController({
28957
28970
  defaultValue: defaultValue || null,
@@ -28992,8 +29005,7 @@ var ControlledInput = function ControlledInput(_ref) {
28992
29005
  } else {
28993
29006
  return e;
28994
29007
  }
28995
- }(); // field.onChange(!e ? null : e.target ? e.target.value || null : e)
28996
-
29008
+ }();
28997
29009
 
28998
29010
  field.onChange(value);
28999
29011
  option(step.onChange).map(function (onChange) {
@@ -29019,7 +29031,8 @@ var ControlledInput = function ControlledInput(_ref) {
29019
29031
  },
29020
29032
  rawValues: getValues()
29021
29033
  }, field),
29022
- error: error
29034
+ error: error,
29035
+ errorDisplayed: errorDisplayed
29023
29036
  }, component ? component(field, props) : /*#__PURE__*/React__default["default"].cloneElement(children, _objectSpread2$1({}, props)));
29024
29037
  };
29025
29038
 
@@ -29121,7 +29134,7 @@ var defaultVal = function defaultVal(value, array, defaultValue) {
29121
29134
  };
29122
29135
 
29123
29136
  var getDefaultValues = function getDefaultValues(flow, schema, value) {
29124
- return flow.reduce(function (acc, key) {
29137
+ return (flow || []).reduce(function (acc, key) {
29125
29138
  if (_typeof$1(key) === 'object') {
29126
29139
  return _objectSpread2$1(_objectSpread2$1({}, acc), getDefaultValues(key.flow, schema, value));
29127
29140
  }
@@ -29199,7 +29212,17 @@ var cleanOutputArray = function cleanOutputArray(obj, subSchema) {
29199
29212
 
29200
29213
  return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, cleanOutputArray(v, ((_subSchema$key3 = subSchema[key]) === null || _subSchema$key3 === void 0 ? void 0 : _subSchema$key3.schema) || {})));
29201
29214
  } else {
29202
- return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, v));
29215
+ var _subSchema$key4;
29216
+
29217
+ if (((_subSchema$key4 = subSchema[key]) === null || _subSchema$key4 === void 0 ? void 0 : _subSchema$key4.type) === 'json') {
29218
+ try {
29219
+ return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, JSON.parse(v)));
29220
+ } catch (err) {
29221
+ return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, v));
29222
+ }
29223
+ } else {
29224
+ return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, v));
29225
+ }
29203
29226
  }
29204
29227
  }, {});
29205
29228
  };
@@ -29626,7 +29649,8 @@ var Step = function Step(_ref9) {
29626
29649
  return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29627
29650
  defaultValue: defaultValue,
29628
29651
  step: step,
29629
- entry: entry
29652
+ entry: entry,
29653
+ errorDisplayed: errorDisplayed
29630
29654
  }, /*#__PURE__*/React__default["default"].createElement("textarea", {
29631
29655
  type: "text",
29632
29656
  className: classNames__default["default"](classes.input, _defineProperty$1({}, classes.input__invalid, errorDisplayed))
@@ -29638,7 +29662,8 @@ var Step = function Step(_ref9) {
29638
29662
  return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29639
29663
  defaultValue: defaultValue,
29640
29664
  step: step,
29641
- entry: entry
29665
+ entry: entry,
29666
+ errorDisplayed: errorDisplayed
29642
29667
  }, /*#__PURE__*/React__default["default"].createElement(Component, {
29643
29668
  className: classNames__default["default"](_defineProperty$1({}, classes.input__invalid, errorDisplayed))
29644
29669
  }));
@@ -29647,7 +29672,8 @@ var Step = function Step(_ref9) {
29647
29672
  return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29648
29673
  defaultValue: defaultValue,
29649
29674
  step: step,
29650
- entry: entry
29675
+ entry: entry,
29676
+ errorDisplayed: errorDisplayed
29651
29677
  }, /*#__PURE__*/React__default["default"].createElement(MarkdownInput, {
29652
29678
  className: classNames__default["default"](_defineProperty$1({}, classes.input__invalid, errorDisplayed))
29653
29679
  }));
@@ -29658,7 +29684,8 @@ var Step = function Step(_ref9) {
29658
29684
  return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29659
29685
  defaultValue: defaultValue,
29660
29686
  step: step,
29661
- entry: entry
29687
+ entry: entry,
29688
+ errorDisplayed: errorDisplayed
29662
29689
  }, /*#__PURE__*/React__default["default"].createElement(SelectInput, {
29663
29690
  className: classNames__default["default"](classes.flex_grow_1, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29664
29691
  disabled: functionalProperty(entry, step.disabled),
@@ -29667,7 +29694,6 @@ var Step = function Step(_ref9) {
29667
29694
  isMulti: step.isMulti,
29668
29695
  createOption: step.createOption,
29669
29696
  transformer: step.transformer,
29670
- optionsFrom: step.optionsFrom,
29671
29697
  buttons: step.format === format.buttonsSelect
29672
29698
  }));
29673
29699
  }
@@ -29676,7 +29702,8 @@ var Step = function Step(_ref9) {
29676
29702
  return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29677
29703
  defaultValue: defaultValue,
29678
29704
  step: step,
29679
- entry: entry
29705
+ entry: entry,
29706
+ errorDisplayed: errorDisplayed
29680
29707
  }, /*#__PURE__*/React__default["default"].createElement("input", {
29681
29708
  type: step.format || 'text',
29682
29709
  className: classNames__default["default"](classes.input, _defineProperty$1({}, classes.input__invalid, errorDisplayed))
@@ -29690,7 +29717,8 @@ var Step = function Step(_ref9) {
29690
29717
  return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29691
29718
  defaultValue: defaultValue,
29692
29719
  step: step,
29693
- entry: entry
29720
+ entry: entry,
29721
+ errorDisplayed: errorDisplayed
29694
29722
  }, /*#__PURE__*/React__default["default"].createElement(SelectInput, {
29695
29723
  className: classNames__default["default"](classes.content, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29696
29724
  possibleValues: step.options,
@@ -29699,7 +29727,6 @@ var Step = function Step(_ref9) {
29699
29727
  createOption: step.createOption,
29700
29728
  onCreateOption: step.onCreateOption,
29701
29729
  transformer: step.transformer,
29702
- optionsFrom: step.optionsFrom,
29703
29730
  buttons: step.format === format.buttonsSelect
29704
29731
  }));
29705
29732
 
@@ -29707,7 +29734,8 @@ var Step = function Step(_ref9) {
29707
29734
  return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29708
29735
  defaultValue: defaultValue,
29709
29736
  step: step,
29710
- entry: entry
29737
+ entry: entry,
29738
+ errorDisplayed: errorDisplayed
29711
29739
  }, /*#__PURE__*/React__default["default"].createElement("input", {
29712
29740
  type: step.format || 'number',
29713
29741
  className: classNames__default["default"](classes.input, _defineProperty$1({}, classes.input__invalid, errorDisplayed))
@@ -29718,7 +29746,8 @@ var Step = function Step(_ref9) {
29718
29746
  return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29719
29747
  defaultValue: defaultValue,
29720
29748
  step: step,
29721
- entry: entry
29749
+ entry: entry,
29750
+ errorDisplayed: errorDisplayed
29722
29751
  }, /*#__PURE__*/React__default["default"].createElement(BooleanInput, {
29723
29752
  className: classNames__default["default"](_defineProperty$1({}, classes.input__invalid, errorDisplayed))
29724
29753
  }));
@@ -29730,7 +29759,8 @@ var Step = function Step(_ref9) {
29730
29759
  return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29731
29760
  defaultValue: defaultValue,
29732
29761
  step: step,
29733
- entry: entry
29762
+ entry: entry,
29763
+ errorDisplayed: errorDisplayed
29734
29764
  }, /*#__PURE__*/React__default["default"].createElement(SelectInput, {
29735
29765
  className: classNames__default["default"](classes.flex_grow_1, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29736
29766
  possibleValues: step.options,
@@ -29739,7 +29769,6 @@ var Step = function Step(_ref9) {
29739
29769
  createOption: step.createOption,
29740
29770
  onCreateOption: step.onCreateOption,
29741
29771
  transformer: step.transformer,
29742
- optionsFrom: step.optionsFrom,
29743
29772
  buttons: step.format === format.buttonsSelect
29744
29773
  }));
29745
29774
 
@@ -29781,10 +29810,12 @@ var Step = function Step(_ref9) {
29781
29810
  defaultValue: defaultValue,
29782
29811
  step: step,
29783
29812
  entry: entry,
29813
+ errorDisplayed: errorDisplayed,
29784
29814
  component: function component(field, props) {
29785
29815
  return /*#__PURE__*/React__default["default"].createElement(CodeInput, _extends({}, props, {
29786
29816
  className: classNames__default["default"](_defineProperty$1({}, classes.input__invalid, error)),
29787
29817
  onChange: function onChange(e) {
29818
+ _readOnlyError("errorDisplayed");
29788
29819
  var v;
29789
29820
 
29790
29821
  try {
@@ -29811,7 +29842,8 @@ var Step = function Step(_ref9) {
29811
29842
  return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29812
29843
  defaultValue: defaultValue,
29813
29844
  step: step,
29814
- entry: entry
29845
+ entry: entry,
29846
+ errorDisplayed: errorDisplayed
29815
29847
  }, /*#__PURE__*/React__default["default"].createElement(ObjectInput, {
29816
29848
  className: classNames__default["default"](_defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29817
29849
  possibleValues: step.options
@@ -29822,7 +29854,8 @@ var Step = function Step(_ref9) {
29822
29854
  return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29823
29855
  defaultValue: defaultValue,
29824
29856
  step: step,
29825
- entry: entry
29857
+ entry: entry,
29858
+ errorDisplayed: errorDisplayed
29826
29859
  }, /*#__PURE__*/React__default["default"].createElement(reactRainbowComponents.DatePicker, {
29827
29860
  className: classNames__default["default"](classes.datepicker, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29828
29861
  formatStyle: "large"
@@ -29887,11 +29920,35 @@ var Step = function Step(_ref9) {
29887
29920
  return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29888
29921
  defaultValue: defaultValue,
29889
29922
  step: step,
29890
- entry: entry
29923
+ entry: entry,
29924
+ errorDisplayed: errorDisplayed
29891
29925
  }, /*#__PURE__*/React__default["default"].createElement(FileInput, null));
29892
29926
  }
29893
29927
  });
29894
29928
 
29929
+ case type.json:
29930
+ return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29931
+ defaultValue: defaultValue,
29932
+ step: step,
29933
+ entry: entry,
29934
+ component: function component(field, props) {
29935
+ return /*#__PURE__*/React__default["default"].createElement(CodeInput, _extends({}, props, {
29936
+ className: classNames__default["default"](_defineProperty$1({}, classes.input__invalid, error)),
29937
+ onChange: function onChange(v) {
29938
+ field.onChange(v);
29939
+ option(step.onChange).map(function (onChange) {
29940
+ return onChange({
29941
+ rawValues: getValues(),
29942
+ value: v,
29943
+ setValue: _setValue
29944
+ });
29945
+ });
29946
+ },
29947
+ value: field.value
29948
+ }));
29949
+ }
29950
+ });
29951
+
29895
29952
  default:
29896
29953
  return null;
29897
29954
  }
@@ -29969,10 +30026,11 @@ var ArrayStep = function ArrayStep(_ref12) {
29969
30026
  type: "button",
29970
30027
  className: classNames__default["default"](classes.btn, classes.btn_blue, classes.btn_sm, classes.mt_5, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29971
30028
  onClick: function onClick() {
30029
+ var newValue = cleanInputArray({}, getValues(entry), step.flow, step.schema);
29972
30030
  append({
29973
- value: step.addableDefaultValue || defaultVal(null)
29974
- });
29975
- trigger(entry);
30031
+ value: step.addableDefaultValue || (newValue ? newValue : defaultVal())
30032
+ }); // trigger(entry);
30033
+
29976
30034
  option(step.onChange).map(function (onChange) {
29977
30035
  return onChange({
29978
30036
  rawValues: getValues(),
@@ -29988,7 +30046,7 @@ var ArrayStep = function ArrayStep(_ref12) {
29988
30046
  };
29989
30047
 
29990
30048
  var NestedForm = function NestedForm(_ref13) {
29991
- var _classNames16;
30049
+ var _classNames17;
29992
30050
 
29993
30051
  var schema = _ref13.schema,
29994
30052
  flow = _ref13.flow,
@@ -30080,7 +30138,7 @@ var NestedForm = function NestedForm(_ref13) {
30080
30138
  return x.visibleStep;
30081
30139
  }).length > 1 && step.label !== null;
30082
30140
  return /*#__PURE__*/React__default["default"].createElement("div", {
30083
- className: classNames__default["default"]((_classNames16 = {}, _defineProperty$1(_classNames16, classes.nestedform__border, bordered), _defineProperty$1(_classNames16, classes.border__error, !!errorDisplayed), _classNames16)),
30141
+ className: classNames__default["default"]((_classNames17 = {}, _defineProperty$1(_classNames17, classes.nestedform__border, bordered), _defineProperty$1(_classNames17, classes.border__error, !!errorDisplayed), _classNames17)),
30084
30142
  style: {
30085
30143
  position: 'relative'
30086
30144
  }
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.38",
4
+ "version": "1.0.41",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/esm/index.js",
7
7
  "types": "lib/index.js",