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