react-hook-form 5.1.2 → 5.1.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.
@@ -1443,12 +1443,7 @@ function __rest(s, e) {
|
|
1443
1443
|
|
1444
1444
|
const FormGlobalContext = createContext(null);
|
1445
1445
|
function useFormContext() {
|
1446
|
-
|
1447
|
-
if (isNullOrUndefined(context)) {
|
1448
|
-
// eslint-disable-next-line no-console
|
1449
|
-
console.warn('Missing FormContext');
|
1450
|
-
}
|
1451
|
-
return context;
|
1446
|
+
return useContext(FormGlobalContext);
|
1452
1447
|
}
|
1453
1448
|
function FormContext(_a) {
|
1454
1449
|
var { children, formState, errors } = _a, restMethods = __rest(_a, ["children", "formState", "errors"]);
|
@@ -5152,14 +5152,7 @@ function useForm(_a) {
|
|
5152
5152
|
|
5153
5153
|
var FormGlobalContext = React.createContext(null);
|
5154
5154
|
function useFormContext() {
|
5155
|
-
|
5156
|
-
|
5157
|
-
if (isNullOrUndefined(context)) {
|
5158
|
-
// eslint-disable-next-line no-console
|
5159
|
-
console.warn('Missing FormContext');
|
5160
|
-
}
|
5161
|
-
|
5162
|
-
return context;
|
5155
|
+
return React.useContext(FormGlobalContext);
|
5163
5156
|
}
|
5164
5157
|
function FormContext(_a) {
|
5165
5158
|
var children = _a.children,
|
package/dist/react-hook-form.js
CHANGED
@@ -1446,12 +1446,7 @@ function __rest(s, e) {
|
|
1446
1446
|
|
1447
1447
|
const FormGlobalContext = React.createContext(null);
|
1448
1448
|
function useFormContext() {
|
1449
|
-
|
1450
|
-
if (isNullOrUndefined(context)) {
|
1451
|
-
// eslint-disable-next-line no-console
|
1452
|
-
console.warn('Missing FormContext');
|
1453
|
-
}
|
1454
|
-
return context;
|
1449
|
+
return React.useContext(FormGlobalContext);
|
1455
1450
|
}
|
1456
1451
|
function FormContext(_a) {
|
1457
1452
|
var { children, formState, errors } = _a, restMethods = __rest(_a, ["children", "formState", "errors"]);
|
@@ -1 +1 @@
|
|
1
|
-
import*as e from"react";import{createContext as r,useContext as t,createElement as n,useState as s,useRef as c,useEffect as u,isValidElement as i,cloneElement as a,Fragment as o}from"react";var l=e=>void 0===e,f=e=>null===e||l(e),d=e=>Array.isArray(e);const g=e=>"object"==typeof e;var m=e=>!f(e)&&!d(e)&&g(e),h=e=>m(e)&&e.nodeType===Node.ELEMENT_NODE;const v={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit"},b="undefined",p={BLUR:"blur",CHANGE:"change",INPUT:"input"},O="max",y="min",j="maxLength",S="minLength",w="pattern",x="required",R="validate",E=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,V=/^\w*$/,C=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,B=/\\(\\)?/g;var N=e=>!d(e)&&(V.test(e)||!E.test(e)),F=e=>{const r=[];return e.replace(C,(e,t,n,s)=>{r.push(n?s.replace(B,"$1"):t||e)}),r};function k(e,r,t){let n=-1;const s=N(r)?[r]:F(r),c=s.length,u=c-1;for(;++n<c;){const r=s[n];let c=t;if(n!==u){const t=e[r];c=m(t)||d(t)?t:isNaN(s[n+1])?{}:[]}e[r]=c,e=e[r]}return e}var L=e=>Object.entries(e).reduce((e,[r,t])=>N(r)?Object.assign(Object.assign({},e),{[r]:t}):(k(e,r,t),e),{}),$=(e,r,t)=>{const n=r.split(/[,[\].]+?/).filter(Boolean).reduce((e,r)=>f(e)?e:e[r],e);return l(n)||n===e?e[r]||t:n},A=(e,r)=>{for(const t in e)if($(r,t)){const r=e[t];if(r){if(h(r.ref)&&r.ref.focus){r.ref.focus();break}if(r.options){r.options[0].ref.focus();break}}}},M=(e,r)=>{h(e)&&e.removeEventListener&&(e.removeEventListener(p.INPUT,r),e.removeEventListener(p.CHANGE,r),e.removeEventListener(p.BLUR,r))},P=e=>!!e&&"radio"===e.type,D=e=>!!e&&"checkbox"===e.type;function W(e){return!e||e instanceof HTMLElement&&e.nodeType!==Node.DOCUMENT_NODE&&W(e.parentNode)}var I=e=>m(e)&&!Object.keys(e).length;function T(e){return d(e)?e:F(e)}function U(e,r){return 1==r.length?e:function(e,r){const t=N(r)?[r]:T(r),n=r.length;let s=0;for(;s<n;)e=l(e)?s++:e[t[s++]];return s==n?e:void 0}(e,function(e,r,t){let n=-1,s=e.length;r<0&&(r=-r>s?0:s+r),(t=t>s?s:t)<0&&(t+=s),s=r>t?0:t-r;const c=Array(s);for(;++n<s;)c[n]=e[n+r];return c}(r,0,-1))}function z(e,r){return r.forEach(r=>{!function(e,r){const t=N(r)?[r]:T(r),n=U(e,t),s=t[t.length-1],c=!(null!=n)||delete n[s];let u=void 0;for(let r=0;r<t.slice(0,-1).length;r++){let n=-1,s=void 0;const c=t.slice(0,-(r+1)),i=c.length-1;for(r>0&&(u=e);++n<c.length;){const r=c[n];s=s?s[r]:e[r],i===n&&(m(s)&&I(s)?u?delete u[r]:delete e[r]:d(s)&&!s.filter(e=>m(e)&&!I(e)).length&&u&&delete u[r]),u=s}}}(e,r)}),e}const H={isValid:!1,value:""};var G=e=>d(e)?e.reduce((e,{ref:{checked:r,value:t}})=>r?{isValid:!0,value:t}:e,H):H,_=e=>[...e].filter(({selected:e})=>e).map(({value:e})=>e),q=e=>!!e&&"file"===e.type,J=e=>!!e&&"select-multiple"===e.type,K=e=>""===e;const Q={value:!1,isValid:!1},X={value:!0,isValid:!0};var Y=e=>{if(d(e)){if(e.length>1){const r=e.filter(({ref:{checked:e}})=>e).map(({ref:{value:e}})=>e);return{value:r,isValid:!!r.length}}const{checked:r,value:t,attributes:n}=e[0].ref;return r?n&&!l(n.value)?l(t)||K(t)?X:{value:t,isValid:!0}:X:Q}return Q};function Z(e,r){const{name:t,value:n}=r,s=e[t];return q(r)?r.files:P(r)?s?G(s.options).value:"":J(r)?_(r.options):D(r)?!!s&&Y(s.options).value:n}var ee=e=>"string"==typeof e,re=(e,r)=>{const t={},n=ee(r),s=d(r),c=r&&r.nest;for(const u in e)(l(r)||c||n&&u.startsWith(r)||s&&r.find(e=>u.startsWith(e)))&&(t[u]=Z(e,e[u].ref));return t},te=(e,{type:r,types:t,message:n})=>m(e)&&e.type===r&&e.message===n&&((e={},r={})=>Object.entries(e).reduce((e,[t,n])=>!!e&&r[t]&&r[t]===n,!0))(e.types,t);var ne=e=>e instanceof RegExp,se=e=>{const r=m(e)&&!ne(e);return{value:r?e.value:e,message:r?e.message:""}},ce=e=>"function"==typeof e,ue=e=>"boolean"==typeof e;function ie(e,r,t="validate"){const n=ee(e);if(n||ue(e)&&!e){return{type:t,message:n?e:"",ref:r}}}var ae=(e,r,t,n,s)=>{if(!r)return{};const c=t[e];return Object.assign(Object.assign({},c),{types:Object.assign(Object.assign({},c&&c.types?c.types:{}),{[n]:s||!0})})},oe=async(e,r,{ref:t,ref:{type:n,value:s,name:c},options:u,required:i,maxLength:a,minLength:o,min:l,max:d,pattern:g,validate:h})=>{const v=e.current,b={},p=P(t),E=D(t),V=p||E,C=K(s),B=ae.bind(null,c,r,b),N=(e,n,s,u=j,i=S)=>{const a=e?n:s;if(b[c]=Object.assign({type:e?u:i,message:a,ref:t},B(e?u:i,a)),!r)return b};if(i&&(!p&&!E&&(C||f(s))||ue(s)&&!s||E&&!Y(u).isValid||p&&!G(u).isValid)){const{value:e,message:n}=ee(i)?{value:!!i,message:i}:se(i);if(e&&(b[c]=Object.assign({type:x,message:n,ref:V?v[c].options[0].ref:t},B(x,n)),!r))return b}if(!f(l)||!f(d)){let e,c;const{value:u,message:i}=se(d),{value:a,message:o}=se(l);if("number"===n||!n&&!isNaN(s)){const r=t.valueAsNumber||parseFloat(s);f(u)||(e=r>u),f(a)||(c=r<a)}else{const r=t.valueAsDate||new Date(s);ee(u)&&(e=r>new Date(u)),ee(a)&&(c=r<new Date(a))}if((e||c)&&(N(!!e,i,o,O,y),!r))return b}if(ee(s)&&!C&&(a||o)){const{value:e,message:t}=se(a),{value:n,message:c}=se(o),u=s.toString().length,i=a&&u>e,l=o&&u<n;if((i||l)&&(N(!!i,t,c),!r))return b}if(g&&!C){const{value:e,message:n}=se(g);if(ne(e)&&!e.test(s)&&(b[c]=Object.assign({type:w,message:n,ref:t},B(w,n)),!r))return b}if(h){const e=Z(v,t),n=V&&u?u[0].ref:t;if(ce(h)){const t=ie(await h(e),n);if(t&&(b[c]=Object.assign(Object.assign({},t),B(R,t.message)),!r))return b}else if(m(h)){const t=Object.entries(h),s=await new Promise(s=>{t.reduce(async(u,[i,a],o)=>{if(!I(await u)&&!r||!ce(a))return s(u);let l;const f=ie(await a(e),n,i);return f?(l=Object.assign(Object.assign({},f),B(i,f.message)),r&&(b[c]=l)):l=u,t.length-1===o?s(l):l},{})});if(!I(s)&&(b[c]=Object.assign({ref:n},s),!r))return b}}return b};const le=(e,r)=>d(e.inner)?e.inner.reduce((e,{path:t,message:n,type:s})=>Object.assign(Object.assign({},e),e[t]&&r?{[t]:ae(t,r,e,s,n)}:{[t]:e[t]||Object.assign({message:n,type:s},r?{types:{[s]:n||!0}}:{})}),{}):{[e.path]:{message:e.message,type:e.type}};async function fe(e,r,t,n,s){if(n)return n(t,s);try{return{values:await e.validate(t,{abortEarly:!1,context:s}),errors:{}}}catch(e){return{values:{},errors:L(le(e,r))}}}var de=(e,r,t)=>l(e[r])?$(e,r,t):e[r];var ge=e=>f(e)||!g(e);const me=(e,r)=>{const t=(r,t,n)=>{const s=n?`${e}.${t}`:`${e}[${t}]`;return ge(r)?s:me(s,r)};return d(r)?r.map((e,r)=>t(e,r)):Object.entries(r).map(([e,r])=>t(r,e,!0))};var he=(e,r)=>(function e(r){return r.reduce((r,t)=>r.concat(d(t)?e(t):t),[])})(me(e,r)),ve=(e,r,t,n,s)=>{let c;return t.add(r),I(e)?c=s||void 0:l(e[r])?(c=$(L(e),r),d(s)&&d(c)&&c.length!==s.length&&(c=s),l(c)||he(r,c).forEach(e=>t.add(e))):(c=e[r],t.add(r)),l(c)?m(n)?de(n,r):n:c},be=({isOnChange:e,hasError:r,isBlurEvent:t,isOnSubmit:n,isReValidateOnSubmit:s,isOnBlur:c,isReValidateOnBlur:u,isSubmitted:i})=>e&&t||n&&s||n&&!i||c&&!t&&!r||u&&!t&&r||s&&i,pe=(e,r)=>{const t=L(re(e));return r?$(t,r,t):t};function Oe(e,r){let t=!1;if(!d(e)||!d(r)||e.length!==r.length)return!0;for(let n=0;n<e.length&&!t;n++){const s=e[n],c=r[n];if(l(c)||Object.keys(s).length!==Object.keys(c).length){t=!0;break}for(const e in s)if(s[e]!==c[e]){t=!0;break}}return t}const ye=(e,r)=>e.startsWith(`${r}[`);var je=(e,r)=>[...e].reduce((e,t)=>!!ye(r,t)||e,!1),Se=e=>typeof FileList!==b&&e instanceof FileList;var we=e=>({isOnSubmit:!e||e===v.onSubmit,isOnBlur:e===v.onBlur,isOnChange:e===v.onChange});const{useRef:xe,useState:Re,useCallback:Ee,useEffect:Ve}=e;function Ce({mode:e=v.onSubmit,reValidateMode:r=v.onChange,validationSchema:t,validationResolver:n,validationContext:s,defaultValues:c={},submitFocusError:u=!0,validateCriteriaMode:i}={}){const a=xe({}),o="all"===i,g=xe({}),O=xe({}),y=xe({}),j=xe(new Set),S=xe(new Set),w=xe(new Set),x=xe(new Set),R=xe(!0),E=xe({}),V=xe(c),C=xe(!1),B=xe(!1),N=xe(!1),F=xe(!1),T=xe(0),U=xe(!1),H=xe(),G=xe({}),_=xe(s),Q=xe(new Set),[,X]=Re(),{isOnBlur:Y,isOnSubmit:ne,isOnChange:se}=xe(we(e)).current,ie=typeof window===b,ae=!(!t&&!n),le=typeof document!==b&&!ie&&!l(window.HTMLElement),me=le&&"Proxy"in window,he=xe({dirty:!me,dirtyFields:!me,isSubmitted:ne,submitCount:!me,touched:!me,isSubmitting:!me,isValid:!me}),{isOnBlur:ye,isOnSubmit:Ce}=xe(we(r)).current,Be=Ee(()=>{C.current||X({})},[]),Ne=Ee((e,r,t,n)=>{let s=t||function({errors:e,name:r,error:t,validFields:n,fieldsWithValidation:s}){const c=I(t),u=I(e),i=$(t,r),a=$(e,r);return!(c&&n.has(r)||a&&a.isManual)&&(!!(u!==c||!u&&!a||c&&s.has(r)&&!n.has(r))||i&&!te(a,i))}({errors:g.current,error:r,name:e,validFields:x.current,fieldsWithValidation:w.current});if(I(r)?((w.current.has(e)||ae)&&(x.current.add(e),s=s||$(g.current,e)),g.current=z(g.current,[e])):(x.current.delete(e),s=s||!$(g.current,e),k(g.current,e,r[e])),s&&!n)return Be(),!0},[Be,ae]),Fe=Ee((e,r)=>{const t=e.ref,n=e.options,{type:s}=t,c=le&&h(t)&&f(r)?"":r;return P(t)&&n?n.forEach(({ref:e})=>e.checked=e.value===c):q(t)?K(c)||Se(c)?t.files=c:t.value=c:J(t)?[...t.options].forEach(e=>e.selected=c.includes(e.value)):D(t)&&n?n.length>1?n.forEach(({ref:e})=>e.checked=c.includes(e.value)):n[0].ref.checked=!!c:t.value=c,!!s},[le]),ke=e=>{if(!a.current[e]||!he.current.dirty&&!he.current.dirtyFields)return!1;const r=je(Q.current,e),t=S.current.size;let n=E.current[e]!==Z(a.current,a.current[e].ref);if(r){const r=e.substring(0,e.indexOf("["));n=Oe(pe(a.current,r),$(V.current,r))}const s=(r?F.current:S.current.has(e))!==n;return n?S.current.add(e):S.current.delete(e),F.current=r?n:!!S.current.size,he.current.dirty?s:t!==S.current.size},Le=Ee(e=>{if(ke(e)||!$(O.current,e)&&he.current.touched)return!!k(O.current,e,!0)},[]),$e=Ee((e,r,t)=>{const n=d(r);for(const s in r){const c=`${t||e}${n?`[${s}]`:`.${s}`}`;m(r[s])&&$e(e,r[s],c);const u=a.current[c];u&&(Fe(u,r[s]),Le(c))}},[Fe,Le]),Ae=Ee((e,r)=>{const t=a.current[e];if(t){Fe(t,r);const n=Le(e);if(ue(n))return n}else ge(r)||$e(e,r)},[Le,Fe,$e]),Me=Ee(async(e,r)=>{const t=a.current[e];if(!t)return!1;const n=await oe(a,o,t);return Ne(e,n,!1,r),I(n)},[Ne,o]),Pe=Ee(async e=>{const{errors:r}=await fe(t,o,pe(a.current),n,_.current),s=R.current;return R.current=I(r),d(e)?(e.forEach(e=>{const t=$(r,e);t?k(g.current,e,t):z(g.current,[e])}),Be()):Ne(e,$(r,e)?{[e]:$(r,e)}:{},s!==R.current),I(g.current)},[Be,Ne,o,n,t]),De=Ee(async e=>{const r=e||Object.keys(a.current);if(ae)return Pe(r);if(d(r)){const e=await Promise.all(r.map(async e=>await Me(e,!0)));return Be(),e.every(Boolean)}return await Me(r)},[Pe,Me,Be,ae]),We=e=>B.current||j.current.has(e)||j.current.has((e.match(/\w+/)||[])[0]);function Ie(e,r,t){let n=!1;const s=d(e);(s?e:[e]).forEach(e=>{const t=ee(e);n=!(!Ae(t?e:Object.keys(e)[0],t?r:Object.values(e)[0])&&!s)||We(e)}),(n||s)&&Be(),(t||s&&r)&&De(s?void 0:e)}H.current=H.current?H.current:async({type:e,target:r})=>{const s=r?r.name:"",c=a.current,u=g.current,i=c[s],l=$(u,s);let f;if(!i)return;const d=e===p.BLUR,m=be({hasError:!!l,isOnChange:se,isBlurEvent:d,isOnSubmit:ne,isReValidateOnSubmit:Ce,isOnBlur:Y,isReValidateOnBlur:ye,isSubmitted:N.current}),h=ke(s);let v=We(s)||h;if(d&&!$(O.current,s)&&he.current.touched&&(k(O.current,s,!0),v=!0),m)return v&&Be();if(ae){const{errors:e}=await fe(t,o,pe(c),n,_.current),r=R.current;R.current=I(e),f=$(e,s)?{[s]:$(e,s)}:{},r!==R.current&&(v=!0)}else f=await oe(a,o,i);!Ne(s,f)&&v&&Be()};const Te=Ee((e={})=>{const r=I(V.current)?re(a.current):V.current;fe(t,o,L(Object.assign(Object.assign({},r),e)),n,_.current).then(({errors:e})=>{const r=R.current;R.current=I(e),r!==R.current&&Be()})},[Be,o,n]),Ue=(e,r)=>{!l(H.current)&&e&&function(e,r,t,n){if(!t)return;const{ref:s,ref:{name:c,type:u},mutationWatcher:i}=t;if(!u)return void delete e[c];const a=e[c];if((P(s)||D(s))&&a){const{options:t}=a;d(t)&&t.length?(t.forEach(({ref:e,mutationWatcher:s},c)=>{(e&&W(e)||n)&&(M(e,r),s&&s.disconnect(),z(t,[`[${c}]`]))}),t&&!t.filter(Boolean).length&&delete e[c]):delete e[c]}else(W(s)||n)&&(M(s,r),i&&i.disconnect(),delete e[c])}(a.current,H.current,e,r)},ze=Ee((e,r)=>{if(!e||e&&je(Q.current,e.ref.name)&&!r)return;Ue(e,r);const{name:t}=e.ref;g.current=z(g.current,[t]),O.current=z(O.current,[t]),E.current=z(E.current,[t]),[S,w,x,j].forEach(e=>e.current.delete(t)),(he.current.isValid||he.current.touched)&&(Be(),ae&&Te())},[Be,ae,Te]);const He=({name:e,type:r,types:t,message:n,preventRender:s})=>{const c=a.current[e];te(g.current[e],{type:r,message:n,types:t})||(k(g.current,e,{type:r,types:t,message:n,ref:c?c.ref:{},isManual:!0}),s||Be())};function Ge(e){I(a.current)||(d(e)?e:[e]).forEach(e=>ze(a.current[e],!0))}function _e(e,r={}){if(!e.name)return console.warn("Missing name @",e);const{name:t,type:n,value:s}=e,c=Object.assign({ref:e},r),u=a.current,i=P(e)||D(e);let f,g=u[t],m=!0,v=!1;if(i?g&&d(g.options)&&g.options.find(({ref:e})=>s===e.value):g)return void(u[t]=Object.assign(Object.assign({},g),r));if(n){const s=function(e,r){const t=new MutationObserver(()=>{W(e)&&(t.disconnect(),r())});return t.observe(window.document,{childList:!0,subtree:!0}),t}(e,()=>ze(c));g=i?Object.assign({options:[...g&&g.options||[],{ref:e,mutationWatcher:s}],ref:{type:n,name:t}},r):Object.assign(Object.assign({},c),{mutationWatcher:s})}else g=c;if(u[t]=g,I(V.current)||(f=de(V.current,t),m=l(f),v=je(Q.current,t),m||v||Fe(g,f)),ae&&!v&&he.current.isValid?Te():I(r)||(w.current.add(t),!ne&&he.current.isValid&&oe(a,o,g).then(e=>{const r=R.current;I(e)?x.current.add(t):R.current=!1,r!==R.current&&Be()})),E.current[t]||v&&m||(E.current[t]=m?Z(u,g.ref):f),!n)return;!function({field:e,handleChange:r,isRadioOrCheckbox:t}){const{ref:n}=e;h(n)&&n.addEventListener&&r&&(n.addEventListener(t?p.CHANGE:p.INPUT,r),n.addEventListener(p.BLUR,r))}({field:i&&g.options?g.options[g.options.length-1]:g,isRadioOrCheckbox:i,handleChange:H.current})}function qe(e,r){if(!ie)if(ee(e))_e({name:e},r);else{if(!(m(e)&&"name"in e))return r=>r&&_e(r,e);_e(e,r)}}const Je=Ee(e=>async r=>{let s,c;r&&(r.preventDefault(),r.persist());const i=a.current;he.current.isSubmitting&&(U.current=!0,Be());try{if(ae){c=re(i);const{errors:e,values:r}=await fe(t,o,L(c),n,_.current);g.current=e,s=e,c=r}else{const{errors:e,values:r}=await Object.values(i).reduce(async(e,r)=>{if(!r)return e;const t=await e,{ref:n,ref:{name:s}}=r;if(!i[s])return t;const c=await oe(a,o,r);return c[s]?(k(t.errors,s,c[s]),x.current.delete(s),t):(w.current.has(s)&&x.current.add(s),t.values[s]=Z(i,n),t)},Promise.resolve({errors:{},values:{}}));s=e,c=r}I(s)?(g.current={},await e(L(c),r)):(u&&le&&A(i,s),g.current=s)}finally{N.current=!0,U.current=!1,T.current=T.current+1,Be()}},[le,Be,ae,u,o,n,t]),Ke=e=>{const r=re(a.current),t=I(r)?V.current:r;return e&&e.nest?L(t):t};Ve(()=>()=>{C.current=!0,a.current&&"production"===process.env.NODE_ENV&&Object.values(a.current).forEach(e=>ze(e,!0))},[ze]),ae||(R.current=x.current.size>=w.current.size&&I(g.current));const Qe={dirty:F.current,dirtyFields:S.current,isSubmitted:N.current,submitCount:T.current,touched:O.current,isSubmitting:U.current,isValid:ne?N.current&&I(g.current):R.current};return{watch:function(e,r){const t=l(r)?l(V.current)?{}:V.current:r,n=re(a.current,e),s=j.current;if(ee(e))return ve(n,e,s,t,Q.current.has(e)?y.current[e]:void 0);if(d(e))return e.reduce((e,r)=>Object.assign(Object.assign({},e),{[r]:ve(n,r,s,t)}),{});B.current=!0;const c=!I(n)&&n||r||V.current;return e&&e.nest?L(c):c},control:Object.assign(Object.assign({register:qe,unregister:Ge,removeFieldEventListener:Ue,getValues:Ke,setValue:Ie,reRender:Be,triggerValidation:De},ae?{validateSchemaIsValid:Te}:{}),{formState:Qe,mode:{isOnBlur:Y,isOnSubmit:ne,isOnChange:se},reValidateMode:{isReValidateOnBlur:ye,isReValidateOnSubmit:Ce},errorsRef:g,touchedFieldsRef:O,fieldsRef:a,resetFieldArrayFunctionRef:G,validFieldsRef:x,dirtyFieldsRef:S,fieldsWithValidationRef:w,watchFieldArrayRef:y,fieldArrayNamesRef:Q,isDirtyRef:F,readFormStateRef:he,defaultValuesRef:V}),handleSubmit:Je,setValue:Ee(Ie,[Be,Ae,De]),triggerValidation:De,getValues:Ee(Ke,[]),reset:Ee((e,r={})=>{if(le)for(const e of Object.values(a.current))if(e&&h(e.ref)&&e.ref.closest)try{e.ref.closest("form").reset();break}catch(e){}e&&(V.current=e),Object.values(G.current).forEach(e=>ce(e)&&e()),(({errors:e,dirty:r,isSubmitted:t,touched:n,isValid:s,submitCount:c})=>{a.current={},e||(g.current={}),n||(O.current={}),s||(x.current=new Set,w.current=new Set,R.current=!0),r||(S.current=new Set,F.current=!1),t||(N.current=!1),c||(T.current=0),E.current={},j.current=new Set,B.current=!1})(r),Be()},[]),register:Ee(qe,[V.current,E.current,y.current]),unregister:Ee(Ge,[]),clearError:Ee(function(e){l(e)?g.current={}:z(g.current,d(e)?e:[e]),Be()},[]),setError:Ee(function(e,r="",t){ee(e)?He(Object.assign({name:e},m(r)?{types:r,type:""}:{type:r,message:t})):d(e)&&(e.forEach(e=>He(Object.assign(Object.assign({},e),{preventRender:!0}))),Be())},[]),errors:g.current,formState:me?new Proxy(Qe,{get:(e,r)=>r in e?(he.current[r]=!0,e[r]):{}}):Qe}}function Be(e,r){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&r.indexOf(n)<0&&(t[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(e);s<n.length;s++)r.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(e,n[s])&&(t[n[s]]=e[n[s]])}return t}const Ne=r(null);function Fe(){const e=t(Ne);return f(e)&&console.warn("Missing FormContext"),e}function ke(e){var{children:r,formState:t,errors:s}=e,c=Be(e,["children","formState","errors"]);return n(Ne.Provider,{value:Object.assign(Object.assign({},c),{formState:t,errors:s})},r)}var Le=()=>{const e=typeof performance===b?Date.now():1e3*performance.now();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(r){const t=(16*Math.random()+e)%16|0;return("x"==r?t:3&t|8).toString(16)})};const $e=(e,r)=>Object.assign(Object.assign({},m(e)?e:{value:e}),{[r]:Le()}),Ae=(e,r)=>(d(e)?e:[]).map(e=>$e(e,r)),Me=(e,r)=>[...e.slice(0,r),...e.slice(r+1)];var Pe=(e,r)=>l(r)?[]:d(r)?r.reduce(({result:e,previousIndex:r},t)=>({result:Me(e,r>-1&&r<t?t-1:t),previousIndex:t}),{result:e,previousIndex:-1}).result:Me(e,r),De=(e,r,t)=>d(e)?e.splice(t,0,e.splice(r,1)[0]):[],We=(e,r,t)=>d(e)&&([e[r],e[t]]=[e[t],e[r]]),Ie=(e,r)=>[...d(r)?r:[r||null],...e],Te=(e,r,t)=>[...e.slice(0,r),...d(t)?t:[t||null],...e.slice(r)],Ue=e=>d(e)?Array(e.length).fill(null):void 0;const{useEffect:ze,useCallback:He,useRef:Ge,useState:_e}=e,qe=({control:e,name:r,keyName:t="id"})=>{const n=Fe(),{resetFieldArrayFunctionRef:s,fieldArrayNamesRef:c,reRender:u,fieldsRef:i,getValues:a,defaultValuesRef:o,removeFieldEventListener:f,errorsRef:g,dirtyFieldsRef:m,isDirtyRef:h,touchedFieldsRef:v,readFormStateRef:b,watchFieldArrayRef:p,validFieldsRef:O,fieldsWithValidationRef:y,validateSchemaIsValid:j}=e||n.control,S=Ge($(o.current,r,[])),[w,x]=_e(Ae(S.current,t)),R=Ge(w),E=e=>e.map(e=>$e(e,t));R.current=w;const V=e=>{p.current=Object.assign(Object.assign({},p.current),{[r]:e}),x(e),b.current.isValid&&j&&j({[r]:e})},C=e=>{b.current.dirty&&(h.current=!!l(e)||Oe(e,S.current));for(const e in i.current)ye(e,r)&&i.current[e]&&f(i.current[e],!0)},B=()=>{const e=a({nest:!0})[r];if(d(e))for(let r=0;r<e.length;r++)R.current[r]=Object.assign(Object.assign({},R.current[r]),e[r])},N=()=>{C(),S.current=$(o.current,r,[]),x(Ae(S.current,t))};return ze(()=>{const e=s.current,t=c.current;return t.add(r),e[r]=N,p.current=Object.assign(Object.assign({},p.current),{[r]:w}),()=>{C(),delete e[r],t.delete(r)}},[]),{swap:He((e,t)=>{B();const n=pe(i.current,r);We(n,e,t),C(n),We(R.current,e,t),V([...R.current]),g.current[r]&&We(g.current[r],e,t),b.current.touched&&v.current[r]&&(We(v.current[r],e,t),u())},[]),move:He((e,t)=>{B();const n=pe(i.current,r);De(n,e,t),C(n),De(R.current,e,t),V([...R.current]),g.current[r]&&De(g.current[r],e,t),b.current.touched&&v.current[r]&&(De(v.current[r],e,t),u())},[]),prepend:He(e=>{C(),V(Ie(R.current,d(e)?E(e):[$e(e,t)])),g.current[r]&&(g.current[r]=Ie(g.current[r],Ue(e))),b.current.touched&&v.current[r]&&(v.current[r]=Ie(v.current[r],Ue(e)),u())},[]),append:He(e=>{b.current.dirty&&(h.current=!0,u()),V([...R.current,...d(e)?E(e):[$e(e,t)]])},[]),remove:He(e=>{let t=!1;if(l(e)||B(),C(Pe(pe(i.current,r),e)),V(Pe(R.current,e)),g.current[r]&&(g.current[r]=Pe(g.current[r],e),g.current[r].filter(Boolean).length||delete g.current[r]),b.current.touched&&v.current[r]&&(v.current[r]=Pe(v.current[r],e),t=!0),b.current.dirty&&(m.current.forEach(t=>{(l(r)||t.startsWith(`${r}[${e}]`))&&m.current.delete(t)}),t=!0),b.current.isValid&&!j){let n=-1,s=!1;const c=l(e);for(;n++<w.length;){const t=n===w.length-1,u=(d(e)?e:[e]).indexOf(n)>=0;if((u||c)&&(s=!0),s)for(const e in w[n]){const s=`${r}[${n}].${e}`;if(u||t||c)O.current.delete(s),y.current.delete(s);else{const t=`${r}[${n-1}].${e}`;O.current.has(s)&&O.current.add(t),y.current.has(s)&&y.current.add(t)}}}t=!0}t&&u()},[w]),insert:He((e,n)=>{B(),C(Te(pe(i.current,r),e)),V(Te(R.current,e,d(n)?E(n):[$e(n,t)])),g.current[r]&&(g.current[r]=Te(g.current[r],e,Ue(n))),b.current.touched&&v.current[r]&&(v.current[r]=Te(v.current[r],e,Ue(n)),u())},[]),fields:w}};const Je=e=>{var{name:r,rules:t,as:o,onBlur:f,onChange:d,onChangeName:g=v.onChange,onBlurName:h=v.onBlur,valueName:b,defaultValue:p,control:O}=e,y=Be(e,["name","rules","as","onBlur","onChange","onChangeName","onBlurName","valueName","defaultValue","control"]);const j=Fe(),{defaultValuesRef:S,setValue:w,register:x,unregister:R,errorsRef:E,removeFieldEventListener:V,triggerValidation:C,mode:{isOnSubmit:B,isOnBlur:N,isOnChange:F},reValidateMode:{isReValidateOnBlur:k,isReValidateOnSubmit:L},formState:{isSubmitted:A},fieldsRef:M,fieldArrayNamesRef:P}=O||j.control,[D,W]=s(l(p)?$(S.current,r):p),I=c(D),T=ue(D),U=()=>!be({hasError:!!$(E.current,r),isOnBlur:N,isOnSubmit:B,isOnChange:F,isReValidateOnBlur:k,isReValidateOnSubmit:L,isSubmitted:A}),z=e=>{const r=((e,r)=>ge(e)||!m(e.target)||m(e.target)&&!e.type?e:r||l(e.target.value)?e.target.checked:e.target.value)(e,T);return W(r),I.current=r,r},H=()=>{je(P.current,r)&&M.current[r]&&V(M.current[r],!0),x(Object.defineProperty({name:r},"value",{set(e){W(e),I.current=e},get:()=>I.current}),Object.assign({},t))};u(()=>{M.current[r]||(H(),W(l(p)?$(S.current,r):p))}),u(()=>(H(),()=>{je(P.current,r)||R(r)}),[r]),u(()=>{H()},[t]);const G=N||k,_=Object.assign(Object.assign(Object.assign(Object.assign({name:r},y),d?{[g]:(e=>(...t)=>w(r,z(e(t)),U()))(d)}:{[g]:e=>{const t=z(e);w(r,t,U())}}),f||G?{[h]:(...e)=>{f&&f(e),G&&C(r)}}:{}),{[b||(T?"checked":"value")]:D});return i(o)?a(o,_):n(o,_)},Ke=e=>{var{as:r,errors:t,name:s,message:c,children:u}=e,l=Be(e,["as","errors","name","message","children"]);const f=Fe(),d=$(t||f.errors,s);if(!d)return null;const{message:g,types:m}=d,h=Object.assign(Object.assign({},r?l:{}),{children:u?u({message:g||c,messages:m}):g||c});return r?i(r)?a(r,h):n(r,h):n(o,Object.assign({},h))};export{Je as Controller,Ke as ErrorMessage,ke as FormContext,qe as useFieldArray,Ce as useForm,Fe as useFormContext};
|
1
|
+
import*as e from"react";import{createContext as r,useContext as t,createElement as n,useState as c,useRef as s,useEffect as u,isValidElement as i,cloneElement as a,Fragment as o}from"react";var l=e=>void 0===e,f=e=>null===e||l(e),d=e=>Array.isArray(e);const g=e=>"object"==typeof e;var m=e=>!f(e)&&!d(e)&&g(e),h=e=>m(e)&&e.nodeType===Node.ELEMENT_NODE;const v={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit"},b="undefined",p={BLUR:"blur",CHANGE:"change",INPUT:"input"},O="max",y="min",j="maxLength",S="minLength",R="pattern",w="required",x="validate",E=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,V=/^\w*$/,B=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,C=/\\(\\)?/g;var N=e=>!d(e)&&(V.test(e)||!E.test(e)),F=e=>{const r=[];return e.replace(B,(e,t,n,c)=>{r.push(n?c.replace(C,"$1"):t||e)}),r};function k(e,r,t){let n=-1;const c=N(r)?[r]:F(r),s=c.length,u=s-1;for(;++n<s;){const r=c[n];let s=t;if(n!==u){const t=e[r];s=m(t)||d(t)?t:isNaN(c[n+1])?{}:[]}e[r]=s,e=e[r]}return e}var L=e=>Object.entries(e).reduce((e,[r,t])=>N(r)?Object.assign(Object.assign({},e),{[r]:t}):(k(e,r,t),e),{}),$=(e,r,t)=>{const n=r.split(/[,[\].]+?/).filter(Boolean).reduce((e,r)=>f(e)?e:e[r],e);return l(n)||n===e?e[r]||t:n},A=(e,r)=>{for(const t in e)if($(r,t)){const r=e[t];if(r){if(h(r.ref)&&r.ref.focus){r.ref.focus();break}if(r.options){r.options[0].ref.focus();break}}}},M=(e,r)=>{h(e)&&e.removeEventListener&&(e.removeEventListener(p.INPUT,r),e.removeEventListener(p.CHANGE,r),e.removeEventListener(p.BLUR,r))},P=e=>!!e&&"radio"===e.type,D=e=>!!e&&"checkbox"===e.type;function W(e){return!e||e instanceof HTMLElement&&e.nodeType!==Node.DOCUMENT_NODE&&W(e.parentNode)}var I=e=>m(e)&&!Object.keys(e).length;function T(e){return d(e)?e:F(e)}function U(e,r){return 1==r.length?e:function(e,r){const t=N(r)?[r]:T(r),n=r.length;let c=0;for(;c<n;)e=l(e)?c++:e[t[c++]];return c==n?e:void 0}(e,function(e,r,t){let n=-1,c=e.length;r<0&&(r=-r>c?0:c+r),(t=t>c?c:t)<0&&(t+=c),c=r>t?0:t-r;const s=Array(c);for(;++n<c;)s[n]=e[n+r];return s}(r,0,-1))}function z(e,r){return r.forEach(r=>{!function(e,r){const t=N(r)?[r]:T(r),n=U(e,t),c=t[t.length-1],s=!(null!=n)||delete n[c];let u=void 0;for(let r=0;r<t.slice(0,-1).length;r++){let n=-1,c=void 0;const s=t.slice(0,-(r+1)),i=s.length-1;for(r>0&&(u=e);++n<s.length;){const r=s[n];c=c?c[r]:e[r],i===n&&(m(c)&&I(c)?u?delete u[r]:delete e[r]:d(c)&&!c.filter(e=>m(e)&&!I(e)).length&&u&&delete u[r]),u=c}}}(e,r)}),e}const H={isValid:!1,value:""};var G=e=>d(e)?e.reduce((e,{ref:{checked:r,value:t}})=>r?{isValid:!0,value:t}:e,H):H,_=e=>[...e].filter(({selected:e})=>e).map(({value:e})=>e),q=e=>!!e&&"file"===e.type,J=e=>!!e&&"select-multiple"===e.type,K=e=>""===e;const Q={value:!1,isValid:!1},X={value:!0,isValid:!0};var Y=e=>{if(d(e)){if(e.length>1){const r=e.filter(({ref:{checked:e}})=>e).map(({ref:{value:e}})=>e);return{value:r,isValid:!!r.length}}const{checked:r,value:t,attributes:n}=e[0].ref;return r?n&&!l(n.value)?l(t)||K(t)?X:{value:t,isValid:!0}:X:Q}return Q};function Z(e,r){const{name:t,value:n}=r,c=e[t];return q(r)?r.files:P(r)?c?G(c.options).value:"":J(r)?_(r.options):D(r)?!!c&&Y(c.options).value:n}var ee=e=>"string"==typeof e,re=(e,r)=>{const t={},n=ee(r),c=d(r),s=r&&r.nest;for(const u in e)(l(r)||s||n&&u.startsWith(r)||c&&r.find(e=>u.startsWith(e)))&&(t[u]=Z(e,e[u].ref));return t},te=(e,{type:r,types:t,message:n})=>m(e)&&e.type===r&&e.message===n&&((e={},r={})=>Object.entries(e).reduce((e,[t,n])=>!!e&&r[t]&&r[t]===n,!0))(e.types,t);var ne=e=>e instanceof RegExp,ce=e=>{const r=m(e)&&!ne(e);return{value:r?e.value:e,message:r?e.message:""}},se=e=>"function"==typeof e,ue=e=>"boolean"==typeof e;function ie(e,r,t="validate"){const n=ee(e);if(n||ue(e)&&!e){return{type:t,message:n?e:"",ref:r}}}var ae=(e,r,t,n,c)=>{if(!r)return{};const s=t[e];return Object.assign(Object.assign({},s),{types:Object.assign(Object.assign({},s&&s.types?s.types:{}),{[n]:c||!0})})},oe=async(e,r,{ref:t,ref:{type:n,value:c,name:s},options:u,required:i,maxLength:a,minLength:o,min:l,max:d,pattern:g,validate:h})=>{const v=e.current,b={},p=P(t),E=D(t),V=p||E,B=K(c),C=ae.bind(null,s,r,b),N=(e,n,c,u=j,i=S)=>{const a=e?n:c;if(b[s]=Object.assign({type:e?u:i,message:a,ref:t},C(e?u:i,a)),!r)return b};if(i&&(!p&&!E&&(B||f(c))||ue(c)&&!c||E&&!Y(u).isValid||p&&!G(u).isValid)){const{value:e,message:n}=ee(i)?{value:!!i,message:i}:ce(i);if(e&&(b[s]=Object.assign({type:w,message:n,ref:V?v[s].options[0].ref:t},C(w,n)),!r))return b}if(!f(l)||!f(d)){let e,s;const{value:u,message:i}=ce(d),{value:a,message:o}=ce(l);if("number"===n||!n&&!isNaN(c)){const r=t.valueAsNumber||parseFloat(c);f(u)||(e=r>u),f(a)||(s=r<a)}else{const r=t.valueAsDate||new Date(c);ee(u)&&(e=r>new Date(u)),ee(a)&&(s=r<new Date(a))}if((e||s)&&(N(!!e,i,o,O,y),!r))return b}if(ee(c)&&!B&&(a||o)){const{value:e,message:t}=ce(a),{value:n,message:s}=ce(o),u=c.toString().length,i=a&&u>e,l=o&&u<n;if((i||l)&&(N(!!i,t,s),!r))return b}if(g&&!B){const{value:e,message:n}=ce(g);if(ne(e)&&!e.test(c)&&(b[s]=Object.assign({type:R,message:n,ref:t},C(R,n)),!r))return b}if(h){const e=Z(v,t),n=V&&u?u[0].ref:t;if(se(h)){const t=ie(await h(e),n);if(t&&(b[s]=Object.assign(Object.assign({},t),C(x,t.message)),!r))return b}else if(m(h)){const t=Object.entries(h),c=await new Promise(c=>{t.reduce(async(u,[i,a],o)=>{if(!I(await u)&&!r||!se(a))return c(u);let l;const f=ie(await a(e),n,i);return f?(l=Object.assign(Object.assign({},f),C(i,f.message)),r&&(b[s]=l)):l=u,t.length-1===o?c(l):l},{})});if(!I(c)&&(b[s]=Object.assign({ref:n},c),!r))return b}}return b};const le=(e,r)=>d(e.inner)?e.inner.reduce((e,{path:t,message:n,type:c})=>Object.assign(Object.assign({},e),e[t]&&r?{[t]:ae(t,r,e,c,n)}:{[t]:e[t]||Object.assign({message:n,type:c},r?{types:{[c]:n||!0}}:{})}),{}):{[e.path]:{message:e.message,type:e.type}};async function fe(e,r,t,n,c){if(n)return n(t,c);try{return{values:await e.validate(t,{abortEarly:!1,context:c}),errors:{}}}catch(e){return{values:{},errors:L(le(e,r))}}}var de=(e,r,t)=>l(e[r])?$(e,r,t):e[r];var ge=e=>f(e)||!g(e);const me=(e,r)=>{const t=(r,t,n)=>{const c=n?`${e}.${t}`:`${e}[${t}]`;return ge(r)?c:me(c,r)};return d(r)?r.map((e,r)=>t(e,r)):Object.entries(r).map(([e,r])=>t(r,e,!0))};var he=(e,r)=>(function e(r){return r.reduce((r,t)=>r.concat(d(t)?e(t):t),[])})(me(e,r)),ve=(e,r,t,n,c)=>{let s;return t.add(r),I(e)?s=c||void 0:l(e[r])?(s=$(L(e),r),d(c)&&d(s)&&s.length!==c.length&&(s=c),l(s)||he(r,s).forEach(e=>t.add(e))):(s=e[r],t.add(r)),l(s)?m(n)?de(n,r):n:s},be=({isOnChange:e,hasError:r,isBlurEvent:t,isOnSubmit:n,isReValidateOnSubmit:c,isOnBlur:s,isReValidateOnBlur:u,isSubmitted:i})=>e&&t||n&&c||n&&!i||s&&!t&&!r||u&&!t&&r||c&&i,pe=(e,r)=>{const t=L(re(e));return r?$(t,r,t):t};function Oe(e,r){let t=!1;if(!d(e)||!d(r)||e.length!==r.length)return!0;for(let n=0;n<e.length&&!t;n++){const c=e[n],s=r[n];if(l(s)||Object.keys(c).length!==Object.keys(s).length){t=!0;break}for(const e in c)if(c[e]!==s[e]){t=!0;break}}return t}const ye=(e,r)=>e.startsWith(`${r}[`);var je=(e,r)=>[...e].reduce((e,t)=>!!ye(r,t)||e,!1),Se=e=>typeof FileList!==b&&e instanceof FileList;var Re=e=>({isOnSubmit:!e||e===v.onSubmit,isOnBlur:e===v.onBlur,isOnChange:e===v.onChange});const{useRef:we,useState:xe,useCallback:Ee,useEffect:Ve}=e;function Be({mode:e=v.onSubmit,reValidateMode:r=v.onChange,validationSchema:t,validationResolver:n,validationContext:c,defaultValues:s={},submitFocusError:u=!0,validateCriteriaMode:i}={}){const a=we({}),o="all"===i,g=we({}),O=we({}),y=we({}),j=we(new Set),S=we(new Set),R=we(new Set),w=we(new Set),x=we(!0),E=we({}),V=we(s),B=we(!1),C=we(!1),N=we(!1),F=we(!1),T=we(0),U=we(!1),H=we(),G=we({}),_=we(c),Q=we(new Set),[,X]=xe(),{isOnBlur:Y,isOnSubmit:ne,isOnChange:ce}=we(Re(e)).current,ie=typeof window===b,ae=!(!t&&!n),le=typeof document!==b&&!ie&&!l(window.HTMLElement),me=le&&"Proxy"in window,he=we({dirty:!me,dirtyFields:!me,isSubmitted:ne,submitCount:!me,touched:!me,isSubmitting:!me,isValid:!me}),{isOnBlur:ye,isOnSubmit:Be}=we(Re(r)).current,Ce=Ee(()=>{B.current||X({})},[]),Ne=Ee((e,r,t,n)=>{let c=t||function({errors:e,name:r,error:t,validFields:n,fieldsWithValidation:c}){const s=I(t),u=I(e),i=$(t,r),a=$(e,r);return!(s&&n.has(r)||a&&a.isManual)&&(!!(u!==s||!u&&!a||s&&c.has(r)&&!n.has(r))||i&&!te(a,i))}({errors:g.current,error:r,name:e,validFields:w.current,fieldsWithValidation:R.current});if(I(r)?((R.current.has(e)||ae)&&(w.current.add(e),c=c||$(g.current,e)),g.current=z(g.current,[e])):(w.current.delete(e),c=c||!$(g.current,e),k(g.current,e,r[e])),c&&!n)return Ce(),!0},[Ce,ae]),Fe=Ee((e,r)=>{const t=e.ref,n=e.options,{type:c}=t,s=le&&h(t)&&f(r)?"":r;return P(t)&&n?n.forEach(({ref:e})=>e.checked=e.value===s):q(t)?K(s)||Se(s)?t.files=s:t.value=s:J(t)?[...t.options].forEach(e=>e.selected=s.includes(e.value)):D(t)&&n?n.length>1?n.forEach(({ref:e})=>e.checked=s.includes(e.value)):n[0].ref.checked=!!s:t.value=s,!!c},[le]),ke=e=>{if(!a.current[e]||!he.current.dirty&&!he.current.dirtyFields)return!1;const r=je(Q.current,e),t=S.current.size;let n=E.current[e]!==Z(a.current,a.current[e].ref);if(r){const r=e.substring(0,e.indexOf("["));n=Oe(pe(a.current,r),$(V.current,r))}const c=(r?F.current:S.current.has(e))!==n;return n?S.current.add(e):S.current.delete(e),F.current=r?n:!!S.current.size,he.current.dirty?c:t!==S.current.size},Le=Ee(e=>{if(ke(e)||!$(O.current,e)&&he.current.touched)return!!k(O.current,e,!0)},[]),$e=Ee((e,r,t)=>{const n=d(r);for(const c in r){const s=`${t||e}${n?`[${c}]`:`.${c}`}`;m(r[c])&&$e(e,r[c],s);const u=a.current[s];u&&(Fe(u,r[c]),Le(s))}},[Fe,Le]),Ae=Ee((e,r)=>{const t=a.current[e];if(t){Fe(t,r);const n=Le(e);if(ue(n))return n}else ge(r)||$e(e,r)},[Le,Fe,$e]),Me=Ee(async(e,r)=>{const t=a.current[e];if(!t)return!1;const n=await oe(a,o,t);return Ne(e,n,!1,r),I(n)},[Ne,o]),Pe=Ee(async e=>{const{errors:r}=await fe(t,o,pe(a.current),n,_.current),c=x.current;return x.current=I(r),d(e)?(e.forEach(e=>{const t=$(r,e);t?k(g.current,e,t):z(g.current,[e])}),Ce()):Ne(e,$(r,e)?{[e]:$(r,e)}:{},c!==x.current),I(g.current)},[Ce,Ne,o,n,t]),De=Ee(async e=>{const r=e||Object.keys(a.current);if(ae)return Pe(r);if(d(r)){const e=await Promise.all(r.map(async e=>await Me(e,!0)));return Ce(),e.every(Boolean)}return await Me(r)},[Pe,Me,Ce,ae]),We=e=>C.current||j.current.has(e)||j.current.has((e.match(/\w+/)||[])[0]);function Ie(e,r,t){let n=!1;const c=d(e);(c?e:[e]).forEach(e=>{const t=ee(e);n=!(!Ae(t?e:Object.keys(e)[0],t?r:Object.values(e)[0])&&!c)||We(e)}),(n||c)&&Ce(),(t||c&&r)&&De(c?void 0:e)}H.current=H.current?H.current:async({type:e,target:r})=>{const c=r?r.name:"",s=a.current,u=g.current,i=s[c],l=$(u,c);let f;if(!i)return;const d=e===p.BLUR,m=be({hasError:!!l,isOnChange:ce,isBlurEvent:d,isOnSubmit:ne,isReValidateOnSubmit:Be,isOnBlur:Y,isReValidateOnBlur:ye,isSubmitted:N.current}),h=ke(c);let v=We(c)||h;if(d&&!$(O.current,c)&&he.current.touched&&(k(O.current,c,!0),v=!0),m)return v&&Ce();if(ae){const{errors:e}=await fe(t,o,pe(s),n,_.current),r=x.current;x.current=I(e),f=$(e,c)?{[c]:$(e,c)}:{},r!==x.current&&(v=!0)}else f=await oe(a,o,i);!Ne(c,f)&&v&&Ce()};const Te=Ee((e={})=>{const r=I(V.current)?re(a.current):V.current;fe(t,o,L(Object.assign(Object.assign({},r),e)),n,_.current).then(({errors:e})=>{const r=x.current;x.current=I(e),r!==x.current&&Ce()})},[Ce,o,n]),Ue=(e,r)=>{!l(H.current)&&e&&function(e,r,t,n){if(!t)return;const{ref:c,ref:{name:s,type:u},mutationWatcher:i}=t;if(!u)return void delete e[s];const a=e[s];if((P(c)||D(c))&&a){const{options:t}=a;d(t)&&t.length?(t.forEach(({ref:e,mutationWatcher:c},s)=>{(e&&W(e)||n)&&(M(e,r),c&&c.disconnect(),z(t,[`[${s}]`]))}),t&&!t.filter(Boolean).length&&delete e[s]):delete e[s]}else(W(c)||n)&&(M(c,r),i&&i.disconnect(),delete e[s])}(a.current,H.current,e,r)},ze=Ee((e,r)=>{if(!e||e&&je(Q.current,e.ref.name)&&!r)return;Ue(e,r);const{name:t}=e.ref;g.current=z(g.current,[t]),O.current=z(O.current,[t]),E.current=z(E.current,[t]),[S,R,w,j].forEach(e=>e.current.delete(t)),(he.current.isValid||he.current.touched)&&(Ce(),ae&&Te())},[Ce,ae,Te]);const He=({name:e,type:r,types:t,message:n,preventRender:c})=>{const s=a.current[e];te(g.current[e],{type:r,message:n,types:t})||(k(g.current,e,{type:r,types:t,message:n,ref:s?s.ref:{},isManual:!0}),c||Ce())};function Ge(e){I(a.current)||(d(e)?e:[e]).forEach(e=>ze(a.current[e],!0))}function _e(e,r={}){if(!e.name)return console.warn("Missing name @",e);const{name:t,type:n,value:c}=e,s=Object.assign({ref:e},r),u=a.current,i=P(e)||D(e);let f,g=u[t],m=!0,v=!1;if(i?g&&d(g.options)&&g.options.find(({ref:e})=>c===e.value):g)return void(u[t]=Object.assign(Object.assign({},g),r));if(n){const c=function(e,r){const t=new MutationObserver(()=>{W(e)&&(t.disconnect(),r())});return t.observe(window.document,{childList:!0,subtree:!0}),t}(e,()=>ze(s));g=i?Object.assign({options:[...g&&g.options||[],{ref:e,mutationWatcher:c}],ref:{type:n,name:t}},r):Object.assign(Object.assign({},s),{mutationWatcher:c})}else g=s;if(u[t]=g,I(V.current)||(f=de(V.current,t),m=l(f),v=je(Q.current,t),m||v||Fe(g,f)),ae&&!v&&he.current.isValid?Te():I(r)||(R.current.add(t),!ne&&he.current.isValid&&oe(a,o,g).then(e=>{const r=x.current;I(e)?w.current.add(t):x.current=!1,r!==x.current&&Ce()})),E.current[t]||v&&m||(E.current[t]=m?Z(u,g.ref):f),!n)return;!function({field:e,handleChange:r,isRadioOrCheckbox:t}){const{ref:n}=e;h(n)&&n.addEventListener&&r&&(n.addEventListener(t?p.CHANGE:p.INPUT,r),n.addEventListener(p.BLUR,r))}({field:i&&g.options?g.options[g.options.length-1]:g,isRadioOrCheckbox:i,handleChange:H.current})}function qe(e,r){if(!ie)if(ee(e))_e({name:e},r);else{if(!(m(e)&&"name"in e))return r=>r&&_e(r,e);_e(e,r)}}const Je=Ee(e=>async r=>{let c,s;r&&(r.preventDefault(),r.persist());const i=a.current;he.current.isSubmitting&&(U.current=!0,Ce());try{if(ae){s=re(i);const{errors:e,values:r}=await fe(t,o,L(s),n,_.current);g.current=e,c=e,s=r}else{const{errors:e,values:r}=await Object.values(i).reduce(async(e,r)=>{if(!r)return e;const t=await e,{ref:n,ref:{name:c}}=r;if(!i[c])return t;const s=await oe(a,o,r);return s[c]?(k(t.errors,c,s[c]),w.current.delete(c),t):(R.current.has(c)&&w.current.add(c),t.values[c]=Z(i,n),t)},Promise.resolve({errors:{},values:{}}));c=e,s=r}I(c)?(g.current={},await e(L(s),r)):(u&&le&&A(i,c),g.current=c)}finally{N.current=!0,U.current=!1,T.current=T.current+1,Ce()}},[le,Ce,ae,u,o,n,t]),Ke=e=>{const r=re(a.current),t=I(r)?V.current:r;return e&&e.nest?L(t):t};Ve(()=>()=>{B.current=!0,a.current&&"production"===process.env.NODE_ENV&&Object.values(a.current).forEach(e=>ze(e,!0))},[ze]),ae||(x.current=w.current.size>=R.current.size&&I(g.current));const Qe={dirty:F.current,dirtyFields:S.current,isSubmitted:N.current,submitCount:T.current,touched:O.current,isSubmitting:U.current,isValid:ne?N.current&&I(g.current):x.current};return{watch:function(e,r){const t=l(r)?l(V.current)?{}:V.current:r,n=re(a.current,e),c=j.current;if(ee(e))return ve(n,e,c,t,Q.current.has(e)?y.current[e]:void 0);if(d(e))return e.reduce((e,r)=>Object.assign(Object.assign({},e),{[r]:ve(n,r,c,t)}),{});C.current=!0;const s=!I(n)&&n||r||V.current;return e&&e.nest?L(s):s},control:Object.assign(Object.assign({register:qe,unregister:Ge,removeFieldEventListener:Ue,getValues:Ke,setValue:Ie,reRender:Ce,triggerValidation:De},ae?{validateSchemaIsValid:Te}:{}),{formState:Qe,mode:{isOnBlur:Y,isOnSubmit:ne,isOnChange:ce},reValidateMode:{isReValidateOnBlur:ye,isReValidateOnSubmit:Be},errorsRef:g,touchedFieldsRef:O,fieldsRef:a,resetFieldArrayFunctionRef:G,validFieldsRef:w,dirtyFieldsRef:S,fieldsWithValidationRef:R,watchFieldArrayRef:y,fieldArrayNamesRef:Q,isDirtyRef:F,readFormStateRef:he,defaultValuesRef:V}),handleSubmit:Je,setValue:Ee(Ie,[Ce,Ae,De]),triggerValidation:De,getValues:Ee(Ke,[]),reset:Ee((e,r={})=>{if(le)for(const e of Object.values(a.current))if(e&&h(e.ref)&&e.ref.closest)try{e.ref.closest("form").reset();break}catch(e){}e&&(V.current=e),Object.values(G.current).forEach(e=>se(e)&&e()),(({errors:e,dirty:r,isSubmitted:t,touched:n,isValid:c,submitCount:s})=>{a.current={},e||(g.current={}),n||(O.current={}),c||(w.current=new Set,R.current=new Set,x.current=!0),r||(S.current=new Set,F.current=!1),t||(N.current=!1),s||(T.current=0),E.current={},j.current=new Set,C.current=!1})(r),Ce()},[]),register:Ee(qe,[V.current,E.current,y.current]),unregister:Ee(Ge,[]),clearError:Ee(function(e){l(e)?g.current={}:z(g.current,d(e)?e:[e]),Ce()},[]),setError:Ee(function(e,r="",t){ee(e)?He(Object.assign({name:e},m(r)?{types:r,type:""}:{type:r,message:t})):d(e)&&(e.forEach(e=>He(Object.assign(Object.assign({},e),{preventRender:!0}))),Ce())},[]),errors:g.current,formState:me?new Proxy(Qe,{get:(e,r)=>r in e?(he.current[r]=!0,e[r]):{}}):Qe}}function Ce(e,r){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&r.indexOf(n)<0&&(t[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var c=0;for(n=Object.getOwnPropertySymbols(e);c<n.length;c++)r.indexOf(n[c])<0&&Object.prototype.propertyIsEnumerable.call(e,n[c])&&(t[n[c]]=e[n[c]])}return t}const Ne=r(null);function Fe(){return t(Ne)}function ke(e){var{children:r,formState:t,errors:c}=e,s=Ce(e,["children","formState","errors"]);return n(Ne.Provider,{value:Object.assign(Object.assign({},s),{formState:t,errors:c})},r)}var Le=()=>{const e=typeof performance===b?Date.now():1e3*performance.now();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(r){const t=(16*Math.random()+e)%16|0;return("x"==r?t:3&t|8).toString(16)})};const $e=(e,r)=>Object.assign(Object.assign({},m(e)?e:{value:e}),{[r]:Le()}),Ae=(e,r)=>(d(e)?e:[]).map(e=>$e(e,r)),Me=(e,r)=>[...e.slice(0,r),...e.slice(r+1)];var Pe=(e,r)=>l(r)?[]:d(r)?r.reduce(({result:e,previousIndex:r},t)=>({result:Me(e,r>-1&&r<t?t-1:t),previousIndex:t}),{result:e,previousIndex:-1}).result:Me(e,r),De=(e,r,t)=>d(e)?e.splice(t,0,e.splice(r,1)[0]):[],We=(e,r,t)=>d(e)&&([e[r],e[t]]=[e[t],e[r]]),Ie=(e,r)=>[...d(r)?r:[r||null],...e],Te=(e,r,t)=>[...e.slice(0,r),...d(t)?t:[t||null],...e.slice(r)],Ue=e=>d(e)?Array(e.length).fill(null):void 0;const{useEffect:ze,useCallback:He,useRef:Ge,useState:_e}=e,qe=({control:e,name:r,keyName:t="id"})=>{const n=Fe(),{resetFieldArrayFunctionRef:c,fieldArrayNamesRef:s,reRender:u,fieldsRef:i,getValues:a,defaultValuesRef:o,removeFieldEventListener:f,errorsRef:g,dirtyFieldsRef:m,isDirtyRef:h,touchedFieldsRef:v,readFormStateRef:b,watchFieldArrayRef:p,validFieldsRef:O,fieldsWithValidationRef:y,validateSchemaIsValid:j}=e||n.control,S=Ge($(o.current,r,[])),[R,w]=_e(Ae(S.current,t)),x=Ge(R),E=e=>e.map(e=>$e(e,t));x.current=R;const V=e=>{p.current=Object.assign(Object.assign({},p.current),{[r]:e}),w(e),b.current.isValid&&j&&j({[r]:e})},B=e=>{b.current.dirty&&(h.current=!!l(e)||Oe(e,S.current));for(const e in i.current)ye(e,r)&&i.current[e]&&f(i.current[e],!0)},C=()=>{const e=a({nest:!0})[r];if(d(e))for(let r=0;r<e.length;r++)x.current[r]=Object.assign(Object.assign({},x.current[r]),e[r])},N=()=>{B(),S.current=$(o.current,r,[]),w(Ae(S.current,t))};return ze(()=>{const e=c.current,t=s.current;return t.add(r),e[r]=N,p.current=Object.assign(Object.assign({},p.current),{[r]:R}),()=>{B(),delete e[r],t.delete(r)}},[]),{swap:He((e,t)=>{C();const n=pe(i.current,r);We(n,e,t),B(n),We(x.current,e,t),V([...x.current]),g.current[r]&&We(g.current[r],e,t),b.current.touched&&v.current[r]&&(We(v.current[r],e,t),u())},[]),move:He((e,t)=>{C();const n=pe(i.current,r);De(n,e,t),B(n),De(x.current,e,t),V([...x.current]),g.current[r]&&De(g.current[r],e,t),b.current.touched&&v.current[r]&&(De(v.current[r],e,t),u())},[]),prepend:He(e=>{B(),V(Ie(x.current,d(e)?E(e):[$e(e,t)])),g.current[r]&&(g.current[r]=Ie(g.current[r],Ue(e))),b.current.touched&&v.current[r]&&(v.current[r]=Ie(v.current[r],Ue(e)),u())},[]),append:He(e=>{b.current.dirty&&(h.current=!0,u()),V([...x.current,...d(e)?E(e):[$e(e,t)]])},[]),remove:He(e=>{let t=!1;if(l(e)||C(),B(Pe(pe(i.current,r),e)),V(Pe(x.current,e)),g.current[r]&&(g.current[r]=Pe(g.current[r],e),g.current[r].filter(Boolean).length||delete g.current[r]),b.current.touched&&v.current[r]&&(v.current[r]=Pe(v.current[r],e),t=!0),b.current.dirty&&(m.current.forEach(t=>{(l(r)||t.startsWith(`${r}[${e}]`))&&m.current.delete(t)}),t=!0),b.current.isValid&&!j){let n=-1,c=!1;const s=l(e);for(;n++<R.length;){const t=n===R.length-1,u=(d(e)?e:[e]).indexOf(n)>=0;if((u||s)&&(c=!0),c)for(const e in R[n]){const c=`${r}[${n}].${e}`;if(u||t||s)O.current.delete(c),y.current.delete(c);else{const t=`${r}[${n-1}].${e}`;O.current.has(c)&&O.current.add(t),y.current.has(c)&&y.current.add(t)}}}t=!0}t&&u()},[R]),insert:He((e,n)=>{C(),B(Te(pe(i.current,r),e)),V(Te(x.current,e,d(n)?E(n):[$e(n,t)])),g.current[r]&&(g.current[r]=Te(g.current[r],e,Ue(n))),b.current.touched&&v.current[r]&&(v.current[r]=Te(v.current[r],e,Ue(n)),u())},[]),fields:R}};const Je=e=>{var{name:r,rules:t,as:o,onBlur:f,onChange:d,onChangeName:g=v.onChange,onBlurName:h=v.onBlur,valueName:b,defaultValue:p,control:O}=e,y=Ce(e,["name","rules","as","onBlur","onChange","onChangeName","onBlurName","valueName","defaultValue","control"]);const j=Fe(),{defaultValuesRef:S,setValue:R,register:w,unregister:x,errorsRef:E,removeFieldEventListener:V,triggerValidation:B,mode:{isOnSubmit:C,isOnBlur:N,isOnChange:F},reValidateMode:{isReValidateOnBlur:k,isReValidateOnSubmit:L},formState:{isSubmitted:A},fieldsRef:M,fieldArrayNamesRef:P}=O||j.control,[D,W]=c(l(p)?$(S.current,r):p),I=s(D),T=ue(D),U=()=>!be({hasError:!!$(E.current,r),isOnBlur:N,isOnSubmit:C,isOnChange:F,isReValidateOnBlur:k,isReValidateOnSubmit:L,isSubmitted:A}),z=e=>{const r=((e,r)=>ge(e)||!m(e.target)||m(e.target)&&!e.type?e:r||l(e.target.value)?e.target.checked:e.target.value)(e,T);return W(r),I.current=r,r},H=()=>{je(P.current,r)&&M.current[r]&&V(M.current[r],!0),w(Object.defineProperty({name:r},"value",{set(e){W(e),I.current=e},get:()=>I.current}),Object.assign({},t))};u(()=>{M.current[r]||(H(),W(l(p)?$(S.current,r):p))}),u(()=>(H(),()=>{je(P.current,r)||x(r)}),[r]),u(()=>{H()},[t]);const G=N||k,_=Object.assign(Object.assign(Object.assign(Object.assign({name:r},y),d?{[g]:(e=>(...t)=>R(r,z(e(t)),U()))(d)}:{[g]:e=>{const t=z(e);R(r,t,U())}}),f||G?{[h]:(...e)=>{f&&f(e),G&&B(r)}}:{}),{[b||(T?"checked":"value")]:D});return i(o)?a(o,_):n(o,_)},Ke=e=>{var{as:r,errors:t,name:c,message:s,children:u}=e,l=Ce(e,["as","errors","name","message","children"]);const f=Fe(),d=$(t||f.errors,c);if(!d)return null;const{message:g,types:m}=d,h=Object.assign(Object.assign({},r?l:{}),{children:u?u({message:g||s,messages:m}):g||s});return r?i(r)?a(r,h):n(r,h):n(o,Object.assign({},h))};export{Je as Controller,Ke as ErrorMessage,ke as FormContext,qe as useFieldArray,Be as useForm,Fe as useFormContext};
|
@@ -1446,12 +1446,7 @@
|
|
1446
1446
|
|
1447
1447
|
const FormGlobalContext = React.createContext(null);
|
1448
1448
|
function useFormContext() {
|
1449
|
-
|
1450
|
-
if (isNullOrUndefined(context)) {
|
1451
|
-
// eslint-disable-next-line no-console
|
1452
|
-
console.warn('Missing FormContext');
|
1453
|
-
}
|
1454
|
-
return context;
|
1449
|
+
return React.useContext(FormGlobalContext);
|
1455
1450
|
}
|
1456
1451
|
function FormContext(_a) {
|
1457
1452
|
var { children, formState, errors } = _a, restMethods = __rest(_a, ["children", "formState", "errors"]);
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "react-hook-form",
|
3
3
|
"description": "Performant, flexible and extensible forms library for React Hooks",
|
4
|
-
"version": "5.1.
|
4
|
+
"version": "5.1.3",
|
5
5
|
"main": "dist/react-hook-form.js",
|
6
6
|
"module": "dist/react-hook-form.es.js",
|
7
7
|
"types": "dist/index.d.ts",
|