react-hook-form 7.12.1 → 7.12.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";function e(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}Object.defineProperty(exports,"__esModule",{value:!0});var r=e(require("react")),t=e=>"checkbox"===e.type,n=e=>e instanceof Date,s=e=>null==e;const u=e=>"object"==typeof e;var c=e=>!s(e)&&!Array.isArray(e)&&u(e)&&!n(e),a=e=>e.substring(0,e.search(/.\d/))||e,i=(e,r)=>[...e].some(e=>a(r)===e),o=e=>e.filter(Boolean),l=e=>void 0===e,f=(e,r,t)=>{if(c(e)&&r){const n=o(r.split(/[,[\].]+?/)).reduce((e,r)=>s(e)?e:e[r],e);return l(n)||n===e?l(e[r])?t:e[r]:n}};const d="blur",y="change",b="onBlur",g="onChange",m="onSubmit",h="onTouched",v="all",p="max",x="min",O="maxLength",w="minLength",j="pattern",A="required",V="validate";var k=(e,r)=>{const t=Object.assign({},e);return delete t[r],t};const F=r.createContext(null);F.displayName="RHFContext";const _=()=>r.useContext(F);var C=(e,r,t,n,s=!0)=>e?new Proxy(r,{get:(e,r)=>{if(r in e)return t.current[r]!==v&&(t.current[r]=!s||v),n&&(n.current[r]=!0),e[r]}}):r,R=e=>c(e)&&!Object.keys(e).length,S=(e,r,t)=>{const n=k(e,"name");return R(n)||Object.keys(n).length>=Object.keys(r).length||Object.keys(n).find(e=>r[e]===(!t||v))},D=e=>Array.isArray(e)?e:[e],E="undefined"!=typeof window&&void 0!==window.HTMLElement&&"undefined"!=typeof document;const B=E?"Proxy"in window:"undefined"!=typeof Proxy;function M(e){const{control:t,name:n}=e||{},s=_(),{formStateRef:u,subjectsRef:c,readFormStateRef:a}=t||s.control,i=r.useRef(n);i.current=n;const[o,l]=r.useState(u.current),f=r.useRef({isDirty:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1});return r.useEffect(()=>{const e=c.current.state.subscribe({next:e=>(!i.current||!e.name||D(i.current).includes(e.name))&&S(e,f.current)&&l(Object.assign(Object.assign({},u.current),e))});return()=>e.unsubscribe()},[]),C(B,o,a,f,!1)}function N({name:e,rules:n,defaultValue:s,control:u,shouldUnregister:a}){const o=_(),{defaultValuesRef:b,register:g,fieldsRef:m,unregister:h,namesRef:v,subjectsRef:p,shouldUnmount:x,inFieldArrayActionRef:O}=u||o.control,w=f(m.current,e),[j,A]=r.useState(w&&w._f&&!l(w._f.value)?w._f.value:l(f(b.current,e))?s:f(b.current,e)),{onChange:V,onBlur:k,ref:F}=g(e,Object.assign(Object.assign({},n),{value:j})),C=M({control:u||o.control,name:e});function R(e,r){const t=f(m.current,e);t&&t._f&&(t._f.mount=r)}return r.useEffect(()=>{const r=p.current.control.subscribe({next:r=>(!r.name||e===r.name)&&A(f(r.values,e))});return R(e,!0),()=>{r.unsubscribe();const t=x||a;(i(v.current.array,e)?t&&!O.current:t)?h(e):R(e,!1)}},[e]),{field:{onChange:r=>{const n=(e=>c(e)&&e.target?t(e.target)?e.target.checked:e.target.value:e)(r);A(n),V({target:{value:n,name:e},type:y})},onBlur:()=>{k({target:{name:e},type:d})},name:e,value:j,ref:e=>e&&F({focus:()=>e.focus&&e.focus(),setCustomValidity:r=>e.setCustomValidity(r),reportValidity:()=>e.reportValidity()})},formState:C,fieldState:{invalid:!!f(C.errors,e),isDirty:!!f(C.dirtyFields,e),isTouched:!!f(C.touchedFields,e),error:f(C.errors,e)}}}var T=(e,r,t,n,s)=>r?Object.assign(Object.assign({},t[e]),{types:Object.assign(Object.assign({},t[e]&&t[e].types?t[e].types:{}),{[n]:s||!0})}):{},I=e=>/^\w*$/.test(e),P=e=>o(e.replace(/["|']|\]/g,"").split(/\.|\[/));function U(e,r,t){let n=-1;const s=I(r)?[r]:P(r),u=s.length,a=u-1;for(;++n<u;){const r=s[n];let u=t;if(n!==a){const t=e[r];u=c(t)||Array.isArray(t)?t:isNaN(+s[n+1])?{}:[]}e[r]=u,e=e[r]}return e}const $=(e,r,t)=>{for(const n of t||Object.keys(e)){const t=f(e,n);if(t){const e=t._f,n=k(t,"_f");if(e&&r(e.name)){if(e.ref.focus&&l(e.ref.focus()))break;if(e.refs){e.refs[0].focus();break}}else c(n)&&$(n,r)}}},L=(e,r={})=>{for(const t in e.current){const n=e.current[t];if(n&&!s(r)){const e=n._f,s=k(n,"_f");U(r,t,e&&e.ref?e.ref.disabled||e.refs&&e.refs.every(e=>e.disabled)?void 0:e.value:Array.isArray(n)?[]:{}),s&&L({current:s},r[t])}}return r};var W=()=>{const e="undefined"==typeof performance?Date.now():1e3*performance.now();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,r=>{const t=(16*Math.random()+e)%16|0;return("x"==r?t:3&t|8).toString(16)})},q=(e=[],r)=>e.map(e=>Object.assign({[r]:e&&e[r]||W()},e)),H=e=>s(e)||!u(e);function z(e,t,s){if(H(e)||H(t)||n(e)||n(t))return e===t;if(!r.isValidElement(e)){const r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(const n of r){const r=e[n];if(!s||"ref"!==n){const e=t[n];if((c(r)||Array.isArray(r))&&(c(e)||Array.isArray(e))?!z(r,e,s):r!==e)return!1}}}return!0}function G(e,r,t,n,u){let c=-1;for(;++c<e.length;){for(const n in e[c])Array.isArray(e[c][n])?(!t[c]&&(t[c]={}),t[c][n]=[],G(e[c][n],f(r[c]||{},n,[]),t[c][n],t[c],n)):!s(r)&&z(f(r[c]||{},n),e[c][n])?U(t[c]||{},n):t[c]=Object.assign(Object.assign({},t[c]),{[n]:!0});n&&!t.length&&delete n[u]}return t}var J=(e,r,t)=>function e(r,t){if(H(r)||H(t))return t;for(const n in t){const s=r[n],u=t[n];try{r[n]=c(s)&&c(u)||Array.isArray(s)&&Array.isArray(u)?e(s,u):u}catch(e){}}return r}(G(e,r,t.slice(0,e.length)),G(r,e,t.slice(0,e.length)));function K(e,r){return[...D(e),...D(r)]}var Q=e=>Array.isArray(e)?Array(e.length).fill(void 0):void 0;function X(e,r,t){return[...e.slice(0,r),...D(t),...e.slice(r)]}var Y=(e,r,t)=>Array.isArray(e)?(l(e[t])&&(e[t]=void 0),e.splice(t,0,e.splice(r,1)[0]),e):[];function Z(e,r){return[...D(r),...D(e)]}var ee=(e,r)=>l(r)?[]:function(e,r){let t=0;const n=[...e];for(const e of r)n.splice(e-t,1),t++;return o(n).length?n:[]}(e,D(r).sort((e,r)=>e-r)),re=(e,r,t)=>{e[r]=[e[t],e[t]=e[r]][0]},te=e=>"boolean"==typeof e;function ne(e,r){const t=I(r)?[r]:P(r),n=1==t.length?e:function(e,r){const t=r.slice(0,-1).length;let n=0;for(;n<t;)e=l(e)?n++:e[r[n++]];return e}(e,t),s=t[t.length-1];let u;n&&delete n[s];for(let r=0;r<t.slice(0,-1).length;r++){let n,s=-1;const a=t.slice(0,-(r+1)),i=a.length-1;for(r>0&&(u=e);++s<a.length;){const r=a[s];n=n?n[r]:e[r],i===s&&(c(n)&&R(n)||Array.isArray(n)&&!n.filter(e=>c(e)&&!R(e)||te(e)).length)&&(u?delete u[r]:delete e[r]),u=n}}return e}var se=e=>"file"===e.type,ue=e=>"select-multiple"===e.type,ce=e=>"radio"===e.type;const ae={value:!1,isValid:!1},ie={value:!0,isValid:!0};var oe=e=>{if(Array.isArray(e)){if(e.length>1){const r=e.filter(e=>e&&e.checked&&!e.disabled).map(e=>e.value);return{value:r,isValid:!!r.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!l(e[0].attributes.value)?l(e[0].value)||""===e[0].value?ie:{value:e[0].value,isValid:!0}:ie:ae}return ae},le=(e,{valueAsNumber:r,valueAsDate:t,setValueAs:n})=>l(e)?e:r?""===e?NaN:+e:t?new Date(e):n?n(e):e;const fe={isValid:!1,value:null};var de=e=>Array.isArray(e)?e.reduce((e,r)=>r&&r.checked&&!r.disabled?{isValid:!0,value:r.value}:e,fe):fe;function ye(e){if(e&&e._f){const n=e._f.ref;if(n.disabled)return;return se(n)?n.files:ce(n)?de(e._f.refs).value:ue(n)?(r=n.options,[...r].filter(({selected:e})=>e).map(({value:e})=>e)):t(n)?oe(e._f.refs).value:le(l(n.value)?e._f.ref.value:n.value,e._f)}var r}var be=(e,r,t,n)=>{const s={};for(const t of e){const e=f(r,t);e&&U(s,t,e._f)}return{criteriaMode:t,names:[...e],fields:s,shouldUseNativeValidation:n}},ge=e=>"function"==typeof e,me=e=>"string"==typeof e,he=e=>me(e)||r.isValidElement(e),ve=e=>e instanceof RegExp;function pe(e,r,t="validate"){if(he(e)||Array.isArray(e)&&e.every(he)||te(e)&&!e)return{type:t,message:he(e)?e:"",ref:r}}var xe=e=>c(e)&&!ve(e)?e:{value:e,message:""},Oe=async({_f:{ref:e,refs:r,required:n,maxLength:u,minLength:a,min:i,max:o,pattern:l,validate:f,name:d,value:y,valueAsNumber:b,mount:g}},m,h)=>{if(!g)return{};const v=r?r[0]:e,k=e=>{h&&v.reportValidity&&(v.setCustomValidity(te(e)?"":e||" "),v.reportValidity())},F={},_=ce(e),C=t(e),S=_||C,D=(b||se(e))&&!e.value||""===y||Array.isArray(y)&&!y.length,E=T.bind(null,d,m,F),B=(r,t,n,s=O,u=w)=>{const c=r?t:n;F[d]=Object.assign({type:r?s:u,message:c,ref:e},E(r?s:u,c))};if(n&&(!S&&(D||s(y))||te(y)&&!y||C&&!oe(r).isValid||_&&!de(r).isValid)){const{value:e,message:r}=he(n)?{value:!!n,message:n}:xe(n);if(e&&(F[d]=Object.assign({type:A,message:r,ref:v},E(A,r)),!m))return k(r),F}if(!(D||s(i)&&s(o))){let r,t;const n=xe(o),u=xe(i);if(isNaN(y)){const s=e.valueAsDate||new Date(y);me(n.value)&&(r=s>new Date(n.value)),me(u.value)&&(t=s<new Date(u.value))}else{const c=e.valueAsNumber||parseFloat(y);s(n.value)||(r=c>n.value),s(u.value)||(t=c<u.value)}if((r||t)&&(B(!!r,n.message,u.message,p,x),!m))return k(F[d].message),F}if((u||a)&&!D&&me(y)){const e=xe(u),r=xe(a),t=!s(e.value)&&y.length>e.value,n=!s(r.value)&&y.length<r.value;if((t||n)&&(B(t,e.message,r.message),!m))return k(F[d].message),F}if(l&&!D&&me(y)){const{value:r,message:t}=xe(l);if(ve(r)&&!y.match(r)&&(F[d]=Object.assign({type:j,message:t,ref:e},E(j,t)),!m))return k(t),F}if(f)if(ge(f)){const e=pe(await f(y),v);if(e&&(F[d]=Object.assign(Object.assign({},e),E(V,e.message)),!m))return k(e.message),F}else if(c(f)){let e={};for(const r in f){if(!R(e)&&!m)break;const t=pe(await f[r](y),v,r);t&&(e=Object.assign(Object.assign({},t),E(r,t.message)),k(t.message),m&&(F[d]=e))}if(!R(e)&&(F[d]=Object.assign({ref:v},e),!m))return F}return k(!0),F},we=e=>({isOnSubmit:!e||e===m,isOnBlur:e===b,isOnChange:e===g,isOnAll:e===v,isOnTouch:e===h}),je=e=>e instanceof HTMLElement;class Ae{constructor(){this.tearDowns=[]}add(e){this.tearDowns.push(e)}unsubscribe(){for(const e of this.tearDowns)e();this.tearDowns=[]}}class Ve{constructor(e,r){this.observer=e,this.closed=!1,r.add(()=>this.closed=!0)}next(e){this.closed||this.observer.next(e)}}class ke{constructor(){this.observers=[]}next(e){for(const r of this.observers)r.next(e)}subscribe(e){const r=new Ae,t=new Ve(e,r);return this.observers.push(t),r}unsubscribe(){this.observers=[]}}const Fe="undefined"==typeof window;exports.Controller=e=>e.render(N(e)),exports.FormProvider=e=>r.createElement(F.Provider,{value:k(e,"children")},e.children),exports.appendErrors=T,exports.get=f,exports.set=U,exports.useController=N,exports.useFieldArray=({control:e,name:t,keyName:n="id",shouldUnregister:s})=>{const u=_(),c=r.useRef(""),i=r.useRef(!1),{getIsDirty:l,namesRef:d,fieldsRef:y,defaultValuesRef:b,formStateRef:g,subjectsRef:m,readFormStateRef:h,updateIsValid:v,fieldArrayDefaultValuesRef:p,unregister:x,shouldUnmount:O,inFieldArrayActionRef:w,setValues:j,register:A}=e||u.control,[V,F]=r.useState(q((f(y.current,t)&&i.current?f(L(y),t):f(p.current,a(t))?f(p.current,t):f(b.current,t))||[],n));U(p.current,t,[...V]),d.current.array.add(t);const C=e=>e.map((e={})=>k(e,n)),R=()=>{const e=f(L(y),t,[]);return q(f(p.current,t,[]).map((r,t)=>Object.assign(Object.assign({},r),e[t])),n)},S=(e,r)=>r&&!r.shouldFocus?r.focusName||`${t}.${r.focusIndex}.`:`${t}.${e}.`,E=(e=[])=>F(q(e,n)),B=e=>!o(f(e,t,[])).length&&ne(e,t),M=(e,r,n=[],s=!0)=>{if(w.current=!0,f(y.current,t)){const n=e(f(y.current,t),r.argA,r.argB);s&&U(y.current,t,n)}if(Array.isArray(f(g.current.errors,t))){const n=e(f(g.current.errors,t),r.argA,r.argB);s&&U(g.current.errors,t,n),B(g.current.errors)}if(h.current.touchedFields&&f(g.current.touchedFields,t)){const n=e(f(g.current.touchedFields,t),r.argA,r.argB);s&&U(g.current.touchedFields,t,n),B(g.current.touchedFields)}(h.current.dirtyFields||h.current.isDirty)&&(U(g.current.dirtyFields,t,J(C(n),f(b.current,t,[]),f(g.current.dirtyFields,t,[]))),n&&U(g.current.dirtyFields,t,J(C(n),f(b.current,t,[]),f(g.current.dirtyFields,t,[]))),B(g.current.dirtyFields)),m.current.state.next({dirtyFields:g.current.dirtyFields,isDirty:l(t,C(n)),errors:g.current.errors,isValid:g.current.isValid})},N=(e,r=0,n="")=>e.forEach((e,s)=>{const u=`${n||t}.${n?s:r+s}`;H(e)?A(u,{value:e}):Object.entries(e).forEach(([e,r])=>{const t=u+"."+e;Array.isArray(r)?N(r,s,t):A(t,{value:r})})});return r.useEffect(()=>{if(w.current=!1,d.current.watchAll)m.current.state.next({});else for(const e of d.current.watch)if(t.startsWith(e)){m.current.state.next({});break}m.current.watch.next({name:t,values:L(y)}),c.current&&$(y.current,e=>e.startsWith(c.current)),c.current="",m.current.array.next({name:t,values:C([...V])}),h.current.isValid&&v()},[V,t]),r.useEffect(()=>{const e=m.current.array.subscribe({next({name:e,values:r,isReset:n}){n&&(ne(y.current,e||t),e?U(p.current,e,r):p.current=r,E(f(p.current,t)))}});return!f(y.current,t)&&U(y.current,t,[]),i.current=!0,()=>{if(e.unsubscribe(),O||s)x(t),ne(p.current,t);else{const e=f(L(y),t);e&&U(p.current,t,e)}}},[]),{swap:r.useCallback((e,r)=>{const t=R();re(t,e,r),M(re,{argA:e,argB:r},t,!1),E(t)},[t]),move:r.useCallback((e,r)=>{const t=R();Y(t,e,r),E(t),M(Y,{argA:e,argB:r},t,!1)},[t]),prepend:r.useCallback((e,r)=>{const t=D(e),n=Z(R(),t);E(n),M(Z,{argA:Q(e)},n),N(t),c.current=S(0,r)},[t]),append:r.useCallback((e,r)=>{const t=D(e),n=K(R(),t),s=n.length-t.length;E(n),M(K,{argA:Q(e)},n,!1),N(t,s),c.current=S(s,r)},[t]),remove:r.useCallback(e=>{const r=ee(R(),e);E(r),M(ee,{argA:e},r)},[t]),insert:r.useCallback((e,r,t)=>{const n=D(r),s=X(R(),e,n);E(s),M(X,{argA:e,argB:Q(r)},s),N(n,e),c.current=S(e,t)},[t]),update:r.useCallback((e,r)=>{j(t+"."+e,r,{shouldValidate:!!h.current.isValid,shouldDirty:!(!h.current.dirtyFields&&!h.current.isDirty)});const n=R();n[e]=r,E(n)},[t]),fields:V}},exports.useForm=function({mode:e=m,reValidateMode:u=g,resolver:y,context:b,defaultValues:h={},shouldFocusError:p=!0,delayError:x,shouldUseNativeValidation:O,shouldUnregister:w,criteriaMode:j}={}){const[A,V]=r.useState({isDirty:!1,isValidating:!1,dirtyFields:{},isSubmitted:!1,submitCount:0,touchedFields:{},isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,errors:{}}),F=r.useRef({isDirty:!B,dirtyFields:!B,touchedFields:!B,isValidating:!B,isValid:!B,errors:!B}),_=r.useRef(y),M=r.useRef(A),N=r.useRef({}),T=r.useRef(h),I=r.useRef({}),P=r.useRef(b),W=r.useRef(!1),q=r.useRef(!1),G=r.useRef(),K=r.useRef({watch:new ke,control:new ke,array:new ke,state:new ke}),Q=r.useRef({mount:new Set,unMount:new Set,array:new Set,watch:new Set,watchAll:!1}),X=we(e),Y=j===v;_.current=y,P.current=b;const Z=e=>Q.current.watchAll||Q.current.watch.has(e)||Q.current.watch.has((e.match(/\w+/)||[])[0]),ee=(e,r)=>{U(M.current.errors,e,r),K.current.state.next({errors:M.current.errors})},re=r.useCallback(async(e,r,t,n,s,u)=>{const c=f(M.current.errors,r),a=!!F.current.isValid&&(y?s:await de(N.current,!0));if(x&&t?(G.current=G.current||((e,r)=>{let t=0;return(...n)=>{clearTimeout(t),t=setTimeout(()=>e(...n),r)}})(ee,x),G.current(r,t)):t?U(M.current.errors,r,t):ne(M.current.errors,r),(u||(t?!z(c,t,!0):c)||!R(n)||M.current.isValid!==a)&&!e){const e=Object.assign(Object.assign({},n),{isValid:!!a,errors:M.current.errors,name:r});M.current=Object.assign(Object.assign({},M.current),e),K.current.state.next(u?{name:r}:e)}K.current.state.next({isValidating:!1})},[]),te=r.useCallback((e,r,n={},u,c)=>{c&&Se(e);const a=f(N.current,e);if(a){const c=a._f;if(c){const a=E&&je(c.ref)&&s(r)?"":r;if(c.value=le(r,c),ce(c.ref)?(c.refs||[]).forEach(e=>e.checked=e.value===a):se(c.ref)&&!me(a)?c.ref.files=a:ue(c.ref)?[...c.ref.options].forEach(e=>e.selected=a.includes(e.value)):t(c.ref)&&c.refs?c.refs.length>1?c.refs.forEach(e=>e.checked=Array.isArray(a)?!!a.find(r=>r===e.value):a===e.value):c.refs[0].checked=!!a:c.ref.value=a,u){const t=L(N);U(t,e,r),K.current.control.next({values:Object.assign(Object.assign({},T.current),t),name:e})}(n.shouldDirty||n.shouldTouch)&&ie(e,a,n.shouldTouch),n.shouldValidate&&he(e)}else a._f={ref:{name:e,value:r},value:r}}},[]),ae=r.useCallback((e,r)=>{const t=L(N);return e&&r&&U(t,e,r),!z(t,T.current)},[]),ie=r.useCallback((e,r,t,n=!0)=>{const s={name:e};let u=!1;if(F.current.isDirty){const e=M.current.isDirty;M.current.isDirty=ae(),s.isDirty=M.current.isDirty,u=e!==s.isDirty}if(F.current.dirtyFields&&!t){const t=f(M.current.dirtyFields,e);!z(f(T.current,e),r)?U(M.current.dirtyFields,e,!0):ne(M.current.dirtyFields,e),s.dirtyFields=M.current.dirtyFields,u=u||t!==f(M.current.dirtyFields,e)}const c=f(M.current.touchedFields,e);return t&&!c&&(U(M.current.touchedFields,e,t),s.touchedFields=M.current.touchedFields,u=u||F.current.touchedFields&&c!==t),u&&n&&K.current.state.next(s),u?s:{}},[]),oe=r.useCallback(async(e,r)=>{const t=(await Oe(f(N.current,e),Y,O))[e];return await re(r,e,t),l(t)},[Y]),fe=r.useCallback(async e=>{const{errors:r}=await _.current(L(N),P.current,be(Q.current.mount,N.current,j,O));if(e)for(const t of e){const e=f(r,t);e?U(M.current.errors,t,e):ne(M.current.errors,t)}else M.current.errors=r;return r},[j,O]),de=async(e,r,t={valid:!0})=>{for(const n in e){const s=e[n];if(s){const e=s._f,n=k(s,"_f");if(e){const n=await Oe(s,Y,O);if(r){if(n[e.name]){t.valid=!1;break}}else n[e.name]?U(M.current.errors,e.name,n[e.name]):ne(M.current.errors,e.name)}n&&await de(n,r,t)}}return t.valid},he=r.useCallback(async(e,r={})=>{const t=D(e);let n;if(K.current.state.next({isValidating:!0}),y){const r=await fe(l(e)?e:t);n=e?t.every(e=>!f(r,e)):R(r)}else e?n=(await Promise.all(t.filter(e=>f(N.current,e,{})._f).map(async e=>await oe(e,!0)))).every(Boolean):(await de(N.current),n=R(M.current.errors));return K.current.state.next(Object.assign(Object.assign({},me(e)?{name:e}:{}),{errors:M.current.errors,isValidating:!1})),r.shouldFocus&&!n&&$(N.current,e=>f(M.current.errors,e),e?t:Q.current.mount),F.current.isValid&&pe(),n},[fe,oe]),ve=(e,r,t)=>{const n=f(N.current,e);if(n){const s=l(n._f.value),u=s?l(f(I.current,e))?f(T.current,e):f(I.current,e):n._f.value;l(u)?s&&(n._f.value=ye(n)):r&&r.defaultChecked?n._f.value=ye(n):t?n._f.value=u:te(e,u)}q.current&&F.current.isValid&&pe()},pe=r.useCallback(async(e={})=>{const r=y?R((await _.current(Object.assign(Object.assign({},L(N)),e),P.current,be(Q.current.mount,N.current,j,O))).errors):await de(N.current,!0);r!==M.current.isValid&&(M.current.isValid=r,K.current.state.next({isValid:r}))},[j,O]),xe=r.useCallback((e,r,t)=>Object.entries(r).forEach(([r,s])=>{const u=`${e}.${r}`,c=f(N.current,u);!Q.current.array.has(e)&&H(s)&&(!c||c._f)||n(s)?te(u,s,t,!0,!c):xe(u,s,t)}),[he]),Ae=r.useCallback(async({type:e,target:r,target:{value:n,name:s,type:c}})=>{const i=f(N.current,s);if(i){let b=c?ye(i):void 0;b=l(b)?n:b;const g=e===d,{isOnBlur:m,isOnChange:h}=we(u),v=(o=i._f,!(i._f.mount&&o&&(o.required||o.min||o.max||o.maxLength||o.minLength||o.pattern||o.validate)||y||f(M.current.errors,s))||(({isOnBlur:e,isOnChange:r,isOnTouch:t,isTouched:n,isReValidateOnBlur:s,isReValidateOnChange:u,isBlurEvent:c,isSubmitted:a,isOnAll:i})=>!i&&(!a&&t?!(n||c):(a?s:e)?!c:!(a?u:r)||c))(Object.assign({isBlurEvent:g,isTouched:!!f(M.current.touchedFields,s),isSubmitted:M.current.isSubmitted,isReValidateOnBlur:m,isReValidateOnChange:h},X))),p=!g&&Z(s);l(b)||(i._f.value=b);const x=ie(s,i._f.value,g,!1),w=!R(x)||p;if(v)return!g&&K.current.watch.next({name:s,type:e,values:Ve()}),w&&K.current.state.next(p?{name:s}:Object.assign(Object.assign({},x),{name:s}));K.current.state.next({isValidating:!0}),(async(e,r,n,s)=>{let u,c,i=e.name;const o=f(N.current,i);if(y){const{errors:r}=await _.current(L(N),P.current,be([i],N.current,j,O));if(u=f(r,i),t(e)&&!u){const e=a(i),t=f(r,e,{});t.type&&t.message&&(u=t),(t||f(M.current.errors,e))&&(i=e)}c=R(r)}else u=(await Oe(o,Y,O))[i];!s&&K.current.watch.next({name:i,type:e.type,values:Ve()}),re(!1,i,u,r,c,n)})(r,x,p,g)}var o},[]),Ve=e=>{const r=Object.assign(Object.assign({},T.current),L(N));return l(e)?r:me(e)?f(r,e):e.map(e=>f(r,e))},_e=r.useCallback((e,r,t,n)=>{const s=Array.isArray(e),u=n||q.current?Object.assign(Object.assign({},T.current),n||L(N)):l(r)?T.current:s?r:{[e]:r};if(l(e))return t&&(Q.current.watchAll=!0),u;const c=[];for(const r of D(e))t&&Q.current.watch.add(r),c.push(f(u,r));return s?c:c[0]},[]),Ce=(e,r={})=>{for(const t of e?D(e):Q.current.mount)Q.current.mount.delete(t),Q.current.array.delete(t),f(N.current,t)&&(!r.keepError&&ne(M.current.errors,t),!r.keepValue&&ne(N.current,t),!r.keepDirty&&ne(M.current.dirtyFields,t),!r.keepTouched&&ne(M.current.touchedFields,t),!w&&!r.keepDefaultValue&&ne(T.current,t));K.current.watch.next({values:Ve()}),K.current.state.next(Object.assign(Object.assign({},M.current),r.keepDirty?{isDirty:ae()}:{})),!r.keepIsValid&&pe()},Re=(e,r,n)=>{Se(e,n);let s=f(N.current,e);const u=(e=>ce(e)||t(e))(r);r===s._f.ref||u&&o(s._f.refs||[]).find(e=>e===r)||(s={_f:u?Object.assign(Object.assign({},s._f),{refs:[...o(s._f.refs||[]).filter(e=>je(e)&&document.contains(e)),r],ref:{type:r.type,name:e}}):Object.assign(Object.assign({},s._f),{ref:r})},U(N.current,e,s),ve(e,r))},Se=r.useCallback((e,r={})=>{const t=f(N.current,e);return U(N.current,e,{_f:Object.assign(Object.assign(Object.assign({},t&&t._f?t._f:{ref:{name:e}}),{name:e,mount:!0}),r)}),Q.current.mount.add(e),!t&&ve(e,void 0,!0),Fe?{name:e}:{name:e,onChange:Ae,onBlur:Ae,ref:t=>{if(t)Re(e,t,r);else{const t=f(N.current,e,{}),n=w||r.shouldUnregister;t._f&&(t._f.mount=!1,l(t._f.value)&&(t._f.value=t._f.ref.value)),n&&(!i(Q.current.array,e)||!W.current)&&Q.current.unMount.add(e)}}}},[]),De=r.useCallback((e,r)=>async t=>{t&&(t.preventDefault&&t.preventDefault(),t.persist&&t.persist());let n=!0,s=L(N);K.current.state.next({isSubmitting:!0});try{if(y){const{errors:e,values:r}=await _.current(s,P.current,be(Q.current.mount,N.current,j,O));M.current.errors=e,s=r}else await de(N.current);R(M.current.errors)&&Object.keys(M.current.errors).every(e=>f(s,e))?(K.current.state.next({errors:{},isSubmitting:!0}),await e(s,t)):(r&&await r(M.current.errors,t),p&&$(N.current,e=>f(M.current.errors,e),Q.current.mount))}catch(e){throw n=!1,e}finally{M.current.isSubmitted=!0,K.current.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:R(M.current.errors)&&n,submitCount:M.current.submitCount+1,errors:M.current.errors})}},[p,Y,j,O]),Ee=(e,r="")=>{for(const t in e){const n=e[t],s=r+(r?".":"")+t,u=f(N.current,s);u&&u._f||(c(n)||Array.isArray(n)?Ee(n,s):u||Se(s,{value:n}))}};return r.useEffect(()=>{const e=K.current.state.subscribe({next(e){S(e,F.current,!0)&&(M.current=Object.assign(Object.assign({},M.current),e),V(M.current))}}),r=K.current.array.subscribe({next(e){if(e.values&&e.name&&F.current.isValid){const r=L(N);U(r,e.name,e.values),pe(r)}}});return()=>{e.unsubscribe(),r.unsubscribe()}},[]),r.useEffect(()=>{const e=[],r=e=>!je(e)||!document.contains(e);q.current||(q.current=!0,F.current.isValid&&pe(),!w&&Ee(T.current));for(const t of Q.current.unMount){const n=f(N.current,t);n&&(n._f.refs?n._f.refs.every(r):r(n._f.ref))&&e.push(t)}e.length&&Ce(e),Q.current.unMount=new Set}),{control:r.useMemo(()=>({register:Se,inFieldArrayActionRef:W,getIsDirty:ae,subjectsRef:K,watchInternal:_e,fieldsRef:N,updateIsValid:pe,namesRef:Q,readFormStateRef:F,formStateRef:M,defaultValuesRef:T,fieldArrayDefaultValuesRef:I,setValues:xe,unregister:Ce,shouldUnmount:w}),[]),formState:C(B,A,F),trigger:he,register:Se,handleSubmit:De,watch:r.useCallback((e,r)=>ge(e)?K.current.watch.subscribe({next:t=>e(_e(void 0,r),t)}):_e(e,r,!0),[]),setValue:r.useCallback((e,r,t={})=>{const n=f(N.current,e),u=Q.current.array.has(e);u&&(K.current.array.next({values:r,name:e,isReset:!0}),(F.current.isDirty||F.current.dirtyFields)&&t.shouldDirty&&(U(M.current.dirtyFields,e,J(r,f(T.current,e,[]),f(M.current.dirtyFields,e,[]))),K.current.state.next({name:e,dirtyFields:M.current.dirtyFields,isDirty:ae(e,r)})),!r.length&&U(N.current,e,[])&&U(I.current,e,[])),(n&&!n._f||u)&&!s(r)?xe(e,r,u?{}:t):te(e,r,t,!0,!n),Z(e)&&K.current.state.next({}),K.current.watch.next({name:e,values:Ve()})},[xe]),getValues:r.useCallback(Ve,[]),reset:r.useCallback((e,r={})=>{const t=e||T.current;if(E&&!r.keepValues)for(const e of Q.current.mount){const r=f(N.current,e);if(r&&r._f){const e=Array.isArray(r._f.refs)?r._f.refs[0]:r._f.ref;try{je(e)&&e.closest("form").reset();break}catch(e){}}}r.keepDefaultValues||(T.current=Object.assign({},t),I.current=Object.assign({},t)),r.keepValues||(N.current={},K.current.control.next({values:r.keepDefaultValues?T.current:Object.assign({},t)}),K.current.watch.next({values:Object.assign({},t)}),K.current.array.next({values:Object.assign({},t),isReset:!0})),Q.current={mount:new Set,unMount:new Set,array:new Set,watch:new Set,watchAll:!1},K.current.state.next({submitCount:r.keepSubmitCount?M.current.submitCount:0,isDirty:r.keepDirty?M.current.isDirty:!!r.keepDefaultValues&&z(e,T.current),isSubmitted:!!r.keepIsSubmitted&&M.current.isSubmitted,dirtyFields:r.keepDirty?M.current.dirtyFields:{},touchedFields:r.keepTouched?M.current.touchedFields:{},errors:r.keepErrors?M.current.errors:{},isSubmitting:!1,isSubmitSuccessful:!1}),q.current=!!r.keepIsValid},[]),clearErrors:r.useCallback(e=>{e?D(e).forEach(e=>ne(M.current.errors,e)):M.current.errors={},K.current.state.next({errors:M.current.errors})},[]),unregister:r.useCallback(Ce,[]),setError:r.useCallback((e,r,t)=>{const n=((f(N.current,e)||{_f:{}})._f||{}).ref;U(M.current.errors,e,Object.assign(Object.assign({},r),{ref:n})),K.current.state.next({name:e,errors:M.current.errors,isValid:!1}),t&&t.shouldFocus&&n&&n.focus&&n.focus()},[]),setFocus:r.useCallback(e=>f(N.current,e)._f.ref.focus(),[])}},exports.useFormContext=_,exports.useFormState=M,exports.useWatch=function(e){const{control:t,name:n,defaultValue:s}=e||{},u=_(),c=r.useRef(n);c.current=n;const{watchInternal:a,subjectsRef:i}=t||u.control,[o,f]=r.useState(l(s)?a(n):s);return r.useEffect(()=>{a(n);const e=i.current.watch.subscribe({next:({name:e,values:r})=>(!c.current||!e||D(c.current).some(r=>e&&r&&(r.startsWith(e)||e.startsWith(r))))&&f(a(c.current,s,!1,r))});return()=>e.unsubscribe()},[]),o};
1
+ "use strict";function e(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}Object.defineProperty(exports,"__esModule",{value:!0});var r=e(require("react")),t=e=>"checkbox"===e.type,n=e=>e instanceof Date,s=e=>null==e;const u=e=>"object"==typeof e;var c=e=>!s(e)&&!Array.isArray(e)&&u(e)&&!n(e),a=e=>e.substring(0,e.search(/.\d/))||e,i=(e,r)=>[...e].some(e=>a(r)===e),o=e=>e.filter(Boolean),l=e=>void 0===e,f=(e,r,t)=>{if(c(e)&&r){const n=o(r.split(/[,[\].]+?/)).reduce((e,r)=>s(e)?e:e[r],e);return l(n)||n===e?l(e[r])?t:e[r]:n}};const d="blur",y="change",b="onBlur",g="onChange",m="onSubmit",h="onTouched",v="all",p="max",x="min",O="maxLength",w="minLength",j="pattern",V="required",A="validate";var k=(e,r)=>{const t=Object.assign({},e);return delete t[r],t};const F=r.createContext(null);F.displayName="RHFContext";const _=()=>r.useContext(F);var C=(e,r,t,n,s=!0)=>e?new Proxy(r,{get:(e,r)=>{if(r in e)return t.current[r]!==v&&(t.current[r]=!s||v),n&&(n.current[r]=!0),e[r]}}):r,R=e=>c(e)&&!Object.keys(e).length,S=(e,r,t)=>{const n=k(e,"name");return R(n)||Object.keys(n).length>=Object.keys(r).length||Object.keys(n).find(e=>r[e]===(!t||v))},D=e=>Array.isArray(e)?e:[e],E="undefined"!=typeof window&&void 0!==window.HTMLElement&&"undefined"!=typeof document;const B=E?"Proxy"in window:"undefined"!=typeof Proxy;function M(e){const{control:t,name:n}=e||{},s=_(),{formStateRef:u,subjectsRef:c,readFormStateRef:a}=t||s.control,i=r.useRef(n);i.current=n;const[o,l]=r.useState(u.current),f=r.useRef({isDirty:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1});return r.useEffect(()=>{const e=c.current.state.subscribe({next:e=>(!i.current||!e.name||D(i.current).includes(e.name))&&S(e,f.current)&&l(Object.assign(Object.assign({},u.current),e))});return()=>e.unsubscribe()},[]),C(B,o,a,f,!1)}function N({name:e,rules:n,defaultValue:s,control:u,shouldUnregister:a}){const o=_(),{defaultValuesRef:b,register:g,fieldsRef:m,unregister:h,namesRef:v,subjectsRef:p,shouldUnmount:x,inFieldArrayActionRef:O}=u||o.control,w=f(m.current,e),[j,V]=r.useState(w&&w._f&&!l(w._f.value)?w._f.value:l(f(b.current,e))?s:f(b.current,e)),{onChange:A,onBlur:k,ref:F}=g(e,Object.assign(Object.assign({},n),{value:j})),C=M({control:u||o.control,name:e});function R(e,r){const t=f(m.current,e);t&&t._f&&(t._f.mount=r)}return r.useEffect(()=>{const r=p.current.control.subscribe({next:r=>(!r.name||e===r.name)&&V(f(r.values,e))});return R(e,!0),()=>{r.unsubscribe();const t=x||a;(i(v.current.array,e)?t&&!O.current:t)?h(e):R(e,!1)}},[e]),{field:{onChange:r=>{const n=(e=>c(e)&&e.target?t(e.target)?e.target.checked:e.target.value:e)(r);V(n),A({target:{value:n,name:e},type:y})},onBlur:()=>{k({target:{name:e},type:d})},name:e,value:j,ref:e=>e&&F({focus:()=>e.focus&&e.focus(),setCustomValidity:r=>e.setCustomValidity(r),reportValidity:()=>e.reportValidity()})},formState:C,fieldState:{invalid:!!f(C.errors,e),isDirty:!!f(C.dirtyFields,e),isTouched:!!f(C.touchedFields,e),error:f(C.errors,e)}}}var T=(e,r,t,n,s)=>r?Object.assign(Object.assign({},t[e]),{types:Object.assign(Object.assign({},t[e]&&t[e].types?t[e].types:{}),{[n]:s||!0})}):{},I=e=>/^\w*$/.test(e),P=e=>o(e.replace(/["|']|\]/g,"").split(/\.|\[/));function U(e,r,t){let n=-1;const s=I(r)?[r]:P(r),u=s.length,a=u-1;for(;++n<u;){const r=s[n];let u=t;if(n!==a){const t=e[r];u=c(t)||Array.isArray(t)?t:isNaN(+s[n+1])?{}:[]}e[r]=u,e=e[r]}return e}const $=(e,r,t)=>{for(const n of t||Object.keys(e)){const t=f(e,n);if(t){const e=t._f,n=k(t,"_f");if(e&&r(e.name)){if(e.ref.focus&&l(e.ref.focus()))break;if(e.refs){e.refs[0].focus();break}}else c(n)&&$(n,r)}}},L=(e,r={})=>{for(const t in e.current){const n=e.current[t];if(n&&!s(r)){const e=n._f,s=k(n,"_f");U(r,t,e&&e.ref?e.ref.disabled||e.refs&&e.refs.every(e=>e.disabled)?void 0:e.value:Array.isArray(n)?[]:{}),s&&L({current:s},r[t])}}return r};var W=()=>{const e="undefined"==typeof performance?Date.now():1e3*performance.now();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,r=>{const t=(16*Math.random()+e)%16|0;return("x"==r?t:3&t|8).toString(16)})},q=(e=[],r)=>e.map(e=>Object.assign({[r]:e&&e[r]||W()},e)),H=e=>s(e)||!u(e);function z(e,r){if(H(e)||H(r)||n(e)||n(r))return e===r;const t=Object.keys(e),s=Object.keys(r);if(t.length!==s.length)return!1;for(const n of t){const t=e[n];if(!s.includes(n))return!1;if("ref"!==n){const e=r[n];if((c(t)||Array.isArray(t))&&(c(e)||Array.isArray(e))?!z(t,e):t!==e)return!1}}return!0}function G(e,r,t,n,u){let c=-1;for(;++c<e.length;){for(const n in e[c])Array.isArray(e[c][n])?(!t[c]&&(t[c]={}),t[c][n]=[],G(e[c][n],f(r[c]||{},n,[]),t[c][n],t[c],n)):!s(r)&&z(f(r[c]||{},n),e[c][n])?U(t[c]||{},n):t[c]=Object.assign(Object.assign({},t[c]),{[n]:!0});n&&!t.length&&delete n[u]}return t}var J=(e,r,t)=>function e(r,t){if(H(r)||H(t))return t;for(const n in t){const s=r[n],u=t[n];try{r[n]=c(s)&&c(u)||Array.isArray(s)&&Array.isArray(u)?e(s,u):u}catch(e){}}return r}(G(e,r,t.slice(0,e.length)),G(r,e,t.slice(0,e.length)));function K(e,r){return[...D(e),...D(r)]}var Q=e=>Array.isArray(e)?Array(e.length).fill(void 0):void 0;function X(e,r,t){return[...e.slice(0,r),...D(t),...e.slice(r)]}var Y=(e,r,t)=>Array.isArray(e)?(l(e[t])&&(e[t]=void 0),e.splice(t,0,e.splice(r,1)[0]),e):[];function Z(e,r){return[...D(r),...D(e)]}var ee=(e,r)=>l(r)?[]:function(e,r){let t=0;const n=[...e];for(const e of r)n.splice(e-t,1),t++;return o(n).length?n:[]}(e,D(r).sort((e,r)=>e-r)),re=(e,r,t)=>{e[r]=[e[t],e[t]=e[r]][0]},te=e=>"boolean"==typeof e;function ne(e,r){const t=I(r)?[r]:P(r),n=1==t.length?e:function(e,r){const t=r.slice(0,-1).length;let n=0;for(;n<t;)e=l(e)?n++:e[r[n++]];return e}(e,t),s=t[t.length-1];let u;n&&delete n[s];for(let r=0;r<t.slice(0,-1).length;r++){let n,s=-1;const a=t.slice(0,-(r+1)),i=a.length-1;for(r>0&&(u=e);++s<a.length;){const r=a[s];n=n?n[r]:e[r],i===s&&(c(n)&&R(n)||Array.isArray(n)&&!n.filter(e=>c(e)&&!R(e)||te(e)).length)&&(u?delete u[r]:delete e[r]),u=n}}return e}var se=e=>"file"===e.type,ue=e=>"select-multiple"===e.type,ce=e=>"radio"===e.type;const ae={value:!1,isValid:!1},ie={value:!0,isValid:!0};var oe=e=>{if(Array.isArray(e)){if(e.length>1){const r=e.filter(e=>e&&e.checked&&!e.disabled).map(e=>e.value);return{value:r,isValid:!!r.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!l(e[0].attributes.value)?l(e[0].value)||""===e[0].value?ie:{value:e[0].value,isValid:!0}:ie:ae}return ae},le=(e,{valueAsNumber:r,valueAsDate:t,setValueAs:n})=>l(e)?e:r?""===e?NaN:+e:t?new Date(e):n?n(e):e;const fe={isValid:!1,value:null};var de=e=>Array.isArray(e)?e.reduce((e,r)=>r&&r.checked&&!r.disabled?{isValid:!0,value:r.value}:e,fe):fe;function ye(e){if(e&&e._f){const n=e._f.ref;if(n.disabled)return;return se(n)?n.files:ce(n)?de(e._f.refs).value:ue(n)?(r=n.options,[...r].filter(({selected:e})=>e).map(({value:e})=>e)):t(n)?oe(e._f.refs).value:le(l(n.value)?e._f.ref.value:n.value,e._f)}var r}var be=(e,r,t,n)=>{const s={};for(const t of e){const e=f(r,t);e&&U(s,t,e._f)}return{criteriaMode:t,names:[...e],fields:s,shouldUseNativeValidation:n}},ge=e=>"function"==typeof e,me=e=>"string"==typeof e,he=e=>me(e)||r.isValidElement(e),ve=e=>e instanceof RegExp;function pe(e,r,t="validate"){if(he(e)||Array.isArray(e)&&e.every(he)||te(e)&&!e)return{type:t,message:he(e)?e:"",ref:r}}var xe=e=>c(e)&&!ve(e)?e:{value:e,message:""},Oe=async({_f:{ref:e,refs:r,required:n,maxLength:u,minLength:a,min:i,max:o,pattern:l,validate:f,name:d,value:y,valueAsNumber:b,mount:g}},m,h)=>{if(!g)return{};const v=r?r[0]:e,k=e=>{h&&v.reportValidity&&(v.setCustomValidity(te(e)?"":e||" "),v.reportValidity())},F={},_=ce(e),C=t(e),S=_||C,D=(b||se(e))&&!e.value||""===y||Array.isArray(y)&&!y.length,E=T.bind(null,d,m,F),B=(r,t,n,s=O,u=w)=>{const c=r?t:n;F[d]=Object.assign({type:r?s:u,message:c,ref:e},E(r?s:u,c))};if(n&&(!S&&(D||s(y))||te(y)&&!y||C&&!oe(r).isValid||_&&!de(r).isValid)){const{value:e,message:r}=he(n)?{value:!!n,message:n}:xe(n);if(e&&(F[d]=Object.assign({type:V,message:r,ref:v},E(V,r)),!m))return k(r),F}if(!(D||s(i)&&s(o))){let r,t;const n=xe(o),u=xe(i);if(isNaN(y)){const s=e.valueAsDate||new Date(y);me(n.value)&&(r=s>new Date(n.value)),me(u.value)&&(t=s<new Date(u.value))}else{const c=e.valueAsNumber||parseFloat(y);s(n.value)||(r=c>n.value),s(u.value)||(t=c<u.value)}if((r||t)&&(B(!!r,n.message,u.message,p,x),!m))return k(F[d].message),F}if((u||a)&&!D&&me(y)){const e=xe(u),r=xe(a),t=!s(e.value)&&y.length>e.value,n=!s(r.value)&&y.length<r.value;if((t||n)&&(B(t,e.message,r.message),!m))return k(F[d].message),F}if(l&&!D&&me(y)){const{value:r,message:t}=xe(l);if(ve(r)&&!y.match(r)&&(F[d]=Object.assign({type:j,message:t,ref:e},E(j,t)),!m))return k(t),F}if(f)if(ge(f)){const e=pe(await f(y),v);if(e&&(F[d]=Object.assign(Object.assign({},e),E(A,e.message)),!m))return k(e.message),F}else if(c(f)){let e={};for(const r in f){if(!R(e)&&!m)break;const t=pe(await f[r](y),v,r);t&&(e=Object.assign(Object.assign({},t),E(r,t.message)),k(t.message),m&&(F[d]=e))}if(!R(e)&&(F[d]=Object.assign({ref:v},e),!m))return F}return k(!0),F},we=e=>({isOnSubmit:!e||e===m,isOnBlur:e===b,isOnChange:e===g,isOnAll:e===v,isOnTouch:e===h}),je=e=>e instanceof HTMLElement;class Ve{constructor(){this.tearDowns=[]}add(e){this.tearDowns.push(e)}unsubscribe(){for(const e of this.tearDowns)e();this.tearDowns=[]}}class Ae{constructor(e,r){this.observer=e,this.closed=!1,r.add(()=>this.closed=!0)}next(e){this.closed||this.observer.next(e)}}class ke{constructor(){this.observers=[]}next(e){for(const r of this.observers)r.next(e)}subscribe(e){const r=new Ve,t=new Ae(e,r);return this.observers.push(t),r}unsubscribe(){this.observers=[]}}const Fe="undefined"==typeof window;exports.Controller=e=>e.render(N(e)),exports.FormProvider=e=>r.createElement(F.Provider,{value:k(e,"children")},e.children),exports.appendErrors=T,exports.get=f,exports.set=U,exports.useController=N,exports.useFieldArray=({control:e,name:t,keyName:n="id",shouldUnregister:s})=>{const u=_(),c=r.useRef(""),i=r.useRef(!1),{getIsDirty:l,namesRef:d,fieldsRef:y,defaultValuesRef:b,formStateRef:g,subjectsRef:m,readFormStateRef:h,updateIsValid:v,fieldArrayDefaultValuesRef:p,unregister:x,shouldUnmount:O,inFieldArrayActionRef:w,setValues:j,register:V}=e||u.control,[A,F]=r.useState(q((f(y.current,t)&&i.current?f(L(y),t):f(p.current,a(t))?f(p.current,t):f(b.current,t))||[],n));U(p.current,t,[...A]),d.current.array.add(t);const C=e=>e.map((e={})=>k(e,n)),R=()=>{const e=f(L(y),t,[]);return q(f(p.current,t,[]).map((r,t)=>Object.assign(Object.assign({},r),e[t])),n)},S=(e,r)=>r&&!r.shouldFocus?r.focusName||`${t}.${r.focusIndex}.`:`${t}.${e}.`,E=(e=[])=>F(q(e,n)),B=e=>!o(f(e,t,[])).length&&ne(e,t),M=(e,r,n=[],s=!0)=>{if(w.current=!0,f(y.current,t)){const n=e(f(y.current,t),r.argA,r.argB);s&&U(y.current,t,n)}if(Array.isArray(f(g.current.errors,t))){const n=e(f(g.current.errors,t),r.argA,r.argB);s&&U(g.current.errors,t,n),B(g.current.errors)}if(h.current.touchedFields&&f(g.current.touchedFields,t)){const n=e(f(g.current.touchedFields,t),r.argA,r.argB);s&&U(g.current.touchedFields,t,n),B(g.current.touchedFields)}(h.current.dirtyFields||h.current.isDirty)&&(U(g.current.dirtyFields,t,J(C(n),f(b.current,t,[]),f(g.current.dirtyFields,t,[]))),n&&U(g.current.dirtyFields,t,J(C(n),f(b.current,t,[]),f(g.current.dirtyFields,t,[]))),B(g.current.dirtyFields)),m.current.state.next({dirtyFields:g.current.dirtyFields,isDirty:l(t,C(n)),errors:g.current.errors,isValid:g.current.isValid})},N=(e,r=0,n="")=>e.forEach((e,s)=>{const u=`${n||t}.${n?s:r+s}`;H(e)?V(u,{value:e}):Object.entries(e).forEach(([e,r])=>{const t=u+"."+e;Array.isArray(r)?N(r,s,t):V(t,{value:r})})});return r.useEffect(()=>{if(w.current=!1,d.current.watchAll)m.current.state.next({});else for(const e of d.current.watch)if(t.startsWith(e)){m.current.state.next({});break}m.current.watch.next({name:t,values:L(y)}),c.current&&$(y.current,e=>e.startsWith(c.current)),c.current="",m.current.array.next({name:t,values:C([...A])}),h.current.isValid&&v()},[A,t]),r.useEffect(()=>{const e=m.current.array.subscribe({next({name:e,values:r,isReset:n}){n&&(ne(y.current,e||t),e?U(p.current,e,r):p.current=r,E(f(p.current,t)))}});return!f(y.current,t)&&U(y.current,t,[]),i.current=!0,()=>{if(e.unsubscribe(),O||s)x(t),ne(p.current,t);else{const e=f(L(y),t);e&&U(p.current,t,e)}}},[]),{swap:r.useCallback((e,r)=>{const t=R();re(t,e,r),M(re,{argA:e,argB:r},t,!1),E(t)},[t]),move:r.useCallback((e,r)=>{const t=R();Y(t,e,r),E(t),M(Y,{argA:e,argB:r},t,!1)},[t]),prepend:r.useCallback((e,r)=>{const t=D(e),n=Z(R(),t);E(n),M(Z,{argA:Q(e)},n),N(t),c.current=S(0,r)},[t]),append:r.useCallback((e,r)=>{const t=D(e),n=K(R(),t),s=n.length-t.length;E(n),M(K,{argA:Q(e)},n,!1),N(t,s),c.current=S(s,r)},[t]),remove:r.useCallback(e=>{const r=ee(R(),e);E(r),M(ee,{argA:e},r)},[t]),insert:r.useCallback((e,r,t)=>{const n=D(r),s=X(R(),e,n);E(s),M(X,{argA:e,argB:Q(r)},s),N(n,e),c.current=S(e,t)},[t]),update:r.useCallback((e,r)=>{j(t+"."+e,r,{shouldValidate:!!h.current.isValid,shouldDirty:!(!h.current.dirtyFields&&!h.current.isDirty)});const n=R();n[e]=r,E(n)},[t]),fields:A}},exports.useForm=function({mode:e=m,reValidateMode:u=g,resolver:y,context:b,defaultValues:h={},shouldFocusError:p=!0,delayError:x,shouldUseNativeValidation:O,shouldUnregister:w,criteriaMode:j}={}){const[V,A]=r.useState({isDirty:!1,isValidating:!1,dirtyFields:{},isSubmitted:!1,submitCount:0,touchedFields:{},isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,errors:{}}),F=r.useRef({isDirty:!B,dirtyFields:!B,touchedFields:!B,isValidating:!B,isValid:!B,errors:!B}),_=r.useRef(y),M=r.useRef(V),N=r.useRef({}),T=r.useRef(h),I=r.useRef({}),P=r.useRef(b),W=r.useRef(!1),q=r.useRef(!1),G=r.useRef(),K=r.useRef({watch:new ke,control:new ke,array:new ke,state:new ke}),Q=r.useRef({mount:new Set,unMount:new Set,array:new Set,watch:new Set,watchAll:!1}),X=we(e),Y=j===v;_.current=y,P.current=b;const Z=e=>Q.current.watchAll||Q.current.watch.has(e)||Q.current.watch.has((e.match(/\w+/)||[])[0]),ee=(e,r)=>{U(M.current.errors,e,r),K.current.state.next({errors:M.current.errors})},re=r.useCallback(async(e,r,t,n,s,u)=>{const c=f(M.current.errors,r),a=!!F.current.isValid&&(y?s:(async()=>{const e=await de(N.current,!0);e!==M.current.isValid&&(M.current.isValid=e,K.current.state.next({isValid:e}))})());if(x&&t?(G.current=G.current||((e,r)=>{let t=0;return(...n)=>{clearTimeout(t),t=setTimeout(()=>e(...n),r)}})(ee,x),G.current(r,t)):t?U(M.current.errors,r,t):ne(M.current.errors,r),(u||(t?!z(c,t):c)||!R(n)||M.current.isValid!==a)&&!e){const e=Object.assign(Object.assign(Object.assign({},n),y?{isValid:!!a}:{}),{errors:M.current.errors,name:r});M.current=Object.assign(Object.assign({},M.current),e),K.current.state.next(u?{name:r}:e)}K.current.state.next({isValidating:!1})},[]),te=r.useCallback((e,r,n={},u,c)=>{c&&Se(e);const a=f(N.current,e);if(a){const c=a._f;if(c){const a=E&&je(c.ref)&&s(r)?"":r;if(c.value=le(r,c),ce(c.ref)?(c.refs||[]).forEach(e=>e.checked=e.value===a):se(c.ref)&&!me(a)?c.ref.files=a:ue(c.ref)?[...c.ref.options].forEach(e=>e.selected=a.includes(e.value)):t(c.ref)&&c.refs?c.refs.length>1?c.refs.forEach(e=>e.checked=Array.isArray(a)?!!a.find(r=>r===e.value):a===e.value):c.refs[0].checked=!!a:c.ref.value=a,u){const t=L(N);U(t,e,r),K.current.control.next({values:Object.assign(Object.assign({},T.current),t),name:e})}(n.shouldDirty||n.shouldTouch)&&ie(e,a,n.shouldTouch),n.shouldValidate&&he(e)}else a._f={ref:{name:e,value:r},value:r}}},[]),ae=r.useCallback((e,r)=>{const t=L(N);return e&&r&&U(t,e,r),!z(t,T.current)},[]),ie=r.useCallback((e,r,t,n=!0)=>{const s={name:e};let u=!1;if(F.current.isDirty){const e=M.current.isDirty;M.current.isDirty=ae(),s.isDirty=M.current.isDirty,u=e!==s.isDirty}if(F.current.dirtyFields&&!t){const t=f(M.current.dirtyFields,e);!z(f(T.current,e),r)?U(M.current.dirtyFields,e,!0):ne(M.current.dirtyFields,e),s.dirtyFields=M.current.dirtyFields,u=u||t!==f(M.current.dirtyFields,e)}const c=f(M.current.touchedFields,e);return t&&!c&&(U(M.current.touchedFields,e,t),s.touchedFields=M.current.touchedFields,u=u||F.current.touchedFields&&c!==t),u&&n&&K.current.state.next(s),u?s:{}},[]),oe=r.useCallback(async(e,r)=>{const t=(await Oe(f(N.current,e),Y,O))[e];return await re(r,e,t),l(t)},[Y]),fe=r.useCallback(async e=>{const{errors:r}=await _.current(L(N),P.current,be(Q.current.mount,N.current,j,O));if(e)for(const t of e){const e=f(r,t);e?U(M.current.errors,t,e):ne(M.current.errors,t)}else M.current.errors=r;return r},[j,O]),de=async(e,r,t={valid:!0})=>{for(const n in e){const s=e[n];if(s){const e=s._f,n=k(s,"_f");if(e){const n=await Oe(s,Y,O);if(r){if(n[e.name]){t.valid=!1;break}}else n[e.name]?U(M.current.errors,e.name,n[e.name]):ne(M.current.errors,e.name)}n&&await de(n,r,t)}}return t.valid},he=r.useCallback(async(e,r={})=>{const t=D(e);let n;if(K.current.state.next({isValidating:!0}),y){const r=await fe(l(e)?e:t);n=e?t.every(e=>!f(r,e)):R(r)}else e?n=(await Promise.all(t.filter(e=>f(N.current,e,{})._f).map(async e=>await oe(e,!0)))).every(Boolean):(await de(N.current),n=R(M.current.errors));return K.current.state.next(Object.assign(Object.assign({},me(e)?{name:e}:{}),{errors:M.current.errors,isValidating:!1})),r.shouldFocus&&!n&&$(N.current,e=>f(M.current.errors,e),e?t:Q.current.mount),F.current.isValid&&pe(),n},[fe,oe]),ve=(e,r,t)=>{const n=f(N.current,e);if(n){const s=l(n._f.value),u=s?l(f(I.current,e))?f(T.current,e):f(I.current,e):n._f.value;l(u)?s&&(n._f.value=ye(n)):r&&r.defaultChecked?n._f.value=ye(n):t?n._f.value=u:te(e,u)}q.current&&F.current.isValid&&pe()},pe=r.useCallback(async(e={})=>{const r=y?R((await _.current(Object.assign(Object.assign({},L(N)),e),P.current,be(Q.current.mount,N.current,j,O))).errors):await de(N.current,!0);r!==M.current.isValid&&(M.current.isValid=r,K.current.state.next({isValid:r}))},[j,O]),xe=r.useCallback((e,r,t)=>Object.entries(r).forEach(([r,s])=>{const u=`${e}.${r}`,c=f(N.current,u);!Q.current.array.has(e)&&H(s)&&(!c||c._f)||n(s)?te(u,s,t,!0,!c):xe(u,s,t)}),[he]),Ve=r.useCallback(async({type:e,target:r,target:{value:n,name:s,type:c}})=>{const i=f(N.current,s);if(i){let b=c?ye(i):void 0;b=l(b)?n:b;const g=e===d,{isOnBlur:m,isOnChange:h}=we(u),v=(o=i._f,!(i._f.mount&&o&&(o.required||o.min||o.max||o.maxLength||o.minLength||o.pattern||o.validate)||y||f(M.current.errors,s))||(({isOnBlur:e,isOnChange:r,isOnTouch:t,isTouched:n,isReValidateOnBlur:s,isReValidateOnChange:u,isBlurEvent:c,isSubmitted:a,isOnAll:i})=>!i&&(!a&&t?!(n||c):(a?s:e)?!c:!(a?u:r)||c))(Object.assign({isBlurEvent:g,isTouched:!!f(M.current.touchedFields,s),isSubmitted:M.current.isSubmitted,isReValidateOnBlur:m,isReValidateOnChange:h},X))),p=!g&&Z(s);l(b)||(i._f.value=b);const x=ie(s,i._f.value,g,!1),w=!R(x)||p;if(v)return!g&&K.current.watch.next({name:s,type:e,values:Ae()}),w&&K.current.state.next(p?{name:s}:Object.assign(Object.assign({},x),{name:s}));K.current.state.next({isValidating:!0}),(async(e,r,n,s)=>{let u,c,i=e.name;const o=f(N.current,i);if(y){const{errors:r}=await _.current(L(N),P.current,be([i],N.current,j,O));if(u=f(r,i),t(e)&&!u){const e=a(i),t=f(r,e,{});t.type&&t.message&&(u=t),(t||f(M.current.errors,e))&&(i=e)}c=R(r)}else u=(await Oe(o,Y,O))[i];!s&&K.current.watch.next({name:i,type:e.type,values:Ae()}),re(!1,i,u,r,c,n)})(r,x,p,g)}var o},[]),Ae=e=>{const r=Object.assign(Object.assign({},T.current),L(N));return l(e)?r:me(e)?f(r,e):e.map(e=>f(r,e))},_e=r.useCallback((e,r,t,n)=>{const s=Array.isArray(e),u=n||q.current?Object.assign(Object.assign({},T.current),n||L(N)):l(r)?T.current:s?r:{[e]:r};if(l(e))return t&&(Q.current.watchAll=!0),u;const c=[];for(const r of D(e))t&&Q.current.watch.add(r),c.push(f(u,r));return s?c:c[0]},[]),Ce=(e,r={})=>{for(const t of e?D(e):Q.current.mount)Q.current.mount.delete(t),Q.current.array.delete(t),f(N.current,t)&&(!r.keepError&&ne(M.current.errors,t),!r.keepValue&&ne(N.current,t),!r.keepDirty&&ne(M.current.dirtyFields,t),!r.keepTouched&&ne(M.current.touchedFields,t),!w&&!r.keepDefaultValue&&ne(T.current,t));K.current.watch.next({values:Ae()}),K.current.state.next(Object.assign(Object.assign({},M.current),r.keepDirty?{isDirty:ae()}:{})),!r.keepIsValid&&pe()},Re=(e,r,n)=>{Se(e,n);let s=f(N.current,e);const u=(e=>ce(e)||t(e))(r);r===s._f.ref||u&&o(s._f.refs||[]).find(e=>e===r)||(s={_f:u?Object.assign(Object.assign({},s._f),{refs:[...o(s._f.refs||[]).filter(e=>je(e)&&document.contains(e)),r],ref:{type:r.type,name:e}}):Object.assign(Object.assign({},s._f),{ref:r})},U(N.current,e,s),ve(e,r))},Se=r.useCallback((e,r={})=>{const t=f(N.current,e);return U(N.current,e,{_f:Object.assign(Object.assign(Object.assign({},t&&t._f?t._f:{ref:{name:e}}),{name:e,mount:!0}),r)}),Q.current.mount.add(e),!t&&ve(e,void 0,!0),Fe?{name:e}:{name:e,onChange:Ve,onBlur:Ve,ref:t=>{if(t)Re(e,t,r);else{const t=f(N.current,e,{}),n=w||r.shouldUnregister;t._f&&(t._f.mount=!1,l(t._f.value)&&(t._f.value=t._f.ref.value)),n&&(!i(Q.current.array,e)||!W.current)&&Q.current.unMount.add(e)}}}},[]),De=r.useCallback((e,r)=>async t=>{t&&(t.preventDefault&&t.preventDefault(),t.persist&&t.persist());let n=!0,s=L(N);K.current.state.next({isSubmitting:!0});try{if(y){const{errors:e,values:r}=await _.current(s,P.current,be(Q.current.mount,N.current,j,O));M.current.errors=e,s=r}else await de(N.current);R(M.current.errors)&&Object.keys(M.current.errors).every(e=>f(s,e))?(K.current.state.next({errors:{},isSubmitting:!0}),await e(s,t)):(r&&await r(M.current.errors,t),p&&$(N.current,e=>f(M.current.errors,e),Q.current.mount))}catch(e){throw n=!1,e}finally{M.current.isSubmitted=!0,K.current.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:R(M.current.errors)&&n,submitCount:M.current.submitCount+1,errors:M.current.errors})}},[p,Y,j,O]),Ee=(e,r="")=>{for(const t in e){const n=e[t],s=r+(r?".":"")+t,u=f(N.current,s);u&&u._f||(c(n)||Array.isArray(n)?Ee(n,s):u||Se(s,{value:n}))}};return r.useEffect(()=>{const e=K.current.state.subscribe({next(e){S(e,F.current,!0)&&(M.current=Object.assign(Object.assign({},M.current),e),A(M.current))}}),r=K.current.array.subscribe({next(e){if(e.values&&e.name&&F.current.isValid){const r=L(N);U(r,e.name,e.values),pe(r)}}});return()=>{e.unsubscribe(),r.unsubscribe()}},[]),r.useEffect(()=>{const e=[],r=e=>!je(e)||!document.contains(e);q.current||(q.current=!0,F.current.isValid&&pe(),!w&&Ee(T.current));for(const t of Q.current.unMount){const n=f(N.current,t);n&&(n._f.refs?n._f.refs.every(r):r(n._f.ref))&&e.push(t)}e.length&&Ce(e),Q.current.unMount=new Set}),{control:r.useMemo(()=>({register:Se,inFieldArrayActionRef:W,getIsDirty:ae,subjectsRef:K,watchInternal:_e,fieldsRef:N,updateIsValid:pe,namesRef:Q,readFormStateRef:F,formStateRef:M,defaultValuesRef:T,fieldArrayDefaultValuesRef:I,setValues:xe,unregister:Ce,shouldUnmount:w}),[]),formState:C(B,V,F),trigger:he,register:Se,handleSubmit:De,watch:r.useCallback((e,r)=>ge(e)?K.current.watch.subscribe({next:t=>e(_e(void 0,r),t)}):_e(e,r,!0),[]),setValue:r.useCallback((e,r,t={})=>{const n=f(N.current,e),u=Q.current.array.has(e);u&&(K.current.array.next({values:r,name:e,isReset:!0}),(F.current.isDirty||F.current.dirtyFields)&&t.shouldDirty&&(U(M.current.dirtyFields,e,J(r,f(T.current,e,[]),f(M.current.dirtyFields,e,[]))),K.current.state.next({name:e,dirtyFields:M.current.dirtyFields,isDirty:ae(e,r)})),!r.length&&U(N.current,e,[])&&U(I.current,e,[])),(n&&!n._f||u)&&!s(r)?xe(e,r,u?{}:t):te(e,r,t,!0,!n),Z(e)&&K.current.state.next({}),K.current.watch.next({name:e,values:Ae()})},[xe]),getValues:r.useCallback(Ae,[]),reset:r.useCallback((e,r={})=>{const t=e||T.current;if(E&&!r.keepValues)for(const e of Q.current.mount){const r=f(N.current,e);if(r&&r._f){const e=Array.isArray(r._f.refs)?r._f.refs[0]:r._f.ref;try{je(e)&&e.closest("form").reset();break}catch(e){}}}r.keepDefaultValues||(T.current=Object.assign({},t),I.current=Object.assign({},t)),r.keepValues||(N.current={},K.current.control.next({values:r.keepDefaultValues?T.current:Object.assign({},t)}),K.current.watch.next({values:Object.assign({},t)}),K.current.array.next({values:Object.assign({},t),isReset:!0})),Q.current={mount:new Set,unMount:new Set,array:new Set,watch:new Set,watchAll:!1},K.current.state.next({submitCount:r.keepSubmitCount?M.current.submitCount:0,isDirty:r.keepDirty?M.current.isDirty:!!r.keepDefaultValues&&z(e,T.current),isSubmitted:!!r.keepIsSubmitted&&M.current.isSubmitted,dirtyFields:r.keepDirty?M.current.dirtyFields:{},touchedFields:r.keepTouched?M.current.touchedFields:{},errors:r.keepErrors?M.current.errors:{},isSubmitting:!1,isSubmitSuccessful:!1}),q.current=!!r.keepIsValid},[]),clearErrors:r.useCallback(e=>{e?D(e).forEach(e=>ne(M.current.errors,e)):M.current.errors={},K.current.state.next({errors:M.current.errors})},[]),unregister:r.useCallback(Ce,[]),setError:r.useCallback((e,r,t)=>{const n=((f(N.current,e)||{_f:{}})._f||{}).ref;U(M.current.errors,e,Object.assign(Object.assign({},r),{ref:n})),K.current.state.next({name:e,errors:M.current.errors,isValid:!1}),t&&t.shouldFocus&&n&&n.focus&&n.focus()},[]),setFocus:r.useCallback(e=>f(N.current,e)._f.ref.focus(),[])}},exports.useFormContext=_,exports.useFormState=M,exports.useWatch=function(e){const{control:t,name:n,defaultValue:s}=e||{},u=_(),c=r.useRef(n);c.current=n;const{watchInternal:a,subjectsRef:i}=t||u.control,[o,f]=r.useState(l(s)?a(n):s);return r.useEffect(()=>{a(n);const e=i.current.watch.subscribe({next:({name:e,values:r})=>(!c.current||!e||D(c.current).some(r=>e&&r&&(r.startsWith(e)||e.startsWith(r))))&&f(a(c.current,s,!1,r))});return()=>e.unsubscribe()},[]),o};
2
2
  //# sourceMappingURL=index.cjs.js.map