{"version":3,"file":"static/chunks/1975-65d20014b8428749.js","mappings":"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","sources":["webpack://_N_E/./node_modules/@heroicons/react/solid/esm/ExclamationCircleIcon.js","webpack://_N_E/./node_modules/@heroicons/react/solid/esm/LockClosedIcon.js","webpack://_N_E/./node_modules/react-hook-form/dist/index.esm.mjs","webpack://_N_E/"],"sourcesContent":["import * as React from \"react\";\n\nfunction ExclamationCircleIcon(props, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\",\n clipRule: \"evenodd\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ExclamationCircleIcon);\nexport default ForwardRef;","import * as React from \"react\";\n\nfunction LockClosedIcon(props, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M5 9V7a5 5 0 0110 0v2a2 2 0 012 2v5a2 2 0 01-2 2H5a2 2 0 01-2-2v-5a2 2 0 012-2zm8-2v2H7V7a3 3 0 016 0z\",\n clipRule: \"evenodd\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(LockClosedIcon);\nexport default ForwardRef;","import React from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\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 !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\r\n ? isCheckBoxInput(event.target)\r\n ? event.target.checked\r\n : event.target.value\r\n : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (obj, path, defaultValue) => {\r\n if (!path || !isObject(obj)) {\r\n return defaultValue;\r\n }\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\nconst EVENTS = {\r\n BLUR: 'blur',\r\n FOCUS_OUT: 'focusout',\r\n CHANGE: 'change',\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 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\nconst HookFormContext = React.createContext(null);\r\n/**\r\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\r\n *\r\n * @returns return all useForm methods\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const methods = useForm();\r\n * const onSubmit = data => console.log(data);\r\n *\r\n * return (\r\n * \r\n *
\r\n * \r\n * \r\n * \r\n *
\r\n * );\r\n * }\r\n *\r\n * function NestedInput() {\r\n * const { register } = useFormContext(); // retrieve all hook methods\r\n * return ;\r\n * }\r\n * ```\r\n */\r\nconst useFormContext = () => React.useContext(HookFormContext);\r\n/**\r\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\r\n *\r\n * @param props - all useFrom methods\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const methods = useForm();\r\n * const onSubmit = data => console.log(data);\r\n *\r\n * return (\r\n * \r\n *
\r\n * \r\n * \r\n * \r\n *
\r\n * );\r\n * }\r\n *\r\n * function NestedInput() {\r\n * const { register } = useFormContext(); // retrieve all hook methods\r\n * return ;\r\n * }\r\n * ```\r\n */\r\nconst FormProvider = (props) => {\r\n const { children, ...data } = props;\r\n return (React.createElement(HookFormContext.Provider, { value: data }, props.children));\r\n};\n\nvar getProxyFormState = (formState, _proxyFormState, localProxyFormState, isRoot = true) => {\r\n const result = {};\r\n for (const key in formState) {\r\n Object.defineProperty(result, key, {\r\n get: () => {\r\n const _key = key;\r\n if (_proxyFormState[_key] !== VALIDATION_MODE.all) {\r\n _proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\r\n }\r\n localProxyFormState && (localProxyFormState[_key] = true);\r\n return formState[_key];\r\n },\r\n });\r\n }\r\n return result;\r\n};\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, isRoot) => {\r\n const { name, ...formState } = formStateData;\r\n return (isEmptyObject(formState) ||\r\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\r\n Object.keys(formState).find((key) => _proxyFormState[key] ===\r\n (!isRoot || VALIDATION_MODE.all)));\r\n};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar shouldSubscribeByName = (name, signalName, exact) => exact && signalName\r\n ? name === signalName\r\n : !name ||\r\n !signalName ||\r\n name === signalName ||\r\n convertToArrayPayload(name).some((currentName) => currentName &&\r\n (currentName.startsWith(signalName) ||\r\n signalName.startsWith(currentName)));\n\nfunction useSubscribe(props) {\r\n const _props = React.useRef(props);\r\n _props.current = props;\r\n React.useEffect(() => {\r\n const tearDown = (subscription) => {\r\n if (subscription) {\r\n subscription.unsubscribe();\r\n }\r\n };\r\n const subscription = !props.disabled &&\r\n _props.current.subject.subscribe({\r\n next: _props.current.callback,\r\n });\r\n return () => tearDown(subscription);\r\n }, [props.disabled]);\r\n}\n\n/**\r\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\r\n *\r\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { register, handleSubmit, control } = useForm({\r\n * defaultValues: {\r\n * firstName: \"firstName\"\r\n * }});\r\n * const { dirtyFields } = useFormState({\r\n * control\r\n * });\r\n * const onSubmit = (data) => console.log(data);\r\n *\r\n * return (\r\n *
\r\n * \r\n * {dirtyFields.firstName &&

Field is dirty.

}\r\n * \r\n *
\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useFormState(props) {\r\n const methods = useFormContext();\r\n const { control = methods.control, disabled, name, exact } = props || {};\r\n const [formState, updateFormState] = React.useState(control._formState);\r\n const _localProxyFormState = React.useRef({\r\n isDirty: false,\r\n dirtyFields: false,\r\n touchedFields: false,\r\n isValidating: false,\r\n isValid: false,\r\n errors: false,\r\n });\r\n const _name = React.useRef(name);\r\n const _mounted = React.useRef(true);\r\n _name.current = name;\r\n const callback = React.useCallback((value) => _mounted.current &&\r\n shouldSubscribeByName(_name.current, value.name, exact) &&\r\n shouldRenderFormState(value, _localProxyFormState.current) &&\r\n updateFormState({\r\n ...control._formState,\r\n ...value,\r\n }), [control, exact]);\r\n useSubscribe({\r\n disabled,\r\n callback,\r\n subject: control._subjects.state,\r\n });\r\n React.useEffect(() => {\r\n _mounted.current = true;\r\n return () => {\r\n _mounted.current = false;\r\n };\r\n }, []);\r\n return getProxyFormState(formState, control._proxyFormState, _localProxyFormState.current, false);\r\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal) => {\r\n const isArray = Array.isArray(names);\r\n if (isString(names)) {\r\n isGlobal && _names.watch.add(names);\r\n return get(formValues, names);\r\n }\r\n if (isArray) {\r\n return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName),\r\n get(formValues, fieldName)));\r\n }\r\n isGlobal && (_names.watchAll = true);\r\n return formValues;\r\n};\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar objectHasFunction = (data) => {\r\n for (const key in data) {\r\n if (isFunction(data[key])) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\n\n/**\r\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\r\n *\r\n * @remarks\r\n *\r\n * [API](https://react-hook-form.com/api/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\r\n *\r\n * @example\r\n * ```tsx\r\n * const { watch } = useForm();\r\n * const values = useWatch({\r\n * name: \"fieldName\"\r\n * control,\r\n * })\r\n * ```\r\n */\r\nfunction useWatch(props) {\r\n const methods = useFormContext();\r\n const { control = methods.control, name, defaultValue, disabled, exact, } = props || {};\r\n const _name = React.useRef(name);\r\n _name.current = name;\r\n const callback = React.useCallback((formState) => {\r\n if (shouldSubscribeByName(_name.current, formState.name, exact)) {\r\n const fieldValues = generateWatchOutput(_name.current, control._names, formState.values || control._formValues);\r\n updateValue(isUndefined(_name.current) ||\r\n (isObject(fieldValues) && !objectHasFunction(fieldValues))\r\n ? { ...fieldValues }\r\n : Array.isArray(fieldValues)\r\n ? [...fieldValues]\r\n : isUndefined(fieldValues)\r\n ? defaultValue\r\n : fieldValues);\r\n }\r\n }, [control, exact, defaultValue]);\r\n useSubscribe({\r\n disabled,\r\n subject: control._subjects.watch,\r\n callback,\r\n });\r\n const [value, updateValue] = React.useState(isUndefined(defaultValue)\r\n ? control._getWatch(name)\r\n : defaultValue);\r\n React.useEffect(() => {\r\n control._removeUnmounted();\r\n });\r\n return value;\r\n}\n\n/**\r\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\r\n *\r\n * @param props - the path name to the form field value, and validation rules.\r\n *\r\n * @returns field properties, field and form state. {@link UseControllerReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function Input(props) {\r\n * const { field, fieldState, formState } = useController(props);\r\n * return (\r\n *
\r\n * \r\n *

{fieldState.isTouched && \"Touched\"}

\r\n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\r\n *
\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useController(props) {\r\n const methods = useFormContext();\r\n const { name, control = methods.control, shouldUnregister } = props;\r\n const isArrayField = isNameInFieldArray(control._names.array, name);\r\n const value = useWatch({\r\n control,\r\n name,\r\n defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\r\n exact: true,\r\n });\r\n const formState = useFormState({\r\n control,\r\n name,\r\n });\r\n const _registerProps = React.useRef(control.register(name, {\r\n ...props.rules,\r\n value,\r\n }));\r\n React.useEffect(() => {\r\n const updateMounted = (name, value) => {\r\n const field = get(control._fields, name);\r\n if (field) {\r\n field._f.mount = value;\r\n }\r\n };\r\n updateMounted(name, true);\r\n return () => {\r\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\r\n (isArrayField\r\n ? _shouldUnregisterField && !control._stateFlags.action\r\n : _shouldUnregisterField)\r\n ? control.unregister(name)\r\n : updateMounted(name, false);\r\n };\r\n }, [name, control, isArrayField, shouldUnregister]);\r\n return {\r\n field: {\r\n name,\r\n value,\r\n onChange: React.useCallback((event) => {\r\n _registerProps.current.onChange({\r\n target: {\r\n value: getEventValue(event),\r\n name: name,\r\n },\r\n type: EVENTS.CHANGE,\r\n });\r\n }, [name]),\r\n onBlur: React.useCallback(() => {\r\n _registerProps.current.onBlur({\r\n target: {\r\n value: get(control._formValues, name),\r\n name: name,\r\n },\r\n type: EVENTS.BLUR,\r\n });\r\n }, [name, control]),\r\n ref: React.useCallback((elm) => {\r\n const field = get(control._fields, name);\r\n if (elm && field && elm.focus) {\r\n field._f.ref = {\r\n focus: () => elm.focus(),\r\n setCustomValidity: (message) => elm.setCustomValidity(message),\r\n reportValidity: () => elm.reportValidity(),\r\n };\r\n }\r\n }, [name, control._fields]),\r\n },\r\n formState,\r\n fieldState: Object.defineProperties({}, {\r\n invalid: {\r\n get: () => !!get(formState.errors, name),\r\n },\r\n isDirty: {\r\n get: () => !!get(formState.dirtyFields, name),\r\n },\r\n isTouched: {\r\n get: () => !!get(formState.touchedFields, name),\r\n },\r\n error: {\r\n get: () => get(formState.errors, name),\r\n },\r\n }),\r\n };\r\n}\n\n/**\r\n * Component based on `useController` hook to work with controlled component.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\r\n *\r\n * @param props - the path name to the form field value, and validation rules.\r\n *\r\n * @returns provide field handler functions, field and form state.\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { control } = useForm({\r\n * defaultValues: {\r\n * test: \"\"\r\n * }\r\n * });\r\n *\r\n * return (\r\n *
\r\n * (\r\n * <>\r\n * \r\n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\r\n *

{fieldState.isTouched ? \"touched\" : \"\"}

\r\n * \r\n * )}\r\n * />\r\n * \r\n * );\r\n * }\r\n * ```\r\n */\r\nconst Controller = (props) => props.render(useController(props));\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\r\n ? {\r\n ...errors[name],\r\n types: {\r\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\r\n [type]: message || true,\r\n },\r\n }\r\n : {};\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').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\nconst focusFieldBy = (fields, callback, fieldsNames) => {\r\n for (const key of fieldsNames || Object.keys(fields)) {\r\n const field = get(fields, key);\r\n if (field) {\r\n const { _f, ...currentField } = field;\r\n if (_f && callback(_f.name)) {\r\n if (_f.ref.focus && isUndefined(_f.ref.focus())) {\r\n break;\r\n }\r\n else if (_f.refs) {\r\n _f.refs[0].focus();\r\n break;\r\n }\r\n }\r\n else if (isObject(currentField)) {\r\n focusFieldBy(currentField, callback);\r\n }\r\n }\r\n }\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\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\r\n ? options.focusName ||\r\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\r\n : '';\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\r\n (_names.watchAll ||\r\n _names.watch.has(name) ||\r\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\r\n /^\\.\\w+/.test(name.slice(watchName.length))));\n\nfunction append(data, value) {\r\n return [...data, ...convertToArrayPayload(value)];\r\n}\n\nvar isWeb = typeof window !== 'undefined' &&\r\n typeof window.HTMLElement !== 'undefined' &&\r\n typeof document !== 'undefined';\n\nfunction cloneObject(data) {\r\n let copy;\r\n const isArray = Array.isArray(data);\r\n if (data instanceof Date) {\r\n copy = new Date(data);\r\n }\r\n else if (data instanceof Set) {\r\n copy = new Set(data);\r\n }\r\n else if (!(isWeb && (data instanceof Blob || data instanceof FileList)) &&\r\n (isArray || isObject(data))) {\r\n copy = isArray ? [] : {};\r\n for (const key in data) {\r\n copy[key] = isFunction(data[key]) ? data[key] : cloneObject(data[key]);\r\n }\r\n }\r\n else {\r\n return data;\r\n }\r\n return copy;\r\n}\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\r\n return [\r\n ...data.slice(0, index),\r\n ...convertToArrayPayload(value),\r\n ...data.slice(index),\r\n ];\r\n}\n\nvar moveArrayAt = (data, from, to) => {\r\n if (!Array.isArray(data)) {\r\n return [];\r\n }\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};\n\nfunction prepend(data, value) {\r\n return [...convertToArrayPayload(value), ...convertToArrayPayload(data)];\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, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\r\n data[indexA] = [data[indexB], (data[indexB] = data[indexA])][0];\r\n};\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) => !isUndefined(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\nvar updateAt = (fieldValues, index, value) => {\r\n fieldValues[index] = value;\r\n return fieldValues;\r\n};\n\n/**\r\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\r\n *\r\n * @param props - useFieldArray props\r\n *\r\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\r\n * defaultValues: {\r\n * test: []\r\n * }\r\n * });\r\n * const { fields, append } = useFieldArray({\r\n * control,\r\n * name: \"test\"\r\n * });\r\n *\r\n * return (\r\n *
console.log(data))}>\r\n * {fields.map((item, index) => (\r\n * \r\n * ))}\r\n * \r\n * \r\n *
\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useFieldArray(props) {\r\n const methods = useFormContext();\r\n const { control = methods.control, name, keyName = 'id', shouldUnregister, } = props;\r\n const [fields, setFields] = React.useState(control._getFieldArray(name));\r\n const ids = React.useRef(control._getFieldArray(name).map(generateId));\r\n const _fieldIds = React.useRef(fields);\r\n const _name = React.useRef(name);\r\n const _actioned = React.useRef(false);\r\n _name.current = name;\r\n _fieldIds.current = fields;\r\n control._names.array.add(name);\r\n const callback = React.useCallback(({ values, name: fieldArrayName }) => {\r\n if (fieldArrayName === _name.current || !fieldArrayName) {\r\n const fieldValues = get(values, _name.current, []);\r\n setFields(fieldValues);\r\n ids.current = fieldValues.map(generateId);\r\n }\r\n }, []);\r\n useSubscribe({\r\n callback,\r\n subject: control._subjects.array,\r\n });\r\n const updateValues = React.useCallback((updatedFieldArrayValues) => {\r\n _actioned.current = true;\r\n control._updateFieldArray(name, updatedFieldArrayValues);\r\n }, [control, name]);\r\n const append$1 = (value, options) => {\r\n const appendValue = convertToArrayPayload(cloneObject(value));\r\n const updatedFieldArrayValues = append(control._getFieldArray(name), appendValue);\r\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\r\n ids.current = append(ids.current, appendValue.map(generateId));\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, append, {\r\n argA: fillEmptyArray(value),\r\n });\r\n };\r\n const prepend$1 = (value, options) => {\r\n const prependValue = convertToArrayPayload(cloneObject(value));\r\n const updatedFieldArrayValues = prepend(control._getFieldArray(name), prependValue);\r\n control._names.focus = getFocusFieldName(name, 0, options);\r\n ids.current = prepend(ids.current, prependValue.map(generateId));\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, prepend, {\r\n argA: fillEmptyArray(value),\r\n });\r\n };\r\n const remove = (index) => {\r\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\r\n ids.current = removeArrayAt(ids.current, index);\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\r\n argA: index,\r\n });\r\n };\r\n const insert$1 = (index, value, options) => {\r\n const insertValue = convertToArrayPayload(cloneObject(value));\r\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\r\n control._names.focus = getFocusFieldName(name, index, options);\r\n ids.current = insert(ids.current, index, insertValue.map(generateId));\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, insert, {\r\n argA: index,\r\n argB: fillEmptyArray(value),\r\n });\r\n };\r\n const swap = (indexA, indexB) => {\r\n const updatedFieldArrayValues = control._getFieldArray(name);\r\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\r\n swapArrayAt(ids.current, indexA, indexB);\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\r\n argA: indexA,\r\n argB: indexB,\r\n }, false);\r\n };\r\n const move = (from, to) => {\r\n const updatedFieldArrayValues = control._getFieldArray(name);\r\n moveArrayAt(updatedFieldArrayValues, from, to);\r\n moveArrayAt(ids.current, from, to);\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\r\n argA: from,\r\n argB: to,\r\n }, false);\r\n };\r\n const update = (index, value) => {\r\n const updateValue = cloneObject(value);\r\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\r\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\r\n updateValues(updatedFieldArrayValues);\r\n setFields([...updatedFieldArrayValues]);\r\n control._updateFieldArray(name, updatedFieldArrayValues, updateAt, {\r\n argA: index,\r\n argB: updateValue,\r\n }, true, false);\r\n };\r\n const replace = (value) => {\r\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\r\n ids.current = updatedFieldArrayValues.map(generateId);\r\n updateValues([...updatedFieldArrayValues]);\r\n setFields([...updatedFieldArrayValues]);\r\n control._updateFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\r\n };\r\n React.useEffect(() => {\r\n control._stateFlags.action = false;\r\n isWatched(name, control._names) && control._subjects.state.next({});\r\n if (_actioned.current) {\r\n control._executeSchema([name]).then((result) => {\r\n const error = get(result.errors, name);\r\n const existingError = get(control._formState.errors, name);\r\n if (existingError ? !error && existingError.type : error && error.type) {\r\n error\r\n ? set(control._formState.errors, name, error)\r\n : unset(control._formState.errors, name);\r\n control._subjects.state.next({\r\n errors: control._formState.errors,\r\n });\r\n }\r\n });\r\n }\r\n control._subjects.watch.next({\r\n name,\r\n values: control._formValues,\r\n });\r\n control._names.focus &&\r\n focusFieldBy(control._fields, (key) => key.startsWith(control._names.focus));\r\n control._names.focus = '';\r\n control._proxyFormState.isValid && control._updateValid();\r\n }, [fields, name, control]);\r\n React.useEffect(() => {\r\n !get(control._formValues, name) && control._updateFieldArray(name);\r\n return () => {\r\n (control._options.shouldUnregister || shouldUnregister) &&\r\n control.unregister(name);\r\n };\r\n }, [name, control, keyName, shouldUnregister]);\r\n return {\r\n swap: React.useCallback(swap, [updateValues, name, control]),\r\n move: React.useCallback(move, [updateValues, name, control]),\r\n prepend: React.useCallback(prepend$1, [updateValues, name, control]),\r\n append: React.useCallback(append$1, [updateValues, name, control]),\r\n remove: React.useCallback(remove, [updateValues, name, control]),\r\n insert: React.useCallback(insert$1, [updateValues, name, control]),\r\n update: React.useCallback(update, [updateValues, name, control]),\r\n replace: React.useCallback(replace, [updateValues, name, control]),\r\n fields: React.useMemo(() => fields.map((field, index) => ({\r\n ...field,\r\n [keyName]: ids.current[index] || generateId(),\r\n })), [fields, keyName]),\r\n };\r\n}\n\nfunction createSubject() {\r\n let _observers = [];\r\n const next = (value) => {\r\n for (const observer of _observers) {\r\n observer.next(value);\r\n }\r\n };\r\n const subscribe = (observer) => {\r\n _observers.push(observer);\r\n return {\r\n unsubscribe: () => {\r\n _observers = _observers.filter((o) => o !== observer);\r\n },\r\n };\r\n };\r\n const unsubscribe = () => {\r\n _observers = [];\r\n };\r\n return {\r\n get observers() {\r\n return _observers;\r\n },\r\n next,\r\n subscribe,\r\n unsubscribe,\r\n };\r\n}\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2) {\r\n if (isPrimitive(object1) || isPrimitive(object2)) {\r\n return object1 === object2;\r\n }\r\n if (isDateObject(object1) && isDateObject(object2)) {\r\n return object1.getTime() === object2.getTime();\r\n }\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 (!keys2.includes(key)) {\r\n return false;\r\n }\r\n if (key !== 'ref') {\r\n const val2 = object2[key];\r\n if ((isDateObject(val1) && isDateObject(val2)) ||\r\n (isObject(val1) && isObject(val2)) ||\r\n (Array.isArray(val1) && Array.isArray(val2))\r\n ? !deepEqual(val1, val2)\r\n : val1 !== val2) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\n\nvar getValidationModes = (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 isBoolean = (value) => typeof value === 'boolean';\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isHTMLElement = (value) => value instanceof HTMLElement;\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nfunction markFieldsDirty(data, fields = {}) {\r\n const isParentNodeArray = Array.isArray(data);\r\n if (isObject(data) || isParentNodeArray) {\r\n for (const key in data) {\r\n if (Array.isArray(data[key]) ||\r\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\r\n fields[key] = Array.isArray(data[key]) ? [] : {};\r\n markFieldsDirty(data[key], fields[key]);\r\n }\r\n else if (!isNullOrUndefined(data[key])) {\r\n fields[key] = true;\r\n }\r\n }\r\n }\r\n return fields;\r\n}\r\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\r\n const isParentNodeArray = Array.isArray(data);\r\n if (isObject(data) || isParentNodeArray) {\r\n for (const key in data) {\r\n if (Array.isArray(data[key]) ||\r\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\r\n if (isUndefined(formValues) ||\r\n isPrimitive(dirtyFieldsFromValues[key])) {\r\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\r\n ? markFieldsDirty(data[key], [])\r\n : { ...markFieldsDirty(data[key]) };\r\n }\r\n else {\r\n getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\r\n }\r\n }\r\n else {\r\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\r\n }\r\n }\r\n }\r\n return dirtyFieldsFromValues;\r\n}\r\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\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.checked && !option.disabled)\r\n .map((option) => option.value);\r\n return { value: values, isValid: !!values.length };\r\n }\r\n return options[0].checked && !options[0].disabled\r\n ? // @ts-expect-error expected to work in the browser\r\n options[0].attributes && !isUndefined(options[0].attributes.value)\r\n ? isUndefined(options[0].value) || options[0].value === ''\r\n ? validResult\r\n : { value: options[0].value, isValid: true }\r\n : validResult\r\n : defaultResult;\r\n }\r\n return defaultResult;\r\n};\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\r\n ? value\r\n : valueAsNumber\r\n ? value === ''\r\n ? NaN\r\n : +value\r\n : valueAsDate && isString(value)\r\n ? new Date(value)\r\n : setValueAs\r\n ? setValueAs(value)\r\n : value;\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.checked && !option.disabled\r\n ? {\r\n isValid: true,\r\n value: option.value,\r\n }\r\n : previous, defaultReturn)\r\n : defaultReturn;\n\nfunction getFieldValue(_f) {\r\n const ref = _f.ref;\r\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\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(_f.refs).value;\r\n }\r\n if (isMultipleSelect(ref)) {\r\n return [...ref.selectedOptions].map(({ value }) => value);\r\n }\r\n if (isCheckBoxInput(ref)) {\r\n return getCheckboxValue(_f.refs).value;\r\n }\r\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\r\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\r\n const fields = {};\r\n for (const name of fieldsNames) {\r\n const field = get(_fields, name);\r\n field && set(fields, name, field._f);\r\n }\r\n return {\r\n criteriaMode,\r\n names: [...fieldsNames],\r\n fields,\r\n shouldUseNativeValidation,\r\n };\r\n};\n\nvar isRegex = (value) => value instanceof RegExp;\n\nvar getRuleValue = (rule) => isUndefined(rule)\r\n ? undefined\r\n : isRegex(rule)\r\n ? rule.source\r\n : isObject(rule)\r\n ? isRegex(rule.value)\r\n ? rule.value.source\r\n : rule.value\r\n : rule;\n\nvar hasValidation = (options) => options.mount &&\r\n (options.required ||\r\n options.min ||\r\n options.max ||\r\n options.maxLength ||\r\n options.minLength ||\r\n options.pattern ||\r\n options.validate);\n\nfunction schemaErrorLookup(errors, _fields, name) {\r\n const error = get(errors, name);\r\n if (error || isKey(name)) {\r\n return {\r\n error,\r\n name,\r\n };\r\n }\r\n const names = name.split('.');\r\n while (names.length) {\r\n const fieldName = names.join('.');\r\n const field = get(_fields, fieldName);\r\n const foundError = get(errors, fieldName);\r\n if (field && !Array.isArray(field) && name !== fieldName) {\r\n return { name };\r\n }\r\n if (foundError && foundError.type) {\r\n return {\r\n name: fieldName,\r\n error: foundError,\r\n };\r\n }\r\n names.pop();\r\n }\r\n return {\r\n name,\r\n };\r\n}\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\r\n if (mode.isOnAll) {\r\n return false;\r\n }\r\n else if (!isSubmitted && mode.isOnTouch) {\r\n return !(isTouched || isBlurEvent);\r\n }\r\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\r\n return !isBlurEvent;\r\n }\r\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\r\n return isBlurEvent;\r\n }\r\n return true;\r\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nvar isMessage = (value) => isString(value) || React.isValidElement(value);\n\nfunction getValidateError(result, ref, type = 'validate') {\r\n if (isMessage(result) ||\r\n (Array.isArray(result) && result.every(isMessage)) ||\r\n (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 getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\r\n ? validationData\r\n : {\r\n value: validationData,\r\n message: '',\r\n };\n\nvar validateField = async (field, inputValue, validateAllFieldCriteria, shouldUseNativeValidation) => {\r\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, disabled, } = field._f;\r\n if (!mount || disabled) {\r\n return {};\r\n }\r\n const inputRef = refs ? refs[0] : ref;\r\n const setCustomValidity = (message) => {\r\n if (shouldUseNativeValidation && inputRef.reportValidity) {\r\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || ' ');\r\n inputRef.reportValidity();\r\n }\r\n };\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 = ((valueAsNumber || isFileInput(ref)) && !ref.value) ||\r\n inputValue === '' ||\r\n (Array.isArray(inputValue) && !inputValue.length);\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] = {\r\n type: exceedMax ? maxType : minType,\r\n message,\r\n ref,\r\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\r\n };\r\n };\r\n if (required &&\r\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\r\n (isBoolean(inputValue) && !inputValue) ||\r\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\r\n (isRadio && !getRadioValue(refs).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] = {\r\n type: INPUT_VALIDATION_RULES.required,\r\n message,\r\n ref: inputRef,\r\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\r\n };\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(message);\r\n return error;\r\n }\r\n }\r\n }\r\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\r\n let exceedMax;\r\n let exceedMin;\r\n const maxOutput = getValueAndMessage(max);\r\n const minOutput = getValueAndMessage(min);\r\n if (!isNaN(inputValue)) {\r\n const valueNumber = ref.valueAsNumber || +inputValue;\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(inputValue);\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 setCustomValidity(error[name].message);\r\n return error;\r\n }\r\n }\r\n }\r\n if ((maxLength || minLength) && !isEmpty && isString(inputValue)) {\r\n const maxLengthOutput = getValueAndMessage(maxLength);\r\n const minLengthOutput = getValueAndMessage(minLength);\r\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\r\n inputValue.length > maxLengthOutput.value;\r\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\r\n inputValue.length < minLengthOutput.value;\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(error[name].message);\r\n return error;\r\n }\r\n }\r\n }\r\n if (pattern && !isEmpty && isString(inputValue)) {\r\n const { value: patternValue, message } = getValueAndMessage(pattern);\r\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\r\n error[name] = {\r\n type: INPUT_VALIDATION_RULES.pattern,\r\n message,\r\n ref,\r\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\r\n };\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(message);\r\n return error;\r\n }\r\n }\r\n }\r\n if (validate) {\r\n if (isFunction(validate)) {\r\n const result = await validate(inputValue);\r\n const validateError = getValidateError(result, inputRef);\r\n if (validateError) {\r\n error[name] = {\r\n ...validateError,\r\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\r\n };\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(validateError.message);\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 in validate) {\r\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\r\n break;\r\n }\r\n const validateError = getValidateError(await validate[key](inputValue), inputRef, key);\r\n if (validateError) {\r\n validationResult = {\r\n ...validateError,\r\n ...appendErrorsCurry(key, validateError.message),\r\n };\r\n setCustomValidity(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] = {\r\n ref: inputRef,\r\n ...validationResult,\r\n };\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n }\r\n setCustomValidity(true);\r\n return error;\r\n};\n\nconst defaultOptions = {\r\n mode: VALIDATION_MODE.onSubmit,\r\n reValidateMode: VALIDATION_MODE.onChange,\r\n shouldFocusError: true,\r\n};\r\nfunction createFormControl(props = {}) {\r\n let _options = {\r\n ...defaultOptions,\r\n ...props,\r\n };\r\n let _formState = {\r\n isDirty: false,\r\n isValidating: false,\r\n dirtyFields: {},\r\n isSubmitted: false,\r\n submitCount: 0,\r\n touchedFields: {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n isValid: false,\r\n errors: {},\r\n };\r\n let _fields = {};\r\n let _defaultValues = cloneObject(_options.defaultValues) || {};\r\n let _formValues = _options.shouldUnregister\r\n ? {}\r\n : cloneObject(_defaultValues);\r\n let _stateFlags = {\r\n action: false,\r\n mount: false,\r\n watch: false,\r\n };\r\n let _names = {\r\n mount: new Set(),\r\n unMount: new Set(),\r\n array: new Set(),\r\n watch: new Set(),\r\n };\r\n let delayErrorCallback;\r\n let timer = 0;\r\n let validateFields = {};\r\n const _proxyFormState = {\r\n isDirty: false,\r\n dirtyFields: false,\r\n touchedFields: false,\r\n isValidating: false,\r\n isValid: false,\r\n errors: false,\r\n };\r\n const _subjects = {\r\n watch: createSubject(),\r\n array: createSubject(),\r\n state: createSubject(),\r\n };\r\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\r\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\r\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\r\n const debounce = (callback, wait) => (...args) => {\r\n clearTimeout(timer);\r\n timer = window.setTimeout(() => callback(...args), wait);\r\n };\r\n const _updateValid = async (shouldSkipRender) => {\r\n let isValid = false;\r\n if (_proxyFormState.isValid) {\r\n isValid = _options.resolver\r\n ? isEmptyObject((await _executeSchema()).errors)\r\n : await executeBuildInValidation(_fields, true);\r\n if (!shouldSkipRender && isValid !== _formState.isValid) {\r\n _formState.isValid = isValid;\r\n _subjects.state.next({\r\n isValid,\r\n });\r\n }\r\n }\r\n return isValid;\r\n };\r\n const _updateFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\r\n if (args && method) {\r\n _stateFlags.action = true;\r\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\r\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\r\n shouldSetValues && set(_fields, name, fieldValues);\r\n }\r\n if (_proxyFormState.errors &&\r\n shouldUpdateFieldsAndState &&\r\n Array.isArray(get(_formState.errors, name))) {\r\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\r\n shouldSetValues && set(_formState.errors, name, errors);\r\n unsetEmptyArray(_formState.errors, name);\r\n }\r\n if (_proxyFormState.touchedFields &&\r\n shouldUpdateFieldsAndState &&\r\n Array.isArray(get(_formState.touchedFields, name))) {\r\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\r\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\r\n }\r\n if (_proxyFormState.dirtyFields) {\r\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\r\n }\r\n _subjects.state.next({\r\n isDirty: _getDirty(name, values),\r\n dirtyFields: _formState.dirtyFields,\r\n errors: _formState.errors,\r\n isValid: _formState.isValid,\r\n });\r\n }\r\n else {\r\n set(_formValues, name, values);\r\n }\r\n };\r\n const updateErrors = (name, error) => (set(_formState.errors, name, error),\r\n _subjects.state.next({\r\n errors: _formState.errors,\r\n }));\r\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\r\n const field = get(_fields, name);\r\n if (field) {\r\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\r\n isUndefined(defaultValue) ||\r\n (ref && ref.defaultChecked) ||\r\n shouldSkipSetValueAs\r\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\r\n : setFieldValue(name, defaultValue);\r\n _stateFlags.mount && _updateValid();\r\n }\r\n };\r\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\r\n let isFieldDirty = false;\r\n const output = {\r\n name,\r\n };\r\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\r\n if (_proxyFormState.isDirty) {\r\n const isPreviousFormDirty = _formState.isDirty;\r\n _formState.isDirty = output.isDirty = _getDirty();\r\n isFieldDirty = isPreviousFormDirty !== output.isDirty;\r\n }\r\n if (_proxyFormState.dirtyFields && (!isBlurEvent || shouldDirty)) {\r\n const isPreviousFieldDirty = get(_formState.dirtyFields, name);\r\n const isCurrentFieldPristine = deepEqual(get(_defaultValues, name), fieldValue);\r\n isCurrentFieldPristine\r\n ? unset(_formState.dirtyFields, name)\r\n : set(_formState.dirtyFields, name, true);\r\n output.dirtyFields = _formState.dirtyFields;\r\n isFieldDirty =\r\n isFieldDirty ||\r\n isPreviousFieldDirty !== get(_formState.dirtyFields, name);\r\n }\r\n if (isBlurEvent && !isPreviousFieldTouched) {\r\n set(_formState.touchedFields, name, isBlurEvent);\r\n output.touchedFields = _formState.touchedFields;\r\n isFieldDirty =\r\n isFieldDirty ||\r\n (_proxyFormState.touchedFields &&\r\n isPreviousFieldTouched !== isBlurEvent);\r\n }\r\n isFieldDirty && shouldRender && _subjects.state.next(output);\r\n return isFieldDirty ? output : {};\r\n };\r\n const shouldRenderByError = async (shouldSkipRender, name, isValid, error, fieldState) => {\r\n const previousFieldError = get(_formState.errors, name);\r\n const shouldUpdateValid = _proxyFormState.isValid && _formState.isValid !== isValid;\r\n if (props.delayError && error) {\r\n delayErrorCallback =\r\n delayErrorCallback || debounce(updateErrors, props.delayError);\r\n delayErrorCallback(name, error);\r\n }\r\n else {\r\n clearTimeout(timer);\r\n error\r\n ? set(_formState.errors, name, error)\r\n : unset(_formState.errors, name);\r\n }\r\n if (((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\r\n !isEmptyObject(fieldState) ||\r\n shouldUpdateValid) &&\r\n !shouldSkipRender) {\r\n const updatedFormState = {\r\n ...fieldState,\r\n ...(shouldUpdateValid ? { isValid } : {}),\r\n errors: _formState.errors,\r\n name,\r\n };\r\n _formState = {\r\n ..._formState,\r\n ...updatedFormState,\r\n };\r\n _subjects.state.next(updatedFormState);\r\n }\r\n validateFields[name]--;\r\n if (_proxyFormState.isValidating &&\r\n !Object.values(validateFields).some((v) => v)) {\r\n _subjects.state.next({\r\n isValidating: false,\r\n });\r\n validateFields = {};\r\n }\r\n };\r\n const _executeSchema = async (name) => _options.resolver\r\n ? await _options.resolver({ ..._formValues }, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation))\r\n : {};\r\n const executeSchemaAndUpdateState = async (names) => {\r\n const { errors } = await _executeSchema();\r\n if (names) {\r\n for (const name of names) {\r\n const error = get(errors, name);\r\n error\r\n ? set(_formState.errors, name, error)\r\n : unset(_formState.errors, name);\r\n }\r\n }\r\n else {\r\n _formState.errors = errors;\r\n }\r\n return errors;\r\n };\r\n const executeBuildInValidation = async (fields, shouldOnlyCheckValid, context = {\r\n valid: true,\r\n }) => {\r\n for (const name in fields) {\r\n const field = fields[name];\r\n if (field) {\r\n const { _f: fieldReference, ...fieldValue } = field;\r\n if (fieldReference) {\r\n const fieldError = await validateField(field, get(_formValues, fieldReference.name), shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation);\r\n if (fieldError[fieldReference.name]) {\r\n context.valid = false;\r\n if (shouldOnlyCheckValid) {\r\n break;\r\n }\r\n }\r\n if (!shouldOnlyCheckValid) {\r\n fieldError[fieldReference.name]\r\n ? set(_formState.errors, fieldReference.name, fieldError[fieldReference.name])\r\n : unset(_formState.errors, fieldReference.name);\r\n }\r\n }\r\n fieldValue &&\r\n (await executeBuildInValidation(fieldValue, shouldOnlyCheckValid, context));\r\n }\r\n }\r\n return context.valid;\r\n };\r\n const _removeUnmounted = () => {\r\n for (const name of _names.unMount) {\r\n const field = get(_fields, name);\r\n field &&\r\n (field._f.refs\r\n ? field._f.refs.every((ref) => !live(ref))\r\n : !live(field._f.ref)) &&\r\n unregister(name);\r\n }\r\n _names.unMount = new Set();\r\n };\r\n const _getDirty = (name, data) => (name && data && set(_formValues, name, data),\r\n !deepEqual(getValues(), _defaultValues));\r\n const _getWatch = (names, defaultValue, isGlobal) => {\r\n const fieldValues = {\r\n ...(_stateFlags.mount\r\n ? _formValues\r\n : isUndefined(defaultValue)\r\n ? _defaultValues\r\n : isString(names)\r\n ? { [names]: defaultValue }\r\n : defaultValue),\r\n };\r\n return generateWatchOutput(names, _names, fieldValues, isGlobal);\r\n };\r\n const _getFieldArray = (name) => compact(get(_stateFlags.mount ? _formValues : _defaultValues, name, props.shouldUnregister ? get(_defaultValues, name, []) : []));\r\n const setFieldValue = (name, value, options = {}) => {\r\n const field = get(_fields, name);\r\n let fieldValue = value;\r\n if (field) {\r\n const fieldReference = field._f;\r\n if (fieldReference) {\r\n !fieldReference.disabled &&\r\n set(_formValues, name, getFieldValueAs(value, fieldReference));\r\n fieldValue =\r\n isWeb && isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\r\n ? ''\r\n : value;\r\n if (isMultipleSelect(fieldReference.ref)) {\r\n [...fieldReference.ref.options].forEach((selectRef) => (selectRef.selected = fieldValue.includes(selectRef.value)));\r\n }\r\n else if (fieldReference.refs) {\r\n if (isCheckBoxInput(fieldReference.ref)) {\r\n fieldReference.refs.length > 1\r\n ? fieldReference.refs.forEach((checkboxRef) => !checkboxRef.disabled &&\r\n (checkboxRef.checked = Array.isArray(fieldValue)\r\n ? !!fieldValue.find((data) => data === checkboxRef.value)\r\n : fieldValue === checkboxRef.value))\r\n : fieldReference.refs[0] &&\r\n (fieldReference.refs[0].checked = !!fieldValue);\r\n }\r\n else {\r\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\r\n }\r\n }\r\n else if (isFileInput(fieldReference.ref)) {\r\n fieldReference.ref.value = '';\r\n }\r\n else {\r\n fieldReference.ref.value = fieldValue;\r\n if (!fieldReference.ref.type) {\r\n _subjects.watch.next({\r\n name,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n (options.shouldDirty || options.shouldTouch) &&\r\n updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\r\n options.shouldValidate && trigger(name);\r\n };\r\n const setValues = (name, value, options) => {\r\n for (const fieldKey in value) {\r\n const fieldValue = value[fieldKey];\r\n const fieldName = `${name}.${fieldKey}`;\r\n const field = get(_fields, fieldName);\r\n (_names.array.has(name) ||\r\n !isPrimitive(fieldValue) ||\r\n (field && !field._f)) &&\r\n !isDateObject(fieldValue)\r\n ? setValues(fieldName, fieldValue, options)\r\n : setFieldValue(fieldName, fieldValue, options);\r\n }\r\n };\r\n const setValue = (name, value, options = {}) => {\r\n const field = get(_fields, name);\r\n const isFieldArray = _names.array.has(name);\r\n const cloneValue = cloneObject(value);\r\n set(_formValues, name, cloneValue);\r\n if (isFieldArray) {\r\n _subjects.array.next({\r\n name,\r\n values: _formValues,\r\n });\r\n if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\r\n options.shouldDirty) {\r\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\r\n _subjects.state.next({\r\n name,\r\n dirtyFields: _formState.dirtyFields,\r\n isDirty: _getDirty(name, cloneValue),\r\n });\r\n }\r\n }\r\n else {\r\n field && !field._f && !isNullOrUndefined(cloneValue)\r\n ? setValues(name, cloneValue, options)\r\n : setFieldValue(name, cloneValue, options);\r\n }\r\n isWatched(name, _names) && _subjects.state.next({});\r\n _subjects.watch.next({\r\n name,\r\n });\r\n };\r\n const onChange = async (event) => {\r\n const target = event.target;\r\n let name = target.name;\r\n const field = get(_fields, name);\r\n if (field) {\r\n let error;\r\n let isValid;\r\n const fieldValue = target.type\r\n ? getFieldValue(field._f)\r\n : getEventValue(event);\r\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\r\n const shouldSkipValidation = (!hasValidation(field._f) &&\r\n !_options.resolver &&\r\n !get(_formState.errors, name) &&\r\n !field._f.deps) ||\r\n skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\r\n const watched = isWatched(name, _names, isBlurEvent);\r\n set(_formValues, name, fieldValue);\r\n if (isBlurEvent) {\r\n field._f.onBlur && field._f.onBlur(event);\r\n }\r\n else if (field._f.onChange) {\r\n field._f.onChange(event);\r\n }\r\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent, false);\r\n const shouldRender = !isEmptyObject(fieldState) || watched;\r\n !isBlurEvent &&\r\n _subjects.watch.next({\r\n name,\r\n type: event.type,\r\n });\r\n if (shouldSkipValidation) {\r\n return (shouldRender &&\r\n _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\r\n }\r\n !isBlurEvent && watched && _subjects.state.next({});\r\n validateFields[name] = validateFields[name] ? +1 : 1;\r\n _subjects.state.next({\r\n isValidating: true,\r\n });\r\n if (_options.resolver) {\r\n const { errors } = await _executeSchema([name]);\r\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\r\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\r\n error = errorLookupResult.error;\r\n name = errorLookupResult.name;\r\n isValid = isEmptyObject(errors);\r\n }\r\n else {\r\n error = (await validateField(field, get(_formValues, name), shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\r\n isValid = await _updateValid(true);\r\n }\r\n field._f.deps &&\r\n trigger(field._f.deps);\r\n shouldRenderByError(false, name, isValid, error, fieldState);\r\n }\r\n };\r\n const trigger = async (name, options = {}) => {\r\n let isValid;\r\n let validationResult;\r\n const fieldNames = convertToArrayPayload(name);\r\n _subjects.state.next({\r\n isValidating: true,\r\n });\r\n if (_options.resolver) {\r\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\r\n isValid = isEmptyObject(errors);\r\n validationResult = name\r\n ? !fieldNames.some((name) => get(errors, name))\r\n : isValid;\r\n }\r\n else if (name) {\r\n validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\r\n const field = get(_fields, fieldName);\r\n return await executeBuildInValidation(field && field._f ? { [fieldName]: field } : field);\r\n }))).every(Boolean);\r\n !(!validationResult && !_formState.isValid) && _updateValid();\r\n }\r\n else {\r\n validationResult = isValid = await executeBuildInValidation(_fields);\r\n }\r\n _subjects.state.next({\r\n ...(!isString(name) ||\r\n (_proxyFormState.isValid && isValid !== _formState.isValid)\r\n ? {}\r\n : { name }),\r\n ...(_options.resolver ? { isValid } : {}),\r\n errors: _formState.errors,\r\n isValidating: false,\r\n });\r\n options.shouldFocus &&\r\n !validationResult &&\r\n focusFieldBy(_fields, (key) => get(_formState.errors, key), name ? fieldNames : _names.mount);\r\n return validationResult;\r\n };\r\n const getValues = (fieldNames) => {\r\n const values = {\r\n ..._defaultValues,\r\n ...(_stateFlags.mount ? _formValues : {}),\r\n };\r\n return isUndefined(fieldNames)\r\n ? values\r\n : isString(fieldNames)\r\n ? get(values, fieldNames)\r\n : fieldNames.map((name) => get(values, name));\r\n };\r\n const getFieldState = (name, formState) => ({\r\n invalid: !!get((formState || _formState).errors, name),\r\n isDirty: !!get((formState || _formState).dirtyFields, name),\r\n isTouched: !!get((formState || _formState).touchedFields, name),\r\n error: get((formState || _formState).errors, name),\r\n });\r\n const clearErrors = (name) => {\r\n name\r\n ? convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName))\r\n : (_formState.errors = {});\r\n _subjects.state.next({\r\n errors: _formState.errors,\r\n });\r\n };\r\n const setError = (name, error, options) => {\r\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\r\n set(_formState.errors, name, {\r\n ...error,\r\n ref,\r\n });\r\n _subjects.state.next({\r\n name,\r\n errors: _formState.errors,\r\n isValid: false,\r\n });\r\n options && options.shouldFocus && ref && ref.focus && ref.focus();\r\n };\r\n const watch = (name, defaultValue) => isFunction(name)\r\n ? _subjects.watch.subscribe({\r\n next: (info) => name(_getWatch(undefined, defaultValue), info),\r\n })\r\n : _getWatch(name, defaultValue, true);\r\n const unregister = (name, options = {}) => {\r\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\r\n _names.mount.delete(fieldName);\r\n _names.array.delete(fieldName);\r\n if (get(_fields, fieldName)) {\r\n if (!options.keepValue) {\r\n unset(_fields, fieldName);\r\n unset(_formValues, fieldName);\r\n }\r\n !options.keepError && unset(_formState.errors, fieldName);\r\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\r\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\r\n !_options.shouldUnregister &&\r\n !options.keepDefaultValue &&\r\n unset(_defaultValues, fieldName);\r\n }\r\n }\r\n _subjects.watch.next({});\r\n _subjects.state.next({\r\n ..._formState,\r\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\r\n });\r\n !options.keepIsValid && _updateValid();\r\n };\r\n const register = (name, options = {}) => {\r\n let field = get(_fields, name);\r\n const disabledIsDefined = isBoolean(options.disabled);\r\n set(_fields, name, {\r\n _f: {\r\n ...(field && field._f ? field._f : { ref: { name } }),\r\n name,\r\n mount: true,\r\n ...options,\r\n },\r\n });\r\n _names.mount.add(name);\r\n field\r\n ? disabledIsDefined &&\r\n set(_formValues, name, options.disabled\r\n ? undefined\r\n : get(_formValues, name, getFieldValue(field._f)))\r\n : updateValidAndValue(name, true, options.value);\r\n return {\r\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\r\n ...(_options.shouldUseNativeValidation\r\n ? {\r\n required: !!options.required,\r\n min: getRuleValue(options.min),\r\n max: getRuleValue(options.max),\r\n minLength: getRuleValue(options.minLength),\r\n maxLength: getRuleValue(options.maxLength),\r\n pattern: getRuleValue(options.pattern),\r\n }\r\n : {}),\r\n name,\r\n onChange,\r\n onBlur: onChange,\r\n ref: (ref) => {\r\n if (ref) {\r\n register(name, options);\r\n field = get(_fields, name);\r\n const fieldRef = isUndefined(ref.value)\r\n ? ref.querySelectorAll\r\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\r\n : ref\r\n : ref;\r\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\r\n const refs = field._f.refs || [];\r\n if (radioOrCheckbox\r\n ? refs.find((option) => option === fieldRef)\r\n : fieldRef === field._f.ref) {\r\n return;\r\n }\r\n set(_fields, name, {\r\n _f: {\r\n ...field._f,\r\n ...(radioOrCheckbox\r\n ? {\r\n refs: [\r\n ...refs.filter(live),\r\n fieldRef,\r\n ...(!!Array.isArray(get(_defaultValues, name))\r\n ? [{}]\r\n : []),\r\n ],\r\n ref: { type: fieldRef.type, name },\r\n }\r\n : { ref: fieldRef }),\r\n },\r\n });\r\n updateValidAndValue(name, false, undefined, fieldRef);\r\n }\r\n else {\r\n field = get(_fields, name, {});\r\n if (field._f) {\r\n field._f.mount = false;\r\n }\r\n (_options.shouldUnregister || options.shouldUnregister) &&\r\n !(isNameInFieldArray(_names.array, name) && _stateFlags.action) &&\r\n _names.unMount.add(name);\r\n }\r\n },\r\n };\r\n };\r\n const handleSubmit = (onValid, onInvalid) => async (e) => {\r\n if (e) {\r\n e.preventDefault && e.preventDefault();\r\n e.persist && e.persist();\r\n }\r\n let hasNoPromiseError = true;\r\n let fieldValues = cloneObject(_formValues);\r\n _subjects.state.next({\r\n isSubmitting: true,\r\n });\r\n try {\r\n if (_options.resolver) {\r\n const { errors, values } = await _executeSchema();\r\n _formState.errors = errors;\r\n fieldValues = values;\r\n }\r\n else {\r\n await executeBuildInValidation(_fields);\r\n }\r\n if (isEmptyObject(_formState.errors)) {\r\n _subjects.state.next({\r\n errors: {},\r\n isSubmitting: true,\r\n });\r\n await onValid(fieldValues, e);\r\n }\r\n else {\r\n if (onInvalid) {\r\n await onInvalid({ ..._formState.errors }, e);\r\n }\r\n _options.shouldFocusError &&\r\n focusFieldBy(_fields, (key) => get(_formState.errors, key), _names.mount);\r\n }\r\n }\r\n catch (err) {\r\n hasNoPromiseError = false;\r\n throw err;\r\n }\r\n finally {\r\n _formState.isSubmitted = true;\r\n _subjects.state.next({\r\n isSubmitted: true,\r\n isSubmitting: false,\r\n isSubmitSuccessful: isEmptyObject(_formState.errors) && hasNoPromiseError,\r\n submitCount: _formState.submitCount + 1,\r\n errors: _formState.errors,\r\n });\r\n }\r\n };\r\n const resetField = (name, options = {}) => {\r\n if (get(_fields, name)) {\r\n if (isUndefined(options.defaultValue)) {\r\n setValue(name, get(_defaultValues, name));\r\n }\r\n else {\r\n setValue(name, options.defaultValue);\r\n set(_defaultValues, name, options.defaultValue);\r\n }\r\n if (!options.keepTouched) {\r\n unset(_formState.touchedFields, name);\r\n }\r\n if (!options.keepDirty) {\r\n unset(_formState.dirtyFields, name);\r\n _formState.isDirty = options.defaultValue\r\n ? _getDirty(name, get(_defaultValues, name))\r\n : _getDirty();\r\n }\r\n if (!options.keepError) {\r\n unset(_formState.errors, name);\r\n _proxyFormState.isValid && _updateValid();\r\n }\r\n _subjects.state.next({ ..._formState });\r\n }\r\n };\r\n const reset = (formValues, keepStateOptions = {}) => {\r\n const updatedValues = formValues || _defaultValues;\r\n const cloneUpdatedValues = cloneObject(updatedValues);\r\n const values = formValues && !isEmptyObject(formValues)\r\n ? cloneUpdatedValues\r\n : _defaultValues;\r\n if (!keepStateOptions.keepDefaultValues) {\r\n _defaultValues = updatedValues;\r\n }\r\n if (!keepStateOptions.keepValues) {\r\n if (keepStateOptions.keepDirtyValues) {\r\n for (const fieldName of _names.mount) {\r\n get(_formState.dirtyFields, fieldName)\r\n ? set(values, fieldName, get(_formValues, fieldName))\r\n : setValue(fieldName, get(values, fieldName));\r\n }\r\n }\r\n else {\r\n if (isWeb && isUndefined(formValues)) {\r\n for (const name of _names.mount) {\r\n const field = get(_fields, name);\r\n if (field && field._f) {\r\n const fieldReference = Array.isArray(field._f.refs)\r\n ? field._f.refs[0]\r\n : field._f.ref;\r\n try {\r\n isHTMLElement(fieldReference) &&\r\n fieldReference.closest('form').reset();\r\n break;\r\n }\r\n catch (_a) { }\r\n }\r\n }\r\n }\r\n _fields = {};\r\n }\r\n _formValues = props.shouldUnregister\r\n ? keepStateOptions.keepDefaultValues\r\n ? cloneObject(_defaultValues)\r\n : {}\r\n : cloneUpdatedValues;\r\n _subjects.array.next({\r\n values,\r\n });\r\n _subjects.watch.next({\r\n values,\r\n });\r\n }\r\n _names = {\r\n mount: new Set(),\r\n unMount: new Set(),\r\n array: new Set(),\r\n watch: new Set(),\r\n watchAll: false,\r\n focus: '',\r\n };\r\n _stateFlags.mount =\r\n !_proxyFormState.isValid || !!keepStateOptions.keepIsValid;\r\n _stateFlags.watch = !!props.shouldUnregister;\r\n _subjects.state.next({\r\n submitCount: keepStateOptions.keepSubmitCount\r\n ? _formState.submitCount\r\n : 0,\r\n isDirty: keepStateOptions.keepDirty || keepStateOptions.keepDirtyValues\r\n ? _formState.isDirty\r\n : !!(keepStateOptions.keepDefaultValues &&\r\n !deepEqual(formValues, _defaultValues)),\r\n isSubmitted: keepStateOptions.keepIsSubmitted\r\n ? _formState.isSubmitted\r\n : false,\r\n dirtyFields: keepStateOptions.keepDirty || keepStateOptions.keepDirtyValues\r\n ? _formState.dirtyFields\r\n : keepStateOptions.keepDefaultValues && formValues\r\n ? getDirtyFields(_defaultValues, formValues)\r\n : {},\r\n touchedFields: keepStateOptions.keepTouched\r\n ? _formState.touchedFields\r\n : {},\r\n errors: keepStateOptions.keepErrors\r\n ? _formState.errors\r\n : {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n });\r\n };\r\n const setFocus = (name, options = {}) => {\r\n const field = get(_fields, name)._f;\r\n const fieldRef = field.refs ? field.refs[0] : field.ref;\r\n options.shouldSelect ? fieldRef.select() : fieldRef.focus();\r\n };\r\n return {\r\n control: {\r\n register,\r\n unregister,\r\n getFieldState,\r\n _executeSchema,\r\n _getWatch,\r\n _getDirty,\r\n _updateValid,\r\n _removeUnmounted,\r\n _updateFieldArray,\r\n _getFieldArray,\r\n _subjects,\r\n _proxyFormState,\r\n get _fields() {\r\n return _fields;\r\n },\r\n get _formValues() {\r\n return _formValues;\r\n },\r\n get _stateFlags() {\r\n return _stateFlags;\r\n },\r\n set _stateFlags(value) {\r\n _stateFlags = value;\r\n },\r\n get _defaultValues() {\r\n return _defaultValues;\r\n },\r\n get _names() {\r\n return _names;\r\n },\r\n set _names(value) {\r\n _names = value;\r\n },\r\n get _formState() {\r\n return _formState;\r\n },\r\n set _formState(value) {\r\n _formState = value;\r\n },\r\n get _options() {\r\n return _options;\r\n },\r\n set _options(value) {\r\n _options = {\r\n ..._options,\r\n ...value,\r\n };\r\n },\r\n },\r\n trigger,\r\n register,\r\n handleSubmit,\r\n watch,\r\n setValue,\r\n getValues,\r\n reset,\r\n resetField,\r\n clearErrors,\r\n unregister,\r\n setError,\r\n setFocus,\r\n getFieldState,\r\n };\r\n}\n\n/**\r\n * Custom hook to mange the entire form.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\r\n *\r\n * @param props - form configuration and validation parameters.\r\n *\r\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\r\n * const onSubmit = data => console.log(data);\r\n *\r\n * console.log(watch(\"example\"));\r\n *\r\n * return (\r\n *
\r\n * \r\n * \r\n * {errors.exampleRequired && This field is required}\r\n * \r\n *
\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useForm(props = {}) {\r\n const _formControl = React.useRef();\r\n const [formState, updateFormState] = React.useState({\r\n isDirty: false,\r\n isValidating: false,\r\n dirtyFields: {},\r\n isSubmitted: false,\r\n submitCount: 0,\r\n touchedFields: {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n isValid: false,\r\n errors: {},\r\n });\r\n if (_formControl.current) {\r\n _formControl.current.control._options = props;\r\n }\r\n else {\r\n _formControl.current = {\r\n ...createFormControl(props),\r\n formState,\r\n };\r\n }\r\n const control = _formControl.current.control;\r\n const callback = React.useCallback((value) => {\r\n if (shouldRenderFormState(value, control._proxyFormState, true)) {\r\n control._formState = {\r\n ...control._formState,\r\n ...value,\r\n };\r\n updateFormState({ ...control._formState });\r\n }\r\n }, [control]);\r\n useSubscribe({\r\n subject: control._subjects.state,\r\n callback,\r\n });\r\n React.useEffect(() => {\r\n if (!control._stateFlags.mount) {\r\n control._proxyFormState.isValid && control._updateValid();\r\n control._stateFlags.mount = true;\r\n }\r\n if (control._stateFlags.watch) {\r\n control._stateFlags.watch = false;\r\n control._subjects.state.next({});\r\n }\r\n control._removeUnmounted();\r\n });\r\n _formControl.current.formState = getProxyFormState(formState, control._proxyFormState);\r\n return _formControl.current;\r\n}\n\nexport { Controller, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n"],"names":["ForwardRef","react__WEBPACK_IMPORTED_MODULE_0__","forwardRef","props","svgRef","createElement","Object","assign","xmlns","viewBox","fill","ref","fillRule","d","clipRule","__webpack_exports__","isCheckBoxInput","element","type","isDateObject","value","Date","isNullOrUndefined","isObjectType","isObject","Array","isArray","getEventValue","event","target","checked","getNodeParentName","name","substring","search","isNameInFieldArray","names","has","compact","filter","Boolean","isUndefined","val","undefined","get","obj","path","defaultValue","result","split","reduce","key","EVENTS","BLUR","FOCUS_OUT","CHANGE","VALIDATION_MODE","onBlur","onChange","onSubmit","onTouched","all","INPUT_VALIDATION_RULES","max","min","maxLength","minLength","pattern","required","validate","HookFormContext","createContext","useFormContext","useContext","FormProvider","children","data","Provider","getProxyFormState","formState","_proxyFormState","localProxyFormState","isRoot","defineProperty","_key","isEmptyObject","keys","length","shouldRenderFormState","formStateData","find","convertToArrayPayload","isString","generateWatchOutput","_names","formValues","isGlobal","watch","add","map","fieldName","watchAll","isFunction","objectHasFunction","appendErrors","validateAllFieldCriteria","errors","message","types","isKey","test","stringToPath","input","replace","set","object","index","tempPath","lastIndex","newValue","objValue","focusFieldBy","fields","callback","fieldsNames","field","_f","currentField","focus","refs","isWatched","isBlurEvent","some","startsWith","watchName","slice","isWeb","window","HTMLElement","document","cloneObject","copy","Set","Blob","FileList","unset","previousObjRef","updatePath","childObject","baseGet","k","objectRef","currentPaths","currentPathsLength","item","createSubject","_observers","next","observer","subscribe","push","unsubscribe","o","observers","isPrimitive","deepEqual","object1","object2","getTime","keys1","keys2","val1","includes","val2","getValidationModes","isOnSubmit","mode","isOnBlur","isOnChange","isOnAll","isOnTouch","isBoolean","isFileInput","isHTMLElement","isMultipleSelect","isRadioInput","isRadioOrCheckbox","live","isConnected","markFieldsDirty","isParentNodeArray","getDirtyFields","defaultValues","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","defaultResult","isValid","validResult","getCheckboxValue","options","values","option","disabled","attributes","getFieldValueAs","valueAsNumber","valueAsDate","setValueAs","NaN","defaultReturn","getRadioValue","previous","getFieldValue","every","files","selectedOptions","getResolverOptions","_fields","criteriaMode","shouldUseNativeValidation","isRegex","RegExp","getRuleValue","rule","source","hasValidation","mount","schemaErrorLookup","error","join","foundError","pop","skipValidation","isTouched","isSubmitted","reValidateMode","unsetEmptyArray","isMessage","isValidElement","getValidateError","getValueAndMessage","validationData","validateField","inputValue","inputRef","setCustomValidity","reportValidity","isRadio","isCheckBox","isEmpty","appendErrorsCurry","bind","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","isNaN","valueDate","valueNumber","maxLengthOutput","minLengthOutput","patternValue","match","validateError","validationResult","defaultOptions","shouldFocusError","useForm","_formControl","useRef","updateFormState","useState","isDirty","isValidating","dirtyFields","submitCount","touchedFields","isSubmitting","isSubmitSuccessful","current","control","_options","createFormControl","delayErrorCallback","_formState","_defaultValues","_formValues","shouldUnregister","_stateFlags","action","unMount","array","timer","validateFields","_subjects","state","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","debounce","wait","args","clearTimeout","setTimeout","_updateValid","shouldSkipRender","resolver","_executeSchema","executeBuildInValidation","_updateFieldArray","method","shouldSetValues","shouldUpdateFieldsAndState","fieldValues","argA","argB","_getDirty","updateErrors","updateValidAndValue","shouldSkipSetValueAs","defaultChecked","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldRender","isFieldDirty","output","isPreviousFieldTouched","isPreviousFormDirty","isPreviousFieldDirty","isCurrentFieldPristine","shouldRenderByError","fieldState","previousFieldError","shouldUpdateValid","delayError","updatedFormState","v","context","executeSchemaAndUpdateState","shouldOnlyCheckValid","valid","fieldReference","fieldError","_removeUnmounted","unregister","getValues","_getWatch","_getFieldArray","forEach","selectRef","selected","checkboxRef","radioRef","shouldTouch","shouldValidate","trigger","setValues","fieldKey","setValue","isFieldArray","cloneValue","shouldSkipValidation","deps","watched","previousErrorLookupResult","errorLookupResult","fieldNames","Promise","shouldFocus","getFieldState","invalid","clearErrors","inputName","setError","info","delete","keepValue","keepError","keepDirty","keepTouched","keepDefaultValue","keepIsValid","register","disabledIsDefined","fieldRef","querySelectorAll","radioOrCheckbox","handleSubmit","onValid","onInvalid","e","preventDefault","persist","hasNoPromiseError","err","resetField","reset","keepStateOptions","updatedValues","cloneUpdatedValues","keepDefaultValues","keepValues","keepDirtyValues","closest","_a","keepSubmitCount","keepIsSubmitted","keepErrors","setFocus","shouldSelect","select","useCallback","useSubscribe","_props","useEffect","tearDown","subscription","subject"],"sourceRoot":""}