react-hook-form 7.44.0-rc.0 → 7.44.0-rc.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 (164) hide show
  1. package/README.md +6 -0
  2. package/dist/__tests__/controller.server.test.d.ts +1 -1
  3. package/dist/__tests__/controller.test.d.ts +1 -1
  4. package/dist/__tests__/form.test.d.ts +1 -1
  5. package/dist/__tests__/logic/validateField.test.d.ts +1 -1
  6. package/dist/__tests__/type.test.d.ts +1 -1
  7. package/dist/__tests__/useController.test.d.ts +1 -1
  8. package/dist/__tests__/useFieldArray/append.test.d.ts +1 -1
  9. package/dist/__tests__/useFieldArray/focus.test.d.ts +1 -1
  10. package/dist/__tests__/useFieldArray/insert.test.d.ts +1 -1
  11. package/dist/__tests__/useFieldArray/move.test.d.ts +1 -1
  12. package/dist/__tests__/useFieldArray/prepend.test.d.ts +1 -1
  13. package/dist/__tests__/useFieldArray/remove.test.d.ts +1 -1
  14. package/dist/__tests__/useFieldArray/replace.test.d.ts +1 -1
  15. package/dist/__tests__/useFieldArray/swap.test.d.ts +1 -1
  16. package/dist/__tests__/useFieldArray/update.test.d.ts +1 -1
  17. package/dist/__tests__/useFieldArray.test.d.ts +1 -1
  18. package/dist/__tests__/useForm/clearErrors.test.d.ts +1 -1
  19. package/dist/__tests__/useForm/formState.test.d.ts +1 -1
  20. package/dist/__tests__/useForm/getFieldState.test.d.ts +1 -1
  21. package/dist/__tests__/useForm/getValues.test.d.ts +1 -1
  22. package/dist/__tests__/useForm/handleSubmit.test.d.ts +1 -1
  23. package/dist/__tests__/useForm/register.test.d.ts +1 -1
  24. package/dist/__tests__/useForm/reset.test.d.ts +1 -1
  25. package/dist/__tests__/useForm/resetField.test.d.ts +1 -1
  26. package/dist/__tests__/useForm/resolver.test.d.ts +1 -1
  27. package/dist/__tests__/useForm/setError.test.d.ts +1 -1
  28. package/dist/__tests__/useForm/setValue.test.d.ts +1 -1
  29. package/dist/__tests__/useForm/trigger.test.d.ts +1 -1
  30. package/dist/__tests__/useForm/unregister.test.d.ts +1 -1
  31. package/dist/__tests__/useForm/watch.test.d.ts +1 -1
  32. package/dist/__tests__/useForm.server.test.d.ts +1 -1
  33. package/dist/__tests__/useForm.test.d.ts +1 -1
  34. package/dist/__tests__/useFormContext.server.test.d.ts +1 -1
  35. package/dist/__tests__/useFormContext.test.d.ts +1 -1
  36. package/dist/__tests__/useFormState.test.d.ts +1 -1
  37. package/dist/__tests__/useWatch.test.d.ts +1 -1
  38. package/dist/__typetest__/__fixtures__/index.d.ts +4 -4
  39. package/dist/__typetest__/__fixtures__/pathString.d.ts +3 -3
  40. package/dist/__typetest__/__fixtures__/traversable.d.ts +13 -13
  41. package/dist/__typetest__/__fixtures__/tuple.d.ts +14 -14
  42. package/dist/__typetest__/__fixtures__/type.d.ts +11 -11
  43. package/dist/__typetest__/errors.test-d.d.ts +1 -1
  44. package/dist/__typetest__/form.test-d.d.ts +1 -1
  45. package/dist/__typetest__/path/common.test-d.d.ts +1 -1
  46. package/dist/__typetest__/path/eager.test-d.d.ts +1 -1
  47. package/dist/__typetest__/util.test-d.d.ts +1 -1
  48. package/dist/constants.d.ts +16 -16
  49. package/dist/controller.d.ts +46 -46
  50. package/dist/controller.d.ts.map +1 -1
  51. package/dist/form.d.ts +59 -59
  52. package/dist/form.d.ts.map +1 -1
  53. package/dist/index.cjs.js +1 -1
  54. package/dist/index.cjs.js.map +1 -1
  55. package/dist/index.d.ts +11 -11
  56. package/dist/index.esm.mjs +2269 -2257
  57. package/dist/index.esm.mjs.map +1 -1
  58. package/dist/index.umd.js +1 -1
  59. package/dist/index.umd.js.map +1 -1
  60. package/dist/logic/appendErrors.d.ts +3 -3
  61. package/dist/logic/createFormControl.d.ts +26 -26
  62. package/dist/logic/createFormControl.d.ts.map +1 -1
  63. package/dist/logic/focusFieldBy.d.ts +3 -3
  64. package/dist/logic/generateId.d.ts +2 -2
  65. package/dist/logic/generateWatchOutput.d.ts +3 -3
  66. package/dist/logic/getCheckboxValue.d.ts +6 -6
  67. package/dist/logic/getDirtyFields.d.ts +2 -2
  68. package/dist/logic/getEventValue.d.ts +2 -2
  69. package/dist/logic/getFieldValue.d.ts +2 -2
  70. package/dist/logic/getFieldValueAs.d.ts +3 -3
  71. package/dist/logic/getFocusFieldName.d.ts +3 -3
  72. package/dist/logic/getNodeParentName.d.ts +2 -2
  73. package/dist/logic/getProxyFormState.d.ts +3 -3
  74. package/dist/logic/getRadioValue.d.ts +6 -6
  75. package/dist/logic/getResolverOptions.d.ts +13 -13
  76. package/dist/logic/getRuleValue.d.ts +3 -3
  77. package/dist/logic/getValidateError.d.ts +2 -2
  78. package/dist/logic/getValidationModes.d.ts +9 -9
  79. package/dist/logic/getValueAndMessage.d.ts +6 -6
  80. package/dist/logic/hasValidation.d.ts +3 -3
  81. package/dist/logic/index.d.ts +2 -2
  82. package/dist/logic/isNameInFieldArray.d.ts +3 -3
  83. package/dist/logic/isWatched.d.ts +3 -3
  84. package/dist/logic/schemaErrorLookup.d.ts +5 -5
  85. package/dist/logic/shouldRenderFormState.d.ts +5 -5
  86. package/dist/logic/shouldSubscribeByName.d.ts +2 -2
  87. package/dist/logic/skipValidation.d.ts +11 -11
  88. package/dist/logic/unsetEmptyArray.d.ts +2 -2
  89. package/dist/logic/updateFieldArrayRootError.d.ts +3 -3
  90. package/dist/logic/validateField.d.ts +3 -3
  91. package/dist/types/controller.d.ts +56 -56
  92. package/dist/types/errors.d.ts +35 -35
  93. package/dist/types/events.d.ts +1 -1
  94. package/dist/types/fieldArray.d.ts +194 -194
  95. package/dist/types/fields.d.ts +28 -28
  96. package/dist/types/form.d.ts +631 -630
  97. package/dist/types/form.d.ts.map +1 -1
  98. package/dist/types/index.d.ts +10 -10
  99. package/dist/types/path/common.d.ts +315 -315
  100. package/dist/types/path/eager.d.ts +120 -120
  101. package/dist/types/path/index.d.ts +3 -3
  102. package/dist/types/resolvers.d.ts +19 -19
  103. package/dist/types/utils.d.ts +70 -70
  104. package/dist/types/validator.d.ts +38 -38
  105. package/dist/types/validator.d.ts.map +1 -1
  106. package/dist/useController.d.ts +26 -26
  107. package/dist/useController.d.ts.map +1 -1
  108. package/dist/useFieldArray.d.ts +39 -39
  109. package/dist/useFieldArray.d.ts.map +1 -1
  110. package/dist/useForm.d.ts +31 -31
  111. package/dist/useForm.d.ts.map +1 -1
  112. package/dist/useFormContext.d.ts +64 -64
  113. package/dist/useFormContext.d.ts.map +1 -1
  114. package/dist/useFormState.d.ts +33 -33
  115. package/dist/useFormState.d.ts.map +1 -1
  116. package/dist/useSubscribe.d.ts +8 -8
  117. package/dist/useWatch.d.ts +99 -99
  118. package/dist/utils/append.d.ts +1 -1
  119. package/dist/utils/cloneObject.d.ts +1 -1
  120. package/dist/utils/cloneObject.d.ts.map +1 -1
  121. package/dist/utils/compact.d.ts +2 -2
  122. package/dist/utils/convertToArrayPayload.d.ts +2 -2
  123. package/dist/utils/createSubject.d.ts +13 -13
  124. package/dist/utils/deepEqual.d.ts +1 -1
  125. package/dist/utils/deepMerge.d.ts +1 -1
  126. package/dist/utils/fillBooleanArray.d.ts +2 -2
  127. package/dist/utils/fillEmptyArray.d.ts +2 -2
  128. package/dist/utils/get.d.ts +2 -2
  129. package/dist/utils/index.d.ts +3 -3
  130. package/dist/utils/insert.d.ts +2 -2
  131. package/dist/utils/isBoolean.d.ts +2 -2
  132. package/dist/utils/isCheckBoxInput.d.ts +3 -3
  133. package/dist/utils/isDateObject.d.ts +2 -2
  134. package/dist/utils/isEmptyObject.d.ts +3 -3
  135. package/dist/utils/isFileInput.d.ts +3 -3
  136. package/dist/utils/isFunction.d.ts +2 -2
  137. package/dist/utils/isHTMLElement.d.ts +2 -2
  138. package/dist/utils/isKey.d.ts +2 -2
  139. package/dist/utils/isMessage.d.ts +2 -2
  140. package/dist/utils/isMultipleSelect.d.ts +3 -3
  141. package/dist/utils/isNullOrUndefined.d.ts +2 -2
  142. package/dist/utils/isObject.d.ts +3 -3
  143. package/dist/utils/isPlainObject.d.ts +2 -2
  144. package/dist/utils/isPrimitive.d.ts +3 -3
  145. package/dist/utils/isRadioInput.d.ts +3 -3
  146. package/dist/utils/isRadioOrCheckbox.d.ts +3 -3
  147. package/dist/utils/isRegex.d.ts +2 -2
  148. package/dist/utils/isSelectInput.d.ts +3 -3
  149. package/dist/utils/isString.d.ts +2 -2
  150. package/dist/utils/isUndefined.d.ts +2 -2
  151. package/dist/utils/isWeb.d.ts +2 -2
  152. package/dist/utils/live.d.ts +3 -3
  153. package/dist/utils/move.d.ts +2 -2
  154. package/dist/utils/objectHasFunction.d.ts +2 -2
  155. package/dist/utils/omit.d.ts +2 -2
  156. package/dist/utils/prepend.d.ts +1 -1
  157. package/dist/utils/remove.d.ts +2 -2
  158. package/dist/utils/set.d.ts +2 -2
  159. package/dist/utils/sleep.d.ts +1 -1
  160. package/dist/utils/stringToPath.d.ts +2 -2
  161. package/dist/utils/swap.d.ts +2 -2
  162. package/dist/utils/unset.d.ts +1 -1
  163. package/dist/utils/update.d.ts +2 -2
  164. package/package.json +9 -9
@@ -1,195 +1,195 @@
1
- import { FieldValues } from './fields';
2
- import { Control } from './form';
3
- import { FieldArrayPath, FieldArrayPathValue } from './path';
4
- import { RegisterOptions, Validate } from './validator';
5
- export type UseFieldArrayProps<TFieldValues extends FieldValues = FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>, TKeyName extends string = 'id'> = {
6
- name: TFieldArrayName;
7
- keyName?: TKeyName;
8
- control?: Control<TFieldValues>;
9
- rules?: {
10
- validate?: Validate<FieldArray<TFieldValues, TFieldArrayName>[], TFieldValues> | Record<string, Validate<FieldArray<TFieldValues, TFieldArrayName>[], TFieldValues>>;
11
- } & Pick<RegisterOptions<TFieldValues>, 'maxLength' | 'minLength' | 'required'>;
12
- shouldUnregister?: boolean;
13
- };
14
- /**
15
- * `useFieldArray` returned `fields` with unique id
16
- */
17
- export type FieldArrayWithId<TFieldValues extends FieldValues = FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>, TKeyName extends string = 'id'> = FieldArray<TFieldValues, TFieldArrayName> & Record<TKeyName, string>;
18
- export type FieldArray<TFieldValues extends FieldValues = FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>> = FieldArrayPathValue<TFieldValues, TFieldArrayName> extends ReadonlyArray<infer U> | null | undefined ? U : never;
19
- /**
20
- * `useFieldArray` focus option, ability to toggle focus on and off with `shouldFocus` and setting focus by either field index or name.
21
- */
22
- export type FieldArrayMethodProps = {
23
- shouldFocus?: boolean;
24
- focusIndex?: number;
25
- focusName?: string;
26
- };
27
- /**
28
- * Swap field array by supplying from and to index
29
- *
30
- * @remarks
31
- * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
32
- *
33
- * @param indexA - from index
34
- * @param indexB - to index
35
- *
36
- * @example
37
- * ```tsx
38
- * <button type="button" onClick={() => swap(0, 1)}>swap</button>
39
- * ```
40
- */
41
- export type UseFieldArraySwap = (indexA: number, indexB: number) => void;
42
- /**
43
- * Move field array by supplying from and to index
44
- *
45
- * @remarks
46
- * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
47
- *
48
- * @param indexA - from index
49
- * @param indexB - to index
50
- *
51
- * @example
52
- * ```tsx
53
- * <button type="button" onClick={() => move(0, 1)}>swap</button>
54
- * ```
55
- */
56
- export type UseFieldArrayMove = (indexA: number, indexB: number) => void;
57
- /**
58
- * Prepend field/fields to the start of the fields and optionally focus. The input value will be registered during this action.
59
- *
60
- * @remarks
61
- * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
62
- *
63
- * @param value - prepend items or items
64
- * @param options - focus options
65
- *
66
- * @example
67
- * ```tsx
68
- * <button type="button" onClick={() => prepend({ name: "data" })}>Prepend</button>
69
- * <button type="button" onClick={() => prepend({ name: "data" }, { shouldFocus: false })}>Prepend</button>
70
- * <button
71
- * type="button"
72
- * onClick={() => prepend([{ name: "data" }, { name: "data" }])}
73
- * >
74
- * Prepend
75
- * </button>
76
- * ```
77
- */
78
- export type UseFieldArrayPrepend<TFieldValues extends FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>> = (value: FieldArray<TFieldValues, TFieldArrayName> | FieldArray<TFieldValues, TFieldArrayName>[], options?: FieldArrayMethodProps) => void;
79
- /**
80
- * Append field/fields to the end of your fields and focus. The input value will be registered during this action.
81
- *
82
- * @remarks
83
- * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
84
- *
85
- * @param value - append items or items.
86
- * @param options - focus options
87
- *
88
- * @example
89
- * ```tsx
90
- * <button type="button" onClick={() => append({ name: "data" })}>Append</button>
91
- * <button type="button" onClick={() => append({ name: "data" }, { shouldFocus: false })}>Append</button>
92
- * <button
93
- * type="button"
94
- * onClick={() => append([{ name: "data" }, { name: "data" }])}
95
- * >
96
- * Append
97
- * </button>
98
- * ```
99
- */
100
- export type UseFieldArrayAppend<TFieldValues extends FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>> = (value: FieldArray<TFieldValues, TFieldArrayName> | FieldArray<TFieldValues, TFieldArrayName>[], options?: FieldArrayMethodProps) => void;
101
- /**
102
- * Remove field/fields at particular position.
103
- *
104
- * @remarks
105
- * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
106
- *
107
- * @param index - index to remove at, or remove all when no index provided.
108
- *
109
- * @example
110
- * ```tsx
111
- * <button type="button" onClick={() => remove(0)}>Remove</button>
112
- * <button
113
- * type="button"
114
- * onClick={() => remove()}
115
- * >
116
- * Remove all
117
- * </button>
118
- * ```
119
- */
120
- export type UseFieldArrayRemove = (index?: number | number[]) => void;
121
- /**
122
- * Insert field/fields at particular position and focus.
123
- *
124
- * @remarks
125
- * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
126
- *
127
- * @param index - insert position
128
- * @param value - insert field or fields
129
- * @param options - focus options
130
- *
131
- * @example
132
- * ```tsx
133
- * <button type="button" onClick={() => insert(1, { name: "data" })}>Insert</button>
134
- * <button type="button" onClick={() => insert(1, { name: "data" }, { shouldFocus: false })}>Insert</button>
135
- * <button
136
- * type="button"
137
- * onClick={() => insert(1, [{ name: "data" }, { name: "data" }])}
138
- * >
139
- * Insert
140
- * </button>
141
- * ```
142
- */
143
- export type UseFieldArrayInsert<TFieldValues extends FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>> = (index: number, value: FieldArray<TFieldValues, TFieldArrayName> | FieldArray<TFieldValues, TFieldArrayName>[], options?: FieldArrayMethodProps) => void;
144
- /**
145
- * Update field/fields at particular position.
146
- *
147
- * @remarks
148
- * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
149
- *
150
- * @param index - insert position
151
- * @param value - insert field or fields
152
- *
153
- * @example
154
- * ```tsx
155
- * <button type="button" onClick={() => update(1, { name: "data" })}>Update</button>
156
- * <button
157
- * type="button"
158
- * onClick={() => update(1, [{ name: "data" }, { name: "data" }])}
159
- * >
160
- * Update
161
- * </button>
162
- * ```
163
- */
164
- export type UseFieldArrayUpdate<TFieldValues extends FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>> = (index: number, value: FieldArray<TFieldValues, TFieldArrayName>) => void;
165
- /**
166
- * Replace the entire field array values.
167
- *
168
- * @remarks
169
- * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
170
- *
171
- * @param value - the entire field values.
172
- *
173
- * @example
174
- * ```tsx
175
- * <button
176
- * type="button"
177
- * onClick={() => replace([{ name: "data" }, { name: "data" }])}
178
- * >
179
- * Replace
180
- * </button>
181
- * ```
182
- */
183
- export type UseFieldArrayReplace<TFieldValues extends FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>> = (value: FieldArray<TFieldValues, TFieldArrayName> | FieldArray<TFieldValues, TFieldArrayName>[]) => void;
184
- export type UseFieldArrayReturn<TFieldValues extends FieldValues = FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>, TKeyName extends string = 'id'> = {
185
- swap: UseFieldArraySwap;
186
- move: UseFieldArrayMove;
187
- prepend: UseFieldArrayPrepend<TFieldValues, TFieldArrayName>;
188
- append: UseFieldArrayAppend<TFieldValues, TFieldArrayName>;
189
- remove: UseFieldArrayRemove;
190
- insert: UseFieldArrayInsert<TFieldValues, TFieldArrayName>;
191
- update: UseFieldArrayUpdate<TFieldValues, TFieldArrayName>;
192
- replace: UseFieldArrayReplace<TFieldValues, TFieldArrayName>;
193
- fields: FieldArrayWithId<TFieldValues, TFieldArrayName, TKeyName>[];
194
- };
1
+ import { FieldValues } from './fields';
2
+ import { Control } from './form';
3
+ import { FieldArrayPath, FieldArrayPathValue } from './path';
4
+ import { RegisterOptions, Validate } from './validator';
5
+ export type UseFieldArrayProps<TFieldValues extends FieldValues = FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>, TKeyName extends string = 'id'> = {
6
+ name: TFieldArrayName;
7
+ keyName?: TKeyName;
8
+ control?: Control<TFieldValues>;
9
+ rules?: {
10
+ validate?: Validate<FieldArray<TFieldValues, TFieldArrayName>[], TFieldValues> | Record<string, Validate<FieldArray<TFieldValues, TFieldArrayName>[], TFieldValues>>;
11
+ } & Pick<RegisterOptions<TFieldValues>, 'maxLength' | 'minLength' | 'required'>;
12
+ shouldUnregister?: boolean;
13
+ };
14
+ /**
15
+ * `useFieldArray` returned `fields` with unique id
16
+ */
17
+ export type FieldArrayWithId<TFieldValues extends FieldValues = FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>, TKeyName extends string = 'id'> = FieldArray<TFieldValues, TFieldArrayName> & Record<TKeyName, string>;
18
+ export type FieldArray<TFieldValues extends FieldValues = FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>> = FieldArrayPathValue<TFieldValues, TFieldArrayName> extends ReadonlyArray<infer U> | null | undefined ? U : never;
19
+ /**
20
+ * `useFieldArray` focus option, ability to toggle focus on and off with `shouldFocus` and setting focus by either field index or name.
21
+ */
22
+ export type FieldArrayMethodProps = {
23
+ shouldFocus?: boolean;
24
+ focusIndex?: number;
25
+ focusName?: string;
26
+ };
27
+ /**
28
+ * Swap field array by supplying from and to index
29
+ *
30
+ * @remarks
31
+ * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
32
+ *
33
+ * @param indexA - from index
34
+ * @param indexB - to index
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * <button type="button" onClick={() => swap(0, 1)}>swap</button>
39
+ * ```
40
+ */
41
+ export type UseFieldArraySwap = (indexA: number, indexB: number) => void;
42
+ /**
43
+ * Move field array by supplying from and to index
44
+ *
45
+ * @remarks
46
+ * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
47
+ *
48
+ * @param indexA - from index
49
+ * @param indexB - to index
50
+ *
51
+ * @example
52
+ * ```tsx
53
+ * <button type="button" onClick={() => move(0, 1)}>swap</button>
54
+ * ```
55
+ */
56
+ export type UseFieldArrayMove = (indexA: number, indexB: number) => void;
57
+ /**
58
+ * Prepend field/fields to the start of the fields and optionally focus. The input value will be registered during this action.
59
+ *
60
+ * @remarks
61
+ * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
62
+ *
63
+ * @param value - prepend items or items
64
+ * @param options - focus options
65
+ *
66
+ * @example
67
+ * ```tsx
68
+ * <button type="button" onClick={() => prepend({ name: "data" })}>Prepend</button>
69
+ * <button type="button" onClick={() => prepend({ name: "data" }, { shouldFocus: false })}>Prepend</button>
70
+ * <button
71
+ * type="button"
72
+ * onClick={() => prepend([{ name: "data" }, { name: "data" }])}
73
+ * >
74
+ * Prepend
75
+ * </button>
76
+ * ```
77
+ */
78
+ export type UseFieldArrayPrepend<TFieldValues extends FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>> = (value: FieldArray<TFieldValues, TFieldArrayName> | FieldArray<TFieldValues, TFieldArrayName>[], options?: FieldArrayMethodProps) => void;
79
+ /**
80
+ * Append field/fields to the end of your fields and focus. The input value will be registered during this action.
81
+ *
82
+ * @remarks
83
+ * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
84
+ *
85
+ * @param value - append items or items.
86
+ * @param options - focus options
87
+ *
88
+ * @example
89
+ * ```tsx
90
+ * <button type="button" onClick={() => append({ name: "data" })}>Append</button>
91
+ * <button type="button" onClick={() => append({ name: "data" }, { shouldFocus: false })}>Append</button>
92
+ * <button
93
+ * type="button"
94
+ * onClick={() => append([{ name: "data" }, { name: "data" }])}
95
+ * >
96
+ * Append
97
+ * </button>
98
+ * ```
99
+ */
100
+ export type UseFieldArrayAppend<TFieldValues extends FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>> = (value: FieldArray<TFieldValues, TFieldArrayName> | FieldArray<TFieldValues, TFieldArrayName>[], options?: FieldArrayMethodProps) => void;
101
+ /**
102
+ * Remove field/fields at particular position.
103
+ *
104
+ * @remarks
105
+ * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
106
+ *
107
+ * @param index - index to remove at, or remove all when no index provided.
108
+ *
109
+ * @example
110
+ * ```tsx
111
+ * <button type="button" onClick={() => remove(0)}>Remove</button>
112
+ * <button
113
+ * type="button"
114
+ * onClick={() => remove()}
115
+ * >
116
+ * Remove all
117
+ * </button>
118
+ * ```
119
+ */
120
+ export type UseFieldArrayRemove = (index?: number | number[]) => void;
121
+ /**
122
+ * Insert field/fields at particular position and focus.
123
+ *
124
+ * @remarks
125
+ * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
126
+ *
127
+ * @param index - insert position
128
+ * @param value - insert field or fields
129
+ * @param options - focus options
130
+ *
131
+ * @example
132
+ * ```tsx
133
+ * <button type="button" onClick={() => insert(1, { name: "data" })}>Insert</button>
134
+ * <button type="button" onClick={() => insert(1, { name: "data" }, { shouldFocus: false })}>Insert</button>
135
+ * <button
136
+ * type="button"
137
+ * onClick={() => insert(1, [{ name: "data" }, { name: "data" }])}
138
+ * >
139
+ * Insert
140
+ * </button>
141
+ * ```
142
+ */
143
+ export type UseFieldArrayInsert<TFieldValues extends FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>> = (index: number, value: FieldArray<TFieldValues, TFieldArrayName> | FieldArray<TFieldValues, TFieldArrayName>[], options?: FieldArrayMethodProps) => void;
144
+ /**
145
+ * Update field/fields at particular position.
146
+ *
147
+ * @remarks
148
+ * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
149
+ *
150
+ * @param index - insert position
151
+ * @param value - insert field or fields
152
+ *
153
+ * @example
154
+ * ```tsx
155
+ * <button type="button" onClick={() => update(1, { name: "data" })}>Update</button>
156
+ * <button
157
+ * type="button"
158
+ * onClick={() => update(1, [{ name: "data" }, { name: "data" }])}
159
+ * >
160
+ * Update
161
+ * </button>
162
+ * ```
163
+ */
164
+ export type UseFieldArrayUpdate<TFieldValues extends FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>> = (index: number, value: FieldArray<TFieldValues, TFieldArrayName>) => void;
165
+ /**
166
+ * Replace the entire field array values.
167
+ *
168
+ * @remarks
169
+ * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/calc-i231d)
170
+ *
171
+ * @param value - the entire field values.
172
+ *
173
+ * @example
174
+ * ```tsx
175
+ * <button
176
+ * type="button"
177
+ * onClick={() => replace([{ name: "data" }, { name: "data" }])}
178
+ * >
179
+ * Replace
180
+ * </button>
181
+ * ```
182
+ */
183
+ export type UseFieldArrayReplace<TFieldValues extends FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>> = (value: FieldArray<TFieldValues, TFieldArrayName> | FieldArray<TFieldValues, TFieldArrayName>[]) => void;
184
+ export type UseFieldArrayReturn<TFieldValues extends FieldValues = FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>, TKeyName extends string = 'id'> = {
185
+ swap: UseFieldArraySwap;
186
+ move: UseFieldArrayMove;
187
+ prepend: UseFieldArrayPrepend<TFieldValues, TFieldArrayName>;
188
+ append: UseFieldArrayAppend<TFieldValues, TFieldArrayName>;
189
+ remove: UseFieldArrayRemove;
190
+ insert: UseFieldArrayInsert<TFieldValues, TFieldArrayName>;
191
+ update: UseFieldArrayUpdate<TFieldValues, TFieldArrayName>;
192
+ replace: UseFieldArrayReplace<TFieldValues, TFieldArrayName>;
193
+ fields: FieldArrayWithId<TFieldValues, TFieldArrayName, TKeyName>[];
194
+ };
195
195
  //# sourceMappingURL=fieldArray.d.ts.map
@@ -1,29 +1,29 @@
1
- import { IsFlatObject, Noop } from './utils';
2
- import { RegisterOptions } from './validator';
3
- export type InternalFieldName = string;
4
- export type FieldName<TFieldValues extends FieldValues> = IsFlatObject<TFieldValues> extends true ? Extract<keyof TFieldValues, string> : string;
5
- export type CustomElement<TFieldValues extends FieldValues> = {
6
- name: FieldName<TFieldValues>;
7
- type?: string;
8
- value?: any;
9
- disabled?: boolean;
10
- checked?: boolean;
11
- options?: HTMLOptionsCollection;
12
- files?: FileList | null;
13
- focus?: Noop;
14
- };
15
- export type FieldValue<TFieldValues extends FieldValues> = TFieldValues[InternalFieldName];
16
- export type FieldValues = Record<string, any>;
17
- export type NativeFieldValue = string | number | boolean | null | undefined | unknown[];
18
- export type FieldElement<TFieldValues extends FieldValues = FieldValues> = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | CustomElement<TFieldValues>;
19
- export type Ref = FieldElement;
20
- export type Field = {
21
- _f: {
22
- ref: Ref;
23
- name: InternalFieldName;
24
- refs?: HTMLInputElement[];
25
- mount?: boolean;
26
- } & RegisterOptions;
27
- };
28
- export type FieldRefs = Partial<Record<InternalFieldName, Field>>;
1
+ import { IsFlatObject, Noop } from './utils';
2
+ import { RegisterOptions } from './validator';
3
+ export type InternalFieldName = string;
4
+ export type FieldName<TFieldValues extends FieldValues> = IsFlatObject<TFieldValues> extends true ? Extract<keyof TFieldValues, string> : string;
5
+ export type CustomElement<TFieldValues extends FieldValues> = {
6
+ name: FieldName<TFieldValues>;
7
+ type?: string;
8
+ value?: any;
9
+ disabled?: boolean;
10
+ checked?: boolean;
11
+ options?: HTMLOptionsCollection;
12
+ files?: FileList | null;
13
+ focus?: Noop;
14
+ };
15
+ export type FieldValue<TFieldValues extends FieldValues> = TFieldValues[InternalFieldName];
16
+ export type FieldValues = Record<string, any>;
17
+ export type NativeFieldValue = string | number | boolean | null | undefined | unknown[];
18
+ export type FieldElement<TFieldValues extends FieldValues = FieldValues> = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | CustomElement<TFieldValues>;
19
+ export type Ref = FieldElement;
20
+ export type Field = {
21
+ _f: {
22
+ ref: Ref;
23
+ name: InternalFieldName;
24
+ refs?: HTMLInputElement[];
25
+ mount?: boolean;
26
+ } & RegisterOptions;
27
+ };
28
+ export type FieldRefs = Partial<Record<InternalFieldName, Field>>;
29
29
  //# sourceMappingURL=fields.d.ts.map