@maif/react-forms 1.6.12 → 1.6.13

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.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- /// <reference types="react" />
2
1
  import * as yup_lib_types from 'yup/lib/types';
3
2
  import * as yup from 'yup';
4
3
  import { AnySchema, StringSchema, NumberSchema, ArraySchema, TestFunction } from 'yup';
5
4
  import Reference from 'yup/lib/Reference';
6
- import React$1, { MutableRefObject } from 'react';
5
+ import React from 'react';
7
6
  import { UseFormReturn } from 'react-hook-form';
7
+ import * as react_jsx_runtime from 'react/jsx-runtime';
8
8
 
9
9
  declare const type: {
10
10
  readonly string: "string";
@@ -16,7 +16,7 @@ declare const type: {
16
16
  readonly json: "json";
17
17
  };
18
18
  declare let typeValues: ("string" | "number" | "object" | "bool" | "date" | "file" | "json")[];
19
- declare type Type = typeof typeValues[number];
19
+ type Type = typeof typeValues[number];
20
20
 
21
21
  declare const format: {
22
22
  readonly array: "array";
@@ -35,10 +35,10 @@ declare const format: {
35
35
  readonly time: "time";
36
36
  };
37
37
  declare let formatValues: ("email" | "array" | "select" | "code" | "markdown" | "textarea" | "password" | "hidden" | "form" | "buttons" | "singleLineCode" | "datetime-local" | "time")[];
38
- declare type Format = typeof formatValues[number];
38
+ type Format = typeof formatValues[number];
39
39
 
40
- declare type Constraint = (resolver: any, key: string, dependencies: any[]) => AnySchema;
41
- declare type NumberRef = Reference<number> | number;
40
+ type Constraint = (resolver: any, key: string, dependencies: any[]) => AnySchema;
41
+ type NumberRef = Reference<number> | number;
42
42
  declare const required: (message?: string) => (r: AnySchema) => any;
43
43
  declare const url: (message?: string) => (r: StringSchema) => yup.StringSchema<string | undefined, yup_lib_types.AnyObject, string | undefined>;
44
44
  declare const email: (message?: string) => (r: StringSchema) => yup.StringSchema<string | undefined, yup_lib_types.AnyObject, string | undefined>;
@@ -52,16 +52,16 @@ declare const integer: (message?: string) => (r: NumberSchema) => yup.NumberSche
52
52
  declare const lessThan: (ref: NumberRef, message?: string) => (r: NumberSchema, key: any, dependencies: Array<[any, Reference]>) => yup.NumberSchema<number | undefined, yup_lib_types.AnyObject, number | undefined>;
53
53
  declare const moreThan: (ref: NumberRef, message?: string) => (r: NumberSchema, key: any, dependencies: Array<[any, Reference]>) => yup.NumberSchema<number | undefined, yup_lib_types.AnyObject, number | undefined>;
54
54
  declare const length: (ref: NumberRef, message?: string) => (r: ArraySchema<any>) => yup.ArraySchema<any, yup_lib_types.AnyObject, any[] | undefined, any[] | undefined>;
55
- declare const supportedFormat: (arrayOfValues: string[], message?: string) => (r: AnySchema) => yup.AnySchema<any, any, any>;
56
- declare const unsupportedFormat: (arrayOfValues: string[], message?: string) => (r: AnySchema) => yup.AnySchema<any, any, any>;
57
- declare const maxSize: (ref: Reference, message?: string) => (r: AnySchema) => yup.AnySchema<any, any, any>;
58
- declare const test: (name: string, message: string | undefined, test: TestFunction<any, object>) => (r: AnySchema) => yup.AnySchema<any, any, any>;
59
- declare const when: (ref: string, test: TestFunction<any, object>, then?: Constraint[], otherwise?: Constraint[]) => (r: AnySchema, key: string, dependencies: any[]) => yup.AnySchema<any, any, any>;
60
- declare const oneOf: (arrayOfValues: any[], message?: string) => (r: AnySchema) => yup.AnySchema<any, any, any>;
61
- declare const blacklist: (arrayOfValues: any[], message?: string) => (r: AnySchema) => yup.AnySchema<any, any, any>;
55
+ declare const supportedFormat: (arrayOfValues: string[], message?: string) => (r: AnySchema) => yup.AnySchema;
56
+ declare const unsupportedFormat: (arrayOfValues: string[], message?: string) => (r: AnySchema) => yup.AnySchema;
57
+ declare const maxSize: (ref: Reference, message?: string) => (r: AnySchema) => yup.AnySchema;
58
+ declare const test: (name: string, message: string | undefined, test: TestFunction<any, object>) => (r: AnySchema) => yup.AnySchema;
59
+ declare const when: (ref: string, test: TestFunction<any, object>, then?: Constraint[], otherwise?: Constraint[]) => (r: AnySchema, key: string, dependencies: any[]) => yup.AnySchema;
60
+ declare const oneOf: (arrayOfValues: any[], message?: string) => (r: AnySchema) => yup.AnySchema;
61
+ declare const blacklist: (arrayOfValues: any[], message?: string) => (r: AnySchema) => yup.AnySchema;
62
62
  declare const ref: <T>(ref: string) => Reference<T>;
63
63
  declare const jsonConstraints: Record<string, any>;
64
- declare type TConstraintType = keyof typeof jsonConstraints;
64
+ type TConstraintType = keyof typeof jsonConstraints;
65
65
 
66
66
  type constraints_d_Constraint = Constraint;
67
67
  declare const constraints_d_required: typeof required;
@@ -126,73 +126,73 @@ interface PropType {
126
126
  trueLabel?: string;
127
127
  falseLabel?: string;
128
128
  }
129
- declare const BooleanInput: ({ onChange, value, readOnly, className, errorDisplayed, buttons, trueLabel, falseLabel }: PropType) => JSX.Element;
129
+ declare const BooleanInput: ({ onChange, value, readOnly, className, errorDisplayed, buttons, trueLabel, falseLabel }: PropType) => react_jsx_runtime.JSX.Element;
130
130
 
131
131
  declare const Collapse: (props: {
132
132
  initCollapsed?: boolean;
133
133
  collapsed?: boolean;
134
134
  errored: boolean;
135
- label?: React$1.ReactNode;
135
+ label?: React.ReactNode;
136
136
  inline?: any;
137
- children: React$1.ReactNode;
137
+ children: React.ReactNode;
138
138
  lineEnd?: boolean;
139
- }) => JSX.Element;
139
+ }) => react_jsx_runtime.JSX.Element;
140
140
 
141
- declare type SelectOption = {
141
+ type SelectOption = {
142
142
  label: string;
143
143
  value: any;
144
144
  };
145
145
  declare const SelectInput: <T extends {
146
146
  [x: string]: any;
147
147
  }>(props: {
148
- possibleValues?: T[] | undefined;
149
- transformer?: {
148
+ possibleValues?: T[];
149
+ transformer?: ((v: T) => SelectOption) | {
150
150
  label: string;
151
151
  value: string;
152
- } | ((v: T) => SelectOption) | undefined;
152
+ };
153
153
  value?: any;
154
154
  defaultValue?: any;
155
- isMulti?: boolean | undefined;
156
- optionsFrom?: string | Promise<T[]> | ((param: {
155
+ isMulti?: boolean;
156
+ optionsFrom?: string | ((param: {
157
157
  rawValues: object;
158
158
  value: any;
159
159
  getValue: (k: string) => any;
160
- }) => string | Promise<T[]>) | undefined;
161
- fetchCondition?: (() => boolean) | undefined;
162
- id?: string | undefined;
163
- httpClient?: ((url: string, method: string) => Promise<Response>) | undefined;
164
- onChange?: ((options: any[] | any) => void) | undefined;
165
- onCreateOption?: ((option: string) => T) | undefined;
160
+ }) => Promise<T[]> | string) | Promise<T[]>;
161
+ fetchCondition?: () => boolean;
162
+ id?: string;
163
+ httpClient?: (url: string, method: string) => Promise<Response>;
164
+ onChange?: (options: any[] | any) => void;
165
+ onCreateOption?: (option: string) => T;
166
166
  buttons: boolean;
167
- disabled?: boolean | undefined;
168
- createOption?: boolean | undefined;
169
- label?: string | undefined;
170
- placeholder?: React$1.ReactNode;
167
+ disabled?: boolean;
168
+ createOption?: boolean;
169
+ label?: string;
170
+ placeholder?: React.ReactNode;
171
171
  className: string;
172
- isClearable?: boolean | undefined;
172
+ isClearable?: boolean;
173
173
  schema: Schema;
174
- }) => JSX.Element;
174
+ }) => react_jsx_runtime.JSX.Element;
175
175
 
176
- declare type InternalState = {
176
+ type InternalState = {
177
177
  [x: string]: {
178
178
  key: string;
179
179
  value: any;
180
180
  };
181
181
  };
182
182
  declare const ObjectInput: (props: {
183
- value?: object | undefined;
184
- onChange?: ((value: InternalState) => void) | undefined;
183
+ value?: object;
184
+ onChange?: (value: InternalState) => void;
185
185
  defaultKeyValue?: {
186
186
  key: string;
187
187
  value: string;
188
- } | undefined;
188
+ };
189
189
  className: string;
190
- disabled?: boolean | undefined;
191
- placeholderKey?: string | undefined;
192
- placeholderValue?: string | undefined;
193
- }) => JSX.Element;
190
+ disabled?: boolean;
191
+ placeholderKey?: string;
192
+ placeholderValue?: string;
193
+ }) => react_jsx_runtime.JSX.Element;
194
194
 
195
- declare type LanguageMode = "javascript" | "css" | "json" | "html" | "markdown";
195
+ type LanguageMode = "javascript" | "css" | "json" | "html" | "markdown";
196
196
 
197
197
  declare function CodeInput({ onChange, value, mode, tabSize, readOnly, showLinesNumber, highlightLine, themeStyle, className, setRef }: {
198
198
  onChange?: (v: string) => void;
@@ -212,16 +212,16 @@ declare function CodeInput({ onChange, value, mode, tabSize, readOnly, showLines
212
212
  };
213
213
  className?: string;
214
214
  setRef?: (editor: any) => void;
215
- }): JSX.Element;
215
+ }): react_jsx_runtime.JSX.Element;
216
216
 
217
217
  declare const MarkdownInput: (props: {
218
- value?: string | undefined;
219
- preview?: boolean | undefined;
218
+ value?: string;
219
+ preview?: boolean;
220
220
  className: string;
221
- readOnly?: boolean | undefined;
222
- onChange?: ((value: string) => void) | undefined;
223
- actions?: ((inject: (text: string) => void) => JSX.Element) | undefined;
224
- }) => JSX.Element;
221
+ readOnly?: boolean;
222
+ onChange?: (value: string) => void;
223
+ actions?: (inject: (text: string) => void) => React.JSX.Element;
224
+ }) => react_jsx_runtime.JSX.Element;
225
225
 
226
226
  declare function SingleLineCode({ onChange, value, mode, tabSize, readOnly, showLinesNumber, highlightLine, themeStyle }: {
227
227
  onChange?: (newValue: string) => void;
@@ -239,7 +239,7 @@ declare function SingleLineCode({ onChange, value, mode, tabSize, readOnly, show
239
239
  minWidth: string;
240
240
  maxWidth: string;
241
241
  };
242
- }): JSX.Element;
242
+ }): react_jsx_runtime.JSX.Element;
243
243
 
244
244
  interface OptionActionItem {
245
245
  display?: boolean;
@@ -253,7 +253,7 @@ interface OptionActions {
253
253
  submit?: OptionActionItem;
254
254
  add?: OptionActionItem;
255
255
  }
256
- declare type HttpClient = (url: string, method: string) => Promise<Response>;
256
+ type HttpClient = (url: string, method: string) => Promise<Response>;
257
257
  interface Option {
258
258
  httpClient?: HttpClient;
259
259
  watch?: boolean | ((param: any) => void);
@@ -264,7 +264,7 @@ interface Option {
264
264
  interface Schema {
265
265
  [key: string]: SchemaEntry;
266
266
  }
267
- declare type SchemaRenderType = ({ rawValues, value, onChange, error, setValue, getValue, informations, defaultValue }: {
267
+ type SchemaRenderType = ({ rawValues, value, onChange, error, setValue, getValue, informations, defaultValue }: {
268
268
  rawValues?: any;
269
269
  value?: any;
270
270
  onChange?: (param: any) => void;
@@ -273,7 +273,7 @@ declare type SchemaRenderType = ({ rawValues, value, onChange, error, setValue,
273
273
  informations?: Informations;
274
274
  setValue?: (key: string, data: any) => void;
275
275
  defaultValue?: any;
276
- }) => JSX.Element;
276
+ }) => React.JSX.Element;
277
277
  interface ConditionnalSchemaElement {
278
278
  default?: boolean;
279
279
  condition?: ({ rawValues, ref }: {
@@ -376,7 +376,7 @@ interface SchemaEntry {
376
376
  };
377
377
  value: any;
378
378
  getValue: (key: string) => any;
379
- }) => JSX.Element);
379
+ }) => React.JSX.Element);
380
380
  deps?: string | Array<string> | ((informations: Informations) => string | Array<string>);
381
381
  item?: ({
382
382
  disabled?: boolean | ((prop: {
@@ -421,8 +421,8 @@ interface FlowObject {
421
421
  flow: Flow;
422
422
  collapsed: boolean;
423
423
  }
424
- declare type Flow = Array<string | FlowObject>;
425
- declare type TFunctionalProperty = <T>(entry: string, prop: T | ((param: {
424
+ type Flow = Array<string | FlowObject>;
425
+ type TFunctionalProperty = <T>(entry: string, prop: T | ((param: {
426
426
  rawValues: {
427
427
  [x: string]: any;
428
428
  };
@@ -443,24 +443,24 @@ interface Informations {
443
443
  interface StepsOptions {
444
444
  addLabel?: string;
445
445
  }
446
- declare type TBaseObject = {
446
+ type TBaseObject = {
447
447
  [key: string]: any;
448
448
  };
449
449
 
450
- declare type FormProps<DataType> = {
450
+ type FormProps<DataType> = {
451
451
  schema: Schema;
452
452
  flow?: Array<string | FlowObject>;
453
453
  value?: DataType;
454
- inputWrapper?: (props: object) => JSX.Element;
454
+ inputWrapper?: (props: object) => React.JSX.Element;
455
455
  onSubmit: (obj: DataType) => void;
456
- onError?: (errors: Object, e?: React$1.BaseSyntheticEvent) => void;
456
+ onError?: (errors: Object, e?: React.BaseSyntheticEvent) => void;
457
457
  footer?: (props: {
458
458
  reset: () => void;
459
459
  valid: () => void;
460
- }) => JSX.Element;
460
+ }) => React.JSX.Element;
461
461
  className?: string;
462
462
  options?: Option;
463
- ref?: MutableRefObject<FormRef | undefined>;
463
+ ref?: React.RefObject<FormRef | undefined>;
464
464
  };
465
465
  interface FormRef {
466
466
  handleSubmit: () => void;
@@ -469,6 +469,6 @@ interface FormRef {
469
469
  data: () => any;
470
470
  };
471
471
  }
472
- declare const Form: <T extends TBaseObject>(props: FormProps<T>, ref?: React$1.Ref<FormRef>) => React$1.ReactElement;
472
+ declare const Form: <T extends TBaseObject>(props: FormProps<T>, ref?: React.Ref<FormRef>) => React.ReactElement;
473
473
 
474
474
  export { BooleanInput, CodeInput, Collapse, ConditionnalSchema, ConditionnalSchemaElement, Flow, FlowObject, Form, FormProps, FormRef, Format, HttpClient, Informations, MarkdownInput, ObjectInput, Option, OptionActionItem, OptionActions, Schema, SchemaEntry, SchemaRenderType, SelectInput, SelectOption, SingleLineCode, StepsOptions, TBaseObject, TFunctionalProperty, Type, constraints_d as constraints, format, type };
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- import*as e from"yup";import*as t from"react";import r,{useRef as n,useEffect as a,useCallback as o,forwardRef as l,useState as i,useMemo as s,useImperativeHandle as c}from"react";import{yupResolver as m}from"@hookform/resolvers/yup";import{useWatch as u,useFormContext as p,useController as d,useFieldArray as f,Controller as h,useForm as b,FormProvider as v}from"react-hook-form";import y from"object-hash";import g from"lodash.debounce";import O from"fast-deep-equal";import{AdapterDateFns as j}from"@mui/x-date-pickers/AdapterDateFns";import{LocalizationProvider as E}from"@mui/x-date-pickers/LocalizationProvider";import{DatePicker as w}from"@mui/x-date-pickers/DatePicker";import{TimePicker as k}from"@mui/x-date-pickers/TimePicker";import{DateTimePicker as x}from"@mui/x-date-pickers/DateTimePicker";import _ from"@mui/material/TextField";import C from"prop-types";import V from"classnames";import N from"react-select/creatable";import S from"react-select";import{EditorState as F}from"@codemirror/state";import{javascript as P}from"@codemirror/lang-javascript";import{html as T}from"@codemirror/lang-html";import{json as M}from"@codemirror/lang-json";import{css as z}from"@codemirror/lang-css";import{markdown as W}from"@codemirror/lang-markdown";import{EditorView as L,highlightSpecialChars as A,drawSelection as D,dropCursor as $,highlightActiveLine as R,keymap as I}from"@codemirror/view";import{history as q,historyKeymap as B}from"@codemirror/history";import{foldGutter as H,foldKeymap as J}from"@codemirror/fold";import{defaultKeymap as U,indentWithTab as K}from"@codemirror/commands";import{indentUnit as Y}from"@codemirror/language";import{lineNumbers as G,highlightActiveLineGutter as Q}from"@codemirror/gutter";import{bracketMatching as X}from"@codemirror/matchbrackets";import{closeBrackets as Z,closeBracketsKeymap as ee}from"@codemirror/closebrackets";import{highlightSelectionMatches as te,searchKeymap as re}from"@codemirror/search";import{autocompletion as ne,completionKeymap as ae}from"@codemirror/autocomplete";import{commentKeymap as oe}from"@codemirror/comment";import{rectangularSelection as le}from"@codemirror/rectangular-selection";import{defaultHighlightStyle as ie}from"@codemirror/highlight";import{lintKeymap as se}from"@codemirror/lint";import{oneDark as ce}from"@codemirror/theme-one-dark";import me from"showdown";import"@fortawesome/fontawesome-free/css/all.css";import"highlight.js/styles/monokai.css";import ue from"highlight.js/lib/core";import pe from"react-tooltip";import{v4 as de}from"uuid";const fe={string:"string",number:"number",bool:"bool",date:"date",object:"object",file:"file",json:"json"};Object.values(fe);const he={array:"array",select:"select",code:"code",markdown:"markdown",text:"textarea",textarea:"textarea",email:"email",password:"password",hidden:"hidden",form:"form",buttonsSelect:"buttons",singleLineCode:"singleLineCode",datetime:"datetime-local",time:"time"};Object.values(he);const be=(e="Value required")=>t=>t.required(e),ve=(e="That is not a valid url")=>t=>t.url(e),ye=(e="That is not a valid email")=>t=>t.email(e),ge=(e="That is not a valid uuid")=>t=>t.uuid(e),Oe=(e=/.*/,t="This field does not match the pattern")=>r=>r.matches(e,{message:t,excludeEmptyString:!0}),je=(e,t="Min value is required")=>r=>r.min(Le(e),t),Ee=(e,t="Max value is required")=>r=>r.max(Le(e),t),we=(e="Positive value is required")=>t=>t.positive(e),ke=(e="Negative value is required")=>t=>t.negative(e),xe=(e="an integer please")=>t=>t.integer(e),_e=(e,t=`This field must be less than ${e}`)=>(r,n,a)=>("number"!=typeof e&&a.push([n,e]),r.lessThan(Le(e),t)),Ce=(e,t=`This field must be more than ${e}`)=>(r,n,a)=>("number"!=typeof e&&a.push([n,e]),r.moreThan(Le(e),t)),Ve=(e,t=`The size of this collection must be ${e}`)=>r=>r.length(Le(e),t),Ne=(e,t="Unsupported File Format")=>r=>{const n=e.map((e=>e.toLowerCase()));return r.test("supportedFormat",t,(e=>!e.length||n.some((t=>e[0].type.toLowerCase().includes(t)))))},Se=(e,t="Unsupported File Format")=>r=>{const n=e.map((e=>e.toLowerCase()));return r.test("unsupportedFormat",t,(e=>!e.length||n.some((t=>e[0].type.toLowerCase().includes(t)))))},Fe=(e,t=`size is excedeed ${e}`)=>r=>r.test("fileSize",t,(t=>!t.length||t[0].size<=Le(e))),Pe=(e,t="Test failed",r)=>n=>n.test(e,t,r),Te=(e,t,r=[],n=[])=>(a,o,l)=>{const i=r.reduce(((e,t)=>t(e,o,l)),a),s=n.reduce(((e,t)=>t(e,o,l)),a);return a.when(e,{is:t,then:i,otherwise:s})},Me=(e,t=`This value must be one of ${e.join(", ")}`)=>r=>r.oneOf(e.map(Le),t),ze=(e,t=`This value can't include the following values ${e.join(", ")}`)=>r=>r.test("blacklist",t,(t=>!e.some((e=>(t||"").includes(e))))),We=t=>e.ref(t),Le=e=>(null==e?void 0:e.ref)?We(e.ref):e,Ae={required:({message:e="Value required"})=>be(e),url:({message:e="That is not a valid url"})=>ve(e),email:({message:e="That is not a valid email"})=>ye(e),uuid:({message:e="That is not a valid uuid"})=>ge(e),matches:({regexp:e=/.*/,message:t="This field does not match the pattern"})=>Oe(e,t),min:({ref:e,message:t="Min value is required"})=>je(e,t),max:({ref:e,message:t="Max value is required"})=>Ee(e,t),positive:({message:e="Positive value is required"})=>we(e),negative:({message:e="Negative value is required"})=>ke(e),integer:({message:e="an integer please"})=>xe(e),lessThan:({ref:e,message:t=`This field must be less than ${e}`})=>_e(e,t),moreThan:({ref:e,message:t=`This field must be more than ${e}`})=>Ce(e,t),length:({ref:e,message:t=`The size of this collection must be ${e}`})=>Ve(e,t),supportedFormat:({arrayOfValues:e,message:t="Unsupported File Format"})=>Ne(e,t),unsupportedFormat:({arrayOfValues:e,message:t="Unsupported File Format"})=>Se(e,t),maxSize:({ref:e,message:t=`size is excedeed ${e}`})=>Fe(e,t),test:e=>Pe(e.name,e.message,e.test),when:({ref:e,test:t,then:r=[],otherwise:n=[]})=>Te(e,t,r,n),oneOf:({arrayOfValues:e,message:t=`This value must be one of ${e.join(", ")}`})=>Me(e,t),blacklist:({arrayOfValues:e,message:t=`This value can't include the following values ${e.join(", ")}`})=>ze(e,t),ref:e=>We(e.ref)};var De=Object.freeze({__proto__:null,required:be,url:ve,email:ye,uuid:ge,matches:Oe,min:je,max:Ee,positive:we,negative:ke,integer:xe,lessThan:_e,moreThan:Ce,length:Ve,supportedFormat:Ne,unsupportedFormat:Se,maxSize:Fe,test:Pe,when:Te,oneOf:Me,blacklist:ze,ref:We,jsonConstraints:Ae});function $e(e){return null==e?Ie:Re(e)}const Re=e=>({map:t=>$e(t(e)),flatMap:t=>$e(t(e)).getOrElse(Ie),fold:(t,r)=>r(e),orElse:()=>$e(e),getOrElse:()=>e,getOrNull:()=>e,isDefined:()=>!0,exists:t=>$e(t(e)).isDefined()}),Ie={map:()=>Ie,flatMap:()=>Ie,fold:e=>e(),orElse:e=>$e(e),getOrElse:e=>e,getOrNull:()=>{},isDefined:()=>!1,exists:()=>!1},qe={[fe.string]:t=>e.string().nullable().optional().typeError(t||"Value must be a string"),[fe.number]:t=>e.number().nullable().optional().transform((e=>isNaN(e)?null:e)).typeError(t||"Value must be a number"),[fe.bool]:()=>e.bool().nullable().optional(),[fe.object]:()=>e.object().nullable().optional(),[fe.date]:t=>e.date().nullable().optional().typeError(t||"Value must be a date"),[fe.file]:()=>e.mixed(),[fe.json]:()=>e.mixed()},Be=(t,r,n,a)=>{var o,l;const{constraints:i=[]}=t;if(t.array||t.isMulti){let i,s=e.array().nullable().optional();if(t.schema){const r=[];i=e.object().shape(Je(t.flow||Object.keys(t.schema),t.schema,r,a).shape,r),s=s.of(e.object().shape({value:i}))}else(null===(o=t.constraints)||void 0===o?void 0:o.length)&&(i=t.constraints.reduce(((e,t)=>He(t,e,r,n)),qe[t.type]()),s=s.of(e.object().shape({value:i})));return(null===(l=t.arrayConstraints)||void 0===l?void 0:l.length)&&(s=t.arrayConstraints.reduce(((e,t)=>He(t,e,r,n)),s)),s}if(t.type===fe.object&&t.schema){if(!Object.keys(t.schema).length)return e.object().nullable().optional();const o=Je(t.flow||Object.keys(t.schema),t.schema,n,a);return i.reduce(((e,t)=>He(t,e,r,n)),e.object().nullable().optional().shape(o.shape,n))}if(t.type===fe.object&&t.conditionalSchema){const{schema:o,flow:l}=$e(t.conditionalSchema).map((e=>{const t=$e(e.ref).map((e=>a[e])).getOrNull();return $e(e.switch.find((e=>"function"==typeof e.condition?e.condition({rawValues:a,ref:t}):e.condition===t))).orElse(e.switch.find((e=>e.default))).getOrElse({schema:{},flow:[]})})).getOrElse({schema:{},flow:[]}),s=Je(l||Object.keys(o),o,n,a);return i.reduce(((e,t)=>He(t,e,r,n)),e.object().nullable().optional().shape(s.shape,n))}return i.reduce(((e,t)=>He(t,e,r,n)),qe[t.type]())},He=(e,t,r,n)=>"function"==typeof e?e(t,r,n):Ae[e.type](e)(t,r,n),Je=(e,t,r=[],n={})=>{if(!Object.keys(t).length)return{shape:{},dependencies:r};const a=(e||Object.keys(t)).reduce(((e,a)=>{if("object"==typeof a)return Object.assign(Object.assign({},e),Je(a.flow,t,r,n).shape);if(!t[a])return e;const o=Be(t[a],a,r,n);return Object.assign(Object.assign({},e),{[a]:o})}),{});return{shape:a,dependencies:r}},Ue=e=>Boolean(e&&"function"==typeof e.then),Ke=e=>e.some(Array.isArray)?Ke(e.flat()):e;function Ye(e){return null!=e}const Ge=e=>e&&Array.isArray(e)?e.map(Ge):e&&"object"==typeof e?Object.fromEntries(Object.entries(e).map((([e,t])=>Ue(t)?[e,`promise-${e}`]:"object"==typeof t?[e,Ge(t)]:[e,t]))):e,Qe=e=>y(Ge(e)),Xe=(e,t)=>{const r=n(!0),o=n(t);a((()=>{if(r.current)return e(),void(r.current=!1);Qe(t)!==Qe(o.current)&&(o.current=Object.assign({},t),e())}),t)},Ze=(e,t,r,n)=>Ye(r)?r:t?[]:e;function et(e,t,r){return t?(e||Object.keys(t)).reduce(((e,n)=>{if("object"==typeof n)return Object.assign(Object.assign({},e),et(n.flow,t,r));const a=t[n];return a?a.schema&&!a.array?Object.assign(Object.assign({},e),{[n]:a.defaultValue||et(a.flow,a.schema)}):Object.assign(Object.assign({},e),{[n]:Ze(r?r[n]:null,a.array||a.isMulti||!1,a.defaultValue)}):e}),{}):{}}const tt=(e,t={},r,n)=>{const a=$e(r).map((e=>e.map((e=>"object"==typeof e?e.flow:e)))).map(Ke).getOrElse(Object.keys(n||{}));return Object.entries(n||{}).filter((([e])=>a.includes(e))).reduce(((r,[a,o])=>{var l,i;let s=null;e&&(s=e[a]);const c=t[a];return!s&&Ye(c)&&(s=c),o.array&&!o.render?Object.assign(Object.assign({},r),{[a]:(s||[]).map((e=>{var r,o;return{value:"object"!=typeof e||e instanceof Date||Array.isArray(e)?e:tt(e,t,null===(r=null==n?void 0:n[a])||void 0===r?void 0:r.flow,(null===(o=null==n?void 0:n[a])||void 0===o?void 0:o.schema)||{})}}))}):null===s||"object"!=typeof s||s instanceof Date||Array.isArray(s)?Object.assign(Object.assign({},r),{[a]:void 0===s?Array.isArray(s)?[]:null:s}):Object.assign(Object.assign({},r),{[a]:tt(null==e?void 0:e[a],null==t?void 0:t[a],null===(l=null==n?void 0:n[a])||void 0===l?void 0:l.flow,(null===(i=null==n?void 0:n[a])||void 0===i?void 0:i.schema)||{})})}),e||{})},rt=(e,t)=>!e||"object"!=typeof e||e instanceof Date||Array.isArray(e)?e:Object.entries(e).reduce(((e,r)=>{var n,a;const[o,l]=r;if(Array.isArray(l)){return $e(t).map((e=>e[o])).map((e=>!!e.array&&!e.render)).getOrElse(!1)?Object.assign(Object.assign({},e),{[o]:l.map((e=>{var r;return!e.value||"object"!=typeof e.value||e.value instanceof Date&&!Array.isArray(e.value)?e.value:rt(e.value,(null===(r=t[o])||void 0===r?void 0:r.schema)||{})}))}):Object.assign(Object.assign({},e),{[o]:l})}if(!(!l||"object"!=typeof l||l instanceof Date&&!Array.isArray(l)))return Object.assign(Object.assign({},e),{[o]:rt(l,(null===(n=t[o])||void 0===n?void 0:n.schema)||{})});if("json"!==(null===(a=t[o])||void 0===a?void 0:a.type))return Object.assign(Object.assign({},e),{[o]:l});try{return Object.assign(Object.assign({},e),{[o]:JSON.parse(l)})}catch(t){return Object.assign(Object.assign({},e),{[o]:l})}}),{});function nt(e){return e.flow.map((e=>"string"==typeof e?e:nt(e))).flat()}const at=r.memo((({options:e,control:t,schema:r,onSubmit:n,handleSubmit:a,onError:l})=>{const i=u({control:t}),s=o(g((e=>a((()=>n(rt(e,r))),l)()),250,{leading:!0}),[]);return Xe((()=>{(null==e?void 0:e.autosubmit)&&s(i)}),[i]),(null==e?void 0:e.watch)&&("function"==typeof e.watch?e.watch(rt(i,r)):(console.group("react-form watch"),console.log(rt(i,r)),console.groupEnd())),null}),(()=>!0));function ot(){return ot=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ot.apply(this,arguments)}function lt(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var it=l((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=lt(e,["color","size"]);return r.createElement("svg",ot({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),r.createElement("line",{x1:"12",y1:"2",x2:"12",y2:"6"}),r.createElement("line",{x1:"12",y1:"18",x2:"12",y2:"22"}),r.createElement("line",{x1:"4.93",y1:"4.93",x2:"7.76",y2:"7.76"}),r.createElement("line",{x1:"16.24",y1:"16.24",x2:"19.07",y2:"19.07"}),r.createElement("line",{x1:"2",y1:"12",x2:"6",y2:"12"}),r.createElement("line",{x1:"18",y1:"12",x2:"22",y2:"12"}),r.createElement("line",{x1:"4.93",y1:"19.07",x2:"7.76",y2:"16.24"}),r.createElement("line",{x1:"16.24",y1:"7.76",x2:"19.07",y2:"4.93"}))}));function st(){return st=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},st.apply(this,arguments)}function ct(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}it.propTypes={color:C.string,size:C.oneOfType([C.string,C.number])},it.displayName="Loader";var mt=l((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=ct(e,["color","size"]);return r.createElement("svg",st({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),r.createElement("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),r.createElement("polyline",{points:"17 8 12 3 7 8"}),r.createElement("line",{x1:"12",y1:"3",x2:"12",y2:"15"}))}));function ut(){return ut=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ut.apply(this,arguments)}function pt(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}mt.propTypes={color:C.string,size:C.oneOfType([C.string,C.number])},mt.displayName="Upload";var dt=l((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=pt(e,["color","size"]);return r.createElement("svg",ut({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),r.createElement("polyline",{points:"6 9 12 15 18 9"}))}));function ft(){return ft=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ft.apply(this,arguments)}function ht(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}dt.propTypes={color:C.string,size:C.oneOfType([C.string,C.number])},dt.displayName="ChevronDown";var bt=l((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=ht(e,["color","size"]);return r.createElement("svg",ft({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),r.createElement("polyline",{points:"18 15 12 9 6 15"}))}));function vt(){return vt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},vt.apply(this,arguments)}function yt(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}bt.propTypes={color:C.string,size:C.oneOfType([C.string,C.number])},bt.displayName="ChevronUp";var gt=l((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=yt(e,["color","size"]);return r.createElement("svg",vt({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),r.createElement("polyline",{points:"3 6 5 6 21 6"}),r.createElement("path",{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"}),r.createElement("line",{x1:"10",y1:"11",x2:"10",y2:"17"}),r.createElement("line",{x1:"14",y1:"11",x2:"14",y2:"17"}))}));gt.propTypes={color:C.string,size:C.oneOfType([C.string,C.number])},gt.displayName="Trash2";const Ot=({onChange:e,value:t,readOnly:n,className:a,errorDisplayed:o,buttons:l,trueLabel:i,falseLabel:s})=>{const c=t=>{n||null==e||e(t)};let m=V("mrf-content_switch",a,{"mrf-content_switch_button_on":!!t,"mrf-content_switch_button_off":!t&&null!==t,"mrf-content_switch_button_null":null===t,"mrf-cursor_pointer":!n,"mrf-cursor_not_allowed":n,"mrf-input__invalid":!!o}),u=()=>c(!0);return t&&(u=()=>c(!1)),l?r.createElement("div",{className:"d-flex"},r.createElement("button",{type:"button",className:V("mrf-flex_grow_1 mrf-btn mrf-btn_grey mrf-ml_5",{active:!!t}),onClick:()=>e(!0)},i||"true"),r.createElement("button",{type:"button",className:V("mrf-flex_grow_1 mrf-btn mrf-btn_grey mrf-ml_5",{active:!t}),onClick:()=>e(!1)},s||"false")):r.createElement("input",{type:"checkbox",className:m,onChange:u})};function jt(){return jt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},jt.apply(this,arguments)}function Et(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var wt=l((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=Et(e,["color","size"]);return r.createElement("svg",jt({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),r.createElement("path",{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"}),r.createElement("line",{x1:"1",y1:"1",x2:"23",y2:"23"}))}));function kt(){return kt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},kt.apply(this,arguments)}function xt(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}wt.propTypes={color:C.string,size:C.oneOfType([C.string,C.number])},wt.displayName="EyeOff";var _t=l((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=xt(e,["color","size"]);return r.createElement("svg",kt({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),r.createElement("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),r.createElement("circle",{cx:"12",cy:"12",r:"3"}))}));_t.propTypes={color:C.string,size:C.oneOfType([C.string,C.number])},_t.displayName="Eye";const Ct=e=>{const[t,n]=i(e.initCollapsed||e.collapsed),a=e=>{e&&e.stopPropagation(),n(!t)};return r.createElement("div",null,r.createElement("hr",{className:V({"mrf-collapse_error":e.errored})}),r.createElement("div",{className:"mrf-cursor_pointer mrf-flex mrf-jc_between",onClick:a},r.createElement("span",{className:V("mrf-collapse_label",{"mrf-collapse_error":e.errored})},e.label),r.createElement("button",{type:"button",className:V("mrf-btn","mrf-btn_sm","mrf-ml_5",{"mrf-collapse_error":e.errored}),onClick:a},!!t&&r.createElement(_t,{size:16}),!t&&r.createElement(wt,{size:16}))),r.createElement("div",{className:V("mrf-ml_10",{"mrf-display__none":!!t,"mrf-flex":!!e.inline,"mrf-collapse__inline":!!e.inline})},e.children),e.lineEnd&&r.createElement("hr",null))},Vt=(e,t=[],r=!1)=>{if(null===e||!e)return null;if(r)return $e(e).map((e=>(Array.isArray(e)?e||[]:"object"==typeof e?Object.values(e):e).map((e=>Vt(e,t,!1))))).getOrElse([]);const n=$e(t.find((t=>O(t.value,e))));return n.getOrElse({label:n.map((e=>e.label)).getOrElse((null==e?void 0:e.label)||("object"==typeof e?JSON.stringify(e):e)),value:n.map((e=>e.value)).getOrElse((null==e?void 0:e.value)||e)})},Nt=e=>{const{getValues:t}=p();function n(t){const r=e.transformer?"function"==typeof e.transformer?e.transformer(t):{label:t[e.transformer.label],value:t[e.transformer.value]}:t;return{label:(null==r?void 0:r.label)||("object"==typeof r?JSON.stringify(r):r),value:(null==r?void 0:r.value)||t}}const o=(e.possibleValues||[]).map((e=>n(e))),[l,s]=i(!0),[c,m]=i(o),[u,d]=i();a((()=>{!l&&c.length&&d(Vt(e.value||e.defaultValue,c,e.isMulti))}),[e.value,c,e.defaultValue,l]),a((()=>{if(e.optionsFrom){if($e(e.fetchCondition).map((e=>e())).getOrElse(!0)){let r;if(s(!0),Ue(e.optionsFrom))r=e.optionsFrom;else if("function"==typeof e.optionsFrom){const n=e.optionsFrom({rawValues:rt(t(),e.schema),value:t(e.id),getValue:e=>t(e)});r=Ue(n)?n:e.httpClient(n,"GET").then((e=>e.json()))}else r=e.httpClient(e.optionsFrom,"GET").then((e=>e.json()));r.then((e=>e.map((e=>n(e))))).then((e=>{m(e),d(e.find((e=>Array.isArray(u)?u.find((t=>t.value===e.value)):e.value===(u?u.value:u)))||null),s(!1)}))}}else m((e.possibleValues||[]).map((e=>n(e)))),setTimeout((()=>s(!1)),250)}),[e.optionsFrom,e.possibleValues,e.onChange]);const f=t=>{var r,n;d(t),e.isMulti?null===(r=null==e?void 0:e.onChange)||void 0===r||r.call(e,t.map((e=>e.value))):null===(n=null==e?void 0:e.onChange)||void 0===n||n.call(e,null==t?void 0:t.value)},h=(t,r)=>{const n=$e(r).map((e=>e(t))).flatMap((t=>{return r=t,e.transformer?"function"==typeof e.transformer?$e(e.transformer(r)):Re({label:r[e.transformer.label],value:r[e.transformer.value]}):Ie;var r})).getOrElse(Vt(t,c));m([...c||[],n]),e.isMulti?f([...u||[],n]):f(n)};return e.buttons?r.createElement("div",{style:{display:"flex"}},c.map(((t,n)=>{const a=!!u&&(e.isMulti?u.includes(t):t.value===u.value);return r.createElement("button",{key:n,type:"button",disabled:e.disabled,className:V(e.className,"mrf-btn mrf-btn_grey mrf-ml_5",{active:a}),onClick:()=>(t=>{if(e.isMulti){const e=u;return e.includes(t)?f(e.filter((e=>e.value!==t.value))):f([...e,t])}return!e.isMulti&&e.isClearable&&u&&t.value===u.value?f(null):f(t)})(t)},t.label)}))):e.createOption?r.createElement(N,Object.assign({},e,{name:`${e.label}-search`,isLoading:l,value:u,isDisabled:l||e.disabled,placeholder:e.placeholder,onChange:f,options:c,onCreateOption:t=>h(t,e.onCreateOption),classNamePrefix:"react-form-select",className:e.className})):r.createElement(S,Object.assign({},e,{name:`${e.label}-search`,isLoading:l,value:u,defaultValue:u,isDisabled:l||e.disabled,placeholder:e.placeholder,options:c,onChange:f,classNamePrefix:"react-form-select",className:e.className}))};function St(){return St=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},St.apply(this,arguments)}function Ft(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var Pt=l((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=Ft(e,["color","size"]);return r.createElement("svg",St({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),r.createElement("circle",{cx:"12",cy:"12",r:"10"}),r.createElement("line",{x1:"12",y1:"8",x2:"12",y2:"16"}),r.createElement("line",{x1:"8",y1:"12",x2:"16",y2:"12"}))}));function Tt(){return Tt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Tt.apply(this,arguments)}function Mt(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}Pt.propTypes={color:C.string,size:C.oneOfType([C.string,C.number])},Pt.displayName="PlusCircle";var zt=l((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=Mt(e,["color","size"]);return r.createElement("svg",Tt({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),r.createElement("circle",{cx:"12",cy:"12",r:"10"}),r.createElement("line",{x1:"8",y1:"12",x2:"16",y2:"12"}))}));zt.propTypes={color:C.string,size:C.oneOfType([C.string,C.number])},zt.displayName="MinusCircle";const Wt=e=>{const[r,n]=i({});a((()=>{n(Object.fromEntries(Object.entries(e.value||{}).map((([e,t],r)=>[Date.now()+r,{key:e,value:t}]))))}),[]),a((()=>{if(e.value){const t=e.value||{},a=Object.entries(r||{}).reduce(((e,[t,r])=>r.key?Object.assign(Object.assign({},e),{[r.key]:r.value}):e),{});O(t,a)||n(Object.fromEntries(Object.entries(e.value||{}).map((([e,t],r)=>[Date.now()+r,{key:e,value:t}]))))}}),[e.value]);const o=t=>{var r;null===(r=null==e?void 0:e.onChange)||void 0===r||r.call(e,Object.values(t).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t.key]:t.value})),{}))},l=()=>{const t=e.defaultKeyValue||{key:"",value:""},a=Object.assign(Object.assign({},r),{[Date.now()]:t});n(a),o(a)};return t.createElement("div",{className:e.className},0===Object.keys(r||{}).length&&t.createElement("button",{disabled:e.disabled,type:"button",className:"mrf-flex mrf-btn mrf-btn_blue mrf-btn_sm",onClick:()=>{if(!r||0===Object.keys(r).length){const t=Object.assign(Object.assign({},r),{[Date.now()]:e.defaultKeyValue||{key:"",value:""}});n(t),o(t)}}},t.createElement(Pt,null)),Object.entries(r||{}).map((([a,{key:i,value:s}],c)=>t.createElement("div",{className:"mrf-flex mrf-mt_5",key:c},t.createElement("input",{disabled:e.disabled,type:"text",className:"mrf-w_50 mrf-input",placeholder:e.placeholderKey,value:i,onChange:e=>((e,t)=>{const a=Object.assign(Object.assign({},r),{[e]:{key:t,value:r[e].value}});n(a),o(a)})(a,e.target.value)}),t.createElement("input",{disabled:e.disabled,type:"text",className:"mrf-w_50 mrf-input",placeholder:e.placeholderValue,value:s,onChange:e=>((e,t)=>{const a=Object.assign(Object.assign({},r),{[e]:{key:r[e].key,value:t}});n(a),o(a)})(a,e.target.value)}),t.createElement("button",{disabled:e.disabled,type:"button",className:"mrf-flex mrf-ai_center mrf-btn mrf-btn_red mrf-btn_sm mrf-ml_10",onClick:()=>(e=>{const t=Object.fromEntries(Object.entries(r).filter((([t,r])=>t!==e)));n(t),o(t)})(a)},t.createElement(zt,null)),c===Object.keys(r).length-1&&t.createElement("button",{disabled:e.disabled,type:"button",className:"mrf-flex mrf-ai_center mrf-btn mrf-btn_blue mrf-btn_sm mrf-ml_5",onClick:l},t.createElement(Pt,null))))))},Lt={javascript:P,css:z,json:M,html:T,markdown:W};function At(e,t,r=1,n=!1,a=!0,o=!1,l={height:"-1",minHeight:"300px",maxHeight:"-1",width:"-1",minWidth:"-1",maxWidth:"-1"},i,s){const c=L.theme({"&":Object.assign({},l)}),m=[a?G():G({formatNumber:()=>""}),Q(),A(),q(),Lt[t](),H(),D(),$(),F.allowMultipleSelections.of(!0),ie.fallback,X(),Z(),ne(),le(),o?R():void 0,te(),I.of([...ee,...U,...re,...B,...J,...oe,...ae,...se,K]),ce,c,F.tabSize.of(r),Y.of(" ".repeat(r))].filter((e=>!!e)),u=F.create({extensions:[...m,L.updateListener.of((e=>{try{if(e.docChanged){const t=e.state.doc.toString();null==i||i(t)}}catch(e){}})),L.editable.of(!n)],doc:null==s?"":"object"==typeof s?s.value:s});return new L({state:u,parent:e})}function Dt({onChange:e,value:t,mode:o="javascript",tabSize:l=2,readOnly:s=!1,showLinesNumber:c=!0,highlightLine:m=!1,themeStyle:u={height:"-1",minHeight:"300px",maxHeight:"-1",width:"-1",minWidth:"-1",maxWidth:"-1"},className:p,setRef:d}){const f=n(),[h,b]=i();return a((()=>{const r=At(f.current,o,l,s,c,m,u,e,t);f.current.addEventListener("keydown",(e=>{e.stopImmediatePropagation()})),d&&d(r),r.dispatch({changes:{from:0,to:r.state.doc.length,insert:null==t?"":"object"==typeof t?JSON.stringify(t,null,2):t}}),b(r)}),[]),a((()=>{h&&("object"==typeof t?JSON.stringify(t,null,2):t)!==h.state.doc.toString()&&h.dispatch({changes:{from:0,to:h.state.doc.length,insert:null==t?"":"object"==typeof t?JSON.stringify(t,null,2):t}})}),[t]),r.createElement("div",{className:p,ref:f})}const $t=new me.Converter({omitExtraWLInCodeBlocks:!0,ghCompatibleHeaderId:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,tables:!0,tasklists:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!0,emoji:!0,ghMentionsLink:"/{u}"}),Rt=e=>{const[t,o]=i(e.preview||!1),l=n();a((()=>{t&&c()}),[t,e.value]);const s=[{name:"Add header",icon:"heading",inject:e=>[{from:e.from,insert:"# "}]},{name:"Add bold text",icon:"bold",inject:e=>[{from:e.from,insert:"**"},{from:e.to,insert:"**"}]},{name:"Add italic text",icon:"italic",inject:e=>[{from:e.from,insert:"*"},{from:e.to,insert:"*"}]},{name:"Add strikethrough text",icon:"strikethrough",inject:e=>[{from:e.from,insert:"~~"},{from:e.to,insert:"~~"}]},{name:"Add link",icon:"link",inject:e=>[{from:e.from,insert:"["},{from:e.to,insert:"](url)"}]},{name:"Add code",icon:"code",inject:e=>[{from:e.from,insert:"```\n"},{from:e.to,insert:"\n```\n"}]},{name:"Add quotes",icon:"quote-right",inject:e=>[{from:e.from,insert:"> "}]},{name:"Add image",icon:"image",inject:e=>[{from:e.from,insert:"!["},{from:e.to,insert:"](image-url)"}]},{name:"Add unordered list",icon:"list-ul",inject:e=>[{from:e.from,insert:"* "}]},{name:"Add ordered list",icon:"list-ol",inject:e=>[{from:e.from,insert:"1. "}]},{name:"Add check list",icon:"tasks",inject:e=>[{from:e.from,insert:"* [ ] "}]}],c=()=>{const e=[...document.getElementsByClassName("mrf-preview")];e.length>0&&[...e[0].querySelectorAll("pre code")].forEach((e=>ue.highlightElement(e)))};return r.createElement("div",{className:V(e.className)},!e.readOnly&&r.createElement("div",{style:{marginBottom:10}},r.createElement("div",null,r.createElement("div",null,r.createElement("button",{type:"button",className:"mrf-btn mrf-btn_sm",style:{color:t?"white":"#7f96af",backgroundColor:t?"#7f96af":"white"},onClick:()=>o(!1)},"Write"),r.createElement("button",{type:"button",className:"mrf-btn mrf-btn_sm mrf-ml_5",style:{color:t?"#7f96af":"white",backgroundColor:t?"white":"#7f96af"},onClick:()=>o(!0)},"Preview"))),r.createElement("div",{className:"mrf-flex mrf-flexWrap"},r.createElement(r.Fragment,null,s.map(((e,t)=>r.createElement("button",{type:"button",className:V("mrf-btn_for_descriptionToolbar"),"aria-label":e.name,title:e.name,key:`toolbar-btn-${t}`,onClick:()=>{const t=l.current;t.dispatch(t.state.changeByRange((t=>({changes:e.inject(t),range:t})))),t.focus()}},r.createElement("i",{className:`fas fa-${e.icon}`})))),e.actions&&e.actions((e=>{const t=l.current;t.dispatch(t.state.changeByRange((t=>({changes:[{from:t.from,insert:e}],range:t})))),t.focus()}))))),!t&&r.createElement(Dt,Object.assign({},e,{mode:"markdown",setRef:e=>l.current=e})),t&&r.createElement("div",{className:"mrf-preview",dangerouslySetInnerHTML:{__html:$t.makeHtml(e.value||"")}}))};function It({onChange:e,value:t,mode:o="javascript",tabSize:l=2,readOnly:i=!1,showLinesNumber:s=!0,highlightLine:c=!1,themeStyle:m={height:"-1",minHeight:"-1",maxHeight:"-1",width:"-1",minWidth:"-1",maxWidth:"-1"}}){const u=n();return a((()=>{At(u.current,o,l,i,s,c,m,(t=>{null==e||e(t.replace(/\n/g,""))}),t),u.current.addEventListener("keydown",(e=>{e.stopImmediatePropagation()}))}),[]),r.createElement("div",{ref:u,style:{flex:1,overflow:"hidden"}})}function qt(){return qt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},qt.apply(this,arguments)}function Bt(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var Ht=l((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=Bt(e,["color","size"]);return r.createElement("svg",qt({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),r.createElement("circle",{cx:"12",cy:"12",r:"10"}),r.createElement("path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"}),r.createElement("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"}))}));Ht.propTypes={color:C.string,size:C.oneOfType([C.string,C.number])},Ht.displayName="HelpCircle";const Jt=({entry:e,realEntry:t,children:n,render:a,functionalProperty:o,step:l,informations:i,className:s})=>{var c;const{formState:m}=p();if("object"==typeof e)return n;const u=e.split(".").reduce(((e,t)=>e&&e[t]),m.errors),d=e.split(".").reduce(((e,t)=>e&&e[t]),m.dirtyFields),f=e.split(".").reduce(((e,t)=>e&&e[t]),m.touchedFields),h=m.isSubmitted||d||f;if(!o(e,void 0===(null==l?void 0:l.visible)||l.visible,i,u))return null;const b=o(e,null===(null==l?void 0:l.label)?null:(null==l?void 0:l.label)||t||e,i),v=de();return a?a({entry:e,label:b,error:u,help:null==l?void 0:l.help,children:n}):r.createElement("div",{className:`mrf-mt_10 ${s||""}`,style:{position:"relative"}},b&&r.createElement("label",{className:"mrf-flex mrf-ai_center mrf-mb_5",htmlFor:null!==(c=null==l?void 0:l.name)&&void 0!==c?c:e},r.createElement("span",null,b),(null==l?void 0:l.help)&&r.createElement(r.Fragment,null,r.createElement(pe,{html:!0,place:"bottom",id:v}),r.createElement("span",{className:"mrf-flex mrf-ai_center","data-html":!0,"data-tip":null==l?void 0:l.help,"data-for":v},r.createElement(Ht,{style:{color:"gray",width:17,marginLeft:".5rem",cursor:"help"}})))),n,u&&r.createElement("div",{className:V("mrf-feedback",{"mrf-txt_red":!!h})},u.message))},Ut=t.memo((e=>e.render?e.render(Object.assign(Object.assign({},e.field),{error:e.error,informations:e.informations,defaultValue:e.step.defaultValue})):e.children),((e,t)=>!t.deactivateReactMemo&&(e.field.value===t.field.value&&t.errorDisplayed===e.errorDisplayed&&Qe(t.step)===Qe(e.step)))),Kt=e=>{var r,n;const{step:a,entry:o,realEntry:l,children:i,component:s,errorDisplayed:c=!1,informations:m,deactivateReactMemo:u,inputWrapper:f,defaultFormValue:h}=e,{field:b}=d({defaultValue:Ye(a.defaultValue)?a.defaultValue:null,name:o}),{getValues:v,setValue:y,formState:{errors:g}}=p(),[O,j]=t.useState(!!b.value),E=o.split(".").reduce(((e,t)=>e&&e[t]),g),w=(t,r)=>"function"==typeof r?r({rawValues:rt(v(),e.schema),value:v(t),defaultFormValue:h,informations:m,error:E,getValue:e=>v(e)}):r,k=Object.assign(Object.assign({name:null!==(r=a.name)&&void 0!==r?r:b.name},a.props),{id:null!==(n=a.name)&&void 0!==n?n:o,readOnly:w(o,a.disabled)?"readOnly":null,placeholder:a.placeholder,onChange:t=>{const r=t?t.target?t.target.value||null:t:a.type===fe.bool||a.type===fe.number&&0===b.value?t:null;b.onChange(r),$e(a.onChange).map((t=>t({rawValues:rt(v(),e.schema),value:r,setValue:y})))},value:b.value});return a.optional&&O?t.createElement("div",{className:"mrf-ai_center mrf-mt_5",style:{position:"relative"}},t.createElement("div",{style:{width:"95%"}},t.createElement(Jt,{key:`collapse-${o}`,entry:o,realEntry:l,functionalProperty:w,step:a,render:f,informations:m},t.createElement(Ut,{render:a.render,step:a,field:Object.assign({setValue:(e,t)=>y(e,t),rawValues:v(),getValue:e=>v(e)},b),error:E,errorDisplayed:c,informations:m,deactivateReactMemo:u},s?s(b,k):t.cloneElement(i,Object.assign({},k))))),t.createElement("button",{type:"button",style:{position:"absolute",top:"2px",right:0},className:"mrf-btn mrf-btn_red mrf-btn_sm mrf-ml_5",onClick:()=>{j(!1),y(o,null)}},t.createElement(gt,{size:16}))):a.optional?t.createElement(Jt,{key:`collapse-${o}`,entry:o,realEntry:l,functionalProperty:w,step:a,render:f,informations:m},t.createElement("div",{className:"mrf-flex mrf-jc_flex_end"},t.createElement("button",{type:"button",className:V("mrf-btn","mrf-btn_blue","mrf-btn_sm","mrf-mt_5"),onClick:()=>{j(!0)}},"Add"))):t.createElement(Jt,{key:`collapse-${o}`,entry:o,realEntry:l,functionalProperty:w,step:a,render:f,informations:m},t.createElement(Ut,{render:a.render,step:a,field:Object.assign({setValue:(e,t)=>y(e,t),rawValues:rt(v(),e.schema),getValue:e=>v(e)},b),error:E,errorDisplayed:c,informations:m,deactivateReactMemo:u},s?s(b,k):t.cloneElement(i,Object.assign({},k))))},Yt=({entry:e,step:t,component:n,disabled:a,addLabel:o,schema:l})=>{const{getValues:i,setValue:s,control:c,trigger:m,formState:u}=p(),d=i(e),h=e.split(".").reduce(((e,t)=>e&&e[t]),u.errors),b=e.split(".").reduce(((e,t)=>e&&e[t]),u.dirtyFields),v=e.split(".").reduce(((e,t)=>e&&e[t]),u.touchedFields),y=!!h&&(u.isSubmitted||b||v),{fields:g,append:O,remove:j}=f({control:c,name:e});return r.createElement(r.Fragment,null,g.map(((o,c)=>r.createElement("div",{key:o.id},r.createElement("div",{className:"mrf-ai_center mrf-mt_5",style:{position:"relative"}},r.createElement("div",{style:{width:"95%"}},n(Object.assign(Object.assign({key:o.id},o),{defaultValue:d[c]}),c)),r.createElement("button",{type:"button",style:{position:"absolute",top:"2px",right:0},className:"mrf-btn mrf-btn_red mrf-btn_sm mrf-ml_5",disabled:a,onClick:()=>{j(c),$e(t.onChange).map((t=>t({rawValues:rt(i(),l),value:i(e),setValue:s}))),m(e)}},r.createElement(gt,{size:16})))))),r.createElement("div",{className:"mrf-flex mrf-jc_flex_end"},r.createElement("button",{type:"button",className:V("mrf-btn","mrf-btn_blue","mrf-btn_sm","mrf-mt_5",{"mrf-input__invalid":!!y}),onClick:()=>{const r=t.type===fe.object?et(t.flow,t.schema):Ze();O({value:t.addableDefaultValue||r}),$e(t.onChange).map((t=>t({rawValues:rt(i(),l),value:i(e),setValue:s})))},disabled:a},o||"Add")))},Gt=e=>e.render?e.render(Object.assign(Object.assign({},e),{error:e.error})):e.children,Qt=e=>{let{entry:t,schema:n,inputWrapper:a,httpClient:o,functionalProperty:l}=e;const{formState:{errors:i,dirtyFields:s,touchedFields:c}}=p(),m=nt(t).some((e=>!!i[e]&&(s[e]||c[e])));return r.createElement(Ct,Object.assign({},t,{errored:m}),t.flow.map(((t,i)=>{if("object"==typeof t)return r.createElement(Qt,Object.assign({key:i},e,{entry:t}));const s=n[t];if(!s&&"string"==typeof t)return console.error(`no step found for the entry "${t}" in the given schema. Your form might not work properly. Please fix it`),null;const c={path:t,key:t};return r.createElement(Xt,{entry:t,step:s,schema:n,inputWrapper:a,httpClient:o,defaultValue:null==s?void 0:s.defaultValue,functionalProperty:l,informations:c,options:e.stepsOptions,defaultFormValue:e.defaultFormValue})})))},Xt=e=>{var t;let{entry:o,realEntry:l,step:c,schema:m,inputWrapper:u,httpClient:d,functionalProperty:f,informations:b,defaultFormValue:v}=e;const y=p(),{formState:{errors:g,dirtyFields:C,touchedFields:N,isSubmitted:S},control:F,getValues:P,setValue:T,reset:M}=y,{watch:z}=y,[W,L]=i(Qe(P())),A=o.split(".").reduce(((e,t)=>e&&e[t]),g),D=o.split(".").reduce(((e,t)=>e&&e[t]),C),$=o.split(".").reduce(((e,t)=>e&&e[t]),N),R=!!A&&(S||D||$);if(c=c,c.onAfterChange){const e=z(),t=o.replace("[",".").replace("]","").split(".").reduce(((e,t)=>e&&e[t]),e)||{},r=(e=>{const t=n();return a((()=>{t.current=e}),[e]),t.current})(rt(t,m)),l=rt(t,m);(!O(l,r)||void 0!==l&&void 0===r)&&c.onAfterChange({entry:o,value:P(o),rawValues:rt(P(),m),previousValue:r,getValue:e=>P(e),setValue:T,onChange:e=>T(o,e),reset:M,informations:b})}const I=s((()=>{const e="function"==typeof c.visible,t="function"==typeof c.disabled,r="function"==typeof c.label;return!!("function"==typeof c.deps?c.deps(b):c.deps)||e||t||r||!!c.render||!!c.conditionalSchema}),[Qe(m)]);if(I){const e="function"==typeof c.deps?c.deps(b):c.deps,t=e?z(e):z(),r=Qe(t);r!==W&&L(r)}if(c.array)return r.createElement(Kt,{schema:e.schema,step:c,entry:o,realEntry:l,errorDisplayed:R,informations:b,deactivateReactMemo:I,inputWrapper:u,defaultFormValue:v},r.createElement(Yt,{entry:o,step:c,schema:m,disabled:f(o,c.disabled||!1,b,A),component:(t,n)=>{var a,i,s,p,h,y,g,O,j;return r.createElement(Xt,{entry:`${o}.${n}.value`,step:Object.assign(Object.assign({},m[l||o]),{label:(null===(a=c.item)||void 0===a?void 0:a.label)||null,render:null===(i=c.item)||void 0===i?void 0:i.render,onChange:null===(s=c.item)||void 0===s?void 0:s.onChange,array:(null===(p=c.item)||void 0===p?void 0:p.array)||!1,onAfterChange:null===(h=c.item)||void 0===h?void 0:h.onAfterChange,visible:null===(y=c.item)||void 0===y?void 0:y.visible,disabled:null===(g=c.item)||void 0===g?void 0:g.disabled,deps:null===(O=c.item)||void 0===O?void 0:O.deps}),schema:m,inputWrapper:u,httpClient:d,defaultValue:null===(j=t.defaultValue)||void 0===j?void 0:j.value,index:n,functionalProperty:f,informations:{path:`${null==b?void 0:b.path}.${n}.value`,parent:b,index:n},options:e.options,defaultFormValue:v})},addLabel:null===(t=e.options)||void 0===t?void 0:t.addLabel}));switch(c.type){case fe.string:switch(c.format){case he.text:return r.createElement(Kt,{schema:e.schema,step:c,entry:o,realEntry:l,errorDisplayed:R,informations:b,deactivateReactMemo:I,inputWrapper:u,defaultFormValue:v},r.createElement("textarea",{className:V("mrf-input",c.className,{"mrf-mrf-input__invalid":!!R})}));case he.code:case he.singleLineCode:const t=c.format===he.code?Dt:It;return r.createElement(Kt,{schema:e.schema,step:c,entry:o,realEntry:l,errorDisplayed:R,informations:b,deactivateReactMemo:I,inputWrapper:u,defaultFormValue:v},r.createElement(t,{className:V(null==c?void 0:c.className,{"mrf-input__invalid":!!A})}));case he.markdown:return r.createElement(Kt,{schema:e.schema,step:c,entry:o,realEntry:l,errorDisplayed:R,informations:b,deactivateReactMemo:I,inputWrapper:u,defaultFormValue:v},r.createElement(Rt,{className:V(c.className,{"mrf-input__invalid":!!R})}));case he.buttonsSelect:case he.select:return r.createElement(Kt,{schema:e.schema,step:c,entry:o,realEntry:l,errorDisplayed:R,informations:b,deactivateReactMemo:I,inputWrapper:u,defaultFormValue:v},r.createElement(Nt,Object.assign({className:V("mrf-flex_grow_1",c.className,{"mrf-input__invalid":!!R}),disabled:f(o,c.disabled||!1,b,A)},c.props,{possibleValues:c.options,httpClient:d,isMulti:c.isMulti,createOption:c.createOption,onCreateOption:c.onCreateOption,transformer:c.transformer,buttons:c.format===he.buttonsSelect,optionsFrom:c.optionsFrom,schema:m})));default:return r.createElement(Kt,{schema:e.schema,step:c,entry:o,realEntry:l,errorDisplayed:R,informations:b,deactivateReactMemo:I,inputWrapper:u,defaultFormValue:v},r.createElement("input",{type:c.format||"text",className:V("mrf-input",c.className,{"mrf-input__invalid":!!R})}))}case fe.number:switch(c.format){case he.buttonsSelect:case he.select:return r.createElement(Kt,{schema:e.schema,step:c,entry:o,realEntry:l,errorDisplayed:R,informations:b,deactivateReactMemo:I,inputWrapper:u,defaultFormValue:v},r.createElement(Nt,Object.assign({className:V("mrf-content",c.className,{"mrf-input__invalid":!!R})},c.props,{possibleValues:c.options,httpClient:d,isMulti:c.isMulti,createOption:c.createOption,onCreateOption:c.onCreateOption,transformer:c.transformer,buttons:c.format===he.buttonsSelect,optionsFrom:c.optionsFrom,schema:m})));default:return r.createElement(Kt,{schema:e.schema,step:c,entry:o,realEntry:l,errorDisplayed:R,informations:b,deactivateReactMemo:I,inputWrapper:u,defaultFormValue:v},r.createElement("input",{type:c.format||"number",className:V("mrf-input",c.className,{"mrf-input__invalid":!!R})}))}case fe.bool:return r.createElement(Kt,{schema:e.schema,step:c,defaultFormValue:v,entry:o,realEntry:l,errorDisplayed:R,informations:b,deactivateReactMemo:I,inputWrapper:u},r.createElement(Ot,{className:c.className,errorDisplayed:R,buttons:c.format===he.buttonsSelect}));case fe.object:const t=P(o),n=Ye(c.defaultValue)?c.defaultValue:et(c.flow,c.schema);switch(c.format){case he.buttonsSelect:case he.select:return r.createElement(Kt,{schema:e.schema,step:Object.assign(Object.assign({},c),{defaultValue:t||n}),entry:o,realEntry:l,errorDisplayed:R,informations:b,deactivateReactMemo:I,inputWrapper:u,defaultFormValue:v},r.createElement(Nt,Object.assign({className:V("mrf-flex_grow_1",c.className,{"mrf-input__invalid":!!R})},c.props,{possibleValues:c.options,httpClient:d,isMulti:c.isMulti,createOption:c.createOption,onCreateOption:c.onCreateOption,transformer:c.transformer,buttons:c.format===he.buttonsSelect,optionsFrom:c.optionsFrom,schema:m})));case he.form:const a=$e(c.flow).getOrElse($e(c.schema).map((e=>Object.keys(e))).getOrElse([]));return r.createElement(Kt,{schema:e.schema,step:Object.assign(Object.assign({},c),{defaultValue:t||n}),entry:o,realEntry:l,errorDisplayed:R,informations:b,deactivateReactMemo:I,inputWrapper:u,defaultFormValue:v},r.createElement(Gt,{render:c.render,rawValues:P(),value:P(o),onChange:e=>T(o,e,{shouldValidate:!0}),setValue:(e,t)=>T(e,t),getValue:e=>P(e),informations:b,defaultValue:t||n},r.createElement(Zt,{schema:c.schema,flow:a,step:c,parent:o,inputWrapper:u,maybeCustomHttpClient:d,value:P(o)||n,functionalProperty:f,errorDisplayed:R,informations:b,stepsOptions:e.options,defaultFormValue:v})));case he.code:return r.createElement(Kt,{schema:e.schema,step:Object.assign(Object.assign({},c),{defaultValue:t||n}),entry:o,realEntry:l,errorDisplayed:R,informations:b,deactivateReactMemo:I,inputWrapper:u,defaultFormValue:v,component:(e,t)=>r.createElement(Dt,Object.assign({},t,{className:V(null==c?void 0:c.className,{"mrf-input__invalid":!!A}),onChange:t=>{let r;try{r=JSON.parse(t)}catch(e){r=t}e.onChange(r),$e(null==c?void 0:c.onChange).map((e=>e({rawValues:rt(P(),m),value:r,setValue:T})))},value:null===e.value?null:"object"==typeof e.value?JSON.stringify(e.value,null,2):e.value}))});default:return r.createElement(Kt,{schema:e.schema,step:Object.assign(Object.assign({},c),{defaultValue:t||n}),entry:o,realEntry:l,errorDisplayed:R,informations:b,deactivateReactMemo:I,inputWrapper:u,defaultFormValue:v},r.createElement(Wt,{className:V(c.className,{"mrf-input__invalid":!!R})}))}case fe.date:switch(c.format){case he.datetime:return r.createElement(Kt,{schema:e.schema,step:c,entry:o,realEntry:l,informations:b,deactivateReactMemo:I,inputWrapper:u,defaultFormValue:v,component:e=>r.createElement(E,{dateAdapter:j},r.createElement(x,{value:e.value,onChange:t=>{e.onChange(t),$e(c.onChange).map((e=>e({rawValues:rt(P(),m),value:t,setValue:T})))},renderInput:e=>r.createElement(_,Object.assign({},e))}))});case he.time:return r.createElement(Kt,{schema:e.schema,step:c,entry:o,realEntry:l,informations:b,deactivateReactMemo:I,inputWrapper:u,defaultFormValue:v,component:e=>r.createElement(E,{dateAdapter:j},r.createElement(k,{value:e.value,onChange:t=>{e.onChange(t),$e(c.onChange).map((e=>e({rawValues:rt(P(),m),value:t,setValue:T})))},renderInput:e=>r.createElement(_,Object.assign({},e))}))});default:return r.createElement(Kt,{schema:e.schema,step:c,entry:o,realEntry:l,informations:b,deactivateReactMemo:I,inputWrapper:u,defaultFormValue:v,component:e=>r.createElement(E,{dateAdapter:j},r.createElement(w,{value:e.value,onChange:t=>{e.onChange(t),$e(c.onChange).map((e=>e({rawValues:rt(P(),m),value:t,setValue:T})))},renderInput:e=>r.createElement(_,Object.assign({},e))}))})}case fe.file:return r.createElement(h,{name:o,control:F,render:({field:t})=>r.createElement(Kt,{schema:e.schema,step:c,entry:o,realEntry:l,errorDisplayed:R,informations:b,deactivateReactMemo:I,inputWrapper:u,defaultFormValue:v},r.createElement((({onChange:e})=>{const[n,a]=i(!1),[l,s]=i(void 0),m=t.value||[];return r.createElement("div",{className:V("mrf-flex","mrf-ai_center",null==c?void 0:c.className,{"mrf-input__invalid":!!A})},r.createElement("input",{ref:e=>s(e),type:"file",multiple:!0,className:"mrf-d_none",onChange:t=>{const r=t.target.files;a(!0),e&&e(r?[...r]:[]),a(!1)}}),r.createElement("button",{type:"button",className:"mrf-btn mrf-btn_sm mrf-flex mrf-ai_center",disabled:n||f(o,(null==c?void 0:c.disabled)||!1,b,A),onClick:()=>{null==l||l.click()}},n&&r.createElement(it,null),!n&&r.createElement(mt,null),r.createElement("span",{className:"mrf-ml_5"},"Select file(s)")),r.createElement("span",{className:"mrf-ml_5"},m.length<=0?"No files selected":m.map((e=>e.name)).join(" , ")))}),null))});case fe.json:return r.createElement(Kt,{schema:e.schema,step:c,entry:o,realEntry:l,informations:b,deactivateReactMemo:I,inputWrapper:u,defaultFormValue:v,component:(e,t)=>r.createElement(Dt,Object.assign({},t,{className:V(null==c?void 0:c.className,{"mrf-input__invalid":!!A}),onChange:t=>{e.onChange(t),$e(null==c?void 0:c.onChange).map((e=>e({rawValues:rt(P(),m),value:t,setValue:T})))},value:e.value}))});default:return null}},Zt=({schema:e,flow:t,parent:n,inputWrapper:a,maybeCustomHttpClient:o,errorDisplayed:l,value:s,step:c,functionalProperty:m,informations:d,stepsOptions:f,defaultFormValue:h})=>{var b;const{getValues:v,control:y}=p(),[g,O]=i(!!c.collapsed);u({name:(null===(b=null==c?void 0:c.conditionalSchema)||void 0===b?void 0:b.ref)||"",control:y});const j=$e(c.conditionalSchema).map((e=>{const t=$e(e.ref).map((e=>v(e))).getOrNull(),r=v(),n=$e(e.switch.find((e=>"function"==typeof e.condition?e.condition({rawValues:r,ref:t}):e.condition===t))).orElse(e.switch.find((e=>e.default))).getOrElse({schema:{},flow:[]});return{schema:n.schema,flow:n.flow||Object.keys(n.schema)}})).getOrElse({schema:e,flow:t}),E=j.flow.reduce(((e,t)=>[...e,{step:"string"==typeof t?j.schema[t]:j.schema[t.label],entry:t}]),[]),w=E.length>=1&&null!==c.label;return r.createElement("div",{className:V(c.className,{"mrf-nestedform__border":w,"mrf-border__error":!!l}),style:{position:"relative"}},!!c.collapsable&&j.flow.length>1&&g&&r.createElement(dt,{size:30,className:"mrf-cursor_pointer",style:{position:"absolute",top:-35,right:0,zIndex:100},strokeWidth:"2",onClick:()=>O(!g)}),!!c.collapsable&&j.flow.length>1&&!g&&r.createElement(bt,{size:30,className:"mrf-cursor_pointer",style:{position:"absolute",top:-35,right:0,zIndex:100},strokeWidth:"2",onClick:()=>O(!g)}),g&&!!c.collapsable&&"function"==typeof c.collapsable&&c.collapsable({rawValues:rt(v(),e),getValue:e=>v(e),value:s}),("function"!=typeof c.collapsable||!g)&&E.map((({step:t,entry:l},i)=>g&&!t.visibleOnCollapse?null:"object"==typeof l?r.createElement(Qt,{key:i,entry:l,schema:e,inputWrapper:a,httpClient:o,functionalProperty:m,stepsOptions:f,defaultFormValue:h}):t||"string"!=typeof l?r.createElement(Xt,{key:`step.${l}.${i}`,entry:`${n}.${l}`,realEntry:l,step:j.schema[l],schema:j.schema,inputWrapper:a,httpClient:o,defaultValue:s&&s[l],functionalProperty:m,informations:{path:`${null==d?void 0:d.path}.${l}`,key:l,parent:d},options:f,defaultFormValue:h}):(console.error(`no step found for the entry "${l}" in the given schema. Your form might not work properly. Please fix it`),null))))},er=e=>{var t,n,a,o,l,i,s,c,m,u,p,d,f,h;if(e.render)return e.render({reset:e.reset,valid:e.valid});const b=void 0===(null===(n=null===(t=e.actions)||void 0===t?void 0:t.submit)||void 0===n?void 0:n.display)||!!(null===(o=null===(a=e.actions)||void 0===a?void 0:a.submit)||void 0===o?void 0:o.display);return r.createElement("div",{className:"mrf-flex mrf-jc_end mrf-mt_5"},(null===(i=null===(l=e.actions)||void 0===l?void 0:l.cancel)||void 0===i?void 0:i.display)&&r.createElement("button",{className:"mrf-btn mrf-btn_red",type:"button",onClick:()=>{var t,r;return null===(r=null===(t=e.actions)||void 0===t?void 0:t.cancel)||void 0===r?void 0:r.action()}},(null===(c=null===(s=e.actions)||void 0===s?void 0:s.cancel)||void 0===c?void 0:c.label)||"Cancel"),(null===(u=null===(m=e.actions)||void 0===m?void 0:m.reset)||void 0===u?void 0:u.display)&&r.createElement("button",{className:"mrf-btn mrf-btn_red",type:"button",onClick:e.reset},(null===(d=null===(p=e.actions)||void 0===p?void 0:p.reset)||void 0===d?void 0:d.label)||"Reset"),b&&r.createElement("button",{className:"mrf-btn mrf-btn_green mrf-ml_10",type:"submit"},(null===(h=null===(f=e.actions)||void 0===f?void 0:f.submit)||void 0===h?void 0:h.label)||"Save"))},tr=r.forwardRef(((t,n)=>{const{schema:o,flow:l,value:s,inputWrapper:u,onSubmit:p,onError:d=(()=>{}),footer:f,className:h,options:y={}}=t,g=l||Object.keys(o),O=(e,t)=>y.httpClient?y.httpClient(e,t):fetch(e,{method:t,headers:{Accept:"application/json","Content-Type":"application/json"}}),j=et(g,o,s),E=b({resolver:(t,r,n)=>m((t=>{const{shape:r,dependencies:n}=Je(g,o,[],t);return e.object().shape(r,n)})(t))(t,r,n),shouldFocusError:!1,mode:"onChange",defaultValues:tt(s,j,l,o)}),[w,k]=i(!1),{handleSubmit:x,reset:_,trigger:C}=E,{getValues:V}=E;a((()=>{y.showErrorsOnStart&&C()}),[C,w]),Xe((()=>{_(Object.assign({},tt(s,j,l,o)))}),[s,o,l]);const N=(e,t,r,n)=>"function"==typeof t?t({rawValues:rt(V(),o),value:V(e),defaultFormValue:s,informations:r,getValue:e=>V(e),error:n}):t;return c(n,(()=>({handleSubmit:()=>x((e=>{const t=rt(e,o);p(t)}),d)(),trigger:C,methods:Object.assign(Object.assign({},E),{data:()=>rt(V(),o)})}))),r.createElement(v,Object.assign({},E),(!!y.watch||!!y.autosubmit)&&r.createElement(at,{options:y,control:E.control,schema:o,onSubmit:p,handleSubmit:x,onError:d}),r.createElement("form",{className:h||"mrf-pr_15 mrf-w_100",onSubmit:x((e=>{const t=rt(e,o);p(t)}),d)},g.map(((e,n)=>{var a,l,i,c,m,p;if("object"==typeof e)return r.createElement(Qt,{key:n,entry:e,schema:o,inputWrapper:u,httpClient:O,functionalProperty:N,stepsOptions:{addLabel:null===(i=null===(l=null===(a=t.options)||void 0===a?void 0:a.actions)||void 0===l?void 0:l.add)||void 0===i?void 0:i.label},defaultFormValue:s});const d=o[e];if(!d&&"string"==typeof e)return console.error(`no step found for the entry "${e}" in the given schema. Your form might not work properly. Please fix it`),null;const f={path:e,key:e};return r.createElement(Xt,{defaultFormValue:s,key:n,entry:e,step:d,schema:o,inputWrapper:u,httpClient:O,functionalProperty:N,informations:f,options:{addLabel:null===(p=null===(m=null===(c=t.options)||void 0===c?void 0:c.actions)||void 0===m?void 0:m.add)||void 0===p?void 0:p.label}})})),r.createElement(er,{render:f,reset:()=>_(j),valid:x((e=>p(rt(e,o))),d),actions:y.actions})))}));export{Ot as BooleanInput,Dt as CodeInput,Ct as Collapse,tr as Form,Rt as MarkdownInput,Wt as ObjectInput,Nt as SelectInput,It as SingleLineCode,De as constraints,he as format,fe as type};
1
+ import*as e from"yup";import{jsxs as t,jsx as r,Fragment as n}from"react/jsx-runtime";import*as o from"react";import a,{useRef as l,useEffect as i,useCallback as s,forwardRef as c,useState as u,useMemo as m,useImperativeHandle as d}from"react";import{yupResolver as p}from"@hookform/resolvers/yup";import{useWatch as f,useFormContext as h,useController as v,useFieldArray as b,Controller as y,useForm as g,FormProvider as O}from"react-hook-form";import j from"object-hash";import w from"lodash.debounce";import x from"fast-deep-equal";import{AdapterDateFns as k}from"@mui/x-date-pickers/AdapterDateFns";import{LocalizationProvider as _}from"@mui/x-date-pickers/LocalizationProvider";import{DatePicker as C}from"@mui/x-date-pickers/DatePicker";import{TimePicker as V}from"@mui/x-date-pickers/TimePicker";import{DateTimePicker as E}from"@mui/x-date-pickers/DateTimePicker";import N from"prop-types";import S from"classnames";import F from"react-select/creatable";import P from"react-select";import{EditorState as T}from"@codemirror/state";import{javascript as M}from"@codemirror/lang-javascript";import{html as z}from"@codemirror/lang-html";import{json as W}from"@codemirror/lang-json";import{css as L}from"@codemirror/lang-css";import{markdown as A}from"@codemirror/lang-markdown";import{EditorView as D,highlightSpecialChars as $,drawSelection as R,dropCursor as q,highlightActiveLine as I,keymap as B}from"@codemirror/view";import{history as H,historyKeymap as J}from"@codemirror/history";import{foldGutter as U,foldKeymap as K}from"@codemirror/fold";import{defaultKeymap as Y,indentWithTab as G}from"@codemirror/commands";import{indentUnit as Q}from"@codemirror/language";import{lineNumbers as X,highlightActiveLineGutter as Z}from"@codemirror/gutter";import{bracketMatching as ee}from"@codemirror/matchbrackets";import{closeBrackets as te,closeBracketsKeymap as re}from"@codemirror/closebrackets";import{highlightSelectionMatches as ne,searchKeymap as oe}from"@codemirror/search";import{autocompletion as ae,completionKeymap as le}from"@codemirror/autocomplete";import{commentKeymap as ie}from"@codemirror/comment";import{rectangularSelection as se}from"@codemirror/rectangular-selection";import{defaultHighlightStyle as ce}from"@codemirror/highlight";import{lintKeymap as ue}from"@codemirror/lint";import{oneDark as me}from"@codemirror/theme-one-dark";import de from"showdown";import"@fortawesome/fontawesome-free/css/all.css";import"highlight.js/styles/monokai.css";import pe from"highlight.js/lib/core";import{Tooltip as fe}from"react-tooltip";import{v4 as he}from"uuid";const ve={string:"string",number:"number",bool:"bool",date:"date",object:"object",file:"file",json:"json"};Object.values(ve);const be={array:"array",select:"select",code:"code",markdown:"markdown",text:"textarea",textarea:"textarea",email:"email",password:"password",hidden:"hidden",form:"form",buttonsSelect:"buttons",singleLineCode:"singleLineCode",datetime:"datetime-local",time:"time"};Object.values(be);const ye=(e="Value required")=>t=>t.required(e),ge=(e="That is not a valid url")=>t=>t.url(e),Oe=(e="That is not a valid email")=>t=>t.email(e),je=(e="That is not a valid uuid")=>t=>t.uuid(e),we=(e=/.*/,t="This field does not match the pattern")=>r=>r.matches(e,{message:t,excludeEmptyString:!0}),xe=(e,t="Min value is required")=>r=>r.min(De(e),t),ke=(e,t="Max value is required")=>r=>r.max(De(e),t),_e=(e="Positive value is required")=>t=>t.positive(e),Ce=(e="Negative value is required")=>t=>t.negative(e),Ve=(e="an integer please")=>t=>t.integer(e),Ee=(e,t=`This field must be less than ${e}`)=>(r,n,o)=>("number"!=typeof e&&o.push([n,e]),r.lessThan(De(e),t)),Ne=(e,t=`This field must be more than ${e}`)=>(r,n,o)=>("number"!=typeof e&&o.push([n,e]),r.moreThan(De(e),t)),Se=(e,t=`The size of this collection must be ${e}`)=>r=>r.length(De(e),t),Fe=(e,t="Unsupported File Format")=>r=>{const n=e.map(e=>e.toLowerCase());return r.test("supportedFormat",t,e=>!e.length||n.some(t=>e[0].type.toLowerCase().includes(t)))},Pe=(e,t="Unsupported File Format")=>r=>{const n=e.map(e=>e.toLowerCase());return r.test("unsupportedFormat",t,e=>!e.length||n.some(t=>e[0].type.toLowerCase().includes(t)))},Te=(e,t=`size is excedeed ${e}`)=>r=>r.test("fileSize",t,t=>!t.length||t[0].size<=De(e)),Me=(e,t="Test failed",r)=>n=>n.test(e,t,r),ze=(e,t,r=[],n=[])=>(o,a,l)=>{const i=r.reduce((e,t)=>t(e,a,l),o),s=n.reduce((e,t)=>t(e,a,l),o);return o.when(e,{is:t,then:i,otherwise:s})},We=(e,t=`This value must be one of ${e.join(", ")}`)=>r=>r.oneOf(e.map(De),t),Le=(e,t=`This value can't include the following values ${e.join(", ")}`)=>r=>r.test("blacklist",t,t=>!e.some(e=>(t||"").includes(e))),Ae=t=>e.ref(t),De=e=>(null==e?void 0:e.ref)?Ae(e.ref):e,$e={required:({message:e="Value required"})=>ye(e),url:({message:e="That is not a valid url"})=>ge(e),email:({message:e="That is not a valid email"})=>Oe(e),uuid:({message:e="That is not a valid uuid"})=>je(e),matches:({regexp:e=/.*/,message:t="This field does not match the pattern"})=>we(e,t),min:({ref:e,message:t="Min value is required"})=>xe(e,t),max:({ref:e,message:t="Max value is required"})=>ke(e,t),positive:({message:e="Positive value is required"})=>_e(e),negative:({message:e="Negative value is required"})=>Ce(e),integer:({message:e="an integer please"})=>Ve(e),lessThan:({ref:e,message:t=`This field must be less than ${e}`})=>Ee(e,t),moreThan:({ref:e,message:t=`This field must be more than ${e}`})=>Ne(e,t),length:({ref:e,message:t=`The size of this collection must be ${e}`})=>Se(e,t),supportedFormat:({arrayOfValues:e,message:t="Unsupported File Format"})=>Fe(e,t),unsupportedFormat:({arrayOfValues:e,message:t="Unsupported File Format"})=>Pe(e,t),maxSize:({ref:e,message:t=`size is excedeed ${e}`})=>Te(e,t),test:e=>Me(e.name,e.message,e.test),when:({ref:e,test:t,then:r=[],otherwise:n=[]})=>ze(e,t,r,n),oneOf:({arrayOfValues:e,message:t=`This value must be one of ${e.join(", ")}`})=>We(e,t),blacklist:({arrayOfValues:e,message:t=`This value can't include the following values ${e.join(", ")}`})=>Le(e,t),ref:e=>Ae(e.ref)};var Re=Object.freeze({__proto__:null,required:ye,url:ge,email:Oe,uuid:je,matches:we,min:xe,max:ke,positive:_e,negative:Ce,integer:Ve,lessThan:Ee,moreThan:Ne,length:Se,supportedFormat:Fe,unsupportedFormat:Pe,maxSize:Te,test:Me,when:ze,oneOf:We,blacklist:Le,ref:Ae,jsonConstraints:$e});function qe(e){return null==e?Be:Ie(e)}const Ie=e=>({map:t=>qe(t(e)),flatMap:t=>qe(t(e)).getOrElse(Be),fold:(t,r)=>r(e),orElse:()=>qe(e),getOrElse:()=>e,getOrNull:()=>e,isDefined:()=>!0,exists:t=>qe(t(e)).isDefined()}),Be={map:()=>Be,flatMap:()=>Be,fold:e=>e(),orElse:e=>qe(e),getOrElse:e=>e,getOrNull:()=>{},isDefined:()=>!1,exists:()=>!1},He={[ve.string]:t=>e.string().nullable().optional().typeError(t||"Value must be a string"),[ve.number]:t=>e.number().nullable().optional().transform(e=>isNaN(e)?null:e).typeError(t||"Value must be a number"),[ve.bool]:()=>e.bool().nullable().optional(),[ve.object]:()=>e.object().nullable().optional(),[ve.date]:t=>e.date().nullable().optional().typeError(t||"Value must be a date"),[ve.file]:()=>e.mixed(),[ve.json]:()=>e.mixed()},Je=(t,r,n,o)=>{var a,l;const{constraints:i=[]}=t;if(t.array||t.isMulti){let i,s=e.array().nullable().optional();if(t.schema){const r=[];i=e.object().shape(Ke(t.flow||Object.keys(t.schema),t.schema,r,o).shape,r),s=s.of(e.object().shape({value:i}))}else(null===(a=t.constraints)||void 0===a?void 0:a.length)&&(i=t.constraints.reduce((e,t)=>Ue(t,e,r,n),He[t.type]()),s=s.of(e.object().shape({value:i})));return(null===(l=t.arrayConstraints)||void 0===l?void 0:l.length)&&(s=t.arrayConstraints.reduce((e,t)=>Ue(t,e,r,n),s)),s}if(t.type===ve.object&&t.schema){if(!Object.keys(t.schema).length)return e.object().nullable().optional();const a=Ke(t.flow||Object.keys(t.schema),t.schema,n,o);return i.reduce((e,t)=>Ue(t,e,r,n),e.object().nullable().optional().shape(a.shape,n))}if(t.type===ve.object&&t.conditionalSchema){const{schema:a,flow:l}=qe(t.conditionalSchema).map(e=>{const t=qe(e.ref).map(e=>o[e]).getOrNull();return qe(e.switch.find(e=>"function"==typeof e.condition?e.condition({rawValues:o,ref:t}):e.condition===t)).orElse(e.switch.find(e=>e.default)).getOrElse({schema:{},flow:[]})}).getOrElse({schema:{},flow:[]}),s=Ke(l||Object.keys(a),a,n,o);return i.reduce((e,t)=>Ue(t,e,r,n),e.object().nullable().optional().shape(s.shape,n))}return i.reduce((e,t)=>Ue(t,e,r,n),He[t.type]())},Ue=(e,t,r,n)=>"function"==typeof e?e(t,r,n):$e[e.type](e)(t,r,n),Ke=(e,t,r=[],n={})=>{if(!Object.keys(t).length)return{shape:{},dependencies:r};const o=(e||Object.keys(t)).reduce((e,o)=>{if("object"==typeof o)return Object.assign(Object.assign({},e),Ke(o.flow,t,r,n).shape);if(!t[o])return e;const a=Je(t[o],o,r,n);return Object.assign(Object.assign({},e),{[o]:a})},{});return{shape:o,dependencies:r}},Ye=e=>Boolean(e&&"function"==typeof e.then),Ge=e=>e.some(Array.isArray)?Ge(e.flat()):e;function Qe(e){return null!=e}const Xe=e=>e&&Array.isArray(e)?e.map(Xe):e&&"object"==typeof e?Object.fromEntries(Object.entries(e).map(([e,t])=>Ye(t)?[e,`promise-${e}`]:"object"==typeof t?[e,Xe(t)]:[e,t])):e,Ze=e=>j(Xe(e)),et=(e,t)=>{const r=l(!0),n=l(t);i(()=>{if(r.current)return e(),void(r.current=!1);Ze(t)!==Ze(n.current)&&(n.current=Object.assign({},t),e())},t)},tt=(e,t,r,n)=>Qe(r)?r:t?[]:e;function rt(e,t,r){return t?(e||Object.keys(t)).reduce((e,n)=>{if("object"==typeof n)return Object.assign(Object.assign({},e),rt(n.flow,t,r));const o=t[n];return o?o.schema&&!o.array?Object.assign(Object.assign({},e),{[n]:o.defaultValue||rt(o.flow,o.schema)}):Object.assign(Object.assign({},e),{[n]:tt(r?r[n]:null,o.array||o.isMulti||!1,o.defaultValue)}):e},{}):{}}const nt=(e,t={},r,n)=>{const o=qe(r).map(e=>e.map(e=>"object"==typeof e?e.flow:e)).map(Ge).getOrElse(Object.keys(n||{}));return Object.entries(n||{}).filter(([e])=>o.includes(e)).reduce((r,[o,a])=>{var l,i;let s=null;e&&(s=e[o]);const c=t[o];return!s&&Qe(c)&&(s=c),a.array&&!a.render?Object.assign(Object.assign({},r),{[o]:(s||[]).map(e=>{var r,a;return{value:"object"!=typeof e||e instanceof Date||Array.isArray(e)?e:nt(e,t,null===(r=null==n?void 0:n[o])||void 0===r?void 0:r.flow,(null===(a=null==n?void 0:n[o])||void 0===a?void 0:a.schema)||{})}})}):null===s||"object"!=typeof s||s instanceof Date||Array.isArray(s)?Object.assign(Object.assign({},r),{[o]:void 0===s?Array.isArray(s)?[]:null:s}):Object.assign(Object.assign({},r),{[o]:nt(null==e?void 0:e[o],null==t?void 0:t[o],null===(l=null==n?void 0:n[o])||void 0===l?void 0:l.flow,(null===(i=null==n?void 0:n[o])||void 0===i?void 0:i.schema)||{})})},e||{})},ot=(e,t)=>!e||"object"!=typeof e||e instanceof Date||Array.isArray(e)?e:Object.entries(e).reduce((e,r)=>{var n,o;const[a,l]=r;if(Array.isArray(l)){return qe(t).map(e=>e[a]).map(e=>!!e.array&&!e.render).getOrElse(!1)?Object.assign(Object.assign({},e),{[a]:l.map(e=>{var r;return!e.value||"object"!=typeof e.value||e.value instanceof Date&&!Array.isArray(e.value)?e.value:ot(e.value,(null===(r=t[a])||void 0===r?void 0:r.schema)||{})})}):Object.assign(Object.assign({},e),{[a]:l})}if(!(!l||"object"!=typeof l||l instanceof Date&&!Array.isArray(l)))return Object.assign(Object.assign({},e),{[a]:ot(l,(null===(n=t[a])||void 0===n?void 0:n.schema)||{})});if("json"!==(null===(o=t[a])||void 0===o?void 0:o.type))return Object.assign(Object.assign({},e),{[a]:l});try{return Object.assign(Object.assign({},e),{[a]:JSON.parse(l)})}catch(t){return Object.assign(Object.assign({},e),{[a]:l})}},{});function at(e){return e.flow.map(e=>"string"==typeof e?e:at(e)).flat()}const lt=a.memo(({options:e,control:t,schema:r,onSubmit:n,handleSubmit:o,onError:a})=>{const l=f({control:t}),i=s(w(e=>o(()=>n(ot(e,r)),a)(),250,{leading:!0}),[]);return et(()=>{(null==e?void 0:e.autosubmit)&&i(l)},[l]),(null==e?void 0:e.watch)&&("function"==typeof e.watch?e.watch(ot(l,r)):(console.group("react-form watch"),console.log(ot(l,r)),console.groupEnd())),null},()=>!0);function it(){return it=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},it.apply(this,arguments)}function st(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var ct=c(function(e,t){var r=e.color,n=void 0===r?"currentColor":r,o=e.size,l=void 0===o?24:o,i=st(e,["color","size"]);return a.createElement("svg",it({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:n,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),a.createElement("line",{x1:"12",y1:"2",x2:"12",y2:"6"}),a.createElement("line",{x1:"12",y1:"18",x2:"12",y2:"22"}),a.createElement("line",{x1:"4.93",y1:"4.93",x2:"7.76",y2:"7.76"}),a.createElement("line",{x1:"16.24",y1:"16.24",x2:"19.07",y2:"19.07"}),a.createElement("line",{x1:"2",y1:"12",x2:"6",y2:"12"}),a.createElement("line",{x1:"18",y1:"12",x2:"22",y2:"12"}),a.createElement("line",{x1:"4.93",y1:"19.07",x2:"7.76",y2:"16.24"}),a.createElement("line",{x1:"16.24",y1:"7.76",x2:"19.07",y2:"4.93"}))});function ut(){return ut=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ut.apply(this,arguments)}function mt(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}ct.propTypes={color:N.string,size:N.oneOfType([N.string,N.number])},ct.displayName="Loader";var dt=c(function(e,t){var r=e.color,n=void 0===r?"currentColor":r,o=e.size,l=void 0===o?24:o,i=mt(e,["color","size"]);return a.createElement("svg",ut({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:n,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),a.createElement("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),a.createElement("polyline",{points:"17 8 12 3 7 8"}),a.createElement("line",{x1:"12",y1:"3",x2:"12",y2:"15"}))});function pt(){return pt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},pt.apply(this,arguments)}function ft(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}dt.propTypes={color:N.string,size:N.oneOfType([N.string,N.number])},dt.displayName="Upload";var ht=c(function(e,t){var r=e.color,n=void 0===r?"currentColor":r,o=e.size,l=void 0===o?24:o,i=ft(e,["color","size"]);return a.createElement("svg",pt({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:n,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),a.createElement("polyline",{points:"6 9 12 15 18 9"}))});function vt(){return vt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},vt.apply(this,arguments)}function bt(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}ht.propTypes={color:N.string,size:N.oneOfType([N.string,N.number])},ht.displayName="ChevronDown";var yt=c(function(e,t){var r=e.color,n=void 0===r?"currentColor":r,o=e.size,l=void 0===o?24:o,i=bt(e,["color","size"]);return a.createElement("svg",vt({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:n,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),a.createElement("polyline",{points:"18 15 12 9 6 15"}))});function gt(){return gt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},gt.apply(this,arguments)}function Ot(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}yt.propTypes={color:N.string,size:N.oneOfType([N.string,N.number])},yt.displayName="ChevronUp";var jt=c(function(e,t){var r=e.color,n=void 0===r?"currentColor":r,o=e.size,l=void 0===o?24:o,i=Ot(e,["color","size"]);return a.createElement("svg",gt({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:n,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),a.createElement("polyline",{points:"3 6 5 6 21 6"}),a.createElement("path",{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"}),a.createElement("line",{x1:"10",y1:"11",x2:"10",y2:"17"}),a.createElement("line",{x1:"14",y1:"11",x2:"14",y2:"17"}))});jt.propTypes={color:N.string,size:N.oneOfType([N.string,N.number])},jt.displayName="Trash2";const wt=({onChange:e,value:n,readOnly:o,className:a,errorDisplayed:l,buttons:i,trueLabel:s,falseLabel:c})=>{const u=t=>{o||null==e||e(t)};let m=S("mrf-content_switch",a,{"mrf-content_switch_button_on":!!n,"mrf-content_switch_button_off":!n&&null!==n,"mrf-content_switch_button_null":null===n,"mrf-cursor_pointer":!o,"mrf-cursor_not_allowed":o,"mrf-input__invalid":!!l}),d=()=>u(!0);return n&&(d=()=>u(!1)),i?t("div",{className:"d-flex",children:[r("button",{type:"button",className:S("mrf-flex_grow_1 mrf-btn mrf-btn_grey mrf-ml_5",{active:!!n}),onClick:()=>e(!0),children:s||"true"}),r("button",{type:"button",className:S("mrf-flex_grow_1 mrf-btn mrf-btn_grey mrf-ml_5",{active:!n}),onClick:()=>e(!1),children:c||"false"})]}):r("input",{type:"checkbox",className:m,onChange:d})};function xt(){return xt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},xt.apply(this,arguments)}function kt(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var _t=c(function(e,t){var r=e.color,n=void 0===r?"currentColor":r,o=e.size,l=void 0===o?24:o,i=kt(e,["color","size"]);return a.createElement("svg",xt({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:n,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),a.createElement("path",{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"}),a.createElement("line",{x1:"1",y1:"1",x2:"23",y2:"23"}))});function Ct(){return Ct=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ct.apply(this,arguments)}function Vt(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}_t.propTypes={color:N.string,size:N.oneOfType([N.string,N.number])},_t.displayName="EyeOff";var Et=c(function(e,t){var r=e.color,n=void 0===r?"currentColor":r,o=e.size,l=void 0===o?24:o,i=Vt(e,["color","size"]);return a.createElement("svg",Ct({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:n,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),a.createElement("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),a.createElement("circle",{cx:"12",cy:"12",r:"3"}))});Et.propTypes={color:N.string,size:N.oneOfType([N.string,N.number])},Et.displayName="Eye";const Nt=e=>{const[n,o]=u(e.initCollapsed||e.collapsed),a=e=>{e&&e.stopPropagation(),o(!n)};return t("div",{children:[r("hr",{className:S({"mrf-collapse_error":e.errored})}),t("div",{className:"mrf-cursor_pointer mrf-flex mrf-jc_between",onClick:a,children:[r("span",{className:S("mrf-collapse_label",{"mrf-collapse_error":e.errored}),children:e.label}),t("button",{type:"button",className:S("mrf-btn","mrf-btn_sm","mrf-ml_5",{"mrf-collapse_error":e.errored}),onClick:a,children:[!!n&&r(Et,{size:16}),!n&&r(_t,{size:16})]})]}),r("div",{className:S("mrf-ml_10",{"mrf-display__none":!!n,"mrf-flex":!!e.inline,"mrf-collapse__inline":!!e.inline}),children:e.children}),e.lineEnd&&r("hr",{})]})},St=(e,t=[],r=!1)=>{if(null===e||!e)return null;if(r)return qe(e).map(e=>(Array.isArray(e)?e||[]:"object"==typeof e?Object.values(e):e).map(e=>St(e,t,!1))).getOrElse([]);const n=qe(t.find(t=>x(t.value,e)));return n.getOrElse({label:n.map(e=>e.label).getOrElse((null==e?void 0:e.label)||("object"==typeof e?JSON.stringify(e):e)),value:n.map(e=>e.value).getOrElse((null==e?void 0:e.value)||e)})},Ft=e=>{const{getValues:t}=h();function n(t){const r=e.transformer?"function"==typeof e.transformer?e.transformer(t):{label:t[e.transformer.label],value:t[e.transformer.value]}:t;return{label:(null==r?void 0:r.label)||("object"==typeof r?JSON.stringify(r):r),value:(null==r?void 0:r.value)||t}}const o=(e.possibleValues||[]).map(e=>n(e)),[a,l]=u(!0),[s,c]=u(o),[m,d]=u();i(()=>{!a&&s.length&&d(St(e.value||e.defaultValue,s,e.isMulti))},[e.value,s,e.defaultValue,a]),i(()=>{if(e.optionsFrom){if(qe(e.fetchCondition).map(e=>e()).getOrElse(!0)){let r;if(l(!0),Ye(e.optionsFrom))r=e.optionsFrom;else if("function"==typeof e.optionsFrom){const n=e.optionsFrom({rawValues:ot(t(),e.schema),value:t(e.id),getValue:e=>t(e)});r=Ye(n)?n:e.httpClient(n,"GET").then(e=>e.json())}else r=e.httpClient(e.optionsFrom,"GET").then(e=>e.json());r.then(e=>e.map(e=>n(e))).then(e=>{c(e),d(e.find(e=>Array.isArray(m)?m.find(t=>t.value===e.value):e.value===(m?m.value:m))||null),l(!1)})}}else c((e.possibleValues||[]).map(e=>n(e))),setTimeout(()=>l(!1),250)},[e.optionsFrom,e.possibleValues,e.onChange]);const p=t=>{var r,n;d(t),e.isMulti?null===(r=null==e?void 0:e.onChange)||void 0===r||r.call(e,t.map(e=>e.value)):null===(n=null==e?void 0:e.onChange)||void 0===n||n.call(e,null==t?void 0:t.value)},f=(t,r)=>{const n=qe(r).map(e=>e(t)).flatMap(t=>{return r=t,e.transformer?"function"==typeof e.transformer?qe(e.transformer(r)):Ie({label:r[e.transformer.label],value:r[e.transformer.value]}):Be;var r}).getOrElse(St(t,s));c([...s||[],n]),e.isMulti?p([...m||[],n]):p(n)};return e.buttons?r("div",{style:{display:"flex"},children:s.map((t,n)=>{const o=!!m&&(e.isMulti?m.includes(t):t.value===m.value);return r("button",{type:"button",disabled:e.disabled,className:S(e.className,"mrf-btn mrf-btn_grey mrf-ml_5",{active:o}),onClick:()=>(t=>{if(e.isMulti){const e=m;return e.includes(t)?p(e.filter(e=>e.value!==t.value)):p([...e,t])}return!e.isMulti&&e.isClearable&&m&&t.value===m.value?p(null):p(t)})(t),children:t.label},n)})}):e.createOption?r(F,Object.assign({},e,{name:`${e.label}-search`,isLoading:a,value:m,isDisabled:a||e.disabled,placeholder:e.placeholder,onChange:p,options:s,onCreateOption:t=>f(t,e.onCreateOption),classNamePrefix:"react-form-select",className:e.className})):r(P,Object.assign({},e,{name:`${e.label}-search`,isLoading:a,value:m,defaultValue:m,isDisabled:a||e.disabled,placeholder:e.placeholder,options:s,onChange:p,classNamePrefix:"react-form-select",className:e.className}))};function Pt(){return Pt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Pt.apply(this,arguments)}function Tt(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Mt=c(function(e,t){var r=e.color,n=void 0===r?"currentColor":r,o=e.size,l=void 0===o?24:o,i=Tt(e,["color","size"]);return a.createElement("svg",Pt({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:n,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),a.createElement("circle",{cx:"12",cy:"12",r:"10"}),a.createElement("line",{x1:"12",y1:"8",x2:"12",y2:"16"}),a.createElement("line",{x1:"8",y1:"12",x2:"16",y2:"12"}))});function zt(){return zt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},zt.apply(this,arguments)}function Wt(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}Mt.propTypes={color:N.string,size:N.oneOfType([N.string,N.number])},Mt.displayName="PlusCircle";var Lt=c(function(e,t){var r=e.color,n=void 0===r?"currentColor":r,o=e.size,l=void 0===o?24:o,i=Wt(e,["color","size"]);return a.createElement("svg",zt({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:n,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),a.createElement("circle",{cx:"12",cy:"12",r:"10"}),a.createElement("line",{x1:"8",y1:"12",x2:"16",y2:"12"}))});Lt.propTypes={color:N.string,size:N.oneOfType([N.string,N.number])},Lt.displayName="MinusCircle";const At=e=>{const[n,o]=u({});i(()=>{o(Object.fromEntries(Object.entries(e.value||{}).map(([e,t],r)=>[Date.now()+r,{key:e,value:t}])))},[]),i(()=>{if(e.value){const t=e.value||{},r=Object.entries(n||{}).reduce((e,[t,r])=>r.key?Object.assign(Object.assign({},e),{[r.key]:r.value}):e,{});x(t,r)||o(Object.fromEntries(Object.entries(e.value||{}).map(([e,t],r)=>[Date.now()+r,{key:e,value:t}])))}},[e.value]);const a=t=>{var r;null===(r=null==e?void 0:e.onChange)||void 0===r||r.call(e,Object.values(t).reduce((e,t)=>Object.assign(Object.assign({},e),{[t.key]:t.value}),{}))},l=()=>{const t=e.defaultKeyValue||{key:"",value:""},r=Object.assign(Object.assign({},n),{[Date.now()]:t});o(r),a(r)};return t("div",{className:e.className,children:[0===Object.keys(n||{}).length&&r("button",{disabled:e.disabled,type:"button",className:"mrf-flex mrf-btn mrf-btn_blue mrf-btn_sm",onClick:()=>{if(!n||0===Object.keys(n).length){const t=Object.assign(Object.assign({},n),{[Date.now()]:e.defaultKeyValue||{key:"",value:""}});o(t),a(t)}},children:r(Mt,{})}),Object.entries(n||{}).map(([i,{key:s,value:c}],u)=>t("div",{className:"mrf-flex mrf-mt_5",children:[r("input",{disabled:e.disabled,type:"text",className:"mrf-w_50 mrf-input",placeholder:e.placeholderKey,value:s,onChange:e=>((e,t)=>{const r=Object.assign(Object.assign({},n),{[e]:{key:t,value:n[e].value}});o(r),a(r)})(i,e.target.value)}),r("input",{disabled:e.disabled,type:"text",className:"mrf-w_50 mrf-input",placeholder:e.placeholderValue,value:c,onChange:e=>((e,t)=>{const r=Object.assign(Object.assign({},n),{[e]:{key:n[e].key,value:t}});o(r),a(r)})(i,e.target.value)}),r("button",{disabled:e.disabled,type:"button",className:"mrf-flex mrf-ai_center mrf-btn mrf-btn_red mrf-btn_sm mrf-ml_10",onClick:()=>(e=>{const t=Object.fromEntries(Object.entries(n).filter(([t,r])=>t!==e));o(t),a(t)})(i),children:r(Lt,{})}),u===Object.keys(n).length-1&&r("button",{disabled:e.disabled,type:"button",className:"mrf-flex mrf-ai_center mrf-btn mrf-btn_blue mrf-btn_sm mrf-ml_5",onClick:l,children:r(Mt,{})})]},u))]})},Dt={javascript:M,css:L,json:W,html:z,markdown:A};function $t(e,t,r=1,n=!1,o=!0,a=!1,l={height:"-1",minHeight:"300px",maxHeight:"-1",width:"-1",minWidth:"-1",maxWidth:"-1"},i,s){const c=D.theme({"&":Object.assign({},l)}),u=[o?X():X({formatNumber:()=>""}),Z(),$(),H(),Dt[t](),U(),R(),q(),T.allowMultipleSelections.of(!0),ce.fallback,ee(),te(),ae(),se(),a?I():void 0,ne(),B.of([...re,...Y,...oe,...J,...K,...ie,...le,...ue,G]),me,c,T.tabSize.of(r),Q.of(" ".repeat(r))].filter(e=>!!e),m=T.create({extensions:[...u,D.updateListener.of(e=>{try{if(e.docChanged){const t=e.state.doc.toString();null==i||i(t)}}catch(e){}}),D.editable.of(!n)],doc:null==s?"":"object"==typeof s?s.value:s});return new D({state:m,parent:e})}function Rt({onChange:e,value:t,mode:n="javascript",tabSize:o=2,readOnly:a=!1,showLinesNumber:s=!0,highlightLine:c=!1,themeStyle:m={height:"-1",minHeight:"300px",maxHeight:"-1",width:"-1",minWidth:"-1",maxWidth:"-1"},className:d,setRef:p}){const f=l(null),[h,v]=u();return i(()=>{const r=$t(f.current,n,o,a,s,c,m,e,t);f.current.addEventListener("keydown",e=>{e.stopImmediatePropagation()}),p&&p(r),r.dispatch({changes:{from:0,to:r.state.doc.length,insert:null==t?"":"object"==typeof t?JSON.stringify(t,null,2):t}}),v(r)},[]),i(()=>{h&&("object"==typeof t?JSON.stringify(t,null,2):t)!==h.state.doc.toString()&&h.dispatch({changes:{from:0,to:h.state.doc.length,insert:null==t?"":"object"==typeof t?JSON.stringify(t,null,2):t}})},[t]),r("div",{className:d,ref:f})}const qt=new de.Converter({omitExtraWLInCodeBlocks:!0,ghCompatibleHeaderId:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,tables:!0,tasklists:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!0,emoji:!0,ghMentionsLink:"/{u}"}),It=e=>{const[o,a]=u(e.preview||!1),s=l(null);i(()=>{o&&m()},[o,e.value]);const c=[{name:"Add header",icon:"heading",inject:e=>[{from:e.from,insert:"# "}]},{name:"Add bold text",icon:"bold",inject:e=>[{from:e.from,insert:"**"},{from:e.to,insert:"**"}]},{name:"Add italic text",icon:"italic",inject:e=>[{from:e.from,insert:"*"},{from:e.to,insert:"*"}]},{name:"Add strikethrough text",icon:"strikethrough",inject:e=>[{from:e.from,insert:"~~"},{from:e.to,insert:"~~"}]},{name:"Add link",icon:"link",inject:e=>[{from:e.from,insert:"["},{from:e.to,insert:"](url)"}]},{name:"Add code",icon:"code",inject:e=>[{from:e.from,insert:"```\n"},{from:e.to,insert:"\n```\n"}]},{name:"Add quotes",icon:"quote-right",inject:e=>[{from:e.from,insert:"> "}]},{name:"Add image",icon:"image",inject:e=>[{from:e.from,insert:"!["},{from:e.to,insert:"](image-url)"}]},{name:"Add unordered list",icon:"list-ul",inject:e=>[{from:e.from,insert:"* "}]},{name:"Add ordered list",icon:"list-ol",inject:e=>[{from:e.from,insert:"1. "}]},{name:"Add check list",icon:"tasks",inject:e=>[{from:e.from,insert:"* [ ] "}]}],m=()=>{const e=[...document.getElementsByClassName("mrf-preview")];e.length>0&&[...e[0].querySelectorAll("pre code")].forEach(e=>pe.highlightElement(e))};return t("div",{className:S(e.className),children:[!e.readOnly&&t("div",{style:{marginBottom:10},children:[r("div",{children:t("div",{children:[r("button",{type:"button",className:"mrf-btn mrf-btn_sm",style:{color:o?"white":"#7f96af",backgroundColor:o?"#7f96af":"white"},onClick:()=>a(!1),children:"Write"}),r("button",{type:"button",className:"mrf-btn mrf-btn_sm mrf-ml_5",style:{color:o?"#7f96af":"white",backgroundColor:o?"white":"#7f96af"},onClick:()=>a(!0),children:"Preview"})]})}),r("div",{className:"mrf-flex mrf-flexWrap",children:t(n,{children:[c.map((e,t)=>r("button",{type:"button",className:S("mrf-btn_for_descriptionToolbar"),"aria-label":e.name,title:e.name,onClick:()=>{const t=s.current;t.dispatch(t.state.changeByRange(t=>({changes:e.inject(t),range:t}))),t.focus()},children:r("i",{className:`fas fa-${e.icon}`})},`toolbar-btn-${t}`)),e.actions&&e.actions(e=>{const t=s.current;t.dispatch(t.state.changeByRange(t=>({changes:[{from:t.from,insert:e}],range:t}))),t.focus()})]})})]}),!o&&r(Rt,Object.assign({},e,{mode:"markdown",setRef:e=>s.current=e})),o&&r("div",{className:"mrf-preview",dangerouslySetInnerHTML:{__html:qt.makeHtml(e.value||"")}})]})};function Bt({onChange:e,value:t,mode:n="javascript",tabSize:o=2,readOnly:a=!1,showLinesNumber:s=!0,highlightLine:c=!1,themeStyle:u={height:"-1",minHeight:"-1",maxHeight:"-1",width:"-1",minWidth:"-1",maxWidth:"-1"}}){const m=l(null);return i(()=>{$t(m.current,n,o,a,s,c,u,t=>{null==e||e(t.replace(/\n/g,""))},t),m.current.addEventListener("keydown",e=>{e.stopImmediatePropagation()})},[]),r("div",{ref:m,style:{flex:1,overflow:"hidden"}})}function Ht(){return Ht=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ht.apply(this,arguments)}function Jt(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Ut=c(function(e,t){var r=e.color,n=void 0===r?"currentColor":r,o=e.size,l=void 0===o?24:o,i=Jt(e,["color","size"]);return a.createElement("svg",Ht({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:n,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),a.createElement("circle",{cx:"12",cy:"12",r:"10"}),a.createElement("path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"}),a.createElement("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"}))});Ut.propTypes={color:N.string,size:N.oneOfType([N.string,N.number])},Ut.displayName="HelpCircle";const Kt=({entry:e,realEntry:o,children:a,render:l,functionalProperty:i,step:s,informations:c,className:u})=>{var m;const{formState:d}=h();if("object"==typeof e)return a;const p=e.split(".").reduce((e,t)=>e&&e[t],d.errors),f=e.split(".").reduce((e,t)=>e&&e[t],d.dirtyFields),v=e.split(".").reduce((e,t)=>e&&e[t],d.touchedFields),b=d.isSubmitted||f||v;if(!i(e,void 0===(null==s?void 0:s.visible)||s.visible,c,p))return null;const y=i(e,null===(null==s?void 0:s.label)?null:(null==s?void 0:s.label)||o||e,c),g=he();return l?l({entry:e,label:y,error:p,help:null==s?void 0:s.help,children:a}):t("div",{className:`mrf-mt_10 ${u||""}`,style:{position:"relative"},children:[y&&t("label",{className:"mrf-flex mrf-ai_center mrf-mb_5",htmlFor:null!==(m=null==s?void 0:s.name)&&void 0!==m?m:e,children:[r("span",{children:y}),(null==s?void 0:s.help)&&t(n,{children:[r(fe,{id:g,place:"bottom"}),r("span",{className:"mrf-flex mrf-ai_center","data-tooltip-id":g,"data-tooltip-html":null==s?void 0:s.help,children:r(Ut,{style:{color:"gray",width:17,marginLeft:".5rem",cursor:"help"}})})]})]}),a,p&&r("div",{className:S("mrf-feedback",{"mrf-txt_red":!!b}),children:p.message})]})},Yt=o.memo(e=>e.render?e.render(Object.assign(Object.assign({},e.field),{error:e.error,informations:e.informations,defaultValue:e.step.defaultValue})):e.children,(e,t)=>!t.deactivateReactMemo&&(e.field.value===t.field.value&&t.errorDisplayed===e.errorDisplayed&&Ze(t.step)===Ze(e.step))),Gt=e=>{var n,a;const{step:l,entry:i,realEntry:s,children:c,component:u,errorDisplayed:m=!1,informations:d,deactivateReactMemo:p,inputWrapper:f,defaultFormValue:b}=e,{field:y}=v({defaultValue:Qe(l.defaultValue)?l.defaultValue:null,name:i}),{getValues:g,setValue:O,formState:{errors:j}}=h(),[w,x]=o.useState(!!y.value),k=i.split(".").reduce((e,t)=>e&&e[t],j),_=(t,r)=>"function"==typeof r?r({rawValues:ot(g(),e.schema),value:g(t),defaultFormValue:b,informations:d,error:k,getValue:e=>g(e)}):r,C=Object.assign(Object.assign({name:null!==(n=l.name)&&void 0!==n?n:y.name},l.props),{id:null!==(a=l.name)&&void 0!==a?a:i,readOnly:_(i,l.disabled)?"readOnly":null,placeholder:l.placeholder,onChange:t=>{const r=t?t.target?t.target.value||null:t:l.type===ve.bool||l.type===ve.number&&0===y.value?t:null;y.onChange(r),qe(l.onChange).map(t=>t({rawValues:ot(g(),e.schema),value:r,setValue:O}))},value:y.value});return l.optional&&w?t("div",{className:"mrf-ai_center mrf-mt_5",style:{position:"relative"},children:[r("div",{style:{width:"95%"},children:r(Kt,{entry:i,realEntry:s,functionalProperty:_,step:l,render:f,informations:d,children:r(Yt,{render:l.render,step:l,field:Object.assign({setValue:(e,t)=>O(e,t),rawValues:g(),getValue:e=>g(e)},y),error:k,errorDisplayed:m,informations:d,deactivateReactMemo:p,children:u?u(y,C):o.cloneElement(c,Object.assign({},C))})},`collapse-${i}`)}),r("button",{type:"button",style:{position:"absolute",top:"2px",right:0},className:"mrf-btn mrf-btn_red mrf-btn_sm mrf-ml_5",onClick:()=>{x(!1),O(i,null)},children:r(jt,{size:16})})]}):l.optional?r(Kt,{entry:i,realEntry:s,functionalProperty:_,step:l,render:f,informations:d,children:r("div",{className:"mrf-flex mrf-jc_flex_end",children:r("button",{type:"button",className:S("mrf-btn","mrf-btn_blue","mrf-btn_sm","mrf-mt_5"),onClick:()=>{x(!0)},children:"Add"})})},`collapse-${i}`):r(Kt,{entry:i,realEntry:s,functionalProperty:_,step:l,render:f,informations:d,children:r(Yt,{render:l.render,step:l,field:Object.assign({setValue:(e,t)=>O(e,t),rawValues:ot(g(),e.schema),getValue:e=>g(e)},y),error:k,errorDisplayed:m,informations:d,deactivateReactMemo:p,children:u?u(y,C):o.cloneElement(c,Object.assign({},C))})},`collapse-${i}`)},Qt=({entry:e,step:o,component:a,disabled:l,addLabel:i,schema:s})=>{const{getValues:c,setValue:u,control:m,trigger:d,formState:p}=h(),f=c(e),v=e.split(".").reduce((e,t)=>e&&e[t],p.errors),y=e.split(".").reduce((e,t)=>e&&e[t],p.dirtyFields),g=e.split(".").reduce((e,t)=>e&&e[t],p.touchedFields),O=!!v&&(p.isSubmitted||y||g),{fields:j,append:w,remove:x}=b({control:m,name:e});return t(n,{children:[j.map((n,i)=>r("div",{children:t("div",{className:"mrf-ai_center mrf-mt_5",style:{position:"relative"},children:[r("div",{style:{width:"95%"},children:a(Object.assign(Object.assign({key:n.id},n),{defaultValue:f[i]}),i)}),r("button",{type:"button",style:{position:"absolute",top:"2px",right:0},className:"mrf-btn mrf-btn_red mrf-btn_sm mrf-ml_5",disabled:l,onClick:()=>{x(i),qe(o.onChange).map(t=>t({rawValues:ot(c(),s),value:c(e),setValue:u})),d(e)},children:r(jt,{size:16})})]})},n.id)),r("div",{className:"mrf-flex mrf-jc_flex_end",children:r("button",{type:"button",className:S("mrf-btn","mrf-btn_blue","mrf-btn_sm","mrf-mt_5",{"mrf-input__invalid":!!O}),onClick:()=>{const t=o.type===ve.object?rt(o.flow,o.schema):tt();w({value:o.addableDefaultValue||t}),qe(o.onChange).map(t=>t({rawValues:ot(c(),s),value:c(e),setValue:u}))},disabled:l,children:i||"Add"})})]})},Xt=e=>e.render?e.render(Object.assign(Object.assign({},e),{error:e.error})):e.children,Zt=e=>{let{entry:t,schema:n,inputWrapper:o,httpClient:a,functionalProperty:l}=e;const{formState:{errors:i,dirtyFields:s,touchedFields:c}}=h(),u=at(t).some(e=>!!i[e]&&(s[e]||c[e]));return r(Nt,Object.assign({},t,{errored:u,children:t.flow.map((t,i)=>{if("object"==typeof t)return r(Zt,Object.assign({},e,{entry:t}),i);const s=n[t];if(!s&&"string"==typeof t)return console.error(`no step found for the entry "${t}" in the given schema. Your form might not work properly. Please fix it`),null;const c={path:t,key:t};return r(er,{entry:t,step:s,schema:n,inputWrapper:o,httpClient:a,defaultValue:null==s?void 0:s.defaultValue,functionalProperty:l,informations:c,options:e.stepsOptions,defaultFormValue:e.defaultFormValue})})}))},er=e=>{var n;let{entry:o,realEntry:a,step:s,schema:c,inputWrapper:d,httpClient:p,functionalProperty:f,informations:v,defaultFormValue:b}=e;const g=h(),{formState:{errors:O,dirtyFields:j,touchedFields:w,isSubmitted:N},control:F,getValues:P,setValue:T,reset:M}=g,{watch:z}=g,[W,L]=u(Ze(P())),A=o.split(".").reduce((e,t)=>e&&e[t],O),D=o.split(".").reduce((e,t)=>e&&e[t],j),$=o.split(".").reduce((e,t)=>e&&e[t],w),R=!!A&&(N||D||$);if(s.onAfterChange){const e=z(),t=o.replace("[",".").replace("]","").split(".").reduce((e,t)=>e&&e[t],e)||{},r=(e=>{const t=l(void 0);return i(()=>{t.current=e},[e]),t.current})(ot(t,c)),n=ot(t,c);(!x(n,r)||void 0!==n&&void 0===r)&&s.onAfterChange({entry:o,value:P(o),rawValues:ot(P(),c),previousValue:r,getValue:e=>P(e),setValue:T,onChange:e=>T(o,e),reset:M,informations:v})}const q=m(()=>{const e="function"==typeof s.visible,t="function"==typeof s.disabled,r="function"==typeof s.label;return!!("function"==typeof s.deps?s.deps(v):s.deps)||e||t||r||!!s.render||!!s.conditionalSchema},[Ze(c)]);if(q){const e="function"==typeof s.deps?s.deps(v):s.deps,t=e?z(e):z(),r=Ze(t);r!==W&&L(r)}if(s.array)return r(Gt,{schema:e.schema,step:s,entry:o,realEntry:a,errorDisplayed:R,informations:v,deactivateReactMemo:q,inputWrapper:d,defaultFormValue:b,children:r(Qt,{entry:o,step:s,schema:c,disabled:f(o,s.disabled||!1,v,A),component:(t,n)=>{var l,i,u,m,h,y,g,O,j;return r(er,{entry:`${o}.${n}.value`,step:Object.assign(Object.assign({},c[a||o]),{label:(null===(l=s.item)||void 0===l?void 0:l.label)||null,render:null===(i=s.item)||void 0===i?void 0:i.render,onChange:null===(u=s.item)||void 0===u?void 0:u.onChange,array:(null===(m=s.item)||void 0===m?void 0:m.array)||!1,onAfterChange:null===(h=s.item)||void 0===h?void 0:h.onAfterChange,visible:null===(y=s.item)||void 0===y?void 0:y.visible,disabled:null===(g=s.item)||void 0===g?void 0:g.disabled,deps:null===(O=s.item)||void 0===O?void 0:O.deps}),schema:c,inputWrapper:d,httpClient:p,defaultValue:null===(j=t.defaultValue)||void 0===j?void 0:j.value,index:n,functionalProperty:f,informations:{path:`${null==v?void 0:v.path}.${n}.value`,parent:v,index:n},options:e.options,defaultFormValue:b})},addLabel:null===(n=e.options)||void 0===n?void 0:n.addLabel})});switch(s.type){case ve.string:switch(s.format){case be.text:return r(Gt,{schema:e.schema,step:s,entry:o,realEntry:a,errorDisplayed:R,informations:v,deactivateReactMemo:q,inputWrapper:d,defaultFormValue:b,children:r("textarea",{className:S("mrf-input",s.className,{"mrf-mrf-input__invalid":!!R})})});case be.code:case be.singleLineCode:const t=s.format===be.code?Rt:Bt;return r(Gt,{schema:e.schema,step:s,entry:o,realEntry:a,errorDisplayed:R,informations:v,deactivateReactMemo:q,inputWrapper:d,defaultFormValue:b,children:r(t,{className:S(null==s?void 0:s.className,{"mrf-input__invalid":!!A})})});case be.markdown:return r(Gt,{schema:e.schema,step:s,entry:o,realEntry:a,errorDisplayed:R,informations:v,deactivateReactMemo:q,inputWrapper:d,defaultFormValue:b,children:r(It,{className:S(s.className,{"mrf-input__invalid":!!R})})});case be.buttonsSelect:case be.select:return r(Gt,{schema:e.schema,step:s,entry:o,realEntry:a,errorDisplayed:R,informations:v,deactivateReactMemo:q,inputWrapper:d,defaultFormValue:b,children:r(Ft,Object.assign({className:S("mrf-flex_grow_1",s.className,{"mrf-input__invalid":!!R}),disabled:f(o,s.disabled||!1,v,A)},s.props,{possibleValues:s.options,httpClient:p,isMulti:s.isMulti,createOption:s.createOption,onCreateOption:s.onCreateOption,transformer:s.transformer,buttons:s.format===be.buttonsSelect,optionsFrom:s.optionsFrom,schema:c}))});default:return r(Gt,{schema:e.schema,step:s,entry:o,realEntry:a,errorDisplayed:R,informations:v,deactivateReactMemo:q,inputWrapper:d,defaultFormValue:b,children:r("input",{type:s.format||"text",className:S("mrf-input",s.className,{"mrf-input__invalid":!!R})})})}case ve.number:switch(s.format){case be.buttonsSelect:case be.select:return r(Gt,{schema:e.schema,step:s,entry:o,realEntry:a,errorDisplayed:R,informations:v,deactivateReactMemo:q,inputWrapper:d,defaultFormValue:b,children:r(Ft,Object.assign({className:S("mrf-content",s.className,{"mrf-input__invalid":!!R})},s.props,{possibleValues:s.options,httpClient:p,isMulti:s.isMulti,createOption:s.createOption,onCreateOption:s.onCreateOption,transformer:s.transformer,buttons:s.format===be.buttonsSelect,optionsFrom:s.optionsFrom,schema:c}))});default:return r(Gt,{schema:e.schema,step:s,entry:o,realEntry:a,errorDisplayed:R,informations:v,deactivateReactMemo:q,inputWrapper:d,defaultFormValue:b,children:r("input",{type:s.format||"number",className:S("mrf-input",s.className,{"mrf-input__invalid":!!R})})})}case ve.bool:return r(Gt,{schema:e.schema,step:s,defaultFormValue:b,entry:o,realEntry:a,errorDisplayed:R,informations:v,deactivateReactMemo:q,inputWrapper:d,children:r(wt,{className:s.className,errorDisplayed:R,buttons:s.format===be.buttonsSelect})});case ve.object:const n=P(o),l=Qe(s.defaultValue)?s.defaultValue:rt(s.flow,s.schema);switch(s.format){case be.buttonsSelect:case be.select:return r(Gt,{schema:e.schema,step:Object.assign(Object.assign({},s),{defaultValue:n||l}),entry:o,realEntry:a,errorDisplayed:R,informations:v,deactivateReactMemo:q,inputWrapper:d,defaultFormValue:b,children:r(Ft,Object.assign({className:S("mrf-flex_grow_1",s.className,{"mrf-input__invalid":!!R})},s.props,{possibleValues:s.options,httpClient:p,isMulti:s.isMulti,createOption:s.createOption,onCreateOption:s.onCreateOption,transformer:s.transformer,buttons:s.format===be.buttonsSelect,optionsFrom:s.optionsFrom,schema:c}))});case be.form:const t=qe(s.flow).getOrElse(qe(s.schema).map(e=>Object.keys(e)).getOrElse([]));return r(Gt,{schema:e.schema,step:Object.assign(Object.assign({},s),{defaultValue:n||l}),entry:o,realEntry:a,errorDisplayed:R,informations:v,deactivateReactMemo:q,inputWrapper:d,defaultFormValue:b,children:r(Xt,{render:s.render,rawValues:P(),value:P(o),onChange:e=>T(o,e,{shouldValidate:!0}),setValue:(e,t)=>T(e,t),getValue:e=>P(e),informations:v,defaultValue:n||l,children:r(tr,{schema:s.schema,flow:t,step:s,parent:o,inputWrapper:d,maybeCustomHttpClient:p,value:P(o)||l,functionalProperty:f,errorDisplayed:R,informations:v,stepsOptions:e.options,defaultFormValue:b})})});case be.code:return r(Gt,{schema:e.schema,step:Object.assign(Object.assign({},s),{defaultValue:n||l}),entry:o,realEntry:a,errorDisplayed:R,informations:v,deactivateReactMemo:q,inputWrapper:d,defaultFormValue:b,component:(e,t)=>r(Rt,Object.assign({},t,{className:S(null==s?void 0:s.className,{"mrf-input__invalid":!!A}),onChange:t=>{let r;try{r=JSON.parse(t)}catch(e){r=t}e.onChange(r),qe(null==s?void 0:s.onChange).map(e=>e({rawValues:ot(P(),c),value:r,setValue:T}))},value:null===e.value?null:"object"==typeof e.value?JSON.stringify(e.value,null,2):e.value}))});default:return r(Gt,{schema:e.schema,step:Object.assign(Object.assign({},s),{defaultValue:n||l}),entry:o,realEntry:a,errorDisplayed:R,informations:v,deactivateReactMemo:q,inputWrapper:d,defaultFormValue:b,children:r(At,{className:S(s.className,{"mrf-input__invalid":!!R})})})}case ve.date:switch(s.format){case be.datetime:return r(Gt,{schema:e.schema,step:s,entry:o,realEntry:a,informations:v,deactivateReactMemo:q,inputWrapper:d,defaultFormValue:b,component:e=>r(_,{dateAdapter:k,children:r(E,{value:e.value,onChange:t=>{e.onChange(t),qe(s.onChange).map(e=>e({rawValues:ot(P(),c),value:t,setValue:T}))},slotProps:{popper:{disablePortal:!0}}})})});case be.time:return r(Gt,{schema:e.schema,step:s,entry:o,realEntry:a,informations:v,deactivateReactMemo:q,inputWrapper:d,defaultFormValue:b,component:e=>r(_,{dateAdapter:k,children:r(V,{value:e.value,onChange:t=>{e.onChange(t),qe(s.onChange).map(e=>e({rawValues:ot(P(),c),value:t,setValue:T}))}})})});default:return r(Gt,{schema:e.schema,step:s,entry:o,realEntry:a,informations:v,deactivateReactMemo:q,inputWrapper:d,defaultFormValue:b,component:e=>r(_,{dateAdapter:k,children:r(C,{value:e.value,onChange:t=>{e.onChange(t),qe(s.onChange).map(e=>e({rawValues:ot(P(),c),value:t,setValue:T}))}})})})}case ve.file:return r(y,{name:o,control:F,render:({field:n})=>r(Gt,{schema:e.schema,step:s,entry:o,realEntry:a,errorDisplayed:R,informations:v,deactivateReactMemo:q,inputWrapper:d,defaultFormValue:b,children:r(({onChange:e})=>{const[a,l]=u(!1),[i,c]=u(void 0),m=n.value||[];return t("div",{className:S("mrf-flex","mrf-ai_center",null==s?void 0:s.className,{"mrf-input__invalid":!!A}),children:[r("input",{ref:e=>c(e),type:"file",multiple:!0,className:"mrf-d_none",onChange:t=>{const r=t.target.files;l(!0),e&&e(r?[...r]:[]),l(!1)}}),t("button",{type:"button",className:"mrf-btn mrf-btn_sm mrf-flex mrf-ai_center",disabled:a||f(o,(null==s?void 0:s.disabled)||!1,v,A),onClick:()=>{null==i||i.click()},children:[a&&r(ct,{}),!a&&r(dt,{}),r("span",{className:"mrf-ml_5",children:"Select file(s)"})]}),r("span",{className:"mrf-ml_5",children:m.length<=0?"No files selected":m.map(e=>e.name).join(" , ")})]})},{})})});case ve.json:return r(Gt,{schema:e.schema,step:s,entry:o,realEntry:a,informations:v,deactivateReactMemo:q,inputWrapper:d,defaultFormValue:b,component:(e,t)=>r(Rt,Object.assign({},t,{className:S(null==s?void 0:s.className,{"mrf-input__invalid":!!A}),onChange:t=>{e.onChange(t),qe(null==s?void 0:s.onChange).map(e=>e({rawValues:ot(P(),c),value:t,setValue:T}))},value:e.value}))});default:return null}},tr=({schema:e,flow:n,parent:o,inputWrapper:a,maybeCustomHttpClient:l,errorDisplayed:i,value:s,step:c,functionalProperty:m,informations:d,stepsOptions:p,defaultFormValue:v})=>{var b;const{getValues:y,control:g}=h(),[O,j]=u(!!c.collapsed);f({name:(null===(b=null==c?void 0:c.conditionalSchema)||void 0===b?void 0:b.ref)||"",control:g});const w=qe(c.conditionalSchema).map(e=>{const t=qe(e.ref).map(e=>y(e)).getOrNull(),r=y(),n=qe(e.switch.find(e=>"function"==typeof e.condition?e.condition({rawValues:r,ref:t}):e.condition===t)).orElse(e.switch.find(e=>e.default)).getOrElse({schema:{},flow:[]});return{schema:n.schema,flow:n.flow||Object.keys(n.schema)}}).getOrElse({schema:e,flow:n}),x=w.flow.reduce((e,t)=>[...e,{step:"string"==typeof t?w.schema[t]:w.schema[t.label],entry:t}],[]),k=x.length>=1&&null!==c.label;return t("div",{className:S(c.className,{"mrf-nestedform__border":k,"mrf-border__error":!!i}),style:{position:"relative"},children:[!!c.collapsable&&w.flow.length>1&&O&&r(ht,{size:30,className:"mrf-cursor_pointer",style:{position:"absolute",top:-35,right:0,zIndex:100},strokeWidth:"2",onClick:()=>j(!O)}),!!c.collapsable&&w.flow.length>1&&!O&&r(yt,{size:30,className:"mrf-cursor_pointer",style:{position:"absolute",top:-35,right:0,zIndex:100},strokeWidth:"2",onClick:()=>j(!O)}),O&&!!c.collapsable&&"function"==typeof c.collapsable&&c.collapsable({rawValues:ot(y(),e),getValue:e=>y(e),value:s}),("function"!=typeof c.collapsable||!O)&&x.map(({step:t,entry:n},i)=>O&&!t.visibleOnCollapse?null:"object"==typeof n?r(Zt,{entry:n,schema:e,inputWrapper:a,httpClient:l,functionalProperty:m,stepsOptions:p,defaultFormValue:v},i):t||"string"!=typeof n?r(er,{entry:`${o}.${n}`,realEntry:n,step:w.schema[n],schema:w.schema,inputWrapper:a,httpClient:l,defaultValue:s&&s[n],functionalProperty:m,informations:{path:`${null==d?void 0:d.path}.${n}`,key:n,parent:d},options:p,defaultFormValue:v},`step.${n}.${i}`):(console.error(`no step found for the entry "${n}" in the given schema. Your form might not work properly. Please fix it`),null))]})},rr=e=>{var n,o,a,l,i,s,c,u,m,d,p,f,h,v;if(e.render)return e.render({reset:e.reset,valid:e.valid});const b=void 0===(null===(o=null===(n=e.actions)||void 0===n?void 0:n.submit)||void 0===o?void 0:o.display)||!!(null===(l=null===(a=e.actions)||void 0===a?void 0:a.submit)||void 0===l?void 0:l.display);return t("div",{className:"mrf-flex mrf-jc_end mrf-mt_5",children:[(null===(s=null===(i=e.actions)||void 0===i?void 0:i.cancel)||void 0===s?void 0:s.display)&&r("button",{className:"mrf-btn mrf-btn_red",type:"button",onClick:()=>{var t,r;return null===(r=null===(t=e.actions)||void 0===t?void 0:t.cancel)||void 0===r?void 0:r.action()},children:(null===(u=null===(c=e.actions)||void 0===c?void 0:c.cancel)||void 0===u?void 0:u.label)||"Cancel"}),(null===(d=null===(m=e.actions)||void 0===m?void 0:m.reset)||void 0===d?void 0:d.display)&&r("button",{className:"mrf-btn mrf-btn_red",type:"button",onClick:e.reset,children:(null===(f=null===(p=e.actions)||void 0===p?void 0:p.reset)||void 0===f?void 0:f.label)||"Reset"}),b&&r("button",{className:"mrf-btn mrf-btn_green mrf-ml_10",type:"submit",children:(null===(v=null===(h=e.actions)||void 0===h?void 0:h.submit)||void 0===v?void 0:v.label)||"Save"})]})},nr=a.forwardRef((n,o)=>{const{schema:a,flow:l,value:s,inputWrapper:c,onSubmit:f,onError:h=()=>{},footer:v,className:b,options:y={}}=n,j=l||Object.keys(a),w=(e,t)=>y.httpClient?y.httpClient(e,t):fetch(e,{method:t,headers:{Accept:"application/json","Content-Type":"application/json"}}),x=rt(j,a,s),k=m(()=>((e,t)=>{const r=new Set,n=(e,t)=>{(e||Object.keys(t)).forEach(e=>{var o;if("object"==typeof e)return void n(e.flow,t);const a=t[e];a&&((null===(o=a.conditionalSchema)||void 0===o?void 0:o.ref)&&r.add(a.conditionalSchema.ref),a.schema&&n(a.flow||Object.keys(a.schema),a.schema))})};return n(e,t),Array.from(r)})(j,a),[j,a]),_=m(()=>{const{shape:t,dependencies:r}=Ke(j,a,[],{});return e.object().shape(t,r)},[j,a]),[C,V]=u(null),E=g({resolver:k.length>0?(t,r,n)=>{const o=k.reduce((e,r)=>(e[r]=t[r],e),{}),l=!C||k.some(e=>C.refValues[e]!==o[e]);let i;if(l){const{shape:r,dependencies:n}=Ke(j,a,[],t);i=e.object().shape(r,n),V({refValues:o,schema:i})}else i=C.schema;return p(i)(t,r,n)}:p(_),shouldFocusError:!1,mode:"onChange",defaultValues:nt(s,x,l,a)}),[N,S]=u(!1),{handleSubmit:F,reset:P,trigger:T}=E,{getValues:M}=E;i(()=>{y.showErrorsOnStart&&T()},[T,N]),et(()=>{P(Object.assign({},nt(s,x,l,a)))},[s,a,l]);const z=(e,t,r,n)=>"function"==typeof t?t({rawValues:ot(M(),a),value:M(e),defaultFormValue:s,informations:r,getValue:e=>M(e),error:n}):t;return d(o,()=>({handleSubmit:()=>F(e=>{const t=ot(e,a);f(t)},h)(),trigger:T,methods:Object.assign(Object.assign({},E),{data:()=>ot(M(),a)})})),t(O,Object.assign({},E,{children:[(!!y.watch||!!y.autosubmit)&&r(lt,{options:y,control:E.control,schema:a,onSubmit:f,handleSubmit:F,onError:h}),t("form",{className:b||"mrf-pr_15 mrf-w_100",onSubmit:F(e=>{const t=ot(e,a);f(t)},h),children:[j.map((e,t)=>{var o,l,i,u,m,d;if("object"==typeof e)return r(Zt,{entry:e,schema:a,inputWrapper:c,httpClient:w,functionalProperty:z,stepsOptions:{addLabel:null===(i=null===(l=null===(o=n.options)||void 0===o?void 0:o.actions)||void 0===l?void 0:l.add)||void 0===i?void 0:i.label},defaultFormValue:s},t);const p=a[e];if(!p&&"string"==typeof e)return console.error(`no step found for the entry "${e}" in the given schema. Your form might not work properly. Please fix it`),null;return r(er,{defaultFormValue:s,entry:e,step:p,schema:a,inputWrapper:c,httpClient:w,functionalProperty:z,informations:{path:e,key:e},options:{addLabel:null===(d=null===(m=null===(u=n.options)||void 0===u?void 0:u.actions)||void 0===m?void 0:m.add)||void 0===d?void 0:d.label}},t)}),r(rr,{render:v,reset:()=>P(x),valid:F(e=>f(ot(e,a)),h),actions:y.actions})]})]}))});export{wt as BooleanInput,Rt as CodeInput,Nt as Collapse,nr as Form,It as MarkdownInput,At as ObjectInput,Ft as SelectInput,Bt as SingleLineCode,Re as constraints,be as format,ve as type};
package/package.json CHANGED
@@ -1,10 +1,14 @@
1
1
  {
2
2
  "name": "@maif/react-forms",
3
3
  "description": "Build react safe forms as fast as possible",
4
- "version": "1.6.12",
4
+ "version": "1.6.13",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
7
7
  "source": "src/index.ts",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/MAIF/react-forms"
11
+ },
8
12
  "author": "MAIF team",
9
13
  "keywords": [
10
14
  "react",
@@ -33,11 +37,9 @@
33
37
  "scripts": {
34
38
  "build": "tsc --emitDeclarationOnly && NODE_ENV=production rollup -c",
35
39
  "dev": "tsc --emitDeclarationOnly && rollup -c -w",
36
- "test": "jest && npm run cypress:headless",
40
+ "test": "jest && npm run playwright-test",
37
41
  "sandbox": "cd examples && npm run start:test",
38
- "cypress:run-headless": "cypress run",
39
- "cypress:open": "cypress open",
40
- "cypress:headless": "start-server-and-test sandbox http-get://127.0.0.1:3000/react-forms cypress:run-headless",
42
+ "playwright-test": "playwright test --workers 1 --trace on",
41
43
  "tdd": "jest --watch"
42
44
  },
43
45
  "jest": {
@@ -59,7 +61,8 @@
59
61
  ]
60
62
  },
61
63
  "peerDependencies": {
62
- "react": ">=17.0.2"
64
+ "react": ">=17.0.2",
65
+ "react-dom": ">=17.0.2"
63
66
  },
64
67
  "devDependencies": {
65
68
  "@babel/cli": "^7.17.6",
@@ -67,6 +70,7 @@
67
70
  "@babel/preset-env": "^7.18.9",
68
71
  "@babel/preset-react": "^7.16.7",
69
72
  "@babel/preset-typescript": "^7.18.6",
73
+ "@playwright/test": "^1.58.2",
70
74
  "@rollup/plugin-babel": "^5.3.1",
71
75
  "@rollup/plugin-commonjs": "^21.0.2",
72
76
  "@rollup/plugin-json": "^4.1.0",
@@ -74,14 +78,14 @@
74
78
  "@rollup/plugin-typescript": "^8.3.2",
75
79
  "@testing-library/cypress": "^8.0.3",
76
80
  "@testing-library/jest-dom": "^5.11.4",
77
- "@testing-library/react": "^11.2.7",
81
+ "@testing-library/react": "^16.0.0",
78
82
  "@testing-library/user-event": "^12.1.10",
79
83
  "@types/jest": "^28.1.6",
80
84
  "@types/lodash.debounce": "4.0.7",
81
85
  "@types/node": "^16.3.0",
82
86
  "@types/object-hash": "^2.2.1",
83
- "@types/react": "^17.0.14",
84
- "@types/react-dom": "^17.0.9",
87
+ "@types/react": "^19.0.0",
88
+ "@types/react-dom": "^19.0.0",
85
89
  "@types/showdown": "^2.0.0",
86
90
  "@types/uuid": "^8.3.4",
87
91
  "@typescript-eslint/eslint-plugin": "^5.26.0",
@@ -96,8 +100,8 @@
96
100
  "dirty-chai": "^2.0.1",
97
101
  "jest": "^28.1.3",
98
102
  "jest-environment-jsdom": "^28.1.3",
99
- "react": "^17.0.2",
100
- "react-dom": "^17.0.2",
103
+ "react": "^19.0.0",
104
+ "react-dom": "^19.0.0",
101
105
  "rollup": "^2.70.1",
102
106
  "rollup-plugin-analyzer": "^4.0.0",
103
107
  "rollup-plugin-command": "1.1.3",
@@ -115,7 +119,7 @@
115
119
  "start-server-and-test": "^1.14.0",
116
120
  "style-loader": "2.0.0",
117
121
  "transform-loader": "0.2.4",
118
- "typescript": "^4.3.5"
122
+ "typescript": "^5.5.0"
119
123
  },
120
124
  "dependencies": {
121
125
  "@codemirror/basic-setup": "^0.19.1",
@@ -128,10 +132,10 @@
128
132
  "@emotion/react": "^11.9.3",
129
133
  "@emotion/styled": "^11.9.3",
130
134
  "@fortawesome/fontawesome-free": "^5.15.3",
131
- "@hookform/resolvers": "2.4.0",
132
- "@mui/material": "^5.8.7",
133
- "@mui/system": "^5.8.7",
134
- "@mui/x-date-pickers": "^5.0.0-alpha.7",
135
+ "@hookform/resolvers": "^3.9.0",
136
+ "@mui/material": "^5.16.14",
137
+ "@mui/system": "^5.16.14",
138
+ "@mui/x-date-pickers": "^7.29.0",
135
139
  "classnames": "2.3.0",
136
140
  "date-fns": "^2.28.0",
137
141
  "fast-deep-equal": "^3.1.3",
@@ -139,10 +143,10 @@
139
143
  "lodash.debounce": "4.0.8",
140
144
  "moment": "2.29.4",
141
145
  "object-hash": "3.0.0",
142
- "react-feather": "2.0.9",
143
- "react-hook-form": "^7.33.1",
144
- "react-select": "5.2.1",
145
- "react-tooltip": "4.2.21",
146
+ "react-feather": "2.0.10",
147
+ "react-hook-form": "^7.54.0",
148
+ "react-select": "^5.10.0",
149
+ "react-tooltip": "^5.28.0",
146
150
  "showdown": "1.9.1",
147
151
  "uuid": "8.3.2",
148
152
  "yup": "0.32.11"