react-hook-form 8.0.0-alpha.0 → 8.0.0-alpha.3

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.
Files changed (47) hide show
  1. package/README.md +387 -317
  2. package/dist/controller.d.ts +42 -0
  3. package/dist/controller.d.ts.map +1 -1
  4. package/dist/index.cjs.js +1 -1
  5. package/dist/index.cjs.js.map +1 -1
  6. package/dist/index.esm.mjs +694 -333
  7. package/dist/index.esm.mjs.map +1 -1
  8. package/dist/index.umd.js +1 -1
  9. package/dist/index.umd.js.map +1 -1
  10. package/dist/logic/createFormControl.d.ts +1 -1
  11. package/dist/logic/createFormControl.d.ts.map +1 -1
  12. package/dist/logic/focusFieldBy.d.ts.map +1 -1
  13. package/dist/logic/getResolverOptions.d.ts +1 -1
  14. package/dist/logic/shouldRenderFormState.d.ts.map +1 -1
  15. package/dist/logic/updateFieldArrayRootError.d.ts +4 -0
  16. package/dist/logic/updateFieldArrayRootError.d.ts.map +1 -0
  17. package/dist/logic/validateField.d.ts +1 -1
  18. package/dist/logic/validateField.d.ts.map +1 -1
  19. package/dist/types/controller.d.ts +24 -3
  20. package/dist/types/controller.d.ts.map +1 -1
  21. package/dist/types/errors.d.ts +9 -2
  22. package/dist/types/errors.d.ts.map +1 -1
  23. package/dist/types/fieldArray.d.ts +173 -8
  24. package/dist/types/fieldArray.d.ts.map +1 -1
  25. package/dist/types/form.d.ts +395 -29
  26. package/dist/types/form.d.ts.map +1 -1
  27. package/dist/types/resolvers.d.ts +3 -3
  28. package/dist/types/resolvers.d.ts.map +1 -1
  29. package/dist/types/utils.d.ts +4 -5
  30. package/dist/types/utils.d.ts.map +1 -1
  31. package/dist/types/validator.d.ts +1 -1
  32. package/dist/types/validator.d.ts.map +1 -1
  33. package/dist/useController.d.ts +24 -0
  34. package/dist/useController.d.ts.map +1 -1
  35. package/dist/useFieldArray.d.ts +39 -2
  36. package/dist/useFieldArray.d.ts.map +1 -1
  37. package/dist/useForm.d.ts +30 -1
  38. package/dist/useForm.d.ts.map +1 -1
  39. package/dist/useFormContext.d.ts +62 -2
  40. package/dist/useFormContext.d.ts.map +1 -1
  41. package/dist/useFormState.d.ts +30 -0
  42. package/dist/useFormState.d.ts.map +1 -1
  43. package/dist/useWatch.d.ts +68 -4
  44. package/dist/useWatch.d.ts.map +1 -1
  45. package/dist/utils/compact.d.ts.map +1 -1
  46. package/dist/utils/unset.d.ts.map +1 -1
  47. package/package.json +21 -21
@@ -1,3 +1,3 @@
1
1
  import { FieldValues, UseFormProps, UseFormReturn } from '../types';
2
- export declare function createFormControl<TFieldValues extends FieldValues = FieldValues, TContext extends object = object>(props?: UseFormProps<TFieldValues, TContext>): Omit<UseFormReturn<TFieldValues, TContext>, 'formState'>;
2
+ export declare function createFormControl<TFieldValues extends FieldValues = FieldValues, TContext = any>(props?: UseFormProps<TFieldValues, TContext>): Omit<UseFormReturn<TFieldValues, TContext>, 'formState'>;
3
3
  //# sourceMappingURL=createFormControl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createFormControl.d.ts","sourceRoot":"","sources":["../../src/logic/createFormControl.ts"],"names":[],"mappings":"AACA,OAAO,EAYL,WAAW,EAeX,YAAY,EAIZ,aAAa,EASd,MAAM,UAAU,CAAC;AAiDlB,wBAAgB,iBAAiB,CAC/B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,QAAQ,SAAS,MAAM,GAAG,MAAM,EAEhC,KAAK,GAAE,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAM,GAC/C,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,CAyoC1D"}
1
+ {"version":3,"file":"createFormControl.d.ts","sourceRoot":"","sources":["../../src/logic/createFormControl.ts"],"names":[],"mappings":"AACA,OAAO,EAYL,WAAW,EAcX,YAAY,EAIZ,aAAa,EASd,MAAM,UAAU,CAAC;AAiDlB,wBAAgB,iBAAiB,CAC/B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,QAAQ,GAAG,GAAG,EAEd,KAAK,GAAE,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAM,GAC/C,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,CAsoC1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"focusFieldBy.d.ts","sourceRoot":"","sources":["../../src/logic/focusFieldBy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,UAAU,CAAC;AAMxD,QAAA,MAAM,YAAY,WACR,SAAS,mBACA,MAAM,KAAK,OAAO,2DAsBpC,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"focusFieldBy.d.ts","sourceRoot":"","sources":["../../src/logic/focusFieldBy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,UAAU,CAAC;AAKxD,QAAA,MAAM,YAAY,WACR,SAAS,mBACA,MAAM,KAAK,OAAO,2DAqBpC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -23,7 +23,7 @@ declare const _default: <TFieldValues>(fieldsNames: Set<InternalFieldName> | Int
23
23
  onChange?: ((event: any) => void) | undefined;
24
24
  onBlur?: ((event: any) => void) | undefined;
25
25
  disabled: boolean;
26
- deps: string[];
26
+ deps: string | string[];
27
27
  }>>;
28
28
  shouldUseNativeValidation: boolean | undefined;
29
29
  };
@@ -1 +1 @@
1
- {"version":3,"file":"shouldRenderFormState.d.ts","sourceRoot":"","sources":["../../src/logic/shouldRenderFormState.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;;AAIzC,wBAgBE"}
1
+ {"version":3,"file":"shouldRenderFormState.d.ts","sourceRoot":"","sources":["../../src/logic/shouldRenderFormState.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;;AAGzC,wBAgBE"}
@@ -0,0 +1,4 @@
1
+ import { FieldError, FieldErrors, FieldValues, InternalFieldName } from '../types';
2
+ declare const _default: <T extends FieldValues = FieldValues>(errors: FieldErrors<T>, error: Partial<Record<string, FieldError>>, name: InternalFieldName) => FieldErrors<T>;
3
+ export default _default;
4
+ //# sourceMappingURL=updateFieldArrayRootError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateFieldArrayRootError.d.ts","sourceRoot":"","sources":["../../src/logic/updateFieldArrayRootError.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,EAClB,MAAM,UAAU,CAAC;6FAOT,QAAQ,OAAO,MAAM,EAAE,UAAU,CAAC,CAAC,QACpC,iBAAiB;AAHzB,wBASE"}
@@ -1,4 +1,4 @@
1
1
  import { Field, InternalFieldErrors, NativeFieldValue } from '../types';
2
- declare const _default: <T extends NativeFieldValue>(field: Field, inputValue: T, validateAllFieldCriteria: boolean, shouldUseNativeValidation?: boolean | undefined) => Promise<InternalFieldErrors>;
2
+ declare const _default: <T extends NativeFieldValue>(field: Field, inputValue: T, validateAllFieldCriteria: boolean, shouldUseNativeValidation?: boolean | undefined, isFieldArray?: boolean | undefined) => Promise<InternalFieldErrors>;
3
3
  export default _default;
4
4
  //# sourceMappingURL=validateField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateField.d.ts","sourceRoot":"","sources":["../../src/logic/validateField.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EAEL,mBAAmB,EAEnB,gBAAgB,EACjB,MAAM,UAAU,CAAC;4DAoBT,KAAK,2CAEc,OAAO,sDAEhC,QAAQ,mBAAmB,CAAC;AAL/B,wBAmOE"}
1
+ {"version":3,"file":"validateField.d.ts","sourceRoot":"","sources":["../../src/logic/validateField.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EAEL,mBAAmB,EAEnB,gBAAgB,EACjB,MAAM,UAAU,CAAC;4DAoBT,KAAK,2CAEc,OAAO,0FAGhC,QAAQ,mBAAmB,CAAC;AAN/B,wBAwOE"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { RegisterOptions } from './validator';
3
- import { Auto, Control, FieldError, FieldPathValue, FieldValues, Noop, PathString, RefCallBack, UnpackNestedValue, UseFormStateReturn } from './';
3
+ import { Auto, Control, FieldError, FieldPathValue, FieldValues, Noop, PathString, RefCallBack, UseFormStateReturn } from './';
4
4
  export declare type ControllerFieldState = {
5
5
  invalid: boolean;
6
6
  isTouched: boolean;
@@ -10,7 +10,7 @@ export declare type ControllerFieldState = {
10
10
  export declare type ControllerRenderProps<TFieldValues extends FieldValues, TName extends PathString> = {
11
11
  onChange: (...event: any[]) => void;
12
12
  onBlur: Noop;
13
- value: UnpackNestedValue<FieldPathValue<TFieldValues, TName>>;
13
+ value: FieldPathValue<TFieldValues, TName>;
14
14
  name: TName;
15
15
  ref: RefCallBack;
16
16
  };
@@ -18,7 +18,7 @@ export declare type UseControllerProps<TFieldValues extends FieldValues, TName e
18
18
  name: Auto.FieldPath<TFieldValues, TName>;
19
19
  rules?: Omit<RegisterOptions<TFieldValues, TName>, 'valueAsNumber' | 'valueAsDate' | 'setValueAs' | 'disabled'>;
20
20
  shouldUnregister?: boolean;
21
- defaultValue?: UnpackNestedValue<FieldPathValue<TFieldValues, TName>>;
21
+ defaultValue?: FieldPathValue<TFieldValues, TName>;
22
22
  control?: Control<TFieldValues>;
23
23
  };
24
24
  export declare type UseControllerReturn<TFieldValues extends FieldValues, TName extends PathString> = {
@@ -26,6 +26,27 @@ export declare type UseControllerReturn<TFieldValues extends FieldValues, TName
26
26
  formState: UseFormStateReturn<TFieldValues>;
27
27
  fieldState: ControllerFieldState;
28
28
  };
29
+ /**
30
+ * Render function to provide the control for the field.
31
+ *
32
+ * @returns all the event handler, and relevant field and form state.
33
+ *
34
+ * @example
35
+ * ```tsx
36
+ * const { field, fieldState, formState } = useController();
37
+ *
38
+ * <Controller
39
+ * render={({ field, formState, fieldState }) => ({
40
+ * <input
41
+ * onChange={field.onChange}
42
+ * onBlur={field.onBlur}
43
+ * name={field.name}
44
+ * ref={field.ref} // optional for focus management
45
+ * />
46
+ * })}
47
+ * />
48
+ * ```
49
+ */
29
50
  export declare type ControllerProps<TFieldValues extends FieldValues, TName extends PathString> = {
30
51
  render: ({ field, fieldState, formState, }: {
31
52
  field: ControllerRenderProps<TFieldValues, TName>;
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/types/controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,IAAI,EACJ,OAAO,EACP,UAAU,EACV,cAAc,EACd,WAAW,EACX,IAAI,EACJ,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,IAAI,CAAC;AAEZ,oBAAY,oBAAoB,GAAG;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,oBAAY,qBAAqB,CAC/B,YAAY,SAAS,WAAW,EAChC,KAAK,SAAS,UAAU,IACtB;IACF,QAAQ,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACpC,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,iBAAiB,CAAC,cAAc,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,WAAW,CAAC;CAClB,CAAC;AAEF,oBAAY,kBAAkB,CAC5B,YAAY,SAAS,WAAW,EAChC,KAAK,SAAS,UAAU,IACtB;IACF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC1C,KAAK,CAAC,EAAE,IAAI,CACV,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,EACpC,eAAe,GAAG,aAAa,GAAG,YAAY,GAAG,UAAU,CAC5D,CAAC;IACF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,iBAAiB,CAAC,cAAc,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CACjC,CAAC;AAEF,oBAAY,mBAAmB,CAC7B,YAAY,SAAS,WAAW,EAChC,KAAK,SAAS,UAAU,IACtB;IACF,KAAK,EAAE,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAClD,SAAS,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC5C,UAAU,EAAE,oBAAoB,CAAC;CAClC,CAAC;AAEF,oBAAY,eAAe,CACzB,YAAY,SAAS,WAAW,EAChC,KAAK,SAAS,UAAU,IACtB;IACF,MAAM,EAAE,CAAC,EACP,KAAK,EACL,UAAU,EACV,SAAS,GACV,EAAE;QACD,KAAK,EAAE,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAClD,UAAU,EAAE,oBAAoB,CAAC;QACjC,SAAS,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;KAC7C,KAAK,KAAK,CAAC,YAAY,CAAC;CAC1B,GAAG,kBAAkB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/types/controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,IAAI,EACJ,OAAO,EACP,UAAU,EACV,cAAc,EACd,WAAW,EACX,IAAI,EACJ,UAAU,EACV,WAAW,EACX,kBAAkB,EACnB,MAAM,IAAI,CAAC;AAEZ,oBAAY,oBAAoB,GAAG;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,oBAAY,qBAAqB,CAC/B,YAAY,SAAS,WAAW,EAChC,KAAK,SAAS,UAAU,IACtB;IACF,QAAQ,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACpC,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,cAAc,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC3C,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,WAAW,CAAC;CAClB,CAAC;AAEF,oBAAY,kBAAkB,CAC5B,YAAY,SAAS,WAAW,EAChC,KAAK,SAAS,UAAU,IACtB;IACF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC1C,KAAK,CAAC,EAAE,IAAI,CACV,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,EACpC,eAAe,GAAG,aAAa,GAAG,YAAY,GAAG,UAAU,CAC5D,CAAC;IACF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,cAAc,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CACjC,CAAC;AAEF,oBAAY,mBAAmB,CAC7B,YAAY,SAAS,WAAW,EAChC,KAAK,SAAS,UAAU,IACtB;IACF,KAAK,EAAE,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAClD,SAAS,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC5C,UAAU,EAAE,oBAAoB,CAAC;CAClC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,oBAAY,eAAe,CACzB,YAAY,SAAS,WAAW,EAChC,KAAK,SAAS,UAAU,IACtB;IACF,MAAM,EAAE,CAAC,EACP,KAAK,EACL,UAAU,EACV,SAAS,GACV,EAAE;QACD,KAAK,EAAE,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAClD,UAAU,EAAE,oBAAoB,CAAC;QACjC,SAAS,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;KAC7C,KAAK,KAAK,CAAC,YAAY,CAAC;CAC1B,GAAG,kBAAkB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { FieldValues, InternalFieldName, Ref } from './fields';
2
- import { DeepMap, DeepPartial, LiteralUnion } from './utils';
2
+ import { LiteralUnion } from './utils';
3
3
  import { RegisterOptions, ValidateResult } from './validator';
4
4
  export declare type Message = string;
5
5
  export declare type MultipleFieldErrors = {
@@ -9,6 +9,7 @@ export declare type MultipleFieldErrors = {
9
9
  };
10
10
  export declare type FieldError = {
11
11
  type: LiteralUnion<keyof RegisterOptions, string>;
12
+ root?: FieldError;
12
13
  ref?: Ref;
13
14
  types?: MultipleFieldErrors;
14
15
  message?: Message;
@@ -18,6 +19,12 @@ export declare type ErrorOption = {
18
19
  type?: LiteralUnion<keyof RegisterOptions, string>;
19
20
  types?: MultipleFieldErrors;
20
21
  };
21
- export declare type FieldErrors<TFieldValues extends FieldValues = FieldValues> = DeepMap<DeepPartial<TFieldValues>, FieldError>;
22
+ declare type Merge<A, B> = {
23
+ [K in keyof A | keyof B]?: K extends keyof A ? K extends keyof B ? [A[K], B[K]] extends [object, object] ? Merge<A[K], B[K]> : A[K] | B[K] : A[K] : K extends keyof B ? B[K] : never;
24
+ };
25
+ export declare type FieldErrors<T extends FieldValues = FieldValues> = {
26
+ [K in keyof T]?: T[K] extends object ? Merge<FieldError, FieldErrors<T[K]>> : FieldError;
27
+ };
22
28
  export declare type InternalFieldErrors = Partial<Record<InternalFieldName, FieldError>>;
29
+ export {};
23
30
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/types/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE9D,oBAAY,OAAO,GAAG,MAAM,CAAC;AAE7B,oBAAY,mBAAmB,GAAG;KAC/B,CAAC,IAAI,MAAM,eAAe,CAAC,CAAC,EAAE,cAAc;CAC9C,GAAG;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC;CAC/B,CAAC;AAEF,oBAAY,UAAU,GAAG;IACvB,IAAI,EAAE,YAAY,CAAC,MAAM,eAAe,EAAE,MAAM,CAAC,CAAC;IAClD,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,oBAAY,WAAW,GAAG;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,YAAY,CAAC,MAAM,eAAe,EAAE,MAAM,CAAC,CAAC;IACnD,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AAEF,oBAAY,WAAW,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW,IACpE,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC;AAEjD,oBAAY,mBAAmB,GAAG,OAAO,CACvC,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC,CACtC,CAAC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/types/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE9D,oBAAY,OAAO,GAAG,MAAM,CAAC;AAE7B,oBAAY,mBAAmB,GAAG;KAC/B,CAAC,IAAI,MAAM,eAAe,CAAC,CAAC,EAAE,cAAc;CAC9C,GAAG;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC;CAC/B,CAAC;AAEF,oBAAY,UAAU,GAAG;IACvB,IAAI,EAAE,YAAY,CAAC,MAAM,eAAe,EAAE,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,oBAAY,WAAW,GAAG;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,YAAY,CAAC,MAAM,eAAe,EAAE,MAAM,CAAC,CAAC;IACnD,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AAEF,aAAK,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI;KAChB,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GACxC,CAAC,SAAS,MAAM,CAAC,GACf,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GACjB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GACb,CAAC,CAAC,CAAC,CAAC,GACN,CAAC,SAAS,MAAM,CAAC,GACjB,CAAC,CAAC,CAAC,CAAC,GACJ,KAAK;CACV,CAAC;AAEF,oBAAY,WAAW,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI;KAC5D,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAChC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACpC,UAAU;CACf,CAAC;AAEF,oBAAY,mBAAmB,GAAG,OAAO,CACvC,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC,CACtC,CAAC"}
@@ -1,27 +1,192 @@
1
1
  import { FieldValues } from './fields';
2
2
  import { Control } from './form';
3
3
  import { Auto, FieldPathValue, PathString } from './path';
4
+ import { RegisterOptions } from './validator';
4
5
  export declare type UseFieldArrayProps<TFieldValues extends FieldValues, TFieldArrayName extends PathString> = {
5
6
  name: Auto.FieldArrayPath<TFieldValues, TFieldArrayName>;
6
7
  control?: Control<TFieldValues>;
8
+ rules?: Pick<RegisterOptions<TFieldValues>, 'maxLength' | 'minLength' | 'validate'>;
7
9
  shouldUnregister?: boolean;
8
10
  };
11
+ /**
12
+ * `useFieldArray` returned `fields` with unique id
13
+ */
9
14
  export declare type FieldArrayWithId<TFieldValues extends FieldValues = FieldValues, TFieldArrayName extends PathString = never> = FieldArray<TFieldValues, TFieldArrayName> & Record<'id', string>;
10
15
  export declare type FieldArray<TFieldValues extends FieldValues, TFieldArrayName extends PathString> = FieldPathValue<TFieldValues, TFieldArrayName> extends ReadonlyArray<infer U> | null | undefined ? U : never;
16
+ /**
17
+ * `useFieldArray` focus option, ability to toggle focus on and off with `shouldFocus` and setting focus by either field index or name.
18
+ */
11
19
  export declare type FieldArrayMethodProps = {
12
20
  shouldFocus?: boolean;
13
21
  focusIndex?: number;
14
22
  focusName?: string;
15
23
  };
24
+ /**
25
+ * Swap field array by supplying from and to index
26
+ *
27
+ * @remarks
28
+ * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
29
+ *
30
+ * @param indexA - from index
31
+ * @param indexB - to index
32
+ *
33
+ * @example
34
+ * ```tsx
35
+ * <button type="button" onClick={() => swap(0, 1)}>swap</button>
36
+ * ```
37
+ */
38
+ export declare type UseFieldArraySwap = (indexA: number, indexB: number) => void;
39
+ /**
40
+ * Move field array by supplying from and to index
41
+ *
42
+ * @remarks
43
+ * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
44
+ *
45
+ * @param indexA - from index
46
+ * @param indexB - to index
47
+ *
48
+ * @example
49
+ * ```tsx
50
+ * <button type="button" onClick={() => move(0, 1)}>swap</button>
51
+ * ```
52
+ */
53
+ export declare type UseFieldArrayMove = (indexA: number, indexB: number) => void;
54
+ /**
55
+ * Prepend field/fields to the start of the fields and optionally focus. The input value will be registered during this action.
56
+ *
57
+ * @remarks
58
+ * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
59
+ *
60
+ * @param value - prepend items or items
61
+ * @param options - focus options
62
+ *
63
+ * @example
64
+ * ```tsx
65
+ * <button type="button" onClick={() => prepend({ name: "data" })}>Prepend</button>
66
+ * <button type="button" onClick={() => prepend({ name: "data" }, { shouldFocus: false })}>Prepend</button>
67
+ * <button
68
+ * type="button"
69
+ * onClick={() => prepend([{ name: "data" }, { name: "data" }])}
70
+ * >
71
+ * Prepend
72
+ * </button>
73
+ * ```
74
+ */
75
+ export declare type UseFieldArrayPrepend<TFieldValues, TFieldArrayName extends PathString> = (value: Partial<FieldArray<TFieldValues, TFieldArrayName>> | Partial<FieldArray<TFieldValues, TFieldArrayName>>[], options?: FieldArrayMethodProps) => void;
76
+ /**
77
+ * Append field/fields to the end of your fields and focus. The input value will be registered during this action.
78
+ *
79
+ * @remarks
80
+ * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
81
+ *
82
+ * @param value - append items or items.
83
+ * @param options - focus options
84
+ *
85
+ * @example
86
+ * ```tsx
87
+ * <button type="button" onClick={() => prepend({ name: "data" })}>Append</button>
88
+ * <button type="button" onClick={() => prepend({ name: "data" }, { shouldFocus: false })}>Append</button>
89
+ * <button
90
+ * type="button"
91
+ * onClick={() => append([{ name: "data" }, { name: "data" }])}
92
+ * >
93
+ * Append
94
+ * </button>
95
+ * ```
96
+ */
97
+ export declare type UseFieldArrayAppend<TFieldValues, TFieldArrayName extends PathString> = (value: Partial<FieldArray<TFieldValues, TFieldArrayName>> | Partial<FieldArray<TFieldValues, TFieldArrayName>>[], options?: FieldArrayMethodProps) => void;
98
+ /**
99
+ * Remove field/fields at particular position.
100
+ *
101
+ * @remarks
102
+ * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
103
+ *
104
+ * @param index - index to remove at, or remove all when no index provided.
105
+ *
106
+ * @example
107
+ * ```tsx
108
+ * <button type="button" onClick={() => remove(0)}>Remove</button>
109
+ * <button
110
+ * type="button"
111
+ * onClick={() => remove()}
112
+ * >
113
+ * Remove all
114
+ * </button>
115
+ * ```
116
+ */
117
+ export declare type UseFieldArrayRemove = (index?: number | number[]) => void;
118
+ /**
119
+ * Insert field/fields at particular position and focus.
120
+ *
121
+ * @remarks
122
+ * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
123
+ *
124
+ * @param index - insert position
125
+ * @param value - insert field or fields
126
+ * @param options - focus options
127
+ *
128
+ * @example
129
+ * ```tsx
130
+ * <button type="button" onClick={() => insert(1, { name: "data" })}>Insert</button>
131
+ * <button type="button" onClick={() => insert(1, { name: "data" }, { shouldFocus: false })}>Insert</button>
132
+ * <button
133
+ * type="button"
134
+ * onClick={() => insert(1, [{ name: "data" }, { name: "data" }])}
135
+ * >
136
+ * Insert
137
+ * </button>
138
+ * ```
139
+ */
140
+ export declare type UseFieldArrayInsert<TFieldValues, TFieldArrayName extends PathString> = (index: number, value: Partial<FieldArray<TFieldValues, TFieldArrayName>> | Partial<FieldArray<TFieldValues, TFieldArrayName>>[], options?: FieldArrayMethodProps) => void;
141
+ /**
142
+ * Update field/fields at particular position.
143
+ *
144
+ * @remarks
145
+ * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
146
+ *
147
+ * @param index - insert position
148
+ * @param value - insert field or fields
149
+ *
150
+ * @example
151
+ * ```tsx
152
+ * <button type="button" onClick={() => update(1, { name: "data" })}>Update</button>
153
+ * <button
154
+ * type="button"
155
+ * onClick={() => update(1, [{ name: "data" }, { name: "data" }])}
156
+ * >
157
+ * Update
158
+ * </button>
159
+ * ```
160
+ */
161
+ export declare type UseFieldArrayUpdate<TFieldValues, TFieldArrayName extends PathString> = (index: number, value: FieldArray<TFieldValues, TFieldArrayName>) => void;
162
+ /**
163
+ * Replace the entire field array values.
164
+ *
165
+ * @remarks
166
+ * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
167
+ *
168
+ * @param value - the entire field values.
169
+ *
170
+ * @example
171
+ * ```tsx
172
+ * <button
173
+ * type="button"
174
+ * onClick={() => update([{ name: "data" }, { name: "data" }])}
175
+ * >
176
+ * Replace
177
+ * </button>
178
+ * ```
179
+ */
180
+ export declare type UseFieldArrayReplace<TFieldValues extends FieldValues, TFieldArrayName extends PathString> = (value: Partial<FieldArray<TFieldValues, TFieldArrayName>> | Partial<FieldArray<TFieldValues, TFieldArrayName>>[]) => void;
16
181
  export declare type UseFieldArrayReturn<TFieldValues extends FieldValues, TFieldArrayName extends PathString> = {
17
- swap: (indexA: number, indexB: number) => void;
18
- move: (indexA: number, indexB: number) => void;
19
- prepend: (value: Partial<FieldArray<TFieldValues, TFieldArrayName>> | Partial<FieldArray<TFieldValues, TFieldArrayName>>[], options?: FieldArrayMethodProps) => void;
20
- append: (value: Partial<FieldArray<TFieldValues, TFieldArrayName>> | Partial<FieldArray<TFieldValues, TFieldArrayName>>[], options?: FieldArrayMethodProps) => void;
21
- remove: (index?: number | number[]) => void;
22
- insert: (index: number, value: Partial<FieldArray<TFieldValues, TFieldArrayName>> | Partial<FieldArray<TFieldValues, TFieldArrayName>>[], options?: FieldArrayMethodProps) => void;
23
- update: (index: number, value: Partial<FieldArray<TFieldValues, TFieldArrayName>>) => void;
24
- replace: (value: Partial<FieldArray<TFieldValues, TFieldArrayName>> | Partial<FieldArray<TFieldValues, TFieldArrayName>>[]) => void;
182
+ swap: UseFieldArraySwap;
183
+ move: UseFieldArrayMove;
184
+ prepend: UseFieldArrayPrepend<TFieldValues, TFieldArrayName>;
185
+ append: UseFieldArrayAppend<TFieldValues, TFieldArrayName>;
186
+ remove: UseFieldArrayRemove;
187
+ insert: UseFieldArrayInsert<TFieldValues, TFieldArrayName>;
188
+ update: UseFieldArrayUpdate<TFieldValues, TFieldArrayName>;
189
+ replace: UseFieldArrayReplace<TFieldValues, TFieldArrayName>;
25
190
  fields: FieldArrayWithId<TFieldValues, TFieldArrayName>[];
26
191
  };
27
192
  //# sourceMappingURL=fieldArray.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fieldArray.d.ts","sourceRoot":"","sources":["../../src/types/fieldArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE1D,oBAAY,kBAAkB,CAC5B,YAAY,SAAS,WAAW,EAChC,eAAe,SAAS,UAAU,IAChC;IACF,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,oBAAY,gBAAgB,CAC1B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,eAAe,SAAS,UAAU,GAAG,KAAK,IACxC,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAErE,oBAAY,UAAU,CACpB,YAAY,SAAS,WAAW,EAChC,eAAe,SAAS,UAAU,IAChC,cAAc,CAAC,YAAY,EAAE,eAAe,CAAC,SAC7C,aAAa,CAAC,MAAM,CAAC,CAAC,GACtB,IAAI,GACJ,SAAS,GACT,CAAC,GACD,KAAK,CAAC;AAEV,oBAAY,qBAAqB,GAAG;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,oBAAY,mBAAmB,CAC7B,YAAY,SAAS,WAAW,EAChC,eAAe,SAAS,UAAU,IAChC;IACF,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,OAAO,EAAE,CACP,KAAK,EACD,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,GAClD,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,EAAE,EACxD,OAAO,CAAC,EAAE,qBAAqB,KAC5B,IAAI,CAAC;IACV,MAAM,EAAE,CACN,KAAK,EACD,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,GAClD,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,EAAE,EACxD,OAAO,CAAC,EAAE,qBAAqB,KAC5B,IAAI,CAAC;IACV,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,MAAM,EAAE,CACN,KAAK,EAAE,MAAM,EACb,KAAK,EACD,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,GAClD,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,EAAE,EACxD,OAAO,CAAC,EAAE,qBAAqB,KAC5B,IAAI,CAAC;IACV,MAAM,EAAE,CACN,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,KACtD,IAAI,CAAC;IACV,OAAO,EAAE,CACP,KAAK,EACD,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,GAClD,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,EAAE,KACrD,IAAI,CAAC;IACV,MAAM,EAAE,gBAAgB,CAAC,YAAY,EAAE,eAAe,CAAC,EAAE,CAAC;CAC3D,CAAC"}
1
+ {"version":3,"file":"fieldArray.d.ts","sourceRoot":"","sources":["../../src/types/fieldArray.ts"],"names":[],"mappings":"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"}