UNPKG

react-hook-form

Version:

Performant, flexible and extensible forms library for React Hooks

3 lines (2 loc) • 48.7 kB
"use strict";var e=require("react"),r=e=>"checkbox"===e.type,t=e=>"file"===e.type,s=e=>e instanceof Date,a=e=>null==e;const n=e=>"object"==typeof e;var i=e=>!a(e)&&!Array.isArray(e)&&n(e)&&!s(e),o=e=>i(e)&&e.target?r(e.target)?e.target.checked:t(e.target)?e.target.files:e.target.value:e;const l=/[.[\]'"]/;var u=e=>e.split(l).filter(Boolean),c=(e,r)=>r.split(".").some((r,t,s)=>!isNaN(Number(r))&&e.has(s.slice(0,t).join("."))),d="undefined"!=typeof window&&void 0!==window.HTMLElement&&"undefined"!=typeof document;function f(e){if(null===e||"object"!=typeof e)return e;if(e instanceof Date)return new Date(e);const r="undefined"!=typeof Blob&&e instanceof Blob,t="undefined"!=typeof FileList&&e instanceof FileList;if(d&&(r||t))return e;const s=Array.isArray(e),a=Object.getPrototypeOf(e);if(!s&&a&&a.constructor!==Object)return e;const n=s?new Array(e.length):Object.create(a);for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=f(e[r]));return n}const m="blur",y="submit",p="trigger",g="onChange",h="onSubmit",_="all",v="maxLength",b="minLength",V="pattern",A="required",F="validate",x=[A,"min","max",b,v,V,F],S="form",k="root",w=["__proto__","constructor","prototype"],O=/^\w*$/;var D=e=>O.test(e),E=e=>void 0===e,C=(e,r,t)=>{if(!r||!i(e))return t;const s=D(r)?[r]:u(r);if(s.some(e=>w.includes(e)))return t;const n=s.reduce((e,r)=>a(e)?void 0:e[r],e);return E(n)||n===e?E(e[r])?t:e[r]:n},j=e=>"boolean"==typeof e,R=e=>"function"==typeof e,N=(e,r,t)=>{let s=-1;const a=D(r)?[r]:u(r),n=a.length,o=n-1;for(;++s<n;){const r=a[s];let n=t;if(s!==o){const t=e[r];n=i(t)||Array.isArray(t)?t:isNaN(+a[s+1])?{}:[]}if(w.includes(r))return;e[r]=n,e=e[r]}};const L=e.createContext(null);L.displayName="HookFormControlContext";const M=()=>e.useContext(L);var T=(e,r,t,s=!0)=>{const a={};for(const n in e)Object.defineProperty(a,n,{get:()=>{const a=n;return r._proxyFormState[a]!==_&&(r._proxyFormState[a]=!s||_),t&&(t[a]=!0),e[a]}});return a};const U="undefined"!=typeof window?e.useLayoutEffect:e.useEffect;var I=e=>a(e)||!n(e);const B=(e,r)=>0===r.length&&!Array.isArray(e)&&null!==Object.getPrototypeOf(e)&&!(e=>{const r=e.constructor&&e.constructor.prototype;return i(r)&&r.hasOwnProperty("isPrototypeOf")})(e);function $(e,r,t=!1,a=new WeakMap){if(e===r)return!0;if(I(e)||I(r))return Object.is(e,r);if(s(e)&&s(r))return Object.is(e.getTime(),r.getTime());if(Array.isArray(e)&&Array.isArray(r)&&e.length!==r.length)return!1;const n=Object.keys(e),o=Object.keys(r);if(n.length!==o.length)return!1;if(B(e,n)||B(r,o))return Object.is(e,r);if(!n.length&&Array.isArray(e)!==Array.isArray(r))return!1;const l=a.get(e);if(l&&l.has(r))return!0;if(l)l.add(r);else{const t=new WeakSet;t.add(r),a.set(e,t)}for(const o of n){const n=e[o];if(!Object.prototype.hasOwnProperty.call(r,o))return!1;if(!t||"ref"!==o){const e=r[o];if(s(n)&&s(e)||(i(n)||Array.isArray(n))&&(i(e)||Array.isArray(e))?!$(n,e,t,a):!Object.is(n,e))return!1}}return!0}const P=({defaultValues:e,...r})=>({...f(r),defaultValues:e});function W(r,t=f){const s=e.useRef(!1),a=e.useRef(!1),n=e.useRef(void 0),i=e.useRef(0);return i.current++,!a.current&&r&&(a.current=!0,n.current=t(r())),{resyncIfNeeded:e.useCallback((e,r,t)=>{if(e&&(s.current||a.current&&i.current>1)){const e=r();$(n.current,e)||t(e)}s.current=!0},[]),snapshot:e.useCallback((e,r)=>{e&&(n.current=t(r()))},[t])}}function q(r){const t=M(),{control:s=t,disabled:a,name:n,exact:i}=r||{},o=()=>({...s._formState,defaultValues:s._defaultValues}),[l,u]=e.useState(o),c=e.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1}),{resyncIfNeeded:d,snapshot:f}=W(o,P);return U(()=>{d(!a,o,u);const e=s._subscribe({name:n,formState:c.current,exact:i,callback:e=>{!a&&u({...s._formState,...e,defaultValues:s._defaultValues})}});return()=>{e(),f(!a,o)}},[s,n,a,i,d,f]),e.useEffect(()=>{c.current.isValid&&s._setValid(!0)},[s]),e.useMemo(()=>T(l,s,c.current,!1),[l,s])}var z=e=>"string"==typeof e,H=(e,r,t,s,a)=>z(e)?(s&&r.watch.add(e),C(t,e,a)):Array.isArray(e)?e.map(e=>(s&&r.watch.add(e),C(t,e,C(a,e)))):(s&&(r.watchAll=!0),t);function J(r){const t=M(),{control:s=t,name:a,defaultValue:n,disabled:i,exact:o,compute:l}=r||{},u=e.useRef(n),c=e.useRef(l),d=e.useRef(s),m=e.useRef(a);c.current=l;const y=()=>{const e=s._getWatch(a,u.current);return c.current?c.current(e):e},[p,g]=e.useState(y),h=e.useRef(p),_=e.useCallback(e=>{const r=H(a,s._names,e||s._formValues,!1,u.current);return c.current?c.current(r):r},[s._formValues,s._names,a]),v=e.useCallback(e=>{if(!i){const r=H(a,s._names,e||s._formValues,!1,u.current);if(c.current){const e=c.current(r);$(e,h.current)||(g(e),h.current=e)}else g(r),h.current=r}},[s._formValues,s._names,i,a]),{resyncIfNeeded:b,snapshot:V}=W(y),A=e.useRef(v);A.current=v;const F=e.useRef(_);F.current=_,U(()=>{d.current===s&&$(m.current,a)?b(!i,()=>F.current(),e=>{const r=f(e);g(r),h.current=r}):(d.current=s,m.current=a,A.current());const e=s._subscribe({name:a,formState:{values:!0},exact:o,callback:e=>{A.current(e.values)}});return()=>{e(),V(!i,()=>F.current())}},[s,o,a,i,b,V]),e.useEffect(()=>s._removeUnmounted());const x=d.current!==s,S=m.current,k=e.useMemo(()=>!x&&!$(S,a),[x,a,S]);return(x||k)&&(u.current=n),i||!x&&!k?p:_()}function G(r){const t=M(),{name:s,disabled:a,control:n=t,shouldUnregister:i,defaultValue:l,exact:d=!0}=r,y=c(n._names.array,s),p=e.useMemo(()=>{const e=C(n._formValues,s,C(n._defaultValues,s,l));return E(e)?function(e,r){const t=u(r);let s=e._formValues,a=e._defaultValues;for(let e=0;e<t.length-1;e++){const r=t[e];if(s=null==s?s:s[r],a=null==a?a:a[r],null===s||null===a)return null}}(n,s):e},[n,s,l]),g=J({control:n,name:s,defaultValue:p,exact:d}),h=q({control:n,name:s,exact:d}),_=e.useRef(r),v=e.useRef(i),b=e.useRef(null),V=e.useRef(void 0),A=e.useRef(n.register(s,{...r.rules,value:V.current!==s||C(n._fields,s)?g:void 0,...j(r.disabled)?{disabled:r.disabled}:{}}));V.current=s,_.current=r;const F=e.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!C(h.errors,s)},isDirty:{enumerable:!0,get:()=>!!C(h.dirtyFields,s)},isTouched:{enumerable:!0,get:()=>!!C(h.touchedFields,s)},isValidating:{enumerable:!0,get:()=>!!C(h.validatingFields,s)},error:{enumerable:!0,get:()=>C(h.errors,s)}}),[h,s]),x=e.useCallback(e=>{const r=o(e);return C(n._fields,s)||(A.current=n.register(s,{..._.current.rules,value:r})),A.current.onChange({target:{value:o(e),name:s},type:"change"})},[s,n]),S=e.useCallback(()=>{const e=C(n._formValues,s);return C(n._fields,s)||(A.current=n.register(s,{..._.current.rules,value:e})),A.current.onBlur({target:{value:e,name:s},type:m})},[s,n]),k=e.useCallback(e=>{e&&(b.current={focus:()=>R(e.focus)&&e.focus(),select:()=>R(e.select)&&e.select(),setCustomValidity:r=>R(e.setCustomValidity)&&e.setCustomValidity(r),reportValidity:()=>R(e.reportValidity)&&e.reportValidity()});const r=C(n._fields,s);r&&r._f&&e&&(r._f.ref=b.current,r._f._c=!0)},[n._fields,s]),w=e.useMemo(()=>({name:s,value:g,...j(a)||h.disabled?{disabled:h.disabled||a}:{},onChange:x,onBlur:S,ref:k}),[s,a,h.disabled,x,S,k,g]);return e.useEffect(()=>{if(v.current=i,n._options.shouldUnregister||i){const e=f(C(i?n._defaultValues:n._options.values||n._defaultValues,s,C(n._options.defaultValues,s,_.current.defaultValue)));N(n._defaultValues,s,e),E(C(n._formValues,s))&&N(n._formValues,s,e)}else y||E(_.current.defaultValue)||!E(C(n._defaultValues,s))||(N(n._defaultValues,s,f(_.current.defaultValue)),n._subjects.state.next({defaultValues:n._defaultValues}))},[n,s,y,i]),e.useEffect(()=>{A.current=n.register(s,{..._.current.rules,...j(_.current.disabled)?{disabled:_.current.disabled}:{}});const e=(e,r)=>{const t=C(n._fields,e);t&&t._f&&(t._f.mount=r,t._f._c=r)};if(e(s,!0),!y&&n.register(s,{..._.current.rules,...j(_.current.disabled)?{disabled:_.current.disabled}:{}}),b.current){const e=C(n._fields,s);e&&e._f&&(e._f.ref=b.current)}return()=>{const r=n._options.shouldUnregister||v.current;(y?r&&!n._state.action:r)?n.unregister(s):e(s,!1)}},[s,n,y]),e.useEffect(()=>{n._setDisabledField({disabled:a,name:s})},[a,s,n]),e.useMemo(()=>({field:w,formState:h,fieldState:F}),[w,h,F])}var K=()=>"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const r=16*Math.random()|0;return("x"===e?r:3&r|8).toString(16)}),Q=(e,r,t={})=>t.shouldFocus||E(t.shouldFocus)?t.focusName||`${e}.${E(t.focusIndex)?r:t.focusIndex}.`:"",X=e=>({isOnSubmit:!e||e===h,isOnBlur:"onBlur"===e,isOnChange:e===g,isOnAll:e===_,isOnTouch:"onTouched"===e}),Y=(e,r,t)=>{if(t)return!1;if(r.watchAll||r.watch.has(e))return!0;for(const t of r.watch)if(e.startsWith(t)&&"."===e.charAt(t.length))return!0;return!1};const Z=(e,r,t)=>{var s;for(const a of t||Object.keys(e)){if("_f"===a)continue;const n=t?C(e,a):e[a];if(n){const{_f:e}=n;if(e){const t=null===(s=e.refs)||void 0===s?void 0:s.find(e=>!e.disabled);if(t&&r(t,e.name))return!0;if(e.ref&&r(e.ref,e.name))return!0;if(Z(n,r))return!0}else if((i(n)||Array.isArray(n))&&Z(n,r))return!0}}};var ee=(e,r,t)=>{const s=C(e,t),a=Array.isArray(s)?s:[];return N(a,k,C(r[t],k,r[t])),N(e,t,a),e},re=e=>i(e)&&!Object.keys(e).length,te=e=>{if(!d)return!1;const r=e?e.ownerDocument:0;return e instanceof(r&&r.defaultView?r.defaultView.HTMLElement:HTMLElement)},se=e=>"radio"===e.type,ae=e=>e instanceof RegExp,ne=(e,r,t,s,a)=>r?{...t[e],types:{...t[e]&&t[e].types?t[e].types:{},[s]:a||!0}}:{};const ie={value:!1,isValid:!1},oe={value:!0,isValid:!0};var le=e=>{if(!Array.isArray(e))return ie;if(e.length>1){const r=e.filter(e=>e&&e.checked&&!e.disabled).map(e=>e.value);return{value:r,isValid:!!r.length}}const r=e[0];return r&&r.checked&&!r.disabled?r.attributes&&"value"in r.attributes?E(r.value)||""===r.value?oe:{value:r.value,isValid:!0}:oe:ie};const ue={isValid:!1,value:null};var ce=e=>Array.isArray(e)?e.reduce((e,r)=>r&&r.checked&&!r.disabled?{isValid:!0,value:r.value}:e,ue):ue;function de(e,r,t="validate"){if(z(e)||Array.isArray(e)&&e.length&&e.every(z)||j(e)&&!e)return{type:t,message:z(e)?e:"",ref:r}}var fe=e=>i(e)&&!ae(e)?e:{value:e,message:""},me=async(e,n,o,l,u,c)=>{const{ref:d,refs:f,required:m,maxLength:y,minLength:p,min:g,max:h,pattern:_,validate:x,name:S,valueAsNumber:k,mount:w,_c:O}=e._f,D=C(o,S);if(!w||n.has(S))return{};const N=f?f[0]:d,L=e=>{if(u&&N.reportValidity){const r=j(e)?"":e||"";f?f.forEach(e=>R(e.setCustomValidity)&&e.setCustomValidity(r)):N.setCustomValidity(r),N.reportValidity()}},M={},T=!O&&se(d),U=!O&&r(d),I=T||U,B=(k||t(d))&&E(d.value)&&E(D)||te(d)&&""===d.value&&!O||""===D||Array.isArray(D)&&!D.length,$=ne.bind(null,S,l,M),P=(e,r,t,s=v,a=b)=>{const n=e?r:t;M[S]={type:e?s:a,message:n,ref:d,...$(e?s:a,n)}};if(c?!Array.isArray(D)||!D.length:m&&(!I&&(B||a(D))||j(D)&&!D||U&&!le(f).isValid||T&&!ce(f).isValid)){const{value:e,message:r}=z(m)?{value:!!m,message:m}:fe(m);if(e&&(M[S]={type:A,message:r,ref:N,...$(A,r)},!l))return L(r),M}if(!(B||a(g)&&a(h))){let e,r;const t=fe(h),n=fe(g);if(a(D)||s(D)||isNaN(D)){const s=!O&&d.valueAsDate||new Date(D),a=e=>new Date((new Date).toDateString()+" "+e),i="time"==d.type,o="week"==d.type;z(t.value)&&D&&(e=i?a(D)>a(t.value):o?D>t.value:s>new Date(t.value)),z(n.value)&&D&&(r=i?a(D)<a(n.value):o?D<n.value:s<new Date(n.value))}else{const s=!O&&d.valueAsNumber||(D?+D:D);a(t.value)||(e=s>t.value),a(n.value)||(r=s<n.value)}if((e||r)&&(P(!!e,t.message,n.message,"max","min"),!l))return L(M[S].message),M}if((!a(y)||!a(p))&&!B&&(z(D)||c&&Array.isArray(D))){const e=fe(y),r=fe(p),t=!a(e.value)&&D.length>+e.value,s=!a(r.value)&&D.length<+r.value;if((t||s)&&(P(t,e.message,r.message),!l))return L(M[S].message),M}if(_&&!B&&z(D)){const{value:e,message:r}=fe(_);if(ae(e)&&!D.match(e)&&(M[S]={type:V,message:r,ref:d,...$(V,r)},!l))return L(r),M}if(x)if(R(x)){const e=de(await x(D,o),N);if(e&&(M[S]={...e,...$(F,e.message)},!l))return L(e.message),M}else if(i(x)){let e={};for(const r in x){if(!re(e)&&!l)break;const t=de(await x[r](D,o),N,r);t&&(e={...t,...$(r,t.message)},l||L(t.message),l&&(M[S]=e))}if(!re(e)&&(M[S]={ref:N,...e},!l))return M}const W=M[S];return L(!W||W.message),M},ye=e=>Array.isArray(e)?e:[e],pe=(e,r)=>[...e,...ye(r)],ge=e=>Array.isArray(e)?e.map(()=>{}):void 0;function he(e,r,t){return[...e.slice(0,r),...ye(t),...e.slice(r)]}var _e=(e,r,t)=>Array.isArray(e)?(E(e[t])&&(e[t]=void 0),e.splice(t,0,e.splice(r,1)[0]),e):[],ve=(e,r)=>[...ye(r),...ye(e)],be=e=>Array.isArray(e)?e.filter(Boolean):[],Ve=(e,r)=>E(r)?[]:function(e,r){let t=0;const s=[...e];for(const e of r)s.splice(e-t,1),t++;return be(s).length?s:[]}(e,[...new Set(ye(r))].sort((e,r)=>e-r)),Ae=(e,r,t)=>{[e[r],e[t]]=[e[t],e[r]]};function Fe(e,r){if(!i(e)&&!Array.isArray(e))return e;if(z(r)&&Object.prototype.hasOwnProperty.call(e,r))return delete e[r],e;const t=Array.isArray(r)?r:D(r)?[r]:u(r);if(t.some(e=>w.includes(String(e))))return e;const s=1===t.length?e:function(e,r){const t=r.length-1;let s=0;for(;s<t;){if(a(e)){e=void 0;break}e=e[r[s]],s++}return e}(e,t),n=t.length-1,o=t[n];return s&&(i(s)||Array.isArray(s))&&delete s[o],0!==n&&(i(s)&&re(s)||Array.isArray(s)&&function(e){for(const r in e)if(e.hasOwnProperty(r)&&!E(e[r]))return!1;return!0}(s))&&Fe(e,t.slice(0,-1)),e}var xe=(e,r,t)=>(e[r]=t,e);function Se(r){const t=M(),{control:s=t,name:a,keyName:n="id",disabled:o,shouldUnregister:l,rules:u}=r,c=()=>s._getFieldArray(a),[d,m]=e.useState(c),y=e.useRef(s._getFieldArray(a).map(K)),p=e.useRef(!1),{resyncIfNeeded:g,snapshot:h}=W(c),v=e.useRef(s),b=e.useRef(a),V=e.useRef({control:s,name:a,rules:u});o||s._names.array.add(a),e.useMemo(()=>{!o&&d&&((u||V.current.rules&&V.current.control===s&&V.current.name===a)&&s.register(a,u),V.current={control:s,name:a,rules:u})},[s,a,d,u,o]),U(()=>{if(o)return;if(v.current===s&&b.current===a)g(!0,c,e=>{m(e),y.current=e.map(K)});else{v.current=s,b.current=a;const e=c();$(d,e)||(m(e),y.current=e.map(K)),h(!0,c)}const e=s._subjects.array.subscribe({next:({values:e,name:r})=>{if(r===a||!r){const t=C(e,a);Array.isArray(t)?(m(t),y.current=t.map(K)):r||(m([]),y.current=[])}}}).unsubscribe;return()=>{e(),h(!0,c)}},[s,a,o,g,h]);const A=e.useCallback(e=>{p.current=!0,s._setFieldArray(a,e)},[s,a]);return e.useEffect(()=>{if(o)return void s._state.actionArrayLengths.delete(a);s._state.action=!1,s._state.actionArrayLengths.delete(a),Y(a,s._names)&&s._subjects.state.next({...s._formState});const e=X(s._options.mode),r=X(s._options.reValidateMode);if(p.current&&(!e.isOnSubmit||s._formState.isSubmitted)&&(!s._formState.isSubmitted||!r.isOnSubmit)&&(!e.isOnBlur||s._formState.isSubmitted&&r.isOnChange)){const e=C(s._formValues,a);if(s._options.resolver)s._runSchema([a]).then(r=>{if(s._updateIsValidating([a]),e!==C(s._formValues,a))return;const t=C(r.errors,a);$(C(s._formState.errors,a),t,!0)||(t?i(t)&&!Object.keys(t).some(e=>!Number.isNaN(+e))?ee(s._formState.errors,{[a]:t},a):N(s._formState.errors,a,t):Fe(s._formState.errors,a),s._formState.errors={...s._formState.errors},s._subjects.state.next({errors:s._formState.errors}))});else{const r=C(s._fields,a);r&&r._f&&me(r,s._names.disabled,s._formValues,s._options.criteriaMode===_,s._options.shouldUseNativeValidation,!0).then(r=>{if(e===C(s._formValues,a))if(re(r)){const e=C(s._formState.errors,a);e&&e[k]&&(Fe(s._formState.errors,`${a}.${k}`),s._formState.errors={...s._formState.errors},s._subjects.state.next({errors:s._formState.errors}))}else ee(s._formState.errors,r,a),s._formState.errors={...s._formState.errors},s._subjects.state.next({errors:s._formState.errors})})}}p.current&&s._subjects.state.next({name:a,values:f(s._formValues)}),s._names.focus&&Z(s._fields,(e,r)=>{if(s._names.focus&&r.startsWith(s._names.focus)&&e.focus)return e.focus(),1}),s._names.focus="",s._setValid(),p.current=!1},[d,a,s,o]),e.useEffect(()=>(o||E(C(s._formValues,a))&&s._setFieldArray(a),()=>{if(s._state.actionArrayLengths.delete(a),s._state.actionArrayLengths.size||(s._state.action=!1),o)return;const e=!(s._options.shouldUnregister||l);p.current&&e&&s._subjects.state.next({name:a,values:f(s._formValues)}),!e&&s._state.action&&[...s._state.actionArrayLengths.keys()].some(e=>a.startsWith(e+"."))||(e?(e=>{const r=C(s._fields,e);r&&r._f&&(r._f.mount=!1)})(a):s.unregister(a))}),[a,s,n,l,o]),{swap:e.useCallback((e,r)=>{if(o)return;const t=s._getFieldArray(a);Ae(t,e,r),Ae(y.current,e,r),A(t),m(t),s._setFieldArray(a,t,Ae,{argA:e,argB:r},!1)},[A,a,s,o]),move:e.useCallback((e,r)=>{if(o)return;const t=s._getFieldArray(a);_e(t,e,r),_e(y.current,e,r),A(t),m(t),s._setFieldArray(a,t,_e,{argA:e,argB:r},!1)},[A,a,s,o]),prepend:e.useCallback((e,r)=>{if(o)return;const t=ye(f(e)),n=ve(s._getFieldArray(a),t);s._names.focus=Q(a,0,r),y.current=ve(y.current,t.map(K)),A(n),m(n),s._setFieldArray(a,n,ve,{argA:ge(e)})},[A,a,s,o]),append:e.useCallback((e,r)=>{if(o)return;const t=ye(f(e)),n=pe(s._getFieldArray(a),t);s._names.focus=Q(a,n.length-1,r),y.current=pe(y.current,t.map(K)),A(n),m(n),s._setFieldArray(a,n,pe,{argA:ge(e)})},[A,a,s,o]),remove:e.useCallback(e=>{if(o)return;const r=Ve(s._getFieldArray(a),e);y.current=Ve(y.current,e),A(r),m(r),!Array.isArray(C(s._fields,a))&&N(s._fields,a,void 0),s._setFieldArray(a,r,Ve,{argA:e})},[A,a,s,o]),insert:e.useCallback((e,r,t)=>{if(o)return;const n=ye(f(r)),i=he(s._getFieldArray(a),e,n);s._names.focus=Q(a,e,t),y.current=he(y.current,e,n.map(K)),A(i),m(i),s._setFieldArray(a,i,he,{argA:e,argB:ge(r)})},[A,a,s,o]),update:e.useCallback((e,r)=>{if(o)return;const t=f(r),n=xe(s._getFieldArray(a),e,t);y.current=[...n].map((r,t)=>r&&t!==e?y.current[t]:K()),A(n),m([...n]),s._setFieldArray(a,n,xe,{argA:e,argB:ge(r)})},[A,a,s,o]),replace:e.useCallback(e=>{if(o)return;const r=ye(f(e));y.current=r.map(K),A([...r]),m([...r]),s._setFieldArray(a,[...r],e=>Array.isArray(e)?e.slice(0,r.length):e,{})},[A,a,s,o]),fields:e.useMemo(()=>d.map((e,r)=>({...e,...j(o)?{disabled:o}:{},[n]:y.current[r]||K()})),[d,n,o])}}const ke=e=>"undefined"!=typeof Blob&&e instanceof Blob||"undefined"!=typeof File&&e instanceof File,we=e=>"undefined"!=typeof FileList&&e instanceof FileList,Oe=e=>{const r={};for(const t of Object.keys(e))if(!n(e[t])||null===e[t]||s(e[t])||ke(e[t])||we(e[t]))r[t]=e[t];else{const s=Oe(e[t]);for(const e of Object.keys(s))r[`${t}.${e}`]=s[e]}return r};function De(){}const Ee="post";function Ce(e){return e>=200&&e<300}const je=({control:e,disabled:r,exact:t,name:s,render:a})=>a(q({control:e,name:s,disabled:r,exact:t})),Re=je;var Ne=()=>{let e=new Set,r=0;return{get observers(){return Array.from(e)},next:t=>{const s=e;r++;for(const e of s)e.next&&e.next(t);s===e&&r--},subscribe:t=>(e.add(t),{unsubscribe:()=>{r&&(e=new Set(e),r=0),e.delete(t)}}),unsubscribe:()=>{e=new Set,r=0}}};function Le(e,r){const t=Array.isArray(e)?[]:{};for(const s in e)if(Object.prototype.hasOwnProperty.call(e,s)){const a=e[s],n=r[s];a&&(i(a)||Array.isArray(a))&&n?t[s]=Le(a,n):e[s]&&(t[s]=n)}return t}const Me=(e,r)=>null!==e&&n(e)&&Object.prototype.hasOwnProperty.call(e,r);var Te=(e,r)=>{if(!r)return!1;let t=e;for(const s of D(r)?[r]:u(r)){if(!Me(t,s))return Me(e,r);t=t[s]}return!0},Ue=e=>"select-multiple"===e.type,Ie=e=>te(e)&&e.isConnected;function Be(e){return Array.isArray(e)||i(e)}function $e(e,r,t="",s=[]){for(const a in e){const n=t?`${t}.${a}`:a,i=e[a];Be(i)&&Be(C(r,n))?$e(i,r,n,s):i&&s.push(n)}return s}function Pe(e){return Array.isArray(e)||i(e)&&!(e=>{for(const r in e)if(R(e[r]))return!0;return!1})(e)}function We(e){return!(!e||!("_f"in e))}function qe(e){return Array.isArray(e)?!e.some(e=>!E(e)):!Object.keys(e).length}function ze(e,r){Array.isArray(e)?e[r]=void 0:delete e[r]}function He(e,r={},t){for(const s in e){const a=e[s],n=t&&t[s];!Pe(a)||Array.isArray(a)&&We(n)?E(a)||(r[s]=!0):(r[s]=Array.isArray(a)?[]:{},He(a,r[s],n),qe(r[s])&&ze(r,s))}return r}function Je(e,r,t,s){t||(t=He(r,Array.isArray(a(r)?e:r)?[]:{},s));for(const n in e){const i=e[n],o=s&&s[n];!Pe(i)||Array.isArray(i)&&We(o)?$(i,a(r)?void 0:r[n])?ze(t,n):t[n]=!0:(E(r)||I(t[n])?t[n]=He(i,Array.isArray(i)?[]:{},o):Je(i,a(r)?{}:r[n],t[n],o),qe(t[n])&&ze(t,n))}return t}var Ge=(e,{valueAsNumber:r,valueAsDate:t,setValueAs:s})=>E(e)?e:r?""===e?NaN:e?+e:e:t&&z(e)?new Date(e):s?s(e):e;function Ke(e){const s=e.ref;return t(s)?s.files:se(s)?ce(e.refs).value:Ue(s)?[...s.selectedOptions].filter(e=>{var r;return!e.disabled&&!(null===(r=e.closest)||void 0===r?void 0:r.call(e,"optgroup[disabled]"))}).map(({value:e})=>e):r(s)?le(e.refs).value:Ge(s.value,e)}var Qe=e=>E(e)?e:ae(e)?e.source:i(e)?ae(e.value)?e.value.source:e.value:e;const Xe="AsyncFunction";var Ye=e=>{if(!e||!e.validate)return!1;if(R(e.validate))return e.validate.constructor.name===Xe;if(i(e.validate))for(const r in e.validate)if(e.validate[r].constructor.name===Xe)return!0;return!1};function Ze(e,r,t){const s=C(e,t);if(s&&(s.type||s.message)||Array.isArray(s))return{error:s,name:t};const a=t.split(".");for(;a.length;){const s=a.join("."),n=C(r,s),i=C(e,s);if(n&&!Array.isArray(n)&&t!==s)return{name:t};if(i&&i.type)return{name:s,error:i};if(i&&i.root&&i.root.type)return{name:`${s}.root`,error:i.root};a.pop()}return{name:t}}const er=(e,r,t)=>t?e===r||e.startsWith(r+"."):e.startsWith(r)||r.startsWith(e);var rr=(e,r,t)=>{if(!e||!r||e===r)return!0;if(!Array.isArray(e))return er(e,r,t);for(const s of e)if(s&&er(s,r,t))return!0;return!1};const tr={mode:h,reValidateMode:g,shouldFocusError:!0},sr={submitCount:0,isDirty:!1,isReady:!1,isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{}};function ar(e={}){let n={...tr,...e},l={...f(sr),isLoading:R(n.defaultValues),errors:f(n.errors)||{},disabled:n.disabled||!1},g={},h=(i(n.defaultValues)||i(n.values))&&f(n.defaultValues||n.values)||{},v=n.shouldUnregister?{}:f(h),b={action:!1,actionArrayLengths:new Map,mount:!1,watch:!1,keepIsValid:!1},V=!1,A={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set,registerName:new Set};const w={},O={},L=new Set;let M=X(n.mode),T=X(n.reValidateMode);const U={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},I={...U},B={},P=(...e)=>e.some(e=>I[e]||B[e]),W=e=>{for(const r of L)if(rr(r.name,e,r.exact))return!0;return!1},q={array:Ne(),state:Ne()};let J=0,G=0,K=0,Q=0;const ae={};let ne=n.criteriaMode===_;const ie=(e,r)=>t=>{clearTimeout(O[e]),O[e]=setTimeout(r,t)},oe=e=>{clearTimeout(O[e]),delete O[e],delete w[e]},le=e=>{oe(e);const r=`${e}.`;for(const e of Object.keys(w))e.startsWith(r)&&oe(e)},ue=async e=>{if(!b.keepIsValid&&!n.disabled&&(P("isValid")||e)){const r=++J,t=K;let s;if(n.resolver?(s=re((await ve()).errors),r===J&&de()):s=await Ae({fields:g,onlyCheckValid:!0,eventType:"valid"}),r!==J)return;if(t!==K)return ue(e);s!==l.isValid&&q.state.next({isValid:s})}},ce=(e,r)=>{const t=[...e];if(!t.some(e=>e&&(r?!0!==C(l.validatingFields,e):Te(l.validatingFields,e))))return;const s=f(l.validatingFields);for(const e of t)e&&(r?N(s,e,!0):Fe(s,e));$(l.validatingFields,s)||(l.validatingFields=s)},de=(e,r)=>{!n.disabled&&P("isValidating","validatingFields")&&(ce(e||A.mount,r),q.state.next({validatingFields:l.validatingFields,isValidating:!re(l.validatingFields)}))},fe=()=>{l.dirtyFields=Je(h,v,void 0,g)},pe=(e,r)=>{N(l.errors,e,r),l.errors={...l.errors},q.state.next({errors:l.errors})},ge=e=>D(e)?[e]:u(e),he=(e,t,s,i)=>{const o=C(g,e);if(o){if((e=>{const r=ge(e);let t=v,s=h;for(let e=0;e<r.length-1;e++){const n=r[e];if(t=a(t)?t:t[n],s=a(s)?s:s[n],null===t&&null!==s)return!0}return!1})(e)||(e=>{if(!b.actionArrayLengths.size)return!1;const r=ge(e);let t=v,s="",n=-1,i=0;for(let e=0;e<r.length;e++){if(a(t))return!1;const o=r[e];if(s=s?`${s}.${o}`:o,Array.isArray(t)&&+o>=t.length)return-1!==n&&(e!==n||+o<i);if(b.actionArrayLengths.has(s)&&(n=e+1,i=b.actionArrayLengths.get(s)),t=t[o],E(t)&&-1!==n&&e>n&&+r[n]<i)return!0}return!1})(e))return;const u=E(C(v,e)),c=C(v,e,E(s)?C(h,e):s),d=!!i&&!l.isReady&&(e=>r(e)?e.checked!==e.defaultChecked:"select-one"===e.type||Ue(e)?(e=>{const r=[...e.options];return!e.multiple&&e.size<2&&!r.some(e=>e.defaultSelected)?e.selectedIndex!==r.findIndex(e=>{var r;return!e.disabled&&!(null===(r=e.parentElement)||void 0===r?void 0:r.matches("optgroup[disabled]"))}):r.some(e=>e.selected!==e.defaultSelected)})(e):!se(e)&&"range"!==e.type&&"color"!==e.type&&"defaultValue"in e&&e.value!==e.defaultValue)(i);if(E(c)||i&&i.defaultChecked||d||t){const r=t?c:Ke(o._f);E(r)&&(e=>{let r=v;for(const t of ge(e)){if(Array.isArray(r)&&+t>=r.length)return!0;r=r&&r[t]}return!1})(e)||(P("dirtyFields")&&!$(C(v,e),r)&&(V=!0),N(v,e,r),d&&_e(e,r))}else ke(e,c);b.mount&&!b.action&&(n.resolver&&P("isValidating","validatingFields")?Promise.resolve().then(()=>ue()):ue(),u&&l.isDirty&&P("isDirty")&&(xe()||(l.isDirty=!1,q.state.next({...l}))),n.shouldUnregister&&u&&!E(C(v,e))&&Y(e,A)&&(b.watch=!0))}},_e=(e,r,t,s,a)=>{let o=!1,u=!1;const c={name:e};if(!n.disabled||!0===s){if(!t||s){const t=$(C(h,e),r);if(P("isDirty")&&(u=l.isDirty,l.isDirty=c.isDirty=!t||xe(),o=u!==c.isDirty),u=!!C(l.dirtyFields,e),t)Fe(l.dirtyFields,e);else{const t=C(h,e),s=C(g,e),a=!!(s&&s._f||!i(t)&&!Array.isArray(t))||Je(t,r,void 0,s);N(l.dirtyFields,e,a)}let s=!1;if(V||t&&(P("isDirty")?l.isDirty:xe())){V=!1;const e=Je(h,v,void 0,g);$(l.dirtyFields,e)||(s=!0,((e,r)=>{for(const r in e)delete e[r];Object.assign(e,r)})(l.dirtyFields,e))}c.dirtyFields=l.dirtyFields,o=o||P("dirtyFields")&&(s||u!==!t)}if(t){const r=Te(l.touchedFields,e)?C(l.touchedFields,e):void 0;r||(N(l.touchedFields,e,t),c.touchedFields=l.touchedFields,o=o||P("touchedFields")&&r!==t)}o&&a&&q.state.next(c)}return o?c:{}},ve=async e=>(de(e,!0),await n.resolver(v,n.context,((e,r,t,s)=>{const a={};for(const t of e){const e=C(r,t);e&&N(a,t,f(e._f))}return{criteriaMode:t,names:[...e],fields:a,shouldUseNativeValidation:s}})(e||A.mount,g,n.criteriaMode,n.shouldUseNativeValidation))),Ve=async({name:e,eventType:r,onlyCheckValid:t})=>{if(n.validate){const s=K,a=++G,o=await n.validate({formValues:v,formState:l,name:e,eventType:r});if(s!==K||r!==y&&a!==G)return!0;if(t&&(i(o)?Object.values(o).some(Boolean):z(o)||!o))return!1;if(i(o)){let e=!0;Me(S);for(const r in o){const t=o[r];t&&(e=!1,Be(`${S}.${r}`,{message:z(t.message)?t.message:"",type:t.type||F}))}return e}return z(o)||!o?(Me(S),Be(S,{message:o||"",type:F}),!1):(Me(S),!0)}return!0},Ae=async({fields:e,onlyCheckValid:r,name:t,eventType:s,context:a={valid:!0,runRootValidation:!1}})=>{const i=K;if(n.validate&&!a.runRootValidation&&(a.runRootValidation=!0,!await Ve({name:t,eventType:s,onlyCheckValid:r})&&(a.valid=!1,r)))return a.valid;for(const t in e){const o=e[t];if(o){const{_f:e,...u}=o;if(e){const t=A.array.has(e.name),s=o._f&&Ye(o._f),u=P("isValidating","validatingFields");s&&u&&de([e.name],!0);const c=Q,d=await me(o,A.disabled,v,ne,n.shouldUseNativeValidation&&!r,t);if(i!==K)return a.valid;if(s&&u&&de([e.name]),!C(g,e.name)||ae[e.name]>c)continue;if(d[e.name]&&(a.valid=!1,r))break;if(r||(oe(e.name),C(d,e.name)?t?ee(l.errors,d,e.name):N(l.errors,e.name,d[e.name]):Fe(l.errors,e.name)),n.shouldUseNativeValidation&&d[e.name])break}!re(u)&&await Ae({context:a,onlyCheckValid:r,fields:u,name:t,eventType:s})}}return a.valid},xe=(e,r)=>(e&&!E(r)&&N(v,e,r),!$(b.mount?v:h,h)),Se=(e,r,t)=>{const s=b.mount?v:E(r)||!E(e)?h:r;return H(e,A,E(e)?{...s}:s,t,r)},ke=(e,s,n={},i=!1,o=!1,l=!1)=>{const u=C(g,e);let c=s;if(u){const n=u._f;n&&(!n.disabled&&N(v,e,Ge(s,n)),c=te(n.ref)&&a(s)?"":s,Ue(n.ref)?[...n.ref.options].forEach(e=>e.selected=c.includes(e.value)):n.refs?r(n.ref)?n.refs.forEach(e=>{e.defaultChecked&&e.disabled||(Array.isArray(c)?e.checked=!E(e.value)&&c.includes(e.value):e.checked=c===e.value||!!c)}):n.refs.forEach(e=>e.checked=e.value===c):t(n.ref)?n.ref.value="":(n.ref.value=c,n.ref.type||o||l||q.state.next({name:e,values:i?v:W(e)?f(v):void 0})))}(n.shouldDirty||n.shouldTouch)&&_e(e,u&&u._f&&!u._f.disabled&&(u._f.valueAsNumber||u._f.valueAsDate||u._f.setValueAs)?Ge(s,u._f):c,n.shouldTouch,n.shouldDirty,!o),n.shouldValidate&&je(e,{delayError:n.delayError}),n.shouldValidate&&u&&u._f&&u._f.deps&&(!Array.isArray(u._f.deps)||u._f.deps.length>0)&&je(u._f.deps)},we=(e,r,t,a=!1,n=!1,o=!1)=>{for(const l in r){if(!Object.prototype.hasOwnProperty.call(r,l))continue;const u=r[l],c=e+"."+l,d=C(g,c);A.array.has(c)&&q.array.next({name:c,values:a?v:f(v)}),(A.array.has(e)||i(u)||d&&!d._f)&&!s(u)?we(c,u,t,a,n,o):ke(c,u,t,a,n,o)}},Oe=(e,r,t,s,n=!1)=>{const i=C(g,e),o=A.array.has(e),u=s?r:f(r),c=$(C(v,e),u);if(c||N(v,e,u),o)q.array.next({name:e,values:s?v:f(v)}),P("isDirty","dirtyFields")&&t.shouldDirty&&(fe(),l.isDirty=xe(e,u),n||q.state.next({name:e,dirtyFields:l.dirtyFields,isDirty:l.isDirty})),t.shouldValidate&&je(e,{delayError:t.delayError});else{const r=Array.isArray(u)&&!u.length||re(u),o=!c&&!n;!i||i._f||a(u)||r?ke(e,u,t,s,n,o):we(e,u,t,s,n,o)}if(!c&&!n){const r=Y(e,A),t=b.mount||r?e:void 0,a=o?[]:((e,r)=>{const t=r.split("."),s=[];let a=t[0];for(let r=1;r<t.length;a+="."+t[r++])!isNaN(+t[r])&&e.has(a)&&s.push(`${a}.${t[r]}`);return s})(A.array,e),n=s?v:W(t)||a.some(W)?f(v):void 0;q.state.next({...r&&l,name:t,values:n});for(const e of a)q.state.next({name:e,values:n&&f(v)})}},De=(e,r,t={})=>Oe(e,r,t,!1),Ee=async e=>{b.mount=!0;const r=e.target;let t=r.name,s=!0;const a=C(g,t),i=Q,u=e=>{s=!!C(g,t)&&!(ae[t]>i)&&$(e,C(v,t,e))};if(a){let i,d;b.keepIsValid=!1;let y=!1;const p=r.type?Ke(a._f):o(e),h=e.type===m||"focusout"===e.type,_=!((c=a._f).mount&&(c.required||!E(c.required)&&!1!==c.required||!E(c.min)||!E(c.max)||!E(c.maxLength)||!E(c.minLength)||c.pattern||c.validate)||n.validate||n.resolver||C(l.errors,t)||a._f.deps),V=_||((e,r,t,s,a)=>!a.isOnAll&&(!t&&a.isOnTouch?!(r||e):(t?s.isOnBlur:a.isOnBlur)?!e:!(t?s.isOnChange:a.isOnChange)||e))(h,C(l.touchedFields,t),l.isSubmitted,T,M),F=Y(t,A,h);N(v,t,f(p)),h?r&&r.readOnly||(a._f.onBlur&&a._f.onBlur(e),Object.prototype.hasOwnProperty.call(w,t)&&(y=!0,w[t](0))):a._f.onChange&&a._f.onChange(e);const x=_e(t,p,h),S=!re(x)||F;if(!h&&q.state.next({name:t,type:e.type,...W(t)?{values:f(v)}:{}}),V)return _&&l.isValid||!P("isValid")||("onBlur"===n.mode?h&&ue():h||ue()),S&&q.state.next({name:t,...F?{}:x});if(!n.resolver&&n.validate&&await Ve({name:t,eventType:e.type}),!h&&F&&q.state.next({...l}),n.resolver){const e=K,{errors:r}=await ve([t]);if(e!==K)return;if(de([t]),u(p),!s)return void(!re(x)&&q.state.next(x));const a=Ze(l.errors,g,t),n=Ze(r,g,a.name||t);i=n.error,t=n.name,d=re(r)}else{const r=K,o=++J;if(de([t],!0),i=(await me(a,A.disabled,v,ne,n.shouldUseNativeValidation))[t],r!==K)return;if(de([t]),u(p),s)if(i)d=!1;else if(P("isValid")){if(d=await Ae({fields:g,onlyCheckValid:!0,name:t,eventType:e.type}),r!==K)return;u(p),o!==J&&(d=void 0)}}s&&(a._f.deps&&(!Array.isArray(a._f.deps)||a._f.deps.length>0)&&je(a._f.deps),((e,r,t,s)=>{const a=C(l.errors,e),i=P("isValid")&&j(r)&&l.isValid!==r;if(n.delayError&&t?(w[e]=ie(e,()=>pe(e,t)),w[e](n.delayError)):(oe(e),t?N(l.errors,e,t):Fe(l.errors,e),l.errors={...l.errors}),(t?!$(a,t,!0):a)||!re(s)||i){const t={...s,...i&&j(r)?{isValid:r}:{},errors:l.errors,name:e};q.state.next(t)}})(t,d,i,x),y&&Object.prototype.hasOwnProperty.call(w,t)&&w[t](0))}var c},Ce=(e,r)=>{if(C(l.errors,r)&&e.focus)return e.focus(),1},je=async(e,r={})=>{let t,s;b.keepIsValid=!1;const a=ye(e),o=K;if(n.resolver){const r=await(async e=>{const r=K,t=Q,s=e?e.filter(e=>C(g,e)):[],{errors:a}=await ve(e);if(r!==K)return a;if(de(e),e){for(const r of e){if(s.includes(r)&&(!C(g,r)||ae[r]>t)){Fe(a,r);continue}const e=C(a,r);le(r);const n=A.array.has(r)&&i(e)&&!Object.keys(e).some(e=>!Number.isNaN(Number(e))),o=C(g,r),u=i(o)&&Object.keys(o).some(e=>"_f"!==e);n?ee(l.errors,{[r]:e},r):e&&(e.type||e.message)||Array.isArray(e)||i(e)&&u?N(l.errors,r,e):Fe(l.errors,r)}l.errors={...l.errors}}else Object.keys(w).forEach(oe),l.errors=a;return a})(E(e)?e:a);t=re(r),s=e?!a.some(e=>C(r,e)):t}else e?(s=(await Promise.all(a.map(async e=>{const r=C(g,e);return await Ae({fields:r&&r._f?{[e]:r}:r,eventType:p})}))).every(Boolean),(s||l.isValid)&&ue()):s=t=await Ae({fields:g,name:e,eventType:p});if(o!==K)return s;if(r.delayError&&n.delayError&&z(e)){const r=C(l.errors,e);r?(Fe(l.errors,e),w[e]=ie(e,()=>pe(e,r)),w[e](n.delayError)):oe(e)}if(r.shouldTouch){const r=e=>{!A.array.has(e)&&N(l.touchedFields,e,!0)};for(const t of e?a:A.mount){const e=C(g,t);i(e)||Array.isArray(e)?Z(g,(e,t)=>r(t),[t]):r(t)}}return l.errors={...l.errors},q.state.next({...!z(e)||P("isValid")&&t!==l.isValid?{}:{name:e},...n.resolver||!e?{isValid:t}:{},...r.shouldTouch&&P("touchedFields")?{touchedFields:l.touchedFields}:{},errors:l.errors}),r.shouldFocus&&!s&&Z(g,Ce,e?a:A.mount),s},Re=(e,r)=>{const t=r||l,s=C(t.errors,e);return{invalid:!!s,isDirty:!!C(t.dirtyFields,e),error:s,isValidating:!!C(t.validatingFields,e),isTouched:!!C(t.touchedFields,e)}},Me=e=>{const r=e?ye(e):void 0;r?r.forEach(e=>{le(e),Fe(l.errors,e),l.errors={...l.errors},q.state.next({name:e,errors:l.errors})}):(Object.keys(w).forEach(oe),l.errors={},q.state.next({errors:l.errors}))},Be=(e,r,t)=>{var s;le(e);const a=C(g,e,{_f:{}}),n=a._f&&a._f.ref,i=C(l.errors,e)||{},{ref:o,message:u,type:c,types:d,...f}=i;if(N(l.errors,e,{...f,...r,ref:n}),l.errors={...l.errors},q.state.next({name:e,errors:l.errors,isValid:!1}),t&&t.shouldFocus){const e=(null===(s=a._f)||void 0===s?void 0:s.refs)?a._f.refs.find(e=>!e.disabled)||a._f.refs[0]:n;e&&e.focus&&e.focus()}},Pe=e=>{const r={name:e.name,exact:e.exact};e.formState&&e.formState.values&&L.add(r);const{unsubscribe:t}=q.state.subscribe({next:r=>{if(rr(e.name,r.name,e.exact)&&((e,r,t)=>{const s=Object.keys(e).filter(e=>"name"!==e);return!s.length||t&&s.length>=Object.keys(r).length||s.find(e=>r[e]===(!t||_))})(r,e.formState||I,e.reRenderRoot)){const t=r.values||{...v};e.callback({...l,...r,validatingFields:l.validatingFields,isValidating:l.isValidating,values:t,defaultValues:h})}}});return()=>{L.delete(r),t()}},We=(e,r={})=>{const t=e?ye(e):[...A.mount],s=new Set(t);if(e)for(const e of A.mount)t.some(r=>e.startsWith(`${r}.`))&&s.add(e);r.keepIsValidating||ce(s);for(const e of s)A.mount.delete(e),A.array.delete(e),A.disabled.delete(e),Fe(g,e),!r.keepValue&&Fe(v,e),r.keepError||(le(e),Fe(l.errors,e)),!r.keepDirty&&Fe(l.dirtyFields,e),!r.keepTouched&&Fe(l.touchedFields,e),!n.shouldUnregister&&!r.keepDefaultValue&&Fe(h,e);r.keepError||(l.errors={...l.errors}),L.size&&q.state.next({values:f(v)}),q.state.next({...l,...r.keepDirty?{}:{isDirty:xe()},...r.keepIsValidating?{}:{isValidating:!re(l.validatingFields)}}),!r.keepIsValid&&ue()},qe=({disabled:e,name:r})=>{if(j(e)&&b.mount||e||A.disabled.has(r)){const t=A.disabled.has(r)!==!!e;e?A.disabled.add(r):A.disabled.delete(r),t&&b.mount&&!b.action&&ue()}},ze=(e,t={})=>{let s=C(g,e);const a=j(t.disabled)||j(n.disabled),i=!A.registerName.has(e)&&s&&s._f&&!s._f.mount;if(s&&s._f||(ae[e]=++Q),N(g,e,{...s||{},_f:{...s&&s._f?s._f:{ref:{name:e}},name:e,mount:!0,...t}}),A.mount.add(e),s&&s._f){const r=C(g,e);for(const e of x)e in t||delete r._f[e]}return s&&!i?qe({disabled:j(t.disabled)?t.disabled:n.disabled,name:e}):he(e,!0,t.value),{...a?{disabled:t.disabled||n.disabled}:{},...n.progressive?{required:!!Qe(t.required),min:Qe(t.min),max:Qe(t.max),minLength:Qe(t.minLength),maxLength:Qe(t.maxLength),pattern:Qe(t.pattern)}:{},name:e,onChange:Ee,onBlur:Ee,ref:a=>{if(a){A.registerName.add(e),ze(e,t),A.registerName.delete(e),s=C(g,e);const n=E(a.value)&&a.querySelectorAll&&a.querySelectorAll("input,select,textarea")[0]||a,i=(e=>se(e)||r(e))(n),o=s._f.refs||[];if(i?o.find(e=>e===n):n===s._f.ref)return;const l={...s._f};i?(l.refs=[...o.filter(Ie),n,...Array.isArray(C(h,e))?[{}]:[]],l.ref={type:n.type,name:e}):(l.ref=n,delete l.refs),N(g,e,{_f:l}),he(e,!1,void 0,n)}else s=C(g,e,{}),s._f&&(s._f.mount=!1),(n.shouldUnregister||t.shouldUnregister)&&(!c(A.array,e)||!b.action)&&A.unMount.add(e)}}},He=()=>n.shouldFocusError&&!n.shouldUseNativeValidation&&Z(g,Ce,A.mount),Xe=(e,r)=>async t=>{let s,a,o=!1;t&&(t.preventDefault&&t.preventDefault(),t.persist&&t.persist());let u=f(v);q.state.next({isSubmitting:!0});const c=K,d=e=>{throw c===K&&q.state.next({isSubmitting:!1}),e};if(n.resolver){let e;try{e=await ve()}catch(e){d(e)}const{errors:r,values:t}=e;if(c!==K)return;de(),Object.keys(w).forEach(oe),l.errors=r,u=f(t)}else{try{await Ae({fields:g,eventType:y})}catch(e){d(e)}if(c!==K)return;Fe(l.errors,k),l.errors={...l.errors}}if(A.disabled.size&&(i(u)||Array.isArray(u)))for(const e of A.disabled)Fe(u,e);if(re(l.errors)){q.state.next({errors:{}});try{s=await e(u,t)}catch(e){o=!0,a=e}}else{if(r)try{await r({...l.errors},t)}catch(e){d(e)}c===K&&(He(),setTimeout(He))}if(c===K&&q.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:re(l.errors)&&!o,submitCount:l.submitCount+1,errors:l.errors}),o)throw a;return s},er=(e,r={})=>{K++;const t=e?f(e):h,s=f(t),a=re(e),i=s,o=g;if(Object.keys(w).forEach(oe),r.keepDefaultValues||(h=t),!r.keepValues){if(r.keepDirtyValues){const e=new Set([...A.mount,...$e(Je(h,v,void 0,o),l.dirtyFields)]);for(const r of e){const e=C(l.dirtyFields,r),t=C(v,r),s=C(i,r);e&&!E(t)?N(i,r,t):e||E(s)||De(r,s)}}else{if(d&&E(e))for(const e of A.mount){const r=C(g,e);if(r&&r._f){const e=Array.isArray(r._f.refs)?r._f.refs[0]:r._f.ref;if(te(e)){const r=e.closest("form");if(r){r.reset();break}}}}if(r.keepFieldsRef)for(const e of A.mount)De(e,C(i,e));else g={}}if(n.shouldUnregister){if(v=r.keepDefaultValues?f(h):{},r.keepFieldsRef)for(const e of A.mount)N(v,e,C(i,e))}else v=f(i);q.array.next({values:{...i}}),q.state.next({name:void 0,type:void 0,values:{...i}})}A={mount:r.keepDirtyValues||r.keepFieldsRef?A.mount:new Set,unMount:new Set,array:new Set,registerName:new Set,disabled:r.keepValues||r.keepDirtyValues||r.keepFieldsRef?new Set([...A.disabled].filter(e=>C(g,e))):new Set,watch:new Set,watchAll:!1,focus:""},b.mount=!I.isValid||!!r.keepIsValid||!!r.keepDirtyValues||!n.shouldUnregister&&!re(i),b.watch=!!n.shouldUnregister,b.keepIsValid=!!r.keepIsValid,b.action=!1,b.actionArrayLengths.clear(),V=!1,r.keepErrors||(l.errors={}),q.state.next({submitCount:r.keepSubmitCount?l.submitCount:0,isDirty:!a&&(r.keepDirty?l.isDirty:r.keepValues?xe():!(!r.keepDefaultValues||!e||$(e,h))),isSubmitted:!!r.keepIsSubmitted&&l.isSubmitted,dirtyFields:a?{}:r.keepDirtyValues?r.keepDefaultValues&&v?Je(h,v,void 0,o):l.dirtyFields:r.keepDefaultValues&&e?Je(h,e,void 0,o):r.keepDirty?l.dirtyFields:r.keepValues?Je(h,v,void 0,o):{},touchedFields:r.keepTouched?l.touchedFields:{},...r.keepIsValidating||!l.isValidating&&re(l.validatingFields)?null:{validatingFields:{},isValidating:!1},errors:r.keepErrors?l.errors:{},isSubmitSuccessful:!!r.keepIsSubmitSuccessful&&l.isSubmitSuccessful,isSubmitting:!1,defaultValues:h})},ar=(e,r)=>er(R(e)?e(v):e,{...n.resetOptions,...r});q.state.subscribe({next:e=>{const{name:r,type:t,values:s,...a}=e;Object.keys(a).length&&(l={...l,...a})}});const nr={control:{register:ze,unregister:We,getFieldState:Re,handleSubmit:Xe,setError:Be,_subscribe:Pe,_runSchema:ve,_updateIsValidating:de,_focusError:He,_getWatch:Se,_getDirty:xe,_setValid:ue,_setFieldArray:(e,r=[],t,s,a=!0,i=!0)=>{if(s&&t&&!n.disabled){b.action=!0,b.keepIsValid=!1;const n=C(g,e),o=n&&n._f,u=o?Object.assign([],n):n;if(b.actionArrayLengths.has(e)||b.actionArrayLengths.set(e,Array.isArray(u)?u.length:0),i&&Array.isArray(u)){const r=t(u,s.argA,s.argB)||u;o?N(g,e,{...r,_f:o}):a&&N(g,e,r)}const c=C(l.errors,e);if(i&&Array.isArray(c)){const r=c.root,n=t(c,s.argA,s.argB)||c;r&&(n.root=r),a&&N(l.errors,e,n),((e,r)=>{const t=C(e,r);!be(t).length&&(!t||!t.root)&&Fe(e,r)})(l.errors,e),l.errors={...l.errors}}const d=C(l.touchedFields,e),f=i&&Array.isArray(d);if(f){const r=t(d,s.argA,s.argB);a&&N(l.touchedFields,e,r)}const m=C(l.dirtyFields,e);if(i&&Array.isArray(m)){const r=t(m,s.argA,s.argB)||m;a&&N(l.dirtyFields,e,r)}P("dirtyFields")?fe():V=!0,q.state.next({name:e,isDirty:xe(e,r),dirtyFields:l.dirtyFields,...f&&{touchedFields:l.touchedFields},errors:l.errors,isValid:l.isValid})}else N(v,e,r)},_setDisabledField:qe,_setErrors:e=>{Object.keys(w).forEach(oe);const r=!re(e);l.errors=f(e),q.state.next({errors:l.errors,...r?{isValid:!1}:{}}),!r&&b.mount&&ue()},_getFieldArray:e=>be(C(b.mount?v:h,e,n.shouldUnregister?C(h,e,[]):[])),_reset:er,_resetDefaultValues:()=>R(n.defaultValues)&&n.defaultValues().then(e=>{ar(e,n.resetOptions),q.state.next({isLoading:!1})}),_removeUnmounted:()=>{for(const e of A.unMount){const r=C(g,e);r&&(r._f.refs?r._f.refs.every(e=>!Ie(e)):!Ie(r._f.ref))&&We(e)}A.unMount=new Set},_disableForm:e=>{j(e)&&(q.state.next({disabled:e}),Z(g,(r,t)=>{const s=C(g,t);s&&(r.disabled=s._f.disabled||e,Array.isArray(s._f.refs)&&s._f.refs.forEach(r=>{r.disabled=s._f.disabled||e}))},0))},_subjects:q,_proxyFormState:I,get _fields(){return g},get _formValues(){return v},get _state(){return b},set _state(e){b=e},get _defaultValues(){return h},get _names(){return A},set _names(e){A=e},get _formState(){return l},get _options(){return n},set _options(e){n={...n,...e},M=X(n.mode),T=X(n.reValidateMode),ne=n.criteriaMode===_}},subscribe:e=>{b.mount=!0;const r=Object.keys(e.formState||{}).filter(r=>e.formState&&e.formState[r]);for(const e of r)B[e]=(B[e]||0)+1;const t=Pe({...e,formState:{...U,...e.formState}});return()=>{for(const e of r.splice(0))B[e]--;t()}},trigger:je,register:ze,handleSubmit:Xe,watch:(e,r)=>{if(R(e)){const t={};L.add(t);const{unsubscribe:s}=q.state.subscribe({next:t=>"values"in t&&e(t.values||Se(void 0,r),t)});return{unsubscribe:()=>{L.delete(t),s()}}}return Se(e,r,!0)},setValue:De,setValues:(e,r={})=>{const t=R(e)?e(v):e;if(!$(v,t)||r.shouldValidate||r.shouldDirty||r.shouldTouch){v={...v,...t};for(const e of new Set([...A.mount,...A.array]))Te(t,e)&&Oe(e,C(t,e),r,!0,!0);if(r.shouldDirty&&P("isDirty","dirtyFields"))for(const e of Object.keys(t))_e(e,v[e],!1,!0);q.state.next({...l,name:void 0,type:void 0,...L.size?{values:v}:{}}),r.shouldValidate&&ue()}},getValues:(e,r)=>{let t=E(e)&&!r?{...b.mount?v:h}:b.mount?v:h;return r&&(t=Le(r.dirtyFields?l.dirtyFields:l.touchedFields,t)),E(e)?t:z(e)?C(t,e):e.map(e=>C(t,e))},getErrors:e=>E(e)?{...l.errors}:z(e)?C(l.errors,e):e.map(e=>C(l.errors,e)),reset:ar,resetField:(e,r={})=>{C(g,e)&&(ce([e]),E(r.defaultValue)?De(e,f(C(h,e))):(De(e,r.defaultValue),h=f(h),N(h,e,f(r.defaultValue))),r.keepTouched||Fe(l.touchedFields,e),r.keepDirty||(Fe(l.dirtyFields,e),l.isDirty=E(r.defaultValue)?xe():xe(e,f(C(h,e)))),r.keepError||(le(e),Fe(l.errors,e),l.errors={...l.errors},ue()),q.state.next({...l,isValidating:!re(l.validatingFields)}))},resetDefaultValues:(e,r={})=>{if(h=f(e),!r.keepDirty){const e=Je(h,v,void 0,g);l.dirtyFields=e,l.isDirty=!re(e)}r.keepIsValid||ue(),q.state.next({...l,defaultValues:h})},clearErrors:Me,unregister:We,setError:Be,setFocus:(e,r={})=>{const t=C(g,e),s=t&&t._f;if(s){const e=s.refs?s.refs.find(e=>!e.disabled)||s.refs[0]:s.ref;e.focus&&setTimeout(()=>{e.focus(),r.shouldSelect&&R(e.select)&&e.select()})}},getFieldState:Re};return{...nr,formControl:nr}}const nr={mode:tr.mode,reValidateMode:tr.reValidateMode,shouldFocusError:tr.shouldFocusError,resolver:void 0,criteriaMode:void 0,delayError:void 0,shouldUnregister:void 0,shouldUseNativeValidation:void 0,context:void 0,progressive:void 0,resetOptions:void 0},ir=e.createContext(null);ir.displayName="HookFormContext",exports.Controller=e=>e.render(G(e)),exports.ErrorMessage=({as:r,control:t,name:s,render:a})=>{const{errors:n}=q({control:t,name:s}),i=C(n,s);if(!i)return null;const o=i.message||"";return a?a({message:o,messages:i.types}):e.createElement(r||e.Fragment,null,o)},exports.FieldArray=e=>e.render(Se(e)),exports.Form=function(r){const t=M(),[s,a]=e.useState(!1),{control:n=t,onSubmit:i=De,children:o,action:l,method:u=Ee,headers:c,encType:d,onError:f=De,render:m,onSuccess:y=De,validateStatus:p=Ce,...g}=r,h=e.useMemo(()=>n.handleSubmit(async(e,r)=>{const t=function(e){const r=new FormData,t=Oe(e);for(const e in t){const s=t[e];if(!E(s))if("undefined"!=typeof FileList&&s instanceof FileList)for(let t=0;t<s.length;t++){const a=s[t];a&&r.append(e,a)}else r.append(e,s)}return r}(e),s=function(e){try{return JSON.stringify(e)}catch(e){return""}}(e);if(i&&await i({data:e,event:r,method:u,formData:t,formDataJson:s}),z(l))try{const e=e=>/^\s*multipart\/form-data\s*(;|$)/i.test(e),r=d&&!e(d)?d:void 0,a=e=>r?e.test(r):c&&Object.entries(c).some(([r,t])=>"content-type"===r.toLowerCase()&&e.test(t))||d&&e.test(d);let n=t;a(/json/i)?n=s:a(/^\s*application\/x-www-form-urlencoded\s*(;|$)/i)?n=new URLSearchParams(Array.from(t,([e,r])=>[e,z(r)?r:r.name])):a(/^\s*text\/plain\s*(;|$)/i)&&(n=Array.from(t,([e,r])=>`${e}=${z(r)?r:r.name}\r\n`).join(""));const i=await fetch(l,{method:u,headers:{...Object.fromEntries(Object.entries(c||{}).filter(([t,s])=>"content-type"!==t.toLowerCase()||!r&&!e(s))),...r&&{"Content-Type":r}},body:n});if(i&&!p(i.status))return f({response:i}),{type:String(i.status)};y({response:i})}catch(e){return f({error:e}),{type:""}}if(R(l))try{await l(t)}catch(e){return f({error:e}),{type:""}}}),[n,i,u,l,c,d,p,f,y]),_=e.useCallback(async e=>{const r=await h(e);r&&n&&(n._subjects.state.next({isSubmitSuccessful:!1}),n.setError("root.server",r))},[h,n]);return e.useEffect(()=>{a(!0)},[]),m?m({submit:_}):e.createElement("form",{noValidate:s,action:l,...!R(l)&&{method:u,encType:d},onSubmit:_,...g},o)},exports.FormProvider=({children:r,watch:t,getValues:s,getErrors:a,getFieldState:n,setError:i,clearErrors:o,setValue:l,setValues:u,trigger:c,formState:d,resetField:f,reset:m,resetDefaultValues:y,handleSubmit:p,unregister:g,control:h,register:_,setFocus:v,subscribe:b})=>{const V=e.useMemo(()=>({watch:t,getValues:s,getErrors:a,getFieldState:n,setError:i,clearErrors:o,setValue:l,setValues:u,trigger:c,formState:d,resetField:f,reset:m,resetDefaultValues:y,handleSubmit:p,unregister:g,control:h,register:_,setFocus:v,subscribe:b}),[o,h,d,a,n,s,p,_,m,y,f,i,v,l,u,b,c,g,t]);return e.createElement(ir.Provider,{value:V},e.createElement(L.Provider,{value:V.control},r))},exports.FormState=je,exports.FormStateSubscribe=Re,exports.Watch=e=>e.render(J({name:e.names,...e})),exports.appendErrors=ne,exports.createFormControl=ar,exports.get=C,exports.set=N,exports.useController=G,exports.useFieldArray=Se,exports.useForm=function(r={}){const t=e.useRef(void 0),s=e.useRef(void 0),a=e.useRef(r.formControl),n=e.useRef(!1),i=e.useRef(!!r.validate),o=e.useRef(!!r.errors),l=e.useRef(!1),[u,c]=e.useState(()=>({...f(sr),isLoading:R(r.defaultValues),errors:r.errors||{},disabled:r.disabled||!1,defaultValues:R(r.defaultValues)?void 0:r.defaultValues}));if(!t.current||r.formControl&&a.current!==r.formControl)if(a.current=r.formControl,n.current=!1,r.formControl)t.current={...r.formControl,formState:u},r.defaultValues&&!R(r.defaultValues)&&r.formControl.reset(r.defaultValues,r.resetOptions);else{const{formControl:e,...s}=ar(r);t.current={...s,formState:u}}const d=t.current.control,m=d._options,y={};for(const e in nr)e in m&&!(e in r)&&(y[e]=nr[e]);n.current&&!r.disabled&&(y.disabled=!1),d._options={...y,...r,validate:r.validate};const p=()=>({...d._formState,defaultValues:d._defaultValues}),{resyncIfNeeded:g,snapshot:h}=W(p,P);return U(()=>{g(!0,p,c);const e=d._subscribe({formState:d._proxyFormState,callback:()=>c({...d._formState,defaultValues:d._defaultValues}),reRenderRoot:!0});return c(e=>({...e,isReady:!0})),d._formState.isReady=!0,d._subjects.state.next({isReady:!0}),()=>{e(),h(!0,p)}},[d,g,h]),e.useEffect(()=>{d._disableForm(!(n.current&&!r.disabled)&&r.disabled),n.current=!!r.disabled},[d,r.disabled]),e.useEffect(()=>{r.mode&&(d._options.mode=r.mode),r.reValidateMode&&(d._options.reValidateMode=r.reValidateMode)},[d,r.mode,r.reValidateMode]),e.useEffect(()=>{r.errors?(d._setErrors(r.errors),d._focusError()):o.current&&d._setErrors({}),o.current=!!r.errors},[d,r.errors]),e.useEffect(()=>{i.current&&!r.validate&&t.current&&t.current.clearErrors(S),i.current=!!r.validate},[r.validate]),e.useEffect(()=>{r.shouldUnregister&&d._subjects.state.next({values:d._getWatch()})},[d,r.shouldUnregister]),e.useEffect(()=>{if(d._proxyFormState.isDirty){const e=d._getDirty();e!==u.isDirty&&d._subjects.state.next({isDirty:e})}},[d,u.isDirty]),e.useEffect(()=>{r.values&&!$(r.values,s.current)?(d._reset(r.values,{keepFieldsRef:!0,...d._options.resetOptions}),d._options.resetOptions&&d._options.resetOptions.keepIsValid||d._setValid(),s.current=r.values,c(e=>({...e}))):d._resetDefaultValues()},[d,r.values]),e.useEffect(()=>{d._state.mount&&(l.current||r.values)||(d._setValid(),d._state.mount=!0),l.current=!0,d._state.watch&&(d._state.watch=!1,d._subjects.state.next({...d._formState})),d._removeUnmounted()}),t.current.formState=e.useMemo(()=>T(u,d),[d,u]),t.current},exports.useFormContext=()=>e.useContext(ir),exports.useFormState=q,exports.useWatch=J; //# sourceMappingURL=index.cjs.js.map