@react-typed-forms/schemas 1.0.0-dev.15 → 1.0.0-dev.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,100 +1,100 @@
1
- import { ActionControlDefinition, CompoundField, ControlDefinition, DataControlDefinition, DisplayControlDefinition, EntityExpression, FieldOption, GroupedControlsDefinition, SchemaField } from "./types";
2
- import React, { Key, ReactElement, ReactNode } from "react";
3
- import { Control } from "@react-typed-forms/core";
4
- export type ExpressionHook = (expr: EntityExpression, formState: FormEditState) => any;
5
- export interface FormEditHooks {
6
- useDataProperties(formState: FormEditState, definition: DataControlDefinition, field: SchemaField): DataControlProperties;
7
- useGroupProperties(formState: FormEditState, definition: GroupedControlsDefinition, currentHooks: FormEditHooks): GroupControlProperties;
8
- useDisplayProperties(formState: FormEditState, definition: DisplayControlDefinition): DisplayControlProperties;
9
- useActionProperties(formState: FormEditState, definition: ActionControlDefinition): ActionControlProperties;
10
- useExpression: ExpressionHook;
11
- }
12
- export interface DataControlProperties {
13
- control: Control<any>;
14
- visible: boolean;
15
- readonly: boolean;
16
- defaultValue: any;
17
- required: boolean;
18
- options: FieldOption[] | undefined | null;
19
- customRender?: (props: DataRendererProps) => ReactElement;
20
- }
21
- export interface GroupControlProperties {
22
- visible: boolean;
23
- hooks: FormEditHooks;
24
- }
25
- export interface DisplayControlProperties {
26
- visible: boolean;
27
- }
28
- export interface ActionControlProperties {
29
- visible: boolean;
30
- onClick: () => void;
31
- }
32
- export interface ControlData {
33
- [field: string]: any;
34
- }
35
- export interface FormEditState {
36
- fields: SchemaField[];
37
- data: Control<ControlData>;
38
- readonly?: boolean;
39
- }
40
- export interface FormRendererComponents {
41
- renderData: (props: DataRendererProps, control: Control<any>, element: boolean, renderers: FormRendererComponents) => ReactElement;
42
- renderCompound: (props: CompoundGroupRendererProps, control: Control<any>, renderers: FormRendererComponents) => ReactElement;
43
- renderGroup: (props: GroupRendererProps) => ReactElement;
44
- renderDisplay: (props: DisplayRendererProps) => ReactElement;
45
- renderAction: (props: ActionRendererProps) => ReactElement;
46
- }
47
- export declare function FormRendererProvider({ value, children, }: {
48
- value: FormRendererComponents;
49
- children: ReactNode;
50
- }): React.JSX.Element;
51
- export declare function useFormRendererComponents(): FormRendererComponents;
52
- export interface DisplayRendererProps {
53
- definition: DisplayControlDefinition;
54
- properties: DisplayControlProperties;
55
- }
56
- export interface ActionRendererProps {
57
- definition: ActionControlDefinition;
58
- properties: ActionControlProperties;
59
- }
60
- export interface DataRendererProps {
61
- definition: DataControlDefinition;
62
- properties: DataControlProperties;
63
- field: SchemaField;
64
- formEditState?: FormEditState;
65
- }
66
- export interface GroupRendererProps {
67
- definition: Omit<GroupedControlsDefinition, "children">;
68
- properties: GroupControlProperties;
69
- childCount: number;
70
- renderChild: (child: number, wrapChild: (key: Key, childElem: ReactElement) => ReactElement) => ReactElement;
71
- }
72
- export interface CompoundGroupRendererProps {
73
- definition: GroupedControlsDefinition;
74
- field: CompoundField;
75
- properties: GroupControlProperties;
76
- renderChild: (key: Key, control: ControlDefinition, data: Control<{
77
- [field: string]: any;
78
- }>, wrapChild: (key: Key, childElem: ReactElement) => ReactElement) => ReactElement;
79
- }
80
- export declare function isScalarField(sf: SchemaField): sf is SchemaField;
81
- export declare function isCompoundField(sf: SchemaField): sf is CompoundField;
82
- export type AnySchemaFields = SchemaField | (Omit<CompoundField, "children"> & {
83
- children: AnySchemaFields[];
84
- });
85
- export declare function applyDefaultValues(v: {
86
- [k: string]: any;
87
- } | undefined, fields: SchemaField[]): any;
88
- export declare function applyDefaultForField(v: any, field: SchemaField, parent: SchemaField[], notElement?: boolean): any;
89
- export declare function defaultValueForFields(fields: SchemaField[]): any;
90
- export declare function defaultValueForField(sf: SchemaField): any;
91
- export declare function elementValueForField(sf: SchemaField): any;
92
- export declare function findScalarField(fields: SchemaField[], field: string): SchemaField | undefined;
93
- export declare function findCompoundField(fields: SchemaField[], field: string): CompoundField | undefined;
94
- export declare function findField(fields: SchemaField[], field: string): SchemaField | undefined;
95
- export declare function controlTitle(title: string | undefined | null, field: SchemaField): string;
96
- export declare function renderControl<S extends ControlDefinition>(definition: S, formState: FormEditState, hooks: FormEditHooks, key: Key, wrapChild?: (key: Key, db: ReactElement) => ReactElement): ReactElement;
97
- export declare function controlForField(field: string, formState: FormEditState): Control<any>;
98
- export declare function fieldForControl(c: ControlDefinition): string | null | undefined;
99
- export declare function isDataControl(c: ControlDefinition): c is DataControlDefinition;
100
- export declare function isGroupControl(c: ControlDefinition): c is GroupedControlsDefinition;
1
+ import { ActionControlDefinition, CompoundField, ControlDefinition, DataControlDefinition, DisplayControlDefinition, EntityExpression, FieldOption, GroupedControlsDefinition, SchemaField } from "./types";
2
+ import React, { Key, ReactElement, ReactNode } from "react";
3
+ import { Control } from "@react-typed-forms/core";
4
+ export type ExpressionHook = (expr: EntityExpression, formState: FormEditState) => any;
5
+ export interface FormEditHooks {
6
+ useDataProperties(formState: FormEditState, definition: DataControlDefinition, field: SchemaField): DataControlProperties;
7
+ useGroupProperties(formState: FormEditState, definition: GroupedControlsDefinition, currentHooks: FormEditHooks): GroupControlProperties;
8
+ useDisplayProperties(formState: FormEditState, definition: DisplayControlDefinition): DisplayControlProperties;
9
+ useActionProperties(formState: FormEditState, definition: ActionControlDefinition): ActionControlProperties;
10
+ useExpression: ExpressionHook;
11
+ }
12
+ export interface DataControlProperties {
13
+ control: Control<any>;
14
+ visible: boolean;
15
+ readonly: boolean;
16
+ defaultValue: any;
17
+ required: boolean;
18
+ options: FieldOption[] | undefined | null;
19
+ customRender?: (props: DataRendererProps) => ReactElement;
20
+ }
21
+ export interface GroupControlProperties {
22
+ visible: boolean;
23
+ hooks: FormEditHooks;
24
+ }
25
+ export interface DisplayControlProperties {
26
+ visible: boolean;
27
+ }
28
+ export interface ActionControlProperties {
29
+ visible: boolean;
30
+ onClick: () => void;
31
+ }
32
+ export interface ControlData {
33
+ [field: string]: any;
34
+ }
35
+ export interface FormEditState {
36
+ fields: SchemaField[];
37
+ data: Control<ControlData>;
38
+ readonly?: boolean;
39
+ }
40
+ export interface FormRendererComponents {
41
+ renderData: (props: DataRendererProps, control: Control<any>, element: boolean, renderers: FormRendererComponents) => ReactElement;
42
+ renderCompound: (props: CompoundGroupRendererProps, control: Control<any>, renderers: FormRendererComponents) => ReactElement;
43
+ renderGroup: (props: GroupRendererProps) => ReactElement;
44
+ renderDisplay: (props: DisplayRendererProps) => ReactElement;
45
+ renderAction: (props: ActionRendererProps) => ReactElement;
46
+ }
47
+ export declare function FormRendererProvider({ value, children, }: {
48
+ value: FormRendererComponents;
49
+ children: ReactNode;
50
+ }): React.JSX.Element;
51
+ export declare function useFormRendererComponents(): FormRendererComponents;
52
+ export interface DisplayRendererProps {
53
+ definition: DisplayControlDefinition;
54
+ properties: DisplayControlProperties;
55
+ }
56
+ export interface ActionRendererProps {
57
+ definition: ActionControlDefinition;
58
+ properties: ActionControlProperties;
59
+ }
60
+ export interface DataRendererProps {
61
+ definition: DataControlDefinition;
62
+ properties: DataControlProperties;
63
+ field: SchemaField;
64
+ formEditState?: FormEditState;
65
+ }
66
+ export interface GroupRendererProps {
67
+ definition: Omit<GroupedControlsDefinition, "children">;
68
+ properties: GroupControlProperties;
69
+ childCount: number;
70
+ renderChild: (child: number, wrapChild: (key: Key, childElem: ReactElement) => ReactElement) => ReactElement;
71
+ }
72
+ export interface CompoundGroupRendererProps {
73
+ definition: GroupedControlsDefinition;
74
+ field: CompoundField;
75
+ properties: GroupControlProperties;
76
+ renderChild: (key: Key, control: ControlDefinition, data: Control<{
77
+ [field: string]: any;
78
+ }>, wrapChild: (key: Key, childElem: ReactElement) => ReactElement) => ReactElement;
79
+ }
80
+ export declare function isScalarField(sf: SchemaField): sf is SchemaField;
81
+ export declare function isCompoundField(sf: SchemaField): sf is CompoundField;
82
+ export type AnySchemaFields = SchemaField | (Omit<CompoundField, "children"> & {
83
+ children: AnySchemaFields[];
84
+ });
85
+ export declare function applyDefaultValues(v: {
86
+ [k: string]: any;
87
+ } | undefined, fields: SchemaField[]): any;
88
+ export declare function applyDefaultForField(v: any, field: SchemaField, parent: SchemaField[], notElement?: boolean): any;
89
+ export declare function defaultValueForFields(fields: SchemaField[]): any;
90
+ export declare function defaultValueForField(sf: SchemaField): any;
91
+ export declare function elementValueForField(sf: SchemaField): any;
92
+ export declare function findScalarField(fields: SchemaField[], field: string): SchemaField | undefined;
93
+ export declare function findCompoundField(fields: SchemaField[], field: string): CompoundField | undefined;
94
+ export declare function findField(fields: SchemaField[], field: string): SchemaField | undefined;
95
+ export declare function controlTitle(title: string | undefined | null, field: SchemaField): string;
96
+ export declare function renderControl<S extends ControlDefinition>(definition: S, formState: FormEditState, hooks: FormEditHooks, key: Key, wrapChild?: (key: Key, db: ReactElement) => ReactElement): ReactElement;
97
+ export declare function controlForField(field: string, formState: FormEditState): Control<any>;
98
+ export declare function fieldForControl(c: ControlDefinition): string | null | undefined;
99
+ export declare function isDataControl(c: ControlDefinition): c is DataControlDefinition;
100
+ export declare function isGroupControl(c: ControlDefinition): c is GroupedControlsDefinition;
package/lib/hooks.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { ControlDefinition, DataControlDefinition, FieldOption, SchemaField } from "./types";
2
- import { DataControlProperties, ExpressionHook, FormEditHooks, FormEditState } from "./controlRender";
3
- import { Control } from "@react-typed-forms/core";
4
- export declare function useDefaultValue(definition: DataControlDefinition, field: SchemaField, formState: FormEditState, useExpression: ExpressionHook): any;
5
- export declare function useIsControlVisible(definition: ControlDefinition, formState: FormEditState, useExpression: ExpressionHook): boolean;
6
- export declare function getDefaultScalarControlProperties(definition: DataControlDefinition, field: SchemaField, visible: boolean, defaultValue: any, control: Control<any>, readonly?: boolean): DataControlProperties;
7
- export declare function getOptionsForScalarField(field: SchemaField): FieldOption[] | undefined | null;
8
- export declare const defaultExpressionHook: ExpressionHook;
9
- export declare function createFormEditHooks(useExpression: ExpressionHook): FormEditHooks;
1
+ import { ControlDefinition, DataControlDefinition, FieldOption, SchemaField } from "./types";
2
+ import { DataControlProperties, ExpressionHook, FormEditHooks, FormEditState } from "./controlRender";
3
+ import { Control } from "@react-typed-forms/core";
4
+ export declare function useDefaultValue(definition: DataControlDefinition, field: SchemaField, formState: FormEditState, useExpression: ExpressionHook): any;
5
+ export declare function useIsControlVisible(definition: ControlDefinition, formState: FormEditState, useExpression: ExpressionHook): boolean;
6
+ export declare function getDefaultScalarControlProperties(definition: DataControlDefinition, field: SchemaField, visible: boolean, defaultValue: any, control: Control<any>, readonly?: boolean): DataControlProperties;
7
+ export declare function getOptionsForScalarField(field: SchemaField): FieldOption[] | undefined | null;
8
+ export declare const defaultExpressionHook: ExpressionHook;
9
+ export declare function createFormEditHooks(useExpression: ExpressionHook): FormEditHooks;
package/lib/index.d.ts CHANGED
@@ -1,7 +1,5 @@
1
- import { SchemaField } from "./types";
2
- export * from "./types";
3
- export * from "./schemaBuilder";
4
- export * from "./controlRender";
5
- export * from "./hooks";
6
- export declare function fieldHasTag(field: SchemaField, tag: string): boolean;
7
- export declare function fieldDisplayName(field: SchemaField): string;
1
+ export * from "./types";
2
+ export * from "./schemaBuilder";
3
+ export * from "./controlRender";
4
+ export * from "./hooks";
5
+ export * from "./util";