react-simple-formkit 2.2.5 → 2.2.6

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.
@@ -19,4 +19,4 @@
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} />`,F,w,V,w),Q[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),C(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"),y=Symbol.for("react.fragment"),O=Symbol.for("react.strict_mode"),x=Symbol.for("react.profiler"),J=Symbol.for("react.consumer"),z=Symbol.for("react.context"),te=Symbol.for("react.forward_ref"),se=Symbol.for("react.suspense"),ne=Symbol.for("react.suspense_list"),ue=Symbol.for("react.memo"),P=Symbol.for("react.lazy"),G=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 H,X={},Z=o["react-stack-bottom-frame"].bind(o,E)(),p=Y(f(E)),Q={};ee.Fragment=y,ee.jsx=function(e,l,k,F,j){var _=1e4>W.recentlyCreatedOwnerStacks++;return b(e,l,k,!1,F,j,_?Error("react-stack-top-frame"):Z,_?Y(f(e)):p)},ee.jsxs=function(e,l,k,F,j){var _=1e4>W.recentlyCreatedOwnerStacks++;return b(e,l,k,!0,F,j,_?Error("react-stack-top-frame"):Z,_?Y(f(e)):p)}}()),ee}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 S=()=>{},me=t.createContext({ref:null,watch:S,actions:{reset:S,resetField:S,setValue:S,getValues:S,getErrors:S,getFieldStates:S,getFormStates:S,setError:S,clearError:S,clearErrors:S,checkValidity:S,getNumberFields:S,getFieldValidity:S,getDefaultValues:S,setFieldState:S,resetFieldState:S,getControlledFields:S},registerController:S,registerHookWatcher:S,lastReloadedAt:S,loadFormValues:S,getWatchValue:S,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:C=()=>{},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 y=c.target.value;u.channels.publish("onBlur",a,y,u.actions.getValues())},onReset:c=>{u.actions.reset(),C(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(C=>C())},[]),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),C=Re({name:`fieldStates.${s}`}),b=t.useCallback((o,{shouldDirty:c=!0,shouldOnChange:a=!0}={})=>{var O,x;let y=o;(O=o==null?void 0:o.target)!=null&&O.value&&(y=o.target.value),(x=o==null?void 0:o.target)!=null&&x.checked&&(y=o.target.checked+""),R(y),i.setValue(s,y,{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:C}},Fe=({name:s,defaultValue:u,render:i=({ref:f,name:h,defaultValue:E,value:g,onChange:m,onBlur:R,fieldState:C})=>null})=>{const f=ke({name:s,defaultValue:u});return i(f)},we=["errors","fieldStates","formState"],re=(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},q=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 re({...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=q(b);return s.subscribeWatch(d,()=>E()),g({name:b})}if(Array.isArray(b)){const d={};return b.forEach(o=>{const c=q(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=q(b);return[s.subscribe(c,()=>{const y=g({name:b});o(y)})]}if(Array.isArray(b)){const c=g({name:b}),a=[];return b.forEach(y=>{const O=q(y),x=s.subscribe(O,()=>{const J=g({name:y});c[y]=J,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")},[]),C=t.useCallback((b,d)=>{if(!b)return s.subscribe("values",d);if(typeof b=="string"){const o=q(b);return s.subscribe(o,d)}if(Array.isArray(b)){const o={},c=[];return b.forEach(a=>{const y=q(a),O=s.subscribe(y,()=>{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:C}},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),C=t.useRef({}),b=t.useRef({}),d=t.useRef({...ge}),o=t.useRef({...u}),c=t.useRef({...u}),a=Ae(),y=t.useCallback(r=>{b.current=Object.keys(c.current).reduce((n,v)=>({...n,[v]:{...r?{}:b.current[v]||{},...ce}}),{})},[]),O=t.useCallback((r={},{clearCustomFormStates:n=!1,clearCustomFieldStates:v=!1})=>{c.current={...c.current,...r},o.current={...c.current},R.current.forEach((T,L)=>{T(c.current[L])}),C.current={},d.current={...n?{}:d.current,...ge},m.current=s,R.current=new Map,a.reset(),y(v),s.length>0&&(f=!0),E()},[]),x=t.useCallback(()=>{const r=Object.fromEntries(new FormData(g.current));return R.current.forEach((v,T)=>{r[T]=o.current[T]}),f&&m.current.forEach(v=>r.hasOwnProperty(v)&&(r[v]=Number(r[v])||0)),{...o.current,...r}},[]),J=t.useCallback(()=>!!Object.values(W()).find(r=>r.isDirty),[]),z=t.useCallback(()=>!!Object.values(D()).find(r=>!!r),[]),te=t.useCallback(r=>Ee(r.target),[]),se=t.useCallback(()=>c.current,[]),ne=t.useCallback(()=>m.current,[]),ue=t.useCallback(()=>R.current,[]),P=t.useCallback((r,n)=>n?Array.isArray(n)?n.reduce((v,T)=>({...v,[T]:re(r,T)}),{}):re(r,n):{...r},[]),G=t.useCallback(r=>P(o.current,r),[P]),D=t.useCallback(r=>P(C.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:H,subscribe:X}=je({channels:a,getValues:G,getErrors:D,getFieldStates:W,getFormState:$}),Z=t.useCallback((r,n)=>{const v=d.current;re(v,r)!==n&&(he(d.current,r,n),a.publish(`formState.${r}`,n))},[]),p=t.useCallback((r,n,v)=>{const T=b.current[r]||{...ce};re(T,n)!==v&&(he(b.current,`${r}.${n}`,v),a.publish(`fieldStates.${r}.${n}`,v),n==="error"&&(d.current.errorFields=Object.keys(C.current).filter(A=>!!C.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)))},[]),Q=t.useCallback(r=>{p(r,"isDirty",!1),p(r,"isTouched",!1),p(r,"error",null)},[p]),e=t.useCallback((r,n)=>{if(C.current[r]===n)return;C.current[r]=n,p(r,"error",n),a.publish(`errors.${r}`,n);const T=z();d.current.isError!==T&&(d.current.isError=T,a.publish("formState.isError",T))},[p]),l=t.useCallback(r=>{if(!C.current[r])return;C.current[r]=null,p(r,"error",null),a.publish(`errors.${r}`,null);const n=z();d.current.isError!==n&&(d.current.isError=n,a.publish("formState.isError",n))},[p]),k=t.useCallback(()=>{if(Object.keys(C.current)===0)return;Object.keys(C.current).forEach(n=>l(n)),C.current={};const r=z();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:v=!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 L=n!==c.current[r];v&&b.current[r].isDirty!==L&&p(r,"isDirty",L);const A=J();d.current.isDirty!==A&&(d.current.isDirty=A,a.publish("formState.isDirty",A)),o.current[r]=n;const U=R.current.get(r);U&&U(n),a.publish(`values.${r}`,n,{shouldDirty:v,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:v,keepTouched:T,keepCustomState:L,defaultValue:A})=>{const U=R.current.get(r);if(!U)throw new Error(`Cannot reset "${r}" because it's uncontrolled field`);c.current[r]=A,o.current[r]=A,U&&U(A),n||l(r),v||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:X,reset:O,resetField:B,setValue:j,getValues:G,getErrors:D,getFieldStates:W,getFormState:$,setError:e,clearError:l,clearErrors:k,checkValidity:F,getNumberFields:ne,getFieldValidity:te,getDefaultValues:se,setFieldState:p,triggerFieldBlur:I,resetFieldState:Q,getControlledFields:ue,subscribeChange:w,subscribeBlur:V,setFormState:Z,getEvents:a.getEvents,getWatchEvents:a.getWatchEvents}),[X,O,B,j,G,D,W,$,e,l,k,F,ne,te,se,p,Q,I,ue,w,V,Z]),ae=t.useMemo(()=>({ref:g,watch:M,actions:N,registerController:_,registerHookWatcher:Y,lastReloadedAt:h,loadFormValues:x,getWatchValue:H,channels:a}),[g,M,N,_,Y,h,x,H,a]),ve=t.useMemo(()=>({control:ae,actions:N,watch:M}),[h,ae,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(()=>{y()},[]),ve};exports.Controller=Fe;exports.Form=pe;exports.useController=ke;exports.useForm=Ve;exports.useFormContext=le;exports.useWatch=Re;
22
+ <%s key={someKey} {...props} />`,F,w,V,w),Q[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),C(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"),y=Symbol.for("react.fragment"),O=Symbol.for("react.strict_mode"),x=Symbol.for("react.profiler"),J=Symbol.for("react.consumer"),z=Symbol.for("react.context"),te=Symbol.for("react.forward_ref"),se=Symbol.for("react.suspense"),ne=Symbol.for("react.suspense_list"),ue=Symbol.for("react.memo"),P=Symbol.for("react.lazy"),G=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 H,X={},Z=o["react-stack-bottom-frame"].bind(o,E)(),p=Y(f(E)),Q={};ee.Fragment=y,ee.jsx=function(e,l,k,F,j){var _=1e4>W.recentlyCreatedOwnerStacks++;return b(e,l,k,!1,F,j,_?Error("react-stack-top-frame"):Z,_?Y(f(e)):p)},ee.jsxs=function(e,l,k,F,j){var _=1e4>W.recentlyCreatedOwnerStacks++;return b(e,l,k,!0,F,j,_?Error("react-stack-top-frame"):Z,_?Y(f(e)):p)}}()),ee}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 S=()=>{},me=t.createContext({ref:null,watch:S,actions:{reset:S,resetField:S,setValue:S,getValues:S,getErrors:S,getFieldStates:S,getFormStates:S,setError:S,clearError:S,clearErrors:S,checkValidity:S,getNumberFields:S,getFieldValidity:S,getDefaultValues:S,setFieldState:S,resetFieldState:S,getControlledFields:S},registerController:S,registerHookWatcher:S,lastReloadedAt:S,loadFormValues:S,getWatchValue:S,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:C=()=>{},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 y=c.target.value;u.channels.publish("onBlur",a,y,u.actions.getValues())},onReset:c=>{u.actions.reset(),C(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(C=>C())},[]),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),C=Re({name:`fieldStates.${s}`}),b=t.useCallback((o,{shouldDirty:c=!0,shouldOnChange:a=!0}={})=>{var O,x;let y=o;(O=o==null?void 0:o.target)!=null&&O.value&&(y=o.target.value),(x=o==null?void 0:o.target)!=null&&x.checked&&(y=o.target.checked+""),R(y),i.setValue(s,y,{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:C}},Fe=({name:s,defaultValue:u,render:i=({ref:f,name:h,defaultValue:E,value:g,onChange:m,onBlur:R,fieldState:C})=>null})=>{const f=ke({name:s,defaultValue:u});return i(f)},we=["errors","fieldStates","formState"],re=(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},q=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 re({...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=q(b);return s.subscribeWatch(d,()=>E()),g({name:b})}if(Array.isArray(b)){const d={};return b.forEach(o=>{const c=q(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=q(b);return[s.subscribe(c,()=>{const y=g({name:b});o(y)})]}if(Array.isArray(b)){const c=g({name:b}),a=[];return b.forEach(y=>{const O=q(y),x=s.subscribe(O,()=>{const J=g({name:y});c[y]=J,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")},[]),C=t.useCallback((b,d)=>{if(!b)return s.subscribe("values",d);if(typeof b=="string"){const o=q(b);return s.subscribe(o,d)}if(Array.isArray(b)){const o={},c=[];return b.forEach(a=>{const y=q(a),O=s.subscribe(y,()=>{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:C}},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),C=t.useRef({}),b=t.useRef({}),d=t.useRef({...ge}),o=t.useRef({...u}),c=t.useRef({...u}),a=Ae(),y=t.useCallback(r=>{b.current=Object.keys(c.current).reduce((n,v)=>({...n,[v]:{...r?{}:b.current[v]||{},...ce}}),{})},[]),O=t.useCallback((r={},{clearCustomFormStates:n=!1,clearCustomFieldStates:v=!1}={})=>{c.current={...c.current,...r},o.current={...c.current},R.current.forEach((T,L)=>{T(c.current[L])}),C.current={},d.current={...n?{}:d.current,...ge},m.current=s,R.current=new Map,a.reset(),y(v),s.length>0&&(f=!0),E()},[]),x=t.useCallback(()=>{const r=Object.fromEntries(new FormData(g.current));return R.current.forEach((v,T)=>{r[T]=o.current[T]}),f&&m.current.forEach(v=>r.hasOwnProperty(v)&&(r[v]=Number(r[v])||0)),{...o.current,...r}},[]),J=t.useCallback(()=>!!Object.values(W()).find(r=>r.isDirty),[]),z=t.useCallback(()=>!!Object.values(D()).find(r=>!!r),[]),te=t.useCallback(r=>Ee(r.target),[]),se=t.useCallback(()=>c.current,[]),ne=t.useCallback(()=>m.current,[]),ue=t.useCallback(()=>R.current,[]),P=t.useCallback((r,n)=>n?Array.isArray(n)?n.reduce((v,T)=>({...v,[T]:re(r,T)}),{}):re(r,n):{...r},[]),G=t.useCallback(r=>P(o.current,r),[P]),D=t.useCallback(r=>P(C.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:H,subscribe:X}=je({channels:a,getValues:G,getErrors:D,getFieldStates:W,getFormState:$}),Z=t.useCallback((r,n)=>{const v=d.current;re(v,r)!==n&&(he(d.current,r,n),a.publish(`formState.${r}`,n))},[]),p=t.useCallback((r,n,v)=>{const T=b.current[r]||{...ce};re(T,n)!==v&&(he(b.current,`${r}.${n}`,v),a.publish(`fieldStates.${r}.${n}`,v),n==="error"&&(d.current.errorFields=Object.keys(C.current).filter(A=>!!C.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)))},[]),Q=t.useCallback(r=>{p(r,"isDirty",!1),p(r,"isTouched",!1),p(r,"error",null)},[p]),e=t.useCallback((r,n)=>{if(C.current[r]===n)return;C.current[r]=n,p(r,"error",n),a.publish(`errors.${r}`,n);const T=z();d.current.isError!==T&&(d.current.isError=T,a.publish("formState.isError",T))},[p]),l=t.useCallback(r=>{if(!C.current[r])return;C.current[r]=null,p(r,"error",null),a.publish(`errors.${r}`,null);const n=z();d.current.isError!==n&&(d.current.isError=n,a.publish("formState.isError",n))},[p]),k=t.useCallback(()=>{if(Object.keys(C.current)===0)return;Object.keys(C.current).forEach(n=>l(n)),C.current={};const r=z();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:v=!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 L=n!==c.current[r];v&&b.current[r].isDirty!==L&&p(r,"isDirty",L);const A=J();d.current.isDirty!==A&&(d.current.isDirty=A,a.publish("formState.isDirty",A)),o.current[r]=n;const U=R.current.get(r);U&&U(n),a.publish(`values.${r}`,n,{shouldDirty:v,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:v,keepTouched:T,keepCustomState:L,defaultValue:A})=>{const U=R.current.get(r);if(!U)throw new Error(`Cannot reset "${r}" because it's uncontrolled field`);c.current[r]=A,o.current[r]=A,U&&U(A),n||l(r),v||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:X,reset:O,resetField:B,setValue:j,getValues:G,getErrors:D,getFieldStates:W,getFormState:$,setError:e,clearError:l,clearErrors:k,checkValidity:F,getNumberFields:ne,getFieldValidity:te,getDefaultValues:se,setFieldState:p,triggerFieldBlur:I,resetFieldState:Q,getControlledFields:ue,subscribeChange:w,subscribeBlur:V,setFormState:Z,getEvents:a.getEvents,getWatchEvents:a.getWatchEvents}),[X,O,B,j,G,D,W,$,e,l,k,F,ne,te,se,p,Q,I,ue,w,V,Z]),ae=t.useMemo(()=>({ref:g,watch:M,actions:N,registerController:_,registerHookWatcher:Y,lastReloadedAt:h,loadFormValues:x,getWatchValue:H,channels:a}),[g,M,N,_,Y,h,x,H,a]),ve=t.useMemo(()=>({control:ae,actions:N,watch:M}),[h,ae,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(()=>{y()},[]),ve};exports.Controller=Fe;exports.Form=pe;exports.useController=ke;exports.useForm=Ve;exports.useFormContext=le;exports.useWatch=Re;
@@ -558,7 +558,7 @@ const Ve = () => {
558
558
  [S]: { ...r ? {} : f.current[S] || {}, ...fe }
559
559
  }), {});
560
560
  }, []), C = b(
561
- (r = {}, { clearCustomFormStates: s = !1, clearCustomFieldStates: S = !1 }) => {
561
+ (r = {}, { clearCustomFormStates: s = !1, clearCustomFieldStates: S = !1 } = {}) => {
562
562
  c.current = { ...c.current, ...r }, u.current = { ...c.current }, v.current.forEach((k, U) => {
563
563
  k(c.current[U]);
564
564
  }), y.current = {}, d.current = { ...s ? {} : d.current, ...Se }, m.current = t, v.current = /* @__PURE__ */ new Map(), o.reset(), F(S), t.length > 0 && (l = !0), E();
@@ -19,4 +19,4 @@
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} />`,F,T,W,T),re[T+F]=!0)}if(T=null,k!==void 0&&(i(k),T=""+k),m(l)&&(i(l.key),T=""+l.key),"key"in l){k={};for(var x in l)x!=="key"&&(k[x]=l[x])}else k=l;return T&&g(k,typeof e=="function"?e.displayName||e.name||"Unknown":e),C(e,T,_,N,h(),k,U,J)}function b(e){typeof e=="object"&&e!==null&&e.$$typeof===u&&e._store&&(e._store.validated=1)}var c=r,u=Symbol.for("react.transitional.element"),o=Symbol.for("react.portal"),y=Symbol.for("react.fragment"),P=Symbol.for("react.strict_mode"),V=Symbol.for("react.profiler"),Q=Symbol.for("react.consumer"),K=Symbol.for("react.context"),ne=Symbol.for("react.forward_ref"),ae=Symbol.for("react.suspense"),oe=Symbol.for("react.suspense_list"),ce=Symbol.for("react.memo"),j=Symbol.for("react.lazy"),q=Symbol.for("react.activity"),Y=Symbol.for("react.client.reference"),D=c.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,B=Object.prototype.hasOwnProperty,I=Array.isArray,L=console.createTask?console.createTask:function(){return null};c={"react-stack-bottom-frame":function(e){return e()}};var $,ee={},te=c["react-stack-bottom-frame"].bind(c,E)(),p=L(f(E)),re={};X.Fragment=y,X.jsx=function(e,l,k,F,N){var _=1e4>D.recentlyCreatedOwnerStacks++;return d(e,l,k,!1,F,N,_?Error("react-stack-top-frame"):te,_?L(f(e)):p)},X.jsxs=function(e,l,k,F,N){var _=1e4>D.recentlyCreatedOwnerStacks++;return d(e,l,k,!0,F,N,_?Error("react-stack-top-frame"):te,_?L(f(e)):p)}}()),X}var be;function ye(){return be||(be=1,process.env.NODE_ENV==="production"?se.exports=Se():se.exports=Ce()),se.exports}var he=ye();const v=()=>{},Ee=r.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=()=>r.useContext(Ee),pe=({id:s,control:a,method:i,action:f,children:h,onSubmit:E=()=>{},onInput:m=()=>{},onChange:g=()=>{},onBlur:R=()=>{},onReset:C=()=>{},numberFields:d=[],className:b,...c})=>(r.useEffect(()=>{const u=a.channels.subscribe("onChange",g),o=a.channels.subscribe("onBlur",R);return()=>{u(),o()}},[a.lastReloadedAt]),he.jsx(Ee.Provider,{value:a,children:he.jsx("form",{id:s,ref:a.ref,action:f,method:i,className:b,onInput:m,onSubmit:u=>{i||u.preventDefault();const o=a.loadFormValues();E(o)},onChange:u=>{const o=u.target.name;!o||a.actions.getControlledFields().has(o)||a.actions.setValue(o,u.target.value)},onBlur:u=>{const o=u.target.name;if(!o||a.actions.getControlledFields().has(o))return;const y=u.target.value;a.channels.publish("onBlur",o,y,a.actions.getValues())},onReset:u=>{a.actions.reset(),C(u)},...c,children:h},a.lastReloadedAt)})),me=({control:s,name:a,compute:i})=>{const{getWatchValue:f,registerHookWatcher:h}=s||le(),E=f({name:a,compute:i}),[m,g]=r.useState(E);return r.useEffect(()=>{const R=h({name:a,compute:i,value:m,setValue:g});return()=>R.forEach(C=>C())},[]),m},ge=({name:s,defaultValue:a})=>{const{actions:i,registerController:f,channels:h}=le(),E=r.useRef(),m=i.getDefaultValues()[s]||a||"",[g,R]=r.useState(m),C=me({name:`fieldStates.${s}`}),d=r.useCallback((c,{shouldDirty:u=!0,shouldOnChange:o=!0}={})=>{var P,V;let y=c;(P=c==null?void 0:c.target)!=null&&P.value&&(y=c.target.value),(V=c==null?void 0:c.target)!=null&&V.checked&&(y=c.target.checked+""),R(y),i.setValue(s,y,{shouldDirty:u,shouldOnChange:o})},[i.setValue]),b=r.useCallback(c=>{const u=i.getValues(),o=c??u[s];h.publish("onBlur",s,o,u)},[]);return r.useEffect(()=>f(s,R),[]),{ref:E,name:s,defaultValue:m,value:g,onChange:d,onBlur:b,fieldState:C}},Fe=({name:s,defaultValue:a,render:i=({ref:f,name:h,defaultValue:E,value:m,onChange:g,onBlur:R,fieldState:C})=>null})=>{const f=ge({name:s,defaultValue:a});return i(f)},Te=["errors","fieldStates","formState"],Z=(s={},a="")=>a.split(".").reduce((i,f)=>i&&i[f]!==void 0?i[f]:void 0,s),Re=(s={},a="",i)=>{let f=s;const h=a.split(".");return h.forEach((E,m)=>{m<h.length-1&&(f[E]||(f[E]={}),m===h.length-2&&(f[E]={...f[E]}),f=f[E]),f[E]=i}),s},M=s=>Te.some(a=>s.startsWith(a))?s:"values."+s,we=["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],ke=s=>{typeof s.setCustomValidity=="function"&&s.setCustomValidity("");let a=s.validity,i=we.find(f=>a[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(a,i){return this.events.has(a)||this.events.set(a,new Set),this.events.get(a).add(i),()=>{var f;return(f=this.events.get(a))==null?void 0:f.delete(i)}}subscribeWatch(a,i){this.watchEvents.has(a)||(this.watchEvents.set(a,new Set),this.watchEvents.get(a).add(i))}publish(a,...i){this.events.forEach((f,h)=>{a.includes(h)&&f.forEach(E=>E(...i))}),this.watchEvents.forEach((f,h)=>{a.includes(h)&&f.forEach(E=>E(...i))})}reset(){this.events.clear(),this.watchEvents.clear()}}const Ae=()=>{const s=r.useRef(new _e),a=r.useCallback((g,...R)=>{s.current.publish(g,...R)},[]),i=r.useCallback((g,R)=>s.current.subscribe(g,R),[]),f=r.useCallback((g,R)=>{s.current.subscribeWatch(g,R)},[]),h=r.useCallback(()=>s.current.getEvents(),[]),E=r.useCallback(()=>s.current.getWatchEvents(),[]),m=r.useCallback(()=>{s.current.reset()},[]);return{publish:a,subscribe:i,reset:m,getEvents:h,subscribeWatch:f,getWatchEvents:E}},Oe=()=>{const[s,a]=r.useState(),i=r.useCallback(()=>a(new Date().toString()),[]);return[s,i]},Pe=()=>{const[,s]=r.useState({});return r.useCallback(()=>s({}),[])},je=({channels:s,getValues:a,getErrors:i,getFieldStates:f,getFormState:h})=>{const E=Pe(),m=r.useCallback(({name:d,compute:b})=>{if(typeof b=="function")return b(a());if(Array.isArray(d)){const c={};return d.forEach(u=>{c[u]=m({name:u})}),c}return Z({...a(),errors:{...i()},formState:{...h()},fieldStates:{...f()}},d)},[]),g=r.useCallback(d=>{if(!d)return s.subscribeWatch("values",()=>E()),a();if(typeof d=="string"){const b=M(d);return s.subscribeWatch(b,()=>E()),m({name:d})}if(Array.isArray(d)){const b={};return d.forEach(c=>{const u=M(c);s.subscribeWatch(u,()=>E()),b[c]=m({name:c})}),{...b}}throw new Error("Parameters of watch must be string or array of string")},[]),R=r.useCallback(({name:d,compute:b,setValue:c})=>{if(typeof b=="function")return[s.subscribe("values",()=>{const o=m({compute:b});c(o)})];if(!d)return[s.subscribe("values",()=>{c(a())})];if(typeof d=="string"){const u=M(d);return[s.subscribe(u,()=>{const y=m({name:d});c(y)})]}if(Array.isArray(d)){const u=m({name:d}),o=[];return d.forEach(y=>{const P=M(y),V=s.subscribe(P,()=>{const Q=m({name:y});u[y]=Q,c({...u})});o.push(V)}),o}throw new Error("Parameters of name must be string or array of string or compute must be a function")},[]),C=r.useCallback((d,b)=>{if(!d)return s.subscribe("values",b);if(typeof d=="string"){const c=M(d);return s.subscribe(c,b)}if(Array.isArray(d)){const c={},u=[];return d.forEach(o=>{const y=M(o),P=s.subscribe(y,()=>{c[o]=m({name:o}),b({...c})});u.push(P)}),u}throw new Error("Parameters of name must be string or array of string")},[s]);return{watch:g,registerHookWatcher:R,getWatchValue:m,subscribe:C}},ve={lastReset:null,isDirty:!1,isError:!1,errorFields:[],dirtyFields:[],touchedFields:[]},ie={isDirty:!1,isTouched:!1,error:null},Ne=[],Ve={},xe=({numberFields:s=Ne,defaultValues:a=Ve,shouldUnRegister:i=!1,shouldConvertNumber:f=!1}={})=>{const[h,E]=Oe(),m=r.useRef(),g=r.useRef(s),R=r.useRef(new Map),C=r.useRef({}),d=r.useRef({}),b=r.useRef({...ve}),c=r.useRef({...a}),u=r.useRef({...a}),o=Ae(),y=r.useCallback(t=>{d.current=Object.keys(u.current).reduce((n,S)=>({...n,[S]:{...t?{}:d.current[S]||{},...ie}}),{})},[]),P=r.useCallback((t={},{clearCustomFormStates:n=!1,clearCustomFieldStates:S=!1})=>{u.current={...u.current,...t},c.current={...u.current},R.current.forEach((w,z)=>{w(u.current[z])}),C.current={},b.current={...n?{}:b.current,...ve},g.current=s,R.current=new Map,o.reset(),y(S),s.length>0&&(f=!0),E()},[]),V=r.useCallback(()=>{const t=Object.fromEntries(new FormData(m.current));return R.current.forEach((S,w)=>{t[w]=c.current[w]}),f&&g.current.forEach(S=>t.hasOwnProperty(S)&&(t[S]=Number(t[S])||0)),{...c.current,...t}},[]),Q=r.useCallback(()=>!!Object.values(D()).find(t=>t.isDirty),[]),K=r.useCallback(()=>!!Object.values(Y()).find(t=>!!t),[]),ne=r.useCallback(t=>ke(t.target),[]),ae=r.useCallback(()=>u.current,[]),oe=r.useCallback(()=>g.current,[]),ce=r.useCallback(()=>R.current,[]),j=r.useCallback((t,n)=>n?Array.isArray(n)?n.reduce((S,w)=>({...S,[w]:Z(t,w)}),{}):Z(t,n):{...t},[]),q=r.useCallback(t=>j(c.current,t),[j]),Y=r.useCallback(t=>j(C.current,t),[j]),D=r.useCallback(t=>j(d.current,t),[j]),B=r.useCallback(t=>j({...b.current,lastReset:h},t),[j,h]),{watch:I,registerHookWatcher:L,getWatchValue:$,subscribe:ee}=je({channels:o,getValues:q,getErrors:Y,getFieldStates:D,getFormState:B}),te=r.useCallback((t,n)=>{const S=b.current;Z(S,t)!==n&&(Re(b.current,t,n),o.publish(`formState.${t}`,n))},[]),p=r.useCallback((t,n,S)=>{const w=d.current[t]||{...ie};Z(w,n)!==S&&(Re(d.current,`${t}.${n}`,S),o.publish(`fieldStates.${t}.${n}`,S),n==="error"&&(b.current.errorFields=Object.keys(C.current).filter(A=>!!C.current[A]),o.publish("formState.errorFields",b.current.errorFields)),n==="isDirty"&&(b.current.dirtyFields=Object.keys(d.current).filter(A=>d.current[A].isDirty),o.publish("formState.dirtyFields",b.current.dirtyFields)),n==="isTouched"&&(b.current.touchedFields=Object.keys(d.current).filter(A=>d.current[A].isTouched),o.publish("formState.touchedFields",b.current.touchedFields)))},[]),re=r.useCallback(t=>{p(t,"isDirty",!1),p(t,"isTouched",!1),p(t,"error",null)},[p]),e=r.useCallback((t,n)=>{if(C.current[t]===n)return;C.current[t]=n,p(t,"error",n),o.publish(`errors.${t}`,n);const w=K();b.current.isError!==w&&(b.current.isError=w,o.publish("formState.isError",w))},[p]),l=r.useCallback(t=>{if(!C.current[t])return;C.current[t]=null,p(t,"error",null),o.publish(`errors.${t}`,null);const n=K();b.current.isError!==n&&(b.current.isError=n,o.publish("formState.isError",n))},[p]),k=r.useCallback(()=>{if(Object.keys(C.current)===0)return;Object.keys(C.current).forEach(n=>l(n)),C.current={};const t=K();b.current.isError!==t&&(b.current.isError=t,o.publish("formState.isError",t))},[]),F=r.useCallback(t=>{const n=ke(t.target);n?e(t.target.name,n):l(t.target.name)},[e,l]),N=r.useCallback((t,n,{shouldDirty:S=!0,shouldOnChange:w=!0}={})=>{if(n===c.current[t])return;f&&g.current.includes(t)&&(n=Number(n)||void 0),p(t,"isTouched",!0);const z=n!==u.current[t];S&&d.current[t].isDirty!==z&&p(t,"isDirty",z);const A=Q();b.current.isDirty!==A&&(b.current.isDirty=A,o.publish("formState.isDirty",A)),c.current[t]=n;const G=R.current.get(t);G&&G(n),o.publish(`values.${t}`,n,{shouldDirty:S,shouldOnChange:w}),w&&o.publish("onChange",t,n,c.current)},[p]),_=r.useCallback((t,n)=>(R.current.set(t,n),d.current[t]={...ie},()=>{i&&R.current.delete(t)}),[]),U=r.useCallback((t,{keepError:n,keepDirty:S,keepTouched:w,keepCustomState:z,defaultValue:A})=>{const G=R.current.get(t);if(!G)throw new Error(`Cannot reset "${t}" because it's uncontrolled field`);u.current[t]=A,c.current[t]=A,G&&G(A),n||l(t),S||p(t,"isDirty",!1),w||p(t,"isTouched",!1)},[l,p]),J=r.useCallback((t,n=x.getValues(t))=>{o.publish("onBlur",t,n,x.getValues())},[]),T=r.useCallback(t=>o.subscribe("onChange",t),[]),W=r.useCallback(t=>o.subscribe("onBlur",t),[]),x=r.useMemo(()=>({subscribe:ee,reset:P,resetField:U,setValue:N,getValues:q,getErrors:Y,getFieldStates:D,getFormState:B,setError:e,clearError:l,clearErrors:k,checkValidity:F,getNumberFields:oe,getFieldValidity:ne,getDefaultValues:ae,setFieldState:p,triggerFieldBlur:J,resetFieldState:re,getControlledFields:ce,subscribeChange:T,subscribeBlur:W,setFormState:te,getEvents:o.getEvents,getWatchEvents:o.getWatchEvents}),[ee,P,U,N,q,Y,D,B,e,l,k,F,oe,ne,ae,p,re,J,ce,T,W,te]),ue=r.useMemo(()=>({ref:m,watch:I,actions:x,registerController:_,registerHookWatcher:L,lastReloadedAt:h,loadFormValues:V,getWatchValue:$,channels:o}),[m,I,x,_,L,h,V,$,o]),We=r.useMemo(()=>({control:ue,actions:x,watch:I}),[h,ue,x,I]);return r.useLayoutEffect(()=>{if([...m.current.querySelectorAll("[name]")].forEach(n=>{!n.defaultValue&&!R.current.has(n.name)&&u.current[n.name]&&(n.defaultValue=u.current[n.name]),n.type==="number"&&!g.current.includes(n.name)&&g.current.push(n.name)}),m.current){const n=V();c.current={...n},u.current={...n}}},[h]),r.useLayoutEffect(()=>{y()},[]),We};O.Controller=Fe,O.Form=pe,O.useController=ge,O.useForm=xe,O.useFormContext=le,O.useWatch=me,Object.defineProperty(O,Symbol.toStringTag,{value:"Module"})});
22
+ <%s key={someKey} {...props} />`,F,T,W,T),re[T+F]=!0)}if(T=null,k!==void 0&&(i(k),T=""+k),m(l)&&(i(l.key),T=""+l.key),"key"in l){k={};for(var x in l)x!=="key"&&(k[x]=l[x])}else k=l;return T&&g(k,typeof e=="function"?e.displayName||e.name||"Unknown":e),C(e,T,_,N,h(),k,U,J)}function b(e){typeof e=="object"&&e!==null&&e.$$typeof===u&&e._store&&(e._store.validated=1)}var c=r,u=Symbol.for("react.transitional.element"),o=Symbol.for("react.portal"),y=Symbol.for("react.fragment"),P=Symbol.for("react.strict_mode"),V=Symbol.for("react.profiler"),Q=Symbol.for("react.consumer"),K=Symbol.for("react.context"),ne=Symbol.for("react.forward_ref"),ae=Symbol.for("react.suspense"),oe=Symbol.for("react.suspense_list"),ce=Symbol.for("react.memo"),j=Symbol.for("react.lazy"),q=Symbol.for("react.activity"),Y=Symbol.for("react.client.reference"),D=c.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,B=Object.prototype.hasOwnProperty,I=Array.isArray,L=console.createTask?console.createTask:function(){return null};c={"react-stack-bottom-frame":function(e){return e()}};var $,ee={},te=c["react-stack-bottom-frame"].bind(c,E)(),p=L(f(E)),re={};X.Fragment=y,X.jsx=function(e,l,k,F,N){var _=1e4>D.recentlyCreatedOwnerStacks++;return d(e,l,k,!1,F,N,_?Error("react-stack-top-frame"):te,_?L(f(e)):p)},X.jsxs=function(e,l,k,F,N){var _=1e4>D.recentlyCreatedOwnerStacks++;return d(e,l,k,!0,F,N,_?Error("react-stack-top-frame"):te,_?L(f(e)):p)}}()),X}var be;function ye(){return be||(be=1,process.env.NODE_ENV==="production"?se.exports=Se():se.exports=Ce()),se.exports}var he=ye();const v=()=>{},Ee=r.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=()=>r.useContext(Ee),pe=({id:s,control:a,method:i,action:f,children:h,onSubmit:E=()=>{},onInput:m=()=>{},onChange:g=()=>{},onBlur:R=()=>{},onReset:C=()=>{},numberFields:d=[],className:b,...c})=>(r.useEffect(()=>{const u=a.channels.subscribe("onChange",g),o=a.channels.subscribe("onBlur",R);return()=>{u(),o()}},[a.lastReloadedAt]),he.jsx(Ee.Provider,{value:a,children:he.jsx("form",{id:s,ref:a.ref,action:f,method:i,className:b,onInput:m,onSubmit:u=>{i||u.preventDefault();const o=a.loadFormValues();E(o)},onChange:u=>{const o=u.target.name;!o||a.actions.getControlledFields().has(o)||a.actions.setValue(o,u.target.value)},onBlur:u=>{const o=u.target.name;if(!o||a.actions.getControlledFields().has(o))return;const y=u.target.value;a.channels.publish("onBlur",o,y,a.actions.getValues())},onReset:u=>{a.actions.reset(),C(u)},...c,children:h},a.lastReloadedAt)})),me=({control:s,name:a,compute:i})=>{const{getWatchValue:f,registerHookWatcher:h}=s||le(),E=f({name:a,compute:i}),[m,g]=r.useState(E);return r.useEffect(()=>{const R=h({name:a,compute:i,value:m,setValue:g});return()=>R.forEach(C=>C())},[]),m},ge=({name:s,defaultValue:a})=>{const{actions:i,registerController:f,channels:h}=le(),E=r.useRef(),m=i.getDefaultValues()[s]||a||"",[g,R]=r.useState(m),C=me({name:`fieldStates.${s}`}),d=r.useCallback((c,{shouldDirty:u=!0,shouldOnChange:o=!0}={})=>{var P,V;let y=c;(P=c==null?void 0:c.target)!=null&&P.value&&(y=c.target.value),(V=c==null?void 0:c.target)!=null&&V.checked&&(y=c.target.checked+""),R(y),i.setValue(s,y,{shouldDirty:u,shouldOnChange:o})},[i.setValue]),b=r.useCallback(c=>{const u=i.getValues(),o=c??u[s];h.publish("onBlur",s,o,u)},[]);return r.useEffect(()=>f(s,R),[]),{ref:E,name:s,defaultValue:m,value:g,onChange:d,onBlur:b,fieldState:C}},Fe=({name:s,defaultValue:a,render:i=({ref:f,name:h,defaultValue:E,value:m,onChange:g,onBlur:R,fieldState:C})=>null})=>{const f=ge({name:s,defaultValue:a});return i(f)},Te=["errors","fieldStates","formState"],Z=(s={},a="")=>a.split(".").reduce((i,f)=>i&&i[f]!==void 0?i[f]:void 0,s),Re=(s={},a="",i)=>{let f=s;const h=a.split(".");return h.forEach((E,m)=>{m<h.length-1&&(f[E]||(f[E]={}),m===h.length-2&&(f[E]={...f[E]}),f=f[E]),f[E]=i}),s},M=s=>Te.some(a=>s.startsWith(a))?s:"values."+s,we=["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],ke=s=>{typeof s.setCustomValidity=="function"&&s.setCustomValidity("");let a=s.validity,i=we.find(f=>a[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(a,i){return this.events.has(a)||this.events.set(a,new Set),this.events.get(a).add(i),()=>{var f;return(f=this.events.get(a))==null?void 0:f.delete(i)}}subscribeWatch(a,i){this.watchEvents.has(a)||(this.watchEvents.set(a,new Set),this.watchEvents.get(a).add(i))}publish(a,...i){this.events.forEach((f,h)=>{a.includes(h)&&f.forEach(E=>E(...i))}),this.watchEvents.forEach((f,h)=>{a.includes(h)&&f.forEach(E=>E(...i))})}reset(){this.events.clear(),this.watchEvents.clear()}}const Ae=()=>{const s=r.useRef(new _e),a=r.useCallback((g,...R)=>{s.current.publish(g,...R)},[]),i=r.useCallback((g,R)=>s.current.subscribe(g,R),[]),f=r.useCallback((g,R)=>{s.current.subscribeWatch(g,R)},[]),h=r.useCallback(()=>s.current.getEvents(),[]),E=r.useCallback(()=>s.current.getWatchEvents(),[]),m=r.useCallback(()=>{s.current.reset()},[]);return{publish:a,subscribe:i,reset:m,getEvents:h,subscribeWatch:f,getWatchEvents:E}},Oe=()=>{const[s,a]=r.useState(),i=r.useCallback(()=>a(new Date().toString()),[]);return[s,i]},Pe=()=>{const[,s]=r.useState({});return r.useCallback(()=>s({}),[])},je=({channels:s,getValues:a,getErrors:i,getFieldStates:f,getFormState:h})=>{const E=Pe(),m=r.useCallback(({name:d,compute:b})=>{if(typeof b=="function")return b(a());if(Array.isArray(d)){const c={};return d.forEach(u=>{c[u]=m({name:u})}),c}return Z({...a(),errors:{...i()},formState:{...h()},fieldStates:{...f()}},d)},[]),g=r.useCallback(d=>{if(!d)return s.subscribeWatch("values",()=>E()),a();if(typeof d=="string"){const b=M(d);return s.subscribeWatch(b,()=>E()),m({name:d})}if(Array.isArray(d)){const b={};return d.forEach(c=>{const u=M(c);s.subscribeWatch(u,()=>E()),b[c]=m({name:c})}),{...b}}throw new Error("Parameters of watch must be string or array of string")},[]),R=r.useCallback(({name:d,compute:b,setValue:c})=>{if(typeof b=="function")return[s.subscribe("values",()=>{const o=m({compute:b});c(o)})];if(!d)return[s.subscribe("values",()=>{c(a())})];if(typeof d=="string"){const u=M(d);return[s.subscribe(u,()=>{const y=m({name:d});c(y)})]}if(Array.isArray(d)){const u=m({name:d}),o=[];return d.forEach(y=>{const P=M(y),V=s.subscribe(P,()=>{const Q=m({name:y});u[y]=Q,c({...u})});o.push(V)}),o}throw new Error("Parameters of name must be string or array of string or compute must be a function")},[]),C=r.useCallback((d,b)=>{if(!d)return s.subscribe("values",b);if(typeof d=="string"){const c=M(d);return s.subscribe(c,b)}if(Array.isArray(d)){const c={},u=[];return d.forEach(o=>{const y=M(o),P=s.subscribe(y,()=>{c[o]=m({name:o}),b({...c})});u.push(P)}),u}throw new Error("Parameters of name must be string or array of string")},[s]);return{watch:g,registerHookWatcher:R,getWatchValue:m,subscribe:C}},ve={lastReset:null,isDirty:!1,isError:!1,errorFields:[],dirtyFields:[],touchedFields:[]},ie={isDirty:!1,isTouched:!1,error:null},Ne=[],Ve={},xe=({numberFields:s=Ne,defaultValues:a=Ve,shouldUnRegister:i=!1,shouldConvertNumber:f=!1}={})=>{const[h,E]=Oe(),m=r.useRef(),g=r.useRef(s),R=r.useRef(new Map),C=r.useRef({}),d=r.useRef({}),b=r.useRef({...ve}),c=r.useRef({...a}),u=r.useRef({...a}),o=Ae(),y=r.useCallback(t=>{d.current=Object.keys(u.current).reduce((n,S)=>({...n,[S]:{...t?{}:d.current[S]||{},...ie}}),{})},[]),P=r.useCallback((t={},{clearCustomFormStates:n=!1,clearCustomFieldStates:S=!1}={})=>{u.current={...u.current,...t},c.current={...u.current},R.current.forEach((w,z)=>{w(u.current[z])}),C.current={},b.current={...n?{}:b.current,...ve},g.current=s,R.current=new Map,o.reset(),y(S),s.length>0&&(f=!0),E()},[]),V=r.useCallback(()=>{const t=Object.fromEntries(new FormData(m.current));return R.current.forEach((S,w)=>{t[w]=c.current[w]}),f&&g.current.forEach(S=>t.hasOwnProperty(S)&&(t[S]=Number(t[S])||0)),{...c.current,...t}},[]),Q=r.useCallback(()=>!!Object.values(D()).find(t=>t.isDirty),[]),K=r.useCallback(()=>!!Object.values(Y()).find(t=>!!t),[]),ne=r.useCallback(t=>ke(t.target),[]),ae=r.useCallback(()=>u.current,[]),oe=r.useCallback(()=>g.current,[]),ce=r.useCallback(()=>R.current,[]),j=r.useCallback((t,n)=>n?Array.isArray(n)?n.reduce((S,w)=>({...S,[w]:Z(t,w)}),{}):Z(t,n):{...t},[]),q=r.useCallback(t=>j(c.current,t),[j]),Y=r.useCallback(t=>j(C.current,t),[j]),D=r.useCallback(t=>j(d.current,t),[j]),B=r.useCallback(t=>j({...b.current,lastReset:h},t),[j,h]),{watch:I,registerHookWatcher:L,getWatchValue:$,subscribe:ee}=je({channels:o,getValues:q,getErrors:Y,getFieldStates:D,getFormState:B}),te=r.useCallback((t,n)=>{const S=b.current;Z(S,t)!==n&&(Re(b.current,t,n),o.publish(`formState.${t}`,n))},[]),p=r.useCallback((t,n,S)=>{const w=d.current[t]||{...ie};Z(w,n)!==S&&(Re(d.current,`${t}.${n}`,S),o.publish(`fieldStates.${t}.${n}`,S),n==="error"&&(b.current.errorFields=Object.keys(C.current).filter(A=>!!C.current[A]),o.publish("formState.errorFields",b.current.errorFields)),n==="isDirty"&&(b.current.dirtyFields=Object.keys(d.current).filter(A=>d.current[A].isDirty),o.publish("formState.dirtyFields",b.current.dirtyFields)),n==="isTouched"&&(b.current.touchedFields=Object.keys(d.current).filter(A=>d.current[A].isTouched),o.publish("formState.touchedFields",b.current.touchedFields)))},[]),re=r.useCallback(t=>{p(t,"isDirty",!1),p(t,"isTouched",!1),p(t,"error",null)},[p]),e=r.useCallback((t,n)=>{if(C.current[t]===n)return;C.current[t]=n,p(t,"error",n),o.publish(`errors.${t}`,n);const w=K();b.current.isError!==w&&(b.current.isError=w,o.publish("formState.isError",w))},[p]),l=r.useCallback(t=>{if(!C.current[t])return;C.current[t]=null,p(t,"error",null),o.publish(`errors.${t}`,null);const n=K();b.current.isError!==n&&(b.current.isError=n,o.publish("formState.isError",n))},[p]),k=r.useCallback(()=>{if(Object.keys(C.current)===0)return;Object.keys(C.current).forEach(n=>l(n)),C.current={};const t=K();b.current.isError!==t&&(b.current.isError=t,o.publish("formState.isError",t))},[]),F=r.useCallback(t=>{const n=ke(t.target);n?e(t.target.name,n):l(t.target.name)},[e,l]),N=r.useCallback((t,n,{shouldDirty:S=!0,shouldOnChange:w=!0}={})=>{if(n===c.current[t])return;f&&g.current.includes(t)&&(n=Number(n)||void 0),p(t,"isTouched",!0);const z=n!==u.current[t];S&&d.current[t].isDirty!==z&&p(t,"isDirty",z);const A=Q();b.current.isDirty!==A&&(b.current.isDirty=A,o.publish("formState.isDirty",A)),c.current[t]=n;const G=R.current.get(t);G&&G(n),o.publish(`values.${t}`,n,{shouldDirty:S,shouldOnChange:w}),w&&o.publish("onChange",t,n,c.current)},[p]),_=r.useCallback((t,n)=>(R.current.set(t,n),d.current[t]={...ie},()=>{i&&R.current.delete(t)}),[]),U=r.useCallback((t,{keepError:n,keepDirty:S,keepTouched:w,keepCustomState:z,defaultValue:A})=>{const G=R.current.get(t);if(!G)throw new Error(`Cannot reset "${t}" because it's uncontrolled field`);u.current[t]=A,c.current[t]=A,G&&G(A),n||l(t),S||p(t,"isDirty",!1),w||p(t,"isTouched",!1)},[l,p]),J=r.useCallback((t,n=x.getValues(t))=>{o.publish("onBlur",t,n,x.getValues())},[]),T=r.useCallback(t=>o.subscribe("onChange",t),[]),W=r.useCallback(t=>o.subscribe("onBlur",t),[]),x=r.useMemo(()=>({subscribe:ee,reset:P,resetField:U,setValue:N,getValues:q,getErrors:Y,getFieldStates:D,getFormState:B,setError:e,clearError:l,clearErrors:k,checkValidity:F,getNumberFields:oe,getFieldValidity:ne,getDefaultValues:ae,setFieldState:p,triggerFieldBlur:J,resetFieldState:re,getControlledFields:ce,subscribeChange:T,subscribeBlur:W,setFormState:te,getEvents:o.getEvents,getWatchEvents:o.getWatchEvents}),[ee,P,U,N,q,Y,D,B,e,l,k,F,oe,ne,ae,p,re,J,ce,T,W,te]),ue=r.useMemo(()=>({ref:m,watch:I,actions:x,registerController:_,registerHookWatcher:L,lastReloadedAt:h,loadFormValues:V,getWatchValue:$,channels:o}),[m,I,x,_,L,h,V,$,o]),We=r.useMemo(()=>({control:ue,actions:x,watch:I}),[h,ue,x,I]);return r.useLayoutEffect(()=>{if([...m.current.querySelectorAll("[name]")].forEach(n=>{!n.defaultValue&&!R.current.has(n.name)&&u.current[n.name]&&(n.defaultValue=u.current[n.name]),n.type==="number"&&!g.current.includes(n.name)&&g.current.push(n.name)}),m.current){const n=V();c.current={...n},u.current={...n}}},[h]),r.useLayoutEffect(()=>{y()},[]),We};O.Controller=Fe,O.Form=pe,O.useController=ge,O.useForm=xe,O.useFormContext=le,O.useWatch=me,Object.defineProperty(O,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-simple-formkit",
3
- "version": "2.2.5",
3
+ "version": "2.2.6",
4
4
  "keywords": [
5
5
  "react formkit",
6
6
  "react ez formkit",