@maif/react-forms 1.1.3 → 1.2.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.
package/lib/index.js CHANGED
@@ -7,19 +7,24 @@ var React = require('react');
7
7
  var yup$1 = require('@hookform/resolvers/yup');
8
8
  var classNames = require('classnames');
9
9
  var deepEqual = require('fast-deep-equal');
10
- var reactFeather = require('react-feather');
10
+ var PropTypes = require('prop-types');
11
11
  var reactHookForm = require('react-hook-form');
12
- var reactRainbowComponents = require('react-rainbow-components');
13
12
  var ReactToolTip = require('react-tooltip');
14
13
  var uuid$1 = require('uuid');
15
14
  var debounce = require('lodash.debounce');
15
+ var AdapterDateFns = require('@mui/x-date-pickers/AdapterDateFns');
16
+ var LocalizationProvider = require('@mui/x-date-pickers/LocalizationProvider');
17
+ var DatePicker = require('@mui/x-date-pickers/DatePicker');
18
+ var TimePicker = require('@mui/x-date-pickers/TimePicker');
19
+ var DateTimePicker = require('@mui/x-date-pickers/DateTimePicker');
20
+ var TextField = require('@mui/material/TextField');
16
21
  var CreatableSelect = require('react-select/creatable');
17
22
  var Select = require('react-select');
18
23
  var hash$1 = require('object-hash');
19
24
  var showdown = require('showdown');
20
25
  require('@fortawesome/fontawesome-free/css/all.css');
21
26
  require('highlight.js/styles/monokai.css');
22
- var hljs = require('highlight.js');
27
+ var hljs = require('highlight.js/lib/core');
23
28
 
24
29
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
25
30
 
@@ -46,8 +51,10 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
46
51
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
47
52
  var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
48
53
  var deepEqual__default = /*#__PURE__*/_interopDefaultLegacy(deepEqual);
54
+ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
49
55
  var ReactToolTip__default = /*#__PURE__*/_interopDefaultLegacy(ReactToolTip);
50
56
  var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
57
+ var TextField__default = /*#__PURE__*/_interopDefaultLegacy(TextField);
51
58
  var CreatableSelect__default = /*#__PURE__*/_interopDefaultLegacy(CreatableSelect);
52
59
  var Select__default = /*#__PURE__*/_interopDefaultLegacy(Select);
53
60
  var hash__default = /*#__PURE__*/_interopDefaultLegacy(hash$1);
@@ -80,7 +87,9 @@ const format = {
80
87
  hidden: "hidden",
81
88
  form: "form",
82
89
  buttonsSelect: "buttons",
83
- singleLineCode: "singleLineCode"
90
+ singleLineCode: "singleLineCode",
91
+ datetime: "datetime-local",
92
+ time: "time"
84
93
  };
85
94
  function stringTuple(...data) {
86
95
  return data;
@@ -208,20 +217,365 @@ var constraints = /*#__PURE__*/Object.freeze({
208
217
  jsonConstraints: jsonConstraints
209
218
  });
210
219
 
211
- const BooleanInput = React__default["default"].forwardRef(({ onChange, value, readOnly }, ref) => {
220
+ function _extends$8() { _extends$8 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$8.apply(this, arguments); }
221
+
222
+ function _objectWithoutProperties$8(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$8(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
223
+
224
+ function _objectWithoutPropertiesLoose$8(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
225
+ var HelpCircle = React.forwardRef(function (_ref, ref) {
226
+ var _ref$color = _ref.color,
227
+ color = _ref$color === void 0 ? 'currentColor' : _ref$color,
228
+ _ref$size = _ref.size,
229
+ size = _ref$size === void 0 ? 24 : _ref$size,
230
+ rest = _objectWithoutProperties$8(_ref, ["color", "size"]);
231
+
232
+ return /*#__PURE__*/React__default["default"].createElement("svg", _extends$8({
233
+ ref: ref,
234
+ xmlns: "http://www.w3.org/2000/svg",
235
+ width: size,
236
+ height: size,
237
+ viewBox: "0 0 24 24",
238
+ fill: "none",
239
+ stroke: color,
240
+ strokeWidth: "2",
241
+ strokeLinecap: "round",
242
+ strokeLinejoin: "round"
243
+ }, rest), /*#__PURE__*/React__default["default"].createElement("circle", {
244
+ cx: "12",
245
+ cy: "12",
246
+ r: "10"
247
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
248
+ d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"
249
+ }), /*#__PURE__*/React__default["default"].createElement("line", {
250
+ x1: "12",
251
+ y1: "17",
252
+ x2: "12.01",
253
+ y2: "17"
254
+ }));
255
+ });
256
+ HelpCircle.propTypes = {
257
+ color: PropTypes__default["default"].string,
258
+ size: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number])
259
+ };
260
+ HelpCircle.displayName = 'HelpCircle';
261
+
262
+ function _extends$7() { _extends$7 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$7.apply(this, arguments); }
263
+
264
+ function _objectWithoutProperties$7(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$7(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
265
+
266
+ function _objectWithoutPropertiesLoose$7(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
267
+ var Loader = React.forwardRef(function (_ref, ref) {
268
+ var _ref$color = _ref.color,
269
+ color = _ref$color === void 0 ? 'currentColor' : _ref$color,
270
+ _ref$size = _ref.size,
271
+ size = _ref$size === void 0 ? 24 : _ref$size,
272
+ rest = _objectWithoutProperties$7(_ref, ["color", "size"]);
273
+
274
+ return /*#__PURE__*/React__default["default"].createElement("svg", _extends$7({
275
+ ref: ref,
276
+ xmlns: "http://www.w3.org/2000/svg",
277
+ width: size,
278
+ height: size,
279
+ viewBox: "0 0 24 24",
280
+ fill: "none",
281
+ stroke: color,
282
+ strokeWidth: "2",
283
+ strokeLinecap: "round",
284
+ strokeLinejoin: "round"
285
+ }, rest), /*#__PURE__*/React__default["default"].createElement("line", {
286
+ x1: "12",
287
+ y1: "2",
288
+ x2: "12",
289
+ y2: "6"
290
+ }), /*#__PURE__*/React__default["default"].createElement("line", {
291
+ x1: "12",
292
+ y1: "18",
293
+ x2: "12",
294
+ y2: "22"
295
+ }), /*#__PURE__*/React__default["default"].createElement("line", {
296
+ x1: "4.93",
297
+ y1: "4.93",
298
+ x2: "7.76",
299
+ y2: "7.76"
300
+ }), /*#__PURE__*/React__default["default"].createElement("line", {
301
+ x1: "16.24",
302
+ y1: "16.24",
303
+ x2: "19.07",
304
+ y2: "19.07"
305
+ }), /*#__PURE__*/React__default["default"].createElement("line", {
306
+ x1: "2",
307
+ y1: "12",
308
+ x2: "6",
309
+ y2: "12"
310
+ }), /*#__PURE__*/React__default["default"].createElement("line", {
311
+ x1: "18",
312
+ y1: "12",
313
+ x2: "22",
314
+ y2: "12"
315
+ }), /*#__PURE__*/React__default["default"].createElement("line", {
316
+ x1: "4.93",
317
+ y1: "19.07",
318
+ x2: "7.76",
319
+ y2: "16.24"
320
+ }), /*#__PURE__*/React__default["default"].createElement("line", {
321
+ x1: "16.24",
322
+ y1: "7.76",
323
+ x2: "19.07",
324
+ y2: "4.93"
325
+ }));
326
+ });
327
+ Loader.propTypes = {
328
+ color: PropTypes__default["default"].string,
329
+ size: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number])
330
+ };
331
+ Loader.displayName = 'Loader';
332
+
333
+ function _extends$6() { _extends$6 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$6.apply(this, arguments); }
334
+
335
+ function _objectWithoutProperties$6(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$6(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
336
+
337
+ function _objectWithoutPropertiesLoose$6(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
338
+ var Upload = React.forwardRef(function (_ref, ref) {
339
+ var _ref$color = _ref.color,
340
+ color = _ref$color === void 0 ? 'currentColor' : _ref$color,
341
+ _ref$size = _ref.size,
342
+ size = _ref$size === void 0 ? 24 : _ref$size,
343
+ rest = _objectWithoutProperties$6(_ref, ["color", "size"]);
344
+
345
+ return /*#__PURE__*/React__default["default"].createElement("svg", _extends$6({
346
+ ref: ref,
347
+ xmlns: "http://www.w3.org/2000/svg",
348
+ width: size,
349
+ height: size,
350
+ viewBox: "0 0 24 24",
351
+ fill: "none",
352
+ stroke: color,
353
+ strokeWidth: "2",
354
+ strokeLinecap: "round",
355
+ strokeLinejoin: "round"
356
+ }, rest), /*#__PURE__*/React__default["default"].createElement("path", {
357
+ d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"
358
+ }), /*#__PURE__*/React__default["default"].createElement("polyline", {
359
+ points: "17 8 12 3 7 8"
360
+ }), /*#__PURE__*/React__default["default"].createElement("line", {
361
+ x1: "12",
362
+ y1: "3",
363
+ x2: "12",
364
+ y2: "15"
365
+ }));
366
+ });
367
+ Upload.propTypes = {
368
+ color: PropTypes__default["default"].string,
369
+ size: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number])
370
+ };
371
+ Upload.displayName = 'Upload';
372
+
373
+ function _extends$5() { _extends$5 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$5.apply(this, arguments); }
374
+
375
+ function _objectWithoutProperties$5(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$5(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
376
+
377
+ function _objectWithoutPropertiesLoose$5(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
378
+ var ChevronDown = React.forwardRef(function (_ref, ref) {
379
+ var _ref$color = _ref.color,
380
+ color = _ref$color === void 0 ? 'currentColor' : _ref$color,
381
+ _ref$size = _ref.size,
382
+ size = _ref$size === void 0 ? 24 : _ref$size,
383
+ rest = _objectWithoutProperties$5(_ref, ["color", "size"]);
384
+
385
+ return /*#__PURE__*/React__default["default"].createElement("svg", _extends$5({
386
+ ref: ref,
387
+ xmlns: "http://www.w3.org/2000/svg",
388
+ width: size,
389
+ height: size,
390
+ viewBox: "0 0 24 24",
391
+ fill: "none",
392
+ stroke: color,
393
+ strokeWidth: "2",
394
+ strokeLinecap: "round",
395
+ strokeLinejoin: "round"
396
+ }, rest), /*#__PURE__*/React__default["default"].createElement("polyline", {
397
+ points: "6 9 12 15 18 9"
398
+ }));
399
+ });
400
+ ChevronDown.propTypes = {
401
+ color: PropTypes__default["default"].string,
402
+ size: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number])
403
+ };
404
+ ChevronDown.displayName = 'ChevronDown';
405
+
406
+ function _extends$4() { _extends$4 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$4.apply(this, arguments); }
407
+
408
+ function _objectWithoutProperties$4(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$4(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
409
+
410
+ function _objectWithoutPropertiesLoose$4(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
411
+ var ChevronUp = React.forwardRef(function (_ref, ref) {
412
+ var _ref$color = _ref.color,
413
+ color = _ref$color === void 0 ? 'currentColor' : _ref$color,
414
+ _ref$size = _ref.size,
415
+ size = _ref$size === void 0 ? 24 : _ref$size,
416
+ rest = _objectWithoutProperties$4(_ref, ["color", "size"]);
417
+
418
+ return /*#__PURE__*/React__default["default"].createElement("svg", _extends$4({
419
+ ref: ref,
420
+ xmlns: "http://www.w3.org/2000/svg",
421
+ width: size,
422
+ height: size,
423
+ viewBox: "0 0 24 24",
424
+ fill: "none",
425
+ stroke: color,
426
+ strokeWidth: "2",
427
+ strokeLinecap: "round",
428
+ strokeLinejoin: "round"
429
+ }, rest), /*#__PURE__*/React__default["default"].createElement("polyline", {
430
+ points: "18 15 12 9 6 15"
431
+ }));
432
+ });
433
+ ChevronUp.propTypes = {
434
+ color: PropTypes__default["default"].string,
435
+ size: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number])
436
+ };
437
+ ChevronUp.displayName = 'ChevronUp';
438
+
439
+ function _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }
440
+
441
+ function _objectWithoutProperties$3(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$3(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
442
+
443
+ function _objectWithoutPropertiesLoose$3(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
444
+ var Trash2 = React.forwardRef(function (_ref, ref) {
445
+ var _ref$color = _ref.color,
446
+ color = _ref$color === void 0 ? 'currentColor' : _ref$color,
447
+ _ref$size = _ref.size,
448
+ size = _ref$size === void 0 ? 24 : _ref$size,
449
+ rest = _objectWithoutProperties$3(_ref, ["color", "size"]);
450
+
451
+ return /*#__PURE__*/React__default["default"].createElement("svg", _extends$3({
452
+ ref: ref,
453
+ xmlns: "http://www.w3.org/2000/svg",
454
+ width: size,
455
+ height: size,
456
+ viewBox: "0 0 24 24",
457
+ fill: "none",
458
+ stroke: color,
459
+ strokeWidth: "2",
460
+ strokeLinecap: "round",
461
+ strokeLinejoin: "round"
462
+ }, rest), /*#__PURE__*/React__default["default"].createElement("polyline", {
463
+ points: "3 6 5 6 21 6"
464
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
465
+ d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"
466
+ }), /*#__PURE__*/React__default["default"].createElement("line", {
467
+ x1: "10",
468
+ y1: "11",
469
+ x2: "10",
470
+ y2: "17"
471
+ }), /*#__PURE__*/React__default["default"].createElement("line", {
472
+ x1: "14",
473
+ y1: "11",
474
+ x2: "14",
475
+ y2: "17"
476
+ }));
477
+ });
478
+ Trash2.propTypes = {
479
+ color: PropTypes__default["default"].string,
480
+ size: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number])
481
+ };
482
+ Trash2.displayName = 'Trash2';
483
+
484
+ const BooleanInput = ({ onChange, value, readOnly, className, errorDisplayed }) => {
212
485
  const handleClick = (value) => {
213
486
  if (!readOnly) {
214
487
  onChange === null || onChange === void 0 ? void 0 : onChange(value);
215
488
  }
216
489
  };
217
- return (React__default["default"].createElement("div", { className: classNames__default["default"]({ ['mrf-cursor_pointer']: !readOnly, ['mrf-cursor_not_allowed']: readOnly }) },
218
- !!value && React__default["default"].createElement("div", { className: classNames__default["default"]('mrf-content_switch_button_on'), onClick: () => handleClick(false) },
219
- React__default["default"].createElement("div", { className: classNames__default["default"]('mrf-switch_button_on') })),
220
- !value && value !== null && React__default["default"].createElement("div", { className: classNames__default["default"]('mrf-content_switch_button_off'), onClick: () => handleClick(true) },
221
- React__default["default"].createElement("div", { className: classNames__default["default"]('mrf-switch_button_off') })),
222
- value === null && React__default["default"].createElement("div", { className: classNames__default["default"]('mrf-content_switch_button_null'), onClick: () => handleClick(true) },
223
- React__default["default"].createElement("div", { className: classNames__default["default"]('mrf-switch_button_null') }))));
490
+ let classes = classNames__default["default"]("mrf-content_switch", className, {
491
+ "mrf-content_switch_button_on": !!value,
492
+ "mrf-content_switch_button_off": !value && value !== null,
493
+ "mrf-content_switch_button_null": value === null,
494
+ "mrf-cursor_pointer": !readOnly,
495
+ "mrf-cursor_not_allowed": readOnly,
496
+ "mrf-input__invalid": !!errorDisplayed
497
+ });
498
+ let callback = () => handleClick(true);
499
+ if (!!value) {
500
+ callback = () => handleClick(false);
501
+ }
502
+ return React__default["default"].createElement("input", { type: "checkbox", className: classes, onChange: callback });
503
+ };
504
+
505
+ function _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }
506
+
507
+ function _objectWithoutProperties$2(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$2(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
508
+
509
+ function _objectWithoutPropertiesLoose$2(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
510
+ var EyeOff = React.forwardRef(function (_ref, ref) {
511
+ var _ref$color = _ref.color,
512
+ color = _ref$color === void 0 ? 'currentColor' : _ref$color,
513
+ _ref$size = _ref.size,
514
+ size = _ref$size === void 0 ? 24 : _ref$size,
515
+ rest = _objectWithoutProperties$2(_ref, ["color", "size"]);
516
+
517
+ return /*#__PURE__*/React__default["default"].createElement("svg", _extends$2({
518
+ ref: ref,
519
+ xmlns: "http://www.w3.org/2000/svg",
520
+ width: size,
521
+ height: size,
522
+ viewBox: "0 0 24 24",
523
+ fill: "none",
524
+ stroke: color,
525
+ strokeWidth: "2",
526
+ strokeLinecap: "round",
527
+ strokeLinejoin: "round"
528
+ }, rest), /*#__PURE__*/React__default["default"].createElement("path", {
529
+ d: "M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"
530
+ }), /*#__PURE__*/React__default["default"].createElement("line", {
531
+ x1: "1",
532
+ y1: "1",
533
+ x2: "23",
534
+ y2: "23"
535
+ }));
536
+ });
537
+ EyeOff.propTypes = {
538
+ color: PropTypes__default["default"].string,
539
+ size: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number])
540
+ };
541
+ EyeOff.displayName = 'EyeOff';
542
+
543
+ function _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }
544
+
545
+ function _objectWithoutProperties$1(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$1(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
546
+
547
+ function _objectWithoutPropertiesLoose$1(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
548
+ var Eye = React.forwardRef(function (_ref, ref) {
549
+ var _ref$color = _ref.color,
550
+ color = _ref$color === void 0 ? 'currentColor' : _ref$color,
551
+ _ref$size = _ref.size,
552
+ size = _ref$size === void 0 ? 24 : _ref$size,
553
+ rest = _objectWithoutProperties$1(_ref, ["color", "size"]);
554
+
555
+ return /*#__PURE__*/React__default["default"].createElement("svg", _extends$1({
556
+ ref: ref,
557
+ xmlns: "http://www.w3.org/2000/svg",
558
+ width: size,
559
+ height: size,
560
+ viewBox: "0 0 24 24",
561
+ fill: "none",
562
+ stroke: color,
563
+ strokeWidth: "2",
564
+ strokeLinecap: "round",
565
+ strokeLinejoin: "round"
566
+ }, rest), /*#__PURE__*/React__default["default"].createElement("path", {
567
+ d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"
568
+ }), /*#__PURE__*/React__default["default"].createElement("circle", {
569
+ cx: "12",
570
+ cy: "12",
571
+ r: "3"
572
+ }));
224
573
  });
574
+ Eye.propTypes = {
575
+ color: PropTypes__default["default"].string,
576
+ size: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number])
577
+ };
578
+ Eye.displayName = 'Eye';
225
579
 
226
580
  const Collapse = (props) => {
227
581
  const [collapsed, setCollapsed] = React.useState(props.initCollapsed || props.collapsed);
@@ -235,8 +589,8 @@ const Collapse = (props) => {
235
589
  React__default["default"].createElement("div", { className: 'mrf-cursor_pointer mrf-flex mrf-jc_between', onClick: toggle },
236
590
  React__default["default"].createElement("span", { className: classNames__default["default"]('mrf-collapse_label', { ['mrf-collapse_error']: props.errored }) }, props.label),
237
591
  React__default["default"].createElement("button", { type: "button", className: classNames__default["default"]('mrf-btn', 'mrf-btn_sm', 'mrf-ml_5', { ['mrf-collapse_error']: props.errored }), onClick: toggle },
238
- !!collapsed && React__default["default"].createElement(reactFeather.Eye, { size: 16 }),
239
- !collapsed && React__default["default"].createElement(reactFeather.EyeOff, { size: 16 }))),
592
+ !!collapsed && React__default["default"].createElement(Eye, { size: 16 }),
593
+ !collapsed && React__default["default"].createElement(EyeOff, { size: 16 }))),
240
594
  React__default["default"].createElement("div", { className: classNames__default["default"]('mrf-ml_10', {
241
595
  ['mrf-display__none']: !!collapsed,
242
596
  ['mrf-flex']: !!props.inline,
@@ -371,12 +725,14 @@ const SelectInput = (props) => {
371
725
  }
372
726
  const possibleValues = (props.possibleValues || [])
373
727
  .map(v => transformOption(v));
374
- const [loading, setLoading] = React.useState(false);
728
+ const [loading, setLoading] = React.useState(true);
375
729
  const [values, setValues] = React.useState(possibleValues);
376
- const [value, setValue] = React.useState(valueToSelectOption(props.value || props.defaultValue, possibleValues, props.isMulti));
730
+ const [value, setValue] = React.useState();
377
731
  React.useEffect(() => {
378
- setValue(valueToSelectOption(props.value, values, props.isMulti));
379
- }, [props.value, values]);
732
+ if (!loading && values.length) {
733
+ setValue(valueToSelectOption(props.value || props.defaultValue, values, props.isMulti));
734
+ }
735
+ }, [props.value, values, props.defaultValue, loading]);
380
736
  React.useEffect(() => {
381
737
  if (props.optionsFrom) {
382
738
  const cond = option(props.fetchCondition)
@@ -396,9 +752,7 @@ const SelectInput = (props) => {
396
752
  promise = props.httpClient(props.optionsFrom, 'GET').then(r => r.json());
397
753
  }
398
754
  promise
399
- .then((values) => {
400
- return values.map(x => transformOption(x));
401
- })
755
+ .then((values) => values.map(x => transformOption(x)))
402
756
  .then((values) => {
403
757
  setValues(values);
404
758
  setValue(values.find((item) => {
@@ -416,6 +770,7 @@ const SelectInput = (props) => {
416
770
  else {
417
771
  setValues((props.possibleValues || [])
418
772
  .map(v => transformOption(v)));
773
+ setTimeout(() => setLoading(false), 250);
419
774
  }
420
775
  }, [props.optionsFrom, props.possibleValues]);
421
776
  const onChange = (changes) => {
@@ -460,13 +815,58 @@ const SelectInput = (props) => {
460
815
  })));
461
816
  }
462
817
  if (props.createOption) {
463
- return (React__default["default"].createElement(CreatableSelect__default["default"], Object.assign({}, props, { name: `${props.label}-search`, isLoading: loading, value: value, isDisabled: props.disabled, placeholder: props.placeholder, onChange: onChange, options: values, onCreateOption: option => handleCreate(option, props.onCreateOption), classNamePrefix: "react-form-select", className: props.className })));
818
+ return (React__default["default"].createElement(CreatableSelect__default["default"], Object.assign({}, props, { name: `${props.label}-search`, isLoading: loading, value: value, isDisabled: loading || props.disabled, placeholder: props.placeholder, onChange: onChange, options: values, onCreateOption: option => handleCreate(option, props.onCreateOption), classNamePrefix: "react-form-select", className: props.className })));
464
819
  }
465
820
  else {
466
- return (React__default["default"].createElement(Select__default["default"], Object.assign({}, props, { name: `${props.label}-search`, isLoading: loading, value: value, defaultValue: value, isDisabled: props.disabled, placeholder: props.placeholder, options: values, onChange: onChange, classNamePrefix: "react-form-select", className: props.className })));
821
+ return (React__default["default"].createElement(Select__default["default"], Object.assign({}, props, { name: `${props.label}-search`, isLoading: loading, value: value, defaultValue: value, isDisabled: loading || props.disabled, placeholder: props.placeholder, options: values, onChange: onChange, classNamePrefix: "react-form-select", className: props.className })));
467
822
  }
468
823
  };
469
824
 
825
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
826
+
827
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
828
+
829
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
830
+ var PlusCircle = React.forwardRef(function (_ref, ref) {
831
+ var _ref$color = _ref.color,
832
+ color = _ref$color === void 0 ? 'currentColor' : _ref$color,
833
+ _ref$size = _ref.size,
834
+ size = _ref$size === void 0 ? 24 : _ref$size,
835
+ rest = _objectWithoutProperties(_ref, ["color", "size"]);
836
+
837
+ return /*#__PURE__*/React__default["default"].createElement("svg", _extends({
838
+ ref: ref,
839
+ xmlns: "http://www.w3.org/2000/svg",
840
+ width: size,
841
+ height: size,
842
+ viewBox: "0 0 24 24",
843
+ fill: "none",
844
+ stroke: color,
845
+ strokeWidth: "2",
846
+ strokeLinecap: "round",
847
+ strokeLinejoin: "round"
848
+ }, rest), /*#__PURE__*/React__default["default"].createElement("circle", {
849
+ cx: "12",
850
+ cy: "12",
851
+ r: "10"
852
+ }), /*#__PURE__*/React__default["default"].createElement("line", {
853
+ x1: "12",
854
+ y1: "8",
855
+ x2: "12",
856
+ y2: "16"
857
+ }), /*#__PURE__*/React__default["default"].createElement("line", {
858
+ x1: "8",
859
+ y1: "12",
860
+ x2: "16",
861
+ y2: "12"
862
+ }));
863
+ });
864
+ PlusCircle.propTypes = {
865
+ color: PropTypes__default["default"].string,
866
+ size: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number])
867
+ };
868
+ PlusCircle.displayName = 'PlusCircle';
869
+
470
870
  const ObjectInput = (props) => {
471
871
  const [internalState, setInternalState] = React.useState({});
472
872
  React.useEffect(() => {
@@ -521,14 +921,14 @@ const ObjectInput = (props) => {
521
921
  };
522
922
  return (React__namespace.createElement("div", { className: props.className },
523
923
  Object.keys(internalState || {}).length === 0 && (React__namespace.createElement("button", { disabled: props.disabled, type: "button", className: 'mrf-flex mrf-btn mrf-btn_blue mrf-btn_sm', onClick: addFirst },
524
- React__namespace.createElement(reactFeather.PlusCircle, null))),
924
+ React__namespace.createElement(PlusCircle, null))),
525
925
  Object.entries(internalState || {}).map(([id, { key, value }], idx) => (React__namespace.createElement("div", { className: 'mrf-flex mrf-mt_5', key: idx },
526
926
  React__namespace.createElement("input", { disabled: props.disabled, type: "text", className: 'mrf-w_50 mrf-input', placeholder: props.placeholderKey, value: key, onChange: e => changeKey(id, e.target.value) }),
527
927
  React__namespace.createElement("input", { disabled: props.disabled, type: "text", className: 'mrf-w_50 mrf-input', placeholder: props.placeholderValue, value: value, onChange: e => changeValue(id, e.target.value) }),
528
928
  React__namespace.createElement("button", { disabled: props.disabled, type: "button", className: 'mrf-flex mrf-btn mrf-btn_red mrf-btn_sm mrf-ml_10', onClick: () => remove(id) },
529
- React__namespace.createElement(reactFeather.MinusCircle, null)),
929
+ React__namespace.createElement(PlusCircle, null)),
530
930
  idx === Object.keys(internalState).length - 1 && (React__namespace.createElement("button", { disabled: props.disabled, type: "button", className: 'mrf-flex mrf-btn mrf-btn_blue mrf-btn_sm mrf-ml_5', onClick: addNext },
531
- React__namespace.createElement(reactFeather.PlusCircle, null))))))));
931
+ React__namespace.createElement(PlusCircle, null))))))));
532
932
  };
533
933
 
534
934
  // Compressed representation of the Grapheme_Cluster_Break=Extend
@@ -27669,7 +28069,7 @@ function CodeInput({ onChange, value, mode = 'javascript', tabSize = 2, readOnly
27669
28069
  width: '-1',
27670
28070
  minWidth: '-1',
27671
28071
  maxWidth: '-1',
27672
- }, setRef }) {
28072
+ }, className, setRef }) {
27673
28073
  const ref = React.useRef();
27674
28074
  const [editor, setEditor] = React.useState();
27675
28075
  React.useEffect(() => {
@@ -27699,7 +28099,7 @@ function CodeInput({ onChange, value, mode = 'javascript', tabSize = 2, readOnly
27699
28099
  });
27700
28100
  }
27701
28101
  }, [value]);
27702
- return React__default["default"].createElement("div", { ref: ref });
28102
+ return React__default["default"].createElement("div", { className: className, ref: ref });
27703
28103
  }
27704
28104
 
27705
28105
  const converter = new showdown__default["default"].Converter({
@@ -27934,7 +28334,7 @@ const getShapeAndDependencies = (flow, schema, dependencies = [], rawData = {})
27934
28334
 
27935
28335
  const CustomizableInput$1 = React__namespace.memo((props) => {
27936
28336
  if (props.render) {
27937
- return (props.render(Object.assign(Object.assign({}, props.field), { error: props.error })));
28337
+ return (props.render(Object.assign(Object.assign({}, props.field), { error: props.error, informations: props.informations })));
27938
28338
  }
27939
28339
  return props.children;
27940
28340
  }, (prev, next) => {
@@ -27944,15 +28344,16 @@ const CustomizableInput$1 = React__namespace.memo((props) => {
27944
28344
  return (prev.field.value === next.field.value && next.errorDisplayed === prev.errorDisplayed && cleanHash(next.step) === cleanHash(prev.step));
27945
28345
  });
27946
28346
  const ControlledInput = (inputProps) => {
27947
- const { step, entry, children, component, errorDisplayed = false } = inputProps;
28347
+ const { step, entry, children, component, errorDisplayed = false, informations } = inputProps;
27948
28348
  const { field } = reactHookForm.useController({
27949
28349
  defaultValue: isDefined(step.defaultValue) ? step.defaultValue : null,
27950
28350
  name: entry
27951
28351
  });
27952
28352
  const { getValues, setValue, formState: { errors } } = reactHookForm.useFormContext();
28353
+ const error = entry.split('.').reduce((acc, curr) => acc && acc[curr], errors);
27953
28354
  const functionalProperty = (entry, prop) => {
27954
28355
  if (typeof prop === 'function') {
27955
- return prop({ rawValues: getValues(), value: getValues(entry) });
28356
+ return prop({ rawValues: getValues(), value: getValues(entry), informations, error, getValue: (key) => getValues(key) });
27956
28357
  }
27957
28358
  else {
27958
28359
  return prop;
@@ -27980,8 +28381,7 @@ const ControlledInput = (inputProps) => {
27980
28381
  option(step.onChange)
27981
28382
  .map(onChange => onChange({ rawValues: getValues(), value, setValue }));
27982
28383
  }, value: field.value });
27983
- const error = entry.split('.').reduce((acc, curr) => acc && acc[curr], errors);
27984
- return React__namespace.createElement(CustomizableInput$1, { render: step.render, step: step, field: Object.assign({ parent, setValue: (key, value) => setValue(key, value), rawValues: getValues() }, field), error: error, errorDisplayed: errorDisplayed }, component ? component(field, props) : React__namespace.cloneElement(children, Object.assign({}, props)));
28384
+ return React__namespace.createElement(CustomizableInput$1, { render: step.render, step: step, field: Object.assign({ setValue: (key, value) => setValue(key, value), rawValues: getValues(), getValue: (key) => getValues(key) }, field), error: error, errorDisplayed: errorDisplayed, informations: informations }, component ? component(field, props) : React__namespace.cloneElement(children, Object.assign({}, props)));
27985
28385
  };
27986
28386
 
27987
28387
  const usePrevious = (value) => {
@@ -27995,36 +28395,22 @@ const usePrevious = (value) => {
27995
28395
  // Return previous value (happens before update in useEffect above)
27996
28396
  return ref.current;
27997
28397
  };
27998
- const BasicWrapper = ({ entry, children, render, functionalProperty, step }) => {
27999
- const { formState, watch } = reactHookForm.useFormContext();
28398
+ const BasicWrapper = ({ entry, children, render, functionalProperty, step, informations }) => {
28399
+ const { formState } = reactHookForm.useFormContext();
28000
28400
  if (typeof entry === 'object') {
28001
28401
  return children;
28002
28402
  }
28003
- const visibleStep = option(step)
28004
- .map(s => s.visible)
28005
- .map(visible => {
28006
- let value;
28007
- switch (typeof visible) {
28008
- case 'object':
28009
- value = watch(visible.ref);
28010
- return option(visible.test).map(test => test(value)).getOrElse(value);
28011
- case 'boolean':
28012
- return visible;
28013
- default:
28014
- return true;
28015
- }
28016
- })
28017
- .getOrElse(true);
28018
- if (!visibleStep) {
28019
- return null;
28020
- }
28021
- const computedLabel = functionalProperty(entry, (step === null || step === void 0 ? void 0 : step.label) === null ? null : (step === null || step === void 0 ? void 0 : step.label) || entry);
28022
- const id = uuid$1.v4();
28023
28403
  // FIXME not sure it works as intended with more two or more parts
28024
28404
  const error = entry.split('.').reduce((acc, curr) => acc && acc[curr], formState.errors);
28025
28405
  const isDirty = entry.split('.').reduce((acc, curr) => acc && acc[curr], formState.dirtyFields);
28026
28406
  const isTouched = entry.split('.').reduce((acc, curr) => acc && acc[curr], formState.touchedFields);
28027
28407
  const errorDisplayed = formState.isSubmitted || isDirty || isTouched;
28408
+ const visibleStep = functionalProperty(entry, (step === null || step === void 0 ? void 0 : step.visible) === undefined ? true : step.visible, informations, error);
28409
+ if (!visibleStep) {
28410
+ return null;
28411
+ }
28412
+ const computedLabel = functionalProperty(entry, (step === null || step === void 0 ? void 0 : step.label) === null ? null : (step === null || step === void 0 ? void 0 : step.label) || entry, informations);
28413
+ const id = uuid$1.v4();
28028
28414
  if (render) {
28029
28415
  return render({ entry, label: computedLabel, error, help: step === null || step === void 0 ? void 0 : step.help, children });
28030
28416
  }
@@ -28034,13 +28420,13 @@ const BasicWrapper = ({ entry, children, render, functionalProperty, step }) =>
28034
28420
  (step === null || step === void 0 ? void 0 : step.help) && React__default["default"].createElement(React__default["default"].Fragment, null,
28035
28421
  React__default["default"].createElement(ReactToolTip__default["default"], { html: true, place: 'bottom', id: id }),
28036
28422
  React__default["default"].createElement("span", { className: 'mrf-flex mrf-ai_center', "data-html": true, "data-tip": step === null || step === void 0 ? void 0 : step.help, "data-for": id },
28037
- React__default["default"].createElement(reactFeather.HelpCircle, { style: { color: 'gray', width: 17, marginLeft: '.5rem', cursor: 'help' } })))),
28423
+ React__default["default"].createElement(HelpCircle, { style: { color: 'gray', width: 17, marginLeft: '.5rem', cursor: 'help' } })))),
28038
28424
  children,
28039
28425
  error && React__default["default"].createElement("div", { className: classNames__default["default"]('mrf-feedback', { ['mrf-txt_red']: !!errorDisplayed }) }, error.message)));
28040
28426
  };
28041
28427
  const CustomizableInput = (props) => {
28042
28428
  if (props.render) {
28043
- return (props.render(Object.assign(Object.assign({}, props.field), { error: props.error })));
28429
+ return (props.render(Object.assign(Object.assign({}, props), { error: props.error })));
28044
28430
  }
28045
28431
  return props.children;
28046
28432
  };
@@ -28201,7 +28587,7 @@ const Form = React__default["default"].forwardRef(function Form({ schema, flow,
28201
28587
  // reset(cleanInputArray(value, defaultValues, flow, schema))
28202
28588
  // setReset(true)
28203
28589
  // }, [reset])
28204
- const { handleSubmit, formState: { errors, dirtyFields }, reset, trigger, getValues, watch } = methods;
28590
+ const { handleSubmit, reset, trigger, getValues } = methods;
28205
28591
  React.useEffect(() => {
28206
28592
  if (!!options.showErrorsOnStart) {
28207
28593
  trigger();
@@ -28210,9 +28596,9 @@ const Form = React__default["default"].forwardRef(function Form({ schema, flow,
28210
28596
  useHashEffect(() => {
28211
28597
  reset(Object.assign({}, cleanInputArray(value, defaultValues, flow, schema)));
28212
28598
  }, [value, schema]);
28213
- const functionalProperty = (entry, prop) => {
28599
+ const functionalProperty = (entry, prop, informations, error) => {
28214
28600
  if (typeof prop === 'function') {
28215
- return prop({ rawValues: getValues(), value: getValues(entry) }); // FIXME why ???
28601
+ return prop({ rawValues: getValues(), value: getValues(entry), informations, getValue: (key) => getValues(key), error });
28216
28602
  }
28217
28603
  else {
28218
28604
  return prop;
@@ -28233,13 +28619,17 @@ const Form = React__default["default"].forwardRef(function Form({ schema, flow,
28233
28619
  onSubmit(clean);
28234
28620
  }, onError) },
28235
28621
  formFlow.map((entry, idx) => {
28236
- const step = typeof entry === "object" ? undefined : schema[entry];
28622
+ if (typeof entry === 'object') {
28623
+ return (React__default["default"].createElement(CollapsedStep, { key: idx, entry: entry, schema: schema, inputWrapper: inputWrapper, httpClient: maybeCustomHttpClient, functionalProperty: functionalProperty }));
28624
+ }
28625
+ const step = schema[entry];
28237
28626
  if (!step && typeof entry === 'string') {
28238
28627
  console.error(`no step found for the entry "${entry}" in the given schema. Your form might not work properly. Please fix it`);
28239
28628
  return null;
28240
28629
  }
28241
- return (React__default["default"].createElement(BasicWrapper, { key: `${entry}-${idx}`, entry: entry, functionalProperty: functionalProperty, render: inputWrapper, step: step },
28242
- React__default["default"].createElement(Step, { key: idx, entry: entry, step: step, schema: schema, inputWrapper: inputWrapper, httpClient: maybeCustomHttpClient, functionalProperty: functionalProperty })));
28630
+ const informations = { path: entry };
28631
+ return (React__default["default"].createElement(BasicWrapper, { key: `${entry}-${idx}`, entry: entry, functionalProperty: functionalProperty, render: inputWrapper, step: step, informations: informations },
28632
+ React__default["default"].createElement(Step, { key: idx, entry: entry, step: step, schema: schema, inputWrapper: inputWrapper, httpClient: maybeCustomHttpClient, functionalProperty: functionalProperty, informations: informations })));
28243
28633
  }),
28244
28634
  React__default["default"].createElement(Footer, { render: footer, reset: () => reset(defaultValues), valid: handleSubmit(data => onSubmit(cleanOutputArray(data, schema)), onError), actions: options.actions }))));
28245
28635
  });
@@ -28254,26 +28644,32 @@ const Footer = (props) => {
28254
28644
  ((_k = (_j = props.actions) === null || _j === void 0 ? void 0 : _j.reset) === null || _k === void 0 ? void 0 : _k.display) && React__default["default"].createElement("button", { className: 'mrf-btn mrf-btn_red', type: "button", onClick: props.reset }, ((_m = (_l = props.actions) === null || _l === void 0 ? void 0 : _l.reset) === null || _m === void 0 ? void 0 : _m.label) || 'Reset'),
28255
28645
  isSubmitDisplayed && React__default["default"].createElement("button", { className: 'mrf-btn mrf-btn_green mrf-ml_10', type: "submit" }, ((_p = (_o = props.actions) === null || _o === void 0 ? void 0 : _o.submit) === null || _p === void 0 ? void 0 : _p.label) || 'Save')));
28256
28646
  };
28647
+ const CollapsedStep = (props) => {
28648
+ let { entry, schema, inputWrapper, httpClient, functionalProperty } = props;
28649
+ const { formState: { errors, dirtyFields, touchedFields } } = reactHookForm.useFormContext();
28650
+ const errored = extractFlowString(entry).some(step => !!errors[step] && (dirtyFields[step] || touchedFields[step]));
28651
+ //FIXME: get collapse errors
28652
+ return (React__default["default"].createElement(Collapse, Object.assign({}, entry, { errored: errored }), entry.flow.map((en, entryIdx) => {
28653
+ if (typeof en === 'object') {
28654
+ return (React__default["default"].createElement(CollapsedStep, Object.assign({ key: entryIdx }, props, { entry: en })));
28655
+ }
28656
+ const stp = schema[en];
28657
+ if (!stp && typeof en === 'string') {
28658
+ console.error(`no step found for the entry "${en}" in the given schema. Your form might not work properly. Please fix it`);
28659
+ return null;
28660
+ }
28661
+ const informations = { path: en };
28662
+ return (React__default["default"].createElement(BasicWrapper, { key: `collapse-${en}-${entryIdx}`, entry: en, functionalProperty: functionalProperty, step: stp, render: inputWrapper, informations: informations },
28663
+ React__default["default"].createElement(Step, { entry: en, step: stp, schema: schema, inputWrapper: inputWrapper, httpClient: httpClient, defaultValue: stp === null || stp === void 0 ? void 0 : stp.defaultValue, functionalProperty: functionalProperty, informations: informations })));
28664
+ })));
28665
+ };
28257
28666
  const Step = (props) => {
28258
- let { entry, realEntry, step, schema, inputWrapper, httpClient, defaultValue, index, functionalProperty, parent, parentInformations } = props;
28667
+ let { entry, realEntry, step, schema, inputWrapper, httpClient, defaultValue, index, functionalProperty, informations } = props;
28259
28668
  const { formState: { errors, dirtyFields, touchedFields, isSubmitted }, control, getValues, setValue, watch } = reactHookForm.useFormContext();
28260
- if (entry && typeof entry === 'object') {
28261
- const errored = extractFlowString(entry).some(step => !!errors[step] && (dirtyFields[step] || touchedFields[step]));
28262
- return (React__default["default"].createElement(Collapse, Object.assign({}, entry, { errored: errored }), entry.flow.map((en, entryIdx) => {
28263
- const stp = typeof en === "object" ? undefined : schema[en]; // TODO Factorise this logic
28264
- if (!stp && typeof en === 'string') {
28265
- console.error(`no step found for the entry "${en}" in the given schema. Your form might not work properly. Please fix it`);
28266
- return null;
28267
- }
28268
- return (React__default["default"].createElement(BasicWrapper, { key: `collapse-${en}-${entryIdx}`, entry: en, functionalProperty: functionalProperty, step: stp, render: inputWrapper },
28269
- React__default["default"].createElement(Step, { entry: en, step: stp, schema: schema, inputWrapper: inputWrapper, httpClient: httpClient, defaultValue: stp === null || stp === void 0 ? void 0 : stp.defaultValue, functionalProperty: functionalProperty, parentInformations: parentInformations })));
28270
- })));
28271
- }
28272
28669
  const error = entry.split('.').reduce((acc, curr) => acc && acc[curr], errors);
28273
28670
  const isDirty = entry.split('.').reduce((acc, curr) => acc && acc[curr], dirtyFields);
28274
28671
  const isTouched = entry.split('.').reduce((acc, curr) => acc && acc[curr], touchedFields);
28275
28672
  const errorDisplayed = (!!error && (isSubmitted || isDirty || isTouched));
28276
- const informations = { path: entry, parent: parentInformations, index };
28277
28673
  step = step;
28278
28674
  if (step.onAfterChange) {
28279
28675
  const data = watch();
@@ -28296,64 +28692,60 @@ const Step = (props) => {
28296
28692
  });
28297
28693
  }
28298
28694
  if (step.array) {
28299
- return (React__default["default"].createElement(CustomizableInput, { render: step.render, field: {
28300
- setValue: (key, value) => setValue(key, value), rawValues: getValues(), value: getValues(entry), onChange: (v) => setValue(entry, v)
28301
- }, error: !!error },
28302
- React__default["default"].createElement(ArrayStep, { entry: entry, step: step, disabled: functionalProperty(entry, step.disabled || false), component: ((props, idx) => {
28695
+ return (React__default["default"].createElement(CustomizableInput, { render: step.render, rawValues: getValues(), value: getValues(entry), onChange: (v) => setValue(entry, v), setValue: (key, value) => setValue(key, value), getValue: (key) => getValues(key), informations: informations, error: !!error },
28696
+ React__default["default"].createElement(ArrayStep, { entry: entry, step: step, disabled: functionalProperty(entry, step.disabled || false, informations, error), component: ((props, idx) => {
28303
28697
  var _a;
28304
- return (React__default["default"].createElement(Step, { entry: `${entry}.${idx}.value`, step: Object.assign(Object.assign({}, (schema[realEntry || entry])), { render: step.itemRender, onChange: undefined, array: false, onAfterChange: step.onAfterChange }), schema: schema, inputWrapper: inputWrapper, httpClient: httpClient, defaultValue: (_a = props.defaultValue) === null || _a === void 0 ? void 0 : _a.value, index: idx, functionalProperty: functionalProperty, parentInformations: informations }));
28698
+ return (React__default["default"].createElement(Step, { entry: `${entry}.${idx}.value`, step: Object.assign(Object.assign({}, (schema[realEntry || entry])), { render: step.itemRender, onChange: undefined, array: false, onAfterChange: step.onAfterChange }), schema: schema, inputWrapper: inputWrapper, httpClient: httpClient, defaultValue: (_a = props.defaultValue) === null || _a === void 0 ? void 0 : _a.value, index: idx, functionalProperty: functionalProperty, informations: { path: entry, parent: informations, index: idx } }));
28305
28699
  }) })));
28306
28700
  }
28307
28701
  switch (step.type) {
28308
28702
  case type.string:
28309
28703
  switch (step.format) {
28310
28704
  case format.text:
28311
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28705
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28312
28706
  React__default["default"].createElement("textarea", { className: classNames__default["default"]('mrf-input', step.className, { 'mrf-mrf-input__invalid': !!errorDisplayed }) })));
28313
28707
  case format.code:
28314
28708
  case format.singleLineCode:
28315
28709
  const Component = step.format === format.code ? CodeInput : SingleLineCode;
28316
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28317
- React__default["default"].createElement(Component /*TODO try to pass className down OR use built in mechanism to display error classNames(step.className, { 'mrf-input__invalid': !!errorDisplayed })}*/, null)));
28710
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28711
+ React__default["default"].createElement(Component, { className: classNames__default["default"](step === null || step === void 0 ? void 0 : step.className, { 'mrf-input__invalid': !!error }) })));
28318
28712
  case format.markdown:
28319
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28713
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28320
28714
  React__default["default"].createElement(MarkdownInput, { className: classNames__default["default"](step.className, { 'mrf-input__invalid': !!errorDisplayed }) })));
28321
28715
  case format.buttonsSelect:
28322
28716
  case format.select: {
28323
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28324
- React__default["default"].createElement(SelectInput, Object.assign({ className: classNames__default["default"]('mrf-flex_grow_1', step.className, { 'mrf-input__invalid': !!errorDisplayed }), disabled: functionalProperty(entry, step.disabled || false) }, step.props, { possibleValues: step.options, httpClient: httpClient, isMulti: step.isMulti, createOption: step.createOption, onCreateOption: step.onCreateOption, transformer: step.transformer, buttons: step.format === format.buttonsSelect, optionsFrom: step.optionsFrom }))));
28717
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28718
+ React__default["default"].createElement(SelectInput, Object.assign({ className: classNames__default["default"]('mrf-flex_grow_1', step.className, { 'mrf-input__invalid': !!errorDisplayed }), disabled: functionalProperty(entry, step.disabled || false, informations, error) }, step.props, { possibleValues: step.options, httpClient: httpClient, isMulti: step.isMulti, createOption: step.createOption, onCreateOption: step.onCreateOption, transformer: step.transformer, buttons: step.format === format.buttonsSelect, optionsFrom: step.optionsFrom }))));
28325
28719
  }
28326
28720
  default:
28327
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28721
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28328
28722
  React__default["default"].createElement("input", { type: step.format || 'text', className: classNames__default["default"]('mrf-input', step.className, { 'mrf-input__invalid': !!errorDisplayed }) })));
28329
28723
  }
28330
28724
  case type.number:
28331
28725
  switch (step.format) {
28332
28726
  case format.buttonsSelect:
28333
28727
  case format.select:
28334
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28728
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28335
28729
  React__default["default"].createElement(SelectInput, Object.assign({ className: classNames__default["default"]('mrf-content', step.className, { 'mrf-input__invalid': !!errorDisplayed }) }, step.props, { possibleValues: step.options, httpClient: httpClient, isMulti: step.isMulti, createOption: step.createOption, onCreateOption: step.onCreateOption, transformer: step.transformer, buttons: step.format === format.buttonsSelect, optionsFrom: step.optionsFrom }))));
28336
28730
  default:
28337
- return React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28731
+ return React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28338
28732
  React__default["default"].createElement("input", { type: step.format || 'number', className: classNames__default["default"]('mrf-input', step.className, { 'mrf-input__invalid': !!errorDisplayed }) }));
28339
28733
  }
28340
28734
  case type.bool:
28341
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28342
- React__default["default"].createElement(BooleanInput /* TODO see how to pass error down className={classNames(step.className, { 'mrf-input__invalid': !!errorDisplayed })}*/, null)));
28735
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28736
+ React__default["default"].createElement(BooleanInput, { className: step.className, errorDisplayed: errorDisplayed })));
28343
28737
  case type.object:
28344
28738
  switch (step.format) {
28345
28739
  case format.buttonsSelect:
28346
28740
  case format.select:
28347
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28741
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28348
28742
  React__default["default"].createElement(SelectInput, Object.assign({ className: classNames__default["default"]('mrf-flex_grow_1', step.className, { 'mrf-input__invalid': !!errorDisplayed }) }, step.props, { possibleValues: step.options, httpClient: httpClient, isMulti: step.isMulti, createOption: step.createOption, onCreateOption: step.onCreateOption, transformer: step.transformer, buttons: step.format === format.buttonsSelect, optionsFrom: step.optionsFrom }))));
28349
28743
  case format.form: //todo: disabled ?
28350
28744
  const flow = option(step.flow).getOrElse(option(step.schema).map(s => Object.keys(s)).getOrElse([]));
28351
- return (React__default["default"].createElement(CustomizableInput, { render: step.render, field: { parent, setValue: (key, value) => setValue(key, value), rawValues: getValues(), value: getValues(entry), onChange: (v) => setValue(entry, v, { shouldValidate: true }) } },
28745
+ return (React__default["default"].createElement(CustomizableInput, { render: step.render, rawValues: getValues(), value: getValues(entry), onChange: (v) => setValue(entry, v, { shouldValidate: true }), setValue: (key, value) => setValue(key, value), getValue: (key) => getValues(key), informations: informations },
28352
28746
  React__default["default"].createElement(NestedForm, { schema: step.schema, flow: flow, step: step, parent: entry, inputWrapper: inputWrapper, maybeCustomHttpClient: httpClient, value: getValues(entry) || defaultValue, functionalProperty: functionalProperty, errorDisplayed: errorDisplayed, informations: informations })));
28353
28747
  case format.code:
28354
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, component: (field, props) => (React__default["default"].createElement(CodeInput, Object.assign({}, props, {
28355
- /* TODO className={classNames(step.className, { 'mrf-input__invalid': !!error })}*/
28356
- onChange: (e) => {
28748
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations, component: (field, props) => (React__default["default"].createElement(CodeInput, Object.assign({}, props, { className: classNames__default["default"](step === null || step === void 0 ? void 0 : step.className, { 'mrf-input__invalid': !!error }), onChange: (e) => {
28357
28749
  let v;
28358
28750
  try {
28359
28751
  v = JSON.parse(e);
@@ -28366,12 +28758,28 @@ const Step = (props) => {
28366
28758
  .map(onChange => onChange({ rawValues: getValues(), value: v, setValue }));
28367
28759
  }, value: field.value === null ? null : ((typeof field.value === 'object') ? JSON.stringify(field.value, null, 2) : field.value) }))) }));
28368
28760
  default:
28369
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28761
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28370
28762
  React__default["default"].createElement(ObjectInput, { className: classNames__default["default"](step.className, { 'mrf-input__invalid': !!errorDisplayed }) })));
28371
28763
  }
28372
28764
  case type.date:
28373
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28374
- React__default["default"].createElement(reactRainbowComponents.DatePicker, { className: classNames__default["default"]('mrf-datepicker', step.className, { 'mrf-input__invalid': !!errorDisplayed }), formatStyle: "large" })));
28765
+ switch (step.format) {
28766
+ case format.datetime:
28767
+ console.debug('datetime');
28768
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, informations: informations, component: (field) => {
28769
+ return (React__default["default"].createElement(LocalizationProvider.LocalizationProvider, { dateAdapter: AdapterDateFns.AdapterDateFns },
28770
+ React__default["default"].createElement(DateTimePicker.DateTimePicker, { value: field.value, onChange: field.onChange, renderInput: (params) => React__default["default"].createElement(TextField__default["default"], Object.assign({}, params)) })));
28771
+ } }));
28772
+ case format.time:
28773
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, informations: informations, component: (field) => {
28774
+ return (React__default["default"].createElement(LocalizationProvider.LocalizationProvider, { dateAdapter: AdapterDateFns.AdapterDateFns },
28775
+ React__default["default"].createElement(TimePicker.TimePicker, { value: field.value, onChange: field.onChange, renderInput: (params) => React__default["default"].createElement(TextField__default["default"], Object.assign({}, params)) })));
28776
+ } }));
28777
+ default:
28778
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, informations: informations, component: (field) => {
28779
+ return (React__default["default"].createElement(LocalizationProvider.LocalizationProvider, { dateAdapter: AdapterDateFns.AdapterDateFns },
28780
+ React__default["default"].createElement(DatePicker.DatePicker, { value: field.value, onChange: field.onChange, renderInput: (params) => React__default["default"].createElement(TextField__default["default"], Object.assign({}, params)) })));
28781
+ } }));
28782
+ }
28375
28783
  case type.file:
28376
28784
  return (React__default["default"].createElement(reactHookForm.Controller, { name: entry, control: control, render: ({ field }) => {
28377
28785
  const FileInput = ({ onChange }) => {
@@ -28389,19 +28797,17 @@ const Step = (props) => {
28389
28797
  const files = field.value || [];
28390
28798
  return (React__default["default"].createElement("div", { className: classNames__default["default"]('mrf-flex', 'mrf-ai_center', step === null || step === void 0 ? void 0 : step.className, { 'mrf-input__invalid': !!error }) },
28391
28799
  React__default["default"].createElement("input", { ref: (r) => setInput(r), type: "file", multiple: true, className: 'mrf-d_none', onChange: setFiles }),
28392
- React__default["default"].createElement("button", { type: "button", className: 'mrf-btn mrf-btn_sm mrf-flex mrf-ai_center', disabled: uploading || functionalProperty(entry, (step === null || step === void 0 ? void 0 : step.disabled) || false), onClick: trigger },
28393
- uploading && React__default["default"].createElement(reactFeather.Loader, null),
28394
- !uploading && React__default["default"].createElement(reactFeather.Upload, null),
28800
+ React__default["default"].createElement("button", { type: "button", className: 'mrf-btn mrf-btn_sm mrf-flex mrf-ai_center', disabled: uploading || functionalProperty(entry, (step === null || step === void 0 ? void 0 : step.disabled) || false, informations, error), onClick: trigger },
28801
+ uploading && React__default["default"].createElement(Loader, null),
28802
+ !uploading && React__default["default"].createElement(Upload, null),
28395
28803
  React__default["default"].createElement("span", { className: 'mrf-ml_5' }, "Select file(s)")),
28396
28804
  React__default["default"].createElement("span", { className: 'mrf-ml_5' }, files.length <= 0 ? 'No files selected' : files.map(r => r.name).join(" , "))));
28397
28805
  };
28398
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28806
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28399
28807
  React__default["default"].createElement(FileInput, null)));
28400
28808
  } }));
28401
28809
  case type.json:
28402
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, component: (field, props) => (React__default["default"].createElement(CodeInput, Object.assign({}, props, {
28403
- /* TODO className={classNames({ 'mrf-input__invalid': !!error })} */
28404
- onChange: (v) => {
28810
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, informations: informations, component: (field, props) => (React__default["default"].createElement(CodeInput, Object.assign({}, props, { className: classNames__default["default"](step === null || step === void 0 ? void 0 : step.className, { 'mrf-input__invalid': !!error }), onChange: (v) => {
28405
28811
  field.onChange(v);
28406
28812
  option(step === null || step === void 0 ? void 0 : step.onChange)
28407
28813
  .map(onChange => onChange({ rawValues: getValues(), value: v, setValue }));
@@ -28428,7 +28834,7 @@ const ArrayStep = ({ entry, step, component, disabled }) => {
28428
28834
  remove(idx);
28429
28835
  trigger(entry);
28430
28836
  } },
28431
- React__default["default"].createElement(reactFeather.Trash2, { size: 16 })))));
28837
+ React__default["default"].createElement(Trash2, { size: 16 })))));
28432
28838
  }),
28433
28839
  React__default["default"].createElement("div", { className: 'mrf-flex mrf-jc_flex_end' },
28434
28840
  React__default["default"].createElement("button", { type: "button", className: classNames__default["default"]('mrf-btn', 'mrf-btn_blue', 'mrf-btn_sm', 'mrf-mt_5', { ['mrf-input__invalid']: !!errorDisplayed }), onClick: () => {
@@ -28472,31 +28878,21 @@ const NestedForm = ({ schema, flow, parent, inputWrapper, maybeCustomHttpClient,
28472
28878
  return [...acc, { step, entry }];
28473
28879
  }, []);
28474
28880
  const bordered = computedSandF.length >= 1 && step.label !== null;
28475
- return (React__default["default"].createElement("div", { className: classNames__default["default"]({ ['mrf-nestedform__border']: bordered, ['mrf-border__error']: !!errorDisplayed }), style: { position: 'relative' } },
28881
+ return (React__default["default"].createElement("div", { className: classNames__default["default"](step.className, { ['mrf-nestedform__border']: bordered, ['mrf-border__error']: !!errorDisplayed }), style: { position: 'relative' } },
28476
28882
  !!step.collapsable && schemaAndFlow.flow.length > 1 && collapsed &&
28477
- React__default["default"].createElement(reactFeather.ChevronDown, { size: 30, className: 'mrf-cursor_pointer', style: { position: 'absolute', top: -35, right: 0, zIndex: 100 }, strokeWidth: "2", onClick: () => setCollapsed(!collapsed) }),
28883
+ React__default["default"].createElement(ChevronDown, { size: 30, className: 'mrf-cursor_pointer', style: { position: 'absolute', top: -35, right: 0, zIndex: 100 }, strokeWidth: "2", onClick: () => setCollapsed(!collapsed) }),
28478
28884
  !!step.collapsable && schemaAndFlow.flow.length > 1 && !collapsed &&
28479
- React__default["default"].createElement(reactFeather.ChevronUp, { size: 30, className: 'mrf-cursor_pointer', style: { position: 'absolute', top: -35, right: 0, zIndex: 100 }, strokeWidth: "2", onClick: () => setCollapsed(!collapsed) }),
28885
+ React__default["default"].createElement(ChevronUp, { size: 30, className: 'mrf-cursor_pointer', style: { position: 'absolute', top: -35, right: 0, zIndex: 100 }, strokeWidth: "2", onClick: () => setCollapsed(!collapsed) }),
28480
28886
  computedSandF.map(({ step, entry }, idx) => {
28887
+ if (typeof entry === 'object') {
28888
+ return (React__default["default"].createElement(CollapsedStep, { key: idx, entry: entry, schema: schema, inputWrapper: inputWrapper, httpClient: maybeCustomHttpClient, functionalProperty: functionalProperty }));
28889
+ }
28481
28890
  if (!step && typeof entry === 'string') {
28482
28891
  console.error(`no step found for the entry "${entry}" in the given schema. Your form might not work properly. Please fix it`);
28483
28892
  return null;
28484
28893
  }
28485
- if (typeof entry === "object") {
28486
- const errored = extractFlowString(entry).some(step => !!errors[step] && (dirtyFields[step] || touchedFields[step])); /* FIXME does it works in case of Flow object ? Need to do a "flatMap" to retrieve all leafs string of flows objects */
28487
- return React__default["default"].createElement(Collapse, Object.assign({}, entry, { errored: errored }), entry.flow.map((en, entryIdx) => {
28488
- const stp = typeof en === "object" ? undefined : schema[en];
28489
- if (!stp && typeof en === 'string') {
28490
- console.error(`no step found for the entry "${en}" in the given schema. Your form might not work properly. Please fix it`);
28491
- return null;
28492
- }
28493
- return (React__default["default"].createElement(BasicWrapper, { key: `collapse-${en}-${entryIdx}`, entry: en, functionalProperty: functionalProperty, step: stp, render: inputWrapper },
28494
- React__default["default"].createElement(Step, { entry: en, step: stp, schema: schema, inputWrapper: inputWrapper, httpClient: maybeCustomHttpClient, defaultValue: stp === null || stp === void 0 ? void 0 : stp.defaultValue, functionalProperty: functionalProperty })));
28495
- }));
28496
- // TODO return collapse, then entry will always be a string in below return
28497
- }
28498
- return (React__default["default"].createElement(BasicWrapper, { key: `${entry}.${idx}`, className: classNames__default["default"]({ ['mrf-display__none']: (collapsed && !step.visibleOnCollapse) }), entry: `${parent}.${entry}`, functionalProperty: functionalProperty, step: step, render: inputWrapper },
28499
- React__default["default"].createElement(Step, { key: `step.${entry}.${idx}`, entry: `${parent}.${entry}`, realEntry: entry, step: schemaAndFlow.schema[entry], parent: parent, schema: schemaAndFlow.schema, inputWrapper: inputWrapper, httpClient: maybeCustomHttpClient, defaultValue: value && value[entry], functionalProperty: functionalProperty, parentInformations: informations })));
28894
+ return (React__default["default"].createElement(BasicWrapper, { key: `${entry}.${idx}`, className: classNames__default["default"]({ ['mrf-display__none']: (collapsed && !step.visibleOnCollapse) }), entry: `${parent}.${entry}`, functionalProperty: functionalProperty, step: step, render: inputWrapper, informations: { path: entry, parent: informations } },
28895
+ React__default["default"].createElement(Step, { key: `step.${entry}.${idx}`, entry: `${parent}.${entry}`, realEntry: entry, step: schemaAndFlow.schema[entry], schema: schemaAndFlow.schema, inputWrapper: inputWrapper, httpClient: maybeCustomHttpClient, defaultValue: value && value[entry], functionalProperty: functionalProperty, informations: { path: entry, parent: informations } })));
28500
28896
  })));
28501
28897
  };
28502
28898
  function extractFlowString(entry) {