react-hook-form 7.18.0-next.0 → 7.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.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 c=e=>!i(e)&&!Array.isArray(e)&&o(e)&&!n(e),u=e=>e.substring(0,e.search(/.\d/))||e,l=(e,t)=>[...e].some(e=>u(t)===e),d=e=>e.filter(Boolean),f=e=>void 0===e,g=(e,t,r)=>{if(c(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 m="blur",y="change",b="onBlur",h="onChange",_="onSubmit",p="onTouched",v="all",x="max",j="min",F="maxLength",A="minLength",O="pattern",w="required",V="validate";var S=(e,t)=>{const r=Object.assign({},e);return delete r[t],r};const k=s.createContext(null),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=>c(e)&&!Object.keys(e).length,B=(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))},T=e=>Array.isArray(e)?e:[e];const U=e=>{e.current&&(e.current.unsubscribe(),e.current=void 0)};function M(e){const t=s.useRef(),r=s.useRef(()=>{});r.current=(({_unsubscribe:e,props:t})=>()=>{t.disabled?U(e):e.current||(e.current=t.subject.subscribe({next:t.callback}))})({_unsubscribe:t,props:e}),!e.skipEarlySubscription&&r.current(),s.useEffect(()=>(r.current(),()=>U(t)),[])}function N(e){const t=D(),{control:r=t.control,disabled:a,name:n}=e||{},[i,o]=s.useState(r._formState),c=s.useRef({isDirty:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1}),u=s.useRef(n);return u.current=n,M({disabled:a,callback:e=>(!u.current||!e.name||T(u.current).includes(e.name))&&B(e,c.current)&&o(Object.assign(Object.assign({},r._formState),e)),subject:r._subjects.state}),C(i,r._proxyFormState,c.current,!1)}function R(e){const t=D(),{name:r,control:n=t.control,shouldUnregister:i}=e,[o,u]=s.useState(g(n._formValues,r,g(n._defaultValues,r,e.defaultValue))),d=N({control:n||t.control,name:r}),f=s.useRef(r);f.current=r,M({subject:n._subjects.control,callback:e=>(!e.name||f.current===e.name)&&u(g(e.values,f.current))});const b=n.register(r,Object.assign(Object.assign({},e.rules),{value:o})),h=s.useCallback((e,t)=>{const r=g(n._fields,e);r&&(r._f.mount=t)},[n]);return s.useEffect(()=>(h(r,!0),()=>{const e=n._options.shouldUnregister||i;(l(n._names.array,r)?e&&!n._stateFlags.action:e)?n.unregister(r):h(r,!1)}),[r,n,i,h]),{field:{onChange:e=>{const t=(e=>c(e)&&e.target?a(e.target)?e.target.checked:e.target.value:e)(e);u(t),b.onChange({target:{value:t,name:r},type:y})},onBlur:()=>{b.onBlur({target:{value:o,name:r},type:m})},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 L=(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})}):{},W=e=>/^\w*$/.test(e),P=e=>d(e.replace(/["|']|\]/g,"").split(/\.|\[/));function q(e,t,r){let s=-1;const a=W(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=c(r)||Array.isArray(r)?r:isNaN(+a[s+1])?{}:[]}e[t]=n,e=e[t]}return e}const I=(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 c(s)&&I(s,t)}}};var $=(e,t,r={})=>r.shouldFocus||f(r.shouldFocus)?r.focusName||`${e}.${f(r.focusIndex)?t:r.focusIndex}.`:"",H=(e,t,r)=>e.map((e,s)=>{const a=t.current[s];return Object.assign(Object.assign({},e),a?{[r]:a[r]}:{})}),z=()=>{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)})},G=(e=[],t)=>e.map(e=>Object.assign(Object.assign({},e[t]?{}:{[t]:z()}),e));function J(e,t){return[...T(e),...T(t)]}var K=e=>Array.isArray(e)?e.map(()=>{}):void 0;function Q(e,t,r){return[...e.slice(0,t),...T(r),...e.slice(t)]}var X=(e,t,r)=>Array.isArray(e)?(f(e[r])&&(e[r]=void 0),e.splice(r,0,e.splice(t,1)[0]),e):[];function Y(e,t){return[...T(t),...T(e)]}var Z=(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,T(t).sort((e,t)=>e-t)),ee=(e,t,r)=>{e[t]=[e[r],e[r]=e[t]][0]},te=(e,t,r)=>(e[t]=r,e);var re=e=>"function"==typeof e;function se(e){let t;const r=Array.isArray(e);if(e instanceof Date)t=new Date(e);else if(e instanceof Set)t=new Set(e);else{if(!r&&!c(e))return e;t=r?[]:{};for(const r in e){if(re(e[r])){t=e;break}t[r]=se(e[r])}}return t}var ae=e=>i(e)||!o(e);function ne(e,t){if(ae(e)||ae(t))return e===t;if(n(e)&&n(t))return e.getTime()===t.getTime();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(n(r)&&n(e)||c(r)&&c(e)||Array.isArray(r)&&Array.isArray(e)?!ne(r,e):r!==e)return!1}}return!0}var ie=e=>({isOnSubmit:!e||e===_,isOnBlur:e===b,isOnChange:e===h,isOnAll:e===v,isOnTouch:e===p}),oe=e=>"boolean"==typeof e,ce=e=>e instanceof HTMLElement,ue=e=>"select-multiple"===e.type,le=e=>"radio"===e.type,de=e=>"string"==typeof e,fe="undefined"!=typeof window&&void 0!==window.HTMLElement&&"undefined"!=typeof document,ge=e=>!ce(e)||!document.contains(e);class me{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 be{constructor(){this.observers=[]}next(e){for(const t of this.observers)t.next(e)}subscribe(e){const t=new me,r=new ye(e,t);return this.observers.push(r),t}unsubscribe(){this.observers=[]}}function he(e,t){const r=W(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&&(c(s)&&E(s)||Array.isArray(s)&&!s.filter(e=>c(e)&&!E(e)||oe(e)).length)&&(n?delete n[t]:delete e[t]),n=s}}return e}var _e=e=>"file"===e.type;const pe={value:!1,isValid:!1},ve={value:!0,isValid:!0};var xe=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?ve:{value:e[0].value,isValid:!0}:ve:pe}return pe},je=(e,{valueAsNumber:t,valueAsDate:r,setValueAs:s})=>f(e)?e:t?""===e?NaN:+e:r?new Date(e):s?s(e):e;const Fe={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,Fe):Fe;function Oe(e){const t=e.ref;if(!(e.refs?e.refs.every(e=>e.disabled):t.disabled))return _e(t)?t.files:le(t)?Ae(e.refs).value:ue(t)?[...t.selectedOptions].map(({value:e})=>e):a(t)?xe(e.refs).value:je(f(t.value)?e.ref.value:t.value,e)}function we(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]=[],we(e[n][s],g(t[n]||{},s,[]),r[n][s],r[n],s)):!i(t)&&ne(g(t[n]||{},s),e[n][s])?q(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(ae(t)||ae(r))return r;for(const s in r){const a=t[s],n=r[s];try{t[s]=c(a)&&c(n)||Array.isArray(a)&&Array.isArray(n)?e(a,n):n}catch(e){}}return t}(we(e,t,r.slice(0,e.length)),we(t,e,r.slice(0,e.length))),Se=(e,t)=>!d(g(e,t,[])).length&&he(e,t),ke=e=>de(e)||s.isValidElement(e),De=e=>e instanceof RegExp;function Ce(e,t,r="validate"){if(ke(e)||Array.isArray(e)&&e.every(ke)||oe(e)&&!e)return{type:r,message:ke(e)?e:"",ref:t}}var Ee=e=>c(e)&&!De(e)?e:{value:e,message:""},Be=async(e,t,r,s)=>{const{ref:n,refs:o,required:u,maxLength:l,minLength:d,min:f,max:g,pattern:m,validate:y,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(oe(e)?"":e||" "),v.reportValidity())},k={},D=le(n),C=a(n),B=D||C,T=(h||_e(n))&&!n.value||""===t||Array.isArray(t)&&!t.length,U=L.bind(null,b,r,k),M=(e,t,r,s=F,a=A)=>{const i=e?t:r;k[b]=Object.assign({type:e?s:a,message:i,ref:n},U(e?s:a,i))};if(u&&(!B&&(T||i(t))||oe(t)&&!t||C&&!xe(o).isValid||D&&!Ae(o).isValid)){const{value:e,message:t}=ke(u)?{value:!!u,message:u}:Ee(u);if(e&&(k[b]=Object.assign({type:w,message:t,ref:v},U(w,t)),!r))return S(t),k}if(!(T||i(f)&&i(g))){let e,s;const a=Ee(g),o=Ee(f);if(isNaN(t)){const r=n.valueAsDate||new Date(t);de(a.value)&&(e=r>new Date(a.value)),de(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)&&(M(!!e,a.message,o.message,x,j),!r))return S(k[b].message),k}if((l||d)&&!T&&de(t)){const e=Ee(l),s=Ee(d),a=!i(e.value)&&t.length>e.value,n=!i(s.value)&&t.length<s.value;if((a||n)&&(M(a,e.message,s.message),!r))return S(k[b].message),k}if(m&&!T&&de(t)){const{value:e,message:s}=Ee(m);if(De(e)&&!t.match(e)&&(k[b]=Object.assign({type:O,message:s,ref:n},U(O,s)),!r))return S(s),k}if(y)if(re(y)){const e=Ce(await y(t),v);if(e&&(k[b]=Object.assign(Object.assign({},e),U(V,e.message)),!r))return S(e.message),k}else if(c(y)){let e={};for(const s in y){if(!E(e)&&!r)break;const a=Ce(await y[s](t),v,s);a&&(e=Object.assign(Object.assign({},a),U(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 Te={mode:_,reValidateMode:h,shouldFocusError:!0},Ue="undefined"==typeof window;function Me(e={}){let t,r=Object.assign(Object.assign({},Te),e),s={isDirty:!1,isValidating:!1,dirtyFields:{},isSubmitted:!1,submitCount:0,touchedFields:{},isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,errors:{}},o={},c=r.defaultValues||{},y=r.shouldUnregister?{}:se(c),b={action:!1,mount:!1,watch:!1},h={mount:new Set,unMount:new Set,array:new Set,watch:new Set},_=0,p={};const x={isDirty:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},j={watch:new be,control:new be,array:new be,state:new be},F=ie(r.mode),A=ie(r.reValidateMode),O=r.criteriaMode===v,w=(e,t)=>!t&&(h.watchAll||h.watch.has(e)||h.watch.has((e.match(/\w+/)||[])[0])),V=async e=>{let t=!1;return x.isValid&&(t=r.resolver?E((await M()).errors):await N(o,!0),e||t===s.isValid||(s.isValid=t,j.state.next({isValid:t}))),t},k=(e,t)=>(q(s.errors,e,t),j.state.next({errors:s.errors})),D=(e,t,r)=>{const s=g(o,e);if(s){const a=g(y,e,g(c,e));f(a)||r&&r.defaultChecked||t?q(y,e,t?a:Oe(s._f)):W(e,a)}b.mount&&V()},C=(e,t,r,a=!0)=>{let n=!1;const i={name:e},o=g(s.touchedFields,e);if(x.isDirty){const e=s.isDirty;s.isDirty=i.isDirty=R(),n=e!==i.isDirty}if(x.dirtyFields&&!r){const r=g(s.dirtyFields,e);ne(g(c,e),t)?he(s.dirtyFields,e):q(s.dirtyFields,e,!0),i.dirtyFields=s.dirtyFields,n=n||r!==g(s.dirtyFields,e)}return r&&!o&&(q(s.touchedFields,e,r),i.touchedFields=s.touchedFields,n=n||x.touchedFields&&o!==r),n&&a&&j.state.next(i),n?i:{}},B=(e,t)=>(q(s.dirtyFields,e,Ve(t,g(c,e,[]),g(s.dirtyFields,e,[]))),Se(s.dirtyFields,e)),U=async(r,a,n,i,o)=>{const c=g(s.errors,a),u=x.isValid&&s.isValid!==n;var l,d;if(e.delayError&&i?(t=t||(l=k,d=e.delayError,(...e)=>{clearTimeout(_),_=window.setTimeout(()=>l(...e),d)}),t(a,i)):(clearTimeout(_),i?q(s.errors,a,i):he(s.errors,a)),((i?!ne(c,i):c)||!E(o)||u)&&!r){const e=Object.assign(Object.assign(Object.assign({},o),u?{isValid:n}:{}),{errors:s.errors,name:a});s=Object.assign(Object.assign({},s),e),j.state.next(e)}p[a]--,x.isValidating&&!p[a]&&(j.state.next({isValidating:!1}),p={})},M=async e=>r.resolver?await r.resolver(Object.assign({},y),r.context,((e,t,r,s)=>{const a={};for(const r of e){const e=g(t,r);e&&q(a,r,e._f)}return{criteriaMode:r,names:[...e],fields:a,shouldUseNativeValidation:s}})(e||h.mount,o,r.criteriaMode,r.shouldUseNativeValidation)):{},N=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 Be(i,g(y,e.name),O,r.shouldUseNativeValidation);if(n[e.name]&&(a.valid=!1,t))break;t||(n[e.name]?q(s.errors,e.name,n[e.name]):he(s.errors,e.name))}n&&await N(n,t,a)}}return a.valid},R=(e,t)=>(e&&t&&q(y,e,t),!ne(z(),c)),L=(e,t,r)=>{const s=Object.assign({},b.mount?y:f(t)?c:de(e)?{[e]:t}:t);if(e){const t=T(e).map(e=>(r&&h.watch.add(e),g(s,e)));return Array.isArray(e)?t:t[0]}return r&&(h.watchAll=!0),s},W=(e,t,r={},s)=>{const n=g(o,e);let c=t;if(n){const r=n._f;r&&(q(y,e,je(t,r)),c=fe&&ce(r.ref)&&i(t)?"":t,ue(r.ref)?[...r.ref.options].forEach(e=>e.selected=c.includes(e.value)):r.refs?a(r.ref)?r.refs.length>1?r.refs.forEach(e=>e.checked=Array.isArray(c)?!!c.find(t=>t===e.value):c===e.value):r.refs[0].checked=!!c:r.refs.forEach(e=>e.checked=e.value===c):r.ref.value=c,s&&j.control.next({values:y,name:e}))}(r.shouldDirty||r.shouldTouch)&&C(e,c,r.shouldTouch),r.shouldValidate&&H(e)},P=(e,t,r)=>{for(const s in t){const a=t[s],i=`${e}.${s}`,c=g(o,i);!h.array.has(e)&&ae(a)&&(!c||c._f)||n(a)?W(i,a,r,!0):P(i,a,r)}},$=async e=>{const t=e.target;let n=t.name;const i=g(o,n);if(i){let l,d;const f=t.type?Oe(i._f):t.value,b=e.type===m,h=!((c=i._f).mount&&(c.required||c.min||c.max||c.maxLength||c.minLength||c.pattern||c.validate)||r.resolver||g(s.errors,n)||i._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))(b,g(s.touchedFields,n),s.isSubmitted,A,F),_=w(n,b);b?i._f.onBlur&&i._f.onBlur(e):i._f.onChange&&i._f.onChange(e),q(y,n,f);const v=C(n,f,b,!1),S=!E(v)||_;if(!b&&j.watch.next({name:n,type:e.type}),h)return S&&j.state.next(Object.assign({name:n},_?{}:v));if(!b&&_&&j.state.next({}),p[n]=(p[n],1),x.isValidating&&j.state.next({isValidating:!0}),r.resolver){const{errors:e}=await M([n]);if(l=g(e,n),a(t)&&!l){const t=u(n),r=g(o,t);if(Array.isArray(r)&&r.every(e=>e._f&&a(e._f.ref))){const r=g(e,t,{});r.type&&(l=r),n=t}}d=E(e)}else l=(await Be(i,g(y,n),O,r.shouldUseNativeValidation))[n],d=await V(!0);i._f.deps&&H(i._f.deps),U(!1,n,d,l,v)}var c},H=async(e,t={})=>{let a,n;const i=T(e);if(j.state.next({isValidating:!0}),r.resolver){const t=await(async e=>{const{errors:t}=await M();if(e)for(const r of e){const e=g(t,r);e?q(s.errors,r,e):he(s.errors,r)}else s.errors=t;return t})(f(e)?e:i);a=E(t),n=e?!i.some(e=>g(t,e)):a}else e?(n=(await Promise.all(i.map(async e=>{const t=g(o,e);return await N(t&&t._f?{[e]:t}:t)}))).every(Boolean),V()):n=a=await N(o);return j.state.next(Object.assign(Object.assign({},de(e)&&a===s.isValid?{name:e}:{}),{errors:s.errors,isValid:a,isValidating:!1})),t.shouldFocus&&!n&&I(o,e=>g(s.errors,e),e?i:h.mount),n},z=e=>{const t=Object.assign(Object.assign({},c),b.mount?y:{});return f(e)?t:de(e)?g(t,e):e.map(e=>g(t,e))},G=(e,t={})=>{for(const a of e?T(e):h.mount)h.mount.delete(a),h.array.delete(a),g(o,a)&&(t.keepValue||(he(o,a),he(y,a)),!t.keepError&&he(s.errors,a),!t.keepDirty&&he(s.dirtyFields,a),!t.keepTouched&&he(s.touchedFields,a),!r.shouldUnregister&&!t.keepDefaultValue&&he(c,a));j.watch.next({}),j.state.next(Object.assign(Object.assign({},s),t.keepDirty?{isDirty:R()}:{})),!t.keepIsValid&&V()},J=(e,t={})=>{const s=g(o,e);return q(o,e,{_f:Object.assign(Object.assign(Object.assign({},s&&s._f?s._f:{ref:{name:e}}),{name:e,mount:!0}),t)}),h.mount.add(e),!f(t.value)&&q(y,e,t.value),s?oe(t.disabled)&&q(y,e,t.disabled?void 0:g(y,e,Oe(s._f))):D(e,!0),Ue?{name:e}:Object.assign(Object.assign({name:e},oe(t.disabled)?{disabled:t.disabled}:{}),{onChange:$,onBlur:$,ref:s=>{if(s){J(e,t);let r=g(o,e);const n=f(s.value)&&s.querySelectorAll&&s.querySelectorAll("input,select,textarea")[0]||s,i=(e=>le(e)||a(e))(n);if(n===r._f.ref||i&&d(r._f.refs||[]).find(e=>e===n))return;r={_f:i?Object.assign(Object.assign({},r._f),{refs:[...d(r._f.refs||[]).filter(e=>ce(e)&&document.contains(e)),n],ref:{type:n.type,name:e}}):Object.assign(Object.assign({},r._f),{ref:n})},q(o,e,r),(!t||!t.disabled)&&D(e,!1,n)}else{const s=g(o,e,{}),a=r.shouldUnregister||t.shouldUnregister;s._f&&(s._f.mount=!1),a&&(!l(h.array,e)||!b.action)&&h.unMount.add(e)}}})};return{control:{register:J,unregister:G,_getWatch:L,_getDirty:R,_updateValid:V,_removeUnmounted:()=>{for(const e of h.unMount){const t=g(o,e);t&&(t._f.refs?t._f.refs.every(ge):ge(t._f.ref))&&G(e)}h.unMount=new Set},_updateFieldArray:(e,t,r,a=[],n=!0,i=!0)=>{if(b.action=!0,i&&g(o,e)){const s=t(g(o,e),r.argA,r.argB);n&&q(o,e,s)}if(Array.isArray(g(s.errors,e))){const a=t(g(s.errors,e),r.argA,r.argB);n&&q(s.errors,e,a),Se(s.errors,e)}if(x.touchedFields&&g(s.touchedFields,e)){const a=t(g(s.touchedFields,e),r.argA,r.argB);n&&q(s.touchedFields,e,a),Se(s.touchedFields,e)}(x.dirtyFields||x.isDirty)&&B(e,a),j.state.next({isDirty:R(e,a),dirtyFields:s.dirtyFields,errors:s.errors,isValid:s.isValid})},_getFieldArray:e=>g(b.mount?y:c,e,[]),_subjects:j,_proxyFormState:x,get _fields(){return o},set _fields(e){o=e},get _formValues(){return y},set _formValues(e){y=e},get _stateFlags(){return b},set _stateFlags(e){b=e},get _defaultValues(){return c},set _defaultValues(e){c=e},get _names(){return h},set _names(e){h=e},get _formState(){return s},set _formState(e){s=e},get _options(){return r},set _options(e){r=Object.assign(Object.assign({},r),e)}},trigger:H,register:J,handleSubmit:(e,t)=>async a=>{a&&(a.preventDefault&&a.preventDefault(),a.persist&&a.persist());let n=!0,i=Object.assign({},y);j.state.next({isSubmitting:!0});try{if(r.resolver){const{errors:e,values:t}=await M();s.errors=e,i=t}else await N(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&&I(o,e=>g(s.errors,e),h.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)=>re(e)?j.watch.subscribe({next:r=>e(L(void 0,t),r)}):L(e,t,!0),setValue:(e,t,r={})=>{const a=g(o,e),n=h.array.has(e);q(y,e,t),n?(j.array.next({name:e,values:y}),(x.isDirty||x.dirtyFields)&&r.shouldDirty&&(B(e,t),j.state.next({name:e,dirtyFields:s.dirtyFields,isDirty:R(e,t)}))):!a||a._f||i(t)?W(e,t,r,!0):P(e,t,r),w(e)&&j.state.next({}),j.watch.next({name:e})},getValues:z,reset:(t,r={})=>{const a=!E(t),n=t||c,i=se(n);if(r.keepDefaultValues||(c=n),!r.keepValues){if(fe)for(const e of h.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{ce(e)&&e.closest("form").reset();break}catch(e){}}}y=e.shouldUnregister?{}:i,o={},j.control.next({values:a?i:c}),j.watch.next({}),j.array.next({values:i})}h={mount:new Set,unMount:new Set,array:new Set,watch:new Set,watchAll:!1,focus:""},j.state.next({submitCount:r.keepSubmitCount?s.submitCount:0,isDirty:r.keepDirty?s.isDirty:!!r.keepDefaultValues&&ne(t,c),isSubmitted:!!r.keepIsSubmitted&&s.isSubmitted,dirtyFields:r.keepDirty?s.dirtyFields:{},touchedFields:r.keepTouched?s.touchedFields:{},errors:r.keepErrors?s.errors:{},isSubmitting:!1,isSubmitSuccessful:!1}),b.mount=!x.isValid||!!r.keepIsValid,b.watch=!!e.shouldUnregister},clearErrors:e=>{e?T(e).forEach(e=>he(s.errors,e)):s.errors={},j.state.next({errors:s.errors})},unregister:G,setError:(e,t,r)=>{const a=(g(o,e,{_f:{}})._f||{}).ref;q(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(R(e)),e.FormProvider=e=>s.createElement(k.Provider,{value:S(e,"children")},e.children),e.appendErrors=L,e.get=g,e.set=q,e.useController=R,e.useFieldArray=e=>{const t=D(),{control:r=t.control,name:a,keyName:n="id",shouldUnregister:i}=e,[o,c]=s.useState(G(r._getFieldArray(a),n)),u=s.useRef(o),l=s.useRef(a);l.current=a,u.current=o,r._names.array.add(a),M({callback:({values:e,name:t})=>{t!==l.current&&t||c(G(g(e,l.current),n))},subject:r._subjects.array,skipEarlySubscription:!0});const d=s.useCallback(e=>{const t=((e,t)=>e.map((e={})=>S(e,t)))(e,n);return q(r._formValues,a,t),c(e),t},[r,a,n]);return s.useEffect(()=>{if(r._stateFlags.action=!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&&I(r._fields,e=>e.startsWith(r._names.focus)),r._names.focus="",r._proxyFormState.isValid&&r._updateValid()},[o,a,r,n]),s.useEffect(()=>(!g(r._formValues,a)&&q(r._formValues,a,[]),()=>{(r._options.shouldUnregister||i)&&r.unregister(a)}),[a,r,n,i]),{swap:s.useCallback((e,t)=>{const s=H(r._getFieldArray(a),u,n);ee(s,e,t),r._updateFieldArray(a,ee,{argA:e,argB:t},d(s),!1)},[d,a,r,n]),move:s.useCallback((e,t)=>{const s=H(r._getFieldArray(a),u,n);X(s,e,t),r._updateFieldArray(a,X,{argA:e,argB:t},d(s),!1)},[d,a,r,n]),prepend:s.useCallback((e,t)=>{const s=Y(H(r._getFieldArray(a),u,n),G(T(e),n));r._updateFieldArray(a,Y,{argA:K(e)},d(s)),r._names.focus=$(a,0,t)},[d,a,r,n]),append:s.useCallback((e,t)=>{const s=T(e),i=J(H(r._getFieldArray(a),u,n),G(s,n));r._updateFieldArray(a,J,{argA:K(e)},d(i)),r._names.focus=$(a,i.length-s.length,t)},[d,a,r,n]),remove:s.useCallback(e=>{const t=Z(H(r._getFieldArray(a),u,n),e);r._updateFieldArray(a,Z,{argA:e},d(t))},[d,a,r,n]),insert:s.useCallback((e,t,s)=>{const i=Q(H(r._getFieldArray(a),u,n),e,G(T(t),n));r._updateFieldArray(a,Q,{argA:e,argB:K(t)},d(i)),r._names.focus=$(a,e,s)},[d,a,r,n]),update:s.useCallback((e,t)=>{const s=H(r._getFieldArray(a),u,n),i=te(s,e,t);u.current=G(i,n),r._updateFieldArray(a,te,{argA:e,argB:t},d(u.current),!0,!1)},[d,a,r,n]),replace:s.useCallback(e=>{const t=G(T(e),n);r._updateFieldArray(a,()=>t,{},d(t),!0,!1)},[d,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._options=e:t.current=Object.assign(Object.assign({},Me(e)),{formState:r});const n=t.current.control;return M({subject:n._subjects.state,callback:e=>{B(e,n._proxyFormState,!0)&&(n._formState=Object.assign(Object.assign({},n._formState),e),a(Object.assign({},n._formState)))}}),s.useEffect(()=>{n._stateFlags.mount||(n._proxyFormState.isValid&&n._updateValid(),n._stateFlags.mount=!0),n._stateFlags.watch&&(n._stateFlags.watch=!1,n._subjects.state.next({})),n._removeUnmounted()}),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,M({disabled:i,subject:r._subjects.watch,callback:({name:e})=>{if(!o.current||!e||T(o.current).some(t=>e&&t&&(e.startsWith(t)||t.startsWith(e)))){r._stateFlags.mount=!0;const e=r._getWatch(o.current,n);l(c(e)?Object.assign({},e):Array.isArray(e)?[...e]:e)}}});const[u,l]=s.useState(f(n)?r._getWatch(a):n);return s.useEffect(()=>{r._removeUnmounted()}),u},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),c=(e,t)=>[...e].some(e=>(e=>e.substring(0,e.search(/.\d/))||e)(t)===e),l=e=>e.filter(Boolean),d=e=>void 0===e,f=(e,t,r)=>{if(u(e)&&t){const s=l(t.split(/[,[\].]+?/)).reduce((e,t)=>i(e)?e:e[t],e);return d(s)||s===e?d(e[t])?r:e[t]:s}};const g="blur",m="change",y="onBlur",b="onChange",h="onSubmit",_="onTouched",p="all",v="max",j="min",x="maxLength",O="minLength",F="pattern",A="required",V="validate";var w=(e,t)=>{const r=Object.assign({},e);return delete r[t],r};const S=s.createContext(null),k=()=>s.useContext(S);var D=(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},C=e=>u(e)&&!Object.keys(e).length,E=(e,t,r)=>{const s=w(e,"name");return C(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],U=(e,t)=>!e||!t||B(e).some(e=>e&&(e.startsWith(t)||t.startsWith(e)));const T=e=>{e.current&&(e.current.unsubscribe(),e.current=void 0)};function M(e){const t=s.useRef(),r=s.useRef(()=>{});r.current=(({_unsubscribe:e,props:t})=>()=>{t.disabled?T(e):e.current||(e.current=t.subject.subscribe({next:t.callback}))})({_unsubscribe:t,props:e}),!e.skipEarlySubscription&&r.current(),s.useEffect(()=>(r.current(),()=>T(t)),[])}function N(e){const t=k(),{control:r=t.control,disabled:a,name:n}=e||{},[i,o]=s.useState(r._formState),u=s.useRef({isDirty:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1}),c=s.useRef(n);return c.current=n,M({disabled:a,callback:e=>U(c.current,e.name)&&E(e,u.current)&&o(Object.assign(Object.assign({},r._formState),e)),subject:r._subjects.state,skipEarlySubscription:!0}),D(i,r._proxyFormState,u.current,!1)}function R(e){const t=k(),{name:r,control:n=t.control,shouldUnregister:i}=e,[o,l]=s.useState(f(n._formValues,r,f(n._defaultValues,r,e.defaultValue))),d=N({control:n||t.control,name:r}),y=s.useRef(r);y.current=r,M({subject:n._subjects.control,callback:e=>(!e.name||y.current===e.name)&&l(f(e.values,y.current)),skipEarlySubscription:!0});const b=n.register(r,Object.assign(Object.assign({},e.rules),{value:o})),h=s.useCallback((e,t)=>{const r=f(n._fields,e);r&&(r._f.mount=t)},[n]);return s.useEffect(()=>(h(r,!0),()=>{const e=n._options.shouldUnregister||i;(c(n._names.array,r)?e&&!n._stateFlags.action:e)?n.unregister(r):h(r,!1)}),[r,n,i,h]),{field:{onChange:e=>{const t=(e=>u(e)&&e.target?a(e.target)?e.target.checked:e.target.value:e)(e);l(t),b.onChange({target:{value:t,name:r},type:m})},onBlur:()=>{b.onBlur({target:{value:o,name:r},type:g})},name:r,value:o,ref:e=>{const t=f(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:!!f(d.errors,r),isDirty:!!f(d.dirtyFields,r),isTouched:!!f(d.touchedFields,r),error:f(d.errors,r)}}}var L=(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})}):{},W=e=>/^\w*$/.test(e),P=e=>l(e.replace(/["|']|\]/g,"").split(/\.|\[/));function q(e,t,r){let s=-1;const a=W(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 I=(e,t,r)=>{for(const s of r||Object.keys(e)){const r=f(e,s);if(r){const e=r._f,s=w(r,"_f");if(e&&t(e.name)){if(e.ref.focus&&d(e.ref.focus()))break;if(e.refs){e.refs[0].focus();break}}else u(s)&&I(s,t)}}};var $=(e,t,r={})=>r.shouldFocus||d(r.shouldFocus)?r.focusName||`${e}.${d(r.focusIndex)?t:r.focusIndex}.`:"",H=(e,t,r)=>e.map((e,s)=>{const a=t.current[s];return Object.assign(Object.assign({},e),a?{[r]:a[r]}:{})}),z=()=>{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)})},G=(e=[],t)=>e.map(e=>Object.assign(Object.assign({},e[t]?{}:{[t]:z()}),e));function J(e,t){return[...B(e),...B(t)]}var K=e=>Array.isArray(e)?e.map(()=>{}):void 0;function Q(e,t,r){return[...e.slice(0,t),...B(r),...e.slice(t)]}var X=(e,t,r)=>Array.isArray(e)?(d(e[r])&&(e[r]=void 0),e.splice(r,0,e.splice(t,1)[0]),e):[];function Y(e,t){return[...B(t),...B(e)]}var Z=(e,t)=>d(t)?[]:function(e,t){let r=0;const s=[...e];for(const e of t)s.splice(e-r,1),r++;return l(s).length?s:[]}(e,B(t).sort((e,t)=>e-t)),ee=(e,t,r)=>{e[t]=[e[r],e[r]=e[t]][0]},te=(e,t,r)=>(e[t]=r,e);var re=e=>"function"==typeof e;function se(e){let t;const r=Array.isArray(e);if(e instanceof Date)t=new Date(e);else if(e instanceof Set)t=new Set(e);else{if(!r&&!u(e))return e;t=r?[]:{};for(const r in e){if(re(e[r])){t=e;break}t[r]=se(e[r])}}return t}function ae(){let e=[];return{get observers(){return e},next:t=>{for(const r of e)r.next(t)},subscribe:t=>{const r=function(){let e=[];return{add:t=>{e.push(t)},unsubscribe:()=>{for(const t of e)t();e=[]}}}(),s=function(e,t){let r=!1;return t.add(()=>r=!0),{next:t=>{r||e.next(t)}}}(t,r);return e.push(s),r},unsubscribe:()=>{e=[]}}}var ne=e=>i(e)||!o(e);function ie(e,t){if(ne(e)||ne(t))return e===t;if(n(e)&&n(t))return e.getTime()===t.getTime();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(n(r)&&n(e)||u(r)&&u(e)||Array.isArray(r)&&Array.isArray(e)?!ie(r,e):r!==e)return!1}}return!0}var oe=e=>({isOnSubmit:!e||e===h,isOnBlur:e===y,isOnChange:e===b,isOnAll:e===p,isOnTouch:e===_}),ue=e=>"boolean"==typeof e,ce=e=>"file"===e.type,le=e=>e instanceof HTMLElement,de=e=>"select-multiple"===e.type,fe=e=>"radio"===e.type,ge=e=>"string"==typeof e,me="undefined"!=typeof window&&void 0!==window.HTMLElement&&"undefined"!=typeof document,ye=e=>le(e)&&document.contains(e);function be(e,t){const r=W(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=d(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)&&C(s)||Array.isArray(s)&&!s.filter(e=>u(e)&&!C(e)||ue(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&&!d(e[0].attributes.value)?d(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})=>d(e)?e:t?""===e?NaN:+e:r?new Date(e):s?s(e):e;const je={isValid:!1,value:null};var xe=e=>Array.isArray(e)?e.reduce((e,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:e,je):je;function Oe(e){const t=e.ref;if(!(e.refs?e.refs.every(e=>e.disabled):t.disabled))return ce(t)?t.files:fe(t)?xe(e.refs).value:de(t)?[...t.selectedOptions].map(({value:e})=>e):a(t)?pe(e.refs).value:ve(d(t.value)?e.ref.value:t.value,e)}function Fe(e,t,r){const s=f(e,r);if(s||W(r))return{error:s,name:r};const a=r.split(".");for(;a.length;){const s=a.join("."),n=f(t,s),i=f(e,s);if(n&&!Array.isArray(n)&&r!==s)return{name:r};if(i&&i.type)return{name:s,error:i};a.pop()}return{name:r}}function Ae(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]=[],Ae(e[n][s],f(t[n]||{},s,[]),r[n][s],r[n],s)):!i(t)&&ie(f(t[n]||{},s),e[n][s])?q(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(ne(t)||ne(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}(Ae(e,t,r.slice(0,e.length)),Ae(t,e,r.slice(0,e.length))),we=(e,t)=>!l(f(e,t,[])).length&&be(e,t),Se=e=>ge(e)||s.isValidElement(e),ke=e=>e instanceof RegExp;function De(e,t,r="validate"){if(Se(e)||Array.isArray(e)&&e.every(Se)||ue(e)&&!e)return{type:r,message:Se(e)?e:"",ref:t}}var Ce=e=>u(e)&&!ke(e)?e:{value:e,message:""},Ee=async(e,t,r,s)=>{const{ref:n,refs:o,required:c,maxLength:l,minLength:d,min:f,max:g,pattern:m,validate:y,name:b,valueAsNumber:h,mount:_,disabled:p}=e._f;if(!_||p)return{};const w=o?o[0]:n,S=e=>{s&&w.reportValidity&&(w.setCustomValidity(ue(e)?"":e||" "),w.reportValidity())},k={},D=fe(n),E=a(n),B=D||E,U=(h||ce(n))&&!n.value||""===t||Array.isArray(t)&&!t.length,T=L.bind(null,b,r,k),M=(e,t,r,s=x,a=O)=>{const i=e?t:r;k[b]=Object.assign({type:e?s:a,message:i,ref:n},T(e?s:a,i))};if(c&&(!B&&(U||i(t))||ue(t)&&!t||E&&!pe(o).isValid||D&&!xe(o).isValid)){const{value:e,message:t}=Se(c)?{value:!!c,message:c}:Ce(c);if(e&&(k[b]=Object.assign({type:A,message:t,ref:w},T(A,t)),!r))return S(t),k}if(!(U||i(f)&&i(g))){let e,s;const a=Ce(g),o=Ce(f);if(isNaN(t)){const r=n.valueAsDate||new Date(t);ge(a.value)&&(e=r>new Date(a.value)),ge(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)&&(M(!!e,a.message,o.message,v,j),!r))return S(k[b].message),k}if((l||d)&&!U&&ge(t)){const e=Ce(l),s=Ce(d),a=!i(e.value)&&t.length>e.value,n=!i(s.value)&&t.length<s.value;if((a||n)&&(M(a,e.message,s.message),!r))return S(k[b].message),k}if(m&&!U&&ge(t)){const{value:e,message:s}=Ce(m);if(ke(e)&&!t.match(e)&&(k[b]=Object.assign({type:F,message:s,ref:n},T(F,s)),!r))return S(s),k}if(y)if(re(y)){const e=De(await y(t),w);if(e&&(k[b]=Object.assign(Object.assign({},e),T(V,e.message)),!r))return S(e.message),k}else if(u(y)){let e={};for(const s in y){if(!C(e)&&!r)break;const a=De(await y[s](t),w,s);a&&(e=Object.assign(Object.assign({},a),T(s,a.message)),S(a.message),r&&(k[b]=e))}if(!C(e)&&(k[b]=Object.assign({ref:w},e),!r))return k}return S(!0),k};const Be={mode:h,reValidateMode:b,shouldFocusError:!0},Ue="undefined"==typeof window;function Te(e={}){let t,r=Object.assign(Object.assign({},Be),e),s={isDirty:!1,isValidating:!1,dirtyFields:{},isSubmitted:!1,submitCount:0,touchedFields:{},isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,errors:{}},o={},u=r.defaultValues||{},m=r.shouldUnregister?{}:se(u),y={action:!1,mount:!1,watch:!1},b={mount:new Set,unMount:new Set,array:new Set,watch:new Set},h=0,_={};const v={isDirty:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},j={watch:ae(),control:ae(),array:ae(),state:ae()},x=oe(r.mode),O=oe(r.reValidateMode),F=r.criteriaMode===p,A=(e,t)=>!t&&(b.watchAll||b.watch.has(e)||b.watch.has((e.match(/\w+/)||[])[0])),V=async e=>{let t=!1;return v.isValid&&(t=r.resolver?C((await T()).errors):await M(o,!0),e||t===s.isValid||(s.isValid=t,j.state.next({isValid:t}))),t},S=(e,t)=>(q(s.errors,e,t),j.state.next({errors:s.errors})),k=(e,t,r)=>{const s=f(o,e);if(s){const a=f(m,e,f(u,e));d(a)||r&&r.defaultChecked||t?q(m,e,t?a:Oe(s._f)):L(e,a)}y.mount&&V()},D=(e,t,r,a=!0)=>{let n=!1;const i={name:e},o=f(s.touchedFields,e);if(v.isDirty){const e=s.isDirty;s.isDirty=i.isDirty=N(),n=e!==i.isDirty}if(v.dirtyFields&&!r){const r=f(s.dirtyFields,e);ie(f(u,e),t)?be(s.dirtyFields,e):q(s.dirtyFields,e,!0),i.dirtyFields=s.dirtyFields,n=n||r!==f(s.dirtyFields,e)}return r&&!o&&(q(s.touchedFields,e,r),i.touchedFields=s.touchedFields,n=n||v.touchedFields&&o!==r),n&&a&&j.state.next(i),n?i:{}},E=(e,t)=>(q(s.dirtyFields,e,Ve(t,f(u,e,[]),f(s.dirtyFields,e,[]))),we(s.dirtyFields,e)),U=async(r,a,n,i,o)=>{const u=f(s.errors,a),c=v.isValid&&s.isValid!==n;var l,d;if(e.delayError&&i?(t=t||(l=S,d=e.delayError,(...e)=>{clearTimeout(h),h=window.setTimeout(()=>l(...e),d)}),t(a,i)):(clearTimeout(h),i?q(s.errors,a,i):be(s.errors,a)),((i?!ie(u,i):u)||!C(o)||c)&&!r){const e=Object.assign(Object.assign(Object.assign({},o),c?{isValid:n}:{}),{errors:s.errors,name:a});s=Object.assign(Object.assign({},s),e),j.state.next(e)}_[a]--,v.isValidating&&!_[a]&&(j.state.next({isValidating:!1}),_={})},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=f(t,r);e&&q(a,r,e._f)}return{criteriaMode:r,names:[...e],fields:a,shouldUseNativeValidation:s}})(e||b.mount,o,r.criteriaMode,r.shouldUseNativeValidation)):{},M=async(e,t,a={valid:!0})=>{for(const n in e){const i=e[n];if(i){const e=i._f,n=w(i,"_f");if(e){const n=await Ee(i,f(m,e.name),F,r.shouldUseNativeValidation);if(n[e.name]&&(a.valid=!1,t))break;t||(n[e.name]?q(s.errors,e.name,n[e.name]):be(s.errors,e.name))}n&&await M(n,t,a)}}return a.valid},N=(e,t)=>(e&&t&&q(m,e,t),!ie(H(),u)),R=(e,t,r)=>{const s=Object.assign({},y.mount?m:d(t)?u:ge(e)?{[e]:t}:t);if(e){const t=B(e).map(e=>(r&&b.watch.add(e),f(s,e)));return Array.isArray(e)?t:t[0]}return r&&(b.watchAll=!0),s},L=(e,t,r={},s)=>{const n=f(o,e);let u=t;if(n){const r=n._f;r&&(q(m,e,ve(t,r)),u=me&&le(r.ref)&&i(t)?"":t,ce(r.ref)&&!ge(u)?r.ref.files=u:de(r.ref)?[...r.ref.options].forEach(e=>e.selected=u.includes(e.value)):r.refs?a(r.ref)?r.refs.length>1?r.refs.forEach(e=>e.checked=Array.isArray(u)?!!u.find(t=>t===e.value):u===e.value):r.refs[0].checked=!!u:r.refs.forEach(e=>e.checked=e.value===u):r.ref.value=u,s&&j.control.next({values:m,name:e}))}(r.shouldDirty||r.shouldTouch)&&D(e,u,r.shouldTouch),r.shouldValidate&&$(e)},W=(e,t,r)=>{for(const s in t){const a=t[s],i=`${e}.${s}`,u=f(o,i);!b.array.has(e)&&ne(a)&&(!u||u._f)||n(a)?L(i,a,r,!0):W(i,a,r)}},P=async e=>{const t=e.target;let a=t.name;const n=f(o,a);if(n){let u,c;const l=t.type?Oe(n._f):t.value,d=e.type===g,y=!((i=n._f).mount&&(i.required||i.min||i.max||i.maxLength||i.minLength||i.pattern||i.validate)||r.resolver||f(s.errors,a)||n._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))(d,f(s.touchedFields,a),s.isSubmitted,O,x),b=A(a,d);d?n._f.onBlur&&n._f.onBlur(e):n._f.onChange&&n._f.onChange(e),q(m,a,l);const h=D(a,l,d,!1),p=!C(h)||b;if(!d&&j.watch.next({name:a,type:e.type}),y)return p&&j.state.next(Object.assign({name:a},b?{}:h));if(!d&&b&&j.state.next({}),_[a]=(_[a],1),v.isValidating&&j.state.next({isValidating:!0}),r.resolver){const{errors:e}=await T([a]),t=Fe(s.errors,o,a),r=Fe(e,o,t.name||a);u=r.error,a=r.name,c=C(e)}else u=(await Ee(n,f(m,a),F,r.shouldUseNativeValidation))[a],c=await V(!0);n._f.deps&&$(n._f.deps),U(!1,a,c,u,h)}var i},$=async(e,t={})=>{let a,n;const i=B(e);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=f(t,r);e?q(s.errors,r,e):be(s.errors,r)}else s.errors=t;return t})(d(e)?e:i);a=C(t),n=e?!i.some(e=>f(t,e)):a}else e?(n=(await Promise.all(i.map(async e=>{const t=f(o,e);return await M(t&&t._f?{[e]:t}:t)}))).every(Boolean),V()):n=a=await M(o);return j.state.next(Object.assign(Object.assign(Object.assign({},!ge(e)||v.isValid&&a!==s.isValid?{}:{name:e}),r.resolver?{isValid:a}:{}),{errors:s.errors,isValidating:!1})),t.shouldFocus&&!n&&I(o,e=>f(s.errors,e),e?i:b.mount),n},H=e=>{const t=Object.assign(Object.assign({},u),y.mount?m:{});return d(e)?t:ge(e)?f(t,e):e.map(e=>f(t,e))},z=(e,t={})=>{for(const a of e?B(e):b.mount)b.mount.delete(a),b.array.delete(a),f(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(u,a));j.watch.next({}),j.state.next(Object.assign(Object.assign({},s),t.keepDirty?{isDirty:N()}:{})),!t.keepIsValid&&V()},G=(e,t={})=>{const s=f(o,e);return q(o,e,{_f:Object.assign(Object.assign(Object.assign({},s&&s._f?s._f:{ref:{name:e}}),{name:e,mount:!0}),t)}),b.mount.add(e),!d(t.value)&&q(m,e,t.value),s?ue(t.disabled)&&q(m,e,t.disabled?void 0:f(m,e,Oe(s._f))):k(e,!0),Ue?{name:e}:Object.assign(Object.assign({name:e},ue(t.disabled)?{disabled:t.disabled}:{}),{onChange:P,onBlur:P,ref:s=>{if(s){G(e,t);let r=f(o,e);const n=d(s.value)&&s.querySelectorAll&&s.querySelectorAll("input,select,textarea")[0]||s,i=(e=>fe(e)||a(e))(n);if(n===r._f.ref||i&&l(r._f.refs||[]).find(e=>e===n))return;r={_f:i?Object.assign(Object.assign({},r._f),{refs:[...l(r._f.refs||[]).filter(ye),n],ref:{type:n.type,name:e}}):Object.assign(Object.assign({},r._f),{ref:n})},q(o,e,r),(!t||!t.disabled)&&k(e,!1,n)}else{const s=f(o,e,{}),a=r.shouldUnregister||t.shouldUnregister;s._f&&(s._f.mount=!1),a&&(!c(b.array,e)||!y.action)&&b.unMount.add(e)}}})};return{control:{register:G,unregister:z,_executeSchema:T,_getWatch:R,_getDirty:N,_updateValid:V,_removeUnmounted:()=>{for(const e of b.unMount){const t=f(o,e);t&&(t._f.refs?t._f.refs.every(e=>!ye(e)):!ye(t._f.ref))&&z(e)}b.unMount=new Set},_updateFieldArray:(e,t,r,a=[],n=!0,i=!0)=>{if(y.action=!0,i&&f(o,e)){const s=t(f(o,e),r.argA,r.argB);n&&q(o,e,s)}if(Array.isArray(f(s.errors,e))){const a=t(f(s.errors,e),r.argA,r.argB);n&&q(s.errors,e,a),we(s.errors,e)}if(v.touchedFields&&f(s.touchedFields,e)){const a=t(f(s.touchedFields,e),r.argA,r.argB);n&&q(s.touchedFields,e,a),we(s.touchedFields,e)}(v.dirtyFields||v.isDirty)&&E(e,a),j.state.next({isDirty:N(e,a),dirtyFields:s.dirtyFields,errors:s.errors,isValid:s.isValid})},_getFieldArray:t=>f(y.mount?m:u,t,e.shouldUnregister?f(u,t,[]):[]),_subjects:j,_proxyFormState:v,get _fields(){return o},set _fields(e){o=e},get _formValues(){return m},set _formValues(e){m=e},get _stateFlags(){return y},set _stateFlags(e){y=e},get _defaultValues(){return u},set _defaultValues(e){u=e},get _names(){return b},set _names(e){b=e},get _formState(){return s},set _formState(e){s=e},get _options(){return r},set _options(e){r=Object.assign(Object.assign({},r),e)}},trigger:$,register:G,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 M(o);C(s.errors)&&Object.keys(s.errors).every(e=>f(i,e))?(j.state.next({errors:{},isSubmitting:!0}),await e(i,a)):(t&&await t(s.errors,a),r.shouldFocusError&&I(o,e=>f(s.errors,e),b.mount))}catch(e){throw n=!1,e}finally{s.isSubmitted=!0,j.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:C(s.errors)&&n,submitCount:s.submitCount+1,errors:s.errors})}},watch:(e,t)=>re(e)?j.watch.subscribe({next:r=>e(R(void 0,t),r)}):R(e,t,!0),setValue:(e,t,r={})=>{const a=f(o,e),n=b.array.has(e);q(m,e,t),n?(j.array.next({name:e,values:m}),(v.isDirty||v.dirtyFields)&&r.shouldDirty&&(E(e,t),j.state.next({name:e,dirtyFields:s.dirtyFields,isDirty:N(e,t)}))):!a||a._f||i(t)?L(e,t,r,!0):W(e,t,r),A(e)&&j.state.next({}),j.watch.next({name:e})},getValues:H,reset:(t,r={})=>{const a=!C(t),n=t||u,i=se(n);if(r.keepDefaultValues||(u=n),!r.keepValues){if(me)for(const e of b.mount){const t=f(o,e);if(t&&t._f){const e=Array.isArray(t._f.refs)?t._f.refs[0]:t._f.ref;try{le(e)&&e.closest("form").reset();break}catch(e){}}}m=e.shouldUnregister?r.keepDefaultValues?se(u):{}:i,o={},j.control.next({values:a?i:u}),j.watch.next({}),j.array.next({values:i})}b={mount:new Set,unMount:new Set,array:new Set,watch:new Set,watchAll:!1,focus:""},j.state.next({submitCount:r.keepSubmitCount?s.submitCount:0,isDirty:r.keepDirty?s.isDirty:!!r.keepDefaultValues&&!ie(t,u),isSubmitted:!!r.keepIsSubmitted&&s.isSubmitted,dirtyFields:r.keepDirty?s.dirtyFields:r.keepDefaultValues&&t?Object.entries(t).reduce((e,[t,r])=>Object.assign(Object.assign({},e),{[t]:r!==f(u,t)}),{}):{},touchedFields:r.keepTouched?s.touchedFields:{},errors:r.keepErrors?s.errors:{},isSubmitting:!1,isSubmitSuccessful:!1}),y.mount=!v.isValid||!!r.keepIsValid,y.watch=!!e.shouldUnregister},clearErrors:e=>{e?B(e).forEach(e=>be(s.errors,e)):s.errors={},j.state.next({errors:s.errors,isValid:!0})},unregister:z,setError:(e,t,r)=>{const a=(f(o,e,{_f:{}})._f||{}).ref;q(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=>{const t=f(o,e)._f;(t.ref.focus?t.ref:t.refs[0]).focus()}}}e.Controller=e=>e.render(R(e)),e.FormProvider=e=>s.createElement(S.Provider,{value:w(e,"children")},e.children),e.appendErrors=L,e.get=f,e.set=q,e.useController=R,e.useFieldArray=e=>{const t=k(),{control:r=t.control,name:a,keyName:n="id",shouldUnregister:i}=e,[o,u]=s.useState(G(r._getFieldArray(a),n)),c=s.useRef(o),l=s.useRef(a);l.current=a,c.current=o,r._names.array.add(a),M({callback:({values:e,name:t})=>{t!==l.current&&t||u(G(f(e,l.current),n))},subject:r._subjects.array,skipEarlySubscription:!0});const d=s.useCallback(e=>{const t=((e,t)=>e.map((e={})=>w(e,t)))(e,n);return q(r._formValues,a,t),u(e),t},[r,a,n]);return s.useEffect(()=>{if(r._stateFlags.action=!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._executeSchema([a]).then(e=>{const t=f(e.errors,a);t&&t.type&&!f(r._formState.errors,a)&&(q(r._formState.errors,a,t),r._subjects.state.next({errors:r._formState.errors}))}),r._subjects.watch.next({name:a,values:r._formValues}),r._names.focus&&I(r._fields,e=>e.startsWith(r._names.focus)),r._names.focus="",r._proxyFormState.isValid&&r._updateValid()},[o,a,r,n]),s.useEffect(()=>(!f(r._formValues,a)&&q(r._formValues,a,[]),()=>{(r._options.shouldUnregister||i)&&r.unregister(a)}),[a,r,n,i]),{swap:s.useCallback((e,t)=>{const s=H(r._getFieldArray(a),c,n);ee(s,e,t),r._updateFieldArray(a,ee,{argA:e,argB:t},d(s),!1)},[d,a,r,n]),move:s.useCallback((e,t)=>{const s=H(r._getFieldArray(a),c,n);X(s,e,t),r._updateFieldArray(a,X,{argA:e,argB:t},d(s),!1)},[d,a,r,n]),prepend:s.useCallback((e,t)=>{const s=Y(H(r._getFieldArray(a),c,n),G(B(e),n));r._updateFieldArray(a,Y,{argA:K(e)},d(s)),r._names.focus=$(a,0,t)},[d,a,r,n]),append:s.useCallback((e,t)=>{const s=B(e),i=J(H(r._getFieldArray(a),c,n),G(s,n));r._updateFieldArray(a,J,{argA:K(e)},d(i)),r._names.focus=$(a,i.length-s.length,t)},[d,a,r,n]),remove:s.useCallback(e=>{const t=Z(H(r._getFieldArray(a),c,n),e);r._updateFieldArray(a,Z,{argA:e},d(t))},[d,a,r,n]),insert:s.useCallback((e,t,s)=>{const i=Q(H(r._getFieldArray(a),c,n),e,G(B(t),n));r._updateFieldArray(a,Q,{argA:e,argB:K(t)},d(i)),r._names.focus=$(a,e,s)},[d,a,r,n]),update:s.useCallback((e,t)=>{const s=H(r._getFieldArray(a),c,n),i=te(s,e,t);c.current=G(i,n),r._updateFieldArray(a,te,{argA:e,argB:t},d(c.current),!0,!1)},[d,a,r,n]),replace:s.useCallback(e=>{const t=G(B(e),n);r._updateFieldArray(a,()=>t,{},d(t),!0,!1)},[d,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._options=e:t.current=Object.assign(Object.assign({},Te(e)),{formState:r});const n=t.current.control;return M({subject:n._subjects.state,callback:e=>{E(e,n._proxyFormState,!0)&&(n._formState=Object.assign(Object.assign({},n._formState),e),a(Object.assign({},n._formState)))}}),s.useEffect(()=>{n._stateFlags.mount||(n._proxyFormState.isValid&&n._updateValid(),n._stateFlags.mount=!0),n._stateFlags.watch&&(n._stateFlags.watch=!1,n._subjects.state.next({})),n._removeUnmounted()}),s.useEffect(()=>()=>Object.values(n._subjects).forEach(e=>e.unsubscribe()),[n]),t.current.formState=D(r,n._proxyFormState),t.current},e.useFormContext=k,e.useFormState=N,e.useWatch=function(e){const t=k(),{control:r=t.control,name:a,defaultValue:n,disabled:i}=e||{},o=s.useRef(a);o.current=a,M({disabled:i,subject:r._subjects.watch,callback:e=>{if(U(o.current,e.name)){r._stateFlags.mount=!0;const e=r._getWatch(o.current,n);l(u(e)?Object.assign({},e):Array.isArray(e)?[...e]:e)}}});const[c,l]=s.useState(d(n)?r._getWatch(a):n);return s.useEffect(()=>{r._removeUnmounted()}),c},Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=index.umd.js.map