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