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