@react-typed-forms/schemas 13.0.2 → 13.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import e,{useRef as n,useCallback as t,useMemo as r,useEffect as o,Fragment as i}from"react";import l from"clsx";import{useControl as a,useComputed as u,useRefState as d,makeChangeTracker as c,addAfterChangesCallback as s,trackedValue as f,collectChanges as p,useCalculatedControl as y,useValueChangeEffect as v,useValidator as m,useComponentTracking as h,useControlEffect as g,newControl as D,addElement as C,removeElement as b,RenderArrayElements as N}from"@react-typed-forms/core";import x from"jsonata";import{v4 as T}from"uuid";var S,A,E,O,I,L,w,V,F,M,k,G,H;function R(e){return e.type===E.Data}function q(e){return e.type===E.Group}function j(e){return e.type===E.Display}function B(e){return e.type===E.Action}function J(e,n,t){switch(e.type){case E.Action:return n.action(e);case E.Data:return n.data(e);case E.Display:return n.display(e);case E.Group:return n.group(e);default:return t(e)}}function U(e){return e.type===M.Grid}function P(e){return e.type===M.Flex}function _(e){return e.type===V.DisplayOnly}function $(e){return e.type===V.Textfield}function W(e){return e.type===V.Group}function Y(e){return e.type===V.Array}function z(e,n){return e.find(e=>e.field===n)}function K(e){return!Q(e)}function Q(e){return e.type===S.Compound}function X(e){return e.type===E.Data}function Z(e){return e.type===E.Group}function ee(){return ee=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},ee.apply(null,arguments)}function ne(e,n){if(null==e)return{};var t={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(n.includes(r))continue;t[r]=e[r]}return t}function te(e){return Object.entries(e).map(e=>e[1](e[0]))}function re(e,n){return le(ee({type:S.String,displayName:e},n))}function oe(e,...n){return le({type:S.String,displayName:e,options:n})}function ie(e,n){return t=>ee({},n(t),e)}function le(e){return n=>ee({},ve(n,n),e)}function ae(e){return n=>ee({},me(n,n,!1),e)}function ue(e,n){return le(ee({type:S.Int,displayName:e},n))}function de(e,n){return le(ee({type:S.Double,displayName:e},n))}function ce(e,n){return le(ee({type:S.Date,displayName:e},n))}function se(e,n){return le(ee({type:S.Time,displayName:e},n))}function fe(e,n){return le(ee({type:S.DateTime,displayName:e},n))}function pe(e,n){return le(ee({type:S.Bool,displayName:e},n))}function ye(e,n,t){return r=>ee({},me(r,e,!1),t,{children:n})}function ve(e,n){return{field:e,displayName:n,type:S.String}}function me(e,n,t){return{field:e,displayName:n,type:S.Compound,collection:t,children:[]}}function he(e,n){const t=n.find(n=>n.field===e.field);return t?n.map(n=>n!==t?n:ee({},n,{onlyForTypes:r(n.onlyForTypes,e.onlyForTypes)})):[...n,e];function r(e,n){if(!e)return n;if(!n)return e;const t=n.filter(n=>!e.includes(n));return t.length?[...e,...t]:e}}function ge(e,n,t,r){const o=e.map(e=>e.isTypeField?De(e,n,t):e);return r.map(e=>ee({},e,{onlyForTypes:[t]})).reduce((e,n)=>he(n,e),o)}function De(e,n,t){var r;const o=null!=(r=e.options)?r:[];return o.some(e=>e.value===t)?e:ee({},e,{options:[...o,{name:n,value:t}]})}function Ce(e){const n={};return Object.keys(e).forEach(function t(r){if(r in n)return n[r];const o=[];return n[r]=o,e[r].forEach(e=>{Q(e)&&e.schemaRef?o.push(ee({},e,{children:t(e.schemaRef)})):o.push(e)}),o}),n}function be(e,n,t){if(!e)return xe(n);if(t&&t.has(e))return e;null!=t||(t=new Set),t.add(e);const r=n.filter(n=>Q(n)||!(n.field in e));if(!r.length)return e;const o=ee({},e);return r.forEach(r=>{o[r.field]=r.field in e?Ne(e[r.field],r,n,!1,t):Te(r)}),o}function Ne(e,n,t,r,o){return n.collection&&!r?(null!=e?e:[]).map(e=>Ne(e,n,t,!0,o)):Q(n)?e||n.required?be(e,n.treeChildren?t:n.children,o):e:Te(n)}function xe(e){return Object.fromEntries(e.map(e=>[e.field,Te(e)]))}function Te(e,n,t){if(void 0!==e.defaultValue)return e.defaultValue;const r=!(!n&&!e.required);if(Q(e)){if(r){const n=xe(e.children);return e.collection?[n]:n}return e.notNullable||t?e.collection?[]:{}:void 0}return e.collection&&e.notNullable?[]:void 0}function Se(e){return Q(e)?xe(e.children):e.defaultValue}function Ae(e,n){return z(e,n)}function Ee(e,n){return z(e,n)}function Oe(e,n){var t;return Boolean(null==(t=e.tags)?void 0:t.includes(n))}function Ie(e){var n;return null!=(n=e.displayName)?n:e.field}function Le(e){var n,t;return(null!=(n=null==(t=e.options)?void 0:t.length)?n:0)>0}function we(e){if(Q(e))return{type:E.Data,title:e.displayName,field:e.field,required:e.required,children:e.children.map(we)};if(K(e)){var n;const t=null==(n=e.tags)?void 0:n.includes("_HtmlEditor");return{type:E.Data,title:e.displayName,field:e.field,required:e.required,renderOptions:{type:t?V.HtmlEditor:V.Standard}}}throw"Unknown schema field"}function Ve(e,n){return R(n)&&e.field===n.field?[n]:q(n)?n.compoundField===e.field?[n]:null!=(t=null==(r=n.children)?void 0:r.flatMap(n=>Ve(e,n)))?t:[]:[];var t,r}function Fe(e,n){return Object.fromEntries(e.filter(Q).map(e=>{const t=n.flatMap(n=>Ve(e,n));return[e.field,{groups:t.concat(ke(t.flatMap(e=>{var n;return null!=(n=e.children)?n:[]}))),children:Fe(e.children,t.flatMap(e=>{var n;return null!=(n=e.children)?n:[]}))}]}))}function Me(e,n){if(!n.groups.find(n=>{var t;return null==(t=n.children)?void 0:t.find(n=>R(n)&&n.field===e.field||q(n)&&n.compoundField===e.field)}))return[[e,n]];if(Q(e)){const t=n.children[e.field];return t?e.children.flatMap(e=>Me(e,t)):[[e,n]]}return[]}function ke(e){return e.flatMap(e=>{var n;return q(e)&&!e.compoundField?[e,...ke(null!=(n=e.children)?n:[])]:[]})}function Ge(e){var n;return ee({},e,{children:null==(n=e.children)?void 0:n.map(Ge)})}function He(e,n){const t={children:Fe(e,n=n.map(Ge)),groups:ke([{type:E.Group,children:n}])};return e.filter(e=>!Oe(e,"_NoControl")).flatMap(e=>Me(e,t)).forEach(([e,n])=>{var t;const r=null==(t=e.tags)?void 0:t.find(e=>e.startsWith("_ControlGroup:"));let o;if(r){const e=r.substring(14);o=n.groups.find(n=>n.title===e)}if(o||(o=n.groups[0]),o){const n=we(e);o.children?o.children.push(n):o.children=[n]}}),n}function Re(e){const t=n(e);return t.current=e,t}function qe(e){return X(e)&&!!e.readonly}function je(e){return X(e)&&!!e.disabled}function Be(e){return R(e)&&e.renderOptions&&_(e.renderOptions)?e.renderOptions:void 0}function Je(e,n,t){if(!e)return e;const r=n.find(e=>e.isTypeField),o=r?e[r.field]:void 0,i=t?n:n.filter(e=>{var n,t;return Q(e)||(null!=(n=null==(t=e.onlyForTypes)?void 0:t.length)?n:0)>0});if(!i.length)return e;const l=ee({},e);return i.forEach(r=>{var i;const a=e[r.field];if(!1===(null==(i=r.onlyForTypes)?void 0:i.includes(o))||!r.notNullable&&(t&&r.defaultValue===a||r.collection&&Array.isArray(a)&&!a.length))delete l[r.field];else if(Q(r)){const e=r.treeChildren?n:r.children;r.collection?Array.isArray(a)&&(l[r.field]=a.map(n=>Je(n,e,t))):l[r.field]=Je(a,e,t)}}),l}function Ue(e,n){var t,r;const o=null==(t=e.children)?void 0:t.flatMap(e=>Ue(e,n)),i=l([e.styleClass,e.layoutClass,e.labelClass,...null!=(r=null==n?void 0:n(e))?r:[]].map($e));return o&&!i?o:i?o?[i,...o]:[i]:[]}function Pe(e,n){let t="";return e.forEach((e,r)=>{var o;"number"==typeof e?t+=null!=(o=null==n?void 0:n(e))?o:"["+e+"]":(r>0&&(t+="."),t+=e)}),t}function _e(e,n){if(Array.isArray(n)){let t=e;return n.forEach(e=>t=t.children[e]),t}return e.children[n]}function $e(e){return e&&e.startsWith("@ ")?e.substring(2):e}function We(e,n){const t=$e(e);return t===e?l(e,n):t||void 0}function Ye(e,n,t){return{deps:t,state:n,runHook:e}}function ze(e,n){return e.map(e=>Qe(n(e))).join(",")}function Ke(e){const r=Object.entries(e),o=ze(r,e=>e[1].deps),i=n({}),l=i.current;return r.forEach(e=>l[e[0]]=e[1].state),t(e=>Object.fromEntries(r.map(([n,t])=>[n,t.runHook(e,i.current[n])])),[o])}function Qe(e){return void 0===e?"_":null===e?"~":e.toString()}function Xe(e,n,t,r,o){return[null==n||e>n?r:void 0,null==t||e<t?o:void 0]}function Ze(e,n){if(!n)return;const t=n.split("/"),r=[];let o=0,i=e;for(;o<t.length&&i;){const e=z(i,t[o]);if(!e)return;r.push(e),i=Q(e)&&!e.collection?e.children:void 0,o++}return r.length===t.length?r:void 0}function en(e,n,t=(e,n,t)=>null!=n?n:t){if(!e)return n;if(!n)return e;const r=ee({},e);for(const o in n)n.hasOwnProperty(o)&&(r[o]=t(o,e[o],n[o]));return r}function nn(e){return null==e?"":"object"==typeof e?"error: "+JSON.stringify(e):e.toString()}function tn(e,n,t){return ee({type:E.Data,field:e,title:n},t)}function rn(e){return n=>ee({type:e},n)}function on(e){return n=>ee({type:e},n)}function ln(e){return n=>({renderOptions:ee({type:e},n)})}!function(e){e.String="String",e.Bool="Bool",e.Int="Int",e.Date="Date",e.DateTime="DateTime",e.Time="Time",e.Double="Double",e.EntityRef="EntityRef",e.Compound="Compound",e.AutoId="AutoId",e.Image="Image",e.Any="Any"}(S||(S={})),function(e){e.NotEmpty="NotEmpty",e.MinLength="MinLength",e.MaxLength="MaxLength",e.NotAfterDate="NotAfterDate",e.NotBeforeDate="NotBeforeDate"}(A||(A={})),function(e){e.Data="Data",e.Group="Group",e.Display="Display",e.Action="Action"}(E||(E={})),function(e){e.Visible="Visible",e.DefaultValue="DefaultValue",e.Readonly="Readonly",e.Disabled="Disabled",e.Display="Display",e.Style="Style",e.LayoutStyle="LayoutStyle",e.AllowedOptions="AllowedOptions",e.Label="Label",e.ActionData="ActionData"}(O||(O={})),function(e){e.Jsonata="Jsonata",e.Data="Data",e.DataMatch="FieldValue",e.UserMatch="UserMatch",e.NotEmpty="NotEmpty",e.UUID="UUID"}(I||(I={})),function(e){e.ControlStart="ControlStart",e.ControlEnd="ControlEnd",e.LabelStart="LabelStart",e.LabelEnd="LabelEnd"}(L||(L={})),function(e){e.Tooltip="Tooltip",e.Accordion="Accordion",e.HelpText="HelpText",e.Icon="Icon",e.SetField="SetField"}(w||(w={})),function(e){e.Standard="Standard",e.Textfield="Textfield",e.Radio="Radio",e.HtmlEditor="HtmlEditor",e.IconList="IconList",e.CheckList="CheckList",e.UserSelection="UserSelection",e.Synchronised="Synchronised",e.IconSelector="IconSelector",e.DateTime="DateTime",e.Checkbox="Checkbox",e.Dropdown="Dropdown",e.DisplayOnly="DisplayOnly",e.Group="Group",e.NullToggle="NullToggle",e.Jsonata="Jsonata",e.Array="Array"}(V||(V={})),function(e){e.Camel="Camel",e.Snake="Snake",e.Pascal="Pascal"}(F||(F={})),function(e){e.Standard="Standard",e.Grid="Grid",e.Flex="Flex",e.GroupElement="GroupElement"}(M||(M={})),function(e){e.Text="Text",e.Html="Html",e.Icon="Icon",e.Custom="Custom"}(k||(k={})),function(e){e.Jsonata="Jsonata",e.Date="Date",e.Length="Length"}(G||(G={})),function(e){e.NotBefore="NotBefore",e.NotAfter="NotAfter"}(H||(H={}));const an=ln(V.CheckList),un=ln(V.Radio),dn=rn(G.Length),cn=rn(G.Jsonata),sn=rn(G.Date),fn=on(w.Accordion),pn=ln(V.Textfield),yn=ln(V.DisplayOnly),vn=ln(V.Jsonata);function mn(e,n){return ee({type:E.Display,displayData:{type:k.Text,text:e}},n)}function hn(e,n){return ee({type:E.Display,displayData:{type:k.Html,html:e}},n)}function gn(e){return{type:O.DefaultValue,expr:e}}function Dn(e){return{type:O.Readonly,expr:e}}function Cn(e){return{type:O.Visible,expr:e}}function bn(e){return{type:O.Disabled,expr:e}}function Nn(e){return{type:I.Data,field:e}}function xn(e,n){return{type:I.DataMatch,field:e,value:n}}function Tn(e){return{type:I.Jsonata,expression:e}}function Sn(e,n,t){return ee({type:E.Group,children:e,title:n,groupOptions:{type:"Standard",hideTitle:!n}},t)}function An(e,n,t,r){return ee({type:E.Data,field:e,children:t,title:n,renderOptions:{type:"Standard"}},r)}function En(e,n,t){return ee({type:E.Action,title:e,actionId:n},t)}function On(e,n,t){return{actionId:e,onClick:n,actionText:null!=t?t:e}}const In={type:E.Group,children:[],groupOptions:{type:M.Standard,hideTitle:!0}};function Ln(e,n=In){return r(()=>{var t;return ee({},n,{children:He(e,null!=(t=n.children)?t:[])})},[e,n])}function wn(e,n){const t=ee({},e);return Object.entries(n).forEach(([e,n])=>{t[e]=(Array.isArray(n)?n:[n]).reduce((e,n)=>{var t;return ge(e,n.name,n.value,null!=(t=n.fields)?t:[])},t[e])}),t}function Vn(e,n){return Ce(n.reduce(wn,e))}const Fn={field:"__missing",type:S.Any};function Mn(e,n,t){const r={field:e,getSchema:n.getSchema,parent:t,getChildNode:function(t){if(Q(e)&&!e.schemaRef){const o=e.children.find(e=>e.field===t);return o?Mn(o,n,r):void 0}return o().find(e=>e.field.field===t)},getChildNodes:o};return r;function o(){if(Q(e)){const t=e.schemaRef&&n.getSchema(e.schemaRef);return t?t.getChildNodes():e.children.map(e=>Mn(e,n,r))}return[]}}function kn(e){const n={getSchema:function(t){const r=e[t];if(r)return Qn(r,n)}};return n}function Gn(e,n){const t={definition:e,parent:n,getChildNodes:function(){var n,r;return null!=(n=null==(r=e.children)?void 0:r.map(e=>Gn(e,t)))?n:[]}};return t}function Hn(e){return{getForm:function n(t){const r=e[t];if(r)return{rootNode:Gn({children:r,type:E.Group}),getForm:n}}}}function Rn(e,n,t,r){const o={schema:e,control:n,parent:t,elementIndex:r,getChild:function(e){var t;const r=n;return r&&r.current.isNull&&(r.value={}),Rn(e,null==r||null==(t=r.fields)?void 0:t[e.field.field],o)},getChildElement:function(t){var r;return Rn(e,null==n||null==(r=n.elements)?void 0:r[t],o,t)}};return o}function qn(e){const n=q(e)?e.compoundField:R(e)?e.field:void 0;return null==n?void 0:n.split("/")}function jn(e,n){var t;return Pn(null!=(t=null==e?void 0:e.split("/"))?t:[],n)}function Bn(e,n){var t;return _n(null!=(t=null==e?void 0:e.split("/"))?t:[],n)}function Jn(e,n,t,r){let o=0;for(;o<e.length;){let i=n.getChildNode(e[o]);i||(i=Mn(Fn,n,n)),t=r(t,i),n=i,o++}return t}function Un(e,n,t){return Jn(e,n,t,(e,n)=>null==e?void 0:e[n.field.field])}function Pn(e,n){return Jn(e,n.schema,n,(e,n)=>e.getChild(n))}function _n(e,n){let t=0;for(;t<e.length;){let r=n.getChildNode(e[t]);r||(r=Mn(Fn,n,n)),n=r,t++}return n}function $n(e,n,t){let r=[];for(;e&&(null==t||!t(e));)r.push(n(e)),e=e.parent;return r.reverse()}function Wn(e){for(;e.parent;)e=e.parent;return e}function Yn(e){return $n(e,e=>null==e.elementIndex?e.schema.field.field:e.elementIndex,e=>!e.parent)}function zn(e){return $n(e,e=>e.field,e=>!e.parent)}function Kn(e){return e.getChildNodes().map(e=>e.field)}function Qn(e,n={getSchema(e){}}){return Mn({type:S.Compound,field:"",children:e},n,void 0)}function Xn(e,n,t){if(e)for(const r of e){const e=Zn(r,n,t);if(void 0!==e)return e}}function Zn(e,n,t){if(n.control&&!n.control.isNull)return J(e,{data:e=>r(e,e.field,e.children),group:e=>r(void 0,e.compoundField,e.children),action:()=>{},display:()=>{}},()=>{});function r(e,r,o){const i=r?n.schema.getChildNode(r):void 0;if(!i)return r?void 0:Xn(o,n,t);const l=n.getChild(i),a=e?t(e,l):void 0;if(void 0!==a)return a;const u=Q(i.field);if(i.field.collection){const n=l.control;let r=0;for(const i of null!=(d=n.elements)?d:[]){var d;const n=l.getChildElement(r),i=e?t(e,n):void 0;if(void 0!==i)return i;if(u){const e=Xn(o,n,t);if(void 0!==e)return e}r++}}else if(u)return Xn(o,l,t)}}function et(e,n,t){return gt(ct(n,O.Visible,e),(e,{definition:n,overrideDataNode:t})=>u(()=>{const r=null!=t?t:e.dataNode;return!r||ft(r)&&!pt(r,e.schemaInterface,n)}),{definition:n,overrideDataNode:t})}function nt(e,n){return gt(ct(n,O.Readonly,e),(e,{definition:n})=>y(()=>qe(n)),{definition:n})}function tt(e,n,t){return gt(st(t,n,e),()=>a(void 0),void 0)}function rt(e,n){return gt(st(n,O.AllowedOptions,e),()=>a([]),void 0)}function ot(e,n){return gt(ct(n,O.Disabled,e),e=>u(()=>{var t,r;const o=null==(t=e.dataNode)?void 0:t.control;return!1===(null==o||null==(r=o.meta.nullControl)?void 0:r.value)||je(n)}),void 0)}function it(e,n){return st(n,O.Display,e)}function lt(e,n){return gt(st(n,O.DefaultValue,e),(e,{definition:n})=>u(function(){var t;const[r,o]=R(n)?[n.required,n.defaultValue]:[!1,void 0],i=null==(t=e.dataNode)?void 0:t.schema.field;return null!=o?o:i?null!=e.dataNode.elementIndex?Se(i):Te(i,r,!0):void 0}),{definition:n})}function at(e,n,t){switch(e.type){case I.Jsonata:const r=u(()=>({formData:n.formData}));return vt(e.expression,Wn(n.parentNode).control,Yn(n.parentNode),r,t);case I.UUID:return yt(t);case I.Data:return function(e,n,t=e=>e){const r=jn(e.field,n);return y(()=>{var e;return t(null==(e=r.control)?void 0:e.value)})}(e,n.parentNode,t);case I.DataMatch:return function(e,n,t=e=>e){const r=jn(e.field,n);return y(()=>{var n;const o=null==(n=r.control)?void 0:n.value;return t(Array.isArray(o)?o.includes(e.value):o===e.value)})}(e,n.parentNode,t);case I.NotEmpty:return function(e,n,t,r=e=>e){const o=jn(e.field,n);return y(()=>{var e;const n=null==(e=o.control)?void 0:e.value,i=o.schema.field;return r(i&&!t.isEmptyValue(i,n))})}(e,n.parentNode,n.schemaInterface,t);default:return a(void 0)}}const ut=dt(at);function dt(e){return(n,t)=>({deps:null==n?void 0:n.type,state:n&&n.type?n:void 0,runHook:(n,r)=>r?e(r,n,t):void 0})}function ct(e,n,t){return st(e,n,t,e=>Boolean(e))}function st(e,n,t,r=e=>e){var o;const i=null==(o=e.dynamic)?void 0:o.find(e=>e.type===n);return t(null==i?void 0:i.expr,r)}function ft(e){const n=e.schema.field.onlyForTypes;if(null==n||0===n.length)return!0;const t=e.parent,r=t.schema.getChildNodes().find(e=>e.field.isTypeField);if(null==r)return!0;const o=t.getChild(r).control;return o&&n.includes(o.value)}function pt(e,n,t){var r;const o=Be(t);return o&&!o.emptyText&&n.isEmptyValue(e.schema.field,null==(r=e.control)?void 0:r.value)}function yt(e=e=>e){return a(()=>e(T()))}function vt(e,t,i,l,u=e=>e){const y=Pe(i,e=>`#$i[${e}]`),v=y?y+".("+e+")":e,m=r(()=>{try{return x(e?v:"null")}catch(e){return console.error(e),x("null")}},[v]),h=a(),g=n(),D=n(0),[C]=d(()=>c(()=>{const e=g.current;e&&(g.current=void 0,s(()=>{g.current=e,e()}))}));return o(()=>{async function e(){const[e,n]=C.current;try{D.current++,h.value=u(await m.evaluate(f(t,e),p(e,()=>null==l?void 0:l.value)))}finally{--D.current||n()}}g.current=e,e()},[m]),o(()=>(g.current=void 0,()=>C.current[1](!0)),[]),h}function mt(e,n){return gt(st(n,O.ActionData,e),()=>a(null),void 0)}function ht(e,n){return gt(st(n,O.Label,e),()=>a(null),void 0)}function gt(e,n,t,r){return{deps:void 0===r?e.deps:[r,e.deps].map(Qe).join(),runHook:(t,r)=>{var o;return null!=(o=e.runHook(t,r[0]))?o:n(t,r[1])},state:[e.state,t]}}function Dt(e,n=Ct){var r;const o=R(e)?e:void 0,i=Re({dd:o,useValidatorFor:n}),l=o?ze(null!=(r=o.validators)?r:[],e=>e.type):"~";return t(e=>{var t,r,o;const{dd:l}=i.current;if(!l)return;const a=null!=(t=null==(r=e.dataContext.dataNode)?void 0:r.schema.field)?t:{field:"__missing",type:S.Any},{control:u,hiddenControl:d,dataContext:{schemaInterface:c}}=e;v(u,()=>u.setError("default","")),m(u,e=>!d.value&&l.required&&c.isEmptyValue(a,e)?c.validationMessageText(a,A.NotEmpty,!1,!0):null,"required",void 0,[l.required]),null==(o=l.validators)||o.forEach((t,r)=>n(t,ee({},e,{index:r,field:a,definition:l})))},[!!o,l,n])}function Ct(e,n){switch(e.type){case G.Length:Nt(e,n);break;case G.Jsonata:bt(e,n);break;case G.Date:xt(e,n)}}function bt(e,n){const t=n.dataContext.parentNode,r=vt(e.expression,Wn(t).control,Yn(t),void 0,e=>null==e?null:"string"==typeof e?e:JSON.stringify(e));m(n.control,()=>n.hiddenControl.value?null:r.value,"jsonata"+n.index)}function Nt(e,n){const{control:t,dataContext:{schemaInterface:r},hiddenControl:o,field:i}=n;m(t,n=>{const l=r.controlLength(i,t);if(!o.value)if(null!=e.min&&l<e.min){if(null==i||!i.collection)return r.validationMessageText(i,A.MinLength,l,e.min);t.setValue(n=>Array.isArray(n)?n.concat(Array.from({length:e.min-n.length})):Array.from({length:e.min}))}else if(null!=e.max&&l>e.max)return r.validationMessageText(i,A.MaxLength,l,e.max)},"length"+n.index)}function xt(e,n){const{control:t,field:r,index:o,dataContext:{schemaInterface:i}}=n;let l;if(e.fixedDate)l=i.parseToMillis(r,e.fixedDate);else{const n=new Date;l=Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()),e.daysFromCurrent&&(l+=864e5*e.daysFromCurrent)}m(t,n=>{if(n){const t=i.parseToMillis(r,n),o=e.comparison===H.NotAfter;if(o?t>l:t<l)return i.validationMessageText(r,o?A.NotAfterDate:A.NotBeforeDate,t,l)}return null},"date"+o)}function Tt(e){return e||void 0}class St{constructor(e=["No","Yes"]){this.boolStrings=void 0,this.boolStrings=e}parseToMillis(e,n){return Date.parse(n)}validationMessageText(e,n,t,r){switch(n){case A.NotEmpty:return"Please enter a value";case A.MinLength:return"Length must be at least "+r;case A.MaxLength:return"Length must be less than "+r;case A.NotBeforeDate:return`Date must not be before ${new Date(r).toDateString()}`;case A.NotAfterDate:return`Date must not be after ${new Date(r).toDateString()}`;default:return"Unknown error"}}getDataOptions(e){return this.getNodeOptions(e.schema)}getNodeOptions(e){return this.getOptions(e.field)}getOptions({options:e}){return e&&e.length>0?e:null}getFilterOptions(e,n){return this.getNodeOptions(n)}isEmptyValue(e,n){if(e.collection)return Array.isArray(n)?0===n.length:null==n;switch(e.type){case S.String:case S.DateTime:case S.Date:case S.Time:return!n;default:return null==n}}searchText(e,n){var t,r;return null!=(t=null==(r=this.textValue(e,n))?void 0:r.toLowerCase())?t:""}textValue(e,n,t){const r=this.getOptions(e),o=null==r?void 0:r.find(e=>e.value===n);if(o)return o.name;switch(e.type){case S.Date:return n?new Date(n).toLocaleDateString():void 0;case S.DateTime:return n?new Date(n).toLocaleString():void 0;case S.Time:return n?new Date("1970-01-01T"+n).toLocaleTimeString():void 0;case S.Bool:return this.boolStrings[n?1:0];default:return null!=n?n.toString():void 0}}controlLength(e,n){var t,r;return e.collection?null!=(t=null==(r=n.elements)?void 0:r.length)?t:0:this.valueLength(e,n.value)}valueLength(e,n){var t;return null!=(t=n&&(null==n?void 0:n.length))?t:0}compareValue(e,n,t){if(null==n)return null==t?0:1;if(null==t)return-1;switch(e.type){case S.Date:case S.DateTime:case S.Time:case S.String:return n.localeCompare(t);case S.Bool:return n?t?0:1:-1;case S.Int:case S.Double:return n-t;default:return 0}}}const At=new St,Et=["parentDataNode"],Ot=["definition","control","formOptions","style","allowedOptions","schemaInterface"],It=0,Lt=1e3;var wt;function Vt(n,r,o,i={}){const l=Re({definition:n,fields:r,renderer:o,options:i});return t(({control:n,parentPath:t})=>/*#__PURE__*/e.createElement(Mt,ee({},l.current,{control:n,parentPath:t})),[l])}function Ft(n,r,l={},u){var d,c,s;const p=null!=(d=null==l.useDataHook?void 0:l.useDataHook(n))?d:Gt,v=l.elementIndex,m=null!=(c=l.schemaInterface)?c:At,C=null!=(s=l.useEvalExpressionHook)?s:ut;let b;if(null!=v)b=u.getChildElement(v);else{const e=qn(n);b=e?Pn(e,u):void 0}const N=Dt(n,l.useValidationHook),x=Ke({defaultValueControl:lt(C,n),visibleControl:et(C,n),readonlyControl:nt(C,n),disabledControl:ot(C,n),allowedOptions:rt(C,n),labelText:ht(C,n),actionData:mt(C,n),customStyle:tt(C,O.Style,n),layoutStyle:tt(C,O.LayoutStyle,n),displayControl:it(C,n)}),T=Re({options:l,definition:n,elementIndex:v,parentDataNode:u,dataNode:b}),S=t(()=>{const t=h();try{var l,d,c,s;const{definition:t,options:v,elementIndex:h,parentDataNode:S,dataNode:A}=T.current,E=null!=(l=v.formData)?l:{},O={schemaInterface:m,dataNode:A,parentNode:S,formData:E},{readonlyControl:I,disabledControl:L,visibleControl:w,displayControl:F,layoutStyle:M,labelText:k,customStyle:G,allowedOptions:H,defaultValueControl:q,actionData:j}=x(O),B=w.current.value,J=a(()=>null!=B?{visible:B,showing:B}:void 0);g(()=>w.value,e=>{null!=e&&J.setValue(n=>({visible:e,showing:n?n.showing:e}))});const U=u.control,P=null==(d=b)?void 0:d.control;g(()=>{var e;return[J.value,q.value,null==P?void 0:P.isNull,R(n)&&n.dontClearHidden,R(n)&&(null==(e=n.renderOptions)?void 0:e.type)==V.NullToggle,U.isNull,v.hidden,I.value]},([e,n,t,r,o,i,l,a])=>{a||(P?e&&e.visible===e.showing&&(l||!e.visible?P.setValue(e=>v.clearHidden&&!r?void 0:null==e&&r&&!o?n:e):o||P.setValue(e=>null!=e?e:n)):i&&U.setValue(e=>null!=e?e:{}))},!0);const _=y(()=>{var e;return{hidden:v.hidden||!(null!=(e=J.fields)&&e.showing.value),readonly:v.readonly||I.value,disabled:v.disabled||L.value}}),$=f(_);N({control:null!=P?P:D(null),hiddenControl:_.fields.hidden,dataContext:O});const W=ee({},v,$,{elementIndex:void 0,formData:E});if(o(()=>{P&&"boolean"==typeof $.disabled&&P.disabled!=$.disabled&&(P.disabled=$.disabled)},[P,$.disabled]),U.isNull)/*#__PURE__*/return e.createElement(e.Fragment,null);const Y=null!=(c=null==(s=n.adornments)?void 0:s.map(e=>r.renderAdornment({adornment:e,dataContext:O,useExpr:C})))?c:[],z=Ht({definition:t,renderer:r,renderChild:(n,t,o)=>{var l;if(P&&P.isNull)/*#__PURE__*/return e.createElement(i,{key:n});const a=null!=o?o:{},{parentDataNode:u}=a,d=ne(a,Et),c=null!=(l=null!=u?u:O.dataNode)?l:O.parentNode;/*#__PURE__*/return e.createElement(kt,{key:n,definition:t,renderer:r,parentDataNode:c,options:ee({},W,d)})},createDataProps:p,formOptions:$,dataContext:O,control:null!=F?F:P,elementIndex:h,schemaInterface:m,labelText:k,displayControl:F,style:G.value,allowedOptions:H,customDisplay:v.customDisplay,actionDataControl:j,actionOnClick:v.actionOnClick,useEvalExpression:C,useChildVisibility:(e,n)=>{var t;const r=qn(e),o=r?Pn(r,null!=(t=null!=n?n:b)?t:u):void 0;return et(C,e,o)}}),K=r.renderLayout(ee({},z,{adornments:Y,className:t.layoutClass,style:M.value}));return r.renderVisibility(ee({visibility:J},K))}finally{t()}},[T,p,N,r,m,x]);return S.displayName="RenderControl",S}function Mt({definition:n,fields:t,renderer:r,options:o,control:i}){var l=h();try{const l=Ft(n,r,o,Rn(kn({"":t}).getSchema(""),i));/*#__PURE__*/return e.createElement(l,null)}finally{l()}}function kt({definition:n,renderer:t,options:r,parentDataNode:o}){var i=h();try{const i=Ft(n,t,r,o);/*#__PURE__*/return e.createElement(i,null)}finally{i()}}function Gt(e){var n,t,r;let{definition:o,control:i,formOptions:l,style:a,allowedOptions:u,schemaInterface:d=At}=e,c=ne(e,Ot);const s=c.dataContext.dataNode,f=s.schema.field,p=Tt(o.styleClass),y=!!o.required,v=d.getOptions(f),m=null!=(n=null==u?void 0:u.value)?n:[],h=Array.isArray(m)?m:[m];return ee({dataNode:s,definition:o,childDefinitions:null!=(t=o.children)?t:[],control:i,field:f,id:"c"+i.uniqueId,options:h.length>0?h.map(e=>{var n;return"object"==typeof e?e:null!=(n=null==v?void 0:v.find(n=>n.value==e))?n:{name:e.toString(),value:e}}):v,readonly:!!l.readonly,renderOptions:null!=(r=o.renderOptions)?r:{type:"Standard"},required:y,hidden:!!l.hidden,className:p,style:a},c)}function Ht(e){const{definition:n,renderer:t,renderChild:r,control:o,dataContext:i,createDataProps:l,displayControl:a,style:u,labelText:d,useChildVisibility:c,designMode:s,customDisplay:f,useEvalExpression:p}=e;if(R(n))return S(n);var y,v,m,h,g;if(q(n))return n.compoundField?S(tn(n.compoundField,n.title,{children:n.children,hideTitle:null==(g=n.groupOptions)?void 0:g.hideTitle})):{processLayout:t.renderGroup({childDefinitions:null!=(y=n.children)?y:[],definition:n,renderChild:r,useEvalExpression:p,dataContext:i,renderOptions:null!=(v=n.groupOptions)?v:{type:"Standard"},className:Tt(n.styleClass),useChildVisibility:c,style:u,designMode:s}),label:{label:null!=(m=null==d?void 0:d.value)?m:n.title,className:Tt(n.labelClass),type:wt.Group,hide:null==(h=n.groupOptions)?void 0:h.hideTitle}};if(B(n)){var D,C,b,N,x;const r=null!=(D=null==(C=e.actionDataControl)?void 0:C.value)?D:n.actionData;return{children:t.renderAction({actionText:null!=(b=null!=(N=null==d?void 0:d.value)?N:n.title)?b:n.actionId,actionId:n.actionId,actionData:r,onClick:null!=(x=null==e.actionOnClick?void 0:e.actionOnClick(n.actionId,r))?x:()=>{},className:Tt(n.styleClass),style:u})}}if(j(n)){var T;const e=null!=(T=n.displayData)?T:{},r={data:e,className:Tt(n.styleClass),style:u,display:a,dataContext:i};return e.type===k.Custom&&f?{children:f(e.customId,r)}:{children:t.renderDisplay(r)}}return{};function S(n){var r,i,a;if(!o)return{children:"No control for: "+n.field};const u=l(e),c=n.hideTitle?void 0:_t(null!=(r=null==d?void 0:d.value)?r:n.title,e.dataContext.dataNode.schema.field);return{processLayout:t.renderData(u),label:{type:(null!=(i=null==(a=n.children)?void 0:a.length)?i:0)>0?wt.Group:wt.Control,label:c,forId:u.id,required:n.required,hide:n.hideTitle,className:Tt(n.labelClass)},errorControl:o}}}function Rt(n,t){return r=>r[n]=/*#__PURE__*/e.createElement(e.Fragment,null,r[n],t)}function qt(e,n){return t=>t[e]=n(t[e])}function jt(e){switch(e){case L.ControlEnd:return"controlEnd";case L.ControlStart:return"controlStart";case L.LabelStart:return"labelStart";case L.LabelEnd:return"labelEnd"}}function Bt(e){return n=>{const t=n.wrapLayout;n.wrapLayout=n=>e(t(n))}}function Jt(e,n){return Rt(jt(e),n)}function Ut(e,n){return qt(jt(e),n)}function Pt(e,n){var t;const{className:r,children:o,style:i,errorControl:l,label:a,adornments:u}=null!=(t=null==e.processLayout?void 0:e.processLayout(e))?t:e,d={children:o,errorControl:l,style:i,className:Tt(r),wrapLayout:e=>e};return(null!=u?u:[]).sort((e,n)=>e.priority-n.priority).forEach(e=>e.apply(d)),d.label=a&&!a.hide?n.renderLabel(a,d.labelStart,d.labelEnd):void 0,d}function _t(e,n){return e||Ie(n)}function $t(e){var n;const t=null==(n=e.validators)?void 0:n.find(e=>e.type===G.Length);return{min:null==t?void 0:t.min,max:null==t?void 0:t.max}}function Wt(e,n,t){var r;const o=null!=(r=n.displayName)?r:n.field,{addText:i,noAdd:l,removeText:a,noRemove:u,removeActionId:d,addActionId:c,disabled:s,readonly:f,designMode:p}=null!=t?t:{};return{arrayControl:e,addAction:f||l?void 0:{actionId:c||"add",actionText:i||"Add "+o,onClick:()=>!p&&C(e,Se(n)),disabled:s},removeAction:f||u?void 0:n=>({actionId:d||"remove",actionText:a||"Remove",onClick:()=>!p&&b(e,n),disabled:s})}}function Yt({arrayControl:e,min:n,max:t,addAction:r,removeAction:o,required:i},l){var a,u;const[d,c]=Xe(null!=(a=null==(u=e.elements)?void 0:u.length)?a:0,null==n&&i?1:n,t,!0,!0);return{addAction:l||c?r:void 0,removeAction:l||d?o:void 0,removeDisabled:!d,addDisabled:!c}}function zt(n){return(t,r,o)=>/*#__PURE__*/e.createElement(N,{array:n.childDefinitions},(e,r)=>n.renderChild(r,e,{parentDataNode:n.dataContext.parentNode,formData:{option:t,optionSelected:o}}))}function Kt(e){return e.type===w.Icon}function Qt(e){return e.type===w.Accordion}function Xt(e){return e.type===w.SetField}function Zt(e,n){return ee({type:"layout",render:e},n)}function er(e,n,t){return ee({type:"action",actionType:e,render:n},t)}function nr(e,n){return ee({type:"array",render:e},n)}function tr(e,n){return ee({type:"data",render:e},n)}function rr(e,n){return ee({type:"group",render:e},n)}function or(e,n){return ee({type:"display",render:e},n)}function ir(e,n){return ee({type:"label",render:e},n)}function lr(e,n){return ee({type:"visibility",render:e},n)}function ar(e,n){return ee({type:"adornment"},n,{render:e})}function ur(e=[],n){var t;const r=e.filter(sr),o=e.filter(fr),i=e.filter(cr),l=e.filter(hr),a=e.filter(pr),u=e.filter(gr),d=e.filter(mr),c=e.filter(yr),s={renderAction:function(e){var t;return(null!=(t=d.find(n=>dr(n.actionType,e.actionId)))?t:n.action).render(e,s)},renderData:function(e){var t;const{renderOptions:{type:o},field:i}=e,l=Le(e),a=(null!=(t=r.find(n=>{var t,r,a;return(null!=(t=n.collection)&&t)===(null==e.elementIndex&&null!=(r=i.collection)&&r)&&(null!=(a=n.options)&&a)===l&&(n.schemaType&&o==V.Standard&&dr(n.schemaType,i.type)||n.renderType&&dr(n.renderType,o)||n.match&&n.match(e))}))?t:n.data).render(e,s);return"function"==typeof a?a:e=>ee({},e,{children:a})},renderGroup:function(e){var t;const r=e.renderOptions.type,i=(null!=(t=o.find(e=>dr(e.renderType,r)))?t:n.group).render(e,s);return"function"==typeof i?i:e=>ee({},e,{children:i})},renderDisplay:function(e){var t;const r=e.data.type;return(null!=(t=l.find(e=>dr(e.renderType,r)))?t:n.display).render(e,s)},renderLabel:f,renderArray:function(e){var t;return(null!=(t=u[0])?t:n.array).render(e,s)},renderAdornment:function(e){var t;return(null!=(t=i.find(n=>dr(n.adornmentType,e.adornment.type)))?t:n.adornment).render(e,s)},renderLayout:function(e){var t;return(null!=(t=c.find(n=>!n.match||n.match(e)))?t:n.renderLayout).render(e,s)},renderVisibility:(null!=(t=e.find(vr))?t:n.visibility).render,renderLabelText:function(e){return f({label:e,type:wt.Text},void 0,void 0)}};function f(e,t,r){var o;return(null!=(o=a.find(n=>dr(n.labelType,e.type)))?o:n.label).render(e,t,r,s)}return s}function dr(e,n){return null==e||(Array.isArray(e)?e.includes(n):n===e)}function cr(e){return"adornment"===e.type}function sr(e){return"data"===e.type}function fr(e){return"group"===e.type}function pr(e){return"label"===e.type}function yr(e){return"layout"===e.type}function vr(e){return"visibility"===e.type}function mr(e){return"action"===e.type}function hr(e){return"display"===e.type}function gr(e){return"array"===e.type}!function(e){e[e.Control=0]="Control",e[e.Group=1]="Group",e[e.Text=2]="Text"}(wt||(wt={}));export{L as AdornmentPlacement,It as AppendAdornmentPriority,w as ControlAdornmentType,E as ControlDefinitionType,Mt as ControlRenderer,V as DataRenderType,H as DateComparison,St as DefaultSchemaInterface,k as DisplayDataType,O as DynamicPropertyType,I as ExpressionType,S as FieldType,M as GroupRenderType,wt as LabelType,kt as NewControlRenderer,F as SyncTextType,A as ValidationMessageType,G as ValidatorType,Lt as WrapAdornmentPriority,fn as accordionOptions,En as actionControl,De as addFieldOption,He as addMissingControls,on as adornmentOptions,Rt as appendMarkup,Jt as appendMarkupAt,Yt as applyArrayLengthRestrictions,Ne as applyDefaultForField,be as applyDefaultValues,wn as applyExtensionToSchema,Vn as applyExtensionsToSchema,Xe as applyLengthRestrictions,pe as boolField,te as buildSchema,an as checkListOptions,Je as cleanDataForSchema,nn as coerceToString,An as compoundControl,ye as compoundField,_t as controlTitle,On as createAction,er as createActionRenderer,ar as createAdornmentRenderer,Wt as createArrayActions,nr as createArrayRenderer,tr as createDataRenderer,or as createDisplayRenderer,Hn as createFormLookup,ur as createFormRenderer,rr as createGroupRenderer,ir as createLabelRenderer,Zt as createLayoutRenderer,kn as createSchemaLookup,lr as createVisibilityRenderer,tn as dataControl,ce as dateField,fe as dateTimeField,sn as dateValidatorOptions,me as defaultCompoundField,we as defaultControlForField,Gt as defaultDataProps,at as defaultEvalHooks,ve as defaultScalarField,At as defaultSchemaInterface,ut as defaultUseEvalExpressionHook,Te as defaultValueForField,xe as defaultValueForFields,yn as displayOnlyOptions,de as doubleField,gn as dynamicDefaultValue,bn as dynamicDisabled,Dn as dynamicReadonly,Cn as dynamicVisibility,Se as elementValueForField,In as emptyGroupDefinition,Me as existsInGroups,Ie as fieldDisplayName,xn as fieldEqExpr,Nn as fieldExpr,Oe as fieldHasTag,zt as fieldOptionAdornment,qn as fieldPathForDefinition,_e as findChildDefinition,Ee as findCompoundField,Fe as findCompoundGroups,Ve as findControlsForCompound,z as findField,Ze as findFieldPath,ke as findNonDataGroups,Ae as findScalarField,Ue as getAllReferencedClasses,Be as getDisplayOnlyOptions,Yn as getJsonPath,$t as getLengthRestrictions,$e as getOverrideClass,Wn as getRootDataNode,Kn as getSchemaFieldList,zn as getSchemaPath,Sn as groupedControl,Le as hasOptions,pt as hideDisplayOnly,hn as htmlDisplayControl,ue as intField,Qt as isAccordionAdornment,B as isActionControlsDefinition,Y as isArrayRenderer,Q as isCompoundField,je as isControlDisabled,qe as isControlReadonly,X as isDataControl,R as isDataControlDefinition,W as isDataGroupRenderer,j as isDisplayControlsDefinition,_ as isDisplayOnlyRenderer,P as isFlexRenderer,U as isGridRenderer,Z as isGroupControl,q as isGroupControlsDefinition,Kt as isIconAdornment,K as isScalarField,Xt as isSetFieldAdornment,$ as isTextfieldRenderer,Pe as jsonPathString,Tn as jsonataExpr,vn as jsonataOptions,cn as jsonataValidatorOptions,jt as layoutKeyForPlacement,dn as lengthValidatorOptions,ae as makeCompoundField,dt as makeEvalExpressionHook,Ye as makeHook,ze as makeHookDepString,le as makeScalarField,Rn as makeSchemaDataNode,ft as matchesType,he as mergeField,ge as mergeFields,en as mergeObjects,un as radioButtonOptions,Ht as renderControlLayout,Pt as renderLayoutParts,ln as renderOptionsFor,We as rendererClass,Ce as resolveSchemas,Qn as rootSchemaNode,Pn as schemaDataForFieldPath,jn as schemaDataForFieldRef,_n as schemaForFieldPath,Bn as schemaForFieldRef,re as stringField,oe as stringOptionsField,mn as textDisplayControl,pn as textfieldOptions,se as timeField,Qe as toDepString,Un as traverseData,$n as traverseParents,Jn as traverseSchemaPath,Ln as useControlDefinitionForSchema,Vt as useControlRenderer,Ft as useControlRendererComponent,xt as useDateValidator,Ke as useDynamicHooks,mt as useEvalActionHook,rt as useEvalAllowedOptionsHook,lt as useEvalDefaultValueHook,ot as useEvalDisabledHook,it as useEvalDisplayHook,ct as useEvalDynamicBoolHook,st as useEvalDynamicHook,ht as useEvalLabelText,nt as useEvalReadonlyHook,tt as useEvalStyleHook,et as useEvalVisibilityHook,vt as useJsonataExpression,bt as useJsonataValidator,Nt as useLengthValidator,Dt as useMakeValidationHook,Re as useUpdatedRef,yt as useUuidExpression,rn as validatorOptions,Zn as visitControlData,Xn as visitControlDataArray,J as visitControlDefinition,ie as withScalarOptions,Bt as wrapLayout,qt as wrapMarkup,Ut as wrapMarkupAt};
1
+ import n,{useRef as e,useCallback as t,useMemo as r,useEffect as o,Fragment as i}from"react";import l from"clsx";import{useControl as a,useComputed as u,useRefState as d,makeChangeTracker as c,addAfterChangesCallback as s,trackedValue as f,collectChanges as p,useCalculatedControl as y,useValueChangeEffect as v,useValidator as m,useComponentTracking as h,useControlEffect as g,newControl as D,addElement as C,removeElement as b,RenderArrayElements as N}from"@react-typed-forms/core";import x from"jsonata";import{v4 as T}from"uuid";var S,A,E,O,I,L,w,V,F,M,k,G,H;function R(n){return n.type===E.Data}function q(n){return n.type===E.Group}function j(n){return n.type===E.Display}function B(n){return n.type===E.Action}function J(n,e,t){switch(n.type){case E.Action:return e.action(n);case E.Data:return e.data(n);case E.Display:return e.display(n);case E.Group:return e.group(n);default:return t(n)}}function U(n){return n.type===M.Grid}function P(n){return n.type===M.Flex}function _(n){return n.type===V.DisplayOnly}function $(n){return n.type===V.Textfield}function W(n){return n.type===V.Group}function Y(n){return n.type===V.Array}function z(n,e){return n.find(n=>n.field===e)}function K(n){return!Q(n)}function Q(n){return n.type===S.Compound}function X(n){return n.type===E.Data}function Z(n){return n.type===E.Group}function nn(){return nn=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)({}).hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n},nn.apply(null,arguments)}function en(n,e){if(null==n)return{};var t={};for(var r in n)if({}.hasOwnProperty.call(n,r)){if(e.includes(r))continue;t[r]=n[r]}return t}function tn(n){return Object.entries(n).map(n=>n[1](n[0]))}function rn(n,e){return an(nn({type:S.String,displayName:n},e))}function on(n,...e){return an({type:S.String,displayName:n,options:e})}function ln(n,e){return t=>nn({},e(t),n)}function an(n){return e=>nn({},mn(e,e),n)}function un(n){return e=>nn({},hn(e,e,!1),n)}function dn(n,e){return an(nn({type:S.Int,displayName:n},e))}function cn(n,e){return an(nn({type:S.Double,displayName:n},e))}function sn(n,e){return an(nn({type:S.Date,displayName:n},e))}function fn(n,e){return an(nn({type:S.Time,displayName:n},e))}function pn(n,e){return an(nn({type:S.DateTime,displayName:n},e))}function yn(n,e){return an(nn({type:S.Bool,displayName:n},e))}function vn(n,e,t){return r=>nn({},hn(r,n,!1),t,{children:e})}function mn(n,e){return{field:n,displayName:e,type:S.String}}function hn(n,e,t){return{field:n,displayName:e,type:S.Compound,collection:t,children:[]}}function gn(n,e){const t=e.find(e=>e.field===n.field);return t?e.map(e=>e!==t?e:nn({},e,{onlyForTypes:r(e.onlyForTypes,n.onlyForTypes)})):[...e,n];function r(n,e){if(!n)return e;if(!e)return n;const t=e.filter(e=>!n.includes(e));return t.length?[...n,...t]:n}}function Dn(n,e,t,r){const o=n.map(n=>n.isTypeField?Cn(n,e,t):n);return r.map(n=>nn({},n,{onlyForTypes:[t]})).reduce((n,e)=>gn(e,n),o)}function Cn(n,e,t){var r;const o=null!=(r=n.options)?r:[];return o.some(n=>n.value===t)?n:nn({},n,{options:[...o,{name:e,value:t}]})}function bn(n){const e={};return Object.keys(n).forEach(function t(r){if(r in e)return e[r];const o=[];return e[r]=o,n[r].forEach(n=>{Q(n)&&n.schemaRef?o.push(nn({},n,{children:t(n.schemaRef)})):o.push(n)}),o}),e}function Nn(n,e,t){if(!n)return Tn(e);if(t&&t.has(n))return n;null!=t||(t=new Set),t.add(n);const r=e.filter(e=>Q(e)||!(e.field in n));if(!r.length)return n;const o=nn({},n);return r.forEach(r=>{o[r.field]=r.field in n?xn(n[r.field],r,e,!1,t):Sn(r)}),o}function xn(n,e,t,r,o){return e.collection&&!r?(null!=n?n:[]).map(n=>xn(n,e,t,!0,o)):Q(e)?n||e.required?Nn(n,e.treeChildren?t:e.children,o):n:Sn(e)}function Tn(n){return Object.fromEntries(n.map(n=>[n.field,Sn(n)]))}function Sn(n,e,t){if(void 0!==n.defaultValue)return n.defaultValue;const r=!(!e&&!n.required);if(Q(n)){if(r){const e=Tn(n.children);return n.collection?[e]:e}return n.notNullable||t?n.collection?[]:{}:void 0}return n.collection&&n.notNullable?[]:void 0}function An(n){return Q(n)?Tn(n.children):n.defaultValue}function En(n,e){return z(n,e)}function On(n,e){return z(n,e)}function In(n,e){var t;return Boolean(null==(t=n.tags)?void 0:t.includes(e))}function Ln(n){var e;return null!=(e=n.displayName)?e:n.field}function wn(n){var e,t;return(null!=(e=null==(t=n.options)?void 0:t.length)?e:0)>0}function Vn(n){if(Q(n))return{type:E.Data,title:n.displayName,field:n.field,required:n.required,children:n.children.map(Vn)};if(K(n)){var e;const t=null==(e=n.tags)?void 0:e.includes("_HtmlEditor");return{type:E.Data,title:n.displayName,field:n.field,required:n.required,renderOptions:{type:t?V.HtmlEditor:V.Standard}}}throw"Unknown schema field"}function Fn(n,e){return R(e)&&n.field===e.field?[e]:q(e)?e.compoundField===n.field?[e]:null!=(t=null==(r=e.children)?void 0:r.flatMap(e=>Fn(n,e)))?t:[]:[];var t,r}function Mn(n,e){return Object.fromEntries(n.filter(Q).map(n=>{const t=e.flatMap(e=>Fn(n,e));return[n.field,{groups:t.concat(Gn(t.flatMap(n=>{var e;return null!=(e=n.children)?e:[]}))),children:Mn(n.children,t.flatMap(n=>{var e;return null!=(e=n.children)?e:[]}))}]}))}function kn(n,e){if(!e.groups.find(e=>{var t;return null==(t=e.children)?void 0:t.find(e=>R(e)&&e.field===n.field||q(e)&&e.compoundField===n.field)}))return[[n,e]];if(Q(n)){const t=e.children[n.field];return t?n.children.flatMap(n=>kn(n,t)):[[n,e]]}return[]}function Gn(n){return n.flatMap(n=>{var e;return q(n)&&!n.compoundField?[n,...Gn(null!=(e=n.children)?e:[])]:[]})}function Hn(n){var e;return nn({},n,{children:null==(e=n.children)?void 0:e.map(Hn)})}function Rn(n,e){const t={children:Mn(n,e=e.map(Hn)),groups:Gn([{type:E.Group,children:e}])};return n.filter(n=>!In(n,"_NoControl")).flatMap(n=>kn(n,t)).forEach(([n,e])=>{var t;const r=null==(t=n.tags)?void 0:t.find(n=>n.startsWith("_ControlGroup:"));let o;if(r){const n=r.substring(14);o=e.groups.find(e=>e.title===n)}if(o||(o=e.groups[0]),o){const e=Vn(n);o.children?o.children.push(e):o.children=[e]}}),e}function qn(n){const t=e(n);return t.current=n,t}function jn(n){return X(n)&&!!n.readonly}function Bn(n){return X(n)&&!!n.disabled}function Jn(n){return R(n)&&n.renderOptions&&_(n.renderOptions)?n.renderOptions:void 0}function Un(n,e,t){if(!n)return n;const r=e.find(n=>n.isTypeField),o=r?n[r.field]:void 0,i=t?e:e.filter(n=>{var e,t;return Q(n)||(null!=(e=null==(t=n.onlyForTypes)?void 0:t.length)?e:0)>0});if(!i.length)return n;const l=nn({},n);return i.forEach(r=>{var i;const a=n[r.field];if(!1===(null==(i=r.onlyForTypes)?void 0:i.includes(o))||!r.notNullable&&(t&&r.defaultValue===a||r.collection&&Array.isArray(a)&&!a.length))delete l[r.field];else if(Q(r)){const n=r.treeChildren?e:r.children;r.collection?Array.isArray(a)&&(l[r.field]=a.map(e=>Un(e,n,t))):l[r.field]=Un(a,n,t)}}),l}function Pn(n,e){var t,r;const o=null==(t=n.children)?void 0:t.flatMap(n=>Pn(n,e)),i=l([n.styleClass,n.layoutClass,n.labelClass,...null!=(r=null==e?void 0:e(n))?r:[]].map(Wn));return o&&!i?o:i?o?[i,...o]:[i]:[]}function _n(n,e){let t="";return n.forEach((n,r)=>{var o;"number"==typeof n?t+=null!=(o=null==e?void 0:e(n))?o:"["+n+"]":(r>0&&(t+="."),t+=n)}),t}function $n(n,e){if(Array.isArray(e)){let t=n;return e.forEach(n=>t=t.children[n]),t}return n.children[e]}function Wn(n){return n&&n.startsWith("@ ")?n.substring(2):n}function Yn(n,e){const t=Wn(n);return t===n?l(n,e):t||void 0}function zn(n,e,t){return{deps:t,state:e,runHook:n}}function Kn(n,e){return n.map(n=>Xn(e(n))).join(",")}function Qn(n){const r=Object.entries(n),o=Kn(r,n=>n[1].deps),i=e({}),l=i.current;return r.forEach(n=>l[n[0]]=n[1].state),t(n=>Object.fromEntries(r.map(([e,t])=>[e,t.runHook(n,i.current[e])])),[o])}function Xn(n){return void 0===n?"_":null===n?"~":n.toString()}function Zn(n,e,t,r,o){return[null==e||n>e?r:void 0,null==t||n<t?o:void 0]}function ne(n,e){if(!e)return;const t=e.split("/"),r=[];let o=0,i=n;for(;o<t.length&&i;){const n=z(i,t[o]);if(!n)return;r.push(n),i=Q(n)&&!n.collection?n.children:void 0,o++}return r.length===t.length?r:void 0}function ee(n,e,t=(n,e,t)=>null!=e?e:t){if(!n)return e;if(!e)return n;const r=nn({},n);for(const o in e)e.hasOwnProperty(o)&&(r[o]=t(o,n[o],e[o]));return r}function te(n){return null==n?"":"object"==typeof n?"error: "+JSON.stringify(n):n.toString()}function re(n,e,t){return nn({type:E.Data,field:n,title:e},t)}function oe(n){return e=>nn({type:n},e)}function ie(n){return e=>nn({type:n},e)}function le(n){return e=>({renderOptions:nn({type:n},e)})}!function(n){n.String="String",n.Bool="Bool",n.Int="Int",n.Date="Date",n.DateTime="DateTime",n.Time="Time",n.Double="Double",n.EntityRef="EntityRef",n.Compound="Compound",n.AutoId="AutoId",n.Image="Image",n.Any="Any"}(S||(S={})),function(n){n.NotEmpty="NotEmpty",n.MinLength="MinLength",n.MaxLength="MaxLength",n.NotAfterDate="NotAfterDate",n.NotBeforeDate="NotBeforeDate"}(A||(A={})),function(n){n.Data="Data",n.Group="Group",n.Display="Display",n.Action="Action"}(E||(E={})),function(n){n.Visible="Visible",n.DefaultValue="DefaultValue",n.Readonly="Readonly",n.Disabled="Disabled",n.Display="Display",n.Style="Style",n.LayoutStyle="LayoutStyle",n.AllowedOptions="AllowedOptions",n.Label="Label",n.ActionData="ActionData"}(O||(O={})),function(n){n.Jsonata="Jsonata",n.Data="Data",n.DataMatch="FieldValue",n.UserMatch="UserMatch",n.NotEmpty="NotEmpty",n.UUID="UUID"}(I||(I={})),function(n){n.ControlStart="ControlStart",n.ControlEnd="ControlEnd",n.LabelStart="LabelStart",n.LabelEnd="LabelEnd"}(L||(L={})),function(n){n.Tooltip="Tooltip",n.Accordion="Accordion",n.HelpText="HelpText",n.Icon="Icon",n.SetField="SetField"}(w||(w={})),function(n){n.Standard="Standard",n.Textfield="Textfield",n.Radio="Radio",n.HtmlEditor="HtmlEditor",n.IconList="IconList",n.CheckList="CheckList",n.UserSelection="UserSelection",n.Synchronised="Synchronised",n.IconSelector="IconSelector",n.DateTime="DateTime",n.Checkbox="Checkbox",n.Dropdown="Dropdown",n.DisplayOnly="DisplayOnly",n.Group="Group",n.NullToggle="NullToggle",n.Jsonata="Jsonata",n.Array="Array"}(V||(V={})),function(n){n.Camel="Camel",n.Snake="Snake",n.Pascal="Pascal"}(F||(F={})),function(n){n.Standard="Standard",n.Grid="Grid",n.Flex="Flex",n.GroupElement="GroupElement"}(M||(M={})),function(n){n.Text="Text",n.Html="Html",n.Icon="Icon",n.Custom="Custom"}(k||(k={})),function(n){n.Jsonata="Jsonata",n.Date="Date",n.Length="Length"}(G||(G={})),function(n){n.NotBefore="NotBefore",n.NotAfter="NotAfter"}(H||(H={}));const ae=le(V.CheckList),ue=le(V.Radio),de=oe(G.Length),ce=oe(G.Jsonata),se=oe(G.Date),fe=ie(w.Accordion),pe=le(V.Textfield),ye=le(V.DisplayOnly),ve=le(V.Jsonata);function me(n,e){return nn({type:E.Display,displayData:{type:k.Text,text:n}},e)}function he(n,e){return nn({type:E.Display,displayData:{type:k.Html,html:n}},e)}function ge(n){return{type:O.DefaultValue,expr:n}}function De(n){return{type:O.Readonly,expr:n}}function Ce(n){return{type:O.Visible,expr:n}}function be(n){return{type:O.Disabled,expr:n}}function Ne(n){return{type:I.Data,field:n}}function xe(n,e){return{type:I.DataMatch,field:n,value:e}}function Te(n){return{type:I.Jsonata,expression:n}}function Se(n,e,t){return nn({type:E.Group,children:n,title:e,groupOptions:{type:"Standard",hideTitle:!e}},t)}function Ae(n,e,t,r){return nn({type:E.Data,field:n,children:t,title:e,renderOptions:{type:"Standard"}},r)}function Ee(n,e,t){return nn({type:E.Action,title:n,actionId:e},t)}function Oe(n,e,t){return{actionId:n,onClick:e,actionText:null!=t?t:n}}const Ie={type:E.Group,children:[],groupOptions:{type:M.Standard,hideTitle:!0}};function Le(n,e=Ie){return r(()=>{var t;return nn({},e,{children:Rn(n,null!=(t=e.children)?t:[])})},[n,e])}function we(n,e){const t=nn({},n);return Object.entries(e).forEach(([n,e])=>{t[n]=(Array.isArray(e)?e:[e]).reduce((n,e)=>{var t;return Dn(n,e.name,e.value,null!=(t=e.fields)?t:[])},t[n])}),t}function Ve(n,e){return bn(e.reduce(we,n))}const Fe={field:"__missing",type:S.Any};function Me(n,e,t){const r={field:n,getSchema:e.getSchema,parent:t,getChildNode:function(t){if(Q(n)&&!n.schemaRef){const o=n.children.find(n=>n.field===t);return o?Me(o,e,r):void 0}return o().find(n=>n.field.field===t)},getChildNodes:o};return r;function o(){if(Q(n)){const t=n.schemaRef&&e.getSchema(n.schemaRef);return t?t.getChildNodes():n.children.map(n=>Me(n,e,r))}return[]}}function ke(n){const e={getSchema:function(t){const r=n[t];if(r)return Xe(r,e)}};return e}function Ge(n,e){const t={definition:n,parent:e,getChildNodes:function(){var e,r;return null!=(e=null==(r=n.children)?void 0:r.map(n=>Ge(n,t)))?e:[]}};return t}function He(n){return{getForm:function e(t){const r=n[t];if(r)return{rootNode:Ge({children:r,type:E.Group}),getForm:e}}}}function Re(n,e,t,r){const o={schema:n,control:e,parent:t,elementIndex:r,getChild:function(n){var t;const r=e;return r&&r.current.isNull&&(r.value={}),Re(n,null==r||null==(t=r.fields)?void 0:t[n.field.field],o)},getChildElement:function(t){var r;return Re(n,null==e||null==(r=e.elements)?void 0:r[t],o,t)}};return o}function qe(n){const e=q(n)?n.compoundField:R(n)?n.field:void 0;return null==e?void 0:e.split("/")}function je(n,e){const t=qe(n);return t?_e(t,e):void 0}function Be(n,e){var t;return _e(null!=(t=null==n?void 0:n.split("/"))?t:[],e)}function Je(n,e){var t;return $e(null!=(t=null==n?void 0:n.split("/"))?t:[],e)}function Ue(n,e,t,r){let o=0;for(;o<n.length;){let i=e.getChildNode(n[o]);i||(i=Me(Fe,e,e)),t=r(t,i),e=i,o++}return t}function Pe(n,e,t){return Ue(n,e,t,(n,e)=>null==n?void 0:n[e.field.field])}function _e(n,e){return Ue(n,e.schema,e,(n,e)=>n.getChild(e))}function $e(n,e){let t=0;for(;t<n.length;){let r=e.getChildNode(n[t]);r||(r=Me(Fe,e,e)),e=r,t++}return e}function We(n,e,t){let r=[];for(;n&&(null==t||!t(n));)r.push(e(n)),n=n.parent;return r.reverse()}function Ye(n){for(;n.parent;)n=n.parent;return n}function ze(n){return We(n,n=>null==n.elementIndex?n.schema.field.field:n.elementIndex,n=>!n.parent)}function Ke(n){return We(n,n=>n.field,n=>!n.parent)}function Qe(n){return n.getChildNodes().map(n=>n.field)}function Xe(n,e={getSchema(n){}}){return Me({type:S.Compound,field:"",children:n},e,void 0)}function Ze(n,e,t){if(n)for(const r of n){const n=nt(r,e,t);if(void 0!==n)return n}}function nt(n,e,t){if(e.control&&!e.control.isNull)return J(n,{data:n=>r(n,n.field,n.children),group:n=>r(void 0,n.compoundField,n.children),action:()=>{},display:()=>{}},()=>{});function r(n,r,o){const i=r?e.schema.getChildNode(r):void 0;if(!i)return r?void 0:Ze(o,e,t);const l=e.getChild(i),a=n?t(n,l):void 0;if(void 0!==a)return a;const u=Q(i.field);if(i.field.collection){const e=l.control;let r=0;for(const i of null!=(d=e.elements)?d:[]){var d;const e=l.getChildElement(r),i=n?t(n,e):void 0;if(void 0!==i)return i;if(u){const n=Ze(o,e,t);if(void 0!==n)return n}r++}}else if(u)return Ze(o,l,t)}}function et(n,e,t){return Dt(st(e,O.Visible,n),(n,{definition:e,overrideDataNode:t})=>u(()=>{const r=null!=t?t:n.dataNode;return!r||pt(r)&&!yt(r,n.schemaInterface,e)}),{definition:e,overrideDataNode:t})}function tt(n,e){return Dt(st(e,O.Readonly,n),(n,{definition:e})=>y(()=>jn(e)),{definition:e})}function rt(n,e,t){return Dt(ft(t,e,n),()=>a(void 0),void 0)}function ot(n,e){return Dt(ft(e,O.AllowedOptions,n),()=>a([]),void 0)}function it(n,e){return Dt(st(e,O.Disabled,n),n=>u(()=>{var t,r;const o=null==(t=n.dataNode)?void 0:t.control;return!1===(null==o||null==(r=o.meta.nullControl)?void 0:r.value)||Bn(e)}),void 0)}function lt(n,e){return ft(e,O.Display,n)}function at(n,e){return Dt(ft(e,O.DefaultValue,n),(n,{definition:e})=>u(function(){var t;const[r,o]=R(e)?[e.required,e.defaultValue]:[!1,void 0],i=null==(t=n.dataNode)?void 0:t.schema.field;return null!=o?o:i?null!=n.dataNode.elementIndex?An(i):Sn(i,r,!0):void 0}),{definition:e})}function ut(n,e,t){switch(n.type){case I.Jsonata:const r=u(()=>({formData:e.formData}));return mt(n.expression,Ye(e.parentNode).control,ze(e.parentNode),r,t);case I.UUID:return vt(t);case I.Data:return function(n,e,t=n=>n){const r=Be(n.field,e);return y(()=>{var n;return t(null==(n=r.control)?void 0:n.value)})}(n,e.parentNode,t);case I.DataMatch:return function(n,e,t=n=>n){const r=Be(n.field,e);return y(()=>{var e;const o=null==(e=r.control)?void 0:e.value;return t(Array.isArray(o)?o.includes(n.value):o===n.value)})}(n,e.parentNode,t);case I.NotEmpty:return function(n,e,t,r=n=>n){const o=Be(n.field,e);return y(()=>{var n;const e=null==(n=o.control)?void 0:n.value,i=o.schema.field;return r(i&&!t.isEmptyValue(i,e))})}(n,e.parentNode,e.schemaInterface,t);default:return a(void 0)}}const dt=ct(ut);function ct(n){return(e,t)=>({deps:null==e?void 0:e.type,state:e&&e.type?e:void 0,runHook:(e,r)=>r?n(r,e,t):void 0})}function st(n,e,t){return ft(n,e,t,n=>Boolean(n))}function ft(n,e,t,r=n=>n){var o;const i=null==(o=n.dynamic)?void 0:o.find(n=>n.type===e);return t(null==i?void 0:i.expr,r)}function pt(n){const e=n.schema.field.onlyForTypes;if(null==e||0===e.length)return!0;const t=n.parent,r=t.schema.getChildNodes().find(n=>n.field.isTypeField);if(null==r)return!0;const o=t.getChild(r).control;return o&&e.includes(o.value)}function yt(n,e,t){var r;const o=Jn(t);return o&&!o.emptyText&&e.isEmptyValue(n.schema.field,null==(r=n.control)?void 0:r.value)}function vt(n=n=>n){return a(()=>n(T()))}function mt(n,t,i,l,u=n=>n){const y=_n(i,n=>`#$i[${n}]`),v=y?y+".("+n+")":n,m=r(()=>{try{return x(n?v:"null")}catch(n){return console.error(n),x("null")}},[v]),h=a(),g=e(),D=e(0),[C]=d(()=>c(()=>{const n=g.current;n&&(g.current=void 0,s(()=>{g.current=n,n()}))}));return o(()=>{async function n(){const[n,e]=C.current;try{D.current++,h.value=u(await m.evaluate(f(t,n),p(n,()=>null==l?void 0:l.value)))}finally{--D.current||e()}}g.current=n,n()},[m]),o(()=>()=>{g.current=void 0,C.current[1](!0)},[]),h}function ht(n,e){return Dt(ft(e,O.ActionData,n),()=>a(null),void 0)}function gt(n,e){return Dt(ft(e,O.Label,n),()=>a(null),void 0)}function Dt(n,e,t,r){return{deps:void 0===r?n.deps:[r,n.deps].map(Xn).join(),runHook:(t,r)=>{var o;return null!=(o=n.runHook(t,r[0]))?o:e(t,r[1])},state:[n.state,t]}}function Ct(n,e=bt){var r;const o=R(n)?n:void 0,i=qn({dd:o,useValidatorFor:e}),l=o?Kn(null!=(r=o.validators)?r:[],n=>n.type):"~";return t(n=>{var t,r,o;const{dd:l}=i.current;if(!l)return;const a=null!=(t=null==(r=n.dataContext.dataNode)?void 0:r.schema.field)?t:{field:"__missing",type:S.Any},{control:u,hiddenControl:d,dataContext:{schemaInterface:c}}=n;v(u,()=>u.setError("default","")),m(u,n=>!d.value&&l.required&&c.isEmptyValue(a,n)?c.validationMessageText(a,A.NotEmpty,!1,!0):null,"required",void 0,[l.required]),null==(o=l.validators)||o.forEach((t,r)=>e(t,nn({},n,{index:r,field:a,definition:l})))},[!!o,l,e])}function bt(n,e){switch(n.type){case G.Length:xt(n,e);break;case G.Jsonata:Nt(n,e);break;case G.Date:Tt(n,e)}}function Nt(n,e){const t=e.dataContext.parentNode,r=mt(n.expression,Ye(t).control,ze(t),void 0,n=>null==n?null:"string"==typeof n?n:JSON.stringify(n));m(e.control,()=>e.hiddenControl.value?null:r.value,"jsonata"+e.index)}function xt(n,e){const{control:t,dataContext:{schemaInterface:r},hiddenControl:o,field:i}=e;m(t,e=>{const l=r.controlLength(i,t);if(!o.value)if(null!=n.min&&l<n.min){if(null==i||!i.collection)return r.validationMessageText(i,A.MinLength,l,n.min);t.setValue(e=>Array.isArray(e)?e.concat(Array.from({length:n.min-e.length})):Array.from({length:n.min}))}else if(null!=n.max&&l>n.max)return r.validationMessageText(i,A.MaxLength,l,n.max)},"length"+e.index)}function Tt(n,e){const{control:t,field:r,index:o,dataContext:{schemaInterface:i}}=e;let l;if(n.fixedDate)l=i.parseToMillis(r,n.fixedDate);else{const e=new Date;l=Date.UTC(e.getFullYear(),e.getMonth(),e.getDate()),n.daysFromCurrent&&(l+=864e5*n.daysFromCurrent)}m(t,e=>{if(e){const t=i.parseToMillis(r,e),o=n.comparison===H.NotAfter;if(o?t>l:t<l)return i.validationMessageText(r,o?A.NotAfterDate:A.NotBeforeDate,t,l)}return null},"date"+o)}function St(n){return n||void 0}class At{constructor(n=["No","Yes"]){this.boolStrings=void 0,this.boolStrings=n}parseToMillis(n,e){return Date.parse(e)}validationMessageText(n,e,t,r){switch(e){case A.NotEmpty:return"Please enter a value";case A.MinLength:return"Length must be at least "+r;case A.MaxLength:return"Length must be less than "+r;case A.NotBeforeDate:return`Date must not be before ${new Date(r).toDateString()}`;case A.NotAfterDate:return`Date must not be after ${new Date(r).toDateString()}`;default:return"Unknown error"}}getDataOptions(n){return this.getNodeOptions(n.schema)}getNodeOptions(n){return this.getOptions(n.field)}getOptions({options:n}){return n&&n.length>0?n:null}getFilterOptions(n,e){return this.getNodeOptions(e)}isEmptyValue(n,e){if(n.collection)return Array.isArray(e)?0===e.length:null==e;switch(n.type){case S.String:case S.DateTime:case S.Date:case S.Time:return!e;default:return null==e}}searchText(n,e){var t,r;return null!=(t=null==(r=this.textValue(n,e))?void 0:r.toLowerCase())?t:""}textValue(n,e,t){const r=this.getOptions(n),o=null==r?void 0:r.find(n=>n.value===e);if(o)return o.name;switch(n.type){case S.Date:return e?new Date(e).toLocaleDateString():void 0;case S.DateTime:return e?new Date(e).toLocaleString():void 0;case S.Time:return e?new Date("1970-01-01T"+e).toLocaleTimeString():void 0;case S.Bool:return this.boolStrings[e?1:0];default:return null!=e?e.toString():void 0}}controlLength(n,e){var t,r;return n.collection?null!=(t=null==(r=e.elements)?void 0:r.length)?t:0:this.valueLength(n,e.value)}valueLength(n,e){var t;return null!=(t=e&&(null==e?void 0:e.length))?t:0}compareValue(n,e,t){if(null==e)return null==t?0:1;if(null==t)return-1;switch(n.type){case S.Date:case S.DateTime:case S.Time:case S.String:return e.localeCompare(t);case S.Bool:return e?t?0:1:-1;case S.Int:case S.Double:return e-t;default:return 0}}}const Et=new At,Ot=["parentDataNode"],It=["definition","control","formOptions","style","allowedOptions","schemaInterface"],Lt=0,wt=1e3;var Vt;function Ft(e,r,o,i={}){const l=qn({definition:e,fields:r,renderer:o,options:i});return t(({control:e,parentPath:t})=>/*#__PURE__*/n.createElement(kt,nn({},l.current,{control:e,parentPath:t})),[l])}function Mt(e,r,l={},u){var d,c,s;const p=null!=(d=null==l.useDataHook?void 0:l.useDataHook(e))?d:Ht,v=l.elementIndex,m=null!=(c=l.schemaInterface)?c:Et,C=null!=(s=l.useEvalExpressionHook)?s:dt;let b;b=null!=v?u.getChildElement(v):je(e,u);const N=Ct(e,l.useValidationHook),x=Qn({defaultValueControl:at(C,e),visibleControl:et(C,e),readonlyControl:tt(C,e),disabledControl:it(C,e),allowedOptions:ot(C,e),labelText:gt(C,e),actionData:ht(C,e),customStyle:rt(C,O.Style,e),layoutStyle:rt(C,O.LayoutStyle,e),displayControl:lt(C,e)}),T=qn({options:l,definition:e,elementIndex:v,parentDataNode:u,dataNode:b}),S=t(()=>{const t=h();try{var l,d,c,s;const{definition:t,options:v,elementIndex:h,parentDataNode:S,dataNode:A}=T.current,E=null!=(l=v.formData)?l:{},O={schemaInterface:m,dataNode:A,parentNode:S,formData:E},{readonlyControl:I,disabledControl:L,visibleControl:w,displayControl:F,layoutStyle:M,labelText:k,customStyle:G,allowedOptions:H,defaultValueControl:q,actionData:j}=x(O),B=w.current.value,J=a(()=>null!=B?{visible:B,showing:B}:void 0);g(()=>w.value,n=>{null!=n&&J.setValue(e=>({visible:n,showing:e?e.showing:n}))});const U=u.control,P=null==(d=b)?void 0:d.control;g(()=>{var n;return[J.value,q.value,null==P?void 0:P.isNull,R(e)&&e.dontClearHidden,R(e)&&(null==(n=e.renderOptions)?void 0:n.type)==V.NullToggle,U.isNull,v.hidden,I.value]},([n,e,t,r,o,i,l,a])=>{a||(P?n&&n.visible===n.showing&&(l||!n.visible?P.setValue(n=>v.clearHidden&&!r?void 0:null==n&&r&&!o?e:n):o||P.setValue(n=>null!=n?n:e)):i&&U.setValue(n=>null!=n?n:{}))},!0);const _=y(()=>{var n;return{hidden:v.hidden||!(null!=(n=J.fields)&&n.showing.value),readonly:v.readonly||I.value,disabled:v.disabled||L.value}}),$=f(_);N({control:null!=P?P:D(null),hiddenControl:_.fields.hidden,dataContext:O});const W=nn({},v,$,{elementIndex:void 0,formData:E});if(o(()=>{P&&"boolean"==typeof $.disabled&&P.disabled!=$.disabled&&(P.disabled=$.disabled)},[P,$.disabled]),U.isNull)/*#__PURE__*/return n.createElement(n.Fragment,null);const Y=null!=(c=null==(s=e.adornments)?void 0:s.map(n=>r.renderAdornment({adornment:n,dataContext:O,useExpr:C})))?c:[],z=Rt({definition:t,renderer:r,renderChild:(e,t,o)=>{var l;if(P&&P.isNull)/*#__PURE__*/return n.createElement(i,{key:e});const a=null!=o?o:{},{parentDataNode:u}=a,d=en(a,Ot),c=null!=(l=null!=u?u:O.dataNode)?l:O.parentNode;/*#__PURE__*/return n.createElement(Gt,{key:e,definition:t,renderer:r,parentDataNode:c,options:nn({},W,d)})},createDataProps:p,formOptions:$,dataContext:O,control:null!=F?F:P,elementIndex:h,schemaInterface:m,labelText:k,displayControl:F,style:G.value,allowedOptions:H,customDisplay:v.customDisplay,actionDataControl:j,actionOnClick:v.actionOnClick,useEvalExpression:C,useChildVisibility:(n,e,t)=>{var r;return et(C,n,t?void 0:je(n,null!=(r=null!=e?e:b)?r:u))}}),K=r.renderLayout(nn({},z,{adornments:Y,className:t.layoutClass,style:M.value}));return r.renderVisibility(nn({visibility:J},K))}finally{t()}},[T,p,N,r,m,x]);return S.displayName="RenderControl",S}function kt({definition:e,fields:t,renderer:r,options:o,control:i}){var l=h();try{const l=Mt(e,r,o,Re(ke({"":t}).getSchema(""),i));/*#__PURE__*/return n.createElement(l,null)}finally{l()}}function Gt({definition:e,renderer:t,options:r,parentDataNode:o}){var i=h();try{const i=Mt(e,t,r,o);/*#__PURE__*/return n.createElement(i,null)}finally{i()}}function Ht(n){var e,t,r;let{definition:o,control:i,formOptions:l,style:a,allowedOptions:u,schemaInterface:d=Et}=n,c=en(n,It);const s=c.dataContext.dataNode,f=s.schema.field,p=St(o.styleClass),y=!!o.required,v=d.getOptions(f),m=null!=(e=null==u?void 0:u.value)?e:[],h=Array.isArray(m)?m:[m];return nn({dataNode:s,definition:o,childDefinitions:null!=(t=o.children)?t:[],control:i,field:f,id:"c"+i.uniqueId,options:h.length>0?h.map(n=>{var e;return"object"==typeof n?n:null!=(e=null==v?void 0:v.find(e=>e.value==n))?e:{name:n.toString(),value:n}}):v,readonly:!!l.readonly,renderOptions:null!=(r=o.renderOptions)?r:{type:"Standard"},required:y,hidden:!!l.hidden,className:p,style:a},c)}function Rt(n){const{definition:e,renderer:t,renderChild:r,control:o,dataContext:i,createDataProps:l,displayControl:a,style:u,labelText:d,useChildVisibility:c,designMode:s,customDisplay:f,useEvalExpression:p}=n;if(R(e))return S(e);var y,v,m,h,g;if(q(e))return e.compoundField?S(re(e.compoundField,e.title,{children:e.children,hideTitle:null==(g=e.groupOptions)?void 0:g.hideTitle})):{processLayout:t.renderGroup({childDefinitions:null!=(y=e.children)?y:[],definition:e,renderChild:r,useEvalExpression:p,dataContext:i,renderOptions:null!=(v=e.groupOptions)?v:{type:"Standard"},className:St(e.styleClass),useChildVisibility:c,style:u,designMode:s}),label:{label:null!=(m=null==d?void 0:d.value)?m:e.title,className:St(e.labelClass),type:Vt.Group,hide:null==(h=e.groupOptions)?void 0:h.hideTitle}};if(B(e)){var D,C,b,N,x;const r=null!=(D=null==(C=n.actionDataControl)?void 0:C.value)?D:e.actionData;return{children:t.renderAction({actionText:null!=(b=null!=(N=null==d?void 0:d.value)?N:e.title)?b:e.actionId,actionId:e.actionId,actionData:r,onClick:null!=(x=null==n.actionOnClick?void 0:n.actionOnClick(e.actionId,r))?x:()=>{},className:St(e.styleClass),style:u})}}if(j(e)){var T;const n=null!=(T=e.displayData)?T:{},r={data:n,className:St(e.styleClass),style:u,display:a,dataContext:i};return n.type===k.Custom&&f?{children:f(n.customId,r)}:{children:t.renderDisplay(r)}}return{};function S(e){var r,i,a;if(!o)return{children:"No control for: "+e.field};const u=l(n),c=e.hideTitle?void 0:$t(null!=(r=null==d?void 0:d.value)?r:e.title,n.dataContext.dataNode.schema.field);return{processLayout:t.renderData(u),label:{type:(null!=(i=null==(a=e.children)?void 0:a.length)?i:0)>0?Vt.Group:Vt.Control,label:c,forId:u.id,required:e.required,hide:e.hideTitle,className:St(e.labelClass)},errorControl:o}}}function qt(e,t){return r=>r[e]=/*#__PURE__*/n.createElement(n.Fragment,null,r[e],t)}function jt(n,e){return t=>t[n]=e(t[n])}function Bt(n){switch(n){case L.ControlEnd:return"controlEnd";case L.ControlStart:return"controlStart";case L.LabelStart:return"labelStart";case L.LabelEnd:return"labelEnd"}}function Jt(n){return e=>{const t=e.wrapLayout;e.wrapLayout=e=>n(t(e))}}function Ut(n,e){return qt(Bt(n),e)}function Pt(n,e){return jt(Bt(n),e)}function _t(n,e){var t;const{className:r,children:o,style:i,errorControl:l,label:a,adornments:u}=null!=(t=null==n.processLayout?void 0:n.processLayout(n))?t:n,d={children:o,errorControl:l,style:i,className:St(r),wrapLayout:n=>n};return(null!=u?u:[]).sort((n,e)=>n.priority-e.priority).forEach(n=>n.apply(d)),d.label=a&&!a.hide?e.renderLabel(a,d.labelStart,d.labelEnd):void 0,d}function $t(n,e){return n||Ln(e)}function Wt(n){var e;const t=null==(e=n.validators)?void 0:e.find(n=>n.type===G.Length);return{min:null==t?void 0:t.min,max:null==t?void 0:t.max}}function Yt(n,e,t){var r;const o=null!=(r=e.displayName)?r:e.field,{addText:i,noAdd:l,removeText:a,noRemove:u,removeActionId:d,addActionId:c,disabled:s,readonly:f,designMode:p}=null!=t?t:{};return{arrayControl:n,addAction:f||l?void 0:{actionId:c||"add",actionText:i||"Add "+o,onClick:()=>!p&&C(n,An(e)),disabled:s},removeAction:f||u?void 0:e=>({actionId:d||"remove",actionText:a||"Remove",onClick:()=>!p&&b(n,e),disabled:s})}}function zt({arrayControl:n,min:e,max:t,addAction:r,removeAction:o,required:i},l){var a,u;const[d,c]=Zn(null!=(a=null==(u=n.elements)?void 0:u.length)?a:0,null==e&&i?1:e,t,!0,!0);return{addAction:l||c?r:void 0,removeAction:l||d?o:void 0,removeDisabled:!d,addDisabled:!c}}function Kt(e){return(t,r,o)=>/*#__PURE__*/n.createElement(N,{array:e.childDefinitions},(n,r)=>e.renderChild(r,n,{parentDataNode:e.dataContext.parentNode,formData:{option:t,optionSelected:o}}))}function Qt(n){return n.type===w.Icon}function Xt(n){return n.type===w.Accordion}function Zt(n){return n.type===w.SetField}function nr(n,e){return nn({type:"layout",render:n},e)}function er(n,e,t){return nn({type:"action",actionType:n,render:e},t)}function tr(n,e){return nn({type:"array",render:n},e)}function rr(n,e){return nn({type:"data",render:n},e)}function or(n,e){return nn({type:"group",render:n},e)}function ir(n,e){return nn({type:"display",render:n},e)}function lr(n,e){return nn({type:"label",render:n},e)}function ar(n,e){return nn({type:"visibility",render:n},e)}function ur(n,e){return nn({type:"adornment"},e,{render:n})}function dr(n=[],e){var t;const r=n.filter(fr),o=n.filter(pr),i=n.filter(sr),l=n.filter(gr),a=n.filter(yr),u=n.filter(Dr),d=n.filter(hr),c=n.filter(vr),s={renderAction:function(n){var t;return(null!=(t=d.find(e=>cr(e.actionType,n.actionId)))?t:e.action).render(n,s)},renderData:function(n){var t;const{renderOptions:{type:o},field:i}=n,l=wn(n),a=(null!=(t=r.find(e=>{var t,r,a;return(null!=(t=e.collection)&&t)===(null==n.elementIndex&&null!=(r=i.collection)&&r)&&(null!=(a=e.options)&&a)===l&&(e.schemaType&&o==V.Standard&&cr(e.schemaType,i.type)||e.renderType&&cr(e.renderType,o)||e.match&&e.match(n))}))?t:e.data).render(n,s);return"function"==typeof a?a:n=>nn({},n,{children:a})},renderGroup:function(n){var t;const r=n.renderOptions.type,i=(null!=(t=o.find(n=>cr(n.renderType,r)))?t:e.group).render(n,s);return"function"==typeof i?i:n=>nn({},n,{children:i})},renderDisplay:function(n){var t;const r=n.data.type;return(null!=(t=l.find(n=>cr(n.renderType,r)))?t:e.display).render(n,s)},renderLabel:f,renderArray:function(n){var t;return(null!=(t=u[0])?t:e.array).render(n,s)},renderAdornment:function(n){var t;return(null!=(t=i.find(e=>cr(e.adornmentType,n.adornment.type)))?t:e.adornment).render(n,s)},renderLayout:function(n){var t;return(null!=(t=c.find(e=>!e.match||e.match(n)))?t:e.renderLayout).render(n,s)},renderVisibility:(null!=(t=n.find(mr))?t:e.visibility).render,renderLabelText:function(n){return f({label:n,type:Vt.Text},void 0,void 0)}};function f(n,t,r){var o;return(null!=(o=a.find(e=>cr(e.labelType,n.type)))?o:e.label).render(n,t,r,s)}return s}function cr(n,e){return null==n||(Array.isArray(n)?n.includes(e):e===n)}function sr(n){return"adornment"===n.type}function fr(n){return"data"===n.type}function pr(n){return"group"===n.type}function yr(n){return"label"===n.type}function vr(n){return"layout"===n.type}function mr(n){return"visibility"===n.type}function hr(n){return"action"===n.type}function gr(n){return"display"===n.type}function Dr(n){return"array"===n.type}!function(n){n[n.Control=0]="Control",n[n.Group=1]="Group",n[n.Text=2]="Text"}(Vt||(Vt={}));export{L as AdornmentPlacement,Lt as AppendAdornmentPriority,w as ControlAdornmentType,E as ControlDefinitionType,kt as ControlRenderer,V as DataRenderType,H as DateComparison,At as DefaultSchemaInterface,k as DisplayDataType,O as DynamicPropertyType,I as ExpressionType,S as FieldType,M as GroupRenderType,Vt as LabelType,Gt as NewControlRenderer,F as SyncTextType,A as ValidationMessageType,G as ValidatorType,wt as WrapAdornmentPriority,fe as accordionOptions,Ee as actionControl,Cn as addFieldOption,Rn as addMissingControls,ie as adornmentOptions,qt as appendMarkup,Ut as appendMarkupAt,zt as applyArrayLengthRestrictions,xn as applyDefaultForField,Nn as applyDefaultValues,we as applyExtensionToSchema,Ve as applyExtensionsToSchema,Zn as applyLengthRestrictions,yn as boolField,tn as buildSchema,ae as checkListOptions,Un as cleanDataForSchema,te as coerceToString,Ae as compoundControl,vn as compoundField,$t as controlTitle,Oe as createAction,er as createActionRenderer,ur as createAdornmentRenderer,Yt as createArrayActions,tr as createArrayRenderer,rr as createDataRenderer,ir as createDisplayRenderer,He as createFormLookup,dr as createFormRenderer,or as createGroupRenderer,lr as createLabelRenderer,nr as createLayoutRenderer,ke as createSchemaLookup,ar as createVisibilityRenderer,re as dataControl,sn as dateField,pn as dateTimeField,se as dateValidatorOptions,hn as defaultCompoundField,Vn as defaultControlForField,Ht as defaultDataProps,ut as defaultEvalHooks,mn as defaultScalarField,Et as defaultSchemaInterface,dt as defaultUseEvalExpressionHook,Sn as defaultValueForField,Tn as defaultValueForFields,ye as displayOnlyOptions,cn as doubleField,ge as dynamicDefaultValue,be as dynamicDisabled,De as dynamicReadonly,Ce as dynamicVisibility,An as elementValueForField,Ie as emptyGroupDefinition,kn as existsInGroups,Ln as fieldDisplayName,xe as fieldEqExpr,Ne as fieldExpr,In as fieldHasTag,Kt as fieldOptionAdornment,qe as fieldPathForDefinition,$n as findChildDefinition,On as findCompoundField,Mn as findCompoundGroups,Fn as findControlsForCompound,z as findField,ne as findFieldPath,Gn as findNonDataGroups,En as findScalarField,Pn as getAllReferencedClasses,Jn as getDisplayOnlyOptions,ze as getJsonPath,Wt as getLengthRestrictions,Wn as getOverrideClass,Ye as getRootDataNode,Qe as getSchemaFieldList,Ke as getSchemaPath,Se as groupedControl,wn as hasOptions,yt as hideDisplayOnly,he as htmlDisplayControl,dn as intField,Xt as isAccordionAdornment,B as isActionControlsDefinition,Y as isArrayRenderer,Q as isCompoundField,Bn as isControlDisabled,jn as isControlReadonly,X as isDataControl,R as isDataControlDefinition,W as isDataGroupRenderer,j as isDisplayControlsDefinition,_ as isDisplayOnlyRenderer,P as isFlexRenderer,U as isGridRenderer,Z as isGroupControl,q as isGroupControlsDefinition,Qt as isIconAdornment,K as isScalarField,Zt as isSetFieldAdornment,$ as isTextfieldRenderer,_n as jsonPathString,Te as jsonataExpr,ve as jsonataOptions,ce as jsonataValidatorOptions,Bt as layoutKeyForPlacement,de as lengthValidatorOptions,je as lookupDataNode,un as makeCompoundField,ct as makeEvalExpressionHook,zn as makeHook,Kn as makeHookDepString,an as makeScalarField,Re as makeSchemaDataNode,pt as matchesType,gn as mergeField,Dn as mergeFields,ee as mergeObjects,ue as radioButtonOptions,Rt as renderControlLayout,_t as renderLayoutParts,le as renderOptionsFor,Yn as rendererClass,bn as resolveSchemas,Xe as rootSchemaNode,_e as schemaDataForFieldPath,Be as schemaDataForFieldRef,$e as schemaForFieldPath,Je as schemaForFieldRef,rn as stringField,on as stringOptionsField,me as textDisplayControl,pe as textfieldOptions,fn as timeField,Xn as toDepString,Pe as traverseData,We as traverseParents,Ue as traverseSchemaPath,Le as useControlDefinitionForSchema,Ft as useControlRenderer,Mt as useControlRendererComponent,Tt as useDateValidator,Qn as useDynamicHooks,ht as useEvalActionHook,ot as useEvalAllowedOptionsHook,at as useEvalDefaultValueHook,it as useEvalDisabledHook,lt as useEvalDisplayHook,st as useEvalDynamicBoolHook,ft as useEvalDynamicHook,gt as useEvalLabelText,tt as useEvalReadonlyHook,rt as useEvalStyleHook,et as useEvalVisibilityHook,mt as useJsonataExpression,Nt as useJsonataValidator,xt as useLengthValidator,Ct as useMakeValidationHook,qn as useUpdatedRef,vt as useUuidExpression,oe as validatorOptions,nt as visitControlData,Ze as visitControlDataArray,J as visitControlDefinition,ln as withScalarOptions,Jt as wrapLayout,jt as wrapMarkup,Pt as wrapMarkupAt};
2
2
  //# sourceMappingURL=index.js.map