@maif/react-forms 1.0.36 → 1.0.37-rc.1

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 (69) hide show
  1. package/README.md +1 -1
  2. package/lib/esm/index.js +461 -573
  3. package/lib/index.js +460 -572
  4. package/package.json +7 -2
  5. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -10
  6. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -10
  7. package/.github/workflows/build-playground.yml +0 -34
  8. package/.github/workflows/generate-release-note.yml +0 -48
  9. package/.github/workflows/release.yml +0 -73
  10. package/docs/asset-manifest.json +0 -24
  11. package/docs/index.html +0 -1
  12. package/docs/manifest.json +0 -25
  13. package/docs/robots.txt +0 -3
  14. package/docs/static/css/2.6902daba.chunk.css +0 -11
  15. package/docs/static/css/2.6902daba.chunk.css.map +0 -1
  16. package/docs/static/css/main.8693c9f3.chunk.css +0 -2
  17. package/docs/static/css/main.8693c9f3.chunk.css.map +0 -1
  18. package/docs/static/js/2.bc3a307f.chunk.js +0 -3
  19. package/docs/static/js/2.bc3a307f.chunk.js.LICENSE.txt +0 -147
  20. package/docs/static/js/2.bc3a307f.chunk.js.map +0 -1
  21. package/docs/static/js/main.a5abf7f1.chunk.js +0 -2
  22. package/docs/static/js/main.a5abf7f1.chunk.js.map +0 -1
  23. package/docs/static/js/runtime-main.368a22f5.js +0 -2
  24. package/docs/static/js/runtime-main.368a22f5.js.map +0 -1
  25. package/docs/static/media/fa-brands-400.2285773e.woff +0 -0
  26. package/docs/static/media/fa-brands-400.23f19bb0.eot +0 -0
  27. package/docs/static/media/fa-brands-400.2f517e09.svg +0 -3717
  28. package/docs/static/media/fa-brands-400.527940b1.ttf +0 -0
  29. package/docs/static/media/fa-brands-400.d878b0a6.woff2 +0 -0
  30. package/docs/static/media/fa-regular-400.4689f52c.svg +0 -801
  31. package/docs/static/media/fa-regular-400.491974d1.ttf +0 -0
  32. package/docs/static/media/fa-regular-400.77206a6b.eot +0 -0
  33. package/docs/static/media/fa-regular-400.7a333762.woff2 +0 -0
  34. package/docs/static/media/fa-regular-400.bb58e57c.woff +0 -0
  35. package/docs/static/media/fa-solid-900.1551f4f6.woff2 +0 -0
  36. package/docs/static/media/fa-solid-900.7a8b4f13.svg +0 -5034
  37. package/docs/static/media/fa-solid-900.9bbb245e.eot +0 -0
  38. package/docs/static/media/fa-solid-900.be9ee23c.ttf +0 -0
  39. package/docs/static/media/fa-solid-900.eeccf4f6.woff +0 -0
  40. package/examples/.env +0 -2
  41. package/examples/README.md +0 -0
  42. package/examples/package.json +0 -43
  43. package/examples/public/index.html +0 -43
  44. package/examples/public/manifest.json +0 -25
  45. package/examples/public/robots.txt +0 -3
  46. package/examples/src/App.css +0 -10
  47. package/examples/src/Playground.js +0 -158
  48. package/examples/src/WrapperError.js +0 -21
  49. package/examples/src/index.css +0 -13
  50. package/examples/src/index.js +0 -11
  51. package/examples/src/reportWebVitals.js +0 -13
  52. package/examples/src/schema/basic.json +0 -15
  53. package/examples/src/schema/constrainedBasic.json +0 -28
  54. package/examples/src/schema/constraintsWithRef.json +0 -44
  55. package/examples/src/schema/dynamicForm.json +0 -57
  56. package/examples/src/schema/formArray.js +0 -30
  57. package/examples/src/schema/formInForm.json +0 -39
  58. package/examples/src/schema/selector.json +0 -14
  59. package/jest-sync.config.json +0 -17
  60. package/rollup.config.js +0 -66
  61. package/scripts/build.sh +0 -34
  62. package/test/array.spec.js +0 -78
  63. package/test/bool.spec.js +0 -29
  64. package/test/date.spec.js +0 -41
  65. package/test/number.spec.js +0 -124
  66. package/test/object.spec.js +0 -14
  67. package/test/string.spec.js +0 -87
  68. package/test/testUtils.js +0 -30
  69. package/test-setup.js +0 -9
package/lib/index.js CHANGED
@@ -62,7 +62,8 @@ var format = {
62
62
  select: 'select',
63
63
  code: 'code',
64
64
  markdown: 'markdown',
65
- text: 'text',
65
+ text: 'textarea',
66
+ textarea: 'textarea',
66
67
  email: 'email',
67
68
  password: 'password',
68
69
  hidden: 'hidden',
@@ -215,7 +216,24 @@ var _maxSize = function maxSize(ref) {
215
216
 
216
217
  var _nullable = function nullable() {
217
218
  return function (r) {
218
- return r.nullable().optional();
219
+ return r.nullable().optional().transform(function (v) {
220
+ var _r$describe = r.describe(),
221
+ type = _r$describe.type;
222
+
223
+ switch (type) {
224
+ case 'string':
225
+ case 'number':
226
+ return (v || '').toString().length <= 0 ? null : v;
227
+
228
+ case 'object':
229
+ return Object.keys(v || {}).length === 0 ? null : v;
230
+
231
+ default:
232
+ return v;
233
+ }
234
+
235
+ return v;
236
+ });
219
237
  };
220
238
  };
221
239
 
@@ -253,12 +271,23 @@ var _oneOf = function oneOf(arrayOfValues) {
253
271
  };
254
272
  };
255
273
 
256
- var _ref20 = function ref(_ref) {
274
+ var _blacklist = function blacklist(arrayOfValues) {
275
+ var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "This value can't include the following values ".concat(arrayOfValues.join(', '));
276
+ return function (r) {
277
+ return r.test('blacklist' + Date.now(), message, function (value) {
278
+ return !arrayOfValues.some(function (f) {
279
+ return value.includes(f);
280
+ });
281
+ });
282
+ };
283
+ };
284
+
285
+ var _ref21 = function ref(_ref) {
257
286
  return yup__namespace.ref(_ref);
258
287
  };
259
288
 
260
289
  var maybeRef = function maybeRef(x) {
261
- return x !== null && x !== void 0 && x.ref ? _ref20(x.ref) : x;
290
+ return x !== null && x !== void 0 && x.ref ? _ref21(x.ref) : x;
262
291
  }; //### JSON method ###
263
292
 
264
293
 
@@ -371,8 +400,14 @@ var jsonConstraints = {
371
400
  message = _ref19$message === void 0 ? "This value must be one of ".concat(arrayOfValues.join(', ')) : _ref19$message;
372
401
  return _oneOf(arrayOfValues, message);
373
402
  },
403
+ blacklist: function blacklist(_ref20) {
404
+ var arrayOfValues = _ref20.arrayOfValues,
405
+ _ref20$message = _ref20.message,
406
+ message = _ref20$message === void 0 ? "This value can't include the following values ".concat(arrayOfValues.join(', ')) : _ref20$message;
407
+ return _blacklist(arrayOfValues, message);
408
+ },
374
409
  ref: function ref(val) {
375
- return _ref20(val.ref);
410
+ return _ref21(val.ref);
376
411
  },
377
412
  nullable: function nullable() {
378
413
  return _nullable();
@@ -401,7 +436,8 @@ var constraints = /*#__PURE__*/Object.freeze({
401
436
  test: _test,
402
437
  when: _when,
403
438
  oneOf: _oneOf,
404
- ref: _ref20,
439
+ blacklist: _blacklist,
440
+ ref: _ref21,
405
441
  jsonConstraints: jsonConstraints
406
442
  });
407
443
 
@@ -683,6 +719,9 @@ var style = (_style = {
683
719
  jc_flex_end: {
684
720
  justifyContent: "flex-end"
685
721
  },
722
+ jc_flex_start: {
723
+ justifyContent: "flex-start"
724
+ },
686
725
  ac_center: {
687
726
  alignContent: "center"
688
727
  },
@@ -914,29 +953,48 @@ var None = {
914
953
  }
915
954
  };
916
955
 
917
- var deepEqual = function deepEqual(a, b) {
918
- if (a === b) return true;
919
- if (_typeof$1(a) !== 'object' || _typeof$1(b) !== 'object' || a === null || b === null) return false;
920
- var keysA = Object.keys(a),
921
- keysB = Object.keys(b);
922
- if (keysA.length !== keysB.length) return false;
956
+ var deepEqual = function deepEqual(obj1, obj2) {
957
+ if (obj1 === obj2) return true;
923
958
 
924
- for (var _i = 0, _keysA = keysA; _i < _keysA.length; _i++) {
925
- var key = _keysA[_i];
926
- if (!keysB.includes(key)) return false;
959
+ if (_typeof$1(obj1) !== 'object' || _typeof$1(obj2) !== 'object' || obj1 == null || obj2 == null) {
960
+ return false;
961
+ }
927
962
 
928
- if (typeof a[key] === 'function' || typeof b[key] === 'function') {
929
- if (a[key].toString() !== b[key].toString()) return false;
930
- } else {
931
- if (!deepEqual(a[key], b[key])) return false;
932
- }
963
+ var keysA = Object.keys(obj1);
964
+ var keysB = Object.keys(obj2);
965
+
966
+ if (keysA.length !== keysB.length) {
967
+ return false;
933
968
  }
934
969
 
935
- return true;
970
+ var result = true;
971
+ keysA.forEach(function (key) {
972
+ if (!keysB.includes(key)) {
973
+ result = false;
974
+ }
975
+
976
+ if (typeof obj1[key] === 'function' || typeof obj2[key] === 'function') {
977
+ if (obj1[key].toString() !== obj2[key].toString()) {
978
+ result = false;
979
+ }
980
+ }
981
+
982
+ if (!deepEqual(obj1[key], obj2[key])) {
983
+ result = false;
984
+ }
985
+ });
986
+ return result;
936
987
  };
937
988
  var isPromise = function isPromise(value) {
938
989
  return Boolean(value && typeof value.then === 'function');
939
990
  };
991
+ var arrayFlatten = function arrayFlatten(array) {
992
+ if (array.some(Array.isArray)) {
993
+ return arrayFlatten(array.flat());
994
+ }
995
+
996
+ return array;
997
+ };
940
998
 
941
999
  var valueToSelectOption = function valueToSelectOption(value) {
942
1000
  var possibleValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
@@ -1071,7 +1129,7 @@ var SelectInput = function SelectInput(props) {
1071
1129
  return onChange(v);
1072
1130
  };
1073
1131
 
1074
- if (props.format === format.buttonsSelect) {
1132
+ if (props.buttons) {
1075
1133
  return /*#__PURE__*/React__default["default"].createElement("div", {
1076
1134
  style: {
1077
1135
  display: 'flex'
@@ -1114,6 +1172,7 @@ var SelectInput = function SelectInput(props) {
1114
1172
  name: "".concat(props.label, "-search"),
1115
1173
  isLoading: loading,
1116
1174
  value: value,
1175
+ isClearable: true,
1117
1176
  defaultValue: value,
1118
1177
  isDisabled: props.disabled,
1119
1178
  placeholder: props.placeholder,
@@ -23631,7 +23690,7 @@ const Emoji = {
23631
23690
  }]
23632
23691
  };
23633
23692
 
23634
- const data = /*@__PURE__*/defineLanguageFacet({ block: { open: "<!--", close: "-->" } });
23693
+ const data$1 = /*@__PURE__*/defineLanguageFacet({ block: { open: "<!--", close: "-->" } });
23635
23694
  const commonmark = /*@__PURE__*/parser.configure({
23636
23695
  props: [
23637
23696
  /*@__PURE__*/styleTags({
@@ -23667,12 +23726,12 @@ const commonmark = /*@__PURE__*/parser.configure({
23667
23726
  Document: () => null
23668
23727
  }),
23669
23728
  /*@__PURE__*/languageDataProp.add({
23670
- Document: data
23729
+ Document: data$1
23671
23730
  })
23672
23731
  ]
23673
23732
  });
23674
23733
  function mkLang(parser) {
23675
- return new Language(data, parser, parser.nodeSet.types.find(t => t.name == "Document"));
23734
+ return new Language(data$1, parser, parser.nodeSet.types.find(t => t.name == "Document"));
23676
23735
  }
23677
23736
  /**
23678
23737
  Language support for strict CommonMark.
@@ -28460,7 +28519,7 @@ function Editor(parent, mode, onChange, value) {
28460
28519
  }
28461
28520
  } catch (_) {}
28462
28521
  }), EditorView.editable.of(!readOnly)]),
28463
- doc: _typeof(value) === 'object' ? value.value : value
28522
+ doc: !value ? '' : _typeof(value) === 'object' ? value.value : value
28464
28523
  });
28465
28524
  return new EditorView({
28466
28525
  state: state,
@@ -28543,7 +28602,6 @@ var DaikokuExtension = function DaikokuExtension() {
28543
28602
  type: 'lang',
28544
28603
  regex: /@@@/g,
28545
28604
  replace: function replace() {
28546
- console.log('@@@');
28547
28605
  return '</div>';
28548
28606
  }
28549
28607
  }; // @@@warning
@@ -28887,10 +28945,12 @@ function SingleLineCode(_ref) {
28887
28945
  }
28888
28946
 
28889
28947
  var _resolvers;
28890
- var resolvers = (_resolvers = {}, _defineProperty$1(_resolvers, type.string, function () {
28891
- return yup__namespace.string();
28948
+ var resolvers = (_resolvers = {}, _defineProperty$1(_resolvers, type.string, function (typeErrorMessage) {
28949
+ return yup__namespace.string().typeError(typeErrorMessage || 'Value must be a string');
28892
28950
  }), _defineProperty$1(_resolvers, type.number, function (typeErrorMessage) {
28893
- return yup__namespace.number().typeError(typeErrorMessage || 'Value must be a number');
28951
+ return yup__namespace.number().transform(function (v) {
28952
+ return isNaN(v) ? null : v;
28953
+ }).typeError(typeErrorMessage || 'Value must be a number');
28894
28954
  }), _defineProperty$1(_resolvers, type.bool, function () {
28895
28955
  return yup__namespace.bool();
28896
28956
  }), _defineProperty$1(_resolvers, type.object, function () {
@@ -28987,6 +29047,79 @@ var getShapeAndDependencies = function getShapeAndDependencies(flow, schema) {
28987
29047
  };
28988
29048
  };
28989
29049
 
29050
+ var CustomizableInput$1 = function CustomizableInput(props) {
29051
+ if (props.render) {
29052
+ return props.render(_objectSpread2$1(_objectSpread2$1({}, props.field), {}, {
29053
+ error: props.error
29054
+ }));
29055
+ }
29056
+
29057
+ return props.children;
29058
+ };
29059
+
29060
+ var ControlledInput = function ControlledInput(_ref) {
29061
+ var defaultValue = _ref.defaultValue,
29062
+ step = _ref.step,
29063
+ entry = _ref.entry,
29064
+ children = _ref.children,
29065
+ component = _ref.component;
29066
+
29067
+ var _useController = reactHookForm.useController({
29068
+ defaultValue: defaultValue || null,
29069
+ name: entry
29070
+ }),
29071
+ field = _useController.field;
29072
+
29073
+ var _useFormContext = reactHookForm.useFormContext(),
29074
+ getValues = _useFormContext.getValues,
29075
+ _setValue = _useFormContext.setValue,
29076
+ errors = _useFormContext.formState.errors;
29077
+
29078
+ var functionalProperty = function functionalProperty(entry, prop) {
29079
+ if (typeof prop === 'function') {
29080
+ return prop({
29081
+ rawValues: getValues(),
29082
+ value: getValues(entry)
29083
+ });
29084
+ } else {
29085
+ return prop;
29086
+ }
29087
+ };
29088
+
29089
+ var props = _objectSpread2$1(_objectSpread2$1(_objectSpread2$1({}, field), step.props), {}, {
29090
+ id: entry,
29091
+ readOnly: functionalProperty(entry, step.disabled) ? 'readOnly' : null,
29092
+ placeholder: step.placeholder,
29093
+ onChange: function onChange(e) {
29094
+ field.onChange(!e ? null : e.target ? e.target.value || null : e);
29095
+ option(step.onChange).map(function (onChange) {
29096
+ return onChange({
29097
+ rawValues: getValues(),
29098
+ value: e.target.value,
29099
+ setValue: _setValue
29100
+ });
29101
+ });
29102
+ },
29103
+ value: field.value || ''
29104
+ });
29105
+
29106
+ var error = entry.split('.').reduce(function (acc, curr) {
29107
+ return acc && acc[curr];
29108
+ }, errors);
29109
+ console.log("render controlled input " + entry);
29110
+ return /*#__PURE__*/React__default["default"].createElement(CustomizableInput$1, {
29111
+ render: step.render,
29112
+ field: _objectSpread2$1({
29113
+ parent: parent,
29114
+ setValue: function setValue(key, value) {
29115
+ return _setValue(key, value);
29116
+ },
29117
+ rawValues: getValues()
29118
+ }, field),
29119
+ error: error
29120
+ }, component ? component(field, props) : /*#__PURE__*/React__default["default"].cloneElement(children, _objectSpread2$1({}, props)));
29121
+ };
29122
+
28990
29123
  var usePrevious = function usePrevious(value) {
28991
29124
  // The ref object is a generic container whose current property is mutable ...
28992
29125
  // ... and can hold any value, similar to an instance property on a class
@@ -29078,33 +29211,16 @@ var CustomizableInput = function CustomizableInput(props) {
29078
29211
  return props.children;
29079
29212
  };
29080
29213
 
29081
- var defaultVal = function defaultVal(t, array, defaultValue) {
29214
+ var defaultVal = function defaultVal(value, t, array, defaultValue) {
29082
29215
  if (!!defaultValue) return defaultValue;
29083
29216
  if (!!array) return [];
29084
-
29085
- switch (t) {
29086
- case type.bool:
29087
- return false;
29088
-
29089
- case type.number:
29090
- return 0;
29091
-
29092
- case type.object:
29093
- return undefined;
29094
- //todo: passur de moi
29095
-
29096
- case type.string:
29097
- return "";
29098
-
29099
- default:
29100
- return undefined;
29101
- }
29217
+ return value;
29102
29218
  };
29103
29219
 
29104
- var getDefaultValues = function getDefaultValues(flow, schema) {
29220
+ var getDefaultValues = function getDefaultValues(flow, schema, value) {
29105
29221
  return flow.reduce(function (acc, key) {
29106
29222
  if (_typeof$1(key) === 'object') {
29107
- return _objectSpread2$1(_objectSpread2$1({}, acc), getDefaultValues(key.flow, schema));
29223
+ return _objectSpread2$1(_objectSpread2$1({}, acc), getDefaultValues(key.flow, schema, value));
29108
29224
  }
29109
29225
 
29110
29226
  var entry = schema[key];
@@ -29113,15 +29229,25 @@ var getDefaultValues = function getDefaultValues(flow, schema) {
29113
29229
  return acc;
29114
29230
  }
29115
29231
 
29116
- return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, defaultVal(entry.type, entry.array || entry.isMulti, entry.defaultValue)));
29232
+ return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, defaultVal(value ? value[key] : null, entry.type, entry.array || entry.isMulti, entry.defaultValue)));
29117
29233
  }, {});
29118
29234
  };
29119
29235
 
29120
- var cleanInputArray = function cleanInputArray(obj, defaultValues, subSchema) {
29121
- return Object.entries(subSchema).reduce(function (acc, _ref2) {
29122
- var _ref3 = _slicedToArray(_ref2, 2),
29123
- key = _ref3[0],
29124
- step = _ref3[1];
29236
+ var cleanInputArray = function cleanInputArray(obj, defaultValues, flow, subSchema) {
29237
+ var realFlow = option(flow).map(function (f) {
29238
+ return f.map(function (v) {
29239
+ return v.flow || v;
29240
+ });
29241
+ }).map(arrayFlatten).getOrElse(Object.keys(subSchema));
29242
+ return Object.entries(subSchema).filter(function (_ref2) {
29243
+ var _ref3 = _slicedToArray(_ref2, 1),
29244
+ key = _ref3[0];
29245
+
29246
+ return realFlow.includes(key);
29247
+ }).reduce(function (acc, _ref4) {
29248
+ var _ref5 = _slicedToArray(_ref4, 2),
29249
+ key = _ref5[0],
29250
+ step = _ref5[1];
29125
29251
 
29126
29252
  var v;
29127
29253
  if (obj) v = obj[key];
@@ -29133,10 +29259,10 @@ var cleanInputArray = function cleanInputArray(obj, defaultValues, subSchema) {
29133
29259
  value: value
29134
29260
  };
29135
29261
  })));
29136
- } else if (!!v && _typeof$1(v) === 'object' && !(v instanceof Date) && !Array.isArray(v)) {
29137
- var _subSchema$key;
29262
+ } else if (_typeof$1(v) === 'object' && !(v instanceof Date) && !Array.isArray(v)) {
29263
+ var _subSchema$key, _subSchema$key2;
29138
29264
 
29139
- return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, cleanInputArray(v, defaultValues, ((_subSchema$key = subSchema[key]) === null || _subSchema$key === void 0 ? void 0 : _subSchema$key.schema) || {})));
29265
+ return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, cleanInputArray(v, defaultValues, (_subSchema$key = subSchema[key]) === null || _subSchema$key === void 0 ? void 0 : _subSchema$key.flow, ((_subSchema$key2 = subSchema[key]) === null || _subSchema$key2 === void 0 ? void 0 : _subSchema$key2.schema) || {})));
29140
29266
  } else {
29141
29267
  return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, v));
29142
29268
  }
@@ -29158,19 +29284,19 @@ var cleanOutputArray = function cleanOutputArray(obj, subSchema) {
29158
29284
  }).getOrElse(false);
29159
29285
 
29160
29286
  if (isArray) {
29161
- return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, v.map(function (_ref4) {
29162
- var value = _ref4.value;
29287
+ return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, v.map(function (_ref6) {
29288
+ var value = _ref6.value;
29163
29289
  return value;
29164
29290
  })));
29165
29291
  }
29166
29292
 
29167
29293
  return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, v));
29168
29294
  } else if (!!v && _typeof$1(v) === 'object' && !(v instanceof Date && !Array.isArray(v))) {
29169
- var _subSchema$key2;
29295
+ var _subSchema$key3;
29170
29296
 
29171
- return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, cleanOutputArray(v, ((_subSchema$key2 = subSchema[key]) === null || _subSchema$key2 === void 0 ? void 0 : _subSchema$key2.schema) || {})));
29297
+ 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) || {})));
29172
29298
  } else {
29173
- return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, v));
29299
+ return _objectSpread2$1(_objectSpread2$1({}, acc), {}, _defineProperty$1({}, key, v === undefined ? null : v));
29174
29300
  }
29175
29301
  }, {});
29176
29302
  };
@@ -29186,20 +29312,42 @@ var validate = function validate(flow, schema, value) {
29186
29312
  abortEarly: false
29187
29313
  });
29188
29314
  };
29189
- var Form = /*#__PURE__*/React__default["default"].forwardRef(function (_ref5, ref) {
29190
- var schema = _ref5.schema,
29191
- flow = _ref5.flow,
29192
- value = _ref5.value,
29193
- inputWrapper = _ref5.inputWrapper,
29194
- onSubmit = _ref5.onSubmit,
29195
- _ref5$onError = _ref5.onError,
29196
- onError = _ref5$onError === void 0 ? function () {} : _ref5$onError,
29197
- footer = _ref5.footer,
29198
- _ref5$style = _ref5.style,
29199
- style = _ref5$style === void 0 ? {} : _ref5$style,
29200
- className = _ref5.className,
29201
- _ref5$options = _ref5.options,
29202
- options = _ref5$options === void 0 ? {} : _ref5$options;
29315
+
29316
+ var Watcher = function Watcher(_ref7) {
29317
+ var options = _ref7.options,
29318
+ control = _ref7.control,
29319
+ schema = _ref7.schema;
29320
+ var data = reactHookForm.useWatch({
29321
+ control: control
29322
+ });
29323
+
29324
+ if (options.watch) {
29325
+ if (typeof options.watch === 'function') {
29326
+ options.watch(cleanOutputArray(data, schema));
29327
+ } else {
29328
+ console.group('react-form watch');
29329
+ console.log(cleanOutputArray(data, schema));
29330
+ console.groupEnd();
29331
+ }
29332
+ }
29333
+
29334
+ return null;
29335
+ };
29336
+
29337
+ var Form = /*#__PURE__*/React__default["default"].forwardRef(function (_ref8, ref) {
29338
+ var schema = _ref8.schema,
29339
+ flow = _ref8.flow,
29340
+ value = _ref8.value,
29341
+ inputWrapper = _ref8.inputWrapper,
29342
+ onSubmit = _ref8.onSubmit,
29343
+ _ref8$onError = _ref8.onError,
29344
+ onError = _ref8$onError === void 0 ? function () {} : _ref8$onError,
29345
+ footer = _ref8.footer,
29346
+ _ref8$style = _ref8.style,
29347
+ style = _ref8$style === void 0 ? {} : _ref8$style,
29348
+ className = _ref8.className,
29349
+ _ref8$options = _ref8.options,
29350
+ options = _ref8$options === void 0 ? {} : _ref8$options;
29203
29351
  var classes = useCustomStyle(style);
29204
29352
  var formFlow = flow || Object.keys(schema);
29205
29353
 
@@ -29218,7 +29366,7 @@ var Form = /*#__PURE__*/React__default["default"].forwardRef(function (_ref5, re
29218
29366
  });
29219
29367
  };
29220
29368
 
29221
- var defaultValues = getDefaultValues(formFlow, schema); //FIXME: get real schema through the switch
29369
+ var defaultValues = getDefaultValues(formFlow, schema, value); //FIXME: get real schema through the switch
29222
29370
 
29223
29371
  var _resolver = function resolver(rawData) {
29224
29372
  var _getShapeAndDependenc2 = getShapeAndDependencies(formFlow, schema, [], rawData),
@@ -29233,50 +29381,49 @@ var Form = /*#__PURE__*/React__default["default"].forwardRef(function (_ref5, re
29233
29381
  resolver: function resolver(data, context, options) {
29234
29382
  return yup$1.yupResolver(_resolver(data))(data, context, options);
29235
29383
  },
29236
- defaultValues: cleanInputArray(value, defaultValues, schema),
29384
+ defaultValues: cleanInputArray(value, defaultValues, flow, schema),
29237
29385
  shouldFocusError: false,
29238
- mode: 'onChange'
29386
+ mode: 'onSubmit' // onChange triggers re-rendering
29387
+
29239
29388
  });
29240
29389
  var _handleSubmit = methods.handleSubmit,
29241
29390
  _methods$formState = methods.formState,
29242
29391
  errors = _methods$formState.errors,
29243
29392
  dirtyFields = _methods$formState.dirtyFields,
29244
29393
  _reset = methods.reset,
29245
- watch = methods.watch,
29246
29394
  trigger = methods.trigger,
29247
29395
  getValues = methods.getValues;
29248
29396
  React.useEffect(function () {
29397
+ console.log('re-render cauz trigger');
29249
29398
  trigger();
29250
29399
  }, [trigger]);
29251
29400
  React.useEffect(function () {
29252
- if (value) {
29253
- _reset(cleanInputArray(value, defaultValues, schema));
29254
- }
29401
+ console.log('re-render cauz value/reset changed');
29402
+
29403
+ _reset(cleanInputArray(value, defaultValues, flow, schema));
29255
29404
  }, [value, _reset]);
29256
29405
  React.useEffect(function () {
29257
- _reset(cleanInputArray(value, defaultValues, schema));
29406
+ console.log('re-render cauz schema changed');
29407
+
29408
+ _reset(cleanInputArray(value, defaultValues, flow, schema));
29258
29409
  }, [schema]);
29259
- var data = watch();
29260
- var prevData = usePrevious(data);
29261
- React.useEffect(function () {
29262
- //todo: with debounce
29263
- if (!!options.autosubmit && JSON.stringify(data) !== JSON.stringify(prevData)) {
29264
- _handleSubmit(function (data) {
29265
- var clean = cleanOutputArray(data, schema);
29266
- onSubmit(clean);
29267
- }, onError)();
29268
- }
29269
- }, [data]);
29270
29410
 
29271
- if (options.watch) {
29272
- if (typeof options.watch === 'function') {
29273
- options.watch(watch());
29411
+ if (!!options.autosubmit) {
29412
+ _handleSubmit(function (data) {
29413
+ return onSubmit(cleanOutputArray(data, schema));
29414
+ }, onError)();
29415
+ }
29416
+
29417
+ var functionalProperty = function functionalProperty(entry, prop) {
29418
+ if (typeof prop === 'function') {
29419
+ return prop({
29420
+ rawValues: getValues(),
29421
+ value: getValues(entry)
29422
+ });
29274
29423
  } else {
29275
- console.group('react-form watch');
29276
- console.log(watch());
29277
- console.groupEnd();
29424
+ return prop;
29278
29425
  }
29279
- }
29426
+ };
29280
29427
 
29281
29428
  React.useImperativeHandle(ref, function () {
29282
29429
  return {
@@ -29293,19 +29440,11 @@ var Form = /*#__PURE__*/React__default["default"].forwardRef(function (_ref5, re
29293
29440
  methods: methods
29294
29441
  };
29295
29442
  });
29296
-
29297
- var functionalProperty = function functionalProperty(entry, prop) {
29298
- if (typeof prop === 'function') {
29299
- return prop({
29300
- rawValues: getValues(),
29301
- value: getValues(entry)
29302
- });
29303
- } else {
29304
- return prop;
29305
- }
29306
- };
29307
-
29308
- return /*#__PURE__*/React__default["default"].createElement(reactHookForm.FormProvider, methods, /*#__PURE__*/React__default["default"].createElement("form", {
29443
+ return /*#__PURE__*/React__default["default"].createElement(reactHookForm.FormProvider, methods, /*#__PURE__*/React__default["default"].createElement(Watcher, {
29444
+ options: options,
29445
+ control: methods.control,
29446
+ schema: schema
29447
+ }), /*#__PURE__*/React__default["default"].createElement("form", {
29309
29448
  className: className || "".concat(classes.pr_15, " ").concat(classes.w_100),
29310
29449
  onSubmit: _handleSubmit(function (data) {
29311
29450
  var clean = cleanOutputArray(data, schema);
@@ -29327,6 +29466,8 @@ var Form = /*#__PURE__*/React__default["default"].forwardRef(function (_ref5, re
29327
29466
  }).map(function (visible) {
29328
29467
  switch (_typeof$1(visible)) {
29329
29468
  case 'object':
29469
+ console.log('watch from visibleStep');
29470
+
29330
29471
  var _value = watch(step.visible.ref);
29331
29472
 
29332
29473
  return option(step.visible.test).map(function (test) {
@@ -29406,17 +29547,18 @@ var Footer = function Footer(props) {
29406
29547
  }, ((_props$actions8 = props.actions) === null || _props$actions8 === void 0 ? void 0 : (_props$actions8$submi = _props$actions8.submit) === null || _props$actions8$submi === void 0 ? void 0 : _props$actions8$submi.label) || 'Save'));
29407
29548
  };
29408
29549
 
29409
- var Step = function Step(_ref6) {
29410
- var entry = _ref6.entry,
29411
- realEntry = _ref6.realEntry,
29412
- step = _ref6.step,
29413
- schema = _ref6.schema,
29414
- inputWrapper = _ref6.inputWrapper,
29415
- httpClient = _ref6.httpClient,
29416
- defaultValue = _ref6.defaultValue,
29417
- index = _ref6.index,
29418
- functionalProperty = _ref6.functionalProperty,
29419
- parent = _ref6.parent;
29550
+ var Step = function Step(_ref9) {
29551
+ var entry = _ref9.entry,
29552
+ realEntry = _ref9.realEntry,
29553
+ step = _ref9.step,
29554
+ schema = _ref9.schema,
29555
+ inputWrapper = _ref9.inputWrapper,
29556
+ httpClient = _ref9.httpClient,
29557
+ defaultValue = _ref9.defaultValue,
29558
+ index = _ref9.index,
29559
+ functionalProperty = _ref9.functionalProperty,
29560
+ parent = _ref9.parent,
29561
+ onAfterChange = _ref9.onAfterChange;
29420
29562
  var classes = useCustomStyle();
29421
29563
 
29422
29564
  var _useFormContext2 = reactHookForm.useFormContext(),
@@ -29429,8 +29571,10 @@ var Step = function Step(_ref6) {
29429
29571
  _useFormContext2.trigger;
29430
29572
  var getValues = _useFormContext2.getValues,
29431
29573
  _setValue = _useFormContext2.setValue,
29432
- watch = _useFormContext2.watch,
29433
- register = _useFormContext2.register;
29574
+ watch = _useFormContext2.watch;
29575
+ _useFormContext2.register;
29576
+
29577
+ console.log("re-render : " + entry);
29434
29578
 
29435
29579
  if (entry && _typeof$1(entry) === 'object') {
29436
29580
  var errored = entry.flow.some(function (step) {
@@ -29454,6 +29598,7 @@ var Step = function Step(_ref6) {
29454
29598
  }).map(function (visible) {
29455
29599
  switch (_typeof$1(visible)) {
29456
29600
  case 'object':
29601
+ console.log("watch of collapse");
29457
29602
  var value = watch(visible.ref);
29458
29603
  return option(visible.test).map(function (test) {
29459
29604
  return test(value, index);
@@ -29499,6 +29644,30 @@ var Step = function Step(_ref6) {
29499
29644
  return acc && acc[curr];
29500
29645
  }, touchedFields);
29501
29646
  var errorDisplayed = !!error && (isSubmitted || isDirty || isTouched);
29647
+ var onAfterChangeFunc = onAfterChange || step.onAfterChange || step.on_after_change;
29648
+
29649
+ if (onAfterChangeFunc) {
29650
+ var _data = watch();
29651
+
29652
+ var d = entry.replace('[', '.').replace(']', '').split('.').reduce(function (acc, curr) {
29653
+ return acc && acc[curr];
29654
+ }, _data) || {};
29655
+ var currentData = usePrevious(cleanOutputArray(d, schema));
29656
+ var newData = cleanOutputArray(d, schema);
29657
+ if (!deepEqual(newData, currentData)) onAfterChangeFunc({
29658
+ entry: entry,
29659
+ previousValue: currentData,
29660
+ value: getValues(entry),
29661
+ getValue: function getValue(e) {
29662
+ return getValues(e);
29663
+ },
29664
+ rawValues: newData,
29665
+ setValue: _setValue,
29666
+ onChange: function onChange(v) {
29667
+ return _setValue(entry, v);
29668
+ }
29669
+ });
29670
+ }
29502
29671
 
29503
29672
  if (step.array) {
29504
29673
  return /*#__PURE__*/React__default["default"].createElement(CustomizableInput, {
@@ -29517,13 +29686,14 @@ var Step = function Step(_ref6) {
29517
29686
  }, /*#__PURE__*/React__default["default"].createElement(ArrayStep, {
29518
29687
  entry: entry,
29519
29688
  step: step,
29520
- defaultValue: step.defaultValue || defaultVal(step.type),
29689
+ defaultValue: step.defaultValue || null,
29521
29690
  disabled: functionalProperty(entry, step.disabled),
29522
29691
  component: function component(props, idx) {
29523
29692
  var _props$defaultValue;
29524
29693
 
29525
29694
  return /*#__PURE__*/React__default["default"].createElement(Step, {
29526
- entry: "".concat(entry, "[").concat(idx, "].value"),
29695
+ entry: "".concat(entry, ".").concat(idx, ".value"),
29696
+ onAfterChange: step.onAfterChange || step.on_after_change,
29527
29697
  step: _objectSpread2$1(_objectSpread2$1({}, schema[realEntry || entry]), {}, {
29528
29698
  render: step.itemRender,
29529
29699
  onChange: undefined,
@@ -29541,325 +29711,126 @@ var Step = function Step(_ref6) {
29541
29711
  }));
29542
29712
  }
29543
29713
 
29544
- var registeredInput = register(entry);
29545
-
29546
- var inputProps = _objectSpread2$1(_objectSpread2$1({}, registeredInput), {}, {
29547
- onChange: function onChange(e) {
29548
- registeredInput.onChange(e);
29549
- option(step.onChange).map(function (onChange) {
29550
- return onChange({
29551
- rawValues: getValues(),
29552
- value: e.target.value,
29553
- setValue: _setValue
29554
- });
29555
- });
29556
- }
29557
- });
29558
-
29559
29714
  switch (step.type) {
29560
29715
  case type.string:
29561
29716
  switch (step.format) {
29562
29717
  case format.text:
29563
- return /*#__PURE__*/React__default["default"].createElement(CustomizableInput, {
29564
- render: step.render,
29565
- field: {
29566
- parent: parent,
29567
- setValue: function setValue(key, value) {
29568
- return _setValue(key, value);
29569
- },
29570
- rawValues: getValues(),
29571
- value: getValues(entry),
29572
- onChange: function onChange(v) {
29573
- return _setValue(entry, v);
29574
- }
29575
- },
29576
- error: error
29577
- }, /*#__PURE__*/React__default["default"].createElement("textarea", _extends({
29578
- type: "text",
29579
- id: entry,
29580
- className: classNames__default["default"](classes.input, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29581
- readOnly: functionalProperty(entry, step.disabled) ? 'readOnly' : null
29582
- }, step.props, {
29718
+ return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29583
29719
  defaultValue: defaultValue,
29584
- placeholder: step.placeholder
29585
- }, inputProps)));
29720
+ step: step,
29721
+ entry: entry
29722
+ }, /*#__PURE__*/React__default["default"].createElement("textarea", {
29723
+ type: "text",
29724
+ className: classNames__default["default"](classes.input, _defineProperty$1({}, classes.input__invalid, errorDisplayed))
29725
+ }));
29586
29726
 
29587
29727
  case format.code:
29588
29728
  case format.singleLineCode:
29589
29729
  var Component = step.format === format.code ? CodeInput : SingleLineCode;
29590
- return /*#__PURE__*/React__default["default"].createElement(reactHookForm.Controller, {
29591
- name: entry,
29592
- control: control,
29593
- render: function render(_ref7) {
29594
- var field = _ref7.field;
29595
- return /*#__PURE__*/React__default["default"].createElement(CustomizableInput, {
29596
- render: step.render,
29597
- field: _objectSpread2$1({
29598
- parent: parent,
29599
- setValue: function setValue(key, value) {
29600
- return _setValue(key, value);
29601
- },
29602
- rawValues: getValues()
29603
- }, field),
29604
- error: error
29605
- }, /*#__PURE__*/React__default["default"].createElement(Component, _extends({
29606
- className: classNames__default["default"](_defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29607
- readOnly: functionalProperty(entry, step.disabled) ? true : false,
29608
- onChange: function onChange(e) {
29609
- field.onChange(e);
29610
- option(step.onChange).map(function (onChange) {
29611
- return onChange({
29612
- rawValues: getValues(),
29613
- value: e,
29614
- setValue: _setValue
29615
- });
29616
- });
29617
- },
29618
- value: field.value,
29619
- defaultValue: defaultValue
29620
- }, step.props)));
29621
- }
29622
- });
29730
+ return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29731
+ defaultValue: defaultValue,
29732
+ step: step,
29733
+ entry: entry
29734
+ }, /*#__PURE__*/React__default["default"].createElement(Component, {
29735
+ className: classNames__default["default"](_defineProperty$1({}, classes.input__invalid, errorDisplayed))
29736
+ }));
29623
29737
 
29624
29738
  case format.markdown:
29625
- return /*#__PURE__*/React__default["default"].createElement(reactHookForm.Controller, {
29626
- name: entry,
29627
- control: control,
29628
- render: function render(_ref8) {
29629
- var field = _ref8.field;
29630
- return /*#__PURE__*/React__default["default"].createElement(CustomizableInput, {
29631
- render: step.render,
29632
- field: _objectSpread2$1({
29633
- parent: parent,
29634
- setValue: function setValue(key, value) {
29635
- return _setValue(key, value);
29636
- },
29637
- rawValues: getValues()
29638
- }, field),
29639
- error: error
29640
- }, /*#__PURE__*/React__default["default"].createElement(MarkdownInput, _extends({}, step.props, {
29641
- className: classNames__default["default"](_defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29642
- readOnly: functionalProperty(entry, step.disabled) ? 'readOnly' : null,
29643
- onChange: function onChange(e) {
29644
- field.onChange(e);
29645
- option(step.onChange).map(function (onChange) {
29646
- return onChange({
29647
- rawValues: getValues(),
29648
- value: e,
29649
- setValue: _setValue
29650
- });
29651
- });
29652
- },
29653
- value: field.value,
29654
- defaultValue: defaultValue
29655
- }, step)));
29656
- }
29657
- });
29739
+ return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29740
+ defaultValue: defaultValue,
29741
+ step: step,
29742
+ entry: entry
29743
+ }, /*#__PURE__*/React__default["default"].createElement(MarkdownInput, {
29744
+ className: classNames__default["default"](_defineProperty$1({}, classes.input__invalid, errorDisplayed))
29745
+ }));
29658
29746
 
29659
29747
  case format.buttonsSelect:
29660
29748
  case format.select:
29661
- return /*#__PURE__*/React__default["default"].createElement(reactHookForm.Controller, {
29662
- name: entry,
29663
- control: control,
29664
- render: function render(_ref9) {
29665
- var field = _ref9.field;
29666
- return /*#__PURE__*/React__default["default"].createElement(CustomizableInput, {
29667
- render: step.render,
29668
- field: _objectSpread2$1({
29669
- parent: parent,
29670
- setValue: function setValue(key, value) {
29671
- return _setValue(key, value);
29672
- },
29673
- rawValues: getValues()
29674
- }, field),
29675
- error: error
29676
- }, /*#__PURE__*/React__default["default"].createElement(SelectInput, _extends({}, step.props, step, {
29677
- className: classNames__default["default"](classes.flex_grow_1, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29678
- disabled: functionalProperty(entry, step.disabled),
29679
- value: field.value,
29680
- possibleValues: step.options,
29681
- defaultValue: defaultValue,
29682
- httpClient: httpClient,
29683
- onChange: function onChange(value) {
29684
- field.onChange(value);
29685
- option(step.onChange).map(function (onChange) {
29686
- return onChange({
29687
- rawValues: getValues(),
29688
- value: value,
29689
- setValue: _setValue
29690
- });
29691
- });
29692
- }
29693
- })));
29694
- }
29695
- });
29749
+ {
29750
+ return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29751
+ defaultValue: defaultValue,
29752
+ step: step,
29753
+ entry: entry
29754
+ }, /*#__PURE__*/React__default["default"].createElement(SelectInput, {
29755
+ className: classNames__default["default"](classes.flex_grow_1, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29756
+ disabled: functionalProperty(entry, step.disabled),
29757
+ possibleValues: step.options,
29758
+ httpClient: httpClient,
29759
+ isMulti: step.isMulti,
29760
+ createOption: step.createOption,
29761
+ transformer: step.transformer,
29762
+ buttons: step.format === format.buttonsSelect
29763
+ }));
29764
+ }
29696
29765
 
29697
29766
  default:
29698
- return /*#__PURE__*/React__default["default"].createElement(CustomizableInput, {
29699
- render: step.render,
29700
- field: {
29701
- parent: parent,
29702
- setValue: function setValue(key, value) {
29703
- return _setValue(key, value);
29704
- },
29705
- rawValues: getValues(),
29706
- value: getValues(entry),
29707
- onChange: function onChange(v) {
29708
- return _setValue(entry, v, {
29709
- shouldValidate: true
29710
- });
29711
- }
29712
- },
29713
- error: error
29714
- }, /*#__PURE__*/React__default["default"].createElement("input", _extends({
29715
- type: step.format || 'text',
29716
- id: entry,
29717
- className: classNames__default["default"](classes.input, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29718
- readOnly: functionalProperty(entry, step.disabled) ? 'readOnly' : null,
29767
+ return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29719
29768
  defaultValue: defaultValue,
29720
- placeholder: step.placeholder
29721
- }, inputProps)));
29769
+ step: step,
29770
+ entry: entry
29771
+ }, /*#__PURE__*/React__default["default"].createElement("input", {
29772
+ type: step.format || 'text',
29773
+ className: classNames__default["default"](classes.input, _defineProperty$1({}, classes.input__invalid, errorDisplayed))
29774
+ }));
29722
29775
  }
29723
29776
 
29724
29777
  case type.number:
29725
29778
  switch (step.format) {
29726
29779
  case format.buttonsSelect:
29727
29780
  case format.select:
29728
- return /*#__PURE__*/React__default["default"].createElement(reactHookForm.Controller, {
29729
- name: entry,
29730
- control: control,
29731
- render: function render(_ref10) {
29732
- var field = _ref10.field;
29733
- return /*#__PURE__*/React__default["default"].createElement(CustomizableInput, {
29734
- render: step.render,
29735
- field: _objectSpread2$1({
29736
- parent: parent,
29737
- setValue: function setValue(key, value) {
29738
- return _setValue(key, value);
29739
- },
29740
- rawValues: getValues()
29741
- }, field),
29742
- error: error
29743
- }, /*#__PURE__*/React__default["default"].createElement(SelectInput, _extends({}, step.props, step, {
29744
- className: classNames__default["default"](classes.content, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29745
- readOnly: functionalProperty(entry, step.disabled) ? 'readOnly' : null,
29746
- onChange: function onChange(e) {
29747
- field.onChange(e);
29748
- option(step.onChange).map(function (onChange) {
29749
- return onChange({
29750
- rawValues: getValues(),
29751
- value: e,
29752
- setValue: _setValue
29753
- });
29754
- });
29755
- },
29756
- value: field.value,
29757
- possibleValues: step.options,
29758
- defaultValue: defaultValue,
29759
- httpClient: httpClient
29760
- })));
29761
- }
29762
- });
29781
+ return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29782
+ defaultValue: defaultValue,
29783
+ step: step,
29784
+ entry: entry
29785
+ }, /*#__PURE__*/React__default["default"].createElement(SelectInput, {
29786
+ className: classNames__default["default"](classes.content, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29787
+ possibleValues: step.options,
29788
+ httpClient: httpClient,
29789
+ isMulti: step.isMulti,
29790
+ createOption: step.createOption,
29791
+ onCreateOption: step.onCreateOption,
29792
+ transformer: step.transformer,
29793
+ buttons: step.format === format.buttonsSelect
29794
+ }));
29763
29795
 
29764
29796
  default:
29765
- return /*#__PURE__*/React__default["default"].createElement(CustomizableInput, {
29766
- render: step.render,
29767
- field: {
29768
- parent: parent,
29769
- setValue: function setValue(key, value) {
29770
- return _setValue(key, value);
29771
- },
29772
- rawValues: getValues(),
29773
- value: getValues(entry),
29774
- onChange: function onChange(v) {
29775
- return _setValue(entry, v);
29776
- }
29777
- },
29778
- error: error
29779
- }, /*#__PURE__*/React__default["default"].createElement("input", _extends({}, step.props, {
29797
+ return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29798
+ defaultValue: defaultValue,
29799
+ step: step,
29800
+ entry: entry
29801
+ }, /*#__PURE__*/React__default["default"].createElement("input", {
29780
29802
  type: step.format || 'number',
29781
- id: entry,
29782
- className: classNames__default["default"](classes.input, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29783
- readOnly: functionalProperty(entry, step.disabled) ? 'readOnly' : null,
29784
- name: entry,
29785
- placeholder: step.placeholder,
29786
- defaultValue: defaultValue
29787
- }, inputProps)));
29803
+ className: classNames__default["default"](classes.input, _defineProperty$1({}, classes.input__invalid, errorDisplayed))
29804
+ }));
29788
29805
  }
29789
29806
 
29790
29807
  case type.bool:
29791
- return /*#__PURE__*/React__default["default"].createElement(reactHookForm.Controller, {
29792
- name: entry,
29793
- control: control,
29794
- render: function render(_ref11) {
29795
- var field = _ref11.field;
29796
- return /*#__PURE__*/React__default["default"].createElement(CustomizableInput, {
29797
- render: step.render,
29798
- field: _objectSpread2$1({
29799
- parent: parent,
29800
- setValue: function setValue(key, value) {
29801
- return _setValue(key, value);
29802
- },
29803
- rawValues: getValues()
29804
- }, field),
29805
- error: error
29806
- }, /*#__PURE__*/React__default["default"].createElement(BooleanInput, _extends({}, step.props, {
29807
- className: classNames__default["default"](_defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29808
- readOnly: functionalProperty(entry, step.disabled) ? 'readOnly' : null,
29809
- onChange: function onChange(e) {
29810
- field.onChange(e);
29811
- option(step.onChange).map(function (onChange) {
29812
- return onChange({
29813
- rawValues: getValues(),
29814
- value: e,
29815
- setValue: _setValue
29816
- });
29817
- });
29818
- },
29819
- value: field.value
29820
- })));
29821
- }
29822
- });
29808
+ return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29809
+ defaultValue: defaultValue,
29810
+ step: step,
29811
+ entry: entry
29812
+ }, /*#__PURE__*/React__default["default"].createElement(BooleanInput, {
29813
+ className: classNames__default["default"](_defineProperty$1({}, classes.input__invalid, errorDisplayed))
29814
+ }));
29823
29815
 
29824
29816
  case type.object:
29825
29817
  switch (step.format) {
29826
29818
  case format.buttonsSelect:
29827
29819
  case format.select:
29828
- return /*#__PURE__*/React__default["default"].createElement(reactHookForm.Controller, {
29829
- name: entry,
29830
- control: control,
29831
- defaultValue: step.defaultValue,
29832
- render: function render(_ref12) {
29833
- var field = _ref12.field;
29834
- return /*#__PURE__*/React__default["default"].createElement(CustomizableInput, {
29835
- render: step.render,
29836
- field: _objectSpread2$1({
29837
- parent: parent,
29838
- setValue: function setValue(key, value) {
29839
- return _setValue(key, value);
29840
- },
29841
- rawValues: getValues()
29842
- }, field),
29843
- error: error
29844
- }, /*#__PURE__*/React__default["default"].createElement(SelectInput, _extends({}, step.props, step, {
29845
- className: classNames__default["default"](classes.flex_grow_1, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29846
- readOnly: functionalProperty(entry, step.disabled) ? 'readOnly' : null,
29847
- onChange: function onChange(e) {
29848
- field.onChange(e);
29849
- option(step.onChange).map(function (onChange) {
29850
- return onChange({
29851
- rawValues: getValues(),
29852
- value: e,
29853
- setValue: _setValue
29854
- });
29855
- });
29856
- },
29857
- value: field.value,
29858
- possibleValues: step.options,
29859
- httpClient: httpClient
29860
- })));
29861
- }
29862
- });
29820
+ return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29821
+ defaultValue: defaultValue,
29822
+ step: step,
29823
+ entry: entry
29824
+ }, /*#__PURE__*/React__default["default"].createElement(SelectInput, {
29825
+ className: classNames__default["default"](classes.flex_grow_1, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29826
+ possibleValues: step.options,
29827
+ httpClient: httpClient,
29828
+ isMulti: step.isMulti,
29829
+ createOption: step.createOption,
29830
+ onCreateOption: step.onCreateOption,
29831
+ transformer: step.transformer,
29832
+ buttons: step.format === format.buttonsSelect
29833
+ }));
29863
29834
 
29864
29835
  case format.form:
29865
29836
  //todo: disabled ?
@@ -29895,35 +29866,20 @@ var Step = function Step(_ref6) {
29895
29866
  }));
29896
29867
 
29897
29868
  case format.code:
29898
- return /*#__PURE__*/React__default["default"].createElement(reactHookForm.Controller, {
29899
- name: entry,
29900
- control: control,
29901
- render: function render(_ref13) {
29902
- var field = _ref13.field;
29903
- return /*#__PURE__*/React__default["default"].createElement(CustomizableInput, {
29904
- render: step.render,
29905
- field: _objectSpread2$1({
29906
- parent: parent,
29907
- setValue: function setValue(key, value) {
29908
- return _setValue(key, value);
29909
- },
29910
- rawValues: getValues()
29911
- }, field),
29912
- error: error
29913
- }, /*#__PURE__*/React__default["default"].createElement(CodeInput, _extends({}, step.props, step, {
29869
+ return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29870
+ defaultValue: defaultValue,
29871
+ step: step,
29872
+ entry: entry,
29873
+ component: function component(field, props) {
29874
+ return /*#__PURE__*/React__default["default"].createElement(CodeInput, _extends({}, props, {
29914
29875
  className: classNames__default["default"](_defineProperty$1({}, classes.input__invalid, error)),
29915
- readOnly: functionalProperty(entry, step.disabled) ? true : false,
29916
29876
  onChange: function onChange(e) {
29917
29877
  var v;
29918
29878
 
29919
29879
  try {
29920
29880
  v = JSON.parse(e);
29921
29881
  } catch (err) {
29922
- setError(step.label, {
29923
- type: 'manual',
29924
- message: err
29925
- });
29926
- v = {};
29882
+ v = e;
29927
29883
  }
29928
29884
 
29929
29885
  field.onChange(v);
@@ -29935,95 +29891,41 @@ var Step = function Step(_ref6) {
29935
29891
  });
29936
29892
  });
29937
29893
  },
29938
- value: _typeof$1(field.value) === 'object' ? JSON.stringify(field.value, null, 2) : field.value,
29939
- defaultValue: defaultValue
29940
- })));
29894
+ value: field.value === null ? null : _typeof$1(field.value) === 'object' ? JSON.stringify(field.value, null, 2) : field.value
29895
+ }));
29941
29896
  }
29942
29897
  });
29943
29898
 
29944
29899
  default:
29945
- return /*#__PURE__*/React__default["default"].createElement(reactHookForm.Controller, {
29946
- name: entry,
29947
- control: control,
29948
- defaultValue: step.defaultValue,
29949
- render: function render(_ref14) {
29950
- var field = _ref14.field;
29951
- return /*#__PURE__*/React__default["default"].createElement(CustomizableInput, {
29952
- render: step.render,
29953
- field: _objectSpread2$1({
29954
- parent: parent,
29955
- setValue: function setValue(key, value) {
29956
- return _setValue(key, value);
29957
- },
29958
- rawValues: getValues()
29959
- }, field),
29960
- error: error
29961
- }, /*#__PURE__*/React__default["default"].createElement(ObjectInput, _extends({}, step.props, step, {
29962
- className: classNames__default["default"](_defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29963
- readOnly: functionalProperty(entry, step.disabled) ? 'readOnly' : null,
29964
- onChange: function onChange(e) {
29965
- field.onChange(e);
29966
- option(step.onChange).map(function (onChange) {
29967
- return onChange({
29968
- rawValues: getValues(),
29969
- value: e,
29970
- setValue: _setValue
29971
- });
29972
- });
29973
- },
29974
- value: field.value,
29975
- possibleValues: step.options
29976
- })));
29977
- }
29978
- });
29900
+ return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29901
+ defaultValue: defaultValue,
29902
+ step: step,
29903
+ entry: entry
29904
+ }, /*#__PURE__*/React__default["default"].createElement(ObjectInput, {
29905
+ className: classNames__default["default"](_defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29906
+ possibleValues: step.options
29907
+ }));
29979
29908
  }
29980
29909
 
29981
29910
  case type.date:
29982
- return /*#__PURE__*/React__default["default"].createElement(reactHookForm.Controller, {
29983
- name: entry,
29984
- control: control,
29985
- defaultValue: step.defaultValue,
29986
- render: function render(_ref15) {
29987
- var field = _ref15.field;
29988
- return /*#__PURE__*/React__default["default"].createElement(CustomizableInput, {
29989
- render: step.render,
29990
- field: _objectSpread2$1({
29991
- parent: parent,
29992
- setValue: function setValue(key, value) {
29993
- return _setValue(key, value);
29994
- },
29995
- rawValues: getValues()
29996
- }, field),
29997
- error: error
29998
- }, /*#__PURE__*/React__default["default"].createElement(reactRainbowComponents.DatePicker, _extends({}, step.props, {
29999
- id: "datePicker-1",
30000
- className: classNames__default["default"](classes.datepicker, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
30001
- readOnly: functionalProperty(entry, step.disabled) ? 'readOnly' : null,
30002
- value: field.value,
30003
- onChange: function onChange(e) {
30004
- field.onChange(e);
30005
- option(step.onChange).map(function (onChange) {
30006
- return onChange({
30007
- rawValues: getValues(),
30008
- value: e,
30009
- setValue: _setValue
30010
- });
30011
- });
30012
- },
30013
- formatStyle: "large"
30014
- })));
30015
- }
30016
- });
29911
+ return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29912
+ defaultValue: defaultValue,
29913
+ step: step,
29914
+ entry: entry
29915
+ }, /*#__PURE__*/React__default["default"].createElement(reactRainbowComponents.DatePicker, {
29916
+ className: classNames__default["default"](classes.datepicker, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
29917
+ formatStyle: "large"
29918
+ }));
30017
29919
 
30018
29920
  case type.file:
30019
29921
  return /*#__PURE__*/React__default["default"].createElement(reactHookForm.Controller, {
30020
29922
  name: entry,
30021
29923
  control: control,
30022
- render: function render(_ref16) {
30023
- var field = _ref16.field;
29924
+ render: function render(_ref10) {
29925
+ var field = _ref10.field;
30024
29926
 
30025
- var FileInput = function FileInput(_ref17) {
30026
- var onChange = _ref17.onChange;
29927
+ var FileInput = function FileInput(_ref11) {
29928
+ var onChange = _ref11.onChange;
30027
29929
 
30028
29930
  var _useState = React.useState(false),
30029
29931
  _useState2 = _slicedToArray(_useState, 2),
@@ -30071,28 +29973,11 @@ var Step = function Step(_ref6) {
30071
29973
  }).join(" , ")));
30072
29974
  };
30073
29975
 
30074
- return /*#__PURE__*/React__default["default"].createElement(CustomizableInput, {
30075
- render: step.render,
30076
- field: _objectSpread2$1({
30077
- parent: parent,
30078
- setValue: function setValue(key, value) {
30079
- return _setValue(key, value);
30080
- },
30081
- rawValues: getValues()
30082
- }, field),
30083
- error: error
30084
- }, /*#__PURE__*/React__default["default"].createElement(FileInput, {
30085
- onChange: function onChange(e) {
30086
- field.onChange(e);
30087
- option(step.onChange).map(function (onChange) {
30088
- return onChange({
30089
- rawValues: getValues(),
30090
- value: e,
30091
- setValue: _setValue
30092
- });
30093
- });
30094
- }
30095
- }));
29976
+ return /*#__PURE__*/React__default["default"].createElement(ControlledInput, {
29977
+ defaultValue: defaultValue,
29978
+ step: step,
29979
+ entry: entry
29980
+ }, /*#__PURE__*/React__default["default"].createElement(FileInput, null));
30096
29981
  }
30097
29982
  });
30098
29983
 
@@ -30101,18 +29986,17 @@ var Step = function Step(_ref6) {
30101
29986
  }
30102
29987
  };
30103
29988
 
30104
- var ArrayStep = function ArrayStep(_ref18) {
30105
- var entry = _ref18.entry,
30106
- step = _ref18.step,
30107
- component = _ref18.component,
30108
- disabled = _ref18.disabled;
29989
+ var ArrayStep = function ArrayStep(_ref12) {
29990
+ var entry = _ref12.entry,
29991
+ step = _ref12.step,
29992
+ component = _ref12.component,
29993
+ disabled = _ref12.disabled;
30109
29994
  var classes = useCustomStyle();
30110
29995
 
30111
29996
  var _useFormContext3 = reactHookForm.useFormContext(),
30112
29997
  getValues = _useFormContext3.getValues,
30113
- setValue = _useFormContext3.setValue;
30114
- _useFormContext3.watch;
30115
- var control = _useFormContext3.control,
29998
+ setValue = _useFormContext3.setValue,
29999
+ control = _useFormContext3.control,
30116
30000
  trigger = _useFormContext3.trigger,
30117
30001
  formState = _useFormContext3.formState;
30118
30002
 
@@ -30138,7 +30022,6 @@ var ArrayStep = function ArrayStep(_ref18) {
30138
30022
  fields = _useFieldArray.fields,
30139
30023
  append = _useFieldArray.append,
30140
30024
  remove = _useFieldArray.remove;
30141
- _useFieldArray.update;
30142
30025
 
30143
30026
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, fields.map(function (field, idx) {
30144
30027
  return /*#__PURE__*/React__default["default"].createElement("div", {
@@ -30148,11 +30031,15 @@ var ArrayStep = function ArrayStep(_ref18) {
30148
30031
  style: {
30149
30032
  position: 'relative'
30150
30033
  }
30034
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
30035
+ style: {
30036
+ width: '95%'
30037
+ }
30151
30038
  }, component(_objectSpread2$1(_objectSpread2$1({
30152
30039
  key: field.id
30153
30040
  }, field), {}, {
30154
30041
  defaultValue: values[idx]
30155
- }), idx), /*#__PURE__*/React__default["default"].createElement("button", {
30042
+ }), idx)), /*#__PURE__*/React__default["default"].createElement("button", {
30156
30043
  type: "button",
30157
30044
  style: {
30158
30045
  position: 'absolute',
@@ -30175,7 +30062,7 @@ var ArrayStep = function ArrayStep(_ref18) {
30175
30062
  className: classNames__default["default"](classes.btn, classes.btn_blue, classes.btn_sm, classes.mt_5, _defineProperty$1({}, classes.input__invalid, errorDisplayed)),
30176
30063
  onClick: function onClick() {
30177
30064
  append({
30178
- value: step.addableDefaultValue || defaultVal(step.type)
30065
+ value: step.addableDefaultValue || defaultVal(null, step.type)
30179
30066
  });
30180
30067
  trigger(entry);
30181
30068
  option(step.onChange).map(function (onChange) {
@@ -30192,25 +30079,25 @@ var ArrayStep = function ArrayStep(_ref18) {
30192
30079
  }, error.message)));
30193
30080
  };
30194
30081
 
30195
- var NestedForm = function NestedForm(_ref19) {
30082
+ var NestedForm = function NestedForm(_ref13) {
30196
30083
  var _classNames16;
30197
30084
 
30198
- var schema = _ref19.schema,
30199
- flow = _ref19.flow,
30200
- parent = _ref19.parent,
30201
- inputWrapper = _ref19.inputWrapper,
30202
- maybeCustomHttpClient = _ref19.maybeCustomHttpClient,
30203
- errorDisplayed = _ref19.errorDisplayed,
30204
- value = _ref19.value,
30205
- step = _ref19.step,
30206
- functionalProperty = _ref19.functionalProperty,
30207
- index = _ref19.index;
30085
+ var schema = _ref13.schema,
30086
+ flow = _ref13.flow,
30087
+ parent = _ref13.parent,
30088
+ inputWrapper = _ref13.inputWrapper,
30089
+ maybeCustomHttpClient = _ref13.maybeCustomHttpClient,
30090
+ errorDisplayed = _ref13.errorDisplayed,
30091
+ value = _ref13.value,
30092
+ step = _ref13.step,
30093
+ functionalProperty = _ref13.functionalProperty,
30094
+ index = _ref13.index;
30208
30095
 
30209
30096
  var _useFormContext4 = reactHookForm.useFormContext(),
30210
30097
  getValues = _useFormContext4.getValues,
30211
30098
  setValue = _useFormContext4.setValue,
30212
- watch = _useFormContext4.watch,
30213
- trigger = _useFormContext4.trigger;
30099
+ watch = _useFormContext4.watch;
30100
+ _useFormContext4.trigger;
30214
30101
  _useFormContext4.formState;
30215
30102
 
30216
30103
  var _useState5 = React.useState(!!step.collapsed),
@@ -30218,11 +30105,12 @@ var NestedForm = function NestedForm(_ref19) {
30218
30105
  collapsed = _useState6[0],
30219
30106
  setCollapsed = _useState6[1];
30220
30107
 
30221
- var classes = useCustomStyle();
30222
- var v = getValues(parent);
30223
- React.useEffect(function () {
30224
- trigger(parent);
30225
- }, [JSON.stringify(v)]);
30108
+ var classes = useCustomStyle(); // TODO - voir ce qui se passe et à quoi ça sert
30109
+ // const v = getValues(parent);
30110
+ // useEffect(() => {
30111
+ // trigger(parent)
30112
+ // }, [JSON.stringify(v)])
30113
+
30226
30114
  var schemaAndFlow = option(step.conditionalSchema).map(function (condiSchema) {
30227
30115
  var ref = option(condiSchema.ref).map(function (ref) {
30228
30116
  return getValues(ref);
@@ -30247,7 +30135,7 @@ var NestedForm = function NestedForm(_ref19) {
30247
30135
  });
30248
30136
  var prevSchema = usePrevious(schemaAndFlow.schema);
30249
30137
  React.useEffect(function () {
30250
- if (!!prevSchema && JSON.stringify(prevSchema) !== JSON.stringify(schemaAndFlow.schema)) {
30138
+ if (!!prevSchema && !deepEqual(prevSchema, schemaAndFlow.schema)) {
30251
30139
  var def = getDefaultValues(schemaAndFlow.flow, schemaAndFlow.schema);
30252
30140
  setValue(parent, def, {
30253
30141
  shouldValidate: false
@@ -30314,10 +30202,10 @@ var NestedForm = function NestedForm(_ref19) {
30314
30202
  onClick: function onClick() {
30315
30203
  return setCollapsed(!collapsed);
30316
30204
  }
30317
- }), computedSandF.map(function (_ref20, idx) {
30318
- var step = _ref20.step,
30319
- visibleStep = _ref20.visibleStep,
30320
- entry = _ref20.entry;
30205
+ }), computedSandF.map(function (_ref14, idx) {
30206
+ var step = _ref14.step,
30207
+ visibleStep = _ref14.visibleStep,
30208
+ entry = _ref14.entry;
30321
30209
 
30322
30210
  if (!step && typeof entry === 'string') {
30323
30211
  console.error("no step found for the entry \"".concat(entry, "\" in the given schema. Your form might not work properly. Please fix it"));