@react-typed-forms/schemas 7.0.0 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/controlRender.d.ts +4 -2
- package/lib/hooks.d.ts +1 -0
- package/lib/index.js +25 -6
- package/lib/index.js.map +1 -1
- package/lib/types.d.ts +2 -1
- package/package.json +1 -1
- package/src/controlRender.tsx +19 -3
- package/src/hooks.tsx +18 -0
- package/src/types.ts +1 -0
package/lib/controlRender.d.ts
CHANGED
|
@@ -132,6 +132,7 @@ export interface DataControlProps {
|
|
|
132
132
|
style: React.CSSProperties | undefined;
|
|
133
133
|
childCount: number;
|
|
134
134
|
renderChild: ChildRenderer;
|
|
135
|
+
allowedOptions?: Control<any[] | undefined>;
|
|
135
136
|
elementRenderer?: (elemProps: Control<any>) => ReactNode;
|
|
136
137
|
}
|
|
137
138
|
export type CreateDataProps = (controlProps: DataControlProps) => DataRendererProps;
|
|
@@ -144,7 +145,7 @@ export interface ControlRenderOptions extends FormContextOptions {
|
|
|
144
145
|
export declare function useControlRenderer(definition: ControlDefinition, fields: SchemaField[], renderer: FormRenderer, options?: ControlRenderOptions): FC<ControlRenderProps>;
|
|
145
146
|
export declare function lookupSchemaField(c: ControlDefinition, fields: SchemaField[]): SchemaField | undefined;
|
|
146
147
|
export declare function getControlData(schemaField: SchemaField | undefined, parentContext: ControlDataContext): [Control<any> | undefined, ControlDataContext];
|
|
147
|
-
export declare function defaultDataProps({ definition, field, control, options, elementRenderer, style, ...props }: DataControlProps): DataRendererProps;
|
|
148
|
+
export declare function defaultDataProps({ definition, field, control, options, elementRenderer, style, allowedOptions, ...props }: DataControlProps): DataRendererProps;
|
|
148
149
|
export declare function defaultArrayProps(arrayControl: Control<any[] | undefined | null>, field: SchemaField, required: boolean, style: CSSProperties | undefined, className: string | undefined, renderElement: (elemProps: Control<any>) => ReactNode): ArrayRendererProps;
|
|
149
150
|
export type ChildRenderer = (k: Key, childIndex: number, props: ControlRenderProps) => ReactNode;
|
|
150
151
|
export interface RenderControlProps {
|
|
@@ -159,8 +160,9 @@ export interface RenderControlProps {
|
|
|
159
160
|
schemaField?: SchemaField;
|
|
160
161
|
displayControl?: Control<string | undefined>;
|
|
161
162
|
style?: React.CSSProperties;
|
|
163
|
+
allowedOptions?: Control<any[] | undefined>;
|
|
162
164
|
}
|
|
163
|
-
export declare function renderControlLayout({ definition: c, renderer, childCount, renderChild: childRenderer, control: childControl, schemaField, dataContext, formOptions: dataOptions, createDataProps: dataProps, displayControl, style, }: RenderControlProps): ControlLayoutProps;
|
|
165
|
+
export declare function renderControlLayout({ definition: c, renderer, childCount, renderChild: childRenderer, control: childControl, schemaField, dataContext, formOptions: dataOptions, createDataProps: dataProps, displayControl, style, allowedOptions, }: RenderControlProps): ControlLayoutProps;
|
|
164
166
|
export declare function appendMarkup(k: keyof Omit<RenderedLayout, "errorControl" | "style" | "className">, markup: ReactNode): (layout: RenderedLayout) => void;
|
|
165
167
|
export declare function wrapMarkup(k: keyof Omit<RenderedLayout, "errorControl" | "style" | "className">, wrap: (ex: ReactNode) => ReactNode): (layout: RenderedLayout) => void;
|
|
166
168
|
export declare function layoutKeyForPlacement(pos: AdornmentPlacement): keyof Omit<RenderedLayout, "errorControl" | "style" | "className">;
|
package/lib/hooks.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export type UseEvalExpressionHook = (expr: EntityExpression | undefined) => Eval
|
|
|
6
6
|
export declare function useEvalVisibilityHook(useEvalExpressionHook: UseEvalExpressionHook, definition: ControlDefinition, schemaField?: SchemaField): EvalExpressionHook<boolean>;
|
|
7
7
|
export declare function useEvalReadonlyHook(useEvalExpressionHook: UseEvalExpressionHook, definition: ControlDefinition): EvalExpressionHook<boolean>;
|
|
8
8
|
export declare function useEvalStyleHook(useEvalExpressionHook: UseEvalExpressionHook, property: DynamicPropertyType, definition: ControlDefinition): EvalExpressionHook<React.CSSProperties>;
|
|
9
|
+
export declare function useEvalAllowedOptionsHook(useEvalExpressionHook: UseEvalExpressionHook, definition: ControlDefinition): EvalExpressionHook<any[]>;
|
|
9
10
|
export declare function useEvalDisabledHook(useEvalExpressionHook: UseEvalExpressionHook, definition: ControlDefinition): EvalExpressionHook<boolean>;
|
|
10
11
|
export declare function useEvalDisplayHook(useEvalExpressionHook: UseEvalExpressionHook, definition: ControlDefinition): (groupContext: ControlDataContext) => Control<string | undefined> | undefined;
|
|
11
12
|
export declare function useEvalDefaultValueHook(useEvalExpressionHook: UseEvalExpressionHook, definition: ControlDefinition, schemaField?: SchemaField): EvalExpressionHook;
|
package/lib/index.js
CHANGED
|
@@ -39,6 +39,7 @@ exports.DynamicPropertyType = void 0;
|
|
|
39
39
|
DynamicPropertyType["Display"] = "Display";
|
|
40
40
|
DynamicPropertyType["Style"] = "Style";
|
|
41
41
|
DynamicPropertyType["LayoutStyle"] = "LayoutStyle";
|
|
42
|
+
DynamicPropertyType["AllowedOptions"] = "AllowedOptions";
|
|
42
43
|
})(exports.DynamicPropertyType || (exports.DynamicPropertyType = {}));
|
|
43
44
|
exports.ExpressionType = void 0;
|
|
44
45
|
(function (ExpressionType) {
|
|
@@ -695,6 +696,13 @@ function useEvalStyleHook(useEvalExpressionHook, property, definition) {
|
|
|
695
696
|
return core.useControl(undefined);
|
|
696
697
|
}, [dynamicStyle]);
|
|
697
698
|
}
|
|
699
|
+
function useEvalAllowedOptionsHook(useEvalExpressionHook, definition) {
|
|
700
|
+
var dynamicAllowed = useEvalDynamicHook(definition, exports.DynamicPropertyType.AllowedOptions, useEvalExpressionHook);
|
|
701
|
+
return React.useCallback(function (ctx) {
|
|
702
|
+
if (dynamicAllowed) return dynamicAllowed(ctx);
|
|
703
|
+
return core.useControl([]);
|
|
704
|
+
}, [dynamicAllowed]);
|
|
705
|
+
}
|
|
698
706
|
function useEvalDisabledHook(useEvalExpressionHook, definition) {
|
|
699
707
|
var dynamicDisabled = useEvalDynamicHook(definition, exports.DynamicPropertyType.Disabled, useEvalExpressionHook);
|
|
700
708
|
return React.useCallback(function (ctx) {
|
|
@@ -889,7 +897,7 @@ function defaultTextValue(f, value) {
|
|
|
889
897
|
}
|
|
890
898
|
}
|
|
891
899
|
|
|
892
|
-
var _excluded$1 = ["definition", "field", "control", "options", "elementRenderer", "style"];
|
|
900
|
+
var _excluded$1 = ["definition", "field", "control", "options", "elementRenderer", "style", "allowedOptions"];
|
|
893
901
|
var AppendAdornmentPriority = 0;
|
|
894
902
|
var WrapAdornmentPriority = 1000;
|
|
895
903
|
exports.LabelType = void 0;
|
|
@@ -910,6 +918,7 @@ function useControlRenderer(definition, fields, renderer, options) {
|
|
|
910
918
|
var useIsVisible = useEvalVisibilityHook(useExpr, definition, schemaField);
|
|
911
919
|
var useIsReadonly = useEvalReadonlyHook(useExpr, definition);
|
|
912
920
|
var useIsDisabled = useEvalDisabledHook(useExpr, definition);
|
|
921
|
+
var useAllowedOptions = useEvalAllowedOptionsHook(useExpr, definition);
|
|
913
922
|
var useCustomStyle = useEvalStyleHook(useExpr, exports.DynamicPropertyType.Style, definition);
|
|
914
923
|
var useLayoutStyle = useEvalStyleHook(useExpr, exports.DynamicPropertyType.LayoutStyle, definition);
|
|
915
924
|
var useDynamicDisplay = useEvalDisplayHook(useExpr, definition);
|
|
@@ -958,6 +967,7 @@ function useControlRenderer(definition, fields, renderer, options) {
|
|
|
958
967
|
};
|
|
959
968
|
});
|
|
960
969
|
});
|
|
970
|
+
var allowedOptions = useAllowedOptions(dataContext);
|
|
961
971
|
var defaultValueControl = useDefaultValue(dataContext);
|
|
962
972
|
var _getControlData = getControlData(_schemaField, dataContext),
|
|
963
973
|
control = _getControlData[0],
|
|
@@ -1018,7 +1028,8 @@ function useControlRenderer(definition, fields, renderer, options) {
|
|
|
1018
1028
|
control: displayControl != null ? displayControl : control,
|
|
1019
1029
|
schemaField: _schemaField,
|
|
1020
1030
|
displayControl: displayControl,
|
|
1021
|
-
style: customStyle
|
|
1031
|
+
style: customStyle,
|
|
1032
|
+
allowedOptions: allowedOptions
|
|
1022
1033
|
});
|
|
1023
1034
|
var renderedControl = renderer.renderLayout(_extends({}, labelAndChildren, {
|
|
1024
1035
|
adornments: adornments,
|
|
@@ -1031,7 +1042,7 @@ function useControlRenderer(definition, fields, renderer, options) {
|
|
|
1031
1042
|
} finally {
|
|
1032
1043
|
stopTracking();
|
|
1033
1044
|
}
|
|
1034
|
-
}, [r, dataProps, useIsVisible, useDefaultValue, useIsReadonly, useIsDisabled, useCustomStyle, useLayoutStyle, useDynamicDisplay, useValidation, renderer, schemaInterface]);
|
|
1045
|
+
}, [r, dataProps, useIsVisible, useDefaultValue, useIsReadonly, useIsDisabled, useCustomStyle, useLayoutStyle, useAllowedOptions, useDynamicDisplay, useValidation, renderer, schemaInterface]);
|
|
1035
1046
|
Component.displayName = "RenderControl";
|
|
1036
1047
|
return Component;
|
|
1037
1048
|
}
|
|
@@ -1067,21 +1078,26 @@ function groupProps(renderOptions, childCount, _renderChild, control, className,
|
|
|
1067
1078
|
};
|
|
1068
1079
|
}
|
|
1069
1080
|
function defaultDataProps(_ref3) {
|
|
1070
|
-
var _field$options$length, _field$options, _definition$renderOpt;
|
|
1081
|
+
var _field$options$length, _field$options, _allowedOptions$value, _definition$renderOpt;
|
|
1071
1082
|
var definition = _ref3.definition,
|
|
1072
1083
|
field = _ref3.field,
|
|
1073
1084
|
control = _ref3.control,
|
|
1074
1085
|
options = _ref3.options,
|
|
1075
1086
|
elementRenderer = _ref3.elementRenderer,
|
|
1076
1087
|
style = _ref3.style,
|
|
1088
|
+
allowedOptions = _ref3.allowedOptions,
|
|
1077
1089
|
props = _objectWithoutPropertiesLoose(_ref3, _excluded$1);
|
|
1078
1090
|
var className = cc(definition.styleClass);
|
|
1079
1091
|
var required = !!definition.required;
|
|
1092
|
+
var fieldOptions = ((_field$options$length = (_field$options = field.options) == null ? void 0 : _field$options.length) != null ? _field$options$length : 0) === 0 ? null : field.options;
|
|
1093
|
+
var allowed = (_allowedOptions$value = allowedOptions == null ? void 0 : allowedOptions.value) != null ? _allowedOptions$value : [];
|
|
1080
1094
|
return _extends({
|
|
1081
1095
|
control: control,
|
|
1082
1096
|
field: field,
|
|
1083
1097
|
id: "c" + control.uniqueId,
|
|
1084
|
-
options:
|
|
1098
|
+
options: fieldOptions && allowed.length > 0 ? fieldOptions.filter(function (x) {
|
|
1099
|
+
return allowed.includes(x.value);
|
|
1100
|
+
}) : fieldOptions,
|
|
1085
1101
|
readonly: !!options.readonly,
|
|
1086
1102
|
renderOptions: (_definition$renderOpt = definition.renderOptions) != null ? _definition$renderOpt : {
|
|
1087
1103
|
type: "Standard"
|
|
@@ -1141,7 +1157,8 @@ function renderControlLayout(_ref4) {
|
|
|
1141
1157
|
dataOptions = _ref4.formOptions,
|
|
1142
1158
|
dataProps = _ref4.createDataProps,
|
|
1143
1159
|
displayControl = _ref4.displayControl,
|
|
1144
|
-
style = _ref4.style
|
|
1160
|
+
style = _ref4.style,
|
|
1161
|
+
allowedOptions = _ref4.allowedOptions;
|
|
1145
1162
|
if (isDataControlDefinition(c)) {
|
|
1146
1163
|
return renderData(c);
|
|
1147
1164
|
}
|
|
@@ -1199,6 +1216,7 @@ function renderControlLayout(_ref4) {
|
|
|
1199
1216
|
options: dataOptions,
|
|
1200
1217
|
style: style,
|
|
1201
1218
|
childCount: childCount,
|
|
1219
|
+
allowedOptions: allowedOptions,
|
|
1202
1220
|
renderChild: childRenderer,
|
|
1203
1221
|
elementRenderer: elementControl == null && schemaField.collection ? function (element) {
|
|
1204
1222
|
return renderLayoutParts(renderData(c, element), renderer).children;
|
|
@@ -2143,6 +2161,7 @@ exports.stringOptionsField = stringOptionsField;
|
|
|
2143
2161
|
exports.textDisplayControl = textDisplayControl;
|
|
2144
2162
|
exports.useControlDefinitionForSchema = useControlDefinitionForSchema;
|
|
2145
2163
|
exports.useControlRenderer = useControlRenderer;
|
|
2164
|
+
exports.useEvalAllowedOptionsHook = useEvalAllowedOptionsHook;
|
|
2146
2165
|
exports.useEvalDefaultValueHook = useEvalDefaultValueHook;
|
|
2147
2166
|
exports.useEvalDisabledHook = useEvalDisabledHook;
|
|
2148
2167
|
exports.useEvalDisplayHook = useEvalDisplayHook;
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/types.ts","../src/schemaBuilder.ts","../src/util.ts","../src/controlBuilder.ts","../src/internal.ts","../src/hooks.tsx","../src/validators.ts","../src/schemaInterface.ts","../src/controlRender.tsx","../src/renderers.tsx","../src/tailwind.tsx"],"sourcesContent":["export interface SchemaField {\n type: string;\n field: string;\n displayName?: string | null;\n tags?: string[] | null;\n system?: boolean | null;\n collection?: boolean | null;\n onlyForTypes?: string[] | null;\n required?: boolean | null;\n notNullable?: boolean | null;\n defaultValue?: any;\n isTypeField?: boolean | null;\n searchable?: boolean | null;\n options?: FieldOption[] | null;\n validators?: SchemaValidator[] | null;\n}\n\nexport enum FieldType {\n String = \"String\",\n Bool = \"Bool\",\n Int = \"Int\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n Double = \"Double\",\n EntityRef = \"EntityRef\",\n Compound = \"Compound\",\n AutoId = \"AutoId\",\n Image = \"Image\",\n Any = \"Any\",\n}\n\nexport interface EntityRefField extends SchemaField {\n type: FieldType.EntityRef;\n entityRefType: string;\n parentField: string;\n}\n\nexport interface FieldOption {\n name: string;\n value: any;\n}\n\nexport interface CompoundField extends SchemaField {\n type: FieldType.Compound;\n children: SchemaField[];\n treeChildren?: boolean;\n}\n\nexport type AnyControlDefinition =\n | DataControlDefinition\n | GroupedControlsDefinition\n | ActionControlDefinition\n | DisplayControlDefinition;\n\nexport interface SchemaInterface {\n isEmptyValue(field: SchemaField, value: any): boolean;\n textValue(\n field: SchemaField,\n value: any,\n element?: boolean,\n ): string | undefined;\n}\nexport interface ControlDefinition {\n type: string;\n title?: string | null;\n styleClass?: string | null;\n layoutClass?: string | null;\n dynamic?: DynamicProperty[] | null;\n adornments?: ControlAdornment[] | null;\n children?: ControlDefinition[] | null;\n}\n\nexport enum ControlDefinitionType {\n Data = \"Data\",\n Group = \"Group\",\n Display = \"Display\",\n Action = \"Action\",\n}\n\nexport interface DynamicProperty {\n type: string;\n expr: EntityExpression;\n}\n\nexport enum DynamicPropertyType {\n Visible = \"Visible\",\n DefaultValue = \"DefaultValue\",\n Readonly = \"Readonly\",\n Disabled = \"Disabled\",\n Display = \"Display\",\n Style = \"Style\",\n LayoutStyle = \"LayoutStyle\",\n}\n\nexport interface EntityExpression {\n type: string;\n}\n\nexport enum ExpressionType {\n Jsonata = \"Jsonata\",\n Data = \"Data\",\n DataMatch = \"FieldValue\",\n UserMatch = \"UserMatch\",\n}\n\nexport interface JsonataExpression extends EntityExpression {\n type: ExpressionType.Jsonata;\n expression: string;\n}\n\nexport interface DataExpression extends EntityExpression {\n type: ExpressionType.Data;\n field: string;\n}\n\nexport interface DataMatchExpression extends EntityExpression {\n type: ExpressionType.DataMatch;\n field: string;\n value: any;\n}\n\nexport interface UserMatchExpression extends EntityExpression {\n type: ExpressionType.UserMatch;\n userMatch: string;\n}\n\nexport interface ControlAdornment {\n type: string;\n}\n\nexport enum AdornmentPlacement {\n ControlStart = \"ControlStart\",\n ControlEnd = \"ControlEnd\",\n LabelStart = \"LabelStart\",\n LabelEnd = \"LabelEnd\",\n}\n\nexport enum ControlAdornmentType {\n Tooltip = \"Tooltip\",\n Accordion = \"Accordion\",\n HelpText = \"HelpText\",\n Icon = \"Icon\",\n}\n\nexport interface IconAdornment extends ControlAdornment {\n type: ControlAdornmentType.Icon;\n iconClass: string;\n placement?: AdornmentPlacement | null;\n}\n\nexport interface TooltipAdornment extends ControlAdornment {\n type: ControlAdornmentType.Tooltip;\n tooltip: string;\n}\n\nexport interface AccordionAdornment extends ControlAdornment {\n type: ControlAdornmentType.Accordion;\n title: string;\n defaultExpanded: boolean;\n}\n\nexport interface HelpTextAdornment extends ControlAdornment {\n type: ControlAdornmentType.HelpText;\n helpText: string;\n placement?: AdornmentPlacement | null;\n}\n\nexport interface DataControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Data;\n field: string;\n required?: boolean | null;\n renderOptions?: RenderOptions | null;\n defaultValue?: any;\n readonly?: boolean | null;\n validators?: SchemaValidator[] | null;\n hideTitle?: boolean | null;\n dontClearHidden?: boolean | null;\n}\n\nexport interface RenderOptions {\n type: string;\n}\n\nexport enum DataRenderType {\n Standard = \"Standard\",\n Radio = \"Radio\",\n HtmlEditor = \"HtmlEditor\",\n IconList = \"IconList\",\n CheckList = \"CheckList\",\n UserSelection = \"UserSelection\",\n Synchronised = \"Synchronised\",\n IconSelector = \"IconSelector\",\n DateTime = \"DateTime\",\n Checkbox = \"Checkbox\",\n Dropdown = \"Dropdown\",\n DisplayOnly = \"DisplayOnly\",\n}\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 DisplayOnlyRenderOptions extends RenderOptions {\n type: DataRenderType.DisplayOnly;\n emptyText?: string | null;\n sampleText?: string | null;\n}\nexport interface IconMapping {\n value: string;\n materialIcon?: string | null;\n}\n\nexport interface CheckListRenderOptions extends RenderOptions {\n type: DataRenderType.CheckList;\n}\n\nexport interface SynchronisedRenderOptions extends RenderOptions {\n type: DataRenderType.Synchronised;\n fieldToSync: string;\n syncType: SyncTextType;\n}\n\nexport enum SyncTextType {\n Camel = \"Camel\",\n Snake = \"Snake\",\n Pascal = \"Pascal\",\n}\n\nexport interface UserSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.UserSelection;\n noGroups: boolean;\n noUsers: boolean;\n}\n\nexport interface IconSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.IconSelector;\n}\n\nexport interface GroupedControlsDefinition extends ControlDefinition {\n type: ControlDefinitionType.Group;\n compoundField?: string | null;\n groupOptions?: GroupRenderOptions;\n}\n\nexport interface GroupRenderOptions {\n type: string;\n hideTitle?: boolean | null;\n}\n\nexport enum GroupRenderType {\n Standard = \"Standard\",\n Grid = \"Grid\",\n Flex = \"Flex\",\n GroupElement = \"GroupElement\",\n}\n\nexport interface StandardGroupRenderer extends GroupRenderOptions {\n type: GroupRenderType.Standard;\n}\n\nexport interface FlexRenderer extends GroupRenderOptions {\n type: GroupRenderType.Flex;\n direction?: string | null;\n gap?: string | null;\n}\n\nexport interface GroupElementRenderer extends GroupRenderOptions {\n type: GroupRenderType.GroupElement;\n value: any;\n}\n\nexport interface GridRenderer extends GroupRenderOptions {\n type: GroupRenderType.Grid;\n columns?: number | null;\n}\n\nexport interface DisplayControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Display;\n displayData: DisplayData;\n}\n\nexport interface DisplayData {\n type: string;\n}\n\nexport enum DisplayDataType {\n Text = \"Text\",\n Html = \"Html\",\n Icon = \"Icon\",\n}\nexport interface TextDisplay extends DisplayData {\n type: DisplayDataType.Text;\n text: string;\n}\n\nexport interface IconDisplay extends DisplayData {\n type: DisplayDataType.Icon;\n iconClass: string;\n}\n\nexport interface HtmlDisplay extends DisplayData {\n type: DisplayDataType.Html;\n html: string;\n}\n\nexport interface ActionControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Action;\n actionId: string;\n}\n\nexport enum ValidatorType {\n Jsonata = \"Jsonata\",\n Date = \"Date\",\n}\nexport interface SchemaValidator {\n type: string;\n}\n\nexport interface JsonataValidator extends SchemaValidator {\n type: ValidatorType.Jsonata;\n expression: string;\n}\n\nexport enum DateComparison {\n NotBefore = \"NotBefore\",\n NotAfter = \"NotAfter\",\n}\n\nexport interface DateValidator extends SchemaValidator {\n type: ValidatorType.Date;\n comparison: DateComparison;\n fixedDate?: string | null;\n daysFromCurrent?: number | null;\n}\n\nexport function isDataControlDefinition(\n x: ControlDefinition,\n): x is DataControlDefinition {\n return x.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControlsDefinition(\n x: ControlDefinition,\n): x is GroupedControlsDefinition {\n return x.type === ControlDefinitionType.Group;\n}\n\nexport function isDisplayControlsDefinition(\n x: ControlDefinition,\n): x is DisplayControlDefinition {\n return x.type === ControlDefinitionType.Display;\n}\n\nexport function isActionControlsDefinition(\n x: ControlDefinition,\n): x is ActionControlDefinition {\n return x.type === ControlDefinitionType.Action;\n}\n\nexport interface ControlVisitor<A> {\n data(d: DataControlDefinition): A;\n group(d: GroupedControlsDefinition): A;\n display(d: DisplayControlDefinition): A;\n action(d: ActionControlDefinition): A;\n}\n\nexport function visitControlDefinition<A>(\n x: ControlDefinition,\n visitor: ControlVisitor<A>,\n defaultValue: (c: ControlDefinition) => A,\n): A {\n switch (x.type) {\n case ControlDefinitionType.Action:\n return visitor.action(x as ActionControlDefinition);\n case ControlDefinitionType.Data:\n return visitor.data(x as DataControlDefinition);\n case ControlDefinitionType.Display:\n return visitor.display(x as DisplayControlDefinition);\n case ControlDefinitionType.Group:\n return visitor.group(x as GroupedControlsDefinition);\n default:\n return defaultValue(x);\n }\n}\nexport function isGridRenderer(\n options: GroupRenderOptions,\n): options is GridRenderer {\n return options.type === GroupRenderType.Grid;\n}\n\nexport function isFlexRenderer(\n options: GroupRenderOptions,\n): options is FlexRenderer {\n return options.type === GroupRenderType.Flex;\n}\n\nexport function isDisplayOnlyRenderer(\n options: RenderOptions,\n): options is DisplayOnlyRenderOptions {\n return options.type === DataRenderType.DisplayOnly;\n}\n","import { CompoundField, FieldOption, FieldType, SchemaField } from \"./types\";\n\ntype AllowedSchema<T> = T extends string\n ? SchemaField & {\n type: FieldType.String | FieldType.Date | FieldType.DateTime;\n }\n : T extends number\n ? SchemaField & {\n type: FieldType.Int | FieldType.Double;\n }\n : T extends boolean\n ? SchemaField & {\n type: FieldType.Bool;\n }\n : T extends Array<infer E>\n ? AllowedSchema<E> & {\n collection: true;\n }\n : T extends { [key: string]: any }\n ? CompoundField & {\n type: FieldType.Compound;\n }\n : SchemaField & { type: FieldType.Any };\n\ntype AllowedField<T, K> = (\n name: string,\n) => (SchemaField & { type: K }) | AllowedSchema<T>;\n\nexport function buildSchema<T, Custom = \"\">(def: {\n [K in keyof T]-?: AllowedField<T[K], Custom>;\n}): SchemaField[] {\n return Object.entries(def).map((x) =>\n (x[1] as (n: string) => SchemaField)(x[0]),\n );\n}\n\nexport function stringField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>,\n) {\n return makeScalarField({\n type: FieldType.String as const,\n displayName,\n ...options,\n });\n}\n\nexport function stringOptionsField(\n displayName: string,\n ...options: FieldOption[]\n) {\n return makeScalarField({\n type: FieldType.String as const,\n displayName,\n options,\n });\n}\n\nexport function withScalarOptions<S extends SchemaField>(\n options: Partial<SchemaField>,\n v: (name: string) => S,\n): (name: string) => S {\n return (n) => ({ ...v(n), ...options });\n}\n\nexport function makeScalarField<S extends Partial<SchemaField>>(\n options: S,\n): (name: string) => SchemaField & S {\n return (n) => ({ ...defaultScalarField(n, n), ...options });\n}\n\nexport function makeCompoundField<S extends Partial<CompoundField>>(\n options: S,\n): (name: string) => CompoundField & {\n type: FieldType.Compound;\n} & S {\n return (n) => ({ ...defaultCompoundField(n, n, false), ...options });\n}\n\nexport function intField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>,\n) {\n return makeScalarField({\n type: FieldType.Int as const,\n displayName,\n ...options,\n });\n}\n\nexport function boolField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>,\n) {\n return makeScalarField({\n type: FieldType.Bool as const,\n displayName,\n ...options,\n });\n}\n\nexport function compoundField<\n Other extends Partial<Omit<CompoundField, \"type\" | \"schemaType\">>,\n>(\n displayName: string,\n fields: SchemaField[],\n other: Other,\n): (name: string) => CompoundField & {\n collection: Other[\"collection\"];\n} {\n return (field) =>\n ({\n ...defaultCompoundField(field, displayName, false),\n ...other,\n children: fields,\n }) as any;\n}\n\nexport function defaultScalarField(\n field: string,\n displayName: string,\n): Omit<SchemaField, \"type\"> & {\n type: FieldType.String;\n} {\n return {\n field,\n displayName,\n type: FieldType.String,\n };\n}\n\nexport function defaultCompoundField(\n field: string,\n displayName: string,\n collection: boolean,\n): CompoundField & {\n type: FieldType.Compound;\n} {\n return {\n field,\n displayName,\n type: FieldType.Compound,\n collection,\n children: [],\n };\n}\n","import {\n CompoundField,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n DisplayOnlyRenderOptions,\n FieldOption,\n FieldType,\n GridRenderer,\n GroupedControlsDefinition,\n GroupRenderType,\n isDataControlDefinition,\n isDisplayOnlyRenderer,\n SchemaField,\n SchemaInterface,\n visitControlDefinition,\n} from \"./types\";\nimport { MutableRefObject, useRef } from \"react\";\nimport { Control } from \"@react-typed-forms/core\";\nimport clsx from \"clsx\";\n\nexport interface ControlDataContext {\n groupControl: Control<any>;\n fields: SchemaField[];\n schemaInterface: SchemaInterface;\n}\nexport function applyDefaultValues(\n v: { [k: string]: any } | undefined,\n fields: SchemaField[],\n): any {\n if (!v) return defaultValueForFields(fields);\n const applyValue = fields.filter(\n (x) => isCompoundField(x) || !(x.field in v),\n );\n if (!applyValue.length) return v;\n const out = { ...v };\n applyValue.forEach((x) => {\n out[x.field] =\n x.field in v\n ? applyDefaultForField(v[x.field], x, fields)\n : defaultValueForField(x);\n });\n return out;\n}\n\nexport function applyDefaultForField(\n v: any,\n field: SchemaField,\n parent: SchemaField[],\n notElement?: boolean,\n): any {\n if (field.collection && !notElement) {\n return ((v as any[]) ?? []).map((x) =>\n applyDefaultForField(x, field, parent, true),\n );\n }\n if (isCompoundField(field)) {\n if (!v && !field.required) return v;\n return applyDefaultValues(v, field.treeChildren ? parent : field.children);\n }\n return defaultValueForField(field);\n}\n\nexport function defaultValueForFields(fields: SchemaField[]): any {\n return Object.fromEntries(\n fields.map((x) => [x.field, defaultValueForField(x)]),\n );\n}\n\nexport function defaultValueForField(\n sf: SchemaField,\n required?: boolean | null,\n): any {\n if (sf.defaultValue !== undefined) return sf.defaultValue;\n const isRequired = !!(required || sf.required);\n if (isCompoundField(sf)) {\n if (isRequired) {\n const childValue = defaultValueForFields(sf.children);\n return sf.collection ? [childValue] : childValue;\n }\n return sf.notNullable ? (sf.collection ? [] : {}) : undefined;\n }\n if (sf.collection) {\n return [];\n }\n return undefined;\n}\n\nexport function elementValueForField(sf: SchemaField): any {\n if (isCompoundField(sf)) {\n return defaultValueForFields(sf.children);\n }\n return sf.defaultValue;\n}\n\nexport function findScalarField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return findField(fields, field);\n}\n\nexport function findCompoundField(\n fields: SchemaField[],\n field: string,\n): CompoundField | undefined {\n return findField(fields, field) as CompoundField | undefined;\n}\n\nexport function findField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return fields.find((x) => x.field === field);\n}\n\nexport function isScalarField(sf: SchemaField): sf is SchemaField {\n return !isCompoundField(sf);\n}\n\nexport function isCompoundField(sf: SchemaField): sf is CompoundField {\n return sf.type === FieldType.Compound;\n}\n\nexport function isDataControl(\n c: ControlDefinition,\n): c is DataControlDefinition {\n return c.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControl(\n c: ControlDefinition,\n): c is GroupedControlsDefinition {\n return c.type === ControlDefinitionType.Group;\n}\n\nexport function fieldHasTag(field: SchemaField, tag: string) {\n return Boolean(field.tags?.includes(tag));\n}\n\nexport function fieldDisplayName(field: SchemaField) {\n return field.displayName ?? field.field;\n}\n\nexport function hasOptions(o: { options: FieldOption[] | undefined | null }) {\n return (o.options?.length ?? 0) > 0;\n}\n\nexport function defaultControlForField(sf: SchemaField): DataControlDefinition {\n if (isCompoundField(sf)) {\n return {\n type: ControlDefinitionType.Data,\n title: sf.displayName,\n field: sf.field,\n required: sf.required,\n children: sf.children.map(defaultControlForField),\n };\n } else if (isScalarField(sf)) {\n const htmlEditor = sf.tags?.includes(\"_HtmlEditor\");\n return {\n type: ControlDefinitionType.Data,\n title: sf.displayName,\n field: sf.field,\n required: sf.required,\n renderOptions: {\n type: htmlEditor ? DataRenderType.HtmlEditor : DataRenderType.Standard,\n },\n };\n }\n throw \"Unknown schema field\";\n}\nfunction findReferencedControl(\n field: string,\n control: ControlDefinition,\n): ControlDefinition | undefined {\n if (isDataControl(control) && field === control.field) return control;\n if (isGroupControl(control)) {\n if (control.compoundField)\n return field === control.compoundField ? control : undefined;\n return findReferencedControlInArray(field, control.children ?? []);\n }\n return undefined;\n}\n\nfunction findReferencedControlInArray(\n field: string,\n controls: ControlDefinition[],\n): ControlDefinition | undefined {\n for (const c of controls) {\n const ref = findReferencedControl(field, c);\n if (ref) return ref;\n }\n return undefined;\n}\n\nexport function addMissingControls(\n fields: SchemaField[],\n controls: ControlDefinition[],\n): ControlDefinition[] {\n const changes: {\n field: SchemaField;\n existing: ControlDefinition | undefined;\n }[] = fields.flatMap((x) => {\n if (fieldHasTag(x, \"_NoControl\")) return [];\n const existing = findReferencedControlInArray(x.field, controls);\n if (!existing || isCompoundField(x)) return { field: x, existing };\n return [];\n });\n const changedCompounds = controls.map((x) => {\n const ex = changes.find((c) => c.existing === x);\n if (!ex) return x;\n const cf = x as GroupedControlsDefinition;\n return {\n ...cf,\n children: addMissingControls(\n (ex.field as CompoundField).children,\n cf.children ?? [],\n ),\n };\n });\n return changedCompounds.concat(\n changes\n .filter((x) => !x.existing)\n .map((x) => defaultControlForField(x.field)),\n );\n}\n\nexport function useUpdatedRef<A>(a: A): MutableRefObject<A> {\n const r = useRef(a);\n r.current = a;\n return r;\n}\n\nexport function isControlReadonly(c: ControlDefinition): boolean {\n return isDataControl(c) && !!c.readonly;\n}\n\nexport function getDisplayOnlyOptions(\n d: ControlDefinition,\n): DisplayOnlyRenderOptions | undefined {\n return isDataControlDefinition(d) &&\n d.renderOptions &&\n isDisplayOnlyRenderer(d.renderOptions)\n ? d.renderOptions\n : undefined;\n}\n\nexport function getTypeField(\n context: ControlDataContext,\n): Control<string> | undefined {\n const typeSchemaField = context.fields.find((x) => x.isTypeField);\n return typeSchemaField\n ? context.groupControl.fields?.[typeSchemaField.field]\n : undefined;\n}\n\nexport function visitControlDataArray<A>(\n controls: ControlDefinition[] | undefined | null,\n context: ControlDataContext,\n cb: (\n definition: DataControlDefinition,\n field: SchemaField,\n control: Control<any>,\n element: boolean,\n ) => A | undefined,\n): A | undefined {\n if (!controls) return undefined;\n for (const c of controls) {\n const r = visitControlData(c, context, cb);\n if (r !== undefined) return r;\n }\n return undefined;\n}\n\nexport function visitControlData<A>(\n definition: ControlDefinition,\n ctx: ControlDataContext,\n cb: (\n definition: DataControlDefinition,\n field: SchemaField,\n control: Control<any>,\n element: boolean,\n ) => A | undefined,\n): A | undefined {\n return visitControlDefinition<A | undefined>(\n definition,\n {\n data(def: DataControlDefinition) {\n return processData(def, def.field, def.children);\n },\n group(d: GroupedControlsDefinition) {\n return processData(undefined, d.compoundField, d.children);\n },\n action: () => undefined,\n display: () => undefined,\n },\n () => undefined,\n );\n\n function processData(\n def: DataControlDefinition | undefined,\n fieldName: string | undefined | null,\n children: ControlDefinition[] | null | undefined,\n ) {\n const fieldData = fieldName ? findField(ctx.fields, fieldName) : undefined;\n if (!fieldData)\n return !fieldName ? visitControlDataArray(children, ctx, cb) : undefined;\n\n const control = ctx.groupControl.fields[fieldData.field];\n const result = def ? cb(def, fieldData, control, false) : undefined;\n if (result !== undefined) return result;\n if (fieldData.collection) {\n for (const c of control.elements ?? []) {\n const elemResult = def ? cb(def, fieldData, c, true) : undefined;\n if (elemResult !== undefined) return elemResult;\n if (isCompoundField(fieldData)) {\n const cfResult = visitControlDataArray(\n children,\n {\n fields: fieldData.children,\n groupControl: c,\n schemaInterface: ctx.schemaInterface,\n },\n cb,\n );\n if (cfResult !== undefined) return cfResult;\n }\n }\n }\n }\n}\n\nexport function cleanDataForSchema(\n v: { [k: string]: any } | undefined,\n fields: SchemaField[],\n): any {\n if (!v) return v;\n const typeField = fields.find((x) => x.isTypeField);\n if (!typeField) return v;\n const typeValue = v[typeField.field];\n const cleanableFields = fields.filter(\n (x) => isCompoundField(x) || (x.onlyForTypes?.length ?? 0) > 0,\n );\n if (!cleanableFields.length) return v;\n const out = { ...v };\n cleanableFields.forEach((x) => {\n const childValue = v[x.field];\n if (\n x.onlyForTypes?.includes(typeValue) === false ||\n (!x.notNullable && canBeNull())\n ) {\n delete out[x.field];\n return;\n }\n if (isCompoundField(x)) {\n const childFields = x.treeChildren ? fields : x.children;\n if (x.collection) {\n if (Array.isArray(childValue)) {\n out[x.field] = childValue.map((cv) =>\n cleanDataForSchema(cv, childFields),\n );\n }\n } else {\n out[x.field] = cleanDataForSchema(childValue, childFields);\n }\n }\n function canBeNull() {\n return (\n x.collection && Array.isArray(childValue) && !childValue.length\n //|| (x.type === FieldType.Bool && childValue === false)\n );\n }\n });\n return out;\n}\n\nexport function getAllReferencedClasses(c: ControlDefinition): string[] {\n const childClasses = c.children?.flatMap(getAllReferencedClasses);\n const tc = clsx(c.styleClass, c.layoutClass);\n if (childClasses && !tc) return childClasses;\n if (!tc) return [];\n if (childClasses) return [tc, ...childClasses];\n return [tc];\n}\n","import {\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataMatchExpression,\n DisplayControlDefinition,\n DisplayDataType,\n DynamicProperty,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n GroupedControlsDefinition,\n GroupRenderType,\n HtmlDisplay,\n JsonataExpression,\n SchemaField,\n TextDisplay,\n} from \"./types\";\nimport { ActionRendererProps } from \"./controlRender\";\nimport { useMemo } from \"react\";\nimport { addMissingControls } from \"./util\";\n\nexport function dataControl(\n field: string,\n title?: string | null,\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return { type: ControlDefinitionType.Data, field, title, ...options };\n}\n\nexport function textDisplayControl(\n text: string,\n options?: Partial<DisplayControlDefinition>,\n): DisplayControlDefinition {\n return {\n type: ControlDefinitionType.Display,\n displayData: { type: DisplayDataType.Text, text } as TextDisplay,\n ...options,\n };\n}\n\nexport function htmlDisplayControl(\n html: string,\n options?: Partial<DisplayControlDefinition>,\n): DisplayControlDefinition {\n return {\n type: ControlDefinitionType.Display,\n displayData: { type: DisplayDataType.Html, html } as HtmlDisplay,\n ...options,\n };\n}\n\nexport function dynamicDefaultValue(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.DefaultValue, expr };\n}\n\nexport function dynamicReadonly(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Readonly, expr };\n}\n\nexport function dynamicVisibility(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Visible, expr };\n}\n\nexport function dynamicDisabled(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Disabled, expr };\n}\n\nexport function fieldEqExpr(field: string, value: any): DataMatchExpression {\n return { type: ExpressionType.DataMatch, field, value };\n}\nexport function jsonataExpr(expression: string): JsonataExpression {\n return { type: ExpressionType.Jsonata, expression };\n}\n\nexport function groupedControl(\n children: ControlDefinition[],\n title?: string,\n options?: Partial<GroupedControlsDefinition>,\n): GroupedControlsDefinition {\n return {\n type: ControlDefinitionType.Group,\n children,\n title,\n groupOptions: { type: \"Standard\", hideTitle: !title },\n ...options,\n };\n}\nexport function compoundControl(\n field: string,\n title: string | undefined,\n children: ControlDefinition[],\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return {\n type: ControlDefinitionType.Data,\n field,\n children,\n title,\n renderOptions: { type: \"Standard\" },\n ...options,\n };\n}\n\nexport function createAction(\n actionId: string,\n onClick: () => void,\n actionText?: string,\n): ActionRendererProps {\n return { actionId, onClick, actionText: actionText ?? actionId };\n}\n\nexport const emptyGroupDefinition: GroupedControlsDefinition = {\n type: ControlDefinitionType.Group,\n children: [],\n groupOptions: { type: GroupRenderType.Standard, hideTitle: true },\n};\n\nexport function useControlDefinitionForSchema(\n sf: SchemaField[],\n definition: GroupedControlsDefinition = emptyGroupDefinition,\n): GroupedControlsDefinition {\n return useMemo<GroupedControlsDefinition>(\n () => ({\n ...definition,\n children: addMissingControls(sf, definition.children ?? []),\n }),\n [sf, definition],\n );\n}\n","import { Control, useControl, useControlEffect } from \"@react-typed-forms/core\";\n\nexport function useCalculatedControl<V>(calculate: () => V): Control<V> {\n const c = useControl(calculate);\n useControlEffect(calculate, (v) => (c.value = v));\n return c;\n}\n\nexport function cc(n: string | null | undefined): string | undefined {\n return n ? n : undefined;\n}\n","import {\n ControlDefinition,\n DataExpression,\n DataMatchExpression,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n isDataControlDefinition,\n JsonataExpression,\n SchemaField,\n SchemaInterface,\n} from \"./types\";\nimport { useCallback, useMemo } from \"react\";\nimport {\n Control,\n useComputed,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\n\nimport {\n ControlDataContext,\n defaultValueForField,\n findField,\n getDisplayOnlyOptions,\n getTypeField,\n isControlReadonly,\n useUpdatedRef,\n} from \"./util\";\nimport jsonata from \"jsonata\";\nimport { useCalculatedControl } from \"./internal\";\n\nexport type UseEvalExpressionHook = (\n expr: EntityExpression | undefined,\n) => EvalExpressionHook | undefined;\n\nexport function useEvalVisibilityHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n schemaField?: SchemaField,\n): EvalExpressionHook<boolean> {\n const dynamicVisibility = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Visible,\n useEvalExpressionHook,\n );\n const r = useUpdatedRef({ schemaField, definition });\n return useCallback(\n (ctx) => {\n const { schemaField, definition } = r.current;\n return (\n dynamicVisibility?.(ctx) ??\n useComputed(\n () =>\n matchesType(ctx, schemaField?.onlyForTypes) &&\n (!schemaField ||\n !hideDisplayOnly(\n ctx,\n schemaField,\n definition,\n ctx.schemaInterface,\n )),\n )\n );\n },\n [dynamicVisibility, r],\n );\n}\n\nexport function useEvalReadonlyHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<boolean> {\n const dynamicReadonly = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Readonly,\n useEvalExpressionHook,\n );\n const r = useUpdatedRef(definition);\n return useCallback(\n (ctx) => {\n if (dynamicReadonly) return dynamicReadonly(ctx);\n return useCalculatedControl(() => isControlReadonly(r.current));\n },\n [dynamicReadonly, r],\n );\n}\n\nexport function useEvalStyleHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n property: DynamicPropertyType,\n definition: ControlDefinition,\n): EvalExpressionHook<React.CSSProperties> {\n const dynamicStyle = useEvalDynamicHook(\n definition,\n property,\n useEvalExpressionHook,\n );\n return useCallback(\n (ctx) => {\n if (dynamicStyle) return dynamicStyle(ctx);\n return useControl(undefined);\n },\n [dynamicStyle],\n );\n}\n\nexport function useEvalDisabledHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<boolean> {\n const dynamicDisabled = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Disabled,\n useEvalExpressionHook,\n );\n return useCallback(\n (ctx) => {\n if (dynamicDisabled) return dynamicDisabled(ctx);\n return useControl(false);\n },\n [dynamicDisabled],\n );\n}\n\nexport function useEvalDisplayHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): (\n groupContext: ControlDataContext,\n) => Control<string | undefined> | undefined {\n const dynamicDisplay = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Display,\n useEvalExpressionHook,\n );\n return useCallback((ctx) => dynamicDisplay?.(ctx), [dynamicDisplay]);\n}\nexport function useEvalDefaultValueHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n schemaField?: SchemaField,\n): EvalExpressionHook {\n const dynamicValue = useEvalDynamicHook(\n definition,\n DynamicPropertyType.DefaultValue,\n useEvalExpressionHook,\n );\n const r = useUpdatedRef({ definition, schemaField });\n return useCallback(\n (ctx) => {\n const { definition, schemaField } = r.current;\n return dynamicValue?.(ctx) ?? useComputed(calcDefault);\n function calcDefault() {\n const [required, dcv] = isDataControlDefinition(definition)\n ? [definition.required, definition.defaultValue]\n : [false, undefined];\n return (\n dcv ??\n (schemaField\n ? defaultValueForField(schemaField, required)\n : undefined)\n );\n }\n },\n [dynamicValue, r],\n );\n}\n\nexport type EvalExpressionHook<A = any> = (\n groupContext: ControlDataContext,\n) => Control<A | undefined>;\n\nfunction useDataExpression(\n fvExpr: DataExpression,\n fields: SchemaField[],\n data: Control<any>,\n) {\n const refField = findField(fields, fvExpr.field);\n const otherField = refField ? data.fields[refField.field] : undefined;\n return useCalculatedControl(() => otherField?.value);\n}\n\nfunction useDataMatchExpression(\n fvExpr: DataMatchExpression,\n fields: SchemaField[],\n data: Control<any>,\n) {\n const refField = findField(fields, fvExpr.field);\n const otherField = refField ? data.fields[refField.field] : undefined;\n return useComputed(() => {\n const fv = otherField?.value;\n return Array.isArray(fv) ? fv.includes(fvExpr.value) : fv === fvExpr.value;\n });\n}\n\nexport function defaultEvalHooks(\n expr: EntityExpression,\n context: ControlDataContext,\n) {\n switch (expr.type) {\n case ExpressionType.Jsonata:\n return useJsonataExpression(\n (expr as JsonataExpression).expression,\n context.groupControl,\n );\n case ExpressionType.Data:\n return useDataExpression(\n expr as DataExpression,\n context.fields,\n context.groupControl,\n );\n case ExpressionType.DataMatch:\n return useDataMatchExpression(\n expr as DataMatchExpression,\n context.fields,\n context.groupControl,\n );\n default:\n return useControl(undefined);\n }\n}\n\nexport const defaultUseEvalExpressionHook =\n makeEvalExpressionHook(defaultEvalHooks);\n\nexport function makeEvalExpressionHook(\n f: (expr: EntityExpression, context: ControlDataContext) => Control<any>,\n): (expr: EntityExpression | undefined) => EvalExpressionHook | undefined {\n return (expr) => {\n const r = useUpdatedRef(expr);\n const cb = useCallback(\n (ctx: ControlDataContext) => {\n const expr = r.current!;\n return f(expr, ctx);\n },\n [expr?.type, r],\n );\n return expr ? cb : undefined;\n };\n}\n\nexport function useEvalDynamicHook(\n definition: ControlDefinition,\n type: DynamicPropertyType,\n useEvalExpressionHook: (\n expr: EntityExpression | undefined,\n ) => EvalExpressionHook | undefined,\n): EvalExpressionHook | undefined {\n const expression = definition.dynamic?.find((x) => x.type === type);\n return useEvalExpressionHook(expression?.expr);\n}\n\nexport function matchesType(\n context: ControlDataContext,\n types?: string[] | null,\n) {\n if (types == null || types.length === 0) return true;\n const typeField = getTypeField(context);\n return typeField && types.includes(typeField.value);\n}\n\nexport function hideDisplayOnly(\n context: ControlDataContext,\n field: SchemaField,\n definition: ControlDefinition,\n schemaInterface: SchemaInterface,\n) {\n const displayOptions = getDisplayOnlyOptions(definition);\n return (\n displayOptions &&\n !displayOptions.emptyText &&\n schemaInterface.isEmptyValue(\n field,\n context.groupControl.fields[field.field].value,\n )\n );\n}\n\nexport function useJsonataExpression(\n jExpr: string,\n data: Control<any>,\n): Control<any> {\n const compiledExpr = useMemo(() => {\n try {\n return jsonata(jExpr);\n } catch (e) {\n console.error(e);\n return jsonata(\"\");\n }\n }, [jExpr]);\n const control = useControl();\n useControlEffect(\n () => data.value,\n async (v) => {\n control.value = await compiledExpr.evaluate(v);\n },\n true,\n );\n return control;\n}\n","import {\n ControlDefinition,\n DataControlDefinition,\n DateComparison,\n DateValidator,\n isDataControlDefinition,\n JsonataValidator,\n ValidatorType,\n} from \"./types\";\nimport {\n Control,\n useControlEffect,\n useValidator,\n useValueChangeEffect,\n} from \"@react-typed-forms/core\";\nimport { useCallback } from \"react\";\nimport { ControlDataContext, useUpdatedRef } from \"./util\";\nimport { useJsonataExpression } from \"./hooks\";\n\nexport function useValidationHook(\n definition: ControlDefinition,\n): (\n control: Control<any>,\n hidden: boolean,\n groupContext: ControlDataContext,\n) => void {\n const validatorTypes = isDataControlDefinition(definition)\n ? definition.validators?.map((x) => x.type) ?? []\n : null;\n const r = useUpdatedRef(definition as DataControlDefinition);\n return useCallback(\n (control, hidden, groupContext) => {\n if (!validatorTypes) return;\n const dd = r.current;\n\n useValueChangeEffect(control, () => control.setError(\"default\", \"\"));\n useValidator(\n control,\n (v) =>\n !hidden &&\n dd.required &&\n (v == null || v === \"\" || (Array.isArray(v) && v.length === 0))\n ? \"Please enter a value\"\n : null,\n \"required\",\n );\n (dd.validators ?? []).forEach((x, i) => {\n switch (x.type) {\n case ValidatorType.Jsonata:\n return useJsonataValidator(\n control,\n groupContext,\n x as JsonataValidator,\n hidden,\n i,\n );\n case ValidatorType.Date:\n return useDateValidator(control, x as DateValidator, i);\n }\n });\n },\n validatorTypes ? validatorTypes : [null],\n );\n}\n\nfunction useJsonataValidator(\n control: Control<any>,\n context: ControlDataContext,\n expr: JsonataValidator,\n hidden: boolean,\n i: number,\n) {\n const errorMsg = useJsonataExpression(expr.expression, context.groupControl);\n useControlEffect(\n () => [hidden, errorMsg.value],\n ([hidden, msg]) => control.setError(\"jsonata\" + i, !hidden ? msg : null),\n true,\n );\n}\n\nfunction useDateValidator(\n control: Control<string | null | undefined>,\n dv: DateValidator,\n i: number,\n) {\n let comparisonDate: number;\n if (dv.fixedDate) {\n comparisonDate = Date.parse(dv.fixedDate);\n } else {\n const nowDate = new Date();\n comparisonDate = Date.UTC(\n nowDate.getFullYear(),\n nowDate.getMonth(),\n nowDate.getDate(),\n );\n if (dv.daysFromCurrent) {\n comparisonDate += dv.daysFromCurrent * 86400000;\n }\n }\n useValidator(\n control,\n (v) => {\n if (v) {\n const selDate = Date.parse(v);\n const notAfter = dv.comparison === DateComparison.NotAfter;\n if (notAfter ? selDate > comparisonDate : selDate < comparisonDate) {\n return `Date must not be ${notAfter ? \"after\" : \"before\"} ${new Date(\n comparisonDate,\n ).toDateString()}`;\n }\n }\n return null;\n },\n \"date\" + i,\n );\n}\n","import { FieldType, SchemaField, SchemaInterface } from \"./types\";\n\nexport const defaultSchemaInterface: SchemaInterface = {\n isEmptyValue: defaultIsEmpty,\n textValue: defaultTextValue,\n};\n\nexport function defaultIsEmpty(f: SchemaField, value: any): boolean {\n if (f.collection)\n return Array.isArray(value) ? value.length === 0 : value == null;\n switch (f.type) {\n case FieldType.String:\n return !value;\n default:\n return value == null;\n }\n}\n\nexport function defaultTextValue(\n f: SchemaField,\n value: any,\n): string | undefined {\n switch (f.type) {\n case FieldType.DateTime:\n return new Date(value).toLocaleDateString();\n case FieldType.Date:\n return new Date(value).toLocaleDateString();\n default:\n return value != null ? value.toString() : undefined;\n }\n}\n","import React, {\n CSSProperties,\n FC,\n Fragment,\n Key,\n ReactNode,\n useCallback,\n useEffect,\n} from \"react\";\nimport {\n addElement,\n Control,\n newControl,\n removeElement,\n useComponentTracking,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\nimport {\n AdornmentPlacement,\n ControlAdornment,\n ControlDefinition,\n DataControlDefinition,\n DisplayData,\n DynamicPropertyType,\n FieldOption,\n GroupRenderOptions,\n isActionControlsDefinition,\n isDataControlDefinition,\n isDisplayControlsDefinition,\n isGroupControlsDefinition,\n RenderOptions,\n SchemaField,\n SchemaInterface,\n} from \"./types\";\nimport {\n ControlDataContext,\n elementValueForField,\n fieldDisplayName,\n findField,\n isCompoundField,\n useUpdatedRef,\n} from \"./util\";\nimport { dataControl } from \"./controlBuilder\";\nimport {\n defaultUseEvalExpressionHook,\n useEvalDefaultValueHook,\n useEvalDisabledHook,\n useEvalDisplayHook,\n UseEvalExpressionHook,\n useEvalReadonlyHook,\n useEvalStyleHook,\n useEvalVisibilityHook,\n} from \"./hooks\";\nimport { useValidationHook } from \"./validators\";\nimport { cc, useCalculatedControl } from \"./internal\";\nimport { defaultSchemaInterface } from \"./schemaInterface\";\n\nexport interface FormRenderer {\n renderData: (\n props: DataRendererProps,\n ) => (layout: ControlLayoutProps) => ControlLayoutProps;\n renderGroup: (\n props: GroupRendererProps,\n ) => (layout: ControlLayoutProps) => ControlLayoutProps;\n renderDisplay: (props: DisplayRendererProps) => ReactNode;\n renderAction: (props: ActionRendererProps) => ReactNode;\n renderArray: (props: ArrayRendererProps) => ReactNode;\n renderAdornment: (props: AdornmentProps) => AdornmentRenderer;\n renderLabel: (\n props: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n ) => ReactNode;\n renderLayout: (props: ControlLayoutProps) => RenderedControl;\n renderVisibility: (props: VisibilityRendererProps) => ReactNode;\n}\n\nexport interface AdornmentProps {\n adornment: ControlAdornment;\n}\n\nexport const AppendAdornmentPriority = 0;\nexport const WrapAdornmentPriority = 1000;\n\nexport interface AdornmentRenderer {\n apply(children: RenderedLayout): void;\n adornment?: ControlAdornment;\n priority: number;\n}\n\nexport interface ArrayRendererProps {\n addAction?: ActionRendererProps;\n required: boolean;\n removeAction?: (elemIndex: number) => ActionRendererProps;\n elementCount: number;\n renderElement: (elemIndex: number) => ReactNode;\n elementKey: (elemIndex: number) => Key;\n arrayControl?: Control<any[] | undefined | null>;\n className?: string;\n style?: React.CSSProperties;\n}\nexport interface Visibility {\n visible: boolean;\n showing: boolean;\n}\n\nexport interface RenderedLayout {\n labelStart?: ReactNode;\n labelEnd?: ReactNode;\n controlStart?: ReactNode;\n controlEnd?: ReactNode;\n label?: ReactNode;\n children?: ReactNode;\n errorControl?: Control<any>;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface RenderedControl {\n children: ReactNode;\n className?: string;\n style?: React.CSSProperties;\n divRef?: (cb: HTMLElement | null) => void;\n}\n\nexport interface VisibilityRendererProps extends RenderedControl {\n visibility: Control<Visibility | undefined>;\n}\n\nexport interface ControlLayoutProps {\n label?: LabelRendererProps;\n errorControl?: Control<any>;\n adornments?: AdornmentRenderer[];\n children?: ReactNode;\n processLayout?: (props: ControlLayoutProps) => ControlLayoutProps;\n className?: string | null;\n style?: React.CSSProperties;\n}\n\nexport enum LabelType {\n Control,\n Group,\n}\nexport interface LabelRendererProps {\n type: LabelType;\n hide?: boolean | null;\n label: ReactNode;\n required?: boolean | null;\n forId?: string;\n}\nexport interface DisplayRendererProps {\n data: DisplayData;\n display?: Control<string | undefined>;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface GroupRendererProps {\n renderOptions: GroupRenderOptions;\n childCount: number;\n renderChild: (child: number) => ReactNode;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface DataRendererProps {\n renderOptions: RenderOptions;\n field: SchemaField;\n id: string;\n control: Control<any>;\n readonly: boolean;\n required: boolean;\n options: FieldOption[] | undefined | null;\n hidden: boolean;\n className?: string;\n style?: React.CSSProperties;\n dataContext: ControlDataContext;\n childCount: number;\n renderChild: ChildRenderer;\n toArrayProps?: () => ArrayRendererProps;\n}\n\nexport interface ActionRendererProps {\n actionId: string;\n actionText: string;\n onClick: () => void;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface ControlRenderProps {\n control: Control<any>;\n}\n\nexport interface FormContextOptions {\n readonly?: boolean | null;\n hidden?: boolean | null;\n disabled?: boolean | null;\n}\n\nexport interface DataControlProps {\n definition: DataControlDefinition;\n field: SchemaField;\n dataContext: ControlDataContext;\n control: Control<any>;\n options: FormContextOptions;\n style: React.CSSProperties | undefined;\n childCount: number;\n renderChild: ChildRenderer;\n elementRenderer?: (elemProps: Control<any>) => ReactNode;\n}\nexport type CreateDataProps = (\n controlProps: DataControlProps,\n) => DataRendererProps;\n\nexport interface ControlRenderOptions extends FormContextOptions {\n useDataHook?: (c: ControlDefinition) => CreateDataProps;\n useEvalExpressionHook?: UseEvalExpressionHook;\n clearHidden?: boolean;\n schemaInterface?: SchemaInterface;\n}\nexport function useControlRenderer(\n definition: ControlDefinition,\n fields: SchemaField[],\n renderer: FormRenderer,\n options: ControlRenderOptions = {},\n): FC<ControlRenderProps> {\n const dataProps = options.useDataHook?.(definition) ?? defaultDataProps;\n const schemaInterface = options.schemaInterface ?? defaultSchemaInterface;\n const useExpr = options.useEvalExpressionHook ?? defaultUseEvalExpressionHook;\n\n const schemaField = lookupSchemaField(definition, fields);\n const useDefaultValue = useEvalDefaultValueHook(\n useExpr,\n definition,\n schemaField,\n );\n const useIsVisible = useEvalVisibilityHook(useExpr, definition, schemaField);\n const useIsReadonly = useEvalReadonlyHook(useExpr, definition);\n const useIsDisabled = useEvalDisabledHook(useExpr, definition);\n const useCustomStyle = useEvalStyleHook(\n useExpr,\n DynamicPropertyType.Style,\n definition,\n );\n const useLayoutStyle = useEvalStyleHook(\n useExpr,\n DynamicPropertyType.LayoutStyle,\n definition,\n );\n const useDynamicDisplay = useEvalDisplayHook(useExpr, definition);\n const useValidation = useValidationHook(definition);\n const r = useUpdatedRef({ options, definition, fields, schemaField });\n\n const Component = useCallback(\n ({ control: parentControl }: ControlRenderProps) => {\n const stopTracking = useComponentTracking();\n try {\n const { definition: c, options, fields, schemaField } = r.current;\n const dataContext: ControlDataContext = {\n groupControl: parentControl,\n fields,\n schemaInterface,\n };\n const readonlyControl = useIsReadonly(dataContext);\n const disabledControl = useIsDisabled(dataContext);\n const visibleControl = useIsVisible(dataContext);\n const displayControl = useDynamicDisplay(dataContext);\n const customStyle = useCustomStyle(dataContext).value;\n const layoutStyle = useLayoutStyle(dataContext).value;\n const visible = visibleControl.current.value;\n const visibility = useControl<Visibility | undefined>(() =>\n visible != null\n ? {\n visible,\n showing: visible,\n }\n : undefined,\n );\n useControlEffect(\n () => visibleControl.value,\n (visible) => {\n if (visible != null)\n visibility.setValue((ex) => ({\n visible,\n showing: ex ? ex.showing : visible,\n }));\n },\n );\n\n const defaultValueControl = useDefaultValue(dataContext);\n const [control, childContext] = getControlData(\n schemaField,\n dataContext,\n );\n useControlEffect(\n () => [\n visibility.value,\n defaultValueControl.value,\n control,\n parentControl.isNull,\n isDataControlDefinition(definition) && definition.dontClearHidden,\n ],\n ([vc, dv, cd, pn, dontClear]) => {\n if (pn) {\n parentControl.value = {};\n }\n if (vc && cd && vc.visible === vc.showing) {\n if (!vc.visible) {\n if (options.clearHidden && !dontClear) cd.value = undefined;\n } else if (cd.value == null) {\n cd.value = dv;\n }\n }\n },\n true,\n );\n const myOptions = useCalculatedControl<FormContextOptions>(() => ({\n hidden: options.hidden || !visibility.fields?.showing.value,\n readonly: options.readonly || readonlyControl.value,\n disabled: options.disabled || disabledControl.value,\n })).value;\n useValidation(control!, !!myOptions.hidden, dataContext);\n const childRenderers: FC<ControlRenderProps>[] =\n c.children?.map((cd) =>\n useControlRenderer(cd, childContext.fields, renderer, {\n ...options,\n ...myOptions,\n }),\n ) ?? [];\n useEffect(() => {\n if (control && typeof myOptions.disabled === \"boolean\")\n control.disabled = myOptions.disabled;\n }, [control, myOptions.disabled]);\n if (parentControl.isNull) return <></>;\n const adornments =\n definition.adornments?.map((x) =>\n renderer.renderAdornment({ adornment: x }),\n ) ?? [];\n const labelAndChildren = renderControlLayout({\n definition: c,\n renderer,\n childCount: childRenderers.length,\n renderChild: (k, i, props) => {\n const RenderChild = childRenderers[i];\n return <RenderChild key={k} {...props} />;\n },\n createDataProps: dataProps,\n formOptions: myOptions,\n dataContext,\n control: displayControl ?? control,\n schemaField,\n displayControl,\n style: customStyle,\n });\n const renderedControl = renderer.renderLayout({\n ...labelAndChildren,\n adornments,\n className: c.layoutClass,\n style: layoutStyle,\n });\n return renderer.renderVisibility({ visibility, ...renderedControl });\n } finally {\n stopTracking();\n }\n },\n [\n r,\n dataProps,\n useIsVisible,\n useDefaultValue,\n useIsReadonly,\n useIsDisabled,\n useCustomStyle,\n useLayoutStyle,\n useDynamicDisplay,\n useValidation,\n renderer,\n schemaInterface,\n ],\n );\n (Component as any).displayName = \"RenderControl\";\n return Component;\n}\nexport function lookupSchemaField(\n c: ControlDefinition,\n fields: SchemaField[],\n): SchemaField | undefined {\n const fieldName = isGroupControlsDefinition(c)\n ? c.compoundField\n : isDataControlDefinition(c)\n ? c.field\n : undefined;\n return fieldName ? findField(fields, fieldName) : undefined;\n}\nexport function getControlData(\n schemaField: SchemaField | undefined,\n parentContext: ControlDataContext,\n): [Control<any> | undefined, ControlDataContext] {\n const childControl: Control<any> | undefined = schemaField\n ? parentContext.groupControl.fields?.[schemaField.field] ?? newControl({})\n : undefined;\n return [\n childControl,\n schemaField && isCompoundField(schemaField)\n ? {\n groupControl: childControl!,\n fields: schemaField.children,\n schemaInterface: parentContext.schemaInterface,\n }\n : parentContext,\n ];\n}\n\nfunction groupProps(\n renderOptions: GroupRenderOptions = { type: \"Standard\" },\n childCount: number,\n renderChild: ChildRenderer,\n control: Control<any>,\n className: string | null | undefined,\n style: React.CSSProperties | undefined,\n): GroupRendererProps {\n return {\n childCount,\n renderChild: (i) => renderChild(i, i, { control }),\n renderOptions,\n className: cc(className),\n style,\n };\n}\n\nexport function defaultDataProps({\n definition,\n field,\n control,\n options,\n elementRenderer,\n style,\n ...props\n}: DataControlProps): DataRendererProps {\n const className = cc(definition.styleClass);\n const required = !!definition.required;\n return {\n control,\n field,\n id: \"c\" + control.uniqueId,\n options: (field.options?.length ?? 0) === 0 ? null : field.options,\n readonly: !!options.readonly,\n renderOptions: definition.renderOptions ?? { type: \"Standard\" },\n required,\n hidden: !!options.hidden,\n className,\n style,\n ...props,\n toArrayProps: elementRenderer\n ? () =>\n defaultArrayProps(\n control,\n field,\n required,\n style,\n className,\n elementRenderer,\n )\n : undefined,\n };\n}\n\nexport function defaultArrayProps(\n arrayControl: Control<any[] | undefined | null>,\n field: SchemaField,\n required: boolean,\n style: CSSProperties | undefined,\n className: string | undefined,\n renderElement: (elemProps: Control<any>) => ReactNode,\n): ArrayRendererProps {\n const noun = field.displayName ?? field.field;\n const elems = arrayControl.elements ?? [];\n return {\n arrayControl,\n elementCount: elems.length,\n required,\n addAction: {\n actionId: \"add\",\n actionText: \"Add \" + noun,\n onClick: () => addElement(arrayControl, elementValueForField(field)),\n },\n elementKey: (i) => elems[i].uniqueId,\n removeAction: (i: number) => ({\n actionId: \"\",\n actionText: \"Remove\",\n onClick: () => removeElement(arrayControl, i),\n }),\n renderElement: (i) => renderElement(elems[i]),\n className: cc(className),\n style,\n };\n}\n\nexport type ChildRenderer = (\n k: Key,\n childIndex: number,\n props: ControlRenderProps,\n) => ReactNode;\n\nexport interface RenderControlProps {\n definition: ControlDefinition;\n renderer: FormRenderer;\n childCount: number;\n renderChild: ChildRenderer;\n createDataProps: CreateDataProps;\n formOptions: FormContextOptions;\n dataContext: ControlDataContext;\n control?: Control<any>;\n schemaField?: SchemaField;\n displayControl?: Control<string | undefined>;\n style?: React.CSSProperties;\n}\nexport function renderControlLayout({\n definition: c,\n renderer,\n childCount,\n renderChild: childRenderer,\n control: childControl,\n schemaField,\n dataContext,\n formOptions: dataOptions,\n createDataProps: dataProps,\n displayControl,\n style,\n}: RenderControlProps): ControlLayoutProps {\n if (isDataControlDefinition(c)) {\n return renderData(c);\n }\n if (isGroupControlsDefinition(c)) {\n if (c.compoundField) {\n return renderData(\n dataControl(c.compoundField, c.title, {\n children: c.children,\n hideTitle: c.groupOptions?.hideTitle,\n }),\n );\n }\n return {\n processLayout: renderer.renderGroup(\n groupProps(\n c.groupOptions,\n childCount,\n childRenderer,\n dataContext.groupControl,\n c.styleClass,\n style,\n ),\n ),\n label: {\n label: c.title,\n type: LabelType.Group,\n hide: c.groupOptions?.hideTitle,\n },\n };\n }\n if (isActionControlsDefinition(c)) {\n return {\n children: renderer.renderAction({\n actionText: c.title ?? c.actionId,\n actionId: c.actionId,\n onClick: () => {},\n className: cc(c.styleClass),\n style,\n }),\n };\n }\n if (isDisplayControlsDefinition(c)) {\n return {\n children: renderer.renderDisplay({\n data: c.displayData ?? {},\n className: cc(c.styleClass),\n style,\n display: displayControl,\n }),\n };\n }\n return {};\n\n function renderData(c: DataControlDefinition, elementControl?: Control<any>) {\n if (!schemaField) return { children: \"No schema field for: \" + c.field };\n const props = dataProps({\n definition: c,\n field: schemaField,\n dataContext,\n control: elementControl ?? childControl!,\n options: dataOptions,\n style,\n childCount,\n renderChild: childRenderer,\n elementRenderer:\n elementControl == null && schemaField.collection\n ? (element) =>\n renderLayoutParts(renderData(c, element), renderer).children\n : undefined,\n });\n\n const labelText = !c.hideTitle\n ? controlTitle(c.title, schemaField)\n : undefined;\n return {\n processLayout: renderer.renderData(props),\n label: {\n type: LabelType.Control,\n label: labelText,\n forId: props.id,\n required: c.required,\n hide: c.hideTitle,\n },\n errorControl: childControl,\n };\n }\n\n function compoundRenderer(i: number, control: Control<any>): ReactNode {\n const { className, style, children } = renderer.renderLayout({\n processLayout: renderer.renderGroup({\n renderOptions: { type: \"Standard\", hideTitle: true },\n childCount,\n renderChild: (ci) => childRenderer(ci, ci, { control }),\n }),\n });\n return (\n <div key={control.uniqueId} style={style} className={cc(className)}>\n {children}\n </div>\n );\n }\n function scalarRenderer(\n dataProps: DataRendererProps,\n ): (i: number, control: Control<any>) => ReactNode {\n return (i, control) => {\n return (\n <Fragment key={control.uniqueId}>\n {renderer.renderData({ ...dataProps, control })({}).children}\n </Fragment>\n );\n };\n }\n}\n\nexport function appendMarkup(\n k: keyof Omit<RenderedLayout, \"errorControl\" | \"style\" | \"className\">,\n markup: ReactNode,\n): (layout: RenderedLayout) => void {\n return (layout) =>\n (layout[k] = (\n <>\n {layout[k]}\n {markup}\n </>\n ));\n}\n\nexport function wrapMarkup(\n k: keyof Omit<RenderedLayout, \"errorControl\" | \"style\" | \"className\">,\n wrap: (ex: ReactNode) => ReactNode,\n): (layout: RenderedLayout) => void {\n return (layout) => (layout[k] = wrap(layout[k]));\n}\n\nexport function layoutKeyForPlacement(\n pos: AdornmentPlacement,\n): keyof Omit<RenderedLayout, \"errorControl\" | \"style\" | \"className\"> {\n switch (pos) {\n case AdornmentPlacement.ControlEnd:\n return \"controlEnd\";\n case AdornmentPlacement.ControlStart:\n return \"controlStart\";\n case AdornmentPlacement.LabelStart:\n return \"labelStart\";\n case AdornmentPlacement.LabelEnd:\n return \"labelEnd\";\n }\n}\n\nexport function appendMarkupAt(\n pos: AdornmentPlacement,\n markup: ReactNode,\n): (layout: RenderedLayout) => void {\n return appendMarkup(layoutKeyForPlacement(pos), markup);\n}\n\nexport function wrapMarkupAt(\n pos: AdornmentPlacement,\n wrap: (ex: ReactNode) => ReactNode,\n): (layout: RenderedLayout) => void {\n return wrapMarkup(layoutKeyForPlacement(pos), wrap);\n}\n\nexport function renderLayoutParts(\n props: ControlLayoutProps,\n renderer: FormRenderer,\n): RenderedLayout {\n const { className, children, style, errorControl, label, adornments } =\n props.processLayout?.(props) ?? props;\n const layout: RenderedLayout = {\n children,\n errorControl,\n style,\n className: cc(className),\n };\n (adornments ?? [])\n .sort((a, b) => a.priority - b.priority)\n .forEach((x) => x.apply(layout));\n layout.label =\n label && !label.hide\n ? renderer.renderLabel(label, layout.labelStart, layout.labelEnd)\n : undefined;\n return layout;\n}\n\nexport function controlTitle(\n title: string | undefined | null,\n field: SchemaField,\n) {\n return title ? title : fieldDisplayName(field);\n}\n","import React, {\n CSSProperties,\n Fragment,\n ReactElement,\n ReactNode,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport clsx from \"clsx\";\nimport { Control, Fcheckbox, formControlProps } from \"@react-typed-forms/core\";\nimport {\n ActionRendererProps,\n AdornmentProps,\n AdornmentRenderer,\n appendMarkupAt,\n ArrayRendererProps,\n ControlLayoutProps,\n DataRendererProps,\n DisplayRendererProps,\n FormRenderer,\n GroupRendererProps,\n LabelRendererProps,\n LabelType,\n RenderedControl,\n RenderedLayout,\n renderLayoutParts,\n VisibilityRendererProps,\n} from \"./controlRender\";\nimport {\n AdornmentPlacement,\n ControlAdornment,\n ControlAdornmentType,\n DataRenderType,\n DisplayDataType,\n FieldOption,\n FieldType,\n FlexRenderer,\n GridRenderer,\n HtmlDisplay,\n IconAdornment,\n IconDisplay,\n isDisplayOnlyRenderer,\n isFlexRenderer,\n isGridRenderer,\n SchemaField,\n SchemaInterface,\n TextDisplay,\n} from \"./types\";\nimport { hasOptions } from \"./util\";\n\nexport interface DefaultRenderers {\n data: DataRendererRegistration;\n label: LabelRendererRegistration;\n action: ActionRendererRegistration;\n array: ArrayRendererRegistration;\n group: GroupRendererRegistration;\n display: DisplayRendererRegistration;\n adornment: AdornmentRendererRegistration;\n renderLayout: LayoutRendererRegistration;\n visibility: VisibilityRendererRegistration;\n}\n\nexport interface LayoutRendererRegistration {\n type: \"layout\";\n match?: (props: ControlLayoutProps) => boolean;\n render: (\n props: ControlLayoutProps,\n renderers: FormRenderer,\n ) => RenderedControl;\n}\nexport interface DataRendererRegistration {\n type: \"data\";\n schemaType?: string | string[];\n renderType?: string | string[];\n options?: boolean;\n collection?: boolean;\n match?: (props: DataRendererProps) => boolean;\n render: (\n props: DataRendererProps,\n renderers: FormRenderer,\n ) => ReactNode | ((layout: ControlLayoutProps) => ControlLayoutProps);\n}\n\nexport interface LabelRendererRegistration {\n type: \"label\";\n labelType?: LabelType | LabelType[];\n render: (\n labelProps: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface ActionRendererRegistration {\n type: \"action\";\n actionType?: string | string[];\n render: (props: ActionRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface ArrayRendererRegistration {\n type: \"array\";\n render: (props: ArrayRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface GroupRendererRegistration {\n type: \"group\";\n renderType?: string | string[];\n render: (\n props: GroupRendererProps,\n renderers: FormRenderer,\n ) => ReactElement | ((layout: ControlLayoutProps) => ControlLayoutProps);\n}\n\nexport interface DisplayRendererRegistration {\n type: \"display\";\n renderType?: string | string[];\n render: (\n props: DisplayRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface AdornmentRendererRegistration {\n type: \"adornment\";\n adornmentType?: string | string[];\n render: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nexport interface VisibilityRendererRegistration {\n type: \"visibility\";\n render: (props: VisibilityRendererProps) => ReactNode;\n}\n\nexport type RendererRegistration =\n | DataRendererRegistration\n | GroupRendererRegistration\n | DisplayRendererRegistration\n | ActionRendererRegistration\n | LabelRendererRegistration\n | ArrayRendererRegistration\n | AdornmentRendererRegistration\n | LayoutRendererRegistration\n | VisibilityRendererRegistration;\n\nexport function createFormRenderer(\n customRenderers: RendererRegistration[] = [],\n defaultRenderers: DefaultRenderers = createClassStyledRenderers(),\n): FormRenderer {\n const dataRegistrations = customRenderers.filter(isDataRegistration);\n const groupRegistrations = customRenderers.filter(isGroupRegistration);\n const adornmentRegistrations = customRenderers.filter(\n isAdornmentRegistration,\n );\n const displayRegistrations = customRenderers.filter(isDisplayRegistration);\n const labelRenderers = customRenderers.filter(isLabelRegistration);\n const arrayRenderers = customRenderers.filter(isArrayRegistration);\n const actionRenderers = customRenderers.filter(isActionRegistration);\n const layoutRenderers = customRenderers.filter(isLayoutRegistration);\n const visibilityRenderer =\n customRenderers.find(isVisibilityRegistration) ??\n defaultRenderers.visibility;\n\n const formRenderers: FormRenderer = {\n renderAction,\n renderData,\n renderGroup,\n renderDisplay,\n renderLabel,\n renderArray,\n renderAdornment,\n renderLayout,\n renderVisibility: visibilityRenderer.render,\n };\n\n function renderLayout(props: ControlLayoutProps) {\n const renderer =\n layoutRenderers.find((x) => !x.match || x.match(props)) ??\n defaultRenderers.renderLayout;\n return renderer.render(props, formRenderers);\n }\n\n function renderAdornment(props: AdornmentProps): AdornmentRenderer {\n const renderer =\n adornmentRegistrations.find((x) =>\n isOneOf(x.adornmentType, props.adornment.type),\n ) ?? defaultRenderers.adornment;\n return renderer.render(props);\n }\n\n function renderArray(props: ArrayRendererProps) {\n return (arrayRenderers[0] ?? defaultRenderers.array).render(\n props,\n formRenderers,\n );\n }\n\n function renderLabel(\n props: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n ) {\n const renderer =\n labelRenderers.find((x) => isOneOf(x.labelType, props.type)) ??\n defaultRenderers.label;\n return renderer.render(props, labelStart, labelEnd, formRenderers);\n }\n\n function renderData(\n props: DataRendererProps,\n ): (layout: ControlLayoutProps) => ControlLayoutProps {\n const {\n renderOptions: { type: renderType },\n field,\n } = props;\n\n const options = hasOptions(props);\n const renderer =\n dataRegistrations.find(\n (x) =>\n (x.collection ?? false) === (field.collection ?? false) &&\n (x.options ?? false) === options &&\n isOneOf(x.schemaType, field.type) &&\n isOneOf(x.renderType, renderType) &&\n (!x.match || x.match(props)),\n ) ?? defaultRenderers.data;\n\n const result = renderer.render(props, formRenderers);\n if (typeof result === \"function\") return result;\n return (l) => ({ ...l, children: result });\n }\n\n function renderGroup(\n props: GroupRendererProps,\n ): (layout: ControlLayoutProps) => ControlLayoutProps {\n const renderType = props.renderOptions.type;\n const renderer =\n groupRegistrations.find((x) => isOneOf(x.renderType, renderType)) ??\n defaultRenderers.group;\n const result = renderer.render(props, formRenderers);\n if (typeof result === \"function\") return result;\n return (l) => ({ ...l, children: result });\n }\n\n function renderAction(props: ActionRendererProps) {\n const renderer =\n actionRenderers.find((x) => isOneOf(x.actionType, props.actionId)) ??\n defaultRenderers.action;\n return renderer.render(props, formRenderers);\n }\n\n function renderDisplay(props: DisplayRendererProps) {\n const renderType = props.data.type;\n const renderer =\n displayRegistrations.find((x) => isOneOf(x.renderType, renderType)) ??\n defaultRenderers.display;\n return renderer.render(props, formRenderers);\n }\n\n return formRenderers;\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n requiredElement?: ReactNode;\n}\n\ninterface DefaultActionRendererOptions {\n className?: string;\n}\n\nexport function createDefaultActionRenderer(\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n function render({ onClick, actionText }: ActionRendererProps) {\n return (\n <button className={options.className} onClick={onClick}>\n {actionText}\n </button>\n );\n }\n return { render, type: \"action\" };\n}\nexport function createDefaultLabelRenderer(\n options: DefaultLabelRendererOptions = { requiredElement: <span> *</span> },\n): LabelRendererRegistration {\n const { className, groupLabelClass, requiredElement } = options;\n return {\n render: (props, labelStart, labelEnd) => (\n <>\n {labelStart}\n <label\n htmlFor={props.forId}\n className={clsx(\n className,\n props.type === LabelType.Group && groupLabelClass,\n )}\n >\n {props.label}\n {props.required && requiredElement}\n </label>\n {labelEnd}\n </>\n ),\n type: \"label\",\n };\n}\n\ninterface DefaultArrayRendererOptions {\n className?: string;\n removableClass?: string;\n childClass?: string;\n removableChildClass?: string;\n removeActionClass?: string;\n addActionClass?: string;\n}\n\nexport function createDefaultArrayRenderer(\n options?: DefaultArrayRendererOptions,\n): ArrayRendererRegistration {\n const {\n className,\n removableClass,\n childClass,\n removableChildClass,\n removeActionClass,\n addActionClass,\n } = options ?? {};\n function render(\n {\n elementCount,\n renderElement,\n addAction,\n removeAction,\n elementKey,\n required,\n }: ArrayRendererProps,\n { renderAction }: FormRenderer,\n ) {\n const showRemove = !required || elementCount > 1;\n return (\n <div>\n <div className={clsx(className, removeAction && removableClass)}>\n {Array.from({ length: elementCount }, (_, x) =>\n removeAction ? (\n <Fragment key={elementKey(x)}>\n <div className={clsx(childClass, removableChildClass)}>\n {renderElement(x)}\n </div>\n <div className={removeActionClass}>\n {showRemove && renderAction(removeAction(x))}\n </div>\n </Fragment>\n ) : (\n <div key={elementKey(x)} className={childClass}>\n {renderElement(x)}\n </div>\n ),\n )}\n </div>\n {addAction && (\n <div className={addActionClass}>{renderAction(addAction)}</div>\n )}\n </div>\n );\n }\n return { render, type: \"array\" };\n}\n\ninterface StyleProps {\n className?: string;\n style?: CSSProperties;\n}\n\ninterface DefaultGroupRendererOptions {\n className?: string;\n standardClassName?: string;\n gridStyles?: (columns: GridRenderer) => StyleProps;\n gridClassName?: string;\n defaultGridColumns?: number;\n flexClassName?: string;\n defaultFlexGap?: string;\n}\n\nexport function createDefaultGroupRenderer(\n options?: DefaultGroupRendererOptions,\n): GroupRendererRegistration {\n const {\n className,\n gridStyles = defaultGridStyles,\n defaultGridColumns = 2,\n gridClassName,\n standardClassName,\n flexClassName,\n defaultFlexGap,\n } = options ?? {};\n\n function defaultGridStyles({\n columns = defaultGridColumns,\n }: GridRenderer): StyleProps {\n return {\n className: gridClassName,\n style: {\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n },\n };\n }\n\n function flexStyles(options: FlexRenderer): StyleProps {\n return {\n className: flexClassName,\n style: {\n display: \"flex\",\n gap: options.gap ? options.gap : defaultFlexGap,\n flexDirection: options.direction\n ? (options.direction as any)\n : undefined,\n },\n };\n }\n\n function render(props: GroupRendererProps) {\n const { childCount, renderChild, renderOptions } = props;\n\n const { style, className: gcn } = isGridRenderer(renderOptions)\n ? gridStyles(renderOptions)\n : isFlexRenderer(renderOptions)\n ? flexStyles(renderOptions)\n : ({ className: standardClassName } as StyleProps);\n\n return (cp: ControlLayoutProps) => {\n return {\n ...cp,\n children: (\n <div className={clsx(props.className, className, gcn)} style={style}>\n {Array.from({ length: childCount }, (_, x) => renderChild(x))}\n </div>\n ),\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 return {\n render: (props) => <DefaultDisplay {...options} {...props} />,\n type: \"display\",\n };\n}\n\nexport function DefaultDisplay({\n data,\n display,\n className,\n style,\n ...options\n}: DefaultDisplayRendererOptions & DisplayRendererProps) {\n switch (data.type) {\n case DisplayDataType.Icon:\n return (\n <i\n style={style}\n className={clsx(\n className,\n display ? display.value : (data as IconDisplay).iconClass,\n )}\n />\n );\n case DisplayDataType.Text:\n return (\n <div style={style} className={clsx(className, options.textClassName)}>\n {display ? display.value : (data as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n style={style}\n className={clsx(className, options.htmlClassName)}\n dangerouslySetInnerHTML={{\n __html: display ? display.value ?? \"\" : (data as HtmlDisplay).html,\n }}\n />\n );\n default:\n return <h1>Unknown display type: {data.type}</h1>;\n }\n}\n\nexport const DefaultBoolOptions: FieldOption[] = [\n { name: \"Yes\", value: true },\n { name: \"No\", value: false },\n];\ninterface DefaultDataRendererOptions {\n inputClass?: string;\n displayOnlyClass?: 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, displayOnlyClass } = {\n optionRenderer: selectRenderer,\n booleanOptions: DefaultBoolOptions,\n ...options,\n };\n return createDataRenderer((props, renderers) => {\n const fieldType = props.field.type;\n if (props.toArrayProps) {\n return (p) => ({\n ...p,\n children: renderers.renderArray(props.toArrayProps!()),\n });\n }\n if (fieldType === FieldType.Compound) {\n return renderers.renderGroup({\n style: props.style,\n className: props.className,\n renderOptions: { type: \"Standard\", hideTitle: true },\n renderChild: (i) => props.renderChild(i, i, { control: props.control }),\n childCount: props.childCount,\n });\n }\n const renderOptions = props.renderOptions;\n let renderType = renderOptions.type;\n if (fieldType == FieldType.Any) return <>No control for Any</>;\n if (isDisplayOnlyRenderer(renderOptions))\n return (p) => ({\n ...p,\n className: displayOnlyClass,\n children: (\n <DefaultDisplayOnly\n field={props.field}\n schemaInterface={props.dataContext.schemaInterface}\n control={props.control}\n className={props.className}\n style={props.style}\n emptyText={renderOptions.emptyText}\n />\n ),\n });\n const isBool = fieldType === FieldType.Bool;\n if (booleanOptions != null && isBool && props.options == null) {\n return renderers.renderData({ ...props, options: booleanOptions });\n }\n if (renderType === DataRenderType.Standard && hasOptions(props)) {\n return optionRenderer.render(props, renderers);\n }\n switch (renderType) {\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, renderers);\n }\n return renderType === DataRenderType.Checkbox ? (\n <Fcheckbox\n style={props.style}\n className={props.className}\n control={props.control}\n />\n ) : (\n <ControlInput\n className={clsx(props.className, inputClass)}\n style={props.style}\n id={props.id}\n readOnly={props.readonly}\n control={props.control}\n convert={createInputConversion(props.field.type)}\n />\n );\n });\n}\n\nexport function DefaultDisplayOnly({\n control,\n className,\n emptyText,\n schemaInterface,\n field,\n style,\n}: {\n control: Control<any>;\n field: SchemaField;\n schemaInterface: SchemaInterface;\n className?: string;\n style?: React.CSSProperties;\n emptyText?: string | null;\n}) {\n const v = control.value;\n const text =\n (schemaInterface.isEmptyValue(field, v)\n ? emptyText\n : schemaInterface.textValue(field, v)) ?? \"\";\n return (\n <div style={style} className={className}>\n {text}\n </div>\n );\n}\n\nexport function ControlInput({\n control,\n convert,\n ...props\n}: React.InputHTMLAttributes<HTMLInputElement> & {\n control: Control<any>;\n convert: InputConversion;\n}) {\n const { errorText, value, onChange, ...inputProps } =\n formControlProps(control);\n return (\n <input\n {...inputProps}\n type={convert[0]}\n value={value == null ? \"\" : convert[2](value)}\n onChange={(e) => {\n control.value = convert[1](e.target.value);\n }}\n {...props}\n />\n );\n}\n\nexport interface DefaultAdornmentRendererOptions {}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n return {\n type: \"adornment\",\n render: ({ adornment }) => ({\n apply: (rl) => {\n if (isIconAdornment(adornment)) {\n return appendMarkupAt(\n adornment.placement ?? AdornmentPlacement.ControlStart,\n <i className={adornment.iconClass} />,\n )(rl);\n }\n },\n priority: 0,\n adornment,\n }),\n };\n}\n\nexport interface DefaultLayoutRendererOptions {\n className?: string;\n errorClass?: string;\n}\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\n layout?: DefaultLayoutRendererOptions;\n}\n\nexport function createDefaultRenderers(\n options: DefaultRendererOptions = {},\n): DefaultRenderers {\n return {\n data: createDefaultDataRenderer(options.data),\n display: createDefaultDisplayRenderer(options.display),\n action: createDefaultActionRenderer(options.action),\n array: createDefaultArrayRenderer(options.array),\n group: createDefaultGroupRenderer(options.group),\n label: createDefaultLabelRenderer(options.label),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n renderLayout: createDefaultLayoutRenderer(options.layout),\n visibility: createDefaultVisibilityRenderer(),\n };\n}\n\nfunction createDefaultLayoutRenderer(\n options: DefaultLayoutRendererOptions = {},\n) {\n return createLayoutRenderer((props, renderers) => {\n const layout = renderLayoutParts(\n { ...props, className: clsx(props.className, options.className) },\n renderers,\n );\n return {\n children: <DefaultLayout layout={layout} {...options} />,\n className: layout.className,\n style: layout.style,\n divRef: (e) =>\n e && props.errorControl\n ? (props.errorControl.meta.scrollElement = e)\n : undefined,\n };\n });\n}\n\nfunction createClassStyledRenderers() {\n return createDefaultRenderers({\n layout: { className: \"control\" },\n group: { className: \"group\" },\n array: { className: \"control-array\" },\n action: { className: \"action\" },\n data: { inputClass: \"data\" },\n display: { htmlClassName: \"html\", textClassName: \"text\" },\n });\n}\n\nfunction isAdornmentRegistration(\n x: RendererRegistration,\n): x is AdornmentRendererRegistration {\n return x.type === \"adornment\";\n}\n\nfunction isDataRegistration(\n x: RendererRegistration,\n): x is DataRendererRegistration {\n return x.type === \"data\";\n}\n\nfunction isGroupRegistration(\n x: RendererRegistration,\n): x is GroupRendererRegistration {\n return x.type === \"group\";\n}\n\nfunction isLabelRegistration(\n x: RendererRegistration,\n): x is LabelRendererRegistration {\n return x.type === \"label\";\n}\n\nfunction isLayoutRegistration(\n x: RendererRegistration,\n): x is LayoutRendererRegistration {\n return x.type === \"layout\";\n}\n\nfunction isVisibilityRegistration(\n x: RendererRegistration,\n): x is VisibilityRendererRegistration {\n return x.type === \"visibility\";\n}\n\nfunction isActionRegistration(\n x: RendererRegistration,\n): x is ActionRendererRegistration {\n return x.type === \"action\";\n}\n\nfunction isDisplayRegistration(\n x: RendererRegistration,\n): x is DisplayRendererRegistration {\n return x.type === \"display\";\n}\n\nfunction isArrayRegistration(\n x: RendererRegistration,\n): x is ArrayRendererRegistration {\n return x.type === \"array\";\n}\nfunction isOneOf<A>(x: A | A[] | undefined, v: A) {\n return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;\n}\n\nexport function isIconAdornment(a: ControlAdornment): a is IconAdornment {\n return a.type === ControlAdornmentType.Icon;\n}\n\nexport function createLayoutRenderer(\n render: LayoutRendererRegistration[\"render\"],\n options?: Partial<LayoutRendererRegistration>,\n): LayoutRendererRegistration {\n return { type: \"layout\", render, ...options };\n}\n\nexport function createArrayRenderer(\n render: ArrayRendererRegistration[\"render\"],\n options?: Partial<ArrayRendererRegistration>,\n): ArrayRendererRegistration {\n return { type: \"array\", render, ...options };\n}\n\nexport function createDataRenderer(\n render: DataRendererRegistration[\"render\"],\n options?: Partial<DataRendererRegistration>,\n): DataRendererRegistration {\n return { type: \"data\", render, ...options };\n}\n\nexport function createLabelRenderer(\n render: LabelRendererRegistration[\"render\"],\n options?: Omit<LabelRendererRegistration, \"type\">,\n): LabelRendererRegistration {\n return { type: \"label\", render, ...options };\n}\n\nexport function createVisibilityRenderer(\n render: VisibilityRendererRegistration[\"render\"],\n options?: Partial<VisibilityRendererRegistration>,\n): VisibilityRendererRegistration {\n return { type: \"visibility\", render, ...options };\n}\n\nexport function createAdornmentRenderer(\n render: (props: AdornmentProps) => AdornmentRenderer,\n options?: Partial<AdornmentRendererRegistration>,\n): AdornmentRendererRegistration {\n return { type: \"adornment\", ...options, render };\n}\n\nexport interface SelectRendererOptions {\n className?: string;\n emptyText?: string;\n requiredText?: string;\n}\n\nexport function createSelectRenderer(options: SelectRendererOptions = {}) {\n return createDataRenderer(\n (props, asArray) => (\n <SelectDataRenderer\n className={clsx(props.className, options.className)}\n state={props.control}\n id={props.id}\n options={props.options!}\n required={props.required}\n emptyText={options.emptyText}\n requiredText={options.requiredText}\n convert={createSelectConversion(props.field.type)}\n />\n ),\n {\n options: true,\n },\n );\n}\n\ntype SelectConversion = (a: any) => string | number;\n\ninterface SelectDataRendererProps {\n id?: string;\n className?: string;\n options: {\n name: string;\n value: any;\n disabled?: boolean;\n }[];\n emptyText?: string;\n requiredText?: string;\n required: boolean;\n state: Control<any>;\n convert: SelectConversion;\n}\n\nexport function SelectDataRenderer({\n state,\n options,\n className,\n convert,\n required,\n emptyText = \"N/A\",\n requiredText = \"<please select>\",\n ...props\n}: SelectDataRendererProps) {\n const { value, disabled } = state;\n const [showEmpty] = useState(!required || value == null);\n const optionStringMap = useMemo(\n () => Object.fromEntries(options.map((x) => [convert(x.value), x.value])),\n [options],\n );\n return (\n <select\n {...props}\n className={className}\n onChange={(v) => (state.value = optionStringMap[v.target.value])}\n value={convert(value)}\n disabled={disabled}\n >\n {showEmpty && (\n <option value=\"\">{required ? requiredText : emptyText}</option>\n )}\n {options.map((x, i) => (\n <option key={i} value={convert(x.value)} disabled={x.disabled}>\n {x.name}\n </option>\n ))}\n </select>\n );\n}\n\nexport function createSelectConversion(ft: string): SelectConversion {\n switch (ft) {\n case FieldType.String:\n case FieldType.Int:\n case FieldType.Double:\n return (a) => a;\n default:\n return (a) => a?.toString() ?? \"\";\n }\n}\n\ntype InputConversion = [string, (s: any) => any, (a: any) => string | number];\n\nexport function createInputConversion(ft: string): InputConversion {\n switch (ft) {\n case FieldType.String:\n return [\"text\", (a) => a, (a) => a];\n case FieldType.Bool:\n return [\"text\", (a) => a === \"true\", (a) => a?.toString() ?? \"\"];\n case FieldType.Int:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseInt(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n case FieldType.Date:\n return [\"date\", (a) => a, (a) => a];\n case FieldType.Double:\n return [\"number\", (a) => parseFloat(a), (a) => a];\n default:\n return [\"text\", (a) => a, (a) => a];\n }\n}\n\nexport function createDefaultVisibilityRenderer() {\n return createVisibilityRenderer((props) => <DefaultVisibility {...props} />);\n}\n\nexport function DefaultVisibility({\n visibility,\n children,\n className,\n style,\n divRef,\n}: VisibilityRendererProps) {\n const v = visibility.value;\n useEffect(() => {\n if (v) {\n visibility.setValue((ex) => ({ visible: v.visible, showing: v.visible }));\n }\n }, [v?.visible]);\n return v?.visible ? (\n <div className={clsx(className)} style={style} ref={divRef}>\n {children}\n </div>\n ) : (\n <></>\n );\n}\n\nexport function DefaultLayout({\n errorClass,\n className,\n layout: { controlEnd, controlStart, label, children, errorControl },\n}: DefaultLayoutRendererOptions & {\n layout: RenderedLayout;\n}) {\n const ec = errorControl;\n const errorText = ec && ec.touched ? ec.error : undefined;\n return (\n <>\n {label}\n {controlStart}\n {children}\n {errorText && <div className={errorClass}>{errorText}</div>}\n {controlEnd}\n </>\n );\n}\n","import React from \"react\";\nimport { DefaultRendererOptions } from \"./renderers\";\n\nexport const defaultTailwindTheme: DefaultRendererOptions = {\n label: {\n groupLabelClass: \"font-bold\",\n requiredElement: <span className=\"text-red-500\"> *</span>,\n },\n array: {\n removableClass: \"grid grid-cols-[1fr_auto] items-center gap-x-2\",\n childClass: \"grow my-2\",\n addActionClass: \"my-2\",\n },\n group: {\n standardClassName: \"flex flex-col gap-4\",\n gridClassName: \"gap-x-2 gap-y-4\",\n flexClassName: \"gap-2\",\n },\n action: {\n className: \"bg-primary rounded-lg p-3 text-white\",\n },\n layout: {\n className: \"flex flex-col\",\n errorClass: \"text-sm text-danger-500\",\n },\n data: {\n displayOnlyClass: \"flex flex-row items-center gap-2\",\n },\n};\n"],"names":["FieldType","ControlDefinitionType","DynamicPropertyType","ExpressionType","AdornmentPlacement","ControlAdornmentType","DataRenderType","SyncTextType","GroupRenderType","DisplayDataType","ValidatorType","DateComparison","isDataControlDefinition","x","type","Data","isGroupControlsDefinition","Group","isDisplayControlsDefinition","Display","isActionControlsDefinition","Action","visitControlDefinition","visitor","defaultValue","action","data","display","group","isGridRenderer","options","Grid","isFlexRenderer","Flex","isDisplayOnlyRenderer","DisplayOnly","buildSchema","def","Object","entries","map","stringField","displayName","makeScalarField","_extends","String","stringOptionsField","slice","call","arguments","withScalarOptions","v","n","defaultScalarField","makeCompoundField","defaultCompoundField","intField","Int","boolField","Bool","compoundField","fields","other","field","children","collection","Compound","applyDefaultValues","defaultValueForFields","applyValue","filter","isCompoundField","length","out","forEach","applyDefaultForField","defaultValueForField","parent","notElement","required","treeChildren","fromEntries","sf","undefined","isRequired","childValue","notNullable","elementValueForField","findScalarField","findField","findCompoundField","find","isScalarField","isDataControl","c","isGroupControl","fieldHasTag","tag","_field$tags","Boolean","tags","includes","fieldDisplayName","_field$displayName","hasOptions","o","_o$options$length","_o$options","defaultControlForField","title","_sf$tags","htmlEditor","renderOptions","HtmlEditor","Standard","findReferencedControl","control","_control$children","findReferencedControlInArray","controls","_iterator","_createForOfIteratorHelperLoose","_step","done","value","ref","addMissingControls","changes","flatMap","existing","changedCompounds","_cf$children","ex","cf","concat","useUpdatedRef","a","r","useRef","current","isControlReadonly","readonly","getDisplayOnlyOptions","d","getTypeField","context","_context$groupControl","typeSchemaField","isTypeField","groupControl","visitControlDataArray","cb","_iterator2","_step2","visitControlData","definition","ctx","processData","fieldName","fieldData","result","_iterator3","_control$elements","elements","_step3","elemResult","cfResult","schemaInterface","cleanDataForSchema","typeField","typeValue","cleanableFields","_x$onlyForTypes$lengt","_x$onlyForTypes","onlyForTypes","_x$onlyForTypes2","canBeNull","childFields","Array","isArray","cv","getAllReferencedClasses","_c$children","childClasses","tc","clsx","styleClass","layoutClass","dataControl","textDisplayControl","text","displayData","Text","htmlDisplayControl","html","Html","dynamicDefaultValue","expr","DefaultValue","dynamicReadonly","Readonly","dynamicVisibility","Visible","dynamicDisabled","Disabled","fieldEqExpr","DataMatch","jsonataExpr","expression","Jsonata","groupedControl","groupOptions","hideTitle","compoundControl","createAction","actionId","onClick","actionText","emptyGroupDefinition","useControlDefinitionForSchema","useMemo","_definition$children","useCalculatedControl","calculate","useControl","useControlEffect","cc","useEvalVisibilityHook","useEvalExpressionHook","schemaField","useEvalDynamicHook","useCallback","_dynamicVisibility","_r$current","useComputed","matchesType","hideDisplayOnly","useEvalReadonlyHook","useEvalStyleHook","property","dynamicStyle","useEvalDisabledHook","useEvalDisplayHook","dynamicDisplay","useEvalDefaultValueHook","dynamicValue","_dynamicValue","_r$current2","calcDefault","_ref","dcv","useDataExpression","fvExpr","refField","otherField","useDataMatchExpression","fv","defaultEvalHooks","useJsonataExpression","defaultUseEvalExpressionHook","makeEvalExpressionHook","f","_definition$dynamic","dynamic","types","displayOptions","emptyText","isEmptyValue","jExpr","compiledExpr","jsonata","e","console","error","Promise","resolve","evaluate","then","_compiledExpr$evaluat","reject","useValidationHook","_definition$validator","_definition$validator2","validatorTypes","validators","hidden","groupContext","_dd$validators","dd","useValueChangeEffect","setError","useValidator","i","useJsonataValidator","Date","useDateValidator","errorMsg","msg","dv","comparisonDate","fixedDate","parse","nowDate","UTC","getFullYear","getMonth","getDate","daysFromCurrent","selDate","notAfter","comparison","NotAfter","toDateString","defaultSchemaInterface","defaultIsEmpty","textValue","defaultTextValue","DateTime","toLocaleDateString","toString","AppendAdornmentPriority","WrapAdornmentPriority","LabelType","useControlRenderer","renderer","_options$useDataHook","_options$schemaInterf","_options$useEvalExpre","dataProps","useDataHook","defaultDataProps","useExpr","lookupSchemaField","useDefaultValue","useIsVisible","useIsReadonly","useIsDisabled","useCustomStyle","Style","useLayoutStyle","LayoutStyle","useDynamicDisplay","useValidation","Component","parentControl","stopTracking","useComponentTracking","_c$children$map","_definition$adornment","_definition$adornment2","dataContext","readonlyControl","disabledControl","visibleControl","displayControl","customStyle","layoutStyle","visible","visibility","showing","setValue","defaultValueControl","_getControlData","getControlData","childContext","isNull","dontClearHidden","_ref2","vc","cd","pn","dontClear","clearHidden","myOptions","_visibility$fields","disabled","childRenderers","useEffect","React","createElement","Fragment","adornments","renderAdornment","adornment","labelAndChildren","renderControlLayout","childCount","renderChild","k","props","RenderChild","key","createDataProps","formOptions","style","renderedControl","renderLayout","className","renderVisibility","parentContext","_parentContext$groupC","_parentContext$groupC2","childControl","newControl","groupProps","_ref3","_field$options$length","_field$options","_definition$renderOpt","elementRenderer","_objectWithoutPropertiesLoose","_excluded","id","uniqueId","toArrayProps","defaultArrayProps","arrayControl","renderElement","_arrayControl$element","noun","elems","elementCount","addAction","addElement","elementKey","removeAction","removeElement","_ref4","childRenderer","dataOptions","renderData","_c$groupOptions2","_c$groupOptions","processLayout","renderGroup","label","hide","_c$title","renderAction","_c$displayData","renderDisplay","elementControl","element","renderLayoutParts","labelText","controlTitle","Control","forId","errorControl","appendMarkup","markup","layout","wrapMarkup","wrap","layoutKeyForPlacement","pos","ControlEnd","ControlStart","LabelStart","LabelEnd","appendMarkupAt","wrapMarkupAt","_props$processLayout","_ref5","sort","b","priority","apply","renderLabel","labelStart","labelEnd","createFormRenderer","customRenderers","defaultRenderers","_customRenderers$find","createClassStyledRenderers","dataRegistrations","isDataRegistration","groupRegistrations","isGroupRegistration","adornmentRegistrations","isAdornmentRegistration","displayRegistrations","isDisplayRegistration","labelRenderers","isLabelRegistration","arrayRenderers","isArrayRegistration","actionRenderers","isActionRegistration","layoutRenderers","isLayoutRegistration","visibilityRenderer","isVisibilityRegistration","formRenderers","renderArray","render","_layoutRenderers$find","match","_adornmentRegistratio","isOneOf","adornmentType","_arrayRenderers$","array","_labelRenderers$find","labelType","_dataRegistrations$fi","renderType","_x$collection","_field$collection","_x$options","schemaType","l","_groupRegistrations$f","_actionRenderers$find","actionType","_displayRegistrations","createDefaultActionRenderer","createDefaultLabelRenderer","requiredElement","_options","groupLabelClass","htmlFor","createDefaultArrayRenderer","removableClass","childClass","removableChildClass","removeActionClass","addActionClass","showRemove","from","_","createDefaultGroupRenderer","_ref5$gridStyles","gridStyles","defaultGridStyles","_ref5$defaultGridColu","defaultGridColumns","gridClassName","standardClassName","flexClassName","defaultFlexGap","_ref6","_ref6$columns","columns","gridTemplateColumns","flexStyles","gap","flexDirection","direction","_ref7","gcn","cp","createDefaultDisplayRenderer","DefaultDisplay","_ref8","_effect","_useComponentTracking","_display$value","Icon","iconClass","textClassName","htmlClassName","dangerouslySetInnerHTML","__html","DefaultBoolOptions","name","createDefaultDataRenderer","_options$selectOption","selectRenderer","createSelectRenderer","selectOptions","_optionRenderer$boole","optionRenderer","booleanOptions","inputClass","displayOnlyClass","createDataRenderer","renderers","fieldType","p","Any","DefaultDisplayOnly","isBool","Dropdown","Checkbox","Fcheckbox","ControlInput","readOnly","convert","createInputConversion","_ref9","_effect2","_ref10","_ref11","_effect3","_excluded2","_formControlProps","formControlProps","errorText","onChange","inputProps","_excluded3","target","createDefaultAdornmentRenderer","_ref12","rl","isIconAdornment","_adornment$placement","placement","createDefaultRenderers","createDefaultLayoutRenderer","createDefaultVisibilityRenderer","createLayoutRenderer","DefaultLayout","divRef","meta","scrollElement","createArrayRenderer","createLabelRenderer","createVisibilityRenderer","createAdornmentRenderer","asArray","SelectDataRenderer","state","requiredText","createSelectConversion","_ref13","_effect4","_ref13$emptyText","_ref13$requiredText","_excluded4","_useState","useState","showEmpty","optionStringMap","ft","Double","_a$toString","_a$toString2","parseInt","parseFloat","DefaultVisibility","_ref14","_effect5","_ref15","_effect6","errorClass","_ref15$layout","controlEnd","controlStart","ec","touched","defaultTailwindTheme"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/types.ts","../src/schemaBuilder.ts","../src/util.ts","../src/controlBuilder.ts","../src/internal.ts","../src/hooks.tsx","../src/validators.ts","../src/schemaInterface.ts","../src/controlRender.tsx","../src/renderers.tsx","../src/tailwind.tsx"],"sourcesContent":["export interface SchemaField {\n type: string;\n field: string;\n displayName?: string | null;\n tags?: string[] | null;\n system?: boolean | null;\n collection?: boolean | null;\n onlyForTypes?: string[] | null;\n required?: boolean | null;\n notNullable?: boolean | null;\n defaultValue?: any;\n isTypeField?: boolean | null;\n searchable?: boolean | null;\n options?: FieldOption[] | null;\n validators?: SchemaValidator[] | null;\n}\n\nexport enum FieldType {\n String = \"String\",\n Bool = \"Bool\",\n Int = \"Int\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n Double = \"Double\",\n EntityRef = \"EntityRef\",\n Compound = \"Compound\",\n AutoId = \"AutoId\",\n Image = \"Image\",\n Any = \"Any\",\n}\n\nexport interface EntityRefField extends SchemaField {\n type: FieldType.EntityRef;\n entityRefType: string;\n parentField: string;\n}\n\nexport interface FieldOption {\n name: string;\n value: any;\n}\n\nexport interface CompoundField extends SchemaField {\n type: FieldType.Compound;\n children: SchemaField[];\n treeChildren?: boolean;\n}\n\nexport type AnyControlDefinition =\n | DataControlDefinition\n | GroupedControlsDefinition\n | ActionControlDefinition\n | DisplayControlDefinition;\n\nexport interface SchemaInterface {\n isEmptyValue(field: SchemaField, value: any): boolean;\n textValue(\n field: SchemaField,\n value: any,\n element?: boolean,\n ): string | undefined;\n}\nexport interface ControlDefinition {\n type: string;\n title?: string | null;\n styleClass?: string | null;\n layoutClass?: string | null;\n dynamic?: DynamicProperty[] | null;\n adornments?: ControlAdornment[] | null;\n children?: ControlDefinition[] | null;\n}\n\nexport enum ControlDefinitionType {\n Data = \"Data\",\n Group = \"Group\",\n Display = \"Display\",\n Action = \"Action\",\n}\n\nexport interface DynamicProperty {\n type: string;\n expr: EntityExpression;\n}\n\nexport enum DynamicPropertyType {\n Visible = \"Visible\",\n DefaultValue = \"DefaultValue\",\n Readonly = \"Readonly\",\n Disabled = \"Disabled\",\n Display = \"Display\",\n Style = \"Style\",\n LayoutStyle = \"LayoutStyle\",\n AllowedOptions = \"AllowedOptions\"\n}\n\nexport interface EntityExpression {\n type: string;\n}\n\nexport enum ExpressionType {\n Jsonata = \"Jsonata\",\n Data = \"Data\",\n DataMatch = \"FieldValue\",\n UserMatch = \"UserMatch\",\n}\n\nexport interface JsonataExpression extends EntityExpression {\n type: ExpressionType.Jsonata;\n expression: string;\n}\n\nexport interface DataExpression extends EntityExpression {\n type: ExpressionType.Data;\n field: string;\n}\n\nexport interface DataMatchExpression extends EntityExpression {\n type: ExpressionType.DataMatch;\n field: string;\n value: any;\n}\n\nexport interface UserMatchExpression extends EntityExpression {\n type: ExpressionType.UserMatch;\n userMatch: string;\n}\n\nexport interface ControlAdornment {\n type: string;\n}\n\nexport enum AdornmentPlacement {\n ControlStart = \"ControlStart\",\n ControlEnd = \"ControlEnd\",\n LabelStart = \"LabelStart\",\n LabelEnd = \"LabelEnd\",\n}\n\nexport enum ControlAdornmentType {\n Tooltip = \"Tooltip\",\n Accordion = \"Accordion\",\n HelpText = \"HelpText\",\n Icon = \"Icon\",\n}\n\nexport interface IconAdornment extends ControlAdornment {\n type: ControlAdornmentType.Icon;\n iconClass: string;\n placement?: AdornmentPlacement | null;\n}\n\nexport interface TooltipAdornment extends ControlAdornment {\n type: ControlAdornmentType.Tooltip;\n tooltip: string;\n}\n\nexport interface AccordionAdornment extends ControlAdornment {\n type: ControlAdornmentType.Accordion;\n title: string;\n defaultExpanded: boolean;\n}\n\nexport interface HelpTextAdornment extends ControlAdornment {\n type: ControlAdornmentType.HelpText;\n helpText: string;\n placement?: AdornmentPlacement | null;\n}\n\nexport interface DataControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Data;\n field: string;\n required?: boolean | null;\n renderOptions?: RenderOptions | null;\n defaultValue?: any;\n readonly?: boolean | null;\n validators?: SchemaValidator[] | null;\n hideTitle?: boolean | null;\n dontClearHidden?: boolean | null;\n}\n\nexport interface RenderOptions {\n type: string;\n}\n\nexport enum DataRenderType {\n Standard = \"Standard\",\n Radio = \"Radio\",\n HtmlEditor = \"HtmlEditor\",\n IconList = \"IconList\",\n CheckList = \"CheckList\",\n UserSelection = \"UserSelection\",\n Synchronised = \"Synchronised\",\n IconSelector = \"IconSelector\",\n DateTime = \"DateTime\",\n Checkbox = \"Checkbox\",\n Dropdown = \"Dropdown\",\n DisplayOnly = \"DisplayOnly\",\n}\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 DisplayOnlyRenderOptions extends RenderOptions {\n type: DataRenderType.DisplayOnly;\n emptyText?: string | null;\n sampleText?: string | null;\n}\nexport interface IconMapping {\n value: string;\n materialIcon?: string | null;\n}\n\nexport interface CheckListRenderOptions extends RenderOptions {\n type: DataRenderType.CheckList;\n}\n\nexport interface SynchronisedRenderOptions extends RenderOptions {\n type: DataRenderType.Synchronised;\n fieldToSync: string;\n syncType: SyncTextType;\n}\n\nexport enum SyncTextType {\n Camel = \"Camel\",\n Snake = \"Snake\",\n Pascal = \"Pascal\",\n}\n\nexport interface UserSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.UserSelection;\n noGroups: boolean;\n noUsers: boolean;\n}\n\nexport interface IconSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.IconSelector;\n}\n\nexport interface GroupedControlsDefinition extends ControlDefinition {\n type: ControlDefinitionType.Group;\n compoundField?: string | null;\n groupOptions?: GroupRenderOptions;\n}\n\nexport interface GroupRenderOptions {\n type: string;\n hideTitle?: boolean | null;\n}\n\nexport enum GroupRenderType {\n Standard = \"Standard\",\n Grid = \"Grid\",\n Flex = \"Flex\",\n GroupElement = \"GroupElement\",\n}\n\nexport interface StandardGroupRenderer extends GroupRenderOptions {\n type: GroupRenderType.Standard;\n}\n\nexport interface FlexRenderer extends GroupRenderOptions {\n type: GroupRenderType.Flex;\n direction?: string | null;\n gap?: string | null;\n}\n\nexport interface GroupElementRenderer extends GroupRenderOptions {\n type: GroupRenderType.GroupElement;\n value: any;\n}\n\nexport interface GridRenderer extends GroupRenderOptions {\n type: GroupRenderType.Grid;\n columns?: number | null;\n}\n\nexport interface DisplayControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Display;\n displayData: DisplayData;\n}\n\nexport interface DisplayData {\n type: string;\n}\n\nexport enum DisplayDataType {\n Text = \"Text\",\n Html = \"Html\",\n Icon = \"Icon\",\n}\nexport interface TextDisplay extends DisplayData {\n type: DisplayDataType.Text;\n text: string;\n}\n\nexport interface IconDisplay extends DisplayData {\n type: DisplayDataType.Icon;\n iconClass: string;\n}\n\nexport interface HtmlDisplay extends DisplayData {\n type: DisplayDataType.Html;\n html: string;\n}\n\nexport interface ActionControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Action;\n actionId: string;\n}\n\nexport enum ValidatorType {\n Jsonata = \"Jsonata\",\n Date = \"Date\",\n}\nexport interface SchemaValidator {\n type: string;\n}\n\nexport interface JsonataValidator extends SchemaValidator {\n type: ValidatorType.Jsonata;\n expression: string;\n}\n\nexport enum DateComparison {\n NotBefore = \"NotBefore\",\n NotAfter = \"NotAfter\",\n}\n\nexport interface DateValidator extends SchemaValidator {\n type: ValidatorType.Date;\n comparison: DateComparison;\n fixedDate?: string | null;\n daysFromCurrent?: number | null;\n}\n\nexport function isDataControlDefinition(\n x: ControlDefinition,\n): x is DataControlDefinition {\n return x.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControlsDefinition(\n x: ControlDefinition,\n): x is GroupedControlsDefinition {\n return x.type === ControlDefinitionType.Group;\n}\n\nexport function isDisplayControlsDefinition(\n x: ControlDefinition,\n): x is DisplayControlDefinition {\n return x.type === ControlDefinitionType.Display;\n}\n\nexport function isActionControlsDefinition(\n x: ControlDefinition,\n): x is ActionControlDefinition {\n return x.type === ControlDefinitionType.Action;\n}\n\nexport interface ControlVisitor<A> {\n data(d: DataControlDefinition): A;\n group(d: GroupedControlsDefinition): A;\n display(d: DisplayControlDefinition): A;\n action(d: ActionControlDefinition): A;\n}\n\nexport function visitControlDefinition<A>(\n x: ControlDefinition,\n visitor: ControlVisitor<A>,\n defaultValue: (c: ControlDefinition) => A,\n): A {\n switch (x.type) {\n case ControlDefinitionType.Action:\n return visitor.action(x as ActionControlDefinition);\n case ControlDefinitionType.Data:\n return visitor.data(x as DataControlDefinition);\n case ControlDefinitionType.Display:\n return visitor.display(x as DisplayControlDefinition);\n case ControlDefinitionType.Group:\n return visitor.group(x as GroupedControlsDefinition);\n default:\n return defaultValue(x);\n }\n}\nexport function isGridRenderer(\n options: GroupRenderOptions,\n): options is GridRenderer {\n return options.type === GroupRenderType.Grid;\n}\n\nexport function isFlexRenderer(\n options: GroupRenderOptions,\n): options is FlexRenderer {\n return options.type === GroupRenderType.Flex;\n}\n\nexport function isDisplayOnlyRenderer(\n options: RenderOptions,\n): options is DisplayOnlyRenderOptions {\n return options.type === DataRenderType.DisplayOnly;\n}\n","import { CompoundField, FieldOption, FieldType, SchemaField } from \"./types\";\n\ntype AllowedSchema<T> = T extends string\n ? SchemaField & {\n type: FieldType.String | FieldType.Date | FieldType.DateTime;\n }\n : T extends number\n ? SchemaField & {\n type: FieldType.Int | FieldType.Double;\n }\n : T extends boolean\n ? SchemaField & {\n type: FieldType.Bool;\n }\n : T extends Array<infer E>\n ? AllowedSchema<E> & {\n collection: true;\n }\n : T extends { [key: string]: any }\n ? CompoundField & {\n type: FieldType.Compound;\n }\n : SchemaField & { type: FieldType.Any };\n\ntype AllowedField<T, K> = (\n name: string,\n) => (SchemaField & { type: K }) | AllowedSchema<T>;\n\nexport function buildSchema<T, Custom = \"\">(def: {\n [K in keyof T]-?: AllowedField<T[K], Custom>;\n}): SchemaField[] {\n return Object.entries(def).map((x) =>\n (x[1] as (n: string) => SchemaField)(x[0]),\n );\n}\n\nexport function stringField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>,\n) {\n return makeScalarField({\n type: FieldType.String as const,\n displayName,\n ...options,\n });\n}\n\nexport function stringOptionsField(\n displayName: string,\n ...options: FieldOption[]\n) {\n return makeScalarField({\n type: FieldType.String as const,\n displayName,\n options,\n });\n}\n\nexport function withScalarOptions<S extends SchemaField>(\n options: Partial<SchemaField>,\n v: (name: string) => S,\n): (name: string) => S {\n return (n) => ({ ...v(n), ...options });\n}\n\nexport function makeScalarField<S extends Partial<SchemaField>>(\n options: S,\n): (name: string) => SchemaField & S {\n return (n) => ({ ...defaultScalarField(n, n), ...options });\n}\n\nexport function makeCompoundField<S extends Partial<CompoundField>>(\n options: S,\n): (name: string) => CompoundField & {\n type: FieldType.Compound;\n} & S {\n return (n) => ({ ...defaultCompoundField(n, n, false), ...options });\n}\n\nexport function intField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>,\n) {\n return makeScalarField({\n type: FieldType.Int as const,\n displayName,\n ...options,\n });\n}\n\nexport function boolField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>,\n) {\n return makeScalarField({\n type: FieldType.Bool as const,\n displayName,\n ...options,\n });\n}\n\nexport function compoundField<\n Other extends Partial<Omit<CompoundField, \"type\" | \"schemaType\">>,\n>(\n displayName: string,\n fields: SchemaField[],\n other: Other,\n): (name: string) => CompoundField & {\n collection: Other[\"collection\"];\n} {\n return (field) =>\n ({\n ...defaultCompoundField(field, displayName, false),\n ...other,\n children: fields,\n }) as any;\n}\n\nexport function defaultScalarField(\n field: string,\n displayName: string,\n): Omit<SchemaField, \"type\"> & {\n type: FieldType.String;\n} {\n return {\n field,\n displayName,\n type: FieldType.String,\n };\n}\n\nexport function defaultCompoundField(\n field: string,\n displayName: string,\n collection: boolean,\n): CompoundField & {\n type: FieldType.Compound;\n} {\n return {\n field,\n displayName,\n type: FieldType.Compound,\n collection,\n children: [],\n };\n}\n","import {\n CompoundField,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n DisplayOnlyRenderOptions,\n FieldOption,\n FieldType,\n GridRenderer,\n GroupedControlsDefinition,\n GroupRenderType,\n isDataControlDefinition,\n isDisplayOnlyRenderer,\n SchemaField,\n SchemaInterface,\n visitControlDefinition,\n} from \"./types\";\nimport { MutableRefObject, useRef } from \"react\";\nimport { Control } from \"@react-typed-forms/core\";\nimport clsx from \"clsx\";\n\nexport interface ControlDataContext {\n groupControl: Control<any>;\n fields: SchemaField[];\n schemaInterface: SchemaInterface;\n}\nexport function applyDefaultValues(\n v: { [k: string]: any } | undefined,\n fields: SchemaField[],\n): any {\n if (!v) return defaultValueForFields(fields);\n const applyValue = fields.filter(\n (x) => isCompoundField(x) || !(x.field in v),\n );\n if (!applyValue.length) return v;\n const out = { ...v };\n applyValue.forEach((x) => {\n out[x.field] =\n x.field in v\n ? applyDefaultForField(v[x.field], x, fields)\n : defaultValueForField(x);\n });\n return out;\n}\n\nexport function applyDefaultForField(\n v: any,\n field: SchemaField,\n parent: SchemaField[],\n notElement?: boolean,\n): any {\n if (field.collection && !notElement) {\n return ((v as any[]) ?? []).map((x) =>\n applyDefaultForField(x, field, parent, true),\n );\n }\n if (isCompoundField(field)) {\n if (!v && !field.required) return v;\n return applyDefaultValues(v, field.treeChildren ? parent : field.children);\n }\n return defaultValueForField(field);\n}\n\nexport function defaultValueForFields(fields: SchemaField[]): any {\n return Object.fromEntries(\n fields.map((x) => [x.field, defaultValueForField(x)]),\n );\n}\n\nexport function defaultValueForField(\n sf: SchemaField,\n required?: boolean | null,\n): any {\n if (sf.defaultValue !== undefined) return sf.defaultValue;\n const isRequired = !!(required || sf.required);\n if (isCompoundField(sf)) {\n if (isRequired) {\n const childValue = defaultValueForFields(sf.children);\n return sf.collection ? [childValue] : childValue;\n }\n return sf.notNullable ? (sf.collection ? [] : {}) : undefined;\n }\n if (sf.collection) {\n return [];\n }\n return undefined;\n}\n\nexport function elementValueForField(sf: SchemaField): any {\n if (isCompoundField(sf)) {\n return defaultValueForFields(sf.children);\n }\n return sf.defaultValue;\n}\n\nexport function findScalarField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return findField(fields, field);\n}\n\nexport function findCompoundField(\n fields: SchemaField[],\n field: string,\n): CompoundField | undefined {\n return findField(fields, field) as CompoundField | undefined;\n}\n\nexport function findField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return fields.find((x) => x.field === field);\n}\n\nexport function isScalarField(sf: SchemaField): sf is SchemaField {\n return !isCompoundField(sf);\n}\n\nexport function isCompoundField(sf: SchemaField): sf is CompoundField {\n return sf.type === FieldType.Compound;\n}\n\nexport function isDataControl(\n c: ControlDefinition,\n): c is DataControlDefinition {\n return c.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControl(\n c: ControlDefinition,\n): c is GroupedControlsDefinition {\n return c.type === ControlDefinitionType.Group;\n}\n\nexport function fieldHasTag(field: SchemaField, tag: string) {\n return Boolean(field.tags?.includes(tag));\n}\n\nexport function fieldDisplayName(field: SchemaField) {\n return field.displayName ?? field.field;\n}\n\nexport function hasOptions(o: { options: FieldOption[] | undefined | null }) {\n return (o.options?.length ?? 0) > 0;\n}\n\nexport function defaultControlForField(sf: SchemaField): DataControlDefinition {\n if (isCompoundField(sf)) {\n return {\n type: ControlDefinitionType.Data,\n title: sf.displayName,\n field: sf.field,\n required: sf.required,\n children: sf.children.map(defaultControlForField),\n };\n } else if (isScalarField(sf)) {\n const htmlEditor = sf.tags?.includes(\"_HtmlEditor\");\n return {\n type: ControlDefinitionType.Data,\n title: sf.displayName,\n field: sf.field,\n required: sf.required,\n renderOptions: {\n type: htmlEditor ? DataRenderType.HtmlEditor : DataRenderType.Standard,\n },\n };\n }\n throw \"Unknown schema field\";\n}\nfunction findReferencedControl(\n field: string,\n control: ControlDefinition,\n): ControlDefinition | undefined {\n if (isDataControl(control) && field === control.field) return control;\n if (isGroupControl(control)) {\n if (control.compoundField)\n return field === control.compoundField ? control : undefined;\n return findReferencedControlInArray(field, control.children ?? []);\n }\n return undefined;\n}\n\nfunction findReferencedControlInArray(\n field: string,\n controls: ControlDefinition[],\n): ControlDefinition | undefined {\n for (const c of controls) {\n const ref = findReferencedControl(field, c);\n if (ref) return ref;\n }\n return undefined;\n}\n\nexport function addMissingControls(\n fields: SchemaField[],\n controls: ControlDefinition[],\n): ControlDefinition[] {\n const changes: {\n field: SchemaField;\n existing: ControlDefinition | undefined;\n }[] = fields.flatMap((x) => {\n if (fieldHasTag(x, \"_NoControl\")) return [];\n const existing = findReferencedControlInArray(x.field, controls);\n if (!existing || isCompoundField(x)) return { field: x, existing };\n return [];\n });\n const changedCompounds = controls.map((x) => {\n const ex = changes.find((c) => c.existing === x);\n if (!ex) return x;\n const cf = x as GroupedControlsDefinition;\n return {\n ...cf,\n children: addMissingControls(\n (ex.field as CompoundField).children,\n cf.children ?? [],\n ),\n };\n });\n return changedCompounds.concat(\n changes\n .filter((x) => !x.existing)\n .map((x) => defaultControlForField(x.field)),\n );\n}\n\nexport function useUpdatedRef<A>(a: A): MutableRefObject<A> {\n const r = useRef(a);\n r.current = a;\n return r;\n}\n\nexport function isControlReadonly(c: ControlDefinition): boolean {\n return isDataControl(c) && !!c.readonly;\n}\n\nexport function getDisplayOnlyOptions(\n d: ControlDefinition,\n): DisplayOnlyRenderOptions | undefined {\n return isDataControlDefinition(d) &&\n d.renderOptions &&\n isDisplayOnlyRenderer(d.renderOptions)\n ? d.renderOptions\n : undefined;\n}\n\nexport function getTypeField(\n context: ControlDataContext,\n): Control<string> | undefined {\n const typeSchemaField = context.fields.find((x) => x.isTypeField);\n return typeSchemaField\n ? context.groupControl.fields?.[typeSchemaField.field]\n : undefined;\n}\n\nexport function visitControlDataArray<A>(\n controls: ControlDefinition[] | undefined | null,\n context: ControlDataContext,\n cb: (\n definition: DataControlDefinition,\n field: SchemaField,\n control: Control<any>,\n element: boolean,\n ) => A | undefined,\n): A | undefined {\n if (!controls) return undefined;\n for (const c of controls) {\n const r = visitControlData(c, context, cb);\n if (r !== undefined) return r;\n }\n return undefined;\n}\n\nexport function visitControlData<A>(\n definition: ControlDefinition,\n ctx: ControlDataContext,\n cb: (\n definition: DataControlDefinition,\n field: SchemaField,\n control: Control<any>,\n element: boolean,\n ) => A | undefined,\n): A | undefined {\n return visitControlDefinition<A | undefined>(\n definition,\n {\n data(def: DataControlDefinition) {\n return processData(def, def.field, def.children);\n },\n group(d: GroupedControlsDefinition) {\n return processData(undefined, d.compoundField, d.children);\n },\n action: () => undefined,\n display: () => undefined,\n },\n () => undefined,\n );\n\n function processData(\n def: DataControlDefinition | undefined,\n fieldName: string | undefined | null,\n children: ControlDefinition[] | null | undefined,\n ) {\n const fieldData = fieldName ? findField(ctx.fields, fieldName) : undefined;\n if (!fieldData)\n return !fieldName ? visitControlDataArray(children, ctx, cb) : undefined;\n\n const control = ctx.groupControl.fields[fieldData.field];\n const result = def ? cb(def, fieldData, control, false) : undefined;\n if (result !== undefined) return result;\n if (fieldData.collection) {\n for (const c of control.elements ?? []) {\n const elemResult = def ? cb(def, fieldData, c, true) : undefined;\n if (elemResult !== undefined) return elemResult;\n if (isCompoundField(fieldData)) {\n const cfResult = visitControlDataArray(\n children,\n {\n fields: fieldData.children,\n groupControl: c,\n schemaInterface: ctx.schemaInterface,\n },\n cb,\n );\n if (cfResult !== undefined) return cfResult;\n }\n }\n }\n }\n}\n\nexport function cleanDataForSchema(\n v: { [k: string]: any } | undefined,\n fields: SchemaField[],\n): any {\n if (!v) return v;\n const typeField = fields.find((x) => x.isTypeField);\n if (!typeField) return v;\n const typeValue = v[typeField.field];\n const cleanableFields = fields.filter(\n (x) => isCompoundField(x) || (x.onlyForTypes?.length ?? 0) > 0,\n );\n if (!cleanableFields.length) return v;\n const out = { ...v };\n cleanableFields.forEach((x) => {\n const childValue = v[x.field];\n if (\n x.onlyForTypes?.includes(typeValue) === false ||\n (!x.notNullable && canBeNull())\n ) {\n delete out[x.field];\n return;\n }\n if (isCompoundField(x)) {\n const childFields = x.treeChildren ? fields : x.children;\n if (x.collection) {\n if (Array.isArray(childValue)) {\n out[x.field] = childValue.map((cv) =>\n cleanDataForSchema(cv, childFields),\n );\n }\n } else {\n out[x.field] = cleanDataForSchema(childValue, childFields);\n }\n }\n function canBeNull() {\n return (\n x.collection && Array.isArray(childValue) && !childValue.length\n //|| (x.type === FieldType.Bool && childValue === false)\n );\n }\n });\n return out;\n}\n\nexport function getAllReferencedClasses(c: ControlDefinition): string[] {\n const childClasses = c.children?.flatMap(getAllReferencedClasses);\n const tc = clsx(c.styleClass, c.layoutClass);\n if (childClasses && !tc) return childClasses;\n if (!tc) return [];\n if (childClasses) return [tc, ...childClasses];\n return [tc];\n}\n","import {\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataMatchExpression,\n DisplayControlDefinition,\n DisplayDataType,\n DynamicProperty,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n GroupedControlsDefinition,\n GroupRenderType,\n HtmlDisplay,\n JsonataExpression,\n SchemaField,\n TextDisplay,\n} from \"./types\";\nimport { ActionRendererProps } from \"./controlRender\";\nimport { useMemo } from \"react\";\nimport { addMissingControls } from \"./util\";\n\nexport function dataControl(\n field: string,\n title?: string | null,\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return { type: ControlDefinitionType.Data, field, title, ...options };\n}\n\nexport function textDisplayControl(\n text: string,\n options?: Partial<DisplayControlDefinition>,\n): DisplayControlDefinition {\n return {\n type: ControlDefinitionType.Display,\n displayData: { type: DisplayDataType.Text, text } as TextDisplay,\n ...options,\n };\n}\n\nexport function htmlDisplayControl(\n html: string,\n options?: Partial<DisplayControlDefinition>,\n): DisplayControlDefinition {\n return {\n type: ControlDefinitionType.Display,\n displayData: { type: DisplayDataType.Html, html } as HtmlDisplay,\n ...options,\n };\n}\n\nexport function dynamicDefaultValue(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.DefaultValue, expr };\n}\n\nexport function dynamicReadonly(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Readonly, expr };\n}\n\nexport function dynamicVisibility(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Visible, expr };\n}\n\nexport function dynamicDisabled(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Disabled, expr };\n}\n\nexport function fieldEqExpr(field: string, value: any): DataMatchExpression {\n return { type: ExpressionType.DataMatch, field, value };\n}\nexport function jsonataExpr(expression: string): JsonataExpression {\n return { type: ExpressionType.Jsonata, expression };\n}\n\nexport function groupedControl(\n children: ControlDefinition[],\n title?: string,\n options?: Partial<GroupedControlsDefinition>,\n): GroupedControlsDefinition {\n return {\n type: ControlDefinitionType.Group,\n children,\n title,\n groupOptions: { type: \"Standard\", hideTitle: !title },\n ...options,\n };\n}\nexport function compoundControl(\n field: string,\n title: string | undefined,\n children: ControlDefinition[],\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return {\n type: ControlDefinitionType.Data,\n field,\n children,\n title,\n renderOptions: { type: \"Standard\" },\n ...options,\n };\n}\n\nexport function createAction(\n actionId: string,\n onClick: () => void,\n actionText?: string,\n): ActionRendererProps {\n return { actionId, onClick, actionText: actionText ?? actionId };\n}\n\nexport const emptyGroupDefinition: GroupedControlsDefinition = {\n type: ControlDefinitionType.Group,\n children: [],\n groupOptions: { type: GroupRenderType.Standard, hideTitle: true },\n};\n\nexport function useControlDefinitionForSchema(\n sf: SchemaField[],\n definition: GroupedControlsDefinition = emptyGroupDefinition,\n): GroupedControlsDefinition {\n return useMemo<GroupedControlsDefinition>(\n () => ({\n ...definition,\n children: addMissingControls(sf, definition.children ?? []),\n }),\n [sf, definition],\n );\n}\n","import { Control, useControl, useControlEffect } from \"@react-typed-forms/core\";\n\nexport function useCalculatedControl<V>(calculate: () => V): Control<V> {\n const c = useControl(calculate);\n useControlEffect(calculate, (v) => (c.value = v));\n return c;\n}\n\nexport function cc(n: string | null | undefined): string | undefined {\n return n ? n : undefined;\n}\n","import {\n ControlDefinition,\n DataExpression,\n DataMatchExpression,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n isDataControlDefinition,\n JsonataExpression,\n SchemaField,\n SchemaInterface,\n} from \"./types\";\nimport { useCallback, useMemo } from \"react\";\nimport {\n Control,\n useComputed,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\n\nimport {\n ControlDataContext,\n defaultValueForField,\n findField,\n getDisplayOnlyOptions,\n getTypeField,\n isControlReadonly,\n useUpdatedRef,\n} from \"./util\";\nimport jsonata from \"jsonata\";\nimport { useCalculatedControl } from \"./internal\";\n\nexport type UseEvalExpressionHook = (\n expr: EntityExpression | undefined,\n) => EvalExpressionHook | undefined;\n\nexport function useEvalVisibilityHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n schemaField?: SchemaField,\n): EvalExpressionHook<boolean> {\n const dynamicVisibility = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Visible,\n useEvalExpressionHook,\n );\n const r = useUpdatedRef({ schemaField, definition });\n return useCallback(\n (ctx) => {\n const { schemaField, definition } = r.current;\n return (\n dynamicVisibility?.(ctx) ??\n useComputed(\n () =>\n matchesType(ctx, schemaField?.onlyForTypes) &&\n (!schemaField ||\n !hideDisplayOnly(\n ctx,\n schemaField,\n definition,\n ctx.schemaInterface,\n )),\n )\n );\n },\n [dynamicVisibility, r],\n );\n}\n\nexport function useEvalReadonlyHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<boolean> {\n const dynamicReadonly = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Readonly,\n useEvalExpressionHook,\n );\n const r = useUpdatedRef(definition);\n return useCallback(\n (ctx) => {\n if (dynamicReadonly) return dynamicReadonly(ctx);\n return useCalculatedControl(() => isControlReadonly(r.current));\n },\n [dynamicReadonly, r],\n );\n}\n\nexport function useEvalStyleHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n property: DynamicPropertyType,\n definition: ControlDefinition,\n): EvalExpressionHook<React.CSSProperties> {\n const dynamicStyle = useEvalDynamicHook(\n definition,\n property,\n useEvalExpressionHook,\n );\n return useCallback(\n (ctx) => {\n if (dynamicStyle) return dynamicStyle(ctx);\n return useControl(undefined);\n },\n [dynamicStyle],\n );\n}\n\nexport function useEvalAllowedOptionsHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<any[]> {\n const dynamicAllowed = useEvalDynamicHook(\n definition,\n DynamicPropertyType.AllowedOptions,\n useEvalExpressionHook,\n );\n return useCallback(\n (ctx) => {\n if (dynamicAllowed) return dynamicAllowed(ctx);\n return useControl([]);\n },\n [dynamicAllowed],\n );\n}\n\nexport function useEvalDisabledHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<boolean> {\n const dynamicDisabled = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Disabled,\n useEvalExpressionHook,\n );\n return useCallback(\n (ctx) => {\n if (dynamicDisabled) return dynamicDisabled(ctx);\n return useControl(false);\n },\n [dynamicDisabled],\n );\n}\n\nexport function useEvalDisplayHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): (\n groupContext: ControlDataContext,\n) => Control<string | undefined> | undefined {\n const dynamicDisplay = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Display,\n useEvalExpressionHook,\n );\n return useCallback((ctx) => dynamicDisplay?.(ctx), [dynamicDisplay]);\n}\nexport function useEvalDefaultValueHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n schemaField?: SchemaField,\n): EvalExpressionHook {\n const dynamicValue = useEvalDynamicHook(\n definition,\n DynamicPropertyType.DefaultValue,\n useEvalExpressionHook,\n );\n const r = useUpdatedRef({ definition, schemaField });\n return useCallback(\n (ctx) => {\n const { definition, schemaField } = r.current;\n return dynamicValue?.(ctx) ?? useComputed(calcDefault);\n function calcDefault() {\n const [required, dcv] = isDataControlDefinition(definition)\n ? [definition.required, definition.defaultValue]\n : [false, undefined];\n return (\n dcv ??\n (schemaField\n ? defaultValueForField(schemaField, required)\n : undefined)\n );\n }\n },\n [dynamicValue, r],\n );\n}\n\nexport type EvalExpressionHook<A = any> = (\n groupContext: ControlDataContext,\n) => Control<A | undefined>;\n\nfunction useDataExpression(\n fvExpr: DataExpression,\n fields: SchemaField[],\n data: Control<any>,\n) {\n const refField = findField(fields, fvExpr.field);\n const otherField = refField ? data.fields[refField.field] : undefined;\n return useCalculatedControl(() => otherField?.value);\n}\n\nfunction useDataMatchExpression(\n fvExpr: DataMatchExpression,\n fields: SchemaField[],\n data: Control<any>,\n) {\n const refField = findField(fields, fvExpr.field);\n const otherField = refField ? data.fields[refField.field] : undefined;\n return useComputed(() => {\n const fv = otherField?.value;\n return Array.isArray(fv) ? fv.includes(fvExpr.value) : fv === fvExpr.value;\n });\n}\n\nexport function defaultEvalHooks(\n expr: EntityExpression,\n context: ControlDataContext,\n) {\n switch (expr.type) {\n case ExpressionType.Jsonata:\n return useJsonataExpression(\n (expr as JsonataExpression).expression,\n context.groupControl,\n );\n case ExpressionType.Data:\n return useDataExpression(\n expr as DataExpression,\n context.fields,\n context.groupControl,\n );\n case ExpressionType.DataMatch:\n return useDataMatchExpression(\n expr as DataMatchExpression,\n context.fields,\n context.groupControl,\n );\n default:\n return useControl(undefined);\n }\n}\n\nexport const defaultUseEvalExpressionHook =\n makeEvalExpressionHook(defaultEvalHooks);\n\nexport function makeEvalExpressionHook(\n f: (expr: EntityExpression, context: ControlDataContext) => Control<any>,\n): (expr: EntityExpression | undefined) => EvalExpressionHook | undefined {\n return (expr) => {\n const r = useUpdatedRef(expr);\n const cb = useCallback(\n (ctx: ControlDataContext) => {\n const expr = r.current!;\n return f(expr, ctx);\n },\n [expr?.type, r],\n );\n return expr ? cb : undefined;\n };\n}\n\nexport function useEvalDynamicHook(\n definition: ControlDefinition,\n type: DynamicPropertyType,\n useEvalExpressionHook: (\n expr: EntityExpression | undefined,\n ) => EvalExpressionHook | undefined,\n): EvalExpressionHook | undefined {\n const expression = definition.dynamic?.find((x) => x.type === type);\n return useEvalExpressionHook(expression?.expr);\n}\n\nexport function matchesType(\n context: ControlDataContext,\n types?: string[] | null,\n) {\n if (types == null || types.length === 0) return true;\n const typeField = getTypeField(context);\n return typeField && types.includes(typeField.value);\n}\n\nexport function hideDisplayOnly(\n context: ControlDataContext,\n field: SchemaField,\n definition: ControlDefinition,\n schemaInterface: SchemaInterface,\n) {\n const displayOptions = getDisplayOnlyOptions(definition);\n return (\n displayOptions &&\n !displayOptions.emptyText &&\n schemaInterface.isEmptyValue(\n field,\n context.groupControl.fields[field.field].value,\n )\n );\n}\n\nexport function useJsonataExpression(\n jExpr: string,\n data: Control<any>,\n): Control<any> {\n const compiledExpr = useMemo(() => {\n try {\n return jsonata(jExpr);\n } catch (e) {\n console.error(e);\n return jsonata(\"\");\n }\n }, [jExpr]);\n const control = useControl();\n useControlEffect(\n () => data.value,\n async (v) => {\n control.value = await compiledExpr.evaluate(v);\n },\n true,\n );\n return control;\n}\n","import {\n ControlDefinition,\n DataControlDefinition,\n DateComparison,\n DateValidator,\n isDataControlDefinition,\n JsonataValidator,\n ValidatorType,\n} from \"./types\";\nimport {\n Control,\n useControlEffect,\n useValidator,\n useValueChangeEffect,\n} from \"@react-typed-forms/core\";\nimport { useCallback } from \"react\";\nimport { ControlDataContext, useUpdatedRef } from \"./util\";\nimport { useJsonataExpression } from \"./hooks\";\n\nexport function useValidationHook(\n definition: ControlDefinition,\n): (\n control: Control<any>,\n hidden: boolean,\n groupContext: ControlDataContext,\n) => void {\n const validatorTypes = isDataControlDefinition(definition)\n ? definition.validators?.map((x) => x.type) ?? []\n : null;\n const r = useUpdatedRef(definition as DataControlDefinition);\n return useCallback(\n (control, hidden, groupContext) => {\n if (!validatorTypes) return;\n const dd = r.current;\n\n useValueChangeEffect(control, () => control.setError(\"default\", \"\"));\n useValidator(\n control,\n (v) =>\n !hidden &&\n dd.required &&\n (v == null || v === \"\" || (Array.isArray(v) && v.length === 0))\n ? \"Please enter a value\"\n : null,\n \"required\",\n );\n (dd.validators ?? []).forEach((x, i) => {\n switch (x.type) {\n case ValidatorType.Jsonata:\n return useJsonataValidator(\n control,\n groupContext,\n x as JsonataValidator,\n hidden,\n i,\n );\n case ValidatorType.Date:\n return useDateValidator(control, x as DateValidator, i);\n }\n });\n },\n validatorTypes ? validatorTypes : [null],\n );\n}\n\nfunction useJsonataValidator(\n control: Control<any>,\n context: ControlDataContext,\n expr: JsonataValidator,\n hidden: boolean,\n i: number,\n) {\n const errorMsg = useJsonataExpression(expr.expression, context.groupControl);\n useControlEffect(\n () => [hidden, errorMsg.value],\n ([hidden, msg]) => control.setError(\"jsonata\" + i, !hidden ? msg : null),\n true,\n );\n}\n\nfunction useDateValidator(\n control: Control<string | null | undefined>,\n dv: DateValidator,\n i: number,\n) {\n let comparisonDate: number;\n if (dv.fixedDate) {\n comparisonDate = Date.parse(dv.fixedDate);\n } else {\n const nowDate = new Date();\n comparisonDate = Date.UTC(\n nowDate.getFullYear(),\n nowDate.getMonth(),\n nowDate.getDate(),\n );\n if (dv.daysFromCurrent) {\n comparisonDate += dv.daysFromCurrent * 86400000;\n }\n }\n useValidator(\n control,\n (v) => {\n if (v) {\n const selDate = Date.parse(v);\n const notAfter = dv.comparison === DateComparison.NotAfter;\n if (notAfter ? selDate > comparisonDate : selDate < comparisonDate) {\n return `Date must not be ${notAfter ? \"after\" : \"before\"} ${new Date(\n comparisonDate,\n ).toDateString()}`;\n }\n }\n return null;\n },\n \"date\" + i,\n );\n}\n","import { FieldType, SchemaField, SchemaInterface } from \"./types\";\n\nexport const defaultSchemaInterface: SchemaInterface = {\n isEmptyValue: defaultIsEmpty,\n textValue: defaultTextValue,\n};\n\nexport function defaultIsEmpty(f: SchemaField, value: any): boolean {\n if (f.collection)\n return Array.isArray(value) ? value.length === 0 : value == null;\n switch (f.type) {\n case FieldType.String:\n return !value;\n default:\n return value == null;\n }\n}\n\nexport function defaultTextValue(\n f: SchemaField,\n value: any,\n): string | undefined {\n switch (f.type) {\n case FieldType.DateTime:\n return new Date(value).toLocaleDateString();\n case FieldType.Date:\n return new Date(value).toLocaleDateString();\n default:\n return value != null ? value.toString() : undefined;\n }\n}\n","import React, {\n CSSProperties,\n FC,\n Fragment,\n Key,\n ReactNode,\n useCallback,\n useEffect,\n} from \"react\";\nimport {\n addElement,\n Control,\n newControl,\n removeElement,\n useComponentTracking,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\nimport {\n AdornmentPlacement,\n ControlAdornment,\n ControlDefinition,\n DataControlDefinition,\n DisplayData,\n DynamicPropertyType,\n FieldOption,\n GroupRenderOptions,\n isActionControlsDefinition,\n isDataControlDefinition,\n isDisplayControlsDefinition,\n isGroupControlsDefinition,\n RenderOptions,\n SchemaField,\n SchemaInterface,\n} from \"./types\";\nimport {\n ControlDataContext,\n elementValueForField,\n fieldDisplayName,\n findField,\n isCompoundField,\n useUpdatedRef,\n} from \"./util\";\nimport { dataControl } from \"./controlBuilder\";\nimport {\n defaultUseEvalExpressionHook,\n useEvalAllowedOptionsHook,\n useEvalDefaultValueHook,\n useEvalDisabledHook,\n useEvalDisplayHook,\n UseEvalExpressionHook,\n useEvalReadonlyHook,\n useEvalStyleHook,\n useEvalVisibilityHook,\n} from \"./hooks\";\nimport { useValidationHook } from \"./validators\";\nimport { cc, useCalculatedControl } from \"./internal\";\nimport { defaultSchemaInterface } from \"./schemaInterface\";\n\nexport interface FormRenderer {\n renderData: (\n props: DataRendererProps,\n ) => (layout: ControlLayoutProps) => ControlLayoutProps;\n renderGroup: (\n props: GroupRendererProps,\n ) => (layout: ControlLayoutProps) => ControlLayoutProps;\n renderDisplay: (props: DisplayRendererProps) => ReactNode;\n renderAction: (props: ActionRendererProps) => ReactNode;\n renderArray: (props: ArrayRendererProps) => ReactNode;\n renderAdornment: (props: AdornmentProps) => AdornmentRenderer;\n renderLabel: (\n props: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n ) => ReactNode;\n renderLayout: (props: ControlLayoutProps) => RenderedControl;\n renderVisibility: (props: VisibilityRendererProps) => ReactNode;\n}\n\nexport interface AdornmentProps {\n adornment: ControlAdornment;\n}\n\nexport const AppendAdornmentPriority = 0;\nexport const WrapAdornmentPriority = 1000;\n\nexport interface AdornmentRenderer {\n apply(children: RenderedLayout): void;\n adornment?: ControlAdornment;\n priority: number;\n}\n\nexport interface ArrayRendererProps {\n addAction?: ActionRendererProps;\n required: boolean;\n removeAction?: (elemIndex: number) => ActionRendererProps;\n elementCount: number;\n renderElement: (elemIndex: number) => ReactNode;\n elementKey: (elemIndex: number) => Key;\n arrayControl?: Control<any[] | undefined | null>;\n className?: string;\n style?: React.CSSProperties;\n}\nexport interface Visibility {\n visible: boolean;\n showing: boolean;\n}\n\nexport interface RenderedLayout {\n labelStart?: ReactNode;\n labelEnd?: ReactNode;\n controlStart?: ReactNode;\n controlEnd?: ReactNode;\n label?: ReactNode;\n children?: ReactNode;\n errorControl?: Control<any>;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface RenderedControl {\n children: ReactNode;\n className?: string;\n style?: React.CSSProperties;\n divRef?: (cb: HTMLElement | null) => void;\n}\n\nexport interface VisibilityRendererProps extends RenderedControl {\n visibility: Control<Visibility | undefined>;\n}\n\nexport interface ControlLayoutProps {\n label?: LabelRendererProps;\n errorControl?: Control<any>;\n adornments?: AdornmentRenderer[];\n children?: ReactNode;\n processLayout?: (props: ControlLayoutProps) => ControlLayoutProps;\n className?: string | null;\n style?: React.CSSProperties;\n}\n\nexport enum LabelType {\n Control,\n Group,\n}\nexport interface LabelRendererProps {\n type: LabelType;\n hide?: boolean | null;\n label: ReactNode;\n required?: boolean | null;\n forId?: string;\n}\nexport interface DisplayRendererProps {\n data: DisplayData;\n display?: Control<string | undefined>;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface GroupRendererProps {\n renderOptions: GroupRenderOptions;\n childCount: number;\n renderChild: (child: number) => ReactNode;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface DataRendererProps {\n renderOptions: RenderOptions;\n field: SchemaField;\n id: string;\n control: Control<any>;\n readonly: boolean;\n required: boolean;\n options: FieldOption[] | undefined | null;\n hidden: boolean;\n className?: string;\n style?: React.CSSProperties;\n dataContext: ControlDataContext;\n childCount: number;\n renderChild: ChildRenderer;\n toArrayProps?: () => ArrayRendererProps;\n}\n\nexport interface ActionRendererProps {\n actionId: string;\n actionText: string;\n onClick: () => void;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface ControlRenderProps {\n control: Control<any>;\n}\n\nexport interface FormContextOptions {\n readonly?: boolean | null;\n hidden?: boolean | null;\n disabled?: boolean | null;\n}\n\nexport interface DataControlProps {\n definition: DataControlDefinition;\n field: SchemaField;\n dataContext: ControlDataContext;\n control: Control<any>;\n options: FormContextOptions;\n style: React.CSSProperties | undefined;\n childCount: number;\n renderChild: ChildRenderer;\n allowedOptions?: Control<any[] | undefined>;\n elementRenderer?: (elemProps: Control<any>) => ReactNode;\n}\nexport type CreateDataProps = (\n controlProps: DataControlProps,\n) => DataRendererProps;\n\nexport interface ControlRenderOptions extends FormContextOptions {\n useDataHook?: (c: ControlDefinition) => CreateDataProps;\n useEvalExpressionHook?: UseEvalExpressionHook;\n clearHidden?: boolean;\n schemaInterface?: SchemaInterface;\n}\nexport function useControlRenderer(\n definition: ControlDefinition,\n fields: SchemaField[],\n renderer: FormRenderer,\n options: ControlRenderOptions = {},\n): FC<ControlRenderProps> {\n const dataProps = options.useDataHook?.(definition) ?? defaultDataProps;\n const schemaInterface = options.schemaInterface ?? defaultSchemaInterface;\n const useExpr = options.useEvalExpressionHook ?? defaultUseEvalExpressionHook;\n\n const schemaField = lookupSchemaField(definition, fields);\n const useDefaultValue = useEvalDefaultValueHook(\n useExpr,\n definition,\n schemaField,\n );\n const useIsVisible = useEvalVisibilityHook(useExpr, definition, schemaField);\n const useIsReadonly = useEvalReadonlyHook(useExpr, definition);\n const useIsDisabled = useEvalDisabledHook(useExpr, definition);\n const useAllowedOptions = useEvalAllowedOptionsHook(useExpr, definition);\n const useCustomStyle = useEvalStyleHook(\n useExpr,\n DynamicPropertyType.Style,\n definition,\n );\n const useLayoutStyle = useEvalStyleHook(\n useExpr,\n DynamicPropertyType.LayoutStyle,\n definition,\n );\n const useDynamicDisplay = useEvalDisplayHook(useExpr, definition);\n const useValidation = useValidationHook(definition);\n const r = useUpdatedRef({ options, definition, fields, schemaField });\n\n const Component = useCallback(\n ({ control: parentControl }: ControlRenderProps) => {\n const stopTracking = useComponentTracking();\n try {\n const { definition: c, options, fields, schemaField } = r.current;\n const dataContext: ControlDataContext = {\n groupControl: parentControl,\n fields,\n schemaInterface,\n };\n const readonlyControl = useIsReadonly(dataContext);\n const disabledControl = useIsDisabled(dataContext);\n const visibleControl = useIsVisible(dataContext);\n const displayControl = useDynamicDisplay(dataContext);\n const customStyle = useCustomStyle(dataContext).value;\n const layoutStyle = useLayoutStyle(dataContext).value;\n const visible = visibleControl.current.value;\n const visibility = useControl<Visibility | undefined>(() =>\n visible != null\n ? {\n visible,\n showing: visible,\n }\n : undefined,\n );\n useControlEffect(\n () => visibleControl.value,\n (visible) => {\n if (visible != null)\n visibility.setValue((ex) => ({\n visible,\n showing: ex ? ex.showing : visible,\n }));\n },\n );\n\n const allowedOptions = useAllowedOptions(dataContext);\n const defaultValueControl = useDefaultValue(dataContext);\n const [control, childContext] = getControlData(\n schemaField,\n dataContext,\n );\n useControlEffect(\n () => [\n visibility.value,\n defaultValueControl.value,\n control,\n parentControl.isNull,\n isDataControlDefinition(definition) && definition.dontClearHidden,\n ],\n ([vc, dv, cd, pn, dontClear]) => {\n if (pn) {\n parentControl.value = {};\n }\n if (vc && cd && vc.visible === vc.showing) {\n if (!vc.visible) {\n if (options.clearHidden && !dontClear) cd.value = undefined;\n } else if (cd.value == null) {\n cd.value = dv;\n }\n }\n },\n true,\n );\n const myOptions = useCalculatedControl<FormContextOptions>(() => ({\n hidden: options.hidden || !visibility.fields?.showing.value,\n readonly: options.readonly || readonlyControl.value,\n disabled: options.disabled || disabledControl.value,\n })).value;\n useValidation(control!, !!myOptions.hidden, dataContext);\n const childRenderers: FC<ControlRenderProps>[] =\n c.children?.map((cd) =>\n useControlRenderer(cd, childContext.fields, renderer, {\n ...options,\n ...myOptions,\n }),\n ) ?? [];\n useEffect(() => {\n if (control && typeof myOptions.disabled === \"boolean\")\n control.disabled = myOptions.disabled;\n }, [control, myOptions.disabled]);\n if (parentControl.isNull) return <></>;\n const adornments =\n definition.adornments?.map((x) =>\n renderer.renderAdornment({ adornment: x }),\n ) ?? [];\n const labelAndChildren = renderControlLayout({\n definition: c,\n renderer,\n childCount: childRenderers.length,\n renderChild: (k, i, props) => {\n const RenderChild = childRenderers[i];\n return <RenderChild key={k} {...props} />;\n },\n createDataProps: dataProps,\n formOptions: myOptions,\n dataContext,\n control: displayControl ?? control,\n schemaField,\n displayControl,\n style: customStyle,\n allowedOptions,\n });\n const renderedControl = renderer.renderLayout({\n ...labelAndChildren,\n adornments,\n className: c.layoutClass,\n style: layoutStyle,\n });\n return renderer.renderVisibility({ visibility, ...renderedControl });\n } finally {\n stopTracking();\n }\n },\n [\n r,\n dataProps,\n useIsVisible,\n useDefaultValue,\n useIsReadonly,\n useIsDisabled,\n useCustomStyle,\n useLayoutStyle,\n useAllowedOptions,\n useDynamicDisplay,\n useValidation,\n renderer,\n schemaInterface,\n ],\n );\n (Component as any).displayName = \"RenderControl\";\n return Component;\n}\nexport function lookupSchemaField(\n c: ControlDefinition,\n fields: SchemaField[],\n): SchemaField | undefined {\n const fieldName = isGroupControlsDefinition(c)\n ? c.compoundField\n : isDataControlDefinition(c)\n ? c.field\n : undefined;\n return fieldName ? findField(fields, fieldName) : undefined;\n}\nexport function getControlData(\n schemaField: SchemaField | undefined,\n parentContext: ControlDataContext,\n): [Control<any> | undefined, ControlDataContext] {\n const childControl: Control<any> | undefined = schemaField\n ? parentContext.groupControl.fields?.[schemaField.field] ?? newControl({})\n : undefined;\n return [\n childControl,\n schemaField && isCompoundField(schemaField)\n ? {\n groupControl: childControl!,\n fields: schemaField.children,\n schemaInterface: parentContext.schemaInterface,\n }\n : parentContext,\n ];\n}\n\nfunction groupProps(\n renderOptions: GroupRenderOptions = { type: \"Standard\" },\n childCount: number,\n renderChild: ChildRenderer,\n control: Control<any>,\n className: string | null | undefined,\n style: React.CSSProperties | undefined,\n): GroupRendererProps {\n return {\n childCount,\n renderChild: (i) => renderChild(i, i, { control }),\n renderOptions,\n className: cc(className),\n style,\n };\n}\n\nexport function defaultDataProps({\n definition,\n field,\n control,\n options,\n elementRenderer,\n style,\n allowedOptions,\n ...props\n}: DataControlProps): DataRendererProps {\n const className = cc(definition.styleClass);\n const required = !!definition.required;\n const fieldOptions =\n (field.options?.length ?? 0) === 0 ? null : field.options;\n const allowed = allowedOptions?.value ?? [];\n return {\n control,\n field,\n id: \"c\" + control.uniqueId,\n options:\n fieldOptions && allowed.length > 0\n ? fieldOptions.filter((x) => allowed.includes(x.value))\n : fieldOptions,\n readonly: !!options.readonly,\n renderOptions: definition.renderOptions ?? { type: \"Standard\" },\n required,\n hidden: !!options.hidden,\n className,\n style,\n ...props,\n toArrayProps: elementRenderer\n ? () =>\n defaultArrayProps(\n control,\n field,\n required,\n style,\n className,\n elementRenderer,\n )\n : undefined,\n };\n}\n\nexport function defaultArrayProps(\n arrayControl: Control<any[] | undefined | null>,\n field: SchemaField,\n required: boolean,\n style: CSSProperties | undefined,\n className: string | undefined,\n renderElement: (elemProps: Control<any>) => ReactNode,\n): ArrayRendererProps {\n const noun = field.displayName ?? field.field;\n const elems = arrayControl.elements ?? [];\n return {\n arrayControl,\n elementCount: elems.length,\n required,\n addAction: {\n actionId: \"add\",\n actionText: \"Add \" + noun,\n onClick: () => addElement(arrayControl, elementValueForField(field)),\n },\n elementKey: (i) => elems[i].uniqueId,\n removeAction: (i: number) => ({\n actionId: \"\",\n actionText: \"Remove\",\n onClick: () => removeElement(arrayControl, i),\n }),\n renderElement: (i) => renderElement(elems[i]),\n className: cc(className),\n style,\n };\n}\n\nexport type ChildRenderer = (\n k: Key,\n childIndex: number,\n props: ControlRenderProps,\n) => ReactNode;\n\nexport interface RenderControlProps {\n definition: ControlDefinition;\n renderer: FormRenderer;\n childCount: number;\n renderChild: ChildRenderer;\n createDataProps: CreateDataProps;\n formOptions: FormContextOptions;\n dataContext: ControlDataContext;\n control?: Control<any>;\n schemaField?: SchemaField;\n displayControl?: Control<string | undefined>;\n style?: React.CSSProperties;\n allowedOptions?: Control<any[] | undefined>;\n}\nexport function renderControlLayout({\n definition: c,\n renderer,\n childCount,\n renderChild: childRenderer,\n control: childControl,\n schemaField,\n dataContext,\n formOptions: dataOptions,\n createDataProps: dataProps,\n displayControl,\n style,\n allowedOptions,\n}: RenderControlProps): ControlLayoutProps {\n if (isDataControlDefinition(c)) {\n return renderData(c);\n }\n if (isGroupControlsDefinition(c)) {\n if (c.compoundField) {\n return renderData(\n dataControl(c.compoundField, c.title, {\n children: c.children,\n hideTitle: c.groupOptions?.hideTitle,\n }),\n );\n }\n return {\n processLayout: renderer.renderGroup(\n groupProps(\n c.groupOptions,\n childCount,\n childRenderer,\n dataContext.groupControl,\n c.styleClass,\n style,\n ),\n ),\n label: {\n label: c.title,\n type: LabelType.Group,\n hide: c.groupOptions?.hideTitle,\n },\n };\n }\n if (isActionControlsDefinition(c)) {\n return {\n children: renderer.renderAction({\n actionText: c.title ?? c.actionId,\n actionId: c.actionId,\n onClick: () => {},\n className: cc(c.styleClass),\n style,\n }),\n };\n }\n if (isDisplayControlsDefinition(c)) {\n return {\n children: renderer.renderDisplay({\n data: c.displayData ?? {},\n className: cc(c.styleClass),\n style,\n display: displayControl,\n }),\n };\n }\n return {};\n\n function renderData(c: DataControlDefinition, elementControl?: Control<any>) {\n if (!schemaField) return { children: \"No schema field for: \" + c.field };\n const props = dataProps({\n definition: c,\n field: schemaField,\n dataContext,\n control: elementControl ?? childControl!,\n options: dataOptions,\n style,\n childCount,\n allowedOptions,\n renderChild: childRenderer,\n elementRenderer:\n elementControl == null && schemaField.collection\n ? (element) =>\n renderLayoutParts(renderData(c, element), renderer).children\n : undefined,\n });\n\n const labelText = !c.hideTitle\n ? controlTitle(c.title, schemaField)\n : undefined;\n return {\n processLayout: renderer.renderData(props),\n label: {\n type: LabelType.Control,\n label: labelText,\n forId: props.id,\n required: c.required,\n hide: c.hideTitle,\n },\n errorControl: childControl,\n };\n }\n\n function compoundRenderer(i: number, control: Control<any>): ReactNode {\n const { className, style, children } = renderer.renderLayout({\n processLayout: renderer.renderGroup({\n renderOptions: { type: \"Standard\", hideTitle: true },\n childCount,\n renderChild: (ci) => childRenderer(ci, ci, { control }),\n }),\n });\n return (\n <div key={control.uniqueId} style={style} className={cc(className)}>\n {children}\n </div>\n );\n }\n function scalarRenderer(\n dataProps: DataRendererProps,\n ): (i: number, control: Control<any>) => ReactNode {\n return (i, control) => {\n return (\n <Fragment key={control.uniqueId}>\n {renderer.renderData({ ...dataProps, control })({}).children}\n </Fragment>\n );\n };\n }\n}\n\nexport function appendMarkup(\n k: keyof Omit<RenderedLayout, \"errorControl\" | \"style\" | \"className\">,\n markup: ReactNode,\n): (layout: RenderedLayout) => void {\n return (layout) =>\n (layout[k] = (\n <>\n {layout[k]}\n {markup}\n </>\n ));\n}\n\nexport function wrapMarkup(\n k: keyof Omit<RenderedLayout, \"errorControl\" | \"style\" | \"className\">,\n wrap: (ex: ReactNode) => ReactNode,\n): (layout: RenderedLayout) => void {\n return (layout) => (layout[k] = wrap(layout[k]));\n}\n\nexport function layoutKeyForPlacement(\n pos: AdornmentPlacement,\n): keyof Omit<RenderedLayout, \"errorControl\" | \"style\" | \"className\"> {\n switch (pos) {\n case AdornmentPlacement.ControlEnd:\n return \"controlEnd\";\n case AdornmentPlacement.ControlStart:\n return \"controlStart\";\n case AdornmentPlacement.LabelStart:\n return \"labelStart\";\n case AdornmentPlacement.LabelEnd:\n return \"labelEnd\";\n }\n}\n\nexport function appendMarkupAt(\n pos: AdornmentPlacement,\n markup: ReactNode,\n): (layout: RenderedLayout) => void {\n return appendMarkup(layoutKeyForPlacement(pos), markup);\n}\n\nexport function wrapMarkupAt(\n pos: AdornmentPlacement,\n wrap: (ex: ReactNode) => ReactNode,\n): (layout: RenderedLayout) => void {\n return wrapMarkup(layoutKeyForPlacement(pos), wrap);\n}\n\nexport function renderLayoutParts(\n props: ControlLayoutProps,\n renderer: FormRenderer,\n): RenderedLayout {\n const { className, children, style, errorControl, label, adornments } =\n props.processLayout?.(props) ?? props;\n const layout: RenderedLayout = {\n children,\n errorControl,\n style,\n className: cc(className),\n };\n (adornments ?? [])\n .sort((a, b) => a.priority - b.priority)\n .forEach((x) => x.apply(layout));\n layout.label =\n label && !label.hide\n ? renderer.renderLabel(label, layout.labelStart, layout.labelEnd)\n : undefined;\n return layout;\n}\n\nexport function controlTitle(\n title: string | undefined | null,\n field: SchemaField,\n) {\n return title ? title : fieldDisplayName(field);\n}\n","import React, {\n CSSProperties,\n Fragment,\n ReactElement,\n ReactNode,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport clsx from \"clsx\";\nimport { Control, Fcheckbox, formControlProps } from \"@react-typed-forms/core\";\nimport {\n ActionRendererProps,\n AdornmentProps,\n AdornmentRenderer,\n appendMarkupAt,\n ArrayRendererProps,\n ControlLayoutProps,\n DataRendererProps,\n DisplayRendererProps,\n FormRenderer,\n GroupRendererProps,\n LabelRendererProps,\n LabelType,\n RenderedControl,\n RenderedLayout,\n renderLayoutParts,\n VisibilityRendererProps,\n} from \"./controlRender\";\nimport {\n AdornmentPlacement,\n ControlAdornment,\n ControlAdornmentType,\n DataRenderType,\n DisplayDataType,\n FieldOption,\n FieldType,\n FlexRenderer,\n GridRenderer,\n HtmlDisplay,\n IconAdornment,\n IconDisplay,\n isDisplayOnlyRenderer,\n isFlexRenderer,\n isGridRenderer,\n SchemaField,\n SchemaInterface,\n TextDisplay,\n} from \"./types\";\nimport { hasOptions } from \"./util\";\n\nexport interface DefaultRenderers {\n data: DataRendererRegistration;\n label: LabelRendererRegistration;\n action: ActionRendererRegistration;\n array: ArrayRendererRegistration;\n group: GroupRendererRegistration;\n display: DisplayRendererRegistration;\n adornment: AdornmentRendererRegistration;\n renderLayout: LayoutRendererRegistration;\n visibility: VisibilityRendererRegistration;\n}\n\nexport interface LayoutRendererRegistration {\n type: \"layout\";\n match?: (props: ControlLayoutProps) => boolean;\n render: (\n props: ControlLayoutProps,\n renderers: FormRenderer,\n ) => RenderedControl;\n}\nexport interface DataRendererRegistration {\n type: \"data\";\n schemaType?: string | string[];\n renderType?: string | string[];\n options?: boolean;\n collection?: boolean;\n match?: (props: DataRendererProps) => boolean;\n render: (\n props: DataRendererProps,\n renderers: FormRenderer,\n ) => ReactNode | ((layout: ControlLayoutProps) => ControlLayoutProps);\n}\n\nexport interface LabelRendererRegistration {\n type: \"label\";\n labelType?: LabelType | LabelType[];\n render: (\n labelProps: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface ActionRendererRegistration {\n type: \"action\";\n actionType?: string | string[];\n render: (props: ActionRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface ArrayRendererRegistration {\n type: \"array\";\n render: (props: ArrayRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface GroupRendererRegistration {\n type: \"group\";\n renderType?: string | string[];\n render: (\n props: GroupRendererProps,\n renderers: FormRenderer,\n ) => ReactElement | ((layout: ControlLayoutProps) => ControlLayoutProps);\n}\n\nexport interface DisplayRendererRegistration {\n type: \"display\";\n renderType?: string | string[];\n render: (\n props: DisplayRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface AdornmentRendererRegistration {\n type: \"adornment\";\n adornmentType?: string | string[];\n render: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nexport interface VisibilityRendererRegistration {\n type: \"visibility\";\n render: (props: VisibilityRendererProps) => ReactNode;\n}\n\nexport type RendererRegistration =\n | DataRendererRegistration\n | GroupRendererRegistration\n | DisplayRendererRegistration\n | ActionRendererRegistration\n | LabelRendererRegistration\n | ArrayRendererRegistration\n | AdornmentRendererRegistration\n | LayoutRendererRegistration\n | VisibilityRendererRegistration;\n\nexport function createFormRenderer(\n customRenderers: RendererRegistration[] = [],\n defaultRenderers: DefaultRenderers = createClassStyledRenderers(),\n): FormRenderer {\n const dataRegistrations = customRenderers.filter(isDataRegistration);\n const groupRegistrations = customRenderers.filter(isGroupRegistration);\n const adornmentRegistrations = customRenderers.filter(\n isAdornmentRegistration,\n );\n const displayRegistrations = customRenderers.filter(isDisplayRegistration);\n const labelRenderers = customRenderers.filter(isLabelRegistration);\n const arrayRenderers = customRenderers.filter(isArrayRegistration);\n const actionRenderers = customRenderers.filter(isActionRegistration);\n const layoutRenderers = customRenderers.filter(isLayoutRegistration);\n const visibilityRenderer =\n customRenderers.find(isVisibilityRegistration) ??\n defaultRenderers.visibility;\n\n const formRenderers: FormRenderer = {\n renderAction,\n renderData,\n renderGroup,\n renderDisplay,\n renderLabel,\n renderArray,\n renderAdornment,\n renderLayout,\n renderVisibility: visibilityRenderer.render,\n };\n\n function renderLayout(props: ControlLayoutProps) {\n const renderer =\n layoutRenderers.find((x) => !x.match || x.match(props)) ??\n defaultRenderers.renderLayout;\n return renderer.render(props, formRenderers);\n }\n\n function renderAdornment(props: AdornmentProps): AdornmentRenderer {\n const renderer =\n adornmentRegistrations.find((x) =>\n isOneOf(x.adornmentType, props.adornment.type),\n ) ?? defaultRenderers.adornment;\n return renderer.render(props);\n }\n\n function renderArray(props: ArrayRendererProps) {\n return (arrayRenderers[0] ?? defaultRenderers.array).render(\n props,\n formRenderers,\n );\n }\n\n function renderLabel(\n props: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n ) {\n const renderer =\n labelRenderers.find((x) => isOneOf(x.labelType, props.type)) ??\n defaultRenderers.label;\n return renderer.render(props, labelStart, labelEnd, formRenderers);\n }\n\n function renderData(\n props: DataRendererProps,\n ): (layout: ControlLayoutProps) => ControlLayoutProps {\n const {\n renderOptions: { type: renderType },\n field,\n } = props;\n\n const options = hasOptions(props);\n const renderer =\n dataRegistrations.find(\n (x) =>\n (x.collection ?? false) === (field.collection ?? false) &&\n (x.options ?? false) === options &&\n isOneOf(x.schemaType, field.type) &&\n isOneOf(x.renderType, renderType) &&\n (!x.match || x.match(props)),\n ) ?? defaultRenderers.data;\n\n const result = renderer.render(props, formRenderers);\n if (typeof result === \"function\") return result;\n return (l) => ({ ...l, children: result });\n }\n\n function renderGroup(\n props: GroupRendererProps,\n ): (layout: ControlLayoutProps) => ControlLayoutProps {\n const renderType = props.renderOptions.type;\n const renderer =\n groupRegistrations.find((x) => isOneOf(x.renderType, renderType)) ??\n defaultRenderers.group;\n const result = renderer.render(props, formRenderers);\n if (typeof result === \"function\") return result;\n return (l) => ({ ...l, children: result });\n }\n\n function renderAction(props: ActionRendererProps) {\n const renderer =\n actionRenderers.find((x) => isOneOf(x.actionType, props.actionId)) ??\n defaultRenderers.action;\n return renderer.render(props, formRenderers);\n }\n\n function renderDisplay(props: DisplayRendererProps) {\n const renderType = props.data.type;\n const renderer =\n displayRegistrations.find((x) => isOneOf(x.renderType, renderType)) ??\n defaultRenderers.display;\n return renderer.render(props, formRenderers);\n }\n\n return formRenderers;\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n requiredElement?: ReactNode;\n}\n\ninterface DefaultActionRendererOptions {\n className?: string;\n}\n\nexport function createDefaultActionRenderer(\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n function render({ onClick, actionText }: ActionRendererProps) {\n return (\n <button className={options.className} onClick={onClick}>\n {actionText}\n </button>\n );\n }\n return { render, type: \"action\" };\n}\nexport function createDefaultLabelRenderer(\n options: DefaultLabelRendererOptions = { requiredElement: <span> *</span> },\n): LabelRendererRegistration {\n const { className, groupLabelClass, requiredElement } = options;\n return {\n render: (props, labelStart, labelEnd) => (\n <>\n {labelStart}\n <label\n htmlFor={props.forId}\n className={clsx(\n className,\n props.type === LabelType.Group && groupLabelClass,\n )}\n >\n {props.label}\n {props.required && requiredElement}\n </label>\n {labelEnd}\n </>\n ),\n type: \"label\",\n };\n}\n\ninterface DefaultArrayRendererOptions {\n className?: string;\n removableClass?: string;\n childClass?: string;\n removableChildClass?: string;\n removeActionClass?: string;\n addActionClass?: string;\n}\n\nexport function createDefaultArrayRenderer(\n options?: DefaultArrayRendererOptions,\n): ArrayRendererRegistration {\n const {\n className,\n removableClass,\n childClass,\n removableChildClass,\n removeActionClass,\n addActionClass,\n } = options ?? {};\n function render(\n {\n elementCount,\n renderElement,\n addAction,\n removeAction,\n elementKey,\n required,\n }: ArrayRendererProps,\n { renderAction }: FormRenderer,\n ) {\n const showRemove = !required || elementCount > 1;\n return (\n <div>\n <div className={clsx(className, removeAction && removableClass)}>\n {Array.from({ length: elementCount }, (_, x) =>\n removeAction ? (\n <Fragment key={elementKey(x)}>\n <div className={clsx(childClass, removableChildClass)}>\n {renderElement(x)}\n </div>\n <div className={removeActionClass}>\n {showRemove && renderAction(removeAction(x))}\n </div>\n </Fragment>\n ) : (\n <div key={elementKey(x)} className={childClass}>\n {renderElement(x)}\n </div>\n ),\n )}\n </div>\n {addAction && (\n <div className={addActionClass}>{renderAction(addAction)}</div>\n )}\n </div>\n );\n }\n return { render, type: \"array\" };\n}\n\ninterface StyleProps {\n className?: string;\n style?: CSSProperties;\n}\n\ninterface DefaultGroupRendererOptions {\n className?: string;\n standardClassName?: string;\n gridStyles?: (columns: GridRenderer) => StyleProps;\n gridClassName?: string;\n defaultGridColumns?: number;\n flexClassName?: string;\n defaultFlexGap?: string;\n}\n\nexport function createDefaultGroupRenderer(\n options?: DefaultGroupRendererOptions,\n): GroupRendererRegistration {\n const {\n className,\n gridStyles = defaultGridStyles,\n defaultGridColumns = 2,\n gridClassName,\n standardClassName,\n flexClassName,\n defaultFlexGap,\n } = options ?? {};\n\n function defaultGridStyles({\n columns = defaultGridColumns,\n }: GridRenderer): StyleProps {\n return {\n className: gridClassName,\n style: {\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n },\n };\n }\n\n function flexStyles(options: FlexRenderer): StyleProps {\n return {\n className: flexClassName,\n style: {\n display: \"flex\",\n gap: options.gap ? options.gap : defaultFlexGap,\n flexDirection: options.direction\n ? (options.direction as any)\n : undefined,\n },\n };\n }\n\n function render(props: GroupRendererProps) {\n const { childCount, renderChild, renderOptions } = props;\n\n const { style, className: gcn } = isGridRenderer(renderOptions)\n ? gridStyles(renderOptions)\n : isFlexRenderer(renderOptions)\n ? flexStyles(renderOptions)\n : ({ className: standardClassName } as StyleProps);\n\n return (cp: ControlLayoutProps) => {\n return {\n ...cp,\n children: (\n <div className={clsx(props.className, className, gcn)} style={style}>\n {Array.from({ length: childCount }, (_, x) => renderChild(x))}\n </div>\n ),\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 return {\n render: (props) => <DefaultDisplay {...options} {...props} />,\n type: \"display\",\n };\n}\n\nexport function DefaultDisplay({\n data,\n display,\n className,\n style,\n ...options\n}: DefaultDisplayRendererOptions & DisplayRendererProps) {\n switch (data.type) {\n case DisplayDataType.Icon:\n return (\n <i\n style={style}\n className={clsx(\n className,\n display ? display.value : (data as IconDisplay).iconClass,\n )}\n />\n );\n case DisplayDataType.Text:\n return (\n <div style={style} className={clsx(className, options.textClassName)}>\n {display ? display.value : (data as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n style={style}\n className={clsx(className, options.htmlClassName)}\n dangerouslySetInnerHTML={{\n __html: display ? display.value ?? \"\" : (data as HtmlDisplay).html,\n }}\n />\n );\n default:\n return <h1>Unknown display type: {data.type}</h1>;\n }\n}\n\nexport const DefaultBoolOptions: FieldOption[] = [\n { name: \"Yes\", value: true },\n { name: \"No\", value: false },\n];\ninterface DefaultDataRendererOptions {\n inputClass?: string;\n displayOnlyClass?: 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, displayOnlyClass } = {\n optionRenderer: selectRenderer,\n booleanOptions: DefaultBoolOptions,\n ...options,\n };\n return createDataRenderer((props, renderers) => {\n const fieldType = props.field.type;\n if (props.toArrayProps) {\n return (p) => ({\n ...p,\n children: renderers.renderArray(props.toArrayProps!()),\n });\n }\n if (fieldType === FieldType.Compound) {\n return renderers.renderGroup({\n style: props.style,\n className: props.className,\n renderOptions: { type: \"Standard\", hideTitle: true },\n renderChild: (i) => props.renderChild(i, i, { control: props.control }),\n childCount: props.childCount,\n });\n }\n const renderOptions = props.renderOptions;\n let renderType = renderOptions.type;\n if (fieldType == FieldType.Any) return <>No control for Any</>;\n if (isDisplayOnlyRenderer(renderOptions))\n return (p) => ({\n ...p,\n className: displayOnlyClass,\n children: (\n <DefaultDisplayOnly\n field={props.field}\n schemaInterface={props.dataContext.schemaInterface}\n control={props.control}\n className={props.className}\n style={props.style}\n emptyText={renderOptions.emptyText}\n />\n ),\n });\n const isBool = fieldType === FieldType.Bool;\n if (booleanOptions != null && isBool && props.options == null) {\n return renderers.renderData({ ...props, options: booleanOptions });\n }\n if (renderType === DataRenderType.Standard && hasOptions(props)) {\n return optionRenderer.render(props, renderers);\n }\n switch (renderType) {\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, renderers);\n }\n return renderType === DataRenderType.Checkbox ? (\n <Fcheckbox\n style={props.style}\n className={props.className}\n control={props.control}\n />\n ) : (\n <ControlInput\n className={clsx(props.className, inputClass)}\n style={props.style}\n id={props.id}\n readOnly={props.readonly}\n control={props.control}\n convert={createInputConversion(props.field.type)}\n />\n );\n });\n}\n\nexport function DefaultDisplayOnly({\n control,\n className,\n emptyText,\n schemaInterface,\n field,\n style,\n}: {\n control: Control<any>;\n field: SchemaField;\n schemaInterface: SchemaInterface;\n className?: string;\n style?: React.CSSProperties;\n emptyText?: string | null;\n}) {\n const v = control.value;\n const text =\n (schemaInterface.isEmptyValue(field, v)\n ? emptyText\n : schemaInterface.textValue(field, v)) ?? \"\";\n return (\n <div style={style} className={className}>\n {text}\n </div>\n );\n}\n\nexport function ControlInput({\n control,\n convert,\n ...props\n}: React.InputHTMLAttributes<HTMLInputElement> & {\n control: Control<any>;\n convert: InputConversion;\n}) {\n const { errorText, value, onChange, ...inputProps } =\n formControlProps(control);\n return (\n <input\n {...inputProps}\n type={convert[0]}\n value={value == null ? \"\" : convert[2](value)}\n onChange={(e) => {\n control.value = convert[1](e.target.value);\n }}\n {...props}\n />\n );\n}\n\nexport interface DefaultAdornmentRendererOptions {}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n return {\n type: \"adornment\",\n render: ({ adornment }) => ({\n apply: (rl) => {\n if (isIconAdornment(adornment)) {\n return appendMarkupAt(\n adornment.placement ?? AdornmentPlacement.ControlStart,\n <i className={adornment.iconClass} />,\n )(rl);\n }\n },\n priority: 0,\n adornment,\n }),\n };\n}\n\nexport interface DefaultLayoutRendererOptions {\n className?: string;\n errorClass?: string;\n}\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\n layout?: DefaultLayoutRendererOptions;\n}\n\nexport function createDefaultRenderers(\n options: DefaultRendererOptions = {},\n): DefaultRenderers {\n return {\n data: createDefaultDataRenderer(options.data),\n display: createDefaultDisplayRenderer(options.display),\n action: createDefaultActionRenderer(options.action),\n array: createDefaultArrayRenderer(options.array),\n group: createDefaultGroupRenderer(options.group),\n label: createDefaultLabelRenderer(options.label),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n renderLayout: createDefaultLayoutRenderer(options.layout),\n visibility: createDefaultVisibilityRenderer(),\n };\n}\n\nfunction createDefaultLayoutRenderer(\n options: DefaultLayoutRendererOptions = {},\n) {\n return createLayoutRenderer((props, renderers) => {\n const layout = renderLayoutParts(\n { ...props, className: clsx(props.className, options.className) },\n renderers,\n );\n return {\n children: <DefaultLayout layout={layout} {...options} />,\n className: layout.className,\n style: layout.style,\n divRef: (e) =>\n e && props.errorControl\n ? (props.errorControl.meta.scrollElement = e)\n : undefined,\n };\n });\n}\n\nfunction createClassStyledRenderers() {\n return createDefaultRenderers({\n layout: { className: \"control\" },\n group: { className: \"group\" },\n array: { className: \"control-array\" },\n action: { className: \"action\" },\n data: { inputClass: \"data\" },\n display: { htmlClassName: \"html\", textClassName: \"text\" },\n });\n}\n\nfunction isAdornmentRegistration(\n x: RendererRegistration,\n): x is AdornmentRendererRegistration {\n return x.type === \"adornment\";\n}\n\nfunction isDataRegistration(\n x: RendererRegistration,\n): x is DataRendererRegistration {\n return x.type === \"data\";\n}\n\nfunction isGroupRegistration(\n x: RendererRegistration,\n): x is GroupRendererRegistration {\n return x.type === \"group\";\n}\n\nfunction isLabelRegistration(\n x: RendererRegistration,\n): x is LabelRendererRegistration {\n return x.type === \"label\";\n}\n\nfunction isLayoutRegistration(\n x: RendererRegistration,\n): x is LayoutRendererRegistration {\n return x.type === \"layout\";\n}\n\nfunction isVisibilityRegistration(\n x: RendererRegistration,\n): x is VisibilityRendererRegistration {\n return x.type === \"visibility\";\n}\n\nfunction isActionRegistration(\n x: RendererRegistration,\n): x is ActionRendererRegistration {\n return x.type === \"action\";\n}\n\nfunction isDisplayRegistration(\n x: RendererRegistration,\n): x is DisplayRendererRegistration {\n return x.type === \"display\";\n}\n\nfunction isArrayRegistration(\n x: RendererRegistration,\n): x is ArrayRendererRegistration {\n return x.type === \"array\";\n}\nfunction isOneOf<A>(x: A | A[] | undefined, v: A) {\n return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;\n}\n\nexport function isIconAdornment(a: ControlAdornment): a is IconAdornment {\n return a.type === ControlAdornmentType.Icon;\n}\n\nexport function createLayoutRenderer(\n render: LayoutRendererRegistration[\"render\"],\n options?: Partial<LayoutRendererRegistration>,\n): LayoutRendererRegistration {\n return { type: \"layout\", render, ...options };\n}\n\nexport function createArrayRenderer(\n render: ArrayRendererRegistration[\"render\"],\n options?: Partial<ArrayRendererRegistration>,\n): ArrayRendererRegistration {\n return { type: \"array\", render, ...options };\n}\n\nexport function createDataRenderer(\n render: DataRendererRegistration[\"render\"],\n options?: Partial<DataRendererRegistration>,\n): DataRendererRegistration {\n return { type: \"data\", render, ...options };\n}\n\nexport function createLabelRenderer(\n render: LabelRendererRegistration[\"render\"],\n options?: Omit<LabelRendererRegistration, \"type\">,\n): LabelRendererRegistration {\n return { type: \"label\", render, ...options };\n}\n\nexport function createVisibilityRenderer(\n render: VisibilityRendererRegistration[\"render\"],\n options?: Partial<VisibilityRendererRegistration>,\n): VisibilityRendererRegistration {\n return { type: \"visibility\", render, ...options };\n}\n\nexport function createAdornmentRenderer(\n render: (props: AdornmentProps) => AdornmentRenderer,\n options?: Partial<AdornmentRendererRegistration>,\n): AdornmentRendererRegistration {\n return { type: \"adornment\", ...options, render };\n}\n\nexport interface SelectRendererOptions {\n className?: string;\n emptyText?: string;\n requiredText?: string;\n}\n\nexport function createSelectRenderer(options: SelectRendererOptions = {}) {\n return createDataRenderer(\n (props, asArray) => (\n <SelectDataRenderer\n className={clsx(props.className, options.className)}\n state={props.control}\n id={props.id}\n options={props.options!}\n required={props.required}\n emptyText={options.emptyText}\n requiredText={options.requiredText}\n convert={createSelectConversion(props.field.type)}\n />\n ),\n {\n options: true,\n },\n );\n}\n\ntype SelectConversion = (a: any) => string | number;\n\ninterface SelectDataRendererProps {\n id?: string;\n className?: string;\n options: {\n name: string;\n value: any;\n disabled?: boolean;\n }[];\n emptyText?: string;\n requiredText?: string;\n required: boolean;\n state: Control<any>;\n convert: SelectConversion;\n}\n\nexport function SelectDataRenderer({\n state,\n options,\n className,\n convert,\n required,\n emptyText = \"N/A\",\n requiredText = \"<please select>\",\n ...props\n}: SelectDataRendererProps) {\n const { value, disabled } = state;\n const [showEmpty] = useState(!required || value == null);\n const optionStringMap = useMemo(\n () => Object.fromEntries(options.map((x) => [convert(x.value), x.value])),\n [options],\n );\n return (\n <select\n {...props}\n className={className}\n onChange={(v) => (state.value = optionStringMap[v.target.value])}\n value={convert(value)}\n disabled={disabled}\n >\n {showEmpty && (\n <option value=\"\">{required ? requiredText : emptyText}</option>\n )}\n {options.map((x, i) => (\n <option key={i} value={convert(x.value)} disabled={x.disabled}>\n {x.name}\n </option>\n ))}\n </select>\n );\n}\n\nexport function createSelectConversion(ft: string): SelectConversion {\n switch (ft) {\n case FieldType.String:\n case FieldType.Int:\n case FieldType.Double:\n return (a) => a;\n default:\n return (a) => a?.toString() ?? \"\";\n }\n}\n\ntype InputConversion = [string, (s: any) => any, (a: any) => string | number];\n\nexport function createInputConversion(ft: string): InputConversion {\n switch (ft) {\n case FieldType.String:\n return [\"text\", (a) => a, (a) => a];\n case FieldType.Bool:\n return [\"text\", (a) => a === \"true\", (a) => a?.toString() ?? \"\"];\n case FieldType.Int:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseInt(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n case FieldType.Date:\n return [\"date\", (a) => a, (a) => a];\n case FieldType.Double:\n return [\"number\", (a) => parseFloat(a), (a) => a];\n default:\n return [\"text\", (a) => a, (a) => a];\n }\n}\n\nexport function createDefaultVisibilityRenderer() {\n return createVisibilityRenderer((props) => <DefaultVisibility {...props} />);\n}\n\nexport function DefaultVisibility({\n visibility,\n children,\n className,\n style,\n divRef,\n}: VisibilityRendererProps) {\n const v = visibility.value;\n useEffect(() => {\n if (v) {\n visibility.setValue((ex) => ({ visible: v.visible, showing: v.visible }));\n }\n }, [v?.visible]);\n return v?.visible ? (\n <div className={clsx(className)} style={style} ref={divRef}>\n {children}\n </div>\n ) : (\n <></>\n );\n}\n\nexport function DefaultLayout({\n errorClass,\n className,\n layout: { controlEnd, controlStart, label, children, errorControl },\n}: DefaultLayoutRendererOptions & {\n layout: RenderedLayout;\n}) {\n const ec = errorControl;\n const errorText = ec && ec.touched ? ec.error : undefined;\n return (\n <>\n {label}\n {controlStart}\n {children}\n {errorText && <div className={errorClass}>{errorText}</div>}\n {controlEnd}\n </>\n );\n}\n","import React from \"react\";\nimport { DefaultRendererOptions } from \"./renderers\";\n\nexport const defaultTailwindTheme: DefaultRendererOptions = {\n label: {\n groupLabelClass: \"font-bold\",\n requiredElement: <span className=\"text-red-500\"> *</span>,\n },\n array: {\n removableClass: \"grid grid-cols-[1fr_auto] items-center gap-x-2\",\n childClass: \"grow my-2\",\n addActionClass: \"my-2\",\n },\n group: {\n standardClassName: \"flex flex-col gap-4\",\n gridClassName: \"gap-x-2 gap-y-4\",\n flexClassName: \"gap-2\",\n },\n action: {\n className: \"bg-primary rounded-lg p-3 text-white\",\n },\n layout: {\n className: \"flex flex-col\",\n errorClass: \"text-sm text-danger-500\",\n },\n data: {\n displayOnlyClass: \"flex flex-row items-center gap-2\",\n },\n};\n"],"names":["FieldType","ControlDefinitionType","DynamicPropertyType","ExpressionType","AdornmentPlacement","ControlAdornmentType","DataRenderType","SyncTextType","GroupRenderType","DisplayDataType","ValidatorType","DateComparison","isDataControlDefinition","x","type","Data","isGroupControlsDefinition","Group","isDisplayControlsDefinition","Display","isActionControlsDefinition","Action","visitControlDefinition","visitor","defaultValue","action","data","display","group","isGridRenderer","options","Grid","isFlexRenderer","Flex","isDisplayOnlyRenderer","DisplayOnly","buildSchema","def","Object","entries","map","stringField","displayName","makeScalarField","_extends","String","stringOptionsField","slice","call","arguments","withScalarOptions","v","n","defaultScalarField","makeCompoundField","defaultCompoundField","intField","Int","boolField","Bool","compoundField","fields","other","field","children","collection","Compound","applyDefaultValues","defaultValueForFields","applyValue","filter","isCompoundField","length","out","forEach","applyDefaultForField","defaultValueForField","parent","notElement","required","treeChildren","fromEntries","sf","undefined","isRequired","childValue","notNullable","elementValueForField","findScalarField","findField","findCompoundField","find","isScalarField","isDataControl","c","isGroupControl","fieldHasTag","tag","_field$tags","Boolean","tags","includes","fieldDisplayName","_field$displayName","hasOptions","o","_o$options$length","_o$options","defaultControlForField","title","_sf$tags","htmlEditor","renderOptions","HtmlEditor","Standard","findReferencedControl","control","_control$children","findReferencedControlInArray","controls","_iterator","_createForOfIteratorHelperLoose","_step","done","value","ref","addMissingControls","changes","flatMap","existing","changedCompounds","_cf$children","ex","cf","concat","useUpdatedRef","a","r","useRef","current","isControlReadonly","readonly","getDisplayOnlyOptions","d","getTypeField","context","_context$groupControl","typeSchemaField","isTypeField","groupControl","visitControlDataArray","cb","_iterator2","_step2","visitControlData","definition","ctx","processData","fieldName","fieldData","result","_iterator3","_control$elements","elements","_step3","elemResult","cfResult","schemaInterface","cleanDataForSchema","typeField","typeValue","cleanableFields","_x$onlyForTypes$lengt","_x$onlyForTypes","onlyForTypes","_x$onlyForTypes2","canBeNull","childFields","Array","isArray","cv","getAllReferencedClasses","_c$children","childClasses","tc","clsx","styleClass","layoutClass","dataControl","textDisplayControl","text","displayData","Text","htmlDisplayControl","html","Html","dynamicDefaultValue","expr","DefaultValue","dynamicReadonly","Readonly","dynamicVisibility","Visible","dynamicDisabled","Disabled","fieldEqExpr","DataMatch","jsonataExpr","expression","Jsonata","groupedControl","groupOptions","hideTitle","compoundControl","createAction","actionId","onClick","actionText","emptyGroupDefinition","useControlDefinitionForSchema","useMemo","_definition$children","useCalculatedControl","calculate","useControl","useControlEffect","cc","useEvalVisibilityHook","useEvalExpressionHook","schemaField","useEvalDynamicHook","useCallback","_dynamicVisibility","_r$current","useComputed","matchesType","hideDisplayOnly","useEvalReadonlyHook","useEvalStyleHook","property","dynamicStyle","useEvalAllowedOptionsHook","dynamicAllowed","AllowedOptions","useEvalDisabledHook","useEvalDisplayHook","dynamicDisplay","useEvalDefaultValueHook","dynamicValue","_dynamicValue","_r$current2","calcDefault","_ref","dcv","useDataExpression","fvExpr","refField","otherField","useDataMatchExpression","fv","defaultEvalHooks","useJsonataExpression","defaultUseEvalExpressionHook","makeEvalExpressionHook","f","_definition$dynamic","dynamic","types","displayOptions","emptyText","isEmptyValue","jExpr","compiledExpr","jsonata","e","console","error","Promise","resolve","evaluate","then","_compiledExpr$evaluat","reject","useValidationHook","_definition$validator","_definition$validator2","validatorTypes","validators","hidden","groupContext","_dd$validators","dd","useValueChangeEffect","setError","useValidator","i","useJsonataValidator","Date","useDateValidator","errorMsg","msg","dv","comparisonDate","fixedDate","parse","nowDate","UTC","getFullYear","getMonth","getDate","daysFromCurrent","selDate","notAfter","comparison","NotAfter","toDateString","defaultSchemaInterface","defaultIsEmpty","textValue","defaultTextValue","DateTime","toLocaleDateString","toString","AppendAdornmentPriority","WrapAdornmentPriority","LabelType","useControlRenderer","renderer","_options$useDataHook","_options$schemaInterf","_options$useEvalExpre","dataProps","useDataHook","defaultDataProps","useExpr","lookupSchemaField","useDefaultValue","useIsVisible","useIsReadonly","useIsDisabled","useAllowedOptions","useCustomStyle","Style","useLayoutStyle","LayoutStyle","useDynamicDisplay","useValidation","Component","parentControl","stopTracking","useComponentTracking","_c$children$map","_definition$adornment","_definition$adornment2","dataContext","readonlyControl","disabledControl","visibleControl","displayControl","customStyle","layoutStyle","visible","visibility","showing","setValue","allowedOptions","defaultValueControl","_getControlData","getControlData","childContext","isNull","dontClearHidden","_ref2","vc","cd","pn","dontClear","clearHidden","myOptions","_visibility$fields","disabled","childRenderers","useEffect","React","createElement","Fragment","adornments","renderAdornment","adornment","labelAndChildren","renderControlLayout","childCount","renderChild","k","props","RenderChild","key","createDataProps","formOptions","style","renderedControl","renderLayout","className","renderVisibility","parentContext","_parentContext$groupC","_parentContext$groupC2","childControl","newControl","groupProps","_ref3","_field$options$length","_field$options","_allowedOptions$value","_definition$renderOpt","elementRenderer","_objectWithoutPropertiesLoose","_excluded","fieldOptions","allowed","id","uniqueId","toArrayProps","defaultArrayProps","arrayControl","renderElement","_arrayControl$element","noun","elems","elementCount","addAction","addElement","elementKey","removeAction","removeElement","_ref4","childRenderer","dataOptions","renderData","_c$groupOptions2","_c$groupOptions","processLayout","renderGroup","label","hide","_c$title","renderAction","_c$displayData","renderDisplay","elementControl","element","renderLayoutParts","labelText","controlTitle","Control","forId","errorControl","appendMarkup","markup","layout","wrapMarkup","wrap","layoutKeyForPlacement","pos","ControlEnd","ControlStart","LabelStart","LabelEnd","appendMarkupAt","wrapMarkupAt","_props$processLayout","_ref5","sort","b","priority","apply","renderLabel","labelStart","labelEnd","createFormRenderer","customRenderers","defaultRenderers","_customRenderers$find","createClassStyledRenderers","dataRegistrations","isDataRegistration","groupRegistrations","isGroupRegistration","adornmentRegistrations","isAdornmentRegistration","displayRegistrations","isDisplayRegistration","labelRenderers","isLabelRegistration","arrayRenderers","isArrayRegistration","actionRenderers","isActionRegistration","layoutRenderers","isLayoutRegistration","visibilityRenderer","isVisibilityRegistration","formRenderers","renderArray","render","_layoutRenderers$find","match","_adornmentRegistratio","isOneOf","adornmentType","_arrayRenderers$","array","_labelRenderers$find","labelType","_dataRegistrations$fi","renderType","_x$collection","_field$collection","_x$options","schemaType","l","_groupRegistrations$f","_actionRenderers$find","actionType","_displayRegistrations","createDefaultActionRenderer","createDefaultLabelRenderer","requiredElement","_options","groupLabelClass","htmlFor","createDefaultArrayRenderer","removableClass","childClass","removableChildClass","removeActionClass","addActionClass","showRemove","from","_","createDefaultGroupRenderer","_ref5$gridStyles","gridStyles","defaultGridStyles","_ref5$defaultGridColu","defaultGridColumns","gridClassName","standardClassName","flexClassName","defaultFlexGap","_ref6","_ref6$columns","columns","gridTemplateColumns","flexStyles","gap","flexDirection","direction","_ref7","gcn","cp","createDefaultDisplayRenderer","DefaultDisplay","_ref8","_effect","_useComponentTracking","_display$value","Icon","iconClass","textClassName","htmlClassName","dangerouslySetInnerHTML","__html","DefaultBoolOptions","name","createDefaultDataRenderer","_options$selectOption","selectRenderer","createSelectRenderer","selectOptions","_optionRenderer$boole","optionRenderer","booleanOptions","inputClass","displayOnlyClass","createDataRenderer","renderers","fieldType","p","Any","DefaultDisplayOnly","isBool","Dropdown","Checkbox","Fcheckbox","ControlInput","readOnly","convert","createInputConversion","_ref9","_effect2","_ref10","_ref11","_effect3","_excluded2","_formControlProps","formControlProps","errorText","onChange","inputProps","_excluded3","target","createDefaultAdornmentRenderer","_ref12","rl","isIconAdornment","_adornment$placement","placement","createDefaultRenderers","createDefaultLayoutRenderer","createDefaultVisibilityRenderer","createLayoutRenderer","DefaultLayout","divRef","meta","scrollElement","createArrayRenderer","createLabelRenderer","createVisibilityRenderer","createAdornmentRenderer","asArray","SelectDataRenderer","state","requiredText","createSelectConversion","_ref13","_effect4","_ref13$emptyText","_ref13$requiredText","_excluded4","_useState","useState","showEmpty","optionStringMap","ft","Double","_a$toString","_a$toString2","parseInt","parseFloat","DefaultVisibility","_ref14","_effect5","_ref15","_effect6","errorClass","_ref15$layout","controlEnd","controlStart","ec","touched","defaultTailwindTheme"],"mappings":"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"}
|
package/lib/types.d.ts
CHANGED
|
@@ -72,7 +72,8 @@ export declare enum DynamicPropertyType {
|
|
|
72
72
|
Disabled = "Disabled",
|
|
73
73
|
Display = "Display",
|
|
74
74
|
Style = "Style",
|
|
75
|
-
LayoutStyle = "LayoutStyle"
|
|
75
|
+
LayoutStyle = "LayoutStyle",
|
|
76
|
+
AllowedOptions = "AllowedOptions"
|
|
76
77
|
}
|
|
77
78
|
export interface EntityExpression {
|
|
78
79
|
type: string;
|
package/package.json
CHANGED
package/src/controlRender.tsx
CHANGED
|
@@ -44,6 +44,7 @@ import {
|
|
|
44
44
|
import { dataControl } from "./controlBuilder";
|
|
45
45
|
import {
|
|
46
46
|
defaultUseEvalExpressionHook,
|
|
47
|
+
useEvalAllowedOptionsHook,
|
|
47
48
|
useEvalDefaultValueHook,
|
|
48
49
|
useEvalDisabledHook,
|
|
49
50
|
useEvalDisplayHook,
|
|
@@ -208,6 +209,7 @@ export interface DataControlProps {
|
|
|
208
209
|
style: React.CSSProperties | undefined;
|
|
209
210
|
childCount: number;
|
|
210
211
|
renderChild: ChildRenderer;
|
|
212
|
+
allowedOptions?: Control<any[] | undefined>;
|
|
211
213
|
elementRenderer?: (elemProps: Control<any>) => ReactNode;
|
|
212
214
|
}
|
|
213
215
|
export type CreateDataProps = (
|
|
@@ -239,6 +241,7 @@ export function useControlRenderer(
|
|
|
239
241
|
const useIsVisible = useEvalVisibilityHook(useExpr, definition, schemaField);
|
|
240
242
|
const useIsReadonly = useEvalReadonlyHook(useExpr, definition);
|
|
241
243
|
const useIsDisabled = useEvalDisabledHook(useExpr, definition);
|
|
244
|
+
const useAllowedOptions = useEvalAllowedOptionsHook(useExpr, definition);
|
|
242
245
|
const useCustomStyle = useEvalStyleHook(
|
|
243
246
|
useExpr,
|
|
244
247
|
DynamicPropertyType.Style,
|
|
@@ -289,6 +292,7 @@ export function useControlRenderer(
|
|
|
289
292
|
},
|
|
290
293
|
);
|
|
291
294
|
|
|
295
|
+
const allowedOptions = useAllowedOptions(dataContext);
|
|
292
296
|
const defaultValueControl = useDefaultValue(dataContext);
|
|
293
297
|
const [control, childContext] = getControlData(
|
|
294
298
|
schemaField,
|
|
@@ -353,6 +357,7 @@ export function useControlRenderer(
|
|
|
353
357
|
schemaField,
|
|
354
358
|
displayControl,
|
|
355
359
|
style: customStyle,
|
|
360
|
+
allowedOptions,
|
|
356
361
|
});
|
|
357
362
|
const renderedControl = renderer.renderLayout({
|
|
358
363
|
...labelAndChildren,
|
|
@@ -374,6 +379,7 @@ export function useControlRenderer(
|
|
|
374
379
|
useIsDisabled,
|
|
375
380
|
useCustomStyle,
|
|
376
381
|
useLayoutStyle,
|
|
382
|
+
useAllowedOptions,
|
|
377
383
|
useDynamicDisplay,
|
|
378
384
|
useValidation,
|
|
379
385
|
renderer,
|
|
@@ -390,8 +396,8 @@ export function lookupSchemaField(
|
|
|
390
396
|
const fieldName = isGroupControlsDefinition(c)
|
|
391
397
|
? c.compoundField
|
|
392
398
|
: isDataControlDefinition(c)
|
|
393
|
-
|
|
394
|
-
|
|
399
|
+
? c.field
|
|
400
|
+
: undefined;
|
|
395
401
|
return fieldName ? findField(fields, fieldName) : undefined;
|
|
396
402
|
}
|
|
397
403
|
export function getControlData(
|
|
@@ -437,15 +443,22 @@ export function defaultDataProps({
|
|
|
437
443
|
options,
|
|
438
444
|
elementRenderer,
|
|
439
445
|
style,
|
|
446
|
+
allowedOptions,
|
|
440
447
|
...props
|
|
441
448
|
}: DataControlProps): DataRendererProps {
|
|
442
449
|
const className = cc(definition.styleClass);
|
|
443
450
|
const required = !!definition.required;
|
|
451
|
+
const fieldOptions =
|
|
452
|
+
(field.options?.length ?? 0) === 0 ? null : field.options;
|
|
453
|
+
const allowed = allowedOptions?.value ?? [];
|
|
444
454
|
return {
|
|
445
455
|
control,
|
|
446
456
|
field,
|
|
447
457
|
id: "c" + control.uniqueId,
|
|
448
|
-
options:
|
|
458
|
+
options:
|
|
459
|
+
fieldOptions && allowed.length > 0
|
|
460
|
+
? fieldOptions.filter((x) => allowed.includes(x.value))
|
|
461
|
+
: fieldOptions,
|
|
449
462
|
readonly: !!options.readonly,
|
|
450
463
|
renderOptions: definition.renderOptions ?? { type: "Standard" },
|
|
451
464
|
required,
|
|
@@ -516,6 +529,7 @@ export interface RenderControlProps {
|
|
|
516
529
|
schemaField?: SchemaField;
|
|
517
530
|
displayControl?: Control<string | undefined>;
|
|
518
531
|
style?: React.CSSProperties;
|
|
532
|
+
allowedOptions?: Control<any[] | undefined>;
|
|
519
533
|
}
|
|
520
534
|
export function renderControlLayout({
|
|
521
535
|
definition: c,
|
|
@@ -529,6 +543,7 @@ export function renderControlLayout({
|
|
|
529
543
|
createDataProps: dataProps,
|
|
530
544
|
displayControl,
|
|
531
545
|
style,
|
|
546
|
+
allowedOptions,
|
|
532
547
|
}: RenderControlProps): ControlLayoutProps {
|
|
533
548
|
if (isDataControlDefinition(c)) {
|
|
534
549
|
return renderData(c);
|
|
@@ -593,6 +608,7 @@ export function renderControlLayout({
|
|
|
593
608
|
options: dataOptions,
|
|
594
609
|
style,
|
|
595
610
|
childCount,
|
|
611
|
+
allowedOptions,
|
|
596
612
|
renderChild: childRenderer,
|
|
597
613
|
elementRenderer:
|
|
598
614
|
elementControl == null && schemaField.collection
|
package/src/hooks.tsx
CHANGED
|
@@ -105,6 +105,24 @@ export function useEvalStyleHook(
|
|
|
105
105
|
);
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
+
export function useEvalAllowedOptionsHook(
|
|
109
|
+
useEvalExpressionHook: UseEvalExpressionHook,
|
|
110
|
+
definition: ControlDefinition,
|
|
111
|
+
): EvalExpressionHook<any[]> {
|
|
112
|
+
const dynamicAllowed = useEvalDynamicHook(
|
|
113
|
+
definition,
|
|
114
|
+
DynamicPropertyType.AllowedOptions,
|
|
115
|
+
useEvalExpressionHook,
|
|
116
|
+
);
|
|
117
|
+
return useCallback(
|
|
118
|
+
(ctx) => {
|
|
119
|
+
if (dynamicAllowed) return dynamicAllowed(ctx);
|
|
120
|
+
return useControl([]);
|
|
121
|
+
},
|
|
122
|
+
[dynamicAllowed],
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
|
|
108
126
|
export function useEvalDisabledHook(
|
|
109
127
|
useEvalExpressionHook: UseEvalExpressionHook,
|
|
110
128
|
definition: ControlDefinition,
|