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

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.
@@ -1,3 +1,3 @@
1
1
  {
2
- "nonCachedDurationMs": 3702.910748000024
2
+ "nonCachedDurationMs": 3247.8071099999943
3
3
  }
package/lib/index.js CHANGED
@@ -916,7 +916,7 @@ var _excluded = ["control", "convert"],
916
916
  _excluded2 = ["errorText", "value", "onChange"],
917
917
  _excluded3 = ["state", "options", "className", "convert", "required", "emptyText", "requiredText"];
918
918
  function createFormRenderer(customRenderers, defaultRenderers) {
919
- var _customRenderers$find, _customRenderers$find2;
919
+ var _customRenderers$find, _customRenderers$find2, _customRenderers$find3;
920
920
  if (customRenderers === void 0) {
921
921
  customRenderers = [];
922
922
  }
@@ -926,7 +926,8 @@ function createFormRenderer(customRenderers, defaultRenderers) {
926
926
  var dataRegistrations = customRenderers.filter(isDataRegistration);
927
927
  var adornmentRegistrations = customRenderers.filter(isAdornmentRegistration);
928
928
  var labelRenderer = (_customRenderers$find = customRenderers.find(isLabelRegistration)) != null ? _customRenderers$find : defaultRenderers.label;
929
- var renderVisibility = ((_customRenderers$find2 = customRenderers.find(isVisibilityRegistration)) != null ? _customRenderers$find2 : defaultRenderers.visibility).render;
929
+ var arrayRenderer = (_customRenderers$find2 = customRenderers.find(isArrayRegistration)) != null ? _customRenderers$find2 : defaultRenderers.array;
930
+ var renderVisibility = ((_customRenderers$find3 = customRenderers.find(isVisibilityRegistration)) != null ? _customRenderers$find3 : defaultRenderers.visibility).render;
930
931
  var formRenderers = {
931
932
  renderAction: renderAction,
932
933
  renderData: _renderData,
@@ -945,7 +946,7 @@ function createFormRenderer(customRenderers, defaultRenderers) {
945
946
  return renderer.render(props);
946
947
  }
947
948
  function renderArray(props) {
948
- return defaultRenderers.array.render(props, formRenderers);
949
+ return arrayRenderer.render(props, formRenderers);
949
950
  }
950
951
  function renderLabel(props, elem) {
951
952
  return labelRenderer.render(props, elem, formRenderers);
@@ -1032,8 +1033,8 @@ function createFormRenderer(customRenderers, defaultRenderers) {
1032
1033
  }
1033
1034
  }
1034
1035
  function renderAction(props, adornments) {
1035
- var _customRenderers$find3;
1036
- var renderer = (_customRenderers$find3 = customRenderers.find(isActionRegistration)) != null ? _customRenderers$find3 : defaultRenderers.action;
1036
+ var _customRenderers$find4;
1037
+ var renderer = (_customRenderers$find4 = customRenderers.find(isActionRegistration)) != null ? _customRenderers$find4 : defaultRenderers.action;
1037
1038
  var _withAdornments3 = withAdornments(props.definition, adornments),
1038
1039
  wrapElem = _withAdornments3[2];
1039
1040
  return wrapElem(renderer.render(props, formRenderers));
@@ -1360,12 +1361,21 @@ function isLabelRegistration(x) {
1360
1361
  function isActionRegistration(x) {
1361
1362
  return x.type === "action";
1362
1363
  }
1364
+ function isArrayRegistration(x) {
1365
+ return x.type === "array";
1366
+ }
1363
1367
  function isVisibilityRegistration(x) {
1364
1368
  return x.type === "visibility";
1365
1369
  }
1366
1370
  function isOneOf(x, v) {
1367
1371
  return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;
1368
1372
  }
1373
+ function createArrayRenderer(render, options) {
1374
+ return _extends({
1375
+ type: "array",
1376
+ render: render
1377
+ }, options);
1378
+ }
1369
1379
  function createDataRenderer(render, options) {
1370
1380
  return _extends({
1371
1381
  type: "data",
@@ -1548,6 +1558,7 @@ exports.controlForField = controlForField;
1548
1558
  exports.controlTitle = controlTitle;
1549
1559
  exports.createAction = createAction;
1550
1560
  exports.createAdornmentRenderer = createAdornmentRenderer;
1561
+ exports.createArrayRenderer = createArrayRenderer;
1551
1562
  exports.createDataRenderer = createDataRenderer;
1552
1563
  exports.createDataRendererLabelled = createDataRendererLabelled;
1553
1564
  exports.createDefaultActionRenderer = createDefaultActionRenderer;
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/types.ts","../src/schemaBuilder.ts","../src/util.ts","../src/controlRender.tsx","../src/hooks.tsx","../src/renderers.tsx","../src/tailwind.tsx"],"sourcesContent":["export interface SchemaField {\n type: string;\n field: string;\n displayName?: string | null;\n tags?: string[] | null;\n system?: boolean | null;\n collection?: boolean | null;\n onlyForTypes?: string[] | null;\n required?: boolean | null;\n defaultValue?: any;\n isTypeField?: boolean | null;\n searchable?: boolean | null;\n options?: FieldOption[] | null;\n validators?: SchemaValidator[] | null;\n}\n\nexport enum FieldType {\n String = \"String\",\n Bool = \"Bool\",\n Int = \"Int\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n Double = \"Double\",\n EntityRef = \"EntityRef\",\n Compound = \"Compound\",\n AutoId = \"AutoId\",\n Image = \"Image\",\n Any = \"Any\",\n}\n\nexport interface EntityRefField extends SchemaField {\n type: FieldType.EntityRef;\n entityRefType: string;\n parentField: string;\n}\n\nexport interface FieldOption {\n name: string;\n value: any;\n}\n\nexport interface CompoundField extends SchemaField {\n type: FieldType.Compound;\n children: SchemaField[];\n treeChildren?: boolean;\n}\n\nexport type AnyControlDefinition =\n | DataControlDefinition\n | GroupedControlsDefinition\n | ActionControlDefinition\n | DisplayControlDefinition;\n\nexport interface ControlDefinition {\n type: string;\n title?: string | null;\n dynamic?: DynamicProperty[] | null;\n adornments?: ControlAdornment[] | null;\n}\n\nexport enum ControlDefinitionType {\n Data = \"Data\",\n Group = \"Group\",\n Display = \"Display\",\n Action = \"Action\",\n}\n\nexport interface DynamicProperty {\n type: string;\n expr: EntityExpression;\n}\n\nexport enum DynamicPropertyType {\n Visible = \"Visible\",\n DefaultValue = \"DefaultValue\",\n}\n\nexport interface EntityExpression {\n type: string;\n}\n\nexport enum ExpressionType {\n Jsonata = \"Jsonata\",\n FieldValue = \"FieldValue\",\n UserMatch = \"UserMatch\",\n}\n\nexport interface JsonataExpression extends EntityExpression {\n type: ExpressionType.Jsonata;\n expression: string;\n}\n\nexport interface FieldValueExpression extends EntityExpression {\n type: ExpressionType.FieldValue;\n field: string;\n value: any;\n}\n\nexport interface UserMatchExpression extends EntityExpression {\n type: ExpressionType.UserMatch;\n userMatch: string;\n}\n\nexport interface ControlAdornment {\n type: string;\n}\n\nexport enum AdornmentPlacement {\n ControlStart = \"ControlStart\",\n ControlEnd = \"ControlEnd\",\n LabelStart = \"LabelStart\",\n LabelEnd = \"LabelEnd\",\n}\n\nexport enum ControlAdornmentType {\n Tooltip = \"Tooltip\",\n Accordion = \"Accordion\",\n HelpText = \"HelpText\",\n}\n\nexport interface TooltipAdornment extends ControlAdornment {\n type: ControlAdornmentType.Tooltip;\n tooltip: string;\n}\n\nexport interface AccordionAdornment extends ControlAdornment {\n type: ControlAdornmentType.Accordion;\n title: string;\n defaultExpanded: boolean;\n}\n\nexport interface HelpTextAdornment extends ControlAdornment {\n type: ControlAdornmentType.HelpText;\n helpText: string;\n placement: AdornmentPlacement;\n}\n\nexport interface DataControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Data;\n field: string;\n required?: boolean | null;\n renderOptions?: RenderOptions | null;\n defaultValue?: any;\n readonly?: boolean | null;\n validators?: SchemaValidator[] | null;\n}\n\nexport interface RenderOptions {\n type: string;\n}\n\nexport enum DataRenderType {\n Standard = \"Standard\",\n Radio = \"Radio\",\n HtmlEditor = \"HtmlEditor\",\n IconList = \"IconList\",\n CheckList = \"CheckList\",\n UserSelection = \"UserSelection\",\n Synchronised = \"Synchronised\",\n IconSelector = \"IconSelector\",\n DateTime = \"DateTime\",\n Checkbox = \"Checkbox\",\n Dropdown = \"Dropdown\",\n}\n\nexport interface RadioButtonRenderOptions extends RenderOptions {\n type: DataRenderType.Radio;\n}\n\nexport interface StandardRenderer extends RenderOptions {\n type: DataRenderType.Standard;\n}\n\nexport interface HtmlEditorRenderOptions extends RenderOptions {\n type: DataRenderType.HtmlEditor;\n allowImages: boolean;\n}\n\nexport interface DateTimeRenderOptions extends RenderOptions {\n type: DataRenderType.DateTime;\n format?: string | null;\n}\n\nexport interface IconListRenderOptions extends RenderOptions {\n type: DataRenderType.IconList;\n iconMappings: IconMapping[];\n}\n\nexport interface IconMapping {\n value: string;\n materialIcon?: string | null;\n}\n\nexport interface CheckListRenderOptions extends RenderOptions {\n type: DataRenderType.CheckList;\n}\n\nexport interface SynchronisedRenderOptions extends RenderOptions {\n type: DataRenderType.Synchronised;\n fieldToSync: string;\n syncType: SyncTextType;\n}\n\nexport enum SyncTextType {\n Camel = \"Camel\",\n Snake = \"Snake\",\n Pascal = \"Pascal\",\n}\n\nexport interface UserSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.UserSelection;\n noGroups: boolean;\n noUsers: boolean;\n}\n\nexport interface IconSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.IconSelector;\n}\n\nexport interface GroupedControlsDefinition extends ControlDefinition {\n type: ControlDefinitionType.Group;\n children: ControlDefinition[];\n compoundField?: string | null;\n groupOptions: GroupRenderOptions;\n}\n\nexport interface GroupRenderOptions {\n type: string;\n hideTitle?: boolean | null;\n}\n\nexport enum GroupRenderType {\n Standard = \"Standard\",\n Grid = \"Grid\",\n GroupElement = \"GroupElement\",\n}\n\nexport interface StandardGroupRenderer extends GroupRenderOptions {\n type: GroupRenderType.Standard;\n}\n\nexport interface GroupElementRenderer extends GroupRenderOptions {\n type: GroupRenderType.GroupElement;\n value: any;\n}\n\nexport interface GridRenderer extends GroupRenderOptions {\n type: GroupRenderType.Grid;\n columns?: number | null;\n}\n\nexport interface DisplayControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Display;\n displayData: DisplayData;\n}\n\nexport interface DisplayData {\n type: string;\n}\n\nexport enum DisplayDataType {\n Text = \"Text\",\n Html = \"Html\",\n}\n\nexport interface TextDisplay extends DisplayData {\n type: DisplayDataType.Text;\n text: string;\n}\n\nexport interface HtmlDisplay extends DisplayData {\n type: DisplayDataType.Html;\n html: string;\n}\n\nexport interface ActionControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Action;\n actionId: string;\n}\n\nexport enum ValidatorType {\n Jsonata = \"Jsonata\",\n Date = \"Date\",\n}\nexport interface SchemaValidator {\n type: string;\n}\n\nexport interface JsonataValidator extends SchemaValidator {\n type: ValidatorType.Jsonata;\n expression: string;\n}\n\nexport enum DateComparison {\n NotBefore = \"NotBefore\",\n NotAfter = \"NotAfter\",\n}\n\nexport interface DateValidator extends SchemaValidator {\n type: ValidatorType.Date;\n comparison: DateComparison;\n fixedDate?: string | null;\n daysFromCurrent?: number | null;\n}\n\nexport function isDataControlDefinition(\n x: ControlDefinition,\n): x is DataControlDefinition {\n return x.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControlsDefinition(\n x: ControlDefinition,\n): x is GroupedControlsDefinition {\n return x.type === ControlDefinitionType.Group;\n}\n\nexport function isDisplayControlsDefinition(\n x: ControlDefinition,\n): x is DisplayControlDefinition {\n return x.type === ControlDefinitionType.Display;\n}\n\nexport function isActionControlsDefinition(\n x: ControlDefinition,\n): x is ActionControlDefinition {\n return x.type === ControlDefinitionType.Action;\n}\n\nexport interface ControlVisitor<A> {\n data(d: DataControlDefinition): A;\n group(d: GroupedControlsDefinition): A;\n display(d: DisplayControlDefinition): A;\n action(d: ActionControlDefinition): A;\n}\n\nexport function visitControlDefinition<A>(\n x: ControlDefinition,\n visitor: ControlVisitor<A>,\n defaultValue: (c: ControlDefinition) => A,\n): A {\n switch (x.type) {\n case ControlDefinitionType.Action:\n return visitor.action(x as ActionControlDefinition);\n case ControlDefinitionType.Data:\n return visitor.data(x as DataControlDefinition);\n case ControlDefinitionType.Display:\n return visitor.display(x as DisplayControlDefinition);\n case ControlDefinitionType.Group:\n return visitor.group(x as GroupedControlsDefinition);\n default:\n return defaultValue(x);\n }\n}\n\nexport function dataControl(\n field: string,\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return { type: ControlDefinitionType.Data, field, ...options };\n}\n\nexport function fieldValueExpr(\n field: string,\n value: any,\n): FieldValueExpression {\n return { type: ExpressionType.FieldValue, field, value };\n}\n\nexport function visibility(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Visible, expr };\n}\n\nexport function isGridRenderer(\n options: GroupRenderOptions,\n): options is GridRenderer {\n return options.type === GroupRenderType.Grid;\n}\n","import { CompoundField, FieldOption, FieldType, SchemaField } from \"./types\";\n\ntype AllowedSchema<T> = T extends string\n ? SchemaField & {\n type: FieldType.String | FieldType.Date | FieldType.DateTime;\n }\n : T extends number\n ? SchemaField & {\n type: FieldType.Int | FieldType.Double;\n }\n : T extends boolean\n ? SchemaField & {\n type: FieldType.Bool;\n }\n : T extends Array<infer E>\n ? AllowedSchema<E> & {\n collection: true;\n }\n : T extends { [key: string]: any }\n ? CompoundField & {\n type: FieldType.Compound;\n }\n : SchemaField & { type: FieldType.Any };\n\ntype AllowedField<T, K> = (\n name: string\n) => (SchemaField & { type: K }) | AllowedSchema<T>;\n\nexport function buildSchema<T, Custom = \"\">(def: {\n [K in keyof T]-?: AllowedField<T[K], Custom>;\n}): SchemaField[] {\n return Object.entries(def).map((x) =>\n (x[1] as (n: string) => SchemaField)(x[0])\n );\n}\n\nexport function stringField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>\n) {\n return makeScalarField({\n type: FieldType.String as const,\n displayName,\n ...options,\n });\n}\n\nexport function stringOptionsField(\n displayName: string,\n ...options: FieldOption[]\n) {\n return makeScalarField({\n type: FieldType.String as const,\n displayName,\n options,\n });\n}\n\nexport function withScalarOptions<S extends SchemaField>(\n options: Partial<SchemaField>,\n v: (name: string) => S\n): (name: string) => S {\n return (n) => ({ ...v(n), ...options });\n}\n\nexport function makeScalarField<S extends Partial<SchemaField>>(\n options: S\n): (name: string) => SchemaField & S {\n return (n) => ({ ...defaultScalarField(n, n), ...options });\n}\n\nexport function makeCompoundField<S extends Partial<CompoundField>>(\n options: S\n): (name: string) => CompoundField & {\n type: FieldType.Compound;\n} & S {\n return (n) => ({ ...defaultCompoundField(n, n, false), ...options });\n}\n\nexport function intField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>\n) {\n return makeScalarField({\n type: FieldType.Int as const,\n displayName,\n ...options,\n });\n}\n\nexport function boolField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>\n) {\n return makeScalarField({\n type: FieldType.Bool as const,\n displayName,\n ...options,\n });\n}\n\nexport function compoundField<\n Other extends Partial<Omit<CompoundField, \"type\" | \"schemaType\">>\n>(\n displayName: string,\n fields: SchemaField[],\n other: Other\n): (name: string) => CompoundField & {\n collection: Other[\"collection\"];\n} {\n return (field) =>\n ({\n ...defaultCompoundField(field, displayName, false),\n ...other,\n children: fields,\n } as any);\n}\n\nexport function defaultScalarField(\n field: string,\n displayName: string\n): Omit<SchemaField, \"type\"> & {\n type: FieldType.String;\n} {\n return {\n field,\n displayName,\n type: FieldType.String,\n };\n}\n\nexport function defaultCompoundField(\n field: string,\n displayName: string,\n collection: boolean\n): CompoundField & {\n type: FieldType.Compound;\n} {\n return {\n tags: [],\n field,\n displayName,\n type: FieldType.Compound,\n collection,\n system: false,\n treeChildren: false,\n children: [],\n onlyForTypes: [],\n required: true,\n };\n}\n","import {\n CompoundField,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n FieldOption,\n FieldType,\n GridRenderer,\n GroupedControlsDefinition,\n GroupRenderType,\n SchemaField,\n} from \"./types\";\n\nexport function applyDefaultValues(\n v: { [k: string]: any } | undefined,\n fields: SchemaField[],\n): any {\n if (!v) return defaultValueForFields(fields);\n const applyValue = fields.filter(\n (x) => isCompoundField(x) || !(x.field in v),\n );\n if (!applyValue.length) return v;\n const out = { ...v };\n applyValue.forEach((x) => {\n out[x.field] =\n x.field in v\n ? applyDefaultForField(v[x.field], x, fields)\n : defaultValueForField(x);\n });\n return out;\n}\n\nexport function applyDefaultForField(\n v: any,\n field: SchemaField,\n parent: SchemaField[],\n notElement?: boolean,\n): any {\n if (field.collection && !notElement) {\n return ((v as any[]) ?? []).map((x) =>\n applyDefaultForField(x, field, parent, true),\n );\n }\n if (isCompoundField(field)) {\n if (!v && !field.required) return v;\n return applyDefaultValues(v, field.treeChildren ? parent : field.children);\n }\n return defaultValueForField(field);\n}\n\nexport function defaultValueForFields(fields: SchemaField[]): any {\n return Object.fromEntries(\n fields.map((x) => [x.field, defaultValueForField(x)]),\n );\n}\n\nexport function defaultValueForField(sf: SchemaField): any {\n if (isCompoundField(sf)) {\n return sf.required\n ? sf.collection\n ? []\n : defaultValueForFields(sf.children)\n : undefined;\n }\n if (sf.collection) return [];\n return sf.defaultValue;\n}\n\nexport function elementValueForField(sf: SchemaField): any {\n if (isCompoundField(sf)) {\n return defaultValueForFields(sf.children);\n }\n return sf.defaultValue;\n}\n\nexport function findScalarField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return findField(fields, field);\n}\n\nexport function findCompoundField(\n fields: SchemaField[],\n field: string,\n): CompoundField | undefined {\n return findField(fields, field) as CompoundField | undefined;\n}\n\nexport function findField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return fields.find((x) => x.field === field);\n}\n\nexport function isScalarField(sf: SchemaField): sf is SchemaField {\n return !isCompoundField(sf);\n}\n\nexport function isCompoundField(sf: SchemaField): sf is CompoundField {\n return sf.type === FieldType.Compound;\n}\n\nexport function isDataControl(\n c: ControlDefinition,\n): c is DataControlDefinition {\n return c.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControl(\n c: ControlDefinition,\n): c is GroupedControlsDefinition {\n return c.type === ControlDefinitionType.Group;\n}\n\nexport function fieldHasTag(field: SchemaField, tag: string) {\n return Boolean(field.tags?.includes(tag));\n}\n\nexport function fieldDisplayName(field: SchemaField) {\n return field.displayName ?? field.field;\n}\n\nexport function hasOptions(o: { options: FieldOption[] | undefined | null }) {\n return (o.options?.length ?? 0) > 0;\n}\n\nexport function defaultControlForField(\n sf: SchemaField,\n): DataControlDefinition | GroupedControlsDefinition {\n if (isCompoundField(sf)) {\n return {\n type: ControlDefinitionType.Group,\n title: sf.displayName,\n compoundField: sf.field,\n groupOptions: {\n type: GroupRenderType.Grid,\n hideTitle: false,\n } as GridRenderer,\n children: sf.children.map(defaultControlForField),\n } satisfies GroupedControlsDefinition;\n } else if (isScalarField(sf)) {\n const htmlEditor = sf.tags?.includes(\"_HtmlEditor\");\n return {\n type: ControlDefinitionType.Data,\n title: sf.displayName,\n field: sf.field,\n required: sf.required,\n renderOptions: {\n type: htmlEditor ? DataRenderType.HtmlEditor : DataRenderType.Standard,\n },\n } satisfies DataControlDefinition;\n }\n throw \"Unknown schema field\";\n}\nfunction findReferencedControl(\n field: string,\n control: ControlDefinition,\n): ControlDefinition | undefined {\n if (isDataControl(control) && field === control.field) return control;\n if (isGroupControl(control)) {\n if (control.compoundField)\n return field === control.compoundField ? control : undefined;\n return findReferencedControlInArray(field, control.children);\n }\n return undefined;\n}\n\nfunction findReferencedControlInArray(\n field: string,\n controls: ControlDefinition[],\n): ControlDefinition | undefined {\n for (const c of controls) {\n const ref = findReferencedControl(field, c);\n if (ref) return ref;\n }\n return undefined;\n}\n\nexport function addMissingControls(\n fields: SchemaField[],\n controls: ControlDefinition[],\n): ControlDefinition[] {\n const changes: {\n field: SchemaField;\n existing: ControlDefinition | undefined;\n }[] = fields.flatMap((x) => {\n if (fieldHasTag(x, \"_NoControl\")) return [];\n const existing = findReferencedControlInArray(x.field, controls);\n if (!existing || isCompoundField(x)) return { field: x, existing };\n return [];\n });\n const changedCompounds = controls.map((x) => {\n const ex = changes.find((c) => c.existing === x);\n if (!ex) return x;\n const cf = x as GroupedControlsDefinition;\n return {\n ...cf,\n children: addMissingControls(\n (ex.field as CompoundField).children,\n cf.children,\n ),\n };\n });\n return changedCompounds.concat(\n changes\n .filter((x) => !x.existing)\n .map((x) => defaultControlForField(x.field)),\n );\n}\n","import {\n ActionControlDefinition,\n AdornmentPlacement,\n CompoundField,\n ControlAdornment,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DisplayControlDefinition,\n EntityExpression,\n FieldOption,\n GroupedControlsDefinition,\n RenderOptions,\n SchemaField,\n SchemaValidator,\n visitControlDefinition,\n} from \"./types\";\nimport React, {Context, createContext, Key, ReactElement, ReactNode, useContext,} from \"react\";\nimport {Control, newControl} from \"@react-typed-forms/core\";\nimport {fieldDisplayName, findCompoundField, findField, findScalarField, isDataControl, isGroupControl} from \"./util\";\n\nexport interface SchemaHooks {\n useExpression(\n expr: EntityExpression,\n formState: FormEditState,\n ): Control<any | undefined>;\n useValidators(\n formState: FormEditState,\n isVisible: boolean,\n control: Control<any>,\n required: boolean,\n validations?: SchemaValidator[] | null,\n ): void;\n}\n\nexport interface FormEditHooks {\n useDataProperties(\n formState: FormEditState,\n definition: DataControlDefinition,\n field: SchemaField,\n renderers: FormRenderer,\n ): DataRendererProps;\n useGroupProperties(\n formState: FormEditState,\n definition: GroupedControlsDefinition,\n currentHooks: FormEditHooks,\n renderers: FormRenderer,\n ): GroupRendererProps;\n useDisplayProperties(\n formState: FormEditState,\n definition: DisplayControlDefinition,\n ): DisplayRendererProps;\n useActionProperties(\n formState: FormEditState,\n definition: ActionControlDefinition,\n ): ActionRendererProps;\n schemaHooks: SchemaHooks;\n}\n\nexport interface DataRendererProps {\n definition: DataControlDefinition;\n renderOptions: RenderOptions;\n visible: Visibility;\n control: Control<any>;\n field: SchemaField;\n array?: ArrayRendererProps;\n readonly: boolean;\n defaultValue: any;\n required: boolean;\n options: FieldOption[] | undefined | null;\n customRender?: (props: DataRendererProps) => ReactElement;\n formState: FormEditState;\n}\n\nexport interface GroupRendererProps {\n definition: Omit<GroupedControlsDefinition, \"children\">;\n visible: Visibility;\n field?: CompoundField;\n array?: ArrayRendererProps;\n hideTitle: boolean;\n hooks: FormEditHooks;\n childCount: number;\n renderChild: (child: number) => ReactElement;\n}\n\nexport interface ControlData {\n [field: string]: any;\n}\n\nexport interface FormEditState {\n fields: SchemaField[];\n data: Control<ControlData>;\n readonly?: boolean;\n invisible?: boolean;\n}\n\nexport interface ArrayRendererProps {\n definition: DataControlDefinition | GroupedControlsDefinition;\n control: Control<any[]>;\n field: SchemaField;\n addAction?: ActionRendererProps;\n removeAction?: (childCount: number) => ActionRendererProps;\n childCount: number;\n renderChild: (childCount: number) => ReactElement;\n childKey: (childCount: number) => Key;\n}\n\nexport interface AdornmentProps {\n key: Key;\n definition: ControlAdornment;\n}\n\nexport interface AdornmentRenderer {\n wrap?: (children: ReactElement) => ReactElement;\n child?: [AdornmentPlacement, ReactNode];\n}\n\nexport interface FormRenderer {\n renderData: (props: DataRendererProps) => ReactElement;\n renderGroup: (props: GroupRendererProps) => ReactElement;\n renderDisplay: (props: DisplayRendererProps) => ReactElement;\n renderAction: (props: ActionRendererProps) => ReactElement;\n renderArray: (props: ArrayRendererProps) => ReactElement;\n renderLabel: (props: LabelRendererProps, elem: ReactElement) => ReactElement;\n renderVisibility: (visible: Visibility, elem: ReactElement) => ReactElement;\n renderAdornment: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nlet _FormRendererComponentsContext: Context<FormRenderer | undefined> | null =\n null;\n\nfunction FormRendererComponentsContext() {\n if (!_FormRendererComponentsContext) {\n _FormRendererComponentsContext = createContext<FormRenderer | undefined>(\n undefined,\n );\n }\n return _FormRendererComponentsContext;\n}\n\nexport function FormRendererProvider({\n value,\n children,\n}: {\n value: FormRenderer;\n children: ReactNode;\n}) {\n const { Provider } = FormRendererComponentsContext();\n return <Provider value={value} children={children} />;\n}\n\nexport function useFormRendererComponents() {\n const c = useContext(FormRendererComponentsContext());\n if (!c) {\n throw \"Need to use FormRendererComponentContext.Provider\";\n }\n return c;\n}\n\nexport interface Visibility {\n value: boolean;\n canChange: boolean;\n}\nexport interface LabelRendererProps {\n visible: Visibility;\n title?: ReactNode;\n forId?: string;\n required: boolean;\n control?: Control<any>;\n group?: boolean;\n renderAdornment: (placement: AdornmentPlacement) => ReactElement;\n}\n\nexport interface DisplayRendererProps {\n definition: DisplayControlDefinition;\n visible: Visibility;\n}\n\nexport interface ActionRendererProps {\n definition: ActionControlDefinition;\n visible: Visibility;\n onClick: () => void;\n}\n\nexport type AnySchemaFields =\n | SchemaField\n | (Omit<CompoundField, \"children\"> & { children: AnySchemaFields[] });\n\nexport function controlTitle(\n title: string | undefined | null,\n field: SchemaField,\n) {\n return title ? title : fieldDisplayName(field);\n}\n\nexport function renderControl<S extends ControlDefinition>(\n definition: S,\n formState: FormEditState,\n hooks: FormEditHooks,\n key: Key,\n): ReactElement {\n const { fields } = formState;\n return visitControlDefinition(\n definition,\n {\n data: (def) => {\n const fieldData = findScalarField(fields, def.field);\n if (!fieldData)\n return <h1 key={key}>No schema field for: {def.field}</h1>;\n return (\n <DataRenderer\n key={key}\n formState={formState}\n hooks={hooks}\n controlDef={def}\n fieldData={fieldData}\n />\n );\n },\n group: (d: GroupedControlsDefinition) => (\n <GroupRenderer\n key={key}\n hooks={hooks}\n groupDef={d}\n formState={formState}\n />\n ),\n action: (d: ActionControlDefinition) => (\n <ActionRenderer\n key={key}\n hooks={hooks}\n formState={formState}\n actionDef={d}\n />\n ),\n display: (d: DisplayControlDefinition) => (\n <DisplayRenderer\n key={key}\n hooks={hooks}\n formState={formState}\n displayDef={d}\n />\n ),\n },\n () => <h1>Unknown control: {(definition as any).type}</h1>,\n );\n}\n\n/** @trackControls */\nfunction DataRenderer({\n hooks,\n formState,\n controlDef,\n fieldData,\n}: {\n hooks: FormEditHooks;\n controlDef: DataControlDefinition;\n formState: FormEditState;\n fieldData: SchemaField;\n}) {\n const renderer = useFormRendererComponents();\n const props = hooks.useDataProperties(\n formState,\n controlDef,\n fieldData,\n renderer,\n );\n return (props.customRender ?? renderer.renderData)(props);\n}\n\n/** @trackControls */\nfunction ActionRenderer({\n hooks,\n formState,\n actionDef,\n}: {\n hooks: FormEditHooks;\n actionDef: ActionControlDefinition;\n formState: FormEditState;\n}) {\n const { renderAction } = useFormRendererComponents();\n const actionControlProperties = hooks.useActionProperties(\n formState,\n actionDef,\n );\n return renderAction(actionControlProperties);\n}\n\n/** @trackControls */\nfunction GroupRenderer({\n hooks,\n formState,\n groupDef,\n}: {\n hooks: FormEditHooks;\n groupDef: GroupedControlsDefinition;\n formState: FormEditState;\n}) {\n const renderers = useFormRendererComponents();\n const groupProps = hooks.useGroupProperties(\n formState,\n groupDef,\n hooks,\n renderers,\n );\n return renderers.renderGroup(groupProps);\n}\n\n/** @trackControls */\nfunction DisplayRenderer({\n hooks,\n formState,\n displayDef,\n}: {\n hooks: FormEditHooks;\n displayDef: DisplayControlDefinition;\n formState: FormEditState;\n}) {\n const { renderDisplay } = useFormRendererComponents();\n const displayProps = hooks.useDisplayProperties(formState, displayDef);\n return renderDisplay(displayProps);\n}\n\nexport function controlForField(\n field: string,\n formState: FormEditState,\n): Control<any> {\n const refField = findField(formState.fields, field);\n return (\n (refField && formState.data.fields[refField.field]) ?? newControl(undefined)\n );\n}\n\nexport function fieldForControl(c: ControlDefinition) {\n return isDataControl(c)\n ? c.field\n : isGroupControl(c)\n ? c.compoundField\n : undefined;\n}\n\nexport const AlwaysVisible: Visibility = { value: true, canChange: false };\n\nexport function createAction(\n label: string,\n onClick: () => void,\n actionId?: string,\n): ActionRendererProps {\n return {\n definition: {\n type: ControlDefinitionType.Action,\n actionId: actionId ?? label,\n title: label,\n },\n visible: AlwaysVisible,\n onClick,\n };\n}\n\nexport function visitControlData<S extends ControlDefinition, A>(\n definition: S,\n { fields, data }: FormEditState,\n cb: (\n definition: DataControlDefinition,\n control: Control<any>,\n ) => A | undefined,\n): A | undefined {\n return visitControlDefinition<A | undefined>(\n definition,\n {\n data(def: DataControlDefinition) {\n const fieldData = findScalarField(fields, def.field);\n if (!fieldData) return undefined;\n return cb(def, data.fields[fieldData.field]);\n },\n group(d: GroupedControlsDefinition) {\n if (d.compoundField) {\n const compound = findCompoundField(fields, d.compoundField);\n if (!compound) return;\n fields = compound.children;\n data = data.fields[compound.field];\n }\n const childState = { fields, data };\n for (let c of d.children) {\n const res = visitControlData(c, childState, cb);\n if (res !== undefined) return res;\n }\n return undefined;\n },\n action(d: ActionControlDefinition) {\n return undefined;\n },\n display(d: DisplayControlDefinition) {\n return undefined;\n },\n },\n () => undefined,\n );\n}\n","import {\n ActionControlDefinition,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n DateComparison,\n DateValidator,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n FieldOption,\n FieldValueExpression,\n GroupedControlsDefinition,\n JsonataExpression,\n SchemaField,\n SchemaValidator,\n ValidatorType,\n} from \"./types\";\nimport {\n ActionRendererProps,\n ArrayRendererProps,\n controlForField,\n controlTitle,\n DataRendererProps,\n fieldForControl,\n FormEditHooks,\n FormEditState,\n GroupRendererProps,\n renderControl,\n SchemaHooks,\n Visibility,\n} from \"./controlRender\";\nimport React, { Fragment, ReactElement, useEffect, useMemo } from \"react\";\nimport {\n addElement,\n Control,\n ControlChange,\n newControl,\n removeElement,\n useComputed,\n useControl,\n useControlEffect,\n useValidator,\n} from \"@react-typed-forms/core\";\nimport jsonata from \"jsonata\";\nimport {\n addMissingControls,\n elementValueForField,\n findCompoundField,\n findField,\n isGroupControl,\n isScalarField,\n} from \"./util\";\n\nexport function useDefaultValue(\n definition: DataControlDefinition,\n field: SchemaField,\n formState: FormEditState,\n hooks: SchemaHooks,\n) {\n const valueExpression = definition.dynamic?.find(\n (x) => x.type === DynamicPropertyType.DefaultValue,\n );\n if (valueExpression) {\n return hooks.useExpression(valueExpression.expr, formState).value;\n }\n return field.defaultValue;\n}\n\nexport function useIsControlVisible(\n definition: ControlDefinition,\n formState: FormEditState,\n hooks: SchemaHooks,\n): Visibility {\n const visibleExpression = definition.dynamic?.find(\n (x) => x.type === DynamicPropertyType.Visible,\n );\n if (visibleExpression && visibleExpression.expr) {\n const exprValue = hooks.useExpression(\n visibleExpression.expr,\n formState,\n ).value;\n return {\n value: Boolean(exprValue),\n canChange: true,\n };\n }\n const schemaFields = formState.fields;\n\n const { typeControl, compoundField } = useMemo(() => {\n const typeField = schemaFields.find(\n (x) => isScalarField(x) && x.isTypeField,\n ) as SchemaField | undefined;\n\n const typeControl = ((typeField &&\n formState.data.fields?.[typeField.field]) ??\n newControl(undefined)) as Control<string | undefined>;\n const compoundField =\n isGroupControl(definition) && definition.compoundField\n ? formState.data.fields[definition.compoundField]\n : undefined;\n return { typeControl, compoundField };\n }, [schemaFields, formState.data]);\n\n const fieldName = fieldForControl(definition);\n const onlyForTypes = (\n fieldName ? findField(schemaFields, fieldName) : undefined\n )?.onlyForTypes;\n const canChange = Boolean(compoundField || (onlyForTypes?.length ?? 0) > 0);\n const value =\n (!compoundField || compoundField.value != null) &&\n (!onlyForTypes ||\n onlyForTypes.length === 0 ||\n Boolean(typeControl.value && onlyForTypes.includes(typeControl.value)));\n return { value, canChange };\n}\n\nexport function getDefaultScalarControlProperties(\n definition: DataControlDefinition,\n field: SchemaField,\n visible: Visibility,\n defaultValue: any,\n control: Control<any>,\n formState: FormEditState,\n): DataRendererProps {\n return {\n definition,\n field,\n defaultValue,\n options: getOptionsForScalarField(field),\n renderOptions: definition.renderOptions ?? {\n type: DataRenderType.Standard,\n },\n required: definition.required ?? false,\n visible,\n readonly: formState.readonly ?? definition.readonly ?? false,\n control,\n formState,\n };\n}\n\nexport function getOptionsForScalarField(\n field: SchemaField,\n): FieldOption[] | undefined | null {\n const opts = field.options;\n if (opts?.length ?? 0 > 0) {\n return opts;\n }\n return undefined;\n}\n\nexport function createDefaultSchemaHooks(): SchemaHooks {\n function useExpression(\n expr: EntityExpression,\n formState: FormEditState,\n ): Control<any | undefined> {\n switch (expr.type) {\n case ExpressionType.Jsonata:\n const jExpr = expr as JsonataExpression;\n const compiledExpr = useMemo(\n () => jsonata(jExpr.expression),\n [jExpr.expression],\n );\n const control = useControl();\n useControlEffect(\n () => formState.data.value,\n async (v) => {\n control.value = await compiledExpr.evaluate(v);\n },\n );\n return control;\n case ExpressionType.FieldValue:\n const fvExpr = expr as FieldValueExpression;\n return useComputed(() => {\n const fv = controlForField(fvExpr.field, formState).value;\n return Array.isArray(fv)\n ? fv.includes(fvExpr.value)\n : fv === fvExpr.value;\n });\n default:\n return useControl(undefined);\n }\n }\n\n function useValidators(\n formState: FormEditState,\n isVisible: boolean,\n control: Control<any>,\n required: boolean,\n validators?: SchemaValidator[] | null,\n ) {\n if (required)\n useValidator(\n control,\n (v) =>\n isVisible && (v == null || v == \"\") ? \"Please enter a value\" : null,\n \"required\",\n );\n validators?.forEach((v, i) => {\n switch (v.type) {\n case ValidatorType.Date:\n processDateValidator(v as DateValidator);\n break;\n case ValidatorType.Jsonata:\n const errorMsg = useExpression(\n v satisfies EntityExpression,\n formState,\n );\n useControlEffect(\n () => [isVisible, errorMsg.value],\n ([isVisible, msg]) =>\n control.setError(v.type + i, isVisible ? msg : null),\n true,\n );\n break;\n }\n\n function processDateValidator(dv: DateValidator) {\n let comparisonDate: number;\n if (dv.fixedDate) {\n comparisonDate = Date.parse(dv.fixedDate);\n } else {\n const nowDate = new Date();\n comparisonDate = Date.UTC(\n nowDate.getFullYear(),\n nowDate.getMonth(),\n nowDate.getDate(),\n );\n if (dv.daysFromCurrent) {\n comparisonDate += dv.daysFromCurrent * 86400000;\n }\n }\n useValidator(\n control,\n (v) => {\n if (v) {\n const selDate = Date.parse(v);\n const notAfter = dv.comparison === DateComparison.NotAfter;\n if (\n notAfter ? selDate > comparisonDate : selDate < comparisonDate\n ) {\n return `Date must not be ${\n notAfter ? \"after\" : \"before\"\n } ${new Date(comparisonDate).toDateString()}`;\n }\n }\n return null;\n },\n \"date\" + i,\n );\n }\n });\n }\n return { useExpression, useValidators };\n}\n\nexport const defaultFormEditHooks = createFormEditHooks(\n createDefaultSchemaHooks(),\n);\n\nexport function createFormEditHooks(schemaHooks: SchemaHooks): FormEditHooks {\n return {\n schemaHooks,\n useDataProperties(\n formState,\n definition,\n field,\n renderer,\n ): DataRendererProps {\n const visible = useIsControlVisible(definition, formState, schemaHooks);\n const isVisible = visible.value && !formState.invisible;\n const defaultValue = useDefaultValue(\n definition,\n field,\n formState,\n schemaHooks,\n );\n const scalarControl = formState.data.fields[field.field];\n\n useEffect(() => {\n if (!isVisible) scalarControl.value = null;\n else if (scalarControl.current.value == null) {\n scalarControl.value = defaultValue;\n }\n }, [isVisible, defaultValue]);\n\n const dataProps = getDefaultScalarControlProperties(\n definition,\n field,\n visible,\n defaultValue,\n scalarControl,\n formState,\n );\n\n schemaHooks.useValidators(\n formState,\n isVisible,\n scalarControl,\n dataProps.required,\n definition.validators,\n );\n\n useEffect(() => {\n const subscription = scalarControl.subscribe(\n (c) => (c.touched = true),\n ControlChange.Validate,\n );\n return () => scalarControl.unsubscribe(subscription);\n }, []);\n\n if (!field.collection) return dataProps;\n return {\n ...dataProps,\n array: defaultArrayRendererProps(\n scalarControl,\n field,\n definition,\n dataProps.readonly,\n (c) => renderer.renderData({ ...dataProps, control: c }),\n ),\n };\n },\n useDisplayProperties: (fs, definition) => {\n const visible = useIsControlVisible(definition, fs, schemaHooks);\n return { visible, definition };\n },\n useGroupProperties: (fs, definition, hooks, renderers) => {\n const visible = useIsControlVisible(definition, fs, schemaHooks);\n const field = definition.compoundField\n ? findCompoundField(fs.fields, definition.compoundField)\n : undefined;\n const newFs: Omit<FormEditState, \"data\"> & { data: Control<any> } = {\n ...fs,\n fields: field ? field.children : fs.fields,\n data: field ? fs.data.fields[field.field] : fs.data,\n invisible: !visible.value || fs.invisible,\n };\n const groupProps = {\n visible,\n hooks,\n hideTitle: definition.groupOptions.hideTitle ?? false,\n childCount: definition.children.length,\n renderChild: (i) =>\n renderControl(definition.children[i], newFs, hooks, i),\n definition,\n } satisfies GroupRendererProps;\n if (field?.collection) {\n return {\n ...groupProps,\n array: defaultArrayRendererProps(\n newFs.data,\n field,\n definition,\n fs.readonly,\n (e) =>\n renderers.renderGroup({\n ...groupProps,\n hideTitle: true,\n renderChild: (i) =>\n renderControl(\n definition.children[i],\n { ...newFs, data: e },\n hooks,\n i,\n ),\n }),\n ),\n };\n }\n return groupProps;\n },\n useActionProperties(\n formState: FormEditState,\n definition: ActionControlDefinition,\n ): ActionRendererProps {\n const visible = useIsControlVisible(definition, formState, schemaHooks);\n return {\n visible,\n onClick: () => {},\n definition,\n };\n },\n };\n}\n\nfunction defaultArrayRendererProps(\n control: Control<any[]>,\n field: SchemaField,\n definition: DataControlDefinition | GroupedControlsDefinition,\n readonly: boolean | undefined | null,\n renderElem: (c: Control<any>) => ReactElement,\n): ArrayRendererProps {\n return {\n control,\n childCount: control.elements?.length ?? 0,\n field,\n definition,\n addAction: !readonly\n ? {\n definition: {\n title: \"Add \" + controlTitle(definition.title, field),\n type: ControlDefinitionType.Action,\n actionId: \"addElement\",\n },\n visible: { value: true, canChange: false },\n onClick: () => addElement(control, elementValueForField(field)),\n }\n : undefined,\n removeAction: !readonly\n ? (i) => ({\n definition: {\n title: \"Remove\",\n type: ControlDefinitionType.Action,\n actionId: \"removeElement\",\n },\n visible: { value: true, canChange: false },\n onClick: () => removeElement(control, control.elements[i]),\n })\n : undefined,\n childKey: (i) => control.elements[i].uniqueId,\n renderChild: (i) => {\n const c = control.elements[i];\n return <Fragment key={c.uniqueId}>{renderElem(c)}</Fragment>;\n },\n };\n}\n\nexport function useControlsWithDefaults(\n definition: GroupedControlsDefinition,\n sf: SchemaField[],\n) {\n return useMemo(\n () =>\n definition.children.length\n ? definition\n : { ...definition, children: addMissingControls(sf, []) },\n [sf, definition],\n );\n}\n","import React, {\n CSSProperties,\n Fragment,\n ReactElement,\n ReactNode,\n useMemo,\n useState,\n} from \"react\";\nimport {\n ActionRendererProps,\n AdornmentProps,\n AdornmentRenderer,\n ArrayRendererProps,\n controlTitle,\n DataRendererProps,\n DisplayRendererProps,\n FormRenderer,\n GroupRendererProps,\n LabelRendererProps,\n Visibility,\n} from \"./controlRender\";\nimport clsx from \"clsx\";\nimport {\n AdornmentPlacement,\n ControlDefinition,\n DataRenderType,\n DisplayDataType,\n FieldOption,\n FieldType,\n GridRenderer,\n HtmlDisplay,\n isGridRenderer,\n TextDisplay,\n} from \"./types\";\nimport { Control, Fcheckbox, formControlProps } from \"@react-typed-forms/core\";\nimport { hasOptions } from \"./util\";\n\nexport interface DefaultRenderers {\n data: DataRendererRegistration;\n label: LabelRendererRegistration;\n action: ActionRendererRegistration;\n array: ArrayRendererRegistration;\n group: GroupRendererRegistration;\n display: DisplayRendererRegistration;\n visibility: VisibilityRendererRegistration;\n adornment: AdornmentRendererRegistration;\n}\nexport interface DataRendererRegistration {\n type: \"data\";\n schemaType?: string | string[];\n renderType?: string | string[];\n options?: boolean;\n collection?: boolean;\n match?: (props: DataRendererProps) => boolean;\n render: (\n props: DataRendererProps,\n defaultLabel: (label?: Partial<LabelRendererProps>) => LabelRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface LabelRendererRegistration {\n type: \"label\";\n render: (\n labelProps: LabelRendererProps,\n elem: ReactElement,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface ActionRendererRegistration {\n type: \"action\";\n render: (props: ActionRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface ArrayRendererRegistration {\n type: \"array\";\n render: (props: ArrayRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface GroupRendererRegistration {\n type: \"group\";\n render: (\n props: GroupRendererProps,\n defaultLabel: (label?: Partial<LabelRendererProps>) => LabelRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface DisplayRendererRegistration {\n type: \"display\";\n render: (\n props: DisplayRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface VisibilityRendererRegistration {\n type: \"visibility\";\n render: (visible: Visibility, elem: ReactElement) => ReactElement;\n}\n\nexport interface AdornmentRendererRegistration {\n type: \"adornment\";\n adornmentType?: string | string[];\n render: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nexport type AnyRendererRegistration =\n | DataRendererRegistration\n | GroupRendererRegistration\n | DisplayRendererRegistration\n | ActionRendererRegistration\n | LabelRendererRegistration\n | ArrayRendererRegistration\n | AdornmentRendererRegistration\n | VisibilityRendererRegistration;\n\nexport function createFormRenderer(\n customRenderers: AnyRendererRegistration[] = [],\n defaultRenderers: DefaultRenderers = createClassStyledRenderers(),\n): FormRenderer {\n const dataRegistrations = customRenderers.filter(isDataRegistration);\n const adornmentRegistrations = customRenderers.filter(\n isAdornmentRegistration,\n );\n const labelRenderer =\n customRenderers.find(isLabelRegistration) ?? defaultRenderers.label;\n const renderVisibility = (\n customRenderers.find(isVisibilityRegistration) ??\n defaultRenderers.visibility\n ).render;\n\n const formRenderers = {\n renderAction,\n renderData,\n renderGroup,\n renderDisplay,\n renderLabel,\n renderArray,\n renderVisibility,\n renderAdornment,\n };\n\n function renderAdornment(props: AdornmentProps): AdornmentRenderer {\n const renderer =\n adornmentRegistrations.find((x) =>\n isOneOf(x.adornmentType, props.definition.type),\n ) ?? defaultRenderers.adornment;\n return renderer.render(props);\n }\n\n function renderArray(props: ArrayRendererProps) {\n return defaultRenderers.array.render(props, formRenderers);\n }\n\n function renderLabel(props: LabelRendererProps, elem: ReactElement) {\n return labelRenderer.render(props, elem, formRenderers);\n }\n\n function withAdornments(\n definition: ControlDefinition,\n adornments?: AdornmentRenderer[],\n ): [\n AdornmentRenderer[],\n (placement: AdornmentPlacement) => ReactElement,\n (elem: ReactElement) => ReactElement,\n ] {\n const rAdornments = adornments\n ? adornments\n : definition.adornments?.map((x, i) =>\n renderAdornment({ definition: x, key: i }),\n ) ?? [];\n function combineAdornments(placement: AdornmentPlacement) {\n return (\n <>\n {rAdornments\n .filter((x) => x.child && x.child[0] === placement)\n .map((x) => x.child![1])}\n </>\n );\n }\n return [\n rAdornments,\n combineAdornments,\n (mainElem) =>\n !adornments\n ? mainElem\n : rAdornments.reduce((e, n) => n.wrap?.(e) ?? e, mainElem),\n ];\n }\n\n function renderData(\n props: DataRendererProps,\n adornments?: AdornmentRenderer[],\n ): ReactElement {\n const {\n definition,\n renderOptions: { type: renderType },\n visible,\n required,\n control,\n field,\n } = props;\n\n const options = hasOptions(props);\n const renderer =\n dataRegistrations.find(\n (x) =>\n (x.collection ?? false) === (field.collection ?? false) &&\n (x.options ?? false) === options &&\n isOneOf(x.schemaType, field.type) &&\n isOneOf(x.renderType, renderType) &&\n (!x.match || x.match(props)),\n ) ?? defaultRenderers.data;\n\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n definition,\n adornments,\n );\n return wrapElem(\n renderer.render(props, createLabel, {\n ...formRenderers,\n renderData: (p) => renderData(p, rAdornments),\n }),\n );\n\n function createLabel(labelProps?: Partial<LabelRendererProps>) {\n return {\n visible,\n required,\n control,\n forId: \"c\" + control.uniqueId,\n renderAdornment,\n ...labelProps,\n title: labelProps?.title ?? controlTitle(definition.title, field),\n };\n }\n }\n\n function renderGroup(\n props: GroupRendererProps,\n adornments?: AdornmentRenderer[],\n ): ReactElement {\n const { definition, visible, field } = props;\n\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n props.definition,\n adornments,\n );\n\n const title = props.hideTitle\n ? undefined\n : field\n ? controlTitle(definition.title, field)\n : definition.title;\n\n return wrapElem(\n defaultRenderers.group.render(props, createLabel, {\n ...formRenderers,\n renderGroup: (p) => renderGroup(p, rAdornments),\n }),\n );\n\n function createLabel(\n labelProps?: Partial<LabelRendererProps>,\n ): LabelRendererProps {\n return {\n required: false,\n visible,\n group: true,\n renderAdornment,\n title,\n ...labelProps,\n };\n }\n }\n\n function renderAction(\n props: ActionRendererProps,\n adornments?: AdornmentRenderer[],\n ) {\n const renderer =\n customRenderers.find(isActionRegistration) ?? defaultRenderers.action;\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n props.definition,\n adornments,\n );\n return wrapElem(renderer.render(props, formRenderers));\n }\n\n function renderDisplay(\n props: DisplayRendererProps,\n adornments?: AdornmentRenderer[],\n ) {\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n props.definition,\n adornments,\n );\n return wrapElem(defaultRenderers.display.render(props, formRenderers));\n }\n\n return formRenderers;\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n requiredElement?: ReactNode;\n labelClass?: string;\n}\n\ninterface DefaultActionRendererOptions {\n className?: string;\n}\n\nexport function createDefaultActionRenderer(\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n function render(\n { visible, onClick, definition: { title } }: ActionRendererProps,\n { renderVisibility }: Pick<FormRenderer, \"renderVisibility\">,\n ) {\n return renderVisibility(\n visible,\n <button className={options.className} onClick={onClick}>\n {title}\n </button>,\n );\n }\n return { render, type: \"action\" };\n}\nexport function createDefaultLabelRenderer(\n options: DefaultLabelRendererOptions = { requiredElement: <span> *</span> },\n): LabelRendererRegistration {\n return {\n render: (p, elem, { renderVisibility }) =>\n renderVisibility(\n p.visible,\n <DefaultLabelRenderer {...p} {...options} children={elem} />,\n ),\n type: \"label\",\n };\n}\n\nexport function DefaultLabelRenderer({\n className,\n labelClass,\n title,\n forId,\n required,\n children,\n group,\n groupLabelClass,\n renderAdornment,\n requiredElement,\n}: LabelRendererProps &\n DefaultLabelRendererOptions & { children: ReactElement }) {\n return title ? (\n <div className={className}>\n {renderAdornment(AdornmentPlacement.LabelStart)}\n <label\n htmlFor={forId}\n className={clsx(labelClass, group && groupLabelClass)}\n >\n {title}\n {required && requiredElement}\n </label>\n {renderAdornment(AdornmentPlacement.LabelEnd)}\n {renderAdornment(AdornmentPlacement.ControlStart)}\n {children}\n {renderAdornment(AdornmentPlacement.ControlEnd)}\n </div>\n ) : (\n <>{children}</>\n );\n}\n\ninterface DefaultArrayRendererOptions {\n className?: string;\n removableClass?: string;\n childClass?: string;\n removableChildClass?: string;\n removeActionClass?: string;\n addActionClass?: string;\n}\n\nexport function createDefaultArrayRenderer(\n options?: DefaultArrayRendererOptions,\n): ArrayRendererRegistration {\n const {\n className,\n removableClass,\n childClass,\n removableChildClass,\n removeActionClass,\n addActionClass,\n } = options ?? {};\n function render(\n {\n childCount,\n renderChild,\n addAction,\n removeAction,\n childKey,\n }: ArrayRendererProps,\n { renderAction }: Pick<FormRenderer, \"renderAction\">,\n ) {\n return (\n <>\n <div className={clsx(className, removeAction && removableClass)}>\n {Array.from({ length: childCount }, (_, x) =>\n removeAction ? (\n <Fragment key={childKey(x)}>\n <div className={clsx(childClass, removableChildClass)}>\n {renderChild(x)}\n </div>\n <div className={removeActionClass}>\n {renderAction(removeAction(x))}\n </div>\n </Fragment>\n ) : (\n <div key={childKey(x)} className={childClass}>\n {renderChild(x)}\n </div>\n ),\n )}\n </div>\n {addAction && (\n <div className={addActionClass}>{renderAction(addAction)}</div>\n )}\n </>\n );\n }\n return { render, type: \"array\" };\n}\n\ninterface StyleProps {\n className?: string;\n style?: CSSProperties;\n}\n\ninterface DefaultGroupRendererOptions {\n className?: string;\n standardClassName?: string;\n gridStyles?: (columns: GridRenderer) => StyleProps;\n gridClassName?: string;\n defaultGridColumns?: number;\n}\n\nexport function createDefaultGroupRenderer(\n options?: DefaultGroupRendererOptions,\n): GroupRendererRegistration {\n const {\n className,\n gridStyles = defaultGridStyles,\n defaultGridColumns = 2,\n gridClassName,\n standardClassName,\n } = options ?? {};\n\n function defaultGridStyles({\n columns = defaultGridColumns,\n }: GridRenderer): StyleProps {\n return {\n className: gridClassName,\n style: {\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n },\n };\n }\n\n function render(\n props: GroupRendererProps,\n defaultLabel: (label?: Partial<LabelRendererProps>) => LabelRendererProps,\n {\n renderLabel,\n renderArray,\n }: Pick<FormRenderer, \"renderLabel\" | \"renderArray\" | \"renderGroup\">,\n ) {\n const { childCount, renderChild, definition } = props;\n\n return renderLabel(\n defaultLabel(),\n props.array ? renderArray(props.array) : renderChildren(),\n );\n\n function renderChildren() {\n const { groupOptions } = definition;\n const { style, className: gcn } = isGridRenderer(groupOptions)\n ? gridStyles(groupOptions)\n : ({ className: standardClassName } satisfies StyleProps);\n return (\n <div className={clsx(className, gcn)} style={style}>\n {Array.from({ length: childCount }, (_, x) => renderChild(x))}\n </div>\n );\n }\n }\n return { type: \"group\", render };\n}\n\nexport interface DefaultDisplayRendererOptions {\n textClassName?: string;\n htmlClassName?: string;\n}\nexport function createDefaultDisplayRenderer(\n options: DefaultDisplayRendererOptions = {},\n): DisplayRendererRegistration {\n function doRender({ definition: { displayData } }: DisplayRendererProps) {\n switch (displayData.type) {\n case DisplayDataType.Text:\n return (\n <div className={options.textClassName}>\n {(displayData as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n className={options.htmlClassName}\n dangerouslySetInnerHTML={{\n __html: (displayData as HtmlDisplay).html,\n }}\n />\n );\n default:\n return <h1>Unknown display type: {displayData.type}</h1>;\n }\n }\n return {\n render: (p, { renderVisibility }) =>\n renderVisibility(p.visible, doRender(p)),\n type: \"display\",\n };\n}\n\nexport const DefaultBoolOptions: FieldOption[] = [\n { name: \"Yes\", value: true },\n { name: \"No\", value: false },\n];\ninterface DefaultDataRendererOptions {\n inputClass?: string;\n selectOptions?: SelectRendererOptions;\n booleanOptions?: FieldOption[];\n optionRenderer?: DataRendererRegistration;\n}\n\nexport function createDefaultDataRenderer(\n options: DefaultDataRendererOptions = {},\n): DataRendererRegistration {\n const selectRenderer = createSelectRenderer(options.selectOptions ?? {});\n const { inputClass, booleanOptions, optionRenderer } = {\n optionRenderer: selectRenderer,\n booleanOptions: DefaultBoolOptions,\n ...options,\n };\n return createDataRenderer((props, defaultLabel, renderers) => {\n if (props.array) {\n return renderers.renderArray(props.array);\n }\n let renderType = props.renderOptions.type;\n const fieldType = props.field.type;\n const isBool = fieldType === FieldType.Bool;\n if (booleanOptions != null && isBool && props.options == null) {\n return renderers.renderData({ ...props, options: booleanOptions });\n }\n if (renderType === DataRenderType.Standard && hasOptions(props)) {\n return optionRenderer.render(props, defaultLabel, renderers);\n }\n switch (renderType) {\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, defaultLabel, renderers);\n }\n const l = defaultLabel();\n return renderers.renderLabel(\n l,\n renderType === DataRenderType.Checkbox ? (\n <Fcheckbox control={props.control} />\n ) : (\n <ControlInput\n className={inputClass}\n id={l.forId}\n readOnly={props.readonly}\n control={props.control}\n convert={createInputConversion(props.field.type)}\n />\n ),\n );\n });\n}\n\nexport function ControlInput({\n control,\n convert,\n ...props\n}: React.InputHTMLAttributes<HTMLInputElement> & {\n control: Control<any>;\n convert: InputConversion;\n}) {\n const { errorText, value, onChange, ...inputProps } =\n formControlProps(control);\n return (\n <input\n {...inputProps}\n type={convert[0]}\n value={value == null ? \"\" : convert[2](value)}\n onChange={(e) => {\n control.value = convert[1](e.target.value);\n }}\n {...props}\n />\n );\n}\n\nexport interface DefaultVisibilityRendererOptions {}\n\nexport interface DefaultAdornmentRendererOptions {}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n return { type: \"adornment\", render: () => ({}) };\n}\nexport function createDefaultVisibilityRenderer(\n options: DefaultVisibilityRendererOptions = {},\n): VisibilityRendererRegistration {\n return {\n type: \"visibility\",\n render: (visible, children) => (visible.value ? children : <></>),\n };\n}\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n visibility?: DefaultVisibilityRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\n}\n\nexport function createDefaultRenderers(\n options: DefaultRendererOptions = {},\n): DefaultRenderers {\n return {\n data: createDefaultDataRenderer(options.data),\n display: createDefaultDisplayRenderer(options.display),\n action: createDefaultActionRenderer(options.action),\n array: createDefaultArrayRenderer(options.array),\n group: createDefaultGroupRenderer(options.group),\n label: createDefaultLabelRenderer(options.label),\n visibility: createDefaultVisibilityRenderer(options.visibility),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n };\n}\n\nfunction createClassStyledRenderers() {\n return createDefaultRenderers({\n label: { className: \"control\" },\n group: { className: \"group\" },\n array: { className: \"control-array\" },\n action: { className: \"action\" },\n data: { inputClass: \"data\" },\n display: { htmlClassName: \"html\", textClassName: \"text\" },\n });\n}\n\nfunction isAdornmentRegistration(\n x: AnyRendererRegistration,\n): x is AdornmentRendererRegistration {\n return x.type === \"adornment\";\n}\n\nfunction isDataRegistration(\n x: AnyRendererRegistration,\n): x is DataRendererRegistration {\n return x.type === \"data\";\n}\n\nfunction isLabelRegistration(\n x: AnyRendererRegistration,\n): x is LabelRendererRegistration {\n return x.type === \"label\";\n}\n\nfunction isActionRegistration(\n x: AnyRendererRegistration,\n): x is ActionRendererRegistration {\n return x.type === \"action\";\n}\n\nfunction isVisibilityRegistration(\n x: AnyRendererRegistration,\n): x is VisibilityRendererRegistration {\n return x.type === \"visibility\";\n}\n\nfunction isOneOf(x: string | string[] | undefined, v: string) {\n return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;\n}\n\nexport function createDataRenderer(\n render: DataRendererRegistration[\"render\"],\n options?: Partial<DataRendererRegistration>,\n): DataRendererRegistration {\n return { type: \"data\", render, ...options };\n}\n\nexport function createDataRendererLabelled(\n render: (\n props: DataRendererProps,\n id: string,\n renderers: FormRenderer,\n ) => ReactElement,\n options?: Partial<DataRendererRegistration>,\n): DataRendererRegistration {\n return {\n type: \"data\",\n render: (props, defaultLabel, renderers) => {\n const dl = defaultLabel();\n return renderers.renderLabel(dl, render(props, dl.forId!, renderers));\n },\n ...options,\n };\n}\n\nexport function createLabelRenderer(\n options: Omit<LabelRendererRegistration, \"type\">,\n): LabelRendererRegistration {\n return { type: \"label\", ...options };\n}\n\nexport function createAdornmentRenderer(\n render: (props: AdornmentProps) => AdornmentRenderer,\n options?: Omit<AdornmentRendererRegistration, \"type\">,\n): AdornmentRendererRegistration {\n return { type: \"adornment\", ...options, render };\n}\n\nexport interface SelectRendererOptions {\n className?: string;\n emptyText?: string;\n requiredText?: string;\n}\n\nexport function createSelectRenderer(options: SelectRendererOptions = {}) {\n return createDataRendererLabelled(\n (props, id) => (\n <SelectDataRenderer\n className={options.className}\n state={props.control}\n id={id}\n options={props.options!}\n required={props.required}\n emptyText={options.emptyText}\n requiredText={options.requiredText}\n convert={createSelectConversion(props.field.type)}\n />\n ),\n {\n options: true,\n },\n );\n}\n\ntype SelectConversion = (a: any) => string | number;\n\ninterface SelectDataRendererProps {\n id?: string;\n className?: string;\n options: {\n name: string;\n value: any;\n disabled?: boolean;\n }[];\n emptyText?: string;\n requiredText?: string;\n required: boolean;\n state: Control<any>;\n convert: SelectConversion;\n}\n\nexport function SelectDataRenderer({\n state,\n options,\n className,\n convert,\n required,\n emptyText = \"N/A\",\n requiredText = \"<please select>\",\n ...props\n}: SelectDataRendererProps) {\n const { value, disabled } = state;\n const [showEmpty] = useState(!required || value == null);\n const optionStringMap = useMemo(\n () => Object.fromEntries(options.map((x) => [convert(x.value), x.value])),\n [options],\n );\n return (\n <select\n {...props}\n className={className}\n onChange={(v) => (state.value = optionStringMap[v.target.value])}\n value={convert(value)}\n disabled={disabled}\n >\n {showEmpty && (\n <option value=\"\">{required ? requiredText : emptyText}</option>\n )}\n {options.map((x, i) => (\n <option key={i} value={convert(x.value)} disabled={x.disabled}>\n {x.name}\n </option>\n ))}\n </select>\n );\n}\n\nexport function createSelectConversion(ft: string): SelectConversion {\n switch (ft) {\n case FieldType.String:\n case FieldType.Int:\n case FieldType.Double:\n return (a) => a;\n default:\n return (a) => a?.toString() ?? \"\";\n }\n}\n\ntype InputConversion = [string, (s: any) => any, (a: any) => string | number];\n\nexport function createInputConversion(ft: string): InputConversion {\n switch (ft) {\n case FieldType.String:\n return [\"text\", (a) => a, (a) => a];\n case FieldType.Bool:\n return [\"text\", (a) => a === \"true\", (a) => a?.toString() ?? \"\"];\n case FieldType.Int:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseInt(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n case FieldType.Date:\n return [\"date\", (a) => a, (a) => a];\n case FieldType.Double:\n return [\"number\", (a) => parseFloat(a), (a) => a];\n default:\n return [\"text\", (a) => a, (a) => a];\n }\n}\n","import React from \"react\";\nimport { DefaultRendererOptions } from \"./renderers\";\n\nexport const defaultTailwindTheme: DefaultRendererOptions = {\n label: {\n className: \"flex flex-col\",\n groupLabelClass: \"font-bold\",\n requiredElement: <span className=\"text-red-500\"> *</span>,\n },\n array: {\n removableClass: \"grid grid-cols-[1fr_auto] items-center gap-x-2\",\n childClass: \"grow\",\n },\n group: {\n standardClassName: \"space-y-4\",\n gridClassName: \"gap-x-2 gap-y-4\",\n },\n action: {\n className: \"bg-primary rounded-lg p-3 text-white\",\n },\n};\n"],"names":["FieldType","ControlDefinitionType","DynamicPropertyType","ExpressionType","AdornmentPlacement","ControlAdornmentType","DataRenderType","SyncTextType","GroupRenderType","DisplayDataType","ValidatorType","DateComparison","isDataControlDefinition","x","type","Data","isGroupControlsDefinition","Group","isDisplayControlsDefinition","Display","isActionControlsDefinition","Action","visitControlDefinition","visitor","defaultValue","action","data","display","group","dataControl","field","options","_extends","fieldValueExpr","value","FieldValue","visibility","expr","Visible","isGridRenderer","Grid","buildSchema","def","Object","entries","map","stringField","displayName","makeScalarField","String","stringOptionsField","slice","call","arguments","withScalarOptions","v","n","defaultScalarField","makeCompoundField","defaultCompoundField","intField","Int","boolField","Bool","compoundField","fields","other","children","collection","tags","Compound","system","treeChildren","onlyForTypes","required","applyDefaultValues","defaultValueForFields","applyValue","filter","isCompoundField","length","out","forEach","applyDefaultForField","defaultValueForField","parent","notElement","fromEntries","sf","undefined","elementValueForField","findScalarField","findField","findCompoundField","find","isScalarField","isDataControl","c","isGroupControl","fieldHasTag","tag","_field$tags","Boolean","includes","fieldDisplayName","_field$displayName","hasOptions","o","_o$options$length","_o$options","defaultControlForField","title","groupOptions","hideTitle","_sf$tags","htmlEditor","renderOptions","HtmlEditor","Standard","findReferencedControl","control","findReferencedControlInArray","controls","_iterator","_createForOfIteratorHelperLoose","_step","done","ref","addMissingControls","changes","flatMap","existing","changedCompounds","ex","cf","concat","_FormRendererComponentsContext","FormRendererComponentsContext","createContext","FormRendererProvider","_ref","_effect","_useComponentTracking","_FormRendererComponen","Provider","React","createElement","useFormRendererComponents","useContext","controlTitle","renderControl","definition","formState","hooks","key","fieldData","DataRenderer","controlDef","d","GroupRenderer","groupDef","ActionRenderer","actionDef","DisplayRenderer","displayDef","_ref2","_effect2","_props$customRender","renderer","props","useDataProperties","customRender","renderData","_ref3","_effect3","_useFormRendererCompo","renderAction","actionControlProperties","useActionProperties","_ref4","_effect4","renderers","groupProps","useGroupProperties","renderGroup","_ref5","_effect5","_useFormRendererCompo2","renderDisplay","displayProps","useDisplayProperties","controlForField","_ref6","refField","newControl","fieldForControl","AlwaysVisible","canChange","createAction","label","onClick","actionId","visible","visitControlData","_ref7","cb","compound","childState","res","useDefaultValue","_definition$dynamic","valueExpression","dynamic","DefaultValue","useExpression","useIsControlVisible","_definition$dynamic2","_onlyForTypes$length","visibleExpression","exprValue","schemaFields","_useMemo","useMemo","_formState$data$field","typeField","isTypeField","typeControl","fieldName","getDefaultScalarControlProperties","_definition$renderOpt","_definition$required","_formState$readonly","getOptionsForScalarField","readonly","_opts$length","opts","createDefaultSchemaHooks","Jsonata","jExpr","compiledExpr","jsonata","expression","useControl","useControlEffect","Promise","resolve","evaluate","then","_compiledExpr$evaluat","e","reject","fvExpr","useComputed","fv","Array","isArray","useValidators","isVisible","validators","useValidator","i","Date","processDateValidator","errorMsg","msg","setError","dv","comparisonDate","fixedDate","parse","nowDate","UTC","getFullYear","getMonth","getDate","daysFromCurrent","selDate","notAfter","comparison","NotAfter","toDateString","defaultFormEditHooks","createFormEditHooks","schemaHooks","invisible","scalarControl","useEffect","current","dataProps","subscription","subscribe","touched","ControlChange","Validate","unsubscribe","array","defaultArrayRendererProps","fs","_definition$groupOpti","newFs","childCount","renderChild","renderElem","_control$elements$len","_control$elements","elements","addAction","addElement","removeAction","removeElement","childKey","uniqueId","Fragment","useControlsWithDefaults","createFormRenderer","customRenderers","defaultRenderers","_customRenderers$find","_customRenderers$find2","createClassStyledRenderers","dataRegistrations","isDataRegistration","adornmentRegistrations","isAdornmentRegistration","labelRenderer","isLabelRegistration","renderVisibility","isVisibilityRegistration","render","formRenderers","renderLabel","renderArray","renderAdornment","_adornmentRegistratio","isOneOf","adornmentType","adornment","elem","withAdornments","adornments","_definition$adornment","_definition$adornment2","rAdornments","combineAdornments","placement","child","mainElem","reduce","_n$wrap","wrap","_dataRegistrations$fi","renderType","_x$collection","_field$collection","_x$options","schemaType","match","_withAdornments","wrapElem","createLabel","p","labelProps","_labelProps$title","forId","_withAdornments2","_customRenderers$find3","isActionRegistration","_withAdornments3","_withAdornments4","createDefaultActionRenderer","className","createDefaultLabelRenderer","requiredElement","DefaultLabelRenderer","labelClass","groupLabelClass","LabelStart","htmlFor","clsx","LabelEnd","ControlStart","ControlEnd","createDefaultArrayRenderer","removableClass","childClass","removableChildClass","removeActionClass","addActionClass","from","_","createDefaultGroupRenderer","_ref8","_ref8$gridStyles","gridStyles","defaultGridStyles","_ref8$defaultGridColu","defaultGridColumns","gridClassName","standardClassName","_ref9","_ref9$columns","columns","style","gridTemplateColumns","defaultLabel","_ref10","renderChildren","_ref11","gcn","createDefaultDisplayRenderer","doRender","_ref12","displayData","Text","textClassName","text","Html","htmlClassName","dangerouslySetInnerHTML","__html","html","_ref13","DefaultBoolOptions","name","createDefaultDataRenderer","_options$selectOption","selectRenderer","createSelectRenderer","selectOptions","_optionRenderer$boole","optionRenderer","booleanOptions","inputClass","createDataRenderer","fieldType","isBool","Dropdown","l","Checkbox","Fcheckbox","ControlInput","id","readOnly","convert","createInputConversion","_ref14","_objectWithoutPropertiesLoose","_excluded","_formControlProps","formControlProps","errorText","onChange","inputProps","_excluded2","target","createDefaultAdornmentRenderer","createDefaultVisibilityRenderer","createDefaultRenderers","createDataRendererLabelled","dl","createLabelRenderer","createAdornmentRenderer","SelectDataRenderer","state","emptyText","requiredText","createSelectConversion","_ref15","_ref15$emptyText","_ref15$requiredText","_excluded3","disabled","_useState","useState","showEmpty","optionStringMap","ft","Double","a","_a$toString","toString","_a$toString2","parseInt","parseFloat","defaultTailwindTheme"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/types.ts","../src/schemaBuilder.ts","../src/util.ts","../src/controlRender.tsx","../src/hooks.tsx","../src/renderers.tsx","../src/tailwind.tsx"],"sourcesContent":["export interface SchemaField {\n type: string;\n field: string;\n displayName?: string | null;\n tags?: string[] | null;\n system?: boolean | null;\n collection?: boolean | null;\n onlyForTypes?: string[] | null;\n required?: boolean | null;\n defaultValue?: any;\n isTypeField?: boolean | null;\n searchable?: boolean | null;\n options?: FieldOption[] | null;\n validators?: SchemaValidator[] | null;\n}\n\nexport enum FieldType {\n String = \"String\",\n Bool = \"Bool\",\n Int = \"Int\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n Double = \"Double\",\n EntityRef = \"EntityRef\",\n Compound = \"Compound\",\n AutoId = \"AutoId\",\n Image = \"Image\",\n Any = \"Any\",\n}\n\nexport interface EntityRefField extends SchemaField {\n type: FieldType.EntityRef;\n entityRefType: string;\n parentField: string;\n}\n\nexport interface FieldOption {\n name: string;\n value: any;\n}\n\nexport interface CompoundField extends SchemaField {\n type: FieldType.Compound;\n children: SchemaField[];\n treeChildren?: boolean;\n}\n\nexport type AnyControlDefinition =\n | DataControlDefinition\n | GroupedControlsDefinition\n | ActionControlDefinition\n | DisplayControlDefinition;\n\nexport interface ControlDefinition {\n type: string;\n title?: string | null;\n dynamic?: DynamicProperty[] | null;\n adornments?: ControlAdornment[] | null;\n}\n\nexport enum ControlDefinitionType {\n Data = \"Data\",\n Group = \"Group\",\n Display = \"Display\",\n Action = \"Action\",\n}\n\nexport interface DynamicProperty {\n type: string;\n expr: EntityExpression;\n}\n\nexport enum DynamicPropertyType {\n Visible = \"Visible\",\n DefaultValue = \"DefaultValue\",\n}\n\nexport interface EntityExpression {\n type: string;\n}\n\nexport enum ExpressionType {\n Jsonata = \"Jsonata\",\n FieldValue = \"FieldValue\",\n UserMatch = \"UserMatch\",\n}\n\nexport interface JsonataExpression extends EntityExpression {\n type: ExpressionType.Jsonata;\n expression: string;\n}\n\nexport interface FieldValueExpression extends EntityExpression {\n type: ExpressionType.FieldValue;\n field: string;\n value: any;\n}\n\nexport interface UserMatchExpression extends EntityExpression {\n type: ExpressionType.UserMatch;\n userMatch: string;\n}\n\nexport interface ControlAdornment {\n type: string;\n}\n\nexport enum AdornmentPlacement {\n ControlStart = \"ControlStart\",\n ControlEnd = \"ControlEnd\",\n LabelStart = \"LabelStart\",\n LabelEnd = \"LabelEnd\",\n}\n\nexport enum ControlAdornmentType {\n Tooltip = \"Tooltip\",\n Accordion = \"Accordion\",\n HelpText = \"HelpText\",\n}\n\nexport interface TooltipAdornment extends ControlAdornment {\n type: ControlAdornmentType.Tooltip;\n tooltip: string;\n}\n\nexport interface AccordionAdornment extends ControlAdornment {\n type: ControlAdornmentType.Accordion;\n title: string;\n defaultExpanded: boolean;\n}\n\nexport interface HelpTextAdornment extends ControlAdornment {\n type: ControlAdornmentType.HelpText;\n helpText: string;\n placement: AdornmentPlacement;\n}\n\nexport interface DataControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Data;\n field: string;\n required?: boolean | null;\n renderOptions?: RenderOptions | null;\n defaultValue?: any;\n readonly?: boolean | null;\n validators?: SchemaValidator[] | null;\n}\n\nexport interface RenderOptions {\n type: string;\n}\n\nexport enum DataRenderType {\n Standard = \"Standard\",\n Radio = \"Radio\",\n HtmlEditor = \"HtmlEditor\",\n IconList = \"IconList\",\n CheckList = \"CheckList\",\n UserSelection = \"UserSelection\",\n Synchronised = \"Synchronised\",\n IconSelector = \"IconSelector\",\n DateTime = \"DateTime\",\n Checkbox = \"Checkbox\",\n Dropdown = \"Dropdown\",\n}\n\nexport interface RadioButtonRenderOptions extends RenderOptions {\n type: DataRenderType.Radio;\n}\n\nexport interface StandardRenderer extends RenderOptions {\n type: DataRenderType.Standard;\n}\n\nexport interface HtmlEditorRenderOptions extends RenderOptions {\n type: DataRenderType.HtmlEditor;\n allowImages: boolean;\n}\n\nexport interface DateTimeRenderOptions extends RenderOptions {\n type: DataRenderType.DateTime;\n format?: string | null;\n}\n\nexport interface IconListRenderOptions extends RenderOptions {\n type: DataRenderType.IconList;\n iconMappings: IconMapping[];\n}\n\nexport interface IconMapping {\n value: string;\n materialIcon?: string | null;\n}\n\nexport interface CheckListRenderOptions extends RenderOptions {\n type: DataRenderType.CheckList;\n}\n\nexport interface SynchronisedRenderOptions extends RenderOptions {\n type: DataRenderType.Synchronised;\n fieldToSync: string;\n syncType: SyncTextType;\n}\n\nexport enum SyncTextType {\n Camel = \"Camel\",\n Snake = \"Snake\",\n Pascal = \"Pascal\",\n}\n\nexport interface UserSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.UserSelection;\n noGroups: boolean;\n noUsers: boolean;\n}\n\nexport interface IconSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.IconSelector;\n}\n\nexport interface GroupedControlsDefinition extends ControlDefinition {\n type: ControlDefinitionType.Group;\n children: ControlDefinition[];\n compoundField?: string | null;\n groupOptions: GroupRenderOptions;\n}\n\nexport interface GroupRenderOptions {\n type: string;\n hideTitle?: boolean | null;\n}\n\nexport enum GroupRenderType {\n Standard = \"Standard\",\n Grid = \"Grid\",\n GroupElement = \"GroupElement\",\n}\n\nexport interface StandardGroupRenderer extends GroupRenderOptions {\n type: GroupRenderType.Standard;\n}\n\nexport interface GroupElementRenderer extends GroupRenderOptions {\n type: GroupRenderType.GroupElement;\n value: any;\n}\n\nexport interface GridRenderer extends GroupRenderOptions {\n type: GroupRenderType.Grid;\n columns?: number | null;\n}\n\nexport interface DisplayControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Display;\n displayData: DisplayData;\n}\n\nexport interface DisplayData {\n type: string;\n}\n\nexport enum DisplayDataType {\n Text = \"Text\",\n Html = \"Html\",\n}\n\nexport interface TextDisplay extends DisplayData {\n type: DisplayDataType.Text;\n text: string;\n}\n\nexport interface HtmlDisplay extends DisplayData {\n type: DisplayDataType.Html;\n html: string;\n}\n\nexport interface ActionControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Action;\n actionId: string;\n}\n\nexport enum ValidatorType {\n Jsonata = \"Jsonata\",\n Date = \"Date\",\n}\nexport interface SchemaValidator {\n type: string;\n}\n\nexport interface JsonataValidator extends SchemaValidator {\n type: ValidatorType.Jsonata;\n expression: string;\n}\n\nexport enum DateComparison {\n NotBefore = \"NotBefore\",\n NotAfter = \"NotAfter\",\n}\n\nexport interface DateValidator extends SchemaValidator {\n type: ValidatorType.Date;\n comparison: DateComparison;\n fixedDate?: string | null;\n daysFromCurrent?: number | null;\n}\n\nexport function isDataControlDefinition(\n x: ControlDefinition,\n): x is DataControlDefinition {\n return x.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControlsDefinition(\n x: ControlDefinition,\n): x is GroupedControlsDefinition {\n return x.type === ControlDefinitionType.Group;\n}\n\nexport function isDisplayControlsDefinition(\n x: ControlDefinition,\n): x is DisplayControlDefinition {\n return x.type === ControlDefinitionType.Display;\n}\n\nexport function isActionControlsDefinition(\n x: ControlDefinition,\n): x is ActionControlDefinition {\n return x.type === ControlDefinitionType.Action;\n}\n\nexport interface ControlVisitor<A> {\n data(d: DataControlDefinition): A;\n group(d: GroupedControlsDefinition): A;\n display(d: DisplayControlDefinition): A;\n action(d: ActionControlDefinition): A;\n}\n\nexport function visitControlDefinition<A>(\n x: ControlDefinition,\n visitor: ControlVisitor<A>,\n defaultValue: (c: ControlDefinition) => A,\n): A {\n switch (x.type) {\n case ControlDefinitionType.Action:\n return visitor.action(x as ActionControlDefinition);\n case ControlDefinitionType.Data:\n return visitor.data(x as DataControlDefinition);\n case ControlDefinitionType.Display:\n return visitor.display(x as DisplayControlDefinition);\n case ControlDefinitionType.Group:\n return visitor.group(x as GroupedControlsDefinition);\n default:\n return defaultValue(x);\n }\n}\n\nexport function dataControl(\n field: string,\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return { type: ControlDefinitionType.Data, field, ...options };\n}\n\nexport function fieldValueExpr(\n field: string,\n value: any,\n): FieldValueExpression {\n return { type: ExpressionType.FieldValue, field, value };\n}\n\nexport function visibility(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Visible, expr };\n}\n\nexport function isGridRenderer(\n options: GroupRenderOptions,\n): options is GridRenderer {\n return options.type === GroupRenderType.Grid;\n}\n","import { CompoundField, FieldOption, FieldType, SchemaField } from \"./types\";\n\ntype AllowedSchema<T> = T extends string\n ? SchemaField & {\n type: FieldType.String | FieldType.Date | FieldType.DateTime;\n }\n : T extends number\n ? SchemaField & {\n type: FieldType.Int | FieldType.Double;\n }\n : T extends boolean\n ? SchemaField & {\n type: FieldType.Bool;\n }\n : T extends Array<infer E>\n ? AllowedSchema<E> & {\n collection: true;\n }\n : T extends { [key: string]: any }\n ? CompoundField & {\n type: FieldType.Compound;\n }\n : SchemaField & { type: FieldType.Any };\n\ntype AllowedField<T, K> = (\n name: string\n) => (SchemaField & { type: K }) | AllowedSchema<T>;\n\nexport function buildSchema<T, Custom = \"\">(def: {\n [K in keyof T]-?: AllowedField<T[K], Custom>;\n}): SchemaField[] {\n return Object.entries(def).map((x) =>\n (x[1] as (n: string) => SchemaField)(x[0])\n );\n}\n\nexport function stringField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>\n) {\n return makeScalarField({\n type: FieldType.String as const,\n displayName,\n ...options,\n });\n}\n\nexport function stringOptionsField(\n displayName: string,\n ...options: FieldOption[]\n) {\n return makeScalarField({\n type: FieldType.String as const,\n displayName,\n options,\n });\n}\n\nexport function withScalarOptions<S extends SchemaField>(\n options: Partial<SchemaField>,\n v: (name: string) => S\n): (name: string) => S {\n return (n) => ({ ...v(n), ...options });\n}\n\nexport function makeScalarField<S extends Partial<SchemaField>>(\n options: S\n): (name: string) => SchemaField & S {\n return (n) => ({ ...defaultScalarField(n, n), ...options });\n}\n\nexport function makeCompoundField<S extends Partial<CompoundField>>(\n options: S\n): (name: string) => CompoundField & {\n type: FieldType.Compound;\n} & S {\n return (n) => ({ ...defaultCompoundField(n, n, false), ...options });\n}\n\nexport function intField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>\n) {\n return makeScalarField({\n type: FieldType.Int as const,\n displayName,\n ...options,\n });\n}\n\nexport function boolField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>\n) {\n return makeScalarField({\n type: FieldType.Bool as const,\n displayName,\n ...options,\n });\n}\n\nexport function compoundField<\n Other extends Partial<Omit<CompoundField, \"type\" | \"schemaType\">>\n>(\n displayName: string,\n fields: SchemaField[],\n other: Other\n): (name: string) => CompoundField & {\n collection: Other[\"collection\"];\n} {\n return (field) =>\n ({\n ...defaultCompoundField(field, displayName, false),\n ...other,\n children: fields,\n } as any);\n}\n\nexport function defaultScalarField(\n field: string,\n displayName: string\n): Omit<SchemaField, \"type\"> & {\n type: FieldType.String;\n} {\n return {\n field,\n displayName,\n type: FieldType.String,\n };\n}\n\nexport function defaultCompoundField(\n field: string,\n displayName: string,\n collection: boolean\n): CompoundField & {\n type: FieldType.Compound;\n} {\n return {\n tags: [],\n field,\n displayName,\n type: FieldType.Compound,\n collection,\n system: false,\n treeChildren: false,\n children: [],\n onlyForTypes: [],\n required: true,\n };\n}\n","import {\n CompoundField,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n FieldOption,\n FieldType,\n GridRenderer,\n GroupedControlsDefinition,\n GroupRenderType,\n SchemaField,\n} from \"./types\";\n\nexport function applyDefaultValues(\n v: { [k: string]: any } | undefined,\n fields: SchemaField[],\n): any {\n if (!v) return defaultValueForFields(fields);\n const applyValue = fields.filter(\n (x) => isCompoundField(x) || !(x.field in v),\n );\n if (!applyValue.length) return v;\n const out = { ...v };\n applyValue.forEach((x) => {\n out[x.field] =\n x.field in v\n ? applyDefaultForField(v[x.field], x, fields)\n : defaultValueForField(x);\n });\n return out;\n}\n\nexport function applyDefaultForField(\n v: any,\n field: SchemaField,\n parent: SchemaField[],\n notElement?: boolean,\n): any {\n if (field.collection && !notElement) {\n return ((v as any[]) ?? []).map((x) =>\n applyDefaultForField(x, field, parent, true),\n );\n }\n if (isCompoundField(field)) {\n if (!v && !field.required) return v;\n return applyDefaultValues(v, field.treeChildren ? parent : field.children);\n }\n return defaultValueForField(field);\n}\n\nexport function defaultValueForFields(fields: SchemaField[]): any {\n return Object.fromEntries(\n fields.map((x) => [x.field, defaultValueForField(x)]),\n );\n}\n\nexport function defaultValueForField(sf: SchemaField): any {\n if (isCompoundField(sf)) {\n return sf.required\n ? sf.collection\n ? []\n : defaultValueForFields(sf.children)\n : undefined;\n }\n if (sf.collection) return [];\n return sf.defaultValue;\n}\n\nexport function elementValueForField(sf: SchemaField): any {\n if (isCompoundField(sf)) {\n return defaultValueForFields(sf.children);\n }\n return sf.defaultValue;\n}\n\nexport function findScalarField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return findField(fields, field);\n}\n\nexport function findCompoundField(\n fields: SchemaField[],\n field: string,\n): CompoundField | undefined {\n return findField(fields, field) as CompoundField | undefined;\n}\n\nexport function findField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return fields.find((x) => x.field === field);\n}\n\nexport function isScalarField(sf: SchemaField): sf is SchemaField {\n return !isCompoundField(sf);\n}\n\nexport function isCompoundField(sf: SchemaField): sf is CompoundField {\n return sf.type === FieldType.Compound;\n}\n\nexport function isDataControl(\n c: ControlDefinition,\n): c is DataControlDefinition {\n return c.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControl(\n c: ControlDefinition,\n): c is GroupedControlsDefinition {\n return c.type === ControlDefinitionType.Group;\n}\n\nexport function fieldHasTag(field: SchemaField, tag: string) {\n return Boolean(field.tags?.includes(tag));\n}\n\nexport function fieldDisplayName(field: SchemaField) {\n return field.displayName ?? field.field;\n}\n\nexport function hasOptions(o: { options: FieldOption[] | undefined | null }) {\n return (o.options?.length ?? 0) > 0;\n}\n\nexport function defaultControlForField(\n sf: SchemaField,\n): DataControlDefinition | GroupedControlsDefinition {\n if (isCompoundField(sf)) {\n return {\n type: ControlDefinitionType.Group,\n title: sf.displayName,\n compoundField: sf.field,\n groupOptions: {\n type: GroupRenderType.Grid,\n hideTitle: false,\n } as GridRenderer,\n children: sf.children.map(defaultControlForField),\n } satisfies GroupedControlsDefinition;\n } else if (isScalarField(sf)) {\n const htmlEditor = sf.tags?.includes(\"_HtmlEditor\");\n return {\n type: ControlDefinitionType.Data,\n title: sf.displayName,\n field: sf.field,\n required: sf.required,\n renderOptions: {\n type: htmlEditor ? DataRenderType.HtmlEditor : DataRenderType.Standard,\n },\n } satisfies DataControlDefinition;\n }\n throw \"Unknown schema field\";\n}\nfunction findReferencedControl(\n field: string,\n control: ControlDefinition,\n): ControlDefinition | undefined {\n if (isDataControl(control) && field === control.field) return control;\n if (isGroupControl(control)) {\n if (control.compoundField)\n return field === control.compoundField ? control : undefined;\n return findReferencedControlInArray(field, control.children);\n }\n return undefined;\n}\n\nfunction findReferencedControlInArray(\n field: string,\n controls: ControlDefinition[],\n): ControlDefinition | undefined {\n for (const c of controls) {\n const ref = findReferencedControl(field, c);\n if (ref) return ref;\n }\n return undefined;\n}\n\nexport function addMissingControls(\n fields: SchemaField[],\n controls: ControlDefinition[],\n): ControlDefinition[] {\n const changes: {\n field: SchemaField;\n existing: ControlDefinition | undefined;\n }[] = fields.flatMap((x) => {\n if (fieldHasTag(x, \"_NoControl\")) return [];\n const existing = findReferencedControlInArray(x.field, controls);\n if (!existing || isCompoundField(x)) return { field: x, existing };\n return [];\n });\n const changedCompounds = controls.map((x) => {\n const ex = changes.find((c) => c.existing === x);\n if (!ex) return x;\n const cf = x as GroupedControlsDefinition;\n return {\n ...cf,\n children: addMissingControls(\n (ex.field as CompoundField).children,\n cf.children,\n ),\n };\n });\n return changedCompounds.concat(\n changes\n .filter((x) => !x.existing)\n .map((x) => defaultControlForField(x.field)),\n );\n}\n","import {\n ActionControlDefinition,\n AdornmentPlacement,\n CompoundField,\n ControlAdornment,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DisplayControlDefinition,\n EntityExpression,\n FieldOption,\n GroupedControlsDefinition,\n RenderOptions,\n SchemaField,\n SchemaValidator,\n visitControlDefinition,\n} from \"./types\";\nimport React, {Context, createContext, Key, ReactElement, ReactNode, useContext,} from \"react\";\nimport {Control, newControl} from \"@react-typed-forms/core\";\nimport {fieldDisplayName, findCompoundField, findField, findScalarField, isDataControl, isGroupControl} from \"./util\";\n\nexport interface SchemaHooks {\n useExpression(\n expr: EntityExpression,\n formState: FormEditState,\n ): Control<any | undefined>;\n useValidators(\n formState: FormEditState,\n isVisible: boolean,\n control: Control<any>,\n required: boolean,\n validations?: SchemaValidator[] | null,\n ): void;\n}\n\nexport interface FormEditHooks {\n useDataProperties(\n formState: FormEditState,\n definition: DataControlDefinition,\n field: SchemaField,\n renderers: FormRenderer,\n ): DataRendererProps;\n useGroupProperties(\n formState: FormEditState,\n definition: GroupedControlsDefinition,\n currentHooks: FormEditHooks,\n renderers: FormRenderer,\n ): GroupRendererProps;\n useDisplayProperties(\n formState: FormEditState,\n definition: DisplayControlDefinition,\n ): DisplayRendererProps;\n useActionProperties(\n formState: FormEditState,\n definition: ActionControlDefinition,\n ): ActionRendererProps;\n schemaHooks: SchemaHooks;\n}\n\nexport interface DataRendererProps {\n definition: DataControlDefinition;\n renderOptions: RenderOptions;\n visible: Visibility;\n control: Control<any>;\n field: SchemaField;\n array?: ArrayRendererProps;\n readonly: boolean;\n defaultValue: any;\n required: boolean;\n options: FieldOption[] | undefined | null;\n customRender?: (props: DataRendererProps) => ReactElement;\n formState: FormEditState;\n}\n\nexport interface GroupRendererProps {\n definition: Omit<GroupedControlsDefinition, \"children\">;\n visible: Visibility;\n field?: CompoundField;\n array?: ArrayRendererProps;\n hideTitle: boolean;\n hooks: FormEditHooks;\n childCount: number;\n renderChild: (child: number) => ReactElement;\n}\n\nexport interface ControlData {\n [field: string]: any;\n}\n\nexport interface FormEditState {\n fields: SchemaField[];\n data: Control<ControlData>;\n readonly?: boolean;\n invisible?: boolean;\n}\n\nexport interface ArrayRendererProps {\n definition: DataControlDefinition | GroupedControlsDefinition;\n control: Control<any[]>;\n field: SchemaField;\n addAction?: ActionRendererProps;\n removeAction?: (childCount: number) => ActionRendererProps;\n childCount: number;\n renderChild: (childCount: number) => ReactElement;\n childKey: (childCount: number) => Key;\n}\n\nexport interface AdornmentProps {\n key: Key;\n definition: ControlAdornment;\n}\n\nexport interface AdornmentRenderer {\n wrap?: (children: ReactElement) => ReactElement;\n child?: [AdornmentPlacement, ReactNode];\n}\n\nexport interface FormRenderer {\n renderData: (props: DataRendererProps) => ReactElement;\n renderGroup: (props: GroupRendererProps) => ReactElement;\n renderDisplay: (props: DisplayRendererProps) => ReactElement;\n renderAction: (props: ActionRendererProps) => ReactElement;\n renderArray: (props: ArrayRendererProps) => ReactElement;\n renderLabel: (props: LabelRendererProps, elem: ReactElement) => ReactElement;\n renderVisibility: (visible: Visibility, elem: ReactElement) => ReactElement;\n renderAdornment: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nlet _FormRendererComponentsContext: Context<FormRenderer | undefined> | null =\n null;\n\nfunction FormRendererComponentsContext() {\n if (!_FormRendererComponentsContext) {\n _FormRendererComponentsContext = createContext<FormRenderer | undefined>(\n undefined,\n );\n }\n return _FormRendererComponentsContext;\n}\n\nexport function FormRendererProvider({\n value,\n children,\n}: {\n value: FormRenderer;\n children: ReactNode;\n}) {\n const { Provider } = FormRendererComponentsContext();\n return <Provider value={value} children={children} />;\n}\n\nexport function useFormRendererComponents() {\n const c = useContext(FormRendererComponentsContext());\n if (!c) {\n throw \"Need to use FormRendererComponentContext.Provider\";\n }\n return c;\n}\n\nexport interface Visibility {\n value: boolean;\n canChange: boolean;\n}\nexport interface LabelRendererProps {\n visible: Visibility;\n title?: ReactNode;\n forId?: string;\n required: boolean;\n control?: Control<any>;\n group?: boolean;\n renderAdornment: (placement: AdornmentPlacement) => ReactElement;\n}\n\nexport interface DisplayRendererProps {\n definition: DisplayControlDefinition;\n visible: Visibility;\n}\n\nexport interface ActionRendererProps {\n definition: ActionControlDefinition;\n visible: Visibility;\n onClick: () => void;\n}\n\nexport type AnySchemaFields =\n | SchemaField\n | (Omit<CompoundField, \"children\"> & { children: AnySchemaFields[] });\n\nexport function controlTitle(\n title: string | undefined | null,\n field: SchemaField,\n) {\n return title ? title : fieldDisplayName(field);\n}\n\nexport function renderControl<S extends ControlDefinition>(\n definition: S,\n formState: FormEditState,\n hooks: FormEditHooks,\n key: Key,\n): ReactElement {\n const { fields } = formState;\n return visitControlDefinition(\n definition,\n {\n data: (def) => {\n const fieldData = findScalarField(fields, def.field);\n if (!fieldData)\n return <h1 key={key}>No schema field for: {def.field}</h1>;\n return (\n <DataRenderer\n key={key}\n formState={formState}\n hooks={hooks}\n controlDef={def}\n fieldData={fieldData}\n />\n );\n },\n group: (d: GroupedControlsDefinition) => (\n <GroupRenderer\n key={key}\n hooks={hooks}\n groupDef={d}\n formState={formState}\n />\n ),\n action: (d: ActionControlDefinition) => (\n <ActionRenderer\n key={key}\n hooks={hooks}\n formState={formState}\n actionDef={d}\n />\n ),\n display: (d: DisplayControlDefinition) => (\n <DisplayRenderer\n key={key}\n hooks={hooks}\n formState={formState}\n displayDef={d}\n />\n ),\n },\n () => <h1>Unknown control: {(definition as any).type}</h1>,\n );\n}\n\n/** @trackControls */\nfunction DataRenderer({\n hooks,\n formState,\n controlDef,\n fieldData,\n}: {\n hooks: FormEditHooks;\n controlDef: DataControlDefinition;\n formState: FormEditState;\n fieldData: SchemaField;\n}) {\n const renderer = useFormRendererComponents();\n const props = hooks.useDataProperties(\n formState,\n controlDef,\n fieldData,\n renderer,\n );\n return (props.customRender ?? renderer.renderData)(props);\n}\n\n/** @trackControls */\nfunction ActionRenderer({\n hooks,\n formState,\n actionDef,\n}: {\n hooks: FormEditHooks;\n actionDef: ActionControlDefinition;\n formState: FormEditState;\n}) {\n const { renderAction } = useFormRendererComponents();\n const actionControlProperties = hooks.useActionProperties(\n formState,\n actionDef,\n );\n return renderAction(actionControlProperties);\n}\n\n/** @trackControls */\nfunction GroupRenderer({\n hooks,\n formState,\n groupDef,\n}: {\n hooks: FormEditHooks;\n groupDef: GroupedControlsDefinition;\n formState: FormEditState;\n}) {\n const renderers = useFormRendererComponents();\n const groupProps = hooks.useGroupProperties(\n formState,\n groupDef,\n hooks,\n renderers,\n );\n return renderers.renderGroup(groupProps);\n}\n\n/** @trackControls */\nfunction DisplayRenderer({\n hooks,\n formState,\n displayDef,\n}: {\n hooks: FormEditHooks;\n displayDef: DisplayControlDefinition;\n formState: FormEditState;\n}) {\n const { renderDisplay } = useFormRendererComponents();\n const displayProps = hooks.useDisplayProperties(formState, displayDef);\n return renderDisplay(displayProps);\n}\n\nexport function controlForField(\n field: string,\n formState: FormEditState,\n): Control<any> {\n const refField = findField(formState.fields, field);\n return (\n (refField && formState.data.fields[refField.field]) ?? newControl(undefined)\n );\n}\n\nexport function fieldForControl(c: ControlDefinition) {\n return isDataControl(c)\n ? c.field\n : isGroupControl(c)\n ? c.compoundField\n : undefined;\n}\n\nexport const AlwaysVisible: Visibility = { value: true, canChange: false };\n\nexport function createAction(\n label: string,\n onClick: () => void,\n actionId?: string,\n): ActionRendererProps {\n return {\n definition: {\n type: ControlDefinitionType.Action,\n actionId: actionId ?? label,\n title: label,\n },\n visible: AlwaysVisible,\n onClick,\n };\n}\n\nexport function visitControlData<S extends ControlDefinition, A>(\n definition: S,\n { fields, data }: FormEditState,\n cb: (\n definition: DataControlDefinition,\n control: Control<any>,\n ) => A | undefined,\n): A | undefined {\n return visitControlDefinition<A | undefined>(\n definition,\n {\n data(def: DataControlDefinition) {\n const fieldData = findScalarField(fields, def.field);\n if (!fieldData) return undefined;\n return cb(def, data.fields[fieldData.field]);\n },\n group(d: GroupedControlsDefinition) {\n if (d.compoundField) {\n const compound = findCompoundField(fields, d.compoundField);\n if (!compound) return;\n fields = compound.children;\n data = data.fields[compound.field];\n }\n const childState = { fields, data };\n for (let c of d.children) {\n const res = visitControlData(c, childState, cb);\n if (res !== undefined) return res;\n }\n return undefined;\n },\n action(d: ActionControlDefinition) {\n return undefined;\n },\n display(d: DisplayControlDefinition) {\n return undefined;\n },\n },\n () => undefined,\n );\n}\n","import {\n ActionControlDefinition,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n DateComparison,\n DateValidator,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n FieldOption,\n FieldValueExpression,\n GroupedControlsDefinition,\n JsonataExpression,\n SchemaField,\n SchemaValidator,\n ValidatorType,\n} from \"./types\";\nimport {\n ActionRendererProps,\n ArrayRendererProps,\n controlForField,\n controlTitle,\n DataRendererProps,\n fieldForControl,\n FormEditHooks,\n FormEditState,\n GroupRendererProps,\n renderControl,\n SchemaHooks,\n Visibility,\n} from \"./controlRender\";\nimport React, { Fragment, ReactElement, useEffect, useMemo } from \"react\";\nimport {\n addElement,\n Control,\n ControlChange,\n newControl,\n removeElement,\n useComputed,\n useControl,\n useControlEffect,\n useValidator,\n} from \"@react-typed-forms/core\";\nimport jsonata from \"jsonata\";\nimport {\n addMissingControls,\n elementValueForField,\n findCompoundField,\n findField,\n isGroupControl,\n isScalarField,\n} from \"./util\";\n\nexport function useDefaultValue(\n definition: DataControlDefinition,\n field: SchemaField,\n formState: FormEditState,\n hooks: SchemaHooks,\n) {\n const valueExpression = definition.dynamic?.find(\n (x) => x.type === DynamicPropertyType.DefaultValue,\n );\n if (valueExpression) {\n return hooks.useExpression(valueExpression.expr, formState).value;\n }\n return field.defaultValue;\n}\n\nexport function useIsControlVisible(\n definition: ControlDefinition,\n formState: FormEditState,\n hooks: SchemaHooks,\n): Visibility {\n const visibleExpression = definition.dynamic?.find(\n (x) => x.type === DynamicPropertyType.Visible,\n );\n if (visibleExpression && visibleExpression.expr) {\n const exprValue = hooks.useExpression(\n visibleExpression.expr,\n formState,\n ).value;\n return {\n value: Boolean(exprValue),\n canChange: true,\n };\n }\n const schemaFields = formState.fields;\n\n const { typeControl, compoundField } = useMemo(() => {\n const typeField = schemaFields.find(\n (x) => isScalarField(x) && x.isTypeField,\n ) as SchemaField | undefined;\n\n const typeControl = ((typeField &&\n formState.data.fields?.[typeField.field]) ??\n newControl(undefined)) as Control<string | undefined>;\n const compoundField =\n isGroupControl(definition) && definition.compoundField\n ? formState.data.fields[definition.compoundField]\n : undefined;\n return { typeControl, compoundField };\n }, [schemaFields, formState.data]);\n\n const fieldName = fieldForControl(definition);\n const onlyForTypes = (\n fieldName ? findField(schemaFields, fieldName) : undefined\n )?.onlyForTypes;\n const canChange = Boolean(compoundField || (onlyForTypes?.length ?? 0) > 0);\n const value =\n (!compoundField || compoundField.value != null) &&\n (!onlyForTypes ||\n onlyForTypes.length === 0 ||\n Boolean(typeControl.value && onlyForTypes.includes(typeControl.value)));\n return { value, canChange };\n}\n\nexport function getDefaultScalarControlProperties(\n definition: DataControlDefinition,\n field: SchemaField,\n visible: Visibility,\n defaultValue: any,\n control: Control<any>,\n formState: FormEditState,\n): DataRendererProps {\n return {\n definition,\n field,\n defaultValue,\n options: getOptionsForScalarField(field),\n renderOptions: definition.renderOptions ?? {\n type: DataRenderType.Standard,\n },\n required: definition.required ?? false,\n visible,\n readonly: formState.readonly ?? definition.readonly ?? false,\n control,\n formState,\n };\n}\n\nexport function getOptionsForScalarField(\n field: SchemaField,\n): FieldOption[] | undefined | null {\n const opts = field.options;\n if (opts?.length ?? 0 > 0) {\n return opts;\n }\n return undefined;\n}\n\nexport function createDefaultSchemaHooks(): SchemaHooks {\n function useExpression(\n expr: EntityExpression,\n formState: FormEditState,\n ): Control<any | undefined> {\n switch (expr.type) {\n case ExpressionType.Jsonata:\n const jExpr = expr as JsonataExpression;\n const compiledExpr = useMemo(\n () => jsonata(jExpr.expression),\n [jExpr.expression],\n );\n const control = useControl();\n useControlEffect(\n () => formState.data.value,\n async (v) => {\n control.value = await compiledExpr.evaluate(v);\n },\n );\n return control;\n case ExpressionType.FieldValue:\n const fvExpr = expr as FieldValueExpression;\n return useComputed(() => {\n const fv = controlForField(fvExpr.field, formState).value;\n return Array.isArray(fv)\n ? fv.includes(fvExpr.value)\n : fv === fvExpr.value;\n });\n default:\n return useControl(undefined);\n }\n }\n\n function useValidators(\n formState: FormEditState,\n isVisible: boolean,\n control: Control<any>,\n required: boolean,\n validators?: SchemaValidator[] | null,\n ) {\n if (required)\n useValidator(\n control,\n (v) =>\n isVisible && (v == null || v == \"\") ? \"Please enter a value\" : null,\n \"required\",\n );\n validators?.forEach((v, i) => {\n switch (v.type) {\n case ValidatorType.Date:\n processDateValidator(v as DateValidator);\n break;\n case ValidatorType.Jsonata:\n const errorMsg = useExpression(\n v satisfies EntityExpression,\n formState,\n );\n useControlEffect(\n () => [isVisible, errorMsg.value],\n ([isVisible, msg]) =>\n control.setError(v.type + i, isVisible ? msg : null),\n true,\n );\n break;\n }\n\n function processDateValidator(dv: DateValidator) {\n let comparisonDate: number;\n if (dv.fixedDate) {\n comparisonDate = Date.parse(dv.fixedDate);\n } else {\n const nowDate = new Date();\n comparisonDate = Date.UTC(\n nowDate.getFullYear(),\n nowDate.getMonth(),\n nowDate.getDate(),\n );\n if (dv.daysFromCurrent) {\n comparisonDate += dv.daysFromCurrent * 86400000;\n }\n }\n useValidator(\n control,\n (v) => {\n if (v) {\n const selDate = Date.parse(v);\n const notAfter = dv.comparison === DateComparison.NotAfter;\n if (\n notAfter ? selDate > comparisonDate : selDate < comparisonDate\n ) {\n return `Date must not be ${\n notAfter ? \"after\" : \"before\"\n } ${new Date(comparisonDate).toDateString()}`;\n }\n }\n return null;\n },\n \"date\" + i,\n );\n }\n });\n }\n return { useExpression, useValidators };\n}\n\nexport const defaultFormEditHooks = createFormEditHooks(\n createDefaultSchemaHooks(),\n);\n\nexport function createFormEditHooks(schemaHooks: SchemaHooks): FormEditHooks {\n return {\n schemaHooks,\n useDataProperties(\n formState,\n definition,\n field,\n renderer,\n ): DataRendererProps {\n const visible = useIsControlVisible(definition, formState, schemaHooks);\n const isVisible = visible.value && !formState.invisible;\n const defaultValue = useDefaultValue(\n definition,\n field,\n formState,\n schemaHooks,\n );\n const scalarControl = formState.data.fields[field.field];\n\n useEffect(() => {\n if (!isVisible) scalarControl.value = null;\n else if (scalarControl.current.value == null) {\n scalarControl.value = defaultValue;\n }\n }, [isVisible, defaultValue]);\n\n const dataProps = getDefaultScalarControlProperties(\n definition,\n field,\n visible,\n defaultValue,\n scalarControl,\n formState,\n );\n\n schemaHooks.useValidators(\n formState,\n isVisible,\n scalarControl,\n dataProps.required,\n definition.validators,\n );\n\n useEffect(() => {\n const subscription = scalarControl.subscribe(\n (c) => (c.touched = true),\n ControlChange.Validate,\n );\n return () => scalarControl.unsubscribe(subscription);\n }, []);\n\n if (!field.collection) return dataProps;\n return {\n ...dataProps,\n array: defaultArrayRendererProps(\n scalarControl,\n field,\n definition,\n dataProps.readonly,\n (c) => renderer.renderData({ ...dataProps, control: c }),\n ),\n };\n },\n useDisplayProperties: (fs, definition) => {\n const visible = useIsControlVisible(definition, fs, schemaHooks);\n return { visible, definition };\n },\n useGroupProperties: (fs, definition, hooks, renderers) => {\n const visible = useIsControlVisible(definition, fs, schemaHooks);\n const field = definition.compoundField\n ? findCompoundField(fs.fields, definition.compoundField)\n : undefined;\n const newFs: Omit<FormEditState, \"data\"> & { data: Control<any> } = {\n ...fs,\n fields: field ? field.children : fs.fields,\n data: field ? fs.data.fields[field.field] : fs.data,\n invisible: !visible.value || fs.invisible,\n };\n const groupProps = {\n visible,\n hooks,\n hideTitle: definition.groupOptions.hideTitle ?? false,\n childCount: definition.children.length,\n renderChild: (i) =>\n renderControl(definition.children[i], newFs, hooks, i),\n definition,\n } satisfies GroupRendererProps;\n if (field?.collection) {\n return {\n ...groupProps,\n array: defaultArrayRendererProps(\n newFs.data,\n field,\n definition,\n fs.readonly,\n (e) =>\n renderers.renderGroup({\n ...groupProps,\n hideTitle: true,\n renderChild: (i) =>\n renderControl(\n definition.children[i],\n { ...newFs, data: e },\n hooks,\n i,\n ),\n }),\n ),\n };\n }\n return groupProps;\n },\n useActionProperties(\n formState: FormEditState,\n definition: ActionControlDefinition,\n ): ActionRendererProps {\n const visible = useIsControlVisible(definition, formState, schemaHooks);\n return {\n visible,\n onClick: () => {},\n definition,\n };\n },\n };\n}\n\nfunction defaultArrayRendererProps(\n control: Control<any[]>,\n field: SchemaField,\n definition: DataControlDefinition | GroupedControlsDefinition,\n readonly: boolean | undefined | null,\n renderElem: (c: Control<any>) => ReactElement,\n): ArrayRendererProps {\n return {\n control,\n childCount: control.elements?.length ?? 0,\n field,\n definition,\n addAction: !readonly\n ? {\n definition: {\n title: \"Add \" + controlTitle(definition.title, field),\n type: ControlDefinitionType.Action,\n actionId: \"addElement\",\n },\n visible: { value: true, canChange: false },\n onClick: () => addElement(control, elementValueForField(field)),\n }\n : undefined,\n removeAction: !readonly\n ? (i) => ({\n definition: {\n title: \"Remove\",\n type: ControlDefinitionType.Action,\n actionId: \"removeElement\",\n },\n visible: { value: true, canChange: false },\n onClick: () => removeElement(control, control.elements[i]),\n })\n : undefined,\n childKey: (i) => control.elements[i].uniqueId,\n renderChild: (i) => {\n const c = control.elements[i];\n return <Fragment key={c.uniqueId}>{renderElem(c)}</Fragment>;\n },\n };\n}\n\nexport function useControlsWithDefaults(\n definition: GroupedControlsDefinition,\n sf: SchemaField[],\n) {\n return useMemo(\n () =>\n definition.children.length\n ? definition\n : { ...definition, children: addMissingControls(sf, []) },\n [sf, definition],\n );\n}\n","import React, {\n CSSProperties,\n Fragment,\n ReactElement,\n ReactNode,\n useMemo,\n useState,\n} from \"react\";\nimport {\n ActionRendererProps,\n AdornmentProps,\n AdornmentRenderer,\n ArrayRendererProps,\n controlTitle,\n DataRendererProps,\n DisplayRendererProps,\n FormRenderer,\n GroupRendererProps,\n LabelRendererProps,\n Visibility,\n} from \"./controlRender\";\nimport clsx from \"clsx\";\nimport {\n AdornmentPlacement,\n ControlDefinition,\n DataRenderType,\n DisplayDataType,\n FieldOption,\n FieldType,\n GridRenderer,\n HtmlDisplay,\n isGridRenderer,\n TextDisplay,\n} from \"./types\";\nimport { Control, Fcheckbox, formControlProps } from \"@react-typed-forms/core\";\nimport { hasOptions } from \"./util\";\n\nexport interface DefaultRenderers {\n data: DataRendererRegistration;\n label: LabelRendererRegistration;\n action: ActionRendererRegistration;\n array: ArrayRendererRegistration;\n group: GroupRendererRegistration;\n display: DisplayRendererRegistration;\n visibility: VisibilityRendererRegistration;\n adornment: AdornmentRendererRegistration;\n}\nexport interface DataRendererRegistration {\n type: \"data\";\n schemaType?: string | string[];\n renderType?: string | string[];\n options?: boolean;\n collection?: boolean;\n match?: (props: DataRendererProps) => boolean;\n render: (\n props: DataRendererProps,\n defaultLabel: (label?: Partial<LabelRendererProps>) => LabelRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface LabelRendererRegistration {\n type: \"label\";\n render: (\n labelProps: LabelRendererProps,\n elem: ReactElement,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface ActionRendererRegistration {\n type: \"action\";\n render: (props: ActionRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface ArrayRendererRegistration {\n type: \"array\";\n render: (props: ArrayRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface GroupRendererRegistration {\n type: \"group\";\n render: (\n props: GroupRendererProps,\n defaultLabel: (label?: Partial<LabelRendererProps>) => LabelRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface DisplayRendererRegistration {\n type: \"display\";\n render: (\n props: DisplayRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface VisibilityRendererRegistration {\n type: \"visibility\";\n render: (visible: Visibility, elem: ReactElement) => ReactElement;\n}\n\nexport interface AdornmentRendererRegistration {\n type: \"adornment\";\n adornmentType?: string | string[];\n render: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nexport type AnyRendererRegistration =\n | DataRendererRegistration\n | GroupRendererRegistration\n | DisplayRendererRegistration\n | ActionRendererRegistration\n | LabelRendererRegistration\n | ArrayRendererRegistration\n | AdornmentRendererRegistration\n | VisibilityRendererRegistration;\n\nexport function createFormRenderer(\n customRenderers: AnyRendererRegistration[] = [],\n defaultRenderers: DefaultRenderers = createClassStyledRenderers(),\n): FormRenderer {\n const dataRegistrations = customRenderers.filter(isDataRegistration);\n const adornmentRegistrations = customRenderers.filter(\n isAdornmentRegistration,\n );\n const labelRenderer =\n customRenderers.find(isLabelRegistration) ?? defaultRenderers.label;\n const arrayRenderer =\n customRenderers.find(isArrayRegistration) ?? defaultRenderers.array;\n const renderVisibility = (\n customRenderers.find(isVisibilityRegistration) ??\n defaultRenderers.visibility\n ).render;\n\n const formRenderers = {\n renderAction,\n renderData,\n renderGroup,\n renderDisplay,\n renderLabel,\n renderArray,\n renderVisibility,\n renderAdornment,\n };\n\n function renderAdornment(props: AdornmentProps): AdornmentRenderer {\n const renderer =\n adornmentRegistrations.find((x) =>\n isOneOf(x.adornmentType, props.definition.type),\n ) ?? defaultRenderers.adornment;\n return renderer.render(props);\n }\n\n function renderArray(props: ArrayRendererProps) {\n return arrayRenderer.render(props, formRenderers);\n }\n\n function renderLabel(props: LabelRendererProps, elem: ReactElement) {\n return labelRenderer.render(props, elem, formRenderers);\n }\n\n function withAdornments(\n definition: ControlDefinition,\n adornments?: AdornmentRenderer[],\n ): [\n AdornmentRenderer[],\n (placement: AdornmentPlacement) => ReactElement,\n (elem: ReactElement) => ReactElement,\n ] {\n const rAdornments = adornments\n ? adornments\n : definition.adornments?.map((x, i) =>\n renderAdornment({ definition: x, key: i }),\n ) ?? [];\n function combineAdornments(placement: AdornmentPlacement) {\n return (\n <>\n {rAdornments\n .filter((x) => x.child && x.child[0] === placement)\n .map((x) => x.child![1])}\n </>\n );\n }\n return [\n rAdornments,\n combineAdornments,\n (mainElem) =>\n !adornments\n ? mainElem\n : rAdornments.reduce((e, n) => n.wrap?.(e) ?? e, mainElem),\n ];\n }\n\n function renderData(\n props: DataRendererProps,\n adornments?: AdornmentRenderer[],\n ): ReactElement {\n const {\n definition,\n renderOptions: { type: renderType },\n visible,\n required,\n control,\n field,\n } = props;\n\n const options = hasOptions(props);\n const renderer =\n dataRegistrations.find(\n (x) =>\n (x.collection ?? false) === (field.collection ?? false) &&\n (x.options ?? false) === options &&\n isOneOf(x.schemaType, field.type) &&\n isOneOf(x.renderType, renderType) &&\n (!x.match || x.match(props)),\n ) ?? defaultRenderers.data;\n\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n definition,\n adornments,\n );\n return wrapElem(\n renderer.render(props, createLabel, {\n ...formRenderers,\n renderData: (p) => renderData(p, rAdornments),\n }),\n );\n\n function createLabel(labelProps?: Partial<LabelRendererProps>) {\n return {\n visible,\n required,\n control,\n forId: \"c\" + control.uniqueId,\n renderAdornment,\n ...labelProps,\n title: labelProps?.title ?? controlTitle(definition.title, field),\n };\n }\n }\n\n function renderGroup(\n props: GroupRendererProps,\n adornments?: AdornmentRenderer[],\n ): ReactElement {\n const { definition, visible, field } = props;\n\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n props.definition,\n adornments,\n );\n\n const title = props.hideTitle\n ? undefined\n : field\n ? controlTitle(definition.title, field)\n : definition.title;\n\n return wrapElem(\n defaultRenderers.group.render(props, createLabel, {\n ...formRenderers,\n renderGroup: (p) => renderGroup(p, rAdornments),\n }),\n );\n\n function createLabel(\n labelProps?: Partial<LabelRendererProps>,\n ): LabelRendererProps {\n return {\n required: false,\n visible,\n group: true,\n renderAdornment,\n title,\n ...labelProps,\n };\n }\n }\n\n function renderAction(\n props: ActionRendererProps,\n adornments?: AdornmentRenderer[],\n ) {\n const renderer =\n customRenderers.find(isActionRegistration) ?? defaultRenderers.action;\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n props.definition,\n adornments,\n );\n return wrapElem(renderer.render(props, formRenderers));\n }\n\n function renderDisplay(\n props: DisplayRendererProps,\n adornments?: AdornmentRenderer[],\n ) {\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n props.definition,\n adornments,\n );\n return wrapElem(defaultRenderers.display.render(props, formRenderers));\n }\n\n return formRenderers;\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n requiredElement?: ReactNode;\n labelClass?: string;\n}\n\ninterface DefaultActionRendererOptions {\n className?: string;\n}\n\nexport function createDefaultActionRenderer(\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n function render(\n { visible, onClick, definition: { title } }: ActionRendererProps,\n { renderVisibility }: Pick<FormRenderer, \"renderVisibility\">,\n ) {\n return renderVisibility(\n visible,\n <button className={options.className} onClick={onClick}>\n {title}\n </button>,\n );\n }\n return { render, type: \"action\" };\n}\nexport function createDefaultLabelRenderer(\n options: DefaultLabelRendererOptions = { requiredElement: <span> *</span> },\n): LabelRendererRegistration {\n return {\n render: (p, elem, { renderVisibility }) =>\n renderVisibility(\n p.visible,\n <DefaultLabelRenderer {...p} {...options} children={elem} />,\n ),\n type: \"label\",\n };\n}\n\nexport function DefaultLabelRenderer({\n className,\n labelClass,\n title,\n forId,\n required,\n children,\n group,\n groupLabelClass,\n renderAdornment,\n requiredElement,\n}: LabelRendererProps &\n DefaultLabelRendererOptions & { children: ReactElement }) {\n return title ? (\n <div className={className}>\n {renderAdornment(AdornmentPlacement.LabelStart)}\n <label\n htmlFor={forId}\n className={clsx(labelClass, group && groupLabelClass)}\n >\n {title}\n {required && requiredElement}\n </label>\n {renderAdornment(AdornmentPlacement.LabelEnd)}\n {renderAdornment(AdornmentPlacement.ControlStart)}\n {children}\n {renderAdornment(AdornmentPlacement.ControlEnd)}\n </div>\n ) : (\n <>{children}</>\n );\n}\n\ninterface DefaultArrayRendererOptions {\n className?: string;\n removableClass?: string;\n childClass?: string;\n removableChildClass?: string;\n removeActionClass?: string;\n addActionClass?: string;\n}\n\nexport function createDefaultArrayRenderer(\n options?: DefaultArrayRendererOptions,\n): ArrayRendererRegistration {\n const {\n className,\n removableClass,\n childClass,\n removableChildClass,\n removeActionClass,\n addActionClass,\n } = options ?? {};\n function render(\n {\n childCount,\n renderChild,\n addAction,\n removeAction,\n childKey,\n }: ArrayRendererProps,\n { renderAction }: Pick<FormRenderer, \"renderAction\">,\n ) {\n return (\n <>\n <div className={clsx(className, removeAction && removableClass)}>\n {Array.from({ length: childCount }, (_, x) =>\n removeAction ? (\n <Fragment key={childKey(x)}>\n <div className={clsx(childClass, removableChildClass)}>\n {renderChild(x)}\n </div>\n <div className={removeActionClass}>\n {renderAction(removeAction(x))}\n </div>\n </Fragment>\n ) : (\n <div key={childKey(x)} className={childClass}>\n {renderChild(x)}\n </div>\n ),\n )}\n </div>\n {addAction && (\n <div className={addActionClass}>{renderAction(addAction)}</div>\n )}\n </>\n );\n }\n return { render, type: \"array\" };\n}\n\ninterface StyleProps {\n className?: string;\n style?: CSSProperties;\n}\n\ninterface DefaultGroupRendererOptions {\n className?: string;\n standardClassName?: string;\n gridStyles?: (columns: GridRenderer) => StyleProps;\n gridClassName?: string;\n defaultGridColumns?: number;\n}\n\nexport function createDefaultGroupRenderer(\n options?: DefaultGroupRendererOptions,\n): GroupRendererRegistration {\n const {\n className,\n gridStyles = defaultGridStyles,\n defaultGridColumns = 2,\n gridClassName,\n standardClassName,\n } = options ?? {};\n\n function defaultGridStyles({\n columns = defaultGridColumns,\n }: GridRenderer): StyleProps {\n return {\n className: gridClassName,\n style: {\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n },\n };\n }\n\n function render(\n props: GroupRendererProps,\n defaultLabel: (label?: Partial<LabelRendererProps>) => LabelRendererProps,\n {\n renderLabel,\n renderArray,\n }: Pick<FormRenderer, \"renderLabel\" | \"renderArray\" | \"renderGroup\">,\n ) {\n const { childCount, renderChild, definition } = props;\n\n return renderLabel(\n defaultLabel(),\n props.array ? renderArray(props.array) : renderChildren(),\n );\n\n function renderChildren() {\n const { groupOptions } = definition;\n const { style, className: gcn } = isGridRenderer(groupOptions)\n ? gridStyles(groupOptions)\n : ({ className: standardClassName } satisfies StyleProps);\n return (\n <div className={clsx(className, gcn)} style={style}>\n {Array.from({ length: childCount }, (_, x) => renderChild(x))}\n </div>\n );\n }\n }\n return { type: \"group\", render };\n}\n\nexport interface DefaultDisplayRendererOptions {\n textClassName?: string;\n htmlClassName?: string;\n}\nexport function createDefaultDisplayRenderer(\n options: DefaultDisplayRendererOptions = {},\n): DisplayRendererRegistration {\n function doRender({ definition: { displayData } }: DisplayRendererProps) {\n switch (displayData.type) {\n case DisplayDataType.Text:\n return (\n <div className={options.textClassName}>\n {(displayData as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n className={options.htmlClassName}\n dangerouslySetInnerHTML={{\n __html: (displayData as HtmlDisplay).html,\n }}\n />\n );\n default:\n return <h1>Unknown display type: {displayData.type}</h1>;\n }\n }\n return {\n render: (p, { renderVisibility }) =>\n renderVisibility(p.visible, doRender(p)),\n type: \"display\",\n };\n}\n\nexport const DefaultBoolOptions: FieldOption[] = [\n { name: \"Yes\", value: true },\n { name: \"No\", value: false },\n];\ninterface DefaultDataRendererOptions {\n inputClass?: string;\n selectOptions?: SelectRendererOptions;\n booleanOptions?: FieldOption[];\n optionRenderer?: DataRendererRegistration;\n}\n\nexport function createDefaultDataRenderer(\n options: DefaultDataRendererOptions = {},\n): DataRendererRegistration {\n const selectRenderer = createSelectRenderer(options.selectOptions ?? {});\n const { inputClass, booleanOptions, optionRenderer } = {\n optionRenderer: selectRenderer,\n booleanOptions: DefaultBoolOptions,\n ...options,\n };\n return createDataRenderer((props, defaultLabel, renderers) => {\n if (props.array) {\n return renderers.renderArray(props.array);\n }\n let renderType = props.renderOptions.type;\n const fieldType = props.field.type;\n const isBool = fieldType === FieldType.Bool;\n if (booleanOptions != null && isBool && props.options == null) {\n return renderers.renderData({ ...props, options: booleanOptions });\n }\n if (renderType === DataRenderType.Standard && hasOptions(props)) {\n return optionRenderer.render(props, defaultLabel, renderers);\n }\n switch (renderType) {\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, defaultLabel, renderers);\n }\n const l = defaultLabel();\n return renderers.renderLabel(\n l,\n renderType === DataRenderType.Checkbox ? (\n <Fcheckbox control={props.control} />\n ) : (\n <ControlInput\n className={inputClass}\n id={l.forId}\n readOnly={props.readonly}\n control={props.control}\n convert={createInputConversion(props.field.type)}\n />\n ),\n );\n });\n}\n\nexport function ControlInput({\n control,\n convert,\n ...props\n}: React.InputHTMLAttributes<HTMLInputElement> & {\n control: Control<any>;\n convert: InputConversion;\n}) {\n const { errorText, value, onChange, ...inputProps } =\n formControlProps(control);\n return (\n <input\n {...inputProps}\n type={convert[0]}\n value={value == null ? \"\" : convert[2](value)}\n onChange={(e) => {\n control.value = convert[1](e.target.value);\n }}\n {...props}\n />\n );\n}\n\nexport interface DefaultVisibilityRendererOptions {}\n\nexport interface DefaultAdornmentRendererOptions {}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n return { type: \"adornment\", render: () => ({}) };\n}\nexport function createDefaultVisibilityRenderer(\n options: DefaultVisibilityRendererOptions = {},\n): VisibilityRendererRegistration {\n return {\n type: \"visibility\",\n render: (visible, children) => (visible.value ? children : <></>),\n };\n}\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n visibility?: DefaultVisibilityRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\n}\n\nexport function createDefaultRenderers(\n options: DefaultRendererOptions = {},\n): DefaultRenderers {\n return {\n data: createDefaultDataRenderer(options.data),\n display: createDefaultDisplayRenderer(options.display),\n action: createDefaultActionRenderer(options.action),\n array: createDefaultArrayRenderer(options.array),\n group: createDefaultGroupRenderer(options.group),\n label: createDefaultLabelRenderer(options.label),\n visibility: createDefaultVisibilityRenderer(options.visibility),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n };\n}\n\nfunction createClassStyledRenderers() {\n return createDefaultRenderers({\n label: { className: \"control\" },\n group: { className: \"group\" },\n array: { className: \"control-array\" },\n action: { className: \"action\" },\n data: { inputClass: \"data\" },\n display: { htmlClassName: \"html\", textClassName: \"text\" },\n });\n}\n\nfunction isAdornmentRegistration(\n x: AnyRendererRegistration,\n): x is AdornmentRendererRegistration {\n return x.type === \"adornment\";\n}\n\nfunction isDataRegistration(\n x: AnyRendererRegistration,\n): x is DataRendererRegistration {\n return x.type === \"data\";\n}\n\nfunction isLabelRegistration(\n x: AnyRendererRegistration,\n): x is LabelRendererRegistration {\n return x.type === \"label\";\n}\n\nfunction isActionRegistration(\n x: AnyRendererRegistration,\n): x is ActionRendererRegistration {\n return x.type === \"action\";\n}\n\nfunction isArrayRegistration(\n x: AnyRendererRegistration,\n): x is ArrayRendererRegistration {\n return x.type === \"array\";\n}\n\nfunction isVisibilityRegistration(\n x: AnyRendererRegistration,\n): x is VisibilityRendererRegistration {\n return x.type === \"visibility\";\n}\n\nfunction isOneOf(x: string | string[] | undefined, v: string) {\n return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;\n}\n\nexport function 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 createDataRendererLabelled(\n render: (\n props: DataRendererProps,\n id: string,\n renderers: FormRenderer,\n ) => ReactElement,\n options?: Partial<DataRendererRegistration>,\n): DataRendererRegistration {\n return {\n type: \"data\",\n render: (props, defaultLabel, renderers) => {\n const dl = defaultLabel();\n return renderers.renderLabel(dl, render(props, dl.forId!, renderers));\n },\n ...options,\n };\n}\n\nexport function createLabelRenderer(\n options: Omit<LabelRendererRegistration, \"type\">,\n): LabelRendererRegistration {\n return { type: \"label\", ...options };\n}\n\nexport function createAdornmentRenderer(\n render: (props: AdornmentProps) => AdornmentRenderer,\n options?: Omit<AdornmentRendererRegistration, \"type\">,\n): AdornmentRendererRegistration {\n return { type: \"adornment\", ...options, render };\n}\n\nexport interface SelectRendererOptions {\n className?: string;\n emptyText?: string;\n requiredText?: string;\n}\n\nexport function createSelectRenderer(options: SelectRendererOptions = {}) {\n return createDataRendererLabelled(\n (props, id) => (\n <SelectDataRenderer\n className={options.className}\n state={props.control}\n id={id}\n options={props.options!}\n required={props.required}\n emptyText={options.emptyText}\n requiredText={options.requiredText}\n convert={createSelectConversion(props.field.type)}\n />\n ),\n {\n options: true,\n },\n );\n}\n\ntype SelectConversion = (a: any) => string | number;\n\ninterface SelectDataRendererProps {\n id?: string;\n className?: string;\n options: {\n name: string;\n value: any;\n disabled?: boolean;\n }[];\n emptyText?: string;\n requiredText?: string;\n required: boolean;\n state: Control<any>;\n convert: SelectConversion;\n}\n\nexport function SelectDataRenderer({\n state,\n options,\n className,\n convert,\n required,\n emptyText = \"N/A\",\n requiredText = \"<please select>\",\n ...props\n}: SelectDataRendererProps) {\n const { value, disabled } = state;\n const [showEmpty] = useState(!required || value == null);\n const optionStringMap = useMemo(\n () => Object.fromEntries(options.map((x) => [convert(x.value), x.value])),\n [options],\n );\n return (\n <select\n {...props}\n className={className}\n onChange={(v) => (state.value = optionStringMap[v.target.value])}\n value={convert(value)}\n disabled={disabled}\n >\n {showEmpty && (\n <option value=\"\">{required ? requiredText : emptyText}</option>\n )}\n {options.map((x, i) => (\n <option key={i} value={convert(x.value)} disabled={x.disabled}>\n {x.name}\n </option>\n ))}\n </select>\n );\n}\n\nexport function createSelectConversion(ft: string): SelectConversion {\n switch (ft) {\n case FieldType.String:\n case FieldType.Int:\n case FieldType.Double:\n return (a) => a;\n default:\n return (a) => a?.toString() ?? \"\";\n }\n}\n\ntype InputConversion = [string, (s: any) => any, (a: any) => string | number];\n\nexport function createInputConversion(ft: string): InputConversion {\n switch (ft) {\n case FieldType.String:\n return [\"text\", (a) => a, (a) => a];\n case FieldType.Bool:\n return [\"text\", (a) => a === \"true\", (a) => a?.toString() ?? \"\"];\n case FieldType.Int:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseInt(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n case FieldType.Date:\n return [\"date\", (a) => a, (a) => a];\n case FieldType.Double:\n return [\"number\", (a) => parseFloat(a), (a) => a];\n default:\n return [\"text\", (a) => a, (a) => a];\n }\n}\n","import React from \"react\";\nimport { DefaultRendererOptions } from \"./renderers\";\n\nexport const defaultTailwindTheme: DefaultRendererOptions = {\n label: {\n className: \"flex flex-col\",\n groupLabelClass: \"font-bold\",\n requiredElement: <span className=\"text-red-500\"> *</span>,\n },\n array: {\n removableClass: \"grid grid-cols-[1fr_auto] items-center gap-x-2\",\n childClass: \"grow\",\n },\n group: {\n standardClassName: \"space-y-4\",\n gridClassName: \"gap-x-2 gap-y-4\",\n },\n action: {\n className: \"bg-primary rounded-lg p-3 text-white\",\n },\n};\n"],"names":["FieldType","ControlDefinitionType","DynamicPropertyType","ExpressionType","AdornmentPlacement","ControlAdornmentType","DataRenderType","SyncTextType","GroupRenderType","DisplayDataType","ValidatorType","DateComparison","isDataControlDefinition","x","type","Data","isGroupControlsDefinition","Group","isDisplayControlsDefinition","Display","isActionControlsDefinition","Action","visitControlDefinition","visitor","defaultValue","action","data","display","group","dataControl","field","options","_extends","fieldValueExpr","value","FieldValue","visibility","expr","Visible","isGridRenderer","Grid","buildSchema","def","Object","entries","map","stringField","displayName","makeScalarField","String","stringOptionsField","slice","call","arguments","withScalarOptions","v","n","defaultScalarField","makeCompoundField","defaultCompoundField","intField","Int","boolField","Bool","compoundField","fields","other","children","collection","tags","Compound","system","treeChildren","onlyForTypes","required","applyDefaultValues","defaultValueForFields","applyValue","filter","isCompoundField","length","out","forEach","applyDefaultForField","defaultValueForField","parent","notElement","fromEntries","sf","undefined","elementValueForField","findScalarField","findField","findCompoundField","find","isScalarField","isDataControl","c","isGroupControl","fieldHasTag","tag","_field$tags","Boolean","includes","fieldDisplayName","_field$displayName","hasOptions","o","_o$options$length","_o$options","defaultControlForField","title","groupOptions","hideTitle","_sf$tags","htmlEditor","renderOptions","HtmlEditor","Standard","findReferencedControl","control","findReferencedControlInArray","controls","_iterator","_createForOfIteratorHelperLoose","_step","done","ref","addMissingControls","changes","flatMap","existing","changedCompounds","ex","cf","concat","_FormRendererComponentsContext","FormRendererComponentsContext","createContext","FormRendererProvider","_ref","_effect","_useComponentTracking","_FormRendererComponen","Provider","React","createElement","useFormRendererComponents","useContext","controlTitle","renderControl","definition","formState","hooks","key","fieldData","DataRenderer","controlDef","d","GroupRenderer","groupDef","ActionRenderer","actionDef","DisplayRenderer","displayDef","_ref2","_effect2","_props$customRender","renderer","props","useDataProperties","customRender","renderData","_ref3","_effect3","_useFormRendererCompo","renderAction","actionControlProperties","useActionProperties","_ref4","_effect4","renderers","groupProps","useGroupProperties","renderGroup","_ref5","_effect5","_useFormRendererCompo2","renderDisplay","displayProps","useDisplayProperties","controlForField","_ref6","refField","newControl","fieldForControl","AlwaysVisible","canChange","createAction","label","onClick","actionId","visible","visitControlData","_ref7","cb","compound","childState","res","useDefaultValue","_definition$dynamic","valueExpression","dynamic","DefaultValue","useExpression","useIsControlVisible","_definition$dynamic2","_onlyForTypes$length","visibleExpression","exprValue","schemaFields","_useMemo","useMemo","_formState$data$field","typeField","isTypeField","typeControl","fieldName","getDefaultScalarControlProperties","_definition$renderOpt","_definition$required","_formState$readonly","getOptionsForScalarField","readonly","_opts$length","opts","createDefaultSchemaHooks","Jsonata","jExpr","compiledExpr","jsonata","expression","useControl","useControlEffect","Promise","resolve","evaluate","then","_compiledExpr$evaluat","e","reject","fvExpr","useComputed","fv","Array","isArray","useValidators","isVisible","validators","useValidator","i","Date","processDateValidator","errorMsg","msg","setError","dv","comparisonDate","fixedDate","parse","nowDate","UTC","getFullYear","getMonth","getDate","daysFromCurrent","selDate","notAfter","comparison","NotAfter","toDateString","defaultFormEditHooks","createFormEditHooks","schemaHooks","invisible","scalarControl","useEffect","current","dataProps","subscription","subscribe","touched","ControlChange","Validate","unsubscribe","array","defaultArrayRendererProps","fs","_definition$groupOpti","newFs","childCount","renderChild","renderElem","_control$elements$len","_control$elements","elements","addAction","addElement","removeAction","removeElement","childKey","uniqueId","Fragment","useControlsWithDefaults","createFormRenderer","customRenderers","defaultRenderers","_customRenderers$find","_customRenderers$find2","_customRenderers$find3","createClassStyledRenderers","dataRegistrations","isDataRegistration","adornmentRegistrations","isAdornmentRegistration","labelRenderer","isLabelRegistration","arrayRenderer","isArrayRegistration","renderVisibility","isVisibilityRegistration","render","formRenderers","renderLabel","renderArray","renderAdornment","_adornmentRegistratio","isOneOf","adornmentType","adornment","elem","withAdornments","adornments","_definition$adornment","_definition$adornment2","rAdornments","combineAdornments","placement","child","mainElem","reduce","_n$wrap","wrap","_dataRegistrations$fi","renderType","_x$collection","_field$collection","_x$options","schemaType","match","_withAdornments","wrapElem","createLabel","p","labelProps","_labelProps$title","forId","_withAdornments2","_customRenderers$find4","isActionRegistration","_withAdornments3","_withAdornments4","createDefaultActionRenderer","className","createDefaultLabelRenderer","requiredElement","DefaultLabelRenderer","labelClass","groupLabelClass","LabelStart","htmlFor","clsx","LabelEnd","ControlStart","ControlEnd","createDefaultArrayRenderer","removableClass","childClass","removableChildClass","removeActionClass","addActionClass","from","_","createDefaultGroupRenderer","_ref8","_ref8$gridStyles","gridStyles","defaultGridStyles","_ref8$defaultGridColu","defaultGridColumns","gridClassName","standardClassName","_ref9","_ref9$columns","columns","style","gridTemplateColumns","defaultLabel","_ref10","renderChildren","_ref11","gcn","createDefaultDisplayRenderer","doRender","_ref12","displayData","Text","textClassName","text","Html","htmlClassName","dangerouslySetInnerHTML","__html","html","_ref13","DefaultBoolOptions","name","createDefaultDataRenderer","_options$selectOption","selectRenderer","createSelectRenderer","selectOptions","_optionRenderer$boole","optionRenderer","booleanOptions","inputClass","createDataRenderer","fieldType","isBool","Dropdown","l","Checkbox","Fcheckbox","ControlInput","id","readOnly","convert","createInputConversion","_ref14","_objectWithoutPropertiesLoose","_excluded","_formControlProps","formControlProps","errorText","onChange","inputProps","_excluded2","target","createDefaultAdornmentRenderer","createDefaultVisibilityRenderer","createDefaultRenderers","createArrayRenderer","createDataRendererLabelled","dl","createLabelRenderer","createAdornmentRenderer","SelectDataRenderer","state","emptyText","requiredText","createSelectConversion","_ref15","_ref15$emptyText","_ref15$requiredText","_excluded3","disabled","_useState","useState","showEmpty","optionStringMap","ft","Double","a","_a$toString","toString","_a$toString2","parseInt","parseFloat","defaultTailwindTheme"],"mappings":"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"}
@@ -121,6 +121,7 @@ export interface DefaultRendererOptions {
121
121
  adornment?: DefaultAdornmentRendererOptions;
122
122
  }
123
123
  export declare function createDefaultRenderers(options?: DefaultRendererOptions): DefaultRenderers;
124
+ export declare function createArrayRenderer(render: ArrayRendererRegistration["render"], options?: Partial<ArrayRendererRegistration>): ArrayRendererRegistration;
124
125
  export declare function createDataRenderer(render: DataRendererRegistration["render"], options?: Partial<DataRendererRegistration>): DataRendererRegistration;
125
126
  export declare function createDataRendererLabelled(render: (props: DataRendererProps, id: string, renderers: FormRenderer) => ReactElement, options?: Partial<DataRendererRegistration>): DataRendererRegistration;
126
127
  export declare function createLabelRenderer(options: Omit<LabelRendererRegistration, "type">): LabelRendererRegistration;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-typed-forms/schemas",
3
- "version": "1.0.0-dev.19",
3
+ "version": "1.0.0-dev.20",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
package/src/renderers.tsx CHANGED
@@ -126,6 +126,8 @@ export function createFormRenderer(
126
126
  );
127
127
  const labelRenderer =
128
128
  customRenderers.find(isLabelRegistration) ?? defaultRenderers.label;
129
+ const arrayRenderer =
130
+ customRenderers.find(isArrayRegistration) ?? defaultRenderers.array;
129
131
  const renderVisibility = (
130
132
  customRenderers.find(isVisibilityRegistration) ??
131
133
  defaultRenderers.visibility
@@ -151,7 +153,7 @@ export function createFormRenderer(
151
153
  }
152
154
 
153
155
  function renderArray(props: ArrayRendererProps) {
154
- return defaultRenderers.array.render(props, formRenderers);
156
+ return arrayRenderer.render(props, formRenderers);
155
157
  }
156
158
 
157
159
  function renderLabel(props: LabelRendererProps, elem: ReactElement) {
@@ -693,6 +695,12 @@ function isActionRegistration(
693
695
  return x.type === "action";
694
696
  }
695
697
 
698
+ function isArrayRegistration(
699
+ x: AnyRendererRegistration,
700
+ ): x is ArrayRendererRegistration {
701
+ return x.type === "array";
702
+ }
703
+
696
704
  function isVisibilityRegistration(
697
705
  x: AnyRendererRegistration,
698
706
  ): x is VisibilityRendererRegistration {
@@ -703,6 +711,13 @@ function isOneOf(x: string | string[] | undefined, v: string) {
703
711
  return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;
704
712
  }
705
713
 
714
+ export function createArrayRenderer(
715
+ render: ArrayRendererRegistration["render"],
716
+ options?: Partial<ArrayRendererRegistration>,
717
+ ): ArrayRendererRegistration {
718
+ return { type: "array", render, ...options };
719
+ }
720
+
706
721
  export function createDataRenderer(
707
722
  render: DataRendererRegistration["render"],
708
723
  options?: Partial<DataRendererRegistration>,