react-hook-form
Version:
Performant, flexible and extensible forms library for React Hooks
1 lines • 292 kB
Source Map (JSON)
{"version":3,"file":"index.esm.mjs","sources":["../src/utils/isCheckBoxInput.ts","../src/utils/isFileInput.ts","../src/utils/isDateObject.ts","../src/utils/isNullOrUndefined.ts","../src/utils/isObject.ts","../src/logic/getEventValue.ts","../src/utils/stringToPath.ts","../src/logic/getNullAncestorValue.ts","../src/logic/isNameInFieldArray.ts","../src/utils/isWeb.ts","../src/utils/cloneObject.ts","../src/constants.ts","../src/utils/isKey.ts","../src/utils/isUndefined.ts","../src/utils/get.ts","../src/utils/isBoolean.ts","../src/utils/isFunction.ts","../src/utils/set.ts","../src/useFormControlContext.ts","../src/logic/getProxyFormState.ts","../src/useIsomorphicLayoutEffect.ts","../src/utils/isPlainObject.ts","../src/utils/isPrimitive.ts","../src/utils/deepEqual.ts","../src/useResyncOnReconnect.ts","../src/useFormState.ts","../src/utils/isString.ts","../src/logic/generateWatchOutput.ts","../src/useWatch.ts","../src/useController.ts","../src/controller.tsx","../src/errorMessage.tsx","../src/logic/generateId.ts","../src/logic/getFocusFieldName.ts","../src/logic/getValidationModes.ts","../src/logic/isWatched.ts","../src/logic/iterateFieldsByAction.ts","../src/logic/updateFieldArrayRootError.ts","../src/utils/isEmptyObject.ts","../src/utils/isHTMLElement.ts","../src/utils/isRadioInput.ts","../src/utils/isRegex.ts","../src/logic/appendErrors.ts","../src/logic/getCheckboxValue.ts","../src/logic/getRadioValue.ts","../src/logic/getValidateError.ts","../src/logic/getValueAndMessage.ts","../src/logic/validateField.ts","../src/utils/convertToArrayPayload.ts","../src/utils/append.ts","../src/utils/fillEmptyArray.ts","../src/utils/insert.ts","../src/utils/move.ts","../src/utils/prepend.ts","../src/utils/compact.ts","../src/utils/remove.ts","../src/utils/swap.ts","../src/utils/unset.ts","../src/utils/update.ts","../src/useFieldArray.ts","../src/fieldArray.tsx","../src/utils/flatten.ts","../src/utils/formData.ts","../src/utils/json.ts","../src/utils/noop.ts","../src/useFormContext.tsx","../src/form.tsx","../src/formState.tsx","../src/utils/createSubject.ts","../src/utils/extractFormValues.ts","../src/utils/has.ts","../src/utils/isMultipleSelect.ts","../src/utils/isRadioOrCheckbox.ts","../src/utils/live.ts","../src/logic/collectDirtyFieldNames.ts","../src/utils/objectHasFunction.ts","../src/logic/getDirtyFields.ts","../src/logic/getFieldArrayItemNames.ts","../src/logic/getFieldValueAs.ts","../src/logic/getFieldValue.ts","../src/logic/getResolverOptions.ts","../src/logic/getRuleValue.ts","../src/logic/hasPromiseValidation.ts","../src/logic/hasValidation.ts","../src/logic/schemaErrorLookup.ts","../src/logic/shouldRenderFormState.ts","../src/logic/shouldSubscribeByName.ts","../src/logic/skipValidation.ts","../src/logic/unsetEmptyArray.ts","../src/logic/createFormControl.ts","../src/useForm.ts","../src/watch.tsx"],"sourcesContent":["import type { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'checkbox';\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 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 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","const FIELD_PATH_RE = /[.[\\]'\"]/;\n\nexport default (input: string): string[] =>\n input.split(FIELD_PATH_RE).filter(Boolean);\n","import stringToPath from '../utils/stringToPath';\n\nexport default function getNullAncestorValue(\n control: { _formValues: unknown; _defaultValues: unknown },\n name: string,\n) {\n const segments = stringToPath(name);\n let formValues: any = control._formValues;\n let defaultValues: any = control._defaultValues;\n\n for (let i = 0; i < segments.length - 1; i++) {\n const key = segments[i];\n formValues = formValues == null ? formValues : formValues[key];\n defaultValues = defaultValues == null ? defaultValues : defaultValues[key];\n\n if (formValues === null || defaultValues === null) {\n return null;\n }\n }\n\n return undefined;\n}\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","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 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","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","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","export default (value: unknown): value is boolean => typeof value === 'boolean';\n","export default (value: unknown): value is Function =>\n typeof value === 'function';\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 React from 'react';\n\nimport type { Control, FieldValues } from './types';\n\n/**\n * Separate context for `control` to prevent unnecessary rerenders.\n * Internal hooks that only need control use this instead of full form context.\n */\nexport const HookFormControlContext = React.createContext<Control | null>(null);\nHookFormControlContext.displayName = 'HookFormControlContext';\n\n/**\n * @internal Internal hook to access only control from context.\n */\nexport const useFormControlContext = <\n TFieldValues extends FieldValues,\n TContext = any,\n TTransformedValues = TFieldValues,\n>(): Control<TFieldValues, TContext, TTransformedValues> =>\n React.useContext(HookFormControlContext) as Control<\n TFieldValues,\n TContext,\n TTransformedValues\n >;\n","import { VALIDATION_MODE } from '../constants';\nimport type { Control, FieldValues, FormState, ReadFormState } from '../types';\n\nexport default <\n TFieldValues extends FieldValues,\n TContext = unknown,\n TTransformedValues = TFieldValues,\n>(\n formState: FormState<TFieldValues>,\n control: Control<TFieldValues, TContext, TTransformedValues>,\n localProxyFormState?: ReadFormState,\n isRoot = true,\n) => {\n const result = {} as typeof formState;\n\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key as keyof FormState<TFieldValues> & keyof ReadFormState;\n\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n\n return result;\n};\n","import React from 'react';\n\nimport isWeb from './utils/isWeb';\n\nexport const useIsomorphicLayoutEffect = isWeb\n ? React.useLayoutEffect\n : React.useEffect;\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 React from 'react';\n\nimport cloneObject from './utils/cloneObject';\nimport deepEqual from './utils/deepEqual';\n\nexport function useResyncOnReconnect<T>(getInitialValue?: () => T) {\n const _connected = React.useRef(false);\n const _initialized = React.useRef(false);\n const _prevValue = React.useRef<T | undefined>(undefined);\n const _renderCount = React.useRef(0);\n\n _renderCount.current++;\n\n if (!_initialized.current && getInitialValue) {\n _initialized.current = true;\n _prevValue.current = cloneObject(getInitialValue());\n }\n\n const resyncIfNeeded = React.useCallback(\n (\n enabled: boolean,\n getCurrentValue: () => T,\n setValue: (value: T) => void,\n ) => {\n if (\n enabled &&\n (_connected.current ||\n (_initialized.current && _renderCount.current > 1))\n ) {\n const currentValue = getCurrentValue();\n\n if (!deepEqual(_prevValue.current, currentValue)) {\n setValue(currentValue);\n }\n }\n\n _connected.current = true;\n },\n [],\n );\n\n const snapshot = React.useCallback(\n (enabled: boolean, getCurrentValue: () => T) => {\n if (enabled) {\n _prevValue.current = cloneObject(getCurrentValue());\n }\n },\n [],\n );\n\n return { resyncIfNeeded, snapshot };\n}\n","import React from 'react';\n\nimport getProxyFormState from './logic/getProxyFormState';\nimport type {\n FieldValues,\n FormState,\n UseFormStateProps,\n UseFormStateReturn,\n} from './types';\nimport { useFormControlContext } from './useFormControlContext';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\nimport { useResyncOnReconnect } from './useResyncOnReconnect';\n\n/**\n * Subscribes to form state with re-renders isolated to this hook.\n * Optionally scope to specific field names to minimize re-render surface.\n *\n * @see [API](https://react-hook-form.com/docs/useformstate)\n *\n * @example\n * ```tsx\n * const { errors, isDirty } = useFormState({ control, name: \"email\" });\n * ```\n */\nexport function useFormState<\n TFieldValues extends FieldValues = FieldValues,\n TTransformedValues = TFieldValues,\n>(\n props?: UseFormStateProps<TFieldValues, TTransformedValues>,\n): UseFormStateReturn<TFieldValues> {\n const formControl = useFormControlContext<\n TFieldValues,\n unknown,\n TTransformedValues\n >();\n const { control = formControl, disabled, name, exact } = props || {};\n\n const getCurrentFormState = () => ({\n ...control._formState,\n defaultValues:\n control._defaultValues as FormState<TFieldValues>['defaultValues'],\n });\n\n const [formState, updateFormState] =\n React.useState<FormState<TFieldValues>>(getCurrentFormState);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n validatingFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n\n const { resyncIfNeeded, snapshot } =\n useResyncOnReconnect<FormState<TFieldValues>>(getCurrentFormState);\n\n useIsomorphicLayoutEffect(() => {\n resyncIfNeeded(!disabled, getCurrentFormState, updateFormState);\n\n const unsubscribe = control._subscribe({\n name,\n formState: _localProxyFormState.current,\n exact,\n callback: (formState) => {\n !disabled &&\n updateFormState({\n ...control._formState,\n ...formState,\n defaultValues:\n control._defaultValues as FormState<TFieldValues>['defaultValues'],\n });\n },\n });\n\n return () => {\n unsubscribe();\n snapshot(!disabled, getCurrentFormState);\n };\n }, [control, name, disabled, exact, resyncIfNeeded, snapshot]);\n\n React.useEffect(() => {\n _localProxyFormState.current.isValid && control._setValid(true);\n }, [control]);\n\n return React.useMemo(\n () =>\n getProxyFormState(\n formState,\n control,\n _localProxyFormState.current,\n false,\n ),\n [formState, control],\n );\n}\n","export default (value: unknown): value is string => typeof value === 'string';\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 React from 'react';\n\nimport generateWatchOutput from './logic/generateWatchOutput';\nimport deepEqual from './utils/deepEqual';\nimport type {\n Control,\n DeepPartialSkipArrayKey,\n FieldPath,\n FieldPathValue,\n FieldPathValues,\n FieldValues,\n InternalFieldName,\n UseWatchProps,\n} from './types';\nimport { useFormControlContext } from './useFormControlContext';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\nimport { useResyncOnReconnect } from './useResyncOnReconnect';\n\n/** Watches the entire form; re-renders when any value changes. */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TTransformedValues = TFieldValues,\n>(props: {\n name?: undefined;\n defaultValue?: DeepPartialSkipArrayKey<TFieldValues>;\n control?: Control<TFieldValues, any, TTransformedValues>;\n disabled?: boolean;\n exact?: boolean;\n compute?: undefined;\n}): DeepPartialSkipArrayKey<TFieldValues>;\n/** Watches a single field by name. */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n TTransformedValues = TFieldValues,\n>(props: {\n name: TFieldName;\n defaultValue?: FieldPathValue<TFieldValues, TFieldName>;\n control?: Control<TFieldValues, any, TTransformedValues>;\n disabled?: boolean;\n exact?: boolean;\n compute?: undefined;\n}): FieldPathValue<TFieldValues, TFieldName>;\n/** Watches the entire form and derives a value via `compute`. */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TTransformedValues = TFieldValues,\n TComputeValue = unknown,\n>(props: {\n name?: undefined;\n defaultValue?: DeepPartialSkipArrayKey<TFieldValues>;\n control?: Control<TFieldValues, any, TTransformedValues>;\n disabled?: boolean;\n exact?: boolean;\n compute: (formValues: TFieldValues) => TComputeValue;\n}): TComputeValue;\n/** Watches a single field and derives a value via `compute`. */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n TTransformedValues = TFieldValues,\n TComputeValue = unknown,\n>(props: {\n name: TFieldName;\n defaultValue?: FieldPathValue<TFieldValues, TFieldName>;\n control?: Control<TFieldValues, any, TTransformedValues>;\n disabled?: boolean;\n exact?: boolean;\n compute: (\n fieldValue: FieldPathValue<TFieldValues, TFieldName>,\n ) => TComputeValue;\n}): TComputeValue;\n/** Watches multiple fields by name array. */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldNames extends readonly FieldPath<TFieldValues>[] =\n readonly FieldPath<TFieldValues>[],\n TTransformedValues = TFieldValues,\n>(props: {\n name: readonly [...TFieldNames];\n defaultValue?: DeepPartialSkipArrayKey<TFieldValues>;\n control?: Control<TFieldValues, any, TTransformedValues>;\n disabled?: boolean;\n exact?: boolean;\n compute?: undefined;\n}): FieldPathValues<TFieldValues, TFieldNames>;\n/** Watches multiple fields and derives a value via `compute`. */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldNames extends readonly FieldPath<TFieldValues>[] =\n readonly FieldPath<TFieldValues>[],\n TTransformedValues = TFieldValues,\n TComputeValue = unknown,\n>(props: {\n name: readonly [...TFieldNames];\n defaultValue?: DeepPartialSkipArrayKey<TFieldValues>;\n control?: Control<TFieldValues, any, TTransformedValues>;\n disabled?: boolean;\n exact?: boolean;\n compute: (\n fieldValue: FieldPathValues<TFieldValues, TFieldNames>,\n ) => TComputeValue;\n}): TComputeValue;\n/** Watches the entire form; reads `control` from `FormProvider` context. */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n>(): DeepPartialSkipArrayKey<TFieldValues>;\n/**\n * Subscribes to field value changes and isolates re-renders to the hook level.\n *\n * @see [API](https://react-hook-form.com/docs/usewatch)\n *\n * @example\n * ```tsx\n * const email = useWatch({ control, name: \"email\" });\n * const all = useWatch({ control });\n * const adult = useWatch({ control, name: \"age\", compute: (v) => v >= 18 });\n * ```\n */\nexport function useWatch<TFieldValues extends FieldValues>(\n props?: UseWatchProps<TFieldValues>,\n) {\n const formControl = useFormControlContext<TFieldValues>();\n const {\n control = formControl,\n name,\n defaultValue,\n disabled,\n exact,\n compute,\n } = props || {};\n const _defaultValue = React.useRef(defaultValue);\n const _compute = React.useRef(compute);\n\n const _prevControl = React.useRef(control);\n const _prevName = React.useRef(name);\n\n _compute.current = compute;\n\n const getInitialOutput = () => {\n const defaultValue = control._getWatch(\n name as InternalFieldName,\n _defaultValue.current as DeepPartialSkipArrayKey<TFieldValues>,\n );\n\n return _compute.current ? _compute.current(defaultValue) : defaultValue;\n };\n\n const [value, updateValue] = React.useState(getInitialOutput);\n const _computeFormValues = React.useRef<unknown>(value);\n\n const getCurrentOutput = React.useCallback(\n (values?: TFieldValues) => {\n const formValues = generateWatchOutput(\n name as InternalFieldName | InternalFieldName[],\n control._names,\n values || control._formValues,\n false,\n _defaultValue.current,\n );\n\n return _compute.current ? _compute.current(formValues) : formValues;\n },\n [control._formValues, control._names, name],\n );\n\n const refreshValue = React.useCallback(\n (values?: TFieldValues) => {\n if (!disabled) {\n const formValues = generateWatchOutput(\n name as InternalFieldName | InternalFieldName[],\n control._names,\n values || control._formValues,\n false,\n _defaultValue.current,\n );\n\n if (_compute.current) {\n const computedFormValues = _compute.current(formValues);\n\n if (!deepEqual(computedFormValues, _computeFormValues.current)) {\n updateValue(computedFormValues);\n _computeFormValues.current = computedFormValues;\n }\n } else {\n updateValue(formValues);\n }\n }\n },\n [control._formValues, control._names, disabled, name],\n );\n\n const { resyncIfNeeded, snapshot } =\n useResyncOnReconnect<unknown>(getInitialOutput);\n\n const _refreshValue = React.useRef(refreshValue);\n _refreshValue.current = refreshValue;\n const _getCurrentOutput = React.useRef(getCurrentOutput);\n _getCurrentOutput.current = getCurrentOutput;\n\n useIsomorphicLayoutEffect(() => {\n if (\n _prevControl.current !== control ||\n !deepEqual(_prevName.current, name)\n ) {\n _prevControl.current = control;\n _prevName.current = name;\n _refreshValue.current();\n } else {\n resyncIfNeeded(\n !disabled,\n () => _getCurrentOutput.current(),\n (currentValue) => {\n updateValue(currentValue);\n _computeFormValues.current = currentValue;\n },\n );\n }\n\n const unsubscribe = control._subscribe({\n name,\n formState: {\n values: true,\n },\n exact,\n callback: (formState) => {\n _refreshValue.current(formState.values);\n },\n });\n\n return () => {\n unsubscribe();\n snapshot(!disabled, () => _getCurrentOutput.current());\n };\n }, [control, exact, name, disabled, resyncIfNeeded, snapshot]);\n\n React.useEffect(() => control._removeUnmounted());\n\n // If name or control changed for this render, synchronously reflect the\n // latest value so callers (like useController) see the correct value\n // immediately on the same render.\n\n // Optimize: Check control reference first before expensive deepEqual\n const controlChanged = _prevControl.current !== control;\n const prevName = _prevName.current;\n\n // `null`/`undefined` are valid watched values, so a boolean flag (rather\n // than a sentinel return value) decides whether to return the freshly\n // computed output instead of the possibly-stale state value.\n const shouldReturnImmediate = React.useMemo(() => {\n if (disabled) {\n return false;\n }\n\n const nameChanged = !controlChanged && !deepEqual(prevName, name);\n return controlChanged || nameChanged;\n }, [disabled, controlChanged, name, prevName]);\n\n return shouldReturnImmediate ? getCurrentOutput() : value;\n}\n","import React from 'react';\n\nimport getEventValue from './logic/getEventValue';\nimport getNullAncestorValue from './logic/getNullAncestorValue';\nimport isNameInFieldArray from './logic/isNameInFieldArray';\nimport cloneObject from './utils/cloneObject';\nimport get from './utils/get';\nimport isBoolean from './utils/isBoolean';\nimport isFunction from './utils/isFunction';\nimport isUndefined from './utils/isUndefined';\nimport set from './utils/set';\nimport { EVENTS } from './constants';\nimport type {\n ControllerFieldState,\n Field,\n FieldPath,\n FieldPathValue,\n FieldValues,\n InternalFieldName,\n UseControllerProps,\n UseControllerReturn,\n} from './types';\nimport { useFormControlContext } from './useFormControlContext';\nimport { useFormState } from './useFormState';\nimport { useWatch } from './useWatch';\n\n/**\n * Hook for controlled inputs. Returns `field`, `fieldState`, and `formState`.\n * Re-renders are isolated to the hook level.\n *\n * @see [API](https://react-hook-form.com/docs/usecontroller)\n *\n * @example\n * ```tsx\n * const { field, fieldState } = useController({ control, name: \"email\" });\n * return <input {...field} />;\n * ```\n */\nexport function useController<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n TTransformedValues = TFieldValues,\n>(\n props: UseControllerProps<TFieldValues, TName, TTransformedValues>,\n): UseControllerReturn<TFieldValues, TName> {\n const formControl = useFormControlContext<\n TFieldValues,\n unknown,\n TTransformedValues\n >();\n const {\n name,\n disabled,\n control = formControl,\n shouldUnregister,\n defaultValue,\n exact = true,\n } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n\n const defaultValueMemo = React.useMemo(() => {\n const resolved = get(\n control._formValues,\n name,\n get(control._defaultValues, name, defaultValue),\n );\n\n return isUndefined(resolved)\n ? getNullAncestorValue(control, name)\n : resolved;\n }, [control, name, defaultValue]);\n\n const value = useWatch({\n control,\n name,\n defaultValue: defaultValueMemo,\n exact,\n }) as FieldPathValue<TFieldValues, TName>;\n\n const formState = useFormState({\n control,\n name,\n exact,\n });\n\n const _props = React.useRef(props);\n const _proxyRef = React.useRef<any>(null);\n\n const _registerProps = React.useRef(\n control.register(name, {\n ...props.rules,\n value,\n ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),\n }),\n );\n\n _props.current = props;\n\n const fieldState = React.useMemo(\n () =>\n Object.defineProperties(\n {},\n {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n isValidating: {\n enumerable: true,\n get: () => !!get(formState.validatingFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n },\n ) as ControllerFieldState,\n [formState, name],\n );\n\n const onChange = React.useCallback(\n (event: unknown) => {\n const value = getEventValue(event);\n\n if (!get(control._fields, name)) {\n _registerProps.current = control.register(name, {\n ..._props.current.rules,\n value,\n });\n }\n\n return _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name as InternalFieldName,\n },\n type: EVENTS.CHANGE,\n });\n },\n [name, control],\n );\n\n const onBlur = React.useCallback(\n () =>\n _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name as InternalFieldName,\n },\n type: EVENTS.BLUR,\n }),\n [name, control._formValues],\n );\n\n const ref = React.useCallback(\n (elm: any) => {\n if (elm) {\n _proxyRef.current = {\n focus: () => isFunction(elm.focus) && elm.focus(),\n select: () => isFunction(elm.select) && elm.select(),\n setCustomValidity: (message: string) =>\n isFunction(elm.setCustomValidity) && elm.setCustomValidity(message),\n reportValidity: () =>\n isFunction(elm.reportValidity) && elm.reportValidity(),\n };\n }\n\n const field = get(control._fields, name);\n\n if (field && field._f && elm) {\n field._f.ref = _proxyRef.current;\n }\n },\n [control._fields, name],\n );\n\n const field = React.useMemo(\n () => ({\n name,\n value,\n ...(isBoolean(disabled) || formState.disabled\n ? { disabled: formState.disabled || disabled }\n : {}),\n onChange,\n onBlur,\n ref,\n }),\n [name, disabled, formState.disabled, onChange, onBlur, ref, value],\n );\n\n React.useEffect(() => {\n const _shouldUnregisterField =\n control._options.shouldUnregister || shouldUnregister;\n\n _registerProps.current = control.register(name, {\n ..._props.current.rules,\n ...(isBoolean(_props.current.disabled)\n ? { disabled: _props.current.disabled }\n : {}),\n });\n\n const updateMounted = (name: InternalFieldName, value: boolean) => {\n const field: Field = get(control._fields, name);\n\n if (field && field._f) {\n field._f.mount = value;\n }\n };\n\n updateMounted(name, true);\n\n if (_shouldUnregisterField) {\n const value = cloneObject(\n get(\n shouldUnregister\n ? control._defaultValues\n : control._options.values || control._defaultValues,\n name,\n get(\n control._options.defaultValues,\n name,\n _props.current.defaultValue,\n ),\n ),\n );\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n\n !isArrayField && control.register(name);\n\n if (_proxyRef.current) {\n const field: Field = get(control._fields, name);\n if (field && field._f) {\n field._f.ref = _proxyRef.current;\n }\n }\n\n return () => {\n (\n isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField\n )\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n\n React.useEffect(() => {\n control._setDisabledField({\n disabled,\n name,\n });\n }, [disabled, name, control]);\n\n return React.useMemo(\n () => ({\n field,\n formState,\n fieldState,\n }),\n [field, formState, fieldState],\n );\n}\n","import type { ControllerProps, FieldPath, FieldValues } from './types';\nimport { useController } from './useController';\n\n/**\n * Component wrapper around `useController` for controlled inputs.\n *\n * @see [API](https://react-hook-form.com/docs/usecontroller/controller)\n *\n * @example\n * ```tsx\n * <Controller\n * control={control}\n * name=\"test\"\n * render={({ field, fieldState, formState }) => <input {...field} />}\n * />\n * ```\n */\nexport const Controller = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n TTransformedValues = TFieldValues,\n>(\n props: ControllerProps<TFieldValues, TName, TTransformedValues>,\n) =>\n props.render(useController<TFieldValues, TName, TTransformedValues>(props));\n","import React from 'react';\n\nimport type {\n Control,\n FieldPath,\n FieldValues,\n Message,\n MultipleFieldErrors,\n} from './types';\nimport { useFormState } from './useFormState';\nimport { get } from './utils';\n\nexport type ErrorMessageProps<TFieldValues extends FieldValues = FieldValues> =\n {\n as?: React.ElementType;\n control?: Control<TFieldValues>;\n name: FieldPath<TFieldValues> | `root.${string}` | 'root';\n render?: (data: {\n message: Message;\n messages?: MultipleFieldErrors;\n }) => React.ReactNode;\n };\n\n/**\n * Displays the validation error for a single field.\n * Reads from `control` when provided, otherwise from the nearest `FormProvider`.\n *\n * @see [API](https://react-hook-form.com/docs/useformstate/errormessage)\n *\n * @example\n * ```tsx\n * <ErrorMessage control={control} name=\"email\" as=\"p\" />\n * <ErrorMessage name=\"email\" as=\"span\" />\n * <ErrorMessage control={control} name=\"email\"\n * render={({ message }) => <Alert>{message}</Alert>} />\n * ```\n */\nexport const ErrorMessage = <TFieldValues extends FieldValues = FieldValues>({\n as,\n control,\n name,\n render,\n}: ErrorMessageProps<TFieldValues>) => {\n const { errors } = useFormState<TFieldValues>({\n control,\n name: name as FieldPath<TFieldValues>,\n });\n\n const error = get(errors, name);\n\n if (!error) {\n return null;\n }\n\n const message = error.message || '';\n\n if (render) {\n return render({ message, messages: error.types }) as React.ReactElement;\n }\n\n return React.createElement(as || React.Fragment, null, message);\n};\n","export default () =>\n typeof crypto !== 'undefined' && crypto.randomUUID\n ? crypto.randomUUID()\n : 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n","import type { FieldArrayMethodProps, InternalFieldName } from '../types';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n name: InternalFieldName,\n index: number,\n options: FieldArrayMethodProps = {},\n): string =>\n options.shouldFocus || isUndefined(options.shouldFocus)\n ? options.focusName ||\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n : '';\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 { 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 { 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 { 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 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 HTMLInputElement =>\n element.type === 'radio';\n","export default (value: unknown): value is RegExp => value instanceof RegExp;\n","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","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","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 { 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","export default <T>(value: T) => (Array.isArray(value) ? value : [value]);\n","import convertToArrayPayload from './convertToArrayPayload';\n\nexport default <T>(data: T[], value: T | T[]): T[] => [\n ...data,\n ...convertToArrayPayload(value),\n];\n","export default <T>(value: T | T[]): undefined[] | undefined =>\n Array.isArray(value) ? value.map(() => undefined) : undefined;\n","import convertToArrayPayload from './convertToArrayPayload';\n\nexport default function insert<T>(data: T[], index: number): (T | undefined)[];\nexport default function insert<T>(\n data: T[],\n index: number,\n value: T | T[],\n): T[];\nexport default function insert<T>(\n data: T[],\n index: number,\n value?: T | T[],\n): (T | undefined)[] {\n return [\n ...data.slice(0, index),\n ...convertToArrayPayload(value),\n ...data.slice(index),\n ];\n}\n","import isUndefined from './isUndefined';\n\nexport default <T>(\n data: (T | undefined)[],\n from: number,\n to: number,\n): (T | undefined)[] => {\n if (!Array.isArray(data)) {\n return [];\n }\n\n if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n\n return data;\n};\n","import convertToArrayPayload from './convertToArrayPayload';\n\nexport default <T>(data: T[], value: T | T[]): T[] => [\n ...convertToArrayPayload(value),\n ...convertToArrayPayload(data),\n];\n","export default <TValue>(value: TValue[]) =>\n Array.isArray(value) ? value.filter(Boolean) : [];\n","import compact from './compact';\nimport convertToArrayPayload from './convertToArrayPayload';\nimport isUndefined from './isUndefined';\n\nfunction removeAtIndexes<T>(data: T[], indexes: number[]): T[] {\n let i = 0;\n const temp = [...data];\n\n for (const index of indexes) {\n temp.splice(index - i, 1);\n i++;\n }\n\n return compact(temp).length ? temp : [];\n}\n\nexport default <T>(data: T[], index?: number | number[]): T[] =>\n isUndefined(index)\n ? []\n : removeAtIndexes(\n data,\n (convertToArrayPayload(index) as number[]).sort((a, b) => a - b),\n );\n","export default <T>(data: T[], indexA: number, indexB: number): void => {\n [data[indexA], data[indexB]] = [data[indexB], data[indexA]];\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","export default <T>(fieldValues: T[], index: number, value: T) => {\n fieldValues[index] = value;\n return fieldValues;\n};\n","import React from 'react';\n\nimport generateId from './logic/generateId';\nimport getFocusFieldName from './logic/getFocusFieldName';\nimport getValidationModes from './logic/getValidationModes';\nimport isWatched from './logic/isWatched';\nimport iterateFieldsByAction from './logic/iterateFieldsByAction';\nimport updateFieldArrayRootError from './logic/updateFieldArrayRootError';\nimport validateField from './logic/validateField';\nimport appendAt from './utils/append';\nimport cloneObject from './utils/cloneObject';\nimport convertToArrayPayload from './utils/convertToArrayPayload';\nimport deepEqual from './utils/deepEqual';\nimport fillEmptyArray from './utils/fillEmptyArray';\nimport get from './utils/get';\nimport insertAt from './utils/insert';\nimport isBoolean from './utils/isBoolean';\nimport isEmptyObject from './utils/isEmptyObject';\nimport isObject from './utils/isObject';\nimport moveArrayAt from './utils/move';\nimport prependAt from './utils/prepend';\nimport removeArrayAt from './utils/remove';\nimport set from './utils/set';\nimport swapArrayAt from './utils/swap';\nimport unset from './utils/unset';\nimport updateAt from './utils/update';\nimport { VALIDATION_MODE } from './constants';\nimport type {\n Control,\n Field,\n FieldArray,\n FieldArrayMethodProps,\n FieldArrayPath,\n FieldArrayWithId,\n FieldError,\n FieldErrors,\n FieldPath,\n FieldValues,\n FormState,\n InternalFieldName,\n RegisterOptions,\n UseFieldArrayProps,\n UseFieldArrayReturn,\n} from './types';\nimport { useFormControlContext } from './useFormControlContext';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\nimport { useResyncOnReconnect } from './useResyncOnReconnect';\n\n/**\n * Hook for dynamic field arrays. Provides `fields` and mutation methods:\n * `append`, `prepend`, `remove`, `insert`, `swap`, `move`, `update`, `replace`.\n *\n * @see [API](https://react-hook-form.com/docs/usefieldarray)\n *\n * @example\n * ```tsx\n * const { fields, append } = useFieldArray({ control, name: \"items\" });\n * return fields.map((f, i) => <input key={f.id} {...register(`items.${i}.name`)} />);\n * ```\n */\nexport function useFieldArray<\n TFieldValues extends FieldValues = FieldValues,\n TFieldArrayName extends FieldArrayPath<TFieldValues> =\n FieldArrayPath<TFieldValues>,\n TKeyName extends string = 'id',\n TTransformedValues = TFieldValues,\n>(\n props: UseFieldArrayProps<\n TFieldValues,\n TFieldArrayName,\n TKeyName,\n TTransformedValues\n >,\n): UseFieldArrayReturn<TFieldValues, TFieldArrayName, TKeyName> {\n const formControl = useFormControlContext<\n TFieldValues,\n unknown,\n TTransformedValues\n >();\n const {\n control = formControl,\n name,\n keyName = 'id',\n disabled,\n shouldUnregister,\n rules,\n } = props;\n const getCurrentFieldArray = () => control._getFieldArray(name);\n\n const [fields, setFields] = React.useState(getCurrentFieldArray);\n const ids = React.useRef<string[]>(\n control._getFieldArray(name).map(generateId),\n );\n\n const _actioned = React.useRef(false);\n\n const { resyncIfNeeded, snapshot } =\n useResyncOnReconnect(getCurrentFieldArray);\n const _prevControl = React.useRef(control);\n const _prevName = React.useRef(name);\n\n if (!disabled) {\n control._names.array.add(name);\n }\n\n React.useMemo(\n () =>\n !disabled &&\n rules &&\n fields.length >= 0 &&\n (control as Control<TFieldValues, unknown, TTransformedValues>).register(\n name as FieldPath<TFieldValues>,\n rules as RegisterOptions<TFieldValues>,\n ),\n [control, name, fields.length, rules, disabled],\n );\n\n useIsomorphicLayoutEffect(() => {\n if (disabled) {\n return;\n }\n\n if (_prevControl.current === control && _prevName.current === name) {\n resyncIfNeeded(true, getCurrentFieldArray, (fieldValues) => {\n setFields(fieldValues);\n ids.current = fieldValues.map(generateId);\n });\n } else {\n _prevControl.current = control;\n _prevName.current = name;\n\n const fieldValues = getCurrentFieldArray();\n if (!deepEqual(fields, fieldValues)) {\n setFields(fieldValues);\n ids.current = fieldValues.map(generateId);\n }\n snapshot(true, getCurrentFieldArray);\n }\n\n const unsubscribe = control._subjects.array.subscribe({\n next: ({\n values,\n name: fieldArrayName,\n }: {\n values?: FieldValues;\n name?: InternalFieldName;\n }) => {\n if (fieldArrayName === name || !fieldArrayName) {\n const fieldValues = get(values, name);\n if (Array.isArray(fieldValues)) {\n setFields(fieldValues);\n ids.current = fieldValues.map(generateId);\n } else if (!fieldArrayName) {\n setFields([]);\n ids.current = [];\n }\n }\n },\n }).unsubscribe;\n\n return () => {\n unsubscribe();\n snapshot(true, getCurrentFieldArray);\n };\n }, [control, name, disabled, resyncIfNeeded, snapshot]);\n\n const updateValues = React.useCallback(\n <\n T extends Partial<\n FieldArrayWithId<TFieldValues, TFieldArrayName, TKeyName>\n >[],\n >(\n updatedFieldArrayValues: T,\n ) => {\n _actioned.current = true;\n control._setFieldArray(name, updatedFieldArrayValues);\n },\n [control, name],\n );\n\n const append = (\n value:\n | Partial<FieldArray<TFieldValues, TFieldArrayName>>\n | Partial<FieldArray<TFieldValues, TFieldArrayName>>[],\n options?: FieldArrayMethodProps,\n ) => {\n if (disabled) {\n return;\n }\n\n const appendValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = appendAt(\n control._getFieldArray(name),\n appendValue,\n );\n control._names.focus = getFocusFieldName(\n name,\n updatedFieldArrayValues.length - 1,\n options,\n );\n ids.current = appendAt(ids.current, appendValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, appendAt, {\n argA: fillEmptyArray(value),\n });\n };\n\n const prepend = (\n value:\n | Partial<FieldArray<TFieldValues, TFieldArrayName>>\n | Partial<FieldArray<TFieldValues, TFieldArrayName>>[],\n options?: FieldArrayMethodProps,\n ) => {\n if (disabled) {\n return;\n }\n\n const prependValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = prependAt(\n control._getFieldArray(name),\n prependValue,\n );\n control._names.focus = getFocusFieldName(name, 0, options);\n ids.current = prependAt(ids.current, prependValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, prependAt, {\n argA: fillEmptyArray(value),\n });\n };\n\n const remove = (index?: number | number[]) => {\n if (disabled) {\n return;\n }\n\n const updatedFieldArrayValues: Partial<\n FieldArrayWithId<TFieldValues, TFieldArrayName, TKeyName>\n >[] = removeArrayAt(control._getFieldArray(name), index);\n ids.current = removeArrayAt(ids.current, index);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n !Array.isArray(get(control._fields, name)) &&\n set(control._fields, name, undefined);\n control._setFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\n argA: index,\n });\n };\n\n const insert = (\n index: number,\n value:\n | Partial<FieldArray<TFieldValues, TFieldArrayName>>\n | Partial<FieldArray<TFieldValues, TFieldArrayName>>[],\n options?: FieldArrayMethodProps,\n ) => {\n if (disabled) {\n return;\n }\n\n const insertValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = insertAt(\n control._getFieldArray(name),\n index,\n insertValue,\n );\n control._names.focus = getFocusFieldName(name, index, options);\n ids.current = insertAt(ids.current, index, insertValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, insertAt, {\n argA: index,\n argB: fillEmptyArray(value),\n });\n };\n\n const swap = (indexA: number, indexB: number) => {\n if (disabled) {\n return;\n }\n\n const updatedFieldArrayValues = control._getFieldArray(name);\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\n swapArrayAt(ids.current, indexA, indexB);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(\n name,\n updatedFieldArrayValues,\n swapArrayAt,\n {\n argA: indexA,\n argB: indexB,\n },\n false,\n );\n };\n\n const move = (from: number, to: number) => {\n if (disabled) {\n return;\n }\n\n const updatedFieldArrayValues = control._getFieldArray(name);\n moveArrayAt(updatedFieldArrayValues, from, to);\n moveArrayAt(ids.current, from, to);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(\n name,\n updatedFieldArrayValues,\n moveArrayAt,\n {\n argA: from,\n argB: to,\n },\n false,\n );\n };\n\n const update = (\n index: number,\n value: FieldArray<TFieldValues, TFieldArrayName>,\n ) => {\n if (disabled) {\n return;\n }\n\n const updateValue = cloneObject(value);\n const updatedFieldArrayValues = updateAt(\n control._getFieldArray<\n FieldArrayWithId<TFieldValues, TFieldArrayName, TKeyName>\n >(name),\n index,\n updateValue as FieldArrayWithId<TFieldValues, TFieldArrayName, TKeyName>,\n );\n ids.current = [...updatedFieldArrayValues].map((item, i) =>\n !item || i === index ? generateId() : ids.current[i],\n );\n updateValues(updatedFieldArrayValues);\n setFields([...updatedFieldArrayValues]);\n control._setFieldArray(name, updatedFieldArrayValues, updateAt, {\n argA: index,\n argB: fillEmptyArray(value),\n });\n };\n\n const replace = (\n value:\n | Partial<FieldArray<TFieldValues, TFieldArrayName>>\n | Partial<FieldArray<TFieldValues, TFieldArrayName>>[],\n ) => {\n if (disabled) {\n return;\n }\n\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\n ids.current = updatedFieldArrayValues.map(generateId);\n updateValues([...updatedFieldArrayValues]);\n setFields([...updatedFieldArrayValues]);\n control._setFieldArray(\n name,\n [...updatedFieldArrayValues],\n (data: unknown) =>\n Array.isArray(data)\n ? data.slice(0, updatedFieldArrayValues.length)\n : data,\n {},\n );\n };\n\n React.useEffect(() => {\n if (disabled) {\n control._state.actionArrayLengths.delete(name);\n return;\n }\n\n control._state.action = false;\n control._state.actionArrayLengths.delete(name);\n\n isWatched(name, control._names) &&\n control._subjects.state.next({\n ...control._formState,\n } as FormState<TFieldValues>);\n\n const validationModes = getValidationModes(control._options.mode);\n\n if (\n _actioned.current &&\n (!validationModes.isOnSubmit || control._formState.isSubmitted) &&\n !getValidationModes(control._options.reValidateMode).isOnSubmit &&\n !validationModes.isOnBlur\n ) {\n if (control._options.resolver) {\n control._runSchema([name]).then((result) => {\n control._updateIsValidating([name]);\n const error = get(result.errors, name);\n const existingError = get(control._formState.errors, name);\n const existingErrorType =\n existingError && (existingError.type || existingError.root?.type);\n const existingErrorMessage =\n existingError &&\n (existingError.message || existingError.root?.message);\n\n if (\n existingError\n ? (!error && existingErrorType) ||\n (error &&\n (existingErrorType !== error.type ||\n existingErrorMessage !== error.message))\n : error && error.type\n ) {\n if (error) {\n isObject(error) &&\n !Object.keys(error).some((key) => !Number.isNaN(+key))\n ? updateFieldArrayRootError(\n control._formState.errors as FieldErrors<TFieldValues>,\n { [name]: error } as Partial<Record<string, FieldError>>,\n name,\n )\n : set(control._formState.errors, name, error);\n } else {\n unset(control._formState.errors, name);\n }\n control._subjects.state.next({\n errors: control._formState.errors as FieldErrors<TFieldValues>,\n });\n }\n });\n } else {\n const field: Field = get(control._fields, name);\n if (field && field._f) {\n validateField(\n field,\n control._names.disabled,\n control._formValues,\n control._options.criteriaMode === VALIDATION_MODE.all,\n control._options.shouldUseNativeValidation,\n true,\n ).then(\n (error) =>\n !isEmptyObject(error) &&\n control._subjects.state.next({\n errors: updateFieldArrayRootError(\n control._formState.errors as FieldErrors<TFieldValues>,\n error,\n name,\n ) as FieldErrors<TFieldValues>,\n }),\n );\n }\n }\n }\n\n // External updates that change `fields` (e.g. reset() or setValue() on\n // the array) already notify subscribers with the up-to-date values\n // themselves, so only re-broadcast here for genuine array method calls.\n _actioned.current &&\n control._subjects.state.next({\n name,\n values: cloneObject(control._formValues) as TFieldValues,\n });\n\n control._names.focus &&\n iterateFieldsByAction(control._fields, (ref, key: string) => {\n if (\n control._names.focus &&\n key.startsWith(control._names.focus) &&\n ref.focus\n ) {\n ref.focus();\n return 1;\n }\n return;\n });\n\n control._names.focus = '';\n\n control._setValid();\n _actioned.current = false;\n }, [fields, name, control, disabled]);\n\n React.useEffect(() => {\n if (!disabled) {\n !get(control._formValues, name) && control._setFieldArray(name);\n }\n\n return () => {\n control._state.actionArrayLengths.delete(name);\n\n if (disabled) {\n return;\n }\n\n const shouldKeepFieldArrayValues = !(\n control._options.shouldUnregister || shouldUnregister\n );\n const updateMounted = (name: InternalFieldName, value: boolean) => {\n const field: Field = get(control._fields, name);\n if (field && field._f) {\n field._f.mount = value;\n }\n };\n\n if (_actioned.current && shouldKeepFieldArrayValues) {\n control._subjects.state.next({\n name,\n values: cloneObject(control._formValues) as TFieldValues,\n });\n }\n\n shouldKeepFieldArrayValues\n ? updateMounted(name, false)\n : control.unregister(name as FieldPath<TFieldValues>);\n };\n }, [name, control, keyName, shouldUnregister, disabled]);\n\n return {\n swap: React.useCallback(swap, [updateValues, name, control, disabled]),\n move: React.useCallback(move, [updateValues, name, control, disabled]),\n prepend: React.useCallback(prepend, [\n updateValues,\n name,\n control,\n disabled,\n ]),\n append: React.useCallback(append, [updateValues, name, control, disabled]),\n remove: React.useCallback(remove, [updateValues, name, control, disabled]),\n insert: React.useCallback(insert, [updateValues, name, control, disabled]),\n update: React.useCallback(update, [updateValues, name, control, disabled]),\n replace: React.useCallback(replace, [\n updateValues,\n name,\n control,\n disabled,\n ]),\n fields: React.useMemo(\n () =>\n fields.map((field, index) => ({\n ...field,\n ...(isBoolean(disabled) ? { disabled } : {}),\n [keyName]: ids.current[index] || generateId(),\n })) as FieldArrayWithId<TFieldValues, TFieldArrayName, TKeyName>[],\n [fields, keyName, disabled],\n ),\n };\n}\n","import type {\n FieldArray as FieldArrayType,\n FieldArrayPath,\n FieldArrayProps,\n FieldValues,\n} from './types';\nimport { useFieldArray } from './useFieldArray';\n\ntype FieldArray<\n TFieldValues extends FieldValues = FieldValues,\n TFieldArrayName extends FieldArrayPath<TFieldValues> =\n FieldArrayPath<TFieldValues>,\n> = FieldArrayType<TFieldValues, TFieldArrayName>;\n\n/**\n * Component based on `useFieldArray` hook to work with controlled component.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control, register } = useForm<FormValues>({\n * defaultValues: {\n * test: [\n * {\n * value: '',\n * },\n * ],\n * },\n * });\n *\n * return (\n * <form>\n * <FieldArray\n * control={control}\n * name=\"test\"\n * render={({ fields }) =>\n * fields.map((field, index) => (\n * <input key={field.id} {...register(`test.${index}.value`)} />\n * ))\n * }\n * />\n * </form>\n * );\n * }\n * ```\n */\nconst FieldArray = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>,\n TKeyName extends string = 'id',\n>(\n props: FieldArrayProps<TFieldValues, TName, TKeyName>,\n) => props.render(useFieldArray<TFieldValues, TName, TKeyName>(props));\n\nexport { FieldArray };\n","import type { FieldValues } from '../types';\n\nimport isDateObject from './isDateObject';\nimport { isObjectType } from './isObject';\n\nconst isFileLike = (value: unknown) =>\n (typeof Blob !== 'undefined' && value instanceof Blob) ||\n (typeof File !== 'undefined' && value instanceof File);\n\nconst isFileListLike = (value: unknown) =>\n typeof FileList !== 'undefined' && value instanceof FileList;\n\nexport const flatten = (obj: FieldValues) => {\n const output: FieldValues = {};\n\n for (const key of Object.keys(obj)) {\n if (\n isObjectType(obj[key]) &&\n obj[key] !== null &&\n !isDateObject(obj[key]) &&\n !isFileLike(obj[key]) &&\n !isFileListLike(obj[key])\n ) {\n const nested = flatten(obj[key]);\n\n for (const nestedKey of Object.keys(nested)) {\n output[`${key}.${nestedKey}`] = nested[nestedKey];\n }\n } else {\n output[key] = obj[key];\n }\n }\n\n return output;\n};\n","import { flatten } from './flatten';\nimport isUndefined from './isUndefined';\n\nfunction jsonToFormData(json: any) {\n const result = new FormData();\n\n const flattenFormValues = flatten(json);\n\n for (const key in flattenFormValues) {\n const value = flattenFormValues[key];\n\n if (isUndefined(value)) {\n continue;\n }\n\n if (typeof FileList !== 'undefined' && value instanceof FileList) {\n for (let index = 0; index < value.length; index++) {\n const file = value[index];\n\n file && result.append(key, file);\n }\n\n continue;\n }\n\n result.append(key, value);\n }\n\n return result;\n}\n\nexport { jsonToFormData };\n","function safeJSONStringify(value?: unknown) {\n try {\n return JSON.stringify(value);\n } catch {\n return '';\n }\n}\n\nfunction safeJSONParse(value?: string) {\n try {\n return JSON.parse(value as string);\n } catch {\n return;\n }\n}\n\nconst safeJSON = {\n stringify: safeJSONStringify,\n parse: safeJSONParse,\n};\n\nexport { safeJSON, safeJSONParse, safeJSONStringify };\n\nexport default safeJSON;\n","export default function noop() {}\n","import React from 'react';\n\nimport type {\n Control,\n FieldValues,\n FormProviderProps,\n UseFormReturn,\n} from './types';\nimport { HookFormControlContext } from './useFormControlContext';\n\nconst HookFormContext = React.createContext<UseFormReturn | null>(null);\nHookFormContext.displayName = 'HookFormContext';\n\n/**\n * Retrieves all `useForm` methods from the nearest `FormProvider`.\n * Use in deeply nested components to avoid prop-drilling.\n *\n * @see [API](https://react-hook-form.com/docs/useformcontext)\n *\n * @example\n * ```tsx\n * const { register } = useFormContext<FormValues>();\n * ```\n */\nexport const useFormContext = <\n TFieldValues extends FieldValues,\n TContext = any,\n TTransformedValues = TFieldValues,\n>(): UseFormReturn<TFieldValues, TContext, TTransformedValues> =>\n React.useContext(HookFormContext) as UseFormReturn<\n TFieldValues,\n TContext,\n TTransformedValues\n >;\n\n/**\n * Provides all `useForm` methods to the component tree via React Context.\n * Pair with `useFormContext` to consume them in any descendant.\n *\n * @see [API](https://react-hook-form.com/docs/useformcontext)\n *\n * @example\n * ```tsx\n * <FormProvider {...methods}>\n * <form onSubmit={methods.handleSubmit(onSubmit)}>{children}</form>\n * </FormProvider>\n * ```\n */\nexport const FormProvider = <\n TFieldValues extends FieldValues,\n TContext = any,\n TTransformedValues = TFieldValues,\n>({\n children,\n watch,\n getValues,\n getErrors,\n getFieldState,\n setError,\n clearErrors,\n setValue,\n setValues,\n trigger,\n formState,\n resetField,\n reset,\n resetDefaultValues,\n handleSubmit,\n unregister,\n control,\n register,\n setFocus,\n subscribe,\n}: FormProviderProps<TFieldValues, TContext, TTransformedValues>) => {\n const memoizedValue = React.useMemo<\n UseFormReturn<TFieldValues, TContext, TTransformedValues>\n >(\n () => ({\n watch,\n getValues,\n getErrors,\n getFieldState,\n setError,\n clearErrors,\n setValue,\n setValues,\n trigger,\n formState,\n resetField,\n reset,\n resetDefaultValues,\n handleSubmit,\n unregister,\n control,\n register,\n setFocus,\n subscribe,\n }),\n [\n clearErrors,\n control,\n formState,\n getErrors,\n getFieldState,\n getValues,\n handleSubmit,\n register,\n reset,\n resetDefaultValues,\n resetField,\n setError,\n setFocus,\n setValue,\n setValues,\n subscribe,\n trigger,\n unregister,\n watch,\n ],\n );\n\n return (\n <HookFormContext.Provider value={memoizedValue as unknown as UseFormReturn}>\n <HookFormControlContext.Provider value={memoizedValue.control as Control}>\n {children}\n </HookFormControlContext.Provider>\n </HookFormContext.Provider>\n );\n};\n","import React from 'react';\n\nimport { jsonToFormData } from './utils/formData';\nimport isFunction from './utils/isFunction';\nimport isString from './utils/isString';\nimport { safeJSONStringify } from './utils/json';\nimport noop from './utils/noop';\nimport type { FieldValues, FormProps } from './types';\nimport { useFormContext } from './useFormContext';\n\nconst POST_REQUEST = 'post';\n\nfunction defaultValidateStatus(status: number) {\n return status >= 200 && status < 300;\n}\n\n/**\n * Form component that handles submission, including optional `action` fetch and server error wiring.\n *\n * @see [API](https://react-hook-form.com/docs/useform/form)\n *\n * @example\n * ```tsx\n * <Form action=\"/api\" control={control}>\n * <input {...register(\"name\")} />\n * <p>{errors?.root?.server && 'Server error'}</p>\n * <button>Submit</button>\n * </Form>\n * ```\n */\nexport function Form<\n TFieldValues extends FieldValues,\n TTransformedValues = TFieldValues,\n>(props: FormProps<TFieldValues, TTransformedValues>): React.ReactNode {\n const methods = useFormContext<TFieldValues, unknown, TTransformedValues>();\n const [mounted, setMounted] = React.useState(false);\n const {\n control = methods.control,\n onSubmit = noop,\n children,\n action,\n method = POST_REQUEST,\n headers,\n encType,\n onError = noop,\n render,\n onSuccess = noop,\n validateStatus = defaultValidateStatus,\n ...rest\n } = props;\n\n const handleSubmit = React.useMemo(() => {\n return control.handleSubmit(async (data, event) => {\n const formData = jsonToFormData(data);\n const formDataJson = safeJSONStringify(data);\n\n if (onSubmit) {\n await onSubmit({\n data,\n event,\n method,\n formData,\n formDataJson,\n });\n }\n\n if (isString(action)) {\n try {\n const shouldStringifySubmissionData =\n (headers &&\n headers['Content-Type'] &&\n headers['Content-Type'].includes('json')) ||\n (encType && encType.includes('json'));\n\n const response = await fetch(action, {\n method,\n headers: {\n ...headers,\n ...(encType &&\n encType !== 'multipart/form-data' && {\n 'Content-Type': encType,\n }),\n },\n body: shouldStringifySubmissionData ? formDataJson : formData,\n });\n\n if (response && !validateStatus(response.status)) {\n onError({ response });\n return { type: String(response.status) };\n } else {\n onSuccess({ response });\n }\n } catch (error: unknown) {\n onError({ error });\n return { type: '' };\n }\n }\n\n if (isFunction(action)) {\n try {\n await action(formData);\n } catch (error: unknown) {\n onError({ error });\n return { type: '' };\n }\n }\n\n // Return nothing when successful.\n return;\n });\n }, [\n control,\n onSubmit,\n method,\n action,\n headers,\n encType,\n validateStatus,\n onError,\n onSuccess,\n ]);\n\n const submit = React.useCallback(\n async (event?: React.BaseSyntheticEvent) => {\n const err = await handleSubmit(event);\n\n if (err && control) {\n control._subjects.state.next({ isSubmitSuccessful: false });\n control.setError('root.server', err);\n }\n },\n [handleSubmit, control],\n );\n\n React.useEffect(() => {\n setMounted(true);\n }, []);\n\n if (render) {\n return render({ submit });\n }\n\n // React forbids passing `method`/`encType` alongside a function `action`\n // (a Server-Action-style submission) -- it manages those itself and warns\n // if they're present, so they're only rendered for string/URL actions.\n return (\n <form\n noValidate={mounted}\n action={action}\n {...(!isFunction(action) && { method, encType })}\n onSubmit={submit}\n {...rest}\n >\n {children}\n </form>\n );\n}\n","import type { ReactNode } from 'react';\n\nimport type {\n FieldValues,\n FormState as FormStateType,\n UseFormStateProps,\n UseFormStateReturn,\n} from './types';\nimport { useFormState } from './useFormState';\n\nexport type FormStateProps<\n TFieldValues extends FieldValues,\n TTransformedValues = TFieldValues,\n> = UseFormStateProps<TFieldValues, TTransformedValues> & {\n render: (values: UseFormStateReturn<TFieldValues>) => ReactNode;\n};\n\nexport type FormState<TFieldValues extends FieldValues> =\n FormStateType<TFieldValues>;\n\nexport const FormState = <\n TFieldValues extends FieldValues,\n TTransformedValues = TFieldValues,\n>({\n control,\n disabled,\n exact,\n name,\n render,\n}: FormStateProps<TFieldValues, TTransformedValues>) =>\n render(useFormState({ control, name, disabled, exact }));\n\n/** @deprecated Use `FormState` instead. Kept as an alias for backward compatibility. */\nexport const FormStateSubscribe = FormState;\n\n/** @deprecated Use `FormStateProps` instead. Kept as an alias for backward compatibility. */\nexport type FormStateSubscribeProps<\n TFieldValues extends FieldValues,\n TTransformedValues = TFieldValues,\n> = FormStateProps<TFieldValues, TTransformedValues>;\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","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","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","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\nimport isCheckBoxInput from './isCheckBoxInput';\nimport isRadioInput from './isRadioInput';\n\nexport default (ref: FieldElement): ref is HTMLInputElement =>\n isRadioInput(ref) || isCheckBoxInput(ref);\n","import type { Ref } from '../types';\n\nimport isHTMLElement from './isHTMLElement';\n\nexport default (ref: Ref) => isHTMLElement(ref) && ref.isConnected;\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 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 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 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","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","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 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 { 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 {\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","import React from 'react';\n\nimport { DEFAULT_FORM_STATE } from './logic/createFormControl';\nimport getProxyFormState from './logic/getProxyFormState';\nimport cloneObject from './utils/cloneObject';\nimport deepEqual from './utils/deepEqual';\nimport isFunction from './utils/isFunction';\nimport { createFormControl } from './logic';\nimport type {\n FieldValues,\n FormState,\n UseFormProps,\n UseFormReturn,\n} from './types';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\nimport { useResyncOnReconnect } from './useResyncOnReconnect';\n\n/**\n * Core hook for managing a form. Returns all methods and state for\n * registration, validation, and submission.\n *\n * @see [API](https://react-hook-form.com/docs/useform)\n *\n * @example\n * ```tsx\n * const { register, handleSubmit, formState: { errors } } = useForm<FormValues>();\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input {...register(\"email\", { required: true })} />\n * </form>\n * ```\n */\nexport function useForm<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n TTransformedValues = TFieldValues,\n>(\n props: UseFormProps<TFieldValues, TContext, TTransformedValues> = {},\n): UseFormReturn<TFieldValues, TContext, TTransformedValues> {\n const _formControl = React.useRef<\n UseFormReturn<TFieldValues, TContext, TTransformedValues> | undefined\n >(undefined);\n const _values = React.useRef<typeof props.values>(undefined);\n const _formControlProp = React.useRef(props.formControl);\n const [formState, updateFormState] = React.useState<FormState<TFieldValues>>(\n () => ({\n ...cloneObject(DEFAULT_FORM_STATE),\n isLoading: isFunction(props.defaultValues),\n errors: props.errors || {},\n disabled: props.disabled || false,\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n }),\n );\n\n if (\n !_formControl.current ||\n (props.formControl && _formControlProp.current !== props.formControl)\n ) {\n _formControlProp.current = props.formControl;\n if (props.formControl) {\n _formControl.current = {\n ...props.formControl,\n formState,\n };\n\n if (props.defaultValues && !isFunction(props.defaultValues)) {\n props.formControl.reset(props.defaultValues, props.resetOptions);\n }\n } else {\n const { formControl, ...rest } = createFormControl(props);\n\n _formControl.current = {\n ...rest,\n formState,\n };\n }\n }\n\n const control = _formControl.current.control;\n control._options = props;\n\n const getCurrentFormState = () => ({\n ...control._formState,\n defaultValues:\n control._defaultValues as FormState<TFieldValues>['defaultValues'],\n });\n\n const { resyncIfNeeded, snapshot } =\n useResyncOnReconnect<FormState<TFieldValues>>(getCurrentFormState);\n\n useIsomorphicLayoutEffect(() => {\n resyncIfNeeded(true, getCurrentFormState, updateFormState);\n\n const unsubscribe = control._subscribe({\n formState: control._proxyFormState,\n callback: () =>\n updateFormState({\n ...control._formState,\n defaultValues:\n control._defaultValues as FormState<TFieldValues>['defaultValues'],\n }),\n reRenderRoot: true,\n });\n\n updateFormState((data) => ({\n ...data,\n isReady: true,\n }));\n\n control._formState.isReady = true;\n\n return () => {\n unsubscribe();\n snapshot(true, getCurrentFormState);\n };\n }, [control, resyncIfNeeded, snapshot]);\n\n React.useEffect(\n () => control._disableForm(props.disabled),\n [control, props.disabled],\n );\n\n React.useEffect(() => {\n if (props.mode) {\n control._options.mode = props.mode;\n }\n if (props.reValidateMode) {\n control._options.reValidateMode = props.reValidateMode;\n }\n }, [control, props.mode, props.reValidateMode]);\n\n React.useEffect(() => {\n if (props.errors) {\n control._setErrors(props.errors);\n control._focusError();\n }\n }, [control, props.errors]);\n\n React.useEffect(() => {\n props.shouldUnregister &&\n control._subjects.state.next({\n values: control._getWatch(),\n });\n }, [control, props.shouldUnregister]);\n\n React.useEffect(() => {\n if (control._proxyFormState.isDirty) {\n const isDirty = control._getDirty();\n if (isDirty !== formState.isDirty) {\n control._subjects.state.next({\n isDirty,\n });\n }\n }\n }, [control, formState.isDirty]);\n\n React.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, {\n keepFieldsRef: true,\n ...control._options.resetOptions,\n });\n if (!control._options.resetOptions?.keepIsValid) {\n control._setValid();\n }\n _values.current = props.values;\n updateFormState((state) => ({ ...state }));\n } else {\n control._resetDefaultValues();\n }\n }, [control, props.values]);\n\n React.useEffect(() => {\n if (!control._state.mount) {\n control._setValid();\n control._state.mount = true;\n }\n\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n\n control._removeUnmounted();\n });\n\n _formControl.current.formState = React.useMemo(\n () => getProxyFormState(formState, control),\n [control, formState],\n );\n\n return _formControl.current;\n}\n","import type {\n FieldPath,\n FieldValues,\n WatchProps,\n WatchRenderValue,\n} from './types';\nimport { useWatch } from './useWatch';\n\n/**\n * Component wrapper around `useWatch`. Re-renders only when watched fields change.\n *\n * @see [API](https://react-hook-form.com/docs/usewatch)\n *\n * @example\n * ```tsx\n * <Watch\n * control={control}\n * names={[\"foo\", \"bar\"]}\n * render={([foo, bar]) => <span>{foo} {bar}</span>}\n * />\n * ```\n */\nexport const Watch = <\n TFieldValues extends FieldValues = FieldValues,\n TFieldName extends\n | FieldPath<TFieldValues>\n | readonly [FieldPath<TFieldValues>, ...FieldPath<TFieldValues>[]]\n | FieldPath<TFieldValues>[]\n | readonly FieldPath<TFieldValues>[]\n | undefined = undefined,\n TContext = any,\n TTransformedValues = TFieldValues,\n TComputeValue = undefined,\n>(\n props: WatchProps<\n TFieldName,\n TFieldValues,\n TContext,\n TTransformedValues,\n TComputeValue\n >,\n) =>\n props.render(\n useWatch({ name: props.names, ...(props as any) }) as WatchRenderValue<\n TFieldName,\n TFieldValues,\n TComputeValue\n >,\n );\n"],"names":["insert","insertAt","isCheckBox"],"mappings":"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"}