{"version":3,"file":"js/3872-abd5d0d5b841503b1de3.js","mappings":"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","sources":["webpack://uk-b2c/./node_modules/react-dom/client.js","webpack://uk-b2c/./node_modules/react-hook-form/dist/index.esm.mjs"],"sourcesContent":["'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function (c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function (c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}","const _excluded = [\"children\"],\n _excluded2 = [\"name\"],\n _excluded3 = [\"_f\"],\n _excluded4 = [\"_f\"];\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function () {}; return { s: F, n: function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function (e) { throw e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function () { it = it.call(o); }, n: function () { var step = it.next(); normalCompletion = step.done; return step; }, e: function (e) { didErr = true; err = e; }, f: function () { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nvar isCheckBoxInput = element => element.type === 'checkbox';\nvar isDateObject = value => value instanceof Date;\nvar isNullOrUndefined = value => value == null;\nconst isObjectType = value => typeof value === 'object';\nvar isObject = value => !isNullOrUndefined(value) && !Array.isArray(value) && isObjectType(value) && !isDateObject(value);\nvar getEventValue = event => isObject(event) && event.target ? isCheckBoxInput(event.target) ? event.target.checked : event.target.value : event;\nvar getNodeParentName = name => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\nvar isPlainObject = tempObject => {\n const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;\n return isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf');\n};\nvar isWeb = typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined' && typeof document !== 'undefined';\nfunction cloneObject(data) {\n let copy;\n const isArray = Array.isArray(data);\n if (data instanceof Date) {\n copy = new Date(data);\n } else if (data instanceof Set) {\n copy = new Set(data);\n } else if (!(isWeb && (data instanceof Blob || data instanceof FileList)) && (isArray || isObject(data))) {\n copy = isArray ? [] : {};\n if (!Array.isArray(data) && !isPlainObject(data)) {\n copy = data;\n } else {\n for (const key in data) {\n copy[key] = cloneObject(data[key]);\n }\n }\n } else {\n return data;\n }\n return copy;\n}\nvar compact = value => Array.isArray(value) ? value.filter(Boolean) : [];\nvar isUndefined = val => val === undefined;\nvar get = (obj, path, defaultValue) => {\n if (!path || !isObject(obj)) {\n return defaultValue;\n }\n const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], obj);\n return isUndefined(result) || result === obj ? isUndefined(obj[path]) ? defaultValue : obj[path] : result;\n};\nconst EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change'\n};\nconst VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all'\n};\nconst INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate'\n};\nconst HookFormContext = /*#__PURE__*/React.createContext(null);\n/**\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}.\n *\n * @remarks\n * [API](https://react-hook-form.com/api/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
\n * \n * \n * \n *
\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nconst useFormContext = () => React.useContext(HookFormContext);\n/**\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}.\n *\n * @remarks\n * [API](https://react-hook-form.com/api/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useFrom methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
\n * \n * \n * \n *
\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nconst FormProvider = props => {\n const children = props.children,\n data = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(HookFormContext.Provider, {\n value: data\n }, children);\n};\nvar getProxyFormState = function (formState, control, localProxyFormState) {\n let isRoot = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n const result = {\n defaultValues: control._defaultValues\n };\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key;\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n }\n });\n }\n return result;\n};\nvar isEmptyObject = value => isObject(value) && !Object.keys(value).length;\nvar shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, isRoot) => {\n updateFormState(formStateData);\n const name = formStateData.name,\n formState = _objectWithoutProperties(formStateData, _excluded2);\n return isEmptyObject(formState) || Object.keys(formState).length >= Object.keys(_proxyFormState).length || Object.keys(formState).find(key => _proxyFormState[key] === (!isRoot || VALIDATION_MODE.all));\n};\nvar convertToArrayPayload = value => Array.isArray(value) ? value : [value];\nvar shouldSubscribeByName = (name, signalName, exact) => exact && signalName ? name === signalName : !name || !signalName || name === signalName || convertToArrayPayload(name).some(currentName => currentName && (currentName.startsWith(signalName) || signalName.startsWith(currentName)));\nfunction useSubscribe(props) {\n const _props = React.useRef(props);\n _props.current = props;\n React.useEffect(() => {\n const subscription = !props.disabled && _props.current.subject && _props.current.subject.subscribe({\n next: _props.current.next\n });\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n\n/**\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.\n *\n * @remarks\n * [API](https://react-hook-form.com/api/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n *
\n * \n * {dirtyFields.firstName &&

Field is dirty.

}\n * \n *
\n * );\n * }\n * ```\n */\nfunction useFormState(props) {\n const methods = useFormContext();\n const _ref = props || {},\n _ref$control = _ref.control,\n control = _ref$control === void 0 ? methods.control : _ref$control,\n disabled = _ref.disabled,\n name = _ref.name,\n exact = _ref.exact;\n const _React$useState = React.useState(control._formState),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n formState = _React$useState2[0],\n updateFormState = _React$useState2[1];\n const _mounted = React.useRef(true);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false\n });\n const _name = React.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n next: value => _mounted.current && shouldSubscribeByName(_name.current, value.name, exact) && shouldRenderFormState(value, _localProxyFormState.current, control._updateFormState) && updateFormState(_objectSpread(_objectSpread({}, control._formState), value)),\n subject: control._subjects.state\n });\n React.useEffect(() => {\n _mounted.current = true;\n _localProxyFormState.current.isValid && control._updateValid(true);\n return () => {\n _mounted.current = false;\n };\n }, [control]);\n return getProxyFormState(formState, control, _localProxyFormState.current, false);\n}\nvar isString = value => typeof value === 'string';\nvar generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n if (Array.isArray(names)) {\n return names.map(fieldName => (isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)));\n }\n isGlobal && (_names.watchAll = true);\n return formValues;\n};\n\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/api/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { watch } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nfunction useWatch(props) {\n const methods = useFormContext();\n const _ref2 = props || {},\n _ref2$control = _ref2.control,\n control = _ref2$control === void 0 ? methods.control : _ref2$control,\n name = _ref2.name,\n defaultValue = _ref2.defaultValue,\n disabled = _ref2.disabled,\n exact = _ref2.exact;\n const _name = React.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n subject: control._subjects.values,\n next: formState => {\n if (shouldSubscribeByName(_name.current, formState.name, exact)) {\n updateValue(cloneObject(generateWatchOutput(_name.current, control._names, formState.values || control._formValues, false, defaultValue)));\n }\n }\n });\n const _React$useState3 = React.useState(control._getWatch(name, defaultValue)),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n value = _React$useState4[0],\n updateValue = _React$useState4[1];\n React.useEffect(() => control._removeUnmounted());\n return value;\n}\nvar isKey = value => /^\\w*$/.test(value);\nvar stringToPath = input => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\nfunction set(object, path, value) {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue = isObject(objValue) || Array.isArray(objValue) ? objValue : !isNaN(+tempPath[index + 1]) ? [] : {};\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n}\n\n/**\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.\n *\n * @remarks\n * [API](https://react-hook-form.com/api/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n *
\n * \n *

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

\n *

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

\n *
\n * );\n * }\n * ```\n */\nfunction useController(props) {\n const methods = useFormContext();\n const name = props.name,\n _props$control = props.control,\n control = _props$control === void 0 ? methods.control : _props$control,\n shouldUnregister = props.shouldUnregister;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const value = useWatch({\n control,\n name,\n defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\n exact: true\n });\n const formState = useFormState({\n control,\n name\n });\n const _registerProps = React.useRef(control.register(name, _objectSpread(_objectSpread({}, props.rules), {}, {\n value\n })));\n React.useEffect(() => {\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\n const updateMounted = (name, value) => {\n const field = get(control._fields, name);\n if (field) {\n field._f.mount = value;\n }\n };\n updateMounted(name, true);\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n return () => {\n (isArrayField ? _shouldUnregisterField && !control._state.action : _shouldUnregisterField) ? control.unregister(name) : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n return {\n field: {\n name,\n value,\n onChange: React.useCallback(event => _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name\n },\n type: EVENTS.CHANGE\n }), [name]),\n onBlur: React.useCallback(() => _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name\n },\n type: EVENTS.BLUR\n }), [name, control]),\n ref: elm => {\n const field = get(control._fields, name);\n if (field && elm) {\n field._f.ref = {\n focus: () => elm.focus(),\n select: () => elm.select(),\n setCustomValidity: message => elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity()\n };\n }\n }\n },\n formState,\n fieldState: Object.defineProperties({}, {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name)\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name)\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name)\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name)\n }\n })\n };\n}\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\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)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n *
\n * (\n * <>\n * \n *

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

\n *

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

\n * \n * )}\n * />\n * \n * );\n * }\n * ```\n */\nconst Controller = props => props.render(useController(props));\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria ? _objectSpread(_objectSpread({}, errors[name]), {}, {\n types: _objectSpread(_objectSpread({}, errors[name] && errors[name].types ? errors[name].types : {}), {}, {\n [type]: message || true\n })\n}) : {};\nconst focusFieldBy = (fields, callback, fieldsNames) => {\n var _iterator = _createForOfIteratorHelper(fieldsNames || Object.keys(fields)),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n const key = _step.value;\n const field = get(fields, key);\n if (field) {\n const _f = field._f,\n currentField = _objectWithoutProperties(field, _excluded3);\n if (_f && callback(_f.name)) {\n if (_f.ref.focus) {\n _f.ref.focus();\n break;\n } else if (_f.refs && _f.refs[0].focus) {\n _f.refs[0].focus();\n break;\n }\n } else if (isObject(currentField)) {\n focusFieldBy(currentField, callback);\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n};\nvar generateId = () => {\n const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\n const r = (Math.random() * 16 + d) % 16 | 0;\n return (c == 'x' ? r : r & 0x3 | 0x8).toString(16);\n });\n};\nvar getFocusFieldName = function (name, index) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return options.shouldFocus || isUndefined(options.shouldFocus) ? options.focusName || `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.` : '';\n};\nvar getValidationModes = mode => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched\n});\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent && (_names.watchAll || _names.watch.has(name) || [..._names.watch].some(watchName => name.startsWith(watchName) && /^\\.\\w+/.test(name.slice(watchName.length))));\nvar updateFieldArrayRootError = (errors, error, name) => {\n const fieldArrayErrors = compact(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\nvar isBoolean = value => typeof value === 'boolean';\nvar isFileInput = element => element.type === 'file';\nvar isFunction = value => typeof value === 'function';\nvar isHTMLElement = value => {\n if (!isWeb) {\n return false;\n }\n const owner = value ? value.ownerDocument : 0;\n return value instanceof (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement);\n};\nvar isMessage = value => isString(value);\nvar isRadioInput = element => element.type === 'radio';\nvar isRegex = value => value instanceof RegExp;\nconst defaultResult = {\n value: false,\n isValid: false\n};\nconst validResult = {\n value: true,\n isValid: true\n};\nvar getCheckboxValue = options => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options.filter(option => option && option.checked && !option.disabled).map(option => option.value);\n return {\n value: values,\n isValid: !!values.length\n };\n }\n return options[0].checked && !options[0].disabled ?\n // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value) ? isUndefined(options[0].value) || options[0].value === '' ? validResult : {\n value: options[0].value,\n isValid: true\n } : validResult : defaultResult;\n }\n return defaultResult;\n};\nconst defaultReturn = {\n isValid: false,\n value: null\n};\nvar getRadioValue = options => Array.isArray(options) ? options.reduce((previous, option) => option && option.checked && !option.disabled ? {\n isValid: true,\n value: option.value\n} : previous, defaultReturn) : defaultReturn;\nfunction getValidateError(result, ref) {\n let type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'validate';\n if (isMessage(result) || Array.isArray(result) && result.every(isMessage) || isBoolean(result) && !result) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref\n };\n }\n}\nvar getValueAndMessage = validationData => isObject(validationData) && !isRegex(validationData) ? validationData : {\n value: validationData,\n message: ''\n};\nvar validateField = async (field, formValues, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {\n const _field$_f = field._f,\n ref = _field$_f.ref,\n refs = _field$_f.refs,\n required = _field$_f.required,\n maxLength = _field$_f.maxLength,\n minLength = _field$_f.minLength,\n min = _field$_f.min,\n max = _field$_f.max,\n pattern = _field$_f.pattern,\n validate = _field$_f.validate,\n name = _field$_f.name,\n valueAsNumber = _field$_f.valueAsNumber,\n mount = _field$_f.mount,\n disabled = _field$_f.disabled;\n const inputValue = get(formValues, name);\n if (!mount || disabled) {\n return {};\n }\n const inputRef = refs ? refs[0] : ref;\n const setCustomValidity = message => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty = (valueAsNumber || isFileInput(ref)) && isUndefined(ref.value) && isUndefined(inputValue) || isHTMLElement(ref) && ref.value === '' || inputValue === '' || Array.isArray(inputValue) && !inputValue.length;\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\n const getMinMaxMessage = function (exceedMax, maxLengthMessage, minLengthMessage) {\n let maxType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : INPUT_VALIDATION_RULES.maxLength;\n let minType = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : INPUT_VALIDATION_RULES.minLength;\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = _objectSpread({\n type: exceedMax ? maxType : minType,\n message,\n ref\n }, appendErrorsCurry(exceedMax ? maxType : minType, message));\n };\n if (isFieldArray ? !Array.isArray(inputValue) || !inputValue.length : required && (!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue)) || isBoolean(inputValue) && !inputValue || isCheckBox && !getCheckboxValue(refs).isValid || isRadio && !getRadioValue(refs).isValid)) {\n const _ref3 = isMessage(required) ? {\n value: !!required,\n message: required\n } : getValueAndMessage(required),\n value = _ref3.value,\n message = _ref3.message;\n if (value) {\n error[name] = _objectSpread({\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef\n }, appendErrorsCurry(INPUT_VALIDATION_RULES.required, message));\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {\n const valueNumber = ref.valueAsNumber || (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n } else {\n const valueDate = ref.valueAsDate || new Date(inputValue);\n const convertTimeToDate = time => new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value) : isWeek ? inputValue > maxOutput.value : valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value) : isWeek ? inputValue < minOutput.value : valueDate < new Date(minOutput.value);\n }\n }\n if (exceedMax || exceedMin) {\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if ((maxLength || minLength) && !isEmpty && (isString(inputValue) || isFieldArray && Array.isArray(inputValue))) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) && inputValue.length > +maxLengthOutput.value;\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) && inputValue.length < +minLengthOutput.value;\n if (exceedMax || exceedMin) {\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if (pattern && !isEmpty && isString(inputValue)) {\n const _getValueAndMessage = getValueAndMessage(pattern),\n patternValue = _getValueAndMessage.value,\n message = _getValueAndMessage.message;\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = _objectSpread({\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref\n }, appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message));\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n if (validateError) {\n error[name] = _objectSpread(_objectSpread({}, validateError), appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message));\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n } else if (isObject(validate)) {\n let validationResult = {};\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n const validateError = getValidateError(await validate[key](inputValue, formValues), inputRef, key);\n if (validateError) {\n validationResult = _objectSpread(_objectSpread({}, validateError), appendErrorsCurry(key, validateError.message));\n setCustomValidity(validateError.message);\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n if (!isEmptyObject(validationResult)) {\n error[name] = _objectSpread({\n ref: inputRef\n }, validationResult);\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n setCustomValidity(true);\n return error;\n};\nfunction append(data, value) {\n return [...data, ...convertToArrayPayload(value)];\n}\nvar fillEmptyArray = value => Array.isArray(value) ? value.map(() => undefined) : undefined;\nfunction insert(data, index, value) {\n return [...data.slice(0, index), ...convertToArrayPayload(value), ...data.slice(index)];\n}\nvar moveArrayAt = (data, from, to) => {\n if (!Array.isArray(data)) {\n return [];\n }\n if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n return data;\n};\nfunction prepend(data, value) {\n return [...convertToArrayPayload(value), ...convertToArrayPayload(data)];\n}\nfunction removeAtIndexes(data, indexes) {\n let i = 0;\n const temp = [...data];\n var _iterator2 = _createForOfIteratorHelper(indexes),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n const index = _step2.value;\n temp.splice(index - i, 1);\n i++;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return compact(temp).length ? temp : [];\n}\nvar removeArrayAt = (data, index) => isUndefined(index) ? [] : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\nvar swapArrayAt = (data, indexA, indexB) => {\n data[indexA] = [data[indexB], data[indexB] = data[indexA]][0];\n};\nfunction baseGet(object, updatePath) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n return object;\n}\nfunction isEmptyArray(obj) {\n for (const key in obj) {\n if (!isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\nfunction unset(object, path) {\n const paths = Array.isArray(path) ? path : isKey(path) ? [path] : stringToPath(path);\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n const index = paths.length - 1;\n const key = paths[index];\n if (childObject) {\n delete childObject[key];\n }\n if (index !== 0 && (isObject(childObject) && isEmptyObject(childObject) || Array.isArray(childObject) && isEmptyArray(childObject))) {\n unset(object, paths.slice(0, -1));\n }\n return object;\n}\nvar updateAt = (fieldValues, index, value) => {\n fieldValues[index] = value;\n return fieldValues;\n};\n\n/**\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. • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) • [Video](https://youtu.be/4MrbfGSFY2A)\n *\n * @remarks\n * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\n *\n * @param props - useFieldArray props\n *\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\n * defaultValues: {\n * test: []\n * }\n * });\n * const { fields, append } = useFieldArray({\n * control,\n * name: \"test\"\n * });\n *\n * return (\n *
console.log(data))}>\n * {fields.map((item, index) => (\n * \n * ))}\n * \n * \n *
\n * );\n * }\n * ```\n */\nfunction useFieldArray(props) {\n const methods = useFormContext();\n const _props$control2 = props.control,\n control = _props$control2 === void 0 ? methods.control : _props$control2,\n name = props.name,\n _props$keyName = props.keyName,\n keyName = _props$keyName === void 0 ? 'id' : _props$keyName,\n shouldUnregister = props.shouldUnregister;\n const _React$useState5 = React.useState(control._getFieldArray(name)),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n fields = _React$useState6[0],\n setFields = _React$useState6[1];\n const ids = React.useRef(control._getFieldArray(name).map(generateId));\n const _fieldIds = React.useRef(fields);\n const _name = React.useRef(name);\n const _actioned = React.useRef(false);\n _name.current = name;\n _fieldIds.current = fields;\n control._names.array.add(name);\n props.rules && control.register(name, props.rules);\n useSubscribe({\n next: _ref4 => {\n let values = _ref4.values,\n fieldArrayName = _ref4.name;\n if (fieldArrayName === _name.current || !fieldArrayName) {\n const fieldValues = get(values, _name.current);\n if (Array.isArray(fieldValues)) {\n setFields(fieldValues);\n ids.current = fieldValues.map(generateId);\n }\n }\n },\n subject: control._subjects.array\n });\n const updateValues = React.useCallback(updatedFieldArrayValues => {\n _actioned.current = true;\n control._updateFieldArray(name, updatedFieldArrayValues);\n }, [control, name]);\n const append$1 = (value, options) => {\n const appendValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = append(control._getFieldArray(name), appendValue);\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\n ids.current = append(ids.current, appendValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, append, {\n argA: fillEmptyArray(value)\n });\n };\n const prepend$1 = (value, options) => {\n const prependValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = prepend(control._getFieldArray(name), prependValue);\n control._names.focus = getFocusFieldName(name, 0, options);\n ids.current = prepend(ids.current, prependValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, prepend, {\n argA: fillEmptyArray(value)\n });\n };\n const remove = index => {\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\n ids.current = removeArrayAt(ids.current, index);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\n argA: index\n });\n };\n const insert$1 = (index, value, options) => {\n const insertValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\n control._names.focus = getFocusFieldName(name, index, options);\n ids.current = insert(ids.current, index, insertValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, insert, {\n argA: index,\n argB: fillEmptyArray(value)\n });\n };\n const swap = (indexA, indexB) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\n swapArrayAt(ids.current, indexA, indexB);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\n argA: indexA,\n argB: indexB\n }, false);\n };\n const move = (from, to) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n moveArrayAt(updatedFieldArrayValues, from, to);\n moveArrayAt(ids.current, from, to);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\n argA: from,\n argB: to\n }, false);\n };\n const update = (index, value) => {\n const updateValue = cloneObject(value);\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\n updateValues(updatedFieldArrayValues);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, updatedFieldArrayValues, updateAt, {\n argA: index,\n argB: updateValue\n }, true, false);\n };\n const replace = value => {\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\n ids.current = updatedFieldArrayValues.map(generateId);\n updateValues([...updatedFieldArrayValues]);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, [...updatedFieldArrayValues], data => data, {}, true, false);\n };\n React.useEffect(() => {\n control._state.action = false;\n isWatched(name, control._names) && control._subjects.state.next(_objectSpread({}, control._formState));\n if (_actioned.current && (!getValidationModes(control._options.mode).isOnSubmit || control._formState.isSubmitted)) {\n if (control._options.resolver) {\n control._executeSchema([name]).then(result => {\n const error = get(result.errors, name);\n const existingError = get(control._formState.errors, name);\n if (existingError ? !error && existingError.type : error && error.type) {\n error ? set(control._formState.errors, name, error) : unset(control._formState.errors, name);\n control._subjects.state.next({\n errors: control._formState.errors\n });\n }\n });\n } else {\n const field = get(control._fields, name);\n if (field && field._f) {\n validateField(field, control._formValues, control._options.criteriaMode === VALIDATION_MODE.all, control._options.shouldUseNativeValidation, true).then(error => !isEmptyObject(error) && control._subjects.state.next({\n errors: updateFieldArrayRootError(control._formState.errors, error, name)\n }));\n }\n }\n }\n control._subjects.values.next({\n name,\n values: _objectSpread({}, control._formValues)\n });\n control._names.focus && focusFieldBy(control._fields, key => !!key && key.startsWith(control._names.focus || ''));\n control._names.focus = '';\n control._updateValid();\n }, [fields, name, control]);\n React.useEffect(() => {\n !get(control._formValues, name) && control._updateFieldArray(name);\n return () => {\n (control._options.shouldUnregister || shouldUnregister) && control.unregister(name);\n };\n }, [name, control, keyName, shouldUnregister]);\n return {\n swap: React.useCallback(swap, [updateValues, name, control]),\n move: React.useCallback(move, [updateValues, name, control]),\n prepend: React.useCallback(prepend$1, [updateValues, name, control]),\n append: React.useCallback(append$1, [updateValues, name, control]),\n remove: React.useCallback(remove, [updateValues, name, control]),\n insert: React.useCallback(insert$1, [updateValues, name, control]),\n update: React.useCallback(update, [updateValues, name, control]),\n replace: React.useCallback(replace, [updateValues, name, control]),\n fields: React.useMemo(() => fields.map((field, index) => _objectSpread(_objectSpread({}, field), {}, {\n [keyName]: ids.current[index] || generateId()\n })), [fields, keyName])\n };\n}\nfunction createSubject() {\n let _observers = [];\n const next = value => {\n var _iterator3 = _createForOfIteratorHelper(_observers),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n const observer = _step3.value;\n observer.next && observer.next(value);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n };\n const subscribe = observer => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter(o => o !== observer);\n }\n };\n };\n const unsubscribe = () => {\n _observers = [];\n };\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe\n };\n}\nvar isPrimitive = value => isNullOrUndefined(value) || !isObjectType(value);\nfunction deepEqual(object1, object2) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n if (keys1.length !== keys2.length) {\n return false;\n }\n for (var _i2 = 0, _keys = keys1; _i2 < _keys.length; _i2++) {\n const key = _keys[_i2];\n const val1 = object1[key];\n if (!keys2.includes(key)) {\n return false;\n }\n if (key !== 'ref') {\n const val2 = object2[key];\n if (isDateObject(val1) && isDateObject(val2) || isObject(val1) && isObject(val2) || Array.isArray(val1) && Array.isArray(val2) ? !deepEqual(val1, val2) : val1 !== val2) {\n return false;\n }\n }\n }\n return true;\n}\nvar isMultipleSelect = element => element.type === `select-multiple`;\nvar isRadioOrCheckbox = ref => isRadioInput(ref) || isCheckBoxInput(ref);\nvar live = ref => isHTMLElement(ref) && ref.isConnected;\nvar objectHasFunction = data => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\nfunction markFieldsDirty(data) {\n let fields = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) || isObject(data[key]) && !objectHasFunction(data[key])) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n } else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n return fields;\n}\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) || isObject(data[key]) && !objectHasFunction(data[key])) {\n if (isUndefined(formValues) || isPrimitive(dirtyFieldsFromValues[key])) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key]) ? markFieldsDirty(data[key], []) : _objectSpread({}, markFieldsDirty(data[key]));\n } else {\n getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\n }\n } else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n return dirtyFieldsFromValues;\n}\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\nvar getFieldValueAs = (value, _ref5) => {\n let valueAsNumber = _ref5.valueAsNumber,\n valueAsDate = _ref5.valueAsDate,\n setValueAs = _ref5.setValueAs;\n return isUndefined(value) ? value : valueAsNumber ? value === '' ? NaN : value ? +value : value : valueAsDate && isString(value) ? new Date(value) : setValueAs ? setValueAs(value) : value;\n};\nfunction getFieldValue(_f) {\n const ref = _f.ref;\n if (_f.refs ? _f.refs.every(ref => ref.disabled) : ref.disabled) {\n return;\n }\n if (isFileInput(ref)) {\n return ref.files;\n }\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(_ref6 => {\n let value = _ref6.value;\n return value;\n });\n }\n if (isCheckBoxInput(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\n const fields = {};\n var _iterator4 = _createForOfIteratorHelper(fieldsNames),\n _step4;\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n const name = _step4.value;\n const field = get(_fields, name);\n field && set(fields, name, field._f);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n return {\n criteriaMode,\n names: [...fieldsNames],\n fields,\n shouldUseNativeValidation\n };\n};\nvar getRuleValue = rule => isUndefined(rule) ? rule : isRegex(rule) ? rule.source : isObject(rule) ? isRegex(rule.value) ? rule.value.source : rule.value : rule;\nvar hasValidation = options => options.mount && (options.required || options.min || options.max || options.maxLength || options.minLength || options.pattern || options.validate);\nfunction schemaErrorLookup(errors, _fields, name) {\n const error = get(errors, name);\n if (error || isKey(name)) {\n return {\n error,\n name\n };\n }\n const names = name.split('.');\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n if (field && !Array.isArray(field) && name !== fieldName) {\n return {\n name\n };\n }\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError\n };\n }\n names.pop();\n }\n return {\n name\n };\n}\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\n if (mode.isOnAll) {\n return false;\n } else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n } else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n } else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true\n};\nfunction createFormControl() {\n let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let flushRootRender = arguments.length > 1 ? arguments[1] : undefined;\n let _options = _objectSpread(_objectSpread({}, defaultOptions), props);\n let _formState = {\n submitCount: 0,\n isDirty: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n errors: {}\n };\n let _fields = {};\n let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values) ? cloneObject(_options.defaultValues || _options.values) || {} : {};\n let _formValues = _options.shouldUnregister ? {} : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false\n };\n let _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set()\n };\n let delayErrorCallback;\n let timer = 0;\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false\n };\n const _subjects = {\n values: createSubject(),\n array: createSubject(),\n state: createSubject()\n };\n const shouldCaptureDirtyFields = props.resetOptions && props.resetOptions.keepDirtyValues;\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\n const debounce = callback => wait => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n const _updateValid = async shouldUpdateValid => {\n if (_proxyFormState.isValid || shouldUpdateValid) {\n const isValid = _options.resolver ? isEmptyObject((await _executeSchema()).errors) : await executeBuiltInValidation(_fields, true);\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid\n });\n }\n }\n };\n const _updateIsValidating = value => _proxyFormState.isValidating && _subjects.state.next({\n isValidating: value\n });\n const _updateFieldArray = function (name) {\n let values = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n let method = arguments.length > 2 ? arguments[2] : undefined;\n let args = arguments.length > 3 ? arguments[3] : undefined;\n let shouldSetValues = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let shouldUpdateFieldsAndState = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n if (args && method) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n if (shouldUpdateFieldsAndState && Array.isArray(get(_formState.errors, name))) {\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n if (_proxyFormState.touchedFields && shouldUpdateFieldsAndState && Array.isArray(get(_formState.touchedFields, name))) {\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid\n });\n } else {\n set(_formValues, name, values);\n }\n };\n const updateErrors = (name, error) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors\n });\n };\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\n const field = get(_fields, name);\n if (field) {\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\n isUndefined(defaultValue) || ref && ref.defaultChecked || shouldSkipSetValueAs ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f)) : setFieldValue(name, defaultValue);\n _state.mount && _updateValid();\n }\n };\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output = {\n name\n };\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n const isCurrentFieldPristine = deepEqual(get(_defaultValues, name), fieldValue);\n isPreviousDirty = get(_formState.dirtyFields, name);\n isCurrentFieldPristine ? unset(_formState.dirtyFields, name) : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField = shouldUpdateField || _proxyFormState.dirtyFields && isPreviousDirty !== !isCurrentFieldPristine;\n }\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField = shouldUpdateField || _proxyFormState.touchedFields && isPreviousFieldTouched !== isBlurEvent;\n }\n }\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n return shouldUpdateField ? output : {};\n };\n const shouldRenderByError = (name, isValid, error, fieldState) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid = _proxyFormState.isValid && isBoolean(isValid) && _formState.isValid !== isValid;\n if (props.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(props.delayError);\n } else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error ? set(_formState.errors, name, error) : unset(_formState.errors, name);\n }\n if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) || !isEmptyObject(fieldState) || shouldUpdateValid) {\n const updatedFormState = _objectSpread(_objectSpread(_objectSpread({}, fieldState), shouldUpdateValid && isBoolean(isValid) ? {\n isValid\n } : {}), {}, {\n errors: _formState.errors,\n name\n });\n _formState = _objectSpread(_objectSpread({}, _formState), updatedFormState);\n _subjects.state.next(updatedFormState);\n }\n _updateIsValidating(false);\n };\n const _executeSchema = async name => _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));\n const executeSchemaAndUpdateState = async names => {\n const _await$_executeSchema = await _executeSchema(),\n errors = _await$_executeSchema.errors;\n if (names) {\n var _iterator5 = _createForOfIteratorHelper(names),\n _step5;\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n const name = _step5.value;\n const error = get(errors, name);\n error ? set(_formState.errors, name, error) : unset(_formState.errors, name);\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n } else {\n _formState.errors = errors;\n }\n return errors;\n };\n const executeBuiltInValidation = async function (fields, shouldOnlyCheckValid) {\n let context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n valid: true\n };\n for (const name in fields) {\n const field = fields[name];\n if (field) {\n const _f = field._f,\n fieldValue = _objectWithoutProperties(field, _excluded4);\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const fieldError = await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n !shouldOnlyCheckValid && (get(fieldError, _f.name) ? isFieldArrayRoot ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name) : set(_formState.errors, _f.name, fieldError[_f.name]) : unset(_formState.errors, _f.name));\n }\n fieldValue && (await executeBuiltInValidation(fieldValue, shouldOnlyCheckValid, context));\n }\n }\n return context.valid;\n };\n const _removeUnmounted = () => {\n var _iterator6 = _createForOfIteratorHelper(_names.unMount),\n _step6;\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n const name = _step6.value;\n const field = get(_fields, name);\n field && (field._f.refs ? field._f.refs.every(ref => !live(ref)) : !live(field._f.ref)) && unregister(name);\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n _names.unMount = new Set();\n };\n const _getDirty = (name, data) => (name && data && set(_formValues, name, data), !deepEqual(getValues(), _defaultValues));\n const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, _objectSpread({}, _state.mount ? _formValues : isUndefined(defaultValue) ? _defaultValues : isString(names) ? {\n [names]: defaultValue\n } : defaultValue), isGlobal, defaultValue);\n const _getFieldArray = name => compact(get(_state.mount ? _formValues : _defaultValues, name, props.shouldUnregister ? get(_defaultValues, name, []) : []));\n const setFieldValue = function (name, value) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const field = get(_fields, name);\n let fieldValue = value;\n if (field) {\n const fieldReference = field._f;\n if (fieldReference) {\n !fieldReference.disabled && set(_formValues, name, getFieldValueAs(value, fieldReference));\n fieldValue = isHTMLElement(fieldReference.ref) && isNullOrUndefined(value) ? '' : value;\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach(optionRef => optionRef.selected = fieldValue.includes(optionRef.value));\n } else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1 ? fieldReference.refs.forEach(checkboxRef => (!checkboxRef.defaultChecked || !checkboxRef.disabled) && (checkboxRef.checked = Array.isArray(fieldValue) ? !!fieldValue.find(data => data === checkboxRef.value) : fieldValue === checkboxRef.value)) : fieldReference.refs[0] && (fieldReference.refs[0].checked = !!fieldValue);\n } else {\n fieldReference.refs.forEach(radioRef => radioRef.checked = radioRef.value === fieldValue);\n }\n } else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n } else {\n fieldReference.ref.value = fieldValue;\n if (!fieldReference.ref.type) {\n _subjects.values.next({\n name,\n values: _objectSpread({}, _formValues)\n });\n }\n }\n }\n }\n (options.shouldDirty || options.shouldTouch) && updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\n options.shouldValidate && trigger(name);\n };\n const setValues = (name, value, options) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n (_names.array.has(name) || !isPrimitive(fieldValue) || field && !field._f) && !isDateObject(fieldValue) ? setValues(fieldName, fieldValue, options) : setFieldValue(fieldName, fieldValue, options);\n }\n };\n const setValue = function (name, value) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n set(_formValues, name, cloneValue);\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: _objectSpread({}, _formValues)\n });\n if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) && options.shouldDirty) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue)\n });\n }\n } else {\n field && !field._f && !isNullOrUndefined(cloneValue) ? setValues(name, cloneValue, options) : setFieldValue(name, cloneValue, options);\n }\n isWatched(name, _names) && _subjects.state.next(_objectSpread({}, _formState));\n _subjects.values.next({\n name,\n values: _objectSpread({}, _formValues)\n });\n !_state.mount && flushRootRender();\n };\n const onChange = async event => {\n const target = event.target;\n let name = target.name;\n let isFieldValueUpdated = true;\n const field = get(_fields, name);\n const getCurrentFieldValue = () => target.type ? getFieldValue(field._f) : getEventValue(event);\n if (field) {\n let error;\n let isValid;\n const fieldValue = getCurrentFieldValue();\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation = !hasValidation(field._f) && !_options.resolver && !get(_formState.errors, name) && !field._f.deps || skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\n const watched = isWatched(name, _names, isBlurEvent);\n set(_formValues, name, fieldValue);\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n } else if (field._f.onChange) {\n field._f.onChange(event);\n }\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent, false);\n const shouldRender = !isEmptyObject(fieldState) || watched;\n !isBlurEvent && _subjects.values.next({\n name,\n type: event.type,\n values: _objectSpread({}, _formValues)\n });\n if (shouldSkipValidation) {\n _proxyFormState.isValid && _updateValid();\n return shouldRender && _subjects.state.next(_objectSpread({\n name\n }, watched ? {} : fieldState));\n }\n !isBlurEvent && watched && _subjects.state.next(_objectSpread({}, _formState));\n _updateIsValidating(true);\n if (_options.resolver) {\n const _await$_executeSchema2 = await _executeSchema([name]),\n errors = _await$_executeSchema2.errors;\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n isValid = isEmptyObject(errors);\n } else {\n error = (await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\n isFieldValueUpdated = isNaN(fieldValue) || fieldValue === get(_formValues, name, fieldValue);\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n } else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n if (isFieldValueUpdated) {\n field._f.deps && trigger(field._f.deps);\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n const trigger = async function (name) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name);\n _updateIsValidating(true);\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\n isValid = isEmptyObject(errors);\n validationResult = name ? !fieldNames.some(name => get(errors, name)) : isValid;\n } else if (name) {\n validationResult = (await Promise.all(fieldNames.map(async fieldName => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(field && field._f ? {\n [fieldName]: field\n } : field);\n }))).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n } else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n _subjects.state.next(_objectSpread(_objectSpread(_objectSpread({}, !isString(name) || _proxyFormState.isValid && isValid !== _formState.isValid ? {} : {\n name\n }), _options.resolver || !name ? {\n isValid\n } : {}), {}, {\n errors: _formState.errors,\n isValidating: false\n }));\n options.shouldFocus && !validationResult && focusFieldBy(_fields, key => key && get(_formState.errors, key), name ? fieldNames : _names.mount);\n return validationResult;\n };\n const getValues = fieldNames => {\n const values = _objectSpread(_objectSpread({}, _defaultValues), _state.mount ? _formValues : {});\n return isUndefined(fieldNames) ? values : isString(fieldNames) ? get(values, fieldNames) : fieldNames.map(name => get(values, name));\n };\n const getFieldState = (name, formState) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n error: get((formState || _formState).errors, name)\n });\n const clearErrors = name => {\n name && convertToArrayPayload(name).forEach(inputName => unset(_formState.errors, inputName));\n _subjects.state.next({\n errors: name ? _formState.errors : {}\n });\n };\n const setError = (name, error, options) => {\n const ref = (get(_fields, name, {\n _f: {}\n })._f || {}).ref;\n set(_formState.errors, name, _objectSpread(_objectSpread({}, error), {}, {\n ref\n }));\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false\n });\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n const watch = (name, defaultValue) => isFunction(name) ? _subjects.values.subscribe({\n next: payload => name(_getWatch(undefined, defaultValue), payload)\n }) : _getWatch(name, defaultValue, true);\n const unregister = function (name) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _iterator7 = _createForOfIteratorHelper(name ? convertToArrayPayload(name) : _names.mount),\n _step7;\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n const fieldName = _step7.value;\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !_options.shouldUnregister && !options.keepDefaultValue && unset(_defaultValues, fieldName);\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n _subjects.values.next({\n values: _objectSpread({}, _formValues)\n });\n _subjects.state.next(_objectSpread(_objectSpread({}, _formState), !options.keepDirty ? {} : {\n isDirty: _getDirty()\n }));\n !options.keepIsValid && _updateValid();\n };\n const register = function (name) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled);\n set(_fields, name, _objectSpread(_objectSpread({}, field || {}), {}, {\n _f: _objectSpread(_objectSpread({}, field && field._f ? field._f : {\n ref: {\n name\n }\n }), {}, {\n name,\n mount: true\n }, options)\n }));\n _names.mount.add(name);\n field ? disabledIsDefined && set(_formValues, name, options.disabled ? undefined : get(_formValues, name, getFieldValue(field._f))) : updateValidAndValue(name, true, options.value);\n return _objectSpread(_objectSpread(_objectSpread({}, disabledIsDefined ? {\n disabled: options.disabled\n } : {}), _options.shouldUseNativeValidation ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength),\n maxLength: getRuleValue(options.maxLength),\n pattern: getRuleValue(options.pattern)\n } : {}), {}, {\n name,\n onChange,\n onBlur: onChange,\n ref: ref => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n const fieldRef = isUndefined(ref.value) ? ref.querySelectorAll ? ref.querySelectorAll('input,select,textarea')[0] || ref : ref : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n if (radioOrCheckbox ? refs.find(option => option === fieldRef) : fieldRef === field._f.ref) {\n return;\n }\n set(_fields, name, {\n _f: _objectSpread(_objectSpread({}, field._f), radioOrCheckbox ? {\n refs: [...refs.filter(live), fieldRef, ...(Array.isArray(get(_defaultValues, name)) ? [{}] : [])],\n ref: {\n type: fieldRef.type,\n name\n }\n } : {\n ref: fieldRef\n })\n });\n updateValidAndValue(name, false, undefined, fieldRef);\n } else {\n field = get(_fields, name, {});\n if (field._f) {\n field._f.mount = false;\n }\n (_options.shouldUnregister || options.shouldUnregister) && !(isNameInFieldArray(_names.array, name) && _state.action) && _names.unMount.add(name);\n }\n }\n });\n };\n const _focusError = () => _options.shouldFocusError && focusFieldBy(_fields, key => key && get(_formState.errors, key), _names.mount);\n const handleSubmit = (onValid, onInvalid) => async e => {\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n _subjects.state.next({\n isSubmitting: true\n });\n if (_options.resolver) {\n const _await$_executeSchema3 = await _executeSchema(),\n errors = _await$_executeSchema3.errors,\n values = _await$_executeSchema3.values;\n _formState.errors = errors;\n fieldValues = values;\n } else {\n await executeBuiltInValidation(_fields);\n }\n unset(_formState.errors, 'root');\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {}\n });\n await onValid(fieldValues, e);\n } else {\n if (onInvalid) {\n await onInvalid(_objectSpread({}, _formState.errors), e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors),\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors\n });\n };\n const resetField = function (name) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, get(_defaultValues, name));\n } else {\n setValue(name, options.defaultValue);\n set(_defaultValues, name, options.defaultValue);\n }\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue ? _getDirty(name, get(_defaultValues, name)) : _getDirty();\n }\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n _subjects.state.next(_objectSpread({}, _formState));\n }\n };\n const _reset = function (formValues) {\n let keepStateOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const updatedValues = formValues || _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const values = formValues && !isEmptyObject(formValues) ? cloneUpdatedValues : _defaultValues;\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues || shouldCaptureDirtyFields) {\n var _iterator8 = _createForOfIteratorHelper(_names.mount),\n _step8;\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n const fieldName = _step8.value;\n get(_formState.dirtyFields, fieldName) ? set(values, fieldName, get(_formValues, fieldName)) : setValue(fieldName, get(values, fieldName));\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n } else {\n if (isWeb && isUndefined(formValues)) {\n var _iterator9 = _createForOfIteratorHelper(_names.mount),\n _step9;\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n const name = _step9.value;\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs) ? field._f.refs[0] : field._f.ref;\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n }\n _fields = {};\n }\n _formValues = props.shouldUnregister ? keepStateOptions.keepDefaultValues ? cloneObject(_defaultValues) : {} : cloneUpdatedValues;\n _subjects.array.next({\n values: _objectSpread({}, values)\n });\n _subjects.values.next({\n values: _objectSpread({}, values)\n });\n }\n _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: ''\n };\n !_state.mount && flushRootRender();\n _state.mount = !_proxyFormState.isValid || !!keepStateOptions.keepIsValid;\n _state.watch = !!props.shouldUnregister;\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount ? _formState.submitCount : 0,\n isDirty: keepStateOptions.keepDirty ? _formState.isDirty : !!(keepStateOptions.keepDefaultValues && !deepEqual(formValues, _defaultValues)),\n isSubmitted: keepStateOptions.keepIsSubmitted ? _formState.isSubmitted : false,\n dirtyFields: keepStateOptions.keepDirtyValues ? _formState.dirtyFields : keepStateOptions.keepDefaultValues && formValues ? getDirtyFields(_defaultValues, formValues) : {},\n touchedFields: keepStateOptions.keepTouched ? _formState.touchedFields : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitting: false,\n isSubmitSuccessful: false\n });\n };\n const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues) ? formValues(_formValues) : formValues, keepStateOptions);\n const setFocus = function (name) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n if (fieldReference) {\n const fieldRef = fieldReference.refs ? fieldReference.refs[0] : fieldReference.ref;\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect && fieldRef.select();\n }\n }\n };\n const _updateFormState = updatedFormState => {\n _formState = _objectSpread(_objectSpread({}, _formState), updatedFormState);\n };\n const _resetDefaultValues = () => isFunction(_options.defaultValues) && _options.defaultValues().then(values => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false\n });\n });\n return {\n control: {\n register,\n unregister,\n getFieldState,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _updateFormState,\n _subjects,\n _proxyFormState,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = _objectSpread(_objectSpread({}, _options), value);\n }\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState\n };\n}\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\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)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n *
\n * \n * \n * {errors.exampleRequired && This field is required}\n * \n *
\n * );\n * }\n * ```\n */\nfunction useForm() {\n let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const _formControl = React.useRef();\n const _React$useState7 = React.useState({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n errors: {},\n defaultValues: isFunction(props.defaultValues) ? undefined : props.defaultValues\n }),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n formState = _React$useState8[0],\n updateFormState = _React$useState8[1];\n if (!_formControl.current) {\n _formControl.current = _objectSpread(_objectSpread({}, createFormControl(props, () => updateFormState(formState => _objectSpread({}, formState)))), {}, {\n formState\n });\n }\n const control = _formControl.current.control;\n control._options = props;\n useSubscribe({\n subject: control._subjects.state,\n next: value => {\n if (shouldRenderFormState(value, control._proxyFormState, control._updateFormState, true)) {\n updateFormState(_objectSpread({}, control._formState));\n }\n }\n });\n React.useEffect(() => {\n if (props.values && !deepEqual(props.values, control._defaultValues)) {\n control._reset(props.values, control._options.resetOptions);\n } else {\n control._resetDefaultValues();\n }\n }, [props.values, control]);\n React.useEffect(() => {\n if (!control._state.mount) {\n control._updateValid();\n control._state.mount = true;\n }\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next(_objectSpread({}, control._formState));\n }\n control._removeUnmounted();\n });\n _formControl.current.formState = getProxyFormState(formState, control);\n return _formControl.current;\n}\nexport { Controller, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };"],"names":["m","exports","createRoot","hydrateRoot","_excluded2","_excluded3","_excluded4","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","f","TypeError","err","normalCompletion","didErr","call","step","next","return","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","arg","input","hint","prim","toPrimitive","undefined","res","String","Number","_toPrimitive","_toPropertyKey","configurable","writable","_slicedToArray","arr","_arrayWithHoles","_i","_s","_e","_x","_r","_arr","_n","_d","_iterableToArrayLimit","_nonIterableRest","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","len","arr2","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","isCheckBoxInput","element","type","isDateObject","Date","isNullOrUndefined","isObjectType","isObject","getEventValue","event","checked","isNameInFieldArray","names","has","substring","search","getNodeParentName","isPlainObject","tempObject","prototypeCopy","hasOwnProperty","isWeb","window","HTMLElement","document","cloneObject","data","copy","Set","Blob","FileList","compact","Boolean","isUndefined","val","get","path","defaultValue","result","split","reduce","EVENTS","BLUR","FOCUS_OUT","CHANGE","VALIDATION_MODE","onBlur","onChange","onSubmit","onTouched","all","INPUT_VALIDATION_RULES","HookFormContext","useFormContext","getProxyFormState","formState","control","localProxyFormState","isRoot","defaultValues","_defaultValues","_key","_proxyFormState","isEmptyObject","shouldRenderFormState","formStateData","updateFormState","find","convertToArrayPayload","shouldSubscribeByName","signalName","exact","some","currentName","startsWith","useSubscribe","props","_props","current","subscription","disabled","subject","subscribe","unsubscribe","isString","generateWatchOutput","_names","formValues","isGlobal","watch","add","map","fieldName","watchAll","isKey","stringToPath","replace","set","index","tempPath","lastIndex","newValue","objValue","isNaN","useController","methods","_props$control","shouldUnregister","isArrayField","array","_ref2","_ref2$control","_name","_subjects","values","updateValue","_formValues","_React$useState4","_getWatch","_removeUnmounted","useWatch","_ref","_ref$control","_React$useState2","_formState","_mounted","_localProxyFormState","isDirty","isLoading","dirtyFields","touchedFields","isValidating","isValid","errors","_updateFormState","state","_updateValid","useFormState","_registerProps","register","rules","_shouldUnregisterField","_options","updateMounted","field","_fields","_f","mount","_state","action","unregister","ref","elm","focus","select","setCustomValidity","message","reportValidity","fieldState","invalid","isTouched","error","Controller","render","appendErrors","validateAllFieldCriteria","types","focusFieldBy","fields","callback","fieldsNames","_step","_iterator","currentField","refs","generateId","d","performance","now","c","r","Math","random","getFocusFieldName","options","shouldFocus","focusName","focusIndex","getValidationModes","mode","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isWatched","isBlurEvent","watchName","updateFieldArrayRootError","fieldArrayErrors","isBoolean","isFileInput","isFunction","isHTMLElement","owner","ownerDocument","defaultView","isMessage","isRadioInput","isRegex","RegExp","defaultResult","validResult","getCheckboxValue","option","attributes","defaultReturn","getRadioValue","previous","getValidateError","every","getValueAndMessage","validationData","validateField","async","shouldUseNativeValidation","isFieldArray","_field$_f","required","maxLength","minLength","min","max","pattern","validate","valueAsNumber","inputValue","inputRef","isRadio","isCheckBox","isRadioOrCheckbox","isEmpty","appendErrorsCurry","bind","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","_ref3","exceedMin","maxOutput","minOutput","valueDate","valueAsDate","convertTimeToDate","time","toDateString","isTime","isWeek","valueNumber","maxLengthOutput","minLengthOutput","_getValueAndMessage","patternValue","match","validateError","validationResult","append","fillEmptyArray","insert","moveArrayAt","to","splice","prepend","removeArrayAt","indexes","temp","_step2","_iterator2","removeAtIndexes","sort","a","b","swapArrayAt","indexA","indexB","unset","paths","childObject","updatePath","baseGet","isEmptyArray","updateAt","fieldValues","useFieldArray","_props$control2","_props$keyName","keyName","_React$useState6","_getFieldArray","setFields","ids","_fieldIds","_actioned","_ref4","fieldArrayName","updateValues","updatedFieldArrayValues","_updateFieldArray","isSubmitted","resolver","_executeSchema","then","existingError","criteriaMode","swap","argA","argB","move","prependValue","appendValue","remove","insertValue","update","item","createSubject","_observers","observers","_step3","_iterator3","observer","isPrimitive","deepEqual","object1","object2","getTime","keys1","keys2","_i2","_keys","val1","includes","val2","isMultipleSelect","live","isConnected","objectHasFunction","markFieldsDirty","isParentNodeArray","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","getDirtyFields","getFieldValueAs","_ref5","setValueAs","NaN","getFieldValue","files","selectedOptions","_ref6","getResolverOptions","_step4","_iterator4","getRuleValue","rule","hasValidation","schemaErrorLookup","join","foundError","pop","skipValidation","reValidateMode","unsetEmptyArray","defaultOptions","shouldFocusError","createFormControl","delayErrorCallback","flushRootRender","submitCount","isSubmitting","isSubmitSuccessful","unMount","timer","shouldCaptureDirtyFields","resetOptions","keepDirtyValues","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","shouldUpdateValid","executeBuiltInValidation","_updateIsValidating","updateValidAndValue","shouldSkipSetValueAs","defaultChecked","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldRender","shouldUpdateField","isPreviousDirty","output","_getDirty","isCurrentFieldPristine","isPreviousFieldTouched","shouldRenderByError","previousFieldError","delayError","updateErrors","wait","clearTimeout","setTimeout","updatedFormState","context","shouldOnlyCheckValid","valid","isFieldArrayRoot","fieldError","getValues","fieldReference","optionRef","selected","checkboxRef","radioRef","shouldTouch","shouldValidate","trigger","setValues","fieldKey","setValue","cloneValue","isFieldValueUpdated","shouldSkipValidation","deps","watched","previousErrorLookupResult","errorLookupResult","fieldNames","_step5","_iterator5","executeSchemaAndUpdateState","Promise","getFieldState","_step7","_iterator7","delete","keepValue","keepError","keepDirty","keepTouched","keepDefaultValue","keepIsValid","disabledIsDefined","fieldRef","querySelectorAll","radioOrCheckbox","_focusError","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","keepDefaultValues","keepValues","_step8","_iterator8","_step9","_iterator9","form","closest","reset","keepSubmitCount","keepIsSubmitted","keepErrors","_step6","_iterator6","method","args","shouldSetValues","shouldUpdateFieldsAndState","_resetDefaultValues","handleSubmit","onValid","onInvalid","preventDefault","persist","_await$_executeSchema3","payload","resetField","clearErrors","inputName","setError","setFocus","shouldSelect","useForm","_formControl","_React$useState8"],"sourceRoot":""}