@ereo/forms 0.1.23
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/dist/a11y.d.ts +52 -0
- package/dist/a11y.d.ts.map +1 -0
- package/dist/accessibility.d.ts +152 -0
- package/dist/accessibility.d.ts.map +1 -0
- package/dist/action-integration.d.ts +104 -0
- package/dist/action-integration.d.ts.map +1 -0
- package/dist/action.d.ts +33 -0
- package/dist/action.d.ts.map +1 -0
- package/dist/adapters.d.ts +25 -0
- package/dist/adapters.d.ts.map +1 -0
- package/dist/array-field.d.ts +49 -0
- package/dist/array-field.d.ts.map +1 -0
- package/dist/components.d.ts +8 -0
- package/dist/components.d.ts.map +1 -0
- package/dist/composition.d.ts +4 -0
- package/dist/composition.d.ts.map +1 -0
- package/dist/context.d.ts +9 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/field.d.ts +88 -0
- package/dist/field.d.ts.map +1 -0
- package/dist/form.d.ts +59 -0
- package/dist/form.d.ts.map +1 -0
- package/dist/hooks.d.ts +13 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2945 -0
- package/dist/proxy.d.ts +3 -0
- package/dist/proxy.d.ts.map +1 -0
- package/dist/schema.d.ts +31 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/store.d.ts +69 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/types.d.ts +243 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils.d.ts +8 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/validation-engine.d.ts +33 -0
- package/dist/validation-engine.d.ts.map +1 -0
- package/dist/validation.d.ts +241 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validators.d.ts +51 -0
- package/dist/validators.d.ts.map +1 -0
- package/dist/wizard.d.ts +52 -0
- package/dist/wizard.d.ts.map +1 -0
- package/package.json +60 -0
package/dist/proxy.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAIlD,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7D,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC5B,QAAQ,SAAK,EACb,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAC5B,CAAC,CA2EH"}
|
package/dist/schema.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { ValidationSchema, ValidatorFunction } from './types';
|
|
2
|
+
export declare function zodAdapter<T>(zodSchema: {
|
|
3
|
+
parse: (data: unknown) => T;
|
|
4
|
+
safeParse: (data: unknown) => any;
|
|
5
|
+
}): ValidationSchema<unknown, T>;
|
|
6
|
+
export declare function valibotAdapter<T>(schema: unknown, parse: (schema: unknown, data: unknown) => T, safeParse: (schema: unknown, data: unknown) => any): ValidationSchema<unknown, T>;
|
|
7
|
+
export declare function createSchemaValidator<T>(opts: {
|
|
8
|
+
validate: (data: unknown) => {
|
|
9
|
+
success: true;
|
|
10
|
+
data: T;
|
|
11
|
+
} | {
|
|
12
|
+
success: false;
|
|
13
|
+
errors: Record<string, string[]>;
|
|
14
|
+
};
|
|
15
|
+
}): ValidationSchema<unknown, T>;
|
|
16
|
+
declare const EREO_SCHEMA_MARKER: unique symbol;
|
|
17
|
+
interface EreoSchemaDefinition {
|
|
18
|
+
[key: string]: ValidatorFunction | ValidatorFunction[] | EreoSchemaDefinition;
|
|
19
|
+
}
|
|
20
|
+
interface EreoSchema<T> extends ValidationSchema<unknown, T> {
|
|
21
|
+
[EREO_SCHEMA_MARKER]: true;
|
|
22
|
+
}
|
|
23
|
+
export declare function ereoSchema<T>(definition: EreoSchemaDefinition): EreoSchema<T>;
|
|
24
|
+
export declare function isEreoSchema(value: unknown): value is EreoSchema<unknown>;
|
|
25
|
+
export interface FormDataToObjectOptions {
|
|
26
|
+
coerce?: boolean;
|
|
27
|
+
arrays?: string[];
|
|
28
|
+
}
|
|
29
|
+
export declare function formDataToObject<T extends Record<string, any> = Record<string, any>>(formData: FormData, opts?: FormDataToObjectOptions): T;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAA+B,MAAM,SAAS,CAAC;AAKhG,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE;IACvC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC,CAAC;IAC5B,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,GAAG,CAAC;CACnC,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAmB/B;AAID,wBAAgB,cAAc,CAAC,CAAC,EAC9B,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,KAAK,CAAC,EAC5C,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,KAAK,GAAG,GACjD,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAmB9B;AAID,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,IAAI,EAAE;IAC7C,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;KAAE,CAAC;CAChH,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAyB/B;AAID,QAAA,MAAM,kBAAkB,eAAwB,CAAC;AAEjD,UAAU,oBAAoB;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,iBAAiB,EAAE,GAAG,oBAAoB,CAAC;CAC/E;AAED,UAAU,UAAU,CAAC,CAAC,CAAE,SAAQ,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC;CAC5B;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,oBAAoB,GAAG,UAAU,CAAC,CAAC,CAAC,CA2B7E;AA+CD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC,OAAO,CAAC,CAMzE;AAID,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAClF,QAAQ,EAAE,QAAQ,EAClB,IAAI,CAAC,EAAE,uBAAuB,GAC7B,CAAC,CAoBH"}
|
package/dist/store.d.ts
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Signal } from '@ereo/state';
|
|
2
|
+
import type { FormConfig, FormStoreInterface, FormSubmitState, FieldOptions, FieldRegistration, SubmitHandler, WatchCallback, DeepPartial } from './types';
|
|
3
|
+
export declare class FormStore<T extends Record<string, any> = Record<string, any>> implements FormStoreInterface<T> {
|
|
4
|
+
readonly config: FormConfig<T>;
|
|
5
|
+
private _signals;
|
|
6
|
+
private _errorSignals;
|
|
7
|
+
private _formErrors;
|
|
8
|
+
private _baseline;
|
|
9
|
+
private _touchedSet;
|
|
10
|
+
private _dirtySet;
|
|
11
|
+
private _fieldRefs;
|
|
12
|
+
private _fieldOptions;
|
|
13
|
+
private _subscribers;
|
|
14
|
+
private _watchers;
|
|
15
|
+
private _submitAbort;
|
|
16
|
+
private _submitGeneration;
|
|
17
|
+
private _validationEngine;
|
|
18
|
+
readonly isValid: Signal<boolean>;
|
|
19
|
+
readonly isDirty: Signal<boolean>;
|
|
20
|
+
readonly isSubmitting: Signal<boolean>;
|
|
21
|
+
readonly submitState: Signal<FormSubmitState>;
|
|
22
|
+
readonly submitCount: Signal<number>;
|
|
23
|
+
readonly values: T;
|
|
24
|
+
constructor(config: FormConfig<T>);
|
|
25
|
+
getSignal(path: string): Signal<unknown>;
|
|
26
|
+
getErrors(path: string): Signal<string[]>;
|
|
27
|
+
getFormErrors(): Signal<string[]>;
|
|
28
|
+
getValue<P extends string>(path: P): unknown;
|
|
29
|
+
setValue<P extends string>(path: P, value: unknown): void;
|
|
30
|
+
setValues(partial: DeepPartial<T>): void;
|
|
31
|
+
getValues(): T;
|
|
32
|
+
private _syncChildSignals;
|
|
33
|
+
private _updateParentSignals;
|
|
34
|
+
private _reconstructValue;
|
|
35
|
+
setErrors(path: string, errors: string[]): void;
|
|
36
|
+
clearErrors(path?: string): void;
|
|
37
|
+
setFormErrors(errors: string[]): void;
|
|
38
|
+
private _updateIsValid;
|
|
39
|
+
getTouched(path: string): boolean;
|
|
40
|
+
setTouched(path: string, touched?: boolean): void;
|
|
41
|
+
triggerBlurValidation(path: string): void;
|
|
42
|
+
getDirty(path: string): boolean;
|
|
43
|
+
register<V = unknown>(path: string, options?: FieldOptions<V>): FieldRegistration<V>;
|
|
44
|
+
unregister(path: string): void;
|
|
45
|
+
handleSubmit(e?: Event): Promise<void>;
|
|
46
|
+
submitWith(handler: SubmitHandler<T>, _submitId?: string): Promise<void>;
|
|
47
|
+
validate(): Promise<boolean>;
|
|
48
|
+
reset(): void;
|
|
49
|
+
resetTo(values: T): void;
|
|
50
|
+
setBaseline(values: T): void;
|
|
51
|
+
getChanges(): DeepPartial<T>;
|
|
52
|
+
watch(path: string, callback: WatchCallback): () => void;
|
|
53
|
+
watchFields(paths: string[], callback: WatchCallback): () => void;
|
|
54
|
+
subscribe(callback: () => void): () => void;
|
|
55
|
+
toJSON(): T;
|
|
56
|
+
toFormData(): FormData;
|
|
57
|
+
getFieldRef(path: string): HTMLElement | null;
|
|
58
|
+
setFieldRef(path: string, el: HTMLElement | null): void;
|
|
59
|
+
getFieldOptions(path: string): FieldOptions<any> | undefined;
|
|
60
|
+
getBaseline(): T;
|
|
61
|
+
getFieldValidating(path: string): Signal<boolean>;
|
|
62
|
+
dispose(): void;
|
|
63
|
+
_getCurrentValues(): T;
|
|
64
|
+
private _buildFormData;
|
|
65
|
+
private _notifyWatchers;
|
|
66
|
+
private _notifySubscribers;
|
|
67
|
+
}
|
|
68
|
+
export declare function createFormStore<T extends Record<string, any>>(config: FormConfig<T>): FormStore<T>;
|
|
69
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import type { Signal } from '@ereo/state';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
export type DeepPartial<T> = T extends object ? {
|
|
4
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
5
|
+
} : T;
|
|
6
|
+
type Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
|
7
|
+
export type PathsOf<T, D extends number = 5> = [D] extends [never] ? never : T extends readonly (infer U)[] ? `${number}` | `${number}.${PathsOf<U, Prev[D]>}` : T extends object ? {
|
|
8
|
+
[K in keyof T & string]: T[K] extends object ? K | `${K}.${PathsOf<T[K], Prev[D]>}` : K;
|
|
9
|
+
}[keyof T & string] : never;
|
|
10
|
+
export type PathValue<T, P extends string> = P extends `${infer K}.${infer Rest}` ? K extends keyof T ? PathValue<T[K], Rest> : K extends `${number}` ? T extends readonly (infer U)[] ? PathValue<U, Rest> : never : never : P extends keyof T ? T[P] : P extends `${number}` ? T extends readonly (infer U)[] ? U : never : never;
|
|
11
|
+
export type FormPath<T> = PathsOf<T> & string;
|
|
12
|
+
export type ValidateOn = 'change' | 'blur' | 'submit';
|
|
13
|
+
export interface ValidatorFunction<T = unknown> {
|
|
14
|
+
(value: T, context?: CrossFieldValidationContext<any>): string | undefined | Promise<string | undefined>;
|
|
15
|
+
_isAsync?: boolean;
|
|
16
|
+
_isRequired?: boolean;
|
|
17
|
+
_crossField?: boolean;
|
|
18
|
+
_debounce?: number;
|
|
19
|
+
}
|
|
20
|
+
export interface ValidationRule<T = unknown> {
|
|
21
|
+
validate: ValidatorFunction<T>;
|
|
22
|
+
message?: string;
|
|
23
|
+
validateOn?: ValidateOn;
|
|
24
|
+
}
|
|
25
|
+
export interface ValidationResult {
|
|
26
|
+
success: boolean;
|
|
27
|
+
errors?: Record<string, string[]>;
|
|
28
|
+
}
|
|
29
|
+
export interface ValidationSchema<TInput = unknown, TOutput = unknown> {
|
|
30
|
+
parse(data: TInput): TOutput;
|
|
31
|
+
safeParse?(data: TInput): {
|
|
32
|
+
success: true;
|
|
33
|
+
data: TOutput;
|
|
34
|
+
} | {
|
|
35
|
+
success: false;
|
|
36
|
+
error: {
|
|
37
|
+
issues: Array<{
|
|
38
|
+
path: (string | number)[];
|
|
39
|
+
message: string;
|
|
40
|
+
}>;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export interface CrossFieldValidationContext<T> {
|
|
45
|
+
getValue: <P extends string>(path: P) => unknown;
|
|
46
|
+
getValues: () => T;
|
|
47
|
+
signal?: AbortSignal;
|
|
48
|
+
}
|
|
49
|
+
export interface FieldState<V = unknown> {
|
|
50
|
+
value: V;
|
|
51
|
+
errors: string[];
|
|
52
|
+
touched: boolean;
|
|
53
|
+
dirty: boolean;
|
|
54
|
+
validating: boolean;
|
|
55
|
+
}
|
|
56
|
+
export interface FieldInputProps<V = unknown> {
|
|
57
|
+
name: string;
|
|
58
|
+
value: V;
|
|
59
|
+
onChange: (e: any) => void;
|
|
60
|
+
onBlur: (e: any) => void;
|
|
61
|
+
onFocus?: (e: any) => void;
|
|
62
|
+
ref?: (el: HTMLElement | null) => void;
|
|
63
|
+
'aria-invalid'?: boolean;
|
|
64
|
+
'aria-describedby'?: string;
|
|
65
|
+
'aria-required'?: boolean;
|
|
66
|
+
}
|
|
67
|
+
export interface FieldRegistration<V = unknown> {
|
|
68
|
+
inputProps: FieldInputProps<V>;
|
|
69
|
+
state: FieldState<V>;
|
|
70
|
+
setValue: (value: V) => void;
|
|
71
|
+
setError: (errors: string[]) => void;
|
|
72
|
+
clearErrors: () => void;
|
|
73
|
+
setTouched: (touched: boolean) => void;
|
|
74
|
+
reset: () => void;
|
|
75
|
+
}
|
|
76
|
+
export interface FieldHandle<V = unknown> {
|
|
77
|
+
inputProps: FieldInputProps<V>;
|
|
78
|
+
value: V;
|
|
79
|
+
errors: string[];
|
|
80
|
+
touched: boolean;
|
|
81
|
+
dirty: boolean;
|
|
82
|
+
validating: boolean;
|
|
83
|
+
setValue: (value: V) => void;
|
|
84
|
+
setError: (errors: string[]) => void;
|
|
85
|
+
clearErrors: () => void;
|
|
86
|
+
setTouched: (touched: boolean) => void;
|
|
87
|
+
reset: () => void;
|
|
88
|
+
}
|
|
89
|
+
export interface FieldOptions<V = unknown> {
|
|
90
|
+
validate?: ValidatorFunction<V> | ValidatorFunction<V>[];
|
|
91
|
+
validateOn?: ValidateOn;
|
|
92
|
+
defaultValue?: V;
|
|
93
|
+
transform?: (value: unknown) => V;
|
|
94
|
+
parse?: (event: any) => V;
|
|
95
|
+
}
|
|
96
|
+
export interface ArrayFieldItem<T> {
|
|
97
|
+
id: string;
|
|
98
|
+
value: T;
|
|
99
|
+
index: number;
|
|
100
|
+
}
|
|
101
|
+
export interface ArrayFieldHelpers<T> {
|
|
102
|
+
fields: ArrayFieldItem<T>[];
|
|
103
|
+
append: (value: T) => void;
|
|
104
|
+
prepend: (value: T) => void;
|
|
105
|
+
insert: (index: number, value: T) => void;
|
|
106
|
+
remove: (index: number) => void;
|
|
107
|
+
swap: (indexA: number, indexB: number) => void;
|
|
108
|
+
move: (from: number, to: number) => void;
|
|
109
|
+
replace: (index: number, value: T) => void;
|
|
110
|
+
replaceAll: (values: T[]) => void;
|
|
111
|
+
clone: (index: number) => void;
|
|
112
|
+
}
|
|
113
|
+
export type FormSubmitState = 'idle' | 'submitting' | 'success' | 'error';
|
|
114
|
+
export interface SubmitContext<T = unknown> {
|
|
115
|
+
values: T;
|
|
116
|
+
formData: FormData;
|
|
117
|
+
signal: AbortSignal;
|
|
118
|
+
}
|
|
119
|
+
export type SubmitHandler<T = unknown> = (values: T, context: SubmitContext<T>) => void | Promise<void>;
|
|
120
|
+
export interface FormConfig<T extends Record<string, any> = Record<string, any>> {
|
|
121
|
+
defaultValues: T;
|
|
122
|
+
onSubmit?: SubmitHandler<T>;
|
|
123
|
+
schema?: ValidationSchema<unknown, T>;
|
|
124
|
+
validators?: Partial<Record<FormPath<T>, ValidatorFunction<any> | ValidatorFunction<any>[]>>;
|
|
125
|
+
validateOn?: ValidateOn;
|
|
126
|
+
validateOnMount?: boolean;
|
|
127
|
+
resetOnSubmit?: boolean;
|
|
128
|
+
}
|
|
129
|
+
export interface FormState<T = unknown> {
|
|
130
|
+
values: T;
|
|
131
|
+
errors: Record<string, string[]>;
|
|
132
|
+
formErrors: string[];
|
|
133
|
+
touched: Set<string>;
|
|
134
|
+
dirty: Set<string>;
|
|
135
|
+
isValid: boolean;
|
|
136
|
+
isDirty: boolean;
|
|
137
|
+
isSubmitting: boolean;
|
|
138
|
+
submitState: FormSubmitState;
|
|
139
|
+
submitCount: number;
|
|
140
|
+
}
|
|
141
|
+
export type WatchCallback<V = unknown> = (value: V, path: string) => void;
|
|
142
|
+
export interface FormStoreInterface<T extends Record<string, any> = Record<string, any>> {
|
|
143
|
+
values: T;
|
|
144
|
+
config: FormConfig<T>;
|
|
145
|
+
getValue<P extends string>(path: P): unknown;
|
|
146
|
+
setValue<P extends string>(path: P, value: unknown): void;
|
|
147
|
+
setValues(partial: DeepPartial<T>): void;
|
|
148
|
+
getValues(): T;
|
|
149
|
+
getSignal(path: string): Signal<unknown>;
|
|
150
|
+
getErrors(path: string): Signal<string[]>;
|
|
151
|
+
setErrors(path: string, errors: string[]): void;
|
|
152
|
+
clearErrors(path?: string): void;
|
|
153
|
+
getFormErrors(): Signal<string[]>;
|
|
154
|
+
setFormErrors(errors: string[]): void;
|
|
155
|
+
getTouched(path: string): boolean;
|
|
156
|
+
setTouched(path: string, touched?: boolean): void;
|
|
157
|
+
getDirty(path: string): boolean;
|
|
158
|
+
triggerBlurValidation(path: string): void;
|
|
159
|
+
getFieldValidating(path: string): Signal<boolean>;
|
|
160
|
+
isValid: Signal<boolean>;
|
|
161
|
+
isDirty: Signal<boolean>;
|
|
162
|
+
isSubmitting: Signal<boolean>;
|
|
163
|
+
submitState: Signal<FormSubmitState>;
|
|
164
|
+
submitCount: Signal<number>;
|
|
165
|
+
register<V = unknown>(path: string, options?: FieldOptions<V>): FieldRegistration<V>;
|
|
166
|
+
unregister(path: string): void;
|
|
167
|
+
handleSubmit(e?: Event): Promise<void>;
|
|
168
|
+
submitWith(handler: SubmitHandler<T>, submitId?: string): Promise<void>;
|
|
169
|
+
validate(): Promise<boolean>;
|
|
170
|
+
reset(): void;
|
|
171
|
+
resetTo(values: T): void;
|
|
172
|
+
setBaseline(values: T): void;
|
|
173
|
+
getChanges(): DeepPartial<T>;
|
|
174
|
+
watch(path: string, callback: WatchCallback): () => void;
|
|
175
|
+
watchFields(paths: string[], callback: WatchCallback): () => void;
|
|
176
|
+
subscribe(callback: () => void): () => void;
|
|
177
|
+
toJSON(): T;
|
|
178
|
+
toFormData(): FormData;
|
|
179
|
+
dispose(): void;
|
|
180
|
+
}
|
|
181
|
+
export interface ActionResult<T = unknown> {
|
|
182
|
+
success: boolean;
|
|
183
|
+
data?: T;
|
|
184
|
+
errors?: Record<string, string[]>;
|
|
185
|
+
}
|
|
186
|
+
export interface FormActionConfig<T, TResult = unknown> {
|
|
187
|
+
schema?: ValidationSchema<unknown, T>;
|
|
188
|
+
onSubmit: (values: T) => Promise<ActionResult<TResult>>;
|
|
189
|
+
onSuccess?: (result: TResult) => void;
|
|
190
|
+
onError?: (errors: Record<string, string[]>) => void;
|
|
191
|
+
}
|
|
192
|
+
export interface WizardStepConfig {
|
|
193
|
+
id: string;
|
|
194
|
+
fields?: string[];
|
|
195
|
+
validate?: () => Promise<boolean> | boolean;
|
|
196
|
+
}
|
|
197
|
+
export interface WizardConfig<T extends Record<string, any> = Record<string, any>> {
|
|
198
|
+
steps: WizardStepConfig[];
|
|
199
|
+
form: FormConfig<T>;
|
|
200
|
+
persist?: 'localStorage' | 'sessionStorage' | false;
|
|
201
|
+
persistKey?: string;
|
|
202
|
+
onComplete?: SubmitHandler<T>;
|
|
203
|
+
}
|
|
204
|
+
export interface WizardState {
|
|
205
|
+
currentStep: number;
|
|
206
|
+
currentStepId: string;
|
|
207
|
+
completedSteps: Set<string>;
|
|
208
|
+
totalSteps: number;
|
|
209
|
+
isFirst: boolean;
|
|
210
|
+
isLast: boolean;
|
|
211
|
+
progress: number;
|
|
212
|
+
}
|
|
213
|
+
export interface FieldComponentProps<T extends Record<string, any>, K extends string = string> {
|
|
214
|
+
form?: FormStoreInterface<T>;
|
|
215
|
+
name: K;
|
|
216
|
+
type?: string;
|
|
217
|
+
label?: string;
|
|
218
|
+
placeholder?: string;
|
|
219
|
+
required?: boolean;
|
|
220
|
+
disabled?: boolean;
|
|
221
|
+
className?: string;
|
|
222
|
+
children?: (field: FieldHandle<PathValue<T, K>>) => ReactNode;
|
|
223
|
+
}
|
|
224
|
+
export interface TextareaFieldProps<T extends Record<string, any>, K extends string = string> extends FieldComponentProps<T, K> {
|
|
225
|
+
rows?: number;
|
|
226
|
+
cols?: number;
|
|
227
|
+
maxLength?: number;
|
|
228
|
+
}
|
|
229
|
+
export interface SelectFieldProps<T extends Record<string, any>, K extends string = string> extends FieldComponentProps<T, K> {
|
|
230
|
+
options: Array<{
|
|
231
|
+
value: string;
|
|
232
|
+
label: string;
|
|
233
|
+
disabled?: boolean;
|
|
234
|
+
}>;
|
|
235
|
+
multiple?: boolean;
|
|
236
|
+
}
|
|
237
|
+
export interface FieldArrayComponentProps<T extends Record<string, any>, K extends string = string> {
|
|
238
|
+
form?: FormStoreInterface<T>;
|
|
239
|
+
name: K;
|
|
240
|
+
children: (helpers: ArrayFieldHelpers<any>) => ReactNode;
|
|
241
|
+
}
|
|
242
|
+
export {};
|
|
243
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function parsePath(path: string): (string | number)[];
|
|
2
|
+
export declare function getPath(obj: any, path: string): unknown;
|
|
3
|
+
export declare function setPath<T>(obj: T, path: string, value: unknown): T;
|
|
4
|
+
export declare function deepClone<T>(obj: T): T;
|
|
5
|
+
export declare function deepEqual(a: unknown, b: unknown): boolean;
|
|
6
|
+
export declare function flattenToPaths(obj: any, prefix?: string): Map<string, unknown>;
|
|
7
|
+
export declare function reconstructFromPaths(paths: Map<string, unknown>): Record<string, any>;
|
|
8
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAwC3D;AAQD,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAWvD;AAID,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAKlE;AA2CD,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CA0BtC;AAID,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CA+DzD;AAID,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,SAAK,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAsC1E;AAID,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA0BrF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Signal } from '@ereo/state';
|
|
2
|
+
import type { ValidatorFunction, ValidateOn, ValidationResult } from './types';
|
|
3
|
+
import type { FormStore } from './store';
|
|
4
|
+
export declare class ValidationEngine<T extends Record<string, any>> {
|
|
5
|
+
private _store;
|
|
6
|
+
private _fieldValidations;
|
|
7
|
+
private _abortControllers;
|
|
8
|
+
private _debounceTimers;
|
|
9
|
+
private _validatingFields;
|
|
10
|
+
private _validatingSignals;
|
|
11
|
+
private _fieldGenerations;
|
|
12
|
+
private _validateAllController;
|
|
13
|
+
constructor(store: FormStore<T>);
|
|
14
|
+
registerFieldValidators(path: string, validators: ValidatorFunction[], explicitTrigger?: ValidateOn): void;
|
|
15
|
+
private _deriveValidateOn;
|
|
16
|
+
onFieldChange(path: string): void;
|
|
17
|
+
onFieldBlur(path: string): void;
|
|
18
|
+
isFieldValidating(path: string): boolean;
|
|
19
|
+
getFieldValidatingSignal(path: string): Signal<boolean>;
|
|
20
|
+
private _setFieldValidating;
|
|
21
|
+
validateField(path: string): Promise<string[]>;
|
|
22
|
+
validateFields(paths: string[]): Promise<ValidationResult>;
|
|
23
|
+
validateAll(): Promise<ValidationResult>;
|
|
24
|
+
private _validateSchema;
|
|
25
|
+
unregisterField(path: string): void;
|
|
26
|
+
dispose(): void;
|
|
27
|
+
private _createContext;
|
|
28
|
+
private _getDebounceMs;
|
|
29
|
+
private _debounceValidation;
|
|
30
|
+
private _runFieldValidation;
|
|
31
|
+
private _cancelFieldValidation;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=validation-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-engine.d.ts","sourceRoot":"","sources":["../src/validation-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAGjB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAQzC,qBAAa,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACzD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,iBAAiB,CAAsC;IAC/D,OAAO,CAAC,iBAAiB,CAAsC;IAC/D,OAAO,CAAC,eAAe,CAAoD;IAC3E,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,kBAAkB,CAAsC;IAChE,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,sBAAsB,CAAgC;gBAElD,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAmB/B,uBAAuB,CACrB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,iBAAiB,EAAE,EAC/B,eAAe,CAAC,EAAE,UAAU,GAC3B,IAAI;IAWP,OAAO,CAAC,iBAAiB;IAUzB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAgBjC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAiB/B,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIxC,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;IASvD,OAAO,CAAC,mBAAmB;IAYrB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA+C9C,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiB1D,WAAW,IAAI,OAAO,CAAC,gBAAgB,CAAC;YA6EhC,eAAe;IA2C7B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOnC,OAAO,IAAI,IAAI;IAoBf,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,sBAAsB;CAa/B"}
|