@maif/react-forms 1.3.1-rc.7 → 1.3.1-rc.8
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/README.md +0 -1
- package/lib/index.d.ts +1 -2
- package/lib/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -253,7 +253,6 @@ Some schema properties can be basic value or function which return basic value.
|
|
|
253
253
|
- **value** (optional): default value
|
|
254
254
|
- **inputWrapper** (optional): A custom component to wrap all input of the form
|
|
255
255
|
- **className** (optional): A custom class name for the form
|
|
256
|
-
- **style** (optional): A custom json style object for the form
|
|
257
256
|
- **footer** (optional): a component to override the footer provided
|
|
258
257
|
```javascripts
|
|
259
258
|
{({ reset, valid }) => {
|
package/lib/index.d.ts
CHANGED
|
@@ -419,12 +419,11 @@ declare type FormProps = {
|
|
|
419
419
|
onSubmit: (obj: {
|
|
420
420
|
[x: string]: any;
|
|
421
421
|
}) => void;
|
|
422
|
-
onError?: () => void;
|
|
422
|
+
onError?: (errors: Object, e?: React$1.BaseSyntheticEvent) => void;
|
|
423
423
|
footer?: (props: {
|
|
424
424
|
reset: () => void;
|
|
425
425
|
valid: () => void;
|
|
426
426
|
}) => JSX.Element;
|
|
427
|
-
style?: object;
|
|
428
427
|
className?: string;
|
|
429
428
|
options?: Option;
|
|
430
429
|
};
|
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 f,useFieldArray as d,Controller as y,useForm as b,FormProvider as v}from"react-hook-form";import h 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 C from"@mui/material/TextField";import _ from"prop-types";import N from"classnames";import V from"react-select/creatable";import S from"react-select";import{EditorState as P}from"@codemirror/state";import{javascript as T}from"@codemirror/lang-javascript";import{html as M}from"@codemirror/lang-html";import{json as z}from"@codemirror/lang-json";import{css as W}from"@codemirror/lang-css";import{markdown as A}from"@codemirror/lang-markdown";import{EditorView as F,highlightSpecialChars as L,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 fe}from"uuid";const de={string:"string",number:"number",bool:"bool",date:"date",object:"object",file:"file",json:"json"};Object.values(de);const ye={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(ye);const be=(e="Value required")=>t=>t.required(e),ve=(e="That is not a valid url")=>t=>t.url(e),he=(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(Fe(e),t),Ee=(e,t="Max value is required")=>r=>r.max(Fe(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),Ce=(e,t=`This field must be less than ${e}`)=>(r,n,a)=>("number"!=typeof e&&a.push([n,e]),r.lessThan(Fe(e),t)),_e=(e,t=`This field must be more than ${e}`)=>(r,n,a)=>("number"!=typeof e&&a.push([n,e]),r.moreThan(Fe(e),t)),Ne=(e,t=`The size of this collection must be ${e}`)=>r=>r.length(Fe(e),t),Ve=(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)))))},Pe=(e,t=`size is excedeed ${e}`)=>r=>r.test("fileSize",t,(t=>!t.length||t[0].size<=Fe(e))),Te=(e,t="Test failed",r)=>n=>n.test(e,t,r),Me=(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})},ze=(e,t=`This value must be one of ${e.join(", ")}`)=>r=>r.oneOf(e.map(Fe),t),We=(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),Fe=e=>(null==e?void 0:e.ref)?Ae(e.ref):e,Le={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"})=>he(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}`})=>Ce(e,t),moreThan:({ref:e,message:t=`This field must be more than ${e}`})=>_e(e,t),length:({ref:e,message:t=`The size of this collection must be ${e}`})=>Ne(e,t),supportedFormat:({arrayOfValues:e,message:t="Unsupported File Format"})=>Ve(e,t),unsupportedFormat:({arrayOfValues:e,message:t="Unsupported File Format"})=>Se(e,t),maxSize:({ref:e,message:t=`size is excedeed ${e}`})=>Pe(e,t),test:e=>Te(e.name,e.message,e.test),when:({ref:e,test:t,then:r=[],otherwise:n=[]})=>Me(e,t,r,n),oneOf:({arrayOfValues:e,message:t=`This value must be one of ${e.join(", ")}`})=>ze(e,t),blacklist:({arrayOfValues:e,message:t=`This value can't include the following values ${e.join(", ")}`})=>We(e,t),ref:e=>Ae(e.ref)};var De=Object.freeze({__proto__:null,required:be,url:ve,email:he,uuid:ge,matches:Oe,min:je,max:Ee,positive:we,negative:ke,integer:xe,lessThan:Ce,moreThan:_e,length:Ne,supportedFormat:Ve,unsupportedFormat:Se,maxSize:Pe,test:Te,when:Me,oneOf:ze,blacklist:We,ref:Ae,jsonConstraints:Le});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={[de.string]:t=>e.string().nullable().optional().typeError(t||"Value must be a string"),[de.number]:t=>e.number().nullable().optional().transform((e=>isNaN(e)?null:e)).typeError(t||"Value must be a number"),[de.bool]:()=>e.bool().nullable().optional(),[de.object]:()=>e.object().nullable().optional(),[de.date]:t=>e.date().nullable().optional().typeError(t||"Value must be a date"),[de.file]:()=>e.mixed(),[de.json]:()=>e.mixed()},Be=(t,r,n,a)=>{const{constraints:o=[]}=t;if(t.array||t.isMulti){let l,i=e.array();if(t.schema){const r=[];l=e.object().shape(Je(t.flow||Object.keys(t.schema),t.schema,r,a).shape,r),i=i.of(e.object().shape({value:l}))}return o.reduce(((e,t)=>He(t,e,r,n)),i)}if(t.type===de.object&&t.schema){if(!Object.keys(t.schema).length)return e.object();const l=Je(t.flow||Object.keys(t.schema),t.schema,n,a);return o.reduce(((e,t)=>He(t,e,r,n)),e.object().shape(l.shape,n))}if(t.type===de.object&&t.conditionalSchema){const{schema:l,flow:i}=$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(i||Object.keys(l),l,n,a);return o.reduce(((e,t)=>He(t,e,r,n)),e.object().shape(s.shape,n))}return o.reduce(((e,t)=>He(t,e,r,n)),qe[t.type]())},He=(e,t,r,n)=>"function"==typeof e?e(t,r,n):Le[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=>h(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)||{})}}))}):"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:_.string,size:_.oneOfType([_.string,_.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:_.string,size:_.oneOfType([_.string,_.number])},mt.displayName="Upload";var ft=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 dt(){return dt=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},dt.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}ft.propTypes={color:_.string,size:_.oneOfType([_.string,_.number])},ft.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=yt(e,["color","size"]);return r.createElement("svg",dt({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"}))}));bt.propTypes={color:_.string,size:_.oneOfType([_.string,_.number])},bt.displayName="ChevronUp";const vt=({onChange:e,value:t,readOnly:n,className:a,errorDisplayed:o})=>{const l=t=>{n||null==e||e(t)};let i=N("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}),s=()=>l(!0);return t&&(s=()=>l(!1)),r.createElement("input",{type:"checkbox",className:i,onChange:s})};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 gt(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 Ot=l((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=gt(e,["color","size"]);return r.createElement("svg",ht({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 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}Ot.propTypes={color:_.string,size:_.oneOfType([_.string,_.number])},Ot.displayName="EyeOff";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:"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"}))}));wt.propTypes={color:_.string,size:_.oneOfType([_.string,_.number])},wt.displayName="Eye";const kt=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:N({"mrf-collapse_error":e.errored})}),r.createElement("div",{className:"mrf-cursor_pointer mrf-flex mrf-jc_between",onClick:a},r.createElement("span",{className:N("mrf-collapse_label",{"mrf-collapse_error":e.errored})},e.label),r.createElement("button",{type:"button",className:N("mrf-btn","mrf-btn_sm","mrf-ml_5",{"mrf-collapse_error":e.errored}),onClick:a},!!t&&r.createElement(wt,{size:16}),!t&&r.createElement(Ot,{size:16}))),r.createElement("div",{className:N("mrf-ml_10",{"mrf-display__none":!!t,"mrf-flex":!!e.inline,"mrf-collapse__inline":!!e.inline})},e.children),e.lineEnd&&r.createElement("hr",null))},xt=(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=>xt(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)})},Ct=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,f]=i();a((()=>{!l&&c.length&&f(xt(e.value||e.defaultValue,c,e.isMulti))}),[e.value,c,e.defaultValue,l]),a((()=>{if(!e.optionsFrom||"function"!=typeof e.optionsFrom&&c.length)m((e.possibleValues||[]).map((e=>n(e)))),setTimeout((()=>s(!1)),250);else{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:t(),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),f(e.find((e=>Array.isArray(u)?u.find((t=>t.value===e.value)):e.value===(u?u.value:u)))||null),s(!1)}))}}}),[e.optionsFrom,e.possibleValues,e.onChange]);const d=t=>{var r,n;f(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)},y=(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(xt(t,c));m([...c,n]),e.isMulti?d([...u,n]):d(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:N(e.className,"mrf-btn mrf-btn_grey mrf-ml_5",{active:a}),onClick:()=>(t=>{if(e.isMulti){const e=u;return e.includes(t)?d(e.filter((e=>e.value!==t.value))):d([...e,t])}return d(t)})(t)},t.label)}))):e.createOption?r.createElement(V,Object.assign({},e,{name:`${e.label}-search`,isLoading:l,value:u,isDisabled:l||e.disabled,placeholder:e.placeholder,onChange:d,options:c,onCreateOption:t=>y(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:d,classNamePrefix:"react-form-select",className:e.className}))};function _t(){return _t=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},_t.apply(this,arguments)}function Nt(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 Vt=l((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=Nt(e,["color","size"]);return r.createElement("svg",_t({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 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 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}Vt.propTypes={color:_.string,size:_.oneOfType([_.string,_.number])},Vt.displayName="PlusCircle";var Tt=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",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:"8",y1:"12",x2:"16",y2:"12"}))}));Tt.propTypes={color:_.string,size:_.oneOfType([_.string,_.number])},Tt.displayName="MinusCircle";const Mt=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(Vt,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-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(Tt,null)),c===Object.keys(r).length-1&&t.createElement("button",{disabled:e.disabled,type:"button",className:"mrf-flex mrf-btn mrf-btn_blue mrf-btn_sm mrf-ml_5",onClick:l},t.createElement(Vt,null))))))},zt={javascript:T,css:W,json:z,html:M,markdown:A};function Wt(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=F.theme({"&":Object.assign({},l)}),m=[a?G():G({formatNumber:()=>""}),Q(),L(),q(),zt[t](),H(),D(),$(),P.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,P.tabSize.of(r),Y.of(" ".repeat(r))].filter((e=>!!e)),u=P.create({extensions:[...m,F.updateListener.of((e=>{try{if(e.docChanged){const t=e.state.doc.toString();null==i||i(t)}}catch(e){}})),F.editable.of(!n)],doc:null==s?"":"object"==typeof s?s.value:s});return new F({state:u,parent:e})}function At({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:f}){const d=n(),[y,b]=i();return a((()=>{const r=Wt(d.current,o,l,s,c,m,u,e,t);d.current.addEventListener("keydown",(e=>{e.stopImmediatePropagation()})),f&&f(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((()=>{y&&("object"==typeof t?JSON.stringify(t,null,2):t)!==y.state.doc.toString()&&y.dispatch({changes:{from:0,to:y.state.doc.length,insert:null==t?"":"object"==typeof t?JSON.stringify(t,null,2):t}})}),[t]),r.createElement("div",{className:p,ref:d})}const Ft=new me.Converter({omitExtraWLInCodeBlocks:!0,ghCompatibleHeaderId:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,tables:!0,tasklists:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!0,emoji:!0,ghMentionsLink:"/{u}"}),Lt=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:""}]},{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:N(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:N("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(At,Object.assign({},e,{mode:"markdown",setRef:e=>l.current=e})),t&&r.createElement("div",{className:"mrf-preview",dangerouslySetInnerHTML:{__html:Ft.makeHtml(e.value||"")}}))};function Dt({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((()=>{Wt(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 $t(){return $t=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},$t.apply(this,arguments)}function Rt(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=Rt(e,["color","size"]);return r.createElement("svg",$t({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"}))}));It.propTypes={color:_.string,size:_.oneOfType([_.string,_.number])},It.displayName="HelpCircle";const qt=({entry:e,realEntry:t,children:n,render:a,functionalProperty:o,step:l,informations:i,className:s})=>{const{formState:c}=p();if("object"==typeof e)return n;const m=e.split(".").reduce(((e,t)=>e&&e[t]),c.errors),u=e.split(".").reduce(((e,t)=>e&&e[t]),c.dirtyFields),f=e.split(".").reduce(((e,t)=>e&&e[t]),c.touchedFields),d=c.isSubmitted||u||f;if(!o(e,void 0===(null==l?void 0:l.visible)||l.visible,i,m))return null;const y=o(e,null===(null==l?void 0:l.label)?null:(null==l?void 0:l.label)||t||e,i),b=fe();return a?a({entry:e,label:y,error:m,help:null==l?void 0:l.help,children:n}):r.createElement("div",{className:`mrf-mt_10 ${s||""}`,style:{position:"relative"}},y&&r.createElement("label",{className:"mrf-flex mrf-ai_center mrf-mb_5",htmlFor:e},r.createElement("span",null,y),(null==l?void 0:l.help)&&r.createElement(r.Fragment,null,r.createElement(pe,{html:!0,place:"bottom",id:b}),r.createElement("span",{className:"mrf-flex mrf-ai_center","data-html":!0,"data-tip":null==l?void 0:l.help,"data-for":b},r.createElement(It,{style:{color:"gray",width:17,marginLeft:".5rem",cursor:"help"}})))),n,m&&r.createElement("div",{className:N("mrf-feedback",{"mrf-txt_red":!!d})},m.message))},Bt=t.memo((e=>e.render?e.render(Object.assign(Object.assign({},e.field),{error:e.error,informations:e.informations})):e.children),((e,t)=>!t.deactivateReactMemo&&(e.field.value===t.field.value&&t.errorDisplayed===e.errorDisplayed&&Qe(t.step)===Qe(e.step)))),Ht=e=>{const{step:r,entry:n,realEntry:a,children:o,component:l,errorDisplayed:i=!1,informations:s,deactivateReactMemo:c,inputWrapper:m}=e,{field:u}=f({name:n}),{getValues:d,setValue:y,formState:{errors:b}}=p(),v=n.split(".").reduce(((e,t)=>e&&e[t]),b),h=(e,t)=>"function"==typeof t?t({rawValues:d(),value:d(e),informations:s,error:v,getValue:e=>d(e)}):t,g=Object.assign(Object.assign({name:u.name},r.props),{id:n,readOnly:h(n,r.disabled)?"readOnly":null,placeholder:r.placeholder,onChange:e=>{const t=e?e.target?e.target.value||null:e:r.type===de.bool||r.type===de.number&&0===u.value?e:null;u.onChange(t),$e(r.onChange).map((e=>e({rawValues:d(),value:t,setValue:y})))},value:u.value});return t.createElement(qt,{key:`collapse-${n}`,entry:n,realEntry:a,functionalProperty:h,step:r,render:m,informations:s},t.createElement(Bt,{render:r.render,step:r,field:Object.assign({setValue:(e,t)=>y(e,t),rawValues:d(),getValue:e=>d(e)},u),error:v,errorDisplayed:i,informations:s,deactivateReactMemo:c},l?l(u,g):t.cloneElement(o,Object.assign({},g))))};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 Ut(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 Kt=l((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=Ut(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("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"}))}));Kt.propTypes={color:_.string,size:_.oneOfType([_.string,_.number])},Kt.displayName="Trash2";const Yt=({entry:e,step:t,component:n,disabled:a})=>{const{getValues:o,setValue:l,control:i,trigger:s,formState:c}=p(),m=o(e),u=e.split(".").reduce(((e,t)=>e&&e[t]),c.errors),f=e.split(".").reduce(((e,t)=>e&&e[t]),c.dirtyFields),y=e.split(".").reduce(((e,t)=>e&&e[t]),c.touchedFields),b=!!u&&(c.isSubmitted||f||y),{fields:v,append:h,remove:g}=d({control:i,name:e});return r.createElement(r.Fragment,null,v.map(((t,o)=>r.createElement("div",{key:t.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:t.id},t),{defaultValue:m[o]}),o)),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:()=>{g(o),s(e)}},r.createElement(Kt,{size:16})))))),r.createElement("div",{className:"mrf-flex mrf-jc_flex_end"},r.createElement("button",{type:"button",className:N("mrf-btn","mrf-btn_blue","mrf-btn_sm","mrf-mt_5",{"mrf-input__invalid":!!b}),onClick:()=>{const r=t.type===de.object?et(t.flow,t.schema):Ze();h({value:t.addableDefaultValue||r}),$e(t.onChange).map((t=>t({rawValues:o(),value:o(e),setValue:l})))},disabled:a},"Add"),u&&r.createElement("div",{className:"mrf-invalid-feedback"},u.message)))},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(kt,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})})))},Xt=e=>{let{entry:t,realEntry:o,step:l,schema:c,inputWrapper:m,httpClient:u,functionalProperty:f,informations:d}=e;const b=p(),{formState:{errors:v,dirtyFields:h,touchedFields:g,isSubmitted:_},control:V,getValues:S,setValue:P}=b,{watch:T}=b,[M,z]=i(Qe(S())),W=t.split(".").reduce(((e,t)=>e&&e[t]),v),A=t.split(".").reduce(((e,t)=>e&&e[t]),h),F=t.split(".").reduce(((e,t)=>e&&e[t]),g),L=!!W&&(_||A||F);if(l=l,l.onAfterChange){const e=T(),r=t.replace("[",".").replace("]","").split(".").reduce(((e,t)=>e&&e[t]),e)||{},o=(e=>{const t=n();return a((()=>{t.current=e}),[e]),t.current})(rt(r,c)),i=rt(r,c);(!O(i,o)||void 0!==i&&void 0===o)&&l.onAfterChange({entry:t,value:S(t),rawValues:S(),previousValue:o,getValue:e=>S(e),setValue:P,onChange:e=>P(t,e),informations:d})}const D=s((()=>{const e="function"==typeof l.visible,t="function"==typeof l.disabled,r="function"==typeof l.label;return!!("function"==typeof l.deps?l.deps(d):l.deps)||e||t||r||!!l.render||!!l.conditionalSchema}),[Qe(c)]);if(D){const e="function"==typeof l.deps?l.deps(d):l.deps,t=e?T(e):T(),r=Qe(t);r!==M&&z(r)}if(l.array)return r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement(Yt,{entry:t,step:l,disabled:f(t,l.disabled||!1,d,W),component:(e,n)=>{var a,i,s,p,y,b,v,h,g;return r.createElement(Xt,{entry:`${t}.${n}.value`,step:Object.assign(Object.assign({},c[o||t]),{label:(null===(a=l.item)||void 0===a?void 0:a.label)||null,render:null===(i=l.item)||void 0===i?void 0:i.render,onChange:null===(s=l.item)||void 0===s?void 0:s.onChange,array:(null===(p=l.item)||void 0===p?void 0:p.array)||!1,onAfterChange:null===(y=l.item)||void 0===y?void 0:y.onAfterChange,visible:null===(b=l.item)||void 0===b?void 0:b.visible,disabled:null===(v=l.item)||void 0===v?void 0:v.disabled,deps:null===(h=l.item)||void 0===h?void 0:h.deps}),schema:c,inputWrapper:m,httpClient:u,defaultValue:null===(g=e.defaultValue)||void 0===g?void 0:g.value,index:n,functionalProperty:f,informations:{path:`${null==d?void 0:d.path}.${n}.value`,parent:d,index:n}})}}));switch(l.type){case de.string:switch(l.format){case ye.text:return r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement("textarea",{className:N("mrf-input",l.className,{"mrf-mrf-input__invalid":!!L})}));case ye.code:case ye.singleLineCode:const e=l.format===ye.code?At:Dt;return r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement(e,{className:N(null==l?void 0:l.className,{"mrf-input__invalid":!!W})}));case ye.markdown:return r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement(Lt,{className:N(l.className,{"mrf-input__invalid":!!L})}));case ye.buttonsSelect:case ye.select:return r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement(Ct,Object.assign({className:N("mrf-flex_grow_1",l.className,{"mrf-input__invalid":!!L}),disabled:f(t,l.disabled||!1,d,W)},l.props,{possibleValues:l.options,httpClient:u,isMulti:l.isMulti,createOption:l.createOption,onCreateOption:l.onCreateOption,transformer:l.transformer,buttons:l.format===ye.buttonsSelect,optionsFrom:l.optionsFrom})));default:return r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement("input",{type:l.format||"text",className:N("mrf-input",l.className,{"mrf-input__invalid":!!L})}))}case de.number:switch(l.format){case ye.buttonsSelect:case ye.select:return r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement(Ct,Object.assign({className:N("mrf-content",l.className,{"mrf-input__invalid":!!L})},l.props,{possibleValues:l.options,httpClient:u,isMulti:l.isMulti,createOption:l.createOption,onCreateOption:l.onCreateOption,transformer:l.transformer,buttons:l.format===ye.buttonsSelect,optionsFrom:l.optionsFrom})));default:return r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement("input",{type:l.format||"number",className:N("mrf-input",l.className,{"mrf-input__invalid":!!L})}))}case de.bool:return r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement(vt,{className:l.className,errorDisplayed:L}));case de.object:const e=S(t),n=Ye(l.defaultValue)?l.defaultValue:et(l.flow,l.schema);switch(l.format){case ye.buttonsSelect:case ye.select:return r.createElement(Ht,{step:Object.assign(Object.assign({},l),{defaultValue:e||n}),entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement(Ct,Object.assign({className:N("mrf-flex_grow_1",l.className,{"mrf-input__invalid":!!L})},l.props,{possibleValues:l.options,httpClient:u,isMulti:l.isMulti,createOption:l.createOption,onCreateOption:l.onCreateOption,transformer:l.transformer,buttons:l.format===ye.buttonsSelect,optionsFrom:l.optionsFrom})));case ye.form:const a=$e(l.flow).getOrElse($e(l.schema).map((e=>Object.keys(e))).getOrElse([]));return r.createElement(Ht,{step:Object.assign(Object.assign({},l),{defaultValue:e||n}),entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement(Gt,{render:l.render,rawValues:S(),value:S(t),onChange:e=>P(t,e,{shouldValidate:!0}),setValue:(e,t)=>P(e,t),getValue:e=>S(e),informations:d},r.createElement(Zt,{schema:l.schema,flow:a,step:l,parent:t,inputWrapper:m,maybeCustomHttpClient:u,value:S(t)||n,functionalProperty:f,errorDisplayed:L,informations:d})));case ye.code:return r.createElement(Ht,{step:Object.assign(Object.assign({},l),{defaultValue:e||n}),entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m,component:(e,t)=>r.createElement(At,Object.assign({},t,{className:N(null==l?void 0:l.className,{"mrf-input__invalid":!!W}),onChange:t=>{let r;try{r=JSON.parse(t)}catch(e){r=t}e.onChange(r),$e(null==l?void 0:l.onChange).map((e=>e({rawValues:S(),value:r,setValue:P})))},value:null===e.value?null:"object"==typeof e.value?JSON.stringify(e.value,null,2):e.value}))});default:return r.createElement(Ht,{step:Object.assign(Object.assign({},l),{defaultValue:e||n}),entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement(Mt,{className:N(l.className,{"mrf-input__invalid":!!L})}))}case de.date:switch(l.format){case ye.datetime:return r.createElement(Ht,{step:l,entry:t,realEntry:o,informations:d,deactivateReactMemo:D,inputWrapper:m,component:e=>r.createElement(E,{dateAdapter:j},r.createElement(x,{value:e.value,onChange:t=>{e.onChange(t),$e(l.onChange).map((e=>e({rawValues:S(),value:t,setValue:P})))},renderInput:e=>r.createElement(C,Object.assign({},e))}))});case ye.time:return r.createElement(Ht,{step:l,entry:t,realEntry:o,informations:d,deactivateReactMemo:D,inputWrapper:m,component:e=>r.createElement(E,{dateAdapter:j},r.createElement(k,{value:e.value,onChange:t=>{e.onChange(t),$e(l.onChange).map((e=>e({rawValues:S(),value:t,setValue:P})))},renderInput:e=>r.createElement(C,Object.assign({},e))}))});default:return r.createElement(Ht,{step:l,entry:t,realEntry:o,informations:d,deactivateReactMemo:D,inputWrapper:m,component:e=>r.createElement(E,{dateAdapter:j},r.createElement(w,{value:e.value,onChange:t=>{e.onChange(t),$e(l.onChange).map((e=>e({rawValues:S(),value:t,setValue:P})))},renderInput:e=>r.createElement(C,Object.assign({},e))}))})}case de.file:return r.createElement(y,{name:t,control:V,render:({field:e})=>r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement((({onChange:n})=>{const[a,o]=i(!1),[s,c]=i(void 0),m=e.value||[];return r.createElement("div",{className:N("mrf-flex","mrf-ai_center",null==l?void 0:l.className,{"mrf-input__invalid":!!W})},r.createElement("input",{ref:e=>c(e),type:"file",multiple:!0,className:"mrf-d_none",onChange:e=>{const t=e.target.files;o(!0),n&&n(t?[...t]:[]),o(!1)}}),r.createElement("button",{type:"button",className:"mrf-btn mrf-btn_sm mrf-flex mrf-ai_center",disabled:a||f(t,(null==l?void 0:l.disabled)||!1,d,W),onClick:()=>{null==s||s.click()}},a&&r.createElement(it,null),!a&&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 de.json:return r.createElement(Ht,{step:l,entry:t,realEntry:o,informations:d,deactivateReactMemo:D,inputWrapper:m,component:(e,t)=>r.createElement(At,Object.assign({},t,{className:N(null==l?void 0:l.className,{"mrf-input__invalid":!!W}),onChange:t=>{e.onChange(t),$e(null==l?void 0:l.onChange).map((e=>e({rawValues:S(),value:t,setValue:P})))},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:f})=>{var d;const{getValues:y,control:b}=p(),[v,h]=i(!!c.collapsed);u({name:(null===(d=null==c?void 0:c.conditionalSchema)||void 0===d?void 0:d.ref)||"",control:b});const g=$e(c.conditionalSchema).map((e=>{const t=$e(e.ref).map((e=>y(e))).getOrNull(),r=y(),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}),O=g.flow.reduce(((e,t)=>[...e,{step:"string"==typeof t?g.schema[t]:g.schema[t.label],entry:t}]),[]),j=O.length>=1&&null!==c.label;return r.createElement("div",{className:N(c.className,{"mrf-nestedform__border":j,"mrf-border__error":!!l}),style:{position:"relative"}},!!c.collapsable&&g.flow.length>1&&v&&r.createElement(ft,{size:30,className:"mrf-cursor_pointer",style:{position:"absolute",top:-35,right:0,zIndex:100},strokeWidth:"2",onClick:()=>h(!v)}),!!c.collapsable&&g.flow.length>1&&!v&&r.createElement(bt,{size:30,className:"mrf-cursor_pointer",style:{position:"absolute",top:-35,right:0,zIndex:100},strokeWidth:"2",onClick:()=>h(!v)}),v&&!!c.collapsable&&"function"==typeof c.collapsable&&c.collapsable({rawValues:y(),getValue:e=>y(e),value:s}),("function"!=typeof c.collapsable||!v)&&O.map((({step:t,entry:l},i)=>v&&!t.visibleOnCollapse?null:"object"==typeof l?r.createElement(Qt,{key:i,entry:l,schema:e,inputWrapper:a,httpClient:o,functionalProperty:m}):t||"string"!=typeof l?r.createElement(Xt,{key:`step.${l}.${i}`,entry:`${n}.${l}`,realEntry:l,step:g.schema[l],schema:g.schema,inputWrapper:a,httpClient:o,defaultValue:s&&s[l],functionalProperty:m,informations:{path:`${null==f?void 0:f.path}.${l}`,key:l,parent:f}}):(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,f,d,y;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===(f=null===(p=e.actions)||void 0===p?void 0:p.reset)||void 0===f?void 0:f.label)||"Reset"),b&&r.createElement("button",{className:"mrf-btn mrf-btn_green mrf-ml_10",type:"submit"},(null===(y=null===(d=e.actions)||void 0===d?void 0:d.submit)||void 0===y?void 0:y.label)||"Save"))},tr=r.forwardRef((function({schema:t,flow:n,value:o,inputWrapper:l,onSubmit:s,onError:u=(()=>{}),footer:p,style:f={},className:d,options:y={}},h){const g=n||Object.keys(t),O=(e,t)=>y.httpClient?y.httpClient(e,t):fetch(e,{method:t,headers:{Accept:"application/json","Content-Type":"application/json"}}),j=et(g,t,o),E=b({resolver:(r,n,a)=>m((r=>{const{shape:n,dependencies:a}=Je(g,t,[],r);return e.object().shape(n,a)})(r))(r,n,a),shouldFocusError:!1,mode:"onChange",defaultValues:tt(o,j,n,t)}),[w,k]=i(!1),{handleSubmit:x,reset:C,trigger:_}=E,{getValues:N}=E;a((()=>{y.showErrorsOnStart&&_()}),[_,w]),Xe((()=>{C(Object.assign({},tt(o,j,n,t)))}),[o,t,n]);const V=(e,t,r,n)=>"function"==typeof t?t({rawValues:N(),value:N(e),informations:r,getValue:e=>N(e),error:n}):t;return c(h,(()=>({handleSubmit:()=>x((e=>{const r=rt(e,t);s(r)}),u)(),trigger:_,methods:Object.assign(Object.assign({},E),{data:()=>rt(N(),t)})}))),r.createElement(v,Object.assign({},E),(!!y.watch||!!y.autosubmit)&&r.createElement(at,{options:y,control:E.control,schema:t,onSubmit:s,handleSubmit:x,onError:u}),r.createElement("form",{className:d||"mrf-pr_15 mrf-w_100",onSubmit:x((e=>{const r=rt(e,t);s(r)}),u)},g.map(((e,n)=>{if("object"==typeof e)return r.createElement(Qt,{key:n,entry:e,schema:t,inputWrapper:l,httpClient:O,functionalProperty:V});const a=t[e];if(!a&&"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 o={path:e,key:e};return r.createElement(Xt,{key:n,entry:e,step:a,schema:t,inputWrapper:l,httpClient:O,functionalProperty:V,informations:o})})),r.createElement(er,{render:p,reset:()=>C(j),valid:x((e=>s(rt(e,t))),u),actions:y.actions})))}));export{vt as BooleanInput,At as CodeInput,kt as Collapse,tr as Form,Lt as MarkdownInput,Mt as ObjectInput,Ct as SelectInput,Dt as SingleLineCode,De as constraints,ye as format,de as type};
|
|
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 f,useFieldArray as d,Controller as y,useForm as b,FormProvider as v}from"react-hook-form";import h 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 C from"@mui/material/TextField";import _ from"prop-types";import N from"classnames";import V from"react-select/creatable";import S from"react-select";import{EditorState as P}from"@codemirror/state";import{javascript as T}from"@codemirror/lang-javascript";import{html as M}from"@codemirror/lang-html";import{json as z}from"@codemirror/lang-json";import{css as W}from"@codemirror/lang-css";import{markdown as A}from"@codemirror/lang-markdown";import{EditorView as F,highlightSpecialChars as L,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 fe}from"uuid";const de={string:"string",number:"number",bool:"bool",date:"date",object:"object",file:"file",json:"json"};Object.values(de);const ye={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(ye);const be=(e="Value required")=>t=>t.required(e),ve=(e="That is not a valid url")=>t=>t.url(e),he=(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(Fe(e),t),Ee=(e,t="Max value is required")=>r=>r.max(Fe(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),Ce=(e,t=`This field must be less than ${e}`)=>(r,n,a)=>("number"!=typeof e&&a.push([n,e]),r.lessThan(Fe(e),t)),_e=(e,t=`This field must be more than ${e}`)=>(r,n,a)=>("number"!=typeof e&&a.push([n,e]),r.moreThan(Fe(e),t)),Ne=(e,t=`The size of this collection must be ${e}`)=>r=>r.length(Fe(e),t),Ve=(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)))))},Pe=(e,t=`size is excedeed ${e}`)=>r=>r.test("fileSize",t,(t=>!t.length||t[0].size<=Fe(e))),Te=(e,t="Test failed",r)=>n=>n.test(e,t,r),Me=(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})},ze=(e,t=`This value must be one of ${e.join(", ")}`)=>r=>r.oneOf(e.map(Fe),t),We=(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),Fe=e=>(null==e?void 0:e.ref)?Ae(e.ref):e,Le={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"})=>he(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}`})=>Ce(e,t),moreThan:({ref:e,message:t=`This field must be more than ${e}`})=>_e(e,t),length:({ref:e,message:t=`The size of this collection must be ${e}`})=>Ne(e,t),supportedFormat:({arrayOfValues:e,message:t="Unsupported File Format"})=>Ve(e,t),unsupportedFormat:({arrayOfValues:e,message:t="Unsupported File Format"})=>Se(e,t),maxSize:({ref:e,message:t=`size is excedeed ${e}`})=>Pe(e,t),test:e=>Te(e.name,e.message,e.test),when:({ref:e,test:t,then:r=[],otherwise:n=[]})=>Me(e,t,r,n),oneOf:({arrayOfValues:e,message:t=`This value must be one of ${e.join(", ")}`})=>ze(e,t),blacklist:({arrayOfValues:e,message:t=`This value can't include the following values ${e.join(", ")}`})=>We(e,t),ref:e=>Ae(e.ref)};var De=Object.freeze({__proto__:null,required:be,url:ve,email:he,uuid:ge,matches:Oe,min:je,max:Ee,positive:we,negative:ke,integer:xe,lessThan:Ce,moreThan:_e,length:Ne,supportedFormat:Ve,unsupportedFormat:Se,maxSize:Pe,test:Te,when:Me,oneOf:ze,blacklist:We,ref:Ae,jsonConstraints:Le});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={[de.string]:t=>e.string().nullable().optional().typeError(t||"Value must be a string"),[de.number]:t=>e.number().nullable().optional().transform((e=>isNaN(e)?null:e)).typeError(t||"Value must be a number"),[de.bool]:()=>e.bool().nullable().optional(),[de.object]:()=>e.object().nullable().optional(),[de.date]:t=>e.date().nullable().optional().typeError(t||"Value must be a date"),[de.file]:()=>e.mixed(),[de.json]:()=>e.mixed()},Be=(t,r,n,a)=>{const{constraints:o=[]}=t;if(t.array||t.isMulti){let l,i=e.array();if(t.schema){const r=[];l=e.object().shape(Je(t.flow||Object.keys(t.schema),t.schema,r,a).shape,r),i=i.of(e.object().shape({value:l}))}return o.reduce(((e,t)=>He(t,e,r,n)),i)}if(t.type===de.object&&t.schema){if(!Object.keys(t.schema).length)return e.object();const l=Je(t.flow||Object.keys(t.schema),t.schema,n,a);return o.reduce(((e,t)=>He(t,e,r,n)),e.object().shape(l.shape,n))}if(t.type===de.object&&t.conditionalSchema){const{schema:l,flow:i}=$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(i||Object.keys(l),l,n,a);return o.reduce(((e,t)=>He(t,e,r,n)),e.object().shape(s.shape,n))}return o.reduce(((e,t)=>He(t,e,r,n)),qe[t.type]())},He=(e,t,r,n)=>"function"==typeof e?e(t,r,n):Le[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=>h(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)||{})}}))}):"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:_.string,size:_.oneOfType([_.string,_.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:_.string,size:_.oneOfType([_.string,_.number])},mt.displayName="Upload";var ft=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 dt(){return dt=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},dt.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}ft.propTypes={color:_.string,size:_.oneOfType([_.string,_.number])},ft.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=yt(e,["color","size"]);return r.createElement("svg",dt({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"}))}));bt.propTypes={color:_.string,size:_.oneOfType([_.string,_.number])},bt.displayName="ChevronUp";const vt=({onChange:e,value:t,readOnly:n,className:a,errorDisplayed:o})=>{const l=t=>{n||null==e||e(t)};let i=N("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}),s=()=>l(!0);return t&&(s=()=>l(!1)),r.createElement("input",{type:"checkbox",className:i,onChange:s})};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 gt(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 Ot=l((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=gt(e,["color","size"]);return r.createElement("svg",ht({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 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}Ot.propTypes={color:_.string,size:_.oneOfType([_.string,_.number])},Ot.displayName="EyeOff";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:"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"}))}));wt.propTypes={color:_.string,size:_.oneOfType([_.string,_.number])},wt.displayName="Eye";const kt=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:N({"mrf-collapse_error":e.errored})}),r.createElement("div",{className:"mrf-cursor_pointer mrf-flex mrf-jc_between",onClick:a},r.createElement("span",{className:N("mrf-collapse_label",{"mrf-collapse_error":e.errored})},e.label),r.createElement("button",{type:"button",className:N("mrf-btn","mrf-btn_sm","mrf-ml_5",{"mrf-collapse_error":e.errored}),onClick:a},!!t&&r.createElement(wt,{size:16}),!t&&r.createElement(Ot,{size:16}))),r.createElement("div",{className:N("mrf-ml_10",{"mrf-display__none":!!t,"mrf-flex":!!e.inline,"mrf-collapse__inline":!!e.inline})},e.children),e.lineEnd&&r.createElement("hr",null))},xt=(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=>xt(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)})},Ct=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,f]=i();a((()=>{!l&&c.length&&f(xt(e.value||e.defaultValue,c,e.isMulti))}),[e.value,c,e.defaultValue,l]),a((()=>{if(!e.optionsFrom||"function"!=typeof e.optionsFrom&&c.length)m((e.possibleValues||[]).map((e=>n(e)))),setTimeout((()=>s(!1)),250);else{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:t(),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),f(e.find((e=>Array.isArray(u)?u.find((t=>t.value===e.value)):e.value===(u?u.value:u)))||null),s(!1)}))}}}),[e.optionsFrom,e.possibleValues,e.onChange]);const d=t=>{var r,n;f(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)},y=(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(xt(t,c));m([...c,n]),e.isMulti?d([...u,n]):d(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:N(e.className,"mrf-btn mrf-btn_grey mrf-ml_5",{active:a}),onClick:()=>(t=>{if(e.isMulti){const e=u;return e.includes(t)?d(e.filter((e=>e.value!==t.value))):d([...e,t])}return d(t)})(t)},t.label)}))):e.createOption?r.createElement(V,Object.assign({},e,{name:`${e.label}-search`,isLoading:l,value:u,isDisabled:l||e.disabled,placeholder:e.placeholder,onChange:d,options:c,onCreateOption:t=>y(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:d,classNamePrefix:"react-form-select",className:e.className}))};function _t(){return _t=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},_t.apply(this,arguments)}function Nt(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 Vt=l((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=Nt(e,["color","size"]);return r.createElement("svg",_t({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 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 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}Vt.propTypes={color:_.string,size:_.oneOfType([_.string,_.number])},Vt.displayName="PlusCircle";var Tt=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",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:"8",y1:"12",x2:"16",y2:"12"}))}));Tt.propTypes={color:_.string,size:_.oneOfType([_.string,_.number])},Tt.displayName="MinusCircle";const Mt=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(Vt,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-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(Tt,null)),c===Object.keys(r).length-1&&t.createElement("button",{disabled:e.disabled,type:"button",className:"mrf-flex mrf-btn mrf-btn_blue mrf-btn_sm mrf-ml_5",onClick:l},t.createElement(Vt,null))))))},zt={javascript:T,css:W,json:z,html:M,markdown:A};function Wt(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=F.theme({"&":Object.assign({},l)}),m=[a?G():G({formatNumber:()=>""}),Q(),L(),q(),zt[t](),H(),D(),$(),P.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,P.tabSize.of(r),Y.of(" ".repeat(r))].filter((e=>!!e)),u=P.create({extensions:[...m,F.updateListener.of((e=>{try{if(e.docChanged){const t=e.state.doc.toString();null==i||i(t)}}catch(e){}})),F.editable.of(!n)],doc:null==s?"":"object"==typeof s?s.value:s});return new F({state:u,parent:e})}function At({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:f}){const d=n(),[y,b]=i();return a((()=>{const r=Wt(d.current,o,l,s,c,m,u,e,t);d.current.addEventListener("keydown",(e=>{e.stopImmediatePropagation()})),f&&f(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((()=>{y&&("object"==typeof t?JSON.stringify(t,null,2):t)!==y.state.doc.toString()&&y.dispatch({changes:{from:0,to:y.state.doc.length,insert:null==t?"":"object"==typeof t?JSON.stringify(t,null,2):t}})}),[t]),r.createElement("div",{className:p,ref:d})}const Ft=new me.Converter({omitExtraWLInCodeBlocks:!0,ghCompatibleHeaderId:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,tables:!0,tasklists:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!0,emoji:!0,ghMentionsLink:"/{u}"}),Lt=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:""}]},{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:N(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:N("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(At,Object.assign({},e,{mode:"markdown",setRef:e=>l.current=e})),t&&r.createElement("div",{className:"mrf-preview",dangerouslySetInnerHTML:{__html:Ft.makeHtml(e.value||"")}}))};function Dt({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((()=>{Wt(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 $t(){return $t=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},$t.apply(this,arguments)}function Rt(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=Rt(e,["color","size"]);return r.createElement("svg",$t({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"}))}));It.propTypes={color:_.string,size:_.oneOfType([_.string,_.number])},It.displayName="HelpCircle";const qt=({entry:e,realEntry:t,children:n,render:a,functionalProperty:o,step:l,informations:i,className:s})=>{const{formState:c}=p();if("object"==typeof e)return n;const m=e.split(".").reduce(((e,t)=>e&&e[t]),c.errors),u=e.split(".").reduce(((e,t)=>e&&e[t]),c.dirtyFields),f=e.split(".").reduce(((e,t)=>e&&e[t]),c.touchedFields),d=c.isSubmitted||u||f;if(!o(e,void 0===(null==l?void 0:l.visible)||l.visible,i,m))return null;const y=o(e,null===(null==l?void 0:l.label)?null:(null==l?void 0:l.label)||t||e,i),b=fe();return a?a({entry:e,label:y,error:m,help:null==l?void 0:l.help,children:n}):r.createElement("div",{className:`mrf-mt_10 ${s||""}`,style:{position:"relative"}},y&&r.createElement("label",{className:"mrf-flex mrf-ai_center mrf-mb_5",htmlFor:e},r.createElement("span",null,y),(null==l?void 0:l.help)&&r.createElement(r.Fragment,null,r.createElement(pe,{html:!0,place:"bottom",id:b}),r.createElement("span",{className:"mrf-flex mrf-ai_center","data-html":!0,"data-tip":null==l?void 0:l.help,"data-for":b},r.createElement(It,{style:{color:"gray",width:17,marginLeft:".5rem",cursor:"help"}})))),n,m&&r.createElement("div",{className:N("mrf-feedback",{"mrf-txt_red":!!d})},m.message))},Bt=t.memo((e=>e.render?e.render(Object.assign(Object.assign({},e.field),{error:e.error,informations:e.informations})):e.children),((e,t)=>!t.deactivateReactMemo&&(e.field.value===t.field.value&&t.errorDisplayed===e.errorDisplayed&&Qe(t.step)===Qe(e.step)))),Ht=e=>{const{step:r,entry:n,realEntry:a,children:o,component:l,errorDisplayed:i=!1,informations:s,deactivateReactMemo:c,inputWrapper:m}=e,{field:u}=f({name:n}),{getValues:d,setValue:y,formState:{errors:b}}=p(),v=n.split(".").reduce(((e,t)=>e&&e[t]),b),h=(e,t)=>"function"==typeof t?t({rawValues:d(),value:d(e),informations:s,error:v,getValue:e=>d(e)}):t,g=Object.assign(Object.assign({name:u.name},r.props),{id:n,readOnly:h(n,r.disabled)?"readOnly":null,placeholder:r.placeholder,onChange:e=>{const t=e?e.target?e.target.value||null:e:r.type===de.bool||r.type===de.number&&0===u.value?e:null;u.onChange(t),$e(r.onChange).map((e=>e({rawValues:d(),value:t,setValue:y})))},value:u.value});return t.createElement(qt,{key:`collapse-${n}`,entry:n,realEntry:a,functionalProperty:h,step:r,render:m,informations:s},t.createElement(Bt,{render:r.render,step:r,field:Object.assign({setValue:(e,t)=>y(e,t),rawValues:d(),getValue:e=>d(e)},u),error:v,errorDisplayed:i,informations:s,deactivateReactMemo:c},l?l(u,g):t.cloneElement(o,Object.assign({},g))))};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 Ut(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 Kt=l((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=Ut(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("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"}))}));Kt.propTypes={color:_.string,size:_.oneOfType([_.string,_.number])},Kt.displayName="Trash2";const Yt=({entry:e,step:t,component:n,disabled:a})=>{const{getValues:o,setValue:l,control:i,trigger:s,formState:c}=p(),m=o(e),u=e.split(".").reduce(((e,t)=>e&&e[t]),c.errors),f=e.split(".").reduce(((e,t)=>e&&e[t]),c.dirtyFields),y=e.split(".").reduce(((e,t)=>e&&e[t]),c.touchedFields),b=!!u&&(c.isSubmitted||f||y),{fields:v,append:h,remove:g}=d({control:i,name:e});return r.createElement(r.Fragment,null,v.map(((t,o)=>r.createElement("div",{key:t.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:t.id},t),{defaultValue:m[o]}),o)),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:()=>{g(o),s(e)}},r.createElement(Kt,{size:16})))))),r.createElement("div",{className:"mrf-flex mrf-jc_flex_end"},r.createElement("button",{type:"button",className:N("mrf-btn","mrf-btn_blue","mrf-btn_sm","mrf-mt_5",{"mrf-input__invalid":!!b}),onClick:()=>{const r=t.type===de.object?et(t.flow,t.schema):Ze();h({value:t.addableDefaultValue||r}),$e(t.onChange).map((t=>t({rawValues:o(),value:o(e),setValue:l})))},disabled:a},"Add"),u&&r.createElement("div",{className:"mrf-invalid-feedback"},u.message)))},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(kt,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})})))},Xt=e=>{let{entry:t,realEntry:o,step:l,schema:c,inputWrapper:m,httpClient:u,functionalProperty:f,informations:d}=e;const b=p(),{formState:{errors:v,dirtyFields:h,touchedFields:g,isSubmitted:_},control:V,getValues:S,setValue:P}=b,{watch:T}=b,[M,z]=i(Qe(S())),W=t.split(".").reduce(((e,t)=>e&&e[t]),v),A=t.split(".").reduce(((e,t)=>e&&e[t]),h),F=t.split(".").reduce(((e,t)=>e&&e[t]),g),L=!!W&&(_||A||F);if(l=l,l.onAfterChange){const e=T(),r=t.replace("[",".").replace("]","").split(".").reduce(((e,t)=>e&&e[t]),e)||{},o=(e=>{const t=n();return a((()=>{t.current=e}),[e]),t.current})(rt(r,c)),i=rt(r,c);(!O(i,o)||void 0!==i&&void 0===o)&&l.onAfterChange({entry:t,value:S(t),rawValues:S(),previousValue:o,getValue:e=>S(e),setValue:P,onChange:e=>P(t,e),informations:d})}const D=s((()=>{const e="function"==typeof l.visible,t="function"==typeof l.disabled,r="function"==typeof l.label;return!!("function"==typeof l.deps?l.deps(d):l.deps)||e||t||r||!!l.render||!!l.conditionalSchema}),[Qe(c)]);if(D){const e="function"==typeof l.deps?l.deps(d):l.deps,t=e?T(e):T(),r=Qe(t);r!==M&&z(r)}if(l.array)return r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement(Yt,{entry:t,step:l,disabled:f(t,l.disabled||!1,d,W),component:(e,n)=>{var a,i,s,p,y,b,v,h,g;return r.createElement(Xt,{entry:`${t}.${n}.value`,step:Object.assign(Object.assign({},c[o||t]),{label:(null===(a=l.item)||void 0===a?void 0:a.label)||null,render:null===(i=l.item)||void 0===i?void 0:i.render,onChange:null===(s=l.item)||void 0===s?void 0:s.onChange,array:(null===(p=l.item)||void 0===p?void 0:p.array)||!1,onAfterChange:null===(y=l.item)||void 0===y?void 0:y.onAfterChange,visible:null===(b=l.item)||void 0===b?void 0:b.visible,disabled:null===(v=l.item)||void 0===v?void 0:v.disabled,deps:null===(h=l.item)||void 0===h?void 0:h.deps}),schema:c,inputWrapper:m,httpClient:u,defaultValue:null===(g=e.defaultValue)||void 0===g?void 0:g.value,index:n,functionalProperty:f,informations:{path:`${null==d?void 0:d.path}.${n}.value`,parent:d,index:n}})}}));switch(l.type){case de.string:switch(l.format){case ye.text:return r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement("textarea",{className:N("mrf-input",l.className,{"mrf-mrf-input__invalid":!!L})}));case ye.code:case ye.singleLineCode:const e=l.format===ye.code?At:Dt;return r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement(e,{className:N(null==l?void 0:l.className,{"mrf-input__invalid":!!W})}));case ye.markdown:return r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement(Lt,{className:N(l.className,{"mrf-input__invalid":!!L})}));case ye.buttonsSelect:case ye.select:return r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement(Ct,Object.assign({className:N("mrf-flex_grow_1",l.className,{"mrf-input__invalid":!!L}),disabled:f(t,l.disabled||!1,d,W)},l.props,{possibleValues:l.options,httpClient:u,isMulti:l.isMulti,createOption:l.createOption,onCreateOption:l.onCreateOption,transformer:l.transformer,buttons:l.format===ye.buttonsSelect,optionsFrom:l.optionsFrom})));default:return r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement("input",{type:l.format||"text",className:N("mrf-input",l.className,{"mrf-input__invalid":!!L})}))}case de.number:switch(l.format){case ye.buttonsSelect:case ye.select:return r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement(Ct,Object.assign({className:N("mrf-content",l.className,{"mrf-input__invalid":!!L})},l.props,{possibleValues:l.options,httpClient:u,isMulti:l.isMulti,createOption:l.createOption,onCreateOption:l.onCreateOption,transformer:l.transformer,buttons:l.format===ye.buttonsSelect,optionsFrom:l.optionsFrom})));default:return r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement("input",{type:l.format||"number",className:N("mrf-input",l.className,{"mrf-input__invalid":!!L})}))}case de.bool:return r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement(vt,{className:l.className,errorDisplayed:L}));case de.object:const e=S(t),n=Ye(l.defaultValue)?l.defaultValue:et(l.flow,l.schema);switch(l.format){case ye.buttonsSelect:case ye.select:return r.createElement(Ht,{step:Object.assign(Object.assign({},l),{defaultValue:e||n}),entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement(Ct,Object.assign({className:N("mrf-flex_grow_1",l.className,{"mrf-input__invalid":!!L})},l.props,{possibleValues:l.options,httpClient:u,isMulti:l.isMulti,createOption:l.createOption,onCreateOption:l.onCreateOption,transformer:l.transformer,buttons:l.format===ye.buttonsSelect,optionsFrom:l.optionsFrom})));case ye.form:const a=$e(l.flow).getOrElse($e(l.schema).map((e=>Object.keys(e))).getOrElse([]));return r.createElement(Ht,{step:Object.assign(Object.assign({},l),{defaultValue:e||n}),entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement(Gt,{render:l.render,rawValues:S(),value:S(t),onChange:e=>P(t,e,{shouldValidate:!0}),setValue:(e,t)=>P(e,t),getValue:e=>S(e),informations:d},r.createElement(Zt,{schema:l.schema,flow:a,step:l,parent:t,inputWrapper:m,maybeCustomHttpClient:u,value:S(t)||n,functionalProperty:f,errorDisplayed:L,informations:d})));case ye.code:return r.createElement(Ht,{step:Object.assign(Object.assign({},l),{defaultValue:e||n}),entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m,component:(e,t)=>r.createElement(At,Object.assign({},t,{className:N(null==l?void 0:l.className,{"mrf-input__invalid":!!W}),onChange:t=>{let r;try{r=JSON.parse(t)}catch(e){r=t}e.onChange(r),$e(null==l?void 0:l.onChange).map((e=>e({rawValues:S(),value:r,setValue:P})))},value:null===e.value?null:"object"==typeof e.value?JSON.stringify(e.value,null,2):e.value}))});default:return r.createElement(Ht,{step:Object.assign(Object.assign({},l),{defaultValue:e||n}),entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement(Mt,{className:N(l.className,{"mrf-input__invalid":!!L})}))}case de.date:switch(l.format){case ye.datetime:return r.createElement(Ht,{step:l,entry:t,realEntry:o,informations:d,deactivateReactMemo:D,inputWrapper:m,component:e=>r.createElement(E,{dateAdapter:j},r.createElement(x,{value:e.value,onChange:t=>{e.onChange(t),$e(l.onChange).map((e=>e({rawValues:S(),value:t,setValue:P})))},renderInput:e=>r.createElement(C,Object.assign({},e))}))});case ye.time:return r.createElement(Ht,{step:l,entry:t,realEntry:o,informations:d,deactivateReactMemo:D,inputWrapper:m,component:e=>r.createElement(E,{dateAdapter:j},r.createElement(k,{value:e.value,onChange:t=>{e.onChange(t),$e(l.onChange).map((e=>e({rawValues:S(),value:t,setValue:P})))},renderInput:e=>r.createElement(C,Object.assign({},e))}))});default:return r.createElement(Ht,{step:l,entry:t,realEntry:o,informations:d,deactivateReactMemo:D,inputWrapper:m,component:e=>r.createElement(E,{dateAdapter:j},r.createElement(w,{value:e.value,onChange:t=>{e.onChange(t),$e(l.onChange).map((e=>e({rawValues:S(),value:t,setValue:P})))},renderInput:e=>r.createElement(C,Object.assign({},e))}))})}case de.file:return r.createElement(y,{name:t,control:V,render:({field:e})=>r.createElement(Ht,{step:l,entry:t,realEntry:o,errorDisplayed:L,informations:d,deactivateReactMemo:D,inputWrapper:m},r.createElement((({onChange:n})=>{const[a,o]=i(!1),[s,c]=i(void 0),m=e.value||[];return r.createElement("div",{className:N("mrf-flex","mrf-ai_center",null==l?void 0:l.className,{"mrf-input__invalid":!!W})},r.createElement("input",{ref:e=>c(e),type:"file",multiple:!0,className:"mrf-d_none",onChange:e=>{const t=e.target.files;o(!0),n&&n(t?[...t]:[]),o(!1)}}),r.createElement("button",{type:"button",className:"mrf-btn mrf-btn_sm mrf-flex mrf-ai_center",disabled:a||f(t,(null==l?void 0:l.disabled)||!1,d,W),onClick:()=>{null==s||s.click()}},a&&r.createElement(it,null),!a&&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 de.json:return r.createElement(Ht,{step:l,entry:t,realEntry:o,informations:d,deactivateReactMemo:D,inputWrapper:m,component:(e,t)=>r.createElement(At,Object.assign({},t,{className:N(null==l?void 0:l.className,{"mrf-input__invalid":!!W}),onChange:t=>{e.onChange(t),$e(null==l?void 0:l.onChange).map((e=>e({rawValues:S(),value:t,setValue:P})))},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:f})=>{var d;const{getValues:y,control:b}=p(),[v,h]=i(!!c.collapsed);u({name:(null===(d=null==c?void 0:c.conditionalSchema)||void 0===d?void 0:d.ref)||"",control:b});const g=$e(c.conditionalSchema).map((e=>{const t=$e(e.ref).map((e=>y(e))).getOrNull(),r=y(),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}),O=g.flow.reduce(((e,t)=>[...e,{step:"string"==typeof t?g.schema[t]:g.schema[t.label],entry:t}]),[]),j=O.length>=1&&null!==c.label;return r.createElement("div",{className:N(c.className,{"mrf-nestedform__border":j,"mrf-border__error":!!l}),style:{position:"relative"}},!!c.collapsable&&g.flow.length>1&&v&&r.createElement(ft,{size:30,className:"mrf-cursor_pointer",style:{position:"absolute",top:-35,right:0,zIndex:100},strokeWidth:"2",onClick:()=>h(!v)}),!!c.collapsable&&g.flow.length>1&&!v&&r.createElement(bt,{size:30,className:"mrf-cursor_pointer",style:{position:"absolute",top:-35,right:0,zIndex:100},strokeWidth:"2",onClick:()=>h(!v)}),v&&!!c.collapsable&&"function"==typeof c.collapsable&&c.collapsable({rawValues:y(),getValue:e=>y(e),value:s}),("function"!=typeof c.collapsable||!v)&&O.map((({step:t,entry:l},i)=>v&&!t.visibleOnCollapse?null:"object"==typeof l?r.createElement(Qt,{key:i,entry:l,schema:e,inputWrapper:a,httpClient:o,functionalProperty:m}):t||"string"!=typeof l?r.createElement(Xt,{key:`step.${l}.${i}`,entry:`${n}.${l}`,realEntry:l,step:g.schema[l],schema:g.schema,inputWrapper:a,httpClient:o,defaultValue:s&&s[l],functionalProperty:m,informations:{path:`${null==f?void 0:f.path}.${l}`,key:l,parent:f}}):(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,f,d,y;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===(f=null===(p=e.actions)||void 0===p?void 0:p.reset)||void 0===f?void 0:f.label)||"Reset"),b&&r.createElement("button",{className:"mrf-btn mrf-btn_green mrf-ml_10",type:"submit"},(null===(y=null===(d=e.actions)||void 0===d?void 0:d.submit)||void 0===y?void 0:y.label)||"Save"))},tr=r.forwardRef(((t,n)=>{const{schema:o,flow:l,value:s,inputWrapper:u,onSubmit:p,onError:f=(()=>{}),footer:d,className:y,options:h={}}=t,g=l||Object.keys(o),O=(e,t)=>h.httpClient?h.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:C,trigger:_}=E,{getValues:N}=E;a((()=>{h.showErrorsOnStart&&_()}),[_,w]),Xe((()=>{C(Object.assign({},tt(s,j,l,o)))}),[s,o,l]);const V=(e,t,r,n)=>"function"==typeof t?t({rawValues:N(),value:N(e),informations:r,getValue:e=>N(e),error:n}):t;return c(n,(()=>({handleSubmit:()=>x((e=>{const t=rt(e,o);p(t)}),f)(),trigger:_,methods:Object.assign(Object.assign({},E),{data:()=>rt(N(),o)})}))),r.createElement(v,Object.assign({},E),(!!h.watch||!!h.autosubmit)&&r.createElement(at,{options:h,control:E.control,schema:o,onSubmit:p,handleSubmit:x,onError:f}),r.createElement("form",{className:y||"mrf-pr_15 mrf-w_100",onSubmit:x((e=>{const t=rt(e,o);p(t)}),f)},g.map(((e,t)=>{if("object"==typeof e)return r.createElement(Qt,{key:t,entry:e,schema:o,inputWrapper:u,httpClient:O,functionalProperty:V});const n=o[e];if(!n&&"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 a={path:e,key:e};return r.createElement(Xt,{key:t,entry:e,step:n,schema:o,inputWrapper:u,httpClient:O,functionalProperty:V,informations:a})})),r.createElement(er,{render:d,reset:()=>C(j),valid:x((e=>p(rt(e,o))),f),actions:h.actions})))}));export{vt as BooleanInput,At as CodeInput,kt as Collapse,tr as Form,Lt as MarkdownInput,Mt as ObjectInput,Ct as SelectInput,Dt as SingleLineCode,De as constraints,ye as format,de as type};
|