{"version":3,"file":"591eabc1ad3626d3f1efcf18b2307d672ba6ddff-6e6b2b1559f5ade93f50.js","mappings":"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","sources":["webpack://boat-link-web/./node_modules/react-hook-form/dist/index.esm.js"],"sourcesContent":["import { isValidElement, useRef, useState, useCallback, useEffect, useMemo, createContext, useContext, createElement, cloneElement } from 'react';\n\nvar isHTMLElement = (value) => value instanceof HTMLElement;\n\nconst EVENTS = {\r\n BLUR: 'blur',\r\n CHANGE: 'change',\r\n INPUT: 'input',\r\n};\r\nconst VALIDATION_MODE = {\r\n onBlur: 'onBlur',\r\n onChange: 'onChange',\r\n onSubmit: 'onSubmit',\r\n onTouched: 'onTouched',\r\n all: 'all',\r\n};\r\nconst SELECT = 'select';\r\nconst UNDEFINED = 'undefined';\r\nconst INPUT_VALIDATION_RULES = {\r\n max: 'max',\r\n min: 'min',\r\n maxLength: 'maxLength',\r\n minLength: 'minLength',\r\n pattern: 'pattern',\r\n required: 'required',\r\n validate: 'validate',\r\n};\n\nfunction attachEventListeners({ ref }, shouldAttachChangeEvent, handleChange) {\r\n if (isHTMLElement(ref) && handleChange) {\r\n ref.addEventListener(shouldAttachChangeEvent ? EVENTS.CHANGE : EVENTS.INPUT, handleChange);\r\n ref.addEventListener(EVENTS.BLUR, handleChange);\r\n }\r\n}\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\r\nvar isObject = (value) => !isNullOrUndefined(value) &&\r\n !Array.isArray(value) &&\r\n isObjectType(value) &&\r\n !(value instanceof Date);\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar compact = (value) => value.filter(Boolean);\n\nvar stringToPath = (input) => compact(input\r\n .replace(/[\"|']/g, '')\r\n .replace(/\\[/g, '.')\r\n .replace(/\\]/g, '')\r\n .split('.'));\n\nfunction set(object, path, value) {\r\n let index = -1;\r\n const tempPath = isKey(path) ? [path] : stringToPath(path);\r\n const length = tempPath.length;\r\n const lastIndex = length - 1;\r\n while (++index < length) {\r\n const key = tempPath[index];\r\n let newValue = value;\r\n if (index !== lastIndex) {\r\n const objValue = object[key];\r\n newValue =\r\n isObject(objValue) || Array.isArray(objValue)\r\n ? objValue\r\n : !isNaN(+tempPath[index + 1])\r\n ? []\r\n : {};\r\n }\r\n object[key] = newValue;\r\n object = object[key];\r\n }\r\n return object;\r\n}\n\nvar transformToNestObject = (data, value = {}) => {\r\n for (const key in data) {\r\n !isKey(key) ? set(value, key, data[key]) : (value[key] = data[key]);\r\n }\r\n return value;\r\n};\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (obj = {}, path, defaultValue) => {\r\n const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => (isNullOrUndefined(result) ? result : result[key]), obj);\r\n return isUndefined(result) || result === obj\r\n ? isUndefined(obj[path])\r\n ? defaultValue\r\n : obj[path]\r\n : result;\r\n};\n\nvar focusOnErrorField = (fields, fieldErrors) => {\r\n for (const key in fields) {\r\n if (get(fieldErrors, key)) {\r\n const field = fields[key];\r\n if (field) {\r\n if (field.ref.focus && isUndefined(field.ref.focus())) {\r\n break;\r\n }\r\n else if (field.options) {\r\n field.options[0].ref.focus();\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n};\n\nvar removeAllEventListeners = (ref, validateWithStateUpdate) => {\r\n if (isHTMLElement(ref) && ref.removeEventListener) {\r\n ref.removeEventListener(EVENTS.INPUT, validateWithStateUpdate);\r\n ref.removeEventListener(EVENTS.CHANGE, validateWithStateUpdate);\r\n ref.removeEventListener(EVENTS.BLUR, validateWithStateUpdate);\r\n }\r\n};\n\nconst defaultReturn = {\r\n isValid: false,\r\n value: null,\r\n};\r\nvar getRadioValue = (options) => Array.isArray(options)\r\n ? options.reduce((previous, option) => option && option.ref.checked\r\n ? {\r\n isValid: true,\r\n value: option.ref.value,\r\n }\r\n : previous, defaultReturn)\r\n : defaultReturn;\n\nvar getMultipleSelectValue = (options) => [...options]\r\n .filter(({ selected }) => selected)\r\n .map(({ value }) => value);\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isMultipleSelect = (element) => element.type === `${SELECT}-multiple`;\n\nconst defaultResult = {\r\n value: false,\r\n isValid: false,\r\n};\r\nconst validResult = { value: true, isValid: true };\r\nvar getCheckboxValue = (options) => {\r\n if (Array.isArray(options)) {\r\n if (options.length > 1) {\r\n const values = options\r\n .filter((option) => option && option.ref.checked)\r\n .map(({ ref: { value } }) => value);\r\n return { value: values, isValid: !!values.length };\r\n }\r\n const { checked, value, attributes } = options[0].ref;\r\n return checked\r\n ? attributes && !isUndefined(attributes.value)\r\n ? isUndefined(value) || value === ''\r\n ? validResult\r\n : { value: value, isValid: true }\r\n : validResult\r\n : defaultResult;\r\n }\r\n return defaultResult;\r\n};\n\nfunction getFieldValue(fieldsRef, name, shallowFieldsStateRef, excludeDisabled, shouldKeepRawValue) {\r\n const field = fieldsRef.current[name];\r\n if (field) {\r\n const { ref: { value, disabled }, ref, valueAsNumber, valueAsDate, setValueAs, } = field;\r\n if (disabled && excludeDisabled) {\r\n return;\r\n }\r\n if (isFileInput(ref)) {\r\n return ref.files;\r\n }\r\n if (isRadioInput(ref)) {\r\n return getRadioValue(field.options).value;\r\n }\r\n if (isMultipleSelect(ref)) {\r\n return getMultipleSelectValue(ref.options);\r\n }\r\n if (isCheckBoxInput(ref)) {\r\n return getCheckboxValue(field.options).value;\r\n }\r\n return shouldKeepRawValue\r\n ? value\r\n : valueAsNumber\r\n ? value === ''\r\n ? NaN\r\n : +value\r\n : valueAsDate\r\n ? ref.valueAsDate\r\n : setValueAs\r\n ? setValueAs(value)\r\n : value;\r\n }\r\n if (shallowFieldsStateRef) {\r\n return get(shallowFieldsStateRef.current, name);\r\n }\r\n}\n\nfunction isDetached(element) {\r\n if (!element) {\r\n return true;\r\n }\r\n if (!(element instanceof HTMLElement) ||\r\n element.nodeType === Node.DOCUMENT_NODE) {\r\n return false;\r\n }\r\n return isDetached(element.parentNode);\r\n}\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nfunction baseGet(object, updatePath) {\r\n const length = updatePath.slice(0, -1).length;\r\n let index = 0;\r\n while (index < length) {\r\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\r\n }\r\n return object;\r\n}\r\nfunction unset(object, path) {\r\n const updatePath = isKey(path) ? [path] : stringToPath(path);\r\n const childObject = updatePath.length == 1 ? object : baseGet(object, updatePath);\r\n const key = updatePath[updatePath.length - 1];\r\n let previousObjRef;\r\n if (childObject) {\r\n delete childObject[key];\r\n }\r\n for (let k = 0; k < updatePath.slice(0, -1).length; k++) {\r\n let index = -1;\r\n let objectRef;\r\n const currentPaths = updatePath.slice(0, -(k + 1));\r\n const currentPathsLength = currentPaths.length - 1;\r\n if (k > 0) {\r\n previousObjRef = object;\r\n }\r\n while (++index < currentPaths.length) {\r\n const item = currentPaths[index];\r\n objectRef = objectRef ? objectRef[item] : object[item];\r\n if (currentPathsLength === index &&\r\n ((isObject(objectRef) && isEmptyObject(objectRef)) ||\r\n (Array.isArray(objectRef) &&\r\n !objectRef.filter((data) => (isObject(data) && !isEmptyObject(data)) || isBoolean(data)).length))) {\r\n previousObjRef ? delete previousObjRef[item] : delete object[item];\r\n }\r\n previousObjRef = objectRef;\r\n }\r\n }\r\n return object;\r\n}\n\nconst isSameRef = (fieldValue, ref) => fieldValue && fieldValue.ref === ref;\r\nfunction findRemovedFieldAndRemoveListener(fieldsRef, handleChange, field, shallowFieldsStateRef, shouldUnregister, forceDelete) {\r\n const { ref, ref: { name }, } = field;\r\n const fieldRef = fieldsRef.current[name];\r\n if (!shouldUnregister) {\r\n const value = getFieldValue(fieldsRef, name, shallowFieldsStateRef);\r\n !isUndefined(value) && set(shallowFieldsStateRef.current, name, value);\r\n }\r\n if (!ref.type || !fieldRef) {\r\n delete fieldsRef.current[name];\r\n return;\r\n }\r\n if (isRadioInput(ref) || isCheckBoxInput(ref)) {\r\n if (Array.isArray(fieldRef.options) && fieldRef.options.length) {\r\n compact(fieldRef.options).forEach((option = {}, index) => {\r\n if ((isDetached(option.ref) && isSameRef(option, option.ref)) ||\r\n forceDelete) {\r\n removeAllEventListeners(option.ref, handleChange);\r\n unset(fieldRef.options, `[${index}]`);\r\n }\r\n });\r\n if (fieldRef.options && !compact(fieldRef.options).length) {\r\n delete fieldsRef.current[name];\r\n }\r\n }\r\n else {\r\n delete fieldsRef.current[name];\r\n }\r\n }\r\n else if ((isDetached(ref) && isSameRef(fieldRef, ref)) || forceDelete) {\r\n removeAllEventListeners(ref, handleChange);\r\n delete fieldsRef.current[name];\r\n }\r\n}\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepMerge(target, source) {\r\n if (isPrimitive(target) || isPrimitive(source)) {\r\n return source;\r\n }\r\n for (const key in source) {\r\n const targetValue = target[key];\r\n const sourceValue = source[key];\r\n try {\r\n target[key] =\r\n (isObject(targetValue) && isObject(sourceValue)) ||\r\n (Array.isArray(targetValue) && Array.isArray(sourceValue))\r\n ? deepMerge(targetValue, sourceValue)\r\n : sourceValue;\r\n }\r\n catch (_a) { }\r\n }\r\n return target;\r\n}\n\nfunction deepEqual(object1, object2, isErrorObject) {\r\n if (isPrimitive(object1) ||\r\n isPrimitive(object2) ||\r\n object1 instanceof Date ||\r\n object2 instanceof Date) {\r\n return object1 === object2;\r\n }\r\n if (!isValidElement(object1)) {\r\n const keys1 = Object.keys(object1);\r\n const keys2 = Object.keys(object2);\r\n if (keys1.length !== keys2.length) {\r\n return false;\r\n }\r\n for (const key of keys1) {\r\n const val1 = object1[key];\r\n if (!(isErrorObject && key === 'ref')) {\r\n const val2 = object2[key];\r\n if ((isObject(val1) || Array.isArray(val1)) &&\r\n (isObject(val2) || Array.isArray(val2))\r\n ? !deepEqual(val1, val2, isErrorObject)\r\n : val1 !== val2) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n}\n\nfunction setDirtyFields(values, defaultValues, dirtyFields, parentNode, parentName) {\r\n let index = -1;\r\n while (++index < values.length) {\r\n for (const key in values[index]) {\r\n if (Array.isArray(values[index][key])) {\r\n !dirtyFields[index] && (dirtyFields[index] = {});\r\n dirtyFields[index][key] = [];\r\n setDirtyFields(values[index][key], get(defaultValues[index] || {}, key, []), dirtyFields[index][key], dirtyFields[index], key);\r\n }\r\n else {\r\n deepEqual(get(defaultValues[index] || {}, key), values[index][key])\r\n ? set(dirtyFields[index] || {}, key)\r\n : (dirtyFields[index] = Object.assign(Object.assign({}, dirtyFields[index]), { [key]: true }));\r\n }\r\n }\r\n parentNode &&\r\n !dirtyFields.length &&\r\n delete parentNode[parentName];\r\n }\r\n return dirtyFields;\r\n}\r\nvar setFieldArrayDirtyFields = (values, defaultValues, dirtyFields) => deepMerge(setDirtyFields(values, defaultValues, dirtyFields.slice(0, values.length)), setDirtyFields(defaultValues, values, dirtyFields.slice(0, values.length)));\n\nvar isString = (value) => typeof value === 'string';\n\nvar getFieldsValues = (fieldsRef, shallowFieldsState, shouldUnregister, excludeDisabled, search) => {\r\n const output = {};\r\n for (const name in fieldsRef.current) {\r\n if (isUndefined(search) ||\r\n (isString(search)\r\n ? name.startsWith(search)\r\n : Array.isArray(search) && search.find((data) => name.startsWith(data)))) {\r\n output[name] = getFieldValue(fieldsRef, name, undefined, excludeDisabled);\r\n }\r\n }\r\n return shouldUnregister\r\n ? transformToNestObject(output)\r\n : deepMerge(shallowFieldsState, transformToNestObject(output));\r\n};\n\nvar isErrorStateChanged = ({ errors, name, error, validFields, fieldsWithValidation, }) => {\r\n const isValid = isUndefined(error);\r\n const previousError = get(errors, name);\r\n return ((isValid && !!previousError) ||\r\n (!isValid && !deepEqual(previousError, error, true)) ||\r\n (isValid && get(fieldsWithValidation, name) && !get(validFields, name)));\r\n};\n\nvar isRegex = (value) => value instanceof RegExp;\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\r\n ? validationData\r\n : {\r\n value: validationData,\r\n message: '',\r\n };\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isMessage = (value) => isString(value) || isValidElement(value);\n\nfunction getValidateError(result, ref, type = 'validate') {\r\n if (isMessage(result) || (isBoolean(result) && !result)) {\r\n return {\r\n type,\r\n message: isMessage(result) ? result : '',\r\n ref,\r\n };\r\n }\r\n}\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\r\n ? Object.assign(Object.assign({}, errors[name]), { types: Object.assign(Object.assign({}, (errors[name] && errors[name].types ? errors[name].types : {})), { [type]: message || true }) }) : {};\n\nvar validateField = async (fieldsRef, validateAllFieldCriteria, { ref, ref: { value }, options, required, maxLength, minLength, min, max, pattern, validate, }, shallowFieldsStateRef) => {\r\n const name = ref.name;\r\n const error = {};\r\n const isRadio = isRadioInput(ref);\r\n const isCheckBox = isCheckBoxInput(ref);\r\n const isRadioOrCheckbox = isRadio || isCheckBox;\r\n const isEmpty = value === '';\r\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\r\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\r\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\r\n error[name] = Object.assign({ type: exceedMax ? maxType : minType, message,\r\n ref }, (exceedMax\r\n ? appendErrorsCurry(maxType, message)\r\n : appendErrorsCurry(minType, message)));\r\n };\r\n if (required &&\r\n ((!isRadio && !isCheckBox && (isEmpty || isNullOrUndefined(value))) ||\r\n (isBoolean(value) && !value) ||\r\n (isCheckBox && !getCheckboxValue(options).isValid) ||\r\n (isRadio && !getRadioValue(options).isValid))) {\r\n const { value, message } = isMessage(required)\r\n ? { value: !!required, message: required }\r\n : getValueAndMessage(required);\r\n if (value) {\r\n error[name] = Object.assign({ type: INPUT_VALIDATION_RULES.required, message, ref: isRadioOrCheckbox\r\n ? ((fieldsRef.current[name].options || [])[0] || {}).ref\r\n : ref }, appendErrorsCurry(INPUT_VALIDATION_RULES.required, message));\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n if ((!isNullOrUndefined(min) || !isNullOrUndefined(max)) && value !== '') {\r\n let exceedMax;\r\n let exceedMin;\r\n const maxOutput = getValueAndMessage(max);\r\n const minOutput = getValueAndMessage(min);\r\n if (!isNaN(value)) {\r\n const valueNumber = ref.valueAsNumber || parseFloat(value);\r\n if (!isNullOrUndefined(maxOutput.value)) {\r\n exceedMax = valueNumber > maxOutput.value;\r\n }\r\n if (!isNullOrUndefined(minOutput.value)) {\r\n exceedMin = valueNumber < minOutput.value;\r\n }\r\n }\r\n else {\r\n const valueDate = ref.valueAsDate || new Date(value);\r\n if (isString(maxOutput.value)) {\r\n exceedMax = valueDate > new Date(maxOutput.value);\r\n }\r\n if (isString(minOutput.value)) {\r\n exceedMin = valueDate < new Date(minOutput.value);\r\n }\r\n }\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n if (isString(value) && !isEmpty && (maxLength || minLength)) {\r\n const maxLengthOutput = getValueAndMessage(maxLength);\r\n const minLengthOutput = getValueAndMessage(minLength);\r\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\r\n value.length > maxLengthOutput.value;\r\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\r\n value.length < minLengthOutput.value;\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n if (isString(value) && pattern && !isEmpty) {\r\n const { value: patternValue, message } = getValueAndMessage(pattern);\r\n if (isRegex(patternValue) && !patternValue.test(value)) {\r\n error[name] = Object.assign({ type: INPUT_VALIDATION_RULES.pattern, message,\r\n ref }, appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message));\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n if (validate) {\r\n const fieldValue = getFieldValue(fieldsRef, name, shallowFieldsStateRef, false, true);\r\n const validateRef = isRadioOrCheckbox && options ? options[0].ref : ref;\r\n if (isFunction(validate)) {\r\n const result = await validate(fieldValue);\r\n const validateError = getValidateError(result, validateRef);\r\n if (validateError) {\r\n error[name] = Object.assign(Object.assign({}, validateError), appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message));\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n else if (isObject(validate)) {\r\n let validationResult = {};\r\n for (const [key, validateFunction] of Object.entries(validate)) {\r\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\r\n break;\r\n }\r\n const validateResult = await validateFunction(fieldValue);\r\n const validateError = getValidateError(validateResult, validateRef, key);\r\n if (validateError) {\r\n validationResult = Object.assign(Object.assign({}, validateError), appendErrorsCurry(key, validateError.message));\r\n if (validateAllFieldCriteria) {\r\n error[name] = validationResult;\r\n }\r\n }\r\n }\r\n if (!isEmptyObject(validationResult)) {\r\n error[name] = Object.assign({ ref: validateRef }, validationResult);\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n }\r\n return error;\r\n};\n\nconst getPath = (rootPath, values, paths = []) => {\r\n for (const property in values) {\r\n const rootName = (rootPath +\r\n (isObject(values)\r\n ? `.${property}`\r\n : `[${property}]`));\r\n isPrimitive(values[property])\r\n ? paths.push(rootName)\r\n : getPath(rootName, values[property], paths);\r\n }\r\n return paths;\r\n};\n\nvar assignWatchFields = (fieldValues, fieldName, watchFields, inputValue, isSingleField) => {\r\n let value = undefined;\r\n watchFields.add(fieldName);\r\n if (!isEmptyObject(fieldValues)) {\r\n value = get(fieldValues, fieldName);\r\n if (isObject(value) || Array.isArray(value)) {\r\n getPath(fieldName, value).forEach((name) => watchFields.add(name));\r\n }\r\n }\r\n return isUndefined(value)\r\n ? isSingleField\r\n ? inputValue\r\n : get(inputValue, fieldName)\r\n : value;\r\n};\n\nvar skipValidation = ({ isOnBlur, isOnChange, isOnTouch, isTouched, isReValidateOnBlur, isReValidateOnChange, isBlurEvent, isSubmitted, isOnAll, }) => {\r\n if (isOnAll) {\r\n return false;\r\n }\r\n else if (!isSubmitted && isOnTouch) {\r\n return !(isTouched || isBlurEvent);\r\n }\r\n else if (isSubmitted ? isReValidateOnBlur : isOnBlur) {\r\n return !isBlurEvent;\r\n }\r\n else if (isSubmitted ? isReValidateOnChange : isOnChange) {\r\n return isBlurEvent;\r\n }\r\n return true;\r\n};\n\nvar getFieldArrayParentName = (name) => name.substring(0, name.indexOf('['));\n\nconst isMatchFieldArrayName = (name, searchName) => RegExp(`^${searchName}([|.)\\\\d+`.replace(/\\[/g, '\\\\[').replace(/\\]/g, '\\\\]')).test(name);\r\nvar isNameInFieldArray = (names, name) => [...names].some((current) => isMatchFieldArrayName(name, current));\n\nvar isSelectInput = (element) => element.type === `${SELECT}-one`;\n\nfunction onDomRemove(fieldsRef, removeFieldEventListenerAndRef) {\r\n const observer = new MutationObserver(() => {\r\n for (const field of Object.values(fieldsRef.current)) {\r\n if (field && field.options) {\r\n for (const option of field.options) {\r\n if (option && option.ref && isDetached(option.ref)) {\r\n removeFieldEventListenerAndRef(field);\r\n }\r\n }\r\n }\r\n else if (field && isDetached(field.ref)) {\r\n removeFieldEventListenerAndRef(field);\r\n }\r\n }\r\n });\r\n observer.observe(window.document, {\r\n childList: true,\r\n subtree: true,\r\n });\r\n return observer;\r\n}\n\nvar isWeb = typeof window !== UNDEFINED && typeof document !== UNDEFINED;\n\nfunction cloneObject(data) {\r\n var _a;\r\n let copy;\r\n if (isPrimitive(data) ||\r\n (isWeb && (data instanceof File || isHTMLElement(data)))) {\r\n return data;\r\n }\r\n if (!['Set', 'Map', 'Object', 'Date', 'Array'].includes((_a = data.constructor) === null || _a === void 0 ? void 0 : _a.name)) {\r\n return data;\r\n }\r\n if (data instanceof Date) {\r\n copy = new Date(data.getTime());\r\n return copy;\r\n }\r\n if (data instanceof Set) {\r\n copy = new Set();\r\n for (const item of data) {\r\n copy.add(item);\r\n }\r\n return copy;\r\n }\r\n if (data instanceof Map) {\r\n copy = new Map();\r\n for (const key of data.keys()) {\r\n copy.set(key, cloneObject(data.get(key)));\r\n }\r\n return copy;\r\n }\r\n copy = Array.isArray(data) ? [] : {};\r\n for (const key in data) {\r\n copy[key] = cloneObject(data[key]);\r\n }\r\n return copy;\r\n}\n\nvar modeChecker = (mode) => ({\r\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\r\n isOnBlur: mode === VALIDATION_MODE.onBlur,\r\n isOnChange: mode === VALIDATION_MODE.onChange,\r\n isOnAll: mode === VALIDATION_MODE.all,\r\n isOnTouch: mode === VALIDATION_MODE.onTouched,\r\n});\n\nvar isRadioOrCheckboxFunction = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nconst isWindowUndefined = typeof window === UNDEFINED;\r\nconst isProxyEnabled = isWeb ? 'Proxy' in window : typeof Proxy !== UNDEFINED;\r\nfunction useForm({ mode = VALIDATION_MODE.onSubmit, reValidateMode = VALIDATION_MODE.onChange, resolver, context, defaultValues = {}, shouldFocusError = true, shouldUnregister = true, criteriaMode, } = {}) {\r\n const fieldsRef = useRef({});\r\n const fieldArrayDefaultValuesRef = useRef({});\r\n const fieldArrayValuesRef = useRef({});\r\n const watchFieldsRef = useRef(new Set());\r\n const useWatchFieldsRef = useRef({});\r\n const useWatchRenderFunctionsRef = useRef({});\r\n const fieldsWithValidationRef = useRef({});\r\n const validFieldsRef = useRef({});\r\n const defaultValuesRef = useRef(defaultValues);\r\n const isUnMount = useRef(false);\r\n const isWatchAllRef = useRef(false);\r\n const handleChangeRef = useRef();\r\n const shallowFieldsStateRef = useRef({});\r\n const resetFieldArrayFunctionRef = useRef({});\r\n const contextRef = useRef(context);\r\n const resolverRef = useRef(resolver);\r\n const fieldArrayNamesRef = useRef(new Set());\r\n const modeRef = useRef(modeChecker(mode));\r\n const { isOnSubmit, isOnTouch } = modeRef.current;\r\n const isValidateAllFieldCriteria = criteriaMode === VALIDATION_MODE.all;\r\n const [formState, setFormState] = useState({\r\n isDirty: false,\r\n isValidating: false,\r\n dirtyFields: {},\r\n isSubmitted: false,\r\n submitCount: 0,\r\n touched: {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n isValid: !isOnSubmit,\r\n errors: {},\r\n });\r\n const readFormStateRef = useRef({\r\n isDirty: !isProxyEnabled,\r\n dirtyFields: !isProxyEnabled,\r\n touched: !isProxyEnabled || isOnTouch,\r\n isValidating: !isProxyEnabled,\r\n isSubmitting: !isProxyEnabled,\r\n isValid: !isProxyEnabled,\r\n });\r\n const formStateRef = useRef(formState);\r\n const observerRef = useRef();\r\n const { isOnBlur: isReValidateOnBlur, isOnChange: isReValidateOnChange, } = useRef(modeChecker(reValidateMode)).current;\r\n contextRef.current = context;\r\n resolverRef.current = resolver;\r\n formStateRef.current = formState;\r\n shallowFieldsStateRef.current = shouldUnregister\r\n ? {}\r\n : isEmptyObject(shallowFieldsStateRef.current)\r\n ? cloneObject(defaultValues)\r\n : shallowFieldsStateRef.current;\r\n const updateFormState = useCallback((state = {}) => {\r\n if (!isUnMount.current) {\r\n formStateRef.current = Object.assign(Object.assign({}, formStateRef.current), state);\r\n setFormState(formStateRef.current);\r\n }\r\n }, []);\r\n const updateIsValidating = () => readFormStateRef.current.isValidating &&\r\n updateFormState({\r\n isValidating: true,\r\n });\r\n const shouldRenderBaseOnError = useCallback((name, error, shouldRender = false, state = {}, isValid) => {\r\n let shouldReRender = shouldRender ||\r\n isErrorStateChanged({\r\n errors: formStateRef.current.errors,\r\n error,\r\n name,\r\n validFields: validFieldsRef.current,\r\n fieldsWithValidation: fieldsWithValidationRef.current,\r\n });\r\n const previousError = get(formStateRef.current.errors, name);\r\n if (error) {\r\n unset(validFieldsRef.current, name);\r\n shouldReRender =\r\n shouldReRender ||\r\n !previousError ||\r\n !deepEqual(previousError, error, true);\r\n set(formStateRef.current.errors, name, error);\r\n }\r\n else {\r\n if (get(fieldsWithValidationRef.current, name) || resolverRef.current) {\r\n set(validFieldsRef.current, name, true);\r\n shouldReRender = shouldReRender || previousError;\r\n }\r\n unset(formStateRef.current.errors, name);\r\n }\r\n if ((shouldReRender && !isNullOrUndefined(shouldRender)) ||\r\n !isEmptyObject(state) ||\r\n readFormStateRef.current.isValidating) {\r\n updateFormState(Object.assign(Object.assign(Object.assign({}, state), (resolverRef.current ? { isValid: !!isValid } : {})), { isValidating: false }));\r\n }\r\n }, []);\r\n const setFieldValue = useCallback((name, rawValue) => {\r\n const { ref, options } = fieldsRef.current[name];\r\n const value = isWeb && isHTMLElement(ref) && isNullOrUndefined(rawValue)\r\n ? ''\r\n : rawValue;\r\n if (isRadioInput(ref)) {\r\n (options || []).forEach(({ ref: radioRef }) => (radioRef.checked = radioRef.value === value));\r\n }\r\n else if (isFileInput(ref) && !isString(value)) {\r\n ref.files = value;\r\n }\r\n else if (isMultipleSelect(ref)) {\r\n [...ref.options].forEach((selectRef) => (selectRef.selected = value.includes(selectRef.value)));\r\n }\r\n else if (isCheckBoxInput(ref) && options) {\r\n options.length > 1\r\n ? options.forEach(({ ref: checkboxRef }) => (checkboxRef.checked = Array.isArray(value)\r\n ? !!value.find((data) => data === checkboxRef.value)\r\n : value === checkboxRef.value))\r\n : (options[0].ref.checked = !!value);\r\n }\r\n else {\r\n ref.value = value;\r\n }\r\n }, []);\r\n const isFormDirty = useCallback((name, data) => {\r\n if (readFormStateRef.current.isDirty) {\r\n const formValues = getValues();\r\n name && data && set(formValues, name, data);\r\n return !deepEqual(formValues, defaultValuesRef.current);\r\n }\r\n return false;\r\n }, []);\r\n const updateAndGetDirtyState = useCallback((name, shouldRender = true) => {\r\n if (readFormStateRef.current.isDirty ||\r\n readFormStateRef.current.dirtyFields) {\r\n const isFieldDirty = !deepEqual(get(defaultValuesRef.current, name), getFieldValue(fieldsRef, name, shallowFieldsStateRef));\r\n const isDirtyFieldExist = get(formStateRef.current.dirtyFields, name);\r\n const previousIsDirty = formStateRef.current.isDirty;\r\n isFieldDirty\r\n ? set(formStateRef.current.dirtyFields, name, true)\r\n : unset(formStateRef.current.dirtyFields, name);\r\n const state = {\r\n isDirty: isFormDirty(),\r\n dirtyFields: formStateRef.current.dirtyFields,\r\n };\r\n const isChanged = (readFormStateRef.current.isDirty &&\r\n previousIsDirty !== state.isDirty) ||\r\n (readFormStateRef.current.dirtyFields &&\r\n isDirtyFieldExist !== get(formStateRef.current.dirtyFields, name));\r\n isChanged && shouldRender && updateFormState(state);\r\n return isChanged ? state : {};\r\n }\r\n return {};\r\n }, []);\r\n const executeValidation = useCallback(async (name, skipReRender) => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!fieldsRef.current[name]) {\r\n console.warn('📋 Field is missing with `name` attribute: ', name);\r\n return false;\r\n }\r\n }\r\n const error = (await validateField(fieldsRef, isValidateAllFieldCriteria, fieldsRef.current[name], shallowFieldsStateRef))[name];\r\n shouldRenderBaseOnError(name, error, skipReRender);\r\n return isUndefined(error);\r\n }, [shouldRenderBaseOnError, isValidateAllFieldCriteria]);\r\n const executeSchemaOrResolverValidation = useCallback(async (names) => {\r\n const { errors } = await resolverRef.current(getValues(), contextRef.current, isValidateAllFieldCriteria);\r\n const previousFormIsValid = formStateRef.current.isValid;\r\n if (Array.isArray(names)) {\r\n const isInputsValid = names\r\n .map((name) => {\r\n const error = get(errors, name);\r\n error\r\n ? set(formStateRef.current.errors, name, error)\r\n : unset(formStateRef.current.errors, name);\r\n return !error;\r\n })\r\n .every(Boolean);\r\n updateFormState({\r\n isValid: isEmptyObject(errors),\r\n isValidating: false,\r\n });\r\n return isInputsValid;\r\n }\r\n else {\r\n const error = get(errors, names);\r\n shouldRenderBaseOnError(names, error, previousFormIsValid !== isEmptyObject(errors), {}, isEmptyObject(errors));\r\n return !error;\r\n }\r\n }, [shouldRenderBaseOnError, isValidateAllFieldCriteria]);\r\n const trigger = useCallback(async (name) => {\r\n const fields = name || Object.keys(fieldsRef.current);\r\n updateIsValidating();\r\n if (resolverRef.current) {\r\n return executeSchemaOrResolverValidation(fields);\r\n }\r\n if (Array.isArray(fields)) {\r\n !name && (formStateRef.current.errors = {});\r\n const result = await Promise.all(fields.map(async (data) => await executeValidation(data, null)));\r\n updateFormState({\r\n isValidating: false,\r\n });\r\n return result.every(Boolean);\r\n }\r\n return await executeValidation(fields);\r\n }, [executeSchemaOrResolverValidation, executeValidation]);\r\n const setInternalValues = useCallback((name, value, { shouldDirty, shouldValidate }) => {\r\n const data = {};\r\n set(data, name, value);\r\n for (const fieldName of getPath(name, value)) {\r\n if (fieldsRef.current[fieldName]) {\r\n setFieldValue(fieldName, get(data, fieldName));\r\n shouldDirty && updateAndGetDirtyState(fieldName);\r\n shouldValidate && trigger(fieldName);\r\n }\r\n }\r\n }, [trigger, setFieldValue, updateAndGetDirtyState]);\r\n const setInternalValue = useCallback((name, value, config) => {\r\n !shouldUnregister &&\r\n !isPrimitive(value) &&\r\n set(shallowFieldsStateRef.current, name, Array.isArray(value) ? [...value] : Object.assign({}, value));\r\n if (fieldsRef.current[name]) {\r\n setFieldValue(name, value);\r\n config.shouldDirty && updateAndGetDirtyState(name);\r\n config.shouldValidate && trigger(name);\r\n }\r\n else if (!isPrimitive(value)) {\r\n setInternalValues(name, value, config);\r\n if (fieldArrayNamesRef.current.has(name)) {\r\n const parentName = getFieldArrayParentName(name) || name;\r\n set(fieldArrayDefaultValuesRef.current, name, value);\r\n resetFieldArrayFunctionRef.current[parentName]({\r\n [parentName]: get(fieldArrayDefaultValuesRef.current, parentName),\r\n });\r\n if ((readFormStateRef.current.isDirty ||\r\n readFormStateRef.current.dirtyFields) &&\r\n config.shouldDirty) {\r\n set(formStateRef.current.dirtyFields, name, setFieldArrayDirtyFields(value, get(defaultValuesRef.current, name, []), get(formStateRef.current.dirtyFields, name, [])));\r\n updateFormState({\r\n isDirty: !deepEqual(Object.assign(Object.assign({}, getValues()), { [name]: value }), defaultValuesRef.current),\r\n });\r\n }\r\n }\r\n }\r\n !shouldUnregister && set(shallowFieldsStateRef.current, name, value);\r\n }, [updateAndGetDirtyState, setFieldValue, setInternalValues]);\r\n const isFieldWatched = (name) => isWatchAllRef.current ||\r\n watchFieldsRef.current.has(name) ||\r\n watchFieldsRef.current.has((name.match(/\\w+/) || [])[0]);\r\n const renderWatchedInputs = (name) => {\r\n let found = true;\r\n if (!isEmptyObject(useWatchFieldsRef.current)) {\r\n for (const key in useWatchFieldsRef.current) {\r\n if (!name ||\r\n !useWatchFieldsRef.current[key].size ||\r\n useWatchFieldsRef.current[key].has(name) ||\r\n useWatchFieldsRef.current[key].has(getFieldArrayParentName(name))) {\r\n useWatchRenderFunctionsRef.current[key]();\r\n found = false;\r\n }\r\n }\r\n }\r\n return found;\r\n };\r\n function setValue(name, value, config) {\r\n setInternalValue(name, value, config || {});\r\n isFieldWatched(name) && updateFormState();\r\n renderWatchedInputs(name);\r\n }\r\n handleChangeRef.current = handleChangeRef.current\r\n ? handleChangeRef.current\r\n : async ({ type, target }) => {\r\n let name = target.name;\r\n const field = fieldsRef.current[name];\r\n let error;\r\n let isValid;\r\n if (field) {\r\n const isBlurEvent = type === EVENTS.BLUR;\r\n const shouldSkipValidation = skipValidation(Object.assign({ isBlurEvent,\r\n isReValidateOnChange,\r\n isReValidateOnBlur, isTouched: !!get(formStateRef.current.touched, name), isSubmitted: formStateRef.current.isSubmitted }, modeRef.current));\r\n let state = updateAndGetDirtyState(name, false);\r\n let shouldRender = !isEmptyObject(state) ||\r\n (!isBlurEvent && isFieldWatched(name));\r\n if (isBlurEvent &&\r\n !get(formStateRef.current.touched, name) &&\r\n readFormStateRef.current.touched) {\r\n set(formStateRef.current.touched, name, true);\r\n state = Object.assign(Object.assign({}, state), { touched: formStateRef.current.touched });\r\n }\r\n if (!shouldUnregister && isCheckBoxInput(target)) {\r\n set(shallowFieldsStateRef.current, name, getFieldValue(fieldsRef, name));\r\n }\r\n if (shouldSkipValidation) {\r\n !isBlurEvent && renderWatchedInputs(name);\r\n return ((!isEmptyObject(state) ||\r\n (shouldRender && isEmptyObject(state))) &&\r\n updateFormState(state));\r\n }\r\n updateIsValidating();\r\n if (resolverRef.current) {\r\n const { errors } = await resolverRef.current(getValues(), contextRef.current, isValidateAllFieldCriteria);\r\n const previousFormIsValid = formStateRef.current.isValid;\r\n error = get(errors, name);\r\n if (isCheckBoxInput(target) &&\r\n !error &&\r\n resolverRef.current) {\r\n const parentNodeName = getFieldArrayParentName(name);\r\n const currentError = get(errors, parentNodeName, {});\r\n currentError.type &&\r\n currentError.message &&\r\n (error = currentError);\r\n if (parentNodeName &&\r\n (currentError ||\r\n get(formStateRef.current.errors, parentNodeName))) {\r\n name = parentNodeName;\r\n }\r\n }\r\n isValid = isEmptyObject(errors);\r\n previousFormIsValid !== isValid && (shouldRender = true);\r\n }\r\n else {\r\n error = (await validateField(fieldsRef, isValidateAllFieldCriteria, field, shallowFieldsStateRef))[name];\r\n }\r\n !isBlurEvent && renderWatchedInputs(name);\r\n shouldRenderBaseOnError(name, error, shouldRender, state, isValid);\r\n }\r\n };\r\n function setFieldArrayDefaultValues(data) {\r\n if (!shouldUnregister) {\r\n let copy = cloneObject(data);\r\n for (const value of fieldArrayNamesRef.current) {\r\n if (isKey(value) && !copy[value]) {\r\n copy = Object.assign(Object.assign({}, copy), { [value]: [] });\r\n }\r\n }\r\n return copy;\r\n }\r\n return data;\r\n }\r\n function getValues(payload) {\r\n if (isString(payload)) {\r\n return getFieldValue(fieldsRef, payload, shallowFieldsStateRef);\r\n }\r\n if (Array.isArray(payload)) {\r\n const data = {};\r\n for (const name of payload) {\r\n set(data, name, getFieldValue(fieldsRef, name, shallowFieldsStateRef));\r\n }\r\n return data;\r\n }\r\n return setFieldArrayDefaultValues(getFieldsValues(fieldsRef, cloneObject(shallowFieldsStateRef.current), shouldUnregister));\r\n }\r\n const validateResolver = useCallback(async (values = {}) => {\r\n const newDefaultValues = isEmptyObject(fieldsRef.current)\r\n ? defaultValuesRef.current\r\n : {};\r\n const { errors } = (await resolverRef.current(Object.assign(Object.assign(Object.assign({}, newDefaultValues), getValues()), values), contextRef.current, isValidateAllFieldCriteria)) || {};\r\n const isValid = isEmptyObject(errors);\r\n formStateRef.current.isValid !== isValid &&\r\n updateFormState({\r\n isValid,\r\n });\r\n }, [isValidateAllFieldCriteria]);\r\n const removeFieldEventListener = useCallback((field, forceDelete) => {\r\n findRemovedFieldAndRemoveListener(fieldsRef, handleChangeRef.current, field, shallowFieldsStateRef, shouldUnregister, forceDelete);\r\n if (shouldUnregister) {\r\n unset(validFieldsRef.current, field.ref.name);\r\n unset(fieldsWithValidationRef.current, field.ref.name);\r\n }\r\n }, [shouldUnregister]);\r\n const updateWatchedValue = useCallback((name) => {\r\n if (isWatchAllRef.current) {\r\n updateFormState();\r\n }\r\n else {\r\n for (const watchField of watchFieldsRef.current) {\r\n if (watchField.startsWith(name)) {\r\n updateFormState();\r\n break;\r\n }\r\n }\r\n renderWatchedInputs(name);\r\n }\r\n }, []);\r\n const removeFieldEventListenerAndRef = useCallback((field, forceDelete) => {\r\n if (field) {\r\n removeFieldEventListener(field, forceDelete);\r\n if (shouldUnregister && !compact(field.options || []).length) {\r\n unset(formStateRef.current.errors, field.ref.name);\r\n set(formStateRef.current.dirtyFields, field.ref.name, true);\r\n updateFormState({\r\n isDirty: isFormDirty(),\r\n });\r\n readFormStateRef.current.isValid &&\r\n resolverRef.current &&\r\n validateResolver();\r\n updateWatchedValue(field.ref.name);\r\n }\r\n }\r\n }, [validateResolver, removeFieldEventListener]);\r\n function clearErrors(name) {\r\n name &&\r\n (Array.isArray(name) ? name : [name]).forEach((inputName) => fieldsRef.current[inputName] && isKey(inputName)\r\n ? delete formStateRef.current.errors[inputName]\r\n : unset(formStateRef.current.errors, inputName));\r\n updateFormState({\r\n errors: name ? formStateRef.current.errors : {},\r\n });\r\n }\r\n function setError(name, error) {\r\n const ref = (fieldsRef.current[name] || {}).ref;\r\n set(formStateRef.current.errors, name, Object.assign(Object.assign({}, error), { ref }));\r\n updateFormState({\r\n isValid: false,\r\n });\r\n error.shouldFocus && ref && ref.focus && ref.focus();\r\n }\r\n const watchInternal = useCallback((fieldNames, defaultValue, watchId) => {\r\n const watchFields = watchId\r\n ? useWatchFieldsRef.current[watchId]\r\n : watchFieldsRef.current;\r\n let fieldValues = getFieldsValues(fieldsRef, cloneObject(shallowFieldsStateRef.current), shouldUnregister, false, fieldNames);\r\n if (isString(fieldNames)) {\r\n const parentNodeName = getFieldArrayParentName(fieldNames) || fieldNames;\r\n if (fieldArrayNamesRef.current.has(parentNodeName)) {\r\n fieldValues = Object.assign(Object.assign({}, fieldArrayValuesRef.current), fieldValues);\r\n }\r\n return assignWatchFields(fieldValues, fieldNames, watchFields, isUndefined(get(defaultValuesRef.current, fieldNames))\r\n ? defaultValue\r\n : get(defaultValuesRef.current, fieldNames), true);\r\n }\r\n const combinedDefaultValues = isUndefined(defaultValue)\r\n ? defaultValuesRef.current\r\n : defaultValue;\r\n if (Array.isArray(fieldNames)) {\r\n return fieldNames.reduce((previous, name) => (Object.assign(Object.assign({}, previous), { [name]: assignWatchFields(fieldValues, name, watchFields, combinedDefaultValues) })), {});\r\n }\r\n isWatchAllRef.current = isUndefined(watchId);\r\n return transformToNestObject((!isEmptyObject(fieldValues) && fieldValues) ||\r\n combinedDefaultValues);\r\n }, []);\r\n function watch(fieldNames, defaultValue) {\r\n return watchInternal(fieldNames, defaultValue);\r\n }\r\n function unregister(name) {\r\n for (const fieldName of Array.isArray(name) ? name : [name]) {\r\n removeFieldEventListenerAndRef(fieldsRef.current[fieldName], true);\r\n }\r\n }\r\n function registerFieldRef(ref, options = {}) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!ref.name) {\r\n return console.warn('📋 Field is missing `name` attribute', ref, `https://react-hook-form.com/api#useForm`);\r\n }\r\n if (fieldArrayNamesRef.current.has(ref.name.split(/\\[\\d+\\]$/)[0]) &&\r\n !RegExp(`^${ref.name.split(/\\[\\d+\\]$/)[0]}[\\\\d+].\\\\w+`\r\n .replace(/\\[/g, '\\\\[')\r\n .replace(/\\]/g, '\\\\]')).test(ref.name)) {\r\n return console.warn('📋 `name` prop should be in object shape: name=\"test[index].name\"', ref, 'https://react-hook-form.com/api#useFieldArray');\r\n }\r\n }\r\n const { name, type, value } = ref;\r\n const fieldRefAndValidationOptions = Object.assign({ ref }, options);\r\n const fields = fieldsRef.current;\r\n const isRadioOrCheckbox = isRadioOrCheckboxFunction(ref);\r\n const isFieldArray = isNameInFieldArray(fieldArrayNamesRef.current, name);\r\n const compareRef = (currentRef) => isWeb && (!isHTMLElement(ref) || currentRef === ref);\r\n let field = fields[name];\r\n let isEmptyDefaultValue = true;\r\n let defaultValue;\r\n if (field &&\r\n (isRadioOrCheckbox\r\n ? Array.isArray(field.options) &&\r\n compact(field.options).find((option) => {\r\n return value === option.ref.value && compareRef(option.ref);\r\n })\r\n : compareRef(field.ref))) {\r\n fields[name] = Object.assign(Object.assign({}, field), options);\r\n return;\r\n }\r\n if (type) {\r\n field = isRadioOrCheckbox\r\n ? Object.assign({ options: [\r\n ...compact((field && field.options) || []),\r\n {\r\n ref,\r\n },\r\n ], ref: { type, name } }, options) : Object.assign({}, fieldRefAndValidationOptions);\r\n }\r\n else {\r\n field = fieldRefAndValidationOptions;\r\n }\r\n fields[name] = field;\r\n const isEmptyUnmountFields = isUndefined(get(shallowFieldsStateRef.current, name));\r\n if (!isEmptyObject(defaultValuesRef.current) || !isEmptyUnmountFields) {\r\n defaultValue = get(isEmptyUnmountFields\r\n ? defaultValuesRef.current\r\n : shallowFieldsStateRef.current, name);\r\n isEmptyDefaultValue = isUndefined(defaultValue);\r\n if (!isEmptyDefaultValue && !isFieldArray) {\r\n setFieldValue(name, defaultValue);\r\n }\r\n }\r\n if (!isEmptyObject(options)) {\r\n set(fieldsWithValidationRef.current, name, true);\r\n if (!isOnSubmit && readFormStateRef.current.isValid) {\r\n validateField(fieldsRef, isValidateAllFieldCriteria, field, shallowFieldsStateRef).then((error) => {\r\n const previousFormIsValid = formStateRef.current.isValid;\r\n isEmptyObject(error)\r\n ? set(validFieldsRef.current, name, true)\r\n : unset(validFieldsRef.current, name);\r\n previousFormIsValid !== isEmptyObject(error) && updateFormState();\r\n });\r\n }\r\n }\r\n if (shouldUnregister && !(isFieldArray && isEmptyDefaultValue)) {\r\n !isFieldArray && unset(formStateRef.current.dirtyFields, name);\r\n }\r\n if (type) {\r\n attachEventListeners(isRadioOrCheckbox && field.options\r\n ? field.options[field.options.length - 1]\r\n : field, isRadioOrCheckbox || isSelectInput(ref), handleChangeRef.current);\r\n }\r\n }\r\n function register(refOrRegisterOptions, options) {\r\n if (!isWindowUndefined) {\r\n if (isString(refOrRegisterOptions)) {\r\n registerFieldRef({ name: refOrRegisterOptions }, options);\r\n }\r\n else if (isObject(refOrRegisterOptions) &&\r\n 'name' in refOrRegisterOptions) {\r\n registerFieldRef(refOrRegisterOptions, options);\r\n }\r\n else {\r\n return (ref) => ref && registerFieldRef(ref, refOrRegisterOptions);\r\n }\r\n }\r\n }\r\n const handleSubmit = useCallback((onValid, onInvalid) => async (e) => {\r\n if (e && e.preventDefault) {\r\n e.preventDefault();\r\n e.persist();\r\n }\r\n let fieldErrors = {};\r\n let fieldValues = setFieldArrayDefaultValues(getFieldsValues(fieldsRef, cloneObject(shallowFieldsStateRef.current), shouldUnregister, true));\r\n readFormStateRef.current.isSubmitting &&\r\n updateFormState({\r\n isSubmitting: true,\r\n });\r\n try {\r\n if (resolverRef.current) {\r\n const { errors, values } = await resolverRef.current(fieldValues, contextRef.current, isValidateAllFieldCriteria);\r\n formStateRef.current.errors = fieldErrors = errors;\r\n fieldValues = values;\r\n }\r\n else {\r\n for (const field of Object.values(fieldsRef.current)) {\r\n if (field) {\r\n const { name } = field.ref;\r\n const fieldError = await validateField(fieldsRef, isValidateAllFieldCriteria, field, shallowFieldsStateRef);\r\n if (fieldError[name]) {\r\n set(fieldErrors, name, fieldError[name]);\r\n unset(validFieldsRef.current, name);\r\n }\r\n else if (get(fieldsWithValidationRef.current, name)) {\r\n unset(formStateRef.current.errors, name);\r\n set(validFieldsRef.current, name, true);\r\n }\r\n }\r\n }\r\n }\r\n if (isEmptyObject(fieldErrors) &&\r\n Object.keys(formStateRef.current.errors).every((name) => name in fieldsRef.current)) {\r\n updateFormState({\r\n errors: {},\r\n isSubmitting: true,\r\n });\r\n await onValid(fieldValues, e);\r\n }\r\n else {\r\n formStateRef.current.errors = Object.assign(Object.assign({}, formStateRef.current.errors), fieldErrors);\r\n onInvalid && (await onInvalid(formStateRef.current.errors, e));\r\n shouldFocusError &&\r\n focusOnErrorField(fieldsRef.current, formStateRef.current.errors);\r\n }\r\n }\r\n finally {\r\n formStateRef.current.isSubmitting = false;\r\n updateFormState({\r\n isSubmitted: true,\r\n isSubmitting: false,\r\n isSubmitSuccessful: isEmptyObject(formStateRef.current.errors),\r\n submitCount: formStateRef.current.submitCount + 1,\r\n });\r\n }\r\n }, [shouldFocusError, isValidateAllFieldCriteria]);\r\n const resetRefs = ({ errors, isDirty, isSubmitted, touched, isValid, submitCount, dirtyFields, }) => {\r\n if (!isValid) {\r\n validFieldsRef.current = {};\r\n fieldsWithValidationRef.current = {};\r\n }\r\n fieldArrayDefaultValuesRef.current = {};\r\n watchFieldsRef.current = new Set();\r\n isWatchAllRef.current = false;\r\n updateFormState({\r\n submitCount: submitCount ? formStateRef.current.submitCount : 0,\r\n isDirty: isDirty ? formStateRef.current.isDirty : false,\r\n isSubmitted: isSubmitted ? formStateRef.current.isSubmitted : false,\r\n isValid: isValid ? formStateRef.current.isValid : false,\r\n dirtyFields: dirtyFields ? formStateRef.current.dirtyFields : {},\r\n touched: touched ? formStateRef.current.touched : {},\r\n errors: errors ? formStateRef.current.errors : {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n });\r\n };\r\n const reset = (values, omitResetState = {}) => {\r\n if (isWeb) {\r\n for (const field of Object.values(fieldsRef.current)) {\r\n if (field) {\r\n const { ref, options } = field;\r\n const inputRef = isRadioOrCheckboxFunction(ref) && Array.isArray(options)\r\n ? options[0].ref\r\n : ref;\r\n if (isHTMLElement(inputRef)) {\r\n try {\r\n inputRef.closest('form').reset();\r\n break;\r\n }\r\n catch (_a) { }\r\n }\r\n }\r\n }\r\n }\r\n fieldsRef.current = {};\r\n defaultValuesRef.current = Object.assign({}, (values || defaultValuesRef.current));\r\n values && renderWatchedInputs('');\r\n Object.values(resetFieldArrayFunctionRef.current).forEach((resetFieldArray) => isFunction(resetFieldArray) && resetFieldArray());\r\n shallowFieldsStateRef.current = shouldUnregister\r\n ? {}\r\n : cloneObject(values || defaultValuesRef.current);\r\n resetRefs(omitResetState);\r\n };\r\n useEffect(() => {\r\n resolver && readFormStateRef.current.isValid && validateResolver();\r\n observerRef.current =\r\n observerRef.current || !isWeb\r\n ? observerRef.current\r\n : onDomRemove(fieldsRef, removeFieldEventListenerAndRef);\r\n }, [removeFieldEventListenerAndRef, defaultValuesRef.current]);\r\n useEffect(() => () => {\r\n observerRef.current && observerRef.current.disconnect();\r\n isUnMount.current = true;\r\n if (process.env.NODE_ENV !== 'production') {\r\n return;\r\n }\r\n Object.values(fieldsRef.current).forEach((field) => removeFieldEventListenerAndRef(field, true));\r\n }, []);\r\n if (!resolver && readFormStateRef.current.isValid) {\r\n formState.isValid =\r\n deepEqual(validFieldsRef.current, fieldsWithValidationRef.current) &&\r\n isEmptyObject(formStateRef.current.errors);\r\n }\r\n const commonProps = {\r\n trigger,\r\n setValue: useCallback(setValue, [setInternalValue, trigger]),\r\n getValues: useCallback(getValues, []),\r\n register: useCallback(register, [defaultValuesRef.current]),\r\n unregister: useCallback(unregister, []),\r\n formState: isProxyEnabled\r\n ? new Proxy(formState, {\r\n get: (obj, prop) => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (prop === 'isValid' && isOnSubmit) {\r\n console.warn('📋 `formState.isValid` is applicable with `onTouched`, `onChange` or `onBlur` mode. https://react-hook-form.com/api#formState');\r\n }\r\n }\r\n if (prop in obj) {\r\n readFormStateRef.current[prop] = true;\r\n return obj[prop];\r\n }\r\n return undefined;\r\n },\r\n })\r\n : formState,\r\n };\r\n const control = useMemo(() => (Object.assign({ isFormDirty,\r\n updateWatchedValue,\r\n shouldUnregister,\r\n updateFormState,\r\n removeFieldEventListener,\r\n watchInternal, mode: modeRef.current, reValidateMode: {\r\n isReValidateOnBlur,\r\n isReValidateOnChange,\r\n }, validateResolver: resolver ? validateResolver : undefined, fieldsRef,\r\n resetFieldArrayFunctionRef,\r\n useWatchFieldsRef,\r\n useWatchRenderFunctionsRef,\r\n fieldArrayDefaultValuesRef,\r\n validFieldsRef,\r\n fieldsWithValidationRef,\r\n fieldArrayNamesRef,\r\n readFormStateRef,\r\n formStateRef,\r\n defaultValuesRef,\r\n shallowFieldsStateRef,\r\n fieldArrayValuesRef }, commonProps)), [\r\n defaultValuesRef.current,\r\n updateWatchedValue,\r\n shouldUnregister,\r\n removeFieldEventListener,\r\n watchInternal,\r\n ]);\r\n return Object.assign({ watch,\r\n control,\r\n handleSubmit, reset: useCallback(reset, []), clearErrors: useCallback(clearErrors, []), setError: useCallback(setError, []), errors: formState.errors }, commonProps);\r\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nconst FormContext = createContext(null);\r\nFormContext.displayName = 'RHFContext';\r\nconst useFormContext = () => useContext(FormContext);\r\nconst FormProvider = (_a) => {\r\n var { children } = _a, props = __rest(_a, [\"children\"]);\r\n return (createElement(FormContext.Provider, { value: Object.assign({}, props) }, children));\r\n};\n\nvar generateId = () => {\r\n const d = typeof performance === UNDEFINED ? Date.now() : performance.now() * 1000;\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n const r = (Math.random() * 16 + d) % 16 | 0;\r\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\r\n });\r\n};\n\nfunction removeAtIndexes(data, indexes) {\r\n let i = 0;\r\n const temp = [...data];\r\n for (const index of indexes) {\r\n temp.splice(index - i, 1);\r\n i++;\r\n }\r\n return compact(temp).length ? temp : [];\r\n}\r\nvar removeArrayAt = (data, index) => isUndefined(index)\r\n ? []\r\n : removeAtIndexes(data, (Array.isArray(index) ? index : [index]).sort((a, b) => a - b));\n\nvar moveArrayAt = (data, from, to) => {\r\n if (Array.isArray(data)) {\r\n if (isUndefined(data[to])) {\r\n data[to] = undefined;\r\n }\r\n data.splice(to, 0, data.splice(from, 1)[0]);\r\n return data;\r\n }\r\n return [];\r\n};\n\nvar swapArrayAt = (data, indexA, indexB) => {\r\n const temp = [data[indexB], data[indexA]];\r\n data[indexA] = temp[0];\r\n data[indexB] = temp[1];\r\n};\n\nfunction prepend(data, value) {\r\n return [...(Array.isArray(value) ? value : [value || undefined]), ...data];\r\n}\n\nfunction insert(data, index, value) {\r\n return [\r\n ...data.slice(0, index),\r\n ...(Array.isArray(value) ? value : [value || undefined]),\r\n ...data.slice(index),\r\n ];\r\n}\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? Array(value.length).fill(undefined) : undefined;\n\nvar fillBooleanArray = (value) => (Array.isArray(value) ? value : [value]).map((data) => {\r\n if (isObject(data)) {\r\n const object = {};\r\n for (const key in data) {\r\n object[key] = true;\r\n }\r\n return object;\r\n }\r\n return true;\r\n});\n\nconst mapIds = (values = [], keyName, skipWarn) => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!skipWarn) {\r\n for (const value of values) {\r\n if (typeof value === 'object') {\r\n if (keyName in value) {\r\n console.warn(`📋 useFieldArray fieldValues contain the keyName \\`${keyName}\\` which is reserved for use by useFieldArray. https://react-hook-form.com/api#useFieldArray`);\r\n break;\r\n }\r\n }\r\n else {\r\n console.warn(`📋 useFieldArray input's name should be in object shape instead of flat array. https://react-hook-form.com/api#useFieldArray`);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return values.map((value) => (Object.assign({ [keyName]: value[keyName] || generateId() }, value)));\r\n};\r\nconst useFieldArray = ({ control, name, keyName = 'id', }) => {\r\n const methods = useFormContext();\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!control && !methods) {\r\n throw new Error('📋 useFieldArray is missing `control` prop. https://react-hook-form.com/api#useFieldArray');\r\n }\r\n }\r\n const focusIndexRef = useRef(-1);\r\n const isUnMount = useRef(false);\r\n const { isFormDirty, updateWatchedValue, resetFieldArrayFunctionRef, fieldArrayNamesRef, fieldsRef, defaultValuesRef, removeFieldEventListener, formStateRef, shallowFieldsStateRef, updateFormState, readFormStateRef, validFieldsRef, fieldsWithValidationRef, fieldArrayDefaultValuesRef, validateResolver, getValues, shouldUnregister, fieldArrayValuesRef, } = control || methods.control;\r\n const getDefaultValues = (values) => get(shouldUnregister ? values : shallowFieldsStateRef.current, name, []);\r\n const fieldArrayParentName = getFieldArrayParentName(name);\r\n const memoizedDefaultValues = useRef([\r\n ...(get(fieldArrayDefaultValuesRef.current, fieldArrayParentName)\r\n ? getDefaultValues(fieldArrayDefaultValuesRef.current)\r\n : getDefaultValues(defaultValuesRef.current)),\r\n ]);\r\n const [fields, setFields] = useState(mapIds(memoizedDefaultValues.current, keyName));\r\n set(fieldArrayValuesRef.current, name, compact(fields));\r\n const omitKey = (fields) => fields.map((_a = {}) => {\r\n var _b = keyName, omitted = _a[_b], rest = __rest(_a, [typeof _b === \"symbol\" ? _b : _b + \"\"]);\r\n return rest;\r\n });\r\n fieldArrayNamesRef.current.add(name);\r\n const getFieldArrayValue = useCallback(() => get(fieldArrayValuesRef.current, name, []), [name]);\r\n const getCurrentFieldsValues = () => mapIds(get(getValues(), name, getFieldArrayValue()).map((item, index) => (Object.assign(Object.assign({}, getFieldArrayValue()[index]), item))), keyName, true);\r\n fieldArrayNamesRef.current.add(name);\r\n if (fieldArrayParentName &&\r\n !get(fieldArrayDefaultValuesRef.current, fieldArrayParentName)) {\r\n set(fieldArrayDefaultValuesRef.current, fieldArrayParentName, cloneObject(get(defaultValuesRef.current, fieldArrayParentName)));\r\n }\r\n const setFieldAndValidState = (fieldsValues) => {\r\n setFields(fieldsValues);\r\n set(fieldArrayValuesRef.current, name, fieldsValues);\r\n if (readFormStateRef.current.isValid && validateResolver) {\r\n const values = getValues();\r\n set(values, name, fieldsValues);\r\n validateResolver(values);\r\n }\r\n };\r\n const resetFields = () => {\r\n for (const key in fieldsRef.current) {\r\n if (isMatchFieldArrayName(key, name)) {\r\n removeFieldEventListener(fieldsRef.current[key], true);\r\n delete fieldsRef.current[key];\r\n }\r\n }\r\n };\r\n const cleanup = (ref) => !compact(get(ref, name, [])).length && unset(ref, name);\r\n const updateDirtyFieldsWithDefaultValues = (updatedFieldArrayValues) => {\r\n if (updatedFieldArrayValues) {\r\n set(formStateRef.current.dirtyFields, name, setFieldArrayDirtyFields(omitKey(updatedFieldArrayValues), get(defaultValuesRef.current, name, []), get(formStateRef.current.dirtyFields, name, [])));\r\n }\r\n };\r\n const batchStateUpdate = (method, args, updatedFieldValues, updatedFormValues = [], shouldSet = true, shouldUpdateValid = false) => {\r\n if (get(shallowFieldsStateRef.current, name)) {\r\n const output = method(get(shallowFieldsStateRef.current, name), args.argA, args.argB);\r\n shouldSet && set(shallowFieldsStateRef.current, name, output);\r\n }\r\n if (get(fieldArrayDefaultValuesRef.current, name)) {\r\n const output = method(get(fieldArrayDefaultValuesRef.current, name), args.argA, args.argB);\r\n shouldSet && set(fieldArrayDefaultValuesRef.current, name, output);\r\n }\r\n if (Array.isArray(get(formStateRef.current.errors, name))) {\r\n const output = method(get(formStateRef.current.errors, name), args.argA, args.argB);\r\n shouldSet && set(formStateRef.current.errors, name, output);\r\n cleanup(formStateRef.current.errors);\r\n }\r\n if (readFormStateRef.current.touched &&\r\n get(formStateRef.current.touched, name)) {\r\n const output = method(get(formStateRef.current.touched, name), args.argA, args.argB);\r\n shouldSet && set(formStateRef.current.touched, name, output);\r\n cleanup(formStateRef.current.touched);\r\n }\r\n if (readFormStateRef.current.dirtyFields ||\r\n readFormStateRef.current.isDirty) {\r\n set(formStateRef.current.dirtyFields, name, setFieldArrayDirtyFields(omitKey(updatedFormValues), get(defaultValuesRef.current, name, []), get(formStateRef.current.dirtyFields, name, [])));\r\n updateDirtyFieldsWithDefaultValues(updatedFieldValues);\r\n cleanup(formStateRef.current.dirtyFields);\r\n }\r\n if (shouldUpdateValid &&\r\n readFormStateRef.current.isValid &&\r\n !validateResolver) {\r\n set(validFieldsRef.current, name, method(get(validFieldsRef.current, name, []), args.argA));\r\n cleanup(validFieldsRef.current);\r\n set(fieldsWithValidationRef.current, name, method(get(fieldsWithValidationRef.current, name, []), args.argA));\r\n cleanup(fieldsWithValidationRef.current);\r\n }\r\n if (!isUnMount.current && readFormStateRef.current.isDirty) {\r\n updateFormState({\r\n isDirty: isFormDirty(name, omitKey(updatedFormValues)),\r\n });\r\n }\r\n };\r\n const append = (value, shouldFocus = true) => {\r\n const appendValue = Array.isArray(value) ? value : [value];\r\n const updateFormValues = [\r\n ...getCurrentFieldsValues(),\r\n ...mapIds(appendValue, keyName),\r\n ];\r\n setFieldAndValidState(updateFormValues);\r\n if (readFormStateRef.current.dirtyFields ||\r\n readFormStateRef.current.isDirty) {\r\n updateDirtyFieldsWithDefaultValues(updateFormValues);\r\n updateFormState({\r\n isDirty: true,\r\n dirtyFields: formStateRef.current.dirtyFields,\r\n });\r\n }\r\n !shouldUnregister &&\r\n set(shallowFieldsStateRef.current, name, [\r\n ...(get(shallowFieldsStateRef.current, name) || []),\r\n ...cloneObject(appendValue),\r\n ]);\r\n focusIndexRef.current = shouldFocus\r\n ? get(fieldArrayValuesRef.current, name).length - 1\r\n : -1;\r\n };\r\n const prepend$1 = (value, shouldFocus = true) => {\r\n const emptyArray = fillEmptyArray(value);\r\n const updatedFieldArrayValues = prepend(getCurrentFieldsValues(), mapIds(Array.isArray(value) ? value : [value], keyName));\r\n setFieldAndValidState(updatedFieldArrayValues);\r\n resetFields();\r\n batchStateUpdate(prepend, {\r\n argA: emptyArray,\r\n argC: fillBooleanArray(value),\r\n }, updatedFieldArrayValues);\r\n focusIndexRef.current = shouldFocus ? 0 : -1;\r\n };\r\n const remove = (index) => {\r\n const fieldValues = getCurrentFieldsValues();\r\n const updatedFieldValues = removeArrayAt(fieldValues, index);\r\n setFieldAndValidState(updatedFieldValues);\r\n resetFields();\r\n batchStateUpdate(removeArrayAt, {\r\n argA: index,\r\n argC: index,\r\n }, updatedFieldValues, removeArrayAt(fieldValues, index), true, true);\r\n };\r\n const insert$1 = (index, value, shouldFocus = true) => {\r\n const emptyArray = fillEmptyArray(value);\r\n const fieldValues = getCurrentFieldsValues();\r\n const updatedFieldArrayValues = insert(fieldValues, index, mapIds(Array.isArray(value) ? value : [value], keyName));\r\n setFieldAndValidState(updatedFieldArrayValues);\r\n resetFields();\r\n batchStateUpdate(insert, {\r\n argA: index,\r\n argB: emptyArray,\r\n argC: index,\r\n argD: fillBooleanArray(value),\r\n }, updatedFieldArrayValues, insert(fieldValues, index));\r\n focusIndexRef.current = shouldFocus ? index : -1;\r\n };\r\n const swap = (indexA, indexB) => {\r\n const fieldValues = getCurrentFieldsValues();\r\n swapArrayAt(fieldValues, indexA, indexB);\r\n resetFields();\r\n setFieldAndValidState([...fieldValues]);\r\n batchStateUpdate(swapArrayAt, {\r\n argA: indexA,\r\n argB: indexB,\r\n argC: indexA,\r\n argD: indexB,\r\n }, undefined, fieldValues, false);\r\n };\r\n const move = (from, to) => {\r\n const fieldValues = getCurrentFieldsValues();\r\n moveArrayAt(fieldValues, from, to);\r\n resetFields();\r\n setFieldAndValidState([...fieldValues]);\r\n batchStateUpdate(moveArrayAt, {\r\n argA: from,\r\n argB: to,\r\n argC: from,\r\n argD: to,\r\n }, undefined, fieldValues, false);\r\n };\r\n useEffect(() => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!name) {\r\n console.warn('📋 useFieldArray is missing `name` attribute. https://react-hook-form.com/api#useFieldArray');\r\n }\r\n }\r\n const defaultValues = get(fieldArrayDefaultValuesRef.current, name);\r\n if (defaultValues && fields.length < defaultValues.length) {\r\n set(fieldArrayDefaultValuesRef.current, name, defaultValues.slice(1));\r\n }\r\n updateWatchedValue(name);\r\n if (focusIndexRef.current > -1) {\r\n for (const key in fieldsRef.current) {\r\n const field = fieldsRef.current[key];\r\n if (key.startsWith(`${name}[${focusIndexRef.current}]`) &&\r\n field.ref.focus) {\r\n field.ref.focus();\r\n break;\r\n }\r\n }\r\n }\r\n focusIndexRef.current = -1;\r\n }, [fields, name]);\r\n useEffect(() => {\r\n const resetFunctions = resetFieldArrayFunctionRef.current;\r\n const fieldArrayNames = fieldArrayNamesRef.current;\r\n if (!getFieldArrayParentName(name)) {\r\n resetFunctions[name] = (data) => {\r\n resetFields();\r\n !data && unset(fieldArrayDefaultValuesRef.current, name);\r\n unset(shallowFieldsStateRef.current, name);\r\n memoizedDefaultValues.current = get(data || defaultValuesRef.current, name);\r\n if (!isUnMount.current) {\r\n setFields(mapIds(memoizedDefaultValues.current, keyName));\r\n }\r\n };\r\n }\r\n return () => {\r\n isUnMount.current = true;\r\n shouldUnregister && remove();\r\n resetFields();\r\n delete resetFunctions[name];\r\n unset(fieldArrayValuesRef.current, name);\r\n fieldArrayNames.delete(name);\r\n };\r\n }, []);\r\n return {\r\n swap: useCallback(swap, [name]),\r\n move: useCallback(move, [name]),\r\n prepend: useCallback(prepend$1, [name]),\r\n append: useCallback(append, [name]),\r\n remove: useCallback(remove, [name]),\r\n insert: useCallback(insert$1, [name]),\r\n fields: compact(fields),\r\n };\r\n};\n\nvar getInputValue = (event) => isPrimitive(event) ||\r\n !isObject(event.target) ||\r\n (isObject(event.target) && !event.type)\r\n ? event\r\n : isUndefined(event.target.value)\r\n ? event.target.checked\r\n : event.target.value;\n\nfunction useController({ name, rules, defaultValue, control, onFocus, }) {\r\n const methods = useFormContext();\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!control && !methods) {\r\n throw new Error('📋 Controller is missing `control` prop. https://react-hook-form.com/api#Controller');\r\n }\r\n }\r\n const { defaultValuesRef, setValue, register, unregister, trigger, mode, reValidateMode: { isReValidateOnBlur, isReValidateOnChange }, formState, formStateRef: { current: { isSubmitted, touched, errors }, }, updateFormState, readFormStateRef, fieldsRef, fieldArrayNamesRef, shallowFieldsStateRef, } = control || methods.control;\r\n const isNotFieldArray = !isNameInFieldArray(fieldArrayNamesRef.current, name);\r\n const getInitialValue = () => !isUndefined(get(shallowFieldsStateRef.current, name)) && isNotFieldArray\r\n ? get(shallowFieldsStateRef.current, name)\r\n : isUndefined(defaultValue)\r\n ? get(defaultValuesRef.current, name)\r\n : defaultValue;\r\n const [value, setInputStateValue] = useState(getInitialValue());\r\n const valueRef = useRef(value);\r\n const ref = useRef({\r\n focus: () => null,\r\n });\r\n const onFocusRef = useRef(onFocus ||\r\n (() => {\r\n if (isFunction(ref.current.focus)) {\r\n ref.current.focus();\r\n }\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!isFunction(ref.current.focus)) {\r\n console.warn(`📋 'ref' from Controller render prop must be attached to a React component or a DOM Element whose ref provides a 'focus()' method`);\r\n }\r\n }\r\n }));\r\n const shouldValidate = useCallback((isBlurEvent) => !skipValidation(Object.assign({ isBlurEvent,\r\n isReValidateOnBlur,\r\n isReValidateOnChange,\r\n isSubmitted, isTouched: !!get(touched, name) }, mode)), [\r\n isReValidateOnBlur,\r\n isReValidateOnChange,\r\n isSubmitted,\r\n touched,\r\n name,\r\n mode,\r\n ]);\r\n const commonTask = useCallback(([event]) => {\r\n const data = getInputValue(event);\r\n setInputStateValue(data);\r\n valueRef.current = data;\r\n return data;\r\n }, []);\r\n const registerField = useCallback((shouldUpdateValue) => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!name) {\r\n return console.warn('📋 Field is missing `name` prop. https://react-hook-form.com/api#Controller');\r\n }\r\n }\r\n if (fieldsRef.current[name]) {\r\n fieldsRef.current[name] = Object.assign({ ref: fieldsRef.current[name].ref }, rules);\r\n }\r\n else {\r\n register(Object.defineProperties({\r\n name,\r\n focus: onFocusRef.current,\r\n }, {\r\n value: {\r\n set(data) {\r\n setInputStateValue(data);\r\n valueRef.current = data;\r\n },\r\n get() {\r\n return valueRef.current;\r\n },\r\n },\r\n }), rules);\r\n shouldUpdateValue = isUndefined(get(defaultValuesRef.current, name));\r\n }\r\n shouldUpdateValue &&\r\n isNotFieldArray &&\r\n setInputStateValue(getInitialValue());\r\n }, [rules, name, register]);\r\n useEffect(() => () => unregister(name), [name]);\r\n useEffect(() => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (isUndefined(value)) {\r\n console.warn(`📋 ${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)`);\r\n }\r\n if (!isNotFieldArray && isUndefined(defaultValue)) {\r\n console.warn('📋 Controller is missing `defaultValue` prop when using `useFieldArray`. https://react-hook-form.com/api#Controller');\r\n }\r\n }\r\n registerField();\r\n }, [registerField]);\r\n useEffect(() => {\r\n !fieldsRef.current[name] && registerField(true);\r\n });\r\n const onBlur = useCallback(() => {\r\n if (readFormStateRef.current.touched && !get(touched, name)) {\r\n set(touched, name, true);\r\n updateFormState({\r\n touched,\r\n });\r\n }\r\n shouldValidate(true) && trigger(name);\r\n }, [name, updateFormState, shouldValidate, trigger, readFormStateRef]);\r\n const onChange = useCallback((...event) => setValue(name, commonTask(event), {\r\n shouldValidate: shouldValidate(),\r\n shouldDirty: true,\r\n }), [setValue, name, shouldValidate]);\r\n return {\r\n field: {\r\n onChange,\r\n onBlur,\r\n name,\r\n value,\r\n ref,\r\n },\r\n meta: Object.defineProperties({\r\n invalid: !!get(errors, name),\r\n }, {\r\n isDirty: {\r\n get() {\r\n return !!get(formState.dirtyFields, name);\r\n },\r\n },\r\n isTouched: {\r\n get() {\r\n return !!get(formState.touched, name);\r\n },\r\n },\r\n }),\r\n };\r\n}\n\nfunction useWatch({ control, name, defaultValue, }) {\r\n const methods = useFormContext();\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!control && !methods) {\r\n throw new Error('📋 useWatch is missing `control` prop. https://react-hook-form.com/api#useWatch');\r\n }\r\n }\r\n const { useWatchFieldsRef, useWatchRenderFunctionsRef, watchInternal, defaultValuesRef, } = control || methods.control;\r\n const updateValue = useState()[1];\r\n const idRef = useRef();\r\n const defaultValueRef = useRef(defaultValue);\r\n useEffect(() => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (name === '') {\r\n console.warn('📋 useWatch is missing `name` attribute. https://react-hook-form.com/api#useWatch');\r\n }\r\n }\r\n const id = (idRef.current = generateId());\r\n const watchFieldsHookRender = useWatchRenderFunctionsRef.current;\r\n const watchFieldsHook = useWatchFieldsRef.current;\r\n watchFieldsHook[id] = new Set();\r\n watchFieldsHookRender[id] = () => updateValue({});\r\n watchInternal(name, defaultValueRef.current, id);\r\n return () => {\r\n delete watchFieldsHook[id];\r\n delete watchFieldsHookRender[id];\r\n };\r\n }, [\r\n name,\r\n useWatchRenderFunctionsRef,\r\n useWatchFieldsRef,\r\n watchInternal,\r\n defaultValueRef,\r\n ]);\r\n return idRef.current\r\n ? watchInternal(name, defaultValueRef.current, idRef.current)\r\n : isUndefined(defaultValue)\r\n ? isString(name)\r\n ? get(defaultValuesRef.current, name)\r\n : Array.isArray(name)\r\n ? name.reduce((previous, inputName) => (Object.assign(Object.assign({}, previous), { [inputName]: get(defaultValuesRef.current, inputName) })), {})\r\n : defaultValuesRef.current\r\n : defaultValue;\r\n}\n\nconst Controller = (props) => {\r\n const { rules, as, render, defaultValue, control, onFocus } = props, rest = __rest(props, [\"rules\", \"as\", \"render\", \"defaultValue\", \"control\", \"onFocus\"]);\r\n const { field, meta } = useController(props);\r\n const componentProps = Object.assign(Object.assign({}, rest), field);\r\n return as\r\n ? isValidElement(as)\r\n ? cloneElement(as, componentProps)\r\n : createElement(as, componentProps)\r\n : render\r\n ? render(field, meta)\r\n : null;\r\n};\n\nexport { Controller, FormProvider, appendErrors, get, transformToNestObject, useController, useFieldArray, useForm, useFormContext, useWatch };\n//# sourceMappingURL=index.esm.js.map\n"],"names":["isHTMLElement","value","HTMLElement","EVENTS","BLUR","CHANGE","INPUT","VALIDATION_MODE","onBlur","onChange","onSubmit","onTouched","all","SELECT","UNDEFINED","INPUT_VALIDATION_RULES","isNullOrUndefined","isObjectType","isObject","Array","isArray","Date","isKey","test","compact","filter","Boolean","stringToPath","input","replace","split","set","object","path","index","tempPath","length","lastIndex","key","newValue","objValue","isNaN","transformToNestObject","data","isUndefined","val","undefined","get","obj","defaultValue","result","reduce","focusOnErrorField","fields","fieldErrors","field","ref","focus","options","removeAllEventListeners","validateWithStateUpdate","removeEventListener","defaultReturn","isValid","getRadioValue","previous","option","checked","getMultipleSelectValue","selected","map","isRadioInput","element","type","isFileInput","isCheckBoxInput","isMultipleSelect","defaultResult","validResult","getCheckboxValue","values","attributes","getFieldValue","fieldsRef","name","shallowFieldsStateRef","excludeDisabled","shouldKeepRawValue","current","disabled","valueAsNumber","valueAsDate","setValueAs","files","NaN","isDetached","nodeType","Node","DOCUMENT_NODE","parentNode","isEmptyObject","Object","keys","isBoolean","unset","updatePath","childObject","slice","baseGet","previousObjRef","k","objectRef","currentPaths","currentPathsLength","item","isSameRef","fieldValue","isPrimitive","deepMerge","target","source","targetValue","sourceValue","_a","deepEqual","object1","object2","isErrorObject","isValidElement","keys1","keys2","val1","val2","setDirtyFields","defaultValues","dirtyFields","parentName","assign","setFieldArrayDirtyFields","isString","getFieldsValues","shallowFieldsState","shouldUnregister","search","output","startsWith","find","isErrorStateChanged","errors","error","validFields","fieldsWithValidation","previousError","isRegex","RegExp","getValueAndMessage","validationData","message","isFunction","isMessage","getValidateError","appendErrors","validateAllFieldCriteria","types","validateField","async","required","maxLength","minLength","min","max","pattern","validate","isRadio","isCheckBox","isRadioOrCheckbox","isEmpty","appendErrorsCurry","bind","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueDate","valueNumber","parseFloat","maxLengthOutput","minLengthOutput","patternValue","validateRef","validateError","validationResult","validateFunction","entries","getPath","rootPath","paths","property","rootName","push","assignWatchFields","fieldValues","fieldName","watchFields","inputValue","isSingleField","add","forEach","skipValidation","isOnBlur","isOnChange","isOnTouch","isTouched","isReValidateOnBlur","isReValidateOnChange","isBlurEvent","isSubmitted","isOnAll","getFieldArrayParentName","substring","indexOf","isMatchFieldArrayName","searchName","isNameInFieldArray","names","some","isSelectInput","isWeb","window","document","cloneObject","copy","File","includes","constructor","getTime","Set","Map","modeChecker","mode","isOnSubmit","isRadioOrCheckboxFunction","isWindowUndefined","isProxyEnabled","Proxy","useForm","reValidateMode","resolver","context","shouldFocusError","criteriaMode","useRef","fieldArrayDefaultValuesRef","fieldArrayValuesRef","watchFieldsRef","useWatchFieldsRef","useWatchRenderFunctionsRef","fieldsWithValidationRef","validFieldsRef","defaultValuesRef","isUnMount","isWatchAllRef","handleChangeRef","resetFieldArrayFunctionRef","contextRef","resolverRef","fieldArrayNamesRef","modeRef","isValidateAllFieldCriteria","formState","setFormState","useState","isDirty","isValidating","submitCount","touched","isSubmitting","isSubmitSuccessful","readFormStateRef","formStateRef","observerRef","updateFormState","useCallback","state","updateIsValidating","shouldRenderBaseOnError","shouldRender","shouldReRender","setFieldValue","rawValue","radioRef","selectRef","checkboxRef","isFormDirty","formValues","getValues","updateAndGetDirtyState","isFieldDirty","isDirtyFieldExist","previousIsDirty","isChanged","executeValidation","skipReRender","executeSchemaOrResolverValidation","previousFormIsValid","isInputsValid","every","trigger","Promise","setInternalValues","shouldDirty","shouldValidate","setInternalValue","config","has","isFieldWatched","match","renderWatchedInputs","found","size","setFieldArrayDefaultValues","payload","shouldSkipValidation","parentNodeName","currentError","validateResolver","newDefaultValues","removeFieldEventListener","forceDelete","handleChange","fieldRef","findRemovedFieldAndRemoveListener","updateWatchedValue","watchField","removeFieldEventListenerAndRef","watchInternal","fieldNames","watchId","combinedDefaultValues","registerFieldRef","fieldRefAndValidationOptions","isFieldArray","compareRef","currentRef","isEmptyDefaultValue","isEmptyUnmountFields","then","shouldAttachChangeEvent","addEventListener","attachEventListeners","handleSubmit","onValid","onInvalid","e","preventDefault","persist","fieldError","useEffect","observer","MutationObserver","observe","childList","subtree","onDomRemove","disconnect","commonProps","setValue","register","refOrRegisterOptions","unregister","prop","control","useMemo","watch","reset","omitResetState","inputRef","closest","resetFieldArray","resetRefs","clearErrors","inputName","setError","shouldFocus","__rest","s","t","p","prototype","hasOwnProperty","call","getOwnPropertySymbols","i","propertyIsEnumerable","FormContext","createContext","displayName","useFormContext","useContext","generateId","d","performance","now","c","r","Math","random","toString","removeArrayAt","indexes","temp","splice","removeAtIndexes","sort","a","b","moveArrayAt","from","to","swapArrayAt","indexA","indexB","prepend","insert","fillEmptyArray","fill","fillBooleanArray","mapIds","keyName","skipWarn","useFieldArray","methods","focusIndexRef","getDefaultValues","fieldArrayParentName","memoizedDefaultValues","setFields","omitKey","_b","getFieldArrayValue","getCurrentFieldsValues","setFieldAndValidState","fieldsValues","resetFields","cleanup","updateDirtyFieldsWithDefaultValues","updatedFieldArrayValues","batchStateUpdate","method","args","updatedFieldValues","updatedFormValues","shouldSet","shouldUpdateValid","argA","argB","remove","argC","resetFunctions","fieldArrayNames","delete","swap","argD","move","emptyArray","append","appendValue","updateFormValues","getInputValue","event","Controller","props","rules","as","render","onFocus","rest","meta","isNotFieldArray","getInitialValue","setInputStateValue","valueRef","onFocusRef","commonTask","registerField","shouldUpdateValue","defineProperties","invalid","useController","componentProps","cloneElement","createElement"],"sourceRoot":""}