react-hook-form 7.15.2 → 7.15.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/README.md +7 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +33 -32
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/package.json +12 -12
package/dist/index.umd.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactHookForm={},e.React)}(this,(function(e,t){"use strict";function r(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=r(t),a=e=>"checkbox"===e.type,n=e=>e instanceof Date,i=e=>null==e;const o=e=>"object"==typeof e;var u=e=>!i(e)&&!Array.isArray(e)&&o(e)&&!n(e),l=e=>e.substring(0,e.search(/.\d/))||e,c=(e,t)=>[...e].some(e=>l(t)===e),d=e=>e.filter(Boolean),f=e=>void 0===e,g=(e,t,r)=>{if(u(e)&&t){const s=d(t.split(/[,[\].]+?/)).reduce((e,t)=>i(e)?e:e[t],e);return f(s)||s===e?f(e[t])?r:e[t]:s}};const y="blur",m="change",b="onBlur",h="onChange",_="onSubmit",v="onTouched",p="all",x="max",A="min",O="maxLength",j="minLength",V="pattern",F="required",w="validate";var S=(e,t)=>{const r=Object.assign({},e);return delete r[t],r};const k=s.createContext(null);k.displayName="RHFContext";const D=()=>s.useContext(k);var C=(e,t,r,s=!0)=>{function a(a){return()=>{if(a in e)return t[a]!==p&&(t[a]=!s||p),r&&(r[a]=!0),e[a]}}const n={};for(const t in e)Object.defineProperty(n,t,{get:a(t)});return n},E=e=>u(e)&&!Object.keys(e).length,M=(e,t,r)=>{const s=S(e,"name");return E(s)||Object.keys(s).length>=Object.keys(t).length||Object.keys(s).find(e=>t[e]===(!r||p))},B=e=>Array.isArray(e)?e:[e];function N(e){const t=D(),{control:r=t.control,disabled:a,name:n}=e||{},i=s.useRef(n),[o,u]=s.useState(r._formState),l=s.useRef({isDirty:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1});return i.current=n,s.useEffect(()=>{const e=r._subjects.state.subscribe({next:e=>(!i.current||!e.name||B(i.current).includes(e.name))&&M(e,l.current)&&u(Object.assign(Object.assign({},r._formState),e))});return a&&e.unsubscribe(),()=>e.unsubscribe()},[a,r]),C(o,r._proxyFormState,l.current,!1)}var T=e=>/^\w*$/.test(e),U=e=>d(e.replace(/["|']|\]/g,"").split(/\.|\[/));function I(e,t,r){let s=-1;const a=T(t)?[t]:U(t),n=a.length,i=n-1;for(;++s<n;){const t=a[s];let n=r;if(s!==i){const r=e[t];n=u(r)||Array.isArray(r)?r:isNaN(+a[s+1])?{}:[]}e[t]=n,e=e[t]}return e}function P(e){const t=D(),{name:r,control:n=t.control,shouldUnregister:i}=e,[o,l]=s.useState(g(n._formValues,r,g(n._defaultValues,r,e.defaultValue)));I(n._formValues,r,o);const d=N({control:n||t.control,name:r}),f=n.register(r,Object.assign(Object.assign({},e.rules),{value:o})),b=s.useCallback((e,t)=>{const r=g(n._fields,e);r&&(r._f.mount=t)},[n]);return s.useEffect(()=>{const e=n._subjects.control.subscribe({next:e=>(!e.name||r===e.name)&&l(g(e.values,r))});return b(r,!0),()=>{e.unsubscribe();const t=n._shouldUnregister||i;(c(n._names.array,r)?t&&!n._isInAction:t)?n.unregister(r):b(r,!1)}},[r,n,i,b]),{field:{onChange:e=>{const t=(e=>u(e)&&e.target?a(e.target)?e.target.checked:e.target.value:e)(e);l(t),f.onChange({target:{value:t,name:r},type:m})},onBlur:()=>{f.onBlur({target:{value:o,name:r},type:y})},name:r,value:o,ref:e=>{const t=g(n._fields,r);e&&t&&e.focus&&(t._f.ref={focus:()=>e.focus(),setCustomValidity:t=>e.setCustomValidity(t),reportValidity:()=>e.reportValidity()})}},formState:d,fieldState:{invalid:!!g(d.errors,r),isDirty:!!g(d.dirtyFields,r),isTouched:!!g(d.touchedFields,r),error:g(d.errors,r)}}}var R=(e,t,r,s,a)=>t?Object.assign(Object.assign({},r[e]),{types:Object.assign(Object.assign({},r[e]&&r[e].types?r[e].types:{}),{[s]:a||!0})}):{};const L=(e,t,r)=>{for(const s of r||Object.keys(e)){const r=g(e,s);if(r){const e=r._f,s=S(r,"_f");if(e&&t(e.name)){if(e.ref.focus&&f(e.ref.focus()))break;if(e.refs){e.refs[0].focus();break}}else u(s)&&L(s,t)}}};var W=(e,t,r)=>r&&!r.shouldFocus?r.focusName||`${e}.${r.focusIndex}.`:`${e}.${t}.`,$=(e,t,r)=>e.map((e,s)=>{const a=t.current[s];return Object.assign(Object.assign({},e),a?{[r]:a[r]}:{})}),q=()=>{const e="undefined"==typeof performance?Date.now():1e3*performance.now();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{const r=(16*Math.random()+e)%16|0;return("x"==t?r:3&r|8).toString(16)})},H=(e=[],t)=>e.map(e=>Object.assign(Object.assign({},e[t]?{}:{[t]:q()}),e));function z(e,t){return[...B(e),...B(t)]}var G=e=>Array.isArray(e)?e.map(()=>{}):void 0;function J(e,t,r){return[...e.slice(0,t),...B(r),...e.slice(t)]}var K=(e,t,r)=>Array.isArray(e)?(f(e[r])&&(e[r]=void 0),e.splice(r,0,e.splice(t,1)[0]),e):[];function Q(e,t){return[...B(t),...B(e)]}var X=(e,t)=>f(t)?[]:function(e,t){let r=0;const s=[...e];for(const e of t)s.splice(e-r,1),r++;return d(s).length?s:[]}(e,B(t).sort((e,t)=>e-t)),Y=(e,t,r)=>{e[t]=[e[r],e[r]=e[t]][0]},Z=(e,t,r)=>(e[t]=r,e);var ee=e=>i(e)||!o(e);function te(e,t){if(ee(e)||ee(t)||n(e)||n(t))return e===t;const r=Object.keys(e),s=Object.keys(t);if(r.length!==s.length)return!1;for(const a of r){const r=e[a];if(!s.includes(a))return!1;if("ref"!==a){const e=t[a];if((u(r)||Array.isArray(r))&&(u(e)||Array.isArray(e))?!te(r,e):r!==e)return!1}}return!0}var re=e=>({isOnSubmit:!e||e===_,isOnBlur:e===b,isOnChange:e===h,isOnAll:e===p,isOnTouch:e===v}),se=e=>"boolean"==typeof e,ae=e=>"file"===e.type,ne=e=>"function"==typeof e,ie=e=>e instanceof HTMLElement,oe=e=>"select-multiple"===e.type,ue=e=>"radio"===e.type,le=e=>"string"==typeof e,ce="undefined"!=typeof window&&void 0!==window.HTMLElement&&"undefined"!=typeof document,de=e=>!ie(e)||!document.contains(e),fe=(e,t)=>e.map((e={})=>S(e,t));class ge{constructor(){this.tearDowns=[]}add(e){this.tearDowns.push(e)}unsubscribe(){for(const e of this.tearDowns)e();this.tearDowns=[]}}class ye{constructor(e,t){this.observer=e,this.closed=!1,t.add(()=>this.closed=!0)}next(e){this.closed||this.observer.next(e)}}class me{constructor(){this.observers=[]}next(e){for(const t of this.observers)t.next(e)}subscribe(e){const t=new ge,r=new ye(e,t);return this.observers.push(r),t}unsubscribe(){this.observers=[]}}function be(e,t){const r=T(t)?[t]:U(t),s=1==r.length?e:function(e,t){const r=t.slice(0,-1).length;let s=0;for(;s<r;)e=f(e)?s++:e[t[s++]];return e}(e,r),a=r[r.length-1];let n;s&&delete s[a];for(let t=0;t<r.slice(0,-1).length;t++){let s,a=-1;const i=r.slice(0,-(t+1)),o=i.length-1;for(t>0&&(n=e);++a<i.length;){const t=i[a];s=s?s[t]:e[t],o===a&&(u(s)&&E(s)||Array.isArray(s)&&!s.filter(e=>u(e)&&!E(e)||se(e)).length)&&(n?delete n[t]:delete e[t]),n=s}}return e}const he={value:!1,isValid:!1},_e={value:!0,isValid:!0};var ve=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(e=>e&&e.checked&&!e.disabled).map(e=>e.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!f(e[0].attributes.value)?f(e[0].value)||""===e[0].value?_e:{value:e[0].value,isValid:!0}:_e:he}return he},pe=(e,{valueAsNumber:t,valueAsDate:r,setValueAs:s})=>f(e)?e:t?""===e?NaN:+e:r?new Date(e):s?s(e):e;const xe={isValid:!1,value:null};var Ae=e=>Array.isArray(e)?e.reduce((e,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:e,xe):xe;function Oe(e){const t=e.ref;var r;if(!(e.refs?e.refs.every(e=>e.disabled):t.disabled))return ae(t)?t.files:ue(t)?Ae(e.refs).value:oe(t)?(r=t.options,[...r].filter(({selected:e})=>e).map(({value:e})=>e)):a(t)?ve(e.refs).value:pe(f(t.value)?e.ref.value:t.value,e)}function je(e,t,r,s,a){let n=-1;for(;++n<e.length;){for(const s in e[n])Array.isArray(e[n][s])?(!r[n]&&(r[n]={}),r[n][s]=[],je(e[n][s],g(t[n]||{},s,[]),r[n][s],r[n],s)):!i(t)&&te(g(t[n]||{},s),e[n][s])?I(r[n]||{},s):r[n]=Object.assign(Object.assign({},r[n]),{[s]:!0});s&&!r.length&&delete s[a]}return r}var Ve=(e,t,r)=>function e(t,r){if(ee(t)||ee(r))return r;for(const s in r){const a=t[s],n=r[s];try{t[s]=u(a)&&u(n)||Array.isArray(a)&&Array.isArray(n)?e(a,n):n}catch(e){}}return t}(je(e,t,r.slice(0,e.length)),je(t,e,r.slice(0,e.length))),Fe=(e,t)=>!d(g(e,t,[])).length&&be(e,t),we=e=>le(e)||s.isValidElement(e),Se=e=>e instanceof RegExp;function ke(e,t,r="validate"){if(we(e)||Array.isArray(e)&&e.every(we)||se(e)&&!e)return{type:r,message:we(e)?e:"",ref:t}}var De=e=>u(e)&&!Se(e)?e:{value:e,message:""},Ce=async(e,t,r,s)=>{const{ref:n,refs:o,required:l,maxLength:c,minLength:d,min:f,max:g,pattern:y,validate:m,name:b,valueAsNumber:h,mount:_,disabled:v}=e._f;if(!_||v)return{};const p=o?o[0]:n,S=e=>{s&&p.reportValidity&&(p.setCustomValidity(se(e)?"":e||" "),p.reportValidity())},k={},D=ue(n),C=a(n),M=D||C,B=(h||ae(n))&&!n.value||""===t||Array.isArray(t)&&!t.length,N=R.bind(null,b,r,k),T=(e,t,r,s=O,a=j)=>{const i=e?t:r;k[b]=Object.assign({type:e?s:a,message:i,ref:n},N(e?s:a,i))};if(l&&(!M&&(B||i(t))||se(t)&&!t||C&&!ve(o).isValid||D&&!Ae(o).isValid)){const{value:e,message:t}=we(l)?{value:!!l,message:l}:De(l);if(e&&(k[b]=Object.assign({type:F,message:t,ref:p},N(F,t)),!r))return S(t),k}if(!(B||i(f)&&i(g))){let e,s;const a=De(g),o=De(f);if(isNaN(t)){const r=n.valueAsDate||new Date(t);le(a.value)&&(e=r>new Date(a.value)),le(o.value)&&(s=r<new Date(o.value))}else{const r=n.valueAsNumber||parseFloat(t);i(a.value)||(e=r>a.value),i(o.value)||(s=r<o.value)}if((e||s)&&(T(!!e,a.message,o.message,x,A),!r))return S(k[b].message),k}if((c||d)&&!B&&le(t)){const e=De(c),s=De(d),a=!i(e.value)&&t.length>e.value,n=!i(s.value)&&t.length<s.value;if((a||n)&&(T(a,e.message,s.message),!r))return S(k[b].message),k}if(y&&!B&&le(t)){const{value:e,message:s}=De(y);if(Se(e)&&!t.match(e)&&(k[b]=Object.assign({type:V,message:s,ref:n},N(V,s)),!r))return S(s),k}if(m)if(ne(m)){const e=ke(await m(t),p);if(e&&(k[b]=Object.assign(Object.assign({},e),N(w,e.message)),!r))return S(e.message),k}else if(u(m)){let e={};for(const s in m){if(!E(e)&&!r)break;const a=ke(await m[s](t),p,s);a&&(e=Object.assign(Object.assign({},a),N(s,a.message)),S(a.message),r&&(k[b]=e))}if(!E(e)&&(k[b]=Object.assign({ref:p},e),!r))return k}return S(!0),k};const Ee={mode:_,reValidateMode:h,shouldFocusError:!0},Me="undefined"==typeof window;function Be(e={}){let t,r=Object.assign(Object.assign({},Ee),e),s={isDirty:!1,isValidating:!1,dirtyFields:{},isSubmitted:!1,submitCount:0,touchedFields:{},isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,errors:{}},o={},m={},b=r.defaultValues||{},h=!1,_=!1,v=0,x={mount:new Set,unMount:new Set,array:new Set,watch:new Set},A={};const O={isDirty:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},j={watch:new me,control:new me,array:new me,state:new me},V=re(r.mode),F=re(r.reValidateMode),w=r.criteriaMode===p,k=e=>x.watchAll||x.watch.has(e)||x.watch.has((e.match(/\w+/)||[])[0]),D=(e,t)=>{I(s.errors,e,t),j.state.next({errors:s.errors})},C=async(r,a,n,i,o)=>{const u=g(s.errors,a),l=O.isValid&&s.isValid!==n;var c,d;if(e.delayError&&i?(t=t||(c=D,d=e.delayError,(...e)=>{clearTimeout(v),v=window.setTimeout(()=>c(...e),d)}),t(a,i)):(clearTimeout(v),i?I(s.errors,a,i):be(s.errors,a)),((i?!te(u,i):u)||!E(o)||l)&&!r){const e=Object.assign(Object.assign(Object.assign({},o),l?{isValid:n}:{}),{errors:s.errors,name:a});s=Object.assign(Object.assign({},s),e),j.state.next(e)}A[a]--,O.isValidating&&!A[a]&&(j.state.next({isValidating:!1}),A={})},M=(e,t,r={},s)=>{const n=g(o,e);if(n){const o=n._f;if(o){I(m,e,pe(t,o));const n=ce&&ie(o.ref)&&i(t)?"":t;ae(o.ref)&&!le(n)?o.ref.files=n:oe(o.ref)?[...o.ref.options].forEach(e=>e.selected=n.includes(e.value)):o.refs?a(o.ref)?o.refs.length>1?o.refs.forEach(e=>e.checked=Array.isArray(n)?!!n.find(t=>t===e.value):n===e.value):o.refs[0].checked=!!n:o.refs.forEach(e=>e.checked=e.value===n):o.ref.value=n,s&&j.control.next({values:J(),name:e}),(r.shouldDirty||r.shouldTouch)&&N(e,n,r.shouldTouch),r.shouldValidate&&G(e)}}},N=(e,t,r,a=!0)=>{const n={name:e};let i=!1;if(O.isDirty){const e=s.isDirty;s.isDirty=W(),n.isDirty=s.isDirty,i=e!==n.isDirty}if(O.dirtyFields&&!r){const r=g(s.dirtyFields,e);!te(g(b,e),t)?I(s.dirtyFields,e,!0):be(s.dirtyFields,e),n.dirtyFields=s.dirtyFields,i=i||r!==g(s.dirtyFields,e)}const o=g(s.touchedFields,e);return r&&!o&&(I(s.touchedFields,e,r),n.touchedFields=s.touchedFields,i=i||O.touchedFields&&o!==r),i&&a&&j.state.next(n),i?n:{}},T=async e=>r.resolver?await r.resolver(Object.assign({},m),r.context,((e,t,r,s)=>{const a={};for(const r of e){const e=g(t,r);e&&I(a,r,e._f)}return{criteriaMode:r,names:[...e],fields:a,shouldUseNativeValidation:s}})(e||x.mount,o,r.criteriaMode,r.shouldUseNativeValidation)):{},U=async(e,t,a={valid:!0})=>{for(const n in e){const i=e[n];if(i){const e=i._f,n=S(i,"_f");if(e){const n=await Ce(i,g(m,e.name),w,r.shouldUseNativeValidation);if(n[e.name]&&(a.valid=!1,t))break;t||(n[e.name]?I(s.errors,e.name,n[e.name]):be(s.errors,e.name))}n&&await U(n,t,a)}}return a.valid},P=async({type:e,target:t,target:{value:n,name:i,type:u}})=>{const c=g(o,i);if(c){let f,b;const h=u?Oe(c._f):n,_=e===y,v=!((d=c._f).mount&&(d.required||d.min||d.max||d.maxLength||d.minLength||d.pattern||d.validate)||r.resolver||g(s.errors,i)||c._f.deps)||((e,t,r,s,a)=>!a.isOnAll&&(!r&&a.isOnTouch?!(t||e):(r?s.isOnBlur:a.isOnBlur)?!e:!(r?s.isOnChange:a.isOnChange)||e))(_,g(s.touchedFields,i),s.isSubmitted,F,V),p=!_&&k(i);I(m,i,h);const x=N(i,h,_,!1),S=!E(x)||p;if(!_&&j.watch.next({name:i,type:e}),v)return S&&j.state.next(Object.assign({name:i},p?{}:x));if(!_&&p&&j.state.next({}),A[i]=(A[i],1),O.isValidating&&j.state.next({isValidating:!0}),r.resolver){const{errors:e}=await T([i]);if(f=g(e,i),a(t)&&!f){const t=l(i),r=g(o,t);if(Array.isArray(r)&&r.every(e=>e._f&&a(e._f.ref))){const r=g(e,t,{});r.type&&(f=r),i=t}}b=E(e)}else f=(await Ce(c,g(m,i),w,r.shouldUseNativeValidation))[i],b=await $(!0);c._f.deps&&G(c._f.deps),C(!1,i,b,f,x)}var d},R=(e,t,r)=>{const s=g(o,e);if(s){const a=g(m,e),n=f(a)?g(b,e):a;f(n)||t&&t.defaultChecked||r?I(m,e,r?n:Oe(s._f)):M(e,n)}_&&$()},W=(e,t)=>(e&&t&&I(m,e,t),!te(Object.assign({},J()),b)),$=async e=>{let t=!1;return O.isValid&&(t=r.resolver?E((await T()).errors):await U(o,!0),e||t===s.isValid||(s.isValid=t,j.state.next({isValid:t}))),t},q=(e,t,r)=>Object.entries(t).forEach(([t,s])=>{const a=`${e}.${t}`,i=g(o,a);!x.array.has(e)&&ee(s)&&(!i||i._f)||n(s)?M(a,s,r,!0):q(a,s,r)}),H=(e,t,r,s)=>{const a=Object.assign({},r||_?m:f(t)?b:le(e)?{[e]:t}:t);if(!e)return s&&(x.watchAll=!0),a;const n=[];for(const t of B(e))s&&x.watch.add(t),n.push(g(a,t));return Array.isArray(e)?n:n[0]},z=(e,t="")=>{for(const r in e){const s=e[r],a=t+(t?".":"")+r,n=g(o,a);n&&n._f||(u(s)&&Object.keys(s).length||Array.isArray(s)&&s.length?z(s,a):n||I(m,a,s))}},G=async(e,t={})=>{const a=B(e);let n;if(j.state.next({isValidating:!0}),r.resolver){const t=await(async e=>{const{errors:t}=await T();if(e)for(const r of e){const e=g(t,r);e?I(s.errors,r,e):be(s.errors,r)}else s.errors=t;return t})(f(e)?e:a);n=e?a.every(e=>!g(t,e)):E(t)}else e?(n=(await Promise.all(a.map(async e=>{const t=g(o,e);return await U(t._f?{[e]:t}:t)}))).every(Boolean),$()):n=await U(o);return j.state.next(Object.assign(Object.assign({},le(e)?{name:e}:{}),{errors:s.errors,isValid:n,isValidating:!1})),t.shouldFocus&&!n&&L(o,e=>g(s.errors,e),e?a:x.mount),n},J=e=>{const t=Object.assign(Object.assign({},b),m);return f(e)?t:le(e)?g(t,e):e.map(e=>g(t,e))},K=(e,t={})=>{for(const a of e?B(e):x.mount)x.mount.delete(a),x.array.delete(a),g(o,a)&&(t.keepValue||(be(o,a),be(m,a)),!t.keepError&&be(s.errors,a),!t.keepDirty&&be(s.dirtyFields,a),!t.keepTouched&&be(s.touchedFields,a),!r.shouldUnregister&&!t.keepDefaultValue&&be(b,a));j.watch.next({}),j.state.next(Object.assign(Object.assign({},s),t.keepDirty?{isDirty:W()}:{})),!t.keepIsValid&&$()},Q=(e,t,r)=>{X(e,r);let s=g(o,e);const n=f(t.value)&&t.querySelectorAll&&t.querySelectorAll("input,select,textarea")[0]||t,i=(e=>ue(e)||a(e))(n);n===s._f.ref||i&&d(s._f.refs||[]).find(e=>e===n)||(s={_f:i?Object.assign(Object.assign({},s._f),{refs:[...d(s._f.refs||[]).filter(e=>ie(e)&&document.contains(e)),n],ref:{type:n.type,name:e}}):Object.assign(Object.assign({},s._f),{ref:n})},I(o,e,s),(!r||!r.disabled)&&R(e,n))},X=(e,t={})=>{const s=g(o,e);return I(o,e,{_f:Object.assign(Object.assign(Object.assign({},s&&s._f?s._f:{ref:{name:e}}),{name:e,mount:!0}),t)}),t.value&&I(m,e,t.value),se(t.disabled)&&s&&I(m,e,t.disabled?void 0:g(m,e,Oe(s._f))),x.mount.add(e),!s&&R(e,void 0,!0),Me?{name:e}:Object.assign(Object.assign({name:e},f(t.disabled)?{}:{disabled:t.disabled}),{onChange:P,onBlur:P,ref:s=>{if(s)Q(e,s,t);else{const s=g(o,e,{}),a=r.shouldUnregister||t.shouldUnregister;s._f&&(s._f.mount=!1),a&&(!c(x.array,e)||!h)&&x.unMount.add(e)}}})};return{control:{register:X,unregister:K,_getWatch:H,_getIsDirty:W,_updateValid:$,_updateValues:z,_removeFields:()=>{for(const e of x.unMount){const t=g(o,e);t&&(t._f.refs?t._f.refs.every(de):de(t._f.ref))&&K(e)}x.unMount=new Set},_updateFieldArray:(e,t,r,a,n=[],i=!0,u=!0)=>{let l;const c=fe(n,e);if(h=!0,u&&g(o,t)&&(l=r(g(o,t),a.argA,a.argB),i&&I(o,t,l)),l=r(g(m,t),a.argA,a.argB),i&&I(m,t,l),Array.isArray(g(s.errors,t))){const e=r(g(s.errors,t),a.argA,a.argB);i&&I(s.errors,t,e),Fe(s.errors,t)}if(O.touchedFields&&g(s.touchedFields,t)){const e=r(g(s.touchedFields,t),a.argA,a.argB);i&&I(s.touchedFields,t,e),Fe(s.touchedFields,t)}(O.dirtyFields||O.isDirty)&&(I(s.dirtyFields,t,Ve(fe(c,e),g(b,t,[]),g(s.dirtyFields,t,[]))),c&&I(s.dirtyFields,t,Ve(fe(c,e),g(b,t,[]),g(s.dirtyFields,t,[]))),Fe(s.dirtyFields,t)),j.state.next({isDirty:W(t,fe(c,e)),dirtyFields:s.dirtyFields,errors:s.errors,isValid:s.isValid})},_getFieldArrayValue:e=>g(_?m:b,e,[]),_subjects:j,_shouldUnregister:r.shouldUnregister,_proxyFormState:O,get _fields(){return o},set _fields(e){o=e},get _formValues(){return m},set _formValues(e){m=e},get _isMounted(){return _},set _isMounted(e){_=e},get _defaultValues(){return b},set _defaultValues(e){b=e},get _names(){return x},set _names(e){x=e},get _isInAction(){return h},set _isInAction(e){h=e},get _formState(){return s},set _formState(e){s=e},_updateProps:e=>{r=Object.assign(Object.assign({},Ee),e)}},trigger:G,register:X,handleSubmit:(e,t)=>async a=>{a&&(a.preventDefault&&a.preventDefault(),a.persist&&a.persist());let n=!0,i=Object.assign({},m);j.state.next({isSubmitting:!0});try{if(r.resolver){const{errors:e,values:t}=await T();s.errors=e,i=t}else await U(o);E(s.errors)&&Object.keys(s.errors).every(e=>g(i,e))?(j.state.next({errors:{},isSubmitting:!0}),await e(i,a)):(t&&await t(s.errors,a),r.shouldFocusError&&L(o,e=>g(s.errors,e),x.mount))}catch(e){throw n=!1,e}finally{s.isSubmitted=!0,j.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:E(s.errors)&&n,submitCount:s.submitCount+1,errors:s.errors})}},watch:(e,t)=>ne(e)?j.watch.subscribe({next:r=>e(H(void 0,t),r)}):H(e,t,!1,!0),setValue:(e,t,r={})=>{const a=g(o,e),n=x.array.has(e);I(m,e,t),n?(j.array.next({name:e,values:m}),(O.isDirty||O.dirtyFields)&&r.shouldDirty&&(I(s.dirtyFields,e,Ve(t,g(b,e,[]),g(s.dirtyFields,e,[]))),j.state.next({name:e,dirtyFields:s.dirtyFields,isDirty:W(e,t)}))):!a||a._f||i(t)?M(e,t,r,!0):q(e,t,r),k(e)&&j.state.next({}),j.watch.next({name:e})},getValues:J,reset:(e,t={})=>{const r=e||b,a=function e(t){let r;const s=Array.isArray(t);if(t instanceof Date)r=new Date(t.getTime());else{if(!s&&!u(t))return t;r=s?[]:{};for(const s in t)r[s]=e(t[s])}return r}(r);if(m=a,ce&&!t.keepValues)for(const e of x.mount){const t=g(o,e);if(t&&t._f){const e=Array.isArray(t._f.refs)?t._f.refs[0]:t._f.ref;try{ie(e)&&e.closest("form").reset();break}catch(e){}}}t.keepDefaultValues||(b=Object.assign({},r)),t.keepValues||(o={},j.control.next({values:t.keepDefaultValues?b:Object.assign({},r)}),j.watch.next({}),j.array.next({values:a})),x={mount:new Set,unMount:new Set,array:new Set,watch:new Set,watchAll:!1,focus:""},j.state.next({submitCount:t.keepSubmitCount?s.submitCount:0,isDirty:t.keepDirty?s.isDirty:!!t.keepDefaultValues&&te(e,b),isSubmitted:!!t.keepIsSubmitted&&s.isSubmitted,dirtyFields:t.keepDirty?s.dirtyFields:{},touchedFields:t.keepTouched?s.touchedFields:{},errors:t.keepErrors?s.errors:{},isSubmitting:!1,isSubmitSuccessful:!1}),_=!!t.keepIsValid},clearErrors:e=>{e?B(e).forEach(e=>be(s.errors,e)):s.errors={},j.state.next({errors:s.errors})},unregister:K,setError:(e,t,r)=>{const a=(g(o,e,{_f:{}})._f||{}).ref;I(s.errors,e,Object.assign(Object.assign({},t),{ref:a})),j.state.next({name:e,errors:s.errors,isValid:!1}),r&&r.shouldFocus&&a&&a.focus&&a.focus()},setFocus:e=>g(o,e)._f.ref.focus()}}e.Controller=e=>e.render(P(e)),e.FormProvider=e=>s.createElement(k.Provider,{value:S(e,"children")},e.children),e.appendErrors=R,e.get=g,e.set=I,e.useController=P,e.useFieldArray=e=>{const t=D(),{control:r=t.control,name:a,keyName:n="id",shouldUnregister:i}=e,[o,u]=s.useState(H(r._getFieldArrayValue(a),n)),l=s.useRef(o);l.current=o,r._names.array.add(a);return s.useEffect(()=>{if(r._isInAction=!1,r._names.watchAll)r._subjects.state.next({});else for(const e of r._names.watch)if(a.startsWith(e)){r._subjects.state.next({});break}r._subjects.watch.next({name:a,values:r._formValues}),r._names.focus&&L(r._fields,e=>e.startsWith(r._names.focus)),r._names.focus="",r._proxyFormState.isValid&&r._updateValid()},[o,a,r,n]),s.useEffect(()=>{const e=r._subjects.array.subscribe({next({values:e,name:t}){t!==a&&t||u(H(g(e,a),n))}});return!g(r._formValues,a)&&I(r._formValues,a,[]),()=>{e.unsubscribe(),(r._shouldUnregister||i)&&r.unregister(a)}},[a,r,n,i]),{swap:s.useCallback((e,t)=>{const s=$(r._getFieldArrayValue(a),l,n);Y(s,e,t),u(s),r._updateFieldArray(n,a,Y,{argA:e,argB:t},s,!1)},[a,r,n]),move:s.useCallback((e,t)=>{const s=$(r._getFieldArrayValue(a),l,n);K(s,e,t),u(s),r._updateFieldArray(n,a,K,{argA:e,argB:t},s,!1)},[a,r,n]),prepend:s.useCallback((e,t)=>{const s=Q($(r._getFieldArrayValue(a),l,n),H(B(e),n));u(s),r._updateFieldArray(n,a,Q,{argA:G(e)},s),r._names.focus=W(a,0,t)},[a,r,n]),append:s.useCallback((e,t)=>{const s=B(e),i=z($(r._getFieldArrayValue(a),l,n),H(B(e),n));u(i),r._updateFieldArray(n,a,z,{argA:G(e)},i),r._names.focus=W(a,i.length-s.length,t)},[a,r,n]),remove:s.useCallback(e=>{const t=X($(r._getFieldArrayValue(a),l,n),e);u(t),r._updateFieldArray(n,a,X,{argA:e},t)},[a,r,n]),insert:s.useCallback((e,t,s)=>{const i=J($(r._getFieldArrayValue(a),l,n),e,H(B(t),n));u(i),r._updateFieldArray(n,a,J,{argA:e,argB:G(t)},i),r._names.focus=W(a,e,s)},[a,r,n]),update:s.useCallback((e,t)=>{const s=$(r._getFieldArrayValue(a),l,n),i=Z(s,e,t);l.current=H(i,n),u(l.current),r._updateFieldArray(n,a,Z,{argA:e,argB:t},s,!0,!1)},[a,r,n]),replace:s.useCallback(e=>{const t=H(B(e),n);u(t),r._updateFieldArray(n,a,()=>t,{},t,!0,!1)},[a,r,n]),fields:o}},e.useForm=function(e={}){const t=s.useRef(),[r,a]=s.useState({isDirty:!1,isValidating:!1,dirtyFields:{},isSubmitted:!1,submitCount:0,touchedFields:{},isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,errors:{}});t.current?t.current.control._updateProps(e):t.current=Object.assign(Object.assign({},Be(e)),{formState:r});const n=t.current.control;return s.useEffect(()=>{const e=n._subjects.state.subscribe({next(e){M(e,n._proxyFormState,!0)&&(n._formState=Object.assign(Object.assign({},n._formState),e),a(Object.assign({},n._formState)))}});return()=>{e.unsubscribe()}},[n]),s.useEffect(()=>{n._isMounted||(n._isMounted=!0,n._proxyFormState.isValid&&n._updateValid(),!e.shouldUnregister&&n._updateValues(n._defaultValues)),n._removeFields()}),t.current.formState=C(r,n._proxyFormState),t.current},e.useFormContext=D,e.useFormState=N,e.useWatch=function(e){const t=D(),{control:r=t.control,name:a,defaultValue:n,disabled:i}=e||{},o=s.useRef(a);o.current=a;const[l,c]=s.useState(f(n)?r._getWatch(a):n);return s.useEffect(()=>{const e=r._subjects.watch.subscribe({next:({name:e})=>{if(!o.current||!e||B(o.current).some(t=>e&&t&&(t.startsWith(e)||e.startsWith(t)))){const e=r._getWatch(o.current,n,!0);c(u(e)?Object.assign({},e):Array.isArray(e)?[...e]:e)}}});return i&&e.unsubscribe(),()=>e.unsubscribe()},[i,r,n]),s.useEffect(()=>{r._removeFields()}),l},Object.defineProperty(e,"__esModule",{value:!0})}));
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactHookForm={},e.React)}(this,(function(e,t){"use strict";function r(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=r(t),a=e=>"checkbox"===e.type,n=e=>e instanceof Date,i=e=>null==e;const o=e=>"object"==typeof e;var u=e=>!i(e)&&!Array.isArray(e)&&o(e)&&!n(e),l=e=>e.substring(0,e.search(/.\d/))||e,c=(e,t)=>[...e].some(e=>l(t)===e),d=e=>e.filter(Boolean),f=e=>void 0===e,g=(e,t,r)=>{if(u(e)&&t){const s=d(t.split(/[,[\].]+?/)).reduce((e,t)=>i(e)?e:e[t],e);return f(s)||s===e?f(e[t])?r:e[t]:s}};const y="blur",m="change",b="onBlur",h="onChange",_="onSubmit",p="onTouched",v="all",x="max",A="min",O="maxLength",V="minLength",j="pattern",F="required",w="validate";var S=(e,t)=>{const r=Object.assign({},e);return delete r[t],r};const k=s.createContext(null);k.displayName="RHFContext";const D=()=>s.useContext(k);var C=(e,t,r,s=!0)=>{function a(a){return()=>{if(a in e)return t[a]!==v&&(t[a]=!s||v),r&&(r[a]=!0),e[a]}}const n={};for(const t in e)Object.defineProperty(n,t,{get:a(t)});return n},E=e=>u(e)&&!Object.keys(e).length,M=(e,t,r)=>{const s=S(e,"name");return E(s)||Object.keys(s).length>=Object.keys(t).length||Object.keys(s).find(e=>t[e]===(!r||v))},B=e=>Array.isArray(e)?e:[e];function N(e){const t=D(),{control:r=t.control,disabled:a,name:n}=e||{},i=s.useRef(n),[o,u]=s.useState(r._formState),l=s.useRef({isDirty:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1});return i.current=n,s.useEffect(()=>{const e=r._subjects.state.subscribe({next:e=>(!i.current||!e.name||B(i.current).includes(e.name))&&M(e,l.current)&&u(Object.assign(Object.assign({},r._formState),e))});return a&&e.unsubscribe(),()=>e.unsubscribe()},[a,r]),C(o,r._proxyFormState,l.current,!1)}function T(e){const t=D(),{name:r,control:n=t.control,shouldUnregister:i}=e,[o,l]=s.useState(g(n._formValues,r,g(n._defaultValues,r,e.defaultValue))),d=N({control:n||t.control,name:r}),f=n.register(r,Object.assign(Object.assign({},e.rules),{value:o})),b=s.useCallback((e,t)=>{const r=g(n._fields,e);r&&(r._f.mount=t)},[n]);return s.useEffect(()=>{const e=n._subjects.control.subscribe({next:e=>(!e.name||r===e.name)&&l(g(e.values,r))});return b(r,!0),()=>{e.unsubscribe();const t=n._shouldUnregister||i;(c(n._names.array,r)?t&&!n._isInAction:t)?n.unregister(r):b(r,!1)}},[r,n,i,b]),{field:{onChange:e=>{const t=(e=>u(e)&&e.target?a(e.target)?e.target.checked:e.target.value:e)(e);l(t),f.onChange({target:{value:t,name:r},type:m})},onBlur:()=>{f.onBlur({target:{value:o,name:r},type:y})},name:r,value:o,ref:e=>{const t=g(n._fields,r);e&&t&&e.focus&&(t._f.ref={focus:()=>e.focus(),setCustomValidity:t=>e.setCustomValidity(t),reportValidity:()=>e.reportValidity()})}},formState:d,fieldState:{invalid:!!g(d.errors,r),isDirty:!!g(d.dirtyFields,r),isTouched:!!g(d.touchedFields,r),error:g(d.errors,r)}}}var U=(e,t,r,s,a)=>t?Object.assign(Object.assign({},r[e]),{types:Object.assign(Object.assign({},r[e]&&r[e].types?r[e].types:{}),{[s]:a||!0})}):{},I=e=>/^\w*$/.test(e),P=e=>d(e.replace(/["|']|\]/g,"").split(/\.|\[/));function R(e,t,r){let s=-1;const a=I(t)?[t]:P(t),n=a.length,i=n-1;for(;++s<n;){const t=a[s];let n=r;if(s!==i){const r=e[t];n=u(r)||Array.isArray(r)?r:isNaN(+a[s+1])?{}:[]}e[t]=n,e=e[t]}return e}const L=(e,t,r)=>{for(const s of r||Object.keys(e)){const r=g(e,s);if(r){const e=r._f,s=S(r,"_f");if(e&&t(e.name)){if(e.ref.focus&&f(e.ref.focus()))break;if(e.refs){e.refs[0].focus();break}}else u(s)&&L(s,t)}}};var W=(e,t,r)=>r&&!r.shouldFocus?r.focusName||`${e}.${r.focusIndex}.`:`${e}.${t}.`,$=(e,t,r)=>e.map((e,s)=>{const a=t.current[s];return Object.assign(Object.assign({},e),a?{[r]:a[r]}:{})}),q=()=>{const e="undefined"==typeof performance?Date.now():1e3*performance.now();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{const r=(16*Math.random()+e)%16|0;return("x"==t?r:3&r|8).toString(16)})},H=(e=[],t)=>e.map(e=>Object.assign(Object.assign({},e[t]?{}:{[t]:q()}),e));function z(e,t){return[...B(e),...B(t)]}var G=e=>Array.isArray(e)?e.map(()=>{}):void 0;function J(e,t,r){return[...e.slice(0,t),...B(r),...e.slice(t)]}var K=(e,t,r)=>Array.isArray(e)?(f(e[r])&&(e[r]=void 0),e.splice(r,0,e.splice(t,1)[0]),e):[];function Q(e,t){return[...B(t),...B(e)]}var X=(e,t)=>f(t)?[]:function(e,t){let r=0;const s=[...e];for(const e of t)s.splice(e-r,1),r++;return d(s).length?s:[]}(e,B(t).sort((e,t)=>e-t)),Y=(e,t,r)=>{e[t]=[e[r],e[r]=e[t]][0]},Z=(e,t,r)=>(e[t]=r,e);var ee=e=>i(e)||!o(e);function te(e,t){if(ee(e)||ee(t)||n(e)||n(t))return e===t;const r=Object.keys(e),s=Object.keys(t);if(r.length!==s.length)return!1;for(const a of r){const r=e[a];if(!s.includes(a))return!1;if("ref"!==a){const e=t[a];if((u(r)||Array.isArray(r))&&(u(e)||Array.isArray(e))?!te(r,e):r!==e)return!1}}return!0}var re=e=>({isOnSubmit:!e||e===_,isOnBlur:e===b,isOnChange:e===h,isOnAll:e===v,isOnTouch:e===p}),se=e=>"boolean"==typeof e,ae=e=>"file"===e.type,ne=e=>"function"==typeof e,ie=e=>e instanceof HTMLElement,oe=e=>"select-multiple"===e.type,ue=e=>"radio"===e.type,le=e=>"string"==typeof e,ce="undefined"!=typeof window&&void 0!==window.HTMLElement&&"undefined"!=typeof document,de=e=>!ie(e)||!document.contains(e),fe=(e,t)=>e.map((e={})=>S(e,t));class ge{constructor(){this.tearDowns=[]}add(e){this.tearDowns.push(e)}unsubscribe(){for(const e of this.tearDowns)e();this.tearDowns=[]}}class ye{constructor(e,t){this.observer=e,this.closed=!1,t.add(()=>this.closed=!0)}next(e){this.closed||this.observer.next(e)}}class me{constructor(){this.observers=[]}next(e){for(const t of this.observers)t.next(e)}subscribe(e){const t=new ge,r=new ye(e,t);return this.observers.push(r),t}unsubscribe(){this.observers=[]}}function be(e,t){const r=I(t)?[t]:P(t),s=1==r.length?e:function(e,t){const r=t.slice(0,-1).length;let s=0;for(;s<r;)e=f(e)?s++:e[t[s++]];return e}(e,r),a=r[r.length-1];let n;s&&delete s[a];for(let t=0;t<r.slice(0,-1).length;t++){let s,a=-1;const i=r.slice(0,-(t+1)),o=i.length-1;for(t>0&&(n=e);++a<i.length;){const t=i[a];s=s?s[t]:e[t],o===a&&(u(s)&&E(s)||Array.isArray(s)&&!s.filter(e=>u(e)&&!E(e)||se(e)).length)&&(n?delete n[t]:delete e[t]),n=s}}return e}const he={value:!1,isValid:!1},_e={value:!0,isValid:!0};var pe=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(e=>e&&e.checked&&!e.disabled).map(e=>e.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!f(e[0].attributes.value)?f(e[0].value)||""===e[0].value?_e:{value:e[0].value,isValid:!0}:_e:he}return he},ve=(e,{valueAsNumber:t,valueAsDate:r,setValueAs:s})=>f(e)?e:t?""===e?NaN:+e:r?new Date(e):s?s(e):e;const xe={isValid:!1,value:null};var Ae=e=>Array.isArray(e)?e.reduce((e,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:e,xe):xe;function Oe(e){const t=e.ref;var r;if(!(e.refs?e.refs.every(e=>e.disabled):t.disabled))return ae(t)?t.files:ue(t)?Ae(e.refs).value:oe(t)?(r=t.options,[...r].filter(({selected:e})=>e).map(({value:e})=>e)):a(t)?pe(e.refs).value:ve(f(t.value)?e.ref.value:t.value,e)}function Ve(e,t,r,s,a){let n=-1;for(;++n<e.length;){for(const s in e[n])Array.isArray(e[n][s])?(!r[n]&&(r[n]={}),r[n][s]=[],Ve(e[n][s],g(t[n]||{},s,[]),r[n][s],r[n],s)):!i(t)&&te(g(t[n]||{},s),e[n][s])?R(r[n]||{},s):r[n]=Object.assign(Object.assign({},r[n]),{[s]:!0});s&&!r.length&&delete s[a]}return r}var je=(e,t,r)=>function e(t,r){if(ee(t)||ee(r))return r;for(const s in r){const a=t[s],n=r[s];try{t[s]=u(a)&&u(n)||Array.isArray(a)&&Array.isArray(n)?e(a,n):n}catch(e){}}return t}(Ve(e,t,r.slice(0,e.length)),Ve(t,e,r.slice(0,e.length))),Fe=(e,t)=>!d(g(e,t,[])).length&&be(e,t),we=e=>le(e)||s.isValidElement(e),Se=e=>e instanceof RegExp;function ke(e,t,r="validate"){if(we(e)||Array.isArray(e)&&e.every(we)||se(e)&&!e)return{type:r,message:we(e)?e:"",ref:t}}var De=e=>u(e)&&!Se(e)?e:{value:e,message:""},Ce=async(e,t,r,s)=>{const{ref:n,refs:o,required:l,maxLength:c,minLength:d,min:f,max:g,pattern:y,validate:m,name:b,valueAsNumber:h,mount:_,disabled:p}=e._f;if(!_||p)return{};const v=o?o[0]:n,S=e=>{s&&v.reportValidity&&(v.setCustomValidity(se(e)?"":e||" "),v.reportValidity())},k={},D=ue(n),C=a(n),M=D||C,B=(h||ae(n))&&!n.value||""===t||Array.isArray(t)&&!t.length,N=U.bind(null,b,r,k),T=(e,t,r,s=O,a=V)=>{const i=e?t:r;k[b]=Object.assign({type:e?s:a,message:i,ref:n},N(e?s:a,i))};if(l&&(!M&&(B||i(t))||se(t)&&!t||C&&!pe(o).isValid||D&&!Ae(o).isValid)){const{value:e,message:t}=we(l)?{value:!!l,message:l}:De(l);if(e&&(k[b]=Object.assign({type:F,message:t,ref:v},N(F,t)),!r))return S(t),k}if(!(B||i(f)&&i(g))){let e,s;const a=De(g),o=De(f);if(isNaN(t)){const r=n.valueAsDate||new Date(t);le(a.value)&&(e=r>new Date(a.value)),le(o.value)&&(s=r<new Date(o.value))}else{const r=n.valueAsNumber||parseFloat(t);i(a.value)||(e=r>a.value),i(o.value)||(s=r<o.value)}if((e||s)&&(T(!!e,a.message,o.message,x,A),!r))return S(k[b].message),k}if((c||d)&&!B&&le(t)){const e=De(c),s=De(d),a=!i(e.value)&&t.length>e.value,n=!i(s.value)&&t.length<s.value;if((a||n)&&(T(a,e.message,s.message),!r))return S(k[b].message),k}if(y&&!B&&le(t)){const{value:e,message:s}=De(y);if(Se(e)&&!t.match(e)&&(k[b]=Object.assign({type:j,message:s,ref:n},N(j,s)),!r))return S(s),k}if(m)if(ne(m)){const e=ke(await m(t),v);if(e&&(k[b]=Object.assign(Object.assign({},e),N(w,e.message)),!r))return S(e.message),k}else if(u(m)){let e={};for(const s in m){if(!E(e)&&!r)break;const a=ke(await m[s](t),v,s);a&&(e=Object.assign(Object.assign({},a),N(s,a.message)),S(a.message),r&&(k[b]=e))}if(!E(e)&&(k[b]=Object.assign({ref:v},e),!r))return k}return S(!0),k};const Ee={mode:_,reValidateMode:h,shouldFocusError:!0},Me="undefined"==typeof window;function Be(e={}){let t,r=Object.assign(Object.assign({},Ee),e),s={isDirty:!1,isValidating:!1,dirtyFields:{},isSubmitted:!1,submitCount:0,touchedFields:{},isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,errors:{}},o={},m={},b=r.defaultValues||{},h=!1,_=!1,p=0,x={mount:new Set,unMount:new Set,array:new Set,watch:new Set},A={};const O={isDirty:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},V={watch:new me,control:new me,array:new me,state:new me},j=re(r.mode),F=re(r.reValidateMode),w=r.criteriaMode===v,k=e=>x.watchAll||x.watch.has(e)||x.watch.has((e.match(/\w+/)||[])[0]),D=(e,t)=>{R(s.errors,e,t),V.state.next({errors:s.errors})},C=async(r,a,n,i,o)=>{const u=g(s.errors,a),l=O.isValid&&s.isValid!==n;var c,d;if(e.delayError&&i?(t=t||(c=D,d=e.delayError,(...e)=>{clearTimeout(p),p=window.setTimeout(()=>c(...e),d)}),t(a,i)):(clearTimeout(p),i?R(s.errors,a,i):be(s.errors,a)),((i?!te(u,i):u)||!E(o)||l)&&!r){const e=Object.assign(Object.assign(Object.assign({},o),l?{isValid:n}:{}),{errors:s.errors,name:a});s=Object.assign(Object.assign({},s),e),V.state.next(e)}A[a]--,O.isValidating&&!A[a]&&(V.state.next({isValidating:!1}),A={})},M=(e,t,r={},s)=>{const n=g(o,e);if(n){const o=n._f;if(o){R(m,e,ve(t,o));const n=ce&&ie(o.ref)&&i(t)?"":t;ae(o.ref)&&!le(n)?o.ref.files=n:oe(o.ref)?[...o.ref.options].forEach(e=>e.selected=n.includes(e.value)):o.refs?a(o.ref)?o.refs.length>1?o.refs.forEach(e=>e.checked=Array.isArray(n)?!!n.find(t=>t===e.value):n===e.value):o.refs[0].checked=!!n:o.refs.forEach(e=>e.checked=e.value===n):o.ref.value=n,s&&V.control.next({values:J(),name:e}),(r.shouldDirty||r.shouldTouch)&&N(e,n,r.shouldTouch),r.shouldValidate&&G(e)}}},N=(e,t,r,a=!0)=>{const n={name:e};let i=!1;if(O.isDirty){const e=s.isDirty;s.isDirty=W(),n.isDirty=s.isDirty,i=e!==n.isDirty}if(O.dirtyFields&&!r){const r=g(s.dirtyFields,e);!te(g(b,e),t)?R(s.dirtyFields,e,!0):be(s.dirtyFields,e),n.dirtyFields=s.dirtyFields,i=i||r!==g(s.dirtyFields,e)}const o=g(s.touchedFields,e);return r&&!o&&(R(s.touchedFields,e,r),n.touchedFields=s.touchedFields,i=i||O.touchedFields&&o!==r),i&&a&&V.state.next(n),i?n:{}},T=async e=>r.resolver?await r.resolver(Object.assign({},m),r.context,((e,t,r,s)=>{const a={};for(const r of e){const e=g(t,r);e&&R(a,r,e._f)}return{criteriaMode:r,names:[...e],fields:a,shouldUseNativeValidation:s}})(e||x.mount,o,r.criteriaMode,r.shouldUseNativeValidation)):{},U=async(e,t,a={valid:!0})=>{for(const n in e){const i=e[n];if(i){const e=i._f,n=S(i,"_f");if(e){const n=await Ce(i,g(m,e.name),w,r.shouldUseNativeValidation);if(n[e.name]&&(a.valid=!1,t))break;t||(n[e.name]?R(s.errors,e.name,n[e.name]):be(s.errors,e.name))}n&&await U(n,t,a)}}return a.valid},I=async({type:e,target:t,target:{value:n,name:i,type:u}})=>{const c=g(o,i);if(c){let f,b;const h=u?Oe(c._f):n,_=e===y,p=!((d=c._f).mount&&(d.required||d.min||d.max||d.maxLength||d.minLength||d.pattern||d.validate)||r.resolver||g(s.errors,i)||c._f.deps)||((e,t,r,s,a)=>!a.isOnAll&&(!r&&a.isOnTouch?!(t||e):(r?s.isOnBlur:a.isOnBlur)?!e:!(r?s.isOnChange:a.isOnChange)||e))(_,g(s.touchedFields,i),s.isSubmitted,F,j),v=!_&&k(i);R(m,i,h);const x=N(i,h,_,!1),S=!E(x)||v;if(!_&&V.watch.next({name:i,type:e}),p)return S&&V.state.next(Object.assign({name:i},v?{}:x));if(!_&&v&&V.state.next({}),A[i]=(A[i],1),O.isValidating&&V.state.next({isValidating:!0}),r.resolver){const{errors:e}=await T([i]);if(f=g(e,i),a(t)&&!f){const t=l(i),r=g(o,t);if(Array.isArray(r)&&r.every(e=>e._f&&a(e._f.ref))){const r=g(e,t,{});r.type&&(f=r),i=t}}b=E(e)}else f=(await Ce(c,g(m,i),w,r.shouldUseNativeValidation))[i],b=await $(!0);c._f.deps&&G(c._f.deps),C(!1,i,b,f,x)}var d},P=(e,t,r)=>{const s=g(o,e);if(s){const a=g(m,e),n=f(a)?g(b,e):a;f(n)||t&&t.defaultChecked||r?R(m,e,r?n:Oe(s._f)):M(e,n)}_&&$()},W=(e,t)=>(e&&t&&R(m,e,t),!te(Object.assign({},J()),b)),$=async e=>{let t=!1;return O.isValid&&(t=r.resolver?E((await T()).errors):await U(o,!0),e||t===s.isValid||(s.isValid=t,V.state.next({isValid:t}))),t},q=(e,t,r)=>Object.entries(t).forEach(([t,s])=>{const a=`${e}.${t}`,i=g(o,a);!x.array.has(e)&&ee(s)&&(!i||i._f)||n(s)?M(a,s,r,!0):q(a,s,r)}),H=(e,t,r,s)=>{const a=Object.assign({},r||_?m:f(t)?b:le(e)?{[e]:t}:t);if(!e)return s&&(x.watchAll=!0),a;const n=[];for(const t of B(e))s&&x.watch.add(t),n.push(g(a,t));return Array.isArray(e)?n:n[0]},z=(e,t="")=>{for(const r in e){const s=e[r],a=t+(t?".":"")+r,n=g(o,a);n&&n._f||(u(s)&&Object.keys(s).length||Array.isArray(s)&&s.length?z(s,a):n||R(m,a,s))}},G=async(e,t={})=>{const a=B(e);let n;if(V.state.next({isValidating:!0}),r.resolver){const t=await(async e=>{const{errors:t}=await T();if(e)for(const r of e){const e=g(t,r);e?R(s.errors,r,e):be(s.errors,r)}else s.errors=t;return t})(f(e)?e:a);n=e?a.every(e=>!g(t,e)):E(t)}else e?(n=(await Promise.all(a.map(async e=>{const t=g(o,e);return await U(t._f?{[e]:t}:t)}))).every(Boolean),$()):n=await U(o);return V.state.next(Object.assign(Object.assign({},le(e)?{name:e}:{}),{errors:s.errors,isValid:n,isValidating:!1})),t.shouldFocus&&!n&&L(o,e=>g(s.errors,e),e?a:x.mount),n},J=e=>{const t=Object.assign(Object.assign({},b),_?m:{});return f(e)?t:le(e)?g(t,e):e.map(e=>g(t,e))},K=(e,t={})=>{for(const a of e?B(e):x.mount)x.mount.delete(a),x.array.delete(a),g(o,a)&&(t.keepValue||(be(o,a),be(m,a)),!t.keepError&&be(s.errors,a),!t.keepDirty&&be(s.dirtyFields,a),!t.keepTouched&&be(s.touchedFields,a),!r.shouldUnregister&&!t.keepDefaultValue&&be(b,a));V.watch.next({}),V.state.next(Object.assign(Object.assign({},s),t.keepDirty?{isDirty:W()}:{})),!t.keepIsValid&&$()},Q=(e,t,r)=>{X(e,r);let s=g(o,e);const n=f(t.value)&&t.querySelectorAll&&t.querySelectorAll("input,select,textarea")[0]||t,i=(e=>ue(e)||a(e))(n);n===s._f.ref||i&&d(s._f.refs||[]).find(e=>e===n)||(s={_f:i?Object.assign(Object.assign({},s._f),{refs:[...d(s._f.refs||[]).filter(e=>ie(e)&&document.contains(e)),n],ref:{type:n.type,name:e}}):Object.assign(Object.assign({},s._f),{ref:n})},R(o,e,s),(!r||!r.disabled)&&P(e,n))},X=(e,t={})=>{const s=g(o,e);return R(o,e,{_f:Object.assign(Object.assign(Object.assign({},s&&s._f?s._f:{ref:{name:e}}),{name:e,mount:!0}),t)}),f(t.value)||R(m,e,t.value),se(t.disabled)&&s&&R(m,e,t.disabled?void 0:g(m,e,Oe(s._f))),x.mount.add(e),!s&&P(e,void 0,!0),Me?{name:e}:Object.assign(Object.assign({name:e},f(t.disabled)?{}:{disabled:t.disabled}),{onChange:I,onBlur:I,ref:s=>{if(s)Q(e,s,t);else{const s=g(o,e,{}),a=r.shouldUnregister||t.shouldUnregister;s._f&&(s._f.mount=!1),a&&(!c(x.array,e)||!h)&&x.unMount.add(e)}}})};return{control:{register:X,unregister:K,_getWatch:H,_getIsDirty:W,_updateValid:$,_updateValues:z,_removeFields:()=>{for(const e of x.unMount){const t=g(o,e);t&&(t._f.refs?t._f.refs.every(de):de(t._f.ref))&&K(e)}x.unMount=new Set},_updateFieldArray:(e,t,r,a,n=[],i=!0,u=!0)=>{let l;const c=fe(n,e);if(h=!0,u&&g(o,t)&&(l=r(g(o,t),a.argA,a.argB),i&&R(o,t,l)),l=r(g(m,t),a.argA,a.argB),i&&R(m,t,l),Array.isArray(g(s.errors,t))){const e=r(g(s.errors,t),a.argA,a.argB);i&&R(s.errors,t,e),Fe(s.errors,t)}if(O.touchedFields&&g(s.touchedFields,t)){const e=r(g(s.touchedFields,t),a.argA,a.argB);i&&R(s.touchedFields,t,e),Fe(s.touchedFields,t)}(O.dirtyFields||O.isDirty)&&(R(s.dirtyFields,t,je(fe(c,e),g(b,t,[]),g(s.dirtyFields,t,[]))),c&&R(s.dirtyFields,t,je(fe(c,e),g(b,t,[]),g(s.dirtyFields,t,[]))),Fe(s.dirtyFields,t)),V.state.next({isDirty:W(t,fe(c,e)),dirtyFields:s.dirtyFields,errors:s.errors,isValid:s.isValid})},_getFieldArrayValue:e=>g(_?m:b,e,[]),_subjects:V,_shouldUnregister:r.shouldUnregister,_proxyFormState:O,get _fields(){return o},set _fields(e){o=e},get _formValues(){return m},set _formValues(e){m=e},get _isMounted(){return _},set _isMounted(e){_=e},get _defaultValues(){return b},set _defaultValues(e){b=e},get _names(){return x},set _names(e){x=e},get _isInAction(){return h},set _isInAction(e){h=e},get _formState(){return s},set _formState(e){s=e},_updateProps:e=>{r=Object.assign(Object.assign({},Ee),e)}},trigger:G,register:X,handleSubmit:(e,t)=>async a=>{a&&(a.preventDefault&&a.preventDefault(),a.persist&&a.persist());let n=!0,i=Object.assign({},m);V.state.next({isSubmitting:!0});try{if(r.resolver){const{errors:e,values:t}=await T();s.errors=e,i=t}else await U(o);E(s.errors)&&Object.keys(s.errors).every(e=>g(i,e))?(V.state.next({errors:{},isSubmitting:!0}),await e(i,a)):(t&&await t(s.errors,a),r.shouldFocusError&&L(o,e=>g(s.errors,e),x.mount))}catch(e){throw n=!1,e}finally{s.isSubmitted=!0,V.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:E(s.errors)&&n,submitCount:s.submitCount+1,errors:s.errors})}},watch:(e,t)=>ne(e)?V.watch.subscribe({next:r=>e(H(void 0,t),r)}):H(e,t,!1,!0),setValue:(e,t,r={})=>{const a=g(o,e),n=x.array.has(e);R(m,e,t),n?(V.array.next({name:e,values:m}),(O.isDirty||O.dirtyFields)&&r.shouldDirty&&(R(s.dirtyFields,e,je(t,g(b,e,[]),g(s.dirtyFields,e,[]))),V.state.next({name:e,dirtyFields:s.dirtyFields,isDirty:W(e,t)}))):!a||a._f||i(t)?M(e,t,r,!0):q(e,t,r),k(e)&&V.state.next({}),V.watch.next({name:e})},getValues:J,reset:(t,r={})=>{const a=t||b,n=function e(t){let r;const s=Array.isArray(t);if(t instanceof Date)r=new Date(t.getTime());else{if(!s&&!u(t))return t;r=s?[]:{};for(const s in t)r[s]=e(t[s])}return r}(a);if(r.keepValues||(m=e.shouldUnregister?{}:n),ce&&!r.keepValues)for(const e of x.mount){const t=g(o,e);if(t&&t._f){const e=Array.isArray(t._f.refs)?t._f.refs[0]:t._f.ref;try{ie(e)&&e.closest("form").reset();break}catch(e){}}}r.keepDefaultValues||(b=Object.assign({},a)),r.keepValues||(o={},V.control.next({values:r.keepDefaultValues?b:Object.assign({},a)}),V.watch.next({}),V.array.next({values:n})),x={mount:new Set,unMount:new Set,array:new Set,watch:new Set,watchAll:!1,focus:""},V.state.next({submitCount:r.keepSubmitCount?s.submitCount:0,isDirty:r.keepDirty?s.isDirty:!!r.keepDefaultValues&&te(t,b),isSubmitted:!!r.keepIsSubmitted&&s.isSubmitted,dirtyFields:r.keepDirty?s.dirtyFields:{},touchedFields:r.keepTouched?s.touchedFields:{},errors:r.keepErrors?s.errors:{},isSubmitting:!1,isSubmitSuccessful:!1}),_=!O.isValid||!!r.keepIsValid},clearErrors:e=>{e?B(e).forEach(e=>be(s.errors,e)):s.errors={},V.state.next({errors:s.errors})},unregister:K,setError:(e,t,r)=>{const a=(g(o,e,{_f:{}})._f||{}).ref;R(s.errors,e,Object.assign(Object.assign({},t),{ref:a})),V.state.next({name:e,errors:s.errors,isValid:!1}),r&&r.shouldFocus&&a&&a.focus&&a.focus()},setFocus:e=>g(o,e)._f.ref.focus()}}e.Controller=e=>e.render(T(e)),e.FormProvider=e=>s.createElement(k.Provider,{value:S(e,"children")},e.children),e.appendErrors=U,e.get=g,e.set=R,e.useController=T,e.useFieldArray=e=>{const t=D(),{control:r=t.control,name:a,keyName:n="id",shouldUnregister:i}=e,[o,u]=s.useState(H(r._getFieldArrayValue(a),n)),l=s.useRef(o);l.current=o,r._names.array.add(a);return s.useEffect(()=>{if(r._isInAction=!1,r._names.watchAll)r._subjects.state.next({});else for(const e of r._names.watch)if(a.startsWith(e)){r._subjects.state.next({});break}r._subjects.watch.next({name:a,values:r._formValues}),r._names.focus&&L(r._fields,e=>e.startsWith(r._names.focus)),r._names.focus="",r._proxyFormState.isValid&&r._updateValid()},[o,a,r,n]),s.useEffect(()=>{const e=r._subjects.array.subscribe({next({values:e,name:t}){t!==a&&t||u(H(g(e,a),n))}});return!g(r._formValues,a)&&R(r._formValues,a,[]),()=>{e.unsubscribe(),(r._shouldUnregister||i)&&r.unregister(a)}},[a,r,n,i]),{swap:s.useCallback((e,t)=>{const s=$(r._getFieldArrayValue(a),l,n);Y(s,e,t),u(s),r._updateFieldArray(n,a,Y,{argA:e,argB:t},s,!1)},[a,r,n]),move:s.useCallback((e,t)=>{const s=$(r._getFieldArrayValue(a),l,n);K(s,e,t),u(s),r._updateFieldArray(n,a,K,{argA:e,argB:t},s,!1)},[a,r,n]),prepend:s.useCallback((e,t)=>{const s=Q($(r._getFieldArrayValue(a),l,n),H(B(e),n));u(s),r._updateFieldArray(n,a,Q,{argA:G(e)},s),r._names.focus=W(a,0,t)},[a,r,n]),append:s.useCallback((e,t)=>{const s=B(e),i=z($(r._getFieldArrayValue(a),l,n),H(B(e),n));u(i),r._updateFieldArray(n,a,z,{argA:G(e)},i),r._names.focus=W(a,i.length-s.length,t)},[a,r,n]),remove:s.useCallback(e=>{const t=X($(r._getFieldArrayValue(a),l,n),e);u(t),r._updateFieldArray(n,a,X,{argA:e},t)},[a,r,n]),insert:s.useCallback((e,t,s)=>{const i=J($(r._getFieldArrayValue(a),l,n),e,H(B(t),n));u(i),r._updateFieldArray(n,a,J,{argA:e,argB:G(t)},i),r._names.focus=W(a,e,s)},[a,r,n]),update:s.useCallback((e,t)=>{const s=$(r._getFieldArrayValue(a),l,n),i=Z(s,e,t);l.current=H(i,n),u(l.current),r._updateFieldArray(n,a,Z,{argA:e,argB:t},s,!0,!1)},[a,r,n]),replace:s.useCallback(e=>{const t=H(B(e),n);u(t),r._updateFieldArray(n,a,()=>t,{},t,!0,!1)},[a,r,n]),fields:o}},e.useForm=function(e={}){const t=s.useRef(),[r,a]=s.useState({isDirty:!1,isValidating:!1,dirtyFields:{},isSubmitted:!1,submitCount:0,touchedFields:{},isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,errors:{}});t.current?t.current.control._updateProps(e):t.current=Object.assign(Object.assign({},Be(e)),{formState:r});const n=t.current.control;return s.useEffect(()=>{const e=n._subjects.state.subscribe({next(e){M(e,n._proxyFormState,!0)&&(n._formState=Object.assign(Object.assign({},n._formState),e),a(Object.assign({},n._formState)))}});return()=>{e.unsubscribe()}},[n]),s.useEffect(()=>{n._isMounted||(n._isMounted=!0,n._proxyFormState.isValid&&n._updateValid(),!e.shouldUnregister&&n._updateValues(n._defaultValues)),n._removeFields()}),t.current.formState=C(r,n._proxyFormState),t.current},e.useFormContext=D,e.useFormState=N,e.useWatch=function(e){const t=D(),{control:r=t.control,name:a,defaultValue:n,disabled:i}=e||{},o=s.useRef(a);o.current=a;const[l,c]=s.useState(f(n)?r._getWatch(a):n);return s.useEffect(()=>{const e=r._subjects.watch.subscribe({next:({name:e})=>{if(!o.current||!e||B(o.current).some(t=>e&&t&&(t.startsWith(e)||e.startsWith(t)))){const e=r._getWatch(o.current,n,!0);c(u(e)?Object.assign({},e):Array.isArray(e)?[...e]:e)}}});return i&&e.unsubscribe(),()=>e.unsubscribe()},[i,r,n]),s.useEffect(()=>{r._removeFields()}),l},Object.defineProperty(e,"__esModule",{value:!0})}));
|
2
2
|
//# sourceMappingURL=index.umd.js.map
|