react-hook-form 6.15.5-beta.0 → 6.15.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.ie11.development.js","sources":["../src/utils/isHTMLElement.ts","../src/constants.ts","../src/logic/attachEventListeners.ts","../src/utils/isNullOrUndefined.ts","../src/utils/isObject.ts","../src/utils/isKey.ts","../src/utils/compact.ts","../src/utils/stringToPath.ts","../src/utils/set.ts","../src/logic/transformToNestObject.ts","../src/utils/isUndefined.ts","../src/utils/get.ts","../src/logic/focusOnErrorField.ts","../src/logic/removeAllEventListeners.ts","../src/logic/getRadioValue.ts","../src/logic/getMultipleSelectValue.ts","../src/utils/isRadioInput.ts","../src/utils/isFileInput.ts","../src/utils/isCheckBoxInput.ts","../src/utils/isMultipleSelect.ts","../src/logic/getCheckboxValue.ts","../src/logic/getFieldValue.ts","../src/utils/isDetached.ts","../src/utils/isEmptyObject.ts","../src/utils/isBoolean.ts","../src/utils/unset.ts","../src/logic/findRemovedFieldAndRemoveListener.ts","../src/utils/isPrimitive.ts","../src/utils/deepMerge.ts","../src/utils/deepEqual.ts","../src/logic/setFieldArrayDirtyFields.ts","../src/utils/isString.ts","../src/logic/getFieldsValues.ts","../src/logic/isErrorStateChanged.ts","../src/utils/isRegex.ts","../src/logic/getValueAndMessage.ts","../src/utils/isFunction.ts","../src/utils/isMessage.ts","../src/logic/getValidateError.ts","../src/logic/appendErrors.ts","../src/logic/validateField.ts","../src/utils/getPath.ts","../src/logic/assignWatchFields.ts","../src/logic/skipValidation.ts","../src/logic/getNodeParentName.ts","../src/logic/isNameInFieldArray.ts","../src/utils/isSelectInput.ts","../src/utils/onDomRemove.ts","../src/utils/isWeb.ts","../src/utils/cloneObject.ts","../src/utils/validationModeChecker.ts","../src/utils/isRadioOrCheckbox.ts","../src/useForm.ts","../src/useFormContext.tsx","../src/logic/generateId.ts","../src/utils/remove.ts","../src/utils/move.ts","../src/utils/swap.ts","../src/utils/prepend.ts","../src/utils/insert.ts","../src/utils/fillEmptyArray.ts","../src/utils/fillBooleanArray.ts","../src/useFieldArray.ts","../src/logic/getInputValue.ts","../src/useController.ts","../src/useWatch.ts","../src/controller.tsx"],"sourcesContent":["export default (value: any): value is HTMLElement =>\n value instanceof HTMLElement;\n","import { ValidationMode } from './types';\n\nexport const EVENTS = {\n BLUR: 'blur',\n CHANGE: 'change',\n INPUT: 'input',\n};\n\nexport const VALIDATION_MODE: ValidationMode = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\n\nexport const SELECT = 'select';\n\nexport const UNDEFINED = 'undefined';\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};\n","import isHTMLElement from '../utils/isHTMLElement';\nimport { EVENTS } from '../constants';\nimport { Field } from '../types';\n\nexport default function attachEventListeners(\n { ref }: Field,\n shouldAttachChangeEvent?: boolean,\n handleChange?: EventListenerOrEventListenerObject,\n): void {\n if (isHTMLElement(ref) && handleChange) {\n ref.addEventListener(\n shouldAttachChangeEvent ? EVENTS.CHANGE : EVENTS.INPUT,\n handleChange,\n );\n ref.addEventListener(EVENTS.BLUR, handleChange);\n }\n}\n","export default (value: unknown): value is null | undefined => value == null;\n","import isNullOrUndefined from './isNullOrUndefined';\n\nexport const isObjectType = (value: unknown) => 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 !(value instanceof Date);\n","export default (value: string) => /^\\w*$/.test(value);\n","export default (value: any[]) => value.filter(Boolean);\n","import compact from './compact';\n\nexport default (input: string): string[] =>\n compact(\n input\n .replace(/[\"|']/g, '')\n .replace(/\\[/g, '.')\n .replace(/\\]/g, '')\n .split('.'),\n );\n","import isObject from './isObject';\nimport isKey from './isKey';\nimport stringToPath from './stringToPath';\nimport { FieldValues } from '../types';\n\nexport default function set(\n object: FieldValues,\n path: string,\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 object[key] = newValue;\n object = object[key];\n }\n return object;\n}\n","import set from '../utils/set';\nimport isKey from '../utils/isKey';\nimport { FieldValues } from '../types';\n\nexport default (data: FieldValues, value: Record<string, any> = {}): any => {\n for (const key in data) {\n !isKey(key) ? set(value, key, data[key]) : (value[key] = data[key]);\n }\n return value;\n};\n","export default (val: unknown): val is undefined => val === undefined;\n","import isUndefined from './isUndefined';\nimport isNullOrUndefined from './isNullOrUndefined';\nimport compact from './compact';\n\nexport default (obj: any = {}, path: string, defaultValue?: unknown) => {\n const result = compact(path.split(/[,[\\].]+?/)).reduce(\n (result, key) => (isNullOrUndefined(result) ? result : result[key]),\n obj,\n );\n\n return isUndefined(result) || result === obj\n ? isUndefined(obj[path])\n ? defaultValue\n : obj[path]\n : result;\n};\n","import get from '../utils/get';\nimport isUndefined from '../utils/isUndefined';\nimport { FieldErrors, FieldRefs } from '../types';\n\nexport default <TFieldValues>(\n fields: FieldRefs<TFieldValues>,\n fieldErrors: FieldErrors<TFieldValues>,\n) => {\n for (const key in fields) {\n if (get(fieldErrors, key)) {\n const field = fields[key];\n\n if (field) {\n if (field.ref.focus && isUndefined(field.ref.focus())) {\n break;\n } else if (field.options) {\n field.options[0].ref.focus();\n\n break;\n }\n }\n }\n }\n};\n","import isHTMLElement from '../utils/isHTMLElement';\nimport { EVENTS } from '../constants';\nimport { Ref } from '../types';\n\nexport default (\n ref: Ref,\n validateWithStateUpdate: EventListenerOrEventListenerObject,\n): void => {\n if (isHTMLElement(ref) && ref.removeEventListener) {\n ref.removeEventListener(EVENTS.INPUT, validateWithStateUpdate);\n ref.removeEventListener(EVENTS.CHANGE, validateWithStateUpdate);\n ref.removeEventListener(EVENTS.BLUR, validateWithStateUpdate);\n }\n};\n","import { RadioOrCheckboxOption } from '../types';\n\ntype 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?: RadioOrCheckboxOption[]): RadioFieldResult =>\n Array.isArray(options)\n ? options.reduce(\n (previous, option): RadioFieldResult =>\n option && option.ref.checked\n ? {\n isValid: true,\n value: option.ref.value,\n }\n : previous,\n defaultReturn,\n )\n : defaultReturn;\n","export default (\n options: HTMLOptionElement[] | HTMLOptionsCollection,\n): string[] =>\n [...options]\n .filter(({ selected }): boolean => selected)\n .map(({ value }): string => value);\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'radio';\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'file';\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'checkbox';\n","import { FieldElement } from '../types';\nimport { SELECT } from '../constants';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `${SELECT}-multiple`;\n","import isUndefined from '../utils/isUndefined';\nimport { RadioOrCheckboxOption } from '../types';\n\ntype CheckboxFieldResult = {\n isValid: boolean;\n value: string | string[] | boolean;\n};\n\nconst defaultResult: CheckboxFieldResult = {\n value: false,\n isValid: false,\n};\n\nconst validResult = { value: true, isValid: true };\n\nexport default (options?: RadioOrCheckboxOption[]): CheckboxFieldResult => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.ref.checked)\n .map(({ ref: { value } }) => value);\n return { value: values, isValid: !!values.length };\n }\n\n const { checked, value, attributes } = options[0].ref;\n\n return checked\n ? attributes && !isUndefined((attributes as any).value)\n ? isUndefined(value) || value === ''\n ? validResult\n : { value: value, isValid: true }\n : validResult\n : defaultResult;\n }\n\n return defaultResult;\n};\n","import * as React from 'react';\nimport getRadioValue from './getRadioValue';\nimport getMultipleSelectValue from './getMultipleSelectValue';\nimport isRadioInput from '../utils/isRadioInput';\nimport get from '../utils/get';\nimport isFileInput from '../utils/isFileInput';\nimport isCheckBox from '../utils/isCheckBoxInput';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport getCheckboxValue from './getCheckboxValue';\nimport { FieldRefs, FieldValues, InternalFieldName } from '../types';\n\nexport default function getFieldValue<TFieldValues extends FieldValues>(\n fieldsRef: React.MutableRefObject<FieldRefs<TFieldValues>>,\n name: InternalFieldName<TFieldValues>,\n shallowFieldsStateRef?: React.MutableRefObject<Partial<FieldValues>>,\n excludeDisabled?: boolean,\n shouldKeepRawValue?: boolean,\n) {\n const field = fieldsRef.current[name]!;\n\n if (field) {\n const {\n ref: { value, disabled },\n ref,\n valueAsNumber,\n valueAsDate,\n setValueAs,\n } = field;\n\n if (disabled && excludeDisabled) {\n return;\n }\n\n if (isFileInput(ref)) {\n return ref.files;\n }\n\n if (isRadioInput(ref)) {\n return getRadioValue(field.options).value;\n }\n\n if (isMultipleSelect(ref)) {\n return getMultipleSelectValue(ref.options);\n }\n\n if (isCheckBox(ref)) {\n return getCheckboxValue(field.options).value;\n }\n\n return shouldKeepRawValue\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : +value\n : valueAsDate\n ? (ref as HTMLInputElement).valueAsDate\n : setValueAs\n ? setValueAs(value)\n : value;\n }\n\n if (shallowFieldsStateRef) {\n return get(shallowFieldsStateRef.current, name);\n }\n}\n","import { Ref } from '../types';\n\nexport default function isDetached(element: Ref): boolean {\n if (!element) {\n return true;\n }\n\n if (\n !(element instanceof HTMLElement) ||\n element.nodeType === Node.DOCUMENT_NODE\n ) {\n return false;\n }\n\n return isDetached(element.parentNode as Ref);\n}\n","import isObject from './isObject';\nimport { EmptyObject } from '../types';\n\nexport default (value: unknown): value is EmptyObject =>\n isObject(value) && !Object.keys(value).length;\n","export default (value: unknown): value is boolean => typeof value === 'boolean';\n","import isKey from './isKey';\nimport stringToPath from './stringToPath';\nimport isEmptyObject from './isEmptyObject';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport isBoolean from './isBoolean';\n\nfunction baseGet(object: any, updatePath: (string | number)[]) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n\n return object;\n}\n\nexport default function unset(object: any, path: string) {\n const updatePath = isKey(path) ? [path] : stringToPath(path);\n const childObject =\n updatePath.length == 1 ? object : baseGet(object, updatePath);\n const key = updatePath[updatePath.length - 1];\n let previousObjRef;\n\n if (childObject) {\n delete childObject[key];\n }\n\n for (let k = 0; k < updatePath.slice(0, -1).length; k++) {\n let index = -1;\n let objectRef;\n const currentPaths = updatePath.slice(0, -(k + 1));\n const currentPathsLength = currentPaths.length - 1;\n\n if (k > 0) {\n previousObjRef = object;\n }\n\n while (++index < currentPaths.length) {\n const item = currentPaths[index];\n objectRef = objectRef ? objectRef[item] : object[item];\n\n if (\n currentPathsLength === index &&\n ((isObject(objectRef) && isEmptyObject(objectRef)) ||\n (Array.isArray(objectRef) &&\n !objectRef.filter(\n (data) =>\n (isObject(data) && !isEmptyObject(data)) || isBoolean(data),\n ).length))\n ) {\n previousObjRef ? delete previousObjRef[item] : delete object[item];\n }\n\n previousObjRef = objectRef;\n }\n }\n\n return object;\n}\n","import * as React from 'react';\nimport removeAllEventListeners from './removeAllEventListeners';\nimport getFieldValue from './getFieldValue';\nimport isRadioInput from '../utils/isRadioInput';\nimport set from '../utils/set';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isDetached from '../utils/isDetached';\nimport unset from '../utils/unset';\nimport compact from '../utils/compact';\nimport isUndefined from '../utils/isUndefined';\nimport { Field, FieldRefs, FieldValues, Ref } from '../types';\n\nconst isSameRef = (fieldValue: Field, ref: Ref) =>\n fieldValue && fieldValue.ref === ref;\n\nexport default function findRemovedFieldAndRemoveListener<\n TFieldValues extends FieldValues\n>(\n fieldsRef: React.MutableRefObject<FieldRefs<TFieldValues>>,\n handleChange: ({ type, target }: Event) => Promise<void | boolean>,\n field: Field,\n shallowFieldsStateRef: React.MutableRefObject<FieldValues>,\n shouldUnregister?: boolean,\n forceDelete?: boolean,\n): void {\n const {\n ref,\n ref: { name },\n } = field;\n const fieldRef = fieldsRef.current[name] as Field;\n\n if (!shouldUnregister) {\n const value = getFieldValue(fieldsRef, name, shallowFieldsStateRef);\n\n !isUndefined(value) && set(shallowFieldsStateRef.current, name, value);\n }\n\n if (!ref.type || !fieldRef) {\n delete fieldsRef.current[name];\n return;\n }\n\n if (isRadioInput(ref) || isCheckBoxInput(ref)) {\n if (Array.isArray(fieldRef.options) && fieldRef.options.length) {\n compact(fieldRef.options).forEach((option = {}, index): void => {\n if (\n (isDetached(option.ref) && isSameRef(option, option.ref)) ||\n forceDelete\n ) {\n removeAllEventListeners(option.ref, handleChange);\n unset(fieldRef.options, `[${index}]`);\n }\n });\n\n if (fieldRef.options && !compact(fieldRef.options).length) {\n delete fieldsRef.current[name];\n }\n } else {\n delete fieldsRef.current[name];\n }\n } else if ((isDetached(ref) && isSameRef(fieldRef, ref)) || forceDelete) {\n removeAllEventListeners(ref, handleChange);\n\n delete fieldsRef.current[name];\n }\n}\n","import isNullOrUndefined from './isNullOrUndefined';\nimport { isObjectType } from './isObject';\nimport { Primitive } from '../types';\n\nexport default (value: unknown): value is Primitive =>\n isNullOrUndefined(value) || !isObjectType(value);\n","import isObject from './isObject';\nimport isPrimitive from './isPrimitive';\n\nexport function deepMerge<\n T extends Record<keyof T, any>,\n U extends Record<keyof U, any>\n>(target: T, source: U): T & U {\n if (isPrimitive(target) || isPrimitive(source)) {\n return source;\n }\n\n for (const key in source) {\n const targetValue = target[key];\n const sourceValue = source[key];\n\n try {\n target[key] =\n (isObject(targetValue) && isObject(sourceValue)) ||\n (Array.isArray(targetValue) && Array.isArray(sourceValue))\n ? deepMerge(targetValue, sourceValue)\n : sourceValue;\n } catch {}\n }\n\n return target;\n}\n","import * as React from 'react';\nimport isObject from '../utils/isObject';\nimport isPrimitive from './isPrimitive';\n\nexport default function deepEqual(\n object1: any,\n object2: any,\n isErrorObject?: boolean,\n) {\n if (\n isPrimitive(object1) ||\n isPrimitive(object2) ||\n object1 instanceof Date ||\n object2 instanceof Date\n ) {\n return object1 === object2;\n }\n\n if (!React.isValidElement(object1)) {\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 for (const key of keys1) {\n const val1 = object1[key];\n\n if (!(isErrorObject && key === 'ref')) {\n const val2 = object2[key];\n\n if (\n (isObject(val1) || Array.isArray(val1)) &&\n (isObject(val2) || Array.isArray(val2))\n ? !deepEqual(val1, val2, isErrorObject)\n : val1 !== val2\n ) {\n return false;\n }\n }\n }\n }\n\n return true;\n}\n","import { get } from '../utils';\nimport set from '../utils/set';\nimport { deepMerge } from '../utils/deepMerge';\nimport deepEqual from '../utils/deepEqual';\n\nfunction setDirtyFields<\n T extends Record<string, unknown>[],\n U extends Record<string, unknown>[],\n K extends Record<string, boolean | []>\n>(\n values: T,\n defaultValues: U,\n dirtyFields: Record<string, boolean | []>[],\n parentNode?: K,\n parentName?: keyof K,\n) {\n let index = -1;\n\n while (++index < values.length) {\n for (const key in values[index]) {\n if (Array.isArray(values[index][key])) {\n !dirtyFields[index] && (dirtyFields[index] = {});\n dirtyFields[index][key] = [];\n setDirtyFields(\n values[index][key] as T,\n get(defaultValues[index] || {}, key, []),\n dirtyFields[index][key] as [],\n dirtyFields[index],\n key,\n );\n } else {\n deepEqual(get(defaultValues[index] || {}, key), values[index][key])\n ? set(dirtyFields[index] || {}, key)\n : (dirtyFields[index] = {\n ...dirtyFields[index],\n [key]: true,\n });\n }\n }\n\n parentNode &&\n !dirtyFields.length &&\n delete parentNode[parentName as keyof K];\n }\n\n return dirtyFields;\n}\n\nexport default <T extends U, U extends Record<string, unknown>[]>(\n values: T,\n defaultValues: U,\n dirtyFields: Record<string, boolean | []>[],\n) =>\n deepMerge(\n setDirtyFields(values, defaultValues, dirtyFields.slice(0, values.length)),\n setDirtyFields(defaultValues, values, dirtyFields.slice(0, values.length)),\n );\n","export default (value: unknown): value is string => typeof value === 'string';\n","import * as React from 'react';\nimport getFieldValue from './getFieldValue';\nimport isString from '../utils/isString';\nimport { deepMerge } from '../utils/deepMerge';\nimport isUndefined from '../utils/isUndefined';\nimport { InternalFieldName, FieldValues, FieldRefs } from '../types';\nimport transformToNestObject from './transformToNestObject';\n\nexport default <TFieldValues extends FieldValues>(\n fieldsRef: React.MutableRefObject<FieldRefs<TFieldValues>>,\n shallowFieldsState: Record<string, any>,\n shouldUnregister: boolean,\n excludeDisabled?: boolean,\n search?:\n | InternalFieldName<TFieldValues>\n | InternalFieldName<TFieldValues>[]\n | { nest: boolean },\n) => {\n const output = {} as TFieldValues;\n\n for (const name in fieldsRef.current) {\n if (\n isUndefined(search) ||\n (isString(search)\n ? name.startsWith(search)\n : Array.isArray(search) && search.find((data) => name.startsWith(data)))\n ) {\n output[name as InternalFieldName<TFieldValues>] = getFieldValue(\n fieldsRef,\n name,\n undefined,\n excludeDisabled,\n );\n }\n }\n\n return shouldUnregister\n ? transformToNestObject(output)\n : deepMerge(shallowFieldsState, transformToNestObject(output));\n};\n","import get from '../utils/get';\nimport isUndefined from '../utils/isUndefined';\nimport deepEqual from '../utils/deepEqual';\nimport {\n FieldValues,\n InternalFieldName,\n FieldErrors,\n FieldNamesMarkedBoolean,\n FieldError,\n} from '../types';\n\nexport default <TFieldValues extends FieldValues>({\n errors,\n name,\n error,\n validFields,\n fieldsWithValidation,\n}: {\n errors: FieldErrors<TFieldValues>;\n error: FieldError | undefined;\n name: InternalFieldName<TFieldValues>;\n validFields: FieldNamesMarkedBoolean<TFieldValues>;\n fieldsWithValidation: FieldNamesMarkedBoolean<TFieldValues>;\n}): boolean => {\n const isValid = isUndefined(error);\n const previousError = get(errors, name);\n\n return (\n (isValid && !!previousError) ||\n (!isValid && !deepEqual(previousError, error, true)) ||\n (isValid && get(fieldsWithValidation, name) && !get(validFields, name))\n );\n};\n","export default (value: unknown): value is RegExp => value instanceof RegExp;\n","import isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\nimport { ValidationRule } from '../types';\n\nexport default (validationData?: ValidationRule) =>\n isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n","export default (value: unknown): value is Function =>\n typeof value === 'function';\n","import * as React from 'react';\nimport isString from '../utils/isString';\nimport { Message } from '../types';\n\nexport default (value: unknown): value is Message =>\n isString(value) || React.isValidElement(value as JSX.Element);\n","import isBoolean from '../utils/isBoolean';\nimport isMessage from '../utils/isMessage';\nimport { FieldError, ValidateResult, Ref } from '../types';\n\nexport default function getValidateError(\n result: ValidateResult,\n ref: Ref,\n type = 'validate',\n): FieldError | void {\n if (isMessage(result) || (isBoolean(result) && !result)) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n","import {\n InternalFieldName,\n ValidateResult,\n InternalFieldErrors,\n} from '../types';\n\nexport default <TFieldValues>(\n name: InternalFieldName<TFieldValues>,\n validateAllFieldCriteria: boolean,\n errors: InternalFieldErrors<TFieldValues>,\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 * as React from 'react';\nimport getRadioValue from './getRadioValue';\nimport getCheckboxValue from './getCheckboxValue';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isRadioInput from '../utils/isRadioInput';\nimport getValueAndMessage from './getValueAndMessage';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isString from '../utils/isString';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isObject from '../utils/isObject';\nimport isFunction from '../utils/isFunction';\nimport getFieldsValue from './getFieldValue';\nimport isRegex from '../utils/isRegex';\nimport isBoolean from '../utils/isBoolean';\nimport isMessage from '../utils/isMessage';\nimport getValidateError from './getValidateError';\nimport appendErrors from './appendErrors';\nimport { INPUT_VALIDATION_RULES } from '../constants';\nimport {\n Field,\n FieldValues,\n FieldRefs,\n Message,\n FieldError,\n InternalFieldName,\n InternalFieldErrors,\n} from '../types';\n\nexport default async <TFieldValues extends FieldValues>(\n fieldsRef: React.MutableRefObject<FieldRefs<TFieldValues>>,\n validateAllFieldCriteria: boolean,\n {\n ref,\n ref: { value },\n options,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n }: Field,\n shallowFieldsStateRef: React.MutableRefObject<Record<string, any>>,\n): Promise<InternalFieldErrors<TFieldValues>> => {\n const name: InternalFieldName<TFieldValues> = ref.name;\n const error: InternalFieldErrors<TFieldValues> = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty = value === '';\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 = INPUT_VALIDATION_RULES.maxLength,\n 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 ...(exceedMax\n ? appendErrorsCurry(maxType, message)\n : appendErrorsCurry(minType, message)),\n };\n };\n\n if (\n required &&\n ((!isRadio && !isCheckBox && (isEmpty || isNullOrUndefined(value))) ||\n (isBoolean(value) && !value) ||\n (isCheckBox && !getCheckboxValue(options).isValid) ||\n (isRadio && !getRadioValue(options).isValid))\n ) {\n const { value, message } = isMessage(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: isRadioOrCheckbox\n ? (((fieldsRef.current[name] as Field).options || [])[0] || {}).ref\n : ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n\n if ((!isNullOrUndefined(min) || !isNullOrUndefined(max)) && value !== '') {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n\n if (!isNaN(value)) {\n const valueNumber =\n (ref as HTMLInputElement).valueAsNumber || parseFloat(value);\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(value);\n if (isString(maxOutput.value)) {\n exceedMax = valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value)) {\n exceedMin = 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 return error;\n }\n }\n }\n\n if (isString(value) && !isEmpty && (maxLength || minLength)) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax =\n !isNullOrUndefined(maxLengthOutput.value) &&\n value.length > maxLengthOutput.value;\n const exceedMin =\n !isNullOrUndefined(minLengthOutput.value) &&\n value.length < minLengthOutput.value;\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n exceedMax,\n maxLengthOutput.message,\n minLengthOutput.message,\n );\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n\n if (isString(value) && pattern && !isEmpty) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n\n if (isRegex(patternValue) && !patternValue.test(value)) {\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 return error;\n }\n }\n }\n\n if (validate) {\n const fieldValue = getFieldsValue(\n fieldsRef,\n name,\n shallowFieldsStateRef,\n false,\n true,\n );\n const validateRef = isRadioOrCheckbox && options ? options[0].ref : ref;\n\n if (isFunction(validate)) {\n const result = await validate(fieldValue);\n const validateError = getValidateError(result, validateRef);\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 return error;\n }\n }\n } else if (isObject(validate)) {\n let validationResult = {} as FieldError;\n for (const [key, validateFunction] of Object.entries(validate)) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n\n const validateResult = await validateFunction(fieldValue);\n const validateError = getValidateError(\n validateResult,\n validateRef,\n key,\n );\n\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: validateRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n\n return error;\n};\n","import isPrimitive from './isPrimitive';\nimport isObject from './isObject';\nimport { FieldName } from '../types';\n\nexport const getPath = <TFieldValues>(\n rootPath: FieldName<TFieldValues>,\n values: any,\n paths: FieldName<TFieldValues>[] = [],\n): FieldName<TFieldValues>[] => {\n for (const property in values) {\n const rootName = (rootPath +\n (isObject(values)\n ? `.${property}`\n : `[${property}]`)) as FieldName<TFieldValues>;\n\n isPrimitive(values[property])\n ? paths.push(rootName)\n : getPath(rootName, values[property], paths);\n }\n\n return paths;\n};\n","import get from '../utils/get';\nimport { getPath } from '../utils/getPath';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isUndefined from '../utils/isUndefined';\nimport isObject from '../utils/isObject';\nimport {\n DeepPartial,\n FieldValue,\n FieldValues,\n InternalFieldName,\n UnpackNestedValue,\n} from '../types';\n\nexport default <TFieldValues extends FieldValues>(\n fieldValues: TFieldValues,\n fieldName: InternalFieldName<TFieldValues>,\n watchFields: Set<InternalFieldName<TFieldValues>>,\n inputValue: UnpackNestedValue<DeepPartial<TFieldValues>>,\n isSingleField?: boolean,\n):\n | FieldValue<TFieldValues>\n | UnpackNestedValue<DeepPartial<TFieldValues>>\n | undefined => {\n let value = undefined;\n\n watchFields.add(fieldName);\n\n if (!isEmptyObject(fieldValues)) {\n value = get(fieldValues, fieldName);\n\n if (isObject(value) || Array.isArray(value)) {\n getPath(fieldName, value).forEach((name) => watchFields.add(name));\n }\n }\n\n return isUndefined(value)\n ? isSingleField\n ? inputValue\n : get(inputValue, fieldName)\n : value;\n};\n","export default ({\n isOnBlur,\n isOnChange,\n isOnTouch,\n isTouched,\n isReValidateOnBlur,\n isReValidateOnChange,\n isBlurEvent,\n isSubmitted,\n isOnAll,\n}: {\n isOnAll?: boolean;\n isOnBlur?: boolean;\n isOnChange?: boolean;\n isReValidateOnBlur?: boolean;\n isReValidateOnChange?: boolean;\n isBlurEvent?: boolean;\n isSubmitted?: boolean;\n isOnTouch?: boolean;\n isTouched?: boolean;\n}) => {\n if (isOnAll) {\n return false;\n } else if (!isSubmitted && isOnTouch) {\n return !(isTouched || isBlurEvent);\n } else if (isSubmitted ? isReValidateOnBlur : isOnBlur) {\n return !isBlurEvent;\n } else if (isSubmitted ? isReValidateOnChange : isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n","export default (name: string) => name.substring(0, name.indexOf('['));\n","import { FieldValues, InternalFieldName } from '../types';\n\nexport const isMatchFieldArrayName = (name: string, searchName: string) =>\n RegExp(\n `^${searchName}([|.)\\\\d+`.replace(/\\[/g, '\\\\[').replace(/\\]/g, '\\\\]'),\n ).test(name);\n\nexport default (\n names: Set<InternalFieldName<FieldValues>>,\n name: InternalFieldName<FieldValues>,\n) => [...names].some((current) => isMatchFieldArrayName(name, current));\n","import { FieldElement } from '../types';\nimport { SELECT } from '../constants';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `${SELECT}-one`;\n","import * as React from 'react';\nimport { Field, FieldRefs } from '../types';\nimport isDetached from './isDetached';\n\nexport default function onDomRemove<TFieldValues>(\n fieldsRef: React.MutableRefObject<FieldRefs<TFieldValues>>,\n removeFieldEventListenerAndRef: (\n field: Field | undefined,\n forceDelete?: boolean,\n ) => void,\n): MutationObserver {\n const observer = new MutationObserver((): void => {\n for (const field of Object.values(fieldsRef.current)) {\n if (field && field.options) {\n for (const option of field.options) {\n if (option && option.ref && isDetached(option.ref)) {\n removeFieldEventListenerAndRef(field);\n }\n }\n } else if (field && isDetached(field.ref)) {\n removeFieldEventListenerAndRef(field);\n }\n }\n });\n\n observer.observe(window.document, {\n childList: true,\n subtree: true,\n });\n\n return observer;\n}\n","import { UNDEFINED } from '../constants';\n\nexport default typeof window !== UNDEFINED &&\n typeof window.HTMLElement !== UNDEFINED &&\n typeof document !== UNDEFINED;\n","import isPrimitive from './isPrimitive';\nimport isHTMLElement from './isHTMLElement';\nimport isWeb from './isWeb';\n\nexport default function cloneObject<T extends unknown>(data: T): T {\n let copy: any;\n\n if (\n isPrimitive(data) ||\n (isWeb && (data instanceof File || isHTMLElement(data)))\n ) {\n return data;\n }\n\n if (\n !['Set', 'Map', 'Object', 'Date', 'Array'].includes(\n (data as Object).constructor?.name,\n )\n ) {\n return data;\n }\n\n if (data instanceof Date) {\n copy = new Date(data.getTime());\n return copy;\n }\n\n if (data instanceof Set) {\n copy = new Set();\n for (const item of data) {\n copy.add(item);\n }\n return copy;\n }\n\n if (data instanceof Map) {\n copy = new Map();\n for (const key of data.keys()) {\n copy.set(key, cloneObject(data.get(key)));\n }\n return copy;\n }\n\n copy = Array.isArray(data) ? [] : {};\n\n for (const key in data) {\n copy[key] = cloneObject(data[key]);\n }\n\n return copy;\n}\n","import { VALIDATION_MODE } from '../constants';\nimport { Mode } from '../types';\n\nexport default (\n mode?: Mode,\n): {\n isOnSubmit: boolean;\n isOnBlur: boolean;\n isOnChange: boolean;\n isOnAll: boolean;\n isOnTouch: boolean;\n} => ({\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 isRadioInput from './isRadioInput';\nimport isCheckBoxInput from './isCheckBoxInput';\nimport { FieldElement } from '../types';\n\nexport default (ref: FieldElement): ref is HTMLInputElement =>\n isRadioInput(ref) || isCheckBoxInput(ref);\n","import * as React from 'react';\nimport attachEventListeners from './logic/attachEventListeners';\nimport transformToNestObject from './logic/transformToNestObject';\nimport focusOnErrorField from './logic/focusOnErrorField';\nimport findRemovedFieldAndRemoveListener from './logic/findRemovedFieldAndRemoveListener';\nimport setFieldArrayDirtyFields from './logic/setFieldArrayDirtyFields';\nimport getFieldsValues from './logic/getFieldsValues';\nimport getFieldValue from './logic/getFieldValue';\nimport isErrorStateChanged from './logic/isErrorStateChanged';\nimport validateField from './logic/validateField';\nimport assignWatchFields from './logic/assignWatchFields';\nimport skipValidation from './logic/skipValidation';\nimport getNodeParentName from './logic/getNodeParentName';\nimport deepEqual from './utils/deepEqual';\nimport isNameInFieldArray from './logic/isNameInFieldArray';\nimport isCheckBoxInput from './utils/isCheckBoxInput';\nimport isEmptyObject from './utils/isEmptyObject';\nimport isRadioInput from './utils/isRadioInput';\nimport isSelectInput from './utils/isSelectInput';\nimport isFileInput from './utils/isFileInput';\nimport onDomRemove from './utils/onDomRemove';\nimport isObject from './utils/isObject';\nimport { getPath } from './utils/getPath';\nimport isPrimitive from './utils/isPrimitive';\nimport isFunction from './utils/isFunction';\nimport isString from './utils/isString';\nimport isUndefined from './utils/isUndefined';\nimport get from './utils/get';\nimport set from './utils/set';\nimport unset from './utils/unset';\nimport isKey from './utils/isKey';\nimport cloneObject from './utils/cloneObject';\nimport modeChecker from './utils/validationModeChecker';\nimport isMultipleSelect from './utils/isMultipleSelect';\nimport compact from './utils/compact';\nimport isNullOrUndefined from './utils/isNullOrUndefined';\nimport isRadioOrCheckboxFunction from './utils/isRadioOrCheckbox';\nimport isWeb from './utils/isWeb';\nimport isHTMLElement from './utils/isHTMLElement';\nimport { EVENTS, UNDEFINED, VALIDATION_MODE } from './constants';\nimport {\n UseFormMethods,\n FieldValues,\n UnpackNestedValue,\n FieldName,\n InternalFieldName,\n FieldErrors,\n Field,\n FieldRefs,\n UseFormOptions,\n RegisterOptions,\n SubmitHandler,\n FieldElement,\n FormStateProxy,\n ReadFormState,\n Ref,\n HandleChange,\n RadioOrCheckboxOption,\n OmitResetState,\n SetValueConfig,\n ErrorOption,\n FormState,\n SubmitErrorHandler,\n FieldNamesMarkedBoolean,\n LiteralToPrimitive,\n DeepPartial,\n InternalNameSet,\n DefaultValues,\n FieldError,\n SetFieldValue,\n FieldArrayDefaultValues,\n ResetFieldArrayFunctionRef,\n UseWatchRenderFunctions,\n RecordInternalNameSet,\n} from './types';\n\nconst isWindowUndefined = typeof window === UNDEFINED;\nconst isProxyEnabled = isWeb ? 'Proxy' in window : typeof Proxy !== UNDEFINED;\n\nexport function useForm<\n TFieldValues extends FieldValues = FieldValues,\n TContext extends object = object\n>({\n mode = VALIDATION_MODE.onSubmit,\n reValidateMode = VALIDATION_MODE.onChange,\n resolver,\n context,\n defaultValues = {} as DefaultValues<TFieldValues>,\n shouldFocusError = true,\n shouldUnregister = true,\n criteriaMode,\n}: UseFormOptions<TFieldValues, TContext> = {}): UseFormMethods<TFieldValues> {\n const fieldsRef = React.useRef<FieldRefs<TFieldValues>>({});\n const fieldArrayDefaultValuesRef = React.useRef<FieldArrayDefaultValues>({});\n const fieldArrayValuesRef = React.useRef<FieldArrayDefaultValues>({});\n const watchFieldsRef = React.useRef<InternalNameSet<TFieldValues>>(new Set());\n const useWatchFieldsRef = React.useRef<RecordInternalNameSet<TFieldValues>>(\n {},\n );\n const useWatchRenderFunctionsRef = React.useRef<UseWatchRenderFunctions>({});\n const fieldsWithValidationRef = React.useRef<\n FieldNamesMarkedBoolean<TFieldValues>\n >({});\n const validFieldsRef = React.useRef<FieldNamesMarkedBoolean<TFieldValues>>(\n {},\n );\n const defaultValuesRef = React.useRef<DefaultValues<TFieldValues>>(\n defaultValues,\n );\n const isUnMount = React.useRef(false);\n const isWatchAllRef = React.useRef(false);\n const handleChangeRef = React.useRef<HandleChange>();\n const shallowFieldsStateRef = React.useRef({});\n const resetFieldArrayFunctionRef = React.useRef<\n ResetFieldArrayFunctionRef<TFieldValues>\n >({});\n const contextRef = React.useRef(context);\n const resolverRef = React.useRef(resolver);\n const fieldArrayNamesRef = React.useRef<InternalNameSet<TFieldValues>>(\n new Set(),\n );\n const modeRef = React.useRef(modeChecker(mode));\n const { isOnSubmit, isOnTouch } = modeRef.current;\n const isValidateAllFieldCriteria = criteriaMode === VALIDATION_MODE.all;\n const [formState, setFormState] = React.useState<FormState<TFieldValues>>({\n isDirty: false,\n isValidating: false,\n dirtyFields: {},\n isSubmitted: false,\n submitCount: 0,\n touched: {},\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: !isOnSubmit,\n errors: {},\n });\n const readFormStateRef = React.useRef<ReadFormState>({\n isDirty: !isProxyEnabled,\n dirtyFields: !isProxyEnabled,\n touched: !isProxyEnabled || isOnTouch,\n isValidating: !isProxyEnabled,\n isSubmitting: !isProxyEnabled,\n isValid: !isProxyEnabled,\n });\n const formStateRef = React.useRef(formState);\n const observerRef = React.useRef<MutationObserver | undefined>();\n const {\n isOnBlur: isReValidateOnBlur,\n isOnChange: isReValidateOnChange,\n } = React.useRef(modeChecker(reValidateMode)).current;\n\n contextRef.current = context;\n resolverRef.current = resolver;\n formStateRef.current = formState;\n shallowFieldsStateRef.current = shouldUnregister\n ? {}\n : isEmptyObject(shallowFieldsStateRef.current)\n ? cloneObject(defaultValues)\n : shallowFieldsStateRef.current;\n\n const updateFormState = React.useCallback(\n (state: Partial<FormState<TFieldValues>> = {}) => {\n if (!isUnMount.current) {\n formStateRef.current = {\n ...formStateRef.current,\n ...state,\n };\n setFormState(formStateRef.current);\n }\n },\n [],\n );\n\n const updateIsValidating = () =>\n readFormStateRef.current.isValidating &&\n updateFormState({\n isValidating: true,\n });\n\n const shouldRenderBaseOnError = React.useCallback(\n (\n name: InternalFieldName<TFieldValues>,\n error: FieldError | undefined,\n shouldRender: boolean | null = false,\n state: {\n dirtyFields?: FieldNamesMarkedBoolean<TFieldValues>;\n isDirty?: boolean;\n touched?: FieldNamesMarkedBoolean<TFieldValues>;\n } = {},\n isValid?: boolean,\n ): boolean | void => {\n let shouldReRender =\n shouldRender ||\n isErrorStateChanged<TFieldValues>({\n errors: formStateRef.current.errors,\n error,\n name,\n validFields: validFieldsRef.current,\n fieldsWithValidation: fieldsWithValidationRef.current,\n });\n const previousError = get(formStateRef.current.errors, name);\n\n if (error) {\n unset(validFieldsRef.current, name);\n shouldReRender =\n shouldReRender ||\n !previousError ||\n !deepEqual(previousError, error, true);\n set(formStateRef.current.errors, name, error);\n } else {\n if (get(fieldsWithValidationRef.current, name) || resolverRef.current) {\n set(validFieldsRef.current, name, true);\n shouldReRender = shouldReRender || previousError;\n }\n\n unset(formStateRef.current.errors, name);\n }\n\n if (\n (shouldReRender && !isNullOrUndefined(shouldRender)) ||\n !isEmptyObject(state) ||\n readFormStateRef.current.isValidating\n ) {\n updateFormState({\n ...state,\n ...(resolverRef.current ? { isValid: !!isValid } : {}),\n isValidating: false,\n });\n }\n },\n [],\n );\n\n const setFieldValue = React.useCallback(\n (name: FieldName<TFieldValues>, rawValue: SetFieldValue<TFieldValues>) => {\n const { ref, options } = fieldsRef.current[name] as Field;\n const value =\n isWeb && isHTMLElement(ref) && isNullOrUndefined(rawValue)\n ? ''\n : rawValue;\n\n if (isRadioInput(ref)) {\n (options || []).forEach(\n ({ ref: radioRef }: { ref: HTMLInputElement }) =>\n (radioRef.checked = radioRef.value === value),\n );\n } else if (isFileInput(ref) && !isString(value)) {\n ref.files = value as FileList;\n } else if (isMultipleSelect(ref)) {\n [...ref.options].forEach(\n (selectRef) =>\n (selectRef.selected = (value as string[]).includes(\n selectRef.value,\n )),\n );\n } else if (isCheckBoxInput(ref) && options) {\n options.length > 1\n ? options.forEach(\n ({ ref: checkboxRef }) =>\n (checkboxRef.checked = Array.isArray(value)\n ? !!(value as []).find(\n (data: string) => data === checkboxRef.value,\n )\n : value === checkboxRef.value),\n )\n : (options[0].ref.checked = !!value);\n } else {\n ref.value = value;\n }\n },\n [],\n );\n\n const isFormDirty = React.useCallback(\n (name?: string, data?: unknown[]): boolean => {\n if (readFormStateRef.current.isDirty) {\n const formValues = getValues();\n\n name && data && set(formValues, name, data);\n\n return !deepEqual(formValues, defaultValuesRef.current);\n }\n\n return false;\n },\n [],\n );\n\n const updateAndGetDirtyState = React.useCallback(\n (\n name: InternalFieldName<TFieldValues>,\n shouldRender = true,\n ): Partial<\n Pick<FormState<TFieldValues>, 'dirtyFields' | 'isDirty' | 'touched'>\n > => {\n if (\n readFormStateRef.current.isDirty ||\n readFormStateRef.current.dirtyFields\n ) {\n const isFieldDirty = !deepEqual(\n get(defaultValuesRef.current, name),\n getFieldValue(fieldsRef, name, shallowFieldsStateRef),\n );\n const isDirtyFieldExist = get(formStateRef.current.dirtyFields, name);\n const previousIsDirty = formStateRef.current.isDirty;\n\n isFieldDirty\n ? set(formStateRef.current.dirtyFields, name, true)\n : unset(formStateRef.current.dirtyFields, name);\n\n const state = {\n isDirty: isFormDirty(),\n dirtyFields: formStateRef.current.dirtyFields,\n };\n\n const isChanged =\n (readFormStateRef.current.isDirty &&\n previousIsDirty !== state.isDirty) ||\n (readFormStateRef.current.dirtyFields &&\n isDirtyFieldExist !== get(formStateRef.current.dirtyFields, name));\n\n isChanged && shouldRender && updateFormState(state);\n\n return isChanged ? state : {};\n }\n\n return {};\n },\n [],\n );\n\n const executeValidation = React.useCallback(\n async (\n name: InternalFieldName<TFieldValues>,\n skipReRender?: boolean | null,\n ): Promise<boolean> => {\n if (process.env.NODE_ENV !== 'production') {\n if (!fieldsRef.current[name]) {\n console.warn('📋 Field is missing with `name` attribute: ', name);\n return false;\n }\n }\n\n const error = (\n await validateField<TFieldValues>(\n fieldsRef,\n isValidateAllFieldCriteria,\n fieldsRef.current[name] as Field,\n shallowFieldsStateRef,\n )\n )[name];\n\n shouldRenderBaseOnError(name, error, skipReRender);\n\n return isUndefined(error);\n },\n [shouldRenderBaseOnError, isValidateAllFieldCriteria],\n );\n\n const executeSchemaOrResolverValidation = React.useCallback(\n async (\n names:\n | InternalFieldName<TFieldValues>\n | InternalFieldName<TFieldValues>[],\n ) => {\n const { errors } = await resolverRef.current!(\n getValues(),\n contextRef.current,\n isValidateAllFieldCriteria,\n );\n const previousFormIsValid = formStateRef.current.isValid;\n\n if (Array.isArray(names)) {\n const isInputsValid = names\n .map((name) => {\n const error = get(errors, name);\n\n error\n ? set(formStateRef.current.errors, name, error)\n : unset(formStateRef.current.errors, name);\n\n return !error;\n })\n .every(Boolean);\n\n updateFormState({\n isValid: isEmptyObject(errors),\n isValidating: false,\n });\n\n return isInputsValid;\n } else {\n const error = get(errors, names);\n\n shouldRenderBaseOnError(\n names,\n error,\n previousFormIsValid !== isEmptyObject(errors),\n {},\n isEmptyObject(errors),\n );\n\n return !error;\n }\n },\n [shouldRenderBaseOnError, isValidateAllFieldCriteria],\n );\n\n const trigger = React.useCallback(\n async (\n name?: FieldName<TFieldValues> | FieldName<TFieldValues>[],\n ): Promise<boolean> => {\n const fields = name || Object.keys(fieldsRef.current);\n\n updateIsValidating();\n\n if (resolverRef.current) {\n return executeSchemaOrResolverValidation(fields);\n }\n\n if (Array.isArray(fields)) {\n !name && (formStateRef.current.errors = {});\n const result = await Promise.all(\n fields.map(async (data) => await executeValidation(data, null)),\n );\n updateFormState({\n isValidating: false,\n });\n return result.every(Boolean);\n }\n\n return await executeValidation(fields);\n },\n [executeSchemaOrResolverValidation, executeValidation],\n );\n\n const setInternalValues = React.useCallback(\n (\n name: FieldName<TFieldValues>,\n value: SetFieldValue<TFieldValues>,\n { shouldDirty, shouldValidate }: SetValueConfig,\n ) => {\n const data = {};\n set(data, name, value);\n\n for (const fieldName of getPath(name, value)) {\n if (fieldsRef.current[fieldName]) {\n setFieldValue(fieldName, get(data, fieldName));\n shouldDirty && updateAndGetDirtyState(fieldName);\n shouldValidate && trigger(fieldName as FieldName<TFieldValues>);\n }\n }\n },\n [trigger, setFieldValue, updateAndGetDirtyState],\n );\n\n const setInternalValue = React.useCallback(\n (\n name: FieldName<TFieldValues>,\n value: SetFieldValue<TFieldValues>,\n config: SetValueConfig,\n ) => {\n !shouldUnregister &&\n !isPrimitive(value) &&\n set(\n shallowFieldsStateRef.current,\n name,\n Array.isArray(value) ? [...value] : { ...value },\n );\n\n if (fieldsRef.current[name]) {\n setFieldValue(name, value);\n config.shouldDirty && updateAndGetDirtyState(name);\n config.shouldValidate && trigger(name as any);\n } else if (!isPrimitive(value)) {\n setInternalValues(name, value, config);\n\n if (fieldArrayNamesRef.current.has(name)) {\n const parentName = getNodeParentName(name) || name;\n set(fieldArrayDefaultValuesRef.current, name, value);\n\n resetFieldArrayFunctionRef.current[parentName]({\n [parentName]: get(fieldArrayDefaultValuesRef.current, parentName),\n } as UnpackNestedValue<DeepPartial<TFieldValues>>);\n\n if (\n (readFormStateRef.current.isDirty ||\n readFormStateRef.current.dirtyFields) &&\n config.shouldDirty\n ) {\n set(\n formStateRef.current.dirtyFields,\n name,\n setFieldArrayDirtyFields(\n value,\n get(defaultValuesRef.current, name, []),\n get(formStateRef.current.dirtyFields, name, []),\n ),\n );\n\n updateFormState({\n isDirty: !deepEqual(\n { ...getValues(), [name]: value },\n defaultValuesRef.current,\n ),\n });\n }\n }\n }\n\n !shouldUnregister && set(shallowFieldsStateRef.current, name, value);\n },\n [updateAndGetDirtyState, setFieldValue, setInternalValues],\n );\n\n const isFieldWatched = <T extends FieldName<TFieldValues>>(name: T) =>\n isWatchAllRef.current ||\n watchFieldsRef.current.has(name) ||\n watchFieldsRef.current.has((name.match(/\\w+/) || [])[0]);\n\n const renderWatchedInputs = <T extends FieldName<FieldValues>>(\n name: T,\n ): boolean => {\n let found = true;\n\n if (!isEmptyObject(useWatchFieldsRef.current)) {\n for (const key in useWatchFieldsRef.current) {\n if (\n !name ||\n !useWatchFieldsRef.current[key].size ||\n useWatchFieldsRef.current[key].has(name) ||\n useWatchFieldsRef.current[key].has(getNodeParentName(name))\n ) {\n useWatchRenderFunctionsRef.current[key]();\n found = false;\n }\n }\n }\n\n return found;\n };\n\n function setValue(\n name: FieldName<TFieldValues>,\n value: SetFieldValue<TFieldValues>,\n config?: SetValueConfig,\n ): void {\n setInternalValue(name, value, config || {});\n isFieldWatched(name) && updateFormState();\n renderWatchedInputs(name);\n }\n\n handleChangeRef.current = handleChangeRef.current\n ? handleChangeRef.current\n : async ({ type, target }: Event): Promise<void | boolean> => {\n let name = (target as Ref)!.name;\n const field = fieldsRef.current[name];\n let error;\n let isValid;\n\n if (field) {\n const isBlurEvent = type === EVENTS.BLUR;\n const shouldSkipValidation = skipValidation({\n isBlurEvent,\n isReValidateOnChange,\n isReValidateOnBlur,\n isTouched: !!get(formStateRef.current.touched, name),\n isSubmitted: formStateRef.current.isSubmitted,\n ...modeRef.current,\n });\n let state = updateAndGetDirtyState(name, false);\n let shouldRender =\n !isEmptyObject(state) ||\n (!isBlurEvent && isFieldWatched(name as FieldName<TFieldValues>));\n\n if (\n isBlurEvent &&\n !get(formStateRef.current.touched, name) &&\n readFormStateRef.current.touched\n ) {\n set(formStateRef.current.touched, name, true);\n state = {\n ...state,\n touched: formStateRef.current.touched,\n };\n }\n\n if (!shouldUnregister && isCheckBoxInput(target as Ref)) {\n set(\n shallowFieldsStateRef.current,\n name,\n getFieldValue(fieldsRef, name),\n );\n }\n\n if (shouldSkipValidation) {\n !isBlurEvent && renderWatchedInputs(name);\n return (\n (!isEmptyObject(state) ||\n (shouldRender && isEmptyObject(state))) &&\n updateFormState(state)\n );\n }\n\n updateIsValidating();\n\n if (resolverRef.current) {\n const { errors } = await resolverRef.current(\n getValues(),\n contextRef.current,\n isValidateAllFieldCriteria,\n );\n const previousFormIsValid = formStateRef.current.isValid;\n error = get(errors, name);\n\n if (\n isCheckBoxInput(target as Ref) &&\n !error &&\n resolverRef.current\n ) {\n const parentNodeName = getNodeParentName(name);\n const currentError = get(errors, parentNodeName, {});\n currentError.type &&\n currentError.message &&\n (error = currentError);\n\n if (\n parentNodeName &&\n (currentError ||\n get(formStateRef.current.errors, parentNodeName))\n ) {\n name = parentNodeName;\n }\n }\n\n isValid = isEmptyObject(errors);\n\n previousFormIsValid !== isValid && (shouldRender = true);\n } else {\n error = (\n await validateField<TFieldValues>(\n fieldsRef,\n isValidateAllFieldCriteria,\n field,\n shallowFieldsStateRef,\n )\n )[name];\n }\n\n !isBlurEvent && renderWatchedInputs(name);\n shouldRenderBaseOnError(name, error, shouldRender, state, isValid);\n }\n };\n\n function setFieldArrayDefaultValues<T extends FieldValues>(data: T): T {\n if (!shouldUnregister) {\n let copy = cloneObject(data);\n\n for (const value of fieldArrayNamesRef.current) {\n if (isKey(value) && !copy[value]) {\n copy = {\n ...copy,\n [value]: [],\n };\n }\n }\n\n return copy;\n }\n return data;\n }\n\n function getValues(): UnpackNestedValue<TFieldValues>;\n function getValues<TFieldName extends string, TFieldValue extends unknown>(\n name: TFieldName,\n ): TFieldName extends keyof TFieldValues\n ? UnpackNestedValue<TFieldValues>[TFieldName]\n : TFieldValue;\n function getValues<TFieldName extends keyof TFieldValues>(\n names: TFieldName[],\n ): UnpackNestedValue<Pick<TFieldValues, TFieldName>>;\n function getValues(payload?: string | string[]): unknown {\n if (isString(payload)) {\n return getFieldValue(fieldsRef, payload, shallowFieldsStateRef);\n }\n\n if (Array.isArray(payload)) {\n const data = {};\n\n for (const name of payload) {\n set(data, name, getFieldValue(fieldsRef, name, shallowFieldsStateRef));\n }\n\n return data;\n }\n\n return setFieldArrayDefaultValues(\n getFieldsValues(\n fieldsRef,\n cloneObject(shallowFieldsStateRef.current),\n shouldUnregister,\n ),\n );\n }\n\n const validateResolver = React.useCallback(\n async (values = {}) => {\n const newDefaultValues = isEmptyObject(fieldsRef.current)\n ? defaultValuesRef.current\n : {};\n\n const { errors } =\n (await resolverRef.current!(\n {\n ...newDefaultValues,\n ...getValues(),\n ...values,\n },\n contextRef.current,\n isValidateAllFieldCriteria,\n )) || {};\n const isValid = isEmptyObject(errors);\n\n formStateRef.current.isValid !== isValid &&\n updateFormState({\n isValid,\n });\n },\n [isValidateAllFieldCriteria],\n );\n\n const removeFieldEventListener = React.useCallback(\n (field: Field, forceDelete?: boolean) => {\n findRemovedFieldAndRemoveListener(\n fieldsRef,\n handleChangeRef.current!,\n field,\n shallowFieldsStateRef,\n shouldUnregister,\n forceDelete,\n );\n\n if (shouldUnregister) {\n unset(validFieldsRef.current, field.ref.name);\n unset(fieldsWithValidationRef.current, field.ref.name);\n }\n },\n [shouldUnregister],\n );\n\n const updateWatchedValue = React.useCallback((name: string) => {\n if (isWatchAllRef.current) {\n updateFormState();\n } else {\n for (const watchField of watchFieldsRef.current) {\n if (watchField.startsWith(name)) {\n updateFormState();\n break;\n }\n }\n\n renderWatchedInputs(name);\n }\n }, []);\n\n const removeFieldEventListenerAndRef = React.useCallback(\n (field?: Field, forceDelete?: boolean) => {\n if (field) {\n removeFieldEventListener(field, forceDelete);\n\n if (shouldUnregister && !compact(field.options || []).length) {\n unset(formStateRef.current.errors, field.ref.name);\n set(formStateRef.current.dirtyFields, field.ref.name, true);\n\n updateFormState({\n isDirty: isFormDirty(),\n });\n\n readFormStateRef.current.isValid &&\n resolverRef.current &&\n validateResolver();\n updateWatchedValue(field.ref.name);\n }\n }\n },\n [validateResolver, removeFieldEventListener],\n );\n\n function clearErrors(\n name?: FieldName<TFieldValues> | FieldName<TFieldValues>[],\n ): void {\n name &&\n (Array.isArray(name) ? name : [name]).forEach((inputName) =>\n fieldsRef.current[inputName] && isKey(inputName)\n ? delete formStateRef.current.errors[inputName]\n : unset(formStateRef.current.errors, inputName),\n );\n\n updateFormState({\n errors: name ? formStateRef.current.errors : {},\n });\n }\n\n function setError(name: FieldName<TFieldValues>, error: ErrorOption) {\n const ref = (fieldsRef.current[name] || {})!.ref;\n\n set(formStateRef.current.errors, name, {\n ...error,\n ref,\n });\n\n updateFormState({\n isValid: false,\n });\n\n error.shouldFocus && ref && ref.focus && ref.focus();\n }\n\n const watchInternal = React.useCallback(\n <T>(fieldNames?: string | string[], defaultValue?: T, watchId?: string) => {\n const watchFields = watchId\n ? useWatchFieldsRef.current[watchId]\n : watchFieldsRef.current;\n let fieldValues = getFieldsValues<TFieldValues>(\n fieldsRef,\n cloneObject(shallowFieldsStateRef.current),\n shouldUnregister,\n false,\n fieldNames,\n );\n\n if (isString(fieldNames)) {\n const parentNodeName = getNodeParentName(fieldNames) || fieldNames;\n\n if (fieldArrayNamesRef.current.has(parentNodeName)) {\n fieldValues = {\n ...fieldArrayValuesRef.current,\n ...fieldValues,\n };\n }\n\n return assignWatchFields<TFieldValues>(\n fieldValues,\n fieldNames,\n watchFields,\n isUndefined(get(defaultValuesRef.current, fieldNames))\n ? defaultValue\n : get(defaultValuesRef.current, fieldNames),\n true,\n );\n }\n\n const combinedDefaultValues = isUndefined(defaultValue)\n ? defaultValuesRef.current\n : defaultValue;\n\n if (Array.isArray(fieldNames)) {\n return fieldNames.reduce(\n (previous, name) => ({\n ...previous,\n [name]: assignWatchFields<TFieldValues>(\n fieldValues,\n name,\n watchFields,\n combinedDefaultValues as UnpackNestedValue<\n DeepPartial<TFieldValues>\n >,\n ),\n }),\n {},\n );\n }\n\n isWatchAllRef.current = isUndefined(watchId);\n\n return transformToNestObject(\n (!isEmptyObject(fieldValues) && fieldValues) ||\n (combinedDefaultValues as FieldValues),\n );\n },\n [],\n );\n\n function watch(): UnpackNestedValue<TFieldValues>;\n function watch<\n TFieldName extends string,\n TFieldValue extends TFieldValues[TFieldName]\n >(\n name?: TFieldName,\n defaultValue?: UnpackNestedValue<LiteralToPrimitive<TFieldValue>>,\n ): UnpackNestedValue<LiteralToPrimitive<TFieldValue>>;\n function watch<TFieldName extends keyof TFieldValues>(\n names: TFieldName[],\n defaultValues?: UnpackNestedValue<\n DeepPartial<Pick<TFieldValues, TFieldName>>\n >,\n ): UnpackNestedValue<Pick<TFieldValues, TFieldName>>;\n function watch(\n names: string[],\n defaultValues?: UnpackNestedValue<DeepPartial<TFieldValues>>,\n ): UnpackNestedValue<DeepPartial<TFieldValues>>;\n function watch(\n fieldNames?: string | string[] | undefined,\n defaultValue?: unknown,\n ): unknown {\n return watchInternal(fieldNames, defaultValue);\n }\n\n function unregister(\n name: FieldName<TFieldValues> | FieldName<TFieldValues>[],\n ): void {\n for (const fieldName of Array.isArray(name) ? name : [name]) {\n removeFieldEventListenerAndRef(fieldsRef.current[fieldName], true);\n }\n }\n\n function registerFieldRef<TFieldElement extends FieldElement<TFieldValues>>(\n ref: TFieldElement & Ref,\n options: RegisterOptions | null = {},\n ): ((name: InternalFieldName<TFieldValues>) => void) | void {\n if (process.env.NODE_ENV !== 'production') {\n if (!ref.name) {\n return console.warn(\n '📋 Field is missing `name` attribute',\n ref,\n `https://react-hook-form.com/api#useForm`,\n );\n }\n\n if (\n fieldArrayNamesRef.current.has(ref.name.split(/\\[\\d+\\]$/)[0]) &&\n !RegExp(\n `^${ref.name.split(/\\[\\d+\\]$/)[0]}[\\\\d+].\\\\w+`\n .replace(/\\[/g, '\\\\[')\n .replace(/\\]/g, '\\\\]'),\n ).test(ref.name)\n ) {\n return console.warn(\n '📋 `name` prop should be in object shape: name=\"test[index].name\"',\n ref,\n 'https://react-hook-form.com/api#useFieldArray',\n );\n }\n }\n\n const { name, type, value } = ref;\n const fieldRefAndValidationOptions = {\n ref,\n ...options,\n };\n const fields = fieldsRef.current;\n const isRadioOrCheckbox = isRadioOrCheckboxFunction(ref);\n const isFieldArray = isNameInFieldArray(fieldArrayNamesRef.current, name);\n const compareRef = (currentRef: Ref) =>\n isWeb && (!isHTMLElement(ref) || currentRef === ref);\n let field = fields[name] as Field;\n let isEmptyDefaultValue = true;\n let defaultValue;\n\n if (\n field &&\n (isRadioOrCheckbox\n ? Array.isArray(field.options) &&\n compact(field.options).find((option) => {\n return value === option.ref.value && compareRef(option.ref);\n })\n : compareRef(field.ref))\n ) {\n fields[name] = {\n ...field,\n ...options,\n };\n return;\n }\n\n if (type) {\n field = isRadioOrCheckbox\n ? {\n options: [\n ...compact((field && field.options) || []),\n {\n ref,\n } as RadioOrCheckboxOption,\n ],\n ref: { type, name },\n ...options,\n }\n : {\n ...fieldRefAndValidationOptions,\n };\n } else {\n field = fieldRefAndValidationOptions;\n }\n\n fields[name] = field;\n\n const isEmptyUnmountFields = isUndefined(\n get(shallowFieldsStateRef.current, name),\n );\n\n if (!isEmptyObject(defaultValuesRef.current) || !isEmptyUnmountFields) {\n defaultValue = get(\n isEmptyUnmountFields\n ? defaultValuesRef.current\n : shallowFieldsStateRef.current,\n name,\n );\n isEmptyDefaultValue = isUndefined(defaultValue);\n\n if (!isEmptyDefaultValue && !isFieldArray) {\n setFieldValue(name as FieldName<TFieldValues>, defaultValue);\n }\n }\n\n if (!isEmptyObject(options)) {\n set(fieldsWithValidationRef.current, name, true);\n\n if (!isOnSubmit && readFormStateRef.current.isValid) {\n validateField(\n fieldsRef,\n isValidateAllFieldCriteria,\n field,\n shallowFieldsStateRef,\n ).then((error: FieldErrors) => {\n const previousFormIsValid = formStateRef.current.isValid;\n\n isEmptyObject(error)\n ? set(validFieldsRef.current, name, true)\n : unset(validFieldsRef.current, name);\n\n previousFormIsValid !== isEmptyObject(error) && updateFormState();\n });\n }\n }\n\n if (shouldUnregister && !(isFieldArray && isEmptyDefaultValue)) {\n !isFieldArray && unset(formStateRef.current.dirtyFields, name);\n }\n\n if (type) {\n attachEventListeners(\n isRadioOrCheckbox && field.options\n ? field.options[field.options.length - 1]\n : field,\n isRadioOrCheckbox || isSelectInput(ref),\n handleChangeRef.current,\n );\n }\n }\n\n function register<TFieldElement extends FieldElement<TFieldValues>>(\n options?: RegisterOptions,\n ): (ref: (TFieldElement & Ref) | null) => void;\n function register(\n name: FieldName<TFieldValues>,\n options?: RegisterOptions,\n ): void;\n function register<TFieldElement extends FieldElement<TFieldValues>>(\n ref: (TFieldElement & Ref) | null,\n options?: RegisterOptions,\n ): void;\n function register<TFieldElement extends FieldElement<TFieldValues>>(\n refOrRegisterOptions?:\n | FieldName<TFieldValues>\n | RegisterOptions\n | (TFieldElement & Ref)\n | null,\n options?: RegisterOptions,\n ): ((ref: (TFieldElement & Ref) | null) => void) | void {\n if (!isWindowUndefined) {\n if (isString(refOrRegisterOptions)) {\n registerFieldRef({ name: refOrRegisterOptions }, options);\n } else if (\n isObject(refOrRegisterOptions) &&\n 'name' in refOrRegisterOptions\n ) {\n registerFieldRef(refOrRegisterOptions, options);\n } else {\n return (ref: (TFieldElement & Ref) | null) =>\n ref && registerFieldRef(ref, refOrRegisterOptions);\n }\n }\n }\n\n const handleSubmit = React.useCallback(\n <TSubmitFieldValues extends FieldValues = TFieldValues>(\n onValid: SubmitHandler<TSubmitFieldValues>,\n onInvalid?: SubmitErrorHandler<TFieldValues>,\n ) => async (e?: React.BaseSyntheticEvent): Promise<void> => {\n if (e && e.preventDefault) {\n e.preventDefault();\n e.persist();\n }\n let fieldErrors: FieldErrors<TFieldValues> = {};\n let fieldValues = setFieldArrayDefaultValues(\n getFieldsValues(\n fieldsRef,\n cloneObject(shallowFieldsStateRef.current),\n shouldUnregister,\n true,\n ),\n );\n\n readFormStateRef.current.isSubmitting &&\n updateFormState({\n isSubmitting: true,\n });\n\n try {\n if (resolverRef.current) {\n const { errors, values } = await resolverRef.current(\n fieldValues,\n contextRef.current,\n isValidateAllFieldCriteria,\n );\n formStateRef.current.errors = fieldErrors = errors;\n fieldValues = values;\n } else {\n for (const field of Object.values(fieldsRef.current)) {\n if (field) {\n const { name } = field.ref;\n\n const fieldError = await validateField(\n fieldsRef,\n isValidateAllFieldCriteria,\n field,\n shallowFieldsStateRef,\n );\n\n if (fieldError[name]) {\n set(fieldErrors, name, fieldError[name]);\n unset(validFieldsRef.current, name);\n } else if (get(fieldsWithValidationRef.current, name)) {\n unset(formStateRef.current.errors, name);\n set(validFieldsRef.current, name, true);\n }\n }\n }\n }\n\n if (\n isEmptyObject(fieldErrors) &&\n Object.keys(formStateRef.current.errors).every(\n (name) => name in fieldsRef.current,\n )\n ) {\n updateFormState({\n errors: {},\n isSubmitting: true,\n });\n await onValid(fieldValues, e);\n } else {\n formStateRef.current.errors = {\n ...formStateRef.current.errors,\n ...fieldErrors,\n };\n onInvalid && (await onInvalid(formStateRef.current.errors, e));\n shouldFocusError &&\n focusOnErrorField(fieldsRef.current, formStateRef.current.errors);\n }\n } finally {\n formStateRef.current.isSubmitting = false;\n updateFormState({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(formStateRef.current.errors),\n submitCount: formStateRef.current.submitCount + 1,\n });\n }\n },\n [shouldFocusError, isValidateAllFieldCriteria],\n );\n\n const resetRefs = ({\n errors,\n isDirty,\n isSubmitted,\n touched,\n isValid,\n submitCount,\n dirtyFields,\n }: OmitResetState) => {\n if (!isValid) {\n validFieldsRef.current = {};\n fieldsWithValidationRef.current = {};\n }\n\n fieldArrayDefaultValuesRef.current = {};\n watchFieldsRef.current = new Set();\n isWatchAllRef.current = false;\n\n updateFormState({\n submitCount: submitCount ? formStateRef.current.submitCount : 0,\n isDirty: isDirty ? formStateRef.current.isDirty : false,\n isSubmitted: isSubmitted ? formStateRef.current.isSubmitted : false,\n isValid: isValid ? formStateRef.current.isValid : false,\n dirtyFields: dirtyFields ? formStateRef.current.dirtyFields : {},\n touched: touched ? formStateRef.current.touched : {},\n errors: errors ? formStateRef.current.errors : {},\n isSubmitting: false,\n isSubmitSuccessful: false,\n });\n };\n\n const reset = (\n values?: DefaultValues<TFieldValues>,\n omitResetState: OmitResetState = {},\n ): void => {\n if (isWeb) {\n for (const field of Object.values(fieldsRef.current)) {\n if (field) {\n const { ref, options } = field;\n const inputRef =\n isRadioOrCheckboxFunction(ref) && Array.isArray(options)\n ? options[0].ref\n : ref;\n\n if (isHTMLElement(inputRef)) {\n try {\n inputRef.closest('form')!.reset();\n break;\n } catch {}\n }\n }\n }\n }\n\n fieldsRef.current = {};\n defaultValuesRef.current = { ...(values || defaultValuesRef.current) };\n values && renderWatchedInputs('');\n\n Object.values(resetFieldArrayFunctionRef.current).forEach(\n (resetFieldArray) => isFunction(resetFieldArray) && resetFieldArray(),\n );\n\n shallowFieldsStateRef.current = shouldUnregister\n ? {}\n : cloneObject(values || defaultValuesRef.current);\n\n resetRefs(omitResetState);\n };\n\n React.useEffect(() => {\n resolver && readFormStateRef.current.isValid && validateResolver();\n observerRef.current =\n observerRef.current || !isWeb\n ? observerRef.current\n : onDomRemove(fieldsRef, removeFieldEventListenerAndRef);\n }, [removeFieldEventListenerAndRef, defaultValuesRef.current]);\n\n React.useEffect(\n () => () => {\n observerRef.current && observerRef.current.disconnect();\n isUnMount.current = true;\n\n if (process.env.NODE_ENV !== 'production') {\n return;\n }\n\n Object.values(fieldsRef.current).forEach((field) =>\n removeFieldEventListenerAndRef(field, true),\n );\n },\n [],\n );\n\n if (!resolver && readFormStateRef.current.isValid) {\n formState.isValid =\n deepEqual(validFieldsRef.current, fieldsWithValidationRef.current) &&\n isEmptyObject(formStateRef.current.errors);\n }\n\n const commonProps = {\n trigger,\n setValue: React.useCallback(setValue, [setInternalValue, trigger]),\n getValues: React.useCallback(getValues, []),\n register: React.useCallback(register, [defaultValuesRef.current]),\n unregister: React.useCallback(unregister, []),\n formState: isProxyEnabled\n ? new Proxy(formState, {\n get: (obj, prop: keyof FormStateProxy) => {\n if (process.env.NODE_ENV !== 'production') {\n if (prop === 'isValid' && isOnSubmit) {\n console.warn(\n '📋 `formState.isValid` is applicable with `onTouched`, `onChange` or `onBlur` mode. https://react-hook-form.com/api#formState',\n );\n }\n }\n\n if (prop in obj) {\n readFormStateRef.current[prop] = true;\n return obj[prop];\n }\n\n return undefined;\n },\n })\n : formState,\n };\n\n const control = React.useMemo(\n () => ({\n isFormDirty,\n updateWatchedValue,\n shouldUnregister,\n updateFormState,\n removeFieldEventListener,\n watchInternal,\n mode: modeRef.current,\n reValidateMode: {\n isReValidateOnBlur,\n isReValidateOnChange,\n },\n validateResolver: resolver ? validateResolver : undefined,\n fieldsRef,\n resetFieldArrayFunctionRef,\n useWatchFieldsRef,\n useWatchRenderFunctionsRef,\n fieldArrayDefaultValuesRef,\n validFieldsRef,\n fieldsWithValidationRef,\n fieldArrayNamesRef,\n readFormStateRef,\n formStateRef,\n defaultValuesRef,\n shallowFieldsStateRef,\n fieldArrayValuesRef,\n ...commonProps,\n }),\n [\n defaultValuesRef.current,\n updateWatchedValue,\n shouldUnregister,\n removeFieldEventListener,\n watchInternal,\n ],\n );\n\n return {\n watch,\n control,\n handleSubmit,\n reset: React.useCallback(reset, []),\n clearErrors: React.useCallback(clearErrors, []),\n setError: React.useCallback(setError, []),\n errors: formState.errors,\n ...commonProps,\n };\n}\n","import * as React from 'react';\nimport { UseFormMethods, FieldValues, FormProviderProps } from './types';\n\nconst FormContext = React.createContext<UseFormMethods | null>(null);\n\nFormContext.displayName = 'RHFContext';\n\nexport const useFormContext = <\n TFieldValues extends FieldValues\n>(): UseFormMethods<TFieldValues> =>\n React.useContext(FormContext) as UseFormMethods<TFieldValues>;\n\nexport const FormProvider = <TFieldValues extends FieldValues>({\n children,\n ...props\n}: FormProviderProps<TFieldValues>) => (\n <FormContext.Provider value={{ ...props } as UseFormMethods}>\n {children}\n </FormContext.Provider>\n);\n","import { UNDEFINED } from '../constants';\n\nexport default () => {\n const d =\n typeof performance === UNDEFINED ? Date.now() : performance.now() * 1000;\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16 + d) % 16 | 0;\n\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n","import isUndefined from './isUndefined';\nimport compact from './compact';\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 (Array.isArray(index) ? index : [index]).sort((a, b) => a - b),\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 if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n return data;\n }\n\n return [];\n};\n","export default <T>(data: T[], indexA: number, indexB: number): void => {\n const temp = [data[indexB], data[indexA]];\n data[indexA] = temp[0];\n data[indexB] = temp[1];\n};\n","export default function prepend<T>(data: T[]): (T | undefined)[];\nexport default function prepend<T>(data: T[], value: T | T[]): T[];\nexport default function prepend<T>(\n data: T[],\n value?: T | T[],\n): (T | undefined)[] {\n return [...(Array.isArray(value) ? value : [value || undefined]), ...data];\n}\n","export 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 ...(Array.isArray(value) ? value : [value || undefined]),\n ...data.slice(index),\n ];\n}\n","export default <T>(value: T | T[]): undefined[] | undefined =>\n Array.isArray(value) ? Array(value.length).fill(undefined) : undefined;\n","import isObject from './isObject';\n\nexport default <T>(value: T) =>\n ((Array.isArray(value) ? value : [value]) as T[]).map((data) => {\n if (isObject(data)) {\n const object: Record<string, boolean> = {};\n\n for (const key in data) {\n object[key] = true;\n }\n\n return object;\n }\n\n return true;\n });\n","import * as React from 'react';\nimport { useFormContext } from './useFormContext';\nimport setFieldArrayDirtyFields from './logic/setFieldArrayDirtyFields';\nimport { isMatchFieldArrayName } from './logic/isNameInFieldArray';\nimport generateId from './logic/generateId';\nimport getFieldArrayParentName from './logic/getNodeParentName';\nimport get from './utils/get';\nimport set from './utils/set';\nimport removeArrayAt from './utils/remove';\nimport unset from './utils/unset';\nimport moveArrayAt from './utils/move';\nimport swapArrayAt from './utils/swap';\nimport prependAt from './utils/prepend';\nimport insertAt from './utils/insert';\nimport fillEmptyArray from './utils/fillEmptyArray';\nimport fillBooleanArray from './utils/fillBooleanArray';\nimport compact from './utils/compact';\nimport cloneObject from './utils/cloneObject';\nimport {\n Field,\n FieldValues,\n UseFieldArrayOptions,\n Control,\n ArrayField,\n UnpackNestedValue,\n DeepPartial,\n UseFieldArrayMethods,\n} from './types';\n\nconst mapIds = <\n TFieldArrayValues extends FieldValues = FieldValues,\n TKeyName extends string = 'id'\n>(\n values: Partial<TFieldArrayValues>[] = [],\n keyName: TKeyName,\n skipWarn?: boolean,\n): Partial<ArrayField<TFieldArrayValues, TKeyName>>[] => {\n if (process.env.NODE_ENV !== 'production') {\n if (!skipWarn) {\n for (const value of values) {\n if (typeof value === 'object') {\n if (keyName in value) {\n console.warn(\n `📋 useFieldArray fieldValues contain the keyName \\`${keyName}\\` which is reserved for use by useFieldArray. https://react-hook-form.com/api#useFieldArray`,\n );\n\n break;\n }\n } else {\n console.warn(\n `📋 useFieldArray input's name should be in object shape instead of flat array. https://react-hook-form.com/api#useFieldArray`,\n );\n\n break;\n }\n }\n }\n }\n\n return values.map((value: Partial<TFieldArrayValues>) => ({\n [keyName]: value[keyName] || generateId(),\n ...value,\n }));\n};\n\nexport const useFieldArray = <\n TFieldArrayValues extends FieldValues = FieldValues,\n TKeyName extends string = 'id',\n TControl extends Control = Control\n>({\n control,\n name,\n keyName = 'id' as TKeyName,\n}: UseFieldArrayOptions<TKeyName, TControl>): UseFieldArrayMethods<\n TFieldArrayValues,\n TKeyName\n> => {\n const methods = useFormContext();\n\n if (process.env.NODE_ENV !== 'production') {\n if (!control && !methods) {\n throw new Error(\n '📋 useFieldArray is missing `control` prop. https://react-hook-form.com/api#useFieldArray',\n );\n }\n }\n\n const focusIndexRef = React.useRef(-1);\n const isUnMount = React.useRef(false);\n const {\n isFormDirty,\n updateWatchedValue,\n resetFieldArrayFunctionRef,\n fieldArrayNamesRef,\n fieldsRef,\n defaultValuesRef,\n removeFieldEventListener,\n formStateRef,\n shallowFieldsStateRef,\n updateFormState,\n readFormStateRef,\n validFieldsRef,\n fieldsWithValidationRef,\n fieldArrayDefaultValuesRef,\n validateResolver,\n getValues,\n shouldUnregister,\n fieldArrayValuesRef,\n } = control || methods.control;\n\n const getDefaultValues = <T>(values: T) =>\n get(shouldUnregister ? values : shallowFieldsStateRef.current, name, []);\n\n const fieldArrayParentName = getFieldArrayParentName(name);\n const memoizedDefaultValues = React.useRef<Partial<TFieldArrayValues>[]>([\n ...(get(fieldArrayDefaultValuesRef.current, fieldArrayParentName)\n ? getDefaultValues(fieldArrayDefaultValuesRef.current)\n : getDefaultValues(defaultValuesRef.current)),\n ]);\n const [fields, setFields] = React.useState<\n Partial<ArrayField<TFieldArrayValues, TKeyName>>[]\n >(mapIds(memoizedDefaultValues.current, keyName));\n set(fieldArrayValuesRef.current, name, fields);\n\n const omitKey = <T extends (Partial<TFieldArrayValues> | undefined)[]>(\n fields: T,\n ) => fields.map(({ [keyName]: omitted, ...rest } = {}) => rest);\n\n fieldArrayNamesRef.current.add(name);\n\n const getFieldArrayValue = React.useCallback(\n () => get(fieldArrayValuesRef.current, name, []),\n [name],\n );\n\n const getCurrentFieldsValues = () =>\n mapIds<TFieldArrayValues, TKeyName>(\n get(getValues(), name, getFieldArrayValue()).map(\n (item: Partial<TFieldArrayValues>, index: number) => ({\n ...getFieldArrayValue()[index],\n ...item,\n }),\n ),\n keyName,\n true,\n );\n\n fieldArrayNamesRef.current.add(name);\n\n if (\n fieldArrayParentName &&\n !get(fieldArrayDefaultValuesRef.current, fieldArrayParentName)\n ) {\n set(\n fieldArrayDefaultValuesRef.current,\n fieldArrayParentName,\n cloneObject(get(defaultValuesRef.current, fieldArrayParentName)),\n );\n }\n\n const setFieldAndValidState = (\n fieldsValues: Partial<ArrayField<TFieldArrayValues, TKeyName>>[],\n ) => {\n setFields(fieldsValues);\n set(fieldArrayValuesRef.current, name, fieldsValues);\n\n if (readFormStateRef.current.isValid && validateResolver) {\n const values = getValues();\n set(values, name, fieldsValues);\n validateResolver(values);\n }\n };\n\n const resetFields = () => {\n for (const key in fieldsRef.current) {\n if (isMatchFieldArrayName(key, name)) {\n removeFieldEventListener(fieldsRef.current[key] as Field, true);\n delete fieldsRef.current[key];\n }\n }\n };\n\n const cleanup = <T>(ref: T) =>\n !compact(get(ref, name, [])).length && unset(ref, name);\n\n const updateDirtyFieldsWithDefaultValues = <\n T extends (Partial<TFieldArrayValues> | undefined)[]\n >(\n updatedFieldArrayValues?: T,\n ) => {\n if (updatedFieldArrayValues) {\n set(\n formStateRef.current.dirtyFields,\n name,\n setFieldArrayDirtyFields(\n omitKey(updatedFieldArrayValues),\n get(defaultValuesRef.current, name, []),\n get(formStateRef.current.dirtyFields, name, []),\n ),\n );\n }\n };\n\n const batchStateUpdate = <\n T extends Function,\n K extends (Partial<TFieldArrayValues> | undefined)[]\n >(\n method: T,\n args: {\n argA?: unknown;\n argB?: unknown;\n argC?: unknown;\n argD?: unknown;\n },\n updatedFieldValues?: K,\n updatedFormValues: (Partial<TFieldArrayValues> | undefined)[] = [],\n shouldSet = true,\n shouldUpdateValid = false,\n ) => {\n if (get(shallowFieldsStateRef.current, name)) {\n const output = method(\n get(shallowFieldsStateRef.current, name),\n args.argA,\n args.argB,\n );\n shouldSet && set(shallowFieldsStateRef.current, name, output);\n }\n\n if (get(fieldArrayDefaultValuesRef.current, name)) {\n const output = method(\n get(fieldArrayDefaultValuesRef.current, name),\n args.argA,\n args.argB,\n );\n shouldSet && set(fieldArrayDefaultValuesRef.current, name, output);\n }\n\n if (Array.isArray(get(formStateRef.current.errors, name))) {\n const output = method(\n get(formStateRef.current.errors, name),\n args.argA,\n args.argB,\n );\n shouldSet && set(formStateRef.current.errors, name, output);\n cleanup(formStateRef.current.errors);\n }\n\n if (\n readFormStateRef.current.touched &&\n get(formStateRef.current.touched, name)\n ) {\n const output = method(\n get(formStateRef.current.touched, name),\n args.argA,\n args.argB,\n );\n shouldSet && set(formStateRef.current.touched, name, output);\n cleanup(formStateRef.current.touched);\n }\n\n if (\n readFormStateRef.current.dirtyFields ||\n readFormStateRef.current.isDirty\n ) {\n set(\n formStateRef.current.dirtyFields,\n name,\n setFieldArrayDirtyFields(\n omitKey(updatedFormValues),\n get(defaultValuesRef.current, name, []),\n get(formStateRef.current.dirtyFields, name, []),\n ),\n );\n updateDirtyFieldsWithDefaultValues(updatedFieldValues);\n cleanup(formStateRef.current.dirtyFields);\n }\n\n if (\n shouldUpdateValid &&\n readFormStateRef.current.isValid &&\n !validateResolver\n ) {\n set(\n validFieldsRef.current,\n name,\n method(get(validFieldsRef.current, name, []), args.argA),\n );\n cleanup(validFieldsRef.current);\n\n set(\n fieldsWithValidationRef.current,\n name,\n method(get(fieldsWithValidationRef.current, name, []), args.argA),\n );\n cleanup(fieldsWithValidationRef.current);\n }\n\n if (!isUnMount.current && readFormStateRef.current.isDirty) {\n updateFormState({\n isDirty: isFormDirty(name, omitKey(updatedFormValues)),\n });\n }\n };\n\n const append = (\n value: Partial<TFieldArrayValues> | Partial<TFieldArrayValues>[],\n shouldFocus = true,\n ) => {\n const appendValue = Array.isArray(value) ? value : [value];\n const updateFormValues = [\n ...getCurrentFieldsValues(),\n ...mapIds(appendValue, keyName),\n ];\n setFieldAndValidState(updateFormValues);\n\n if (\n readFormStateRef.current.dirtyFields ||\n readFormStateRef.current.isDirty\n ) {\n updateDirtyFieldsWithDefaultValues(updateFormValues);\n\n updateFormState({\n isDirty: true,\n dirtyFields: formStateRef.current.dirtyFields,\n });\n }\n\n !shouldUnregister &&\n set(shallowFieldsStateRef.current, name, [\n ...(get(shallowFieldsStateRef.current, name) || []),\n ...cloneObject(appendValue),\n ]);\n\n focusIndexRef.current = shouldFocus\n ? get(fieldArrayValuesRef.current, name).length - 1\n : -1;\n };\n\n const prepend = (\n value: Partial<TFieldArrayValues> | Partial<TFieldArrayValues>[],\n shouldFocus = true,\n ) => {\n const emptyArray = fillEmptyArray(value);\n const updatedFieldArrayValues = prependAt(\n getCurrentFieldsValues(),\n mapIds(Array.isArray(value) ? value : [value], keyName),\n );\n\n setFieldAndValidState(updatedFieldArrayValues);\n resetFields();\n batchStateUpdate(\n prependAt,\n {\n argA: emptyArray,\n argC: fillBooleanArray(value),\n },\n updatedFieldArrayValues,\n );\n focusIndexRef.current = shouldFocus ? 0 : -1;\n };\n\n const remove = (index?: number | number[]) => {\n const fieldValues = getCurrentFieldsValues();\n const updatedFieldValues: (\n | Partial<TFieldArrayValues>\n | undefined\n )[] = removeArrayAt(fieldValues, index);\n setFieldAndValidState(\n updatedFieldValues as Partial<ArrayField<TFieldArrayValues, TKeyName>>[],\n );\n resetFields();\n batchStateUpdate(\n removeArrayAt,\n {\n argA: index,\n argC: index,\n },\n updatedFieldValues,\n removeArrayAt(fieldValues, index),\n true,\n true,\n );\n };\n\n const insert = (\n index: number,\n value: Partial<TFieldArrayValues> | Partial<TFieldArrayValues>[],\n shouldFocus = true,\n ) => {\n const emptyArray = fillEmptyArray(value);\n const fieldValues = getCurrentFieldsValues();\n const updatedFieldArrayValues = insertAt(\n fieldValues,\n index,\n mapIds(Array.isArray(value) ? value : [value], keyName),\n );\n\n setFieldAndValidState(updatedFieldArrayValues);\n resetFields();\n batchStateUpdate(\n insertAt,\n {\n argA: index,\n argB: emptyArray,\n argC: index,\n argD: fillBooleanArray(value),\n },\n updatedFieldArrayValues,\n insertAt(fieldValues, index),\n );\n focusIndexRef.current = shouldFocus ? index : -1;\n };\n\n const swap = (indexA: number, indexB: number) => {\n const fieldValues = getCurrentFieldsValues();\n swapArrayAt(fieldValues, indexA, indexB);\n resetFields();\n setFieldAndValidState([...fieldValues]);\n batchStateUpdate(\n swapArrayAt,\n {\n argA: indexA,\n argB: indexB,\n argC: indexA,\n argD: indexB,\n },\n undefined,\n fieldValues,\n false,\n );\n };\n\n const move = (from: number, to: number) => {\n const fieldValues = getCurrentFieldsValues();\n moveArrayAt(fieldValues, from, to);\n resetFields();\n setFieldAndValidState([...fieldValues]);\n batchStateUpdate(\n moveArrayAt,\n {\n argA: from,\n argB: to,\n argC: from,\n argD: to,\n },\n undefined,\n fieldValues,\n false,\n );\n };\n\n React.useEffect(() => {\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n console.warn(\n '📋 useFieldArray is missing `name` attribute. https://react-hook-form.com/api#useFieldArray',\n );\n }\n }\n\n const defaultValues = get(fieldArrayDefaultValuesRef.current, name);\n\n if (defaultValues && fields.length < defaultValues.length) {\n set(fieldArrayDefaultValuesRef.current, name, defaultValues.slice(1));\n }\n\n updateWatchedValue(name);\n\n if (focusIndexRef.current > -1) {\n for (const key in fieldsRef.current) {\n const field = fieldsRef.current[key];\n if (\n key.startsWith(`${name}[${focusIndexRef.current}]`) &&\n field!.ref.focus\n ) {\n field!.ref.focus();\n break;\n }\n }\n }\n\n focusIndexRef.current = -1;\n }, [fields, name]);\n\n React.useEffect(() => {\n const resetFunctions = resetFieldArrayFunctionRef.current;\n const fieldArrayNames = fieldArrayNamesRef.current;\n\n if (!getFieldArrayParentName(name)) {\n resetFunctions[name] = <TFieldValues>(\n data?: UnpackNestedValue<DeepPartial<TFieldValues>>,\n ) => {\n resetFields();\n !data && unset(fieldArrayDefaultValuesRef.current, name);\n unset(shallowFieldsStateRef.current, name);\n memoizedDefaultValues.current = get(\n data || defaultValuesRef.current,\n name,\n );\n if (!isUnMount.current) {\n setFields(mapIds(memoizedDefaultValues.current, keyName));\n }\n };\n }\n\n return () => {\n isUnMount.current = true;\n shouldUnregister && remove();\n resetFields();\n delete resetFunctions[name];\n unset(fieldArrayValuesRef.current, name);\n fieldArrayNames.delete(name);\n };\n }, []);\n\n return {\n swap: React.useCallback(swap, [name]),\n move: React.useCallback(move, [name]),\n prepend: React.useCallback(prepend, [name]),\n append: React.useCallback(append, [name]),\n remove: React.useCallback(remove, [name]),\n insert: React.useCallback(insert, [name]),\n fields,\n };\n};\n","import isUndefined from '../utils/isUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\n\nexport default (event: any) =>\n isPrimitive(event) ||\n !isObject(event.target) ||\n (isObject(event.target) && !event.type)\n ? event\n : isUndefined(event.target.value)\n ? event.target.checked\n : event.target.value;\n","import { useFormContext } from './useFormContext';\nimport isNameInFieldArray from './logic/isNameInFieldArray';\nimport isUndefined from './utils/isUndefined';\nimport get from './utils/get';\nimport * as React from 'react';\nimport isFunction from './utils/isFunction';\nimport skipValidation from './logic/skipValidation';\nimport getInputValue from './logic/getInputValue';\nimport set from './utils/set';\nimport {\n FieldValues,\n UseControllerOptions,\n UseControllerMethods,\n} from './types';\n\nexport function useController<TFieldValues extends FieldValues = FieldValues>({\n name,\n rules,\n defaultValue,\n control,\n onFocus,\n}: UseControllerOptions<TFieldValues>): UseControllerMethods<TFieldValues> {\n const methods = useFormContext<TFieldValues>();\n\n if (process.env.NODE_ENV !== 'production') {\n if (!control && !methods) {\n throw new Error(\n '📋 Controller is missing `control` prop. https://react-hook-form.com/api#Controller',\n );\n }\n }\n\n const {\n defaultValuesRef,\n setValue,\n register,\n unregister,\n trigger,\n mode,\n reValidateMode: { isReValidateOnBlur, isReValidateOnChange },\n formState,\n formStateRef: {\n current: { isSubmitted, touched, errors },\n },\n updateFormState,\n readFormStateRef,\n fieldsRef,\n fieldArrayNamesRef,\n shallowFieldsStateRef,\n } = control || methods.control;\n\n const isNotFieldArray = !isNameInFieldArray(fieldArrayNamesRef.current, name);\n const getInitialValue = () =>\n !isUndefined(get(shallowFieldsStateRef.current, name)) && isNotFieldArray\n ? get(shallowFieldsStateRef.current, name)\n : isUndefined(defaultValue)\n ? get(defaultValuesRef.current, name)\n : defaultValue;\n const [value, setInputStateValue] = React.useState(getInitialValue());\n const valueRef = React.useRef(value);\n const ref = React.useRef({\n focus: () => null,\n });\n const onFocusRef = React.useRef(\n onFocus ||\n (() => {\n if (isFunction(ref.current.focus)) {\n ref.current.focus();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!isFunction(ref.current.focus)) {\n console.warn(\n `📋 'ref' from Controller render prop must be attached to a React component or a DOM Element whose ref provides a 'focus()' method`,\n );\n }\n }\n }),\n );\n\n const shouldValidate = React.useCallback(\n (isBlurEvent?: boolean) =>\n !skipValidation({\n isBlurEvent,\n isReValidateOnBlur,\n isReValidateOnChange,\n isSubmitted,\n isTouched: !!get(touched, name),\n ...mode,\n }),\n [\n isReValidateOnBlur,\n isReValidateOnChange,\n isSubmitted,\n touched,\n name,\n mode,\n ],\n );\n\n const commonTask = React.useCallback(([event]: any[]) => {\n const data = getInputValue(event);\n setInputStateValue(data);\n valueRef.current = data;\n return data;\n }, []);\n\n const registerField = React.useCallback(\n (shouldUpdateValue?: boolean) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n return console.warn(\n '📋 Field is missing `name` prop. https://react-hook-form.com/api#Controller',\n );\n }\n }\n\n if (fieldsRef.current[name]) {\n fieldsRef.current[name] = {\n ref: fieldsRef.current[name]!.ref,\n ...rules,\n };\n } else {\n register(\n Object.defineProperties(\n {\n name,\n focus: onFocusRef.current,\n },\n {\n value: {\n set(data) {\n setInputStateValue(data);\n valueRef.current = data;\n },\n get() {\n return valueRef.current;\n },\n },\n },\n ),\n rules,\n );\n\n shouldUpdateValue = isUndefined(get(defaultValuesRef.current, name));\n }\n\n shouldUpdateValue &&\n isNotFieldArray &&\n setInputStateValue(getInitialValue());\n },\n [rules, name, register],\n );\n\n React.useEffect(() => () => unregister(name), [name]);\n\n React.useEffect(() => {\n if (process.env.NODE_ENV !== 'production') {\n if (isUndefined(value)) {\n console.warn(\n `📋 ${name} is missing in the 'defaultValue' prop of either its Controller (https://react-hook-form.com/api#Controller) or useForm (https://react-hook-form.com/api#useForm)`,\n );\n }\n\n if (!isNotFieldArray && isUndefined(defaultValue)) {\n console.warn(\n '📋 Controller is missing `defaultValue` prop when using `useFieldArray`. https://react-hook-form.com/api#Controller',\n );\n }\n }\n\n registerField();\n }, [registerField]);\n\n React.useEffect(() => {\n !fieldsRef.current[name] && registerField(true);\n });\n\n const onBlur = React.useCallback(() => {\n if (readFormStateRef.current.touched && !get(touched, name)) {\n set(touched, name, true);\n updateFormState({\n touched,\n });\n }\n\n shouldValidate(true) && trigger(name);\n }, [name, updateFormState, shouldValidate, trigger, readFormStateRef]);\n\n const onChange = React.useCallback(\n (...event: any[]) =>\n setValue(name, commonTask(event), {\n shouldValidate: shouldValidate(),\n shouldDirty: true,\n }),\n [setValue, name, shouldValidate],\n );\n\n return {\n field: {\n onChange,\n onBlur,\n name,\n value,\n ref,\n },\n meta: Object.defineProperties(\n {\n invalid: !!get(errors, name),\n },\n {\n isDirty: {\n get() {\n return !!get(formState.dirtyFields, name);\n },\n },\n isTouched: {\n get() {\n return !!get(formState.touched, name);\n },\n },\n },\n ),\n };\n}\n","import * as React from 'react';\nimport { useFormContext } from './useFormContext';\nimport isUndefined from './utils/isUndefined';\nimport isString from './utils/isString';\nimport generateId from './logic/generateId';\nimport get from './utils/get';\nimport {\n DeepPartial,\n UseWatchOptions,\n FieldValues,\n UnpackNestedValue,\n Control,\n} from './types';\n\nexport function useWatch<TWatchFieldValues extends FieldValues>(props: {\n defaultValue?: UnpackNestedValue<DeepPartial<TWatchFieldValues>>;\n control?: Control;\n}): UnpackNestedValue<DeepPartial<TWatchFieldValues>>;\nexport function useWatch<TWatchFieldValue extends any>(props: {\n name: string;\n control?: Control;\n}): undefined | UnpackNestedValue<TWatchFieldValue>;\nexport function useWatch<TWatchFieldValue extends any>(props: {\n name: string;\n defaultValue: UnpackNestedValue<TWatchFieldValue>;\n control?: Control;\n}): UnpackNestedValue<TWatchFieldValue>;\nexport function useWatch<TWatchFieldValues extends FieldValues>(props: {\n name: string[];\n defaultValue?: UnpackNestedValue<DeepPartial<TWatchFieldValues>>;\n control?: Control;\n}): UnpackNestedValue<DeepPartial<TWatchFieldValues>>;\nexport function useWatch<TWatchFieldValues>({\n control,\n name,\n defaultValue,\n}: UseWatchOptions): TWatchFieldValues {\n const methods = useFormContext();\n\n if (process.env.NODE_ENV !== 'production') {\n if (!control && !methods) {\n throw new Error(\n '📋 useWatch is missing `control` prop. https://react-hook-form.com/api#useWatch',\n );\n }\n }\n\n const {\n useWatchFieldsRef,\n useWatchRenderFunctionsRef,\n watchInternal,\n defaultValuesRef,\n } = control || methods.control;\n const updateValue = React.useState<unknown>()[1];\n const idRef = React.useRef<string>();\n const defaultValueRef = React.useRef(defaultValue);\n\n React.useEffect(() => {\n if (process.env.NODE_ENV !== 'production') {\n if (name === '') {\n console.warn(\n '📋 useWatch is missing `name` attribute. https://react-hook-form.com/api#useWatch',\n );\n }\n }\n\n const id = (idRef.current = generateId());\n const watchFieldsHookRender = useWatchRenderFunctionsRef.current;\n const watchFieldsHook = useWatchFieldsRef.current;\n watchFieldsHook[id] = new Set();\n watchFieldsHookRender[id] = () => updateValue({});\n watchInternal(name, defaultValueRef.current, id);\n\n return () => {\n delete watchFieldsHook[id];\n delete watchFieldsHookRender[id];\n };\n }, [\n name,\n useWatchRenderFunctionsRef,\n useWatchFieldsRef,\n watchInternal,\n defaultValueRef,\n ]);\n\n return idRef.current\n ? watchInternal(name, defaultValueRef.current, idRef.current)\n : isUndefined(defaultValue)\n ? isString(name)\n ? get(defaultValuesRef.current, name)\n : Array.isArray(name)\n ? name.reduce(\n (previous, inputName) => ({\n ...previous,\n [inputName]: get(defaultValuesRef.current, inputName),\n }),\n {},\n )\n : defaultValuesRef.current\n : defaultValue;\n}\n","import * as React from 'react';\nimport { useController } from './useController';\nimport { ControllerProps, FieldValues } from './types';\n\ntype NativeInputs = 'input' | 'select' | 'textarea';\n\nconst Controller = <\n TAs extends React.ReactElement | React.ComponentType<any> | NativeInputs,\n TFieldValues extends FieldValues = FieldValues\n>(\n props: ControllerProps<TAs, TFieldValues>,\n) => {\n const { rules, as, render, defaultValue, control, onFocus, ...rest } = props;\n const { field, meta } = useController(props);\n\n const componentProps = {\n ...rest,\n ...field,\n };\n\n return as\n ? React.isValidElement(as)\n ? React.cloneElement(as, componentProps)\n : React.createElement(as as NativeInputs, componentProps as any)\n : render\n ? render(field, meta)\n : null;\n};\n\nexport { Controller };\n"],"names":["isCheckBox","React.isValidElement","getFieldsValue","React.useRef","React.useState","React.useCallback","getNodeParentName","React.useEffect","React.useMemo","React.createContext","React.useContext","React.createElement","prepend","prependAt","insert","insertAt","React.cloneElement"],"mappings":"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"}
1
+ {"version":3,"file":"index.ie11.development.js","sources":["../src/utils/isHTMLElement.ts","../src/constants.ts","../src/logic/attachEventListeners.ts","../src/utils/isNullOrUndefined.ts","../src/utils/isObject.ts","../src/utils/isKey.ts","../src/utils/compact.ts","../src/utils/stringToPath.ts","../src/utils/set.ts","../src/logic/transformToNestObject.ts","../src/utils/isUndefined.ts","../src/utils/get.ts","../src/logic/focusOnErrorField.ts","../src/logic/removeAllEventListeners.ts","../src/logic/getRadioValue.ts","../src/logic/getMultipleSelectValue.ts","../src/utils/isRadioInput.ts","../src/utils/isFileInput.ts","../src/utils/isCheckBoxInput.ts","../src/utils/isMultipleSelect.ts","../src/logic/getCheckboxValue.ts","../src/logic/getFieldValue.ts","../src/utils/isDetached.ts","../src/utils/isEmptyObject.ts","../src/utils/isBoolean.ts","../src/utils/unset.ts","../src/logic/findRemovedFieldAndRemoveListener.ts","../src/utils/isPrimitive.ts","../src/utils/deepMerge.ts","../src/utils/deepEqual.ts","../src/logic/setFieldArrayDirtyFields.ts","../src/utils/isString.ts","../src/logic/getFieldsValues.ts","../src/logic/isErrorStateChanged.ts","../src/utils/isRegex.ts","../src/logic/getValueAndMessage.ts","../src/utils/isFunction.ts","../src/utils/isMessage.ts","../src/logic/getValidateError.ts","../src/logic/appendErrors.ts","../src/logic/validateField.ts","../src/utils/getPath.ts","../src/logic/assignWatchFields.ts","../src/logic/skipValidation.ts","../src/logic/getNodeParentName.ts","../src/logic/isNameInFieldArray.ts","../src/utils/isSelectInput.ts","../src/utils/onDomRemove.ts","../src/utils/isWeb.ts","../src/utils/cloneObject.ts","../src/utils/validationModeChecker.ts","../src/utils/isRadioOrCheckbox.ts","../src/useForm.ts","../src/useFormContext.tsx","../src/logic/generateId.ts","../src/utils/remove.ts","../src/utils/move.ts","../src/utils/swap.ts","../src/utils/prepend.ts","../src/utils/insert.ts","../src/utils/fillEmptyArray.ts","../src/utils/fillBooleanArray.ts","../src/useFieldArray.ts","../src/logic/getInputValue.ts","../src/useController.ts","../src/useWatch.ts","../src/controller.tsx"],"sourcesContent":["export default (value: any): value is HTMLElement =>\n value instanceof HTMLElement;\n","import { ValidationMode } from './types';\n\nexport const EVENTS = {\n BLUR: 'blur',\n CHANGE: 'change',\n INPUT: 'input',\n};\n\nexport const VALIDATION_MODE: ValidationMode = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\n\nexport const SELECT = 'select';\n\nexport const UNDEFINED = 'undefined';\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};\n","import isHTMLElement from '../utils/isHTMLElement';\nimport { EVENTS } from '../constants';\nimport { Field } from '../types';\n\nexport default function attachEventListeners(\n { ref }: Field,\n shouldAttachChangeEvent?: boolean,\n handleChange?: EventListenerOrEventListenerObject,\n): void {\n if (isHTMLElement(ref) && handleChange) {\n ref.addEventListener(\n shouldAttachChangeEvent ? EVENTS.CHANGE : EVENTS.INPUT,\n handleChange,\n );\n ref.addEventListener(EVENTS.BLUR, handleChange);\n }\n}\n","export default (value: unknown): value is null | undefined => value == null;\n","import isNullOrUndefined from './isNullOrUndefined';\n\nexport const isObjectType = (value: unknown) => 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 !(value instanceof Date);\n","export default (value: string) => /^\\w*$/.test(value);\n","export default (value: any[]) => value.filter(Boolean);\n","import compact from './compact';\n\nexport default (input: string): string[] =>\n compact(\n input\n .replace(/[\"|']/g, '')\n .replace(/\\[/g, '.')\n .replace(/\\]/g, '')\n .split('.'),\n );\n","import isObject from './isObject';\nimport isKey from './isKey';\nimport stringToPath from './stringToPath';\nimport { FieldValues } from '../types';\n\nexport default function set(\n object: FieldValues,\n path: string,\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 object[key] = newValue;\n object = object[key];\n }\n return object;\n}\n","import set from '../utils/set';\nimport isKey from '../utils/isKey';\nimport { FieldValues } from '../types';\n\nexport default (data: FieldValues, value: Record<string, any> = {}): any => {\n for (const key in data) {\n !isKey(key) ? set(value, key, data[key]) : (value[key] = data[key]);\n }\n return value;\n};\n","export default (val: unknown): val is undefined => val === undefined;\n","import isUndefined from './isUndefined';\nimport isNullOrUndefined from './isNullOrUndefined';\nimport compact from './compact';\n\nexport default (obj: any = {}, path: string, defaultValue?: unknown) => {\n const result = compact(path.split(/[,[\\].]+?/)).reduce(\n (result, key) => (isNullOrUndefined(result) ? result : result[key]),\n obj,\n );\n\n return isUndefined(result) || result === obj\n ? isUndefined(obj[path])\n ? defaultValue\n : obj[path]\n : result;\n};\n","import get from '../utils/get';\nimport isUndefined from '../utils/isUndefined';\nimport { FieldErrors, FieldRefs } from '../types';\n\nexport default <TFieldValues>(\n fields: FieldRefs<TFieldValues>,\n fieldErrors: FieldErrors<TFieldValues>,\n) => {\n for (const key in fields) {\n if (get(fieldErrors, key)) {\n const field = fields[key];\n\n if (field) {\n if (field.ref.focus && isUndefined(field.ref.focus())) {\n break;\n } else if (field.options) {\n field.options[0].ref.focus();\n\n break;\n }\n }\n }\n }\n};\n","import isHTMLElement from '../utils/isHTMLElement';\nimport { EVENTS } from '../constants';\nimport { Ref } from '../types';\n\nexport default (\n ref: Ref,\n validateWithStateUpdate: EventListenerOrEventListenerObject,\n): void => {\n if (isHTMLElement(ref) && ref.removeEventListener) {\n ref.removeEventListener(EVENTS.INPUT, validateWithStateUpdate);\n ref.removeEventListener(EVENTS.CHANGE, validateWithStateUpdate);\n ref.removeEventListener(EVENTS.BLUR, validateWithStateUpdate);\n }\n};\n","import { RadioOrCheckboxOption } from '../types';\n\ntype 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?: RadioOrCheckboxOption[]): RadioFieldResult =>\n Array.isArray(options)\n ? options.reduce(\n (previous, option): RadioFieldResult =>\n option && option.ref.checked\n ? {\n isValid: true,\n value: option.ref.value,\n }\n : previous,\n defaultReturn,\n )\n : defaultReturn;\n","export default (\n options: HTMLOptionElement[] | HTMLOptionsCollection,\n): string[] =>\n [...options]\n .filter(({ selected }): boolean => selected)\n .map(({ value }): string => value);\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'radio';\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'file';\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'checkbox';\n","import { FieldElement } from '../types';\nimport { SELECT } from '../constants';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `${SELECT}-multiple`;\n","import isUndefined from '../utils/isUndefined';\nimport { RadioOrCheckboxOption } from '../types';\n\ntype CheckboxFieldResult = {\n isValid: boolean;\n value: string | string[] | boolean;\n};\n\nconst defaultResult: CheckboxFieldResult = {\n value: false,\n isValid: false,\n};\n\nconst validResult = { value: true, isValid: true };\n\nexport default (options?: RadioOrCheckboxOption[]): CheckboxFieldResult => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.ref.checked)\n .map(({ ref: { value } }) => value);\n return { value: values, isValid: !!values.length };\n }\n\n const { checked, value, attributes } = options[0].ref;\n\n return checked\n ? attributes && !isUndefined((attributes as any).value)\n ? isUndefined(value) || value === ''\n ? validResult\n : { value: value, isValid: true }\n : validResult\n : defaultResult;\n }\n\n return defaultResult;\n};\n","import * as React from 'react';\nimport getRadioValue from './getRadioValue';\nimport getMultipleSelectValue from './getMultipleSelectValue';\nimport isRadioInput from '../utils/isRadioInput';\nimport get from '../utils/get';\nimport isFileInput from '../utils/isFileInput';\nimport isCheckBox from '../utils/isCheckBoxInput';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport getCheckboxValue from './getCheckboxValue';\nimport { FieldRefs, FieldValues, InternalFieldName } from '../types';\n\nexport default function getFieldValue<TFieldValues extends FieldValues>(\n fieldsRef: React.MutableRefObject<FieldRefs<TFieldValues>>,\n name: InternalFieldName<TFieldValues>,\n shallowFieldsStateRef?: React.MutableRefObject<Partial<FieldValues>>,\n excludeDisabled?: boolean,\n shouldKeepRawValue?: boolean,\n) {\n const field = fieldsRef.current[name]!;\n\n if (field) {\n const {\n ref: { value, disabled },\n ref,\n valueAsNumber,\n valueAsDate,\n setValueAs,\n } = field;\n\n if (disabled && excludeDisabled) {\n return;\n }\n\n if (isFileInput(ref)) {\n return ref.files;\n }\n\n if (isRadioInput(ref)) {\n return getRadioValue(field.options).value;\n }\n\n if (isMultipleSelect(ref)) {\n return getMultipleSelectValue(ref.options);\n }\n\n if (isCheckBox(ref)) {\n return getCheckboxValue(field.options).value;\n }\n\n return shouldKeepRawValue\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : +value\n : valueAsDate\n ? (ref as HTMLInputElement).valueAsDate\n : setValueAs\n ? setValueAs(value)\n : value;\n }\n\n if (shallowFieldsStateRef) {\n return get(shallowFieldsStateRef.current, name);\n }\n}\n","import { Ref } from '../types';\n\nexport default function isDetached(element: Ref): boolean {\n if (!element) {\n return true;\n }\n\n if (\n !(element instanceof HTMLElement) ||\n element.nodeType === Node.DOCUMENT_NODE\n ) {\n return false;\n }\n\n return isDetached(element.parentNode as Ref);\n}\n","import isObject from './isObject';\nimport { EmptyObject } from '../types';\n\nexport default (value: unknown): value is EmptyObject =>\n isObject(value) && !Object.keys(value).length;\n","export default (value: unknown): value is boolean => typeof value === 'boolean';\n","import isKey from './isKey';\nimport stringToPath from './stringToPath';\nimport isEmptyObject from './isEmptyObject';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport isBoolean from './isBoolean';\n\nfunction baseGet(object: any, updatePath: (string | number)[]) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n\n return object;\n}\n\nexport default function unset(object: any, path: string) {\n const updatePath = isKey(path) ? [path] : stringToPath(path);\n const childObject =\n updatePath.length == 1 ? object : baseGet(object, updatePath);\n const key = updatePath[updatePath.length - 1];\n let previousObjRef;\n\n if (childObject) {\n delete childObject[key];\n }\n\n for (let k = 0; k < updatePath.slice(0, -1).length; k++) {\n let index = -1;\n let objectRef;\n const currentPaths = updatePath.slice(0, -(k + 1));\n const currentPathsLength = currentPaths.length - 1;\n\n if (k > 0) {\n previousObjRef = object;\n }\n\n while (++index < currentPaths.length) {\n const item = currentPaths[index];\n objectRef = objectRef ? objectRef[item] : object[item];\n\n if (\n currentPathsLength === index &&\n ((isObject(objectRef) && isEmptyObject(objectRef)) ||\n (Array.isArray(objectRef) &&\n !objectRef.filter(\n (data) =>\n (isObject(data) && !isEmptyObject(data)) || isBoolean(data),\n ).length))\n ) {\n previousObjRef ? delete previousObjRef[item] : delete object[item];\n }\n\n previousObjRef = objectRef;\n }\n }\n\n return object;\n}\n","import * as React from 'react';\nimport removeAllEventListeners from './removeAllEventListeners';\nimport getFieldValue from './getFieldValue';\nimport isRadioInput from '../utils/isRadioInput';\nimport set from '../utils/set';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isDetached from '../utils/isDetached';\nimport unset from '../utils/unset';\nimport compact from '../utils/compact';\nimport isUndefined from '../utils/isUndefined';\nimport { Field, FieldRefs, FieldValues, Ref } from '../types';\n\nconst isSameRef = (fieldValue: Field, ref: Ref) =>\n fieldValue && fieldValue.ref === ref;\n\nexport default function findRemovedFieldAndRemoveListener<\n TFieldValues extends FieldValues\n>(\n fieldsRef: React.MutableRefObject<FieldRefs<TFieldValues>>,\n handleChange: ({ type, target }: Event) => Promise<void | boolean>,\n field: Field,\n shallowFieldsStateRef: React.MutableRefObject<FieldValues>,\n shouldUnregister?: boolean,\n forceDelete?: boolean,\n): void {\n const {\n ref,\n ref: { name },\n } = field;\n const fieldRef = fieldsRef.current[name] as Field;\n\n if (!shouldUnregister) {\n const value = getFieldValue(fieldsRef, name, shallowFieldsStateRef);\n\n !isUndefined(value) && set(shallowFieldsStateRef.current, name, value);\n }\n\n if (!ref.type || !fieldRef) {\n delete fieldsRef.current[name];\n return;\n }\n\n if (isRadioInput(ref) || isCheckBoxInput(ref)) {\n if (Array.isArray(fieldRef.options) && fieldRef.options.length) {\n compact(fieldRef.options).forEach((option = {}, index): void => {\n if (\n (isDetached(option.ref) && isSameRef(option, option.ref)) ||\n forceDelete\n ) {\n removeAllEventListeners(option.ref, handleChange);\n unset(fieldRef.options, `[${index}]`);\n }\n });\n\n if (fieldRef.options && !compact(fieldRef.options).length) {\n delete fieldsRef.current[name];\n }\n } else {\n delete fieldsRef.current[name];\n }\n } else if ((isDetached(ref) && isSameRef(fieldRef, ref)) || forceDelete) {\n removeAllEventListeners(ref, handleChange);\n\n delete fieldsRef.current[name];\n }\n}\n","import isNullOrUndefined from './isNullOrUndefined';\nimport { isObjectType } from './isObject';\nimport { Primitive } from '../types';\n\nexport default (value: unknown): value is Primitive =>\n isNullOrUndefined(value) || !isObjectType(value);\n","import isObject from './isObject';\nimport isPrimitive from './isPrimitive';\n\nexport function deepMerge<\n T extends Record<keyof T, any>,\n U extends Record<keyof U, any>\n>(target: T, source: U): T & U {\n if (isPrimitive(target) || isPrimitive(source)) {\n return source;\n }\n\n for (const key in source) {\n const targetValue = target[key];\n const sourceValue = source[key];\n\n try {\n target[key] =\n (isObject(targetValue) && isObject(sourceValue)) ||\n (Array.isArray(targetValue) && Array.isArray(sourceValue))\n ? deepMerge(targetValue, sourceValue)\n : sourceValue;\n } catch {}\n }\n\n return target;\n}\n","import * as React from 'react';\nimport isObject from '../utils/isObject';\nimport isPrimitive from './isPrimitive';\n\nexport default function deepEqual(\n object1: any,\n object2: any,\n isErrorObject?: boolean,\n) {\n if (\n isPrimitive(object1) ||\n isPrimitive(object2) ||\n object1 instanceof Date ||\n object2 instanceof Date\n ) {\n return object1 === object2;\n }\n\n if (!React.isValidElement(object1)) {\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 for (const key of keys1) {\n const val1 = object1[key];\n\n if (!(isErrorObject && key === 'ref')) {\n const val2 = object2[key];\n\n if (\n (isObject(val1) || Array.isArray(val1)) &&\n (isObject(val2) || Array.isArray(val2))\n ? !deepEqual(val1, val2, isErrorObject)\n : val1 !== val2\n ) {\n return false;\n }\n }\n }\n }\n\n return true;\n}\n","import { get } from '../utils';\nimport set from '../utils/set';\nimport { deepMerge } from '../utils/deepMerge';\nimport deepEqual from '../utils/deepEqual';\n\nfunction setDirtyFields<\n T extends Record<string, unknown>[],\n U extends Record<string, unknown>[],\n K extends Record<string, boolean | []>\n>(\n values: T,\n defaultValues: U,\n dirtyFields: Record<string, boolean | []>[],\n parentNode?: K,\n parentName?: keyof K,\n) {\n let index = -1;\n\n while (++index < values.length) {\n for (const key in values[index]) {\n if (Array.isArray(values[index][key])) {\n !dirtyFields[index] && (dirtyFields[index] = {});\n dirtyFields[index][key] = [];\n setDirtyFields(\n values[index][key] as T,\n get(defaultValues[index] || {}, key, []),\n dirtyFields[index][key] as [],\n dirtyFields[index],\n key,\n );\n } else {\n deepEqual(get(defaultValues[index] || {}, key), values[index][key])\n ? set(dirtyFields[index] || {}, key)\n : (dirtyFields[index] = {\n ...dirtyFields[index],\n [key]: true,\n });\n }\n }\n\n parentNode &&\n !dirtyFields.length &&\n delete parentNode[parentName as keyof K];\n }\n\n return dirtyFields;\n}\n\nexport default <T extends U, U extends Record<string, unknown>[]>(\n values: T,\n defaultValues: U,\n dirtyFields: Record<string, boolean | []>[],\n) =>\n deepMerge(\n setDirtyFields(values, defaultValues, dirtyFields.slice(0, values.length)),\n setDirtyFields(defaultValues, values, dirtyFields.slice(0, values.length)),\n );\n","export default (value: unknown): value is string => typeof value === 'string';\n","import * as React from 'react';\nimport getFieldValue from './getFieldValue';\nimport isString from '../utils/isString';\nimport { deepMerge } from '../utils/deepMerge';\nimport isUndefined from '../utils/isUndefined';\nimport { InternalFieldName, FieldValues, FieldRefs } from '../types';\nimport transformToNestObject from './transformToNestObject';\n\nexport default <TFieldValues extends FieldValues>(\n fieldsRef: React.MutableRefObject<FieldRefs<TFieldValues>>,\n shallowFieldsState: Record<string, any>,\n shouldUnregister: boolean,\n excludeDisabled?: boolean,\n search?:\n | InternalFieldName<TFieldValues>\n | InternalFieldName<TFieldValues>[]\n | { nest: boolean },\n) => {\n const output = {} as TFieldValues;\n\n for (const name in fieldsRef.current) {\n if (\n isUndefined(search) ||\n (isString(search)\n ? name.startsWith(search)\n : Array.isArray(search) && search.find((data) => name.startsWith(data)))\n ) {\n output[name as InternalFieldName<TFieldValues>] = getFieldValue(\n fieldsRef,\n name,\n undefined,\n excludeDisabled,\n );\n }\n }\n\n return shouldUnregister\n ? transformToNestObject(output)\n : deepMerge(shallowFieldsState, transformToNestObject(output));\n};\n","import get from '../utils/get';\nimport isUndefined from '../utils/isUndefined';\nimport deepEqual from '../utils/deepEqual';\nimport {\n FieldValues,\n InternalFieldName,\n FieldErrors,\n FieldNamesMarkedBoolean,\n FieldError,\n} from '../types';\n\nexport default <TFieldValues extends FieldValues>({\n errors,\n name,\n error,\n validFields,\n fieldsWithValidation,\n}: {\n errors: FieldErrors<TFieldValues>;\n error: FieldError | undefined;\n name: InternalFieldName<TFieldValues>;\n validFields: FieldNamesMarkedBoolean<TFieldValues>;\n fieldsWithValidation: FieldNamesMarkedBoolean<TFieldValues>;\n}): boolean => {\n const isValid = isUndefined(error);\n const previousError = get(errors, name);\n\n return (\n (isValid && !!previousError) ||\n (!isValid && !deepEqual(previousError, error, true)) ||\n (isValid && get(fieldsWithValidation, name) && !get(validFields, name))\n );\n};\n","export default (value: unknown): value is RegExp => value instanceof RegExp;\n","import isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\nimport { ValidationRule } from '../types';\n\nexport default (validationData?: ValidationRule) =>\n isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n","export default (value: unknown): value is Function =>\n typeof value === 'function';\n","import * as React from 'react';\nimport isString from '../utils/isString';\nimport { Message } from '../types';\n\nexport default (value: unknown): value is Message =>\n isString(value) || React.isValidElement(value as JSX.Element);\n","import isBoolean from '../utils/isBoolean';\nimport isMessage from '../utils/isMessage';\nimport { FieldError, ValidateResult, Ref } from '../types';\n\nexport default function getValidateError(\n result: ValidateResult,\n ref: Ref,\n type = 'validate',\n): FieldError | void {\n if (isMessage(result) || (isBoolean(result) && !result)) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n","import {\n InternalFieldName,\n ValidateResult,\n InternalFieldErrors,\n} from '../types';\n\nexport default <TFieldValues>(\n name: InternalFieldName<TFieldValues>,\n validateAllFieldCriteria: boolean,\n errors: InternalFieldErrors<TFieldValues>,\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 * as React from 'react';\nimport getRadioValue from './getRadioValue';\nimport getCheckboxValue from './getCheckboxValue';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isRadioInput from '../utils/isRadioInput';\nimport getValueAndMessage from './getValueAndMessage';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isString from '../utils/isString';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isObject from '../utils/isObject';\nimport isFunction from '../utils/isFunction';\nimport getFieldsValue from './getFieldValue';\nimport isRegex from '../utils/isRegex';\nimport isBoolean from '../utils/isBoolean';\nimport isMessage from '../utils/isMessage';\nimport getValidateError from './getValidateError';\nimport appendErrors from './appendErrors';\nimport { INPUT_VALIDATION_RULES } from '../constants';\nimport {\n Field,\n FieldValues,\n FieldRefs,\n Message,\n FieldError,\n InternalFieldName,\n InternalFieldErrors,\n} from '../types';\n\nexport default async <TFieldValues extends FieldValues>(\n fieldsRef: React.MutableRefObject<FieldRefs<TFieldValues>>,\n validateAllFieldCriteria: boolean,\n {\n ref,\n ref: { value },\n options,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n }: Field,\n shallowFieldsStateRef: React.MutableRefObject<Record<string, any>>,\n): Promise<InternalFieldErrors<TFieldValues>> => {\n const name: InternalFieldName<TFieldValues> = ref.name;\n const error: InternalFieldErrors<TFieldValues> = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty = value === '';\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 = INPUT_VALIDATION_RULES.maxLength,\n 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 ...(exceedMax\n ? appendErrorsCurry(maxType, message)\n : appendErrorsCurry(minType, message)),\n };\n };\n\n if (\n required &&\n ((!isRadio && !isCheckBox && (isEmpty || isNullOrUndefined(value))) ||\n (isBoolean(value) && !value) ||\n (isCheckBox && !getCheckboxValue(options).isValid) ||\n (isRadio && !getRadioValue(options).isValid))\n ) {\n const { value, message } = isMessage(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: isRadioOrCheckbox\n ? (((fieldsRef.current[name] as Field).options || [])[0] || {}).ref\n : ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n\n if ((!isNullOrUndefined(min) || !isNullOrUndefined(max)) && value !== '') {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n\n if (!isNaN(value)) {\n const valueNumber =\n (ref as HTMLInputElement).valueAsNumber || parseFloat(value);\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(value);\n if (isString(maxOutput.value)) {\n exceedMax = valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value)) {\n exceedMin = 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 return error;\n }\n }\n }\n\n if (isString(value) && !isEmpty && (maxLength || minLength)) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax =\n !isNullOrUndefined(maxLengthOutput.value) &&\n value.length > maxLengthOutput.value;\n const exceedMin =\n !isNullOrUndefined(minLengthOutput.value) &&\n value.length < minLengthOutput.value;\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n exceedMax,\n maxLengthOutput.message,\n minLengthOutput.message,\n );\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n\n if (isString(value) && pattern && !isEmpty) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n\n if (isRegex(patternValue) && !patternValue.test(value)) {\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 return error;\n }\n }\n }\n\n if (validate) {\n const fieldValue = getFieldsValue(\n fieldsRef,\n name,\n shallowFieldsStateRef,\n false,\n true,\n );\n const validateRef = isRadioOrCheckbox && options ? options[0].ref : ref;\n\n if (isFunction(validate)) {\n const result = await validate(fieldValue);\n const validateError = getValidateError(result, validateRef);\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 return error;\n }\n }\n } else if (isObject(validate)) {\n let validationResult = {} as FieldError;\n for (const [key, validateFunction] of Object.entries(validate)) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n\n const validateResult = await validateFunction(fieldValue);\n const validateError = getValidateError(\n validateResult,\n validateRef,\n key,\n );\n\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: validateRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n\n return error;\n};\n","import isPrimitive from './isPrimitive';\nimport isObject from './isObject';\nimport { FieldName } from '../types';\n\nexport const getPath = <TFieldValues>(\n rootPath: FieldName<TFieldValues>,\n values: any,\n paths: FieldName<TFieldValues>[] = [],\n): FieldName<TFieldValues>[] => {\n for (const property in values) {\n const rootName = (rootPath +\n (isObject(values)\n ? `.${property}`\n : `[${property}]`)) as FieldName<TFieldValues>;\n\n isPrimitive(values[property])\n ? paths.push(rootName)\n : getPath(rootName, values[property], paths);\n }\n\n return paths;\n};\n","import get from '../utils/get';\nimport { getPath } from '../utils/getPath';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isUndefined from '../utils/isUndefined';\nimport isObject from '../utils/isObject';\nimport {\n DeepPartial,\n FieldValue,\n FieldValues,\n InternalFieldName,\n UnpackNestedValue,\n} from '../types';\n\nexport default <TFieldValues extends FieldValues>(\n fieldValues: TFieldValues,\n fieldName: InternalFieldName<TFieldValues>,\n watchFields: Set<InternalFieldName<TFieldValues>>,\n inputValue: UnpackNestedValue<DeepPartial<TFieldValues>>,\n isSingleField?: boolean,\n):\n | FieldValue<TFieldValues>\n | UnpackNestedValue<DeepPartial<TFieldValues>>\n | undefined => {\n let value = undefined;\n\n watchFields.add(fieldName);\n\n if (!isEmptyObject(fieldValues)) {\n value = get(fieldValues, fieldName);\n\n if (isObject(value) || Array.isArray(value)) {\n getPath(fieldName, value).forEach((name) => watchFields.add(name));\n }\n }\n\n return isUndefined(value)\n ? isSingleField\n ? inputValue\n : get(inputValue, fieldName)\n : value;\n};\n","export default ({\n isOnBlur,\n isOnChange,\n isOnTouch,\n isTouched,\n isReValidateOnBlur,\n isReValidateOnChange,\n isBlurEvent,\n isSubmitted,\n isOnAll,\n}: {\n isOnAll?: boolean;\n isOnBlur?: boolean;\n isOnChange?: boolean;\n isReValidateOnBlur?: boolean;\n isReValidateOnChange?: boolean;\n isBlurEvent?: boolean;\n isSubmitted?: boolean;\n isOnTouch?: boolean;\n isTouched?: boolean;\n}) => {\n if (isOnAll) {\n return false;\n } else if (!isSubmitted && isOnTouch) {\n return !(isTouched || isBlurEvent);\n } else if (isSubmitted ? isReValidateOnBlur : isOnBlur) {\n return !isBlurEvent;\n } else if (isSubmitted ? isReValidateOnChange : isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n","export default (name: string) => name.substring(0, name.indexOf('['));\n","import { FieldValues, InternalFieldName } from '../types';\n\nexport const isMatchFieldArrayName = (name: string, searchName: string) =>\n RegExp(\n `^${searchName}([|.)\\\\d+`.replace(/\\[/g, '\\\\[').replace(/\\]/g, '\\\\]'),\n ).test(name);\n\nexport default (\n names: Set<InternalFieldName<FieldValues>>,\n name: InternalFieldName<FieldValues>,\n) => [...names].some((current) => isMatchFieldArrayName(name, current));\n","import { FieldElement } from '../types';\nimport { SELECT } from '../constants';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `${SELECT}-one`;\n","import * as React from 'react';\nimport { Field, FieldRefs } from '../types';\nimport isDetached from './isDetached';\n\nexport default function onDomRemove<TFieldValues>(\n fieldsRef: React.MutableRefObject<FieldRefs<TFieldValues>>,\n removeFieldEventListenerAndRef: (\n field: Field | undefined,\n forceDelete?: boolean,\n ) => void,\n): MutationObserver {\n const observer = new MutationObserver((): void => {\n for (const field of Object.values(fieldsRef.current)) {\n if (field && field.options) {\n for (const option of field.options) {\n if (option && option.ref && isDetached(option.ref)) {\n removeFieldEventListenerAndRef(field);\n }\n }\n } else if (field && isDetached(field.ref)) {\n removeFieldEventListenerAndRef(field);\n }\n }\n });\n\n observer.observe(window.document, {\n childList: true,\n subtree: true,\n });\n\n return observer;\n}\n","import { UNDEFINED } from '../constants';\n\nexport default typeof window !== UNDEFINED && typeof document !== UNDEFINED;\n","import isPrimitive from './isPrimitive';\nimport isHTMLElement from './isHTMLElement';\nimport isWeb from './isWeb';\n\nexport default function cloneObject<T extends unknown>(data: T): T {\n let copy: any;\n\n if (\n isPrimitive(data) ||\n (isWeb && (data instanceof File || isHTMLElement(data)))\n ) {\n return data;\n }\n\n if (\n !['Set', 'Map', 'Object', 'Date', 'Array'].includes(\n (data as Object).constructor?.name,\n )\n ) {\n return data;\n }\n\n if (data instanceof Date) {\n copy = new Date(data.getTime());\n return copy;\n }\n\n if (data instanceof Set) {\n copy = new Set();\n for (const item of data) {\n copy.add(item);\n }\n return copy;\n }\n\n if (data instanceof Map) {\n copy = new Map();\n for (const key of data.keys()) {\n copy.set(key, cloneObject(data.get(key)));\n }\n return copy;\n }\n\n copy = Array.isArray(data) ? [] : {};\n\n for (const key in data) {\n copy[key] = cloneObject(data[key]);\n }\n\n return copy;\n}\n","import { VALIDATION_MODE } from '../constants';\nimport { Mode } from '../types';\n\nexport default (\n mode?: Mode,\n): {\n isOnSubmit: boolean;\n isOnBlur: boolean;\n isOnChange: boolean;\n isOnAll: boolean;\n isOnTouch: boolean;\n} => ({\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 isRadioInput from './isRadioInput';\nimport isCheckBoxInput from './isCheckBoxInput';\nimport { FieldElement } from '../types';\n\nexport default (ref: FieldElement): ref is HTMLInputElement =>\n isRadioInput(ref) || isCheckBoxInput(ref);\n","import * as React from 'react';\nimport attachEventListeners from './logic/attachEventListeners';\nimport transformToNestObject from './logic/transformToNestObject';\nimport focusOnErrorField from './logic/focusOnErrorField';\nimport findRemovedFieldAndRemoveListener from './logic/findRemovedFieldAndRemoveListener';\nimport setFieldArrayDirtyFields from './logic/setFieldArrayDirtyFields';\nimport getFieldsValues from './logic/getFieldsValues';\nimport getFieldValue from './logic/getFieldValue';\nimport isErrorStateChanged from './logic/isErrorStateChanged';\nimport validateField from './logic/validateField';\nimport assignWatchFields from './logic/assignWatchFields';\nimport skipValidation from './logic/skipValidation';\nimport getNodeParentName from './logic/getNodeParentName';\nimport deepEqual from './utils/deepEqual';\nimport isNameInFieldArray from './logic/isNameInFieldArray';\nimport isCheckBoxInput from './utils/isCheckBoxInput';\nimport isEmptyObject from './utils/isEmptyObject';\nimport isRadioInput from './utils/isRadioInput';\nimport isSelectInput from './utils/isSelectInput';\nimport isFileInput from './utils/isFileInput';\nimport onDomRemove from './utils/onDomRemove';\nimport isObject from './utils/isObject';\nimport { getPath } from './utils/getPath';\nimport isPrimitive from './utils/isPrimitive';\nimport isFunction from './utils/isFunction';\nimport isString from './utils/isString';\nimport isUndefined from './utils/isUndefined';\nimport get from './utils/get';\nimport set from './utils/set';\nimport unset from './utils/unset';\nimport isKey from './utils/isKey';\nimport cloneObject from './utils/cloneObject';\nimport modeChecker from './utils/validationModeChecker';\nimport isMultipleSelect from './utils/isMultipleSelect';\nimport compact from './utils/compact';\nimport isNullOrUndefined from './utils/isNullOrUndefined';\nimport isRadioOrCheckboxFunction from './utils/isRadioOrCheckbox';\nimport isWeb from './utils/isWeb';\nimport isHTMLElement from './utils/isHTMLElement';\nimport { EVENTS, UNDEFINED, VALIDATION_MODE } from './constants';\nimport {\n UseFormMethods,\n FieldValues,\n UnpackNestedValue,\n FieldName,\n InternalFieldName,\n FieldErrors,\n Field,\n FieldRefs,\n UseFormOptions,\n RegisterOptions,\n SubmitHandler,\n FieldElement,\n FormStateProxy,\n ReadFormState,\n Ref,\n HandleChange,\n RadioOrCheckboxOption,\n OmitResetState,\n SetValueConfig,\n ErrorOption,\n FormState,\n SubmitErrorHandler,\n FieldNamesMarkedBoolean,\n LiteralToPrimitive,\n DeepPartial,\n InternalNameSet,\n DefaultValues,\n FieldError,\n SetFieldValue,\n FieldArrayDefaultValues,\n ResetFieldArrayFunctionRef,\n UseWatchRenderFunctions,\n RecordInternalNameSet,\n} from './types';\n\nconst isWindowUndefined = typeof window === UNDEFINED;\nconst isProxyEnabled = isWeb ? 'Proxy' in window : typeof Proxy !== UNDEFINED;\n\nexport function useForm<\n TFieldValues extends FieldValues = FieldValues,\n TContext extends object = object\n>({\n mode = VALIDATION_MODE.onSubmit,\n reValidateMode = VALIDATION_MODE.onChange,\n resolver,\n context,\n defaultValues = {} as DefaultValues<TFieldValues>,\n shouldFocusError = true,\n shouldUnregister = true,\n criteriaMode,\n}: UseFormOptions<TFieldValues, TContext> = {}): UseFormMethods<TFieldValues> {\n const fieldsRef = React.useRef<FieldRefs<TFieldValues>>({});\n const fieldArrayDefaultValuesRef = React.useRef<FieldArrayDefaultValues>({});\n const fieldArrayValuesRef = React.useRef<FieldArrayDefaultValues>({});\n const watchFieldsRef = React.useRef<InternalNameSet<TFieldValues>>(new Set());\n const useWatchFieldsRef = React.useRef<RecordInternalNameSet<TFieldValues>>(\n {},\n );\n const useWatchRenderFunctionsRef = React.useRef<UseWatchRenderFunctions>({});\n const fieldsWithValidationRef = React.useRef<\n FieldNamesMarkedBoolean<TFieldValues>\n >({});\n const validFieldsRef = React.useRef<FieldNamesMarkedBoolean<TFieldValues>>(\n {},\n );\n const defaultValuesRef = React.useRef<DefaultValues<TFieldValues>>(\n defaultValues,\n );\n const isUnMount = React.useRef(false);\n const isWatchAllRef = React.useRef(false);\n const handleChangeRef = React.useRef<HandleChange>();\n const shallowFieldsStateRef = React.useRef({});\n const resetFieldArrayFunctionRef = React.useRef<\n ResetFieldArrayFunctionRef<TFieldValues>\n >({});\n const contextRef = React.useRef(context);\n const resolverRef = React.useRef(resolver);\n const fieldArrayNamesRef = React.useRef<InternalNameSet<TFieldValues>>(\n new Set(),\n );\n const modeRef = React.useRef(modeChecker(mode));\n const { isOnSubmit, isOnTouch } = modeRef.current;\n const isValidateAllFieldCriteria = criteriaMode === VALIDATION_MODE.all;\n const [formState, setFormState] = React.useState<FormState<TFieldValues>>({\n isDirty: false,\n isValidating: false,\n dirtyFields: {},\n isSubmitted: false,\n submitCount: 0,\n touched: {},\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: !isOnSubmit,\n errors: {},\n });\n const readFormStateRef = React.useRef<ReadFormState>({\n isDirty: !isProxyEnabled,\n dirtyFields: !isProxyEnabled,\n touched: !isProxyEnabled || isOnTouch,\n isValidating: !isProxyEnabled,\n isSubmitting: !isProxyEnabled,\n isValid: !isProxyEnabled,\n });\n const formStateRef = React.useRef(formState);\n const observerRef = React.useRef<MutationObserver | undefined>();\n const {\n isOnBlur: isReValidateOnBlur,\n isOnChange: isReValidateOnChange,\n } = React.useRef(modeChecker(reValidateMode)).current;\n\n contextRef.current = context;\n resolverRef.current = resolver;\n formStateRef.current = formState;\n shallowFieldsStateRef.current = shouldUnregister\n ? {}\n : isEmptyObject(shallowFieldsStateRef.current)\n ? cloneObject(defaultValues)\n : shallowFieldsStateRef.current;\n\n const updateFormState = React.useCallback(\n (state: Partial<FormState<TFieldValues>> = {}) => {\n if (!isUnMount.current) {\n formStateRef.current = {\n ...formStateRef.current,\n ...state,\n };\n setFormState(formStateRef.current);\n }\n },\n [],\n );\n\n const updateIsValidating = () =>\n readFormStateRef.current.isValidating &&\n updateFormState({\n isValidating: true,\n });\n\n const shouldRenderBaseOnError = React.useCallback(\n (\n name: InternalFieldName<TFieldValues>,\n error: FieldError | undefined,\n shouldRender: boolean | null = false,\n state: {\n dirtyFields?: FieldNamesMarkedBoolean<TFieldValues>;\n isDirty?: boolean;\n touched?: FieldNamesMarkedBoolean<TFieldValues>;\n } = {},\n isValid?: boolean,\n ): boolean | void => {\n let shouldReRender =\n shouldRender ||\n isErrorStateChanged<TFieldValues>({\n errors: formStateRef.current.errors,\n error,\n name,\n validFields: validFieldsRef.current,\n fieldsWithValidation: fieldsWithValidationRef.current,\n });\n const previousError = get(formStateRef.current.errors, name);\n\n if (error) {\n unset(validFieldsRef.current, name);\n shouldReRender =\n shouldReRender ||\n !previousError ||\n !deepEqual(previousError, error, true);\n set(formStateRef.current.errors, name, error);\n } else {\n if (get(fieldsWithValidationRef.current, name) || resolverRef.current) {\n set(validFieldsRef.current, name, true);\n shouldReRender = shouldReRender || previousError;\n }\n\n unset(formStateRef.current.errors, name);\n }\n\n if (\n (shouldReRender && !isNullOrUndefined(shouldRender)) ||\n !isEmptyObject(state) ||\n readFormStateRef.current.isValidating\n ) {\n updateFormState({\n ...state,\n ...(resolverRef.current ? { isValid: !!isValid } : {}),\n isValidating: false,\n });\n }\n },\n [],\n );\n\n const setFieldValue = React.useCallback(\n (name: FieldName<TFieldValues>, rawValue: SetFieldValue<TFieldValues>) => {\n const { ref, options } = fieldsRef.current[name] as Field;\n const value =\n isWeb && isHTMLElement(ref) && isNullOrUndefined(rawValue)\n ? ''\n : rawValue;\n\n if (isRadioInput(ref)) {\n (options || []).forEach(\n ({ ref: radioRef }: { ref: HTMLInputElement }) =>\n (radioRef.checked = radioRef.value === value),\n );\n } else if (isFileInput(ref) && !isString(value)) {\n ref.files = value as FileList;\n } else if (isMultipleSelect(ref)) {\n [...ref.options].forEach(\n (selectRef) =>\n (selectRef.selected = (value as string[]).includes(\n selectRef.value,\n )),\n );\n } else if (isCheckBoxInput(ref) && options) {\n options.length > 1\n ? options.forEach(\n ({ ref: checkboxRef }) =>\n (checkboxRef.checked = Array.isArray(value)\n ? !!(value as []).find(\n (data: string) => data === checkboxRef.value,\n )\n : value === checkboxRef.value),\n )\n : (options[0].ref.checked = !!value);\n } else {\n ref.value = value;\n }\n },\n [],\n );\n\n const isFormDirty = React.useCallback(\n (name?: string, data?: unknown[]): boolean => {\n if (readFormStateRef.current.isDirty) {\n const formValues = getValues();\n\n name && data && set(formValues, name, data);\n\n return !deepEqual(formValues, defaultValuesRef.current);\n }\n\n return false;\n },\n [],\n );\n\n const updateAndGetDirtyState = React.useCallback(\n (\n name: InternalFieldName<TFieldValues>,\n shouldRender = true,\n ): Partial<\n Pick<FormState<TFieldValues>, 'dirtyFields' | 'isDirty' | 'touched'>\n > => {\n if (\n readFormStateRef.current.isDirty ||\n readFormStateRef.current.dirtyFields\n ) {\n const isFieldDirty = !deepEqual(\n get(defaultValuesRef.current, name),\n getFieldValue(fieldsRef, name, shallowFieldsStateRef),\n );\n const isDirtyFieldExist = get(formStateRef.current.dirtyFields, name);\n const previousIsDirty = formStateRef.current.isDirty;\n\n isFieldDirty\n ? set(formStateRef.current.dirtyFields, name, true)\n : unset(formStateRef.current.dirtyFields, name);\n\n const state = {\n isDirty: isFormDirty(),\n dirtyFields: formStateRef.current.dirtyFields,\n };\n\n const isChanged =\n (readFormStateRef.current.isDirty &&\n previousIsDirty !== state.isDirty) ||\n (readFormStateRef.current.dirtyFields &&\n isDirtyFieldExist !== get(formStateRef.current.dirtyFields, name));\n\n isChanged && shouldRender && updateFormState(state);\n\n return isChanged ? state : {};\n }\n\n return {};\n },\n [],\n );\n\n const executeValidation = React.useCallback(\n async (\n name: InternalFieldName<TFieldValues>,\n skipReRender?: boolean | null,\n ): Promise<boolean> => {\n if (process.env.NODE_ENV !== 'production') {\n if (!fieldsRef.current[name]) {\n console.warn('📋 Field is missing with `name` attribute: ', name);\n return false;\n }\n }\n\n const error = (\n await validateField<TFieldValues>(\n fieldsRef,\n isValidateAllFieldCriteria,\n fieldsRef.current[name] as Field,\n shallowFieldsStateRef,\n )\n )[name];\n\n shouldRenderBaseOnError(name, error, skipReRender);\n\n return isUndefined(error);\n },\n [shouldRenderBaseOnError, isValidateAllFieldCriteria],\n );\n\n const executeSchemaOrResolverValidation = React.useCallback(\n async (\n names:\n | InternalFieldName<TFieldValues>\n | InternalFieldName<TFieldValues>[],\n ) => {\n const { errors } = await resolverRef.current!(\n getValues(),\n contextRef.current,\n isValidateAllFieldCriteria,\n );\n const previousFormIsValid = formStateRef.current.isValid;\n\n if (Array.isArray(names)) {\n const isInputsValid = names\n .map((name) => {\n const error = get(errors, name);\n\n error\n ? set(formStateRef.current.errors, name, error)\n : unset(formStateRef.current.errors, name);\n\n return !error;\n })\n .every(Boolean);\n\n updateFormState({\n isValid: isEmptyObject(errors),\n isValidating: false,\n });\n\n return isInputsValid;\n } else {\n const error = get(errors, names);\n\n shouldRenderBaseOnError(\n names,\n error,\n previousFormIsValid !== isEmptyObject(errors),\n {},\n isEmptyObject(errors),\n );\n\n return !error;\n }\n },\n [shouldRenderBaseOnError, isValidateAllFieldCriteria],\n );\n\n const trigger = React.useCallback(\n async (\n name?: FieldName<TFieldValues> | FieldName<TFieldValues>[],\n ): Promise<boolean> => {\n const fields = name || Object.keys(fieldsRef.current);\n\n updateIsValidating();\n\n if (resolverRef.current) {\n return executeSchemaOrResolverValidation(fields);\n }\n\n if (Array.isArray(fields)) {\n !name && (formStateRef.current.errors = {});\n const result = await Promise.all(\n fields.map(async (data) => await executeValidation(data, null)),\n );\n updateFormState({\n isValidating: false,\n });\n return result.every(Boolean);\n }\n\n return await executeValidation(fields);\n },\n [executeSchemaOrResolverValidation, executeValidation],\n );\n\n const setInternalValues = React.useCallback(\n (\n name: FieldName<TFieldValues>,\n value: SetFieldValue<TFieldValues>,\n { shouldDirty, shouldValidate }: SetValueConfig,\n ) => {\n const data = {};\n set(data, name, value);\n\n for (const fieldName of getPath(name, value)) {\n if (fieldsRef.current[fieldName]) {\n setFieldValue(fieldName, get(data, fieldName));\n shouldDirty && updateAndGetDirtyState(fieldName);\n shouldValidate && trigger(fieldName as FieldName<TFieldValues>);\n }\n }\n },\n [trigger, setFieldValue, updateAndGetDirtyState],\n );\n\n const setInternalValue = React.useCallback(\n (\n name: FieldName<TFieldValues>,\n value: SetFieldValue<TFieldValues>,\n config: SetValueConfig,\n ) => {\n !shouldUnregister &&\n !isPrimitive(value) &&\n set(\n shallowFieldsStateRef.current,\n name,\n Array.isArray(value) ? [...value] : { ...value },\n );\n\n if (fieldsRef.current[name]) {\n setFieldValue(name, value);\n config.shouldDirty && updateAndGetDirtyState(name);\n config.shouldValidate && trigger(name as any);\n } else if (!isPrimitive(value)) {\n setInternalValues(name, value, config);\n\n if (fieldArrayNamesRef.current.has(name)) {\n const parentName = getNodeParentName(name) || name;\n set(fieldArrayDefaultValuesRef.current, name, value);\n\n resetFieldArrayFunctionRef.current[parentName]({\n [parentName]: get(fieldArrayDefaultValuesRef.current, parentName),\n } as UnpackNestedValue<DeepPartial<TFieldValues>>);\n\n if (\n (readFormStateRef.current.isDirty ||\n readFormStateRef.current.dirtyFields) &&\n config.shouldDirty\n ) {\n set(\n formStateRef.current.dirtyFields,\n name,\n setFieldArrayDirtyFields(\n value,\n get(defaultValuesRef.current, name, []),\n get(formStateRef.current.dirtyFields, name, []),\n ),\n );\n\n updateFormState({\n isDirty: !deepEqual(\n { ...getValues(), [name]: value },\n defaultValuesRef.current,\n ),\n });\n }\n }\n }\n\n !shouldUnregister && set(shallowFieldsStateRef.current, name, value);\n },\n [updateAndGetDirtyState, setFieldValue, setInternalValues],\n );\n\n const isFieldWatched = <T extends FieldName<TFieldValues>>(name: T) =>\n isWatchAllRef.current ||\n watchFieldsRef.current.has(name) ||\n watchFieldsRef.current.has((name.match(/\\w+/) || [])[0]);\n\n const renderWatchedInputs = <T extends FieldName<FieldValues>>(\n name: T,\n ): boolean => {\n let found = true;\n\n if (!isEmptyObject(useWatchFieldsRef.current)) {\n for (const key in useWatchFieldsRef.current) {\n if (\n !name ||\n !useWatchFieldsRef.current[key].size ||\n useWatchFieldsRef.current[key].has(name) ||\n useWatchFieldsRef.current[key].has(getNodeParentName(name))\n ) {\n useWatchRenderFunctionsRef.current[key]();\n found = false;\n }\n }\n }\n\n return found;\n };\n\n function setValue(\n name: FieldName<TFieldValues>,\n value: SetFieldValue<TFieldValues>,\n config?: SetValueConfig,\n ): void {\n setInternalValue(name, value, config || {});\n isFieldWatched(name) && updateFormState();\n renderWatchedInputs(name);\n }\n\n handleChangeRef.current = handleChangeRef.current\n ? handleChangeRef.current\n : async ({ type, target }: Event): Promise<void | boolean> => {\n let name = (target as Ref)!.name;\n const field = fieldsRef.current[name];\n let error;\n let isValid;\n\n if (field) {\n const isBlurEvent = type === EVENTS.BLUR;\n const shouldSkipValidation = skipValidation({\n isBlurEvent,\n isReValidateOnChange,\n isReValidateOnBlur,\n isTouched: !!get(formStateRef.current.touched, name),\n isSubmitted: formStateRef.current.isSubmitted,\n ...modeRef.current,\n });\n let state = updateAndGetDirtyState(name, false);\n let shouldRender =\n !isEmptyObject(state) ||\n (!isBlurEvent && isFieldWatched(name as FieldName<TFieldValues>));\n\n if (\n isBlurEvent &&\n !get(formStateRef.current.touched, name) &&\n readFormStateRef.current.touched\n ) {\n set(formStateRef.current.touched, name, true);\n state = {\n ...state,\n touched: formStateRef.current.touched,\n };\n }\n\n if (!shouldUnregister && isCheckBoxInput(target as Ref)) {\n set(\n shallowFieldsStateRef.current,\n name,\n getFieldValue(fieldsRef, name),\n );\n }\n\n if (shouldSkipValidation) {\n !isBlurEvent && renderWatchedInputs(name);\n return (\n (!isEmptyObject(state) ||\n (shouldRender && isEmptyObject(state))) &&\n updateFormState(state)\n );\n }\n\n updateIsValidating();\n\n if (resolverRef.current) {\n const { errors } = await resolverRef.current(\n getValues(),\n contextRef.current,\n isValidateAllFieldCriteria,\n );\n const previousFormIsValid = formStateRef.current.isValid;\n error = get(errors, name);\n\n if (\n isCheckBoxInput(target as Ref) &&\n !error &&\n resolverRef.current\n ) {\n const parentNodeName = getNodeParentName(name);\n const currentError = get(errors, parentNodeName, {});\n currentError.type &&\n currentError.message &&\n (error = currentError);\n\n if (\n parentNodeName &&\n (currentError ||\n get(formStateRef.current.errors, parentNodeName))\n ) {\n name = parentNodeName;\n }\n }\n\n isValid = isEmptyObject(errors);\n\n previousFormIsValid !== isValid && (shouldRender = true);\n } else {\n error = (\n await validateField<TFieldValues>(\n fieldsRef,\n isValidateAllFieldCriteria,\n field,\n shallowFieldsStateRef,\n )\n )[name];\n }\n\n !isBlurEvent && renderWatchedInputs(name);\n shouldRenderBaseOnError(name, error, shouldRender, state, isValid);\n }\n };\n\n function setFieldArrayDefaultValues<T extends FieldValues>(data: T): T {\n if (!shouldUnregister) {\n let copy = cloneObject(data);\n\n for (const value of fieldArrayNamesRef.current) {\n if (isKey(value) && !copy[value]) {\n copy = {\n ...copy,\n [value]: [],\n };\n }\n }\n\n return copy;\n }\n return data;\n }\n\n function getValues(): UnpackNestedValue<TFieldValues>;\n function getValues<TFieldName extends string, TFieldValue extends unknown>(\n name: TFieldName,\n ): TFieldName extends keyof TFieldValues\n ? UnpackNestedValue<TFieldValues>[TFieldName]\n : TFieldValue;\n function getValues<TFieldName extends keyof TFieldValues>(\n names: TFieldName[],\n ): UnpackNestedValue<Pick<TFieldValues, TFieldName>>;\n function getValues(payload?: string | string[]): unknown {\n if (isString(payload)) {\n return getFieldValue(fieldsRef, payload, shallowFieldsStateRef);\n }\n\n if (Array.isArray(payload)) {\n const data = {};\n\n for (const name of payload) {\n set(data, name, getFieldValue(fieldsRef, name, shallowFieldsStateRef));\n }\n\n return data;\n }\n\n return setFieldArrayDefaultValues(\n getFieldsValues(\n fieldsRef,\n cloneObject(shallowFieldsStateRef.current),\n shouldUnregister,\n ),\n );\n }\n\n const validateResolver = React.useCallback(\n async (values = {}) => {\n const newDefaultValues = isEmptyObject(fieldsRef.current)\n ? defaultValuesRef.current\n : {};\n\n const { errors } =\n (await resolverRef.current!(\n {\n ...newDefaultValues,\n ...getValues(),\n ...values,\n },\n contextRef.current,\n isValidateAllFieldCriteria,\n )) || {};\n const isValid = isEmptyObject(errors);\n\n formStateRef.current.isValid !== isValid &&\n updateFormState({\n isValid,\n });\n },\n [isValidateAllFieldCriteria],\n );\n\n const removeFieldEventListener = React.useCallback(\n (field: Field, forceDelete?: boolean) => {\n findRemovedFieldAndRemoveListener(\n fieldsRef,\n handleChangeRef.current!,\n field,\n shallowFieldsStateRef,\n shouldUnregister,\n forceDelete,\n );\n\n if (shouldUnregister) {\n unset(validFieldsRef.current, field.ref.name);\n unset(fieldsWithValidationRef.current, field.ref.name);\n }\n },\n [shouldUnregister],\n );\n\n const updateWatchedValue = React.useCallback((name: string) => {\n if (isWatchAllRef.current) {\n updateFormState();\n } else {\n for (const watchField of watchFieldsRef.current) {\n if (watchField.startsWith(name)) {\n updateFormState();\n break;\n }\n }\n\n renderWatchedInputs(name);\n }\n }, []);\n\n const removeFieldEventListenerAndRef = React.useCallback(\n (field?: Field, forceDelete?: boolean) => {\n if (field) {\n removeFieldEventListener(field, forceDelete);\n\n if (shouldUnregister && !compact(field.options || []).length) {\n unset(formStateRef.current.errors, field.ref.name);\n set(formStateRef.current.dirtyFields, field.ref.name, true);\n\n updateFormState({\n isDirty: isFormDirty(),\n });\n\n readFormStateRef.current.isValid &&\n resolverRef.current &&\n validateResolver();\n updateWatchedValue(field.ref.name);\n }\n }\n },\n [validateResolver, removeFieldEventListener],\n );\n\n function clearErrors(\n name?: FieldName<TFieldValues> | FieldName<TFieldValues>[],\n ): void {\n name &&\n (Array.isArray(name) ? name : [name]).forEach((inputName) =>\n fieldsRef.current[inputName] && isKey(inputName)\n ? delete formStateRef.current.errors[inputName]\n : unset(formStateRef.current.errors, inputName),\n );\n\n updateFormState({\n errors: name ? formStateRef.current.errors : {},\n });\n }\n\n function setError(name: FieldName<TFieldValues>, error: ErrorOption) {\n const ref = (fieldsRef.current[name] || {})!.ref;\n\n set(formStateRef.current.errors, name, {\n ...error,\n ref,\n });\n\n updateFormState({\n isValid: false,\n });\n\n error.shouldFocus && ref && ref.focus && ref.focus();\n }\n\n const watchInternal = React.useCallback(\n <T>(fieldNames?: string | string[], defaultValue?: T, watchId?: string) => {\n const watchFields = watchId\n ? useWatchFieldsRef.current[watchId]\n : watchFieldsRef.current;\n let fieldValues = getFieldsValues<TFieldValues>(\n fieldsRef,\n cloneObject(shallowFieldsStateRef.current),\n shouldUnregister,\n false,\n fieldNames,\n );\n\n if (isString(fieldNames)) {\n const parentNodeName = getNodeParentName(fieldNames) || fieldNames;\n\n if (fieldArrayNamesRef.current.has(parentNodeName)) {\n fieldValues = {\n ...fieldArrayValuesRef.current,\n ...fieldValues,\n };\n }\n\n return assignWatchFields<TFieldValues>(\n fieldValues,\n fieldNames,\n watchFields,\n isUndefined(get(defaultValuesRef.current, fieldNames))\n ? defaultValue\n : get(defaultValuesRef.current, fieldNames),\n true,\n );\n }\n\n const combinedDefaultValues = isUndefined(defaultValue)\n ? defaultValuesRef.current\n : defaultValue;\n\n if (Array.isArray(fieldNames)) {\n return fieldNames.reduce(\n (previous, name) => ({\n ...previous,\n [name]: assignWatchFields<TFieldValues>(\n fieldValues,\n name,\n watchFields,\n combinedDefaultValues as UnpackNestedValue<\n DeepPartial<TFieldValues>\n >,\n ),\n }),\n {},\n );\n }\n\n isWatchAllRef.current = isUndefined(watchId);\n\n return transformToNestObject(\n (!isEmptyObject(fieldValues) && fieldValues) ||\n (combinedDefaultValues as FieldValues),\n );\n },\n [],\n );\n\n function watch(): UnpackNestedValue<TFieldValues>;\n function watch<\n TFieldName extends string,\n TFieldValue extends TFieldValues[TFieldName]\n >(\n name?: TFieldName,\n defaultValue?: UnpackNestedValue<LiteralToPrimitive<TFieldValue>>,\n ): UnpackNestedValue<LiteralToPrimitive<TFieldValue>>;\n function watch<TFieldName extends keyof TFieldValues>(\n names: TFieldName[],\n defaultValues?: UnpackNestedValue<\n DeepPartial<Pick<TFieldValues, TFieldName>>\n >,\n ): UnpackNestedValue<Pick<TFieldValues, TFieldName>>;\n function watch(\n names: string[],\n defaultValues?: UnpackNestedValue<DeepPartial<TFieldValues>>,\n ): UnpackNestedValue<DeepPartial<TFieldValues>>;\n function watch(\n fieldNames?: string | string[] | undefined,\n defaultValue?: unknown,\n ): unknown {\n return watchInternal(fieldNames, defaultValue);\n }\n\n function unregister(\n name: FieldName<TFieldValues> | FieldName<TFieldValues>[],\n ): void {\n for (const fieldName of Array.isArray(name) ? name : [name]) {\n removeFieldEventListenerAndRef(fieldsRef.current[fieldName], true);\n }\n }\n\n function registerFieldRef<TFieldElement extends FieldElement<TFieldValues>>(\n ref: TFieldElement & Ref,\n options: RegisterOptions | null = {},\n ): ((name: InternalFieldName<TFieldValues>) => void) | void {\n if (process.env.NODE_ENV !== 'production') {\n if (!ref.name) {\n return console.warn(\n '📋 Field is missing `name` attribute',\n ref,\n `https://react-hook-form.com/api#useForm`,\n );\n }\n\n if (\n fieldArrayNamesRef.current.has(ref.name.split(/\\[\\d+\\]$/)[0]) &&\n !RegExp(\n `^${ref.name.split(/\\[\\d+\\]$/)[0]}[\\\\d+].\\\\w+`\n .replace(/\\[/g, '\\\\[')\n .replace(/\\]/g, '\\\\]'),\n ).test(ref.name)\n ) {\n return console.warn(\n '📋 `name` prop should be in object shape: name=\"test[index].name\"',\n ref,\n 'https://react-hook-form.com/api#useFieldArray',\n );\n }\n }\n\n const { name, type, value } = ref;\n const fieldRefAndValidationOptions = {\n ref,\n ...options,\n };\n const fields = fieldsRef.current;\n const isRadioOrCheckbox = isRadioOrCheckboxFunction(ref);\n const isFieldArray = isNameInFieldArray(fieldArrayNamesRef.current, name);\n const compareRef = (currentRef: Ref) =>\n isWeb && (!isHTMLElement(ref) || currentRef === ref);\n let field = fields[name] as Field;\n let isEmptyDefaultValue = true;\n let defaultValue;\n\n if (\n field &&\n (isRadioOrCheckbox\n ? Array.isArray(field.options) &&\n compact(field.options).find((option) => {\n return value === option.ref.value && compareRef(option.ref);\n })\n : compareRef(field.ref))\n ) {\n fields[name] = {\n ...field,\n ...options,\n };\n return;\n }\n\n if (type) {\n field = isRadioOrCheckbox\n ? {\n options: [\n ...compact((field && field.options) || []),\n {\n ref,\n } as RadioOrCheckboxOption,\n ],\n ref: { type, name },\n ...options,\n }\n : {\n ...fieldRefAndValidationOptions,\n };\n } else {\n field = fieldRefAndValidationOptions;\n }\n\n fields[name] = field;\n\n const isEmptyUnmountFields = isUndefined(\n get(shallowFieldsStateRef.current, name),\n );\n\n if (!isEmptyObject(defaultValuesRef.current) || !isEmptyUnmountFields) {\n defaultValue = get(\n isEmptyUnmountFields\n ? defaultValuesRef.current\n : shallowFieldsStateRef.current,\n name,\n );\n isEmptyDefaultValue = isUndefined(defaultValue);\n\n if (!isEmptyDefaultValue && !isFieldArray) {\n setFieldValue(name as FieldName<TFieldValues>, defaultValue);\n }\n }\n\n if (!isEmptyObject(options)) {\n set(fieldsWithValidationRef.current, name, true);\n\n if (!isOnSubmit && readFormStateRef.current.isValid) {\n validateField(\n fieldsRef,\n isValidateAllFieldCriteria,\n field,\n shallowFieldsStateRef,\n ).then((error: FieldErrors) => {\n const previousFormIsValid = formStateRef.current.isValid;\n\n isEmptyObject(error)\n ? set(validFieldsRef.current, name, true)\n : unset(validFieldsRef.current, name);\n\n previousFormIsValid !== isEmptyObject(error) && updateFormState();\n });\n }\n }\n\n if (shouldUnregister && !(isFieldArray && isEmptyDefaultValue)) {\n !isFieldArray && unset(formStateRef.current.dirtyFields, name);\n }\n\n if (type) {\n attachEventListeners(\n isRadioOrCheckbox && field.options\n ? field.options[field.options.length - 1]\n : field,\n isRadioOrCheckbox || isSelectInput(ref),\n handleChangeRef.current,\n );\n }\n }\n\n function register<TFieldElement extends FieldElement<TFieldValues>>(\n options?: RegisterOptions,\n ): (ref: (TFieldElement & Ref) | null) => void;\n function register(\n name: FieldName<TFieldValues>,\n options?: RegisterOptions,\n ): void;\n function register<TFieldElement extends FieldElement<TFieldValues>>(\n ref: (TFieldElement & Ref) | null,\n options?: RegisterOptions,\n ): void;\n function register<TFieldElement extends FieldElement<TFieldValues>>(\n refOrRegisterOptions?:\n | FieldName<TFieldValues>\n | RegisterOptions\n | (TFieldElement & Ref)\n | null,\n options?: RegisterOptions,\n ): ((ref: (TFieldElement & Ref) | null) => void) | void {\n if (!isWindowUndefined) {\n if (isString(refOrRegisterOptions)) {\n registerFieldRef({ name: refOrRegisterOptions }, options);\n } else if (\n isObject(refOrRegisterOptions) &&\n 'name' in refOrRegisterOptions\n ) {\n registerFieldRef(refOrRegisterOptions, options);\n } else {\n return (ref: (TFieldElement & Ref) | null) =>\n ref && registerFieldRef(ref, refOrRegisterOptions);\n }\n }\n }\n\n const handleSubmit = React.useCallback(\n <TSubmitFieldValues extends FieldValues = TFieldValues>(\n onValid: SubmitHandler<TSubmitFieldValues>,\n onInvalid?: SubmitErrorHandler<TFieldValues>,\n ) => async (e?: React.BaseSyntheticEvent): Promise<void> => {\n if (e && e.preventDefault) {\n e.preventDefault();\n e.persist();\n }\n let fieldErrors: FieldErrors<TFieldValues> = {};\n let fieldValues = setFieldArrayDefaultValues(\n getFieldsValues(\n fieldsRef,\n cloneObject(shallowFieldsStateRef.current),\n shouldUnregister,\n true,\n ),\n );\n\n readFormStateRef.current.isSubmitting &&\n updateFormState({\n isSubmitting: true,\n });\n\n try {\n if (resolverRef.current) {\n const { errors, values } = await resolverRef.current(\n fieldValues,\n contextRef.current,\n isValidateAllFieldCriteria,\n );\n formStateRef.current.errors = fieldErrors = errors;\n fieldValues = values;\n } else {\n for (const field of Object.values(fieldsRef.current)) {\n if (field) {\n const { name } = field.ref;\n\n const fieldError = await validateField(\n fieldsRef,\n isValidateAllFieldCriteria,\n field,\n shallowFieldsStateRef,\n );\n\n if (fieldError[name]) {\n set(fieldErrors, name, fieldError[name]);\n unset(validFieldsRef.current, name);\n } else if (get(fieldsWithValidationRef.current, name)) {\n unset(formStateRef.current.errors, name);\n set(validFieldsRef.current, name, true);\n }\n }\n }\n }\n\n if (\n isEmptyObject(fieldErrors) &&\n Object.keys(formStateRef.current.errors).every(\n (name) => name in fieldsRef.current,\n )\n ) {\n updateFormState({\n errors: {},\n isSubmitting: true,\n });\n await onValid(fieldValues, e);\n } else {\n formStateRef.current.errors = {\n ...formStateRef.current.errors,\n ...fieldErrors,\n };\n onInvalid && (await onInvalid(formStateRef.current.errors, e));\n shouldFocusError &&\n focusOnErrorField(fieldsRef.current, formStateRef.current.errors);\n }\n } finally {\n formStateRef.current.isSubmitting = false;\n updateFormState({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(formStateRef.current.errors),\n submitCount: formStateRef.current.submitCount + 1,\n });\n }\n },\n [shouldFocusError, isValidateAllFieldCriteria],\n );\n\n const resetRefs = ({\n errors,\n isDirty,\n isSubmitted,\n touched,\n isValid,\n submitCount,\n dirtyFields,\n }: OmitResetState) => {\n if (!isValid) {\n validFieldsRef.current = {};\n fieldsWithValidationRef.current = {};\n }\n\n fieldArrayDefaultValuesRef.current = {};\n watchFieldsRef.current = new Set();\n isWatchAllRef.current = false;\n\n updateFormState({\n submitCount: submitCount ? formStateRef.current.submitCount : 0,\n isDirty: isDirty ? formStateRef.current.isDirty : false,\n isSubmitted: isSubmitted ? formStateRef.current.isSubmitted : false,\n isValid: isValid ? formStateRef.current.isValid : false,\n dirtyFields: dirtyFields ? formStateRef.current.dirtyFields : {},\n touched: touched ? formStateRef.current.touched : {},\n errors: errors ? formStateRef.current.errors : {},\n isSubmitting: false,\n isSubmitSuccessful: false,\n });\n };\n\n const reset = (\n values?: DefaultValues<TFieldValues>,\n omitResetState: OmitResetState = {},\n ): void => {\n if (isWeb) {\n for (const field of Object.values(fieldsRef.current)) {\n if (field) {\n const { ref, options } = field;\n const inputRef =\n isRadioOrCheckboxFunction(ref) && Array.isArray(options)\n ? options[0].ref\n : ref;\n\n if (isHTMLElement(inputRef)) {\n try {\n inputRef.closest('form')!.reset();\n break;\n } catch {}\n }\n }\n }\n }\n\n fieldsRef.current = {};\n defaultValuesRef.current = { ...(values || defaultValuesRef.current) };\n values && renderWatchedInputs('');\n\n Object.values(resetFieldArrayFunctionRef.current).forEach(\n (resetFieldArray) => isFunction(resetFieldArray) && resetFieldArray(),\n );\n\n shallowFieldsStateRef.current = shouldUnregister\n ? {}\n : cloneObject(values || defaultValuesRef.current);\n\n resetRefs(omitResetState);\n };\n\n React.useEffect(() => {\n resolver && readFormStateRef.current.isValid && validateResolver();\n observerRef.current =\n observerRef.current || !isWeb\n ? observerRef.current\n : onDomRemove(fieldsRef, removeFieldEventListenerAndRef);\n }, [removeFieldEventListenerAndRef, defaultValuesRef.current]);\n\n React.useEffect(\n () => () => {\n observerRef.current && observerRef.current.disconnect();\n isUnMount.current = true;\n\n if (process.env.NODE_ENV !== 'production') {\n return;\n }\n\n Object.values(fieldsRef.current).forEach((field) =>\n removeFieldEventListenerAndRef(field, true),\n );\n },\n [],\n );\n\n if (!resolver && readFormStateRef.current.isValid) {\n formState.isValid =\n deepEqual(validFieldsRef.current, fieldsWithValidationRef.current) &&\n isEmptyObject(formStateRef.current.errors);\n }\n\n const commonProps = {\n trigger,\n setValue: React.useCallback(setValue, [setInternalValue, trigger]),\n getValues: React.useCallback(getValues, []),\n register: React.useCallback(register, [defaultValuesRef.current]),\n unregister: React.useCallback(unregister, []),\n formState: isProxyEnabled\n ? new Proxy(formState, {\n get: (obj, prop: keyof FormStateProxy) => {\n if (process.env.NODE_ENV !== 'production') {\n if (prop === 'isValid' && isOnSubmit) {\n console.warn(\n '📋 `formState.isValid` is applicable with `onTouched`, `onChange` or `onBlur` mode. https://react-hook-form.com/api#formState',\n );\n }\n }\n\n if (prop in obj) {\n readFormStateRef.current[prop] = true;\n return obj[prop];\n }\n\n return undefined;\n },\n })\n : formState,\n };\n\n const control = React.useMemo(\n () => ({\n isFormDirty,\n updateWatchedValue,\n shouldUnregister,\n updateFormState,\n removeFieldEventListener,\n watchInternal,\n mode: modeRef.current,\n reValidateMode: {\n isReValidateOnBlur,\n isReValidateOnChange,\n },\n validateResolver: resolver ? validateResolver : undefined,\n fieldsRef,\n resetFieldArrayFunctionRef,\n useWatchFieldsRef,\n useWatchRenderFunctionsRef,\n fieldArrayDefaultValuesRef,\n validFieldsRef,\n fieldsWithValidationRef,\n fieldArrayNamesRef,\n readFormStateRef,\n formStateRef,\n defaultValuesRef,\n shallowFieldsStateRef,\n fieldArrayValuesRef,\n ...commonProps,\n }),\n [\n defaultValuesRef.current,\n updateWatchedValue,\n shouldUnregister,\n removeFieldEventListener,\n watchInternal,\n ],\n );\n\n return {\n watch,\n control,\n handleSubmit,\n reset: React.useCallback(reset, []),\n clearErrors: React.useCallback(clearErrors, []),\n setError: React.useCallback(setError, []),\n errors: formState.errors,\n ...commonProps,\n };\n}\n","import * as React from 'react';\nimport { UseFormMethods, FieldValues, FormProviderProps } from './types';\n\nconst FormContext = React.createContext<UseFormMethods | null>(null);\n\nFormContext.displayName = 'RHFContext';\n\nexport const useFormContext = <\n TFieldValues extends FieldValues\n>(): UseFormMethods<TFieldValues> =>\n React.useContext(FormContext) as UseFormMethods<TFieldValues>;\n\nexport const FormProvider = <TFieldValues extends FieldValues>({\n children,\n ...props\n}: FormProviderProps<TFieldValues>) => (\n <FormContext.Provider value={{ ...props } as UseFormMethods}>\n {children}\n </FormContext.Provider>\n);\n","import { UNDEFINED } from '../constants';\n\nexport default () => {\n const d =\n typeof performance === UNDEFINED ? Date.now() : performance.now() * 1000;\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16 + d) % 16 | 0;\n\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n","import isUndefined from './isUndefined';\nimport compact from './compact';\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 (Array.isArray(index) ? index : [index]).sort((a, b) => a - b),\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 if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n return data;\n }\n\n return [];\n};\n","export default <T>(data: T[], indexA: number, indexB: number): void => {\n const temp = [data[indexB], data[indexA]];\n data[indexA] = temp[0];\n data[indexB] = temp[1];\n};\n","export default function prepend<T>(data: T[]): (T | undefined)[];\nexport default function prepend<T>(data: T[], value: T | T[]): T[];\nexport default function prepend<T>(\n data: T[],\n value?: T | T[],\n): (T | undefined)[] {\n return [...(Array.isArray(value) ? value : [value || undefined]), ...data];\n}\n","export 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 ...(Array.isArray(value) ? value : [value || undefined]),\n ...data.slice(index),\n ];\n}\n","export default <T>(value: T | T[]): undefined[] | undefined =>\n Array.isArray(value) ? Array(value.length).fill(undefined) : undefined;\n","import isObject from './isObject';\n\nexport default <T>(value: T) =>\n ((Array.isArray(value) ? value : [value]) as T[]).map((data) => {\n if (isObject(data)) {\n const object: Record<string, boolean> = {};\n\n for (const key in data) {\n object[key] = true;\n }\n\n return object;\n }\n\n return true;\n });\n","import * as React from 'react';\nimport { useFormContext } from './useFormContext';\nimport setFieldArrayDirtyFields from './logic/setFieldArrayDirtyFields';\nimport { isMatchFieldArrayName } from './logic/isNameInFieldArray';\nimport generateId from './logic/generateId';\nimport getFieldArrayParentName from './logic/getNodeParentName';\nimport get from './utils/get';\nimport set from './utils/set';\nimport removeArrayAt from './utils/remove';\nimport unset from './utils/unset';\nimport moveArrayAt from './utils/move';\nimport swapArrayAt from './utils/swap';\nimport prependAt from './utils/prepend';\nimport insertAt from './utils/insert';\nimport fillEmptyArray from './utils/fillEmptyArray';\nimport fillBooleanArray from './utils/fillBooleanArray';\nimport compact from './utils/compact';\nimport cloneObject from './utils/cloneObject';\nimport {\n Field,\n FieldValues,\n UseFieldArrayOptions,\n Control,\n ArrayField,\n UnpackNestedValue,\n DeepPartial,\n UseFieldArrayMethods,\n} from './types';\n\nconst mapIds = <\n TFieldArrayValues extends FieldValues = FieldValues,\n TKeyName extends string = 'id'\n>(\n values: Partial<TFieldArrayValues>[] = [],\n keyName: TKeyName,\n skipWarn?: boolean,\n): Partial<ArrayField<TFieldArrayValues, TKeyName>>[] => {\n if (process.env.NODE_ENV !== 'production') {\n if (!skipWarn) {\n for (const value of values) {\n if (typeof value === 'object') {\n if (keyName in value) {\n console.warn(\n `📋 useFieldArray fieldValues contain the keyName \\`${keyName}\\` which is reserved for use by useFieldArray. https://react-hook-form.com/api#useFieldArray`,\n );\n\n break;\n }\n } else {\n console.warn(\n `📋 useFieldArray input's name should be in object shape instead of flat array. https://react-hook-form.com/api#useFieldArray`,\n );\n\n break;\n }\n }\n }\n }\n\n return values.map((value: Partial<TFieldArrayValues>) => ({\n [keyName]: value[keyName] || generateId(),\n ...value,\n }));\n};\n\nexport const useFieldArray = <\n TFieldArrayValues extends FieldValues = FieldValues,\n TKeyName extends string = 'id',\n TControl extends Control = Control\n>({\n control,\n name,\n keyName = 'id' as TKeyName,\n}: UseFieldArrayOptions<TKeyName, TControl>): UseFieldArrayMethods<\n TFieldArrayValues,\n TKeyName\n> => {\n const methods = useFormContext();\n\n if (process.env.NODE_ENV !== 'production') {\n if (!control && !methods) {\n throw new Error(\n '📋 useFieldArray is missing `control` prop. https://react-hook-form.com/api#useFieldArray',\n );\n }\n }\n\n const focusIndexRef = React.useRef(-1);\n const isUnMount = React.useRef(false);\n const {\n isFormDirty,\n updateWatchedValue,\n resetFieldArrayFunctionRef,\n fieldArrayNamesRef,\n fieldsRef,\n defaultValuesRef,\n removeFieldEventListener,\n formStateRef,\n shallowFieldsStateRef,\n updateFormState,\n readFormStateRef,\n validFieldsRef,\n fieldsWithValidationRef,\n fieldArrayDefaultValuesRef,\n validateResolver,\n getValues,\n shouldUnregister,\n fieldArrayValuesRef,\n } = control || methods.control;\n\n const getDefaultValues = <T>(values: T) =>\n get(shouldUnregister ? values : shallowFieldsStateRef.current, name, []);\n\n const fieldArrayParentName = getFieldArrayParentName(name);\n const memoizedDefaultValues = React.useRef<Partial<TFieldArrayValues>[]>([\n ...(get(fieldArrayDefaultValuesRef.current, fieldArrayParentName)\n ? getDefaultValues(fieldArrayDefaultValuesRef.current)\n : getDefaultValues(defaultValuesRef.current)),\n ]);\n const [fields, setFields] = React.useState<\n Partial<ArrayField<TFieldArrayValues, TKeyName>>[]\n >(mapIds(memoizedDefaultValues.current, keyName));\n set(fieldArrayValuesRef.current, name, compact(fields));\n\n const omitKey = <T extends (Partial<TFieldArrayValues> | undefined)[]>(\n fields: T,\n ) => fields.map(({ [keyName]: omitted, ...rest } = {}) => rest);\n\n fieldArrayNamesRef.current.add(name);\n\n const getFieldArrayValue = React.useCallback(\n () => get(fieldArrayValuesRef.current, name, []),\n [name],\n );\n\n const getCurrentFieldsValues = () =>\n mapIds<TFieldArrayValues, TKeyName>(\n get(getValues(), name, getFieldArrayValue()).map(\n (item: Partial<TFieldArrayValues>, index: number) => ({\n ...getFieldArrayValue()[index],\n ...item,\n }),\n ),\n keyName,\n true,\n );\n\n fieldArrayNamesRef.current.add(name);\n\n if (\n fieldArrayParentName &&\n !get(fieldArrayDefaultValuesRef.current, fieldArrayParentName)\n ) {\n set(\n fieldArrayDefaultValuesRef.current,\n fieldArrayParentName,\n cloneObject(get(defaultValuesRef.current, fieldArrayParentName)),\n );\n }\n\n const setFieldAndValidState = (\n fieldsValues: Partial<ArrayField<TFieldArrayValues, TKeyName>>[],\n ) => {\n setFields(fieldsValues);\n set(fieldArrayValuesRef.current, name, fieldsValues);\n\n if (readFormStateRef.current.isValid && validateResolver) {\n const values = getValues();\n set(values, name, fieldsValues);\n validateResolver(values);\n }\n };\n\n const resetFields = () => {\n for (const key in fieldsRef.current) {\n if (isMatchFieldArrayName(key, name)) {\n removeFieldEventListener(fieldsRef.current[key] as Field, true);\n delete fieldsRef.current[key];\n }\n }\n };\n\n const cleanup = <T>(ref: T) =>\n !compact(get(ref, name, [])).length && unset(ref, name);\n\n const updateDirtyFieldsWithDefaultValues = <\n T extends (Partial<TFieldArrayValues> | undefined)[]\n >(\n updatedFieldArrayValues?: T,\n ) => {\n if (updatedFieldArrayValues) {\n set(\n formStateRef.current.dirtyFields,\n name,\n setFieldArrayDirtyFields(\n omitKey(updatedFieldArrayValues),\n get(defaultValuesRef.current, name, []),\n get(formStateRef.current.dirtyFields, name, []),\n ),\n );\n }\n };\n\n const batchStateUpdate = <\n T extends Function,\n K extends (Partial<TFieldArrayValues> | undefined)[]\n >(\n method: T,\n args: {\n argA?: unknown;\n argB?: unknown;\n argC?: unknown;\n argD?: unknown;\n },\n updatedFieldValues?: K,\n updatedFormValues: (Partial<TFieldArrayValues> | undefined)[] = [],\n shouldSet = true,\n shouldUpdateValid = false,\n ) => {\n if (get(shallowFieldsStateRef.current, name)) {\n const output = method(\n get(shallowFieldsStateRef.current, name),\n args.argA,\n args.argB,\n );\n shouldSet && set(shallowFieldsStateRef.current, name, output);\n }\n\n if (get(fieldArrayDefaultValuesRef.current, name)) {\n const output = method(\n get(fieldArrayDefaultValuesRef.current, name),\n args.argA,\n args.argB,\n );\n shouldSet && set(fieldArrayDefaultValuesRef.current, name, output);\n }\n\n if (Array.isArray(get(formStateRef.current.errors, name))) {\n const output = method(\n get(formStateRef.current.errors, name),\n args.argA,\n args.argB,\n );\n shouldSet && set(formStateRef.current.errors, name, output);\n cleanup(formStateRef.current.errors);\n }\n\n if (\n readFormStateRef.current.touched &&\n get(formStateRef.current.touched, name)\n ) {\n const output = method(\n get(formStateRef.current.touched, name),\n args.argA,\n args.argB,\n );\n shouldSet && set(formStateRef.current.touched, name, output);\n cleanup(formStateRef.current.touched);\n }\n\n if (\n readFormStateRef.current.dirtyFields ||\n readFormStateRef.current.isDirty\n ) {\n set(\n formStateRef.current.dirtyFields,\n name,\n setFieldArrayDirtyFields(\n omitKey(updatedFormValues),\n get(defaultValuesRef.current, name, []),\n get(formStateRef.current.dirtyFields, name, []),\n ),\n );\n updateDirtyFieldsWithDefaultValues(updatedFieldValues);\n cleanup(formStateRef.current.dirtyFields);\n }\n\n if (\n shouldUpdateValid &&\n readFormStateRef.current.isValid &&\n !validateResolver\n ) {\n set(\n validFieldsRef.current,\n name,\n method(get(validFieldsRef.current, name, []), args.argA),\n );\n cleanup(validFieldsRef.current);\n\n set(\n fieldsWithValidationRef.current,\n name,\n method(get(fieldsWithValidationRef.current, name, []), args.argA),\n );\n cleanup(fieldsWithValidationRef.current);\n }\n\n if (!isUnMount.current && readFormStateRef.current.isDirty) {\n updateFormState({\n isDirty: isFormDirty(name, omitKey(updatedFormValues)),\n });\n }\n };\n\n const append = (\n value: Partial<TFieldArrayValues> | Partial<TFieldArrayValues>[],\n shouldFocus = true,\n ) => {\n const appendValue = Array.isArray(value) ? value : [value];\n const updateFormValues = [\n ...getCurrentFieldsValues(),\n ...mapIds(appendValue, keyName),\n ];\n setFieldAndValidState(updateFormValues);\n\n if (\n readFormStateRef.current.dirtyFields ||\n readFormStateRef.current.isDirty\n ) {\n updateDirtyFieldsWithDefaultValues(updateFormValues);\n\n updateFormState({\n isDirty: true,\n dirtyFields: formStateRef.current.dirtyFields,\n });\n }\n\n !shouldUnregister &&\n set(shallowFieldsStateRef.current, name, [\n ...(get(shallowFieldsStateRef.current, name) || []),\n ...cloneObject(appendValue),\n ]);\n\n focusIndexRef.current = shouldFocus\n ? get(fieldArrayValuesRef.current, name).length - 1\n : -1;\n };\n\n const prepend = (\n value: Partial<TFieldArrayValues> | Partial<TFieldArrayValues>[],\n shouldFocus = true,\n ) => {\n const emptyArray = fillEmptyArray(value);\n const updatedFieldArrayValues = prependAt(\n getCurrentFieldsValues(),\n mapIds(Array.isArray(value) ? value : [value], keyName),\n );\n\n setFieldAndValidState(updatedFieldArrayValues);\n resetFields();\n batchStateUpdate(\n prependAt,\n {\n argA: emptyArray,\n argC: fillBooleanArray(value),\n },\n updatedFieldArrayValues,\n );\n focusIndexRef.current = shouldFocus ? 0 : -1;\n };\n\n const remove = (index?: number | number[]) => {\n const fieldValues = getCurrentFieldsValues();\n const updatedFieldValues: (\n | Partial<TFieldArrayValues>\n | undefined\n )[] = removeArrayAt(fieldValues, index);\n setFieldAndValidState(\n updatedFieldValues as Partial<ArrayField<TFieldArrayValues, TKeyName>>[],\n );\n resetFields();\n batchStateUpdate(\n removeArrayAt,\n {\n argA: index,\n argC: index,\n },\n updatedFieldValues,\n removeArrayAt(fieldValues, index),\n true,\n true,\n );\n };\n\n const insert = (\n index: number,\n value: Partial<TFieldArrayValues> | Partial<TFieldArrayValues>[],\n shouldFocus = true,\n ) => {\n const emptyArray = fillEmptyArray(value);\n const fieldValues = getCurrentFieldsValues();\n const updatedFieldArrayValues = insertAt(\n fieldValues,\n index,\n mapIds(Array.isArray(value) ? value : [value], keyName),\n );\n\n setFieldAndValidState(updatedFieldArrayValues);\n resetFields();\n batchStateUpdate(\n insertAt,\n {\n argA: index,\n argB: emptyArray,\n argC: index,\n argD: fillBooleanArray(value),\n },\n updatedFieldArrayValues,\n insertAt(fieldValues, index),\n );\n focusIndexRef.current = shouldFocus ? index : -1;\n };\n\n const swap = (indexA: number, indexB: number) => {\n const fieldValues = getCurrentFieldsValues();\n swapArrayAt(fieldValues, indexA, indexB);\n resetFields();\n setFieldAndValidState([...fieldValues]);\n batchStateUpdate(\n swapArrayAt,\n {\n argA: indexA,\n argB: indexB,\n argC: indexA,\n argD: indexB,\n },\n undefined,\n fieldValues,\n false,\n );\n };\n\n const move = (from: number, to: number) => {\n const fieldValues = getCurrentFieldsValues();\n moveArrayAt(fieldValues, from, to);\n resetFields();\n setFieldAndValidState([...fieldValues]);\n batchStateUpdate(\n moveArrayAt,\n {\n argA: from,\n argB: to,\n argC: from,\n argD: to,\n },\n undefined,\n fieldValues,\n false,\n );\n };\n\n React.useEffect(() => {\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n console.warn(\n '📋 useFieldArray is missing `name` attribute. https://react-hook-form.com/api#useFieldArray',\n );\n }\n }\n\n const defaultValues = get(fieldArrayDefaultValuesRef.current, name);\n\n if (defaultValues && fields.length < defaultValues.length) {\n set(fieldArrayDefaultValuesRef.current, name, defaultValues.slice(1));\n }\n\n updateWatchedValue(name);\n\n if (focusIndexRef.current > -1) {\n for (const key in fieldsRef.current) {\n const field = fieldsRef.current[key];\n if (\n key.startsWith(`${name}[${focusIndexRef.current}]`) &&\n field!.ref.focus\n ) {\n field!.ref.focus();\n break;\n }\n }\n }\n\n focusIndexRef.current = -1;\n }, [fields, name]);\n\n React.useEffect(() => {\n const resetFunctions = resetFieldArrayFunctionRef.current;\n const fieldArrayNames = fieldArrayNamesRef.current;\n\n if (!getFieldArrayParentName(name)) {\n resetFunctions[name] = <TFieldValues>(\n data?: UnpackNestedValue<DeepPartial<TFieldValues>>,\n ) => {\n resetFields();\n !data && unset(fieldArrayDefaultValuesRef.current, name);\n unset(shallowFieldsStateRef.current, name);\n memoizedDefaultValues.current = get(\n data || defaultValuesRef.current,\n name,\n );\n if (!isUnMount.current) {\n setFields(mapIds(memoizedDefaultValues.current, keyName));\n }\n };\n }\n\n return () => {\n isUnMount.current = true;\n shouldUnregister && remove();\n resetFields();\n delete resetFunctions[name];\n unset(fieldArrayValuesRef.current, name);\n fieldArrayNames.delete(name);\n };\n }, []);\n\n return {\n swap: React.useCallback(swap, [name]),\n move: React.useCallback(move, [name]),\n prepend: React.useCallback(prepend, [name]),\n append: React.useCallback(append, [name]),\n remove: React.useCallback(remove, [name]),\n insert: React.useCallback(insert, [name]),\n fields: compact(fields),\n };\n};\n","import isUndefined from '../utils/isUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\n\nexport default (event: any) =>\n isPrimitive(event) ||\n !isObject(event.target) ||\n (isObject(event.target) && !event.type)\n ? event\n : isUndefined(event.target.value)\n ? event.target.checked\n : event.target.value;\n","import { useFormContext } from './useFormContext';\nimport isNameInFieldArray from './logic/isNameInFieldArray';\nimport isUndefined from './utils/isUndefined';\nimport get from './utils/get';\nimport * as React from 'react';\nimport isFunction from './utils/isFunction';\nimport skipValidation from './logic/skipValidation';\nimport getInputValue from './logic/getInputValue';\nimport set from './utils/set';\nimport {\n FieldValues,\n UseControllerOptions,\n UseControllerMethods,\n} from './types';\n\nexport function useController<TFieldValues extends FieldValues = FieldValues>({\n name,\n rules,\n defaultValue,\n control,\n onFocus,\n}: UseControllerOptions<TFieldValues>): UseControllerMethods<TFieldValues> {\n const methods = useFormContext<TFieldValues>();\n\n if (process.env.NODE_ENV !== 'production') {\n if (!control && !methods) {\n throw new Error(\n '📋 Controller is missing `control` prop. https://react-hook-form.com/api#Controller',\n );\n }\n }\n\n const {\n defaultValuesRef,\n setValue,\n register,\n unregister,\n trigger,\n mode,\n reValidateMode: { isReValidateOnBlur, isReValidateOnChange },\n formState,\n formStateRef: {\n current: { isSubmitted, touched, errors },\n },\n updateFormState,\n readFormStateRef,\n fieldsRef,\n fieldArrayNamesRef,\n shallowFieldsStateRef,\n } = control || methods.control;\n\n const isNotFieldArray = !isNameInFieldArray(fieldArrayNamesRef.current, name);\n const getInitialValue = () =>\n !isUndefined(get(shallowFieldsStateRef.current, name)) && isNotFieldArray\n ? get(shallowFieldsStateRef.current, name)\n : isUndefined(defaultValue)\n ? get(defaultValuesRef.current, name)\n : defaultValue;\n const [value, setInputStateValue] = React.useState(getInitialValue());\n const valueRef = React.useRef(value);\n const ref = React.useRef({\n focus: () => null,\n });\n const onFocusRef = React.useRef(\n onFocus ||\n (() => {\n if (isFunction(ref.current.focus)) {\n ref.current.focus();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!isFunction(ref.current.focus)) {\n console.warn(\n `📋 'ref' from Controller render prop must be attached to a React component or a DOM Element whose ref provides a 'focus()' method`,\n );\n }\n }\n }),\n );\n\n const shouldValidate = React.useCallback(\n (isBlurEvent?: boolean) =>\n !skipValidation({\n isBlurEvent,\n isReValidateOnBlur,\n isReValidateOnChange,\n isSubmitted,\n isTouched: !!get(touched, name),\n ...mode,\n }),\n [\n isReValidateOnBlur,\n isReValidateOnChange,\n isSubmitted,\n touched,\n name,\n mode,\n ],\n );\n\n const commonTask = React.useCallback(([event]: any[]) => {\n const data = getInputValue(event);\n setInputStateValue(data);\n valueRef.current = data;\n return data;\n }, []);\n\n const registerField = React.useCallback(\n (shouldUpdateValue?: boolean) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n return console.warn(\n '📋 Field is missing `name` prop. https://react-hook-form.com/api#Controller',\n );\n }\n }\n\n if (fieldsRef.current[name]) {\n fieldsRef.current[name] = {\n ref: fieldsRef.current[name]!.ref,\n ...rules,\n };\n } else {\n register(\n Object.defineProperties(\n {\n name,\n focus: onFocusRef.current,\n },\n {\n value: {\n set(data) {\n setInputStateValue(data);\n valueRef.current = data;\n },\n get() {\n return valueRef.current;\n },\n },\n },\n ),\n rules,\n );\n\n shouldUpdateValue = isUndefined(get(defaultValuesRef.current, name));\n }\n\n shouldUpdateValue &&\n isNotFieldArray &&\n setInputStateValue(getInitialValue());\n },\n [rules, name, register],\n );\n\n React.useEffect(() => () => unregister(name), [name]);\n\n React.useEffect(() => {\n if (process.env.NODE_ENV !== 'production') {\n if (isUndefined(value)) {\n console.warn(\n `📋 ${name} is missing in the 'defaultValue' prop of either its Controller (https://react-hook-form.com/api#Controller) or useForm (https://react-hook-form.com/api#useForm)`,\n );\n }\n\n if (!isNotFieldArray && isUndefined(defaultValue)) {\n console.warn(\n '📋 Controller is missing `defaultValue` prop when using `useFieldArray`. https://react-hook-form.com/api#Controller',\n );\n }\n }\n\n registerField();\n }, [registerField]);\n\n React.useEffect(() => {\n !fieldsRef.current[name] && registerField(true);\n });\n\n const onBlur = React.useCallback(() => {\n if (readFormStateRef.current.touched && !get(touched, name)) {\n set(touched, name, true);\n updateFormState({\n touched,\n });\n }\n\n shouldValidate(true) && trigger(name);\n }, [name, updateFormState, shouldValidate, trigger, readFormStateRef]);\n\n const onChange = React.useCallback(\n (...event: any[]) =>\n setValue(name, commonTask(event), {\n shouldValidate: shouldValidate(),\n shouldDirty: true,\n }),\n [setValue, name, shouldValidate],\n );\n\n return {\n field: {\n onChange,\n onBlur,\n name,\n value,\n ref,\n },\n meta: Object.defineProperties(\n {\n invalid: !!get(errors, name),\n },\n {\n isDirty: {\n get() {\n return !!get(formState.dirtyFields, name);\n },\n },\n isTouched: {\n get() {\n return !!get(formState.touched, name);\n },\n },\n },\n ),\n };\n}\n","import * as React from 'react';\nimport { useFormContext } from './useFormContext';\nimport isUndefined from './utils/isUndefined';\nimport isString from './utils/isString';\nimport generateId from './logic/generateId';\nimport get from './utils/get';\nimport {\n DeepPartial,\n UseWatchOptions,\n FieldValues,\n UnpackNestedValue,\n Control,\n} from './types';\n\nexport function useWatch<TWatchFieldValues extends FieldValues>(props: {\n defaultValue?: UnpackNestedValue<DeepPartial<TWatchFieldValues>>;\n control?: Control;\n}): UnpackNestedValue<DeepPartial<TWatchFieldValues>>;\nexport function useWatch<TWatchFieldValue extends any>(props: {\n name: string;\n control?: Control;\n}): undefined | UnpackNestedValue<TWatchFieldValue>;\nexport function useWatch<TWatchFieldValue extends any>(props: {\n name: string;\n defaultValue: UnpackNestedValue<TWatchFieldValue>;\n control?: Control;\n}): UnpackNestedValue<TWatchFieldValue>;\nexport function useWatch<TWatchFieldValues extends FieldValues>(props: {\n name: string[];\n defaultValue?: UnpackNestedValue<DeepPartial<TWatchFieldValues>>;\n control?: Control;\n}): UnpackNestedValue<DeepPartial<TWatchFieldValues>>;\nexport function useWatch<TWatchFieldValues>({\n control,\n name,\n defaultValue,\n}: UseWatchOptions): TWatchFieldValues {\n const methods = useFormContext();\n\n if (process.env.NODE_ENV !== 'production') {\n if (!control && !methods) {\n throw new Error(\n '📋 useWatch is missing `control` prop. https://react-hook-form.com/api#useWatch',\n );\n }\n }\n\n const {\n useWatchFieldsRef,\n useWatchRenderFunctionsRef,\n watchInternal,\n defaultValuesRef,\n } = control || methods.control;\n const updateValue = React.useState<unknown>()[1];\n const idRef = React.useRef<string>();\n const defaultValueRef = React.useRef(defaultValue);\n\n React.useEffect(() => {\n if (process.env.NODE_ENV !== 'production') {\n if (name === '') {\n console.warn(\n '📋 useWatch is missing `name` attribute. https://react-hook-form.com/api#useWatch',\n );\n }\n }\n\n const id = (idRef.current = generateId());\n const watchFieldsHookRender = useWatchRenderFunctionsRef.current;\n const watchFieldsHook = useWatchFieldsRef.current;\n watchFieldsHook[id] = new Set();\n watchFieldsHookRender[id] = () => updateValue({});\n watchInternal(name, defaultValueRef.current, id);\n\n return () => {\n delete watchFieldsHook[id];\n delete watchFieldsHookRender[id];\n };\n }, [\n name,\n useWatchRenderFunctionsRef,\n useWatchFieldsRef,\n watchInternal,\n defaultValueRef,\n ]);\n\n return idRef.current\n ? watchInternal(name, defaultValueRef.current, idRef.current)\n : isUndefined(defaultValue)\n ? isString(name)\n ? get(defaultValuesRef.current, name)\n : Array.isArray(name)\n ? name.reduce(\n (previous, inputName) => ({\n ...previous,\n [inputName]: get(defaultValuesRef.current, inputName),\n }),\n {},\n )\n : defaultValuesRef.current\n : defaultValue;\n}\n","import * as React from 'react';\nimport { useController } from './useController';\nimport { ControllerProps, FieldValues } from './types';\n\ntype NativeInputs = 'input' | 'select' | 'textarea';\n\nconst Controller = <\n TAs extends React.ReactElement | React.ComponentType<any> | NativeInputs,\n TFieldValues extends FieldValues = FieldValues\n>(\n props: ControllerProps<TAs, TFieldValues>,\n) => {\n const { rules, as, render, defaultValue, control, onFocus, ...rest } = props;\n const { field, meta } = useController(props);\n\n const componentProps = {\n ...rest,\n ...field,\n };\n\n return as\n ? React.isValidElement(as)\n ? React.cloneElement(as, componentProps)\n : React.createElement(as as NativeInputs, componentProps as any)\n : render\n ? render(field, meta)\n : null;\n};\n\nexport { Controller };\n"],"names":["isCheckBox","React.isValidElement","getFieldsValue","React.useRef","React.useState","React.useCallback","getNodeParentName","React.useEffect","React.useMemo","React.createContext","React.useContext","React.createElement","prepend","prependAt","insert","insertAt","React.cloneElement"],"mappings":"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"}