@depup/react-hook-form 7.87.0-depup.0 → 7.88.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.
- package/README.md +2 -2
- package/changes.json +1 -1
- package/dist/controller.d.ts +7 -35
- package/dist/controller.d.ts.map +1 -1
- package/dist/errorMessage.d.ts +27 -0
- package/dist/errorMessage.d.ts.map +1 -0
- package/dist/form.d.ts +7 -15
- package/dist/form.d.ts.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.mjs +262 -295
- package/dist/index.esm.mjs.map +1 -1
- package/dist/index.react-server.d.ts +3 -0
- package/dist/index.react-server.d.ts.map +1 -0
- 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/logic/iterateFieldsByAction.d.ts +1 -1
- package/dist/logic/iterateFieldsByAction.d.ts.map +1 -1
- package/dist/logic/schemaErrorLookup.d.ts.map +1 -1
- package/dist/logic/validateField.d.ts.map +1 -1
- package/dist/react-server.esm.mjs +2464 -0
- package/dist/react-server.esm.mjs.map +1 -0
- package/dist/useController.d.ts +5 -17
- package/dist/useController.d.ts.map +1 -1
- package/dist/useFieldArray.d.ts +5 -30
- package/dist/useFieldArray.d.ts.map +1 -1
- package/dist/useForm.d.ts +7 -22
- package/dist/useForm.d.ts.map +1 -1
- package/dist/useFormContext.d.ts +10 -46
- package/dist/useFormContext.d.ts.map +1 -1
- package/dist/useFormState.d.ts +4 -23
- package/dist/useFormState.d.ts.map +1 -1
- package/dist/useWatch.d.ts +7 -140
- package/dist/useWatch.d.ts.map +1 -1
- package/dist/utils/cloneObject.d.ts.map +1 -1
- package/dist/utils/flatten.d.ts.map +1 -1
- package/dist/utils/formData.d.ts.map +1 -1
- package/dist/watch.d.ts +4 -16
- package/dist/watch.d.ts.map +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-server.esm.mjs","sources":["../src/logic/appendErrors.ts","../src/constants.ts","../src/utils/isWeb.ts","../src/utils/cloneObject.ts","../src/utils/compact.ts","../src/utils/convertToArrayPayload.ts","../src/utils/createSubject.ts","../src/utils/isDateObject.ts","../src/utils/isNullOrUndefined.ts","../src/utils/isObject.ts","../src/utils/isPlainObject.ts","../src/utils/isPrimitive.ts","../src/utils/deepEqual.ts","../src/utils/extractFormValues.ts","../src/utils/isKey.ts","../src/utils/isUndefined.ts","../src/utils/stringToPath.ts","../src/utils/get.ts","../src/utils/has.ts","../src/utils/isBoolean.ts","../src/utils/isCheckBoxInput.ts","../src/utils/isEmptyObject.ts","../src/utils/isFileInput.ts","../src/utils/isFunction.ts","../src/utils/isHTMLElement.ts","../src/utils/isMultipleSelect.ts","../src/utils/isRadioInput.ts","../src/utils/isRadioOrCheckbox.ts","../src/utils/isString.ts","../src/utils/live.ts","../src/utils/set.ts","../src/utils/unset.ts","../src/logic/collectDirtyFieldNames.ts","../src/logic/generateWatchOutput.ts","../src/utils/objectHasFunction.ts","../src/logic/getDirtyFields.ts","../src/logic/getEventValue.ts","../src/logic/getFieldArrayItemNames.ts","../src/logic/getCheckboxValue.ts","../src/logic/getFieldValueAs.ts","../src/logic/getRadioValue.ts","../src/logic/getFieldValue.ts","../src/logic/getResolverOptions.ts","../src/utils/isRegex.ts","../src/logic/getRuleValue.ts","../src/logic/getValidationModes.ts","../src/logic/hasPromiseValidation.ts","../src/logic/hasValidation.ts","../src/logic/isNameInFieldArray.ts","../src/logic/isWatched.ts","../src/logic/iterateFieldsByAction.ts","../src/logic/schemaErrorLookup.ts","../src/logic/shouldRenderFormState.ts","../src/logic/shouldSubscribeByName.ts","../src/logic/skipValidation.ts","../src/logic/unsetEmptyArray.ts","../src/logic/updateFieldArrayRootError.ts","../src/logic/getValidateError.ts","../src/logic/getValueAndMessage.ts","../src/logic/validateField.ts","../src/logic/createFormControl.ts"],"sourcesContent":["import type {\n InternalFieldErrors,\n InternalFieldName,\n ValidateResult,\n} from '../types';\n\nexport default (\n name: InternalFieldName,\n validateAllFieldCriteria: boolean,\n errors: InternalFieldErrors,\n type: string,\n message: ValidateResult,\n) =>\n validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name]!.types ? errors[name]!.types : {}),\n [type]: message || true,\n },\n }\n : {};\n","export const EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n SUBMIT: 'submit',\n TRIGGER: 'trigger',\n VALID: 'valid',\n} as const;\n\nexport const VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n} as const;\n\nexport const INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n} as const;\n\nexport const ROOT_ERROR_TYPE = 'root';\n\nexport const PROTOTYPE_KEYWORDS = ['__proto__', 'constructor', 'prototype'];\n","export default typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n","import isWeb from './isWeb';\n\nexport default function cloneObject<T>(data: T): T {\n if (data === null || typeof data !== 'object') {\n return data;\n }\n\n if (data instanceof Date) {\n return new Date(data) as T;\n }\n\n const isBlobInstance = typeof Blob !== 'undefined' && data instanceof Blob;\n const isFileListInstance =\n typeof FileList !== 'undefined' && data instanceof FileList;\n\n if (isWeb && (isBlobInstance || isFileListInstance)) {\n return data;\n }\n\n const isArray = Array.isArray(data);\n\n if (!isArray && (data as object).constructor !== Object) {\n return data;\n }\n\n const copy = isArray ? [] : Object.create(Object.getPrototypeOf(data));\n\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n\n return copy;\n}\n","export default <TValue>(value: TValue[]) =>\n Array.isArray(value) ? value.filter(Boolean) : [];\n","export default <T>(value: T) => (Array.isArray(value) ? value : [value]);\n","import type { Noop } from '../types';\n\nexport type Observer<T> = {\n next: (value: T) => void;\n};\n\nexport type Subscription = {\n unsubscribe: Noop;\n};\n\nexport type Subject<T> = {\n readonly observers: Observer<T>[];\n subscribe: (value: Observer<T>) => Subscription;\n unsubscribe: Noop;\n} & Observer<T>;\n\nexport default <T>(): Subject<T> => {\n let _observers: Observer<T>[] = [];\n\n const next = (value: T) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n\n const subscribe = (observer: Observer<T>): Subscription => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n\n const unsubscribe = () => {\n _observers = [];\n };\n\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n};\n","export default (value: unknown): value is Date => value instanceof Date;\n","export default (value: unknown): value is null | undefined => value == null;\n","import isDateObject from './isDateObject';\nimport isNullOrUndefined from './isNullOrUndefined';\n\nexport const isObjectType = (value: unknown): value is object =>\n typeof value === 'object';\n\nexport default <T extends object>(value: unknown): value is T =>\n !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n","import isObject from './isObject';\n\nexport default (tempObject: object) => {\n const prototypeCopy =\n tempObject.constructor && tempObject.constructor.prototype;\n\n return (\n isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf')\n );\n};\n","import type { Primitive } from '../types';\n\nimport isNullOrUndefined from './isNullOrUndefined';\nimport { isObjectType } from './isObject';\n\nexport default (value: unknown): value is Primitive =>\n isNullOrUndefined(value) || !isObjectType(value);\n","import isDateObject from './isDateObject';\nimport isObject from './isObject';\nimport isPlainObject from './isPlainObject';\nimport isPrimitive from './isPrimitive';\n\nconst isEmptyObjectWithCustomPrototype = (object: object, keys: string[]) =>\n keys.length === 0 && !Array.isArray(object) && !isPlainObject(object);\n\nexport default function deepEqual(\n object1: unknown,\n object2: unknown,\n visited = new WeakMap<object, WeakSet<object>>(),\n) {\n if (object1 === object2) {\n return true;\n }\n\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return Object.is(object1, object2);\n }\n\n if (isDateObject(object1) && isDateObject(object2)) {\n return Object.is(object1.getTime(), object2.getTime());\n }\n\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n if (\n isEmptyObjectWithCustomPrototype(object1, keys1) ||\n isEmptyObjectWithCustomPrototype(object2, keys2)\n ) {\n return Object.is(object1, object2);\n }\n\n if (!keys1.length && Array.isArray(object1) !== Array.isArray(object2)) {\n return false;\n }\n\n const visitedPairs = visited.get(object1);\n\n if (visitedPairs && visitedPairs.has(object2)) {\n return true;\n }\n\n if (visitedPairs) {\n visitedPairs.add(object2);\n } else {\n const ws = new WeakSet();\n ws.add(object2);\n visited.set(object1, ws);\n }\n\n for (const key of keys1) {\n const val1 = (object1 as Record<string, unknown>)[key];\n\n if (!(key in (object2 as object))) {\n return false;\n }\n\n if (key !== 'ref') {\n const val2 = (object2 as Record<string, unknown>)[key];\n\n if (\n (isDateObject(val1) && isDateObject(val2)) ||\n ((isObject(val1) || Array.isArray(val1)) &&\n (isObject(val2) || Array.isArray(val2)))\n ? !deepEqual(val1, val2, visited)\n : !Object.is(val1, val2)\n ) {\n return false;\n }\n }\n }\n\n return true;\n}\n","import isObject from './isObject';\n\nexport default function extractFormValues<\n T extends object,\n K extends Record<string, unknown>,\n>(fieldsState: T, formValues: K) {\n const values: Record<string, unknown> = {};\n\n for (const key in fieldsState) {\n if (fieldsState.hasOwnProperty(key)) {\n const fieldState = fieldsState[key];\n const fieldValue = formValues[key];\n\n if (fieldState && isObject(fieldState) && fieldValue) {\n const nestedFieldsState = extractFormValues(\n fieldState,\n fieldValue as K,\n );\n\n if (isObject(nestedFieldsState)) {\n values[key] = nestedFieldsState;\n }\n } else if (fieldsState[key]) {\n values[key] = fieldValue;\n }\n }\n }\n\n return values;\n}\n","const IS_KEY_RE = /^\\w*$/;\n\nexport default (value: string) => IS_KEY_RE.test(value);\n","export default (val: unknown): val is undefined => val === undefined;\n","const FIELD_PATH_RE = /[.[\\]'\"]/;\n\nexport default (input: string): string[] =>\n input.split(FIELD_PATH_RE).filter(Boolean);\n","import { PROTOTYPE_KEYWORDS } from '../constants';\n\nimport isKey from './isKey';\nimport isNullOrUndefined from './isNullOrUndefined';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport stringToPath from './stringToPath';\n\nexport default <T>(\n object: T,\n path?: string | null,\n defaultValue?: unknown,\n): any => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n\n const paths = isKey(path) ? [path] : stringToPath(path);\n if (paths.some((key) => PROTOTYPE_KEYWORDS.includes(key))) {\n return defaultValue;\n }\n\n const result = paths.reduce<any>((result, key) => {\n return isNullOrUndefined(result) ? undefined : result[key];\n }, object);\n\n return isUndefined(result) || result === object\n ? isUndefined(object[path as keyof T])\n ? defaultValue\n : object[path as keyof T]\n : result;\n};\n","import isKey from './isKey';\nimport { isObjectType } from './isObject';\nimport stringToPath from './stringToPath';\n\nconst hasOwn = (value: unknown, key: string) =>\n value !== null &&\n isObjectType(value) &&\n Object.prototype.hasOwnProperty.call(value, key);\n\nexport default <T>(object: T, path?: string | null): boolean => {\n if (!path) {\n return false;\n }\n\n let result: unknown = object;\n\n for (const key of isKey(path) ? [path] : stringToPath(path)) {\n if (!hasOwn(result, key)) {\n // `get` also resolves a path held as a single literal key, eg `{ 'a.b': 1 }`\n return hasOwn(object, path);\n }\n\n result = (result as Record<string, unknown>)[key];\n }\n\n return true;\n};\n","export default (value: unknown): value is boolean => typeof value === 'boolean';\n","import type { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'checkbox';\n","import type { EmptyObject } from '../types';\n\nimport isObject from './isObject';\n\nexport default (value: unknown): value is EmptyObject =>\n isObject(value) && !Object.keys(value).length;\n","import type { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'file';\n","export default (value: unknown): value is Function =>\n typeof value === 'function';\n","import isWeb from './isWeb';\n\nexport default (value: unknown): value is HTMLElement => {\n if (!isWeb) {\n return false;\n }\n\n const owner = value ? ((value as HTMLElement).ownerDocument as Document) : 0;\n return (\n value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement)\n );\n};\n","import type { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `select-multiple`;\n","import type { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'radio';\n","import type { FieldElement } from '../types';\n\nimport isCheckBoxInput from './isCheckBoxInput';\nimport isRadioInput from './isRadioInput';\n\nexport default (ref: FieldElement): ref is HTMLInputElement =>\n isRadioInput(ref) || isCheckBoxInput(ref);\n","export default (value: unknown): value is string => typeof value === 'string';\n","import type { Ref } from '../types';\n\nimport isHTMLElement from './isHTMLElement';\n\nexport default (ref: Ref) => isHTMLElement(ref) && ref.isConnected;\n","import { PROTOTYPE_KEYWORDS } from '../constants';\nimport type { FieldPath, FieldValues } from '../types';\n\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport stringToPath from './stringToPath';\n\nexport default (\n object: FieldValues,\n path: FieldPath<FieldValues>,\n value?: unknown,\n) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n\n if (PROTOTYPE_KEYWORDS.includes(key)) {\n return;\n }\n\n object[key] = newValue;\n object = object[key];\n }\n};\n","import { PROTOTYPE_KEYWORDS } from '../constants';\n\nimport isEmptyObject from './isEmptyObject';\nimport isKey from './isKey';\nimport isNullOrUndefined from './isNullOrUndefined';\nimport isObject from './isObject';\nimport isString from './isString';\nimport isUndefined from './isUndefined';\nimport stringToPath from './stringToPath';\n\nfunction baseGet(object: any, updatePath: (string | number)[]) {\n const length = updatePath.length - 1;\n let index = 0;\n\n while (index < length) {\n if (isNullOrUndefined(object)) {\n object = undefined;\n break;\n }\n object = object[updatePath[index]];\n index++;\n }\n\n return object;\n}\n\nfunction isEmptyArray(obj: unknown[]) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\n\nexport default function unset(object: any, path: string | (string | number)[]) {\n if (isString(path) && Object.prototype.hasOwnProperty.call(object, path)) {\n delete object[path];\n return object;\n }\n\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n if (paths.some((segment) => PROTOTYPE_KEYWORDS.includes(String(segment)))) {\n return object;\n }\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n\n const index = paths.length - 1;\n const key = paths[index];\n\n if (childObject) {\n delete childObject[key];\n }\n\n if (\n index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))\n ) {\n unset(object, paths.slice(0, -1));\n }\n\n return object;\n}\n","import type { FieldValues } from '../types';\nimport get from '../utils/get';\nimport isObject from '../utils/isObject';\n\nfunction isDirtyContainer(value: unknown): boolean {\n return Array.isArray(value) || isObject(value);\n}\n\nexport default function collectDirtyFieldNames(\n dirtyTree: FieldValues,\n cachedDirtyFields: FieldValues,\n prefix = '',\n names: string[] = [],\n) {\n for (const key in dirtyTree) {\n const path = prefix ? `${prefix}.${key}` : key;\n const value = dirtyTree[key];\n\n if (\n isDirtyContainer(value) &&\n isDirtyContainer(get(cachedDirtyFields, path))\n ) {\n collectDirtyFieldNames(value, cachedDirtyFields, path, names);\n } else {\n names.push(path);\n }\n }\n\n return names;\n}\n","import type { DeepPartial, FieldValues, Names } from '../types';\nimport get from '../utils/get';\nimport isString from '../utils/isString';\n\nexport default <T>(\n names: string | string[] | undefined,\n _names: Names,\n formValues?: FieldValues,\n isGlobal?: boolean,\n defaultValue?: DeepPartial<T> | unknown,\n) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n\n if (Array.isArray(names)) {\n return names.map(\n (fieldName) => (\n isGlobal && _names.watch.add(fieldName),\n get(formValues, fieldName, get(defaultValue, fieldName))\n ),\n );\n }\n\n isGlobal && (_names.watchAll = true);\n\n return formValues;\n};\n","import isFunction from './isFunction';\n\nexport default <T>(data: T): boolean => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n","import type { FieldRefs } from '../types';\nimport deepEqual from '../utils/deepEqual';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isUndefined from '../utils/isUndefined';\nimport objectHasFunction from '../utils/objectHasFunction';\n\nfunction isTraversable<T>(value: T): boolean {\n return Array.isArray(value) || (isObject(value) && !objectHasFunction(value));\n}\n\nfunction isRegisteredLeaf(fieldRef: unknown): boolean {\n return !!(fieldRef && '_f' in (fieldRef as object));\n}\n\nfunction isEmptyDirtyContainer(value: Record<string, any>): boolean {\n return Array.isArray(value)\n ? !value.some((item) => !isUndefined(item))\n : !Object.keys(value).length;\n}\n\nfunction clearDirtyField(container: Record<string, any>, key: string) {\n if (Array.isArray(container)) {\n (container as any)[key] = undefined;\n } else {\n delete container[key];\n }\n}\n\nfunction markFieldsDirty<T>(\n data: T,\n fields: Record<string, any> = {},\n fieldRefs?: Record<string, any>,\n) {\n for (const key in data) {\n const value = data[key];\n const fieldRef = fieldRefs && fieldRefs[key];\n\n if (\n isTraversable(value) &&\n (!Array.isArray(value) || !isRegisteredLeaf(fieldRef))\n ) {\n fields[key] = Array.isArray(value) ? [] : {};\n markFieldsDirty(value, fields[key], fieldRef);\n\n if (isEmptyDirtyContainer(fields[key])) {\n clearDirtyField(fields, key);\n }\n } else if (!isUndefined(value)) {\n fields[key] = true;\n }\n }\n\n return fields;\n}\n\nexport default function getDirtyFields<T>(\n data: T,\n formValues: T,\n dirtyFieldsFromValues?: Record<\n Extract<keyof T, string>,\n ReturnType<typeof markFieldsDirty> | boolean\n >,\n fieldRefs?: FieldRefs,\n) {\n if (!dirtyFieldsFromValues) {\n dirtyFieldsFromValues = markFieldsDirty(formValues, {}, fieldRefs);\n }\n\n for (const key in data) {\n const value = data[key];\n const fieldRef = fieldRefs && (fieldRefs as Record<string, any>)[key];\n\n if (\n isTraversable(value) &&\n (!Array.isArray(value) || !isRegisteredLeaf(fieldRef))\n ) {\n if (isUndefined(formValues) || isPrimitive(dirtyFieldsFromValues[key])) {\n dirtyFieldsFromValues[key] = markFieldsDirty(\n value,\n Array.isArray(value) ? [] : {},\n fieldRef,\n );\n } else {\n getDirtyFields(\n value,\n isNullOrUndefined(formValues) ? {} : formValues[key],\n dirtyFieldsFromValues[key],\n fieldRef,\n );\n }\n\n if (isEmptyDirtyContainer(dirtyFieldsFromValues[key])) {\n clearDirtyField(dirtyFieldsFromValues, key);\n }\n } else if (deepEqual(value, formValues[key])) {\n clearDirtyField(dirtyFieldsFromValues, key);\n } else {\n dirtyFieldsFromValues[key] = true;\n }\n }\n\n return dirtyFieldsFromValues;\n}\n","import isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isFileInput from '../utils/isFileInput';\nimport isObject from '../utils/isObject';\n\ntype Event = { target: any };\n\nexport default (event: unknown) =>\n isObject(event) && (event as Event).target\n ? isCheckBoxInput((event as Event).target)\n ? (event as Event).target.checked\n : isFileInput((event as Event).target)\n ? (event as Event).target.files\n : (event as Event).target.value\n : event;\n","import type { InternalFieldName } from '../types';\n\nexport default (names: Set<InternalFieldName>, name: InternalFieldName) => {\n const segments = name.split('.');\n const matches: InternalFieldName[] = [];\n let prefix = segments[0];\n\n for (let i = 1; i < segments.length; prefix += '.' + segments[i++]) {\n if (!isNaN(+segments[i]) && names.has(prefix)) {\n matches.push(`${prefix}.${segments[i]}`);\n }\n }\n\n return matches;\n};\n","import isUndefined from '../utils/isUndefined';\n\ntype CheckboxFieldResult = {\n isValid: boolean;\n value: string | string[] | boolean | undefined;\n};\n\nconst defaultResult: CheckboxFieldResult = {\n value: false,\n isValid: false,\n};\n\nconst validResult = { value: true, isValid: true };\n\nexport default (options?: HTMLInputElement[]): CheckboxFieldResult => {\n if (!Array.isArray(options)) {\n return defaultResult;\n }\n\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n\n return { value: values, isValid: !!values.length };\n }\n\n const option = options[0];\n\n if (!option || !option.checked || option.disabled) {\n return defaultResult;\n }\n\n if (!option.attributes || !('value' in option.attributes)) {\n return validResult;\n }\n\n return isUndefined(option.value) || option.value === ''\n ? validResult\n : { value: option.value, isValid: true };\n};\n","import type { Field, NativeFieldValue } from '../types';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nexport default <T extends NativeFieldValue>(\n value: T,\n { valueAsNumber, valueAsDate, setValueAs }: Field['_f'],\n) =>\n isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n","type RadioFieldResult = {\n isValid: boolean;\n value: number | string | null;\n};\n\nconst defaultReturn: RadioFieldResult = {\n isValid: false,\n value: null,\n};\n\nexport default (options?: HTMLInputElement[]): RadioFieldResult =>\n Array.isArray(options)\n ? options.reduce(\n (previous, option): RadioFieldResult =>\n option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous,\n defaultReturn,\n )\n : defaultReturn;\n","import type { Field } from '../types';\nimport isCheckBox from '../utils/isCheckBoxInput';\nimport isFileInput from '../utils/isFileInput';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isRadioInput from '../utils/isRadioInput';\n\nimport getCheckboxValue from './getCheckboxValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getRadioValue from './getRadioValue';\n\nexport default function getFieldValue(_f: Field['_f']) {\n const ref = _f.ref;\n\n if (isFileInput(ref)) {\n return ref.files;\n }\n\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n\n if (isCheckBox(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n\n return getFieldValueAs(ref.value, _f);\n}\n","import type {\n CriteriaMode,\n Field,\n FieldName,\n FieldRefs,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport { get } from '../utils';\nimport set from '../utils/set';\n\nexport default <TFieldValues extends FieldValues>(\n fieldsNames: Set<InternalFieldName> | InternalFieldName[],\n _fields: FieldRefs,\n criteriaMode?: CriteriaMode,\n shouldUseNativeValidation?: boolean | undefined,\n) => {\n const fields: Record<InternalFieldName, Field['_f']> = {};\n\n for (const name of fieldsNames) {\n const field: Field = get(_fields, name);\n\n field && set(fields, name, field._f);\n }\n\n return {\n criteriaMode,\n names: [...fieldsNames] as FieldName<TFieldValues>[],\n fields,\n shouldUseNativeValidation,\n };\n};\n","export default (value: unknown): value is RegExp => value instanceof RegExp;\n","import type {\n ValidationRule,\n ValidationValue,\n ValidationValueMessage,\n} from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\nimport isUndefined from '../utils/isUndefined';\n\nexport default <T extends ValidationValue>(\n rule?: ValidationRule<T> | ValidationValueMessage<T>,\n) =>\n isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n","import { VALIDATION_MODE } from '../constants';\nimport type { Mode, ValidationModeFlags } from '../types';\n\nexport default (mode?: Mode): ValidationModeFlags => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n","import type { Field, Validate } from '../types';\nimport isFunction from '../utils/isFunction';\nimport isObject from '../utils/isObject';\n\nconst ASYNC_FUNCTION = 'AsyncFunction';\n\nexport default (fieldReference: Field['_f']) => {\n if (!fieldReference || !fieldReference.validate) return false;\n\n if (isFunction(fieldReference.validate)) {\n return fieldReference.validate.constructor.name === ASYNC_FUNCTION;\n }\n\n if (isObject(fieldReference.validate)) {\n for (const key in fieldReference.validate) {\n if (\n (fieldReference.validate[key] as Validate<unknown, unknown>).constructor\n .name === ASYNC_FUNCTION\n ) {\n return true;\n }\n }\n }\n\n return false;\n};\n","import type { Field } from '../types';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (options: Field['_f']) =>\n options.mount &&\n (options.required ||\n (!isUndefined(options.required) && options.required !== false) ||\n !isUndefined(options.min) ||\n !isUndefined(options.max) ||\n !isUndefined(options.maxLength) ||\n !isUndefined(options.minLength) ||\n options.pattern ||\n options.validate);\n","import type { InternalFieldName } from '../types';\n\nexport default (names: Set<InternalFieldName>, name: InternalFieldName) =>\n name\n .split('.')\n .some(\n (part, index, arr) =>\n !isNaN(Number(part)) && names.has(arr.slice(0, index).join('.')),\n );\n","import type { InternalFieldName, Names } from '../types';\n\nexport default (\n name: InternalFieldName,\n _names: Names,\n isBlurEvent?: boolean,\n) => {\n if (isBlurEvent) return false;\n if (_names.watchAll || _names.watch.has(name)) return true;\n for (const watchName of _names.watch) {\n if (name.startsWith(watchName) && name.charAt(watchName.length) === '.')\n return true;\n }\n return false;\n};\n","import type { FieldRefs, InternalFieldName, Ref } from '../types';\nimport { get } from '../utils';\nimport isObject from '../utils/isObject';\n\nconst iterateFieldsByAction = (\n fields: FieldRefs,\n action: (ref: Ref, name: string) => 1 | undefined | void,\n fieldsNames?: Set<InternalFieldName> | InternalFieldName[] | 0,\n) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n if (key === '_f') {\n continue;\n }\n\n const field = fieldsNames ? get(fields, key) : fields[key];\n\n if (field) {\n const { _f } = field;\n\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], _f.name)) {\n return true;\n } else if (_f.ref && action(_f.ref, _f.name)) {\n return true;\n } else {\n if (iterateFieldsByAction(field, action)) {\n return true;\n }\n }\n } else if (isObject(field) || Array.isArray(field)) {\n if (iterateFieldsByAction(field as FieldRefs, action)) {\n return true;\n }\n }\n }\n }\n return;\n};\nexport default iterateFieldsByAction;\n","import type { FieldError, FieldErrors, FieldValues } from '../types';\nimport get from '../utils/get';\n\nexport default function schemaErrorLookup<T extends FieldValues = FieldValues>(\n errors: FieldErrors<T>,\n _fields: FieldValues,\n name: string,\n): {\n error?: FieldError;\n name: string;\n} {\n const error = get(errors, name);\n\n if (error?.type || error?.message || Array.isArray(error)) {\n return {\n error,\n name,\n };\n }\n\n const names = name.split('.');\n\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n\n if (foundError && foundError.root && foundError.root.type) {\n return {\n name: `${fieldName}.root`,\n error: foundError.root,\n };\n }\n\n names.pop();\n }\n\n return {\n name,\n };\n}\n","import { VALIDATION_MODE } from '../constants';\nimport type {\n FieldValues,\n FormState,\n InternalFieldName,\n ReadFormState,\n} from '../types';\n\nexport default <T extends FieldValues, K extends ReadFormState>(\n formStateData: Partial<FormState<T>> & {\n name?: InternalFieldName;\n values?: T;\n },\n _proxyFormState: K,\n updateFormState: (formState: Partial<FormState<T>>) => void,\n isRoot?: boolean,\n) => {\n updateFormState(formStateData);\n const keys = Object.keys(formStateData).filter((key) => key !== 'name');\n\n return (\n !keys.length ||\n (isRoot && keys.length >= Object.keys(_proxyFormState).length) ||\n keys.find(\n (key) =>\n _proxyFormState[key as keyof ReadFormState] ===\n (!isRoot || VALIDATION_MODE.all),\n )\n );\n};\n","import convertToArrayPayload from '../utils/convertToArrayPayload';\n\nexport default <T extends string | readonly string[] | undefined>(\n name?: T,\n signalName?: string,\n exact?: boolean,\n) =>\n !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some(\n (currentName) =>\n currentName &&\n (exact\n ? currentName === signalName || currentName.startsWith(signalName + '.')\n : currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)),\n );\n","import type { ValidationModeFlags } from '../types';\n\nexport default (\n isBlurEvent: boolean,\n isTouched: boolean,\n isSubmitted: boolean,\n reValidateMode: Pick<ValidationModeFlags, 'isOnBlur' | 'isOnChange'>,\n mode: Partial<ValidationModeFlags>,\n) => {\n if (mode.isOnAll) {\n return false;\n } else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n } else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n } else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n","import compact from '../utils/compact';\nimport get from '../utils/get';\nimport unset from '../utils/unset';\n\nexport default <T>(ref: T, name: string) => {\n const array = get(ref, name);\n\n !compact(array).length &&\n !(array as { root?: unknown })?.root &&\n unset(ref, name);\n};\n","import { ROOT_ERROR_TYPE } from '../constants';\nimport type {\n FieldError,\n FieldErrors,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport get from '../utils/get';\nimport set from '../utils/set';\n\nexport default <T extends FieldValues = FieldValues>(\n errors: FieldErrors<T>,\n error: Partial<Record<string, FieldError>>,\n name: InternalFieldName,\n): FieldErrors<T> => {\n const existingErrors = get(errors, name);\n const fieldArrayErrors = Array.isArray(existingErrors) ? existingErrors : [];\n set(fieldArrayErrors, ROOT_ERROR_TYPE, error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n","import type { FieldError, Ref, ValidateResult } from '../types';\nimport isBoolean from '../utils/isBoolean';\nimport isString from '../utils/isString';\n\nexport default function getValidateError(\n result: ValidateResult,\n ref: Ref,\n type = 'validate',\n): FieldError | void {\n if (\n isString(result) ||\n (Array.isArray(result) && result.every(isString)) ||\n (isBoolean(result) && !result)\n ) {\n return {\n type,\n message: isString(result) ? result : '',\n ref,\n };\n }\n}\n","import type { ValidationRule } from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\n\nexport default (validationData?: ValidationRule) =>\n isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n","import { INPUT_VALIDATION_RULES } from '../constants';\nimport type {\n Field,\n FieldError,\n FieldValues,\n InternalFieldErrors,\n InternalNameSet,\n MaxType,\n Message,\n MinType,\n NativeFieldValue,\n} from '../types';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isDateObject from '../utils/isDateObject';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioInput from '../utils/isRadioInput';\nimport isRegex from '../utils/isRegex';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nimport appendErrors from './appendErrors';\nimport getCheckboxValue from './getCheckboxValue';\nimport getRadioValue from './getRadioValue';\nimport getValidateError from './getValidateError';\nimport getValueAndMessage from './getValueAndMessage';\n\nexport default async <T extends FieldValues>(\n field: Field,\n disabledFieldNames: InternalNameSet,\n formValues: T,\n validateAllFieldCriteria: boolean,\n shouldUseNativeValidation?: boolean,\n isFieldArray?: boolean,\n): Promise<InternalFieldErrors> => {\n const {\n ref,\n refs,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n name,\n valueAsNumber,\n mount,\n } = field._f;\n const inputValue: NativeFieldValue = get(formValues, name);\n if (!mount || disabledFieldNames.has(name)) {\n return {};\n }\n const inputRef: HTMLInputElement = refs ? refs[0] : (ref as HTMLInputElement);\n const setCustomValidity = (message?: string | boolean) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n const validityMessage = isBoolean(message) ? '' : message || '';\n if (refs) {\n refs.forEach((ref) => ref.setCustomValidity(validityMessage));\n } else {\n inputRef.setCustomValidity(validityMessage);\n }\n inputRef.reportValidity();\n }\n };\n const error: InternalFieldErrors = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty =\n ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(\n null,\n name,\n validateAllFieldCriteria,\n error,\n );\n const getMinMaxMessage = (\n exceedMax: boolean,\n maxLengthMessage: Message,\n minLengthMessage: Message,\n maxType: MaxType = INPUT_VALIDATION_RULES.maxLength,\n minType: MinType = INPUT_VALIDATION_RULES.minLength,\n ) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n\n if (\n isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))\n ) {\n const { value, message } = isString(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n\n if (\n !isNullOrUndefined(inputValue) &&\n !isDateObject(inputValue) &&\n !isNaN(inputValue as number)\n ) {\n const valueNumber =\n (ref as HTMLInputElement).valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n } else {\n const valueDate =\n (ref as HTMLInputElement).valueAsDate || new Date(inputValue as string);\n const convertTimeToDate = (time: unknown) =>\n new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n !!exceedMax,\n maxOutput.message,\n minOutput.message,\n INPUT_VALIDATION_RULES.max,\n INPUT_VALIDATION_RULES.min,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (\n (maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))\n ) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax =\n !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin =\n !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n exceedMax,\n maxLengthOutput.message,\n minLengthOutput.message,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(\n INPUT_VALIDATION_RULES.validate,\n validateError.message,\n ),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n } else if (isObject(validate)) {\n let validationResult = {} as FieldError;\n\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n\n const validateError = getValidateError(\n await validate[key](inputValue, formValues),\n inputRef,\n key,\n );\n\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n }\n\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n\n const fieldError = error[name];\n\n setCustomValidity(fieldError ? fieldError.message : true);\n\n return error;\n};\n","import {\n EVENTS,\n INPUT_VALIDATION_RULES,\n ROOT_ERROR_TYPE,\n VALIDATION_MODE,\n} from '../constants';\nimport type {\n BatchFieldArrayUpdate,\n ChangeHandler,\n Control,\n DeepPartial,\n DelayCallback,\n EventType,\n Field,\n FieldError,\n FieldErrors,\n FieldNamesMarkedBoolean,\n FieldPath,\n FieldPathValue,\n FieldRefs,\n FieldValues,\n FormState,\n FormStateProxy,\n FromSubscribe,\n GetIsDirty,\n GetValuesConfig,\n InternalFieldName,\n Names,\n Path,\n ReadFormState,\n Ref,\n SetFieldValue,\n SetValueConfig,\n Subjects,\n TriggerConfig,\n UseFormClearErrors,\n UseFormGetErrors,\n UseFormGetFieldState,\n UseFormGetValues,\n UseFormHandleSubmit,\n UseFormProps,\n UseFormRegister,\n UseFormReset,\n UseFormResetDefaultValues,\n UseFormResetField,\n UseFormReturn,\n UseFormSetError,\n UseFormSetFocus,\n UseFormSetValue,\n UseFormSetValues,\n UseFormSubscribe,\n UseFormTrigger,\n UseFormUnregister,\n UseFormWatch,\n ValidateFormEventType,\n WatchInternal,\n WatchObserver,\n} from '../types';\nimport cloneObject from '../utils/cloneObject';\nimport compact from '../utils/compact';\nimport convertToArrayPayload from '../utils/convertToArrayPayload';\nimport createSubject from '../utils/createSubject';\nimport deepEqual from '../utils/deepEqual';\nimport extractFormValues from '../utils/extractFormValues';\nimport get from '../utils/get';\nimport has from '../utils/has';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isDateObject from '../utils/isDateObject';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isKey from '../utils/isKey';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioOrCheckbox from '../utils/isRadioOrCheckbox';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\nimport isWeb from '../utils/isWeb';\nimport live from '../utils/live';\nimport set from '../utils/set';\nimport stringToPath from '../utils/stringToPath';\nimport unset from '../utils/unset';\n\nimport collectDirtyFieldNames from './collectDirtyFieldNames';\nimport generateWatchOutput from './generateWatchOutput';\nimport getDirtyFields from './getDirtyFields';\nimport getEventValue from './getEventValue';\nimport getFieldArrayItemNames from './getFieldArrayItemNames';\nimport getFieldValue from './getFieldValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getResolverOptions from './getResolverOptions';\nimport getRuleValue from './getRuleValue';\nimport getValidationModes from './getValidationModes';\nimport hasPromiseValidation from './hasPromiseValidation';\nimport hasValidation from './hasValidation';\nimport isNameInFieldArray from './isNameInFieldArray';\nimport isWatched from './isWatched';\nimport iterateFieldsByAction from './iterateFieldsByAction';\nimport schemaErrorLookup from './schemaErrorLookup';\nimport shouldRenderFormState from './shouldRenderFormState';\nimport shouldSubscribeByName from './shouldSubscribeByName';\nimport skipValidation from './skipValidation';\nimport unsetEmptyArray from './unsetEmptyArray';\nimport updateFieldArrayRootError from './updateFieldArrayRootError';\nimport validateField from './validateField';\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n} as const;\n\nconst FORM_ERROR_TYPE = 'form';\n\nconst updateDirtyFields = (\n dirtyFields: Record<string, unknown>,\n nextDirtyFields: Record<string, unknown>,\n) => {\n for (const key in dirtyFields) {\n if (!(key in nextDirtyFields)) {\n delete dirtyFields[key];\n }\n }\n\n Object.assign(dirtyFields, nextDirtyFields);\n};\n\nexport const DEFAULT_FORM_STATE = {\n submitCount: 0,\n isDirty: false,\n isReady: false,\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n validatingFields: {},\n};\n\nexport function createFormControl<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n TTransformedValues = TFieldValues,\n>(\n props: UseFormProps<TFieldValues, TContext, TTransformedValues> = {},\n): Omit<\n UseFormReturn<TFieldValues, TContext, TTransformedValues>,\n 'formState'\n> & {\n formControl: Omit<\n UseFormReturn<TFieldValues, TContext, TTransformedValues>,\n 'formState'\n >;\n} {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState: FormState<TFieldValues> & {\n values?: TFieldValues;\n name?: string;\n type?: EventType;\n } = {\n ...cloneObject(DEFAULT_FORM_STATE),\n isLoading: isFunction(_options.defaultValues),\n errors: _options.errors || {},\n disabled: _options.disabled || false,\n };\n let _fields: FieldRefs = {};\n let _defaultValues =\n isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? ({} as TFieldValues)\n : (cloneObject(_defaultValues) as TFieldValues);\n let _state = {\n action: false,\n actionArrayLengths: new Map<InternalFieldName, number>(),\n mount: false,\n watch: false,\n keepIsValid: false,\n };\n let _names: Names = {\n mount: new Set(),\n disabled: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n registerName: new Set(),\n };\n const delayErrorCallbacks: Partial<Record<InternalFieldName, DelayCallback>> =\n {};\n const timers: Partial<Record<InternalFieldName, number>> = {};\n let _valuesSubscriberCount = 0;\n let _validationModeBeforeSubmit = getValidationModes(_options.mode);\n let _validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const defaultProxyFormState: ReadFormState = {\n isDirty: false,\n dirtyFields: false,\n validatingFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _proxyFormState: ReadFormState = {\n ...defaultProxyFormState,\n };\n let _proxySubscribeFormState = {\n ..._proxyFormState,\n };\n const _isTracked = (...keys: (keyof FormStateProxy)[]) =>\n keys.some((key) => _proxyFormState[key] || _proxySubscribeFormState[key]);\n const _subjects: Subjects<TFieldValues> = {\n array: createSubject(),\n state: createSubject(),\n };\n\n let _setValidCallId = 0;\n let _resetCallId = 0;\n\n let shouldDisplayAllAssociatedErrors =\n _options.criteriaMode === VALIDATION_MODE.all;\n\n const debounce =\n <T extends Function>(name: InternalFieldName, callback: T) =>\n (wait: number) => {\n clearTimeout(timers[name]);\n timers[name] = setTimeout(callback, wait);\n };\n\n const cancelDelayedError = (name: InternalFieldName) => {\n clearTimeout(timers[name]);\n delete timers[name];\n delete delayErrorCallbacks[name];\n };\n\n const cancelDelayedErrorTree = (name: InternalFieldName) => {\n cancelDelayedError(name);\n\n const prefix = `${name}.`;\n\n for (const key of Object.keys(delayErrorCallbacks)) {\n key.startsWith(prefix) && cancelDelayedError(key);\n }\n };\n\n const _setValid = async (shouldUpdateValid?: boolean) => {\n if (_state.keepIsValid) {\n return;\n }\n if (!_options.disabled && (_isTracked('isValid') || shouldUpdateValid)) {\n const callId = ++_setValidCallId;\n let isValid: boolean;\n if (_options.resolver) {\n isValid = isEmptyObject((await _runSchema()).errors);\n callId === _setValidCallId && _updateIsValidating();\n } else {\n isValid = await executeBuiltInValidation({\n fields: _fields,\n onlyCheckValid: true,\n eventType: EVENTS.VALID,\n });\n }\n if (callId === _setValidCallId && isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n\n const _updateIsValidating = (names?: string[], isValidating?: boolean) => {\n if (!_options.disabled && _isTracked('isValidating', 'validatingFields')) {\n (names || _names.mount).forEach((name) => {\n if (name) {\n isValidating\n ? set(_formState.validatingFields, name, isValidating)\n : unset(_formState.validatingFields, name);\n }\n });\n\n _subjects.state.next({\n validatingFields: _formState.validatingFields,\n isValidating: !isEmptyObject(_formState.validatingFields),\n });\n }\n };\n\n const _updateDirtyFields = () => {\n _formState.dirtyFields = getDirtyFields(\n _defaultValues,\n _formValues,\n undefined,\n _fields,\n );\n };\n\n const _setFieldArray: BatchFieldArrayUpdate = (\n name,\n values = [],\n method,\n args,\n shouldSetValues = true,\n shouldUpdateFieldsAndState = true,\n ) => {\n if (args && method && !_options.disabled) {\n _state.action = true;\n const fields = get(_fields, name);\n if (!_state.actionArrayLengths.has(name)) {\n _state.actionArrayLengths.set(\n name,\n Array.isArray(fields) ? fields.length : 0,\n );\n }\n if (shouldUpdateFieldsAndState && Array.isArray(fields)) {\n const fieldValues = method(fields, args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n\n const fieldArrayErrors:\n | (FieldError[] & { root?: FieldError })\n | undefined = get(_formState.errors, name);\n if (shouldUpdateFieldsAndState && Array.isArray(fieldArrayErrors)) {\n const rootError = fieldArrayErrors.root;\n const errors =\n method(fieldArrayErrors, args.argA, args.argB) || fieldArrayErrors;\n\n if (rootError) {\n errors.root = rootError;\n }\n\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n\n const touchedFieldsArray = get(_formState.touchedFields, name);\n if (\n _isTracked('touchedFields') &&\n shouldUpdateFieldsAndState &&\n Array.isArray(touchedFieldsArray)\n ) {\n const touchedFields = method(touchedFieldsArray, args.argA, args.argB);\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n\n if (_isTracked('dirtyFields')) {\n _updateDirtyFields();\n }\n\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n } else {\n set(_formValues, name, values);\n }\n };\n\n const updateErrors = (name: InternalFieldName, error: FieldError) => {\n set(_formState.errors, name, error);\n _formState.errors = { ..._formState.errors };\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n\n const _setErrors = (errors: FieldErrors<TFieldValues>) => {\n Object.keys(delayErrorCallbacks).forEach(cancelDelayedError);\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false,\n });\n };\n\n const hasExplicitNullIntermediate = (name: InternalFieldName) => {\n const segments = isKey(name) ? [name] : stringToPath(name);\n let formValues = _formValues;\n let defaultValues = _defaultValues;\n\n for (let i = 0; i < segments.length - 1; i++) {\n const key = segments[i];\n\n formValues = isNullOrUndefined(formValues) ? formValues : formValues[key];\n\n defaultValues = isNullOrUndefined(defaultValues)\n ? defaultValues\n : defaultValues[key as keyof typeof defaultValues];\n\n if (formValues === null && defaultValues !== null) {\n return true;\n }\n }\n\n return false;\n };\n\n const isStaleArrayField = (name: InternalFieldName): boolean => {\n if (!_state.actionArrayLengths.size) {\n return false;\n }\n\n const segments = isKey(name) ? [name] : stringToPath(name);\n let node: unknown = _formValues;\n let path = '';\n let ownerDepth = -1;\n let ownerPreActionLength = 0;\n\n for (let i = 0; i < segments.length; i++) {\n if (isNullOrUndefined(node)) {\n return false;\n }\n\n const key = segments[i];\n path = path ? `${path}.${key}` : key;\n\n if (Array.isArray(node) && +key >= node.length) {\n return ownerDepth === -1\n ? false\n : i === ownerDepth\n ? +key < ownerPreActionLength\n : true;\n }\n\n if (_state.actionArrayLengths.has(path)) {\n ownerDepth = i + 1;\n ownerPreActionLength = _state.actionArrayLengths.get(path)!;\n }\n\n node = (node as Record<string, unknown>)[key];\n\n if (\n isUndefined(node) &&\n ownerDepth !== -1 &&\n i > ownerDepth &&\n +segments[ownerDepth] < ownerPreActionLength\n ) {\n return true;\n }\n }\n\n return false;\n };\n\n const updateValidAndValue = (\n name: InternalFieldName,\n shouldSkipSetValueAs: boolean,\n value?: unknown,\n ref?: Ref,\n ) => {\n const field: Field = get(_fields, name);\n\n if (field) {\n if (hasExplicitNullIntermediate(name) || isStaleArrayField(name)) {\n return;\n }\n\n const wasUnsetInFormValues = isUndefined(get(_formValues, name));\n const defaultValue = get(\n _formValues,\n name,\n isUndefined(value) ? get(_defaultValues, name) : value,\n );\n\n isUndefined(defaultValue) ||\n (ref && (ref as HTMLInputElement).defaultChecked) ||\n shouldSkipSetValueAs\n ? set(\n _formValues,\n name,\n shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f),\n )\n : setFieldValue(name, defaultValue);\n\n if (_state.mount && !_state.action) {\n _setValid();\n\n if (\n wasUnsetInFormValues &&\n _formState.isDirty &&\n _isTracked('isDirty')\n ) {\n const isDirty = _getDirty();\n if (!isDirty) {\n _formState.isDirty = false;\n _subjects.state.next({ ..._formState });\n }\n }\n\n if (\n props.shouldUnregister &&\n wasUnsetInFormValues &&\n !isUndefined(get(_formValues, name)) &&\n isWatched(name, _names)\n ) {\n _state.watch = true;\n }\n }\n }\n };\n\n const updateTouchAndDirty = (\n name: InternalFieldName,\n fieldValue: unknown,\n isBlurEvent?: boolean,\n shouldDirty?: boolean,\n shouldRender?: boolean,\n ): Partial<\n Pick<FormState<TFieldValues>, 'dirtyFields' | 'isDirty' | 'touchedFields'>\n > => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output: Partial<FormState<TFieldValues>> & { name: string } = {\n name,\n };\n\n // an explicit programmatic update (e.g. setValue with shouldDirty: true)\n // opts into dirty tracking even when the form is disabled\n if (!_options.disabled || shouldDirty === true) {\n if (!isBlurEvent || shouldDirty) {\n const isCurrentFieldPristine = deepEqual(\n get(_defaultValues, name),\n fieldValue,\n );\n\n if (_isTracked('isDirty')) {\n isPreviousDirty = _formState.isDirty;\n\n _formState.isDirty = output.isDirty =\n !isCurrentFieldPristine || _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n\n isPreviousDirty = !!get(_formState.dirtyFields, name);\n\n if (isCurrentFieldPristine !== _formState.isDirty) {\n updateDirtyFields(\n _formState.dirtyFields as Record<string, unknown>,\n getDirtyFields(\n _defaultValues,\n _formValues,\n undefined,\n _fields,\n ) as Record<string, unknown>,\n );\n } else {\n isCurrentFieldPristine\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n }\n\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_isTracked('dirtyFields') &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_isTracked('touchedFields') &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n }\n\n return shouldUpdateField ? output : {};\n };\n\n const shouldRenderByError = (\n name: InternalFieldName,\n isValid?: boolean,\n error?: FieldError,\n fieldState?: {\n dirty?: FieldNamesMarkedBoolean<TFieldValues>;\n isDirty?: boolean;\n touched?: FieldNamesMarkedBoolean<TFieldValues>;\n },\n ) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid =\n _isTracked('isValid') &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n\n if (_options.delayError && error) {\n delayErrorCallbacks[name] = debounce(name, () =>\n updateErrors(name, error),\n );\n delayErrorCallbacks[name](_options.delayError);\n } else {\n cancelDelayedError(name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n _formState.errors = { ..._formState.errors };\n }\n\n if (\n (error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid\n ) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n\n _subjects.state.next(updatedFormState);\n }\n };\n\n const _runSchema = async (name?: InternalFieldName[]) => {\n _updateIsValidating(name, true);\n return await _options.resolver!(\n _formValues as TFieldValues,\n _options.context,\n getResolverOptions(\n name || _names.mount,\n _fields,\n _options.criteriaMode,\n _options.shouldUseNativeValidation,\n ),\n );\n };\n\n const executeSchemaAndUpdateState = async (names?: InternalFieldName[]) => {\n const resetCallId = _resetCallId;\n const { errors } = await _runSchema(names);\n\n if (resetCallId !== _resetCallId) {\n return errors;\n }\n\n _updateIsValidating(names);\n\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n cancelDelayedError(name);\n const isFieldArrayRootError =\n _names.array.has(name) &&\n isObject(error) &&\n !Object.keys(error).some((key) => !Number.isNaN(Number(key)));\n const field = get(_fields, name);\n const hasNestedFields =\n isObject(field) && Object.keys(field).some((key) => key !== '_f');\n\n isFieldArrayRootError\n ? updateFieldArrayRootError(\n _formState.errors,\n { [name]: error } as Partial<Record<string, FieldError>>,\n name,\n )\n : error?.type ||\n error?.message ||\n Array.isArray(error) ||\n (isObject(error) && hasNestedFields)\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n _formState.errors = { ..._formState.errors };\n } else {\n Object.keys(delayErrorCallbacks).forEach(cancelDelayedError);\n _formState.errors = errors;\n }\n\n return errors;\n };\n\n const validateForm = async ({\n name,\n eventType,\n }: {\n name: FieldPath<TFieldValues> | FieldPath<TFieldValues>[] | undefined;\n eventType: ValidateFormEventType;\n }) => {\n if (props.validate) {\n const result = await props.validate({\n formValues: _formValues,\n formState: _formState,\n name,\n eventType,\n });\n\n if (isObject(result)) {\n for (const key in result) {\n const error = result[key];\n\n if (error) {\n setError(`${FORM_ERROR_TYPE}.${key}`, {\n message: isString(error.message) ? error.message : '',\n type: error.type || INPUT_VALIDATION_RULES.validate,\n });\n }\n }\n } else if (isString(result) || !result) {\n setError(FORM_ERROR_TYPE, {\n message: result || '',\n type: INPUT_VALIDATION_RULES.validate,\n });\n } else {\n clearErrors(FORM_ERROR_TYPE);\n }\n\n return result;\n }\n\n return true;\n };\n\n const executeBuiltInValidation = async ({\n fields,\n onlyCheckValid,\n name,\n eventType,\n context = {\n valid: true,\n runRootValidation: false,\n },\n }: {\n fields: FieldRefs;\n onlyCheckValid?: boolean;\n name?: FieldPath<TFieldValues> | FieldPath<TFieldValues>[];\n eventType: ValidateFormEventType;\n context?: {\n valid: boolean;\n runRootValidation?: boolean;\n };\n }) => {\n if (props.validate) {\n context.runRootValidation = true;\n const result = await validateForm({\n name,\n eventType,\n });\n\n if (!result) {\n context.valid = false;\n\n if (onlyCheckValid) {\n return context.valid;\n }\n }\n }\n\n for (const name in fields) {\n const field = fields[name];\n\n if (field) {\n const { _f, ...fieldValue } = field as Field;\n\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const isPromiseFunction =\n field._f && hasPromiseValidation((field as Field)._f);\n const shouldTrackIsValidatingState = _isTracked(\n 'isValidating',\n 'validatingFields',\n );\n\n if (isPromiseFunction && shouldTrackIsValidatingState) {\n _updateIsValidating([_f.name], true);\n }\n\n const fieldError = await validateField(\n field as Field,\n _names.disabled,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation && !onlyCheckValid,\n isFieldArrayRoot,\n );\n\n if (isPromiseFunction && shouldTrackIsValidatingState) {\n _updateIsValidating([_f.name]);\n }\n\n if (fieldError[_f.name]) {\n context.valid = false;\n\n if (onlyCheckValid) {\n break;\n }\n }\n\n if (!onlyCheckValid) {\n cancelDelayedError(_f.name);\n get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(\n _formState.errors,\n fieldError,\n _f.name,\n )\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name);\n }\n\n if (props.shouldUseNativeValidation && fieldError[_f.name]) {\n break;\n }\n }\n\n !isEmptyObject(fieldValue) &&\n (await executeBuiltInValidation({\n context,\n onlyCheckValid,\n fields: fieldValue,\n name: name as FieldPath<TFieldValues>,\n eventType,\n }));\n }\n }\n\n return context.valid;\n };\n\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field: Field = get(_fields, name);\n\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name as FieldPath<TFieldValues>);\n }\n\n _names.unMount = new Set();\n };\n\n const _getDirty: GetIsDirty = (name, data) => (\n name && data && set(_formValues, name, data),\n !deepEqual(_state.mount ? _formValues : _defaultValues, _defaultValues)\n );\n\n const _getWatch: WatchInternal<TFieldValues> = (\n names,\n defaultValue,\n isGlobal,\n ) =>\n generateWatchOutput(\n names,\n _names,\n {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue) || isString(names)\n ? _defaultValues\n : defaultValue),\n },\n isGlobal,\n defaultValue,\n );\n\n const _getFieldArray = <TFieldArrayValues>(\n name: InternalFieldName,\n ): Partial<TFieldArrayValues>[] =>\n compact(\n get(\n _state.mount ? _formValues : _defaultValues,\n name,\n _options.shouldUnregister ? get(_defaultValues, name, []) : [],\n ),\n );\n\n const setFieldValue = (\n name: InternalFieldName,\n value: SetFieldValue<TFieldValues>,\n options: SetValueConfig = {},\n skipClone = false,\n skipRender = false,\n skipValueRender = false,\n ) => {\n const field: Field = get(_fields, name);\n let fieldValue: unknown = value;\n\n if (field) {\n const fieldReference = field._f;\n\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach(\n (optionRef) =>\n (optionRef.selected = (\n fieldValue as InternalFieldName[]\n ).includes(optionRef.value)),\n );\n } else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.forEach((checkboxRef) => {\n if (!checkboxRef.defaultChecked || !checkboxRef.disabled) {\n if (Array.isArray(fieldValue)) {\n checkboxRef.checked = !!fieldValue.find(\n (data: string) => data === checkboxRef.value,\n );\n } else {\n checkboxRef.checked =\n fieldValue === checkboxRef.value || !!fieldValue;\n }\n }\n });\n } else {\n fieldReference.refs.forEach(\n (radioRef: HTMLInputElement) =>\n (radioRef.checked = radioRef.value === fieldValue),\n );\n }\n } else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n } else {\n fieldReference.ref.value = fieldValue;\n\n if (!fieldReference.ref.type && !skipRender && !skipValueRender) {\n _subjects.state.next({\n name,\n values: skipClone ? _formValues : cloneObject(_formValues),\n });\n }\n }\n }\n }\n\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(\n name,\n field &&\n field._f &&\n !field._f.disabled &&\n (field._f.valueAsNumber ||\n field._f.valueAsDate ||\n field._f.setValueAs)\n ? getFieldValueAs(value, field._f)\n : fieldValue,\n options.shouldTouch,\n options.shouldDirty,\n !skipRender,\n );\n\n options.shouldValidate &&\n trigger(\n name as Path<TFieldValues>,\n {\n delayError: options.delayError,\n } as TriggerConfig & { delayError?: boolean },\n );\n };\n\n const setFieldValues = <\n T extends InternalFieldName,\n K extends SetFieldValue<TFieldValues>,\n U extends SetValueConfig,\n >(\n name: T,\n value: K,\n options: U,\n skipClone = false,\n skipRender = false,\n skipValueRender = false,\n ) => {\n if (_names.array.has(name)) {\n _subjects.array.next({\n name,\n values: skipClone ? _formValues : cloneObject(_formValues),\n });\n }\n\n for (const fieldKey in value) {\n if (!value.hasOwnProperty(fieldKey)) {\n continue;\n }\n const fieldValue = value[fieldKey];\n const fieldName = name + '.' + fieldKey;\n const field = get(_fields, fieldName);\n\n (_names.array.has(name) ||\n isObject(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setFieldValues(\n fieldName,\n fieldValue,\n options,\n skipClone,\n skipRender,\n skipValueRender,\n )\n : setFieldValue(\n fieldName,\n fieldValue,\n options,\n skipClone,\n skipRender,\n skipValueRender,\n );\n }\n };\n\n const _setValue = <\n TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n >(\n name: TFieldName,\n value: FieldPathValue<TFieldValues, TFieldName>,\n options: SetValueConfig,\n skipClone: boolean,\n skipStateEmit = false,\n ) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = skipClone ? value : cloneObject(value);\n const previousValue = get(_formValues, name);\n const isValueUnchanged = deepEqual(previousValue, cloneValue);\n\n if (!isValueUnchanged) {\n set(_formValues, name, cloneValue);\n }\n\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: skipClone ? _formValues : cloneObject(_formValues),\n });\n\n if (_isTracked('isDirty', 'dirtyFields') && options.shouldDirty) {\n _updateDirtyFields();\n\n if (!skipStateEmit) {\n _subjects.state.next({\n name,\n dirtyFields: _formState.dirtyFields,\n isDirty: _getDirty(name, cloneValue),\n });\n }\n }\n } else {\n const isEmpty =\n (Array.isArray(cloneValue) && !cloneValue.length) ||\n isEmptyObject(cloneValue);\n\n const skipValueRender = !isValueUnchanged && !skipStateEmit;\n if (!field || field._f || isNullOrUndefined(cloneValue) || isEmpty) {\n setFieldValue(\n name,\n cloneValue,\n options,\n skipClone,\n skipStateEmit,\n skipValueRender,\n );\n } else {\n setFieldValues(\n name,\n cloneValue,\n options,\n skipClone,\n skipStateEmit,\n skipValueRender,\n );\n }\n }\n\n if (!isValueUnchanged && !skipStateEmit) {\n const watched = isWatched(name, _names);\n const values = skipClone ? _formValues : cloneObject(_formValues);\n\n _subjects.state.next({\n ...(watched && _formState),\n name: _state.mount || watched ? name : undefined,\n values,\n });\n\n if (!isFieldArray) {\n for (const itemName of getFieldArrayItemNames(_names.array, name)) {\n _subjects.state.next({ name: itemName, values });\n }\n }\n }\n };\n\n const setValue: UseFormSetValue<TFieldValues> = (name, value, options = {}) =>\n _setValue(name, value, options, false);\n\n const setValues: UseFormSetValues<TFieldValues> = (\n formValues,\n options = {},\n ) => {\n const updatedFormValues = isFunction(formValues)\n ? (formValues as Function)(_formValues as TFieldValues)\n : formValues;\n\n if (!deepEqual(_formValues, updatedFormValues)) {\n _formValues = {\n ..._formValues,\n ...updatedFormValues,\n };\n\n for (const fieldName of _names.mount) {\n if (has(updatedFormValues, fieldName)) {\n _setValue(\n fieldName as FieldPath<TFieldValues>,\n get(updatedFormValues, fieldName),\n options,\n true,\n true,\n );\n }\n }\n\n _subjects.state.next({\n ..._formState,\n name: undefined,\n type: undefined,\n ...(_valuesSubscriberCount ? { values: _formValues } : {}),\n });\n\n if (options.shouldValidate) {\n _setValid();\n }\n }\n };\n\n const onChange: ChangeHandler = async (event) => {\n _state.mount = true;\n const target = event.target;\n let name: string = target.name;\n let isFieldValueUpdated = true;\n const field: Field = get(_fields, name);\n const _updateIsFieldValueUpdated = (fieldValue: unknown) => {\n isFieldValueUpdated =\n Number.isNaN(fieldValue) ||\n (isDateObject(fieldValue) && isNaN(fieldValue.getTime())) ||\n deepEqual(fieldValue, get(_formValues, name, fieldValue));\n };\n\n if (field) {\n let error;\n let isValid;\n const fieldValue = target.type\n ? getFieldValue(field._f)\n : getEventValue(event);\n const isBlurEvent =\n event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const hasNoValidationEffect =\n !hasValidation(field._f) &&\n !props.validate &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps;\n const shouldSkipValidation =\n hasNoValidationEffect ||\n skipValidation(\n isBlurEvent,\n get(_formState.touchedFields, name),\n _formState.isSubmitted,\n _validationModeAfterSubmit,\n _validationModeBeforeSubmit,\n );\n const watched = isWatched(name, _names, isBlurEvent);\n\n set(_formValues, name, cloneObject(fieldValue));\n\n if (isBlurEvent) {\n if (!target || !target.readOnly) {\n field._f.onBlur && field._f.onBlur(event);\n const pendingDelayError = delayErrorCallbacks[name];\n pendingDelayError && pendingDelayError(0);\n }\n } else if (field._f.onChange) {\n field._f.onChange(event);\n }\n\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent);\n\n const shouldRender = !isEmptyObject(fieldState) || watched;\n\n !isBlurEvent &&\n _subjects.state.next({\n name,\n type: event.type,\n ...(_valuesSubscriberCount\n ? { values: cloneObject(_formValues) }\n : {}),\n });\n\n if (shouldSkipValidation) {\n if (\n (!hasNoValidationEffect || !_formState.isValid) &&\n _isTracked('isValid')\n ) {\n if (_options.mode === 'onBlur') {\n if (isBlurEvent) {\n _setValid();\n }\n } else if (!isBlurEvent) {\n _setValid();\n }\n }\n\n return (\n shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) })\n );\n }\n\n if (!_options.resolver && props.validate) {\n await validateForm({\n name: name as FieldPath<TFieldValues>,\n eventType: event.type,\n });\n }\n\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n\n if (_options.resolver) {\n const { errors } = await _runSchema([name]);\n _updateIsValidating([name]);\n\n _updateIsFieldValueUpdated(fieldValue);\n\n if (!isFieldValueUpdated) {\n !isEmptyObject(fieldState) && _subjects.state.next(fieldState);\n return;\n }\n\n const previousErrorLookupResult = schemaErrorLookup(\n _formState.errors,\n _fields,\n name,\n );\n const errorLookupResult = schemaErrorLookup(\n errors,\n _fields,\n previousErrorLookupResult.name || name,\n );\n\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n\n isValid = isEmptyObject(errors);\n } else {\n _updateIsValidating([name], true);\n error = (\n await validateField(\n field,\n _names.disabled,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation,\n )\n )[name];\n _updateIsValidating([name]);\n\n _updateIsFieldValueUpdated(fieldValue);\n\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n } else if (_isTracked('isValid')) {\n isValid = await executeBuiltInValidation({\n fields: _fields,\n onlyCheckValid: true,\n name: name as FieldPath<TFieldValues>,\n eventType: event.type,\n });\n }\n }\n }\n\n if (isFieldValueUpdated) {\n field._f.deps &&\n (!Array.isArray(field._f.deps) || field._f.deps.length > 0) &&\n trigger(\n field._f.deps as\n | FieldPath<TFieldValues>\n | FieldPath<TFieldValues>[],\n );\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n\n const _focusInput = (ref: Ref, key: string) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n };\n\n const trigger: UseFormTrigger<TFieldValues> = async (\n name,\n options: TriggerConfig & { delayError?: boolean } = {},\n ) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name) as InternalFieldName[];\n\n if (_options.resolver) {\n const resetCallId = _resetCallId;\n const errors = await executeSchemaAndUpdateState(\n isUndefined(name) ? name : fieldNames,\n );\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n\n if (resetCallId !== _resetCallId) {\n return validationResult;\n }\n } else if (name) {\n validationResult = (\n await Promise.all(\n fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation({\n fields: field && field._f ? { [fieldName]: field } : field,\n eventType: EVENTS.TRIGGER,\n });\n }),\n )\n ).every(Boolean);\n !(!validationResult && !_formState.isValid) && _setValid();\n } else {\n validationResult = isValid = await executeBuiltInValidation({\n fields: _fields,\n name,\n eventType: EVENTS.TRIGGER,\n });\n }\n\n if (options.delayError && _options.delayError && isString(name)) {\n const error = get(_formState.errors, name);\n if (error) {\n unset(_formState.errors, name);\n delayErrorCallbacks[name] = debounce(name, () =>\n updateErrors(name, error),\n );\n delayErrorCallbacks[name](_options.delayError);\n } else {\n cancelDelayedError(name);\n }\n }\n\n if (options.shouldTouch) {\n for (const fieldName of name ? fieldNames : _names.mount) {\n !_names.array.has(fieldName) &&\n set(_formState.touchedFields, fieldName, true);\n }\n }\n\n _subjects.state.next({\n ...(!isString(name) ||\n (_isTracked('isValid') && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n ...(options.shouldTouch && _isTracked('touchedFields')\n ? { touchedFields: _formState.touchedFields }\n : {}),\n errors: _formState.errors,\n });\n\n options.shouldFocus &&\n !validationResult &&\n iterateFieldsByAction(\n _fields,\n _focusInput,\n name ? fieldNames : _names.mount,\n );\n\n return validationResult;\n };\n\n const getValues: UseFormGetValues<TFieldValues> = (\n fieldNames?:\n | FieldPath<TFieldValues>\n | ReadonlyArray<FieldPath<TFieldValues>>,\n config?: GetValuesConfig,\n ) => {\n let values = {\n ...(_state.mount ? _formValues : _defaultValues),\n };\n\n if (config) {\n values = extractFormValues(\n config.dirtyFields ? _formState.dirtyFields : _formState.touchedFields,\n values,\n );\n }\n\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n\n const getErrors: UseFormGetErrors<TFieldValues> = (\n fieldNames?: InternalFieldName | ReadonlyArray<InternalFieldName>,\n ) =>\n isUndefined(fieldNames)\n ? { ..._formState.errors }\n : isString(fieldNames)\n ? get(_formState.errors, fieldNames)\n : fieldNames.map((name) => get(_formState.errors, name));\n\n const getFieldState: UseFormGetFieldState<TFieldValues> = (\n name,\n formState,\n ) => {\n const targetFormState = formState || _formState;\n const error = get(targetFormState.errors, name);\n\n return {\n invalid: !!error,\n isDirty: !!get(targetFormState.dirtyFields, name),\n error,\n isValidating: !!get(targetFormState.validatingFields, name),\n isTouched: !!get(targetFormState.touchedFields, name),\n };\n };\n\n const clearErrors: UseFormClearErrors<TFieldValues> = (name) => {\n const names = name ? convertToArrayPayload(name) : undefined;\n\n if (names) {\n names.forEach((inputName) => {\n cancelDelayedErrorTree(inputName);\n unset(_formState.errors, inputName);\n _subjects.state.next({\n name: inputName,\n errors: _formState.errors,\n });\n });\n } else {\n Object.keys(delayErrorCallbacks).forEach(cancelDelayedError);\n _formState.errors = {};\n _subjects.state.next({\n errors: _formState.errors,\n });\n }\n };\n\n const setError: UseFormSetError<TFieldValues> = (name, error, options) => {\n cancelDelayedError(name);\n\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n const currentError = get(_formState.errors, name) || {};\n\n const {\n ref: currentRef,\n message,\n type,\n types,\n ...restOfErrorTree\n } = currentError;\n\n set(_formState.errors, name, {\n ...restOfErrorTree,\n ...error,\n ref,\n });\n\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n\n const watch: UseFormWatch<TFieldValues> = (\n name?:\n | FieldPath<TFieldValues>\n | ReadonlyArray<FieldPath<TFieldValues>>\n | WatchObserver<TFieldValues>,\n defaultValue?: DeepPartial<TFieldValues>,\n ) => {\n if (isFunction(name)) {\n _valuesSubscriberCount++;\n const { unsubscribe } = _subjects.state.subscribe({\n next: (payload) =>\n 'values' in payload &&\n name(\n payload.values || _getWatch(undefined, defaultValue),\n payload as {\n name?: FieldPath<TFieldValues>;\n type?: EventType;\n value?: unknown;\n },\n ),\n });\n let called = false;\n\n return {\n unsubscribe: () => {\n if (called) {\n return;\n }\n\n called = true;\n _valuesSubscriberCount--;\n unsubscribe();\n },\n };\n }\n return _getWatch(\n name as InternalFieldName | InternalFieldName[],\n defaultValue,\n true,\n );\n };\n\n const _subscribe: FromSubscribe<TFieldValues> = (props) => {\n const needsValues = !!(props.formState as Record<string, unknown>)?.values;\n if (needsValues) {\n _valuesSubscriberCount++;\n }\n const { unsubscribe } = _subjects.state.subscribe({\n next: (\n formState: Partial<FormState<TFieldValues>> & {\n name?: InternalFieldName;\n values?: TFieldValues | undefined;\n type?: EventType;\n },\n ) => {\n if (\n shouldSubscribeByName(props.name, formState.name, props.exact) &&\n shouldRenderFormState(\n formState,\n (props.formState as ReadFormState) || _proxyFormState,\n _setFormState,\n props.reRenderRoot,\n )\n ) {\n const snapshot = { ..._formValues } as TFieldValues;\n\n props.callback({\n values: snapshot,\n ..._formState,\n ...formState,\n defaultValues:\n _defaultValues as FormState<TFieldValues>['defaultValues'],\n });\n }\n },\n });\n if (!needsValues) {\n return unsubscribe;\n }\n let called = false;\n return () => {\n if (called) {\n return;\n }\n\n called = true;\n _valuesSubscriberCount--;\n unsubscribe();\n };\n };\n\n const subscribe: UseFormSubscribe<TFieldValues> = (props) => {\n _state.mount = true;\n _proxySubscribeFormState = {\n ..._proxySubscribeFormState,\n ...props.formState,\n };\n return _subscribe({\n ...props,\n formState: {\n ...defaultProxyFormState,\n ...props.formState,\n },\n });\n };\n\n const unregister: UseFormUnregister<TFieldValues> = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n _names.disabled.delete(fieldName);\n\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n\n if (!options.keepError) {\n cancelDelayedErrorTree(fieldName);\n unset(_formState.errors, fieldName);\n }\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !options.keepIsValidating &&\n unset(_formState.validatingFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n\n _valuesSubscriberCount &&\n _subjects.state.next({\n values: cloneObject(_formValues),\n });\n\n _subjects.state.next({\n ..._formState,\n ...(options.keepDirty ? {} : { isDirty: _getDirty() }),\n ...(options.keepIsValidating\n ? {}\n : { isValidating: !isEmptyObject(_formState.validatingFields) }),\n });\n\n !options.keepIsValid && _setValid();\n };\n\n const _setDisabledField: Control<TFieldValues>['_setDisabledField'] = ({\n disabled,\n name,\n }) => {\n if (\n (isBoolean(disabled) && _state.mount) ||\n !!disabled ||\n _names.disabled.has(name)\n ) {\n const wasDisabled = _names.disabled.has(name);\n const isDisabled = !!disabled;\n const disabledStateChanged = wasDisabled !== isDisabled;\n\n disabled ? _names.disabled.add(name) : _names.disabled.delete(name);\n disabledStateChanged && _state.mount && !_state.action && _setValid();\n }\n };\n\n const register: UseFormRegister<TFieldValues> = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined =\n isBoolean(options.disabled) || isBoolean(_options.disabled);\n const shouldRevalidateRemount =\n !_names.registerName.has(name) && field && field._f && !field._f.mount;\n\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n\n if (field && !shouldRevalidateRemount) {\n _setDisabledField({\n disabled: isBoolean(options.disabled)\n ? options.disabled\n : _options.disabled,\n name,\n });\n } else {\n updateValidAndValue(name, true, options.value);\n }\n\n return {\n ...(disabledIsDefined\n ? { disabled: options.disabled || _options.disabled }\n : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue<number>(options.minLength) as number,\n maxLength: getRuleValue(options.maxLength) as number,\n pattern: getRuleValue(options.pattern) as string,\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref: HTMLInputElement | null): void => {\n if (ref) {\n _names.registerName.add(name);\n register(name, options);\n _names.registerName.delete(name);\n field = get(_fields, name);\n\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? (ref.querySelectorAll('input,select,textarea')[0] as Ref) || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n\n if (\n radioOrCheckbox\n ? refs.find((option: Ref) => option === fieldRef)\n : fieldRef === field._f.ref\n ) {\n return;\n }\n\n const newField = {\n ...field._f,\n };\n if (radioOrCheckbox) {\n newField.refs = [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ];\n newField.ref = { type: fieldRef.type, name };\n } else {\n newField.ref = fieldRef;\n delete newField.refs;\n }\n\n set(_fields, name, {\n _f: newField,\n });\n\n updateValidAndValue(name, false, undefined, fieldRef);\n } else {\n field = get(_fields, name, {});\n\n if (field._f) {\n field._f.mount = false;\n }\n\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n\n const _focusError = () =>\n _options.shouldFocusError &&\n !_options.shouldUseNativeValidation &&\n iterateFieldsByAction(_fields, _focusInput, _names.mount);\n\n const _disableForm = (disabled?: boolean) => {\n if (isBoolean(disabled)) {\n _subjects.state.next({ disabled });\n iterateFieldsByAction(\n _fields,\n (ref, name) => {\n const currentField: Field = get(_fields, name);\n if (currentField) {\n ref.disabled = currentField._f.disabled || disabled;\n\n if (Array.isArray(currentField._f.refs)) {\n currentField._f.refs.forEach((inputRef) => {\n inputRef.disabled = currentField._f.disabled || disabled;\n });\n }\n }\n },\n 0,\n );\n }\n };\n\n const handleSubmit: UseFormHandleSubmit<TFieldValues, TTransformedValues> =\n (onValid, onInvalid) => async (e) => {\n let result: any = undefined;\n let onValidError = undefined;\n if (e) {\n e.preventDefault && e.preventDefault();\n (e as React.BaseSyntheticEvent).persist &&\n (e as React.BaseSyntheticEvent).persist();\n }\n let fieldValues:\n | TFieldValues\n | TTransformedValues\n | Record<string, never> = cloneObject(_formValues);\n\n _subjects.state.next({\n isSubmitting: true,\n });\n\n if (_options.resolver) {\n const resetCallId = _resetCallId;\n const { errors, values } = await _runSchema();\n\n if (resetCallId !== _resetCallId) {\n return;\n }\n\n _updateIsValidating();\n Object.keys(delayErrorCallbacks).forEach(cancelDelayedError);\n _formState.errors = errors;\n fieldValues = cloneObject(values);\n } else {\n await executeBuiltInValidation({\n fields: _fields,\n eventType: EVENTS.SUBMIT,\n });\n\n unset(_formState.errors, ROOT_ERROR_TYPE);\n }\n\n if (_names.disabled.size) {\n for (const name of _names.disabled) {\n unset(fieldValues, name);\n }\n }\n\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n try {\n result = await onValid(fieldValues as TTransformedValues, e);\n } catch (error) {\n onValidError = error;\n }\n } else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n\n _focusError();\n setTimeout(_focusError);\n }\n\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n if (onValidError) {\n throw onValidError;\n }\n return result;\n };\n\n const resetField: UseFormResetField<TFieldValues> = (name, options = {}) => {\n if (get(_fields, name)) {\n unset(_formState.validatingFields, name);\n\n if (isUndefined(options.defaultValue)) {\n setValue(name, cloneObject(get(_defaultValues, name)));\n } else {\n setValue(\n name,\n options.defaultValue as Parameters<typeof setValue<typeof name>>[1],\n );\n set(_defaultValues, name, cloneObject(options.defaultValue));\n }\n\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n : _getDirty();\n }\n\n if (!options.keepError) {\n cancelDelayedError(name);\n unset(_formState.errors, name);\n _setValid();\n }\n\n _subjects.state.next({\n ..._formState,\n isValidating: !isEmptyObject(_formState.validatingFields),\n });\n }\n };\n\n const _reset: UseFormReset<TFieldValues> = (\n formValues,\n keepStateOptions = {},\n ) => {\n _resetCallId++;\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const isEmptyResetValues = isEmptyObject(formValues);\n const values = cloneUpdatedValues;\n const fieldRefs = _fields;\n\n Object.keys(delayErrorCallbacks).forEach(cancelDelayedError);\n\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n const fieldsToCheck = new Set([\n ..._names.mount,\n ...collectDirtyFieldNames(\n getDirtyFields(_defaultValues, _formValues, undefined, fieldRefs),\n _formState.dirtyFields,\n ),\n ]);\n for (const fieldName of fieldsToCheck) {\n const isDirty = get(_formState.dirtyFields, fieldName);\n const existingValue = get(_formValues, fieldName);\n const newValue = get(values, fieldName);\n\n if (isDirty && !isUndefined(existingValue)) {\n set(values, fieldName, existingValue);\n } else if (!isDirty && !isUndefined(newValue)) {\n setValue(fieldName as FieldPath<TFieldValues>, newValue);\n }\n }\n } else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n\n if (keepStateOptions.keepFieldsRef) {\n for (const fieldName of _names.mount) {\n setValue(\n fieldName as FieldPath<TFieldValues>,\n get(values, fieldName),\n );\n }\n } else {\n _fields = {};\n }\n }\n\n if (_options.shouldUnregister) {\n _formValues = keepStateOptions.keepDefaultValues\n ? (cloneObject(_defaultValues) as TFieldValues)\n : ({} as TFieldValues);\n\n if (keepStateOptions.keepFieldsRef) {\n for (const fieldName of _names.mount) {\n set(_formValues, fieldName, get(values, fieldName));\n }\n }\n } else {\n _formValues = cloneObject(values) as TFieldValues;\n }\n\n _subjects.array.next({\n values: { ...values },\n });\n\n _subjects.state.next({\n name: undefined,\n type: undefined,\n values: { ...values } as TFieldValues,\n });\n }\n\n _names = {\n mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),\n unMount: new Set(),\n array: new Set(),\n registerName: new Set(),\n disabled: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n\n _state.mount =\n !_proxyFormState.isValid ||\n !!keepStateOptions.keepIsValid ||\n !!keepStateOptions.keepDirtyValues ||\n (!_options.shouldUnregister && !isEmptyObject(values));\n\n _state.watch = !!_options.shouldUnregister;\n _state.keepIsValid = !!keepStateOptions.keepIsValid;\n _state.action = false;\n _state.actionArrayLengths.clear();\n\n if (!keepStateOptions.keepErrors) {\n _formState.errors = {};\n }\n\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: isEmptyResetValues\n ? false\n : keepStateOptions.keepDirty\n ? _formState.isDirty\n : keepStateOptions.keepValues\n ? _getDirty()\n : !!(\n keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)\n ),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: isEmptyResetValues\n ? {}\n : keepStateOptions.keepDirtyValues\n ? keepStateOptions.keepDefaultValues && _formValues\n ? getDirtyFields(_defaultValues, _formValues, undefined, fieldRefs)\n : _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues, undefined, fieldRefs)\n : keepStateOptions.keepDirty\n ? _formState.dirtyFields\n : keepStateOptions.keepValues\n ? getDirtyFields(\n _defaultValues,\n _formValues,\n undefined,\n fieldRefs,\n )\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n ...(!keepStateOptions.keepIsValidating &&\n (_formState.isValidating || !isEmptyObject(_formState.validatingFields))\n ? { validatingFields: {}, isValidating: false }\n : null),\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n ? _formState.isSubmitSuccessful\n : false,\n isSubmitting: false,\n defaultValues: _defaultValues as FormState<TFieldValues>['defaultValues'],\n });\n };\n\n const reset: UseFormReset<TFieldValues> = (formValues, keepStateOptions) =>\n _reset(\n isFunction(formValues)\n ? (formValues as Function)(_formValues as TFieldValues)\n : formValues,\n { ..._options.resetOptions, ...keepStateOptions },\n );\n\n const setFocus: UseFormSetFocus<TFieldValues> = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n\n if (fieldRef.focus) {\n setTimeout(() => {\n fieldRef.focus();\n options.shouldSelect &&\n isFunction(fieldRef.select) &&\n fieldRef.select();\n });\n }\n }\n };\n\n const _setFormState = (\n updatedFormState: Partial<FormState<TFieldValues>> & {\n name?: InternalFieldName;\n type?: EventType;\n values?: TFieldValues;\n },\n ) => {\n // `name`, `type`, and `values` describe the event that produced this\n // update, not the form's persisted state (they aren't part of\n // `FormState`). Merging them in would leak a stale `name`/`type` from\n // one event into a later, unrelated notification that doesn't specify\n // its own.\n const { name, type, values, ...formState } = updatedFormState;\n\n _formState = {\n ..._formState,\n ...formState,\n };\n };\n\n _subjects.state.subscribe({ next: _setFormState });\n\n const _resetDefaultValues = () =>\n isFunction(_options.defaultValues) &&\n (_options.defaultValues as Function)().then((values: TFieldValues) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n\n const resetDefaultValues: UseFormResetDefaultValues<TFieldValues> = (\n values,\n options = {},\n ) => {\n _defaultValues = cloneObject(values) as Partial<typeof _defaultValues>;\n\n if (!options.keepDirty) {\n const newDirtyFields = getDirtyFields(\n _defaultValues,\n _formValues,\n undefined,\n _fields,\n );\n _formState.dirtyFields = newDirtyFields as typeof _formState.dirtyFields;\n _formState.isDirty = !isEmptyObject(newDirtyFields);\n }\n\n if (!options.keepIsValid) {\n _setValid();\n }\n\n _subjects.state.next({\n ..._formState,\n defaultValues: _defaultValues as FormState<TFieldValues>['defaultValues'],\n });\n };\n\n const methods = {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _subscribe,\n _runSchema,\n _updateIsValidating,\n _focusError,\n _getWatch,\n _getDirty,\n _setValid,\n _setFieldArray,\n _setDisabledField,\n _setErrors,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _removeUnmounted,\n _disableForm,\n _subjects,\n _proxyFormState,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n _validationModeBeforeSubmit = getValidationModes(_options.mode);\n _validationModeAfterSubmit = getValidationModes(\n _options.reValidateMode,\n );\n shouldDisplayAllAssociatedErrors =\n _options.criteriaMode === VALIDATION_MODE.all;\n },\n },\n subscribe,\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n setValues,\n getValues,\n getErrors,\n reset,\n resetField,\n resetDefaultValues,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n\n return {\n ...methods,\n formControl: methods,\n };\n}\n"],"names":["isCheckBox"],"mappings":"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"}
|
package/dist/useController.d.ts
CHANGED
|
@@ -1,26 +1,14 @@
|
|
|
1
1
|
import type { FieldPath, FieldValues, UseControllerProps, UseControllerReturn } from './types';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Hook for controlled inputs. Returns `field`, `fieldState`, and `formState`.
|
|
4
|
+
* Re-renders are isolated to the hook level.
|
|
4
5
|
*
|
|
5
|
-
* @
|
|
6
|
-
* [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)
|
|
7
|
-
*
|
|
8
|
-
* @param props - the path name to the form field value, and validation rules.
|
|
9
|
-
*
|
|
10
|
-
* @returns field properties, field and form state. {@link UseControllerReturn}
|
|
6
|
+
* @see [API](https://react-hook-form.com/docs/usecontroller)
|
|
11
7
|
*
|
|
12
8
|
* @example
|
|
13
9
|
* ```tsx
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* return (
|
|
17
|
-
* <div>
|
|
18
|
-
* <input {...field} placeholder={props.name} />
|
|
19
|
-
* <p>{fieldState.isTouched && "Touched"}</p>
|
|
20
|
-
* <p>{formState.isSubmitted ? "submitted" : ""}</p>
|
|
21
|
-
* </div>
|
|
22
|
-
* );
|
|
23
|
-
* }
|
|
10
|
+
* const { field, fieldState } = useController({ control, name: "email" });
|
|
11
|
+
* return <input {...field} />;
|
|
24
12
|
* ```
|
|
25
13
|
*/
|
|
26
14
|
export declare function useController<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformedValues = TFieldValues>(props: UseControllerProps<TFieldValues, TName, TTransformedValues>): UseControllerReturn<TFieldValues, TName>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useController.d.ts","sourceRoot":"","sources":["../src/useController.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAGV,SAAS,EAET,WAAW,EAEX,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAKjB
|
|
1
|
+
{"version":3,"file":"useController.d.ts","sourceRoot":"","sources":["../src/useController.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAGV,SAAS,EAET,WAAW,EAEX,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAKjB;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAC/D,kBAAkB,GAAG,YAAY,EAEjC,KAAK,EAAE,kBAAkB,CAAC,YAAY,EAAE,KAAK,EAAE,kBAAkB,CAAC,GACjE,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,CAsO1C"}
|
package/dist/useFieldArray.d.ts
CHANGED
|
@@ -1,39 +1,14 @@
|
|
|
1
1
|
import type { FieldArrayPath, FieldValues, UseFieldArrayProps, UseFieldArrayReturn } from './types';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Hook for dynamic field arrays. Provides `fields` and mutation methods:
|
|
4
|
+
* `append`, `prepend`, `remove`, `insert`, `swap`, `move`, `update`, `replace`.
|
|
4
5
|
*
|
|
5
|
-
* @
|
|
6
|
-
* [API](https://react-hook-form.com/docs/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)
|
|
7
|
-
*
|
|
8
|
-
* @param props - useFieldArray props
|
|
9
|
-
*
|
|
10
|
-
* @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}
|
|
6
|
+
* @see [API](https://react-hook-form.com/docs/usefieldarray)
|
|
11
7
|
*
|
|
12
8
|
* @example
|
|
13
9
|
* ```tsx
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* defaultValues: {
|
|
17
|
-
* test: []
|
|
18
|
-
* }
|
|
19
|
-
* });
|
|
20
|
-
* const { fields, append } = useFieldArray({
|
|
21
|
-
* control,
|
|
22
|
-
* name: "test"
|
|
23
|
-
* });
|
|
24
|
-
*
|
|
25
|
-
* return (
|
|
26
|
-
* <form onSubmit={handleSubmit(data => console.log(data))}>
|
|
27
|
-
* {fields.map((item, index) => (
|
|
28
|
-
* <input key={item.id} {...register(`test.${index}.firstName`)} />
|
|
29
|
-
* ))}
|
|
30
|
-
* <button type="button" onClick={() => append({ firstName: "bill" })}>
|
|
31
|
-
* append
|
|
32
|
-
* </button>
|
|
33
|
-
* <input type="submit" />
|
|
34
|
-
* </form>
|
|
35
|
-
* );
|
|
36
|
-
* }
|
|
10
|
+
* const { fields, append } = useFieldArray({ control, name: "items" });
|
|
11
|
+
* return fields.map((f, i) => <input key={f.id} {...register(`items.${i}.name`)} />);
|
|
37
12
|
* ```
|
|
38
13
|
*/
|
|
39
14
|
export declare function useFieldArray<TFieldValues extends FieldValues = FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>, TKeyName extends string = 'id', TTransformedValues = TFieldValues>(props: UseFieldArrayProps<TFieldValues, TFieldArrayName, TKeyName, TTransformedValues>): UseFieldArrayReturn<TFieldValues, TFieldArrayName, TKeyName>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFieldArray.d.ts","sourceRoot":"","sources":["../src/useFieldArray.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useFieldArray.d.ts","sourceRoot":"","sources":["../src/useFieldArray.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAKV,cAAc,EAKd,WAAW,EAIX,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAKjB;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,eAAe,SAAS,cAAc,CAAC,YAAY,CAAC,GAClD,cAAc,CAAC,YAAY,CAAC,EAC9B,QAAQ,SAAS,MAAM,GAAG,IAAI,EAC9B,kBAAkB,GAAG,YAAY,EAEjC,KAAK,EAAE,kBAAkB,CACvB,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,kBAAkB,CACnB,GACA,mBAAmB,CAAC,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC,CA0d9D"}
|
package/dist/useForm.d.ts
CHANGED
|
@@ -1,31 +1,16 @@
|
|
|
1
1
|
import type { FieldValues, UseFormProps, UseFormReturn } from './types';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Core hook for managing a form. Returns all methods and state for
|
|
4
|
+
* registration, validation, and submission.
|
|
4
5
|
*
|
|
5
|
-
* @
|
|
6
|
-
* [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)
|
|
7
|
-
*
|
|
8
|
-
* @param props - form configuration and validation parameters.
|
|
9
|
-
*
|
|
10
|
-
* @returns methods - individual functions to manage the form state. {@link UseFormReturn}
|
|
6
|
+
* @see [API](https://react-hook-form.com/docs/useform)
|
|
11
7
|
*
|
|
12
8
|
* @example
|
|
13
9
|
* ```tsx
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* console.log(watch("example"));
|
|
19
|
-
*
|
|
20
|
-
* return (
|
|
21
|
-
* <form onSubmit={handleSubmit(onSubmit)}>
|
|
22
|
-
* <input defaultValue="test" {...register("example")} />
|
|
23
|
-
* <input {...register("exampleRequired", { required: true })} />
|
|
24
|
-
* {errors.exampleRequired && <span>This field is required</span>}
|
|
25
|
-
* <button>Submit</button>
|
|
26
|
-
* </form>
|
|
27
|
-
* );
|
|
28
|
-
* }
|
|
10
|
+
* const { register, handleSubmit, formState: { errors } } = useForm<FormValues>();
|
|
11
|
+
* <form onSubmit={handleSubmit(onSubmit)}>
|
|
12
|
+
* <input {...register("email", { required: true })} />
|
|
13
|
+
* </form>
|
|
29
14
|
* ```
|
|
30
15
|
*/
|
|
31
16
|
export declare function useForm<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues>(props?: UseFormProps<TFieldValues, TContext, TTransformedValues>): UseFormReturn<TFieldValues, TContext, TTransformedValues>;
|
package/dist/useForm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../src/useForm.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,WAAW,EAEX,YAAY,EACZ,aAAa,EACd,MAAM,SAAS,CAAC;AAIjB
|
|
1
|
+
{"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../src/useForm.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,WAAW,EAEX,YAAY,EACZ,aAAa,EACd,MAAM,SAAS,CAAC;AAIjB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CACrB,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,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CA4J3D"}
|