@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.
- package/dist/__tests__/controller.server.test.d.ts +2 -0
- package/dist/__tests__/controller.server.test.d.ts.map +1 -0
- package/dist/__tests__/controller.test.d.ts +2 -0
- package/dist/__tests__/controller.test.d.ts.map +1 -0
- package/dist/__tests__/disabled-arrays.test.d.ts +2 -0
- package/dist/__tests__/disabled-arrays.test.d.ts.map +1 -0
- package/dist/__tests__/form.test.d.ts +2 -0
- package/dist/__tests__/form.test.d.ts.map +1 -0
- package/dist/__tests__/formStateSubscribe.server.test.d.ts +2 -0
- package/dist/__tests__/formStateSubscribe.server.test.d.ts.map +1 -0
- package/dist/__tests__/formStateSubscribe.test.d.ts +2 -0
- package/dist/__tests__/formStateSubscribe.test.d.ts.map +1 -0
- package/dist/__tests__/isPlainObject.test.d.ts +2 -0
- package/dist/__tests__/isPlainObject.test.d.ts.map +1 -0
- package/dist/__tests__/logic/appendErrors.test.d.ts +2 -0
- package/dist/__tests__/logic/appendErrors.test.d.ts.map +1 -0
- package/dist/__tests__/logic/createFormControl.test.d.ts +2 -0
- package/dist/__tests__/logic/createFormControl.test.d.ts.map +1 -0
- package/dist/__tests__/logic/generateId.test.d.ts +2 -0
- package/dist/__tests__/logic/generateId.test.d.ts.map +1 -0
- package/dist/__tests__/logic/getCheckboxValue.test.d.ts +2 -0
- package/dist/__tests__/logic/getCheckboxValue.test.d.ts.map +1 -0
- package/dist/__tests__/logic/getDirtyFields.test.d.ts +2 -0
- package/dist/__tests__/logic/getDirtyFields.test.d.ts.map +1 -0
- package/dist/__tests__/logic/getEventValue.test.d.ts +2 -0
- package/dist/__tests__/logic/getEventValue.test.d.ts.map +1 -0
- package/dist/__tests__/logic/getFieldValue.test.d.ts +2 -0
- package/dist/__tests__/logic/getFieldValue.test.d.ts.map +1 -0
- package/dist/__tests__/logic/getFieldValueAs.test.d.ts +2 -0
- package/dist/__tests__/logic/getFieldValueAs.test.d.ts.map +1 -0
- package/dist/__tests__/logic/getFocusFieldName.test.d.ts +2 -0
- package/dist/__tests__/logic/getFocusFieldName.test.d.ts.map +1 -0
- package/dist/__tests__/logic/getNodeParentName.test.d.ts +2 -0
- package/dist/__tests__/logic/getNodeParentName.test.d.ts.map +1 -0
- package/dist/__tests__/logic/getRadioValue.test.d.ts +2 -0
- package/dist/__tests__/logic/getRadioValue.test.d.ts.map +1 -0
- package/dist/__tests__/logic/getResolverOptions.test.d.ts +2 -0
- package/dist/__tests__/logic/getResolverOptions.test.d.ts.map +1 -0
- package/dist/__tests__/logic/getRuleValue.test.d.ts +2 -0
- package/dist/__tests__/logic/getRuleValue.test.d.ts.map +1 -0
- package/dist/__tests__/logic/getValidateError.test.d.ts +2 -0
- package/dist/__tests__/logic/getValidateError.test.d.ts.map +1 -0
- package/dist/__tests__/logic/getValidationModes.test.d.ts +2 -0
- package/dist/__tests__/logic/getValidationModes.test.d.ts.map +1 -0
- package/dist/__tests__/logic/getValueAndMessage.test.d.ts +2 -0
- package/dist/__tests__/logic/getValueAndMessage.test.d.ts.map +1 -0
- package/dist/__tests__/logic/hasPromiseValidation.test.d.ts +2 -0
- package/dist/__tests__/logic/hasPromiseValidation.test.d.ts.map +1 -0
- package/dist/__tests__/logic/hasValidation.test.d.ts +2 -0
- package/dist/__tests__/logic/hasValidation.test.d.ts.map +1 -0
- package/dist/__tests__/logic/isNameInFieldArray.test.d.ts +2 -0
- package/dist/__tests__/logic/isNameInFieldArray.test.d.ts.map +1 -0
- package/dist/__tests__/logic/isWatched.test.d.ts +2 -0
- package/dist/__tests__/logic/isWatched.test.d.ts.map +1 -0
- package/dist/__tests__/logic/iterateFieldsByAction.test.d.ts +2 -0
- package/dist/__tests__/logic/iterateFieldsByAction.test.d.ts.map +1 -0
- package/dist/__tests__/logic/schemaErrorLookup.test.d.ts +2 -0
- package/dist/__tests__/logic/schemaErrorLookup.test.d.ts.map +1 -0
- package/dist/__tests__/logic/shouldRenderFormState.test.d.ts +2 -0
- package/dist/__tests__/logic/shouldRenderFormState.test.d.ts.map +1 -0
- package/dist/__tests__/logic/shouldSubscribeByName.test.d.ts +2 -0
- package/dist/__tests__/logic/shouldSubscribeByName.test.d.ts.map +1 -0
- package/dist/__tests__/logic/skipValidation.test.d.ts +2 -0
- package/dist/__tests__/logic/skipValidation.test.d.ts.map +1 -0
- package/dist/__tests__/logic/unsetEmptyArray.test.d.ts +2 -0
- package/dist/__tests__/logic/unsetEmptyArray.test.d.ts.map +1 -0
- package/dist/__tests__/logic/validateField.test.d.ts +2 -0
- package/dist/__tests__/logic/validateField.test.d.ts.map +1 -0
- package/dist/__tests__/readonly-validation.test.d.ts +2 -0
- package/dist/__tests__/readonly-validation.test.d.ts.map +1 -0
- package/dist/__tests__/type.test.d.ts +2 -0
- package/dist/__tests__/type.test.d.ts.map +1 -0
- package/dist/__tests__/useController.test.d.ts +2 -0
- package/dist/__tests__/useController.test.d.ts.map +1 -0
- package/dist/__tests__/useFieldArray/append.test.d.ts +2 -0
- package/dist/__tests__/useFieldArray/append.test.d.ts.map +1 -0
- package/dist/__tests__/useFieldArray/focus.test.d.ts +2 -0
- package/dist/__tests__/useFieldArray/focus.test.d.ts.map +1 -0
- package/dist/__tests__/useFieldArray/insert.test.d.ts +2 -0
- package/dist/__tests__/useFieldArray/insert.test.d.ts.map +1 -0
- package/dist/__tests__/useFieldArray/move.test.d.ts +2 -0
- package/dist/__tests__/useFieldArray/move.test.d.ts.map +1 -0
- package/dist/__tests__/useFieldArray/prepend.test.d.ts +2 -0
- package/dist/__tests__/useFieldArray/prepend.test.d.ts.map +1 -0
- package/dist/__tests__/useFieldArray/remove.test.d.ts +2 -0
- package/dist/__tests__/useFieldArray/remove.test.d.ts.map +1 -0
- package/dist/__tests__/useFieldArray/replace.test.d.ts +2 -0
- package/dist/__tests__/useFieldArray/replace.test.d.ts.map +1 -0
- package/dist/__tests__/useFieldArray/swap.test.d.ts +2 -0
- package/dist/__tests__/useFieldArray/swap.test.d.ts.map +1 -0
- package/dist/__tests__/useFieldArray/update.test.d.ts +2 -0
- package/dist/__tests__/useFieldArray/update.test.d.ts.map +1 -0
- package/dist/__tests__/useFieldArray.test.d.ts +2 -0
- package/dist/__tests__/useFieldArray.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/clearErrors.test.d.ts +2 -0
- package/dist/__tests__/useForm/clearErrors.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/formState.test.d.ts +2 -0
- package/dist/__tests__/useForm/formState.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/getFieldState.test.d.ts +2 -0
- package/dist/__tests__/useForm/getFieldState.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/getValues.test.d.ts +2 -0
- package/dist/__tests__/useForm/getValues.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/handleSubmit.test.d.ts +2 -0
- package/dist/__tests__/useForm/handleSubmit.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/hasBeenSubmitted.test.d.ts +2 -0
- package/dist/__tests__/useForm/hasBeenSubmitted.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/isDirtySinceSubmit.test.d.ts +2 -0
- package/dist/__tests__/useForm/isDirtySinceSubmit.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/register.test.d.ts +2 -0
- package/dist/__tests__/useForm/register.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/reset.test.d.ts +2 -0
- package/dist/__tests__/useForm/reset.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/resetField.test.d.ts +2 -0
- package/dist/__tests__/useForm/resetField.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/resolver.test.d.ts +2 -0
- package/dist/__tests__/useForm/resolver.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/setError.test.d.ts +2 -0
- package/dist/__tests__/useForm/setError.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/setFocus.test.d.ts +2 -0
- package/dist/__tests__/useForm/setFocus.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/setValue.test.d.ts +2 -0
- package/dist/__tests__/useForm/setValue.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/setValueEmptyArray.test.d.ts +2 -0
- package/dist/__tests__/useForm/setValueEmptyArray.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/subscribe.test.d.ts +2 -0
- package/dist/__tests__/useForm/subscribe.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/trigger.test.d.ts +2 -0
- package/dist/__tests__/useForm/trigger.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/unregister.test.d.ts +2 -0
- package/dist/__tests__/useForm/unregister.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/useFormWithNullValues.test.d.ts +2 -0
- package/dist/__tests__/useForm/useFormWithNullValues.test.d.ts.map +1 -0
- package/dist/__tests__/useForm/watch.test.d.ts +2 -0
- package/dist/__tests__/useForm/watch.test.d.ts.map +1 -0
- package/dist/__tests__/useForm.server.test.d.ts +2 -0
- package/dist/__tests__/useForm.server.test.d.ts.map +1 -0
- package/dist/__tests__/useForm.test.d.ts +2 -0
- package/dist/__tests__/useForm.test.d.ts.map +1 -0
- package/dist/__tests__/useFormContext.server.test.d.ts +2 -0
- package/dist/__tests__/useFormContext.server.test.d.ts.map +1 -0
- package/dist/__tests__/useFormContext.test.d.ts +2 -0
- package/dist/__tests__/useFormContext.test.d.ts.map +1 -0
- package/dist/__tests__/useFormState.test.d.ts +2 -0
- package/dist/__tests__/useFormState.test.d.ts.map +1 -0
- package/dist/__tests__/useWatch.test.d.ts +2 -0
- package/dist/__tests__/useWatch.test.d.ts.map +1 -0
- package/dist/__tests__/utils/append.test.d.ts +2 -0
- package/dist/__tests__/utils/append.test.d.ts.map +1 -0
- package/dist/__tests__/utils/cloneObject.test.d.ts +2 -0
- package/dist/__tests__/utils/cloneObject.test.d.ts.map +1 -0
- package/dist/__tests__/utils/compact.test.d.ts +2 -0
- package/dist/__tests__/utils/compact.test.d.ts.map +1 -0
- package/dist/__tests__/utils/convertToArrayPayload.test.d.ts +2 -0
- package/dist/__tests__/utils/convertToArrayPayload.test.d.ts.map +1 -0
- package/dist/__tests__/utils/createSubject.test.d.ts +2 -0
- package/dist/__tests__/utils/createSubject.test.d.ts.map +1 -0
- package/dist/__tests__/utils/deepEqual.test.d.ts +2 -0
- package/dist/__tests__/utils/deepEqual.test.d.ts.map +1 -0
- package/dist/__tests__/utils/deepMerge.test.d.ts +2 -0
- package/dist/__tests__/utils/deepMerge.test.d.ts.map +1 -0
- package/dist/__tests__/utils/extractFormValues.test.d.ts +2 -0
- package/dist/__tests__/utils/extractFormValues.test.d.ts.map +1 -0
- package/dist/__tests__/utils/fillEmptyArray.test.d.ts +2 -0
- package/dist/__tests__/utils/fillEmptyArray.test.d.ts.map +1 -0
- package/dist/__tests__/utils/flatten.test.d.ts +2 -0
- package/dist/__tests__/utils/flatten.test.d.ts.map +1 -0
- package/dist/__tests__/utils/get.test.d.ts +2 -0
- package/dist/__tests__/utils/get.test.d.ts.map +1 -0
- package/dist/__tests__/utils/insert.test.d.ts +2 -0
- package/dist/__tests__/utils/insert.test.d.ts.map +1 -0
- package/dist/__tests__/utils/isBoolean.test.d.ts +2 -0
- package/dist/__tests__/utils/isBoolean.test.d.ts.map +1 -0
- package/dist/__tests__/utils/isCheckBoxInput.test.d.ts +2 -0
- package/dist/__tests__/utils/isCheckBoxInput.test.d.ts.map +1 -0
- package/dist/__tests__/utils/isEmptyObject.test.d.ts +2 -0
- package/dist/__tests__/utils/isEmptyObject.test.d.ts.map +1 -0
- package/dist/__tests__/utils/isFileInput.test.d.ts +2 -0
- package/dist/__tests__/utils/isFileInput.test.d.ts.map +1 -0
- package/dist/__tests__/utils/isFunction.test.d.ts +2 -0
- package/dist/__tests__/utils/isFunction.test.d.ts.map +1 -0
- package/dist/__tests__/utils/isHTMLElement.test.d.ts +2 -0
- package/dist/__tests__/utils/isHTMLElement.test.d.ts.map +1 -0
- package/dist/__tests__/utils/isKey.test.d.ts +2 -0
- package/dist/__tests__/utils/isKey.test.d.ts.map +1 -0
- package/dist/__tests__/utils/isMultipleSelect.test.d.ts +2 -0
- package/dist/__tests__/utils/isMultipleSelect.test.d.ts.map +1 -0
- package/dist/__tests__/utils/isNullOrUndefined.test.d.ts +2 -0
- package/dist/__tests__/utils/isNullOrUndefined.test.d.ts.map +1 -0
- package/dist/__tests__/utils/isObject.test.d.ts +2 -0
- package/dist/__tests__/utils/isObject.test.d.ts.map +1 -0
- package/dist/__tests__/utils/isPrimitive.test.d.ts +2 -0
- package/dist/__tests__/utils/isPrimitive.test.d.ts.map +1 -0
- package/dist/__tests__/utils/isRadioInput.test.d.ts +2 -0
- package/dist/__tests__/utils/isRadioInput.test.d.ts.map +1 -0
- package/dist/__tests__/utils/isRadioOrCheckbox.test.d.ts +2 -0
- package/dist/__tests__/utils/isRadioOrCheckbox.test.d.ts.map +1 -0
- package/dist/__tests__/utils/isRegex.test.d.ts +2 -0
- package/dist/__tests__/utils/isRegex.test.d.ts.map +1 -0
- package/dist/__tests__/utils/isString.test.d.ts +2 -0
- package/dist/__tests__/utils/isString.test.d.ts.map +1 -0
- package/dist/__tests__/utils/isUndefined.test.d.ts +2 -0
- package/dist/__tests__/utils/isUndefined.test.d.ts.map +1 -0
- package/dist/__tests__/utils/live.test.d.ts +2 -0
- package/dist/__tests__/utils/live.test.d.ts.map +1 -0
- package/dist/__tests__/utils/mergeMissingKeysAsUndefined.test.d.ts +2 -0
- package/dist/__tests__/utils/mergeMissingKeysAsUndefined.test.d.ts.map +1 -0
- package/dist/__tests__/utils/move.test.d.ts +2 -0
- package/dist/__tests__/utils/move.test.d.ts.map +1 -0
- package/dist/__tests__/utils/noop.test.d.ts +2 -0
- package/dist/__tests__/utils/noop.test.d.ts.map +1 -0
- package/dist/__tests__/utils/objectHasFunction.test.d.ts +2 -0
- package/dist/__tests__/utils/objectHasFunction.test.d.ts.map +1 -0
- package/dist/__tests__/utils/prepend.test.d.ts +2 -0
- package/dist/__tests__/utils/prepend.test.d.ts.map +1 -0
- package/dist/__tests__/utils/remove.test.d.ts +2 -0
- package/dist/__tests__/utils/remove.test.d.ts.map +1 -0
- package/dist/__tests__/utils/set.test.d.ts +2 -0
- package/dist/__tests__/utils/set.test.d.ts.map +1 -0
- package/dist/__tests__/utils/stringToPath.test.d.ts +2 -0
- package/dist/__tests__/utils/stringToPath.test.d.ts.map +1 -0
- package/dist/__tests__/utils/swap.test.d.ts +2 -0
- package/dist/__tests__/utils/swap.test.d.ts.map +1 -0
- package/dist/__tests__/utils/unset.test.d.ts +2 -0
- package/dist/__tests__/utils/unset.test.d.ts.map +1 -0
- package/dist/__tests__/utils/validationModeChecker.test.d.ts +2 -0
- package/dist/__tests__/utils/validationModeChecker.test.d.ts.map +1 -0
- package/dist/__tests__/watch.server.test.d.ts +2 -0
- package/dist/__tests__/watch.server.test.d.ts.map +1 -0
- package/dist/__tests__/watch.test.d.ts +2 -0
- package/dist/__tests__/watch.test.d.ts.map +1 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.mjs +85 -49
- package/dist/index.esm.mjs.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/dist/logic/createFormControl.d.ts.map +1 -1
- package/dist/react-server.esm.mjs +70 -39
- package/dist/react-server.esm.mjs.map +1 -1
- package/dist/types/fieldArray.d.ts.map +1 -1
- package/dist/types/form.d.ts +1 -8
- package/dist/types/form.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/utils.d.ts +3 -2
- package/dist/types/utils.d.ts.map +1 -1
- package/dist/types/watch.d.ts +32 -0
- package/dist/types/watch.d.ts.map +1 -0
- package/dist/useController.d.ts.map +1 -1
- package/dist/useFieldArray.d.ts.map +1 -1
- package/dist/useWatch.d.ts.map +1 -1
- package/dist/utils/cloneObject.d.ts.map +1 -1
- package/dist/watch.d.ts +7 -17
- package/dist/watch.d.ts.map +1 -1
- 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,
|
|
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
|
-
|
|
56
|
+
return new Date(data);
|
|
60
57
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
|
|
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()
|
|
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
|
|
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
|
-
|
|
934
|
-
|
|
935
|
-
|
|
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)
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
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:
|
|
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
|
-
|
|
1892
|
-
|
|
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
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
fieldRef.
|
|
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,
|