react-simple-formkit 2.4.6 → 2.4.8

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,22 +1 @@
1
- (function(M,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],s):(M=typeof globalThis<"u"?globalThis:M||self,s(M.Name={},M.React))})(this,function(M,s){"use strict";var se={exports:{}},q={};/**
2
- * @license React
3
- * react-jsx-runtime.production.js
4
- *
5
- * Copyright (c) Meta Platforms, Inc. and affiliates.
6
- *
7
- * This source code is licensed under the MIT license found in the
8
- * LICENSE file in the root directory of this source tree.
9
- */var he;function _e(){if(he)return q;he=1;var o=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function a(i,u,f){var c=null;if(f!==void 0&&(c=""+f),u.key!==void 0&&(c=""+u.key),"key"in u){f={};for(var h in u)h!=="key"&&(f[h]=u[h])}else f=u;return u=f.ref,{$$typeof:o,type:i,key:c,ref:u!==void 0?u:null,props:f}}return q.Fragment=t,q.jsx=a,q.jsxs=a,q}var $={};/**
10
- * @license React
11
- * react-jsx-runtime.development.js
12
- *
13
- * Copyright (c) Meta Platforms, Inc. and affiliates.
14
- *
15
- * This source code is licensed under the MIT license found in the
16
- * LICENSE file in the root directory of this source tree.
17
- */var Ee;function Oe(){return Ee||(Ee=1,process.env.NODE_ENV!=="production"&&function(){function o(r){if(r==null)return null;if(typeof r=="function")return r.$$typeof===ne?null:r.displayName||r.name||null;if(typeof r=="string")return r;switch(r){case S:return"Fragment";case y:return"Profiler";case w:return"StrictMode";case W:return"Suspense";case z:return"SuspenseList";case p:return"Activity"}if(typeof r=="object")switch(typeof r.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),r.$$typeof){case k:return"Portal";case A:return(r.displayName||"Context")+".Provider";case T:return(r._context.displayName||"Context")+".Consumer";case P:var g=r.render;return r=r.displayName,r||(r=g.displayName||g.name||"",r=r!==""?"ForwardRef("+r+")":"ForwardRef"),r;case Z:return g=r.displayName||null,g!==null?g:o(r.type)||"Memo";case H:g=r._payload,r=r._init;try{return o(r(g))}catch{}}return null}function t(r){return""+r}function a(r){try{t(r);var g=!1}catch{g=!0}if(g){g=console;var F=g.error,j=typeof Symbol=="function"&&Symbol.toStringTag&&r[Symbol.toStringTag]||r.constructor.name||"Object";return F.call(g,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",j),t(r)}}function i(r){if(r===S)return"<>";if(typeof r=="object"&&r!==null&&r.$$typeof===H)return"<...>";try{var g=o(r);return g?"<"+g+">":"<...>"}catch{return"<...>"}}function u(){var r=ee.A;return r===null?null:r.getOwner()}function f(){return Error("react-stack-top-frame")}function c(r){if(oe.call(r,"key")){var g=Object.getOwnPropertyDescriptor(r,"key").get;if(g&&g.isReactWarning)return!1}return r.key!==void 0}function h(r,g){function F(){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))}F.isReactWarning=!0,Object.defineProperty(r,"key",{get:F,configurable:!0})}function E(){var r=o(this.type);return ce[r]||(ce[r]=!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.")),r=this.props.ref,r!==void 0?r:null}function C(r,g,F,j,V,Y,Q,re){return F=Y.ref,r={$$typeof:_,type:r,key:g,props:Y,_owner:V},(F!==void 0?F:null)!==null?Object.defineProperty(r,"ref",{enumerable:!1,get:E}):Object.defineProperty(r,"ref",{enumerable:!1,value:null}),r._store={},Object.defineProperty(r._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(r,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(r,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:Q}),Object.defineProperty(r,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:re}),Object.freeze&&(Object.freeze(r.props),Object.freeze(r)),r}function m(r,g,F,j,V,Y,Q,re){var O=g.children;if(O!==void 0)if(j)if(de(O)){for(j=0;j<O.length;j++)l(O[j]);Object.freeze&&Object.freeze(O)}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(O);if(oe.call(g,"key")){O=o(r);var U=Object.keys(g).filter(function(be){return be!=="key"});j=0<U.length?"{key: someKey, "+U.join(": ..., ")+": ...}":"{key: someKey}",ue[O+j]||(U=0<U.length?"{"+U.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
18
- let props = %s;
19
- <%s {...props} />
20
- React keys must be passed directly to JSX without using spread:
21
- let props = %s;
22
- <%s key={someKey} {...props} />`,j,O,U,O),ue[O+j]=!0)}if(O=null,F!==void 0&&(a(F),O=""+F),c(g)&&(a(g.key),O=""+g.key),"key"in g){F={};for(var te in g)te!=="key"&&(F[te]=g[te])}else F=g;return O&&h(F,typeof r=="function"?r.displayName||r.name||"Unknown":r),C(r,O,Y,V,u(),F,Q,re)}function l(r){typeof r=="object"&&r!==null&&r.$$typeof===_&&r._store&&(r._store.validated=1)}var R=s,_=Symbol.for("react.transitional.element"),k=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),w=Symbol.for("react.strict_mode"),y=Symbol.for("react.profiler"),T=Symbol.for("react.consumer"),A=Symbol.for("react.context"),P=Symbol.for("react.forward_ref"),W=Symbol.for("react.suspense"),z=Symbol.for("react.suspense_list"),Z=Symbol.for("react.memo"),H=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),ne=Symbol.for("react.client.reference"),ee=R.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,oe=Object.prototype.hasOwnProperty,de=Array.isArray,K=console.createTask?console.createTask:function(){return null};R={"react-stack-bottom-frame":function(r){return r()}};var X,ce={},B=R["react-stack-bottom-frame"].bind(R,f)(),ae=K(i(f)),ue={};$.Fragment=S,$.jsx=function(r,g,F,j,V){var Y=1e4>ee.recentlyCreatedOwnerStacks++;return m(r,g,F,!1,j,V,Y?Error("react-stack-top-frame"):B,Y?K(i(r)):ae)},$.jsxs=function(r,g,F,j,V){var Y=1e4>ee.recentlyCreatedOwnerStacks++;return m(r,g,F,!0,j,V,Y?Error("react-stack-top-frame"):B,Y?K(i(r)):ae)}}()),$}var me;function je(){return me||(me=1,process.env.NODE_ENV==="production"?se.exports=_e():se.exports=Oe()),se.exports}var Re=je();const v=()=>{},Ce=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(Ce),we=({id:o,control:t,method:a,action:i,children:u,onChange:f,onBlur:c,onSubmit:h=()=>{},onInput:E=()=>{},onReset:C=()=>{},numberFields:m=[],className:l,...R})=>{const _=s.useCallback(k=>{t.ref&&(t.ref.current=k,t.ref.current&&t.initForm())},[t]);return s.useEffect(()=>{let k=()=>{},S=()=>{};return f&&(k=t.channels.subscribe("onChange",f)),c&&(S=t.channels.subscribe("onBlur",c)),()=>{k(),S()}},[t.lastReloadedAt]),Re.jsx(Ce.Provider,{value:t,children:Re.jsx("form",{id:o,ref:_,action:i,method:a,className:l,onInput:E,onSubmit:k=>{a||k.preventDefault();const S=t.loadFormValues();h(S)},onChange:k=>{const S=k.target.name;!S||t.actions.getControlledFields().has(S)||t.actions.setValue(S,k.target.value)},onBlur:k=>{const S=k.target.name;if(!S||t.actions.getControlledFields().has(S))return;const w=k.target.value;t.channels.publish("onBlur",S,w,t.actions.getValues()),t.triggerBlurWatchers(S)},onReset:k=>{t.actions.reset(),C(k)},...R,children:u},t.lastReloadedAt)})},fe={isDirty:!1,isTouched:!1,error:null},ve={lastReset:null,isDirty:!1,isError:!1,errorFields:[],dirtyFields:[],touchedFields:[]},Pe={},Ne=["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],D=(o={},t="")=>t.split(".").reduce((a,i)=>a&&a[i]!==void 0?a[i]:void 0,o),L=(o={},t="",a)=>{const i=Array.isArray(o)?[...o]:{...o};let u=i;const f=t.split(".");return f.forEach((c,h)=>{h<f.length-1?(u[c]||(u[c]=/^\d+$/.test(f[h+1])?[]:{}),Array.isArray(u[c])?u[c]=[...u[c]]:u[c]={...u[c]},u=u[c]):u[c]=a}),i},Se=o=>{let t=Array.isArray(o)?[...o]:{...o};return Object.keys(t).forEach(a=>{if(a.includes(".")){const i=D(t,a);t=L(t,a,i||""),delete t[a]}}),t},De=["errors","fieldStates","formState"],G=o=>De.some(t=>o.startsWith(t))?o:"values."+o,ye=o=>{typeof o.setCustomValidity=="function"&&o.setCustomValidity("");let t=o.validity,a=Ne.find(i=>t[i]);if(a)return{type:a,message:o.validationMessage}},ke=(o=new Set,t={},a="")=>Object.keys(t||{}).reduce((i,u)=>{const f=(t||{})[u];return o.has(a+u)?[...i,...ke(o,f,a+u+".")]:f!=null&&f.isDirty?[...i,a+u]:i},[]),pe=(o=new Set,t={},a="")=>Object.keys(t||{}).reduce((i,u)=>{const f=(t||{})[u];return o.has(a+u)?[...i,...pe(o,f,a+u+".")]:f!=null&&f.isTouched?[...i,a+u]:i},[]),Fe=(o=new Set,t={},a="")=>Object.keys(t||{}).reduce((i,u)=>{const f=(t||{})[u];return o.has(a+u)?[...i,...Fe(o,f,a+u+".")]:f?[...i,a+u]:i},[]),Te=({control:o,name:t,compute:a,mode:i})=>{const{getWatchValue:u,registerHookWatcher:f}=o||ie(),c=u({name:t,compute:a}),[h,E]=s.useState(c);return s.useEffect(()=>f({name:t,compute:a,value:h,setValue:E,mode:i}),[]),h},Ae=({control:o,name:t,defaultValue:a,shouldUnRegister:i})=>{const{actions:u,registerController:f,channels:c,getWatchValue:h,triggerBlurWatchers:E}=o||ie(),C=s.useRef(),m=s.useRef(),l=D(u.getDefaultValues(),t)||a||"",R=Te({name:t})??l,[_,k]=s.useState({}),S=s.useCallback((y,{shouldDirty:T=!0,shouldOnChange:A=!0}={})=>{var W;let P=y;((W=y==null?void 0:y.target)==null?void 0:W.value)!==void 0&&(P=y.target.value),u.setValue(t,P,{shouldDirty:T,shouldOnChange:A})},[u.setValue]),w=s.useCallback(y=>{const T=u.getValues(),A=y??D(T,t);c.publish("onBlur",t,A,T),E(t)},[]);return s.useEffect(()=>{const y=f(t,{shouldUnRegister:i});return()=>{y&&y(),m.current&&m.current()}},[i,t]),new Proxy({ref:C,name:t,defaultValue:l,value:R,onChange:S,onBlur:w,fieldState:_},{get(y,T,A){return typeof T=="string"&&T==="fieldState"&&(m.current&&m.current(),m.current=u.subscribe(`fieldStates.${t}`,()=>{k(h({name:`fieldStates.${t}`}))})),Reflect.get(y,T,A)}})},xe=({name:o,control:t,shouldUnRegister:a,defaultValue:i,render:u=({ref:f,name:c,defaultValue:h,value:E,onChange:C,onBlur:m,fieldState:l})=>null})=>{const f=Ae({name:o,defaultValue:i,shouldUnRegister:a,control:t});return u(f)},We=()=>{const[o,t]=s.useState(),a=s.useCallback(()=>t(new Date().toString()),[]);return[o,a]},Be=()=>{const[,o]=s.useState({});return s.useCallback(()=>o({}),[])},Ie=({channels:o,getWatchValue:t})=>{const a=Be(),i=s.useCallback((c,h="onChange")=>{if(!c)return o.subscribeWatch("values",()=>a()),t();if(typeof c=="string"){let E=G(c);h==="onBlur"&&(E=`blur.${E}`),o.subscribeWatch(E,(C,m)=>{C!==m&&a()})}return Array.isArray(c)&&c.forEach(E=>{let C=G(E);h==="onBlur"&&(C=`blur.${C}`),o.subscribeWatch(C,(m,l)=>{m!==l&&a()})}),t({name:c})},[]),u=s.useCallback(({name:c,compute:h,setValue:E,mode:C="onChange"})=>{if(typeof h=="function")return o.subscribe("values",()=>{const l=t({compute:h});E(l)});if(!c)return o.subscribe("values",()=>{E(t())});if(typeof c=="string"){let m=G(c);return C==="onBlur"&&(m=`blur.${m}`),o.subscribe(m,()=>{const R=t({name:c});E(R)})}if(Array.isArray(c)){const m=[];return c.forEach(l=>{let R=G(l);C==="onBlur"&&(R=`blur.${R}`);const _=o.subscribe(R,()=>{const k=t({name:c});E(k)});m.push(_)}),()=>m.forEach(l=>l())}throw new Error("Parameters of name must be string or array of string or compute must be a function")},[]),f=s.useCallback((c,h,E="onChange")=>{if(!c)return o.subscribe("values",()=>h(t()));if(["onChange","onBlur"].includes(c))return o.subscribe(c,h);if(typeof c=="string"){let C=G(c);return E==="onBlur"&&(C=`blur.${C}`),o.subscribe(C,()=>h(t({name:c})))}if(Array.isArray(c)){const C=[];return c.forEach(m=>{let l=G(m);E==="onBlur"&&(l=`blur.${l}`);const R=o.subscribe(l,()=>{h(t({name:c}))});C.push(R)}),()=>C.forEach(m=>m())}throw new Error("Parameters of name must be string or array of string")},[]);return{watch:i,registerHookWatcher:u,getWatchValue:t,subscribe:f}},Me=({getWatchValue:o})=>{const t=s.useRef(new Map),a=s.useRef(new Map),i=s.useCallback(()=>a.current,[]),u=s.useCallback(()=>t.current,[]),f=s.useCallback(()=>{t.current.clear(),a.current.clear()},[]),c=l=>l.replace("values.","").replace("values",""),h=s.useCallback((l,...R)=>{const _=l.split(".");_.forEach((k,S)=>{const w=_.slice(0,_.length-S).join("."),y=t.current.get(w),T=a.current.get(w);if(S>0){const A=R[0],P=o({name:c(w)});R=[L(P,l.replace(w,""),A)]}y&&y.forEach(A=>A(...R)),T&&T.forEach(A=>A(...R))})},[]),E=s.useCallback((l,{trickle:R=!1,bubble:_=!1})=>{const k=l.split(".");let S=[o({name:c(l)})];k.forEach((w,y)=>{const T=k.slice(0,k.length-y).join("."),A=t.current.get(T),P=a.current.get(T);if(y>0&&_){const W=S[0],z=o({name:c(T)});S=[L(z,l.replace(T,""),W)]}A&&(y===0||_)&&A.forEach(W=>W(...S)),P&&(y===0||_)&&P.forEach(W=>W(...S))}),R&&(t.current.forEach((w,y)=>{y.startsWith(l)&&w.forEach(T=>T(o({name:c(y)})))}),a.current.forEach((w,y)=>{y.startsWith(l)&&w.forEach(T=>T(o({name:c(y)})))}))},[]),C=s.useCallback((l,R)=>(t.current.has(l)||t.current.set(l,new Set),t.current.get(l).add(R),()=>{var _;return(_=t.current.get(l))==null?void 0:_.delete(R)}),[]),m=s.useCallback((l,R)=>{a.current.has(l)||(a.current.set(l,new Set),a.current.get(l).add(R))},[]);return{reset:f,publish:h,subscribe:C,subscribeWatch:m,getEvents:u,getWatchEvents:i,trigger:E}},Ye=({defaultValues:o=Pe,shouldUnRegister:t=!1,groups:a=[]}={})=>{const[i,u]=We(),f=s.useRef(),c=s.useRef({}),h=s.useRef({}),E=s.useRef({...ve}),C=s.useRef({...o}),m=s.useRef({...o}),l=s.useRef(new Set),R=s.useRef(new Set(a)),_=s.useCallback((e,n=m.current)=>Object.keys(n).reduce((d,b)=>{if(typeof n[b]=="object")return{...d,[b]:_(e,n[b])};const N={...e?{}:h.current[b]||{},...fe};return{...d,[b]:N}},{}),[]),k=s.useCallback((e={},{clearCustomFormStates:n=!1,clearCustomFieldStates:d=!1,groups:b=R.current}={})=>{c.current={},m.current={...m.current,...e},C.current={...m.current},l.current=new Set,R.current=new Set(b),E.current={...n?{}:E.current,...ve},h.current=_(d),p.reset(),u()},[]),S=s.useCallback(()=>{let e=Object.fromEntries(new FormData(f.current));l.current.forEach(d=>{e=L(e,d,D(C.current,d))});let n={...C.current,...e};return Se(n)},[]),w=s.useCallback(e=>ye(e.target),[]),y=s.useCallback(()=>m.current,[]),T=s.useCallback(()=>l.current,[]),A=s.useCallback((e,n)=>n?Array.isArray(n)?n.reduce((d,b)=>({...d,[b]:D(e,b)}),{}):D(e,n):{...e},[]),P=s.useCallback(e=>A(C.current,e),[A]),W=s.useCallback(e=>A(c.current,e),[A]),z=s.useCallback(e=>A(h.current,e),[A]),Z=s.useCallback(e=>A({...E.current,lastReset:i},e),[i]),H=s.useCallback(({name:e,compute:n}={})=>!e&&!n||e==="values"?P():typeof n=="function"?n(P()):Array.isArray(e)?e.reduce((d,b)=>({...d,[b]:H({name:b})}),{}):D({...C.current,errors:c.current,fieldStates:h.current,formState:Z()},e),[]),p=Me({getWatchValue:H}),{watch:ne,registerHookWatcher:ee,subscribe:oe}=Ie({getWatchValue:H,channels:p}),de=s.useCallback((e,n)=>{typeof n=="function"&&(n=n(Z(e)));const d=E.current,b=D(d,e);b!==n&&(E.current=L(E.current,e,n),p.publish(`formState.${e}`,n,b))},[]),K=s.useCallback((e,n)=>{typeof n=="function"&&(n=n(W(e))),B(e,"error",n)},[]),X=s.useCallback(e=>{B(e,"error",null)},[]),ce=s.useCallback(()=>{E.current.isError&&Object.keys(c.current).forEach(e=>X(e))},[]),B=s.useCallback((e,n,d)=>{try{if(typeof d=="function"&&(d=d(z(e))),R.current.has(e))if(typeof d=="object"&&d!==null){Object.keys(d).forEach(x=>{B(`${e}.${x}`,n,d[x])});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 b=D(h.current,e)||{...fe},N=D(b,n);if(N!==d){if(h.current=L(h.current,`${e}.${n}`,d),p.publish(`fieldStates.${e}.${n}`,d,N),n==="error"){const x=D(c.current,e),I=d||null;x!==I&&(c.current=L(c.current,e,I),p.publish(`errors.${e}`,I,x));const J=Fe(R.current,c.current);E.current.errorFields=J,p.publish("formState.errorFields",J);const le=J.length>0;if(E.current.isError!==le){const ge=E.current.isError;E.current.isError=le,p.publish("formState.isError",le,ge)}}if(n==="isDirty"){const x=ke(R.current,h.current);E.current.dirtyFields=x,p.publish("formState.dirtyFields",x);const I=x.length>0;if(E.current.isDirty!==I){const J=E.current.isDirty;E.current.isDirty=I,p.publish("formState.isDirty",I,J)}}if(n==="isTouched"){const x=pe(R.current,h.current);E.current.touchedFields=x,p.publish("formState.touchedFields",x)}}}catch(b){console.log(b)}},[]),ae=s.useCallback(e=>{B(e,"isDirty",!1),B(e,"isTouched",!1),B(e,"error",!1)},[]),ue=s.useCallback(e=>{const n=ye(e.target);n?K(e.target.name,n):X(e.target.name)},[]),r=s.useCallback((e,n,{shouldDirty:d=!0,shouldOnChange:b=!0}={})=>{if(typeof n=="function"&&(n=n(P(e))),R.current.has(e)){typeof n=="object"&&n!==null?Object.keys(n).forEach(I=>{r(`${e}.${I}`,n[I],{shouldDirty:d,shouldOnChange:b})}):console.error(`Cannot set primitive value for nested parent field "${e}". Please set value for its children or provide an object.`);return}const N=D(C.current,e);if(n===N)return;if(C.current=L(C.current,e,n),p.publish(`values.${e}`,n,N),e.includes(".")){const I=e.split("."),J=I.findIndex((le,ge)=>!R.current.has(I.slice(0,ge+1).join(".")));J!==-1&&(e=I.slice(0,J+1).join("."))}n&&B(e,"isTouched",!0);const x=n!==(D(m.current,e)||"");d&&B(e,"isDirty",x),b&&p.publish("onChange",e,n,N)},[]),g=s.useCallback(e=>{const n=e.split(".");let d="";n.forEach((b,N)=>{N<n.length-1&&(d=d?`${d}.${b}`:b,R.current.add(d))})},[]),F=s.useCallback(e=>{Array.isArray(e)?e.forEach(n=>g(n+".")):g(e+".")},[]),j=s.useCallback((e="",{shouldUnRegister:n=t}={})=>e?(l.current.add(e),h.current=L(h.current,e,{...fe}),e.includes(".")&&g(e),()=>{n&&l.current.delete(e)}):console.error("Controller must have a name"),[]),V=s.useCallback((e,{keepError:n,keepDirty:d,keepTouched:b,defaultValue:N})=>{if(!l.current.has(e))throw new Error(`Cannot reset "${e}" because it's uncontrolled field`);m.current=L(m.current,e,N),C.current=L(C.current,e,N),p.publish(`values.${e}`,N),n||X(e),d||B(e,"isDirty",!1),b||B(e,"isTouched",!1)},[]),Y=s.useCallback((e,{bubble:n,trickle:d}={})=>{if(!e)return p.trigger("values",{bubble:n,trickle:d??!0});if(!Array.isArray(e)){const b=G(e);p.trigger(b,{bubble:n,trickle:d});return}e.forEach(b=>{const N=G(b);p.trigger(N,{bubble:n,trickle:d})})},[]),Q=s.useCallback(e=>{p.publish(`blur.values.${e}`,P(e)),p.publish(`blur.errors.${e}`,W(e));const n=z(e);Object.keys(n||{}).forEach(b=>{p.publish(`blur.fieldStates.${e}.${b}`,n[b])});const d=Z();Object.keys(d||{}).forEach(b=>{p.publish(`blur.formState.${b}`,d[b])})},[]),re=s.useCallback((e,n=P(e))=>{p.publish("onBlur",e,n,P()),Q(e)},[]),O=s.useMemo(()=>({subscribe:oe,reset:k,trigger:Y,reload:u,resetField:V,setValue:r,getValues:P,getErrors:W,getFieldStates:z,getFormState:Z,setError:K,clearError:X,clearErrors:ce,checkValidity:ue,getFieldValidity:w,getDefaultValues:y,setFieldState:B,triggerFieldBlur:re,resetFieldState:ae,getControlledFields:T,setFormState:de,getEvents:p.getEvents,getWatchEvents:p.getWatchEvents,addGroups:F}),[i]),U=s.useCallback(()=>{[...f.current.querySelectorAll("[name]")].forEach(d=>{const b=d.name||"";b.includes(".")&&g(b),!d.defaultValue&&!l.current.has(b)&&D(m.current,b)&&(d.defaultValue=D(m.current,b))});const n=S();C.current={...n},m.current={...n}},[]),te=s.useMemo(()=>({ref:f,watch:ne,actions:O,initForm:U,registerController:j,registerHookWatcher:ee,lastReloadedAt:i,loadFormValues:S,getWatchValue:H,triggerBlurWatchers:Q,channels:p}),[i]),be=s.useMemo(()=>({control:te,actions:O,watch:ne}),[i]);return s.useLayoutEffect(()=>{f.current&&U()},[i]),s.useLayoutEffect(()=>{h.current=_(!1)},[]),be};M.Controller=xe,M.Form=we,M.restoreFromDotNotation=Se,M.useController=Ae,M.useForm=Ye,M.useFormContext=ie,M.useWatch=Te,Object.defineProperty(M,Symbol.toStringTag,{value:"Module"})});
1
+ (function(w,I){typeof exports=="object"&&typeof module<"u"?I(exports,require("react/jsx-runtime"),require("react")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react"],I):(w=typeof globalThis<"u"?globalThis:w||self,I(w.Name={},w.jsxRuntime,w.React))})(this,function(w,I,s){"use strict";const y=()=>{},Q=s.createContext({ref:null,watch:y,actions:{subscribe:y,reset:y,trigger:y,reload:y,resetField:y,setValue:y,getValues:y,getErrors:y,getFieldStates:y,getFormState:y,setError:y,clearError:y,clearErrors:y,checkValidity:y,getFieldValidity:y,getDefaultValues:y,setFieldState:y,triggerFieldBlur:y,resetFieldState:y,getControlledFields:y,setFormState:y,getEvents:y,getWatchEvents:y,addGroups:y},registerController:y,registerHookWatcher:y,lastReloadedAt:y,loadFormValues:y,getWatchValue:y,channels:{}}),_=()=>s.useContext(Q),lr=({id:n,control:e,method:o,action:f,children:a,onChange:h,onBlur:u,onSubmit:b=()=>{},onInput:d=()=>{},onReset:C=()=>{},numberFields:g=[],className:i,...E})=>{const $=s.useCallback(m=>{e.ref&&(e.ref.current=m,e.ref.current&&e.initForm())},[e]);return s.useEffect(()=>{let m=()=>{},v=()=>{};return h&&(m=e.channels.subscribe("onChange",h)),u&&(v=e.channels.subscribe("onBlur",u)),()=>{m(),v()}},[e.lastReloadedAt]),I.jsx(Q.Provider,{value:e,children:I.jsx("form",{id:n,ref:$,action:f,method:o,className:i,onInput:d,onSubmit:m=>{o||m.preventDefault();const v=e.loadFormValues();b(v)},onChange:m=>{const v=m.target.name;!v||e.actions.getControlledFields().has(v)||e.actions.setValue(v,m.target.value)},onBlur:m=>{const v=m.target.name;if(!v||e.actions.getControlledFields().has(v))return;const p=m.target.value;e.channels.publish("onBlur",v,p,e.actions.getValues()),e.triggerBlurWatchers(v)},onReset:m=>{e.actions.reset(),C(m)},...E,children:a},e.lastReloadedAt)})},U={isDirty:!1,isTouched:!1,error:null},X={lastReset:null,isDirty:!1,isError:!1,errorFields:[],dirtyFields:[],touchedFields:[]},ar={},fr=["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],A=(n={},e="")=>e.split(".").reduce((o,f)=>o&&o[f]!==void 0?o[f]:void 0,n),N=(n={},e="",o)=>{const f=Array.isArray(n)?[...n]:{...n};let a=f;const h=e.split(".");return h.forEach((u,b)=>{b<h.length-1?(a[u]||(a[u]=/^\d+$/.test(h[b+1])?[]:{}),Array.isArray(a[u])?a[u]=[...a[u]]:a[u]={...a[u]},a=a[u]):a[u]=o}),f},Y=n=>{let e=Array.isArray(n)?[...n]:{...n};return Object.keys(e).forEach(o=>{if(o.includes(".")){const f=A(e,o);e=N(e,o,f||""),delete e[o]}}),e},dr=["errors","fieldStates","formState"],T=n=>dr.some(e=>n.startsWith(e))?n:"values."+n,Z=n=>{typeof n.setCustomValidity=="function"&&n.setCustomValidity("");let e=n.validity,o=fr.find(f=>e[f]);if(o)return{type:o,message:n.validationMessage}},x=(n=new Set,e={},o="")=>Object.keys(e||{}).reduce((f,a)=>{const h=(e||{})[a];return n.has(o+a)?[...f,...x(n,h,o+a+".")]:h!=null&&h.isDirty?[...f,o+a]:f},[]),rr=(n=new Set,e={},o="")=>Object.keys(e||{}).reduce((f,a)=>{const h=(e||{})[a];return n.has(o+a)?[...f,...rr(n,h,o+a+".")]:h!=null&&h.isTouched?[...f,o+a]:f},[]),er=(n=new Set,e={},o="")=>Object.keys(e||{}).reduce((f,a)=>{const h=(e||{})[a];return n.has(o+a)?[...f,...er(n,h,o+a+".")]:h?[...f,o+a]:f},[]),tr=({control:n,name:e,compute:o,mode:f})=>{const{getWatchValue:a,registerHookWatcher:h}=n||_(),u=a({name:e,compute:o}),[b,d]=s.useState(u);return s.useEffect(()=>h({name:e,compute:o,value:b,setValue:d,mode:f}),[]),b},sr=({control:n,name:e,defaultValue:o,shouldUnRegister:f})=>{const{actions:a,registerController:h,channels:u,getWatchValue:b,triggerBlurWatchers:d}=n||_(),C=s.useRef(),g=s.useRef(),i=A(a.getDefaultValues(),e)||o||"",E=tr({name:e})??i,[$,m]=s.useState({}),v=s.useCallback((F,{shouldDirty:k=!0,shouldOnChange:R=!0}={})=>{var W;let B=F;((W=F==null?void 0:F.target)==null?void 0:W.value)!==void 0&&(B=F.target.value),a.setValue(e,B,{shouldDirty:k,shouldOnChange:R})},[a.setValue]),p=s.useCallback(F=>{const k=a.getValues(),R=F??A(k,e);u.publish("onBlur",e,R,k),d(e)},[]);return s.useEffect(()=>{const F=h(e,{shouldUnRegister:f});return()=>{F&&F(),g.current&&g.current()}},[f,e]),new Proxy({ref:C,name:e,defaultValue:i,value:E,onChange:v,onBlur:p,fieldState:$},{get(F,k,R){return typeof k=="string"&&k==="fieldState"&&(g.current&&g.current(),g.current=a.subscribe(`fieldStates.${e}`,()=>{m(b({name:`fieldStates.${e}`}))})),Reflect.get(F,k,R)}})},gr=({name:n,control:e,shouldUnRegister:o,defaultValue:f,render:a=({ref:h,name:u,defaultValue:b,value:d,onChange:C,onBlur:g,fieldState:i})=>null})=>{const h=sr({name:n,defaultValue:f,shouldUnRegister:o,control:e});return a(h)},br=()=>{const[n,e]=s.useState(),o=s.useCallback(()=>e(new Date().toString()),[]);return[n,o]},hr=()=>{const[,n]=s.useState({});return s.useCallback(()=>n({}),[])},Cr=({channels:n,getWatchValue:e})=>{const o=hr(),f=s.useCallback((u,b="onChange")=>{if(!u)return n.subscribeWatch("values",()=>o()),e();if(typeof u=="string"){let d=T(u);b==="onBlur"&&(d=`blur.${d}`),n.subscribeWatch(d,(C,g)=>{C!==g&&o()})}return Array.isArray(u)&&u.forEach(d=>{let C=T(d);b==="onBlur"&&(C=`blur.${C}`),n.subscribeWatch(C,(g,i)=>{g!==i&&o()})}),e({name:u})},[]),a=s.useCallback(({name:u,compute:b,setValue:d,mode:C="onChange"})=>{if(typeof b=="function")return n.subscribe("values",()=>{const i=e({compute:b});d(i)});if(!u)return n.subscribe("values",()=>{d(e())});if(typeof u=="string"){let g=T(u);return C==="onBlur"&&(g=`blur.${g}`),n.subscribe(g,()=>{const E=e({name:u});d(E)})}if(Array.isArray(u)){const g=[];return u.forEach(i=>{let E=T(i);C==="onBlur"&&(E=`blur.${E}`);const $=n.subscribe(E,()=>{const m=e({name:u});d(m)});g.push($)}),()=>g.forEach(i=>i())}throw new Error("Parameters of name must be string or array of string or compute must be a function")},[]),h=s.useCallback((u,b,d="onChange")=>{if(!u)return n.subscribe("values",()=>b(e()));if(["onChange","onBlur"].includes(u))return n.subscribe(u,b);if(typeof u=="string"){let C=T(u);return d==="onBlur"&&(C=`blur.${C}`),n.subscribe(C,()=>b(e({name:u})))}if(Array.isArray(u)){const C=[];return u.forEach(g=>{let i=T(g);d==="onBlur"&&(i=`blur.${i}`);const E=n.subscribe(i,()=>{b(e({name:u}))});C.push(E)}),()=>C.forEach(g=>g())}throw new Error("Parameters of name must be string or array of string")},[]);return{watch:f,registerHookWatcher:a,getWatchValue:e,subscribe:h}},Er=({getWatchValue:n})=>{const e=s.useRef(new Map),o=s.useRef(new Map),f=s.useCallback(()=>o.current,[]),a=s.useCallback(()=>e.current,[]),h=s.useCallback(()=>{e.current.clear(),o.current.clear()},[]),u=i=>i.replace("values.","").replace("values",""),b=s.useCallback((i,...E)=>{const $=i.split(".");$.forEach((m,v)=>{const p=$.slice(0,$.length-v).join("."),F=e.current.get(p),k=o.current.get(p);if(v>0){const R=E[0],B=n({name:u(p)});E=[N(B,i.replace(p,""),R)]}F&&F.forEach(R=>R(...E)),k&&k.forEach(R=>R(...E))})},[]),d=s.useCallback((i,{trickle:E=!1,bubble:$=!1})=>{const m=i.split(".");let v=[n({name:u(i)})];m.forEach((p,F)=>{const k=m.slice(0,m.length-F).join("."),R=e.current.get(k),B=o.current.get(k);if(F>0&&$){const W=v[0],G=n({name:u(k)});v=[N(G,i.replace(k,""),W)]}R&&(F===0||$)&&R.forEach(W=>W(...v)),B&&(F===0||$)&&B.forEach(W=>W(...v))}),E&&(e.current.forEach((p,F)=>{F.startsWith(i)&&p.forEach(k=>k(n({name:u(F)})))}),o.current.forEach((p,F)=>{F.startsWith(i)&&p.forEach(k=>k(n({name:u(F)})))}))},[]),C=s.useCallback((i,E)=>(e.current.has(i)||e.current.set(i,new Set),e.current.get(i).add(E),()=>{var $;return($=e.current.get(i))==null?void 0:$.delete(E)}),[]),g=s.useCallback((i,E)=>{o.current.has(i)||(o.current.set(i,new Set),o.current.get(i).add(E))},[]);return{reset:h,publish:b,subscribe:C,subscribeWatch:g,getEvents:a,getWatchEvents:f,trigger:d}},yr=({defaultValues:n=ar,shouldUnRegister:e=!1,groups:o=[]}={})=>{const[f,a]=br(),h=s.useRef(),u=s.useRef({}),b=s.useRef({}),d=s.useRef({...X}),C=s.useRef({...n}),g=s.useRef({...n}),i=s.useRef(new Set),E=s.useRef(new Set(o)),$=s.useCallback((r,t=g.current)=>Object.keys(t).reduce((c,l)=>{if(typeof t[l]=="object")return{...c,[l]:$(r,t[l])};const D={...r?{}:b.current[l]||{},...U};return{...c,[l]:D}},{}),[]),m=s.useCallback((r={},{clearCustomFormStates:t=!1,clearCustomFieldStates:c=!1,groups:l=E.current}={})=>{u.current={},g.current={...g.current,...r},C.current={...g.current},i.current=new Set,E.current=new Set(l),d.current={...t?{}:d.current,...X},b.current=$(c),S.reset(),a()},[]),v=s.useCallback(()=>{let r=Object.fromEntries(new FormData(h.current));i.current.forEach(c=>{r=N(r,c,A(C.current,c))});let t={...C.current,...r};return Y(t)},[]),p=s.useCallback(r=>Z(r.target),[]),F=s.useCallback(()=>g.current,[]),k=s.useCallback(()=>i.current,[]),R=s.useCallback((r,t)=>t?Array.isArray(t)?t.reduce((c,l)=>({...c,[l]:A(r,l)}),{}):A(r,t):r,[]),B=s.useCallback(r=>R(C.current,r),[R]),W=s.useCallback(r=>R(u.current,r),[R]),G=s.useCallback(r=>R(b.current,r),[R]),H=s.useCallback(r=>R({...d.current,lastReset:f},r),[f]),q=s.useCallback(({name:r,compute:t}={})=>!r&&!t||r==="values"?B():typeof t=="function"?t(B()):Array.isArray(r)?r.reduce((c,l)=>({...c,[l]:q({name:l})}),{}):A({...C.current,errors:u.current,fieldStates:b.current,formState:H()},r),[]),S=Er({getWatchValue:q}),{watch:nr,registerHookWatcher:Fr,subscribe:Sr}=Cr({getWatchValue:q,channels:S}),vr=s.useCallback((r,t)=>{typeof t=="function"&&(t=t(H(r)));const c=d.current,l=A(c,r);l!==t&&(d.current=N(d.current,r,t),S.publish(`formState.${r}`,t,l))},[]),ur=s.useCallback((r,t)=>{typeof t=="function"&&(t=t(W(r))),M(r,"error",t)},[]),K=s.useCallback(r=>{M(r,"error",null)},[]),mr=s.useCallback(()=>{d.current.isError&&Object.keys(u.current).forEach(r=>K(r))},[]),M=s.useCallback((r,t,c)=>{try{if(typeof c=="function"&&(c=c(G(r))),E.current.has(r))if(typeof c=="object"&&c!==null){Object.keys(c).forEach(j=>{M(`${r}.${j}`,t,c[j])});return}else return console.error(`Cannot set primitive value for nested parent field "${r}". Please set value for its children or provide an object.`);const l=A(b.current,r)||{...U},D=A(l,t);if(D!==c){if(b.current=N(b.current,`${r}.${t}`,c),S.publish(`fieldStates.${r}.${t}`,c,D),t==="error"){const j=A(u.current,r),O=c||null;j!==O&&(u.current=N(u.current,r,O),S.publish(`errors.${r}`,O,j));const P=er(E.current,u.current);d.current.errorFields=P,S.publish("formState.errorFields",P);const V=P.length>0;if(d.current.isError!==V){const J=d.current.isError;d.current.isError=V,S.publish("formState.isError",V,J)}}if(t==="isDirty"){const j=x(E.current,b.current);d.current.dirtyFields=j,S.publish("formState.dirtyFields",j);const O=j.length>0;if(d.current.isDirty!==O){const P=d.current.isDirty;d.current.isDirty=O,S.publish("formState.isDirty",O,P)}}if(t==="isTouched"){const j=rr(E.current,b.current);d.current.touchedFields=j,S.publish("formState.touchedFields",j)}}}catch(l){console.log(l)}},[]),kr=s.useCallback(r=>{M(r,"isDirty",!1),M(r,"isTouched",!1),M(r,"error",null)},[]),Rr=s.useCallback(r=>{const t=Z(r.target);t?ur(r.target.name,t):K(r.target.name)},[]),z=s.useCallback((r,t,{shouldDirty:c=!0,shouldOnChange:l=!0}={})=>{if(typeof t=="function"&&(t=t(B(r))),E.current.has(r)){typeof t=="object"&&t!==null?Object.keys(t).forEach(O=>{z(`${r}.${O}`,t[O],{shouldDirty:c,shouldOnChange:l})}):console.error(`Cannot set primitive value for nested parent field "${r}". Please set value for its children or provide an object.`);return}const D=A(C.current,r);if(t===D)return;if(C.current=N(C.current,r,t),S.publish(`values.${r}`,t,D),r.includes(".")){const O=r.split("."),P=O.findIndex((V,J)=>!E.current.has(O.slice(0,J+1).join(".")));P!==-1&&(r=O.slice(0,P+1).join("."))}t&&M(r,"isTouched",!0);const j=t!==(A(g.current,r)||"");c&&M(r,"isDirty",j),l&&S.publish("onChange",r,t,D)},[]),L=s.useCallback(r=>{const t=r.split(".");let c="";t.forEach((l,D)=>{D<t.length-1&&(c=c?`${c}.${l}`:l,E.current.add(c))})},[]),$r=s.useCallback(r=>{Array.isArray(r)?r.forEach(t=>L(t+".")):L(r+".")},[]),Dr=s.useCallback((r="",{shouldUnRegister:t=e}={})=>r?(i.current.add(r),b.current=N(b.current,r,{...U}),r.includes(".")&&L(r),()=>{t&&(z(r,void 0,{shouldDirty:!1,shouldOnChange:!1}),i.current.delete(r))}):console.error("Controller must have a name"),[]),Ar=s.useCallback((r,{keepError:t,keepDirty:c,keepTouched:l,defaultValue:D}={})=>{if(!i.current.has(r))throw new Error(`Cannot reset "${r}" because it's uncontrolled field`);D===void 0&&(D=A(g.current,r)),g.current=N(g.current,r,D),C.current=N(C.current,r,D),S.publish(`values.${r}`,D),t||K(r),c||M(r,"isDirty",!1),l||M(r,"isTouched",!1)},[]),pr=s.useCallback((r,{bubble:t,trickle:c}={})=>{if(!r){S.trigger("values",{bubble:t,trickle:c??!0}),S.trigger("blur.values",{bubble:t,trickle:c??!0});return}if(!Array.isArray(r)){const l=T(r);S.trigger(l,{bubble:t,trickle:c}),S.trigger(`blur.${l}`,{bubble:t,trickle:c});return}r.forEach(l=>{const D=T(l);S.trigger(D,{bubble:t,trickle:c}),S.trigger(`blur.${D}`,{bubble:t,trickle:c})})},[]),or=s.useCallback(r=>{S.publish(`blur.values.${r}`,B(r)),S.publish(`blur.errors.${r}`,W(r));const t=G(r);Object.keys(t||{}).forEach(l=>{S.publish(`blur.fieldStates.${r}.${l}`,t[l])});const c=H();Object.keys(c||{}).forEach(l=>{S.publish(`blur.formState.${l}`,c[l])})},[]),Br=s.useCallback((r,t=B(r))=>{S.publish("onBlur",r,t,B()),or(r)},[]),cr=s.useMemo(()=>({subscribe:Sr,reset:m,trigger:pr,reload:a,resetField:Ar,setValue:z,getValues:B,getErrors:W,getFieldStates:G,getFormState:H,setError:ur,clearError:K,clearErrors:mr,checkValidity:Rr,getFieldValidity:p,getDefaultValues:F,setFieldState:M,triggerFieldBlur:Br,resetFieldState:kr,getControlledFields:k,setFormState:vr,getEvents:S.getEvents,getWatchEvents:S.getWatchEvents,addGroups:$r}),[f]),ir=s.useCallback(()=>{[...h.current.querySelectorAll("[name]")].forEach(c=>{const l=c.name||"";l.includes(".")&&L(l),!c.defaultValue&&!i.current.has(l)&&A(g.current,l)&&(c.defaultValue=A(g.current,l))});const t=v();C.current={...t},g.current={...t}},[]),jr=s.useMemo(()=>({ref:h,watch:nr,actions:cr,initForm:ir,registerController:Dr,registerHookWatcher:Fr,lastReloadedAt:f,loadFormValues:v,getWatchValue:q,triggerBlurWatchers:or,channels:S}),[f]),wr=s.useMemo(()=>({control:jr,actions:cr,watch:nr}),[f]);return s.useLayoutEffect(()=>{h.current&&ir()},[f]),s.useEffect(()=>{b.current=$(!1)},[]),wr};w.Controller=gr,w.Form=lr,w.restoreFromDotNotation=Y,w.useController=sr,w.useForm=yr,w.useFormContext=_,w.useWatch=tr,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-simple-formkit",
3
- "version": "2.4.6",
3
+ "version": "2.4.8",
4
4
  "keywords": [
5
5
  "react formkit",
6
6
  "react ez formkit",
@@ -27,8 +27,9 @@
27
27
  "dependencies": {},
28
28
  "devDependencies": {
29
29
  "@emotion/react": "^11.14.0",
30
- "@emotion/styled": "^11.14.0",
31
- "@mui/material": "^7.1.0",
30
+ "@emotion/styled": "^11.14.1",
31
+ "@mui/icons-material": "^9.0.1",
32
+ "@mui/material": "^9.0.1",
32
33
  "@mui/x-date-pickers": "^8.3.0",
33
34
  "@vitejs/plugin-react": "^4.4.1",
34
35
  "cpy-cli": "^5.0.0",
@@ -36,7 +37,7 @@
36
37
  "react": "^19.1.0",
37
38
  "react-dom": "^19.1.0",
38
39
  "react-hook-form": "^7.76.1",
39
- "react-simple-formkit": "^2.4.3",
40
+ "react-simple-formkit": "^2.4.7",
40
41
  "vite": "^6.0.7",
41
42
  "zod": "^4.4.3"
42
43
  },