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