react-simple-formkit 2.2.6 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- (function(O,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],r):(O=typeof globalThis<"u"?globalThis:O||self,r(O.Name={},O.React))})(this,function(O,r){"use strict";var se={exports:{}},H={};/**
1
+ (function(A,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],r):(A=typeof globalThis<"u"?globalThis:A||self,r(A.Name={},A.React))})(this,function(A,r){"use strict";var K={exports:{}},B={};/**
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 fe;function Se(){if(fe)return H;fe=1;var s=Symbol.for("react.transitional.element"),a=Symbol.for("react.fragment");function i(f,h,E){var m=null;if(E!==void 0&&(m=""+E),h.key!==void 0&&(m=""+h.key),"key"in h){E={};for(var g in h)g!=="key"&&(E[g]=h[g])}else E=h;return h=E.ref,{$$typeof:s,type:f,key:m,ref:h!==void 0?h:null,props:E}}return H.Fragment=a,H.jsx=i,H.jsxs=i,H}var X={};/**
9
+ */var fe;function Se(){if(fe)return B;fe=1;var s=Symbol.for("react.transitional.element"),a=Symbol.for("react.fragment");function h(R,g,k){var d=null;if(k!==void 0&&(d=""+k),g.key!==void 0&&(d=""+g.key),"key"in g){k={};for(var C in g)C!=="key"&&(k[C]=g[C])}else k=g;return g=k.ref,{$$typeof:s,type:R,key:d,ref:g!==void 0?g:null,props:k}}return B.Fragment=a,B.jsx=h,B.jsxs=h,B}var L={};/**
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 de;function Ce(){return de||(de=1,process.env.NODE_ENV!=="production"&&function(){function s(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===Y?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case y:return"Fragment";case V:return"Profiler";case P:return"StrictMode";case ae:return"Suspense";case oe:return"SuspenseList";case q: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 o:return"Portal";case K:return(e.displayName||"Context")+".Provider";case Q:return(e._context.displayName||"Context")+".Consumer";case ne:var l=e.render;return e=e.displayName,e||(e=l.displayName||l.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ce:return l=e.displayName||null,l!==null?l:s(e.type)||"Memo";case j:l=e._payload,e=e._init;try{return s(e(l))}catch{}}return null}function a(e){return""+e}function i(e){try{a(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),a(e)}}function f(e){if(e===y)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===j)return"<...>";try{var l=s(e);return l?"<"+l+">":"<...>"}catch{return"<...>"}}function h(){var e=D.A;return e===null?null:e.getOwner()}function E(){return Error("react-stack-top-frame")}function m(e){if(B.call(e,"key")){var l=Object.getOwnPropertyDescriptor(e,"key").get;if(l&&l.isReactWarning)return!1}return e.key!==void 0}function g(e,l){function k(){$||($=!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 ee[e]||(ee[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 C(e,l,k,F,N,_,U,J){return k=_.ref,e={$$typeof:u,type:e,key:l,props:_,_owner:N},(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:U}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:J}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function d(e,l,k,F,N,_,U,J){var T=l.children;if(T!==void 0)if(F)if(I(T)){for(F=0;F<T.length;F++)b(T[F]);Object.freeze&&Object.freeze(T)}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 b(T);if(B.call(l,"key")){T=s(e);var W=Object.keys(l).filter(function(ue){return ue!=="key"});F=0<W.length?"{key: someKey, "+W.join(": ..., ")+": ...}":"{key: someKey}",re[T+F]||(W=0<W.length?"{"+W.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
17
+ */var de;function ye(){return de||(de=1,process.env.NODE_ENV!=="production"&&function(){function s(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===G?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case E:return"Fragment";case V:return"Profiler";case O:return"StrictMode";case ce:return"Suspense";case ue:return"SuspenseList";case q: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 n:return"Portal";case z:return(e.displayName||"Context")+".Provider";case J:return(e._context.displayName||"Context")+".Consumer";case ae:var f=e.render;return e=e.displayName,e||(e=f.displayName||f.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case le:return f=e.displayName||null,f!==null?f:s(e.type)||"Memo";case N:f=e._payload,e=e._init;try{return s(e(f))}catch{}}return null}function a(e){return""+e}function h(e){try{a(e);var f=!1}catch{f=!0}if(f){f=console;var S=f.error,F=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return S.call(f,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",F),a(e)}}function R(e){if(e===E)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===N)return"<...>";try{var f=s(e);return f?"<"+f+">":"<...>"}catch{return"<...>"}}function g(){var e=D.A;return e===null?null:e.getOwner()}function k(){return Error("react-stack-top-frame")}function d(e){if(H.call(e,"key")){var f=Object.getOwnPropertyDescriptor(e,"key").get;if(f&&f.isReactWarning)return!1}return e.key!==void 0}function C(e,f){function S(){ee||(ee=!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)",f))}S.isReactWarning=!0,Object.defineProperty(e,"key",{get:S,configurable:!0})}function p(){var e=s(this.type);return te[e]||(te[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 b(e,f,S,F,x,j,Z,Q){return S=j.ref,e={$$typeof:i,type:e,key:f,props:j,_owner:x},(S!==void 0?S:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:p}):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:Z}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:Q}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function o(e,f,S,F,x,j,Z,Q){var T=f.children;if(T!==void 0)if(F)if($(T)){for(F=0;F<T.length;F++)u(T[F]);Object.freeze&&Object.freeze(T)}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 u(T);if(H.call(f,"key")){T=s(e);var P=Object.keys(f).filter(function(ie){return ie!=="key"});F=0<P.length?"{key: someKey, "+P.join(": ..., ")+": ...}":"{key: someKey}",se[T+F]||(P=0<P.length?"{"+P.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} />`,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,P,T),se[T+F]=!0)}if(T=null,S!==void 0&&(h(S),T=""+S),d(f)&&(h(f.key),T=""+f.key),"key"in f){S={};for(var M in f)M!=="key"&&(S[M]=f[M])}else S=f;return T&&C(S,typeof e=="function"?e.displayName||e.name||"Unknown":e),b(e,T,j,x,g(),S,Z,Q)}function u(e){typeof e=="object"&&e!==null&&e.$$typeof===i&&e._store&&(e._store.validated=1)}var l=r,i=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),E=Symbol.for("react.fragment"),O=Symbol.for("react.strict_mode"),V=Symbol.for("react.profiler"),J=Symbol.for("react.consumer"),z=Symbol.for("react.context"),ae=Symbol.for("react.forward_ref"),ce=Symbol.for("react.suspense"),ue=Symbol.for("react.suspense_list"),le=Symbol.for("react.memo"),N=Symbol.for("react.lazy"),q=Symbol.for("react.activity"),G=Symbol.for("react.client.reference"),D=l.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,H=Object.prototype.hasOwnProperty,$=Array.isArray,X=console.createTask?console.createTask:function(){return null};l={"react-stack-bottom-frame":function(e){return e()}};var ee,te={},re=l["react-stack-bottom-frame"].bind(l,k)(),_=X(R(k)),se={};L.Fragment=E,L.jsx=function(e,f,S,F,x){var j=1e4>D.recentlyCreatedOwnerStacks++;return o(e,f,S,!1,F,x,j?Error("react-stack-top-frame"):re,j?X(R(e)):_)},L.jsxs=function(e,f,S,F,x){var j=1e4>D.recentlyCreatedOwnerStacks++;return o(e,f,S,!0,F,x,j?Error("react-stack-top-frame"):re,j?X(R(e)):_)}}()),L}var be;function pe(){return be||(be=1,process.env.NODE_ENV==="production"?K.exports=Se():K.exports=ye()),K.exports}var Ee=pe();const y=()=>{},ge=r.createContext({ref:null,watch:y,actions:{reset:y,resetField:y,setValue:y,getValues:y,getErrors:y,getFieldStates:y,getFormStates:y,setError:y,clearError:y,clearErrors:y,checkValidity:y,getNumberFields:y,getFieldValidity:y,getDefaultValues:y,setFieldState:y,resetFieldState:y,getControlledFields:y},registerController:y,registerHookWatcher:y,lastReloadedAt:y,loadFormValues:y,getWatchValue:y,channels:{}}),ne=()=>r.useContext(ge),ve=({id:s,control:a,method:h,action:R,children:g,onChange:k,onBlur:d,onSubmit:C=()=>{},onInput:p=()=>{},onReset:b=()=>{},numberFields:o=[],className:u,...l})=>{const i=r.useCallback(n=>{a.ref&&(a.ref.current=n,a.ref.current&&a.initForm())},[a]);return r.useEffect(()=>{let n=()=>{},E=()=>{};return k&&(n=a.channels.subscribe("onChange",k)),d&&(E=a.channels.subscribe("onBlur",d)),()=>{n(),E()}},[a.lastReloadedAt]),Ee.jsx(ge.Provider,{value:a,children:Ee.jsx("form",{id:s,ref:i,action:R,method:h,className:u,onInput:p,onSubmit:n=>{h||n.preventDefault();const E=a.loadFormValues();C(E)},onChange:n=>{const E=n.target.name;!E||a.actions.getControlledFields().has(E)||a.actions.setValue(E,n.target.value)},onBlur:n=>{const E=n.target.name;if(!E||a.actions.getControlledFields().has(E))return;const O=n.target.value;a.channels.publish("onBlur",E,O,a.actions.getValues())},onReset:n=>{a.actions.reset(),b(n)},...l,children:g},a.lastReloadedAt)})},he=({control:s,name:a,compute:h})=>{const{getWatchValue:R,registerHookWatcher:g}=s||ne(),k=R({name:a,compute:h}),[d,C]=r.useState(k);return r.useEffect(()=>g({name:a,compute:h,value:d,setValue:C}),[]),d},me=({name:s,defaultValue:a})=>{const{actions:h,registerController:R,channels:g}=ne(),k=r.useRef(),d=h.getDefaultValues()[s]||a||"",[C,p]=r.useState(d),b=he({name:`fieldStates.${s}`}),o=r.useCallback((l,{shouldDirty:i=!0,shouldOnChange:n=!0}={})=>{var O,V;let E=l;(O=l==null?void 0:l.target)!=null&&O.value&&(E=l.target.value),(V=l==null?void 0:l.target)!=null&&V.checked&&(E=l.target.checked+""),p(E),h.setValue(s,E,{shouldDirty:i,shouldOnChange:n})},[h.setValue]),u=r.useCallback(l=>{const i=h.getValues(),n=l??i[s];g.publish("onBlur",s,n,i)},[]);return r.useEffect(()=>R(s,p),[]),{ref:k,name:s,defaultValue:d,value:C,onChange:o,onBlur:u,fieldState:b}},Fe=({name:s,defaultValue:a,render:h=({ref:R,name:g,defaultValue:k,value:d,onChange:C,onBlur:p,fieldState:b})=>null})=>{const R=me({name:s,defaultValue:a});return h(R)},Te=["errors","fieldStates","formState"],U=(s={},a="")=>a.split(".").reduce((h,R)=>h&&h[R]!==void 0?h[R]:void 0,s),Re=(s={},a="",h)=>{const R={...s};let g=s;const k=a.split(".");return k.forEach((d,C)=>{C<k.length-1?(g[d]||(g[d]={}),R[d]={...g[d]},g=R[d]):g[d]=h}),R},W=s=>Te.some(a=>s.startsWith(a))?s:"values."+s,_e=["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],ke=s=>{typeof s.setCustomValidity=="function"&&s.setCustomValidity("");let a=s.validity,h=_e.find(R=>a[R]);if(h)return{type:h,message:s.validationMessage}},we=()=>{const s=r.useRef(new Map),a=r.useRef(new Map),h=r.useCallback(()=>a.current,[]),R=r.useCallback(()=>s.current,[]),g=r.useCallback(()=>{s.current.clear(),a.current.clear()},[]),k=r.useCallback((b,...o)=>{const u=s.current.get(b),l=a.current.get(b);u&&u.forEach(i=>i(...o)),l&&l.forEach(i=>i(...o)),s.current.forEach((i,n)=>{n!==b&&b.startsWith(n)&&i.forEach(E=>E(...o))}),a.current.forEach((i,n)=>{n!==b&&b.startsWith(n)&&i.forEach(E=>E(...o))})},[]),d=r.useCallback(b=>{s.current.forEach((o,u)=>{u.startsWith(b)&&o.forEach(l=>l())}),a.current.forEach((o,u)=>{u.startsWith(b)&&o.forEach(l=>l())})},[]),C=r.useCallback((b,o)=>(s.current.has(b)||s.current.set(b,new Set),s.current.get(b).add(o),()=>{var u;return(u=s.current.get(b))==null?void 0:u.delete(o)}),[]),p=r.useCallback((b,o)=>{a.current.has(b)||(a.current.set(b,new Set),a.current.get(b).add(o))},[]);return{reset:g,publish:k,subscribe:C,subscribeWatch:p,getEvents:R,getWatchEvents:h,trigger:d}},Ae=()=>{const[s,a]=r.useState(),h=r.useCallback(()=>a(new Date().toString()),[]);return[s,h]},Oe=()=>{const[,s]=r.useState({});return r.useCallback(()=>s({}),[])},je=({channels:s,getValues:a,getErrors:h,getFieldStates:R,getFormState:g})=>{const k=Oe(),d=r.useCallback(({name:o,compute:u})=>{if(typeof u=="function")return u(a());if(Array.isArray(o)){const l={};return o.forEach(i=>{l[i]=d({name:i})}),l}return U({...a(),errors:{...h()},formState:{...g()},fieldStates:{...R()}},o)},[]),C=r.useCallback(o=>{if(!o)return s.subscribeWatch("values",()=>k()),a();if(typeof o=="string"){const u=W(o);return s.subscribeWatch(u,()=>k()),d({name:o})}if(Array.isArray(o)){const u={};return o.forEach(l=>{const i=W(l);s.subscribeWatch(i,()=>k()),u[l]=d({name:l})}),{...u}}throw new Error("Parameters of watch must be string or array of string")},[]),p=r.useCallback(({name:o,compute:u,setValue:l})=>{if(typeof u=="function")return s.subscribe("values",()=>{const n=d({compute:u});l(n)});if(!o)return s.subscribe("values",()=>{l(a())});if(typeof o=="string"){const i=W(o);return s.subscribe(i,()=>{const E=d({name:o});l(E)})}if(Array.isArray(o)){const i=d({name:o}),n=[];return o.forEach(E=>{const O=W(E),V=s.subscribe(O,()=>{const J=d({name:E});i[E]=J,l({...i})});n.push(V)}),()=>n.forEach(E=>E())}throw new Error("Parameters of name must be string or array of string or compute must be a function")},[]),b=r.useCallback((o,u)=>{if(!o)return s.subscribe("values",()=>u(a()));if(["onChange","onBlur"].includes(o))return s.subscribe(o,u);if(typeof o=="string"){const l=W(o);return s.subscribe(l,()=>u(d({name:o})))}if(Array.isArray(o)){const l={},i=[];return o.forEach(n=>{const E=W(n),O=s.subscribe(E,()=>{l[n]=d({name:n}),u({...l})});i.push(O)}),()=>i.forEach(n=>n())}throw new Error("Parameters of name must be string or array of string")},[]);return{watch:C,registerHookWatcher:p,getWatchValue:d,subscribe:b}},Ce={lastReset:null,isDirty:!1,isError:!1,errorFields:[],dirtyFields:[],touchedFields:[]},oe={isDirty:!1,isTouched:!1,error:null},Pe=[],Ne={},xe=({numberFields:s=Pe,defaultValues:a=Ne,shouldUnRegister:h=!1,shouldConvertNumber:R=!1}={})=>{const[g,k]=Ae(),d=r.useRef(),C=r.useRef(s),p=r.useRef(new Map),b=r.useRef({}),o=r.useRef({}),u=r.useRef({...Ce}),l=r.useRef({...a}),i=r.useRef({...a}),n=we(),E=r.useCallback(t=>{o.current=Object.keys(i.current).reduce((c,m)=>({...c,[m]:{...t?{}:o.current[m]||{},...oe}}),{})},[]),O=r.useCallback((t={},{clearCustomFormStates:c=!1,clearCustomFieldStates:m=!1}={})=>{i.current={...i.current,...t},l.current={...i.current},p.current.forEach((v,Y)=>{v(i.current[Y]??"")}),b.current={},u.current={...c?{}:u.current,...Ce},C.current=s,p.current=new Map,n.reset(),E(m),s.length>0&&(R=!0),k()},[]),V=r.useCallback(()=>{const t=Object.fromEntries(new FormData(d.current));return p.current.forEach((m,v)=>{t[v]=l.current[v]}),R&&C.current.forEach(m=>t.hasOwnProperty(m)&&(t[m]=Number(t[m])||0)),{...l.current,...t}},[]),J=r.useCallback(()=>!!Object.values(D()).find(t=>t.isDirty),[]),z=r.useCallback(()=>!!Object.values(G()).find(t=>!!t),[]),ae=r.useCallback(t=>ke(t.target),[]),ce=r.useCallback(()=>i.current,[]),ue=r.useCallback(()=>C.current,[]),le=r.useCallback(()=>p.current,[]),N=r.useCallback((t,c)=>c?Array.isArray(c)?c.reduce((m,v)=>({...m,[v]:U(t,v)}),{}):U(t,c):{...t},[]),q=r.useCallback(t=>N(l.current,t),[N]),G=r.useCallback(t=>N(b.current,t),[N]),D=r.useCallback(t=>N(o.current,t),[N]),H=r.useCallback(t=>N({...u.current,lastReset:g},t),[g]),{watch:$,registerHookWatcher:X,getWatchValue:ee,subscribe:te}=je({channels:n,getValues:q,getErrors:G,getFieldStates:D,getFormState:H}),re=r.useCallback((t,c)=>{const m=u.current;U(m,t)!==c&&(u.current=Re(u.current,t,c),n.publish(`formState.${t}`,c))},[]),_=r.useCallback((t,c,m)=>{const v=o.current[t]||{...oe};U(v,c)!==m&&(o.current=Re(o.current,`${t}.${c}`,m),n.publish(`fieldStates.${t}.${c}`,m),c==="error"&&(u.current.errorFields=Object.keys(b.current).filter(w=>!!b.current[w]),n.publish("formState.errorFields",u.current.errorFields)),c==="isDirty"&&(u.current.dirtyFields=Object.keys(o.current).filter(w=>o.current[w].isDirty),n.publish("formState.dirtyFields",u.current.dirtyFields)),c==="isTouched"&&(u.current.touchedFields=Object.keys(o.current).filter(w=>o.current[w].isTouched),n.publish("formState.touchedFields",u.current.touchedFields)))},[]),se=r.useCallback(t=>{_(t,"isDirty",!1),_(t,"isTouched",!1),_(t,"error",null)},[]),e=r.useCallback((t,c)=>{if(b.current[t]===c)return;b.current[t]=c,_(t,"error",c),n.publish(`errors.${t}`,c);const v=z();u.current.isError!==v&&(u.current.isError=v,n.publish("formState.isError",v))},[]),f=r.useCallback(t=>{if(!b.current[t])return;b.current[t]=null,_(t,"error",null),n.publish(`errors.${t}`,null);const c=z();u.current.isError!==c&&(u.current.isError=c,n.publish("formState.isError",c))},[]),S=r.useCallback(()=>{if(Object.keys(b.current)===0)return;Object.keys(b.current).forEach(c=>f(c)),b.current={};const t=z();u.current.isError!==t&&(u.current.isError=t,n.publish("formState.isError",t))},[]),F=r.useCallback(t=>{const c=ke(t.target);c?e(t.target.name,c):f(t.target.name)},[]),x=r.useCallback((t,c,{shouldDirty:m=!0,shouldOnChange:v=!0}={})=>{if(c===l.current[t])return;R&&C.current.includes(t)&&(c=Number(c)||void 0),_(t,"isTouched",!0);const Y=c!==i.current[t];m&&o.current[t].isDirty!==Y&&_(t,"isDirty",Y);const w=J();u.current.isDirty!==w&&(u.current.isDirty=w,n.publish("formState.isDirty",w)),l.current[t]=c;const I=p.current.get(t);I&&I(c),n.publish(`values.${t}`,c,{shouldDirty:m,shouldOnChange:v}),v&&n.publish("onChange",t,c,l.current)},[]),j=r.useCallback((t,c)=>(p.current.set(t,c),o.current[t]={...oe},()=>{h&&p.current.delete(t)}),[]),Z=r.useCallback((t,{keepError:c,keepDirty:m,keepTouched:v,keepCustomState:Y,defaultValue:w})=>{const I=p.current.get(t);if(!I)throw new Error(`Cannot reset "${t}" because it's uncontrolled field`);i.current[t]=w,l.current[t]=w,I&&I(w),c||f(t),m||_(t,"isDirty",!1),v||_(t,"isTouched",!1)},[]),Q=r.useCallback(t=>{if(!t)return n.trigger("values");if(Array.isArray(t))return t.forEach(m=>{const v=W(m);n.trigger(v)});const c=W(t);n.trigger(c)},[]),T=r.useCallback((t,c=P.getValues(t))=>{n.publish("onBlur",t,c,P.getValues())},[]),P=r.useMemo(()=>({subscribe:te,reset:O,trigger:Q,reload:k,resetField:Z,setValue:x,getValues:q,getErrors:G,getFieldStates:D,getFormState:H,setError:e,clearError:f,clearErrors:S,checkValidity:F,getNumberFields:ue,getFieldValidity:ae,getDefaultValues:ce,setFieldState:_,triggerFieldBlur:T,resetFieldState:se,getControlledFields:le,setFormState:re,getEvents:n.getEvents,getWatchEvents:n.getWatchEvents}),[g]),M=r.useCallback(()=>{[...d.current.querySelectorAll("[name]")].forEach(m=>{!m.defaultValue&&!p.current.has(m.name)&&i.current[m.name]&&(m.defaultValue=i.current[m.name]),m.type==="number"&&!C.current.includes(m.name)&&C.current.push(m.name)});const c=V();l.current={...c},i.current={...c}},[]),ie=r.useMemo(()=>({ref:d,watch:$,actions:P,initForm:M,registerController:j,registerHookWatcher:X,lastReloadedAt:g,loadFormValues:V,getWatchValue:ee,channels:n}),[g]),Ve=r.useMemo(()=>({control:ie,actions:P,watch:$}),[g]);return r.useLayoutEffect(()=>{d.current&&M()},[g]),r.useLayoutEffect(()=>{E(!1)},[]),Ve};A.Controller=Fe,A.Form=ve,A.useController=me,A.useForm=xe,A.useFormContext=ne,A.useWatch=he,Object.defineProperty(A,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-simple-formkit",
3
- "version": "2.2.6",
3
+ "version": "2.3.0",
4
4
  "keywords": [
5
5
  "react formkit",
6
6
  "react ez formkit",