{"version":3,"file":"0bfecc6b94e7a8bcb394a891d6640e8179924cdb-adb6c57238acbb960be9.js","mappings":"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","sources":["webpack://events-page-builder/./node_modules/react-hook-form/dist/index.esm.mjs"],"sourcesContent":["import 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 (!isArray && !isPlainObject(data)) {\n copy = data;\n } else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\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 = (object, path, defaultValue) => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);\n return isUndefined(result) || result === object ? isUndefined(object[path]) ? defaultValue : object[path] : result;\n};\nvar isBoolean = value => typeof value === 'boolean';\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 = 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/docs/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/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - 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 FormProvider = props => {\n const {\n children,\n ...data\n } = props;\n return 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 {\n name,\n ...formState\n } = formStateData;\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) => !name || !signalName || name === signalName || convertToArrayPayload(name).some(currentName => currentName && (exact ? currentName === signalName : 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/docs/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 {\n control = methods.control,\n disabled,\n name,\n exact\n } = props || {};\n const [formState, updateFormState] = React.useState(control._formState);\n const _mounted = React.useRef(true);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n validatingFields: 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({\n ...control._formState,\n ...value\n }),\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/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nfunction useWatch(props) {\n const methods = useFormContext();\n const {\n control = methods.control,\n name,\n defaultValue,\n disabled,\n exact\n } = props || {};\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 [value, updateValue] = React.useState(control._getWatch(name, defaultValue));\n React.useEffect(() => control._removeUnmounted());\n return value;\n}\nvar isKey = value => /^\\w*$/.test(value);\nvar stringToPath = input => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\nvar 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/docs/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 {\n name,\n disabled,\n control = methods.control,\n shouldUnregister\n } = props;\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, {\n ...props.rules,\n value,\n ...(isBoolean(props.disabled) ? {\n disabled: props.disabled\n } : {})\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 React.useEffect(() => {\n if (get(control._fields, name)) {\n control._updateDisabledField({\n disabled,\n fields: control._fields,\n name,\n value: get(control._fields, name)._f.value\n });\n }\n }, [disabled, name, control]);\n return {\n field: {\n name,\n value,\n ...(isBoolean(disabled) || formState.disabled ? {\n disabled: formState.disabled || disabled\n } : {}),\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 isValidating: {\n enumerable: true,\n get: () => !!get(formState.validatingFields, 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/docs/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));\nconst POST_REQUEST = 'post';\n/**\n * Form component to manage submission.\n *\n * @param props - to setup submission detail. {@link FormProps}\n *\n * @returns form component or headless render prop.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control, formState: { errors } } = useForm();\n *\n * return (\n *
\n * \n *

{errors?.root?.server && 'Server error'}

\n * \n *
\n * );\n * }\n * ```\n */\nfunction Form(props) {\n const methods = useFormContext();\n const [mounted, setMounted] = React.useState(false);\n const {\n control = methods.control,\n onSubmit,\n children,\n action,\n method = POST_REQUEST,\n headers,\n encType,\n onError,\n render,\n onSuccess,\n validateStatus,\n ...rest\n } = props;\n const submit = async event => {\n let hasError = false;\n let type = '';\n await control.handleSubmit(async data => {\n const formData = new FormData();\n let formDataJson = '';\n try {\n formDataJson = JSON.stringify(data);\n } catch (_a) {}\n for (const name of control._names.mount) {\n formData.append(name, get(data, name));\n }\n if (onSubmit) {\n await onSubmit({\n data,\n event,\n method,\n formData,\n formDataJson\n });\n }\n if (action) {\n try {\n const shouldStringifySubmissionData = [headers && headers['Content-Type'], encType].some(value => value && value.includes('json'));\n const response = await fetch(action, {\n method,\n headers: {\n ...headers,\n ...(encType ? {\n 'Content-Type': encType\n } : {})\n },\n body: shouldStringifySubmissionData ? formDataJson : formData\n });\n if (response && (validateStatus ? !validateStatus(response.status) : response.status < 200 || response.status >= 300)) {\n hasError = true;\n onError && onError({\n response\n });\n type = String(response.status);\n } else {\n onSuccess && onSuccess({\n response\n });\n }\n } catch (error) {\n hasError = true;\n onError && onError({\n error\n });\n }\n }\n })(event);\n if (hasError && props.control) {\n props.control._subjects.state.next({\n isSubmitSuccessful: false\n });\n props.control.setError('root.server', {\n type\n });\n }\n };\n React.useEffect(() => {\n setMounted(true);\n }, []);\n return render ? React.createElement(React.Fragment, null, render({\n submit\n })) : React.createElement(\"form\", {\n noValidate: mounted,\n action: action,\n method: method,\n encType: encType,\n onSubmit: submit,\n ...rest\n }, children);\n}\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\n [type]: message || true\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 || \"\".concat(name, \".\").concat(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))));\nconst iterateFieldsByAction = (fields, action, fieldsNames, abortEarly) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n if (field) {\n const {\n _f,\n ...currentField\n } = field;\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n break;\n } else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n break;\n } else {\n iterateFieldsByAction(currentField, action);\n }\n } else if (isObject(currentField)) {\n iterateFieldsByAction(currentField, action);\n }\n }\n }\n};\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 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 {\n ref,\n refs,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n name,\n valueAsNumber,\n mount,\n disabled\n } = field._f;\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] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message)\n };\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 {\n value,\n message\n } = isMessage(required) ? {\n value: !!required,\n message: required\n } : getValueAndMessage(required);\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message)\n };\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 {\n value: patternValue,\n message\n } = getValueAndMessage(pattern);\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message)\n };\n if (!validateAllFieldCriteria) {\n 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] = {\n ...validateError,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message)\n };\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 = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message)\n };\n setCustomValidity(validateError.message);\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n setCustomValidity(true);\n return error;\n};\nvar appendAt = (data, value) => [...data, ...convertToArrayPayload(value)];\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};\nvar prependAt = (data, value) => [...convertToArrayPayload(value), ...convertToArrayPayload(data)];\nfunction removeAtIndexes(data, indexes) {\n let i = 0;\n const temp = [...data];\n for (const index of indexes) {\n temp.splice(index - i, 1);\n i++;\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]];\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 (obj.hasOwnProperty(key) && !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/docs/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 {\n control = methods.control,\n name,\n keyName = 'id',\n shouldUnregister\n } = props;\n const [fields, setFields] = React.useState(control._getFieldArray(name));\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: _ref => {\n let {\n values,\n name: fieldArrayName\n } = _ref;\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 = (value, options) => {\n const appendValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = appendAt(control._getFieldArray(name), appendValue);\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\n ids.current = appendAt(ids.current, appendValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, appendAt, {\n argA: fillEmptyArray(value)\n });\n };\n const prepend = (value, options) => {\n const prependValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = prependAt(control._getFieldArray(name), prependValue);\n control._names.focus = getFocusFieldName(name, 0, options);\n ids.current = prependAt(ids.current, prependValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, prependAt, {\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({\n ...control._formState\n });\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 && (existingError.type !== error.type || existingError.message !== error.message) : 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 && !(getValidationModes(control._options.reValidateMode).isOnSubmit && getValidationModes(control._options.mode).isOnSubmit)) {\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: {\n ...control._formValues\n }\n });\n control._names.focus && iterateFieldsByAction(control._fields, (ref, key) => {\n if (control._names.focus && key.startsWith(control._names.focus) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n });\n control._names.focus = '';\n control._updateValid();\n _actioned.current = false;\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, [updateValues, name, control]),\n append: React.useCallback(append, [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) => ({\n ...field,\n [keyName]: ids.current[index] || generateId()\n })), [fields, keyName])\n };\n}\nvar createSubject = () => {\n let _observers = [];\n const next = value => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\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 (const key of keys1) {\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], []) : {\n ...markFieldsDirty(data[key])\n };\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, _ref2) => {\n let {\n valueAsNumber,\n valueAsDate,\n setValueAs\n } = _ref2;\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(_ref3 => {\n let {\n value\n } = _ref3;\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 for (const name of fieldsNames) {\n const field = get(_fields, name);\n field && set(fields, name, field._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 _options = {\n ...defaultOptions,\n ...props\n };\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 validatingFields: {},\n errors: _options.errors || {},\n disabled: _options.disabled || false\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 validatingFields: 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 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 = (names, isValidating) => {\n if (_proxyFormState.isValidating || _proxyFormState.validatingFields) {\n (names || Array.from(_names.mount)).forEach(name => {\n if (name) {\n isValidating ? set(_formState.validatingFields, name, isValidating) : unset(_formState.validatingFields, name);\n }\n });\n _subjects.state.next({\n validatingFields: _formState.validatingFields,\n isValidating: !isEmptyObject(_formState.validatingFields)\n });\n }\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 _setErrors = errors => {\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false\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 const disabledField = !!(get(_fields, name) && get(_fields, name)._f.disabled);\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 = disabledField || deepEqual(get(_defaultValues, name), fieldValue);\n isPreviousDirty = !!(!disabledField && get(_formState.dirtyFields, name));\n isCurrentFieldPristine || disabledField ? 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 = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? {\n isValid\n } : {}),\n errors: _formState.errors,\n name\n };\n _formState = {\n ..._formState,\n ...updatedFormState\n };\n _subjects.state.next(updatedFormState);\n }\n };\n const _executeSchema = async name => {\n _updateIsValidating(name, true);\n const result = await _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));\n _updateIsValidating(name);\n return result;\n };\n const executeSchemaAndUpdateState = async names => {\n const {\n errors\n } = await _executeSchema(names);\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error ? set(_formState.errors, name, error) : unset(_formState.errors, name);\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 {\n _f,\n ...fieldValue\n } = field;\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n _updateIsValidating([name], true);\n const fieldError = await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);\n _updateIsValidating([name]);\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 for (const name of _names.unMount) {\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 _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, {\n ...(_state.mount ? _formValues : isUndefined(defaultValue) ? _defaultValues : isString(names) ? {\n [names]: defaultValue\n } : defaultValue)\n }, 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: {\n ..._formValues\n }\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 = \"\".concat(name, \".\").concat(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: {\n ..._formValues\n }\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({\n ..._formState\n });\n _subjects.values.next({\n name: _state.mount ? name : undefined,\n values: {\n ..._formValues\n }\n });\n };\n const onChange = async event => {\n _state.mount = true;\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 const _updateIsFieldValueUpdated = fieldValue => {\n isFieldValueUpdated = Number.isNaN(fieldValue) || fieldValue === get(_formValues, name, fieldValue);\n };\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: {\n ..._formValues\n }\n });\n if (shouldSkipValidation) {\n _proxyFormState.isValid && _updateValid();\n return shouldRender && _subjects.state.next({\n name,\n ...(watched ? {} : fieldState)\n });\n }\n !isBlurEvent && watched && _subjects.state.next({\n ..._formState\n });\n if (_options.resolver) {\n const {\n errors\n } = await _executeSchema([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\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 }\n } else {\n _updateIsValidating([name], true);\n error = (await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\n _updateIsValidating([name]);\n _updateIsFieldValueUpdated(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 _focusInput = (ref, key) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\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 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({\n ...(!isString(name) || _proxyFormState.isValid && isValid !== _formState.isValid ? {} : {\n name\n }),\n ...(_options.resolver || !name ? {\n isValid\n } : {}),\n errors: _formState.errors\n });\n options.shouldFocus && !validationResult && iterateFieldsByAction(_fields, _focusInput, name ? fieldNames : _names.mount);\n return validationResult;\n };\n const getValues = fieldNames => {\n const values = {\n ..._defaultValues,\n ...(_state.mount ? _formValues : {})\n };\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 isValidating: !!get((formState || _formState).validatingFields, 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, {\n ...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 for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\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.keepIsValidating && unset(_formState.validatingFields, fieldName);\n !_options.shouldUnregister && !options.keepDefaultValue && unset(_defaultValues, fieldName);\n }\n _subjects.values.next({\n values: {\n ..._formValues\n }\n });\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : {\n isDirty: _getDirty()\n })\n });\n !options.keepIsValid && _updateValid();\n };\n const _updateDisabledField = _ref4 => {\n let {\n disabled,\n name,\n field,\n fields,\n value\n } = _ref4;\n if (isBoolean(disabled)) {\n const inputValue = disabled ? undefined : isUndefined(value) ? getFieldValue(field ? field._f : get(fields, name)._f) : value;\n set(_formValues, name, inputValue);\n updateTouchAndDirty(name, inputValue, false, false, true);\n }\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, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : {\n ref: {\n name\n }\n }),\n name,\n mount: true,\n ...options\n }\n });\n _names.mount.add(name);\n if (field) {\n _updateDisabledField({\n field,\n disabled: options.disabled,\n name,\n value: options.value\n });\n } else {\n updateValidAndValue(name, true, options.value);\n }\n return {\n ...(disabledIsDefined ? {\n disabled: options.disabled\n } : {}),\n ...(_options.progressive ? {\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: {\n ...field._f,\n ...(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 });\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 && iterateFieldsByAction(_fields, _focusInput, _names.mount);\n const _disableForm = disabled => {\n if (isBoolean(disabled)) {\n _subjects.state.next({\n disabled\n });\n iterateFieldsByAction(_fields, (ref, name) => {\n let requiredDisabledState = disabled;\n const currentField = get(_fields, name);\n if (currentField && isBoolean(currentField._f.disabled)) {\n requiredDisabledState || (requiredDisabledState = currentField._f.disabled);\n }\n ref.disabled = requiredDisabledState;\n }, 0, false);\n }\n };\n const handleSubmit = (onValid, onInvalid) => async e => {\n let onValidError = undefined;\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 {\n errors,\n values\n } = await _executeSchema();\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 try {\n await onValid(fieldValues, e);\n } catch (error) {\n onValidError = error;\n }\n } else {\n if (onInvalid) {\n await onInvalid({\n ..._formState.errors\n }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors\n });\n if (onValidError) {\n throw onValidError;\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, cloneObject(get(_defaultValues, name)));\n } else {\n setValue(name, options.defaultValue);\n set(_defaultValues, name, cloneObject(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, cloneObject(get(_defaultValues, name))) : _getDirty();\n }\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n _subjects.state.next({\n ..._formState\n });\n }\n };\n const _reset = function (formValues) {\n let keepStateOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const isEmptyResetValues = isEmptyObject(formValues);\n const values = isEmptyResetValues ? _defaultValues : cloneUpdatedValues;\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n for (const fieldName of _names.mount) {\n get(_formState.dirtyFields, fieldName) ? set(values, fieldName, get(_formValues, fieldName)) : setValue(fieldName, get(values, fieldName));\n }\n } else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\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 }\n _fields = {};\n }\n _formValues = props.shouldUnregister ? keepStateOptions.keepDefaultValues ? cloneObject(_defaultValues) : {} : cloneObject(values);\n _subjects.array.next({\n values: {\n ...values\n }\n });\n _subjects.values.next({\n values: {\n ...values\n }\n });\n }\n _names = {\n mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: ''\n };\n _state.mount = !_proxyFormState.isValid || !!keepStateOptions.keepIsValid || !!keepStateOptions.keepDirtyValues;\n _state.watch = !!props.shouldUnregister;\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount ? _formState.submitCount : 0,\n isDirty: isEmptyResetValues ? false : keepStateOptions.keepDirty ? _formState.isDirty : !!(keepStateOptions.keepDefaultValues && !deepEqual(formValues, _defaultValues)),\n isSubmitted: keepStateOptions.keepIsSubmitted ? _formState.isSubmitted : false,\n dirtyFields: isEmptyResetValues ? [] : keepStateOptions.keepDirtyValues ? keepStateOptions.keepDefaultValues && _formValues ? getDirtyFields(_defaultValues, _formValues) : _formState.dirtyFields : keepStateOptions.keepDefaultValues && formValues ? getDirtyFields(_defaultValues, formValues) : {},\n touchedFields: keepStateOptions.keepTouched ? _formState.touchedFields : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful ? _formState.isSubmitSuccessful : false,\n isSubmitting: 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 = {\n ..._formState,\n ...updatedFormState\n };\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 handleSubmit,\n setError,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _updateDisabledField,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _updateFormState,\n _disableForm,\n _subjects,\n _proxyFormState,\n _setErrors,\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 = {\n ..._options,\n ...value\n };\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/docs/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 _values = React.useRef();\n const [formState, updateFormState] = 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 validatingFields: {},\n errors: props.errors || {},\n disabled: props.disabled || false,\n defaultValues: isFunction(props.defaultValues) ? undefined : props.defaultValues\n });\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props),\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({\n ...control._formState\n });\n }\n }\n });\n React.useEffect(() => control._disableForm(props.disabled), [control, props.disabled]);\n React.useEffect(() => {\n if (control._proxyFormState.isDirty) {\n const isDirty = control._getDirty();\n if (isDirty !== formState.isDirty) {\n control._subjects.state.next({\n isDirty\n });\n }\n }\n }, [control, formState.isDirty]);\n React.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, control._options.resetOptions);\n _values.current = props.values;\n updateFormState(state => ({\n ...state\n }));\n } else {\n control._resetDefaultValues();\n }\n }, [props.values, control]);\n React.useEffect(() => {\n if (props.errors) {\n control._setErrors(props.errors);\n }\n }, [props.errors, 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({\n ...control._formState\n });\n }\n control._removeUnmounted();\n });\n React.useEffect(() => {\n props.shouldUnregister && control._subjects.values.next({\n values: control._getWatch()\n });\n }, [props.shouldUnregister, control]);\n _formControl.current.formState = getProxyFormState(formState, control);\n return _formControl.current;\n}\nexport { Controller, Form, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };"],"names":["isCheckBoxInput","element","type","isDateObject","value","Date","isNullOrUndefined","isObjectType","isObject","Array","isArray","getEventValue","event","target","checked","isNameInFieldArray","names","name","has","substring","search","getNodeParentName","isPlainObject","tempObject","prototypeCopy","constructor","prototype","hasOwnProperty","isWeb","window","HTMLElement","document","cloneObject","data","copy","Set","Blob","FileList","key","compact","filter","Boolean","isUndefined","val","undefined","get","object","path","defaultValue","result","split","reduce","isBoolean","EVENTS","BLUR","FOCUS_OUT","CHANGE","VALIDATION_MODE","onBlur","onChange","onSubmit","onTouched","all","INPUT_VALIDATION_RULES","HookFormContext","useFormContext","getProxyFormState","formState","control","localProxyFormState","isRoot","arguments","length","defaultValues","_defaultValues","Object","defineProperty","_key","_proxyFormState","isEmptyObject","keys","shouldRenderFormState","formStateData","updateFormState","find","convertToArrayPayload","shouldSubscribeByName","signalName","exact","some","currentName","startsWith","useSubscribe","props","_props","current","subscription","disabled","subject","subscribe","next","unsubscribe","isString","generateWatchOutput","_names","formValues","isGlobal","watch","add","map","fieldName","watchAll","isKey","test","stringToPath","input","replace","set","index","tempPath","lastIndex","newValue","objValue","isNaN","useController","methods","shouldUnregister","isArrayField","array","_name","_subjects","values","updateValue","_formValues","_getWatch","_removeUnmounted","useWatch","_formState","_mounted","_localProxyFormState","isDirty","isLoading","dirtyFields","touchedFields","validatingFields","isValidating","isValid","errors","_updateFormState","state","_updateValid","useFormState","_registerProps","register","rules","_shouldUnregisterField","_options","updateMounted","field","_fields","_f","mount","_state","action","unregister","_updateDisabledField","fields","ref","elm","focus","select","setCustomValidity","message","reportValidity","fieldState","defineProperties","invalid","enumerable","isTouched","error","Controller","render","appendErrors","validateAllFieldCriteria","types","getValidationModes","mode","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isWatched","isBlurEvent","watchName","slice","iterateFieldsByAction","fieldsNames","abortEarly","currentField","refs","updateFieldArrayRootError","fieldArrayErrors","isFileInput","isFunction","isHTMLElement","owner","ownerDocument","defaultView","isMessage","isRadioInput","isRegex","RegExp","defaultResult","validResult","getCheckboxValue","options","option","attributes","defaultReturn","getRadioValue","previous","getValidateError","every","getValueAndMessage","validationData","validateField","async","shouldUseNativeValidation","isFieldArray","required","maxLength","minLength","min","max","pattern","validate","valueAsNumber","inputValue","inputRef","isRadio","isCheckBox","isRadioOrCheckbox","isEmpty","appendErrorsCurry","bind","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueDate","valueAsDate","convertTimeToDate","time","toDateString","isTime","isWeek","valueNumber","maxLengthOutput","minLengthOutput","patternValue","match","validateError","validationResult","unset","paths","childObject","updatePath","baseGet","obj","isEmptyArray","createSubject","_observers","observers","observer","push","o","isPrimitive","deepEqual","object1","object2","getTime","keys1","keys2","val1","includes","val2","isMultipleSelect","live","isConnected","objectHasFunction","markFieldsDirty","isParentNodeArray","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","getDirtyFields","getFieldValueAs","_ref2","setValueAs","NaN","getFieldValue","files","selectedOptions","_ref3","getResolverOptions","criteriaMode","getRuleValue","rule","source","hasValidation","schemaErrorLookup","join","foundError","pop","skipValidation","isSubmitted","reValidateMode","unsetEmptyArray","defaultOptions","shouldFocusError","createFormControl","delayErrorCallback","submitCount","isSubmitting","isSubmitSuccessful","unMount","timer","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","shouldUpdateValid","resolver","_executeSchema","executeBuiltInValidation","_updateIsValidating","from","forEach","updateValidAndValue","shouldSkipSetValueAs","defaultChecked","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldRender","shouldUpdateField","isPreviousDirty","output","disabledField","_getDirty","isCurrentFieldPristine","isPreviousFieldTouched","shouldRenderByError","previousFieldError","callback","delayError","updateErrors","wait","clearTimeout","setTimeout","updatedFormState","context","shouldOnlyCheckValid","valid","isFieldArrayRoot","fieldError","getValues","fieldReference","optionRef","selected","checkboxRef","radioRef","shouldTouch","shouldValidate","trigger","setValues","fieldKey","concat","setValue","cloneValue","isFieldValueUpdated","_updateIsFieldValueUpdated","Number","shouldSkipValidation","deps","watched","previousErrorLookupResult","errorLookupResult","_focusInput","fieldNames","executeSchemaAndUpdateState","Promise","shouldFocus","getFieldState","setError","delete","keepValue","keepError","keepDirty","keepTouched","keepIsValidating","keepDefaultValue","keepIsValid","_ref4","disabledIsDefined","progressive","fieldRef","querySelectorAll","radioOrCheckbox","_focusError","handleSubmit","onValid","onInvalid","onValidError","e","preventDefault","persist","fieldValues","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","isEmptyResetValues","keepDefaultValues","keepValues","keepDirtyValues","form","closest","reset","keepSubmitCount","keepIsSubmitted","keepErrors","keepIsSubmitSuccessful","_updateFieldArray","method","args","shouldSetValues","shouldUpdateFieldsAndState","argA","argB","_getFieldArray","_resetDefaultValues","then","resetOptions","_disableForm","requiredDisabledState","_setErrors","payload","resetField","clearErrors","inputName","setFocus","shouldSelect","useForm","_formControl","_values"],"sourceRoot":""}