@react-typed-forms/schemas 13.0.4 → 13.0.5

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