{"version":3,"file":"passwordrequest.bundle.js","mappings":"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","sources":["webpack:///webpack/runtime/chunk loaded","webpack:///webpack/runtime/create fake namespace object","webpack:///webpack/runtime/load script","webpack:///webpack/runtime/css loading","webpack:///./node_modules/wouter/esm/index.js","webpack:///./components/password_request/schemas/changepassword.schema.ts","webpack:///./components/password_request/Components/FormChangePassword.tsx","webpack:///./components/password_request/hooks/useCreatePassword.ts","webpack:///./components/password_request/schemas/passwordrequest.schema.ts","webpack:///./components/password_request/Components/FormForgotPassword.tsx","webpack:///./components/password_request/hooks/usePassword.tsx","webpack:///./components/password_request/PasswordRequest.tsx","webpack:///./components/password_request/index.tsx","webpack:///external var \"jQuery\"","webpack:///./node_modules/react-hook-form/dist/index.esm.mjs","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/ensure chunk","webpack:///webpack/runtime/get javascript chunk filename","webpack:///webpack/runtime/get mini-css chunk filename","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/runtimeId","webpack:///webpack/runtime/publicPath","webpack:///webpack/runtime/jsonp chunk loading","webpack:///webpack/runtime/nonce","webpack:///webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"tsc-react:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t2438: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"7867\":1,\"8652\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","import { parse } from 'regexparam';\nimport { useBrowserLocation, useSearch as useSearch$1 } from './use-browser-location.js';\nimport { createContext, forwardRef, useEvent, isValidElement, cloneElement, createElement, useContext, useRef, useIsomorphicLayoutEffect, Fragment } from './react-deps.js';\n\n/*\n * Transforms `path` into its relative `base` version\n * If base isn't part of the path provided returns absolute path e.g. `~/app`\n */\nconst relativePath = (base = \"\", path) =>\n !path.toLowerCase().indexOf(base.toLowerCase())\n ? path.slice(base.length) || \"/\"\n : \"~\" + path;\n\nconst absolutePath = (to, base = \"\") =>\n to[0] === \"~\" ? to.slice(1) : base + to;\n\n/*\n * Removes leading question mark\n */\nconst stripQm = (str) => (str[0] === \"?\" ? str.slice(1) : str);\n\n/*\n * decodes escape sequences such as %20\n */\nconst unescape = (str) => {\n try {\n return decodeURI(str);\n } catch (_e) {\n // fail-safe mode: if string can't be decoded do nothing\n return str;\n }\n};\n\n/*\n * Router and router context. Router is a lightweight object that represents the current\n * routing options: how location is managed, base path etc.\n *\n * There is a default router present for most of the use cases, however it can be overridden\n * via the <Router /> component.\n */\n\nconst defaultRouter = {\n hook: useBrowserLocation,\n searchHook: useSearch$1,\n parser: parse,\n base: \"\",\n // this option is used to override the current location during SSR\n ssrPath: undefined,\n ssrSearch: undefined,\n};\n\nconst RouterCtx = createContext(defaultRouter);\n\n// gets the closest parent router from the context\nconst useRouter = () => useContext(RouterCtx);\n\n/**\n * Parameters context. Used by `useParams()` to get the\n * matched params from the innermost `Route` component.\n */\n\nconst ParamsCtx = createContext({});\n\nconst useParams = () => useContext(ParamsCtx);\n\n/*\n * Part 1, Hooks API: useRoute and useLocation\n */\n\n// Internal version of useLocation to avoid redundant useRouter calls\n\nconst useLocationFromRouter = (router) => {\n const [location, navigate] = router.hook(router);\n\n // the function reference should stay the same between re-renders, so that\n // it can be passed down as an element prop without any performance concerns.\n // (This is achieved via `useEvent`.)\n return [\n unescape(relativePath(router.base, location)),\n useEvent((to, navOpts) => navigate(absolutePath(to, router.base), navOpts)),\n ];\n};\n\nconst useLocation = () => useLocationFromRouter(useRouter());\n\nconst useSearch = () => {\n const router = useRouter();\n return unescape(stripQm(router.searchHook(router)));\n};\n\nconst matchRoute = (parser, route, path, loose) => {\n // when parser is in \"loose\" mode, `$base` is equal to the\n // first part of the route that matches the pattern\n // (e.g. for pattern `/a/:b` and path `/a/1/2/3` the `$base` is `a/1`)\n // we use this for route nesting\n const { pattern, keys } = parser(route || \"*\", loose);\n const [$base, ...matches] = pattern.exec(path) || [];\n\n return $base !== undefined\n ? [\n true,\n\n // an object with parameters matched, e.g. { foo: \"bar\" } for \"/:foo\"\n // we \"zip\" two arrays here to construct the object\n // [\"foo\"], [\"bar\"] → { foo: \"bar\" }\n Object.fromEntries(keys.map((key, i) => [key, matches[i]])),\n\n // the third value if only present when parser is in \"loose\" mode,\n // so that we can extract the base path for nested routes\n ...(loose ? [$base] : []),\n ]\n : [false, null];\n};\n\nconst useRoute = (pattern) =>\n matchRoute(useRouter().parser, pattern, useLocation()[0]);\n\n/*\n * Part 2, Low Carb Router API: Router, Route, Link, Switch\n */\n\nconst Router = ({ children, ...props }) => {\n // the router we will inherit from - it is the closest router in the tree,\n // unless the custom `hook` is provided (in that case it's the default one)\n const parent_ = useRouter();\n const parent = props.hook ? defaultRouter : parent_;\n\n // holds to the context value: the router object\n let value = parent;\n\n // what is happening below: to avoid unnecessary rerenders in child components,\n // we ensure that the router object reference is stable, unless there are any\n // changes that require reload (e.g. `base` prop changes -> all components that\n // get the router from the context should rerender, even if the component is memoized).\n // the expected behaviour is:\n //\n // 1) when the resulted router is no different from the parent, use parent\n // 2) if the custom `hook` prop is provided, we always inherit from the\n // default router instead. this resets all previously overridden options.\n // 3) when the router is customized here, it should stay stable between renders\n let ref = useRef({}),\n prev = ref.current,\n next = prev;\n\n for (let k in parent) {\n const option =\n k === \"base\"\n ? /* base is special case, it is appended to the parent's base */\n parent[k] + (props[k] || \"\")\n : props[k] || parent[k];\n\n if (prev === next && option !== next[k]) {\n ref.current = next = { ...next };\n }\n\n next[k] = option;\n\n // the new router is no different from the parent, use parent\n if (option !== parent[k]) value = next;\n }\n\n return createElement(RouterCtx.Provider, { value, children });\n};\n\nconst h_route = ({ children, component }, params) => {\n // React-Router style `component` prop\n if (component) return createElement(component, { params });\n\n // support render prop or plain children\n return typeof children === \"function\" ? children(params) : children;\n};\n\nconst Route = ({ path, nest, match, ...renderProps }) => {\n const router = useRouter();\n const [location] = useLocationFromRouter(router);\n\n const [matches, params, base] =\n // `match` is a special prop to give up control to the parent,\n // it is used by the `Switch` to avoid double matching\n match ?? matchRoute(router.parser, path, location, nest);\n\n if (!matches) return null;\n\n const children = base\n ? createElement(Router, { base }, h_route(renderProps, params))\n : h_route(renderProps, params);\n\n return createElement(ParamsCtx.Provider, { value: params, children });\n};\n\nconst Link = forwardRef((props, ref) => {\n const router = useRouter();\n const [, navigate] = useLocationFromRouter(router);\n\n const {\n to,\n href: _href = to,\n onClick: _onClick,\n asChild,\n children,\n /* eslint-disable no-unused-vars */\n replace /* ignore nav props */,\n state /* ignore nav props */,\n /* eslint-enable no-unused-vars */\n ...restProps\n } = props;\n\n const onClick = useEvent((event) => {\n // ignores the navigation when clicked using right mouse button or\n // by holding a special modifier key: ctrl, command, win, alt, shift\n if (\n event.ctrlKey ||\n event.metaKey ||\n event.altKey ||\n event.shiftKey ||\n event.button !== 0\n )\n return;\n\n _onClick && _onClick(event); // TODO: is it safe to use _onClick?.(event)\n if (!event.defaultPrevented) {\n event.preventDefault();\n navigate(_href, props);\n }\n });\n\n // handle nested routers and absolute paths\n const href = _href[0] === \"~\" ? _href.slice(1) : router.base + _href;\n\n return asChild && isValidElement(children)\n ? cloneElement(children, { href, onClick })\n : createElement(\"a\", { ...restProps, href, onClick, children, ref });\n});\n\nconst flattenChildren = (children) => {\n return Array.isArray(children)\n ? [].concat(\n ...children.map((c) =>\n c && c.type === Fragment\n ? flattenChildren(c.props.children)\n : flattenChildren(c)\n )\n )\n : [children];\n};\n\nconst Switch = ({ children, location }) => {\n const router = useRouter();\n const [originalLocation] = useLocationFromRouter(router);\n\n for (const element of flattenChildren(children)) {\n let match = 0;\n\n if (\n isValidElement(element) &&\n // we don't require an element to be of type Route,\n // but we do require it to contain a truthy `path` prop.\n // this allows to use different components that wrap Route\n // inside of a switch, for example <AnimatedRoute />.\n (match = matchRoute(\n router.parser,\n element.props.path,\n location || originalLocation,\n element.props.nest\n ))[0]\n )\n return cloneElement(element, { match });\n }\n\n return null;\n};\n\nconst Redirect = (props) => {\n const { to, href = to } = props;\n const [, navigate] = useLocation();\n const redirect = useEvent(() => navigate(to || href, props));\n\n // redirect is guaranteed to be stable since it is returned from useEvent\n useIsomorphicLayoutEffect(() => {\n redirect();\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n return null;\n};\n\nexport { Link, Redirect, Route, Router, Switch, useLocation, useParams, useRoute, useRouter, useSearch };\n","import { z } from 'zod';\r\n\r\nexport const passwordSchema = z\r\n .string()\r\n .min(8, { message: 'Must be at least 8 characters' })\r\n .refine((value) => /[A-Z]/.test(value), {\r\n message: 'Must contain at least one uppercase character',\r\n })\r\n .refine((value) => /[a-z]/.test(value), {\r\n message: 'Must contain at least one lowercase character',\r\n })\r\n .refine((value) => /\\d/.test(value), {\r\n message: 'Must contain at least one number',\r\n })\r\n .refine((value) => /[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_`{|}~]/.test(value), {\r\n message: 'Password must contain a special character',\r\n });\r\n\r\nexport const ChangePasswordSchema = z\r\n .object({\r\n newPassword: passwordSchema,\r\n retypeNewPassword: passwordSchema,\r\n })\r\n .refine((data) => data.newPassword === data.retypeNewPassword, {\r\n message: 'Passwords do not match',\r\n path: ['retypeNewPassword'],\r\n });\r\n\r\nexport enum province {\r\n A = 'a',\r\n B = 'AB',\r\n C = 'BC',\r\n D = 'MB',\r\n E = 'NB',\r\n F = 'NL',\r\n G = 'NT',\r\n H = 'NS',\r\n I = 'NU',\r\n J = 'ON',\r\n K = 'PE',\r\n L = 'QC',\r\n M = 'SK',\r\n N = 'YT',\r\n}\r\n","import { zodResolver } from '@hookform/resolvers/zod';\r\nimport { useIsMutating } from '@tanstack/react-query';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useForm, useController, useFormState, Controller, SubmitHandler } from 'react-hook-form';\r\nimport { z } from 'zod';\r\n\r\nimport CheckmarkSmallSvg from '@/components/common/CheckmarkSmallSvg';\r\nimport CloseSvg from '@/components/common/CloseSvg';\r\nimport HidePasswordSvg from '@/components/common/HidePasswordSvg';\r\nimport LoadingSvg from '@/components/common/LoadingSvg';\r\nimport ViewPasswordSvg from '@/components/common/ViewPasswordSvg';\r\nimport {\r\n isValidContainNumber,\r\n isValidTooSmall,\r\n isValidSpecial,\r\n isValidLower,\r\n isValidUpper,\r\n isValidUpperLower,\r\n} from '@/components/myaccount/utils/validation';\r\nimport { Button } from '@/components/ui/button';\r\nimport { Cookie } from '@/tscapi/utils/cookie';\r\n\r\nimport { usePasswordInfo, usePasswordUpdate } from '../hooks/useCreatePassword';\r\nimport { ChangePasswordSchema } from '../schemas/changepassword.schema';\r\n\r\ntype ValidationAccountSchema = z.infer<typeof ChangePasswordSchema>;\r\ninterface FormChangePasswordProps {\r\n info?: string;\r\n}\r\nexport const FormChangePassword = ({ info }: FormChangePasswordProps) => {\r\n const [showNewPassword, setShowNewPassword] = useState(false);\r\n const [showRetypePassword, setShowRetypePassword] = useState(false);\r\n const [showError, setShowError] = useState('');\r\n const toggleShowNewPassword = () => setShowNewPassword((prevState) => !prevState);\r\n const toggleShowRetypePassword = () => setShowRetypePassword((prevState) => !prevState);\r\n const mutationPasswordInfo = usePasswordInfo();\r\n const mutationPasswordUpdate = usePasswordUpdate();\r\n const isMutating = useIsMutating();\r\n const {\r\n handleSubmit,\r\n register,\r\n control,\r\n setError,\r\n watch,\r\n trigger,\r\n setValue,\r\n clearErrors,\r\n getFieldState,\r\n formState: { errors, isDirty, isValid, dirtyFields, touchedFields, isSubmitting },\r\n } = useForm<ValidationAccountSchema>({\r\n resolver: zodResolver(ChangePasswordSchema),\r\n mode: 'all',\r\n criteriaMode: 'all',\r\n defaultValues: {\r\n newPassword: '',\r\n retypeNewPassword: '',\r\n },\r\n });\r\n const passw = watch('retypeNewPassword');\r\n useEffect(() => {\r\n if (info) {\r\n console.log(`info: ${info}`);\r\n const payload = {\r\n Info: info,\r\n };\r\n mutationPasswordInfo.mutate(payload, {\r\n onSuccess: ({ data }) => {\r\n setShowError('');\r\n },\r\n onError: (data) => {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth',\r\n });\r\n setShowError(data as string);\r\n },\r\n });\r\n }\r\n }, [info]);\r\n\r\n const onSubmit = (data) => {\r\n const payload = {\r\n NewPassword: data.newPassword,\r\n NewPasswordConfirmed: data.retypeNewPassword,\r\n Info: info,\r\n };\r\n mutationPasswordUpdate.mutate(payload, {\r\n onSuccess: (data) => {\r\n setShowError('');\r\n const cookie: Cookie = new Cookie();\r\n cookie.deleteTargetUrl();\r\n window.location.href = '/pages/myaccount';\r\n },\r\n onError: (data) => {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth',\r\n });\r\n setShowError(data as string);\r\n },\r\n });\r\n };\r\n return (\r\n <form onSubmit={handleSubmit(onSubmit)}>\r\n <div className=\"px-5 pb-32 pt-14 md:mx-auto md:max-w-[560px]\">\r\n <h1 className=\"m-0 pb-2 text-xl font-bold text-[#1a1a1a] md:pb-4 md:text-center md:text-2xl \">\r\n Create a new password\r\n </h1>\r\n {showError ? (\r\n <>\r\n <p className=\"text-base font-bold text-red-600\">{showError}</p>\r\n </>\r\n ) : null}\r\n <p className=\"mb-10 text-base font-light\">Please enter your new password below.</p>\r\n <div className=\"mb-4 pb-4\">\r\n {/* --------- new password --------- */}\r\n <div className=\" relative z-0 mb-6 flex flex-col justify-center\">\r\n <input\r\n className=\"profile__form-input peer block w-full appearance-none rounded-none border-0 border-b border-black bg-transparent px-0 pb-1.5 pt-2.5 text-base font-light text-[#1a1a1a] focus-within:outline-none focus:outline-none focus:ring-0 focus-visible:shadow-lg focus-visible:ring-[#f8f8f8] data-[error=true]:border-[#df0c0c]\"\r\n type={showNewPassword ? 'text' : 'password'}\r\n maxLength={15}\r\n placeholder=\" \"\r\n data-error={getFieldState('newPassword').error ? 'true' : 'false'}\r\n // data-empty={inputNew === '' ? 'true' : 'false'}\r\n tabIndex={0}\r\n autoComplete=\"new-password\"\r\n {...register('newPassword', {\r\n onChange: (e) => {\r\n if (passw != '') {\r\n trigger('retypeNewPassword');\r\n }\r\n },\r\n })}\r\n />\r\n <label\r\n className=\"absolute top-2.5 -z-10 mb-0 origin-[0] -translate-y-5 scale-75 transform text-base font-medium duration-300 peer-placeholder-shown:translate-y-0 peer-placeholder-shown:scale-100 peer-focus:left-0 peer-focus:-translate-y-5 peer-focus:scale-75\"\r\n htmlFor=\"newPassword\"\r\n >\r\n New password\r\n </label>\r\n\r\n <button\r\n className=\"absolute right-0 z-[2]\"\r\n type=\"button\"\r\n onClick={toggleShowNewPassword}\r\n tabIndex={-1}\r\n >\r\n {showNewPassword ? (\r\n <ViewPasswordSvg width=\"20\" height=\"19\" />\r\n ) : (\r\n <HidePasswordSvg width=\"20\" height=\"20\" />\r\n )}\r\n </button>\r\n </div>\r\n\r\n {(getFieldState('newPassword').isTouched || getFieldState('newPassword').isDirty) && (\r\n <div className=\" px-5 pb-7 pt-0 text-[13px] \">\r\n <div className=\"font-semibold\">Your password must have:</div>\r\n <div className=\"flex flex-col\">\r\n <div\r\n className={\r\n isValidTooSmall(errors)\r\n ? ' valid group pt-2 text-green-700'\r\n : 'group pt-2 text-red-500'\r\n }\r\n >\r\n <CheckmarkSmallSvg className=\"hidden group-[.valid]:!inline\" />\r\n <CloseSvg className=\"inline group-[.valid]:hidden\" width=\"14\" height=\"12\" />\r\n <span className=\"pl-2.5\">at least 8 characters</span>\r\n </div>\r\n <div\r\n className={\r\n isValidUpper(errors)\r\n ? ' valid group pt-2 text-green-700'\r\n : 'group pt-2 text-red-500'\r\n }\r\n >\r\n <CheckmarkSmallSvg className=\"hidden group-[.valid]:!inline\" />\r\n <CloseSvg className=\"inline group-[.valid]:hidden\" width=\"14\" height=\"12\" />\r\n <span className=\"pl-2.5\">include at least 1 upper case letter</span>\r\n </div>\r\n <div\r\n className={\r\n isValidLower(errors)\r\n ? ' valid group pt-2 text-green-700'\r\n : 'group pt-2 text-red-500'\r\n }\r\n >\r\n <CheckmarkSmallSvg className=\"hidden group-[.valid]:!inline\" />\r\n <CloseSvg className=\"inline group-[.valid]:hidden\" width=\"14\" height=\"12\" />\r\n <span className=\"pl-2.5\">include at least 1 lower case letter</span>\r\n </div>\r\n <div\r\n className={\r\n isValidContainNumber(errors)\r\n ? 'valid group pt-2 text-green-700'\r\n : 'group pt-2 text-red-500'\r\n }\r\n >\r\n <CheckmarkSmallSvg className=\"hidden group-[.valid]:!inline\" />\r\n <CloseSvg className=\"inline group-[.valid]:hidden\" width=\"14\" height=\"12\" />\r\n <span className=\"pl-2.5\">include at least 1 number</span>\r\n </div>\r\n <div\r\n className={\r\n isValidSpecial(errors)\r\n ? 'valid group pt-2 text-green-700'\r\n : 'group pt-2 text-red-500'\r\n }\r\n >\r\n <CheckmarkSmallSvg className=\"hidden group-[.valid]:!inline\" />\r\n <CloseSvg className=\"inline group-[.valid]:hidden\" width=\"14\" height=\"12\" />\r\n <span className=\"pl-2.5\">\r\n include at least 1 special character\r\n <span className=\"max-md:hidden md:inline\">\r\n {' '}\r\n (e.g. !, @, #, $, %, ^, &, *, or ~)\r\n </span>\r\n <span className=\"max-md:block max-md:pl-6 md:hidden\">\r\n (e.g. !, @, #, $, %, ^, &, *, or ~)\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* --------- retype password --------- */}\r\n <div className=\" relative z-0 mb-6 flex flex-col justify-center\">\r\n <div className=\"relative z-0 flex flex-col justify-center\">\r\n <input\r\n className=\"profile__form-input peer block w-full appearance-none rounded-none border-0 border-b border-black bg-transparent px-0 pb-1.5 pt-2.5 text-base font-light text-[#1a1a1a] focus-within:outline-none focus:outline-none focus:ring-0 focus-visible:shadow-lg focus-visible:ring-[#f8f8f8] data-[error=true]:border-[#df0c0c]\"\r\n type={showRetypePassword ? 'text' : 'password'}\r\n // data-empty={inputRetype === '' ? 'true' : 'false'}\r\n data-error={getFieldState('retypeNewPassword').error ? 'true' : 'false'}\r\n tabIndex={0}\r\n placeholder=\" \"\r\n maxLength={15}\r\n autoComplete=\"new-password\"\r\n {...register('retypeNewPassword')}\r\n />\r\n <label\r\n className=\"absolute top-2.5 -z-10 mb-0 origin-[0] -translate-y-5 scale-75 transform text-base font-medium duration-300 peer-placeholder-shown:translate-y-0 peer-placeholder-shown:scale-100 peer-focus:left-0 peer-focus:-translate-y-5 peer-focus:scale-75\"\r\n htmlFor=\"retypeNewPassword\"\r\n >\r\n Re-type new password\r\n </label>\r\n\r\n <button\r\n className=\"absolute right-0 z-[2]\"\r\n type=\"button\"\r\n onClick={toggleShowRetypePassword}\r\n tabIndex={-1}\r\n >\r\n {showRetypePassword ? (\r\n <ViewPasswordSvg width=\"20\" height=\"19\" />\r\n ) : (\r\n <HidePasswordSvg width=\"20\" height=\"20\" />\r\n )}\r\n </button>\r\n </div>\r\n {errors.retypeNewPassword && (\r\n <div className=\"mt-1 font-semibold text-[#df0c0c]\">{errors.retypeNewPassword.message}</div>\r\n )}\r\n\r\n {/* {mutation.isError ? <div className=\"profile__error\">{mutation.error}</div> : null} */}\r\n </div>\r\n </div>\r\n {/* --------- Submit --------- */}\r\n <div>\r\n <div className=\"mb-7 mt-4 grid grid-cols-1\">\r\n <Button\r\n type=\"submit\"\r\n aria-label={'Send email'}\r\n disabled={!isValid || isSubmitting}\r\n tabIndex={!isValid ? -1 : 0}\r\n >\r\n Change password\r\n </Button>\r\n </div>\r\n </div>\r\n </div>\r\n {mutationPasswordUpdate.isLoading || isMutating || mutationPasswordInfo.isLoading ? (\r\n <div className=\"blockPageWrap\" style={{ display: 'block' }}>\r\n <div className=\"blockPageOverlay\"></div>\r\n <div className=\"blockMsg\">\r\n <LoadingSvg />\r\n </div>\r\n </div>\r\n ) : null}\r\n </form>\r\n );\r\n};\r\n","import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\r\n\r\nimport { TmAccount } from '@/tscapi/model/account';\r\nimport { TmCart } from '@/tscapi/model/cart';\r\nimport { TmMergeCartRequest } from '@/tscapi/model/request/account_cart-request';\r\nimport { setUserToken, getAccount } from '@/tscapi/service/account.service';\r\nimport { mergeCart, getAccountCart } from '@/tscapi/service/accountcart.service';\r\nimport http from '@/tscapi/service/httpservice';\r\nimport { Cookie } from '@/tscapi/utils/cookie';\r\n\r\n// used to check password\r\nexport const usePasswordInfo = () => {\r\n const base = '/api/v2/';\r\n const cookie: Cookie = new Cookie();\r\n const lang = cookie.Language.substring(0, 2) || 'en';\r\n type PasswordInfo = {\r\n Info: string;\r\n };\r\n\r\n return {\r\n ...useMutation({\r\n mutationFn: async (payload: PasswordInfo) => {\r\n return http.post(`${base}${lang}/passwordinfo/`, payload);\r\n },\r\n onSuccess: async (response, variables, context) => {},\r\n onError: (error, variables, context) => {\r\n console.log('error');\r\n },\r\n }),\r\n };\r\n};\r\n\r\n// used to check password\r\nexport const usePasswordUpdate = () => {\r\n const base = '/api/v2/';\r\n const cookie: Cookie = new Cookie();\r\n const lang = cookie.Language.substring(0, 2) || 'en';\r\n const queryClient = useQueryClient();\r\n type PasswordUpdate = {\r\n NewPassword: string;\r\n NewPasswordConfirmed: string;\r\n Info: string;\r\n };\r\n\r\n return {\r\n ...useMutation({\r\n mutationFn: async (payload: PasswordUpdate) => {\r\n return http.post(`${base}${lang}/passwordupdate/`, payload);\r\n },\r\n onSuccess: async (response, variables, context) => {\r\n setUserToken(response.data as TmAccount);\r\n //cart merge\r\n try {\r\n if (cookie.CartGuid) {\r\n const cartReq: TmMergeCartRequest = new TmMergeCartRequest();\r\n cartReq.CartGuid = cookie.CartGuid;\r\n const accountCart = await mergeCart(cartReq);\r\n if (accountCart && accountCart.data) {\r\n cookie.UserName = accountCart.data.Buyer.BillingAddress.FirstName;\r\n cookie.LastName = accountCart.data.Buyer.BillingAddress.LastName;\r\n cookie.CartGuid = accountCart.data.CartGuid;\r\n cookie.CartMerge = accountCart.data.IsCartMerged.toString();\r\n cookie.CartProductCount = accountCart.data.OrderSummary.TotalQuantity.toString();\r\n queryClient.setQueryData(\r\n ['bag', accountCart.data.CartGuid, cookie.UserAccessToken?.Edp, cookie.Language],\r\n accountCart.data as TmCart,\r\n );\r\n }\r\n } else {\r\n const accountCart = await getAccountCart();\r\n if (accountCart && accountCart.data) {\r\n cookie.UserName = accountCart.data.Buyer.BillingAddress.FirstName;\r\n cookie.LastName = accountCart.data.Buyer.BillingAddress.LastName;\r\n cookie.CartGuid = accountCart.data.CartGuid;\r\n cookie.CartMerge = accountCart.data.IsCartMerged.toString();\r\n cookie.CartProductCount = accountCart.data.OrderSummary.TotalQuantity.toString();\r\n queryClient.setQueryData(\r\n ['bag', accountCart.data.CartGuid, cookie.UserAccessToken?.Edp, cookie.Language],\r\n accountCart.data as TmCart,\r\n );\r\n }\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n const accountData = await getAccount();\r\n if (accountData && accountData.data) {\r\n cookie.UserName = accountData.data.BillingAddress.FirstName;\r\n cookie.LastName = accountData.data.BillingAddress.LastName;\r\n }\r\n }\r\n },\r\n onError: (error, variables, context) => {\r\n console.log(error);\r\n throw new Error(error as string);\r\n },\r\n }),\r\n };\r\n};\r\n","import { z } from 'zod';\r\n\r\nexport const passwordSchema = z\r\n .string()\r\n .min(8, { message: 'Must be at least 8 characters' })\r\n .refine((value) => /[A-Z]/.test(value), {\r\n message: 'Must contain at least one uppercase character',\r\n })\r\n .refine((value) => /[a-z]/.test(value), {\r\n message: 'Must contain at least one lowercase character',\r\n })\r\n .refine((value) => /\\d/.test(value), {\r\n message: 'Must contain at least one number',\r\n })\r\n .refine((value) => /[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_`{|}~]/.test(value), {\r\n message: 'Password must contain a special character',\r\n });\r\n\r\nexport const PasswordRequestSchema = z.object({\r\n email: z\r\n .string()\r\n .email({ message: 'Please enter your email address in the format john@example.com.' })\r\n .min(6, { message: 'Please enter a valid email address.' })\r\n .max(50, 'Email must be less than 50 characters.'),\r\n});\r\n","import { zodResolver } from '@hookform/resolvers/zod';\r\nimport { useIsMutating } from '@tanstack/react-query';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useForm, useController, useFormState, Controller, SubmitHandler } from 'react-hook-form';\r\nimport { z } from 'zod';\r\n\r\nimport LoadingSvg from '@/components/common/LoadingSvg';\r\nimport { Button } from '@/components/ui/button';\r\n\r\nimport { useForgotPassword } from '../hooks/usePassword';\r\ntype ValidationAccountSchema = z.infer<typeof PasswordRequestSchema>;\r\nimport { PasswordRequestSchema } from '../schemas/passwordrequest.schema';\r\n\r\ndeclare let grecaptcha: any;\r\ndeclare let reCaptchaEnabled: any;\r\ninterface FormForgotPasswordProps {\r\n name?: string;\r\n}\r\nexport const FormForgotPassword = () => {\r\n const mutation = useForgotPassword();\r\n const isMutating = useIsMutating();\r\n const [sentSuccess, setSentSuccess] = useState(false);\r\n const [sentMessage, setSentMessage] = useState('');\r\n const {\r\n handleSubmit,\r\n register,\r\n control,\r\n setError,\r\n watch,\r\n trigger,\r\n setValue,\r\n clearErrors,\r\n getFieldState,\r\n formState: { errors, isDirty, isValid, dirtyFields, touchedFields, isSubmitting },\r\n } = useForm<ValidationAccountSchema>({\r\n resolver: zodResolver(PasswordRequestSchema),\r\n mode: 'all',\r\n criteriaMode: 'all',\r\n defaultValues: {\r\n email: '',\r\n },\r\n });\r\n const [recaptchaToken, setRecaptchaToken] = useState('');\r\n const reCaptchaSiteKey = window.tscConfig['GoogleReCaptchaV3SiteKey'] as string;\r\n useEffect(() => {\r\n const loadReCaptcha = () => {\r\n const script = document.createElement('script');\r\n script.async = true;\r\n script.defer = true;\r\n script.src = 'https://www.google.com/recaptcha/api.js?render=' + reCaptchaSiteKey;\r\n document.body.appendChild(script);\r\n };\r\n loadReCaptcha();\r\n }, []);\r\n\r\n const onSubmit = (data) => {\r\n grecaptcha.ready(function () {\r\n grecaptcha.execute(reCaptchaSiteKey, { action: 'passwordreset' }).then((token) => {\r\n const payload = {\r\n BaseUrl: window.location.origin,\r\n Email: data.email,\r\n\r\n ReCaptchaToken: token,\r\n };\r\n mutation.mutate(payload, {\r\n onSuccess: (data) => {\r\n setSentSuccess(true);\r\n setSentMessage(data?.data?.ResponseMessage as string);\r\n },\r\n onError: (data) => {\r\n setSentSuccess(true);\r\n setSentMessage(data as string);\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth',\r\n });\r\n },\r\n });\r\n });\r\n });\r\n };\r\n const handleClick = () => {\r\n // Update the state variable\r\n setSentSuccess(false);\r\n };\r\n\r\n // if (mutation.isError) {\r\n // mutation.reset();\r\n // setTimeout(() => {\r\n // setError(\r\n // 'currentPassword',\r\n // { type: 'custom', message: 'Sorry! Your password was incorrect, please try again.' },\r\n // { shouldFocus: true },\r\n // );\r\n // }, 100);\r\n // }\r\n\r\n return (\r\n <>\r\n {/* forgot password email sent step 2 */}\r\n {sentSuccess && (\r\n <div className='className=\"flex flex-col\"'>\r\n <div className=\"px-5 pb-32 pt-14 md:mx-auto md:max-w-[560px]\">\r\n <h1 className=\"m-0 pb-2 text-xl font-bold text-[#1a1a1a] md:pb-4 md:text-center md:text-2xl \">\r\n Please check your email\r\n </h1>\r\n <p className=\"pb-4 text-base font-light \">{sentMessage}</p>\r\n {/* --------- Submit --------- */}\r\n <div>\r\n <div className=\"mb-7 mt-4 grid grid-cols-1\">\r\n <Button onClick={handleClick} aria-label={'Resend email'} tabIndex={!isValid ? -1 : 0}>\r\n Resend email\r\n </Button>\r\n </div>\r\n </div>\r\n <div className=\" text-left\">\r\n <a className=\"flex justify-start no-underline\" href=\"/pages/signin\">\r\n <svg\r\n className=\"h-5 w-5\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n viewBox=\"0 0 45 45\"\r\n >\r\n <g fill=\"none\" fillRule=\"evenodd\">\r\n <path\r\n stroke=\"#000\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n strokeWidth=\"2\"\r\n className=\"chevron\"\r\n d=\"M26 13 16 23l10 10\"\r\n />\r\n </g>\r\n </svg>\r\n <span className=\"underline\">Back to Sign-in</span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* forgot password step 1 */}\r\n {!sentSuccess && (\r\n <form onSubmit={handleSubmit(onSubmit)} className=\"flex flex-col\">\r\n <div className=\"px-5 pb-32 pt-14 md:mx-auto md:max-w-[560px]\">\r\n <h1 className=\"m-0 pb-2 text-xl font-bold text-[#1a1a1a] md:pb-4 md:text-center md:text-4xl \">\r\n Forgot your password?\r\n </h1>\r\n <p className=\"pb-4 text-base font-light\">\r\n Enter your email address below and we will send you an email with a link to reset your\r\n password.\r\n </p>\r\n <div className=\"relative z-0 mb-9\">\r\n <input\r\n type=\"text\"\r\n className=\"peer block w-full appearance-none rounded-none border-0 border-b border-black bg-transparent px-0 pb-1.5 pt-2.5 text-base font-light text-[#1a1a1a] focus-within:outline-none focus:outline-none focus:ring-0 focus-visible:shadow-lg data-[error=true]:border-[#df0c0c]\"\r\n placeholder=\" \"\r\n maxLength={50}\r\n data-error={getFieldState('email').error ? 'true' : 'false'}\r\n // data-empty={addressWatch === '' ? 'true' : 'false'}\r\n tabIndex={0}\r\n {...register('email')}\r\n />\r\n <label\r\n className=\"absolute top-2.5 -z-10 mb-0 origin-[0] -translate-y-5 scale-75 transform text-base font-medium duration-300 peer-placeholder-shown:translate-y-0 peer-placeholder-shown:scale-100 peer-focus:left-0 peer-focus:-translate-y-5 peer-focus:scale-75\"\r\n htmlFor=\"email\"\r\n >\r\n Email address *\r\n </label>\r\n {errors.email && <div className=\"mt-1 text-xs text-[#df0c0c]\">{errors.email.message}</div>}\r\n </div>\r\n {/* --------- Submit --------- */}\r\n <div>\r\n <div className=\"mb-7 mt-4 grid grid-cols-1\">\r\n <Button\r\n type=\"submit\"\r\n aria-label={'Send email'}\r\n disabled={!isValid || isSubmitting}\r\n tabIndex={!isValid ? -1 : 0}\r\n >\r\n Send email\r\n </Button>\r\n </div>\r\n </div>\r\n <div className=\" text-left\">\r\n <a className=\"flex justify-start no-underline\" href=\"/pages/signin\">\r\n <svg\r\n className=\"h-5 w-5\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n viewBox=\"0 0 45 45\"\r\n >\r\n <g fill=\"none\" fillRule=\"evenodd\">\r\n <path\r\n stroke=\"#000\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n strokeWidth=\"2\"\r\n className=\"chevron\"\r\n d=\"M26 13 16 23l10 10\"\r\n />\r\n </g>\r\n </svg>\r\n <span className=\"underline\">Back to sign-in</span>\r\n </a>\r\n </div>\r\n </div>\r\n {mutation.isLoading || isMutating ? (\r\n <div className=\"blockPageWrap\" style={{ display: 'block' }}>\r\n <div className=\"blockPageOverlay\"></div>\r\n <div className=\"blockMsg\">\r\n <LoadingSvg />\r\n </div>\r\n </div>\r\n ) : null}\r\n </form>\r\n )}\r\n </>\r\n );\r\n};\r\n","import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\r\n\r\n\r\nimport http from '@/tscapi/service/httpservice';\r\nimport { Cookie } from '@/tscapi/utils/cookie';\r\n\r\n// used to check password\r\nexport const useForgotPassword = () => {\r\n const base = '/api/v2/';\r\n const cookie: Cookie = new Cookie();\r\n const lang = cookie.Language.substring(0, 2) || 'en';\r\n type CheckEmailPayload = {\r\n BaseUrl: string;\r\n Email: string;\r\n };\r\n\r\n return {\r\n ...useMutation({\r\n mutationFn: async (payload: CheckEmailPayload) => {\r\n return http.post(`${base}${lang}/passwordreset/`, payload);\r\n },\r\n onSuccess: async (response, variables, context) => {},\r\n onError: (error, variables, context) => {\r\n console.log('error');\r\n },\r\n }),\r\n };\r\n};\r\n","import { zodResolver } from '@hookform/resolvers/zod';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useForm, useController, useFormState, Controller, SubmitHandler } from 'react-hook-form';\r\nimport { useLocation, useSearch } from 'wouter';\r\nimport { z } from 'zod';\r\n\r\nimport { FormChangePassword } from './Components/FormChangePassword';\r\nimport { FormForgotPassword } from './Components/FormForgotPassword';\r\ninterface PasswordRequestProps {\r\n name?: string;\r\n}\r\nexport const PasswordRequest = (PasswordRequestProps) => {\r\n // const [location, setLocation] = useLocation();\r\n const searchString = useSearch();\r\n const params = new URLSearchParams(searchString);\r\n const info = params.get('info');\r\n return <>{info ? <FormChangePassword info={info} /> : <FormForgotPassword />}</>;\r\n};\r\n","import { QueryClient, QueryClientProvider } from '@tanstack/react-query';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom/client';\r\n\r\nimport { PasswordRequest } from './PasswordRequest';\r\n\r\nconst element = document.getElementById('pwrequest') as HTMLElement;\r\nconst root = ReactDOM.createRoot(element);\r\nconst client = new QueryClient({\r\n defaultOptions: {\r\n queries: {\r\n cacheTime: 1000 * 60 * 60 * 24, // 24 hours\r\n staleTime: 1000 * 30, //30 seconds\r\n },\r\n },\r\n});\r\nif (element) {\r\n root.render(\r\n <React.StrictMode>\r\n <QueryClientProvider client={client}>\r\n <PasswordRequest />\r\n </QueryClientProvider>\r\n </React.StrictMode>,\r\n );\r\n}\r\n","module.exports = jQuery;","import React from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\nvar isObject = (value) => !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\n ? isCheckBoxInput(event.target)\n ? event.target.checked\n : event.target.value\n : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar isPlainObject = (tempObject) => {\n const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;\n return (isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf'));\n};\n\nvar isWeb = typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n\nfunction cloneObject(data) {\n let copy;\n const isArray = Array.isArray(data);\n if (data instanceof Date) {\n copy = new Date(data);\n }\n else if (data instanceof Set) {\n copy = new Set(data);\n }\n else if (!(isWeb && (data instanceof Blob || data instanceof FileList)) &&\n (isArray || isObject(data))) {\n copy = isArray ? [] : {};\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n }\n else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n }\n else {\n return data;\n }\n return copy;\n}\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar isUndefined = (val) => val === undefined;\n\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\n ? isUndefined(obj[path])\n ? defaultValue\n : obj[path]\n : result;\n};\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};\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 * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\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 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 * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst FormProvider = (props) => {\n const { children, ...data } = props;\n return (React.createElement(HookFormContext.Provider, { value: data }, children));\n};\n\nvar getProxyFormState = (formState, control, localProxyFormState, isRoot = 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};\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, isRoot) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n return (isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find((key) => _proxyFormState[key] ===\n (!isRoot || VALIDATION_MODE.all)));\n};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar shouldSubscribeByName = (name, signalName, exact) => exact && signalName\n ? name === signalName\n : !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some((currentName) => currentName &&\n (currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)));\n\nfunction useSubscribe(props) {\n const _props = React.useRef(props);\n _props.current = props;\n React.useEffect(() => {\n const subscription = !props.disabled &&\n _props.current.subject &&\n _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 * <form onSubmit={handleSubmit(onSubmit)}>\n * <input {...register(\"firstName\")} placeholder=\"First Name\" />\n * {dirtyFields.firstName && <p>Field is dirty.</p>}\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFormState(props) {\n const methods = useFormContext();\n const { control = methods.control, disabled, name, exact } = 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 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 &&\n shouldSubscribeByName(_name.current, value.name, exact) &&\n shouldRenderFormState(value, _localProxyFormState.current, control._updateFormState) &&\n 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}\n\nvar isString = (value) => typeof value === 'string';\n\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 { watch } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nfunction useWatch(props) {\n const methods = useFormContext();\n const { control = methods.control, name, defaultValue, disabled, exact, } = 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}\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\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 =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n}\n\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 * <div>\n * <input {...field} placeholder={props.name} />\n * <p>{fieldState.isTouched && \"Touched\"}</p>\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * </div>\n * );\n * }\n * ```\n */\nfunction useController(props) {\n const methods = useFormContext();\n const { name, control = methods.control, shouldUnregister } = 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 }));\n _registerProps.current = control.register(name, props.rules);\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\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField)\n ? control.unregister(name)\n : 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/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<FormValues>({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n * <form>\n * <Controller\n * control={control}\n * name=\"test\"\n * render={({ field: { onChange, onBlur, value, ref }, formState, fieldState }) => (\n * <>\n * <input\n * onChange={onChange} // send value to hook form\n * onBlur={onBlur} // notify when input is touched\n * value={value} // return updated value\n * ref={ref} // set ref for focus management\n * />\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * <p>{fieldState.isTouched ? \"touched\" : \"\"}</p>\n * </>\n * )}\n * />\n * </form>\n * );\n * }\n * ```\n */\nconst Controller = (props) => props.render(useController(props));\n\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 * <Form action=\"/api\" control={control}>\n * <input {...register(\"name\")} />\n * <p>{errors?.root?.server && 'Server error'}</p>\n * <button>Submit</button>\n * </Form>\n * );\n * }\n * ```\n */\nfunction Form(props) {\n const methods = useFormContext();\n const [mounted, setMounted] = React.useState(false);\n const { control = methods.control, onSubmit, children, action, method = POST_REQUEST, headers, encType, onError, render, onSuccess, validateStatus, ...rest } = 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 }\n catch (_a) { }\n for (const name of control._names.mount) {\n formData.append(name, get(data, name));\n }\n if (onSubmit) {\n onSubmit({\n data,\n event,\n method,\n formData,\n formDataJson,\n });\n }\n if (action) {\n try {\n const shouldStringifySubmissionData = [\n headers && headers['Content-Type'],\n encType,\n ].some((value) => value && value.includes('json'));\n const response = await fetch(action, {\n method,\n headers: {\n ...headers,\n ...(encType ? { 'Content-Type': encType } : {}),\n },\n body: shouldStringifySubmissionData ? formDataJson : formData,\n });\n if (response &&\n (validateStatus\n ? !validateStatus(response.status)\n : response.status < 200 || response.status >= 300)) {\n hasError = true;\n onError && onError({ response });\n type = String(response.status);\n }\n else {\n onSuccess && onSuccess({ response });\n }\n }\n catch (error) {\n hasError = true;\n onError && onError({ error });\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\", { noValidate: mounted, action: action, method: method, encType: encType, onSubmit: submit, ...rest }, children));\n}\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\n [type]: message || true,\n },\n }\n : {};\n\nconst focusFieldBy = (fields, callback, fieldsNames) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n if (field) {\n const { _f, ...currentField } = field;\n if (_f && callback(_f.name)) {\n if (_f.ref.focus) {\n _f.ref.focus();\n break;\n }\n else if (_f.refs && _f.refs[0].focus) {\n _f.refs[0].focus();\n break;\n }\n }\n else if (isObject(currentField)) {\n focusFieldBy(currentField, callback);\n }\n }\n }\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};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\n ? options.focusName ||\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n : '';\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});\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length))));\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};\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isHTMLElement = (value) => {\n if (!isWeb) {\n return false;\n }\n const owner = value ? value.ownerDocument : 0;\n return (value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement));\n};\n\nvar isMessage = (value) => isString(value);\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRegex = (value) => value instanceof RegExp;\n\nconst defaultResult = {\n value: false,\n isValid: false,\n};\nconst validResult = { value: true, isValid: true };\nvar getCheckboxValue = (options) => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n return defaultResult;\n};\n\nconst defaultReturn = {\n isValid: false,\n value: null,\n};\nvar getRadioValue = (options) => Array.isArray(options)\n ? options.reduce((previous, option) => option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous, defaultReturn)\n : defaultReturn;\n\nfunction getValidateError(result, ref, type = 'validate') {\n if (isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n\nvar validateField = async (field, formValues, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, disabled, } = 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)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = 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\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))) {\n const { value, message } = isMessage(required)\n ? { value: !!required, 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 ||\n (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 }\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\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : 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) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\n 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 { value: patternValue, message } = 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 }\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};\n\nfunction append(data, value) {\n return [...data, ...convertToArrayPayload(value)];\n}\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\n return [\n ...data.slice(0, index),\n ...convertToArrayPayload(value),\n ...data.slice(index),\n ];\n}\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};\n\nfunction prepend(data, value) {\n return [...convertToArrayPayload(value), ...convertToArrayPayload(data)];\n}\n\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)\n ? []\n : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\n data[indexA] = [data[indexB], (data[indexB] = data[indexA])][0];\n};\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)\n ? path\n : isKey(path)\n ? [path]\n : 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 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))) {\n unset(object, paths.slice(0, -1));\n }\n return object;\n}\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 * <form onSubmit={handleSubmit(data => console.log(data))}>\n * {fields.map((item, index) => (\n * <input key={item.id} {...register(`test.${index}.firstName`)} />\n * ))}\n * <button type=\"button\" onClick={() => append({ firstName: \"bill\" })}>\n * append\n * </button>\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFieldArray(props) {\n const methods = useFormContext();\n const { control = methods.control, name, keyName = 'id', shouldUnregister, } = 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 &&\n control.register(name, props.rules);\n useSubscribe({\n next: ({ values, name: fieldArrayName, }) => {\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) &&\n control._subjects.state.next({\n ...control._formState,\n });\n if (_actioned.current &&\n (!getValidationModes(control._options.mode).isOnSubmit ||\n 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\n ? (!error && existingError.type) ||\n (error &&\n (existingError.type !== error.type ||\n existingError.message !== error.message))\n : error && error.type) {\n error\n ? set(control._formState.errors, name, error)\n : unset(control._formState.errors, name);\n control._subjects.state.next({\n errors: control._formState.errors,\n });\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) &&\n 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: { ...control._formValues },\n });\n control._names.focus &&\n 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) &&\n 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) => ({\n ...field,\n [keyName]: ids.current[index] || generateId(),\n })), [fields, keyName]),\n };\n}\n\nfunction 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}\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\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)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2) {\n return false;\n }\n }\n }\n return true;\n}\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nvar objectHasFunction = (data) => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n\nfunction markFieldsDirty(data, fields = {}) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n }\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]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n if (isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n }\n else {\n getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\n }\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));\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : 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(({ value }) => value);\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}\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};\n\nvar getRuleValue = (rule) => isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n\nvar hasValidation = (options) => options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n\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 { name };\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}\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\n if (mode.isOnAll) {\n return false;\n }\n else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n }\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n }\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n};\nfunction createFormControl(props = {}, flushRootRender) {\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 errors: {},\n };\n let _fields = {};\n let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : 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\n ? isEmptyObject((await _executeSchema()).errors)\n : 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 &&\n _subjects.state.next({\n isValidating: value,\n });\n const _updateFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = 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 &&\n 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 &&\n shouldUpdateFieldsAndState &&\n 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 }\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) ||\n (ref && ref.defaultChecked) ||\n shouldSkipSetValueAs\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\n : 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\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.dirtyFields &&\n 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 =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n 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 &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n if (props.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(props.delayError);\n }\n else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\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 { errors } = await _executeSchema();\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n }\n else {\n _formState.errors = errors;\n }\n return errors;\n };\n const executeBuiltInValidation = async (fields, shouldOnlyCheckValid, context = {\n valid: true,\n }) => {\n for (const name in fields) {\n const field = fields[name];\n if (field) {\n const { _f, ...fieldValue } = field;\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 &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name)\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n fieldValue &&\n (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 &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name);\n }\n _names.unMount = new Set();\n };\n const _getDirty = (name, data) => (name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues));\n const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : 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 = (name, value, options = {}) => {\n const field = get(_fields, name);\n let fieldValue = value;\n if (field) {\n const fieldReference = field._f;\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach((optionRef) => (optionRef.selected = fieldValue.includes(optionRef.value)));\n }\n else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach((checkboxRef) => (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!fieldValue.find((data) => data === checkboxRef.value)\n : fieldValue === checkboxRef.value))\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n }\n else {\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\n }\n }\n else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n }\n else {\n fieldReference.ref.value = fieldValue;\n if (!fieldReference.ref.type) {\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n }\n }\n }\n }\n (options.shouldDirty || options.shouldTouch) &&\n 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) ||\n !isPrimitive(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n const setValue = (name, value, options = {}) => {\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: { ..._formValues },\n });\n if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n }\n else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.values.next({\n name,\n values: { ..._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) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n 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 }\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 &&\n _subjects.values.next({\n name,\n type: event.type,\n values: { ..._formValues },\n });\n if (shouldSkipValidation) {\n _proxyFormState.isValid && _updateValid();\n return (shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\n }\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n _updateIsValidating(true);\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\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 error = (await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\n isFieldValueUpdated =\n isNaN(fieldValue) ||\n fieldValue === get(_formValues, name, fieldValue);\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n }\n else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(field._f.deps);\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n const trigger = async (name, options = {}) => {\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\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n }\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 ? { [fieldName]: field } : field);\n }))).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n }\n else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n isValidating: false,\n });\n options.shouldFocus &&\n !validationResult &&\n focusFieldBy(_fields, (key) => key && get(_formState.errors, key), 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)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : 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 &&\n 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, { _f: {} })._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)\n ? _subjects.values.subscribe({\n next: (payload) => name(_getWatch(undefined, defaultValue), payload),\n })\n : _getWatch(name, defaultValue, true);\n const unregister = (name, options = {}) => {\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.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n _subjects.values.next({\n values: { ..._formValues },\n });\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n !options.keepIsValid && _updateValid();\n };\n const register = (name, options = {}) => {\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 : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n if (!isUndefined(options.value)) {\n set(_formValues, name, options.value);\n }\n field\n ? disabledIsDefined &&\n set(_formValues, name, options.disabled\n ? undefined\n : get(_formValues, name, getFieldValue(field._f)))\n : updateValidAndValue(name, true, options.value);\n return {\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\n ...(_options.progressive\n ? {\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 : {}),\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)\n ? ref.querySelectorAll\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n if (radioOrCheckbox\n ? refs.find((option) => option === fieldRef)\n : fieldRef === field._f.ref) {\n return;\n }\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n updateValidAndValue(name, false, undefined, fieldRef);\n }\n else {\n field = get(_fields, name, {});\n if (field._f) {\n field._f.mount = false;\n }\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n const _focusError = () => _options.shouldFocusError &&\n 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 { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n }\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 }\n else {\n if (onInvalid) {\n await onInvalid({ ..._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 = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, get(_defaultValues, name));\n }\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\n ? _getDirty(name, get(_defaultValues, name))\n : _getDirty();\n }\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n _subjects.state.next({ ..._formState });\n }\n };\n const _reset = (formValues, keepStateOptions = {}) => {\n const updatedValues = formValues || _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const values = formValues && !isEmptyObject(formValues)\n ? cloneUpdatedValues\n : _defaultValues;\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues || shouldCaptureDirtyFields) {\n for (const fieldName of _names.mount) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(fieldName, get(values, fieldName));\n }\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)\n ? field._f.refs[0]\n : 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\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n _subjects.array.next({\n values: { ...values },\n });\n _subjects.values.next({\n values: { ...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\n ? _formState.submitCount\n : 0,\n isDirty: keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: keepStateOptions.keepDirtyValues\n ? _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitting: false,\n isSubmitSuccessful: false,\n });\n };\n const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues)\n ? formValues(_formValues)\n : formValues, keepStateOptions);\n const setFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : 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) &&\n _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 _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 = {\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 * <form onSubmit={handleSubmit(onSubmit)}>\n * <input defaultValue=\"test\" {...register(\"example\")} />\n * <input {...register(\"exampleRequired\", { required: true })} />\n * {errors.exampleRequired && <span>This field is required</span>}\n * <button>Submit</button>\n * </form>\n * );\n * }\n * ```\n */\nfunction useForm(props = {}) {\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 errors: {},\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props, () => updateFormState((formState) => ({ ...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({ ...control._formState });\n }\n },\n });\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 }\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({ ...control._formState });\n }\n control._removeUnmounted();\n });\n _formControl.current.formState = getProxyFormState(formState, control);\n return _formControl.current;\n}\n\nexport { Controller, Form, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + {\"131\":\"recommend\",\"1523\":\"sellercontent\",\"3167\":\"emailpopup2\",\"4199\":\"onairnow\",\"6339\":\"accountdeletion\",\"6464\":\"search\",\"6772\":\"emailpopup\",\"7867\":\"previewbar\",\"8652\":\"vitatree\"}[chunkId] + \".bundle.\" + {\"131\":\"f0aad347fd68ec076ab3\",\"1523\":\"6cbbb7f2ab9ac5261da4\",\"3167\":\"14844515abda74bfa836\",\"4199\":\"ee0b6c3296c26524153a\",\"6339\":\"9e203a2ff08d037e142f\",\"6464\":\"24e2f74c8d56ec617b61\",\"6772\":\"e648afe478bd6730e208\",\"7867\":\"ed3a901f10564ea37c8c\",\"8652\":\"a0e65b2736a8b61f4872\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + {\"7867\":\"previewbar\",\"8652\":\"vitatree\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.j = 2438;","__webpack_require__.p = \"/dist/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2438: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunktsc_react\"] = self[\"webpackChunktsc_react\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [3712], function() { return __webpack_require__(3589); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","loadStylesheet","installedCssChunks","relativePath","base","path","toLowerCase","indexOf","slice","length","str","decodeURI","_e","defaultRouter","hook","searchHook","parser","ssrPath","undefined","ssrSearch","RouterCtx","useRouter","useLocationFromRouter","router","location","navigate","to","navOpts","absolutePath","props","ref","href","_href","onClick","_onClick","asChild","children","replace","state","restProps","event","ctrlKey","metaKey","altKey","shiftKey","button","defaultPrevented","preventDefault","passwordSchema","z","string","min","message","refine","value","test","ChangePasswordSchema","object","newPassword","retypeNewPassword","data","province","FormChangePassword","info","showNewPassword","setShowNewPassword","useState","showRetypePassword","setShowRetypePassword","showError","setShowError","mutationPasswordInfo","lang","Language","substring","useMutation","mutationFn","payload","post","onSuccess","response","variables","context","onError","error","console","log","usePasswordInfo","mutationPasswordUpdate","cookie","queryClient","CartGuid","cartReq","accountCart","UserName","Buyer","BillingAddress","FirstName","LastName","CartMerge","IsCartMerged","toString","CartProductCount","OrderSummary","TotalQuantity","setQueryData","UserAccessToken","Edp","accountData","Error","usePasswordUpdate","isMutating","useIsMutating","handleSubmit","register","control","setError","watch","trigger","setValue","clearErrors","getFieldState","formState","errors","isDirty","isValid","dirtyFields","touchedFields","isSubmitting","resolver","zod","mode","criteriaMode","defaultValues","passw","useEffect","Info","mutate","window","scrollTo","top","behavior","onSubmit","NewPassword","NewPasswordConfirmed","deleteTargetUrl","className","type","maxLength","placeholder","tabIndex","autoComplete","onChange","e","htmlFor","prevState","ViewPasswordSvg","width","height","HidePasswordSvg","isTouched","CheckmarkSmallSvg","CloseSvg","disabled","isLoading","style","display","LoadingSvg","PasswordRequestSchema","email","max","FormForgotPassword","mutation","useForgotPassword","sentSuccess","setSentSuccess","sentMessage","setSentMessage","recaptchaToken","setRecaptchaToken","reCaptchaSiteKey","tscConfig","script","document","createElement","async","defer","src","body","appendChild","loadReCaptcha","xmlns","xmlnsXlink","viewBox","fill","fillRule","stroke","strokeLinecap","strokeLinejoin","strokeWidth","d","grecaptcha","ready","execute","action","then","token","BaseUrl","origin","Email","ReCaptchaToken","ResponseMessage","PasswordRequest","PasswordRequestProps","searchString","useSearch","URLSearchParams","get","getElementById","root","defaultOptions","queries","cacheTime","staleTime","render","QueryClientProvider","client","module","exports","jQuery","isCheckBoxInput","element","isDateObject","Date","isNullOrUndefined","isObjectType","isObject","Array","isArray","getEventValue","target","checked","isNameInFieldArray","names","name","has","search","getNodeParentName","isPlainObject","tempObject","prototypeCopy","constructor","prototype","hasOwnProperty","isWeb","HTMLElement","cloneObject","copy","Set","Blob","FileList","key","compact","filter","Boolean","isUndefined","val","obj","defaultValue","result","split","reduce","EVENTS","BLUR","FOCUS_OUT","CHANGE","VALIDATION_MODE","onBlur","onTouched","all","INPUT_VALIDATION_RULES","getProxyFormState","localProxyFormState","isRoot","_defaultValues","Object","defineProperty","_key","_proxyFormState","isEmptyObject","keys","shouldRenderFormState","formStateData","updateFormState","find","convertToArrayPayload","useSubscribe","_props","current","subscription","subject","subscribe","next","unsubscribe","isString","generateWatchOutput","_names","formValues","isGlobal","add","map","fieldName","watchAll","isKey","stringToPath","input","set","index","tempPath","lastIndex","newValue","objValue","isNaN","appendErrors","validateAllFieldCriteria","types","focusFieldBy","fields","callback","fieldsNames","field","_f","currentField","focus","refs","getValidationModes","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isWatched","isBlurEvent","some","watchName","startsWith","updateFieldArrayRootError","fieldArrayErrors","isBoolean","isFileInput","isFunction","isHTMLElement","owner","ownerDocument","defaultView","isMessage","isRadioInput","isRegex","RegExp","defaultResult","validResult","getCheckboxValue","options","values","option","attributes","defaultReturn","getRadioValue","previous","getValidateError","every","getValueAndMessage","validationData","validateField","shouldUseNativeValidation","isFieldArray","required","minLength","pattern","validate","valueAsNumber","mount","inputValue","inputRef","setCustomValidity","reportValidity","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","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","setValueAs","NaN","getFieldValue","files","selectedOptions","getResolverOptions","_fields","getRuleValue","rule","source","hasValidation","schemaErrorLookup","join","foundError","pop","skipValidation","isSubmitted","reValidateMode","unsetEmptyArray","shouldFocusError","createFormControl","flushRootRender","delayErrorCallback","_options","_formState","submitCount","isValidating","isSubmitSuccessful","_formValues","shouldUnregister","_state","unMount","array","timer","_subjects","shouldCaptureDirtyFields","resetOptions","keepDirtyValues","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","_updateValid","shouldUpdateValid","_executeSchema","executeBuiltInValidation","_updateIsValidating","updateValidAndValue","shouldSkipSetValueAs","defaultChecked","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldRender","shouldUpdateField","isPreviousDirty","output","_getDirty","isCurrentFieldPristine","isPreviousFieldTouched","shouldRenderByError","fieldState","previousFieldError","delayError","updateErrors","wait","clearTimeout","setTimeout","updatedFormState","shouldOnlyCheckValid","valid","isFieldArrayRoot","fieldError","getValues","_getWatch","fieldReference","forEach","optionRef","selected","checkboxRef","radioRef","shouldTouch","shouldValidate","setValues","fieldKey","cloneValue","isFieldValueUpdated","shouldSkipValidation","deps","watched","previousErrorLookupResult","errorLookupResult","fieldNames","executeSchemaAndUpdateState","Promise","shouldFocus","invalid","unregister","delete","keepValue","keepError","keepDirty","keepTouched","keepDefaultValue","keepIsValid","disabledIsDefined","progressive","fieldRef","querySelectorAll","radioOrCheckbox","_focusError","onValid","onInvalid","persist","fieldValues","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","keepDefaultValues","keepValues","form","closest","reset","keepSubmitCount","keepIsSubmitted","keepErrors","_removeUnmounted","_updateFieldArray","method","args","shouldSetValues","shouldUpdateFieldsAndState","argA","argB","_getFieldArray","_resetDefaultValues","_updateFormState","resetField","inputName","setFocus","shouldSelect","select","useForm","_formControl","_values","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","splice","r","n","getter","__esModule","a","getPrototypeOf","__proto__","t","this","ns","create","def","getOwnPropertyNames","definition","enumerable","f","chunkId","promises","u","miniCssF","g","globalThis","Function","prop","l","url","done","needAttach","scripts","getElementsByTagName","s","getAttribute","charset","timeout","nc","setAttribute","onScriptComplete","prev","onerror","onload","doneFns","parentNode","removeChild","head","Symbol","toStringTag","p","resolve","reject","fullhref","existingLinkTags","dataHref","tag","rel","existingStyleTags","findStylesheet","linkTag","errorType","realHref","err","code","request","createStylesheet","miniCss","installedChunks","installedChunkData","promise","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","id","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}