react-hook-form 7.73.1 → 7.75.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 (250) hide show
  1. package/README.md +1 -2
  2. package/dist/index.cjs.js +1 -1
  3. package/dist/index.cjs.js.map +1 -1
  4. package/dist/index.esm.mjs +120 -68
  5. package/dist/index.esm.mjs.map +1 -1
  6. package/dist/index.umd.js +1 -1
  7. package/dist/index.umd.js.map +1 -1
  8. package/dist/logic/createFormControl.d.ts +13 -0
  9. package/dist/logic/createFormControl.d.ts.map +1 -1
  10. package/dist/logic/getDirtyFields.d.ts.map +1 -1
  11. package/dist/logic/getProxyFormState.d.ts.map +1 -1
  12. package/dist/logic/getResolverOptions.d.ts +2 -2
  13. package/dist/logic/hasValidation.d.ts +1 -1
  14. package/dist/logic/shouldRenderFormState.d.ts.map +1 -1
  15. package/dist/logic/validateField.d.ts.map +1 -1
  16. package/dist/react-server.esm.mjs +98 -41
  17. package/dist/react-server.esm.mjs.map +1 -1
  18. package/dist/types/form.d.ts +3 -0
  19. package/dist/types/form.d.ts.map +1 -1
  20. package/dist/useController.d.ts.map +1 -1
  21. package/dist/useFieldArray.d.ts.map +1 -1
  22. package/dist/useForm.d.ts.map +1 -1
  23. package/dist/useFormContext.d.ts.map +1 -1
  24. package/dist/useFormState.d.ts.map +1 -1
  25. package/dist/utils/unset.d.ts.map +1 -1
  26. package/package.json +4 -5
  27. package/dist/__tests__/controller.server.test.d.ts +0 -2
  28. package/dist/__tests__/controller.server.test.d.ts.map +0 -1
  29. package/dist/__tests__/controller.test.d.ts +0 -2
  30. package/dist/__tests__/controller.test.d.ts.map +0 -1
  31. package/dist/__tests__/form.test.d.ts +0 -2
  32. package/dist/__tests__/form.test.d.ts.map +0 -1
  33. package/dist/__tests__/formStateSubscribe.server.test.d.ts +0 -2
  34. package/dist/__tests__/formStateSubscribe.server.test.d.ts.map +0 -1
  35. package/dist/__tests__/formStateSubscribe.test.d.ts +0 -2
  36. package/dist/__tests__/formStateSubscribe.test.d.ts.map +0 -1
  37. package/dist/__tests__/isPlainObject.test.d.ts +0 -2
  38. package/dist/__tests__/isPlainObject.test.d.ts.map +0 -1
  39. package/dist/__tests__/logic/appendErrors.test.d.ts +0 -2
  40. package/dist/__tests__/logic/appendErrors.test.d.ts.map +0 -1
  41. package/dist/__tests__/logic/createFormControl.test.d.ts +0 -2
  42. package/dist/__tests__/logic/createFormControl.test.d.ts.map +0 -1
  43. package/dist/__tests__/logic/generateId.test.d.ts +0 -2
  44. package/dist/__tests__/logic/generateId.test.d.ts.map +0 -1
  45. package/dist/__tests__/logic/getCheckboxValue.test.d.ts +0 -2
  46. package/dist/__tests__/logic/getCheckboxValue.test.d.ts.map +0 -1
  47. package/dist/__tests__/logic/getDirtyFields.test.d.ts +0 -2
  48. package/dist/__tests__/logic/getDirtyFields.test.d.ts.map +0 -1
  49. package/dist/__tests__/logic/getEventValue.test.d.ts +0 -2
  50. package/dist/__tests__/logic/getEventValue.test.d.ts.map +0 -1
  51. package/dist/__tests__/logic/getFieldValue.test.d.ts +0 -2
  52. package/dist/__tests__/logic/getFieldValue.test.d.ts.map +0 -1
  53. package/dist/__tests__/logic/getFieldValueAs.test.d.ts +0 -2
  54. package/dist/__tests__/logic/getFieldValueAs.test.d.ts.map +0 -1
  55. package/dist/__tests__/logic/getFocusFieldName.test.d.ts +0 -2
  56. package/dist/__tests__/logic/getFocusFieldName.test.d.ts.map +0 -1
  57. package/dist/__tests__/logic/getNodeParentName.test.d.ts +0 -2
  58. package/dist/__tests__/logic/getNodeParentName.test.d.ts.map +0 -1
  59. package/dist/__tests__/logic/getRadioValue.test.d.ts +0 -2
  60. package/dist/__tests__/logic/getRadioValue.test.d.ts.map +0 -1
  61. package/dist/__tests__/logic/getResolverOptions.test.d.ts +0 -2
  62. package/dist/__tests__/logic/getResolverOptions.test.d.ts.map +0 -1
  63. package/dist/__tests__/logic/getRuleValue.test.d.ts +0 -2
  64. package/dist/__tests__/logic/getRuleValue.test.d.ts.map +0 -1
  65. package/dist/__tests__/logic/getValidateError.test.d.ts +0 -2
  66. package/dist/__tests__/logic/getValidateError.test.d.ts.map +0 -1
  67. package/dist/__tests__/logic/getValidationModes.test.d.ts +0 -2
  68. package/dist/__tests__/logic/getValidationModes.test.d.ts.map +0 -1
  69. package/dist/__tests__/logic/getValueAndMessage.test.d.ts +0 -2
  70. package/dist/__tests__/logic/getValueAndMessage.test.d.ts.map +0 -1
  71. package/dist/__tests__/logic/hasPromiseValidation.test.d.ts +0 -2
  72. package/dist/__tests__/logic/hasPromiseValidation.test.d.ts.map +0 -1
  73. package/dist/__tests__/logic/hasValidation.test.d.ts +0 -2
  74. package/dist/__tests__/logic/hasValidation.test.d.ts.map +0 -1
  75. package/dist/__tests__/logic/isNameInFieldArray.test.d.ts +0 -2
  76. package/dist/__tests__/logic/isNameInFieldArray.test.d.ts.map +0 -1
  77. package/dist/__tests__/logic/isWatched.test.d.ts +0 -2
  78. package/dist/__tests__/logic/isWatched.test.d.ts.map +0 -1
  79. package/dist/__tests__/logic/iterateFieldsByAction.test.d.ts +0 -2
  80. package/dist/__tests__/logic/iterateFieldsByAction.test.d.ts.map +0 -1
  81. package/dist/__tests__/logic/schemaErrorLookup.test.d.ts +0 -2
  82. package/dist/__tests__/logic/schemaErrorLookup.test.d.ts.map +0 -1
  83. package/dist/__tests__/logic/shouldRenderFormState.test.d.ts +0 -2
  84. package/dist/__tests__/logic/shouldRenderFormState.test.d.ts.map +0 -1
  85. package/dist/__tests__/logic/shouldSubscribeByName.test.d.ts +0 -2
  86. package/dist/__tests__/logic/shouldSubscribeByName.test.d.ts.map +0 -1
  87. package/dist/__tests__/logic/skipValidation.test.d.ts +0 -2
  88. package/dist/__tests__/logic/skipValidation.test.d.ts.map +0 -1
  89. package/dist/__tests__/logic/unsetEmptyArray.test.d.ts +0 -2
  90. package/dist/__tests__/logic/unsetEmptyArray.test.d.ts.map +0 -1
  91. package/dist/__tests__/logic/validateField.test.d.ts +0 -2
  92. package/dist/__tests__/logic/validateField.test.d.ts.map +0 -1
  93. package/dist/__tests__/nested-null.test.d.ts +0 -2
  94. package/dist/__tests__/nested-null.test.d.ts.map +0 -1
  95. package/dist/__tests__/type.test.d.ts +0 -2
  96. package/dist/__tests__/type.test.d.ts.map +0 -1
  97. package/dist/__tests__/useController.test.d.ts +0 -2
  98. package/dist/__tests__/useController.test.d.ts.map +0 -1
  99. package/dist/__tests__/useFieldArray/append.test.d.ts +0 -2
  100. package/dist/__tests__/useFieldArray/append.test.d.ts.map +0 -1
  101. package/dist/__tests__/useFieldArray/dirtyFields.test.d.ts +0 -2
  102. package/dist/__tests__/useFieldArray/dirtyFields.test.d.ts.map +0 -1
  103. package/dist/__tests__/useFieldArray/focus.test.d.ts +0 -2
  104. package/dist/__tests__/useFieldArray/focus.test.d.ts.map +0 -1
  105. package/dist/__tests__/useFieldArray/insert.test.d.ts +0 -2
  106. package/dist/__tests__/useFieldArray/insert.test.d.ts.map +0 -1
  107. package/dist/__tests__/useFieldArray/move.test.d.ts +0 -2
  108. package/dist/__tests__/useFieldArray/move.test.d.ts.map +0 -1
  109. package/dist/__tests__/useFieldArray/prepend.test.d.ts +0 -2
  110. package/dist/__tests__/useFieldArray/prepend.test.d.ts.map +0 -1
  111. package/dist/__tests__/useFieldArray/remove.test.d.ts +0 -2
  112. package/dist/__tests__/useFieldArray/remove.test.d.ts.map +0 -1
  113. package/dist/__tests__/useFieldArray/replace.test.d.ts +0 -2
  114. package/dist/__tests__/useFieldArray/replace.test.d.ts.map +0 -1
  115. package/dist/__tests__/useFieldArray/swap.test.d.ts +0 -2
  116. package/dist/__tests__/useFieldArray/swap.test.d.ts.map +0 -1
  117. package/dist/__tests__/useFieldArray/update.test.d.ts +0 -2
  118. package/dist/__tests__/useFieldArray/update.test.d.ts.map +0 -1
  119. package/dist/__tests__/useFieldArray.test.d.ts +0 -2
  120. package/dist/__tests__/useFieldArray.test.d.ts.map +0 -1
  121. package/dist/__tests__/useForm/clearErrors.test.d.ts +0 -2
  122. package/dist/__tests__/useForm/clearErrors.test.d.ts.map +0 -1
  123. package/dist/__tests__/useForm/formState.test.d.ts +0 -2
  124. package/dist/__tests__/useForm/formState.test.d.ts.map +0 -1
  125. package/dist/__tests__/useForm/getFieldState.test.d.ts +0 -2
  126. package/dist/__tests__/useForm/getFieldState.test.d.ts.map +0 -1
  127. package/dist/__tests__/useForm/getValues.test.d.ts +0 -2
  128. package/dist/__tests__/useForm/getValues.test.d.ts.map +0 -1
  129. package/dist/__tests__/useForm/handleSubmit.test.d.ts +0 -2
  130. package/dist/__tests__/useForm/handleSubmit.test.d.ts.map +0 -1
  131. package/dist/__tests__/useForm/register.test.d.ts +0 -2
  132. package/dist/__tests__/useForm/register.test.d.ts.map +0 -1
  133. package/dist/__tests__/useForm/reset.test.d.ts +0 -2
  134. package/dist/__tests__/useForm/reset.test.d.ts.map +0 -1
  135. package/dist/__tests__/useForm/resetField.test.d.ts +0 -2
  136. package/dist/__tests__/useForm/resetField.test.d.ts.map +0 -1
  137. package/dist/__tests__/useForm/resolver.test.d.ts +0 -2
  138. package/dist/__tests__/useForm/resolver.test.d.ts.map +0 -1
  139. package/dist/__tests__/useForm/setError.test.d.ts +0 -2
  140. package/dist/__tests__/useForm/setError.test.d.ts.map +0 -1
  141. package/dist/__tests__/useForm/setFocus.test.d.ts +0 -2
  142. package/dist/__tests__/useForm/setFocus.test.d.ts.map +0 -1
  143. package/dist/__tests__/useForm/setValue.test.d.ts +0 -2
  144. package/dist/__tests__/useForm/setValue.test.d.ts.map +0 -1
  145. package/dist/__tests__/useForm/subscribe.test.d.ts +0 -2
  146. package/dist/__tests__/useForm/subscribe.test.d.ts.map +0 -1
  147. package/dist/__tests__/useForm/trigger.test.d.ts +0 -2
  148. package/dist/__tests__/useForm/trigger.test.d.ts.map +0 -1
  149. package/dist/__tests__/useForm/unregister.test.d.ts +0 -2
  150. package/dist/__tests__/useForm/unregister.test.d.ts.map +0 -1
  151. package/dist/__tests__/useForm/useFormWithNullValues.test.d.ts +0 -2
  152. package/dist/__tests__/useForm/useFormWithNullValues.test.d.ts.map +0 -1
  153. package/dist/__tests__/useForm/watch.test.d.ts +0 -2
  154. package/dist/__tests__/useForm/watch.test.d.ts.map +0 -1
  155. package/dist/__tests__/useForm.server.test.d.ts +0 -2
  156. package/dist/__tests__/useForm.server.test.d.ts.map +0 -1
  157. package/dist/__tests__/useForm.test.d.ts +0 -2
  158. package/dist/__tests__/useForm.test.d.ts.map +0 -1
  159. package/dist/__tests__/useFormContext.server.test.d.ts +0 -2
  160. package/dist/__tests__/useFormContext.server.test.d.ts.map +0 -1
  161. package/dist/__tests__/useFormContext.test.d.ts +0 -2
  162. package/dist/__tests__/useFormContext.test.d.ts.map +0 -1
  163. package/dist/__tests__/useFormState.test.d.ts +0 -2
  164. package/dist/__tests__/useFormState.test.d.ts.map +0 -1
  165. package/dist/__tests__/useWatch.test.d.ts +0 -2
  166. package/dist/__tests__/useWatch.test.d.ts.map +0 -1
  167. package/dist/__tests__/utils/append.test.d.ts +0 -2
  168. package/dist/__tests__/utils/append.test.d.ts.map +0 -1
  169. package/dist/__tests__/utils/cloneObject.test.d.ts +0 -2
  170. package/dist/__tests__/utils/cloneObject.test.d.ts.map +0 -1
  171. package/dist/__tests__/utils/compact.test.d.ts +0 -2
  172. package/dist/__tests__/utils/compact.test.d.ts.map +0 -1
  173. package/dist/__tests__/utils/convertToArrayPayload.test.d.ts +0 -2
  174. package/dist/__tests__/utils/convertToArrayPayload.test.d.ts.map +0 -1
  175. package/dist/__tests__/utils/createSubject.test.d.ts +0 -2
  176. package/dist/__tests__/utils/createSubject.test.d.ts.map +0 -1
  177. package/dist/__tests__/utils/deepEqual.test.d.ts +0 -2
  178. package/dist/__tests__/utils/deepEqual.test.d.ts.map +0 -1
  179. package/dist/__tests__/utils/deepMerge.test.d.ts +0 -2
  180. package/dist/__tests__/utils/deepMerge.test.d.ts.map +0 -1
  181. package/dist/__tests__/utils/extractFormValues.test.d.ts +0 -2
  182. package/dist/__tests__/utils/extractFormValues.test.d.ts.map +0 -1
  183. package/dist/__tests__/utils/fillEmptyArray.test.d.ts +0 -2
  184. package/dist/__tests__/utils/fillEmptyArray.test.d.ts.map +0 -1
  185. package/dist/__tests__/utils/flatten.test.d.ts +0 -2
  186. package/dist/__tests__/utils/flatten.test.d.ts.map +0 -1
  187. package/dist/__tests__/utils/get.test.d.ts +0 -2
  188. package/dist/__tests__/utils/get.test.d.ts.map +0 -1
  189. package/dist/__tests__/utils/insert.test.d.ts +0 -2
  190. package/dist/__tests__/utils/insert.test.d.ts.map +0 -1
  191. package/dist/__tests__/utils/isBoolean.test.d.ts +0 -2
  192. package/dist/__tests__/utils/isBoolean.test.d.ts.map +0 -1
  193. package/dist/__tests__/utils/isCheckBoxInput.test.d.ts +0 -2
  194. package/dist/__tests__/utils/isCheckBoxInput.test.d.ts.map +0 -1
  195. package/dist/__tests__/utils/isEmptyObject.test.d.ts +0 -2
  196. package/dist/__tests__/utils/isEmptyObject.test.d.ts.map +0 -1
  197. package/dist/__tests__/utils/isFileInput.test.d.ts +0 -2
  198. package/dist/__tests__/utils/isFileInput.test.d.ts.map +0 -1
  199. package/dist/__tests__/utils/isFunction.test.d.ts +0 -2
  200. package/dist/__tests__/utils/isFunction.test.d.ts.map +0 -1
  201. package/dist/__tests__/utils/isHTMLElement.test.d.ts +0 -2
  202. package/dist/__tests__/utils/isHTMLElement.test.d.ts.map +0 -1
  203. package/dist/__tests__/utils/isKey.test.d.ts +0 -2
  204. package/dist/__tests__/utils/isKey.test.d.ts.map +0 -1
  205. package/dist/__tests__/utils/isMultipleSelect.test.d.ts +0 -2
  206. package/dist/__tests__/utils/isMultipleSelect.test.d.ts.map +0 -1
  207. package/dist/__tests__/utils/isNullOrUndefined.test.d.ts +0 -2
  208. package/dist/__tests__/utils/isNullOrUndefined.test.d.ts.map +0 -1
  209. package/dist/__tests__/utils/isObject.test.d.ts +0 -2
  210. package/dist/__tests__/utils/isObject.test.d.ts.map +0 -1
  211. package/dist/__tests__/utils/isPrimitive.test.d.ts +0 -2
  212. package/dist/__tests__/utils/isPrimitive.test.d.ts.map +0 -1
  213. package/dist/__tests__/utils/isRadioInput.test.d.ts +0 -2
  214. package/dist/__tests__/utils/isRadioInput.test.d.ts.map +0 -1
  215. package/dist/__tests__/utils/isRadioOrCheckbox.test.d.ts +0 -2
  216. package/dist/__tests__/utils/isRadioOrCheckbox.test.d.ts.map +0 -1
  217. package/dist/__tests__/utils/isRegex.test.d.ts +0 -2
  218. package/dist/__tests__/utils/isRegex.test.d.ts.map +0 -1
  219. package/dist/__tests__/utils/isString.test.d.ts +0 -2
  220. package/dist/__tests__/utils/isString.test.d.ts.map +0 -1
  221. package/dist/__tests__/utils/isUndefined.test.d.ts +0 -2
  222. package/dist/__tests__/utils/isUndefined.test.d.ts.map +0 -1
  223. package/dist/__tests__/utils/live.test.d.ts +0 -2
  224. package/dist/__tests__/utils/live.test.d.ts.map +0 -1
  225. package/dist/__tests__/utils/move.test.d.ts +0 -2
  226. package/dist/__tests__/utils/move.test.d.ts.map +0 -1
  227. package/dist/__tests__/utils/noop.test.d.ts +0 -2
  228. package/dist/__tests__/utils/noop.test.d.ts.map +0 -1
  229. package/dist/__tests__/utils/objectHasFunction.test.d.ts +0 -2
  230. package/dist/__tests__/utils/objectHasFunction.test.d.ts.map +0 -1
  231. package/dist/__tests__/utils/prepend.test.d.ts +0 -2
  232. package/dist/__tests__/utils/prepend.test.d.ts.map +0 -1
  233. package/dist/__tests__/utils/remove.test.d.ts +0 -2
  234. package/dist/__tests__/utils/remove.test.d.ts.map +0 -1
  235. package/dist/__tests__/utils/set.test.d.ts +0 -2
  236. package/dist/__tests__/utils/set.test.d.ts.map +0 -1
  237. package/dist/__tests__/utils/stringToPath.test.d.ts +0 -2
  238. package/dist/__tests__/utils/stringToPath.test.d.ts.map +0 -1
  239. package/dist/__tests__/utils/swap.test.d.ts +0 -2
  240. package/dist/__tests__/utils/swap.test.d.ts.map +0 -1
  241. package/dist/__tests__/utils/unset.test.d.ts +0 -2
  242. package/dist/__tests__/utils/unset.test.d.ts.map +0 -1
  243. package/dist/__tests__/utils/update.test.d.ts +0 -2
  244. package/dist/__tests__/utils/update.test.d.ts.map +0 -1
  245. package/dist/__tests__/utils/validationModeChecker.test.d.ts +0 -2
  246. package/dist/__tests__/utils/validationModeChecker.test.d.ts.map +0 -1
  247. package/dist/__tests__/watch.server.test.d.ts +0 -2
  248. package/dist/__tests__/watch.server.test.d.ts.map +0 -1
  249. package/dist/__tests__/watch.test.d.ts +0 -2
  250. package/dist/__tests__/watch.test.d.ts.map +0 -1
@@ -1,4 +1,17 @@
1
1
  import type { FieldValues, UseFormProps, UseFormReturn } from '../types';
2
+ export declare const DEFAULT_FORM_STATE: {
3
+ submitCount: number;
4
+ isDirty: boolean;
5
+ isReady: boolean;
6
+ isValidating: boolean;
7
+ isSubmitted: boolean;
8
+ isSubmitting: boolean;
9
+ isSubmitSuccessful: boolean;
10
+ isValid: boolean;
11
+ touchedFields: {};
12
+ dirtyFields: {};
13
+ validatingFields: {};
14
+ };
2
15
  export declare function createFormControl<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues>(props?: UseFormProps<TFieldValues, TContext, TTransformedValues>): Omit<UseFormReturn<TFieldValues, TContext, TTransformedValues>, 'formState'> & {
3
16
  formControl: Omit<UseFormReturn<TFieldValues, TContext, TTransformedValues>, 'formState'>;
4
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"createFormControl.d.ts","sourceRoot":"","sources":["../../src/logic/createFormControl.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAaV,WAAW,EAiBX,YAAY,EAIZ,aAAa,EAWd,MAAM,UAAU,CAAC;AAsDlB,wBAAgB,iBAAiB,CAC/B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,QAAQ,GAAG,GAAG,EACd,kBAAkB,GAAG,YAAY,EAEjC,KAAK,GAAE,YAAY,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,CAAM,GACnE,IAAI,CACL,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,CAAC,EACzD,WAAW,CACZ,GAAG;IACF,WAAW,EAAE,IAAI,CACf,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,CAAC,EACzD,WAAW,CACZ,CAAC;CACH,CAwmDA"}
1
+ {"version":3,"file":"createFormControl.d.ts","sourceRoot":"","sources":["../../src/logic/createFormControl.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAaV,WAAW,EAiBX,YAAY,EAIZ,aAAa,EAYd,MAAM,UAAU,CAAC;AAqDlB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;CAY9B,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,QAAQ,GAAG,GAAG,EACd,kBAAkB,GAAG,YAAY,EAEjC,KAAK,GAAE,YAAY,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,CAAM,GACnE,IAAI,CACL,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,CAAC,EACzD,WAAW,CACZ,GAAG;IACF,WAAW,EAAE,IAAI,CACf,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,CAAC,EACzD,WAAW,CACZ,CAAC;CACH,CAsoDA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getDirtyFields.d.ts","sourceRoot":"","sources":["../../src/logic/getDirtyFields.ts"],"names":[],"mappings":"AAWA,iBAAS,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,uBAapE;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,CAAC,EACtC,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,CAAC,EACb,qBAAqB,CAAC,EAAE,MAAM,CAC5B,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EACxB,UAAU,CAAC,OAAO,eAAe,CAAC,GAAG,OAAO,CAC7C,mEA6BF"}
1
+ {"version":3,"file":"getDirtyFields.d.ts","sourceRoot":"","sources":["../../src/logic/getDirtyFields.ts"],"names":[],"mappings":"AAWA,iBAAS,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,uBAapE;AAmCD,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,CAAC,EACtC,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,CAAC,EACb,qBAAqB,CAAC,EAAE,MAAM,CAC5B,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EACxB,UAAU,CAAC,OAAO,eAAe,CAAC,GAAG,OAAO,CAC7C,mEA6BF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getProxyFormState.d.ts","sourceRoot":"","sources":["../../src/logic/getProxyFormState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;yBAG7E,YAAY,SAAS,WAAW,EAChC,QAAQ,GAAG,GAAG,EACd,kBAAkB,GAAG,YAAY,EAEjC,WAAW,SAAS,CAAC,YAAY,CAAC,EAClC,SAAS,OAAO,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,CAAC,EAC5D,sBAAsB,aAAa,EACnC,gBAAa;AARf,wBA8BE"}
1
+ {"version":3,"file":"getProxyFormState.d.ts","sourceRoot":"","sources":["../../src/logic/getProxyFormState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;yBAG7E,YAAY,SAAS,WAAW,EAChC,QAAQ,GAAG,GAAG,EACd,kBAAkB,GAAG,YAAY,EAEjC,WAAW,SAAS,CAAC,YAAY,CAAC,EAClC,SAAS,OAAO,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,CAAC,EAC5D,sBAAsB,aAAa,EACnC,gBAAa;AARf,wBA4BE"}
@@ -3,11 +3,11 @@ declare const _default: <TFieldValues extends FieldValues>(fieldsNames: Set<Inte
3
3
  criteriaMode: CriteriaMode | undefined;
4
4
  names: FieldName<TFieldValues>[];
5
5
  fields: Record<string, {
6
- ref: import("../types").Ref;
6
+ ref: import("..").Ref;
7
7
  name: InternalFieldName;
8
8
  refs?: HTMLInputElement[];
9
9
  mount?: boolean;
10
- } & import("../types").RegisterOptions>;
10
+ } & import("..").RegisterOptions>;
11
11
  shouldUseNativeValidation: boolean | undefined;
12
12
  };
13
13
  export default _default;
@@ -1,4 +1,4 @@
1
1
  import type { Field } from '../types';
2
- declare const _default: (options: Field["_f"]) => string | number | boolean | import("../types").ValidationValueMessage<boolean> | import("../types").ValidationValueMessage<string | number> | import("../types").ValidationRule<RegExp> | import("../types").Validate<any, import("../types").FieldValues> | Record<string, import("../types").Validate<any, import("../types").FieldValues>> | undefined;
2
+ declare const _default: (options: Field["_f"]) => string | number | boolean | import("..").ValidationValueMessage<boolean> | import("..").ValidationValueMessage<string | number> | import("..").ValidationRule<RegExp> | import("..").Validate<any, import("..").FieldValues> | Record<string, import("..").Validate<any, import("..").FieldValues>> | undefined;
3
3
  export default _default;
4
4
  //# sourceMappingURL=hasValidation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shouldRenderFormState.d.ts","sourceRoot":"","sources":["../../src/logic/shouldRenderFormState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,aAAa,EACd,MAAM,UAAU,CAAC;yBAGF,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,aAAa,EAC5D,eAAe,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG;IACrC,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,CAAC;CACZ,EACD,iBAAiB,CAAC,EAClB,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAC3D,SAAS,OAAO;AAPlB,wBAqBE"}
1
+ {"version":3,"file":"shouldRenderFormState.d.ts","sourceRoot":"","sources":["../../src/logic/shouldRenderFormState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,aAAa,EACd,MAAM,UAAU,CAAC;yBAGF,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,aAAa,EAC5D,eAAe,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG;IACrC,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,CAAC;CACZ,EACD,iBAAiB,CAAC,EAClB,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAC3D,SAAS,OAAO;AAPlB,wBAsBE"}
@@ -1 +1 @@
1
- {"version":3,"file":"validateField.d.ts","sourceRoot":"","sources":["../../src/logic/validateField.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,KAAK,EAEL,WAAW,EACX,mBAAmB,EACnB,eAAe,EAKhB,MAAM,UAAU,CAAC;yBAqBI,CAAC,SAAS,WAAW,EACzC,OAAO,KAAK,EACZ,oBAAoB,eAAe,EACnC,YAAY,CAAC,EACb,0BAA0B,OAAO,EACjC,4BAA4B,OAAO,EACnC,eAAe,OAAO,KACrB,OAAO,CAAC,mBAAmB,CAAC;AAP/B,wBA6PE"}
1
+ {"version":3,"file":"validateField.d.ts","sourceRoot":"","sources":["../../src/logic/validateField.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,KAAK,EAEL,WAAW,EACX,mBAAmB,EACnB,eAAe,EAKhB,MAAM,UAAU,CAAC;yBAqBI,CAAC,SAAS,WAAW,EACzC,OAAO,KAAK,EACZ,oBAAoB,eAAe,EACnC,YAAY,CAAC,EACb,0BAA0B,OAAO,EACjC,4BAA4B,OAAO,EACnC,eAAe,OAAO,KACrB,OAAO,CAAC,mBAAmB,CAAC;AAP/B,wBA8PE"}
@@ -246,7 +246,12 @@ function baseGet(object, updatePath) {
246
246
  const length = updatePath.slice(0, -1).length;
247
247
  let index = 0;
248
248
  while (index < length) {
249
- object = isUndefined(object) ? index++ : object[updatePath[index++]];
249
+ if (isNullOrUndefined(object)) {
250
+ object = undefined;
251
+ break;
252
+ }
253
+ object = object[updatePath[index]];
254
+ index++;
250
255
  }
251
256
  return object;
252
257
  }
@@ -320,6 +325,29 @@ function markFieldsDirty(data, fields = {}) {
320
325
  }
321
326
  return fields;
322
327
  }
328
+ function pruneDirtyFields(value) {
329
+ if (value === false) {
330
+ return undefined;
331
+ }
332
+ if (value === true) {
333
+ return true;
334
+ }
335
+ if (Array.isArray(value)) {
336
+ const result = value.map((value) => pruneDirtyFields(value));
337
+ return (result.some((value) => value !== undefined) ? result : undefined);
338
+ }
339
+ if (isObject(value)) {
340
+ const result = {};
341
+ for (const key in value) {
342
+ const pruned = pruneDirtyFields(value[key]);
343
+ if (!isUndefined(pruned)) {
344
+ result[key] = pruned;
345
+ }
346
+ }
347
+ return (Object.keys(result).length ? result : undefined);
348
+ }
349
+ return undefined;
350
+ }
323
351
  function getDirtyFields(data, formValues, dirtyFieldsFromValues) {
324
352
  if (!dirtyFieldsFromValues) {
325
353
  dirtyFieldsFromValues = markFieldsDirty(formValues);
@@ -339,7 +367,7 @@ function getDirtyFields(data, formValues, dirtyFieldsFromValues) {
339
367
  dirtyFieldsFromValues[key] = !deepEqual(value, formValue);
340
368
  }
341
369
  }
342
- return dirtyFieldsFromValues;
370
+ return pruneDirtyFields(dirtyFieldsFromValues) || {};
343
371
  }
344
372
 
345
373
  var getEventValue = (event) => isObject(event) && event.target
@@ -417,8 +445,6 @@ function getFieldValue(_f) {
417
445
  return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);
418
446
  }
419
447
 
420
- var getNodeParentName = (name) => name.substring(0, name.search(/\.\d+(\.|$)/)) || name;
421
-
422
448
  var getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {
423
449
  const fields = {};
424
450
  for (const name of fieldsNames) {
@@ -547,7 +573,8 @@ var shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, is
547
573
  updateFormState(formStateData);
548
574
  const { name, ...formState } = formStateData;
549
575
  return (isEmptyObject(formState) ||
550
- Object.keys(formState).length >= Object.keys(_proxyFormState).length ||
576
+ (isRoot &&
577
+ Object.keys(formState).length >= Object.keys(_proxyFormState).length) ||
551
578
  Object.keys(formState).find((key) => _proxyFormState[key] ===
552
579
  (!isRoot || VALIDATION_MODE.all)));
553
580
  };
@@ -627,7 +654,8 @@ var validateField = async (field, disabledFieldNames, formValues, validateAllFie
627
654
  isUndefined(inputValue)) ||
628
655
  (isHTMLElement(ref) && ref.value === '') ||
629
656
  inputValue === '' ||
630
- (Array.isArray(inputValue) && !inputValue.length);
657
+ (Array.isArray(inputValue) && !inputValue.length) ||
658
+ (valueAsNumber && typeof inputValue === 'number' && isNaN(inputValue));
631
659
  const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);
632
660
  const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {
633
661
  const message = exceedMax ? maxLengthMessage : minLengthMessage;
@@ -789,24 +817,27 @@ const defaultOptions = {
789
817
  reValidateMode: VALIDATION_MODE.onChange,
790
818
  shouldFocusError: true,
791
819
  };
820
+ const DEFAULT_FORM_STATE = {
821
+ submitCount: 0,
822
+ isDirty: false,
823
+ isReady: false,
824
+ isValidating: false,
825
+ isSubmitted: false,
826
+ isSubmitting: false,
827
+ isSubmitSuccessful: false,
828
+ isValid: false,
829
+ touchedFields: {},
830
+ dirtyFields: {},
831
+ validatingFields: {},
832
+ };
792
833
  function createFormControl(props = {}) {
793
834
  let _options = {
794
835
  ...defaultOptions,
795
836
  ...props,
796
837
  };
797
838
  let _formState = {
798
- submitCount: 0,
799
- isDirty: false,
800
- isReady: false,
839
+ ...cloneObject(DEFAULT_FORM_STATE),
801
840
  isLoading: isFunction(_options.defaultValues),
802
- isValidating: false,
803
- isSubmitted: false,
804
- isSubmitting: false,
805
- isSubmitSuccessful: false,
806
- isValid: false,
807
- touchedFields: {},
808
- dirtyFields: {},
809
- validatingFields: {},
810
841
  errors: _options.errors || {},
811
842
  disabled: _options.disabled || false,
812
843
  };
@@ -903,10 +934,8 @@ function createFormControl(props = {}) {
903
934
  });
904
935
  }
905
936
  };
906
- const _updateDirtyFields = (name) => {
907
- const fullDirtyFields = getDirtyFields(_defaultValues, _formValues);
908
- const rootName = getNodeParentName(name);
909
- set(_formState.dirtyFields, rootName, get(fullDirtyFields, rootName));
937
+ const _updateDirtyFields = () => {
938
+ _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);
910
939
  };
911
940
  const _setFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {
912
941
  if (args && method && !_options.disabled) {
@@ -929,7 +958,7 @@ function createFormControl(props = {}) {
929
958
  shouldSetValues && set(_formState.touchedFields, name, touchedFields);
930
959
  }
931
960
  if (_proxyFormState.dirtyFields || _proxySubscribeFormState.dirtyFields) {
932
- _updateDirtyFields(name);
961
+ _updateDirtyFields();
933
962
  }
934
963
  _subjects.state.next({
935
964
  name,
@@ -959,13 +988,31 @@ function createFormControl(props = {}) {
959
988
  const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {
960
989
  const field = get(_fields, name);
961
990
  if (field) {
991
+ const wasUnsetInFormValues = isUndefined(get(_formValues, name));
962
992
  const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);
963
993
  isUndefined(defaultValue) ||
964
994
  (ref && ref.defaultChecked) ||
965
995
  shouldSkipSetValueAs
966
996
  ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))
967
997
  : setFieldValue(name, defaultValue);
968
- _state.mount && !_state.action && _setValid();
998
+ if (_state.mount && !_state.action) {
999
+ _setValid();
1000
+ // Re-registering a field after a prior unregister puts its key back
1001
+ // into _formValues, which can flip isDirty back to false (#13397).
1002
+ // Only run when we are currently dirty, otherwise an initial register
1003
+ // for a field with no defaultValue would flip isDirty to true. Reset
1004
+ // paths repopulate _formValues before re-register, so the key is
1005
+ // present then and this branch is skipped (preserves keepDirty).
1006
+ if (wasUnsetInFormValues &&
1007
+ _formState.isDirty &&
1008
+ (_proxyFormState.isDirty || _proxySubscribeFormState.isDirty)) {
1009
+ const isDirty = _getDirty();
1010
+ if (!isDirty) {
1011
+ _formState.isDirty = false;
1012
+ _subjects.state.next({ ..._formState });
1013
+ }
1014
+ }
1015
+ }
969
1016
  }
970
1017
  };
971
1018
  const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {
@@ -1227,7 +1274,7 @@ function createFormControl(props = {}) {
1227
1274
  updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);
1228
1275
  options.shouldValidate && trigger(name);
1229
1276
  };
1230
- const setValues = (name, value, options) => {
1277
+ const setFieldValues = (name, value, options) => {
1231
1278
  for (const fieldKey in value) {
1232
1279
  if (!value.hasOwnProperty(fieldKey)) {
1233
1280
  return;
@@ -1239,7 +1286,7 @@ function createFormControl(props = {}) {
1239
1286
  isObject(fieldValue) ||
1240
1287
  (field && !field._f)) &&
1241
1288
  !isDateObject(fieldValue)
1242
- ? setValues(fieldName, fieldValue, options)
1289
+ ? setFieldValues(fieldName, fieldValue, options)
1243
1290
  : setFieldValue(fieldName, fieldValue, options);
1244
1291
  }
1245
1292
  };
@@ -1255,8 +1302,12 @@ function createFormControl(props = {}) {
1255
1302
  name,
1256
1303
  values: cloneObject(_formValues),
1257
1304
  });
1258
- if (options.shouldDirty) {
1259
- _updateDirtyFields(name);
1305
+ if ((_proxyFormState.isDirty ||
1306
+ _proxyFormState.dirtyFields ||
1307
+ _proxySubscribeFormState.isDirty ||
1308
+ _proxySubscribeFormState.dirtyFields) &&
1309
+ options.shouldDirty) {
1310
+ _updateDirtyFields();
1260
1311
  _subjects.state.next({
1261
1312
  name,
1262
1313
  dirtyFields: _formState.dirtyFields,
@@ -1271,23 +1322,28 @@ function createFormControl(props = {}) {
1271
1322
  setFieldValue(name, cloneValue, options);
1272
1323
  }
1273
1324
  else {
1274
- setValues(name, cloneValue, options);
1325
+ setFieldValues(name, cloneValue, options);
1275
1326
  }
1276
1327
  }
1277
1328
  if (!isValueUnchanged) {
1278
- if (isWatched(name, _names)) {
1279
- _subjects.state.next({
1280
- ..._formState,
1281
- name,
1282
- values: cloneObject(_formValues),
1283
- });
1284
- }
1285
- else {
1286
- _subjects.state.next({
1287
- name: _state.mount ? name : undefined,
1288
- values: cloneObject(_formValues),
1289
- });
1290
- }
1329
+ const watched = isWatched(name, _names);
1330
+ _subjects.state.next({
1331
+ ...(watched && _formState),
1332
+ name: _state.mount || watched ? name : undefined,
1333
+ values: cloneObject(_formValues),
1334
+ });
1335
+ }
1336
+ };
1337
+ const setValues = (formValues) => {
1338
+ const updatedFormValues = isFunction(formValues)
1339
+ ? formValues(_formValues)
1340
+ : formValues;
1341
+ if (!deepEqual(_formValues, updatedFormValues)) {
1342
+ _formValues = {
1343
+ ..._formValues,
1344
+ ...updatedFormValues,
1345
+ };
1346
+ _subjects.state.next({ ..._formState, values: _formValues });
1291
1347
  }
1292
1348
  };
1293
1349
  const onChange = async (event) => {
@@ -1987,6 +2043,7 @@ function createFormControl(props = {}) {
1987
2043
  handleSubmit,
1988
2044
  watch,
1989
2045
  setValue,
2046
+ setValues,
1990
2047
  getValues,
1991
2048
  reset,
1992
2049
  resetField,