@tanstack/form-core 0.11.0 → 0.13.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/dist/cjs/FieldApi.d.ts +94 -0
- package/dist/cjs/FormApi.d.ts +118 -0
- package/dist/cjs/index.cjs +926 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/index.d.cts +5 -0
- package/dist/cjs/index.d.ts +5 -0
- package/dist/cjs/index.js +926 -0
- package/dist/cjs/mergeForm.d.ts +4 -0
- package/dist/cjs/tests/FieldApi.spec.d.ts +1 -0
- package/dist/cjs/tests/FieldApi.test-d.d.ts +1 -0
- package/dist/cjs/tests/FormApi.spec.d.ts +1 -0
- package/dist/cjs/tests/mutateMergeDeep.spec.d.ts +1 -0
- package/dist/cjs/tests/utils.d.ts +1 -0
- package/dist/cjs/tests/utils.spec.d.ts +1 -0
- package/dist/cjs/types.d.ts +14 -0
- package/dist/cjs/utils.d.ts +57 -0
- package/dist/mjs/FieldApi.d.ts +94 -0
- package/dist/mjs/FormApi.d.ts +118 -0
- package/dist/mjs/index.d.mts +5 -0
- package/dist/mjs/index.d.ts +5 -0
- package/dist/mjs/index.js +926 -0
- package/dist/mjs/index.mjs +926 -0
- package/dist/mjs/index.mjs.map +1 -0
- package/dist/mjs/mergeForm.d.ts +4 -0
- package/dist/mjs/tests/FieldApi.spec.d.ts +1 -0
- package/dist/mjs/tests/FieldApi.test-d.d.ts +1 -0
- package/dist/mjs/tests/FormApi.spec.d.ts +1 -0
- package/dist/mjs/tests/mutateMergeDeep.spec.d.ts +1 -0
- package/dist/mjs/tests/utils.d.ts +1 -0
- package/dist/mjs/tests/utils.spec.d.ts +1 -0
- package/dist/mjs/types.d.ts +14 -0
- package/dist/mjs/utils.d.ts +57 -0
- package/package.json +16 -21
- package/src/FieldApi.ts +53 -38
- package/src/FormApi.ts +59 -23
- package/src/index.ts +1 -0
- package/src/mergeForm.ts +42 -0
- package/src/tests/FormApi.spec.ts +1 -0
- package/src/tests/mutateMergeDeep.spec.ts +32 -0
- package/src/types.ts +2 -1
- package/src/utils.ts +40 -23
- package/build/legacy/FieldApi.cjs +0 -313
- package/build/legacy/FieldApi.cjs.map +0 -1
- package/build/legacy/FieldApi.d.cts +0 -3
- package/build/legacy/FieldApi.d.ts +0 -3
- package/build/legacy/FieldApi.js +0 -288
- package/build/legacy/FieldApi.js.map +0 -1
- package/build/legacy/FormApi.cjs +0 -445
- package/build/legacy/FormApi.cjs.map +0 -1
- package/build/legacy/FormApi.d.cts +0 -3
- package/build/legacy/FormApi.d.ts +0 -3
- package/build/legacy/FormApi.js +0 -428
- package/build/legacy/FormApi.js.map +0 -1
- package/build/legacy/index.cjs +0 -31
- package/build/legacy/index.cjs.map +0 -1
- package/build/legacy/index.d.cts +0 -257
- package/build/legacy/index.d.ts +0 -257
- package/build/legacy/index.js +0 -6
- package/build/legacy/index.js.map +0 -1
- package/build/legacy/types.cjs +0 -19
- package/build/legacy/types.cjs.map +0 -1
- package/build/legacy/types.d.cts +0 -16
- package/build/legacy/types.d.ts +0 -16
- package/build/legacy/types.js +0 -1
- package/build/legacy/types.js.map +0 -1
- package/build/legacy/utils.cjs +0 -187
- package/build/legacy/utils.cjs.map +0 -1
- package/build/legacy/utils.d.cts +0 -3
- package/build/legacy/utils.d.ts +0 -3
- package/build/legacy/utils.js +0 -156
- package/build/legacy/utils.js.map +0 -1
- package/build/modern/FieldApi.cjs +0 -312
- package/build/modern/FieldApi.cjs.map +0 -1
- package/build/modern/FieldApi.d.cts +0 -3
- package/build/modern/FieldApi.d.ts +0 -3
- package/build/modern/FieldApi.js +0 -287
- package/build/modern/FieldApi.js.map +0 -1
- package/build/modern/FormApi.cjs +0 -439
- package/build/modern/FormApi.cjs.map +0 -1
- package/build/modern/FormApi.d.cts +0 -3
- package/build/modern/FormApi.d.ts +0 -3
- package/build/modern/FormApi.js +0 -422
- package/build/modern/FormApi.js.map +0 -1
- package/build/modern/index.cjs +0 -31
- package/build/modern/index.cjs.map +0 -1
- package/build/modern/index.d.cts +0 -257
- package/build/modern/index.d.ts +0 -257
- package/build/modern/index.js +0 -6
- package/build/modern/index.js.map +0 -1
- package/build/modern/types.cjs +0 -19
- package/build/modern/types.cjs.map +0 -1
- package/build/modern/types.d.cts +0 -16
- package/build/modern/types.d.ts +0 -16
- package/build/modern/types.js +0 -1
- package/build/modern/types.js.map +0 -1
- package/build/modern/utils.cjs +0 -187
- package/build/modern/utils.cjs.map +0 -1
- package/build/modern/utils.d.cts +0 -3
- package/build/modern/utils.d.ts +0 -3
- package/build/modern/utils.js +0 -156
- package/build/modern/utils.js.map +0 -1
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { Store } from '@tanstack/store';
|
|
2
|
+
import type { FormApi } from './FormApi';
|
|
3
|
+
import type { ValidationCause, ValidationError, ValidationErrorMap, Validator } from './types';
|
|
4
|
+
import type { DeepKeys, DeepValue, Updater } from './utils';
|
|
5
|
+
export type FieldValidateFn<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> = (props: {
|
|
6
|
+
value: TData;
|
|
7
|
+
fieldApi: FieldApi<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
8
|
+
}) => ValidationError;
|
|
9
|
+
export type FieldValidateOrFn<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> = TFieldValidator extends Validator<TData, infer TFN> ? TFN | FieldValidateFn<TParentData, TName, TFieldValidator, TFormValidator, TData> : TFormValidator extends Validator<TParentData, infer FFN> ? FFN | FieldValidateFn<TParentData, TName, TFieldValidator, TFormValidator, TData> : FieldValidateFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
10
|
+
export type FieldValidateAsyncFn<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> = (options: {
|
|
11
|
+
value: TData;
|
|
12
|
+
fieldApi: FieldApi<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
13
|
+
signal: AbortSignal;
|
|
14
|
+
}) => ValidationError | Promise<ValidationError>;
|
|
15
|
+
export type FieldAsyncValidateOrFn<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> = TFieldValidator extends Validator<TData, infer TFN> ? TFN | FieldValidateAsyncFn<TParentData, TName, TFieldValidator, TFormValidator, TData> : TFormValidator extends Validator<TParentData, infer FFN> ? FFN | FieldValidateAsyncFn<TParentData, TName, TFieldValidator, TFormValidator, TData> : FieldValidateAsyncFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
16
|
+
export interface FieldValidators<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> {
|
|
17
|
+
onMount?: FieldValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
18
|
+
onChange?: FieldValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
19
|
+
onChangeAsync?: FieldAsyncValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
20
|
+
onChangeAsyncDebounceMs?: number;
|
|
21
|
+
onBlur?: FieldValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
22
|
+
onBlurAsync?: FieldAsyncValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
23
|
+
onBlurAsyncDebounceMs?: number;
|
|
24
|
+
onSubmit?: FieldValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
25
|
+
onSubmitAsync?: FieldAsyncValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
26
|
+
onSubmitAsyncDebounceMs?: number;
|
|
27
|
+
}
|
|
28
|
+
export interface FieldOptions<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> {
|
|
29
|
+
name: TName;
|
|
30
|
+
index?: TData extends any[] ? number : never;
|
|
31
|
+
defaultValue?: TData;
|
|
32
|
+
asyncDebounceMs?: number;
|
|
33
|
+
asyncAlways?: boolean;
|
|
34
|
+
preserveValue?: boolean;
|
|
35
|
+
validatorAdapter?: TFieldValidator;
|
|
36
|
+
validators?: FieldValidators<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
37
|
+
defaultMeta?: Partial<FieldMeta>;
|
|
38
|
+
}
|
|
39
|
+
export interface FieldApiOptions<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> extends FieldOptions<TParentData, TName, TFieldValidator, TFormValidator, TData> {
|
|
40
|
+
form: FormApi<TParentData, TFormValidator>;
|
|
41
|
+
}
|
|
42
|
+
export type FieldMeta = {
|
|
43
|
+
isTouched: boolean;
|
|
44
|
+
touchedErrors: ValidationError[];
|
|
45
|
+
errors: ValidationError[];
|
|
46
|
+
errorMap: ValidationErrorMap;
|
|
47
|
+
isValidating: boolean;
|
|
48
|
+
};
|
|
49
|
+
export type FieldState<TData> = {
|
|
50
|
+
value: TData;
|
|
51
|
+
meta: FieldMeta;
|
|
52
|
+
};
|
|
53
|
+
export type ResolveName<TParentData> = unknown extends TParentData ? string : DeepKeys<TParentData>;
|
|
54
|
+
export declare class FieldApi<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> {
|
|
55
|
+
uid: number;
|
|
56
|
+
form: FieldApiOptions<TParentData, TName, TFieldValidator, TFormValidator, TData>['form'];
|
|
57
|
+
name: DeepKeys<TParentData>;
|
|
58
|
+
options: FieldApiOptions<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
59
|
+
store: Store<FieldState<TData>>;
|
|
60
|
+
state: FieldState<TData>;
|
|
61
|
+
prevState: FieldState<TData>;
|
|
62
|
+
constructor(opts: FieldApiOptions<TParentData, TName, TFieldValidator, TFormValidator, TData>);
|
|
63
|
+
runValidator<TValue extends {
|
|
64
|
+
value: TData;
|
|
65
|
+
fieldApi: FieldApi<any, any, any, any>;
|
|
66
|
+
}, TType extends 'validate' | 'validateAsync'>(props: {
|
|
67
|
+
validate: TType extends 'validate' ? FieldValidateOrFn<any, any, any, any> : FieldAsyncValidateOrFn<any, any, any, any>;
|
|
68
|
+
value: TValue;
|
|
69
|
+
type: TType;
|
|
70
|
+
}): ReturnType<ReturnType<Validator<any>>[TType]>;
|
|
71
|
+
mount: () => () => void;
|
|
72
|
+
update: (opts: FieldApiOptions<TParentData, TName, TFieldValidator, TFormValidator, TData>) => void;
|
|
73
|
+
getValue: () => TData;
|
|
74
|
+
setValue: (updater: Updater<TData>, options?: {
|
|
75
|
+
touch?: boolean;
|
|
76
|
+
notify?: boolean;
|
|
77
|
+
}) => void;
|
|
78
|
+
_getMeta: () => FieldMeta | undefined;
|
|
79
|
+
getMeta: () => FieldMeta;
|
|
80
|
+
setMeta: (updater: Updater<FieldMeta>) => void;
|
|
81
|
+
getInfo: () => import("./FormApi").FieldInfo<TParentData, TFormValidator>;
|
|
82
|
+
pushValue: (value: TData extends any[] ? TData[number] : never) => void;
|
|
83
|
+
insertValue: (index: number, value: TData extends any[] ? TData[number] : never) => void;
|
|
84
|
+
removeValue: (index: number) => void;
|
|
85
|
+
swapValues: (aIndex: number, bIndex: number) => void;
|
|
86
|
+
getSubField: <TSubName extends DeepKeys<TData>, TSubData extends DeepValue<TData, TSubName> = DeepValue<TData, TSubName>>(name: TSubName) => FieldApi<TData, TSubName, Validator<TSubData, unknown> | undefined, Validator<TData, unknown> | undefined, TSubData>;
|
|
87
|
+
validateSync: (value: TData | undefined, cause: ValidationCause) => {
|
|
88
|
+
hasErrored: boolean;
|
|
89
|
+
};
|
|
90
|
+
validateAsync: (value: TData | undefined, cause: ValidationCause) => Promise<ValidationError[]>;
|
|
91
|
+
validate: (cause: ValidationCause, value?: TData) => ValidationError[] | Promise<ValidationError[]>;
|
|
92
|
+
handleChange: (updater: Updater<TData>) => void;
|
|
93
|
+
handleBlur: () => void;
|
|
94
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Store } from '@tanstack/store';
|
|
3
|
+
import type { DeepKeys, DeepValue, Updater } from './utils';
|
|
4
|
+
import type { FieldApi, FieldMeta } from './FieldApi';
|
|
5
|
+
import type { ValidationError, ValidationErrorMap, Validator, ValidationCause, ValidationErrorMapKeys } from './types';
|
|
6
|
+
export type FormValidateFn<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> = (props: {
|
|
7
|
+
value: TFormData;
|
|
8
|
+
formApi: FormApi<TFormData, TFormValidator>;
|
|
9
|
+
}) => ValidationError;
|
|
10
|
+
export type FormValidateOrFn<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> = TFormValidator extends Validator<TFormData, infer TFN> ? TFN : FormValidateFn<TFormData, TFormValidator>;
|
|
11
|
+
export type FormValidateAsyncFn<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> = (props: {
|
|
12
|
+
value: TFormData;
|
|
13
|
+
formApi: FormApi<TFormData, TFormValidator>;
|
|
14
|
+
signal: AbortSignal;
|
|
15
|
+
}) => ValidationError | Promise<ValidationError>;
|
|
16
|
+
export type FormAsyncValidateOrFn<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> = TFormValidator extends Validator<TFormData, infer FFN> ? FFN | FormValidateAsyncFn<TFormData, TFormValidator> : FormValidateAsyncFn<TFormData, TFormValidator>;
|
|
17
|
+
export interface FormValidators<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> {
|
|
18
|
+
onMount?: FormValidateOrFn<TFormData, TFormValidator>;
|
|
19
|
+
onChange?: FormValidateOrFn<TFormData, TFormValidator>;
|
|
20
|
+
onChangeAsync?: FormAsyncValidateOrFn<TFormData, TFormValidator>;
|
|
21
|
+
onChangeAsyncDebounceMs?: number;
|
|
22
|
+
onBlur?: FormValidateOrFn<TFormData, TFormValidator>;
|
|
23
|
+
onBlurAsync?: FormAsyncValidateOrFn<TFormData, TFormValidator>;
|
|
24
|
+
onBlurAsyncDebounceMs?: number;
|
|
25
|
+
onSubmit?: FormValidateOrFn<TFormData, TFormValidator>;
|
|
26
|
+
onSubmitAsync?: FormAsyncValidateOrFn<TFormData, TFormValidator>;
|
|
27
|
+
onSubmitAsyncDebounceMs?: number;
|
|
28
|
+
}
|
|
29
|
+
export interface FormTransform<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> {
|
|
30
|
+
fn: (formBase: FormApi<TFormData, TFormValidator>) => FormApi<TFormData, TFormValidator>;
|
|
31
|
+
deps: unknown[];
|
|
32
|
+
}
|
|
33
|
+
export interface FormOptions<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> {
|
|
34
|
+
defaultValues?: TFormData;
|
|
35
|
+
defaultState?: Partial<FormState<TFormData>>;
|
|
36
|
+
asyncAlways?: boolean;
|
|
37
|
+
asyncDebounceMs?: number;
|
|
38
|
+
validatorAdapter?: TFormValidator;
|
|
39
|
+
validators?: FormValidators<TFormData, TFormValidator>;
|
|
40
|
+
onSubmit?: (props: {
|
|
41
|
+
value: TFormData;
|
|
42
|
+
formApi: FormApi<TFormData, TFormValidator>;
|
|
43
|
+
}) => any | Promise<any>;
|
|
44
|
+
onSubmitInvalid?: (props: {
|
|
45
|
+
value: TFormData;
|
|
46
|
+
formApi: FormApi<TFormData, TFormValidator>;
|
|
47
|
+
}) => void;
|
|
48
|
+
transform?: FormTransform<TFormData, TFormValidator>;
|
|
49
|
+
}
|
|
50
|
+
export type ValidationMeta = {
|
|
51
|
+
lastAbortController: AbortController;
|
|
52
|
+
};
|
|
53
|
+
export type FieldInfo<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> = {
|
|
54
|
+
instances: Record<string, FieldApi<TFormData, any, Validator<unknown, unknown> | undefined, TFormValidator>>;
|
|
55
|
+
validationMetaMap: Record<ValidationErrorMapKeys, ValidationMeta | undefined>;
|
|
56
|
+
};
|
|
57
|
+
export type FormState<TFormData> = {
|
|
58
|
+
values: TFormData;
|
|
59
|
+
isFormValidating: boolean;
|
|
60
|
+
isFormValid: boolean;
|
|
61
|
+
errors: ValidationError[];
|
|
62
|
+
errorMap: ValidationErrorMap;
|
|
63
|
+
validationMetaMap: Record<ValidationErrorMapKeys, ValidationMeta | undefined>;
|
|
64
|
+
fieldMeta: Record<DeepKeys<TFormData>, FieldMeta>;
|
|
65
|
+
isFieldsValidating: boolean;
|
|
66
|
+
isFieldsValid: boolean;
|
|
67
|
+
isSubmitting: boolean;
|
|
68
|
+
isTouched: boolean;
|
|
69
|
+
isSubmitted: boolean;
|
|
70
|
+
isValidating: boolean;
|
|
71
|
+
isValid: boolean;
|
|
72
|
+
canSubmit: boolean;
|
|
73
|
+
submissionAttempts: number;
|
|
74
|
+
};
|
|
75
|
+
export declare class FormApi<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> {
|
|
76
|
+
options: FormOptions<TFormData, TFormValidator>;
|
|
77
|
+
store: Store<FormState<TFormData>>;
|
|
78
|
+
state: FormState<TFormData>;
|
|
79
|
+
fieldInfo: Record<DeepKeys<TFormData>, FieldInfo<TFormData, TFormValidator>>;
|
|
80
|
+
prevTransformArray: unknown[];
|
|
81
|
+
constructor(opts?: FormOptions<TFormData, TFormValidator>);
|
|
82
|
+
runValidator<TValue extends {
|
|
83
|
+
value: TFormData;
|
|
84
|
+
formApi: FormApi<any, any>;
|
|
85
|
+
}, TType extends 'validate' | 'validateAsync'>(props: {
|
|
86
|
+
validate: TType extends 'validate' ? FormValidateOrFn<TFormData, TFormValidator> : FormAsyncValidateOrFn<TFormData, TFormValidator>;
|
|
87
|
+
value: TValue;
|
|
88
|
+
type: TType;
|
|
89
|
+
}): ReturnType<ReturnType<Validator<any>>[TType]>;
|
|
90
|
+
mount: () => void;
|
|
91
|
+
update: (options?: FormOptions<TFormData, TFormValidator>) => void;
|
|
92
|
+
reset: () => void;
|
|
93
|
+
validateAllFields: (cause: ValidationCause) => Promise<ValidationError[]>;
|
|
94
|
+
validateSync: (cause: ValidationCause) => {
|
|
95
|
+
hasErrored: boolean;
|
|
96
|
+
};
|
|
97
|
+
validateAsync: (cause: ValidationCause) => Promise<ValidationError[]>;
|
|
98
|
+
validate: (cause: ValidationCause) => ValidationError[] | Promise<ValidationError[]>;
|
|
99
|
+
handleSubmit: () => Promise<void>;
|
|
100
|
+
getFieldValue: <TField extends DeepKeys<TFormData>>(field: TField) => DeepValue<TFormData, TField>;
|
|
101
|
+
getFieldMeta: <TField extends DeepKeys<TFormData>>(field: TField) => FieldMeta | undefined;
|
|
102
|
+
getFieldInfo: <TField extends DeepKeys<TFormData>>(field: TField) => FieldInfo<TFormData, TFormValidator>;
|
|
103
|
+
setFieldMeta: <TField extends DeepKeys<TFormData>>(field: TField, updater: Updater<FieldMeta>) => void;
|
|
104
|
+
setFieldValue: <TField extends DeepKeys<TFormData>>(field: TField, updater: Updater<DeepValue<TFormData, TField>>, opts?: {
|
|
105
|
+
touch?: boolean;
|
|
106
|
+
}) => void;
|
|
107
|
+
deleteField: <TField extends DeepKeys<TFormData>>(field: TField) => void;
|
|
108
|
+
pushFieldValue: <TField extends DeepKeys<TFormData>>(field: TField, value: DeepValue<TFormData, TField> extends any[] ? DeepValue<TFormData, TField>[number] : never, opts?: {
|
|
109
|
+
touch?: boolean;
|
|
110
|
+
}) => void;
|
|
111
|
+
insertFieldValue: <TField extends DeepKeys<TFormData>>(field: TField, index: number, value: DeepValue<TFormData, TField> extends any[] ? DeepValue<TFormData, TField>[number] : never, opts?: {
|
|
112
|
+
touch?: boolean;
|
|
113
|
+
}) => void;
|
|
114
|
+
removeFieldValue: <TField extends DeepKeys<TFormData>>(field: TField, index: number, opts?: {
|
|
115
|
+
touch?: boolean;
|
|
116
|
+
}) => void;
|
|
117
|
+
swapFieldValues: <TField extends DeepKeys<TFormData>>(field: TField, index1: number, index2: number) => void;
|
|
118
|
+
}
|