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