react-simple-formkit 2.2.3 → 2.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/react-simple-formkit.js +4 -4
- package/dist/react-simple-formkit.mjs +426 -417
- package/dist/react-simple-formkit.umd.js +4 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -395,6 +395,7 @@ Return:
|
|
|
395
395
|
- `actions.setValue()`: `(name: String, value: Any, options?: { shouldDirty?: Boolean, shouldTouched?: Boolean }) => void` [Example](#set-value)
|
|
396
396
|
- `actions.setError()`: `(name: String, error: Any) => void` [Example](#set-field-error)
|
|
397
397
|
- `actions.setFieldState()`: `(name: String, property: String, value: Any) => void` [Example](#set-field-states)
|
|
398
|
+
- `actions.setFormState()`: `(name: String, value: Any) => void`
|
|
398
399
|
- `actions.triggerFieldBlur()`: `(name: String, value?: Any) => void`
|
|
399
400
|
- `actions.resetFieldState()`: `(name: String) => void`
|
|
400
401
|
- `actions.resetField()`: `(name: String) => void`
|
|
@@ -420,7 +421,7 @@ Generic props:
|
|
|
420
421
|
|
|
421
422
|
- `name`
|
|
422
423
|
- `defaultValue`
|
|
423
|
-
- `render({name, value, onChange, onBlur,
|
|
424
|
+
- `render({name, value, onChange, onBlur, fieldState})`
|
|
424
425
|
|
|
425
426
|
## useController
|
|
426
427
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react");var
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react");var oe={exports:{}},Q={};/**
|
|
2
2
|
* @license React
|
|
3
3
|
* react-jsx-runtime.production.js
|
|
4
4
|
*
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* This source code is licensed under the MIT license found in the
|
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
|
9
|
-
*/var ie;function
|
|
9
|
+
*/var ie;function Se(){if(ie)return Q;ie=1;var s=Symbol.for("react.transitional.element"),u=Symbol.for("react.fragment");function i(f,h,E){var g=null;if(E!==void 0&&(g=""+E),h.key!==void 0&&(g=""+h.key),"key"in h){E={};for(var m in h)m!=="key"&&(E[m]=h[m])}else E=h;return h=E.ref,{$$typeof:s,type:f,key:g,ref:h!==void 0?h:null,props:E}}return Q.Fragment=u,Q.jsx=i,Q.jsxs=i,Q}var K={};/**
|
|
10
10
|
* @license React
|
|
11
11
|
* react-jsx-runtime.development.js
|
|
12
12
|
*
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
*
|
|
15
15
|
* This source code is licensed under the MIT license found in the
|
|
16
16
|
* LICENSE file in the root directory of this source tree.
|
|
17
|
-
*/var fe;function
|
|
17
|
+
*/var fe;function Ce(){return fe||(fe=1,process.env.NODE_ENV!=="production"&&function(){function s(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===D?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case C:return"Fragment";case x:return"Profiler";case O:return"StrictMode";case te:return"Suspense";case se:return"SuspenseList";case z:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case a:return"Portal";case J:return(e.displayName||"Context")+".Provider";case q:return(e._context.displayName||"Context")+".Consumer";case re:var l=e.render;return e=e.displayName,e||(e=l.displayName||l.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ne:return l=e.displayName||null,l!==null?l:s(e.type)||"Memo";case P:l=e._payload,e=e._init;try{return s(e(l))}catch{}}return null}function u(e){return""+e}function i(e){try{u(e);var l=!1}catch{l=!0}if(l){l=console;var k=l.error,F=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return k.call(l,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",F),u(e)}}function f(e){if(e===C)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===P)return"<...>";try{var l=s(e);return l?"<"+l+">":"<...>"}catch{return"<...>"}}function h(){var e=W.A;return e===null?null:e.getOwner()}function E(){return Error("react-stack-top-frame")}function g(e){if($.call(e,"key")){var l=Object.getOwnPropertyDescriptor(e,"key").get;if(l&&l.isReactWarning)return!1}return e.key!==void 0}function m(e,l){function k(){G||(G=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",l))}k.isReactWarning=!0,Object.defineProperty(e,"key",{get:k,configurable:!0})}function R(){var e=s(this.type);return H[e]||(H[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function S(e,l,k,F,j,_,B,I){return k=_.ref,e={$$typeof:c,type:e,key:l,props:_,_owner:j},(k!==void 0?k:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:R}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:B}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:I}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function b(e,l,k,F,j,_,B,I){var w=l.children;if(w!==void 0)if(F)if(M(w)){for(F=0;F<w.length;F++)d(w[F]);Object.freeze&&Object.freeze(w)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else d(w);if($.call(l,"key")){w=s(e);var V=Object.keys(l).filter(function(ue){return ue!=="key"});F=0<V.length?"{key: someKey, "+V.join(": ..., ")+": ...}":"{key: someKey}",Z[w+F]||(V=0<V.length?"{"+V.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
|
|
18
18
|
let props = %s;
|
|
19
19
|
<%s {...props} />
|
|
20
20
|
React keys must be passed directly to JSX without using spread:
|
|
21
21
|
let props = %s;
|
|
22
|
-
<%s key={someKey} {...props} />`,p,y,N,y),Z[y+p]=!0)}if(y=null,R!==void 0&&(l(R),y=""+R),g(o)&&(l(o.key),y=""+o.key),"key"in o){R={};for(var j in o)j!=="key"&&(R[j]=o[j])}else R=o;return y&&k(R,typeof e=="function"?e.displayName||e.name||"Unknown":e),F(e,y,_,O,E(),R,B,I)}function m(e){typeof e=="object"&&e!==null&&e.$$typeof===c&&e._store&&(e._store.validated=1)}var a=t,c=Symbol.for("react.transitional.element"),d=Symbol.for("react.portal"),b=Symbol.for("react.fragment"),A=Symbol.for("react.strict_mode"),x=Symbol.for("react.profiler"),M=Symbol.for("react.consumer"),oe=Symbol.for("react.context"),q=Symbol.for("react.forward_ref"),ee=Symbol.for("react.suspense"),re=Symbol.for("react.suspense_list"),te=Symbol.for("react.memo"),J=Symbol.for("react.lazy"),P=Symbol.for("react.activity"),z=Symbol.for("react.client.reference"),V=a.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,$=Object.prototype.hasOwnProperty,W=Array.isArray,D=console.createTask?console.createTask:function(){return null};a={"react-stack-bottom-frame":function(e){return e()}};var G,H={},X=a["react-stack-bottom-frame"].bind(a,h)(),S=D(i(h)),Z={};K.Fragment=b,K.jsx=function(e,o,R,p,O){var _=1e4>V.recentlyCreatedOwnerStacks++;return f(e,o,R,!1,p,O,_?Error("react-stack-top-frame"):X,_?D(i(e)):S)},K.jsxs=function(e,o,R,p,O){var _=1e4>V.recentlyCreatedOwnerStacks++;return f(e,o,R,!0,p,O,_?Error("react-stack-top-frame"):X,_?D(i(e)):S)}}()),K}var be;function Ce(){return be||(be=1,process.env.NODE_ENV==="production"?ue.exports=ke():ue.exports=ve()),ue.exports}var de=Ce();const C=()=>{},Ee=t.createContext({ref:null,watch:C,actions:{reset:C,resetField:C,setValue:C,getValues:C,getErrors:C,getFieldStates:C,getFormStates:C,setError:C,clearError:C,clearErrors:C,checkValidity:C,getNumberFields:C,getFieldValidity:C,getDefaultValues:C,setFieldState:C,resetFieldState:C,getControlledFields:C},registerController:C,registerHookWatcher:C,lastReloadedAt:C,loadFormValues:C,getWatchValue:C,channels:{}}),le=()=>t.useContext(Ee),Se=({id:s,control:u,method:l,action:i,children:E,onSubmit:h=()=>{},onInput:g=()=>{},onChange:k=()=>{},onBlur:v=()=>{},onReset:F=()=>{},numberFields:f=[],className:m,...a})=>(t.useEffect(()=>{const c=u.channels.subscribe("onChange",k),d=u.channels.subscribe("onBlur",v);return()=>{c(),d()}},[u.lastReloadedAt]),de.jsx(Ee.Provider,{value:u,children:de.jsx("form",{id:s,ref:u.ref,action:i,method:l,className:m,onInput:g,onSubmit:c=>{l||c.preventDefault();const d=u.loadFormValues();h(d)},onChange:c=>{const d=c.target.name;!d||u.actions.getControlledFields().has(d)||u.actions.setValue(d,c.target.value)},onBlur:c=>{const d=c.target.name;if(!d||u.actions.getControlledFields().has(d))return;const b=c.target.value;u.channels.publish("onBlur",d,b,u.actions.getValues())},onReset:c=>{u.actions.reset(),F(c)},...a,children:E},u.lastReloadedAt)})),ge=({control:s,name:u,compute:l})=>{const{getWatchValue:i,registerHookWatcher:E}=s||le(),h=i({name:u,compute:l}),[g,k]=t.useState(h);return t.useEffect(()=>{const v=E({name:u,compute:l,value:g,setValue:k});return()=>v.forEach(F=>F())},[]),g},me=({name:s,defaultValue:u})=>{const{actions:l,registerController:i,channels:E}=le(),h=t.useRef(),g=l.getDefaultValues()[s]||u||"",[k,v]=t.useState(g),F=ge({name:`fieldStates.${s}`}),f=t.useCallback((a,{shouldDirty:c=!0,shouldOnChange:d=!0}={})=>{var A,x;let b=a;(A=a==null?void 0:a.target)!=null&&A.value&&(b=a.target.value),(x=a==null?void 0:a.target)!=null&&x.checked&&(b=a.target.checked+""),v(b),l.setValue(s,b,{shouldDirty:c,shouldOnChange:d})},[l.setValue]),m=t.useCallback(a=>{const c=l.getValues(),d=a??c[s];E.publish("onBlur",s,d,c)},[]);return t.useEffect(()=>i(s,v),[]),{ref:h,name:s,defaultValue:g,value:k,onChange:f,onBlur:m,fieldState:F}},pe=({name:s,defaultValue:u,render:l=({ref:i,name:E,defaultValue:h,value:g,onChange:k,onBlur:v,fieldState:F})=>null})=>{const i=me({name:s,defaultValue:u});return l(i)},ye=["errors","fieldStates","formState"],ae=(s={},u="")=>u.split(".").reduce((l,i)=>l&&l[i]!==void 0?l[i]:void 0,s),we=(s={},u="",l)=>{let i=s;const E=u.split(".");return E.forEach((h,g)=>{g<E.length-1&&(i[h]||(i[h]={}),g===E.length-2&&(i[h]={...i[h]}),i=i[h]),i[h]=l}),s},U=s=>ye.some(u=>s.startsWith(u))?s:"values."+s,Fe=["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],he=s=>{typeof s.setCustomValidity=="function"&&s.setCustomValidity("");let u=s.validity,l=Fe.find(i=>u[i]);if(l)return{type:l,message:s.validationMessage}};class Te{constructor(){this.events=new Map,this.watchEvents=new Map}getWatchEvents(){return this.watchEvents}getEvents(){return this.events}subscribe(u,l){return this.events.has(u)||this.events.set(u,new Set),this.events.get(u).add(l),()=>{var i;return(i=this.events.get(u))==null?void 0:i.delete(l)}}subscribeWatch(u,l){this.watchEvents.has(u)||(this.watchEvents.set(u,new Set),this.watchEvents.get(u).add(l))}publish(u,...l){this.events.forEach((i,E)=>{u.includes(E)&&i.forEach(h=>h(...l))}),this.watchEvents.forEach((i,E)=>{u.includes(E)&&i.forEach(h=>h(...l))})}reset(){this.events.clear(),this.watchEvents.clear()}}const _e=()=>{const s=t.useRef(new Te),u=t.useCallback((k,...v)=>{s.current.publish(k,...v)},[]),l=t.useCallback((k,v)=>s.current.subscribe(k,v),[]),i=t.useCallback((k,v)=>{s.current.subscribeWatch(k,v)},[]),E=t.useCallback(()=>s.current.getEvents(),[]),h=t.useCallback(()=>s.current.getWatchEvents(),[]),g=t.useCallback(()=>{s.current.reset()},[]);return{publish:u,subscribe:l,reset:g,getEvents:E,subscribeWatch:i,getWatchEvents:h}},Ae=()=>{const[s,u]=t.useState(),l=t.useCallback(()=>u(new Date().toString()),[]);return[s,l]},Oe=()=>{const[,s]=t.useState({});return t.useCallback(()=>s({}),[])},Pe=({channels:s,getValues:u,getErrors:l,getFieldStates:i,getFormState:E})=>{const h=Oe(),g=t.useCallback(({name:f,compute:m})=>{if(typeof m=="function")return m(u());if(Array.isArray(f)){const a={};return f.forEach(c=>{a[c]=g({name:c})}),a}return ae({...u(),errors:{...l()},formState:{...E()},fieldStates:{...i()}},f)},[]),k=t.useCallback(f=>{if(!f)return s.subscribeWatch("values",()=>h()),u();if(typeof f=="string"){const m=U(f);return s.subscribeWatch(m,()=>h()),g({name:f})}if(Array.isArray(f)){const m={};return f.forEach(a=>{const c=U(a);s.subscribeWatch(c,()=>h()),m[a]=g({name:a})}),{...m}}throw new Error("Parameters of watch must be string or array of string")},[]),v=t.useCallback(({name:f,compute:m,setValue:a})=>{if(typeof m=="function")return[s.subscribe("values",()=>{const d=g({compute:m});a(d)})];if(!f)return[s.subscribe("values",()=>{a(u())})];if(typeof f=="string"){const c=U(f);return[s.subscribe(c,()=>{const b=g({name:f});a(b)})]}if(Array.isArray(f)){const c=g({name:f}),d=[];return f.forEach(b=>{const A=U(b),x=s.subscribe(A,()=>{const M=g({name:b});c[b]=M,a({...c})});d.push(x)}),d}throw new Error("Parameters of name must be string or array of string or compute must be a function")},[]),F=t.useCallback((f,m)=>{if(!f)return s.subscribe("values",m);if(typeof f=="string"){const a=U(f);return s.subscribe(a,m)}if(Array.isArray(f)){const a={},c=[];return f.forEach(d=>{const b=U(d),A=s.subscribe(b,()=>{a[d]=g({name:d}),m({...a})});c.push(A)}),c}throw new Error("Parameters of name must be string or array of string")},[s]);return{watch:k,registerHookWatcher:v,getWatchValue:g,subscribe:F}},ce={isDirty:!1,isTouched:!1,error:null},je=[],xe={},Ne=({numberFields:s=je,defaultValues:u=xe,shouldUnRegister:l=!1,shouldConvertNumber:i=!1}={})=>{const[E,h]=Ae(),g=t.useRef(),k=t.useRef(!1),v=t.useRef(!1),F=t.useRef(s),f=t.useRef(new Map),m=t.useRef({}),a=t.useRef({}),c=t.useRef({...u}),d=t.useRef({...u}),b=_e(),A=t.useCallback(()=>{a.current=Object.keys(d.current).reduce((r,n)=>({...r,[n]:{...ce}}),{})},[]),x=t.useCallback((r={})=>{d.current={...d.current,...r},c.current={...d.current},f.current.forEach((n,w)=>{n(d.current[w])}),k.current=!1,m.current={},F.current=s,f.current=new Map,b.reset(),A(),s.length>0&&(i=!0),h()},[]),M=t.useCallback(()=>{const r=Object.fromEntries(new FormData(g.current));return f.current.forEach((w,T)=>{r[T]=c.current[T]}),i&&F.current.forEach(w=>r.hasOwnProperty(w)&&(r[w]=Number(r[w])||0)),{...c.current,...r}},[]),oe=t.useCallback(()=>!!Object.values($()).find(r=>r.isDirty),[]),q=t.useCallback(()=>!!Object.values(V()).find(r=>!!r),[]),ee=t.useCallback(r=>he(r.target),[]),re=t.useCallback(()=>d.current,[]),te=t.useCallback(()=>F.current,[]),J=t.useCallback(()=>f.current,[]),P=t.useCallback((r,n)=>n?Array.isArray(n)?n.reduce((w,T)=>({...w,[T]:ae(r,T)}),{}):ae(r,n):{...r},[]),z=t.useCallback(r=>P(c.current,r),[P]),V=t.useCallback(r=>P(m.current,r),[P]),$=t.useCallback(r=>P(a.current,r),[P]),W=t.useCallback(r=>P({isDirty:k.current,isError:v.current,errorFields:Object.keys(m.current).filter(n=>!!m.current[n]),dirtyFields:Object.keys(a.current).filter(n=>a.current[n].isDirty),touchedFields:Object.keys(a.current).filter(n=>a.current[n].isTouched)},r),[P]),{watch:D,registerHookWatcher:G,getWatchValue:H,subscribe:X}=Pe({channels:b,getValues:z,getErrors:V,getFieldStates:$,getFormState:W}),S=t.useCallback((r,n,w)=>{const T=a.current[r]||{...ce};ae(T,n)!==w&&(we(a.current,`${r}.${n}`,w),b.publish(`fieldStates.${r}.${n}`,w),n==="error"&&b.publish("formState.errorFields",W("errorFields")),n==="isDirty"&&b.publish("formState.dirtyFields",W("dirtyFields")),n==="isTouched"&&b.publish("formState.touchedFields",W("touchedFields")))},[]),Z=t.useCallback(r=>{S(r,"isDirty",!1),S(r,"isTouched",!1),S(r,"error",null)},[S]),e=t.useCallback((r,n)=>{if(m.current[r]===n)return;m.current[r]=n,S(r,"error",n),b.publish(`errors.${r}`,n);const T=q();v.current!==T&&(v.current=T,b.publish("formState.isError",T))},[S]),o=t.useCallback(r=>{if(!m.current[r])return;m.current[r]=null,S(r,"error",null),b.publish(`errors.${r}`,null);const n=q();v.current!==n&&(v.current=n,b.publish("formState.isError",n))},[S]),R=t.useCallback(()=>{if(Object.keys(m.current)===0)return;Object.keys(m.current).forEach(n=>o(n)),m.current={};const r=q();v.current!==r&&(v.current=r,b.publish("formState.isError",r))},[]),p=t.useCallback(r=>{const n=he(r.target);n?e(r.target.name,n):o(r.target.name)},[e,o]),O=t.useCallback((r,n,{shouldDirty:w=!0,shouldOnChange:T=!0}={})=>{if(n===c.current[r])return;i&&F.current.includes(r)&&(n=Number(n)||void 0),S(r,"isTouched",!0);const ne=n!==d.current[r];w&&a.current[r].isDirty!==ne&&S(r,"isDirty",ne);const Y=oe();k.current!==Y&&(k.current=Y,b.publish("formState.isDirty",Y)),c.current[r]=n;const L=f.current.get(r);L&&L(n),b.publish(`values.${r}`,n,{shouldDirty:w,shouldOnChange:T}),T&&b.publish("onChange",r,n,c.current)},[S]),_=t.useCallback((r,n)=>(f.current.set(r,n),a.current[r]={...ce},()=>{l&&f.current.delete(r)}),[]),B=t.useCallback((r,{keepError:n,keepDirty:w,keepTouched:T,keepCustomState:ne,defaultValue:Y})=>{const L=f.current.get(r);if(!L)throw new Error(`Cannot reset "${r}" because it's uncontrolled field`);d.current[r]=Y,c.current[r]=Y,L&&L(Y),n||o(r),w||S(r,"isDirty",!1),T||S(r,"isTouched",!1)},[o,S]),I=t.useCallback((r,n=j.getValues(r))=>{b.publish("onBlur",r,n,j.getValues())},[]),y=t.useCallback(r=>b.subscribe("onChange",r),[]),N=t.useCallback(r=>b.subscribe("onBlur",r),[]),j=t.useMemo(()=>({subscribe:X,reset:x,resetField:B,setValue:O,getValues:z,getErrors:V,getFieldStates:$,getFormState:W,setError:e,clearError:o,clearErrors:R,checkValidity:p,getNumberFields:te,getFieldValidity:ee,getDefaultValues:re,setFieldState:S,triggerFieldBlur:I,resetFieldState:Z,getControlledFields:J,subscribeChange:y,subscribeBlur:N,getEvents:b.getEvents,getWatchEvents:b.getWatchEvents}),[X,x,B,O,z,V,$,W,e,o,R,p,te,ee,re,S,Z,I,J,y,N]),se=t.useMemo(()=>({ref:g,watch:D,actions:j,registerController:_,registerHookWatcher:G,lastReloadedAt:E,loadFormValues:M,getWatchValue:H,channels:b}),[g,D,j,_,G,E,M,H,b]),Re=t.useMemo(()=>({control:se,actions:j,watch:D}),[E,se,j,D]);return t.useLayoutEffect(()=>{if([...g.current.querySelectorAll("[name]")].forEach(n=>{!n.defaultValue&&!f.current.has(n.name)&&d.current[n.name]&&(n.defaultValue=d.current[n.name]),n.type==="number"&&!F.current.includes(n.name)&&F.current.push(n.name)}),g.current){const n=M();c.current={...n},d.current={...n}}},[E]),t.useLayoutEffect(()=>{A()},[]),Re};exports.Controller=pe;exports.Form=Se;exports.useController=me;exports.useForm=Ne;exports.useFormContext=le;exports.useWatch=ge;
|
|
22
|
+
<%s key={someKey} {...props} />`,F,w,V,w),Z[w+F]=!0)}if(w=null,k!==void 0&&(i(k),w=""+k),g(l)&&(i(l.key),w=""+l.key),"key"in l){k={};for(var N in l)N!=="key"&&(k[N]=l[N])}else k=l;return w&&m(k,typeof e=="function"?e.displayName||e.name||"Unknown":e),S(e,w,_,j,h(),k,B,I)}function d(e){typeof e=="object"&&e!==null&&e.$$typeof===c&&e._store&&(e._store.validated=1)}var o=t,c=Symbol.for("react.transitional.element"),a=Symbol.for("react.portal"),C=Symbol.for("react.fragment"),O=Symbol.for("react.strict_mode"),x=Symbol.for("react.profiler"),q=Symbol.for("react.consumer"),J=Symbol.for("react.context"),re=Symbol.for("react.forward_ref"),te=Symbol.for("react.suspense"),se=Symbol.for("react.suspense_list"),ne=Symbol.for("react.memo"),P=Symbol.for("react.lazy"),z=Symbol.for("react.activity"),D=Symbol.for("react.client.reference"),W=o.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,$=Object.prototype.hasOwnProperty,M=Array.isArray,Y=console.createTask?console.createTask:function(){return null};o={"react-stack-bottom-frame":function(e){return e()}};var G,H={},X=o["react-stack-bottom-frame"].bind(o,E)(),p=Y(f(E)),Z={};K.Fragment=C,K.jsx=function(e,l,k,F,j){var _=1e4>W.recentlyCreatedOwnerStacks++;return b(e,l,k,!1,F,j,_?Error("react-stack-top-frame"):X,_?Y(f(e)):p)},K.jsxs=function(e,l,k,F,j){var _=1e4>W.recentlyCreatedOwnerStacks++;return b(e,l,k,!0,F,j,_?Error("react-stack-top-frame"):X,_?Y(f(e)):p)}}()),K}var be;function ye(){return be||(be=1,process.env.NODE_ENV==="production"?oe.exports=Se():oe.exports=Ce()),oe.exports}var de=ye();const v=()=>{},me=t.createContext({ref:null,watch:v,actions:{reset:v,resetField:v,setValue:v,getValues:v,getErrors:v,getFieldStates:v,getFormStates:v,setError:v,clearError:v,clearErrors:v,checkValidity:v,getNumberFields:v,getFieldValidity:v,getDefaultValues:v,setFieldState:v,resetFieldState:v,getControlledFields:v},registerController:v,registerHookWatcher:v,lastReloadedAt:v,loadFormValues:v,getWatchValue:v,channels:{}}),le=()=>t.useContext(me),pe=({id:s,control:u,method:i,action:f,children:h,onSubmit:E=()=>{},onInput:g=()=>{},onChange:m=()=>{},onBlur:R=()=>{},onReset:S=()=>{},numberFields:b=[],className:d,...o})=>(t.useEffect(()=>{const c=u.channels.subscribe("onChange",m),a=u.channels.subscribe("onBlur",R);return()=>{c(),a()}},[u.lastReloadedAt]),de.jsx(me.Provider,{value:u,children:de.jsx("form",{id:s,ref:u.ref,action:f,method:i,className:d,onInput:g,onSubmit:c=>{i||c.preventDefault();const a=u.loadFormValues();E(a)},onChange:c=>{const a=c.target.name;!a||u.actions.getControlledFields().has(a)||u.actions.setValue(a,c.target.value)},onBlur:c=>{const a=c.target.name;if(!a||u.actions.getControlledFields().has(a))return;const C=c.target.value;u.channels.publish("onBlur",a,C,u.actions.getValues())},onReset:c=>{u.actions.reset(),S(c)},...o,children:h},u.lastReloadedAt)})),Re=({control:s,name:u,compute:i})=>{const{getWatchValue:f,registerHookWatcher:h}=s||le(),E=f({name:u,compute:i}),[g,m]=t.useState(E);return t.useEffect(()=>{const R=h({name:u,compute:i,value:g,setValue:m});return()=>R.forEach(S=>S())},[]),g},ke=({name:s,defaultValue:u})=>{const{actions:i,registerController:f,channels:h}=le(),E=t.useRef(),g=i.getDefaultValues()[s]||u||"",[m,R]=t.useState(g),S=Re({name:`fieldStates.${s}`}),b=t.useCallback((o,{shouldDirty:c=!0,shouldOnChange:a=!0}={})=>{var O,x;let C=o;(O=o==null?void 0:o.target)!=null&&O.value&&(C=o.target.value),(x=o==null?void 0:o.target)!=null&&x.checked&&(C=o.target.checked+""),R(C),i.setValue(s,C,{shouldDirty:c,shouldOnChange:a})},[i.setValue]),d=t.useCallback(o=>{const c=i.getValues(),a=o??c[s];h.publish("onBlur",s,a,c)},[]);return t.useEffect(()=>f(s,R),[]),{ref:E,name:s,defaultValue:g,value:m,onChange:b,onBlur:d,fieldState:S}},Fe=({name:s,defaultValue:u,render:i=({ref:f,name:h,defaultValue:E,value:g,onChange:m,onBlur:R,fieldState:S})=>null})=>{const f=ke({name:s,defaultValue:u});return i(f)},we=["errors","fieldStates","formState"],ee=(s={},u="")=>u.split(".").reduce((i,f)=>i&&i[f]!==void 0?i[f]:void 0,s),he=(s={},u="",i)=>{let f=s;const h=u.split(".");return h.forEach((E,g)=>{g<h.length-1&&(f[E]||(f[E]={}),g===h.length-2&&(f[E]={...f[E]}),f=f[E]),f[E]=i}),s},U=s=>we.some(u=>s.startsWith(u))?s:"values."+s,Te=["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],Ee=s=>{typeof s.setCustomValidity=="function"&&s.setCustomValidity("");let u=s.validity,i=Te.find(f=>u[f]);if(i)return{type:i,message:s.validationMessage}};class _e{constructor(){this.events=new Map,this.watchEvents=new Map}getWatchEvents(){return this.watchEvents}getEvents(){return this.events}subscribe(u,i){return this.events.has(u)||this.events.set(u,new Set),this.events.get(u).add(i),()=>{var f;return(f=this.events.get(u))==null?void 0:f.delete(i)}}subscribeWatch(u,i){this.watchEvents.has(u)||(this.watchEvents.set(u,new Set),this.watchEvents.get(u).add(i))}publish(u,...i){this.events.forEach((f,h)=>{u.includes(h)&&f.forEach(E=>E(...i))}),this.watchEvents.forEach((f,h)=>{u.includes(h)&&f.forEach(E=>E(...i))})}reset(){this.events.clear(),this.watchEvents.clear()}}const Ae=()=>{const s=t.useRef(new _e),u=t.useCallback((m,...R)=>{s.current.publish(m,...R)},[]),i=t.useCallback((m,R)=>s.current.subscribe(m,R),[]),f=t.useCallback((m,R)=>{s.current.subscribeWatch(m,R)},[]),h=t.useCallback(()=>s.current.getEvents(),[]),E=t.useCallback(()=>s.current.getWatchEvents(),[]),g=t.useCallback(()=>{s.current.reset()},[]);return{publish:u,subscribe:i,reset:g,getEvents:h,subscribeWatch:f,getWatchEvents:E}},Oe=()=>{const[s,u]=t.useState(),i=t.useCallback(()=>u(new Date().toString()),[]);return[s,i]},Pe=()=>{const[,s]=t.useState({});return t.useCallback(()=>s({}),[])},je=({channels:s,getValues:u,getErrors:i,getFieldStates:f,getFormState:h})=>{const E=Pe(),g=t.useCallback(({name:b,compute:d})=>{if(typeof d=="function")return d(u());if(Array.isArray(b)){const o={};return b.forEach(c=>{o[c]=g({name:c})}),o}return ee({...u(),errors:{...i()},formState:{...h()},fieldStates:{...f()}},b)},[]),m=t.useCallback(b=>{if(!b)return s.subscribeWatch("values",()=>E()),u();if(typeof b=="string"){const d=U(b);return s.subscribeWatch(d,()=>E()),g({name:b})}if(Array.isArray(b)){const d={};return b.forEach(o=>{const c=U(o);s.subscribeWatch(c,()=>E()),d[o]=g({name:o})}),{...d}}throw new Error("Parameters of watch must be string or array of string")},[]),R=t.useCallback(({name:b,compute:d,setValue:o})=>{if(typeof d=="function")return[s.subscribe("values",()=>{const a=g({compute:d});o(a)})];if(!b)return[s.subscribe("values",()=>{o(u())})];if(typeof b=="string"){const c=U(b);return[s.subscribe(c,()=>{const C=g({name:b});o(C)})]}if(Array.isArray(b)){const c=g({name:b}),a=[];return b.forEach(C=>{const O=U(C),x=s.subscribe(O,()=>{const q=g({name:C});c[C]=q,o({...c})});a.push(x)}),a}throw new Error("Parameters of name must be string or array of string or compute must be a function")},[]),S=t.useCallback((b,d)=>{if(!b)return s.subscribe("values",d);if(typeof b=="string"){const o=U(b);return s.subscribe(o,d)}if(Array.isArray(b)){const o={},c=[];return b.forEach(a=>{const C=U(a),O=s.subscribe(C,()=>{o[a]=g({name:a}),d({...o})});c.push(O)}),c}throw new Error("Parameters of name must be string or array of string")},[s]);return{watch:m,registerHookWatcher:R,getWatchValue:g,subscribe:S}},ge={lastReset:null,isDirty:!1,isError:!1,errorFields:[],dirtyFields:[],touchedFields:[]},ce={isDirty:!1,isTouched:!1,error:null},xe=[],Ne={},Ve=({numberFields:s=xe,defaultValues:u=Ne,shouldUnRegister:i=!1,shouldConvertNumber:f=!1}={})=>{const[h,E]=Oe(),g=t.useRef(),m=t.useRef(s),R=t.useRef(new Map),S=t.useRef({}),b=t.useRef({}),d=t.useRef({...ge}),o=t.useRef({...u}),c=t.useRef({...u}),a=Ae(),C=t.useCallback(()=>{b.current=Object.keys(c.current).reduce((r,n)=>({...r,[n]:{...ce}}),{})},[]),O=t.useCallback((r={})=>{c.current={...c.current,...r},o.current={...c.current},R.current.forEach((n,y)=>{n(c.current[y])}),S.current={},d.current={...ge},m.current=s,R.current=new Map,a.reset(),C(),s.length>0&&(f=!0),E()},[]),x=t.useCallback(()=>{const r=Object.fromEntries(new FormData(g.current));return R.current.forEach((y,T)=>{r[T]=o.current[T]}),f&&m.current.forEach(y=>r.hasOwnProperty(y)&&(r[y]=Number(r[y])||0)),{...o.current,...r}},[]),q=t.useCallback(()=>!!Object.values(W()).find(r=>r.isDirty),[]),J=t.useCallback(()=>!!Object.values(D()).find(r=>!!r),[]),re=t.useCallback(r=>Ee(r.target),[]),te=t.useCallback(()=>c.current,[]),se=t.useCallback(()=>m.current,[]),ne=t.useCallback(()=>R.current,[]),P=t.useCallback((r,n)=>n?Array.isArray(n)?n.reduce((y,T)=>({...y,[T]:ee(r,T)}),{}):ee(r,n):{...r},[]),z=t.useCallback(r=>P(o.current,r),[P]),D=t.useCallback(r=>P(S.current,r),[P]),W=t.useCallback(r=>P(b.current,r),[P]),$=t.useCallback(r=>P({...d.current,lastReset:h},r),[P,h]),{watch:M,registerHookWatcher:Y,getWatchValue:G,subscribe:H}=je({channels:a,getValues:z,getErrors:D,getFieldStates:W,getFormState:$}),X=t.useCallback((r,n)=>{const y=d.current;ee(y,r)!==n&&(he(d.current,r,n),a.publish(`formState.${r}`,n))},[]),p=t.useCallback((r,n,y)=>{const T=b.current[r]||{...ce};ee(T,n)!==y&&(he(b.current,`${r}.${n}`,y),a.publish(`fieldStates.${r}.${n}`,y),n==="error"&&(d.current.errorFields=Object.keys(S.current).filter(A=>!!S.current[A]),a.publish("formState.errorFields",d.current.errorFields)),n==="isDirty"&&(d.current.dirtyFields=Object.keys(b.current).filter(A=>b.current[A].isDirty),a.publish("formState.dirtyFields",d.current.dirtyFields)),n==="isTouched"&&(d.current.touchedFields=Object.keys(b.current).filter(A=>b.current[A].isTouched),a.publish("formState.touchedFields",d.current.touchedFields)))},[]),Z=t.useCallback(r=>{p(r,"isDirty",!1),p(r,"isTouched",!1),p(r,"error",null)},[p]),e=t.useCallback((r,n)=>{if(S.current[r]===n)return;S.current[r]=n,p(r,"error",n),a.publish(`errors.${r}`,n);const T=J();d.current.isError!==T&&(d.current.isError=T,a.publish("formState.isError",T))},[p]),l=t.useCallback(r=>{if(!S.current[r])return;S.current[r]=null,p(r,"error",null),a.publish(`errors.${r}`,null);const n=J();d.current.isError!==n&&(d.current.isError=n,a.publish("formState.isError",n))},[p]),k=t.useCallback(()=>{if(Object.keys(S.current)===0)return;Object.keys(S.current).forEach(n=>l(n)),S.current={};const r=J();d.current.isError!==r&&(d.current.isError=r,a.publish("formState.isError",r))},[]),F=t.useCallback(r=>{const n=Ee(r.target);n?e(r.target.name,n):l(r.target.name)},[e,l]),j=t.useCallback((r,n,{shouldDirty:y=!0,shouldOnChange:T=!0}={})=>{if(n===o.current[r])return;f&&m.current.includes(r)&&(n=Number(n)||void 0),p(r,"isTouched",!0);const ae=n!==c.current[r];y&&b.current[r].isDirty!==ae&&p(r,"isDirty",ae);const A=q();d.current.isDirty!==A&&(d.current.isDirty=A,a.publish("formState.isDirty",A)),o.current[r]=n;const L=R.current.get(r);L&&L(n),a.publish(`values.${r}`,n,{shouldDirty:y,shouldOnChange:T}),T&&a.publish("onChange",r,n,o.current)},[p]),_=t.useCallback((r,n)=>(R.current.set(r,n),b.current[r]={...ce},()=>{i&&R.current.delete(r)}),[]),B=t.useCallback((r,{keepError:n,keepDirty:y,keepTouched:T,keepCustomState:ae,defaultValue:A})=>{const L=R.current.get(r);if(!L)throw new Error(`Cannot reset "${r}" because it's uncontrolled field`);c.current[r]=A,o.current[r]=A,L&&L(A),n||l(r),y||p(r,"isDirty",!1),T||p(r,"isTouched",!1)},[l,p]),I=t.useCallback((r,n=N.getValues(r))=>{a.publish("onBlur",r,n,N.getValues())},[]),w=t.useCallback(r=>a.subscribe("onChange",r),[]),V=t.useCallback(r=>a.subscribe("onBlur",r),[]),N=t.useMemo(()=>({subscribe:H,reset:O,resetField:B,setValue:j,getValues:z,getErrors:D,getFieldStates:W,getFormState:$,setError:e,clearError:l,clearErrors:k,checkValidity:F,getNumberFields:se,getFieldValidity:re,getDefaultValues:te,setFieldState:p,triggerFieldBlur:I,resetFieldState:Z,getControlledFields:ne,subscribeChange:w,subscribeBlur:V,setFormState:X,getEvents:a.getEvents,getWatchEvents:a.getWatchEvents}),[H,O,B,j,z,D,W,$,e,l,k,F,se,re,te,p,Z,I,ne,w,V,X]),ue=t.useMemo(()=>({ref:g,watch:M,actions:N,registerController:_,registerHookWatcher:Y,lastReloadedAt:h,loadFormValues:x,getWatchValue:G,channels:a}),[g,M,N,_,Y,h,x,G,a]),ve=t.useMemo(()=>({control:ue,actions:N,watch:M}),[h,ue,N,M]);return t.useLayoutEffect(()=>{if([...g.current.querySelectorAll("[name]")].forEach(n=>{!n.defaultValue&&!R.current.has(n.name)&&c.current[n.name]&&(n.defaultValue=c.current[n.name]),n.type==="number"&&!m.current.includes(n.name)&&m.current.push(n.name)}),g.current){const n=x();o.current={...n},c.current={...n}}},[h]),t.useLayoutEffect(()=>{C()},[]),ve};exports.Controller=Fe;exports.Form=pe;exports.useController=ke;exports.useForm=Ve;exports.useFormContext=le;exports.useWatch=Re;
|