@react-typed-forms/schemas 11.0.3 → 11.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/controlRender.d.ts +3 -1
- package/lib/index.js +27 -13
- package/lib/index.js.map +1 -1
- package/lib/schemaInterface.d.ts +2 -1
- package/lib/types.d.ts +2 -0
- package/lib/util.d.ts +2 -1
- package/package.json +1 -1
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/types.ts","../src/util.ts","../src/schemaBuilder.ts","../src/controlBuilder.ts","../src/hooks.tsx","../src/validators.ts","../src/internal.ts","../src/schemaInterface.ts","../src/controlRender.tsx","../src/renderers.tsx","../src/tailwind.tsx","../src/components/DefaultDisplay.tsx","../src/components/DefaultLayout.tsx","../src/components/DefaultVisibility.tsx","../src/components/SelectDataRenderer.tsx","../src/components/DefaultDisplayOnly.tsx","../src/components/ControlInput.tsx","../src/components/DefaultArrayRenderer.tsx","../src/components/CheckRenderer.tsx","../src/createDefaultRenderers.tsx","../src/createFormRenderer.tsx"],"sourcesContent":["import { Control } from \"@react-typed-forms/core\";\n\nexport interface SchemaField {\n type: string;\n field: string;\n displayName?: string | null;\n tags?: string[] | null;\n system?: boolean | null;\n collection?: boolean | null;\n onlyForTypes?: string[] | null;\n required?: boolean | null;\n notNullable?: boolean | null;\n defaultValue?: any;\n isTypeField?: boolean | null;\n searchable?: boolean | null;\n options?: FieldOption[] | null;\n validators?: SchemaValidator[] | null;\n}\n\nexport type SchemaMap = Record<string, SchemaField[]>;\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 description?: string | null;\n disabled?: boolean | null;\n}\n\nexport interface CompoundField extends SchemaField {\n type: FieldType.Compound;\n children: SchemaField[];\n treeChildren?: boolean;\n schemaRef?: string;\n}\n\nexport type AnyControlDefinition =\n | DataControlDefinition\n | GroupedControlsDefinition\n | ActionControlDefinition\n | DisplayControlDefinition;\n\nexport interface SchemaInterface {\n isEmptyValue(field: SchemaField, value: any): boolean;\n textValue(\n field: SchemaField,\n value: any,\n element?: boolean,\n ): string | undefined;\n controlLength(field: SchemaField, control: Control<any>): number;\n valueLength(field: SchemaField, value: any): number;\n}\nexport interface ControlDefinition {\n type: string;\n title?: string | null;\n styleClass?: string | null;\n layoutClass?: string | null;\n labelClass?: string | null;\n dynamic?: DynamicProperty[] | null;\n adornments?: ControlAdornment[] | null;\n children?: ControlDefinition[] | null;\n}\n\nexport enum ControlDefinitionType {\n Data = \"Data\",\n Group = \"Group\",\n Display = \"Display\",\n Action = \"Action\",\n}\n\nexport interface DynamicProperty {\n type: string;\n expr: EntityExpression;\n}\n\nexport enum DynamicPropertyType {\n Visible = \"Visible\",\n DefaultValue = \"DefaultValue\",\n Readonly = \"Readonly\",\n Disabled = \"Disabled\",\n Display = \"Display\",\n Style = \"Style\",\n LayoutStyle = \"LayoutStyle\",\n AllowedOptions = \"AllowedOptions\",\n Label = \"Label\",\n ActionData = \"ActionData\",\n}\n\nexport interface EntityExpression {\n type: string;\n}\n\nexport enum ExpressionType {\n Jsonata = \"Jsonata\",\n Data = \"Data\",\n DataMatch = \"FieldValue\",\n UserMatch = \"UserMatch\",\n}\n\nexport interface JsonataExpression extends EntityExpression {\n type: ExpressionType.Jsonata;\n expression: string;\n}\n\nexport interface DataExpression extends EntityExpression {\n type: ExpressionType.Data;\n field: string;\n}\n\nexport interface DataMatchExpression extends EntityExpression {\n type: ExpressionType.DataMatch;\n field: string;\n value: any;\n}\n\nexport interface 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 Icon = \"Icon\",\n}\n\nexport interface IconAdornment extends ControlAdornment {\n type: ControlAdornmentType.Icon;\n iconClass: string;\n placement?: AdornmentPlacement | null;\n}\n\nexport interface TooltipAdornment extends ControlAdornment {\n type: ControlAdornmentType.Tooltip;\n tooltip: string;\n}\n\nexport interface AccordionAdornment extends ControlAdornment {\n type: ControlAdornmentType.Accordion;\n title: string;\n defaultExpanded: boolean;\n}\n\nexport interface HelpTextAdornment extends ControlAdornment {\n type: ControlAdornmentType.HelpText;\n helpText: string;\n placement?: AdornmentPlacement | null;\n}\n\nexport interface DataControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Data;\n field: string;\n required?: boolean | null;\n renderOptions?: RenderOptions | null;\n defaultValue?: any;\n readonly?: boolean | null;\n validators?: SchemaValidator[] | null;\n hideTitle?: boolean | null;\n dontClearHidden?: boolean | null;\n}\n\nexport interface RenderOptions {\n type: string;\n}\n\nexport enum DataRenderType {\n Standard = \"Standard\",\n Textfield = \"Textfield\",\n Radio = \"Radio\",\n HtmlEditor = \"HtmlEditor\",\n IconList = \"IconList\",\n CheckList = \"CheckList\",\n UserSelection = \"UserSelection\",\n Synchronised = \"Synchronised\",\n IconSelector = \"IconSelector\",\n DateTime = \"DateTime\",\n Checkbox = \"Checkbox\",\n Dropdown = \"Dropdown\",\n DisplayOnly = \"DisplayOnly\",\n Group = \"Group\",\n}\n\nexport interface TextfieldRenderOptions extends RenderOptions {\n type: DataRenderType.Textfield;\n placeholder?: string | null;\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 DataGroupRenderOptions extends RenderOptions {\n type: DataRenderType.Group;\n groupOptions?: GroupRenderOptions;\n}\n\nexport interface HtmlEditorRenderOptions extends RenderOptions {\n type: DataRenderType.HtmlEditor;\n allowImages: boolean;\n}\n\nexport interface DateTimeRenderOptions extends RenderOptions {\n type: DataRenderType.DateTime;\n format?: string | null;\n}\n\nexport interface IconListRenderOptions extends RenderOptions {\n type: DataRenderType.IconList;\n iconMappings: IconMapping[];\n}\n\nexport interface DisplayOnlyRenderOptions extends RenderOptions {\n type: DataRenderType.DisplayOnly;\n emptyText?: string | null;\n sampleText?: string | null;\n}\nexport interface IconMapping {\n value: string;\n materialIcon?: string | null;\n}\n\nexport interface CheckListRenderOptions extends RenderOptions {\n type: DataRenderType.CheckList;\n}\n\nexport interface SynchronisedRenderOptions extends RenderOptions {\n type: DataRenderType.Synchronised;\n fieldToSync: string;\n syncType: SyncTextType;\n}\n\nexport enum SyncTextType {\n Camel = \"Camel\",\n Snake = \"Snake\",\n Pascal = \"Pascal\",\n}\n\nexport interface UserSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.UserSelection;\n noGroups: boolean;\n noUsers: boolean;\n}\n\nexport interface IconSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.IconSelector;\n}\n\nexport interface GroupedControlsDefinition extends ControlDefinition {\n type: ControlDefinitionType.Group;\n compoundField?: string | null;\n groupOptions?: GroupRenderOptions;\n}\n\nexport interface GroupRenderOptions {\n type: string;\n hideTitle?: boolean | null;\n}\n\nexport enum GroupRenderType {\n Standard = \"Standard\",\n Grid = \"Grid\",\n Flex = \"Flex\",\n GroupElement = \"GroupElement\",\n}\n\nexport interface StandardGroupRenderer extends GroupRenderOptions {\n type: GroupRenderType.Standard;\n}\n\nexport interface FlexRenderer extends GroupRenderOptions {\n type: GroupRenderType.Flex;\n direction?: string | null;\n gap?: string | null;\n}\n\nexport interface GroupElementRenderer extends GroupRenderOptions {\n type: GroupRenderType.GroupElement;\n value: any;\n}\n\nexport interface 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 Icon = \"Icon\",\n}\nexport interface TextDisplay extends DisplayData {\n type: DisplayDataType.Text;\n text: string;\n}\n\nexport interface IconDisplay extends DisplayData {\n type: DisplayDataType.Icon;\n iconClass: string;\n}\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 actionData: string;\n}\n\nexport enum ValidatorType {\n Jsonata = \"Jsonata\",\n Date = \"Date\",\n Length = \"Length\",\n}\nexport interface SchemaValidator {\n type: string;\n}\n\nexport interface JsonataValidator extends SchemaValidator {\n type: ValidatorType.Jsonata;\n expression: string;\n}\n\nexport interface LengthValidator extends SchemaValidator {\n type: ValidatorType.Length;\n min?: number | null;\n max?: number | null;\n}\n\nexport enum DateComparison {\n NotBefore = \"NotBefore\",\n NotAfter = \"NotAfter\",\n}\n\nexport interface DateValidator extends SchemaValidator {\n type: ValidatorType.Date;\n comparison: DateComparison;\n fixedDate?: string | null;\n daysFromCurrent?: number | null;\n}\n\nexport function isDataControlDefinition(\n x: ControlDefinition,\n): x is DataControlDefinition {\n return x.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControlsDefinition(\n x: ControlDefinition,\n): x is GroupedControlsDefinition {\n return x.type === ControlDefinitionType.Group;\n}\n\nexport function isDisplayControlsDefinition(\n x: ControlDefinition,\n): x is DisplayControlDefinition {\n return x.type === ControlDefinitionType.Display;\n}\n\nexport function isActionControlsDefinition(\n x: ControlDefinition,\n): x is ActionControlDefinition {\n return x.type === ControlDefinitionType.Action;\n}\n\nexport interface ControlVisitor<A> {\n data(d: DataControlDefinition): A;\n group(d: GroupedControlsDefinition): A;\n display(d: DisplayControlDefinition): A;\n action(d: ActionControlDefinition): A;\n}\n\nexport function visitControlDefinition<A>(\n x: ControlDefinition,\n visitor: ControlVisitor<A>,\n defaultValue: (c: ControlDefinition) => A,\n): A {\n switch (x.type) {\n case ControlDefinitionType.Action:\n return visitor.action(x as ActionControlDefinition);\n case ControlDefinitionType.Data:\n return visitor.data(x as DataControlDefinition);\n case ControlDefinitionType.Display:\n return visitor.display(x as DisplayControlDefinition);\n case ControlDefinitionType.Group:\n return visitor.group(x as GroupedControlsDefinition);\n default:\n return defaultValue(x);\n }\n}\nexport function isGridRenderer(\n options: GroupRenderOptions,\n): options is GridRenderer {\n return options.type === GroupRenderType.Grid;\n}\n\nexport function isFlexRenderer(\n options: GroupRenderOptions,\n): options is FlexRenderer {\n return options.type === GroupRenderType.Flex;\n}\n\nexport function isDisplayOnlyRenderer(\n options: RenderOptions,\n): options is DisplayOnlyRenderOptions {\n return options.type === DataRenderType.DisplayOnly;\n}\n\nexport function isTextfieldRenderer(\n options: RenderOptions,\n): options is TextfieldRenderOptions {\n return options.type === DataRenderType.Textfield;\n}\n\nexport function isDataGroupRenderer(\n options: RenderOptions,\n): options is DataGroupRenderOptions {\n return options.type === DataRenderType.Group;\n}\n","import {\n CompoundField,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n DisplayOnlyRenderOptions,\n FieldOption,\n FieldType,\n GroupedControlsDefinition,\n isDataControlDefinition,\n isDisplayOnlyRenderer,\n isGroupControlsDefinition,\n SchemaField,\n SchemaInterface,\n visitControlDefinition,\n} from \"./types\";\nimport { MutableRefObject, useCallback, useRef } from \"react\";\nimport {\n Control,\n ControlChange,\n trackControlChange,\n} from \"@react-typed-forms/core\";\nimport clsx from \"clsx\";\n\nexport type JsonPath = string | number;\n\nexport interface DataContext {\n data: Control<any>;\n path: JsonPath[];\n}\n\nexport interface ControlDataContext extends DataContext {\n fields: SchemaField[];\n schemaInterface: SchemaInterface;\n}\nexport function applyDefaultValues(\n v: Record<string, any> | undefined,\n fields: SchemaField[],\n doneSet?: Set<Record<string, any>>,\n): any {\n if (!v) return defaultValueForFields(fields);\n if (doneSet && doneSet.has(v)) return v;\n doneSet ??= new Set();\n doneSet.add(v);\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, false, doneSet)\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 doneSet?: Set<Record<string, any>>,\n): any {\n if (field.collection && !notElement) {\n return ((v as any[]) ?? []).map((x) =>\n applyDefaultForField(x, field, parent, true, doneSet),\n );\n }\n if (isCompoundField(field)) {\n if (!v && !field.required) return v;\n return applyDefaultValues(\n v,\n field.treeChildren ? parent : field.children,\n doneSet,\n );\n }\n return defaultValueForField(field);\n}\n\nexport function defaultValueForFields(fields: SchemaField[]): any {\n return Object.fromEntries(\n fields.map((x) => [x.field, defaultValueForField(x)]),\n );\n}\n\nexport function defaultValueForField(\n sf: SchemaField,\n required?: boolean | null,\n): any {\n if (sf.defaultValue !== undefined) return sf.defaultValue;\n const isRequired = !!(required || sf.required);\n if (isCompoundField(sf)) {\n if (isRequired) {\n const childValue = defaultValueForFields(sf.children);\n return sf.collection ? [childValue] : childValue;\n }\n return sf.notNullable ? (sf.collection ? [] : {}) : undefined;\n }\n if (sf.collection) {\n return [];\n }\n return undefined;\n}\n\nexport function elementValueForField(sf: SchemaField): any {\n if (isCompoundField(sf)) {\n return defaultValueForFields(sf.children);\n }\n return sf.defaultValue;\n}\n\nexport function findScalarField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return findField(fields, field);\n}\n\nexport function findCompoundField(\n fields: SchemaField[],\n field: string,\n): CompoundField | undefined {\n return findField(fields, field) as CompoundField | undefined;\n}\n\nexport function findField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return fields.find((x) => x.field === field);\n}\n\nexport function isScalarField(sf: SchemaField): sf is SchemaField {\n return !isCompoundField(sf);\n}\n\nexport function isCompoundField(sf: SchemaField): sf is CompoundField {\n return sf.type === FieldType.Compound;\n}\n\nexport function isDataControl(\n c: ControlDefinition,\n): c is DataControlDefinition {\n return c.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControl(\n c: ControlDefinition,\n): c is GroupedControlsDefinition {\n return c.type === ControlDefinitionType.Group;\n}\n\nexport function fieldHasTag(field: SchemaField, tag: string) {\n return Boolean(field.tags?.includes(tag));\n}\n\nexport function fieldDisplayName(field: SchemaField) {\n return field.displayName ?? field.field;\n}\n\nexport function hasOptions(o: { options: FieldOption[] | undefined | null }) {\n return (o.options?.length ?? 0) > 0;\n}\n\nexport function defaultControlForField(sf: SchemaField): DataControlDefinition {\n if (isCompoundField(sf)) {\n return {\n type: ControlDefinitionType.Data,\n title: sf.displayName,\n field: sf.field,\n required: sf.required,\n children: sf.children.map(defaultControlForField),\n };\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 };\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 findControlsForCompound(\n compound: CompoundField,\n definition: ControlDefinition,\n): ControlDefinition[] {\n if (\n isDataControlDefinition(definition) &&\n compound.field === definition.field\n ) {\n return [definition];\n }\n if (isGroupControlsDefinition(definition)) {\n if (definition.compoundField === compound.field) return [definition];\n return (\n definition.children?.flatMap((d) =>\n findControlsForCompound(compound, d),\n ) ?? []\n );\n }\n return [];\n}\n\nexport interface ControlGroupLookup {\n groups: ControlDefinition[];\n children: Record<string, ControlGroupLookup>;\n}\nexport function findCompoundGroups(\n fields: SchemaField[],\n controls: ControlDefinition[],\n): Record<string, ControlGroupLookup> {\n return Object.fromEntries(\n fields.filter(isCompoundField).map((cf) => {\n const groups = controls.flatMap((x) => findControlsForCompound(cf, x));\n return [\n cf.field,\n {\n groups: groups.concat(\n findNonDataGroups(groups.flatMap((x) => x.children ?? [])),\n ),\n children: findCompoundGroups(\n cf.children,\n groups.flatMap((x) => x.children ?? []),\n ),\n },\n ];\n }),\n );\n}\n\nexport function existsInGroups(\n field: SchemaField,\n lookup: ControlGroupLookup,\n): [SchemaField, ControlGroupLookup][] {\n const itself = lookup.groups.find((c) =>\n c.children?.find(\n (x) =>\n (isDataControlDefinition(x) && x.field === field.field) ||\n (isGroupControlsDefinition(x) && x.compoundField === field.field),\n ),\n );\n if (!itself) return [[field, lookup]];\n if (isCompoundField(field)) {\n const childLookup = lookup.children[field.field];\n if (!childLookup) return [[field, lookup]];\n return field.children.flatMap((c) => existsInGroups(c, childLookup));\n }\n return [];\n}\n\nexport function findNonDataGroups(\n controls: ControlDefinition[],\n): ControlDefinition[] {\n return controls.flatMap((control) =>\n isGroupControlsDefinition(control) && !control.compoundField\n ? [control, ...findNonDataGroups(control.children ?? [])]\n : [],\n );\n}\n\nfunction cloneChildren(c: ControlDefinition): ControlDefinition {\n if (c.children) return { ...c, children: c.children?.map(cloneChildren) };\n return c;\n}\n\nexport function addMissingControls(\n fields: SchemaField[],\n controls: ControlDefinition[],\n) {\n controls = controls.map(cloneChildren);\n const rootMapping = findCompoundGroups(fields, controls);\n const rootGroups = findNonDataGroups([\n {\n type: ControlDefinitionType.Group,\n children: controls,\n },\n ]);\n const rootLookup = { children: rootMapping, groups: rootGroups };\n const missingFields = fields\n .filter((x) => !fieldHasTag(x, \"_NoControl\"))\n .flatMap((x) => existsInGroups(x, rootLookup));\n missingFields.forEach(([f, lookup]) => {\n const groupToAdd = f.tags?.find((x) => x.startsWith(\"_ControlGroup:\"));\n let insertGroup: ControlDefinition | undefined = undefined;\n if (groupToAdd) {\n const groupName = groupToAdd.substring(14);\n insertGroup = lookup.groups.find((x) => x.title === groupName);\n }\n if (!insertGroup) insertGroup = lookup.groups[0];\n insertGroup?.children?.push(defaultControlForField(f));\n });\n return controls;\n}\nexport function useUpdatedRef<A>(a: A): MutableRefObject<A> {\n const r = useRef(a);\n r.current = a;\n return r;\n}\n\nexport function isControlReadonly(c: ControlDefinition): boolean {\n return isDataControl(c) && !!c.readonly;\n}\n\nexport function getDisplayOnlyOptions(\n d: ControlDefinition,\n): DisplayOnlyRenderOptions | undefined {\n return isDataControlDefinition(d) &&\n d.renderOptions &&\n isDisplayOnlyRenderer(d.renderOptions)\n ? d.renderOptions\n : undefined;\n}\n\nexport function getTypeField(\n context: ControlDataContext,\n fieldPath: SchemaField[],\n): Control<string> | undefined {\n const withoutLast = fieldPath.slice(0, -1);\n const fieldList =\n withoutLast.length > 0\n ? (withoutLast.at(-1) as CompoundField).children\n : context.fields;\n const typeSchemaField = fieldList.find((x) => x.isTypeField);\n return typeSchemaField\n ? lookupChildControl(context, [...withoutLast, typeSchemaField])\n : undefined;\n}\n\nexport function visitControlDataArray<A>(\n controls: ControlDefinition[] | undefined | null,\n context: ControlDataContext,\n cb: (\n definition: DataControlDefinition,\n field: SchemaField,\n control: Control<any>,\n element: boolean,\n ) => A | undefined,\n): A | undefined {\n if (!controls) return undefined;\n for (const c of controls) {\n const r = visitControlData(c, context, cb);\n if (r !== undefined) return r;\n }\n return undefined;\n}\n\nexport function visitControlData<A>(\n definition: ControlDefinition,\n ctx: ControlDataContext,\n cb: (\n definition: DataControlDefinition,\n field: SchemaField,\n control: Control<any>,\n element: boolean,\n ) => A | undefined,\n): A | undefined {\n return visitControlDefinition<A | undefined>(\n definition,\n {\n data(def: DataControlDefinition) {\n return processData(def, def.field, def.children);\n },\n group(d: GroupedControlsDefinition) {\n return processData(undefined, d.compoundField, d.children);\n },\n action: () => undefined,\n display: () => undefined,\n },\n () => undefined,\n );\n\n function processData(\n def: DataControlDefinition | undefined,\n fieldName: string | undefined | null,\n children: ControlDefinition[] | null | undefined,\n ) {\n const fieldData = fieldName ? findField(ctx.fields, fieldName) : undefined;\n if (!fieldData)\n return !fieldName ? visitControlDataArray(children, ctx, cb) : undefined;\n\n const thisPath = [...ctx.path, fieldData.field];\n const control = ctx.data.lookupControl(thisPath);\n if (!control) throw \"No control for field\";\n const result = def ? cb(def, fieldData, control, false) : undefined;\n if (result !== undefined) return result;\n if (fieldData.collection) {\n let cIndex = 0;\n for (const c of control!.elements ?? []) {\n const elemResult = def ? cb(def, fieldData, c, true) : undefined;\n if (elemResult !== undefined) return elemResult;\n if (isCompoundField(fieldData)) {\n const cfResult = visitControlDataArray(\n children,\n {\n ...ctx,\n fields: fieldData.children,\n path: [...thisPath, cIndex],\n },\n cb,\n );\n if (cfResult !== undefined) return cfResult;\n }\n cIndex++;\n }\n }\n }\n}\n\nexport function lookupChildControl(\n data: DataContext,\n path: SchemaField[],\n): Control<any> | undefined {\n return lookupChildControlPath(\n data,\n path.map((x) => x.field),\n );\n}\n\nexport function lookupChildControlPath(\n data: DataContext,\n jsonPath: JsonPath[],\n): Control<any> | undefined {\n const childPath = [...data.path, ...jsonPath];\n return watchControlLookup(data.data, childPath);\n}\n\nexport function cleanDataForSchema(\n v: { [k: string]: any } | undefined,\n fields: SchemaField[],\n): any {\n if (!v) return v;\n const typeField = fields.find((x) => x.isTypeField);\n if (!typeField) return v;\n const typeValue = v[typeField.field];\n const cleanableFields = fields.filter(\n (x) => isCompoundField(x) || (x.onlyForTypes?.length ?? 0) > 0,\n );\n if (!cleanableFields.length) return v;\n const out = { ...v };\n cleanableFields.forEach((x) => {\n const childValue = v[x.field];\n if (\n x.onlyForTypes?.includes(typeValue) === false ||\n (!x.notNullable && canBeNull())\n ) {\n delete out[x.field];\n return;\n }\n if (isCompoundField(x)) {\n const childFields = x.treeChildren ? fields : x.children;\n if (x.collection) {\n if (Array.isArray(childValue)) {\n out[x.field] = childValue.map((cv) =>\n cleanDataForSchema(cv, childFields),\n );\n }\n } else {\n out[x.field] = cleanDataForSchema(childValue, childFields);\n }\n }\n function canBeNull() {\n return (\n x.collection && Array.isArray(childValue) && !childValue.length\n //|| (x.type === FieldType.Bool && childValue === false)\n );\n }\n });\n return out;\n}\n\nexport function getAllReferencedClasses(\n c: ControlDefinition,\n collectExtra?: (c: ControlDefinition) => (string | undefined | null)[],\n): string[] {\n const childClasses = c.children?.flatMap((x) =>\n getAllReferencedClasses(x, collectExtra),\n );\n const tc = clsx(\n [\n c.styleClass,\n c.layoutClass,\n c.labelClass,\n ...(collectExtra?.(c) ?? []),\n ].map(getOverrideClass),\n );\n if (childClasses && !tc) return childClasses;\n if (!tc) return [];\n if (childClasses) return [tc, ...childClasses];\n return [tc];\n}\n\nexport function jsonPathString(\n jsonPath: JsonPath[],\n customIndex?: (n: number) => string,\n) {\n let out = \"\";\n jsonPath.forEach((v, i) => {\n if (typeof v === \"number\") {\n out += customIndex?.(v) ?? \"[\" + v + \"]\";\n } else {\n if (i > 0) out += \".\";\n out += v;\n }\n });\n return out;\n}\n\nexport function findChildDefinition(\n parent: ControlDefinition,\n childPath: number | number[],\n): ControlDefinition {\n if (Array.isArray(childPath)) {\n let base = parent;\n childPath.forEach((x) => (base = base.children![x]));\n return base;\n }\n return parent.children![childPath];\n}\n\nexport function getOverrideClass(className?: string | null) {\n if (className && className.startsWith(\"@ \")) {\n return className.substring(2);\n }\n return className;\n}\n\nexport function rendererClass(\n controlClass?: string | null,\n globalClass?: string | null,\n) {\n const oc = getOverrideClass(controlClass);\n if (oc === controlClass) return clsx(controlClass, globalClass);\n return oc ? oc : undefined;\n}\n\nexport function watchControlLookup(\n base: Control<any> | undefined,\n path: (string | number)[],\n): Control<any> | undefined {\n let index = 0;\n while (index < path.length && base) {\n const childId = path[index];\n const c = base.current;\n if (typeof childId === \"string\") {\n const next = c.fields?.[childId];\n if (!next) trackControlChange(base, ControlChange.Structure);\n base = next;\n } else {\n base = c.elements?.[childId];\n }\n index++;\n }\n return base;\n}\n\nexport type HookDep = string | number | undefined | null;\n\nexport interface DynamicHookGenerator<A, P> {\n deps: HookDep;\n state: any;\n runHook(ctx: P, state: any): A;\n}\n\nexport function makeHook<A, P, S = undefined>(\n runHook: (ctx: P, state: S) => A,\n state: S,\n deps?: HookDep,\n): DynamicHookGenerator<A, P> {\n return { deps, state, runHook };\n}\n\nexport type DynamicHookValue<A> =\n A extends DynamicHookGenerator<infer V, any> ? V : never;\n\nexport function useDynamicHooks<\n P,\n Hooks extends Record<string, DynamicHookGenerator<any, P>>,\n>(\n hooks: Hooks,\n): (p: P) => {\n [K in keyof Hooks]: DynamicHookValue<Hooks[K]>;\n} {\n const hookEntries = Object.entries(hooks);\n const deps = hookEntries.map(([, x]) => toDepString(x.deps)).join(\",\");\n const ref = useRef<Record<string, any>>({});\n const s = ref.current;\n hookEntries.forEach((x) => (s[x[0]] = x[1].state));\n return useCallback(\n (p: P) => {\n return Object.fromEntries(\n hookEntries.map(([f, hg]) => [f, hg.runHook(p, ref.current[f])]),\n ) as any;\n },\n [deps],\n );\n}\n\nexport function toDepString(x: any): string {\n if (x === undefined) return \"_\";\n if (x === null) return \"~\";\n return x.toString();\n}\n\nexport function appendElementIndex(\n dataContext: ControlDataContext,\n elementIndex: number,\n): ControlDataContext {\n return { ...dataContext, path: [...dataContext.path, elementIndex] };\n}\n\nexport function applyLengthRestrictions<Min, Max>(\n length: number,\n min: number | null | undefined,\n max: number | null | undefined,\n minValue: Min,\n maxValue: Max,\n): [Min | undefined, Max | undefined] {\n return [\n min == null || length > min ? minValue : undefined,\n max == null || length < max ? maxValue : undefined,\n ];\n}\n\nexport function findFieldPath(\n fields: SchemaField[],\n fieldPath: string,\n): SchemaField[] | undefined {\n const fieldNames = fieldPath.split(\"/\");\n const foundFields: SchemaField[] = [];\n let i = 0;\n let currentFields: SchemaField[] | undefined = fields;\n while (i < fieldNames.length && currentFields) {\n const cf = fieldNames[i];\n const nextField = findField(currentFields, cf);\n if (!nextField) return undefined;\n foundFields.push(nextField);\n currentFields =\n isCompoundField(nextField) && !nextField.collection\n ? nextField.children\n : undefined;\n i++;\n }\n return foundFields.length === fieldNames.length ? foundFields : undefined;\n}\n","import {\n CompoundField,\n FieldOption,\n FieldType,\n SchemaField,\n SchemaMap,\n} from \"./types\";\nimport { isCompoundField } from \"./util\";\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<\n S extends SchemaField,\n S2 extends Partial<SchemaField>,\n>(options: S2, v: (name: string) => S): (name: string) => S & S2 {\n return (n) => ({ ...v(n), ...options });\n}\n\nexport function makeScalarField<S extends Partial<SchemaField>>(\n options: S,\n): (name: string) => SchemaField & S {\n return (n) => ({ ...defaultScalarField(n, n), ...options });\n}\n\nexport function makeCompoundField<S extends Partial<CompoundField>>(\n options: S,\n): (name: string) => CompoundField & {\n type: FieldType.Compound;\n} & S {\n return (n) => ({ ...defaultCompoundField(n, n, false), ...options });\n}\n\nexport function intField<S extends Partial<SchemaField>>(\n displayName: string,\n options?: S,\n) {\n return makeScalarField({\n type: FieldType.Int as const,\n displayName,\n ...(options as S),\n });\n}\n\nexport function boolField<S extends Partial<SchemaField>>(\n displayName: string,\n options?: S,\n) {\n return makeScalarField({\n type: FieldType.Bool as const,\n displayName,\n ...(options as S),\n });\n}\n\nexport function compoundField<\n Other extends Partial<Omit<CompoundField, \"type\" | \"schemaType\">>,\n>(\n displayName: string,\n fields: SchemaField[],\n other?: Other,\n): (name: string) => CompoundField & {\n collection: Other[\"collection\"];\n} {\n return (field) =>\n ({\n ...defaultCompoundField(field, displayName, false),\n ...other,\n children: fields,\n }) as any;\n}\n\nexport function defaultScalarField(\n field: string,\n displayName: string,\n): Omit<SchemaField, \"type\"> & {\n type: FieldType.String;\n} {\n return {\n field,\n displayName,\n type: FieldType.String,\n };\n}\n\nexport function defaultCompoundField(\n field: string,\n displayName: string,\n collection: boolean,\n): CompoundField & {\n type: FieldType.Compound;\n} {\n return {\n field,\n displayName,\n type: FieldType.Compound,\n collection,\n children: [],\n };\n}\n\nexport function mergeField(\n field: SchemaField,\n mergeInto: SchemaField[],\n): SchemaField[] {\n const existing = mergeInto.find((x) => x.field === field.field);\n if (existing) {\n return mergeInto.map((x) =>\n x !== existing\n ? x\n : {\n ...x,\n onlyForTypes: mergeTypes(x.onlyForTypes, field.onlyForTypes),\n },\n );\n }\n return [...mergeInto, field];\n\n function mergeTypes(f?: string[] | null, s?: string[] | null) {\n if (!f) return s;\n if (!s) return f;\n const extras = s.filter((x) => !f.includes(x));\n return extras.length ? [...f, ...extras] : f;\n }\n}\n\nexport function mergeFields(\n fields: SchemaField[],\n name: string,\n value: any,\n newFields: SchemaField[],\n): SchemaField[] {\n const withType = fields.map((x) =>\n x.isTypeField ? addFieldOption(x, name, value) : x,\n );\n return newFields\n .map((x) => ({ ...x, onlyForTypes: [value] }))\n .reduce((af, x) => mergeField(x, af), withType);\n}\n\nexport function addFieldOption(\n typeField: SchemaField,\n name: string,\n value: any,\n): SchemaField {\n const options = typeField.options ?? [];\n return {\n ...typeField,\n options: [...options, { name, value }],\n };\n}\n\nexport function resolveSchemas<A extends SchemaMap>(schemaMap: A): A {\n const out: SchemaMap = {};\n function resolveSchemaType(type: string) {\n if (type in out) {\n return out[type];\n }\n const resolvedFields: SchemaField[] = [];\n out[type] = resolvedFields;\n schemaMap[type].forEach((x) => {\n if (isCompoundField(x) && x.schemaRef) {\n resolvedFields.push({\n ...x,\n children: resolveSchemaType(x.schemaRef),\n } as CompoundField);\n } else {\n resolvedFields.push(x);\n }\n });\n return resolvedFields;\n }\n Object.keys(schemaMap).forEach(resolveSchemaType);\n return out as A;\n}\n","import {\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataMatchExpression,\n DisplayControlDefinition,\n DisplayDataType,\n DynamicProperty,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n GroupedControlsDefinition,\n GroupRenderType,\n HtmlDisplay,\n JsonataExpression,\n SchemaField,\n SchemaMap,\n TextDisplay,\n} from \"./types\";\nimport { ActionRendererProps } from \"./controlRender\";\nimport { useMemo } from \"react\";\nimport { addMissingControls, isCompoundField } from \"./util\";\nimport { mergeFields, resolveSchemas } from \"./schemaBuilder\";\n\nexport function dataControl(\n field: string,\n title?: string | null,\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return { type: ControlDefinitionType.Data, field, title, ...options };\n}\n\nexport function textDisplayControl(\n text: string,\n options?: Partial<DisplayControlDefinition>,\n): DisplayControlDefinition {\n return {\n type: ControlDefinitionType.Display,\n displayData: { type: DisplayDataType.Text, text } as TextDisplay,\n ...options,\n };\n}\n\nexport function htmlDisplayControl(\n html: string,\n options?: Partial<DisplayControlDefinition>,\n): DisplayControlDefinition {\n return {\n type: ControlDefinitionType.Display,\n displayData: { type: DisplayDataType.Html, html } as HtmlDisplay,\n ...options,\n };\n}\n\nexport function dynamicDefaultValue(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.DefaultValue, expr };\n}\n\nexport function dynamicReadonly(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Readonly, expr };\n}\n\nexport function dynamicVisibility(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Visible, expr };\n}\n\nexport function dynamicDisabled(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Disabled, expr };\n}\n\nexport function fieldEqExpr(field: string, value: any): DataMatchExpression {\n return { type: ExpressionType.DataMatch, field, value };\n}\nexport function jsonataExpr(expression: string): JsonataExpression {\n return { type: ExpressionType.Jsonata, expression };\n}\n\nexport function groupedControl(\n children: ControlDefinition[],\n title?: string,\n options?: Partial<GroupedControlsDefinition>,\n): GroupedControlsDefinition {\n return {\n type: ControlDefinitionType.Group,\n children,\n title,\n groupOptions: { type: \"Standard\", hideTitle: !title },\n ...options,\n };\n}\nexport function compoundControl(\n field: string,\n title: string | undefined,\n children: ControlDefinition[],\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return {\n type: ControlDefinitionType.Data,\n field,\n children,\n title,\n renderOptions: { type: \"Standard\" },\n ...options,\n };\n}\n\nexport function createAction(\n actionId: string,\n onClick: () => void,\n actionText?: string,\n): ActionRendererProps {\n return { actionId, onClick, actionText: actionText ?? actionId };\n}\n\nexport const emptyGroupDefinition: GroupedControlsDefinition = {\n type: ControlDefinitionType.Group,\n children: [],\n groupOptions: { type: GroupRenderType.Standard, hideTitle: true },\n};\n\nexport function useControlDefinitionForSchema(\n sf: SchemaField[],\n definition: GroupedControlsDefinition = emptyGroupDefinition,\n): GroupedControlsDefinition {\n return useMemo<GroupedControlsDefinition>(\n () => ({\n ...definition,\n children: addMissingControls(sf, definition.children ?? []),\n }),\n [sf, definition],\n );\n}\n\nexport interface CustomRenderOptions {\n value: string;\n name: string;\n fields: SchemaField[];\n}\n\nexport type ControlDefinitionExtension = {\n RenderOptions?: CustomRenderOptions | CustomRenderOptions[];\n GroupRenderOptions?: CustomRenderOptions | CustomRenderOptions[];\n ControlAdornment?: CustomRenderOptions | CustomRenderOptions[];\n SchemaValidator?: CustomRenderOptions | CustomRenderOptions[];\n DisplayData?: CustomRenderOptions | CustomRenderOptions[];\n};\n\nexport function applyExtensionToSchema<A extends SchemaMap>(\n schemaMap: A,\n extension: ControlDefinitionExtension,\n): A {\n const outMap = { ...schemaMap };\n Object.entries(extension).forEach(([field, cro]) => {\n outMap[field as keyof A] = (Array.isArray(cro) ? cro : [cro]).reduce(\n (a, cr) => mergeFields(a, cr.name, cr.value, cr.fields),\n outMap[field],\n ) as A[string];\n });\n return outMap;\n}\n\nexport function applyExtensionsToSchema<A extends SchemaMap>(\n schemaMap: A,\n extensions: ControlDefinitionExtension[],\n) {\n return resolveSchemas(extensions.reduce(applyExtensionToSchema, schemaMap));\n}\n","import {\n ControlDefinition,\n DataExpression,\n DataMatchExpression,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n isDataControlDefinition,\n JsonataExpression,\n SchemaField,\n SchemaInterface,\n} from \"./types\";\nimport React, { useEffect, useMemo, useRef } from \"react\";\nimport {\n addAfterChangesCallback,\n ChangeListenerFunc,\n collectChanges,\n Control,\n ControlChange,\n makeChangeTracker,\n trackedValue,\n useCalculatedControl,\n useComputed,\n useControl,\n useRefState,\n} from \"@react-typed-forms/core\";\n\nimport {\n ControlDataContext,\n DataContext,\n defaultValueForField,\n DynamicHookGenerator,\n elementValueForField,\n findFieldPath,\n getDisplayOnlyOptions,\n getTypeField,\n HookDep,\n isControlReadonly,\n jsonPathString,\n lookupChildControl,\n toDepString,\n} from \"./util\";\nimport jsonata from \"jsonata\";\n\nexport type EvalExpressionHook<A = any> = DynamicHookGenerator<\n Control<A | undefined>,\n ControlDataContext\n>;\n\nexport type UseEvalExpressionHook = (\n expr: EntityExpression | undefined,\n coerce: (v: any) => any,\n) => DynamicHookGenerator<Control<any> | undefined, ControlDataContext>;\n\nexport function useEvalVisibilityHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n fieldPath?: SchemaField[],\n): EvalExpressionHook<boolean> {\n const dynamicVisibility = useEvalDynamicBoolHook(\n definition,\n DynamicPropertyType.Visible,\n useEvalExpressionHook,\n );\n return makeDynamicPropertyHook(\n dynamicVisibility,\n (ctx, { fieldPath, definition }) =>\n useComputed(() => {\n return (\n matchesType(ctx, fieldPath) &&\n (!fieldPath ||\n !hideDisplayOnly(ctx, fieldPath, definition, ctx.schemaInterface))\n );\n }),\n { fieldPath, definition },\n );\n}\n\nexport function useEvalReadonlyHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<boolean> {\n const dynamicReadonly = useEvalDynamicBoolHook(\n definition,\n DynamicPropertyType.Readonly,\n useEvalExpressionHook,\n );\n return makeDynamicPropertyHook(\n dynamicReadonly,\n (ctx, { definition }) =>\n useCalculatedControl(() => isControlReadonly(definition)),\n { definition },\n );\n}\n\nexport function useEvalStyleHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n property: DynamicPropertyType,\n definition: ControlDefinition,\n): EvalExpressionHook<React.CSSProperties> {\n const dynamicStyle = useEvalDynamicHook(\n definition,\n property,\n useEvalExpressionHook,\n );\n return makeDynamicPropertyHook(\n dynamicStyle,\n () => useControl(undefined),\n undefined,\n );\n}\n\nexport function useEvalAllowedOptionsHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<any[]> {\n const dynamicAllowed = useEvalDynamicHook(\n definition,\n DynamicPropertyType.AllowedOptions,\n useEvalExpressionHook,\n );\n return makeDynamicPropertyHook(\n dynamicAllowed,\n () => useControl([]),\n undefined,\n );\n}\n\nexport function useEvalDisabledHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<boolean> {\n const dynamicDisabled = useEvalDynamicBoolHook(\n definition,\n DynamicPropertyType.Disabled,\n useEvalExpressionHook,\n );\n return makeDynamicPropertyHook(\n dynamicDisabled,\n () => useControl(false),\n undefined,\n );\n}\n\nexport function useEvalDisplayHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): DynamicHookGenerator<\n Control<string | undefined> | undefined,\n ControlDataContext\n> {\n return useEvalDynamicHook(\n definition,\n DynamicPropertyType.Display,\n useEvalExpressionHook,\n );\n}\nexport function useEvalDefaultValueHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n schemaField: SchemaField | undefined,\n element: boolean,\n): EvalExpressionHook {\n const dynamicValue = useEvalDynamicHook(\n definition,\n DynamicPropertyType.DefaultValue,\n useEvalExpressionHook,\n );\n return makeDynamicPropertyHook(\n dynamicValue,\n (ctx, { definition, schemaField }) => {\n return useComputed(calcDefault);\n function calcDefault() {\n const [required, dcv] = isDataControlDefinition(definition)\n ? [definition.required, definition.defaultValue]\n : [false, undefined];\n return (\n dcv ??\n (schemaField\n ? element\n ? elementValueForField(schemaField)\n : defaultValueForField(schemaField, required)\n : undefined)\n );\n }\n },\n { definition, schemaField },\n );\n}\n\nfunction useDataExpression(\n fvExpr: DataExpression,\n fields: SchemaField[],\n data: DataContext,\n coerce: (v: any) => any = (x) => x,\n) {\n const refField = findFieldPath(fields, fvExpr.field);\n const otherField = refField ? lookupChildControl(data, refField) : undefined;\n return useCalculatedControl(() => coerce(otherField?.value));\n}\n\nfunction useDataMatchExpression(\n fvExpr: DataMatchExpression,\n fields: SchemaField[],\n data: DataContext,\n coerce: (v: any) => any = (x) => x,\n) {\n const refField = findFieldPath(fields, fvExpr.field);\n const otherField = refField ? lookupChildControl(data, refField) : undefined;\n return useCalculatedControl(() => {\n const fv = otherField?.value;\n return coerce(\n Array.isArray(fv) ? fv.includes(fvExpr.value) : fv === fvExpr.value,\n );\n });\n}\n\nexport function defaultEvalHooks(\n expr: EntityExpression,\n context: ControlDataContext,\n coerce: (v: any) => any,\n) {\n switch (expr.type) {\n case ExpressionType.Jsonata:\n return useJsonataExpression(\n (expr as JsonataExpression).expression,\n context,\n undefined,\n coerce,\n );\n case ExpressionType.Data:\n return useDataExpression(\n expr as DataExpression,\n context.fields,\n context,\n coerce,\n );\n case ExpressionType.DataMatch:\n return useDataMatchExpression(\n expr as DataMatchExpression,\n context.fields,\n context,\n coerce,\n );\n default:\n return useControl(undefined);\n }\n}\n\nexport const defaultUseEvalExpressionHook =\n makeEvalExpressionHook(defaultEvalHooks);\n\nexport function makeEvalExpressionHook(\n f: (\n expr: EntityExpression,\n context: ControlDataContext,\n coerce: (v: any) => any,\n ) => Control<any>,\n): UseEvalExpressionHook {\n return (expr, coerce) => ({\n deps: expr?.type,\n state: expr,\n runHook: (ctx: ControlDataContext, state: EntityExpression | undefined) => {\n return state ? f(state, ctx, coerce) : undefined;\n },\n });\n}\n\nexport function useEvalDynamicBoolHook(\n definition: ControlDefinition,\n type: DynamicPropertyType,\n useEvalExpressionHook: UseEvalExpressionHook,\n): DynamicHookGenerator<Control<any> | undefined, ControlDataContext> {\n return useEvalDynamicHook(definition, type, useEvalExpressionHook, (x) =>\n Boolean(x),\n );\n}\n\nexport function useEvalDynamicHook(\n definition: ControlDefinition,\n type: DynamicPropertyType,\n useEvalExpressionHook: UseEvalExpressionHook,\n coerce: (v: any) => any = (x) => x,\n): DynamicHookGenerator<Control<any> | undefined, ControlDataContext> {\n const expression = definition.dynamic?.find((x) => x.type === type);\n return useEvalExpressionHook(expression?.expr, coerce);\n}\n\nexport function matchesType(\n context: ControlDataContext,\n fieldPath?: SchemaField[],\n) {\n const types = fieldPath\n ? fieldPath[fieldPath.length - 1].onlyForTypes\n : undefined;\n if (types == null || types.length === 0) return true;\n const typeField = getTypeField(context, fieldPath!);\n return typeField && types.includes(typeField.value);\n}\n\nexport function hideDisplayOnly(\n context: ControlDataContext,\n fieldPath: SchemaField[],\n definition: ControlDefinition,\n schemaInterface: SchemaInterface,\n) {\n const displayOptions = getDisplayOnlyOptions(definition);\n return (\n displayOptions &&\n !displayOptions.emptyText &&\n schemaInterface.isEmptyValue(\n fieldPath.at(-1)!,\n lookupChildControl(context, fieldPath)?.value,\n )\n );\n}\n\nexport function useJsonataExpression(\n jExpr: string,\n dataContext: DataContext,\n bindings?: () => Record<string, any>,\n coerce: (v: any) => any = (x) => x,\n): Control<any> {\n const pathString = jsonPathString(dataContext.path, (x) => `#$i[${x}]`);\n const fullExpr = pathString ? pathString + \".(\" + jExpr + \")\" : jExpr;\n const compiledExpr = useMemo(() => {\n try {\n return jsonata(fullExpr);\n } catch (e) {\n console.error(e);\n return jsonata(\"null\");\n }\n }, [fullExpr]);\n const control = useControl();\n const listenerRef = useRef<() => void>();\n const updateRef = useRef(0);\n const [ref] = useRefState(() =>\n makeChangeTracker(() => {\n const l = listenerRef.current;\n if (l) {\n listenerRef.current = undefined;\n addAfterChangesCallback(() => {\n listenerRef.current = l;\n l();\n });\n }\n }),\n );\n useEffect(() => {\n listenerRef.current = apply;\n apply();\n async function apply() {\n const [collect, updateSubscriptions] = ref.current;\n try {\n updateRef.current++;\n const bindingData = bindings\n ? collectChanges(collect, bindings)\n : undefined;\n control.value = coerce(\n await compiledExpr.evaluate(\n trackedValue(dataContext.data, collect),\n bindingData,\n ),\n );\n } finally {\n if (!--updateRef.current) updateSubscriptions();\n }\n }\n return () => ref.current[1](true);\n }, [compiledExpr]);\n return control;\n}\n\nexport function useEvalActionHook(\n useExpr: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<string | null> {\n const dynamicValue = useEvalDynamicHook(\n definition,\n DynamicPropertyType.ActionData,\n useExpr,\n );\n return makeDynamicPropertyHook(\n dynamicValue,\n () => useControl(null),\n undefined,\n );\n}\n\nexport function useEvalLabelText(\n useExpr: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<string | null> {\n const dynamicValue = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Label,\n useExpr,\n );\n return makeDynamicPropertyHook(\n dynamicValue,\n () => useControl(null),\n undefined,\n );\n}\n\nfunction makeDynamicPropertyHook<A, S = undefined>(\n dynamicValue: DynamicHookGenerator<\n Control<any> | undefined,\n ControlDataContext\n >,\n makeDefault: (ctx: ControlDataContext, s: S) => Control<A | undefined>,\n state: S,\n deps?: HookDep,\n): EvalExpressionHook<A> {\n return {\n deps:\n deps !== undefined\n ? dynamicValue.deps\n : [deps, dynamicValue.deps].map(toDepString).join(),\n runHook: (ctx, s) => {\n return dynamicValue.runHook(ctx, s[0]) ?? makeDefault(ctx, s[1]);\n },\n state: [dynamicValue.state, state],\n };\n}\n","import {\n ControlDefinition,\n DataControlDefinition,\n DateComparison,\n DateValidator,\n isDataControlDefinition,\n JsonataValidator,\n LengthValidator,\n SchemaField,\n SchemaInterface,\n ValidatorType,\n} from \"./types\";\nimport {\n Control,\n ControlChange,\n trackControlChange,\n useControlEffect,\n useValidator,\n useValueChangeEffect,\n} from \"@react-typed-forms/core\";\nimport { useCallback } from \"react\";\nimport { ControlDataContext, useUpdatedRef } from \"./util\";\nimport { useJsonataExpression } from \"./hooks\";\n\nexport function useValidationHook(\n definition: ControlDefinition,\n field: SchemaField | undefined,\n): (\n control: Control<any>,\n hidden: boolean,\n groupContext: ControlDataContext,\n schemaInterface: SchemaInterface,\n) => void {\n const validatorTypes = isDataControlDefinition(definition)\n ? definition.validators?.map((x) => x.type) ?? []\n : null;\n const r = useUpdatedRef({\n definition: definition as DataControlDefinition,\n field,\n });\n return useCallback(\n (control, hidden, groupContext, schemaInterface) => {\n if (!validatorTypes) return;\n const { definition: dd, field } = r.current;\n\n useValueChangeEffect(control, () => control.setError(\"default\", \"\"));\n useValidator(\n control,\n (v) =>\n !hidden &&\n dd.required &&\n field &&\n schemaInterface.isEmptyValue(field, v)\n ? \"Please enter a value\"\n : null,\n \"required\",\n undefined,\n [hidden, dd.required, !!field],\n );\n (dd.validators ?? []).forEach((x, i) => {\n switch (x.type) {\n case ValidatorType.Length:\n const lv = x as LengthValidator;\n useControlEffect(\n () => {\n trackControlChange(control, ControlChange.Validate);\n return [\n field ? schemaInterface.controlLength(field, control) : 0,\n hidden,\n ] as const;\n },\n ([len, hidden]) => {\n if (hidden) {\n control.setError(\"length\", undefined);\n return;\n }\n if (lv.min != null && len < lv.min) {\n if (field?.collection) {\n control.setValue((v) =>\n Array.isArray(v)\n ? v.concat(Array.from({ length: lv.min! - v.length }))\n : Array.from({ length: lv.min! }),\n );\n } else {\n control.setError(\n \"length\",\n \"Length must be at least \" + lv.min,\n );\n }\n } else if (lv.max != null && len > lv.max) {\n control.setError(\n \"length\",\n \"Length must be less than \" + lv.max,\n );\n }\n },\n true,\n );\n break;\n case ValidatorType.Jsonata:\n return useJsonataValidator(\n control,\n groupContext,\n x as JsonataValidator,\n hidden,\n i,\n );\n case ValidatorType.Date:\n return useDateValidator(control, x as DateValidator, i);\n }\n });\n },\n validatorTypes ? validatorTypes : [null],\n );\n}\n\nfunction useJsonataValidator(\n control: Control<any>,\n context: ControlDataContext,\n expr: JsonataValidator,\n hidden: boolean,\n i: number,\n) {\n const errorMsg = useJsonataExpression(expr.expression, context);\n useControlEffect(\n () => [hidden, errorMsg.value],\n ([hidden, msg]) => control.setError(\"jsonata\" + i, !hidden ? msg : null),\n true,\n );\n}\n\nfunction useDateValidator(\n control: Control<string | null | undefined>,\n dv: DateValidator,\n i: number,\n) {\n let comparisonDate: number;\n if (dv.fixedDate) {\n comparisonDate = Date.parse(dv.fixedDate);\n } else {\n const nowDate = new Date();\n comparisonDate = Date.UTC(\n nowDate.getFullYear(),\n nowDate.getMonth(),\n nowDate.getDate(),\n );\n if (dv.daysFromCurrent) {\n comparisonDate += dv.daysFromCurrent * 86400000;\n }\n }\n useValidator(\n control,\n (v) => {\n if (v) {\n const selDate = Date.parse(v);\n const notAfter = dv.comparison === DateComparison.NotAfter;\n if (notAfter ? selDate > comparisonDate : selDate < comparisonDate) {\n return `Date must not be ${notAfter ? \"after\" : \"before\"} ${new Date(\n comparisonDate,\n ).toDateString()}`;\n }\n }\n return null;\n },\n \"date\" + i,\n );\n}\n","export function cc(n: string | null | undefined): string | undefined {\n return n ? n : undefined;\n}\n","import { FieldType, SchemaField, SchemaInterface } from \"./types\";\nimport { Control } from \"@react-typed-forms/core\";\n\nexport class DefaultSchemaInterface implements SchemaInterface {\n isEmptyValue(f: SchemaField, value: any): boolean {\n if (f.collection)\n return Array.isArray(value) ? value.length === 0 : value == null;\n switch (f.type) {\n case FieldType.String:\n return !value;\n default:\n return value == null;\n }\n }\n textValue(\n field: SchemaField,\n value: any,\n element?: boolean | undefined,\n ): string | undefined {\n switch (field.type) {\n case FieldType.DateTime:\n return new Date(value).toLocaleDateString();\n case FieldType.Date:\n return new Date(value).toLocaleDateString();\n default:\n return value != null ? value.toString() : undefined;\n }\n }\n controlLength(f: SchemaField, control: Control<any>): number {\n return f.collection\n ? control.elements?.length ?? 0\n : this.valueLength(f, control.value);\n }\n valueLength(field: SchemaField, value: any): number {\n return (value && value?.length) ?? 0;\n }\n}\n\nexport const defaultSchemaInterface: SchemaInterface =\n new DefaultSchemaInterface();\n","import React, {\n CSSProperties,\n FC,\n Fragment,\n Key,\n ReactNode,\n useCallback,\n useEffect,\n} from \"react\";\nimport {\n addElement,\n Control,\n newControl,\n removeElement,\n useCalculatedControl,\n useComponentTracking,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\nimport {\n AdornmentPlacement,\n ControlAdornment,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DisplayData,\n DynamicPropertyType,\n FieldOption,\n GroupRenderOptions,\n isActionControlsDefinition,\n isDataControlDefinition,\n isDisplayControlsDefinition,\n isGroupControlsDefinition,\n LengthValidator,\n RenderOptions,\n SchemaField,\n SchemaInterface,\n ValidatorType,\n} from \"./types\";\nimport {\n applyLengthRestrictions,\n ControlDataContext,\n elementValueForField,\n fieldDisplayName,\n findFieldPath,\n isCompoundField,\n JsonPath,\n lookupChildControlPath,\n useDynamicHooks,\n useUpdatedRef,\n} from \"./util\";\nimport { dataControl } from \"./controlBuilder\";\nimport {\n defaultUseEvalExpressionHook,\n EvalExpressionHook,\n useEvalActionHook,\n useEvalAllowedOptionsHook,\n useEvalDefaultValueHook,\n useEvalDisabledHook,\n useEvalDisplayHook,\n UseEvalExpressionHook,\n useEvalLabelText,\n useEvalReadonlyHook,\n useEvalStyleHook,\n useEvalVisibilityHook,\n} from \"./hooks\";\nimport { useValidationHook } from \"./validators\";\nimport { cc } from \"./internal\";\nimport { defaultSchemaInterface } from \"./schemaInterface\";\n\nexport interface FormRenderer {\n renderData: (\n props: DataRendererProps,\n ) => (layout: ControlLayoutProps) => ControlLayoutProps;\n renderGroup: (\n props: GroupRendererProps,\n ) => (layout: ControlLayoutProps) => ControlLayoutProps;\n renderDisplay: (props: DisplayRendererProps) => ReactNode;\n renderAction: (props: ActionRendererProps) => ReactNode;\n renderArray: (props: ArrayRendererProps) => ReactNode;\n renderAdornment: (props: AdornmentProps) => AdornmentRenderer;\n renderLabel: (\n props: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n ) => ReactNode;\n renderLayout: (props: ControlLayoutProps) => RenderedControl;\n renderVisibility: (props: VisibilityRendererProps) => ReactNode;\n}\n\nexport interface AdornmentProps {\n adornment: ControlAdornment;\n}\n\nexport const AppendAdornmentPriority = 0;\nexport const WrapAdornmentPriority = 1000;\n\nexport interface AdornmentRenderer {\n apply(children: RenderedLayout): void;\n adornment?: ControlAdornment;\n priority: number;\n}\n\nexport interface ArrayRendererProps {\n addAction?: ActionRendererProps;\n required: boolean;\n removeAction?: (elemIndex: number) => ActionRendererProps;\n renderElement: (elemIndex: number) => ReactNode;\n arrayControl: Control<any[] | undefined | null>;\n className?: string;\n style?: React.CSSProperties;\n min?: number | null;\n max?: number | null;\n}\nexport interface Visibility {\n visible: boolean;\n showing: boolean;\n}\n\nexport interface RenderedLayout {\n labelStart?: ReactNode;\n labelEnd?: ReactNode;\n controlStart?: ReactNode;\n controlEnd?: ReactNode;\n label?: ReactNode;\n children?: ReactNode;\n errorControl?: Control<any>;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface RenderedControl {\n children: ReactNode;\n className?: string;\n style?: React.CSSProperties;\n divRef?: (cb: HTMLElement | null) => void;\n}\n\nexport interface VisibilityRendererProps extends RenderedControl {\n visibility: Control<Visibility | undefined>;\n}\n\nexport interface ControlLayoutProps {\n label?: LabelRendererProps;\n errorControl?: Control<any>;\n adornments?: AdornmentRenderer[];\n children?: ReactNode;\n processLayout?: (props: ControlLayoutProps) => ControlLayoutProps;\n className?: string | null;\n style?: React.CSSProperties;\n}\n\nexport enum LabelType {\n Control,\n Group,\n}\nexport interface LabelRendererProps {\n type: LabelType;\n hide?: boolean | null;\n label: ReactNode;\n required?: boolean | null;\n forId?: string;\n className?: string;\n}\nexport interface DisplayRendererProps {\n data: DisplayData;\n display?: Control<string | undefined>;\n dataContext: ControlDataContext;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport type ChildVisibilityFunc = (\n child: ControlDefinition,\n context?: ControlDataContext,\n) => EvalExpressionHook<boolean>;\nexport interface ParentRendererProps {\n childDefinitions: ControlDefinition[];\n renderChild: ChildRenderer;\n className?: string;\n style?: React.CSSProperties;\n dataContext: ControlDataContext;\n parentContext: ControlDataContext;\n useChildVisibility: ChildVisibilityFunc;\n}\n\nexport interface GroupRendererProps extends ParentRendererProps {\n definition: ControlDefinition;\n renderOptions: GroupRenderOptions;\n}\n\nexport interface DataRendererProps extends ParentRendererProps {\n renderOptions: RenderOptions;\n definition: DataControlDefinition;\n field: SchemaField;\n elementIndex?: number;\n id: string;\n control: Control<any>;\n readonly: boolean;\n required: boolean;\n options: FieldOption[] | undefined | null;\n hidden: boolean;\n toArrayProps?: () => ArrayRendererProps;\n}\n\nexport interface ActionRendererProps {\n actionId: string;\n actionText: string;\n actionData?: any;\n onClick: () => void;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface ControlRenderProps {\n control: Control<any>;\n parentPath?: JsonPath[];\n}\n\nexport interface FormContextOptions {\n readonly?: boolean | null;\n hidden?: boolean | null;\n disabled?: boolean | null;\n}\n\nexport interface DataControlProps {\n definition: DataControlDefinition;\n field: SchemaField;\n dataContext: ControlDataContext;\n parentContext: ControlDataContext;\n control: Control<any>;\n formOptions: FormContextOptions;\n style?: React.CSSProperties | undefined;\n renderChild: ChildRenderer;\n elementIndex?: number;\n allowedOptions?: Control<any[] | undefined>;\n useChildVisibility: ChildVisibilityFunc;\n}\n\nexport type CreateDataProps = (\n controlProps: DataControlProps,\n) => DataRendererProps;\n\nexport interface ControlRenderOptions extends FormContextOptions {\n useDataHook?: (c: ControlDefinition) => CreateDataProps;\n actionOnClick?: (actionId: string, actionData: any) => () => void;\n useEvalExpressionHook?: UseEvalExpressionHook;\n clearHidden?: boolean;\n schemaInterface?: SchemaInterface;\n elementIndex?: number;\n}\nexport function useControlRenderer(\n definition: ControlDefinition,\n fields: SchemaField[],\n renderer: FormRenderer,\n options: ControlRenderOptions = {},\n): FC<ControlRenderProps> {\n const dataProps = options.useDataHook?.(definition) ?? defaultDataProps;\n const elementIndex = options.elementIndex;\n const schemaInterface = options.schemaInterface ?? defaultSchemaInterface;\n const useExpr = options.useEvalExpressionHook ?? defaultUseEvalExpressionHook;\n\n const fieldPath = lookupSchemaField(definition, fields);\n const schemaField = fieldPath?.at(-1);\n const dynamicHooks = useDynamicHooks({\n defaultValueControl: useEvalDefaultValueHook(\n useExpr,\n definition,\n schemaField,\n elementIndex != null,\n ),\n visibleControl: useEvalVisibilityHook(useExpr, definition, fieldPath),\n readonlyControl: useEvalReadonlyHook(useExpr, definition),\n disabledControl: useEvalDisabledHook(useExpr, definition),\n allowedOptions: useEvalAllowedOptionsHook(useExpr, definition),\n labelText: useEvalLabelText(useExpr, definition),\n actionData: useEvalActionHook(useExpr, definition),\n customStyle: useEvalStyleHook(\n useExpr,\n DynamicPropertyType.Style,\n definition,\n ),\n layoutStyle: useEvalStyleHook(\n useExpr,\n DynamicPropertyType.LayoutStyle,\n definition,\n ),\n displayControl: useEvalDisplayHook(useExpr, definition),\n });\n\n const useValidation = useValidationHook(definition, schemaField);\n const r = useUpdatedRef({\n options,\n definition,\n fields,\n fieldPath,\n elementIndex,\n });\n\n const Component = useCallback(\n ({ control: rootControl, parentPath = [] }: ControlRenderProps) => {\n const stopTracking = useComponentTracking();\n try {\n const {\n definition: c,\n options,\n fields,\n fieldPath,\n elementIndex,\n } = r.current;\n const schemaField = fieldPath?.at(-1);\n const parentDataContext: ControlDataContext = {\n fields,\n schemaInterface,\n data: rootControl,\n path: parentPath,\n };\n const {\n readonlyControl,\n disabledControl,\n visibleControl,\n displayControl,\n layoutStyle,\n labelText,\n customStyle,\n allowedOptions,\n defaultValueControl,\n actionData,\n } = dynamicHooks(parentDataContext);\n\n const visible = visibleControl.current.value;\n const visibility = useControl<Visibility | undefined>(() =>\n visible != null\n ? {\n visible,\n showing: visible,\n }\n : undefined,\n );\n useControlEffect(\n () => visibleControl.value,\n (visible) => {\n if (visible != null)\n visibility.setValue((ex) => ({\n visible,\n showing: ex ? ex.showing : visible,\n }));\n },\n );\n\n const [parentControl, control, controlDataContext] = getControlData(\n fieldPath,\n parentDataContext,\n elementIndex,\n );\n useControlEffect(\n () => [\n visibility.value,\n defaultValueControl.value,\n control,\n isDataControlDefinition(definition) && definition.dontClearHidden,\n parentControl.isNull,\n options.hidden,\n ],\n ([vc, dv, cd, dontClear, parentNull, hidden]) => {\n if (vc && cd && vc.visible === vc.showing) {\n if (hidden || !vc.visible) {\n if (options.clearHidden && !dontClear) {\n cd.value = undefined;\n }\n } else if (cd.value == null) {\n cd.value = dv;\n }\n }\n if (parentNull) {\n parentControl.setValue((x) => x ?? {});\n }\n },\n true,\n );\n const myOptions = useCalculatedControl<FormContextOptions>(() => ({\n hidden: options.hidden || !visibility.fields?.showing.value,\n readonly: options.readonly || readonlyControl.value,\n disabled: options.disabled || disabledControl.value,\n })).value;\n useValidation(\n control ?? newControl(null),\n !!myOptions.hidden,\n parentDataContext,\n schemaInterface,\n );\n const childOptions: ControlRenderOptions = {\n ...options,\n ...myOptions,\n elementIndex: undefined,\n };\n\n useEffect(() => {\n if (control && typeof myOptions.disabled === \"boolean\")\n control.disabled = myOptions.disabled;\n }, [control, myOptions.disabled]);\n if (parentControl.isNull) return <></>;\n\n const adornments =\n definition.adornments?.map((x) =>\n renderer.renderAdornment({ adornment: x }),\n ) ?? [];\n const labelAndChildren = renderControlLayout({\n definition: c,\n renderer,\n renderChild: (k, child, options) => {\n const dataContext = options?.dataContext ?? controlDataContext;\n return (\n <ControlRenderer\n key={k}\n control={dataContext.data}\n fields={dataContext.fields}\n definition={child}\n parentPath={dataContext.path}\n renderer={renderer}\n options={\n options\n ? { ...childOptions, elementIndex: options?.elementIndex }\n : childOptions\n }\n />\n );\n },\n createDataProps: dataProps,\n formOptions: myOptions,\n dataContext: controlDataContext,\n parentContext: parentDataContext,\n control: displayControl ?? control,\n elementIndex,\n labelText,\n field: schemaField,\n displayControl,\n style: customStyle.value,\n allowedOptions,\n actionDataControl: actionData,\n actionOnClick: options.actionOnClick,\n useChildVisibility: (childDef, context) => {\n const schemaField = lookupSchemaField(\n childDef,\n (context ?? controlDataContext).fields,\n );\n return useEvalVisibilityHook(useExpr, childDef, schemaField);\n },\n });\n const renderedControl = renderer.renderLayout({\n ...labelAndChildren,\n adornments,\n className: c.layoutClass,\n style: layoutStyle.value,\n });\n return renderer.renderVisibility({ visibility, ...renderedControl });\n } finally {\n stopTracking();\n }\n },\n [r, dataProps, useValidation, renderer, schemaInterface, dynamicHooks],\n );\n (Component as any).displayName = \"RenderControl\";\n return Component;\n}\nexport function lookupSchemaField(\n c: ControlDefinition,\n fields: SchemaField[],\n): SchemaField[] | undefined {\n const fieldName = isGroupControlsDefinition(c)\n ? c.compoundField\n : isDataControlDefinition(c)\n ? c.field\n : undefined;\n return fieldName ? findFieldPath(fields, fieldName) : undefined;\n}\nexport function getControlData(\n fieldPath: SchemaField[] | undefined,\n parentContext: ControlDataContext,\n elementIndex: number | undefined,\n): [Control<any>, Control<any> | undefined, ControlDataContext] {\n const { data, path: pp } = parentContext;\n const extraPath = fieldPath?.slice(0, -1).map((x) => x.field) ?? [];\n const path = [...pp, ...extraPath];\n const schemaField = fieldPath?.at(-1);\n const [parentControl, found] = lookupControl(data, path);\n const childPath = schemaField\n ? elementIndex != null\n ? [...path, schemaField.field, elementIndex]\n : [...path, schemaField.field]\n : path;\n const childControl =\n schemaField && found\n ? parentControl.fields?.[schemaField.field]\n : undefined;\n return [\n parentControl,\n childControl && elementIndex != null\n ? childControl.elements?.[elementIndex]\n : childControl,\n schemaField\n ? {\n ...parentContext,\n path: childPath,\n fields: isCompoundField(schemaField)\n ? schemaField.children\n : parentContext.fields,\n }\n : parentContext,\n ];\n}\n\nfunction lookupControl(\n control: Control<any>,\n path: (string | number)[],\n): [Control<any>, boolean] {\n let base = control;\n let index = 0;\n while (index < path.length && base) {\n control = base;\n const childId = path[index];\n const c = base.current;\n if (typeof childId === \"string\") {\n base = c.fields?.[childId];\n } else {\n base = c.elements?.[childId];\n }\n index++;\n }\n return [base ?? control, !!base];\n}\n\nexport function ControlRenderer({\n definition,\n fields,\n renderer,\n options,\n control,\n parentPath,\n}: {\n definition: ControlDefinition;\n fields: SchemaField[];\n renderer: FormRenderer;\n options?: ControlRenderOptions;\n control: Control<any>;\n parentPath?: JsonPath[];\n}) {\n const Render = useControlRenderer(definition, fields, renderer, options);\n return <Render control={control} parentPath={parentPath} />;\n}\n\nexport function defaultDataProps({\n definition,\n field,\n control,\n formOptions,\n style,\n allowedOptions,\n ...props\n}: DataControlProps): DataRendererProps {\n const lengthVal = definition.validators?.find(\n (x) => x.type === ValidatorType.Length,\n ) as LengthValidator | undefined;\n const className = cc(definition.styleClass);\n const required = !!definition.required;\n const fieldOptions =\n (field.options?.length ?? 0) === 0 ? null : field.options;\n const allowed = allowedOptions?.value ?? [];\n return {\n definition,\n childDefinitions: definition.children ?? [],\n control,\n field,\n id: \"c\" + control.uniqueId,\n options:\n fieldOptions && allowed.length > 0\n ? fieldOptions.filter((x) => allowed.includes(x.value))\n : fieldOptions,\n readonly: !!formOptions.readonly,\n renderOptions: definition.renderOptions ?? { type: \"Standard\" },\n required,\n hidden: !!formOptions.hidden,\n className,\n style,\n ...props,\n toArrayProps:\n field.collection && props.elementIndex == null\n ? () =>\n defaultArrayProps(\n control,\n field,\n required,\n style,\n className,\n (elementIndex) =>\n props.renderChild(\n control.elements?.[elementIndex].uniqueId ?? elementIndex,\n {\n type: ControlDefinitionType.Data,\n field: definition.field,\n children: definition.children,\n hideTitle: true,\n } as DataControlDefinition,\n { elementIndex, dataContext: props.parentContext },\n ),\n lengthVal?.min,\n lengthVal?.max,\n )\n : undefined,\n };\n}\n\nexport function defaultArrayProps(\n arrayControl: Control<any[] | undefined | null>,\n field: SchemaField,\n required: boolean,\n style: CSSProperties | undefined,\n className: string | undefined,\n renderElement: (elemIndex: number) => ReactNode,\n min: number | undefined | null,\n max: number | undefined | null,\n): ArrayRendererProps {\n const noun = field.displayName ?? field.field;\n return {\n arrayControl,\n required,\n addAction: {\n actionId: \"add\",\n actionText: \"Add \" + noun,\n onClick: () => addElement(arrayControl, elementValueForField(field)),\n },\n removeAction: (i: number) => ({\n actionId: \"\",\n actionText: \"Remove\",\n onClick: () => removeElement(arrayControl, i),\n }),\n renderElement: (i) => renderElement(i),\n className: cc(className),\n style,\n min,\n max,\n };\n}\n\nexport interface ChildRendererOptions {\n elementIndex?: number;\n dataContext?: ControlDataContext;\n}\n\nexport type ChildRenderer = (\n k: Key,\n child: ControlDefinition,\n options?: ChildRendererOptions,\n) => ReactNode;\n\nexport interface RenderControlProps {\n definition: ControlDefinition;\n renderer: FormRenderer;\n renderChild: ChildRenderer;\n createDataProps: CreateDataProps;\n formOptions: FormContextOptions;\n dataContext: ControlDataContext;\n parentContext: ControlDataContext;\n control?: Control<any>;\n labelText?: Control<string | null | undefined>;\n field?: SchemaField;\n elementIndex?: number;\n displayControl?: Control<string | undefined>;\n style?: React.CSSProperties;\n allowedOptions?: Control<any[] | undefined>;\n actionDataControl?: Control<any | undefined | null>;\n useChildVisibility: ChildVisibilityFunc;\n actionOnClick?: (actionId: string, actionData: any) => () => void;\n}\nexport function renderControlLayout(\n props: RenderControlProps,\n): ControlLayoutProps {\n const {\n definition: c,\n renderer,\n renderChild,\n control,\n field,\n dataContext,\n createDataProps: dataProps,\n displayControl,\n style,\n labelText,\n parentContext,\n useChildVisibility,\n } = props;\n\n if (isDataControlDefinition(c)) {\n return renderData(c);\n }\n if (isGroupControlsDefinition(c)) {\n if (c.compoundField) {\n return renderData(\n dataControl(c.compoundField, c.title, {\n children: c.children,\n hideTitle: c.groupOptions?.hideTitle,\n }),\n );\n }\n return {\n processLayout: renderer.renderGroup({\n childDefinitions: c.children ?? [],\n definition: c,\n parentContext,\n renderChild,\n dataContext,\n renderOptions: c.groupOptions ?? { type: \"Standard\" },\n className: cc(c.styleClass),\n useChildVisibility,\n style,\n }),\n label: {\n label: labelText?.value ?? c.title,\n className: cc(c.labelClass),\n type: LabelType.Group,\n hide: c.groupOptions?.hideTitle,\n },\n };\n }\n if (isActionControlsDefinition(c)) {\n const actionData = props.actionDataControl?.value ?? c.actionData;\n return {\n children: renderer.renderAction({\n actionText: labelText?.value ?? c.title ?? c.actionId,\n actionId: c.actionId,\n actionData,\n onClick: props.actionOnClick?.(c.actionId, actionData) ?? (() => {}),\n className: cc(c.styleClass),\n style,\n }),\n };\n }\n if (isDisplayControlsDefinition(c)) {\n return {\n children: renderer.renderDisplay({\n data: c.displayData ?? {},\n className: cc(c.styleClass),\n style,\n display: displayControl,\n dataContext,\n }),\n };\n }\n return {};\n\n function renderData(c: DataControlDefinition) {\n if (!field) return { children: \"No schema field for: \" + c.field };\n if (!control) return { children: \"No control for: \" + c.field };\n const rendererProps = dataProps(\n props as RenderControlProps & {\n definition: DataControlDefinition;\n field: SchemaField;\n control: Control<any>;\n },\n );\n\n const label = !c.hideTitle\n ? controlTitle(labelText?.value ?? c.title, field)\n : undefined;\n return {\n processLayout: renderer.renderData(rendererProps),\n label: {\n type:\n (c.children?.length ?? 0) > 0 ? LabelType.Group : LabelType.Control,\n label,\n forId: rendererProps.id,\n required: c.required,\n hide: c.hideTitle,\n className: cc(c.labelClass),\n },\n errorControl: control,\n };\n }\n}\n\nexport function appendMarkup(\n k: keyof Omit<RenderedLayout, \"errorControl\" | \"style\" | \"className\">,\n markup: ReactNode,\n): (layout: RenderedLayout) => void {\n return (layout) =>\n (layout[k] = (\n <>\n {layout[k]}\n {markup}\n </>\n ));\n}\n\nexport function wrapMarkup(\n k: keyof Omit<RenderedLayout, \"errorControl\" | \"style\" | \"className\">,\n wrap: (ex: ReactNode) => ReactNode,\n): (layout: RenderedLayout) => void {\n return (layout) => (layout[k] = wrap(layout[k]));\n}\n\nexport function layoutKeyForPlacement(\n pos: AdornmentPlacement,\n): keyof Omit<RenderedLayout, \"errorControl\" | \"style\" | \"className\"> {\n switch (pos) {\n case AdornmentPlacement.ControlEnd:\n return \"controlEnd\";\n case AdornmentPlacement.ControlStart:\n return \"controlStart\";\n case AdornmentPlacement.LabelStart:\n return \"labelStart\";\n case AdornmentPlacement.LabelEnd:\n return \"labelEnd\";\n }\n}\n\nexport function appendMarkupAt(\n pos: AdornmentPlacement,\n markup: ReactNode,\n): (layout: RenderedLayout) => void {\n return appendMarkup(layoutKeyForPlacement(pos), markup);\n}\n\nexport function wrapMarkupAt(\n pos: AdornmentPlacement,\n wrap: (ex: ReactNode) => ReactNode,\n): (layout: RenderedLayout) => void {\n return wrapMarkup(layoutKeyForPlacement(pos), wrap);\n}\n\nexport function renderLayoutParts(\n props: ControlLayoutProps,\n renderer: FormRenderer,\n): RenderedLayout {\n const { className, children, style, errorControl, label, adornments } =\n props.processLayout?.(props) ?? props;\n const layout: RenderedLayout = {\n children,\n errorControl,\n style,\n className: cc(className),\n };\n (adornments ?? [])\n .sort((a, b) => a.priority - b.priority)\n .forEach((x) => x.apply(layout));\n layout.label =\n label && !label.hide\n ? renderer.renderLabel(label, layout.labelStart, layout.labelEnd)\n : undefined;\n return layout;\n}\n\nexport function controlTitle(\n title: string | undefined | null,\n field: SchemaField,\n) {\n return title ? title : fieldDisplayName(field);\n}\n\nexport function applyArrayLengthRestrictions(\n {\n arrayControl,\n min,\n max,\n addAction: aa,\n removeAction: ra,\n required,\n }: Pick<\n ArrayRendererProps,\n \"addAction\" | \"removeAction\" | \"arrayControl\" | \"min\" | \"max\" | \"required\"\n >,\n disable?: boolean,\n): Pick<ArrayRendererProps, \"addAction\" | \"removeAction\"> & {\n addDisabled: boolean;\n removeDisabled: boolean;\n} {\n const [removeAllowed, addAllowed] = applyLengthRestrictions(\n arrayControl.elements?.length ?? 0,\n min == null && required ? 1 : min,\n max,\n true,\n true,\n );\n return {\n addAction: disable || addAllowed ? aa : undefined,\n removeAction: disable || removeAllowed ? ra : undefined,\n removeDisabled: !removeAllowed,\n addDisabled: !addAllowed,\n };\n}\n","import { CSSProperties, ReactElement, ReactNode } from \"react\";\nimport {\n ActionRendererProps,\n AdornmentProps,\n AdornmentRenderer,\n ArrayRendererProps,\n ControlLayoutProps,\n DataRendererProps,\n DisplayRendererProps,\n FormRenderer,\n GroupRendererProps,\n LabelRendererProps,\n LabelType,\n RenderedControl,\n VisibilityRendererProps,\n} from \"./controlRender\";\nimport { ControlAdornment, ControlAdornmentType, IconAdornment } from \"./types\";\n\nexport interface DefaultRenderers {\n data: DataRendererRegistration;\n label: LabelRendererRegistration;\n action: ActionRendererRegistration;\n array: ArrayRendererRegistration;\n group: GroupRendererRegistration;\n display: DisplayRendererRegistration;\n adornment: AdornmentRendererRegistration;\n renderLayout: LayoutRendererRegistration;\n visibility: VisibilityRendererRegistration;\n}\n\nexport interface LayoutRendererRegistration {\n type: \"layout\";\n match?: (props: ControlLayoutProps) => boolean;\n render: (\n props: ControlLayoutProps,\n renderers: FormRenderer,\n ) => RenderedControl;\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 renderers: FormRenderer,\n ) => ReactNode | ((layout: ControlLayoutProps) => ControlLayoutProps);\n}\n\nexport interface LabelRendererRegistration {\n type: \"label\";\n labelType?: LabelType | LabelType[];\n render: (\n labelProps: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface ActionRendererRegistration {\n type: \"action\";\n actionType?: string | string[];\n render: (props: ActionRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface ArrayRendererRegistration {\n type: \"array\";\n render: (props: ArrayRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface GroupRendererRegistration {\n type: \"group\";\n renderType?: string | string[];\n render: (\n props: GroupRendererProps,\n renderers: FormRenderer,\n ) => ReactElement | ((layout: ControlLayoutProps) => ControlLayoutProps);\n}\n\nexport interface DisplayRendererRegistration {\n type: \"display\";\n renderType?: string | string[];\n render: (\n props: DisplayRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface AdornmentRendererRegistration {\n type: \"adornment\";\n adornmentType?: string | string[];\n render: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nexport interface VisibilityRendererRegistration {\n type: \"visibility\";\n render: (props: VisibilityRendererProps) => ReactNode;\n}\n\nexport type RendererRegistration =\n | DataRendererRegistration\n | GroupRendererRegistration\n | DisplayRendererRegistration\n | ActionRendererRegistration\n | LabelRendererRegistration\n | ArrayRendererRegistration\n | AdornmentRendererRegistration\n | LayoutRendererRegistration\n | VisibilityRendererRegistration;\n\nexport function isIconAdornment(a: ControlAdornment): a is IconAdornment {\n return a.type === ControlAdornmentType.Icon;\n}\n\nexport function createLayoutRenderer(\n render: LayoutRendererRegistration[\"render\"],\n options?: Partial<LayoutRendererRegistration>,\n): LayoutRendererRegistration {\n return { type: \"layout\", render, ...options };\n}\n\nexport function createArrayRenderer(\n render: ArrayRendererRegistration[\"render\"],\n options?: Partial<ArrayRendererRegistration>,\n): ArrayRendererRegistration {\n return { type: \"array\", render, ...options };\n}\n\nexport function createDataRenderer(\n render: DataRendererRegistration[\"render\"],\n options?: Partial<DataRendererRegistration>,\n): DataRendererRegistration {\n return { type: \"data\", render, ...options };\n}\n\nexport function createGroupRenderer(\n render: GroupRendererRegistration[\"render\"],\n options?: Partial<GroupRendererRegistration>,\n): GroupRendererRegistration {\n return { type: \"group\", render, ...options };\n}\n\nexport function createDisplayRenderer(\n render: DisplayRendererRegistration[\"render\"],\n options?: Partial<DisplayRendererRegistration>,\n): DisplayRendererRegistration {\n return { type: \"display\", render, ...options };\n}\n\nexport function createLabelRenderer(\n render: LabelRendererRegistration[\"render\"],\n options?: Omit<LabelRendererRegistration, \"type\">,\n): LabelRendererRegistration {\n return { type: \"label\", render, ...options };\n}\n\nexport function createVisibilityRenderer(\n render: VisibilityRendererRegistration[\"render\"],\n options?: Partial<VisibilityRendererRegistration>,\n): VisibilityRendererRegistration {\n return { type: \"visibility\", render, ...options };\n}\n\nexport function createAdornmentRenderer(\n render: (props: AdornmentProps) => AdornmentRenderer,\n options?: Partial<AdornmentRendererRegistration>,\n): AdornmentRendererRegistration {\n return { type: \"adornment\", ...options, render };\n}\n","import React from \"react\";\n\nimport { DefaultRendererOptions } from \"./createDefaultRenderers\";\n\nexport const defaultTailwindTheme = {\n label: {\n groupLabelClass: \"font-bold\",\n requiredElement: <span className=\"text-red-500\"> *</span>,\n },\n array: {\n removableClass: \"grid grid-cols-[1fr_auto] items-center gap-x-2\",\n childClass: \"grow my-2\",\n addActionClass: \"my-2\",\n },\n group: {\n standardClassName: \"flex flex-col gap-4\",\n gridClassName: \"gap-x-2 gap-y-4\",\n flexClassName: \"gap-2\",\n },\n action: {\n className: \"bg-primary-500 rounded-lg p-3 text-white\",\n },\n layout: {\n className: \"flex flex-col\",\n errorClass: \"text-sm text-danger-500\",\n },\n data: {\n displayOnlyClass: \"flex flex-row items-center gap-2\",\n checkOptions: {\n className: \"flex items-center gap-4\",\n entryClass: \"flex gap-1 items-center\",\n },\n selectOptions: { emptyText: \"<select>\" },\n },\n} satisfies DefaultRendererOptions;\n","import React from \"react\";\nimport { DisplayRendererProps } from \"../controlRender\";\nimport {\n DisplayDataType,\n HtmlDisplay,\n IconDisplay,\n TextDisplay,\n} from \"../types\";\nimport clsx from \"clsx\";\nimport { getOverrideClass, rendererClass } from \"../util\";\nimport { DisplayRendererRegistration } from \"../renderers\";\n\nexport interface DefaultDisplayRendererOptions {\n textClassName?: string;\n htmlClassName?: string;\n}\n\nexport function createDefaultDisplayRenderer(\n options: DefaultDisplayRendererOptions = {},\n): DisplayRendererRegistration {\n return {\n render: (props) => <DefaultDisplay {...options} {...props} />,\n type: \"display\",\n };\n}\n\nexport function DefaultDisplay({\n data,\n display,\n className,\n style,\n ...options\n}: DefaultDisplayRendererOptions & DisplayRendererProps) {\n switch (data.type) {\n case DisplayDataType.Icon:\n return (\n <i\n style={style}\n className={clsx(\n getOverrideClass(className),\n display ? display.value : (data as IconDisplay).iconClass,\n )}\n />\n );\n case DisplayDataType.Text:\n return (\n <div\n style={style}\n className={rendererClass(className, options.textClassName)}\n >\n {display ? display.value : (data as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n style={style}\n className={rendererClass(className, options.htmlClassName)}\n dangerouslySetInnerHTML={{\n __html: display ? display.value ?? \"\" : (data as HtmlDisplay).html,\n }}\n />\n );\n default:\n return <h1>Unknown display type: {data.type}</h1>;\n }\n}\n","import { RenderedLayout } from \"../controlRender\";\nimport React from \"react\";\n\nexport interface DefaultLayoutRendererOptions {\n className?: string;\n errorClass?: string;\n}\n\nexport function DefaultLayout({\n errorClass,\n layout: { controlEnd, controlStart, label, children, errorControl },\n}: DefaultLayoutRendererOptions & {\n layout: RenderedLayout;\n}) {\n const ec = errorControl;\n const errorText = ec && ec.touched ? ec.error : undefined;\n return (\n <>\n {label}\n {controlStart}\n {children}\n {errorText && <div className={errorClass}>{errorText}</div>}\n {controlEnd}\n </>\n );\n}\n","import { VisibilityRendererProps } from \"../controlRender\";\nimport React, { useEffect } from \"react\";\nimport clsx from \"clsx\";\nimport { createVisibilityRenderer } from \"../renderers\";\n\nexport function createDefaultVisibilityRenderer() {\n return createVisibilityRenderer((props) => <DefaultVisibility {...props} />);\n}\n\nexport function DefaultVisibility({\n visibility,\n children,\n className,\n style,\n divRef,\n}: VisibilityRendererProps) {\n const v = visibility.value;\n useEffect(() => {\n if (v) {\n visibility.setValue((ex) => ({ visible: v.visible, showing: v.visible }));\n }\n }, [v?.visible]);\n return v?.visible ? (\n <div className={clsx(className)} style={style} ref={divRef}>\n {children}\n </div>\n ) : (\n <></>\n );\n}\n","import { Control } from \"@react-typed-forms/core\";\nimport React, { useMemo, useState } from \"react\";\nimport { rendererClass } from \"../util\";\nimport { FieldOption, FieldType } from \"../types\";\nimport { createDataRenderer } from \"../renderers\";\n\nexport interface SelectRendererOptions {\n className?: string;\n emptyText?: string;\n requiredText?: string;\n}\n\nexport function createSelectRenderer(options: SelectRendererOptions = {}) {\n return createDataRenderer(\n (props, asArray) => (\n <SelectDataRenderer\n className={rendererClass(props.className, options.className)}\n state={props.control}\n id={props.id}\n readonly={props.readonly}\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\nexport interface SelectDataRendererProps {\n id?: string;\n className?: string;\n options: FieldOption[];\n emptyText?: string;\n requiredText?: string;\n readonly: boolean;\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 readonly,\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 || readonly}\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","import { Control } from \"@react-typed-forms/core\";\nimport { SchemaField, SchemaInterface } from \"../types\";\nimport React from \"react\";\nimport { rendererClass } from \"../util\";\n\nexport function DefaultDisplayOnly({\n control,\n className,\n emptyText,\n schemaInterface,\n field,\n style,\n}: {\n control: Control<any>;\n field: SchemaField;\n schemaInterface: SchemaInterface;\n className?: string;\n style?: React.CSSProperties;\n emptyText?: string | null;\n}) {\n const v = control.value;\n const text =\n (schemaInterface.isEmptyValue(field, v)\n ? emptyText\n : schemaInterface.textValue(field, v)) ?? \"\";\n return (\n <div style={style} className={rendererClass(className)}>\n {text}\n </div>\n );\n}\n","import { FieldType } from \"../types\";\nimport React from \"react\";\nimport { Control, formControlProps } from \"@react-typed-forms/core\";\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\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 { ArrayRendererRegistration } from \"../renderers\";\nimport {\n ActionRendererProps,\n applyArrayLengthRestrictions,\n ArrayRendererProps,\n} from \"../controlRender\";\nimport clsx from \"clsx\";\nimport React, { Fragment, ReactNode } from \"react\";\nimport { RenderElements } from \"@react-typed-forms/core\";\nimport { applyLengthRestrictions } from \"../util\";\n\nexport interface 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 return {\n render: (props, { renderAction }) => (\n <DefaultArrayRenderer\n {...props}\n {...options}\n renderAction={renderAction}\n />\n ),\n type: \"array\",\n };\n}\n\nexport interface DefaultArrayRendererProps\n extends DefaultArrayRendererOptions,\n ArrayRendererProps {\n renderAction: (props: ActionRendererProps) => ReactNode;\n}\n\nexport function DefaultArrayRenderer(props: DefaultArrayRendererProps) {\n const {\n renderElement,\n className,\n removableClass,\n childClass,\n removableChildClass,\n removeActionClass,\n addActionClass,\n arrayControl,\n renderAction,\n style,\n } = props;\n const { addAction, removeAction } = applyArrayLengthRestrictions(props);\n return (\n <div style={style}>\n <div className={clsx(className, removeAction && removableClass)}>\n <RenderElements control={arrayControl}>\n {(_, x) =>\n removeAction ? (\n <>\n <div className={clsx(childClass, removableChildClass)}>\n {renderElement(x)}\n </div>\n <div className={removeActionClass}>\n {renderAction(removeAction(x))}\n </div>\n </>\n ) : (\n <div className={childClass}>{renderElement(x)}</div>\n )\n }\n </RenderElements>\n </div>\n {addAction && (\n <div className={addActionClass}>{renderAction(addAction)}</div>\n )}\n </div>\n );\n}\n","import { DataRenderType, FieldOption } from \"../types\";\nimport {\n Control,\n Fcheckbox,\n RenderArrayElements,\n useComputed,\n} from \"@react-typed-forms/core\";\nimport React from \"react\";\nimport { createDataRenderer } from \"../renderers\";\nimport { rendererClass } from \"../util\";\n\nexport interface CheckRendererOptions {\n className?: string;\n entryClass?: string;\n checkClass?: string;\n labelClass?: string;\n}\n\nexport function createRadioRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (p) => (\n <CheckButtons\n {...options}\n {...p}\n className={rendererClass(p.className, options.className)}\n isChecked={(control, o) => control.value == o.value}\n setChecked={(c, o) => (c.value = o.value)}\n control={p.control}\n type=\"radio\"\n />\n ),\n {\n renderType: DataRenderType.Radio,\n },\n );\n}\n\nexport function createCheckListRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (p) => (\n <CheckButtons\n {...options}\n {...p}\n className={rendererClass(p.className, options.className)}\n isChecked={(control, o) => {\n const v = control.value;\n return Array.isArray(v) ? v.includes(o.value) : false;\n }}\n setChecked={(c, o, checked) => {\n c.setValue((x) => setIncluded(x ?? [], o.value, checked));\n }}\n control={p.control}\n type=\"checkbox\"\n />\n ),\n {\n collection: true,\n renderType: DataRenderType.CheckList,\n },\n );\n}\n\nexport function CheckButtons({\n control,\n options,\n labelClass,\n checkClass,\n readonly,\n entryClass,\n className,\n id,\n type,\n isChecked,\n setChecked,\n}: {\n id?: string;\n className?: string;\n options?: FieldOption[] | null;\n control: Control<any>;\n entryClass?: string;\n checkClass?: string;\n labelClass?: string;\n readonly?: boolean;\n type: \"checkbox\" | \"radio\";\n isChecked: (c: Control<any>, o: FieldOption) => boolean;\n setChecked: (c: Control<any>, o: FieldOption, checked: boolean) => void;\n}) {\n const { disabled } = control;\n const name = \"r\" + control.uniqueId;\n return (\n <div className={className} id={id}>\n <RenderArrayElements array={options?.filter((x) => x.value != null)}>\n {(o, i) => {\n const checked = useComputed(() => isChecked(control, o)).value;\n return (\n <div key={i} className={entryClass}>\n <input\n id={name + \"_\" + i}\n className={checkClass}\n type={type}\n name={name}\n readOnly={readonly}\n disabled={disabled}\n checked={checked}\n onChange={(x) => {\n !readonly && setChecked(control, o, x.target.checked);\n }}\n />\n <label className={labelClass} htmlFor={name + \"_\" + i}>\n {o.name}\n </label>\n </div>\n );\n }}\n </RenderArrayElements>\n </div>\n );\n}\n\nexport function setIncluded<A>(array: A[], elem: A, included: boolean): A[] {\n const already = array.includes(elem);\n if (included === already) {\n return array;\n }\n if (included) {\n return [...array, elem];\n }\n return array.filter((e) => e !== elem);\n}\n\nexport function createCheckboxRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (props, renderer) => (p) => ({\n ...p,\n label: undefined,\n children: (\n <div className={rendererClass(props.className, options.className)}>\n <div className={options.entryClass}>\n <Fcheckbox\n id={props.id}\n control={props.control}\n style={props.style}\n className={options.checkClass}\n />\n {p.label && renderer.renderLabel(p.label, undefined, undefined)}\n </div>\n </div>\n ),\n }),\n { renderType: DataRenderType.Checkbox },\n );\n}\n","import {\n createDefaultDisplayRenderer,\n DefaultDisplayRendererOptions,\n} from \"./components/DefaultDisplay\";\nimport {\n DefaultLayout,\n DefaultLayoutRendererOptions,\n} from \"./components/DefaultLayout\";\nimport {\n ActionRendererRegistration,\n AdornmentRendererRegistration,\n createDataRenderer,\n createLayoutRenderer,\n DataRendererRegistration,\n DefaultRenderers,\n GroupRendererRegistration,\n isIconAdornment,\n LabelRendererRegistration,\n} from \"./renderers\";\nimport { createDefaultVisibilityRenderer } from \"./components/DefaultVisibility\";\nimport React, { CSSProperties, Fragment, ReactElement, ReactNode } from \"react\";\nimport { hasOptions, rendererClass } from \"./util\";\nimport clsx from \"clsx\";\nimport {\n ActionRendererProps,\n appendMarkupAt,\n ControlLayoutProps,\n GroupRendererProps,\n LabelType,\n renderLayoutParts,\n} from \"./controlRender\";\nimport {\n AdornmentPlacement,\n DataRenderType,\n FieldOption,\n FieldType,\n FlexRenderer,\n GridRenderer,\n isDataGroupRenderer,\n isDisplayOnlyRenderer,\n isFlexRenderer,\n isGridRenderer,\n isTextfieldRenderer,\n} from \"./types\";\nimport {\n createSelectRenderer,\n SelectRendererOptions,\n} from \"./components/SelectDataRenderer\";\nimport { DefaultDisplayOnly } from \"./components/DefaultDisplayOnly\";\nimport { Fcheckbox } from \"@react-typed-forms/core\";\nimport { ControlInput, createInputConversion } from \"./components/ControlInput\";\nimport {\n createDefaultArrayRenderer,\n DefaultArrayRendererOptions,\n} from \"./components/DefaultArrayRenderer\";\nimport {\n CheckRendererOptions,\n createCheckboxRenderer,\n createCheckListRenderer,\n createRadioRenderer,\n} from \"./components/CheckRenderer\";\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\n layout?: DefaultLayoutRendererOptions;\n}\n\ninterface StyleProps {\n className?: string;\n style?: CSSProperties;\n}\n\ninterface DefaultActionRendererOptions {\n className?: string;\n}\n\nexport function createDefaultActionRenderer(\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n function render({ onClick, actionText }: ActionRendererProps) {\n return (\n <button className={options.className} onClick={onClick}>\n {actionText}\n </button>\n );\n }\n\n return { render, type: \"action\" };\n}\n\ninterface DefaultGroupRendererOptions {\n className?: string;\n standardClassName?: string;\n gridStyles?: (columns: GridRenderer) => StyleProps;\n gridClassName?: string;\n defaultGridColumns?: number;\n flexClassName?: string;\n defaultFlexGap?: string;\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 flexClassName,\n defaultFlexGap,\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 flexStyles(options: FlexRenderer): StyleProps {\n return {\n className: flexClassName,\n style: {\n display: \"flex\",\n gap: options.gap ? options.gap : defaultFlexGap,\n flexDirection: options.direction\n ? (options.direction as any)\n : undefined,\n },\n };\n }\n\n function render(props: GroupRendererProps) {\n const { renderChild, renderOptions, childDefinitions } = props;\n\n const { style, className: gcn } = isGridRenderer(renderOptions)\n ? gridStyles(renderOptions)\n : isFlexRenderer(renderOptions)\n ? flexStyles(renderOptions)\n : ({ className: standardClassName } as StyleProps);\n\n return (cp: ControlLayoutProps) => {\n return {\n ...cp,\n children: (\n <div\n className={rendererClass(props.className, clsx(className, gcn))}\n style={style}\n >\n {childDefinitions?.map((c, i) => renderChild(i, c))}\n </div>\n ),\n };\n };\n }\n\n return { type: \"group\", render };\n}\n\nexport const DefaultBoolOptions: FieldOption[] = [\n { name: \"Yes\", value: true },\n { name: \"No\", value: false },\n];\n\ninterface DefaultDataRendererOptions {\n inputClass?: string;\n displayOnlyClass?: string;\n selectOptions?: SelectRendererOptions;\n checkboxOptions?: CheckRendererOptions;\n checkOptions?: CheckRendererOptions;\n radioOptions?: CheckRendererOptions;\n checkListOptions?: CheckRendererOptions;\n booleanOptions?: FieldOption[];\n optionRenderer?: DataRendererRegistration;\n}\n\nexport function createDefaultDataRenderer(\n options: DefaultDataRendererOptions = {},\n): DataRendererRegistration {\n const checkboxRenderer = createCheckboxRenderer(\n options.checkOptions ?? options.checkboxOptions,\n );\n const selectRenderer = createSelectRenderer(options.selectOptions);\n const radioRenderer = createRadioRenderer(\n options.radioOptions ?? options.checkOptions,\n );\n const checkListRenderer = createCheckListRenderer(\n options.checkListOptions ?? options.checkOptions,\n );\n const { inputClass, booleanOptions, optionRenderer, displayOnlyClass } = {\n optionRenderer: selectRenderer,\n booleanOptions: DefaultBoolOptions,\n ...options,\n };\n\n return createDataRenderer((props, renderers) => {\n const fieldType = props.field.type;\n const renderOptions = props.renderOptions;\n let renderType = renderOptions.type;\n if (props.toArrayProps && renderType !== DataRenderType.CheckList) {\n return (p) => ({\n ...p,\n children: renderers.renderArray(props.toArrayProps!()),\n });\n }\n if (fieldType === FieldType.Compound) {\n const groupOptions = (isDataGroupRenderer(renderOptions)\n ? renderOptions.groupOptions\n : undefined) ?? { type: \"Standard\", hideTitle: true };\n return renderers.renderGroup({ ...props, renderOptions: groupOptions });\n }\n if (fieldType == FieldType.Any) return <>No control for Any</>;\n if (isDisplayOnlyRenderer(renderOptions))\n return (p) => ({\n ...p,\n className: displayOnlyClass,\n children: (\n <DefaultDisplayOnly\n field={props.field}\n schemaInterface={props.dataContext.schemaInterface}\n control={props.control}\n className={props.className}\n style={props.style}\n emptyText={renderOptions.emptyText}\n />\n ),\n });\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, renderers);\n }\n switch (renderType) {\n case DataRenderType.CheckList:\n return checkListRenderer.render(props, renderers);\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, renderers);\n case DataRenderType.Radio:\n return radioRenderer.render(props, renderers);\n case DataRenderType.Checkbox:\n return checkboxRenderer.render(props, renderers);\n }\n const placeholder = isTextfieldRenderer(renderOptions)\n ? renderOptions.placeholder\n : undefined;\n return (\n <ControlInput\n className={rendererClass(props.className, inputClass)}\n style={props.style}\n id={props.id}\n readOnly={props.readonly}\n control={props.control}\n placeholder={placeholder ?? undefined}\n convert={createInputConversion(props.field.type)}\n />\n );\n });\n}\n\nexport interface DefaultAdornmentRendererOptions {}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n return {\n type: \"adornment\",\n render: ({ adornment }) => ({\n apply: (rl) => {\n if (isIconAdornment(adornment)) {\n return appendMarkupAt(\n adornment.placement ?? AdornmentPlacement.ControlStart,\n <i className={adornment.iconClass} />,\n )(rl);\n }\n },\n priority: 0,\n adornment,\n }),\n };\n}\n\nfunction createDefaultLayoutRenderer(\n options: DefaultLayoutRendererOptions = {},\n) {\n return createLayoutRenderer((props, renderers) => {\n const layout = renderLayoutParts(\n {\n ...props,\n className: rendererClass(props.className, options.className),\n },\n renderers,\n );\n return {\n children: <DefaultLayout layout={layout} {...options} />,\n className: layout.className,\n style: layout.style,\n divRef: (e) =>\n e && props.errorControl\n ? (props.errorControl.meta.scrollElement = e)\n : undefined,\n };\n });\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n controlLabelClass?: string;\n requiredElement?: ReactNode;\n labelContainer?: (children: ReactElement) => ReactElement;\n}\n\nexport function createDefaultLabelRenderer(\n options?: DefaultLabelRendererOptions,\n): LabelRendererRegistration {\n const {\n className,\n groupLabelClass,\n controlLabelClass,\n requiredElement,\n labelContainer,\n } = {\n requiredElement: <span> *</span>,\n labelContainer: (c: ReactElement) => c,\n ...options,\n };\n return {\n render: (props, labelStart, labelEnd) => {\n return labelContainer(\n <>\n <label\n htmlFor={props.forId}\n className={rendererClass(\n props.className,\n clsx(\n className,\n props.type === LabelType.Group && groupLabelClass,\n props.type === LabelType.Control && controlLabelClass,\n ),\n )}\n >\n {labelStart}\n {props.label}\n {props.required && requiredElement}\n </label>\n {labelEnd}\n </>,\n );\n },\n type: \"label\",\n };\n}\n\nexport function createDefaultRenderers(\n options: DefaultRendererOptions = {},\n): DefaultRenderers {\n return {\n data: createDefaultDataRenderer(options.data),\n display: createDefaultDisplayRenderer(options.display),\n action: createDefaultActionRenderer(options.action),\n array: createDefaultArrayRenderer(options.array),\n group: createDefaultGroupRenderer(options.group),\n label: createDefaultLabelRenderer(options.label),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n renderLayout: createDefaultLayoutRenderer(options.layout),\n visibility: createDefaultVisibilityRenderer(),\n };\n}\n","import { CSSProperties, ReactNode } from \"react\";\nimport {\n ActionRendererProps,\n AdornmentProps,\n AdornmentRenderer,\n ArrayRendererProps,\n ControlLayoutProps,\n DataRendererProps,\n DisplayRendererProps,\n FormRenderer,\n GroupRendererProps,\n LabelRendererProps,\n} from \"./controlRender\";\nimport { hasOptions } from \"./util\";\nimport {\n ActionRendererRegistration,\n AdornmentRendererRegistration,\n ArrayRendererRegistration,\n DataRendererRegistration,\n DefaultRenderers,\n DisplayRendererRegistration,\n GroupRendererRegistration,\n LabelRendererRegistration,\n LayoutRendererRegistration,\n RendererRegistration,\n VisibilityRendererRegistration,\n} from \"./renderers\";\nimport { createDefaultRenderers } from \"./createDefaultRenderers\";\nimport { DataRenderType } from \"./types\";\n\nexport function createFormRenderer(\n customRenderers: RendererRegistration[] = [],\n defaultRenderers: DefaultRenderers = createClassStyledRenderers(),\n): FormRenderer {\n const dataRegistrations = customRenderers.filter(isDataRegistration);\n const groupRegistrations = customRenderers.filter(isGroupRegistration);\n const adornmentRegistrations = customRenderers.filter(\n isAdornmentRegistration,\n );\n const displayRegistrations = customRenderers.filter(isDisplayRegistration);\n const labelRenderers = customRenderers.filter(isLabelRegistration);\n const arrayRenderers = customRenderers.filter(isArrayRegistration);\n const actionRenderers = customRenderers.filter(isActionRegistration);\n const layoutRenderers = customRenderers.filter(isLayoutRegistration);\n const visibilityRenderer =\n customRenderers.find(isVisibilityRegistration) ??\n defaultRenderers.visibility;\n\n const formRenderers: FormRenderer = {\n renderAction,\n renderData,\n renderGroup,\n renderDisplay,\n renderLabel,\n renderArray,\n renderAdornment,\n renderLayout,\n renderVisibility: visibilityRenderer.render,\n };\n\n function renderLayout(props: ControlLayoutProps) {\n const renderer =\n layoutRenderers.find((x) => !x.match || x.match(props)) ??\n defaultRenderers.renderLayout;\n return renderer.render(props, formRenderers);\n }\n\n function renderAdornment(props: AdornmentProps): AdornmentRenderer {\n const renderer =\n adornmentRegistrations.find((x) =>\n isOneOf(x.adornmentType, props.adornment.type),\n ) ?? defaultRenderers.adornment;\n return renderer.render(props);\n }\n\n function renderArray(props: ArrayRendererProps) {\n return (arrayRenderers[0] ?? defaultRenderers.array).render(\n props,\n formRenderers,\n );\n }\n\n function renderLabel(\n props: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n ) {\n const renderer =\n labelRenderers.find((x) => isOneOf(x.labelType, props.type)) ??\n defaultRenderers.label;\n return renderer.render(props, labelStart, labelEnd, formRenderers);\n }\n\n function renderData(\n props: DataRendererProps,\n ): (layout: ControlLayoutProps) => ControlLayoutProps {\n const {\n renderOptions: { type: renderType },\n field,\n } = props;\n\n const options = hasOptions(props);\n const renderer =\n dataRegistrations.find(\n (x) =>\n (x.collection ?? false) ===\n (props.elementIndex == null && (field.collection ?? false)) &&\n (x.options ?? false) === options &&\n ((x.schemaType &&\n renderType == DataRenderType.Standard &&\n isOneOf(x.schemaType, field.type)) ||\n (x.renderType && isOneOf(x.renderType, renderType)) ||\n (x.match && x.match(props))),\n ) ?? defaultRenderers.data;\n\n const result = renderer.render(props, formRenderers);\n if (typeof result === \"function\") return result;\n return (l) => ({ ...l, children: result });\n }\n\n function renderGroup(\n props: GroupRendererProps,\n ): (layout: ControlLayoutProps) => ControlLayoutProps {\n const renderType = props.renderOptions.type;\n const renderer =\n groupRegistrations.find((x) => isOneOf(x.renderType, renderType)) ??\n defaultRenderers.group;\n const result = renderer.render(props, formRenderers);\n if (typeof result === \"function\") return result;\n return (l) => ({ ...l, children: result });\n }\n\n function renderAction(props: ActionRendererProps) {\n const renderer =\n actionRenderers.find((x) => isOneOf(x.actionType, props.actionId)) ??\n defaultRenderers.action;\n return renderer.render(props, formRenderers);\n }\n\n function renderDisplay(props: DisplayRendererProps) {\n const renderType = props.data.type;\n const renderer =\n displayRegistrations.find((x) => isOneOf(x.renderType, renderType)) ??\n defaultRenderers.display;\n return renderer.render(props, formRenderers);\n }\n\n return formRenderers;\n}\n\nfunction createClassStyledRenderers() {\n return createDefaultRenderers({\n layout: { className: \"control\" },\n group: { className: \"group\" },\n array: { className: \"control-array\" },\n action: { className: \"action\" },\n data: { inputClass: \"data\" },\n display: { htmlClassName: \"html\", textClassName: \"text\" },\n });\n}\n\nfunction isOneOf<A>(x: A | A[] | undefined, v: A) {\n return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;\n}\n\nfunction isAdornmentRegistration(\n x: RendererRegistration,\n): x is AdornmentRendererRegistration {\n return x.type === \"adornment\";\n}\n\nfunction isDataRegistration(\n x: RendererRegistration,\n): x is DataRendererRegistration {\n return x.type === \"data\";\n}\n\nfunction isGroupRegistration(\n x: RendererRegistration,\n): x is GroupRendererRegistration {\n return x.type === \"group\";\n}\n\nfunction isLabelRegistration(\n x: RendererRegistration,\n): x is LabelRendererRegistration {\n return x.type === \"label\";\n}\n\nfunction isLayoutRegistration(\n x: RendererRegistration,\n): x is LayoutRendererRegistration {\n return x.type === \"layout\";\n}\n\nfunction isVisibilityRegistration(\n x: RendererRegistration,\n): x is VisibilityRendererRegistration {\n return x.type === \"visibility\";\n}\n\nfunction isActionRegistration(\n x: RendererRegistration,\n): x is ActionRendererRegistration {\n return x.type === \"action\";\n}\n\nfunction isDisplayRegistration(\n x: RendererRegistration,\n): x is DisplayRendererRegistration {\n return x.type === \"display\";\n}\n\nfunction isArrayRegistration(\n x: RendererRegistration,\n): x is ArrayRendererRegistration {\n return x.type === \"array\";\n}\n"],"names":["FieldType","ControlDefinitionType","DynamicPropertyType","ExpressionType","AdornmentPlacement","ControlAdornmentType","DataRenderType","SyncTextType","GroupRenderType","DisplayDataType","ValidatorType","DateComparison","isDataControlDefinition","x","type","Data","isGroupControlsDefinition","Group","isDisplayControlsDefinition","Display","isActionControlsDefinition","Action","visitControlDefinition","visitor","defaultValue","action","data","display","group","isGridRenderer","options","Grid","isFlexRenderer","Flex","isDisplayOnlyRenderer","DisplayOnly","isTextfieldRenderer","Textfield","isDataGroupRenderer","applyDefaultValues","v","fields","doneSet","_doneSet","defaultValueForFields","has","Set","add","applyValue","filter","isCompoundField","field","length","out","_extends","forEach","applyDefaultForField","defaultValueForField","parent","notElement","collection","map","required","treeChildren","children","Object","fromEntries","sf","undefined","isRequired","childValue","notNullable","elementValueForField","findScalarField","findField","findCompoundField","find","isScalarField","Compound","isDataControl","c","isGroupControl","fieldHasTag","tag","_field$tags","Boolean","tags","includes","fieldDisplayName","_field$displayName","displayName","hasOptions","o","_o$options$length","_o$options","defaultControlForField","title","_sf$tags","htmlEditor","renderOptions","HtmlEditor","Standard","findControlsForCompound","compound","definition","_definition$children$","_definition$children","compoundField","flatMap","d","findCompoundGroups","controls","cf","groups","concat","findNonDataGroups","_x$children","_x$children2","existsInGroups","lookup","itself","_c$children","childLookup","control","_control$children2","cloneChildren","_c$children2","addMissingControls","rootMapping","rootGroups","rootLookup","missingFields","_ref","_f$tags","_insertGroup","f","groupToAdd","startsWith","insertGroup","groupName","substring","push","useUpdatedRef","a","r","useRef","current","isControlReadonly","readonly","getDisplayOnlyOptions","getTypeField","context","fieldPath","withoutLast","slice","fieldList","at","typeSchemaField","isTypeField","lookupChildControl","visitControlDataArray","cb","_iterator2","_createForOfIteratorHelperLoose","_step2","done","value","visitControlData","ctx","def","processData","fieldName","fieldData","thisPath","path","lookupControl","result","cIndex","_iterator3","_control$elements","elements","_step3","elemResult","cfResult","lookupChildControlPath","jsonPath","childPath","watchControlLookup","cleanDataForSchema","typeField","typeValue","cleanableFields","_x$onlyForTypes$lengt","_x$onlyForTypes","onlyForTypes","_x$onlyForTypes2","canBeNull","childFields","Array","isArray","cv","getAllReferencedClasses","collectExtra","_c$children3","_collectExtra","childClasses","tc","clsx","styleClass","layoutClass","labelClass","getOverrideClass","jsonPathString","customIndex","i","_customIndex","findChildDefinition","base","className","rendererClass","controlClass","globalClass","oc","index","childId","_c$fields","next","trackControlChange","ControlChange","Structure","_c$elements","makeHook","runHook","state","deps","useDynamicHooks","hooks","hookEntries","entries","_ref2","toDepString","join","ref","s","useCallback","p","_ref3","hg","toString","appendElementIndex","dataContext","elementIndex","applyLengthRestrictions","min","max","minValue","maxValue","findFieldPath","fieldNames","split","foundFields","currentFields","nextField","buildSchema","stringField","makeScalarField","String","stringOptionsField","call","arguments","withScalarOptions","n","defaultScalarField","makeCompoundField","defaultCompoundField","intField","Int","boolField","Bool","other","mergeField","mergeInto","existing","mergeTypes","extras","mergeFields","name","newFields","withType","addFieldOption","reduce","af","_typeField$options","resolveSchemas","schemaMap","resolveSchemaType","resolvedFields","schemaRef","keys","dataControl","textDisplayControl","text","displayData","Text","htmlDisplayControl","html","Html","dynamicDefaultValue","expr","DefaultValue","dynamicReadonly","Readonly","dynamicVisibility","Visible","dynamicDisabled","Disabled","fieldEqExpr","DataMatch","jsonataExpr","expression","Jsonata","groupedControl","groupOptions","hideTitle","compoundControl","createAction","actionId","onClick","actionText","emptyGroupDefinition","useControlDefinitionForSchema","useMemo","applyExtensionToSchema","extension","outMap","cro","cr","applyExtensionsToSchema","extensions","useEvalVisibilityHook","useEvalExpressionHook","useEvalDynamicBoolHook","makeDynamicPropertyHook","useComputed","matchesType","hideDisplayOnly","schemaInterface","useEvalReadonlyHook","useCalculatedControl","useEvalStyleHook","property","dynamicStyle","useEvalDynamicHook","useControl","useEvalAllowedOptionsHook","dynamicAllowed","AllowedOptions","useEvalDisabledHook","useEvalDisplayHook","useEvalDefaultValueHook","schemaField","element","dynamicValue","calcDefault","_ref4","dcv","useDataExpression","fvExpr","coerce","refField","otherField","useDataMatchExpression","fv","defaultEvalHooks","useJsonataExpression","defaultUseEvalExpressionHook","makeEvalExpressionHook","_definition$dynamic","dynamic","types","_lookupChildControl","displayOptions","emptyText","isEmptyValue","jExpr","bindings","pathString","fullExpr","compiledExpr","jsonata","e","console","error","listenerRef","updateRef","_useRefState","useRefState","makeChangeTracker","l","addAfterChangesCallback","useEffect","apply","_ref$current","collect","updateSubscriptions","_temp","_finallyRethrows","bindingData","collectChanges","_coerce","Promise","resolve","evaluate","trackedValue","then","_compiledExpr$evaluat","_wasThrown","_result","reject","useEvalActionHook","useExpr","ActionData","useEvalLabelText","Label","makeDefault","_dynamicValue$runHook","useValidationHook","_definition$validator","_definition$validator2","validatorTypes","validators","hidden","groupContext","_dd$validators","_r$current","dd","useValueChangeEffect","setError","useValidator","Length","lv","useControlEffect","Validate","controlLength","len","setValue","from","useJsonataValidator","Date","useDateValidator","errorMsg","msg","dv","comparisonDate","fixedDate","parse","nowDate","UTC","getFullYear","getMonth","getDate","daysFromCurrent","selDate","notAfter","comparison","NotAfter","toDateString","cc","DefaultSchemaInterface","_proto","prototype","textValue","DateTime","toLocaleDateString","_control$elements$len","valueLength","defaultSchemaInterface","AppendAdornmentPriority","WrapAdornmentPriority","LabelType","useControlRenderer","renderer","_options$useDataHook","_options$schemaInterf","_options$useEvalExpre","dataProps","useDataHook","defaultDataProps","lookupSchemaField","dynamicHooks","defaultValueControl","visibleControl","readonlyControl","disabledControl","allowedOptions","labelText","actionData","customStyle","Style","layoutStyle","LayoutStyle","displayControl","useValidation","Component","rootControl","_ref$parentPath","parentPath","stopTracking","useComponentTracking","_definition$adornment","_definition$adornment2","parentDataContext","_dynamicHooks","visible","visibility","showing","ex","_getControlData","getControlData","parentControl","controlDataContext","dontClearHidden","isNull","vc","cd","dontClear","parentNull","clearHidden","myOptions","_visibility$fields","disabled","newControl","childOptions","React","createElement","Fragment","adornments","renderAdornment","adornment","labelAndChildren","renderControlLayout","renderChild","k","child","_options$dataContext","ControlRenderer","key","createDataProps","formOptions","parentContext","style","actionDataControl","actionOnClick","useChildVisibility","childDef","renderedControl","renderLayout","renderVisibility","_fieldPath$slice$map","_parentControl$fields","_childControl$element","pp","extraPath","_lookupControl","found","childControl","_base","_effect","_useComponentTracking","Render","_field$options$length","_field$options","_allowedOptions$value","_definition$renderOpt","props","_objectWithoutPropertiesLoose","_excluded","lengthVal","fieldOptions","allowed","childDefinitions","id","uniqueId","toArrayProps","defaultArrayProps","_control$elements$ele","arrayControl","renderElement","noun","addAction","addElement","removeAction","removeElement","renderData","_c$groupOptions2","_labelText$value","_c$groupOptions3","_c$groupOptions","processLayout","renderGroup","label","hide","_props$actionDataCont","_props$actionDataCont2","_ref5","_labelText$value2","_props$actionOnClick","renderAction","_c$displayData","renderDisplay","_labelText$value3","_c$children$length","rendererProps","controlTitle","Control","forId","errorControl","appendMarkup","markup","layout","wrapMarkup","wrap","layoutKeyForPlacement","pos","ControlEnd","ControlStart","LabelStart","LabelEnd","appendMarkupAt","wrapMarkupAt","renderLayoutParts","_props$processLayout","_ref6","sort","b","priority","renderLabel","labelStart","labelEnd","applyArrayLengthRestrictions","_ref7","disable","_arrayControl$element","_arrayControl$element2","aa","ra","_applyLengthRestricti","removeAllowed","addAllowed","removeDisabled","addDisabled","isIconAdornment","Icon","createLayoutRenderer","render","createArrayRenderer","createDataRenderer","createGroupRenderer","createDisplayRenderer","createLabelRenderer","createVisibilityRenderer","createAdornmentRenderer","defaultTailwindTheme","groupLabelClass","requiredElement","array","removableClass","childClass","addActionClass","standardClassName","gridClassName","flexClassName","errorClass","displayOnlyClass","checkOptions","entryClass","selectOptions","createDefaultDisplayRenderer","DefaultDisplay","_display$value","iconClass","textClassName","htmlClassName","dangerouslySetInnerHTML","__html","DefaultLayout","_ref$layout","controlEnd","controlStart","ec","errorText","touched","createDefaultVisibilityRenderer","DefaultVisibility","divRef","createSelectRenderer","asArray","SelectDataRenderer","requiredText","convert","createSelectConversion","_ref$emptyText","_ref$requiredText","_useState","useState","showEmpty","optionStringMap","onChange","target","ft","Double","_a$toString","DefaultDisplayOnly","ControlInput","_formControlProps","formControlProps","inputProps","_excluded2","createInputConversion","parseInt","parseFloat","createDefaultArrayRenderer","DefaultArrayRenderer","removableChildClass","removeActionClass","_applyArrayLengthRest","RenderElements","_","createRadioRenderer","CheckButtons","isChecked","setChecked","renderType","Radio","createCheckListRenderer","checked","setIncluded","CheckList","checkClass","RenderArrayElements","readOnly","htmlFor","elem","included","already","createCheckboxRenderer","Fcheckbox","Checkbox","createDefaultActionRenderer","createDefaultGroupRenderer","_ref2$gridStyles","gridStyles","defaultGridStyles","_ref2$defaultGridColu","defaultGridColumns","defaultFlexGap","_ref3$columns","columns","gridTemplateColumns","flexStyles","gap","flexDirection","direction","gcn","cp","DefaultBoolOptions","createDefaultDataRenderer","_options$checkOptions","_options$radioOptions","_options$checkListOpt","checkboxRenderer","checkboxOptions","selectRenderer","radioRenderer","radioOptions","checkListRenderer","checkListOptions","_optionRenderer$boole","optionRenderer","booleanOptions","inputClass","renderers","fieldType","renderArray","Any","isBool","Dropdown","placeholder","createDefaultAdornmentRenderer","rl","_adornment$placement","placement","createDefaultLayoutRenderer","meta","scrollElement","createDefaultLabelRenderer","_requiredElement$labe","labelContainer","controlLabelClass","createDefaultRenderers","createFormRenderer","customRenderers","defaultRenderers","_customRenderers$find","createClassStyledRenderers","dataRegistrations","isDataRegistration","groupRegistrations","isGroupRegistration","adornmentRegistrations","isAdornmentRegistration","displayRegistrations","isDisplayRegistration","labelRenderers","isLabelRegistration","arrayRenderers","isArrayRegistration","actionRenderers","isActionRegistration","layoutRenderers","isLayoutRegistration","visibilityRenderer","isVisibilityRegistration","formRenderers","_layoutRenderers$find","match","_adornmentRegistratio","isOneOf","adornmentType","_arrayRenderers$","_labelRenderers$find","labelType","_dataRegistrations$fi","_x$collection","_field$collection","_x$options","schemaType","_groupRegistrations$f","_actionRenderers$find","actionType","_displayRegistrations"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/types.ts","../src/util.ts","../src/schemaBuilder.ts","../src/controlBuilder.ts","../src/hooks.tsx","../src/validators.ts","../src/internal.ts","../src/schemaInterface.ts","../src/controlRender.tsx","../src/renderers.tsx","../src/tailwind.tsx","../src/components/DefaultDisplay.tsx","../src/components/DefaultLayout.tsx","../src/components/DefaultVisibility.tsx","../src/components/SelectDataRenderer.tsx","../src/components/DefaultDisplayOnly.tsx","../src/components/ControlInput.tsx","../src/components/DefaultArrayRenderer.tsx","../src/components/CheckRenderer.tsx","../src/createDefaultRenderers.tsx","../src/createFormRenderer.tsx"],"sourcesContent":["import { Control } from \"@react-typed-forms/core\";\n\nexport interface SchemaField {\n type: string;\n field: string;\n displayName?: string | null;\n tags?: string[] | null;\n system?: boolean | null;\n collection?: boolean | null;\n onlyForTypes?: string[] | null;\n required?: boolean | null;\n notNullable?: boolean | null;\n defaultValue?: any;\n isTypeField?: boolean | null;\n searchable?: boolean | null;\n options?: FieldOption[] | null;\n validators?: SchemaValidator[] | null;\n}\n\nexport type SchemaMap = Record<string, SchemaField[]>;\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 description?: string | null;\n disabled?: boolean | null;\n}\n\nexport interface CompoundField extends SchemaField {\n type: FieldType.Compound;\n children: SchemaField[];\n treeChildren?: boolean;\n schemaRef?: string;\n}\n\nexport type AnyControlDefinition =\n | DataControlDefinition\n | GroupedControlsDefinition\n | ActionControlDefinition\n | DisplayControlDefinition;\n\nexport interface SchemaInterface {\n isEmptyValue(field: SchemaField, value: any): boolean;\n textValue(\n field: SchemaField,\n value: any,\n element?: boolean,\n ): string | undefined;\n controlLength(field: SchemaField, control: Control<any>): number;\n valueLength(field: SchemaField, value: any): number;\n getOptions(field: SchemaField): FieldOption[] | undefined | null;\n}\nexport interface ControlDefinition {\n type: string;\n title?: string | null;\n styleClass?: string | null;\n layoutClass?: string | null;\n labelClass?: string | null;\n dynamic?: DynamicProperty[] | null;\n adornments?: ControlAdornment[] | null;\n children?: ControlDefinition[] | null;\n}\n\nexport enum ControlDefinitionType {\n Data = \"Data\",\n Group = \"Group\",\n Display = \"Display\",\n Action = \"Action\",\n}\n\nexport interface DynamicProperty {\n type: string;\n expr: EntityExpression;\n}\n\nexport enum DynamicPropertyType {\n Visible = \"Visible\",\n DefaultValue = \"DefaultValue\",\n Readonly = \"Readonly\",\n Disabled = \"Disabled\",\n Display = \"Display\",\n Style = \"Style\",\n LayoutStyle = \"LayoutStyle\",\n AllowedOptions = \"AllowedOptions\",\n Label = \"Label\",\n ActionData = \"ActionData\",\n}\n\nexport interface EntityExpression {\n type: string;\n}\n\nexport enum ExpressionType {\n Jsonata = \"Jsonata\",\n Data = \"Data\",\n DataMatch = \"FieldValue\",\n UserMatch = \"UserMatch\",\n}\n\nexport interface JsonataExpression extends EntityExpression {\n type: ExpressionType.Jsonata;\n expression: string;\n}\n\nexport interface DataExpression extends EntityExpression {\n type: ExpressionType.Data;\n field: string;\n}\n\nexport interface DataMatchExpression extends EntityExpression {\n type: ExpressionType.DataMatch;\n field: string;\n value: any;\n}\n\nexport interface 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 Icon = \"Icon\",\n}\n\nexport interface IconAdornment extends ControlAdornment {\n type: ControlAdornmentType.Icon;\n iconClass: string;\n placement?: AdornmentPlacement | null;\n}\n\nexport interface TooltipAdornment extends ControlAdornment {\n type: ControlAdornmentType.Tooltip;\n tooltip: string;\n}\n\nexport interface AccordionAdornment extends ControlAdornment {\n type: ControlAdornmentType.Accordion;\n title: string;\n defaultExpanded: boolean;\n}\n\nexport interface HelpTextAdornment extends ControlAdornment {\n type: ControlAdornmentType.HelpText;\n helpText: string;\n placement?: AdornmentPlacement | null;\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 disabled?: boolean | null;\n validators?: SchemaValidator[] | null;\n hideTitle?: boolean | null;\n dontClearHidden?: boolean | null;\n}\n\nexport interface RenderOptions {\n type: string;\n}\n\nexport enum DataRenderType {\n Standard = \"Standard\",\n Textfield = \"Textfield\",\n Radio = \"Radio\",\n HtmlEditor = \"HtmlEditor\",\n IconList = \"IconList\",\n CheckList = \"CheckList\",\n UserSelection = \"UserSelection\",\n Synchronised = \"Synchronised\",\n IconSelector = \"IconSelector\",\n DateTime = \"DateTime\",\n Checkbox = \"Checkbox\",\n Dropdown = \"Dropdown\",\n DisplayOnly = \"DisplayOnly\",\n Group = \"Group\",\n}\n\nexport interface TextfieldRenderOptions extends RenderOptions {\n type: DataRenderType.Textfield;\n placeholder?: string | null;\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 DataGroupRenderOptions extends RenderOptions {\n type: DataRenderType.Group;\n groupOptions?: GroupRenderOptions;\n}\n\nexport interface HtmlEditorRenderOptions extends RenderOptions {\n type: DataRenderType.HtmlEditor;\n allowImages: boolean;\n}\n\nexport interface DateTimeRenderOptions extends RenderOptions {\n type: DataRenderType.DateTime;\n format?: string | null;\n}\n\nexport interface IconListRenderOptions extends RenderOptions {\n type: DataRenderType.IconList;\n iconMappings: IconMapping[];\n}\n\nexport interface DisplayOnlyRenderOptions extends RenderOptions {\n type: DataRenderType.DisplayOnly;\n emptyText?: string | null;\n sampleText?: string | null;\n}\nexport interface IconMapping {\n value: string;\n materialIcon?: string | null;\n}\n\nexport interface CheckListRenderOptions extends RenderOptions {\n type: DataRenderType.CheckList;\n}\n\nexport interface SynchronisedRenderOptions extends RenderOptions {\n type: DataRenderType.Synchronised;\n fieldToSync: string;\n syncType: SyncTextType;\n}\n\nexport enum SyncTextType {\n Camel = \"Camel\",\n Snake = \"Snake\",\n Pascal = \"Pascal\",\n}\n\nexport interface UserSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.UserSelection;\n noGroups: boolean;\n noUsers: boolean;\n}\n\nexport interface IconSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.IconSelector;\n}\n\nexport interface GroupedControlsDefinition extends ControlDefinition {\n type: ControlDefinitionType.Group;\n compoundField?: string | null;\n groupOptions?: GroupRenderOptions;\n}\n\nexport interface GroupRenderOptions {\n type: string;\n hideTitle?: boolean | null;\n}\n\nexport enum GroupRenderType {\n Standard = \"Standard\",\n Grid = \"Grid\",\n Flex = \"Flex\",\n GroupElement = \"GroupElement\",\n}\n\nexport interface StandardGroupRenderer extends GroupRenderOptions {\n type: GroupRenderType.Standard;\n}\n\nexport interface FlexRenderer extends GroupRenderOptions {\n type: GroupRenderType.Flex;\n direction?: string | null;\n gap?: string | null;\n}\n\nexport interface GroupElementRenderer extends GroupRenderOptions {\n type: GroupRenderType.GroupElement;\n value: any;\n}\n\nexport interface 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 Icon = \"Icon\",\n}\nexport interface TextDisplay extends DisplayData {\n type: DisplayDataType.Text;\n text: string;\n}\n\nexport interface IconDisplay extends DisplayData {\n type: DisplayDataType.Icon;\n iconClass: string;\n}\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 actionData: string;\n}\n\nexport enum ValidatorType {\n Jsonata = \"Jsonata\",\n Date = \"Date\",\n Length = \"Length\",\n}\nexport interface SchemaValidator {\n type: string;\n}\n\nexport interface JsonataValidator extends SchemaValidator {\n type: ValidatorType.Jsonata;\n expression: string;\n}\n\nexport interface LengthValidator extends SchemaValidator {\n type: ValidatorType.Length;\n min?: number | null;\n max?: number | null;\n}\n\nexport enum DateComparison {\n NotBefore = \"NotBefore\",\n NotAfter = \"NotAfter\",\n}\n\nexport interface DateValidator extends SchemaValidator {\n type: ValidatorType.Date;\n comparison: DateComparison;\n fixedDate?: string | null;\n daysFromCurrent?: number | null;\n}\n\nexport function isDataControlDefinition(\n x: ControlDefinition,\n): x is DataControlDefinition {\n return x.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControlsDefinition(\n x: ControlDefinition,\n): x is GroupedControlsDefinition {\n return x.type === ControlDefinitionType.Group;\n}\n\nexport function isDisplayControlsDefinition(\n x: ControlDefinition,\n): x is DisplayControlDefinition {\n return x.type === ControlDefinitionType.Display;\n}\n\nexport function isActionControlsDefinition(\n x: ControlDefinition,\n): x is ActionControlDefinition {\n return x.type === ControlDefinitionType.Action;\n}\n\nexport interface ControlVisitor<A> {\n data(d: DataControlDefinition): A;\n group(d: GroupedControlsDefinition): A;\n display(d: DisplayControlDefinition): A;\n action(d: ActionControlDefinition): A;\n}\n\nexport function visitControlDefinition<A>(\n x: ControlDefinition,\n visitor: ControlVisitor<A>,\n defaultValue: (c: ControlDefinition) => A,\n): A {\n switch (x.type) {\n case ControlDefinitionType.Action:\n return visitor.action(x as ActionControlDefinition);\n case ControlDefinitionType.Data:\n return visitor.data(x as DataControlDefinition);\n case ControlDefinitionType.Display:\n return visitor.display(x as DisplayControlDefinition);\n case ControlDefinitionType.Group:\n return visitor.group(x as GroupedControlsDefinition);\n default:\n return defaultValue(x);\n }\n}\nexport function isGridRenderer(\n options: GroupRenderOptions,\n): options is GridRenderer {\n return options.type === GroupRenderType.Grid;\n}\n\nexport function isFlexRenderer(\n options: GroupRenderOptions,\n): options is FlexRenderer {\n return options.type === GroupRenderType.Flex;\n}\n\nexport function isDisplayOnlyRenderer(\n options: RenderOptions,\n): options is DisplayOnlyRenderOptions {\n return options.type === DataRenderType.DisplayOnly;\n}\n\nexport function isTextfieldRenderer(\n options: RenderOptions,\n): options is TextfieldRenderOptions {\n return options.type === DataRenderType.Textfield;\n}\n\nexport function isDataGroupRenderer(\n options: RenderOptions,\n): options is DataGroupRenderOptions {\n return options.type === DataRenderType.Group;\n}\n","import {\n CompoundField,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n DisplayOnlyRenderOptions,\n FieldOption,\n FieldType,\n GroupedControlsDefinition,\n isDataControlDefinition,\n isDisplayOnlyRenderer,\n isGroupControlsDefinition,\n SchemaField,\n SchemaInterface,\n visitControlDefinition,\n} from \"./types\";\nimport { MutableRefObject, useCallback, useRef } from \"react\";\nimport {\n Control,\n ControlChange,\n trackControlChange,\n} from \"@react-typed-forms/core\";\nimport clsx from \"clsx\";\n\nexport type JsonPath = string | number;\n\nexport interface DataContext {\n data: Control<any>;\n path: JsonPath[];\n}\n\nexport interface ControlDataContext extends DataContext {\n fields: SchemaField[];\n schemaInterface: SchemaInterface;\n}\nexport function applyDefaultValues(\n v: Record<string, any> | undefined,\n fields: SchemaField[],\n doneSet?: Set<Record<string, any>>,\n): any {\n if (!v) return defaultValueForFields(fields);\n if (doneSet && doneSet.has(v)) return v;\n doneSet ??= new Set();\n doneSet.add(v);\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, false, doneSet)\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 doneSet?: Set<Record<string, any>>,\n): any {\n if (field.collection && !notElement) {\n return ((v as any[]) ?? []).map((x) =>\n applyDefaultForField(x, field, parent, true, doneSet),\n );\n }\n if (isCompoundField(field)) {\n if (!v && !field.required) return v;\n return applyDefaultValues(\n v,\n field.treeChildren ? parent : field.children,\n doneSet,\n );\n }\n return defaultValueForField(field);\n}\n\nexport function defaultValueForFields(fields: SchemaField[]): any {\n return Object.fromEntries(\n fields.map((x) => [x.field, defaultValueForField(x)]),\n );\n}\n\nexport function defaultValueForField(\n sf: SchemaField,\n required?: boolean | null,\n): any {\n if (sf.defaultValue !== undefined) return sf.defaultValue;\n const isRequired = !!(required || sf.required);\n if (isCompoundField(sf)) {\n if (isRequired) {\n const childValue = defaultValueForFields(sf.children);\n return sf.collection ? [childValue] : childValue;\n }\n return sf.notNullable ? (sf.collection ? [] : {}) : undefined;\n }\n if (sf.collection) {\n return [];\n }\n return undefined;\n}\n\nexport function elementValueForField(sf: SchemaField): any {\n if (isCompoundField(sf)) {\n return defaultValueForFields(sf.children);\n }\n return sf.defaultValue;\n}\n\nexport function findScalarField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return findField(fields, field);\n}\n\nexport function findCompoundField(\n fields: SchemaField[],\n field: string,\n): CompoundField | undefined {\n return findField(fields, field) as CompoundField | undefined;\n}\n\nexport function findField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return fields.find((x) => x.field === field);\n}\n\nexport function isScalarField(sf: SchemaField): sf is SchemaField {\n return !isCompoundField(sf);\n}\n\nexport function isCompoundField(sf: SchemaField): sf is CompoundField {\n return sf.type === FieldType.Compound;\n}\n\nexport function isDataControl(\n c: ControlDefinition,\n): c is DataControlDefinition {\n return c.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControl(\n c: ControlDefinition,\n): c is GroupedControlsDefinition {\n return c.type === ControlDefinitionType.Group;\n}\n\nexport function fieldHasTag(field: SchemaField, tag: string) {\n return Boolean(field.tags?.includes(tag));\n}\n\nexport function fieldDisplayName(field: SchemaField) {\n return field.displayName ?? field.field;\n}\n\nexport function hasOptions(o: { options: FieldOption[] | undefined | null }) {\n return (o.options?.length ?? 0) > 0;\n}\n\nexport function defaultControlForField(sf: SchemaField): DataControlDefinition {\n if (isCompoundField(sf)) {\n return {\n type: ControlDefinitionType.Data,\n title: sf.displayName,\n field: sf.field,\n required: sf.required,\n children: sf.children.map(defaultControlForField),\n };\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 };\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 findControlsForCompound(\n compound: CompoundField,\n definition: ControlDefinition,\n): ControlDefinition[] {\n if (\n isDataControlDefinition(definition) &&\n compound.field === definition.field\n ) {\n return [definition];\n }\n if (isGroupControlsDefinition(definition)) {\n if (definition.compoundField === compound.field) return [definition];\n return (\n definition.children?.flatMap((d) =>\n findControlsForCompound(compound, d),\n ) ?? []\n );\n }\n return [];\n}\n\nexport interface ControlGroupLookup {\n groups: ControlDefinition[];\n children: Record<string, ControlGroupLookup>;\n}\nexport function findCompoundGroups(\n fields: SchemaField[],\n controls: ControlDefinition[],\n): Record<string, ControlGroupLookup> {\n return Object.fromEntries(\n fields.filter(isCompoundField).map((cf) => {\n const groups = controls.flatMap((x) => findControlsForCompound(cf, x));\n return [\n cf.field,\n {\n groups: groups.concat(\n findNonDataGroups(groups.flatMap((x) => x.children ?? [])),\n ),\n children: findCompoundGroups(\n cf.children,\n groups.flatMap((x) => x.children ?? []),\n ),\n },\n ];\n }),\n );\n}\n\nexport function existsInGroups(\n field: SchemaField,\n lookup: ControlGroupLookup,\n): [SchemaField, ControlGroupLookup][] {\n const itself = lookup.groups.find((c) =>\n c.children?.find(\n (x) =>\n (isDataControlDefinition(x) && x.field === field.field) ||\n (isGroupControlsDefinition(x) && x.compoundField === field.field),\n ),\n );\n if (!itself) return [[field, lookup]];\n if (isCompoundField(field)) {\n const childLookup = lookup.children[field.field];\n if (!childLookup) return [[field, lookup]];\n return field.children.flatMap((c) => existsInGroups(c, childLookup));\n }\n return [];\n}\n\nexport function findNonDataGroups(\n controls: ControlDefinition[],\n): ControlDefinition[] {\n return controls.flatMap((control) =>\n isGroupControlsDefinition(control) && !control.compoundField\n ? [control, ...findNonDataGroups(control.children ?? [])]\n : [],\n );\n}\n\nfunction cloneChildren(c: ControlDefinition): ControlDefinition {\n if (c.children) return { ...c, children: c.children?.map(cloneChildren) };\n return c;\n}\n\nexport function addMissingControls(\n fields: SchemaField[],\n controls: ControlDefinition[],\n) {\n controls = controls.map(cloneChildren);\n const rootMapping = findCompoundGroups(fields, controls);\n const rootGroups = findNonDataGroups([\n {\n type: ControlDefinitionType.Group,\n children: controls,\n },\n ]);\n const rootLookup = { children: rootMapping, groups: rootGroups };\n const missingFields = fields\n .filter((x) => !fieldHasTag(x, \"_NoControl\"))\n .flatMap((x) => existsInGroups(x, rootLookup));\n missingFields.forEach(([f, lookup]) => {\n const groupToAdd = f.tags?.find((x) => x.startsWith(\"_ControlGroup:\"));\n let insertGroup: ControlDefinition | undefined = undefined;\n if (groupToAdd) {\n const groupName = groupToAdd.substring(14);\n insertGroup = lookup.groups.find((x) => x.title === groupName);\n }\n if (!insertGroup) insertGroup = lookup.groups[0];\n insertGroup?.children?.push(defaultControlForField(f));\n });\n return controls;\n}\nexport function useUpdatedRef<A>(a: A): MutableRefObject<A> {\n const r = useRef(a);\n r.current = a;\n return r;\n}\n\nexport function isControlReadonly(c: ControlDefinition): boolean {\n return isDataControl(c) && !!c.readonly;\n}\n\nexport function isControlDisabled(c: ControlDefinition): boolean {\n return isDataControl(c) && !!c.disabled;\n}\n\nexport function getDisplayOnlyOptions(\n d: ControlDefinition,\n): DisplayOnlyRenderOptions | undefined {\n return isDataControlDefinition(d) &&\n d.renderOptions &&\n isDisplayOnlyRenderer(d.renderOptions)\n ? d.renderOptions\n : undefined;\n}\n\nexport function getTypeField(\n context: ControlDataContext,\n fieldPath: SchemaField[],\n): Control<string> | undefined {\n const withoutLast = fieldPath.slice(0, -1);\n const fieldList =\n withoutLast.length > 0\n ? (withoutLast.at(-1) as CompoundField).children\n : context.fields;\n const typeSchemaField = fieldList.find((x) => x.isTypeField);\n return typeSchemaField\n ? lookupChildControl(context, [...withoutLast, typeSchemaField])\n : undefined;\n}\n\nexport function visitControlDataArray<A>(\n controls: ControlDefinition[] | undefined | null,\n context: ControlDataContext,\n cb: (\n definition: DataControlDefinition,\n field: SchemaField,\n control: Control<any>,\n element: boolean,\n ) => A | undefined,\n): A | undefined {\n if (!controls) return undefined;\n for (const c of controls) {\n const r = visitControlData(c, context, cb);\n if (r !== undefined) return r;\n }\n return undefined;\n}\n\nexport function visitControlData<A>(\n definition: ControlDefinition,\n ctx: ControlDataContext,\n cb: (\n definition: DataControlDefinition,\n field: SchemaField,\n control: Control<any>,\n element: boolean,\n ) => A | undefined,\n): A | undefined {\n return visitControlDefinition<A | undefined>(\n definition,\n {\n data(def: DataControlDefinition) {\n return processData(def, def.field, def.children);\n },\n group(d: GroupedControlsDefinition) {\n return processData(undefined, d.compoundField, d.children);\n },\n action: () => undefined,\n display: () => undefined,\n },\n () => undefined,\n );\n\n function processData(\n def: DataControlDefinition | undefined,\n fieldName: string | undefined | null,\n children: ControlDefinition[] | null | undefined,\n ) {\n const fieldData = fieldName ? findField(ctx.fields, fieldName) : undefined;\n if (!fieldData)\n return !fieldName ? visitControlDataArray(children, ctx, cb) : undefined;\n\n const thisPath = [...ctx.path, fieldData.field];\n const control = ctx.data.lookupControl(thisPath);\n if (!control) throw \"No control for field\";\n const result = def ? cb(def, fieldData, control, false) : undefined;\n if (result !== undefined) return result;\n if (fieldData.collection) {\n let cIndex = 0;\n for (const c of control!.elements ?? []) {\n const elemResult = def ? cb(def, fieldData, c, true) : undefined;\n if (elemResult !== undefined) return elemResult;\n if (isCompoundField(fieldData)) {\n const cfResult = visitControlDataArray(\n children,\n {\n ...ctx,\n fields: fieldData.children,\n path: [...thisPath, cIndex],\n },\n cb,\n );\n if (cfResult !== undefined) return cfResult;\n }\n cIndex++;\n }\n }\n }\n}\n\nexport function lookupChildControl(\n data: DataContext,\n path: SchemaField[],\n): Control<any> | undefined {\n return lookupChildControlPath(\n data,\n path.map((x) => x.field),\n );\n}\n\nexport function lookupChildControlPath(\n data: DataContext,\n jsonPath: JsonPath[],\n): Control<any> | undefined {\n const childPath = [...data.path, ...jsonPath];\n return watchControlLookup(data.data, childPath);\n}\n\nexport function cleanDataForSchema(\n v: { [k: string]: any } | undefined,\n fields: SchemaField[],\n removeIfDefault?: boolean,\n): any {\n if (!v) return v;\n const typeField = fields.find((x) => x.isTypeField);\n if (!typeField) return v;\n const typeValue = v[typeField.field];\n const cleanableFields = !removeIfDefault\n ? fields.filter(\n (x) => isCompoundField(x) || (x.onlyForTypes?.length ?? 0) > 0,\n )\n : fields;\n if (!cleanableFields.length) return v;\n const out = { ...v };\n cleanableFields.forEach((x) => {\n const childValue = v[x.field];\n if (\n x.onlyForTypes?.includes(typeValue) === false ||\n (!x.notNullable && canBeNull())\n ) {\n delete out[x.field];\n return;\n }\n if (isCompoundField(x)) {\n const childFields = x.treeChildren ? fields : x.children;\n if (x.collection) {\n if (Array.isArray(childValue)) {\n out[x.field] = childValue.map((cv) =>\n cleanDataForSchema(cv, childFields, removeIfDefault),\n );\n }\n } else {\n out[x.field] = cleanDataForSchema(\n childValue,\n childFields,\n removeIfDefault,\n );\n }\n }\n function canBeNull() {\n return (\n (removeIfDefault && x.defaultValue === childValue) ||\n (x.collection && Array.isArray(childValue) && !childValue.length)\n //|| (x.type === FieldType.Bool && childValue === false)\n );\n }\n });\n return out;\n}\n\nexport function getAllReferencedClasses(\n c: ControlDefinition,\n collectExtra?: (c: ControlDefinition) => (string | undefined | null)[],\n): string[] {\n const childClasses = c.children?.flatMap((x) =>\n getAllReferencedClasses(x, collectExtra),\n );\n const tc = clsx(\n [\n c.styleClass,\n c.layoutClass,\n c.labelClass,\n ...(collectExtra?.(c) ?? []),\n ].map(getOverrideClass),\n );\n if (childClasses && !tc) return childClasses;\n if (!tc) return [];\n if (childClasses) return [tc, ...childClasses];\n return [tc];\n}\n\nexport function jsonPathString(\n jsonPath: JsonPath[],\n customIndex?: (n: number) => string,\n) {\n let out = \"\";\n jsonPath.forEach((v, i) => {\n if (typeof v === \"number\") {\n out += customIndex?.(v) ?? \"[\" + v + \"]\";\n } else {\n if (i > 0) out += \".\";\n out += v;\n }\n });\n return out;\n}\n\nexport function findChildDefinition(\n parent: ControlDefinition,\n childPath: number | number[],\n): ControlDefinition {\n if (Array.isArray(childPath)) {\n let base = parent;\n childPath.forEach((x) => (base = base.children![x]));\n return base;\n }\n return parent.children![childPath];\n}\n\nexport function getOverrideClass(className?: string | null) {\n if (className && className.startsWith(\"@ \")) {\n return className.substring(2);\n }\n return className;\n}\n\nexport function rendererClass(\n controlClass?: string | null,\n globalClass?: string | null,\n) {\n const oc = getOverrideClass(controlClass);\n if (oc === controlClass) return clsx(controlClass, globalClass);\n return oc ? oc : undefined;\n}\n\nexport function watchControlLookup(\n base: Control<any> | undefined,\n path: (string | number)[],\n): Control<any> | undefined {\n let index = 0;\n while (index < path.length && base) {\n const childId = path[index];\n const c = base.current;\n if (typeof childId === \"string\") {\n const next = c.fields?.[childId];\n if (!next) trackControlChange(base, ControlChange.Structure);\n base = next;\n } else {\n base = c.elements?.[childId];\n }\n index++;\n }\n return base;\n}\n\nexport type HookDep = string | number | undefined | null;\n\nexport interface DynamicHookGenerator<A, P> {\n deps: HookDep;\n state: any;\n runHook(ctx: P, state: any): A;\n}\n\nexport function makeHook<A, P, S = undefined>(\n runHook: (ctx: P, state: S) => A,\n state: S,\n deps?: HookDep,\n): DynamicHookGenerator<A, P> {\n return { deps, state, runHook };\n}\n\nexport type DynamicHookValue<A> =\n A extends DynamicHookGenerator<infer V, any> ? V : never;\n\nexport function useDynamicHooks<\n P,\n Hooks extends Record<string, DynamicHookGenerator<any, P>>,\n>(\n hooks: Hooks,\n): (p: P) => {\n [K in keyof Hooks]: DynamicHookValue<Hooks[K]>;\n} {\n const hookEntries = Object.entries(hooks);\n const deps = hookEntries.map(([, x]) => toDepString(x.deps)).join(\",\");\n const ref = useRef<Record<string, any>>({});\n const s = ref.current;\n hookEntries.forEach((x) => (s[x[0]] = x[1].state));\n return useCallback(\n (p: P) => {\n return Object.fromEntries(\n hookEntries.map(([f, hg]) => [f, hg.runHook(p, ref.current[f])]),\n ) as any;\n },\n [deps],\n );\n}\n\nexport function toDepString(x: any): string {\n if (x === undefined) return \"_\";\n if (x === null) return \"~\";\n return x.toString();\n}\n\nexport function appendElementIndex(\n dataContext: ControlDataContext,\n elementIndex: number,\n): ControlDataContext {\n return { ...dataContext, path: [...dataContext.path, elementIndex] };\n}\n\nexport function applyLengthRestrictions<Min, Max>(\n length: number,\n min: number | null | undefined,\n max: number | null | undefined,\n minValue: Min,\n maxValue: Max,\n): [Min | undefined, Max | undefined] {\n return [\n min == null || length > min ? minValue : undefined,\n max == null || length < max ? maxValue : undefined,\n ];\n}\n\nexport function findFieldPath(\n fields: SchemaField[],\n fieldPath: string,\n): SchemaField[] | undefined {\n const fieldNames = fieldPath.split(\"/\");\n const foundFields: SchemaField[] = [];\n let i = 0;\n let currentFields: SchemaField[] | undefined = fields;\n while (i < fieldNames.length && currentFields) {\n const cf = fieldNames[i];\n const nextField = findField(currentFields, cf);\n if (!nextField) return undefined;\n foundFields.push(nextField);\n currentFields =\n isCompoundField(nextField) && !nextField.collection\n ? nextField.children\n : undefined;\n i++;\n }\n return foundFields.length === fieldNames.length ? foundFields : undefined;\n}\n","import {\n CompoundField,\n FieldOption,\n FieldType,\n SchemaField,\n SchemaMap,\n} from \"./types\";\nimport { isCompoundField } from \"./util\";\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<\n S extends SchemaField,\n S2 extends Partial<SchemaField>,\n>(options: S2, v: (name: string) => S): (name: string) => S & S2 {\n return (n) => ({ ...v(n), ...options });\n}\n\nexport function makeScalarField<S extends Partial<SchemaField>>(\n options: S,\n): (name: string) => SchemaField & S {\n return (n) => ({ ...defaultScalarField(n, n), ...options });\n}\n\nexport function makeCompoundField<S extends Partial<CompoundField>>(\n options: S,\n): (name: string) => CompoundField & {\n type: FieldType.Compound;\n} & S {\n return (n) => ({ ...defaultCompoundField(n, n, false), ...options });\n}\n\nexport function intField<S extends Partial<SchemaField>>(\n displayName: string,\n options?: S,\n) {\n return makeScalarField({\n type: FieldType.Int as const,\n displayName,\n ...(options as S),\n });\n}\n\nexport function boolField<S extends Partial<SchemaField>>(\n displayName: string,\n options?: S,\n) {\n return makeScalarField({\n type: FieldType.Bool as const,\n displayName,\n ...(options as S),\n });\n}\n\nexport function compoundField<\n Other extends Partial<Omit<CompoundField, \"type\" | \"schemaType\">>,\n>(\n displayName: string,\n fields: SchemaField[],\n other?: Other,\n): (name: string) => CompoundField & {\n collection: Other[\"collection\"];\n} {\n return (field) =>\n ({\n ...defaultCompoundField(field, displayName, false),\n ...other,\n children: fields,\n }) as any;\n}\n\nexport function defaultScalarField(\n field: string,\n displayName: string,\n): Omit<SchemaField, \"type\"> & {\n type: FieldType.String;\n} {\n return {\n field,\n displayName,\n type: FieldType.String,\n };\n}\n\nexport function defaultCompoundField(\n field: string,\n displayName: string,\n collection: boolean,\n): CompoundField & {\n type: FieldType.Compound;\n} {\n return {\n field,\n displayName,\n type: FieldType.Compound,\n collection,\n children: [],\n };\n}\n\nexport function mergeField(\n field: SchemaField,\n mergeInto: SchemaField[],\n): SchemaField[] {\n const existing = mergeInto.find((x) => x.field === field.field);\n if (existing) {\n return mergeInto.map((x) =>\n x !== existing\n ? x\n : {\n ...x,\n onlyForTypes: mergeTypes(x.onlyForTypes, field.onlyForTypes),\n },\n );\n }\n return [...mergeInto, field];\n\n function mergeTypes(f?: string[] | null, s?: string[] | null) {\n if (!f) return s;\n if (!s) return f;\n const extras = s.filter((x) => !f.includes(x));\n return extras.length ? [...f, ...extras] : f;\n }\n}\n\nexport function mergeFields(\n fields: SchemaField[],\n name: string,\n value: any,\n newFields: SchemaField[],\n): SchemaField[] {\n const withType = fields.map((x) =>\n x.isTypeField ? addFieldOption(x, name, value) : x,\n );\n return newFields\n .map((x) => ({ ...x, onlyForTypes: [value] }))\n .reduce((af, x) => mergeField(x, af), withType);\n}\n\nexport function addFieldOption(\n typeField: SchemaField,\n name: string,\n value: any,\n): SchemaField {\n const options = typeField.options ?? [];\n return {\n ...typeField,\n options: [...options, { name, value }],\n };\n}\n\nexport function resolveSchemas<A extends SchemaMap>(schemaMap: A): A {\n const out: SchemaMap = {};\n function resolveSchemaType(type: string) {\n if (type in out) {\n return out[type];\n }\n const resolvedFields: SchemaField[] = [];\n out[type] = resolvedFields;\n schemaMap[type].forEach((x) => {\n if (isCompoundField(x) && x.schemaRef) {\n resolvedFields.push({\n ...x,\n children: resolveSchemaType(x.schemaRef),\n } as CompoundField);\n } else {\n resolvedFields.push(x);\n }\n });\n return resolvedFields;\n }\n Object.keys(schemaMap).forEach(resolveSchemaType);\n return out as A;\n}\n","import {\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataMatchExpression,\n DisplayControlDefinition,\n DisplayDataType,\n DynamicProperty,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n GroupedControlsDefinition,\n GroupRenderType,\n HtmlDisplay,\n JsonataExpression,\n SchemaField,\n SchemaMap,\n TextDisplay,\n} from \"./types\";\nimport { ActionRendererProps } from \"./controlRender\";\nimport { useMemo } from \"react\";\nimport { addMissingControls, isCompoundField } from \"./util\";\nimport { mergeFields, resolveSchemas } from \"./schemaBuilder\";\n\nexport function dataControl(\n field: string,\n title?: string | null,\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return { type: ControlDefinitionType.Data, field, title, ...options };\n}\n\nexport function textDisplayControl(\n text: string,\n options?: Partial<DisplayControlDefinition>,\n): DisplayControlDefinition {\n return {\n type: ControlDefinitionType.Display,\n displayData: { type: DisplayDataType.Text, text } as TextDisplay,\n ...options,\n };\n}\n\nexport function htmlDisplayControl(\n html: string,\n options?: Partial<DisplayControlDefinition>,\n): DisplayControlDefinition {\n return {\n type: ControlDefinitionType.Display,\n displayData: { type: DisplayDataType.Html, html } as HtmlDisplay,\n ...options,\n };\n}\n\nexport function dynamicDefaultValue(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.DefaultValue, expr };\n}\n\nexport function dynamicReadonly(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Readonly, expr };\n}\n\nexport function dynamicVisibility(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Visible, expr };\n}\n\nexport function dynamicDisabled(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Disabled, expr };\n}\n\nexport function fieldEqExpr(field: string, value: any): DataMatchExpression {\n return { type: ExpressionType.DataMatch, field, value };\n}\nexport function jsonataExpr(expression: string): JsonataExpression {\n return { type: ExpressionType.Jsonata, expression };\n}\n\nexport function groupedControl(\n children: ControlDefinition[],\n title?: string,\n options?: Partial<GroupedControlsDefinition>,\n): GroupedControlsDefinition {\n return {\n type: ControlDefinitionType.Group,\n children,\n title,\n groupOptions: { type: \"Standard\", hideTitle: !title },\n ...options,\n };\n}\nexport function compoundControl(\n field: string,\n title: string | undefined,\n children: ControlDefinition[],\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return {\n type: ControlDefinitionType.Data,\n field,\n children,\n title,\n renderOptions: { type: \"Standard\" },\n ...options,\n };\n}\n\nexport function createAction(\n actionId: string,\n onClick: () => void,\n actionText?: string,\n): ActionRendererProps {\n return { actionId, onClick, actionText: actionText ?? actionId };\n}\n\nexport const emptyGroupDefinition: GroupedControlsDefinition = {\n type: ControlDefinitionType.Group,\n children: [],\n groupOptions: { type: GroupRenderType.Standard, hideTitle: true },\n};\n\nexport function useControlDefinitionForSchema(\n sf: SchemaField[],\n definition: GroupedControlsDefinition = emptyGroupDefinition,\n): GroupedControlsDefinition {\n return useMemo<GroupedControlsDefinition>(\n () => ({\n ...definition,\n children: addMissingControls(sf, definition.children ?? []),\n }),\n [sf, definition],\n );\n}\n\nexport interface CustomRenderOptions {\n value: string;\n name: string;\n fields: SchemaField[];\n}\n\nexport type ControlDefinitionExtension = {\n RenderOptions?: CustomRenderOptions | CustomRenderOptions[];\n GroupRenderOptions?: CustomRenderOptions | CustomRenderOptions[];\n ControlAdornment?: CustomRenderOptions | CustomRenderOptions[];\n SchemaValidator?: CustomRenderOptions | CustomRenderOptions[];\n DisplayData?: CustomRenderOptions | CustomRenderOptions[];\n};\n\nexport function applyExtensionToSchema<A extends SchemaMap>(\n schemaMap: A,\n extension: ControlDefinitionExtension,\n): A {\n const outMap = { ...schemaMap };\n Object.entries(extension).forEach(([field, cro]) => {\n outMap[field as keyof A] = (Array.isArray(cro) ? cro : [cro]).reduce(\n (a, cr) => mergeFields(a, cr.name, cr.value, cr.fields),\n outMap[field],\n ) as A[string];\n });\n return outMap;\n}\n\nexport function applyExtensionsToSchema<A extends SchemaMap>(\n schemaMap: A,\n extensions: ControlDefinitionExtension[],\n) {\n return resolveSchemas(extensions.reduce(applyExtensionToSchema, schemaMap));\n}\n","import {\n ControlDefinition,\n DataExpression,\n DataMatchExpression,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n isDataControlDefinition,\n JsonataExpression,\n SchemaField,\n SchemaInterface,\n} from \"./types\";\nimport React, { useEffect, useMemo, useRef } from \"react\";\nimport {\n addAfterChangesCallback,\n ChangeListenerFunc,\n collectChanges,\n Control,\n ControlChange,\n makeChangeTracker,\n trackedValue,\n useCalculatedControl,\n useComputed,\n useControl,\n useRefState,\n} from \"@react-typed-forms/core\";\n\nimport {\n ControlDataContext,\n DataContext,\n defaultValueForField,\n DynamicHookGenerator,\n elementValueForField,\n findFieldPath,\n getDisplayOnlyOptions,\n getTypeField,\n HookDep,\n isControlDisabled,\n isControlReadonly,\n jsonPathString,\n lookupChildControl,\n toDepString,\n} from \"./util\";\nimport jsonata from \"jsonata\";\n\nexport type EvalExpressionHook<A = any> = DynamicHookGenerator<\n Control<A | undefined>,\n ControlDataContext\n>;\n\nexport type UseEvalExpressionHook = (\n expr: EntityExpression | undefined,\n coerce: (v: any) => any,\n) => DynamicHookGenerator<Control<any> | undefined, ControlDataContext>;\n\nexport function useEvalVisibilityHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n fieldPath?: SchemaField[],\n): EvalExpressionHook<boolean> {\n const dynamicVisibility = useEvalDynamicBoolHook(\n definition,\n DynamicPropertyType.Visible,\n useEvalExpressionHook,\n );\n return makeDynamicPropertyHook(\n dynamicVisibility,\n (ctx, { fieldPath, definition }) =>\n useComputed(() => {\n return (\n matchesType(ctx, fieldPath) &&\n (!fieldPath ||\n !hideDisplayOnly(ctx, fieldPath, definition, ctx.schemaInterface))\n );\n }),\n { fieldPath, definition },\n );\n}\n\nexport function useEvalReadonlyHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<boolean> {\n const dynamicReadonly = useEvalDynamicBoolHook(\n definition,\n DynamicPropertyType.Readonly,\n useEvalExpressionHook,\n );\n return makeDynamicPropertyHook(\n dynamicReadonly,\n (ctx, { definition }) =>\n useCalculatedControl(() => isControlReadonly(definition)),\n { definition },\n );\n}\n\nexport function useEvalStyleHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n property: DynamicPropertyType,\n definition: ControlDefinition,\n): EvalExpressionHook<React.CSSProperties> {\n const dynamicStyle = useEvalDynamicHook(\n definition,\n property,\n useEvalExpressionHook,\n );\n return makeDynamicPropertyHook(\n dynamicStyle,\n () => useControl(undefined),\n undefined,\n );\n}\n\nexport function useEvalAllowedOptionsHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<any[]> {\n const dynamicAllowed = useEvalDynamicHook(\n definition,\n DynamicPropertyType.AllowedOptions,\n useEvalExpressionHook,\n );\n return makeDynamicPropertyHook(\n dynamicAllowed,\n () => useControl([]),\n undefined,\n );\n}\n\nexport function useEvalDisabledHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<boolean> {\n const dynamicDisabled = useEvalDynamicBoolHook(\n definition,\n DynamicPropertyType.Disabled,\n useEvalExpressionHook,\n );\n return makeDynamicPropertyHook(\n dynamicDisabled,\n () => useComputed(() => isControlDisabled(definition)),\n undefined,\n );\n}\n\nexport function useEvalDisplayHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): DynamicHookGenerator<\n Control<string | undefined> | undefined,\n ControlDataContext\n> {\n return useEvalDynamicHook(\n definition,\n DynamicPropertyType.Display,\n useEvalExpressionHook,\n );\n}\nexport function useEvalDefaultValueHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n schemaField: SchemaField | undefined,\n element: boolean,\n): EvalExpressionHook {\n const dynamicValue = useEvalDynamicHook(\n definition,\n DynamicPropertyType.DefaultValue,\n useEvalExpressionHook,\n );\n return makeDynamicPropertyHook(\n dynamicValue,\n (ctx, { definition, schemaField }) => {\n return useComputed(calcDefault);\n function calcDefault() {\n const [required, dcv] = isDataControlDefinition(definition)\n ? [definition.required, definition.defaultValue]\n : [false, undefined];\n return (\n dcv ??\n (schemaField\n ? element\n ? elementValueForField(schemaField)\n : defaultValueForField(schemaField, required)\n : undefined)\n );\n }\n },\n { definition, schemaField },\n );\n}\n\nfunction useDataExpression(\n fvExpr: DataExpression,\n fields: SchemaField[],\n data: DataContext,\n coerce: (v: any) => any = (x) => x,\n) {\n const refField = findFieldPath(fields, fvExpr.field);\n const otherField = refField ? lookupChildControl(data, refField) : undefined;\n return useCalculatedControl(() => coerce(otherField?.value));\n}\n\nfunction useDataMatchExpression(\n fvExpr: DataMatchExpression,\n fields: SchemaField[],\n data: DataContext,\n coerce: (v: any) => any = (x) => x,\n) {\n const refField = findFieldPath(fields, fvExpr.field);\n const otherField = refField ? lookupChildControl(data, refField) : undefined;\n return useCalculatedControl(() => {\n const fv = otherField?.value;\n return coerce(\n Array.isArray(fv) ? fv.includes(fvExpr.value) : fv === fvExpr.value,\n );\n });\n}\n\nexport function defaultEvalHooks(\n expr: EntityExpression,\n context: ControlDataContext,\n coerce: (v: any) => any,\n) {\n switch (expr.type) {\n case ExpressionType.Jsonata:\n return useJsonataExpression(\n (expr as JsonataExpression).expression,\n context,\n undefined,\n coerce,\n );\n case ExpressionType.Data:\n return useDataExpression(\n expr as DataExpression,\n context.fields,\n context,\n coerce,\n );\n case ExpressionType.DataMatch:\n return useDataMatchExpression(\n expr as DataMatchExpression,\n context.fields,\n context,\n coerce,\n );\n default:\n return useControl(undefined);\n }\n}\n\nexport const defaultUseEvalExpressionHook =\n makeEvalExpressionHook(defaultEvalHooks);\n\nexport function makeEvalExpressionHook(\n f: (\n expr: EntityExpression,\n context: ControlDataContext,\n coerce: (v: any) => any,\n ) => Control<any>,\n): UseEvalExpressionHook {\n return (expr, coerce) => ({\n deps: expr?.type,\n state: expr,\n runHook: (ctx: ControlDataContext, state: EntityExpression | undefined) => {\n return state ? f(state, ctx, coerce) : undefined;\n },\n });\n}\n\nexport function useEvalDynamicBoolHook(\n definition: ControlDefinition,\n type: DynamicPropertyType,\n useEvalExpressionHook: UseEvalExpressionHook,\n): DynamicHookGenerator<Control<any> | undefined, ControlDataContext> {\n return useEvalDynamicHook(definition, type, useEvalExpressionHook, (x) =>\n Boolean(x),\n );\n}\n\nexport function useEvalDynamicHook(\n definition: ControlDefinition,\n type: DynamicPropertyType,\n useEvalExpressionHook: UseEvalExpressionHook,\n coerce: (v: any) => any = (x) => x,\n): DynamicHookGenerator<Control<any> | undefined, ControlDataContext> {\n const expression = definition.dynamic?.find((x) => x.type === type);\n return useEvalExpressionHook(expression?.expr, coerce);\n}\n\nexport function matchesType(\n context: ControlDataContext,\n fieldPath?: SchemaField[],\n) {\n const types = fieldPath\n ? fieldPath[fieldPath.length - 1].onlyForTypes\n : undefined;\n if (types == null || types.length === 0) return true;\n const typeField = getTypeField(context, fieldPath!);\n return typeField && types.includes(typeField.value);\n}\n\nexport function hideDisplayOnly(\n context: ControlDataContext,\n fieldPath: SchemaField[],\n definition: ControlDefinition,\n schemaInterface: SchemaInterface,\n) {\n const displayOptions = getDisplayOnlyOptions(definition);\n return (\n displayOptions &&\n !displayOptions.emptyText &&\n schemaInterface.isEmptyValue(\n fieldPath.at(-1)!,\n lookupChildControl(context, fieldPath)?.value,\n )\n );\n}\n\nexport function useJsonataExpression(\n jExpr: string,\n dataContext: DataContext,\n bindings?: () => Record<string, any>,\n coerce: (v: any) => any = (x) => x,\n): Control<any> {\n const pathString = jsonPathString(dataContext.path, (x) => `#$i[${x}]`);\n const fullExpr = pathString ? pathString + \".(\" + jExpr + \")\" : jExpr;\n const compiledExpr = useMemo(() => {\n try {\n return jsonata(fullExpr);\n } catch (e) {\n console.error(e);\n return jsonata(\"null\");\n }\n }, [fullExpr]);\n const control = useControl();\n const listenerRef = useRef<() => void>();\n const updateRef = useRef(0);\n const [ref] = useRefState(() =>\n makeChangeTracker(() => {\n const l = listenerRef.current;\n if (l) {\n listenerRef.current = undefined;\n addAfterChangesCallback(() => {\n listenerRef.current = l;\n l();\n });\n }\n }),\n );\n useEffect(() => {\n listenerRef.current = apply;\n apply();\n async function apply() {\n const [collect, updateSubscriptions] = ref.current;\n try {\n updateRef.current++;\n const bindingData = bindings\n ? collectChanges(collect, bindings)\n : undefined;\n control.value = coerce(\n await compiledExpr.evaluate(\n trackedValue(dataContext.data, collect),\n bindingData,\n ),\n );\n } finally {\n if (!--updateRef.current) updateSubscriptions();\n }\n }\n return () => ref.current[1](true);\n }, [compiledExpr]);\n return control;\n}\n\nexport function useEvalActionHook(\n useExpr: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<string | null> {\n const dynamicValue = useEvalDynamicHook(\n definition,\n DynamicPropertyType.ActionData,\n useExpr,\n );\n return makeDynamicPropertyHook(\n dynamicValue,\n () => useControl(null),\n undefined,\n );\n}\n\nexport function useEvalLabelText(\n useExpr: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<string | null> {\n const dynamicValue = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Label,\n useExpr,\n );\n return makeDynamicPropertyHook(\n dynamicValue,\n () => useControl(null),\n undefined,\n );\n}\n\nfunction makeDynamicPropertyHook<A, S = undefined>(\n dynamicValue: DynamicHookGenerator<\n Control<any> | undefined,\n ControlDataContext\n >,\n makeDefault: (ctx: ControlDataContext, s: S) => Control<A | undefined>,\n state: S,\n deps?: HookDep,\n): EvalExpressionHook<A> {\n return {\n deps:\n deps !== undefined\n ? dynamicValue.deps\n : [deps, dynamicValue.deps].map(toDepString).join(),\n runHook: (ctx, s) => {\n return dynamicValue.runHook(ctx, s[0]) ?? makeDefault(ctx, s[1]);\n },\n state: [dynamicValue.state, state],\n };\n}\n","import {\n ControlDefinition,\n DataControlDefinition,\n DateComparison,\n DateValidator,\n isDataControlDefinition,\n JsonataValidator,\n LengthValidator,\n SchemaField,\n SchemaInterface,\n ValidatorType,\n} from \"./types\";\nimport {\n Control,\n ControlChange,\n trackControlChange,\n useControlEffect,\n useValidator,\n useValueChangeEffect,\n} from \"@react-typed-forms/core\";\nimport { useCallback } from \"react\";\nimport { ControlDataContext, useUpdatedRef } from \"./util\";\nimport { useJsonataExpression } from \"./hooks\";\n\nexport function useValidationHook(\n definition: ControlDefinition,\n field: SchemaField | undefined,\n): (\n control: Control<any>,\n hidden: boolean,\n groupContext: ControlDataContext,\n schemaInterface: SchemaInterface,\n) => void {\n const validatorTypes = isDataControlDefinition(definition)\n ? definition.validators?.map((x) => x.type) ?? []\n : null;\n const r = useUpdatedRef({\n definition: definition as DataControlDefinition,\n field,\n });\n return useCallback(\n (control, hidden, groupContext, schemaInterface) => {\n if (!validatorTypes) return;\n const { definition: dd, field } = r.current;\n\n useValueChangeEffect(control, () => control.setError(\"default\", \"\"));\n useValidator(\n control,\n (v) =>\n !hidden &&\n dd.required &&\n field &&\n schemaInterface.isEmptyValue(field, v)\n ? \"Please enter a value\"\n : null,\n \"required\",\n undefined,\n [hidden, dd.required, !!field],\n );\n (dd.validators ?? []).forEach((x, i) => {\n switch (x.type) {\n case ValidatorType.Length:\n const lv = x as LengthValidator;\n useControlEffect(\n () => {\n trackControlChange(control, ControlChange.Validate);\n return [\n field ? schemaInterface.controlLength(field, control) : 0,\n hidden,\n ] as const;\n },\n ([len, hidden]) => {\n if (hidden) {\n control.setError(\"length\", undefined);\n return;\n }\n if (lv.min != null && len < lv.min) {\n if (field?.collection) {\n control.setValue((v) =>\n Array.isArray(v)\n ? v.concat(Array.from({ length: lv.min! - v.length }))\n : Array.from({ length: lv.min! }),\n );\n } else {\n control.setError(\n \"length\",\n \"Length must be at least \" + lv.min,\n );\n }\n } else if (lv.max != null && len > lv.max) {\n control.setError(\n \"length\",\n \"Length must be less than \" + lv.max,\n );\n }\n },\n true,\n );\n break;\n case ValidatorType.Jsonata:\n return useJsonataValidator(\n control,\n groupContext,\n x as JsonataValidator,\n hidden,\n i,\n );\n case ValidatorType.Date:\n return useDateValidator(control, x as DateValidator, i);\n }\n });\n },\n validatorTypes ? validatorTypes : [null],\n );\n}\n\nfunction useJsonataValidator(\n control: Control<any>,\n context: ControlDataContext,\n expr: JsonataValidator,\n hidden: boolean,\n i: number,\n) {\n const errorMsg = useJsonataExpression(expr.expression, context);\n useControlEffect(\n () => [hidden, errorMsg.value],\n ([hidden, msg]) => control.setError(\"jsonata\" + i, !hidden ? msg : null),\n true,\n );\n}\n\nfunction useDateValidator(\n control: Control<string | null | undefined>,\n dv: DateValidator,\n i: number,\n) {\n let comparisonDate: number;\n if (dv.fixedDate) {\n comparisonDate = Date.parse(dv.fixedDate);\n } else {\n const nowDate = new Date();\n comparisonDate = Date.UTC(\n nowDate.getFullYear(),\n nowDate.getMonth(),\n nowDate.getDate(),\n );\n if (dv.daysFromCurrent) {\n comparisonDate += dv.daysFromCurrent * 86400000;\n }\n }\n useValidator(\n control,\n (v) => {\n if (v) {\n const selDate = Date.parse(v);\n const notAfter = dv.comparison === DateComparison.NotAfter;\n if (notAfter ? selDate > comparisonDate : selDate < comparisonDate) {\n return `Date must not be ${notAfter ? \"after\" : \"before\"} ${new Date(\n comparisonDate,\n ).toDateString()}`;\n }\n }\n return null;\n },\n \"date\" + i,\n );\n}\n","export function cc(n: string | null | undefined): string | undefined {\n return n ? n : undefined;\n}\n","import { FieldOption, FieldType, SchemaField, SchemaInterface } from \"./types\";\nimport { Control } from \"@react-typed-forms/core\";\n\nexport class DefaultSchemaInterface implements SchemaInterface {\n getOptions({ options }: SchemaField): FieldOption[] | null | undefined {\n return options && options.length > 0 ? options : null;\n }\n isEmptyValue(f: SchemaField, value: any): boolean {\n if (f.collection)\n return Array.isArray(value) ? value.length === 0 : value == null;\n switch (f.type) {\n case FieldType.String:\n return !value;\n default:\n return value == null;\n }\n }\n textValue(\n field: SchemaField,\n value: any,\n element?: boolean | undefined,\n ): string | undefined {\n switch (field.type) {\n case FieldType.DateTime:\n return new Date(value).toLocaleDateString();\n case FieldType.Date:\n return new Date(value).toLocaleDateString();\n default:\n return value != null ? value.toString() : undefined;\n }\n }\n controlLength(f: SchemaField, control: Control<any>): number {\n return f.collection\n ? control.elements?.length ?? 0\n : this.valueLength(f, control.value);\n }\n valueLength(field: SchemaField, value: any): number {\n return (value && value?.length) ?? 0;\n }\n}\n\nexport const defaultSchemaInterface: SchemaInterface =\n new DefaultSchemaInterface();\n","import React, {\n CSSProperties,\n FC,\n Fragment,\n Key,\n ReactNode,\n useCallback,\n useEffect,\n} from \"react\";\nimport {\n addElement,\n Control,\n newControl,\n removeElement,\n useCalculatedControl,\n useComponentTracking,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\nimport {\n AdornmentPlacement,\n ControlAdornment,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DisplayData,\n DynamicPropertyType,\n FieldOption,\n GroupRenderOptions,\n isActionControlsDefinition,\n isDataControlDefinition,\n isDisplayControlsDefinition,\n isGroupControlsDefinition,\n LengthValidator,\n RenderOptions,\n SchemaField,\n SchemaInterface,\n ValidatorType,\n} from \"./types\";\nimport {\n applyLengthRestrictions,\n ControlDataContext,\n elementValueForField,\n fieldDisplayName,\n findFieldPath,\n isCompoundField,\n JsonPath,\n lookupChildControlPath,\n useDynamicHooks,\n useUpdatedRef,\n} from \"./util\";\nimport { dataControl } from \"./controlBuilder\";\nimport {\n defaultUseEvalExpressionHook,\n EvalExpressionHook,\n useEvalActionHook,\n useEvalAllowedOptionsHook,\n useEvalDefaultValueHook,\n useEvalDisabledHook,\n useEvalDisplayHook,\n UseEvalExpressionHook,\n useEvalLabelText,\n useEvalReadonlyHook,\n useEvalStyleHook,\n useEvalVisibilityHook,\n} from \"./hooks\";\nimport { useValidationHook } from \"./validators\";\nimport { cc } from \"./internal\";\nimport {\n DefaultSchemaInterface,\n defaultSchemaInterface,\n} from \"./schemaInterface\";\n\nexport interface FormRenderer {\n renderData: (\n props: DataRendererProps,\n ) => (layout: ControlLayoutProps) => ControlLayoutProps;\n renderGroup: (\n props: GroupRendererProps,\n ) => (layout: ControlLayoutProps) => ControlLayoutProps;\n renderDisplay: (props: DisplayRendererProps) => ReactNode;\n renderAction: (props: ActionRendererProps) => ReactNode;\n renderArray: (props: ArrayRendererProps) => ReactNode;\n renderAdornment: (props: AdornmentProps) => AdornmentRenderer;\n renderLabel: (\n props: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n ) => ReactNode;\n renderLayout: (props: ControlLayoutProps) => RenderedControl;\n renderVisibility: (props: VisibilityRendererProps) => ReactNode;\n}\n\nexport interface AdornmentProps {\n adornment: ControlAdornment;\n}\n\nexport const AppendAdornmentPriority = 0;\nexport const WrapAdornmentPriority = 1000;\n\nexport interface AdornmentRenderer {\n apply(children: RenderedLayout): void;\n adornment?: ControlAdornment;\n priority: number;\n}\n\nexport interface ArrayRendererProps {\n addAction?: ActionRendererProps;\n required: boolean;\n removeAction?: (elemIndex: number) => ActionRendererProps;\n renderElement: (elemIndex: number) => ReactNode;\n arrayControl: Control<any[] | undefined | null>;\n className?: string;\n style?: React.CSSProperties;\n min?: number | null;\n max?: number | null;\n}\nexport interface Visibility {\n visible: boolean;\n showing: boolean;\n}\n\nexport interface RenderedLayout {\n labelStart?: ReactNode;\n labelEnd?: ReactNode;\n controlStart?: ReactNode;\n controlEnd?: ReactNode;\n label?: ReactNode;\n children?: ReactNode;\n errorControl?: Control<any>;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface RenderedControl {\n children: ReactNode;\n className?: string;\n style?: React.CSSProperties;\n divRef?: (cb: HTMLElement | null) => void;\n}\n\nexport interface VisibilityRendererProps extends RenderedControl {\n visibility: Control<Visibility | undefined>;\n}\n\nexport interface ControlLayoutProps {\n label?: LabelRendererProps;\n errorControl?: Control<any>;\n adornments?: AdornmentRenderer[];\n children?: ReactNode;\n processLayout?: (props: ControlLayoutProps) => ControlLayoutProps;\n className?: string | null;\n style?: React.CSSProperties;\n}\n\nexport enum LabelType {\n Control,\n Group,\n}\nexport interface LabelRendererProps {\n type: LabelType;\n hide?: boolean | null;\n label: ReactNode;\n required?: boolean | null;\n forId?: string;\n className?: string;\n}\nexport interface DisplayRendererProps {\n data: DisplayData;\n display?: Control<string | undefined>;\n dataContext: ControlDataContext;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport type ChildVisibilityFunc = (\n child: ControlDefinition,\n context?: ControlDataContext,\n) => EvalExpressionHook<boolean>;\nexport interface ParentRendererProps {\n childDefinitions: ControlDefinition[];\n renderChild: ChildRenderer;\n className?: string;\n style?: React.CSSProperties;\n dataContext: ControlDataContext;\n parentContext: ControlDataContext;\n useChildVisibility: ChildVisibilityFunc;\n}\n\nexport interface GroupRendererProps extends ParentRendererProps {\n definition: ControlDefinition;\n renderOptions: GroupRenderOptions;\n}\n\nexport interface DataRendererProps extends ParentRendererProps {\n renderOptions: RenderOptions;\n definition: DataControlDefinition;\n field: SchemaField;\n elementIndex?: number;\n id: string;\n control: Control<any>;\n readonly: boolean;\n required: boolean;\n options: FieldOption[] | undefined | null;\n hidden: boolean;\n toArrayProps?: () => ArrayRendererProps;\n}\n\nexport interface ActionRendererProps {\n actionId: string;\n actionText: string;\n actionData?: any;\n onClick: () => void;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface ControlRenderProps {\n control: Control<any>;\n parentPath?: JsonPath[];\n}\n\nexport interface FormContextOptions {\n readonly?: boolean | null;\n hidden?: boolean | null;\n disabled?: boolean | null;\n}\n\nexport interface DataControlProps {\n definition: DataControlDefinition;\n field: SchemaField;\n dataContext: ControlDataContext;\n parentContext: ControlDataContext;\n control: Control<any>;\n formOptions: FormContextOptions;\n style?: React.CSSProperties | undefined;\n renderChild: ChildRenderer;\n elementIndex?: number;\n allowedOptions?: Control<any[] | undefined>;\n useChildVisibility: ChildVisibilityFunc;\n schemaInterface?: SchemaInterface;\n}\n\nexport type CreateDataProps = (\n controlProps: DataControlProps,\n) => DataRendererProps;\n\nexport interface ControlRenderOptions extends FormContextOptions {\n useDataHook?: (c: ControlDefinition) => CreateDataProps;\n actionOnClick?: (actionId: string, actionData: any) => () => void;\n useEvalExpressionHook?: UseEvalExpressionHook;\n clearHidden?: boolean;\n schemaInterface?: SchemaInterface;\n elementIndex?: number;\n}\nexport function useControlRenderer(\n definition: ControlDefinition,\n fields: SchemaField[],\n renderer: FormRenderer,\n options: ControlRenderOptions = {},\n): FC<ControlRenderProps> {\n const dataProps = options.useDataHook?.(definition) ?? defaultDataProps;\n const elementIndex = options.elementIndex;\n const schemaInterface = options.schemaInterface ?? defaultSchemaInterface;\n const useExpr = options.useEvalExpressionHook ?? defaultUseEvalExpressionHook;\n\n const fieldPath = lookupSchemaField(definition, fields);\n const schemaField = fieldPath?.at(-1);\n const dynamicHooks = useDynamicHooks({\n defaultValueControl: useEvalDefaultValueHook(\n useExpr,\n definition,\n schemaField,\n elementIndex != null,\n ),\n visibleControl: useEvalVisibilityHook(useExpr, definition, fieldPath),\n readonlyControl: useEvalReadonlyHook(useExpr, definition),\n disabledControl: useEvalDisabledHook(useExpr, definition),\n allowedOptions: useEvalAllowedOptionsHook(useExpr, definition),\n labelText: useEvalLabelText(useExpr, definition),\n actionData: useEvalActionHook(useExpr, definition),\n customStyle: useEvalStyleHook(\n useExpr,\n DynamicPropertyType.Style,\n definition,\n ),\n layoutStyle: useEvalStyleHook(\n useExpr,\n DynamicPropertyType.LayoutStyle,\n definition,\n ),\n displayControl: useEvalDisplayHook(useExpr, definition),\n });\n\n const useValidation = useValidationHook(definition, schemaField);\n const r = useUpdatedRef({\n options,\n definition,\n fields,\n fieldPath,\n elementIndex,\n });\n\n const Component = useCallback(\n ({ control: rootControl, parentPath = [] }: ControlRenderProps) => {\n const stopTracking = useComponentTracking();\n try {\n const {\n definition: c,\n options,\n fields,\n fieldPath,\n elementIndex,\n } = r.current;\n const schemaField = fieldPath?.at(-1);\n const parentDataContext: ControlDataContext = {\n fields,\n schemaInterface,\n data: rootControl,\n path: parentPath,\n };\n const {\n readonlyControl,\n disabledControl,\n visibleControl,\n displayControl,\n layoutStyle,\n labelText,\n customStyle,\n allowedOptions,\n defaultValueControl,\n actionData,\n } = dynamicHooks(parentDataContext);\n\n const visible = visibleControl.current.value;\n const visibility = useControl<Visibility | undefined>(() =>\n visible != null\n ? {\n visible,\n showing: visible,\n }\n : undefined,\n );\n useControlEffect(\n () => visibleControl.value,\n (visible) => {\n if (visible != null)\n visibility.setValue((ex) => ({\n visible,\n showing: ex ? ex.showing : visible,\n }));\n },\n );\n\n const [parentControl, control, controlDataContext] = getControlData(\n fieldPath,\n parentDataContext,\n elementIndex,\n );\n useControlEffect(\n () => [\n visibility.value,\n defaultValueControl.value,\n control,\n isDataControlDefinition(definition) && definition.dontClearHidden,\n parentControl.isNull,\n options.hidden,\n ],\n ([vc, dv, cd, dontClear, parentNull, hidden]) => {\n if (vc && cd && vc.visible === vc.showing) {\n if (hidden || !vc.visible) {\n if (options.clearHidden && !dontClear) {\n cd.value = undefined;\n }\n } else if (cd.value == null) {\n cd.value = dv;\n }\n }\n if (parentNull) {\n parentControl.setValue((x) => x ?? {});\n }\n },\n true,\n );\n const myOptions = useCalculatedControl<FormContextOptions>(() => ({\n hidden: options.hidden || !visibility.fields?.showing.value,\n readonly: options.readonly || readonlyControl.value,\n disabled: options.disabled || disabledControl.value,\n })).value;\n useValidation(\n control ?? newControl(null),\n !!myOptions.hidden,\n parentDataContext,\n schemaInterface,\n );\n const childOptions: ControlRenderOptions = {\n ...options,\n ...myOptions,\n elementIndex: undefined,\n };\n\n useEffect(() => {\n if (control && typeof myOptions.disabled === \"boolean\")\n control.disabled = myOptions.disabled;\n }, [control, myOptions.disabled]);\n if (parentControl.isNull) return <></>;\n\n const adornments =\n definition.adornments?.map((x) =>\n renderer.renderAdornment({ adornment: x }),\n ) ?? [];\n const labelAndChildren = renderControlLayout({\n definition: c,\n renderer,\n renderChild: (k, child, options) => {\n const dataContext = options?.dataContext ?? controlDataContext;\n return (\n <ControlRenderer\n key={k}\n control={dataContext.data}\n fields={dataContext.fields}\n definition={child}\n parentPath={dataContext.path}\n renderer={renderer}\n options={\n options\n ? { ...childOptions, elementIndex: options?.elementIndex }\n : childOptions\n }\n />\n );\n },\n createDataProps: dataProps,\n formOptions: myOptions,\n dataContext: controlDataContext,\n parentContext: parentDataContext,\n control: displayControl ?? control,\n elementIndex,\n schemaInterface,\n labelText,\n field: schemaField,\n displayControl,\n style: customStyle.value,\n allowedOptions,\n actionDataControl: actionData,\n actionOnClick: options.actionOnClick,\n useChildVisibility: (childDef, context) => {\n const schemaField = lookupSchemaField(\n childDef,\n (context ?? controlDataContext).fields,\n );\n return useEvalVisibilityHook(useExpr, childDef, schemaField);\n },\n });\n const renderedControl = renderer.renderLayout({\n ...labelAndChildren,\n adornments,\n className: c.layoutClass,\n style: layoutStyle.value,\n });\n return renderer.renderVisibility({ visibility, ...renderedControl });\n } finally {\n stopTracking();\n }\n },\n [r, dataProps, useValidation, renderer, schemaInterface, dynamicHooks],\n );\n (Component as any).displayName = \"RenderControl\";\n return Component;\n}\nexport function lookupSchemaField(\n c: ControlDefinition,\n fields: SchemaField[],\n): SchemaField[] | undefined {\n const fieldName = isGroupControlsDefinition(c)\n ? c.compoundField\n : isDataControlDefinition(c)\n ? c.field\n : undefined;\n return fieldName ? findFieldPath(fields, fieldName) : undefined;\n}\nexport function getControlData(\n fieldPath: SchemaField[] | undefined,\n parentContext: ControlDataContext,\n elementIndex: number | undefined,\n): [Control<any>, Control<any> | undefined, ControlDataContext] {\n const { data, path: pp } = parentContext;\n const extraPath = fieldPath?.slice(0, -1).map((x) => x.field) ?? [];\n const path = [...pp, ...extraPath];\n const schemaField = fieldPath?.at(-1);\n const [parentControl, found] = lookupControl(data, path);\n const childPath = schemaField\n ? elementIndex != null\n ? [...path, schemaField.field, elementIndex]\n : [...path, schemaField.field]\n : path;\n const childControl =\n schemaField && found\n ? parentControl.fields?.[schemaField.field]\n : undefined;\n return [\n parentControl,\n childControl && elementIndex != null\n ? childControl.elements?.[elementIndex]\n : childControl,\n schemaField\n ? {\n ...parentContext,\n path: childPath,\n fields: isCompoundField(schemaField)\n ? schemaField.children\n : parentContext.fields,\n }\n : parentContext,\n ];\n}\n\nfunction lookupControl(\n control: Control<any>,\n path: (string | number)[],\n): [Control<any>, boolean] {\n let base = control;\n let index = 0;\n while (index < path.length && base) {\n control = base;\n const childId = path[index];\n const c = base.current;\n if (typeof childId === \"string\") {\n base = c.fields?.[childId];\n } else {\n base = c.elements?.[childId];\n }\n index++;\n }\n return [base ?? control, !!base];\n}\n\nexport function ControlRenderer({\n definition,\n fields,\n renderer,\n options,\n control,\n parentPath,\n}: {\n definition: ControlDefinition;\n fields: SchemaField[];\n renderer: FormRenderer;\n options?: ControlRenderOptions;\n control: Control<any>;\n parentPath?: JsonPath[];\n}) {\n const Render = useControlRenderer(definition, fields, renderer, options);\n return <Render control={control} parentPath={parentPath} />;\n}\n\nexport function defaultDataProps({\n definition,\n field,\n control,\n formOptions,\n style,\n allowedOptions,\n schemaInterface = defaultSchemaInterface,\n ...props\n}: DataControlProps): DataRendererProps {\n const lengthVal = definition.validators?.find(\n (x) => x.type === ValidatorType.Length,\n ) as LengthValidator | undefined;\n const className = cc(definition.styleClass);\n const required = !!definition.required;\n const fieldOptions = schemaInterface.getOptions(field);\n const allowed = allowedOptions?.value ?? [];\n return {\n definition,\n childDefinitions: definition.children ?? [],\n control,\n field,\n id: \"c\" + control.uniqueId,\n options:\n fieldOptions && allowed.length > 0\n ? fieldOptions.filter((x) => allowed.includes(x.value))\n : fieldOptions,\n readonly: !!formOptions.readonly,\n renderOptions: definition.renderOptions ?? { type: \"Standard\" },\n required,\n hidden: !!formOptions.hidden,\n className,\n style,\n ...props,\n toArrayProps:\n field.collection && props.elementIndex == null\n ? () =>\n defaultArrayProps(\n control,\n field,\n required,\n style,\n className,\n (elementIndex) =>\n props.renderChild(\n control.elements?.[elementIndex].uniqueId ?? elementIndex,\n {\n type: ControlDefinitionType.Data,\n field: definition.field,\n children: definition.children,\n hideTitle: true,\n } as DataControlDefinition,\n { elementIndex, dataContext: props.parentContext },\n ),\n lengthVal?.min,\n lengthVal?.max,\n )\n : undefined,\n };\n}\n\nexport function defaultArrayProps(\n arrayControl: Control<any[] | undefined | null>,\n field: SchemaField,\n required: boolean,\n style: CSSProperties | undefined,\n className: string | undefined,\n renderElement: (elemIndex: number) => ReactNode,\n min: number | undefined | null,\n max: number | undefined | null,\n): ArrayRendererProps {\n const noun = field.displayName ?? field.field;\n return {\n arrayControl,\n required,\n addAction: {\n actionId: \"add\",\n actionText: \"Add \" + noun,\n onClick: () => addElement(arrayControl, elementValueForField(field)),\n },\n removeAction: (i: number) => ({\n actionId: \"\",\n actionText: \"Remove\",\n onClick: () => removeElement(arrayControl, i),\n }),\n renderElement: (i) => renderElement(i),\n className: cc(className),\n style,\n min,\n max,\n };\n}\n\nexport interface ChildRendererOptions {\n elementIndex?: number;\n dataContext?: ControlDataContext;\n}\n\nexport type ChildRenderer = (\n k: Key,\n child: ControlDefinition,\n options?: ChildRendererOptions,\n) => ReactNode;\n\nexport interface RenderControlProps {\n definition: ControlDefinition;\n renderer: FormRenderer;\n renderChild: ChildRenderer;\n createDataProps: CreateDataProps;\n formOptions: FormContextOptions;\n dataContext: ControlDataContext;\n parentContext: ControlDataContext;\n control?: Control<any>;\n labelText?: Control<string | null | undefined>;\n field?: SchemaField;\n elementIndex?: number;\n displayControl?: Control<string | undefined>;\n style?: React.CSSProperties;\n allowedOptions?: Control<any[] | undefined>;\n actionDataControl?: Control<any | undefined | null>;\n useChildVisibility: ChildVisibilityFunc;\n actionOnClick?: (actionId: string, actionData: any) => () => void;\n schemaInterface?: SchemaInterface;\n}\nexport function renderControlLayout(\n props: RenderControlProps,\n): ControlLayoutProps {\n const {\n definition: c,\n renderer,\n renderChild,\n control,\n field,\n dataContext,\n createDataProps: dataProps,\n displayControl,\n style,\n labelText,\n parentContext,\n useChildVisibility,\n } = props;\n\n if (isDataControlDefinition(c)) {\n return renderData(c);\n }\n if (isGroupControlsDefinition(c)) {\n if (c.compoundField) {\n return renderData(\n dataControl(c.compoundField, c.title, {\n children: c.children,\n hideTitle: c.groupOptions?.hideTitle,\n }),\n );\n }\n return {\n processLayout: renderer.renderGroup({\n childDefinitions: c.children ?? [],\n definition: c,\n parentContext,\n renderChild,\n dataContext,\n renderOptions: c.groupOptions ?? { type: \"Standard\" },\n className: cc(c.styleClass),\n useChildVisibility,\n style,\n }),\n label: {\n label: labelText?.value ?? c.title,\n className: cc(c.labelClass),\n type: LabelType.Group,\n hide: c.groupOptions?.hideTitle,\n },\n };\n }\n if (isActionControlsDefinition(c)) {\n const actionData = props.actionDataControl?.value ?? c.actionData;\n return {\n children: renderer.renderAction({\n actionText: labelText?.value ?? c.title ?? c.actionId,\n actionId: c.actionId,\n actionData,\n onClick: props.actionOnClick?.(c.actionId, actionData) ?? (() => {}),\n className: cc(c.styleClass),\n style,\n }),\n };\n }\n if (isDisplayControlsDefinition(c)) {\n return {\n children: renderer.renderDisplay({\n data: c.displayData ?? {},\n className: cc(c.styleClass),\n style,\n display: displayControl,\n dataContext,\n }),\n };\n }\n return {};\n\n function renderData(c: DataControlDefinition) {\n if (!field) return { children: \"No schema field for: \" + c.field };\n if (!control) return { children: \"No control for: \" + c.field };\n const rendererProps = dataProps(\n props as RenderControlProps & {\n definition: DataControlDefinition;\n field: SchemaField;\n control: Control<any>;\n },\n );\n\n const label = !c.hideTitle\n ? controlTitle(labelText?.value ?? c.title, field)\n : undefined;\n return {\n processLayout: renderer.renderData(rendererProps),\n label: {\n type:\n (c.children?.length ?? 0) > 0 ? LabelType.Group : LabelType.Control,\n label,\n forId: rendererProps.id,\n required: c.required,\n hide: c.hideTitle,\n className: cc(c.labelClass),\n },\n errorControl: control,\n };\n }\n}\n\nexport function appendMarkup(\n k: keyof Omit<RenderedLayout, \"errorControl\" | \"style\" | \"className\">,\n markup: ReactNode,\n): (layout: RenderedLayout) => void {\n return (layout) =>\n (layout[k] = (\n <>\n {layout[k]}\n {markup}\n </>\n ));\n}\n\nexport function wrapMarkup(\n k: keyof Omit<RenderedLayout, \"errorControl\" | \"style\" | \"className\">,\n wrap: (ex: ReactNode) => ReactNode,\n): (layout: RenderedLayout) => void {\n return (layout) => (layout[k] = wrap(layout[k]));\n}\n\nexport function layoutKeyForPlacement(\n pos: AdornmentPlacement,\n): keyof Omit<RenderedLayout, \"errorControl\" | \"style\" | \"className\"> {\n switch (pos) {\n case AdornmentPlacement.ControlEnd:\n return \"controlEnd\";\n case AdornmentPlacement.ControlStart:\n return \"controlStart\";\n case AdornmentPlacement.LabelStart:\n return \"labelStart\";\n case AdornmentPlacement.LabelEnd:\n return \"labelEnd\";\n }\n}\n\nexport function appendMarkupAt(\n pos: AdornmentPlacement,\n markup: ReactNode,\n): (layout: RenderedLayout) => void {\n return appendMarkup(layoutKeyForPlacement(pos), markup);\n}\n\nexport function wrapMarkupAt(\n pos: AdornmentPlacement,\n wrap: (ex: ReactNode) => ReactNode,\n): (layout: RenderedLayout) => void {\n return wrapMarkup(layoutKeyForPlacement(pos), wrap);\n}\n\nexport function renderLayoutParts(\n props: ControlLayoutProps,\n renderer: FormRenderer,\n): RenderedLayout {\n const { className, children, style, errorControl, label, adornments } =\n props.processLayout?.(props) ?? props;\n const layout: RenderedLayout = {\n children,\n errorControl,\n style,\n className: cc(className),\n };\n (adornments ?? [])\n .sort((a, b) => a.priority - b.priority)\n .forEach((x) => x.apply(layout));\n layout.label =\n label && !label.hide\n ? renderer.renderLabel(label, layout.labelStart, layout.labelEnd)\n : undefined;\n return layout;\n}\n\nexport function controlTitle(\n title: string | undefined | null,\n field: SchemaField,\n) {\n return title ? title : fieldDisplayName(field);\n}\n\nexport function applyArrayLengthRestrictions(\n {\n arrayControl,\n min,\n max,\n addAction: aa,\n removeAction: ra,\n required,\n }: Pick<\n ArrayRendererProps,\n \"addAction\" | \"removeAction\" | \"arrayControl\" | \"min\" | \"max\" | \"required\"\n >,\n disable?: boolean,\n): Pick<ArrayRendererProps, \"addAction\" | \"removeAction\"> & {\n addDisabled: boolean;\n removeDisabled: boolean;\n} {\n const [removeAllowed, addAllowed] = applyLengthRestrictions(\n arrayControl.elements?.length ?? 0,\n min == null && required ? 1 : min,\n max,\n true,\n true,\n );\n return {\n addAction: disable || addAllowed ? aa : undefined,\n removeAction: disable || removeAllowed ? ra : undefined,\n removeDisabled: !removeAllowed,\n addDisabled: !addAllowed,\n };\n}\n","import { CSSProperties, ReactElement, ReactNode } from \"react\";\nimport {\n ActionRendererProps,\n AdornmentProps,\n AdornmentRenderer,\n ArrayRendererProps,\n ControlLayoutProps,\n DataRendererProps,\n DisplayRendererProps,\n FormRenderer,\n GroupRendererProps,\n LabelRendererProps,\n LabelType,\n RenderedControl,\n VisibilityRendererProps,\n} from \"./controlRender\";\nimport { ControlAdornment, ControlAdornmentType, IconAdornment } from \"./types\";\n\nexport interface DefaultRenderers {\n data: DataRendererRegistration;\n label: LabelRendererRegistration;\n action: ActionRendererRegistration;\n array: ArrayRendererRegistration;\n group: GroupRendererRegistration;\n display: DisplayRendererRegistration;\n adornment: AdornmentRendererRegistration;\n renderLayout: LayoutRendererRegistration;\n visibility: VisibilityRendererRegistration;\n}\n\nexport interface LayoutRendererRegistration {\n type: \"layout\";\n match?: (props: ControlLayoutProps) => boolean;\n render: (\n props: ControlLayoutProps,\n renderers: FormRenderer,\n ) => RenderedControl;\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 renderers: FormRenderer,\n ) => ReactNode | ((layout: ControlLayoutProps) => ControlLayoutProps);\n}\n\nexport interface LabelRendererRegistration {\n type: \"label\";\n labelType?: LabelType | LabelType[];\n render: (\n labelProps: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface ActionRendererRegistration {\n type: \"action\";\n actionType?: string | string[];\n render: (props: ActionRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface ArrayRendererRegistration {\n type: \"array\";\n render: (props: ArrayRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface GroupRendererRegistration {\n type: \"group\";\n renderType?: string | string[];\n render: (\n props: GroupRendererProps,\n renderers: FormRenderer,\n ) => ReactElement | ((layout: ControlLayoutProps) => ControlLayoutProps);\n}\n\nexport interface DisplayRendererRegistration {\n type: \"display\";\n renderType?: string | string[];\n render: (\n props: DisplayRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface AdornmentRendererRegistration {\n type: \"adornment\";\n adornmentType?: string | string[];\n render: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nexport interface VisibilityRendererRegistration {\n type: \"visibility\";\n render: (props: VisibilityRendererProps) => ReactNode;\n}\n\nexport type RendererRegistration =\n | DataRendererRegistration\n | GroupRendererRegistration\n | DisplayRendererRegistration\n | ActionRendererRegistration\n | LabelRendererRegistration\n | ArrayRendererRegistration\n | AdornmentRendererRegistration\n | LayoutRendererRegistration\n | VisibilityRendererRegistration;\n\nexport function isIconAdornment(a: ControlAdornment): a is IconAdornment {\n return a.type === ControlAdornmentType.Icon;\n}\n\nexport function createLayoutRenderer(\n render: LayoutRendererRegistration[\"render\"],\n options?: Partial<LayoutRendererRegistration>,\n): LayoutRendererRegistration {\n return { type: \"layout\", render, ...options };\n}\n\nexport function createArrayRenderer(\n render: ArrayRendererRegistration[\"render\"],\n options?: Partial<ArrayRendererRegistration>,\n): ArrayRendererRegistration {\n return { type: \"array\", render, ...options };\n}\n\nexport function createDataRenderer(\n render: DataRendererRegistration[\"render\"],\n options?: Partial<DataRendererRegistration>,\n): DataRendererRegistration {\n return { type: \"data\", render, ...options };\n}\n\nexport function createGroupRenderer(\n render: GroupRendererRegistration[\"render\"],\n options?: Partial<GroupRendererRegistration>,\n): GroupRendererRegistration {\n return { type: \"group\", render, ...options };\n}\n\nexport function createDisplayRenderer(\n render: DisplayRendererRegistration[\"render\"],\n options?: Partial<DisplayRendererRegistration>,\n): DisplayRendererRegistration {\n return { type: \"display\", render, ...options };\n}\n\nexport function createLabelRenderer(\n render: LabelRendererRegistration[\"render\"],\n options?: Omit<LabelRendererRegistration, \"type\">,\n): LabelRendererRegistration {\n return { type: \"label\", render, ...options };\n}\n\nexport function createVisibilityRenderer(\n render: VisibilityRendererRegistration[\"render\"],\n options?: Partial<VisibilityRendererRegistration>,\n): VisibilityRendererRegistration {\n return { type: \"visibility\", render, ...options };\n}\n\nexport function createAdornmentRenderer(\n render: (props: AdornmentProps) => AdornmentRenderer,\n options?: Partial<AdornmentRendererRegistration>,\n): AdornmentRendererRegistration {\n return { type: \"adornment\", ...options, render };\n}\n","import React from \"react\";\n\nimport { DefaultRendererOptions } from \"./createDefaultRenderers\";\n\nexport const defaultTailwindTheme = {\n label: {\n groupLabelClass: \"font-bold\",\n requiredElement: <span className=\"text-red-500\"> *</span>,\n },\n array: {\n removableClass: \"grid grid-cols-[1fr_auto] items-center gap-x-2\",\n childClass: \"grow my-2\",\n addActionClass: \"my-2\",\n },\n group: {\n standardClassName: \"flex flex-col gap-4\",\n gridClassName: \"gap-x-2 gap-y-4\",\n flexClassName: \"gap-2\",\n },\n action: {\n className: \"bg-primary-500 rounded-lg p-3 text-white\",\n },\n layout: {\n className: \"flex flex-col\",\n errorClass: \"text-sm text-danger-500\",\n },\n data: {\n displayOnlyClass: \"flex flex-row items-center gap-2\",\n checkOptions: {\n className: \"flex items-center gap-4\",\n entryClass: \"flex gap-1 items-center\",\n },\n selectOptions: { emptyText: \"<select>\" },\n },\n} satisfies DefaultRendererOptions;\n","import React from \"react\";\nimport { DisplayRendererProps } from \"../controlRender\";\nimport {\n DisplayDataType,\n HtmlDisplay,\n IconDisplay,\n TextDisplay,\n} from \"../types\";\nimport clsx from \"clsx\";\nimport { getOverrideClass, rendererClass } from \"../util\";\nimport { DisplayRendererRegistration } from \"../renderers\";\n\nexport interface DefaultDisplayRendererOptions {\n textClassName?: string;\n htmlClassName?: string;\n}\n\nexport function createDefaultDisplayRenderer(\n options: DefaultDisplayRendererOptions = {},\n): DisplayRendererRegistration {\n return {\n render: (props) => <DefaultDisplay {...options} {...props} />,\n type: \"display\",\n };\n}\n\nexport function DefaultDisplay({\n data,\n display,\n className,\n style,\n ...options\n}: DefaultDisplayRendererOptions & DisplayRendererProps) {\n switch (data.type) {\n case DisplayDataType.Icon:\n return (\n <i\n style={style}\n className={clsx(\n getOverrideClass(className),\n display ? display.value : (data as IconDisplay).iconClass,\n )}\n />\n );\n case DisplayDataType.Text:\n return (\n <div\n style={style}\n className={rendererClass(className, options.textClassName)}\n >\n {display ? display.value : (data as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n style={style}\n className={rendererClass(className, options.htmlClassName)}\n dangerouslySetInnerHTML={{\n __html: display ? display.value ?? \"\" : (data as HtmlDisplay).html,\n }}\n />\n );\n default:\n return <h1>Unknown display type: {data.type}</h1>;\n }\n}\n","import { RenderedLayout } from \"../controlRender\";\nimport React from \"react\";\n\nexport interface DefaultLayoutRendererOptions {\n className?: string;\n errorClass?: string;\n}\n\nexport function DefaultLayout({\n errorClass,\n layout: { controlEnd, controlStart, label, children, errorControl },\n}: DefaultLayoutRendererOptions & {\n layout: RenderedLayout;\n}) {\n const ec = errorControl;\n const errorText = ec && ec.touched ? ec.error : undefined;\n return (\n <>\n {label}\n {controlStart}\n {children}\n {errorText && <div className={errorClass}>{errorText}</div>}\n {controlEnd}\n </>\n );\n}\n","import { VisibilityRendererProps } from \"../controlRender\";\nimport React, { useEffect } from \"react\";\nimport clsx from \"clsx\";\nimport { createVisibilityRenderer } from \"../renderers\";\n\nexport function createDefaultVisibilityRenderer() {\n return createVisibilityRenderer((props) => <DefaultVisibility {...props} />);\n}\n\nexport function DefaultVisibility({\n visibility,\n children,\n className,\n style,\n divRef,\n}: VisibilityRendererProps) {\n const v = visibility.value;\n useEffect(() => {\n if (v) {\n visibility.setValue((ex) => ({ visible: v.visible, showing: v.visible }));\n }\n }, [v?.visible]);\n return v?.visible ? (\n <div className={clsx(className)} style={style} ref={divRef}>\n {children}\n </div>\n ) : (\n <></>\n );\n}\n","import { Control } from \"@react-typed-forms/core\";\nimport React, { useMemo, useState } from \"react\";\nimport { rendererClass } from \"../util\";\nimport { FieldOption, FieldType } from \"../types\";\nimport { createDataRenderer } from \"../renderers\";\n\nexport interface SelectRendererOptions {\n className?: string;\n emptyText?: string;\n requiredText?: string;\n}\n\nexport function createSelectRenderer(options: SelectRendererOptions = {}) {\n return createDataRenderer(\n (props, asArray) => (\n <SelectDataRenderer\n className={rendererClass(props.className, options.className)}\n state={props.control}\n id={props.id}\n readonly={props.readonly}\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\nexport interface SelectDataRendererProps {\n id?: string;\n className?: string;\n options: FieldOption[];\n emptyText?: string;\n requiredText?: string;\n readonly: boolean;\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 readonly,\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 || readonly}\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","import { Control } from \"@react-typed-forms/core\";\nimport { SchemaField, SchemaInterface } from \"../types\";\nimport React from \"react\";\nimport { rendererClass } from \"../util\";\n\nexport function DefaultDisplayOnly({\n control,\n className,\n emptyText,\n schemaInterface,\n field,\n style,\n}: {\n control: Control<any>;\n field: SchemaField;\n schemaInterface: SchemaInterface;\n className?: string;\n style?: React.CSSProperties;\n emptyText?: string | null;\n}) {\n const v = control.value;\n const text =\n (schemaInterface.isEmptyValue(field, v)\n ? emptyText\n : schemaInterface.textValue(field, v)) ?? \"\";\n return (\n <div style={style} className={rendererClass(className)}>\n {text}\n </div>\n );\n}\n","import { FieldType } from \"../types\";\nimport React from \"react\";\nimport { Control, formControlProps } from \"@react-typed-forms/core\";\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\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 { ArrayRendererRegistration } from \"../renderers\";\nimport {\n ActionRendererProps,\n applyArrayLengthRestrictions,\n ArrayRendererProps,\n} from \"../controlRender\";\nimport clsx from \"clsx\";\nimport React, { Fragment, ReactNode } from \"react\";\nimport { RenderElements } from \"@react-typed-forms/core\";\nimport { applyLengthRestrictions } from \"../util\";\n\nexport interface 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 return {\n render: (props, { renderAction }) => (\n <DefaultArrayRenderer\n {...props}\n {...options}\n renderAction={renderAction}\n />\n ),\n type: \"array\",\n };\n}\n\nexport interface DefaultArrayRendererProps\n extends DefaultArrayRendererOptions,\n ArrayRendererProps {\n renderAction: (props: ActionRendererProps) => ReactNode;\n}\n\nexport function DefaultArrayRenderer(props: DefaultArrayRendererProps) {\n const {\n renderElement,\n className,\n removableClass,\n childClass,\n removableChildClass,\n removeActionClass,\n addActionClass,\n arrayControl,\n renderAction,\n style,\n } = props;\n const { addAction, removeAction } = applyArrayLengthRestrictions(props);\n return (\n <div style={style}>\n <div className={clsx(className, removeAction && removableClass)}>\n <RenderElements control={arrayControl}>\n {(_, x) =>\n removeAction ? (\n <>\n <div className={clsx(childClass, removableChildClass)}>\n {renderElement(x)}\n </div>\n <div className={removeActionClass}>\n {renderAction(removeAction(x))}\n </div>\n </>\n ) : (\n <div className={childClass}>{renderElement(x)}</div>\n )\n }\n </RenderElements>\n </div>\n {addAction && (\n <div className={addActionClass}>{renderAction(addAction)}</div>\n )}\n </div>\n );\n}\n","import { DataRenderType, FieldOption } from \"../types\";\nimport {\n Control,\n Fcheckbox,\n RenderArrayElements,\n useComputed,\n} from \"@react-typed-forms/core\";\nimport React from \"react\";\nimport { createDataRenderer } from \"../renderers\";\nimport { rendererClass } from \"../util\";\n\nexport interface CheckRendererOptions {\n className?: string;\n entryClass?: string;\n checkClass?: string;\n labelClass?: string;\n}\n\nexport function createRadioRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (p) => (\n <CheckButtons\n {...options}\n {...p}\n className={rendererClass(p.className, options.className)}\n isChecked={(control, o) => control.value == o.value}\n setChecked={(c, o) => (c.value = o.value)}\n control={p.control}\n type=\"radio\"\n />\n ),\n {\n renderType: DataRenderType.Radio,\n },\n );\n}\n\nexport function createCheckListRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (p) => (\n <CheckButtons\n {...options}\n {...p}\n className={rendererClass(p.className, options.className)}\n isChecked={(control, o) => {\n const v = control.value;\n return Array.isArray(v) ? v.includes(o.value) : false;\n }}\n setChecked={(c, o, checked) => {\n c.setValue((x) => setIncluded(x ?? [], o.value, checked));\n }}\n control={p.control}\n type=\"checkbox\"\n />\n ),\n {\n collection: true,\n renderType: DataRenderType.CheckList,\n },\n );\n}\n\nexport function CheckButtons({\n control,\n options,\n labelClass,\n checkClass,\n readonly,\n entryClass,\n className,\n id,\n type,\n isChecked,\n setChecked,\n}: {\n id?: string;\n className?: string;\n options?: FieldOption[] | null;\n control: Control<any>;\n entryClass?: string;\n checkClass?: string;\n labelClass?: string;\n readonly?: boolean;\n type: \"checkbox\" | \"radio\";\n isChecked: (c: Control<any>, o: FieldOption) => boolean;\n setChecked: (c: Control<any>, o: FieldOption, checked: boolean) => void;\n}) {\n const { disabled } = control;\n const name = \"r\" + control.uniqueId;\n return (\n <div className={className} id={id}>\n <RenderArrayElements array={options?.filter((x) => x.value != null)}>\n {(o, i) => {\n const checked = useComputed(() => isChecked(control, o)).value;\n return (\n <div key={i} className={entryClass}>\n <input\n id={name + \"_\" + i}\n className={checkClass}\n type={type}\n name={name}\n readOnly={readonly}\n disabled={disabled}\n checked={checked}\n onChange={(x) => {\n !readonly && setChecked(control, o, x.target.checked);\n }}\n />\n <label className={labelClass} htmlFor={name + \"_\" + i}>\n {o.name}\n </label>\n </div>\n );\n }}\n </RenderArrayElements>\n </div>\n );\n}\n\nexport function setIncluded<A>(array: A[], elem: A, included: boolean): A[] {\n const already = array.includes(elem);\n if (included === already) {\n return array;\n }\n if (included) {\n return [...array, elem];\n }\n return array.filter((e) => e !== elem);\n}\n\nexport function createCheckboxRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (props, renderer) => (p) => ({\n ...p,\n label: undefined,\n children: (\n <div className={rendererClass(props.className, options.className)}>\n <div className={options.entryClass}>\n <Fcheckbox\n id={props.id}\n control={props.control}\n style={props.style}\n className={options.checkClass}\n />\n {p.label && renderer.renderLabel(p.label, undefined, undefined)}\n </div>\n </div>\n ),\n }),\n { renderType: DataRenderType.Checkbox },\n );\n}\n","import {\n createDefaultDisplayRenderer,\n DefaultDisplayRendererOptions,\n} from \"./components/DefaultDisplay\";\nimport {\n DefaultLayout,\n DefaultLayoutRendererOptions,\n} from \"./components/DefaultLayout\";\nimport {\n ActionRendererRegistration,\n AdornmentRendererRegistration,\n createDataRenderer,\n createLayoutRenderer,\n DataRendererRegistration,\n DefaultRenderers,\n GroupRendererRegistration,\n isIconAdornment,\n LabelRendererRegistration,\n} from \"./renderers\";\nimport { createDefaultVisibilityRenderer } from \"./components/DefaultVisibility\";\nimport React, { CSSProperties, Fragment, ReactElement, ReactNode } from \"react\";\nimport { hasOptions, rendererClass } from \"./util\";\nimport clsx from \"clsx\";\nimport {\n ActionRendererProps,\n appendMarkupAt,\n ControlLayoutProps,\n GroupRendererProps,\n LabelType,\n renderLayoutParts,\n} from \"./controlRender\";\nimport {\n AdornmentPlacement,\n DataRenderType,\n FieldOption,\n FieldType,\n FlexRenderer,\n GridRenderer,\n isDataGroupRenderer,\n isDisplayOnlyRenderer,\n isFlexRenderer,\n isGridRenderer,\n isTextfieldRenderer,\n} from \"./types\";\nimport {\n createSelectRenderer,\n SelectRendererOptions,\n} from \"./components/SelectDataRenderer\";\nimport { DefaultDisplayOnly } from \"./components/DefaultDisplayOnly\";\nimport { Fcheckbox } from \"@react-typed-forms/core\";\nimport { ControlInput, createInputConversion } from \"./components/ControlInput\";\nimport {\n createDefaultArrayRenderer,\n DefaultArrayRendererOptions,\n} from \"./components/DefaultArrayRenderer\";\nimport {\n CheckRendererOptions,\n createCheckboxRenderer,\n createCheckListRenderer,\n createRadioRenderer,\n} from \"./components/CheckRenderer\";\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\n layout?: DefaultLayoutRendererOptions;\n}\n\ninterface StyleProps {\n className?: string;\n style?: CSSProperties;\n}\n\ninterface DefaultActionRendererOptions {\n className?: string;\n}\n\nexport function createDefaultActionRenderer(\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n function render({ onClick, actionText }: ActionRendererProps) {\n return (\n <button className={options.className} onClick={onClick}>\n {actionText}\n </button>\n );\n }\n\n return { render, type: \"action\" };\n}\n\ninterface DefaultGroupRendererOptions {\n className?: string;\n standardClassName?: string;\n gridStyles?: (columns: GridRenderer) => StyleProps;\n gridClassName?: string;\n defaultGridColumns?: number;\n flexClassName?: string;\n defaultFlexGap?: string;\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 flexClassName,\n defaultFlexGap,\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 flexStyles(options: FlexRenderer): StyleProps {\n return {\n className: flexClassName,\n style: {\n display: \"flex\",\n gap: options.gap ? options.gap : defaultFlexGap,\n flexDirection: options.direction\n ? (options.direction as any)\n : undefined,\n },\n };\n }\n\n function render(props: GroupRendererProps) {\n const { renderChild, renderOptions, childDefinitions } = props;\n\n const { style, className: gcn } = isGridRenderer(renderOptions)\n ? gridStyles(renderOptions)\n : isFlexRenderer(renderOptions)\n ? flexStyles(renderOptions)\n : ({ className: standardClassName } as StyleProps);\n\n return (cp: ControlLayoutProps) => {\n return {\n ...cp,\n children: (\n <div\n className={rendererClass(props.className, clsx(className, gcn))}\n style={style}\n >\n {childDefinitions?.map((c, i) => renderChild(i, c))}\n </div>\n ),\n };\n };\n }\n\n return { type: \"group\", render };\n}\n\nexport const DefaultBoolOptions: FieldOption[] = [\n { name: \"Yes\", value: true },\n { name: \"No\", value: false },\n];\n\ninterface DefaultDataRendererOptions {\n inputClass?: string;\n displayOnlyClass?: string;\n selectOptions?: SelectRendererOptions;\n checkboxOptions?: CheckRendererOptions;\n checkOptions?: CheckRendererOptions;\n radioOptions?: CheckRendererOptions;\n checkListOptions?: CheckRendererOptions;\n booleanOptions?: FieldOption[];\n optionRenderer?: DataRendererRegistration;\n}\n\nexport function createDefaultDataRenderer(\n options: DefaultDataRendererOptions = {},\n): DataRendererRegistration {\n const checkboxRenderer = createCheckboxRenderer(\n options.checkOptions ?? options.checkboxOptions,\n );\n const selectRenderer = createSelectRenderer(options.selectOptions);\n const radioRenderer = createRadioRenderer(\n options.radioOptions ?? options.checkOptions,\n );\n const checkListRenderer = createCheckListRenderer(\n options.checkListOptions ?? options.checkOptions,\n );\n const { inputClass, booleanOptions, optionRenderer, displayOnlyClass } = {\n optionRenderer: selectRenderer,\n booleanOptions: DefaultBoolOptions,\n ...options,\n };\n\n return createDataRenderer((props, renderers) => {\n const fieldType = props.field.type;\n const renderOptions = props.renderOptions;\n let renderType = renderOptions.type;\n if (props.toArrayProps && renderType !== DataRenderType.CheckList) {\n return (p) => ({\n ...p,\n children: renderers.renderArray(props.toArrayProps!()),\n });\n }\n if (fieldType === FieldType.Compound) {\n const groupOptions = (isDataGroupRenderer(renderOptions)\n ? renderOptions.groupOptions\n : undefined) ?? { type: \"Standard\", hideTitle: true };\n return renderers.renderGroup({ ...props, renderOptions: groupOptions });\n }\n if (fieldType == FieldType.Any) return <>No control for Any</>;\n if (isDisplayOnlyRenderer(renderOptions))\n return (p) => ({\n ...p,\n className: displayOnlyClass,\n children: (\n <DefaultDisplayOnly\n field={props.field}\n schemaInterface={props.dataContext.schemaInterface}\n control={props.control}\n className={props.className}\n style={props.style}\n emptyText={renderOptions.emptyText}\n />\n ),\n });\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, renderers);\n }\n switch (renderType) {\n case DataRenderType.CheckList:\n return checkListRenderer.render(props, renderers);\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, renderers);\n case DataRenderType.Radio:\n return radioRenderer.render(props, renderers);\n case DataRenderType.Checkbox:\n return checkboxRenderer.render(props, renderers);\n }\n const placeholder = isTextfieldRenderer(renderOptions)\n ? renderOptions.placeholder\n : undefined;\n return (\n <ControlInput\n className={rendererClass(props.className, inputClass)}\n style={props.style}\n id={props.id}\n readOnly={props.readonly}\n control={props.control}\n placeholder={placeholder ?? undefined}\n convert={createInputConversion(props.field.type)}\n />\n );\n });\n}\n\nexport interface DefaultAdornmentRendererOptions {}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n return {\n type: \"adornment\",\n render: ({ adornment }) => ({\n apply: (rl) => {\n if (isIconAdornment(adornment)) {\n return appendMarkupAt(\n adornment.placement ?? AdornmentPlacement.ControlStart,\n <i className={adornment.iconClass} />,\n )(rl);\n }\n },\n priority: 0,\n adornment,\n }),\n };\n}\n\nfunction createDefaultLayoutRenderer(\n options: DefaultLayoutRendererOptions = {},\n) {\n return createLayoutRenderer((props, renderers) => {\n const layout = renderLayoutParts(\n {\n ...props,\n className: rendererClass(props.className, options.className),\n },\n renderers,\n );\n return {\n children: <DefaultLayout layout={layout} {...options} />,\n className: layout.className,\n style: layout.style,\n divRef: (e) =>\n e && props.errorControl\n ? (props.errorControl.meta.scrollElement = e)\n : undefined,\n };\n });\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n controlLabelClass?: string;\n requiredElement?: ReactNode;\n labelContainer?: (children: ReactElement) => ReactElement;\n}\n\nexport function createDefaultLabelRenderer(\n options?: DefaultLabelRendererOptions,\n): LabelRendererRegistration {\n const {\n className,\n groupLabelClass,\n controlLabelClass,\n requiredElement,\n labelContainer,\n } = {\n requiredElement: <span> *</span>,\n labelContainer: (c: ReactElement) => c,\n ...options,\n };\n return {\n render: (props, labelStart, labelEnd) => {\n return labelContainer(\n <>\n <label\n htmlFor={props.forId}\n className={rendererClass(\n props.className,\n clsx(\n className,\n props.type === LabelType.Group && groupLabelClass,\n props.type === LabelType.Control && controlLabelClass,\n ),\n )}\n >\n {labelStart}\n {props.label}\n {props.required && requiredElement}\n </label>\n {labelEnd}\n </>,\n );\n },\n type: \"label\",\n };\n}\n\nexport function createDefaultRenderers(\n options: DefaultRendererOptions = {},\n): DefaultRenderers {\n return {\n data: createDefaultDataRenderer(options.data),\n display: createDefaultDisplayRenderer(options.display),\n action: createDefaultActionRenderer(options.action),\n array: createDefaultArrayRenderer(options.array),\n group: createDefaultGroupRenderer(options.group),\n label: createDefaultLabelRenderer(options.label),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n renderLayout: createDefaultLayoutRenderer(options.layout),\n visibility: createDefaultVisibilityRenderer(),\n };\n}\n","import { CSSProperties, ReactNode } from \"react\";\nimport {\n ActionRendererProps,\n AdornmentProps,\n AdornmentRenderer,\n ArrayRendererProps,\n ControlLayoutProps,\n DataRendererProps,\n DisplayRendererProps,\n FormRenderer,\n GroupRendererProps,\n LabelRendererProps,\n} from \"./controlRender\";\nimport { hasOptions } from \"./util\";\nimport {\n ActionRendererRegistration,\n AdornmentRendererRegistration,\n ArrayRendererRegistration,\n DataRendererRegistration,\n DefaultRenderers,\n DisplayRendererRegistration,\n GroupRendererRegistration,\n LabelRendererRegistration,\n LayoutRendererRegistration,\n RendererRegistration,\n VisibilityRendererRegistration,\n} from \"./renderers\";\nimport { createDefaultRenderers } from \"./createDefaultRenderers\";\nimport { DataRenderType } from \"./types\";\n\nexport function createFormRenderer(\n customRenderers: RendererRegistration[] = [],\n defaultRenderers: DefaultRenderers = createClassStyledRenderers(),\n): FormRenderer {\n const dataRegistrations = customRenderers.filter(isDataRegistration);\n const groupRegistrations = customRenderers.filter(isGroupRegistration);\n const adornmentRegistrations = customRenderers.filter(\n isAdornmentRegistration,\n );\n const displayRegistrations = customRenderers.filter(isDisplayRegistration);\n const labelRenderers = customRenderers.filter(isLabelRegistration);\n const arrayRenderers = customRenderers.filter(isArrayRegistration);\n const actionRenderers = customRenderers.filter(isActionRegistration);\n const layoutRenderers = customRenderers.filter(isLayoutRegistration);\n const visibilityRenderer =\n customRenderers.find(isVisibilityRegistration) ??\n defaultRenderers.visibility;\n\n const formRenderers: FormRenderer = {\n renderAction,\n renderData,\n renderGroup,\n renderDisplay,\n renderLabel,\n renderArray,\n renderAdornment,\n renderLayout,\n renderVisibility: visibilityRenderer.render,\n };\n\n function renderLayout(props: ControlLayoutProps) {\n const renderer =\n layoutRenderers.find((x) => !x.match || x.match(props)) ??\n defaultRenderers.renderLayout;\n return renderer.render(props, formRenderers);\n }\n\n function renderAdornment(props: AdornmentProps): AdornmentRenderer {\n const renderer =\n adornmentRegistrations.find((x) =>\n isOneOf(x.adornmentType, props.adornment.type),\n ) ?? defaultRenderers.adornment;\n return renderer.render(props);\n }\n\n function renderArray(props: ArrayRendererProps) {\n return (arrayRenderers[0] ?? defaultRenderers.array).render(\n props,\n formRenderers,\n );\n }\n\n function renderLabel(\n props: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n ) {\n const renderer =\n labelRenderers.find((x) => isOneOf(x.labelType, props.type)) ??\n defaultRenderers.label;\n return renderer.render(props, labelStart, labelEnd, formRenderers);\n }\n\n function renderData(\n props: DataRendererProps,\n ): (layout: ControlLayoutProps) => ControlLayoutProps {\n const {\n renderOptions: { type: renderType },\n field,\n } = props;\n\n const options = hasOptions(props);\n const renderer =\n dataRegistrations.find(\n (x) =>\n (x.collection ?? false) ===\n (props.elementIndex == null && (field.collection ?? false)) &&\n (x.options ?? false) === options &&\n ((x.schemaType &&\n renderType == DataRenderType.Standard &&\n isOneOf(x.schemaType, field.type)) ||\n (x.renderType && isOneOf(x.renderType, renderType)) ||\n (x.match && x.match(props))),\n ) ?? defaultRenderers.data;\n\n const result = renderer.render(props, formRenderers);\n if (typeof result === \"function\") return result;\n return (l) => ({ ...l, children: result });\n }\n\n function renderGroup(\n props: GroupRendererProps,\n ): (layout: ControlLayoutProps) => ControlLayoutProps {\n const renderType = props.renderOptions.type;\n const renderer =\n groupRegistrations.find((x) => isOneOf(x.renderType, renderType)) ??\n defaultRenderers.group;\n const result = renderer.render(props, formRenderers);\n if (typeof result === \"function\") return result;\n return (l) => ({ ...l, children: result });\n }\n\n function renderAction(props: ActionRendererProps) {\n const renderer =\n actionRenderers.find((x) => isOneOf(x.actionType, props.actionId)) ??\n defaultRenderers.action;\n return renderer.render(props, formRenderers);\n }\n\n function renderDisplay(props: DisplayRendererProps) {\n const renderType = props.data.type;\n const renderer =\n displayRegistrations.find((x) => isOneOf(x.renderType, renderType)) ??\n defaultRenderers.display;\n return renderer.render(props, formRenderers);\n }\n\n return formRenderers;\n}\n\nfunction createClassStyledRenderers() {\n return createDefaultRenderers({\n layout: { className: \"control\" },\n group: { className: \"group\" },\n array: { className: \"control-array\" },\n action: { className: \"action\" },\n data: { inputClass: \"data\" },\n display: { htmlClassName: \"html\", textClassName: \"text\" },\n });\n}\n\nfunction isOneOf<A>(x: A | A[] | undefined, v: A) {\n return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;\n}\n\nfunction isAdornmentRegistration(\n x: RendererRegistration,\n): x is AdornmentRendererRegistration {\n return x.type === \"adornment\";\n}\n\nfunction isDataRegistration(\n x: RendererRegistration,\n): x is DataRendererRegistration {\n return x.type === \"data\";\n}\n\nfunction isGroupRegistration(\n x: RendererRegistration,\n): x is GroupRendererRegistration {\n return x.type === \"group\";\n}\n\nfunction isLabelRegistration(\n x: RendererRegistration,\n): x is LabelRendererRegistration {\n return x.type === \"label\";\n}\n\nfunction isLayoutRegistration(\n x: RendererRegistration,\n): x is LayoutRendererRegistration {\n return x.type === \"layout\";\n}\n\nfunction isVisibilityRegistration(\n x: RendererRegistration,\n): x is VisibilityRendererRegistration {\n return x.type === \"visibility\";\n}\n\nfunction isActionRegistration(\n x: RendererRegistration,\n): x is ActionRendererRegistration {\n return x.type === \"action\";\n}\n\nfunction isDisplayRegistration(\n x: RendererRegistration,\n): x is DisplayRendererRegistration {\n return x.type === \"display\";\n}\n\nfunction isArrayRegistration(\n x: RendererRegistration,\n): x is ArrayRendererRegistration {\n return x.type === \"array\";\n}\n"],"names":["FieldType","ControlDefinitionType","DynamicPropertyType","ExpressionType","AdornmentPlacement","ControlAdornmentType","DataRenderType","SyncTextType","GroupRenderType","DisplayDataType","ValidatorType","DateComparison","isDataControlDefinition","x","type","Data","isGroupControlsDefinition","Group","isDisplayControlsDefinition","Display","isActionControlsDefinition","Action","visitControlDefinition","visitor","defaultValue","action","data","display","group","isGridRenderer","options","Grid","isFlexRenderer","Flex","isDisplayOnlyRenderer","DisplayOnly","isTextfieldRenderer","Textfield","isDataGroupRenderer","applyDefaultValues","v","fields","doneSet","_doneSet","defaultValueForFields","has","Set","add","applyValue","filter","isCompoundField","field","length","out","_extends","forEach","applyDefaultForField","defaultValueForField","parent","notElement","collection","map","required","treeChildren","children","Object","fromEntries","sf","undefined","isRequired","childValue","notNullable","elementValueForField","findScalarField","findField","findCompoundField","find","isScalarField","Compound","isDataControl","c","isGroupControl","fieldHasTag","tag","_field$tags","Boolean","tags","includes","fieldDisplayName","_field$displayName","displayName","hasOptions","o","_o$options$length","_o$options","defaultControlForField","title","_sf$tags","htmlEditor","renderOptions","HtmlEditor","Standard","findControlsForCompound","compound","definition","_definition$children$","_definition$children","compoundField","flatMap","d","findCompoundGroups","controls","cf","groups","concat","findNonDataGroups","_x$children","_x$children2","existsInGroups","lookup","itself","_c$children","childLookup","control","_control$children2","cloneChildren","_c$children2","addMissingControls","rootMapping","rootGroups","rootLookup","missingFields","_ref","_f$tags","_insertGroup","f","groupToAdd","startsWith","insertGroup","groupName","substring","push","useUpdatedRef","a","r","useRef","current","isControlReadonly","readonly","isControlDisabled","disabled","getDisplayOnlyOptions","getTypeField","context","fieldPath","withoutLast","slice","fieldList","at","typeSchemaField","isTypeField","lookupChildControl","visitControlDataArray","cb","_iterator2","_createForOfIteratorHelperLoose","_step2","done","value","visitControlData","ctx","def","processData","fieldName","fieldData","thisPath","path","lookupControl","result","cIndex","_iterator3","_control$elements","elements","_step3","elemResult","cfResult","lookupChildControlPath","jsonPath","childPath","watchControlLookup","cleanDataForSchema","removeIfDefault","typeField","typeValue","cleanableFields","_x$onlyForTypes$lengt","_x$onlyForTypes","onlyForTypes","_x$onlyForTypes2","canBeNull","childFields","Array","isArray","cv","getAllReferencedClasses","collectExtra","_c$children3","_collectExtra","childClasses","tc","clsx","styleClass","layoutClass","labelClass","getOverrideClass","jsonPathString","customIndex","i","_customIndex","findChildDefinition","base","className","rendererClass","controlClass","globalClass","oc","index","childId","_c$fields","next","trackControlChange","ControlChange","Structure","_c$elements","makeHook","runHook","state","deps","useDynamicHooks","hooks","hookEntries","entries","_ref2","toDepString","join","ref","s","useCallback","p","_ref3","hg","toString","appendElementIndex","dataContext","elementIndex","applyLengthRestrictions","min","max","minValue","maxValue","findFieldPath","fieldNames","split","foundFields","currentFields","nextField","buildSchema","stringField","makeScalarField","String","stringOptionsField","call","arguments","withScalarOptions","n","defaultScalarField","makeCompoundField","defaultCompoundField","intField","Int","boolField","Bool","other","mergeField","mergeInto","existing","mergeTypes","extras","mergeFields","name","newFields","withType","addFieldOption","reduce","af","_typeField$options","resolveSchemas","schemaMap","resolveSchemaType","resolvedFields","schemaRef","keys","dataControl","textDisplayControl","text","displayData","Text","htmlDisplayControl","html","Html","dynamicDefaultValue","expr","DefaultValue","dynamicReadonly","Readonly","dynamicVisibility","Visible","dynamicDisabled","Disabled","fieldEqExpr","DataMatch","jsonataExpr","expression","Jsonata","groupedControl","groupOptions","hideTitle","compoundControl","createAction","actionId","onClick","actionText","emptyGroupDefinition","useControlDefinitionForSchema","useMemo","applyExtensionToSchema","extension","outMap","cro","cr","applyExtensionsToSchema","extensions","useEvalVisibilityHook","useEvalExpressionHook","useEvalDynamicBoolHook","makeDynamicPropertyHook","useComputed","matchesType","hideDisplayOnly","schemaInterface","useEvalReadonlyHook","useCalculatedControl","useEvalStyleHook","property","dynamicStyle","useEvalDynamicHook","useControl","useEvalAllowedOptionsHook","dynamicAllowed","AllowedOptions","useEvalDisabledHook","useEvalDisplayHook","useEvalDefaultValueHook","schemaField","element","dynamicValue","calcDefault","_ref4","dcv","useDataExpression","fvExpr","coerce","refField","otherField","useDataMatchExpression","fv","defaultEvalHooks","useJsonataExpression","defaultUseEvalExpressionHook","makeEvalExpressionHook","_definition$dynamic","dynamic","types","_lookupChildControl","displayOptions","emptyText","isEmptyValue","jExpr","bindings","pathString","fullExpr","compiledExpr","jsonata","e","console","error","listenerRef","updateRef","_useRefState","useRefState","makeChangeTracker","l","addAfterChangesCallback","useEffect","apply","_ref$current","collect","updateSubscriptions","_temp","_finallyRethrows","bindingData","collectChanges","_coerce","Promise","resolve","evaluate","trackedValue","then","_compiledExpr$evaluat","_wasThrown","_result","reject","useEvalActionHook","useExpr","ActionData","useEvalLabelText","Label","makeDefault","_dynamicValue$runHook","useValidationHook","_definition$validator","_definition$validator2","validatorTypes","validators","hidden","groupContext","_dd$validators","_r$current","dd","useValueChangeEffect","setError","useValidator","Length","lv","useControlEffect","Validate","controlLength","len","setValue","from","useJsonataValidator","Date","useDateValidator","errorMsg","msg","dv","comparisonDate","fixedDate","parse","nowDate","UTC","getFullYear","getMonth","getDate","daysFromCurrent","selDate","notAfter","comparison","NotAfter","toDateString","cc","DefaultSchemaInterface","_proto","prototype","getOptions","textValue","DateTime","toLocaleDateString","_control$elements$len","valueLength","defaultSchemaInterface","AppendAdornmentPriority","WrapAdornmentPriority","LabelType","useControlRenderer","renderer","_options$useDataHook","_options$schemaInterf","_options$useEvalExpre","dataProps","useDataHook","defaultDataProps","lookupSchemaField","dynamicHooks","defaultValueControl","visibleControl","readonlyControl","disabledControl","allowedOptions","labelText","actionData","customStyle","Style","layoutStyle","LayoutStyle","displayControl","useValidation","Component","rootControl","_ref$parentPath","parentPath","stopTracking","useComponentTracking","_definition$adornment","_definition$adornment2","parentDataContext","_dynamicHooks","visible","visibility","showing","ex","_getControlData","getControlData","parentControl","controlDataContext","dontClearHidden","isNull","vc","cd","dontClear","parentNull","clearHidden","myOptions","_visibility$fields","newControl","childOptions","React","createElement","Fragment","adornments","renderAdornment","adornment","labelAndChildren","renderControlLayout","renderChild","k","child","_options$dataContext","ControlRenderer","key","createDataProps","formOptions","parentContext","style","actionDataControl","actionOnClick","useChildVisibility","childDef","renderedControl","renderLayout","renderVisibility","_fieldPath$slice$map","_parentControl$fields","_childControl$element","pp","extraPath","_lookupControl","found","childControl","_base","_effect","_useComponentTracking","Render","_allowedOptions$value","_definition$renderOpt","_ref4$schemaInterface","props","_objectWithoutPropertiesLoose","_excluded","lengthVal","fieldOptions","allowed","childDefinitions","id","uniqueId","toArrayProps","defaultArrayProps","_control$elements$ele","arrayControl","renderElement","noun","addAction","addElement","removeAction","removeElement","renderData","_c$groupOptions2","_labelText$value","_c$groupOptions3","_c$groupOptions","processLayout","renderGroup","label","hide","_props$actionDataCont","_props$actionDataCont2","_ref5","_labelText$value2","_props$actionOnClick","renderAction","_c$displayData","renderDisplay","_labelText$value3","_c$children$length","rendererProps","controlTitle","Control","forId","errorControl","appendMarkup","markup","layout","wrapMarkup","wrap","layoutKeyForPlacement","pos","ControlEnd","ControlStart","LabelStart","LabelEnd","appendMarkupAt","wrapMarkupAt","renderLayoutParts","_props$processLayout","_ref6","sort","b","priority","renderLabel","labelStart","labelEnd","applyArrayLengthRestrictions","_ref7","disable","_arrayControl$element","_arrayControl$element2","aa","ra","_applyLengthRestricti","removeAllowed","addAllowed","removeDisabled","addDisabled","isIconAdornment","Icon","createLayoutRenderer","render","createArrayRenderer","createDataRenderer","createGroupRenderer","createDisplayRenderer","createLabelRenderer","createVisibilityRenderer","createAdornmentRenderer","defaultTailwindTheme","groupLabelClass","requiredElement","array","removableClass","childClass","addActionClass","standardClassName","gridClassName","flexClassName","errorClass","displayOnlyClass","checkOptions","entryClass","selectOptions","createDefaultDisplayRenderer","DefaultDisplay","_display$value","iconClass","textClassName","htmlClassName","dangerouslySetInnerHTML","__html","DefaultLayout","_ref$layout","controlEnd","controlStart","ec","errorText","touched","createDefaultVisibilityRenderer","DefaultVisibility","divRef","createSelectRenderer","asArray","_props$options","SelectDataRenderer","requiredText","convert","createSelectConversion","_ref$emptyText","_ref$requiredText","_useState","useState","showEmpty","optionStringMap","onChange","target","ft","Double","_a$toString","DefaultDisplayOnly","ControlInput","_formControlProps","formControlProps","inputProps","_excluded2","createInputConversion","parseInt","parseFloat","createDefaultArrayRenderer","DefaultArrayRenderer","removableChildClass","removeActionClass","_applyArrayLengthRest","RenderElements","_","createRadioRenderer","CheckButtons","isChecked","setChecked","renderType","Radio","createCheckListRenderer","checked","setIncluded","CheckList","checkClass","RenderArrayElements","readOnly","htmlFor","elem","included","already","createCheckboxRenderer","Fcheckbox","Checkbox","createDefaultActionRenderer","createDefaultGroupRenderer","_ref2$gridStyles","gridStyles","defaultGridStyles","_ref2$defaultGridColu","defaultGridColumns","defaultFlexGap","_ref3$columns","columns","gridTemplateColumns","flexStyles","gap","flexDirection","direction","gcn","cp","DefaultBoolOptions","createDefaultDataRenderer","_options$checkOptions","_options$radioOptions","_options$checkListOpt","checkboxRenderer","checkboxOptions","selectRenderer","radioRenderer","radioOptions","checkListRenderer","checkListOptions","_optionRenderer$boole","optionRenderer","booleanOptions","inputClass","renderers","fieldType","renderArray","Any","isBool","Dropdown","placeholder","createDefaultAdornmentRenderer","rl","_adornment$placement","placement","createDefaultLayoutRenderer","meta","scrollElement","createDefaultLabelRenderer","_requiredElement$labe","labelContainer","controlLabelClass","createDefaultRenderers","createFormRenderer","customRenderers","defaultRenderers","_customRenderers$find","createClassStyledRenderers","dataRegistrations","isDataRegistration","groupRegistrations","isGroupRegistration","adornmentRegistrations","isAdornmentRegistration","displayRegistrations","isDisplayRegistration","labelRenderers","isLabelRegistration","arrayRenderers","isArrayRegistration","actionRenderers","isActionRegistration","layoutRenderers","isLayoutRegistration","visibilityRenderer","isVisibilityRegistration","formRenderers","_layoutRenderers$find","match","_adornmentRegistratio","isOneOf","adornmentType","_arrayRenderers$","_labelRenderers$find","labelType","_dataRegistrations$fi","_x$collection","_field$collection","_x$options","schemaType","_groupRegistrations$f","_actionRenderers$find","actionType","_displayRegistrations"],"mappings":"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"}
|