@depup/react-hook-form 7.72.0-depup.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.
Files changed (442) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +25 -0
  3. package/changes.json +5 -0
  4. package/dist/__tests__/controller.server.test.d.ts +2 -0
  5. package/dist/__tests__/controller.server.test.d.ts.map +1 -0
  6. package/dist/__tests__/controller.test.d.ts +2 -0
  7. package/dist/__tests__/controller.test.d.ts.map +1 -0
  8. package/dist/__tests__/form.test.d.ts +2 -0
  9. package/dist/__tests__/form.test.d.ts.map +1 -0
  10. package/dist/__tests__/formStateSubscribe.server.test.d.ts +2 -0
  11. package/dist/__tests__/formStateSubscribe.server.test.d.ts.map +1 -0
  12. package/dist/__tests__/formStateSubscribe.test.d.ts +2 -0
  13. package/dist/__tests__/formStateSubscribe.test.d.ts.map +1 -0
  14. package/dist/__tests__/isPlainObject.test.d.ts +2 -0
  15. package/dist/__tests__/isPlainObject.test.d.ts.map +1 -0
  16. package/dist/__tests__/logic/appendErrors.test.d.ts +2 -0
  17. package/dist/__tests__/logic/appendErrors.test.d.ts.map +1 -0
  18. package/dist/__tests__/logic/createFormControl.test.d.ts +2 -0
  19. package/dist/__tests__/logic/createFormControl.test.d.ts.map +1 -0
  20. package/dist/__tests__/logic/generateId.test.d.ts +2 -0
  21. package/dist/__tests__/logic/generateId.test.d.ts.map +1 -0
  22. package/dist/__tests__/logic/getCheckboxValue.test.d.ts +2 -0
  23. package/dist/__tests__/logic/getCheckboxValue.test.d.ts.map +1 -0
  24. package/dist/__tests__/logic/getDirtyFields.test.d.ts +2 -0
  25. package/dist/__tests__/logic/getDirtyFields.test.d.ts.map +1 -0
  26. package/dist/__tests__/logic/getEventValue.test.d.ts +2 -0
  27. package/dist/__tests__/logic/getEventValue.test.d.ts.map +1 -0
  28. package/dist/__tests__/logic/getFieldValue.test.d.ts +2 -0
  29. package/dist/__tests__/logic/getFieldValue.test.d.ts.map +1 -0
  30. package/dist/__tests__/logic/getFieldValueAs.test.d.ts +2 -0
  31. package/dist/__tests__/logic/getFieldValueAs.test.d.ts.map +1 -0
  32. package/dist/__tests__/logic/getFocusFieldName.test.d.ts +2 -0
  33. package/dist/__tests__/logic/getFocusFieldName.test.d.ts.map +1 -0
  34. package/dist/__tests__/logic/getNodeParentName.test.d.ts +2 -0
  35. package/dist/__tests__/logic/getNodeParentName.test.d.ts.map +1 -0
  36. package/dist/__tests__/logic/getRadioValue.test.d.ts +2 -0
  37. package/dist/__tests__/logic/getRadioValue.test.d.ts.map +1 -0
  38. package/dist/__tests__/logic/getResolverOptions.test.d.ts +2 -0
  39. package/dist/__tests__/logic/getResolverOptions.test.d.ts.map +1 -0
  40. package/dist/__tests__/logic/getRuleValue.test.d.ts +2 -0
  41. package/dist/__tests__/logic/getRuleValue.test.d.ts.map +1 -0
  42. package/dist/__tests__/logic/getValidateError.test.d.ts +2 -0
  43. package/dist/__tests__/logic/getValidateError.test.d.ts.map +1 -0
  44. package/dist/__tests__/logic/getValidationModes.test.d.ts +2 -0
  45. package/dist/__tests__/logic/getValidationModes.test.d.ts.map +1 -0
  46. package/dist/__tests__/logic/getValueAndMessage.test.d.ts +2 -0
  47. package/dist/__tests__/logic/getValueAndMessage.test.d.ts.map +1 -0
  48. package/dist/__tests__/logic/hasPromiseValidation.test.d.ts +2 -0
  49. package/dist/__tests__/logic/hasPromiseValidation.test.d.ts.map +1 -0
  50. package/dist/__tests__/logic/hasValidation.test.d.ts +2 -0
  51. package/dist/__tests__/logic/hasValidation.test.d.ts.map +1 -0
  52. package/dist/__tests__/logic/isNameInFieldArray.test.d.ts +2 -0
  53. package/dist/__tests__/logic/isNameInFieldArray.test.d.ts.map +1 -0
  54. package/dist/__tests__/logic/isWatched.test.d.ts +2 -0
  55. package/dist/__tests__/logic/isWatched.test.d.ts.map +1 -0
  56. package/dist/__tests__/logic/iterateFieldsByAction.test.d.ts +2 -0
  57. package/dist/__tests__/logic/iterateFieldsByAction.test.d.ts.map +1 -0
  58. package/dist/__tests__/logic/schemaErrorLookup.test.d.ts +2 -0
  59. package/dist/__tests__/logic/schemaErrorLookup.test.d.ts.map +1 -0
  60. package/dist/__tests__/logic/shouldRenderFormState.test.d.ts +2 -0
  61. package/dist/__tests__/logic/shouldRenderFormState.test.d.ts.map +1 -0
  62. package/dist/__tests__/logic/shouldSubscribeByName.test.d.ts +2 -0
  63. package/dist/__tests__/logic/shouldSubscribeByName.test.d.ts.map +1 -0
  64. package/dist/__tests__/logic/skipValidation.test.d.ts +2 -0
  65. package/dist/__tests__/logic/skipValidation.test.d.ts.map +1 -0
  66. package/dist/__tests__/logic/unsetEmptyArray.test.d.ts +2 -0
  67. package/dist/__tests__/logic/unsetEmptyArray.test.d.ts.map +1 -0
  68. package/dist/__tests__/logic/validateField.test.d.ts +2 -0
  69. package/dist/__tests__/logic/validateField.test.d.ts.map +1 -0
  70. package/dist/__tests__/type.test.d.ts +2 -0
  71. package/dist/__tests__/type.test.d.ts.map +1 -0
  72. package/dist/__tests__/useController.test.d.ts +2 -0
  73. package/dist/__tests__/useController.test.d.ts.map +1 -0
  74. package/dist/__tests__/useFieldArray/append.test.d.ts +2 -0
  75. package/dist/__tests__/useFieldArray/append.test.d.ts.map +1 -0
  76. package/dist/__tests__/useFieldArray/dirtyFields.test.d.ts +2 -0
  77. package/dist/__tests__/useFieldArray/dirtyFields.test.d.ts.map +1 -0
  78. package/dist/__tests__/useFieldArray/focus.test.d.ts +2 -0
  79. package/dist/__tests__/useFieldArray/focus.test.d.ts.map +1 -0
  80. package/dist/__tests__/useFieldArray/insert.test.d.ts +2 -0
  81. package/dist/__tests__/useFieldArray/insert.test.d.ts.map +1 -0
  82. package/dist/__tests__/useFieldArray/move.test.d.ts +2 -0
  83. package/dist/__tests__/useFieldArray/move.test.d.ts.map +1 -0
  84. package/dist/__tests__/useFieldArray/prepend.test.d.ts +2 -0
  85. package/dist/__tests__/useFieldArray/prepend.test.d.ts.map +1 -0
  86. package/dist/__tests__/useFieldArray/remove.test.d.ts +2 -0
  87. package/dist/__tests__/useFieldArray/remove.test.d.ts.map +1 -0
  88. package/dist/__tests__/useFieldArray/replace.test.d.ts +2 -0
  89. package/dist/__tests__/useFieldArray/replace.test.d.ts.map +1 -0
  90. package/dist/__tests__/useFieldArray/swap.test.d.ts +2 -0
  91. package/dist/__tests__/useFieldArray/swap.test.d.ts.map +1 -0
  92. package/dist/__tests__/useFieldArray/update.test.d.ts +2 -0
  93. package/dist/__tests__/useFieldArray/update.test.d.ts.map +1 -0
  94. package/dist/__tests__/useFieldArray.test.d.ts +2 -0
  95. package/dist/__tests__/useFieldArray.test.d.ts.map +1 -0
  96. package/dist/__tests__/useForm/clearErrors.test.d.ts +2 -0
  97. package/dist/__tests__/useForm/clearErrors.test.d.ts.map +1 -0
  98. package/dist/__tests__/useForm/formState.test.d.ts +2 -0
  99. package/dist/__tests__/useForm/formState.test.d.ts.map +1 -0
  100. package/dist/__tests__/useForm/getFieldState.test.d.ts +2 -0
  101. package/dist/__tests__/useForm/getFieldState.test.d.ts.map +1 -0
  102. package/dist/__tests__/useForm/getValues.test.d.ts +2 -0
  103. package/dist/__tests__/useForm/getValues.test.d.ts.map +1 -0
  104. package/dist/__tests__/useForm/handleSubmit.test.d.ts +2 -0
  105. package/dist/__tests__/useForm/handleSubmit.test.d.ts.map +1 -0
  106. package/dist/__tests__/useForm/register.test.d.ts +2 -0
  107. package/dist/__tests__/useForm/register.test.d.ts.map +1 -0
  108. package/dist/__tests__/useForm/reset.test.d.ts +2 -0
  109. package/dist/__tests__/useForm/reset.test.d.ts.map +1 -0
  110. package/dist/__tests__/useForm/resetField.test.d.ts +2 -0
  111. package/dist/__tests__/useForm/resetField.test.d.ts.map +1 -0
  112. package/dist/__tests__/useForm/resolver.test.d.ts +2 -0
  113. package/dist/__tests__/useForm/resolver.test.d.ts.map +1 -0
  114. package/dist/__tests__/useForm/setError.test.d.ts +2 -0
  115. package/dist/__tests__/useForm/setError.test.d.ts.map +1 -0
  116. package/dist/__tests__/useForm/setFocus.test.d.ts +2 -0
  117. package/dist/__tests__/useForm/setFocus.test.d.ts.map +1 -0
  118. package/dist/__tests__/useForm/setValue.test.d.ts +2 -0
  119. package/dist/__tests__/useForm/setValue.test.d.ts.map +1 -0
  120. package/dist/__tests__/useForm/subscribe.test.d.ts +2 -0
  121. package/dist/__tests__/useForm/subscribe.test.d.ts.map +1 -0
  122. package/dist/__tests__/useForm/trigger.test.d.ts +2 -0
  123. package/dist/__tests__/useForm/trigger.test.d.ts.map +1 -0
  124. package/dist/__tests__/useForm/unregister.test.d.ts +2 -0
  125. package/dist/__tests__/useForm/unregister.test.d.ts.map +1 -0
  126. package/dist/__tests__/useForm/useFormWithNullValues.test.d.ts +2 -0
  127. package/dist/__tests__/useForm/useFormWithNullValues.test.d.ts.map +1 -0
  128. package/dist/__tests__/useForm/watch.test.d.ts +2 -0
  129. package/dist/__tests__/useForm/watch.test.d.ts.map +1 -0
  130. package/dist/__tests__/useForm.server.test.d.ts +2 -0
  131. package/dist/__tests__/useForm.server.test.d.ts.map +1 -0
  132. package/dist/__tests__/useForm.test.d.ts +2 -0
  133. package/dist/__tests__/useForm.test.d.ts.map +1 -0
  134. package/dist/__tests__/useFormContext.server.test.d.ts +2 -0
  135. package/dist/__tests__/useFormContext.server.test.d.ts.map +1 -0
  136. package/dist/__tests__/useFormContext.test.d.ts +2 -0
  137. package/dist/__tests__/useFormContext.test.d.ts.map +1 -0
  138. package/dist/__tests__/useFormState.test.d.ts +2 -0
  139. package/dist/__tests__/useFormState.test.d.ts.map +1 -0
  140. package/dist/__tests__/useWatch.test.d.ts +2 -0
  141. package/dist/__tests__/useWatch.test.d.ts.map +1 -0
  142. package/dist/__tests__/utils/append.test.d.ts +2 -0
  143. package/dist/__tests__/utils/append.test.d.ts.map +1 -0
  144. package/dist/__tests__/utils/cloneObject.test.d.ts +2 -0
  145. package/dist/__tests__/utils/cloneObject.test.d.ts.map +1 -0
  146. package/dist/__tests__/utils/compact.test.d.ts +2 -0
  147. package/dist/__tests__/utils/compact.test.d.ts.map +1 -0
  148. package/dist/__tests__/utils/convertToArrayPayload.test.d.ts +2 -0
  149. package/dist/__tests__/utils/convertToArrayPayload.test.d.ts.map +1 -0
  150. package/dist/__tests__/utils/createSubject.test.d.ts +2 -0
  151. package/dist/__tests__/utils/createSubject.test.d.ts.map +1 -0
  152. package/dist/__tests__/utils/deepEqual.test.d.ts +2 -0
  153. package/dist/__tests__/utils/deepEqual.test.d.ts.map +1 -0
  154. package/dist/__tests__/utils/deepMerge.test.d.ts +2 -0
  155. package/dist/__tests__/utils/deepMerge.test.d.ts.map +1 -0
  156. package/dist/__tests__/utils/extractFormValues.test.d.ts +2 -0
  157. package/dist/__tests__/utils/extractFormValues.test.d.ts.map +1 -0
  158. package/dist/__tests__/utils/fillEmptyArray.test.d.ts +2 -0
  159. package/dist/__tests__/utils/fillEmptyArray.test.d.ts.map +1 -0
  160. package/dist/__tests__/utils/flatten.test.d.ts +2 -0
  161. package/dist/__tests__/utils/flatten.test.d.ts.map +1 -0
  162. package/dist/__tests__/utils/get.test.d.ts +2 -0
  163. package/dist/__tests__/utils/get.test.d.ts.map +1 -0
  164. package/dist/__tests__/utils/insert.test.d.ts +2 -0
  165. package/dist/__tests__/utils/insert.test.d.ts.map +1 -0
  166. package/dist/__tests__/utils/isBoolean.test.d.ts +2 -0
  167. package/dist/__tests__/utils/isBoolean.test.d.ts.map +1 -0
  168. package/dist/__tests__/utils/isCheckBoxInput.test.d.ts +2 -0
  169. package/dist/__tests__/utils/isCheckBoxInput.test.d.ts.map +1 -0
  170. package/dist/__tests__/utils/isEmptyObject.test.d.ts +2 -0
  171. package/dist/__tests__/utils/isEmptyObject.test.d.ts.map +1 -0
  172. package/dist/__tests__/utils/isFileInput.test.d.ts +2 -0
  173. package/dist/__tests__/utils/isFileInput.test.d.ts.map +1 -0
  174. package/dist/__tests__/utils/isFunction.test.d.ts +2 -0
  175. package/dist/__tests__/utils/isFunction.test.d.ts.map +1 -0
  176. package/dist/__tests__/utils/isHTMLElement.test.d.ts +2 -0
  177. package/dist/__tests__/utils/isHTMLElement.test.d.ts.map +1 -0
  178. package/dist/__tests__/utils/isKey.test.d.ts +2 -0
  179. package/dist/__tests__/utils/isKey.test.d.ts.map +1 -0
  180. package/dist/__tests__/utils/isMultipleSelect.test.d.ts +2 -0
  181. package/dist/__tests__/utils/isMultipleSelect.test.d.ts.map +1 -0
  182. package/dist/__tests__/utils/isNullOrUndefined.test.d.ts +2 -0
  183. package/dist/__tests__/utils/isNullOrUndefined.test.d.ts.map +1 -0
  184. package/dist/__tests__/utils/isObject.test.d.ts +2 -0
  185. package/dist/__tests__/utils/isObject.test.d.ts.map +1 -0
  186. package/dist/__tests__/utils/isPrimitive.test.d.ts +2 -0
  187. package/dist/__tests__/utils/isPrimitive.test.d.ts.map +1 -0
  188. package/dist/__tests__/utils/isRadioInput.test.d.ts +2 -0
  189. package/dist/__tests__/utils/isRadioInput.test.d.ts.map +1 -0
  190. package/dist/__tests__/utils/isRadioOrCheckbox.test.d.ts +2 -0
  191. package/dist/__tests__/utils/isRadioOrCheckbox.test.d.ts.map +1 -0
  192. package/dist/__tests__/utils/isRegex.test.d.ts +2 -0
  193. package/dist/__tests__/utils/isRegex.test.d.ts.map +1 -0
  194. package/dist/__tests__/utils/isString.test.d.ts +2 -0
  195. package/dist/__tests__/utils/isString.test.d.ts.map +1 -0
  196. package/dist/__tests__/utils/isUndefined.test.d.ts +2 -0
  197. package/dist/__tests__/utils/isUndefined.test.d.ts.map +1 -0
  198. package/dist/__tests__/utils/live.test.d.ts +2 -0
  199. package/dist/__tests__/utils/live.test.d.ts.map +1 -0
  200. package/dist/__tests__/utils/move.test.d.ts +2 -0
  201. package/dist/__tests__/utils/move.test.d.ts.map +1 -0
  202. package/dist/__tests__/utils/noop.test.d.ts +2 -0
  203. package/dist/__tests__/utils/noop.test.d.ts.map +1 -0
  204. package/dist/__tests__/utils/objectHasFunction.test.d.ts +2 -0
  205. package/dist/__tests__/utils/objectHasFunction.test.d.ts.map +1 -0
  206. package/dist/__tests__/utils/prepend.test.d.ts +2 -0
  207. package/dist/__tests__/utils/prepend.test.d.ts.map +1 -0
  208. package/dist/__tests__/utils/remove.test.d.ts +2 -0
  209. package/dist/__tests__/utils/remove.test.d.ts.map +1 -0
  210. package/dist/__tests__/utils/set.test.d.ts +2 -0
  211. package/dist/__tests__/utils/set.test.d.ts.map +1 -0
  212. package/dist/__tests__/utils/stringToPath.test.d.ts +2 -0
  213. package/dist/__tests__/utils/stringToPath.test.d.ts.map +1 -0
  214. package/dist/__tests__/utils/swap.test.d.ts +2 -0
  215. package/dist/__tests__/utils/swap.test.d.ts.map +1 -0
  216. package/dist/__tests__/utils/unset.test.d.ts +2 -0
  217. package/dist/__tests__/utils/unset.test.d.ts.map +1 -0
  218. package/dist/__tests__/utils/update.test.d.ts +2 -0
  219. package/dist/__tests__/utils/update.test.d.ts.map +1 -0
  220. package/dist/__tests__/utils/validationModeChecker.test.d.ts +2 -0
  221. package/dist/__tests__/utils/validationModeChecker.test.d.ts.map +1 -0
  222. package/dist/__tests__/watch.server.test.d.ts +2 -0
  223. package/dist/__tests__/watch.server.test.d.ts.map +1 -0
  224. package/dist/__tests__/watch.test.d.ts +2 -0
  225. package/dist/__tests__/watch.test.d.ts.map +1 -0
  226. package/dist/constants.d.ts +27 -0
  227. package/dist/constants.d.ts.map +1 -0
  228. package/dist/controller.d.ts +46 -0
  229. package/dist/controller.d.ts.map +1 -0
  230. package/dist/form.d.ts +27 -0
  231. package/dist/form.d.ts.map +1 -0
  232. package/dist/formStateSubscribe.d.ts +7 -0
  233. package/dist/formStateSubscribe.d.ts.map +1 -0
  234. package/dist/index.cjs.js +2 -0
  235. package/dist/index.cjs.js.map +1 -0
  236. package/dist/index.d.ts +14 -0
  237. package/dist/index.d.ts.map +1 -0
  238. package/dist/index.esm.mjs +3064 -0
  239. package/dist/index.esm.mjs.map +1 -0
  240. package/dist/index.react-server.d.ts +3 -0
  241. package/dist/index.react-server.d.ts.map +1 -0
  242. package/dist/index.umd.js +2 -0
  243. package/dist/index.umd.js.map +1 -0
  244. package/dist/logic/appendErrors.d.ts +4 -0
  245. package/dist/logic/appendErrors.d.ts.map +1 -0
  246. package/dist/logic/createFormControl.d.ts +5 -0
  247. package/dist/logic/createFormControl.d.ts.map +1 -0
  248. package/dist/logic/generateId.d.ts +3 -0
  249. package/dist/logic/generateId.d.ts.map +1 -0
  250. package/dist/logic/generateWatchOutput.d.ts +4 -0
  251. package/dist/logic/generateWatchOutput.d.ts.map +1 -0
  252. package/dist/logic/getCheckboxValue.d.ts +7 -0
  253. package/dist/logic/getCheckboxValue.d.ts.map +1 -0
  254. package/dist/logic/getDirtyFields.d.ts +4 -0
  255. package/dist/logic/getDirtyFields.d.ts.map +1 -0
  256. package/dist/logic/getEventValue.d.ts +3 -0
  257. package/dist/logic/getEventValue.d.ts.map +1 -0
  258. package/dist/logic/getFieldValue.d.ts +3 -0
  259. package/dist/logic/getFieldValue.d.ts.map +1 -0
  260. package/dist/logic/getFieldValueAs.d.ts +4 -0
  261. package/dist/logic/getFieldValueAs.d.ts.map +1 -0
  262. package/dist/logic/getFocusFieldName.d.ts +4 -0
  263. package/dist/logic/getFocusFieldName.d.ts.map +1 -0
  264. package/dist/logic/getNodeParentName.d.ts +3 -0
  265. package/dist/logic/getNodeParentName.d.ts.map +1 -0
  266. package/dist/logic/getProxyFormState.d.ts +4 -0
  267. package/dist/logic/getProxyFormState.d.ts.map +1 -0
  268. package/dist/logic/getRadioValue.d.ts +7 -0
  269. package/dist/logic/getRadioValue.d.ts.map +1 -0
  270. package/dist/logic/getResolverOptions.d.ts +14 -0
  271. package/dist/logic/getResolverOptions.d.ts.map +1 -0
  272. package/dist/logic/getRuleValue.d.ts +4 -0
  273. package/dist/logic/getRuleValue.d.ts.map +1 -0
  274. package/dist/logic/getValidateError.d.ts +3 -0
  275. package/dist/logic/getValidateError.d.ts.map +1 -0
  276. package/dist/logic/getValidationModes.d.ts +4 -0
  277. package/dist/logic/getValidationModes.d.ts.map +1 -0
  278. package/dist/logic/getValueAndMessage.d.ts +7 -0
  279. package/dist/logic/getValueAndMessage.d.ts.map +1 -0
  280. package/dist/logic/hasPromiseValidation.d.ts +4 -0
  281. package/dist/logic/hasPromiseValidation.d.ts.map +1 -0
  282. package/dist/logic/hasValidation.d.ts +4 -0
  283. package/dist/logic/hasValidation.d.ts.map +1 -0
  284. package/dist/logic/index.d.ts +4 -0
  285. package/dist/logic/index.d.ts.map +1 -0
  286. package/dist/logic/isNameInFieldArray.d.ts +4 -0
  287. package/dist/logic/isNameInFieldArray.d.ts.map +1 -0
  288. package/dist/logic/isWatched.d.ts +4 -0
  289. package/dist/logic/isWatched.d.ts.map +1 -0
  290. package/dist/logic/iterateFieldsByAction.d.ts +4 -0
  291. package/dist/logic/iterateFieldsByAction.d.ts.map +1 -0
  292. package/dist/logic/schemaErrorLookup.d.ts +6 -0
  293. package/dist/logic/schemaErrorLookup.d.ts.map +1 -0
  294. package/dist/logic/shouldRenderFormState.d.ts +7 -0
  295. package/dist/logic/shouldRenderFormState.d.ts.map +1 -0
  296. package/dist/logic/shouldSubscribeByName.d.ts +3 -0
  297. package/dist/logic/shouldSubscribeByName.d.ts.map +1 -0
  298. package/dist/logic/skipValidation.d.ts +7 -0
  299. package/dist/logic/skipValidation.d.ts.map +1 -0
  300. package/dist/logic/unsetEmptyArray.d.ts +3 -0
  301. package/dist/logic/unsetEmptyArray.d.ts.map +1 -0
  302. package/dist/logic/updateFieldArrayRootError.d.ts +4 -0
  303. package/dist/logic/updateFieldArrayRootError.d.ts.map +1 -0
  304. package/dist/logic/validateField.d.ts +4 -0
  305. package/dist/logic/validateField.d.ts.map +1 -0
  306. package/dist/react-server.esm.mjs +1979 -0
  307. package/dist/react-server.esm.mjs.map +1 -0
  308. package/dist/types/controller.d.ts +61 -0
  309. package/dist/types/controller.d.ts.map +1 -0
  310. package/dist/types/errors.d.ts +37 -0
  311. package/dist/types/errors.d.ts.map +1 -0
  312. package/dist/types/events.d.ts +2 -0
  313. package/dist/types/events.d.ts.map +1 -0
  314. package/dist/types/fieldArray.d.ts +195 -0
  315. package/dist/types/fieldArray.d.ts.map +1 -0
  316. package/dist/types/fields.d.ts +31 -0
  317. package/dist/types/fields.d.ts.map +1 -0
  318. package/dist/types/form.d.ts +726 -0
  319. package/dist/types/form.d.ts.map +1 -0
  320. package/dist/types/index.d.ts +12 -0
  321. package/dist/types/index.d.ts.map +1 -0
  322. package/dist/types/path/common.d.ts +316 -0
  323. package/dist/types/path/common.d.ts.map +1 -0
  324. package/dist/types/path/eager.d.ts +135 -0
  325. package/dist/types/path/eager.d.ts.map +1 -0
  326. package/dist/types/path/index.d.ts +4 -0
  327. package/dist/types/path/index.d.ts.map +1 -0
  328. package/dist/types/resolvers.d.ts +20 -0
  329. package/dist/types/resolvers.d.ts.map +1 -0
  330. package/dist/types/utils.d.ts +73 -0
  331. package/dist/types/utils.d.ts.map +1 -0
  332. package/dist/types/validator.d.ts +55 -0
  333. package/dist/types/validator.d.ts.map +1 -0
  334. package/dist/types/watch.d.ts +32 -0
  335. package/dist/types/watch.d.ts.map +1 -0
  336. package/dist/useController.d.ts +27 -0
  337. package/dist/useController.d.ts.map +1 -0
  338. package/dist/useFieldArray.d.ts +40 -0
  339. package/dist/useFieldArray.d.ts.map +1 -0
  340. package/dist/useForm.d.ts +32 -0
  341. package/dist/useForm.d.ts.map +1 -0
  342. package/dist/useFormContext.d.ts +65 -0
  343. package/dist/useFormContext.d.ts.map +1 -0
  344. package/dist/useFormControlContext.d.ts +12 -0
  345. package/dist/useFormControlContext.d.ts.map +1 -0
  346. package/dist/useFormState.d.ts +33 -0
  347. package/dist/useFormState.d.ts.map +1 -0
  348. package/dist/useIsomorphicLayoutEffect.d.ts +3 -0
  349. package/dist/useIsomorphicLayoutEffect.d.ts.map +1 -0
  350. package/dist/useWatch.d.ts +191 -0
  351. package/dist/useWatch.d.ts.map +1 -0
  352. package/dist/utils/append.d.ts +3 -0
  353. package/dist/utils/append.d.ts.map +1 -0
  354. package/dist/utils/cloneObject.d.ts +2 -0
  355. package/dist/utils/cloneObject.d.ts.map +1 -0
  356. package/dist/utils/compact.d.ts +3 -0
  357. package/dist/utils/compact.d.ts.map +1 -0
  358. package/dist/utils/convertToArrayPayload.d.ts +3 -0
  359. package/dist/utils/convertToArrayPayload.d.ts.map +1 -0
  360. package/dist/utils/createSubject.d.ts +15 -0
  361. package/dist/utils/createSubject.d.ts.map +1 -0
  362. package/dist/utils/deepEqual.d.ts +2 -0
  363. package/dist/utils/deepEqual.d.ts.map +1 -0
  364. package/dist/utils/deepMerge.d.ts +2 -0
  365. package/dist/utils/deepMerge.d.ts.map +1 -0
  366. package/dist/utils/extractFormValues.d.ts +2 -0
  367. package/dist/utils/extractFormValues.d.ts.map +1 -0
  368. package/dist/utils/fillEmptyArray.d.ts +3 -0
  369. package/dist/utils/fillEmptyArray.d.ts.map +1 -0
  370. package/dist/utils/flatten.d.ts +3 -0
  371. package/dist/utils/flatten.d.ts.map +1 -0
  372. package/dist/utils/get.d.ts +3 -0
  373. package/dist/utils/get.d.ts.map +1 -0
  374. package/dist/utils/index.d.ts +4 -0
  375. package/dist/utils/index.d.ts.map +1 -0
  376. package/dist/utils/insert.d.ts +3 -0
  377. package/dist/utils/insert.d.ts.map +1 -0
  378. package/dist/utils/isBoolean.d.ts +3 -0
  379. package/dist/utils/isBoolean.d.ts.map +1 -0
  380. package/dist/utils/isCheckBoxInput.d.ts +4 -0
  381. package/dist/utils/isCheckBoxInput.d.ts.map +1 -0
  382. package/dist/utils/isDateObject.d.ts +3 -0
  383. package/dist/utils/isDateObject.d.ts.map +1 -0
  384. package/dist/utils/isEmptyObject.d.ts +4 -0
  385. package/dist/utils/isEmptyObject.d.ts.map +1 -0
  386. package/dist/utils/isFileInput.d.ts +4 -0
  387. package/dist/utils/isFileInput.d.ts.map +1 -0
  388. package/dist/utils/isFunction.d.ts +3 -0
  389. package/dist/utils/isFunction.d.ts.map +1 -0
  390. package/dist/utils/isHTMLElement.d.ts +3 -0
  391. package/dist/utils/isHTMLElement.d.ts.map +1 -0
  392. package/dist/utils/isKey.d.ts +3 -0
  393. package/dist/utils/isKey.d.ts.map +1 -0
  394. package/dist/utils/isMultipleSelect.d.ts +4 -0
  395. package/dist/utils/isMultipleSelect.d.ts.map +1 -0
  396. package/dist/utils/isNullOrUndefined.d.ts +3 -0
  397. package/dist/utils/isNullOrUndefined.d.ts.map +1 -0
  398. package/dist/utils/isObject.d.ts +4 -0
  399. package/dist/utils/isObject.d.ts.map +1 -0
  400. package/dist/utils/isPlainObject.d.ts +3 -0
  401. package/dist/utils/isPlainObject.d.ts.map +1 -0
  402. package/dist/utils/isPrimitive.d.ts +4 -0
  403. package/dist/utils/isPrimitive.d.ts.map +1 -0
  404. package/dist/utils/isRadioInput.d.ts +4 -0
  405. package/dist/utils/isRadioInput.d.ts.map +1 -0
  406. package/dist/utils/isRadioOrCheckbox.d.ts +4 -0
  407. package/dist/utils/isRadioOrCheckbox.d.ts.map +1 -0
  408. package/dist/utils/isRegex.d.ts +3 -0
  409. package/dist/utils/isRegex.d.ts.map +1 -0
  410. package/dist/utils/isString.d.ts +3 -0
  411. package/dist/utils/isString.d.ts.map +1 -0
  412. package/dist/utils/isUndefined.d.ts +3 -0
  413. package/dist/utils/isUndefined.d.ts.map +1 -0
  414. package/dist/utils/isWeb.d.ts +3 -0
  415. package/dist/utils/isWeb.d.ts.map +1 -0
  416. package/dist/utils/live.d.ts +4 -0
  417. package/dist/utils/live.d.ts.map +1 -0
  418. package/dist/utils/move.d.ts +3 -0
  419. package/dist/utils/move.d.ts.map +1 -0
  420. package/dist/utils/noop.d.ts +2 -0
  421. package/dist/utils/noop.d.ts.map +1 -0
  422. package/dist/utils/objectHasFunction.d.ts +3 -0
  423. package/dist/utils/objectHasFunction.d.ts.map +1 -0
  424. package/dist/utils/prepend.d.ts +3 -0
  425. package/dist/utils/prepend.d.ts.map +1 -0
  426. package/dist/utils/remove.d.ts +3 -0
  427. package/dist/utils/remove.d.ts.map +1 -0
  428. package/dist/utils/set.d.ts +4 -0
  429. package/dist/utils/set.d.ts.map +1 -0
  430. package/dist/utils/sleep.d.ts +3 -0
  431. package/dist/utils/sleep.d.ts.map +1 -0
  432. package/dist/utils/stringToPath.d.ts +3 -0
  433. package/dist/utils/stringToPath.d.ts.map +1 -0
  434. package/dist/utils/swap.d.ts +3 -0
  435. package/dist/utils/swap.d.ts.map +1 -0
  436. package/dist/utils/unset.d.ts +2 -0
  437. package/dist/utils/unset.d.ts.map +1 -0
  438. package/dist/utils/update.d.ts +3 -0
  439. package/dist/utils/update.d.ts.map +1 -0
  440. package/dist/watch.d.ts +29 -0
  441. package/dist/watch.d.ts.map +1 -0
  442. package/package.json +155 -0
@@ -0,0 +1,726 @@
1
+ import type React from 'react';
2
+ import type { VALIDATION_MODE } from '../constants';
3
+ import type { Subject, Subscription } from '../utils/createSubject';
4
+ import type { ErrorOption, FieldError, FieldErrors } from './errors';
5
+ import type { EventType } from './events';
6
+ import type { FieldArray } from './fieldArray';
7
+ import type { FieldName, FieldRefs, FieldValue, FieldValues, InternalFieldName } from './fields';
8
+ import type { FieldArrayPath, FieldPath, FieldPathValue, FieldPathValues } from './path';
9
+ import type { Resolver } from './resolvers';
10
+ import type { DeepMap, DeepPartial, DeepPartialSkipArrayKey, Noop } from './utils';
11
+ import type { RegisterOptions, ValidateForm } from './validator';
12
+ declare const $NestedValue: unique symbol;
13
+ /**
14
+ * @deprecated to be removed in the next major version
15
+ */
16
+ export type NestedValue<TValue extends object = object> = {
17
+ [$NestedValue]: never;
18
+ } & TValue;
19
+ export type DefaultValues<TFieldValues> = TFieldValues extends AsyncDefaultValues<TFieldValues> ? DeepPartial<Awaited<TFieldValues>> : DeepPartial<TFieldValues>;
20
+ export type InternalNameSet = Set<InternalFieldName>;
21
+ export type ValidationMode = typeof VALIDATION_MODE;
22
+ export type Mode = keyof ValidationMode;
23
+ export type ValidationModeFlags = {
24
+ isOnSubmit: boolean;
25
+ isOnBlur: boolean;
26
+ isOnChange: boolean;
27
+ isOnAll: boolean;
28
+ isOnTouch: boolean;
29
+ };
30
+ export type CriteriaMode = 'firstError' | 'all';
31
+ export type SubmitHandler<T> = (data: T, event?: React.BaseSyntheticEvent) => unknown | Promise<unknown>;
32
+ export type FormSubmitHandler<TTransformedValues> = (payload: {
33
+ data: TTransformedValues;
34
+ event?: React.BaseSyntheticEvent;
35
+ formData: FormData;
36
+ formDataJson: string;
37
+ method?: 'post' | 'put' | 'delete';
38
+ }) => unknown | Promise<unknown>;
39
+ export type SubmitErrorHandler<TFieldValues extends FieldValues> = (errors: FieldErrors<TFieldValues>, event?: React.BaseSyntheticEvent) => unknown | Promise<unknown>;
40
+ export type SetValueConfig = Partial<{
41
+ shouldValidate: boolean;
42
+ shouldDirty: boolean;
43
+ shouldTouch: boolean;
44
+ }>;
45
+ export type TriggerConfig = Partial<{
46
+ shouldFocus: boolean;
47
+ }>;
48
+ export type ResetFieldConfig<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = Partial<{
49
+ keepDirty: boolean;
50
+ keepTouched: boolean;
51
+ keepError: boolean;
52
+ defaultValue: FieldPathValue<TFieldValues, TFieldName>;
53
+ }>;
54
+ export type ChangeHandler = (event: {
55
+ target: any;
56
+ type?: any;
57
+ }) => Promise<void | boolean>;
58
+ export type DelayCallback = (wait: number) => void;
59
+ type AsyncDefaultValues<TFieldValues> = (payload?: unknown) => Promise<TFieldValues>;
60
+ export type UseFormProps<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues> = Partial<{
61
+ mode: Mode;
62
+ disabled: boolean;
63
+ reValidateMode: Exclude<Mode, 'onTouched' | 'all'>;
64
+ defaultValues: DefaultValues<TFieldValues> | AsyncDefaultValues<TFieldValues>;
65
+ values: TFieldValues;
66
+ errors: FieldErrors<TFieldValues>;
67
+ resetOptions: Parameters<UseFormReset<TFieldValues>>[1];
68
+ resolver: Resolver<TFieldValues, TContext, TTransformedValues>;
69
+ context: TContext;
70
+ shouldFocusError: boolean;
71
+ shouldUnregister: boolean;
72
+ shouldUseNativeValidation: boolean;
73
+ progressive: boolean;
74
+ criteriaMode: CriteriaMode;
75
+ delayError: number;
76
+ formControl?: Omit<UseFormReturn<TFieldValues, TContext, TTransformedValues>, 'formState'>;
77
+ validate: ValidateForm<TFieldValues>;
78
+ }>;
79
+ export type FieldNamesMarkedBoolean<TFieldValues extends FieldValues> = DeepMap<DeepPartial<TFieldValues>, boolean>;
80
+ export type FormStateProxy<TFieldValues extends FieldValues = FieldValues> = {
81
+ isDirty: boolean;
82
+ isValidating: boolean;
83
+ dirtyFields: FieldNamesMarkedBoolean<TFieldValues>;
84
+ touchedFields: FieldNamesMarkedBoolean<TFieldValues>;
85
+ validatingFields: FieldNamesMarkedBoolean<TFieldValues>;
86
+ errors: boolean;
87
+ isValid: boolean;
88
+ };
89
+ export type ReadFormState = {
90
+ [K in keyof FormStateProxy]: boolean | 'all';
91
+ } & {
92
+ values?: boolean;
93
+ isSubmitted?: boolean | 'all';
94
+ submitCount?: boolean | 'all';
95
+ };
96
+ export type FormState<TFieldValues extends FieldValues> = {
97
+ isDirty: boolean;
98
+ isLoading: boolean;
99
+ isSubmitted: boolean;
100
+ isSubmitSuccessful: boolean;
101
+ isSubmitting: boolean;
102
+ isValidating: boolean;
103
+ isValid: boolean;
104
+ disabled: boolean;
105
+ submitCount: number;
106
+ defaultValues?: undefined | Readonly<DeepPartial<TFieldValues>>;
107
+ dirtyFields: Partial<Readonly<FieldNamesMarkedBoolean<TFieldValues>>>;
108
+ touchedFields: Partial<Readonly<FieldNamesMarkedBoolean<TFieldValues>>>;
109
+ validatingFields: Partial<Readonly<FieldNamesMarkedBoolean<TFieldValues>>>;
110
+ errors: FieldErrors<TFieldValues>;
111
+ isReady: boolean;
112
+ };
113
+ export type KeepStateOptions = Partial<{
114
+ keepDirtyValues: boolean;
115
+ keepErrors: boolean;
116
+ keepDirty: boolean;
117
+ keepValues: boolean;
118
+ keepDefaultValues: boolean;
119
+ keepIsSubmitted: boolean;
120
+ keepIsSubmitSuccessful: boolean;
121
+ keepTouched: boolean;
122
+ keepIsValidating: boolean;
123
+ keepIsValid: boolean;
124
+ keepSubmitCount: boolean;
125
+ keepFieldsRef: boolean;
126
+ }>;
127
+ export type SetFieldValue<TFieldValues extends FieldValues> = FieldValue<TFieldValues>;
128
+ export type RefCallBack = (instance: any) => void;
129
+ export type UseFormRegisterReturn<TFieldName extends InternalFieldName = InternalFieldName> = {
130
+ onChange: ChangeHandler;
131
+ onBlur: ChangeHandler;
132
+ ref: RefCallBack;
133
+ name: TFieldName;
134
+ min?: string | number;
135
+ max?: string | number;
136
+ maxLength?: number;
137
+ minLength?: number;
138
+ pattern?: string;
139
+ required?: boolean;
140
+ disabled?: boolean;
141
+ };
142
+ /**
143
+ * Register field into hook form with or without the actual DOM ref. You can invoke register anywhere in the component including at `useEffect`.
144
+ *
145
+ * @remarks
146
+ * [API](https://react-hook-form.com/docs/useform/register) • [Demo](https://codesandbox.io/s/react-hook-form-register-ts-ip2j3) • [Video](https://www.youtube.com/watch?v=JFIpCoajYkA)
147
+ *
148
+ * @param name - the path name to the form field value, name is required and unique
149
+ * @param options - register options include validation, disabled, unregister, value as and dependent validation
150
+ *
151
+ * @returns onChange, onBlur, name, ref, and native contribute attribute if browser validation is enabled.
152
+ *
153
+ * @example
154
+ * ```tsx
155
+ * // Register HTML native input
156
+ * <input {...register("input")} />
157
+ * <select {...register("select")} />
158
+ *
159
+ * // Register options
160
+ * <textarea {...register("textarea", { required: "This is required.", maxLength: 20 })} />
161
+ * <input type="number" {...register("name2", { valueAsNumber: true })} />
162
+ * <input {...register("name3", { deps: ["name2"] })} />
163
+ *
164
+ * // Register custom field at useEffect
165
+ * useEffect(() => {
166
+ * register("name4");
167
+ * register("name5", { value: "hiddenValue" });
168
+ * }, [register])
169
+ *
170
+ * // Register without ref
171
+ * const { onChange, onBlur, name } = register("name6")
172
+ * <input onChange={onChange} onBlur={onBlur} name={name} />
173
+ * ```
174
+ */
175
+ export type UseFormRegister<TFieldValues extends FieldValues> = <TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(name: TFieldName, options?: RegisterOptions<TFieldValues, TFieldName>) => UseFormRegisterReturn<TFieldName>;
176
+ export type SetFocusOptions = Partial<{
177
+ shouldSelect: boolean;
178
+ }>;
179
+ /**
180
+ * Set focus on a registered field. You can start to invoke this method after all fields are mounted to the DOM.
181
+ *
182
+ * @remarks
183
+ * [API](https://react-hook-form.com/docs/useform/setfocus) • [Demo](https://codesandbox.io/s/setfocus-rolus)
184
+ *
185
+ * @param name - the path name to the form field value.
186
+ * @param options - input focus behavior options
187
+ *
188
+ * @example
189
+ * ```tsx
190
+ * useEffect(() => {
191
+ * setFocus("name");
192
+ * }, [setFocus])
193
+ * // shouldSelect allows to select input's content on focus
194
+ * <button onClick={() => setFocus("name", { shouldSelect: true })}>Focus</button>
195
+ * ```
196
+ */
197
+ export type UseFormSetFocus<TFieldValues extends FieldValues> = <TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(name: TFieldName, options?: SetFocusOptions) => void;
198
+ type EitherOption<T> = {
199
+ [K in keyof T]: {
200
+ [P in K]: T[P];
201
+ } & Partial<Record<Exclude<keyof T, K>, never>>;
202
+ }[keyof T];
203
+ export type GetValuesConfig = EitherOption<{
204
+ dirtyFields: boolean;
205
+ touchedFields: boolean;
206
+ }>;
207
+ export type UseFormGetValues<TFieldValues extends FieldValues> = {
208
+ /**
209
+ * Get the entire form values when no argument is supplied to this function.
210
+ *
211
+ * @remarks
212
+ * [API](https://react-hook-form.com/docs/useform/getvalues) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-getvalues-txsfg)
213
+ *
214
+ * @returns form values
215
+ *
216
+ * @example
217
+ * ```tsx
218
+ * <button onClick={() => getValues()}>getValues</button>
219
+ *
220
+ * <input {...register("name", {
221
+ * validate: (value, formValues) => formValues.otherField === value;
222
+ * })} />
223
+ * ```
224
+ */
225
+ (name?: undefined, config?: GetValuesConfig): TFieldValues;
226
+ /**
227
+ * Get a single field value.
228
+ *
229
+ * @remarks
230
+ * [API](https://react-hook-form.com/docs/useform/getvalues) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-getvalues-txsfg)
231
+ *
232
+ * @param name - the path name to the form field value.
233
+ * @param config - return touched or dirty fields
234
+ *
235
+ * @returns the single field value
236
+ *
237
+ * @example
238
+ * ```tsx
239
+ * <button onClick={() => getValues("name")}>getValues</button>
240
+ *
241
+ * <input {...register("name", {
242
+ * validate: () => getValues('otherField') === "test";
243
+ * })} />
244
+ * ```
245
+ */
246
+ <TFieldName extends FieldPath<TFieldValues>>(name: TFieldName, config?: GetValuesConfig): FieldPathValue<TFieldValues, TFieldName>;
247
+ /**
248
+ * Get an array of field values.
249
+ *
250
+ * @remarks
251
+ * [API](https://react-hook-form.com/docs/useform/getvalues) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-getvalues-txsfg)
252
+ *
253
+ * @param names - an array of field names
254
+ * @param config - return touched or dirty fields
255
+ *
256
+ * @returns An array of field values
257
+ *
258
+ * @example
259
+ * ```tsx
260
+ * <button onClick={() => getValues(["name", "name1"])}>getValues</button>
261
+ *
262
+ * <input {...register("name", {
263
+ * validate: () => getValues(["fieldA", "fieldB"]).includes("test");
264
+ * })} />
265
+ * ```
266
+ */
267
+ <TFieldNames extends FieldPath<TFieldValues>[]>(names: readonly [...TFieldNames], config?: GetValuesConfig): [...FieldPathValues<TFieldValues, TFieldNames>];
268
+ };
269
+ /**
270
+ * This method will return individual field states. It will be useful when you are trying to retrieve the nested value field state in a typesafe approach.
271
+ *
272
+ * @remarks
273
+ * [API](https://react-hook-form.com/docs/useform/getfieldstate) • [Demo](https://codesandbox.io/s/getfieldstate-jvekk)
274
+ *
275
+ * @param name - the path name to the form field value.
276
+ *
277
+ * @returns invalid, isDirty, isTouched and error object
278
+ *
279
+ * @example
280
+ * ```tsx
281
+ * // those formState has to be subscribed
282
+ * const { formState: { dirtyFields, errors, touchedFields } } = formState();
283
+ * getFieldState('name')
284
+ * // Get field state when form state is not subscribed yet
285
+ * getFieldState('name', formState)
286
+ *
287
+ * // It's ok to combine with useFormState
288
+ * const formState = useFormState();
289
+ * getFieldState('name')
290
+ * getFieldState('name', formState)
291
+ * ```
292
+ */
293
+ export type UseFormGetFieldState<TFieldValues extends FieldValues> = <TFieldName extends FieldPath<TFieldValues>>(name: TFieldName, formState?: FormState<TFieldValues>) => {
294
+ invalid: boolean;
295
+ isDirty: boolean;
296
+ isTouched: boolean;
297
+ isValidating: boolean;
298
+ error?: FieldError;
299
+ };
300
+ /**
301
+ * This method will allow you to subscribe to formState without component render
302
+ *
303
+ * @remarks
304
+ * [API](https://react-hook-form.com/docs/useform/subscribe) • [Demo](https://codesandbox.io/s/subscribe)
305
+ *
306
+ * @param options - subscription options on which formState subscribe to
307
+ *
308
+ * @example
309
+ * ```tsx
310
+ const { subscribe } = useForm()
311
+
312
+ useEffect(() => {
313
+ subscribe({
314
+ formState: { isDirty: true },
315
+ callback: () => {}
316
+ })
317
+ })
318
+ * ```
319
+ */
320
+ export type UseFormSubscribe<TFieldValues extends FieldValues> = <TFieldNames extends readonly FieldPath<TFieldValues>[]>(payload: {
321
+ name?: readonly [...TFieldNames] | TFieldNames[number];
322
+ formState?: Partial<ReadFormState>;
323
+ callback: (data: Partial<FormState<TFieldValues>> & {
324
+ values: TFieldValues;
325
+ name?: InternalFieldName;
326
+ type?: EventType;
327
+ }) => void;
328
+ exact?: boolean;
329
+ }) => () => void;
330
+ export type UseFormWatch<TFieldValues extends FieldValues> = {
331
+ /**
332
+ * Watch and subscribe to the entire form update/change based on onChange and re-render at the useForm.
333
+ *
334
+ * @remarks
335
+ * [API](https://react-hook-form.com/docs/useform/watch) • [Demo](https://codesandbox.io/s/react-hook-form-watch-v7-ts-8et1d) • [Video](https://www.youtube.com/watch?v=3qLd69WMqKk)
336
+ *
337
+ * @returns return the entire form values
338
+ *
339
+ * @example
340
+ * ```tsx
341
+ * const formValues = watch();
342
+ * ```
343
+ */
344
+ (): TFieldValues;
345
+ /**
346
+ * Watch and subscribe to an array of fields used outside of render.
347
+ *
348
+ * @remarks
349
+ * [API](https://react-hook-form.com/docs/useform/watch) • [Demo](https://codesandbox.io/s/react-hook-form-watch-v7-ts-8et1d) • [Video](https://www.youtube.com/watch?v=3qLd69WMqKk)
350
+ *
351
+ * @param names - an array of field names
352
+ * @param defaultValue - defaultValues for the entire form
353
+ *
354
+ * @returns return an array of field values
355
+ *
356
+ * @example
357
+ * ```tsx
358
+ * const [name, name1] = watch(["name", "name1"]);
359
+ * ```
360
+ */
361
+ <TFieldNames extends readonly FieldPath<TFieldValues>[]>(names: readonly [...TFieldNames], defaultValue?: DeepPartial<TFieldValues>): FieldPathValues<TFieldValues, TFieldNames>;
362
+ /**
363
+ * Watch and subscribe to a single field used outside of render.
364
+ *
365
+ * @remarks
366
+ * [API](https://react-hook-form.com/docs/useform/watch) • [Demo](https://codesandbox.io/s/react-hook-form-watch-v7-ts-8et1d) • [Video](https://www.youtube.com/watch?v=3qLd69WMqKk)
367
+ *
368
+ * @param name - the path name to the form field value.
369
+ * @param defaultValue - defaultValues for the entire form
370
+ *
371
+ * @returns return the single field value
372
+ *
373
+ * @example
374
+ * ```tsx
375
+ * const name = watch("name");
376
+ * ```
377
+ */
378
+ <TFieldName extends FieldPath<TFieldValues>>(name: TFieldName, defaultValue?: FieldPathValue<TFieldValues, TFieldName>): FieldPathValue<TFieldValues, TFieldName>;
379
+ /**
380
+ * Subscribe to field update/change without trigger re-render
381
+ *
382
+ * @remarks
383
+ * [API](https://react-hook-form.com/docs/useform/watch) • [Demo](https://codesandbox.io/s/react-hook-form-watch-v7-ts-8et1d) • [Video](https://www.youtube.com/watch?v=3qLd69WMqKk)
384
+ *
385
+ * @param callback - call back function to subscribe all fields change and return unsubscribe function
386
+ * @param defaultValues - defaultValues for the entire form
387
+ *
388
+ * @returns unsubscribe function
389
+ *
390
+ * @example
391
+ * ```tsx
392
+ * useEffect(() => {
393
+ * const { unsubscribe } = watch((value) => {
394
+ * console.log(value);
395
+ * });
396
+ * return () => unsubscribe();
397
+ * }, [watch])
398
+ * ```
399
+ */
400
+ (callback: WatchObserver<TFieldValues>, defaultValues?: DeepPartial<TFieldValues>): Subscription;
401
+ };
402
+ /**
403
+ * Trigger field or form validation
404
+ *
405
+ * @remarks
406
+ * [API](https://react-hook-form.com/docs/useform/trigger) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-triggervalidation-forked-xs7hl) • [Video](https://www.youtube.com/watch?v=-bcyJCDjksE)
407
+ *
408
+ * @param name - provide empty argument will trigger the entire form validation, an array of field names will validate an array of fields, and a single field name will only trigger that field's validation.
409
+ * @param options - should focus on the error field
410
+ *
411
+ * @returns validation result
412
+ *
413
+ * @example
414
+ * ```tsx
415
+ * useEffect(() => {
416
+ * trigger();
417
+ * }, [trigger])
418
+ *
419
+ * <button onClick={async () => {
420
+ * const result = await trigger(); // result will be a boolean value
421
+ * }}>
422
+ * trigger
423
+ * </button>
424
+ * ```
425
+ */
426
+ export type UseFormTrigger<TFieldValues extends FieldValues> = (name?: FieldPath<TFieldValues> | FieldPath<TFieldValues>[] | readonly FieldPath<TFieldValues>[], options?: TriggerConfig) => Promise<boolean>;
427
+ /**
428
+ * Clear the entire form errors.
429
+ *
430
+ * @remarks
431
+ * [API](https://react-hook-form.com/docs/useform/clearerrors) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-clearerrors-w3ymx)
432
+ *
433
+ * @param name - the path name to the form field value.
434
+ *
435
+ * @example
436
+ * Clear all errors
437
+ * ```tsx
438
+ * clearErrors(); // clear the entire form error
439
+ * clearErrors(["name", "name1"]) // clear an array of fields' error
440
+ * clearErrors("name2"); // clear a single field error
441
+ * ```
442
+ */
443
+ export type UseFormClearErrors<TFieldValues extends FieldValues> = (name?: FieldPath<TFieldValues> | FieldPath<TFieldValues>[] | readonly FieldPath<TFieldValues>[] | `root.${string}` | 'root' | 'form' | `form.${string}`) => void;
444
+ /**
445
+ * Set a single field value, or a group of fields value.
446
+ *
447
+ * @remarks
448
+ * [API](https://react-hook-form.com/docs/useform/setvalue) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-setvalue-8z9hx) • [Video](https://www.youtube.com/watch?v=qpv51sCH3fI)
449
+ *
450
+ * @param name - the path name to the form field value.
451
+ * @param value - field value
452
+ * @param options - should validate or update form state
453
+ *
454
+ * @example
455
+ * ```tsx
456
+ * // Update a single field
457
+ * setValue('name', 'value', {
458
+ * shouldValidate: true, // trigger validation
459
+ * shouldTouch: true, // update touched fields form state
460
+ * shouldDirty: true, // update dirty and dirty fields form state
461
+ * });
462
+ *
463
+ * // Update a group fields
464
+ * setValue('root', {
465
+ * a: 'test', // setValue('root.a', 'data')
466
+ * b: 'test1', // setValue('root.b', 'data')
467
+ * });
468
+ *
469
+ * // Update a nested object field
470
+ * setValue('select', { label: 'test', value: 'Test' });
471
+ * ```
472
+ */
473
+ export type UseFormSetValue<TFieldValues extends FieldValues> = <TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(name: TFieldName, value: FieldPathValue<TFieldValues, TFieldName>, options?: SetValueConfig) => void;
474
+ /**
475
+ * Set an error for the field. When set an error which is not associated to a field then manual `clearErrors` invoke is required.
476
+ *
477
+ * @remarks
478
+ * [API](https://react-hook-form.com/docs/useform/seterror) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-seterror-nfxxu) • [Video](https://www.youtube.com/watch?v=raMqvE0YyIY)
479
+ *
480
+ * @param name - the path name to the form field value.
481
+ * @param error - an error object which contains type and optional message
482
+ * @param options - whether or not to focus on the field
483
+ *
484
+ * @example
485
+ * ```tsx
486
+ * // when the error is not associated with any fields, `clearError` will need to invoke to clear the error
487
+ * const onSubmit = () => setError("serverError", { type: "server", message: "Error occurred"})
488
+ *
489
+ * <button onClick={() => setError("name", { type: "min" })} />
490
+ *
491
+ * // focus on the input after setting the error
492
+ * <button onClick={() => setError("name", { type: "max" }, { shouldFocus: true })} />
493
+ * ```
494
+ */
495
+ export type UseFormSetError<TFieldValues extends FieldValues> = (name: FieldPath<TFieldValues> | `root.${string}` | 'root' | 'form' | `form.${string}`, error: ErrorOption, options?: {
496
+ shouldFocus: boolean;
497
+ }) => void;
498
+ /**
499
+ * Unregister a field reference and remove its value.
500
+ *
501
+ * @remarks
502
+ * [API](https://react-hook-form.com/docs/useform/unregister) • [Demo](https://codesandbox.io/s/react-hook-form-unregister-4k2ey) • [Video](https://www.youtube.com/watch?v=TM99g_NW5Gk&feature=emb_imp_woyt)
503
+ *
504
+ * @param name - the path name to the form field value.
505
+ * @param options - keep form state options
506
+ *
507
+ * @example
508
+ * ```tsx
509
+ * register("name", { required: true })
510
+ *
511
+ * <button onClick={() => unregister("name")} />
512
+ * // there are various keep options to retain formState
513
+ * <button onClick={() => unregister("name", { keepErrors: true })} />
514
+ * ```
515
+ */
516
+ export type UseFormUnregister<TFieldValues extends FieldValues> = (name?: FieldPath<TFieldValues> | FieldPath<TFieldValues>[] | readonly FieldPath<TFieldValues>[], options?: Omit<KeepStateOptions, 'keepIsSubmitted' | 'keepSubmitCount' | 'keepValues' | 'keepDefaultValues' | 'keepErrors'> & {
517
+ keepValue?: boolean;
518
+ keepDefaultValue?: boolean;
519
+ keepError?: boolean;
520
+ }) => void;
521
+ /**
522
+ * Validate the entire form. Handle submit and error callback.
523
+ *
524
+ * @remarks
525
+ * [API](https://react-hook-form.com/docs/useform/handlesubmit) • [Demo](https://codesandbox.io/s/react-hook-form-handlesubmit-ts-v7-lcrtu) • [Video](https://www.youtube.com/watch?v=KzcPKB9SOEk)
526
+ *
527
+ * @param onValid - callback function invoked after form pass validation
528
+ * @param onInvalid - callback function invoked when form failed validation
529
+ *
530
+ * @returns callback - return callback function
531
+ *
532
+ * @example
533
+ * ```tsx
534
+ * const onSubmit = (data) => console.log(data);
535
+ * const onError = (error) => console.log(error);
536
+ *
537
+ * <form onSubmit={handleSubmit(onSubmit, onError)} />
538
+ * ```
539
+ */
540
+ export type UseFormHandleSubmit<TFieldValues extends FieldValues, TTransformedValues = TFieldValues> = (onValid: SubmitHandler<TTransformedValues>, onInvalid?: SubmitErrorHandler<TFieldValues>) => (e?: React.BaseSyntheticEvent) => Promise<void>;
541
+ /**
542
+ * Reset a field state and reference.
543
+ *
544
+ * @remarks
545
+ * [API](https://react-hook-form.com/docs/useform/resetfield) • [Demo](https://codesandbox.io/s/priceless-firefly-d0kuv) • [Video](https://www.youtube.com/watch?v=IdLFcNaEFEo)
546
+ *
547
+ * @param name - the path name to the form field value.
548
+ * @param options - keep form state options
549
+ *
550
+ * @example
551
+ * ```tsx
552
+ * <input {...register("firstName", { required: true })} />
553
+ * <button type="button" onClick={() => resetField("firstName"))}>Reset</button>
554
+ * ```
555
+ */
556
+ export type UseFormResetField<TFieldValues extends FieldValues> = <TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(name: TFieldName, options?: ResetFieldConfig<TFieldValues, TFieldName>) => void;
557
+ type ResetAction<TFieldValues> = (formValues: TFieldValues) => TFieldValues;
558
+ /**
559
+ * Reset at the entire form state.
560
+ *
561
+ * @remarks
562
+ * [API](https://react-hook-form.com/docs/useform/reset) • [Demo](https://codesandbox.io/s/react-hook-form-reset-v7-ts-pu901) • [Video](https://www.youtube.com/watch?v=qmCLBjyPwVk)
563
+ *
564
+ * @param values - the entire form values to be reset
565
+ * @param keepStateOptions - keep form state options
566
+ *
567
+ * @example
568
+ * ```tsx
569
+ * useEffect(() => {
570
+ * // reset the entire form after component mount or form defaultValues is ready
571
+ * reset({
572
+ * fieldA: "test"
573
+ * fieldB: "test"
574
+ * });
575
+ * }, [reset])
576
+ *
577
+ * // reset by combine with existing form values
578
+ * reset({
579
+ * ...getValues(),
580
+ * fieldB: "test"
581
+ *});
582
+ *
583
+ * // reset and keep form state
584
+ * reset({
585
+ * ...getValues(),
586
+ *}, {
587
+ * keepErrors: true,
588
+ * keepDirty: true
589
+ *});
590
+ * ```
591
+ */
592
+ export type UseFormReset<TFieldValues extends FieldValues> = (values?: DefaultValues<TFieldValues> | TFieldValues | ResetAction<TFieldValues>, keepStateOptions?: KeepStateOptions) => void;
593
+ export type WatchInternal<TFieldValues> = (fieldNames?: InternalFieldName | InternalFieldName[], defaultValue?: DeepPartial<TFieldValues>, isMounted?: boolean, isGlobal?: boolean) => FieldPathValue<FieldValues, InternalFieldName> | FieldPathValues<FieldValues, InternalFieldName[]>;
594
+ export type GetIsDirty = <TName extends InternalFieldName, TData>(name?: TName, data?: TData) => boolean;
595
+ export type FormStateSubjectRef<TFieldValues extends FieldValues> = Subject<Partial<FormState<TFieldValues>> & {
596
+ name?: InternalFieldName;
597
+ values?: TFieldValues;
598
+ type?: EventType;
599
+ }>;
600
+ export type Subjects<TFieldValues extends FieldValues = FieldValues> = {
601
+ array: Subject<{
602
+ name?: InternalFieldName;
603
+ values?: FieldValues;
604
+ }>;
605
+ state: FormStateSubjectRef<TFieldValues>;
606
+ };
607
+ export type Names = {
608
+ mount: InternalNameSet;
609
+ unMount: InternalNameSet;
610
+ disabled: InternalNameSet;
611
+ array: InternalNameSet;
612
+ watch: InternalNameSet;
613
+ focus?: InternalFieldName;
614
+ watchAll?: boolean;
615
+ };
616
+ export type BatchFieldArrayUpdate = <T extends Function, TFieldValues extends FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>>(name: InternalFieldName, updatedFieldArrayValues?: Partial<FieldArray<TFieldValues, TFieldArrayName>>[], method?: T, args?: Partial<{
617
+ argA: unknown;
618
+ argB: unknown;
619
+ }>, shouldSetValue?: boolean, shouldUpdateFieldsAndErrors?: boolean) => void;
620
+ export type FromSubscribe<TFieldValues extends FieldValues> = <TFieldNames extends readonly FieldPath<TFieldValues>[]>(payload: {
621
+ name?: readonly [...TFieldNames] | TFieldNames[number];
622
+ formState?: Partial<ReadFormState>;
623
+ callback: (data: Partial<FormState<TFieldValues>> & {
624
+ values: TFieldValues;
625
+ name?: InternalFieldName;
626
+ }) => void;
627
+ exact?: boolean;
628
+ reRenderRoot?: boolean;
629
+ }) => () => void;
630
+ export type Control<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues> = {
631
+ _subjects: Subjects<TFieldValues>;
632
+ _removeUnmounted: Noop;
633
+ _names: Names;
634
+ _state: {
635
+ mount: boolean;
636
+ action: boolean;
637
+ watch: boolean;
638
+ };
639
+ _reset: UseFormReset<TFieldValues>;
640
+ _options: UseFormProps<TFieldValues, TContext, TTransformedValues>;
641
+ _getDirty: GetIsDirty;
642
+ _resetDefaultValues: Noop;
643
+ _formState: FormState<TFieldValues>;
644
+ _setValid: (shouldUpdateValid?: boolean) => void;
645
+ _fields: FieldRefs;
646
+ _formValues: FieldValues;
647
+ _proxyFormState: ReadFormState;
648
+ _defaultValues: Partial<DefaultValues<TFieldValues>>;
649
+ _getWatch: WatchInternal<TFieldValues>;
650
+ _setFieldArray: BatchFieldArrayUpdate;
651
+ _getFieldArray: <TFieldArrayValues>(name: InternalFieldName) => Partial<TFieldArrayValues>[];
652
+ _setErrors: (errors: FieldErrors<TFieldValues>) => void;
653
+ _setDisabledField: (props: {
654
+ disabled?: boolean;
655
+ name: FieldName<any>;
656
+ }) => void;
657
+ _runSchema: (names: InternalFieldName[]) => Promise<{
658
+ errors: FieldErrors;
659
+ }>;
660
+ _updateIsValidating: (names?: InternalFieldName[], isValidating?: boolean) => void;
661
+ _focusError: () => boolean | undefined;
662
+ _disableForm: (disabled?: boolean) => void;
663
+ _subscribe: FromSubscribe<TFieldValues>;
664
+ register: UseFormRegister<TFieldValues>;
665
+ handleSubmit: UseFormHandleSubmit<TFieldValues, TTransformedValues>;
666
+ unregister: UseFormUnregister<TFieldValues>;
667
+ getFieldState: UseFormGetFieldState<TFieldValues>;
668
+ setError: UseFormSetError<TFieldValues>;
669
+ };
670
+ export type WatchObserver<TFieldValues extends FieldValues> = (value: DeepPartialSkipArrayKey<TFieldValues>, info: {
671
+ name?: FieldPath<TFieldValues>;
672
+ type?: EventType;
673
+ values?: unknown;
674
+ }) => void;
675
+ export type UseFormReturn<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues> = {
676
+ watch: UseFormWatch<TFieldValues>;
677
+ getValues: UseFormGetValues<TFieldValues>;
678
+ getFieldState: UseFormGetFieldState<TFieldValues>;
679
+ setError: UseFormSetError<TFieldValues>;
680
+ clearErrors: UseFormClearErrors<TFieldValues>;
681
+ setValue: UseFormSetValue<TFieldValues>;
682
+ trigger: UseFormTrigger<TFieldValues>;
683
+ formState: FormState<TFieldValues>;
684
+ resetField: UseFormResetField<TFieldValues>;
685
+ reset: UseFormReset<TFieldValues>;
686
+ handleSubmit: UseFormHandleSubmit<TFieldValues, TTransformedValues>;
687
+ unregister: UseFormUnregister<TFieldValues>;
688
+ control: Control<TFieldValues, TContext, TTransformedValues>;
689
+ register: UseFormRegister<TFieldValues>;
690
+ setFocus: UseFormSetFocus<TFieldValues>;
691
+ subscribe: UseFormSubscribe<TFieldValues>;
692
+ };
693
+ export type UseFormStateProps<TFieldValues extends FieldValues, TTransformedValues = TFieldValues> = Partial<{
694
+ control?: Control<TFieldValues, any, TTransformedValues>;
695
+ disabled?: boolean;
696
+ name?: FieldPath<TFieldValues> | FieldPath<TFieldValues>[] | readonly FieldPath<TFieldValues>[];
697
+ exact?: boolean;
698
+ }>;
699
+ export type UseFormStateReturn<TFieldValues extends FieldValues> = FormState<TFieldValues>;
700
+ export type FormProviderProps<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues> = {
701
+ children: React.ReactNode | React.ReactNode[];
702
+ } & UseFormReturn<TFieldValues, TContext, TTransformedValues>;
703
+ export type FormProps<TFieldValues extends FieldValues, TTransformedValues = TFieldValues> = Omit<React.FormHTMLAttributes<HTMLFormElement>, 'onError' | 'onSubmit'> & Partial<{
704
+ control: Control<TFieldValues, any, TTransformedValues>;
705
+ headers: Record<string, string>;
706
+ validateStatus: (status: number) => boolean;
707
+ onError: ({ response, error, }: {
708
+ response: Response;
709
+ error?: undefined;
710
+ } | {
711
+ response?: undefined;
712
+ error: unknown;
713
+ }) => void;
714
+ onSuccess: ({ response }: {
715
+ response: Response;
716
+ }) => void;
717
+ onSubmit: FormSubmitHandler<TTransformedValues>;
718
+ method: 'post' | 'put' | 'delete';
719
+ children: React.ReactNode | React.ReactNode[];
720
+ render: (props: {
721
+ submit: (e?: React.FormEvent) => void;
722
+ }) => React.ReactNode | React.ReactNode[];
723
+ encType: 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain' | 'application/json';
724
+ }>;
725
+ export {};
726
+ //# sourceMappingURL=form.d.ts.map