@maif/react-forms 1.2.9 → 1.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.d.ts CHANGED
@@ -15,7 +15,7 @@ declare const type: {
15
15
  readonly file: "file";
16
16
  readonly json: "json";
17
17
  };
18
- declare let typeValues: ("string" | "number" | "object" | "json" | "bool" | "date" | "file")[];
18
+ declare let typeValues: ("string" | "number" | "object" | "bool" | "date" | "file" | "json")[];
19
19
  declare type Type = typeof typeValues[number];
20
20
 
21
21
  declare const format: {
@@ -34,7 +34,7 @@ declare const format: {
34
34
  readonly datetime: "datetime-local";
35
35
  readonly time: "time";
36
36
  };
37
- declare let formatValues: ("markdown" | "email" | "array" | "select" | "code" | "textarea" | "password" | "hidden" | "form" | "buttons" | "singleLineCode" | "datetime-local" | "time")[];
37
+ declare let formatValues: ("array" | "select" | "code" | "markdown" | "textarea" | "email" | "password" | "hidden" | "form" | "buttons" | "singleLineCode" | "datetime-local" | "time")[];
38
38
  declare type Format = typeof formatValues[number];
39
39
 
40
40
  declare type Constraint = (resolver: any, key: string, dependencies: any[]) => AnySchema;
@@ -352,6 +352,18 @@ interface FlowObject {
352
352
  collapse: boolean;
353
353
  }
354
354
  declare type Flow = Array<string | FlowObject>;
355
+ declare type TFunctionalProperty = <T>(entry: string, prop: T | ((param: {
356
+ rawValues: {
357
+ [x: string]: any;
358
+ };
359
+ value: any;
360
+ informations?: Informations;
361
+ error?: {
362
+ [x: string]: any;
363
+ };
364
+ }) => T), informations?: Informations, error?: {
365
+ [x: string]: any;
366
+ }) => T;
355
367
  interface Informations {
356
368
  path: string;
357
369
  parent?: Informations;
@@ -377,4 +389,4 @@ declare const Form: React.ForwardRefExoticComponent<{
377
389
  nostyle: boolean;
378
390
  } & React.RefAttributes<unknown>>;
379
391
 
380
- export { BooleanInput, CodeInput, Collapse, ConditionnalSchema, Flow, Form, Format, Informations, MarkdownInput, ObjectInput, Schema, SchemaEntry, SchemaRenderType, SelectInput, SelectOption, SingleLineCode, Type, constraints_d as constraints, format, type, validate };
392
+ export { BooleanInput, CodeInput, Collapse, ConditionnalSchema, Flow, Form, Format, Informations, MarkdownInput, ObjectInput, Schema, SchemaEntry, SchemaRenderType, SelectInput, SelectOption, SingleLineCode, TFunctionalProperty, Type, constraints_d as constraints, format, type, validate };
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- import*as e from"yup";import*as t from"react";import r,{forwardRef as n,useState as o,useRef as a,useEffect as l,useCallback as i,useImperativeHandle as s}from"react";import{yupResolver as c}from"@hookform/resolvers/yup";import m from"classnames";import u from"fast-deep-equal";import p from"prop-types";import{useFormContext as f,useController as d,useWatch as h,useForm as b,FormProvider as y,Controller as v,useFieldArray as g}from"react-hook-form";import O from"react-tooltip";import{v4 as j}from"uuid";import E from"lodash.debounce";import{AdapterDateFns as w}from"@mui/x-date-pickers/AdapterDateFns";import{LocalizationProvider as k}from"@mui/x-date-pickers/LocalizationProvider";import{DatePicker as x}from"@mui/x-date-pickers/DatePicker";import{TimePicker as _}from"@mui/x-date-pickers/TimePicker";import{DateTimePicker as C}from"@mui/x-date-pickers/DateTimePicker";import N from"@mui/material/TextField";import V from"react-select/creatable";import S from"react-select";import P from"object-hash";import{EditorState as T}from"@codemirror/state";import{javascript as z}from"@codemirror/lang-javascript";import{html as A}from"@codemirror/lang-html";import{json as F}from"@codemirror/lang-json";import{css as L}from"@codemirror/lang-css";import{markdown as D}from"@codemirror/lang-markdown";import{EditorView as $,highlightSpecialChars as W,drawSelection as M,dropCursor as I,highlightActiveLine as q,keymap as B}from"@codemirror/view";import{history as H,historyKeymap as J}from"@codemirror/history";import{foldGutter as R,foldKeymap as U}from"@codemirror/fold";import{defaultKeymap as K,indentWithTab as Y}from"@codemirror/commands";import{indentUnit as G}from"@codemirror/language";import{lineNumbers as Q,highlightActiveLineGutter as X}from"@codemirror/gutter";import{bracketMatching as Z}from"@codemirror/matchbrackets";import{closeBrackets as ee,closeBracketsKeymap as te}from"@codemirror/closebrackets";import{highlightSelectionMatches as re,searchKeymap as ne}from"@codemirror/search";import{autocompletion as oe,completionKeymap as ae}from"@codemirror/autocomplete";import{commentKeymap as le}from"@codemirror/comment";import{rectangularSelection as ie}from"@codemirror/rectangular-selection";import{defaultHighlightStyle as se}from"@codemirror/highlight";import{lintKeymap as ce}from"@codemirror/lint";import{oneDark as me}from"@codemirror/theme-one-dark";import ue from"showdown";import"@fortawesome/fontawesome-free/css/all.css";import"highlight.js/styles/monokai.css";import pe from"highlight.js/lib/core";const fe={string:"string",number:"number",bool:"bool",date:"date",object:"object",file:"file",json:"json"};Object.values(fe);const de={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(de);const he=(e="Value required")=>t=>t.required(e),be=(e="That is not a valid url")=>t=>t.url(e),ye=(e="That is not a valid email")=>t=>t.email(e),ve=(e="That is not a valid uuid")=>t=>t.uuid(e),ge=(e=/.*/,t="This field does not match the pattern")=>r=>r.matches(e,{message:t,excludeEmptyString:!0}),Oe=(e,t="Min value is required")=>r=>r.min(Le(e),t),je=(e,t="Max value is required")=>r=>r.max(Le(e),t),Ee=(e="Positive value is required")=>t=>t.positive(e),we=(e="Negative value is required")=>t=>t.negative(e),ke=(e="an integer please")=>t=>t.integer(e),xe=(e,t=`This field must be less than ${e}`)=>(r,n,o)=>("number"!=typeof e&&o.push([n,e]),r.lessThan(Le(e),t)),_e=(e,t=`This field must be more than ${e}`)=>(r,n,o)=>("number"!=typeof e&&o.push([n,e]),r.moreThan(Le(e),t)),Ce=(e,t=`The size of this collection must be ${e}`)=>r=>r.length(Le(e),t),Ne=(e,t="Unsupported File Format")=>r=>{const n=e.map((e=>e.toLowerCase()));return r.test("supportedFormat",t,(e=>!e.length||n.some((t=>e[0].type.toLowerCase().includes(t)))))},Ve=(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)))))},Se=(e,t=`size is excedeed ${e}`)=>r=>r.test("fileSize",t,(t=>!t.length||t[0].size<=Le(e))),Pe=(e,t="Test failed",r)=>n=>n.test(e,t,r),Te=(e,t,r=[],n=[])=>(o,a,l)=>{const i=r.reduce(((e,t)=>t(e,a,l)),o),s=n.reduce(((e,t)=>t(e,a,l)),o);return o.when(e,{is:t,then:i,otherwise:s})},ze=(e,t=`This value must be one of ${e.join(", ")}`)=>r=>r.oneOf(e.map(Le),t),Ae=(e,t=`This value can't include the following values ${e.join(", ")}`)=>r=>r.test("blacklist",t,(t=>!e.some((e=>(t||"").includes(e))))),Fe=t=>e.ref(t),Le=e=>(null==e?void 0:e.ref)?Fe(e.ref):e,De={required:({message:e="Value required"})=>he(e),url:({message:e="That is not a valid url"})=>be(e),email:({message:e="That is not a valid email"})=>ye(e),uuid:({message:e="That is not a valid uuid"})=>ve(e),matches:({regexp:e=/.*/,message:t="This field does not match the pattern"})=>ge(e,t),min:({ref:e,message:t="Min value is required"})=>Oe(e,t),max:({ref:e,message:t="Max value is required"})=>je(e,t),positive:({message:e="Positive value is required"})=>Ee(e),negative:({message:e="Negative value is required"})=>we(e),integer:({message:e="an integer please"})=>ke(e),lessThan:({ref:e,message:t=`This field must be less than ${e}`})=>xe(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}`})=>Ce(e,t),supportedFormat:({arrayOfValues:e,message:t="Unsupported File Format"})=>Ne(e,t),unsupportedFormat:({arrayOfValues:e,message:t="Unsupported File Format"})=>Ve(e,t),maxSize:({ref:e,message:t=`size is excedeed ${e}`})=>Se(e,t),test:e=>Pe(e.name,e.message,e.test),when:({ref:e,test:t,then:r=[],otherwise:n=[]})=>Te(e,t,r,n),oneOf:({arrayOfValues:e,message:t=`This value must be one of ${e.join(", ")}`})=>ze(e,t),blacklist:({arrayOfValues:e,message:t=`This value can't include the following values ${e.join(", ")}`})=>Ae(e,t),ref:e=>Fe(e.ref)};var $e=Object.freeze({__proto__:null,required:he,url:be,email:ye,uuid:ve,matches:ge,min:Oe,max:je,positive:Ee,negative:we,integer:ke,lessThan:xe,moreThan:_e,length:Ce,supportedFormat:Ne,unsupportedFormat:Ve,maxSize:Se,test:Pe,when:Te,oneOf:ze,blacklist:Ae,ref:Fe,jsonConstraints:De});function We(){return We=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},We.apply(this,arguments)}function Me(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Ie=n((function(e,t){var n=e.color,o=void 0===n?"currentColor":n,a=e.size,l=void 0===a?24:a,i=Me(e,["color","size"]);return r.createElement("svg",We({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:o,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"}))}));function qe(){return qe=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},qe.apply(this,arguments)}function Be(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}Ie.propTypes={color:p.string,size:p.oneOfType([p.string,p.number])},Ie.displayName="HelpCircle";var He=n((function(e,t){var n=e.color,o=void 0===n?"currentColor":n,a=e.size,l=void 0===a?24:a,i=Be(e,["color","size"]);return r.createElement("svg",qe({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:o,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 Je(){return Je=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},Je.apply(this,arguments)}function Re(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}He.propTypes={color:p.string,size:p.oneOfType([p.string,p.number])},He.displayName="Loader";var Ue=n((function(e,t){var n=e.color,o=void 0===n?"currentColor":n,a=e.size,l=void 0===a?24:a,i=Re(e,["color","size"]);return r.createElement("svg",Je({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:o,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 Ke(){return Ke=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},Ke.apply(this,arguments)}function Ye(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}Ue.propTypes={color:p.string,size:p.oneOfType([p.string,p.number])},Ue.displayName="Upload";var Ge=n((function(e,t){var n=e.color,o=void 0===n?"currentColor":n,a=e.size,l=void 0===a?24:a,i=Ye(e,["color","size"]);return r.createElement("svg",Ke({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),r.createElement("polyline",{points:"6 9 12 15 18 9"}))}));function Qe(){return Qe=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},Qe.apply(this,arguments)}function Xe(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}Ge.propTypes={color:p.string,size:p.oneOfType([p.string,p.number])},Ge.displayName="ChevronDown";var Ze=n((function(e,t){var n=e.color,o=void 0===n?"currentColor":n,a=e.size,l=void 0===a?24:a,i=Xe(e,["color","size"]);return r.createElement("svg",Qe({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),r.createElement("polyline",{points:"18 15 12 9 6 15"}))}));function et(){return et=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},et.apply(this,arguments)}function tt(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}Ze.propTypes={color:p.string,size:p.oneOfType([p.string,p.number])},Ze.displayName="ChevronUp";var rt=n((function(e,t){var n=e.color,o=void 0===n?"currentColor":n,a=e.size,l=void 0===a?24:a,i=tt(e,["color","size"]);return r.createElement("svg",et({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:o,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"}))}));rt.propTypes={color:p.string,size:p.oneOfType([p.string,p.number])},rt.displayName="Trash2";const nt=({onChange:e,value:t,readOnly:n,className:o,errorDisplayed:a})=>{const l=t=>{n||null==e||e(t)};let i=m("mrf-content_switch",o,{"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":!!a}),s=()=>l(!0);return t&&(s=()=>l(!1)),r.createElement("input",{type:"checkbox",className:i,onChange:s})};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 at(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var lt=n((function(e,t){var n=e.color,o=void 0===n?"currentColor":n,a=e.size,l=void 0===a?24:a,i=at(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:o,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 it(){return it=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},it.apply(this,arguments)}function st(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}lt.propTypes={color:p.string,size:p.oneOfType([p.string,p.number])},lt.displayName="EyeOff";var ct=n((function(e,t){var n=e.color,o=void 0===n?"currentColor":n,a=e.size,l=void 0===a?24:a,i=st(e,["color","size"]);return r.createElement("svg",it({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:o,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"}))}));ct.propTypes={color:p.string,size:p.oneOfType([p.string,p.number])},ct.displayName="Eye";const mt=e=>{const[t,n]=o(e.initCollapsed||e.collapsed),a=e=>{e&&e.stopPropagation(),n(!t)};return r.createElement("div",null,r.createElement("hr",{className:m({"mrf-collapse_error":e.errored})}),r.createElement("div",{className:"mrf-cursor_pointer mrf-flex mrf-jc_between",onClick:a},r.createElement("span",{className:m("mrf-collapse_label",{"mrf-collapse_error":e.errored})},e.label),r.createElement("button",{type:"button",className:m("mrf-btn","mrf-btn_sm","mrf-ml_5",{"mrf-collapse_error":e.errored}),onClick:a},!!t&&r.createElement(ct,{size:16}),!t&&r.createElement(lt,{size:16}))),r.createElement("div",{className:m("mrf-ml_10",{"mrf-display__none":!!t,"mrf-flex":!!e.inline,"mrf-collapse__inline":!!e.inline})},e.children),e.lineEnd&&r.createElement("hr",null))};function ut(e){return null==e?ft:pt(e)}const pt=e=>({map:t=>ut(t(e)),flatMap:t=>ut(t(e)).getOrElse(ft),fold:(t,r)=>r(e),orElse:()=>ut(e),getOrElse:()=>e,getOrNull:()=>e,isDefined:()=>!0,exists:t=>ut(t(e)).isDefined()}),ft={map:()=>ft,flatMap:()=>ft,fold:e=>e(),orElse:e=>ut(e),getOrElse:e=>e,getOrNull:()=>{},isDefined:()=>!1,exists:()=>!1},dt=e=>Boolean(e&&"function"==typeof e.then),ht=e=>e.some(Array.isArray)?ht(e.flat()):e;function bt(e){return null!=e}const yt=e=>e&&Array.isArray(e)?e.map(yt):e&&"object"==typeof e?Object.fromEntries(Object.entries(e).map((([e,t])=>dt(t)?[e,`promise-${e}`]:"object"==typeof t?[e,yt(t)]:[e,t]))):e,vt=e=>P(yt(e)),gt=(e,t)=>{const r=a(!0),n=a(t);l((()=>{if(r.current)return e(),void(r.current=!1);vt(t)!==vt(n.current)&&(n.current=Object.assign({},t),e())}),t)},Ot=(e,t=[],r=!1)=>{if(null===e||!e)return null;if(r)return ut(e).map((e=>(Array.isArray(e)?e||[]:"object"==typeof e?Object.values(e):e).map((e=>Ot(e,t,!1))))).getOrElse([]);const n=ut(t.find((t=>u(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)})},jt=e=>{const{getValues:t}=f();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 a=(e.possibleValues||[]).map((e=>n(e))),[i,s]=o(!0),[c,u]=o(a),[p,d]=o();l((()=>{!i&&c.length&&d(Ot(e.value||e.defaultValue,c,e.isMulti))}),[e.value,c,e.defaultValue,i]),l((()=>{if(e.optionsFrom){if(ut(e.fetchCondition).map((e=>e())).getOrElse(!0)){let r;if(s(!0),dt(e.optionsFrom))r=e.optionsFrom;else if("function"==typeof e.optionsFrom){const n=e.optionsFrom({rawValues:t(),value:t(e.id)});r=dt(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=>{u(e),d(e.find((e=>Array.isArray(p)?p.find((t=>t.value===e.value)):e.value===(p?p.value:p)))||null),s(!1)}))}}else u((e.possibleValues||[]).map((e=>n(e)))),setTimeout((()=>s(!1)),250)}),[e.optionsFrom,e.possibleValues]);const h=t=>{var r,n;d(t),e.isMulti?null===(r=null==e?void 0:e.onChange)||void 0===r||r.call(e,t.map((e=>e.value))):null===(n=null==e?void 0:e.onChange)||void 0===n||n.call(e,null==t?void 0:t.value)},b=(t,r)=>{const n=ut(r).map((e=>e(t))).flatMap((t=>{return r=t,e.transformer?"function"==typeof e.transformer?ut(e.transformer(r)):pt({label:r[e.transformer.label],value:r[e.transformer.value]}):ft;var r})).getOrElse(Ot(t,c));u([...c,n]),e.isMulti?h([...p,n]):h(n)};return e.buttons?r.createElement("div",{style:{display:"flex"}},c.map(((t,n)=>{const o=!!p&&(e.isMulti?p.includes(t):t.value===p.value);return r.createElement("button",{key:n,type:"button",disabled:e.disabled,className:m(e.className,"mrf-btn mrf-btn_grey mrf-ml_5",{active:o}),onClick:()=>(t=>{if(e.isMulti){const e=p;return e.includes(t)?h(e.filter((e=>e.value!==t.value))):h([...e,t])}return h(t)})(t)},t.label)}))):e.createOption?r.createElement(V,Object.assign({},e,{name:`${e.label}-search`,isLoading:i,value:p,isDisabled:i||e.disabled,placeholder:e.placeholder,onChange:h,options:c,onCreateOption:t=>b(t,e.onCreateOption),classNamePrefix:"react-form-select",className:e.className})):r.createElement(S,Object.assign({},e,{name:`${e.label}-search`,isLoading:i,value:p,defaultValue:p,isDisabled:i||e.disabled,placeholder:e.placeholder,options:c,onChange:h,classNamePrefix:"react-form-select",className:e.className}))};function Et(){return Et=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},Et.apply(this,arguments)}function wt(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var kt=n((function(e,t){var n=e.color,o=void 0===n?"currentColor":n,a=e.size,l=void 0===a?24:a,i=wt(e,["color","size"]);return r.createElement("svg",Et({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:o,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"}))}));kt.propTypes={color:p.string,size:p.oneOfType([p.string,p.number])},kt.displayName="PlusCircle";const xt=e=>{const[r,n]=o({});l((()=>{n(Object.fromEntries(Object.entries(e.value||{}).map((([e,t],r)=>[Date.now()+r,{key:e,value:t}]))))}),[]),l((()=>{if(e.value){const t=e.value||{},o=Object.entries(r||{}).reduce(((e,[t,r])=>r.key?Object.assign(Object.assign({},e),{[r.key]:r.value}):e),{});u(t,o)||n(Object.fromEntries(Object.entries(e.value||{}).map((([e,t],r)=>[Date.now()+r,{key:e,value:t}]))))}}),[e.value]);const a=t=>{var r;null===(r=null==e?void 0:e.onChange)||void 0===r||r.call(e,Object.values(t).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t.key]:t.value})),{}))},i=()=>{const t=e.defaultKeyValue||{key:"",value:""},o=Object.assign(Object.assign({},r),{[Date.now()]:t});n(o),a(o)};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),a(t)}}},t.createElement(kt,null)),Object.entries(r||{}).map((([o,{key:l,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:l,onChange:e=>((e,t)=>{const o=Object.assign(Object.assign({},r),{[e]:{key:t,value:r[e].value}});n(o),a(o)})(o,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 o=Object.assign(Object.assign({},r),{[e]:{key:r[e].key,value:t}});n(o),a(o)})(o,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),a(t)})(o)},t.createElement(kt,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:i},t.createElement(kt,null))))))},_t={javascript:z,css:L,json:F,html:A,markdown:D};function Ct(e,t,r=1,n=!1,o=!0,a=!1,l={height:"-1",minHeight:"300px",maxHeight:"-1",width:"-1",minWidth:"-1",maxWidth:"-1"},i,s){const c=$.theme({"&":Object.assign({},l)}),m=[o?Q():Q({formatNumber:()=>""}),X(),W(),H(),_t[t](),R(),M(),I(),T.allowMultipleSelections.of(!0),se.fallback,Z(),ee(),oe(),ie(),a?q():void 0,re(),B.of([...te,...K,...ne,...J,...U,...le,...ae,...ce,Y]),me,c,T.tabSize.of(r),G.of(" ".repeat(r))].filter((e=>!!e)),u=T.create({extensions:[...m,$.updateListener.of((e=>{try{if(e.docChanged){const t=e.state.doc.toString();null==i||i(t)}}catch(e){}})),$.editable.of(!n)],doc:null==s?"":"object"==typeof s?s.value:s});return new $({state:u,parent:e})}function Nt({onChange:e,value:t,mode:n="javascript",tabSize:i=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=a(),[h,b]=o();return l((()=>{const r=Ct(d.current,n,i,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)}),[]),l((()=>{h&&("object"==typeof t?JSON.stringify(t,null,2):t)!==h.state.doc.toString()&&h.dispatch({changes:{from:0,to:h.state.doc.length,insert:null==t?"":"object"==typeof t?JSON.stringify(t,null,2):t}})}),[t]),r.createElement("div",{className:p,ref:d})}const Vt=new ue.Converter({omitExtraWLInCodeBlocks:!0,ghCompatibleHeaderId:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,tables:!0,tasklists:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!0,emoji:!0,ghMentionsLink:"/{u}"}),St=e=>{const[t,n]=o(e.preview||!1),i=a();l((()=>{t&&c()}),[t,e.value]);const s=[{name:"Add header",icon:"heading",inject:e=>e?[{from:e.from,insert:"# "}]:"#"},{name:"Add bold text",icon:"bold",inject:e=>e?[{from:e.from,insert:"**"},{from:e.to,insert:"**"}]:"** **"},{name:"Add italic text",icon:"italic",inject:e=>e?[{from:e.from,insert:"*"},{from:e.to,insert:"*"}]:"* *"},{name:"Add strikethrough text",icon:"strikethrough",inject:e=>e?[{from:e.from,insert:"~~"},{from:e.to,insert:"~~"}]:"~~ ~~"},{name:"Add link",icon:"link",inject:e=>e?[{from:e.from,insert:"["},{from:e.to,insert:"](url)"}]:"[ ](url)"},{name:"Add code",icon:"code",inject:e=>e?[{from:e.from,insert:"```\n"},{from:e.to,insert:"\n```\n"}]:"```\n\n```\n"},{name:"Add quotes",icon:"quote-right",inject:e=>e?[{from:e.from,insert:"> "}]:"> "},{name:"Add image",icon:"image",inject:e=>e?[{from:e.from,insert:"!["},{from:e.to,insert:"](image-url)"}]:"![ ](image-url)"},{name:"Add unordered list",icon:"list-ul",inject:e=>e?[{from:e.from,insert:"* "}]:"* "},{name:"Add ordered list",icon:"list-ol",inject:e=>e?[{from:e.from,insert:"1. "}]:"1. "},{name:"Add check list",icon:"tasks",inject:e=>e?[{from:e.from,insert:"* [ ] "}]:"* [ ] "}],c=()=>{const e=[...document.getElementsByClassName("mrf-preview")];e.length>0&&[...e[0].querySelectorAll("pre code")].forEach((e=>pe.highlightElement(e)))};return r.createElement("div",{className:m(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:()=>n(!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:()=>n(!0)},"Preview"))),r.createElement("div",{className:"mrf-flex mrf-flexWrap"},s.map(((e,t)=>r.createElement("button",{type:"button",className:m("mrf-btn_for_descriptionToolbar"),"aria-label":e.name,title:e.name,key:`toolbar-btn-${t}`,onClick:()=>{const t=i.current,r=t.state.selection.ranges;1===r.length&&r[0].from===r[0].to?t.dispatch({changes:{from:0,to:t.state.doc.length,insert:t.state.doc.toString()+e.inject()}}):t.dispatch(t.state.changeByRange((t=>({changes:e.inject(t),range:t}))))}},r.createElement("i",{className:`fas fa-${e.icon}`})))))),!t&&r.createElement(Nt,Object.assign({},e,{setRef:e=>i.current=e})),t&&r.createElement("div",{className:"mrf-preview",dangerouslySetInnerHTML:{__html:Vt.makeHtml(e.value||"")}}))};function Pt({onChange:e,value:t,mode:n="javascript",tabSize:o=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=a();return l((()=>{Ct(u.current,n,o,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"}})}const Tt={[fe.string]:t=>e.string().nullable().optional().typeError(t||"Value must be a string"),[fe.number]:t=>e.number().nullable().optional().transform((e=>isNaN(e)?null:e)).typeError(t||"Value must be a number"),[fe.bool]:()=>e.bool().nullable().optional(),[fe.object]:()=>e.object().nullable().optional(),[fe.date]:t=>e.date().nullable().optional().typeError(t||"Value must be a date"),[fe.file]:()=>e.mixed(),[fe.json]:()=>e.mixed()},zt=(t,r,n,o)=>{const{constraints:a=[]}=t;if(t.array||t.isMulti){let l,i=e.array();if(t.schema){const r=[];l=e.object().shape(Ft(t.flow||Object.keys(t.schema),t.schema,r,o).shape,r),i=i.of(e.object().shape({value:l}))}return a.reduce(((e,t)=>At(t,e,r,n)),i)}if(t.type===fe.object&&t.schema){if(!Object.keys(t.schema).length)return e.object();const l=Ft(t.flow||Object.keys(t.schema),t.schema,n,o);return a.reduce(((e,t)=>At(t,e,r,n)),e.object().shape(l.shape,n))}if(t.type===fe.object&&t.conditionalSchema){const{schema:l,flow:i}=ut(t.conditionalSchema).map((e=>{const t=ut(e.ref).map((e=>o[e])).getOrNull();return ut(e.switch.find((e=>"function"==typeof e.condition?e.condition({rawValues:o,ref:t}):e.condition===t))).orElse(e.switch.find((e=>e.default))).getOrElse({schema:{},flow:[]})})).getOrElse({schema:{},flow:[]}),s=Ft(i||Object.keys(l),l,n,o);return a.reduce(((e,t)=>At(t,e,r,n)),e.object().shape(s.shape,n))}return a.reduce(((e,t)=>At(t,e,r,n)),Tt[t.type]())},At=(e,t,r,n)=>"function"==typeof e?e(t,r,n):De[e.type](e)(t,r,n),Ft=(e,t,r=[],n={})=>{if(!Object.keys(t).length)return{shape:{},dependencies:r};const o=(e||Object.keys(t)).reduce(((e,o)=>{if("object"==typeof o)return Object.assign(Object.assign({},e),Ft(o.flow,t,r,n).shape);if(!t[o])return e;const a=zt(t[o],o,r,n);return Object.assign(Object.assign({},e),{[o]:a})}),{});return{shape:o,dependencies:r}},Lt=t.memo((e=>e.render?e.render(Object.assign(Object.assign({},e.field),{error:e.error,informations:e.informations})):e.children),((e,t)=>!t.render&&!t.conditionalSchema&&(e.field.value===t.field.value&&t.errorDisplayed===e.errorDisplayed&&vt(t.step)===vt(e.step)))),Dt=e=>{const{step:r,entry:n,children:o,component:a,errorDisplayed:l=!1,informations:i}=e,{field:s}=d({defaultValue:bt(r.defaultValue)?r.defaultValue:null,name:n}),{getValues:c,setValue:m,formState:{errors:u}}=f(),p=n.split(".").reduce(((e,t)=>e&&e[t]),u),h=Object.assign(Object.assign({name:s.name},r.props),{id:n,readOnly:((e,t)=>"function"==typeof t?t({rawValues:c(),value:c(e),informations:i,error:p,getValue:e=>c(e)}):t)(n,r.disabled)?"readOnly":null,placeholder:r.placeholder,onChange:e=>{const t=e?e.target?e.target.value||null:e:r.type===fe.bool||r.type===fe.number&&0===s.value?e:null;s.onChange(t),ut(r.onChange).map((e=>e({rawValues:c(),value:t,setValue:m})))},value:s.value});return t.createElement(Lt,{render:r.render,step:r,field:Object.assign({setValue:(e,t)=>m(e,t),rawValues:c(),getValue:e=>c(e)},s),error:p,errorDisplayed:l,informations:i},a?a(s,h):t.cloneElement(o,Object.assign({},h)))},$t=({entry:e,children:t,render:n,functionalProperty:o,step:a,informations:l,className:i})=>{const{formState:s}=f();if("object"==typeof e)return t;const c=e.split(".").reduce(((e,t)=>e&&e[t]),s.errors),u=e.split(".").reduce(((e,t)=>e&&e[t]),s.dirtyFields),p=e.split(".").reduce(((e,t)=>e&&e[t]),s.touchedFields),d=s.isSubmitted||u||p;if(!o(e,void 0===(null==a?void 0:a.visible)||a.visible,l,c))return null;const h=o(e,null===(null==a?void 0:a.label)?null:(null==a?void 0:a.label)||e,l),b=j();return n?n({entry:e,label:h,error:c,help:null==a?void 0:a.help,children:t}):r.createElement("div",{className:`mrf-mt_10 ${i||""}`,style:{position:"relative"}},h&&r.createElement("label",{className:"mrf-flex mrf-ai_center mrf-mb_5",htmlFor:e},r.createElement("span",null,h),(null==a?void 0:a.help)&&r.createElement(r.Fragment,null,r.createElement(O,{html:!0,place:"bottom",id:b}),r.createElement("span",{className:"mrf-flex mrf-ai_center","data-html":!0,"data-tip":null==a?void 0:a.help,"data-for":b},r.createElement(Ie,{style:{color:"gray",width:17,marginLeft:".5rem",cursor:"help"}})))),t,c&&r.createElement("div",{className:m("mrf-feedback",{"mrf-txt_red":!!d})},c.message))},Wt=e=>e.render?e.render(Object.assign(Object.assign({},e),{error:e.error})):e.children,Mt=(e,t,r,n)=>bt(r)?r:t?[]:e;function It(e,t,r){return(e||[]).reduce(((e,n)=>{if("object"==typeof n)return Object.assign(Object.assign({},e),It(n.flow,t,r));const o=t[n];return o?Object.assign(Object.assign({},e),{[n]:Mt(r?r[n]:null,o.array||o.isMulti||!1,o.defaultValue)}):e}),{})}const qt=(e={},t={},r,n)=>{const o=ut(r).map((e=>e.map((e=>"object"==typeof e?e.flow:e)))).map(ht).getOrElse(Object.keys(n||{}));return Object.entries(n||{}).filter((([e])=>o.includes(e))).reduce(((r,[o,a])=>{var l,i;let s=null;e&&(s=e[o]);const c=t[o];return!s&&bt(c)&&(s=c),a.array&&!a.render?Object.assign(Object.assign({},r),{[o]:(s||[]).map((e=>{var r,a;return{value:"object"!=typeof e||e instanceof Date||Array.isArray(e)?e:qt(e,t,null===(r=null==n?void 0:n[o])||void 0===r?void 0:r.flow,(null===(a=null==n?void 0:n[o])||void 0===a?void 0:a.schema)||{})}}))}):"object"!=typeof s||s instanceof Date||Array.isArray(s)?Object.assign(Object.assign({},r),{[o]:void 0===s?Array.isArray(s)?[]:a.type===fe.object?{}:null:s}):Object.assign(Object.assign({},r),{[o]:qt(s,t,null===(l=null==n?void 0:n[o])||void 0===l?void 0:l.flow,(null===(i=null==n?void 0:n[o])||void 0===i?void 0:i.schema)||{})})}),e)},Bt=(e,t)=>Object.entries(e).reduce(((e,r)=>{var n,o;const[a,l]=r;if(Array.isArray(l)){return ut(t).map((e=>e[a])).map((e=>!!e.array&&!e.render)).getOrElse(!1)?Object.assign(Object.assign({},e),{[a]:l.map((e=>{var r;return!e.value||"object"!=typeof e.value||e.value instanceof Date&&!Array.isArray(e.value)?e.value:Bt(e.value,(null===(r=t[a])||void 0===r?void 0:r.schema)||{})}))}):Object.assign(Object.assign({},e),{[a]:l})}if(!(!l||"object"!=typeof l||l instanceof Date&&!Array.isArray(l)))return Object.assign(Object.assign({},e),{[a]:Bt(l,(null===(n=t[a])||void 0===n?void 0:n.schema)||{})});if("json"!==(null===(o=t[a])||void 0===o?void 0:o.type))return Object.assign(Object.assign({},e),{[a]:l});try{return Object.assign(Object.assign({},e),{[a]:JSON.parse(l)})}catch(t){return Object.assign(Object.assign({},e),{[a]:l})}}),{}),Ht=(t,r,n)=>{const o=t||Object.keys(r),{shape:a,dependencies:l}=Ft(o,r);return e.object().shape(a,l).validate(n,{abortEarly:!1})},Jt=r.memo((({options:e,control:t,schema:r,onSubmit:n,handleSubmit:o})=>{const a=h({control:t}),l=i(E((e=>o((()=>{n(e)}))()),250,{leading:!0}),[]);return gt((()=>{(null==e?void 0:e.autosubmit)&&l(a)}),[a]),(null==e?void 0:e.watch)&&("function"==typeof e.watch?e.watch(Bt(a,r)):(console.group("react-form watch"),console.log(Bt(a,r)),console.groupEnd())),null}),(()=>!0)),Rt=r.forwardRef((function({schema:t,flow:n,value:a,inputWrapper:i,onSubmit:m,onError:u=(()=>{}),footer:p,style:f={},className:d,options:h={},nostyle:v},g){const O=n||Object.keys(t),j=(e,t)=>h.httpClient?h.httpClient(e,t):fetch(e,{method:t,headers:{Accept:"application/json","Content-Type":"application/json"}}),E=It(O,t,a),w=b({resolver:(r,n,o)=>c((r=>{const{shape:n,dependencies:o}=Ft(O,t,[],r);return e.object().shape(n,o)})(r))(r,n,o),shouldFocusError:!1,mode:"onChange"}),[k,x]=o(!1),{handleSubmit:_,reset:C,trigger:N,getValues:V}=w;l((()=>{h.showErrorsOnStart&&N()}),[N,k]),gt((()=>{C(Object.assign({},qt(a,E,n,t)))}),[a,t,n]);const S=(e,t,r,n)=>"function"==typeof t?t({rawValues:V(),value:V(e),informations:r,getValue:e=>V(e),error:n}):t;return s(g,(()=>({handleSubmit:()=>_((e=>{const r=Bt(e,t);m(r)}),u)(),trigger:N,methods:Object.assign(Object.assign({},w),{data:()=>Bt(V(),t)})}))),r.createElement(y,Object.assign({},w),r.createElement(Jt,{options:h,control:w.control,schema:t,onSubmit:m,handleSubmit:_}),r.createElement("form",{className:d||"mrf-pr_15 mrf-w_100",onSubmit:_((e=>{const r=Bt(e,t);m(r)}),u)},O.map(((e,n)=>{if("object"==typeof e)return r.createElement(Kt,{key:n,entry:e,schema:t,inputWrapper:i,httpClient:j,functionalProperty:S});const o=t[e];if(!o&&"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};return r.createElement($t,{key:`${e}-${n}`,entry:e,functionalProperty:S,render:i,step:o,informations:a},r.createElement(Yt,{key:n,entry:e,step:o,schema:t,inputWrapper:i,httpClient:j,functionalProperty:S,informations:a}))})),r.createElement(Ut,{render:p,reset:()=>C(E),valid:_((e=>m(Bt(e,t))),u),actions:h.actions})))})),Ut=e=>{var t,n,o,a,l,i,s,c,m,u,p,f,d,h;if(e.render)return e.render({reset:e.reset,valid:e.valid});const b=void 0===(null===(n=null===(t=e.actions)||void 0===t?void 0:t.submit)||void 0===n?void 0:n.display)||!!(null===(a=null===(o=e.actions)||void 0===o?void 0:o.submit)||void 0===a?void 0:a.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===(h=null===(d=e.actions)||void 0===d?void 0:d.submit)||void 0===h?void 0:h.label)||"Save"))},Kt=e=>{let{entry:t,schema:n,inputWrapper:o,httpClient:a,functionalProperty:l}=e;const{formState:{errors:i,dirtyFields:s,touchedFields:c}}=f(),m=Xt(t).some((e=>!!i[e]&&(s[e]||c[e])));return r.createElement(mt,Object.assign({},t,{errored:m}),t.flow.map(((t,i)=>{if("object"==typeof t)return r.createElement(Kt,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};return r.createElement($t,{key:`collapse-${t}-${i}`,entry:t,functionalProperty:l,step:s,render:o,informations:c},r.createElement(Yt,{entry:t,step:s,schema:n,inputWrapper:o,httpClient:a,defaultValue:null==s?void 0:s.defaultValue,functionalProperty:l,informations:c}))})))},Yt=e=>{let{entry:t,realEntry:n,step:i,schema:s,inputWrapper:c,httpClient:p,defaultValue:d,index:h,functionalProperty:b,informations:y}=e;const{formState:{errors:g,dirtyFields:O,touchedFields:j,isSubmitted:E},control:V,getValues:S,setValue:P,watch:T}=f(),z=t.split(".").reduce(((e,t)=>e&&e[t]),g),A=t.split(".").reduce(((e,t)=>e&&e[t]),O),F=t.split(".").reduce(((e,t)=>e&&e[t]),j),L=!!z&&(E||A||F);if(i=i,i.onAfterChange){const e=T(),r=t.replace("[",".").replace("]","").split(".").reduce(((e,t)=>e&&e[t]),e)||{},n=(e=>{const t=a();return l((()=>{t.current=e}),[e]),t.current})(Bt(r,s)),o=Bt(r,s);(!u(o,n)||void 0!==o&&void 0===n)&&i.onAfterChange({entry:t,value:S(t),rawValues:S(),previousValue:n,getValue:e=>S(e),setValue:P,onChange:e=>P(t,e),informations:y})}if(i.array)return r.createElement(Wt,{render:i.render,rawValues:S(),value:S(t),onChange:e=>P(t,e),setValue:(e,t)=>P(e,t),getValue:e=>S(e),informations:y,error:!!z},r.createElement(Gt,{entry:t,step:i,disabled:b(t,i.disabled||!1,y,z),component:(e,o)=>{var a;return r.createElement(Yt,{entry:`${t}.${o}.value`,step:Object.assign(Object.assign({},s[n||t]),{render:i.itemRender,onChange:void 0,array:!1,onAfterChange:i.onAfterChange}),schema:s,inputWrapper:c,httpClient:p,defaultValue:null===(a=e.defaultValue)||void 0===a?void 0:a.value,index:o,functionalProperty:b,informations:{path:t,parent:y,index:o}})}}));switch(i.type){case fe.string:switch(i.format){case de.text:return r.createElement(Dt,{step:i,entry:t,errorDisplayed:L,informations:y},r.createElement("textarea",{className:m("mrf-input",i.className,{"mrf-mrf-input__invalid":!!L})}));case de.code:case de.singleLineCode:const e=i.format===de.code?Nt:Pt;return r.createElement(Dt,{step:i,entry:t,errorDisplayed:L,informations:y},r.createElement(e,{className:m(null==i?void 0:i.className,{"mrf-input__invalid":!!z})}));case de.markdown:return r.createElement(Dt,{step:i,entry:t,errorDisplayed:L,informations:y},r.createElement(St,{className:m(i.className,{"mrf-input__invalid":!!L})}));case de.buttonsSelect:case de.select:return r.createElement(Dt,{step:i,entry:t,errorDisplayed:L,informations:y},r.createElement(jt,Object.assign({className:m("mrf-flex_grow_1",i.className,{"mrf-input__invalid":!!L}),disabled:b(t,i.disabled||!1,y,z)},i.props,{possibleValues:i.options,httpClient:p,isMulti:i.isMulti,createOption:i.createOption,onCreateOption:i.onCreateOption,transformer:i.transformer,buttons:i.format===de.buttonsSelect,optionsFrom:i.optionsFrom})));default:return r.createElement(Dt,{step:i,entry:t,errorDisplayed:L,informations:y},r.createElement("input",{type:i.format||"text",className:m("mrf-input",i.className,{"mrf-input__invalid":!!L})}))}case fe.number:switch(i.format){case de.buttonsSelect:case de.select:return r.createElement(Dt,{step:i,entry:t,errorDisplayed:L,informations:y},r.createElement(jt,Object.assign({className:m("mrf-content",i.className,{"mrf-input__invalid":!!L})},i.props,{possibleValues:i.options,httpClient:p,isMulti:i.isMulti,createOption:i.createOption,onCreateOption:i.onCreateOption,transformer:i.transformer,buttons:i.format===de.buttonsSelect,optionsFrom:i.optionsFrom})));default:return r.createElement(Dt,{step:i,entry:t,errorDisplayed:L,informations:y},r.createElement("input",{type:i.format||"number",className:m("mrf-input",i.className,{"mrf-input__invalid":!!L})}))}case fe.bool:return r.createElement(Dt,{step:i,entry:t,errorDisplayed:L,informations:y},r.createElement(nt,{className:i.className,errorDisplayed:L}));case fe.object:switch(i.format){case de.buttonsSelect:case de.select:return r.createElement(Dt,{step:i,entry:t,errorDisplayed:L,informations:y},r.createElement(jt,Object.assign({className:m("mrf-flex_grow_1",i.className,{"mrf-input__invalid":!!L})},i.props,{possibleValues:i.options,httpClient:p,isMulti:i.isMulti,createOption:i.createOption,onCreateOption:i.onCreateOption,transformer:i.transformer,buttons:i.format===de.buttonsSelect,optionsFrom:i.optionsFrom})));case de.form:const e=ut(i.flow).getOrElse(ut(i.schema).map((e=>Object.keys(e))).getOrElse([]));return r.createElement(Wt,{render:i.render,rawValues:S(),value:S(t),onChange:e=>P(t,e,{shouldValidate:!0}),setValue:(e,t)=>P(e,t),getValue:e=>S(e),informations:y},r.createElement(Qt,{schema:i.schema,flow:e,step:i,parent:t,inputWrapper:c,maybeCustomHttpClient:p,value:S(t)||d,functionalProperty:b,errorDisplayed:L,informations:y}));case de.code:return r.createElement(Dt,{step:i,entry:t,errorDisplayed:L,informations:y,component:(e,t)=>r.createElement(Nt,Object.assign({},t,{className:m(null==i?void 0:i.className,{"mrf-input__invalid":!!z}),onChange:t=>{let r;try{r=JSON.parse(t)}catch(e){r=t}e.onChange(r),ut(null==i?void 0:i.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(Dt,{step:i,entry:t,errorDisplayed:L,informations:y},r.createElement(xt,{className:m(i.className,{"mrf-input__invalid":!!L})}))}case fe.date:switch(i.format){case de.datetime:return console.debug("datetime"),r.createElement(Dt,{step:i,entry:t,informations:y,component:e=>r.createElement(k,{dateAdapter:w},r.createElement(C,{value:e.value,onChange:e.onChange,renderInput:e=>r.createElement(N,Object.assign({},e))}))});case de.time:return r.createElement(Dt,{step:i,entry:t,informations:y,component:e=>r.createElement(k,{dateAdapter:w},r.createElement(_,{value:e.value,onChange:e.onChange,renderInput:e=>r.createElement(N,Object.assign({},e))}))});default:return r.createElement(Dt,{step:i,entry:t,informations:y,component:e=>r.createElement(k,{dateAdapter:w},r.createElement(x,{value:e.value,onChange:e.onChange,renderInput:e=>r.createElement(N,Object.assign({},e))}))})}case fe.file:return r.createElement(v,{name:t,control:V,render:({field:e})=>r.createElement(Dt,{step:i,entry:t,errorDisplayed:L,informations:y},r.createElement((({onChange:n})=>{const[a,l]=o(!1),[s,c]=o(void 0),u=e.value||[];return r.createElement("div",{className:m("mrf-flex","mrf-ai_center",null==i?void 0:i.className,{"mrf-input__invalid":!!z})},r.createElement("input",{ref:e=>c(e),type:"file",multiple:!0,className:"mrf-d_none",onChange:e=>{const t=e.target.files;l(!0),n&&n(t?[...t]:[]),l(!1)}}),r.createElement("button",{type:"button",className:"mrf-btn mrf-btn_sm mrf-flex mrf-ai_center",disabled:a||b(t,(null==i?void 0:i.disabled)||!1,y,z),onClick:()=>{null==s||s.click()}},a&&r.createElement(He,null),!a&&r.createElement(Ue,null),r.createElement("span",{className:"mrf-ml_5"},"Select file(s)")),r.createElement("span",{className:"mrf-ml_5"},u.length<=0?"No files selected":u.map((e=>e.name)).join(" , ")))}),null))});case fe.json:return r.createElement(Dt,{step:i,entry:t,informations:y,component:(e,t)=>r.createElement(Nt,Object.assign({},t,{className:m(null==i?void 0:i.className,{"mrf-input__invalid":!!z}),onChange:t=>{e.onChange(t),ut(null==i?void 0:i.onChange).map((e=>e({rawValues:S(),value:t,setValue:P})))},value:e.value}))});default:return null}},Gt=({entry:e,step:t,component:n,disabled:o})=>{const{getValues:a,setValue:l,control:i,trigger:s,formState:c}=f(),u=a(e),p=e.split(".").reduce(((e,t)=>e&&e[t]),c.errors),d=e.split(".").reduce(((e,t)=>e&&e[t]),c.dirtyFields),h=e.split(".").reduce(((e,t)=>e&&e[t]),c.touchedFields),b=!!p&&(c.isSubmitted||d||h),{fields:y,append:v,remove:O}=g({control:i,name:e});return r.createElement(r.Fragment,null,y.map(((t,a)=>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:u[a]}),a)),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:o,onClick:()=>{O(a),s(e)}},r.createElement(rt,{size:16})))))),r.createElement("div",{className:"mrf-flex mrf-jc_flex_end"},r.createElement("button",{type:"button",className:m("mrf-btn","mrf-btn_blue","mrf-btn_sm","mrf-mt_5",{"mrf-input__invalid":!!b}),onClick:()=>{const r=qt({},a(e),t.flow,t.schema);v({value:t.addableDefaultValue||(t.type===fe.object&&r?r:Mt())}),ut(t.onChange).map((t=>t({rawValues:a(),value:a(e),setValue:l})))},disabled:o},"Add"),p&&r.createElement("div",{className:"mrf-invalid-feedback"},p.message)))},Qt=({schema:e,flow:t,parent:n,inputWrapper:a,maybeCustomHttpClient:l,errorDisplayed:i,value:s,step:c,functionalProperty:u,informations:p})=>{var d;const{getValues:b,setValue:y,control:v,formState:{errors:g,dirtyFields:O,touchedFields:j}}=f(),[E,w]=o(!!c.collapsed);h({name:(null===(d=null==c?void 0:c.conditionalSchema)||void 0===d?void 0:d.ref)||"",control:v});const k=ut(c.conditionalSchema).map((e=>{const t=ut(e.ref).map((e=>b(e))).getOrNull(),r=b(),n=ut(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});gt((()=>{const e=It(k.flow,k.schema,b(n));y(n,e,{shouldValidate:!1})}),[k.schema]);const x=k.flow.reduce(((e,t)=>[...e,{step:"string"==typeof t?k.schema[t]:k.schema[t.label],entry:t}]),[]),_=x.length>=1&&null!==c.label;return r.createElement("div",{className:m(c.className,{"mrf-nestedform__border":_,"mrf-border__error":!!i}),style:{position:"relative"}},!!c.collapsable&&k.flow.length>1&&E&&r.createElement(Ge,{size:30,className:"mrf-cursor_pointer",style:{position:"absolute",top:-35,right:0,zIndex:100},strokeWidth:"2",onClick:()=>w(!E)}),!!c.collapsable&&k.flow.length>1&&!E&&r.createElement(Ze,{size:30,className:"mrf-cursor_pointer",style:{position:"absolute",top:-35,right:0,zIndex:100},strokeWidth:"2",onClick:()=>w(!E)}),x.map((({step:t,entry:o},i)=>"object"==typeof o?r.createElement(Kt,{key:i,entry:o,schema:e,inputWrapper:a,httpClient:l,functionalProperty:u}):t||"string"!=typeof o?r.createElement($t,{key:`${o}.${i}`,className:m({"mrf-display__none":E&&!t.visibleOnCollapse}),entry:`${n}.${o}`,functionalProperty:u,step:t,render:a,informations:{path:o,parent:p}},r.createElement(Yt,{key:`step.${o}.${i}`,entry:`${n}.${o}`,realEntry:o,step:k.schema[o],schema:k.schema,inputWrapper:a,httpClient:l,defaultValue:s&&s[o],functionalProperty:u,informations:{path:o,parent:p}})):(console.error(`no step found for the entry "${o}" in the given schema. Your form might not work properly. Please fix it`),null))))};function Xt(e){return e.flow.map((e=>"string"==typeof e?e:Xt(e))).flat()}export{nt as BooleanInput,Nt as CodeInput,mt as Collapse,Rt as Form,St as MarkdownInput,xt as ObjectInput,jt as SelectInput,Pt as SingleLineCode,$e as constraints,de as format,fe as type,Ht as validate};
1
+ import*as e from"yup";import*as t from"react";import r,{forwardRef as n,useState as a,useRef as o,useEffect as l,useCallback as i,useImperativeHandle as s,useMemo as c}from"react";import{yupResolver as m}from"@hookform/resolvers/yup";import u from"classnames";import p from"fast-deep-equal";import f from"prop-types";import{useFormContext as d,useController as h,useWatch as b,useForm as v,FormProvider as y,Controller as g,useFieldArray as O}from"react-hook-form";import j from"lodash.debounce";import{AdapterDateFns as E}from"@mui/x-date-pickers/AdapterDateFns";import{LocalizationProvider as w}from"@mui/x-date-pickers/LocalizationProvider";import{DatePicker as x}from"@mui/x-date-pickers/DatePicker";import{TimePicker as k}from"@mui/x-date-pickers/TimePicker";import{DateTimePicker as _}from"@mui/x-date-pickers/DateTimePicker";import C from"@mui/material/TextField";import N from"react-select/creatable";import V from"react-select";import S from"object-hash";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 W}from"@codemirror/lang-json";import{css as z}from"@codemirror/lang-css";import{markdown as A}from"@codemirror/lang-markdown";import{EditorView as F,highlightSpecialChars as D,drawSelection as L,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 he={array:"array",select:"select",code:"code",markdown:"markdown",text:"textarea",textarea:"textarea",email:"email",password:"password",hidden:"hidden",form:"form",buttonsSelect:"buttons",singleLineCode:"singleLineCode",datetime:"datetime-local",time:"time"};Object.values(he);const be=(e="Value required")=>t=>t.required(e),ve=(e="That is not a valid url")=>t=>t.url(e),ye=(e="That is not a valid email")=>t=>t.email(e),ge=(e="That is not a valid uuid")=>t=>t.uuid(e),Oe=(e=/.*/,t="This field does not match the pattern")=>r=>r.matches(e,{message:t,excludeEmptyString:!0}),je=(e,t="Min value is required")=>r=>r.min(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),xe=(e="Negative value is required")=>t=>t.negative(e),ke=(e="an integer please")=>t=>t.integer(e),_e=(e,t=`This field must be less than ${e}`)=>(r,n,a)=>("number"!=typeof e&&a.push([n,e]),r.lessThan(Fe(e),t)),Ce=(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})},We=(e,t=`This value must be one of ${e.join(", ")}`)=>r=>r.oneOf(e.map(Fe),t),ze=(e,t=`This value can't include the following values ${e.join(", ")}`)=>r=>r.test("blacklist",t,(t=>!e.some((e=>(t||"").includes(e))))),Ae=t=>e.ref(t),Fe=e=>(null==e?void 0:e.ref)?Ae(e.ref):e,De={required:({message:e="Value required"})=>be(e),url:({message:e="That is not a valid url"})=>ve(e),email:({message:e="That is not a valid email"})=>ye(e),uuid:({message:e="That is not a valid uuid"})=>ge(e),matches:({regexp:e=/.*/,message:t="This field does not match the pattern"})=>Oe(e,t),min:({ref:e,message:t="Min value is required"})=>je(e,t),max:({ref:e,message:t="Max value is required"})=>Ee(e,t),positive:({message:e="Positive value is required"})=>we(e),negative:({message:e="Negative value is required"})=>xe(e),integer:({message:e="an integer please"})=>ke(e),lessThan:({ref:e,message:t=`This field must be less than ${e}`})=>_e(e,t),moreThan:({ref:e,message:t=`This field must be more than ${e}`})=>Ce(e,t),length:({ref:e,message:t=`The size of this collection must be ${e}`})=>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(", ")}`})=>We(e,t),blacklist:({arrayOfValues:e,message:t=`This value can't include the following values ${e.join(", ")}`})=>ze(e,t),ref:e=>Ae(e.ref)};var Le=Object.freeze({__proto__:null,required:be,url:ve,email:ye,uuid:ge,matches:Oe,min:je,max:Ee,positive:we,negative:xe,integer:ke,lessThan:_e,moreThan:Ce,length:Ne,supportedFormat:Ve,unsupportedFormat:Se,maxSize:Pe,test:Te,when:Me,oneOf:We,blacklist:ze,ref:Ae,jsonConstraints:De});function $e(){return $e=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},$e.apply(this,arguments)}function Re(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 Ie=n((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=Re(e,["color","size"]);return r.createElement("svg",$e({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 qe(){return qe=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},qe.apply(this,arguments)}function Be(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}Ie.propTypes={color:f.string,size:f.oneOfType([f.string,f.number])},Ie.displayName="Loader";var He=n((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=Be(e,["color","size"]);return r.createElement("svg",qe({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 Je(){return Je=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},Je.apply(this,arguments)}function Ue(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}He.propTypes={color:f.string,size:f.oneOfType([f.string,f.number])},He.displayName="Upload";var Ke=n((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=Ue(e,["color","size"]);return r.createElement("svg",Je({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 Ye(){return Ye=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},Ye.apply(this,arguments)}function Ge(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}Ke.propTypes={color:f.string,size:f.oneOfType([f.string,f.number])},Ke.displayName="ChevronDown";var Qe=n((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=Ge(e,["color","size"]);return r.createElement("svg",Ye({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),r.createElement("polyline",{points:"18 15 12 9 6 15"}))}));function Xe(){return Xe=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},Xe.apply(this,arguments)}function Ze(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}Qe.propTypes={color:f.string,size:f.oneOfType([f.string,f.number])},Qe.displayName="ChevronUp";var et=n((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=Ze(e,["color","size"]);return r.createElement("svg",Xe({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"}))}));et.propTypes={color:f.string,size:f.oneOfType([f.string,f.number])},et.displayName="Trash2";const tt=({onChange:e,value:t,readOnly:n,className:a,errorDisplayed:o})=>{const l=t=>{n||null==e||e(t)};let i=u("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 rt(){return rt=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},rt.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 at=n((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",rt({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 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}at.propTypes={color:f.string,size:f.oneOfType([f.string,f.number])},at.displayName="EyeOff";var it=n((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("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"}))}));it.propTypes={color:f.string,size:f.oneOfType([f.string,f.number])},it.displayName="Eye";const st=e=>{const[t,n]=a(e.initCollapsed||e.collapsed),o=e=>{e&&e.stopPropagation(),n(!t)};return r.createElement("div",null,r.createElement("hr",{className:u({"mrf-collapse_error":e.errored})}),r.createElement("div",{className:"mrf-cursor_pointer mrf-flex mrf-jc_between",onClick:o},r.createElement("span",{className:u("mrf-collapse_label",{"mrf-collapse_error":e.errored})},e.label),r.createElement("button",{type:"button",className:u("mrf-btn","mrf-btn_sm","mrf-ml_5",{"mrf-collapse_error":e.errored}),onClick:o},!!t&&r.createElement(it,{size:16}),!t&&r.createElement(at,{size:16}))),r.createElement("div",{className:u("mrf-ml_10",{"mrf-display__none":!!t,"mrf-flex":!!e.inline,"mrf-collapse__inline":!!e.inline})},e.children),e.lineEnd&&r.createElement("hr",null))};function ct(e){return null==e?ut:mt(e)}const mt=e=>({map:t=>ct(t(e)),flatMap:t=>ct(t(e)).getOrElse(ut),fold:(t,r)=>r(e),orElse:()=>ct(e),getOrElse:()=>e,getOrNull:()=>e,isDefined:()=>!0,exists:t=>ct(t(e)).isDefined()}),ut={map:()=>ut,flatMap:()=>ut,fold:e=>e(),orElse:e=>ct(e),getOrElse:e=>e,getOrNull:()=>{},isDefined:()=>!1,exists:()=>!1},pt=e=>Boolean(e&&"function"==typeof e.then),ft=e=>e.some(Array.isArray)?ft(e.flat()):e;function dt(e){return null!=e}const ht=e=>e&&Array.isArray(e)?e.map(ht):e&&"object"==typeof e?Object.fromEntries(Object.entries(e).map((([e,t])=>pt(t)?[e,`promise-${e}`]:"object"==typeof t?[e,ht(t)]:[e,t]))):e,bt=e=>S(ht(e)),vt=(e,t)=>{const r=o(!0),n=o(t);l((()=>{if(r.current)return e(),void(r.current=!1);bt(t)!==bt(n.current)&&(n.current=Object.assign({},t),e())}),t)},yt=(e,t=[],r=!1)=>{if(null===e||!e)return null;if(r)return ct(e).map((e=>(Array.isArray(e)?e||[]:"object"==typeof e?Object.values(e):e).map((e=>yt(e,t,!1))))).getOrElse([]);const n=ct(t.find((t=>p(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)})},gt=e=>{const{getValues:t}=d();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))),[i,s]=a(!0),[c,m]=a(o),[p,f]=a();l((()=>{!i&&c.length&&f(yt(e.value||e.defaultValue,c,e.isMulti))}),[e.value,c,e.defaultValue,i]),l((()=>{if(e.optionsFrom){if(ct(e.fetchCondition).map((e=>e())).getOrElse(!0)){let r;if(s(!0),pt(e.optionsFrom))r=e.optionsFrom;else if("function"==typeof e.optionsFrom){const n=e.optionsFrom({rawValues:t(),value:t(e.id)});r=pt(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(p)?p.find((t=>t.value===e.value)):e.value===(p?p.value:p)))||null),s(!1)}))}}else m((e.possibleValues||[]).map((e=>n(e)))),setTimeout((()=>s(!1)),250)}),[e.optionsFrom,e.possibleValues]);const h=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)},b=(t,r)=>{const n=ct(r).map((e=>e(t))).flatMap((t=>{return r=t,e.transformer?"function"==typeof e.transformer?ct(e.transformer(r)):mt({label:r[e.transformer.label],value:r[e.transformer.value]}):ut;var r})).getOrElse(yt(t,c));m([...c,n]),e.isMulti?h([...p,n]):h(n)};return e.buttons?r.createElement("div",{style:{display:"flex"}},c.map(((t,n)=>{const a=!!p&&(e.isMulti?p.includes(t):t.value===p.value);return r.createElement("button",{key:n,type:"button",disabled:e.disabled,className:u(e.className,"mrf-btn mrf-btn_grey mrf-ml_5",{active:a}),onClick:()=>(t=>{if(e.isMulti){const e=p;return e.includes(t)?h(e.filter((e=>e.value!==t.value))):h([...e,t])}return h(t)})(t)},t.label)}))):e.createOption?r.createElement(N,Object.assign({},e,{name:`${e.label}-search`,isLoading:i,value:p,isDisabled:i||e.disabled,placeholder:e.placeholder,onChange:h,options:c,onCreateOption:t=>b(t,e.onCreateOption),classNamePrefix:"react-form-select",className:e.className})):r.createElement(V,Object.assign({},e,{name:`${e.label}-search`,isLoading:i,value:p,defaultValue:p,isDisabled:i||e.disabled,placeholder:e.placeholder,options:c,onChange:h,classNamePrefix:"react-form-select",className:e.className}))};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 jt(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 Et=n((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=jt(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("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"}))}));Et.propTypes={color:f.string,size:f.oneOfType([f.string,f.number])},Et.displayName="PlusCircle";const wt=e=>{const[r,n]=a({});l((()=>{n(Object.fromEntries(Object.entries(e.value||{}).map((([e,t],r)=>[Date.now()+r,{key:e,value:t}]))))}),[]),l((()=>{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),{});p(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})),{}))},i=()=>{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(Et,null)),Object.entries(r||{}).map((([a,{key:l,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:l,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(Et,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:i},t.createElement(Et,null))))))},xt={javascript:T,css:z,json:W,html:M,markdown:A};function kt(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(),D(),q(),xt[t](),H(),L(),$(),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 _t({onChange:e,value:t,mode:n="javascript",tabSize:i=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=o(),[h,b]=a();return l((()=>{const r=kt(d.current,n,i,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)}),[]),l((()=>{h&&("object"==typeof t?JSON.stringify(t,null,2):t)!==h.state.doc.toString()&&h.dispatch({changes:{from:0,to:h.state.doc.length,insert:null==t?"":"object"==typeof t?JSON.stringify(t,null,2):t}})}),[t]),r.createElement("div",{className:p,ref:d})}const Ct=new me.Converter({omitExtraWLInCodeBlocks:!0,ghCompatibleHeaderId:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,tables:!0,tasklists:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!0,emoji:!0,ghMentionsLink:"/{u}"}),Nt=e=>{const[t,n]=a(e.preview||!1),i=o();l((()=>{t&&c()}),[t,e.value]);const s=[{name:"Add header",icon:"heading",inject:e=>e?[{from:e.from,insert:"# "}]:"#"},{name:"Add bold text",icon:"bold",inject:e=>e?[{from:e.from,insert:"**"},{from:e.to,insert:"**"}]:"** **"},{name:"Add italic text",icon:"italic",inject:e=>e?[{from:e.from,insert:"*"},{from:e.to,insert:"*"}]:"* *"},{name:"Add strikethrough text",icon:"strikethrough",inject:e=>e?[{from:e.from,insert:"~~"},{from:e.to,insert:"~~"}]:"~~ ~~"},{name:"Add link",icon:"link",inject:e=>e?[{from:e.from,insert:"["},{from:e.to,insert:"](url)"}]:"[ ](url)"},{name:"Add code",icon:"code",inject:e=>e?[{from:e.from,insert:"```\n"},{from:e.to,insert:"\n```\n"}]:"```\n\n```\n"},{name:"Add quotes",icon:"quote-right",inject:e=>e?[{from:e.from,insert:"> "}]:"> "},{name:"Add image",icon:"image",inject:e=>e?[{from:e.from,insert:"!["},{from:e.to,insert:"](image-url)"}]:"![ ](image-url)"},{name:"Add unordered list",icon:"list-ul",inject:e=>e?[{from:e.from,insert:"* "}]:"* "},{name:"Add ordered list",icon:"list-ol",inject:e=>e?[{from:e.from,insert:"1. "}]:"1. "},{name:"Add check list",icon:"tasks",inject:e=>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:u(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:()=>n(!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:()=>n(!0)},"Preview"))),r.createElement("div",{className:"mrf-flex mrf-flexWrap"},s.map(((e,t)=>r.createElement("button",{type:"button",className:u("mrf-btn_for_descriptionToolbar"),"aria-label":e.name,title:e.name,key:`toolbar-btn-${t}`,onClick:()=>{const t=i.current,r=t.state.selection.ranges;1===r.length&&r[0].from===r[0].to?t.dispatch({changes:{from:0,to:t.state.doc.length,insert:t.state.doc.toString()+e.inject()}}):t.dispatch(t.state.changeByRange((t=>({changes:e.inject(t),range:t}))))}},r.createElement("i",{className:`fas fa-${e.icon}`})))))),!t&&r.createElement(_t,Object.assign({},e,{setRef:e=>i.current=e})),t&&r.createElement("div",{className:"mrf-preview",dangerouslySetInnerHTML:{__html:Ct.makeHtml(e.value||"")}}))};function Vt({onChange:e,value:t,mode:n="javascript",tabSize:a=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=o();return l((()=>{kt(u.current,n,a,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"}})}const St={[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()},Pt=(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(Mt(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)=>Tt(t,e,r,n)),i)}if(t.type===de.object&&t.schema){if(!Object.keys(t.schema).length)return e.object();const l=Mt(t.flow||Object.keys(t.schema),t.schema,n,a);return o.reduce(((e,t)=>Tt(t,e,r,n)),e.object().shape(l.shape,n))}if(t.type===de.object&&t.conditionalSchema){const{schema:l,flow:i}=ct(t.conditionalSchema).map((e=>{const t=ct(e.ref).map((e=>a[e])).getOrNull();return ct(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=Mt(i||Object.keys(l),l,n,a);return o.reduce(((e,t)=>Tt(t,e,r,n)),e.object().shape(s.shape,n))}return o.reduce(((e,t)=>Tt(t,e,r,n)),St[t.type]())},Tt=(e,t,r,n)=>"function"==typeof e?e(t,r,n):De[e.type](e)(t,r,n),Mt=(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),Mt(a.flow,t,r,n).shape);if(!t[a])return e;const o=Pt(t[a],a,r,n);return Object.assign(Object.assign({},e),{[a]:o})}),{});return{shape:a,dependencies:r}};function Wt(){return Wt=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},Wt.apply(this,arguments)}function zt(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 At=n((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,o=e.size,l=void 0===o?24:o,i=zt(e,["color","size"]);return r.createElement("svg",Wt({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"}))}));At.propTypes={color:f.string,size:f.oneOfType([f.string,f.number])},At.displayName="HelpCircle";const Ft=({entry:e,children:t,render:n,functionalProperty:a,step:o,informations:l,className:i})=>{const{formState:s}=d();if("object"==typeof e)return t;const c=e.split(".").reduce(((e,t)=>e&&e[t]),s.errors),m=e.split(".").reduce(((e,t)=>e&&e[t]),s.dirtyFields),p=e.split(".").reduce(((e,t)=>e&&e[t]),s.touchedFields),f=s.isSubmitted||m||p;if(!a(e,void 0===(null==o?void 0:o.visible)||o.visible,l,c))return null;const h=a(e,null===(null==o?void 0:o.label)?null:(null==o?void 0:o.label)||e,l),b=fe();return n?n({entry:e,label:h,error:c,help:null==o?void 0:o.help,children:t}):r.createElement("div",{className:`mrf-mt_10 ${i||""}`,style:{position:"relative"}},h&&r.createElement("label",{className:"mrf-flex mrf-ai_center mrf-mb_5",htmlFor:e},r.createElement("span",null,h),(null==o?void 0:o.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==o?void 0:o.help,"data-for":b},r.createElement(At,{style:{color:"gray",width:17,marginLeft:".5rem",cursor:"help"}})))),t,c&&r.createElement("div",{className:u("mrf-feedback",{"mrf-txt_red":!!f})},c.message))},Dt=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&&bt(t.step)===bt(e.step)))),Lt=e=>{const{step:r,entry:n,children:a,component:o,errorDisplayed:l=!1,informations:i,deactivateReactMemo:s,inputWrapper:c}=e,{field:m}=h({defaultValue:dt(r.defaultValue)?r.defaultValue:null,name:n}),{getValues:u,setValue:p,formState:{errors:f}}=d(),b=n.split(".").reduce(((e,t)=>e&&e[t]),f),v=(e,t)=>"function"==typeof t?t({rawValues:u(),value:u(e),informations:i,error:b,getValue:e=>u(e)}):t,y=Object.assign(Object.assign({name:m.name},r.props),{id:n,readOnly:v(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===m.value?e:null;m.onChange(t),ct(r.onChange).map((e=>e({rawValues:u(),value:t,setValue:p})))},value:m.value});return t.createElement(Ft,{key:`collapse-${n}`,entry:n,functionalProperty:v,step:r,render:c,informations:i},t.createElement(Dt,{render:r.render,step:r,field:Object.assign({setValue:(e,t)=>p(e,t),rawValues:u(),getValue:e=>u(e)},m),error:b,errorDisplayed:l,informations:i,deactivateReactMemo:s},o?o(m,y):t.cloneElement(a,Object.assign({},y))))},$t=e=>e.render?e.render(Object.assign(Object.assign({},e),{error:e.error})):e.children,Rt=(e,t,r,n)=>dt(r)?r:t?[]:e;function It(e,t,r){return(e||[]).reduce(((e,n)=>{if("object"==typeof n)return Object.assign(Object.assign({},e),It(n.flow,t,r));const a=t[n];return a?Object.assign(Object.assign({},e),{[n]:Rt(r?r[n]:null,a.array||a.isMulti||!1,a.defaultValue)}):e}),{})}const qt=(e={},t={},r,n)=>{const a=ct(r).map((e=>e.map((e=>"object"==typeof e?e.flow:e)))).map(ft).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&&dt(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:qt(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)?[]:o.type===de.object?{}:null:s}):Object.assign(Object.assign({},r),{[a]:qt(s,t,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)},Bt=(e,t)=>Object.entries(e).reduce(((e,r)=>{var n,a;const[o,l]=r;if(Array.isArray(l)){return ct(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:Bt(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]:Bt(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})}}),{}),Ht=(t,r,n)=>{const a=t||Object.keys(r),{shape:o,dependencies:l}=Mt(a,r);return e.object().shape(o,l).validate(n,{abortEarly:!1})},Jt=r.memo((({options:e,control:t,schema:r,onSubmit:n,handleSubmit:a})=>{const o=b({control:t}),l=i(j((e=>a((()=>{n(e)}))()),250,{leading:!0}),[]);return vt((()=>{(null==e?void 0:e.autosubmit)&&l(o)}),[o]),(null==e?void 0:e.watch)&&("function"==typeof e.watch?e.watch(Bt(o,r)):(console.group("react-form watch"),console.log(Bt(o,r)),console.groupEnd())),null}),(()=>!0)),Ut=r.forwardRef((function({schema:t,flow:n,value:o,inputWrapper:i,onSubmit:c,onError:u=(()=>{}),footer:p,style:f={},className:d,options:h={},nostyle:b},g){const O=n||Object.keys(t),j=(e,t)=>h.httpClient?h.httpClient(e,t):fetch(e,{method:t,headers:{Accept:"application/json","Content-Type":"application/json"}}),E=It(O,t,o),w=v({resolver:(r,n,a)=>m((r=>{const{shape:n,dependencies:a}=Mt(O,t,[],r);return e.object().shape(n,a)})(r))(r,n,a),shouldFocusError:!1,mode:"onChange"}),[x,k]=a(!1),{handleSubmit:_,reset:C,trigger:N,getValues:V}=w;l((()=>{h.showErrorsOnStart&&N()}),[N,x]),vt((()=>{C(Object.assign({},qt(o,E,n,t)))}),[o,t,n]);const S=(e,t,r,n)=>"function"==typeof t?t({rawValues:V(),value:V(e),informations:r,getValue:e=>V(e),error:n}):t;return s(g,(()=>({handleSubmit:()=>_((e=>{const r=Bt(e,t);c(r)}),u)(),trigger:N,methods:Object.assign(Object.assign({},w),{data:()=>Bt(V(),t)})}))),r.createElement(y,Object.assign({},w),r.createElement(Jt,{options:h,control:w.control,schema:t,onSubmit:c,handleSubmit:_}),r.createElement("form",{className:d||"mrf-pr_15 mrf-w_100",onSubmit:_((e=>{const r=Bt(e,t);c(r)}),u)},O.map(((e,n)=>{if("object"==typeof e)return r.createElement(Yt,{key:n,entry:e,schema:t,inputWrapper:i,httpClient:j,functionalProperty:S});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};return r.createElement(Gt,{key:n,entry:e,step:a,schema:t,inputWrapper:i,httpClient:j,functionalProperty:S,informations:o})})),r.createElement(Kt,{render:p,reset:()=>C(E),valid:_((e=>c(Bt(e,t))),u),actions:h.actions})))})),Kt=e=>{var t,n,a,o,l,i,s,c,m,u,p,f,d,h;if(e.render)return e.render({reset:e.reset,valid:e.valid});const b=void 0===(null===(n=null===(t=e.actions)||void 0===t?void 0:t.submit)||void 0===n?void 0:n.display)||!!(null===(o=null===(a=e.actions)||void 0===a?void 0:a.submit)||void 0===o?void 0:o.display);return r.createElement("div",{className:"mrf-flex mrf-jc_end mrf-mt_5"},(null===(i=null===(l=e.actions)||void 0===l?void 0:l.cancel)||void 0===i?void 0:i.display)&&r.createElement("button",{className:"mrf-btn mrf-btn_red",type:"button",onClick:()=>{var t,r;return null===(r=null===(t=e.actions)||void 0===t?void 0:t.cancel)||void 0===r?void 0:r.action()}},(null===(c=null===(s=e.actions)||void 0===s?void 0:s.cancel)||void 0===c?void 0:c.label)||"Cancel"),(null===(u=null===(m=e.actions)||void 0===m?void 0:m.reset)||void 0===u?void 0:u.display)&&r.createElement("button",{className:"mrf-btn mrf-btn_red",type:"button",onClick:e.reset},(null===(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===(h=null===(d=e.actions)||void 0===d?void 0:d.submit)||void 0===h?void 0:h.label)||"Save"))},Yt=e=>{let{entry:t,schema:n,inputWrapper:a,httpClient:o,functionalProperty:l}=e;const{formState:{errors:i,dirtyFields:s,touchedFields:c}}=d(),m=Zt(t).some((e=>!!i[e]&&(s[e]||c[e])));return r.createElement(st,Object.assign({},t,{errored:m}),t.flow.map(((t,i)=>{if("object"==typeof t)return r.createElement(Yt,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};return r.createElement(Gt,{entry:t,step:s,schema:n,inputWrapper:a,httpClient:o,defaultValue:null==s?void 0:s.defaultValue,functionalProperty:l,informations:c})})))},Gt=e=>{let{entry:t,realEntry:n,step:i,schema:s,inputWrapper:m,httpClient:f,defaultValue:h,index:b,functionalProperty:v,informations:y}=e;const{formState:{errors:O,dirtyFields:j,touchedFields:N,isSubmitted:V},control:S,getValues:P,setValue:T,watch:M}=d(),[W,z]=a(bt(P())),A=t.split(".").reduce(((e,t)=>e&&e[t]),O),F=t.split(".").reduce(((e,t)=>e&&e[t]),j),D=t.split(".").reduce(((e,t)=>e&&e[t]),N),L=!!A&&(V||F||D);if(i=i,i.onAfterChange){const e=M(),r=t.replace("[",".").replace("]","").split(".").reduce(((e,t)=>e&&e[t]),e)||{},n=(e=>{const t=o();return l((()=>{t.current=e}),[e]),t.current})(Bt(r,s)),a=Bt(r,s);(!p(a,n)||void 0!==a&&void 0===n)&&i.onAfterChange({entry:t,value:P(t),rawValues:P(),previousValue:n,getValue:e=>P(e),setValue:T,onChange:e=>T(t,e),informations:y})}const $=c((()=>{const e="function"==typeof i.visible,t="function"==typeof i.disabled,r="function"==typeof i.label;return e||t||r||!!i.render||!!i.conditionalSchema}),[bt(s)]);if($){const e=M(),t=bt(e);t!==W&&z(t)}if(i.array)return r.createElement(Lt,{step:i,entry:t,errorDisplayed:L,informations:y,deactivateReactMemo:$,inputWrapper:m},r.createElement($t,{render:i.render,rawValues:P(),value:P(t),onChange:e=>T(t,e),setValue:(e,t)=>T(e,t),getValue:e=>P(e),informations:y,error:!!A},r.createElement(Qt,{entry:t,step:i,disabled:v(t,i.disabled||!1,y,A),component:(e,a)=>{var o;return r.createElement(Gt,{entry:`${t}.${a}.value`,step:Object.assign(Object.assign({},s[n||t]),{label:null,render:i.itemRender,onChange:void 0,array:!1,onAfterChange:i.onAfterChange}),schema:s,inputWrapper:m,httpClient:f,defaultValue:null===(o=e.defaultValue)||void 0===o?void 0:o.value,index:a,functionalProperty:v,informations:{path:t,parent:y,index:a}})}})));switch(i.type){case de.string:switch(i.format){case he.text:return r.createElement(Lt,{step:i,entry:t,errorDisplayed:L,informations:y,deactivateReactMemo:$,inputWrapper:m},r.createElement("textarea",{className:u("mrf-input",i.className,{"mrf-mrf-input__invalid":!!L})}));case he.code:case he.singleLineCode:const e=i.format===he.code?_t:Vt;return r.createElement(Lt,{step:i,entry:t,errorDisplayed:L,informations:y,deactivateReactMemo:$,inputWrapper:m},r.createElement(e,{className:u(null==i?void 0:i.className,{"mrf-input__invalid":!!A})}));case he.markdown:return r.createElement(Lt,{step:i,entry:t,errorDisplayed:L,informations:y,deactivateReactMemo:$,inputWrapper:m},r.createElement(Nt,{className:u(i.className,{"mrf-input__invalid":!!L})}));case he.buttonsSelect:case he.select:return r.createElement(Lt,{step:i,entry:t,errorDisplayed:L,informations:y,deactivateReactMemo:$,inputWrapper:m},r.createElement(gt,Object.assign({className:u("mrf-flex_grow_1",i.className,{"mrf-input__invalid":!!L}),disabled:v(t,i.disabled||!1,y,A)},i.props,{possibleValues:i.options,httpClient:f,isMulti:i.isMulti,createOption:i.createOption,onCreateOption:i.onCreateOption,transformer:i.transformer,buttons:i.format===he.buttonsSelect,optionsFrom:i.optionsFrom})));default:return r.createElement(Lt,{step:i,entry:t,errorDisplayed:L,informations:y,deactivateReactMemo:$,inputWrapper:m},r.createElement("input",{type:i.format||"text",className:u("mrf-input",i.className,{"mrf-input__invalid":!!L})}))}case de.number:switch(i.format){case he.buttonsSelect:case he.select:return r.createElement(Lt,{step:i,entry:t,errorDisplayed:L,informations:y,deactivateReactMemo:$,inputWrapper:m},r.createElement(gt,Object.assign({className:u("mrf-content",i.className,{"mrf-input__invalid":!!L})},i.props,{possibleValues:i.options,httpClient:f,isMulti:i.isMulti,createOption:i.createOption,onCreateOption:i.onCreateOption,transformer:i.transformer,buttons:i.format===he.buttonsSelect,optionsFrom:i.optionsFrom})));default:return r.createElement(Lt,{step:i,entry:t,errorDisplayed:L,informations:y,deactivateReactMemo:$,inputWrapper:m},r.createElement("input",{type:i.format||"number",className:u("mrf-input",i.className,{"mrf-input__invalid":!!L})}))}case de.bool:return r.createElement(Lt,{step:i,entry:t,errorDisplayed:L,informations:y,deactivateReactMemo:$,inputWrapper:m},r.createElement(tt,{className:i.className,errorDisplayed:L}));case de.object:switch(i.format){case he.buttonsSelect:case he.select:return r.createElement(Lt,{step:i,entry:t,errorDisplayed:L,informations:y,deactivateReactMemo:$,inputWrapper:m},r.createElement(gt,Object.assign({className:u("mrf-flex_grow_1",i.className,{"mrf-input__invalid":!!L})},i.props,{possibleValues:i.options,httpClient:f,isMulti:i.isMulti,createOption:i.createOption,onCreateOption:i.onCreateOption,transformer:i.transformer,buttons:i.format===he.buttonsSelect,optionsFrom:i.optionsFrom})));case he.form:const e=ct(i.flow).getOrElse(ct(i.schema).map((e=>Object.keys(e))).getOrElse([]));return r.createElement(Lt,{step:i,entry:t,errorDisplayed:L,informations:y,deactivateReactMemo:$,inputWrapper:m},r.createElement($t,{render:i.render,rawValues:P(),value:P(t),onChange:e=>T(t,e,{shouldValidate:!0}),setValue:(e,t)=>T(e,t),getValue:e=>P(e),informations:y},r.createElement(Xt,{schema:i.schema,flow:e,step:i,parent:t,inputWrapper:m,maybeCustomHttpClient:f,value:P(t)||h,functionalProperty:v,errorDisplayed:L,informations:y})));case he.code:return r.createElement(Lt,{step:i,entry:t,errorDisplayed:L,informations:y,deactivateReactMemo:$,inputWrapper:m,component:(e,t)=>r.createElement(_t,Object.assign({},t,{className:u(null==i?void 0:i.className,{"mrf-input__invalid":!!A}),onChange:t=>{let r;try{r=JSON.parse(t)}catch(e){r=t}e.onChange(r),ct(null==i?void 0:i.onChange).map((e=>e({rawValues:P(),value:r,setValue:T})))},value:null===e.value?null:"object"==typeof e.value?JSON.stringify(e.value,null,2):e.value}))});default:return r.createElement(Lt,{step:i,entry:t,errorDisplayed:L,informations:y,deactivateReactMemo:$,inputWrapper:m},r.createElement(wt,{className:u(i.className,{"mrf-input__invalid":!!L})}))}case de.date:switch(i.format){case he.datetime:return console.debug("datetime"),r.createElement(Lt,{step:i,entry:t,informations:y,deactivateReactMemo:$,inputWrapper:m,component:e=>r.createElement(w,{dateAdapter:E},r.createElement(_,{value:e.value,onChange:e.onChange,renderInput:e=>r.createElement(C,Object.assign({},e))}))});case he.time:return r.createElement(Lt,{step:i,entry:t,informations:y,deactivateReactMemo:$,inputWrapper:m,component:e=>r.createElement(w,{dateAdapter:E},r.createElement(k,{value:e.value,onChange:e.onChange,renderInput:e=>r.createElement(C,Object.assign({},e))}))});default:return r.createElement(Lt,{step:i,entry:t,informations:y,deactivateReactMemo:$,inputWrapper:m,component:e=>r.createElement(w,{dateAdapter:E},r.createElement(x,{value:e.value,onChange:e.onChange,renderInput:e=>r.createElement(C,Object.assign({},e))}))})}case de.file:return r.createElement(g,{name:t,control:S,render:({field:e})=>r.createElement(Lt,{step:i,entry:t,errorDisplayed:L,informations:y,deactivateReactMemo:$,inputWrapper:m},r.createElement((({onChange:n})=>{const[o,l]=a(!1),[s,c]=a(void 0),m=e.value||[];return r.createElement("div",{className:u("mrf-flex","mrf-ai_center",null==i?void 0:i.className,{"mrf-input__invalid":!!A})},r.createElement("input",{ref:e=>c(e),type:"file",multiple:!0,className:"mrf-d_none",onChange:e=>{const t=e.target.files;l(!0),n&&n(t?[...t]:[]),l(!1)}}),r.createElement("button",{type:"button",className:"mrf-btn mrf-btn_sm mrf-flex mrf-ai_center",disabled:o||v(t,(null==i?void 0:i.disabled)||!1,y,A),onClick:()=>{null==s||s.click()}},o&&r.createElement(Ie,null),!o&&r.createElement(He,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(Lt,{step:i,entry:t,informations:y,deactivateReactMemo:$,inputWrapper:m,component:(e,t)=>r.createElement(_t,Object.assign({},t,{className:u(null==i?void 0:i.className,{"mrf-input__invalid":!!A}),onChange:t=>{e.onChange(t),ct(null==i?void 0:i.onChange).map((e=>e({rawValues:P(),value:t,setValue:T})))},value:e.value}))});default:return null}},Qt=({entry:e,step:t,component:n,disabled:a})=>{const{getValues:o,setValue:l,control:i,trigger:s,formState:c}=d(),m=o(e),p=e.split(".").reduce(((e,t)=>e&&e[t]),c.errors),f=e.split(".").reduce(((e,t)=>e&&e[t]),c.dirtyFields),h=e.split(".").reduce(((e,t)=>e&&e[t]),c.touchedFields),b=!!p&&(c.isSubmitted||f||h),{fields:v,append:y,remove:g}=O({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(et,{size:16})))))),r.createElement("div",{className:"mrf-flex mrf-jc_flex_end"},r.createElement("button",{type:"button",className:u("mrf-btn","mrf-btn_blue","mrf-btn_sm","mrf-mt_5",{"mrf-input__invalid":!!b}),onClick:()=>{const r=qt({},o(e),t.flow,t.schema);y({value:t.addableDefaultValue||(t.type===de.object&&r?r:Rt())}),ct(t.onChange).map((t=>t({rawValues:o(),value:o(e),setValue:l})))},disabled:a},"Add"),p&&r.createElement("div",{className:"mrf-invalid-feedback"},p.message)))},Xt=({schema:e,flow:t,parent:n,inputWrapper:o,maybeCustomHttpClient:l,errorDisplayed:i,value:s,step:c,functionalProperty:m,informations:p})=>{var f;const{getValues:h,setValue:v,control:y,formState:{errors:g,dirtyFields:O,touchedFields:j}}=d(),[E,w]=a(!!c.collapsed);b({name:(null===(f=null==c?void 0:c.conditionalSchema)||void 0===f?void 0:f.ref)||"",control:y});const x=ct(c.conditionalSchema).map((e=>{const t=ct(e.ref).map((e=>h(e))).getOrNull(),r=h(),n=ct(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});vt((()=>{const e=It(x.flow,x.schema,h(n));v(n,e,{shouldValidate:!1})}),[x.schema]);const k=x.flow.reduce(((e,t)=>[...e,{step:"string"==typeof t?x.schema[t]:x.schema[t.label],entry:t}]),[]),_=k.length>=1&&null!==c.label;return r.createElement("div",{className:u(c.className,{"mrf-nestedform__border":_,"mrf-border__error":!!i}),style:{position:"relative"}},!!c.collapsable&&x.flow.length>1&&E&&r.createElement(Ke,{size:30,className:"mrf-cursor_pointer",style:{position:"absolute",top:-35,right:0,zIndex:100},strokeWidth:"2",onClick:()=>w(!E)}),!!c.collapsable&&x.flow.length>1&&!E&&r.createElement(Qe,{size:30,className:"mrf-cursor_pointer",style:{position:"absolute",top:-35,right:0,zIndex:100},strokeWidth:"2",onClick:()=>w(!E)}),k.map((({step:t,entry:a},i)=>"object"==typeof a?r.createElement(Yt,{key:i,entry:a,schema:e,inputWrapper:o,httpClient:l,functionalProperty:m}):t||"string"!=typeof a?r.createElement(Gt,{key:`step.${a}.${i}`,entry:`${n}.${a}`,realEntry:a,step:x.schema[a],schema:x.schema,inputWrapper:o,httpClient:l,defaultValue:s&&s[a],functionalProperty:m,informations:{path:a,parent:p}}):(console.error(`no step found for the entry "${a}" in the given schema. Your form might not work properly. Please fix it`),null))))};function Zt(e){return e.flow.map((e=>"string"==typeof e?e:Zt(e))).flat()}export{tt as BooleanInput,_t as CodeInput,st as Collapse,Ut as Form,Nt as MarkdownInput,wt as ObjectInput,gt as SelectInput,Vt as SingleLineCode,Le as constraints,he as format,de as type,Ht as validate};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@maif/react-forms",
3
3
  "description": "Build react safe forms as fast as possible",
4
- "version": "1.2.9",
4
+ "version": "1.2.10",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
7
7
  "source": "src/index.ts",