"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[52768],{52768:function(e,t,r){r.d(t,{cI:function(){return useForm}});var i=r(26407),isHTMLElement=e=>e instanceof HTMLElement;let n={BLUR:"blur",CHANGE:"change",INPUT:"input"},s={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},a="select",u="undefined",l={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"};function attachEventListeners({ref:e},t,r){isHTMLElement(e)&&r&&(e.addEventListener(t?n.CHANGE:n.INPUT,r),e.addEventListener(n.BLUR,r))}var isNullOrUndefined=e=>null==e;let isObjectType=e=>"object"==typeof e;var isObject=e=>!isNullOrUndefined(e)&&!Array.isArray(e)&&isObjectType(e)&&!(e instanceof Date),isKey=e=>/^\w*$/.test(e),compact=e=>e.filter(Boolean),stringToPath=e=>compact(e.replace(/["|']/g,"").replace(/\[/g,".").replace(/\]/g,"").split("."));function set(e,t,r){let i=-1,n=isKey(t)?[t]:stringToPath(t),s=n.length,a=s-1;for(;++i<s;){let t=n[i],s=r;if(i!==a){let r=e[t];s=isObject(r)||Array.isArray(r)?r:isNaN(+n[i+1])?{}:[]}e[t]=s,e=e[t]}return e}var transformToNestObject=(e,t={})=>{for(let r in e)isKey(r)?t[r]=e[r]:set(t,r,e[r]);return t},isUndefined=e=>void 0===e,get=(e={},t,r)=>{let i=compact(t.split(/[,[\].]+?/)).reduce((e,t)=>isNullOrUndefined(e)?e:e[t],e);return isUndefined(i)||i===e?isUndefined(e[t])?r:e[t]:i},focusOnErrorField=(e,t)=>{for(let r in e)if(get(t,r)){let t=e[r];if(t){if(t.ref.focus&&isUndefined(t.ref.focus()))break;if(t.options){t.options[0].ref.focus();break}}}},removeAllEventListeners=(e,t)=>{isHTMLElement(e)&&e.removeEventListener&&(e.removeEventListener(n.INPUT,t),e.removeEventListener(n.CHANGE,t),e.removeEventListener(n.BLUR,t))};let c={isValid:!1,value:null};var getRadioValue=e=>Array.isArray(e)?e.reduce((e,t)=>t&&t.ref.checked?{isValid:!0,value:t.ref.value}:e,c):c,getMultipleSelectValue=e=>[...e].filter(({selected:e})=>e).map(({value:e})=>e),isRadioInput=e=>"radio"===e.type,isFileInput=e=>"file"===e.type,isCheckBoxInput=e=>"checkbox"===e.type,isMultipleSelect=e=>e.type===`${a}-multiple`;let o={value:!1,isValid:!1},d={value:!0,isValid:!0};var getCheckboxValue=e=>{if(Array.isArray(e)){if(e.length>1){let t=e.filter(e=>e&&e.ref.checked).map(({ref:{value:e}})=>e);return{value:t,isValid:!!t.length}}let{checked:t,value:r,attributes:i}=e[0].ref;return t?i&&!isUndefined(i.value)?isUndefined(r)||""===r?d:{value:r,isValid:!0}:d:o}return o};function getFieldValue(e,t,r,i,n){let s=e.current[t];if(s){let{ref:{value:e,disabled:t},ref:r,valueAsNumber:a,valueAsDate:u,setValueAs:l}=s;return t&&i?void 0:isFileInput(r)?r.files:isRadioInput(r)?getRadioValue(s.options).value:isMultipleSelect(r)?getMultipleSelectValue(r.options):isCheckBoxInput(r)?getCheckboxValue(s.options).value:n?e:a?""===e?NaN:+e:u?r.valueAsDate:l?l(e):e}if(r)return get(r.current,t)}function isDetached(e){return!e||e instanceof HTMLElement&&e.nodeType!==Node.DOCUMENT_NODE&&isDetached(e.parentNode)}var isEmptyObject=e=>isObject(e)&&!Object.keys(e).length,isBoolean=e=>"boolean"==typeof e;function baseGet(e,t){let r=t.slice(0,-1).length,i=0;for(;i<r;)e=isUndefined(e)?i++:e[t[i++]];return e}function unset(e,t){let r;let i=isKey(t)?[t]:stringToPath(t),n=1==i.length?e:baseGet(e,i),s=i[i.length-1];n&&delete n[s];for(let t=0;t<i.slice(0,-1).length;t++){let n,s=-1,a=i.slice(0,-(t+1)),u=a.length-1;for(t>0&&(r=e);++s<a.length;){let t=a[s];n=n?n[t]:e[t],u===s&&(isObject(n)&&isEmptyObject(n)||Array.isArray(n)&&!n.filter(e=>isObject(e)&&!isEmptyObject(e)||isBoolean(e)).length)&&(r?delete r[t]:delete e[t]),r=n}}return e}let isSameRef=(e,t)=>e&&e.ref===t;function findRemovedFieldAndRemoveListener(e,t,r,i,n,s){let{ref:a,ref:{name:u}}=r,l=e.current[u];if(!n){let t=getFieldValue(e,u,i);isUndefined(t)||set(i.current,u,t)}if(!a.type||!l){delete e.current[u];return}isRadioInput(a)||isCheckBoxInput(a)?Array.isArray(l.options)&&l.options.length?(compact(l.options).forEach((e={},r)=>{(isDetached(e.ref)&&isSameRef(e,e.ref)||s)&&(removeAllEventListeners(e.ref,t),unset(l.options,`[${r}]`))}),l.options&&!compact(l.options).length&&delete e.current[u]):delete e.current[u]:(isDetached(a)&&isSameRef(l,a)||s)&&(removeAllEventListeners(a,t),delete e.current[u])}var isPrimitive=e=>isNullOrUndefined(e)||!isObjectType(e);function deepMerge(e,t){if(isPrimitive(e)||isPrimitive(t))return t;for(let r in t){let i=e[r],n=t[r];try{e[r]=isObject(i)&&isObject(n)||Array.isArray(i)&&Array.isArray(n)?deepMerge(i,n):n}catch(e){}}return e}function deepEqual(e,t,r){if(isPrimitive(e)||isPrimitive(t)||e instanceof Date||t instanceof Date)return e===t;if(!(0,i.isValidElement)(e)){let i=Object.keys(e),n=Object.keys(t);if(i.length!==n.length)return!1;for(let n of i){let i=e[n];if(!(r&&"ref"===n)){let e=t[n];if((isObject(i)||Array.isArray(i))&&(isObject(e)||Array.isArray(e))?!deepEqual(i,e,r):i!==e)return!1}}}return!0}function setDirtyFields(e,t,r,i,n){let s=-1;for(;++s<e.length;){for(let i in e[s])Array.isArray(e[s][i])?(r[s]||(r[s]={}),r[s][i]=[],setDirtyFields(e[s][i],get(t[s]||{},i,[]),r[s][i],r[s],i)):deepEqual(get(t[s]||{},i),e[s][i])?set(r[s]||{},i):r[s]=Object.assign(Object.assign({},r[s]),{[i]:!0});i&&!r.length&&delete i[n]}return r}var setFieldArrayDirtyFields=(e,t,r)=>deepMerge(setDirtyFields(e,t,r.slice(0,e.length)),setDirtyFields(t,e,r.slice(0,e.length))),isString=e=>"string"==typeof e,getFieldsValues=(e,t,r,i,n)=>{let s={};for(let t in e.current)(isUndefined(n)||(isString(n)?t.startsWith(n):Array.isArray(n)&&n.find(e=>t.startsWith(e))))&&(s[t]=getFieldValue(e,t,void 0,i));return r?transformToNestObject(s):deepMerge(t,transformToNestObject(s))},isErrorStateChanged=({errors:e,name:t,error:r,validFields:i,fieldsWithValidation:n})=>{let s=isUndefined(r),a=get(e,t);return s&&!!a||!s&&!deepEqual(a,r,!0)||s&&get(n,t)&&!get(i,t)},isRegex=e=>e instanceof RegExp,getValueAndMessage=e=>isObject(e)&&!isRegex(e)?e:{value:e,message:""},isFunction=e=>"function"==typeof e,isMessage=e=>isString(e)||(0,i.isValidElement)(e);function getValidateError(e,t,r="validate"){if(isMessage(e)||isBoolean(e)&&!e)return{type:r,message:isMessage(e)?e:"",ref:t}}var appendErrors=(e,t,r,i,n)=>t?Object.assign(Object.assign({},r[e]),{types:Object.assign(Object.assign({},r[e]&&r[e].types?r[e].types:{}),{[i]:n||!0})}):{},validateField=async(e,t,{ref:r,ref:{value:i},options:n,required:s,maxLength:a,minLength:u,min:c,max:o,pattern:d,validate:f},g)=>{let b=r.name,y={},m=isRadioInput(r),p=isCheckBoxInput(r),O=m||p,h=""===i,j=appendErrors.bind(null,b,t,y),getMinMaxMessage=(e,t,i,n=l.maxLength,s=l.minLength)=>{let a=e?t:i;y[b]=Object.assign({type:e?n:s,message:a,ref:r},e?j(n,a):j(s,a))};if(s&&(!m&&!p&&(h||isNullOrUndefined(i))||isBoolean(i)&&!i||p&&!getCheckboxValue(n).isValid||m&&!getRadioValue(n).isValid)){let{value:i,message:n}=isMessage(s)?{value:!!s,message:s}:getValueAndMessage(s);if(i&&(y[b]=Object.assign({type:l.required,message:n,ref:O?((e.current[b].options||[])[0]||{}).ref:r},j(l.required,n)),!t))return y}if((!isNullOrUndefined(c)||!isNullOrUndefined(o))&&""!==i){let e,n;let s=getValueAndMessage(o),a=getValueAndMessage(c);if(isNaN(i)){let t=r.valueAsDate||new Date(i);isString(s.value)&&(e=t>new Date(s.value)),isString(a.value)&&(n=t<new Date(a.value))}else{let t=r.valueAsNumber||parseFloat(i);isNullOrUndefined(s.value)||(e=t>s.value),isNullOrUndefined(a.value)||(n=t<a.value)}if((e||n)&&(getMinMaxMessage(!!e,s.message,a.message,l.max,l.min),!t))return y}if(isString(i)&&!h&&(a||u)){let e=getValueAndMessage(a),r=getValueAndMessage(u),n=!isNullOrUndefined(e.value)&&i.length>e.value,s=!isNullOrUndefined(r.value)&&i.length<r.value;if((n||s)&&(getMinMaxMessage(n,e.message,r.message),!t))return y}if(isString(i)&&d&&!h){let{value:e,message:n}=getValueAndMessage(d);if(isRegex(e)&&!e.test(i)&&(y[b]=Object.assign({type:l.pattern,message:n,ref:r},j(l.pattern,n)),!t))return y}if(f){let i=getFieldValue(e,b,g,!1,!0),s=O&&n?n[0].ref:r;if(isFunction(f)){let e=await f(i),t=getValidateError(e,s);t&&(y[b]=Object.assign(Object.assign({},t),j(l.validate,t.message)))}else if(isObject(f)){let e={};for(let[r,n]of Object.entries(f)){if(!isEmptyObject(e)&&!t)break;let a=await n(i),u=getValidateError(a,s,r);u&&(e=Object.assign(Object.assign({},u),j(r,u.message)),t&&(y[b]=e))}isEmptyObject(e)||(y[b]=Object.assign({ref:s},e))}}return y};let getPath=(e,t,r=[])=>{for(let i in t){let n=e+(isObject(t)?`.${i}`:`[${i}]`);isPrimitive(t[i])?r.push(n):getPath(n,t[i],r)}return r};var assignWatchFields=(e,t,r,i,n)=>{let s;return r.add(t),!isEmptyObject(e)&&(isObject(s=get(e,t))||Array.isArray(s))&&getPath(t,s).forEach(e=>r.add(e)),isUndefined(s)?n?i:get(i,t):s},skipValidation=({isOnBlur:e,isOnChange:t,isOnTouch:r,isTouched:i,isReValidateOnBlur:n,isReValidateOnChange:s,isBlurEvent:a,isSubmitted:u,isOnAll:l})=>!l&&(!u&&r?!(i||a):(u?n:e)?!a:(u?!s:!t)||a),getFieldArrayParentName=e=>e.substring(0,e.indexOf("["));let isMatchFieldArrayName=(e,t)=>RegExp(`^${t}([|.)\\d+`.replace(/\[/g,"\\[").replace(/\]/g,"\\]")).test(e);var isNameInFieldArray=(e,t)=>[...e].some(e=>isMatchFieldArrayName(t,e)),isSelectInput=e=>e.type===`${a}-one`;function onDomRemove(e,t){let r=new MutationObserver(()=>{for(let r of Object.values(e.current))if(r&&r.options)for(let e of r.options)e&&e.ref&&isDetached(e.ref)&&t(r);else r&&isDetached(r.ref)&&t(r)});return r.observe(window.document,{childList:!0,subtree:!0}),r}var f=typeof window!==u&&typeof document!==u;function cloneObject(e){var t;let r;if(isPrimitive(e)||f&&(e instanceof File||isHTMLElement(e))||!["Set","Map","Object","Date","Array"].includes(null===(t=e.constructor)||void 0===t?void 0:t.name))return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof Set){for(let t of(r=new Set,e))r.add(t);return r}if(e instanceof Map){for(let t of(r=new Map,e.keys()))r.set(t,cloneObject(e.get(t)));return r}for(let t in r=Array.isArray(e)?[]:{},e)r[t]=cloneObject(e[t]);return r}var modeChecker=e=>({isOnSubmit:!e||e===s.onSubmit,isOnBlur:e===s.onBlur,isOnChange:e===s.onChange,isOnAll:e===s.all,isOnTouch:e===s.onTouched}),isRadioOrCheckboxFunction=e=>isRadioInput(e)||isCheckBoxInput(e);let g=typeof window===u,b=f?"Proxy"in window:typeof Proxy!==u;function useForm({mode:e=s.onSubmit,reValidateMode:t=s.onChange,resolver:r,context:a,defaultValues:u={},shouldFocusError:l=!0,shouldUnregister:c=!0,criteriaMode:o}={}){let d=(0,i.useRef)({}),y=(0,i.useRef)({}),m=(0,i.useRef)({}),p=(0,i.useRef)(new Set),O=(0,i.useRef)({}),h=(0,i.useRef)({}),j=(0,i.useRef)({}),v=(0,i.useRef)({}),E=(0,i.useRef)(u),V=(0,i.useRef)(!1),F=(0,i.useRef)(!1),A=(0,i.useRef)(),k=(0,i.useRef)({}),R=(0,i.useRef)({}),C=(0,i.useRef)(a),S=(0,i.useRef)(r),D=(0,i.useRef)(new Set),M=(0,i.useRef)(modeChecker(e)),{isOnSubmit:N,isOnTouch:w}=M.current,U=o===s.all,[x,I]=(0,i.useState)({isDirty:!1,isValidating:!1,dirtyFields:{},isSubmitted:!1,submitCount:0,touched:{},isSubmitting:!1,isSubmitSuccessful:!1,isValid:!N,errors:{}}),L=(0,i.useRef)({isDirty:!b,dirtyFields:!b,touched:!b||w,isValidating:!b,isSubmitting:!b,isValid:!b}),T=(0,i.useRef)(x),P=(0,i.useRef)(),{isOnBlur:B,isOnChange:W}=(0,i.useRef)(modeChecker(t)).current;C.current=a,S.current=r,T.current=x,k.current=c?{}:isEmptyObject(k.current)?cloneObject(u):k.current;let q=(0,i.useCallback)((e={})=>{V.current||(T.current=Object.assign(Object.assign({},T.current),e),I(T.current))},[]),updateIsValidating=()=>L.current.isValidating&&q({isValidating:!0}),H=(0,i.useCallback)((e,t,r=!1,i={},n)=>{let s=r||isErrorStateChanged({errors:T.current.errors,error:t,name:e,validFields:v.current,fieldsWithValidation:j.current}),a=get(T.current.errors,e);t?(unset(v.current,e),s=s||!a||!deepEqual(a,t,!0),set(T.current.errors,e,t)):((get(j.current,e)||S.current)&&(set(v.current,e,!0),s=s||a),unset(T.current.errors,e)),(s&&!isNullOrUndefined(r)||!isEmptyObject(i)||L.current.isValidating)&&q(Object.assign(Object.assign(Object.assign({},i),S.current?{isValid:!!n}:{}),{isValidating:!1}))},[]),$=(0,i.useCallback)((e,t)=>{let{ref:r,options:i}=d.current[e],n=f&&isHTMLElement(r)&&isNullOrUndefined(t)?"":t;isRadioInput(r)?(i||[]).forEach(({ref:e})=>e.checked=e.value===n):isFileInput(r)&&!isString(n)?r.files=n:isMultipleSelect(r)?[...r.options].forEach(e=>e.selected=n.includes(e.value)):isCheckBoxInput(r)&&i?i.length>1?i.forEach(({ref:e})=>e.checked=Array.isArray(n)?!!n.find(t=>t===e.value):n===e.value):i[0].ref.checked=!!n:r.value=n},[]),K=(0,i.useCallback)((e,t)=>{if(L.current.isDirty){let r=getValues();return e&&t&&set(r,e,t),!deepEqual(r,E.current)}return!1},[]),G=(0,i.useCallback)((e,t=!0)=>{if(L.current.isDirty||L.current.dirtyFields){let r=!deepEqual(get(E.current,e),getFieldValue(d,e,k)),i=get(T.current.dirtyFields,e),n=T.current.isDirty;r?set(T.current.dirtyFields,e,!0):unset(T.current.dirtyFields,e);let s={isDirty:K(),dirtyFields:T.current.dirtyFields},a=L.current.isDirty&&n!==s.isDirty||L.current.dirtyFields&&i!==get(T.current.dirtyFields,e);return a&&t&&q(s),a?s:{}}return{}},[]),_=(0,i.useCallback)(async(e,t)=>{let r=(await validateField(d,U,d.current[e],k))[e];return H(e,r,t),isUndefined(r)},[H,U]),z=(0,i.useCallback)(async e=>{let{errors:t}=await S.current(getValues(),C.current,U),r=T.current.isValid;if(Array.isArray(e)){let r=e.map(e=>{let r=get(t,e);return r?set(T.current.errors,e,r):unset(T.current.errors,e),!r}).every(Boolean);return q({isValid:isEmptyObject(t),isValidating:!1}),r}{let i=get(t,e);return H(e,i,r!==isEmptyObject(t),{},isEmptyObject(t)),!i}},[H,U]),J=(0,i.useCallback)(async e=>{let t=e||Object.keys(d.current);if(updateIsValidating(),S.current)return z(t);if(Array.isArray(t)){e||(T.current.errors={});let r=await Promise.all(t.map(async e=>await _(e,null)));return q({isValidating:!1}),r.every(Boolean)}return await _(t)},[z,_]),Q=(0,i.useCallback)((e,t,{shouldDirty:r,shouldValidate:i})=>{let n={};for(let s of(set(n,e,t),getPath(e,t)))d.current[s]&&($(s,get(n,s)),r&&G(s),i&&J(s))},[J,$,G]),X=(0,i.useCallback)((e,t,r)=>{if(c||isPrimitive(t)||set(k.current,e,Array.isArray(t)?[...t]:Object.assign({},t)),d.current[e])$(e,t),r.shouldDirty&&G(e),r.shouldValidate&&J(e);else if(!isPrimitive(t)&&(Q(e,t,r),D.current.has(e))){let i=getFieldArrayParentName(e)||e;set(y.current,e,t),R.current[i]({[i]:get(y.current,i)}),(L.current.isDirty||L.current.dirtyFields)&&r.shouldDirty&&(set(T.current.dirtyFields,e,setFieldArrayDirtyFields(t,get(E.current,e,[]),get(T.current.dirtyFields,e,[]))),q({isDirty:!deepEqual(Object.assign(Object.assign({},getValues()),{[e]:t}),E.current)}))}c||set(k.current,e,t)},[G,$,Q]),isFieldWatched=e=>F.current||p.current.has(e)||p.current.has((e.match(/\w+/)||[])[0]),renderWatchedInputs=e=>{let t=!0;if(!isEmptyObject(O.current))for(let r in O.current)(!e||!O.current[r].size||O.current[r].has(e)||O.current[r].has(getFieldArrayParentName(e)))&&(h.current[r](),t=!1);return t};function setValue(e,t,r){X(e,t,r||{}),isFieldWatched(e)&&q(),renderWatchedInputs(e)}function setFieldArrayDefaultValues(e){if(!c){let t=cloneObject(e);for(let e of D.current)isKey(e)&&!t[e]&&(t=Object.assign(Object.assign({},t),{[e]:[]}));return t}return e}function getValues(e){if(isString(e))return getFieldValue(d,e,k);if(Array.isArray(e)){let t={};for(let r of e)set(t,r,getFieldValue(d,r,k));return t}return setFieldArrayDefaultValues(getFieldsValues(d,cloneObject(k.current),c))}A.current=A.current?A.current:async({type:e,target:t})=>{let r,i,s=t.name,a=d.current[s];if(a){let u=e===n.BLUR,l=skipValidation(Object.assign({isBlurEvent:u,isReValidateOnChange:W,isReValidateOnBlur:B,isTouched:!!get(T.current.touched,s),isSubmitted:T.current.isSubmitted},M.current)),o=G(s,!1),f=!isEmptyObject(o)||!u&&isFieldWatched(s);if(u&&!get(T.current.touched,s)&&L.current.touched&&(set(T.current.touched,s,!0),o=Object.assign(Object.assign({},o),{touched:T.current.touched})),!c&&isCheckBoxInput(t)&&set(k.current,s,getFieldValue(d,s)),l)return u||renderWatchedInputs(s),(!isEmptyObject(o)||f&&isEmptyObject(o))&&q(o);if(updateIsValidating(),S.current){let{errors:e}=await S.current(getValues(),C.current,U),n=T.current.isValid;if(r=get(e,s),isCheckBoxInput(t)&&!r&&S.current){let t=getFieldArrayParentName(s),i=get(e,t,{});i.type&&i.message&&(r=i),t&&(i||get(T.current.errors,t))&&(s=t)}n!==(i=isEmptyObject(e))&&(f=!0)}else r=(await validateField(d,U,a,k))[s];u||renderWatchedInputs(s),H(s,r,f,o,i)}};let Y=(0,i.useCallback)(async(e={})=>{let t=isEmptyObject(d.current)?E.current:{},{errors:r}=await S.current(Object.assign(Object.assign(Object.assign({},t),getValues()),e),C.current,U)||{},i=isEmptyObject(r);T.current.isValid!==i&&q({isValid:i})},[U]),Z=(0,i.useCallback)((e,t)=>{findRemovedFieldAndRemoveListener(d,A.current,e,k,c,t),c&&(unset(v.current,e.ref.name),unset(j.current,e.ref.name))},[c]),ee=(0,i.useCallback)(e=>{if(F.current)q();else{for(let t of p.current)if(t.startsWith(e)){q();break}renderWatchedInputs(e)}},[]),et=(0,i.useCallback)((e,t)=>{e&&(Z(e,t),c&&!compact(e.options||[]).length&&(unset(T.current.errors,e.ref.name),set(T.current.dirtyFields,e.ref.name,!0),q({isDirty:K()}),L.current.isValid&&S.current&&Y(),ee(e.ref.name)))},[Y,Z]);function clearErrors(e){e&&(Array.isArray(e)?e:[e]).forEach(e=>d.current[e]&&isKey(e)?delete T.current.errors[e]:unset(T.current.errors,e)),q({errors:e?T.current.errors:{}})}function setError(e,t){let r=(d.current[e]||{}).ref;set(T.current.errors,e,Object.assign(Object.assign({},t),{ref:r})),q({isValid:!1}),t.shouldFocus&&r&&r.focus&&r.focus()}let er=(0,i.useCallback)((e,t,r)=>{let i=r?O.current[r]:p.current,n=getFieldsValues(d,cloneObject(k.current),c,!1,e);if(isString(e)){let r=getFieldArrayParentName(e)||e;return D.current.has(r)&&(n=Object.assign(Object.assign({},m.current),n)),assignWatchFields(n,e,i,isUndefined(get(E.current,e))?t:get(E.current,e),!0)}let s=isUndefined(t)?E.current:t;return Array.isArray(e)?e.reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:assignWatchFields(n,t,i,s)}),{}):(F.current=isUndefined(r),transformToNestObject(!isEmptyObject(n)&&n||s))},[]);function watch(e,t){return er(e,t)}function unregister(e){for(let t of Array.isArray(e)?e:[e])et(d.current[t],!0)}function registerFieldRef(e,t={}){let r;let{name:i,type:n,value:s}=e,a=Object.assign({ref:e},t),u=d.current,l=isRadioOrCheckboxFunction(e),o=isNameInFieldArray(D.current,i),compareRef=t=>f&&(!isHTMLElement(e)||t===e),g=u[i],b=!0;if(g&&(l?Array.isArray(g.options)&&compact(g.options).find(e=>s===e.ref.value&&compareRef(e.ref)):compareRef(g.ref))){u[i]=Object.assign(Object.assign({},g),t);return}g=n?l?Object.assign({options:[...compact(g&&g.options||[]),{ref:e}],ref:{type:n,name:i}},t):Object.assign({},a):a,u[i]=g;let y=isUndefined(get(k.current,i));isEmptyObject(E.current)&&y||(b=isUndefined(r=get(y?E.current:k.current,i)))||o||$(i,r),isEmptyObject(t)||(set(j.current,i,!0),!N&&L.current.isValid&&validateField(d,U,g,k).then(e=>{let t=T.current.isValid;isEmptyObject(e)?set(v.current,i,!0):unset(v.current,i),t!==isEmptyObject(e)&&q()})),c&&!(o&&b)&&(o||unset(T.current.dirtyFields,i)),n&&attachEventListeners(l&&g.options?g.options[g.options.length-1]:g,l||isSelectInput(e),A.current)}function register(e,t){if(!g){if(isString(e))registerFieldRef({name:e},t);else{if(!isObject(e)||!("name"in e))return t=>t&&registerFieldRef(t,e);registerFieldRef(e,t)}}}let ei=(0,i.useCallback)((e,t)=>async r=>{r&&r.preventDefault&&(r.preventDefault(),r.persist());let i={},n=setFieldArrayDefaultValues(getFieldsValues(d,cloneObject(k.current),c,!0));L.current.isSubmitting&&q({isSubmitting:!0});try{if(S.current){let{errors:e,values:t}=await S.current(n,C.current,U);T.current.errors=i=e,n=t}else for(let e of Object.values(d.current))if(e){let{name:t}=e.ref,r=await validateField(d,U,e,k);r[t]?(set(i,t,r[t]),unset(v.current,t)):get(j.current,t)&&(unset(T.current.errors,t),set(v.current,t,!0))}isEmptyObject(i)&&Object.keys(T.current.errors).every(e=>e in d.current)?(q({errors:{},isSubmitting:!0}),await e(n,r)):(T.current.errors=Object.assign(Object.assign({},T.current.errors),i),t&&await t(T.current.errors,r),l&&focusOnErrorField(d.current,T.current.errors))}finally{T.current.isSubmitting=!1,q({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:isEmptyObject(T.current.errors),submitCount:T.current.submitCount+1})}},[l,U]),resetRefs=({errors:e,isDirty:t,isSubmitted:r,touched:i,isValid:n,submitCount:s,dirtyFields:a})=>{n||(v.current={},j.current={}),y.current={},p.current=new Set,F.current=!1,q({submitCount:s?T.current.submitCount:0,isDirty:!!t&&T.current.isDirty,isSubmitted:!!r&&T.current.isSubmitted,isValid:!!n&&T.current.isValid,dirtyFields:a?T.current.dirtyFields:{},touched:i?T.current.touched:{},errors:e?T.current.errors:{},isSubmitting:!1,isSubmitSuccessful:!1})};(0,i.useEffect)(()=>{r&&L.current.isValid&&Y(),P.current=P.current||!f?P.current:onDomRemove(d,et)},[et,E.current]),(0,i.useEffect)(()=>()=>{P.current&&P.current.disconnect(),V.current=!0,Object.values(d.current).forEach(e=>et(e,!0))},[]),!r&&L.current.isValid&&(x.isValid=deepEqual(v.current,j.current)&&isEmptyObject(T.current.errors));let en={trigger:J,setValue:(0,i.useCallback)(setValue,[X,J]),getValues:(0,i.useCallback)(getValues,[]),register:(0,i.useCallback)(register,[E.current]),unregister:(0,i.useCallback)(unregister,[]),formState:b?new Proxy(x,{get:(e,t)=>{if(t in e)return L.current[t]=!0,e[t]}}):x},es=(0,i.useMemo)(()=>Object.assign({isFormDirty:K,updateWatchedValue:ee,shouldUnregister:c,updateFormState:q,removeFieldEventListener:Z,watchInternal:er,mode:M.current,reValidateMode:{isReValidateOnBlur:B,isReValidateOnChange:W},validateResolver:r?Y:void 0,fieldsRef:d,resetFieldArrayFunctionRef:R,useWatchFieldsRef:O,useWatchRenderFunctionsRef:h,fieldArrayDefaultValuesRef:y,validFieldsRef:v,fieldsWithValidationRef:j,fieldArrayNamesRef:D,readFormStateRef:L,formStateRef:T,defaultValuesRef:E,shallowFieldsStateRef:k,fieldArrayValuesRef:m},en),[E.current,ee,c,Z,er]);return Object.assign({watch,control:es,handleSubmit:ei,reset:(0,i.useCallback)((e,t={})=>{if(f){for(let e of Object.values(d.current))if(e){let{ref:t,options:r}=e,i=isRadioOrCheckboxFunction(t)&&Array.isArray(r)?r[0].ref:t;if(isHTMLElement(i))try{i.closest("form").reset();break}catch(e){}}}d.current={},E.current=Object.assign({},e||E.current),e&&renderWatchedInputs(""),Object.values(R.current).forEach(e=>isFunction(e)&&e()),k.current=c?{}:cloneObject(e||E.current),resetRefs(t)},[]),clearErrors:(0,i.useCallback)(clearErrors,[]),setError:(0,i.useCallback)(setError,[]),errors:x.errors},en)}let y=(0,i.createContext)(null);y.displayName="RHFContext"}}]);
//# sourceMappingURL=52768-0d909cf253c71af9.js.map