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

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