@react-typed-forms/schemas 14.2.0 → 14.3.0

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.cjs CHANGED
@@ -1,2 +1,3393 @@
1
- var e=require("@react-typed-forms/core"),t=require("react"),n=require("clsx"),r=require("jsonata"),o=require("uuid");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l,a,u,s,d,p,c,f,y,v,x,m=/*#__PURE__*/i(t),h=/*#__PURE__*/i(n),C=/*#__PURE__*/i(r);function T(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function g(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return T(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?T(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function D(){return D=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},D.apply(null,arguments)}function b(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}function E(e,t){return e.find(function(e){return e.field===t})}function N(e){return!F(e)}function F(e){return e.type===exports.FieldType.Compound}function A(e){return{field:"__missing",type:exports.FieldType.Any,displayName:e}}function S(e,t,n){var r={id:n?n.id+"/"+e.field:e.field,field:e,getSchema:t.getSchema,parent:n,getChildNode:function(n){if(F(e)&&!e.schemaRef&&!e.treeChildren){var i=e.children.find(function(e){return e.field===n});return i?S(i,t,r):void 0}return o(!1,r).find(function(e){return e.field.field===n})},getChildNodes:o};return r;function o(o,i){if(F(e)){if(e.treeChildren)return o?[]:n.getChildNodes(!1,null!=i?i:r);var l=e.schemaRef&&t.getSchema(e.schemaRef);return l?l.getChildNodes(!1,null!=i?i:r):e.children.map(function(e){return S(e,t,null!=i?i:r)})}return[]}}function O(e){var t={getSchema:function(n){var r=e[n];if(r)return w(r,t)}};return t}function V(e,t,n,r){var o={id:(n?n.id+"/"+e.field.field:e.field.field)+("number"==typeof r?"/"+r:""),schema:e,control:t,parent:n,elementIndex:r,getChild:function(e){var n=t;return n&&n.current.isNull&&(n.value={}),V(e,null==n?void 0:n.fields[e.field.field],o)},getChildElement:function(n){var r;return V(e,null==t||null==(r=t.elements)?void 0:r[n],o,n)}};return o}function R(e,t){var n;return I(null!=(n=null==e?void 0:e.split("/"))?n:[],t)}function k(e,t,n,r){for(var o=0;o<e.length;){var i=e[o],l=".."===i?t.parent:t.getChildNode(i);l||(l=S(A(i),t,t)),n=r(n,l),t=l,o++}return n}function I(t,n){for(var r=0;r<t.length;){var o=t[r],i=".."===o?n.parent:l(o);null!=i||(i=V(S(A(o),n.schema,n.schema),e.newControl(void 0))),n=i,r++}return n;function l(e){var t=n.schema.getChildNode(e);if(t)return n.getChild(t)}}function L(e,t){for(var n=0;n<e.length;){var r=e[n],o=".."===r?t.parent:t.getChildNode(r);o||(o=S(A(r),t,t)),t=o,n++}return t}function w(e,t){return void 0===t&&(t={getSchema:function(e){}}),S({type:exports.FieldType.Compound,field:"",children:e},t,void 0)}function M(e){for(var t=[],n=e;n;)t.push(n.field.field),n=n.parent;return t.reverse()}function P(e){return F(e.field)}function H(e,t){if(e.id===t.id)return"";for(var n=M(e),r=M(t),o=0;o<n.length&&o<r.length&&n[o]===r[o];)o++;var i=n.length-o,l=r.slice(o).join("/");return"../".repeat(i)+l}function G(e,t){var n;return null==(n=e.tags)||null==(n=n.find(function(e){return e.startsWith(t)}))?void 0:n.substring(t.length)}function j(e,t,n){switch(e.type){case exports.ControlDefinitionType.Action:return t.action(e);case exports.ControlDefinitionType.Data:return t.data(e);case exports.ControlDefinitionType.Display:return t.display(e);case exports.ControlDefinitionType.Group:return t.group(e);default:return n(e)}}function q(e){return e.type===exports.DataRenderType.DisplayOnly}function U(e){return(null==e?void 0:e.type)===exports.DataRenderType.Autocomplete}function B(e){return(null==e?void 0:e.type)===exports.DataRenderType.Group}function J(e){return e.type===exports.ControlDefinitionType.Data}function _(e){return e.type===exports.ControlDefinitionType.Group}function $(e){return e.type===exports.ControlDefinitionType.Action}function W(e){return e.type===exports.ControlDefinitionType.Display}function Y(e){switch(null==e?void 0:e.type){case exports.DataRenderType.Radio:case exports.DataRenderType.CheckList:return!0;default:return!1}}exports.FieldType=void 0,(l=exports.FieldType||(exports.FieldType={})).String="String",l.Bool="Bool",l.Int="Int",l.Date="Date",l.DateTime="DateTime",l.Time="Time",l.Double="Double",l.EntityRef="EntityRef",l.Compound="Compound",l.AutoId="AutoId",l.Image="Image",l.Any="Any",exports.ValidationMessageType=void 0,(a=exports.ValidationMessageType||(exports.ValidationMessageType={})).NotEmpty="NotEmpty",a.MinLength="MinLength",a.MaxLength="MaxLength",a.NotAfterDate="NotAfterDate",a.NotBeforeDate="NotBeforeDate",exports.SchemaTags=void 0,(u=exports.SchemaTags||(exports.SchemaTags={})).NoControl="_NoControl",u.HtmlEditor="_HtmlEditor",u.ControlGroup="_ControlGroup:",u.ControlRef="_ControlRef:",u.IdField="_IdField:",exports.ControlDefinitionType=void 0,(s=exports.ControlDefinitionType||(exports.ControlDefinitionType={})).Data="Data",s.Group="Group",s.Display="Display",s.Action="Action",exports.DynamicPropertyType=void 0,(d=exports.DynamicPropertyType||(exports.DynamicPropertyType={})).Visible="Visible",d.DefaultValue="DefaultValue",d.Readonly="Readonly",d.Disabled="Disabled",d.Display="Display",d.Style="Style",d.LayoutStyle="LayoutStyle",d.AllowedOptions="AllowedOptions",d.Label="Label",d.ActionData="ActionData",exports.AdornmentPlacement=void 0,(p=exports.AdornmentPlacement||(exports.AdornmentPlacement={})).ControlStart="ControlStart",p.ControlEnd="ControlEnd",p.LabelStart="LabelStart",p.LabelEnd="LabelEnd",exports.ControlAdornmentType=void 0,(c=exports.ControlAdornmentType||(exports.ControlAdornmentType={})).Tooltip="Tooltip",c.Accordion="Accordion",c.HelpText="HelpText",c.Icon="Icon",c.SetField="SetField",c.Optional="Optional",exports.DataRenderType=void 0,(f=exports.DataRenderType||(exports.DataRenderType={})).Standard="Standard",f.Textfield="Textfield",f.Radio="Radio",f.HtmlEditor="HtmlEditor",f.IconList="IconList",f.CheckList="CheckList",f.UserSelection="UserSelection",f.Synchronised="Synchronised",f.IconSelector="IconSelector",f.DateTime="DateTime",f.Checkbox="Checkbox",f.Dropdown="Dropdown",f.DisplayOnly="DisplayOnly",f.Group="Group",f.NullToggle="NullToggle",f.Autocomplete="Autocomplete",f.Jsonata="Jsonata",f.Array="Array",f.ArrayElement="ArrayElement",exports.SyncTextType=void 0,(y=exports.SyncTextType||(exports.SyncTextType={})).Camel="Camel",y.Snake="Snake",y.Pascal="Pascal",exports.GroupRenderType=void 0,(v=exports.GroupRenderType||(exports.GroupRenderType={})).Standard="Standard",v.Grid="Grid",v.Flex="Flex",v.Tabs="Tabs",v.GroupElement="GroupElement",v.SelectChild="SelectChild",exports.DisplayDataType=void 0,(x=exports.DisplayDataType||(exports.DisplayDataType={})).Text="Text",x.Html="Html",x.Icon="Icon",x.Custom="Custom";var K,z,Q,X=/*#__PURE__*/function(){function e(e,t,n,r,o){this.id=void 0,this.definition=void 0,this.tree=void 0,this.parent=void 0,this.overrideChildren=void 0,this.id=e,this.definition=t,this.tree=n,this.parent=r,this.overrideChildren=o,this.id=e,this.definition=t}var t=e.prototype;return t.getChildNodes=function(){var t,n,r=this;if(this.overrideChildren)return this.overrideChildren;var o=this.definition.children;if(this.definition.childRefId){var i=this.tree.controlMap[this.definition.childRefId];o=null==i?void 0:i.children}return null!=(t=null==(n=o)?void 0:n.map(function(t,n){return new e(r.id+"/"+n,t,r.tree,r)}))?t:[]},t.withOverrideChildren=function(t){var n=this;return new e(this.id,this.definition,this.tree,this.parent,t.map(function(e){return Z(e,n.tree)}))},e}();function Z(e,t,n,r){return new X(r?r.id+"/"+n:"",e,t,r)}function ee(e){return ne({$legacy:[e]}).getForm("$legacy").rootNode.getChildNodes()[0]}function te(e){var t,n,r=null!=(t=null==(n=e.children)?void 0:n.flatMap(te))?t:[];return e.id?[[e.id,e]].concat(r):r}function ne(e){var t={getForm:function(e){return n[e]}},n=Object.fromEntries(Object.entries(e).map(function(e){return[e[0],(n=e[1],r=t,o={getForm:r,controlMap:Object.fromEntries(n.flatMap(te))},o.rootNode=Z({children:n,type:exports.ControlDefinitionType.Group},o),o)];var n,r,o}));return t}function re(e){var t=_(e)?e.compoundField:J(e)?e.field:void 0;return null==t?void 0:t.split("/")}function oe(e,t){var n=re(e);return n?I(n,t):void 0}function ie(e,t,n){for(var r=[];e&&(null==n||!n(e));)r.push(t(e)),e=e.parent;return r.reverse()}function le(e){for(;e.parent;)e=e.parent;return e}function ae(e){return ie(e,function(e){return null==e.elementIndex?e.schema.field.field:e.elementIndex},function(e){return!e.parent})}function ue(e,t,n){if(e)for(var r,o=g(e);!(r=o()).done;){var i=se(r.value,t,n);if(void 0!==i)return i}}function se(e,t,n){if(t.control&&!t.control.isNull)return j(e,{data:function(e){return r(e)},group:function(e){return r(e)},action:function(){},display:function(){}},function(){});function r(e){var r=e.children,o=oe(e,t);if(!o)return ue(r,t,n);var i=J(e)?e:void 0,l=i?n(i,o):void 0;if(void 0!==l)return l;var a=o.schema,u=F(a.field);if(a.field.collection)for(var s=0,d=g(null!=(p=o.control.elements)?p:[]);!d().done;){var p,c=o.getChildElement(s),f=i?n(i,c):void 0;if(void 0!==f)return f;if(u){var y=ue(r,c,n);if(void 0!==y)return y}s++}else if(u)return ue(r,o,n)}}function de(e){return function(t){return D({},pe(t,t),e)}}function pe(e,t){return{field:e,displayName:t,type:exports.FieldType.String}}function ce(e,t,n){return{field:e,displayName:t,type:exports.FieldType.Compound,collection:n,children:[]}}function fe(e,t){var n=t.find(function(t){return t.field===e.field});return n?t.map(function(t){return t!==n?t:D({},t,{onlyForTypes:r(t.onlyForTypes,e.onlyForTypes)})}):[].concat(t,[e]);function r(e,t){if(!e)return t;if(!t)return e;var n=t.filter(function(t){return!e.includes(t)});return n.length?[].concat(e,n):e}}function ye(e,t,n,r){var o=e.map(function(e){return e.isTypeField?ve(e,t,n):e});return r.map(function(e){return D({},e,{onlyForTypes:[n]})}).reduce(function(e,t){return fe(t,e)},o)}function ve(e,t,n){var r,o=null!=(r=e.options)?r:[];return o.some(function(e){return e.value===n})?e:D({},e,{options:[].concat(o,[{name:t,value:n}])})}function xe(e){var t={};return Object.keys(e).forEach(function n(r){if(r in t)return t[r];var o=[];return t[r]=o,e[r].forEach(function(e){F(e)&&e.schemaRef?o.push(D({},e,{children:n(e.schemaRef)})):o.push(e)}),o}),t}function me(e,t,n){if(!e)return Ce(t);if(n&&n.has(e))return e;null!=n||(n=new Set),n.add(e);var r=t.filter(function(t){return F(t)||!(t.field in e)});if(!r.length)return e;var o=D({},e);return r.forEach(function(r){o[r.field]=r.field in e?he(e[r.field],r,t,!1,n):Te(r)}),o}function he(e,t,n,r,o){return t.collection&&!r?(null!=e?e:[]).map(function(e){return he(e,t,n,!0,o)}):F(t)?e||t.required?me(e,t.treeChildren?n:t.children,o):e:Te(t)}function Ce(e){return Object.fromEntries(e.map(function(e){return[e.field,Te(e)]}))}function Te(e,t){if(void 0!==e.defaultValue)return e.defaultValue;var n=!(!t&&!e.required);if(F(e)){if(n){var r=Ce(e.children);return e.collection?[r]:r}return e.notNullable?e.collection?[]:{}:void 0}return e.collection&&e.notNullable?[]:void 0}function ge(e){return F(e)?Ce(e.children):e.defaultValue}function De(e,t){var n;return Boolean(null==(n=e.tags)?void 0:n.includes(t))}function be(e){var t;return null!=(t=e.displayName)?t:e.field}function Ee(e){var t,n;return(null!=(t=null==(n=e.options)?void 0:n.length)?t:0)>0}function Ne(e,t){if(F(e)){var n=G(e,exports.SchemaTags.ControlRef);return{type:exports.ControlDefinitionType.Data,title:e.displayName,field:e.field,required:e.required,childRefId:n,children:t||n?void 0:e.children.filter(function(e){return!De(e,exports.SchemaTags.NoControl)}).map(function(e){return Ne(e)})}}if(N(e)){var r=De(e,exports.SchemaTags.HtmlEditor);return{type:exports.ControlDefinitionType.Data,title:e.displayName,field:e.field,required:e.required,renderOptions:{type:r?exports.DataRenderType.HtmlEditor:exports.DataRenderType.Standard}}}throw"Unknown schema field"}function Fe(e,t){return Ae(w(e),t)}function Ae(e,t){var n={},r={},o=t.map(function(t){return l(t,e)});return i("",{schema:e,children:o}),o.forEach(function e(t){if(t.children.forEach(e),t.control.childRefId){var r=n[t.control.childRefId];if(r)return void r.children.forEach(function(e){return l(e.control,t.schema,t,!0)});console.warn("Missing reference",t.control.childRefId)}}),e.getChildNodes().forEach(function e(t){if(!De(t.field,exports.SchemaTags.NoControl)){if(!r[t.id]){var o,i=function(e){for(var t=[],n=e.parent;n&&(t.push(n.id),!n.field.collection);)n.parent||n.getChildNodes(!0).forEach(r),n=n.parent;return t;function r(e){P(e)&&!e.field.collection&&(t.push(e.id),e.getChildNodes(!0).forEach(r))}}(t),a=G(t.field,exports.SchemaTags.ControlGroup),u=a?n[a]:void 0;if(!u&&a&&console.warn("No group '"+a+"' for "+t.id),u&&i.indexOf(u.schema.id)<0&&(console.warn("Target group '"+a+"' is not an eligible parent for '"+t.id+"'"),u=void 0),!u&&i.length&&(u=null==(o=r[i[0]])?void 0:o[0]),u){var s=Ne(t.field,!0);s.field=H(u.schema,t),u.children.push(l(s,u.schema,u))}else console.warn("Could not find a parent group for: "+t.id)}t.getChildNodes(!0).forEach(e)}}),o.map(function e(t){var n=t.children.length?t.children.map(e):null;return D({},t.control,{children:n})});function i(e,t){r[e]||(r[e]=[]),r[e].push(t)}function l(e,t,r,o){var a,u,s=re(e),d=s?L(s,t):void 0;_(e)&&null==d&&(d=t);var p={schema:d,control:e,children:[],parent:r};return p.children=null!=(a=null==(u=e.children)?void 0:u.map(function(e){var n;return l(e,null!=(n=d)?n:t,p,o)}))?a:[],!o&&e.id&&(n[e.id]=p),d&&i(d.id,p),p}}function Se(e){var n=t.useRef(e);return n.current=e,n}function Oe(e){return J(e)&&!!e.readonly}function Ve(e){return J(e)&&!!e.disabled}function Re(e){return J(e)&&e.renderOptions&&q(e.renderOptions)?e.renderOptions:void 0}function ke(e,t){var n="";return e.forEach(function(e,r){var o;"number"==typeof e?n+=null!=(o=null==t?void 0:t(e))?o:"["+e+"]":(r>0&&(n+="."),n+=e)}),n}function Ie(e){return e&&e.startsWith("@ ")?e.substring(2):e}function Le(e,t){if(Ie(t)!==t)return t||void 0;var n=Ie(e);return n===e?h.default(e,t):n||void 0}function we(e,t,n,r,o){return[null==t||e>t?r:void 0,null==n||e<n?o:void 0]}function Me(e){return _(e)?e.groupOptions:J(e)&&B(e.renderOptions)?e.renderOptions.groupOptions:void 0}function Pe(e){var t=Me(e);if(!t)return{};var n=t.childLayoutClass,r=t.childStyleClass,o=t.childLabelClass,i={};return n&&(i.layoutClass=n),r&&(i.styleClass=r),o&&(i.labelClass=o),i}function He(e){var t;return Boolean(null==(t=Me(e))?void 0:t.displayOnly)}function Ge(t){return e.ensureMetaValue(t,"$externalEditIndex",function(){return e.newControl(void 0)})}function je(t){return e.ensureMetaValue(t,"$lastDefined",function(){var n=e.newControl(t.current.value);return t.subscribe(function(){var e=t.current.value;null!=e&&(n.value=e)},e.ControlChange.Value),n})}function qe(t){var n=je(t);return e.ensureMetaValue(t,"$willEdit",function(){var r=e.newControl(void 0);return r.subscribe(function(){var e=r.current.value;void 0!==e&&(t.value=e?n.current.value:t.initialValue)},e.ControlChange.Value),r})}function Ue(t){return e.ensureMetaValue(t,"$allValues",function(){return e.newControl([t.value])})}function Be(e,t){var n=e.control,r=e.schema.field;if(!n.isEqual(n.initialValue,t)&&!r.collection)if(F(r)){if(null==t)return;e.schema.getChildNodes().forEach(function(n){Be(e.getChild(n),t[n.field.field])})}else Ue(n).setValue(function(e){return e.every(function(e){return!n.isEqual(e,t)})?[].concat(e,[t]):e})}function Je(e,t,n){return D({type:exports.ControlDefinitionType.Data,field:e,title:t},n)}function _e(e){return function(t){return D({type:e},t)}}function $e(e){return function(t){return D({type:e},t)}}function We(e){return function(t){return{renderOptions:D({type:e},t)}}}exports.ValidatorType=void 0,(K=exports.ValidatorType||(exports.ValidatorType={})).Jsonata="Jsonata",K.Date="Date",K.Length="Length",exports.DateComparison=void 0,(z=exports.DateComparison||(exports.DateComparison={})).NotBefore="NotBefore",z.NotAfter="NotAfter",exports.ExpressionType=void 0,(Q=exports.ExpressionType||(exports.ExpressionType={})).Jsonata="Jsonata",Q.Data="Data",Q.DataMatch="FieldValue",Q.UserMatch="UserMatch",Q.NotEmpty="NotEmpty",Q.UUID="UUID";var Ye=We(exports.DataRenderType.Autocomplete),Ke=We(exports.DataRenderType.CheckList),ze=We(exports.DataRenderType.Radio),Qe=_e(exports.ValidatorType.Length),Xe=_e(exports.ValidatorType.Jsonata),Ze=_e(exports.ValidatorType.Date),et=$e(exports.ControlAdornmentType.Accordion),tt=We(exports.DataRenderType.Textfield),nt=We(exports.DataRenderType.DisplayOnly),rt=We(exports.DataRenderType.Jsonata),ot={type:exports.ControlDefinitionType.Group,children:[],groupOptions:{type:exports.GroupRenderType.Standard,hideTitle:!0}};function it(e,t){var n=D({},e);return Object.entries(t).forEach(function(e){var t=e[0],r=e[1];n[t]=(Array.isArray(r)?r:[r]).reduce(function(e,t){var n;return ye(e,t.name,t.value,null!=(n=t.fields)?n:[])},n[t])}),n}function lt(e,t){return e.map(function(e){return ut(t(e))}).join(",")}function at(e){var n=Object.entries(e),r=lt(n,function(e){return e[1].deps}),o=t.useRef({}),i=o.current;return n.forEach(function(e){return i[e[0]]=e[1].state}),t.useCallback(function(e){return Object.fromEntries(n.map(function(t){var n=t[0];return[n,t[1].runHook(e,o.current[n])]}))},[r])}function ut(e){return void 0===e?"_":null===e?"~":e.toString()}function st(t,n,r){return At(Ct(n,exports.DynamicPropertyType.Visible,t),function(t,n){var r=n.definition,o=n.overrideDataNode;return e.useComputed(function(){var e=null!=o?o:t.dataNode;return!e||gt(e)&&!Dt(e,t.schemaInterface,r)})},{definition:n,overrideDataNode:r})}function dt(t,n){return At(Ct(n,exports.DynamicPropertyType.Readonly,t),function(t,n){var r=n.definition;return e.useCalculatedControl(function(){return Oe(r)})},{definition:n})}function pt(t,n,r){return At(Tt(r,n,t),function(){return e.useControl(void 0)},void 0)}function ct(t,n){return At(Tt(n,exports.DynamicPropertyType.AllowedOptions,t),function(){return e.useControl([])},void 0)}function ft(t,n){return At(Ct(n,exports.DynamicPropertyType.Disabled,t),function(t){return e.useComputed(function(){var e,r,o=null==(e=t.dataNode)?void 0:e.control;return!1===(null==o||null==(r=o.meta.nullControl)?void 0:r.value)||Ve(n)})},void 0)}function yt(e,t){return Tt(t,exports.DynamicPropertyType.Display,e)}function vt(t,n){return At(Tt(n,exports.DynamicPropertyType.DefaultValue,t),function(t,n){var r=n.definition;return e.useComputed(function(){var e,n=J(r)?[r.required,r.defaultValue]:[!1,void 0],o=n[0],i=n[1],l=null==(e=t.dataNode)?void 0:e.schema.field;return null!=i?i:l?null!=t.dataNode.elementIndex?ge(l):Te(l,o):void 0})},{definition:n})}function xt(t,n,r){switch(t.type){case exports.ExpressionType.Jsonata:var o=e.useComputed(function(){return{formData:n.formData}});return Et(t.expression,le(n.parentNode).control,ae(n.parentNode),o,r);case exports.ExpressionType.UUID:return bt(r);case exports.ExpressionType.Data:return function(t,n,r){void 0===r&&(r=function(e){return e});var o=R(t.field,n);return e.useCalculatedControl(function(){var e;return r(null==(e=o.control)?void 0:e.value)})}(t,n.parentNode,r);case exports.ExpressionType.DataMatch:return function(t,n,r){void 0===r&&(r=function(e){return e});var o=R(t.field,n);return e.useCalculatedControl(function(){var e,n=null==(e=o.control)?void 0:e.value;return r(Array.isArray(n)?n.includes(t.value):n===t.value)})}(t,n.parentNode,r);case exports.ExpressionType.NotEmpty:return function(t,n,r,o){void 0===o&&(o=function(e){return e});var i=R(t.field,n);return e.useCalculatedControl(function(){var e,t=null==(e=i.control)?void 0:e.value,n=i.schema.field;return o(n&&!r.isEmptyValue(n,t))})}(t,n.parentNode,n.schemaInterface,r);default:return e.useControl(void 0)}}var mt=ht(xt);function ht(e){return function(t,n){return{deps:null==t?void 0:t.type,state:t&&t.type?t:void 0,runHook:function(t,r){return r?e(r,t,n):void 0}}}}function Ct(e,t,n){return Tt(e,t,n,function(e){return Boolean(e)})}function Tt(e,t,n,r){var o;void 0===r&&(r=function(e){return e});var i=null==(o=e.dynamic)?void 0:o.find(function(e){return e.type===t});return n(null==i?void 0:i.expr,r)}function gt(e){var t=e.schema.field.onlyForTypes;if(null==t||0===t.length)return!0;var n=e.parent,r=n.schema.getChildNodes().find(function(e){return e.field.isTypeField});if(null==r)return!0;var o=n.getChild(r).control;return o&&t.includes(o.value)}function Dt(e,t,n){var r,o=Re(n);return o&&!o.emptyText&&t.isEmptyValue(e.schema.field,null==(r=e.control)?void 0:r.value)}function bt(t){return void 0===t&&(t=function(e){return e}),e.useControl(function(){return t(o.v4())})}function Et(n,r,o,i,l){void 0===l&&(l=function(e){return e});var a=ke(o,function(e){return"#$i["+e+"]"}),u=a?a+".("+n+")":n,s=t.useMemo(function(){try{return C.default(n?u:"null")}catch(e){return console.error(e),C.default("null")}},[u]),d=e.useControl(),p=t.useRef(),c=t.useRef(0),f=e.useRefState(function(){return new e.SubscriptionTracker(function(){var t=p.current;t&&(p.current=void 0,e.addAfterChangesCallback(function(){p.current=t,t()}))})})[0];return t.useEffect(function(){var t=function(){try{var t=f.current,n=function(n,o){try{var a=function(){c.current++;var n=l;return Promise.resolve(s.evaluate(e.trackedValue(r,t.collectUsage),e.collectChanges(t.collectUsage,function(){return null==i?void 0:i.value}))).then(function(e){d.value=n(e)})}()}catch(e){return o(!0,e)}return a&&a.then?a.then(o.bind(null,!1),o.bind(null,!0)):o(!1,a)}(0,function(e,n){if(--c.current||t.update(),e)throw n;return n});return Promise.resolve(n&&n.then?n.then(function(){}):void 0)}catch(e){return Promise.reject(e)}};p.current=t,t()},[s]),t.useEffect(function(){return function(){p.current=void 0,f.current.cleanup()}},[]),d}function Nt(t,n){return At(Tt(n,exports.DynamicPropertyType.ActionData,t),function(){return e.useControl(null)},void 0)}function Ft(t,n){return At(Tt(n,exports.DynamicPropertyType.Label,t),function(){return e.useControl(null)},void 0)}function At(e,t,n,r){return{deps:void 0===r?e.deps:[r,e.deps].map(ut).join(),runHook:function(n,r){var o,i;return null!=(o=null==(i=e.runHook(n,r[0]))?void 0:i.as())?o:t(n,r[1])},state:[e.state,n]}}function St(n,r){var o;void 0===r&&(r=Ot);var i=J(n)?n:void 0,l=Se({dd:i,useValidatorFor:r}),a=i?lt(null!=(o=i.validators)?o:[],function(e){return e.type}):"~";return t.useCallback(function(t){var n,o,i,a=l.current.dd;if(a){var u=null!=(n=null==(o=t.dataContext.dataNode)?void 0:o.schema.field)?n:{field:"__missing",type:exports.FieldType.Any},s=t.control,d=t.hiddenControl,p=t.dataContext.schemaInterface;e.useValueChangeEffect(s,function(){return s.setError("default","")}),a.required&&e.useValidator(s,function(e){return!d.value&&p.isEmptyValue(u,e)?p.validationMessageText(u,exports.ValidationMessageType.NotEmpty,!1,!0):null},"required"),null==(i=a.validators)||i.forEach(function(e,n){return r(e,D({},t,{index:n,field:u,definition:a}))})}},[!!i,null==i?void 0:i.required,a,r])}function Ot(e,t){switch(e.type){case exports.ValidatorType.Length:Rt(e,t);break;case exports.ValidatorType.Jsonata:Vt(e,t);break;case exports.ValidatorType.Date:kt(e,t)}}function Vt(t,n){var r=n.dataContext.parentNode,o=Et(t.expression,le(r).control,ae(r),void 0,function(e){return null==e?null:"string"==typeof e?e:JSON.stringify(e)});e.useValidator(n.control,function(){return n.hiddenControl.value?null:o.value},"jsonata"+n.index)}function Rt(t,n){var r=n.control,o=n.dataContext.schemaInterface,i=n.hiddenControl,l=n.field;e.useValidator(r,function(e){var n=o.controlLength(l,r);if(!i.value)if(null!=t.min&&n<t.min){if(null==l||!l.collection)return o.validationMessageText(l,exports.ValidationMessageType.MinLength,n,t.min);r.setValue(function(e){return Array.isArray(e)?e.concat(Array.from({length:t.min-e.length})):Array.from({length:t.min})})}else if(null!=t.max&&n>t.max)return o.validationMessageText(l,exports.ValidationMessageType.MaxLength,n,t.max)},"length"+n.index)}function kt(t,n){var r,o=n.control,i=n.field,l=n.index,a=n.dataContext.schemaInterface;if(t.fixedDate)r=a.parseToMillis(i,t.fixedDate);else{var u=new Date;r=Date.UTC(u.getFullYear(),u.getMonth(),u.getDate()),t.daysFromCurrent&&(r+=864e5*t.daysFromCurrent)}e.useValidator(o,function(e){if(e){var n=a.parseToMillis(i,e),o=t.comparison===exports.DateComparison.NotAfter;if(o?n>r:n<r)return a.validationMessageText(i,o?exports.ValidationMessageType.NotAfterDate:exports.ValidationMessageType.NotBeforeDate,n,r)}return null},"date"+l)}var It,Lt=/*#__PURE__*/function(){function e(e,t){void 0===e&&(e=["No","Yes"]),void 0===t&&(t=function(e){return Date.parse(e)}),this.boolStrings=void 0,this.parseDateTime=void 0,this.boolStrings=e,this.parseDateTime=t}var t=e.prototype;return t.parseToMillis=function(e,t){return this.parseDateTime(t)},t.validationMessageText=function(e,t,n,r){switch(t){case exports.ValidationMessageType.NotEmpty:return"Please enter a value";case exports.ValidationMessageType.MinLength:return"Length must be at least "+r;case exports.ValidationMessageType.MaxLength:return"Length must be less than "+r;case exports.ValidationMessageType.NotBeforeDate:return"Date must not be before "+new Date(r).toDateString();case exports.ValidationMessageType.NotAfterDate:return"Date must not be after "+new Date(r).toDateString();default:return"Unknown error"}},t.getDataOptions=function(e){return this.getNodeOptions(e.schema)},t.getNodeOptions=function(e){return this.getOptions(e.field)},t.getOptions=function(e){var t=e.options;return t&&t.length>0?t:null},t.getFilterOptions=function(e,t){return this.getNodeOptions(t)},t.isEmptyValue=function(e,t){if(e.collection)return Array.isArray(t)?0===t.length:null==t;switch(e.type){case exports.FieldType.String:case exports.FieldType.DateTime:case exports.FieldType.Date:case exports.FieldType.Time:return!t;default:return null==t}},t.searchText=function(e,t){var n,r;return null!=(n=null==(r=this.textValue(e,t))?void 0:r.toLowerCase())?n:""},t.textValue=function(e,t,n){var r=this.getOptions(e),o=null==r?void 0:r.find(function(e){return e.value===t});if(o)return o.name;switch(e.type){case exports.FieldType.Date:return t?new Date(t).toLocaleDateString():void 0;case exports.FieldType.DateTime:return t?new Date(this.parseToMillis(e,t)).toLocaleString():void 0;case exports.FieldType.Time:return t?new Date("1970-01-01T"+t).toLocaleTimeString():void 0;case exports.FieldType.Bool:return this.boolStrings[t?1:0];default:return null!=t?t.toString():void 0}},t.controlLength=function(e,t){var n,r;return e.collection?null!=(n=null==(r=t.elements)?void 0:r.length)?n:0:this.valueLength(e,t.value)},t.valueLength=function(e,t){var n;return null!=(n=t&&(null==t?void 0:t.length))?n:0},t.compareValue=function(e,t,n){if(null==t)return null==n?0:1;if(null==n)return-1;switch(e.type){case exports.FieldType.Date:case exports.FieldType.DateTime:case exports.FieldType.Time:case exports.FieldType.String:return t.localeCompare(n);case exports.FieldType.Bool:return t?n?0:1:-1;case exports.FieldType.Int:case exports.FieldType.Double:return t-n;default:return 0}},t.compoundFieldSetup=function(e){var t=this;return e.getChildNodes().map(function(e){return[e.field.field,t.makeControlSetup(e)]})},t.compoundFieldEquality=function(e){var t=this;return e.getChildNodes().map(function(e){var n=e.field.field;return[n,function(r,o){return t.makeEqualityFunc(e)(r[n],o[n])}]})},t.makeEqualityFunc=function(e,t){if(e.field.collection&&!t){var n=this.makeEqualityFunc(e,!0);return function(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;for(var r=0;r<e.length;r++)if(!n(e[r],t[r]))return!1;return!0}}if(e.field.type===exports.FieldType.Compound){var r=this.compoundFieldEquality(e);return function(e,t){return e===t||null!=e&&null!=t&&r.every(function(n){return n[1](e,t)})}}return function(e,t){return e===t}},t.makeControlSetup=function(e,t){var n={equals:this.makeEqualityFunc(e,t)};return e.field.collection&&!t?(n.elems=this.makeControlSetup(e,!0),n):(e.field.type===exports.FieldType.Compound&&(n.fields=Object.fromEntries(this.compoundFieldSetup(e))),n)},e}(),wt=new Lt,Mt=["parentDataNode"],Pt=["definition","control","formOptions","style","allowedOptions","schemaInterface","styleClass"];function Ht(n,r,o,i){var l,a,u;void 0===o&&(o={});var s,d=n instanceof X?[n.definition,n]:[n,ee(n)],p=d[0],c=d[1],f=null!=(l=null==o.useDataHook?void 0:o.useDataHook(p))?l:qt,y=o.elementIndex,v=null!=(a=o.schemaInterface)?a:wt,x=null!=(u=o.useEvalExpressionHook)?u:mt;s=null!=y?i.getChildElement(y):oe(p,i);var h=St(p,o.useValidationHook),C=at({defaultValueControl:vt(x,p),visibleControl:st(x,p),readonlyControl:dt(x,p),disabledControl:ft(x,p),allowedOptions:ct(x,p),labelText:Ft(x,p),actionData:Nt(x,p),customStyle:pt(x,exports.DynamicPropertyType.Style,p),layoutStyle:pt(x,exports.DynamicPropertyType.LayoutStyle,p),displayControl:yt(x,p)}),T=Se({options:o,definition:p,elementIndex:y,parentDataNode:i,dataNode:s,formNode:c}),g=t.useCallback(function(){var n=e.useComponentTracking();try{var o,l,a,u,d,c=T.current,y=c.definition,g=c.options,E=c.elementIndex,N=c.formNode,F=null!=(o=g.formData)?o:{},A={schemaInterface:v,dataNode:c.dataNode,parentNode:c.parentDataNode,formData:F},S=C(A),O=S.readonlyControl,V=S.disabledControl,R=S.visibleControl,k=S.displayControl,I=S.layoutStyle,L=S.labelText,w=S.customStyle,M=S.allowedOptions,P=S.defaultValueControl,H=S.actionData,G=R.current.value,j=e.useControl(function(){return null!=G?{visible:G,showing:G}:void 0});e.useControlEffect(function(){return R.value},function(e){null!=e&&j.setValue(function(t){return{visible:e,showing:t?t.showing:e}})});var q=i.control,U=null==(l=s)?void 0:l.control;e.useControlEffect(function(){var e,t;return[j.value,P.value,null==U?void 0:U.isNull,J(p)&&p.dontClearHidden,(null==(e=p.adornments)?void 0:e.some(function(e){return e.type===exports.ControlAdornmentType.Optional}))||J(p)&&(null==(t=p.renderOptions)?void 0:t.type)==exports.DataRenderType.NullToggle,q.isNull,g.hidden,O.value]},function(e){var t=e[0],n=e[1],r=e[3],o=e[4],i=e[5];e[7]||(U?t&&t.visible===t.showing&&(e[6]||!t.visible?U.setValue(function(e){return g.clearHidden&&!r?void 0:null==e&&r&&!o?n:e}):o||U.setValue(function(e){return null!=e?e:n})):i&&q.setValue(function(e){return null!=e?e:{}}))},!0);var B=e.useComputed(function(){var e;return{hidden:g.hidden||!(null!=(e=j.fields)&&e.showing.value),readonly:g.readonly||O.value,disabled:g.disabled||V.value,displayOnly:g.displayOnly||He(y)}}),_=e.trackedValue(B);h({control:null!=U?U:e.newControl(null),hiddenControl:B.fields.hidden,dataContext:A});var $=D({},g,_,{elementIndex:void 0,formData:F});if(t.useEffect(function(){U&&"boolean"==typeof _.disabled&&U.disabled!=_.disabled&&(U.disabled=_.disabled)},[U,_.disabled]),q.isNull)return m.default.createElement(m.default.Fragment,null);var W=null!=(a=null==(u=p.adornments)?void 0:u.map(function(e){return r.renderAdornment({adornment:e,dataContext:A,useExpr:x,formOptions:_})}))?a:[],Y=Ut({formNode:N,definition:y,renderer:r,renderChild:function(e,t,n){var o,i=Pe(y),l=null!=n?n:{},a=l.parentDataNode,u=b(l,Mt),s=null!=(o=null!=a?a:A.dataNode)?o:A.parentNode;return m.default.createElement(jt,{key:e,definition:t,renderer:r,parentDataNode:s,options:D({},$,i,u)})},createDataProps:f,formOptions:_,dataContext:A,control:null!=k?k:U,elementIndex:E,schemaInterface:v,labelText:L,displayControl:k,style:w.value,allowedOptions:M,customDisplay:g.customDisplay,actionDataControl:H,actionOnClick:g.actionOnClick,styleClass:g.styleClass,labelClass:g.labelClass,useEvalExpression:x,useChildVisibility:function(e,t,n){var r;return st(x,e,n?void 0:oe(e,null!=(r=null!=t?t:s)?r:i))}}),K=D({},Y,{adornments:W,className:Le(g.layoutClass,y.layoutClass),style:I.value}),z=r.renderLayout(null!=(d=null==g.adjustLayout?void 0:g.adjustLayout(A,K))?d:K);return r.renderVisibility(D({visibility:j},z))}finally{n()}},[T,f,h,r,v,C]);return g.displayName="RenderControl",g}function Gt(e){var t=e.control,n=Ht(e.definition,e.renderer,e.options,V(O({"":e.fields}).getSchema(""),t));return m.default.createElement(n,null)}function jt(e){var t=Ht(e.definition,e.renderer,e.options,e.parentDataNode);return m.default.createElement(t,null)}function qt(e){var t,n,r=e.definition,o=e.control,i=e.formOptions,l=e.style,a=e.allowedOptions,u=e.schemaInterface,s=void 0===u?wt:u,d=e.styleClass,p=b(e,Pt),c=p.dataContext.dataNode,f=c.schema.field,y=Le(d,r.styleClass),v=!!i.displayOnly,x=!!r.required&&!v,m=s.getDataOptions(c),h=null!=(t=null==a?void 0:a.value)?t:[],C=Array.isArray(h)?h:[h];return D({dataNode:c,definition:r,control:o,field:f,id:"c"+o.uniqueId,options:C.length>0?C.map(function(e){var t;return"object"==typeof e?e:null!=(t=null==m?void 0:m.find(function(t){return t.value==e}))?t:{name:e.toString(),value:e}}).filter(function(e){return null!=e}):m,readonly:!!i.readonly,displayOnly:v,renderOptions:null!=(n=r.renderOptions)?n:{type:"Standard"},required:x,hidden:!!i.hidden,className:y,style:l},p)}function Ut(e){var t,n,r,o,i=e.definition,l=e.renderer,a=e.renderChild,u=e.control,s=e.dataContext,d=e.createDataProps,p=e.displayControl,c=e.style,f=e.labelText,y=e.useChildVisibility,v=e.designMode,x=e.customDisplay,m=e.useEvalExpression,h=e.labelClass,C=e.styleClass,T=e.formNode;if(J(i))return V(i);if(_(i))return i.compoundField?V(Je(i.compoundField,i.title,{children:i.children,hideTitle:null==(o=i.groupOptions)?void 0:o.hideTitle})):{processLayout:l.renderGroup({formNode:T,definition:i,renderChild:a,useEvalExpression:m,dataContext:s,renderOptions:null!=(t=i.groupOptions)?t:{type:"Standard"},className:Le(C,i.styleClass),useChildVisibility:y,style:c,designMode:v}),label:{label:null!=(n=null==f?void 0:f.value)?n:i.title,className:Le(h,i.labelClass),type:exports.LabelType.Group,hide:null==(r=i.groupOptions)?void 0:r.hideTitle}};if($(i)){var g,D,b,E,N,F=null!=(g=null==(D=e.actionDataControl)?void 0:D.value)?g:i.actionData;return{children:l.renderAction({actionText:null!=(b=null!=(E=null==f?void 0:f.value)?E:i.title)?b:i.actionId,actionId:i.actionId,actionData:F,onClick:null!=(N=null==e.actionOnClick?void 0:e.actionOnClick(i.actionId,F,s))?N:function(){},className:Le(C,i.styleClass),style:c})}}if(W(i)){var A,S=null!=(A=i.displayData)?A:{},O={data:S,className:Le(C,i.styleClass),style:c,display:p,dataContext:s};return S.type===exports.DisplayDataType.Custom&&x?{children:x(S.customId,O)}:{children:l.renderDisplay(O)}}return{};function V(t){var n,r,o;if(!u)return{children:"No control for: "+t.field};var i=d(e),a=t.hideTitle?void 0:$t(null!=(n=null==f?void 0:f.value)?n:t.title,e.dataContext.dataNode.schema.field);return{processLayout:l.renderData(i),label:{type:(null!=(r=null==(o=t.children)?void 0:o.length)?r:0)>0?exports.LabelType.Group:exports.LabelType.Control,label:a,forId:i.id,required:t.required&&!e.formOptions.displayOnly,hide:t.hideTitle,className:Le(h,t.labelClass)},errorControl:u}}}function Bt(e,t){return function(n){return n[e]=m.default.createElement(m.default.Fragment,null,n[e],t)}}function Jt(e,t){return function(n){return n[e]=t(n[e])}}function _t(e){switch(e){case exports.AdornmentPlacement.ControlEnd:return"controlEnd";case exports.AdornmentPlacement.ControlStart:return"controlStart";case exports.AdornmentPlacement.LabelStart:return"labelStart";case exports.AdornmentPlacement.LabelEnd:return"labelEnd"}}function $t(e,t){return e||be(t)}function Wt(e,t){return null==e||(Array.isArray(e)?e.includes(t):t===e)}function Yt(e){return"adornment"===e.type}function Kt(e){return"data"===e.type}function zt(e){return"group"===e.type}function Qt(e){return"label"===e.type}function Xt(e){return"layout"===e.type}function Zt(e){return"visibility"===e.type}function en(e){return"action"===e.type}function tn(e){return"display"===e.type}function nn(e){return"array"===e.type}exports.LabelType=void 0,(It=exports.LabelType||(exports.LabelType={}))[It.Control=0]="Control",It[It.Group=1]="Group",It[It.Text=2]="Text",exports.AppendAdornmentPriority=0,exports.ControlRenderer=Gt,exports.DefaultSchemaInterface=Lt,exports.FormNode=X,exports.NewControlRenderer=jt,exports.WrapAdornmentPriority=1e3,exports.accordionOptions=et,exports.actionControl=function(e,t,n){return D({type:exports.ControlDefinitionType.Action,title:e,actionId:t},n)},exports.actionHandlers=function(){var e=[].slice.call(arguments);return function(t,n,r){for(var o=0;o<e.length;o++){var i,l,a=null==(i=(l=e)[o])?void 0:i.call(l,t,n,r);if(a)return a}}},exports.addFieldOption=ve,exports.addMissingControls=Fe,exports.addMissingControlsForSchema=Ae,exports.adornmentOptions=$e,exports.appendMarkup=Bt,exports.appendMarkupAt=function(e,t){return Bt(_t(e),t)},exports.applyArrayLengthRestrictions=function(e,t){var n,r,o=e.min,i=e.editAction,l=e.addAction,a=e.removeAction,u=we(null!=(n=null==(r=e.arrayControl.elements)?void 0:r.length)?n:0,null==o&&e.required?1:o,e.max,!0,!0),s=u[0],d=u[1];return{addAction:t||d?l:void 0,removeAction:t||s?a:void 0,removeDisabled:!s,addDisabled:!d,editAction:i}},exports.applyDefaultForField=he,exports.applyDefaultValues=me,exports.applyExtensionToSchema=it,exports.applyExtensionsToSchema=function(e,t){return xe(t.reduce(it,e))},exports.applyLengthRestrictions=we,exports.applyValues=Be,exports.autocompleteOptions=Ye,exports.boolField=function(e,t){return de(D({type:exports.FieldType.Bool,displayName:e},t))},exports.buildSchema=function(e){return Object.entries(e).map(function(e){return e[1](e[0])})},exports.checkListOptions=Ke,exports.cleanDataForSchema=function e(t,n,r){if(!t)return t;var o=n.find(function(e){return e.isTypeField}),i=o?t[o.field]:void 0,l=r?n:n.filter(function(e){var t,n;return F(e)||(null!=(t=null==(n=e.onlyForTypes)?void 0:n.length)?t:0)>0});if(!l.length)return t;var a=D({},t);return l.forEach(function(o){var l,u=t[o.field];if(!1===(null==(l=o.onlyForTypes)?void 0:l.includes(i))||!o.notNullable&&(r&&o.defaultValue===u||o.collection&&Array.isArray(u)&&!u.length))delete a[o.field];else if(F(o)){var s=o.treeChildren?n:o.children;o.collection?Array.isArray(u)&&(a[o.field]=u.map(function(t){return e(t,s,r)})):a[o.field]=e(u,s,r)}}),a},exports.coerceToString=function(e){return null==e?"":"object"==typeof e?"error: "+JSON.stringify(e):e.toString()},exports.collectDifferences=function(e,t){t.forEach(function(t,n){0==n?e.control.setInitialValue(t):Be(e,t)});var n=[];return function e(t){var r=t.control,o=t.schema.field;if(!o.collection)if(F(o)){if(null==r.value)return;t.schema.getChildNodes().forEach(function(n){e(t.getChild(n))})}else n.push(qe(r)),Ue(r).value.length>1&&(r.setInitialValue(void 0),je(r).value=null)}(e),function(){var e=0,t=0;return n.forEach(function(n){var r=n.value;void 0!==r&&(e++,r&&t++)}),{editing:t,editable:e}}},exports.compoundControl=function(e,t,n,r){return D({type:exports.ControlDefinitionType.Data,field:e,children:n,title:t,renderOptions:{type:"Standard"}},r)},exports.compoundField=function(e,t,n){return function(r){return D({},ce(r,e,!1),n,{children:t})}},exports.controlTitle=$t,exports.createAction=function(e,t,n,r){return D({actionId:e,onClick:t,actionText:null!=n?n:e},r)},exports.createActionRenderer=function(e,t,n){return D({type:"action",actionType:e,render:t},n)},exports.createAdornmentRenderer=function(e,t){return D({type:"adornment"},t,{render:e})},exports.createArrayActions=function(t,n,r){var o,i=null!=(o=n.displayName)?o:n.field,l=null!=r?r:{},a=l.addText,u=l.removeText,s=l.noRemove,d=l.removeActionId,p=l.addActionId,c=l.editActionId,f=l.editText,y=l.disabled,v=l.readonly,x=l.designMode,m=l.editExternal;return{arrayControl:t,addAction:v||l.noAdd?void 0:h(function(){if(!x){var r=ge(n);if(m){var o=Ge(t);o.value={data:[ge(n)],actions:[C(),h(function(){e.addElement(t,o.fields.data.value[0]),o.value=void 0})]}}else e.addElement(t,r)}}),editAction:m?function(e){return{actionId:c||"edit",actionText:f||"Edit",onClick:function(){if(!x){var n=Ge(t),r=t.as().elements[e];n.value={data:[r.current.value],actions:[C(),{actionId:"apply",actionText:"Apply",onClick:function(){r.value=n.fields.data.value[0],n.value=void 0}}]}}}}}:void 0,removeAction:v||s?void 0:function(n){return{actionId:d||"remove",actionText:u||"Remove",onClick:function(){x||e.removeElement(t,n)},disabled:y}}};function h(e){return{actionId:p||"add",actionText:a||"Add "+i,onClick:e,disabled:y}}function C(){return{actionId:"cancel",actionText:"Cancel",onClick:function(){Ge(t).value=void 0},disabled:y}}},exports.createArrayRenderer=function(e,t){return D({type:"array",render:e},t)},exports.createDataRenderer=function(e,t){return D({type:"data",render:e},t)},exports.createDisplayRenderer=function(e,t){return D({type:"display",render:e},t)},exports.createFormLookup=ne,exports.createFormRenderer=function(e,t){var n;void 0===e&&(e=[]);var r=e.filter(Kt),o=e.filter(zt),i=e.filter(Yt),l=e.filter(tn),a=e.filter(Qt),u=e.filter(nn),s=e.filter(en),d=e.filter(Xt),p={renderAction:function(e){var n;return(null!=(n=s.find(function(t){return Wt(t.actionType,e.actionId)}))?n:t.action).render(e,p)},renderData:function(e){var n,o=e.renderOptions.type,i=e.field,l=Ee(e),a=(null!=(n=r.find(function(t){var n,r,a;return(null!=(n=t.collection)&&n)===(null==e.elementIndex&&null!=(r=i.collection)&&r)&&(null!=(a=t.options)&&a)===l&&(t.schemaType&&o==exports.DataRenderType.Standard&&Wt(t.schemaType,i.type)||t.renderType&&Wt(t.renderType,o)||t.match&&t.match(e))}))?n:t.data).render(e,p);return"function"==typeof a?a:function(e){return D({},e,{children:a})}},renderGroup:function(e){var n,r=e.renderOptions.type,i=(null!=(n=o.find(function(e){return Wt(e.renderType,r)}))?n:t.group).render(e,p);return"function"==typeof i?i:function(e){return D({},e,{children:i})}},renderDisplay:function(e){var n,r=e.data.type;return(null!=(n=l.find(function(e){return Wt(e.renderType,r)}))?n:t.display).render(e,p)},renderLabel:c,renderArray:function(e){var n;return(null!=(n=u[0])?n:t.array).render(e,p)},renderAdornment:function(e){var n;return(null!=(n=i.find(function(t){return Wt(t.adornmentType,e.adornment.type)}))?n:t.adornment).render(e,p)},renderLayout:function(e){var n;return(null!=(n=d.find(function(t){return!t.match||t.match(e)}))?n:t.renderLayout).render(e,p)},renderVisibility:(null!=(n=e.find(Zt))?n:t.visibility).render,renderLabelText:function(e){return c({label:e,type:exports.LabelType.Text},void 0,void 0)}};function c(e,n,r){var o;return(null!=(o=a.find(function(t){return Wt(t.labelType,e.type)}))?o:t.label).render(e,n,r,p)}return p},exports.createGroupRenderer=function(e,t){return D({type:"group",render:e},t)},exports.createLabelRenderer=function(e,t){return D({type:"label",render:e},t)},exports.createLayoutRenderer=function(e,t){return D({type:"layout",render:e},t)},exports.createSchemaLookup=O,exports.createVisibilityRenderer=function(e,t){return D({type:"visibility",render:e},t)},exports.dataControl=Je,exports.dateField=function(e,t){return de(D({type:exports.FieldType.Date,displayName:e},t))},exports.dateTimeField=function(e,t){return de(D({type:exports.FieldType.DateTime,displayName:e},t))},exports.dateValidatorOptions=Ze,exports.defaultCompoundField=ce,exports.defaultControlForField=Ne,exports.defaultDataProps=qt,exports.defaultEvalHooks=xt,exports.defaultScalarField=pe,exports.defaultSchemaInterface=wt,exports.defaultUseEvalExpressionHook=mt,exports.defaultValueForField=Te,exports.defaultValueForFields=Ce,exports.displayOnlyOptions=nt,exports.doubleField=function(e,t){return de(D({type:exports.FieldType.Double,displayName:e},t))},exports.dynamicDefaultValue=function(e){return{type:exports.DynamicPropertyType.DefaultValue,expr:e}},exports.dynamicDisabled=function(e){return{type:exports.DynamicPropertyType.Disabled,expr:e}},exports.dynamicReadonly=function(e){return{type:exports.DynamicPropertyType.Readonly,expr:e}},exports.dynamicVisibility=function(e){return{type:exports.DynamicPropertyType.Visible,expr:e}},exports.elementValueForField=ge,exports.emptyGroupDefinition=ot,exports.fieldDisplayName=be,exports.fieldEqExpr=function(e,t){return{type:exports.ExpressionType.DataMatch,field:e,value:t}},exports.fieldExpr=function(e){return{type:exports.ExpressionType.Data,field:e}},exports.fieldHasTag=De,exports.fieldOptionAdornment=function(t){return function(n,r,o){return m.default.createElement(e.RenderArrayElements,{array:t.formNode.getChildNodes()},function(e,r){return t.renderChild(r,e,{parentDataNode:t.dataContext.parentNode,formData:{option:n,optionSelected:o}})})}},exports.fieldPathForDefinition=re,exports.findChildDefinition=function(e,t){if(Array.isArray(t)){var n=e;return t.forEach(function(e){return n=n.children[e]}),n}return e.children[t]},exports.findCompoundField=function(e,t){return E(e,t)},exports.findControlsForCompound=function e(t,n){return J(n)&&t.field.field===n.field?[n]:_(n)?n.compoundField===t.field.field?[n]:null!=(r=null==(o=n.children)?void 0:o.flatMap(function(n){return e(t,n)}))?r:[]:[];var r,o},exports.findField=E,exports.findFieldPath=function(e,t){if(t){for(var n=t.split("/"),r=[],o=0,i=e;o<n.length&&i;){var l=E(i,n[o]);if(!l)return;r.push(l),i=F(l)&&!l.collection?l.children:void 0,o++}return r.length===n.length?r:void 0}},exports.findNonDataGroups=function e(t){return t.flatMap(function(t){var n;return _(t)&&!t.compoundField?[t].concat(e(null!=(n=t.children)?n:[])):[]})},exports.findScalarField=function(e,t){return E(e,t)},exports.getAllReferencedClasses=function e(t,n){var r,o,i=null==(r=t.children)?void 0:r.flatMap(function(t){return e(t,n)}),l=Pe(t),a=J(t)&&Y(t.renderOptions)?t.renderOptions:{},u=a.entryWrapperClass,s=a.selectedClass,d=a.notSelectedClass,p=J(t)&&U(t.renderOptions)?t.renderOptions:{},c=p.listContainerClass,f=p.listEntryClass,y=p.chipContainerClass,v=p.chipCloseButtonClass,x=h.default([t.styleClass,t.layoutClass,t.labelClass].concat(Object.values(l),null!=(o=null==n?void 0:n(t))?o:[],[u,s,d,c,f,y,v]).map(Ie));return i&&!x?i:x?i?[x].concat(i):[x]:[]},exports.getAllValues=Ue,exports.getDiffObject=function t(n,r){var o=n.control,i=n.schema.field;if(o.dirty||r){if(o.isNull)return null;if(i.collection&&null==n.elementIndex){var l=G(i,exports.SchemaTags.IdField);return o.as().elements.map(function(r,o){var i,a=t(n.getChildElement(o),void 0!==l);return null!=l?a:{old:null==(i=e.getElementIndex(r))?void 0:i.initialIndex,edit:a}})}if(F(i)){var a=n.schema.getChildNodes(),u=G(i,exports.SchemaTags.IdField);return Object.fromEntries(a.flatMap(function(e){var r=t(n.getChild(e),u===e.field.field);return void 0!==r?[[e.field.field,r]]:[]}))}return o.value}},exports.getDisplayOnlyOptions=Re,exports.getExternalEditData=Ge,exports.getGroupClassOverrides=Pe,exports.getGroupRendererOptions=Me,exports.getIsEditing=qe,exports.getJsonPath=ae,exports.getLastDefinedValue=je,exports.getLengthRestrictions=function(e){var t,n=null==(t=e.validators)?void 0:t.find(function(e){return e.type===exports.ValidatorType.Length});return{min:null==n?void 0:n.min,max:null==n?void 0:n.max}},exports.getNullToggler=function(t){return e.ensureMetaValue(t,"$nullToggler",function(){var n=je(t),r=qe(t),o=null!=t.current.value;t.disabled=!o;var i=e.newControl(o);return o||(t.value=null),l(),r.subscribe(l,e.ControlChange.Value),i.subscribe(function(){var e=i.current.value;t.value=e?n.current.value:null,t.disabled=!e},e.ControlChange.Value),i;function l(){i.disabled=!1===r.current.value}})},exports.getOverrideClass=Ie,exports.getRootDataNode=le,exports.getSchemaFieldList=function(e){return e.getChildNodes().map(function(e){return e.field})},exports.getSchemaNodePath=M,exports.getSchemaPath=function(e){return ie(e,function(e){return e.field},function(e){return!e.parent})},exports.getTagParam=G,exports.groupedControl=function(e,t,n){return D({type:exports.ControlDefinitionType.Group,children:e,title:t,groupOptions:{type:"Standard",hideTitle:!t}},n)},exports.hasOptions=Ee,exports.hideDisplayOnly=Dt,exports.htmlDisplayControl=function(e,t){return D({type:exports.ControlDefinitionType.Display,displayData:{type:exports.DisplayDataType.Html,html:e}},t)},exports.intField=function(e,t){return de(D({type:exports.FieldType.Int,displayName:e},t))},exports.isAccordionAdornment=function(e){return e.type===exports.ControlAdornmentType.Accordion},exports.isActionControl=$,exports.isArrayRenderer=function(e){return e.type===exports.DataRenderType.Array},exports.isAutoCompleteClasses=U,exports.isAutocompleteRenderer=function(e){return e.type===exports.DataRenderType.Autocomplete},exports.isCheckEntryClasses=Y,exports.isCompoundField=F,exports.isCompoundNode=P,exports.isControlDisabled=Ve,exports.isControlDisplayOnly=He,exports.isControlReadonly=Oe,exports.isDataControl=J,exports.isDataGroupRenderer=B,exports.isDisplayControl=W,exports.isDisplayOnlyRenderer=q,exports.isFlexRenderer=function(e){return e.type===exports.GroupRenderType.Flex},exports.isGridRenderer=function(e){return e.type===exports.GroupRenderType.Grid},exports.isGroupControl=_,exports.isIconAdornment=function(e){return e.type===exports.ControlAdornmentType.Icon},exports.isOptionalAdornment=function(e){return e.type===exports.ControlAdornmentType.Optional},exports.isScalarField=N,exports.isSelectChildRenderer=function(e){return e.type===exports.GroupRenderType.SelectChild},exports.isSetFieldAdornment=function(e){return e.type===exports.ControlAdornmentType.SetField},exports.isTabsRenderer=function(e){return e.type===exports.GroupRenderType.Tabs},exports.isTextfieldRenderer=function(e){return e.type===exports.DataRenderType.Textfield},exports.jsonPathString=ke,exports.jsonataExpr=function(e){return{type:exports.ExpressionType.Jsonata,expression:e}},exports.jsonataOptions=rt,exports.jsonataValidatorOptions=Xe,exports.layoutKeyForPlacement=_t,exports.legacyFormNode=ee,exports.lengthValidatorOptions=Qe,exports.lookupDataNode=oe,exports.makeCompoundField=function(e){return function(t){return D({},ce(t,t,!1),e)}},exports.makeEvalExpressionHook=ht,exports.makeHook=function(e,t,n){return{deps:n,state:t,runHook:e}},exports.makeHookDepString=lt,exports.makeParamTag=function(e,t){return""+e+t},exports.makeScalarField=de,exports.makeSchemaDataNode=V,exports.matchesType=gt,exports.mergeField=fe,exports.mergeFields=ye,exports.mergeObjects=function(e,t,n){if(void 0===n&&(n=function(e,t,n){return null!=t?t:n}),!e)return t;if(!t)return e;var r=D({},e);for(var o in t)t.hasOwnProperty(o)&&(r[o]=n(o,e[o],t[o]));return r},exports.nodeForControl=Z,exports.radioButtonOptions=ze,exports.relativePath=H,exports.renderControlLayout=Ut,exports.renderLayoutParts=function(e,t){var n,r=null!=(n=null==e.processLayout?void 0:e.processLayout(e))?n:e,o=r.label,i=r.adornments,l={children:r.children,errorControl:r.errorControl,style:r.style,className:r.className,wrapLayout:function(e){return e}};return(null!=i?i:[]).sort(function(e,t){return e.priority-t.priority}).forEach(function(e){return e.apply(l)}),l.label=o&&!o.hide?t.renderLabel(o,l.labelStart,l.labelEnd):void 0,l},exports.renderOptionsFor=We,exports.rendererClass=Le,exports.resolveSchemas=xe,exports.rootSchemaNode=w,exports.schemaDataForFieldPath=I,exports.schemaDataForFieldRef=R,exports.schemaForFieldPath=L,exports.schemaForFieldRef=function(e,t){var n;return L(null!=(n=null==e?void 0:e.split("/"))?n:[],t)},exports.stringField=function(e,t){return de(D({type:exports.FieldType.String,displayName:e},t))},exports.stringOptionsField=function(e){return de({type:exports.FieldType.String,displayName:e,options:[].slice.call(arguments,1)})},exports.textDisplayControl=function(e,t){return D({type:exports.ControlDefinitionType.Display,displayData:{type:exports.DisplayDataType.Text,text:e}},t)},exports.textfieldOptions=tt,exports.timeField=function(e,t){return de(D({type:exports.FieldType.Time,displayName:e},t))},exports.toDepString=ut,exports.traverseData=function(e,t,n){return k(e,t,n,function(e,t){return null==e?void 0:e[t.field.field]})},exports.traverseParents=ie,exports.traverseSchemaPath=k,exports.useControlDefinitionForSchema=function(e,n){return void 0===n&&(n=ot),t.useMemo(function(){var t;return D({},n,{children:Fe(e,null!=(t=n.children)?t:[])})},[e,n])},exports.useControlRenderer=function(e,n,r,o){void 0===o&&(o={});var i=Se({definition:e,fields:n,renderer:r,options:o});return t.useCallback(function(e){return m.default.createElement(Gt,D({},i.current,{control:e.control,parentPath:e.parentPath}))},[i])},exports.useControlRendererComponent=Ht,exports.useDateValidator=kt,exports.useDynamicHooks=at,exports.useEvalActionHook=Nt,exports.useEvalAllowedOptionsHook=ct,exports.useEvalDefaultValueHook=vt,exports.useEvalDisabledHook=ft,exports.useEvalDisplayHook=yt,exports.useEvalDynamicBoolHook=Ct,exports.useEvalDynamicHook=Tt,exports.useEvalLabelText=Ft,exports.useEvalReadonlyHook=dt,exports.useEvalStyleHook=pt,exports.useEvalVisibilityHook=st,exports.useJsonataExpression=Et,exports.useJsonataValidator=Vt,exports.useLengthValidator=Rt,exports.useMakeValidationHook=St,exports.useUpdatedRef=Se,exports.useUuidExpression=bt,exports.validatorOptions=_e,exports.visitControlData=se,exports.visitControlDataArray=ue,exports.visitControlDefinition=j,exports.withScalarOptions=function(e,t){return function(n){return D({},t(n),e)}},exports.wrapLayout=function(e){return function(t){var n=t.wrapLayout;t.wrapLayout=function(t){return e(n(t))}}},exports.wrapMarkup=Jt,exports.wrapMarkupAt=function(e,t){return Jt(_t(e),t)};
1
+ var core = require('@react-typed-forms/core');
2
+ var React = require('react');
3
+ var clsx = require('clsx');
4
+ var jsonata = require('jsonata');
5
+ var uuid = require('uuid');
6
+
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
+
9
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
+ var clsx__default = /*#__PURE__*/_interopDefaultLegacy(clsx);
11
+ var jsonata__default = /*#__PURE__*/_interopDefaultLegacy(jsonata);
12
+
13
+ function _arrayLikeToArray(r, a) {
14
+ (null == a || a > r.length) && (a = r.length);
15
+ for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
16
+ return n;
17
+ }
18
+ function _createForOfIteratorHelperLoose(r, e) {
19
+ var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
20
+ if (t) return (t = t.call(r)).next.bind(t);
21
+ if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) {
22
+ t && (r = t);
23
+ var o = 0;
24
+ return function () {
25
+ return o >= r.length ? {
26
+ done: !0
27
+ } : {
28
+ done: !1,
29
+ value: r[o++]
30
+ };
31
+ };
32
+ }
33
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
34
+ }
35
+ function _extends() {
36
+ return _extends = Object.assign ? Object.assign.bind() : function (n) {
37
+ for (var e = 1; e < arguments.length; e++) {
38
+ var t = arguments[e];
39
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
40
+ }
41
+ return n;
42
+ }, _extends.apply(null, arguments);
43
+ }
44
+ function _objectWithoutPropertiesLoose(r, e) {
45
+ if (null == r) return {};
46
+ var t = {};
47
+ for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
48
+ if (e.includes(n)) continue;
49
+ t[n] = r[n];
50
+ }
51
+ return t;
52
+ }
53
+ function _unsupportedIterableToArray(r, a) {
54
+ if (r) {
55
+ if ("string" == typeof r) return _arrayLikeToArray(r, a);
56
+ var t = {}.toString.call(r).slice(8, -1);
57
+ return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
58
+ }
59
+ }
60
+
61
+ /**
62
+ * Enum representing the various field types.
63
+ */
64
+ exports.FieldType = void 0;
65
+ (function (FieldType) {
66
+ FieldType["String"] = "String";
67
+ FieldType["Bool"] = "Bool";
68
+ FieldType["Int"] = "Int";
69
+ FieldType["Date"] = "Date";
70
+ FieldType["DateTime"] = "DateTime";
71
+ FieldType["Time"] = "Time";
72
+ FieldType["Double"] = "Double";
73
+ FieldType["EntityRef"] = "EntityRef";
74
+ FieldType["Compound"] = "Compound";
75
+ FieldType["AutoId"] = "AutoId";
76
+ FieldType["Image"] = "Image";
77
+ FieldType["Any"] = "Any";
78
+ })(exports.FieldType || (exports.FieldType = {}));
79
+ /**
80
+ * Enum representing the various validation message types.
81
+ */
82
+ exports.ValidationMessageType = void 0;
83
+ (function (ValidationMessageType) {
84
+ ValidationMessageType["NotEmpty"] = "NotEmpty";
85
+ ValidationMessageType["MinLength"] = "MinLength";
86
+ ValidationMessageType["MaxLength"] = "MaxLength";
87
+ ValidationMessageType["NotAfterDate"] = "NotAfterDate";
88
+ ValidationMessageType["NotBeforeDate"] = "NotBeforeDate";
89
+ })(exports.ValidationMessageType || (exports.ValidationMessageType = {}));
90
+ function findField(fields, field) {
91
+ return fields.find(function (x) {
92
+ return x.field === field;
93
+ });
94
+ }
95
+ function isScalarField(sf) {
96
+ return !isCompoundField(sf);
97
+ }
98
+ function isCompoundField(sf) {
99
+ return sf.type === exports.FieldType.Compound;
100
+ }
101
+ function missingField(field) {
102
+ return {
103
+ field: "__missing",
104
+ type: exports.FieldType.Any,
105
+ displayName: field
106
+ };
107
+ }
108
+ function nodeForSchema(field, lookup, parent) {
109
+ var node = {
110
+ id: parent ? parent.id + "/" + field.field : field.field,
111
+ field: field,
112
+ getSchema: lookup.getSchema,
113
+ parent: parent,
114
+ getChildNode: getChildNode,
115
+ getChildNodes: getChildNodes
116
+ };
117
+ return node;
118
+ function getChildNode(fieldName) {
119
+ if (isCompoundField(field) && !field.schemaRef && !field.treeChildren) {
120
+ var childField = field.children.find(function (x) {
121
+ return x.field === fieldName;
122
+ });
123
+ return childField ? nodeForSchema(childField, lookup, node) : undefined;
124
+ }
125
+ return getChildNodes(false, node).find(function (x) {
126
+ return x.field.field === fieldName;
127
+ });
128
+ }
129
+ function getChildNodes(noRecurse, withParent) {
130
+ if (isCompoundField(field)) {
131
+ if (field.treeChildren) {
132
+ return noRecurse ? [] : parent.getChildNodes(false, withParent != null ? withParent : node);
133
+ }
134
+ var otherRef = field.schemaRef && lookup.getSchema(field.schemaRef);
135
+ if (otherRef) return otherRef.getChildNodes(false, withParent != null ? withParent : node);
136
+ return field.children.map(function (x) {
137
+ return nodeForSchema(x, lookup, withParent != null ? withParent : node);
138
+ });
139
+ }
140
+ return [];
141
+ }
142
+ }
143
+ function createSchemaLookup(schemaMap) {
144
+ var lookup = {
145
+ getSchema: getSchema
146
+ };
147
+ return lookup;
148
+ function getSchema(schemaId) {
149
+ var fields = schemaMap[schemaId];
150
+ if (fields) {
151
+ return rootSchemaNode(fields, lookup);
152
+ }
153
+ return undefined;
154
+ }
155
+ }
156
+ function makeSchemaDataNode(schema, control, parent, elementIndex) {
157
+ var indexId = typeof elementIndex === "number" ? "/" + elementIndex : "";
158
+ var dataNode = {
159
+ id: (parent ? parent.id + "/" + schema.field.field : schema.field.field) + indexId,
160
+ schema: schema,
161
+ control: control,
162
+ parent: parent,
163
+ elementIndex: elementIndex,
164
+ getChild: getChild,
165
+ getChildElement: getChildElement
166
+ };
167
+ return dataNode;
168
+ function getChild(childNode) {
169
+ var objControl = control;
170
+ if (objControl && objControl.current.isNull) {
171
+ objControl.value = {};
172
+ }
173
+ return makeSchemaDataNode(childNode, objControl == null ? void 0 : objControl.fields[childNode.field.field], dataNode);
174
+ }
175
+ function getChildElement(elementIndex) {
176
+ var _control$elements;
177
+ return makeSchemaDataNode(schema, control == null || (_control$elements = control.elements) == null ? void 0 : _control$elements[elementIndex], dataNode, elementIndex);
178
+ }
179
+ }
180
+ function schemaDataForFieldRef(fieldRef, schema) {
181
+ var _fieldRef$split;
182
+ return schemaDataForFieldPath((_fieldRef$split = fieldRef == null ? void 0 : fieldRef.split("/")) != null ? _fieldRef$split : [], schema);
183
+ }
184
+ function schemaForFieldRef(fieldRef, schema) {
185
+ var _fieldRef$split2;
186
+ return schemaForFieldPath((_fieldRef$split2 = fieldRef == null ? void 0 : fieldRef.split("/")) != null ? _fieldRef$split2 : [], schema);
187
+ }
188
+ function traverseSchemaPath(fieldPath, schema, acc, next) {
189
+ var i = 0;
190
+ while (i < fieldPath.length) {
191
+ var nextField = fieldPath[i];
192
+ var childNode = nextField === ".." ? schema.parent : schema.getChildNode(nextField);
193
+ if (!childNode) {
194
+ childNode = nodeForSchema(missingField(nextField), schema, schema);
195
+ }
196
+ acc = next(acc, childNode);
197
+ schema = childNode;
198
+ i++;
199
+ }
200
+ return acc;
201
+ }
202
+ function traverseData(fieldPath, root, data) {
203
+ return traverseSchemaPath(fieldPath, root, data, function (acc, n) {
204
+ return acc == null ? void 0 : acc[n.field.field];
205
+ });
206
+ }
207
+ function schemaDataForFieldPath(fieldPath, dataNode) {
208
+ var i = 0;
209
+ while (i < fieldPath.length) {
210
+ var _nextNode;
211
+ var nextField = fieldPath[i];
212
+ var nextNode = nextField === ".." ? dataNode.parent : lookupField(nextField);
213
+ (_nextNode = nextNode) != null ? _nextNode : nextNode = makeSchemaDataNode(nodeForSchema(missingField(nextField), dataNode.schema, dataNode.schema), core.newControl(undefined));
214
+ dataNode = nextNode;
215
+ i++;
216
+ }
217
+ return dataNode;
218
+ function lookupField(field) {
219
+ var childNode = dataNode.schema.getChildNode(field);
220
+ if (childNode) {
221
+ return dataNode.getChild(childNode);
222
+ }
223
+ return undefined;
224
+ }
225
+ }
226
+ function schemaForFieldPath(fieldPath, schema) {
227
+ var i = 0;
228
+ while (i < fieldPath.length) {
229
+ var nextField = fieldPath[i];
230
+ var childNode = nextField === ".." ? schema.parent : schema.getChildNode(nextField);
231
+ if (!childNode) {
232
+ childNode = nodeForSchema(missingField(nextField), schema, schema);
233
+ }
234
+ schema = childNode;
235
+ i++;
236
+ }
237
+ return schema;
238
+ }
239
+ function rootSchemaNode(fields, lookup) {
240
+ if (lookup === void 0) {
241
+ lookup = {
242
+ getSchema: function getSchema(schemaId) {
243
+ return undefined;
244
+ }
245
+ };
246
+ }
247
+ return nodeForSchema({
248
+ type: exports.FieldType.Compound,
249
+ field: "",
250
+ children: fields
251
+ }, lookup, undefined);
252
+ }
253
+ function getSchemaNodePath(node) {
254
+ var paths = [];
255
+ var curNode = node;
256
+ while (curNode) {
257
+ paths.push(curNode.field.field);
258
+ curNode = curNode.parent;
259
+ }
260
+ return paths.reverse();
261
+ }
262
+ function isCompoundNode(node) {
263
+ return isCompoundField(node.field);
264
+ }
265
+ /**
266
+ * Returns the relative path from a parent node to a child node.
267
+ * @param parent
268
+ * @param child
269
+ */
270
+ function relativePath(parent, child) {
271
+ // return the path from child to parent
272
+ if (parent.id === child.id) return "";
273
+ var parentPath = getSchemaNodePath(parent);
274
+ var childPath = getSchemaNodePath(child);
275
+ var i = 0;
276
+ while (i < parentPath.length && i < childPath.length && parentPath[i] === childPath[i]) {
277
+ i++;
278
+ }
279
+ var upLevels = parentPath.length - i;
280
+ var downPath = childPath.slice(i).join("/");
281
+ return "../".repeat(upLevels) + downPath;
282
+ }
283
+ exports.SchemaTags = void 0;
284
+ (function (SchemaTags) {
285
+ SchemaTags["NoControl"] = "_NoControl";
286
+ SchemaTags["HtmlEditor"] = "_HtmlEditor";
287
+ SchemaTags["ControlGroup"] = "_ControlGroup:";
288
+ SchemaTags["ControlRef"] = "_ControlRef:";
289
+ SchemaTags["IdField"] = "_IdField:";
290
+ })(exports.SchemaTags || (exports.SchemaTags = {}));
291
+ function getTagParam(field, tag) {
292
+ var _field$tags;
293
+ return (_field$tags = field.tags) == null || (_field$tags = _field$tags.find(function (x) {
294
+ return x.startsWith(tag);
295
+ })) == null ? void 0 : _field$tags.substring(tag.length);
296
+ }
297
+ function makeParamTag(tag, value) {
298
+ return "" + tag + value;
299
+ }
300
+
301
+ exports.ControlDefinitionType = void 0;
302
+ (function (ControlDefinitionType) {
303
+ ControlDefinitionType["Data"] = "Data";
304
+ ControlDefinitionType["Group"] = "Group";
305
+ ControlDefinitionType["Display"] = "Display";
306
+ ControlDefinitionType["Action"] = "Action";
307
+ })(exports.ControlDefinitionType || (exports.ControlDefinitionType = {}));
308
+ exports.DynamicPropertyType = void 0;
309
+ (function (DynamicPropertyType) {
310
+ DynamicPropertyType["Visible"] = "Visible";
311
+ DynamicPropertyType["DefaultValue"] = "DefaultValue";
312
+ DynamicPropertyType["Readonly"] = "Readonly";
313
+ DynamicPropertyType["Disabled"] = "Disabled";
314
+ DynamicPropertyType["Display"] = "Display";
315
+ DynamicPropertyType["Style"] = "Style";
316
+ DynamicPropertyType["LayoutStyle"] = "LayoutStyle";
317
+ DynamicPropertyType["AllowedOptions"] = "AllowedOptions";
318
+ DynamicPropertyType["Label"] = "Label";
319
+ DynamicPropertyType["ActionData"] = "ActionData";
320
+ })(exports.DynamicPropertyType || (exports.DynamicPropertyType = {}));
321
+ exports.AdornmentPlacement = void 0;
322
+ (function (AdornmentPlacement) {
323
+ AdornmentPlacement["ControlStart"] = "ControlStart";
324
+ AdornmentPlacement["ControlEnd"] = "ControlEnd";
325
+ AdornmentPlacement["LabelStart"] = "LabelStart";
326
+ AdornmentPlacement["LabelEnd"] = "LabelEnd";
327
+ })(exports.AdornmentPlacement || (exports.AdornmentPlacement = {}));
328
+ exports.ControlAdornmentType = void 0;
329
+ (function (ControlAdornmentType) {
330
+ ControlAdornmentType["Tooltip"] = "Tooltip";
331
+ ControlAdornmentType["Accordion"] = "Accordion";
332
+ ControlAdornmentType["HelpText"] = "HelpText";
333
+ ControlAdornmentType["Icon"] = "Icon";
334
+ ControlAdornmentType["SetField"] = "SetField";
335
+ ControlAdornmentType["Optional"] = "Optional";
336
+ })(exports.ControlAdornmentType || (exports.ControlAdornmentType = {}));
337
+ exports.DataRenderType = void 0;
338
+ (function (DataRenderType) {
339
+ DataRenderType["Standard"] = "Standard";
340
+ DataRenderType["Textfield"] = "Textfield";
341
+ DataRenderType["Radio"] = "Radio";
342
+ DataRenderType["HtmlEditor"] = "HtmlEditor";
343
+ DataRenderType["IconList"] = "IconList";
344
+ DataRenderType["CheckList"] = "CheckList";
345
+ DataRenderType["UserSelection"] = "UserSelection";
346
+ DataRenderType["Synchronised"] = "Synchronised";
347
+ DataRenderType["IconSelector"] = "IconSelector";
348
+ DataRenderType["DateTime"] = "DateTime";
349
+ DataRenderType["Checkbox"] = "Checkbox";
350
+ DataRenderType["Dropdown"] = "Dropdown";
351
+ DataRenderType["DisplayOnly"] = "DisplayOnly";
352
+ DataRenderType["Group"] = "Group";
353
+ DataRenderType["NullToggle"] = "NullToggle";
354
+ DataRenderType["Autocomplete"] = "Autocomplete";
355
+ DataRenderType["Jsonata"] = "Jsonata";
356
+ DataRenderType["Array"] = "Array";
357
+ DataRenderType["ArrayElement"] = "ArrayElement";
358
+ })(exports.DataRenderType || (exports.DataRenderType = {}));
359
+ exports.SyncTextType = void 0;
360
+ (function (SyncTextType) {
361
+ SyncTextType["Camel"] = "Camel";
362
+ SyncTextType["Snake"] = "Snake";
363
+ SyncTextType["Pascal"] = "Pascal";
364
+ })(exports.SyncTextType || (exports.SyncTextType = {}));
365
+ exports.GroupRenderType = void 0;
366
+ (function (GroupRenderType) {
367
+ GroupRenderType["Standard"] = "Standard";
368
+ GroupRenderType["Grid"] = "Grid";
369
+ GroupRenderType["Flex"] = "Flex";
370
+ GroupRenderType["Tabs"] = "Tabs";
371
+ GroupRenderType["GroupElement"] = "GroupElement";
372
+ GroupRenderType["SelectChild"] = "SelectChild";
373
+ })(exports.GroupRenderType || (exports.GroupRenderType = {}));
374
+ exports.DisplayDataType = void 0;
375
+ (function (DisplayDataType) {
376
+ DisplayDataType["Text"] = "Text";
377
+ DisplayDataType["Html"] = "Html";
378
+ DisplayDataType["Icon"] = "Icon";
379
+ DisplayDataType["Custom"] = "Custom";
380
+ })(exports.DisplayDataType || (exports.DisplayDataType = {}));
381
+ function visitControlDefinition(x, visitor, defaultValue) {
382
+ switch (x.type) {
383
+ case exports.ControlDefinitionType.Action:
384
+ return visitor.action(x);
385
+ case exports.ControlDefinitionType.Data:
386
+ return visitor.data(x);
387
+ case exports.ControlDefinitionType.Display:
388
+ return visitor.display(x);
389
+ case exports.ControlDefinitionType.Group:
390
+ return visitor.group(x);
391
+ default:
392
+ return defaultValue(x);
393
+ }
394
+ }
395
+ function isGridRenderer(options) {
396
+ return options.type === exports.GroupRenderType.Grid;
397
+ }
398
+ function isSelectChildRenderer(options) {
399
+ return options.type === exports.GroupRenderType.SelectChild;
400
+ }
401
+ function isTabsRenderer(options) {
402
+ return options.type === exports.GroupRenderType.Tabs;
403
+ }
404
+ function isFlexRenderer(options) {
405
+ return options.type === exports.GroupRenderType.Flex;
406
+ }
407
+ function isDisplayOnlyRenderer(options) {
408
+ return options.type === exports.DataRenderType.DisplayOnly;
409
+ }
410
+ function isTextfieldRenderer(options) {
411
+ return options.type === exports.DataRenderType.Textfield;
412
+ }
413
+ function isDateTimeRenderer(options) {
414
+ return options.type === exports.DataRenderType.DateTime;
415
+ }
416
+ function isAutocompleteRenderer(options) {
417
+ return options.type === exports.DataRenderType.Autocomplete;
418
+ }
419
+ function isAutoCompleteClasses(options) {
420
+ switch (options == null ? void 0 : options.type) {
421
+ case exports.DataRenderType.Autocomplete:
422
+ return true;
423
+ default:
424
+ return false;
425
+ }
426
+ }
427
+ function isDataGroupRenderer(options) {
428
+ return (options == null ? void 0 : options.type) === exports.DataRenderType.Group;
429
+ }
430
+ function isArrayRenderer(options) {
431
+ return options.type === exports.DataRenderType.Array;
432
+ }
433
+ function isDataControl(c) {
434
+ return c.type === exports.ControlDefinitionType.Data;
435
+ }
436
+ function isGroupControl(c) {
437
+ return c.type === exports.ControlDefinitionType.Group;
438
+ }
439
+ function isActionControl(c) {
440
+ return c.type === exports.ControlDefinitionType.Action;
441
+ }
442
+ function isDisplayControl(c) {
443
+ return c.type === exports.ControlDefinitionType.Display;
444
+ }
445
+ function isCheckEntryClasses(options) {
446
+ switch (options == null ? void 0 : options.type) {
447
+ case exports.DataRenderType.Radio:
448
+ case exports.DataRenderType.CheckList:
449
+ return true;
450
+ default:
451
+ return false;
452
+ }
453
+ }
454
+ var FormNode = /*#__PURE__*/function () {
455
+ function FormNode(id, definition, tree, parent, overrideChildren) {
456
+ this.id = void 0;
457
+ this.definition = void 0;
458
+ this.tree = void 0;
459
+ this.parent = void 0;
460
+ this.overrideChildren = void 0;
461
+ this.id = id;
462
+ this.definition = definition;
463
+ this.tree = tree;
464
+ this.parent = parent;
465
+ this.overrideChildren = overrideChildren;
466
+ this.id = id;
467
+ this.definition = definition;
468
+ }
469
+ var _proto = FormNode.prototype;
470
+ _proto.getChildNodes = function getChildNodes() {
471
+ var _children$map,
472
+ _children,
473
+ _this = this;
474
+ if (this.overrideChildren) return this.overrideChildren;
475
+ var children = this.definition.children;
476
+ if (this.definition.childRefId) {
477
+ var ref = this.tree.controlMap[this.definition.childRefId];
478
+ children = ref == null ? void 0 : ref.children;
479
+ }
480
+ return (_children$map = (_children = children) == null ? void 0 : _children.map(function (x, i) {
481
+ return new FormNode(_this.id + "/" + i, x, _this.tree, _this);
482
+ })) != null ? _children$map : [];
483
+ };
484
+ _proto.withOverrideChildren = function withOverrideChildren(children) {
485
+ var _this2 = this;
486
+ return new FormNode(this.id, this.definition, this.tree, this.parent, children.map(function (x) {
487
+ return nodeForControl(x, _this2.tree);
488
+ }));
489
+ };
490
+ return FormNode;
491
+ }();
492
+ function nodeForControl(definition, tree, indexOrId, parent) {
493
+ return new FormNode(parent ? parent.id + "/" + indexOrId : "", definition, tree, parent);
494
+ }
495
+ function legacyFormNode(definition) {
496
+ return createFormLookup({
497
+ $legacy: [definition]
498
+ }).getForm("$legacy").rootNode.getChildNodes()[0];
499
+ }
500
+ function getControlIds(definition) {
501
+ var _definition$children$, _definition$children;
502
+ var childEntries = (_definition$children$ = (_definition$children = definition.children) == null ? void 0 : _definition$children.flatMap(getControlIds)) != null ? _definition$children$ : [];
503
+ return !definition.id ? childEntries : [[definition.id, definition]].concat(childEntries);
504
+ }
505
+ function makeFormTree(controls, getForm) {
506
+ var tree = {
507
+ getForm: getForm,
508
+ controlMap: Object.fromEntries(controls.flatMap(getControlIds))
509
+ };
510
+ tree.rootNode = nodeForControl({
511
+ children: controls,
512
+ type: exports.ControlDefinitionType.Group
513
+ }, tree);
514
+ return tree;
515
+ }
516
+ function createFormLookup(formMap) {
517
+ var lookup = {
518
+ getForm: getForm
519
+ };
520
+ var forms = Object.fromEntries(Object.entries(formMap).map(function (_ref) {
521
+ var k = _ref[0],
522
+ v = _ref[1];
523
+ return [k, makeFormTree(v, lookup)];
524
+ }));
525
+ return lookup;
526
+ function getForm(formId) {
527
+ return forms[formId];
528
+ }
529
+ }
530
+ function fieldPathForDefinition(c) {
531
+ var fieldName = isGroupControl(c) ? c.compoundField : isDataControl(c) ? c.field : undefined;
532
+ return fieldName == null ? void 0 : fieldName.split("/");
533
+ }
534
+ function lookupDataNode(c, parentNode) {
535
+ var fieldNamePath = fieldPathForDefinition(c);
536
+ return fieldNamePath ? schemaDataForFieldPath(fieldNamePath, parentNode) : undefined;
537
+ }
538
+ function traverseParents(current, get, until) {
539
+ var outArray = [];
540
+ while (current && !(until != null && until(current))) {
541
+ outArray.push(get(current));
542
+ current = current.parent;
543
+ }
544
+ return outArray.reverse();
545
+ }
546
+ function getRootDataNode(dataNode) {
547
+ while (dataNode.parent) {
548
+ dataNode = dataNode.parent;
549
+ }
550
+ return dataNode;
551
+ }
552
+ function getJsonPath(dataNode) {
553
+ return traverseParents(dataNode, function (d) {
554
+ return d.elementIndex == null ? d.schema.field.field : d.elementIndex;
555
+ }, function (x) {
556
+ return !x.parent;
557
+ });
558
+ }
559
+ function getSchemaPath(schemaNode) {
560
+ return traverseParents(schemaNode, function (d) {
561
+ return d.field;
562
+ }, function (x) {
563
+ return !x.parent;
564
+ });
565
+ }
566
+ function getSchemaFieldList(schema) {
567
+ return schema.getChildNodes().map(function (x) {
568
+ return x.field;
569
+ });
570
+ }
571
+ /**
572
+ * @deprecated use visitFormNodeData instead
573
+ */
574
+ function visitControlDataArray(controls, context, cb) {
575
+ if (!controls) return undefined;
576
+ for (var _iterator = _createForOfIteratorHelperLoose(controls), _step; !(_step = _iterator()).done;) {
577
+ var c = _step.value;
578
+ var r = visitControlData(c, context, cb);
579
+ if (r !== undefined) return r;
580
+ }
581
+ return undefined;
582
+ }
583
+ /**
584
+ * @deprecated use visitFormDataInContext instead
585
+ */
586
+ function visitControlData(definition, ctx, cb) {
587
+ return visitFormDataInContext(ctx, legacyFormNode(definition), function (n, d) {
588
+ return cb(d, n);
589
+ });
590
+ }
591
+ function visitFormData(node, dataNode, cb, notSelf) {
592
+ var def = node.definition;
593
+ var result = !notSelf && isDataControl(def) ? cb(dataNode, def) : undefined;
594
+ if (result !== undefined) return result;
595
+ if (dataNode.elementIndex == null && dataNode.schema.field.collection) {
596
+ var _l = dataNode.control.elements.length;
597
+ for (var i = 0; i < _l; i++) {
598
+ var elemChild = dataNode.getChildElement(i);
599
+ var elemResult = visitFormData(node, elemChild, cb);
600
+ if (elemResult !== undefined) return elemResult;
601
+ }
602
+ return undefined;
603
+ }
604
+ if (dataNode.control.isNull) return undefined;
605
+ var children = node.getChildNodes();
606
+ var l = children.length;
607
+ for (var _i = 0; _i < l; _i++) {
608
+ var _elemResult = visitFormDataInContext(dataNode, children[_i], cb);
609
+ if (_elemResult !== undefined) return _elemResult;
610
+ }
611
+ return undefined;
612
+ }
613
+ function visitFormDataInContext(parentContext, node, cb) {
614
+ var dataNode = lookupDataNode(node.definition, parentContext);
615
+ return visitFormData(node, dataNode != null ? dataNode : parentContext, cb, !dataNode);
616
+ }
617
+
618
+ function buildSchema(def) {
619
+ return Object.entries(def).map(function (x) {
620
+ return x[1](x[0]);
621
+ });
622
+ }
623
+ function stringField(displayName, options) {
624
+ return makeScalarField(_extends({
625
+ type: exports.FieldType.String,
626
+ displayName: displayName
627
+ }, options));
628
+ }
629
+ function stringOptionsField(displayName) {
630
+ return makeScalarField({
631
+ type: exports.FieldType.String,
632
+ displayName: displayName,
633
+ options: [].slice.call(arguments, 1)
634
+ });
635
+ }
636
+ function withScalarOptions(options, v) {
637
+ return function (n) {
638
+ return _extends({}, v(n), options);
639
+ };
640
+ }
641
+ function makeScalarField(options) {
642
+ return function (n) {
643
+ return _extends({}, defaultScalarField(n, n), options);
644
+ };
645
+ }
646
+ function makeCompoundField(options) {
647
+ return function (n) {
648
+ return _extends({}, defaultCompoundField(n, n, false), options);
649
+ };
650
+ }
651
+ function intField(displayName, options) {
652
+ return makeScalarField(_extends({
653
+ type: exports.FieldType.Int,
654
+ displayName: displayName
655
+ }, options));
656
+ }
657
+ function doubleField(displayName, options) {
658
+ return makeScalarField(_extends({
659
+ type: exports.FieldType.Double,
660
+ displayName: displayName
661
+ }, options));
662
+ }
663
+ function dateField(displayName, options) {
664
+ return makeScalarField(_extends({
665
+ type: exports.FieldType.Date,
666
+ displayName: displayName
667
+ }, options));
668
+ }
669
+ function timeField(displayName, options) {
670
+ return makeScalarField(_extends({
671
+ type: exports.FieldType.Time,
672
+ displayName: displayName
673
+ }, options));
674
+ }
675
+ function dateTimeField(displayName, options) {
676
+ return makeScalarField(_extends({
677
+ type: exports.FieldType.DateTime,
678
+ displayName: displayName
679
+ }, options));
680
+ }
681
+ function boolField(displayName, options) {
682
+ return makeScalarField(_extends({
683
+ type: exports.FieldType.Bool,
684
+ displayName: displayName
685
+ }, options));
686
+ }
687
+ function compoundField(displayName, fields, other) {
688
+ return function (field) {
689
+ return _extends({}, defaultCompoundField(field, displayName, false), other, {
690
+ children: fields
691
+ });
692
+ };
693
+ }
694
+ function defaultScalarField(field, displayName) {
695
+ return {
696
+ field: field,
697
+ displayName: displayName,
698
+ type: exports.FieldType.String
699
+ };
700
+ }
701
+ function defaultCompoundField(field, displayName, collection) {
702
+ return {
703
+ field: field,
704
+ displayName: displayName,
705
+ type: exports.FieldType.Compound,
706
+ collection: collection,
707
+ children: []
708
+ };
709
+ }
710
+ function mergeField(field, mergeInto) {
711
+ var existing = mergeInto.find(function (x) {
712
+ return x.field === field.field;
713
+ });
714
+ if (existing) {
715
+ return mergeInto.map(function (x) {
716
+ return x !== existing ? x : _extends({}, x, {
717
+ onlyForTypes: mergeTypes(x.onlyForTypes, field.onlyForTypes)
718
+ });
719
+ });
720
+ }
721
+ return [].concat(mergeInto, [field]);
722
+ function mergeTypes(f, s) {
723
+ if (!f) return s;
724
+ if (!s) return f;
725
+ var extras = s.filter(function (x) {
726
+ return !f.includes(x);
727
+ });
728
+ return extras.length ? [].concat(f, extras) : f;
729
+ }
730
+ }
731
+ function mergeFields(fields, name, value, newFields) {
732
+ var withType = fields.map(function (x) {
733
+ return x.isTypeField ? addFieldOption(x, name, value) : x;
734
+ });
735
+ return newFields.map(function (x) {
736
+ return _extends({}, x, {
737
+ onlyForTypes: [value]
738
+ });
739
+ }).reduce(function (af, x) {
740
+ return mergeField(x, af);
741
+ }, withType);
742
+ }
743
+ function addFieldOption(typeField, name, value) {
744
+ var _typeField$options;
745
+ var options = (_typeField$options = typeField.options) != null ? _typeField$options : [];
746
+ if (options.some(function (x) {
747
+ return x.value === value;
748
+ })) return typeField;
749
+ return _extends({}, typeField, {
750
+ options: [].concat(options, [{
751
+ name: name,
752
+ value: value
753
+ }])
754
+ });
755
+ }
756
+ function resolveSchemas(schemaMap) {
757
+ var out = {};
758
+ function resolveSchemaType(type) {
759
+ if (type in out) {
760
+ return out[type];
761
+ }
762
+ var resolvedFields = [];
763
+ out[type] = resolvedFields;
764
+ schemaMap[type].forEach(function (x) {
765
+ if (isCompoundField(x) && x.schemaRef) {
766
+ resolvedFields.push(_extends({}, x, {
767
+ children: resolveSchemaType(x.schemaRef)
768
+ }));
769
+ } else {
770
+ resolvedFields.push(x);
771
+ }
772
+ });
773
+ return resolvedFields;
774
+ }
775
+ Object.keys(schemaMap).forEach(resolveSchemaType);
776
+ return out;
777
+ }
778
+
779
+ /**
780
+ * Applies default values to the given record based on the provided schema fields.
781
+ * @param v - The record to apply default values to.
782
+ * @param fields - The schema fields to use for applying default values.
783
+ * @param doneSet - A set to keep track of processed records.
784
+ * @returns The record with default values applied.
785
+ */
786
+ function applyDefaultValues(v, fields, doneSet) {
787
+ var _doneSet;
788
+ if (!v) return defaultValueForFields(fields);
789
+ if (doneSet && doneSet.has(v)) return v;
790
+ (_doneSet = doneSet) != null ? _doneSet : doneSet = new Set();
791
+ doneSet.add(v);
792
+ var applyValue = fields.filter(function (x) {
793
+ return isCompoundField(x) || !(x.field in v);
794
+ });
795
+ if (!applyValue.length) return v;
796
+ var out = _extends({}, v);
797
+ applyValue.forEach(function (x) {
798
+ out[x.field] = x.field in v ? applyDefaultForField(v[x.field], x, fields, false, doneSet) : defaultValueForField(x);
799
+ });
800
+ return out;
801
+ }
802
+ /**
803
+ * Applies default values to a specific field based on the provided schema field.
804
+ * @param v - The value to apply default values to.
805
+ * @param field - The schema field to use for applying default values.
806
+ * @param parent - The parent schema fields.
807
+ * @param notElement - Flag indicating if the field is not an element.
808
+ * @param doneSet - A set to keep track of processed records.
809
+ * @returns The value with default values applied.
810
+ */
811
+ function applyDefaultForField(v, field, parent, notElement, doneSet) {
812
+ if (field.collection && !notElement) {
813
+ return (v != null ? v : []).map(function (x) {
814
+ return applyDefaultForField(x, field, parent, true, doneSet);
815
+ });
816
+ }
817
+ if (isCompoundField(field)) {
818
+ if (!v && !field.required) return v;
819
+ return applyDefaultValues(v, field.treeChildren ? parent : field.children, doneSet);
820
+ }
821
+ return defaultValueForField(field);
822
+ }
823
+ /**
824
+ * Returns the default values for the provided schema fields.
825
+ * @param fields - The schema fields to get default values for.
826
+ * @returns The default values for the schema fields.
827
+ */
828
+ function defaultValueForFields(fields) {
829
+ return Object.fromEntries(fields.map(function (x) {
830
+ return [x.field, defaultValueForField(x)];
831
+ }));
832
+ }
833
+ /**
834
+ * Returns the default value for a specific schema field.
835
+ * @param sf - The schema field to get the default value for.
836
+ * @param required - Flag indicating if the field is required.
837
+ * @returns The default value for the schema field.
838
+ */
839
+ function defaultValueForField(sf, required) {
840
+ if (sf.defaultValue !== undefined) return sf.defaultValue;
841
+ var isRequired = !!(required || sf.required);
842
+ if (isCompoundField(sf)) {
843
+ if (isRequired) {
844
+ var childValue = defaultValueForFields(sf.children);
845
+ return sf.collection ? [childValue] : childValue;
846
+ }
847
+ return sf.notNullable ? sf.collection ? [] : {} : undefined;
848
+ }
849
+ if (sf.collection && sf.notNullable) {
850
+ return [];
851
+ }
852
+ return undefined;
853
+ }
854
+ /**
855
+ * Returns the element value for a specific schema field.
856
+ * @param sf - The schema field to get the element value for.
857
+ * @returns The element value for the schema field.
858
+ */
859
+ function elementValueForField(sf) {
860
+ if (isCompoundField(sf)) {
861
+ return defaultValueForFields(sf.children);
862
+ }
863
+ return sf.defaultValue;
864
+ }
865
+ /**
866
+ * Finds a scalar field in the provided schema fields.
867
+ * @param fields - The schema fields to search in.
868
+ * @param field - The field name to search for.
869
+ * @returns The found scalar field, or undefined if not found.
870
+ */
871
+ function findScalarField(fields, field) {
872
+ return findField(fields, field);
873
+ }
874
+ /**
875
+ * Finds a compound field in the provided schema fields.
876
+ * @param fields - The schema fields to search in.
877
+ * @param field - The field name to search for.
878
+ * @returns The found compound field, or undefined if not found.
879
+ */
880
+ function findCompoundField(fields, field) {
881
+ return findField(fields, field);
882
+ }
883
+ /**
884
+ * Checks if a field has a specific tag.
885
+ * @param field - The field to check.
886
+ * @param tag - The tag to check for.
887
+ * @returns True if the field has the tag, false otherwise.
888
+ */
889
+ function fieldHasTag(field, tag) {
890
+ var _field$tags;
891
+ return Boolean((_field$tags = field.tags) == null ? void 0 : _field$tags.includes(tag));
892
+ }
893
+ /**
894
+ * Returns the display name for a specific field.
895
+ * @param field - The field to get the display name for.
896
+ * @returns The display name for the field.
897
+ */
898
+ function fieldDisplayName(field) {
899
+ var _field$displayName;
900
+ return (_field$displayName = field.displayName) != null ? _field$displayName : field.field;
901
+ }
902
+ /**
903
+ * Checks if an object has options.
904
+ * @param o - The object to check.
905
+ * @returns True if the object has options, false otherwise.
906
+ */
907
+ function hasOptions(o) {
908
+ var _o$options$length, _o$options;
909
+ return ((_o$options$length = (_o$options = o.options) == null ? void 0 : _o$options.length) != null ? _o$options$length : 0) > 0;
910
+ }
911
+ /**
912
+ * Returns the default control definition for a specific schema field.
913
+ * @param sf - The schema field to get the default control definition for.
914
+ * @param noChildren - Flag indicating if children should not be included.
915
+ * @returns The default control definition for the schema field.
916
+ */
917
+ function defaultControlForField(sf, noChildren) {
918
+ if (isCompoundField(sf)) {
919
+ var ref = getTagParam(sf, exports.SchemaTags.ControlRef);
920
+ return {
921
+ type: exports.ControlDefinitionType.Data,
922
+ title: sf.displayName,
923
+ field: sf.field,
924
+ required: sf.required,
925
+ childRefId: ref,
926
+ children: !noChildren && !ref ? sf.children.filter(function (x) {
927
+ return !fieldHasTag(x, exports.SchemaTags.NoControl);
928
+ }).map(function (x) {
929
+ return defaultControlForField(x);
930
+ }) : undefined
931
+ };
932
+ } else if (isScalarField(sf)) {
933
+ var htmlEditor = fieldHasTag(sf, exports.SchemaTags.HtmlEditor);
934
+ return {
935
+ type: exports.ControlDefinitionType.Data,
936
+ title: sf.displayName,
937
+ field: sf.field,
938
+ required: sf.required,
939
+ renderOptions: {
940
+ type: htmlEditor ? exports.DataRenderType.HtmlEditor : exports.DataRenderType.Standard
941
+ }
942
+ };
943
+ }
944
+ throw "Unknown schema field";
945
+ }
946
+ function findControlsForCompound(compound, definition) {
947
+ if (isDataControl(definition) && compound.field.field === definition.field) {
948
+ return [definition];
949
+ }
950
+ if (isGroupControl(definition)) {
951
+ var _definition$children$, _definition$children;
952
+ if (definition.compoundField === compound.field.field) return [definition];
953
+ return (_definition$children$ = (_definition$children = definition.children) == null ? void 0 : _definition$children.flatMap(function (d) {
954
+ return findControlsForCompound(compound, d);
955
+ })) != null ? _definition$children$ : [];
956
+ }
957
+ return [];
958
+ }
959
+ /**
960
+ * Finds non-data groups in the provided control definitions.
961
+ * @param controls - The control definitions to search in.
962
+ * @returns An array of found non-data groups.
963
+ */
964
+ function findNonDataGroups(controls) {
965
+ return controls.flatMap(function (control) {
966
+ var _control$children2;
967
+ return isGroupControl(control) && !control.compoundField ? [control].concat(findNonDataGroups((_control$children2 = control.children) != null ? _control$children2 : [])) : [];
968
+ });
969
+ }
970
+ /**
971
+ * Adds missing controls to the provided control definitions based on the schema fields.
972
+ * @param fields - The schema fields to use for adding missing controls.
973
+ * @param controls - The control definitions to add missing controls to.
974
+ * @returns The control definitions with missing controls added.
975
+ */
976
+ function addMissingControls(fields, controls) {
977
+ return addMissingControlsForSchema(rootSchemaNode(fields), controls);
978
+ }
979
+ /**
980
+ * Adds missing controls to the provided control definitions based on the schema fields.
981
+ * @param schema - The root schema node to use for adding missing controls.
982
+ * @param controls - The control definitions to add missing controls to.
983
+ * @returns The control definitions with missing controls added.
984
+ */
985
+ function addMissingControlsForSchema(schema, controls) {
986
+ var controlMap = {};
987
+ var schemaControlMap = {};
988
+ var rootControls = controls.map(function (c) {
989
+ return toControlAndSchema(c, schema);
990
+ });
991
+ var rootSchema = {
992
+ schema: schema,
993
+ children: rootControls
994
+ };
995
+ addSchemaMapEntry("", rootSchema);
996
+ rootControls.forEach(addReferences);
997
+ var fields = schema.getChildNodes();
998
+ fields.forEach(addMissing);
999
+ return rootControls.map(toDefinition);
1000
+ function toDefinition(c) {
1001
+ var children = c.children.length ? c.children.map(toDefinition) : null;
1002
+ return _extends({}, c.control, {
1003
+ children: children
1004
+ });
1005
+ }
1006
+ function addMissing(schemaNode) {
1007
+ if (fieldHasTag(schemaNode.field, exports.SchemaTags.NoControl)) return;
1008
+ var existingControls = schemaControlMap[schemaNode.id];
1009
+ if (!existingControls) {
1010
+ var eligibleParents = getEligibleParents(schemaNode);
1011
+ var desiredGroup = getTagParam(schemaNode.field, exports.SchemaTags.ControlGroup);
1012
+ var parentGroup = desiredGroup ? controlMap[desiredGroup] : undefined;
1013
+ if (!parentGroup && desiredGroup) console.warn("No group '" + desiredGroup + "' for " + schemaNode.id);
1014
+ if (parentGroup && eligibleParents.indexOf(parentGroup.schema.id) < 0) {
1015
+ console.warn("Target group '" + desiredGroup + "' is not an eligible parent for '" + schemaNode.id + "'");
1016
+ parentGroup = undefined;
1017
+ }
1018
+ if (!parentGroup && eligibleParents.length) {
1019
+ var _schemaControlMap$eli;
1020
+ parentGroup = (_schemaControlMap$eli = schemaControlMap[eligibleParents[0]]) == null ? void 0 : _schemaControlMap$eli[0];
1021
+ }
1022
+ if (parentGroup) {
1023
+ var _newControl = defaultControlForField(schemaNode.field, true);
1024
+ _newControl.field = relativePath(parentGroup.schema, schemaNode);
1025
+ parentGroup.children.push(toControlAndSchema(_newControl, parentGroup.schema, parentGroup));
1026
+ } else console.warn("Could not find a parent group for: " + schemaNode.id);
1027
+ }
1028
+ schemaNode.getChildNodes(true).forEach(addMissing);
1029
+ }
1030
+ function getEligibleParents(schemaNode) {
1031
+ var eligibleParents = [];
1032
+ var parent = schemaNode.parent;
1033
+ while (parent) {
1034
+ eligibleParents.push(parent.id);
1035
+ if (parent.field.collection) break;
1036
+ if (!parent.parent) parent.getChildNodes(true).forEach(addCompound);
1037
+ parent = parent.parent;
1038
+ }
1039
+ return eligibleParents;
1040
+ function addCompound(node) {
1041
+ if (isCompoundNode(node) && !node.field.collection) {
1042
+ eligibleParents.push(node.id);
1043
+ node.getChildNodes(true).forEach(addCompound);
1044
+ }
1045
+ }
1046
+ }
1047
+ function addReferences(c) {
1048
+ c.children.forEach(addReferences);
1049
+ if (c.control.childRefId) {
1050
+ var ref = controlMap[c.control.childRefId];
1051
+ if (ref) {
1052
+ ref.children.forEach(function (x) {
1053
+ return toControlAndSchema(x.control, c.schema, c, true);
1054
+ });
1055
+ return;
1056
+ }
1057
+ console.warn("Missing reference", c.control.childRefId);
1058
+ }
1059
+ }
1060
+ function addSchemaMapEntry(schemaId, entry) {
1061
+ if (!schemaControlMap[schemaId]) schemaControlMap[schemaId] = [];
1062
+ schemaControlMap[schemaId].push(entry);
1063
+ }
1064
+ function toControlAndSchema(c, parentSchema, parentNode, dontRegister) {
1065
+ var _c$children$map, _c$children;
1066
+ var controlPath = fieldPathForDefinition(c);
1067
+ var dataSchema = controlPath ? schemaForFieldPath(controlPath, parentSchema) : undefined;
1068
+ if (isGroupControl(c) && dataSchema == null) dataSchema = parentSchema;
1069
+ var entry = {
1070
+ schema: dataSchema,
1071
+ control: c,
1072
+ children: [],
1073
+ parent: parentNode
1074
+ };
1075
+ entry.children = (_c$children$map = (_c$children = c.children) == null ? void 0 : _c$children.map(function (x) {
1076
+ var _dataSchema;
1077
+ return toControlAndSchema(x, (_dataSchema = dataSchema) != null ? _dataSchema : parentSchema, entry, dontRegister);
1078
+ })) != null ? _c$children$map : [];
1079
+ if (!dontRegister && c.id) controlMap[c.id] = entry;
1080
+ if (dataSchema) {
1081
+ addSchemaMapEntry(dataSchema.id, entry);
1082
+ }
1083
+ return entry;
1084
+ }
1085
+ }
1086
+ /**
1087
+ * Custom hook to use an updated reference.
1088
+ * @param a - The value to create a reference for.
1089
+ * @returns A mutable reference object.
1090
+ */
1091
+ function useUpdatedRef(a) {
1092
+ var r = React.useRef(a);
1093
+ r.current = a;
1094
+ return r;
1095
+ }
1096
+ /**
1097
+ * Checks if a control definition is readonly.
1098
+ * @param c - The control definition to check.
1099
+ * @returns True if the control definition is readonly, false otherwise.
1100
+ */
1101
+ function isControlReadonly(c) {
1102
+ return isDataControl(c) && !!c.readonly;
1103
+ }
1104
+ /**
1105
+ * Checks if a control definition is disabled.
1106
+ * @param c - The control definition to check.
1107
+ * @returns True if the control definition is disabled, false otherwise.
1108
+ */
1109
+ function isControlDisabled(c) {
1110
+ return isDataControl(c) && !!c.disabled;
1111
+ }
1112
+ /**
1113
+ * Returns the display-only render options for a control definition.
1114
+ * @param d - The control definition to get the display-only render options for.
1115
+ * @returns The display-only render options, or undefined if not applicable.
1116
+ */
1117
+ function getDisplayOnlyOptions(d) {
1118
+ return isDataControl(d) && d.renderOptions && isDisplayOnlyRenderer(d.renderOptions) ? d.renderOptions : undefined;
1119
+ }
1120
+ /**
1121
+ * Cleans data for a schema based on the provided schema fields.
1122
+ * @param v - The data to clean.
1123
+ * @param fields - The schema fields to use for cleaning the data.
1124
+ * @param removeIfDefault - Flag indicating if default values should be removed.
1125
+ * @returns The cleaned data.
1126
+ */
1127
+ function cleanDataForSchema(v, fields, removeIfDefault) {
1128
+ if (!v) return v;
1129
+ var typeField = fields.find(function (x) {
1130
+ return x.isTypeField;
1131
+ });
1132
+ var typeValue = typeField ? v[typeField.field] : undefined;
1133
+ var cleanableFields = !removeIfDefault ? fields.filter(function (x) {
1134
+ var _x$onlyForTypes$lengt, _x$onlyForTypes;
1135
+ return isCompoundField(x) || ((_x$onlyForTypes$lengt = (_x$onlyForTypes = x.onlyForTypes) == null ? void 0 : _x$onlyForTypes.length) != null ? _x$onlyForTypes$lengt : 0) > 0;
1136
+ }) : fields;
1137
+ if (!cleanableFields.length) return v;
1138
+ var out = _extends({}, v);
1139
+ cleanableFields.forEach(function (x) {
1140
+ var _x$onlyForTypes2;
1141
+ var childValue = v[x.field];
1142
+ if (((_x$onlyForTypes2 = x.onlyForTypes) == null ? void 0 : _x$onlyForTypes2.includes(typeValue)) === false || !x.notNullable && canBeNull()) {
1143
+ delete out[x.field];
1144
+ return;
1145
+ }
1146
+ if (isCompoundField(x)) {
1147
+ var childFields = x.treeChildren ? fields : x.children;
1148
+ if (x.collection) {
1149
+ if (Array.isArray(childValue)) {
1150
+ out[x.field] = childValue.map(function (cv) {
1151
+ return cleanDataForSchema(cv, childFields, removeIfDefault);
1152
+ });
1153
+ }
1154
+ } else {
1155
+ out[x.field] = cleanDataForSchema(childValue, childFields, removeIfDefault);
1156
+ }
1157
+ }
1158
+ function canBeNull() {
1159
+ return removeIfDefault && x.defaultValue === childValue || x.collection && Array.isArray(childValue) && !childValue.length
1160
+ //|| (x.type === FieldType.Bool && childValue === false)
1161
+ ;
1162
+ }
1163
+ });
1164
+ return out;
1165
+ }
1166
+ /**
1167
+ * Returns all referenced classes for a control definition.
1168
+ * @param c - The control definition to get the referenced classes for.
1169
+ * @param collectExtra - Optional function to collect extra classes.
1170
+ * @returns An array of referenced classes.
1171
+ */
1172
+ function getAllReferencedClasses(c, collectExtra) {
1173
+ var _c$children2, _collectExtra;
1174
+ var childClasses = (_c$children2 = c.children) == null ? void 0 : _c$children2.flatMap(function (x) {
1175
+ return getAllReferencedClasses(x, collectExtra);
1176
+ });
1177
+ var go = getGroupClassOverrides(c);
1178
+ var _ref = isDataControl(c) && isCheckEntryClasses(c.renderOptions) ? c.renderOptions : {},
1179
+ entryWrapperClass = _ref.entryWrapperClass,
1180
+ selectedClass = _ref.selectedClass,
1181
+ notSelectedClass = _ref.notSelectedClass;
1182
+ var _ref2 = isDataControl(c) && isAutoCompleteClasses(c.renderOptions) ? c.renderOptions : {},
1183
+ listContainerClass = _ref2.listContainerClass,
1184
+ listEntryClass = _ref2.listEntryClass,
1185
+ chipContainerClass = _ref2.chipContainerClass,
1186
+ chipCloseButtonClass = _ref2.chipCloseButtonClass;
1187
+ var tc = clsx__default["default"]([c.styleClass, c.layoutClass, c.labelClass].concat(Object.values(go), (_collectExtra = collectExtra == null ? void 0 : collectExtra(c)) != null ? _collectExtra : [], [entryWrapperClass, selectedClass, notSelectedClass, listContainerClass, listEntryClass, chipContainerClass, chipCloseButtonClass]).map(getOverrideClass));
1188
+ if (childClasses && !tc) return childClasses;
1189
+ if (!tc) return [];
1190
+ if (childClasses) return [tc].concat(childClasses);
1191
+ return [tc];
1192
+ }
1193
+ /**
1194
+ * Converts a JSON path array to a string.
1195
+ * @param jsonPath - The JSON path array to convert.
1196
+ * @param customIndex - Optional function to customize the index format.
1197
+ * @returns The JSON path string.
1198
+ */
1199
+ function jsonPathString(jsonPath, customIndex) {
1200
+ var out = "";
1201
+ jsonPath.forEach(function (v, i) {
1202
+ if (typeof v === "number") {
1203
+ var _customIndex;
1204
+ out += (_customIndex = customIndex == null ? void 0 : customIndex(v)) != null ? _customIndex : "[" + v + "]";
1205
+ } else {
1206
+ if (i > 0) out += ".";
1207
+ out += v;
1208
+ }
1209
+ });
1210
+ return out;
1211
+ }
1212
+ /**
1213
+ * Finds a child control definition within a parent control definition.
1214
+ * @param parent - The parent control definition.
1215
+ * @param childPath - The path to the child control definition, either as a single index or an array of indices.
1216
+ * @returns The found child control definition.
1217
+ */
1218
+ function findChildDefinition(parent, childPath) {
1219
+ if (Array.isArray(childPath)) {
1220
+ var base = parent;
1221
+ childPath.forEach(function (x) {
1222
+ return base = base.children[x];
1223
+ });
1224
+ return base;
1225
+ }
1226
+ return parent.children[childPath];
1227
+ }
1228
+ /**
1229
+ * Returns the override class name if the class name starts with "@ ".
1230
+ * Otherwise, returns the original class name.
1231
+ * @param className - The class name to check and potentially modify.
1232
+ * @returns The override class name or the original class name.
1233
+ */
1234
+ function getOverrideClass(className) {
1235
+ if (className && className.startsWith("@ ")) {
1236
+ return className.substring(2);
1237
+ }
1238
+ return className;
1239
+ }
1240
+ /**
1241
+ * Returns the appropriate class name for a renderer.
1242
+ * If the global class name starts with "@ ", it overrides the control class name.
1243
+ * Otherwise, it combines the control class name and the global class name.
1244
+ *
1245
+ * @param controlClass - The class name for the control.
1246
+ * @param globalClass - The global class name.
1247
+ * @returns The appropriate class name for the renderer.
1248
+ */
1249
+ function rendererClass(controlClass, globalClass) {
1250
+ var gc = getOverrideClass(globalClass);
1251
+ if (gc !== globalClass) return globalClass ? globalClass : undefined;
1252
+ var oc = getOverrideClass(controlClass);
1253
+ if (oc === controlClass) return clsx__default["default"](controlClass, globalClass);
1254
+ return oc ? oc : undefined;
1255
+ }
1256
+ /**
1257
+ * Applies length restrictions to a value.
1258
+ * @template Min - The type of the minimum value.
1259
+ * @template Max - The type of the maximum value.
1260
+ * @param {number} length - The length to check.
1261
+ * @param {number | null | undefined} min - The minimum length.
1262
+ * @param {number | null | undefined} max - The maximum length.
1263
+ * @param {Min} minValue - The value to return if the length is greater than the minimum.
1264
+ * @param {Max} maxValue - The value to return if the length is less than the maximum.
1265
+ * @returns {[Min | undefined, Max | undefined]} - An array containing the minimum and maximum values if the length restrictions are met.
1266
+ */
1267
+ function applyLengthRestrictions(length, min, max, minValue, maxValue) {
1268
+ return [min == null || length > min ? minValue : undefined, max == null || length < max ? maxValue : undefined];
1269
+ }
1270
+ /**
1271
+ * Finds the path to a field in the schema fields.
1272
+ * @param {SchemaField[]} fields - The schema fields to search in.
1273
+ * @param {string | undefined} fieldPath - The path to the field.
1274
+ * @returns {SchemaField[] | undefined} - An array of schema fields representing the path, or undefined if not found.
1275
+ */
1276
+ function findFieldPath(fields, fieldPath) {
1277
+ if (!fieldPath) return undefined;
1278
+ var fieldNames = fieldPath.split("/");
1279
+ var foundFields = [];
1280
+ var i = 0;
1281
+ var currentFields = fields;
1282
+ while (i < fieldNames.length && currentFields) {
1283
+ var cf = fieldNames[i];
1284
+ var nextField = findField(currentFields, cf);
1285
+ if (!nextField) return undefined;
1286
+ foundFields.push(nextField);
1287
+ currentFields = isCompoundField(nextField) && !nextField.collection ? nextField.children : undefined;
1288
+ i++;
1289
+ }
1290
+ return foundFields.length === fieldNames.length ? foundFields : undefined;
1291
+ }
1292
+ /**
1293
+ * Merges two objects.
1294
+ * @template A - The type of the objects to merge.
1295
+ * @param {A} o1 - The first object.
1296
+ * @param {A} o2 - The second object.
1297
+ * @param {(k: keyof NonNullable<A>, v1: unknown, v2: unknown) => unknown} [doMerge] - Optional function to merge values.
1298
+ * @returns {A} - The merged object.
1299
+ */
1300
+ function mergeObjects(o1, o2, doMerge) {
1301
+ if (doMerge === void 0) {
1302
+ doMerge = function doMerge(_, v1, v2) {
1303
+ return v1 != null ? v1 : v2;
1304
+ };
1305
+ }
1306
+ if (!o1) return o2;
1307
+ if (!o2) return o1;
1308
+ var result = _extends({}, o1);
1309
+ for (var key in o2) {
1310
+ if (o2.hasOwnProperty(key)) {
1311
+ var value1 = o1[key];
1312
+ var value2 = o2[key];
1313
+ result[key] = doMerge(key, value1, value2);
1314
+ }
1315
+ }
1316
+ return result;
1317
+ }
1318
+ /**
1319
+ * Coerces a value to a string.
1320
+ * @param {unknown} v - The value to coerce.
1321
+ * @returns {string} - The coerced string.
1322
+ */
1323
+ function coerceToString(v) {
1324
+ return v == null ? "" : typeof v === "object" ? "error: " + JSON.stringify(v) : v.toString();
1325
+ }
1326
+ /**
1327
+ * Returns the group renderer options for a control definition.
1328
+ * @param {ControlDefinition} def - The control definition to get the group renderer options for.
1329
+ * @returns {GroupRenderOptions | undefined} - The group renderer options, or undefined if not applicable.
1330
+ */
1331
+ function getGroupRendererOptions(def) {
1332
+ return isGroupControl(def) ? def.groupOptions : isDataControl(def) && isDataGroupRenderer(def.renderOptions) ? def.renderOptions.groupOptions : undefined;
1333
+ }
1334
+ /**
1335
+ * Returns the group class overrides for a control definition.
1336
+ * @param {ControlDefinition} def - The control definition to get the group class overrides for.
1337
+ * @returns {ControlClasses} - The group class overrides.
1338
+ */
1339
+ function getGroupClassOverrides(def) {
1340
+ var go = getGroupRendererOptions(def);
1341
+ if (!go) return {};
1342
+ var childLayoutClass = go.childLayoutClass,
1343
+ childStyleClass = go.childStyleClass,
1344
+ childLabelClass = go.childLabelClass;
1345
+ var out = {};
1346
+ if (childLayoutClass) out.layoutClass = childLayoutClass;
1347
+ if (childStyleClass) out.styleClass = childStyleClass;
1348
+ if (childLabelClass) out.labelClass = childLabelClass;
1349
+ return out;
1350
+ }
1351
+ /**
1352
+ * Checks if a control definition is display-only.
1353
+ * @param {ControlDefinition} def - The control definition to check.
1354
+ * @returns {boolean} - True if the control definition is display-only, false otherwise.
1355
+ */
1356
+ function isControlDisplayOnly(def) {
1357
+ var _getGroupRendererOpti;
1358
+ return Boolean((_getGroupRendererOpti = getGroupRendererOptions(def)) == null ? void 0 : _getGroupRendererOpti.displayOnly);
1359
+ }
1360
+ /**
1361
+ * Combines multiple action handlers into a single handler.
1362
+ * @param {...(ControlActionHandler | undefined)[]} handlers - The action handlers to combine.
1363
+ * @returns {ControlActionHandler} - The combined action handler.
1364
+ */
1365
+ function actionHandlers() {
1366
+ var handlers = [].slice.call(arguments);
1367
+ return function (actionId, actionData, ctx) {
1368
+ for (var i = 0; i < handlers.length; i++) {
1369
+ var _handlers$i, _handlers;
1370
+ var res = (_handlers$i = (_handlers = handlers)[i]) == null ? void 0 : _handlers$i.call(_handlers, actionId, actionData, ctx);
1371
+ if (res) return res;
1372
+ }
1373
+ return undefined;
1374
+ };
1375
+ }
1376
+ function getDiffObject(dataNode, force) {
1377
+ var c = dataNode.control;
1378
+ var sf = dataNode.schema.field;
1379
+ if (!c.dirty && !force) return undefined;
1380
+ if (c.isNull) return null;
1381
+ if (sf.collection && dataNode.elementIndex == null) {
1382
+ var idField = getTagParam(sf, exports.SchemaTags.IdField);
1383
+ return c.as().elements.map(function (x, i) {
1384
+ var _getElementIndex;
1385
+ var change = getDiffObject(dataNode.getChildElement(i), idField !== undefined);
1386
+ return idField != null ? change : {
1387
+ old: (_getElementIndex = core.getElementIndex(x)) == null ? void 0 : _getElementIndex.initialIndex,
1388
+ edit: change
1389
+ };
1390
+ });
1391
+ } else if (isCompoundField(sf)) {
1392
+ var children = dataNode.schema.getChildNodes();
1393
+ var _idField = getTagParam(sf, exports.SchemaTags.IdField);
1394
+ return Object.fromEntries(children.flatMap(function (c) {
1395
+ var diff = getDiffObject(dataNode.getChild(c), _idField === c.field.field);
1396
+ return diff !== undefined ? [[c.field.field, diff]] : [];
1397
+ }));
1398
+ }
1399
+ return c.value;
1400
+ }
1401
+ function getNullToggler(c) {
1402
+ return core.ensureMetaValue(c, "$nullToggler", function () {
1403
+ var lastDefined = getLastDefinedValue(c);
1404
+ var isEditing = getIsEditing(c);
1405
+ var currentNotNull = c.current.value != null;
1406
+ c.disabled = !currentNotNull;
1407
+ var notNull = core.newControl(currentNotNull);
1408
+ if (!currentNotNull) c.value = null;
1409
+ disableIfNotEditing();
1410
+ isEditing.subscribe(disableIfNotEditing, core.ControlChange.Value);
1411
+ notNull.subscribe(function () {
1412
+ var currentNotNull = notNull.current.value;
1413
+ c.value = currentNotNull ? lastDefined.current.value : null;
1414
+ c.disabled = !currentNotNull;
1415
+ }, core.ControlChange.Value);
1416
+ return notNull;
1417
+ function disableIfNotEditing() {
1418
+ notNull.disabled = isEditing.current.value === false;
1419
+ }
1420
+ });
1421
+ }
1422
+ function getExternalEditData(c) {
1423
+ return core.ensureMetaValue(c, "$externalEditIndex", function () {
1424
+ return core.newControl(undefined);
1425
+ });
1426
+ }
1427
+ function getLastDefinedValue(control) {
1428
+ return core.ensureMetaValue(control, "$lastDefined", function () {
1429
+ var lastDefined = core.newControl(control.current.value);
1430
+ control.subscribe(function () {
1431
+ var nv = control.current.value;
1432
+ if (nv != null) lastDefined.value = nv;
1433
+ }, core.ControlChange.Value);
1434
+ return lastDefined;
1435
+ });
1436
+ }
1437
+ function getIsEditing(control) {
1438
+ var lastDefined = getLastDefinedValue(control);
1439
+ return core.ensureMetaValue(control, "$willEdit", function () {
1440
+ var c = core.newControl(undefined);
1441
+ c.subscribe(function () {
1442
+ var currentEdit = c.current.value;
1443
+ if (currentEdit !== undefined) {
1444
+ control.value = currentEdit ? lastDefined.current.value : control.initialValue;
1445
+ }
1446
+ }, core.ControlChange.Value);
1447
+ return c;
1448
+ });
1449
+ }
1450
+ function getAllValues(control) {
1451
+ return core.ensureMetaValue(control, "$allValues", function () {
1452
+ return core.newControl([control.value]);
1453
+ });
1454
+ }
1455
+ function applyValues(dataNode, value) {
1456
+ var c = dataNode.control;
1457
+ var sf = dataNode.schema.field;
1458
+ if (c.isEqual(c.initialValue, value)) return;
1459
+ if (sf.collection) {
1460
+ return;
1461
+ } else if (isCompoundField(sf)) {
1462
+ if (value == null) return;
1463
+ dataNode.schema.getChildNodes().forEach(function (c) {
1464
+ applyValues(dataNode.getChild(c), value[c.field.field]);
1465
+ });
1466
+ } else {
1467
+ var allValues = getAllValues(c);
1468
+ allValues.setValue(function (changes) {
1469
+ return changes.every(function (x) {
1470
+ return !c.isEqual(x, value);
1471
+ }) ? [].concat(changes, [value]) : changes;
1472
+ });
1473
+ }
1474
+ }
1475
+ function collectDifferences(dataNode, values) {
1476
+ values.forEach(function (v, i) {
1477
+ if (i == 0) dataNode.control.setInitialValue(v);else applyValues(dataNode, v);
1478
+ });
1479
+ var allEdits = [];
1480
+ resetMultiValues(dataNode);
1481
+ return function () {
1482
+ var editable = 0;
1483
+ var editing = 0;
1484
+ allEdits.forEach(function (x) {
1485
+ var b = x.value;
1486
+ if (b === undefined) return;
1487
+ editable++;
1488
+ if (b) editing++;
1489
+ });
1490
+ return {
1491
+ editing: editing,
1492
+ editable: editable
1493
+ };
1494
+ };
1495
+ function resetMultiValues(dataNode) {
1496
+ var c = dataNode.control;
1497
+ var sf = dataNode.schema.field;
1498
+ if (sf.collection) {
1499
+ return;
1500
+ } else if (isCompoundField(sf)) {
1501
+ if (c.value == null) return;
1502
+ dataNode.schema.getChildNodes().forEach(function (c) {
1503
+ resetMultiValues(dataNode.getChild(c));
1504
+ });
1505
+ } else {
1506
+ allEdits.push(getIsEditing(c));
1507
+ var allValues = getAllValues(c);
1508
+ if (allValues.value.length > 1) {
1509
+ c.setInitialValue(undefined);
1510
+ getLastDefinedValue(c).value = null;
1511
+ }
1512
+ }
1513
+ }
1514
+ }
1515
+ function validationVisitor(onInvalid) {
1516
+ return function (s) {
1517
+ if (isCompoundNode(s.schema)) return undefined;
1518
+ var v = s.control;
1519
+ v.touched = true;
1520
+ if (!v.validate()) {
1521
+ onInvalid(v);
1522
+ }
1523
+ return undefined;
1524
+ };
1525
+ }
1526
+
1527
+ exports.ValidatorType = void 0;
1528
+ (function (ValidatorType) {
1529
+ ValidatorType["Jsonata"] = "Jsonata";
1530
+ ValidatorType["Date"] = "Date";
1531
+ ValidatorType["Length"] = "Length";
1532
+ })(exports.ValidatorType || (exports.ValidatorType = {}));
1533
+ exports.DateComparison = void 0;
1534
+ (function (DateComparison) {
1535
+ DateComparison["NotBefore"] = "NotBefore";
1536
+ DateComparison["NotAfter"] = "NotAfter";
1537
+ })(exports.DateComparison || (exports.DateComparison = {}));
1538
+
1539
+ exports.ExpressionType = void 0;
1540
+ (function (ExpressionType) {
1541
+ ExpressionType["Jsonata"] = "Jsonata";
1542
+ ExpressionType["Data"] = "Data";
1543
+ ExpressionType["DataMatch"] = "FieldValue";
1544
+ ExpressionType["UserMatch"] = "UserMatch";
1545
+ ExpressionType["NotEmpty"] = "NotEmpty";
1546
+ ExpressionType["UUID"] = "UUID";
1547
+ })(exports.ExpressionType || (exports.ExpressionType = {}));
1548
+
1549
+ function dataControl(field, title, options) {
1550
+ return _extends({
1551
+ type: exports.ControlDefinitionType.Data,
1552
+ field: field,
1553
+ title: title
1554
+ }, options);
1555
+ }
1556
+ function validatorOptions(type) {
1557
+ return function (o) {
1558
+ return _extends({
1559
+ type: type
1560
+ }, o);
1561
+ };
1562
+ }
1563
+ function adornmentOptions(type) {
1564
+ return function (o) {
1565
+ return _extends({
1566
+ type: type
1567
+ }, o);
1568
+ };
1569
+ }
1570
+ function renderOptionsFor(type) {
1571
+ return function (o) {
1572
+ return {
1573
+ renderOptions: _extends({
1574
+ type: type
1575
+ }, o)
1576
+ };
1577
+ };
1578
+ }
1579
+ var autocompleteOptions = renderOptionsFor(exports.DataRenderType.Autocomplete);
1580
+ var checkListOptions = renderOptionsFor(exports.DataRenderType.CheckList);
1581
+ var radioButtonOptions = renderOptionsFor(exports.DataRenderType.Radio);
1582
+ var lengthValidatorOptions = validatorOptions(exports.ValidatorType.Length);
1583
+ var jsonataValidatorOptions = validatorOptions(exports.ValidatorType.Jsonata);
1584
+ var dateValidatorOptions = validatorOptions(exports.ValidatorType.Date);
1585
+ var accordionOptions = adornmentOptions(exports.ControlAdornmentType.Accordion);
1586
+ var textfieldOptions = renderOptionsFor(exports.DataRenderType.Textfield);
1587
+ var displayOnlyOptions = renderOptionsFor(exports.DataRenderType.DisplayOnly);
1588
+ var jsonataOptions = renderOptionsFor(exports.DataRenderType.Jsonata);
1589
+ function textDisplayControl(text, options) {
1590
+ return _extends({
1591
+ type: exports.ControlDefinitionType.Display,
1592
+ displayData: {
1593
+ type: exports.DisplayDataType.Text,
1594
+ text: text
1595
+ }
1596
+ }, options);
1597
+ }
1598
+ function htmlDisplayControl(html, options) {
1599
+ return _extends({
1600
+ type: exports.ControlDefinitionType.Display,
1601
+ displayData: {
1602
+ type: exports.DisplayDataType.Html,
1603
+ html: html
1604
+ }
1605
+ }, options);
1606
+ }
1607
+ function dynamicDefaultValue(expr) {
1608
+ return {
1609
+ type: exports.DynamicPropertyType.DefaultValue,
1610
+ expr: expr
1611
+ };
1612
+ }
1613
+ function dynamicReadonly(expr) {
1614
+ return {
1615
+ type: exports.DynamicPropertyType.Readonly,
1616
+ expr: expr
1617
+ };
1618
+ }
1619
+ function dynamicVisibility(expr) {
1620
+ return {
1621
+ type: exports.DynamicPropertyType.Visible,
1622
+ expr: expr
1623
+ };
1624
+ }
1625
+ function dynamicDisabled(expr) {
1626
+ return {
1627
+ type: exports.DynamicPropertyType.Disabled,
1628
+ expr: expr
1629
+ };
1630
+ }
1631
+ function fieldExpr(field) {
1632
+ return {
1633
+ type: exports.ExpressionType.Data,
1634
+ field: field
1635
+ };
1636
+ }
1637
+ function fieldEqExpr(field, value) {
1638
+ return {
1639
+ type: exports.ExpressionType.DataMatch,
1640
+ field: field,
1641
+ value: value
1642
+ };
1643
+ }
1644
+ function jsonataExpr(expression) {
1645
+ return {
1646
+ type: exports.ExpressionType.Jsonata,
1647
+ expression: expression
1648
+ };
1649
+ }
1650
+ function groupedControl(children, title, options) {
1651
+ return _extends({
1652
+ type: exports.ControlDefinitionType.Group,
1653
+ children: children,
1654
+ title: title,
1655
+ groupOptions: {
1656
+ type: "Standard",
1657
+ hideTitle: !title
1658
+ }
1659
+ }, options);
1660
+ }
1661
+ function compoundControl(field, title, children, options) {
1662
+ return _extends({
1663
+ type: exports.ControlDefinitionType.Data,
1664
+ field: field,
1665
+ children: children,
1666
+ title: title,
1667
+ renderOptions: {
1668
+ type: "Standard"
1669
+ }
1670
+ }, options);
1671
+ }
1672
+ function actionControl(actionText, actionId, options) {
1673
+ return _extends({
1674
+ type: exports.ControlDefinitionType.Action,
1675
+ title: actionText,
1676
+ actionId: actionId
1677
+ }, options);
1678
+ }
1679
+ function createAction(actionId, onClick, actionText, options) {
1680
+ return _extends({
1681
+ actionId: actionId,
1682
+ onClick: onClick,
1683
+ actionText: actionText != null ? actionText : actionId
1684
+ }, options);
1685
+ }
1686
+ var emptyGroupDefinition = {
1687
+ type: exports.ControlDefinitionType.Group,
1688
+ children: [],
1689
+ groupOptions: {
1690
+ type: exports.GroupRenderType.Standard,
1691
+ hideTitle: true
1692
+ }
1693
+ };
1694
+ function useControlDefinitionForSchema(sf, definition) {
1695
+ if (definition === void 0) {
1696
+ definition = emptyGroupDefinition;
1697
+ }
1698
+ return React.useMemo(function () {
1699
+ var _definition$children;
1700
+ return _extends({}, definition, {
1701
+ children: addMissingControls(sf, (_definition$children = definition.children) != null ? _definition$children : [])
1702
+ });
1703
+ }, [sf, definition]);
1704
+ }
1705
+ function applyExtensionToSchema(schemaMap, extension) {
1706
+ var outMap = _extends({}, schemaMap);
1707
+ Object.entries(extension).forEach(function (_ref) {
1708
+ var field = _ref[0],
1709
+ cro = _ref[1];
1710
+ outMap[field] = (Array.isArray(cro) ? cro : [cro]).reduce(function (a, cr) {
1711
+ var _cr$fields;
1712
+ return mergeFields(a, cr.name, cr.value, (_cr$fields = cr.fields) != null ? _cr$fields : []);
1713
+ }, outMap[field]);
1714
+ });
1715
+ return outMap;
1716
+ }
1717
+ function applyExtensionsToSchema(schemaMap, extensions) {
1718
+ return resolveSchemas(extensions.reduce(applyExtensionToSchema, schemaMap));
1719
+ }
1720
+
1721
+ /**
1722
+ * Creates a dynamic hook generator.
1723
+ * @template A - The type of the hook result.
1724
+ * @template P - The type of the hook context.
1725
+ * @template S - The type of the hook state.
1726
+ * @param runHook - The function to run the hook.
1727
+ * @param state - The initial state of the hook.
1728
+ * @param deps - The dependencies of the hook.
1729
+ * @returns The dynamic hook generator.
1730
+ */
1731
+ function makeHook(runHook, state, deps) {
1732
+ return {
1733
+ deps: deps,
1734
+ state: state,
1735
+ runHook: runHook
1736
+ };
1737
+ }
1738
+ /**
1739
+ * Converts an array of dependencies to a dependency string.
1740
+ * @template A - The type of the dependencies.
1741
+ * @param deps - The array of dependencies.
1742
+ * @param asHookDep - The function to convert a dependency to a hook dependency.
1743
+ * @returns The dependency string.
1744
+ */
1745
+ function makeHookDepString(deps, asHookDep) {
1746
+ return deps.map(function (x) {
1747
+ return toDepString(asHookDep(x));
1748
+ }).join(",");
1749
+ }
1750
+ /**
1751
+ * Custom hook to use dynamic hooks.
1752
+ * @template P - The type of the hook context.
1753
+ * @template Hooks - The type of the hooks.
1754
+ * @param hooks - The hooks to use.
1755
+ * @returns A function that takes the hook context and returns the hook values.
1756
+ */
1757
+ function useDynamicHooks(hooks) {
1758
+ var hookEntries = Object.entries(hooks);
1759
+ var deps = makeHookDepString(hookEntries, function (x) {
1760
+ return x[1].deps;
1761
+ });
1762
+ var ref = React.useRef({});
1763
+ var s = ref.current;
1764
+ hookEntries.forEach(function (x) {
1765
+ return s[x[0]] = x[1].state;
1766
+ });
1767
+ return React.useCallback(function (p) {
1768
+ return Object.fromEntries(hookEntries.map(function (_ref) {
1769
+ var f = _ref[0],
1770
+ hg = _ref[1];
1771
+ return [f, hg.runHook(p, ref.current[f])];
1772
+ }));
1773
+ }, [deps]);
1774
+ }
1775
+ /**
1776
+ * Converts a value to a dependency string.
1777
+ * @param x - The value to convert.
1778
+ * @returns The dependency string.
1779
+ */
1780
+ function toDepString(x) {
1781
+ if (x === undefined) return "_";
1782
+ if (x === null) return "~";
1783
+ return x.toString();
1784
+ }
1785
+
1786
+ function _finallyRethrows(body, finalizer) {
1787
+ try {
1788
+ var result = body();
1789
+ } catch (e) {
1790
+ return finalizer(true, e);
1791
+ }
1792
+ if (result && result.then) {
1793
+ return result.then(finalizer.bind(null, false), finalizer.bind(null, true));
1794
+ }
1795
+ return finalizer(false, result);
1796
+ }
1797
+ function useEvalVisibilityHook(useEvalExpressionHook, definition, overrideDataNode) {
1798
+ var dynamicVisibility = useEvalDynamicBoolHook(definition, exports.DynamicPropertyType.Visible, useEvalExpressionHook);
1799
+ return makeDynamicPropertyHook(dynamicVisibility, function (ctx, _ref) {
1800
+ var definition = _ref.definition,
1801
+ overrideDataNode = _ref.overrideDataNode;
1802
+ return core.useComputed(function () {
1803
+ var dataNode = overrideDataNode != null ? overrideDataNode : ctx.dataNode;
1804
+ return !dataNode || matchesType(dataNode) && !hideDisplayOnly(dataNode, ctx.schemaInterface, definition);
1805
+ });
1806
+ }, {
1807
+ definition: definition,
1808
+ overrideDataNode: overrideDataNode
1809
+ });
1810
+ }
1811
+ function useEvalReadonlyHook(useEvalExpressionHook, definition) {
1812
+ var dynamicReadonly = useEvalDynamicBoolHook(definition, exports.DynamicPropertyType.Readonly, useEvalExpressionHook);
1813
+ return makeDynamicPropertyHook(dynamicReadonly, function (ctx, _ref2) {
1814
+ var definition = _ref2.definition;
1815
+ return core.useCalculatedControl(function () {
1816
+ return isControlReadonly(definition);
1817
+ });
1818
+ }, {
1819
+ definition: definition
1820
+ });
1821
+ }
1822
+ function useEvalStyleHook(useEvalExpressionHook, property, definition) {
1823
+ var dynamicStyle = useEvalDynamicHook(definition, property, useEvalExpressionHook);
1824
+ return makeDynamicPropertyHook(dynamicStyle, function () {
1825
+ return core.useControl(undefined);
1826
+ }, undefined);
1827
+ }
1828
+ function useEvalAllowedOptionsHook(useEvalExpressionHook, definition) {
1829
+ var dynamicAllowed = useEvalDynamicHook(definition, exports.DynamicPropertyType.AllowedOptions, useEvalExpressionHook);
1830
+ return makeDynamicPropertyHook(dynamicAllowed, function () {
1831
+ return core.useControl([]);
1832
+ }, undefined);
1833
+ }
1834
+ function useEvalDisabledHook(useEvalExpressionHook, definition) {
1835
+ var dynamicDisabled = useEvalDynamicBoolHook(definition, exports.DynamicPropertyType.Disabled, useEvalExpressionHook);
1836
+ return makeDynamicPropertyHook(dynamicDisabled, function (ctx) {
1837
+ return core.useComputed(function () {
1838
+ var _ctx$dataNode, _dataControl$meta$nul;
1839
+ var dataControl = (_ctx$dataNode = ctx.dataNode) == null ? void 0 : _ctx$dataNode.control;
1840
+ var setToNull = (dataControl == null || (_dataControl$meta$nul = dataControl.meta["nullControl"]) == null ? void 0 : _dataControl$meta$nul.value) === false;
1841
+ return setToNull || isControlDisabled(definition);
1842
+ });
1843
+ }, undefined);
1844
+ }
1845
+ function useEvalDisplayHook(useEvalExpressionHook, definition) {
1846
+ return useEvalDynamicHook(definition, exports.DynamicPropertyType.Display, useEvalExpressionHook);
1847
+ }
1848
+ function useEvalDefaultValueHook(useEvalExpressionHook, definition) {
1849
+ var dynamicValue = useEvalDynamicHook(definition, exports.DynamicPropertyType.DefaultValue, useEvalExpressionHook);
1850
+ return makeDynamicPropertyHook(dynamicValue, function (ctx, _ref3) {
1851
+ var definition = _ref3.definition;
1852
+ return core.useComputed(calcDefault);
1853
+ function calcDefault() {
1854
+ var _ctx$dataNode2;
1855
+ var _ref4 = isDataControl(definition) ? [definition.required, definition.defaultValue] : [false, undefined],
1856
+ required = _ref4[0],
1857
+ dcv = _ref4[1];
1858
+ var field = (_ctx$dataNode2 = ctx.dataNode) == null ? void 0 : _ctx$dataNode2.schema.field;
1859
+ return dcv != null ? dcv : field ? ctx.dataNode.elementIndex != null ? elementValueForField(field) : defaultValueForField(field, required) : undefined;
1860
+ }
1861
+ }, {
1862
+ definition: definition
1863
+ });
1864
+ }
1865
+ function useDataExpression(fvExpr, node, coerce) {
1866
+ if (coerce === void 0) {
1867
+ coerce = function coerce(x) {
1868
+ return x;
1869
+ };
1870
+ }
1871
+ var otherField = schemaDataForFieldRef(fvExpr.field, node);
1872
+ return core.useCalculatedControl(function () {
1873
+ var _otherField$control;
1874
+ return coerce((_otherField$control = otherField.control) == null ? void 0 : _otherField$control.value);
1875
+ });
1876
+ }
1877
+ function useDataMatchExpression(fvExpr, node, coerce) {
1878
+ if (coerce === void 0) {
1879
+ coerce = function coerce(x) {
1880
+ return x;
1881
+ };
1882
+ }
1883
+ var otherField = schemaDataForFieldRef(fvExpr.field, node);
1884
+ return core.useCalculatedControl(function () {
1885
+ var _otherField$control2;
1886
+ var fv = (_otherField$control2 = otherField.control) == null ? void 0 : _otherField$control2.value;
1887
+ return coerce(Array.isArray(fv) ? fv.includes(fvExpr.value) : fv === fvExpr.value);
1888
+ });
1889
+ }
1890
+ function useNotEmptyExpression(fvExpr, node, schemaInterface, coerce) {
1891
+ if (coerce === void 0) {
1892
+ coerce = function coerce(x) {
1893
+ return x;
1894
+ };
1895
+ }
1896
+ var otherField = schemaDataForFieldRef(fvExpr.field, node);
1897
+ return core.useCalculatedControl(function () {
1898
+ var _otherField$control3;
1899
+ var fv = (_otherField$control3 = otherField.control) == null ? void 0 : _otherField$control3.value;
1900
+ var field = otherField.schema.field;
1901
+ return coerce(field && !schemaInterface.isEmptyValue(field, fv));
1902
+ });
1903
+ }
1904
+ function defaultEvalHooks(expr, context, coerce) {
1905
+ switch (expr.type) {
1906
+ case exports.ExpressionType.Jsonata:
1907
+ var bindings = core.useComputed(function () {
1908
+ return {
1909
+ formData: context.formData
1910
+ };
1911
+ });
1912
+ return useJsonataExpression(expr.expression, getRootDataNode(context.parentNode).control, getJsonPath(context.parentNode), bindings, coerce);
1913
+ case exports.ExpressionType.UUID:
1914
+ return useUuidExpression(coerce);
1915
+ case exports.ExpressionType.Data:
1916
+ return useDataExpression(expr, context.parentNode, coerce);
1917
+ case exports.ExpressionType.DataMatch:
1918
+ return useDataMatchExpression(expr, context.parentNode, coerce);
1919
+ case exports.ExpressionType.NotEmpty:
1920
+ return useNotEmptyExpression(expr, context.parentNode, context.schemaInterface, coerce);
1921
+ default:
1922
+ return core.useControl(undefined);
1923
+ }
1924
+ }
1925
+ var defaultUseEvalExpressionHook = makeEvalExpressionHook(defaultEvalHooks);
1926
+ function makeEvalExpressionHook(f) {
1927
+ return function (expr, coerce) {
1928
+ return {
1929
+ deps: expr == null ? void 0 : expr.type,
1930
+ state: expr && expr.type ? expr : undefined,
1931
+ runHook: function runHook(ctx, state) {
1932
+ return state ? f(state, ctx, coerce) : undefined;
1933
+ }
1934
+ };
1935
+ };
1936
+ }
1937
+ function useEvalDynamicBoolHook(definition, type, useEvalExpressionHook) {
1938
+ return useEvalDynamicHook(definition, type, useEvalExpressionHook, function (x) {
1939
+ return Boolean(x);
1940
+ });
1941
+ }
1942
+ function useEvalDynamicHook(definition, type, useEvalExpressionHook, coerce) {
1943
+ var _definition$dynamic;
1944
+ if (coerce === void 0) {
1945
+ coerce = function coerce(x) {
1946
+ return x;
1947
+ };
1948
+ }
1949
+ var expression = (_definition$dynamic = definition.dynamic) == null ? void 0 : _definition$dynamic.find(function (x) {
1950
+ return x.type === type;
1951
+ });
1952
+ return useEvalExpressionHook(expression == null ? void 0 : expression.expr, coerce);
1953
+ }
1954
+ function matchesType(context) {
1955
+ var types = context.schema.field.onlyForTypes;
1956
+ if (types == null || types.length === 0) return true;
1957
+ var parent = context.parent;
1958
+ var typeNode = parent.schema.getChildNodes().find(function (x) {
1959
+ return x.field.isTypeField;
1960
+ });
1961
+ if (typeNode == null) return true;
1962
+ var typeField = parent.getChild(typeNode).control;
1963
+ return typeField && types.includes(typeField.value);
1964
+ }
1965
+ function hideDisplayOnly(context, schemaInterface, definition) {
1966
+ var _context$control;
1967
+ var displayOptions = getDisplayOnlyOptions(definition);
1968
+ return displayOptions && !displayOptions.emptyText && schemaInterface.isEmptyValue(context.schema.field, (_context$control = context.control) == null ? void 0 : _context$control.value);
1969
+ }
1970
+ function useUuidExpression(coerce) {
1971
+ if (coerce === void 0) {
1972
+ coerce = function coerce(x) {
1973
+ return x;
1974
+ };
1975
+ }
1976
+ return core.useControl(function () {
1977
+ return coerce(uuid.v4());
1978
+ });
1979
+ }
1980
+ function useJsonataExpression(jExpr, data, path, bindings, coerce) {
1981
+ if (coerce === void 0) {
1982
+ coerce = function coerce(x) {
1983
+ return x;
1984
+ };
1985
+ }
1986
+ var pathString = jsonPathString(path, function (x) {
1987
+ return "#$i[" + x + "]";
1988
+ });
1989
+ var fullExpr = pathString ? pathString + ".(" + jExpr + ")" : jExpr;
1990
+ var compiledExpr = React.useMemo(function () {
1991
+ try {
1992
+ return jsonata__default["default"](jExpr ? fullExpr : "null");
1993
+ } catch (e) {
1994
+ console.error(e);
1995
+ return jsonata__default["default"]("null");
1996
+ }
1997
+ }, [fullExpr]);
1998
+ var control = core.useControl();
1999
+ var listenerRef = React.useRef();
2000
+ var updateRef = React.useRef(0);
2001
+ var _useRefState = core.useRefState(function () {
2002
+ return new core.SubscriptionTracker(function () {
2003
+ var l = listenerRef.current;
2004
+ if (l) {
2005
+ listenerRef.current = undefined;
2006
+ core.addAfterChangesCallback(function () {
2007
+ listenerRef.current = l;
2008
+ l();
2009
+ });
2010
+ }
2011
+ });
2012
+ }),
2013
+ ref = _useRefState[0];
2014
+ React.useEffect(function () {
2015
+ var apply = function apply() {
2016
+ try {
2017
+ var tracker = ref.current;
2018
+ var _temp = _finallyRethrows(function () {
2019
+ updateRef.current++;
2020
+ var _coerce = coerce;
2021
+ return Promise.resolve(compiledExpr.evaluate(core.trackedValue(data, tracker.collectUsage), core.collectChanges(tracker.collectUsage, function () {
2022
+ return bindings == null ? void 0 : bindings.value;
2023
+ }))).then(function (_compiledExpr$evaluat) {
2024
+ control.value = _coerce(_compiledExpr$evaluat);
2025
+ });
2026
+ }, function (_wasThrown, _result) {
2027
+ if (! --updateRef.current) tracker.update();
2028
+ if (_wasThrown) throw _result;
2029
+ return _result;
2030
+ });
2031
+ return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
2032
+ } catch (e) {
2033
+ return Promise.reject(e);
2034
+ }
2035
+ };
2036
+ listenerRef.current = apply;
2037
+ apply();
2038
+ }, [compiledExpr]);
2039
+ React.useEffect(function () {
2040
+ return function () {
2041
+ listenerRef.current = undefined;
2042
+ ref.current.cleanup();
2043
+ };
2044
+ }, []);
2045
+ return control;
2046
+ }
2047
+ function useEvalActionHook(useExpr, definition) {
2048
+ var dynamicValue = useEvalDynamicHook(definition, exports.DynamicPropertyType.ActionData, useExpr);
2049
+ return makeDynamicPropertyHook(dynamicValue, function () {
2050
+ return core.useControl(null);
2051
+ }, undefined);
2052
+ }
2053
+ function useEvalLabelText(useExpr, definition) {
2054
+ var dynamicValue = useEvalDynamicHook(definition, exports.DynamicPropertyType.Label, useExpr);
2055
+ return makeDynamicPropertyHook(dynamicValue, function () {
2056
+ return core.useControl(null);
2057
+ }, undefined);
2058
+ }
2059
+ function makeDynamicPropertyHook(dynamicValue, makeDefault, state, deps) {
2060
+ return {
2061
+ deps: deps === undefined ? dynamicValue.deps : [deps, dynamicValue.deps].map(toDepString).join(),
2062
+ runHook: function runHook(ctx, s) {
2063
+ var _dynamicValue$runHook, _dynamicValue$runHook2;
2064
+ return (_dynamicValue$runHook = (_dynamicValue$runHook2 = dynamicValue.runHook(ctx, s[0])) == null ? void 0 : _dynamicValue$runHook2.as()) != null ? _dynamicValue$runHook : makeDefault(ctx, s[1]);
2065
+ },
2066
+ state: [dynamicValue.state, state]
2067
+ };
2068
+ }
2069
+
2070
+ function useMakeValidationHook(definition, useValidatorFor) {
2071
+ var _dd$validators;
2072
+ if (useValidatorFor === void 0) {
2073
+ useValidatorFor = useDefaultValidator;
2074
+ }
2075
+ var dd = isDataControl(definition) ? definition : undefined;
2076
+ var refData = useUpdatedRef({
2077
+ dd: dd,
2078
+ useValidatorFor: useValidatorFor
2079
+ });
2080
+ var depString = dd ? makeHookDepString((_dd$validators = dd.validators) != null ? _dd$validators : [], function (x) {
2081
+ return x.type;
2082
+ }) : "~";
2083
+ return React.useCallback(function (ctx) {
2084
+ var _ctx$dataContext$data, _ctx$dataContext$data2, _dd$validators2;
2085
+ var dd = refData.current.dd;
2086
+ if (!dd) return;
2087
+ var field = (_ctx$dataContext$data = (_ctx$dataContext$data2 = ctx.dataContext.dataNode) == null ? void 0 : _ctx$dataContext$data2.schema.field) != null ? _ctx$dataContext$data : {
2088
+ field: "__missing",
2089
+ type: exports.FieldType.Any
2090
+ };
2091
+ var control = ctx.control,
2092
+ hiddenControl = ctx.hiddenControl,
2093
+ schemaInterface = ctx.dataContext.schemaInterface;
2094
+ core.useValueChangeEffect(control, function () {
2095
+ return control.setError("default", "");
2096
+ });
2097
+ if (dd.required) core.useValidator(control, function (v) {
2098
+ return !hiddenControl.value && schemaInterface.isEmptyValue(field, v) ? schemaInterface.validationMessageText(field, exports.ValidationMessageType.NotEmpty, false, true) : null;
2099
+ }, "required");
2100
+ (_dd$validators2 = dd.validators) == null || _dd$validators2.forEach(function (v, i) {
2101
+ return useValidatorFor(v, _extends({}, ctx, {
2102
+ index: i,
2103
+ field: field,
2104
+ definition: dd
2105
+ }));
2106
+ });
2107
+ }, [!!dd, dd == null ? void 0 : dd.required, depString, useValidatorFor]);
2108
+ }
2109
+ function useDefaultValidator(validator, ctx) {
2110
+ switch (validator.type) {
2111
+ case exports.ValidatorType.Length:
2112
+ useLengthValidator(validator, ctx);
2113
+ break;
2114
+ case exports.ValidatorType.Jsonata:
2115
+ useJsonataValidator(validator, ctx);
2116
+ break;
2117
+ case exports.ValidatorType.Date:
2118
+ useDateValidator(validator, ctx);
2119
+ break;
2120
+ }
2121
+ }
2122
+ function useJsonataValidator(validator, ctx) {
2123
+ var sdn = ctx.dataContext.parentNode;
2124
+ var errorMsg = useJsonataExpression(validator.expression, getRootDataNode(sdn).control, getJsonPath(sdn), undefined, function (v) {
2125
+ return v == null ? null : typeof v === "string" ? v : JSON.stringify(v);
2126
+ });
2127
+ core.useValidator(ctx.control, function () {
2128
+ return !ctx.hiddenControl.value ? errorMsg.value : null;
2129
+ }, "jsonata" + ctx.index);
2130
+ }
2131
+ function useLengthValidator(lv, ctx) {
2132
+ var control = ctx.control,
2133
+ schemaInterface = ctx.dataContext.schemaInterface,
2134
+ hiddenControl = ctx.hiddenControl,
2135
+ field = ctx.field;
2136
+ core.useValidator(control, function (v) {
2137
+ var len = schemaInterface.controlLength(field, control);
2138
+ var hidden = hiddenControl.value;
2139
+ if (hidden) {
2140
+ return undefined;
2141
+ }
2142
+ if (lv.min != null && len < lv.min) {
2143
+ if (field != null && field.collection) {
2144
+ control.setValue(function (v) {
2145
+ return Array.isArray(v) ? v.concat(Array.from({
2146
+ length: lv.min - v.length
2147
+ })) : Array.from({
2148
+ length: lv.min
2149
+ });
2150
+ });
2151
+ } else {
2152
+ return schemaInterface.validationMessageText(field, exports.ValidationMessageType.MinLength, len, lv.min);
2153
+ }
2154
+ } else if (lv.max != null && len > lv.max) {
2155
+ return schemaInterface.validationMessageText(field, exports.ValidationMessageType.MaxLength, len, lv.max);
2156
+ }
2157
+ return undefined;
2158
+ }, "length" + ctx.index);
2159
+ }
2160
+ function useDateValidator(dv, ctx) {
2161
+ var control = ctx.control,
2162
+ field = ctx.field,
2163
+ index = ctx.index,
2164
+ schemaInterface = ctx.dataContext.schemaInterface;
2165
+ var comparisonDate;
2166
+ if (dv.fixedDate) {
2167
+ comparisonDate = schemaInterface.parseToMillis(field, dv.fixedDate);
2168
+ } else {
2169
+ var nowDate = new Date();
2170
+ comparisonDate = Date.UTC(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate());
2171
+ if (dv.daysFromCurrent) {
2172
+ comparisonDate += dv.daysFromCurrent * 86400000;
2173
+ }
2174
+ }
2175
+ core.useValidator(control, function (v) {
2176
+ if (v) {
2177
+ var selDate = schemaInterface.parseToMillis(field, v);
2178
+ var notAfter = dv.comparison === exports.DateComparison.NotAfter;
2179
+ if (notAfter ? selDate > comparisonDate : selDate < comparisonDate) {
2180
+ return schemaInterface.validationMessageText(field, notAfter ? exports.ValidationMessageType.NotAfterDate : exports.ValidationMessageType.NotBeforeDate, selDate, comparisonDate);
2181
+ }
2182
+ }
2183
+ return null;
2184
+ }, "date" + index);
2185
+ }
2186
+
2187
+ var DefaultSchemaInterface = /*#__PURE__*/function () {
2188
+ function DefaultSchemaInterface(boolStrings, parseDateTime) {
2189
+ if (boolStrings === void 0) {
2190
+ boolStrings = ["No", "Yes"];
2191
+ }
2192
+ if (parseDateTime === void 0) {
2193
+ parseDateTime = function parseDateTime(s) {
2194
+ return Date.parse(s);
2195
+ };
2196
+ }
2197
+ this.boolStrings = void 0;
2198
+ this.parseDateTime = void 0;
2199
+ this.boolStrings = boolStrings;
2200
+ this.parseDateTime = parseDateTime;
2201
+ }
2202
+ var _proto = DefaultSchemaInterface.prototype;
2203
+ _proto.parseToMillis = function parseToMillis(field, v) {
2204
+ return this.parseDateTime(v);
2205
+ };
2206
+ _proto.validationMessageText = function validationMessageText(field, messageType, actual, expected) {
2207
+ switch (messageType) {
2208
+ case exports.ValidationMessageType.NotEmpty:
2209
+ return "Please enter a value";
2210
+ case exports.ValidationMessageType.MinLength:
2211
+ return "Length must be at least " + expected;
2212
+ case exports.ValidationMessageType.MaxLength:
2213
+ return "Length must be less than " + expected;
2214
+ case exports.ValidationMessageType.NotBeforeDate:
2215
+ return "Date must not be before " + new Date(expected).toDateString();
2216
+ case exports.ValidationMessageType.NotAfterDate:
2217
+ return "Date must not be after " + new Date(expected).toDateString();
2218
+ default:
2219
+ return "Unknown error";
2220
+ }
2221
+ };
2222
+ _proto.getDataOptions = function getDataOptions(node) {
2223
+ return this.getNodeOptions(node.schema);
2224
+ };
2225
+ _proto.getNodeOptions = function getNodeOptions(node) {
2226
+ return this.getOptions(node.field);
2227
+ };
2228
+ _proto.getOptions = function getOptions(_ref) {
2229
+ var options = _ref.options;
2230
+ return options && options.length > 0 ? options : null;
2231
+ };
2232
+ _proto.getFilterOptions = function getFilterOptions(array, field) {
2233
+ return this.getNodeOptions(field);
2234
+ };
2235
+ _proto.isEmptyValue = function isEmptyValue(f, value) {
2236
+ if (f.collection) return Array.isArray(value) ? value.length === 0 : value == null;
2237
+ switch (f.type) {
2238
+ case exports.FieldType.String:
2239
+ case exports.FieldType.DateTime:
2240
+ case exports.FieldType.Date:
2241
+ case exports.FieldType.Time:
2242
+ return !value;
2243
+ default:
2244
+ return value == null;
2245
+ }
2246
+ };
2247
+ _proto.searchText = function searchText(field, value) {
2248
+ var _this$textValue$toLow, _this$textValue;
2249
+ return (_this$textValue$toLow = (_this$textValue = this.textValue(field, value)) == null ? void 0 : _this$textValue.toLowerCase()) != null ? _this$textValue$toLow : "";
2250
+ };
2251
+ _proto.textValue = function textValue(field, value, element) {
2252
+ var options = this.getOptions(field);
2253
+ var option = options == null ? void 0 : options.find(function (x) {
2254
+ return x.value === value;
2255
+ });
2256
+ if (option) return option.name;
2257
+ switch (field.type) {
2258
+ case exports.FieldType.Date:
2259
+ return value ? new Date(value).toLocaleDateString() : undefined;
2260
+ case exports.FieldType.DateTime:
2261
+ return value ? new Date(this.parseToMillis(field, value)).toLocaleString() : undefined;
2262
+ case exports.FieldType.Time:
2263
+ return value ? new Date("1970-01-01T" + value).toLocaleTimeString() : undefined;
2264
+ case exports.FieldType.Bool:
2265
+ return this.boolStrings[value ? 1 : 0];
2266
+ default:
2267
+ return value != null ? value.toString() : undefined;
2268
+ }
2269
+ };
2270
+ _proto.controlLength = function controlLength(f, control) {
2271
+ var _control$elements$len, _control$elements;
2272
+ return f.collection ? (_control$elements$len = (_control$elements = control.elements) == null ? void 0 : _control$elements.length) != null ? _control$elements$len : 0 : this.valueLength(f, control.value);
2273
+ };
2274
+ _proto.valueLength = function valueLength(field, value) {
2275
+ var _ref2;
2276
+ return (_ref2 = value && (value == null ? void 0 : value.length)) != null ? _ref2 : 0;
2277
+ };
2278
+ _proto.compareValue = function compareValue(field, v1, v2) {
2279
+ if (v1 == null) return v2 == null ? 0 : 1;
2280
+ if (v2 == null) return -1;
2281
+ switch (field.type) {
2282
+ case exports.FieldType.Date:
2283
+ case exports.FieldType.DateTime:
2284
+ case exports.FieldType.Time:
2285
+ case exports.FieldType.String:
2286
+ return v1.localeCompare(v2);
2287
+ case exports.FieldType.Bool:
2288
+ return v1 ? v2 ? 0 : 1 : -1;
2289
+ case exports.FieldType.Int:
2290
+ case exports.FieldType.Double:
2291
+ return v1 - v2;
2292
+ default:
2293
+ return 0;
2294
+ }
2295
+ };
2296
+ _proto.compoundFieldSetup = function compoundFieldSetup(f) {
2297
+ var _this = this;
2298
+ return f.getChildNodes().map(function (x) {
2299
+ var field = x.field.field;
2300
+ return [field, _this.makeControlSetup(x)];
2301
+ });
2302
+ };
2303
+ _proto.compoundFieldEquality = function compoundFieldEquality(f) {
2304
+ var _this2 = this;
2305
+ return f.getChildNodes().map(function (x) {
2306
+ var field = x.field.field;
2307
+ return [field, function (a, b) {
2308
+ return _this2.makeEqualityFunc(x)(a[field], b[field]);
2309
+ }];
2310
+ });
2311
+ };
2312
+ _proto.makeEqualityFunc = function makeEqualityFunc(field, element) {
2313
+ if (field.field.collection && !element) {
2314
+ var elemEqual = this.makeEqualityFunc(field, true);
2315
+ return function (a, b) {
2316
+ if (a === b) return true;
2317
+ if (a == null || b == null) return false;
2318
+ if (a.length !== b.length) return false;
2319
+ for (var i = 0; i < a.length; i++) {
2320
+ if (!elemEqual(a[i], b[i])) return false;
2321
+ }
2322
+ return true;
2323
+ };
2324
+ }
2325
+ switch (field.field.type) {
2326
+ case exports.FieldType.Compound:
2327
+ var allChecks = this.compoundFieldEquality(field);
2328
+ return function (a, b) {
2329
+ return a === b || a != null && b != null && allChecks.every(function (x) {
2330
+ return x[1](a, b);
2331
+ });
2332
+ };
2333
+ default:
2334
+ return function (a, b) {
2335
+ return a === b;
2336
+ };
2337
+ }
2338
+ };
2339
+ _proto.makeControlSetup = function makeControlSetup(field, element) {
2340
+ var setup = {
2341
+ equals: this.makeEqualityFunc(field, element)
2342
+ };
2343
+ if (field.field.collection && !element) {
2344
+ setup.elems = this.makeControlSetup(field, true);
2345
+ return setup;
2346
+ }
2347
+ switch (field.field.type) {
2348
+ case exports.FieldType.Compound:
2349
+ setup.fields = Object.fromEntries(this.compoundFieldSetup(field));
2350
+ }
2351
+ return setup;
2352
+ };
2353
+ return DefaultSchemaInterface;
2354
+ }();
2355
+ var defaultSchemaInterface = new DefaultSchemaInterface();
2356
+
2357
+ var _excluded = ["parentDataNode"],
2358
+ _excluded2 = ["definition", "control", "formOptions", "style", "allowedOptions", "schemaInterface", "styleClass"];
2359
+ var AppendAdornmentPriority = 0;
2360
+ var WrapAdornmentPriority = 1000;
2361
+ /**
2362
+ * Enum representing the types of labels that can be rendered.
2363
+ */
2364
+ exports.LabelType = void 0;
2365
+ (function (LabelType) {
2366
+ /**
2367
+ * Label for a control.
2368
+ */
2369
+ LabelType[LabelType["Control"] = 0] = "Control";
2370
+ /**
2371
+ * Label for a group.
2372
+ */
2373
+ LabelType[LabelType["Group"] = 1] = "Group";
2374
+ /**
2375
+ * Label for text.
2376
+ */
2377
+ LabelType[LabelType["Text"] = 2] = "Text";
2378
+ })(exports.LabelType || (exports.LabelType = {}));
2379
+ function useControlRenderer(definition, fields, renderer, options) {
2380
+ if (options === void 0) {
2381
+ options = {};
2382
+ }
2383
+ var r = useUpdatedRef({
2384
+ definition: definition,
2385
+ fields: fields,
2386
+ renderer: renderer,
2387
+ options: options
2388
+ });
2389
+ return React.useCallback(function (_ref) {
2390
+ var control = _ref.control,
2391
+ parentPath = _ref.parentPath;
2392
+ return React__default["default"].createElement(ControlRenderer, _extends({}, r.current, {
2393
+ control: control,
2394
+ parentPath: parentPath
2395
+ }));
2396
+ }, [r]);
2397
+ }
2398
+ function useControlRendererComponent(controlOrFormNode, renderer, options, parentDataNode) {
2399
+ var _options$useDataHook, _options$schemaInterf, _options$useEvalExpre;
2400
+ if (options === void 0) {
2401
+ options = {};
2402
+ }
2403
+ var _ref2 = controlOrFormNode instanceof FormNode ? [controlOrFormNode.definition, controlOrFormNode] : [controlOrFormNode, legacyFormNode(controlOrFormNode)],
2404
+ definition = _ref2[0],
2405
+ formNode = _ref2[1];
2406
+ var dataProps = (_options$useDataHook = options.useDataHook == null ? void 0 : options.useDataHook(definition)) != null ? _options$useDataHook : defaultDataProps;
2407
+ var elementIndex = options.elementIndex;
2408
+ var schemaInterface = (_options$schemaInterf = options.schemaInterface) != null ? _options$schemaInterf : defaultSchemaInterface;
2409
+ var useExpr = (_options$useEvalExpre = options.useEvalExpressionHook) != null ? _options$useEvalExpre : defaultUseEvalExpressionHook;
2410
+ var dataNode;
2411
+ if (elementIndex != null) {
2412
+ dataNode = parentDataNode.getChildElement(elementIndex);
2413
+ } else {
2414
+ dataNode = lookupDataNode(definition, parentDataNode);
2415
+ }
2416
+ var useValidation = useMakeValidationHook(definition, options.useValidationHook);
2417
+ var dynamicHooks = useDynamicHooks({
2418
+ defaultValueControl: useEvalDefaultValueHook(useExpr, definition),
2419
+ visibleControl: useEvalVisibilityHook(useExpr, definition),
2420
+ readonlyControl: useEvalReadonlyHook(useExpr, definition),
2421
+ disabledControl: useEvalDisabledHook(useExpr, definition),
2422
+ allowedOptions: useEvalAllowedOptionsHook(useExpr, definition),
2423
+ labelText: useEvalLabelText(useExpr, definition),
2424
+ actionData: useEvalActionHook(useExpr, definition),
2425
+ customStyle: useEvalStyleHook(useExpr, exports.DynamicPropertyType.Style, definition),
2426
+ layoutStyle: useEvalStyleHook(useExpr, exports.DynamicPropertyType.LayoutStyle, definition),
2427
+ displayControl: useEvalDisplayHook(useExpr, definition)
2428
+ });
2429
+ var r = useUpdatedRef({
2430
+ options: options,
2431
+ definition: definition,
2432
+ elementIndex: elementIndex,
2433
+ parentDataNode: parentDataNode,
2434
+ dataNode: dataNode,
2435
+ formNode: formNode
2436
+ });
2437
+ var Component = React.useCallback(function () {
2438
+ var stopTracking = core.useComponentTracking();
2439
+ try {
2440
+ var _options$formData, _dataNode, _definition$adornment2, _definition$adornment3, _options$adjustLayout;
2441
+ var _r$current = r.current,
2442
+ c = _r$current.definition,
2443
+ _options = _r$current.options,
2444
+ _elementIndex = _r$current.elementIndex,
2445
+ pdn = _r$current.parentDataNode,
2446
+ dn = _r$current.dataNode,
2447
+ _formNode = _r$current.formNode;
2448
+ var formData = (_options$formData = _options.formData) != null ? _options$formData : {};
2449
+ var dataContext = {
2450
+ schemaInterface: schemaInterface,
2451
+ dataNode: dn,
2452
+ parentNode: pdn,
2453
+ formData: formData
2454
+ };
2455
+ var _dynamicHooks = dynamicHooks(dataContext),
2456
+ readonlyControl = _dynamicHooks.readonlyControl,
2457
+ disabledControl = _dynamicHooks.disabledControl,
2458
+ visibleControl = _dynamicHooks.visibleControl,
2459
+ displayControl = _dynamicHooks.displayControl,
2460
+ layoutStyle = _dynamicHooks.layoutStyle,
2461
+ labelText = _dynamicHooks.labelText,
2462
+ customStyle = _dynamicHooks.customStyle,
2463
+ allowedOptions = _dynamicHooks.allowedOptions,
2464
+ defaultValueControl = _dynamicHooks.defaultValueControl,
2465
+ actionData = _dynamicHooks.actionData;
2466
+ var visible = visibleControl.current.value;
2467
+ var visibility = core.useControl(function () {
2468
+ return visible != null ? {
2469
+ visible: visible,
2470
+ showing: visible
2471
+ } : undefined;
2472
+ });
2473
+ core.useControlEffect(function () {
2474
+ return visibleControl.value;
2475
+ }, function (visible) {
2476
+ if (visible != null) visibility.setValue(function (ex) {
2477
+ return {
2478
+ visible: visible,
2479
+ showing: ex ? ex.showing : visible
2480
+ };
2481
+ });
2482
+ });
2483
+ var parentControl = parentDataNode.control;
2484
+ var control = (_dataNode = dataNode) == null ? void 0 : _dataNode.control;
2485
+ core.useControlEffect(function () {
2486
+ var _definition$adornment, _definition$renderOpt;
2487
+ return [visibility.value, defaultValueControl.value, control == null ? void 0 : control.isNull, isDataControl(definition) && definition.dontClearHidden, ((_definition$adornment = definition.adornments) == null ? void 0 : _definition$adornment.some(function (x) {
2488
+ return x.type === exports.ControlAdornmentType.Optional;
2489
+ })) || isDataControl(definition) && ((_definition$renderOpt = definition.renderOptions) == null ? void 0 : _definition$renderOpt.type) == exports.DataRenderType.NullToggle, parentControl.isNull, _options.hidden, readonlyControl.value];
2490
+ }, function (_ref3) {
2491
+ var vc = _ref3[0],
2492
+ dv = _ref3[1],
2493
+ _ = _ref3[2],
2494
+ dontClear = _ref3[3],
2495
+ dontDefault = _ref3[4],
2496
+ parentNull = _ref3[5],
2497
+ hidden = _ref3[6],
2498
+ ro = _ref3[7];
2499
+ if (!ro) {
2500
+ if (control) {
2501
+ if (vc && vc.visible === vc.showing) {
2502
+ if (hidden || !vc.visible) {
2503
+ control.setValue(function (x) {
2504
+ return _options.clearHidden && !dontClear ? undefined : x == null && dontClear && !dontDefault ? dv : x;
2505
+ });
2506
+ } else if (!dontDefault) control.setValue(function (x) {
2507
+ return x != null ? x : dv;
2508
+ });
2509
+ }
2510
+ } else if (parentNull) {
2511
+ parentControl.setValue(function (x) {
2512
+ return x != null ? x : {};
2513
+ });
2514
+ }
2515
+ }
2516
+ }, true);
2517
+ var myOptionsControl = core.useComputed(function () {
2518
+ var _visibility$fields;
2519
+ return {
2520
+ hidden: _options.hidden || !((_visibility$fields = visibility.fields) != null && _visibility$fields.showing.value),
2521
+ readonly: _options.readonly || readonlyControl.value,
2522
+ disabled: _options.disabled || disabledControl.value,
2523
+ displayOnly: _options.displayOnly || isControlDisplayOnly(c)
2524
+ };
2525
+ });
2526
+ var myOptions = core.trackedValue(myOptionsControl);
2527
+ useValidation({
2528
+ control: control != null ? control : core.newControl(null),
2529
+ hiddenControl: myOptionsControl.fields.hidden,
2530
+ dataContext: dataContext
2531
+ });
2532
+ var childOptions = _extends({}, _options, myOptions, {
2533
+ elementIndex: undefined,
2534
+ formData: formData
2535
+ });
2536
+ React.useEffect(function () {
2537
+ if (control && typeof myOptions.disabled === "boolean" && control.disabled != myOptions.disabled) control.disabled = myOptions.disabled;
2538
+ }, [control, myOptions.disabled]);
2539
+ if (parentControl.isNull) return React__default["default"].createElement(React__default["default"].Fragment, null);
2540
+ var adornments = (_definition$adornment2 = (_definition$adornment3 = definition.adornments) == null ? void 0 : _definition$adornment3.map(function (x) {
2541
+ return renderer.renderAdornment({
2542
+ adornment: x,
2543
+ dataContext: dataContext,
2544
+ useExpr: useExpr,
2545
+ formOptions: myOptions
2546
+ });
2547
+ })) != null ? _definition$adornment2 : [];
2548
+ var labelAndChildren = renderControlLayout({
2549
+ formNode: _formNode,
2550
+ definition: c,
2551
+ renderer: renderer,
2552
+ renderChild: function renderChild(k, child, options) {
2553
+ var _ref5;
2554
+ var overrideClasses = getGroupClassOverrides(c);
2555
+ var _ref4 = options != null ? options : {},
2556
+ parentDataNode = _ref4.parentDataNode,
2557
+ renderOptions = _objectWithoutPropertiesLoose(_ref4, _excluded);
2558
+ var dContext = (_ref5 = parentDataNode != null ? parentDataNode : dataContext.dataNode) != null ? _ref5 : dataContext.parentNode;
2559
+ return React__default["default"].createElement(NewControlRenderer, {
2560
+ key: k,
2561
+ definition: child,
2562
+ renderer: renderer,
2563
+ parentDataNode: dContext,
2564
+ options: _extends({}, childOptions, overrideClasses, renderOptions)
2565
+ });
2566
+ },
2567
+ createDataProps: dataProps,
2568
+ formOptions: myOptions,
2569
+ dataContext: dataContext,
2570
+ control: displayControl != null ? displayControl : control,
2571
+ elementIndex: _elementIndex,
2572
+ schemaInterface: schemaInterface,
2573
+ labelText: labelText,
2574
+ displayControl: displayControl,
2575
+ style: customStyle.value,
2576
+ allowedOptions: allowedOptions,
2577
+ customDisplay: _options.customDisplay,
2578
+ actionDataControl: actionData,
2579
+ actionOnClick: _options.actionOnClick,
2580
+ styleClass: _options.styleClass,
2581
+ labelClass: _options.labelClass,
2582
+ useEvalExpression: useExpr,
2583
+ useChildVisibility: function useChildVisibility(childDef, parentNode, dontOverride) {
2584
+ var _ref6;
2585
+ return useEvalVisibilityHook(useExpr, childDef, !dontOverride ? lookupDataNode(childDef, (_ref6 = parentNode != null ? parentNode : dataNode) != null ? _ref6 : parentDataNode) : undefined);
2586
+ }
2587
+ });
2588
+ var layoutProps = _extends({}, labelAndChildren, {
2589
+ adornments: adornments,
2590
+ className: rendererClass(_options.layoutClass, c.layoutClass),
2591
+ style: layoutStyle.value
2592
+ });
2593
+ var renderedControl = renderer.renderLayout((_options$adjustLayout = _options.adjustLayout == null ? void 0 : _options.adjustLayout(dataContext, layoutProps)) != null ? _options$adjustLayout : layoutProps);
2594
+ return renderer.renderVisibility(_extends({
2595
+ visibility: visibility
2596
+ }, renderedControl));
2597
+ } finally {
2598
+ stopTracking();
2599
+ }
2600
+ }, [r, dataProps, useValidation, renderer, schemaInterface, dynamicHooks]);
2601
+ Component.displayName = "RenderControl";
2602
+ return Component;
2603
+ }
2604
+ function ControlRenderer(_ref7) {
2605
+ var definition = _ref7.definition,
2606
+ fields = _ref7.fields,
2607
+ renderer = _ref7.renderer,
2608
+ options = _ref7.options,
2609
+ control = _ref7.control;
2610
+ var schemaDataNode = makeSchemaDataNode(createSchemaLookup({
2611
+ "": fields
2612
+ }).getSchema(""), control);
2613
+ var Render = useControlRendererComponent(definition, renderer, options, schemaDataNode);
2614
+ return React__default["default"].createElement(Render, null);
2615
+ }
2616
+ function NewControlRenderer(_ref8) {
2617
+ var definition = _ref8.definition,
2618
+ renderer = _ref8.renderer,
2619
+ options = _ref8.options,
2620
+ parentDataNode = _ref8.parentDataNode;
2621
+ var Render = useControlRendererComponent(definition, renderer, options, parentDataNode);
2622
+ return React__default["default"].createElement(Render, null);
2623
+ }
2624
+ function defaultDataProps(_ref9) {
2625
+ var _allowedOptions$value, _definition$renderOpt2;
2626
+ var definition = _ref9.definition,
2627
+ control = _ref9.control,
2628
+ formOptions = _ref9.formOptions,
2629
+ style = _ref9.style,
2630
+ allowedOptions = _ref9.allowedOptions,
2631
+ _ref9$schemaInterface = _ref9.schemaInterface,
2632
+ schemaInterface = _ref9$schemaInterface === void 0 ? defaultSchemaInterface : _ref9$schemaInterface,
2633
+ styleClass = _ref9.styleClass,
2634
+ props = _objectWithoutPropertiesLoose(_ref9, _excluded2);
2635
+ var dataNode = props.dataContext.dataNode;
2636
+ var field = dataNode.schema.field;
2637
+ var className = rendererClass(styleClass, definition.styleClass);
2638
+ var displayOnly = !!formOptions.displayOnly;
2639
+ var required = !!definition.required && !displayOnly;
2640
+ var fieldOptions = schemaInterface.getDataOptions(dataNode);
2641
+ var _allowed = (_allowedOptions$value = allowedOptions == null ? void 0 : allowedOptions.value) != null ? _allowedOptions$value : [];
2642
+ var allowed = Array.isArray(_allowed) ? _allowed : [_allowed];
2643
+ return _extends({
2644
+ dataNode: dataNode,
2645
+ definition: definition,
2646
+ control: control,
2647
+ field: field,
2648
+ id: "c" + control.uniqueId,
2649
+ options: allowed.length > 0 ? allowed.map(function (x) {
2650
+ var _fieldOptions$find;
2651
+ return typeof x === "object" ? x : (_fieldOptions$find = fieldOptions == null ? void 0 : fieldOptions.find(function (y) {
2652
+ return y.value == x;
2653
+ })) != null ? _fieldOptions$find : {
2654
+ name: x.toString(),
2655
+ value: x
2656
+ };
2657
+ }).filter(function (x) {
2658
+ return x != null;
2659
+ }) : fieldOptions,
2660
+ readonly: !!formOptions.readonly,
2661
+ displayOnly: displayOnly,
2662
+ renderOptions: (_definition$renderOpt2 = definition.renderOptions) != null ? _definition$renderOpt2 : {
2663
+ type: "Standard"
2664
+ },
2665
+ required: required,
2666
+ hidden: !!formOptions.hidden,
2667
+ className: className,
2668
+ style: style
2669
+ }, props);
2670
+ }
2671
+ function renderControlLayout(props) {
2672
+ var c = props.definition,
2673
+ renderer = props.renderer,
2674
+ renderChild = props.renderChild,
2675
+ control = props.control,
2676
+ dataContext = props.dataContext,
2677
+ dataProps = props.createDataProps,
2678
+ displayControl = props.displayControl,
2679
+ style = props.style,
2680
+ labelText = props.labelText,
2681
+ useChildVisibility = props.useChildVisibility,
2682
+ designMode = props.designMode,
2683
+ customDisplay = props.customDisplay,
2684
+ useEvalExpression = props.useEvalExpression,
2685
+ labelClass = props.labelClass,
2686
+ styleClass = props.styleClass,
2687
+ formNode = props.formNode;
2688
+ if (isDataControl(c)) {
2689
+ return renderData(c);
2690
+ }
2691
+ if (isGroupControl(c)) {
2692
+ var _c$groupOptions2, _labelText$value, _c$groupOptions3;
2693
+ if (c.compoundField) {
2694
+ var _c$groupOptions;
2695
+ return renderData(dataControl(c.compoundField, c.title, {
2696
+ children: c.children,
2697
+ hideTitle: (_c$groupOptions = c.groupOptions) == null ? void 0 : _c$groupOptions.hideTitle
2698
+ }));
2699
+ }
2700
+ return {
2701
+ processLayout: renderer.renderGroup({
2702
+ formNode: formNode,
2703
+ definition: c,
2704
+ renderChild: renderChild,
2705
+ useEvalExpression: useEvalExpression,
2706
+ dataContext: dataContext,
2707
+ renderOptions: (_c$groupOptions2 = c.groupOptions) != null ? _c$groupOptions2 : {
2708
+ type: "Standard"
2709
+ },
2710
+ className: rendererClass(styleClass, c.styleClass),
2711
+ useChildVisibility: useChildVisibility,
2712
+ style: style,
2713
+ designMode: designMode
2714
+ }),
2715
+ label: {
2716
+ label: (_labelText$value = labelText == null ? void 0 : labelText.value) != null ? _labelText$value : c.title,
2717
+ className: rendererClass(labelClass, c.labelClass),
2718
+ type: exports.LabelType.Group,
2719
+ hide: (_c$groupOptions3 = c.groupOptions) == null ? void 0 : _c$groupOptions3.hideTitle
2720
+ }
2721
+ };
2722
+ }
2723
+ if (isActionControl(c)) {
2724
+ var _props$actionDataCont, _props$actionDataCont2, _ref10, _labelText$value2, _props$actionOnClick;
2725
+ var actionData = (_props$actionDataCont = (_props$actionDataCont2 = props.actionDataControl) == null ? void 0 : _props$actionDataCont2.value) != null ? _props$actionDataCont : c.actionData;
2726
+ return {
2727
+ children: renderer.renderAction({
2728
+ actionText: (_ref10 = (_labelText$value2 = labelText == null ? void 0 : labelText.value) != null ? _labelText$value2 : c.title) != null ? _ref10 : c.actionId,
2729
+ actionId: c.actionId,
2730
+ actionData: actionData,
2731
+ onClick: (_props$actionOnClick = props.actionOnClick == null ? void 0 : props.actionOnClick(c.actionId, actionData, dataContext)) != null ? _props$actionOnClick : function () {},
2732
+ className: rendererClass(styleClass, c.styleClass),
2733
+ style: style
2734
+ })
2735
+ };
2736
+ }
2737
+ if (isDisplayControl(c)) {
2738
+ var _c$displayData;
2739
+ var data = (_c$displayData = c.displayData) != null ? _c$displayData : {};
2740
+ var displayProps = {
2741
+ data: data,
2742
+ className: rendererClass(styleClass, c.styleClass),
2743
+ style: style,
2744
+ display: displayControl,
2745
+ dataContext: dataContext
2746
+ };
2747
+ if (data.type === exports.DisplayDataType.Custom && customDisplay) {
2748
+ return {
2749
+ children: customDisplay(data.customId, displayProps)
2750
+ };
2751
+ }
2752
+ return {
2753
+ children: renderer.renderDisplay(displayProps)
2754
+ };
2755
+ }
2756
+ return {};
2757
+ function renderData(c) {
2758
+ var _labelText$value3, _c$children$length, _c$children;
2759
+ if (!control) return {
2760
+ children: "No control for: " + c.field
2761
+ };
2762
+ var rendererProps = dataProps(props);
2763
+ var label = !c.hideTitle ? controlTitle((_labelText$value3 = labelText == null ? void 0 : labelText.value) != null ? _labelText$value3 : c.title, props.dataContext.dataNode.schema.field) : undefined;
2764
+ return {
2765
+ processLayout: renderer.renderData(rendererProps),
2766
+ label: {
2767
+ type: ((_c$children$length = (_c$children = c.children) == null ? void 0 : _c$children.length) != null ? _c$children$length : 0) > 0 ? exports.LabelType.Group : exports.LabelType.Control,
2768
+ label: label,
2769
+ forId: rendererProps.id,
2770
+ required: c.required && !props.formOptions.displayOnly,
2771
+ hide: c.hideTitle,
2772
+ className: rendererClass(labelClass, c.labelClass)
2773
+ },
2774
+ errorControl: control
2775
+ };
2776
+ }
2777
+ }
2778
+ function appendMarkup(k, markup) {
2779
+ return function (layout) {
2780
+ return layout[k] = React__default["default"].createElement(React__default["default"].Fragment, null, layout[k], markup);
2781
+ };
2782
+ }
2783
+ function wrapMarkup(k, wrap) {
2784
+ return function (layout) {
2785
+ return layout[k] = wrap(layout[k]);
2786
+ };
2787
+ }
2788
+ function layoutKeyForPlacement(pos) {
2789
+ switch (pos) {
2790
+ case exports.AdornmentPlacement.ControlEnd:
2791
+ return "controlEnd";
2792
+ case exports.AdornmentPlacement.ControlStart:
2793
+ return "controlStart";
2794
+ case exports.AdornmentPlacement.LabelStart:
2795
+ return "labelStart";
2796
+ case exports.AdornmentPlacement.LabelEnd:
2797
+ return "labelEnd";
2798
+ }
2799
+ }
2800
+ function wrapLayout(wrap) {
2801
+ return function (rl) {
2802
+ var orig = rl.wrapLayout;
2803
+ rl.wrapLayout = function (x) {
2804
+ return wrap(orig(x));
2805
+ };
2806
+ };
2807
+ }
2808
+ function appendMarkupAt(pos, markup) {
2809
+ return appendMarkup(layoutKeyForPlacement(pos), markup);
2810
+ }
2811
+ function wrapMarkupAt(pos, wrap) {
2812
+ return wrapMarkup(layoutKeyForPlacement(pos), wrap);
2813
+ }
2814
+ function renderLayoutParts(props, renderer) {
2815
+ var _props$processLayout;
2816
+ var _ref11 = (_props$processLayout = props.processLayout == null ? void 0 : props.processLayout(props)) != null ? _props$processLayout : props,
2817
+ className = _ref11.className,
2818
+ children = _ref11.children,
2819
+ style = _ref11.style,
2820
+ errorControl = _ref11.errorControl,
2821
+ label = _ref11.label,
2822
+ adornments = _ref11.adornments;
2823
+ var layout = {
2824
+ children: children,
2825
+ errorControl: errorControl,
2826
+ style: style,
2827
+ className: className,
2828
+ wrapLayout: function wrapLayout(x) {
2829
+ return x;
2830
+ }
2831
+ };
2832
+ (adornments != null ? adornments : []).sort(function (a, b) {
2833
+ return a.priority - b.priority;
2834
+ }).forEach(function (x) {
2835
+ return x.apply(layout);
2836
+ });
2837
+ layout.label = label && !label.hide ? renderer.renderLabel(label, layout.labelStart, layout.labelEnd) : undefined;
2838
+ return layout;
2839
+ }
2840
+ function controlTitle(title, field) {
2841
+ return title ? title : fieldDisplayName(field);
2842
+ }
2843
+ function getLengthRestrictions(definition) {
2844
+ var _definition$validator;
2845
+ var lengthVal = (_definition$validator = definition.validators) == null ? void 0 : _definition$validator.find(function (x) {
2846
+ return x.type === exports.ValidatorType.Length;
2847
+ });
2848
+ return {
2849
+ min: lengthVal == null ? void 0 : lengthVal.min,
2850
+ max: lengthVal == null ? void 0 : lengthVal.max
2851
+ };
2852
+ }
2853
+ function createArrayActions(control, field, options) {
2854
+ var _field$displayName;
2855
+ var noun = (_field$displayName = field.displayName) != null ? _field$displayName : field.field;
2856
+ var _ref12 = options != null ? options : {},
2857
+ addText = _ref12.addText,
2858
+ noAdd = _ref12.noAdd,
2859
+ removeText = _ref12.removeText,
2860
+ noRemove = _ref12.noRemove,
2861
+ removeActionId = _ref12.removeActionId,
2862
+ addActionId = _ref12.addActionId,
2863
+ editActionId = _ref12.editActionId,
2864
+ editText = _ref12.editText,
2865
+ disabled = _ref12.disabled,
2866
+ readonly = _ref12.readonly,
2867
+ designMode = _ref12.designMode,
2868
+ editExternal = _ref12.editExternal;
2869
+ return {
2870
+ arrayControl: control,
2871
+ addAction: !readonly && !noAdd ? makeAdd(function () {
2872
+ if (!designMode) {
2873
+ var newValue = elementValueForField(field);
2874
+ if (editExternal) {
2875
+ var editData = getExternalEditData(control);
2876
+ editData.value = {
2877
+ data: [elementValueForField(field)],
2878
+ actions: [makeCancel(), {
2879
+ action: makeAdd(function () {
2880
+ var newValue = editData.fields.data.value[0];
2881
+ core.addElement(control, newValue);
2882
+ editData.value = undefined;
2883
+ })
2884
+ }]
2885
+ };
2886
+ } else {
2887
+ core.addElement(control, newValue);
2888
+ }
2889
+ }
2890
+ }) : undefined,
2891
+ editAction: editExternal ? function (i) {
2892
+ return {
2893
+ actionId: editActionId ? editActionId : "edit",
2894
+ actionText: editText ? editText : "Edit",
2895
+ onClick: function onClick() {
2896
+ if (!designMode) {
2897
+ var editData = getExternalEditData(control);
2898
+ var elementToEdit = control.as().elements[i];
2899
+ editData.value = {
2900
+ data: [elementToEdit.current.value],
2901
+ actions: [makeCancel(), {
2902
+ action: createAction("apply", function () {
2903
+ elementToEdit.value = editData.fields.data.value[0];
2904
+ editData.value = undefined;
2905
+ }, "Apply")
2906
+ }]
2907
+ };
2908
+ }
2909
+ }
2910
+ };
2911
+ } : undefined,
2912
+ removeAction: !readonly && !noRemove ? function (i) {
2913
+ return {
2914
+ actionId: removeActionId ? removeActionId : "remove",
2915
+ actionText: removeText ? removeText : "Remove",
2916
+ onClick: function onClick() {
2917
+ if (!designMode) {
2918
+ core.removeElement(control, i);
2919
+ }
2920
+ },
2921
+ disabled: disabled
2922
+ };
2923
+ } : undefined
2924
+ };
2925
+ function makeAdd(onClick) {
2926
+ return createAction(addActionId ? addActionId : "add", onClick, addText ? addText : "Add " + noun, {
2927
+ disabled: disabled
2928
+ });
2929
+ }
2930
+ function makeCancel() {
2931
+ return {
2932
+ dontValidate: true,
2933
+ action: {
2934
+ actionId: "cancel",
2935
+ actionText: "Cancel",
2936
+ onClick: function onClick() {
2937
+ getExternalEditData(control).value = undefined;
2938
+ },
2939
+ disabled: disabled
2940
+ }
2941
+ };
2942
+ }
2943
+ }
2944
+ function applyArrayLengthRestrictions(_ref13, disable) {
2945
+ var _arrayControl$element, _arrayControl$element2;
2946
+ var arrayControl = _ref13.arrayControl,
2947
+ min = _ref13.min,
2948
+ max = _ref13.max,
2949
+ editAction = _ref13.editAction,
2950
+ aa = _ref13.addAction,
2951
+ ra = _ref13.removeAction,
2952
+ required = _ref13.required;
2953
+ var _applyLengthRestricti = applyLengthRestrictions((_arrayControl$element = (_arrayControl$element2 = arrayControl.elements) == null ? void 0 : _arrayControl$element2.length) != null ? _arrayControl$element : 0, min == null && required ? 1 : min, max, true, true),
2954
+ removeAllowed = _applyLengthRestricti[0],
2955
+ addAllowed = _applyLengthRestricti[1];
2956
+ return {
2957
+ addAction: disable || addAllowed ? aa : undefined,
2958
+ removeAction: disable || removeAllowed ? ra : undefined,
2959
+ removeDisabled: !removeAllowed,
2960
+ addDisabled: !addAllowed,
2961
+ editAction: editAction
2962
+ };
2963
+ }
2964
+ function fieldOptionAdornment(p) {
2965
+ return function (o, i, selected) {
2966
+ return React__default["default"].createElement(core.RenderArrayElements, {
2967
+ array: p.formNode.getChildNodes()
2968
+ }, function (cd, i) {
2969
+ return p.renderChild(i, cd, {
2970
+ parentDataNode: p.dataContext.parentNode,
2971
+ formData: {
2972
+ option: o,
2973
+ optionSelected: selected
2974
+ }
2975
+ });
2976
+ });
2977
+ };
2978
+ }
2979
+
2980
+ function isIconAdornment(a) {
2981
+ return a.type === exports.ControlAdornmentType.Icon;
2982
+ }
2983
+ function isAccordionAdornment(a) {
2984
+ return a.type === exports.ControlAdornmentType.Accordion;
2985
+ }
2986
+ function isSetFieldAdornment(a) {
2987
+ return a.type === exports.ControlAdornmentType.SetField;
2988
+ }
2989
+ function isOptionalAdornment(a) {
2990
+ return a.type === exports.ControlAdornmentType.Optional;
2991
+ }
2992
+ function createLayoutRenderer(render, options) {
2993
+ return _extends({
2994
+ type: "layout",
2995
+ render: render
2996
+ }, options);
2997
+ }
2998
+ function createActionRenderer(actionId, render, options) {
2999
+ return _extends({
3000
+ type: "action",
3001
+ actionType: actionId,
3002
+ render: render
3003
+ }, options);
3004
+ }
3005
+ function createArrayRenderer(render, options) {
3006
+ return _extends({
3007
+ type: "array",
3008
+ render: render
3009
+ }, options);
3010
+ }
3011
+ function createDataRenderer(render, options) {
3012
+ return _extends({
3013
+ type: "data",
3014
+ render: render
3015
+ }, options);
3016
+ }
3017
+ function createGroupRenderer(render, options) {
3018
+ return _extends({
3019
+ type: "group",
3020
+ render: render
3021
+ }, options);
3022
+ }
3023
+ function createDisplayRenderer(render, options) {
3024
+ return _extends({
3025
+ type: "display",
3026
+ render: render
3027
+ }, options);
3028
+ }
3029
+ function createLabelRenderer(render, options) {
3030
+ return _extends({
3031
+ type: "label",
3032
+ render: render
3033
+ }, options);
3034
+ }
3035
+ function createVisibilityRenderer(render, options) {
3036
+ return _extends({
3037
+ type: "visibility",
3038
+ render: render
3039
+ }, options);
3040
+ }
3041
+ function createAdornmentRenderer(render, options) {
3042
+ return _extends({
3043
+ type: "adornment"
3044
+ }, options, {
3045
+ render: render
3046
+ });
3047
+ }
3048
+
3049
+ function createFormRenderer(customRenderers, defaultRenderers) {
3050
+ var _customRenderers$find;
3051
+ if (customRenderers === void 0) {
3052
+ customRenderers = [];
3053
+ }
3054
+ var dataRegistrations = customRenderers.filter(isDataRegistration);
3055
+ var groupRegistrations = customRenderers.filter(isGroupRegistration);
3056
+ var adornmentRegistrations = customRenderers.filter(isAdornmentRegistration);
3057
+ var displayRegistrations = customRenderers.filter(isDisplayRegistration);
3058
+ var labelRenderers = customRenderers.filter(isLabelRegistration);
3059
+ var arrayRenderers = customRenderers.filter(isArrayRegistration);
3060
+ var actionRenderers = customRenderers.filter(isActionRegistration);
3061
+ var layoutRenderers = customRenderers.filter(isLayoutRegistration);
3062
+ var visibilityRenderer = (_customRenderers$find = customRenderers.find(isVisibilityRegistration)) != null ? _customRenderers$find : defaultRenderers.visibility;
3063
+ var formRenderers = {
3064
+ renderAction: renderAction,
3065
+ renderData: renderData,
3066
+ renderGroup: renderGroup,
3067
+ renderDisplay: renderDisplay,
3068
+ renderLabel: renderLabel,
3069
+ renderArray: renderArray,
3070
+ renderAdornment: renderAdornment,
3071
+ renderLayout: renderLayout,
3072
+ renderVisibility: visibilityRenderer.render,
3073
+ renderLabelText: renderLabelText
3074
+ };
3075
+ function renderLabelText(label) {
3076
+ return renderLabel({
3077
+ label: label,
3078
+ type: exports.LabelType.Text
3079
+ }, undefined, undefined);
3080
+ }
3081
+ function renderLayout(props) {
3082
+ var _layoutRenderers$find;
3083
+ var renderer = (_layoutRenderers$find = layoutRenderers.find(function (x) {
3084
+ return !x.match || x.match(props);
3085
+ })) != null ? _layoutRenderers$find : defaultRenderers.renderLayout;
3086
+ return renderer.render(props, formRenderers);
3087
+ }
3088
+ function renderAdornment(props) {
3089
+ var _adornmentRegistratio;
3090
+ var renderer = (_adornmentRegistratio = adornmentRegistrations.find(function (x) {
3091
+ return isOneOf(x.adornmentType, props.adornment.type);
3092
+ })) != null ? _adornmentRegistratio : defaultRenderers.adornment;
3093
+ return renderer.render(props, formRenderers);
3094
+ }
3095
+ function renderArray(props) {
3096
+ var _arrayRenderers$;
3097
+ return ((_arrayRenderers$ = arrayRenderers[0]) != null ? _arrayRenderers$ : defaultRenderers.array).render(props, formRenderers);
3098
+ }
3099
+ function renderLabel(props, labelStart, labelEnd) {
3100
+ var _labelRenderers$find;
3101
+ var renderer = (_labelRenderers$find = labelRenderers.find(function (x) {
3102
+ return isOneOf(x.labelType, props.type);
3103
+ })) != null ? _labelRenderers$find : defaultRenderers.label;
3104
+ return renderer.render(props, labelStart, labelEnd, formRenderers);
3105
+ }
3106
+ function renderData(props) {
3107
+ var _dataRegistrations$fi;
3108
+ var renderOptions = props.renderOptions,
3109
+ field = props.field;
3110
+ var options = hasOptions(props);
3111
+ var renderType = renderOptions.type;
3112
+ var renderer = (_dataRegistrations$fi = dataRegistrations.find(matchesRenderer)) != null ? _dataRegistrations$fi : defaultRenderers.data;
3113
+ var result = renderer.render(props, formRenderers);
3114
+ if (typeof result === "function") return result;
3115
+ return function (l) {
3116
+ return _extends({}, l, {
3117
+ children: result
3118
+ });
3119
+ };
3120
+ function matchesRenderer(x) {
3121
+ var _x$collection, _field$collection, _x$options;
3122
+ var matchCollection = ((_x$collection = x.collection) != null ? _x$collection : false) === (props.elementIndex == null && ((_field$collection = field.collection) != null ? _field$collection : false));
3123
+ var matchSchemaType = x.schemaType && renderType == exports.DataRenderType.Standard && isOneOf(x.schemaType, field.type);
3124
+ var matchRenderType = !x.renderType || isOneOf(x.renderType, renderType);
3125
+ return matchCollection && ((_x$options = x.options) != null ? _x$options : false) === options && (matchSchemaType || matchRenderType) && (!x.match || x.match(props, renderOptions));
3126
+ }
3127
+ }
3128
+ function renderGroup(props) {
3129
+ var _groupRegistrations$f;
3130
+ var renderType = props.renderOptions.type;
3131
+ var renderer = (_groupRegistrations$f = groupRegistrations.find(function (x) {
3132
+ return isOneOf(x.renderType, renderType);
3133
+ })) != null ? _groupRegistrations$f : defaultRenderers.group;
3134
+ var result = renderer.render(props, formRenderers);
3135
+ if (typeof result === "function") return result;
3136
+ return function (l) {
3137
+ return _extends({}, l, {
3138
+ children: result
3139
+ });
3140
+ };
3141
+ }
3142
+ function renderAction(props) {
3143
+ var _actionRenderers$find;
3144
+ var renderer = (_actionRenderers$find = actionRenderers.find(function (x) {
3145
+ return isOneOf(x.actionType, props.actionId);
3146
+ })) != null ? _actionRenderers$find : defaultRenderers.action;
3147
+ return renderer.render(props, formRenderers);
3148
+ }
3149
+ function renderDisplay(props) {
3150
+ var _displayRegistrations;
3151
+ var renderType = props.data.type;
3152
+ var renderer = (_displayRegistrations = displayRegistrations.find(function (x) {
3153
+ return isOneOf(x.renderType, renderType);
3154
+ })) != null ? _displayRegistrations : defaultRenderers.display;
3155
+ return renderer.render(props, formRenderers);
3156
+ }
3157
+ return formRenderers;
3158
+ }
3159
+ function isOneOf(x, v) {
3160
+ return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;
3161
+ }
3162
+ function isAdornmentRegistration(x) {
3163
+ return x.type === "adornment";
3164
+ }
3165
+ function isDataRegistration(x) {
3166
+ return x.type === "data";
3167
+ }
3168
+ function isGroupRegistration(x) {
3169
+ return x.type === "group";
3170
+ }
3171
+ function isLabelRegistration(x) {
3172
+ return x.type === "label";
3173
+ }
3174
+ function isLayoutRegistration(x) {
3175
+ return x.type === "layout";
3176
+ }
3177
+ function isVisibilityRegistration(x) {
3178
+ return x.type === "visibility";
3179
+ }
3180
+ function isActionRegistration(x) {
3181
+ return x.type === "action";
3182
+ }
3183
+ function isDisplayRegistration(x) {
3184
+ return x.type === "display";
3185
+ }
3186
+ function isArrayRegistration(x) {
3187
+ return x.type === "array";
3188
+ }
3189
+
3190
+ exports.AppendAdornmentPriority = AppendAdornmentPriority;
3191
+ exports.ControlRenderer = ControlRenderer;
3192
+ exports.DefaultSchemaInterface = DefaultSchemaInterface;
3193
+ exports.FormNode = FormNode;
3194
+ exports.NewControlRenderer = NewControlRenderer;
3195
+ exports.WrapAdornmentPriority = WrapAdornmentPriority;
3196
+ exports.accordionOptions = accordionOptions;
3197
+ exports.actionControl = actionControl;
3198
+ exports.actionHandlers = actionHandlers;
3199
+ exports.addFieldOption = addFieldOption;
3200
+ exports.addMissingControls = addMissingControls;
3201
+ exports.addMissingControlsForSchema = addMissingControlsForSchema;
3202
+ exports.adornmentOptions = adornmentOptions;
3203
+ exports.appendMarkup = appendMarkup;
3204
+ exports.appendMarkupAt = appendMarkupAt;
3205
+ exports.applyArrayLengthRestrictions = applyArrayLengthRestrictions;
3206
+ exports.applyDefaultForField = applyDefaultForField;
3207
+ exports.applyDefaultValues = applyDefaultValues;
3208
+ exports.applyExtensionToSchema = applyExtensionToSchema;
3209
+ exports.applyExtensionsToSchema = applyExtensionsToSchema;
3210
+ exports.applyLengthRestrictions = applyLengthRestrictions;
3211
+ exports.applyValues = applyValues;
3212
+ exports.autocompleteOptions = autocompleteOptions;
3213
+ exports.boolField = boolField;
3214
+ exports.buildSchema = buildSchema;
3215
+ exports.checkListOptions = checkListOptions;
3216
+ exports.cleanDataForSchema = cleanDataForSchema;
3217
+ exports.coerceToString = coerceToString;
3218
+ exports.collectDifferences = collectDifferences;
3219
+ exports.compoundControl = compoundControl;
3220
+ exports.compoundField = compoundField;
3221
+ exports.controlTitle = controlTitle;
3222
+ exports.createAction = createAction;
3223
+ exports.createActionRenderer = createActionRenderer;
3224
+ exports.createAdornmentRenderer = createAdornmentRenderer;
3225
+ exports.createArrayActions = createArrayActions;
3226
+ exports.createArrayRenderer = createArrayRenderer;
3227
+ exports.createDataRenderer = createDataRenderer;
3228
+ exports.createDisplayRenderer = createDisplayRenderer;
3229
+ exports.createFormLookup = createFormLookup;
3230
+ exports.createFormRenderer = createFormRenderer;
3231
+ exports.createGroupRenderer = createGroupRenderer;
3232
+ exports.createLabelRenderer = createLabelRenderer;
3233
+ exports.createLayoutRenderer = createLayoutRenderer;
3234
+ exports.createSchemaLookup = createSchemaLookup;
3235
+ exports.createVisibilityRenderer = createVisibilityRenderer;
3236
+ exports.dataControl = dataControl;
3237
+ exports.dateField = dateField;
3238
+ exports.dateTimeField = dateTimeField;
3239
+ exports.dateValidatorOptions = dateValidatorOptions;
3240
+ exports.defaultCompoundField = defaultCompoundField;
3241
+ exports.defaultControlForField = defaultControlForField;
3242
+ exports.defaultDataProps = defaultDataProps;
3243
+ exports.defaultEvalHooks = defaultEvalHooks;
3244
+ exports.defaultScalarField = defaultScalarField;
3245
+ exports.defaultSchemaInterface = defaultSchemaInterface;
3246
+ exports.defaultUseEvalExpressionHook = defaultUseEvalExpressionHook;
3247
+ exports.defaultValueForField = defaultValueForField;
3248
+ exports.defaultValueForFields = defaultValueForFields;
3249
+ exports.displayOnlyOptions = displayOnlyOptions;
3250
+ exports.doubleField = doubleField;
3251
+ exports.dynamicDefaultValue = dynamicDefaultValue;
3252
+ exports.dynamicDisabled = dynamicDisabled;
3253
+ exports.dynamicReadonly = dynamicReadonly;
3254
+ exports.dynamicVisibility = dynamicVisibility;
3255
+ exports.elementValueForField = elementValueForField;
3256
+ exports.emptyGroupDefinition = emptyGroupDefinition;
3257
+ exports.fieldDisplayName = fieldDisplayName;
3258
+ exports.fieldEqExpr = fieldEqExpr;
3259
+ exports.fieldExpr = fieldExpr;
3260
+ exports.fieldHasTag = fieldHasTag;
3261
+ exports.fieldOptionAdornment = fieldOptionAdornment;
3262
+ exports.fieldPathForDefinition = fieldPathForDefinition;
3263
+ exports.findChildDefinition = findChildDefinition;
3264
+ exports.findCompoundField = findCompoundField;
3265
+ exports.findControlsForCompound = findControlsForCompound;
3266
+ exports.findField = findField;
3267
+ exports.findFieldPath = findFieldPath;
3268
+ exports.findNonDataGroups = findNonDataGroups;
3269
+ exports.findScalarField = findScalarField;
3270
+ exports.getAllReferencedClasses = getAllReferencedClasses;
3271
+ exports.getAllValues = getAllValues;
3272
+ exports.getDiffObject = getDiffObject;
3273
+ exports.getDisplayOnlyOptions = getDisplayOnlyOptions;
3274
+ exports.getExternalEditData = getExternalEditData;
3275
+ exports.getGroupClassOverrides = getGroupClassOverrides;
3276
+ exports.getGroupRendererOptions = getGroupRendererOptions;
3277
+ exports.getIsEditing = getIsEditing;
3278
+ exports.getJsonPath = getJsonPath;
3279
+ exports.getLastDefinedValue = getLastDefinedValue;
3280
+ exports.getLengthRestrictions = getLengthRestrictions;
3281
+ exports.getNullToggler = getNullToggler;
3282
+ exports.getOverrideClass = getOverrideClass;
3283
+ exports.getRootDataNode = getRootDataNode;
3284
+ exports.getSchemaFieldList = getSchemaFieldList;
3285
+ exports.getSchemaNodePath = getSchemaNodePath;
3286
+ exports.getSchemaPath = getSchemaPath;
3287
+ exports.getTagParam = getTagParam;
3288
+ exports.groupedControl = groupedControl;
3289
+ exports.hasOptions = hasOptions;
3290
+ exports.hideDisplayOnly = hideDisplayOnly;
3291
+ exports.htmlDisplayControl = htmlDisplayControl;
3292
+ exports.intField = intField;
3293
+ exports.isAccordionAdornment = isAccordionAdornment;
3294
+ exports.isActionControl = isActionControl;
3295
+ exports.isArrayRenderer = isArrayRenderer;
3296
+ exports.isAutoCompleteClasses = isAutoCompleteClasses;
3297
+ exports.isAutocompleteRenderer = isAutocompleteRenderer;
3298
+ exports.isCheckEntryClasses = isCheckEntryClasses;
3299
+ exports.isCompoundField = isCompoundField;
3300
+ exports.isCompoundNode = isCompoundNode;
3301
+ exports.isControlDisabled = isControlDisabled;
3302
+ exports.isControlDisplayOnly = isControlDisplayOnly;
3303
+ exports.isControlReadonly = isControlReadonly;
3304
+ exports.isDataControl = isDataControl;
3305
+ exports.isDataGroupRenderer = isDataGroupRenderer;
3306
+ exports.isDateTimeRenderer = isDateTimeRenderer;
3307
+ exports.isDisplayControl = isDisplayControl;
3308
+ exports.isDisplayOnlyRenderer = isDisplayOnlyRenderer;
3309
+ exports.isFlexRenderer = isFlexRenderer;
3310
+ exports.isGridRenderer = isGridRenderer;
3311
+ exports.isGroupControl = isGroupControl;
3312
+ exports.isIconAdornment = isIconAdornment;
3313
+ exports.isOptionalAdornment = isOptionalAdornment;
3314
+ exports.isScalarField = isScalarField;
3315
+ exports.isSelectChildRenderer = isSelectChildRenderer;
3316
+ exports.isSetFieldAdornment = isSetFieldAdornment;
3317
+ exports.isTabsRenderer = isTabsRenderer;
3318
+ exports.isTextfieldRenderer = isTextfieldRenderer;
3319
+ exports.jsonPathString = jsonPathString;
3320
+ exports.jsonataExpr = jsonataExpr;
3321
+ exports.jsonataOptions = jsonataOptions;
3322
+ exports.jsonataValidatorOptions = jsonataValidatorOptions;
3323
+ exports.layoutKeyForPlacement = layoutKeyForPlacement;
3324
+ exports.legacyFormNode = legacyFormNode;
3325
+ exports.lengthValidatorOptions = lengthValidatorOptions;
3326
+ exports.lookupDataNode = lookupDataNode;
3327
+ exports.makeCompoundField = makeCompoundField;
3328
+ exports.makeEvalExpressionHook = makeEvalExpressionHook;
3329
+ exports.makeHook = makeHook;
3330
+ exports.makeHookDepString = makeHookDepString;
3331
+ exports.makeParamTag = makeParamTag;
3332
+ exports.makeScalarField = makeScalarField;
3333
+ exports.makeSchemaDataNode = makeSchemaDataNode;
3334
+ exports.matchesType = matchesType;
3335
+ exports.mergeField = mergeField;
3336
+ exports.mergeFields = mergeFields;
3337
+ exports.mergeObjects = mergeObjects;
3338
+ exports.nodeForControl = nodeForControl;
3339
+ exports.radioButtonOptions = radioButtonOptions;
3340
+ exports.relativePath = relativePath;
3341
+ exports.renderControlLayout = renderControlLayout;
3342
+ exports.renderLayoutParts = renderLayoutParts;
3343
+ exports.renderOptionsFor = renderOptionsFor;
3344
+ exports.rendererClass = rendererClass;
3345
+ exports.resolveSchemas = resolveSchemas;
3346
+ exports.rootSchemaNode = rootSchemaNode;
3347
+ exports.schemaDataForFieldPath = schemaDataForFieldPath;
3348
+ exports.schemaDataForFieldRef = schemaDataForFieldRef;
3349
+ exports.schemaForFieldPath = schemaForFieldPath;
3350
+ exports.schemaForFieldRef = schemaForFieldRef;
3351
+ exports.stringField = stringField;
3352
+ exports.stringOptionsField = stringOptionsField;
3353
+ exports.textDisplayControl = textDisplayControl;
3354
+ exports.textfieldOptions = textfieldOptions;
3355
+ exports.timeField = timeField;
3356
+ exports.toDepString = toDepString;
3357
+ exports.traverseData = traverseData;
3358
+ exports.traverseParents = traverseParents;
3359
+ exports.traverseSchemaPath = traverseSchemaPath;
3360
+ exports.useControlDefinitionForSchema = useControlDefinitionForSchema;
3361
+ exports.useControlRenderer = useControlRenderer;
3362
+ exports.useControlRendererComponent = useControlRendererComponent;
3363
+ exports.useDateValidator = useDateValidator;
3364
+ exports.useDynamicHooks = useDynamicHooks;
3365
+ exports.useEvalActionHook = useEvalActionHook;
3366
+ exports.useEvalAllowedOptionsHook = useEvalAllowedOptionsHook;
3367
+ exports.useEvalDefaultValueHook = useEvalDefaultValueHook;
3368
+ exports.useEvalDisabledHook = useEvalDisabledHook;
3369
+ exports.useEvalDisplayHook = useEvalDisplayHook;
3370
+ exports.useEvalDynamicBoolHook = useEvalDynamicBoolHook;
3371
+ exports.useEvalDynamicHook = useEvalDynamicHook;
3372
+ exports.useEvalLabelText = useEvalLabelText;
3373
+ exports.useEvalReadonlyHook = useEvalReadonlyHook;
3374
+ exports.useEvalStyleHook = useEvalStyleHook;
3375
+ exports.useEvalVisibilityHook = useEvalVisibilityHook;
3376
+ exports.useJsonataExpression = useJsonataExpression;
3377
+ exports.useJsonataValidator = useJsonataValidator;
3378
+ exports.useLengthValidator = useLengthValidator;
3379
+ exports.useMakeValidationHook = useMakeValidationHook;
3380
+ exports.useUpdatedRef = useUpdatedRef;
3381
+ exports.useUuidExpression = useUuidExpression;
3382
+ exports.validationVisitor = validationVisitor;
3383
+ exports.validatorOptions = validatorOptions;
3384
+ exports.visitControlData = visitControlData;
3385
+ exports.visitControlDataArray = visitControlDataArray;
3386
+ exports.visitControlDefinition = visitControlDefinition;
3387
+ exports.visitFormData = visitFormData;
3388
+ exports.visitFormDataInContext = visitFormDataInContext;
3389
+ exports.withScalarOptions = withScalarOptions;
3390
+ exports.wrapLayout = wrapLayout;
3391
+ exports.wrapMarkup = wrapMarkup;
3392
+ exports.wrapMarkupAt = wrapMarkupAt;
2
3393
  //# sourceMappingURL=index.cjs.map