{"version":3,"sources":["webpack:///./node_modules/react-hook-form/src/utils/isCheckBoxInput.ts","webpack:///./node_modules/react-hook-form/src/utils/isNullOrUndefined.ts","webpack:///./node_modules/react-hook-form/src/utils/isObject.ts","webpack:///./node_modules/react-hook-form/src/logic/getNodeParentName.ts","webpack:///./node_modules/react-hook-form/src/logic/isNameInFieldArray.ts","webpack:///./node_modules/react-hook-form/src/utils/compact.ts","webpack:///./node_modules/react-hook-form/src/utils/isUndefined.ts","webpack:///./node_modules/react-hook-form/src/utils/get.ts","webpack:///./node_modules/react-hook-form/src/constants.ts","webpack:///./node_modules/react-hook-form/src/utils/omit.ts","webpack:///./node_modules/react-hook-form/src/useFormContext.tsx","webpack:///./node_modules/react-hook-form/src/logic/getProxyFormState.ts","webpack:///./node_modules/react-hook-form/src/utils/isEmptyObject.ts","webpack:///./node_modules/react-hook-form/src/logic/shouldRenderFormState.ts","webpack:///./node_modules/react-hook-form/src/utils/convertToArrayPayload.ts","webpack:///./node_modules/react-hook-form/src/utils/isWeb.ts","webpack:///./node_modules/react-hook-form/src/utils/isProxyEnabled.ts","webpack:///./node_modules/react-hook-form/src/useController.ts","webpack:///./node_modules/react-hook-form/src/useFormState.ts","webpack:///./node_modules/react-hook-form/src/logic/getControllerValue.ts","webpack:///./node_modules/react-hook-form/src/controller.tsx","webpack:///./node_modules/react-hook-form/src/logic/appendErrors.ts","webpack:///./node_modules/react-hook-form/src/utils/isKey.ts","webpack:///./node_modules/react-hook-form/src/utils/stringToPath.ts","webpack:///./node_modules/react-hook-form/src/utils/set.ts","webpack:///./node_modules/react-hook-form/src/logic/focusFieldBy.ts","webpack:///./node_modules/react-hook-form/src/logic/getFieldsValues.ts","webpack:///./node_modules/react-hook-form/src/logic/generateId.ts","webpack:///./node_modules/react-hook-form/src/utils/isPrimitive.ts","webpack:///./node_modules/react-hook-form/src/utils/deepEqual.ts","webpack:///./node_modules/react-hook-form/src/logic/setFieldArrayDirtyFields.ts","webpack:///./node_modules/react-hook-form/src/utils/deepMerge.ts","webpack:///./node_modules/react-hook-form/src/utils/isString.ts","webpack:///./node_modules/react-hook-form/src/utils/remove.ts","webpack:///./node_modules/react-hook-form/src/utils/isBoolean.ts","webpack:///./node_modules/react-hook-form/src/utils/unset.ts","webpack:///./node_modules/react-hook-form/src/logic/getFields.ts","webpack:///./node_modules/react-hook-form/src/utils/isFileInput.ts","webpack:///./node_modules/react-hook-form/src/utils/isMultipleSelect.ts","webpack:///./node_modules/react-hook-form/src/utils/isRadioInput.ts","webpack:///./node_modules/react-hook-form/src/logic/getCheckboxValue.ts","webpack:///./node_modules/react-hook-form/src/logic/getFieldValueAs.ts","webpack:///./node_modules/react-hook-form/src/logic/getRadioValue.ts","webpack:///./node_modules/react-hook-form/src/logic/getFieldValue.ts","webpack:///./node_modules/react-hook-form/src/logic/getMultipleSelectValue.ts","webpack:///./node_modules/react-hook-form/src/logic/hasValidation.ts","webpack:///./node_modules/react-hook-form/src/utils/isFunction.ts","webpack:///./node_modules/react-hook-form/src/utils/isMessage.ts","webpack:///./node_modules/react-hook-form/src/utils/isRegex.ts","webpack:///./node_modules/react-hook-form/src/logic/getValidateError.ts","webpack:///./node_modules/react-hook-form/src/logic/getValueAndMessage.ts","webpack:///./node_modules/react-hook-form/src/logic/validateField.ts","webpack:///./node_modules/react-hook-form/src/utils/getValidationModes.ts","webpack:///./node_modules/react-hook-form/src/utils/isHTMLElement.ts","webpack:///./node_modules/react-hook-form/src/utils/Subject.ts","webpack:///./node_modules/react-hook-form/src/useForm.ts","webpack:///./node_modules/react-hook-form/src/logic/skipValidation.ts","webpack:///./node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts"],"names":["element","type","value","isObjectType","isNullOrUndefined","Array","isArray","Date","name","substring","search","names","some","current","getNodeParentName","filter","Boolean","val","undefined","obj","path","defaultValue","isObject","result","compact","split","reduce","key","isUndefined","EVENTS","VALIDATION_MODE","INPUT_VALIDATION_RULES","source","copy","FormContext","displayName","useFormContext","FormProvider","props","Provider","omit","children","isProxyEnabled","formState","readFormStateRef","localReadFormStateRef","isRoot","Proxy","get","prop","Object","keys","length","formStateData","isEmptyObject","find","window","HTMLElement","document","isWeb","useController","rules","control","shouldUnregister","methods","defaultValuesRef","register","fieldsRef","unregister","fieldArrayNamesRef","controllerSubjectRef","shouldUnmount","inFieldArrayActionRef","onChange","onBlur","ref","isFieldArray","isNameInFieldArray","setInputStateValue","_f","formStateRef","formStateSubjectRef","nameRef","updateFormState","readFormState","isDirty","dirtyFields","touchedFields","isValidating","isValid","errors","formStateSubscription","subscribe","next","convertToArrayPayload","includes","shouldRenderFormState","unsubscribe","getProxyFormState","useFormState","controllerSubscription","data","values","shouldUnmountField","mount","field","event","target","isCheckBoxInput","checked","getControllerValue","elm","fieldState","defineProperties","invalid","isTouched","error","Controller","render","validateAllFieldCriteria","message","types","test","input","replace","set","object","index","tempPath","isKey","stringToPath","lastIndex","newValue","objValue","isNaN","focusFieldBy","fields","callback","fieldsNames","focus","refs","getFieldsValues","output","disabled","every","deepEqual","object1","object2","isErrorObject","isPrimitive","keys1","keys2","val1","val2","setDirtyFields","defaultValues","parentNode","parentName","deepMerge","targetValue","sourceValue","slice","unset","updatePath","childObject","baseGet","previousObjRef","k","objectRef","currentPaths","currentPathsLength","item","isBoolean","getFields","fieldsRefs","currentFields","defaultResult","validResult","options","option","map","attributes","valueAsNumber","valueAsDate","setValueAs","NaN","defaultReturn","previous","getFieldValue","isFileInput","files","isRadioInput","getRadioValue","isMultipleSelect","selected","isCheckBox","getCheckboxValue","getFieldValueAs","mounted","required","min","max","maxLength","minLength","pattern","validate","isString","RegExp","getValidateError","isMessage","validationData","isRegex","async","inputValue","isRadio","isRadioOrCheckbox","isEmpty","appendErrorsCurry","appendErrors","bind","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","getValueAndMessage","exceedMin","maxOutput","minOutput","valueDate","valueNumber","parseFloat","maxLengthOutput","minLengthOutput","patternValue","match","validateRef","isFunction","validateError","validationResult","validateFunction","entries","mode","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","Subscription","tearDowns","tearDown","this","push","teardown","Subscriber","observer","subscription","closed","add","Subject","observers","subscriber","isWindowUndefined","useForm","reValidateMode","resolver","context","shouldFocusError","criteriaMode","fieldsNamesRef","Set","unregisterFieldsNamesRef","watchSubjectRef","fieldArraySubjectRef","fieldArrayDefaultValuesRef","watchFieldsRef","isMountedRef","fieldsWithValidationRef","validFieldsRef","isWatchAllRef","contextRef","resolverRef","validationMode","getValidationModes","isValidateAllFieldCriteria","isSubmitted","submitCount","isSubmitting","isSubmitSuccessful","getIsValid","shouldRenderBaseOnError","shouldRender","state","isWatched","previousError","updatedFormState","setFieldValue","rawValue","shouldRegister","isHTMLElement","forEach","radioRef","selectRef","checkboxRef","shouldDirty","updateAndGetDirtyState","shouldValidate","trigger","getIsDirty","formValues","isFieldDirty","isDirtyFieldExist","previousIsDirty","isChanged","executeValidation","skipReRender","validateField","executeSchemaOrResolverValidation","currentNames","validateForm","fieldError","schemaResult","Promise","all","fieldName","setInternalValues","inputKey","has","isFieldWatched","updateValidAndValue","isWithinRefCallback","defaultChecked","hasValidation","then","handleChange","inputType","isBlurEvent","isReValidateOnBlur","isReValidateOnChange","shouldSkipValidation","skipValidation","getValues","previousFormIsValid","parentNodeName","currentError","fieldNames","updateIsValid","previousIsValid","watchInternal","isGlobal","isArrayNames","fieldValues","inputName","delete","keepIsValid","keepError","keepValue","keepDirty","keepTouched","keepDefaultValue","registerFieldRef","isRadioOrCheckboxFunction","contains","isInitialRegister","handleSubmit","onValid","onInvalid","e","preventDefault","persist","hasNoPromiseError","resetFromState","keepErrors","keepIsSubmitted","keepDefaultValues","keepSubmitCount","registerAbsentFields","FileList","useFieldArraySubscription","isLiveInDom","watch","info","setValue","isReset","setFieldArrayDirtyFields","reset","keepStateOptions","updatedValues","keepValues","inputRef","closest","clearErrors","setError","shouldFocus","setFocus"],"mappings":"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","file":"yarn.react-hook-form.becc34fe6fa559c58c21.js","sourcesContent":["import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'checkbox';\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 (value: unknown): value is T =>\n !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !(value instanceof Date);\n","export default (name: string) => name.substring(0, name.search(/.\\d/)) || name;\n","import { InternalFieldName } from '../types';\n\nimport getNodeParentName from './getNodeParentName';\n\nexport default (names: Set, name: InternalFieldName) =>\n [...names].some((current) => getNodeParentName(name) === current);\n","export default (value: any[]) => value.filter(Boolean);\n","export default (val: unknown): val is undefined => val === undefined;\n","import compact from './compact';\nimport isNullOrUndefined from './isNullOrUndefined';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\n\nexport default (\n obj: T,\n path: string,\n defaultValue?: unknown,\n) => {\n if (isObject(obj) && path) {\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 as keyof T])\n ? defaultValue\n : obj[path as keyof T]\n : result;\n }\n\n return undefined;\n};\n","import { ValidationMode } from './types';\n\nexport const EVENTS = {\n BLUR: 'blur',\n CHANGE: 'change',\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 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","export default >(\n source: T,\n key: Key,\n): Omit => {\n const copy = { ...source };\n delete copy[key];\n\n return copy;\n};\n","import * as React from 'react';\n\nimport omit from './utils/omit';\nimport { FieldValues, FormProviderProps, UseFormReturn } from './types';\n\nconst FormContext = React.createContext(null);\n\nFormContext.displayName = 'RHFContext';\n\nexport const useFormContext = <\n TFieldValues extends FieldValues,\n>(): UseFormReturn =>\n React.useContext(FormContext) as unknown as UseFormReturn;\n\nexport const FormProvider = (\n props: FormProviderProps,\n) => (\n \n {props.children}\n \n);\n","import * as React from 'react';\n\nimport { VALIDATION_MODE } from '../constants';\nimport { FormState, FormStateProxy, ReadFormState } from '../types';\n\nexport default (\n isProxyEnabled: boolean,\n formState: FormState,\n readFormStateRef: React.MutableRefObject,\n localReadFormStateRef?: React.MutableRefObject,\n isRoot = true,\n) =>\n isProxyEnabled\n ? new Proxy(formState, {\n get: (obj, prop: keyof FormStateProxy) => {\n if (prop in obj) {\n if (readFormStateRef.current[prop] !== VALIDATION_MODE.all) {\n readFormStateRef.current[prop] = isRoot\n ? VALIDATION_MODE.all\n : true;\n }\n localReadFormStateRef &&\n (localReadFormStateRef.current[prop] = true);\n return obj[prop];\n }\n\n return undefined;\n },\n })\n : formState;\n","import { EmptyObject } from '../types';\n\nimport isObject from './isObject';\n\nexport default (value: unknown): value is EmptyObject =>\n isObject(value) && !Object.keys(value).length;\n","import { VALIDATION_MODE } from '../constants';\nimport { ReadFormState } from '../types';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport omit from '../utils/omit';\n\nexport default , K extends ReadFormState>(\n formStateData: T,\n readFormStateRef: K,\n isRoot?: boolean,\n) => {\n const formState = omit(formStateData, 'name');\n\n return (\n isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(readFormStateRef).length ||\n Object.keys(formState).find(\n (key) =>\n readFormStateRef[key as keyof ReadFormState] ===\n (isRoot ? VALIDATION_MODE.all : true),\n )\n );\n};\n","export default (value: T) =>\n Array.isArray(value) ? value : [value];\n","export default typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n","import isWeb from './isWeb';\n\nconst isProxyEnabled = isWeb ? 'Proxy' in window : typeof Proxy !== 'undefined';\n\nexport default isProxyEnabled;\n","import * as React from 'react';\n\nimport getControllerValue from './logic/getControllerValue';\nimport isNameInFieldArray from './logic/isNameInFieldArray';\nimport get from './utils/get';\nimport isUndefined from './utils/isUndefined';\nimport { EVENTS } from './constants';\nimport {\n FieldPath,\n FieldValues,\n InternalFieldName,\n UseControllerProps,\n UseControllerReturn,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useFormState } from './useFormState';\n\nexport function useController<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>({\n name,\n rules,\n defaultValue,\n control,\n shouldUnregister,\n}: UseControllerProps): UseControllerReturn<\n TFieldValues,\n TName\n> {\n const methods = useFormContext();\n const {\n defaultValuesRef,\n register,\n fieldsRef,\n unregister,\n fieldArrayNamesRef,\n controllerSubjectRef,\n shouldUnmount,\n inFieldArrayActionRef,\n } = control || methods.control;\n\n const { onChange, onBlur, ref } = register(name, rules);\n const isFieldArray = isNameInFieldArray(fieldArrayNamesRef.current, name);\n const [value, setInputStateValue] = React.useState(\n isUndefined(get(fieldsRef.current, name)._f.value) || isFieldArray\n ? isUndefined(defaultValue)\n ? get(defaultValuesRef.current, name)\n : defaultValue\n : get(fieldsRef.current, name)._f.value,\n );\n const formState = useFormState({\n control: control || methods.control,\n name,\n });\n const field = get(fieldsRef.current, name);\n field._f.value = value;\n\n React.useEffect(() => {\n const controllerSubscription = controllerSubjectRef.current.subscribe({\n next: (data) =>\n (!data.name || name === data.name) &&\n setInputStateValue(get(data.values, name)),\n });\n\n return () => {\n controllerSubscription.unsubscribe();\n const shouldUnmountField = shouldUnmount || shouldUnregister;\n\n if (\n isFieldArray\n ? shouldUnmountField && !inFieldArrayActionRef.current\n : shouldUnmountField\n ) {\n unregister(name);\n } else if (get(fieldsRef.current, name)) {\n get(fieldsRef.current, name)._f.mount = false;\n }\n };\n }, [name]);\n\n return {\n field: {\n onChange: (event: any) => {\n const value = getControllerValue(event);\n setInputStateValue(value);\n\n onChange({\n target: {\n value,\n name: name as InternalFieldName,\n },\n type: EVENTS.CHANGE,\n });\n },\n onBlur: () => {\n onBlur({\n target: {\n name: name as InternalFieldName,\n },\n type: EVENTS.BLUR,\n });\n },\n name,\n value,\n ref: (elm) => elm && ref(elm),\n },\n formState,\n fieldState: Object.defineProperties(\n {},\n {\n invalid: {\n get() {\n return !!get(formState.errors, name);\n },\n },\n isDirty: {\n get() {\n return !!get(formState.dirtyFields, name);\n },\n },\n isTouched: {\n get() {\n return !!get(formState.touchedFields, name);\n },\n },\n error: {\n get() {\n return get(formState.errors, name);\n },\n },\n },\n ),\n };\n}\n","import * as React from 'react';\n\nimport getProxyFormState from './logic/getProxyFormState';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport convertToArrayPayload from './utils/convertToArrayPayload';\nimport isProxyEnabled from './utils/isProxyEnabled';\nimport {\n FieldValues,\n FormState,\n InternalFieldName,\n UseFormStateProps,\n UseFormStateReturn,\n} from './types';\nimport { useFormContext } from './useFormContext';\n\nfunction useFormState(\n props?: UseFormStateProps,\n): UseFormStateReturn {\n const { control, name } = props || {};\n const methods = useFormContext();\n const { formStateRef, formStateSubjectRef, readFormStateRef } =\n control || methods.control;\n const nameRef = React.useRef(name as InternalFieldName);\n nameRef.current = name as InternalFieldName;\n\n const [formState, updateFormState] = React.useState(formStateRef.current);\n const readFormState = React.useRef({\n isDirty: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n\n React.useEffect(() => {\n const formStateSubscription = formStateSubjectRef.current.subscribe({\n next: (formState) =>\n (!nameRef.current ||\n !formState.name ||\n convertToArrayPayload(nameRef.current).includes(formState.name)) &&\n shouldRenderFormState(formState, readFormState.current) &&\n updateFormState({\n ...formStateRef.current,\n ...formState,\n }),\n });\n\n return () => formStateSubscription.unsubscribe();\n }, []);\n\n return getProxyFormState(\n isProxyEnabled,\n formState as FormState,\n readFormStateRef,\n readFormState,\n false,\n );\n}\n\nexport { useFormState };\n","import isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isObject from '../utils/isObject';\n\ntype Event = { target: any };\n\nexport default (event: unknown) =>\n isObject(event) && (event as Event).target\n ? isCheckBoxInput((event as Event).target)\n ? (event as Event).target.checked\n : (event as Event).target.value\n : event;\n","import { ControllerProps, FieldPath, FieldValues } from './types';\nimport { useController } from './useController';\n\nconst Controller = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>(\n props: ControllerProps,\n) => props.render(useController(props));\n\nexport { Controller };\n","import {\n InternalFieldErrors,\n InternalFieldName,\n ValidateResult,\n} from '../types';\n\nexport default (\n name: InternalFieldName,\n validateAllFieldCriteria: boolean,\n errors: InternalFieldErrors,\n type: string,\n message: ValidateResult,\n) =>\n validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name]!.types ? errors[name]!.types : {}),\n [type]: message || true,\n },\n }\n : {};\n","export default (value: string) => /^\\w*$/.test(value);\n","import compact from './compact';\n\nexport default (input: string): string[] =>\n compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n","import { FieldValues } from '../types';\n\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport stringToPath from './stringToPath';\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 { FieldRefs, InternalFieldName } from '../types';\nimport { get } from '../utils';\nimport isObject from '../utils/isObject';\nimport isUndefined from '../utils/isUndefined';\nimport omit from '../utils/omit';\n\nconst focusFieldBy = (\n fields: FieldRefs,\n callback: (name: string) => boolean,\n fieldsNames?: Set,\n) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n\n if (field) {\n const _f = field._f;\n const current = omit(field, '_f');\n\n if (_f && callback(_f.name)) {\n if (_f.ref.focus && isUndefined(_f.ref.focus())) {\n break;\n } else if (_f.refs) {\n _f.refs[0].focus();\n break;\n }\n } else if (isObject(current)) {\n focusFieldBy(current, callback);\n }\n }\n }\n};\n\nexport default focusFieldBy;\n","import * as React from 'react';\n\nimport { FieldRefs, FieldValues } from '../types';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport omit from '../utils/omit';\nimport set from '../utils/set';\n\nconst getFieldsValues = (\n fieldsRef: React.MutableRefObject,\n output: FieldValues = {},\n): any => {\n for (const name in fieldsRef.current) {\n const field = fieldsRef.current[name];\n\n if (field && !isNullOrUndefined(output)) {\n const _f = field._f;\n const current = omit(field, '_f');\n\n set(\n output,\n name,\n _f && _f.ref\n ? _f.ref.disabled || (_f.refs && _f.refs.every((ref) => ref.disabled))\n ? undefined\n : _f.value\n : Array.isArray(field)\n ? []\n : {},\n );\n\n current &&\n !_f &&\n getFieldsValues(\n {\n current,\n },\n output[name],\n );\n }\n }\n\n return output;\n};\n\nexport default getFieldsValues;\n","export 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 { Primitive } from '../types';\n\nimport isNullOrUndefined from './isNullOrUndefined';\nimport { isObjectType } from './isObject';\n\nexport default (value: unknown): value is Primitive =>\n isNullOrUndefined(value) || !isObjectType(value);\n","import * as React from 'react';\n\nimport isObject from '../utils/isObject';\n\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 deepEqual from '../utils/deepEqual';\nimport { deepMerge } from '../utils/deepMerge';\nimport set from '../utils/set';\n\nfunction setDirtyFields<\n T extends Record[],\n U extends Record[],\n K extends Record,\n>(\n values: T,\n defaultValues: U,\n dirtyFields: Record[],\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 []>(\n values: T,\n defaultValues: U,\n dirtyFields: Record[],\n) =>\n deepMerge(\n setDirtyFields(values, defaultValues, dirtyFields.slice(0, values.length)),\n setDirtyFields(defaultValues, values, dirtyFields.slice(0, values.length)),\n );\n","import isObject from './isObject';\nimport isPrimitive from './isPrimitive';\n\nexport function deepMerge<\n T extends Record,\n U extends Record,\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","export default (value: unknown): value is string => typeof value === 'string';\n","import compact from './compact';\nimport convertToArrayPayload from './convertToArrayPayload';\nimport isUndefined from './isUndefined';\n\nfunction removeAtIndexes(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 (data: T[], index?: number | number[]): T[] =>\n isUndefined(index)\n ? []\n : removeAtIndexes(\n data,\n (convertToArrayPayload(index) as number[]).sort((a, b) => a - b),\n );\n","export default (value: unknown): value is boolean => typeof value === 'boolean';\n","import isBoolean from './isBoolean';\nimport isEmptyObject from './isEmptyObject';\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport stringToPath from './stringToPath';\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 { Field, FieldRefs, InternalFieldName } from '../types';\nimport { get } from '../utils';\nimport isKey from '../utils/isKey';\nimport set from '../utils/set';\n\nexport default function getFields(\n fieldsNames: Set | InternalFieldName[],\n fieldsRefs: FieldRefs,\n) {\n const currentFields: Record = {};\n\n for (const name of fieldsNames) {\n const field = get(fieldsRefs, name) as Field | undefined;\n\n if (field) {\n !isKey(name)\n ? set(currentFields, name, field._f)\n : (currentFields[name] = field._f);\n }\n }\n\n return currentFields;\n}\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 HTMLSelectElement =>\n element.type === `select-multiple`;\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'radio';\n","import isUndefined from '../utils/isUndefined';\n\ntype CheckboxFieldResult = {\n isValid: boolean;\n value: string | string[] | boolean | undefined;\n};\n\nconst defaultResult: CheckboxFieldResult = {\n value: false,\n isValid: false,\n};\n\nconst validResult = { value: true, isValid: true };\n\nexport default (options?: HTMLInputElement[]): CheckboxFieldResult => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n\n return defaultResult;\n};\n","import { Field } from '../types';\n\nexport default (\n value: any,\n { valueAsNumber, valueAsDate, setValueAs }: Field['_f'],\n) =>\n valueAsNumber\n ? value === ''\n ? NaN\n : +value\n : valueAsDate\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n","type RadioFieldResult = {\n isValid: boolean;\n value: number | string | null;\n};\n\nconst defaultReturn: RadioFieldResult = {\n isValid: false,\n value: null,\n};\n\nexport default (options?: HTMLInputElement[]): RadioFieldResult =>\n Array.isArray(options)\n ? options.reduce(\n (previous, option): RadioFieldResult =>\n option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous,\n defaultReturn,\n )\n : defaultReturn;\n","import { Field } from '../types';\nimport isCheckBox from '../utils/isCheckBoxInput';\nimport isFileInput from '../utils/isFileInput';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isRadioInput from '../utils/isRadioInput';\nimport isUndefined from '../utils/isUndefined';\n\nimport getCheckboxValue from './getCheckboxValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getMultipleSelectValue from './getMultipleSelectValue';\nimport getRadioValue from './getRadioValue';\n\nexport default function getFieldValue(field?: Field) {\n if (field && field._f) {\n const ref = field._f.ref;\n\n if (ref.disabled) {\n return;\n }\n\n if (isFileInput(ref)) {\n return ref.files;\n }\n\n if (isRadioInput(ref)) {\n return getRadioValue(field._f.refs).value;\n }\n\n if (isMultipleSelect(ref)) {\n return getMultipleSelectValue(ref.options);\n }\n\n if (isCheckBox(ref)) {\n return getCheckboxValue(field._f.refs).value;\n }\n\n return getFieldValueAs(\n isUndefined(ref.value) ? field._f.ref.value : ref.value,\n field._f,\n );\n }\n}\n","export default (\n options: HTMLOptionElement[] | HTMLOptionsCollection,\n): string[] =>\n [...options]\n .filter(({ selected }): boolean => selected)\n .map(({ value }): string => value);\n","import { RegisterOptions } from '../types';\n\nexport default (options?: T, mounted?: boolean) =>\n options &&\n mounted &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n","export default (value: unknown): value is Function =>\n typeof value === 'function';\n","import * as React from 'react';\n\nimport { Message } from '../types';\nimport isString from '../utils/isString';\n\nexport default (value: unknown): value is Message =>\n isString(value) || React.isValidElement(value as JSX.Element);\n","export default (value: unknown): value is RegExp => value instanceof RegExp;\n","import { FieldError, Ref, ValidateResult } from '../types';\nimport isBoolean from '../utils/isBoolean';\nimport isMessage from '../utils/isMessage';\n\nexport default function getValidateError(\n result: ValidateResult,\n ref: Ref,\n type = 'validate',\n): FieldError | void {\n if (\n isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)\n ) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n","import { ValidationRule } from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\n\nexport default (validationData?: ValidationRule) =>\n isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n","import { INPUT_VALIDATION_RULES } from '../constants';\nimport { Field, FieldError, InternalFieldErrors, Message } from '../types';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isMessage from '../utils/isMessage';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioInput from '../utils/isRadioInput';\nimport isRegex from '../utils/isRegex';\nimport isString from '../utils/isString';\n\nimport appendErrors from './appendErrors';\nimport getCheckboxValue from './getCheckboxValue';\nimport getRadioValue from './getRadioValue';\nimport getValidateError from './getValidateError';\nimport getValueAndMessage from './getValueAndMessage';\n\nexport default async (\n {\n _f: {\n ref,\n refs,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n name,\n value: inputValue,\n valueAsNumber,\n mount,\n },\n }: Field,\n validateAllFieldCriteria: boolean,\n): Promise => {\n if (!mount) {\n return {};\n }\n const error: InternalFieldErrors = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty =\n ((valueAsNumber || isFileInput(ref)) && !ref.value) ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(\n null,\n name,\n validateAllFieldCriteria,\n error,\n );\n const getMinMaxMessage = (\n exceedMax: boolean,\n maxLengthMessage: Message,\n minLengthMessage: Message,\n maxType = 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 ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n\n if (\n required &&\n ((!isRadio && !isCheckBox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).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 ? (refs || [])[0] || {} : ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n\n if (\n (!isNullOrUndefined(min) || !isNullOrUndefined(max)) &&\n inputValue !== ''\n ) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n\n if (!isNaN(inputValue)) {\n const valueNumber =\n (ref as HTMLInputElement).valueAsNumber || parseFloat(inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n } else {\n const valueDate =\n (ref as HTMLInputElement).valueAsDate || new Date(inputValue);\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(inputValue) && !isEmpty && (maxLength || minLength)) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax =\n !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > maxLengthOutput.value;\n const exceedMin =\n !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < minLengthOutput.value;\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n exceedMax,\n maxLengthOutput.message,\n minLengthOutput.message,\n );\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n\n if (isString(inputValue) && pattern && !isEmpty) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n\n if (validate) {\n const validateRef = isRadioOrCheckbox && refs ? refs[0] : ref;\n\n if (isFunction(validate)) {\n const result = await validate(inputValue);\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(inputValue);\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 { 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","export default (value: any): value is HTMLElement =>\n value instanceof HTMLElement;\n","export type Observer = {\n next: (value: T) => void;\n};\n\ntype TearDown = () => void;\n\nexport type SubjectType = {\n next: (value: T) => void;\n subscribe: (value: Observer) => {\n unsubscribe: TearDown;\n };\n};\n\nexport class Subscription {\n private tearDowns: TearDown[] = [];\n\n add(tearDown: TearDown) {\n this.tearDowns.push(tearDown);\n }\n\n unsubscribe() {\n for (const teardown of this.tearDowns) {\n teardown();\n }\n this.tearDowns = [];\n }\n}\n\nclass Subscriber implements Observer {\n closed = false;\n\n constructor(private observer: Observer, subscription: Subscription) {\n subscription.add(() => (this.closed = true));\n }\n\n next(value: T) {\n if (!this.closed) {\n this.observer.next(value);\n }\n }\n}\n\nexport default class Subject {\n observers: Observer[];\n\n constructor() {\n this.observers = [];\n }\n\n next(value: T) {\n for (const observer of this.observers) {\n observer.next(value);\n }\n }\n\n subscribe(observer: Observer) {\n const subscription = new Subscription();\n const subscriber = new Subscriber(observer, subscription);\n this.observers.push(subscriber);\n\n return subscription;\n }\n\n unsubscribe() {\n this.observers = [];\n }\n}\n","import * as React from 'react';\n\nimport focusFieldBy from './logic/focusFieldBy';\nimport getFields from './logic/getFields';\nimport getFieldsValues from './logic/getFieldsValues';\nimport getFieldValue from './logic/getFieldValue';\nimport getFieldValueAs from './logic/getFieldValueAs';\nimport getNodeParentName from './logic/getNodeParentName';\nimport getProxyFormState from './logic/getProxyFormState';\nimport hasValidation from './logic/hasValidation';\nimport isNameInFieldArray from './logic/isNameInFieldArray';\nimport setFieldArrayDirtyFields from './logic/setFieldArrayDirtyFields';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport skipValidation from './logic/skipValidation';\nimport validateField from './logic/validateField';\nimport compact from './utils/compact';\nimport convertToArrayPayload from './utils/convertToArrayPayload';\nimport deepEqual from './utils/deepEqual';\nimport get from './utils/get';\nimport getValidationModes from './utils/getValidationModes';\nimport isCheckBoxInput from './utils/isCheckBoxInput';\nimport isEmptyObject from './utils/isEmptyObject';\nimport isFileInput from './utils/isFileInput';\nimport isFunction from './utils/isFunction';\nimport isHTMLElement from './utils/isHTMLElement';\nimport isMultipleSelect from './utils/isMultipleSelect';\nimport isNullOrUndefined from './utils/isNullOrUndefined';\nimport isObject from './utils/isObject';\nimport isPrimitive from './utils/isPrimitive';\nimport isProxyEnabled from './utils/isProxyEnabled';\nimport isRadioInput from './utils/isRadioInput';\nimport isRadioOrCheckboxFunction from './utils/isRadioOrCheckbox';\nimport isString from './utils/isString';\nimport isUndefined from './utils/isUndefined';\nimport isWeb from './utils/isWeb';\nimport omit from './utils/omit';\nimport set from './utils/set';\nimport Subject from './utils/Subject';\nimport unset from './utils/unset';\nimport { EVENTS, VALIDATION_MODE } from './constants';\nimport {\n ChangeHandler,\n DeepPartial,\n DefaultValues,\n EventType,\n Field,\n FieldArrayDefaultValues,\n FieldError,\n FieldErrors,\n FieldName,\n FieldNamesMarkedBoolean,\n FieldPath,\n FieldRefs,\n FieldValues,\n FormState,\n FormStateSubjectRef,\n GetIsDirty,\n InternalFieldName,\n InternalNameSet,\n KeepStateOptions,\n Path,\n PathValue,\n ReadFormState,\n Ref,\n RegisterOptions,\n SetFieldValue,\n SetValueConfig,\n UnpackNestedValue,\n UseFormClearErrors,\n UseFormGetValues,\n UseFormHandleSubmit,\n UseFormProps,\n UseFormRegister,\n UseFormRegisterReturn,\n UseFormReset,\n UseFormReturn,\n UseFormSetError,\n UseFormSetFocus,\n UseFormSetValue,\n UseFormTrigger,\n UseFormUnregister,\n UseFormWatch,\n WatchInternal,\n WatchObserver,\n} from './types';\n\nconst isWindowUndefined = typeof window === '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,\n shouldFocusError = true,\n shouldUnregister,\n criteriaMode,\n}: UseFormProps = {}): UseFormReturn {\n const fieldsRef = React.useRef({});\n const fieldsNamesRef = React.useRef>(new Set());\n const formStateSubjectRef = React.useRef>(\n new Subject(),\n );\n const unregisterFieldsNamesRef = React.useRef>(\n new Set(),\n );\n const watchSubjectRef = React.useRef(\n new Subject<{\n name?: InternalFieldName;\n type?: EventType;\n formValues: unknown;\n }>(),\n );\n const controllerSubjectRef = React.useRef(\n new Subject<{\n name?: InternalFieldName;\n values: DefaultValues;\n }>(),\n );\n const fieldArraySubjectRef = React.useRef(\n new Subject<{\n name?: InternalFieldName;\n fields: any;\n isReset?: boolean;\n }>(),\n );\n const fieldArrayDefaultValuesRef = React.useRef({});\n const inFieldArrayActionRef = React.useRef(false);\n const watchFieldsRef = React.useRef(new Set());\n const isMountedRef = React.useRef(false);\n const fieldsWithValidationRef = React.useRef<\n FieldNamesMarkedBoolean\n >({});\n const validFieldsRef = React.useRef>(\n {},\n );\n const defaultValuesRef =\n React.useRef>(defaultValues);\n const isWatchAllRef = React.useRef(false);\n const contextRef = React.useRef(context);\n const resolverRef = React.useRef(resolver);\n const fieldArrayNamesRef = React.useRef(new Set());\n const validationMode = getValidationModes(mode);\n const isValidateAllFieldCriteria = criteriaMode === VALIDATION_MODE.all;\n const [formState, updateFormState] = React.useState>({\n isDirty: false,\n isValidating: false,\n dirtyFields: {},\n isSubmitted: false,\n submitCount: 0,\n touchedFields: {},\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: !validationMode.isOnSubmit,\n errors: {},\n });\n const readFormStateRef = React.useRef({\n isDirty: !isProxyEnabled,\n dirtyFields: !isProxyEnabled,\n touchedFields: !isProxyEnabled,\n isValidating: !isProxyEnabled,\n isValid: !isProxyEnabled,\n errors: !isProxyEnabled,\n });\n const formStateRef = React.useRef(formState);\n\n contextRef.current = context;\n resolverRef.current = resolver;\n\n const getIsValid = () => {\n formStateRef.current.isValid =\n deepEqual(validFieldsRef.current, fieldsWithValidationRef.current) &&\n isEmptyObject(formStateRef.current.errors);\n\n return formStateRef.current.isValid;\n };\n\n const shouldRenderBaseOnError = React.useCallback(\n (\n name: InternalFieldName,\n error?: FieldError,\n shouldRender: boolean | null = false,\n state: {\n dirty?: FieldNamesMarkedBoolean;\n isDirty?: boolean;\n touched?: FieldNamesMarkedBoolean;\n } = {},\n isValid?: boolean,\n isWatched?: boolean,\n ): boolean | void => {\n const previousError = get(formStateRef.current.errors, name);\n\n if (error) {\n unset(validFieldsRef.current, name);\n set(formStateRef.current.errors, name, error);\n } else {\n (get(fieldsWithValidationRef.current, name) || resolverRef.current) &&\n set(validFieldsRef.current, name, true);\n unset(formStateRef.current.errors, name);\n }\n\n if (\n (shouldRender ||\n isWatched ||\n (error ? !deepEqual(previousError, error, true) : previousError) ||\n !isEmptyObject(state) ||\n (readFormStateRef.current.isValid &&\n formStateRef.current.isValid !==\n (resolverRef.current ? !!isValid : getIsValid()))) &&\n !isNullOrUndefined(shouldRender)\n ) {\n const updatedFormState = {\n ...state,\n isValid: resolverRef.current ? !!isValid : getIsValid(),\n errors: formStateRef.current.errors,\n name,\n };\n\n formStateRef.current = {\n ...formStateRef.current,\n ...updatedFormState,\n };\n\n formStateSubjectRef.current.next(\n isWatched ? { name } : updatedFormState,\n );\n }\n\n formStateSubjectRef.current.next({\n isValidating: false,\n });\n },\n [],\n );\n\n const setFieldValue = React.useCallback(\n (\n name: InternalFieldName,\n rawValue: SetFieldValue,\n options: SetValueConfig = {},\n shouldRender?: boolean,\n shouldRegister?: boolean,\n ) => {\n shouldRegister && register(name as Path);\n const field = get(fieldsRef.current, name);\n\n if (field) {\n const _f = (field as Field)._f;\n\n if (_f) {\n const value =\n isWeb && isHTMLElement(_f.ref) && isNullOrUndefined(rawValue)\n ? ''\n : rawValue;\n _f.value = getFieldValueAs(rawValue, _f);\n\n if (isRadioInput(_f.ref)) {\n (_f.refs || []).forEach(\n (radioRef: HTMLInputElement) =>\n (radioRef.checked = radioRef.value === value),\n );\n } else if (isFileInput(_f.ref) && !isString(value)) {\n _f.ref.files = value as FileList;\n } else if (isMultipleSelect(_f.ref)) {\n [..._f.ref.options].forEach(\n (selectRef) =>\n (selectRef.selected = (value as string[]).includes(\n selectRef.value,\n )),\n );\n } else if (isCheckBoxInput(_f.ref) && _f.refs) {\n _f.refs.length > 1\n ? _f.refs.forEach(\n (checkboxRef) =>\n (checkboxRef.checked = Array.isArray(value)\n ? !!(value as []).find(\n (data: string) => data === checkboxRef.value,\n )\n : value === checkboxRef.value),\n )\n : (_f.refs[0].checked = !!value);\n } else {\n _f.ref.value = value;\n }\n\n if (shouldRender) {\n const values = getFieldsValues(fieldsRef);\n set(values, name, rawValue);\n controllerSubjectRef.current.next({\n values: {\n ...defaultValuesRef.current,\n ...values,\n } as DefaultValues,\n name,\n });\n }\n\n options.shouldDirty && updateAndGetDirtyState(name, value);\n options.shouldValidate && trigger(name as Path);\n } else {\n field._f = {\n ref: {\n name,\n value: rawValue,\n },\n value: rawValue,\n };\n }\n }\n },\n [],\n );\n\n const getIsDirty: GetIsDirty = React.useCallback((name, data) => {\n const formValues = getFieldsValues(fieldsRef);\n\n name && data && set(formValues, name, data);\n\n return !deepEqual(formValues, defaultValuesRef.current);\n }, []);\n\n const updateAndGetDirtyState = React.useCallback(\n (\n name: InternalFieldName,\n inputValue: unknown,\n shouldRender = true,\n ): Partial<\n Pick, 'dirtyFields' | 'isDirty' | 'touchedFields'>\n > => {\n if (\n readFormStateRef.current.isDirty ||\n readFormStateRef.current.dirtyFields\n ) {\n const isFieldDirty = !deepEqual(\n get(defaultValuesRef.current, name),\n inputValue,\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 formStateRef.current.isDirty = getIsDirty();\n\n const state = {\n isDirty: formStateRef.current.isDirty,\n dirtyFields: formStateRef.current.dirtyFields,\n name,\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 && formStateSubjectRef.current.next(state);\n\n return isChanged ? state : {};\n }\n\n return {};\n },\n [],\n );\n\n const executeValidation = React.useCallback(\n async (\n name: InternalFieldName,\n skipReRender?: boolean | null,\n ): Promise => {\n const error = (\n await validateField(\n get(fieldsRef.current, name) as Field,\n isValidateAllFieldCriteria,\n )\n )[name];\n\n shouldRenderBaseOnError(name, error, skipReRender);\n\n return isUndefined(error);\n },\n [isValidateAllFieldCriteria],\n );\n\n const executeSchemaOrResolverValidation = React.useCallback(\n async (\n names: InternalFieldName[],\n currentNames: FieldName[] = [],\n ) => {\n const { errors } = await resolverRef.current!(\n getFieldsValues(fieldsRef),\n contextRef.current,\n {\n criteriaMode,\n names: currentNames,\n fields: getFields(fieldsNamesRef.current, fieldsRef.current),\n },\n );\n\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(formStateRef.current.errors, name, error)\n : unset(formStateRef.current.errors, name);\n }\n\n return errors;\n },\n [criteriaMode],\n );\n\n const validateForm = async (fieldsRef: FieldRefs) => {\n let isValid = true;\n\n for (const name in fieldsRef) {\n const field = fieldsRef[name];\n\n if (field) {\n const _f = field._f;\n const current = omit(field, '_f');\n\n if (_f) {\n const fieldError = await validateField(\n field,\n isValidateAllFieldCriteria,\n );\n\n if (fieldError[_f.name]) {\n isValid = false;\n set(formStateRef.current.errors, _f.name, fieldError[_f.name]);\n unset(validFieldsRef.current, _f.name);\n } else if (get(fieldsWithValidationRef.current, _f.name)) {\n set(validFieldsRef.current, _f.name, true);\n unset(formStateRef.current.errors, _f.name);\n }\n }\n\n current && (await validateForm(current));\n }\n }\n\n return isValid;\n };\n\n const trigger: UseFormTrigger = React.useCallback(\n async (name) => {\n const fields = isUndefined(name)\n ? Object.keys(fieldsRef.current)\n : (convertToArrayPayload(name) as InternalFieldName[]);\n let isValid;\n let schemaResult: FieldErrors | {} = {};\n\n formStateSubjectRef.current.next({\n isValidating: true,\n });\n\n if (resolverRef.current) {\n schemaResult = await executeSchemaOrResolverValidation(\n fields,\n isUndefined(name) ? undefined : (fields as FieldName[]),\n );\n isValid = fields.every((name) => !get(schemaResult, name));\n } else {\n isValid = isUndefined(name)\n ? await validateForm(fieldsRef.current)\n : (\n await Promise.all(\n fields\n .filter((fieldName) => get(fieldsRef.current, fieldName))\n .map(\n async (fieldName) =>\n await executeValidation(fieldName, null),\n ),\n )\n ).every(Boolean);\n }\n\n formStateSubjectRef.current.next({\n ...(isString(name) ? { name } : {}),\n errors: formStateRef.current.errors,\n isValidating: false,\n isValid: resolverRef.current\n ? isEmptyObject(schemaResult)\n : getIsValid(),\n });\n\n return isValid;\n },\n [executeSchemaOrResolverValidation, executeValidation],\n );\n\n const setInternalValues = React.useCallback(\n (\n name: FieldPath,\n value: UnpackNestedValue<\n PathValue>\n >,\n options: SetValueConfig,\n ) =>\n Object.entries(value).forEach(([inputKey, inputValue]) => {\n const fieldName = `${name}.${inputKey}` as Path;\n const field = get(fieldsRef.current, fieldName);\n const isFieldArray = fieldArrayNamesRef.current.has(name);\n\n isFieldArray || !isPrimitive(inputValue) || (field && !field._f)\n ? setInternalValues(\n fieldName,\n inputValue as SetFieldValue,\n options,\n )\n : setFieldValue(\n fieldName,\n inputValue as SetFieldValue,\n options,\n true,\n !field,\n );\n }),\n [trigger],\n );\n\n const isFieldWatched = (name: FieldPath) =>\n isWatchAllRef.current ||\n watchFieldsRef.current.has(name) ||\n watchFieldsRef.current.has((name.match(/\\w+/) || [])[0]);\n\n const updateValidAndValue = (\n name: InternalFieldName,\n options?: RegisterOptions,\n ref?: Ref,\n isWithinRefCallback?: boolean,\n ) => {\n const field = get(fieldsRef.current, name) as Field;\n const defaultValue = isUndefined(field._f.value)\n ? get(defaultValuesRef.current, name)\n : field._f.value;\n\n if (field && !isUndefined(defaultValue)) {\n if (ref && (ref as HTMLInputElement).defaultChecked) {\n field._f.value = getFieldValue(field);\n } else if (!isNameInFieldArray(fieldArrayNamesRef.current, name)) {\n setFieldValue(name, defaultValue);\n } else {\n field._f.value = defaultValue;\n }\n }\n\n if (\n (!isUndefined(defaultValue) || isWithinRefCallback) &&\n hasValidation(options, field._f.mount) &&\n !validationMode.isOnSubmit &&\n field &&\n readFormStateRef.current.isValid\n ) {\n validateField(field, isValidateAllFieldCriteria).then((error) => {\n isEmptyObject(error)\n ? set(validFieldsRef.current, name, true)\n : unset(validFieldsRef.current, name);\n\n formStateRef.current.isValid !== getIsValid() &&\n updateFormState({ ...formStateRef.current, isValid: getIsValid() });\n });\n }\n\n return defaultValue;\n };\n\n const setValue: UseFormSetValue = (\n name,\n value,\n options = {},\n ) => {\n const field = get(fieldsRef.current, name);\n const isFieldArray = fieldArrayNamesRef.current.has(name);\n\n if (isFieldArray) {\n fieldArraySubjectRef.current.next({\n fields: value,\n name,\n isReset: true,\n });\n\n if (\n (readFormStateRef.current.isDirty ||\n readFormStateRef.current.dirtyFields) &&\n options.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 formStateSubjectRef.current.next({\n name,\n dirtyFields: formStateRef.current.dirtyFields,\n isDirty: getIsDirty(name, value),\n });\n }\n\n !(value as []).length &&\n set(fieldsRef.current, name, []) &&\n set(fieldArrayDefaultValuesRef.current, name, []);\n }\n\n ((field && !field._f) || isFieldArray) && !isNullOrUndefined(value)\n ? setInternalValues(name, value, isFieldArray ? {} : options)\n : setFieldValue(name, value, options, true, !field);\n\n isFieldWatched(name) && formStateSubjectRef.current.next({});\n watchSubjectRef.current.next({ name, formValues: getValues() });\n };\n\n const handleChange: ChangeHandler = React.useCallback(\n async ({ type, target, target: { value, type: inputType } }) => {\n let name = (target as Ref)!.name;\n let error;\n let isValid;\n const field = get(fieldsRef.current, name) as Field;\n\n if (field) {\n let inputValue = inputType ? getFieldValue(field) : undefined;\n inputValue = isUndefined(inputValue) ? value : inputValue;\n\n const isBlurEvent = type === EVENTS.BLUR;\n const {\n isOnBlur: isReValidateOnBlur,\n isOnChange: isReValidateOnChange,\n } = getValidationModes(reValidateMode);\n\n const shouldSkipValidation =\n (!hasValidation(field._f, field._f.mount) &&\n !resolverRef.current &&\n !get(formStateRef.current.errors, name)) ||\n skipValidation({\n isBlurEvent,\n isTouched: !!get(formStateRef.current.touchedFields, name),\n isSubmitted: formStateRef.current.isSubmitted,\n isReValidateOnBlur,\n isReValidateOnChange,\n ...validationMode,\n });\n const isWatched =\n !isBlurEvent && isFieldWatched(name as FieldPath);\n\n if (!isUndefined(inputValue)) {\n field._f.value = inputValue;\n }\n\n const state = updateAndGetDirtyState(name, field._f.value, false);\n\n if (isBlurEvent && !get(formStateRef.current.touchedFields, name)) {\n set(formStateRef.current.touchedFields, name, true);\n readFormStateRef.current.touchedFields &&\n (state.touchedFields = formStateRef.current.touchedFields);\n }\n\n let shouldRender = !isEmptyObject(state) || isWatched;\n\n if (shouldSkipValidation) {\n !isBlurEvent &&\n watchSubjectRef.current.next({\n name,\n type,\n formValues: getValues(),\n });\n return (\n shouldRender &&\n formStateSubjectRef.current.next(\n isWatched ? { name } : { ...state, name },\n )\n );\n }\n\n formStateSubjectRef.current.next({\n isValidating: true,\n });\n\n if (resolverRef.current) {\n const { errors } = await resolverRef.current(\n getFieldsValues(fieldsRef),\n contextRef.current,\n {\n criteriaMode,\n fields: getFields([name], fieldsRef.current),\n names: [name as FieldName],\n },\n );\n const previousFormIsValid = formStateRef.current.isValid;\n error = get(errors, name);\n\n if (isCheckBoxInput(target as Ref) && !error) {\n const parentNodeName = getNodeParentName(name);\n const currentError = get(errors, parentNodeName, {});\n currentError.type && currentError.message && (error = currentError);\n\n if (\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 = (await validateField(field, isValidateAllFieldCriteria))[\n name\n ];\n }\n\n !isBlurEvent &&\n watchSubjectRef.current.next({\n name,\n type,\n formValues: getValues(),\n });\n shouldRenderBaseOnError(\n name,\n error,\n shouldRender,\n state,\n isValid,\n isWatched,\n );\n }\n },\n [],\n );\n\n const getValues: UseFormGetValues = (\n fieldNames?:\n | FieldPath\n | ReadonlyArray>,\n ) => {\n const values = {\n ...defaultValuesRef.current,\n ...getFieldsValues(fieldsRef),\n };\n\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames as InternalFieldName)\n : fieldNames.map((name) => get(values, name as InternalFieldName));\n };\n\n const updateIsValid = React.useCallback(\n async (values = {}) => {\n const previousIsValid = formStateRef.current.isValid;\n\n if (resolver) {\n const { errors } = await resolverRef.current!(\n {\n ...getFieldsValues(fieldsRef),\n ...values,\n },\n contextRef.current,\n {\n criteriaMode,\n fields: getFields(fieldsNamesRef.current, fieldsRef.current),\n },\n );\n formStateRef.current.isValid = isEmptyObject(errors);\n } else {\n getIsValid();\n }\n\n previousIsValid !== formStateRef.current.isValid &&\n formStateSubjectRef.current.next({\n isValid: formStateRef.current.isValid,\n });\n },\n [criteriaMode],\n );\n\n const clearErrors: UseFormClearErrors = (name) => {\n name\n ? convertToArrayPayload(name).forEach((inputName) =>\n unset(formStateRef.current.errors, inputName),\n )\n : (formStateRef.current.errors = {});\n\n formStateSubjectRef.current.next({\n errors: formStateRef.current.errors,\n });\n };\n\n const setError: UseFormSetError = (name, error, options) => {\n const ref = (\n ((get(fieldsRef.current, name) as Field) || { _f: {} })._f || {}\n ).ref;\n\n set(formStateRef.current.errors, name, {\n ...error,\n ref,\n });\n\n formStateSubjectRef.current.next({\n name,\n errors: formStateRef.current.errors,\n isValid: false,\n });\n\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n\n const watchInternal: WatchInternal = React.useCallback(\n (fieldNames, defaultValue, isGlobal, formValues) => {\n const isArrayNames = Array.isArray(fieldNames);\n const fieldValues =\n formValues || isMountedRef.current\n ? {\n ...defaultValuesRef.current,\n ...(formValues || getFieldsValues(fieldsRef)),\n }\n : isUndefined(defaultValue)\n ? defaultValuesRef.current\n : isArrayNames\n ? defaultValue\n : { [fieldNames as InternalFieldName]: defaultValue };\n\n if (isUndefined(fieldNames)) {\n isGlobal && (isWatchAllRef.current = true);\n return fieldValues;\n }\n\n const result = [];\n\n for (const fieldName of convertToArrayPayload(fieldNames)) {\n isGlobal && watchFieldsRef.current.add(fieldName as InternalFieldName);\n result.push(get(fieldValues, fieldName as InternalFieldName));\n }\n\n return isArrayNames ? result : result[0];\n },\n [],\n );\n\n const watch: UseFormWatch = (\n fieldName?:\n | FieldPath\n | ReadonlyArray>\n | WatchObserver,\n defaultValue?: unknown,\n ) =>\n isFunction(fieldName)\n ? watchSubjectRef.current.subscribe({\n next: (info) =>\n fieldName(\n watchInternal(\n undefined,\n defaultValue as UnpackNestedValue>,\n ) as UnpackNestedValue,\n info,\n ),\n })\n : watchInternal(\n fieldName as string | string[],\n defaultValue as UnpackNestedValue>,\n true,\n );\n\n const unregister: UseFormUnregister = (name, options = {}) => {\n for (const inputName of name\n ? convertToArrayPayload(name)\n : Object.keys(fieldsNamesRef.current)) {\n fieldsNamesRef.current.delete(inputName);\n fieldArrayNamesRef.current.delete(inputName);\n\n if (get(fieldsRef.current, inputName) as Field) {\n if (!options.keepIsValid) {\n unset(fieldsWithValidationRef.current, inputName);\n unset(validFieldsRef.current, inputName);\n }\n !options.keepError && unset(formStateRef.current.errors, inputName);\n !options.keepValue && unset(fieldsRef.current, inputName);\n !options.keepDirty &&\n unset(formStateRef.current.dirtyFields, inputName);\n !options.keepTouched &&\n unset(formStateRef.current.touchedFields, inputName);\n !shouldUnregister &&\n !options.keepDefaultValue &&\n unset(defaultValuesRef.current, inputName);\n\n watchSubjectRef.current.next({\n name: inputName,\n formValues: getValues(),\n });\n }\n }\n\n formStateSubjectRef.current.next({\n ...formStateRef.current,\n ...(!options.keepDirty ? {} : { isDirty: getIsDirty() }),\n ...(resolverRef.current ? {} : { isValid: getIsValid() }),\n });\n !options.keepIsValid && updateIsValid();\n };\n\n const registerFieldRef = (\n name: InternalFieldName,\n ref: HTMLInputElement,\n options?: RegisterOptions,\n ): ((name: InternalFieldName) => void) | void => {\n register(name as FieldPath, options);\n let field = get(fieldsRef.current, name) as Field;\n\n const isRadioOrCheckbox = isRadioOrCheckboxFunction(ref);\n\n if (\n ref === field._f.ref ||\n (isWeb && isHTMLElement(field._f.ref) && !isHTMLElement(ref)) ||\n (isRadioOrCheckbox &&\n Array.isArray(field._f.refs) &&\n compact(field._f.refs).find((option) => option === ref))\n ) {\n return;\n }\n\n field = {\n _f: isRadioOrCheckbox\n ? {\n ...field._f,\n refs: [\n ...compact(field._f.refs || []).filter(\n (ref) => isHTMLElement(ref) && document.contains(ref),\n ),\n ref,\n ],\n ref: { type: ref.type, name },\n }\n : {\n ...field._f,\n ref,\n },\n };\n\n set(fieldsRef.current, name, field);\n\n const defaultValue = updateValidAndValue(name, options, ref, true);\n\n if (\n isRadioOrCheckbox && Array.isArray(defaultValue)\n ? !deepEqual(get(fieldsRef.current, name)._f.value, defaultValue)\n : isUndefined(get(fieldsRef.current, name)._f.value)\n ) {\n get(fieldsRef.current, name)._f.value = getFieldValue(\n get(fieldsRef.current, name),\n );\n }\n };\n\n const register: UseFormRegister = React.useCallback(\n (name, options) => {\n const isInitialRegister = !get(fieldsRef.current, name);\n\n set(fieldsRef.current, name, {\n _f: {\n ...(isInitialRegister\n ? { ref: { name } }\n : {\n ref: (get(fieldsRef.current, name)._f || {}).ref || {},\n ...get(fieldsRef.current, name)._f,\n }),\n name,\n mount: true,\n ...options,\n },\n });\n hasValidation(options, true) &&\n set(fieldsWithValidationRef.current, name, true);\n fieldsNamesRef.current.add(name);\n isInitialRegister && updateValidAndValue(name, options);\n\n return isWindowUndefined\n ? ({ name: name as InternalFieldName } as UseFormRegisterReturn)\n : {\n name,\n onChange: handleChange,\n onBlur: handleChange,\n ref: (ref: HTMLInputElement | null): void => {\n if (ref) {\n registerFieldRef(name, ref, options);\n } else {\n const field = get(fieldsRef.current, name) as Field;\n const shouldUnmount =\n shouldUnregister || (options && options.shouldUnregister);\n field && (field._f.mount = false);\n\n if (\n isWeb &&\n (isNameInFieldArray(fieldArrayNamesRef.current, name)\n ? shouldUnmount && !inFieldArrayActionRef.current\n : shouldUnmount)\n ) {\n unregisterFieldsNamesRef.current.add(name);\n }\n }\n },\n };\n },\n [defaultValuesRef.current],\n );\n\n const handleSubmit: UseFormHandleSubmit = React.useCallback(\n (onValid, onInvalid) => async (e) => {\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let hasNoPromiseError = true;\n let fieldValues = getFieldsValues(fieldsRef);\n\n formStateSubjectRef.current.next({\n isSubmitting: true,\n });\n\n try {\n if (resolverRef.current) {\n const { errors, values } = await resolverRef.current(\n fieldValues,\n contextRef.current,\n {\n criteriaMode,\n fields: getFields(fieldsNamesRef.current, fieldsRef.current),\n },\n );\n formStateRef.current.errors = errors;\n fieldValues = values;\n } else {\n await validateForm(fieldsRef.current);\n }\n\n if (\n isEmptyObject(formStateRef.current.errors) &&\n Object.keys(formStateRef.current.errors).every((name) =>\n get(fieldValues, name),\n )\n ) {\n formStateSubjectRef.current.next({\n errors: {},\n isSubmitting: true,\n });\n await onValid(fieldValues, e);\n } else {\n onInvalid && (await onInvalid(formStateRef.current.errors, e));\n shouldFocusError &&\n focusFieldBy(\n fieldsRef.current,\n (key: string) => get(formStateRef.current.errors, key),\n fieldsNamesRef.current,\n );\n }\n } catch {\n hasNoPromiseError = false;\n } finally {\n formStateRef.current.isSubmitted = true;\n formStateSubjectRef.current.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful:\n isEmptyObject(formStateRef.current.errors) && hasNoPromiseError,\n submitCount: formStateRef.current.submitCount + 1,\n errors: formStateRef.current.errors,\n });\n }\n },\n [shouldFocusError, isValidateAllFieldCriteria, criteriaMode],\n );\n\n const resetFromState = React.useCallback(\n (\n {\n keepErrors,\n keepDirty,\n keepIsSubmitted,\n keepTouched,\n keepDefaultValues,\n keepIsValid,\n keepSubmitCount,\n }: KeepStateOptions,\n values?: DefaultValues,\n ) => {\n if (!keepIsValid) {\n validFieldsRef.current = {};\n fieldsWithValidationRef.current = {};\n }\n\n watchFieldsRef.current = new Set();\n isWatchAllRef.current = false;\n\n formStateSubjectRef.current.next({\n submitCount: keepSubmitCount ? formStateRef.current.submitCount : 0,\n isDirty: keepDirty\n ? formStateRef.current.isDirty\n : keepDefaultValues\n ? deepEqual(values, defaultValuesRef.current)\n : false,\n isSubmitted: keepIsSubmitted ? formStateRef.current.isSubmitted : false,\n isValid: keepIsValid\n ? formStateRef.current.isValid\n : !!updateIsValid(values),\n dirtyFields: keepDirty ? formStateRef.current.dirtyFields : {},\n touchedFields: keepTouched ? formStateRef.current.touchedFields : {},\n errors: keepErrors ? formStateRef.current.errors : {},\n isSubmitting: false,\n isSubmitSuccessful: false,\n });\n },\n [],\n );\n\n const registerAbsentFields = >(\n value: T,\n name = '',\n ): void => {\n const field = get(fieldsRef.current, name);\n\n if (!field || (field && !field._f)) {\n if (\n !field &&\n (isPrimitive(value) ||\n (isWeb && (value instanceof FileList || value instanceof Date)))\n ) {\n set(fieldsRef.current, name, {\n _f: {\n ref: { name, value },\n value,\n name,\n },\n });\n }\n\n if (Array.isArray(value) || isObject(value)) {\n if (name && !get(fieldsRef.current, name)) {\n set(fieldsRef.current, name, Array.isArray(value) ? [] : {});\n }\n\n for (const key in value) {\n registerAbsentFields(value[key], name + (name ? '.' : '') + key);\n }\n }\n }\n };\n\n const reset: UseFormReset = (values, keepStateOptions = {}) => {\n const updatedValues = values || defaultValuesRef.current;\n\n if (isWeb && !keepStateOptions.keepValues) {\n for (const name of fieldsNamesRef.current) {\n const field = get(fieldsRef.current, name);\n if (field && field._f) {\n const inputRef = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n\n try {\n isHTMLElement(inputRef) && inputRef.closest('form')!.reset();\n break;\n } catch {}\n }\n }\n }\n\n !keepStateOptions.keepDefaultValues &&\n (defaultValuesRef.current = { ...updatedValues });\n\n if (!keepStateOptions.keepValues) {\n fieldsRef.current = {};\n\n controllerSubjectRef.current.next({\n values: { ...updatedValues },\n });\n\n watchSubjectRef.current.next({\n formValues: { ...updatedValues },\n });\n\n fieldArraySubjectRef.current.next({\n fields: { ...updatedValues },\n isReset: true,\n });\n }\n\n !keepStateOptions.keepDefaultValues &&\n registerAbsentFields({ ...updatedValues });\n\n resetFromState(keepStateOptions, values);\n };\n\n const setFocus: UseFormSetFocus = (name) =>\n get(fieldsRef.current, name)._f.ref.focus();\n\n React.useEffect(() => {\n registerAbsentFields(defaultValuesRef.current);\n const formStateSubscription = formStateSubjectRef.current.subscribe({\n next(formState) {\n if (shouldRenderFormState(formState, readFormStateRef.current, true)) {\n formStateRef.current = {\n ...formStateRef.current,\n ...formState,\n };\n updateFormState(formStateRef.current);\n }\n },\n });\n\n const useFieldArraySubscription = fieldArraySubjectRef.current.subscribe({\n next(state) {\n if (state.fields && state.name && readFormStateRef.current.isValid) {\n const values = getFieldsValues(fieldsRef);\n set(values, state.name, state.fields);\n updateIsValid(values);\n }\n },\n });\n\n resolverRef.current && readFormStateRef.current.isValid && updateIsValid();\n\n return () => {\n watchSubjectRef.current.unsubscribe();\n formStateSubscription.unsubscribe();\n useFieldArraySubscription.unsubscribe();\n };\n }, []);\n\n React.useEffect(() => {\n const isLiveInDom = (ref: Ref) =>\n !isHTMLElement(ref) || !document.contains(ref);\n\n isMountedRef.current = true;\n\n for (const name of unregisterFieldsNamesRef.current) {\n const field = get(fieldsRef.current, name) as Field;\n\n field &&\n (field._f.refs\n ? field._f.refs.every(isLiveInDom)\n : isLiveInDom(field._f.ref)) &&\n unregister(name as FieldPath);\n }\n\n unregisterFieldsNamesRef.current = new Set();\n });\n\n return {\n control: React.useMemo(\n () => ({\n register,\n isWatchAllRef,\n inFieldArrayActionRef,\n watchFieldsRef,\n getIsDirty,\n formStateSubjectRef,\n fieldArraySubjectRef,\n controllerSubjectRef,\n watchSubjectRef,\n watchInternal,\n fieldsRef,\n validFieldsRef,\n fieldsWithValidationRef,\n fieldArrayNamesRef,\n readFormStateRef,\n formStateRef,\n defaultValuesRef,\n fieldArrayDefaultValuesRef,\n unregister,\n shouldUnmount: shouldUnregister,\n }),\n [],\n ),\n formState: getProxyFormState(\n isProxyEnabled,\n formState,\n readFormStateRef,\n ),\n trigger,\n register,\n handleSubmit,\n watch: React.useCallback(watch, []),\n setValue: React.useCallback(setValue, [setInternalValues]),\n getValues: React.useCallback(getValues, []),\n reset: React.useCallback(reset, []),\n clearErrors: React.useCallback(clearErrors, []),\n unregister: React.useCallback(unregister, []),\n setError: React.useCallback(setError, []),\n setFocus: React.useCallback(setFocus, []),\n };\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","import { FieldElement } from '../types';\n\nimport isCheckBoxInput from './isCheckBoxInput';\nimport isRadioInput from './isRadioInput';\n\nexport default (ref: FieldElement): ref is HTMLInputElement =>\n isRadioInput(ref) || isCheckBoxInput(ref);\n"],"sourceRoot":""}