@react-typed-forms/schemas 3.0.0-dev.99 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/types.ts","../src/schemaBuilder.ts","../src/util.ts","../src/controlBuilder.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}\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 isRequired ? [undefined] : [];\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 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}\nexport function visibility(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Visible, 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 {\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 useUpdatedRef,\n} from \"./util\";\nimport jsonata from \"jsonata\";\n\nexport function useEvalVisibilityHook(\n definition: ControlDefinition,\n schemaField?: SchemaField,\n): EvalExpressionHook<boolean> {\n const dynamicVisibility = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Visible,\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 useEvalDefaultValueHook(\n definition: ControlDefinition,\n schemaField?: SchemaField,\n): EvalExpressionHook {\n const dynamicValue = useEvalDynamicHook(\n definition,\n DynamicPropertyType.DefaultValue,\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}\nfunction useEvalExpressionHook(\n expr: EntityExpression | undefined,\n): EvalExpressionHook | undefined {\n const r = useUpdatedRef(expr);\n const cb = useCallback(\n ({ groupControl, fields }: ControlGroupContext) => {\n const expr = r.current!;\n switch (expr.type) {\n case ExpressionType.Jsonata:\n return useJsonataExpression(\n (expr as JsonataExpression).expression,\n groupControl,\n );\n case ExpressionType.FieldValue:\n return useFieldValueExpression(\n expr as FieldValueExpression,\n fields,\n groupControl,\n );\n default:\n return useControl(undefined);\n }\n },\n [expr?.type, r],\n );\n return expr ? cb : undefined;\n}\n\nexport function useEvalDynamicHook(\n definition: ControlDefinition,\n type: DynamicPropertyType,\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 useRef,\n} from \"react\";\nimport {\n addElement,\n Control,\n newControl,\n removeElement,\n useComponentTracking,\n useComputed,\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 { useEvalDefaultValueHook, useEvalVisibilityHook } from \"./hooks\";\nimport { useValidationHook } from \"./validators\";\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}\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;\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 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\n const schemaField = lookupSchemaField(definition, fields);\n const useDefaultValue = useEvalDefaultValueHook(definition, schemaField);\n const useIsVisible = useEvalVisibilityHook(definition, schemaField);\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 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 hidden = useComputed(\n () => options.hidden || !visibility.fields?.showing.value,\n ).value;\n useValidation(control!, hidden, groupContext);\n const myOptions =\n options.hidden !== hidden ? { ...options, hidden } : options;\n const childRenderers: FC<ControlRenderProps>[] =\n c.children?.map((cd) =>\n useControlRenderer(cd, childContext.fields, renderer, myOptions),\n ) ?? [];\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 [r, dataProps, useIsVisible, useDefaultValue, useValidation, renderer],\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 || !!definition.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 RenderedLayout,\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 RenderedLayout,\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 RenderedLayout {\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 = { children: processed.children };\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 errorControl={props.errorControl}\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 errorControl,\n layout: { controlEnd, controlStart, label, children },\n}: DefaultLayoutRendererOptions & {\n errorControl?: Control<any>;\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","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","visibility","Visible","fieldEqExpr","FieldValue","jsonataExpr","expression","Jsonata","groupedControl","compoundControl","createAction","actionId","onClick","actionText","emptyGroupDefinition","useControlDefinitionForSchema","useMemo","_definition$children","useEvalVisibilityHook","schemaField","dynamicVisibility","useEvalDynamicHook","useCallback","_dynamicVisibility","useComputed","matchesType","useEvalDefaultValueHook","dynamicValue","_dynamicValue","_r$current","calcDefault","_ref","dcv","useFieldValueExpression","fvExpr","refField","otherField","fv","useEvalExpressionHook","_ref2","useJsonataExpression","useControl","_definition$dynamic","dynamic","types","jExpr","compiledExpr","jsonata","useControlEffect","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","dataProps","useDataHook","defaultDataProps","lookupSchemaField","useDefaultValue","useIsVisible","useValidation","Component","parentControl","stopTracking","useComponentTracking","_c$children$map","_c$children","_definition$adornment","_definition$adornment2","visibleControl","visible","showing","setValue","defaultValueControl","_getControlData","getControlData","childContext","isNull","vc","cd","pn","clearHidden","_visibility$fields","myOptions","childRenderers","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","readonly","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","disabled","_useState","useState","showEmpty","optionStringMap","ft","Double","_a$toString","toString","_a$toString2","parseInt","parseFloat","ch","DefaultVisibility","_ref12","_effect3","useEffect","_ref13","_effect4","errorClass","_ref13$layout","controlEnd","controlStart","ec","touched","error","refCb","meta","scrollElement","defaultTailwindTheme"],"mappings":"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"}
@@ -0,0 +1,171 @@
1
+ import React, { CSSProperties, ReactElement, ReactNode } from "react";
2
+ import { Control } from "@react-typed-forms/core";
3
+ import { ActionRendererProps, AdornmentProps, AdornmentRenderer, ArrayRendererProps, ControlLayoutProps, DataRendererProps, DisplayRendererProps, FormRenderer, GroupRendererProps, LabelRendererProps, LabelType, RenderedLayout, Visibility } from "./controlRender";
4
+ import { FieldOption, GridRenderer } from "./types";
5
+ export interface DefaultRenderers {
6
+ data: DataRendererRegistration;
7
+ label: LabelRendererRegistration;
8
+ action: ActionRendererRegistration;
9
+ array: ArrayRendererRegistration;
10
+ group: GroupRendererRegistration;
11
+ display: DisplayRendererRegistration;
12
+ adornment: AdornmentRendererRegistration;
13
+ renderLayout: LayoutRendererRegistration;
14
+ visibility: VisibilityRendererRegistration;
15
+ }
16
+ export interface LayoutRendererRegistration {
17
+ type: "layout";
18
+ match?: (props: ControlLayoutProps) => boolean;
19
+ render: (props: ControlLayoutProps, renderers: FormRenderer) => ReactNode;
20
+ }
21
+ export interface DataRendererRegistration {
22
+ type: "data";
23
+ schemaType?: string | string[];
24
+ renderType?: string | string[];
25
+ options?: boolean;
26
+ collection?: boolean;
27
+ match?: (props: DataRendererProps) => boolean;
28
+ render: (props: DataRendererProps, asArray: (() => ReactNode) | undefined, renderers: FormRenderer) => ReactNode | ((layout: ControlLayoutProps) => ControlLayoutProps);
29
+ }
30
+ export interface LabelRendererRegistration {
31
+ type: "label";
32
+ labelType?: LabelType | LabelType[];
33
+ render: (labelProps: LabelRendererProps, labelStart: ReactNode, labelEnd: ReactNode, renderers: FormRenderer) => ReactElement;
34
+ }
35
+ export interface ActionRendererRegistration {
36
+ type: "action";
37
+ actionType?: string | string[];
38
+ render: (props: ActionRendererProps, renderers: FormRenderer) => ReactElement;
39
+ }
40
+ export interface ArrayRendererRegistration {
41
+ type: "array";
42
+ render: (props: ArrayRendererProps, renderers: FormRenderer) => ReactElement;
43
+ }
44
+ export interface GroupRendererRegistration {
45
+ type: "group";
46
+ renderType?: string | string[];
47
+ render: (props: GroupRendererProps, renderers: FormRenderer) => ReactElement;
48
+ }
49
+ export interface DisplayRendererRegistration {
50
+ type: "display";
51
+ renderType?: string | string[];
52
+ render: (props: DisplayRendererProps, renderers: FormRenderer) => ReactElement;
53
+ }
54
+ export interface AdornmentRendererRegistration {
55
+ type: "adornment";
56
+ adornmentType?: string | string[];
57
+ render: (props: AdornmentProps) => AdornmentRenderer;
58
+ }
59
+ export interface VisibilityRendererRegistration {
60
+ type: "visibility";
61
+ render: (visibility: Control<Visibility | undefined>, children: () => ReactNode) => ReactNode;
62
+ }
63
+ export type RendererRegistration = DataRendererRegistration | GroupRendererRegistration | DisplayRendererRegistration | ActionRendererRegistration | LabelRendererRegistration | ArrayRendererRegistration | AdornmentRendererRegistration | LayoutRendererRegistration | VisibilityRendererRegistration;
64
+ export declare function createFormRenderer(customRenderers?: RendererRegistration[], defaultRenderers?: DefaultRenderers): FormRenderer;
65
+ interface DefaultLabelRendererOptions {
66
+ className?: string;
67
+ groupLabelClass?: string;
68
+ requiredElement?: ReactNode;
69
+ }
70
+ interface DefaultActionRendererOptions {
71
+ className?: string;
72
+ }
73
+ export declare function createDefaultActionRenderer(options?: DefaultActionRendererOptions): ActionRendererRegistration;
74
+ export declare function createDefaultLabelRenderer(options?: DefaultLabelRendererOptions): LabelRendererRegistration;
75
+ interface DefaultArrayRendererOptions {
76
+ className?: string;
77
+ removableClass?: string;
78
+ childClass?: string;
79
+ removableChildClass?: string;
80
+ removeActionClass?: string;
81
+ addActionClass?: string;
82
+ }
83
+ export declare function createDefaultArrayRenderer(options?: DefaultArrayRendererOptions): ArrayRendererRegistration;
84
+ interface StyleProps {
85
+ className?: string;
86
+ style?: CSSProperties;
87
+ }
88
+ interface DefaultGroupRendererOptions {
89
+ className?: string;
90
+ standardClassName?: string;
91
+ gridStyles?: (columns: GridRenderer) => StyleProps;
92
+ gridClassName?: string;
93
+ defaultGridColumns?: number;
94
+ }
95
+ export declare function createDefaultGroupRenderer(options?: DefaultGroupRendererOptions): GroupRendererRegistration;
96
+ export interface DefaultDisplayRendererOptions {
97
+ textClassName?: string;
98
+ htmlClassName?: string;
99
+ }
100
+ export declare function createDefaultDisplayRenderer(options?: DefaultDisplayRendererOptions): DisplayRendererRegistration;
101
+ export declare const DefaultBoolOptions: FieldOption[];
102
+ interface DefaultDataRendererOptions {
103
+ inputClass?: string;
104
+ selectOptions?: SelectRendererOptions;
105
+ booleanOptions?: FieldOption[];
106
+ optionRenderer?: DataRendererRegistration;
107
+ }
108
+ export declare function createDefaultDataRenderer(options?: DefaultDataRendererOptions): DataRendererRegistration;
109
+ export declare function ControlInput({ control, convert, ...props }: React.InputHTMLAttributes<HTMLInputElement> & {
110
+ control: Control<any>;
111
+ convert: InputConversion;
112
+ }): React.JSX.Element;
113
+ export interface DefaultAdornmentRendererOptions {
114
+ }
115
+ export declare function createDefaultAdornmentRenderer(options?: DefaultAdornmentRendererOptions): AdornmentRendererRegistration;
116
+ export interface DefaultLayoutRendererOptions {
117
+ className?: string;
118
+ errorClass?: string;
119
+ }
120
+ export interface DefaultRendererOptions {
121
+ data?: DefaultDataRendererOptions;
122
+ display?: DefaultDisplayRendererOptions;
123
+ action?: DefaultActionRendererOptions;
124
+ array?: DefaultArrayRendererOptions;
125
+ group?: DefaultGroupRendererOptions;
126
+ label?: DefaultLabelRendererOptions;
127
+ adornment?: DefaultAdornmentRendererOptions;
128
+ layout?: DefaultLayoutRendererOptions;
129
+ }
130
+ export declare function createDefaultRenderers(options?: DefaultRendererOptions): DefaultRenderers;
131
+ export declare function createLayoutRenderer(render: LayoutRendererRegistration["render"], options?: Partial<LayoutRendererRegistration>): LayoutRendererRegistration;
132
+ export declare function createArrayRenderer(render: ArrayRendererRegistration["render"], options?: Partial<ArrayRendererRegistration>): ArrayRendererRegistration;
133
+ export declare function createDataRenderer(render: DataRendererRegistration["render"], options?: Partial<DataRendererRegistration>): DataRendererRegistration;
134
+ export declare function createLabelRenderer(render: LabelRendererRegistration["render"], options?: Omit<LabelRendererRegistration, "type">): LabelRendererRegistration;
135
+ export declare function createVisibilityRenderer(render: VisibilityRendererRegistration["render"], options?: Partial<VisibilityRendererRegistration>): VisibilityRendererRegistration;
136
+ export declare function createAdornmentRenderer(render: (props: AdornmentProps) => AdornmentRenderer, options?: Partial<AdornmentRendererRegistration>): AdornmentRendererRegistration;
137
+ export interface SelectRendererOptions {
138
+ className?: string;
139
+ emptyText?: string;
140
+ requiredText?: string;
141
+ }
142
+ export declare function createSelectRenderer(options?: SelectRendererOptions): DataRendererRegistration;
143
+ type SelectConversion = (a: any) => string | number;
144
+ interface SelectDataRendererProps {
145
+ id?: string;
146
+ className?: string;
147
+ options: {
148
+ name: string;
149
+ value: any;
150
+ disabled?: boolean;
151
+ }[];
152
+ emptyText?: string;
153
+ requiredText?: string;
154
+ required: boolean;
155
+ state: Control<any>;
156
+ convert: SelectConversion;
157
+ }
158
+ export declare function SelectDataRenderer({ state, options, className, convert, required, emptyText, requiredText, ...props }: SelectDataRendererProps): React.JSX.Element;
159
+ export declare function createSelectConversion(ft: string): SelectConversion;
160
+ type InputConversion = [string, (s: any) => any, (a: any) => string | number];
161
+ export declare function createInputConversion(ft: string): InputConversion;
162
+ export declare function createDefaultVisibilityRenderer(): VisibilityRendererRegistration;
163
+ export declare function DefaultVisibility({ visibility, children, }: {
164
+ visibility: Control<Visibility | undefined>;
165
+ children: () => ReactNode;
166
+ }): string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
167
+ export declare function DefaultLayout({ className, errorClass, errorControl, layout: { controlEnd, controlStart, label, children }, }: DefaultLayoutRendererOptions & {
168
+ errorControl?: Control<any>;
169
+ layout: RenderedLayout;
170
+ }): React.JSX.Element;
171
+ export {};