@react-typed-forms/schemas 5.0.2 → 5.0.3
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/hooks.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
- package/src/hooks.tsx +1 -1
package/lib/hooks.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export declare function useEvalReadonlyHook(useEvalExpressionHook: UseEvalExpres
|
|
|
7
7
|
export declare function useEvalDisabledHook(useEvalExpressionHook: UseEvalExpressionHook, definition: ControlDefinition): EvalExpressionHook<boolean>;
|
|
8
8
|
export declare function useEvalDefaultValueHook(useEvalExpressionHook: UseEvalExpressionHook, definition: ControlDefinition, schemaField?: SchemaField): EvalExpressionHook;
|
|
9
9
|
export type EvalExpressionHook<A = any> = (groupContext: ControlGroupContext) => Control<A | undefined>;
|
|
10
|
+
export declare function defaultEvalHooks(expr: EntityExpression, context: ControlGroupContext): Control<any>;
|
|
10
11
|
export declare const defaultUseEvalExpressionHook: (expr: EntityExpression | undefined) => EvalExpressionHook | undefined;
|
|
11
12
|
export declare function makeEvalExpressionHook(f: (expr: EntityExpression, context: ControlGroupContext) => Control<any>): (expr: EntityExpression | undefined) => EvalExpressionHook | undefined;
|
|
12
13
|
export declare function useEvalDynamicHook(definition: ControlDefinition, type: DynamicPropertyType, useEvalExpressionHook: (expr: EntityExpression | undefined) => EvalExpressionHook | undefined): EvalExpressionHook | undefined;
|
package/lib/index.js
CHANGED
|
@@ -1840,6 +1840,7 @@ exports.dataControl = dataControl;
|
|
|
1840
1840
|
exports.defaultCompoundField = defaultCompoundField;
|
|
1841
1841
|
exports.defaultControlForField = defaultControlForField;
|
|
1842
1842
|
exports.defaultDataProps = defaultDataProps;
|
|
1843
|
+
exports.defaultEvalHooks = defaultEvalHooks;
|
|
1843
1844
|
exports.defaultScalarField = defaultScalarField;
|
|
1844
1845
|
exports.defaultTailwindTheme = defaultTailwindTheme;
|
|
1845
1846
|
exports.defaultUseEvalExpressionHook = defaultUseEvalExpressionHook;
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/types.ts","../src/schemaBuilder.ts","../src/util.ts","../src/controlBuilder.ts","../src/internal.ts","../src/hooks.tsx","../src/validators.ts","../src/controlRender.tsx","../src/renderers.tsx","../src/tailwind.tsx"],"sourcesContent":["export interface SchemaField {\n type: string;\n field: string;\n displayName?: string | null;\n tags?: string[] | null;\n system?: boolean | null;\n collection?: boolean | null;\n onlyForTypes?: string[] | null;\n required?: boolean | null;\n notNullable?: boolean | null;\n defaultValue?: any;\n isTypeField?: boolean | null;\n searchable?: boolean | null;\n options?: FieldOption[] | null;\n validators?: SchemaValidator[] | null;\n}\n\nexport enum FieldType {\n String = \"String\",\n Bool = \"Bool\",\n Int = \"Int\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n Double = \"Double\",\n EntityRef = \"EntityRef\",\n Compound = \"Compound\",\n AutoId = \"AutoId\",\n Image = \"Image\",\n Any = \"Any\",\n}\n\nexport interface EntityRefField extends SchemaField {\n type: FieldType.EntityRef;\n entityRefType: string;\n parentField: string;\n}\n\nexport interface FieldOption {\n name: string;\n value: any;\n}\n\nexport interface CompoundField extends SchemaField {\n type: FieldType.Compound;\n children: SchemaField[];\n treeChildren?: boolean;\n}\n\nexport type AnyControlDefinition =\n | DataControlDefinition\n | GroupedControlsDefinition\n | ActionControlDefinition\n | DisplayControlDefinition;\n\nexport interface ControlDefinition {\n type: string;\n title?: 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}\n\nexport interface EntityExpression {\n type: string;\n}\n\nexport enum ExpressionType {\n Jsonata = \"Jsonata\",\n FieldValue = \"FieldValue\",\n UserMatch = \"UserMatch\",\n}\n\nexport interface JsonataExpression extends EntityExpression {\n type: ExpressionType.Jsonata;\n expression: string;\n}\n\nexport interface FieldValueExpression extends EntityExpression {\n type: ExpressionType.FieldValue;\n field: string;\n value: any;\n}\n\nexport interface UserMatchExpression extends EntityExpression {\n type: ExpressionType.UserMatch;\n userMatch: string;\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}\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;\n}\n\nexport interface HelpTextAdornment extends ControlAdornment {\n type: ControlAdornmentType.HelpText;\n helpText: string;\n placement: AdornmentPlacement;\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 readonly?: boolean | null;\n validators?: SchemaValidator[] | null;\n hideTitle?: boolean | null;\n}\n\nexport interface RenderOptions {\n type: string;\n}\n\nexport enum DataRenderType {\n Standard = \"Standard\",\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}\n\nexport interface RadioButtonRenderOptions extends RenderOptions {\n type: DataRenderType.Radio;\n}\n\nexport interface StandardRenderer extends RenderOptions {\n type: DataRenderType.Standard;\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}\n\nexport interface IconListRenderOptions extends RenderOptions {\n type: DataRenderType.IconList;\n iconMappings: IconMapping[];\n}\n\nexport interface IconMapping {\n value: string;\n materialIcon?: string | null;\n}\n\nexport interface CheckListRenderOptions extends RenderOptions {\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 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}\n\nexport enum GroupRenderType {\n Standard = \"Standard\",\n Grid = \"Grid\",\n GroupElement = \"GroupElement\",\n}\n\nexport interface StandardGroupRenderer extends GroupRenderOptions {\n type: GroupRenderType.Standard;\n}\n\nexport interface GroupElementRenderer extends GroupRenderOptions {\n type: GroupRenderType.GroupElement;\n value: any;\n}\n\nexport interface GridRenderer extends GroupRenderOptions {\n type: GroupRenderType.Grid;\n columns?: number | 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}\n\nexport interface TextDisplay extends DisplayData {\n type: DisplayDataType.Text;\n text: string;\n}\n\nexport interface HtmlDisplay extends DisplayData {\n type: DisplayDataType.Html;\n html: string;\n}\n\nexport interface ActionControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Action;\n actionId: string;\n}\n\nexport enum ValidatorType {\n Jsonata = \"Jsonata\",\n Date = \"Date\",\n}\nexport interface SchemaValidator {\n type: string;\n}\n\nexport interface JsonataValidator extends SchemaValidator {\n type: ValidatorType.Jsonata;\n expression: string;\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 isDataControlDefinition(\n x: ControlDefinition,\n): x is DataControlDefinition {\n return x.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControlsDefinition(\n x: ControlDefinition,\n): x is GroupedControlsDefinition {\n return x.type === ControlDefinitionType.Group;\n}\n\nexport function isDisplayControlsDefinition(\n x: ControlDefinition,\n): x is DisplayControlDefinition {\n return x.type === ControlDefinitionType.Display;\n}\n\nexport function isActionControlsDefinition(\n x: ControlDefinition,\n): x is ActionControlDefinition {\n return x.type === ControlDefinitionType.Action;\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 GridRenderer {\n return options.type === GroupRenderType.Grid;\n}\n","import { CompoundField, FieldOption, FieldType, SchemaField } from \"./types\";\n\ntype AllowedSchema<T> = T extends string\n ? SchemaField & {\n type: FieldType.String | FieldType.Date | FieldType.DateTime;\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 function stringField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>,\n) {\n return makeScalarField({\n type: FieldType.String as const,\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<S extends SchemaField>(\n options: Partial<SchemaField>,\n v: (name: string) => S,\n): (name: string) => S {\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(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>,\n) {\n return makeScalarField({\n type: FieldType.Int as const,\n displayName,\n ...options,\n });\n}\n\nexport function boolField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>,\n) {\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","import {\n ActionControlDefinition,\n CompoundField,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n DisplayControlDefinition,\n FieldOption,\n FieldType,\n GridRenderer,\n GroupedControlsDefinition,\n GroupRenderType,\n SchemaField,\n visitControlDefinition,\n} from \"./types\";\nimport { MutableRefObject, useRef } from \"react\";\nimport { Control } from \"@react-typed-forms/core\";\n\nexport interface ControlGroupContext {\n groupControl: Control<any>;\n fields: SchemaField[];\n}\n\nexport function applyDefaultValues(\n v: { [k: string]: any } | undefined,\n fields: SchemaField[],\n): any {\n if (!v) return defaultValueForFields(fields);\n const applyValue = fields.filter(\n (x) => isCompoundField(x) || !(x.field in v),\n );\n if (!applyValue.length) return v;\n const out = { ...v };\n applyValue.forEach((x) => {\n out[x.field] =\n x.field in v\n ? applyDefaultForField(v[x.field], x, fields)\n : defaultValueForField(x);\n });\n return out;\n}\n\nexport function applyDefaultForField(\n v: any,\n field: SchemaField,\n parent: SchemaField[],\n notElement?: boolean,\n): any {\n if (field.collection && !notElement) {\n return ((v as any[]) ?? []).map((x) =>\n applyDefaultForField(x, field, parent, true),\n );\n }\n if (isCompoundField(field)) {\n if (!v && !field.required) return v;\n return applyDefaultValues(v, field.treeChildren ? parent : field.children);\n }\n return defaultValueForField(field);\n}\n\nexport function defaultValueForFields(fields: SchemaField[]): any {\n return Object.fromEntries(\n fields.map((x) => [x.field, defaultValueForField(x)]),\n );\n}\n\nexport function defaultValueForField(\n sf: SchemaField,\n required?: boolean | null,\n): any {\n if (sf.defaultValue !== undefined) return sf.defaultValue;\n const isRequired = !!(required || sf.required);\n if (isCompoundField(sf)) {\n if (isRequired) {\n const childValue = defaultValueForFields(sf.children);\n return sf.collection ? [childValue] : childValue;\n }\n return sf.notNullable ? (sf.collection ? [] : {}) : undefined;\n }\n if (sf.collection) {\n return [];\n }\n return undefined;\n}\n\nexport function elementValueForField(sf: SchemaField): any {\n if (isCompoundField(sf)) {\n return defaultValueForFields(sf.children);\n }\n return sf.defaultValue;\n}\n\nexport function findScalarField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return findField(fields, field);\n}\n\nexport function findCompoundField(\n fields: SchemaField[],\n field: string,\n): CompoundField | undefined {\n return findField(fields, field) as CompoundField | undefined;\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 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 fieldHasTag(field: SchemaField, tag: string) {\n return Boolean(field.tags?.includes(tag));\n}\n\nexport function fieldDisplayName(field: SchemaField) {\n return field.displayName ?? field.field;\n}\n\nexport function hasOptions(o: { options: FieldOption[] | undefined | null }) {\n return (o.options?.length ?? 0) > 0;\n}\n\nexport function defaultControlForField(\n sf: SchemaField,\n): DataControlDefinition | GroupedControlsDefinition {\n if (isCompoundField(sf)) {\n return {\n type: ControlDefinitionType.Group,\n title: sf.displayName,\n compoundField: sf.field,\n groupOptions: {\n type: GroupRenderType.Grid,\n hideTitle: false,\n } as GridRenderer,\n children: sf.children.map(defaultControlForField),\n } satisfies GroupedControlsDefinition;\n } else if (isScalarField(sf)) {\n const htmlEditor = sf.tags?.includes(\"_HtmlEditor\");\n return {\n type: ControlDefinitionType.Data,\n title: sf.displayName,\n field: sf.field,\n required: sf.required,\n renderOptions: {\n type: htmlEditor ? DataRenderType.HtmlEditor : DataRenderType.Standard,\n },\n } satisfies DataControlDefinition;\n }\n throw \"Unknown schema field\";\n}\nfunction findReferencedControl(\n field: string,\n control: ControlDefinition,\n): ControlDefinition | undefined {\n if (isDataControl(control) && field === control.field) return control;\n if (isGroupControl(control)) {\n if (control.compoundField)\n return field === control.compoundField ? control : undefined;\n return findReferencedControlInArray(field, control.children ?? []);\n }\n return undefined;\n}\n\nfunction findReferencedControlInArray(\n field: string,\n controls: ControlDefinition[],\n): ControlDefinition | undefined {\n for (const c of controls) {\n const ref = findReferencedControl(field, c);\n if (ref) return ref;\n }\n return undefined;\n}\n\nexport function addMissingControls(\n fields: SchemaField[],\n controls: ControlDefinition[],\n): ControlDefinition[] {\n const changes: {\n field: SchemaField;\n existing: ControlDefinition | undefined;\n }[] = fields.flatMap((x) => {\n if (fieldHasTag(x, \"_NoControl\")) return [];\n const existing = findReferencedControlInArray(x.field, controls);\n if (!existing || isCompoundField(x)) return { field: x, existing };\n return [];\n });\n const changedCompounds = controls.map((x) => {\n const ex = changes.find((c) => c.existing === x);\n if (!ex) return x;\n const cf = x as GroupedControlsDefinition;\n return {\n ...cf,\n children: addMissingControls(\n (ex.field as CompoundField).children,\n cf.children ?? [],\n ),\n };\n });\n return changedCompounds.concat(\n changes\n .filter((x) => !x.existing)\n .map((x) => defaultControlForField(x.field)),\n );\n}\n\nexport function useUpdatedRef<A>(a: A): MutableRefObject<A> {\n const r = useRef(a);\n r.current = a;\n return r;\n}\n\nexport function isControlReadonly(c: ControlDefinition): boolean {\n return isDataControl(c) && !!c.readonly;\n}\n\nexport function getTypeField(\n context: ControlGroupContext,\n): Control<string> | undefined {\n const typeSchemaField = context.fields.find((x) => x.isTypeField);\n return typeSchemaField\n ? context.groupControl.fields?.[typeSchemaField.field]\n : undefined;\n}\n\nexport function visitControlDataArray<A>(\n controls: ControlDefinition[] | undefined | null,\n context: ControlGroupContext,\n cb: (\n definition: DataControlDefinition,\n field: SchemaField,\n control: Control<any>,\n element: boolean,\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\nexport function visitControlData<A>(\n definition: ControlDefinition,\n ctx: ControlGroupContext,\n cb: (\n definition: DataControlDefinition,\n field: SchemaField,\n control: Control<any>,\n element: boolean,\n ) => A | undefined,\n): A | undefined {\n return visitControlDefinition<A | undefined>(\n definition,\n {\n data(def: DataControlDefinition) {\n return processData(def, def.field, def.children);\n },\n group(d: GroupedControlsDefinition) {\n return processData(undefined, d.compoundField, d.children);\n },\n action: () => undefined,\n display: () => undefined,\n },\n () => undefined,\n );\n\n function processData(\n def: DataControlDefinition | undefined,\n fieldName: string | undefined | null,\n children: ControlDefinition[] | null | undefined,\n ) {\n const fieldData = fieldName ? findField(ctx.fields, fieldName) : undefined;\n if (!fieldData)\n return !fieldName ? visitControlDataArray(children, ctx, cb) : undefined;\n\n const control = ctx.groupControl.fields[fieldData.field];\n const result = def ? cb(def, fieldData, control, false) : undefined;\n if (result !== undefined) return result;\n if (fieldData.collection) {\n for (const c of control.elements ?? []) {\n const elemResult = def ? cb(def, fieldData, c, true) : undefined;\n if (elemResult !== undefined) return elemResult;\n if (isCompoundField(fieldData)) {\n const cfResult = visitControlDataArray(\n children,\n { fields: fieldData.children, groupControl: c },\n cb,\n );\n if (cfResult !== undefined) return cfResult;\n }\n }\n }\n }\n}\n\nexport function cleanDataForSchema(\n v: { [k: string]: any } | undefined,\n fields: SchemaField[],\n): any {\n if (!v) return v;\n const typeField = fields.find((x) => x.isTypeField);\n if (!typeField) return v;\n const typeValue = v[typeField.field];\n const cleanableFields = fields.filter(\n (x) => isCompoundField(x) || (x.onlyForTypes?.length ?? 0) > 0,\n );\n if (!cleanableFields.length) return v;\n const out = { ...v };\n cleanableFields.forEach((x) => {\n const childValue = v[x.field];\n if (\n x.onlyForTypes?.includes(typeValue) === false ||\n (!x.notNullable && canBeNull())\n ) {\n delete out[x.field];\n return;\n }\n if (isCompoundField(x)) {\n const childFields = x.treeChildren ? fields : x.children;\n if (x.collection) {\n if (Array.isArray(childValue)) {\n out[x.field] = childValue.map((cv) =>\n cleanDataForSchema(cv, childFields),\n );\n }\n } else {\n out[x.field] = cleanDataForSchema(childValue, childFields);\n }\n }\n function canBeNull() {\n return (\n x.collection && Array.isArray(childValue) && !childValue.length\n //|| (x.type === FieldType.Bool && childValue === false)\n );\n }\n });\n return out;\n}\n","import {\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DisplayControlDefinition,\n DisplayDataType,\n DynamicProperty,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n FieldValueExpression,\n GroupedControlsDefinition,\n GroupRenderType,\n HtmlDisplay,\n JsonataExpression,\n SchemaField,\n TextDisplay,\n} from \"./types\";\nimport { ActionRendererProps } from \"./controlRender\";\nimport { useMemo } from \"react\";\nimport { addMissingControls } from \"./util\";\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 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 fieldEqExpr(field: string, value: any): FieldValueExpression {\n return { type: ExpressionType.FieldValue, field, value };\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,\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 createAction(\n actionId: string,\n onClick: () => void,\n actionText?: string,\n): ActionRendererProps {\n return { actionId, onClick, actionText: actionText ?? actionId };\n}\n\nexport const emptyGroupDefinition: GroupedControlsDefinition = {\n type: ControlDefinitionType.Group,\n children: [],\n groupOptions: { type: GroupRenderType.Standard, hideTitle: true },\n};\n\nexport function useControlDefinitionForSchema(\n sf: SchemaField[],\n definition: GroupedControlsDefinition = emptyGroupDefinition,\n): GroupedControlsDefinition {\n return useMemo<GroupedControlsDefinition>(\n () => ({\n ...definition,\n children: addMissingControls(sf, definition.children ?? []),\n }),\n [sf, definition],\n );\n}\n","import { Control, useControl, useControlEffect } from \"@react-typed-forms/core\";\n\nexport function useCalculatedControl<V>(calculate: () => V): Control<V> {\n const c = useControl(calculate);\n useControlEffect(calculate, (v) => (c.value = v));\n return c;\n}\n","import {\n ControlDefinition,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n FieldValueExpression,\n isDataControlDefinition,\n JsonataExpression,\n SchemaField,\n} from \"./types\";\nimport { useCallback, useMemo } from \"react\";\nimport {\n Control,\n useComputed,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\n\nimport {\n ControlGroupContext,\n defaultValueForField,\n findField,\n getTypeField,\n isControlReadonly,\n useUpdatedRef,\n} from \"./util\";\nimport jsonata from \"jsonata\";\nimport { useCalculatedControl } from \"./internal\";\n\nexport type UseEvalExpressionHook = (\n expr: EntityExpression | undefined,\n) => EvalExpressionHook | undefined;\n\nexport function useEvalVisibilityHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n schemaField?: SchemaField,\n): EvalExpressionHook<boolean> {\n const dynamicVisibility = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Visible,\n useEvalExpressionHook,\n );\n const r = useUpdatedRef(schemaField);\n return useCallback(\n (ctx) => {\n const schemaField = r.current;\n return (\n dynamicVisibility?.(ctx) ??\n useComputed(() => matchesType(ctx, schemaField?.onlyForTypes))\n );\n },\n [dynamicVisibility, r],\n );\n}\n\nexport function useEvalReadonlyHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<boolean> {\n const dynamicReadonly = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Readonly,\n useEvalExpressionHook,\n );\n const r = useUpdatedRef(definition);\n return useCallback(\n (ctx) => {\n if (dynamicReadonly) return dynamicReadonly(ctx);\n return useCalculatedControl(() => isControlReadonly(r.current));\n },\n [dynamicReadonly, r],\n );\n}\n\nexport function useEvalDisabledHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<boolean> {\n const dynamicDisabled = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Disabled,\n useEvalExpressionHook,\n );\n return useCallback(\n (ctx) => {\n if (dynamicDisabled) return dynamicDisabled(ctx);\n return useControl(false);\n },\n [dynamicDisabled],\n );\n}\n\nexport function useEvalDefaultValueHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n schemaField?: SchemaField,\n): EvalExpressionHook {\n const dynamicValue = useEvalDynamicHook(\n definition,\n DynamicPropertyType.DefaultValue,\n useEvalExpressionHook,\n );\n const r = useUpdatedRef({ definition, schemaField });\n return useCallback(\n (ctx) => {\n const { definition, schemaField } = r.current;\n return dynamicValue?.(ctx) ?? useComputed(calcDefault);\n function calcDefault() {\n const [required, dcv] = isDataControlDefinition(definition)\n ? [definition.required, definition.defaultValue]\n : [false, undefined];\n return (\n dcv ??\n (schemaField\n ? defaultValueForField(schemaField, required)\n : undefined)\n );\n }\n },\n [dynamicValue, r],\n );\n}\n\nexport type EvalExpressionHook<A = any> = (\n groupContext: ControlGroupContext,\n) => Control<A | undefined>;\n\nfunction useFieldValueExpression(\n fvExpr: FieldValueExpression,\n fields: SchemaField[],\n data: Control<any>,\n) {\n const refField = findField(fields, fvExpr.field);\n const otherField = refField ? data.fields[refField.field] : undefined;\n return useComputed(() => {\n const fv = otherField?.value;\n return Array.isArray(fv) ? fv.includes(fvExpr.value) : fv === fvExpr.value;\n });\n}\n\nfunction defaultEvalHooks(\n expr: EntityExpression,\n context: ControlGroupContext,\n) {\n switch (expr.type) {\n case ExpressionType.Jsonata:\n return useJsonataExpression(\n (expr as JsonataExpression).expression,\n context.groupControl,\n );\n case ExpressionType.FieldValue:\n return useFieldValueExpression(\n expr as FieldValueExpression,\n context.fields,\n context.groupControl,\n );\n default:\n return useControl(undefined);\n }\n}\n\nexport const defaultUseEvalExpressionHook =\n makeEvalExpressionHook(defaultEvalHooks);\n\nexport function makeEvalExpressionHook(\n f: (expr: EntityExpression, context: ControlGroupContext) => Control<any>,\n): (expr: EntityExpression | undefined) => EvalExpressionHook | undefined {\n return (expr) => {\n const r = useUpdatedRef(expr);\n const cb = useCallback(\n (ctx: ControlGroupContext) => {\n const expr = r.current!;\n return f(expr, ctx);\n },\n [expr?.type, r],\n );\n return expr ? cb : undefined;\n };\n}\n\nexport function useEvalDynamicHook(\n definition: ControlDefinition,\n type: DynamicPropertyType,\n useEvalExpressionHook: (\n expr: EntityExpression | undefined,\n ) => EvalExpressionHook | undefined,\n): EvalExpressionHook | undefined {\n const expression = definition.dynamic?.find((x) => x.type === type);\n return useEvalExpressionHook(expression?.expr);\n}\n\nexport function matchesType(\n context: ControlGroupContext,\n types?: string[] | null,\n) {\n if (types == null || types.length === 0) return true;\n const typeField = getTypeField(context);\n return typeField && types.includes(typeField.value);\n}\n\nexport function useJsonataExpression(\n jExpr: string,\n data: Control<any>,\n): Control<any> {\n const compiledExpr = useMemo(() => jsonata(jExpr), [jExpr]);\n const control = useControl();\n useControlEffect(\n () => data.value,\n async (v) => {\n control.value = await compiledExpr.evaluate(v);\n },\n true,\n );\n return control;\n}\n","import {\n ControlDefinition,\n DataControlDefinition,\n DateComparison,\n DateValidator,\n isDataControlDefinition,\n JsonataValidator,\n ValidatorType,\n} from \"./types\";\nimport {\n Control,\n useControlEffect,\n useValidator,\n useValueChangeEffect,\n} from \"@react-typed-forms/core\";\nimport { useCallback } from \"react\";\nimport { ControlGroupContext, useUpdatedRef } from \"./util\";\nimport { useJsonataExpression } from \"./hooks\";\n\nexport function useValidationHook(\n definition: ControlDefinition,\n): (\n control: Control<any>,\n hidden: boolean,\n groupContext: ControlGroupContext,\n) => void {\n const validatorTypes = isDataControlDefinition(definition)\n ? definition.validators?.map((x) => x.type) ?? []\n : null;\n const r = useUpdatedRef(definition as DataControlDefinition);\n return useCallback(\n (control, hidden, groupContext) => {\n if (!validatorTypes) return;\n const dd = r.current;\n\n useValueChangeEffect(control, () => control.setError(\"default\", \"\"));\n useValidator(\n control,\n (v) =>\n !hidden &&\n dd.required &&\n (v == null || v === \"\" || (Array.isArray(v) && v.length === 0))\n ? \"Please enter a value\"\n : null,\n \"required\",\n );\n (dd.validators ?? []).forEach((x, i) => {\n switch (x.type) {\n case ValidatorType.Jsonata:\n return useJsonataValidator(\n control,\n groupContext,\n x as JsonataValidator,\n hidden,\n i,\n );\n case ValidatorType.Date:\n return useDateValidator(control, x as DateValidator, i);\n }\n });\n },\n validatorTypes ? validatorTypes : [null],\n );\n}\n\nfunction useJsonataValidator(\n control: Control<any>,\n context: ControlGroupContext,\n expr: JsonataValidator,\n hidden: boolean,\n i: number,\n) {\n const errorMsg = useJsonataExpression(expr.expression, context.groupControl);\n useControlEffect(\n () => [hidden, errorMsg.value],\n ([hidden, msg]) => control.setError(\"jsonata\" + i, !hidden ? msg : null),\n true,\n );\n}\n\nfunction useDateValidator(\n control: Control<string | null | undefined>,\n dv: DateValidator,\n i: number,\n) {\n let comparisonDate: number;\n if (dv.fixedDate) {\n comparisonDate = Date.parse(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 useValidator(\n control,\n (v) => {\n if (v) {\n const selDate = Date.parse(v);\n const notAfter = dv.comparison === DateComparison.NotAfter;\n if (notAfter ? selDate > comparisonDate : selDate < comparisonDate) {\n return `Date must not be ${notAfter ? \"after\" : \"before\"} ${new Date(\n comparisonDate,\n ).toDateString()}`;\n }\n }\n return null;\n },\n \"date\" + i,\n );\n}\n","import React, {\n FC,\n Fragment,\n Key,\n ReactNode,\n useCallback,\n useEffect,\n} from \"react\";\nimport {\n addElement,\n Control,\n newControl,\n removeElement,\n useComponentTracking,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\nimport {\n AdornmentPlacement,\n ControlAdornment,\n ControlDefinition,\n DataControlDefinition,\n DisplayData,\n FieldOption,\n GroupRenderOptions,\n isActionControlsDefinition,\n isDataControlDefinition,\n isDisplayControlsDefinition,\n isGroupControlsDefinition,\n RenderOptions,\n SchemaField,\n} from \"./types\";\nimport {\n ControlGroupContext,\n elementValueForField,\n fieldDisplayName,\n findField,\n isCompoundField,\n useUpdatedRef,\n} from \"./util\";\nimport { dataControl } from \"./controlBuilder\";\nimport {\n defaultUseEvalExpressionHook,\n useEvalDefaultValueHook,\n useEvalDisabledHook,\n UseEvalExpressionHook,\n useEvalReadonlyHook,\n useEvalVisibilityHook,\n} from \"./hooks\";\nimport { useValidationHook } from \"./validators\";\nimport { useCalculatedControl } from \"./internal\";\n\nexport interface FormRenderer {\n renderData: (\n props: DataRendererProps,\n asArray: (() => ReactNode) | undefined,\n ) => (layout: ControlLayoutProps) => ControlLayoutProps;\n renderGroup: (props: GroupRendererProps) => ReactNode;\n renderDisplay: (props: DisplayRendererProps) => ReactNode;\n renderAction: (props: ActionRendererProps) => ReactNode;\n renderArray: (props: ArrayRendererProps) => ReactNode;\n renderAdornment: (props: AdornmentProps) => AdornmentRenderer;\n renderLabel: (\n props: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n ) => ReactNode;\n renderLayout: (props: ControlLayoutProps) => ReactNode;\n renderVisibility: (\n control: Control<Visibility | undefined>,\n children: () => ReactNode,\n ) => ReactNode;\n}\n\nexport interface DisplayRendererProps {\n data: DisplayData;\n}\nexport interface AdornmentProps {\n adornment: ControlAdornment;\n}\n\nexport const AppendAdornmentPriority = 0;\nexport const WrapAdornmentPriority = 1000;\n\nexport interface AdornmentRenderer {\n apply(children: RenderedLayout): void;\n adornment?: ControlAdornment;\n priority: number;\n}\n\nexport interface ArrayRendererProps {\n addAction?: ActionRendererProps;\n required: boolean;\n removeAction?: (childIndex: number) => ActionRendererProps;\n childCount: number;\n renderChild: (childIndex: number) => ReactNode;\n childKey: (childIndex: number) => Key;\n arrayControl?: Control<any[] | undefined | null>;\n}\nexport interface Visibility {\n visible: boolean;\n showing: boolean;\n}\n\nexport interface RenderedLayout {\n labelStart?: ReactNode;\n labelEnd?: ReactNode;\n controlStart?: ReactNode;\n controlEnd?: ReactNode;\n label?: ReactNode;\n children?: ReactNode;\n errorControl?: Control<any>;\n}\n\nexport interface ControlLayoutProps {\n label?: LabelRendererProps;\n errorControl?: Control<any>;\n adornments?: AdornmentRenderer[];\n children?: ReactNode;\n processLayout?: (props: ControlLayoutProps) => ControlLayoutProps;\n}\n\nexport enum LabelType {\n Control,\n Group,\n}\nexport interface LabelRendererProps {\n type: LabelType;\n hide?: boolean | null;\n label: ReactNode;\n required?: boolean | null;\n forId?: string;\n}\nexport interface GroupRendererProps {\n renderOptions: GroupRenderOptions;\n childCount: number;\n renderChild: (child: number) => ReactNode;\n}\n\nexport interface DataRendererProps {\n renderOptions: RenderOptions;\n field: SchemaField;\n id: string;\n control: Control<any>;\n readonly: boolean;\n required: boolean;\n options: FieldOption[] | undefined | null;\n hidden: boolean;\n}\n\nexport interface ActionRendererProps {\n actionId: string;\n actionText: string;\n onClick: () => void;\n}\n\nexport interface ControlRenderProps {\n control: Control<any>;\n}\n\nexport interface FormContextOptions {\n readonly?: boolean | null;\n hidden?: boolean | null;\n disabled?: boolean | null;\n}\n\nexport type CreateDataProps = (\n definition: DataControlDefinition,\n field: SchemaField,\n groupContext: ControlGroupContext,\n control: Control<any>,\n options: FormContextOptions,\n) => DataRendererProps;\nexport interface ControlRenderOptions extends FormContextOptions {\n useDataHook?: (c: ControlDefinition) => CreateDataProps;\n useEvalExpressionHook?: UseEvalExpressionHook;\n clearHidden?: boolean;\n}\nexport function useControlRenderer(\n definition: ControlDefinition,\n fields: SchemaField[],\n renderer: FormRenderer,\n options: ControlRenderOptions = {},\n): FC<ControlRenderProps> {\n const dataProps = options.useDataHook?.(definition) ?? defaultDataProps;\n const useExpr = options.useEvalExpressionHook ?? defaultUseEvalExpressionHook;\n\n const schemaField = lookupSchemaField(definition, fields);\n const useDefaultValue = useEvalDefaultValueHook(\n useExpr,\n definition,\n schemaField,\n );\n const useIsVisible = useEvalVisibilityHook(useExpr, definition, schemaField);\n const useIsReadonly = useEvalReadonlyHook(useExpr, definition);\n const useIsDisabled = useEvalDisabledHook(useExpr, definition);\n const useValidation = useValidationHook(definition);\n const r = useUpdatedRef({ options, definition, fields, schemaField });\n\n const Component = useCallback(\n ({ control: parentControl }: ControlRenderProps) => {\n const stopTracking = useComponentTracking();\n try {\n const { definition: c, options, fields, schemaField } = r.current;\n const groupContext: ControlGroupContext = {\n groupControl: parentControl,\n fields,\n };\n const readonlyControl = useIsReadonly(groupContext);\n const disabledControl = useIsDisabled(groupContext);\n const visibleControl = useIsVisible(groupContext);\n const visible = visibleControl.current.value;\n const visibility = useControl<Visibility | undefined>(() =>\n visible != null\n ? {\n visible,\n showing: visible,\n }\n : undefined,\n );\n useControlEffect(\n () => visibleControl.value,\n (visible) => {\n if (visible != null)\n visibility.setValue((ex) => ({\n visible,\n showing: ex ? ex.showing : visible,\n }));\n },\n );\n\n const defaultValueControl = useDefaultValue(groupContext);\n const [control, childContext] = getControlData(\n schemaField,\n groupContext,\n );\n useControlEffect(\n () => [\n visibility.value,\n defaultValueControl.value,\n control,\n parentControl.isNull,\n ],\n ([vc, dv, cd, pn]) => {\n if (pn) {\n parentControl.value = {};\n }\n if (vc && cd && vc.visible === vc.showing) {\n if (!vc.visible) {\n if (options.clearHidden) cd.value = undefined;\n } else if (cd.value == null) {\n cd.value = dv;\n }\n }\n },\n true,\n );\n const myOptions = useCalculatedControl<FormContextOptions>(() => ({\n hidden: options.hidden || !visibility.fields?.showing.value,\n readonly: options.readonly || readonlyControl.value,\n disabled: options.disabled || disabledControl.value,\n })).value;\n useValidation(control!, !!myOptions.hidden, groupContext);\n const childRenderers: FC<ControlRenderProps>[] =\n c.children?.map((cd) =>\n useControlRenderer(cd, childContext.fields, renderer, {\n ...options,\n ...myOptions,\n }),\n ) ?? [];\n useEffect(() => {\n if (control && typeof myOptions.disabled === \"boolean\")\n control.disabled = myOptions.disabled;\n }, [control, myOptions.disabled]);\n if (parentControl.isNull) return <></>;\n const adornments =\n definition.adornments?.map((x) =>\n renderer.renderAdornment({ adornment: x }),\n ) ?? [];\n const labelAndChildren = renderControlLayout(\n c,\n renderer,\n childRenderers.length,\n (k, i, props) => {\n const RenderChild = childRenderers[i];\n return <RenderChild key={k} {...props} />;\n },\n dataProps,\n myOptions,\n groupContext,\n control,\n schemaField,\n );\n return renderer.renderVisibility(visibility, () =>\n renderer.renderLayout({ ...labelAndChildren, adornments }),\n );\n } finally {\n stopTracking();\n }\n },\n [\n r,\n dataProps,\n useIsVisible,\n useDefaultValue,\n useIsReadonly,\n useIsDisabled,\n useValidation,\n renderer,\n ],\n );\n (Component as any).displayName = \"RenderControl\";\n return Component;\n}\nexport function lookupSchemaField(\n c: ControlDefinition,\n fields: SchemaField[],\n): SchemaField | undefined {\n const fieldName = isGroupControlsDefinition(c)\n ? c.compoundField\n : isDataControlDefinition(c)\n ? c.field\n : undefined;\n return fieldName ? findField(fields, fieldName) : undefined;\n}\nexport function getControlData(\n schemaField: SchemaField | undefined,\n parentContext: ControlGroupContext,\n): [Control<any> | undefined, ControlGroupContext] {\n const childControl: Control<any> | undefined = schemaField\n ? parentContext.groupControl.fields?.[schemaField.field] ?? newControl({})\n : undefined;\n return [\n childControl,\n schemaField && isCompoundField(schemaField)\n ? {\n groupControl: childControl!,\n fields: schemaField.children,\n }\n : parentContext,\n ];\n}\n\nfunction renderArray(\n renderer: FormRenderer,\n noun: string,\n field: SchemaField,\n required: boolean,\n arrayControl: Control<any[] | undefined | null>,\n renderChild: (elemIndex: number, control: Control<any>) => ReactNode,\n) {\n const elems = arrayControl.elements ?? [];\n return renderer.renderArray({\n arrayControl,\n childCount: elems.length,\n required,\n addAction: {\n actionId: \"add\",\n actionText: \"Add \" + noun,\n onClick: () => addElement(arrayControl, elementValueForField(field)),\n },\n childKey: (i) => elems[i].uniqueId,\n removeAction: (i: number) => ({\n actionId: \"\",\n actionText: \"Remove\",\n onClick: () => removeElement(arrayControl, i),\n }),\n renderChild: (i) => renderChild(i, elems[i]),\n });\n}\nfunction groupProps(\n renderOptions: GroupRenderOptions = { type: \"Standard\" },\n childCount: number,\n renderChild: ChildRenderer,\n control: Control<any>,\n): GroupRendererProps {\n return {\n childCount,\n renderChild: (i) => renderChild(i, i, { control }),\n renderOptions,\n };\n}\n\nexport const defaultDataProps: CreateDataProps = (\n definition,\n field,\n groupContext,\n control,\n options,\n) => {\n return {\n control,\n field,\n id: \"c\" + control.uniqueId,\n options: (field.options?.length ?? 0) === 0 ? null : field.options,\n readonly: !!options.readonly,\n renderOptions: definition.renderOptions ?? { type: \"Standard\" },\n required: !!definition.required,\n hidden: !!options.hidden,\n };\n};\n\nexport type ChildRenderer = (\n k: Key,\n childIndex: number,\n props: ControlRenderProps,\n) => ReactNode;\nexport function renderControlLayout(\n c: ControlDefinition,\n renderer: FormRenderer,\n childCount: number,\n childRenderer: ChildRenderer,\n dataProps: CreateDataProps,\n dataOptions: FormContextOptions,\n groupContext: ControlGroupContext,\n childControl?: Control<any>,\n schemaField?: SchemaField,\n): ControlLayoutProps {\n if (isDataControlDefinition(c)) {\n return renderData(c);\n }\n if (isGroupControlsDefinition(c)) {\n if (c.compoundField) {\n return renderData(\n dataControl(c.compoundField, c.title, {\n children: c.children,\n hideTitle: c.groupOptions?.hideTitle,\n }),\n );\n }\n return {\n children: renderer.renderGroup(\n groupProps(\n c.groupOptions,\n childCount,\n childRenderer,\n groupContext.groupControl,\n ),\n ),\n label: {\n label: c.title,\n type: LabelType.Group,\n hide: c.groupOptions?.hideTitle,\n },\n };\n }\n if (isActionControlsDefinition(c)) {\n return {\n children: renderer.renderAction({\n actionText: c.title ?? c.actionId,\n actionId: c.actionId,\n onClick: () => {},\n }),\n };\n }\n if (isDisplayControlsDefinition(c)) {\n return { children: renderer.renderDisplay({ data: c.displayData ?? {} }) };\n }\n return {};\n\n function renderData(c: DataControlDefinition) {\n if (!schemaField) return { children: \"No schema field for: \" + c.field };\n if (isCompoundField(schemaField)) {\n const label: LabelRendererProps = {\n hide: c.hideTitle,\n label: controlTitle(c.title, schemaField),\n type: schemaField.collection ? LabelType.Control : LabelType.Group,\n };\n\n if (schemaField.collection) {\n return {\n label,\n children: renderArray(\n renderer,\n controlTitle(c.title, schemaField),\n schemaField,\n !!c.required,\n childControl!,\n compoundRenderer,\n ),\n errorControl: childControl,\n };\n }\n return {\n children: renderer.renderGroup(\n groupProps(\n { type: \"Standard\" },\n childCount,\n childRenderer,\n childControl!,\n ),\n ),\n label,\n errorControl: childControl,\n };\n }\n const props = dataProps(\n c,\n schemaField,\n groupContext,\n childControl!,\n dataOptions,\n );\n const labelText = !c.hideTitle\n ? controlTitle(c.title, schemaField)\n : undefined;\n return {\n processLayout: renderer.renderData(\n props,\n schemaField.collection\n ? () =>\n renderArray(\n renderer,\n controlTitle(c.title, schemaField),\n schemaField,\n !!c.required,\n childControl!,\n scalarRenderer(props),\n )\n : undefined,\n ),\n label: {\n type: LabelType.Control,\n label: labelText,\n forId: props.id,\n required: c.required,\n hide: c.hideTitle,\n },\n errorControl: childControl,\n };\n }\n\n function compoundRenderer(i: number, control: Control<any>): ReactNode {\n return (\n <Fragment key={control.uniqueId}>\n {renderer.renderGroup({\n renderOptions: { type: \"Standard\", hideTitle: true },\n childCount,\n renderChild: (ci) => childRenderer(ci, ci, { control }),\n })}\n </Fragment>\n );\n }\n function scalarRenderer(\n dataProps: DataRendererProps,\n ): (i: number, control: Control<any>) => ReactNode {\n return (i, control) => {\n return (\n <Fragment key={control.uniqueId}>\n {\n renderer.renderData({ ...dataProps, control }, undefined)({})\n .children\n }\n </Fragment>\n );\n };\n }\n}\n\nexport function appendMarkup(\n k: keyof Omit<RenderedLayout, \"errorControl\">,\n markup: ReactNode,\n): (layout: RenderedLayout) => void {\n return (layout) =>\n (layout[k] = (\n <>\n {layout[k]}\n {markup}\n </>\n ));\n}\n\nexport function wrapMarkup(\n k: keyof Omit<RenderedLayout, \"errorControl\">,\n wrap: (ex: ReactNode) => ReactNode,\n): (layout: RenderedLayout) => void {\n return (layout) => (layout[k] = wrap(layout[k]));\n}\n\nexport function layoutKeyForPlacement(\n pos: AdornmentPlacement,\n): keyof Omit<RenderedLayout, \"errorControl\"> {\n switch (pos) {\n case AdornmentPlacement.ControlEnd:\n return \"controlEnd\";\n case AdornmentPlacement.ControlStart:\n return \"controlStart\";\n case AdornmentPlacement.LabelStart:\n return \"labelStart\";\n case AdornmentPlacement.LabelEnd:\n return \"labelEnd\";\n }\n}\n\nexport function appendMarkupAt(\n pos: AdornmentPlacement,\n markup: ReactNode,\n): (layout: RenderedLayout) => void {\n return appendMarkup(layoutKeyForPlacement(pos), markup);\n}\n\nexport function wrapMarkupAt(\n pos: AdornmentPlacement,\n wrap: (ex: ReactNode) => ReactNode,\n): (layout: RenderedLayout) => void {\n return wrapMarkup(layoutKeyForPlacement(pos), wrap);\n}\n\nexport function renderLayoutParts(\n props: ControlLayoutProps,\n renderer: FormRenderer,\n): RenderedLayout {\n const processed = props.processLayout?.(props) ?? props;\n const layout: RenderedLayout = {\n children: processed.children,\n errorControl: processed.errorControl,\n };\n (processed.adornments ?? [])\n .sort((a, b) => a.priority - b.priority)\n .forEach((x) => x.apply(layout));\n const l = processed.label;\n layout.label =\n l && !l.hide\n ? renderer.renderLabel(l, layout.labelStart, layout.labelEnd)\n : undefined;\n return layout;\n}\n\nexport function controlTitle(\n title: string | undefined | null,\n field: SchemaField,\n) {\n return title ? title : fieldDisplayName(field);\n}\n","import React, {\n CSSProperties,\n Fragment,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport clsx from \"clsx\";\nimport { Control, Fcheckbox, formControlProps } from \"@react-typed-forms/core\";\nimport {\n ActionRendererProps,\n AdornmentProps,\n AdornmentRenderer,\n ArrayRendererProps,\n ControlLayoutProps,\n DataRendererProps,\n DisplayRendererProps,\n FormRenderer,\n GroupRendererProps,\n LabelRendererProps,\n LabelType,\n RenderedLayout,\n renderLayoutParts,\n Visibility,\n} from \"./controlRender\";\nimport {\n DataRenderType,\n DisplayDataType,\n FieldOption,\n FieldType,\n GridRenderer,\n HtmlDisplay,\n isGridRenderer,\n TextDisplay,\n} from \"./types\";\nimport { hasOptions } from \"./util\";\n\nexport interface DefaultRenderers {\n data: DataRendererRegistration;\n label: LabelRendererRegistration;\n action: ActionRendererRegistration;\n array: ArrayRendererRegistration;\n group: GroupRendererRegistration;\n display: DisplayRendererRegistration;\n adornment: AdornmentRendererRegistration;\n renderLayout: LayoutRendererRegistration;\n visibility: VisibilityRendererRegistration;\n}\n\nexport interface LayoutRendererRegistration {\n type: \"layout\";\n match?: (props: ControlLayoutProps) => boolean;\n render: (props: ControlLayoutProps, renderers: FormRenderer) => ReactNode;\n}\nexport interface DataRendererRegistration {\n type: \"data\";\n schemaType?: string | string[];\n renderType?: string | string[];\n options?: boolean;\n collection?: boolean;\n match?: (props: DataRendererProps) => boolean;\n render: (\n props: DataRendererProps,\n asArray: (() => ReactNode) | undefined,\n renderers: FormRenderer,\n ) => ReactNode | ((layout: ControlLayoutProps) => ControlLayoutProps);\n}\n\nexport interface LabelRendererRegistration {\n type: \"label\";\n labelType?: LabelType | LabelType[];\n render: (\n labelProps: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface ActionRendererRegistration {\n type: \"action\";\n actionType?: string | string[];\n render: (props: ActionRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface ArrayRendererRegistration {\n type: \"array\";\n render: (props: ArrayRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface GroupRendererRegistration {\n type: \"group\";\n renderType?: string | string[];\n render: (props: GroupRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface DisplayRendererRegistration {\n type: \"display\";\n renderType?: string | string[];\n render: (\n props: DisplayRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface AdornmentRendererRegistration {\n type: \"adornment\";\n adornmentType?: string | string[];\n render: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nexport interface VisibilityRendererRegistration {\n type: \"visibility\";\n render: (\n visibility: Control<Visibility | undefined>,\n children: () => ReactNode,\n ) => ReactNode;\n}\n\nexport type RendererRegistration =\n | DataRendererRegistration\n | GroupRendererRegistration\n | DisplayRendererRegistration\n | ActionRendererRegistration\n | LabelRendererRegistration\n | ArrayRendererRegistration\n | AdornmentRendererRegistration\n | LayoutRendererRegistration\n | VisibilityRendererRegistration;\n\nexport function createFormRenderer(\n customRenderers: RendererRegistration[] = [],\n defaultRenderers: DefaultRenderers = createClassStyledRenderers(),\n): FormRenderer {\n const dataRegistrations = customRenderers.filter(isDataRegistration);\n const groupRegistrations = customRenderers.filter(isGroupRegistration);\n const adornmentRegistrations = customRenderers.filter(\n isAdornmentRegistration,\n );\n const displayRegistrations = customRenderers.filter(isDisplayRegistration);\n const labelRenderers = customRenderers.filter(isLabelRegistration);\n const arrayRenderers = customRenderers.filter(isArrayRegistration);\n const actionRenderers = customRenderers.filter(isActionRegistration);\n const layoutRenderers = customRenderers.filter(isLayoutRegistration);\n const visibilityRenderer =\n customRenderers.find(isVisibilityRegistration) ??\n defaultRenderers.visibility;\n\n const formRenderers: FormRenderer = {\n renderAction,\n renderData,\n renderGroup,\n renderDisplay,\n renderLabel,\n renderArray,\n renderAdornment,\n renderLayout,\n renderVisibility: visibilityRenderer.render,\n };\n\n function renderLayout(props: ControlLayoutProps) {\n const renderer =\n layoutRenderers.find((x) => !x.match || x.match(props)) ??\n defaultRenderers.renderLayout;\n return renderer.render(props, formRenderers);\n }\n\n function renderAdornment(props: AdornmentProps): AdornmentRenderer {\n const renderer =\n adornmentRegistrations.find((x) =>\n isOneOf(x.adornmentType, props.adornment.type),\n ) ?? defaultRenderers.adornment;\n return renderer.render(props);\n }\n\n function renderArray(props: ArrayRendererProps) {\n return (arrayRenderers[0] ?? defaultRenderers.array).render(\n props,\n formRenderers,\n );\n }\n\n function renderLabel(\n props: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n ) {\n const renderer =\n labelRenderers.find((x) => isOneOf(x.labelType, props.type)) ??\n defaultRenderers.label;\n return renderer.render(props, labelStart, labelEnd, formRenderers);\n }\n\n function renderData(\n props: DataRendererProps,\n asArray: (() => ReactNode) | undefined,\n ): (layout: ControlLayoutProps) => ControlLayoutProps {\n const {\n renderOptions: { type: renderType },\n field,\n } = props;\n\n const options = hasOptions(props);\n const renderer =\n dataRegistrations.find(\n (x) =>\n (x.collection ?? false) === (field.collection ?? false) &&\n (x.options ?? false) === options &&\n isOneOf(x.schemaType, field.type) &&\n isOneOf(x.renderType, renderType) &&\n (!x.match || x.match(props)),\n ) ?? defaultRenderers.data;\n\n const result = renderer.render(props, asArray, formRenderers);\n if (typeof result === \"function\") return result;\n return (l) => ({ ...l, children: result });\n }\n\n function renderGroup(props: GroupRendererProps): ReactNode {\n const renderType = props.renderOptions.type;\n const renderer =\n groupRegistrations.find((x) => isOneOf(x.renderType, renderType)) ??\n defaultRenderers.group;\n return renderer.render(props, formRenderers);\n }\n\n function renderAction(props: ActionRendererProps) {\n const renderer =\n actionRenderers.find((x) => isOneOf(x.actionType, props.actionId)) ??\n defaultRenderers.action;\n return renderer.render(props, formRenderers);\n }\n\n function renderDisplay(props: DisplayRendererProps) {\n const renderType = props.data.type;\n const renderer =\n displayRegistrations.find((x) => isOneOf(x.renderType, renderType)) ??\n defaultRenderers.display;\n return renderer.render(props, formRenderers);\n }\n\n return formRenderers;\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n requiredElement?: ReactNode;\n}\n\ninterface DefaultActionRendererOptions {\n className?: string;\n}\n\nexport function createDefaultActionRenderer(\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n function render({ onClick, actionText }: ActionRendererProps) {\n return (\n <button className={options.className} onClick={onClick}>\n {actionText}\n </button>\n );\n }\n return { render, type: \"action\" };\n}\nexport function createDefaultLabelRenderer(\n options: DefaultLabelRendererOptions = { requiredElement: <span> *</span> },\n): LabelRendererRegistration {\n const { className, groupLabelClass, requiredElement } = options;\n return {\n render: (props, labelStart, labelEnd) => (\n <>\n {labelStart}\n <label\n htmlFor={props.forId}\n className={clsx(\n className,\n props.type === LabelType.Group && groupLabelClass,\n )}\n >\n {props.label}\n {props.required && requiredElement}\n </label>\n {labelEnd}\n </>\n ),\n type: \"label\",\n };\n}\n\ninterface DefaultArrayRendererOptions {\n className?: string;\n removableClass?: string;\n childClass?: string;\n removableChildClass?: string;\n removeActionClass?: string;\n addActionClass?: string;\n}\n\nexport function createDefaultArrayRenderer(\n options?: DefaultArrayRendererOptions,\n): ArrayRendererRegistration {\n const {\n className,\n removableClass,\n childClass,\n removableChildClass,\n removeActionClass,\n addActionClass,\n } = options ?? {};\n function render(\n {\n childCount,\n renderChild,\n addAction,\n removeAction,\n childKey,\n required,\n }: ArrayRendererProps,\n { renderAction }: FormRenderer,\n ) {\n const showRemove = !required || childCount > 1;\n return (\n <div>\n <div className={clsx(className, removeAction && removableClass)}>\n {Array.from({ length: childCount }, (_, x) =>\n removeAction ? (\n <Fragment key={childKey(x)}>\n <div className={clsx(childClass, removableChildClass)}>\n {renderChild(x)}\n </div>\n <div className={removeActionClass}>\n {showRemove && renderAction(removeAction(x))}\n </div>\n </Fragment>\n ) : (\n <div key={childKey(x)} className={childClass}>\n {renderChild(x)}\n </div>\n ),\n )}\n </div>\n {addAction && (\n <div className={addActionClass}>{renderAction(addAction)}</div>\n )}\n </div>\n );\n }\n return { render, type: \"array\" };\n}\n\ninterface StyleProps {\n className?: string;\n style?: CSSProperties;\n}\n\ninterface DefaultGroupRendererOptions {\n className?: string;\n standardClassName?: string;\n gridStyles?: (columns: GridRenderer) => StyleProps;\n gridClassName?: string;\n defaultGridColumns?: number;\n}\n\nexport function createDefaultGroupRenderer(\n options?: DefaultGroupRendererOptions,\n): GroupRendererRegistration {\n const {\n className,\n gridStyles = defaultGridStyles,\n defaultGridColumns = 2,\n gridClassName,\n standardClassName,\n } = options ?? {};\n\n function defaultGridStyles({\n columns = defaultGridColumns,\n }: GridRenderer): StyleProps {\n return {\n className: gridClassName,\n style: {\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n },\n };\n }\n\n function render(props: GroupRendererProps) {\n const { childCount, renderChild, renderOptions } = props;\n\n const { style, className: gcn } = isGridRenderer(renderOptions)\n ? gridStyles(renderOptions)\n : ({ className: standardClassName } as StyleProps);\n return (\n <div className={clsx(className, gcn)} style={style}>\n {Array.from({ length: childCount }, (_, x) => renderChild(x))}\n </div>\n );\n }\n return { type: \"group\", render };\n}\n\nexport interface DefaultDisplayRendererOptions {\n textClassName?: string;\n htmlClassName?: string;\n}\nexport function createDefaultDisplayRenderer(\n options: DefaultDisplayRendererOptions = {},\n): DisplayRendererRegistration {\n return {\n render: ({ data }) => {\n switch (data.type) {\n case DisplayDataType.Text:\n return (\n <div className={options.textClassName}>\n {(data as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n className={options.htmlClassName}\n dangerouslySetInnerHTML={{\n __html: (data as HtmlDisplay).html,\n }}\n />\n );\n default:\n return <h1>Unknown display type: {data.type}</h1>;\n }\n },\n type: \"display\",\n };\n}\n\nexport const DefaultBoolOptions: FieldOption[] = [\n { name: \"Yes\", value: true },\n { name: \"No\", value: false },\n];\ninterface DefaultDataRendererOptions {\n inputClass?: string;\n selectOptions?: SelectRendererOptions;\n booleanOptions?: FieldOption[];\n optionRenderer?: DataRendererRegistration;\n}\n\nexport function createDefaultDataRenderer(\n options: DefaultDataRendererOptions = {},\n): DataRendererRegistration {\n const selectRenderer = createSelectRenderer(options.selectOptions ?? {});\n const { inputClass, booleanOptions, optionRenderer } = {\n optionRenderer: selectRenderer,\n booleanOptions: DefaultBoolOptions,\n ...options,\n };\n return createDataRenderer((props, asArray, renderers) => {\n if (asArray) {\n return asArray();\n }\n let renderType = props.renderOptions.type;\n const fieldType = props.field.type;\n if (fieldType == FieldType.Any) return <>No control for Any</>;\n const isBool = fieldType === FieldType.Bool;\n if (booleanOptions != null && isBool && props.options == null) {\n return renderers.renderData(\n { ...props, options: booleanOptions },\n undefined,\n );\n }\n if (renderType === DataRenderType.Standard && hasOptions(props)) {\n return optionRenderer.render(props, undefined, renderers);\n }\n switch (renderType) {\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, undefined, renderers);\n }\n return renderType === DataRenderType.Checkbox ? (\n <Fcheckbox control={props.control} />\n ) : (\n <ControlInput\n className={inputClass}\n id={props.id}\n readOnly={props.readonly}\n control={props.control}\n convert={createInputConversion(props.field.type)}\n />\n );\n });\n}\n\nexport function ControlInput({\n control,\n convert,\n ...props\n}: React.InputHTMLAttributes<HTMLInputElement> & {\n control: Control<any>;\n convert: InputConversion;\n}) {\n const { errorText, value, onChange, ...inputProps } =\n formControlProps(control);\n return (\n <input\n {...inputProps}\n type={convert[0]}\n value={value == null ? \"\" : convert[2](value)}\n onChange={(e) => {\n control.value = convert[1](e.target.value);\n }}\n {...props}\n />\n );\n}\n\nexport interface DefaultAdornmentRendererOptions {}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n return {\n type: \"adornment\",\n render: ({ adornment }) => ({ apply: () => {}, priority: 0, adornment }),\n };\n}\n\nexport interface DefaultLayoutRendererOptions {\n className?: string;\n errorClass?: string;\n}\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\n layout?: DefaultLayoutRendererOptions;\n}\n\nexport function createDefaultRenderers(\n options: DefaultRendererOptions = {},\n): DefaultRenderers {\n return {\n data: createDefaultDataRenderer(options.data),\n display: createDefaultDisplayRenderer(options.display),\n action: createDefaultActionRenderer(options.action),\n array: createDefaultArrayRenderer(options.array),\n group: createDefaultGroupRenderer(options.group),\n label: createDefaultLabelRenderer(options.label),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n renderLayout: createDefaultLayoutRenderer(options.layout),\n visibility: createDefaultVisibilityRenderer(),\n };\n}\n\nfunction createDefaultLayoutRenderer(\n options: DefaultLayoutRendererOptions = {},\n) {\n return createLayoutRenderer((props, renderers) => {\n return (\n <DefaultLayout\n layout={renderLayoutParts(props, renderers)}\n {...options}\n />\n );\n });\n}\n\nfunction createClassStyledRenderers() {\n return createDefaultRenderers({\n layout: { className: \"control\" },\n group: { className: \"group\" },\n array: { className: \"control-array\" },\n action: { className: \"action\" },\n data: { inputClass: \"data\" },\n display: { htmlClassName: \"html\", textClassName: \"text\" },\n });\n}\n\nfunction isAdornmentRegistration(\n x: RendererRegistration,\n): x is AdornmentRendererRegistration {\n return x.type === \"adornment\";\n}\n\nfunction isDataRegistration(\n x: RendererRegistration,\n): x is DataRendererRegistration {\n return x.type === \"data\";\n}\n\nfunction isGroupRegistration(\n x: RendererRegistration,\n): x is GroupRendererRegistration {\n return x.type === \"group\";\n}\n\nfunction isLabelRegistration(\n x: RendererRegistration,\n): x is LabelRendererRegistration {\n return x.type === \"label\";\n}\n\nfunction isLayoutRegistration(\n x: RendererRegistration,\n): x is LayoutRendererRegistration {\n return x.type === \"layout\";\n}\n\nfunction isVisibilityRegistration(\n x: RendererRegistration,\n): x is VisibilityRendererRegistration {\n return x.type === \"visibility\";\n}\n\nfunction isActionRegistration(\n x: RendererRegistration,\n): x is ActionRendererRegistration {\n return x.type === \"action\";\n}\n\nfunction isDisplayRegistration(\n x: RendererRegistration,\n): x is DisplayRendererRegistration {\n return x.type === \"display\";\n}\n\nfunction isArrayRegistration(\n x: RendererRegistration,\n): x is ArrayRendererRegistration {\n return x.type === \"array\";\n}\nfunction isOneOf<A>(x: A | A[] | undefined, v: A) {\n return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;\n}\n\nexport function createLayoutRenderer(\n render: LayoutRendererRegistration[\"render\"],\n options?: Partial<LayoutRendererRegistration>,\n): LayoutRendererRegistration {\n return { type: \"layout\", render, ...options };\n}\n\nexport function createArrayRenderer(\n render: ArrayRendererRegistration[\"render\"],\n options?: Partial<ArrayRendererRegistration>,\n): ArrayRendererRegistration {\n return { type: \"array\", render, ...options };\n}\n\nexport function createDataRenderer(\n render: DataRendererRegistration[\"render\"],\n options?: Partial<DataRendererRegistration>,\n): DataRendererRegistration {\n return { type: \"data\", render, ...options };\n}\n\nexport function createLabelRenderer(\n render: LabelRendererRegistration[\"render\"],\n options?: Omit<LabelRendererRegistration, \"type\">,\n): LabelRendererRegistration {\n return { type: \"label\", render, ...options };\n}\n\nexport function createVisibilityRenderer(\n render: VisibilityRendererRegistration[\"render\"],\n options?: Partial<VisibilityRendererRegistration>,\n): VisibilityRendererRegistration {\n return { type: \"visibility\", render, ...options };\n}\n\nexport function createAdornmentRenderer(\n render: (props: AdornmentProps) => AdornmentRenderer,\n options?: Partial<AdornmentRendererRegistration>,\n): AdornmentRendererRegistration {\n return { type: \"adornment\", ...options, render };\n}\n\nexport interface SelectRendererOptions {\n className?: string;\n emptyText?: string;\n requiredText?: string;\n}\n\nexport function createSelectRenderer(options: SelectRendererOptions = {}) {\n return createDataRenderer(\n (props, asArray) => (\n <SelectDataRenderer\n className={options.className}\n state={props.control}\n id={props.id}\n options={props.options!}\n required={props.required}\n emptyText={options.emptyText}\n requiredText={options.requiredText}\n convert={createSelectConversion(props.field.type)}\n />\n ),\n {\n options: true,\n },\n );\n}\n\ntype SelectConversion = (a: any) => string | number;\n\ninterface SelectDataRendererProps {\n id?: string;\n className?: string;\n options: {\n name: string;\n value: any;\n disabled?: boolean;\n }[];\n emptyText?: string;\n requiredText?: string;\n required: boolean;\n state: Control<any>;\n convert: SelectConversion;\n}\n\nexport function SelectDataRenderer({\n state,\n options,\n className,\n convert,\n required,\n emptyText = \"N/A\",\n requiredText = \"<please select>\",\n ...props\n}: SelectDataRendererProps) {\n const { value, disabled } = state;\n const [showEmpty] = useState(!required || value == null);\n const optionStringMap = useMemo(\n () => Object.fromEntries(options.map((x) => [convert(x.value), x.value])),\n [options],\n );\n return (\n <select\n {...props}\n className={className}\n onChange={(v) => (state.value = optionStringMap[v.target.value])}\n value={convert(value)}\n disabled={disabled}\n >\n {showEmpty && (\n <option value=\"\">{required ? requiredText : emptyText}</option>\n )}\n {options.map((x, i) => (\n <option key={i} value={convert(x.value)} disabled={x.disabled}>\n {x.name}\n </option>\n ))}\n </select>\n );\n}\n\nexport function createSelectConversion(ft: string): SelectConversion {\n switch (ft) {\n case FieldType.String:\n case FieldType.Int:\n case FieldType.Double:\n return (a) => a;\n default:\n return (a) => a?.toString() ?? \"\";\n }\n}\n\ntype InputConversion = [string, (s: any) => any, (a: any) => string | number];\n\nexport function createInputConversion(ft: string): InputConversion {\n switch (ft) {\n case FieldType.String:\n return [\"text\", (a) => a, (a) => a];\n case FieldType.Bool:\n return [\"text\", (a) => a === \"true\", (a) => a?.toString() ?? \"\"];\n case FieldType.Int:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseInt(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n case FieldType.Date:\n return [\"date\", (a) => a, (a) => a];\n case FieldType.Double:\n return [\"number\", (a) => parseFloat(a), (a) => a];\n default:\n return [\"text\", (a) => a, (a) => a];\n }\n}\n\nexport function createDefaultVisibilityRenderer() {\n return createVisibilityRenderer((cv, ch) => (\n <DefaultVisibility visibility={cv} children={ch} />\n ));\n}\n\nexport function DefaultVisibility({\n visibility,\n children,\n}: {\n visibility: Control<Visibility | undefined>;\n children: () => ReactNode;\n}) {\n const v = visibility.value;\n useEffect(() => {\n if (v) {\n visibility.setValue((ex) => ({ visible: v.visible, showing: v.visible }));\n }\n }, [v?.visible]);\n return v?.visible ? children() : <></>;\n}\n\nexport function DefaultLayout({\n className,\n errorClass,\n layout: { controlEnd, controlStart, label, children, errorControl },\n}: DefaultLayoutRendererOptions & {\n layout: RenderedLayout;\n}) {\n const ec = errorControl;\n const errorText = ec && ec.touched ? ec.error : undefined;\n const refCb = useCallback(\n (e: HTMLDivElement | null) => {\n if (ec) ec.meta.scrollElement = e;\n },\n [ec],\n );\n return (\n <div className={className} ref={refCb}>\n {label}\n {controlStart}\n {children}\n {errorText && <div className={errorClass}>{errorText}</div>}\n {controlEnd}\n </div>\n );\n}\n","import React from \"react\";\nimport { DefaultRendererOptions } from \"./renderers\";\n\nexport const defaultTailwindTheme: DefaultRendererOptions = {\n label: {\n groupLabelClass: \"font-bold\",\n requiredElement: <span className=\"text-red-500\"> *</span>,\n },\n array: {\n removableClass: \"grid grid-cols-[1fr_auto] items-center gap-x-2\",\n childClass: \"grow my-2\",\n addActionClass: \"my-2\",\n },\n group: {\n standardClassName: \"space-y-4\",\n gridClassName: \"gap-x-2 gap-y-4\",\n },\n action: {\n className: \"bg-primary rounded-lg p-3 text-white\",\n },\n layout: {\n className: \"flex flex-col\",\n errorClass: \"text-sm text-danger-500\",\n },\n};\n"],"names":["FieldType","ControlDefinitionType","DynamicPropertyType","ExpressionType","AdornmentPlacement","ControlAdornmentType","DataRenderType","SyncTextType","GroupRenderType","DisplayDataType","ValidatorType","DateComparison","isDataControlDefinition","x","type","Data","isGroupControlsDefinition","Group","isDisplayControlsDefinition","Display","isActionControlsDefinition","Action","visitControlDefinition","visitor","defaultValue","action","data","display","group","isGridRenderer","options","Grid","buildSchema","def","Object","entries","map","stringField","displayName","makeScalarField","_extends","String","stringOptionsField","slice","call","arguments","withScalarOptions","v","n","defaultScalarField","makeCompoundField","defaultCompoundField","intField","Int","boolField","Bool","compoundField","fields","other","field","children","collection","Compound","applyDefaultValues","defaultValueForFields","applyValue","filter","isCompoundField","length","out","forEach","applyDefaultForField","defaultValueForField","parent","notElement","required","treeChildren","fromEntries","sf","undefined","isRequired","childValue","notNullable","elementValueForField","findScalarField","findField","findCompoundField","find","isScalarField","isDataControl","c","isGroupControl","fieldHasTag","tag","_field$tags","Boolean","tags","includes","fieldDisplayName","_field$displayName","hasOptions","o","_o$options$length","_o$options","defaultControlForField","title","groupOptions","hideTitle","_sf$tags","htmlEditor","renderOptions","HtmlEditor","Standard","findReferencedControl","control","_control$children","findReferencedControlInArray","controls","_iterator","_createForOfIteratorHelperLoose","_step","done","value","ref","addMissingControls","changes","flatMap","existing","changedCompounds","_cf$children","ex","cf","concat","useUpdatedRef","a","r","useRef","current","isControlReadonly","readonly","getTypeField","context","_context$groupControl","typeSchemaField","isTypeField","groupControl","visitControlDataArray","cb","_iterator2","_step2","visitControlData","definition","ctx","processData","d","fieldName","fieldData","result","_iterator3","_control$elements","elements","_step3","elemResult","cfResult","cleanDataForSchema","typeField","typeValue","cleanableFields","_x$onlyForTypes$lengt","_x$onlyForTypes","onlyForTypes","_x$onlyForTypes2","canBeNull","childFields","Array","isArray","cv","dataControl","textDisplayControl","text","displayData","Text","htmlDisplayControl","html","Html","dynamicDefaultValue","expr","DefaultValue","dynamicReadonly","Readonly","dynamicVisibility","Visible","dynamicDisabled","Disabled","fieldEqExpr","FieldValue","jsonataExpr","expression","Jsonata","groupedControl","compoundControl","createAction","actionId","onClick","actionText","emptyGroupDefinition","useControlDefinitionForSchema","useMemo","_definition$children","useCalculatedControl","calculate","useControl","useControlEffect","useEvalVisibilityHook","useEvalExpressionHook","schemaField","useEvalDynamicHook","useCallback","_dynamicVisibility","useComputed","matchesType","useEvalReadonlyHook","useEvalDisabledHook","useEvalDefaultValueHook","dynamicValue","_dynamicValue","_r$current","calcDefault","_ref","dcv","useFieldValueExpression","fvExpr","refField","otherField","fv","defaultEvalHooks","useJsonataExpression","defaultUseEvalExpressionHook","makeEvalExpressionHook","f","_definition$dynamic","dynamic","types","jExpr","compiledExpr","jsonata","Promise","resolve","evaluate","then","_compiledExpr$evaluat","e","reject","useValidationHook","_definition$validator","_definition$validator2","validatorTypes","validators","hidden","groupContext","_dd$validators","dd","useValueChangeEffect","setError","useValidator","i","useJsonataValidator","Date","useDateValidator","errorMsg","msg","dv","comparisonDate","fixedDate","parse","nowDate","UTC","getFullYear","getMonth","getDate","daysFromCurrent","selDate","notAfter","comparison","NotAfter","toDateString","AppendAdornmentPriority","WrapAdornmentPriority","LabelType","useControlRenderer","renderer","_options$useDataHook","_options$useEvalExpre","dataProps","useDataHook","defaultDataProps","useExpr","lookupSchemaField","useDefaultValue","useIsVisible","useIsReadonly","useIsDisabled","useValidation","Component","parentControl","stopTracking","useComponentTracking","_c$children$map","_c$children","_definition$adornment","_definition$adornment2","readonlyControl","disabledControl","visibleControl","visible","visibility","showing","setValue","defaultValueControl","_getControlData","getControlData","childContext","isNull","_ref2","vc","cd","pn","clearHidden","myOptions","_visibility$fields","disabled","childRenderers","useEffect","React","createElement","Fragment","adornments","renderAdornment","adornment","labelAndChildren","renderControlLayout","k","props","RenderChild","key","renderVisibility","renderLayout","parentContext","_parentContext$groupC","_parentContext$groupC2","childControl","newControl","renderArray","noun","arrayControl","renderChild","_arrayControl$element","elems","childCount","addAction","addElement","childKey","uniqueId","removeAction","removeElement","groupProps","_field$options$length","_field$options","_definition$renderOpt","id","childRenderer","dataOptions","renderData","_c$groupOptions2","_c$groupOptions","renderGroup","label","hide","_c$title","renderAction","_c$displayData","renderDisplay","controlTitle","Control","compoundRenderer","errorControl","labelText","processLayout","scalarRenderer","forId","ci","appendMarkup","markup","layout","wrapMarkup","wrap","layoutKeyForPlacement","pos","ControlEnd","ControlStart","LabelStart","LabelEnd","appendMarkupAt","wrapMarkupAt","renderLayoutParts","_props$processLayout","_processed$adornments","processed","sort","b","priority","apply","l","renderLabel","labelStart","labelEnd","createFormRenderer","customRenderers","defaultRenderers","_customRenderers$find","createClassStyledRenderers","dataRegistrations","isDataRegistration","groupRegistrations","isGroupRegistration","adornmentRegistrations","isAdornmentRegistration","displayRegistrations","isDisplayRegistration","labelRenderers","isLabelRegistration","arrayRenderers","isArrayRegistration","actionRenderers","isActionRegistration","layoutRenderers","isLayoutRegistration","visibilityRenderer","isVisibilityRegistration","formRenderers","render","_layoutRenderers$find","match","_adornmentRegistratio","isOneOf","adornmentType","_arrayRenderers$","array","_labelRenderers$find","labelType","asArray","_dataRegistrations$fi","renderType","_x$collection","_field$collection","_x$options","schemaType","_groupRegistrations$f","_actionRenderers$find","actionType","_displayRegistrations","createDefaultActionRenderer","className","createDefaultLabelRenderer","requiredElement","_options","groupLabelClass","htmlFor","clsx","createDefaultArrayRenderer","removableClass","childClass","removableChildClass","removeActionClass","addActionClass","_ref3","_ref4","showRemove","from","_","createDefaultGroupRenderer","_ref5","_ref5$gridStyles","gridStyles","defaultGridStyles","_ref5$defaultGridColu","defaultGridColumns","gridClassName","standardClassName","_ref6","_ref6$columns","columns","style","gridTemplateColumns","_ref7","gcn","createDefaultDisplayRenderer","_ref8","textClassName","htmlClassName","dangerouslySetInnerHTML","__html","DefaultBoolOptions","name","createDefaultDataRenderer","_options$selectOption","selectRenderer","createSelectRenderer","selectOptions","_optionRenderer$boole","optionRenderer","booleanOptions","inputClass","createDataRenderer","renderers","fieldType","Any","isBool","Dropdown","Checkbox","Fcheckbox","ControlInput","readOnly","convert","createInputConversion","_ref9","_effect","_useComponentTracking","_objectWithoutPropertiesLoose","_excluded","_formControlProps","formControlProps","errorText","onChange","inputProps","_excluded2","target","createDefaultAdornmentRenderer","_ref10","createDefaultRenderers","createDefaultLayoutRenderer","createDefaultVisibilityRenderer","createLayoutRenderer","DefaultLayout","createArrayRenderer","createLabelRenderer","createVisibilityRenderer","createAdornmentRenderer","SelectDataRenderer","state","emptyText","requiredText","createSelectConversion","_ref11","_effect2","_ref11$emptyText","_ref11$requiredText","_excluded3","_useState","useState","showEmpty","optionStringMap","ft","Double","_a$toString","toString","_a$toString2","parseInt","parseFloat","ch","DefaultVisibility","_ref12","_effect3","_ref13","_effect4","errorClass","_ref13$layout","controlEnd","controlStart","ec","touched","error","refCb","meta","scrollElement","defaultTailwindTheme"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/types.ts","../src/schemaBuilder.ts","../src/util.ts","../src/controlBuilder.ts","../src/internal.ts","../src/hooks.tsx","../src/validators.ts","../src/controlRender.tsx","../src/renderers.tsx","../src/tailwind.tsx"],"sourcesContent":["export interface SchemaField {\n type: string;\n field: string;\n displayName?: string | null;\n tags?: string[] | null;\n system?: boolean | null;\n collection?: boolean | null;\n onlyForTypes?: string[] | null;\n required?: boolean | null;\n notNullable?: boolean | null;\n defaultValue?: any;\n isTypeField?: boolean | null;\n searchable?: boolean | null;\n options?: FieldOption[] | null;\n validators?: SchemaValidator[] | null;\n}\n\nexport enum FieldType {\n String = \"String\",\n Bool = \"Bool\",\n Int = \"Int\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n Double = \"Double\",\n EntityRef = \"EntityRef\",\n Compound = \"Compound\",\n AutoId = \"AutoId\",\n Image = \"Image\",\n Any = \"Any\",\n}\n\nexport interface EntityRefField extends SchemaField {\n type: FieldType.EntityRef;\n entityRefType: string;\n parentField: string;\n}\n\nexport interface FieldOption {\n name: string;\n value: any;\n}\n\nexport interface CompoundField extends SchemaField {\n type: FieldType.Compound;\n children: SchemaField[];\n treeChildren?: boolean;\n}\n\nexport type AnyControlDefinition =\n | DataControlDefinition\n | GroupedControlsDefinition\n | ActionControlDefinition\n | DisplayControlDefinition;\n\nexport interface ControlDefinition {\n type: string;\n title?: 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}\n\nexport interface EntityExpression {\n type: string;\n}\n\nexport enum ExpressionType {\n Jsonata = \"Jsonata\",\n FieldValue = \"FieldValue\",\n UserMatch = \"UserMatch\",\n}\n\nexport interface JsonataExpression extends EntityExpression {\n type: ExpressionType.Jsonata;\n expression: string;\n}\n\nexport interface FieldValueExpression extends EntityExpression {\n type: ExpressionType.FieldValue;\n field: string;\n value: any;\n}\n\nexport interface UserMatchExpression extends EntityExpression {\n type: ExpressionType.UserMatch;\n userMatch: string;\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}\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;\n}\n\nexport interface HelpTextAdornment extends ControlAdornment {\n type: ControlAdornmentType.HelpText;\n helpText: string;\n placement: AdornmentPlacement;\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 readonly?: boolean | null;\n validators?: SchemaValidator[] | null;\n hideTitle?: boolean | null;\n}\n\nexport interface RenderOptions {\n type: string;\n}\n\nexport enum DataRenderType {\n Standard = \"Standard\",\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}\n\nexport interface RadioButtonRenderOptions extends RenderOptions {\n type: DataRenderType.Radio;\n}\n\nexport interface StandardRenderer extends RenderOptions {\n type: DataRenderType.Standard;\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}\n\nexport interface IconListRenderOptions extends RenderOptions {\n type: DataRenderType.IconList;\n iconMappings: IconMapping[];\n}\n\nexport interface IconMapping {\n value: string;\n materialIcon?: string | null;\n}\n\nexport interface CheckListRenderOptions extends RenderOptions {\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 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}\n\nexport enum GroupRenderType {\n Standard = \"Standard\",\n Grid = \"Grid\",\n GroupElement = \"GroupElement\",\n}\n\nexport interface StandardGroupRenderer extends GroupRenderOptions {\n type: GroupRenderType.Standard;\n}\n\nexport interface GroupElementRenderer extends GroupRenderOptions {\n type: GroupRenderType.GroupElement;\n value: any;\n}\n\nexport interface GridRenderer extends GroupRenderOptions {\n type: GroupRenderType.Grid;\n columns?: number | 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}\n\nexport interface TextDisplay extends DisplayData {\n type: DisplayDataType.Text;\n text: string;\n}\n\nexport interface HtmlDisplay extends DisplayData {\n type: DisplayDataType.Html;\n html: string;\n}\n\nexport interface ActionControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Action;\n actionId: string;\n}\n\nexport enum ValidatorType {\n Jsonata = \"Jsonata\",\n Date = \"Date\",\n}\nexport interface SchemaValidator {\n type: string;\n}\n\nexport interface JsonataValidator extends SchemaValidator {\n type: ValidatorType.Jsonata;\n expression: string;\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 isDataControlDefinition(\n x: ControlDefinition,\n): x is DataControlDefinition {\n return x.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControlsDefinition(\n x: ControlDefinition,\n): x is GroupedControlsDefinition {\n return x.type === ControlDefinitionType.Group;\n}\n\nexport function isDisplayControlsDefinition(\n x: ControlDefinition,\n): x is DisplayControlDefinition {\n return x.type === ControlDefinitionType.Display;\n}\n\nexport function isActionControlsDefinition(\n x: ControlDefinition,\n): x is ActionControlDefinition {\n return x.type === ControlDefinitionType.Action;\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 GridRenderer {\n return options.type === GroupRenderType.Grid;\n}\n","import { CompoundField, FieldOption, FieldType, SchemaField } from \"./types\";\n\ntype AllowedSchema<T> = T extends string\n ? SchemaField & {\n type: FieldType.String | FieldType.Date | FieldType.DateTime;\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 function stringField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>,\n) {\n return makeScalarField({\n type: FieldType.String as const,\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<S extends SchemaField>(\n options: Partial<SchemaField>,\n v: (name: string) => S,\n): (name: string) => S {\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(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>,\n) {\n return makeScalarField({\n type: FieldType.Int as const,\n displayName,\n ...options,\n });\n}\n\nexport function boolField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>,\n) {\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","import {\n ActionControlDefinition,\n CompoundField,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n DisplayControlDefinition,\n FieldOption,\n FieldType,\n GridRenderer,\n GroupedControlsDefinition,\n GroupRenderType,\n SchemaField,\n visitControlDefinition,\n} from \"./types\";\nimport { MutableRefObject, useRef } from \"react\";\nimport { Control } from \"@react-typed-forms/core\";\n\nexport interface ControlGroupContext {\n groupControl: Control<any>;\n fields: SchemaField[];\n}\n\nexport function applyDefaultValues(\n v: { [k: string]: any } | undefined,\n fields: SchemaField[],\n): any {\n if (!v) return defaultValueForFields(fields);\n const applyValue = fields.filter(\n (x) => isCompoundField(x) || !(x.field in v),\n );\n if (!applyValue.length) return v;\n const out = { ...v };\n applyValue.forEach((x) => {\n out[x.field] =\n x.field in v\n ? applyDefaultForField(v[x.field], x, fields)\n : defaultValueForField(x);\n });\n return out;\n}\n\nexport function applyDefaultForField(\n v: any,\n field: SchemaField,\n parent: SchemaField[],\n notElement?: boolean,\n): any {\n if (field.collection && !notElement) {\n return ((v as any[]) ?? []).map((x) =>\n applyDefaultForField(x, field, parent, true),\n );\n }\n if (isCompoundField(field)) {\n if (!v && !field.required) return v;\n return applyDefaultValues(v, field.treeChildren ? parent : field.children);\n }\n return defaultValueForField(field);\n}\n\nexport function defaultValueForFields(fields: SchemaField[]): any {\n return Object.fromEntries(\n fields.map((x) => [x.field, defaultValueForField(x)]),\n );\n}\n\nexport function defaultValueForField(\n sf: SchemaField,\n required?: boolean | null,\n): any {\n if (sf.defaultValue !== undefined) return sf.defaultValue;\n const isRequired = !!(required || sf.required);\n if (isCompoundField(sf)) {\n if (isRequired) {\n const childValue = defaultValueForFields(sf.children);\n return sf.collection ? [childValue] : childValue;\n }\n return sf.notNullable ? (sf.collection ? [] : {}) : undefined;\n }\n if (sf.collection) {\n return [];\n }\n return undefined;\n}\n\nexport function elementValueForField(sf: SchemaField): any {\n if (isCompoundField(sf)) {\n return defaultValueForFields(sf.children);\n }\n return sf.defaultValue;\n}\n\nexport function findScalarField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return findField(fields, field);\n}\n\nexport function findCompoundField(\n fields: SchemaField[],\n field: string,\n): CompoundField | undefined {\n return findField(fields, field) as CompoundField | undefined;\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 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 fieldHasTag(field: SchemaField, tag: string) {\n return Boolean(field.tags?.includes(tag));\n}\n\nexport function fieldDisplayName(field: SchemaField) {\n return field.displayName ?? field.field;\n}\n\nexport function hasOptions(o: { options: FieldOption[] | undefined | null }) {\n return (o.options?.length ?? 0) > 0;\n}\n\nexport function defaultControlForField(\n sf: SchemaField,\n): DataControlDefinition | GroupedControlsDefinition {\n if (isCompoundField(sf)) {\n return {\n type: ControlDefinitionType.Group,\n title: sf.displayName,\n compoundField: sf.field,\n groupOptions: {\n type: GroupRenderType.Grid,\n hideTitle: false,\n } as GridRenderer,\n children: sf.children.map(defaultControlForField),\n } satisfies GroupedControlsDefinition;\n } else if (isScalarField(sf)) {\n const htmlEditor = sf.tags?.includes(\"_HtmlEditor\");\n return {\n type: ControlDefinitionType.Data,\n title: sf.displayName,\n field: sf.field,\n required: sf.required,\n renderOptions: {\n type: htmlEditor ? DataRenderType.HtmlEditor : DataRenderType.Standard,\n },\n } satisfies DataControlDefinition;\n }\n throw \"Unknown schema field\";\n}\nfunction findReferencedControl(\n field: string,\n control: ControlDefinition,\n): ControlDefinition | undefined {\n if (isDataControl(control) && field === control.field) return control;\n if (isGroupControl(control)) {\n if (control.compoundField)\n return field === control.compoundField ? control : undefined;\n return findReferencedControlInArray(field, control.children ?? []);\n }\n return undefined;\n}\n\nfunction findReferencedControlInArray(\n field: string,\n controls: ControlDefinition[],\n): ControlDefinition | undefined {\n for (const c of controls) {\n const ref = findReferencedControl(field, c);\n if (ref) return ref;\n }\n return undefined;\n}\n\nexport function addMissingControls(\n fields: SchemaField[],\n controls: ControlDefinition[],\n): ControlDefinition[] {\n const changes: {\n field: SchemaField;\n existing: ControlDefinition | undefined;\n }[] = fields.flatMap((x) => {\n if (fieldHasTag(x, \"_NoControl\")) return [];\n const existing = findReferencedControlInArray(x.field, controls);\n if (!existing || isCompoundField(x)) return { field: x, existing };\n return [];\n });\n const changedCompounds = controls.map((x) => {\n const ex = changes.find((c) => c.existing === x);\n if (!ex) return x;\n const cf = x as GroupedControlsDefinition;\n return {\n ...cf,\n children: addMissingControls(\n (ex.field as CompoundField).children,\n cf.children ?? [],\n ),\n };\n });\n return changedCompounds.concat(\n changes\n .filter((x) => !x.existing)\n .map((x) => defaultControlForField(x.field)),\n );\n}\n\nexport function useUpdatedRef<A>(a: A): MutableRefObject<A> {\n const r = useRef(a);\n r.current = a;\n return r;\n}\n\nexport function isControlReadonly(c: ControlDefinition): boolean {\n return isDataControl(c) && !!c.readonly;\n}\n\nexport function getTypeField(\n context: ControlGroupContext,\n): Control<string> | undefined {\n const typeSchemaField = context.fields.find((x) => x.isTypeField);\n return typeSchemaField\n ? context.groupControl.fields?.[typeSchemaField.field]\n : undefined;\n}\n\nexport function visitControlDataArray<A>(\n controls: ControlDefinition[] | undefined | null,\n context: ControlGroupContext,\n cb: (\n definition: DataControlDefinition,\n field: SchemaField,\n control: Control<any>,\n element: boolean,\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\nexport function visitControlData<A>(\n definition: ControlDefinition,\n ctx: ControlGroupContext,\n cb: (\n definition: DataControlDefinition,\n field: SchemaField,\n control: Control<any>,\n element: boolean,\n ) => A | undefined,\n): A | undefined {\n return visitControlDefinition<A | undefined>(\n definition,\n {\n data(def: DataControlDefinition) {\n return processData(def, def.field, def.children);\n },\n group(d: GroupedControlsDefinition) {\n return processData(undefined, d.compoundField, d.children);\n },\n action: () => undefined,\n display: () => undefined,\n },\n () => undefined,\n );\n\n function processData(\n def: DataControlDefinition | undefined,\n fieldName: string | undefined | null,\n children: ControlDefinition[] | null | undefined,\n ) {\n const fieldData = fieldName ? findField(ctx.fields, fieldName) : undefined;\n if (!fieldData)\n return !fieldName ? visitControlDataArray(children, ctx, cb) : undefined;\n\n const control = ctx.groupControl.fields[fieldData.field];\n const result = def ? cb(def, fieldData, control, false) : undefined;\n if (result !== undefined) return result;\n if (fieldData.collection) {\n for (const c of control.elements ?? []) {\n const elemResult = def ? cb(def, fieldData, c, true) : undefined;\n if (elemResult !== undefined) return elemResult;\n if (isCompoundField(fieldData)) {\n const cfResult = visitControlDataArray(\n children,\n { fields: fieldData.children, groupControl: c },\n cb,\n );\n if (cfResult !== undefined) return cfResult;\n }\n }\n }\n }\n}\n\nexport function cleanDataForSchema(\n v: { [k: string]: any } | undefined,\n fields: SchemaField[],\n): any {\n if (!v) return v;\n const typeField = fields.find((x) => x.isTypeField);\n if (!typeField) return v;\n const typeValue = v[typeField.field];\n const cleanableFields = fields.filter(\n (x) => isCompoundField(x) || (x.onlyForTypes?.length ?? 0) > 0,\n );\n if (!cleanableFields.length) return v;\n const out = { ...v };\n cleanableFields.forEach((x) => {\n const childValue = v[x.field];\n if (\n x.onlyForTypes?.includes(typeValue) === false ||\n (!x.notNullable && canBeNull())\n ) {\n delete out[x.field];\n return;\n }\n if (isCompoundField(x)) {\n const childFields = x.treeChildren ? fields : x.children;\n if (x.collection) {\n if (Array.isArray(childValue)) {\n out[x.field] = childValue.map((cv) =>\n cleanDataForSchema(cv, childFields),\n );\n }\n } else {\n out[x.field] = cleanDataForSchema(childValue, childFields);\n }\n }\n function canBeNull() {\n return (\n x.collection && Array.isArray(childValue) && !childValue.length\n //|| (x.type === FieldType.Bool && childValue === false)\n );\n }\n });\n return out;\n}\n","import {\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DisplayControlDefinition,\n DisplayDataType,\n DynamicProperty,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n FieldValueExpression,\n GroupedControlsDefinition,\n GroupRenderType,\n HtmlDisplay,\n JsonataExpression,\n SchemaField,\n TextDisplay,\n} from \"./types\";\nimport { ActionRendererProps } from \"./controlRender\";\nimport { useMemo } from \"react\";\nimport { addMissingControls } from \"./util\";\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 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 fieldEqExpr(field: string, value: any): FieldValueExpression {\n return { type: ExpressionType.FieldValue, field, value };\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,\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 createAction(\n actionId: string,\n onClick: () => void,\n actionText?: string,\n): ActionRendererProps {\n return { actionId, onClick, actionText: actionText ?? actionId };\n}\n\nexport const emptyGroupDefinition: GroupedControlsDefinition = {\n type: ControlDefinitionType.Group,\n children: [],\n groupOptions: { type: GroupRenderType.Standard, hideTitle: true },\n};\n\nexport function useControlDefinitionForSchema(\n sf: SchemaField[],\n definition: GroupedControlsDefinition = emptyGroupDefinition,\n): GroupedControlsDefinition {\n return useMemo<GroupedControlsDefinition>(\n () => ({\n ...definition,\n children: addMissingControls(sf, definition.children ?? []),\n }),\n [sf, definition],\n );\n}\n","import { Control, useControl, useControlEffect } from \"@react-typed-forms/core\";\n\nexport function useCalculatedControl<V>(calculate: () => V): Control<V> {\n const c = useControl(calculate);\n useControlEffect(calculate, (v) => (c.value = v));\n return c;\n}\n","import {\n ControlDefinition,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n FieldValueExpression,\n isDataControlDefinition,\n JsonataExpression,\n SchemaField,\n} from \"./types\";\nimport { useCallback, useMemo } from \"react\";\nimport {\n Control,\n useComputed,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\n\nimport {\n ControlGroupContext,\n defaultValueForField,\n findField,\n getTypeField,\n isControlReadonly,\n useUpdatedRef,\n} from \"./util\";\nimport jsonata from \"jsonata\";\nimport { useCalculatedControl } from \"./internal\";\n\nexport type UseEvalExpressionHook = (\n expr: EntityExpression | undefined,\n) => EvalExpressionHook | undefined;\n\nexport function useEvalVisibilityHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n schemaField?: SchemaField,\n): EvalExpressionHook<boolean> {\n const dynamicVisibility = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Visible,\n useEvalExpressionHook,\n );\n const r = useUpdatedRef(schemaField);\n return useCallback(\n (ctx) => {\n const schemaField = r.current;\n return (\n dynamicVisibility?.(ctx) ??\n useComputed(() => matchesType(ctx, schemaField?.onlyForTypes))\n );\n },\n [dynamicVisibility, r],\n );\n}\n\nexport function useEvalReadonlyHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<boolean> {\n const dynamicReadonly = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Readonly,\n useEvalExpressionHook,\n );\n const r = useUpdatedRef(definition);\n return useCallback(\n (ctx) => {\n if (dynamicReadonly) return dynamicReadonly(ctx);\n return useCalculatedControl(() => isControlReadonly(r.current));\n },\n [dynamicReadonly, r],\n );\n}\n\nexport function useEvalDisabledHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<boolean> {\n const dynamicDisabled = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Disabled,\n useEvalExpressionHook,\n );\n return useCallback(\n (ctx) => {\n if (dynamicDisabled) return dynamicDisabled(ctx);\n return useControl(false);\n },\n [dynamicDisabled],\n );\n}\n\nexport function useEvalDefaultValueHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n schemaField?: SchemaField,\n): EvalExpressionHook {\n const dynamicValue = useEvalDynamicHook(\n definition,\n DynamicPropertyType.DefaultValue,\n useEvalExpressionHook,\n );\n const r = useUpdatedRef({ definition, schemaField });\n return useCallback(\n (ctx) => {\n const { definition, schemaField } = r.current;\n return dynamicValue?.(ctx) ?? useComputed(calcDefault);\n function calcDefault() {\n const [required, dcv] = isDataControlDefinition(definition)\n ? [definition.required, definition.defaultValue]\n : [false, undefined];\n return (\n dcv ??\n (schemaField\n ? defaultValueForField(schemaField, required)\n : undefined)\n );\n }\n },\n [dynamicValue, r],\n );\n}\n\nexport type EvalExpressionHook<A = any> = (\n groupContext: ControlGroupContext,\n) => Control<A | undefined>;\n\nfunction useFieldValueExpression(\n fvExpr: FieldValueExpression,\n fields: SchemaField[],\n data: Control<any>,\n) {\n const refField = findField(fields, fvExpr.field);\n const otherField = refField ? data.fields[refField.field] : undefined;\n return useComputed(() => {\n const fv = otherField?.value;\n return Array.isArray(fv) ? fv.includes(fvExpr.value) : fv === fvExpr.value;\n });\n}\n\nexport function defaultEvalHooks(\n expr: EntityExpression,\n context: ControlGroupContext,\n) {\n switch (expr.type) {\n case ExpressionType.Jsonata:\n return useJsonataExpression(\n (expr as JsonataExpression).expression,\n context.groupControl,\n );\n case ExpressionType.FieldValue:\n return useFieldValueExpression(\n expr as FieldValueExpression,\n context.fields,\n context.groupControl,\n );\n default:\n return useControl(undefined);\n }\n}\n\nexport const defaultUseEvalExpressionHook =\n makeEvalExpressionHook(defaultEvalHooks);\n\nexport function makeEvalExpressionHook(\n f: (expr: EntityExpression, context: ControlGroupContext) => Control<any>,\n): (expr: EntityExpression | undefined) => EvalExpressionHook | undefined {\n return (expr) => {\n const r = useUpdatedRef(expr);\n const cb = useCallback(\n (ctx: ControlGroupContext) => {\n const expr = r.current!;\n return f(expr, ctx);\n },\n [expr?.type, r],\n );\n return expr ? cb : undefined;\n };\n}\n\nexport function useEvalDynamicHook(\n definition: ControlDefinition,\n type: DynamicPropertyType,\n useEvalExpressionHook: (\n expr: EntityExpression | undefined,\n ) => EvalExpressionHook | undefined,\n): EvalExpressionHook | undefined {\n const expression = definition.dynamic?.find((x) => x.type === type);\n return useEvalExpressionHook(expression?.expr);\n}\n\nexport function matchesType(\n context: ControlGroupContext,\n types?: string[] | null,\n) {\n if (types == null || types.length === 0) return true;\n const typeField = getTypeField(context);\n return typeField && types.includes(typeField.value);\n}\n\nexport function useJsonataExpression(\n jExpr: string,\n data: Control<any>,\n): Control<any> {\n const compiledExpr = useMemo(() => jsonata(jExpr), [jExpr]);\n const control = useControl();\n useControlEffect(\n () => data.value,\n async (v) => {\n control.value = await compiledExpr.evaluate(v);\n },\n true,\n );\n return control;\n}\n","import {\n ControlDefinition,\n DataControlDefinition,\n DateComparison,\n DateValidator,\n isDataControlDefinition,\n JsonataValidator,\n ValidatorType,\n} from \"./types\";\nimport {\n Control,\n useControlEffect,\n useValidator,\n useValueChangeEffect,\n} from \"@react-typed-forms/core\";\nimport { useCallback } from \"react\";\nimport { ControlGroupContext, useUpdatedRef } from \"./util\";\nimport { useJsonataExpression } from \"./hooks\";\n\nexport function useValidationHook(\n definition: ControlDefinition,\n): (\n control: Control<any>,\n hidden: boolean,\n groupContext: ControlGroupContext,\n) => void {\n const validatorTypes = isDataControlDefinition(definition)\n ? definition.validators?.map((x) => x.type) ?? []\n : null;\n const r = useUpdatedRef(definition as DataControlDefinition);\n return useCallback(\n (control, hidden, groupContext) => {\n if (!validatorTypes) return;\n const dd = r.current;\n\n useValueChangeEffect(control, () => control.setError(\"default\", \"\"));\n useValidator(\n control,\n (v) =>\n !hidden &&\n dd.required &&\n (v == null || v === \"\" || (Array.isArray(v) && v.length === 0))\n ? \"Please enter a value\"\n : null,\n \"required\",\n );\n (dd.validators ?? []).forEach((x, i) => {\n switch (x.type) {\n case ValidatorType.Jsonata:\n return useJsonataValidator(\n control,\n groupContext,\n x as JsonataValidator,\n hidden,\n i,\n );\n case ValidatorType.Date:\n return useDateValidator(control, x as DateValidator, i);\n }\n });\n },\n validatorTypes ? validatorTypes : [null],\n );\n}\n\nfunction useJsonataValidator(\n control: Control<any>,\n context: ControlGroupContext,\n expr: JsonataValidator,\n hidden: boolean,\n i: number,\n) {\n const errorMsg = useJsonataExpression(expr.expression, context.groupControl);\n useControlEffect(\n () => [hidden, errorMsg.value],\n ([hidden, msg]) => control.setError(\"jsonata\" + i, !hidden ? msg : null),\n true,\n );\n}\n\nfunction useDateValidator(\n control: Control<string | null | undefined>,\n dv: DateValidator,\n i: number,\n) {\n let comparisonDate: number;\n if (dv.fixedDate) {\n comparisonDate = Date.parse(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 useValidator(\n control,\n (v) => {\n if (v) {\n const selDate = Date.parse(v);\n const notAfter = dv.comparison === DateComparison.NotAfter;\n if (notAfter ? selDate > comparisonDate : selDate < comparisonDate) {\n return `Date must not be ${notAfter ? \"after\" : \"before\"} ${new Date(\n comparisonDate,\n ).toDateString()}`;\n }\n }\n return null;\n },\n \"date\" + i,\n );\n}\n","import React, {\n FC,\n Fragment,\n Key,\n ReactNode,\n useCallback,\n useEffect,\n} from \"react\";\nimport {\n addElement,\n Control,\n newControl,\n removeElement,\n useComponentTracking,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\nimport {\n AdornmentPlacement,\n ControlAdornment,\n ControlDefinition,\n DataControlDefinition,\n DisplayData,\n FieldOption,\n GroupRenderOptions,\n isActionControlsDefinition,\n isDataControlDefinition,\n isDisplayControlsDefinition,\n isGroupControlsDefinition,\n RenderOptions,\n SchemaField,\n} from \"./types\";\nimport {\n ControlGroupContext,\n elementValueForField,\n fieldDisplayName,\n findField,\n isCompoundField,\n useUpdatedRef,\n} from \"./util\";\nimport { dataControl } from \"./controlBuilder\";\nimport {\n defaultUseEvalExpressionHook,\n useEvalDefaultValueHook,\n useEvalDisabledHook,\n UseEvalExpressionHook,\n useEvalReadonlyHook,\n useEvalVisibilityHook,\n} from \"./hooks\";\nimport { useValidationHook } from \"./validators\";\nimport { useCalculatedControl } from \"./internal\";\n\nexport interface FormRenderer {\n renderData: (\n props: DataRendererProps,\n asArray: (() => ReactNode) | undefined,\n ) => (layout: ControlLayoutProps) => ControlLayoutProps;\n renderGroup: (props: GroupRendererProps) => ReactNode;\n renderDisplay: (props: DisplayRendererProps) => ReactNode;\n renderAction: (props: ActionRendererProps) => ReactNode;\n renderArray: (props: ArrayRendererProps) => ReactNode;\n renderAdornment: (props: AdornmentProps) => AdornmentRenderer;\n renderLabel: (\n props: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n ) => ReactNode;\n renderLayout: (props: ControlLayoutProps) => ReactNode;\n renderVisibility: (\n control: Control<Visibility | undefined>,\n children: () => ReactNode,\n ) => ReactNode;\n}\n\nexport interface DisplayRendererProps {\n data: DisplayData;\n}\nexport interface AdornmentProps {\n adornment: ControlAdornment;\n}\n\nexport const AppendAdornmentPriority = 0;\nexport const WrapAdornmentPriority = 1000;\n\nexport interface AdornmentRenderer {\n apply(children: RenderedLayout): void;\n adornment?: ControlAdornment;\n priority: number;\n}\n\nexport interface ArrayRendererProps {\n addAction?: ActionRendererProps;\n required: boolean;\n removeAction?: (childIndex: number) => ActionRendererProps;\n childCount: number;\n renderChild: (childIndex: number) => ReactNode;\n childKey: (childIndex: number) => Key;\n arrayControl?: Control<any[] | undefined | null>;\n}\nexport interface Visibility {\n visible: boolean;\n showing: boolean;\n}\n\nexport interface RenderedLayout {\n labelStart?: ReactNode;\n labelEnd?: ReactNode;\n controlStart?: ReactNode;\n controlEnd?: ReactNode;\n label?: ReactNode;\n children?: ReactNode;\n errorControl?: Control<any>;\n}\n\nexport interface ControlLayoutProps {\n label?: LabelRendererProps;\n errorControl?: Control<any>;\n adornments?: AdornmentRenderer[];\n children?: ReactNode;\n processLayout?: (props: ControlLayoutProps) => ControlLayoutProps;\n}\n\nexport enum LabelType {\n Control,\n Group,\n}\nexport interface LabelRendererProps {\n type: LabelType;\n hide?: boolean | null;\n label: ReactNode;\n required?: boolean | null;\n forId?: string;\n}\nexport interface GroupRendererProps {\n renderOptions: GroupRenderOptions;\n childCount: number;\n renderChild: (child: number) => ReactNode;\n}\n\nexport interface DataRendererProps {\n renderOptions: RenderOptions;\n field: SchemaField;\n id: string;\n control: Control<any>;\n readonly: boolean;\n required: boolean;\n options: FieldOption[] | undefined | null;\n hidden: boolean;\n}\n\nexport interface ActionRendererProps {\n actionId: string;\n actionText: string;\n onClick: () => void;\n}\n\nexport interface ControlRenderProps {\n control: Control<any>;\n}\n\nexport interface FormContextOptions {\n readonly?: boolean | null;\n hidden?: boolean | null;\n disabled?: boolean | null;\n}\n\nexport type CreateDataProps = (\n definition: DataControlDefinition,\n field: SchemaField,\n groupContext: ControlGroupContext,\n control: Control<any>,\n options: FormContextOptions,\n) => DataRendererProps;\nexport interface ControlRenderOptions extends FormContextOptions {\n useDataHook?: (c: ControlDefinition) => CreateDataProps;\n useEvalExpressionHook?: UseEvalExpressionHook;\n clearHidden?: boolean;\n}\nexport function useControlRenderer(\n definition: ControlDefinition,\n fields: SchemaField[],\n renderer: FormRenderer,\n options: ControlRenderOptions = {},\n): FC<ControlRenderProps> {\n const dataProps = options.useDataHook?.(definition) ?? defaultDataProps;\n const useExpr = options.useEvalExpressionHook ?? defaultUseEvalExpressionHook;\n\n const schemaField = lookupSchemaField(definition, fields);\n const useDefaultValue = useEvalDefaultValueHook(\n useExpr,\n definition,\n schemaField,\n );\n const useIsVisible = useEvalVisibilityHook(useExpr, definition, schemaField);\n const useIsReadonly = useEvalReadonlyHook(useExpr, definition);\n const useIsDisabled = useEvalDisabledHook(useExpr, definition);\n const useValidation = useValidationHook(definition);\n const r = useUpdatedRef({ options, definition, fields, schemaField });\n\n const Component = useCallback(\n ({ control: parentControl }: ControlRenderProps) => {\n const stopTracking = useComponentTracking();\n try {\n const { definition: c, options, fields, schemaField } = r.current;\n const groupContext: ControlGroupContext = {\n groupControl: parentControl,\n fields,\n };\n const readonlyControl = useIsReadonly(groupContext);\n const disabledControl = useIsDisabled(groupContext);\n const visibleControl = useIsVisible(groupContext);\n const visible = visibleControl.current.value;\n const visibility = useControl<Visibility | undefined>(() =>\n visible != null\n ? {\n visible,\n showing: visible,\n }\n : undefined,\n );\n useControlEffect(\n () => visibleControl.value,\n (visible) => {\n if (visible != null)\n visibility.setValue((ex) => ({\n visible,\n showing: ex ? ex.showing : visible,\n }));\n },\n );\n\n const defaultValueControl = useDefaultValue(groupContext);\n const [control, childContext] = getControlData(\n schemaField,\n groupContext,\n );\n useControlEffect(\n () => [\n visibility.value,\n defaultValueControl.value,\n control,\n parentControl.isNull,\n ],\n ([vc, dv, cd, pn]) => {\n if (pn) {\n parentControl.value = {};\n }\n if (vc && cd && vc.visible === vc.showing) {\n if (!vc.visible) {\n if (options.clearHidden) cd.value = undefined;\n } else if (cd.value == null) {\n cd.value = dv;\n }\n }\n },\n true,\n );\n const myOptions = useCalculatedControl<FormContextOptions>(() => ({\n hidden: options.hidden || !visibility.fields?.showing.value,\n readonly: options.readonly || readonlyControl.value,\n disabled: options.disabled || disabledControl.value,\n })).value;\n useValidation(control!, !!myOptions.hidden, groupContext);\n const childRenderers: FC<ControlRenderProps>[] =\n c.children?.map((cd) =>\n useControlRenderer(cd, childContext.fields, renderer, {\n ...options,\n ...myOptions,\n }),\n ) ?? [];\n useEffect(() => {\n if (control && typeof myOptions.disabled === \"boolean\")\n control.disabled = myOptions.disabled;\n }, [control, myOptions.disabled]);\n if (parentControl.isNull) return <></>;\n const adornments =\n definition.adornments?.map((x) =>\n renderer.renderAdornment({ adornment: x }),\n ) ?? [];\n const labelAndChildren = renderControlLayout(\n c,\n renderer,\n childRenderers.length,\n (k, i, props) => {\n const RenderChild = childRenderers[i];\n return <RenderChild key={k} {...props} />;\n },\n dataProps,\n myOptions,\n groupContext,\n control,\n schemaField,\n );\n return renderer.renderVisibility(visibility, () =>\n renderer.renderLayout({ ...labelAndChildren, adornments }),\n );\n } finally {\n stopTracking();\n }\n },\n [\n r,\n dataProps,\n useIsVisible,\n useDefaultValue,\n useIsReadonly,\n useIsDisabled,\n useValidation,\n renderer,\n ],\n );\n (Component as any).displayName = \"RenderControl\";\n return Component;\n}\nexport function lookupSchemaField(\n c: ControlDefinition,\n fields: SchemaField[],\n): SchemaField | undefined {\n const fieldName = isGroupControlsDefinition(c)\n ? c.compoundField\n : isDataControlDefinition(c)\n ? c.field\n : undefined;\n return fieldName ? findField(fields, fieldName) : undefined;\n}\nexport function getControlData(\n schemaField: SchemaField | undefined,\n parentContext: ControlGroupContext,\n): [Control<any> | undefined, ControlGroupContext] {\n const childControl: Control<any> | undefined = schemaField\n ? parentContext.groupControl.fields?.[schemaField.field] ?? newControl({})\n : undefined;\n return [\n childControl,\n schemaField && isCompoundField(schemaField)\n ? {\n groupControl: childControl!,\n fields: schemaField.children,\n }\n : parentContext,\n ];\n}\n\nfunction renderArray(\n renderer: FormRenderer,\n noun: string,\n field: SchemaField,\n required: boolean,\n arrayControl: Control<any[] | undefined | null>,\n renderChild: (elemIndex: number, control: Control<any>) => ReactNode,\n) {\n const elems = arrayControl.elements ?? [];\n return renderer.renderArray({\n arrayControl,\n childCount: elems.length,\n required,\n addAction: {\n actionId: \"add\",\n actionText: \"Add \" + noun,\n onClick: () => addElement(arrayControl, elementValueForField(field)),\n },\n childKey: (i) => elems[i].uniqueId,\n removeAction: (i: number) => ({\n actionId: \"\",\n actionText: \"Remove\",\n onClick: () => removeElement(arrayControl, i),\n }),\n renderChild: (i) => renderChild(i, elems[i]),\n });\n}\nfunction groupProps(\n renderOptions: GroupRenderOptions = { type: \"Standard\" },\n childCount: number,\n renderChild: ChildRenderer,\n control: Control<any>,\n): GroupRendererProps {\n return {\n childCount,\n renderChild: (i) => renderChild(i, i, { control }),\n renderOptions,\n };\n}\n\nexport const defaultDataProps: CreateDataProps = (\n definition,\n field,\n groupContext,\n control,\n options,\n) => {\n return {\n control,\n field,\n id: \"c\" + control.uniqueId,\n options: (field.options?.length ?? 0) === 0 ? null : field.options,\n readonly: !!options.readonly,\n renderOptions: definition.renderOptions ?? { type: \"Standard\" },\n required: !!definition.required,\n hidden: !!options.hidden,\n };\n};\n\nexport type ChildRenderer = (\n k: Key,\n childIndex: number,\n props: ControlRenderProps,\n) => ReactNode;\nexport function renderControlLayout(\n c: ControlDefinition,\n renderer: FormRenderer,\n childCount: number,\n childRenderer: ChildRenderer,\n dataProps: CreateDataProps,\n dataOptions: FormContextOptions,\n groupContext: ControlGroupContext,\n childControl?: Control<any>,\n schemaField?: SchemaField,\n): ControlLayoutProps {\n if (isDataControlDefinition(c)) {\n return renderData(c);\n }\n if (isGroupControlsDefinition(c)) {\n if (c.compoundField) {\n return renderData(\n dataControl(c.compoundField, c.title, {\n children: c.children,\n hideTitle: c.groupOptions?.hideTitle,\n }),\n );\n }\n return {\n children: renderer.renderGroup(\n groupProps(\n c.groupOptions,\n childCount,\n childRenderer,\n groupContext.groupControl,\n ),\n ),\n label: {\n label: c.title,\n type: LabelType.Group,\n hide: c.groupOptions?.hideTitle,\n },\n };\n }\n if (isActionControlsDefinition(c)) {\n return {\n children: renderer.renderAction({\n actionText: c.title ?? c.actionId,\n actionId: c.actionId,\n onClick: () => {},\n }),\n };\n }\n if (isDisplayControlsDefinition(c)) {\n return { children: renderer.renderDisplay({ data: c.displayData ?? {} }) };\n }\n return {};\n\n function renderData(c: DataControlDefinition) {\n if (!schemaField) return { children: \"No schema field for: \" + c.field };\n if (isCompoundField(schemaField)) {\n const label: LabelRendererProps = {\n hide: c.hideTitle,\n label: controlTitle(c.title, schemaField),\n type: schemaField.collection ? LabelType.Control : LabelType.Group,\n };\n\n if (schemaField.collection) {\n return {\n label,\n children: renderArray(\n renderer,\n controlTitle(c.title, schemaField),\n schemaField,\n !!c.required,\n childControl!,\n compoundRenderer,\n ),\n errorControl: childControl,\n };\n }\n return {\n children: renderer.renderGroup(\n groupProps(\n { type: \"Standard\" },\n childCount,\n childRenderer,\n childControl!,\n ),\n ),\n label,\n errorControl: childControl,\n };\n }\n const props = dataProps(\n c,\n schemaField,\n groupContext,\n childControl!,\n dataOptions,\n );\n const labelText = !c.hideTitle\n ? controlTitle(c.title, schemaField)\n : undefined;\n return {\n processLayout: renderer.renderData(\n props,\n schemaField.collection\n ? () =>\n renderArray(\n renderer,\n controlTitle(c.title, schemaField),\n schemaField,\n !!c.required,\n childControl!,\n scalarRenderer(props),\n )\n : undefined,\n ),\n label: {\n type: LabelType.Control,\n label: labelText,\n forId: props.id,\n required: c.required,\n hide: c.hideTitle,\n },\n errorControl: childControl,\n };\n }\n\n function compoundRenderer(i: number, control: Control<any>): ReactNode {\n return (\n <Fragment key={control.uniqueId}>\n {renderer.renderGroup({\n renderOptions: { type: \"Standard\", hideTitle: true },\n childCount,\n renderChild: (ci) => childRenderer(ci, ci, { control }),\n })}\n </Fragment>\n );\n }\n function scalarRenderer(\n dataProps: DataRendererProps,\n ): (i: number, control: Control<any>) => ReactNode {\n return (i, control) => {\n return (\n <Fragment key={control.uniqueId}>\n {\n renderer.renderData({ ...dataProps, control }, undefined)({})\n .children\n }\n </Fragment>\n );\n };\n }\n}\n\nexport function appendMarkup(\n k: keyof Omit<RenderedLayout, \"errorControl\">,\n markup: ReactNode,\n): (layout: RenderedLayout) => void {\n return (layout) =>\n (layout[k] = (\n <>\n {layout[k]}\n {markup}\n </>\n ));\n}\n\nexport function wrapMarkup(\n k: keyof Omit<RenderedLayout, \"errorControl\">,\n wrap: (ex: ReactNode) => ReactNode,\n): (layout: RenderedLayout) => void {\n return (layout) => (layout[k] = wrap(layout[k]));\n}\n\nexport function layoutKeyForPlacement(\n pos: AdornmentPlacement,\n): keyof Omit<RenderedLayout, \"errorControl\"> {\n switch (pos) {\n case AdornmentPlacement.ControlEnd:\n return \"controlEnd\";\n case AdornmentPlacement.ControlStart:\n return \"controlStart\";\n case AdornmentPlacement.LabelStart:\n return \"labelStart\";\n case AdornmentPlacement.LabelEnd:\n return \"labelEnd\";\n }\n}\n\nexport function appendMarkupAt(\n pos: AdornmentPlacement,\n markup: ReactNode,\n): (layout: RenderedLayout) => void {\n return appendMarkup(layoutKeyForPlacement(pos), markup);\n}\n\nexport function wrapMarkupAt(\n pos: AdornmentPlacement,\n wrap: (ex: ReactNode) => ReactNode,\n): (layout: RenderedLayout) => void {\n return wrapMarkup(layoutKeyForPlacement(pos), wrap);\n}\n\nexport function renderLayoutParts(\n props: ControlLayoutProps,\n renderer: FormRenderer,\n): RenderedLayout {\n const processed = props.processLayout?.(props) ?? props;\n const layout: RenderedLayout = {\n children: processed.children,\n errorControl: processed.errorControl,\n };\n (processed.adornments ?? [])\n .sort((a, b) => a.priority - b.priority)\n .forEach((x) => x.apply(layout));\n const l = processed.label;\n layout.label =\n l && !l.hide\n ? renderer.renderLabel(l, layout.labelStart, layout.labelEnd)\n : undefined;\n return layout;\n}\n\nexport function controlTitle(\n title: string | undefined | null,\n field: SchemaField,\n) {\n return title ? title : fieldDisplayName(field);\n}\n","import React, {\n CSSProperties,\n Fragment,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport clsx from \"clsx\";\nimport { Control, Fcheckbox, formControlProps } from \"@react-typed-forms/core\";\nimport {\n ActionRendererProps,\n AdornmentProps,\n AdornmentRenderer,\n ArrayRendererProps,\n ControlLayoutProps,\n DataRendererProps,\n DisplayRendererProps,\n FormRenderer,\n GroupRendererProps,\n LabelRendererProps,\n LabelType,\n RenderedLayout,\n renderLayoutParts,\n Visibility,\n} from \"./controlRender\";\nimport {\n DataRenderType,\n DisplayDataType,\n FieldOption,\n FieldType,\n GridRenderer,\n HtmlDisplay,\n isGridRenderer,\n TextDisplay,\n} from \"./types\";\nimport { hasOptions } from \"./util\";\n\nexport interface DefaultRenderers {\n data: DataRendererRegistration;\n label: LabelRendererRegistration;\n action: ActionRendererRegistration;\n array: ArrayRendererRegistration;\n group: GroupRendererRegistration;\n display: DisplayRendererRegistration;\n adornment: AdornmentRendererRegistration;\n renderLayout: LayoutRendererRegistration;\n visibility: VisibilityRendererRegistration;\n}\n\nexport interface LayoutRendererRegistration {\n type: \"layout\";\n match?: (props: ControlLayoutProps) => boolean;\n render: (props: ControlLayoutProps, renderers: FormRenderer) => ReactNode;\n}\nexport interface DataRendererRegistration {\n type: \"data\";\n schemaType?: string | string[];\n renderType?: string | string[];\n options?: boolean;\n collection?: boolean;\n match?: (props: DataRendererProps) => boolean;\n render: (\n props: DataRendererProps,\n asArray: (() => ReactNode) | undefined,\n renderers: FormRenderer,\n ) => ReactNode | ((layout: ControlLayoutProps) => ControlLayoutProps);\n}\n\nexport interface LabelRendererRegistration {\n type: \"label\";\n labelType?: LabelType | LabelType[];\n render: (\n labelProps: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface ActionRendererRegistration {\n type: \"action\";\n actionType?: string | string[];\n render: (props: ActionRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface ArrayRendererRegistration {\n type: \"array\";\n render: (props: ArrayRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface GroupRendererRegistration {\n type: \"group\";\n renderType?: string | string[];\n render: (props: GroupRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface DisplayRendererRegistration {\n type: \"display\";\n renderType?: string | string[];\n render: (\n props: DisplayRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface AdornmentRendererRegistration {\n type: \"adornment\";\n adornmentType?: string | string[];\n render: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nexport interface VisibilityRendererRegistration {\n type: \"visibility\";\n render: (\n visibility: Control<Visibility | undefined>,\n children: () => ReactNode,\n ) => ReactNode;\n}\n\nexport type RendererRegistration =\n | DataRendererRegistration\n | GroupRendererRegistration\n | DisplayRendererRegistration\n | ActionRendererRegistration\n | LabelRendererRegistration\n | ArrayRendererRegistration\n | AdornmentRendererRegistration\n | LayoutRendererRegistration\n | VisibilityRendererRegistration;\n\nexport function createFormRenderer(\n customRenderers: RendererRegistration[] = [],\n defaultRenderers: DefaultRenderers = createClassStyledRenderers(),\n): FormRenderer {\n const dataRegistrations = customRenderers.filter(isDataRegistration);\n const groupRegistrations = customRenderers.filter(isGroupRegistration);\n const adornmentRegistrations = customRenderers.filter(\n isAdornmentRegistration,\n );\n const displayRegistrations = customRenderers.filter(isDisplayRegistration);\n const labelRenderers = customRenderers.filter(isLabelRegistration);\n const arrayRenderers = customRenderers.filter(isArrayRegistration);\n const actionRenderers = customRenderers.filter(isActionRegistration);\n const layoutRenderers = customRenderers.filter(isLayoutRegistration);\n const visibilityRenderer =\n customRenderers.find(isVisibilityRegistration) ??\n defaultRenderers.visibility;\n\n const formRenderers: FormRenderer = {\n renderAction,\n renderData,\n renderGroup,\n renderDisplay,\n renderLabel,\n renderArray,\n renderAdornment,\n renderLayout,\n renderVisibility: visibilityRenderer.render,\n };\n\n function renderLayout(props: ControlLayoutProps) {\n const renderer =\n layoutRenderers.find((x) => !x.match || x.match(props)) ??\n defaultRenderers.renderLayout;\n return renderer.render(props, formRenderers);\n }\n\n function renderAdornment(props: AdornmentProps): AdornmentRenderer {\n const renderer =\n adornmentRegistrations.find((x) =>\n isOneOf(x.adornmentType, props.adornment.type),\n ) ?? defaultRenderers.adornment;\n return renderer.render(props);\n }\n\n function renderArray(props: ArrayRendererProps) {\n return (arrayRenderers[0] ?? defaultRenderers.array).render(\n props,\n formRenderers,\n );\n }\n\n function renderLabel(\n props: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n ) {\n const renderer =\n labelRenderers.find((x) => isOneOf(x.labelType, props.type)) ??\n defaultRenderers.label;\n return renderer.render(props, labelStart, labelEnd, formRenderers);\n }\n\n function renderData(\n props: DataRendererProps,\n asArray: (() => ReactNode) | undefined,\n ): (layout: ControlLayoutProps) => ControlLayoutProps {\n const {\n renderOptions: { type: renderType },\n field,\n } = props;\n\n const options = hasOptions(props);\n const renderer =\n dataRegistrations.find(\n (x) =>\n (x.collection ?? false) === (field.collection ?? false) &&\n (x.options ?? false) === options &&\n isOneOf(x.schemaType, field.type) &&\n isOneOf(x.renderType, renderType) &&\n (!x.match || x.match(props)),\n ) ?? defaultRenderers.data;\n\n const result = renderer.render(props, asArray, formRenderers);\n if (typeof result === \"function\") return result;\n return (l) => ({ ...l, children: result });\n }\n\n function renderGroup(props: GroupRendererProps): ReactNode {\n const renderType = props.renderOptions.type;\n const renderer =\n groupRegistrations.find((x) => isOneOf(x.renderType, renderType)) ??\n defaultRenderers.group;\n return renderer.render(props, formRenderers);\n }\n\n function renderAction(props: ActionRendererProps) {\n const renderer =\n actionRenderers.find((x) => isOneOf(x.actionType, props.actionId)) ??\n defaultRenderers.action;\n return renderer.render(props, formRenderers);\n }\n\n function renderDisplay(props: DisplayRendererProps) {\n const renderType = props.data.type;\n const renderer =\n displayRegistrations.find((x) => isOneOf(x.renderType, renderType)) ??\n defaultRenderers.display;\n return renderer.render(props, formRenderers);\n }\n\n return formRenderers;\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n requiredElement?: ReactNode;\n}\n\ninterface DefaultActionRendererOptions {\n className?: string;\n}\n\nexport function createDefaultActionRenderer(\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n function render({ onClick, actionText }: ActionRendererProps) {\n return (\n <button className={options.className} onClick={onClick}>\n {actionText}\n </button>\n );\n }\n return { render, type: \"action\" };\n}\nexport function createDefaultLabelRenderer(\n options: DefaultLabelRendererOptions = { requiredElement: <span> *</span> },\n): LabelRendererRegistration {\n const { className, groupLabelClass, requiredElement } = options;\n return {\n render: (props, labelStart, labelEnd) => (\n <>\n {labelStart}\n <label\n htmlFor={props.forId}\n className={clsx(\n className,\n props.type === LabelType.Group && groupLabelClass,\n )}\n >\n {props.label}\n {props.required && requiredElement}\n </label>\n {labelEnd}\n </>\n ),\n type: \"label\",\n };\n}\n\ninterface DefaultArrayRendererOptions {\n className?: string;\n removableClass?: string;\n childClass?: string;\n removableChildClass?: string;\n removeActionClass?: string;\n addActionClass?: string;\n}\n\nexport function createDefaultArrayRenderer(\n options?: DefaultArrayRendererOptions,\n): ArrayRendererRegistration {\n const {\n className,\n removableClass,\n childClass,\n removableChildClass,\n removeActionClass,\n addActionClass,\n } = options ?? {};\n function render(\n {\n childCount,\n renderChild,\n addAction,\n removeAction,\n childKey,\n required,\n }: ArrayRendererProps,\n { renderAction }: FormRenderer,\n ) {\n const showRemove = !required || childCount > 1;\n return (\n <div>\n <div className={clsx(className, removeAction && removableClass)}>\n {Array.from({ length: childCount }, (_, x) =>\n removeAction ? (\n <Fragment key={childKey(x)}>\n <div className={clsx(childClass, removableChildClass)}>\n {renderChild(x)}\n </div>\n <div className={removeActionClass}>\n {showRemove && renderAction(removeAction(x))}\n </div>\n </Fragment>\n ) : (\n <div key={childKey(x)} className={childClass}>\n {renderChild(x)}\n </div>\n ),\n )}\n </div>\n {addAction && (\n <div className={addActionClass}>{renderAction(addAction)}</div>\n )}\n </div>\n );\n }\n return { render, type: \"array\" };\n}\n\ninterface StyleProps {\n className?: string;\n style?: CSSProperties;\n}\n\ninterface DefaultGroupRendererOptions {\n className?: string;\n standardClassName?: string;\n gridStyles?: (columns: GridRenderer) => StyleProps;\n gridClassName?: string;\n defaultGridColumns?: number;\n}\n\nexport function createDefaultGroupRenderer(\n options?: DefaultGroupRendererOptions,\n): GroupRendererRegistration {\n const {\n className,\n gridStyles = defaultGridStyles,\n defaultGridColumns = 2,\n gridClassName,\n standardClassName,\n } = options ?? {};\n\n function defaultGridStyles({\n columns = defaultGridColumns,\n }: GridRenderer): StyleProps {\n return {\n className: gridClassName,\n style: {\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n },\n };\n }\n\n function render(props: GroupRendererProps) {\n const { childCount, renderChild, renderOptions } = props;\n\n const { style, className: gcn } = isGridRenderer(renderOptions)\n ? gridStyles(renderOptions)\n : ({ className: standardClassName } as StyleProps);\n return (\n <div className={clsx(className, gcn)} style={style}>\n {Array.from({ length: childCount }, (_, x) => renderChild(x))}\n </div>\n );\n }\n return { type: \"group\", render };\n}\n\nexport interface DefaultDisplayRendererOptions {\n textClassName?: string;\n htmlClassName?: string;\n}\nexport function createDefaultDisplayRenderer(\n options: DefaultDisplayRendererOptions = {},\n): DisplayRendererRegistration {\n return {\n render: ({ data }) => {\n switch (data.type) {\n case DisplayDataType.Text:\n return (\n <div className={options.textClassName}>\n {(data as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n className={options.htmlClassName}\n dangerouslySetInnerHTML={{\n __html: (data as HtmlDisplay).html,\n }}\n />\n );\n default:\n return <h1>Unknown display type: {data.type}</h1>;\n }\n },\n type: \"display\",\n };\n}\n\nexport const DefaultBoolOptions: FieldOption[] = [\n { name: \"Yes\", value: true },\n { name: \"No\", value: false },\n];\ninterface DefaultDataRendererOptions {\n inputClass?: string;\n selectOptions?: SelectRendererOptions;\n booleanOptions?: FieldOption[];\n optionRenderer?: DataRendererRegistration;\n}\n\nexport function createDefaultDataRenderer(\n options: DefaultDataRendererOptions = {},\n): DataRendererRegistration {\n const selectRenderer = createSelectRenderer(options.selectOptions ?? {});\n const { inputClass, booleanOptions, optionRenderer } = {\n optionRenderer: selectRenderer,\n booleanOptions: DefaultBoolOptions,\n ...options,\n };\n return createDataRenderer((props, asArray, renderers) => {\n if (asArray) {\n return asArray();\n }\n let renderType = props.renderOptions.type;\n const fieldType = props.field.type;\n if (fieldType == FieldType.Any) return <>No control for Any</>;\n const isBool = fieldType === FieldType.Bool;\n if (booleanOptions != null && isBool && props.options == null) {\n return renderers.renderData(\n { ...props, options: booleanOptions },\n undefined,\n );\n }\n if (renderType === DataRenderType.Standard && hasOptions(props)) {\n return optionRenderer.render(props, undefined, renderers);\n }\n switch (renderType) {\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, undefined, renderers);\n }\n return renderType === DataRenderType.Checkbox ? (\n <Fcheckbox control={props.control} />\n ) : (\n <ControlInput\n className={inputClass}\n id={props.id}\n readOnly={props.readonly}\n control={props.control}\n convert={createInputConversion(props.field.type)}\n />\n );\n });\n}\n\nexport function ControlInput({\n control,\n convert,\n ...props\n}: React.InputHTMLAttributes<HTMLInputElement> & {\n control: Control<any>;\n convert: InputConversion;\n}) {\n const { errorText, value, onChange, ...inputProps } =\n formControlProps(control);\n return (\n <input\n {...inputProps}\n type={convert[0]}\n value={value == null ? \"\" : convert[2](value)}\n onChange={(e) => {\n control.value = convert[1](e.target.value);\n }}\n {...props}\n />\n );\n}\n\nexport interface DefaultAdornmentRendererOptions {}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n return {\n type: \"adornment\",\n render: ({ adornment }) => ({ apply: () => {}, priority: 0, adornment }),\n };\n}\n\nexport interface DefaultLayoutRendererOptions {\n className?: string;\n errorClass?: string;\n}\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\n layout?: DefaultLayoutRendererOptions;\n}\n\nexport function createDefaultRenderers(\n options: DefaultRendererOptions = {},\n): DefaultRenderers {\n return {\n data: createDefaultDataRenderer(options.data),\n display: createDefaultDisplayRenderer(options.display),\n action: createDefaultActionRenderer(options.action),\n array: createDefaultArrayRenderer(options.array),\n group: createDefaultGroupRenderer(options.group),\n label: createDefaultLabelRenderer(options.label),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n renderLayout: createDefaultLayoutRenderer(options.layout),\n visibility: createDefaultVisibilityRenderer(),\n };\n}\n\nfunction createDefaultLayoutRenderer(\n options: DefaultLayoutRendererOptions = {},\n) {\n return createLayoutRenderer((props, renderers) => {\n return (\n <DefaultLayout\n layout={renderLayoutParts(props, renderers)}\n {...options}\n />\n );\n });\n}\n\nfunction createClassStyledRenderers() {\n return createDefaultRenderers({\n layout: { className: \"control\" },\n group: { className: \"group\" },\n array: { className: \"control-array\" },\n action: { className: \"action\" },\n data: { inputClass: \"data\" },\n display: { htmlClassName: \"html\", textClassName: \"text\" },\n });\n}\n\nfunction isAdornmentRegistration(\n x: RendererRegistration,\n): x is AdornmentRendererRegistration {\n return x.type === \"adornment\";\n}\n\nfunction isDataRegistration(\n x: RendererRegistration,\n): x is DataRendererRegistration {\n return x.type === \"data\";\n}\n\nfunction isGroupRegistration(\n x: RendererRegistration,\n): x is GroupRendererRegistration {\n return x.type === \"group\";\n}\n\nfunction isLabelRegistration(\n x: RendererRegistration,\n): x is LabelRendererRegistration {\n return x.type === \"label\";\n}\n\nfunction isLayoutRegistration(\n x: RendererRegistration,\n): x is LayoutRendererRegistration {\n return x.type === \"layout\";\n}\n\nfunction isVisibilityRegistration(\n x: RendererRegistration,\n): x is VisibilityRendererRegistration {\n return x.type === \"visibility\";\n}\n\nfunction isActionRegistration(\n x: RendererRegistration,\n): x is ActionRendererRegistration {\n return x.type === \"action\";\n}\n\nfunction isDisplayRegistration(\n x: RendererRegistration,\n): x is DisplayRendererRegistration {\n return x.type === \"display\";\n}\n\nfunction isArrayRegistration(\n x: RendererRegistration,\n): x is ArrayRendererRegistration {\n return x.type === \"array\";\n}\nfunction isOneOf<A>(x: A | A[] | undefined, v: A) {\n return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;\n}\n\nexport function createLayoutRenderer(\n render: LayoutRendererRegistration[\"render\"],\n options?: Partial<LayoutRendererRegistration>,\n): LayoutRendererRegistration {\n return { type: \"layout\", render, ...options };\n}\n\nexport function createArrayRenderer(\n render: ArrayRendererRegistration[\"render\"],\n options?: Partial<ArrayRendererRegistration>,\n): ArrayRendererRegistration {\n return { type: \"array\", render, ...options };\n}\n\nexport function createDataRenderer(\n render: DataRendererRegistration[\"render\"],\n options?: Partial<DataRendererRegistration>,\n): DataRendererRegistration {\n return { type: \"data\", render, ...options };\n}\n\nexport function createLabelRenderer(\n render: LabelRendererRegistration[\"render\"],\n options?: Omit<LabelRendererRegistration, \"type\">,\n): LabelRendererRegistration {\n return { type: \"label\", render, ...options };\n}\n\nexport function createVisibilityRenderer(\n render: VisibilityRendererRegistration[\"render\"],\n options?: Partial<VisibilityRendererRegistration>,\n): VisibilityRendererRegistration {\n return { type: \"visibility\", render, ...options };\n}\n\nexport function createAdornmentRenderer(\n render: (props: AdornmentProps) => AdornmentRenderer,\n options?: Partial<AdornmentRendererRegistration>,\n): AdornmentRendererRegistration {\n return { type: \"adornment\", ...options, render };\n}\n\nexport interface SelectRendererOptions {\n className?: string;\n emptyText?: string;\n requiredText?: string;\n}\n\nexport function createSelectRenderer(options: SelectRendererOptions = {}) {\n return createDataRenderer(\n (props, asArray) => (\n <SelectDataRenderer\n className={options.className}\n state={props.control}\n id={props.id}\n options={props.options!}\n required={props.required}\n emptyText={options.emptyText}\n requiredText={options.requiredText}\n convert={createSelectConversion(props.field.type)}\n />\n ),\n {\n options: true,\n },\n );\n}\n\ntype SelectConversion = (a: any) => string | number;\n\ninterface SelectDataRendererProps {\n id?: string;\n className?: string;\n options: {\n name: string;\n value: any;\n disabled?: boolean;\n }[];\n emptyText?: string;\n requiredText?: string;\n required: boolean;\n state: Control<any>;\n convert: SelectConversion;\n}\n\nexport function SelectDataRenderer({\n state,\n options,\n className,\n convert,\n required,\n emptyText = \"N/A\",\n requiredText = \"<please select>\",\n ...props\n}: SelectDataRendererProps) {\n const { value, disabled } = state;\n const [showEmpty] = useState(!required || value == null);\n const optionStringMap = useMemo(\n () => Object.fromEntries(options.map((x) => [convert(x.value), x.value])),\n [options],\n );\n return (\n <select\n {...props}\n className={className}\n onChange={(v) => (state.value = optionStringMap[v.target.value])}\n value={convert(value)}\n disabled={disabled}\n >\n {showEmpty && (\n <option value=\"\">{required ? requiredText : emptyText}</option>\n )}\n {options.map((x, i) => (\n <option key={i} value={convert(x.value)} disabled={x.disabled}>\n {x.name}\n </option>\n ))}\n </select>\n );\n}\n\nexport function createSelectConversion(ft: string): SelectConversion {\n switch (ft) {\n case FieldType.String:\n case FieldType.Int:\n case FieldType.Double:\n return (a) => a;\n default:\n return (a) => a?.toString() ?? \"\";\n }\n}\n\ntype InputConversion = [string, (s: any) => any, (a: any) => string | number];\n\nexport function createInputConversion(ft: string): InputConversion {\n switch (ft) {\n case FieldType.String:\n return [\"text\", (a) => a, (a) => a];\n case FieldType.Bool:\n return [\"text\", (a) => a === \"true\", (a) => a?.toString() ?? \"\"];\n case FieldType.Int:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseInt(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n case FieldType.Date:\n return [\"date\", (a) => a, (a) => a];\n case FieldType.Double:\n return [\"number\", (a) => parseFloat(a), (a) => a];\n default:\n return [\"text\", (a) => a, (a) => a];\n }\n}\n\nexport function createDefaultVisibilityRenderer() {\n return createVisibilityRenderer((cv, ch) => (\n <DefaultVisibility visibility={cv} children={ch} />\n ));\n}\n\nexport function DefaultVisibility({\n visibility,\n children,\n}: {\n visibility: Control<Visibility | undefined>;\n children: () => ReactNode;\n}) {\n const v = visibility.value;\n useEffect(() => {\n if (v) {\n visibility.setValue((ex) => ({ visible: v.visible, showing: v.visible }));\n }\n }, [v?.visible]);\n return v?.visible ? children() : <></>;\n}\n\nexport function DefaultLayout({\n className,\n errorClass,\n layout: { controlEnd, controlStart, label, children, errorControl },\n}: DefaultLayoutRendererOptions & {\n layout: RenderedLayout;\n}) {\n const ec = errorControl;\n const errorText = ec && ec.touched ? ec.error : undefined;\n const refCb = useCallback(\n (e: HTMLDivElement | null) => {\n if (ec) ec.meta.scrollElement = e;\n },\n [ec],\n );\n return (\n <div className={className} ref={refCb}>\n {label}\n {controlStart}\n {children}\n {errorText && <div className={errorClass}>{errorText}</div>}\n {controlEnd}\n </div>\n );\n}\n","import React from \"react\";\nimport { DefaultRendererOptions } from \"./renderers\";\n\nexport const defaultTailwindTheme: DefaultRendererOptions = {\n label: {\n groupLabelClass: \"font-bold\",\n requiredElement: <span className=\"text-red-500\"> *</span>,\n },\n array: {\n removableClass: \"grid grid-cols-[1fr_auto] items-center gap-x-2\",\n childClass: \"grow my-2\",\n addActionClass: \"my-2\",\n },\n group: {\n standardClassName: \"space-y-4\",\n gridClassName: \"gap-x-2 gap-y-4\",\n },\n action: {\n className: \"bg-primary rounded-lg p-3 text-white\",\n },\n layout: {\n className: \"flex flex-col\",\n errorClass: \"text-sm text-danger-500\",\n },\n};\n"],"names":["FieldType","ControlDefinitionType","DynamicPropertyType","ExpressionType","AdornmentPlacement","ControlAdornmentType","DataRenderType","SyncTextType","GroupRenderType","DisplayDataType","ValidatorType","DateComparison","isDataControlDefinition","x","type","Data","isGroupControlsDefinition","Group","isDisplayControlsDefinition","Display","isActionControlsDefinition","Action","visitControlDefinition","visitor","defaultValue","action","data","display","group","isGridRenderer","options","Grid","buildSchema","def","Object","entries","map","stringField","displayName","makeScalarField","_extends","String","stringOptionsField","slice","call","arguments","withScalarOptions","v","n","defaultScalarField","makeCompoundField","defaultCompoundField","intField","Int","boolField","Bool","compoundField","fields","other","field","children","collection","Compound","applyDefaultValues","defaultValueForFields","applyValue","filter","isCompoundField","length","out","forEach","applyDefaultForField","defaultValueForField","parent","notElement","required","treeChildren","fromEntries","sf","undefined","isRequired","childValue","notNullable","elementValueForField","findScalarField","findField","findCompoundField","find","isScalarField","isDataControl","c","isGroupControl","fieldHasTag","tag","_field$tags","Boolean","tags","includes","fieldDisplayName","_field$displayName","hasOptions","o","_o$options$length","_o$options","defaultControlForField","title","groupOptions","hideTitle","_sf$tags","htmlEditor","renderOptions","HtmlEditor","Standard","findReferencedControl","control","_control$children","findReferencedControlInArray","controls","_iterator","_createForOfIteratorHelperLoose","_step","done","value","ref","addMissingControls","changes","flatMap","existing","changedCompounds","_cf$children","ex","cf","concat","useUpdatedRef","a","r","useRef","current","isControlReadonly","readonly","getTypeField","context","_context$groupControl","typeSchemaField","isTypeField","groupControl","visitControlDataArray","cb","_iterator2","_step2","visitControlData","definition","ctx","processData","d","fieldName","fieldData","result","_iterator3","_control$elements","elements","_step3","elemResult","cfResult","cleanDataForSchema","typeField","typeValue","cleanableFields","_x$onlyForTypes$lengt","_x$onlyForTypes","onlyForTypes","_x$onlyForTypes2","canBeNull","childFields","Array","isArray","cv","dataControl","textDisplayControl","text","displayData","Text","htmlDisplayControl","html","Html","dynamicDefaultValue","expr","DefaultValue","dynamicReadonly","Readonly","dynamicVisibility","Visible","dynamicDisabled","Disabled","fieldEqExpr","FieldValue","jsonataExpr","expression","Jsonata","groupedControl","compoundControl","createAction","actionId","onClick","actionText","emptyGroupDefinition","useControlDefinitionForSchema","useMemo","_definition$children","useCalculatedControl","calculate","useControl","useControlEffect","useEvalVisibilityHook","useEvalExpressionHook","schemaField","useEvalDynamicHook","useCallback","_dynamicVisibility","useComputed","matchesType","useEvalReadonlyHook","useEvalDisabledHook","useEvalDefaultValueHook","dynamicValue","_dynamicValue","_r$current","calcDefault","_ref","dcv","useFieldValueExpression","fvExpr","refField","otherField","fv","defaultEvalHooks","useJsonataExpression","defaultUseEvalExpressionHook","makeEvalExpressionHook","f","_definition$dynamic","dynamic","types","jExpr","compiledExpr","jsonata","Promise","resolve","evaluate","then","_compiledExpr$evaluat","e","reject","useValidationHook","_definition$validator","_definition$validator2","validatorTypes","validators","hidden","groupContext","_dd$validators","dd","useValueChangeEffect","setError","useValidator","i","useJsonataValidator","Date","useDateValidator","errorMsg","msg","dv","comparisonDate","fixedDate","parse","nowDate","UTC","getFullYear","getMonth","getDate","daysFromCurrent","selDate","notAfter","comparison","NotAfter","toDateString","AppendAdornmentPriority","WrapAdornmentPriority","LabelType","useControlRenderer","renderer","_options$useDataHook","_options$useEvalExpre","dataProps","useDataHook","defaultDataProps","useExpr","lookupSchemaField","useDefaultValue","useIsVisible","useIsReadonly","useIsDisabled","useValidation","Component","parentControl","stopTracking","useComponentTracking","_c$children$map","_c$children","_definition$adornment","_definition$adornment2","readonlyControl","disabledControl","visibleControl","visible","visibility","showing","setValue","defaultValueControl","_getControlData","getControlData","childContext","isNull","_ref2","vc","cd","pn","clearHidden","myOptions","_visibility$fields","disabled","childRenderers","useEffect","React","createElement","Fragment","adornments","renderAdornment","adornment","labelAndChildren","renderControlLayout","k","props","RenderChild","key","renderVisibility","renderLayout","parentContext","_parentContext$groupC","_parentContext$groupC2","childControl","newControl","renderArray","noun","arrayControl","renderChild","_arrayControl$element","elems","childCount","addAction","addElement","childKey","uniqueId","removeAction","removeElement","groupProps","_field$options$length","_field$options","_definition$renderOpt","id","childRenderer","dataOptions","renderData","_c$groupOptions2","_c$groupOptions","renderGroup","label","hide","_c$title","renderAction","_c$displayData","renderDisplay","controlTitle","Control","compoundRenderer","errorControl","labelText","processLayout","scalarRenderer","forId","ci","appendMarkup","markup","layout","wrapMarkup","wrap","layoutKeyForPlacement","pos","ControlEnd","ControlStart","LabelStart","LabelEnd","appendMarkupAt","wrapMarkupAt","renderLayoutParts","_props$processLayout","_processed$adornments","processed","sort","b","priority","apply","l","renderLabel","labelStart","labelEnd","createFormRenderer","customRenderers","defaultRenderers","_customRenderers$find","createClassStyledRenderers","dataRegistrations","isDataRegistration","groupRegistrations","isGroupRegistration","adornmentRegistrations","isAdornmentRegistration","displayRegistrations","isDisplayRegistration","labelRenderers","isLabelRegistration","arrayRenderers","isArrayRegistration","actionRenderers","isActionRegistration","layoutRenderers","isLayoutRegistration","visibilityRenderer","isVisibilityRegistration","formRenderers","render","_layoutRenderers$find","match","_adornmentRegistratio","isOneOf","adornmentType","_arrayRenderers$","array","_labelRenderers$find","labelType","asArray","_dataRegistrations$fi","renderType","_x$collection","_field$collection","_x$options","schemaType","_groupRegistrations$f","_actionRenderers$find","actionType","_displayRegistrations","createDefaultActionRenderer","className","createDefaultLabelRenderer","requiredElement","_options","groupLabelClass","htmlFor","clsx","createDefaultArrayRenderer","removableClass","childClass","removableChildClass","removeActionClass","addActionClass","_ref3","_ref4","showRemove","from","_","createDefaultGroupRenderer","_ref5","_ref5$gridStyles","gridStyles","defaultGridStyles","_ref5$defaultGridColu","defaultGridColumns","gridClassName","standardClassName","_ref6","_ref6$columns","columns","style","gridTemplateColumns","_ref7","gcn","createDefaultDisplayRenderer","_ref8","textClassName","htmlClassName","dangerouslySetInnerHTML","__html","DefaultBoolOptions","name","createDefaultDataRenderer","_options$selectOption","selectRenderer","createSelectRenderer","selectOptions","_optionRenderer$boole","optionRenderer","booleanOptions","inputClass","createDataRenderer","renderers","fieldType","Any","isBool","Dropdown","Checkbox","Fcheckbox","ControlInput","readOnly","convert","createInputConversion","_ref9","_effect","_useComponentTracking","_objectWithoutPropertiesLoose","_excluded","_formControlProps","formControlProps","errorText","onChange","inputProps","_excluded2","target","createDefaultAdornmentRenderer","_ref10","createDefaultRenderers","createDefaultLayoutRenderer","createDefaultVisibilityRenderer","createLayoutRenderer","DefaultLayout","createArrayRenderer","createLabelRenderer","createVisibilityRenderer","createAdornmentRenderer","SelectDataRenderer","state","emptyText","requiredText","createSelectConversion","_ref11","_effect2","_ref11$emptyText","_ref11$requiredText","_excluded3","_useState","useState","showEmpty","optionStringMap","ft","Double","_a$toString","toString","_a$toString2","parseInt","parseFloat","ch","DefaultVisibility","_ref12","_effect3","_ref13","_effect4","errorClass","_ref13$layout","controlEnd","controlStart","ec","touched","error","refCb","meta","scrollElement","defaultTailwindTheme"],"mappings":"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"}
|
package/package.json
CHANGED