react-hook-form 7.0.2 → 7.0.3
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.development.js +9 -4
- package/dist/index.cjs.development.js.map +1 -1
- package/dist/index.cjs.production.min.js +1 -1
- package/dist/index.cjs.production.min.js.map +1 -1
- package/dist/index.esm.js +9 -4
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.development.js +9 -4
- package/dist/index.umd.development.js.map +1 -1
- package/dist/index.umd.production.min.js +1 -1
- package/dist/index.umd.production.min.js.map +1 -1
- package/package.json +1 -1
@@ -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=>null==e;const s=e=>"object"==typeof e;var c=e=>!n(e)&&!Array.isArray(e)&&s(e)&&!(e instanceof Date),u=e=>e.substring(0,e.search(/.\d/))||e,i=e=>e.filter(Boolean),a=e=>void 0===e,l=(e={},r,t)=>{const s=i(r.split(/[,[\].]+?/)).reduce((e,r)=>n(e)?e:e[r],e);return a(s)||s===e?a(e[r])?t:e[r]:s};const o="blur",f="change",d="onBlur",b="onChange",y="onSubmit",g="onTouched",m="all",h="max",v="min",x="maxLength",p="minLength",A="pattern",O="required",j="validate";var V=(e,r)=>{const t=Object.assign({},e);return delete t[r],t};const k=r.createContext(null);k.displayName="RHFContext";const F=()=>r.useContext(k);var R=(e,r,t,n,s=!0)=>e?new Proxy(r,{get:(e,r)=>{if(r in e)return t.current[r]!==m&&(t.current[r]=!s||m),n&&(n.current[r]=!0),e[r]}}):r,S=e=>c(e)&&!Object.keys(e).length,w=(e,r,t)=>S(e)||Object.keys(e).length>=Object.keys(r).length||Object.keys(e).find(e=>r[e]===(!t||m)),_="undefined"!=typeof window&&void 0!==window.HTMLElement&&"undefined"!=typeof document;const C=_?"Proxy"in window:"undefined"!=typeof Proxy;function D(e){const t=F(),{formStateRef:n,formStateSubjectRef:s,readFormStateRef:c}=e&&e.control||t.control,[u,i]=r.useState(n.current),a=r.useRef({isDirty:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1});return r.useEffect(()=>{const e=s.current.subscribe({next:e=>{w(e,a.current)&&i(Object.assign(Object.assign({},n.current),e))}});return()=>e.unsubscribe()},[]),R(C,u,c,a,!1)}function E({name:e,rules:n,defaultValue:s,control:i}){const d=F(),{defaultValuesRef:b,register:y,fieldsRef:g,fieldArrayNamesRef:m,controllerSubjectRef:h}=i||d.control,{onChange:v,onBlur:x,ref:p}=y(e,n),[A,O]=r.useState(a(l(g.current,e)._f.value)||((e,r)=>[...e].some(e=>u(r)===e))(m.current,e)?a(s)?l(b.current,e):s:l(g.current,e)._f.value),j=D({control:i||d.control});return l(g.current,e)._f.value=A,r.useEffect(()=>{const r=h.current.subscribe({next:r=>(!r.name||e===r.name)&&O(l(r.values,e))});return p({target:A}),()=>r.unsubscribe()},[e]),{field:{onChange:r=>{const n=(e=>c(e)&&e.target?t(e.target)?e.target.checked:e.target.value:e)(r);O(n),v({target:{value:n,name:e},type:f})},onBlur:()=>{x({target:{name:e},type:o})},name:e,value:A,ref:p},formState:j,fieldState:Object.defineProperties({},{invalid:{get:()=>!!l(j.errors,e)},isDirty:{get:()=>!!l(j.dirtyFields,e)},isTouched:{get:()=>!!l(j.touchedFields,e)},error:{get:()=>l(j.errors,e)}})}}var B=(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})}):{},N=e=>/^\w*$/.test(e),$=e=>i(e.replace(/["|']|\]/g,"").split(/\.|\[/));function M(e,r,t){let n=-1;const s=N(r)?[r]:$(r),u=s.length,i=u-1;for(;++n<u;){const r=s[n];let u=t;if(n!==i){const t=e[r];u=c(t)||Array.isArray(t)?t:isNaN(+s[n+1])?{}:[]}e[r]=u,e=e[r]}return e}const I=(e,r,t)=>{for(const n of t||Object.keys(e)){const t=l(e,n);if(t){const e=t._f,n=V(t,"_f");if(e&&r(e.name)){if(e.ref.focus&&a(e.ref.focus()))break;if(e.refs){e.refs[0].focus();break}}else c(n)&&I(n,r)}}},P=(e,r={current:{}},t={})=>{for(const n in e.current){const s=e.current[n];if(s){const e=s._f,c=V(s,"_f");M(t,n,e?e.ref.disabled||e.refs&&e.refs.every(e=>e.disabled)?void 0:e.value:Array.isArray(s)?[]:{}),c&&P({current:c},r,t[n])}}return Object.assign(Object.assign({},r.current),t)};var T=()=>{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)})},W=(e=[],r)=>e.map(e=>Object.assign({[r]:e&&e[r]||T()},e)),L=e=>n(e)||!s(e);function q(e,t,n){if(L(e)||L(t)||e instanceof Date||t instanceof Date)return e===t;if(!r.isValidElement(e)){const r=Object.keys(e),s=Object.keys(t);if(r.length!==s.length)return!1;for(const s of r){const r=e[s];if(!n||"ref"!==s){const e=t[s];if((c(r)||Array.isArray(r))&&(c(e)||Array.isArray(e))?!q(r,e,n):r!==e)return!1}}}return!0}function H(e,r,t,n,s){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]=[],H(e[c][n],l(r[c]||{},n,[]),t[c][n],t[c],n)):q(l(r[c]||{},n),e[c][n])?M(t[c]||{},n):t[c]=Object.assign(Object.assign({},t[c]),{[n]:!0});n&&!t.length&&delete n[s]}return t}var z=(e,r,t)=>function e(r,t){if(L(r)||L(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}(H(e,r,t.slice(0,e.length)),H(r,e,t.slice(0,e.length)));function G(e,r){return[...e,...Array.isArray(r)?r:[r]]}var J=e=>Array.isArray(e)?Array(e.length).fill(void 0):void 0;function K(e,r,t){return[...e.slice(0,r),...Array.isArray(t)?t:[t],...e.slice(r)]}var Q=(e,r,t)=>Array.isArray(e)?(a(e[t])&&(e[t]=void 0),e.splice(t,0,e.splice(r,1)[0]),e):[];function U(e,r){return[...Array.isArray(r)?r:[r],...e]}var X=(e,r)=>a(r)?[]:function(e,r){let t=0;const n=[...e];for(const e of r)n.splice(e-t,1),t++;return i(n).length?n:[]}(e,(Array.isArray(r)?r:[r]).sort((e,r)=>e-r)),Y=(e,r,t)=>{e[r]=[e[t],e[t]=e[r]][0]},Z=e=>"boolean"==typeof e;function ee(e,r){const t=N(r)?[r]:$(r),n=1==t.length?e:function(e,r){const t=r.slice(0,-1).length;let n=0;for(;n<t;)e=a(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 i=t.slice(0,-(r+1)),a=i.length-1;for(r>0&&(u=e);++s<i.length;){const r=i[s];n=n?n[r]:e[r],a===s&&(c(n)&&S(n)||Array.isArray(n)&&!n.filter(e=>c(e)&&!S(e)||Z(e)).length)&&(u?delete u[r]:delete e[r]),u=n}}return e}function re(e,r){const t={};for(const n of e){const e=l(r,n);e&&(N(n)?t[n]=e._f:M(t,n,e._f))}return t}var te=e=>"file"===e.type,ne=e=>"select-multiple"===e.type,se=e=>"radio"===e.type;const ce={value:!1,isValid:!1},ue={value:!0,isValid:!0};var ie=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&&!a(e[0].attributes.value)?a(e[0].value)||""===e[0].value?ue:{value:e[0].value,isValid:!0}:ue:ce}return ce};const ae={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,ae):ae;function oe(e){if(e&&e._f){const n=e._f.ref;if(n.disabled)return;return te(n)?n.files:se(n)?le(e._f.refs).value:ne(n)?(r=n.options,[...r].filter(({selected:e})=>e).map(({value:e})=>e)):t(n)?ie(e._f.refs).value:((e,{valueAsNumber:r,valueAsDate:t,setValueAs:n})=>r?""===e?NaN:+e:t?new Date(e):n?n(e):e)(a(n.value)?e._f.ref.value:n.value,e._f)}var r}var fe=e=>"function"==typeof e,de=e=>"string"==typeof e,be=e=>de(e)||r.isValidElement(e),ye=e=>e instanceof RegExp;function ge(e,r,t="validate"){if(be(e)||Z(e)&&!e)return{type:t,message:be(e)?e:"",ref:r}}var me=e=>c(e)&&!ye(e)?e:{value:e,message:""},he=async({_f:{ref:e,refs:r,required:s,maxLength:u,minLength:i,min:a,max:l,pattern:o,validate:f,name:d,value:b}},y)=>{const g={},m=se(e),V=t(e),k=m||V,F=!b||Array.isArray(b)&&!b.length,R=B.bind(null,d,y,g),w=(r,t,n,s=x,c=p)=>{const u=r?t:n;g[d]=Object.assign({type:r?s:c,message:u,ref:e},R(r?s:c,u))};if(s&&(!m&&!V&&(F||n(b))||Z(b)&&!b||V&&!ie(r).isValid||m&&!le(r).isValid)){const{value:t,message:n}=be(s)?{value:!!s,message:s}:me(s);if(t&&(g[d]=Object.assign({type:O,message:n,ref:k?(r||[])[0]||{}:e},R(O,n)),!y))return g}if(!(n(a)&&n(l)||""===b)){let r,t;const s=me(l),c=me(a);if(isNaN(b)){const n=e.valueAsDate||new Date(b);de(s.value)&&(r=n>new Date(s.value)),de(c.value)&&(t=n<new Date(c.value))}else{const u=e.valueAsNumber||parseFloat(b);n(s.value)||(r=u>s.value),n(c.value)||(t=u<c.value)}if((r||t)&&(w(!!r,s.message,c.message,h,v),!y))return g}if(de(b)&&!F&&(u||i)){const e=me(u),r=me(i),t=!n(e.value)&&b.length>e.value,s=!n(r.value)&&b.length<r.value;if((t||s)&&(w(t,e.message,r.message),!y))return g}if(de(b)&&o&&!F){const{value:r,message:t}=me(o);if(ye(r)&&!r.test(b)&&(g[d]=Object.assign({type:A,message:t,ref:e},R(A,t)),!y))return g}if(f){const t=k&&r?r[0]:e;if(fe(f)){const e=ge(await f(b),t);if(e&&(g[d]=Object.assign(Object.assign({},e),R(j,e.message)),!y))return g}else if(c(f)){let e={};for(const[r,n]of Object.entries(f)){if(!S(e)&&!y)break;const s=ge(await n(b),t,r);s&&(e=Object.assign(Object.assign({},s),R(r,s.message)),y&&(g[d]=e))}if(!S(e)&&(g[d]=Object.assign({ref:t},e),!y))return g}}return g},ve=e=>({isOnSubmit:!e||e===y,isOnBlur:e===d,isOnChange:e===b,isOnAll:e===m,isOnTouch:e===g}),xe=e=>e instanceof HTMLElement;class pe{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 Oe{constructor(){this.observers=[]}next(e){for(const r of this.observers)r.next(e)}subscribe(e){const r=new pe,t=new Ae(e,r);return this.observers.push(t),r}unsubscribe(){this.observers=[]}}const je="undefined"==typeof window;exports.Controller=e=>e.render(E(e)),exports.FormProvider=e=>r.createElement(k.Provider,{value:V(e,"children")},e.children),exports.appendErrors=B,exports.get=l,exports.set=M,exports.useController=E,exports.useFieldArray=({control:e,name:t,keyName:n="id"})=>{const s=F(),c=r.useRef(""),{isWatchAllRef:o,watchFieldsRef:f,getFormIsDirty:d,watchSubjectRef:b,fieldArraySubjectRef:y,fieldArrayNamesRef:g,fieldsRef:m,defaultValuesRef:h,formStateRef:v,formStateSubjectRef:x,readFormStateRef:p,validFieldsRef:A,fieldsWithValidationRef:O,fieldArrayDefaultValuesRef:j}=e||s.control,[k,R]=r.useState(W(l(j.current,u(t))?l(j.current,t,[]):l(h.current,t,[]),n));M(j.current,t,[...k]),g.current.add(t);const S=e=>e.map(e=>V(e||{},n)),w=()=>{const e=l(P(m,h),t,[]);return W(l(j.current,t,[]).map((r,t)=>Object.assign(Object.assign({},r),e[t])),n)},_=(e,r)=>r?a(r.focusIndex)?r.focusName?r.focusName:r.shouldFocus?`${t}.${e}`:"":`${t}.${r.focusIndex}`:`${t}.${e}`,C=(e=[])=>R(W(e,n)),D=e=>!i(l(e,t,[])).length&&ee(e,t),E=(e,r,n=[],s=!0)=>{if(l(m.current,t)){const n=e(l(m.current,t),r.argA,r.argB);s&&M(m.current,t,n)}if(Array.isArray(l(v.current.errors,t))){const n=e(l(v.current.errors,t),r.argA,r.argB);s&&M(v.current.errors,t,n),D(v.current.errors)}if(p.current.touchedFields&&l(v.current.touchedFields,t)){const n=e(l(v.current.touchedFields,t),r.argA,r.argB);s&&M(v.current.touchedFields,t,n),D(v.current.touchedFields)}(p.current.dirtyFields||p.current.isDirty)&&(M(v.current.dirtyFields,t,z(S(n),l(h.current,t,[]),l(v.current.dirtyFields,t,[]))),(e=>{e&&M(v.current.dirtyFields,t,z(S(e),l(h.current,t,[]),l(v.current.dirtyFields,t,[])))})(n),D(v.current.dirtyFields)),p.current.isValid&&(M(A.current,t,e(l(A.current,t,[]),r.argA)),D(A.current),M(O.current,t,e(l(O.current,t,[]),r.argA)),D(O.current)),x.current.next({isDirty:d(t,S(n)),errors:v.current.errors,isValid:v.current.isValid})},B=(e,r=0,n="")=>e.forEach((e,s)=>Object.entries(e).forEach(([e,c])=>{const u=`${n||t}.${n?s:r+s}.${e}`;Array.isArray(c)?B(c,s,u):M(m.current,u,{_f:{ref:{name:u},name:u,value:c}})}));return r.useEffect(()=>{if(o.current)x.current.next({});else for(const e of f.current)if(t.startsWith(e)){x.current.next({});break}b.current.next({name:t,value:l(P(m,h),t,[])}),c.current&&I(m.current,e=>e.startsWith(c.current)),c.current="",y.current.next({name:t,fields:S([...k])})},[k,t]),r.useEffect(()=>{const e=y.current.subscribe({next({name:e,fields:r,isReset:n}){n&&(ee(m.current,e||t),e?M(j.current,e,r):j.current=r,C(l(j.current,t)))}});return!l(m.current,t)&&M(m.current,t,[]),()=>{j.current=P(m),e.unsubscribe()}},[]),{swap:r.useCallback((e,r)=>{const t=w();Y(t,e,r),E(Y,{argA:e,argB:r},t,!1),C(t)},[t]),move:r.useCallback((e,r)=>{const t=w();Q(t,e,r),C(t),E(Q,{argA:e,argB:r},t,!1)},[t]),prepend:r.useCallback((e,r)=>{const t=Array.isArray(e)?e:[e],n=U(w(),t);C(n),E(U,{argA:J(e)},n),B(t),c.current=_(0,r)},[t]),append:r.useCallback((e,r)=>{const t=Array.isArray(e)?e:[e],n=G(w(),t),s=n.length-t.length;C(n),E(G,{argA:J(e)},n,!1),B(t,s),c.current=_(s,r)},[t]),remove:r.useCallback(e=>{const r=X(w(),e);(e=>{(Array.isArray(e)?e:[e]).forEach(e=>M(m.current,`${t}${a(e)?"":"."+e}`,a(e)?[]:void 0))})(e),C(r),E(X,{argA:e},r)},[t]),insert:r.useCallback((e,r,t)=>{const n=Array.isArray(r)?r:[r],s=K(w(),e,n);C(s),E(K,{argA:e,argB:J(r)},s),B(n,e),c.current=_(e,t)},[t]),fields:k}},exports.useForm=function({mode:e=y,reValidateMode:s=b,resolver:c,context:f,defaultValues:d={},shouldFocusError:g=!0,criteriaMode:h}={}){const v=r.useRef({}),x=r.useRef(new Set),p=r.useRef(new Oe),A=r.useRef(new Oe),O=r.useRef(new Oe),j=r.useRef(new Oe),k=r.useRef({}),F=r.useRef(new Set),D=r.useRef(!1),E=r.useRef({}),B=r.useRef({}),N=r.useRef(d),$=r.useRef(!1),T=r.useRef(f),W=r.useRef(c),L=r.useRef(new Set),H=ve(e),G=h===m,[J,K]=r.useState({isDirty:!1,isValidating:!1,dirtyFields:{},isSubmitted:!1,submitCount:0,touchedFields:{},isSubmitting:!1,isSubmitSuccessful:!1,isValid:!H.isOnSubmit,errors:{}}),Q=r.useRef({isDirty:!C,dirtyFields:!C,touchedFields:!C,isValidating:!C,isValid:!C,errors:!C}),U=r.useRef(J);T.current=f,W.current=c;const X=()=>U.current.isValid=q(B.current,E.current)&&S(U.current.errors),Y=r.useCallback((e,r,t=!1,s={},c,u)=>{let i=t||(({errors:e,name:r,error:t,validFields:n,fieldsWithValidation:s})=>{const c=a(t),u=l(e,r);return c&&!!u||!c&&!q(u,t,!0)||c&&l(s,r)&&!l(n,r)})({errors:U.current.errors,error:r,name:e,validFields:B.current,fieldsWithValidation:E.current});const o=l(U.current.errors,e);if(r?(ee(B.current,e),i=i||!o||!q(o,r,!0),M(U.current.errors,e,r)):((l(E.current,e)||W.current)&&(M(B.current,e,!0),i=i||o),ee(U.current.errors,e)),i&&!n(t)||!S(s)||u){const e=Object.assign(Object.assign({},s),{isValid:W.current?!!c:X(),errors:U.current.errors});U.current=Object.assign(Object.assign({},U.current),e),p.current.next(u?{}:e)}p.current.next({isValidating:!1})},[]),Z=r.useCallback((e,r,s={},c,u)=>{u&&Re(e);const i=l(v.current,e,{})._f;if(i){const u=_&&xe(i.ref)&&n(r)?"":r;if(i.value=r,se(i.ref)?(i.refs||[]).forEach(e=>e.checked=e.value===u):te(i.ref)&&!de(u)?i.ref.files=u:ne(i.ref)?[...i.ref.options].forEach(e=>e.selected=u.includes(e.value)):t(i.ref)&&i.refs?i.refs.length>1?i.refs.forEach(e=>e.checked=Array.isArray(u)?!!u.find(r=>r===e.value):u===e.value):i.refs[0].checked=!!u:i.ref.value=u,c){const t=P(v);M(t,e,r),O.current.next({values:Object.assign(Object.assign({},N.current),t),name:e})}s.shouldDirty&&ue(e,u),s.shouldValidate&&be(e)}},[]),ce=r.useCallback((e,r)=>{if(Q.current.isDirty){const t=P(v);return e&&r&&M(t,e,r),!q(t,N.current)}return!1},[]),ue=r.useCallback((e,r,t=!0)=>{if(Q.current.isDirty||Q.current.dirtyFields){const n=!q(l(N.current,e),r),s=l(U.current.dirtyFields,e),c=U.current.isDirty;n?M(U.current.dirtyFields,e,!0):ee(U.current.dirtyFields,e),U.current.isDirty=ce();const u={isDirty:U.current.isDirty,dirtyFields:U.current.dirtyFields},i=Q.current.isDirty&&c!==u.isDirty||Q.current.dirtyFields&&s!==l(U.current.dirtyFields,e);return i&&t&&p.current.next(u),i?u:{}}return{}},[]),ie=r.useCallback(async(e,r)=>{const t=(await he(l(v.current,e),G))[e];return Y(e,t,r),a(t)},[G]),ae=r.useCallback(async(e,r=[])=>{const{errors:t}=await W.current(P(v,N),T.current,{criteriaMode:h,names:r,fields:re(x.current,v.current)});for(const r of e){const e=l(t,r);e?M(U.current.errors,r,e):ee(U.current.errors,r)}return t},[h]),le=async e=>{for(const r in e){const t=e[r];if(t){const e=t._f,r=V(t,"_f");if(e){const r=await he(t,G);r[e.name]?(M(U.current.errors,e.name,r[e.name]),ee(B.current,e.name)):l(E.current,e.name)&&(M(B.current,e.name,!0),ee(U.current.errors,e.name))}r&&await le(r)}}},be=r.useCallback(async e=>{const r=a(e)?Object.keys(v.current):Array.isArray(e)?e:[e];let t;p.current.next({isValidating:!0}),W.current?t=S(await ae(r,a(e)?void 0:r)):a(e)?await le(v.current):await Promise.all(r.map(async e=>await ie(e,null))),p.current.next({errors:U.current.errors,isValidating:!1,isValid:W.current?t:X()})},[ae,ie]),ye=r.useCallback((e,r,t)=>Object.entries(r).forEach(([r,n])=>{const s=`${e}.${r}`,c=l(v.current,s);c&&!c._f?ye(s,n,t):Z(s,n,t,!0,!c)}),[be]),ge=e=>$.current||F.current.has(e)||F.current.has((e.match(/\w+/)||[])[0]),me=e=>{let r;const t=l(v.current,e);return!t||S(N.current)&&a(t._f.value)||(r=a(t._f.value)?l(N.current,e):t._f.value,a(r)||Z(e,r)),r},pe=r.useCallback(async({type:e,target:r,target:{value:n,type:c}})=>{let i,f,d=r.name;const b=l(v.current,d);if(b){const y=c?oe(b):n,g=e===o,{isOnBlur:m,isOnChange:x}=ve(s),O=(({isOnBlur:e,isOnChange:r,isOnTouch:t,isTouched:n,isReValidateOnBlur:s,isReValidateOnChange:c,isBlurEvent:u,isSubmitted:i,isOnAll:a})=>!a&&(!i&&t?!(n||u):(i?s:e)?!u:!(i?c:r)||u))(Object.assign({isBlurEvent:g,isTouched:!!l(U.current.touchedFields,d),isSubmitted:U.current.isSubmitted,isReValidateOnBlur:m,isReValidateOnChange:x},H)),j=!g&&ge(d);a(y)||(b._f.value=y);const V=ue(d,b._f.value,!1);g&&!l(U.current.touchedFields,d)&&(M(U.current.touchedFields,d,!0),V.touchedFields=U.current.touchedFields);let k=!S(V)||j;if(O)return!g&&A.current.next({name:d,type:e,value:y}),k&&p.current.next(j?{}:V);if(p.current.next({isValidating:!0}),W.current){const{errors:e}=await W.current(P(v,N),T.current,{criteriaMode:h,fields:re([d],v.current),names:[d]}),n=U.current.isValid;if(i=l(e,d),t(r)&&!i){const r=u(d),t=l(e,r,{});t.type&&t.message&&(i=t),(t||l(U.current.errors,r))&&(d=r)}f=S(e),n!==f&&(k=!0)}else i=(await he(b,G))[d];!g&&A.current.next({name:d,type:e,value:y}),Y(d,i,k,V,f,j)}},[]),Ae=e=>{const r=D.current?P(v,N):N.current;return a(e)?r:de(e)?l(r,e):e.map(e=>l(r,e))},Ve=r.useCallback(async(e={})=>{const r=U.current.isValid;if(c){const{errors:r}=await W.current(Object.assign(Object.assign({},P(v,N)),e),T.current,{criteriaMode:h,fields:re(x.current,v.current)});U.current.isValid=S(r)}else X();r!==U.current.isValid&&p.current.next({isValid:U.current.isValid})},[h]),ke=r.useCallback((e,r,t)=>{const n=Array.isArray(e),s=D.current?Ae():a(r)?N.current:n?r||{}:{[e]:r};if(a(e))return t&&($.current=!0),s;const c=[];for(const r of n?e:[e])t&&F.current.add(r),c.push(l(s,r));return n?c:c[0]},[]),Fe=(e,r,n)=>{let s=l(v.current,e);if(s){const c=(e=>se(e)||t(e))(r);if((c?Array.isArray(s._f.refs)&&i(s._f.refs).find(e=>r.value===e.value&&e===r):r===s._f.ref)||!s||_&&xe(s._f.ref)&&!xe(r))return;s={_f:c?Object.assign(Object.assign({},s._f),{refs:[...i(s._f.refs||[]).filter(e=>xe(e)&&document.contains(e)),r],ref:{type:r.type,name:e}}):Object.assign(Object.assign({},s._f),{ref:r})},M(v.current,e,s);const u=me(e);(c&&Array.isArray(u)?!q(l(v.current,e)._f.value,u):a(l(v.current,e)._f.value))&&(l(v.current,e)._f.value=oe(l(v.current,e))),n&&!H.isOnSubmit&&s&&Q.current.isValid&&he(s,G).then(r=>{S(r)?M(B.current,e,!0):ee(B.current,e),U.current.isValid&&!S(r)&&K(Object.assign(Object.assign({},U.current),{isValid:X()}))})}},Re=r.useCallback((e,r)=>(M(v.current,e,{_f:Object.assign(Object.assign(Object.assign({},l(v.current,e)?Object.assign({ref:(l(v.current,e)._f||{}).ref},l(v.current,e)._f):{ref:{name:e}}),{name:e}),r)}),r&&M(E.current,e,!0),x.current.add(e),me(e),je?{name:e}:{name:e,onChange:pe,onBlur:pe,ref:t=>t&&Fe(e,t,r)}),[N.current]),Se=r.useCallback((e,r)=>async t=>{t&&t.preventDefault&&(t.preventDefault(),t.persist());let n=Object.assign(Object.assign({},N.current),P(v,N));p.current.next({isSubmitting:!0});try{if(W.current){const{errors:e,values:r}=await W.current(n,T.current,{criteriaMode:h,fields:re(x.current,v.current)});U.current.errors=e,n=r}else await le(v.current);S(U.current.errors)&&Object.keys(U.current.errors).every(e=>l(n,e))?(p.current.next({errors:{},isSubmitting:!0}),await e(n,t)):(r&&await r(U.current.errors,t),g&&I(v.current,e=>l(U.current.errors,e),x.current))}finally{U.current.isSubmitted=!0,p.current.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:S(U.current.errors),submitCount:U.current.submitCount+1,errors:U.current.errors})}},[g,G,h]),we=r.useCallback(({keepErrors:e,keepDirty:r,keepIsSubmitted:t,keepTouched:n,keepIsValid:s,keepSubmitCount:c})=>{s||(B.current={},E.current={}),F.current=new Set,$.current=!1,p.current.next({submitCount:c?U.current.submitCount:0,isDirty:!!r&&U.current.isDirty,isSubmitted:!!t&&U.current.isSubmitted,isValid:s?U.current.isValid:!H.isOnSubmit,dirtyFields:r?U.current.dirtyFields:{},touchedFields:n?U.current.touchedFields:{},errors:e?U.current.errors:{},isSubmitting:!1,isSubmitSuccessful:!1})},[]);return r.useEffect(()=>{D.current=!0;const e=p.current.subscribe({next(e={}){w(e,Q.current,!0)&&(U.current=Object.assign(Object.assign({},U.current),e),K(U.current))}}),r=j.current.subscribe({next(e){if(e.fields&&e.name&&Q.current.isValid){const r=P(v);M(r,e.name,e.fields),Ve(r)}}});return W.current&&Q.current.isValid&&Ve(),()=>{A.current.unsubscribe(),e.unsubscribe(),r.unsubscribe()}},[]),{control:r.useMemo(()=>({register:Re,isWatchAllRef:$,watchFieldsRef:F,getFormIsDirty:ce,formStateSubjectRef:p,fieldArraySubjectRef:j,controllerSubjectRef:O,watchSubjectRef:A,watchInternal:ke,fieldsRef:v,validFieldsRef:B,fieldsWithValidationRef:E,fieldArrayNamesRef:L,readFormStateRef:Q,formStateRef:U,defaultValuesRef:N,fieldArrayDefaultValuesRef:k}),[]),formState:R(C,J,Q),trigger:be,register:Re,handleSubmit:Se,watch:r.useCallback((e,r)=>fe(e)?A.current.subscribe({next:t=>e(ke(void 0,r),t)}):ke(e,r,!0),[]),setValue:r.useCallback((e,r,t={})=>{D.current=!0;const n=l(v.current,e),s=L.current.has(e);s&&(j.current.next({fields:r,name:e,isReset:!0}),(Q.current.isDirty||Q.current.dirtyFields)&&t.shouldDirty&&(M(U.current.dirtyFields,e,z(r,l(N.current,e,[]),l(U.current.dirtyFields,e,[]))),p.current.next({dirtyFields:U.current.dirtyFields,isDirty:ce(e,r)}))),n&&!n._f||s?ye(e,r,s?{}:t):Z(e,r,t,!0,!n),ge(e)&&p.current.next({}),A.current.next({name:e,value:r})},[ye]),getValues:r.useCallback(Ae,[]),reset:r.useCallback((e,r={})=>{const t=e||N.current;if(_&&!r.keepValues)for(const e of Object.values(v.current))if(e&&e._f){const r=Array.isArray(e._f.refs)?e._f.refs[0]:e._f.ref;if(xe(r))try{r.closest("form").reset();break}catch(e){}}!r.keepDefaultValues&&(N.current=Object.assign({},t)),r.keepValues||(v.current={},O.current.next({values:Object.assign({},t)}),A.current.next({value:Object.assign({},t)}),j.current.next({fields:Object.assign({},t),isReset:!0})),we(r)},[]),clearErrors:r.useCallback(e=>{e&&(Array.isArray(e)?e:[e]).forEach(e=>ee(U.current.errors,e)),p.current.next({errors:e?U.current.errors:{}})},[]),unregister:r.useCallback((e,r={})=>{for(const t of e?Array.isArray(e)?e:[e]:Object.keys(x.current))x.current.delete(t),L.current.delete(t),l(v.current,t)&&(r.keepIsValid||(ee(E.current,t),ee(B.current,t)),!r.keepError&&ee(U.current.errors,t),!r.keepValue&&ee(v.current,t),!r.keepDirty&&ee(U.current.dirtyFields,t),!r.keepTouched&&ee(U.current.touchedFields,t),!r.keepDefaultValue&&ee(N.current,t),A.current.next({name:t}));p.current.next(Object.assign(Object.assign(Object.assign({},U.current),r.keepDirty?{isDirty:ce()}:{}),W.current?{}:{isValid:X()})),r.keepIsValid||Ve()},[]),setError:r.useCallback((e,r,t)=>{const n=((l(v.current,e)||{_f:{}})._f||{}).ref;M(U.current.errors,e,Object.assign(Object.assign({},r),{ref:n})),p.current.next({errors:U.current.errors,isValid:!1}),t&&t.shouldFocus&&n&&n.focus&&n.focus()},[])}},exports.useFormContext=F,exports.useFormState=D,exports.useWatch=function(e){const{control:t,name:n,defaultValue:s}=e||{},c=F(),{watchInternal:u,watchSubjectRef:i}=t||c.control,[l,o]=r.useState(a(s)?u(n):s);return r.useEffect(()=>{u(n);const e=i.current.subscribe({next:({name:e,value:r})=>{(!n||!e||(Array.isArray(n)?n:[n]).some(r=>e&&r&&e.startsWith(r)))&&o(de(e)&&n===e&&!a(r)?r:u(n,s))}});return()=>e.unsubscribe()},[n]),l};
|
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=>null==e;const s=e=>"object"==typeof e;var c=e=>!n(e)&&!Array.isArray(e)&&s(e)&&!(e instanceof Date),u=e=>e.substring(0,e.search(/.\d/))||e,i=e=>e.filter(Boolean),a=e=>void 0===e,l=(e={},r,t)=>{const s=i(r.split(/[,[\].]+?/)).reduce((e,r)=>n(e)?e:e[r],e);return a(s)||s===e?a(e[r])?t:e[r]:s};const o="blur",f="change",d="onBlur",b="onChange",y="onSubmit",g="onTouched",m="all",h="max",v="min",x="maxLength",p="minLength",A="pattern",O="required",j="validate";var V=(e,r)=>{const t=Object.assign({},e);return delete t[r],t};const k=r.createContext(null);k.displayName="RHFContext";const F=()=>r.useContext(k);var R=(e,r,t,n,s=!0)=>e?new Proxy(r,{get:(e,r)=>{if(r in e)return t.current[r]!==m&&(t.current[r]=!s||m),n&&(n.current[r]=!0),e[r]}}):r,S=e=>c(e)&&!Object.keys(e).length,w=(e,r,t)=>S(e)||Object.keys(e).length>=Object.keys(r).length||Object.keys(e).find(e=>r[e]===(!t||m)),_="undefined"!=typeof window&&void 0!==window.HTMLElement&&"undefined"!=typeof document;const C=_?"Proxy"in window:"undefined"!=typeof Proxy;function D(e){const t=F(),{formStateRef:n,formStateSubjectRef:s,readFormStateRef:c}=e&&e.control||t.control,[u,i]=r.useState(n.current),a=r.useRef({isDirty:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1});return r.useEffect(()=>{const e=s.current.subscribe({next:e=>{w(e,a.current)&&i(Object.assign(Object.assign({},n.current),e))}});return()=>e.unsubscribe()},[]),R(C,u,c,a,!1)}function E({name:e,rules:n,defaultValue:s,control:i}){const d=F(),{defaultValuesRef:b,register:y,fieldsRef:g,fieldArrayNamesRef:m,controllerSubjectRef:h}=i||d.control,{onChange:v,onBlur:x,ref:p}=y(e,n),[A,O]=r.useState(a(l(g.current,e)._f.value)||((e,r)=>[...e].some(e=>u(r)===e))(m.current,e)?a(s)?l(b.current,e):s:l(g.current,e)._f.value),j=D({control:i||d.control});return l(g.current,e)._f.value=A,r.useEffect(()=>{const r=h.current.subscribe({next:r=>(!r.name||e===r.name)&&O(l(r.values,e))});return p({target:A}),()=>r.unsubscribe()},[e]),{field:{onChange:r=>{const n=(e=>c(e)&&e.target?t(e.target)?e.target.checked:e.target.value:e)(r);O(n),v({target:{value:n,name:e},type:f})},onBlur:()=>{x({target:{name:e},type:o})},name:e,value:A,ref:p},formState:j,fieldState:Object.defineProperties({},{invalid:{get:()=>!!l(j.errors,e)},isDirty:{get:()=>!!l(j.dirtyFields,e)},isTouched:{get:()=>!!l(j.touchedFields,e)},error:{get:()=>l(j.errors,e)}})}}var B=(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})}):{},N=e=>/^\w*$/.test(e),$=e=>i(e.replace(/["|']|\]/g,"").split(/\.|\[/));function M(e,r,t){let n=-1;const s=N(r)?[r]:$(r),u=s.length,i=u-1;for(;++n<u;){const r=s[n];let u=t;if(n!==i){const t=e[r];u=c(t)||Array.isArray(t)?t:isNaN(+s[n+1])?{}:[]}e[r]=u,e=e[r]}return e}const I=(e,r,t)=>{for(const n of t||Object.keys(e)){const t=l(e,n);if(t){const e=t._f,n=V(t,"_f");if(e&&r(e.name)){if(e.ref.focus&&a(e.ref.focus()))break;if(e.refs){e.refs[0].focus();break}}else c(n)&&I(n,r)}}},P=(e,r={current:{}},t={})=>{for(const n in e.current){const s=e.current[n];if(s){const e=s._f,c=V(s,"_f");M(t,n,e?e.ref.disabled||e.refs&&e.refs.every(e=>e.disabled)?void 0:e.value:Array.isArray(s)?[]:{}),c&&P({current:c},r,t[n])}}return Object.assign(Object.assign({},r.current),t)};var T=()=>{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)})},W=(e=[],r)=>e.map(e=>Object.assign({[r]:e&&e[r]||T()},e)),L=e=>n(e)||!s(e);function q(e,t,n){if(L(e)||L(t)||e instanceof Date||t instanceof Date)return e===t;if(!r.isValidElement(e)){const r=Object.keys(e),s=Object.keys(t);if(r.length!==s.length)return!1;for(const s of r){const r=e[s];if(!n||"ref"!==s){const e=t[s];if((c(r)||Array.isArray(r))&&(c(e)||Array.isArray(e))?!q(r,e,n):r!==e)return!1}}}return!0}function H(e,r,t,n,s){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]=[],H(e[c][n],l(r[c]||{},n,[]),t[c][n],t[c],n)):q(l(r[c]||{},n),e[c][n])?M(t[c]||{},n):t[c]=Object.assign(Object.assign({},t[c]),{[n]:!0});n&&!t.length&&delete n[s]}return t}var z=(e,r,t)=>function e(r,t){if(L(r)||L(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}(H(e,r,t.slice(0,e.length)),H(r,e,t.slice(0,e.length)));function G(e,r){return[...e,...Array.isArray(r)?r:[r]]}var J=e=>Array.isArray(e)?Array(e.length).fill(void 0):void 0;function K(e,r,t){return[...e.slice(0,r),...Array.isArray(t)?t:[t],...e.slice(r)]}var Q=(e,r,t)=>Array.isArray(e)?(a(e[t])&&(e[t]=void 0),e.splice(t,0,e.splice(r,1)[0]),e):[];function U(e,r){return[...Array.isArray(r)?r:[r],...e]}var X=(e,r)=>a(r)?[]:function(e,r){let t=0;const n=[...e];for(const e of r)n.splice(e-t,1),t++;return i(n).length?n:[]}(e,(Array.isArray(r)?r:[r]).sort((e,r)=>e-r)),Y=(e,r,t)=>{e[r]=[e[t],e[t]=e[r]][0]},Z=e=>"boolean"==typeof e;function ee(e,r){const t=N(r)?[r]:$(r),n=1==t.length?e:function(e,r){const t=r.slice(0,-1).length;let n=0;for(;n<t;)e=a(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 i=t.slice(0,-(r+1)),a=i.length-1;for(r>0&&(u=e);++s<i.length;){const r=i[s];n=n?n[r]:e[r],a===s&&(c(n)&&S(n)||Array.isArray(n)&&!n.filter(e=>c(e)&&!S(e)||Z(e)).length)&&(u?delete u[r]:delete e[r]),u=n}}return e}function re(e,r){const t={};for(const n of e){const e=l(r,n);e&&(N(n)?t[n]=e._f:M(t,n,e._f))}return t}var te=e=>"file"===e.type,ne=e=>"select-multiple"===e.type,se=e=>"radio"===e.type;const ce={value:!1,isValid:!1},ue={value:!0,isValid:!0};var ie=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&&!a(e[0].attributes.value)?a(e[0].value)||""===e[0].value?ue:{value:e[0].value,isValid:!0}:ue:ce}return ce};const ae={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,ae):ae;function oe(e){if(e&&e._f){const n=e._f.ref;if(n.disabled)return;return te(n)?n.files:se(n)?le(e._f.refs).value:ne(n)?(r=n.options,[...r].filter(({selected:e})=>e).map(({value:e})=>e)):t(n)?ie(e._f.refs).value:((e,{valueAsNumber:r,valueAsDate:t,setValueAs:n})=>r?""===e?NaN:+e:t?new Date(e):n?n(e):e)(a(n.value)?e._f.ref.value:n.value,e._f)}var r}var fe=e=>"function"==typeof e,de=e=>"string"==typeof e,be=e=>de(e)||r.isValidElement(e),ye=e=>e instanceof RegExp;function ge(e,r,t="validate"){if(be(e)||Z(e)&&!e)return{type:t,message:be(e)?e:"",ref:r}}var me=e=>c(e)&&!ye(e)?e:{value:e,message:""},he=async({_f:{ref:e,refs:r,required:s,maxLength:u,minLength:i,min:a,max:l,pattern:o,validate:f,name:d,value:b}},y)=>{const g={},m=se(e),V=t(e),k=m||V,F=""===b||Array.isArray(b)&&!b.length,R=B.bind(null,d,y,g),w=(r,t,n,s=x,c=p)=>{const u=r?t:n;g[d]=Object.assign({type:r?s:c,message:u,ref:e},R(r?s:c,u))};if(s&&(!m&&!V&&(F||n(b))||Z(b)&&!b||V&&!ie(r).isValid||m&&!le(r).isValid)){const{value:t,message:n}=be(s)?{value:!!s,message:s}:me(s);if(t&&(g[d]=Object.assign({type:O,message:n,ref:k?(r||[])[0]||{}:e},R(O,n)),!y))return g}if(!(n(a)&&n(l)||""===b)){let r,t;const s=me(l),c=me(a);if(isNaN(b)){const n=e.valueAsDate||new Date(b);de(s.value)&&(r=n>new Date(s.value)),de(c.value)&&(t=n<new Date(c.value))}else{const u=e.valueAsNumber||parseFloat(b);n(s.value)||(r=u>s.value),n(c.value)||(t=u<c.value)}if((r||t)&&(w(!!r,s.message,c.message,h,v),!y))return g}if(de(b)&&!F&&(u||i)){const e=me(u),r=me(i),t=!n(e.value)&&b.length>e.value,s=!n(r.value)&&b.length<r.value;if((t||s)&&(w(t,e.message,r.message),!y))return g}if(de(b)&&o&&!F){const{value:r,message:t}=me(o);if(ye(r)&&!r.test(b)&&(g[d]=Object.assign({type:A,message:t,ref:e},R(A,t)),!y))return g}if(f){const t=k&&r?r[0]:e;if(fe(f)){const e=ge(await f(b),t);if(e&&(g[d]=Object.assign(Object.assign({},e),R(j,e.message)),!y))return g}else if(c(f)){let e={};for(const[r,n]of Object.entries(f)){if(!S(e)&&!y)break;const s=ge(await n(b),t,r);s&&(e=Object.assign(Object.assign({},s),R(r,s.message)),y&&(g[d]=e))}if(!S(e)&&(g[d]=Object.assign({ref:t},e),!y))return g}}return g},ve=e=>({isOnSubmit:!e||e===y,isOnBlur:e===d,isOnChange:e===b,isOnAll:e===m,isOnTouch:e===g}),xe=e=>e instanceof HTMLElement;class pe{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 Oe{constructor(){this.observers=[]}next(e){for(const r of this.observers)r.next(e)}subscribe(e){const r=new pe,t=new Ae(e,r);return this.observers.push(t),r}unsubscribe(){this.observers=[]}}const je="undefined"==typeof window;exports.Controller=e=>e.render(E(e)),exports.FormProvider=e=>r.createElement(k.Provider,{value:V(e,"children")},e.children),exports.appendErrors=B,exports.get=l,exports.set=M,exports.useController=E,exports.useFieldArray=({control:e,name:t,keyName:n="id"})=>{const s=F(),c=r.useRef(""),{isWatchAllRef:o,watchFieldsRef:f,getFormIsDirty:d,watchSubjectRef:b,fieldArraySubjectRef:y,fieldArrayNamesRef:g,fieldsRef:m,defaultValuesRef:h,formStateRef:v,formStateSubjectRef:x,readFormStateRef:p,validFieldsRef:A,fieldsWithValidationRef:O,fieldArrayDefaultValuesRef:j}=e||s.control,[k,R]=r.useState(W(l(j.current,u(t))?l(j.current,t,[]):l(h.current,t,[]),n));M(j.current,t,[...k]),g.current.add(t);const S=e=>e.map(e=>V(e||{},n)),w=()=>{const e=l(P(m,h),t,[]);return W(l(j.current,t,[]).map((r,t)=>Object.assign(Object.assign({},r),e[t])),n)},_=(e,r)=>r?a(r.focusIndex)?r.focusName?r.focusName:r.shouldFocus?`${t}.${e}`:"":`${t}.${r.focusIndex}`:`${t}.${e}`,C=(e=[])=>R(W(e,n)),D=e=>!i(l(e,t,[])).length&&ee(e,t),E=(e,r,n=[],s=!0)=>{if(l(m.current,t)){const n=e(l(m.current,t),r.argA,r.argB);s&&M(m.current,t,n)}if(Array.isArray(l(v.current.errors,t))){const n=e(l(v.current.errors,t),r.argA,r.argB);s&&M(v.current.errors,t,n),D(v.current.errors)}if(p.current.touchedFields&&l(v.current.touchedFields,t)){const n=e(l(v.current.touchedFields,t),r.argA,r.argB);s&&M(v.current.touchedFields,t,n),D(v.current.touchedFields)}(p.current.dirtyFields||p.current.isDirty)&&(M(v.current.dirtyFields,t,z(S(n),l(h.current,t,[]),l(v.current.dirtyFields,t,[]))),(e=>{e&&M(v.current.dirtyFields,t,z(S(e),l(h.current,t,[]),l(v.current.dirtyFields,t,[])))})(n),D(v.current.dirtyFields)),p.current.isValid&&(M(A.current,t,e(l(A.current,t,[]),r.argA)),D(A.current),M(O.current,t,e(l(O.current,t,[]),r.argA)),D(O.current)),x.current.next({isDirty:d(t,S(n)),errors:v.current.errors,isValid:v.current.isValid})},B=(e,r=0,n="")=>e.forEach((e,s)=>Object.entries(e).forEach(([e,c])=>{const u=`${n||t}.${n?s:r+s}.${e}`;Array.isArray(c)?B(c,s,u):M(m.current,u,{_f:{ref:{name:u},name:u,value:c}})}));return r.useEffect(()=>{if(o.current)x.current.next({});else for(const e of f.current)if(t.startsWith(e)){x.current.next({});break}b.current.next({name:t,value:l(P(m,h),t,[])}),c.current&&I(m.current,e=>e.startsWith(c.current)),c.current="",y.current.next({name:t,fields:S([...k])})},[k,t]),r.useEffect(()=>{const e=y.current.subscribe({next({name:e,fields:r,isReset:n}){n&&(ee(m.current,e||t),e?M(j.current,e,r):j.current=r,C(l(j.current,t)))}});return!l(m.current,t)&&M(m.current,t,[]),()=>{j.current=P(m),e.unsubscribe()}},[]),{swap:r.useCallback((e,r)=>{const t=w();Y(t,e,r),E(Y,{argA:e,argB:r},t,!1),C(t)},[t]),move:r.useCallback((e,r)=>{const t=w();Q(t,e,r),C(t),E(Q,{argA:e,argB:r},t,!1)},[t]),prepend:r.useCallback((e,r)=>{const t=Array.isArray(e)?e:[e],n=U(w(),t);C(n),E(U,{argA:J(e)},n),B(t),c.current=_(0,r)},[t]),append:r.useCallback((e,r)=>{const t=Array.isArray(e)?e:[e],n=G(w(),t),s=n.length-t.length;C(n),E(G,{argA:J(e)},n,!1),B(t,s),c.current=_(s,r)},[t]),remove:r.useCallback(e=>{const r=X(w(),e);(e=>{(Array.isArray(e)?e:[e]).forEach(e=>M(m.current,`${t}${a(e)?"":"."+e}`,a(e)?[]:void 0))})(e),C(r),E(X,{argA:e},r)},[t]),insert:r.useCallback((e,r,t)=>{const n=Array.isArray(r)?r:[r],s=K(w(),e,n);C(s),E(K,{argA:e,argB:J(r)},s),B(n,e),c.current=_(e,t)},[t]),fields:k}},exports.useForm=function({mode:e=y,reValidateMode:s=b,resolver:c,context:f,defaultValues:d={},shouldFocusError:g=!0,criteriaMode:h}={}){const v=r.useRef({}),x=r.useRef(new Set),p=r.useRef(new Oe),A=r.useRef(new Oe),O=r.useRef(new Oe),j=r.useRef(new Oe),k=r.useRef({}),F=r.useRef(new Set),D=r.useRef(!1),E=r.useRef({}),B=r.useRef({}),N=r.useRef(d),$=r.useRef(!1),T=r.useRef(f),W=r.useRef(c),L=r.useRef(new Set),H=ve(e),G=h===m,[J,K]=r.useState({isDirty:!1,isValidating:!1,dirtyFields:{},isSubmitted:!1,submitCount:0,touchedFields:{},isSubmitting:!1,isSubmitSuccessful:!1,isValid:!H.isOnSubmit,errors:{}}),Q=r.useRef({isDirty:!C,dirtyFields:!C,touchedFields:!C,isValidating:!C,isValid:!C,errors:!C}),U=r.useRef(J);T.current=f,W.current=c;const X=()=>U.current.isValid=q(B.current,E.current)&&S(U.current.errors),Y=r.useCallback((e,r,t=!1,s={},c,u)=>{let i=t||(({errors:e,name:r,error:t,validFields:n,fieldsWithValidation:s})=>{const c=a(t),u=l(e,r);return c&&!!u||!c&&!q(u,t,!0)||c&&l(s,r)&&!l(n,r)})({errors:U.current.errors,error:r,name:e,validFields:B.current,fieldsWithValidation:E.current});const o=l(U.current.errors,e);if(r?(ee(B.current,e),i=i||!o||!q(o,r,!0),M(U.current.errors,e,r)):((l(E.current,e)||W.current)&&(M(B.current,e,!0),i=i||o),ee(U.current.errors,e)),i&&!n(t)||!S(s)||u){const e=Object.assign(Object.assign({},s),{isValid:W.current?!!c:X(),errors:U.current.errors});U.current=Object.assign(Object.assign({},U.current),e),p.current.next(u?{}:e)}p.current.next({isValidating:!1})},[]),Z=r.useCallback((e,r,s={},c,u)=>{u&&Re(e);const i=l(v.current,e,{})._f;if(i){const u=_&&xe(i.ref)&&n(r)?"":r;if(i.value=r,se(i.ref)?(i.refs||[]).forEach(e=>e.checked=e.value===u):te(i.ref)&&!de(u)?i.ref.files=u:ne(i.ref)?[...i.ref.options].forEach(e=>e.selected=u.includes(e.value)):t(i.ref)&&i.refs?i.refs.length>1?i.refs.forEach(e=>e.checked=Array.isArray(u)?!!u.find(r=>r===e.value):u===e.value):i.refs[0].checked=!!u:i.ref.value=u,c){const t=P(v);M(t,e,r),O.current.next({values:Object.assign(Object.assign({},N.current),t),name:e})}s.shouldDirty&&ue(e,u),s.shouldValidate&&be(e)}},[]),ce=r.useCallback((e,r)=>{if(Q.current.isDirty){const t=P(v);return e&&r&&M(t,e,r),!q(t,N.current)}return!1},[]),ue=r.useCallback((e,r,t=!0)=>{if(Q.current.isDirty||Q.current.dirtyFields){const n=!q(l(N.current,e),r),s=l(U.current.dirtyFields,e),c=U.current.isDirty;n?M(U.current.dirtyFields,e,!0):ee(U.current.dirtyFields,e),U.current.isDirty=ce();const u={isDirty:U.current.isDirty,dirtyFields:U.current.dirtyFields},i=Q.current.isDirty&&c!==u.isDirty||Q.current.dirtyFields&&s!==l(U.current.dirtyFields,e);return i&&t&&p.current.next(u),i?u:{}}return{}},[]),ie=r.useCallback(async(e,r)=>{const t=(await he(l(v.current,e),G))[e];return Y(e,t,r),a(t)},[G]),ae=r.useCallback(async(e,r=[])=>{const{errors:t}=await W.current(P(v,N),T.current,{criteriaMode:h,names:r,fields:re(x.current,v.current)});for(const r of e){const e=l(t,r);e?M(U.current.errors,r,e):ee(U.current.errors,r)}return t},[h]),le=async e=>{for(const r in e){const t=e[r];if(t){const e=t._f,r=V(t,"_f");if(e){const r=await he(t,G);r[e.name]?(M(U.current.errors,e.name,r[e.name]),ee(B.current,e.name)):l(E.current,e.name)&&(M(B.current,e.name,!0),ee(U.current.errors,e.name))}r&&await le(r)}}},be=r.useCallback(async e=>{const r=a(e)?Object.keys(v.current):Array.isArray(e)?e:[e];let t;p.current.next({isValidating:!0}),W.current?t=S(await ae(r,a(e)?void 0:r)):a(e)?await le(v.current):await Promise.all(r.map(async e=>await ie(e,null))),p.current.next({errors:U.current.errors,isValidating:!1,isValid:W.current?t:X()})},[ae,ie]),ye=r.useCallback((e,r,t)=>Object.entries(r).forEach(([r,n])=>{const s=`${e}.${r}`,c=l(v.current,s);c&&!c._f?ye(s,n,t):Z(s,n,t,!0,!c)}),[be]),ge=e=>$.current||F.current.has(e)||F.current.has((e.match(/\w+/)||[])[0]),me=e=>{let r;const t=l(v.current,e);return!t||S(N.current)&&a(t._f.value)||(r=a(t._f.value)?l(N.current,e):t._f.value,a(r)||Z(e,r)),r},pe=r.useCallback(async({type:e,target:r,target:{value:n,type:c}})=>{let i,f,d=r.name;const b=l(v.current,d);if(b){const y=c?oe(b):n,g=e===o,{isOnBlur:m,isOnChange:x}=ve(s),O=(({isOnBlur:e,isOnChange:r,isOnTouch:t,isTouched:n,isReValidateOnBlur:s,isReValidateOnChange:c,isBlurEvent:u,isSubmitted:i,isOnAll:a})=>!a&&(!i&&t?!(n||u):(i?s:e)?!u:!(i?c:r)||u))(Object.assign({isBlurEvent:g,isTouched:!!l(U.current.touchedFields,d),isSubmitted:U.current.isSubmitted,isReValidateOnBlur:m,isReValidateOnChange:x},H)),j=!g&&ge(d);a(y)||(b._f.value=y);const V=ue(d,b._f.value,!1);g&&!l(U.current.touchedFields,d)&&(M(U.current.touchedFields,d,!0),V.touchedFields=U.current.touchedFields);let k=!S(V)||j;if(O)return!g&&A.current.next({name:d,type:e,value:y}),k&&p.current.next(j?{}:V);if(p.current.next({isValidating:!0}),W.current){const{errors:e}=await W.current(P(v,N),T.current,{criteriaMode:h,fields:re([d],v.current),names:[d]}),n=U.current.isValid;if(i=l(e,d),t(r)&&!i){const r=u(d),t=l(e,r,{});t.type&&t.message&&(i=t),(t||l(U.current.errors,r))&&(d=r)}f=S(e),n!==f&&(k=!0)}else i=(await he(b,G))[d];!g&&A.current.next({name:d,type:e,value:y}),Y(d,i,k,V,f,j)}},[]),Ae=e=>{const r=D.current?P(v,N):N.current;return a(e)?r:de(e)?l(r,e):e.map(e=>l(r,e))},Ve=r.useCallback(async(e={})=>{const r=U.current.isValid;if(c){const{errors:r}=await W.current(Object.assign(Object.assign({},P(v,N)),e),T.current,{criteriaMode:h,fields:re(x.current,v.current)});U.current.isValid=S(r)}else X();r!==U.current.isValid&&p.current.next({isValid:U.current.isValid})},[h]),ke=r.useCallback((e,r,t)=>{const n=Array.isArray(e),s=D.current?Ae():a(r)?N.current:n?r||{}:{[e]:r};if(a(e))return t&&($.current=!0),s;const c=[];for(const r of n?e:[e])t&&F.current.add(r),c.push(l(s,r));return n?c:c[0]},[]),Fe=(e,r,n)=>{let s=l(v.current,e);if(s){const c=(e=>se(e)||t(e))(r);if((c?Array.isArray(s._f.refs)&&i(s._f.refs).find(e=>r.value===e.value&&e===r):r===s._f.ref)||!s||_&&xe(s._f.ref)&&!xe(r))return;s={_f:c?Object.assign(Object.assign({},s._f),{refs:[...i(s._f.refs||[]).filter(e=>xe(e)&&document.contains(e)),r],ref:{type:r.type,name:e}}):Object.assign(Object.assign({},s._f),{ref:r})},M(v.current,e,s);const u=me(e);(c&&Array.isArray(u)?!q(l(v.current,e)._f.value,u):a(l(v.current,e)._f.value))&&(l(v.current,e)._f.value=oe(l(v.current,e))),n&&!H.isOnSubmit&&s&&Q.current.isValid&&he(s,G).then(r=>{S(r)?M(B.current,e,!0):ee(B.current,e),U.current.isValid&&!S(r)&&K(Object.assign(Object.assign({},U.current),{isValid:X()}))})}},Re=r.useCallback((e,r)=>{const t=!l(v.current,e);return M(v.current,e,{_f:Object.assign(Object.assign(Object.assign({},t?{ref:{name:e}}:Object.assign({ref:(l(v.current,e)._f||{}).ref},l(v.current,e)._f)),{name:e}),r)}),r&&M(E.current,e,!0),x.current.add(e),t&&me(e),je?{name:e}:{name:e,onChange:pe,onBlur:pe,ref:t=>t&&Fe(e,t,r)}},[N.current]),Se=r.useCallback((e,r)=>async t=>{t&&t.preventDefault&&(t.preventDefault(),t.persist());let n=Object.assign(Object.assign({},N.current),P(v,N));p.current.next({isSubmitting:!0});try{if(W.current){const{errors:e,values:r}=await W.current(n,T.current,{criteriaMode:h,fields:re(x.current,v.current)});U.current.errors=e,n=r}else await le(v.current);S(U.current.errors)&&Object.keys(U.current.errors).every(e=>l(n,e))?(p.current.next({errors:{},isSubmitting:!0}),await e(n,t)):(r&&await r(U.current.errors,t),g&&I(v.current,e=>l(U.current.errors,e),x.current))}finally{U.current.isSubmitted=!0,p.current.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:S(U.current.errors),submitCount:U.current.submitCount+1,errors:U.current.errors})}},[g,G,h]),we=r.useCallback(({keepErrors:e,keepDirty:r,keepIsSubmitted:t,keepTouched:n,keepIsValid:s,keepSubmitCount:c})=>{s||(B.current={},E.current={}),F.current=new Set,$.current=!1,p.current.next({submitCount:c?U.current.submitCount:0,isDirty:!!r&&U.current.isDirty,isSubmitted:!!t&&U.current.isSubmitted,isValid:s?U.current.isValid:!H.isOnSubmit,dirtyFields:r?U.current.dirtyFields:{},touchedFields:n?U.current.touchedFields:{},errors:e?U.current.errors:{},isSubmitting:!1,isSubmitSuccessful:!1})},[]);return r.useEffect(()=>{D.current=!0;const e=p.current.subscribe({next(e={}){w(e,Q.current,!0)&&(U.current=Object.assign(Object.assign({},U.current),e),K(U.current))}}),r=j.current.subscribe({next(e){if(e.fields&&e.name&&Q.current.isValid){const r=P(v);M(r,e.name,e.fields),Ve(r)}}});return W.current&&Q.current.isValid&&Ve(),()=>{A.current.unsubscribe(),e.unsubscribe(),r.unsubscribe()}},[]),{control:r.useMemo(()=>({register:Re,isWatchAllRef:$,watchFieldsRef:F,getFormIsDirty:ce,formStateSubjectRef:p,fieldArraySubjectRef:j,controllerSubjectRef:O,watchSubjectRef:A,watchInternal:ke,fieldsRef:v,validFieldsRef:B,fieldsWithValidationRef:E,fieldArrayNamesRef:L,readFormStateRef:Q,formStateRef:U,defaultValuesRef:N,fieldArrayDefaultValuesRef:k}),[]),formState:R(C,J,Q),trigger:be,register:Re,handleSubmit:Se,watch:r.useCallback((e,r)=>fe(e)?A.current.subscribe({next:t=>e(ke(void 0,r),t)}):ke(e,r,!0),[]),setValue:r.useCallback((e,r,t={})=>{D.current=!0;const n=l(v.current,e),s=L.current.has(e);s&&(j.current.next({fields:r,name:e,isReset:!0}),(Q.current.isDirty||Q.current.dirtyFields)&&t.shouldDirty&&(M(U.current.dirtyFields,e,z(r,l(N.current,e,[]),l(U.current.dirtyFields,e,[]))),p.current.next({dirtyFields:U.current.dirtyFields,isDirty:ce(e,r)})),!r.length&&M(v.current,e,[])&&M(k.current,e,[])),n&&!n._f||s?ye(e,r,s?{}:t):Z(e,r,t,!0,!n),ge(e)&&p.current.next({}),A.current.next({name:e,value:r})},[ye]),getValues:r.useCallback(Ae,[]),reset:r.useCallback((e,r={})=>{const t=e||N.current;if(_&&!r.keepValues)for(const e of Object.values(v.current))if(e&&e._f){const r=Array.isArray(e._f.refs)?e._f.refs[0]:e._f.ref;if(xe(r))try{r.closest("form").reset();break}catch(e){}}!r.keepDefaultValues&&(N.current=Object.assign({},t)),r.keepValues||(v.current={},O.current.next({values:Object.assign({},t)}),A.current.next({value:Object.assign({},t)}),j.current.next({fields:Object.assign({},t),isReset:!0})),we(r)},[]),clearErrors:r.useCallback(e=>{e&&(Array.isArray(e)?e:[e]).forEach(e=>ee(U.current.errors,e)),p.current.next({errors:e?U.current.errors:{}})},[]),unregister:r.useCallback((e,r={})=>{for(const t of e?Array.isArray(e)?e:[e]:Object.keys(x.current))x.current.delete(t),L.current.delete(t),l(v.current,t)&&(r.keepIsValid||(ee(E.current,t),ee(B.current,t)),!r.keepError&&ee(U.current.errors,t),!r.keepValue&&ee(v.current,t),!r.keepDirty&&ee(U.current.dirtyFields,t),!r.keepTouched&&ee(U.current.touchedFields,t),!r.keepDefaultValue&&ee(N.current,t),A.current.next({name:t}));p.current.next(Object.assign(Object.assign(Object.assign({},U.current),r.keepDirty?{isDirty:ce()}:{}),W.current?{}:{isValid:X()})),r.keepIsValid||Ve()},[]),setError:r.useCallback((e,r,t)=>{const n=((l(v.current,e)||{_f:{}})._f||{}).ref;M(U.current.errors,e,Object.assign(Object.assign({},r),{ref:n})),p.current.next({errors:U.current.errors,isValid:!1}),t&&t.shouldFocus&&n&&n.focus&&n.focus()},[])}},exports.useFormContext=F,exports.useFormState=D,exports.useWatch=function(e){const{control:t,name:n,defaultValue:s}=e||{},c=F(),{watchInternal:u,watchSubjectRef:i}=t||c.control,[l,o]=r.useState(a(s)?u(n):s);return r.useEffect(()=>{u(n);const e=i.current.subscribe({next:({name:e,value:r})=>{(!n||!e||(Array.isArray(n)?n:[n]).some(r=>e&&r&&e.startsWith(r)))&&o(de(e)&&n===e&&!a(r)?r:u(n,s))}});return()=>e.unsubscribe()},[n]),l};
|
2
2
|
//# sourceMappingURL=index.cjs.production.min.js.map
|