@react-typed-forms/schemas 1.0.0-dev.18 → 1.0.0-dev.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/types.ts","../src/schemaBuilder.ts","../src/util.ts","../src/controlRender.tsx","../src/hooks.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 defaultValue?: any;\n isTypeField?: boolean | null;\n searchable?: boolean | null;\n options?: FieldOption[] | null;\n validators?: SchemaValidator[] | null;\n /**\n * @deprecated Use options directly\n */\n restrictions?: SchemaRestrictions | undefined | 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 SchemaRestrictions {\n options?: FieldOption[] | null;\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}\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}\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 children: ControlDefinition[];\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}\n\nexport function dataControl(\n field: string,\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return { type: ControlDefinitionType.Data, field, ...options };\n}\n\nexport function fieldValueExpr(\n field: string,\n value: any,\n): FieldValueExpression {\n return { type: ExpressionType.FieldValue, field, value };\n}\n\nexport function visibility(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Visible, expr };\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 tags: [],\n field,\n displayName,\n type: FieldType.Compound,\n collection,\n system: false,\n treeChildren: false,\n children: [],\n onlyForTypes: [],\n required: true,\n };\n}\n","import { FieldOption, SchemaField } from \"./types\";\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","import {\n ActionControlDefinition,\n AdornmentPlacement,\n CompoundField,\n ControlAdornment,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DisplayControlDefinition,\n EntityExpression,\n FieldOption,\n FieldType,\n GroupedControlsDefinition,\n RenderOptions,\n SchemaField,\n SchemaValidator,\n visitControlDefinition,\n} from \"./types\";\nimport React, {\n Context,\n createContext,\n Key,\n ReactElement,\n ReactNode,\n useContext,\n} from \"react\";\nimport { Control, newControl } from \"@react-typed-forms/core\";\nimport { fieldDisplayName } from \"./util\";\n\nexport interface SchemaHooks {\n useExpression(\n expr: EntityExpression,\n formState: FormEditState,\n ): Control<any | undefined>;\n useValidators(\n formState: FormEditState,\n isVisible: boolean,\n control: Control<any>,\n required: boolean,\n validations?: SchemaValidator[] | null,\n ): void;\n}\n\nexport interface FormEditHooks {\n useDataProperties(\n formState: FormEditState,\n definition: DataControlDefinition,\n field: SchemaField,\n renderers: FormRenderer,\n ): DataRendererProps;\n useGroupProperties(\n formState: FormEditState,\n definition: GroupedControlsDefinition,\n currentHooks: FormEditHooks,\n renderers: FormRenderer,\n ): GroupRendererProps;\n useDisplayProperties(\n formState: FormEditState,\n definition: DisplayControlDefinition,\n ): DisplayRendererProps;\n useActionProperties(\n formState: FormEditState,\n definition: ActionControlDefinition,\n ): ActionRendererProps;\n schemaHooks: SchemaHooks;\n}\n\nexport interface DataRendererProps {\n definition: DataControlDefinition;\n renderOptions: RenderOptions;\n visible: Visibility;\n control: Control<any>;\n field: SchemaField;\n array?: ArrayRendererProps;\n readonly: boolean;\n defaultValue: any;\n required: boolean;\n options: FieldOption[] | undefined | null;\n customRender?: (props: DataRendererProps) => ReactElement;\n formState: FormEditState;\n}\n\nexport interface GroupRendererProps {\n definition: Omit<GroupedControlsDefinition, \"children\">;\n visible: Visibility;\n field?: CompoundField;\n array?: ArrayRendererProps;\n hideTitle: boolean;\n hooks: FormEditHooks;\n childCount: number;\n renderChild: (child: number) => ReactElement;\n}\n\nexport interface ControlData {\n [field: string]: any;\n}\n\nexport interface FormEditState {\n fields: SchemaField[];\n data: Control<ControlData>;\n readonly?: boolean;\n invisible?: boolean;\n}\n\nexport interface ArrayRendererProps {\n definition: DataControlDefinition | GroupedControlsDefinition;\n control: Control<any[]>;\n field: SchemaField;\n addAction?: ActionRendererProps;\n removeAction?: (childCount: number) => ActionRendererProps;\n childCount: number;\n renderChild: (childCount: number) => ReactElement;\n childKey: (childCount: number) => Key;\n}\n\nexport interface AdornmentProps {\n key: Key;\n definition: ControlAdornment;\n}\n\nexport interface AdornmentRenderer {\n wrap?: (children: ReactElement) => ReactElement;\n child?: [AdornmentPlacement, ReactNode];\n}\n\nexport interface FormRenderer {\n renderData: (props: DataRendererProps) => ReactElement;\n renderGroup: (props: GroupRendererProps) => ReactElement;\n renderDisplay: (props: DisplayRendererProps) => ReactElement;\n renderAction: (props: ActionRendererProps) => ReactElement;\n renderArray: (props: ArrayRendererProps) => ReactElement;\n renderLabel: (props: LabelRendererProps, elem: ReactElement) => ReactElement;\n renderVisibility: (visible: Visibility, elem: ReactElement) => ReactElement;\n renderAdornment: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nlet _FormRendererComponentsContext: Context<FormRenderer | undefined> | null =\n null;\n\nfunction FormRendererComponentsContext() {\n if (!_FormRendererComponentsContext) {\n _FormRendererComponentsContext = createContext<FormRenderer | undefined>(\n undefined,\n );\n }\n return _FormRendererComponentsContext;\n}\n\nexport function FormRendererProvider({\n value,\n children,\n}: {\n value: FormRenderer;\n children: ReactNode;\n}) {\n const { Provider } = FormRendererComponentsContext();\n return <Provider value={value} children={children} />;\n}\n\nexport function useFormRendererComponents() {\n const c = useContext(FormRendererComponentsContext());\n if (!c) {\n throw \"Need to use FormRendererComponentContext.Provider\";\n }\n return c;\n}\n\nexport interface Visibility {\n value: boolean;\n canChange: boolean;\n}\nexport interface LabelRendererProps {\n visible: Visibility;\n title?: ReactNode;\n forId?: string;\n required: boolean;\n control?: Control<any>;\n group?: boolean;\n renderAdornment: (placement: AdornmentPlacement) => ReactElement;\n}\n\nexport interface DisplayRendererProps {\n definition: DisplayControlDefinition;\n visible: Visibility;\n}\n\nexport interface ActionRendererProps {\n definition: ActionControlDefinition;\n visible: Visibility;\n onClick: () => void;\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 type AnySchemaFields =\n | SchemaField\n | (Omit<CompoundField, \"children\"> & { children: AnySchemaFields[] });\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(sf: SchemaField): any {\n if (isCompoundField(sf)) {\n return sf.required\n ? sf.collection\n ? []\n : defaultValueForFields(sf.children)\n : undefined;\n }\n if (sf.collection) return [];\n return sf.defaultValue;\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}\nexport function controlTitle(\n title: string | undefined | null,\n field: SchemaField,\n) {\n return title ? title : fieldDisplayName(field);\n}\n\nexport function renderControl<S extends ControlDefinition>(\n definition: S,\n formState: FormEditState,\n hooks: FormEditHooks,\n key: Key,\n): ReactElement {\n const { fields } = formState;\n return visitControlDefinition(\n definition,\n {\n data: (def) => {\n const fieldData = findScalarField(fields, def.field);\n if (!fieldData)\n return <h1 key={key}>No schema field for: {def.field}</h1>;\n return (\n <DataRenderer\n key={key}\n formState={formState}\n hooks={hooks}\n controlDef={def}\n fieldData={fieldData}\n />\n );\n },\n group: (d: GroupedControlsDefinition) => (\n <GroupRenderer\n key={key}\n hooks={hooks}\n groupDef={d}\n formState={formState}\n />\n ),\n action: (d: ActionControlDefinition) => (\n <ActionRenderer\n key={key}\n hooks={hooks}\n formState={formState}\n actionDef={d}\n />\n ),\n display: (d: DisplayControlDefinition) => (\n <DisplayRenderer\n key={key}\n hooks={hooks}\n formState={formState}\n displayDef={d}\n />\n ),\n },\n () => <h1>Unknown control: {(definition as any).type}</h1>,\n );\n}\n\n/** @trackControls */\nfunction DataRenderer({\n hooks,\n formState,\n controlDef,\n fieldData,\n}: {\n hooks: FormEditHooks;\n controlDef: DataControlDefinition;\n formState: FormEditState;\n fieldData: SchemaField;\n}) {\n const renderer = useFormRendererComponents();\n const props = hooks.useDataProperties(\n formState,\n controlDef,\n fieldData,\n renderer,\n );\n return (props.customRender ?? renderer.renderData)(props);\n}\n\n/** @trackControls */\nfunction ActionRenderer({\n hooks,\n formState,\n actionDef,\n}: {\n hooks: FormEditHooks;\n actionDef: ActionControlDefinition;\n formState: FormEditState;\n}) {\n const { renderAction } = useFormRendererComponents();\n const actionControlProperties = hooks.useActionProperties(\n formState,\n actionDef,\n );\n return renderAction(actionControlProperties);\n}\n\n/** @trackControls */\nfunction GroupRenderer({\n hooks,\n formState,\n groupDef,\n}: {\n hooks: FormEditHooks;\n groupDef: GroupedControlsDefinition;\n formState: FormEditState;\n}) {\n const renderers = useFormRendererComponents();\n const groupProps = hooks.useGroupProperties(\n formState,\n groupDef,\n hooks,\n renderers,\n );\n return renderers.renderGroup(groupProps);\n}\n\n/** @trackControls */\nfunction DisplayRenderer({\n hooks,\n formState,\n displayDef,\n}: {\n hooks: FormEditHooks;\n displayDef: DisplayControlDefinition;\n formState: FormEditState;\n}) {\n const { renderDisplay } = useFormRendererComponents();\n const displayProps = hooks.useDisplayProperties(formState, displayDef);\n return renderDisplay(displayProps);\n}\n\nexport function controlForField(\n field: string,\n formState: FormEditState,\n): Control<any> {\n const refField = findField(formState.fields, field);\n return (\n (refField && formState.data.fields[refField.field]) ?? newControl(undefined)\n );\n}\n\nexport function fieldForControl(c: ControlDefinition) {\n return isDataControl(c)\n ? c.field\n : isGroupControl(c)\n ? c.compoundField\n : undefined;\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 const AlwaysVisible: Visibility = { value: true, canChange: false };\n\nexport function createAction(\n label: string,\n onClick: () => void,\n actionId?: string,\n): ActionRendererProps {\n return {\n definition: {\n type: ControlDefinitionType.Action,\n actionId: actionId ?? label,\n title: label,\n },\n visible: AlwaysVisible,\n onClick,\n };\n}\n\nexport function visitControlData<S extends ControlDefinition, A>(\n definition: S,\n { fields, data }: FormEditState,\n cb: (\n definition: DataControlDefinition,\n control: Control<any>,\n ) => A | undefined,\n): A | undefined {\n return visitControlDefinition<A | undefined>(\n definition,\n {\n data(def: DataControlDefinition) {\n const fieldData = findScalarField(fields, def.field);\n if (!fieldData) return undefined;\n return cb(def, data.fields[fieldData.field]);\n },\n group(d: GroupedControlsDefinition) {\n if (d.compoundField) {\n const compound = findCompoundField(fields, d.compoundField);\n if (!compound) return;\n fields = compound.children;\n data = data.fields[compound.field];\n }\n const childState = { fields, data };\n for (let c of d.children) {\n const res = visitControlData(c, childState, cb);\n if (res !== undefined) return res;\n }\n return undefined;\n },\n action(d: ActionControlDefinition) {\n return undefined;\n },\n display(d: DisplayControlDefinition) {\n return undefined;\n },\n },\n () => undefined,\n );\n}\n","import {\n ActionControlDefinition,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n DateComparison,\n DateValidator,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n FieldOption,\n FieldValueExpression,\n GroupedControlsDefinition,\n JsonataExpression,\n SchemaField,\n SchemaValidator,\n ValidatorType,\n} from \"./types\";\nimport {\n ActionRendererProps,\n ArrayRendererProps,\n controlForField,\n controlTitle,\n DataRendererProps,\n elementValueForField,\n fieldForControl,\n findCompoundField,\n findField,\n FormEditHooks,\n FormEditState,\n GroupRendererProps,\n isGroupControl,\n isScalarField,\n renderControl,\n SchemaHooks,\n Visibility,\n} from \"./controlRender\";\nimport React, { Fragment, ReactElement, useEffect, useMemo } from \"react\";\nimport {\n addElement,\n Control,\n ControlChange,\n newControl,\n removeElement,\n useComputed,\n useControl,\n useControlEffect,\n useValidator,\n} from \"@react-typed-forms/core\";\nimport jsonata from \"jsonata\";\n\nexport function useDefaultValue(\n definition: DataControlDefinition,\n field: SchemaField,\n formState: FormEditState,\n hooks: SchemaHooks,\n) {\n const valueExpression = definition.dynamic?.find(\n (x) => x.type === DynamicPropertyType.DefaultValue,\n );\n if (valueExpression) {\n return hooks.useExpression(valueExpression.expr, formState).value;\n }\n return field.defaultValue;\n}\n\nexport function useIsControlVisible(\n definition: ControlDefinition,\n formState: FormEditState,\n hooks: SchemaHooks,\n): Visibility {\n const visibleExpression = definition.dynamic?.find(\n (x) => x.type === DynamicPropertyType.Visible,\n );\n if (visibleExpression && visibleExpression.expr) {\n const exprValue = hooks.useExpression(\n visibleExpression.expr,\n formState,\n ).value;\n return {\n value: Boolean(exprValue),\n canChange: true,\n };\n }\n const schemaFields = formState.fields;\n\n const { typeControl, compoundField } = useMemo(() => {\n const typeField = schemaFields.find(\n (x) => isScalarField(x) && x.isTypeField,\n ) as SchemaField | undefined;\n\n const typeControl = ((typeField &&\n formState.data.fields?.[typeField.field]) ??\n newControl(undefined)) as Control<string | undefined>;\n const compoundField =\n isGroupControl(definition) && definition.compoundField\n ? formState.data.fields[definition.compoundField]\n : undefined;\n return { typeControl, compoundField };\n }, [schemaFields, formState.data]);\n\n const fieldName = fieldForControl(definition);\n const onlyForTypes = (\n fieldName ? findField(schemaFields, fieldName) : undefined\n )?.onlyForTypes;\n const canChange = Boolean(compoundField || (onlyForTypes?.length ?? 0) > 0);\n const value =\n (!compoundField || compoundField.value != null) &&\n (!onlyForTypes ||\n onlyForTypes.length === 0 ||\n Boolean(typeControl.value && onlyForTypes.includes(typeControl.value)));\n return { value, canChange };\n}\n\nexport function getDefaultScalarControlProperties(\n definition: DataControlDefinition,\n field: SchemaField,\n visible: Visibility,\n defaultValue: any,\n control: Control<any>,\n formState: FormEditState,\n): DataRendererProps {\n return {\n definition,\n field,\n defaultValue,\n options: getOptionsForScalarField(field),\n renderOptions: definition.renderOptions ?? {\n type: DataRenderType.Standard,\n },\n required: definition.required ?? false,\n visible,\n readonly: formState.readonly ?? definition.readonly ?? false,\n control,\n formState,\n };\n}\n\nexport function getOptionsForScalarField(\n field: SchemaField,\n): FieldOption[] | undefined | null {\n const opts = field.options ?? field.restrictions?.options;\n if (opts?.length ?? 0 > 0) {\n return opts;\n }\n return undefined;\n}\n\nexport function createDefaultSchemaHooks(): SchemaHooks {\n function useExpression(\n expr: EntityExpression,\n formState: FormEditState,\n ): Control<any | undefined> {\n switch (expr.type) {\n case ExpressionType.Jsonata:\n const jExpr = expr as JsonataExpression;\n const compiledExpr = useMemo(\n () => jsonata(jExpr.expression),\n [jExpr.expression],\n );\n const control = useControl();\n useControlEffect(\n () => formState.data.value,\n async (v) => {\n control.value = await compiledExpr.evaluate(v);\n },\n );\n return control;\n case ExpressionType.FieldValue:\n const fvExpr = expr as FieldValueExpression;\n return useComputed(() => {\n const fv = controlForField(fvExpr.field, formState).value;\n return Array.isArray(fv)\n ? fv.includes(fvExpr.value)\n : fv === fvExpr.value;\n });\n default:\n return useControl(undefined);\n }\n }\n\n function useValidators(\n formState: FormEditState,\n isVisible: boolean,\n control: Control<any>,\n required: boolean,\n validators?: SchemaValidator[] | null,\n ) {\n if (required)\n useValidator(\n control,\n (v) =>\n isVisible && (v == null || v == \"\") ? \"Please enter a value\" : null,\n \"required\",\n );\n validators?.forEach((v, i) => {\n switch (v.type) {\n case ValidatorType.Date:\n processDateValidator(v as DateValidator);\n break;\n case ValidatorType.Jsonata:\n const errorMsg = useExpression(\n v satisfies EntityExpression,\n formState,\n );\n useControlEffect(\n () => [isVisible, errorMsg.value],\n ([isVisible, msg]) =>\n control.setError(v.type + i, isVisible ? msg : null),\n true,\n );\n break;\n }\n\n function processDateValidator(dv: DateValidator) {\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 (\n notAfter ? selDate > comparisonDate : selDate < comparisonDate\n ) {\n return `Date must not be ${\n notAfter ? \"after\" : \"before\"\n } ${new Date(comparisonDate).toDateString()}`;\n }\n }\n return null;\n },\n \"date\" + i,\n );\n }\n });\n }\n return { useExpression, useValidators };\n}\n\nexport const defaultFormEditHooks = createFormEditHooks(\n createDefaultSchemaHooks(),\n);\n\nexport function createFormEditHooks(schemaHooks: SchemaHooks): FormEditHooks {\n return {\n schemaHooks,\n useDataProperties(\n formState,\n definition,\n field,\n renderer,\n ): DataRendererProps {\n const visible = useIsControlVisible(definition, formState, schemaHooks);\n const isVisible = visible.value && !formState.invisible;\n const defaultValue = useDefaultValue(\n definition,\n field,\n formState,\n schemaHooks,\n );\n const scalarControl = formState.data.fields[field.field];\n\n useEffect(() => {\n if (!isVisible) scalarControl.value = null;\n else if (scalarControl.current.value == null) {\n scalarControl.value = defaultValue;\n }\n }, [isVisible, defaultValue]);\n\n const dataProps = getDefaultScalarControlProperties(\n definition,\n field,\n visible,\n defaultValue,\n scalarControl,\n formState,\n );\n\n schemaHooks.useValidators(\n formState,\n isVisible,\n scalarControl,\n dataProps.required,\n definition.validators,\n );\n\n useEffect(() => {\n const subscription = scalarControl.subscribe(\n (c) => (c.touched = true),\n ControlChange.Validate,\n );\n return () => scalarControl.unsubscribe(subscription);\n }, []);\n\n if (!field.collection) return dataProps;\n return {\n ...dataProps,\n array: defaultArrayRendererProps(\n scalarControl,\n field,\n definition,\n dataProps.readonly,\n (c) => renderer.renderData({ ...dataProps, control: c }),\n ),\n };\n },\n useDisplayProperties: (fs, definition) => {\n const visible = useIsControlVisible(definition, fs, schemaHooks);\n return { visible, definition };\n },\n useGroupProperties: (fs, definition, hooks, renderers) => {\n const visible = useIsControlVisible(definition, fs, schemaHooks);\n const field = definition.compoundField\n ? findCompoundField(fs.fields, definition.compoundField)\n : undefined;\n const newFs: Omit<FormEditState, \"data\"> & { data: Control<any> } = {\n ...fs,\n fields: field ? field.children : fs.fields,\n data: field ? fs.data.fields[field.field] : fs.data,\n invisible: !visible.value || fs.invisible,\n };\n const groupProps = {\n visible,\n hooks,\n hideTitle: definition.groupOptions.hideTitle ?? false,\n childCount: definition.children.length,\n renderChild: (i) =>\n renderControl(definition.children[i], newFs, hooks, i),\n definition,\n } satisfies GroupRendererProps;\n if (field?.collection) {\n return {\n ...groupProps,\n array: defaultArrayRendererProps(\n newFs.data,\n field,\n definition,\n fs.readonly,\n (e) =>\n renderers.renderGroup({\n ...groupProps,\n hideTitle: true,\n renderChild: (i) =>\n renderControl(\n definition.children[i],\n { ...newFs, data: e },\n hooks,\n i,\n ),\n }),\n ),\n };\n }\n return groupProps;\n },\n useActionProperties(\n formState: FormEditState,\n definition: ActionControlDefinition,\n ): ActionRendererProps {\n const visible = useIsControlVisible(definition, formState, schemaHooks);\n return {\n visible,\n onClick: () => {},\n definition,\n };\n },\n };\n}\n\nfunction defaultArrayRendererProps(\n control: Control<any[]>,\n field: SchemaField,\n definition: DataControlDefinition | GroupedControlsDefinition,\n readonly: boolean | undefined | null,\n renderElem: (c: Control<any>) => ReactElement,\n): ArrayRendererProps {\n return {\n control,\n childCount: control.elements?.length ?? 0,\n field,\n definition,\n addAction: !readonly\n ? {\n definition: {\n title: \"Add \" + controlTitle(definition.title, field),\n type: ControlDefinitionType.Action,\n actionId: \"addElement\",\n },\n visible: { value: true, canChange: false },\n onClick: () => addElement(control, elementValueForField(field)),\n }\n : undefined,\n removeAction: !readonly\n ? (i) => ({\n definition: {\n title: \"Remove\",\n type: ControlDefinitionType.Action,\n actionId: \"removeElement\",\n },\n visible: { value: true, canChange: false },\n onClick: () => removeElement(control, control.elements[i]),\n })\n : undefined,\n childKey: (i) => control.elements[i].uniqueId,\n renderChild: (i) => {\n const c = control.elements[i];\n return <Fragment key={c.uniqueId}>{renderElem(c)}</Fragment>;\n },\n };\n}\n","import React, {\n CSSProperties,\n Fragment,\n ReactElement,\n ReactNode,\n useMemo,\n useState,\n} from \"react\";\nimport {\n ActionRendererProps,\n AdornmentProps,\n AdornmentRenderer,\n ArrayRendererProps,\n controlTitle,\n DataRendererProps,\n DisplayRendererProps,\n FormRenderer,\n GroupRendererProps,\n LabelRendererProps,\n Visibility,\n} from \"./controlRender\";\nimport clsx from \"clsx\";\nimport {\n AdornmentPlacement,\n ControlDefinition,\n DataRenderType,\n DisplayDataType,\n FieldOption,\n FieldType,\n GridRenderer,\n HtmlDisplay,\n isGridRenderer,\n TextDisplay,\n} from \"./types\";\nimport { Control, Fcheckbox, formControlProps } from \"@react-typed-forms/core\";\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 visibility: VisibilityRendererRegistration;\n adornment: AdornmentRendererRegistration;\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 defaultLabel: (label?: Partial<LabelRendererProps>) => LabelRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface LabelRendererRegistration {\n type: \"label\";\n render: (\n labelProps: LabelRendererProps,\n elem: ReactElement,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface ActionRendererRegistration {\n type: \"action\";\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 render: (\n props: GroupRendererProps,\n defaultLabel: (label?: Partial<LabelRendererProps>) => LabelRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface DisplayRendererRegistration {\n type: \"display\";\n render: (\n props: DisplayRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface VisibilityRendererRegistration {\n type: \"visibility\";\n render: (visible: Visibility, elem: ReactElement) => ReactElement;\n}\n\nexport interface AdornmentRendererRegistration {\n type: \"adornment\";\n adornmentType?: string | string[];\n render: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nexport type AnyRendererRegistration =\n | DataRendererRegistration\n | GroupRendererRegistration\n | DisplayRendererRegistration\n | ActionRendererRegistration\n | LabelRendererRegistration\n | ArrayRendererRegistration\n | AdornmentRendererRegistration\n | VisibilityRendererRegistration;\n\nexport function createFormRenderer(\n customRenderers: AnyRendererRegistration[] = [],\n defaultRenderers: DefaultRenderers = createClassStyledRenderers(),\n): FormRenderer {\n const dataRegistrations = customRenderers.filter(isDataRegistration);\n const adornmentRegistrations = customRenderers.filter(\n isAdornmentRegistration,\n );\n const labelRenderer =\n customRenderers.find(isLabelRegistration) ?? defaultRenderers.label;\n const renderVisibility = (\n customRenderers.find(isVisibilityRegistration) ??\n defaultRenderers.visibility\n ).render;\n\n const formRenderers = {\n renderAction,\n renderData,\n renderGroup,\n renderDisplay,\n renderLabel,\n renderArray,\n renderVisibility,\n renderAdornment,\n };\n\n function renderAdornment(props: AdornmentProps): AdornmentRenderer {\n const renderer =\n adornmentRegistrations.find((x) =>\n isOneOf(x.adornmentType, props.definition.type),\n ) ?? defaultRenderers.adornment;\n return renderer.render(props);\n }\n\n function renderArray(props: ArrayRendererProps) {\n return defaultRenderers.array.render(props, formRenderers);\n }\n\n function renderLabel(props: LabelRendererProps, elem: ReactElement) {\n return labelRenderer.render(props, elem, formRenderers);\n }\n\n function withAdornments(\n definition: ControlDefinition,\n adornments?: AdornmentRenderer[],\n ): [\n AdornmentRenderer[],\n (placement: AdornmentPlacement) => ReactElement,\n (elem: ReactElement) => ReactElement,\n ] {\n const rAdornments = adornments\n ? adornments\n : definition.adornments?.map((x, i) =>\n renderAdornment({ definition: x, key: i }),\n ) ?? [];\n function combineAdornments(placement: AdornmentPlacement) {\n return (\n <>\n {rAdornments\n .filter((x) => x.child && x.child[0] === placement)\n .map((x) => x.child![1])}\n </>\n );\n }\n return [\n rAdornments,\n combineAdornments,\n (mainElem) =>\n !adornments\n ? mainElem\n : rAdornments.reduce((e, n) => n.wrap?.(e) ?? e, mainElem),\n ];\n }\n\n function renderData(\n props: DataRendererProps,\n adornments?: AdornmentRenderer[],\n ): ReactElement {\n const {\n definition,\n renderOptions: { type: renderType },\n visible,\n required,\n control,\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 [rAdornments, renderAdornment, wrapElem] = withAdornments(\n definition,\n adornments,\n );\n return wrapElem(\n renderer.render(props, createLabel, {\n ...formRenderers,\n renderData: (p) => renderData(p, rAdornments),\n }),\n );\n\n function createLabel(labelProps?: Partial<LabelRendererProps>) {\n return {\n visible,\n required,\n control,\n forId: \"c\" + control.uniqueId,\n renderAdornment,\n ...labelProps,\n title: labelProps?.title ?? controlTitle(definition.title, field),\n };\n }\n }\n\n function renderGroup(\n props: GroupRendererProps,\n adornments?: AdornmentRenderer[],\n ): ReactElement {\n const { definition, visible, field } = props;\n\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n props.definition,\n adornments,\n );\n\n const title = props.hideTitle\n ? undefined\n : field\n ? controlTitle(definition.title, field)\n : definition.title;\n\n return wrapElem(\n defaultRenderers.group.render(props, createLabel, {\n ...formRenderers,\n renderGroup: (p) => renderGroup(p, rAdornments),\n }),\n );\n\n function createLabel(\n labelProps?: Partial<LabelRendererProps>,\n ): LabelRendererProps {\n return {\n required: false,\n visible,\n group: true,\n renderAdornment,\n title,\n ...labelProps,\n };\n }\n }\n\n function renderAction(\n props: ActionRendererProps,\n adornments?: AdornmentRenderer[],\n ) {\n const renderer =\n customRenderers.find(isActionRegistration) ?? defaultRenderers.action;\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n props.definition,\n adornments,\n );\n return wrapElem(renderer.render(props, formRenderers));\n }\n\n function renderDisplay(\n props: DisplayRendererProps,\n adornments?: AdornmentRenderer[],\n ) {\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n props.definition,\n adornments,\n );\n return wrapElem(defaultRenderers.display.render(props, formRenderers));\n }\n\n return formRenderers;\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n requiredElement?: ReactNode;\n labelClass?: string;\n}\n\ninterface DefaultActionRendererOptions {\n className?: string;\n}\n\nexport function createDefaultActionRenderer(\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n function render(\n { visible, onClick, definition: { title } }: ActionRendererProps,\n { renderVisibility }: Pick<FormRenderer, \"renderVisibility\">,\n ) {\n return renderVisibility(\n visible,\n <button className={options.className} onClick={onClick}>\n {title}\n </button>,\n );\n }\n return { render, type: \"action\" };\n}\nexport function createDefaultLabelRenderer(\n options: DefaultLabelRendererOptions = { requiredElement: <span> *</span> },\n): LabelRendererRegistration {\n return {\n render: (p, elem, { renderVisibility }) =>\n renderVisibility(\n p.visible,\n <DefaultLabelRenderer {...p} {...options} children={elem} />,\n ),\n type: \"label\",\n };\n}\n\nexport function DefaultLabelRenderer({\n className,\n labelClass,\n title,\n forId,\n required,\n children,\n group,\n groupLabelClass,\n renderAdornment,\n requiredElement,\n}: LabelRendererProps &\n DefaultLabelRendererOptions & { children: ReactElement }) {\n return title ? (\n <div className={className}>\n {renderAdornment(AdornmentPlacement.LabelStart)}\n <label\n htmlFor={forId}\n className={clsx(labelClass, group && groupLabelClass)}\n >\n {title}\n {required && requiredElement}\n </label>\n {renderAdornment(AdornmentPlacement.LabelEnd)}\n {renderAdornment(AdornmentPlacement.ControlStart)}\n {children}\n {renderAdornment(AdornmentPlacement.ControlEnd)}\n </div>\n ) : (\n <>{children}</>\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 }: ArrayRendererProps,\n { renderAction }: Pick<FormRenderer, \"renderAction\">,\n ) {\n return (\n <>\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 {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 </>\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(\n props: GroupRendererProps,\n defaultLabel: (label?: Partial<LabelRendererProps>) => LabelRendererProps,\n {\n renderLabel,\n renderArray,\n }: Pick<FormRenderer, \"renderLabel\" | \"renderArray\" | \"renderGroup\">,\n ) {\n const { childCount, renderChild, definition } = props;\n\n return renderLabel(\n defaultLabel(),\n props.array ? renderArray(props.array) : renderChildren(),\n );\n\n function renderChildren() {\n const { groupOptions } = definition;\n const { style, className: gcn } = isGridRenderer(groupOptions)\n ? gridStyles(groupOptions)\n : ({ className: standardClassName } satisfies StyleProps);\n return (\n <div className={clsx(className, gcn)} style={style}>\n {Array.from({ length: childCount }, (_, x) => renderChild(x))}\n </div>\n );\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 function doRender({ definition: { displayData } }: DisplayRendererProps) {\n switch (displayData.type) {\n case DisplayDataType.Text:\n return (\n <div className={options.textClassName}>\n {(displayData as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n className={options.htmlClassName}\n dangerouslySetInnerHTML={{\n __html: (displayData as HtmlDisplay).html,\n }}\n />\n );\n default:\n return <h1>Unknown display type: {displayData.type}</h1>;\n }\n }\n return {\n render: (p, { renderVisibility }) =>\n renderVisibility(p.visible, doRender(p)),\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, defaultLabel, renderers) => {\n if (props.array) {\n return renderers.renderArray(props.array);\n }\n let renderType = props.renderOptions.type;\n const fieldType = props.field.type;\n const isBool = fieldType === FieldType.Bool;\n if (booleanOptions != null && isBool && props.options == null) {\n return renderers.renderData({ ...props, options: booleanOptions });\n }\n if (renderType === DataRenderType.Standard && hasOptions(props)) {\n return optionRenderer.render(props, defaultLabel, renderers);\n }\n switch (renderType) {\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, defaultLabel, renderers);\n }\n const l = defaultLabel();\n return renderers.renderLabel(\n l,\n renderType === DataRenderType.Checkbox ? (\n <Fcheckbox control={props.control} />\n ) : (\n <ControlInput\n className={inputClass}\n id={l.forId}\n readOnly={props.readonly}\n control={props.control}\n convert={createInputConversion(props.field.type)}\n />\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 DefaultVisibilityRendererOptions {}\n\nexport interface DefaultAdornmentRendererOptions {}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n return { type: \"adornment\", render: () => ({}) };\n}\nexport function createDefaultVisibilityRenderer(\n options: DefaultVisibilityRendererOptions = {},\n): VisibilityRendererRegistration {\n return {\n type: \"visibility\",\n render: (visible, children) => (visible.value ? children : <></>),\n };\n}\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n visibility?: DefaultVisibilityRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\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 visibility: createDefaultVisibilityRenderer(options.visibility),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n };\n}\n\nfunction createClassStyledRenderers() {\n return createDefaultRenderers({\n label: { 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: AnyRendererRegistration,\n): x is AdornmentRendererRegistration {\n return x.type === \"adornment\";\n}\n\nfunction isDataRegistration(\n x: AnyRendererRegistration,\n): x is DataRendererRegistration {\n return x.type === \"data\";\n}\n\nfunction isLabelRegistration(\n x: AnyRendererRegistration,\n): x is LabelRendererRegistration {\n return x.type === \"label\";\n}\n\nfunction isActionRegistration(\n x: AnyRendererRegistration,\n): x is ActionRendererRegistration {\n return x.type === \"action\";\n}\n\nfunction isVisibilityRegistration(\n x: AnyRendererRegistration,\n): x is VisibilityRendererRegistration {\n return x.type === \"visibility\";\n}\n\nfunction isOneOf(x: string | string[] | undefined, v: string) {\n return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;\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 createDataRendererLabelled(\n render: (\n props: DataRendererProps,\n id: string,\n renderers: FormRenderer,\n ) => ReactElement,\n options?: Partial<DataRendererRegistration>,\n): DataRendererRegistration {\n return {\n type: \"data\",\n render: (props, defaultLabel, renderers) => {\n const dl = defaultLabel();\n return renderers.renderLabel(dl, render(props, dl.forId!, renderers));\n },\n ...options,\n };\n}\n\nexport function createLabelRenderer(\n options: Omit<LabelRendererRegistration, \"type\">,\n): LabelRendererRegistration {\n return { type: \"label\", ...options };\n}\n\nexport function createAdornmentRenderer(\n render: (props: AdornmentProps) => AdornmentRenderer,\n options?: Omit<AdornmentRendererRegistration, \"type\">,\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 createDataRendererLabelled(\n (props, id) => (\n <SelectDataRenderer\n className={options.className}\n state={props.control}\n id={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","import React from \"react\";\nimport { DefaultRendererOptions } from \"./renderers\";\n\nexport const defaultTailwindTheme: DefaultRendererOptions = {\n label: {\n className: \"flex flex-col\",\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\",\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};\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","dataControl","field","options","_extends","fieldValueExpr","value","FieldValue","visibility","expr","Visible","isGridRenderer","Grid","buildSchema","def","Object","entries","map","stringField","displayName","makeScalarField","String","stringOptionsField","slice","call","arguments","withScalarOptions","v","n","defaultScalarField","makeCompoundField","defaultCompoundField","intField","Int","boolField","Bool","compoundField","fields","other","children","collection","tags","Compound","system","treeChildren","onlyForTypes","required","fieldHasTag","tag","_field$tags","Boolean","includes","fieldDisplayName","_field$displayName","hasOptions","o","_o$options$length","_o$options","length","_FormRendererComponentsContext","FormRendererComponentsContext","createContext","undefined","FormRendererProvider","_ref","_effect","_useComponentTracking","_FormRendererComponen","Provider","React","createElement","useFormRendererComponents","c","useContext","isScalarField","sf","isCompoundField","applyDefaultValues","defaultValueForFields","applyValue","filter","out","forEach","applyDefaultForField","defaultValueForField","parent","notElement","fromEntries","elementValueForField","findScalarField","findField","findCompoundField","find","controlTitle","title","renderControl","definition","formState","hooks","key","fieldData","DataRenderer","controlDef","d","GroupRenderer","groupDef","ActionRenderer","actionDef","DisplayRenderer","displayDef","_ref2","_effect2","_props$customRender","renderer","props","useDataProperties","customRender","renderData","_ref3","_effect3","_useFormRendererCompo","renderAction","actionControlProperties","useActionProperties","_ref4","_effect4","renderers","groupProps","useGroupProperties","renderGroup","_ref5","_effect5","_useFormRendererCompo2","renderDisplay","displayProps","useDisplayProperties","controlForField","_ref6","refField","newControl","fieldForControl","isDataControl","isGroupControl","AlwaysVisible","canChange","createAction","label","onClick","actionId","visible","visitControlData","_ref7","cb","compound","childState","_iterator","_createForOfIteratorHelperLoose","_step","done","res","useDefaultValue","_definition$dynamic","valueExpression","dynamic","DefaultValue","useExpression","useIsControlVisible","_definition$dynamic2","_onlyForTypes$length","visibleExpression","exprValue","schemaFields","_useMemo","useMemo","_formState$data$field","typeField","isTypeField","typeControl","fieldName","getDefaultScalarControlProperties","control","_definition$renderOpt","_definition$required","_formState$readonly","getOptionsForScalarField","renderOptions","Standard","readonly","_field$options","_field$restrictions","_opts$length","opts","restrictions","createDefaultSchemaHooks","Jsonata","jExpr","compiledExpr","jsonata","expression","useControl","useControlEffect","Promise","resolve","evaluate","then","_compiledExpr$evaluat","e","reject","fvExpr","useComputed","fv","Array","isArray","useValidators","isVisible","validators","useValidator","i","Date","processDateValidator","errorMsg","msg","setError","dv","comparisonDate","fixedDate","parse","nowDate","UTC","getFullYear","getMonth","getDate","daysFromCurrent","selDate","notAfter","comparison","NotAfter","toDateString","defaultFormEditHooks","createFormEditHooks","schemaHooks","invisible","scalarControl","useEffect","current","dataProps","subscription","subscribe","touched","ControlChange","Validate","unsubscribe","array","defaultArrayRendererProps","fs","_definition$groupOpti","newFs","hideTitle","groupOptions","childCount","renderChild","renderElem","_control$elements$len","_control$elements","elements","addAction","addElement","removeAction","removeElement","childKey","uniqueId","Fragment","createFormRenderer","customRenderers","defaultRenderers","_customRenderers$find","_customRenderers$find2","createClassStyledRenderers","dataRegistrations","isDataRegistration","adornmentRegistrations","isAdornmentRegistration","labelRenderer","isLabelRegistration","renderVisibility","isVisibilityRegistration","render","formRenderers","renderLabel","renderArray","renderAdornment","_adornmentRegistratio","isOneOf","adornmentType","adornment","elem","withAdornments","adornments","_definition$adornment","_definition$adornment2","rAdornments","combineAdornments","placement","child","mainElem","reduce","_n$wrap","wrap","_dataRegistrations$fi","renderType","_x$collection","_field$collection","_x$options","schemaType","match","_withAdornments","wrapElem","createLabel","p","labelProps","_labelProps$title","forId","_withAdornments2","_customRenderers$find3","isActionRegistration","_withAdornments3","_withAdornments4","createDefaultActionRenderer","className","createDefaultLabelRenderer","requiredElement","DefaultLabelRenderer","labelClass","groupLabelClass","LabelStart","htmlFor","clsx","LabelEnd","ControlStart","ControlEnd","createDefaultArrayRenderer","removableClass","childClass","removableChildClass","removeActionClass","addActionClass","from","_","createDefaultGroupRenderer","_ref8","_ref8$gridStyles","gridStyles","defaultGridStyles","_ref8$defaultGridColu","defaultGridColumns","gridClassName","standardClassName","_ref9","_ref9$columns","columns","style","gridTemplateColumns","defaultLabel","_ref10","renderChildren","_ref11","gcn","createDefaultDisplayRenderer","doRender","_ref12","displayData","Text","textClassName","text","Html","htmlClassName","dangerouslySetInnerHTML","__html","html","_ref13","DefaultBoolOptions","name","createDefaultDataRenderer","_options$selectOption","selectRenderer","createSelectRenderer","selectOptions","_optionRenderer$boole","optionRenderer","booleanOptions","inputClass","createDataRenderer","fieldType","isBool","Dropdown","l","Checkbox","Fcheckbox","ControlInput","id","readOnly","convert","createInputConversion","_ref14","_objectWithoutPropertiesLoose","_excluded","_formControlProps","formControlProps","errorText","onChange","inputProps","_excluded2","target","createDefaultAdornmentRenderer","createDefaultVisibilityRenderer","createDefaultRenderers","createDataRendererLabelled","dl","createLabelRenderer","createAdornmentRenderer","SelectDataRenderer","state","emptyText","requiredText","createSelectConversion","_ref15","_ref15$emptyText","_ref15$requiredText","_excluded3","disabled","_useState","useState","showEmpty","optionStringMap","ft","Double","a","_a$toString","toString","_a$toString2","parseInt","parseFloat","defaultTailwindTheme"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/types.ts","../src/schemaBuilder.ts","../src/util.ts","../src/controlRender.tsx","../src/hooks.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 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}\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}\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 children: ControlDefinition[];\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}\n\nexport function dataControl(\n field: string,\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return { type: ControlDefinitionType.Data, field, ...options };\n}\n\nexport function fieldValueExpr(\n field: string,\n value: any,\n): FieldValueExpression {\n return { type: ExpressionType.FieldValue, field, value };\n}\n\nexport function visibility(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Visible, expr };\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 tags: [],\n field,\n displayName,\n type: FieldType.Compound,\n collection,\n system: false,\n treeChildren: false,\n children: [],\n onlyForTypes: [],\n required: true,\n };\n}\n","import {\n CompoundField,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n FieldOption,\n FieldType,\n GridRenderer,\n GroupedControlsDefinition,\n GroupRenderType,\n SchemaField,\n} from \"./types\";\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(sf: SchemaField): any {\n if (isCompoundField(sf)) {\n return sf.required\n ? sf.collection\n ? []\n : defaultValueForFields(sf.children)\n : undefined;\n }\n if (sf.collection) return [];\n return sf.defaultValue;\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","import {\n ActionControlDefinition,\n AdornmentPlacement,\n CompoundField,\n ControlAdornment,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DisplayControlDefinition,\n EntityExpression,\n FieldOption,\n GroupedControlsDefinition,\n RenderOptions,\n SchemaField,\n SchemaValidator,\n visitControlDefinition,\n} from \"./types\";\nimport React, {Context, createContext, Key, ReactElement, ReactNode, useContext,} from \"react\";\nimport {Control, newControl} from \"@react-typed-forms/core\";\nimport {fieldDisplayName, findCompoundField, findField, findScalarField, isDataControl, isGroupControl} from \"./util\";\n\nexport interface SchemaHooks {\n useExpression(\n expr: EntityExpression,\n formState: FormEditState,\n ): Control<any | undefined>;\n useValidators(\n formState: FormEditState,\n isVisible: boolean,\n control: Control<any>,\n required: boolean,\n validations?: SchemaValidator[] | null,\n ): void;\n}\n\nexport interface FormEditHooks {\n useDataProperties(\n formState: FormEditState,\n definition: DataControlDefinition,\n field: SchemaField,\n renderers: FormRenderer,\n ): DataRendererProps;\n useGroupProperties(\n formState: FormEditState,\n definition: GroupedControlsDefinition,\n currentHooks: FormEditHooks,\n renderers: FormRenderer,\n ): GroupRendererProps;\n useDisplayProperties(\n formState: FormEditState,\n definition: DisplayControlDefinition,\n ): DisplayRendererProps;\n useActionProperties(\n formState: FormEditState,\n definition: ActionControlDefinition,\n ): ActionRendererProps;\n schemaHooks: SchemaHooks;\n}\n\nexport interface DataRendererProps {\n definition: DataControlDefinition;\n renderOptions: RenderOptions;\n visible: Visibility;\n control: Control<any>;\n field: SchemaField;\n array?: ArrayRendererProps;\n readonly: boolean;\n defaultValue: any;\n required: boolean;\n options: FieldOption[] | undefined | null;\n customRender?: (props: DataRendererProps) => ReactElement;\n formState: FormEditState;\n}\n\nexport interface GroupRendererProps {\n definition: Omit<GroupedControlsDefinition, \"children\">;\n visible: Visibility;\n field?: CompoundField;\n array?: ArrayRendererProps;\n hideTitle: boolean;\n hooks: FormEditHooks;\n childCount: number;\n renderChild: (child: number) => ReactElement;\n}\n\nexport interface ControlData {\n [field: string]: any;\n}\n\nexport interface FormEditState {\n fields: SchemaField[];\n data: Control<ControlData>;\n readonly?: boolean;\n invisible?: boolean;\n}\n\nexport interface ArrayRendererProps {\n definition: DataControlDefinition | GroupedControlsDefinition;\n control: Control<any[]>;\n field: SchemaField;\n addAction?: ActionRendererProps;\n removeAction?: (childCount: number) => ActionRendererProps;\n childCount: number;\n renderChild: (childCount: number) => ReactElement;\n childKey: (childCount: number) => Key;\n}\n\nexport interface AdornmentProps {\n key: Key;\n definition: ControlAdornment;\n}\n\nexport interface AdornmentRenderer {\n wrap?: (children: ReactElement) => ReactElement;\n child?: [AdornmentPlacement, ReactNode];\n}\n\nexport interface FormRenderer {\n renderData: (props: DataRendererProps) => ReactElement;\n renderGroup: (props: GroupRendererProps) => ReactElement;\n renderDisplay: (props: DisplayRendererProps) => ReactElement;\n renderAction: (props: ActionRendererProps) => ReactElement;\n renderArray: (props: ArrayRendererProps) => ReactElement;\n renderLabel: (props: LabelRendererProps, elem: ReactElement) => ReactElement;\n renderVisibility: (visible: Visibility, elem: ReactElement) => ReactElement;\n renderAdornment: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nlet _FormRendererComponentsContext: Context<FormRenderer | undefined> | null =\n null;\n\nfunction FormRendererComponentsContext() {\n if (!_FormRendererComponentsContext) {\n _FormRendererComponentsContext = createContext<FormRenderer | undefined>(\n undefined,\n );\n }\n return _FormRendererComponentsContext;\n}\n\nexport function FormRendererProvider({\n value,\n children,\n}: {\n value: FormRenderer;\n children: ReactNode;\n}) {\n const { Provider } = FormRendererComponentsContext();\n return <Provider value={value} children={children} />;\n}\n\nexport function useFormRendererComponents() {\n const c = useContext(FormRendererComponentsContext());\n if (!c) {\n throw \"Need to use FormRendererComponentContext.Provider\";\n }\n return c;\n}\n\nexport interface Visibility {\n value: boolean;\n canChange: boolean;\n}\nexport interface LabelRendererProps {\n visible: Visibility;\n title?: ReactNode;\n forId?: string;\n required: boolean;\n control?: Control<any>;\n group?: boolean;\n renderAdornment: (placement: AdornmentPlacement) => ReactElement;\n}\n\nexport interface DisplayRendererProps {\n definition: DisplayControlDefinition;\n visible: Visibility;\n}\n\nexport interface ActionRendererProps {\n definition: ActionControlDefinition;\n visible: Visibility;\n onClick: () => void;\n}\n\nexport type AnySchemaFields =\n | SchemaField\n | (Omit<CompoundField, \"children\"> & { children: AnySchemaFields[] });\n\nexport function controlTitle(\n title: string | undefined | null,\n field: SchemaField,\n) {\n return title ? title : fieldDisplayName(field);\n}\n\nexport function renderControl<S extends ControlDefinition>(\n definition: S,\n formState: FormEditState,\n hooks: FormEditHooks,\n key: Key,\n): ReactElement {\n const { fields } = formState;\n return visitControlDefinition(\n definition,\n {\n data: (def) => {\n const fieldData = findScalarField(fields, def.field);\n if (!fieldData)\n return <h1 key={key}>No schema field for: {def.field}</h1>;\n return (\n <DataRenderer\n key={key}\n formState={formState}\n hooks={hooks}\n controlDef={def}\n fieldData={fieldData}\n />\n );\n },\n group: (d: GroupedControlsDefinition) => (\n <GroupRenderer\n key={key}\n hooks={hooks}\n groupDef={d}\n formState={formState}\n />\n ),\n action: (d: ActionControlDefinition) => (\n <ActionRenderer\n key={key}\n hooks={hooks}\n formState={formState}\n actionDef={d}\n />\n ),\n display: (d: DisplayControlDefinition) => (\n <DisplayRenderer\n key={key}\n hooks={hooks}\n formState={formState}\n displayDef={d}\n />\n ),\n },\n () => <h1>Unknown control: {(definition as any).type}</h1>,\n );\n}\n\n/** @trackControls */\nfunction DataRenderer({\n hooks,\n formState,\n controlDef,\n fieldData,\n}: {\n hooks: FormEditHooks;\n controlDef: DataControlDefinition;\n formState: FormEditState;\n fieldData: SchemaField;\n}) {\n const renderer = useFormRendererComponents();\n const props = hooks.useDataProperties(\n formState,\n controlDef,\n fieldData,\n renderer,\n );\n return (props.customRender ?? renderer.renderData)(props);\n}\n\n/** @trackControls */\nfunction ActionRenderer({\n hooks,\n formState,\n actionDef,\n}: {\n hooks: FormEditHooks;\n actionDef: ActionControlDefinition;\n formState: FormEditState;\n}) {\n const { renderAction } = useFormRendererComponents();\n const actionControlProperties = hooks.useActionProperties(\n formState,\n actionDef,\n );\n return renderAction(actionControlProperties);\n}\n\n/** @trackControls */\nfunction GroupRenderer({\n hooks,\n formState,\n groupDef,\n}: {\n hooks: FormEditHooks;\n groupDef: GroupedControlsDefinition;\n formState: FormEditState;\n}) {\n const renderers = useFormRendererComponents();\n const groupProps = hooks.useGroupProperties(\n formState,\n groupDef,\n hooks,\n renderers,\n );\n return renderers.renderGroup(groupProps);\n}\n\n/** @trackControls */\nfunction DisplayRenderer({\n hooks,\n formState,\n displayDef,\n}: {\n hooks: FormEditHooks;\n displayDef: DisplayControlDefinition;\n formState: FormEditState;\n}) {\n const { renderDisplay } = useFormRendererComponents();\n const displayProps = hooks.useDisplayProperties(formState, displayDef);\n return renderDisplay(displayProps);\n}\n\nexport function controlForField(\n field: string,\n formState: FormEditState,\n): Control<any> {\n const refField = findField(formState.fields, field);\n return (\n (refField && formState.data.fields[refField.field]) ?? newControl(undefined)\n );\n}\n\nexport function fieldForControl(c: ControlDefinition) {\n return isDataControl(c)\n ? c.field\n : isGroupControl(c)\n ? c.compoundField\n : undefined;\n}\n\nexport const AlwaysVisible: Visibility = { value: true, canChange: false };\n\nexport function createAction(\n label: string,\n onClick: () => void,\n actionId?: string,\n): ActionRendererProps {\n return {\n definition: {\n type: ControlDefinitionType.Action,\n actionId: actionId ?? label,\n title: label,\n },\n visible: AlwaysVisible,\n onClick,\n };\n}\n\nexport function visitControlData<S extends ControlDefinition, A>(\n definition: S,\n { fields, data }: FormEditState,\n cb: (\n definition: DataControlDefinition,\n control: Control<any>,\n ) => A | undefined,\n): A | undefined {\n return visitControlDefinition<A | undefined>(\n definition,\n {\n data(def: DataControlDefinition) {\n const fieldData = findScalarField(fields, def.field);\n if (!fieldData) return undefined;\n return cb(def, data.fields[fieldData.field]);\n },\n group(d: GroupedControlsDefinition) {\n if (d.compoundField) {\n const compound = findCompoundField(fields, d.compoundField);\n if (!compound) return;\n fields = compound.children;\n data = data.fields[compound.field];\n }\n const childState = { fields, data };\n for (let c of d.children) {\n const res = visitControlData(c, childState, cb);\n if (res !== undefined) return res;\n }\n return undefined;\n },\n action(d: ActionControlDefinition) {\n return undefined;\n },\n display(d: DisplayControlDefinition) {\n return undefined;\n },\n },\n () => undefined,\n );\n}\n","import {\n ActionControlDefinition,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n DateComparison,\n DateValidator,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n FieldOption,\n FieldValueExpression,\n GroupedControlsDefinition,\n JsonataExpression,\n SchemaField,\n SchemaValidator,\n ValidatorType,\n} from \"./types\";\nimport {\n ActionRendererProps,\n ArrayRendererProps,\n controlForField,\n controlTitle,\n DataRendererProps,\n fieldForControl,\n FormEditHooks,\n FormEditState,\n GroupRendererProps,\n renderControl,\n SchemaHooks,\n Visibility,\n} from \"./controlRender\";\nimport React, { Fragment, ReactElement, useEffect, useMemo } from \"react\";\nimport {\n addElement,\n Control,\n ControlChange,\n newControl,\n removeElement,\n useComputed,\n useControl,\n useControlEffect,\n useValidator,\n} from \"@react-typed-forms/core\";\nimport jsonata from \"jsonata\";\nimport {\n addMissingControls,\n elementValueForField,\n findCompoundField,\n findField,\n isGroupControl,\n isScalarField,\n} from \"./util\";\n\nexport function useDefaultValue(\n definition: DataControlDefinition,\n field: SchemaField,\n formState: FormEditState,\n hooks: SchemaHooks,\n) {\n const valueExpression = definition.dynamic?.find(\n (x) => x.type === DynamicPropertyType.DefaultValue,\n );\n if (valueExpression) {\n return hooks.useExpression(valueExpression.expr, formState).value;\n }\n return field.defaultValue;\n}\n\nexport function useIsControlVisible(\n definition: ControlDefinition,\n formState: FormEditState,\n hooks: SchemaHooks,\n): Visibility {\n const visibleExpression = definition.dynamic?.find(\n (x) => x.type === DynamicPropertyType.Visible,\n );\n if (visibleExpression && visibleExpression.expr) {\n const exprValue = hooks.useExpression(\n visibleExpression.expr,\n formState,\n ).value;\n return {\n value: Boolean(exprValue),\n canChange: true,\n };\n }\n const schemaFields = formState.fields;\n\n const { typeControl, compoundField } = useMemo(() => {\n const typeField = schemaFields.find(\n (x) => isScalarField(x) && x.isTypeField,\n ) as SchemaField | undefined;\n\n const typeControl = ((typeField &&\n formState.data.fields?.[typeField.field]) ??\n newControl(undefined)) as Control<string | undefined>;\n const compoundField =\n isGroupControl(definition) && definition.compoundField\n ? formState.data.fields[definition.compoundField]\n : undefined;\n return { typeControl, compoundField };\n }, [schemaFields, formState.data]);\n\n const fieldName = fieldForControl(definition);\n const onlyForTypes = (\n fieldName ? findField(schemaFields, fieldName) : undefined\n )?.onlyForTypes;\n const canChange = Boolean(compoundField || (onlyForTypes?.length ?? 0) > 0);\n const value =\n (!compoundField || compoundField.value != null) &&\n (!onlyForTypes ||\n onlyForTypes.length === 0 ||\n Boolean(typeControl.value && onlyForTypes.includes(typeControl.value)));\n return { value, canChange };\n}\n\nexport function getDefaultScalarControlProperties(\n definition: DataControlDefinition,\n field: SchemaField,\n visible: Visibility,\n defaultValue: any,\n control: Control<any>,\n formState: FormEditState,\n): DataRendererProps {\n return {\n definition,\n field,\n defaultValue,\n options: getOptionsForScalarField(field),\n renderOptions: definition.renderOptions ?? {\n type: DataRenderType.Standard,\n },\n required: definition.required ?? false,\n visible,\n readonly: formState.readonly ?? definition.readonly ?? false,\n control,\n formState,\n };\n}\n\nexport function getOptionsForScalarField(\n field: SchemaField,\n): FieldOption[] | undefined | null {\n const opts = field.options;\n if (opts?.length ?? 0 > 0) {\n return opts;\n }\n return undefined;\n}\n\nexport function createDefaultSchemaHooks(): SchemaHooks {\n function useExpression(\n expr: EntityExpression,\n formState: FormEditState,\n ): Control<any | undefined> {\n switch (expr.type) {\n case ExpressionType.Jsonata:\n const jExpr = expr as JsonataExpression;\n const compiledExpr = useMemo(\n () => jsonata(jExpr.expression),\n [jExpr.expression],\n );\n const control = useControl();\n useControlEffect(\n () => formState.data.value,\n async (v) => {\n control.value = await compiledExpr.evaluate(v);\n },\n );\n return control;\n case ExpressionType.FieldValue:\n const fvExpr = expr as FieldValueExpression;\n return useComputed(() => {\n const fv = controlForField(fvExpr.field, formState).value;\n return Array.isArray(fv)\n ? fv.includes(fvExpr.value)\n : fv === fvExpr.value;\n });\n default:\n return useControl(undefined);\n }\n }\n\n function useValidators(\n formState: FormEditState,\n isVisible: boolean,\n control: Control<any>,\n required: boolean,\n validators?: SchemaValidator[] | null,\n ) {\n if (required)\n useValidator(\n control,\n (v) =>\n isVisible && (v == null || v == \"\") ? \"Please enter a value\" : null,\n \"required\",\n );\n validators?.forEach((v, i) => {\n switch (v.type) {\n case ValidatorType.Date:\n processDateValidator(v as DateValidator);\n break;\n case ValidatorType.Jsonata:\n const errorMsg = useExpression(\n v satisfies EntityExpression,\n formState,\n );\n useControlEffect(\n () => [isVisible, errorMsg.value],\n ([isVisible, msg]) =>\n control.setError(v.type + i, isVisible ? msg : null),\n true,\n );\n break;\n }\n\n function processDateValidator(dv: DateValidator) {\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 (\n notAfter ? selDate > comparisonDate : selDate < comparisonDate\n ) {\n return `Date must not be ${\n notAfter ? \"after\" : \"before\"\n } ${new Date(comparisonDate).toDateString()}`;\n }\n }\n return null;\n },\n \"date\" + i,\n );\n }\n });\n }\n return { useExpression, useValidators };\n}\n\nexport const defaultFormEditHooks = createFormEditHooks(\n createDefaultSchemaHooks(),\n);\n\nexport function createFormEditHooks(schemaHooks: SchemaHooks): FormEditHooks {\n return {\n schemaHooks,\n useDataProperties(\n formState,\n definition,\n field,\n renderer,\n ): DataRendererProps {\n const visible = useIsControlVisible(definition, formState, schemaHooks);\n const isVisible = visible.value && !formState.invisible;\n const defaultValue = useDefaultValue(\n definition,\n field,\n formState,\n schemaHooks,\n );\n const scalarControl = formState.data.fields[field.field];\n\n useEffect(() => {\n if (!isVisible) scalarControl.value = null;\n else if (scalarControl.current.value == null) {\n scalarControl.value = defaultValue;\n }\n }, [isVisible, defaultValue]);\n\n const dataProps = getDefaultScalarControlProperties(\n definition,\n field,\n visible,\n defaultValue,\n scalarControl,\n formState,\n );\n\n schemaHooks.useValidators(\n formState,\n isVisible,\n scalarControl,\n dataProps.required,\n definition.validators,\n );\n\n useEffect(() => {\n const subscription = scalarControl.subscribe(\n (c) => (c.touched = true),\n ControlChange.Validate,\n );\n return () => scalarControl.unsubscribe(subscription);\n }, []);\n\n if (!field.collection) return dataProps;\n return {\n ...dataProps,\n array: defaultArrayRendererProps(\n scalarControl,\n field,\n definition,\n dataProps.readonly,\n (c) => renderer.renderData({ ...dataProps, control: c }),\n ),\n };\n },\n useDisplayProperties: (fs, definition) => {\n const visible = useIsControlVisible(definition, fs, schemaHooks);\n return { visible, definition };\n },\n useGroupProperties: (fs, definition, hooks, renderers) => {\n const visible = useIsControlVisible(definition, fs, schemaHooks);\n const field = definition.compoundField\n ? findCompoundField(fs.fields, definition.compoundField)\n : undefined;\n const newFs: Omit<FormEditState, \"data\"> & { data: Control<any> } = {\n ...fs,\n fields: field ? field.children : fs.fields,\n data: field ? fs.data.fields[field.field] : fs.data,\n invisible: !visible.value || fs.invisible,\n };\n const groupProps = {\n visible,\n hooks,\n hideTitle: definition.groupOptions.hideTitle ?? false,\n childCount: definition.children.length,\n renderChild: (i) =>\n renderControl(definition.children[i], newFs, hooks, i),\n definition,\n } satisfies GroupRendererProps;\n if (field?.collection) {\n return {\n ...groupProps,\n array: defaultArrayRendererProps(\n newFs.data,\n field,\n definition,\n fs.readonly,\n (e) =>\n renderers.renderGroup({\n ...groupProps,\n hideTitle: true,\n renderChild: (i) =>\n renderControl(\n definition.children[i],\n { ...newFs, data: e },\n hooks,\n i,\n ),\n }),\n ),\n };\n }\n return groupProps;\n },\n useActionProperties(\n formState: FormEditState,\n definition: ActionControlDefinition,\n ): ActionRendererProps {\n const visible = useIsControlVisible(definition, formState, schemaHooks);\n return {\n visible,\n onClick: () => {},\n definition,\n };\n },\n };\n}\n\nfunction defaultArrayRendererProps(\n control: Control<any[]>,\n field: SchemaField,\n definition: DataControlDefinition | GroupedControlsDefinition,\n readonly: boolean | undefined | null,\n renderElem: (c: Control<any>) => ReactElement,\n): ArrayRendererProps {\n return {\n control,\n childCount: control.elements?.length ?? 0,\n field,\n definition,\n addAction: !readonly\n ? {\n definition: {\n title: \"Add \" + controlTitle(definition.title, field),\n type: ControlDefinitionType.Action,\n actionId: \"addElement\",\n },\n visible: { value: true, canChange: false },\n onClick: () => addElement(control, elementValueForField(field)),\n }\n : undefined,\n removeAction: !readonly\n ? (i) => ({\n definition: {\n title: \"Remove\",\n type: ControlDefinitionType.Action,\n actionId: \"removeElement\",\n },\n visible: { value: true, canChange: false },\n onClick: () => removeElement(control, control.elements[i]),\n })\n : undefined,\n childKey: (i) => control.elements[i].uniqueId,\n renderChild: (i) => {\n const c = control.elements[i];\n return <Fragment key={c.uniqueId}>{renderElem(c)}</Fragment>;\n },\n };\n}\n\nexport function useControlsWithDefaults(\n definition: GroupedControlsDefinition,\n sf: SchemaField[],\n) {\n return useMemo(\n () =>\n definition.children.length\n ? definition\n : { ...definition, children: addMissingControls(sf, []) },\n [sf, definition],\n );\n}\n","import React, {\n CSSProperties,\n Fragment,\n ReactElement,\n ReactNode,\n useMemo,\n useState,\n} from \"react\";\nimport {\n ActionRendererProps,\n AdornmentProps,\n AdornmentRenderer,\n ArrayRendererProps,\n controlTitle,\n DataRendererProps,\n DisplayRendererProps,\n FormRenderer,\n GroupRendererProps,\n LabelRendererProps,\n Visibility,\n} from \"./controlRender\";\nimport clsx from \"clsx\";\nimport {\n AdornmentPlacement,\n ControlDefinition,\n DataRenderType,\n DisplayDataType,\n FieldOption,\n FieldType,\n GridRenderer,\n HtmlDisplay,\n isGridRenderer,\n TextDisplay,\n} from \"./types\";\nimport { Control, Fcheckbox, formControlProps } from \"@react-typed-forms/core\";\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 visibility: VisibilityRendererRegistration;\n adornment: AdornmentRendererRegistration;\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 defaultLabel: (label?: Partial<LabelRendererProps>) => LabelRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface LabelRendererRegistration {\n type: \"label\";\n render: (\n labelProps: LabelRendererProps,\n elem: ReactElement,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface ActionRendererRegistration {\n type: \"action\";\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 render: (\n props: GroupRendererProps,\n defaultLabel: (label?: Partial<LabelRendererProps>) => LabelRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface DisplayRendererRegistration {\n type: \"display\";\n render: (\n props: DisplayRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface VisibilityRendererRegistration {\n type: \"visibility\";\n render: (visible: Visibility, elem: ReactElement) => ReactElement;\n}\n\nexport interface AdornmentRendererRegistration {\n type: \"adornment\";\n adornmentType?: string | string[];\n render: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nexport type AnyRendererRegistration =\n | DataRendererRegistration\n | GroupRendererRegistration\n | DisplayRendererRegistration\n | ActionRendererRegistration\n | LabelRendererRegistration\n | ArrayRendererRegistration\n | AdornmentRendererRegistration\n | VisibilityRendererRegistration;\n\nexport function createFormRenderer(\n customRenderers: AnyRendererRegistration[] = [],\n defaultRenderers: DefaultRenderers = createClassStyledRenderers(),\n): FormRenderer {\n const dataRegistrations = customRenderers.filter(isDataRegistration);\n const adornmentRegistrations = customRenderers.filter(\n isAdornmentRegistration,\n );\n const labelRenderer =\n customRenderers.find(isLabelRegistration) ?? defaultRenderers.label;\n const renderVisibility = (\n customRenderers.find(isVisibilityRegistration) ??\n defaultRenderers.visibility\n ).render;\n\n const formRenderers = {\n renderAction,\n renderData,\n renderGroup,\n renderDisplay,\n renderLabel,\n renderArray,\n renderVisibility,\n renderAdornment,\n };\n\n function renderAdornment(props: AdornmentProps): AdornmentRenderer {\n const renderer =\n adornmentRegistrations.find((x) =>\n isOneOf(x.adornmentType, props.definition.type),\n ) ?? defaultRenderers.adornment;\n return renderer.render(props);\n }\n\n function renderArray(props: ArrayRendererProps) {\n return defaultRenderers.array.render(props, formRenderers);\n }\n\n function renderLabel(props: LabelRendererProps, elem: ReactElement) {\n return labelRenderer.render(props, elem, formRenderers);\n }\n\n function withAdornments(\n definition: ControlDefinition,\n adornments?: AdornmentRenderer[],\n ): [\n AdornmentRenderer[],\n (placement: AdornmentPlacement) => ReactElement,\n (elem: ReactElement) => ReactElement,\n ] {\n const rAdornments = adornments\n ? adornments\n : definition.adornments?.map((x, i) =>\n renderAdornment({ definition: x, key: i }),\n ) ?? [];\n function combineAdornments(placement: AdornmentPlacement) {\n return (\n <>\n {rAdornments\n .filter((x) => x.child && x.child[0] === placement)\n .map((x) => x.child![1])}\n </>\n );\n }\n return [\n rAdornments,\n combineAdornments,\n (mainElem) =>\n !adornments\n ? mainElem\n : rAdornments.reduce((e, n) => n.wrap?.(e) ?? e, mainElem),\n ];\n }\n\n function renderData(\n props: DataRendererProps,\n adornments?: AdornmentRenderer[],\n ): ReactElement {\n const {\n definition,\n renderOptions: { type: renderType },\n visible,\n required,\n control,\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 [rAdornments, renderAdornment, wrapElem] = withAdornments(\n definition,\n adornments,\n );\n return wrapElem(\n renderer.render(props, createLabel, {\n ...formRenderers,\n renderData: (p) => renderData(p, rAdornments),\n }),\n );\n\n function createLabel(labelProps?: Partial<LabelRendererProps>) {\n return {\n visible,\n required,\n control,\n forId: \"c\" + control.uniqueId,\n renderAdornment,\n ...labelProps,\n title: labelProps?.title ?? controlTitle(definition.title, field),\n };\n }\n }\n\n function renderGroup(\n props: GroupRendererProps,\n adornments?: AdornmentRenderer[],\n ): ReactElement {\n const { definition, visible, field } = props;\n\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n props.definition,\n adornments,\n );\n\n const title = props.hideTitle\n ? undefined\n : field\n ? controlTitle(definition.title, field)\n : definition.title;\n\n return wrapElem(\n defaultRenderers.group.render(props, createLabel, {\n ...formRenderers,\n renderGroup: (p) => renderGroup(p, rAdornments),\n }),\n );\n\n function createLabel(\n labelProps?: Partial<LabelRendererProps>,\n ): LabelRendererProps {\n return {\n required: false,\n visible,\n group: true,\n renderAdornment,\n title,\n ...labelProps,\n };\n }\n }\n\n function renderAction(\n props: ActionRendererProps,\n adornments?: AdornmentRenderer[],\n ) {\n const renderer =\n customRenderers.find(isActionRegistration) ?? defaultRenderers.action;\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n props.definition,\n adornments,\n );\n return wrapElem(renderer.render(props, formRenderers));\n }\n\n function renderDisplay(\n props: DisplayRendererProps,\n adornments?: AdornmentRenderer[],\n ) {\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n props.definition,\n adornments,\n );\n return wrapElem(defaultRenderers.display.render(props, formRenderers));\n }\n\n return formRenderers;\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n requiredElement?: ReactNode;\n labelClass?: string;\n}\n\ninterface DefaultActionRendererOptions {\n className?: string;\n}\n\nexport function createDefaultActionRenderer(\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n function render(\n { visible, onClick, definition: { title } }: ActionRendererProps,\n { renderVisibility }: Pick<FormRenderer, \"renderVisibility\">,\n ) {\n return renderVisibility(\n visible,\n <button className={options.className} onClick={onClick}>\n {title}\n </button>,\n );\n }\n return { render, type: \"action\" };\n}\nexport function createDefaultLabelRenderer(\n options: DefaultLabelRendererOptions = { requiredElement: <span> *</span> },\n): LabelRendererRegistration {\n return {\n render: (p, elem, { renderVisibility }) =>\n renderVisibility(\n p.visible,\n <DefaultLabelRenderer {...p} {...options} children={elem} />,\n ),\n type: \"label\",\n };\n}\n\nexport function DefaultLabelRenderer({\n className,\n labelClass,\n title,\n forId,\n required,\n children,\n group,\n groupLabelClass,\n renderAdornment,\n requiredElement,\n}: LabelRendererProps &\n DefaultLabelRendererOptions & { children: ReactElement }) {\n return title ? (\n <div className={className}>\n {renderAdornment(AdornmentPlacement.LabelStart)}\n <label\n htmlFor={forId}\n className={clsx(labelClass, group && groupLabelClass)}\n >\n {title}\n {required && requiredElement}\n </label>\n {renderAdornment(AdornmentPlacement.LabelEnd)}\n {renderAdornment(AdornmentPlacement.ControlStart)}\n {children}\n {renderAdornment(AdornmentPlacement.ControlEnd)}\n </div>\n ) : (\n <>{children}</>\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 }: ArrayRendererProps,\n { renderAction }: Pick<FormRenderer, \"renderAction\">,\n ) {\n return (\n <>\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 {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 </>\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(\n props: GroupRendererProps,\n defaultLabel: (label?: Partial<LabelRendererProps>) => LabelRendererProps,\n {\n renderLabel,\n renderArray,\n }: Pick<FormRenderer, \"renderLabel\" | \"renderArray\" | \"renderGroup\">,\n ) {\n const { childCount, renderChild, definition } = props;\n\n return renderLabel(\n defaultLabel(),\n props.array ? renderArray(props.array) : renderChildren(),\n );\n\n function renderChildren() {\n const { groupOptions } = definition;\n const { style, className: gcn } = isGridRenderer(groupOptions)\n ? gridStyles(groupOptions)\n : ({ className: standardClassName } satisfies StyleProps);\n return (\n <div className={clsx(className, gcn)} style={style}>\n {Array.from({ length: childCount }, (_, x) => renderChild(x))}\n </div>\n );\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 function doRender({ definition: { displayData } }: DisplayRendererProps) {\n switch (displayData.type) {\n case DisplayDataType.Text:\n return (\n <div className={options.textClassName}>\n {(displayData as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n className={options.htmlClassName}\n dangerouslySetInnerHTML={{\n __html: (displayData as HtmlDisplay).html,\n }}\n />\n );\n default:\n return <h1>Unknown display type: {displayData.type}</h1>;\n }\n }\n return {\n render: (p, { renderVisibility }) =>\n renderVisibility(p.visible, doRender(p)),\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, defaultLabel, renderers) => {\n if (props.array) {\n return renderers.renderArray(props.array);\n }\n let renderType = props.renderOptions.type;\n const fieldType = props.field.type;\n const isBool = fieldType === FieldType.Bool;\n if (booleanOptions != null && isBool && props.options == null) {\n return renderers.renderData({ ...props, options: booleanOptions });\n }\n if (renderType === DataRenderType.Standard && hasOptions(props)) {\n return optionRenderer.render(props, defaultLabel, renderers);\n }\n switch (renderType) {\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, defaultLabel, renderers);\n }\n const l = defaultLabel();\n return renderers.renderLabel(\n l,\n renderType === DataRenderType.Checkbox ? (\n <Fcheckbox control={props.control} />\n ) : (\n <ControlInput\n className={inputClass}\n id={l.forId}\n readOnly={props.readonly}\n control={props.control}\n convert={createInputConversion(props.field.type)}\n />\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 DefaultVisibilityRendererOptions {}\n\nexport interface DefaultAdornmentRendererOptions {}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n return { type: \"adornment\", render: () => ({}) };\n}\nexport function createDefaultVisibilityRenderer(\n options: DefaultVisibilityRendererOptions = {},\n): VisibilityRendererRegistration {\n return {\n type: \"visibility\",\n render: (visible, children) => (visible.value ? children : <></>),\n };\n}\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n visibility?: DefaultVisibilityRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\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 visibility: createDefaultVisibilityRenderer(options.visibility),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n };\n}\n\nfunction createClassStyledRenderers() {\n return createDefaultRenderers({\n label: { 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: AnyRendererRegistration,\n): x is AdornmentRendererRegistration {\n return x.type === \"adornment\";\n}\n\nfunction isDataRegistration(\n x: AnyRendererRegistration,\n): x is DataRendererRegistration {\n return x.type === \"data\";\n}\n\nfunction isLabelRegistration(\n x: AnyRendererRegistration,\n): x is LabelRendererRegistration {\n return x.type === \"label\";\n}\n\nfunction isActionRegistration(\n x: AnyRendererRegistration,\n): x is ActionRendererRegistration {\n return x.type === \"action\";\n}\n\nfunction isVisibilityRegistration(\n x: AnyRendererRegistration,\n): x is VisibilityRendererRegistration {\n return x.type === \"visibility\";\n}\n\nfunction isOneOf(x: string | string[] | undefined, v: string) {\n return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;\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 createDataRendererLabelled(\n render: (\n props: DataRendererProps,\n id: string,\n renderers: FormRenderer,\n ) => ReactElement,\n options?: Partial<DataRendererRegistration>,\n): DataRendererRegistration {\n return {\n type: \"data\",\n render: (props, defaultLabel, renderers) => {\n const dl = defaultLabel();\n return renderers.renderLabel(dl, render(props, dl.forId!, renderers));\n },\n ...options,\n };\n}\n\nexport function createLabelRenderer(\n options: Omit<LabelRendererRegistration, \"type\">,\n): LabelRendererRegistration {\n return { type: \"label\", ...options };\n}\n\nexport function createAdornmentRenderer(\n render: (props: AdornmentProps) => AdornmentRenderer,\n options?: Omit<AdornmentRendererRegistration, \"type\">,\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 createDataRendererLabelled(\n (props, id) => (\n <SelectDataRenderer\n className={options.className}\n state={props.control}\n id={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","import React from \"react\";\nimport { DefaultRendererOptions } from \"./renderers\";\n\nexport const defaultTailwindTheme: DefaultRendererOptions = {\n label: {\n className: \"flex flex-col\",\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\",\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};\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","dataControl","field","options","_extends","fieldValueExpr","value","FieldValue","visibility","expr","Visible","isGridRenderer","Grid","buildSchema","def","Object","entries","map","stringField","displayName","makeScalarField","String","stringOptionsField","slice","call","arguments","withScalarOptions","v","n","defaultScalarField","makeCompoundField","defaultCompoundField","intField","Int","boolField","Bool","compoundField","fields","other","children","collection","tags","Compound","system","treeChildren","onlyForTypes","required","applyDefaultValues","defaultValueForFields","applyValue","filter","isCompoundField","length","out","forEach","applyDefaultForField","defaultValueForField","parent","notElement","fromEntries","sf","undefined","elementValueForField","findScalarField","findField","findCompoundField","find","isScalarField","isDataControl","c","isGroupControl","fieldHasTag","tag","_field$tags","Boolean","includes","fieldDisplayName","_field$displayName","hasOptions","o","_o$options$length","_o$options","defaultControlForField","title","groupOptions","hideTitle","_sf$tags","htmlEditor","renderOptions","HtmlEditor","Standard","findReferencedControl","control","findReferencedControlInArray","controls","_iterator","_createForOfIteratorHelperLoose","_step","done","ref","addMissingControls","changes","flatMap","existing","changedCompounds","ex","cf","concat","_FormRendererComponentsContext","FormRendererComponentsContext","createContext","FormRendererProvider","_ref","_effect","_useComponentTracking","_FormRendererComponen","Provider","React","createElement","useFormRendererComponents","useContext","controlTitle","renderControl","definition","formState","hooks","key","fieldData","DataRenderer","controlDef","d","GroupRenderer","groupDef","ActionRenderer","actionDef","DisplayRenderer","displayDef","_ref2","_effect2","_props$customRender","renderer","props","useDataProperties","customRender","renderData","_ref3","_effect3","_useFormRendererCompo","renderAction","actionControlProperties","useActionProperties","_ref4","_effect4","renderers","groupProps","useGroupProperties","renderGroup","_ref5","_effect5","_useFormRendererCompo2","renderDisplay","displayProps","useDisplayProperties","controlForField","_ref6","refField","newControl","fieldForControl","AlwaysVisible","canChange","createAction","label","onClick","actionId","visible","visitControlData","_ref7","cb","compound","childState","res","useDefaultValue","_definition$dynamic","valueExpression","dynamic","DefaultValue","useExpression","useIsControlVisible","_definition$dynamic2","_onlyForTypes$length","visibleExpression","exprValue","schemaFields","_useMemo","useMemo","_formState$data$field","typeField","isTypeField","typeControl","fieldName","getDefaultScalarControlProperties","_definition$renderOpt","_definition$required","_formState$readonly","getOptionsForScalarField","readonly","_opts$length","opts","createDefaultSchemaHooks","Jsonata","jExpr","compiledExpr","jsonata","expression","useControl","useControlEffect","Promise","resolve","evaluate","then","_compiledExpr$evaluat","e","reject","fvExpr","useComputed","fv","Array","isArray","useValidators","isVisible","validators","useValidator","i","Date","processDateValidator","errorMsg","msg","setError","dv","comparisonDate","fixedDate","parse","nowDate","UTC","getFullYear","getMonth","getDate","daysFromCurrent","selDate","notAfter","comparison","NotAfter","toDateString","defaultFormEditHooks","createFormEditHooks","schemaHooks","invisible","scalarControl","useEffect","current","dataProps","subscription","subscribe","touched","ControlChange","Validate","unsubscribe","array","defaultArrayRendererProps","fs","_definition$groupOpti","newFs","childCount","renderChild","renderElem","_control$elements$len","_control$elements","elements","addAction","addElement","removeAction","removeElement","childKey","uniqueId","Fragment","useControlsWithDefaults","createFormRenderer","customRenderers","defaultRenderers","_customRenderers$find","_customRenderers$find2","createClassStyledRenderers","dataRegistrations","isDataRegistration","adornmentRegistrations","isAdornmentRegistration","labelRenderer","isLabelRegistration","renderVisibility","isVisibilityRegistration","render","formRenderers","renderLabel","renderArray","renderAdornment","_adornmentRegistratio","isOneOf","adornmentType","adornment","elem","withAdornments","adornments","_definition$adornment","_definition$adornment2","rAdornments","combineAdornments","placement","child","mainElem","reduce","_n$wrap","wrap","_dataRegistrations$fi","renderType","_x$collection","_field$collection","_x$options","schemaType","match","_withAdornments","wrapElem","createLabel","p","labelProps","_labelProps$title","forId","_withAdornments2","_customRenderers$find3","isActionRegistration","_withAdornments3","_withAdornments4","createDefaultActionRenderer","className","createDefaultLabelRenderer","requiredElement","DefaultLabelRenderer","labelClass","groupLabelClass","LabelStart","htmlFor","clsx","LabelEnd","ControlStart","ControlEnd","createDefaultArrayRenderer","removableClass","childClass","removableChildClass","removeActionClass","addActionClass","from","_","createDefaultGroupRenderer","_ref8","_ref8$gridStyles","gridStyles","defaultGridStyles","_ref8$defaultGridColu","defaultGridColumns","gridClassName","standardClassName","_ref9","_ref9$columns","columns","style","gridTemplateColumns","defaultLabel","_ref10","renderChildren","_ref11","gcn","createDefaultDisplayRenderer","doRender","_ref12","displayData","Text","textClassName","text","Html","htmlClassName","dangerouslySetInnerHTML","__html","html","_ref13","DefaultBoolOptions","name","createDefaultDataRenderer","_options$selectOption","selectRenderer","createSelectRenderer","selectOptions","_optionRenderer$boole","optionRenderer","booleanOptions","inputClass","createDataRenderer","fieldType","isBool","Dropdown","l","Checkbox","Fcheckbox","ControlInput","id","readOnly","convert","createInputConversion","_ref14","_objectWithoutPropertiesLoose","_excluded","_formControlProps","formControlProps","errorText","onChange","inputProps","_excluded2","target","createDefaultAdornmentRenderer","createDefaultVisibilityRenderer","createDefaultRenderers","createDataRendererLabelled","dl","createLabelRenderer","createAdornmentRenderer","SelectDataRenderer","state","emptyText","requiredText","createSelectConversion","_ref15","_ref15$emptyText","_ref15$requiredText","_excluded3","disabled","_useState","useState","showEmpty","optionStringMap","ft","Double","a","_a$toString","toString","_a$toString2","parseInt","parseFloat","defaultTailwindTheme"],"mappings":"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"}