react-hook-form 6.9.4 → 6.9.5
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 +29 -30
- 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 +29 -30
- package/dist/index.esm.js.map +1 -1
- package/dist/index.ie11.development.js +51 -52
- package/dist/index.ie11.development.js.map +1 -1
- package/dist/index.ie11.production.min.js +1 -1
- package/dist/index.ie11.production.min.js.map +1 -1
- package/dist/index.umd.development.js +29 -30
- 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/dist/types/form.d.ts +1 -3
- package/package.json +1 -1
@@ -1,2 +1,2 @@
|
|
1
|
-
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self).ReactHookForm={},e.React)}(this,(function(e,r){"use strict";var t=e=>e instanceof HTMLElement;const n="blur",s="change",c="input",u="onBlur",i="onChange",a="onSubmit",o="onTouched",l="all",f="undefined",d="max",y="min",g="maxLength",b="minLength",h="pattern",m="required",v="validate";var p=e=>null==e;const O=e=>"object"==typeof e;var A=e=>!p(e)&&!Array.isArray(e)&&O(e)&&!(e instanceof Date),R=e=>!Array.isArray(e)&&(/^\w*$/.test(e)||!/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/.test(e)),j=e=>e.filter(Boolean),F=e=>j(e.replace(/["|']/g,"").replace(/\[/g,".").replace(/\]/g,"").split("."));function V(e,r,t){let n=-1;const s=R(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=A(t)||Array.isArray(t)?t:isNaN(+s[n+1])?{}:[]}e[r]=c,e=e[r]}return e}var C=(e,r={})=>{for(const t in e)R(t)?r[t]=e[t]:V(r,t,e[t]);return r},x=e=>void 0===e,S=(e,r,t)=>{const n=j(r.split(/[,[\].]+?/)).reduce(((e,r)=>p(e)?e:e[r]),e);return x(n)||n===e?x(e[r])?t:e[r]:n},k=(e,r)=>{t(e)&&e.removeEventListener&&(e.removeEventListener(c,r),e.removeEventListener(s,r),e.removeEventListener(n,r))};const w={isValid:!1,value:""};var E=e=>Array.isArray(e)?e.reduce(((e,r)=>r&&r.ref.checked?{isValid:!0,value:r.ref.value}:e),w):w,D=e=>"radio"===e.type,B=e=>"file"===e.type,W=e=>"checkbox"===e.type,L=e=>"select-multiple"===e.type;const T={value:!1,isValid:!1},N={value:!0,isValid:!0};var $=e=>{if(Array.isArray(e)){if(e.length>1){const r=e.filter((e=>e&&e.ref.checked)).map((({ref:{value:e}})=>e));return{value:r,isValid:!!r.length}}const{checked:r,value:t,attributes:n}=e[0].ref;return r?n&&!x(n.value)?x(t)||""===t?N:{value:t,isValid:!0}:N:T}return T};function M(e,r,t,n){const s=e.current[r];if(s){const{ref:{value:e,disabled:r},ref:t}=s;if(r&&n)return;return B(t)?t.files:D(t)?E(s.options).value:L(t)?(c=t.options,[...c].filter((({selected:e})=>e)).map((({value:e})=>e))):W(t)?$(s.options).value:e}var c;if(t)return S(t.current,r)}function P(e){return!e||e instanceof HTMLElement&&e.nodeType!==Node.DOCUMENT_NODE&&P(e.parentNode)}var H=e=>A(e)&&!Object.keys(e).length,I=e=>"boolean"==typeof e;function U(e,r){const t=R(r)?[r]:F(r),n=1==t.length?e:function(e,r){const t=r.slice(0,-1).length;let n=0;for(;n<t;)e=x(e)?n++:e[r[n++]];return e}(e,t),s=t[t.length-1];let c=void 0;n&&delete n[s];for(let r=0;r<t.slice(0,-1).length;r++){let n=-1,s=void 0;const u=t.slice(0,-(r+1)),i=u.length-1;for(r>0&&(c=e);++n<u.length;){const r=u[n];s=s?s[r]:e[r],i===n&&(A(s)&&H(s)||Array.isArray(s)&&!s.filter((e=>A(e)&&!H(e)||I(e))).length)&&(c?delete c[r]:delete e[r]),c=s}}return e}const q=(e,r)=>e&&e.ref===r;function _(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]=[],_(e[c][n],S(r[c]||{},n,[]),t[c][n],t[c],n)):S(r[c]||{},n)===e[c][n]?V(t[c]||{},n):t[c]=Object.assign(Object.assign({},t[c]),{[n]:!0});!t.length&&n&&delete n[s]}return t.length?t:void 0}var z=e=>"string"==typeof e,G=e=>p(e)||!O(e);function J(e,r){if(G(e)||G(r))return r;for(const t in r){const n=e[t],s=r[t];try{e[t]=A(n)&&A(s)||Array.isArray(n)&&Array.isArray(s)?J(n,s):s}catch(e){}}return e}var K=(e,r,t,n)=>{const s={};for(const r in e.current)(x(n)||(z(n)?r.startsWith(n):Array.isArray(n)&&n.find((e=>r.startsWith(e)))))&&(s[r]=M(e,r,void 0,t));return J(C(Object.assign({},(r||{}).current||{})),C(s))};function Q(e=[],r=[],t){const n=Object.keys(e),s=Object.keys(r);if(n.length!==s.length)return!1;for(const s of n)if(!t||!["ref","context"].includes(s)){const n=e[s],c=r[s];if((A(n)||Array.isArray(n))&&(A(c)||Array.isArray(c))?!Q(n,c,t):n!==c)return!1}return!0}var X=e=>e instanceof RegExp;var Y=e=>{return A(r=e)&&!X(r)?e:{value:e,message:""};var r},Z=e=>"function"==typeof e,ee=e=>z(e)||A(e)&&r.isValidElement(e);function re(e,r,t="validate"){if(ee(e)||I(e)&&!e)return{type:t,message:ee(e)?e:"",ref:r}}var te=(e,r,t,n,s)=>{if(r){const r=t[e];return Object.assign(Object.assign({},r),{types:Object.assign(Object.assign({},r&&r.types?r.types:{}),{[n]:s||!0})})}return{}},ne=async(e,r,{ref:t,ref:{type:n,value:s},options:c,required:u,maxLength:i,minLength:a,min:o,max:l,pattern:f,validate:O},R)=>{const j=e.current,F=t.name,V={},C=D(t),x=W(t),S=C||x,k=""===s,w=te.bind(null,F,r,V),B=(e,r,n,s=g,c=b)=>{const u=e?r:n;V[F]=Object.assign({type:e?s:c,message:u,ref:t},w(e?s:c,u))};if(u&&(!C&&!x&&(k||p(s))||I(s)&&!s||x&&!$(c).isValid||C&&!E(c).isValid)){const{value:e,message:n}=ee(u)?{value:!!u,message:u}:Y(u);if(e&&(V[F]=Object.assign({type:m,message:n,ref:S?((j[F].options||[])[0]||{}).ref:t},w(m,n)),!r))return V}if(!p(o)||!p(l)){let e,c;const{value:u,message:i}=Y(l),{value:a,message:f}=Y(o);if("number"===n||!n&&!isNaN(s)){const r=t.valueAsNumber||parseFloat(s);p(u)||(e=r>u),p(a)||(c=r<a)}else{const r=t.valueAsDate||new Date(s);z(u)&&(e=r>new Date(u)),z(a)&&(c=r<new Date(a))}if((e||c)&&(B(!!e,i,f,d,y),!r))return V}if(z(s)&&!k&&(i||a)){const{value:e,message:t}=Y(i),{value:n,message:c}=Y(a),u=s.toString().length,o=!p(e)&&u>e,l=!p(n)&&u<n;if((o||l)&&(B(!!o,t,c),!r))return V}if(f&&!k){const{value:e,message:n}=Y(f);if(X(e)&&!e.test(s)&&(V[F]=Object.assign({type:h,message:n,ref:t},w(h,n)),!r))return V}if(O){const n=M(e,F,R),s=S&&c?c[0].ref:t;if(Z(O)){const e=re(await O(n),s);if(e&&(V[F]=Object.assign(Object.assign({},e),w(v,e.message)),!r))return V}else if(A(O)){let e={};for(const[t,c]of Object.entries(O)){if(!H(e)&&!r)break;const u=re(await c(n),s,t);u&&(e=Object.assign(Object.assign({},u),w(t,u.message)),r&&(V[F]=e))}if(!H(e)&&(V[F]=Object.assign({ref:s},e),!r))return V}}return V};const se=(e,r)=>Object.entries(r).map((([t,n])=>((r,t,n)=>{const s=n?`${e}.${r}`:`${e}[${r}]`;return G(t)?s:se(s,t)})(t,n,A(r)))).flat(1/0);var ce=(e,r,t,n,s)=>{let c;return t.add(r),H(e)?c=void 0:(c=S(e,r),(A(c)||Array.isArray(c))&&se(r,c).forEach((e=>t.add(e)))),x(c)?s?n:S(n,r):c},ue=({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),ie=e=>e.substring(0,e.indexOf("["));const ae=(e,r)=>RegExp(`^${r}[\\d+]`.replace(/\[/g,"\\[").replace(/\]/g,"\\]")).test(e);var oe=(e,r)=>[...e].some((e=>ae(r,e)));function le(e){let r;if(G(e))return e;if(e instanceof Date)return r=new Date(e.getTime()),r;r=Array.isArray(e)?[]:{};for(const t in e)r[t]=le(e[t]);return r}var fe=e=>({isOnSubmit:!e||e===a,isOnBlur:e===u,isOnChange:e===i,isOnAll:e===l,isOnTouch:e===o}),de=e=>D(e)||W(e);const ye=typeof window===f,ge=typeof document!==f&&!ye&&!x(window.HTMLElement),be=ge?"Proxy"in window:typeof Proxy!==f;function he(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 me=r.createContext(null);me.displayName="RHFContext";const ve=()=>r.useContext(me);var pe=()=>{const e=typeof performance===f?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)}))};var Oe=(e,r)=>x(r)?[]:Array.isArray(r)?function(e,r){let t=-1;for(;++t<e.length;)r.indexOf(t)>=0&&delete e[t];return j(e)}(e,r):((e,r)=>[...e.slice(0,r),...e.slice(r+1)])(e,r),Ae=(e,r,t)=>Array.isArray(e)?(x(e[t])&&(e[t]=void 0),e.splice(t,0,e.splice(r,1)[0]),e):[],Re=(e,r,t)=>{const n=[e[t],e[r]];e[r]=n[0],e[t]=n[1]};function je(e,r){return[...Array.isArray(r)?r:[r||void 0],...e]}function Fe(e,r,t){return[...e.slice(0,r),...Array.isArray(t)?t:[t||void 0],...e.slice(r)]}var Ve=e=>Array.isArray(e)?Array(e.length).fill(void 0):void 0;function Ce(e){if(A(e)){const r={};for(const t in e)r[t]=!0;return[r]}return[!0]}var xe=e=>(Array.isArray(e)?e:[e]).map(Ce).flat();const Se=(e,r)=>e.map((e=>Object.assign({[r]:pe()},e)));e.Controller=e=>{var{name:t,rules:n,as:s,render:c,defaultValue:u,control:i,onFocus:a}=e,o=he(e,["name","rules","as","render","defaultValue","control","onFocus"]);const l=ve(),{defaultValuesRef:f,setValue:d,register:y,unregister:g,trigger:b,mode:h,reValidateMode:{isReValidateOnBlur:m,isReValidateOnChange:v},formStateRef:{current:{isSubmitted:p,touched:O}},updateFormState:R,readFormStateRef:j,fieldsRef:F,fieldArrayNamesRef:C,shallowFieldsStateRef:k}=i||l.control,w=!oe(C.current,t),E=()=>!x(S(k.current,t))&&w?S(k.current,t):x(u)?S(f.current,t):u,[D,B]=r.useState(E()),W=r.useRef(D),L=r.useRef(a),T=e=>!ue(Object.assign({isBlurEvent:e,isReValidateOnBlur:m,isReValidateOnChange:v,isSubmitted:p,isTouched:!!S(O,t)},h)),N=([e])=>{const r=(e=>G(e)||!A(e.target)||A(e.target)&&!e.type?e:x(e.target.value)?e.target.checked:e.target.value)(e);return B(r),W.current=r,r},$=r.useCallback((()=>{F.current[t]?F.current[t]=Object.assign({ref:F.current[t].ref},n):(y(Object.defineProperty({name:t,focus:L.current},"value",{set(e){B(e),W.current=e},get:()=>W.current}),n),w&&!S(f.current,t)&&B(E()))}),[n,t,y]);r.useEffect((()=>()=>g(t)),[g,t]),r.useEffect((()=>{$()}),[$]),r.useEffect((()=>{F.current[t]||($(),w&&B(E()))}));const M=()=>{j.current.touched&&!S(O,t)&&(V(O,t,!0),R({touched:O})),T(!0)&&b(t)},P=(...e)=>d(t,N(e),{shouldValidate:T(),shouldDirty:!0}),H=Object.assign(Object.assign({},o),{onChange:P,onBlur:M,name:t,value:D});return s?r.isValidElement(s)?r.cloneElement(s,H):r.createElement(s,H):c?c({onChange:P,onBlur:M,value:D,name:t}):null},e.FormProvider=e=>{var{children:t}=e,n=he(e,["children"]);return r.createElement(me.Provider,{value:Object.assign({},n)},t)},e.appendErrors=te,e.get=S,e.transformToNestObject=C,e.useFieldArray=({control:e,name:t,keyName:n="id"})=>{const s=ve(),c=r.useRef(-1),{isWatchAllRef:u,resetFieldArrayFunctionRef:i,fieldArrayNamesRef:a,fieldsRef:o,defaultValuesRef:l,removeFieldEventListener:f,formStateRef:d,shallowFieldsStateRef:y,updateFormState:g,readFormStateRef:b,watchFieldsRef:h,validFieldsRef:m,fieldsWithValidationRef:v,fieldArrayDefaultValuesRef:p,validateResolver:O,renderWatchedInputs:A,getValues:R,shouldUnregister:F}=e||s.control,C=ie(t),k=r.useRef([...S(p.current,C)?S(p.current,t,[]):S(F?l.current:y.current,t,[])]),[w,E]=r.useState(Se(k.current,n)),D=r.useRef(w),B=()=>S(R(),t,D.current).map(((e,r)=>Object.assign(Object.assign({},D.current[r]),e)));D.current=w,a.current.add(t),S(p.current,C)||V(p.current,C,S(l.current,C));const W=e=>{if(E(e),b.current.isValid&&O){const r=R();V(r,t,e),O(r)}},L=e=>(b.current.isDirty||b.current.dirtyFields)&&(x(e)||!Q(e.map(((e={})=>{var r=n;e[r];return he(e,["symbol"==typeof r?r:r+""])})),S(l.current,t))),T=()=>{for(const e in o.current)ae(e,t)&&f(o.current[e],!0)},N=e=>!j(S(e,t,[])).length&&U(e,t),$=e=>{const r=S(l.current,t,[]),s=(e,r)=>{for(const s in e)for(const c in e[s])c===n||r[s]&&e[s]&&e[s][c]===r[s][c]||V(d.current.dirtyFields,`${t}[${s}]`,Object.assign(Object.assign({},S(d.current.dirtyFields,`${t}[${s}]`,{})),{[c]:!0}))};e&&(s(r,e),s(e,r))},M=(e,r,n,s=!0,c=!0,u=!1)=>{if(S(y.current,t)){const n=e(S(y.current,t),r.argA,r.argB);c&&V(y.current,t,n)}if(S(p.current,t)){const n=e(S(p.current,t),r.argA,r.argB);c&&V(p.current,t,n),N(p.current)}if(Array.isArray(S(d.current.errors,t))){const n=e(S(d.current.errors,t),r.argA,r.argB);c&&V(d.current.errors,t,n),N(d.current.errors)}if(b.current.touched&&S(d.current.touched,t)){const n=e(S(d.current.touched,t),r.argA,r.argB);c&&V(d.current.touched,t,n),N(d.current.touched)}if(b.current.dirtyFields||b.current.isDirty){const s=e(S(d.current.dirtyFields,t,[]),r.argC,r.argD);c&&V(d.current.dirtyFields,t,s),$(n),N(d.current.dirtyFields)}u&&b.current.isValid&&!O&&(V(m.current,t,e(S(m.current,t,[]),r.argA)),N(m.current),V(v.current,t,e(S(v.current,t,[]),r.argA)),N(v.current)),g({errors:d.current.errors,dirtyFields:d.current.dirtyFields,isDirty:s,touched:d.current.touched})},P=e=>{T(),!e&&U(p.current,t),U(y.current,t),k.current=S(e||l.current,t),E(Se(k.current,n))};return r.useEffect((()=>{const e=S(p.current,t);if(e&&w.length<e.length&&(e.pop(),V(p.current,t,e)),u.current)g();else if(h){let e=!0;for(const r of h.current)if(r.startsWith(t)){g(),e=!1;break}e&&A(t)}if(c.current>-1)for(const e in o.current){const r=o.current[e];if(e.startsWith(`${t}[${c.current}]`)&&r.ref.focus){r.ref.focus();break}}c.current=-1}),[w,t]),r.useEffect((()=>{const e=i.current,r=a.current;return ie(t)||(e[t]=P),()=>{T(),delete e[t],r.delete(t)}}),[]),{swap:r.useCallback(((e,r)=>{const t=B();Re(t,e,r),T(),W([...t]),M(Re,{argA:e,argB:r,argC:e,argD:r},void 0,L(t),!1)}),[t]),move:r.useCallback(((e,r)=>{const t=B();Ae(t,e,r),T(),W([...t]),M(Ae,{argA:e,argB:r,argC:e,argD:r},void 0,L(t),!1)}),[t]),prepend:r.useCallback(((e,r=!0)=>{const t=Ve(e),s=je(B(),Se(Array.isArray(e)?e:[e],n));W(s),T(),M(je,{argA:t,argC:xe(e)},s),c.current=r?0:-1}),[t]),append:r.useCallback(((e,r=!0)=>{const s=[...D.current,...Se(Array.isArray(e)?e:[e],n)];W(s),(b.current.dirtyFields||b.current.isDirty)&&($(s),g({isDirty:!0,dirtyFields:d.current.dirtyFields})),F||(y.current[t]=[...y.current[t]||[],e]),c.current=r?D.current.length:-1}),[t]),remove:r.useCallback((e=>{const r=B(),t=Oe(r,e);W(t),T(),M(Oe,{argA:e,argC:e},t,L(Oe(r,e)),!0,!0)}),[t]),insert:r.useCallback(((e,r,t=!0)=>{const s=Ve(r),u=B(),i=Fe(u,e,Se(Array.isArray(r)?r:[r],n));W(i),T(),M(Fe,{argA:e,argB:s,argC:e,argD:xe(r)},i,L(Fe(u,e))),c.current=t?e:-1}),[t]),fields:w}},e.useForm=function({mode:e=a,reValidateMode:u=i,resolver:o,context:f,defaultValues:d={},shouldFocusError:y=!0,shouldUnregister:g=!0,criteriaMode:b}={}){const h=r.useRef({}),m=r.useRef({}),v=r.useRef(new Set),O=r.useRef({}),F=r.useRef({}),w=r.useRef({}),E=r.useRef({}),T=r.useRef(d),N=r.useRef({}),$=r.useRef(!1),I=r.useRef(!1),J=r.useRef(),X=r.useRef(g?{}:le(d)),Y=r.useRef({}),ee=r.useRef(f),re=r.useRef(o),te=r.useRef(new Set),ae=r.useRef(fe(e)),{isOnSubmit:he,isOnTouch:me}=ae.current,ve=b===l,[pe,Oe]=r.useState({isDirty:!1,dirtyFields:{},isSubmitted:!1,submitCount:0,touched:{},isSubmitting:!1,isSubmitSuccessful:!1,isValid:!he,errors:{}}),Ae=r.useRef({isDirty:!be,dirtyFields:!be,touched:!be||me,isSubmitting:!be,isValid:!be}),Re=r.useRef(pe),je=r.useRef(),{isOnBlur:Fe,isOnChange:Ve}=r.useRef(fe(u)).current;ee.current=f,re.current=o,Re.current=pe;const Ce=r.useCallback(((e={})=>!$.current&&Oe(Object.assign(Object.assign({},Re.current),e))),[]),xe=r.useCallback(((e,r,t=!1,n={},s)=>{let c=t||function({errors:e,name:r,error:t,validFields:n,fieldsWithValidation:s}){const c=x(t),u=S(e,r);return c&&!!u||!c&&!Q(u,t,!0)||c&&S(s,r)&&!S(n,r)}({errors:Re.current.errors,error:r,name:e,validFields:E.current,fieldsWithValidation:w.current});const u=S(Re.current.errors,e);r?(U(E.current,e),c=c||!u||!Q(u,r,!0),V(Re.current.errors,e,r)):((S(w.current,e)||re.current)&&(V(E.current,e,!0),c=c||u),U(Re.current.errors,e)),(c&&!p(t)||!H(n))&&Ce(Object.assign(Object.assign(Object.assign({},n),{errors:Re.current.errors}),re.current?{isValid:!!s}:{}))}),[]),Se=r.useCallback(((e,r)=>{const{ref:n,options:s}=h.current[e],c=ge&&t(n)&&p(r)?"":r;D(n)&&s?s.forEach((({ref:e})=>e.checked=e.value===c)):B(n)&&!z(c)?n.files=c:L(n)?[...n.options].forEach((e=>e.selected=c.includes(e.value))):W(n)&&s?s.length>1?s.forEach((({ref:e})=>e.checked=Array.isArray(c)?!!c.find((r=>r===e.value)):c===e.value)):s[0].ref.checked=!!c:n.value=c}),[]),ke=()=>!Q(Me(),H(T.current)?N.current:T.current),we=r.useCallback(((e,r=!0)=>{if(Ae.current.isDirty||Ae.current.dirtyFields){const t=S(N.current,e)!==M(h,e,X),n=S(Re.current.dirtyFields,e),s=Re.current.isDirty;t?V(Re.current.dirtyFields,e,!0):U(Re.current.dirtyFields,e);const c={isDirty:ke(),dirtyFields:Re.current.dirtyFields},u=Ae.current.isDirty&&s!==c.isDirty||Ae.current.dirtyFields&&n!==S(Re.current.dirtyFields,e);return u&&r&&(Re.current=Object.assign(Object.assign({},Re.current),c),Ce(Object.assign({},c))),u?c:{}}return{}}),[]),Ee=r.useCallback((async(e,r)=>{if(h.current[e]){const t=(await ne(h,ve,h.current[e],X))[e];return xe(e,t,r),x(t)}return!1}),[xe,ve]),De=r.useCallback((async e=>{const{errors:r}=await re.current(Me(),ee.current,ve),t=Re.current.isValid;if(Array.isArray(e)){const t=e.map((e=>{const t=S(r,e);return t?V(Re.current.errors,e,t):U(Re.current.errors,e),!t})).every(Boolean);return Ce({isValid:H(r),errors:Re.current.errors}),t}{const n=S(r,e);return xe(e,n,t!==H(r),{},H(r)),!n}}),[xe,ve]),Be=r.useCallback((async e=>{const r=e||Object.keys(h.current);if(re.current)return De(r);if(Array.isArray(r)){const e=await Promise.all(r.map((async e=>await Ee(e,null))));return Ce(),e.every(Boolean)}return await Ee(r,Ae.current.isValid)}),[De,Ee]),We=r.useCallback(((e,r,{shouldDirty:t,shouldValidate:n})=>{const s={};V(s,e,r);for(const c of se(e,r))h.current[c]&&(Se(c,S(s,c)),t&&we(c),n&&Be(c))}),[Be,Se,we]),Le=r.useCallback(((e,r,t={})=>{h.current[e]?(Se(e,r),t.shouldDirty&&we(e)):G(r)||(We(e,r,t),te.current.has(e)&&t.shouldDirty&&(m.current[e]=r,Y.current[e]({[e]:r}),(Ae.current.isDirty||Ae.current.dirtyFields)&&(V(Re.current.dirtyFields,e,_(r,S(T.current,e,[]),S(Re.current.dirtyFields,e,[]))),Ce({isDirty:!Q(Object.assign(Object.assign({},Me()),{[e]:r}),T.current),dirtyFields:Re.current.dirtyFields})))),!g&&V(X.current,e,r)}),[we,Se,We]),Te=e=>I.current||v.current.has(e)||v.current.has((e.match(/\w+/)||[])[0]),Ne=(e,r=!0)=>{if(!H(O.current))for(const t in O.current)e&&O.current[t].size&&!O.current[t].has(e)&&!O.current[t].has(ie(e))||(F.current[t](),r=!1);return r};function $e(e){if(!g){let r=le(e);for(const e of te.current)R(e)&&!r[e]&&(r=Object.assign(Object.assign({},r),{[e]:[]}));return r}return e}function Me(e){if(z(e))return M(h,e,X);if(Array.isArray(e)){const r={};for(const t of e)V(r,t,M(h,t,X));return r}return $e(K(h,X))}J.current=J.current?J.current:async({type:e,target:r})=>{const t=r.name,s=h.current[t];let c,u;if(s){const r=e===n,i=ue(Object.assign({isBlurEvent:r,isReValidateOnChange:Ve,isReValidateOnBlur:Fe,isTouched:!!S(Re.current.touched,t),isSubmitted:Re.current.isSubmitted},ae.current));let a=we(t,!1),o=!H(a)||Te(t);if(r&&!S(Re.current.touched,t)&&Ae.current.touched&&(V(Re.current.touched,t,!0),a=Object.assign(Object.assign({},a),{touched:Re.current.touched})),i)return Ne(t),(!H(a)||o&&H(a))&&Ce(a);if(re.current){const{errors:e}=await re.current(Me(),ee.current,ve),r=Re.current.isValid;c=S(e,t),u=H(e),r!==u&&(o=!0)}else c=(await ne(h,ve,s,X))[t];Ne(t),xe(t,c,o,a,u)}};const Pe=r.useCallback((async(e={})=>{const{errors:r}=await re.current(Object.assign(Object.assign(Object.assign({},T.current),Me()),e),ee.current,ve),t=H(r);Re.current.isValid!==t&&Ce({isValid:t})}),[ve]),He=r.useCallback(((e,r)=>function(e,r,t,n,s,c){const{ref:u,ref:{name:i,type:a}}=t,o=e.current[i];if(!s){const r=M(e,i,n);x(r)||V(n.current,i,r)}if(a)if((D(u)||W(u))&&o){const{options:t}=o;Array.isArray(t)&&t.length?(j(t).forEach(((e,n)=>{const{ref:s}=e;(s&&P(s)&&q(e,s)||c)&&(k(s,r),U(t,`[${n}]`))})),t&&!j(t).length&&delete e.current[i]):delete e.current[i]}else(P(u)&&q(o,u)||c)&&(k(u,r),delete e.current[i]);else delete e.current[i]}(h,J.current,e,X,g,r)),[g]),Ie=r.useCallback(((e,r)=>{e&&(He(e,r),g&&!j(e.options||[]).length&&(U(N.current,e.ref.name),U(E.current,e.ref.name),U(w.current,e.ref.name),U(Re.current.errors,e.ref.name),V(Re.current.dirtyFields,e.ref.name,!0),Ce({errors:Re.current.errors,isDirty:ke(),dirtyFields:Re.current.dirtyFields}),re.current&&Pe()))}),[Pe,He]),Ue=r.useCallback(((e,r,t)=>{const n=t?O.current[t]:v.current,s=x(r)?T.current:r,c=K(h,X,!1,e);return z(e)?ce(c,e,n,x(r)?S(s,e):r,!0):Array.isArray(e)?e.reduce(((e,r)=>Object.assign(Object.assign({},e),{[r]:ce(c,r,n,s)})),{}):(I.current=x(t),C(!H(c)&&c||s))}),[]);function qe(e,r={}){const{name:u,type:i,value:a}=e,o=Object.assign({ref:e},r),l=h.current,f=de(e),d=oe(te.current,u),y=r=>ge&&(!t(e)||r===e);let g,b=l[u],m=!0;if(b&&(f?Array.isArray(b.options)&&j(b.options).find((e=>a===e.ref.value&&y(e.ref))):y(b.ref)))return void(l[u]=Object.assign(Object.assign({},b),r));b=i?f?Object.assign({options:[...j(b&&b.options||[]),{ref:e}],ref:{type:i,name:u}},r):Object.assign({},o):o,l[u]=b;const v=x(S(X.current,u));if(H(T.current)&&v||(g=S(v?T.current:X.current,u),m=x(g),m||d||Se(u,g)),H(r)||(V(w.current,u,!0),!he&&Ae.current.isValid&&ne(h,ve,b,X).then((e=>{const r=Re.current.isValid;H(e)?V(E.current,u,!0):U(E.current,u),r!==H(e)&&Ce()}))),!(N.current[u]||d&&m)){const e=M(h,u,X);V(N.current,u,m?A(e)?Object.assign({},e):e:g),!d&&U(Re.current.dirtyFields,u)}i&&function({ref:e},r,u){t(e)&&u&&(e.addEventListener(r?s:c,u),e.addEventListener(n,u))}(f&&b.options?b.options[b.options.length-1]:b,f||"select-one"===e.type,J.current)}const _e=r.useCallback(((e,r)=>async t=>{t&&t.preventDefault&&(t.preventDefault(),t.persist());let n={},s=$e(K(h,X,!0));Ae.current.isSubmitting&&Ce({isSubmitting:!0});try{if(re.current){const{errors:e,values:r}=await re.current(s,ee.current,ve);Re.current.errors=e,n=e,s=r}else for(const e of Object.values(h.current))if(e){const{ref:{name:r}}=e,t=await ne(h,ve,e,X);t[r]?(V(n,r,t[r]),U(E.current,r)):S(w.current,r)&&(U(Re.current.errors,r),V(E.current,r,!0))}H(n)&&Object.keys(Re.current.errors).every((e=>e in h.current))?(Ce({errors:{},isSubmitting:!0}),await e(s,t)):(Re.current.errors=Object.assign(Object.assign({},Re.current.errors),n),r&&await r(n,t),y&&((e,r)=>{for(const t in e)if(S(r,t)){const r=e[t];if(r){if(r.ref.focus){r.ref.focus();break}if(r.options){r.options[0].ref.focus();break}}}})(h.current,n))}finally{Ce({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:H(Re.current.errors),errors:Re.current.errors,submitCount:Re.current.submitCount+1})}}),[y,ve]);r.useEffect((()=>($.current=!1,o&&Ae.current.isValid&&Pe(),je.current=je.current||!ge?je.current:function(e,r){const t=new MutationObserver((()=>{for(const t of Object.values(e.current))if(t&&t.options)for(const e of t.options)e&&e.ref&&P(e.ref)&&r(t);else t&&P(t.ref)&&r(t)}));return t.observe(window.document,{childList:!0,subtree:!0}),t}(h,Ie),()=>{$.current=!0,je.current&&je.current.disconnect(),X.current={},Object.values(h.current).forEach((e=>Ie(e,!0)))})),[Ie]),!o&&Ae.current.isValid&&(pe.isValid=Q(E.current,w.current)&&H(Re.current.errors));const ze={trigger:Be,setValue:r.useCallback((function(e,r,t){Le(e,r,t),Te(e)&&Ce(),Ne(e),(t||{}).shouldValidate&&Be(e)}),[Le,Be]),getValues:r.useCallback(Me,[]),register:r.useCallback((function(e,r){if(!ye)if(z(e))qe({name:e},r);else{if(!A(e)||!("name"in e))return r=>r&&qe(r,e);qe(e,r)}}),[T.current]),unregister:r.useCallback((function(e){for(const r of Array.isArray(e)?e:[e])Ie(h.current[r],!0)}),[])},Ge=Object.assign({renderWatchedInputs:Ne,shouldUnregister:g,removeFieldEventListener:He,watchInternal:Ue,mode:ae.current,reValidateMode:{isReValidateOnBlur:Fe,isReValidateOnChange:Ve},fieldsRef:h,isWatchAllRef:I,watchFieldsRef:v,resetFieldArrayFunctionRef:Y,useWatchFieldsRef:O,useWatchRenderFunctionsRef:F,fieldArrayDefaultValuesRef:m,validFieldsRef:E,fieldsWithValidationRef:w,fieldArrayNamesRef:te,readFormStateRef:Ae,formStateRef:Re,defaultValuesRef:T,shallowFieldsStateRef:X,updateFormState:Ce,validateResolver:o?Pe:void 0},ze);return Object.assign({watch:function(e,r){return Ue(e,r)},control:Ge,formState:be?new Proxy(pe,{get:(e,r)=>{if(r in e)return Ae.current[r]=!0,e[r]}}):pe,handleSubmit:_e,reset:r.useCallback(((e,r={})=>{if(ge)for(const e of Object.values(h.current))if(e){const{ref:r,options:n}=e,s=de(r)&&Array.isArray(n)?n[0].ref:r;if(t(s))try{s.closest("form").reset();break}catch(e){}}h.current={},T.current=le(e||T.current),e&&Ne(""),X.current=g?{}:le(e)||{},Object.values(Y.current).forEach((e=>Z(e)&&e())),(({errors:e,isDirty:r,isSubmitted:t,touched:n,isValid:s,submitCount:c,dirtyFields:u})=>{s||(E.current={},w.current={}),N.current={},m.current={},v.current=new Set,I.current=!1,Ce({submitCount:c?Re.current.submitCount:0,isDirty:!!r&&Re.current.isDirty,isSubmitted:!!t&&Re.current.isSubmitted,isValid:!!s&&Re.current.isValid,dirtyFields:u?Re.current.dirtyFields:{},touched:n?Re.current.touched:{},errors:e?Re.current.errors:{},isSubmitting:!1,isSubmitSuccessful:!1})})(r)}),[]),clearErrors:r.useCallback((function(e){e&&(Array.isArray(e)?e:[e]).forEach((e=>h.current[e]?R(e)?delete Re.current.errors[e]:V(Re.current.errors,e,void 0):U(Re.current.errors,e))),Ce({errors:e?Re.current.errors:{}})}),[]),setError:r.useCallback((function(e,r){const t=(h.current[e]||{}).ref;V(Re.current.errors,e,Object.assign(Object.assign({},r),{ref:t})),Ce({isValid:!1,errors:Re.current.errors}),r.shouldFocus&&t&&t.focus&&t.focus()}),[]),errors:pe.errors},ze)},e.useFormContext=ve,e.useWatch=function({control:e,name:t,defaultValue:n}){const s=ve(),{useWatchFieldsRef:c,useWatchRenderFunctionsRef:u,watchInternal:i,defaultValuesRef:a}=e||s.control,[o,l]=r.useState(x(n)?z(t)?S(a.current,t):Array.isArray(t)?t.reduce(((e,r)=>Object.assign(Object.assign({},e),{[r]:S(a.current,r)})),{}):a.current:n),f=r.useRef(),d=r.useRef(o),y=r.useCallback((()=>{const e=i(t,d.current,f.current);l(A(e)?Object.assign({},e):Array.isArray(e)?[...e]:e)}),[l,i,d,t,f]);return r.useEffect((()=>{const e=f.current=pe(),r=u.current,n=c.current;return n[e]=new Set,r[e]=y,i(t,d.current,e),()=>{delete n[e],delete r[e]}}),[t,y,u,c,i,d]),x(o)?n:o},Object.defineProperty(e,"__esModule",{value:!0})}));
|
1
|
+
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self).ReactHookForm={},e.React)}(this,(function(e,r){"use strict";var t=e=>e instanceof HTMLElement;const n="blur",s="change",c="input",u="onBlur",i="onChange",a="onSubmit",o="onTouched",l="all",f="undefined",d="max",y="min",g="maxLength",b="minLength",m="pattern",h="required",v="validate";var p=e=>null==e;const O=e=>"object"==typeof e;var A=e=>!p(e)&&!Array.isArray(e)&&O(e)&&!(e instanceof Date),j=e=>!Array.isArray(e)&&(/^\w*$/.test(e)||!/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/.test(e)),R=e=>e.filter(Boolean),F=e=>R(e.replace(/["|']/g,"").replace(/\[/g,".").replace(/\]/g,"").split("."));function V(e,r,t){let n=-1;const s=j(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=A(t)||Array.isArray(t)?t:isNaN(+s[n+1])?{}:[]}e[r]=c,e=e[r]}return e}var C=(e,r={})=>{for(const t in e)j(t)?r[t]=e[t]:V(r,t,e[t]);return r},x=e=>void 0===e,S=(e,r,t)=>{const n=R(r.split(/[,[\].]+?/)).reduce(((e,r)=>p(e)?e:e[r]),e);return x(n)||n===e?x(e[r])?t:e[r]:n},k=(e,r)=>{t(e)&&e.removeEventListener&&(e.removeEventListener(c,r),e.removeEventListener(s,r),e.removeEventListener(n,r))};const w={isValid:!1,value:""};var E=e=>Array.isArray(e)?e.reduce(((e,r)=>r&&r.ref.checked?{isValid:!0,value:r.ref.value}:e),w):w,D=e=>"radio"===e.type,B=e=>"file"===e.type,L=e=>"checkbox"===e.type,T=e=>"select-multiple"===e.type;const N={value:!1,isValid:!1},W={value:!0,isValid:!0};var $=e=>{if(Array.isArray(e)){if(e.length>1){const r=e.filter((e=>e&&e.ref.checked)).map((({ref:{value:e}})=>e));return{value:r,isValid:!!r.length}}const{checked:r,value:t,attributes:n}=e[0].ref;return r?n&&!x(n.value)?x(t)||""===t?W:{value:t,isValid:!0}:W:N}return N};function M(e,r,t,n){const s=e.current[r];if(s){const{ref:{value:e,disabled:r},ref:t}=s;if(r&&n)return;return B(t)?t.files:D(t)?E(s.options).value:T(t)?(c=t.options,[...c].filter((({selected:e})=>e)).map((({value:e})=>e))):L(t)?$(s.options).value:e}var c;if(t)return S(t.current,r)}function P(e){return!e||e instanceof HTMLElement&&e.nodeType!==Node.DOCUMENT_NODE&&P(e.parentNode)}var H=e=>A(e)&&!Object.keys(e).length,U=e=>"boolean"==typeof e;function q(e,r){const t=j(r)?[r]:F(r),n=1==t.length?e:function(e,r){const t=r.slice(0,-1).length;let n=0;for(;n<t;)e=x(e)?n++:e[r[n++]];return e}(e,t),s=t[t.length-1];let c=void 0;n&&delete n[s];for(let r=0;r<t.slice(0,-1).length;r++){let n=-1,s=void 0;const u=t.slice(0,-(r+1)),i=u.length-1;for(r>0&&(c=e);++n<u.length;){const r=u[n];s=s?s[r]:e[r],i===n&&(A(s)&&H(s)||Array.isArray(s)&&!s.filter((e=>A(e)&&!H(e)||U(e))).length)&&(c?delete c[r]:delete e[r]),c=s}}return e}const I=(e,r)=>e&&e.ref===r;function _(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]=[],_(e[c][n],S(r[c]||{},n,[]),t[c][n],t[c],n)):S(r[c]||{},n)===e[c][n]?V(t[c]||{},n):t[c]=Object.assign(Object.assign({},t[c]),{[n]:!0});!t.length&&n&&delete n[s]}return t.length?t:void 0}var z=e=>"string"==typeof e,G=e=>p(e)||!O(e);function J(e,r){if(G(e)||G(r))return r;for(const t in r){const n=e[t],s=r[t];try{e[t]=A(n)&&A(s)||Array.isArray(n)&&Array.isArray(s)?J(n,s):s}catch(e){}}return e}var K=(e,r,t,n)=>{const s={};for(const r in e.current)(x(n)||(z(n)?r.startsWith(n):Array.isArray(n)&&n.find((e=>r.startsWith(e)))))&&(s[r]=M(e,r,void 0,t));return J(C(Object.assign({},(r||{}).current||{})),C(s))};function Q(e=[],r=[],t){const n=Object.keys(e),s=Object.keys(r);if(n.length!==s.length)return!1;for(const s of n)if(!t||!["ref","context"].includes(s)){const n=e[s],c=r[s];if((A(n)||Array.isArray(n))&&(A(c)||Array.isArray(c))?!Q(n,c,t):n!==c)return!1}return!0}var X=e=>e instanceof RegExp;var Y=e=>{return A(r=e)&&!X(r)?e:{value:e,message:""};var r},Z=e=>"function"==typeof e,ee=e=>z(e)||A(e)&&r.isValidElement(e);function re(e,r,t="validate"){if(ee(e)||U(e)&&!e)return{type:t,message:ee(e)?e:"",ref:r}}var te=(e,r,t,n,s)=>{if(r){const r=t[e];return Object.assign(Object.assign({},r),{types:Object.assign(Object.assign({},r&&r.types?r.types:{}),{[n]:s||!0})})}return{}},ne=async(e,r,{ref:t,ref:{type:n,value:s},options:c,required:u,maxLength:i,minLength:a,min:o,max:l,pattern:f,validate:O},j)=>{const R=e.current,F=t.name,V={},C=D(t),x=L(t),S=C||x,k=""===s,w=te.bind(null,F,r,V),B=(e,r,n,s=g,c=b)=>{const u=e?r:n;V[F]=Object.assign({type:e?s:c,message:u,ref:t},w(e?s:c,u))};if(u&&(!C&&!x&&(k||p(s))||U(s)&&!s||x&&!$(c).isValid||C&&!E(c).isValid)){const{value:e,message:n}=ee(u)?{value:!!u,message:u}:Y(u);if(e&&(V[F]=Object.assign({type:h,message:n,ref:S?((R[F].options||[])[0]||{}).ref:t},w(h,n)),!r))return V}if(!p(o)||!p(l)){let e,c;const{value:u,message:i}=Y(l),{value:a,message:f}=Y(o);if("number"===n||!n&&!isNaN(s)){const r=t.valueAsNumber||parseFloat(s);p(u)||(e=r>u),p(a)||(c=r<a)}else{const r=t.valueAsDate||new Date(s);z(u)&&(e=r>new Date(u)),z(a)&&(c=r<new Date(a))}if((e||c)&&(B(!!e,i,f,d,y),!r))return V}if(z(s)&&!k&&(i||a)){const{value:e,message:t}=Y(i),{value:n,message:c}=Y(a),u=s.toString().length,o=!p(e)&&u>e,l=!p(n)&&u<n;if((o||l)&&(B(!!o,t,c),!r))return V}if(f&&!k){const{value:e,message:n}=Y(f);if(X(e)&&!e.test(s)&&(V[F]=Object.assign({type:m,message:n,ref:t},w(m,n)),!r))return V}if(O){const n=M(e,F,j),s=S&&c?c[0].ref:t;if(Z(O)){const e=re(await O(n),s);if(e&&(V[F]=Object.assign(Object.assign({},e),w(v,e.message)),!r))return V}else if(A(O)){let e={};for(const[t,c]of Object.entries(O)){if(!H(e)&&!r)break;const u=re(await c(n),s,t);u&&(e=Object.assign(Object.assign({},u),w(t,u.message)),r&&(V[F]=e))}if(!H(e)&&(V[F]=Object.assign({ref:s},e),!r))return V}}return V};const se=(e,r)=>Object.entries(r).map((([t,n])=>((r,t,n)=>{const s=n?`${e}.${r}`:`${e}[${r}]`;return G(t)?s:se(s,t)})(t,n,A(r)))).flat(1/0);var ce=(e,r,t,n,s)=>{let c;return t.add(r),H(e)?c=void 0:(c=S(e,r),(A(c)||Array.isArray(c))&&se(r,c).forEach((e=>t.add(e)))),x(c)?s?n:S(n,r):c},ue=({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),ie=e=>e.substring(0,e.indexOf("["));const ae=(e,r)=>RegExp(`^${r}[\\d+]`.replace(/\[/g,"\\[").replace(/\]/g,"\\]")).test(e);var oe=(e,r)=>[...e].some((e=>ae(r,e)));function le(e){let r;if(G(e))return e;if(e instanceof Date)return r=new Date(e.getTime()),r;r=Array.isArray(e)?[]:{};for(const t in e)r[t]=le(e[t]);return r}var fe=e=>({isOnSubmit:!e||e===a,isOnBlur:e===u,isOnChange:e===i,isOnAll:e===l,isOnTouch:e===o}),de=e=>D(e)||L(e);const ye=typeof window===f,ge=typeof document!==f&&!ye&&!x(window.HTMLElement),be=ge?"Proxy"in window:typeof Proxy!==f;function me(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 he=r.createContext(null);he.displayName="RHFContext";const ve=()=>r.useContext(he);var pe=()=>{const e=typeof performance===f?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)}))};var Oe=(e,r)=>x(r)?[]:Array.isArray(r)?function(e,r){let t=-1;for(;++t<e.length;)r.indexOf(t)>=0&&delete e[t];return R(e)}(e,r):((e,r)=>[...e.slice(0,r),...e.slice(r+1)])(e,r),Ae=(e,r,t)=>Array.isArray(e)?(x(e[t])&&(e[t]=void 0),e.splice(t,0,e.splice(r,1)[0]),e):[],je=(e,r,t)=>{const n=[e[t],e[r]];e[r]=n[0],e[t]=n[1]};function Re(e,r){return[...Array.isArray(r)?r:[r||void 0],...e]}function Fe(e,r,t){return[...e.slice(0,r),...Array.isArray(t)?t:[t||void 0],...e.slice(r)]}var Ve=e=>Array.isArray(e)?Array(e.length).fill(void 0):void 0;function Ce(e){if(A(e)){const r={};for(const t in e)r[t]=!0;return[r]}return[!0]}var xe=e=>(Array.isArray(e)?e:[e]).map(Ce).flat();const Se=(e,r)=>e.map((e=>Object.assign({[r]:pe()},e)));e.Controller=e=>{var{name:t,rules:n,as:s,render:c,defaultValue:u,control:i,onFocus:a}=e,o=me(e,["name","rules","as","render","defaultValue","control","onFocus"]);const l=ve(),{defaultValuesRef:f,setValue:d,register:y,unregister:g,trigger:b,mode:m,reValidateMode:{isReValidateOnBlur:h,isReValidateOnChange:v},formStateRef:{current:{isSubmitted:p,touched:O}},updateFormState:j,readFormStateRef:R,fieldsRef:F,fieldArrayNamesRef:C,shallowFieldsStateRef:k}=i||l.control,w=!oe(C.current,t),E=()=>!x(S(k.current,t))&&w?S(k.current,t):x(u)?S(f.current,t):u,[D,B]=r.useState(E()),L=r.useRef(D),T=r.useRef(a),N=e=>!ue(Object.assign({isBlurEvent:e,isReValidateOnBlur:h,isReValidateOnChange:v,isSubmitted:p,isTouched:!!S(O,t)},m)),W=([e])=>{const r=(e=>G(e)||!A(e.target)||A(e.target)&&!e.type?e:x(e.target.value)?e.target.checked:e.target.value)(e);return B(r),L.current=r,r},$=r.useCallback((()=>{F.current[t]?F.current[t]=Object.assign({ref:F.current[t].ref},n):(y(Object.defineProperty({name:t,focus:T.current},"value",{set(e){B(e),L.current=e},get:()=>L.current}),n),w&&!S(f.current,t)&&B(E()))}),[n,t,y]);r.useEffect((()=>()=>g(t)),[g,t]),r.useEffect((()=>{$()}),[$]),r.useEffect((()=>{F.current[t]||($(),w&&B(E()))}));const M=()=>{R.current.touched&&!S(O,t)&&(V(O,t,!0),j({touched:O})),N(!0)&&b(t)},P=(...e)=>d(t,W(e),{shouldValidate:N(),shouldDirty:!0}),H=Object.assign(Object.assign({},o),{onChange:P,onBlur:M,name:t,value:D});return s?r.isValidElement(s)?r.cloneElement(s,H):r.createElement(s,H):c?c({onChange:P,onBlur:M,value:D,name:t}):null},e.FormProvider=e=>{var{children:t}=e,n=me(e,["children"]);return r.createElement(he.Provider,{value:Object.assign({},n)},t)},e.appendErrors=te,e.get=S,e.transformToNestObject=C,e.useFieldArray=({control:e,name:t,keyName:n="id"})=>{const s=ve(),c=r.useRef(-1),{updateWatchedValue:u,resetFieldArrayFunctionRef:i,fieldArrayNamesRef:a,fieldsRef:o,defaultValuesRef:l,removeFieldEventListener:f,formStateRef:d,shallowFieldsStateRef:y,updateFormState:g,readFormStateRef:b,validFieldsRef:m,fieldsWithValidationRef:h,fieldArrayDefaultValuesRef:v,validateResolver:p,getValues:O,shouldUnregister:A}=e||s.control,j=ie(t),F=r.useRef([...S(v.current,j)?S(v.current,t,[]):S(A?l.current:y.current,t,[])]),[C,k]=r.useState(Se(F.current,n)),w=r.useRef(C),E=()=>S(O(),t,w.current).map(((e,r)=>Object.assign(Object.assign({},w.current[r]),e)));w.current=C,a.current.add(t),S(v.current,j)||V(v.current,j,S(l.current,j));const D=e=>{if(k(e),b.current.isValid&&p){const r=O();V(r,t,e),p(r)}},B=e=>(b.current.isDirty||b.current.dirtyFields)&&(x(e)||!Q(e.map(((e={})=>{var r=n;e[r];return me(e,["symbol"==typeof r?r:r+""])})),S(l.current,t))),L=()=>{for(const e in o.current)ae(e,t)&&f(o.current[e],!0)},T=e=>!R(S(e,t,[])).length&&q(e,t),N=e=>{const r=S(l.current,t,[]),s=(e,r)=>{for(const s in e)for(const c in e[s])c===n||r[s]&&e[s]&&e[s][c]===r[s][c]||V(d.current.dirtyFields,`${t}[${s}]`,Object.assign(Object.assign({},S(d.current.dirtyFields,`${t}[${s}]`,{})),{[c]:!0}))};e&&(s(r,e),s(e,r))},W=(e,r,n,s=!0,c=!0,u=!1)=>{if(S(y.current,t)){const n=e(S(y.current,t),r.argA,r.argB);c&&V(y.current,t,n)}if(S(v.current,t)){const n=e(S(v.current,t),r.argA,r.argB);c&&V(v.current,t,n),T(v.current)}if(Array.isArray(S(d.current.errors,t))){const n=e(S(d.current.errors,t),r.argA,r.argB);c&&V(d.current.errors,t,n),T(d.current.errors)}if(b.current.touched&&S(d.current.touched,t)){const n=e(S(d.current.touched,t),r.argA,r.argB);c&&V(d.current.touched,t,n),T(d.current.touched)}if(b.current.dirtyFields||b.current.isDirty){const s=e(S(d.current.dirtyFields,t,[]),r.argC,r.argD);c&&V(d.current.dirtyFields,t,s),N(n),T(d.current.dirtyFields)}u&&b.current.isValid&&!p&&(V(m.current,t,e(S(m.current,t,[]),r.argA)),T(m.current),V(h.current,t,e(S(h.current,t,[]),r.argA)),T(h.current)),g({errors:d.current.errors,dirtyFields:d.current.dirtyFields,isDirty:s,touched:d.current.touched})},$=e=>{L(),!e&&q(v.current,t),q(y.current,t),F.current=S(e||l.current,t),k(Se(F.current,n))};return r.useEffect((()=>{const e=S(v.current,t);if(e&&C.length<e.length&&(e.pop(),V(v.current,t,e)),u(t),c.current>-1)for(const e in o.current){const r=o.current[e];if(e.startsWith(`${t}[${c.current}]`)&&r.ref.focus){r.ref.focus();break}}c.current=-1}),[C,t]),r.useEffect((()=>{const e=i.current,r=a.current;return ie(t)||(e[t]=$),()=>{L(),delete e[t],r.delete(t)}}),[]),{swap:r.useCallback(((e,r)=>{const t=E();je(t,e,r),L(),D([...t]),W(je,{argA:e,argB:r,argC:e,argD:r},void 0,B(t),!1)}),[t]),move:r.useCallback(((e,r)=>{const t=E();Ae(t,e,r),L(),D([...t]),W(Ae,{argA:e,argB:r,argC:e,argD:r},void 0,B(t),!1)}),[t]),prepend:r.useCallback(((e,r=!0)=>{const t=Ve(e),s=Re(E(),Se(Array.isArray(e)?e:[e],n));D(s),L(),W(Re,{argA:t,argC:xe(e)},s),c.current=r?0:-1}),[t]),append:r.useCallback(((e,r=!0)=>{const s=[...w.current,...Se(Array.isArray(e)?e:[e],n)];D(s),(b.current.dirtyFields||b.current.isDirty)&&(N(s),g({isDirty:!0,dirtyFields:d.current.dirtyFields})),A||(y.current[t]=[...y.current[t]||[],e]),c.current=r?w.current.length:-1}),[t]),remove:r.useCallback((e=>{const r=E(),t=Oe(r,e);D(t),L(),W(Oe,{argA:e,argC:e},t,B(Oe(r,e)),!0,!0)}),[t]),insert:r.useCallback(((e,r,t=!0)=>{const s=Ve(r),u=E(),i=Fe(u,e,Se(Array.isArray(r)?r:[r],n));D(i),L(),W(Fe,{argA:e,argB:s,argC:e,argD:xe(r)},i,B(Fe(u,e))),c.current=t?e:-1}),[t]),fields:C}},e.useForm=function({mode:e=a,reValidateMode:u=i,resolver:o,context:f,defaultValues:d={},shouldFocusError:y=!0,shouldUnregister:g=!0,criteriaMode:b}={}){const m=r.useRef({}),h=r.useRef({}),v=r.useRef(new Set),O=r.useRef({}),F=r.useRef({}),w=r.useRef({}),E=r.useRef({}),N=r.useRef(d),W=r.useRef({}),$=r.useRef(!1),U=r.useRef(!1),J=r.useRef(),X=r.useRef(g?{}:le(d)),Y=r.useRef({}),ee=r.useRef(f),re=r.useRef(o),te=r.useRef(new Set),ae=r.useRef(fe(e)),{isOnSubmit:me,isOnTouch:he}=ae.current,ve=b===l,[pe,Oe]=r.useState({isDirty:!1,dirtyFields:{},isSubmitted:!1,submitCount:0,touched:{},isSubmitting:!1,isSubmitSuccessful:!1,isValid:!me,errors:{}}),Ae=r.useRef({isDirty:!be,dirtyFields:!be,touched:!be||he,isSubmitting:!be,isValid:!be}),je=r.useRef(pe),Re=r.useRef(),{isOnBlur:Fe,isOnChange:Ve}=r.useRef(fe(u)).current;ee.current=f,re.current=o,je.current=pe;const Ce=r.useCallback(((e={})=>!$.current&&Oe(Object.assign(Object.assign({},je.current),e))),[]),xe=r.useCallback(((e,r,t=!1,n={},s)=>{let c=t||function({errors:e,name:r,error:t,validFields:n,fieldsWithValidation:s}){const c=x(t),u=S(e,r);return c&&!!u||!c&&!Q(u,t,!0)||c&&S(s,r)&&!S(n,r)}({errors:je.current.errors,error:r,name:e,validFields:E.current,fieldsWithValidation:w.current});const u=S(je.current.errors,e);r?(q(E.current,e),c=c||!u||!Q(u,r,!0),V(je.current.errors,e,r)):((S(w.current,e)||re.current)&&(V(E.current,e,!0),c=c||u),q(je.current.errors,e)),(c&&!p(t)||!H(n))&&Ce(Object.assign(Object.assign(Object.assign({},n),{errors:je.current.errors}),re.current?{isValid:!!s}:{}))}),[]),Se=r.useCallback(((e,r)=>{const{ref:n,options:s}=m.current[e],c=ge&&t(n)&&p(r)?"":r;D(n)&&s?s.forEach((({ref:e})=>e.checked=e.value===c)):B(n)&&!z(c)?n.files=c:T(n)?[...n.options].forEach((e=>e.selected=c.includes(e.value))):L(n)&&s?s.length>1?s.forEach((({ref:e})=>e.checked=Array.isArray(c)?!!c.find((r=>r===e.value)):c===e.value)):s[0].ref.checked=!!c:n.value=c}),[]),ke=()=>!Q(Me(),H(N.current)?W.current:N.current),we=r.useCallback(((e,r=!0)=>{if(Ae.current.isDirty||Ae.current.dirtyFields){const t=S(W.current,e)!==M(m,e,X),n=S(je.current.dirtyFields,e),s=je.current.isDirty;t?V(je.current.dirtyFields,e,!0):q(je.current.dirtyFields,e);const c={isDirty:ke(),dirtyFields:je.current.dirtyFields},u=Ae.current.isDirty&&s!==c.isDirty||Ae.current.dirtyFields&&n!==S(je.current.dirtyFields,e);return u&&r&&(je.current=Object.assign(Object.assign({},je.current),c),Ce(Object.assign({},c))),u?c:{}}return{}}),[]),Ee=r.useCallback((async(e,r)=>{if(m.current[e]){const t=(await ne(m,ve,m.current[e],X))[e];return xe(e,t,r),x(t)}return!1}),[xe,ve]),De=r.useCallback((async e=>{const{errors:r}=await re.current(Me(),ee.current,ve),t=je.current.isValid;if(Array.isArray(e)){const t=e.map((e=>{const t=S(r,e);return t?V(je.current.errors,e,t):q(je.current.errors,e),!t})).every(Boolean);return Ce({isValid:H(r),errors:je.current.errors}),t}{const n=S(r,e);return xe(e,n,t!==H(r),{},H(r)),!n}}),[xe,ve]),Be=r.useCallback((async e=>{const r=e||Object.keys(m.current);if(re.current)return De(r);if(Array.isArray(r)){const e=await Promise.all(r.map((async e=>await Ee(e,null))));return Ce(),e.every(Boolean)}return await Ee(r,Ae.current.isValid)}),[De,Ee]),Le=r.useCallback(((e,r,{shouldDirty:t,shouldValidate:n})=>{const s={};V(s,e,r);for(const c of se(e,r))m.current[c]&&(Se(c,S(s,c)),t&&we(c),n&&Be(c))}),[Be,Se,we]),Te=r.useCallback(((e,r,t={})=>{m.current[e]?(Se(e,r),t.shouldDirty&&we(e)):G(r)||(Le(e,r,t),te.current.has(e)&&(h.current[e]=r,Y.current[e]({[e]:r}),(Ae.current.isDirty||Ae.current.dirtyFields)&&t.shouldDirty&&(V(je.current.dirtyFields,e,_(r,S(N.current,e,[]),S(je.current.dirtyFields,e,[]))),Ce({isDirty:!Q(Object.assign(Object.assign({},Me()),{[e]:r}),N.current),dirtyFields:je.current.dirtyFields})))),!g&&V(X.current,e,r)}),[we,Se,Le]),Ne=e=>U.current||v.current.has(e)||v.current.has((e.match(/\w+/)||[])[0]),We=(e,r=!0)=>{if(!H(O.current))for(const t in O.current)e&&O.current[t].size&&!O.current[t].has(e)&&!O.current[t].has(ie(e))||(F.current[t](),r=!1);return r};function $e(e){if(!g){let r=le(e);for(const e of te.current)j(e)&&!r[e]&&(r=Object.assign(Object.assign({},r),{[e]:[]}));return r}return e}function Me(e){if(z(e))return M(m,e,X);if(Array.isArray(e)){const r={};for(const t of e)V(r,t,M(m,t,X));return r}return $e(K(m,X))}J.current=J.current?J.current:async({type:e,target:r})=>{const t=r.name,s=m.current[t];let c,u;if(s){const r=e===n,i=ue(Object.assign({isBlurEvent:r,isReValidateOnChange:Ve,isReValidateOnBlur:Fe,isTouched:!!S(je.current.touched,t),isSubmitted:je.current.isSubmitted},ae.current));let a=we(t,!1),o=!H(a)||Ne(t);if(r&&!S(je.current.touched,t)&&Ae.current.touched&&(V(je.current.touched,t,!0),a=Object.assign(Object.assign({},a),{touched:je.current.touched})),i)return We(t),(!H(a)||o&&H(a))&&Ce(a);if(re.current){const{errors:e}=await re.current(Me(),ee.current,ve),r=je.current.isValid;c=S(e,t),u=H(e),r!==u&&(o=!0)}else c=(await ne(m,ve,s,X))[t];We(t),xe(t,c,o,a,u)}};const Pe=r.useCallback((async(e={})=>{const{errors:r}=await re.current(Object.assign(Object.assign(Object.assign({},N.current),Me()),e),ee.current,ve),t=H(r);je.current.isValid!==t&&Ce({isValid:t})}),[ve]),He=r.useCallback(((e,r)=>function(e,r,t,n,s,c){const{ref:u,ref:{name:i,type:a}}=t,o=e.current[i];if(!s){const r=M(e,i,n);x(r)||V(n.current,i,r)}if(a)if((D(u)||L(u))&&o){const{options:t}=o;Array.isArray(t)&&t.length?(R(t).forEach(((e,n)=>{const{ref:s}=e;(s&&P(s)&&I(e,s)||c)&&(k(s,r),q(t,`[${n}]`))})),t&&!R(t).length&&delete e.current[i]):delete e.current[i]}else(P(u)&&I(o,u)||c)&&(k(u,r),delete e.current[i]);else delete e.current[i]}(m,J.current,e,X,g,r)),[g]),Ue=e=>{if(U.current)Ce();else if(v){let r=!0;for(const t of v.current)if(t.startsWith(e)){Ce(),r=!1;break}r&&We(e)}},qe=r.useCallback(((e,r)=>{e&&(He(e,r),g&&!R(e.options||[]).length&&(q(W.current,e.ref.name),q(E.current,e.ref.name),q(w.current,e.ref.name),q(je.current.errors,e.ref.name),V(je.current.dirtyFields,e.ref.name,!0),Ce({errors:je.current.errors,isDirty:ke(),dirtyFields:je.current.dirtyFields}),re.current&&Pe(),Ue(e.ref.name)))}),[Pe,He]),Ie=r.useCallback(((e,r,t)=>{const n=t?O.current[t]:v.current,s=x(r)?N.current:r,c=K(m,X,!1,e);return z(e)?ce(c,e,n,x(r)?S(s,e):r,!0):Array.isArray(e)?e.reduce(((e,r)=>Object.assign(Object.assign({},e),{[r]:ce(c,r,n,s)})),{}):(U.current=x(t),C(!H(c)&&c||s))}),[]);function _e(e,r={}){const{name:u,type:i,value:a}=e,o=Object.assign({ref:e},r),l=m.current,f=de(e),d=oe(te.current,u),y=r=>ge&&(!t(e)||r===e);let g,b=l[u],h=!0;if(b&&(f?Array.isArray(b.options)&&R(b.options).find((e=>a===e.ref.value&&y(e.ref))):y(b.ref)))return void(l[u]=Object.assign(Object.assign({},b),r));b=i?f?Object.assign({options:[...R(b&&b.options||[]),{ref:e}],ref:{type:i,name:u}},r):Object.assign({},o):o,l[u]=b;const v=x(S(X.current,u));if(H(N.current)&&v||(g=S(v?N.current:X.current,u),h=x(g),h||d||Se(u,g)),H(r)||(V(w.current,u,!0),!me&&Ae.current.isValid&&ne(m,ve,b,X).then((e=>{const r=je.current.isValid;H(e)?V(E.current,u,!0):q(E.current,u),r!==H(e)&&Ce()}))),!(W.current[u]||d&&h)){const e=M(m,u,X);V(W.current,u,h?A(e)?Object.assign({},e):e:g),!d&&q(je.current.dirtyFields,u)}i&&function({ref:e},r,u){t(e)&&u&&(e.addEventListener(r?s:c,u),e.addEventListener(n,u))}(f&&b.options?b.options[b.options.length-1]:b,f||"select-one"===e.type,J.current)}const ze=r.useCallback(((e,r)=>async t=>{t&&t.preventDefault&&(t.preventDefault(),t.persist());let n={},s=$e(K(m,X,!0));Ae.current.isSubmitting&&Ce({isSubmitting:!0});try{if(re.current){const{errors:e,values:r}=await re.current(s,ee.current,ve);je.current.errors=n=e,s=r}else for(const e of Object.values(m.current))if(e){const{ref:{name:r}}=e,t=await ne(m,ve,e,X);t[r]?(V(n,r,t[r]),q(E.current,r)):S(w.current,r)&&(q(je.current.errors,r),V(E.current,r,!0))}H(n)&&Object.keys(je.current.errors).every((e=>e in m.current))?(Ce({errors:{},isSubmitting:!0}),await e(s,t)):(je.current.errors=Object.assign(Object.assign({},je.current.errors),n),r&&await r(n,t),y&&((e,r)=>{for(const t in e)if(S(r,t)){const r=e[t];if(r){if(r.ref.focus){r.ref.focus();break}if(r.options){r.options[0].ref.focus();break}}}})(m.current,n))}finally{Ce({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:H(je.current.errors),errors:je.current.errors,submitCount:je.current.submitCount+1})}}),[y,ve]);r.useEffect((()=>($.current=!1,o&&Ae.current.isValid&&Pe(),Re.current=Re.current||!ge?Re.current:function(e,r){const t=new MutationObserver((()=>{for(const t of Object.values(e.current))if(t&&t.options)for(const e of t.options)e&&e.ref&&P(e.ref)&&r(t);else t&&P(t.ref)&&r(t)}));return t.observe(window.document,{childList:!0,subtree:!0}),t}(m,qe),()=>{$.current=!0,Re.current&&Re.current.disconnect(),X.current={},Object.values(m.current).forEach((e=>qe(e,!0)))})),[qe]),!o&&Ae.current.isValid&&(pe.isValid=Q(E.current,w.current)&&H(je.current.errors));const Ge={trigger:Be,setValue:r.useCallback((function(e,r,t){Te(e,r,t),Ne(e)&&Ce(),We(e),(t||{}).shouldValidate&&Be(e)}),[Te,Be]),getValues:r.useCallback(Me,[]),register:r.useCallback((function(e,r){if(!ye)if(z(e))_e({name:e},r);else{if(!A(e)||!("name"in e))return r=>r&&_e(r,e);_e(e,r)}}),[N.current]),unregister:r.useCallback((function(e){for(const r of Array.isArray(e)?e:[e])qe(m.current[r],!0)}),[])},Je=Object.assign({updateWatchedValue:Ue,shouldUnregister:g,removeFieldEventListener:He,watchInternal:Ie,mode:ae.current,reValidateMode:{isReValidateOnBlur:Fe,isReValidateOnChange:Ve},fieldsRef:m,resetFieldArrayFunctionRef:Y,useWatchFieldsRef:O,useWatchRenderFunctionsRef:F,fieldArrayDefaultValuesRef:h,validFieldsRef:E,fieldsWithValidationRef:w,fieldArrayNamesRef:te,readFormStateRef:Ae,formStateRef:je,defaultValuesRef:N,shallowFieldsStateRef:X,updateFormState:Ce,validateResolver:o?Pe:void 0},Ge);return Object.assign({watch:function(e,r){return Ie(e,r)},control:Je,formState:be?new Proxy(pe,{get:(e,r)=>{if(r in e)return Ae.current[r]=!0,e[r]}}):pe,handleSubmit:ze,reset:r.useCallback(((e,r={})=>{if(ge)for(const e of Object.values(m.current))if(e){const{ref:r,options:n}=e,s=de(r)&&Array.isArray(n)?n[0].ref:r;if(t(s))try{s.closest("form").reset();break}catch(e){}}m.current={},N.current=le(e||N.current),e&&We(""),Object.values(Y.current).forEach((e=>Z(e)&&e())),X.current=g?{}:le(e)||{},(({errors:e,isDirty:r,isSubmitted:t,touched:n,isValid:s,submitCount:c,dirtyFields:u})=>{s||(E.current={},w.current={}),W.current={},h.current={},v.current=new Set,U.current=!1,Ce({submitCount:c?je.current.submitCount:0,isDirty:!!r&&je.current.isDirty,isSubmitted:!!t&&je.current.isSubmitted,isValid:!!s&&je.current.isValid,dirtyFields:u?je.current.dirtyFields:{},touched:n?je.current.touched:{},errors:e?je.current.errors:{},isSubmitting:!1,isSubmitSuccessful:!1})})(r)}),[]),clearErrors:r.useCallback((function(e){e&&(Array.isArray(e)?e:[e]).forEach((e=>m.current[e]?j(e)?delete je.current.errors[e]:V(je.current.errors,e,void 0):q(je.current.errors,e))),Ce({errors:e?je.current.errors:{}})}),[]),setError:r.useCallback((function(e,r){const t=(m.current[e]||{}).ref;V(je.current.errors,e,Object.assign(Object.assign({},r),{ref:t})),Ce({isValid:!1,errors:je.current.errors}),r.shouldFocus&&t&&t.focus&&t.focus()}),[]),errors:pe.errors},Ge)},e.useFormContext=ve,e.useWatch=function({control:e,name:t,defaultValue:n}){const s=ve(),{useWatchFieldsRef:c,useWatchRenderFunctionsRef:u,watchInternal:i,defaultValuesRef:a}=e||s.control,[o,l]=r.useState(x(n)?z(t)?S(a.current,t):Array.isArray(t)?t.reduce(((e,r)=>Object.assign(Object.assign({},e),{[r]:S(a.current,r)})),{}):a.current:n),f=r.useRef(),d=r.useRef(n),y=r.useCallback((()=>{const e=i(t,d.current,f.current);l(A(e)?Object.assign({},e):Array.isArray(e)?[...e]:e)}),[l,i,d,t,f]);return r.useEffect((()=>{const e=f.current=pe(),r=u.current,n=c.current;return n[e]=new Set,r[e]=y,i(t,d.current,e),()=>{delete n[e],delete r[e]}}),[t,y,u,c,i,d]),x(o)?n:o},Object.defineProperty(e,"__esModule",{value:!0})}));
|
2
2
|
//# sourceMappingURL=index.umd.production.min.js.map
|