@maif/react-forms 1.1.4 → 1.2.0

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,25 +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
- let className = classNames__default["default"]("mrf-content_switch", {
490
+ let classes = classNames__default["default"]("mrf-content_switch", className, {
218
491
  "mrf-content_switch_button_on": !!value,
219
492
  "mrf-content_switch_button_off": !value && value !== null,
220
493
  "mrf-content_switch_button_null": value === null,
221
494
  "mrf-cursor_pointer": !readOnly,
222
495
  "mrf-cursor_not_allowed": readOnly,
496
+ "mrf-input__invalid": !!errorDisplayed
223
497
  });
224
498
  let callback = () => handleClick(true);
225
499
  if (!!value) {
226
500
  callback = () => handleClick(false);
227
501
  }
228
- return React__default["default"].createElement("input", { type: "checkbox", className: className, onChange: callback });
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
+ }));
229
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
+ }));
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';
230
579
 
231
580
  const Collapse = (props) => {
232
581
  const [collapsed, setCollapsed] = React.useState(props.initCollapsed || props.collapsed);
@@ -240,8 +589,8 @@ const Collapse = (props) => {
240
589
  React__default["default"].createElement("div", { className: 'mrf-cursor_pointer mrf-flex mrf-jc_between', onClick: toggle },
241
590
  React__default["default"].createElement("span", { className: classNames__default["default"]('mrf-collapse_label', { ['mrf-collapse_error']: props.errored }) }, props.label),
242
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 },
243
- !!collapsed && React__default["default"].createElement(reactFeather.Eye, { size: 16 }),
244
- !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 }))),
245
594
  React__default["default"].createElement("div", { className: classNames__default["default"]('mrf-ml_10', {
246
595
  ['mrf-display__none']: !!collapsed,
247
596
  ['mrf-flex']: !!props.inline,
@@ -376,12 +725,14 @@ const SelectInput = (props) => {
376
725
  }
377
726
  const possibleValues = (props.possibleValues || [])
378
727
  .map(v => transformOption(v));
379
- const [loading, setLoading] = React.useState(false);
728
+ const [loading, setLoading] = React.useState(true);
380
729
  const [values, setValues] = React.useState(possibleValues);
381
- const [value, setValue] = React.useState(valueToSelectOption(props.value || props.defaultValue, possibleValues, props.isMulti));
730
+ const [value, setValue] = React.useState();
382
731
  React.useEffect(() => {
383
- setValue(valueToSelectOption(props.value, values, props.isMulti));
384
- }, [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]);
385
736
  React.useEffect(() => {
386
737
  if (props.optionsFrom) {
387
738
  const cond = option(props.fetchCondition)
@@ -401,9 +752,7 @@ const SelectInput = (props) => {
401
752
  promise = props.httpClient(props.optionsFrom, 'GET').then(r => r.json());
402
753
  }
403
754
  promise
404
- .then((values) => {
405
- return values.map(x => transformOption(x));
406
- })
755
+ .then((values) => values.map(x => transformOption(x)))
407
756
  .then((values) => {
408
757
  setValues(values);
409
758
  setValue(values.find((item) => {
@@ -421,6 +770,7 @@ const SelectInput = (props) => {
421
770
  else {
422
771
  setValues((props.possibleValues || [])
423
772
  .map(v => transformOption(v)));
773
+ setTimeout(() => setLoading(false), 250);
424
774
  }
425
775
  }, [props.optionsFrom, props.possibleValues]);
426
776
  const onChange = (changes) => {
@@ -465,13 +815,58 @@ const SelectInput = (props) => {
465
815
  })));
466
816
  }
467
817
  if (props.createOption) {
468
- 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 })));
469
819
  }
470
820
  else {
471
- 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 })));
472
822
  }
473
823
  };
474
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
+
475
870
  const ObjectInput = (props) => {
476
871
  const [internalState, setInternalState] = React.useState({});
477
872
  React.useEffect(() => {
@@ -526,14 +921,14 @@ const ObjectInput = (props) => {
526
921
  };
527
922
  return (React__namespace.createElement("div", { className: props.className },
528
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 },
529
- React__namespace.createElement(reactFeather.PlusCircle, null))),
924
+ React__namespace.createElement(PlusCircle, null))),
530
925
  Object.entries(internalState || {}).map(([id, { key, value }], idx) => (React__namespace.createElement("div", { className: 'mrf-flex mrf-mt_5', key: idx },
531
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) }),
532
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) }),
533
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) },
534
- React__namespace.createElement(reactFeather.MinusCircle, null)),
929
+ React__namespace.createElement(PlusCircle, null)),
535
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 },
536
- React__namespace.createElement(reactFeather.PlusCircle, null))))))));
931
+ React__namespace.createElement(PlusCircle, null))))))));
537
932
  };
538
933
 
539
934
  // Compressed representation of the Grapheme_Cluster_Break=Extend
@@ -27674,7 +28069,7 @@ function CodeInput({ onChange, value, mode = 'javascript', tabSize = 2, readOnly
27674
28069
  width: '-1',
27675
28070
  minWidth: '-1',
27676
28071
  maxWidth: '-1',
27677
- }, setRef }) {
28072
+ }, className, setRef }) {
27678
28073
  const ref = React.useRef();
27679
28074
  const [editor, setEditor] = React.useState();
27680
28075
  React.useEffect(() => {
@@ -27704,9 +28099,14 @@ function CodeInput({ onChange, value, mode = 'javascript', tabSize = 2, readOnly
27704
28099
  });
27705
28100
  }
27706
28101
  }, [value]);
27707
- return React__default["default"].createElement("div", { ref: ref });
28102
+ return React__default["default"].createElement("div", { className: className, ref: ref });
27708
28103
  }
27709
28104
 
28105
+ ['javascript', 'json', 'markdown', 'css'].forEach((langName) => {
28106
+ // Using require() here because import() support hasn't landed in Webpack yet
28107
+ const langModule = require(`highlight.js/lib/languages/${langName}`);
28108
+ hljs__default["default"].registerLanguage(langName, langModule);
28109
+ });
27710
28110
  const converter = new showdown__default["default"].Converter({
27711
28111
  omitExtraWLInCodeBlocks: true,
27712
28112
  ghCompatibleHeaderId: true,
@@ -27939,7 +28339,7 @@ const getShapeAndDependencies = (flow, schema, dependencies = [], rawData = {})
27939
28339
 
27940
28340
  const CustomizableInput$1 = React__namespace.memo((props) => {
27941
28341
  if (props.render) {
27942
- return (props.render(Object.assign(Object.assign({}, props.field), { error: props.error })));
28342
+ return (props.render(Object.assign(Object.assign({}, props.field), { error: props.error, informations: props.informations })));
27943
28343
  }
27944
28344
  return props.children;
27945
28345
  }, (prev, next) => {
@@ -27949,15 +28349,16 @@ const CustomizableInput$1 = React__namespace.memo((props) => {
27949
28349
  return (prev.field.value === next.field.value && next.errorDisplayed === prev.errorDisplayed && cleanHash(next.step) === cleanHash(prev.step));
27950
28350
  });
27951
28351
  const ControlledInput = (inputProps) => {
27952
- const { step, entry, children, component, errorDisplayed = false } = inputProps;
28352
+ const { step, entry, children, component, errorDisplayed = false, informations } = inputProps;
27953
28353
  const { field } = reactHookForm.useController({
27954
28354
  defaultValue: isDefined(step.defaultValue) ? step.defaultValue : null,
27955
28355
  name: entry
27956
28356
  });
27957
28357
  const { getValues, setValue, formState: { errors } } = reactHookForm.useFormContext();
28358
+ const error = entry.split('.').reduce((acc, curr) => acc && acc[curr], errors);
27958
28359
  const functionalProperty = (entry, prop) => {
27959
28360
  if (typeof prop === 'function') {
27960
- return prop({ rawValues: getValues(), value: getValues(entry) });
28361
+ return prop({ rawValues: getValues(), value: getValues(entry), informations, error, getValue: (key) => getValues(key) });
27961
28362
  }
27962
28363
  else {
27963
28364
  return prop;
@@ -27985,8 +28386,7 @@ const ControlledInput = (inputProps) => {
27985
28386
  option(step.onChange)
27986
28387
  .map(onChange => onChange({ rawValues: getValues(), value, setValue }));
27987
28388
  }, value: field.value });
27988
- const error = entry.split('.').reduce((acc, curr) => acc && acc[curr], errors);
27989
- 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)));
28389
+ 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)));
27990
28390
  };
27991
28391
 
27992
28392
  const usePrevious = (value) => {
@@ -28000,36 +28400,22 @@ const usePrevious = (value) => {
28000
28400
  // Return previous value (happens before update in useEffect above)
28001
28401
  return ref.current;
28002
28402
  };
28003
- const BasicWrapper = ({ entry, children, render, functionalProperty, step }) => {
28004
- const { formState, watch } = reactHookForm.useFormContext();
28403
+ const BasicWrapper = ({ entry, children, render, functionalProperty, step, informations }) => {
28404
+ const { formState } = reactHookForm.useFormContext();
28005
28405
  if (typeof entry === 'object') {
28006
28406
  return children;
28007
28407
  }
28008
- const visibleStep = option(step)
28009
- .map(s => s.visible)
28010
- .map(visible => {
28011
- let value;
28012
- switch (typeof visible) {
28013
- case 'object':
28014
- value = watch(visible.ref);
28015
- return option(visible.test).map(test => test(value)).getOrElse(value);
28016
- case 'boolean':
28017
- return visible;
28018
- default:
28019
- return true;
28020
- }
28021
- })
28022
- .getOrElse(true);
28023
- if (!visibleStep) {
28024
- return null;
28025
- }
28026
- 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);
28027
- const id = uuid$1.v4();
28028
28408
  // FIXME not sure it works as intended with more two or more parts
28029
28409
  const error = entry.split('.').reduce((acc, curr) => acc && acc[curr], formState.errors);
28030
28410
  const isDirty = entry.split('.').reduce((acc, curr) => acc && acc[curr], formState.dirtyFields);
28031
28411
  const isTouched = entry.split('.').reduce((acc, curr) => acc && acc[curr], formState.touchedFields);
28032
28412
  const errorDisplayed = formState.isSubmitted || isDirty || isTouched;
28413
+ const visibleStep = functionalProperty(entry, (step === null || step === void 0 ? void 0 : step.visible) === undefined ? true : step.visible, informations, error);
28414
+ if (!visibleStep) {
28415
+ return null;
28416
+ }
28417
+ 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);
28418
+ const id = uuid$1.v4();
28033
28419
  if (render) {
28034
28420
  return render({ entry, label: computedLabel, error, help: step === null || step === void 0 ? void 0 : step.help, children });
28035
28421
  }
@@ -28039,13 +28425,13 @@ const BasicWrapper = ({ entry, children, render, functionalProperty, step }) =>
28039
28425
  (step === null || step === void 0 ? void 0 : step.help) && React__default["default"].createElement(React__default["default"].Fragment, null,
28040
28426
  React__default["default"].createElement(ReactToolTip__default["default"], { html: true, place: 'bottom', id: id }),
28041
28427
  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 },
28042
- React__default["default"].createElement(reactFeather.HelpCircle, { style: { color: 'gray', width: 17, marginLeft: '.5rem', cursor: 'help' } })))),
28428
+ React__default["default"].createElement(HelpCircle, { style: { color: 'gray', width: 17, marginLeft: '.5rem', cursor: 'help' } })))),
28043
28429
  children,
28044
28430
  error && React__default["default"].createElement("div", { className: classNames__default["default"]('mrf-feedback', { ['mrf-txt_red']: !!errorDisplayed }) }, error.message)));
28045
28431
  };
28046
28432
  const CustomizableInput = (props) => {
28047
28433
  if (props.render) {
28048
- return (props.render(Object.assign(Object.assign({}, props.field), { error: props.error })));
28434
+ return (props.render(Object.assign(Object.assign({}, props), { error: props.error })));
28049
28435
  }
28050
28436
  return props.children;
28051
28437
  };
@@ -28206,7 +28592,7 @@ const Form = React__default["default"].forwardRef(function Form({ schema, flow,
28206
28592
  // reset(cleanInputArray(value, defaultValues, flow, schema))
28207
28593
  // setReset(true)
28208
28594
  // }, [reset])
28209
- const { handleSubmit, formState: { errors, dirtyFields }, reset, trigger, getValues, watch } = methods;
28595
+ const { handleSubmit, reset, trigger, getValues } = methods;
28210
28596
  React.useEffect(() => {
28211
28597
  if (!!options.showErrorsOnStart) {
28212
28598
  trigger();
@@ -28215,9 +28601,9 @@ const Form = React__default["default"].forwardRef(function Form({ schema, flow,
28215
28601
  useHashEffect(() => {
28216
28602
  reset(Object.assign({}, cleanInputArray(value, defaultValues, flow, schema)));
28217
28603
  }, [value, schema]);
28218
- const functionalProperty = (entry, prop) => {
28604
+ const functionalProperty = (entry, prop, informations, error) => {
28219
28605
  if (typeof prop === 'function') {
28220
- return prop({ rawValues: getValues(), value: getValues(entry) }); // FIXME why ???
28606
+ return prop({ rawValues: getValues(), value: getValues(entry), informations, getValue: (key) => getValues(key), error });
28221
28607
  }
28222
28608
  else {
28223
28609
  return prop;
@@ -28238,13 +28624,17 @@ const Form = React__default["default"].forwardRef(function Form({ schema, flow,
28238
28624
  onSubmit(clean);
28239
28625
  }, onError) },
28240
28626
  formFlow.map((entry, idx) => {
28241
- const step = typeof entry === "object" ? undefined : schema[entry];
28627
+ if (typeof entry === 'object') {
28628
+ return (React__default["default"].createElement(CollapsedStep, { key: idx, entry: entry, schema: schema, inputWrapper: inputWrapper, httpClient: maybeCustomHttpClient, functionalProperty: functionalProperty }));
28629
+ }
28630
+ const step = schema[entry];
28242
28631
  if (!step && typeof entry === 'string') {
28243
28632
  console.error(`no step found for the entry "${entry}" in the given schema. Your form might not work properly. Please fix it`);
28244
28633
  return null;
28245
28634
  }
28246
- return (React__default["default"].createElement(BasicWrapper, { key: `${entry}-${idx}`, entry: entry, functionalProperty: functionalProperty, render: inputWrapper, step: step },
28247
- React__default["default"].createElement(Step, { key: idx, entry: entry, step: step, schema: schema, inputWrapper: inputWrapper, httpClient: maybeCustomHttpClient, functionalProperty: functionalProperty })));
28635
+ const informations = { path: entry };
28636
+ return (React__default["default"].createElement(BasicWrapper, { key: `${entry}-${idx}`, entry: entry, functionalProperty: functionalProperty, render: inputWrapper, step: step, informations: informations },
28637
+ React__default["default"].createElement(Step, { key: idx, entry: entry, step: step, schema: schema, inputWrapper: inputWrapper, httpClient: maybeCustomHttpClient, functionalProperty: functionalProperty, informations: informations })));
28248
28638
  }),
28249
28639
  React__default["default"].createElement(Footer, { render: footer, reset: () => reset(defaultValues), valid: handleSubmit(data => onSubmit(cleanOutputArray(data, schema)), onError), actions: options.actions }))));
28250
28640
  });
@@ -28259,26 +28649,32 @@ const Footer = (props) => {
28259
28649
  ((_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'),
28260
28650
  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')));
28261
28651
  };
28652
+ const CollapsedStep = (props) => {
28653
+ let { entry, schema, inputWrapper, httpClient, functionalProperty } = props;
28654
+ const { formState: { errors, dirtyFields, touchedFields } } = reactHookForm.useFormContext();
28655
+ const errored = extractFlowString(entry).some(step => !!errors[step] && (dirtyFields[step] || touchedFields[step]));
28656
+ //FIXME: get collapse errors
28657
+ return (React__default["default"].createElement(Collapse, Object.assign({}, entry, { errored: errored }), entry.flow.map((en, entryIdx) => {
28658
+ if (typeof en === 'object') {
28659
+ return (React__default["default"].createElement(CollapsedStep, Object.assign({ key: entryIdx }, props, { entry: en })));
28660
+ }
28661
+ const stp = schema[en];
28662
+ if (!stp && typeof en === 'string') {
28663
+ console.error(`no step found for the entry "${en}" in the given schema. Your form might not work properly. Please fix it`);
28664
+ return null;
28665
+ }
28666
+ const informations = { path: en };
28667
+ return (React__default["default"].createElement(BasicWrapper, { key: `collapse-${en}-${entryIdx}`, entry: en, functionalProperty: functionalProperty, step: stp, render: inputWrapper, informations: informations },
28668
+ 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 })));
28669
+ })));
28670
+ };
28262
28671
  const Step = (props) => {
28263
- let { entry, realEntry, step, schema, inputWrapper, httpClient, defaultValue, index, functionalProperty, parent, parentInformations } = props;
28672
+ let { entry, realEntry, step, schema, inputWrapper, httpClient, defaultValue, index, functionalProperty, informations } = props;
28264
28673
  const { formState: { errors, dirtyFields, touchedFields, isSubmitted }, control, getValues, setValue, watch } = reactHookForm.useFormContext();
28265
- if (entry && typeof entry === 'object') {
28266
- const errored = extractFlowString(entry).some(step => !!errors[step] && (dirtyFields[step] || touchedFields[step]));
28267
- return (React__default["default"].createElement(Collapse, Object.assign({}, entry, { errored: errored }), entry.flow.map((en, entryIdx) => {
28268
- const stp = typeof en === "object" ? undefined : schema[en]; // TODO Factorise this logic
28269
- if (!stp && typeof en === 'string') {
28270
- console.error(`no step found for the entry "${en}" in the given schema. Your form might not work properly. Please fix it`);
28271
- return null;
28272
- }
28273
- return (React__default["default"].createElement(BasicWrapper, { key: `collapse-${en}-${entryIdx}`, entry: en, functionalProperty: functionalProperty, step: stp, render: inputWrapper },
28274
- 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 })));
28275
- })));
28276
- }
28277
28674
  const error = entry.split('.').reduce((acc, curr) => acc && acc[curr], errors);
28278
28675
  const isDirty = entry.split('.').reduce((acc, curr) => acc && acc[curr], dirtyFields);
28279
28676
  const isTouched = entry.split('.').reduce((acc, curr) => acc && acc[curr], touchedFields);
28280
28677
  const errorDisplayed = (!!error && (isSubmitted || isDirty || isTouched));
28281
- const informations = { path: entry, parent: parentInformations, index };
28282
28678
  step = step;
28283
28679
  if (step.onAfterChange) {
28284
28680
  const data = watch();
@@ -28301,64 +28697,60 @@ const Step = (props) => {
28301
28697
  });
28302
28698
  }
28303
28699
  if (step.array) {
28304
- return (React__default["default"].createElement(CustomizableInput, { render: step.render, field: {
28305
- setValue: (key, value) => setValue(key, value), rawValues: getValues(), value: getValues(entry), onChange: (v) => setValue(entry, v)
28306
- }, error: !!error },
28307
- React__default["default"].createElement(ArrayStep, { entry: entry, step: step, disabled: functionalProperty(entry, step.disabled || false), component: ((props, idx) => {
28700
+ 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 },
28701
+ React__default["default"].createElement(ArrayStep, { entry: entry, step: step, disabled: functionalProperty(entry, step.disabled || false, informations, error), component: ((props, idx) => {
28308
28702
  var _a;
28309
- 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 }));
28703
+ 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 } }));
28310
28704
  }) })));
28311
28705
  }
28312
28706
  switch (step.type) {
28313
28707
  case type.string:
28314
28708
  switch (step.format) {
28315
28709
  case format.text:
28316
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28710
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28317
28711
  React__default["default"].createElement("textarea", { className: classNames__default["default"]('mrf-input', step.className, { 'mrf-mrf-input__invalid': !!errorDisplayed }) })));
28318
28712
  case format.code:
28319
28713
  case format.singleLineCode:
28320
28714
  const Component = step.format === format.code ? CodeInput : SingleLineCode;
28321
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28322
- 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)));
28715
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28716
+ React__default["default"].createElement(Component, { className: classNames__default["default"](step === null || step === void 0 ? void 0 : step.className, { 'mrf-input__invalid': !!error }) })));
28323
28717
  case format.markdown:
28324
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28718
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28325
28719
  React__default["default"].createElement(MarkdownInput, { className: classNames__default["default"](step.className, { 'mrf-input__invalid': !!errorDisplayed }) })));
28326
28720
  case format.buttonsSelect:
28327
28721
  case format.select: {
28328
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28329
- 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 }))));
28722
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28723
+ 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 }))));
28330
28724
  }
28331
28725
  default:
28332
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28726
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28333
28727
  React__default["default"].createElement("input", { type: step.format || 'text', className: classNames__default["default"]('mrf-input', step.className, { 'mrf-input__invalid': !!errorDisplayed }) })));
28334
28728
  }
28335
28729
  case type.number:
28336
28730
  switch (step.format) {
28337
28731
  case format.buttonsSelect:
28338
28732
  case format.select:
28339
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28733
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28340
28734
  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 }))));
28341
28735
  default:
28342
- return React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28736
+ return React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28343
28737
  React__default["default"].createElement("input", { type: step.format || 'number', className: classNames__default["default"]('mrf-input', step.className, { 'mrf-input__invalid': !!errorDisplayed }) }));
28344
28738
  }
28345
28739
  case type.bool:
28346
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28347
- React__default["default"].createElement(BooleanInput /* TODO see how to pass error down className={classNames(step.className, { 'mrf-input__invalid': !!errorDisplayed })}*/, null)));
28740
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28741
+ React__default["default"].createElement(BooleanInput, { className: step.className, errorDisplayed: errorDisplayed })));
28348
28742
  case type.object:
28349
28743
  switch (step.format) {
28350
28744
  case format.buttonsSelect:
28351
28745
  case format.select:
28352
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28746
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28353
28747
  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 }))));
28354
28748
  case format.form: //todo: disabled ?
28355
28749
  const flow = option(step.flow).getOrElse(option(step.schema).map(s => Object.keys(s)).getOrElse([]));
28356
- 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 }) } },
28750
+ 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 },
28357
28751
  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 })));
28358
28752
  case format.code:
28359
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, component: (field, props) => (React__default["default"].createElement(CodeInput, Object.assign({}, props, {
28360
- /* TODO className={classNames(step.className, { 'mrf-input__invalid': !!error })}*/
28361
- onChange: (e) => {
28753
+ 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) => {
28362
28754
  let v;
28363
28755
  try {
28364
28756
  v = JSON.parse(e);
@@ -28371,12 +28763,28 @@ const Step = (props) => {
28371
28763
  .map(onChange => onChange({ rawValues: getValues(), value: v, setValue }));
28372
28764
  }, value: field.value === null ? null : ((typeof field.value === 'object') ? JSON.stringify(field.value, null, 2) : field.value) }))) }));
28373
28765
  default:
28374
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28766
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28375
28767
  React__default["default"].createElement(ObjectInput, { className: classNames__default["default"](step.className, { 'mrf-input__invalid': !!errorDisplayed }) })));
28376
28768
  }
28377
28769
  case type.date:
28378
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28379
- React__default["default"].createElement(reactRainbowComponents.DatePicker, { className: classNames__default["default"]('mrf-datepicker', step.className, { 'mrf-input__invalid': !!errorDisplayed }), formatStyle: "large" })));
28770
+ switch (step.format) {
28771
+ case format.datetime:
28772
+ console.debug('datetime');
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(DateTimePicker.DateTimePicker, { value: field.value, onChange: field.onChange, renderInput: (params) => React__default["default"].createElement(TextField__default["default"], Object.assign({}, params)) })));
28776
+ } }));
28777
+ case format.time:
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(TimePicker.TimePicker, { value: field.value, onChange: field.onChange, renderInput: (params) => React__default["default"].createElement(TextField__default["default"], Object.assign({}, params)) })));
28781
+ } }));
28782
+ default:
28783
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, informations: informations, component: (field) => {
28784
+ return (React__default["default"].createElement(LocalizationProvider.LocalizationProvider, { dateAdapter: AdapterDateFns.AdapterDateFns },
28785
+ React__default["default"].createElement(DatePicker.DatePicker, { value: field.value, onChange: field.onChange, renderInput: (params) => React__default["default"].createElement(TextField__default["default"], Object.assign({}, params)) })));
28786
+ } }));
28787
+ }
28380
28788
  case type.file:
28381
28789
  return (React__default["default"].createElement(reactHookForm.Controller, { name: entry, control: control, render: ({ field }) => {
28382
28790
  const FileInput = ({ onChange }) => {
@@ -28394,19 +28802,17 @@ const Step = (props) => {
28394
28802
  const files = field.value || [];
28395
28803
  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 }) },
28396
28804
  React__default["default"].createElement("input", { ref: (r) => setInput(r), type: "file", multiple: true, className: 'mrf-d_none', onChange: setFiles }),
28397
- 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 },
28398
- uploading && React__default["default"].createElement(reactFeather.Loader, null),
28399
- !uploading && React__default["default"].createElement(reactFeather.Upload, null),
28805
+ 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 },
28806
+ uploading && React__default["default"].createElement(Loader, null),
28807
+ !uploading && React__default["default"].createElement(Upload, null),
28400
28808
  React__default["default"].createElement("span", { className: 'mrf-ml_5' }, "Select file(s)")),
28401
28809
  React__default["default"].createElement("span", { className: 'mrf-ml_5' }, files.length <= 0 ? 'No files selected' : files.map(r => r.name).join(" , "))));
28402
28810
  };
28403
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed },
28811
+ return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, errorDisplayed: errorDisplayed, informations: informations },
28404
28812
  React__default["default"].createElement(FileInput, null)));
28405
28813
  } }));
28406
28814
  case type.json:
28407
- return (React__default["default"].createElement(ControlledInput, { step: step, entry: entry, component: (field, props) => (React__default["default"].createElement(CodeInput, Object.assign({}, props, {
28408
- /* TODO className={classNames({ 'mrf-input__invalid': !!error })} */
28409
- onChange: (v) => {
28815
+ 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) => {
28410
28816
  field.onChange(v);
28411
28817
  option(step === null || step === void 0 ? void 0 : step.onChange)
28412
28818
  .map(onChange => onChange({ rawValues: getValues(), value: v, setValue }));
@@ -28433,7 +28839,7 @@ const ArrayStep = ({ entry, step, component, disabled }) => {
28433
28839
  remove(idx);
28434
28840
  trigger(entry);
28435
28841
  } },
28436
- React__default["default"].createElement(reactFeather.Trash2, { size: 16 })))));
28842
+ React__default["default"].createElement(Trash2, { size: 16 })))));
28437
28843
  }),
28438
28844
  React__default["default"].createElement("div", { className: 'mrf-flex mrf-jc_flex_end' },
28439
28845
  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: () => {
@@ -28477,31 +28883,21 @@ const NestedForm = ({ schema, flow, parent, inputWrapper, maybeCustomHttpClient,
28477
28883
  return [...acc, { step, entry }];
28478
28884
  }, []);
28479
28885
  const bordered = computedSandF.length >= 1 && step.label !== null;
28480
- return (React__default["default"].createElement("div", { className: classNames__default["default"]({ ['mrf-nestedform__border']: bordered, ['mrf-border__error']: !!errorDisplayed }), style: { position: 'relative' } },
28886
+ return (React__default["default"].createElement("div", { className: classNames__default["default"](step.className, { ['mrf-nestedform__border']: bordered, ['mrf-border__error']: !!errorDisplayed }), style: { position: 'relative' } },
28481
28887
  !!step.collapsable && schemaAndFlow.flow.length > 1 && collapsed &&
28482
- 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) }),
28888
+ 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) }),
28483
28889
  !!step.collapsable && schemaAndFlow.flow.length > 1 && !collapsed &&
28484
- 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) }),
28890
+ 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) }),
28485
28891
  computedSandF.map(({ step, entry }, idx) => {
28892
+ if (typeof entry === 'object') {
28893
+ return (React__default["default"].createElement(CollapsedStep, { key: idx, entry: entry, schema: schema, inputWrapper: inputWrapper, httpClient: maybeCustomHttpClient, functionalProperty: functionalProperty }));
28894
+ }
28486
28895
  if (!step && typeof entry === 'string') {
28487
28896
  console.error(`no step found for the entry "${entry}" in the given schema. Your form might not work properly. Please fix it`);
28488
28897
  return null;
28489
28898
  }
28490
- if (typeof entry === "object") {
28491
- 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 */
28492
- return React__default["default"].createElement(Collapse, Object.assign({}, entry, { errored: errored }), entry.flow.map((en, entryIdx) => {
28493
- const stp = typeof en === "object" ? undefined : schema[en];
28494
- if (!stp && typeof en === 'string') {
28495
- console.error(`no step found for the entry "${en}" in the given schema. Your form might not work properly. Please fix it`);
28496
- return null;
28497
- }
28498
- return (React__default["default"].createElement(BasicWrapper, { key: `collapse-${en}-${entryIdx}`, entry: en, functionalProperty: functionalProperty, step: stp, render: inputWrapper },
28499
- 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 })));
28500
- }));
28501
- // TODO return collapse, then entry will always be a string in below return
28502
- }
28503
- 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 },
28504
- 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 })));
28899
+ 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 } },
28900
+ 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 } })));
28505
28901
  })));
28506
28902
  };
28507
28903
  function extractFlowString(entry) {