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