@bombillazo/rhf-plus 7.68.0-plus.0 → 7.70.0-plus.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 (255) hide show
  1. package/dist/__tests__/controller.server.test.d.ts +2 -0
  2. package/dist/__tests__/controller.server.test.d.ts.map +1 -0
  3. package/dist/__tests__/controller.test.d.ts +2 -0
  4. package/dist/__tests__/controller.test.d.ts.map +1 -0
  5. package/dist/__tests__/disabled-arrays.test.d.ts +2 -0
  6. package/dist/__tests__/disabled-arrays.test.d.ts.map +1 -0
  7. package/dist/__tests__/form.test.d.ts +2 -0
  8. package/dist/__tests__/form.test.d.ts.map +1 -0
  9. package/dist/__tests__/formStateSubscribe.server.test.d.ts +2 -0
  10. package/dist/__tests__/formStateSubscribe.server.test.d.ts.map +1 -0
  11. package/dist/__tests__/formStateSubscribe.test.d.ts +2 -0
  12. package/dist/__tests__/formStateSubscribe.test.d.ts.map +1 -0
  13. package/dist/__tests__/isPlainObject.test.d.ts +2 -0
  14. package/dist/__tests__/isPlainObject.test.d.ts.map +1 -0
  15. package/dist/__tests__/logic/appendErrors.test.d.ts +2 -0
  16. package/dist/__tests__/logic/appendErrors.test.d.ts.map +1 -0
  17. package/dist/__tests__/logic/createFormControl.test.d.ts +2 -0
  18. package/dist/__tests__/logic/createFormControl.test.d.ts.map +1 -0
  19. package/dist/__tests__/logic/generateId.test.d.ts +2 -0
  20. package/dist/__tests__/logic/generateId.test.d.ts.map +1 -0
  21. package/dist/__tests__/logic/getCheckboxValue.test.d.ts +2 -0
  22. package/dist/__tests__/logic/getCheckboxValue.test.d.ts.map +1 -0
  23. package/dist/__tests__/logic/getDirtyFields.test.d.ts +2 -0
  24. package/dist/__tests__/logic/getDirtyFields.test.d.ts.map +1 -0
  25. package/dist/__tests__/logic/getEventValue.test.d.ts +2 -0
  26. package/dist/__tests__/logic/getEventValue.test.d.ts.map +1 -0
  27. package/dist/__tests__/logic/getFieldValue.test.d.ts +2 -0
  28. package/dist/__tests__/logic/getFieldValue.test.d.ts.map +1 -0
  29. package/dist/__tests__/logic/getFieldValueAs.test.d.ts +2 -0
  30. package/dist/__tests__/logic/getFieldValueAs.test.d.ts.map +1 -0
  31. package/dist/__tests__/logic/getFocusFieldName.test.d.ts +2 -0
  32. package/dist/__tests__/logic/getFocusFieldName.test.d.ts.map +1 -0
  33. package/dist/__tests__/logic/getNodeParentName.test.d.ts +2 -0
  34. package/dist/__tests__/logic/getNodeParentName.test.d.ts.map +1 -0
  35. package/dist/__tests__/logic/getRadioValue.test.d.ts +2 -0
  36. package/dist/__tests__/logic/getRadioValue.test.d.ts.map +1 -0
  37. package/dist/__tests__/logic/getResolverOptions.test.d.ts +2 -0
  38. package/dist/__tests__/logic/getResolverOptions.test.d.ts.map +1 -0
  39. package/dist/__tests__/logic/getRuleValue.test.d.ts +2 -0
  40. package/dist/__tests__/logic/getRuleValue.test.d.ts.map +1 -0
  41. package/dist/__tests__/logic/getValidateError.test.d.ts +2 -0
  42. package/dist/__tests__/logic/getValidateError.test.d.ts.map +1 -0
  43. package/dist/__tests__/logic/getValidationModes.test.d.ts +2 -0
  44. package/dist/__tests__/logic/getValidationModes.test.d.ts.map +1 -0
  45. package/dist/__tests__/logic/getValueAndMessage.test.d.ts +2 -0
  46. package/dist/__tests__/logic/getValueAndMessage.test.d.ts.map +1 -0
  47. package/dist/__tests__/logic/hasPromiseValidation.test.d.ts +2 -0
  48. package/dist/__tests__/logic/hasPromiseValidation.test.d.ts.map +1 -0
  49. package/dist/__tests__/logic/hasValidation.test.d.ts +2 -0
  50. package/dist/__tests__/logic/hasValidation.test.d.ts.map +1 -0
  51. package/dist/__tests__/logic/isNameInFieldArray.test.d.ts +2 -0
  52. package/dist/__tests__/logic/isNameInFieldArray.test.d.ts.map +1 -0
  53. package/dist/__tests__/logic/isWatched.test.d.ts +2 -0
  54. package/dist/__tests__/logic/isWatched.test.d.ts.map +1 -0
  55. package/dist/__tests__/logic/iterateFieldsByAction.test.d.ts +2 -0
  56. package/dist/__tests__/logic/iterateFieldsByAction.test.d.ts.map +1 -0
  57. package/dist/__tests__/logic/schemaErrorLookup.test.d.ts +2 -0
  58. package/dist/__tests__/logic/schemaErrorLookup.test.d.ts.map +1 -0
  59. package/dist/__tests__/logic/shouldRenderFormState.test.d.ts +2 -0
  60. package/dist/__tests__/logic/shouldRenderFormState.test.d.ts.map +1 -0
  61. package/dist/__tests__/logic/shouldSubscribeByName.test.d.ts +2 -0
  62. package/dist/__tests__/logic/shouldSubscribeByName.test.d.ts.map +1 -0
  63. package/dist/__tests__/logic/skipValidation.test.d.ts +2 -0
  64. package/dist/__tests__/logic/skipValidation.test.d.ts.map +1 -0
  65. package/dist/__tests__/logic/unsetEmptyArray.test.d.ts +2 -0
  66. package/dist/__tests__/logic/unsetEmptyArray.test.d.ts.map +1 -0
  67. package/dist/__tests__/logic/validateField.test.d.ts +2 -0
  68. package/dist/__tests__/logic/validateField.test.d.ts.map +1 -0
  69. package/dist/__tests__/readonly-validation.test.d.ts +2 -0
  70. package/dist/__tests__/readonly-validation.test.d.ts.map +1 -0
  71. package/dist/__tests__/type.test.d.ts +2 -0
  72. package/dist/__tests__/type.test.d.ts.map +1 -0
  73. package/dist/__tests__/useController.test.d.ts +2 -0
  74. package/dist/__tests__/useController.test.d.ts.map +1 -0
  75. package/dist/__tests__/useFieldArray/append.test.d.ts +2 -0
  76. package/dist/__tests__/useFieldArray/append.test.d.ts.map +1 -0
  77. package/dist/__tests__/useFieldArray/focus.test.d.ts +2 -0
  78. package/dist/__tests__/useFieldArray/focus.test.d.ts.map +1 -0
  79. package/dist/__tests__/useFieldArray/insert.test.d.ts +2 -0
  80. package/dist/__tests__/useFieldArray/insert.test.d.ts.map +1 -0
  81. package/dist/__tests__/useFieldArray/move.test.d.ts +2 -0
  82. package/dist/__tests__/useFieldArray/move.test.d.ts.map +1 -0
  83. package/dist/__tests__/useFieldArray/prepend.test.d.ts +2 -0
  84. package/dist/__tests__/useFieldArray/prepend.test.d.ts.map +1 -0
  85. package/dist/__tests__/useFieldArray/remove.test.d.ts +2 -0
  86. package/dist/__tests__/useFieldArray/remove.test.d.ts.map +1 -0
  87. package/dist/__tests__/useFieldArray/replace.test.d.ts +2 -0
  88. package/dist/__tests__/useFieldArray/replace.test.d.ts.map +1 -0
  89. package/dist/__tests__/useFieldArray/swap.test.d.ts +2 -0
  90. package/dist/__tests__/useFieldArray/swap.test.d.ts.map +1 -0
  91. package/dist/__tests__/useFieldArray/update.test.d.ts +2 -0
  92. package/dist/__tests__/useFieldArray/update.test.d.ts.map +1 -0
  93. package/dist/__tests__/useFieldArray.test.d.ts +2 -0
  94. package/dist/__tests__/useFieldArray.test.d.ts.map +1 -0
  95. package/dist/__tests__/useForm/clearErrors.test.d.ts +2 -0
  96. package/dist/__tests__/useForm/clearErrors.test.d.ts.map +1 -0
  97. package/dist/__tests__/useForm/formState.test.d.ts +2 -0
  98. package/dist/__tests__/useForm/formState.test.d.ts.map +1 -0
  99. package/dist/__tests__/useForm/getFieldState.test.d.ts +2 -0
  100. package/dist/__tests__/useForm/getFieldState.test.d.ts.map +1 -0
  101. package/dist/__tests__/useForm/getValues.test.d.ts +2 -0
  102. package/dist/__tests__/useForm/getValues.test.d.ts.map +1 -0
  103. package/dist/__tests__/useForm/handleSubmit.test.d.ts +2 -0
  104. package/dist/__tests__/useForm/handleSubmit.test.d.ts.map +1 -0
  105. package/dist/__tests__/useForm/hasBeenSubmitted.test.d.ts +2 -0
  106. package/dist/__tests__/useForm/hasBeenSubmitted.test.d.ts.map +1 -0
  107. package/dist/__tests__/useForm/isDirtySinceSubmit.test.d.ts +2 -0
  108. package/dist/__tests__/useForm/isDirtySinceSubmit.test.d.ts.map +1 -0
  109. package/dist/__tests__/useForm/register.test.d.ts +2 -0
  110. package/dist/__tests__/useForm/register.test.d.ts.map +1 -0
  111. package/dist/__tests__/useForm/reset.test.d.ts +2 -0
  112. package/dist/__tests__/useForm/reset.test.d.ts.map +1 -0
  113. package/dist/__tests__/useForm/resetField.test.d.ts +2 -0
  114. package/dist/__tests__/useForm/resetField.test.d.ts.map +1 -0
  115. package/dist/__tests__/useForm/resolver.test.d.ts +2 -0
  116. package/dist/__tests__/useForm/resolver.test.d.ts.map +1 -0
  117. package/dist/__tests__/useForm/setError.test.d.ts +2 -0
  118. package/dist/__tests__/useForm/setError.test.d.ts.map +1 -0
  119. package/dist/__tests__/useForm/setFocus.test.d.ts +2 -0
  120. package/dist/__tests__/useForm/setFocus.test.d.ts.map +1 -0
  121. package/dist/__tests__/useForm/setValue.test.d.ts +2 -0
  122. package/dist/__tests__/useForm/setValue.test.d.ts.map +1 -0
  123. package/dist/__tests__/useForm/setValueEmptyArray.test.d.ts +2 -0
  124. package/dist/__tests__/useForm/setValueEmptyArray.test.d.ts.map +1 -0
  125. package/dist/__tests__/useForm/subscribe.test.d.ts +2 -0
  126. package/dist/__tests__/useForm/subscribe.test.d.ts.map +1 -0
  127. package/dist/__tests__/useForm/trigger.test.d.ts +2 -0
  128. package/dist/__tests__/useForm/trigger.test.d.ts.map +1 -0
  129. package/dist/__tests__/useForm/unregister.test.d.ts +2 -0
  130. package/dist/__tests__/useForm/unregister.test.d.ts.map +1 -0
  131. package/dist/__tests__/useForm/useFormWithNullValues.test.d.ts +2 -0
  132. package/dist/__tests__/useForm/useFormWithNullValues.test.d.ts.map +1 -0
  133. package/dist/__tests__/useForm/watch.test.d.ts +2 -0
  134. package/dist/__tests__/useForm/watch.test.d.ts.map +1 -0
  135. package/dist/__tests__/useForm.server.test.d.ts +2 -0
  136. package/dist/__tests__/useForm.server.test.d.ts.map +1 -0
  137. package/dist/__tests__/useForm.test.d.ts +2 -0
  138. package/dist/__tests__/useForm.test.d.ts.map +1 -0
  139. package/dist/__tests__/useFormContext.server.test.d.ts +2 -0
  140. package/dist/__tests__/useFormContext.server.test.d.ts.map +1 -0
  141. package/dist/__tests__/useFormContext.test.d.ts +2 -0
  142. package/dist/__tests__/useFormContext.test.d.ts.map +1 -0
  143. package/dist/__tests__/useFormState.test.d.ts +2 -0
  144. package/dist/__tests__/useFormState.test.d.ts.map +1 -0
  145. package/dist/__tests__/useWatch.test.d.ts +2 -0
  146. package/dist/__tests__/useWatch.test.d.ts.map +1 -0
  147. package/dist/__tests__/utils/append.test.d.ts +2 -0
  148. package/dist/__tests__/utils/append.test.d.ts.map +1 -0
  149. package/dist/__tests__/utils/cloneObject.test.d.ts +2 -0
  150. package/dist/__tests__/utils/cloneObject.test.d.ts.map +1 -0
  151. package/dist/__tests__/utils/compact.test.d.ts +2 -0
  152. package/dist/__tests__/utils/compact.test.d.ts.map +1 -0
  153. package/dist/__tests__/utils/convertToArrayPayload.test.d.ts +2 -0
  154. package/dist/__tests__/utils/convertToArrayPayload.test.d.ts.map +1 -0
  155. package/dist/__tests__/utils/createSubject.test.d.ts +2 -0
  156. package/dist/__tests__/utils/createSubject.test.d.ts.map +1 -0
  157. package/dist/__tests__/utils/deepEqual.test.d.ts +2 -0
  158. package/dist/__tests__/utils/deepEqual.test.d.ts.map +1 -0
  159. package/dist/__tests__/utils/deepMerge.test.d.ts +2 -0
  160. package/dist/__tests__/utils/deepMerge.test.d.ts.map +1 -0
  161. package/dist/__tests__/utils/extractFormValues.test.d.ts +2 -0
  162. package/dist/__tests__/utils/extractFormValues.test.d.ts.map +1 -0
  163. package/dist/__tests__/utils/fillEmptyArray.test.d.ts +2 -0
  164. package/dist/__tests__/utils/fillEmptyArray.test.d.ts.map +1 -0
  165. package/dist/__tests__/utils/flatten.test.d.ts +2 -0
  166. package/dist/__tests__/utils/flatten.test.d.ts.map +1 -0
  167. package/dist/__tests__/utils/get.test.d.ts +2 -0
  168. package/dist/__tests__/utils/get.test.d.ts.map +1 -0
  169. package/dist/__tests__/utils/insert.test.d.ts +2 -0
  170. package/dist/__tests__/utils/insert.test.d.ts.map +1 -0
  171. package/dist/__tests__/utils/isBoolean.test.d.ts +2 -0
  172. package/dist/__tests__/utils/isBoolean.test.d.ts.map +1 -0
  173. package/dist/__tests__/utils/isCheckBoxInput.test.d.ts +2 -0
  174. package/dist/__tests__/utils/isCheckBoxInput.test.d.ts.map +1 -0
  175. package/dist/__tests__/utils/isEmptyObject.test.d.ts +2 -0
  176. package/dist/__tests__/utils/isEmptyObject.test.d.ts.map +1 -0
  177. package/dist/__tests__/utils/isFileInput.test.d.ts +2 -0
  178. package/dist/__tests__/utils/isFileInput.test.d.ts.map +1 -0
  179. package/dist/__tests__/utils/isFunction.test.d.ts +2 -0
  180. package/dist/__tests__/utils/isFunction.test.d.ts.map +1 -0
  181. package/dist/__tests__/utils/isHTMLElement.test.d.ts +2 -0
  182. package/dist/__tests__/utils/isHTMLElement.test.d.ts.map +1 -0
  183. package/dist/__tests__/utils/isKey.test.d.ts +2 -0
  184. package/dist/__tests__/utils/isKey.test.d.ts.map +1 -0
  185. package/dist/__tests__/utils/isMultipleSelect.test.d.ts +2 -0
  186. package/dist/__tests__/utils/isMultipleSelect.test.d.ts.map +1 -0
  187. package/dist/__tests__/utils/isNullOrUndefined.test.d.ts +2 -0
  188. package/dist/__tests__/utils/isNullOrUndefined.test.d.ts.map +1 -0
  189. package/dist/__tests__/utils/isObject.test.d.ts +2 -0
  190. package/dist/__tests__/utils/isObject.test.d.ts.map +1 -0
  191. package/dist/__tests__/utils/isPrimitive.test.d.ts +2 -0
  192. package/dist/__tests__/utils/isPrimitive.test.d.ts.map +1 -0
  193. package/dist/__tests__/utils/isRadioInput.test.d.ts +2 -0
  194. package/dist/__tests__/utils/isRadioInput.test.d.ts.map +1 -0
  195. package/dist/__tests__/utils/isRadioOrCheckbox.test.d.ts +2 -0
  196. package/dist/__tests__/utils/isRadioOrCheckbox.test.d.ts.map +1 -0
  197. package/dist/__tests__/utils/isRegex.test.d.ts +2 -0
  198. package/dist/__tests__/utils/isRegex.test.d.ts.map +1 -0
  199. package/dist/__tests__/utils/isString.test.d.ts +2 -0
  200. package/dist/__tests__/utils/isString.test.d.ts.map +1 -0
  201. package/dist/__tests__/utils/isUndefined.test.d.ts +2 -0
  202. package/dist/__tests__/utils/isUndefined.test.d.ts.map +1 -0
  203. package/dist/__tests__/utils/live.test.d.ts +2 -0
  204. package/dist/__tests__/utils/live.test.d.ts.map +1 -0
  205. package/dist/__tests__/utils/mergeMissingKeysAsUndefined.test.d.ts +2 -0
  206. package/dist/__tests__/utils/mergeMissingKeysAsUndefined.test.d.ts.map +1 -0
  207. package/dist/__tests__/utils/move.test.d.ts +2 -0
  208. package/dist/__tests__/utils/move.test.d.ts.map +1 -0
  209. package/dist/__tests__/utils/noop.test.d.ts +2 -0
  210. package/dist/__tests__/utils/noop.test.d.ts.map +1 -0
  211. package/dist/__tests__/utils/objectHasFunction.test.d.ts +2 -0
  212. package/dist/__tests__/utils/objectHasFunction.test.d.ts.map +1 -0
  213. package/dist/__tests__/utils/prepend.test.d.ts +2 -0
  214. package/dist/__tests__/utils/prepend.test.d.ts.map +1 -0
  215. package/dist/__tests__/utils/remove.test.d.ts +2 -0
  216. package/dist/__tests__/utils/remove.test.d.ts.map +1 -0
  217. package/dist/__tests__/utils/set.test.d.ts +2 -0
  218. package/dist/__tests__/utils/set.test.d.ts.map +1 -0
  219. package/dist/__tests__/utils/stringToPath.test.d.ts +2 -0
  220. package/dist/__tests__/utils/stringToPath.test.d.ts.map +1 -0
  221. package/dist/__tests__/utils/swap.test.d.ts +2 -0
  222. package/dist/__tests__/utils/swap.test.d.ts.map +1 -0
  223. package/dist/__tests__/utils/unset.test.d.ts +2 -0
  224. package/dist/__tests__/utils/unset.test.d.ts.map +1 -0
  225. package/dist/__tests__/utils/validationModeChecker.test.d.ts +2 -0
  226. package/dist/__tests__/utils/validationModeChecker.test.d.ts.map +1 -0
  227. package/dist/__tests__/watch.server.test.d.ts +2 -0
  228. package/dist/__tests__/watch.server.test.d.ts.map +1 -0
  229. package/dist/__tests__/watch.test.d.ts +2 -0
  230. package/dist/__tests__/watch.test.d.ts.map +1 -0
  231. package/dist/index.cjs.js +1 -1
  232. package/dist/index.cjs.js.map +1 -1
  233. package/dist/index.esm.mjs +85 -49
  234. package/dist/index.esm.mjs.map +1 -1
  235. package/dist/index.umd.js +1 -1
  236. package/dist/index.umd.js.map +1 -1
  237. package/dist/logic/createFormControl.d.ts.map +1 -1
  238. package/dist/react-server.esm.mjs +70 -39
  239. package/dist/react-server.esm.mjs.map +1 -1
  240. package/dist/types/fieldArray.d.ts.map +1 -1
  241. package/dist/types/form.d.ts +1 -8
  242. package/dist/types/form.d.ts.map +1 -1
  243. package/dist/types/index.d.ts +1 -0
  244. package/dist/types/index.d.ts.map +1 -1
  245. package/dist/types/utils.d.ts +3 -2
  246. package/dist/types/utils.d.ts.map +1 -1
  247. package/dist/types/watch.d.ts +32 -0
  248. package/dist/types/watch.d.ts.map +1 -0
  249. package/dist/useController.d.ts.map +1 -1
  250. package/dist/useFieldArray.d.ts.map +1 -1
  251. package/dist/useWatch.d.ts.map +1 -1
  252. package/dist/utils/cloneObject.d.ts.map +1 -1
  253. package/dist/watch.d.ts +7 -17
  254. package/dist/watch.d.ts.map +1 -1
  255. package/package.json +18 -18
@@ -1 +1 @@
1
- {"version":3,"file":"createFormControl.d.ts","sourceRoot":"","sources":["../../src/logic/createFormControl.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAaV,WAAW,EACX,YAAY,EAiBZ,YAAY,EAIZ,aAAa,EAUd,MAAM,UAAU,CAAC;AAyDlB,wBAAgB,iBAAiB,CAC/B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,QAAQ,GAAG,GAAG,EACd,kBAAkB,GAAG,YAAY,EACjC,SAAS,SAAS,YAAY,GAAG,GAAG,EAEpC,KAAK,GAAE,YAAY,CACjB,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,SAAS,CACL,GACL,IAAI,CACL,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,SAAS,CAAC,EACpE,WAAW,CACZ,GAAG;IACF,WAAW,EAAE,IAAI,CACf,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,SAAS,CAAC,EACpE,WAAW,CACZ,CAAC;CACH,CAqxDA"}
1
+ {"version":3,"file":"createFormControl.d.ts","sourceRoot":"","sources":["../../src/logic/createFormControl.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAaV,WAAW,EACX,YAAY,EAiBZ,YAAY,EAIZ,aAAa,EAUd,MAAM,UAAU,CAAC;AAyDlB,wBAAgB,iBAAiB,CAC/B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,QAAQ,GAAG,GAAG,EACd,kBAAkB,GAAG,YAAY,EACjC,SAAS,SAAS,YAAY,GAAG,GAAG,EAEpC,KAAK,GAAE,YAAY,CACjB,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,SAAS,CACL,GACL,IAAI,CACL,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,SAAS,CAAC,EACpE,WAAW,CACZ,GAAG;IACF,WAAW,EAAE,IAAI,CACf,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,SAAS,CAAC,EACpE,WAAW,CACZ,CAAC;CACH,CAozDA"}
@@ -52,29 +52,23 @@ var isWeb = typeof window !== 'undefined' &&
52
52
  typeof document !== 'undefined';
53
53
 
54
54
  function cloneObject(data) {
55
- let copy;
56
- const isArray = Array.isArray(data);
57
- const isFileListInstance = typeof FileList !== 'undefined' ? data instanceof FileList : false;
58
55
  if (data instanceof Date) {
59
- copy = new Date(data);
56
+ return new Date(data);
60
57
  }
61
- else if (!(isWeb && (data instanceof Blob || isFileListInstance)) &&
62
- (isArray || isObject(data))) {
63
- copy = isArray ? [] : Object.create(Object.getPrototypeOf(data));
64
- if (!isArray && !isPlainObject(data)) {
65
- copy = data;
66
- }
67
- else {
68
- for (const key in data) {
69
- if (data.hasOwnProperty(key)) {
70
- copy[key] = cloneObject(data[key]);
71
- }
72
- }
73
- }
58
+ const isFileListInstance = typeof FileList !== 'undefined' && data instanceof FileList;
59
+ if (isWeb && (data instanceof Blob || isFileListInstance)) {
60
+ return data;
74
61
  }
75
- else {
62
+ const isArray = Array.isArray(data);
63
+ if (!isArray && !(isObject(data) && isPlainObject(data))) {
76
64
  return data;
77
65
  }
66
+ const copy = isArray ? [] : Object.create(Object.getPrototypeOf(data));
67
+ for (const key in data) {
68
+ if (Object.prototype.hasOwnProperty.call(data, key)) {
69
+ copy[key] = cloneObject(data[key]);
70
+ }
71
+ }
78
72
  return copy;
79
73
  }
80
74
 
@@ -127,7 +121,7 @@ function deepEqual(object1, object2, _internal_visited = new WeakSet()) {
127
121
  return Object.is(object1, object2);
128
122
  }
129
123
  if (isDateObject(object1) && isDateObject(object2)) {
130
- return object1.getTime() === object2.getTime();
124
+ return Object.is(object1.getTime(), object2.getTime());
131
125
  }
132
126
  const keys1 = Object.keys(object1);
133
127
  const keys2 = Object.keys(object2);
@@ -887,6 +881,7 @@ function createFormControl(props = {}) {
887
881
  action: false,
888
882
  mount: false,
889
883
  watch: false,
884
+ keepIsValid: false,
890
885
  };
891
886
  let _names = {
892
887
  mount: new Set(),
@@ -898,7 +893,7 @@ function createFormControl(props = {}) {
898
893
  };
899
894
  let delayErrorCallback;
900
895
  let timer = 0;
901
- const _proxyFormState = {
896
+ const defaultProxyFormState = {
902
897
  isDirty: false,
903
898
  isDirtySinceSubmit: false,
904
899
  hasBeenSubmitted: false,
@@ -910,6 +905,9 @@ function createFormControl(props = {}) {
910
905
  isValid: false,
911
906
  errors: false,
912
907
  };
908
+ const _proxyFormState = {
909
+ ...defaultProxyFormState,
910
+ };
913
911
  let _proxySubscribeFormState = {
914
912
  ..._proxyFormState,
915
913
  };
@@ -926,13 +924,21 @@ function createFormControl(props = {}) {
926
924
  timer = setTimeout(callback, wait);
927
925
  };
928
926
  const _setValid = async (shouldUpdateValid) => {
927
+ if (_state.keepIsValid) {
928
+ return;
929
+ }
929
930
  if ((Array.isArray(_options.disabled) || !_options.disabled) &&
930
931
  (_proxyFormState.isValid ||
931
932
  _proxySubscribeFormState.isValid ||
932
933
  shouldUpdateValid)) {
933
- const isValid = _options.resolver
934
- ? isEmptyObject((await _runSchema()).errors)
935
- : await executeBuiltInValidation(_fields, true);
934
+ let isValid;
935
+ if (_options.resolver) {
936
+ isValid = isEmptyObject((await _runSchema()).errors);
937
+ _updateIsValidating();
938
+ }
939
+ else {
940
+ isValid = await executeBuiltInValidation(_fields, true);
941
+ }
936
942
  if (isValid !== _formState.isValid) {
937
943
  _subjects.state.next({
938
944
  isValid,
@@ -1128,11 +1134,11 @@ function createFormControl(props = {}) {
1128
1134
  const _runSchema = async (name) => {
1129
1135
  _updateIsValidating(name, true);
1130
1136
  const result = await _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));
1131
- _updateIsValidating(name);
1132
1137
  return result;
1133
1138
  };
1134
1139
  const executeSchemaAndUpdateState = async (names) => {
1135
1140
  const { errors } = await _runSchema(names);
1141
+ _updateIsValidating(names);
1136
1142
  if (names) {
1137
1143
  for (const name of names) {
1138
1144
  const error = get(errors, name);
@@ -1170,7 +1176,7 @@ function createFormControl(props = {}) {
1170
1176
  }
1171
1177
  if (fieldError[_f.name]) {
1172
1178
  context.valid = false;
1173
- if (shouldOnlyCheckValid) {
1179
+ if (shouldOnlyCheckValid || props.shouldUseNativeValidation) {
1174
1180
  break;
1175
1181
  }
1176
1182
  }
@@ -1325,11 +1331,19 @@ function createFormControl(props = {}) {
1325
1331
  ? setValues(name, cloneValue, options)
1326
1332
  : setFieldValue(name, cloneValue, options);
1327
1333
  }
1328
- isWatched(name, _names) && _subjects.state.next({ ..._formState, name });
1329
- _subjects.state.next({
1330
- name: _state.mount ? name : undefined,
1331
- values: cloneObject(_formValues),
1332
- });
1334
+ if (isWatched(name, _names)) {
1335
+ _subjects.state.next({
1336
+ ..._formState,
1337
+ name,
1338
+ values: cloneObject(_formValues),
1339
+ });
1340
+ }
1341
+ else {
1342
+ _subjects.state.next({
1343
+ name: _state.mount ? name : undefined,
1344
+ values: cloneObject(_formValues),
1345
+ });
1346
+ }
1333
1347
  // Trigger validation when shouldValidate is true
1334
1348
  // This ensures validation happens for all cases including:
1335
1349
  // - Field arrays
@@ -1458,6 +1472,7 @@ function createFormControl(props = {}) {
1458
1472
  !isBlurEvent && watched && _subjects.state.next({ ..._formState });
1459
1473
  if (_options.resolver) {
1460
1474
  const { errors } = await _runSchema([name]);
1475
+ _updateIsValidating([name]);
1461
1476
  _updateIsFieldValueUpdated(fieldValue);
1462
1477
  if (isFieldValueUpdated) {
1463
1478
  const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);
@@ -1609,7 +1624,10 @@ function createFormControl(props = {}) {
1609
1624
  };
1610
1625
  return _subscribe({
1611
1626
  ...props,
1612
- formState: _proxySubscribeFormState,
1627
+ formState: {
1628
+ ...defaultProxyFormState,
1629
+ ...props.formState,
1630
+ },
1613
1631
  });
1614
1632
  };
1615
1633
  const unregister = (name, options = {}) => {
@@ -1803,6 +1821,7 @@ function createFormControl(props = {}) {
1803
1821
  });
1804
1822
  if (_options.resolver) {
1805
1823
  const { errors, values } = await _runSchema();
1824
+ _updateIsValidating();
1806
1825
  _formState.errors = errors;
1807
1826
  fieldValues = cloneObject(values);
1808
1827
  }
@@ -1887,9 +1906,15 @@ function createFormControl(props = {}) {
1887
1906
  ...Object.keys(getDirtyFields(_defaultValues, _formValues)),
1888
1907
  ]);
1889
1908
  for (const fieldName of Array.from(fieldsToCheck)) {
1890
- get(_formState.dirtyFields, fieldName)
1891
- ? set(values, fieldName, get(_formValues, fieldName))
1892
- : setValue(fieldName, get(values, fieldName));
1909
+ const isDirty = get(_formState.dirtyFields, fieldName);
1910
+ const existingValue = get(_formValues, fieldName);
1911
+ const newValue = get(values, fieldName);
1912
+ if (isDirty && !isUndefined(existingValue)) {
1913
+ set(values, fieldName, existingValue);
1914
+ }
1915
+ else if (!isDirty && !isUndefined(newValue)) {
1916
+ setValue(fieldName, newValue);
1917
+ }
1893
1918
  }
1894
1919
  }
1895
1920
  else {
@@ -1947,6 +1972,7 @@ function createFormControl(props = {}) {
1947
1972
  !!keepStateOptions.keepDirtyValues ||
1948
1973
  (!_options.shouldUnregister && !isEmptyObject(values));
1949
1974
  _state.watch = !!_options.shouldUnregister;
1975
+ _state.keepIsValid = !!keepStateOptions.keepIsValid;
1950
1976
  _state.action = false;
1951
1977
  // Clear errors synchronously to prevent validation errors on subsequent submissions
1952
1978
  // This fixes the issue where form.reset() causes validation errors on subsequent
@@ -1994,7 +2020,7 @@ function createFormControl(props = {}) {
1994
2020
  };
1995
2021
  const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues)
1996
2022
  ? formValues(_formValues)
1997
- : formValues, keepStateOptions);
2023
+ : formValues, { ..._options.resetOptions, ...keepStateOptions });
1998
2024
  const setFocus = (name, options = {}) => {
1999
2025
  const field = get(_fields, name);
2000
2026
  const fieldReference = field && field._f;
@@ -2003,10 +2029,14 @@ function createFormControl(props = {}) {
2003
2029
  ? fieldReference.refs[0]
2004
2030
  : fieldReference.ref;
2005
2031
  if (fieldRef.focus) {
2006
- fieldRef.focus();
2007
- options.shouldSelect &&
2008
- isFunction(fieldRef.select) &&
2009
- fieldRef.select();
2032
+ // Use setTimeout to ensure focus happens after any pending state updates
2033
+ // This fixes the issue where setFocus doesn't work immediately after setError
2034
+ setTimeout(() => {
2035
+ fieldRef.focus();
2036
+ options.shouldSelect &&
2037
+ isFunction(fieldRef.select) &&
2038
+ fieldRef.select();
2039
+ });
2010
2040
  }
2011
2041
  }
2012
2042
  };
@@ -2097,6 +2127,7 @@ function createFormControl(props = {}) {
2097
2127
  setError,
2098
2128
  _subscribe,
2099
2129
  _runSchema,
2130
+ _updateIsValidating,
2100
2131
  _focusError,
2101
2132
  _getWatch,
2102
2133
  _getDirty,