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