@astroapps/forms-core 2.0.0 → 2.0.2
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 +7 -2
- package/lib/index.cjs.map +1 -1
- package/lib/index.js +10 -3
- package/lib/index.js.map +1 -1
- package/package.json +3 -2
- package/src/defaultSchemaInterface.ts +8 -1
- package/src/resolveChildren.ts +1 -1
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/controlDefinition.ts","../src/schemaValidator.ts","../src/entityExpression.ts","../src/controlBuilder.ts","../src/schemaField.ts","../src/schemaNode.ts","../src/schemaBuilder.ts","../src/schemaDataNode.ts","../src/defaultSchemaInterface.ts","../src/formNode.ts","../src/util.ts","../src/evalExpression.ts","../src/overrideProxy.ts","../src/validators.ts","../src/formStateNode.ts","../src/resolveChildren.ts"],"sourcesContent":["import { SchemaValidator } from \"./schemaValidator\";\nimport { SchemaField } from \"./schemaField\";\nimport { EntityExpression } from \"./entityExpression\";\nimport { SchemaDataNode } from \"./schemaDataNode\";\nimport { SchemaNode } from \"./schemaNode\";\n\n/**\n * Represents any control definition.\n */\nexport type AnyControlDefinition =\n | DataControlDefinition\n | GroupedControlsDefinition\n | ActionControlDefinition\n | DisplayControlDefinition;\n\n/**\n * Represents a control definition.\n */\nexport interface ControlDefinition {\n type: string;\n id?: string | null;\n childRefId?: string | null;\n title?: string | null;\n hidden?: boolean | null;\n disabled?: boolean | null;\n readonly?: boolean | null;\n styleClass?: string | null;\n textClass?: string | null;\n layoutClass?: string | null;\n labelClass?: string | null;\n labelTextClass?: string | null;\n placement?: string | null;\n dynamic?: DynamicProperty[] | null;\n adornments?: ControlAdornment[] | null;\n children?: ControlDefinition[] | null;\n}\n\nexport enum ControlDefinitionType {\n Data = \"Data\",\n Group = \"Group\",\n Display = \"Display\",\n Action = \"Action\",\n}\n\nexport interface DynamicProperty {\n type: string;\n expr: EntityExpression;\n}\n\nexport enum DynamicPropertyType {\n Visible = \"Visible\",\n DefaultValue = \"DefaultValue\",\n Readonly = \"Readonly\",\n Disabled = \"Disabled\",\n Display = \"Display\",\n Style = \"Style\",\n LayoutStyle = \"LayoutStyle\",\n AllowedOptions = \"AllowedOptions\",\n Label = \"Label\",\n ActionData = \"ActionData\",\n GridColumns = \"GridColumns\",\n}\n\nexport interface ControlAdornment {\n type: string;\n}\n\nexport enum AdornmentPlacement {\n ControlStart = \"ControlStart\",\n ControlEnd = \"ControlEnd\",\n LabelStart = \"LabelStart\",\n LabelEnd = \"LabelEnd\",\n}\n\nexport enum ControlAdornmentType {\n Tooltip = \"Tooltip\",\n Accordion = \"Accordion\",\n HelpText = \"HelpText\",\n Icon = \"Icon\",\n SetField = \"SetField\",\n Optional = \"Optional\",\n}\n\nexport enum IconLibrary {\n FontAwesome = \"FontAwesome\",\n Material = \"Material\",\n CssClass = \"CssClass\",\n}\n\nexport interface IconReference {\n library: string;\n name: string;\n}\n\nexport interface IconAdornment extends ControlAdornment {\n type: ControlAdornmentType.Icon;\n iconClass: string;\n icon?: IconReference;\n placement?: AdornmentPlacement | null;\n}\n\nexport interface TooltipAdornment extends ControlAdornment {\n type: ControlAdornmentType.Tooltip;\n tooltip: string;\n}\n\nexport interface AccordionAdornment extends ControlAdornment {\n type: ControlAdornmentType.Accordion;\n title: string;\n defaultExpanded?: boolean | null;\n}\n\nexport interface HelpTextAdornment extends ControlAdornment {\n type: ControlAdornmentType.HelpText;\n helpText: string;\n placement?: AdornmentPlacement | null;\n}\n\nexport interface SetFieldAdornment extends ControlAdornment {\n type: ControlAdornmentType.SetField;\n field: string;\n defaultOnly?: boolean | null;\n expression?: EntityExpression;\n}\n\nexport interface OptionalAdornment extends ControlAdornment {\n type: ControlAdornmentType.Optional;\n placement?: AdornmentPlacement | null;\n allowNull?: boolean;\n editSelectable?: boolean;\n}\n\nexport interface DataControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Data;\n field: string;\n required?: boolean | null;\n renderOptions?: RenderOptions | null;\n defaultValue?: any;\n validators?: SchemaValidator[] | null;\n hideTitle?: boolean | null;\n dontClearHidden?: boolean | null;\n requiredErrorText?: string | null;\n}\n\nexport interface RenderOptions {\n type: string;\n}\n\nexport enum DataRenderType {\n Standard = \"Standard\",\n Textfield = \"Textfield\",\n Radio = \"Radio\",\n HtmlEditor = \"HtmlEditor\",\n IconList = \"IconList\",\n CheckList = \"CheckList\",\n UserSelection = \"UserSelection\",\n Synchronised = \"Synchronised\",\n IconSelector = \"IconSelector\",\n DateTime = \"DateTime\",\n Checkbox = \"Checkbox\",\n Dropdown = \"Dropdown\",\n DisplayOnly = \"DisplayOnly\",\n Group = \"Group\",\n NullToggle = \"NullToggle\",\n Autocomplete = \"Autocomplete\",\n Jsonata = \"Jsonata\",\n Array = \"Array\",\n ArrayElement = \"ArrayElement\",\n ElementSelected = \"ElementSelected\",\n ScrollList = \"ScrollList\",\n}\n\nexport interface TextfieldRenderOptions extends RenderOptions {\n type: DataRenderType.Textfield;\n placeholder?: string | null;\n multiline?: boolean | null;\n}\n\nexport interface AutocompleteRenderOptions\n extends RenderOptions,\n AutocompleteClasses {\n type: DataRenderType.Autocomplete;\n}\n\nexport interface AutocompleteClasses {\n listContainerClass?: string | null;\n listEntryClass?: string | null;\n chipContainerClass?: string | null;\n chipCloseButtonClass?: string | null;\n placeholder?: string | null;\n}\n\nexport interface CheckEntryClasses {\n entryWrapperClass?: string | null;\n selectedClass?: string | null;\n notSelectedClass?: string | null;\n}\nexport interface RadioButtonRenderOptions\n extends RenderOptions,\n CheckEntryClasses {\n type: DataRenderType.Radio;\n}\n\nexport interface StandardRenderer extends RenderOptions {\n type: DataRenderType.Standard;\n}\n\nexport interface DataGroupRenderOptions extends RenderOptions {\n type: DataRenderType.Group;\n groupOptions?: GroupRenderOptions;\n}\n\nexport interface HtmlEditorRenderOptions extends RenderOptions {\n type: DataRenderType.HtmlEditor;\n allowImages: boolean;\n}\n\nexport interface DateTimeRenderOptions extends RenderOptions {\n type: DataRenderType.DateTime;\n format?: string | null;\n forceMidnight?: boolean;\n forceStandard?: boolean;\n}\n\nexport interface IconListRenderOptions extends RenderOptions {\n type: DataRenderType.IconList;\n iconMappings: IconMapping[];\n}\n\nexport interface DisplayOnlyRenderOptions extends RenderOptions {\n type: DataRenderType.DisplayOnly;\n emptyText?: string | null;\n sampleText?: string | null;\n}\nexport interface IconMapping {\n value: string;\n materialIcon?: string | null;\n}\n\nexport interface JsonataRenderOptions extends RenderOptions {\n type: DataRenderType.Jsonata;\n expression: string;\n}\n\nexport interface JsonataRenderOptions extends RenderOptions {\n type: DataRenderType.Jsonata;\n expression: string;\n}\n\nexport interface ArrayRenderOptions extends RenderOptions {\n type: DataRenderType.Array;\n addText?: string | null;\n addActionId?: string | null;\n removeText?: string | null;\n removeActionId?: string | null;\n editText?: string | null;\n editActionId?: string | null;\n noAdd?: boolean | null;\n noRemove?: boolean | null;\n noReorder?: boolean | null;\n editExternal?: boolean | null;\n childOverrideClass?: string | null;\n}\n\nexport interface ArrayElementRenderOptions extends RenderOptions {\n type: DataRenderType.ArrayElement;\n showInline?: boolean | null;\n}\n\nexport interface ElementSelectedRenderOptions extends RenderOptions {\n type: DataRenderType.ElementSelected;\n elementExpression: EntityExpression;\n}\n\nexport type ArrayActionOptions = Pick<\n ArrayRenderOptions,\n | \"addText\"\n | \"addActionId\"\n | \"removeText\"\n | \"removeActionId\"\n | \"noAdd\"\n | \"noRemove\"\n | \"noReorder\"\n | \"editExternal\"\n | \"editActionId\"\n | \"editText\"\n> & { readonly?: boolean; disabled?: boolean; designMode?: boolean };\n\nexport interface CheckListRenderOptions\n extends RenderOptions,\n CheckEntryClasses {\n type: DataRenderType.CheckList;\n}\n\nexport interface SynchronisedRenderOptions extends RenderOptions {\n type: DataRenderType.Synchronised;\n fieldToSync: string;\n syncType: SyncTextType;\n}\n\nexport enum SyncTextType {\n Camel = \"Camel\",\n Snake = \"Snake\",\n Pascal = \"Pascal\",\n}\n\nexport interface UserSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.UserSelection;\n noGroups: boolean;\n noUsers: boolean;\n}\n\nexport interface IconSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.IconSelector;\n}\n\nexport interface ScrollListRenderOptions extends RenderOptions {\n type: DataRenderType.ScrollList;\n bottomActionId?: string;\n refreshActionId?: string;\n}\n\nexport interface GroupedControlsDefinition extends ControlDefinition {\n type: ControlDefinitionType.Group;\n compoundField?: string | null;\n groupOptions?: GroupRenderOptions;\n}\n\nexport interface GroupRenderOptions {\n type: string;\n hideTitle?: boolean | null;\n childStyleClass?: string | null;\n childLayoutClass?: string | null;\n childLabelClass?: string | null;\n displayOnly?: boolean | null;\n}\n\nexport interface ActionOptions {\n actionId: string;\n actionText?: string | null;\n actionData?: string | null;\n icon?: IconReference | null;\n actionStyle?: ActionStyle | null;\n iconPlacement?: IconPlacement | null;\n}\nexport enum GroupRenderType {\n Standard = \"Standard\",\n Grid = \"Grid\",\n Flex = \"Flex\",\n Tabs = \"Tabs\",\n GroupElement = \"GroupElement\",\n SelectChild = \"SelectChild\",\n Inline = \"Inline\",\n Wizard = \"Wizard\",\n Dialog = \"Dialog\",\n Contents = \"Contents\",\n Accordion = \"Accordion\",\n}\n\nexport interface AccordionRenderer extends GroupRenderOptions {\n type: GroupRenderType.Accordion;\n defaultExpanded?: boolean | null;\n expandStateField?: string | null;\n}\n\nexport interface DialogRenderOptions extends GroupRenderOptions {\n type: GroupRenderType.Dialog;\n title?: string | null;\n portalHost?: string | null;\n}\n\nexport interface StandardGroupRenderer extends GroupRenderOptions {\n type: GroupRenderType.Standard;\n}\n\nexport interface FlexRenderer extends GroupRenderOptions {\n type: GroupRenderType.Flex;\n direction?: string | null;\n gap?: string | null;\n}\n\nexport interface GroupElementRenderer extends GroupRenderOptions {\n type: GroupRenderType.GroupElement;\n value: any;\n}\n\nexport interface GridRendererOptions extends GroupRenderOptions {\n type: GroupRenderType.Grid;\n columns?: number | null;\n rowClass?: string | null;\n cellClass?: string | null;\n}\n\nexport interface TabsRenderOptions extends GroupRenderOptions {\n type: GroupRenderType.Tabs;\n contentClass?: string;\n}\n\nexport interface WizardRenderOptions extends GroupRenderOptions {\n type: GroupRenderType.Wizard;\n}\n\nexport interface SelectChildRenderer extends GroupRenderOptions {\n type: GroupRenderType.SelectChild;\n childIndexExpression?: EntityExpression | null;\n}\n\nexport interface DisplayControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Display;\n displayData: DisplayData;\n}\n\nexport interface DisplayData {\n type: string;\n}\n\nexport enum DisplayDataType {\n Text = \"Text\",\n Html = \"Html\",\n Icon = \"Icon\",\n Custom = \"Custom\",\n}\nexport interface TextDisplay extends DisplayData {\n type: DisplayDataType.Text;\n text: string;\n}\n\nexport interface IconDisplay extends DisplayData {\n type: DisplayDataType.Icon;\n iconClass: string;\n icon?: IconReference | null;\n}\n\nexport interface HtmlDisplay extends DisplayData {\n type: DisplayDataType.Html;\n html: string;\n}\n\nexport interface CustomDisplay extends DisplayData {\n type: DisplayDataType.Custom;\n customId: string;\n}\n\nexport enum ControlDisableType {\n None = \"None\",\n Self = \"Self\",\n Global = \"Global\",\n}\n\nexport interface ActionControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Action;\n actionId: string;\n actionData?: string | null;\n icon?: IconReference | null;\n actionStyle?: ActionStyle | null;\n iconPlacement?: IconPlacement | null;\n disableType?: ControlDisableType | null;\n}\n\nexport enum ActionStyle {\n Button = \"Button\",\n Secondary = \"Secondary\",\n Link = \"Link\",\n Group = \"Group\",\n}\n\nexport enum IconPlacement {\n BeforeText = \"BeforeText\",\n AfterText = \"AfterText\",\n ReplaceText = \"ReplaceText\",\n}\n\nexport interface ControlVisitor<A> {\n data(d: DataControlDefinition): A;\n group(d: GroupedControlsDefinition): A;\n display(d: DisplayControlDefinition): A;\n action(d: ActionControlDefinition): A;\n}\n\nexport function visitControlDefinition<A>(\n x: ControlDefinition,\n visitor: ControlVisitor<A>,\n defaultValue: (c: ControlDefinition) => A,\n): A {\n switch (x.type) {\n case ControlDefinitionType.Action:\n return visitor.action(x as ActionControlDefinition);\n case ControlDefinitionType.Data:\n return visitor.data(x as DataControlDefinition);\n case ControlDefinitionType.Display:\n return visitor.display(x as DisplayControlDefinition);\n case ControlDefinitionType.Group:\n return visitor.group(x as GroupedControlsDefinition);\n default:\n return defaultValue(x);\n }\n}\nexport function isGridRenderer(\n options: GroupRenderOptions,\n): options is GridRendererOptions {\n return options.type === GroupRenderType.Grid;\n}\n\nexport function isWizardRenderer(\n options: GroupRenderOptions,\n): options is WizardRenderOptions {\n return options.type === GroupRenderType.Wizard;\n}\n\nexport function isDialogRenderer(\n options: GroupRenderOptions,\n): options is DialogRenderOptions {\n return options.type === GroupRenderType.Dialog;\n}\n\nexport function isAccordionRenderer(\n options: GroupRenderOptions,\n): options is AccordionRenderer {\n return options.type === GroupRenderType.Accordion;\n}\n\nexport function isInlineRenderer(options: GroupRenderOptions): boolean {\n return options.type === GroupRenderType.Inline;\n}\n\nexport function isSelectChildRenderer(\n options: GroupRenderOptions,\n): options is SelectChildRenderer {\n return options.type === GroupRenderType.SelectChild;\n}\n\nexport function isTabsRenderer(\n options: GroupRenderOptions,\n): options is TabsRenderOptions {\n return options.type === GroupRenderType.Tabs;\n}\n\nexport function isFlexRenderer(\n options: GroupRenderOptions,\n): options is FlexRenderer {\n return options.type === GroupRenderType.Flex;\n}\n\nexport function isDisplayOnlyRenderer(\n options: RenderOptions,\n): options is DisplayOnlyRenderOptions {\n return options.type === DataRenderType.DisplayOnly;\n}\n\nexport function isTextfieldRenderer(\n options: RenderOptions,\n): options is TextfieldRenderOptions {\n return options.type === DataRenderType.Textfield;\n}\n\nexport function isDateTimeRenderer(\n options: RenderOptions,\n): options is DateTimeRenderOptions {\n return options.type === DataRenderType.DateTime;\n}\n\nexport function isAutocompleteRenderer(\n options: RenderOptions,\n): options is AutocompleteRenderOptions {\n return options.type === DataRenderType.Autocomplete;\n}\n\nexport function isAutoCompleteClasses(\n options?: RenderOptions | null,\n): options is AutocompleteClasses & RenderOptions {\n switch (options?.type) {\n case DataRenderType.Autocomplete:\n return true;\n default:\n return false;\n }\n}\n\nexport function isDataGroupRenderer(\n options?: RenderOptions | null,\n): options is DataGroupRenderOptions {\n return options?.type === DataRenderType.Group;\n}\n\nexport function isArrayRenderer(\n options: RenderOptions,\n): options is ArrayRenderOptions {\n return options.type === DataRenderType.Array;\n}\n\nexport function isDataControl(\n c: ControlDefinition,\n): c is DataControlDefinition {\n return c.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControl(\n c: ControlDefinition,\n): c is GroupedControlsDefinition {\n return c.type === ControlDefinitionType.Group;\n}\n\nexport function isActionControl(\n c: ControlDefinition,\n): c is ActionControlDefinition {\n return c.type === ControlDefinitionType.Action;\n}\n\nexport function isDisplayControl(\n c: ControlDefinition,\n): c is DisplayControlDefinition {\n return c.type === ControlDefinitionType.Display;\n}\n\nexport function isTextDisplay(d: DisplayData): d is TextDisplay {\n return d.type === DisplayDataType.Text;\n}\n\nexport function isHtmlDisplay(d: DisplayData): d is HtmlDisplay {\n return d.type === DisplayDataType.Html;\n}\n\nexport function isCheckEntryClasses(\n options?: RenderOptions | null,\n): options is CheckEntryClasses & RenderOptions {\n switch (options?.type) {\n case DataRenderType.Radio:\n case DataRenderType.CheckList:\n return true;\n default:\n return false;\n }\n}\n\nexport function traverseParents<A, B extends { parent?: B | undefined }>(\n current: B | undefined,\n get: (b: B) => A,\n until?: (b: B) => boolean,\n): A[] {\n let outArray: A[] = [];\n while (current && !until?.(current)) {\n outArray.push(get(current));\n current = current.parent;\n }\n return outArray.reverse();\n}\n\nexport function getRootDataNode(dataNode: SchemaDataNode) {\n while (dataNode.parent) {\n dataNode = dataNode.parent;\n }\n return dataNode;\n}\n\nexport function getJsonPath(dataNode: SchemaDataNode) {\n return traverseParents(\n dataNode,\n (d) => (d.elementIndex == null ? d.schema.field.field : d.elementIndex),\n (x) => !x.parent,\n );\n}\n\nexport function getSchemaPath(schemaNode: SchemaNode): SchemaField[] {\n return traverseParents(\n schemaNode,\n (d) => d.field,\n (x) => !x.parent,\n );\n}\n\nexport function getSchemaFieldList(schema: SchemaNode): SchemaField[] {\n return schema.getChildNodes().map((x) => x.field);\n}\n\nexport function fontAwesomeIcon(icon: string) {\n return { library: IconLibrary.FontAwesome, name: icon };\n}\n\n/**\n * Checks if a control definition is readonly.\n * @param c - The control definition to check.\n * @returns True if the control definition is readonly, false otherwise.\n */\nexport function isControlReadonly(c: ControlDefinition): boolean {\n return !!c.readonly;\n}\n\n/**\n * Checks if a control definition is disabled.\n * @param c - The control definition to check.\n * @returns True if the control definition is disabled, false otherwise.\n */\nexport function isControlDisabled(c: ControlDefinition): boolean {\n return !!c.disabled;\n}\n\n/**\n * Returns the group renderer options for a control definition.\n * @param {ControlDefinition} def - The control definition to get the group renderer options for.\n * @returns {GroupRenderOptions | undefined} - The group renderer options, or undefined if not applicable.\n */\nexport function getGroupRendererOptions(\n def: ControlDefinition,\n): GroupRenderOptions | undefined {\n return isGroupControl(def)\n ? def.groupOptions\n : isDataControl(def) && isDataGroupRenderer(def.renderOptions)\n ? def.renderOptions.groupOptions\n : undefined;\n}\n\n/**\n * Checks if a control definition is display-only.\n * @param {ControlDefinition} def - The control definition to check.\n * @returns {boolean} - True if the control definition is display-only, false otherwise.\n */\nexport function isControlDisplayOnly(def: ControlDefinition): boolean {\n return Boolean(getGroupRendererOptions(def)?.displayOnly);\n}\n\n/**\n * Returns the display-only render options for a control definition.\n * @param d - The control definition to get the display-only render options for.\n * @returns The display-only render options, or undefined if not applicable.\n */\nexport function getDisplayOnlyOptions(\n d: ControlDefinition,\n): DisplayOnlyRenderOptions | undefined {\n return isDataControl(d) &&\n d.renderOptions &&\n isDisplayOnlyRenderer(d.renderOptions)\n ? d.renderOptions\n : undefined;\n}\n","export enum ValidatorType {\n Jsonata = \"Jsonata\",\n Date = \"Date\",\n Length = \"Length\",\n}\n\nexport interface SchemaValidator {\n type: string;\n}\n\nexport interface JsonataValidator extends SchemaValidator {\n type: ValidatorType.Jsonata;\n expression: string;\n}\n\nexport interface LengthValidator extends SchemaValidator {\n type: ValidatorType.Length;\n min?: number | null;\n max?: number | null;\n}\n\nexport enum DateComparison {\n NotBefore = \"NotBefore\",\n NotAfter = \"NotAfter\",\n}\n\nexport interface DateValidator extends SchemaValidator {\n type: ValidatorType.Date;\n comparison: DateComparison;\n fixedDate?: string | null;\n daysFromCurrent?: number | null;\n}\n\nexport function jsonataValidator(expr: string): JsonataValidator {\n return { type: ValidatorType.Jsonata, expression: expr };\n}\n\nexport function dateValidator(\n comparison: DateComparison,\n fixedDate?: string | null,\n daysFromCurrent?: number | null,\n): DateValidator {\n return { type: ValidatorType.Date, comparison, fixedDate, daysFromCurrent };\n}\n\nexport function lengthValidator(\n min?: number | null,\n max?: number | null,\n): LengthValidator {\n return { type: ValidatorType.Length, min, max };\n}\n","export interface EntityExpression {\n type: string;\n}\n\nexport enum ExpressionType {\n Jsonata = \"Jsonata\",\n Data = \"Data\",\n DataMatch = \"FieldValue\",\n UserMatch = \"UserMatch\",\n NotEmpty = \"NotEmpty\",\n UUID = \"UUID\",\n}\n\nexport interface JsonataExpression extends EntityExpression {\n type: ExpressionType.Jsonata;\n expression: string;\n}\n\nexport interface DataExpression extends EntityExpression {\n type: ExpressionType.Data;\n field: string;\n}\n\nexport interface DataMatchExpression extends EntityExpression {\n type: ExpressionType.DataMatch;\n field: string;\n value: any;\n}\n\nexport interface NotEmptyExpression extends EntityExpression {\n type: ExpressionType.NotEmpty;\n field: string;\n empty?: boolean | null;\n}\n\nexport interface UserMatchExpression extends EntityExpression {\n type: ExpressionType.UserMatch;\n userMatch: string;\n}\n","import {\n AccordionAdornment,\n ActionControlDefinition,\n AutocompleteRenderOptions,\n CheckListRenderOptions,\n ControlAdornmentType,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n DisplayControlDefinition,\n DisplayDataType,\n DisplayOnlyRenderOptions,\n DynamicProperty,\n DynamicPropertyType,\n GroupedControlsDefinition,\n GroupRenderType,\n HtmlDisplay,\n JsonataRenderOptions,\n RadioButtonRenderOptions,\n RenderOptions,\n TextDisplay,\n TextfieldRenderOptions,\n} from \"./controlDefinition\";\nimport {\n DateValidator,\n JsonataValidator,\n LengthValidator,\n ValidatorType,\n} from \"./schemaValidator\";\nimport {\n DataExpression,\n DataMatchExpression,\n EntityExpression,\n ExpressionType,\n JsonataExpression,\n NotEmptyExpression,\n} from \"./entityExpression\";\n\nexport function dataControl(\n field: string,\n title?: string | null,\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return { type: ControlDefinitionType.Data, field, title, ...options };\n}\n\nexport function validatorOptions<A extends { type: string }>(\n type: ValidatorType,\n): (options: Omit<A, \"type\">) => A {\n return (o) => ({ type, ...o }) as A;\n}\n\nexport function adornmentOptions<A extends { type: string }>(\n type: ControlAdornmentType,\n): (options: Omit<A, \"type\">) => A {\n return (o) => ({ type, ...o }) as A;\n}\n\nexport function renderOptionsFor<A extends RenderOptions>(\n type: DataRenderType,\n): (options: Omit<A, \"type\">) => { renderOptions: A } {\n return (o) => ({ renderOptions: { type, ...o } as A });\n}\n\nexport const autocompleteOptions = renderOptionsFor<AutocompleteRenderOptions>(\n DataRenderType.Autocomplete,\n);\n\nexport const checkListOptions = renderOptionsFor<CheckListRenderOptions>(\n DataRenderType.CheckList,\n);\n\nexport const radioButtonOptions = renderOptionsFor<RadioButtonRenderOptions>(\n DataRenderType.Radio,\n);\n\nexport const lengthValidatorOptions = validatorOptions<LengthValidator>(\n ValidatorType.Length,\n);\n\nexport const jsonataValidatorOptions = validatorOptions<JsonataValidator>(\n ValidatorType.Jsonata,\n);\n\nexport const dateValidatorOptions = validatorOptions<DateValidator>(\n ValidatorType.Date,\n);\n\nexport const accordionOptions = adornmentOptions<AccordionAdornment>(\n ControlAdornmentType.Accordion,\n);\n\nexport const textfieldOptions = renderOptionsFor<TextfieldRenderOptions>(\n DataRenderType.Textfield,\n);\n\nexport const displayOnlyOptions = renderOptionsFor<DisplayOnlyRenderOptions>(\n DataRenderType.DisplayOnly,\n);\n\nexport const jsonataOptions = renderOptionsFor<JsonataRenderOptions>(\n DataRenderType.Jsonata,\n);\n\nexport function textDisplayControl(\n text: string,\n options?: Partial<DisplayControlDefinition>,\n): DisplayControlDefinition {\n return {\n type: ControlDefinitionType.Display,\n displayData: { type: DisplayDataType.Text, text } as TextDisplay,\n ...options,\n };\n}\n\nexport function htmlDisplayControl(\n html: string,\n options?: Partial<DisplayControlDefinition>,\n): DisplayControlDefinition {\n return {\n type: ControlDefinitionType.Display,\n displayData: { type: DisplayDataType.Html, html } as HtmlDisplay,\n ...options,\n };\n}\n\nexport function dynamicDefaultValue(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.DefaultValue, expr };\n}\n\nexport function dynamicReadonly(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Readonly, expr };\n}\n\nexport function dynamicVisibility(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Visible, expr };\n}\n\nexport function dynamicDisabled(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Disabled, expr };\n}\n\nexport function dataExpr(field: string): DataExpression {\n return { type: ExpressionType.Data, field };\n}\n\n/**\n * @deprecated Use dataExpr\n */\nexport const fieldExpr = dataExpr;\n\n/**\n * @deprecated Use dataMatchExpr\n */\nexport const fieldEqExpr = dataMatchExpr;\n\nexport const uuidExpr = { type: ExpressionType.UUID };\nexport function dataMatchExpr(field: string, value: any): DataMatchExpression {\n return { type: ExpressionType.DataMatch, field, value };\n}\n\nexport function notEmptyExpr(\n field: string,\n empty?: boolean,\n): NotEmptyExpression {\n return { type: ExpressionType.NotEmpty, field, empty };\n}\nexport function jsonataExpr(expression: string): JsonataExpression {\n return { type: ExpressionType.Jsonata, expression };\n}\n\nexport function groupedControl(\n children: ControlDefinition[],\n title?: string,\n options?: Partial<GroupedControlsDefinition>,\n): GroupedControlsDefinition {\n return {\n type: ControlDefinitionType.Group,\n children,\n title,\n groupOptions: { type: \"Standard\", hideTitle: !title },\n ...options,\n };\n}\nexport function compoundControl(\n field: string,\n title: string | undefined | null,\n children: ControlDefinition[],\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return {\n type: ControlDefinitionType.Data,\n field,\n children,\n title,\n renderOptions: { type: \"Standard\" },\n ...options,\n };\n}\n\nexport function actionControl(\n actionText: string,\n actionId: string,\n options?: Partial<ActionControlDefinition>,\n): ActionControlDefinition {\n return {\n type: ControlDefinitionType.Action,\n title: actionText,\n actionId,\n ...options,\n };\n}\nexport const emptyGroupDefinition: GroupedControlsDefinition = {\n type: ControlDefinitionType.Group,\n children: [],\n groupOptions: { type: GroupRenderType.Standard, hideTitle: true },\n};\n","import { SchemaValidator } from \"./schemaValidator\";\n\nexport type EqualityFunc = (a: any, b: any) => boolean;\n\n/**\n * Represents a schema field with various properties.\n */\nexport interface SchemaField {\n /** The type of the field. */\n type: string;\n /** The name of the field. */\n field: string;\n /** The display name of the field, optional. */\n displayName?: string | null;\n /** Tags associated with the field, optional. */\n tags?: string[] | null;\n /** Indicates if the field is a system field, optional. */\n system?: boolean | null;\n /** Indicates if the field is a meta field, optional. */\n meta?: boolean | null;\n /** Indicates if the field is a collection, optional. */\n collection?: boolean | null;\n /** Specifies the types for which the field is applicable, optional. */\n onlyForTypes?: string[] | null;\n /** Indicates if the field is required, optional. */\n required?: boolean | null;\n /** Indicates if the field is not nullable, optional. */\n notNullable?: boolean | null;\n /** The default value of the field, optional. */\n defaultValue?: any;\n /** Indicates if the field is a type field, optional. */\n isTypeField?: boolean | null;\n /** Indicates if the field is searchable, optional. */\n searchable?: boolean | null;\n /** Options for the field, optional. */\n options?: FieldOption[] | null;\n /** Validators for the field, optional. */\n validators?: SchemaValidator[] | null;\n}\n\n/**\n * Represents a map of schema fields.\n * The key is a string representing the schema name.\n * The value is an array of SchemaField objects.\n */\nexport type SchemaMap = Record<string, SchemaField[]>;\n\n/**\n * Enum representing the various field types.\n */\nexport enum FieldType {\n String = \"String\",\n Bool = \"Bool\",\n Int = \"Int\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n Time = \"Time\",\n Double = \"Double\",\n EntityRef = \"EntityRef\",\n Compound = \"Compound\",\n AutoId = \"AutoId\",\n Image = \"Image\",\n Any = \"Any\",\n}\n\n/**\n * Represents a field that references an entity.\n */\nexport interface EntityRefField extends SchemaField {\n /** The type of the field, which is EntityRef. */\n type: FieldType.EntityRef;\n /** The type of the referenced entity. */\n entityRefType: string;\n /** The parent field of the entity reference. */\n parentField: string;\n}\n\n/**\n * Represents an option for a field.\n */\nexport interface FieldOption {\n /** The name of the option. */\n name: string;\n /** The value of the option. */\n value: any;\n /** The description of the option, optional. */\n description?: string | null;\n /** The group of the option, optional. */\n group?: string | null;\n /** Indicates if the option is disabled, optional. */\n disabled?: boolean | null;\n}\n\n/**\n * Represents a compound field that contains child fields.\n */\nexport interface CompoundField extends SchemaField {\n /** The type of the field, which is Compound. */\n type: FieldType.Compound;\n /** The child fields of the compound field. */\n children: SchemaField[];\n /** Indicates if the children are tree-structured, optional. */\n treeChildren?: boolean;\n /** The schema reference for the compound field, optional. */\n schemaRef?: string;\n}\n\n/**\n * Enum representing the various validation message types.\n */\nexport enum ValidationMessageType {\n NotEmpty = \"NotEmpty\",\n MinLength = \"MinLength\",\n MaxLength = \"MaxLength\",\n NotAfterDate = \"NotAfterDate\",\n NotBeforeDate = \"NotBeforeDate\",\n}\n\nexport function findField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return fields.find((x) => x.field === field);\n}\n\nexport function isScalarField(sf: SchemaField): sf is SchemaField {\n return !isCompoundField(sf);\n}\n\nexport function isCompoundField(sf: SchemaField): sf is CompoundField {\n return sf.type === FieldType.Compound;\n}\n\nexport function missingField(field: string): SchemaField {\n return { field: \"__missing\", type: FieldType.Any, displayName: field };\n}\n\nexport enum SchemaTags {\n NoControl = \"_NoControl\",\n HtmlEditor = \"_HtmlEditor\",\n ControlGroup = \"_ControlGroup:\",\n ControlRef = \"_ControlRef:\",\n IdField = \"_IdField:\",\n}\n\nexport function getTagParam(\n field: SchemaField,\n tag: string,\n): string | undefined {\n return field.tags?.find((x) => x.startsWith(tag))?.substring(tag.length);\n}\n\nexport function makeParamTag(tag: string, value: string): string {\n return `${tag}${value}`;\n}\n","import {\n CompoundField,\n FieldType,\n isCompoundField,\n missingField,\n SchemaField,\n} from \"./schemaField\";\n\nexport interface SchemaTreeLookup {\n getSchema(schemaId: string): SchemaNode | undefined;\n\n getSchemaTree(\n schemaId: string,\n additional?: SchemaField[],\n ): SchemaTree | undefined;\n}\n\nexport abstract class SchemaTree {\n abstract rootNode: SchemaNode;\n\n abstract getSchemaTree(schemaId: string): SchemaTree | undefined;\n\n createChildNode(parent: SchemaNode, field: SchemaField): SchemaNode {\n return new SchemaNode(parent.id + \"/\" + field.field, field, this, parent);\n }\n\n getSchema(schemaId: string): SchemaNode | undefined {\n return this.getSchemaTree(schemaId)?.rootNode;\n }\n}\n\nclass SchemaTreeImpl extends SchemaTree {\n rootNode: SchemaNode;\n\n getSchemaTree(schemaId: string): SchemaTree | undefined {\n return this.lookup?.getSchemaTree(schemaId);\n }\n\n constructor(\n rootFields: SchemaField[],\n private lookup?: SchemaTreeLookup,\n ) {\n super();\n this.rootNode = new SchemaNode(\n \"\",\n {\n type: FieldType.Compound,\n field: \"\",\n children: rootFields,\n } as CompoundField,\n this,\n );\n }\n}\n\nexport function createSchemaTree(\n rootFields: SchemaField[],\n lookup?: SchemaTreeLookup,\n): SchemaTree {\n return new SchemaTreeImpl(rootFields, lookup);\n}\n\nexport class SchemaNode {\n public constructor(\n public id: string,\n public field: SchemaField,\n public tree: SchemaTree,\n public parent?: SchemaNode,\n private getChildFields?: () => SchemaField[],\n ) {}\n\n getSchema(schemaId: string): SchemaNode | undefined {\n return this.tree.getSchema(schemaId);\n }\n\n getUnresolvedFields(): SchemaField[] {\n if (this.getChildFields) return this.getChildFields();\n return isCompoundField(this.field) ? this.field.children : [];\n }\n\n getResolvedParent(noRecurse?: boolean): SchemaNode | undefined {\n const f = this.field;\n if (!isCompoundField(f)) return undefined;\n const parentNode = f.schemaRef\n ? this.tree.getSchema(f.schemaRef)\n : !noRecurse && f.treeChildren\n ? this.parent?.getResolvedParent()\n : undefined;\n return parentNode ?? this;\n }\n\n getResolvedFields(): SchemaField[] {\n const resolvedParent = this.getResolvedParent();\n return resolvedParent?.getUnresolvedFields() ?? [];\n }\n\n getChildNodes(): SchemaNode[] {\n const node = this;\n return node.getResolvedFields().map((x) => node.createChildNode(x));\n }\n\n getChildField(field: string): SchemaField {\n return (\n this.getResolvedFields().find((x) => x.field === field) ??\n missingField(field)\n );\n }\n\n createChildNode(field: SchemaField): SchemaNode {\n return this.tree.createChildNode(this, field);\n }\n\n getChildNode(field: string): SchemaNode {\n return this.createChildNode(this.getChildField(field));\n }\n}\n\nexport function resolveSchemaNode(\n node: SchemaNode,\n fieldSegment: string,\n): SchemaNode | undefined {\n if (fieldSegment == \".\") return node;\n if (fieldSegment == \"..\") return node.parent;\n return node.getChildNode(fieldSegment);\n}\n\nexport function createSchemaNode(\n field: SchemaField,\n lookup: SchemaTree,\n parent: SchemaNode | undefined,\n): SchemaNode {\n return new SchemaNode(\n parent ? parent.id + \"/\" + field.field : field.field,\n field,\n lookup,\n parent,\n );\n}\n\nexport function createSchemaLookup<A extends Record<string, SchemaField[]>>(\n schemaMap: A,\n): {\n getSchema(schemaId: keyof A): SchemaNode;\n getSchemaTree(schemaId: keyof A, additional?: SchemaField[]): SchemaTree;\n} {\n const lookup = {\n getSchemaTree,\n getSchema,\n };\n return lookup;\n\n function getSchema(schemaId: keyof A): SchemaNode {\n return getSchemaTree(schemaId)!.rootNode;\n }\n\n function getSchemaTree(\n schemaId: keyof A,\n additional?: SchemaField[],\n ): SchemaTree {\n const fields = schemaMap[schemaId];\n if (fields) {\n return new SchemaTreeImpl(\n additional ? [...fields, ...additional] : fields,\n lookup,\n );\n }\n return undefined!;\n }\n}\n\nexport function schemaForFieldRef(\n fieldRef: string | undefined,\n schema: SchemaNode,\n): SchemaNode {\n return schemaForFieldPath(fieldRef?.split(\"/\") ?? [], schema);\n}\n\nexport function traverseSchemaPath<A>(\n fieldPath: string[],\n schema: SchemaNode,\n acc: A,\n next: (acc: A, node: SchemaNode) => A,\n): A {\n let i = 0;\n while (i < fieldPath.length) {\n const nextField = fieldPath[i];\n let childNode = resolveSchemaNode(schema, nextField);\n if (!childNode) {\n childNode = createSchemaNode(\n missingField(nextField),\n schema.tree,\n schema,\n );\n }\n acc = next(acc, childNode);\n schema = childNode;\n i++;\n }\n return acc;\n}\n\nexport function traverseData(\n fieldPath: string[],\n root: SchemaNode,\n data: { [k: string]: any },\n): unknown {\n return traverseSchemaPath(\n fieldPath,\n root,\n data,\n (acc, n) => acc?.[n.field.field] as any,\n );\n}\n\nexport function schemaForFieldPath(\n fieldPath: string[],\n schema: SchemaNode,\n): SchemaNode {\n let i = 0;\n while (i < fieldPath.length) {\n const nextField = fieldPath[i];\n let childNode = resolveSchemaNode(schema, nextField);\n if (!childNode) {\n childNode = createSchemaNode(\n missingField(nextField),\n schema.tree,\n schema,\n );\n }\n schema = childNode;\n i++;\n }\n return schema;\n}\n\nexport function schemaForDataPath(\n fieldPath: string[],\n schema: SchemaNode,\n): DataPathNode {\n let i = 0;\n let element = schema.field.collection;\n while (i < fieldPath.length) {\n const nextField = fieldPath[i];\n let childNode: SchemaNode | undefined;\n if (nextField == \".\") {\n i++;\n continue;\n } else if (nextField == \"..\") {\n if (element) {\n element = false;\n i++;\n continue;\n }\n childNode = schema.parent;\n } else {\n childNode = schema.getChildNode(nextField);\n }\n if (!childNode) {\n childNode = createSchemaNode(\n missingField(nextField),\n schema.tree,\n schema,\n );\n } else {\n element = childNode.field.collection;\n }\n schema = childNode;\n i++;\n }\n return { node: schema, element: !!element };\n}\n\nexport function getParentDataPath({\n node,\n element,\n}: DataPathNode): DataPathNode | undefined {\n if (element) return { node, element: false };\n const parent = node.parent;\n return parent\n ? { node: parent, element: !!parent.field.collection }\n : undefined;\n}\n\nexport function getSchemaNodePath(node: SchemaNode) {\n const paths: string[] = [];\n let curNode: SchemaNode | undefined = node;\n while (curNode) {\n paths.push(curNode.field.field);\n curNode = curNode.parent;\n }\n return paths.reverse();\n}\n\nexport function getSchemaNodePathString(node: SchemaNode) {\n return getSchemaNodePath(node).join(\"/\");\n}\n\nexport function isCompoundNode(node: SchemaNode) {\n return isCompoundField(node.field);\n}\n\n/**\n * Returns the relative path from a parent node to a child node.\n * @param parent\n * @param child\n */\nexport function relativePath(parent: SchemaNode, child: SchemaNode): string {\n // return the path from child to parent\n if (parent.id === child.id) return \".\";\n\n const parentPath = getSchemaNodePath(parent);\n const childPath = getSchemaNodePath(child);\n return relativeSegmentPath(parentPath, childPath);\n}\n\n/**\n * Returns the relative path from a parent node to a child node.\n * @param parentPath\n * @param childPath\n */\nexport function relativeSegmentPath(\n parentPath: string[],\n childPath: string[],\n): string {\n let i = 0;\n while (\n i < parentPath.length &&\n i < childPath.length &&\n parentPath[i] === childPath[i]\n ) {\n i++;\n }\n\n const upLevels = parentPath.length - i;\n const downPath = childPath.slice(i).join(\"/\");\n\n return \"../\".repeat(upLevels) + downPath;\n}\n\nexport interface DataPathNode {\n node: SchemaNode;\n element: boolean;\n}\n","import {\n CompoundField,\n FieldOption,\n FieldType,\n isCompoundField,\n SchemaField,\n SchemaMap,\n} from \"./schemaField\";\n\nexport type AllowedSchema<T> = T extends string\n ? SchemaField & {\n type:\n | FieldType.String\n | FieldType.Date\n | FieldType.DateTime\n | FieldType.Time;\n }\n : T extends number\n ? SchemaField & {\n type: FieldType.Int | FieldType.Double;\n }\n : T extends boolean\n ? SchemaField & {\n type: FieldType.Bool;\n }\n : T extends Array<infer E>\n ? AllowedSchema<E> & {\n collection: true;\n }\n : T extends { [key: string]: any }\n ? CompoundField & {\n type: FieldType.Compound;\n }\n : SchemaField & { type: FieldType.Any };\n\ntype AllowedField<T, K> = (\n name: string,\n) => (SchemaField & { type: K }) | AllowedSchema<T>;\n\nexport function buildSchema<T, Custom = \"\">(def: {\n [K in keyof T]-?: AllowedField<T[K], Custom>;\n}): SchemaField[] {\n return Object.entries(def).map((x) =>\n (x[1] as (n: string) => SchemaField)(x[0]),\n );\n}\n\nexport type FieldBuilder<T extends FieldType, K> = (\n name: string,\n) => Omit<SchemaField, \"type\"> & { type: T } & K;\n\nexport function stringField(\n displayName: string,\n): FieldBuilder<FieldType.String, {}>;\n\nexport function stringField<S extends Partial<SchemaField>>(\n displayName: string,\n options: S,\n): FieldBuilder<FieldType.String, S>;\n\nexport function stringField(displayName: string, options?: any) {\n return makeScalarField({\n type: FieldType.String,\n displayName,\n ...options,\n });\n}\n\nexport function stringOptionsField(\n displayName: string,\n ...options: FieldOption[]\n) {\n return makeScalarField({\n type: FieldType.String as const,\n displayName,\n options,\n });\n}\n\nexport function withScalarOptions<\n S extends SchemaField,\n S2 extends Partial<SchemaField>,\n>(options: S2, v: (name: string) => S): (name: string) => S & S2 {\n return (n) => ({ ...v(n), ...options });\n}\n\nexport function makeScalarField<S extends Partial<SchemaField>>(\n options: S,\n): (name: string) => SchemaField & S {\n return (n) => ({ ...defaultScalarField(n, n), ...options });\n}\n\nexport function makeCompoundField<S extends Partial<CompoundField>>(\n options: S,\n): (name: string) => CompoundField & {\n type: FieldType.Compound;\n} & S {\n return (n) => ({ ...defaultCompoundField(n, n, false), ...options });\n}\n\nexport function intField(displayName: string): FieldBuilder<FieldType.Int, {}>;\n\nexport function intField<S extends Partial<SchemaField>>(\n displayName: string,\n options: S,\n): FieldBuilder<FieldType.Int, S>;\n\nexport function intField<S extends Partial<SchemaField>>(\n displayName: string,\n options?: S,\n) {\n return makeScalarField({\n type: FieldType.Int as const,\n displayName,\n ...(options as S),\n });\n}\n\nexport function doubleField(\n displayName: string,\n): FieldBuilder<FieldType.Double, {}>;\n\nexport function doubleField<S extends Partial<SchemaField>>(\n displayName: string,\n options: S,\n): FieldBuilder<FieldType.Double, S>;\n\nexport function doubleField<S extends Partial<SchemaField>>(\n displayName: string,\n options?: S,\n) {\n return makeScalarField({\n type: FieldType.Double as const,\n displayName,\n ...(options as S),\n });\n}\n\nexport function dateField(\n displayName: string,\n): FieldBuilder<FieldType.Date, {}>;\n\nexport function dateField<S extends Partial<SchemaField>>(\n displayName: string,\n options: S,\n): FieldBuilder<FieldType.Date, S>;\n\nexport function dateField<S extends Partial<SchemaField>>(\n displayName: string,\n options?: S,\n) {\n return makeScalarField({\n type: FieldType.Date as const,\n displayName,\n ...(options as S),\n });\n}\n\nexport function timeField<S extends Partial<SchemaField>>(\n displayName: string,\n options?: S,\n) {\n return makeScalarField({\n type: FieldType.Time as const,\n displayName,\n ...(options as S),\n });\n}\n\nexport function dateTimeField<S extends Partial<SchemaField>>(\n displayName: string,\n options?: S,\n) {\n return makeScalarField({\n type: FieldType.DateTime as const,\n displayName,\n ...(options as S),\n });\n}\n\nexport function boolField(\n displayName: string,\n): FieldBuilder<FieldType.Bool, {}>;\n\nexport function boolField<S extends Partial<SchemaField>>(\n displayName: string,\n options: S,\n): FieldBuilder<FieldType.Bool, S>;\n\nexport function boolField(displayName: string, options?: any) {\n return makeScalarField({\n type: FieldType.Bool as const,\n displayName,\n ...options,\n });\n}\n\nexport function compoundField<\n Other extends Partial<Omit<CompoundField, \"type\" | \"schemaType\">>,\n>(\n displayName: string,\n fields: SchemaField[],\n other?: Other,\n): (name: string) => CompoundField & {\n collection: Other[\"collection\"];\n} {\n return (field) =>\n ({\n ...defaultCompoundField(field, displayName, false),\n ...other,\n children: fields,\n }) as any;\n}\n\nexport function defaultScalarField(\n field: string,\n displayName: string,\n): Omit<SchemaField, \"type\"> & {\n type: FieldType.String;\n} {\n return {\n field,\n displayName,\n type: FieldType.String,\n };\n}\n\nexport function defaultCompoundField(\n field: string,\n displayName: string,\n collection: boolean,\n): CompoundField & {\n type: FieldType.Compound;\n} {\n return {\n field,\n displayName,\n type: FieldType.Compound,\n collection,\n children: [],\n };\n}\n\nexport function mergeField(\n field: SchemaField,\n mergeInto: SchemaField[],\n): SchemaField[] {\n const existing = mergeInto.find((x) => x.field === field.field);\n if (existing) {\n return mergeInto.map((x) =>\n x !== existing\n ? x\n : {\n ...x,\n onlyForTypes: mergeTypes(x.onlyForTypes, field.onlyForTypes),\n },\n );\n }\n return [...mergeInto, field];\n\n function mergeTypes(f?: string[] | null, s?: string[] | null) {\n if (!f) return s;\n if (!s) return f;\n const extras = s.filter((x) => !f.includes(x));\n return extras.length ? [...f, ...extras] : f;\n }\n}\n\nexport function mergeOption(\n fields: SchemaField[],\n name: string,\n value: any,\n fieldName: string,\n): SchemaField[] {\n return fields.map((x) =>\n x.field === fieldName ? addFieldOption(x, name, value) : x,\n );\n}\n\nexport function mergeFields(\n fields: SchemaField[],\n name: string,\n value: any,\n newFields: SchemaField[],\n): SchemaField[] {\n if (name === \"*\") {\n return newFields.reduce((af, x) => mergeField(x, af), fields);\n }\n const withType = fields.map((x) =>\n x.isTypeField ? addFieldOption(x, name, value) : x,\n );\n return newFields\n .map((x) => ({ ...x, onlyForTypes: [value] }))\n .reduce((af, x) => mergeField(x, af), withType);\n}\n\nexport function addFieldOption(\n typeField: SchemaField,\n name: string,\n value: any,\n): SchemaField {\n const options = typeField.options ?? [];\n if (options.some((x) => x.value === value)) return typeField;\n return {\n ...typeField,\n options: [...options, { name, value }],\n };\n}\n\nexport function resolveSchemas<A extends SchemaMap>(schemaMap: A): A {\n const out: SchemaMap = {};\n function resolveSchemaType(type: string) {\n if (type in out) {\n return out[type];\n }\n const resolvedFields: SchemaField[] = [];\n out[type] = resolvedFields;\n schemaMap[type].forEach((x) => {\n if (isCompoundField(x) && x.schemaRef) {\n resolvedFields.push({\n ...x,\n children: resolveSchemaType(x.schemaRef),\n } as CompoundField);\n } else {\n resolvedFields.push(x);\n }\n });\n return resolvedFields;\n }\n Object.keys(schemaMap).forEach(resolveSchemaType);\n return out as A;\n}\n","import {\n Control,\n ensureMetaValue,\n newControl,\n updateComputedValue,\n} from \"@astroapps/controls\";\nimport { missingField } from \"./schemaField\";\nimport { createSchemaNode, resolveSchemaNode, SchemaNode } from \"./schemaNode\";\nimport { SchemaInterface } from \"./schemaInterface\";\nimport { ControlDefinition, getDisplayOnlyOptions } from \"./controlDefinition\";\n\nexport abstract class SchemaDataTree {\n abstract rootNode: SchemaDataNode;\n\n abstract getChild(parent: SchemaDataNode, child: SchemaNode): SchemaDataNode;\n\n abstract getChildElement(\n parent: SchemaDataNode,\n elementIndex: number,\n ): SchemaDataNode;\n}\n\nexport class SchemaDataNode {\n constructor(\n public id: string,\n public schema: SchemaNode,\n public elementIndex: number | undefined,\n public control: Control<any>,\n public tree: SchemaDataTree,\n public parent?: SchemaDataNode,\n ) {}\n\n getChild(childNode: SchemaNode): SchemaDataNode {\n return this.tree.getChild(this, childNode);\n }\n\n getChildElement(elementIndex: number): SchemaDataNode {\n return this.tree.getChildElement(this, elementIndex);\n }\n}\n\nexport function getMetaFields<\n T extends Record<string, any> = Record<string, unknown>,\n>(control: Control<any>): Control<T> {\n return ensureMetaValue(\n control,\n \"metaFields\",\n () => newControl({}) as Control<T>,\n );\n}\nexport class SchemaDataTreeImpl extends SchemaDataTree {\n rootNode: SchemaDataNode;\n\n constructor(rootSchema: SchemaNode, rootControl: Control<any>) {\n super();\n this.rootNode = new SchemaDataNode(\n \"\",\n rootSchema,\n undefined,\n rootControl,\n this,\n );\n }\n\n getChild(parent: SchemaDataNode, childNode: SchemaNode): SchemaDataNode {\n let objControl = parent.control as Control<Record<string, unknown>>;\n if (childNode.field.meta) {\n objControl = getMetaFields(objControl);\n }\n const child = objControl.fields[childNode.field.field];\n return new SchemaDataNode(\n child.uniqueId.toString(),\n childNode,\n undefined,\n child,\n this,\n parent,\n );\n }\n\n getChildElement(\n parent: SchemaDataNode,\n elementIndex: number,\n ): SchemaDataNode {\n const elemControl = parent.control as Control<unknown[]>;\n const elemChild = elemControl.elements[elementIndex];\n return new SchemaDataNode(\n elemChild.uniqueId.toString() + \"_\" + elementIndex,\n parent.schema,\n elementIndex,\n elemChild,\n this,\n parent,\n );\n }\n}\n\n/**\n * @deprecated Use createSchemaDataNode instead.\n */\nexport const makeSchemaDataNode = createSchemaDataNode;\n\nexport function createSchemaDataNode(\n schema: SchemaNode,\n control: Control<unknown>,\n): SchemaDataNode {\n return new SchemaDataTreeImpl(schema, control).rootNode;\n}\n\nexport function schemaDataForFieldRef(\n fieldRef: string | undefined,\n schema: SchemaDataNode,\n): SchemaDataNode {\n return schemaDataForFieldPath(fieldRef?.split(\"/\") ?? [], schema);\n}\n\nexport function schemaDataForFieldPath(\n fieldPath: string[],\n dataNode: SchemaDataNode,\n): SchemaDataNode {\n let i = 0;\n while (i < fieldPath.length) {\n const nextField = fieldPath[i];\n let nextNode =\n nextField === \"..\"\n ? dataNode.parent\n : nextField === \".\"\n ? dataNode\n : lookupField(nextField);\n nextNode ??= createSchemaDataNode(\n createSchemaNode(\n missingField(nextField),\n dataNode.schema.tree,\n dataNode.schema,\n ),\n newControl(undefined),\n );\n dataNode = nextNode;\n i++;\n }\n return dataNode;\n\n function lookupField(field: string): SchemaDataNode | undefined {\n const childNode = resolveSchemaNode(dataNode.schema, field);\n if (childNode) {\n return dataNode.getChild(childNode);\n }\n return undefined;\n }\n}\n\nexport function validDataNode(context: SchemaDataNode): boolean {\n const parent = context.parent;\n if (!parent) return true;\n if (parent.schema.field.collection && parent.elementIndex == null)\n return validDataNode(parent);\n return ensureMetaValue(context.control, \"validForSchema\", () => {\n const c = newControl(true);\n updateComputedValue(c, () => {\n if (!validDataNode(parent)) return false;\n const types = context.schema.field.onlyForTypes;\n if (types == null || types.length === 0) return true;\n const typeNode = parent.schema\n .getChildNodes()\n .find((x) => x.field.isTypeField);\n if (typeNode == null) {\n console.warn(\"No type field found for\", parent.schema);\n return false;\n }\n const typeField = parent.getChild(typeNode).control as Control<string>;\n return typeField && types.includes(typeField.value);\n });\n return c;\n }).value;\n}\n\nexport function hideDisplayOnly(\n context: SchemaDataNode,\n schemaInterface: SchemaInterface,\n definition: ControlDefinition,\n) {\n const displayOptions = getDisplayOnlyOptions(definition);\n return (\n displayOptions &&\n !displayOptions.emptyText &&\n schemaInterface.isEmptyValue(context.schema.field, context.control?.value)\n );\n}\n\nexport function getLoadingControl(data: Control<any>): Control<boolean> {\n return ensureMetaValue(data, \"loading\", () => newControl(false));\n}\n\nexport function getRefreshingControl(data: Control<any>): Control<boolean> {\n return ensureMetaValue(data, \"refreshing\", () => newControl(false));\n}\n\nexport function getHasMoreControl(data: Control<any>): Control<boolean> {\n return ensureMetaValue(data, \"hasMore\", () => newControl(false));\n}\n","import {\n EqualityFunc,\n FieldOption,\n FieldType,\n SchemaField,\n ValidationMessageType,\n} from \"./schemaField\";\nimport { SchemaInterface } from \"./schemaInterface\";\nimport { SchemaDataNode } from \"./schemaDataNode\";\nimport { SchemaNode } from \"./schemaNode\";\nimport { Control, ControlSetup } from \"@astroapps/controls\";\n\nexport class DefaultSchemaInterface implements SchemaInterface {\n constructor(\n protected boolStrings: [string, string] = [\"No\", \"Yes\"],\n protected parseDateTime: (s: string) => number = (s) => Date.parse(s),\n ) {}\n\n parseToMillis(field: SchemaField, v: string): number {\n return this.parseDateTime(v);\n }\n\n validationMessageText(\n field: SchemaField,\n messageType: ValidationMessageType,\n actual: any,\n expected: any,\n ): string {\n switch (messageType) {\n case ValidationMessageType.NotEmpty:\n return \"Please enter a value\";\n case ValidationMessageType.MinLength:\n return \"Length must be at least \" + expected;\n case ValidationMessageType.MaxLength:\n return \"Length must be less than \" + expected;\n case ValidationMessageType.NotBeforeDate:\n return `Date must not be before ${new Date(expected).toDateString()}`;\n case ValidationMessageType.NotAfterDate:\n return `Date must not be after ${new Date(expected).toDateString()}`;\n default:\n return \"Unknown error\";\n }\n }\n\n getDataOptions(node: SchemaDataNode): FieldOption[] | null | undefined {\n return this.getNodeOptions(node.schema);\n }\n\n getNodeOptions(node: SchemaNode): FieldOption[] | null | undefined {\n return this.getOptions(node.field);\n }\n\n getOptions({ options }: SchemaField): FieldOption[] | null | undefined {\n return options && options.length > 0 ? options : null;\n }\n\n getFilterOptions(\n array: SchemaDataNode,\n field: SchemaNode,\n ): FieldOption[] | undefined | null {\n return this.getNodeOptions(field);\n }\n\n isEmptyValue(f: SchemaField, value: any): boolean {\n if (f.collection)\n return Array.isArray(value) ? value.length === 0 : value == null;\n switch (f.type) {\n case FieldType.String:\n case FieldType.DateTime:\n case FieldType.Date:\n case FieldType.Time:\n return !value;\n default:\n return value == null;\n }\n }\n\n searchText(field: SchemaField, value: any): string {\n return this.textValue(field, value)?.toLowerCase() ?? \"\";\n }\n\n textValueForData(dataNode: SchemaDataNode): string | undefined {\n const options = this.getDataOptions(dataNode);\n return this.textValue(\n dataNode.schema.field,\n dataNode.control.value,\n dataNode.elementIndex != null,\n options,\n );\n }\n textValue(\n field: SchemaField,\n value: any,\n element?: boolean | undefined,\n options?: FieldOption[] | null,\n ): string | undefined {\n const actualOptions = options ?? this.getOptions(field);\n const option = actualOptions?.find((x) => x.value === value);\n if (option) return option.name;\n switch (field.type) {\n case FieldType.Date:\n return value ? new Date(value).toLocaleDateString() : undefined;\n case FieldType.DateTime:\n return value\n ? new Date(this.parseToMillis(field, value)).toLocaleString()\n : undefined;\n case FieldType.Time:\n return value\n ? new Date(\"1970-01-01T\" + value).toLocaleTimeString()\n : undefined;\n case FieldType.Bool:\n return value != null ? this.boolStrings[value ? 1 : 0] : undefined;\n default:\n return value != null ? value.toString() : undefined;\n }\n }\n\n controlLength(f: SchemaField, control: Control<any>): number {\n return f.collection\n ? (control.elements?.length ?? 0)\n : this.valueLength(f, control.value);\n }\n\n valueLength(field: SchemaField, value: any): number {\n const len = value?.length;\n return typeof len === \"number\" ? len : 0;\n }\n\n compareValue(field: SchemaField, v1: unknown, v2: unknown): number {\n if (v1 == null) return v2 == null ? 0 : 1;\n if (v2 == null) return -1;\n switch (field.type) {\n case FieldType.Date:\n case FieldType.DateTime:\n case FieldType.Time:\n case FieldType.String:\n return (v1 as string).localeCompare(v2 as string);\n case FieldType.Bool:\n return v1 === v2 ? 0 : !v1 ? -1 : 1;\n case FieldType.Int:\n case FieldType.Double:\n return (v1 as number) - (v2 as number);\n default:\n return 0;\n }\n }\n\n compoundFieldSetup(f: SchemaNode): [string, ControlSetup<any>][] {\n return f.getChildNodes().map((x) => {\n const { field } = x.field;\n return [field, this.makeControlSetup(x)];\n });\n }\n\n compoundFieldEquality(f: SchemaNode): [string, EqualityFunc][] {\n return f.getChildNodes().map((x) => {\n const { field } = x.field;\n return [field, (a, b) => this.makeEqualityFunc(x)(a[field], b[field])];\n });\n }\n\n makeEqualityFunc(field: SchemaNode, element?: boolean): EqualityFunc {\n if (field.field.collection && !element) {\n const elemEqual = this.makeEqualityFunc(field, true);\n return (a, b) => {\n if (a === b) return true;\n if (a == null || b == null) return false;\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (!elemEqual(a[i], b[i])) return false;\n }\n return true;\n };\n }\n switch (field.field.type) {\n case FieldType.Compound:\n const allChecks = this.compoundFieldEquality(field);\n return (a, b) =>\n a === b ||\n (a != null && b != null && allChecks.every((x) => x[1](a, b)));\n default:\n return (a, b) => a === b;\n }\n }\n makeControlSetup(field: SchemaNode, element?: boolean): ControlSetup<any> {\n let setup: ControlSetup<any> = {\n equals: this.makeEqualityFunc(field, element),\n };\n if (field.field.collection && !element) {\n setup.elems = this.makeControlSetup(field, true);\n return setup;\n }\n switch (field.field.type) {\n case FieldType.Compound:\n setup.fields = Object.fromEntries(this.compoundFieldSetup(field));\n }\n return setup;\n }\n}\n\nexport const defaultSchemaInterface: SchemaInterface =\n new DefaultSchemaInterface();\n","import {\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n GroupedControlsDefinition,\n GroupRenderType,\n isDataControl,\n isGroupControl,\n} from \"./controlDefinition\";\nimport { schemaDataForFieldPath, SchemaDataNode } from \"./schemaDataNode\";\n\nexport type ControlMap = { [k: string]: ControlDefinition };\n\nexport class FormNode {\n constructor(\n public id: string,\n public definition: ControlDefinition,\n public tree: FormTree,\n public parent?: FormNode,\n ) {}\n\n visit<A>(visitFn: (n: FormNode) => A | undefined): A | undefined {\n const res = visitFn(this);\n if (res !== undefined) return res;\n const children = this.getUnresolvedChildNodes();\n for (const child of children) {\n const res = child.visit(visitFn);\n if (res !== undefined) return res;\n }\n return undefined;\n }\n\n getResolvedChildren(): ControlDefinition[] {\n const childRefId = this.definition.childRefId;\n const parent = childRefId ? this.tree.getByRefId(childRefId) : undefined;\n return (parent ?? this.definition)?.children ?? [];\n }\n\n createChildNode(childId: string, childDef: ControlDefinition) {\n return new FormNode(\n this.tree.getChildId(this.id, childId, childDef),\n childDef,\n this.tree,\n this,\n );\n }\n\n getChildNodes(): FormNode[] {\n const resolved = this.getResolvedChildren();\n return resolved.map((x, i) => this.createChildNode(i.toString(), x));\n }\n\n getUnresolvedChildNodes(): FormNode[] {\n return (\n this.definition.children?.map((x, i) =>\n this.createChildNode(i.toString(), x),\n ) ?? []\n );\n }\n}\n\nexport interface FormTreeLookup {\n getForm(formId: string): FormTree | undefined;\n}\n\nexport abstract class FormTree implements FormTreeLookup {\n abstract rootNode: FormNode;\n\n abstract getByRefId(id: string): ControlDefinition | undefined;\n\n abstract getForm(formId: string): FormTree | undefined;\n\n getChildId(\n parentId: string,\n childId: string,\n control: ControlDefinition,\n ): string {\n return parentId + \"/\" + childId;\n }\n}\n\nfunction getControlIds(\n definition: ControlDefinition,\n): [string, ControlDefinition][] {\n const childEntries = definition.children?.flatMap(getControlIds) ?? [];\n return !definition.id\n ? childEntries\n : [[definition.id, definition], ...childEntries];\n}\n\nexport function createControlMap(control: ControlDefinition): ControlMap {\n return Object.fromEntries(getControlIds(control));\n}\n\nclass FormTreeImpl extends FormTree {\n controlMap: ControlMap;\n rootNode: FormNode;\n\n constructor(\n private forms: FormTreeLookup,\n root: ControlDefinition,\n ) {\n super();\n this.rootNode = new FormNode(\"\", root, this);\n this.controlMap = createControlMap(root);\n }\n\n getByRefId(id: string): ControlDefinition | undefined {\n return this.controlMap[id];\n }\n\n getForm(formId: string): FormTree | undefined {\n return this.forms.getForm(formId);\n }\n}\n\nexport function legacyFormNode(definition: ControlDefinition) {\n return createFormTree([definition]).rootNode;\n}\n\nexport function createFormTree(\n controls: ControlDefinition[],\n getForm: FormTreeLookup = { getForm: () => undefined },\n): FormTree {\n return new FormTreeImpl(\n getForm,\n controls.length === 1\n ? controls[0]\n : ({\n type: ControlDefinitionType.Group,\n children: controls,\n groupOptions: {\n type: GroupRenderType.Standard,\n hideTitle: true,\n },\n } as GroupedControlsDefinition),\n );\n}\n\nexport function createFormLookup<A extends Record<string, ControlDefinition[]>>(\n formMap: A,\n): {\n getForm(formId: keyof A): FormTree;\n} {\n const lookup = {\n getForm,\n };\n const forms = Object.fromEntries(\n Object.entries(formMap).map(([k, v]) => [k, createFormTree(v, lookup)]),\n );\n return lookup;\n\n function getForm(formId: keyof A): FormTree {\n return forms[formId as string];\n }\n}\n\nexport function fieldPathForDefinition(\n c: ControlDefinition,\n): string[] | undefined {\n const fieldName = isGroupControl(c)\n ? c.compoundField\n : isDataControl(c)\n ? c.field\n : undefined;\n return fieldName?.split(\"/\");\n}\n\nexport function lookupDataNode(\n c: ControlDefinition,\n parentNode: SchemaDataNode,\n) {\n const fieldNamePath = fieldPathForDefinition(c);\n return fieldNamePath\n ? schemaDataForFieldPath(fieldNamePath, parentNode)\n : undefined;\n}\n\n/**\n * @deprecated use visitFormNodeData instead\n */\nexport function visitControlDataArray<A>(\n controls: ControlDefinition[] | undefined | null,\n context: SchemaDataNode,\n cb: (\n definition: DataControlDefinition,\n node: SchemaDataNode,\n ) => A | undefined,\n): A | undefined {\n if (!controls) return undefined;\n for (const c of controls) {\n const r = visitControlData(c, context, cb);\n if (r !== undefined) return r;\n }\n return undefined;\n}\n\n/**\n * @deprecated use visitFormDataInContext instead\n */\nexport function visitControlData<A>(\n definition: ControlDefinition,\n ctx: SchemaDataNode,\n cb: (\n definition: DataControlDefinition,\n field: SchemaDataNode,\n ) => A | undefined,\n): A | undefined {\n return visitFormDataInContext(ctx, legacyFormNode(definition), (n, d) =>\n cb(d, n),\n );\n}\n\nexport type ControlDataVisitor<A> = (\n dataNode: SchemaDataNode,\n definition: DataControlDefinition,\n) => A | undefined;\n\nexport function visitFormData<A>(\n node: FormNode,\n dataNode: SchemaDataNode,\n cb: ControlDataVisitor<A>,\n notSelf?: boolean,\n): A | undefined {\n const def = node.definition;\n const result = !notSelf && isDataControl(def) ? cb(dataNode, def) : undefined;\n if (result !== undefined) return result;\n if (dataNode.elementIndex == null && dataNode.schema.field.collection) {\n const l = dataNode.control.elements.length;\n for (let i = 0; i < l; i++) {\n const elemChild = dataNode.getChildElement(i);\n const elemResult = visitFormData(node, elemChild, cb);\n if (elemResult !== undefined) return elemResult;\n }\n return undefined;\n }\n if (dataNode.control.isNull) return undefined;\n const children = node.getChildNodes();\n const l = children.length;\n for (let i = 0; i < l; i++) {\n const elemResult = visitFormDataInContext(dataNode, children[i], cb);\n if (elemResult !== undefined) return elemResult;\n }\n return undefined;\n}\n\nexport function visitFormDataInContext<A>(\n parentContext: SchemaDataNode,\n node: FormNode,\n cb: ControlDataVisitor<A>,\n): A | undefined {\n const dataNode = lookupDataNode(node.definition, parentContext);\n return visitFormData(node, dataNode ?? parentContext, cb, !dataNode);\n}\n","import {\n addDependent,\n CleanupScope,\n Control, ControlSetup,\n newControl,\n updateComputedValue\n} from \"@astroapps/controls\";\n\n/**\n * Type representing a JSON path, which can be a string or a number.\n */\nexport type JsonPath = string | number;\n\n/**\n * Converts a JSON path array to a string.\n * @param jsonPath - The JSON path array to convert.\n * @param customIndex - Optional function to customize the index format.\n * @returns The JSON path string.\n */\nexport function jsonPathString(\n jsonPath: JsonPath[],\n customIndex?: (n: number) => string,\n) {\n let out = \"\";\n jsonPath.forEach((v, i) => {\n if (typeof v === \"number\") {\n out += customIndex?.(v) ?? \"[\" + v + \"]\";\n } else {\n if (i > 0) out += \".\";\n out += v;\n }\n });\n return out;\n}\n\nexport function createScopedComputed<T>(\n parent: CleanupScope,\n compute: () => T,\n): Control<T> {\n const c = newControl<any>(undefined);\n updateComputedValue(c, compute);\n addDependent(parent, c);\n return c.as();\n}\n\nexport function createScoped<T>(parent: CleanupScope, value: T, setup?: ControlSetup<T>): Control<T> {\n const c = newControl<T>(value, setup);\n addDependent(parent, c);\n return c;\n}\n","import {\n DataExpression,\n DataMatchExpression,\n EntityExpression,\n ExpressionType,\n JsonataExpression,\n NotEmptyExpression,\n} from \"./entityExpression\";\nimport {\n AsyncEffect,\n ChangeListenerFunc,\n CleanupScope,\n collectChanges,\n Control,\n createAsyncEffect,\n createSyncEffect,\n trackedValue,\n} from \"@astroapps/controls\";\nimport { schemaDataForFieldRef, SchemaDataNode } from \"./schemaDataNode\";\nimport { SchemaInterface } from \"./schemaInterface\";\nimport jsonata from \"jsonata\";\nimport { getJsonPath, getRootDataNode } from \"./controlDefinition\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { createScopedComputed, jsonPathString } from \"./util\";\n\nexport interface ExpressionEvalContext {\n scope: CleanupScope;\n returnResult: (k: unknown) => void;\n dataNode: SchemaDataNode;\n schemaInterface: SchemaInterface;\n variables?: (changes: ChangeListenerFunc<any>) => Record<string, any>;\n runAsync(effect: () => void): void;\n}\n\nexport type ExpressionEval<T extends EntityExpression> = (\n expr: T,\n context: ExpressionEvalContext,\n) => void;\n\nconst dataEval: ExpressionEval<DataExpression> = (\n fvExpr,\n { dataNode: node, returnResult, scope },\n) => {\n createSyncEffect(() => {\n const otherField = schemaDataForFieldRef(fvExpr.field, node);\n returnResult(otherField.control?.value);\n }, scope);\n};\nconst dataMatchEval: ExpressionEval<DataMatchExpression> = (\n matchExpr,\n { dataNode, returnResult, scope },\n) => {\n createSyncEffect(() => {\n const otherField = schemaDataForFieldRef(matchExpr.field, dataNode);\n const fv = otherField?.control.value;\n returnResult(\n Array.isArray(fv) ? fv.includes(matchExpr.value) : fv === matchExpr.value,\n );\n }, scope);\n};\n\nconst notEmptyEval: ExpressionEval<NotEmptyExpression> = (\n expr,\n { returnResult, dataNode, scope, schemaInterface },\n) => {\n createSyncEffect(() => {\n const otherField = schemaDataForFieldRef(expr.field, dataNode);\n const fv = otherField.control?.value;\n const field = otherField.schema.field;\n const empty = !!expr.empty;\n returnResult(field && empty === schemaInterface.isEmptyValue(field, fv));\n }, scope);\n};\n\nexport const jsonataEval: ExpressionEval<JsonataExpression> = (\n expr,\n { scope, returnResult, dataNode, variables, runAsync },\n) => {\n const path = getJsonPath(dataNode);\n const pathString = jsonPathString(path, (x) => `#$i[${x}]`);\n const rootData = getRootDataNode(dataNode).control;\n\n const parsedJsonata = createScopedComputed(scope, () => {\n const jExpr = expr.expression;\n const fullExpr = pathString ? pathString + \".(\" + jExpr + \")\" : jExpr;\n try {\n return { expr: jsonata(fullExpr ? fullExpr : \"null\"), fullExpr };\n } catch (e) {\n console.error(e);\n return { expr: jsonata(\"null\"), fullExpr };\n }\n });\n\n async function runJsonata(effect: AsyncEffect<any>, signal: AbortSignal) {\n const trackedVars = variables?.(effect.collectUsage);\n const evalResult = await parsedJsonata.fields.expr.value.evaluate(\n trackedValue(rootData, effect.collectUsage),\n trackedVars,\n );\n // console.log(\n // rootData,\n // parsedJsonata.fields.fullExpr.current.value,\n // evalResult,\n // trackedVars,\n // );\n collectChanges(effect.collectUsage, () => returnResult(evalResult));\n }\n\n const asyncEffect = createAsyncEffect(runJsonata, scope);\n runAsync(() => asyncEffect.start());\n};\n\nexport const uuidEval: ExpressionEval<EntityExpression> = (_, ctx) => {\n ctx.returnResult(uuidv4());\n};\n\nexport const defaultEvaluators: Record<string, ExpressionEval<any>> = {\n [ExpressionType.DataMatch]: dataMatchEval,\n [ExpressionType.Data]: dataEval,\n [ExpressionType.NotEmpty]: notEmptyEval,\n [ExpressionType.Jsonata]: jsonataEval,\n [ExpressionType.UUID]: uuidEval,\n};\n\nexport function createEvalExpr(\n evalExpression: (e: EntityExpression, ctx: ExpressionEvalContext) => void,\n context: Omit<ExpressionEvalContext, \"returnResult\" | \"scope\">,\n) {\n function evalExpr<A>(\n scope: CleanupScope,\n init: A,\n nk: Control<A>,\n e: EntityExpression | undefined,\n coerce: (t: unknown) => any,\n ): boolean {\n nk.value = init;\n if (e?.type) {\n evalExpression(e, {\n returnResult: (r) => {\n nk.value = coerce(r);\n },\n scope,\n ...context,\n });\n return true;\n }\n return false;\n }\n return evalExpr;\n}\n","import { Control, getCurrentFields } from \"@astroapps/controls\";\n\nexport function createOverrideProxy<\n A extends object,\n B extends Record<string, any>,\n>(proxyFor: A, handlers: Control<B>): A {\n const overrides = getCurrentFields(handlers);\n const allOwn = Reflect.ownKeys(proxyFor);\n Reflect.ownKeys(overrides).forEach((k) => {\n if (!allOwn.includes(k)) allOwn.push(k);\n });\n return new Proxy(proxyFor, {\n get(target: A, p: string | symbol, receiver: any): any {\n if (Object.hasOwn(overrides, p)) {\n const nv = overrides[p as keyof B]!.value;\n if (nv !== NoOverride) return nv;\n }\n return Reflect.get(target, p, receiver);\n },\n ownKeys(target: A): ArrayLike<string | symbol> {\n return allOwn;\n },\n has(target: A, p: string | symbol): boolean {\n return Reflect.has(proxyFor, p) || Reflect.has(overrides, p);\n },\n getOwnPropertyDescriptor(target, k) {\n if (Object.hasOwn(overrides, k))\n return {\n enumerable: true,\n configurable: true,\n };\n return Reflect.getOwnPropertyDescriptor(target, k);\n },\n });\n}\n\nclass NoValue {}\nexport const NoOverride = new NoValue();\n\nexport type KeysOfUnion<T> = T extends T ? keyof T : never;\n","import {\n DateComparison,\n DateValidator,\n JsonataValidator,\n LengthValidator,\n SchemaValidator,\n ValidatorType,\n} from \"./schemaValidator\";\nimport { ControlDefinition, isDataControl } from \"./controlDefinition\";\nimport { SchemaDataNode } from \"./schemaDataNode\";\nimport {\n CleanupScope,\n Control,\n ControlChange,\n createCleanupScope,\n createEffect,\n trackControlChange,\n} from \"@astroapps/controls\";\nimport { ValidationMessageType } from \"./schemaField\";\nimport { SchemaInterface } from \"./schemaInterface\";\nimport { jsonataEval } from \"./evalExpression\";\nimport { ExpressionType } from \"./entityExpression\";\nimport { createScopedComputed } from \"./util\";\nimport { FormStateBaseImpl, VariablesFunc } from \"./formStateNode\";\n\nexport interface ValidationEvalContext {\n addSync(validate: (value: unknown) => string | undefined | null): void;\n addCleanup(cleanup: () => void): void;\n validationEnabled: Control<boolean>;\n parentData: SchemaDataNode;\n data: SchemaDataNode;\n schemaInterface: SchemaInterface;\n variables?: VariablesFunc;\n runAsync(af: () => void): void;\n}\n\nexport type ValidatorEval<T extends SchemaValidator> = (\n validation: T,\n context: ValidationEvalContext,\n) => void;\n\nexport const jsonataValidator: ValidatorEval<JsonataValidator> = (\n validation,\n context,\n) => {\n const error = createScopedComputed(context, () => undefined);\n jsonataEval(\n { type: ExpressionType.Jsonata, expression: validation.expression },\n {\n scope: error,\n dataNode: context.parentData,\n returnResult: (v) => {\n trackControlChange(context.data.control, ControlChange.Validate);\n // console.log(\"Setting jsonata error\", v);\n context.data.control.setError(\"jsonata\", v?.toString());\n },\n schemaInterface: context.schemaInterface,\n variables: context.variables,\n runAsync: context.runAsync,\n },\n );\n};\n\nexport const lengthValidator: ValidatorEval<LengthValidator> = (\n lv,\n context,\n) => {\n const { schemaInterface } = context;\n context.addSync(() => {\n const field = context.data.schema.field;\n const control = context.data.control;\n const len = schemaInterface.controlLength(field, control);\n if (lv.min != null && len < lv.min) {\n if (field?.collection) {\n control.setValue((v) =>\n Array.isArray(v)\n ? v.concat(Array.from({ length: lv.min! - v.length }))\n : Array.from({ length: lv.min! }),\n );\n } else {\n return schemaInterface.validationMessageText(\n field,\n ValidationMessageType.MinLength,\n len,\n lv.min,\n );\n }\n } else if (lv.max != null && len > lv.max) {\n return schemaInterface.validationMessageText(\n field,\n ValidationMessageType.MaxLength,\n len,\n lv.max,\n );\n }\n return undefined;\n });\n};\n\nexport const dateValidator: ValidatorEval<DateValidator> = (dv, context) => {\n const { schemaInterface } = context;\n const field = context.data.schema.field;\n let comparisonDate: number;\n if (dv.fixedDate) {\n comparisonDate = schemaInterface.parseToMillis(field, dv.fixedDate);\n } else {\n const nowDate = new Date();\n comparisonDate = Date.UTC(\n nowDate.getFullYear(),\n nowDate.getMonth(),\n nowDate.getDate(),\n );\n if (dv.daysFromCurrent) {\n comparisonDate += dv.daysFromCurrent * 86400000;\n }\n }\n\n context.addSync((v) => {\n if (v) {\n const selDate = schemaInterface.parseToMillis(field, v as string);\n const notAfter = dv.comparison === DateComparison.NotAfter;\n if (notAfter ? selDate > comparisonDate : selDate < comparisonDate) {\n return schemaInterface.validationMessageText(\n field,\n notAfter\n ? ValidationMessageType.NotAfterDate\n : ValidationMessageType.NotBeforeDate,\n selDate,\n comparisonDate,\n );\n }\n }\n return null;\n });\n};\n\nexport const defaultValidators: Record<string, ValidatorEval<any>> = {\n [ValidatorType.Jsonata]: jsonataValidator,\n [ValidatorType.Length]: lengthValidator,\n [ValidatorType.Date]: dateValidator,\n};\n\nexport function createValidators(\n def: ControlDefinition,\n context: ValidationEvalContext,\n): void {\n if (isDataControl(def)) {\n const { schemaInterface } = context;\n if (def.required) {\n context.addSync((v) => {\n const field = context.data.schema.field;\n return schemaInterface.isEmptyValue(field, v)\n ? def.requiredErrorText\n ? def.requiredErrorText\n : schemaInterface.validationMessageText(\n field,\n ValidationMessageType.NotEmpty,\n false,\n true,\n )\n : null;\n });\n }\n def.validators?.forEach((x) => defaultValidators[x.type]?.(x, context));\n }\n}\n\nexport function setupValidation(\n scope: CleanupScope,\n variables: VariablesFunc | undefined,\n definition: ControlDefinition,\n dataNode: Control<SchemaDataNode | undefined>,\n schemaInterface: SchemaInterface,\n parent: SchemaDataNode,\n visible: Control<boolean | null>,\n runAsync: (af: () => void) => void,\n) {\n const validationEnabled = createScopedComputed(scope, () => !!visible.value);\n const validatorsScope = createCleanupScope();\n createEffect(\n () => {\n validatorsScope.cleanup();\n const dn = dataNode.value;\n if (dn) {\n let syncValidations: ((v: unknown) => string | undefined | null)[] = [];\n createValidators(definition, {\n data: dn,\n parentData: parent,\n validationEnabled,\n schemaInterface,\n addSync(validate: (v: unknown) => string | undefined | null) {\n syncValidations.push(validate);\n },\n addCleanup(cleanup: () => void) {\n validatorsScope.addCleanup(cleanup);\n },\n variables,\n runAsync,\n });\n\n createEffect(\n () => {\n if (!validationEnabled.value) return undefined;\n trackControlChange(dn.control, ControlChange.Validate);\n const value = dn.control.value;\n let error = null;\n for (const syncValidation of syncValidations) {\n error = syncValidation(value);\n if (error) break;\n }\n return error;\n },\n (e) => {\n dn.control.setError(\"default\", e);\n },\n validatorsScope,\n );\n }\n },\n (c) => {},\n scope,\n );\n}\n","import { FormNode, lookupDataNode } from \"./formNode\";\nimport {\n hideDisplayOnly,\n SchemaDataNode,\n validDataNode,\n} from \"./schemaDataNode\";\nimport { SchemaInterface } from \"./schemaInterface\";\nimport { FieldOption } from \"./schemaField\";\nimport {\n ChangeListenerFunc,\n CleanupScope,\n Control,\n createScopedEffect,\n createSyncEffect,\n newControl,\n updateComputedValue,\n updateElements,\n} from \"@astroapps/controls\";\nimport { createEvalExpr, ExpressionEvalContext } from \"./evalExpression\";\nimport { EntityExpression } from \"./entityExpression\";\nimport { createScoped } from \"./util\";\nimport {\n AnyControlDefinition,\n ControlAdornmentType,\n ControlDefinition,\n ControlDisableType,\n DataGroupRenderOptions,\n DataRenderType,\n DynamicPropertyType,\n getGroupRendererOptions,\n GridRendererOptions,\n HtmlDisplay,\n isActionControl,\n isControlDisabled,\n isControlReadonly,\n isDataControl,\n isDataGroupRenderer,\n isDisplayControl,\n isGroupControl,\n isHtmlDisplay,\n isTextDisplay,\n TextDisplay,\n} from \"./controlDefinition\";\nimport { createOverrideProxy, KeysOfUnion, NoOverride } from \"./overrideProxy\";\nimport { ChildNodeSpec, ChildResolverFunc } from \"./resolveChildren\";\nimport { setupValidation } from \"./validators\";\nimport { groupedControl } from \"./controlBuilder\";\n\nexport type EvalExpr = <A>(\n scope: CleanupScope,\n init: A,\n nk: Control<A>,\n e: EntityExpression | undefined,\n coerce: (t: unknown) => any,\n) => boolean;\n\nexport type VariablesFunc = (\n changes: ChangeListenerFunc<any>,\n) => Record<string, any>;\nexport interface FormNodeOptions {\n forceReadonly?: boolean;\n forceDisabled?: boolean;\n forceHidden?: boolean;\n variables?: VariablesFunc;\n}\nexport interface FormGlobalOptions {\n schemaInterface: SchemaInterface;\n evalExpression: (e: EntityExpression, ctx: ExpressionEvalContext) => void;\n resolveChildren(c: FormStateNode): ChildNodeSpec[];\n runAsync: (af: () => void) => void;\n clearHidden: boolean;\n}\n\nexport interface ResolvedDefinition {\n definition: ControlDefinition;\n display?: string;\n stateId?: string;\n style?: object;\n layoutStyle?: object;\n fieldOptions?: FieldOption[];\n}\n\nexport interface FormStateBase {\n parent: SchemaDataNode;\n dataNode?: SchemaDataNode | undefined;\n readonly: boolean;\n visible: boolean | null;\n disabled: boolean;\n resolved: ResolvedDefinition;\n childIndex: number;\n busy: boolean;\n}\n\nexport interface FormNodeUi {\n ensureVisible(): void;\n ensureChildVisible(childIndex: number): void;\n getDisabler(type: ControlDisableType): () => () => void;\n}\n\nexport interface FormStateNode extends FormStateBase, FormNodeOptions {\n childKey: string | number;\n uniqueId: string;\n definition: ControlDefinition;\n schemaInterface: SchemaInterface;\n valid: boolean;\n touched: boolean;\n clearHidden: boolean;\n variables?: (changes: ChangeListenerFunc<any>) => Record<string, any>;\n meta: Record<string, any>;\n form: FormNode | undefined | null;\n children: FormStateNode[];\n parentNode: FormStateNode | undefined;\n setTouched(b: boolean, notChildren?: boolean): void;\n validate(): boolean;\n getChildCount(): number;\n getChild(index: number): FormStateNode | undefined;\n ensureMeta<A>(key: string, init: (scope: CleanupScope) => A): A;\n cleanup(): void;\n ui: FormNodeUi;\n attachUi(f: FormNodeUi): void;\n setBusy(busy: boolean): void;\n setForceDisabled(forceDisable: boolean): void;\n}\nexport function createEvaluatedDefinition(\n def: ControlDefinition,\n evalExpr: EvalExpr,\n scope: CleanupScope,\n display: Control<string | undefined>,\n): ControlDefinition {\n const definitionOverrides = createScoped<Record<string, any>>(scope, {});\n const displayOverrides = createScoped<Record<string, any>>(scope, {});\n const groupOptionsOverrides = createScoped<Record<string, any>>(scope, {});\n const renderOptionsOverrides = createScoped<Record<string, any>>(scope, {});\n\n const {\n hidden,\n displayData,\n readonly,\n disabled,\n defaultValue,\n actionData,\n title,\n groupOptions,\n renderOptions,\n } = definitionOverrides.fields as Record<\n KeysOfUnion<AnyControlDefinition>,\n Control<any>\n >;\n\n const { columns } = groupOptionsOverrides.fields as Record<\n KeysOfUnion<GridRendererOptions>,\n Control<any>\n >;\n\n const { groupOptions: dataGroupRenderOptions } =\n renderOptionsOverrides.fields as Record<\n KeysOfUnion<DataGroupRenderOptions>,\n Control<any>\n >;\n\n const { html, text } = displayOverrides.fields as Record<\n KeysOfUnion<TextDisplay | HtmlDisplay>,\n Control<any>\n >;\n\n updateComputedValue(dataGroupRenderOptions, () =>\n isDataControl(def) && isDataGroupRenderer(def.renderOptions)\n ? createOverrideProxy(\n (def.renderOptions.groupOptions as GridRendererOptions) ?? {},\n groupOptionsOverrides,\n )\n : undefined,\n );\n\n updateComputedValue(displayData, () =>\n isDisplayControl(def)\n ? createOverrideProxy(def.displayData, displayOverrides)\n : undefined,\n );\n\n updateComputedValue(groupOptions, () => {\n const groupOptions = getGroupRendererOptions(def);\n return groupOptions\n ? createOverrideProxy(groupOptions, groupOptionsOverrides)\n : undefined;\n });\n\n updateComputedValue(renderOptions, () =>\n isDataControl(def)\n ? createOverrideProxy(def.renderOptions ?? {}, renderOptionsOverrides)\n : undefined,\n );\n\n evalDynamic(\n hidden,\n DynamicPropertyType.Visible,\n // Make sure it's not null if no scripting\n (x) => (x ? def.hidden : !!def.hidden),\n (r) => !r,\n );\n\n evalDynamic(\n readonly,\n DynamicPropertyType.Readonly,\n () => isControlReadonly(def),\n (r) => !!r,\n );\n\n createScopedEffect((c) => {\n evalExpr(\n c,\n isControlDisabled(def),\n disabled,\n firstExpr(DynamicPropertyType.Disabled),\n (r) => !!r,\n );\n }, definitionOverrides);\n\n createScopedEffect((c) => {\n const groupOptions = getGroupRendererOptions(def);\n evalExpr(\n c,\n (groupOptions as GridRendererOptions)?.columns,\n columns,\n groupOptions ? firstExpr(DynamicPropertyType.GridColumns) : undefined,\n (r) => (typeof r === \"number\" ? r : undefined),\n );\n }, groupOptionsOverrides);\n\n createScopedEffect((c) => {\n evalExpr(\n c,\n isDataControl(def) ? def.defaultValue : undefined,\n defaultValue,\n isDataControl(def)\n ? firstExpr(DynamicPropertyType.DefaultValue)\n : undefined,\n (r) => r,\n );\n }, definitionOverrides);\n\n createScopedEffect((c) => {\n evalExpr(\n c,\n isActionControl(def) ? def.actionData : undefined,\n actionData,\n isActionControl(def)\n ? firstExpr(DynamicPropertyType.ActionData)\n : undefined,\n (r) => r,\n );\n }, definitionOverrides);\n\n createScopedEffect((c) => {\n evalExpr(\n c,\n def.title,\n title,\n firstExpr(DynamicPropertyType.Label),\n coerceString,\n );\n }, definitionOverrides);\n\n createSyncEffect(() => {\n if (isDisplayControl(def)) {\n if (display.value !== undefined) {\n text.value = isTextDisplay(def.displayData)\n ? display.value\n : NoOverride;\n html.value = isHtmlDisplay(def.displayData)\n ? display.value\n : NoOverride;\n } else {\n text.value = NoOverride;\n html.value = NoOverride;\n }\n }\n }, displayOverrides);\n\n return createOverrideProxy(def, definitionOverrides);\n\n function firstExpr(\n property: DynamicPropertyType,\n ): EntityExpression | undefined {\n return def.dynamic?.find((x) => x.type === property && x.expr.type)?.expr;\n }\n\n function evalDynamic<A>(\n control: Control<A>,\n property: DynamicPropertyType,\n init: (ex: EntityExpression | undefined) => A,\n coerce: (v: unknown) => any,\n ) {\n createScopedEffect((c) => {\n const x = firstExpr(property);\n evalExpr(c, init(x), control, x, coerce);\n }, scope);\n }\n}\n\nexport function coerceStyle(v: unknown): any {\n return typeof v === \"object\" ? v : undefined;\n}\n\nexport function coerceString(v: unknown): string {\n if (typeof v === \"string\") return v;\n if (v == null) return \"\";\n switch (typeof v) {\n case \"number\":\n case \"boolean\":\n return v.toString();\n default:\n return JSON.stringify(v);\n }\n}\n\nexport function createFormStateNode(\n formNode: FormNode,\n parent: SchemaDataNode,\n options: FormGlobalOptions,\n nodeOptions: FormNodeOptions,\n): FormStateNodeImpl {\n const globals = newControl<FormGlobalOptions>({\n schemaInterface: options.schemaInterface,\n evalExpression: options.evalExpression,\n runAsync: options.runAsync,\n resolveChildren: options.resolveChildren,\n clearHidden: options.clearHidden,\n });\n return new FormStateNodeImpl(\n \"ROOT\",\n {},\n formNode.definition,\n formNode,\n nodeOptions,\n globals,\n parent,\n undefined,\n 0,\n options.resolveChildren,\n );\n}\n\nexport interface FormStateBaseImpl extends FormStateBase {\n children: FormStateBaseImpl[];\n allowedOptions?: unknown;\n nodeOptions: FormNodeOptions;\n busy: boolean;\n}\n\nexport const noopUi: FormNodeUi = {\n ensureChildVisible(childIndex: number) {},\n ensureVisible() {},\n getDisabler(type: ControlDisableType): () => () => void {\n return () => () => {};\n },\n};\n\nclass FormStateNodeImpl implements FormStateNode {\n readonly base: Control<FormStateBaseImpl>;\n readonly options: Control<FormNodeOptions>;\n readonly resolveChildren: ChildResolverFunc;\n\n ui = noopUi;\n\n constructor(\n public childKey: string | number,\n public meta: Record<string, any>,\n definition: ControlDefinition,\n public form: FormNode | undefined | null,\n nodeOptions: FormNodeOptions,\n public readonly globals: Control<FormGlobalOptions>,\n public parent: SchemaDataNode,\n public parentNode: FormStateNode | undefined,\n childIndex: number,\n resolveChildren?: ChildResolverFunc,\n ) {\n const base = newControl<FormStateBaseImpl>(\n {\n readonly: false,\n visible: null,\n disabled: false,\n children: [],\n resolved: { definition } as ResolvedDefinition,\n parent,\n allowedOptions: undefined,\n childIndex,\n nodeOptions,\n busy: false,\n },\n { dontClearError: true },\n );\n this.base = base;\n this.options = base.fields.nodeOptions;\n base.meta[\"$FormState\"] = this;\n this.resolveChildren =\n resolveChildren ?? globals.fields.resolveChildren.value;\n initFormState(definition, this, parentNode);\n }\n\n get busy() {\n return this.base.fields.busy.value;\n }\n\n setBusy(busy: boolean) {\n this.base.fields.busy.value = busy;\n }\n\n get evalExpression(): (\n e: EntityExpression,\n ctx: ExpressionEvalContext,\n ) => void {\n return this.globals.fields.evalExpression.value;\n }\n\n get runAsync() {\n return this.globals.fields.runAsync.value;\n }\n\n get schemaInterface(): SchemaInterface {\n return this.globals.fields.schemaInterface.value;\n }\n\n get forceDisabled() {\n return this.options.fields.forceDisabled.value;\n }\n\n setForceDisabled(value: boolean) {\n return (this.options.fields.forceDisabled.value = value);\n }\n\n get forceReadonly() {\n return this.options.fields.forceReadonly.value;\n }\n get forceHidden() {\n return this.options.fields.forceHidden.value;\n }\n\n attachUi(f: FormNodeUi) {\n this.ui = f;\n }\n\n get childIndex() {\n return this.base.fields.childIndex.value;\n }\n\n get children() {\n return this.base.fields.children.elements.map(\n (x) => x.meta[\"$FormState\"] as FormStateNode,\n );\n }\n\n get uniqueId() {\n return this.base.uniqueId.toString();\n }\n get valid(): boolean {\n return this.base.valid;\n }\n\n get touched(): boolean {\n return this.base.touched;\n }\n\n setTouched(touched: boolean, notChildren?: boolean) {\n this.base.setTouched(touched, notChildren);\n }\n\n validate(): boolean {\n this.children.forEach((child) => {\n child.validate();\n });\n if (this.dataNode) {\n this.dataNode.control.validate();\n }\n return this.valid;\n }\n\n get readonly() {\n return this.base.fields.readonly.value;\n }\n\n get visible() {\n return this.base.fields.visible.value;\n }\n\n get disabled() {\n return this.base.fields.disabled.value;\n }\n\n get clearHidden() {\n return this.globals.fields.clearHidden.value;\n }\n\n get variables() {\n return this.options.fields.variables.value;\n }\n\n get definition() {\n return this.resolved.definition;\n }\n\n getChild(index: number) {\n return this.base.fields.children.elements[index]?.meta[\n \"$FormState\"\n ] as FormStateNode;\n }\n\n getChildCount(): number {\n return this.base.fields.children.elements.length;\n }\n\n cleanup() {\n this.base.cleanup();\n }\n\n get resolved() {\n return this.base.fields.resolved.value;\n }\n\n get dataNode() {\n return this.base.fields.dataNode.value;\n }\n\n ensureMeta<A>(key: string, init: (scope: CleanupScope) => A): A {\n if (key in this.meta) return this.meta[key];\n const res = init(this.base);\n this.meta[key] = res;\n return res;\n }\n}\n\nfunction initFormState(\n def: ControlDefinition,\n impl: FormStateNodeImpl,\n parentNode: FormStateNode | undefined,\n) {\n const {\n base,\n options,\n schemaInterface,\n runAsync,\n evalExpression,\n parent,\n variables,\n } = impl;\n\n const evalExpr = createEvalExpr(evalExpression, {\n schemaInterface,\n variables,\n dataNode: parent,\n runAsync,\n });\n\n const scope = base;\n\n const { forceReadonly, forceDisabled, forceHidden } = options.fields;\n const resolved = base.fields.resolved.as<ResolvedDefinition>();\n const {\n style,\n layoutStyle,\n fieldOptions,\n display,\n definition: rd,\n } = resolved.fields;\n\n evalDynamic(display, DynamicPropertyType.Display, undefined, coerceString);\n\n const { dataNode, readonly, disabled, visible, children, allowedOptions } =\n base.fields;\n\n const definition = createEvaluatedDefinition(def, evalExpr, scope, display);\n rd.value = definition;\n\n evalDynamic(style, DynamicPropertyType.Style, undefined, coerceStyle);\n evalDynamic(\n layoutStyle,\n DynamicPropertyType.LayoutStyle,\n undefined,\n coerceStyle,\n );\n evalDynamic(\n allowedOptions,\n DynamicPropertyType.AllowedOptions,\n undefined,\n (x) => x,\n );\n\n updateComputedValue(dataNode, () => lookupDataNode(definition, parent));\n\n updateComputedValue(visible, () => {\n if (forceHidden.value) return false;\n if (parentNode && !parentNode.visible) return parentNode.visible;\n const dn = dataNode.value;\n if (\n dn &&\n (!validDataNode(dn) || hideDisplayOnly(dn, schemaInterface, definition))\n )\n return false;\n return definition.hidden == null ? null : !definition.hidden;\n });\n\n updateComputedValue(\n readonly,\n () =>\n parentNode?.readonly ||\n forceReadonly.value ||\n isControlReadonly(definition),\n );\n updateComputedValue(\n disabled,\n () =>\n parentNode?.disabled ||\n forceDisabled.value ||\n isControlDisabled(definition),\n );\n\n updateComputedValue(fieldOptions, () => {\n const dn = dataNode.value;\n if (!dn) return undefined;\n const fieldOptions = schemaInterface.getDataOptions(dn);\n const _allowed = allowedOptions.value ?? [];\n const allowed = Array.isArray(_allowed) ? _allowed : [_allowed];\n\n return allowed.length > 0\n ? allowed\n .map((x) =>\n typeof x === \"object\"\n ? x\n : (fieldOptions?.find((y) => y.value == x) ?? {\n name: x.toString(),\n value: x,\n }),\n )\n .filter((x) => x != null)\n : fieldOptions;\n });\n\n createSyncEffect(() => {\n const dn = dataNode.value;\n if (dn) {\n dn.control.disabled = disabled.value;\n }\n }, scope);\n\n createSyncEffect(() => {\n const dn = dataNode.value;\n if (dn) {\n dn.control.touched = base.touched;\n }\n }, scope);\n\n createSyncEffect(() => {\n const dn = dataNode.value;\n if (dn) {\n base.touched = dn.control.touched;\n }\n }, scope);\n\n createSyncEffect(() => {\n const dn = dataNode.value;\n base.setErrors(dn?.control.errors);\n }, scope);\n\n setupValidation(\n scope,\n impl.variables,\n definition,\n dataNode,\n schemaInterface,\n parent,\n visible,\n runAsync,\n );\n\n createSyncEffect(() => {\n const dn = dataNode.value?.control;\n if (dn && isDataControl(definition)) {\n if (impl.visible == false) {\n if (impl.clearHidden && !definition.dontClearHidden) {\n // console.log(\"Clearing hidden\");\n dn.value = undefined;\n }\n } else if (\n impl.visible &&\n dn.value === undefined &&\n definition.defaultValue != null &&\n !definition.adornments?.some(\n (x) => x.type === ControlAdornmentType.Optional,\n ) &&\n definition.renderOptions?.type != DataRenderType.NullToggle\n ) {\n // console.log(\n // \"Setting to default\",\n // definition.defaultValue,\n // definition.field,\n // );\n // const [required, dcv] = isDataControl(definition)\n // ? [definition.required, definition.defaultValue]\n // : [false, undefined];\n // const field = ctx.dataNode?.schema.field;\n // return (\n // dcv ??\n // (field\n // ? ctx.dataNode!.elementIndex != null\n // ? elementValueForField(field)\n // : defaultValueForField(field, required)\n // : undefined)\n // );\n dn.value = definition.defaultValue;\n }\n }\n }, scope);\n\n initChildren(impl);\n\n function firstExpr(\n property: DynamicPropertyType,\n ): EntityExpression | undefined {\n return def.dynamic?.find((x) => x.type === property && x.expr.type)?.expr;\n }\n\n function evalDynamic<A>(\n control: Control<A>,\n property: DynamicPropertyType,\n init: A,\n coerce: (v: unknown) => any,\n ) {\n createScopedEffect(\n (c) => evalExpr(c, init, control, firstExpr(property), coerce),\n scope,\n );\n }\n}\n\nexport function combineVariables(\n v1?: VariablesFunc,\n v2?: VariablesFunc,\n): VariablesFunc | undefined {\n if (!v1) return v2;\n if (!v2) return v1;\n return (c) => ({ ...v1(c), ...v2(c) });\n}\n\nfunction initChildren(formImpl: FormStateNodeImpl) {\n const childMap = new Map<any, Control<FormStateBaseImpl>>();\n createSyncEffect(() => {\n const { base, resolveChildren } = formImpl;\n const children = base.fields.children;\n const kids = resolveChildren(formImpl);\n const scope = base;\n const detached = updateElements(children, () =>\n kids.map(({ childKey, create }, childIndex) => {\n let child = childMap.get(childKey);\n if (child) {\n child.fields.childIndex.value = childIndex;\n } else {\n const meta: Record<string, any> = {};\n const cc = create(scope, meta);\n const newOptions: FormNodeOptions = {\n forceHidden: false,\n forceDisabled: false,\n forceReadonly: false,\n variables: combineVariables(formImpl.variables, cc.variables),\n };\n const fsChild = new FormStateNodeImpl(\n childKey,\n meta,\n cc.definition ?? groupedControl([]),\n cc.node === undefined ? formImpl.form : cc.node,\n newOptions,\n formImpl.globals,\n cc.parent ?? formImpl.parent,\n formImpl,\n childIndex,\n cc.resolveChildren,\n );\n child = fsChild.base;\n childMap.set(childKey, child);\n }\n return child;\n }),\n );\n detached.forEach((child) => child.cleanup());\n }, formImpl.base);\n}\n\n/**\n * Interface representing the form context data.\n */\nexport interface FormContextData {\n option?: FieldOption;\n optionSelected?: boolean;\n}\n\nexport function visitFormState<A>(\n node: FormStateNode,\n visitFn: (node: FormStateNode) => A | undefined,\n): A | undefined {\n const v = visitFn(node);\n if (v !== undefined) return v;\n const childCount = node.getChildCount();\n for (let i = 0; i < childCount; i++) {\n const res = visitFormState(node.getChild(i)!, visitFn);\n if (res !== undefined) return res;\n }\n return undefined;\n}\n","import {\n ChangeListenerFunc,\n CleanupScope,\n Control,\n trackedValue,\n} from \"@astroapps/controls\";\nimport {\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n GroupedControlsDefinition,\n GroupRenderType,\n isDataControl,\n} from \"./controlDefinition\";\nimport { SchemaDataNode } from \"./schemaDataNode\";\nimport { FormNode } from \"./formNode\";\nimport { createScopedComputed } from \"./util\";\nimport { SchemaInterface } from \"./schemaInterface\";\nimport { FieldOption } from \"./schemaField\";\nimport { FormStateNode } from \"./formStateNode\";\nimport { groupedControl } from \"./controlBuilder\";\n\nexport type ChildResolverFunc = (c: FormStateNode) => ChildNodeSpec[];\n\nexport interface ChildNodeSpec {\n childKey: string | number;\n create: (scope: CleanupScope, meta: Record<string, any>) => ChildNodeInit;\n}\n\nexport interface ChildNodeInit {\n definition?: ControlDefinition;\n parent?: SchemaDataNode;\n node?: FormNode | null;\n variables?: (changes: ChangeListenerFunc<any>) => Record<string, any>;\n resolveChildren?: ChildResolverFunc;\n}\n\nexport function defaultResolveChildNodes(\n formStateNode: FormStateNode,\n): ChildNodeSpec[] {\n const {\n resolved,\n dataNode: data,\n schemaInterface,\n parent,\n form: node,\n } = formStateNode;\n if (!node) return [];\n const def = resolved.definition;\n if (isDataControl(def)) {\n if (!data) return [];\n const type = def.renderOptions?.type;\n if (type === DataRenderType.CheckList || type === DataRenderType.Radio) {\n const n = node.getChildNodes();\n if (n.length > 0 && resolved.fieldOptions) {\n return resolved.fieldOptions.map((x) => ({\n childKey: x.value?.toString(),\n create: (scope, meta) => {\n meta[\"fieldOptionValue\"] = x.value;\n const vars = createScopedComputed(scope, () => {\n return {\n option: x,\n optionSelected: isOptionSelected(schemaInterface, x, data),\n };\n });\n return {\n definition: {\n type: ControlDefinitionType.Group,\n groupOptions: {\n type: GroupRenderType.Contents,\n },\n } as GroupedControlsDefinition,\n parent,\n node,\n variables: (changes) => ({\n formData: trackedValue(vars, changes),\n }),\n };\n },\n }));\n }\n return [];\n }\n if (data.schema.field.collection && data.elementIndex == null)\n return resolveArrayChildren(data, node);\n }\n return node.getChildNodes().map((x) => ({\n childKey: x.id,\n create: () => ({\n node: x,\n parent: data ?? parent,\n definition: x.definition,\n }),\n }));\n}\n\nexport function resolveArrayChildren(\n data: SchemaDataNode,\n node: FormNode,\n adjustChild?: (elem: Control<any>, index: number) => Partial<ChildNodeInit>,\n): ChildNodeSpec[] {\n const childNodes = node.getChildNodes();\n const childCount = childNodes.length;\n const singleChild = childCount === 1 ? childNodes[0] : null;\n return data.control.as<any[]>().elements.map((x, i) => ({\n childKey: x.uniqueId,\n create: () => ({\n definition: !childCount\n ? ({\n type: ControlDefinitionType.Data,\n field: \".\",\n hideTitle: true,\n renderOptions: { type: DataRenderType.Standard },\n } as DataControlDefinition)\n : singleChild\n ? singleChild.definition\n : groupedControl([]),\n node: singleChild ?? node,\n parent: data!.getChildElement(i),\n ...(adjustChild?.(x, i) ?? {}),\n }),\n }));\n}\n\nfunction isOptionSelected(\n schemaInterface: SchemaInterface,\n option: FieldOption,\n data: SchemaDataNode,\n) {\n if (data.schema.field.collection) {\n return !!data.control.as<any[] | undefined>().value?.includes(option.value);\n }\n return (\n schemaInterface.compareValue(\n data.schema.field,\n data.control.value,\n option.value,\n ) === 0\n );\n}\n"],"names":["ControlDefinitionType","DynamicPropertyType","AdornmentPlacement","ControlAdornmentType","IconLibrary","DataRenderType","SyncTextType","GroupRenderType","DisplayDataType","ControlDisableType","ActionStyle","IconPlacement","visitControlDefinition","x","visitor","defaultValue","type","Action","action","Data","data","Display","display","Group","group","isGridRenderer","options","Grid","isWizardRenderer","Wizard","isDialogRenderer","Dialog","isAccordionRenderer","Accordion","isInlineRenderer","Inline","isSelectChildRenderer","SelectChild","isTabsRenderer","Tabs","isFlexRenderer","Flex","isDisplayOnlyRenderer","DisplayOnly","isTextfieldRenderer","Textfield","isDateTimeRenderer","DateTime","isAutocompleteRenderer","Autocomplete","isAutoCompleteClasses","isDataGroupRenderer","isArrayRenderer","Array","isDataControl","c","isGroupControl","isActionControl","isDisplayControl","isTextDisplay","d","Text","isHtmlDisplay","Html","isCheckEntryClasses","Radio","CheckList","traverseParents","current","get","until","outArray","push","parent","reverse","getRootDataNode","dataNode","getJsonPath","elementIndex","schema","field","getSchemaPath","schemaNode","getSchemaFieldList","getChildNodes","map","fontAwesomeIcon","icon","library","FontAwesome","name","isControlReadonly","readonly","isControlDisabled","disabled","getGroupRendererOptions","def","groupOptions","renderOptions","undefined","isControlDisplayOnly","_getGroupRendererOpti","Boolean","displayOnly","getDisplayOnlyOptions","ValidatorType","DateComparison","jsonataValidator","expr","Jsonata","expression","dateValidator","comparison","fixedDate","daysFromCurrent","Date","lengthValidator","min","max","Length","ExpressionType","dataControl","title","_extends","validatorOptions","o","adornmentOptions","renderOptionsFor","autocompleteOptions","checkListOptions","radioButtonOptions","lengthValidatorOptions","jsonataValidatorOptions","dateValidatorOptions","accordionOptions","textfieldOptions","displayOnlyOptions","jsonataOptions","textDisplayControl","text","displayData","htmlDisplayControl","html","dynamicDefaultValue","DefaultValue","dynamicReadonly","Readonly","dynamicVisibility","Visible","dynamicDisabled","Disabled","dataExpr","fieldExpr","fieldEqExpr","dataMatchExpr","uuidExpr","UUID","value","DataMatch","notEmptyExpr","empty","NotEmpty","jsonataExpr","groupedControl","children","hideTitle","compoundControl","actionControl","actionText","actionId","emptyGroupDefinition","Standard","FieldType","ValidationMessageType","findField","fields","find","isScalarField","sf","isCompoundField","Compound","missingField","Any","displayName","SchemaTags","getTagParam","tag","_field$tags","tags","startsWith","substring","length","makeParamTag","SchemaTree","createChildNode","SchemaNode","id","getSchema","schemaId","_this$getSchemaTree","getSchemaTree","rootNode","SchemaTreeImpl","_this$lookup","lookup","constructor","rootFields","createSchemaTree","tree","getChildFields","getUnresolvedFields","getResolvedParent","noRecurse","_this$parent","f","parentNode","schemaRef","treeChildren","getResolvedFields","_resolvedParent$getUn","resolvedParent","node","getChildField","_this$getResolvedFiel","getChildNode","resolveSchemaNode","fieldSegment","createSchemaNode","createSchemaLookup","schemaMap","additional","schemaForFieldRef","fieldRef","_fieldRef$split","schemaForFieldPath","split","traverseSchemaPath","fieldPath","acc","next","i","nextField","childNode","traverseData","root","n","schemaForDataPath","element","collection","getParentDataPath","getSchemaNodePath","paths","curNode","getSchemaNodePathString","join","isCompoundNode","relativePath","child","parentPath","childPath","relativeSegmentPath","upLevels","downPath","slice","repeat","buildSchema","Object","entries","stringField","makeScalarField","String","stringOptionsField","withScalarOptions","v","defaultScalarField","makeCompoundField","defaultCompoundField","intField","Int","doubleField","Double","dateField","timeField","Time","dateTimeField","boolField","Bool","compoundField","other","mergeField","mergeInto","existing","onlyForTypes","mergeTypes","s","extras","filter","includes","mergeOption","fieldName","addFieldOption","mergeFields","newFields","reduce","af","withType","isTypeField","typeField","_typeField$options","some","resolveSchemas","out","resolveSchemaType","resolvedFields","forEach","keys","SchemaDataTree","SchemaDataNode","control","getChild","getChildElement","getMetaFields","ensureMetaValue","newControl","SchemaDataTreeImpl","rootSchema","rootControl","objControl","meta","uniqueId","toString","elemControl","elemChild","elements","makeSchemaDataNode","createSchemaDataNode","schemaDataForFieldRef","schemaDataForFieldPath","_nextNode","nextNode","lookupField","validDataNode","context","updateComputedValue","types","typeNode","console","warn","hideDisplayOnly","schemaInterface","definition","_context$control","displayOptions","emptyText","isEmptyValue","getLoadingControl","getRefreshingControl","getHasMoreControl","DefaultSchemaInterface","boolStrings","parseDateTime","parse","parseToMillis","validationMessageText","messageType","actual","expected","MinLength","MaxLength","NotBeforeDate","toDateString","NotAfterDate","getDataOptions","getNodeOptions","getOptions","getFilterOptions","array","isArray","searchText","_this$textValue$toLow","_this$textValue","textValue","toLowerCase","textValueForData","actualOptions","option","toLocaleDateString","toLocaleString","toLocaleTimeString","controlLength","_control$elements$len","_control$elements","valueLength","len","compareValue","v1","v2","localeCompare","compoundFieldSetup","makeControlSetup","compoundFieldEquality","a","b","makeEqualityFunc","elemEqual","allChecks","every","setup","equals","elems","fromEntries","defaultSchemaInterface","FormNode","visit","visitFn","res","getUnresolvedChildNodes","getResolvedChildren","_children","_ref","childRefId","getByRefId","childId","childDef","getChildId","resolved","_this$definition$chil","_this$definition$chil2","FormTree","parentId","getControlIds","_definition$children$","_definition$children","childEntries","flatMap","createControlMap","FormTreeImpl","forms","controlMap","getForm","formId","legacyFormNode","createFormTree","controls","createFormLookup","formMap","k","fieldPathForDefinition","lookupDataNode","fieldNamePath","visitControlDataArray","cb","r","visitControlData","ctx","visitFormDataInContext","visitFormData","notSelf","result","l","elemResult","isNull","parentContext","jsonPathString","jsonPath","customIndex","_customIndex","createScopedComputed","compute","addDependent","as","createScoped","dataEval","fvExpr","returnResult","scope","createSyncEffect","_otherField$control","otherField","dataMatchEval","matchExpr","fv","notEmptyEval","_otherField$control2","jsonataEval","variables","runAsync","path","pathString","rootData","parsedJsonata","jExpr","fullExpr","jsonata","e","error","runJsonata","effect","signal","trackedVars","collectUsage","evalResult","evaluate","trackedValue","collectChanges","asyncEffect","createAsyncEffect","start","uuidEval","_","uuidv4","defaultEvaluators","createEvalExpr","evalExpression","evalExpr","init","nk","coerce","createOverrideProxy","proxyFor","handlers","overrides","getCurrentFields","allOwn","Reflect","ownKeys","Proxy","target","p","receiver","hasOwn","nv","NoOverride","has","getOwnPropertyDescriptor","enumerable","configurable","NoValue","validation","parentData","trackControlChange","ControlChange","Validate","setError","lv","addSync","setValue","concat","from","dv","comparisonDate","nowDate","UTC","getFullYear","getMonth","getDate","selDate","notAfter","NotAfter","defaultValidators","createValidators","_def$validators","required","requiredErrorText","validators","_defaultValidators$x$","call","setupValidation","visible","validationEnabled","validatorsScope","createCleanupScope","createEffect","cleanup","dn","syncValidations","validate","addCleanup","syncValidation","createEvaluatedDefinition","definitionOverrides","displayOverrides","groupOptionsOverrides","renderOptionsOverrides","hidden","actionData","columns","dataGroupRenderOptions","_def$renderOptions$gr","_def$renderOptions","evalDynamic","createScopedEffect","firstExpr","GridColumns","ActionData","Label","coerceString","property","_def$dynamic","dynamic","coerceStyle","JSON","stringify","createFormStateNode","formNode","nodeOptions","globals","resolveChildren","clearHidden","FormStateNodeImpl","noopUi","ensureChildVisible","childIndex","ensureVisible","getDisabler","childKey","form","base","ui","allowedOptions","busy","dontClearError","initFormState","setBusy","forceDisabled","setForceDisabled","forceReadonly","forceHidden","attachUi","valid","touched","setTouched","notChildren","index","_this$base$fields$chi","getChildCount","ensureMeta","key","impl","style","layoutStyle","fieldOptions","rd","Style","LayoutStyle","AllowedOptions","_allowedOptions$value","_allowed","allowed","_fieldOptions$find","y","setErrors","errors","_dataNode$value","_definition$adornment","_definition$renderOpt","dontClearHidden","adornments","Optional","NullToggle","initChildren","_def$dynamic2","combineVariables","formImpl","childMap","Map","kids","detached","updateElements","create","_cc$definition","_cc$parent","cc","newOptions","fsChild","set","visitFormState","childCount","defaultResolveChildNodes","formStateNode","_x$value","vars","optionSelected","isOptionSelected","Contents","changes","formData","resolveArrayChildren","adjustChild","childNodes","singleChild","_adjustChild","_data$control$as$valu"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/controlDefinition.ts","../src/schemaValidator.ts","../src/entityExpression.ts","../src/controlBuilder.ts","../src/schemaField.ts","../src/schemaNode.ts","../src/schemaBuilder.ts","../src/schemaDataNode.ts","../src/defaultSchemaInterface.ts","../src/formNode.ts","../src/util.ts","../src/evalExpression.ts","../src/overrideProxy.ts","../src/validators.ts","../src/formStateNode.ts","../src/resolveChildren.ts"],"sourcesContent":["import { SchemaValidator } from \"./schemaValidator\";\nimport { SchemaField } from \"./schemaField\";\nimport { EntityExpression } from \"./entityExpression\";\nimport { SchemaDataNode } from \"./schemaDataNode\";\nimport { SchemaNode } from \"./schemaNode\";\n\n/**\n * Represents any control definition.\n */\nexport type AnyControlDefinition =\n | DataControlDefinition\n | GroupedControlsDefinition\n | ActionControlDefinition\n | DisplayControlDefinition;\n\n/**\n * Represents a control definition.\n */\nexport interface ControlDefinition {\n type: string;\n id?: string | null;\n childRefId?: string | null;\n title?: string | null;\n hidden?: boolean | null;\n disabled?: boolean | null;\n readonly?: boolean | null;\n styleClass?: string | null;\n textClass?: string | null;\n layoutClass?: string | null;\n labelClass?: string | null;\n labelTextClass?: string | null;\n placement?: string | null;\n dynamic?: DynamicProperty[] | null;\n adornments?: ControlAdornment[] | null;\n children?: ControlDefinition[] | null;\n}\n\nexport enum ControlDefinitionType {\n Data = \"Data\",\n Group = \"Group\",\n Display = \"Display\",\n Action = \"Action\",\n}\n\nexport interface DynamicProperty {\n type: string;\n expr: EntityExpression;\n}\n\nexport enum DynamicPropertyType {\n Visible = \"Visible\",\n DefaultValue = \"DefaultValue\",\n Readonly = \"Readonly\",\n Disabled = \"Disabled\",\n Display = \"Display\",\n Style = \"Style\",\n LayoutStyle = \"LayoutStyle\",\n AllowedOptions = \"AllowedOptions\",\n Label = \"Label\",\n ActionData = \"ActionData\",\n GridColumns = \"GridColumns\",\n}\n\nexport interface ControlAdornment {\n type: string;\n}\n\nexport enum AdornmentPlacement {\n ControlStart = \"ControlStart\",\n ControlEnd = \"ControlEnd\",\n LabelStart = \"LabelStart\",\n LabelEnd = \"LabelEnd\",\n}\n\nexport enum ControlAdornmentType {\n Tooltip = \"Tooltip\",\n Accordion = \"Accordion\",\n HelpText = \"HelpText\",\n Icon = \"Icon\",\n SetField = \"SetField\",\n Optional = \"Optional\",\n}\n\nexport enum IconLibrary {\n FontAwesome = \"FontAwesome\",\n Material = \"Material\",\n CssClass = \"CssClass\",\n}\n\nexport interface IconReference {\n library: string;\n name: string;\n}\n\nexport interface IconAdornment extends ControlAdornment {\n type: ControlAdornmentType.Icon;\n iconClass: string;\n icon?: IconReference;\n placement?: AdornmentPlacement | null;\n}\n\nexport interface TooltipAdornment extends ControlAdornment {\n type: ControlAdornmentType.Tooltip;\n tooltip: string;\n}\n\nexport interface AccordionAdornment extends ControlAdornment {\n type: ControlAdornmentType.Accordion;\n title: string;\n defaultExpanded?: boolean | null;\n}\n\nexport interface HelpTextAdornment extends ControlAdornment {\n type: ControlAdornmentType.HelpText;\n helpText: string;\n placement?: AdornmentPlacement | null;\n}\n\nexport interface SetFieldAdornment extends ControlAdornment {\n type: ControlAdornmentType.SetField;\n field: string;\n defaultOnly?: boolean | null;\n expression?: EntityExpression;\n}\n\nexport interface OptionalAdornment extends ControlAdornment {\n type: ControlAdornmentType.Optional;\n placement?: AdornmentPlacement | null;\n allowNull?: boolean;\n editSelectable?: boolean;\n}\n\nexport interface DataControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Data;\n field: string;\n required?: boolean | null;\n renderOptions?: RenderOptions | null;\n defaultValue?: any;\n validators?: SchemaValidator[] | null;\n hideTitle?: boolean | null;\n dontClearHidden?: boolean | null;\n requiredErrorText?: string | null;\n}\n\nexport interface RenderOptions {\n type: string;\n}\n\nexport enum DataRenderType {\n Standard = \"Standard\",\n Textfield = \"Textfield\",\n Radio = \"Radio\",\n HtmlEditor = \"HtmlEditor\",\n IconList = \"IconList\",\n CheckList = \"CheckList\",\n UserSelection = \"UserSelection\",\n Synchronised = \"Synchronised\",\n IconSelector = \"IconSelector\",\n DateTime = \"DateTime\",\n Checkbox = \"Checkbox\",\n Dropdown = \"Dropdown\",\n DisplayOnly = \"DisplayOnly\",\n Group = \"Group\",\n NullToggle = \"NullToggle\",\n Autocomplete = \"Autocomplete\",\n Jsonata = \"Jsonata\",\n Array = \"Array\",\n ArrayElement = \"ArrayElement\",\n ElementSelected = \"ElementSelected\",\n ScrollList = \"ScrollList\",\n}\n\nexport interface TextfieldRenderOptions extends RenderOptions {\n type: DataRenderType.Textfield;\n placeholder?: string | null;\n multiline?: boolean | null;\n}\n\nexport interface AutocompleteRenderOptions\n extends RenderOptions,\n AutocompleteClasses {\n type: DataRenderType.Autocomplete;\n}\n\nexport interface AutocompleteClasses {\n listContainerClass?: string | null;\n listEntryClass?: string | null;\n chipContainerClass?: string | null;\n chipCloseButtonClass?: string | null;\n placeholder?: string | null;\n}\n\nexport interface CheckEntryClasses {\n entryWrapperClass?: string | null;\n selectedClass?: string | null;\n notSelectedClass?: string | null;\n}\nexport interface RadioButtonRenderOptions\n extends RenderOptions,\n CheckEntryClasses {\n type: DataRenderType.Radio;\n}\n\nexport interface StandardRenderer extends RenderOptions {\n type: DataRenderType.Standard;\n}\n\nexport interface DataGroupRenderOptions extends RenderOptions {\n type: DataRenderType.Group;\n groupOptions?: GroupRenderOptions;\n}\n\nexport interface HtmlEditorRenderOptions extends RenderOptions {\n type: DataRenderType.HtmlEditor;\n allowImages: boolean;\n}\n\nexport interface DateTimeRenderOptions extends RenderOptions {\n type: DataRenderType.DateTime;\n format?: string | null;\n forceMidnight?: boolean;\n forceStandard?: boolean;\n}\n\nexport interface IconListRenderOptions extends RenderOptions {\n type: DataRenderType.IconList;\n iconMappings: IconMapping[];\n}\n\nexport interface DisplayOnlyRenderOptions extends RenderOptions {\n type: DataRenderType.DisplayOnly;\n emptyText?: string | null;\n sampleText?: string | null;\n}\nexport interface IconMapping {\n value: string;\n materialIcon?: string | null;\n}\n\nexport interface JsonataRenderOptions extends RenderOptions {\n type: DataRenderType.Jsonata;\n expression: string;\n}\n\nexport interface JsonataRenderOptions extends RenderOptions {\n type: DataRenderType.Jsonata;\n expression: string;\n}\n\nexport interface ArrayRenderOptions extends RenderOptions {\n type: DataRenderType.Array;\n addText?: string | null;\n addActionId?: string | null;\n removeText?: string | null;\n removeActionId?: string | null;\n editText?: string | null;\n editActionId?: string | null;\n noAdd?: boolean | null;\n noRemove?: boolean | null;\n noReorder?: boolean | null;\n editExternal?: boolean | null;\n childOverrideClass?: string | null;\n}\n\nexport interface ArrayElementRenderOptions extends RenderOptions {\n type: DataRenderType.ArrayElement;\n showInline?: boolean | null;\n}\n\nexport interface ElementSelectedRenderOptions extends RenderOptions {\n type: DataRenderType.ElementSelected;\n elementExpression: EntityExpression;\n}\n\nexport type ArrayActionOptions = Pick<\n ArrayRenderOptions,\n | \"addText\"\n | \"addActionId\"\n | \"removeText\"\n | \"removeActionId\"\n | \"noAdd\"\n | \"noRemove\"\n | \"noReorder\"\n | \"editExternal\"\n | \"editActionId\"\n | \"editText\"\n> & { readonly?: boolean; disabled?: boolean; designMode?: boolean };\n\nexport interface CheckListRenderOptions\n extends RenderOptions,\n CheckEntryClasses {\n type: DataRenderType.CheckList;\n}\n\nexport interface SynchronisedRenderOptions extends RenderOptions {\n type: DataRenderType.Synchronised;\n fieldToSync: string;\n syncType: SyncTextType;\n}\n\nexport enum SyncTextType {\n Camel = \"Camel\",\n Snake = \"Snake\",\n Pascal = \"Pascal\",\n}\n\nexport interface UserSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.UserSelection;\n noGroups: boolean;\n noUsers: boolean;\n}\n\nexport interface IconSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.IconSelector;\n}\n\nexport interface ScrollListRenderOptions extends RenderOptions {\n type: DataRenderType.ScrollList;\n bottomActionId?: string;\n refreshActionId?: string;\n}\n\nexport interface GroupedControlsDefinition extends ControlDefinition {\n type: ControlDefinitionType.Group;\n compoundField?: string | null;\n groupOptions?: GroupRenderOptions;\n}\n\nexport interface GroupRenderOptions {\n type: string;\n hideTitle?: boolean | null;\n childStyleClass?: string | null;\n childLayoutClass?: string | null;\n childLabelClass?: string | null;\n displayOnly?: boolean | null;\n}\n\nexport interface ActionOptions {\n actionId: string;\n actionText?: string | null;\n actionData?: string | null;\n icon?: IconReference | null;\n actionStyle?: ActionStyle | null;\n iconPlacement?: IconPlacement | null;\n}\nexport enum GroupRenderType {\n Standard = \"Standard\",\n Grid = \"Grid\",\n Flex = \"Flex\",\n Tabs = \"Tabs\",\n GroupElement = \"GroupElement\",\n SelectChild = \"SelectChild\",\n Inline = \"Inline\",\n Wizard = \"Wizard\",\n Dialog = \"Dialog\",\n Contents = \"Contents\",\n Accordion = \"Accordion\",\n}\n\nexport interface AccordionRenderer extends GroupRenderOptions {\n type: GroupRenderType.Accordion;\n defaultExpanded?: boolean | null;\n expandStateField?: string | null;\n}\n\nexport interface DialogRenderOptions extends GroupRenderOptions {\n type: GroupRenderType.Dialog;\n title?: string | null;\n portalHost?: string | null;\n}\n\nexport interface StandardGroupRenderer extends GroupRenderOptions {\n type: GroupRenderType.Standard;\n}\n\nexport interface FlexRenderer extends GroupRenderOptions {\n type: GroupRenderType.Flex;\n direction?: string | null;\n gap?: string | null;\n}\n\nexport interface GroupElementRenderer extends GroupRenderOptions {\n type: GroupRenderType.GroupElement;\n value: any;\n}\n\nexport interface GridRendererOptions extends GroupRenderOptions {\n type: GroupRenderType.Grid;\n columns?: number | null;\n rowClass?: string | null;\n cellClass?: string | null;\n}\n\nexport interface TabsRenderOptions extends GroupRenderOptions {\n type: GroupRenderType.Tabs;\n contentClass?: string;\n}\n\nexport interface WizardRenderOptions extends GroupRenderOptions {\n type: GroupRenderType.Wizard;\n}\n\nexport interface SelectChildRenderer extends GroupRenderOptions {\n type: GroupRenderType.SelectChild;\n childIndexExpression?: EntityExpression | null;\n}\n\nexport interface DisplayControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Display;\n displayData: DisplayData;\n}\n\nexport interface DisplayData {\n type: string;\n}\n\nexport enum DisplayDataType {\n Text = \"Text\",\n Html = \"Html\",\n Icon = \"Icon\",\n Custom = \"Custom\",\n}\nexport interface TextDisplay extends DisplayData {\n type: DisplayDataType.Text;\n text: string;\n}\n\nexport interface IconDisplay extends DisplayData {\n type: DisplayDataType.Icon;\n iconClass: string;\n icon?: IconReference | null;\n}\n\nexport interface HtmlDisplay extends DisplayData {\n type: DisplayDataType.Html;\n html: string;\n}\n\nexport interface CustomDisplay extends DisplayData {\n type: DisplayDataType.Custom;\n customId: string;\n}\n\nexport enum ControlDisableType {\n None = \"None\",\n Self = \"Self\",\n Global = \"Global\",\n}\n\nexport interface ActionControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Action;\n actionId: string;\n actionData?: string | null;\n icon?: IconReference | null;\n actionStyle?: ActionStyle | null;\n iconPlacement?: IconPlacement | null;\n disableType?: ControlDisableType | null;\n}\n\nexport enum ActionStyle {\n Button = \"Button\",\n Secondary = \"Secondary\",\n Link = \"Link\",\n Group = \"Group\",\n}\n\nexport enum IconPlacement {\n BeforeText = \"BeforeText\",\n AfterText = \"AfterText\",\n ReplaceText = \"ReplaceText\",\n}\n\nexport interface ControlVisitor<A> {\n data(d: DataControlDefinition): A;\n group(d: GroupedControlsDefinition): A;\n display(d: DisplayControlDefinition): A;\n action(d: ActionControlDefinition): A;\n}\n\nexport function visitControlDefinition<A>(\n x: ControlDefinition,\n visitor: ControlVisitor<A>,\n defaultValue: (c: ControlDefinition) => A,\n): A {\n switch (x.type) {\n case ControlDefinitionType.Action:\n return visitor.action(x as ActionControlDefinition);\n case ControlDefinitionType.Data:\n return visitor.data(x as DataControlDefinition);\n case ControlDefinitionType.Display:\n return visitor.display(x as DisplayControlDefinition);\n case ControlDefinitionType.Group:\n return visitor.group(x as GroupedControlsDefinition);\n default:\n return defaultValue(x);\n }\n}\nexport function isGridRenderer(\n options: GroupRenderOptions,\n): options is GridRendererOptions {\n return options.type === GroupRenderType.Grid;\n}\n\nexport function isWizardRenderer(\n options: GroupRenderOptions,\n): options is WizardRenderOptions {\n return options.type === GroupRenderType.Wizard;\n}\n\nexport function isDialogRenderer(\n options: GroupRenderOptions,\n): options is DialogRenderOptions {\n return options.type === GroupRenderType.Dialog;\n}\n\nexport function isAccordionRenderer(\n options: GroupRenderOptions,\n): options is AccordionRenderer {\n return options.type === GroupRenderType.Accordion;\n}\n\nexport function isInlineRenderer(options: GroupRenderOptions): boolean {\n return options.type === GroupRenderType.Inline;\n}\n\nexport function isSelectChildRenderer(\n options: GroupRenderOptions,\n): options is SelectChildRenderer {\n return options.type === GroupRenderType.SelectChild;\n}\n\nexport function isTabsRenderer(\n options: GroupRenderOptions,\n): options is TabsRenderOptions {\n return options.type === GroupRenderType.Tabs;\n}\n\nexport function isFlexRenderer(\n options: GroupRenderOptions,\n): options is FlexRenderer {\n return options.type === GroupRenderType.Flex;\n}\n\nexport function isDisplayOnlyRenderer(\n options: RenderOptions,\n): options is DisplayOnlyRenderOptions {\n return options.type === DataRenderType.DisplayOnly;\n}\n\nexport function isTextfieldRenderer(\n options: RenderOptions,\n): options is TextfieldRenderOptions {\n return options.type === DataRenderType.Textfield;\n}\n\nexport function isDateTimeRenderer(\n options: RenderOptions,\n): options is DateTimeRenderOptions {\n return options.type === DataRenderType.DateTime;\n}\n\nexport function isAutocompleteRenderer(\n options: RenderOptions,\n): options is AutocompleteRenderOptions {\n return options.type === DataRenderType.Autocomplete;\n}\n\nexport function isAutoCompleteClasses(\n options?: RenderOptions | null,\n): options is AutocompleteClasses & RenderOptions {\n switch (options?.type) {\n case DataRenderType.Autocomplete:\n return true;\n default:\n return false;\n }\n}\n\nexport function isDataGroupRenderer(\n options?: RenderOptions | null,\n): options is DataGroupRenderOptions {\n return options?.type === DataRenderType.Group;\n}\n\nexport function isArrayRenderer(\n options: RenderOptions,\n): options is ArrayRenderOptions {\n return options.type === DataRenderType.Array;\n}\n\nexport function isDataControl(\n c: ControlDefinition,\n): c is DataControlDefinition {\n return c.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControl(\n c: ControlDefinition,\n): c is GroupedControlsDefinition {\n return c.type === ControlDefinitionType.Group;\n}\n\nexport function isActionControl(\n c: ControlDefinition,\n): c is ActionControlDefinition {\n return c.type === ControlDefinitionType.Action;\n}\n\nexport function isDisplayControl(\n c: ControlDefinition,\n): c is DisplayControlDefinition {\n return c.type === ControlDefinitionType.Display;\n}\n\nexport function isTextDisplay(d: DisplayData): d is TextDisplay {\n return d.type === DisplayDataType.Text;\n}\n\nexport function isHtmlDisplay(d: DisplayData): d is HtmlDisplay {\n return d.type === DisplayDataType.Html;\n}\n\nexport function isCheckEntryClasses(\n options?: RenderOptions | null,\n): options is CheckEntryClasses & RenderOptions {\n switch (options?.type) {\n case DataRenderType.Radio:\n case DataRenderType.CheckList:\n return true;\n default:\n return false;\n }\n}\n\nexport function traverseParents<A, B extends { parent?: B | undefined }>(\n current: B | undefined,\n get: (b: B) => A,\n until?: (b: B) => boolean,\n): A[] {\n let outArray: A[] = [];\n while (current && !until?.(current)) {\n outArray.push(get(current));\n current = current.parent;\n }\n return outArray.reverse();\n}\n\nexport function getRootDataNode(dataNode: SchemaDataNode) {\n while (dataNode.parent) {\n dataNode = dataNode.parent;\n }\n return dataNode;\n}\n\nexport function getJsonPath(dataNode: SchemaDataNode) {\n return traverseParents(\n dataNode,\n (d) => (d.elementIndex == null ? d.schema.field.field : d.elementIndex),\n (x) => !x.parent,\n );\n}\n\nexport function getSchemaPath(schemaNode: SchemaNode): SchemaField[] {\n return traverseParents(\n schemaNode,\n (d) => d.field,\n (x) => !x.parent,\n );\n}\n\nexport function getSchemaFieldList(schema: SchemaNode): SchemaField[] {\n return schema.getChildNodes().map((x) => x.field);\n}\n\nexport function fontAwesomeIcon(icon: string) {\n return { library: IconLibrary.FontAwesome, name: icon };\n}\n\n/**\n * Checks if a control definition is readonly.\n * @param c - The control definition to check.\n * @returns True if the control definition is readonly, false otherwise.\n */\nexport function isControlReadonly(c: ControlDefinition): boolean {\n return !!c.readonly;\n}\n\n/**\n * Checks if a control definition is disabled.\n * @param c - The control definition to check.\n * @returns True if the control definition is disabled, false otherwise.\n */\nexport function isControlDisabled(c: ControlDefinition): boolean {\n return !!c.disabled;\n}\n\n/**\n * Returns the group renderer options for a control definition.\n * @param {ControlDefinition} def - The control definition to get the group renderer options for.\n * @returns {GroupRenderOptions | undefined} - The group renderer options, or undefined if not applicable.\n */\nexport function getGroupRendererOptions(\n def: ControlDefinition,\n): GroupRenderOptions | undefined {\n return isGroupControl(def)\n ? def.groupOptions\n : isDataControl(def) && isDataGroupRenderer(def.renderOptions)\n ? def.renderOptions.groupOptions\n : undefined;\n}\n\n/**\n * Checks if a control definition is display-only.\n * @param {ControlDefinition} def - The control definition to check.\n * @returns {boolean} - True if the control definition is display-only, false otherwise.\n */\nexport function isControlDisplayOnly(def: ControlDefinition): boolean {\n return Boolean(getGroupRendererOptions(def)?.displayOnly);\n}\n\n/**\n * Returns the display-only render options for a control definition.\n * @param d - The control definition to get the display-only render options for.\n * @returns The display-only render options, or undefined if not applicable.\n */\nexport function getDisplayOnlyOptions(\n d: ControlDefinition,\n): DisplayOnlyRenderOptions | undefined {\n return isDataControl(d) &&\n d.renderOptions &&\n isDisplayOnlyRenderer(d.renderOptions)\n ? d.renderOptions\n : undefined;\n}\n","export enum ValidatorType {\n Jsonata = \"Jsonata\",\n Date = \"Date\",\n Length = \"Length\",\n}\n\nexport interface SchemaValidator {\n type: string;\n}\n\nexport interface JsonataValidator extends SchemaValidator {\n type: ValidatorType.Jsonata;\n expression: string;\n}\n\nexport interface LengthValidator extends SchemaValidator {\n type: ValidatorType.Length;\n min?: number | null;\n max?: number | null;\n}\n\nexport enum DateComparison {\n NotBefore = \"NotBefore\",\n NotAfter = \"NotAfter\",\n}\n\nexport interface DateValidator extends SchemaValidator {\n type: ValidatorType.Date;\n comparison: DateComparison;\n fixedDate?: string | null;\n daysFromCurrent?: number | null;\n}\n\nexport function jsonataValidator(expr: string): JsonataValidator {\n return { type: ValidatorType.Jsonata, expression: expr };\n}\n\nexport function dateValidator(\n comparison: DateComparison,\n fixedDate?: string | null,\n daysFromCurrent?: number | null,\n): DateValidator {\n return { type: ValidatorType.Date, comparison, fixedDate, daysFromCurrent };\n}\n\nexport function lengthValidator(\n min?: number | null,\n max?: number | null,\n): LengthValidator {\n return { type: ValidatorType.Length, min, max };\n}\n","export interface EntityExpression {\n type: string;\n}\n\nexport enum ExpressionType {\n Jsonata = \"Jsonata\",\n Data = \"Data\",\n DataMatch = \"FieldValue\",\n UserMatch = \"UserMatch\",\n NotEmpty = \"NotEmpty\",\n UUID = \"UUID\",\n}\n\nexport interface JsonataExpression extends EntityExpression {\n type: ExpressionType.Jsonata;\n expression: string;\n}\n\nexport interface DataExpression extends EntityExpression {\n type: ExpressionType.Data;\n field: string;\n}\n\nexport interface DataMatchExpression extends EntityExpression {\n type: ExpressionType.DataMatch;\n field: string;\n value: any;\n}\n\nexport interface NotEmptyExpression extends EntityExpression {\n type: ExpressionType.NotEmpty;\n field: string;\n empty?: boolean | null;\n}\n\nexport interface UserMatchExpression extends EntityExpression {\n type: ExpressionType.UserMatch;\n userMatch: string;\n}\n","import {\n AccordionAdornment,\n ActionControlDefinition,\n AutocompleteRenderOptions,\n CheckListRenderOptions,\n ControlAdornmentType,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n DisplayControlDefinition,\n DisplayDataType,\n DisplayOnlyRenderOptions,\n DynamicProperty,\n DynamicPropertyType,\n GroupedControlsDefinition,\n GroupRenderType,\n HtmlDisplay,\n JsonataRenderOptions,\n RadioButtonRenderOptions,\n RenderOptions,\n TextDisplay,\n TextfieldRenderOptions,\n} from \"./controlDefinition\";\nimport {\n DateValidator,\n JsonataValidator,\n LengthValidator,\n ValidatorType,\n} from \"./schemaValidator\";\nimport {\n DataExpression,\n DataMatchExpression,\n EntityExpression,\n ExpressionType,\n JsonataExpression,\n NotEmptyExpression,\n} from \"./entityExpression\";\n\nexport function dataControl(\n field: string,\n title?: string | null,\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return { type: ControlDefinitionType.Data, field, title, ...options };\n}\n\nexport function validatorOptions<A extends { type: string }>(\n type: ValidatorType,\n): (options: Omit<A, \"type\">) => A {\n return (o) => ({ type, ...o }) as A;\n}\n\nexport function adornmentOptions<A extends { type: string }>(\n type: ControlAdornmentType,\n): (options: Omit<A, \"type\">) => A {\n return (o) => ({ type, ...o }) as A;\n}\n\nexport function renderOptionsFor<A extends RenderOptions>(\n type: DataRenderType,\n): (options: Omit<A, \"type\">) => { renderOptions: A } {\n return (o) => ({ renderOptions: { type, ...o } as A });\n}\n\nexport const autocompleteOptions = renderOptionsFor<AutocompleteRenderOptions>(\n DataRenderType.Autocomplete,\n);\n\nexport const checkListOptions = renderOptionsFor<CheckListRenderOptions>(\n DataRenderType.CheckList,\n);\n\nexport const radioButtonOptions = renderOptionsFor<RadioButtonRenderOptions>(\n DataRenderType.Radio,\n);\n\nexport const lengthValidatorOptions = validatorOptions<LengthValidator>(\n ValidatorType.Length,\n);\n\nexport const jsonataValidatorOptions = validatorOptions<JsonataValidator>(\n ValidatorType.Jsonata,\n);\n\nexport const dateValidatorOptions = validatorOptions<DateValidator>(\n ValidatorType.Date,\n);\n\nexport const accordionOptions = adornmentOptions<AccordionAdornment>(\n ControlAdornmentType.Accordion,\n);\n\nexport const textfieldOptions = renderOptionsFor<TextfieldRenderOptions>(\n DataRenderType.Textfield,\n);\n\nexport const displayOnlyOptions = renderOptionsFor<DisplayOnlyRenderOptions>(\n DataRenderType.DisplayOnly,\n);\n\nexport const jsonataOptions = renderOptionsFor<JsonataRenderOptions>(\n DataRenderType.Jsonata,\n);\n\nexport function textDisplayControl(\n text: string,\n options?: Partial<DisplayControlDefinition>,\n): DisplayControlDefinition {\n return {\n type: ControlDefinitionType.Display,\n displayData: { type: DisplayDataType.Text, text } as TextDisplay,\n ...options,\n };\n}\n\nexport function htmlDisplayControl(\n html: string,\n options?: Partial<DisplayControlDefinition>,\n): DisplayControlDefinition {\n return {\n type: ControlDefinitionType.Display,\n displayData: { type: DisplayDataType.Html, html } as HtmlDisplay,\n ...options,\n };\n}\n\nexport function dynamicDefaultValue(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.DefaultValue, expr };\n}\n\nexport function dynamicReadonly(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Readonly, expr };\n}\n\nexport function dynamicVisibility(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Visible, expr };\n}\n\nexport function dynamicDisabled(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Disabled, expr };\n}\n\nexport function dataExpr(field: string): DataExpression {\n return { type: ExpressionType.Data, field };\n}\n\n/**\n * @deprecated Use dataExpr\n */\nexport const fieldExpr = dataExpr;\n\n/**\n * @deprecated Use dataMatchExpr\n */\nexport const fieldEqExpr = dataMatchExpr;\n\nexport const uuidExpr = { type: ExpressionType.UUID };\nexport function dataMatchExpr(field: string, value: any): DataMatchExpression {\n return { type: ExpressionType.DataMatch, field, value };\n}\n\nexport function notEmptyExpr(\n field: string,\n empty?: boolean,\n): NotEmptyExpression {\n return { type: ExpressionType.NotEmpty, field, empty };\n}\nexport function jsonataExpr(expression: string): JsonataExpression {\n return { type: ExpressionType.Jsonata, expression };\n}\n\nexport function groupedControl(\n children: ControlDefinition[],\n title?: string,\n options?: Partial<GroupedControlsDefinition>,\n): GroupedControlsDefinition {\n return {\n type: ControlDefinitionType.Group,\n children,\n title,\n groupOptions: { type: \"Standard\", hideTitle: !title },\n ...options,\n };\n}\nexport function compoundControl(\n field: string,\n title: string | undefined | null,\n children: ControlDefinition[],\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return {\n type: ControlDefinitionType.Data,\n field,\n children,\n title,\n renderOptions: { type: \"Standard\" },\n ...options,\n };\n}\n\nexport function actionControl(\n actionText: string,\n actionId: string,\n options?: Partial<ActionControlDefinition>,\n): ActionControlDefinition {\n return {\n type: ControlDefinitionType.Action,\n title: actionText,\n actionId,\n ...options,\n };\n}\nexport const emptyGroupDefinition: GroupedControlsDefinition = {\n type: ControlDefinitionType.Group,\n children: [],\n groupOptions: { type: GroupRenderType.Standard, hideTitle: true },\n};\n","import { SchemaValidator } from \"./schemaValidator\";\n\nexport type EqualityFunc = (a: any, b: any) => boolean;\n\n/**\n * Represents a schema field with various properties.\n */\nexport interface SchemaField {\n /** The type of the field. */\n type: string;\n /** The name of the field. */\n field: string;\n /** The display name of the field, optional. */\n displayName?: string | null;\n /** Tags associated with the field, optional. */\n tags?: string[] | null;\n /** Indicates if the field is a system field, optional. */\n system?: boolean | null;\n /** Indicates if the field is a meta field, optional. */\n meta?: boolean | null;\n /** Indicates if the field is a collection, optional. */\n collection?: boolean | null;\n /** Specifies the types for which the field is applicable, optional. */\n onlyForTypes?: string[] | null;\n /** Indicates if the field is required, optional. */\n required?: boolean | null;\n /** Indicates if the field is not nullable, optional. */\n notNullable?: boolean | null;\n /** The default value of the field, optional. */\n defaultValue?: any;\n /** Indicates if the field is a type field, optional. */\n isTypeField?: boolean | null;\n /** Indicates if the field is searchable, optional. */\n searchable?: boolean | null;\n /** Options for the field, optional. */\n options?: FieldOption[] | null;\n /** Validators for the field, optional. */\n validators?: SchemaValidator[] | null;\n}\n\n/**\n * Represents a map of schema fields.\n * The key is a string representing the schema name.\n * The value is an array of SchemaField objects.\n */\nexport type SchemaMap = Record<string, SchemaField[]>;\n\n/**\n * Enum representing the various field types.\n */\nexport enum FieldType {\n String = \"String\",\n Bool = \"Bool\",\n Int = \"Int\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n Time = \"Time\",\n Double = \"Double\",\n EntityRef = \"EntityRef\",\n Compound = \"Compound\",\n AutoId = \"AutoId\",\n Image = \"Image\",\n Any = \"Any\",\n}\n\n/**\n * Represents a field that references an entity.\n */\nexport interface EntityRefField extends SchemaField {\n /** The type of the field, which is EntityRef. */\n type: FieldType.EntityRef;\n /** The type of the referenced entity. */\n entityRefType: string;\n /** The parent field of the entity reference. */\n parentField: string;\n}\n\n/**\n * Represents an option for a field.\n */\nexport interface FieldOption {\n /** The name of the option. */\n name: string;\n /** The value of the option. */\n value: any;\n /** The description of the option, optional. */\n description?: string | null;\n /** The group of the option, optional. */\n group?: string | null;\n /** Indicates if the option is disabled, optional. */\n disabled?: boolean | null;\n}\n\n/**\n * Represents a compound field that contains child fields.\n */\nexport interface CompoundField extends SchemaField {\n /** The type of the field, which is Compound. */\n type: FieldType.Compound;\n /** The child fields of the compound field. */\n children: SchemaField[];\n /** Indicates if the children are tree-structured, optional. */\n treeChildren?: boolean;\n /** The schema reference for the compound field, optional. */\n schemaRef?: string;\n}\n\n/**\n * Enum representing the various validation message types.\n */\nexport enum ValidationMessageType {\n NotEmpty = \"NotEmpty\",\n MinLength = \"MinLength\",\n MaxLength = \"MaxLength\",\n NotAfterDate = \"NotAfterDate\",\n NotBeforeDate = \"NotBeforeDate\",\n}\n\nexport function findField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return fields.find((x) => x.field === field);\n}\n\nexport function isScalarField(sf: SchemaField): sf is SchemaField {\n return !isCompoundField(sf);\n}\n\nexport function isCompoundField(sf: SchemaField): sf is CompoundField {\n return sf.type === FieldType.Compound;\n}\n\nexport function missingField(field: string): SchemaField {\n return { field: \"__missing\", type: FieldType.Any, displayName: field };\n}\n\nexport enum SchemaTags {\n NoControl = \"_NoControl\",\n HtmlEditor = \"_HtmlEditor\",\n ControlGroup = \"_ControlGroup:\",\n ControlRef = \"_ControlRef:\",\n IdField = \"_IdField:\",\n}\n\nexport function getTagParam(\n field: SchemaField,\n tag: string,\n): string | undefined {\n return field.tags?.find((x) => x.startsWith(tag))?.substring(tag.length);\n}\n\nexport function makeParamTag(tag: string, value: string): string {\n return `${tag}${value}`;\n}\n","import {\n CompoundField,\n FieldType,\n isCompoundField,\n missingField,\n SchemaField,\n} from \"./schemaField\";\n\nexport interface SchemaTreeLookup {\n getSchema(schemaId: string): SchemaNode | undefined;\n\n getSchemaTree(\n schemaId: string,\n additional?: SchemaField[],\n ): SchemaTree | undefined;\n}\n\nexport abstract class SchemaTree {\n abstract rootNode: SchemaNode;\n\n abstract getSchemaTree(schemaId: string): SchemaTree | undefined;\n\n createChildNode(parent: SchemaNode, field: SchemaField): SchemaNode {\n return new SchemaNode(parent.id + \"/\" + field.field, field, this, parent);\n }\n\n getSchema(schemaId: string): SchemaNode | undefined {\n return this.getSchemaTree(schemaId)?.rootNode;\n }\n}\n\nclass SchemaTreeImpl extends SchemaTree {\n rootNode: SchemaNode;\n\n getSchemaTree(schemaId: string): SchemaTree | undefined {\n return this.lookup?.getSchemaTree(schemaId);\n }\n\n constructor(\n rootFields: SchemaField[],\n private lookup?: SchemaTreeLookup,\n ) {\n super();\n this.rootNode = new SchemaNode(\n \"\",\n {\n type: FieldType.Compound,\n field: \"\",\n children: rootFields,\n } as CompoundField,\n this,\n );\n }\n}\n\nexport function createSchemaTree(\n rootFields: SchemaField[],\n lookup?: SchemaTreeLookup,\n): SchemaTree {\n return new SchemaTreeImpl(rootFields, lookup);\n}\n\nexport class SchemaNode {\n public constructor(\n public id: string,\n public field: SchemaField,\n public tree: SchemaTree,\n public parent?: SchemaNode,\n private getChildFields?: () => SchemaField[],\n ) {}\n\n getSchema(schemaId: string): SchemaNode | undefined {\n return this.tree.getSchema(schemaId);\n }\n\n getUnresolvedFields(): SchemaField[] {\n if (this.getChildFields) return this.getChildFields();\n return isCompoundField(this.field) ? this.field.children : [];\n }\n\n getResolvedParent(noRecurse?: boolean): SchemaNode | undefined {\n const f = this.field;\n if (!isCompoundField(f)) return undefined;\n const parentNode = f.schemaRef\n ? this.tree.getSchema(f.schemaRef)\n : !noRecurse && f.treeChildren\n ? this.parent?.getResolvedParent()\n : undefined;\n return parentNode ?? this;\n }\n\n getResolvedFields(): SchemaField[] {\n const resolvedParent = this.getResolvedParent();\n return resolvedParent?.getUnresolvedFields() ?? [];\n }\n\n getChildNodes(): SchemaNode[] {\n const node = this;\n return node.getResolvedFields().map((x) => node.createChildNode(x));\n }\n\n getChildField(field: string): SchemaField {\n return (\n this.getResolvedFields().find((x) => x.field === field) ??\n missingField(field)\n );\n }\n\n createChildNode(field: SchemaField): SchemaNode {\n return this.tree.createChildNode(this, field);\n }\n\n getChildNode(field: string): SchemaNode {\n return this.createChildNode(this.getChildField(field));\n }\n}\n\nexport function resolveSchemaNode(\n node: SchemaNode,\n fieldSegment: string,\n): SchemaNode | undefined {\n if (fieldSegment == \".\") return node;\n if (fieldSegment == \"..\") return node.parent;\n return node.getChildNode(fieldSegment);\n}\n\nexport function createSchemaNode(\n field: SchemaField,\n lookup: SchemaTree,\n parent: SchemaNode | undefined,\n): SchemaNode {\n return new SchemaNode(\n parent ? parent.id + \"/\" + field.field : field.field,\n field,\n lookup,\n parent,\n );\n}\n\nexport function createSchemaLookup<A extends Record<string, SchemaField[]>>(\n schemaMap: A,\n): {\n getSchema(schemaId: keyof A): SchemaNode;\n getSchemaTree(schemaId: keyof A, additional?: SchemaField[]): SchemaTree;\n} {\n const lookup = {\n getSchemaTree,\n getSchema,\n };\n return lookup;\n\n function getSchema(schemaId: keyof A): SchemaNode {\n return getSchemaTree(schemaId)!.rootNode;\n }\n\n function getSchemaTree(\n schemaId: keyof A,\n additional?: SchemaField[],\n ): SchemaTree {\n const fields = schemaMap[schemaId];\n if (fields) {\n return new SchemaTreeImpl(\n additional ? [...fields, ...additional] : fields,\n lookup,\n );\n }\n return undefined!;\n }\n}\n\nexport function schemaForFieldRef(\n fieldRef: string | undefined,\n schema: SchemaNode,\n): SchemaNode {\n return schemaForFieldPath(fieldRef?.split(\"/\") ?? [], schema);\n}\n\nexport function traverseSchemaPath<A>(\n fieldPath: string[],\n schema: SchemaNode,\n acc: A,\n next: (acc: A, node: SchemaNode) => A,\n): A {\n let i = 0;\n while (i < fieldPath.length) {\n const nextField = fieldPath[i];\n let childNode = resolveSchemaNode(schema, nextField);\n if (!childNode) {\n childNode = createSchemaNode(\n missingField(nextField),\n schema.tree,\n schema,\n );\n }\n acc = next(acc, childNode);\n schema = childNode;\n i++;\n }\n return acc;\n}\n\nexport function traverseData(\n fieldPath: string[],\n root: SchemaNode,\n data: { [k: string]: any },\n): unknown {\n return traverseSchemaPath(\n fieldPath,\n root,\n data,\n (acc, n) => acc?.[n.field.field] as any,\n );\n}\n\nexport function schemaForFieldPath(\n fieldPath: string[],\n schema: SchemaNode,\n): SchemaNode {\n let i = 0;\n while (i < fieldPath.length) {\n const nextField = fieldPath[i];\n let childNode = resolveSchemaNode(schema, nextField);\n if (!childNode) {\n childNode = createSchemaNode(\n missingField(nextField),\n schema.tree,\n schema,\n );\n }\n schema = childNode;\n i++;\n }\n return schema;\n}\n\nexport function schemaForDataPath(\n fieldPath: string[],\n schema: SchemaNode,\n): DataPathNode {\n let i = 0;\n let element = schema.field.collection;\n while (i < fieldPath.length) {\n const nextField = fieldPath[i];\n let childNode: SchemaNode | undefined;\n if (nextField == \".\") {\n i++;\n continue;\n } else if (nextField == \"..\") {\n if (element) {\n element = false;\n i++;\n continue;\n }\n childNode = schema.parent;\n } else {\n childNode = schema.getChildNode(nextField);\n }\n if (!childNode) {\n childNode = createSchemaNode(\n missingField(nextField),\n schema.tree,\n schema,\n );\n } else {\n element = childNode.field.collection;\n }\n schema = childNode;\n i++;\n }\n return { node: schema, element: !!element };\n}\n\nexport function getParentDataPath({\n node,\n element,\n}: DataPathNode): DataPathNode | undefined {\n if (element) return { node, element: false };\n const parent = node.parent;\n return parent\n ? { node: parent, element: !!parent.field.collection }\n : undefined;\n}\n\nexport function getSchemaNodePath(node: SchemaNode) {\n const paths: string[] = [];\n let curNode: SchemaNode | undefined = node;\n while (curNode) {\n paths.push(curNode.field.field);\n curNode = curNode.parent;\n }\n return paths.reverse();\n}\n\nexport function getSchemaNodePathString(node: SchemaNode) {\n return getSchemaNodePath(node).join(\"/\");\n}\n\nexport function isCompoundNode(node: SchemaNode) {\n return isCompoundField(node.field);\n}\n\n/**\n * Returns the relative path from a parent node to a child node.\n * @param parent\n * @param child\n */\nexport function relativePath(parent: SchemaNode, child: SchemaNode): string {\n // return the path from child to parent\n if (parent.id === child.id) return \".\";\n\n const parentPath = getSchemaNodePath(parent);\n const childPath = getSchemaNodePath(child);\n return relativeSegmentPath(parentPath, childPath);\n}\n\n/**\n * Returns the relative path from a parent node to a child node.\n * @param parentPath\n * @param childPath\n */\nexport function relativeSegmentPath(\n parentPath: string[],\n childPath: string[],\n): string {\n let i = 0;\n while (\n i < parentPath.length &&\n i < childPath.length &&\n parentPath[i] === childPath[i]\n ) {\n i++;\n }\n\n const upLevels = parentPath.length - i;\n const downPath = childPath.slice(i).join(\"/\");\n\n return \"../\".repeat(upLevels) + downPath;\n}\n\nexport interface DataPathNode {\n node: SchemaNode;\n element: boolean;\n}\n","import {\n CompoundField,\n FieldOption,\n FieldType,\n isCompoundField,\n SchemaField,\n SchemaMap,\n} from \"./schemaField\";\n\nexport type AllowedSchema<T> = T extends string\n ? SchemaField & {\n type:\n | FieldType.String\n | FieldType.Date\n | FieldType.DateTime\n | FieldType.Time;\n }\n : T extends number\n ? SchemaField & {\n type: FieldType.Int | FieldType.Double;\n }\n : T extends boolean\n ? SchemaField & {\n type: FieldType.Bool;\n }\n : T extends Array<infer E>\n ? AllowedSchema<E> & {\n collection: true;\n }\n : T extends { [key: string]: any }\n ? CompoundField & {\n type: FieldType.Compound;\n }\n : SchemaField & { type: FieldType.Any };\n\ntype AllowedField<T, K> = (\n name: string,\n) => (SchemaField & { type: K }) | AllowedSchema<T>;\n\nexport function buildSchema<T, Custom = \"\">(def: {\n [K in keyof T]-?: AllowedField<T[K], Custom>;\n}): SchemaField[] {\n return Object.entries(def).map((x) =>\n (x[1] as (n: string) => SchemaField)(x[0]),\n );\n}\n\nexport type FieldBuilder<T extends FieldType, K> = (\n name: string,\n) => Omit<SchemaField, \"type\"> & { type: T } & K;\n\nexport function stringField(\n displayName: string,\n): FieldBuilder<FieldType.String, {}>;\n\nexport function stringField<S extends Partial<SchemaField>>(\n displayName: string,\n options: S,\n): FieldBuilder<FieldType.String, S>;\n\nexport function stringField(displayName: string, options?: any) {\n return makeScalarField({\n type: FieldType.String,\n displayName,\n ...options,\n });\n}\n\nexport function stringOptionsField(\n displayName: string,\n ...options: FieldOption[]\n) {\n return makeScalarField({\n type: FieldType.String as const,\n displayName,\n options,\n });\n}\n\nexport function withScalarOptions<\n S extends SchemaField,\n S2 extends Partial<SchemaField>,\n>(options: S2, v: (name: string) => S): (name: string) => S & S2 {\n return (n) => ({ ...v(n), ...options });\n}\n\nexport function makeScalarField<S extends Partial<SchemaField>>(\n options: S,\n): (name: string) => SchemaField & S {\n return (n) => ({ ...defaultScalarField(n, n), ...options });\n}\n\nexport function makeCompoundField<S extends Partial<CompoundField>>(\n options: S,\n): (name: string) => CompoundField & {\n type: FieldType.Compound;\n} & S {\n return (n) => ({ ...defaultCompoundField(n, n, false), ...options });\n}\n\nexport function intField(displayName: string): FieldBuilder<FieldType.Int, {}>;\n\nexport function intField<S extends Partial<SchemaField>>(\n displayName: string,\n options: S,\n): FieldBuilder<FieldType.Int, S>;\n\nexport function intField<S extends Partial<SchemaField>>(\n displayName: string,\n options?: S,\n) {\n return makeScalarField({\n type: FieldType.Int as const,\n displayName,\n ...(options as S),\n });\n}\n\nexport function doubleField(\n displayName: string,\n): FieldBuilder<FieldType.Double, {}>;\n\nexport function doubleField<S extends Partial<SchemaField>>(\n displayName: string,\n options: S,\n): FieldBuilder<FieldType.Double, S>;\n\nexport function doubleField<S extends Partial<SchemaField>>(\n displayName: string,\n options?: S,\n) {\n return makeScalarField({\n type: FieldType.Double as const,\n displayName,\n ...(options as S),\n });\n}\n\nexport function dateField(\n displayName: string,\n): FieldBuilder<FieldType.Date, {}>;\n\nexport function dateField<S extends Partial<SchemaField>>(\n displayName: string,\n options: S,\n): FieldBuilder<FieldType.Date, S>;\n\nexport function dateField<S extends Partial<SchemaField>>(\n displayName: string,\n options?: S,\n) {\n return makeScalarField({\n type: FieldType.Date as const,\n displayName,\n ...(options as S),\n });\n}\n\nexport function timeField<S extends Partial<SchemaField>>(\n displayName: string,\n options?: S,\n) {\n return makeScalarField({\n type: FieldType.Time as const,\n displayName,\n ...(options as S),\n });\n}\n\nexport function dateTimeField<S extends Partial<SchemaField>>(\n displayName: string,\n options?: S,\n) {\n return makeScalarField({\n type: FieldType.DateTime as const,\n displayName,\n ...(options as S),\n });\n}\n\nexport function boolField(\n displayName: string,\n): FieldBuilder<FieldType.Bool, {}>;\n\nexport function boolField<S extends Partial<SchemaField>>(\n displayName: string,\n options: S,\n): FieldBuilder<FieldType.Bool, S>;\n\nexport function boolField(displayName: string, options?: any) {\n return makeScalarField({\n type: FieldType.Bool as const,\n displayName,\n ...options,\n });\n}\n\nexport function compoundField<\n Other extends Partial<Omit<CompoundField, \"type\" | \"schemaType\">>,\n>(\n displayName: string,\n fields: SchemaField[],\n other?: Other,\n): (name: string) => CompoundField & {\n collection: Other[\"collection\"];\n} {\n return (field) =>\n ({\n ...defaultCompoundField(field, displayName, false),\n ...other,\n children: fields,\n }) as any;\n}\n\nexport function defaultScalarField(\n field: string,\n displayName: string,\n): Omit<SchemaField, \"type\"> & {\n type: FieldType.String;\n} {\n return {\n field,\n displayName,\n type: FieldType.String,\n };\n}\n\nexport function defaultCompoundField(\n field: string,\n displayName: string,\n collection: boolean,\n): CompoundField & {\n type: FieldType.Compound;\n} {\n return {\n field,\n displayName,\n type: FieldType.Compound,\n collection,\n children: [],\n };\n}\n\nexport function mergeField(\n field: SchemaField,\n mergeInto: SchemaField[],\n): SchemaField[] {\n const existing = mergeInto.find((x) => x.field === field.field);\n if (existing) {\n return mergeInto.map((x) =>\n x !== existing\n ? x\n : {\n ...x,\n onlyForTypes: mergeTypes(x.onlyForTypes, field.onlyForTypes),\n },\n );\n }\n return [...mergeInto, field];\n\n function mergeTypes(f?: string[] | null, s?: string[] | null) {\n if (!f) return s;\n if (!s) return f;\n const extras = s.filter((x) => !f.includes(x));\n return extras.length ? [...f, ...extras] : f;\n }\n}\n\nexport function mergeOption(\n fields: SchemaField[],\n name: string,\n value: any,\n fieldName: string,\n): SchemaField[] {\n return fields.map((x) =>\n x.field === fieldName ? addFieldOption(x, name, value) : x,\n );\n}\n\nexport function mergeFields(\n fields: SchemaField[],\n name: string,\n value: any,\n newFields: SchemaField[],\n): SchemaField[] {\n if (name === \"*\") {\n return newFields.reduce((af, x) => mergeField(x, af), fields);\n }\n const withType = fields.map((x) =>\n x.isTypeField ? addFieldOption(x, name, value) : x,\n );\n return newFields\n .map((x) => ({ ...x, onlyForTypes: [value] }))\n .reduce((af, x) => mergeField(x, af), withType);\n}\n\nexport function addFieldOption(\n typeField: SchemaField,\n name: string,\n value: any,\n): SchemaField {\n const options = typeField.options ?? [];\n if (options.some((x) => x.value === value)) return typeField;\n return {\n ...typeField,\n options: [...options, { name, value }],\n };\n}\n\nexport function resolveSchemas<A extends SchemaMap>(schemaMap: A): A {\n const out: SchemaMap = {};\n function resolveSchemaType(type: string) {\n if (type in out) {\n return out[type];\n }\n const resolvedFields: SchemaField[] = [];\n out[type] = resolvedFields;\n schemaMap[type].forEach((x) => {\n if (isCompoundField(x) && x.schemaRef) {\n resolvedFields.push({\n ...x,\n children: resolveSchemaType(x.schemaRef),\n } as CompoundField);\n } else {\n resolvedFields.push(x);\n }\n });\n return resolvedFields;\n }\n Object.keys(schemaMap).forEach(resolveSchemaType);\n return out as A;\n}\n","import {\n Control,\n ensureMetaValue,\n newControl,\n updateComputedValue,\n} from \"@astroapps/controls\";\nimport { missingField } from \"./schemaField\";\nimport { createSchemaNode, resolveSchemaNode, SchemaNode } from \"./schemaNode\";\nimport { SchemaInterface } from \"./schemaInterface\";\nimport { ControlDefinition, getDisplayOnlyOptions } from \"./controlDefinition\";\n\nexport abstract class SchemaDataTree {\n abstract rootNode: SchemaDataNode;\n\n abstract getChild(parent: SchemaDataNode, child: SchemaNode): SchemaDataNode;\n\n abstract getChildElement(\n parent: SchemaDataNode,\n elementIndex: number,\n ): SchemaDataNode;\n}\n\nexport class SchemaDataNode {\n constructor(\n public id: string,\n public schema: SchemaNode,\n public elementIndex: number | undefined,\n public control: Control<any>,\n public tree: SchemaDataTree,\n public parent?: SchemaDataNode,\n ) {}\n\n getChild(childNode: SchemaNode): SchemaDataNode {\n return this.tree.getChild(this, childNode);\n }\n\n getChildElement(elementIndex: number): SchemaDataNode {\n return this.tree.getChildElement(this, elementIndex);\n }\n}\n\nexport function getMetaFields<\n T extends Record<string, any> = Record<string, unknown>,\n>(control: Control<any>): Control<T> {\n return ensureMetaValue(\n control,\n \"metaFields\",\n () => newControl({}) as Control<T>,\n );\n}\nexport class SchemaDataTreeImpl extends SchemaDataTree {\n rootNode: SchemaDataNode;\n\n constructor(rootSchema: SchemaNode, rootControl: Control<any>) {\n super();\n this.rootNode = new SchemaDataNode(\n \"\",\n rootSchema,\n undefined,\n rootControl,\n this,\n );\n }\n\n getChild(parent: SchemaDataNode, childNode: SchemaNode): SchemaDataNode {\n let objControl = parent.control as Control<Record<string, unknown>>;\n if (childNode.field.meta) {\n objControl = getMetaFields(objControl);\n }\n const child = objControl.fields[childNode.field.field];\n return new SchemaDataNode(\n child.uniqueId.toString(),\n childNode,\n undefined,\n child,\n this,\n parent,\n );\n }\n\n getChildElement(\n parent: SchemaDataNode,\n elementIndex: number,\n ): SchemaDataNode {\n const elemControl = parent.control as Control<unknown[]>;\n const elemChild = elemControl.elements[elementIndex];\n return new SchemaDataNode(\n elemChild.uniqueId.toString() + \"_\" + elementIndex,\n parent.schema,\n elementIndex,\n elemChild,\n this,\n parent,\n );\n }\n}\n\n/**\n * @deprecated Use createSchemaDataNode instead.\n */\nexport const makeSchemaDataNode = createSchemaDataNode;\n\nexport function createSchemaDataNode(\n schema: SchemaNode,\n control: Control<unknown>,\n): SchemaDataNode {\n return new SchemaDataTreeImpl(schema, control).rootNode;\n}\n\nexport function schemaDataForFieldRef(\n fieldRef: string | undefined,\n schema: SchemaDataNode,\n): SchemaDataNode {\n return schemaDataForFieldPath(fieldRef?.split(\"/\") ?? [], schema);\n}\n\nexport function schemaDataForFieldPath(\n fieldPath: string[],\n dataNode: SchemaDataNode,\n): SchemaDataNode {\n let i = 0;\n while (i < fieldPath.length) {\n const nextField = fieldPath[i];\n let nextNode =\n nextField === \"..\"\n ? dataNode.parent\n : nextField === \".\"\n ? dataNode\n : lookupField(nextField);\n nextNode ??= createSchemaDataNode(\n createSchemaNode(\n missingField(nextField),\n dataNode.schema.tree,\n dataNode.schema,\n ),\n newControl(undefined),\n );\n dataNode = nextNode;\n i++;\n }\n return dataNode;\n\n function lookupField(field: string): SchemaDataNode | undefined {\n const childNode = resolveSchemaNode(dataNode.schema, field);\n if (childNode) {\n return dataNode.getChild(childNode);\n }\n return undefined;\n }\n}\n\nexport function validDataNode(context: SchemaDataNode): boolean {\n const parent = context.parent;\n if (!parent) return true;\n if (parent.schema.field.collection && parent.elementIndex == null)\n return validDataNode(parent);\n return ensureMetaValue(context.control, \"validForSchema\", () => {\n const c = newControl(true);\n updateComputedValue(c, () => {\n if (!validDataNode(parent)) return false;\n const types = context.schema.field.onlyForTypes;\n if (types == null || types.length === 0) return true;\n const typeNode = parent.schema\n .getChildNodes()\n .find((x) => x.field.isTypeField);\n if (typeNode == null) {\n console.warn(\"No type field found for\", parent.schema);\n return false;\n }\n const typeField = parent.getChild(typeNode).control as Control<string>;\n return typeField && types.includes(typeField.value);\n });\n return c;\n }).value;\n}\n\nexport function hideDisplayOnly(\n context: SchemaDataNode,\n schemaInterface: SchemaInterface,\n definition: ControlDefinition,\n) {\n const displayOptions = getDisplayOnlyOptions(definition);\n return (\n displayOptions &&\n !displayOptions.emptyText &&\n schemaInterface.isEmptyValue(context.schema.field, context.control?.value)\n );\n}\n\nexport function getLoadingControl(data: Control<any>): Control<boolean> {\n return ensureMetaValue(data, \"loading\", () => newControl(false));\n}\n\nexport function getRefreshingControl(data: Control<any>): Control<boolean> {\n return ensureMetaValue(data, \"refreshing\", () => newControl(false));\n}\n\nexport function getHasMoreControl(data: Control<any>): Control<boolean> {\n return ensureMetaValue(data, \"hasMore\", () => newControl(false));\n}\n","import {\n EqualityFunc,\n FieldOption,\n FieldType,\n SchemaField,\n ValidationMessageType,\n} from \"./schemaField\";\nimport { SchemaInterface } from \"./schemaInterface\";\nimport { SchemaDataNode } from \"./schemaDataNode\";\nimport { SchemaNode } from \"./schemaNode\";\nimport { Control, ControlSetup } from \"@astroapps/controls\";\nimport { parseDateTime as pdt } from \"@internationalized/date\";\n\nexport class DefaultSchemaInterface implements SchemaInterface {\n constructor(\n protected boolStrings: [string, string] = [\"No\", \"Yes\"],\n protected parseDateTime: (s: string) => number = (s) => {\n try {\n return pdt(s).toDate(\"UTC\").getTime();\n } catch (e) {\n return Number.NaN;\n }\n },\n ) {}\n\n parseToMillis(field: SchemaField, v: string): number {\n return this.parseDateTime(v);\n }\n\n validationMessageText(\n field: SchemaField,\n messageType: ValidationMessageType,\n actual: any,\n expected: any,\n ): string {\n switch (messageType) {\n case ValidationMessageType.NotEmpty:\n return \"Please enter a value\";\n case ValidationMessageType.MinLength:\n return \"Length must be at least \" + expected;\n case ValidationMessageType.MaxLength:\n return \"Length must be less than \" + expected;\n case ValidationMessageType.NotBeforeDate:\n return `Date must not be before ${new Date(expected).toDateString()}`;\n case ValidationMessageType.NotAfterDate:\n return `Date must not be after ${new Date(expected).toDateString()}`;\n default:\n return \"Unknown error\";\n }\n }\n\n getDataOptions(node: SchemaDataNode): FieldOption[] | null | undefined {\n return this.getNodeOptions(node.schema);\n }\n\n getNodeOptions(node: SchemaNode): FieldOption[] | null | undefined {\n return this.getOptions(node.field);\n }\n\n getOptions({ options }: SchemaField): FieldOption[] | null | undefined {\n return options && options.length > 0 ? options : null;\n }\n\n getFilterOptions(\n array: SchemaDataNode,\n field: SchemaNode,\n ): FieldOption[] | undefined | null {\n return this.getNodeOptions(field);\n }\n\n isEmptyValue(f: SchemaField, value: any): boolean {\n if (f.collection)\n return Array.isArray(value) ? value.length === 0 : value == null;\n switch (f.type) {\n case FieldType.String:\n case FieldType.DateTime:\n case FieldType.Date:\n case FieldType.Time:\n return !value;\n default:\n return value == null;\n }\n }\n\n searchText(field: SchemaField, value: any): string {\n return this.textValue(field, value)?.toLowerCase() ?? \"\";\n }\n\n textValueForData(dataNode: SchemaDataNode): string | undefined {\n const options = this.getDataOptions(dataNode);\n return this.textValue(\n dataNode.schema.field,\n dataNode.control.value,\n dataNode.elementIndex != null,\n options,\n );\n }\n textValue(\n field: SchemaField,\n value: any,\n element?: boolean | undefined,\n options?: FieldOption[] | null,\n ): string | undefined {\n const actualOptions = options ?? this.getOptions(field);\n const option = actualOptions?.find((x) => x.value === value);\n if (option) return option.name;\n switch (field.type) {\n case FieldType.Date:\n return value ? new Date(value).toLocaleDateString() : undefined;\n case FieldType.DateTime:\n return value\n ? new Date(this.parseToMillis(field, value)).toLocaleString()\n : undefined;\n case FieldType.Time:\n return value\n ? new Date(\"1970-01-01T\" + value).toLocaleTimeString()\n : undefined;\n case FieldType.Bool:\n return value != null ? this.boolStrings[value ? 1 : 0] : undefined;\n default:\n return value != null ? value.toString() : undefined;\n }\n }\n\n controlLength(f: SchemaField, control: Control<any>): number {\n return f.collection\n ? (control.elements?.length ?? 0)\n : this.valueLength(f, control.value);\n }\n\n valueLength(field: SchemaField, value: any): number {\n const len = value?.length;\n return typeof len === \"number\" ? len : 0;\n }\n\n compareValue(field: SchemaField, v1: unknown, v2: unknown): number {\n if (v1 == null) return v2 == null ? 0 : 1;\n if (v2 == null) return -1;\n switch (field.type) {\n case FieldType.Date:\n case FieldType.DateTime:\n case FieldType.Time:\n case FieldType.String:\n return (v1 as string).localeCompare(v2 as string);\n case FieldType.Bool:\n return v1 === v2 ? 0 : !v1 ? -1 : 1;\n case FieldType.Int:\n case FieldType.Double:\n return (v1 as number) - (v2 as number);\n default:\n return 0;\n }\n }\n\n compoundFieldSetup(f: SchemaNode): [string, ControlSetup<any>][] {\n return f.getChildNodes().map((x) => {\n const { field } = x.field;\n return [field, this.makeControlSetup(x)];\n });\n }\n\n compoundFieldEquality(f: SchemaNode): [string, EqualityFunc][] {\n return f.getChildNodes().map((x) => {\n const { field } = x.field;\n return [field, (a, b) => this.makeEqualityFunc(x)(a[field], b[field])];\n });\n }\n\n makeEqualityFunc(field: SchemaNode, element?: boolean): EqualityFunc {\n if (field.field.collection && !element) {\n const elemEqual = this.makeEqualityFunc(field, true);\n return (a, b) => {\n if (a === b) return true;\n if (a == null || b == null) return false;\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (!elemEqual(a[i], b[i])) return false;\n }\n return true;\n };\n }\n switch (field.field.type) {\n case FieldType.Compound:\n const allChecks = this.compoundFieldEquality(field);\n return (a, b) =>\n a === b ||\n (a != null && b != null && allChecks.every((x) => x[1](a, b)));\n default:\n return (a, b) => a === b;\n }\n }\n makeControlSetup(field: SchemaNode, element?: boolean): ControlSetup<any> {\n let setup: ControlSetup<any> = {\n equals: this.makeEqualityFunc(field, element),\n };\n if (field.field.collection && !element) {\n setup.elems = this.makeControlSetup(field, true);\n return setup;\n }\n switch (field.field.type) {\n case FieldType.Compound:\n setup.fields = Object.fromEntries(this.compoundFieldSetup(field));\n }\n return setup;\n }\n}\n\nexport const defaultSchemaInterface: SchemaInterface =\n new DefaultSchemaInterface();\n","import {\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n GroupedControlsDefinition,\n GroupRenderType,\n isDataControl,\n isGroupControl,\n} from \"./controlDefinition\";\nimport { schemaDataForFieldPath, SchemaDataNode } from \"./schemaDataNode\";\n\nexport type ControlMap = { [k: string]: ControlDefinition };\n\nexport class FormNode {\n constructor(\n public id: string,\n public definition: ControlDefinition,\n public tree: FormTree,\n public parent?: FormNode,\n ) {}\n\n visit<A>(visitFn: (n: FormNode) => A | undefined): A | undefined {\n const res = visitFn(this);\n if (res !== undefined) return res;\n const children = this.getUnresolvedChildNodes();\n for (const child of children) {\n const res = child.visit(visitFn);\n if (res !== undefined) return res;\n }\n return undefined;\n }\n\n getResolvedChildren(): ControlDefinition[] {\n const childRefId = this.definition.childRefId;\n const parent = childRefId ? this.tree.getByRefId(childRefId) : undefined;\n return (parent ?? this.definition)?.children ?? [];\n }\n\n createChildNode(childId: string, childDef: ControlDefinition) {\n return new FormNode(\n this.tree.getChildId(this.id, childId, childDef),\n childDef,\n this.tree,\n this,\n );\n }\n\n getChildNodes(): FormNode[] {\n const resolved = this.getResolvedChildren();\n return resolved.map((x, i) => this.createChildNode(i.toString(), x));\n }\n\n getUnresolvedChildNodes(): FormNode[] {\n return (\n this.definition.children?.map((x, i) =>\n this.createChildNode(i.toString(), x),\n ) ?? []\n );\n }\n}\n\nexport interface FormTreeLookup {\n getForm(formId: string): FormTree | undefined;\n}\n\nexport abstract class FormTree implements FormTreeLookup {\n abstract rootNode: FormNode;\n\n abstract getByRefId(id: string): ControlDefinition | undefined;\n\n abstract getForm(formId: string): FormTree | undefined;\n\n getChildId(\n parentId: string,\n childId: string,\n control: ControlDefinition,\n ): string {\n return parentId + \"/\" + childId;\n }\n}\n\nfunction getControlIds(\n definition: ControlDefinition,\n): [string, ControlDefinition][] {\n const childEntries = definition.children?.flatMap(getControlIds) ?? [];\n return !definition.id\n ? childEntries\n : [[definition.id, definition], ...childEntries];\n}\n\nexport function createControlMap(control: ControlDefinition): ControlMap {\n return Object.fromEntries(getControlIds(control));\n}\n\nclass FormTreeImpl extends FormTree {\n controlMap: ControlMap;\n rootNode: FormNode;\n\n constructor(\n private forms: FormTreeLookup,\n root: ControlDefinition,\n ) {\n super();\n this.rootNode = new FormNode(\"\", root, this);\n this.controlMap = createControlMap(root);\n }\n\n getByRefId(id: string): ControlDefinition | undefined {\n return this.controlMap[id];\n }\n\n getForm(formId: string): FormTree | undefined {\n return this.forms.getForm(formId);\n }\n}\n\nexport function legacyFormNode(definition: ControlDefinition) {\n return createFormTree([definition]).rootNode;\n}\n\nexport function createFormTree(\n controls: ControlDefinition[],\n getForm: FormTreeLookup = { getForm: () => undefined },\n): FormTree {\n return new FormTreeImpl(\n getForm,\n controls.length === 1\n ? controls[0]\n : ({\n type: ControlDefinitionType.Group,\n children: controls,\n groupOptions: {\n type: GroupRenderType.Standard,\n hideTitle: true,\n },\n } as GroupedControlsDefinition),\n );\n}\n\nexport function createFormLookup<A extends Record<string, ControlDefinition[]>>(\n formMap: A,\n): {\n getForm(formId: keyof A): FormTree;\n} {\n const lookup = {\n getForm,\n };\n const forms = Object.fromEntries(\n Object.entries(formMap).map(([k, v]) => [k, createFormTree(v, lookup)]),\n );\n return lookup;\n\n function getForm(formId: keyof A): FormTree {\n return forms[formId as string];\n }\n}\n\nexport function fieldPathForDefinition(\n c: ControlDefinition,\n): string[] | undefined {\n const fieldName = isGroupControl(c)\n ? c.compoundField\n : isDataControl(c)\n ? c.field\n : undefined;\n return fieldName?.split(\"/\");\n}\n\nexport function lookupDataNode(\n c: ControlDefinition,\n parentNode: SchemaDataNode,\n) {\n const fieldNamePath = fieldPathForDefinition(c);\n return fieldNamePath\n ? schemaDataForFieldPath(fieldNamePath, parentNode)\n : undefined;\n}\n\n/**\n * @deprecated use visitFormNodeData instead\n */\nexport function visitControlDataArray<A>(\n controls: ControlDefinition[] | undefined | null,\n context: SchemaDataNode,\n cb: (\n definition: DataControlDefinition,\n node: SchemaDataNode,\n ) => A | undefined,\n): A | undefined {\n if (!controls) return undefined;\n for (const c of controls) {\n const r = visitControlData(c, context, cb);\n if (r !== undefined) return r;\n }\n return undefined;\n}\n\n/**\n * @deprecated use visitFormDataInContext instead\n */\nexport function visitControlData<A>(\n definition: ControlDefinition,\n ctx: SchemaDataNode,\n cb: (\n definition: DataControlDefinition,\n field: SchemaDataNode,\n ) => A | undefined,\n): A | undefined {\n return visitFormDataInContext(ctx, legacyFormNode(definition), (n, d) =>\n cb(d, n),\n );\n}\n\nexport type ControlDataVisitor<A> = (\n dataNode: SchemaDataNode,\n definition: DataControlDefinition,\n) => A | undefined;\n\nexport function visitFormData<A>(\n node: FormNode,\n dataNode: SchemaDataNode,\n cb: ControlDataVisitor<A>,\n notSelf?: boolean,\n): A | undefined {\n const def = node.definition;\n const result = !notSelf && isDataControl(def) ? cb(dataNode, def) : undefined;\n if (result !== undefined) return result;\n if (dataNode.elementIndex == null && dataNode.schema.field.collection) {\n const l = dataNode.control.elements.length;\n for (let i = 0; i < l; i++) {\n const elemChild = dataNode.getChildElement(i);\n const elemResult = visitFormData(node, elemChild, cb);\n if (elemResult !== undefined) return elemResult;\n }\n return undefined;\n }\n if (dataNode.control.isNull) return undefined;\n const children = node.getChildNodes();\n const l = children.length;\n for (let i = 0; i < l; i++) {\n const elemResult = visitFormDataInContext(dataNode, children[i], cb);\n if (elemResult !== undefined) return elemResult;\n }\n return undefined;\n}\n\nexport function visitFormDataInContext<A>(\n parentContext: SchemaDataNode,\n node: FormNode,\n cb: ControlDataVisitor<A>,\n): A | undefined {\n const dataNode = lookupDataNode(node.definition, parentContext);\n return visitFormData(node, dataNode ?? parentContext, cb, !dataNode);\n}\n","import {\n addDependent,\n CleanupScope,\n Control, ControlSetup,\n newControl,\n updateComputedValue\n} from \"@astroapps/controls\";\n\n/**\n * Type representing a JSON path, which can be a string or a number.\n */\nexport type JsonPath = string | number;\n\n/**\n * Converts a JSON path array to a string.\n * @param jsonPath - The JSON path array to convert.\n * @param customIndex - Optional function to customize the index format.\n * @returns The JSON path string.\n */\nexport function jsonPathString(\n jsonPath: JsonPath[],\n customIndex?: (n: number) => string,\n) {\n let out = \"\";\n jsonPath.forEach((v, i) => {\n if (typeof v === \"number\") {\n out += customIndex?.(v) ?? \"[\" + v + \"]\";\n } else {\n if (i > 0) out += \".\";\n out += v;\n }\n });\n return out;\n}\n\nexport function createScopedComputed<T>(\n parent: CleanupScope,\n compute: () => T,\n): Control<T> {\n const c = newControl<any>(undefined);\n updateComputedValue(c, compute);\n addDependent(parent, c);\n return c.as();\n}\n\nexport function createScoped<T>(parent: CleanupScope, value: T, setup?: ControlSetup<T>): Control<T> {\n const c = newControl<T>(value, setup);\n addDependent(parent, c);\n return c;\n}\n","import {\n DataExpression,\n DataMatchExpression,\n EntityExpression,\n ExpressionType,\n JsonataExpression,\n NotEmptyExpression,\n} from \"./entityExpression\";\nimport {\n AsyncEffect,\n ChangeListenerFunc,\n CleanupScope,\n collectChanges,\n Control,\n createAsyncEffect,\n createSyncEffect,\n trackedValue,\n} from \"@astroapps/controls\";\nimport { schemaDataForFieldRef, SchemaDataNode } from \"./schemaDataNode\";\nimport { SchemaInterface } from \"./schemaInterface\";\nimport jsonata from \"jsonata\";\nimport { getJsonPath, getRootDataNode } from \"./controlDefinition\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { createScopedComputed, jsonPathString } from \"./util\";\n\nexport interface ExpressionEvalContext {\n scope: CleanupScope;\n returnResult: (k: unknown) => void;\n dataNode: SchemaDataNode;\n schemaInterface: SchemaInterface;\n variables?: (changes: ChangeListenerFunc<any>) => Record<string, any>;\n runAsync(effect: () => void): void;\n}\n\nexport type ExpressionEval<T extends EntityExpression> = (\n expr: T,\n context: ExpressionEvalContext,\n) => void;\n\nconst dataEval: ExpressionEval<DataExpression> = (\n fvExpr,\n { dataNode: node, returnResult, scope },\n) => {\n createSyncEffect(() => {\n const otherField = schemaDataForFieldRef(fvExpr.field, node);\n returnResult(otherField.control?.value);\n }, scope);\n};\nconst dataMatchEval: ExpressionEval<DataMatchExpression> = (\n matchExpr,\n { dataNode, returnResult, scope },\n) => {\n createSyncEffect(() => {\n const otherField = schemaDataForFieldRef(matchExpr.field, dataNode);\n const fv = otherField?.control.value;\n returnResult(\n Array.isArray(fv) ? fv.includes(matchExpr.value) : fv === matchExpr.value,\n );\n }, scope);\n};\n\nconst notEmptyEval: ExpressionEval<NotEmptyExpression> = (\n expr,\n { returnResult, dataNode, scope, schemaInterface },\n) => {\n createSyncEffect(() => {\n const otherField = schemaDataForFieldRef(expr.field, dataNode);\n const fv = otherField.control?.value;\n const field = otherField.schema.field;\n const empty = !!expr.empty;\n returnResult(field && empty === schemaInterface.isEmptyValue(field, fv));\n }, scope);\n};\n\nexport const jsonataEval: ExpressionEval<JsonataExpression> = (\n expr,\n { scope, returnResult, dataNode, variables, runAsync },\n) => {\n const path = getJsonPath(dataNode);\n const pathString = jsonPathString(path, (x) => `#$i[${x}]`);\n const rootData = getRootDataNode(dataNode).control;\n\n const parsedJsonata = createScopedComputed(scope, () => {\n const jExpr = expr.expression;\n const fullExpr = pathString ? pathString + \".(\" + jExpr + \")\" : jExpr;\n try {\n return { expr: jsonata(fullExpr ? fullExpr : \"null\"), fullExpr };\n } catch (e) {\n console.error(e);\n return { expr: jsonata(\"null\"), fullExpr };\n }\n });\n\n async function runJsonata(effect: AsyncEffect<any>, signal: AbortSignal) {\n const trackedVars = variables?.(effect.collectUsage);\n const evalResult = await parsedJsonata.fields.expr.value.evaluate(\n trackedValue(rootData, effect.collectUsage),\n trackedVars,\n );\n // console.log(\n // rootData,\n // parsedJsonata.fields.fullExpr.current.value,\n // evalResult,\n // trackedVars,\n // );\n collectChanges(effect.collectUsage, () => returnResult(evalResult));\n }\n\n const asyncEffect = createAsyncEffect(runJsonata, scope);\n runAsync(() => asyncEffect.start());\n};\n\nexport const uuidEval: ExpressionEval<EntityExpression> = (_, ctx) => {\n ctx.returnResult(uuidv4());\n};\n\nexport const defaultEvaluators: Record<string, ExpressionEval<any>> = {\n [ExpressionType.DataMatch]: dataMatchEval,\n [ExpressionType.Data]: dataEval,\n [ExpressionType.NotEmpty]: notEmptyEval,\n [ExpressionType.Jsonata]: jsonataEval,\n [ExpressionType.UUID]: uuidEval,\n};\n\nexport function createEvalExpr(\n evalExpression: (e: EntityExpression, ctx: ExpressionEvalContext) => void,\n context: Omit<ExpressionEvalContext, \"returnResult\" | \"scope\">,\n) {\n function evalExpr<A>(\n scope: CleanupScope,\n init: A,\n nk: Control<A>,\n e: EntityExpression | undefined,\n coerce: (t: unknown) => any,\n ): boolean {\n nk.value = init;\n if (e?.type) {\n evalExpression(e, {\n returnResult: (r) => {\n nk.value = coerce(r);\n },\n scope,\n ...context,\n });\n return true;\n }\n return false;\n }\n return evalExpr;\n}\n","import { Control, getCurrentFields } from \"@astroapps/controls\";\n\nexport function createOverrideProxy<\n A extends object,\n B extends Record<string, any>,\n>(proxyFor: A, handlers: Control<B>): A {\n const overrides = getCurrentFields(handlers);\n const allOwn = Reflect.ownKeys(proxyFor);\n Reflect.ownKeys(overrides).forEach((k) => {\n if (!allOwn.includes(k)) allOwn.push(k);\n });\n return new Proxy(proxyFor, {\n get(target: A, p: string | symbol, receiver: any): any {\n if (Object.hasOwn(overrides, p)) {\n const nv = overrides[p as keyof B]!.value;\n if (nv !== NoOverride) return nv;\n }\n return Reflect.get(target, p, receiver);\n },\n ownKeys(target: A): ArrayLike<string | symbol> {\n return allOwn;\n },\n has(target: A, p: string | symbol): boolean {\n return Reflect.has(proxyFor, p) || Reflect.has(overrides, p);\n },\n getOwnPropertyDescriptor(target, k) {\n if (Object.hasOwn(overrides, k))\n return {\n enumerable: true,\n configurable: true,\n };\n return Reflect.getOwnPropertyDescriptor(target, k);\n },\n });\n}\n\nclass NoValue {}\nexport const NoOverride = new NoValue();\n\nexport type KeysOfUnion<T> = T extends T ? keyof T : never;\n","import {\n DateComparison,\n DateValidator,\n JsonataValidator,\n LengthValidator,\n SchemaValidator,\n ValidatorType,\n} from \"./schemaValidator\";\nimport { ControlDefinition, isDataControl } from \"./controlDefinition\";\nimport { SchemaDataNode } from \"./schemaDataNode\";\nimport {\n CleanupScope,\n Control,\n ControlChange,\n createCleanupScope,\n createEffect,\n trackControlChange,\n} from \"@astroapps/controls\";\nimport { ValidationMessageType } from \"./schemaField\";\nimport { SchemaInterface } from \"./schemaInterface\";\nimport { jsonataEval } from \"./evalExpression\";\nimport { ExpressionType } from \"./entityExpression\";\nimport { createScopedComputed } from \"./util\";\nimport { FormStateBaseImpl, VariablesFunc } from \"./formStateNode\";\n\nexport interface ValidationEvalContext {\n addSync(validate: (value: unknown) => string | undefined | null): void;\n addCleanup(cleanup: () => void): void;\n validationEnabled: Control<boolean>;\n parentData: SchemaDataNode;\n data: SchemaDataNode;\n schemaInterface: SchemaInterface;\n variables?: VariablesFunc;\n runAsync(af: () => void): void;\n}\n\nexport type ValidatorEval<T extends SchemaValidator> = (\n validation: T,\n context: ValidationEvalContext,\n) => void;\n\nexport const jsonataValidator: ValidatorEval<JsonataValidator> = (\n validation,\n context,\n) => {\n const error = createScopedComputed(context, () => undefined);\n jsonataEval(\n { type: ExpressionType.Jsonata, expression: validation.expression },\n {\n scope: error,\n dataNode: context.parentData,\n returnResult: (v) => {\n trackControlChange(context.data.control, ControlChange.Validate);\n // console.log(\"Setting jsonata error\", v);\n context.data.control.setError(\"jsonata\", v?.toString());\n },\n schemaInterface: context.schemaInterface,\n variables: context.variables,\n runAsync: context.runAsync,\n },\n );\n};\n\nexport const lengthValidator: ValidatorEval<LengthValidator> = (\n lv,\n context,\n) => {\n const { schemaInterface } = context;\n context.addSync(() => {\n const field = context.data.schema.field;\n const control = context.data.control;\n const len = schemaInterface.controlLength(field, control);\n if (lv.min != null && len < lv.min) {\n if (field?.collection) {\n control.setValue((v) =>\n Array.isArray(v)\n ? v.concat(Array.from({ length: lv.min! - v.length }))\n : Array.from({ length: lv.min! }),\n );\n } else {\n return schemaInterface.validationMessageText(\n field,\n ValidationMessageType.MinLength,\n len,\n lv.min,\n );\n }\n } else if (lv.max != null && len > lv.max) {\n return schemaInterface.validationMessageText(\n field,\n ValidationMessageType.MaxLength,\n len,\n lv.max,\n );\n }\n return undefined;\n });\n};\n\nexport const dateValidator: ValidatorEval<DateValidator> = (dv, context) => {\n const { schemaInterface } = context;\n const field = context.data.schema.field;\n let comparisonDate: number;\n if (dv.fixedDate) {\n comparisonDate = schemaInterface.parseToMillis(field, dv.fixedDate);\n } else {\n const nowDate = new Date();\n comparisonDate = Date.UTC(\n nowDate.getFullYear(),\n nowDate.getMonth(),\n nowDate.getDate(),\n );\n if (dv.daysFromCurrent) {\n comparisonDate += dv.daysFromCurrent * 86400000;\n }\n }\n\n context.addSync((v) => {\n if (v) {\n const selDate = schemaInterface.parseToMillis(field, v as string);\n const notAfter = dv.comparison === DateComparison.NotAfter;\n if (notAfter ? selDate > comparisonDate : selDate < comparisonDate) {\n return schemaInterface.validationMessageText(\n field,\n notAfter\n ? ValidationMessageType.NotAfterDate\n : ValidationMessageType.NotBeforeDate,\n selDate,\n comparisonDate,\n );\n }\n }\n return null;\n });\n};\n\nexport const defaultValidators: Record<string, ValidatorEval<any>> = {\n [ValidatorType.Jsonata]: jsonataValidator,\n [ValidatorType.Length]: lengthValidator,\n [ValidatorType.Date]: dateValidator,\n};\n\nexport function createValidators(\n def: ControlDefinition,\n context: ValidationEvalContext,\n): void {\n if (isDataControl(def)) {\n const { schemaInterface } = context;\n if (def.required) {\n context.addSync((v) => {\n const field = context.data.schema.field;\n return schemaInterface.isEmptyValue(field, v)\n ? def.requiredErrorText\n ? def.requiredErrorText\n : schemaInterface.validationMessageText(\n field,\n ValidationMessageType.NotEmpty,\n false,\n true,\n )\n : null;\n });\n }\n def.validators?.forEach((x) => defaultValidators[x.type]?.(x, context));\n }\n}\n\nexport function setupValidation(\n scope: CleanupScope,\n variables: VariablesFunc | undefined,\n definition: ControlDefinition,\n dataNode: Control<SchemaDataNode | undefined>,\n schemaInterface: SchemaInterface,\n parent: SchemaDataNode,\n visible: Control<boolean | null>,\n runAsync: (af: () => void) => void,\n) {\n const validationEnabled = createScopedComputed(scope, () => !!visible.value);\n const validatorsScope = createCleanupScope();\n createEffect(\n () => {\n validatorsScope.cleanup();\n const dn = dataNode.value;\n if (dn) {\n let syncValidations: ((v: unknown) => string | undefined | null)[] = [];\n createValidators(definition, {\n data: dn,\n parentData: parent,\n validationEnabled,\n schemaInterface,\n addSync(validate: (v: unknown) => string | undefined | null) {\n syncValidations.push(validate);\n },\n addCleanup(cleanup: () => void) {\n validatorsScope.addCleanup(cleanup);\n },\n variables,\n runAsync,\n });\n\n createEffect(\n () => {\n if (!validationEnabled.value) return undefined;\n trackControlChange(dn.control, ControlChange.Validate);\n const value = dn.control.value;\n let error = null;\n for (const syncValidation of syncValidations) {\n error = syncValidation(value);\n if (error) break;\n }\n return error;\n },\n (e) => {\n dn.control.setError(\"default\", e);\n },\n validatorsScope,\n );\n }\n },\n (c) => {},\n scope,\n );\n}\n","import { FormNode, lookupDataNode } from \"./formNode\";\nimport {\n hideDisplayOnly,\n SchemaDataNode,\n validDataNode,\n} from \"./schemaDataNode\";\nimport { SchemaInterface } from \"./schemaInterface\";\nimport { FieldOption } from \"./schemaField\";\nimport {\n ChangeListenerFunc,\n CleanupScope,\n Control,\n createScopedEffect,\n createSyncEffect,\n newControl,\n updateComputedValue,\n updateElements,\n} from \"@astroapps/controls\";\nimport { createEvalExpr, ExpressionEvalContext } from \"./evalExpression\";\nimport { EntityExpression } from \"./entityExpression\";\nimport { createScoped } from \"./util\";\nimport {\n AnyControlDefinition,\n ControlAdornmentType,\n ControlDefinition,\n ControlDisableType,\n DataGroupRenderOptions,\n DataRenderType,\n DynamicPropertyType,\n getGroupRendererOptions,\n GridRendererOptions,\n HtmlDisplay,\n isActionControl,\n isControlDisabled,\n isControlReadonly,\n isDataControl,\n isDataGroupRenderer,\n isDisplayControl,\n isGroupControl,\n isHtmlDisplay,\n isTextDisplay,\n TextDisplay,\n} from \"./controlDefinition\";\nimport { createOverrideProxy, KeysOfUnion, NoOverride } from \"./overrideProxy\";\nimport { ChildNodeSpec, ChildResolverFunc } from \"./resolveChildren\";\nimport { setupValidation } from \"./validators\";\nimport { groupedControl } from \"./controlBuilder\";\n\nexport type EvalExpr = <A>(\n scope: CleanupScope,\n init: A,\n nk: Control<A>,\n e: EntityExpression | undefined,\n coerce: (t: unknown) => any,\n) => boolean;\n\nexport type VariablesFunc = (\n changes: ChangeListenerFunc<any>,\n) => Record<string, any>;\nexport interface FormNodeOptions {\n forceReadonly?: boolean;\n forceDisabled?: boolean;\n forceHidden?: boolean;\n variables?: VariablesFunc;\n}\nexport interface FormGlobalOptions {\n schemaInterface: SchemaInterface;\n evalExpression: (e: EntityExpression, ctx: ExpressionEvalContext) => void;\n resolveChildren(c: FormStateNode): ChildNodeSpec[];\n runAsync: (af: () => void) => void;\n clearHidden: boolean;\n}\n\nexport interface ResolvedDefinition {\n definition: ControlDefinition;\n display?: string;\n stateId?: string;\n style?: object;\n layoutStyle?: object;\n fieldOptions?: FieldOption[];\n}\n\nexport interface FormStateBase {\n parent: SchemaDataNode;\n dataNode?: SchemaDataNode | undefined;\n readonly: boolean;\n visible: boolean | null;\n disabled: boolean;\n resolved: ResolvedDefinition;\n childIndex: number;\n busy: boolean;\n}\n\nexport interface FormNodeUi {\n ensureVisible(): void;\n ensureChildVisible(childIndex: number): void;\n getDisabler(type: ControlDisableType): () => () => void;\n}\n\nexport interface FormStateNode extends FormStateBase, FormNodeOptions {\n childKey: string | number;\n uniqueId: string;\n definition: ControlDefinition;\n schemaInterface: SchemaInterface;\n valid: boolean;\n touched: boolean;\n clearHidden: boolean;\n variables?: (changes: ChangeListenerFunc<any>) => Record<string, any>;\n meta: Record<string, any>;\n form: FormNode | undefined | null;\n children: FormStateNode[];\n parentNode: FormStateNode | undefined;\n setTouched(b: boolean, notChildren?: boolean): void;\n validate(): boolean;\n getChildCount(): number;\n getChild(index: number): FormStateNode | undefined;\n ensureMeta<A>(key: string, init: (scope: CleanupScope) => A): A;\n cleanup(): void;\n ui: FormNodeUi;\n attachUi(f: FormNodeUi): void;\n setBusy(busy: boolean): void;\n setForceDisabled(forceDisable: boolean): void;\n}\nexport function createEvaluatedDefinition(\n def: ControlDefinition,\n evalExpr: EvalExpr,\n scope: CleanupScope,\n display: Control<string | undefined>,\n): ControlDefinition {\n const definitionOverrides = createScoped<Record<string, any>>(scope, {});\n const displayOverrides = createScoped<Record<string, any>>(scope, {});\n const groupOptionsOverrides = createScoped<Record<string, any>>(scope, {});\n const renderOptionsOverrides = createScoped<Record<string, any>>(scope, {});\n\n const {\n hidden,\n displayData,\n readonly,\n disabled,\n defaultValue,\n actionData,\n title,\n groupOptions,\n renderOptions,\n } = definitionOverrides.fields as Record<\n KeysOfUnion<AnyControlDefinition>,\n Control<any>\n >;\n\n const { columns } = groupOptionsOverrides.fields as Record<\n KeysOfUnion<GridRendererOptions>,\n Control<any>\n >;\n\n const { groupOptions: dataGroupRenderOptions } =\n renderOptionsOverrides.fields as Record<\n KeysOfUnion<DataGroupRenderOptions>,\n Control<any>\n >;\n\n const { html, text } = displayOverrides.fields as Record<\n KeysOfUnion<TextDisplay | HtmlDisplay>,\n Control<any>\n >;\n\n updateComputedValue(dataGroupRenderOptions, () =>\n isDataControl(def) && isDataGroupRenderer(def.renderOptions)\n ? createOverrideProxy(\n (def.renderOptions.groupOptions as GridRendererOptions) ?? {},\n groupOptionsOverrides,\n )\n : undefined,\n );\n\n updateComputedValue(displayData, () =>\n isDisplayControl(def)\n ? createOverrideProxy(def.displayData, displayOverrides)\n : undefined,\n );\n\n updateComputedValue(groupOptions, () => {\n const groupOptions = getGroupRendererOptions(def);\n return groupOptions\n ? createOverrideProxy(groupOptions, groupOptionsOverrides)\n : undefined;\n });\n\n updateComputedValue(renderOptions, () =>\n isDataControl(def)\n ? createOverrideProxy(def.renderOptions ?? {}, renderOptionsOverrides)\n : undefined,\n );\n\n evalDynamic(\n hidden,\n DynamicPropertyType.Visible,\n // Make sure it's not null if no scripting\n (x) => (x ? def.hidden : !!def.hidden),\n (r) => !r,\n );\n\n evalDynamic(\n readonly,\n DynamicPropertyType.Readonly,\n () => isControlReadonly(def),\n (r) => !!r,\n );\n\n createScopedEffect((c) => {\n evalExpr(\n c,\n isControlDisabled(def),\n disabled,\n firstExpr(DynamicPropertyType.Disabled),\n (r) => !!r,\n );\n }, definitionOverrides);\n\n createScopedEffect((c) => {\n const groupOptions = getGroupRendererOptions(def);\n evalExpr(\n c,\n (groupOptions as GridRendererOptions)?.columns,\n columns,\n groupOptions ? firstExpr(DynamicPropertyType.GridColumns) : undefined,\n (r) => (typeof r === \"number\" ? r : undefined),\n );\n }, groupOptionsOverrides);\n\n createScopedEffect((c) => {\n evalExpr(\n c,\n isDataControl(def) ? def.defaultValue : undefined,\n defaultValue,\n isDataControl(def)\n ? firstExpr(DynamicPropertyType.DefaultValue)\n : undefined,\n (r) => r,\n );\n }, definitionOverrides);\n\n createScopedEffect((c) => {\n evalExpr(\n c,\n isActionControl(def) ? def.actionData : undefined,\n actionData,\n isActionControl(def)\n ? firstExpr(DynamicPropertyType.ActionData)\n : undefined,\n (r) => r,\n );\n }, definitionOverrides);\n\n createScopedEffect((c) => {\n evalExpr(\n c,\n def.title,\n title,\n firstExpr(DynamicPropertyType.Label),\n coerceString,\n );\n }, definitionOverrides);\n\n createSyncEffect(() => {\n if (isDisplayControl(def)) {\n if (display.value !== undefined) {\n text.value = isTextDisplay(def.displayData)\n ? display.value\n : NoOverride;\n html.value = isHtmlDisplay(def.displayData)\n ? display.value\n : NoOverride;\n } else {\n text.value = NoOverride;\n html.value = NoOverride;\n }\n }\n }, displayOverrides);\n\n return createOverrideProxy(def, definitionOverrides);\n\n function firstExpr(\n property: DynamicPropertyType,\n ): EntityExpression | undefined {\n return def.dynamic?.find((x) => x.type === property && x.expr.type)?.expr;\n }\n\n function evalDynamic<A>(\n control: Control<A>,\n property: DynamicPropertyType,\n init: (ex: EntityExpression | undefined) => A,\n coerce: (v: unknown) => any,\n ) {\n createScopedEffect((c) => {\n const x = firstExpr(property);\n evalExpr(c, init(x), control, x, coerce);\n }, scope);\n }\n}\n\nexport function coerceStyle(v: unknown): any {\n return typeof v === \"object\" ? v : undefined;\n}\n\nexport function coerceString(v: unknown): string {\n if (typeof v === \"string\") return v;\n if (v == null) return \"\";\n switch (typeof v) {\n case \"number\":\n case \"boolean\":\n return v.toString();\n default:\n return JSON.stringify(v);\n }\n}\n\nexport function createFormStateNode(\n formNode: FormNode,\n parent: SchemaDataNode,\n options: FormGlobalOptions,\n nodeOptions: FormNodeOptions,\n): FormStateNodeImpl {\n const globals = newControl<FormGlobalOptions>({\n schemaInterface: options.schemaInterface,\n evalExpression: options.evalExpression,\n runAsync: options.runAsync,\n resolveChildren: options.resolveChildren,\n clearHidden: options.clearHidden,\n });\n return new FormStateNodeImpl(\n \"ROOT\",\n {},\n formNode.definition,\n formNode,\n nodeOptions,\n globals,\n parent,\n undefined,\n 0,\n options.resolveChildren,\n );\n}\n\nexport interface FormStateBaseImpl extends FormStateBase {\n children: FormStateBaseImpl[];\n allowedOptions?: unknown;\n nodeOptions: FormNodeOptions;\n busy: boolean;\n}\n\nexport const noopUi: FormNodeUi = {\n ensureChildVisible(childIndex: number) {},\n ensureVisible() {},\n getDisabler(type: ControlDisableType): () => () => void {\n return () => () => {};\n },\n};\n\nclass FormStateNodeImpl implements FormStateNode {\n readonly base: Control<FormStateBaseImpl>;\n readonly options: Control<FormNodeOptions>;\n readonly resolveChildren: ChildResolverFunc;\n\n ui = noopUi;\n\n constructor(\n public childKey: string | number,\n public meta: Record<string, any>,\n definition: ControlDefinition,\n public form: FormNode | undefined | null,\n nodeOptions: FormNodeOptions,\n public readonly globals: Control<FormGlobalOptions>,\n public parent: SchemaDataNode,\n public parentNode: FormStateNode | undefined,\n childIndex: number,\n resolveChildren?: ChildResolverFunc,\n ) {\n const base = newControl<FormStateBaseImpl>(\n {\n readonly: false,\n visible: null,\n disabled: false,\n children: [],\n resolved: { definition } as ResolvedDefinition,\n parent,\n allowedOptions: undefined,\n childIndex,\n nodeOptions,\n busy: false,\n },\n { dontClearError: true },\n );\n this.base = base;\n this.options = base.fields.nodeOptions;\n base.meta[\"$FormState\"] = this;\n this.resolveChildren =\n resolveChildren ?? globals.fields.resolveChildren.value;\n initFormState(definition, this, parentNode);\n }\n\n get busy() {\n return this.base.fields.busy.value;\n }\n\n setBusy(busy: boolean) {\n this.base.fields.busy.value = busy;\n }\n\n get evalExpression(): (\n e: EntityExpression,\n ctx: ExpressionEvalContext,\n ) => void {\n return this.globals.fields.evalExpression.value;\n }\n\n get runAsync() {\n return this.globals.fields.runAsync.value;\n }\n\n get schemaInterface(): SchemaInterface {\n return this.globals.fields.schemaInterface.value;\n }\n\n get forceDisabled() {\n return this.options.fields.forceDisabled.value;\n }\n\n setForceDisabled(value: boolean) {\n return (this.options.fields.forceDisabled.value = value);\n }\n\n get forceReadonly() {\n return this.options.fields.forceReadonly.value;\n }\n get forceHidden() {\n return this.options.fields.forceHidden.value;\n }\n\n attachUi(f: FormNodeUi) {\n this.ui = f;\n }\n\n get childIndex() {\n return this.base.fields.childIndex.value;\n }\n\n get children() {\n return this.base.fields.children.elements.map(\n (x) => x.meta[\"$FormState\"] as FormStateNode,\n );\n }\n\n get uniqueId() {\n return this.base.uniqueId.toString();\n }\n get valid(): boolean {\n return this.base.valid;\n }\n\n get touched(): boolean {\n return this.base.touched;\n }\n\n setTouched(touched: boolean, notChildren?: boolean) {\n this.base.setTouched(touched, notChildren);\n }\n\n validate(): boolean {\n this.children.forEach((child) => {\n child.validate();\n });\n if (this.dataNode) {\n this.dataNode.control.validate();\n }\n return this.valid;\n }\n\n get readonly() {\n return this.base.fields.readonly.value;\n }\n\n get visible() {\n return this.base.fields.visible.value;\n }\n\n get disabled() {\n return this.base.fields.disabled.value;\n }\n\n get clearHidden() {\n return this.globals.fields.clearHidden.value;\n }\n\n get variables() {\n return this.options.fields.variables.value;\n }\n\n get definition() {\n return this.resolved.definition;\n }\n\n getChild(index: number) {\n return this.base.fields.children.elements[index]?.meta[\n \"$FormState\"\n ] as FormStateNode;\n }\n\n getChildCount(): number {\n return this.base.fields.children.elements.length;\n }\n\n cleanup() {\n this.base.cleanup();\n }\n\n get resolved() {\n return this.base.fields.resolved.value;\n }\n\n get dataNode() {\n return this.base.fields.dataNode.value;\n }\n\n ensureMeta<A>(key: string, init: (scope: CleanupScope) => A): A {\n if (key in this.meta) return this.meta[key];\n const res = init(this.base);\n this.meta[key] = res;\n return res;\n }\n}\n\nfunction initFormState(\n def: ControlDefinition,\n impl: FormStateNodeImpl,\n parentNode: FormStateNode | undefined,\n) {\n const {\n base,\n options,\n schemaInterface,\n runAsync,\n evalExpression,\n parent,\n variables,\n } = impl;\n\n const evalExpr = createEvalExpr(evalExpression, {\n schemaInterface,\n variables,\n dataNode: parent,\n runAsync,\n });\n\n const scope = base;\n\n const { forceReadonly, forceDisabled, forceHidden } = options.fields;\n const resolved = base.fields.resolved.as<ResolvedDefinition>();\n const {\n style,\n layoutStyle,\n fieldOptions,\n display,\n definition: rd,\n } = resolved.fields;\n\n evalDynamic(display, DynamicPropertyType.Display, undefined, coerceString);\n\n const { dataNode, readonly, disabled, visible, children, allowedOptions } =\n base.fields;\n\n const definition = createEvaluatedDefinition(def, evalExpr, scope, display);\n rd.value = definition;\n\n evalDynamic(style, DynamicPropertyType.Style, undefined, coerceStyle);\n evalDynamic(\n layoutStyle,\n DynamicPropertyType.LayoutStyle,\n undefined,\n coerceStyle,\n );\n evalDynamic(\n allowedOptions,\n DynamicPropertyType.AllowedOptions,\n undefined,\n (x) => x,\n );\n\n updateComputedValue(dataNode, () => lookupDataNode(definition, parent));\n\n updateComputedValue(visible, () => {\n if (forceHidden.value) return false;\n if (parentNode && !parentNode.visible) return parentNode.visible;\n const dn = dataNode.value;\n if (\n dn &&\n (!validDataNode(dn) || hideDisplayOnly(dn, schemaInterface, definition))\n )\n return false;\n return definition.hidden == null ? null : !definition.hidden;\n });\n\n updateComputedValue(\n readonly,\n () =>\n parentNode?.readonly ||\n forceReadonly.value ||\n isControlReadonly(definition),\n );\n updateComputedValue(\n disabled,\n () =>\n parentNode?.disabled ||\n forceDisabled.value ||\n isControlDisabled(definition),\n );\n\n updateComputedValue(fieldOptions, () => {\n const dn = dataNode.value;\n if (!dn) return undefined;\n const fieldOptions = schemaInterface.getDataOptions(dn);\n const _allowed = allowedOptions.value ?? [];\n const allowed = Array.isArray(_allowed) ? _allowed : [_allowed];\n\n return allowed.length > 0\n ? allowed\n .map((x) =>\n typeof x === \"object\"\n ? x\n : (fieldOptions?.find((y) => y.value == x) ?? {\n name: x.toString(),\n value: x,\n }),\n )\n .filter((x) => x != null)\n : fieldOptions;\n });\n\n createSyncEffect(() => {\n const dn = dataNode.value;\n if (dn) {\n dn.control.disabled = disabled.value;\n }\n }, scope);\n\n createSyncEffect(() => {\n const dn = dataNode.value;\n if (dn) {\n dn.control.touched = base.touched;\n }\n }, scope);\n\n createSyncEffect(() => {\n const dn = dataNode.value;\n if (dn) {\n base.touched = dn.control.touched;\n }\n }, scope);\n\n createSyncEffect(() => {\n const dn = dataNode.value;\n base.setErrors(dn?.control.errors);\n }, scope);\n\n setupValidation(\n scope,\n impl.variables,\n definition,\n dataNode,\n schemaInterface,\n parent,\n visible,\n runAsync,\n );\n\n createSyncEffect(() => {\n const dn = dataNode.value?.control;\n if (dn && isDataControl(definition)) {\n if (impl.visible == false) {\n if (impl.clearHidden && !definition.dontClearHidden) {\n // console.log(\"Clearing hidden\");\n dn.value = undefined;\n }\n } else if (\n impl.visible &&\n dn.value === undefined &&\n definition.defaultValue != null &&\n !definition.adornments?.some(\n (x) => x.type === ControlAdornmentType.Optional,\n ) &&\n definition.renderOptions?.type != DataRenderType.NullToggle\n ) {\n // console.log(\n // \"Setting to default\",\n // definition.defaultValue,\n // definition.field,\n // );\n // const [required, dcv] = isDataControl(definition)\n // ? [definition.required, definition.defaultValue]\n // : [false, undefined];\n // const field = ctx.dataNode?.schema.field;\n // return (\n // dcv ??\n // (field\n // ? ctx.dataNode!.elementIndex != null\n // ? elementValueForField(field)\n // : defaultValueForField(field, required)\n // : undefined)\n // );\n dn.value = definition.defaultValue;\n }\n }\n }, scope);\n\n initChildren(impl);\n\n function firstExpr(\n property: DynamicPropertyType,\n ): EntityExpression | undefined {\n return def.dynamic?.find((x) => x.type === property && x.expr.type)?.expr;\n }\n\n function evalDynamic<A>(\n control: Control<A>,\n property: DynamicPropertyType,\n init: A,\n coerce: (v: unknown) => any,\n ) {\n createScopedEffect(\n (c) => evalExpr(c, init, control, firstExpr(property), coerce),\n scope,\n );\n }\n}\n\nexport function combineVariables(\n v1?: VariablesFunc,\n v2?: VariablesFunc,\n): VariablesFunc | undefined {\n if (!v1) return v2;\n if (!v2) return v1;\n return (c) => ({ ...v1(c), ...v2(c) });\n}\n\nfunction initChildren(formImpl: FormStateNodeImpl) {\n const childMap = new Map<any, Control<FormStateBaseImpl>>();\n createSyncEffect(() => {\n const { base, resolveChildren } = formImpl;\n const children = base.fields.children;\n const kids = resolveChildren(formImpl);\n const scope = base;\n const detached = updateElements(children, () =>\n kids.map(({ childKey, create }, childIndex) => {\n let child = childMap.get(childKey);\n if (child) {\n child.fields.childIndex.value = childIndex;\n } else {\n const meta: Record<string, any> = {};\n const cc = create(scope, meta);\n const newOptions: FormNodeOptions = {\n forceHidden: false,\n forceDisabled: false,\n forceReadonly: false,\n variables: combineVariables(formImpl.variables, cc.variables),\n };\n const fsChild = new FormStateNodeImpl(\n childKey,\n meta,\n cc.definition ?? groupedControl([]),\n cc.node === undefined ? formImpl.form : cc.node,\n newOptions,\n formImpl.globals,\n cc.parent ?? formImpl.parent,\n formImpl,\n childIndex,\n cc.resolveChildren,\n );\n child = fsChild.base;\n childMap.set(childKey, child);\n }\n return child;\n }),\n );\n detached.forEach((child) => child.cleanup());\n }, formImpl.base);\n}\n\n/**\n * Interface representing the form context data.\n */\nexport interface FormContextData {\n option?: FieldOption;\n optionSelected?: boolean;\n}\n\nexport function visitFormState<A>(\n node: FormStateNode,\n visitFn: (node: FormStateNode) => A | undefined,\n): A | undefined {\n const v = visitFn(node);\n if (v !== undefined) return v;\n const childCount = node.getChildCount();\n for (let i = 0; i < childCount; i++) {\n const res = visitFormState(node.getChild(i)!, visitFn);\n if (res !== undefined) return res;\n }\n return undefined;\n}\n","import {\n ChangeListenerFunc,\n CleanupScope,\n Control,\n trackedValue,\n} from \"@astroapps/controls\";\nimport {\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n GroupedControlsDefinition,\n GroupRenderType,\n isDataControl,\n} from \"./controlDefinition\";\nimport { SchemaDataNode } from \"./schemaDataNode\";\nimport { FormNode } from \"./formNode\";\nimport { createScopedComputed } from \"./util\";\nimport { SchemaInterface } from \"./schemaInterface\";\nimport { FieldOption } from \"./schemaField\";\nimport { FormStateNode } from \"./formStateNode\";\nimport { groupedControl } from \"./controlBuilder\";\n\nexport type ChildResolverFunc = (c: FormStateNode) => ChildNodeSpec[];\n\nexport interface ChildNodeSpec {\n childKey: string | number;\n create: (scope: CleanupScope, meta: Record<string, any>) => ChildNodeInit;\n}\n\nexport interface ChildNodeInit {\n definition?: ControlDefinition;\n parent?: SchemaDataNode;\n node?: FormNode | null;\n variables?: (changes: ChangeListenerFunc<any>) => Record<string, any>;\n resolveChildren?: ChildResolverFunc;\n}\n\nexport function defaultResolveChildNodes(\n formStateNode: FormStateNode,\n): ChildNodeSpec[] {\n const {\n resolved,\n dataNode: data,\n schemaInterface,\n parent,\n form: node,\n } = formStateNode;\n if (!node) return [];\n const def = resolved.definition;\n if (isDataControl(def)) {\n if (!data) return [];\n const type = def.renderOptions?.type;\n if (type === DataRenderType.CheckList || type === DataRenderType.Radio) {\n const n = node.getChildNodes();\n if (n.length > 0 && resolved.fieldOptions) {\n return resolved.fieldOptions.map((x) => ({\n childKey: x.value?.toString(),\n create: (scope, meta) => {\n meta[\"fieldOptionValue\"] = x.value;\n const vars = createScopedComputed(scope, () => {\n return {\n option: x,\n optionSelected: isOptionSelected(schemaInterface, x, data),\n };\n });\n return {\n definition: {\n type: ControlDefinitionType.Group,\n groupOptions: {\n type: GroupRenderType.Contents,\n },\n } as GroupedControlsDefinition,\n parent,\n node,\n variables: (changes) => ({\n formData: trackedValue(vars, changes),\n }),\n };\n },\n }));\n }\n return [];\n }\n if (data.schema.field.collection && data.elementIndex == null)\n return resolveArrayChildren(data, node);\n }\n return node.getChildNodes().map((x) => ({\n childKey: x.id,\n create: () => ({\n node: x,\n parent: data ?? parent,\n definition: x.definition,\n }),\n }));\n}\n\nexport function resolveArrayChildren(\n data: SchemaDataNode,\n node: FormNode,\n adjustChild?: (elem: Control<any>, index: number) => Partial<ChildNodeInit>,\n): ChildNodeSpec[] {\n const childNodes = node.getChildNodes();\n const childCount = childNodes.length;\n const singleChild = childCount === 1 ? childNodes[0] : null;\n return data.control.as<any[]>().elements.map((x, i) => ({\n childKey: x.uniqueId + \"/\" + i,\n create: () => ({\n definition: !childCount\n ? ({\n type: ControlDefinitionType.Data,\n field: \".\",\n hideTitle: true,\n renderOptions: { type: DataRenderType.Standard },\n } as DataControlDefinition)\n : singleChild\n ? singleChild.definition\n : groupedControl([]),\n node: singleChild ?? node,\n parent: data!.getChildElement(i),\n ...(adjustChild?.(x, i) ?? {}),\n }),\n }));\n}\n\nfunction isOptionSelected(\n schemaInterface: SchemaInterface,\n option: FieldOption,\n data: SchemaDataNode,\n) {\n if (data.schema.field.collection) {\n return !!data.control.as<any[] | undefined>().value?.includes(option.value);\n }\n return (\n schemaInterface.compareValue(\n data.schema.field,\n data.control.value,\n option.value,\n ) === 0\n );\n}\n"],"names":["ControlDefinitionType","DynamicPropertyType","AdornmentPlacement","ControlAdornmentType","IconLibrary","DataRenderType","SyncTextType","GroupRenderType","DisplayDataType","ControlDisableType","ActionStyle","IconPlacement","visitControlDefinition","x","visitor","defaultValue","type","Action","action","Data","data","Display","display","Group","group","isGridRenderer","options","Grid","isWizardRenderer","Wizard","isDialogRenderer","Dialog","isAccordionRenderer","Accordion","isInlineRenderer","Inline","isSelectChildRenderer","SelectChild","isTabsRenderer","Tabs","isFlexRenderer","Flex","isDisplayOnlyRenderer","DisplayOnly","isTextfieldRenderer","Textfield","isDateTimeRenderer","DateTime","isAutocompleteRenderer","Autocomplete","isAutoCompleteClasses","isDataGroupRenderer","isArrayRenderer","Array","isDataControl","c","isGroupControl","isActionControl","isDisplayControl","isTextDisplay","d","Text","isHtmlDisplay","Html","isCheckEntryClasses","Radio","CheckList","traverseParents","current","get","until","outArray","push","parent","reverse","getRootDataNode","dataNode","getJsonPath","elementIndex","schema","field","getSchemaPath","schemaNode","getSchemaFieldList","getChildNodes","map","fontAwesomeIcon","icon","library","FontAwesome","name","isControlReadonly","readonly","isControlDisabled","disabled","getGroupRendererOptions","def","groupOptions","renderOptions","undefined","isControlDisplayOnly","_getGroupRendererOpti","Boolean","displayOnly","getDisplayOnlyOptions","ValidatorType","DateComparison","jsonataValidator","expr","Jsonata","expression","dateValidator","comparison","fixedDate","daysFromCurrent","Date","lengthValidator","min","max","Length","ExpressionType","dataControl","title","_extends","validatorOptions","o","adornmentOptions","renderOptionsFor","autocompleteOptions","checkListOptions","radioButtonOptions","lengthValidatorOptions","jsonataValidatorOptions","dateValidatorOptions","accordionOptions","textfieldOptions","displayOnlyOptions","jsonataOptions","textDisplayControl","text","displayData","htmlDisplayControl","html","dynamicDefaultValue","DefaultValue","dynamicReadonly","Readonly","dynamicVisibility","Visible","dynamicDisabled","Disabled","dataExpr","fieldExpr","fieldEqExpr","dataMatchExpr","uuidExpr","UUID","value","DataMatch","notEmptyExpr","empty","NotEmpty","jsonataExpr","groupedControl","children","hideTitle","compoundControl","actionControl","actionText","actionId","emptyGroupDefinition","Standard","FieldType","ValidationMessageType","findField","fields","find","isScalarField","sf","isCompoundField","Compound","missingField","Any","displayName","SchemaTags","getTagParam","tag","_field$tags","tags","startsWith","substring","length","makeParamTag","SchemaTree","createChildNode","SchemaNode","id","getSchema","schemaId","_this$getSchemaTree","getSchemaTree","rootNode","SchemaTreeImpl","_this$lookup","lookup","constructor","rootFields","createSchemaTree","tree","getChildFields","getUnresolvedFields","getResolvedParent","noRecurse","_this$parent","f","parentNode","schemaRef","treeChildren","getResolvedFields","_resolvedParent$getUn","resolvedParent","node","getChildField","_this$getResolvedFiel","getChildNode","resolveSchemaNode","fieldSegment","createSchemaNode","createSchemaLookup","schemaMap","additional","schemaForFieldRef","fieldRef","_fieldRef$split","schemaForFieldPath","split","traverseSchemaPath","fieldPath","acc","next","i","nextField","childNode","traverseData","root","n","schemaForDataPath","element","collection","getParentDataPath","getSchemaNodePath","paths","curNode","getSchemaNodePathString","join","isCompoundNode","relativePath","child","parentPath","childPath","relativeSegmentPath","upLevels","downPath","slice","repeat","buildSchema","Object","entries","stringField","makeScalarField","String","stringOptionsField","withScalarOptions","v","defaultScalarField","makeCompoundField","defaultCompoundField","intField","Int","doubleField","Double","dateField","timeField","Time","dateTimeField","boolField","Bool","compoundField","other","mergeField","mergeInto","existing","onlyForTypes","mergeTypes","s","extras","filter","includes","mergeOption","fieldName","addFieldOption","mergeFields","newFields","reduce","af","withType","isTypeField","typeField","_typeField$options","some","resolveSchemas","out","resolveSchemaType","resolvedFields","forEach","keys","SchemaDataTree","SchemaDataNode","control","getChild","getChildElement","getMetaFields","ensureMetaValue","newControl","SchemaDataTreeImpl","rootSchema","rootControl","objControl","meta","uniqueId","toString","elemControl","elemChild","elements","makeSchemaDataNode","createSchemaDataNode","schemaDataForFieldRef","schemaDataForFieldPath","_nextNode","nextNode","lookupField","validDataNode","context","updateComputedValue","types","typeNode","console","warn","hideDisplayOnly","schemaInterface","definition","_context$control","displayOptions","emptyText","isEmptyValue","getLoadingControl","getRefreshingControl","getHasMoreControl","DefaultSchemaInterface","boolStrings","parseDateTime","pdt","toDate","getTime","e","Number","NaN","parseToMillis","validationMessageText","messageType","actual","expected","MinLength","MaxLength","NotBeforeDate","toDateString","NotAfterDate","getDataOptions","getNodeOptions","getOptions","getFilterOptions","array","isArray","searchText","_this$textValue$toLow","_this$textValue","textValue","toLowerCase","textValueForData","actualOptions","option","toLocaleDateString","toLocaleString","toLocaleTimeString","controlLength","_control$elements$len","_control$elements","valueLength","len","compareValue","v1","v2","localeCompare","compoundFieldSetup","makeControlSetup","compoundFieldEquality","a","b","makeEqualityFunc","elemEqual","allChecks","every","setup","equals","elems","fromEntries","defaultSchemaInterface","FormNode","visit","visitFn","res","getUnresolvedChildNodes","getResolvedChildren","_children","_ref","childRefId","getByRefId","childId","childDef","getChildId","resolved","_this$definition$chil","_this$definition$chil2","FormTree","parentId","getControlIds","_definition$children$","_definition$children","childEntries","flatMap","createControlMap","FormTreeImpl","forms","controlMap","getForm","formId","legacyFormNode","createFormTree","controls","createFormLookup","formMap","k","fieldPathForDefinition","lookupDataNode","fieldNamePath","visitControlDataArray","cb","r","visitControlData","ctx","visitFormDataInContext","visitFormData","notSelf","result","l","elemResult","isNull","parentContext","jsonPathString","jsonPath","customIndex","_customIndex","createScopedComputed","compute","addDependent","as","createScoped","dataEval","fvExpr","returnResult","scope","createSyncEffect","_otherField$control","otherField","dataMatchEval","matchExpr","fv","notEmptyEval","_otherField$control2","jsonataEval","variables","runAsync","path","pathString","rootData","parsedJsonata","jExpr","fullExpr","jsonata","error","runJsonata","effect","signal","trackedVars","collectUsage","evalResult","evaluate","trackedValue","collectChanges","asyncEffect","createAsyncEffect","start","uuidEval","_","uuidv4","defaultEvaluators","createEvalExpr","evalExpression","evalExpr","init","nk","coerce","createOverrideProxy","proxyFor","handlers","overrides","getCurrentFields","allOwn","Reflect","ownKeys","Proxy","target","p","receiver","hasOwn","nv","NoOverride","has","getOwnPropertyDescriptor","enumerable","configurable","NoValue","validation","parentData","trackControlChange","ControlChange","Validate","setError","lv","addSync","setValue","concat","from","dv","comparisonDate","nowDate","UTC","getFullYear","getMonth","getDate","selDate","notAfter","NotAfter","defaultValidators","createValidators","_def$validators","required","requiredErrorText","validators","_defaultValidators$x$","call","setupValidation","visible","validationEnabled","validatorsScope","createCleanupScope","createEffect","cleanup","dn","syncValidations","validate","addCleanup","syncValidation","createEvaluatedDefinition","definitionOverrides","displayOverrides","groupOptionsOverrides","renderOptionsOverrides","hidden","actionData","columns","dataGroupRenderOptions","_def$renderOptions$gr","_def$renderOptions","evalDynamic","createScopedEffect","firstExpr","GridColumns","ActionData","Label","coerceString","property","_def$dynamic","dynamic","coerceStyle","JSON","stringify","createFormStateNode","formNode","nodeOptions","globals","resolveChildren","clearHidden","FormStateNodeImpl","noopUi","ensureChildVisible","childIndex","ensureVisible","getDisabler","childKey","form","base","ui","allowedOptions","busy","dontClearError","initFormState","setBusy","forceDisabled","setForceDisabled","forceReadonly","forceHidden","attachUi","valid","touched","setTouched","notChildren","index","_this$base$fields$chi","getChildCount","ensureMeta","key","impl","style","layoutStyle","fieldOptions","rd","Style","LayoutStyle","AllowedOptions","_allowedOptions$value","_allowed","allowed","_fieldOptions$find","y","setErrors","errors","_dataNode$value","_definition$adornment","_definition$renderOpt","dontClearHidden","adornments","Optional","NullToggle","initChildren","_def$dynamic2","combineVariables","formImpl","childMap","Map","kids","detached","updateElements","create","_cc$definition","_cc$parent","cc","newOptions","fsChild","set","visitFormState","childCount","defaultResolveChildNodes","formStateNode","_x$value","vars","optionSelected","isOptionSelected","Contents","changes","formData","resolveArrayChildren","adjustChild","childNodes","singleChild","_adjustChild","_data$control$as$valu"],"mappings":"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"}
|