@ram_28/kf-ai-sdk 1.0.18 → 1.0.19

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 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../sdk/api/client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAEhB,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EAGjB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EAErB,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,GAAG;IAKrC,8BAA8B;IAC9B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE5B,wBAAwB;IACxB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAE/E,6BAA6B;IAC7B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAExE,0BAA0B;IAC1B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEhD,oEAAoE;IACpE,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9D,8DAA8D;IAC9D,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAM7D;;;OAGG;IACH,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEpD;;;OAGG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAE7E;;;OAGG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAErE;;;;OAIG;IACH,gBAAgB,CACd,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAClC,OAAO,CAAC,iBAAiB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAMhD;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE9E;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAM3E;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEtC;;;OAGG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;CAClF;AAoBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAEvE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE1D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAoCD;;;;GAIG;AACH,wBAAgB,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAmR7D"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../sdk/api/client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAEhB,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EAGjB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EAErB,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,GAAG;IAKrC,8BAA8B;IAC9B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE5B,wBAAwB;IACxB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAE/E,6BAA6B;IAC7B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAExE,0BAA0B;IAC1B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEhD,oEAAoE;IACpE,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9D,8DAA8D;IAC9D,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAM7D;;;OAGG;IACH,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEpD;;;OAGG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAE7E;;;OAGG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAErE;;;;OAIG;IACH,gBAAgB,CACd,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAClC,OAAO,CAAC,iBAAiB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAMhD;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE9E;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAM3E;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEtC;;;OAGG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;CAClF;AAoBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAEvE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE1D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAoCD;;;;GAIG;AACH,wBAAgB,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAyR7D"}
package/dist/api.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./client-C15j4O5B.cjs"),a=require("./metadata-2FLBsFcf.cjs");function d(e){return{$__dt__:e.getTime()/1e3}}function i(e){return new Date(e.$__dt__*1e3)}function r(e){return{$__d__:e.toISOString().split("T")[0]}}function n(e){return new Date(e.$__d__)}exports.api=t.api;exports.getApiBaseUrl=t.getApiBaseUrl;exports.getDefaultHeaders=t.getDefaultHeaders;exports.setApiBaseUrl=t.setApiBaseUrl;exports.setDefaultHeaders=t.setDefaultHeaders;exports.getBdoSchema=a.getBdoSchema;exports.listMetadata=a.listMetadata;exports.decodeDate=n;exports.decodeDatetime=i;exports.encodeDate=r;exports.encodeDatetime=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./client-DgtkT50N.cjs"),a=require("./metadata-0lZAfuTP.cjs");function d(e){return{$__dt__:e.getTime()/1e3}}function i(e){return new Date(e.$__dt__*1e3)}function r(e){return{$__d__:e.toISOString().split("T")[0]}}function n(e){return new Date(e.$__d__)}exports.api=t.api;exports.getApiBaseUrl=t.getApiBaseUrl;exports.getDefaultHeaders=t.getDefaultHeaders;exports.setApiBaseUrl=t.setApiBaseUrl;exports.setDefaultHeaders=t.setDefaultHeaders;exports.getBdoSchema=a.getBdoSchema;exports.listMetadata=a.listMetadata;exports.decodeDate=n;exports.decodeDatetime=i;exports.encodeDate=r;exports.encodeDatetime=d;
package/dist/api.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { a as o, c as d, g as i, s as c, b as u } from "./client-CfvLiGfP.js";
2
- import { g as D, l as g } from "./metadata-DBcoDth-.js";
1
+ import { a as o, c as d, g as i, s as c, b as u } from "./client-V-WzUb8H.js";
2
+ import { g as D, l as g } from "./metadata-B88D_pVS.js";
3
3
  function t(e) {
4
4
  return { $__dt__: e.getTime() / 1e3 };
5
5
  }
package/dist/auth.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var z=Object.defineProperty;var J=(e,t,n)=>t in e?z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var M=(e,t,n)=>J(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("react/jsx-runtime"),r=require("react"),K=require("@tanstack/react-query"),x=require("./client-C15j4O5B.cjs"),H={sessionEndpoint:"/api/id",providers:{google:{loginPath:"/api/auth/google/login",logoutPath:"/api/auth/logout"}},defaultProvider:"google",autoRedirect:!1,sessionCheckInterval:0,retry:{count:3,delay:1e3},staleTime:5*60*1e3,refetchOnWindowFocus:!1,refetchOnReconnect:!0};let h={...H};function N(e){h={...h,...e,providers:{...h.providers,...e.providers},retry:{...h.retry,...e.retry}}}function X(e,t){h.providers[e]=t}function b(){return{...h}}function k(){return h.baseUrl||x.getApiBaseUrl()||(typeof window<"u"?window.location.origin:"")}function Y(e){return h.providers[e]}function Z(){h={...H}}class m extends Error{constructor(n,o){super(n);M(this,"statusCode");this.name="AuthenticationError",this.statusCode=o}}async function D(){const e=b(),t=k(),n=x.getDefaultHeaders(),o=await fetch(`${t}${e.sessionEndpoint}`,{method:"GET",headers:n,credentials:"include"});if(!o.ok)throw o.status===401||o.status===403?new m("Not authenticated",o.status):new m(`Session check failed: ${o.statusText}`,o.status);return await o.json()}function W(e,t){return new Promise(()=>{const n=b(),o=k();if(!o)throw new Error('Auth base URL is not configured. Call setApiBaseUrl("https://...") or configureAuth({ baseUrl: "https://..." }) first.');const i=e||n.defaultProvider,c=Y(i);if(!c){const w=Object.keys(n.providers||{}).join(", ")||"none";throw new Error(`Auth provider "${i}" is not configured. Available providers: ${w}`)}if(!c.loginPath)throw new Error(`Login path not configured for provider "${i}". Configure it with: configureAuth({ providers: { ${i}: { loginPath: '/api/auth/...' } } })`);let f;try{f=new URL(`${o}${c.loginPath}`)}catch{throw new Error(`Failed to construct login URL. Base URL: "${o}", Login path: "${c.loginPath}". Ensure baseUrl is a valid URL (e.g., "https://example.com").`)}(t!=null&&t.callbackUrl||n.callbackUrl)&&f.searchParams.set("callbackUrl",(t==null?void 0:t.callbackUrl)||n.callbackUrl||window.location.href),t!=null&&t.params&&Object.entries(t.params).forEach(([w,v])=>{f.searchParams.set(w,v)}),window.location.href=f.toString()})}async function ee(e){const t=b(),n=k(),o=x.getDefaultHeaders(),i=Y(t.defaultProvider),c=i==null?void 0:i.logoutPath;if(c&&(e==null?void 0:e.callLogoutEndpoint)!==!1)try{await fetch(`${n}${c}`,{method:"POST",headers:o,credentials:"include"})}catch(f){console.warn("Logout endpoint call failed:",f)}e!=null&&e.redirectUrl?window.location.href=e.redirectUrl:t.loginRedirectUrl&&(window.location.href=t.loginRedirectUrl)}const G=r.createContext(null),_=["auth","session"];function te({children:e,config:t,onAuthChange:n,onError:o,loadingComponent:i,unauthenticatedComponent:c,skipInitialCheck:f=!1}){const w=r.useRef(!1);t&&!w.current&&(N(t),w.current=!0);const v=K.useQueryClient(),l=b(),{data:a,isLoading:g,error:U,refetch:R,isFetching:C}=K.useQuery({queryKey:_,queryFn:D,enabled:!f,retry:(s,y)=>y instanceof m&&(y.statusCode===401||y.statusCode===403)?!1:s<l.retry.count,retryDelay:l.retry.delay,staleTime:l.staleTime,gcTime:l.staleTime*2,refetchOnWindowFocus:l.refetchOnWindowFocus??!0,refetchOnReconnect:l.refetchOnReconnect??!0,refetchInterval:l.sessionCheckInterval||!1}),[S,L]=r.useState(null),d=r.useMemo(()=>g||C?"loading":a!=null&&a.userDetails?"authenticated":"unauthenticated",[g,C,a]),u=(a==null?void 0:a.userDetails)||null,$=(a==null?void 0:a.staticBaseUrl)||null,B=(a==null?void 0:a.buildId)||null,O=d==="authenticated",E=r.useRef(n);E.current=n;const P=r.useRef(o);P.current=o,r.useEffect(()=>{var s;g||(s=E.current)==null||s.call(E,d,u)},[d,u,g]),r.useEffect(()=>{var s;U&&(L(U),(s=P.current)==null||s.call(P,U))},[U]),r.useEffect(()=>{d==="unauthenticated"&&l.autoRedirect&&!g&&W()},[d,g,l.autoRedirect]);const j=r.useCallback((s,y)=>{W(s,y)},[]),p=r.useCallback(async s=>{v.removeQueries({queryKey:_}),await ee(s)},[v]),q=r.useCallback(async()=>{if(C)return a||null;try{return(await R()).data||null}catch(s){return L(s),null}},[R,C,a]),I=r.useCallback(s=>(u==null?void 0:u.Role)===s,[u]),T=r.useCallback(s=>s.includes((u==null?void 0:u.Role)||""),[u]),F=r.useCallback(()=>{L(null)},[]),Q=r.useCallback(()=>{R()},[R]),V=r.useMemo(()=>({user:u,staticBaseUrl:$,buildId:B,status:d,isAuthenticated:O,isLoading:g,login:j,logout:p,refreshSession:q,hasRole:I,hasAnyRole:T,error:S,clearError:F,_forceCheck:Q}),[u,$,B,d,O,g,j,p,q,I,T,S,F,Q]);return d==="loading"&&i?A.jsx(A.Fragment,{children:i}):d==="unauthenticated"&&!l.autoRedirect&&c?A.jsx(A.Fragment,{children:c}):A.jsx(G.Provider,{value:V,children:e})}function re(){const e=r.useContext(G);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e}function ne(){const e=re();return r.useMemo(()=>({user:e.user,staticBaseUrl:e.staticBaseUrl,buildId:e.buildId,status:e.status,isAuthenticated:e.isAuthenticated,isLoading:e.isLoading,login:e.login,logout:e.logout,refreshSession:e.refreshSession,hasRole:e.hasRole,hasAnyRole:e.hasAnyRole,error:e.error,clearError:e.clearError}),[e.user,e.staticBaseUrl,e.buildId,e.status,e.isAuthenticated,e.isLoading,e.login,e.logout,e.refreshSession,e.hasRole,e.hasAnyRole,e.error,e.clearError])}exports.AuthProvider=te;exports.AuthenticationError=m;exports.configureAuth=N;exports.getAuthBaseUrl=k;exports.getAuthConfig=b;exports.resetAuthConfig=Z;exports.setAuthProvider=X;exports.useAuth=ne;
1
+ "use strict";var z=Object.defineProperty;var J=(e,t,n)=>t in e?z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var M=(e,t,n)=>J(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("react/jsx-runtime"),r=require("react"),K=require("@tanstack/react-query"),x=require("./client-DgtkT50N.cjs"),H={sessionEndpoint:"/api/id",providers:{google:{loginPath:"/api/auth/google/login",logoutPath:"/api/auth/logout"}},defaultProvider:"google",autoRedirect:!1,sessionCheckInterval:0,retry:{count:3,delay:1e3},staleTime:5*60*1e3,refetchOnWindowFocus:!1,refetchOnReconnect:!0};let h={...H};function N(e){h={...h,...e,providers:{...h.providers,...e.providers},retry:{...h.retry,...e.retry}}}function X(e,t){h.providers[e]=t}function b(){return{...h}}function k(){return h.baseUrl||x.getApiBaseUrl()||(typeof window<"u"?window.location.origin:"")}function Y(e){return h.providers[e]}function Z(){h={...H}}class m extends Error{constructor(n,o){super(n);M(this,"statusCode");this.name="AuthenticationError",this.statusCode=o}}async function D(){const e=b(),t=k(),n=x.getDefaultHeaders(),o=await fetch(`${t}${e.sessionEndpoint}`,{method:"GET",headers:n,credentials:"include"});if(!o.ok)throw o.status===401||o.status===403?new m("Not authenticated",o.status):new m(`Session check failed: ${o.statusText}`,o.status);return await o.json()}function W(e,t){return new Promise(()=>{const n=b(),o=k();if(!o)throw new Error('Auth base URL is not configured. Call setApiBaseUrl("https://...") or configureAuth({ baseUrl: "https://..." }) first.');const i=e||n.defaultProvider,c=Y(i);if(!c){const w=Object.keys(n.providers||{}).join(", ")||"none";throw new Error(`Auth provider "${i}" is not configured. Available providers: ${w}`)}if(!c.loginPath)throw new Error(`Login path not configured for provider "${i}". Configure it with: configureAuth({ providers: { ${i}: { loginPath: '/api/auth/...' } } })`);let f;try{f=new URL(`${o}${c.loginPath}`)}catch{throw new Error(`Failed to construct login URL. Base URL: "${o}", Login path: "${c.loginPath}". Ensure baseUrl is a valid URL (e.g., "https://example.com").`)}(t!=null&&t.callbackUrl||n.callbackUrl)&&f.searchParams.set("callbackUrl",(t==null?void 0:t.callbackUrl)||n.callbackUrl||window.location.href),t!=null&&t.params&&Object.entries(t.params).forEach(([w,v])=>{f.searchParams.set(w,v)}),window.location.href=f.toString()})}async function ee(e){const t=b(),n=k(),o=x.getDefaultHeaders(),i=Y(t.defaultProvider),c=i==null?void 0:i.logoutPath;if(c&&(e==null?void 0:e.callLogoutEndpoint)!==!1)try{await fetch(`${n}${c}`,{method:"POST",headers:o,credentials:"include"})}catch(f){console.warn("Logout endpoint call failed:",f)}e!=null&&e.redirectUrl?window.location.href=e.redirectUrl:t.loginRedirectUrl&&(window.location.href=t.loginRedirectUrl)}const G=r.createContext(null),_=["auth","session"];function te({children:e,config:t,onAuthChange:n,onError:o,loadingComponent:i,unauthenticatedComponent:c,skipInitialCheck:f=!1}){const w=r.useRef(!1);t&&!w.current&&(N(t),w.current=!0);const v=K.useQueryClient(),l=b(),{data:a,isLoading:g,error:U,refetch:R,isFetching:C}=K.useQuery({queryKey:_,queryFn:D,enabled:!f,retry:(s,y)=>y instanceof m&&(y.statusCode===401||y.statusCode===403)?!1:s<l.retry.count,retryDelay:l.retry.delay,staleTime:l.staleTime,gcTime:l.staleTime*2,refetchOnWindowFocus:l.refetchOnWindowFocus??!0,refetchOnReconnect:l.refetchOnReconnect??!0,refetchInterval:l.sessionCheckInterval||!1}),[S,L]=r.useState(null),d=r.useMemo(()=>g||C?"loading":a!=null&&a.userDetails?"authenticated":"unauthenticated",[g,C,a]),u=(a==null?void 0:a.userDetails)||null,$=(a==null?void 0:a.staticBaseUrl)||null,B=(a==null?void 0:a.buildId)||null,O=d==="authenticated",E=r.useRef(n);E.current=n;const P=r.useRef(o);P.current=o,r.useEffect(()=>{var s;g||(s=E.current)==null||s.call(E,d,u)},[d,u,g]),r.useEffect(()=>{var s;U&&(L(U),(s=P.current)==null||s.call(P,U))},[U]),r.useEffect(()=>{d==="unauthenticated"&&l.autoRedirect&&!g&&W()},[d,g,l.autoRedirect]);const j=r.useCallback((s,y)=>{W(s,y)},[]),p=r.useCallback(async s=>{v.removeQueries({queryKey:_}),await ee(s)},[v]),q=r.useCallback(async()=>{if(C)return a||null;try{return(await R()).data||null}catch(s){return L(s),null}},[R,C,a]),I=r.useCallback(s=>(u==null?void 0:u.Role)===s,[u]),T=r.useCallback(s=>s.includes((u==null?void 0:u.Role)||""),[u]),F=r.useCallback(()=>{L(null)},[]),Q=r.useCallback(()=>{R()},[R]),V=r.useMemo(()=>({user:u,staticBaseUrl:$,buildId:B,status:d,isAuthenticated:O,isLoading:g,login:j,logout:p,refreshSession:q,hasRole:I,hasAnyRole:T,error:S,clearError:F,_forceCheck:Q}),[u,$,B,d,O,g,j,p,q,I,T,S,F,Q]);return d==="loading"&&i?A.jsx(A.Fragment,{children:i}):d==="unauthenticated"&&!l.autoRedirect&&c?A.jsx(A.Fragment,{children:c}):A.jsx(G.Provider,{value:V,children:e})}function re(){const e=r.useContext(G);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e}function ne(){const e=re();return r.useMemo(()=>({user:e.user,staticBaseUrl:e.staticBaseUrl,buildId:e.buildId,status:e.status,isAuthenticated:e.isAuthenticated,isLoading:e.isLoading,login:e.login,logout:e.logout,refreshSession:e.refreshSession,hasRole:e.hasRole,hasAnyRole:e.hasAnyRole,error:e.error,clearError:e.clearError}),[e.user,e.staticBaseUrl,e.buildId,e.status,e.isAuthenticated,e.isLoading,e.login,e.logout,e.refreshSession,e.hasRole,e.hasAnyRole,e.error,e.clearError])}exports.AuthProvider=te;exports.AuthenticationError=m;exports.configureAuth=N;exports.getAuthBaseUrl=k;exports.getAuthConfig=b;exports.resetAuthConfig=Z;exports.setAuthProvider=X;exports.useAuth=ne;
package/dist/auth.mjs CHANGED
@@ -4,7 +4,7 @@ var _ = (e, t, r) => Z(e, typeof t != "symbol" ? t + "" : t, r);
4
4
  import { jsx as C, Fragment as N } from "react/jsx-runtime";
5
5
  import { useRef as L, useState as D, useMemo as $, useEffect as p, useCallback as g, createContext as ee, useContext as te } from "react";
6
6
  import { useQueryClient as re, useQuery as ne } from "@tanstack/react-query";
7
- import { c as oe, g as H } from "./client-CfvLiGfP.js";
7
+ import { c as oe, g as H } from "./client-V-WzUb8H.js";
8
8
  const M = {
9
9
  sessionEndpoint: "/api/id",
10
10
  providers: {
@@ -1 +1 @@
1
- "use strict";let o={baseUrl:"",headers:{"Content-Type":"application/json"}};function u(e){o.baseUrl=e}function h(e){o.headers={...o.headers,...e}}function d(){return{...o.headers}}function l(){return o.baseUrl||""}function i(e){if(e==null)return e;if(Array.isArray(e))return e.map(s=>i(s));if(typeof e=="object"){if("$__dt__"in e)return new Date(e.$__dt__*1e3);if("$__d__"in e)return new Date(e.$__d__);const s={};for(const[n,t]of Object.entries(e))s[n]=i(t);return s}return e}function y(e){const s=o.baseUrl,n=o.headers;return{async get(t){const r=await fetch(`${s}/api/app/${e}/${t}/read`,{method:"GET",headers:n});if(!r.ok)throw new Error(`Failed to get ${e} ${t}: ${r.statusText}`);const a=await r.json();return i(a.Data)},async create(t){const r=await fetch(`${s}/api/app/${e}/create`,{method:"POST",headers:n,body:JSON.stringify(t)});if(!r.ok)throw new Error(`Failed to create ${e}: ${r.statusText}`);return r.json()},async update(t,r){const a=await fetch(`${s}/api/app/${e}/${t}/update`,{method:"POST",headers:n,body:JSON.stringify(r)});if(!a.ok)throw new Error(`Failed to update ${e} ${t}: ${a.statusText}`);return a.json()},async delete(t){const r=await fetch(`${s}/api/app/${e}/${t}/delete`,{method:"DELETE",headers:n});if(!r.ok)throw new Error(`Failed to delete ${e} ${t}: ${r.statusText}`);return r.json()},async list(t){const r={Type:"List",...t},a=await fetch(`${s}/api/app/${e}/list`,{method:"POST",headers:n,body:JSON.stringify(r)});if(!a.ok)throw new Error(`Failed to list ${e}: ${a.statusText}`);return{Data:(await a.json()).Data.map(f=>i(f))}},async count(t){var p,$;const r={Type:"Metric",GroupBy:[],Metric:[{Field:"_id",Type:"Count"}],...(t==null?void 0:t.Filter)&&{Filter:t.Filter}},a=await fetch(`${s}/api/app/${e}/metric`,{method:"POST",headers:n,body:JSON.stringify(r)});if(!a.ok)throw new Error(`Failed to count ${e}: ${a.statusText}`);return{Count:(($=(p=(await a.json()).Data)==null?void 0:p[0])==null?void 0:$.count__id)??0}},async draft(t){const r=await fetch(`${s}/api/app/${e}/draft`,{method:"POST",headers:n,body:JSON.stringify(t)});if(!r.ok)throw new Error(`Failed to create draft for ${e}: ${r.statusText}`);return r.json()},async draftUpdate(t,r){const a=await fetch(`${s}/api/app/${e}/${t}/draft`,{method:"POST",headers:n,body:JSON.stringify(r)});if(!a.ok)throw new Error(`Failed to update draft for ${e} ${t}: ${a.statusText}`);return a.json()},async draftPatch(t,r){const a=await fetch(`${s}/api/app/${e}/${t}/draft`,{method:"PATCH",headers:n,body:JSON.stringify(r)});if(!a.ok)throw new Error(`Failed to patch draft for ${e} ${t}: ${a.statusText}`);return a.json()},async draftInteraction(t){const r=await fetch(`${s}/api/app/${e}/draft`,{method:"PATCH",headers:n,body:JSON.stringify(t)});if(!r.ok)throw new Error(`Failed to create interactive draft for ${e}: ${r.statusText}`);return r.json()},async metric(t){const r={Type:"Metric",...t},a=await fetch(`${s}/api/app/${e}/metric`,{method:"POST",headers:n,body:JSON.stringify(r)});if(!a.ok)throw new Error(`Failed to get metrics for ${e}: ${a.statusText}`);return a.json()},async pivot(t){const r={Type:"Pivot",...t},a=await fetch(`${s}/api/app/${e}/pivot`,{method:"POST",headers:n,body:JSON.stringify(r)});if(!a.ok)throw new Error(`Failed to get pivot data for ${e}: ${a.statusText}`);return a.json()},async fields(){const t=await fetch(`${s}/api/app/${e}/fields`,{method:"GET",headers:n});if(!t.ok)throw new Error(`Failed to get fields for ${e}: ${t.statusText}`);return t.json()},async fetchField(t,r){const a=await fetch(`${s}/api/app/${e}/${t}/field/${r}/fetch`,{method:"GET",headers:n});if(!a.ok)throw new Error(`Failed to fetch field ${r} for ${e}: ${a.statusText}`);return(await a.json()).Data}}}exports.api=y;exports.getApiBaseUrl=l;exports.getDefaultHeaders=d;exports.setApiBaseUrl=u;exports.setDefaultHeaders=h;
1
+ "use strict";let o={baseUrl:"",headers:{"Content-Type":"application/json"}};function u(e){o.baseUrl=e}function h(e){o.headers={...o.headers,...e}}function d(){return{...o.headers}}function l(){return o.baseUrl||""}function i(e){if(e==null)return e;if(Array.isArray(e))return e.map(s=>i(s));if(typeof e=="object"){if("$__dt__"in e)return new Date(e.$__dt__*1e3);if("$__d__"in e)return new Date(e.$__d__);const s={};for(const[n,t]of Object.entries(e))s[n]=i(t);return s}return e}function w(e){const s=o.baseUrl,n=o.headers;return{async get(t){const r=await fetch(`${s}/api/app/${e}/${t}/read`,{method:"GET",headers:n});if(!r.ok)throw new Error(`Failed to get ${e} ${t}: ${r.statusText}`);const a=await r.json();return i(a.Data)},async create(t){const r=await fetch(`${s}/api/app/${e}/create`,{method:"POST",headers:n,body:JSON.stringify(t)});if(!r.ok)throw new Error(`Failed to create ${e}: ${r.statusText}`);return r.json()},async update(t,r){const a=await fetch(`${s}/api/app/${e}/${t}/update`,{method:"POST",headers:n,body:JSON.stringify(r)});if(!a.ok)throw new Error(`Failed to update ${e} ${t}: ${a.statusText}`);return a.json()},async delete(t){const r=await fetch(`${s}/api/app/${e}/${t}/delete`,{method:"DELETE",headers:n});if(!r.ok)throw new Error(`Failed to delete ${e} ${t}: ${r.statusText}`);return r.json()},async list(t){const r={Type:"List",...t},a=await fetch(`${s}/api/app/${e}/list`,{method:"POST",headers:n,body:JSON.stringify(r)});if(!a.ok)throw new Error(`Failed to list ${e}: ${a.statusText}`);return{Data:(await a.json()).Data.map(f=>i(f))}},async count(t){var p,$;const r={Type:"Metric",GroupBy:[],Metric:[{Field:"_id",Type:"Count"}],...(t==null?void 0:t.Filter)&&{Filter:t.Filter}},a=await fetch(`${s}/api/app/${e}/metric`,{method:"POST",headers:n,body:JSON.stringify(r)});if(!a.ok)throw new Error(`Failed to count ${e}: ${a.statusText}`);return{Count:(($=(p=(await a.json()).Data)==null?void 0:p[0])==null?void 0:$.count__id)??0}},async draft(t){const r=await fetch(`${s}/api/app/${e}/draft`,{method:"POST",headers:n,body:JSON.stringify(t)});if(!r.ok)throw new Error(`Failed to create draft for ${e}: ${r.statusText}`);return r.json()},async draftUpdate(t,r){const a=await fetch(`${s}/api/app/${e}/${t}/draft`,{method:"POST",headers:n,body:JSON.stringify(r)});if(!a.ok)throw new Error(`Failed to update draft for ${e} ${t}: ${a.statusText}`);return a.json()},async draftPatch(t,r){const a=await fetch(`${s}/api/app/${e}/${t}/draft`,{method:"PATCH",headers:n,body:JSON.stringify(r)});if(!a.ok)throw new Error(`Failed to patch draft for ${e} ${t}: ${a.statusText}`);return a.json()},async draftInteraction(t){const r=await fetch(`${s}/api/app/${e}/draft`,{method:"PATCH",headers:n,body:JSON.stringify(t)});if(!r.ok)throw new Error(`Failed to create interactive draft for ${e}: ${r.statusText}`);const a=await r.json();return{...a.Data,_id:a.Data._id}},async metric(t){const r={Type:"Metric",...t},a=await fetch(`${s}/api/app/${e}/metric`,{method:"POST",headers:n,body:JSON.stringify(r)});if(!a.ok)throw new Error(`Failed to get metrics for ${e}: ${a.statusText}`);return a.json()},async pivot(t){const r={Type:"Pivot",...t},a=await fetch(`${s}/api/app/${e}/pivot`,{method:"POST",headers:n,body:JSON.stringify(r)});if(!a.ok)throw new Error(`Failed to get pivot data for ${e}: ${a.statusText}`);return a.json()},async fields(){const t=await fetch(`${s}/api/app/${e}/fields`,{method:"GET",headers:n});if(!t.ok)throw new Error(`Failed to get fields for ${e}: ${t.statusText}`);return t.json()},async fetchField(t,r){const a=await fetch(`${s}/api/app/${e}/${t}/field/${r}/fetch`,{method:"GET",headers:n});if(!a.ok)throw new Error(`Failed to fetch field ${r} for ${e}: ${a.statusText}`);return(await a.json()).Data}}}exports.api=w;exports.getApiBaseUrl=l;exports.getDefaultHeaders=d;exports.setApiBaseUrl=u;exports.setDefaultHeaders=h;
@@ -13,7 +13,7 @@ function h(e) {
13
13
  function d() {
14
14
  return { ...o.headers };
15
15
  }
16
- function y() {
16
+ function w() {
17
17
  return o.baseUrl || "";
18
18
  }
19
19
  function i(e) {
@@ -33,7 +33,7 @@ function i(e) {
33
33
  }
34
34
  return e;
35
35
  }
36
- function w(e) {
36
+ function y(e) {
37
37
  const s = o.baseUrl, n = o.headers;
38
38
  return {
39
39
  async get(t) {
@@ -159,7 +159,11 @@ function w(e) {
159
159
  throw new Error(
160
160
  `Failed to create interactive draft for ${e}: ${r.statusText}`
161
161
  );
162
- return r.json();
162
+ const a = await r.json();
163
+ return {
164
+ ...a.Data,
165
+ _id: a.Data._id
166
+ };
163
167
  },
164
168
  // ============================================================
165
169
  // QUERY OPERATIONS
@@ -225,9 +229,9 @@ function w(e) {
225
229
  };
226
230
  }
227
231
  export {
228
- w as a,
232
+ y as a,
229
233
  h as b,
230
- y as c,
234
+ w as c,
231
235
  d as g,
232
236
  u as s
233
237
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useForm/useForm.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAIlB,MAAM,SAAS,CAAC;AAwBjB,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,iBAAiB,CAAC,CAAC,CAAC,CA+4BtB"}
1
+ {"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useForm/useForm.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAIlB,MAAM,SAAS,CAAC;AAwBjB,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,iBAAiB,CAAC,CAAC,CAAC,CAy5BtB"}
@@ -1,4 +1,4 @@
1
- import { UseKanbanReturnType } from "./types";
1
+ import type { UseKanbanReturnType } from "./types";
2
2
  export declare const KanbanContext: import("react").Context<UseKanbanReturnType<any> | null>;
3
3
  export declare function useKanbanContext<T extends Record<string, any> = any>(): UseKanbanReturnType<T>;
4
4
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useKanban/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,aAAa,0DAAuD,CAAC;AAElF,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,KAOhD,mBAAmB,CAAC,CAAC,CAAC,CACzC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useKanban/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,eAAO,MAAM,aAAa,0DAEzB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,KAOhD,mBAAmB,CAAC,CAAC,CAAC,CACzC"}
package/dist/form.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var Mt=Object.defineProperty;var Lt=(e,t,r)=>t in e?Mt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var pe=(e,t,r)=>Lt(e,typeof t!="symbol"?t+"":t,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const F=require("react"),at=require("@tanstack/react-query"),ye=require("./client-C15j4O5B.cjs"),kt=require("./metadata-2FLBsFcf.cjs");var Ce=e=>e.type==="checkbox",me=e=>e instanceof Date,Q=e=>e==null;const Vt=e=>typeof e=="object";var I=e=>!Q(e)&&!Array.isArray(e)&&Vt(e)&&!me(e),It=e=>I(e)&&e.target?Ce(e.target)?e.target.checked:e.target.value:e,Ut=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,Bt=(e,t)=>e.has(Ut(t)),qt=e=>{const t=e.constructor&&e.constructor.prototype;return I(t)&&t.hasOwnProperty("isPrototypeOf")},Qe=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function U(e){if(e instanceof Date)return new Date(e);const t=typeof FileList<"u"&&e instanceof FileList;if(Qe&&(e instanceof Blob||t))return e;const r=Array.isArray(e);if(!r&&!(I(e)&&qt(e)))return e;const s=r?[]:Object.create(Object.getPrototypeOf(e));for(const i in e)Object.prototype.hasOwnProperty.call(e,i)&&(s[i]=U(e[i]));return s}var qe=e=>/^\w*$/.test(e),T=e=>e===void 0,Xe=e=>Array.isArray(e)?e.filter(Boolean):[],Ze=e=>Xe(e.replace(/["|']|\]/g,"").split(/\.|\[/)),g=(e,t,r)=>{if(!t||!I(e))return r;const s=(qe(t)?[t]:Ze(t)).reduce((i,n)=>Q(i)?i:i[n],e);return T(s)||s===e?T(e[t])?r:e[t]:s},se=e=>typeof e=="boolean",te=e=>typeof e=="function",N=(e,t,r)=>{let s=-1;const i=qe(t)?[t]:Ze(t),n=i.length,l=n-1;for(;++s<n;){const d=i[s];let w=r;if(s!==l){const p=e[d];w=I(p)||Array.isArray(p)?p:isNaN(+i[s+1])?{}:[]}if(d==="__proto__"||d==="constructor"||d==="prototype")return;e[d]=w,e=e[d]}};const nt={BLUR:"blur",FOCUS_OUT:"focusout"},re={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},ne={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},Pt=F.createContext(null);Pt.displayName="HookFormContext";var $t=(e,t,r,s=!0)=>{const i={defaultValues:t._defaultValues};for(const n in e)Object.defineProperty(i,n,{get:()=>{const l=n;return t._proxyFormState[l]!==re.all&&(t._proxyFormState[l]=!s||re.all),e[l]}});return i};const jt=typeof window<"u"?F.useLayoutEffect:F.useEffect;var X=e=>typeof e=="string",Wt=(e,t,r,s,i)=>X(e)?(s&&t.watch.add(e),g(r,e,i)):Array.isArray(e)?e.map(n=>(s&&t.watch.add(n),g(r,n))):(s&&(t.watchAll=!0),r),Je=e=>Q(e)||!Vt(e);function ce(e,t,r=new WeakSet){if(Je(e)||Je(t))return Object.is(e,t);if(me(e)&&me(t))return Object.is(e.getTime(),t.getTime());const s=Object.keys(e),i=Object.keys(t);if(s.length!==i.length)return!1;if(r.has(e)||r.has(t))return!0;r.add(e),r.add(t);for(const n of s){const l=e[n];if(!i.includes(n))return!1;if(n!=="ref"){const d=t[n];if(me(l)&&me(d)||I(l)&&I(d)||Array.isArray(l)&&Array.isArray(d)?!ce(l,d,r):!Object.is(l,d))return!1}}return!0}var Ht=(e,t,r,s,i)=>t?{...r[e],types:{...r[e]&&r[e].types?r[e].types:{},[s]:i||!0}}:{},Re=e=>Array.isArray(e)?e:[e],ut=()=>{let e=[];return{get observers(){return e},next:i=>{for(const n of e)n.next&&n.next(i)},subscribe:i=>(e.push(i),{unsubscribe:()=>{e=e.filter(n=>n!==i)}}),unsubscribe:()=>{e=[]}}};function At(e,t){const r={};for(const s in e)if(e.hasOwnProperty(s)){const i=e[s],n=t[s];if(i&&I(i)&&n){const l=At(i,n);I(l)&&(r[s]=l)}else e[s]&&(r[s]=n)}return r}var K=e=>I(e)&&!Object.keys(e).length,et=e=>e.type==="file",Ue=e=>{if(!Qe)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},xt=e=>e.type==="select-multiple",tt=e=>e.type==="radio",Yt=e=>tt(e)||Ce(e),Ke=e=>Ue(e)&&e.isConnected;function Kt(e,t){const r=t.slice(0,-1).length;let s=0;for(;s<r;)e=T(e)?s++:e[t[s++]];return e}function zt(e){for(const t in e)if(e.hasOwnProperty(t)&&!T(e[t]))return!1;return!0}function k(e,t){const r=Array.isArray(t)?t:qe(t)?[t]:Ze(t),s=r.length===1?e:Kt(e,r),i=r.length-1,n=r[i];return s&&delete s[n],i!==0&&(I(s)&&K(s)||Array.isArray(s)&&zt(s))&&k(e,r.slice(0,-1)),e}var Jt=e=>{for(const t in e)if(te(e[t]))return!0;return!1};function St(e){return Array.isArray(e)||I(e)&&!Jt(e)}function Ge(e,t={}){for(const r in e){const s=e[r];St(s)?(t[r]=Array.isArray(s)?[]:{},Ge(s,t[r])):T(s)||(t[r]=!0)}return t}function we(e,t,r){r||(r=Ge(t));for(const s in e){const i=e[s];if(St(i))T(t)||Je(r[s])?r[s]=Ge(i,Array.isArray(i)?[]:{}):we(i,Q(t)?{}:t[s],r[s]);else{const n=t[s];r[s]=!ce(i,n)}}return r}const ot={value:!1,isValid:!1},lt={value:!0,isValid:!0};var _t=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(r=>r&&r.checked&&!r.disabled).map(r=>r.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!T(e[0].attributes.value)?T(e[0].value)||e[0].value===""?lt:{value:e[0].value,isValid:!0}:lt:ot}return ot},Dt=(e,{valueAsNumber:t,valueAsDate:r,setValueAs:s})=>T(e)?e:t?e===""?NaN:e&&+e:r&&X(e)?new Date(e):s?s(e):e;const ct={isValid:!1,value:null};var Rt=e=>Array.isArray(e)?e.reduce((t,r)=>r&&r.checked&&!r.disabled?{isValid:!0,value:r.value}:t,ct):ct;function dt(e){const t=e.ref;return et(t)?t.files:tt(t)?Rt(e.refs).value:xt(t)?[...t.selectedOptions].map(({value:r})=>r):Ce(t)?_t(e.refs).value:Dt(T(t.value)?e.ref.value:t.value,e)}var Gt=(e,t,r,s)=>{const i={};for(const n of e){const l=g(t,n);l&&N(i,n,l._f)}return{criteriaMode:r,names:[...e],fields:i,shouldUseNativeValidation:s}},Be=e=>e instanceof RegExp,De=e=>T(e)?e:Be(e)?e.source:I(e)?Be(e.value)?e.value.source:e.value:e,ft=e=>({isOnSubmit:!e||e===re.onSubmit,isOnBlur:e===re.onBlur,isOnChange:e===re.onChange,isOnAll:e===re.all,isOnTouch:e===re.onTouched});const ht="AsyncFunction";var Qt=e=>!!e&&!!e.validate&&!!(te(e.validate)&&e.validate.constructor.name===ht||I(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===ht)),Xt=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),mt=(e,t,r)=>!r&&(t.watchAll||t.watch.has(e)||[...t.watch].some(s=>e.startsWith(s)&&/^\.\w+/.test(e.slice(s.length))));const Ne=(e,t,r,s)=>{for(const i of r||Object.keys(e)){const n=g(e,i);if(n){const{_f:l,...d}=n;if(l){if(l.refs&&l.refs[0]&&t(l.refs[0],i)&&!s)return!0;if(l.ref&&t(l.ref,l.name)&&!s)return!0;if(Ne(d,t))break}else if(I(d)&&Ne(d,t))break}}};function yt(e,t,r){const s=g(e,r);if(s||qe(r))return{error:s,name:r};const i=r.split(".");for(;i.length;){const n=i.join("."),l=g(t,n),d=g(e,n);if(l&&!Array.isArray(l)&&r!==n)return{name:r};if(d&&d.type)return{name:n,error:d};if(d&&d.root&&d.root.type)return{name:`${n}.root`,error:d.root};i.pop()}return{name:r}}var Zt=(e,t,r,s)=>{r(e);const{name:i,...n}=e;return K(n)||Object.keys(n).length>=Object.keys(t).length||Object.keys(n).find(l=>t[l]===(!s||re.all))},er=(e,t,r)=>!e||!t||e===t||Re(e).some(s=>s&&(r?s===t:s.startsWith(t)||t.startsWith(s))),tr=(e,t,r,s,i)=>i.isOnAll?!1:!r&&i.isOnTouch?!(t||e):(r?s.isOnBlur:i.isOnBlur)?!e:(r?s.isOnChange:i.isOnChange)?e:!0,rr=(e,t)=>!Xe(g(e,t)).length&&k(e,t),sr=(e,t,r)=>{const s=Re(g(e,r));return N(s,"root",t[r]),N(e,r,s),e};function gt(e,t,r="validate"){if(X(e)||Array.isArray(e)&&e.every(X)||se(e)&&!e)return{type:r,message:X(e)?e:"",ref:t}}var be=e=>I(e)&&!Be(e)?e:{value:e,message:""},pt=async(e,t,r,s,i,n)=>{const{ref:l,refs:d,required:w,maxLength:p,minLength:C,min:D,max:v,pattern:m,validate:z,name:O,valueAsNumber:Z,mount:Y}=e._f,S=g(r,O);if(!Y||t.has(O))return{};const ee=d?d[0]:l,L=V=>{i&&ee.reportValidity&&(ee.setCustomValidity(se(V)?"":V||""),ee.reportValidity())},M={},ue=tt(l),fe=Ce(l),ie=ue||fe,ae=(Z||et(l))&&T(l.value)&&T(S)||Ue(l)&&l.value===""||S===""||Array.isArray(S)&&!S.length,q=Ht.bind(null,O,s,M),oe=(V,A,R,B=ne.maxLength,j=ne.minLength)=>{const W=V?A:R;M[O]={type:V?B:j,message:W,ref:l,...q(V?B:j,W)}};if(n?!Array.isArray(S)||!S.length:w&&(!ie&&(ae||Q(S))||se(S)&&!S||fe&&!_t(d).isValid||ue&&!Rt(d).isValid)){const{value:V,message:A}=X(w)?{value:!!w,message:w}:be(w);if(V&&(M[O]={type:ne.required,message:A,ref:ee,...q(ne.required,A)},!s))return L(A),M}if(!ae&&(!Q(D)||!Q(v))){let V,A;const R=be(v),B=be(D);if(!Q(S)&&!isNaN(S)){const j=l.valueAsNumber||S&&+S;Q(R.value)||(V=j>R.value),Q(B.value)||(A=j<B.value)}else{const j=l.valueAsDate||new Date(S),W=he=>new Date(new Date().toDateString()+" "+he),J=l.type=="time",le=l.type=="week";X(R.value)&&S&&(V=J?W(S)>W(R.value):le?S>R.value:j>new Date(R.value)),X(B.value)&&S&&(A=J?W(S)<W(B.value):le?S<B.value:j<new Date(B.value))}if((V||A)&&(oe(!!V,R.message,B.message,ne.max,ne.min),!s))return L(M[O].message),M}if((p||C)&&!ae&&(X(S)||n&&Array.isArray(S))){const V=be(p),A=be(C),R=!Q(V.value)&&S.length>+V.value,B=!Q(A.value)&&S.length<+A.value;if((R||B)&&(oe(R,V.message,A.message),!s))return L(M[O].message),M}if(m&&!ae&&X(S)){const{value:V,message:A}=be(m);if(Be(V)&&!S.match(V)&&(M[O]={type:ne.pattern,message:A,ref:l,...q(ne.pattern,A)},!s))return L(A),M}if(z){if(te(z)){const V=await z(S,r),A=gt(V,ee);if(A&&(M[O]={...A,...q(ne.validate,A.message)},!s))return L(A.message),M}else if(I(z)){let V={};for(const A in z){if(!K(V)&&!s)break;const R=gt(await z[A](S,r),ee,A);R&&(V={...R,...q(A,R.message)},L(R.message),s&&(M[O]=V))}if(!K(V)&&(M[O]={ref:ee,...V},!s))return M}}return L(!0),M};const ir={mode:re.onSubmit,reValidateMode:re.onChange,shouldFocusError:!0};function ar(e={}){let t={...ir,...e},r={submitCount:0,isDirty:!1,isReady:!1,isLoading:te(t.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1},s={},i=I(t.defaultValues)||I(t.values)?U(t.defaultValues||t.values)||{}:{},n=t.shouldUnregister?{}:U(i),l={action:!1,mount:!1,watch:!1,keepIsValid:!1},d={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},w,p=0;const C={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},D={...C};let v={...D};const m={array:ut(),state:ut()},z=t.criteriaMode===re.all,O=a=>u=>{clearTimeout(p),p=setTimeout(a,u)},Z=async a=>{if(!l.keepIsValid&&!t.disabled&&(D.isValid||v.isValid||a)){let u;t.resolver?(u=K((await ie()).errors),Y()):u=await q(s,!0),u!==r.isValid&&m.state.next({isValid:u})}},Y=(a,u)=>{!t.disabled&&(D.isValidating||D.validatingFields||v.isValidating||v.validatingFields)&&((a||Array.from(d.mount)).forEach(o=>{o&&(u?N(r.validatingFields,o,u):k(r.validatingFields,o))}),m.state.next({validatingFields:r.validatingFields,isValidating:!K(r.validatingFields)}))},S=(a,u=[],o,f,h=!0,c=!0)=>{if(f&&o&&!t.disabled){if(l.action=!0,c&&Array.isArray(g(s,a))){const y=o(g(s,a),f.argA,f.argB);h&&N(s,a,y)}if(c&&Array.isArray(g(r.errors,a))){const y=o(g(r.errors,a),f.argA,f.argB);h&&N(r.errors,a,y),rr(r.errors,a)}if((D.touchedFields||v.touchedFields)&&c&&Array.isArray(g(r.touchedFields,a))){const y=o(g(r.touchedFields,a),f.argA,f.argB);h&&N(r.touchedFields,a,y)}(D.dirtyFields||v.dirtyFields)&&(r.dirtyFields=we(i,n)),m.state.next({name:a,isDirty:V(a,u),dirtyFields:r.dirtyFields,errors:r.errors,isValid:r.isValid})}else N(n,a,u)},ee=(a,u)=>{N(r.errors,a,u),m.state.next({errors:r.errors})},L=a=>{r.errors=a,m.state.next({errors:r.errors,isValid:!1})},M=(a,u,o,f)=>{const h=g(s,a);if(h){const c=g(n,a,T(o)?g(i,a):o);T(c)||f&&f.defaultChecked||u?N(n,a,u?c:dt(h._f)):B(a,c),l.mount&&!l.action&&Z()}},ue=(a,u,o,f,h)=>{let c=!1,y=!1;const E={name:a};if(!t.disabled){if(!o||f){(D.isDirty||v.isDirty)&&(y=r.isDirty,r.isDirty=E.isDirty=V(),c=y!==E.isDirty);const b=ce(g(i,a),u);y=!!g(r.dirtyFields,a),b?k(r.dirtyFields,a):N(r.dirtyFields,a,!0),E.dirtyFields=r.dirtyFields,c=c||(D.dirtyFields||v.dirtyFields)&&y!==!b}if(o){const b=g(r.touchedFields,a);b||(N(r.touchedFields,a,o),E.touchedFields=r.touchedFields,c=c||(D.touchedFields||v.touchedFields)&&b!==o)}c&&h&&m.state.next(E)}return c?E:{}},fe=(a,u,o,f)=>{const h=g(r.errors,a),c=(D.isValid||v.isValid)&&se(u)&&r.isValid!==u;if(t.delayError&&o?(w=O(()=>ee(a,o)),w(t.delayError)):(clearTimeout(p),w=null,o?N(r.errors,a,o):k(r.errors,a)),(o?!ce(h,o):h)||!K(f)||c){const y={...f,...c&&se(u)?{isValid:u}:{},errors:r.errors,name:a};r={...r,...y},m.state.next(y)}},ie=async a=>(Y(a,!0),await t.resolver(n,t.context,Gt(a||d.mount,s,t.criteriaMode,t.shouldUseNativeValidation))),ae=async a=>{const{errors:u}=await ie(a);if(Y(a),a)for(const o of a){const f=g(u,o);f?N(r.errors,o,f):k(r.errors,o)}else r.errors=u;return u},q=async(a,u,o={valid:!0})=>{for(const f in a){const h=a[f];if(h){const{_f:c,...y}=h;if(c){const E=d.array.has(c.name),b=h._f&&Qt(h._f);b&&D.validatingFields&&Y([c.name],!0);const _=await pt(h,d.disabled,n,z,t.shouldUseNativeValidation&&!u,E);if(b&&D.validatingFields&&Y([c.name]),_[c.name]&&(o.valid=!1,u||e.shouldUseNativeValidation))break;!u&&(g(_,c.name)?E?sr(r.errors,_,c.name):N(r.errors,c.name,_[c.name]):k(r.errors,c.name))}!K(y)&&await q(y,u,o)}}return o.valid},oe=()=>{for(const a of d.unMount){const u=g(s,a);u&&(u._f.refs?u._f.refs.every(o=>!Ke(o)):!Ke(u._f.ref))&&Ve(a)}d.unMount=new Set},V=(a,u)=>!t.disabled&&(a&&u&&N(n,a,u),!ce(Oe(),i)),A=(a,u,o)=>Wt(a,d,{...l.mount?n:T(u)?i:X(a)?{[a]:u}:u},o,u),R=a=>Xe(g(l.mount?n:i,a,t.shouldUnregister?g(i,a,[]):[])),B=(a,u,o={})=>{const f=g(s,a);let h=u;if(f){const c=f._f;c&&(!c.disabled&&N(n,a,Dt(u,c)),h=Ue(c.ref)&&Q(u)?"":u,xt(c.ref)?[...c.ref.options].forEach(y=>y.selected=h.includes(y.value)):c.refs?Ce(c.ref)?c.refs.forEach(y=>{(!y.defaultChecked||!y.disabled)&&(Array.isArray(h)?y.checked=!!h.find(E=>E===y.value):y.checked=h===y.value||!!h)}):c.refs.forEach(y=>y.checked=y.value===h):et(c.ref)?c.ref.value="":(c.ref.value=h,c.ref.type||m.state.next({name:a,values:U(n)})))}(o.shouldDirty||o.shouldTouch)&&ue(a,h,o.shouldTouch,o.shouldDirty,!0),o.shouldValidate&&he(a)},j=(a,u,o)=>{for(const f in u){if(!u.hasOwnProperty(f))return;const h=u[f],c=a+"."+f,y=g(s,c);(d.array.has(a)||I(h)||y&&!y._f)&&!me(h)?j(c,h,o):B(c,h,o)}},W=(a,u,o={})=>{const f=g(s,a),h=d.array.has(a),c=U(u);N(n,a,c),h?(m.array.next({name:a,values:U(n)}),(D.isDirty||D.dirtyFields||v.isDirty||v.dirtyFields)&&o.shouldDirty&&m.state.next({name:a,dirtyFields:we(i,n),isDirty:V(a,c)})):f&&!f._f&&!Q(c)?j(a,c,o):B(a,c,o),mt(a,d)?m.state.next({...r,name:a,values:U(n)}):m.state.next({name:l.mount?a:void 0,values:U(n)})},J=async a=>{l.mount=!0;const u=a.target;let o=u.name,f=!0;const h=g(s,o),c=b=>{f=Number.isNaN(b)||me(b)&&isNaN(b.getTime())||ce(b,g(n,o,b))},y=ft(t.mode),E=ft(t.reValidateMode);if(h){let b,_;const P=u.type?dt(h._f):It(a),H=a.type===nt.BLUR||a.type===nt.FOCUS_OUT,$=!Xt(h._f)&&!t.resolver&&!g(r.errors,o)&&!h._f.deps||tr(H,g(r.touchedFields,o),r.isSubmitted,E,y),G=mt(o,d,H);N(n,o,P),H?(!u||!u.readOnly)&&(h._f.onBlur&&h._f.onBlur(a),w&&w(0)):h._f.onChange&&h._f.onChange(a);const ge=ue(o,P,H),st=!K(ge)||G;if(!H&&m.state.next({name:o,type:a.type,values:U(n)}),$)return(D.isValid||v.isValid)&&(t.mode==="onBlur"?H&&Z():H||Z()),st&&m.state.next({name:o,...G?{}:ge});if(!H&&G&&m.state.next({...r}),t.resolver){const{errors:Ye}=await ie([o]);if(Y([o]),c(P),f){const Tt=yt(r.errors,s,o),it=yt(Ye,s,Tt.name||o);b=it.error,o=it.name,_=K(Ye)}}else Y([o],!0),b=(await pt(h,d.disabled,n,z,t.shouldUseNativeValidation))[o],Y([o]),c(P),f&&(b?_=!1:(D.isValid||v.isValid)&&(_=await q(s,!0)));f&&(h._f.deps&&(!Array.isArray(h._f.deps)||h._f.deps.length>0)&&he(h._f.deps),fe(o,_,b,ge))}},le=(a,u)=>{if(g(r.errors,u)&&a.focus)return a.focus(),1},he=async(a,u={})=>{let o,f;const h=Re(a);if(t.resolver){const c=await ae(T(a)?a:h);o=K(c),f=a?!h.some(y=>g(c,y)):o}else a?(f=(await Promise.all(h.map(async c=>{const y=g(s,c);return await q(y&&y._f?{[c]:y}:y)}))).every(Boolean),!(!f&&!r.isValid)&&Z()):f=o=await q(s);return m.state.next({...!X(a)||(D.isValid||v.isValid)&&o!==r.isValid?{}:{name:a},...t.resolver||!a?{isValid:o}:{},errors:r.errors}),u.shouldFocus&&!f&&Ne(s,le,a?h:d.mount),f},Oe=(a,u)=>{let o={...l.mount?n:i};return u&&(o=At(u.dirtyFields?r.dirtyFields:r.touchedFields,o)),T(a)?o:X(a)?g(o,a):a.map(f=>g(o,f))},x=(a,u)=>({invalid:!!g((u||r).errors,a),isDirty:!!g((u||r).dirtyFields,a),error:g((u||r).errors,a),isValidating:!!g(r.validatingFields,a),isTouched:!!g((u||r).touchedFields,a)}),Fe=a=>{a&&Re(a).forEach(u=>k(r.errors,u)),m.state.next({errors:a?r.errors:{}})},Ee=(a,u,o)=>{const f=(g(s,a,{_f:{}})._f||{}).ref,h=g(r.errors,a)||{},{ref:c,message:y,type:E,...b}=h;N(r.errors,a,{...b,...u,ref:f}),m.state.next({name:a,errors:r.errors,isValid:!1}),o&&o.shouldFocus&&f&&f.focus&&f.focus()},Pe=(a,u)=>te(a)?m.state.subscribe({next:o=>"values"in o&&a(A(void 0,u),o)}):A(a,u,!0),Te=a=>m.state.subscribe({next:u=>{er(a.name,u.name,a.exact)&&Zt(u,a.formState||D,He,a.reRenderRoot)&&a.callback({values:{...n},...r,...u,defaultValues:i})}}).unsubscribe,$e=a=>(l.mount=!0,v={...v,...a.formState},Te({...a,formState:{...C,...a.formState}})),Ve=(a,u={})=>{for(const o of a?Re(a):d.mount)d.mount.delete(o),d.array.delete(o),u.keepValue||(k(s,o),k(n,o)),!u.keepError&&k(r.errors,o),!u.keepDirty&&k(r.dirtyFields,o),!u.keepTouched&&k(r.touchedFields,o),!u.keepIsValidating&&k(r.validatingFields,o),!t.shouldUnregister&&!u.keepDefaultValue&&k(i,o);m.state.next({values:U(n)}),m.state.next({...r,...u.keepDirty?{isDirty:V()}:{}}),!u.keepIsValid&&Z()},Me=({disabled:a,name:u})=>{(se(a)&&l.mount||a||d.disabled.has(u))&&(a?d.disabled.add(u):d.disabled.delete(u))},Ae=(a,u={})=>{let o=g(s,a);const f=se(u.disabled)||se(t.disabled);return N(s,a,{...o||{},_f:{...o&&o._f?o._f:{ref:{name:a}},name:a,mount:!0,...u}}),d.mount.add(a),o?Me({disabled:se(u.disabled)?u.disabled:t.disabled,name:a}):M(a,!0,u.value),{...f?{disabled:u.disabled||t.disabled}:{},...t.progressive?{required:!!u.required,min:De(u.min),max:De(u.max),minLength:De(u.minLength),maxLength:De(u.maxLength),pattern:De(u.pattern)}:{},name:a,onChange:J,onBlur:J,ref:h=>{if(h){Ae(a,u),o=g(s,a);const c=T(h.value)&&h.querySelectorAll&&h.querySelectorAll("input,select,textarea")[0]||h,y=Yt(c),E=o._f.refs||[];if(y?E.find(b=>b===c):c===o._f.ref)return;N(s,a,{_f:{...o._f,...y?{refs:[...E.filter(Ke),c,...Array.isArray(g(i,a))?[{}]:[]],ref:{type:c.type,name:a}}:{ref:c}}}),M(a,!1,void 0,c)}else o=g(s,a,{}),o._f&&(o._f.mount=!1),(t.shouldUnregister||u.shouldUnregister)&&!(Bt(d.array,a)&&l.action)&&d.unMount.add(a)}}},xe=()=>t.shouldFocusError&&Ne(s,le,d.mount),je=a=>{se(a)&&(m.state.next({disabled:a}),Ne(s,(u,o)=>{const f=g(s,o);f&&(u.disabled=f._f.disabled||a,Array.isArray(f._f.refs)&&f._f.refs.forEach(h=>{h.disabled=f._f.disabled||a}))},0,!1))},Le=(a,u)=>async o=>{let f;o&&(o.preventDefault&&o.preventDefault(),o.persist&&o.persist());let h=U(n);if(m.state.next({isSubmitting:!0}),t.resolver){const{errors:c,values:y}=await ie();Y(),r.errors=c,h=U(y)}else await q(s);if(d.disabled.size)for(const c of d.disabled)k(h,c);if(k(r.errors,"root"),K(r.errors)){m.state.next({errors:{}});try{await a(h,o)}catch(c){f=c}}else u&&await u({...r.errors},o),xe(),setTimeout(xe);if(m.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:K(r.errors)&&!f,submitCount:r.submitCount+1,errors:r.errors}),f)throw f},ke=(a,u={})=>{g(s,a)&&(T(u.defaultValue)?W(a,U(g(i,a))):(W(a,u.defaultValue),N(i,a,U(u.defaultValue))),u.keepTouched||k(r.touchedFields,a),u.keepDirty||(k(r.dirtyFields,a),r.isDirty=u.defaultValue?V(a,U(g(i,a))):V()),u.keepError||(k(r.errors,a),D.isValid&&Z()),m.state.next({...r}))},Ie=(a,u={})=>{const o=a?U(a):i,f=U(o),h=K(a),c=h?i:f;if(u.keepDefaultValues||(i=o),!u.keepValues){if(u.keepDirtyValues){const y=new Set([...d.mount,...Object.keys(we(i,n))]);for(const E of Array.from(y)){const b=g(r.dirtyFields,E),_=g(n,E),P=g(c,E);b&&!T(_)?N(c,E,_):!b&&!T(P)&&W(E,P)}}else{if(Qe&&T(a))for(const y of d.mount){const E=g(s,y);if(E&&E._f){const b=Array.isArray(E._f.refs)?E._f.refs[0]:E._f.ref;if(Ue(b)){const _=b.closest("form");if(_){_.reset();break}}}}if(u.keepFieldsRef)for(const y of d.mount)W(y,g(c,y));else s={}}n=t.shouldUnregister?u.keepDefaultValues?U(i):{}:U(c),m.array.next({values:{...c}}),m.state.next({values:{...c}})}d={mount:u.keepDirtyValues?d.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},l.mount=!D.isValid||!!u.keepIsValid||!!u.keepDirtyValues||!t.shouldUnregister&&!K(c),l.watch=!!t.shouldUnregister,l.keepIsValid=!!u.keepIsValid,l.action=!1,u.keepErrors||(r.errors={}),m.state.next({submitCount:u.keepSubmitCount?r.submitCount:0,isDirty:h?!1:u.keepDirty?r.isDirty:!!(u.keepDefaultValues&&!ce(a,i)),isSubmitted:u.keepIsSubmitted?r.isSubmitted:!1,dirtyFields:h?{}:u.keepDirtyValues?u.keepDefaultValues&&n?we(i,n):r.dirtyFields:u.keepDefaultValues&&a?we(i,a):u.keepDirty?r.dirtyFields:{},touchedFields:u.keepTouched?r.touchedFields:{},errors:u.keepErrors?r.errors:{},isSubmitSuccessful:u.keepIsSubmitSuccessful?r.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:i})},Se=(a,u)=>Ie(te(a)?a(n):a,{...t.resetOptions,...u}),We=(a,u={})=>{const o=g(s,a),f=o&&o._f;if(f){const h=f.refs?f.refs[0]:f.ref;h.focus&&setTimeout(()=>{h.focus(),u.shouldSelect&&te(h.select)&&h.select()})}},He=a=>{r={...r,...a}},_e={control:{register:Ae,unregister:Ve,getFieldState:x,handleSubmit:Le,setError:Ee,_subscribe:Te,_runSchema:ie,_updateIsValidating:Y,_focusError:xe,_getWatch:A,_getDirty:V,_setValid:Z,_setFieldArray:S,_setDisabledField:Me,_setErrors:L,_getFieldArray:R,_reset:Ie,_resetDefaultValues:()=>te(t.defaultValues)&&t.defaultValues().then(a=>{Se(a,t.resetOptions),m.state.next({isLoading:!1})}),_removeUnmounted:oe,_disableForm:je,_subjects:m,_proxyFormState:D,get _fields(){return s},get _formValues(){return n},get _state(){return l},set _state(a){l=a},get _defaultValues(){return i},get _names(){return d},set _names(a){d=a},get _formState(){return r},get _options(){return t},set _options(a){t={...t,...a}}},subscribe:$e,trigger:he,register:Ae,handleSubmit:Le,watch:Pe,setValue:W,getValues:Oe,reset:Se,resetField:ke,clearErrors:Fe,unregister:Ve,setError:Ee,setFocus:We,getFieldState:x};return{..._e,formControl:_e}}function nr(e={}){const t=F.useRef(void 0),r=F.useRef(void 0),[s,i]=F.useState({isDirty:!1,isValidating:!1,isLoading:te(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:te(e.defaultValues)?void 0:e.defaultValues});if(!t.current)if(e.formControl)t.current={...e.formControl,formState:s},e.defaultValues&&!te(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:l,...d}=ar(e);t.current={...d,formState:s}}const n=t.current.control;return n._options=e,jt(()=>{const l=n._subscribe({formState:n._proxyFormState,callback:()=>i({...n._formState}),reRenderRoot:!0});return i(d=>({...d,isReady:!0})),n._formState.isReady=!0,l},[n]),F.useEffect(()=>n._disableForm(e.disabled),[n,e.disabled]),F.useEffect(()=>{e.mode&&(n._options.mode=e.mode),e.reValidateMode&&(n._options.reValidateMode=e.reValidateMode)},[n,e.mode,e.reValidateMode]),F.useEffect(()=>{e.errors&&(n._setErrors(e.errors),n._focusError())},[n,e.errors]),F.useEffect(()=>{e.shouldUnregister&&n._subjects.state.next({values:n._getWatch()})},[n,e.shouldUnregister]),F.useEffect(()=>{if(n._proxyFormState.isDirty){const l=n._getDirty();l!==s.isDirty&&n._subjects.state.next({isDirty:l})}},[n,s.isDirty]),F.useEffect(()=>{var l;e.values&&!ce(e.values,r.current)?(n._reset(e.values,{keepFieldsRef:!0,...n._options.resetOptions}),!((l=n._options.resetOptions)===null||l===void 0)&&l.keepIsValid||n._setValid(),r.current=e.values,i(d=>({...d}))):n._resetDefaultValues()},[n,e.values]),F.useEffect(()=>{n._state.mount||(n._setValid(),n._state.mount=!0),n._state.watch&&(n._state.watch=!1,n._subjects.state.next({...n._formState})),n._removeUnmounted()}),t.current.formState=$t(s,n),t.current}function ur(){const e=new Date;return{NOW:e,TODAY:new Date(e.getFullYear(),e.getMonth(),e.getDate()),CURRENT_USER:{EmpId:1,Email:"user@example.com",FirstName:"John",LastName:"Doe",Role:"User"},CURRENT_USER_ID:1}}const or={CONCAT:(...e)=>e.map(t=>String(t||"")).join(""),TRIM:e=>String(e||"").trim(),LENGTH:e=>String(e||"").length,UPPER:e=>String(e||"").toUpperCase(),LOWER:e=>String(e||"").toLowerCase(),SUBSTRING:(e,t,r)=>{const s=String(e||"");return r!==void 0?s.substring(t,t+r):s.substring(t)},CONTAINS:(e,t)=>String(e||"").includes(String(t||"")),YEAR:e=>new Date(e).getFullYear(),MONTH:e=>new Date(e).getMonth()+1,DAY:e=>new Date(e).getDate(),DATE_DIFF:(e,t)=>{const r=new Date(e),s=new Date(t),i=Math.abs(r.getTime()-s.getTime());return Math.ceil(i/(1e3*60*60*24))},ADD_DAYS:(e,t)=>{const r=new Date(e);return r.setDate(r.getDate()+t),r},ADD_MONTHS:(e,t)=>{const r=new Date(e);return r.setMonth(r.getMonth()+t),r},SUM:(...e)=>e.reduce((t,r)=>t+(Number(r)||0),0),AVG:(...e)=>{const t=e.filter(r=>!isNaN(Number(r)));return t.length>0?t.reduce((r,s)=>r+Number(s),0)/t.length:0},MIN:(...e)=>Math.min(...e.map(t=>Number(t)||0)),MAX:(...e)=>Math.max(...e.map(t=>Number(t)||0)),ROUND:e=>Math.round(Number(e)||0),FLOOR:e=>Math.floor(Number(e)||0),CEIL:e=>Math.ceil(Number(e)||0),ABS:e=>Math.abs(Number(e)||0),IF:(e,t,r)=>e?t:r,IS_NULL:e=>e==null,IS_EMPTY:e=>!e||String(e).trim()==="",IS_NUMBER:e=>!isNaN(Number(e))&&e!==""&&e!==null&&e!==void 0,IS_DATE:e=>{const t=new Date(e);return!isNaN(t.getTime())},AUTO_NUMBER:()=>Math.floor(Math.random()*1e4)+1e3,UUID:()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=Math.random()*16|0;return(e=="x"?t:t&3|8).toString(16)}),ARRAY_LENGTH:e=>Array.isArray(e)?e.length:0,ARRAY_CONTAINS:(e,t)=>Array.isArray(e)?e.includes(t):!1,ARRAY_JOIN:(e,t=",")=>Array.isArray(e)?e.join(t):""};function de(e,t){var r;switch(e.Type){case"Literal":return e.Value;case"SystemIdentifier":if(e.Property){const p=t.systemValues[e.Name];return ze(p,e.Property.Name)}return t.systemValues[e.Name];case"Identifier":if(e.Property){const p=bt(e,t);return ze(p,e.Property.Name)}return bt(e,t);case"MemberExpression":if(!e.Arguments||e.Arguments.length===0)throw new Error("MemberExpression requires Arguments array");const s=de(e.Arguments[0],t),i=(r=e.Arguments[0].Property)==null?void 0:r.Name;return i?ze(s,i):s;case"BinaryExpression":if(!e.Arguments||e.Arguments.length!==2)throw new Error("BinaryExpression requires exactly 2 arguments");const n=de(e.Arguments[0],t),l=de(e.Arguments[1],t);return lr(e.Operator,n,l);case"LogicalExpression":if(!e.Arguments||e.Arguments.length<2)throw new Error("LogicalExpression requires at least 2 arguments");return cr(e.Operator,e.Arguments,t);case"CallExpression":if(!e.Callee)throw new Error("CallExpression requires Callee");const d=or[e.Callee];if(!d)throw new Error(`Unknown function: ${e.Callee}`);const w=(e.Arguments||[]).map(p=>de(p,t));return d(...w);case"AssignmentExpression":if(!e.Arguments||e.Arguments.length!==1)throw new Error("AssignmentExpression requires exactly 1 argument");return de(e.Arguments[0],t);default:throw new Error(`Unknown expression type: ${e.Type}`)}}function bt(e,t){const{Name:r,Source:s}=e;if(!r)throw new Error("Identifier requires Name");switch(s){case"Input":default:return t.formValues[r]}}function ze(e,t){if(!(!e||typeof e!="object"))return e[t]}function lr(e,t,r){const s=i=>i==null?0:typeof i=="number"?i:typeof i=="object"&&i!==null&&"value"in i?Number(i.value)||0:Number(i)||0;switch(e){case"==":return t==r;case"!=":return t!=r;case">":return s(t)>s(r);case"<":return s(t)<s(r);case">=":return s(t)>=s(r);case"<=":return s(t)<=s(r);case"+":return s(t)+s(r);case"-":return s(t)-s(r);case"*":return s(t)*s(r);case"/":const i=s(r);return i!==0?s(t)/i:0;default:throw new Error(`Unknown binary operator: ${e}`)}}function cr(e,t,r){switch(e){case"AND":return t.every(s=>!!de(s,r));case"OR":return t.some(s=>!!de(s,r));default:throw new Error(`Unknown logical operator: ${e}`)}}function Nt(e,t,r={}){const s={formValues:t,systemValues:ur(),referenceData:r};try{return de(e,s)}catch(i){return console.warn("Expression evaluation failed:",i),!1}}function wt(e,t,r={}){const s=[];for(const i of e)try{Nt(i.Condition.ExpressionTree,t,r)||s.push({isValid:!1,message:i.Message,fieldName:i.Id})}catch(n){console.warn(`Cross-field validation rule ${i.Id} failed:`,n)}return s}function dr(e,t={},r={}){try{return Nt(e,t,r)}catch(s){return console.warn("Default value calculation failed:",s),null}}function vt(e,t){var d,w,p;const r=((d=e.Expression)==null?void 0:d.toLowerCase())||"",s=((w=e.Name)==null?void 0:w.toLowerCase())||"",i=((p=e.Id)==null?void 0:p.toLowerCase())||"",n=t.toLowerCase();return s.includes("required")||i.includes("required")?!0:[`${n} != null`,`${n} != ''`,`trim(${n}) != ''`,`${n}!=null`,`${n}!=''`].some(C=>r.includes(C))}function fr(e){const t={...e};t.Rules||(t.Rules={Validation:{},Computation:{},BusinessLogic:{}}),t.Rules.Validation||(t.Rules.Validation={}),t.Rules.Computation||(t.Rules.Computation={}),t.Rules.BusinessLogic||(t.Rules.BusinessLogic={});const r={...t.Fields};return Object.entries(r).forEach(([s,i])=>{let n=i.Required||!1;if(i.Validation&&Array.isArray(i.Validation))if(i.Validation.length>0&&typeof i.Validation[0]=="object"){const l=[];i.Validation.forEach(d=>{t.Rules.Validation[d.Id]=d,l.push(d.Id),vt(d,s)&&(n=!0)}),r[s]={...i,Validation:l,Required:n}}else i.Validation.forEach(d=>{var p;const w=(p=t.Rules.Validation)==null?void 0:p[d];w&&vt(w,s)&&(n=!0)}),n&&!i.Required&&(r[s]={...i,Required:!0});if(i.Formula){const l=`RULE_COMPUTE_${s.toUpperCase()}`;t.Rules.Computation[l]={Id:l,Name:i.Formula.Id||`Compute ${s}`,Description:i.Formula.Description||`Computes value for ${s}`,Expression:i.Formula.Expression,ExpressionTree:i.Formula.ExpressionTree,ResultType:i.Type}}}),t.Fields=r,t}function hr(e){var r,s,i;const t={validation:{},computation:{},businessLogic:{}};return(r=e.Rules)!=null&&r.Validation&&(t.validation={...e.Rules.Validation}),(s=e.Rules)!=null&&s.Computation&&(t.computation={...e.Rules.Computation}),(i=e.Rules)!=null&&i.BusinessLogic&&(t.businessLogic={...e.Rules.BusinessLogic}),t}function mr(e){var s;const t={};if(!((s=e.Rules)!=null&&s.Computation))return t;const r=Object.entries(e.Fields).filter(([i,n])=>n.Computed).map(([i])=>i);return r.sort((i,n)=>n.length-i.length),Object.entries(e.Rules.Computation).forEach(([i,n])=>{const l=i.toUpperCase().replace(/[_-]/g,"");for(const w of r){const p=w.toUpperCase().replace(/[_-]/g,"");if(l.includes(p)){t[i]=w;return}}const d=`${n.Name||""} ${n.Description||""}`.toLowerCase();for(const w of r)if(d.includes(w.toLowerCase())){t[i]=w;return}}),t}function yr(e,t){const r={};Object.keys(e.Fields).forEach(i=>{r[i]={validation:[],computation:[],businessLogic:[]}}),Object.entries(e.Fields).forEach(([i,n])=>{n.Validation&&Array.isArray(n.Validation)&&n.Validation.forEach(d=>{t.validation[d]?r[i].validation.push(d):t.computation[d]?r[i].computation.push(d):t.businessLogic[d]&&r[i].businessLogic.push(d)}),n.Formula&&Object.entries(t.computation).forEach(([l,d])=>{var w;d.Expression===((w=n.Formula)==null?void 0:w.Expression)&&(r[i].computation.includes(l)||r[i].computation.push(l))})});const s=mr(e);return Object.entries(s).forEach(([i,n])=>{r[n]&&!r[n].computation.includes(i)&&r[n].computation.push(i)}),r}function gr(e,t){const r={},s={editable:!0,readable:!0,hidden:!1};return Object.keys(e.Fields).forEach(i=>{var w,p,C,D,v,m;if(!t||!((w=e.RolePermission)!=null&&w[t])){r[i]=s;return}const n=e.RolePermission[t],l=((p=n.Editable)==null?void 0:p.includes(i))||((C=n.Editable)==null?void 0:C.includes("*"))||!1,d=((D=n.ReadOnly)==null?void 0:D.includes(i))||((v=n.ReadOnly)==null?void 0:v.includes("*"))||l;r[i]={editable:l&&!((m=n.ReadOnly)!=null&&m.includes(i)),readable:d,hidden:!d}}),r}function pr(e,t){switch(e){case"String":return t.toLowerCase().includes("email")?"email":t.toLowerCase().includes("password")?"password":"text";case"Number":return"number";case"Boolean":return"checkbox";case"Date":return"date";case"DateTime":return"datetime-local";case"Reference":return"reference";case"Array":case"Object":return"textarea";default:return"text"}}function Ct(e){return e.replace(/([A-Z])/g," $1").replace(/^./,t=>t.toUpperCase()).replace(/_/g," ").trim()}function br(e,t,r){const s={};switch(t.Required&&(s.required={value:!0,message:`${Ct(e)} is required`}),t.Type){case"Number":s.valueAsNumber=!0;break;case"Date":case"DateTime":s.valueAsDate=!0;break}return t.Validation&&t.Validation.length>0&&(s.validate=()=>!0),s}function wr(e){return e.Values?e.Values.Mode==="Static"&&e.Values.Items?e.Values.Items.map(t=>({value:t.Value,label:t.Label})):e.Values.Mode==="Dynamic"&&e.Values.Reference?[]:[]:[]}function vr(e,t={}){if(!e.DefaultValue)switch(e.Type){case"Boolean":return!1;case"Number":return 0;case"String":return"";case"Array":return[];case"Object":return{};default:return}return dr(e.DefaultValue.ExpressionTree,t)}function Fr(e,t,r,s={},i,n){const l={editable:!0,readable:!0,hidden:!1},w=n||{validation:[],computation:[],businessLogic:[]},p=t.Computed||!!t.Formula||w.computation.length>0,C=br(e,t);return p&&(C.disabled=!0),{name:e,type:pr(t.Type,e),label:t.Name||Ct(e),required:t.Required||!1,computed:p,defaultValue:vr(t,s),options:wr(t),validation:C,description:t.Description,_bdoField:t,permission:i||l,rules:w}}function Er(e,t={},r){let s=e;s=fr(s);const i={},n=[],l=[],d=[],w=[],p=hr(s),C=yr(s,p),D=gr(s,r);for(const[v,m]of Object.entries(s.Fields)){if(v.startsWith("_")&&!["_id"].includes(v))continue;const z=D[v];if(z.hidden)continue;const O=Fr(v,m,s.Fields,t,z,C[v]||{validation:[],computation:[],businessLogic:[]});i[v]=O,n.push(v),O.computed&&l.push(v),O.required&&d.push(v)}return{fields:i,fieldOrder:n,computedFields:l,requiredFields:d,crossFieldValidation:w,rules:p,fieldRules:C,rolePermissions:s.RolePermission}}function Vr(e){var r;if(e.type!=="reference"||!((r=e._bdoField.Values)!=null&&r.Reference))return null;const t=e._bdoField.Values.Reference;return{businessObject:t.BusinessObject,fields:t.Fields||["_id"],filters:t.Filters,sort:t.Sort}}function Ar(e){const t={};for(const[r,s]of Object.entries(e.fields))if(s.type==="reference"){const i=Vr(s);i&&(t[r]=i)}return t}async function xr(e){try{const r=(await kt.getBdoSchema(e)).BOBlob;if(!r||typeof r!="object"||!r.Fields)throw new Error(`Invalid BDO schema response for ${e}`);return r}catch(t){throw console.error(`Schema fetch error for ${e}:`,t),new Error(`Failed to load form schema: ${t instanceof Error?t.message:"Unknown error"}`)}}async function Sr(e,t=3){let r;for(let s=1;s<=t;s++)try{return await xr(e)}catch(i){if(r=i,s<t){const n=Math.min(1e3*Math.pow(2,s-1),5e3);await new Promise(l=>setTimeout(l,n));continue}}throw r}async function _r(e,t){try{return await ye.api(e).get(t)}catch(r){throw console.error(`Record fetch error for ${e}/${t}:`,r),new Error(`Failed to load record: ${r instanceof Error?r.message:"Unknown error"}`)}}async function Dr(e,t,r,s){try{let i;if(t==="create")return i=await ye.api(e).create(r),{success:!0,data:i,recordId:i._id||s};if(t==="update"){if(!s)throw new Error("Record ID is required for update operations");return i=await ye.api(e).update(s,r),{success:!0,data:i,recordId:i._id||s}}else throw new Error(`Unsupported operation: ${t}`)}catch(i){return console.error("Form submission error:",i),{success:!1,error:new Error(`Failed to ${t} record: ${i instanceof Error?i.message:"Unknown error"}`)}}}async function Rr(e,t=["_id"],r,s){try{const i={};return r&&(i.Filter=r),s&&(i.Sort=s),t.length>0&&(i.Field=t),(await ye.api(e).list(i)).Data||[]}catch(i){return console.error(`Reference data fetch error for ${e}:`,i),[]}}async function Nr(e){const t={},r=Object.entries(e).map(async([i,n])=>{try{const l=await Rr(n.businessObject,n.fields,n.filters,n.sort);return[i,l]}catch(l){return console.warn(`Failed to fetch reference data for ${i}:`,l),[i,[]]}});return(await Promise.allSettled(r)).forEach(i=>{if(i.status==="fulfilled"){const[n,l]=i.value;t[n]=Array.isArray(l)?l:[]}}),t}function Cr(e,t,r="create",s){const i={};return Object.keys(e).forEach(n=>{const l=n,d=e[l];if(!t.includes(n)&&d!==void 0){if(r==="create"){i[l]=d;return}if(r==="update"){if(!s){i[l]=d;return}const w=s[l];JSON.stringify(d)!==JSON.stringify(w)&&(i[l]=d)}}}),i}function Or(e){var t,r,s,i;return typeof e=="string"?e:e!=null&&e.message?e.message:(r=(t=e==null?void 0:e.response)==null?void 0:t.data)!=null&&r.message?e.response.data.message:(i=(s=e==null?void 0:e.response)==null?void 0:s.data)!=null&&i.error?e.response.data.error:"An unexpected error occurred"}function Tr(e){var t,r;return!navigator.onLine||(e==null?void 0:e.code)==="NETWORK_ERROR"||((t=e==null?void 0:e.message)==null?void 0:t.toLowerCase().includes("network"))||((r=e==null?void 0:e.message)==null?void 0:r.toLowerCase().includes("fetch"))}function Mr(e){var t,r,s;return(e==null?void 0:e.status)===400||((t=e==null?void 0:e.response)==null?void 0:t.status)===400||((r=e==null?void 0:e.message)==null?void 0:r.toLowerCase().includes("validation"))||((s=e==null?void 0:e.message)==null?void 0:s.toLowerCase().includes("invalid"))}const ve=new Map;function Lr(e,t,r=10){ve.set(e,{data:t,timestamp:Date.now(),ttl:r*60*1e3})}function kr(e){const t=ve.get(e);return t?Date.now()-t.timestamp>t.ttl?(ve.delete(e),null):t.data:null}function Ir(e){e?Array.from(ve.keys()).filter(r=>r.startsWith(e)).forEach(r=>ve.delete(r)):ve.clear()}async function Ur(e){const t=`schema:${e}`,r=kr(t);if(r)return r;const s=await Sr(e);return Lr(t,s,30),s}class Ft{constructor(t=1e3){pe(this,"cache",new Map);pe(this,"maxSize");this.maxSize=t}get(t){const r=this.cache.get(t);return r!==void 0&&(this.cache.delete(t),this.cache.set(t,r)),r}set(t,r){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){const s=this.cache.keys().next().value;this.cache.delete(s)}this.cache.set(t,r)}clear(){this.cache.clear()}}function Br(e){const t=new Set;function r(s){switch(s.Type){case"Identifier":s.Name&&!s.Name.startsWith("$")&&t.add(s.Name);break;case"MemberExpression":s.Arguments&&s.Arguments.forEach(r);break;case"CallExpression":case"BinaryExpression":case"LogicalExpression":s.Arguments&&s.Arguments.forEach(r);break}}return r(e),t}class qr{constructor(){pe(this,"resultCache",new Ft(500));pe(this,"dependencyCache",new Ft(200));pe(this,"compiledExpressions",new Map)}createCacheKey(t,r){const s=JSON.stringify(t),i=JSON.stringify(r);return`${s}:${i}`}getDependencies(t){const r=JSON.stringify(t);let s=this.dependencyCache.get(r);return s||(s=Br(t),this.dependencyCache.set(r,s)),s}getCachedResult(t,r,s){if(!s)return;const i=this.getDependencies(t);for(const l of i)if(r[l]!==s[l])return;const n=this.createCacheKey(t,r);return this.resultCache.get(n)}evaluate(t,r,s){const i=this.getCachedResult(t,r,s);if(i!==void 0)return i;const n=this.evaluateNode(t,r),l=this.createCacheKey(t,r);return this.resultCache.set(l,n),n}evaluateNode(t,r){switch(t.Type){case"Literal":return t.Value;case"Identifier":return this.getIdentifierValue(t,r);case"BinaryExpression":return this.evaluateBinaryExpression(t,r);case"LogicalExpression":return this.evaluateLogicalExpression(t,r);case"CallExpression":return this.evaluateCallExpression(t,r);case"MemberExpression":return this.evaluateMemberExpression(t,r);default:throw new Error(`Unsupported expression type: ${t.Type}`)}}getIdentifierValue(t,r){if(t.Name){if(t.Name==="NOW")return new Date;if(t.Name==="TODAY"){const s=new Date;return new Date(s.getFullYear(),s.getMonth(),s.getDate())}return t.Name==="CURRENT_USER_ID"?1:t.Name==="CURRENT_USER"?{EmpId:1,Email:"user@example.com",FirstName:"John",LastName:"Doe",Role:"User"}:r[t.Name]}}evaluateBinaryExpression(t,r){if(!t.Arguments||t.Arguments.length!==2)throw new Error("Binary expression requires exactly 2 arguments");const s=this.evaluateNode(t.Arguments[0],r),i=this.evaluateNode(t.Arguments[1],r);switch(t.Operator){case"==":return s==i;case"!=":return s!=i;case"===":return s===i;case"!==":return s!==i;case"<":return Number(s)<Number(i);case"<=":return Number(s)<=Number(i);case">":return Number(s)>Number(i);case">=":return Number(s)>=Number(i);case"+":return Number(s)+Number(i);case"-":return Number(s)-Number(i);case"*":return Number(s)*Number(i);case"/":return Number(s)/Number(i);case"%":return Number(s)%Number(i);default:throw new Error(`Unsupported binary operator: ${t.Operator}`)}}evaluateLogicalExpression(t,r){if(!t.Arguments||t.Arguments.length<2)throw new Error("Logical expression requires at least 2 arguments");switch(t.Operator){case"AND":for(const s of t.Arguments)if(!this.evaluateNode(s,r))return!1;return!0;case"OR":for(const s of t.Arguments)if(this.evaluateNode(s,r))return!0;return!1;default:throw new Error(`Unsupported logical operator: ${t.Operator}`)}}evaluateCallExpression(t,r){var i;if(!t.Callee)throw new Error("Call expression requires a function name");const s=((i=t.Arguments)==null?void 0:i.map(n=>this.evaluateNode(n,r)))||[];switch(t.Callee){case"CONCAT":return s.map(p=>String(p||"")).join("");case"TRIM":return String(s[0]||"").trim();case"LENGTH":return String(s[0]||"").length;case"UPPER":return String(s[0]||"").toUpperCase();case"LOWER":return String(s[0]||"").toLowerCase();case"CONTAINS":return String(s[0]||"").includes(String(s[1]||""));case"MATCHES":return new RegExp(String(s[1])).test(String(s[0]||""));case"SUM":return s.reduce((p,C)=>p+(Number(C)||0),0);case"AVG":const n=s.filter(p=>!isNaN(Number(p)));return n.length>0?n.reduce((p,C)=>p+Number(C),0)/n.length:0;case"MIN":return Math.min(...s.map(p=>Number(p)||0));case"MAX":return Math.max(...s.map(p=>Number(p)||0));case"ROUND":return Math.round(Number(s[0])||0);case"FLOOR":return Math.floor(Number(s[0])||0);case"CEIL":return Math.ceil(Number(s[0])||0);case"ABS":return Math.abs(Number(s[0])||0);case"YEAR":return new Date(s[0]).getFullYear();case"MONTH":return new Date(s[0]).getMonth()+1;case"DAY":return new Date(s[0]).getDate();case"DATE_DIFF":const l=new Date(s[0]),d=new Date(s[1]),w=Math.abs(l.getTime()-d.getTime());return Math.ceil(w/(1e3*60*60*24));case"IF":return s[0]?s[1]:s[2];case"AUTO_NUMBER":return Math.floor(Math.random()*1e4);default:throw new Error(`Unknown function: ${t.Callee}`)}}evaluateMemberExpression(t,r){var n;if(!t.Arguments||t.Arguments.length===0)throw new Error("Member expression requires arguments");const s=this.evaluateNode(t.Arguments[0],r),i=(n=t.Arguments[0].Property)==null?void 0:n.Name;return i&&s&&typeof s=="object"?s[i]:s}clearCache(){this.resultCache.clear(),this.dependencyCache.clear(),this.compiledExpressions.clear()}}const Ot=new qr;function Pr(e,t,r,s,i){if(!r||r.length===0)return{isValid:!0};const n={...s,[e]:t};for(const l of r)try{if(!Ot.evaluate(l.ExpressionTree,n,i))return{isValid:!1,message:l.Message||`Validation failed for ${l.Name}`,fieldName:e}}catch(d){console.warn(`Validation rule ${l.Id} failed to evaluate:`,d)}return{isValid:!0}}function Et(e){return Array.from(Ot.getDependencies(e))}function $r(e){const{source:t,operation:r,recordId:s,defaultValues:i={},mode:n="onBlur",enabled:l=!0,userRole:d,onSchemaError:w,skipSchemaFetch:p=!1,schema:C,interactionMode:D="interactive"}=e,v=D==="interactive",[m,z]=F.useState(null),[O,Z]=F.useState({}),[Y,S]=F.useState(!1),[ee]=F.useState({}),[L,M]=F.useState(null),[ue,fe]=F.useState(!1),[ie,ae]=F.useState(null),q=F.useRef(!1),oe=F.useRef(null),V=F.useRef(null),A=F.useRef(w);F.useEffect(()=>{A.current=w},[w]);const{data:R,isLoading:B,error:j,refetch:W}=at.useQuery({queryKey:["form-schema",t],queryFn:()=>p?Promise.resolve(C||{}):Ur(t),enabled:l&&(!p||!!C),retry:3,staleTime:30*60*1e3,gcTime:60*60*1e3,throwOnError:!1}),{data:J,isLoading:le,error:he}=at.useQuery({queryKey:["form-record",t,s],queryFn:()=>_r(t,s),enabled:l&&r==="update"&&!!s,retry:3,staleTime:5*60*1e3,gcTime:15*60*1e3,throwOnError:!1}),Oe=F.useMemo(()=>{const u={...i};if(r==="update"&&J&&Object.assign(u,J),m)for(const[o,f]of Object.entries(m.fields))f.defaultValue!==void 0&&!(o in u)&&(u[o]=f.defaultValue);return u},[i,J,r,m]),x=nr({mode:n,defaultValues:i,values:r==="update"&&J?Oe:void 0});F.useEffect(()=>{var u;if(R)try{const o=Er(R,{},d);z(o);const f=Ar(o);Object.keys(f).length>0&&Nr(f).then(Z).catch(console.warn)}catch(o){console.error("Schema processing failed:",o),(u=A.current)==null||u.call(A,o)}},[R,d]),F.useEffect(()=>{var u;j&&((u=A.current)==null||u.call(A,j))},[j]),F.useEffect(()=>{if(!v||r!=="create"||!m||!l||L)return;(async()=>{fe(!0),ae(null);try{const f=await ye.api(t).draftInteraction({});M(f._id),f&&typeof f=="object"&&Object.entries(f).forEach(([h,c])=>{if(h==="_id")return;x.getValues(h)!==c&&x.setValue(h,c,{shouldDirty:!1,shouldValidate:!1})})}catch(o){console.error("Failed to create initial draft:",o),ae(o)}finally{fe(!1)}})()},[v,r,m,l,L,t,x]);const Fe=F.useMemo(()=>{if(!m)return[];const u=new Set,o=new Set(m.computedFields);return Object.entries(m.fieldRules).forEach(([f,h])=>{h.computation.forEach(c=>{const y=m.rules.computation[c];y!=null&&y.ExpressionTree&&Et(y.ExpressionTree).forEach(b=>{m.fields[b]&&b!==f&&!o.has(b)&&u.add(b)})})}),m.computedFields.forEach(f=>{const h=m.fields[f];h._bdoField.Formula&&Et(h._bdoField.Formula.ExpressionTree).forEach(y=>{m.fields[y]&&y!==f&&!o.has(y)&&u.add(y)})}),Array.from(u)},[m]),Ee=F.useCallback(async u=>{if(!(!m||!(v||Fe.length>0&&Fe.includes(u)))){if(v&&r==="create"&&!L){console.warn("Interactive create mode: waiting for draft ID");return}q.current||(oe.current&&clearTimeout(oe.current),oe.current=setTimeout(()=>{if(!m||q.current)return;const f=x.getValues();(async()=>{q.current=!0;try{const c=ye.api(t),y={};r==="update"&&s&&"_id"in f&&(y._id=f._id),v&&r==="create"&&L&&(y._id=L);const E=V.current??(r==="update"?J:null)??{},b=new Set(m.computedFields||[]);Object.keys(f).forEach($=>{if($==="_id"||b.has($))return;const G=f[$],ge=E[$];JSON.stringify(G)!==JSON.stringify(ge)&&(G!==""&&G!==null&&G!==void 0)&&(y[$]=G)});const _=y,P={...V.current};Object.keys(f).forEach($=>{b.has($)||(P[$]=f[$])}),V.current=P;let H;r==="update"&&s?H=await c.draftPatch(s,_):v&&L?H=await c.draftInteraction(_):H=await c.draft(_),H&&typeof H=="object"&&(Object.entries(H).forEach(([$,G])=>{f[$]!==G&&x.setValue($,G,{shouldDirty:!1,shouldValidate:!1})}),Object.entries(H).forEach(([$,G])=>{b.has($)&&(V.current[$]=G)}))}catch(c){console.warn("Failed to compute fields via API:",c)}finally{q.current=!1}})()},300))}},[m,r,s,J,t,x,Fe,v,L]),Pe=F.useCallback(async()=>{if(!m)return!1;const u=x.getValues();if(!await x.trigger())return!1;const f=m.crossFieldValidation.map(c=>({Id:c.Id,Condition:{ExpressionTree:c.ExpressionTree},Message:c.Message||`Validation failed for ${c.Name}`})),h=wt(f,u,O);return h.length>0?(h.forEach((c,y)=>{x.setError(`root.crossField${y}`,{type:"validate",message:c.message})}),!1):!0},[m,x.getValues,x.trigger,x.setError,O]),Te=F.useCallback((u,o)=>x.handleSubmit(async(f,h)=>{if(!m){const c=new Error("Schema not loaded");o==null||o(c,h);return}S(!0);try{const c=m.crossFieldValidation.map(_=>({Id:_.Id,Condition:{ExpressionTree:_.ExpressionTree},Message:_.Message||`Validation failed for ${_.Name}`})),y=wt(c,f,O);if(y.length>0){y.forEach((_,P)=>{x.setError(`root.crossField${P}`,{type:"validate",message:_.message})}),o==null||o(x.formState.errors,h);return}const E=Cr(f,m.computedFields,r,J);let b;if(v){const _=ye.api(t);if(r==="create"){if(!L)throw new Error("Interactive create mode requires a draft ID. Draft creation may have failed.");b={success:!0,data:await _.draft({...E,_id:L})}}else b={success:!0,data:await _.draftUpdate(s,E)}}else if(b=await Dr(t,r,E,s),!b.success)throw b.error||new Error("Submission failed");r==="create"&&(x.reset(),v&&M(null)),await(u==null?void 0:u(b.data||f,h))}catch(c){o==null||o(c,h)}finally{S(!1)}},(f,h)=>{o==null||o(f,h)}),[x,m,O,t,r,s,J,v,L]),$e=F.useCallback(u=>(m==null?void 0:m.fields[u])||null,[m]),Ve=F.useCallback(()=>{if(!m)return{};const u={};return Object.entries(m.fields).forEach(([o,f])=>{u[o]=f}),u},[m]),Me=F.useCallback(u=>!!(m!=null&&m.fields[u]),[m]),Ae=F.useCallback(u=>(m==null?void 0:m.requiredFields.includes(u))||!1,[m]),xe=F.useCallback(u=>(m==null?void 0:m.computedFields.includes(u))||!1,[m]),je=F.useCallback(async()=>{await W()},[W]),Le=F.useCallback(()=>{x.clearErrors()},[x]),ke=B||r==="update"&&le||v&&r==="create"&&ue,Ie=ke||Y,Se=j||he||ie,We=!!Se,He=F.useMemo(()=>(m==null?void 0:m.computedFields)||[],[m]),rt=F.useMemo(()=>(m==null?void 0:m.requiredFields)||[],[m]),_e=F.useMemo(()=>{if(!m)return{};const u={};return Object.entries(m.fields).forEach(([o,f])=>{const h={};switch(f.required&&(h.required=`${f.label} is required`),f.permission.editable||(h.disabled=!0),f.type){case"number":h.valueAsNumber=!0;break;case"date":case"datetime-local":h.valueAsDate=!0;break}const c=f.rules.validation;c.length>0&&(h.validate={expressionValidation:y=>{const E=x.getValues();for(const b of c){const _=m.rules.validation[b];if(_){const P=Pr(o,y,[_],E,ee);if(!P.isValid)return P.message||_.Message||"Invalid value"}}return!0}}),u[o]=h}),u},[m,x,O]);return{register:F.useCallback((u,o)=>{const f=_e[u],h=o==null?void 0:o.onBlur,c=async y=>{h&&await h(y);let E=!0;n==="onBlur"||n==="onTouched"||n==="all"?E=await x.trigger(u):E=!x.getFieldState(u,x.formState).error,E&&await Ee(u)};return x.register(u,{...f,...o,onBlur:c})},[x,_e,Ee,n]),handleSubmit:Te,watch:x.watch,setValue:x.setValue,reset:x.reset,errors:x.formState.errors,isValid:x.formState.isValid,isDirty:x.formState.isDirty,isSubmitting:x.formState.isSubmitting||Y,isSubmitSuccessful:x.formState.isSubmitSuccessful,isLoadingInitialData:ke,isLoadingRecord:le,isLoading:Ie,draftId:L,isCreatingDraft:ue,loadError:Se,hasError:We,schema:R,schemaConfig:m,computedFields:He,requiredFields:rt,getField:$e,getFields:Ve,hasField:Me,isFieldRequired:Ae,isFieldComputed:xe,refreshSchema:je,validateForm:Pe,clearErrors:Le}}exports.clearFormCache=Ir;exports.isNetworkError=Tr;exports.isValidationError=Mr;exports.parseApiError=Or;exports.useForm=$r;
1
+ "use strict";var Mt=Object.defineProperty;var Lt=(e,t,r)=>t in e?Mt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var be=(e,t,r)=>Lt(e,typeof t!="symbol"?t+"":t,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("react"),nt=require("@tanstack/react-query"),ge=require("./client-DgtkT50N.cjs"),kt=require("./metadata-0lZAfuTP.cjs");var Re=e=>e.type==="checkbox",ye=e=>e instanceof Date,G=e=>e==null;const At=e=>typeof e=="object";var B=e=>!G(e)&&!Array.isArray(e)&&At(e)&&!ye(e),It=e=>B(e)&&e.target?Re(e.target)?e.target.checked:e.target.value:e,Ut=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,Bt=(e,t)=>e.has(Ut(t)),qt=e=>{const t=e.constructor&&e.constructor.prototype;return B(t)&&t.hasOwnProperty("isPrototypeOf")},Xe=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function P(e){if(e instanceof Date)return new Date(e);const t=typeof FileList<"u"&&e instanceof FileList;if(Xe&&(e instanceof Blob||t))return e;const r=Array.isArray(e);if(!r&&!(B(e)&&qt(e)))return e;const s=r?[]:Object.create(Object.getPrototypeOf(e));for(const i in e)Object.prototype.hasOwnProperty.call(e,i)&&(s[i]=P(e[i]));return s}var $e=e=>/^\w*$/.test(e),M=e=>e===void 0,Ze=e=>Array.isArray(e)?e.filter(Boolean):[],et=e=>Ze(e.replace(/["|']|\]/g,"").split(/\.|\[/)),g=(e,t,r)=>{if(!t||!B(e))return r;const s=($e(t)?[t]:et(t)).reduce((i,n)=>G(i)?i:i[n],e);return M(s)||s===e?M(e[t])?r:e[t]:s},se=e=>typeof e=="boolean",te=e=>typeof e=="function",C=(e,t,r)=>{let s=-1;const i=$e(t)?[t]:et(t),n=i.length,l=n-1;for(;++s<n;){const f=i[s];let w=r;if(s!==l){const b=e[f];w=B(b)||Array.isArray(b)?b:isNaN(+i[s+1])?{}:[]}if(f==="__proto__"||f==="constructor"||f==="prototype")return;e[f]=w,e=e[f]}};const ut={BLUR:"blur",FOCUS_OUT:"focusout"},re={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},ue={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},Pt=v.createContext(null);Pt.displayName="HookFormContext";var $t=(e,t,r,s=!0)=>{const i={defaultValues:t._defaultValues};for(const n in e)Object.defineProperty(i,n,{get:()=>{const l=n;return t._proxyFormState[l]!==re.all&&(t._proxyFormState[l]=!s||re.all),e[l]}});return i};const jt=typeof window<"u"?v.useLayoutEffect:v.useEffect;var X=e=>typeof e=="string",Wt=(e,t,r,s,i)=>X(e)?(s&&t.watch.add(e),g(r,e,i)):Array.isArray(e)?e.map(n=>(s&&t.watch.add(n),g(r,n))):(s&&(t.watchAll=!0),r),Ge=e=>G(e)||!At(e);function fe(e,t,r=new WeakSet){if(Ge(e)||Ge(t))return Object.is(e,t);if(ye(e)&&ye(t))return Object.is(e.getTime(),t.getTime());const s=Object.keys(e),i=Object.keys(t);if(s.length!==i.length)return!1;if(r.has(e)||r.has(t))return!0;r.add(e),r.add(t);for(const n of s){const l=e[n];if(!i.includes(n))return!1;if(n!=="ref"){const f=t[n];if(ye(l)&&ye(f)||B(l)&&B(f)||Array.isArray(l)&&Array.isArray(f)?!fe(l,f,r):!Object.is(l,f))return!1}}return!0}var Ht=(e,t,r,s,i)=>t?{...r[e],types:{...r[e]&&r[e].types?r[e].types:{},[s]:i||!0}}:{},_e=e=>Array.isArray(e)?e:[e],ot=()=>{let e=[];return{get observers(){return e},next:i=>{for(const n of e)n.next&&n.next(i)},subscribe:i=>(e.push(i),{unsubscribe:()=>{e=e.filter(n=>n!==i)}}),unsubscribe:()=>{e=[]}}};function xt(e,t){const r={};for(const s in e)if(e.hasOwnProperty(s)){const i=e[s],n=t[s];if(i&&B(i)&&n){const l=xt(i,n);B(l)&&(r[s]=l)}else e[s]&&(r[s]=n)}return r}var Y=e=>B(e)&&!Object.keys(e).length,tt=e=>e.type==="file",qe=e=>{if(!Xe)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},St=e=>e.type==="select-multiple",rt=e=>e.type==="radio",Yt=e=>rt(e)||Re(e),ze=e=>qe(e)&&e.isConnected;function Kt(e,t){const r=t.slice(0,-1).length;let s=0;for(;s<r;)e=M(e)?s++:e[t[s++]];return e}function zt(e){for(const t in e)if(e.hasOwnProperty(t)&&!M(e[t]))return!1;return!0}function U(e,t){const r=Array.isArray(t)?t:$e(t)?[t]:et(t),s=r.length===1?e:Kt(e,r),i=r.length-1,n=r[i];return s&&delete s[n],i!==0&&(B(s)&&Y(s)||Array.isArray(s)&&zt(s))&&U(e,r.slice(0,-1)),e}var Jt=e=>{for(const t in e)if(te(e[t]))return!0;return!1};function _t(e){return Array.isArray(e)||B(e)&&!Jt(e)}function Qe(e,t={}){for(const r in e){const s=e[r];_t(s)?(t[r]=Array.isArray(s)?[]:{},Qe(s,t[r])):M(s)||(t[r]=!0)}return t}function ve(e,t,r){r||(r=Qe(t));for(const s in e){const i=e[s];if(_t(i))M(t)||Ge(r[s])?r[s]=Qe(i,Array.isArray(i)?[]:{}):ve(i,G(t)?{}:t[s],r[s]);else{const n=t[s];r[s]=!fe(i,n)}}return r}const lt={value:!1,isValid:!1},ct={value:!0,isValid:!0};var Dt=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(r=>r&&r.checked&&!r.disabled).map(r=>r.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!M(e[0].attributes.value)?M(e[0].value)||e[0].value===""?ct:{value:e[0].value,isValid:!0}:ct:lt}return lt},Rt=(e,{valueAsNumber:t,valueAsDate:r,setValueAs:s})=>M(e)?e:t?e===""?NaN:e&&+e:r&&X(e)?new Date(e):s?s(e):e;const dt={isValid:!1,value:null};var Nt=e=>Array.isArray(e)?e.reduce((t,r)=>r&&r.checked&&!r.disabled?{isValid:!0,value:r.value}:t,dt):dt;function ft(e){const t=e.ref;return tt(t)?t.files:rt(t)?Nt(e.refs).value:St(t)?[...t.selectedOptions].map(({value:r})=>r):Re(t)?Dt(e.refs).value:Rt(M(t.value)?e.ref.value:t.value,e)}var Gt=(e,t,r,s)=>{const i={};for(const n of e){const l=g(t,n);l&&C(i,n,l._f)}return{criteriaMode:r,names:[...e],fields:i,shouldUseNativeValidation:s}},Pe=e=>e instanceof RegExp,Se=e=>M(e)?e:Pe(e)?e.source:B(e)?Pe(e.value)?e.value.source:e.value:e,ht=e=>({isOnSubmit:!e||e===re.onSubmit,isOnBlur:e===re.onBlur,isOnChange:e===re.onChange,isOnAll:e===re.all,isOnTouch:e===re.onTouched});const mt="AsyncFunction";var Qt=e=>!!e&&!!e.validate&&!!(te(e.validate)&&e.validate.constructor.name===mt||B(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===mt)),Xt=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),yt=(e,t,r)=>!r&&(t.watchAll||t.watch.has(e)||[...t.watch].some(s=>e.startsWith(s)&&/^\.\w+/.test(e.slice(s.length))));const De=(e,t,r,s)=>{for(const i of r||Object.keys(e)){const n=g(e,i);if(n){const{_f:l,...f}=n;if(l){if(l.refs&&l.refs[0]&&t(l.refs[0],i)&&!s)return!0;if(l.ref&&t(l.ref,l.name)&&!s)return!0;if(De(f,t))break}else if(B(f)&&De(f,t))break}}};function gt(e,t,r){const s=g(e,r);if(s||$e(r))return{error:s,name:r};const i=r.split(".");for(;i.length;){const n=i.join("."),l=g(t,n),f=g(e,n);if(l&&!Array.isArray(l)&&r!==n)return{name:r};if(f&&f.type)return{name:n,error:f};if(f&&f.root&&f.root.type)return{name:`${n}.root`,error:f.root};i.pop()}return{name:r}}var Zt=(e,t,r,s)=>{r(e);const{name:i,...n}=e;return Y(n)||Object.keys(n).length>=Object.keys(t).length||Object.keys(n).find(l=>t[l]===(!s||re.all))},er=(e,t,r)=>!e||!t||e===t||_e(e).some(s=>s&&(r?s===t:s.startsWith(t)||t.startsWith(s))),tr=(e,t,r,s,i)=>i.isOnAll?!1:!r&&i.isOnTouch?!(t||e):(r?s.isOnBlur:i.isOnBlur)?!e:(r?s.isOnChange:i.isOnChange)?e:!0,rr=(e,t)=>!Ze(g(e,t)).length&&U(e,t),sr=(e,t,r)=>{const s=_e(g(e,r));return C(s,"root",t[r]),C(e,r,s),e};function pt(e,t,r="validate"){if(X(e)||Array.isArray(e)&&e.every(X)||se(e)&&!e)return{type:r,message:X(e)?e:"",ref:t}}var we=e=>B(e)&&!Pe(e)?e:{value:e,message:""},bt=async(e,t,r,s,i,n)=>{const{ref:l,refs:f,required:w,maxLength:b,minLength:O,min:D,max:F,pattern:m,validate:K,name:T,valueAsNumber:Z,mount:H}=e._f,x=g(r,T);if(!H||t.has(T))return{};const ee=f?f[0]:l,k=V=>{i&&ee.reportValidity&&(ee.setCustomValidity(se(V)?"":V||""),ee.reportValidity())},L={},oe=rt(l),me=Re(l),ie=oe||me,ae=(Z||tt(l))&&M(l.value)&&M(x)||qe(l)&&l.value===""||x===""||Array.isArray(x)&&!x.length,W=Ht.bind(null,T,s,L),le=(V,S,R,I=ue.maxLength,Q=ue.minLength)=>{const $=V?S:R;L[T]={type:V?I:Q,message:$,ref:l,...W(V?I:Q,$)}};if(n?!Array.isArray(x)||!x.length:w&&(!ie&&(ae||G(x))||se(x)&&!x||me&&!Dt(f).isValid||oe&&!Nt(f).isValid)){const{value:V,message:S}=X(w)?{value:!!w,message:w}:we(w);if(V&&(L[T]={type:ue.required,message:S,ref:ee,...W(ue.required,S)},!s))return k(S),L}if(!ae&&(!G(D)||!G(F))){let V,S;const R=we(F),I=we(D);if(!G(x)&&!isNaN(x)){const Q=l.valueAsNumber||x&&+x;G(R.value)||(V=Q>R.value),G(I.value)||(S=Q<I.value)}else{const Q=l.valueAsDate||new Date(x),$=de=>new Date(new Date().toDateString()+" "+de),ce=l.type=="time",z=l.type=="week";X(R.value)&&x&&(V=ce?$(x)>$(R.value):z?x>R.value:Q>new Date(R.value)),X(I.value)&&x&&(S=ce?$(x)<$(I.value):z?x<I.value:Q<new Date(I.value))}if((V||S)&&(le(!!V,R.message,I.message,ue.max,ue.min),!s))return k(L[T].message),L}if((b||O)&&!ae&&(X(x)||n&&Array.isArray(x))){const V=we(b),S=we(O),R=!G(V.value)&&x.length>+V.value,I=!G(S.value)&&x.length<+S.value;if((R||I)&&(le(R,V.message,S.message),!s))return k(L[T].message),L}if(m&&!ae&&X(x)){const{value:V,message:S}=we(m);if(Pe(V)&&!x.match(V)&&(L[T]={type:ue.pattern,message:S,ref:l,...W(ue.pattern,S)},!s))return k(S),L}if(K){if(te(K)){const V=await K(x,r),S=pt(V,ee);if(S&&(L[T]={...S,...W(ue.validate,S.message)},!s))return k(S.message),L}else if(B(K)){let V={};for(const S in K){if(!Y(V)&&!s)break;const R=pt(await K[S](x,r),ee,S);R&&(V={...R,...W(S,R.message)},k(R.message),s&&(L[T]=V))}if(!Y(V)&&(L[T]={ref:ee,...V},!s))return L}}return k(!0),L};const ir={mode:re.onSubmit,reValidateMode:re.onChange,shouldFocusError:!0};function ar(e={}){let t={...ir,...e},r={submitCount:0,isDirty:!1,isReady:!1,isLoading:te(t.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1},s={},i=B(t.defaultValues)||B(t.values)?P(t.defaultValues||t.values)||{}:{},n=t.shouldUnregister?{}:P(i),l={action:!1,mount:!1,watch:!1,keepIsValid:!1},f={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},w,b=0;const O={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},D={...O};let F={...D};const m={array:ot(),state:ot()},K=t.criteriaMode===re.all,T=a=>o=>{clearTimeout(b),b=setTimeout(a,o)},Z=async a=>{if(!l.keepIsValid&&!t.disabled&&(D.isValid||F.isValid||a)){let o;t.resolver?(o=Y((await ie()).errors),H()):o=await W(s,!0),o!==r.isValid&&m.state.next({isValid:o})}},H=(a,o)=>{!t.disabled&&(D.isValidating||D.validatingFields||F.isValidating||F.validatingFields)&&((a||Array.from(f.mount)).forEach(u=>{u&&(o?C(r.validatingFields,u,o):U(r.validatingFields,u))}),m.state.next({validatingFields:r.validatingFields,isValidating:!Y(r.validatingFields)}))},x=(a,o=[],u,h,c=!0,d=!0)=>{if(h&&u&&!t.disabled){if(l.action=!0,d&&Array.isArray(g(s,a))){const y=u(g(s,a),h.argA,h.argB);c&&C(s,a,y)}if(d&&Array.isArray(g(r.errors,a))){const y=u(g(r.errors,a),h.argA,h.argB);c&&C(r.errors,a,y),rr(r.errors,a)}if((D.touchedFields||F.touchedFields)&&d&&Array.isArray(g(r.touchedFields,a))){const y=u(g(r.touchedFields,a),h.argA,h.argB);c&&C(r.touchedFields,a,y)}(D.dirtyFields||F.dirtyFields)&&(r.dirtyFields=ve(i,n)),m.state.next({name:a,isDirty:V(a,o),dirtyFields:r.dirtyFields,errors:r.errors,isValid:r.isValid})}else C(n,a,o)},ee=(a,o)=>{C(r.errors,a,o),m.state.next({errors:r.errors})},k=a=>{r.errors=a,m.state.next({errors:r.errors,isValid:!1})},L=(a,o,u,h)=>{const c=g(s,a);if(c){const d=g(n,a,M(u)?g(i,a):u);M(d)||h&&h.defaultChecked||o?C(n,a,o?d:ft(c._f)):I(a,d),l.mount&&!l.action&&Z()}},oe=(a,o,u,h,c)=>{let d=!1,y=!1;const p={name:a};if(!t.disabled){if(!u||h){(D.isDirty||F.isDirty)&&(y=r.isDirty,r.isDirty=p.isDirty=V(),d=y!==p.isDirty);const E=fe(g(i,a),o);y=!!g(r.dirtyFields,a),E?U(r.dirtyFields,a):C(r.dirtyFields,a,!0),p.dirtyFields=r.dirtyFields,d=d||(D.dirtyFields||F.dirtyFields)&&y!==!E}if(u){const E=g(r.touchedFields,a);E||(C(r.touchedFields,a,u),p.touchedFields=r.touchedFields,d=d||(D.touchedFields||F.touchedFields)&&E!==u)}d&&c&&m.state.next(p)}return d?p:{}},me=(a,o,u,h)=>{const c=g(r.errors,a),d=(D.isValid||F.isValid)&&se(o)&&r.isValid!==o;if(t.delayError&&u?(w=T(()=>ee(a,u)),w(t.delayError)):(clearTimeout(b),w=null,u?C(r.errors,a,u):U(r.errors,a)),(u?!fe(c,u):c)||!Y(h)||d){const y={...h,...d&&se(o)?{isValid:o}:{},errors:r.errors,name:a};r={...r,...y},m.state.next(y)}},ie=async a=>(H(a,!0),await t.resolver(n,t.context,Gt(a||f.mount,s,t.criteriaMode,t.shouldUseNativeValidation))),ae=async a=>{const{errors:o}=await ie(a);if(H(a),a)for(const u of a){const h=g(o,u);h?C(r.errors,u,h):U(r.errors,u)}else r.errors=o;return o},W=async(a,o,u={valid:!0})=>{for(const h in a){const c=a[h];if(c){const{_f:d,...y}=c;if(d){const p=f.array.has(d.name),E=c._f&&Qt(c._f);E&&D.validatingFields&&H([d.name],!0);const _=await bt(c,f.disabled,n,K,t.shouldUseNativeValidation&&!o,p);if(E&&D.validatingFields&&H([d.name]),_[d.name]&&(u.valid=!1,o||e.shouldUseNativeValidation))break;!o&&(g(_,d.name)?p?sr(r.errors,_,d.name):C(r.errors,d.name,_[d.name]):U(r.errors,d.name))}!Y(y)&&await W(y,o,u)}}return u.valid},le=()=>{for(const a of f.unMount){const o=g(s,a);o&&(o._f.refs?o._f.refs.every(u=>!ze(u)):!ze(o._f.ref))&&Ee(a)}f.unMount=new Set},V=(a,o)=>!t.disabled&&(a&&o&&C(n,a,o),!fe(Ne(),i)),S=(a,o,u)=>Wt(a,f,{...l.mount?n:M(o)?i:X(a)?{[a]:o}:o},u,o),R=a=>Ze(g(l.mount?n:i,a,t.shouldUnregister?g(i,a,[]):[])),I=(a,o,u={})=>{const h=g(s,a);let c=o;if(h){const d=h._f;d&&(!d.disabled&&C(n,a,Rt(o,d)),c=qe(d.ref)&&G(o)?"":o,St(d.ref)?[...d.ref.options].forEach(y=>y.selected=c.includes(y.value)):d.refs?Re(d.ref)?d.refs.forEach(y=>{(!y.defaultChecked||!y.disabled)&&(Array.isArray(c)?y.checked=!!c.find(p=>p===y.value):y.checked=c===y.value||!!c)}):d.refs.forEach(y=>y.checked=y.value===c):tt(d.ref)?d.ref.value="":(d.ref.value=c,d.ref.type||m.state.next({name:a,values:P(n)})))}(u.shouldDirty||u.shouldTouch)&&oe(a,c,u.shouldTouch,u.shouldDirty,!0),u.shouldValidate&&de(a)},Q=(a,o,u)=>{for(const h in o){if(!o.hasOwnProperty(h))return;const c=o[h],d=a+"."+h,y=g(s,d);(f.array.has(a)||B(c)||y&&!y._f)&&!ye(c)?Q(d,c,u):I(d,c,u)}},$=(a,o,u={})=>{const h=g(s,a),c=f.array.has(a),d=P(o);C(n,a,d),c?(m.array.next({name:a,values:P(n)}),(D.isDirty||D.dirtyFields||F.isDirty||F.dirtyFields)&&u.shouldDirty&&m.state.next({name:a,dirtyFields:ve(i,n),isDirty:V(a,d)})):h&&!h._f&&!G(d)?Q(a,d,u):I(a,d,u),yt(a,f)?m.state.next({...r,name:a,values:P(n)}):m.state.next({name:l.mount?a:void 0,values:P(n)})},ce=async a=>{l.mount=!0;const o=a.target;let u=o.name,h=!0;const c=g(s,u),d=E=>{h=Number.isNaN(E)||ye(E)&&isNaN(E.getTime())||fe(E,g(n,u,E))},y=ht(t.mode),p=ht(t.reValidateMode);if(c){let E,_;const N=o.type?ft(c._f):It(a),j=a.type===ut.BLUR||a.type===ut.FOCUS_OUT,ne=!Xt(c._f)&&!t.resolver&&!g(r.errors,u)&&!c._f.deps||tr(j,g(r.touchedFields,u),r.isSubmitted,p,y),q=yt(u,f,j);C(n,u,N),j?(!o||!o.readOnly)&&(c._f.onBlur&&c._f.onBlur(a),w&&w(0)):c._f.onChange&&c._f.onChange(a);const J=oe(u,N,j),Be=!Y(J)||q;if(!j&&m.state.next({name:u,type:a.type,values:P(n)}),ne)return(D.isValid||F.isValid)&&(t.mode==="onBlur"?j&&Z():j||Z()),Be&&m.state.next({name:u,...q?{}:J});if(!j&&q&&m.state.next({...r}),t.resolver){const{errors:Ke}=await ie([u]);if(H([u]),d(N),h){const it=gt(r.errors,s,u),at=gt(Ke,s,it.name||u);E=at.error,u=at.name,_=Y(Ke)}}else H([u],!0),E=(await bt(c,f.disabled,n,K,t.shouldUseNativeValidation))[u],H([u]),d(N),h&&(E?_=!1:(D.isValid||F.isValid)&&(_=await W(s,!0)));h&&(c._f.deps&&(!Array.isArray(c._f.deps)||c._f.deps.length>0)&&de(c._f.deps),me(u,_,E,J))}},z=(a,o)=>{if(g(r.errors,o)&&a.focus)return a.focus(),1},de=async(a,o={})=>{let u,h;const c=_e(a);if(t.resolver){const d=await ae(M(a)?a:c);u=Y(d),h=a?!c.some(y=>g(d,y)):u}else a?(h=(await Promise.all(c.map(async d=>{const y=g(s,d);return await W(y&&y._f?{[d]:y}:y)}))).every(Boolean),!(!h&&!r.isValid)&&Z()):h=u=await W(s);return m.state.next({...!X(a)||(D.isValid||F.isValid)&&u!==r.isValid?{}:{name:a},...t.resolver||!a?{isValid:u}:{},errors:r.errors}),o.shouldFocus&&!h&&De(s,z,a?c:f.mount),h},Ne=(a,o)=>{let u={...l.mount?n:i};return o&&(u=xt(o.dirtyFields?r.dirtyFields:r.touchedFields,u)),M(a)?u:X(a)?g(u,a):a.map(h=>g(u,h))},Ce=(a,o)=>({invalid:!!g((o||r).errors,a),isDirty:!!g((o||r).dirtyFields,a),error:g((o||r).errors,a),isValidating:!!g(r.validatingFields,a),isTouched:!!g((o||r).touchedFields,a)}),A=a=>{a&&_e(a).forEach(o=>U(r.errors,o)),m.state.next({errors:a?r.errors:{}})},pe=(a,o,u)=>{const h=(g(s,a,{_f:{}})._f||{}).ref,c=g(r.errors,a)||{},{ref:d,message:y,type:p,...E}=c;C(r.errors,a,{...E,...o,ref:h}),m.state.next({name:a,errors:r.errors,isValid:!1}),u&&u.shouldFocus&&h&&h.focus&&h.focus()},Oe=(a,o)=>te(a)?m.state.subscribe({next:u=>"values"in u&&a(S(void 0,o),u)}):S(a,o,!0),Te=a=>m.state.subscribe({next:o=>{er(a.name,o.name,a.exact)&&Zt(o,a.formState||D,Ye,a.reRenderRoot)&&a.callback({values:{...n},...r,...o,defaultValues:i})}}).unsubscribe,je=a=>(l.mount=!0,F={...F,...a.formState},Te({...a,formState:{...O,...a.formState}})),Ee=(a,o={})=>{for(const u of a?_e(a):f.mount)f.mount.delete(u),f.array.delete(u),o.keepValue||(U(s,u),U(n,u)),!o.keepError&&U(r.errors,u),!o.keepDirty&&U(r.dirtyFields,u),!o.keepTouched&&U(r.touchedFields,u),!o.keepIsValidating&&U(r.validatingFields,u),!t.shouldUnregister&&!o.keepDefaultValue&&U(i,u);m.state.next({values:P(n)}),m.state.next({...r,...o.keepDirty?{isDirty:V()}:{}}),!o.keepIsValid&&Z()},Me=({disabled:a,name:o})=>{(se(a)&&l.mount||a||f.disabled.has(o))&&(a?f.disabled.add(o):f.disabled.delete(o))},Ve=(a,o={})=>{let u=g(s,a);const h=se(o.disabled)||se(t.disabled);return C(s,a,{...u||{},_f:{...u&&u._f?u._f:{ref:{name:a}},name:a,mount:!0,...o}}),f.mount.add(a),u?Me({disabled:se(o.disabled)?o.disabled:t.disabled,name:a}):L(a,!0,o.value),{...h?{disabled:o.disabled||t.disabled}:{},...t.progressive?{required:!!o.required,min:Se(o.min),max:Se(o.max),minLength:Se(o.minLength),maxLength:Se(o.maxLength),pattern:Se(o.pattern)}:{},name:a,onChange:ce,onBlur:ce,ref:c=>{if(c){Ve(a,o),u=g(s,a);const d=M(c.value)&&c.querySelectorAll&&c.querySelectorAll("input,select,textarea")[0]||c,y=Yt(d),p=u._f.refs||[];if(y?p.find(E=>E===d):d===u._f.ref)return;C(s,a,{_f:{...u._f,...y?{refs:[...p.filter(ze),d,...Array.isArray(g(i,a))?[{}]:[]],ref:{type:d.type,name:a}}:{ref:d}}}),L(a,!1,void 0,d)}else u=g(s,a,{}),u._f&&(u._f.mount=!1),(t.shouldUnregister||o.shouldUnregister)&&!(Bt(f.array,a)&&l.action)&&f.unMount.add(a)}}},Ae=()=>t.shouldFocusError&&De(s,z,f.mount),We=a=>{se(a)&&(m.state.next({disabled:a}),De(s,(o,u)=>{const h=g(s,u);h&&(o.disabled=h._f.disabled||a,Array.isArray(h._f.refs)&&h._f.refs.forEach(c=>{c.disabled=h._f.disabled||a}))},0,!1))},Le=(a,o)=>async u=>{let h;u&&(u.preventDefault&&u.preventDefault(),u.persist&&u.persist());let c=P(n);if(m.state.next({isSubmitting:!0}),t.resolver){const{errors:d,values:y}=await ie();H(),r.errors=d,c=P(y)}else await W(s);if(f.disabled.size)for(const d of f.disabled)U(c,d);if(U(r.errors,"root"),Y(r.errors)){m.state.next({errors:{}});try{await a(c,u)}catch(d){h=d}}else o&&await o({...r.errors},u),Ae(),setTimeout(Ae);if(m.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:Y(r.errors)&&!h,submitCount:r.submitCount+1,errors:r.errors}),h)throw h},He=(a,o={})=>{g(s,a)&&(M(o.defaultValue)?$(a,P(g(i,a))):($(a,o.defaultValue),C(i,a,P(o.defaultValue))),o.keepTouched||U(r.touchedFields,a),o.keepDirty||(U(r.dirtyFields,a),r.isDirty=o.defaultValue?V(a,P(g(i,a))):V()),o.keepError||(U(r.errors,a),D.isValid&&Z()),m.state.next({...r}))},xe=(a,o={})=>{const u=a?P(a):i,h=P(u),c=Y(a),d=c?i:h;if(o.keepDefaultValues||(i=u),!o.keepValues){if(o.keepDirtyValues){const y=new Set([...f.mount,...Object.keys(ve(i,n))]);for(const p of Array.from(y)){const E=g(r.dirtyFields,p),_=g(n,p),N=g(d,p);E&&!M(_)?C(d,p,_):!E&&!M(N)&&$(p,N)}}else{if(Xe&&M(a))for(const y of f.mount){const p=g(s,y);if(p&&p._f){const E=Array.isArray(p._f.refs)?p._f.refs[0]:p._f.ref;if(qe(E)){const _=E.closest("form");if(_){_.reset();break}}}}if(o.keepFieldsRef)for(const y of f.mount)$(y,g(d,y));else s={}}n=t.shouldUnregister?o.keepDefaultValues?P(i):{}:P(d),m.array.next({values:{...d}}),m.state.next({values:{...d}})}f={mount:o.keepDirtyValues?f.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},l.mount=!D.isValid||!!o.keepIsValid||!!o.keepDirtyValues||!t.shouldUnregister&&!Y(d),l.watch=!!t.shouldUnregister,l.keepIsValid=!!o.keepIsValid,l.action=!1,o.keepErrors||(r.errors={}),m.state.next({submitCount:o.keepSubmitCount?r.submitCount:0,isDirty:c?!1:o.keepDirty?r.isDirty:!!(o.keepDefaultValues&&!fe(a,i)),isSubmitted:o.keepIsSubmitted?r.isSubmitted:!1,dirtyFields:c?{}:o.keepDirtyValues?o.keepDefaultValues&&n?ve(i,n):r.dirtyFields:o.keepDefaultValues&&a?ve(i,a):o.keepDirty?r.dirtyFields:{},touchedFields:o.keepTouched?r.touchedFields:{},errors:o.keepErrors?r.errors:{},isSubmitSuccessful:o.keepIsSubmitSuccessful?r.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:i})},ke=(a,o)=>xe(te(a)?a(n):a,{...t.resetOptions,...o}),Ie=(a,o={})=>{const u=g(s,a),h=u&&u._f;if(h){const c=h.refs?h.refs[0]:h.ref;c.focus&&setTimeout(()=>{c.focus(),o.shouldSelect&&te(c.select)&&c.select()})}},Ye=a=>{r={...r,...a}},Ue={control:{register:Ve,unregister:Ee,getFieldState:Ce,handleSubmit:Le,setError:pe,_subscribe:Te,_runSchema:ie,_updateIsValidating:H,_focusError:Ae,_getWatch:S,_getDirty:V,_setValid:Z,_setFieldArray:x,_setDisabledField:Me,_setErrors:k,_getFieldArray:R,_reset:xe,_resetDefaultValues:()=>te(t.defaultValues)&&t.defaultValues().then(a=>{ke(a,t.resetOptions),m.state.next({isLoading:!1})}),_removeUnmounted:le,_disableForm:We,_subjects:m,_proxyFormState:D,get _fields(){return s},get _formValues(){return n},get _state(){return l},set _state(a){l=a},get _defaultValues(){return i},get _names(){return f},set _names(a){f=a},get _formState(){return r},get _options(){return t},set _options(a){t={...t,...a}}},subscribe:je,trigger:de,register:Ve,handleSubmit:Le,watch:Oe,setValue:$,getValues:Ne,reset:ke,resetField:He,clearErrors:A,unregister:Ee,setError:pe,setFocus:Ie,getFieldState:Ce};return{...Ue,formControl:Ue}}function nr(e={}){const t=v.useRef(void 0),r=v.useRef(void 0),[s,i]=v.useState({isDirty:!1,isValidating:!1,isLoading:te(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:te(e.defaultValues)?void 0:e.defaultValues});if(!t.current)if(e.formControl)t.current={...e.formControl,formState:s},e.defaultValues&&!te(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:l,...f}=ar(e);t.current={...f,formState:s}}const n=t.current.control;return n._options=e,jt(()=>{const l=n._subscribe({formState:n._proxyFormState,callback:()=>i({...n._formState}),reRenderRoot:!0});return i(f=>({...f,isReady:!0})),n._formState.isReady=!0,l},[n]),v.useEffect(()=>n._disableForm(e.disabled),[n,e.disabled]),v.useEffect(()=>{e.mode&&(n._options.mode=e.mode),e.reValidateMode&&(n._options.reValidateMode=e.reValidateMode)},[n,e.mode,e.reValidateMode]),v.useEffect(()=>{e.errors&&(n._setErrors(e.errors),n._focusError())},[n,e.errors]),v.useEffect(()=>{e.shouldUnregister&&n._subjects.state.next({values:n._getWatch()})},[n,e.shouldUnregister]),v.useEffect(()=>{if(n._proxyFormState.isDirty){const l=n._getDirty();l!==s.isDirty&&n._subjects.state.next({isDirty:l})}},[n,s.isDirty]),v.useEffect(()=>{var l;e.values&&!fe(e.values,r.current)?(n._reset(e.values,{keepFieldsRef:!0,...n._options.resetOptions}),!((l=n._options.resetOptions)===null||l===void 0)&&l.keepIsValid||n._setValid(),r.current=e.values,i(f=>({...f}))):n._resetDefaultValues()},[n,e.values]),v.useEffect(()=>{n._state.mount||(n._setValid(),n._state.mount=!0),n._state.watch&&(n._state.watch=!1,n._subjects.state.next({...n._formState})),n._removeUnmounted()}),t.current.formState=$t(s,n),t.current}function ur(){const e=new Date;return{NOW:e,TODAY:new Date(e.getFullYear(),e.getMonth(),e.getDate()),CURRENT_USER:{EmpId:1,Email:"user@example.com",FirstName:"John",LastName:"Doe",Role:"User"},CURRENT_USER_ID:1}}const or={CONCAT:(...e)=>e.map(t=>String(t||"")).join(""),TRIM:e=>String(e||"").trim(),LENGTH:e=>String(e||"").length,UPPER:e=>String(e||"").toUpperCase(),LOWER:e=>String(e||"").toLowerCase(),SUBSTRING:(e,t,r)=>{const s=String(e||"");return r!==void 0?s.substring(t,t+r):s.substring(t)},CONTAINS:(e,t)=>String(e||"").includes(String(t||"")),YEAR:e=>new Date(e).getFullYear(),MONTH:e=>new Date(e).getMonth()+1,DAY:e=>new Date(e).getDate(),DATE_DIFF:(e,t)=>{const r=new Date(e),s=new Date(t),i=Math.abs(r.getTime()-s.getTime());return Math.ceil(i/(1e3*60*60*24))},ADD_DAYS:(e,t)=>{const r=new Date(e);return r.setDate(r.getDate()+t),r},ADD_MONTHS:(e,t)=>{const r=new Date(e);return r.setMonth(r.getMonth()+t),r},SUM:(...e)=>e.reduce((t,r)=>t+(Number(r)||0),0),AVG:(...e)=>{const t=e.filter(r=>!isNaN(Number(r)));return t.length>0?t.reduce((r,s)=>r+Number(s),0)/t.length:0},MIN:(...e)=>Math.min(...e.map(t=>Number(t)||0)),MAX:(...e)=>Math.max(...e.map(t=>Number(t)||0)),ROUND:e=>Math.round(Number(e)||0),FLOOR:e=>Math.floor(Number(e)||0),CEIL:e=>Math.ceil(Number(e)||0),ABS:e=>Math.abs(Number(e)||0),IF:(e,t,r)=>e?t:r,IS_NULL:e=>e==null,IS_EMPTY:e=>!e||String(e).trim()==="",IS_NUMBER:e=>!isNaN(Number(e))&&e!==""&&e!==null&&e!==void 0,IS_DATE:e=>{const t=new Date(e);return!isNaN(t.getTime())},AUTO_NUMBER:()=>Math.floor(Math.random()*1e4)+1e3,UUID:()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=Math.random()*16|0;return(e=="x"?t:t&3|8).toString(16)}),ARRAY_LENGTH:e=>Array.isArray(e)?e.length:0,ARRAY_CONTAINS:(e,t)=>Array.isArray(e)?e.includes(t):!1,ARRAY_JOIN:(e,t=",")=>Array.isArray(e)?e.join(t):""};function he(e,t){var r;switch(e.Type){case"Literal":return e.Value;case"SystemIdentifier":if(e.Property){const b=t.systemValues[e.Name];return Je(b,e.Property.Name)}return t.systemValues[e.Name];case"Identifier":if(e.Property){const b=wt(e,t);return Je(b,e.Property.Name)}return wt(e,t);case"MemberExpression":if(!e.Arguments||e.Arguments.length===0)throw new Error("MemberExpression requires Arguments array");const s=he(e.Arguments[0],t),i=(r=e.Arguments[0].Property)==null?void 0:r.Name;return i?Je(s,i):s;case"BinaryExpression":if(!e.Arguments||e.Arguments.length!==2)throw new Error("BinaryExpression requires exactly 2 arguments");const n=he(e.Arguments[0],t),l=he(e.Arguments[1],t);return lr(e.Operator,n,l);case"LogicalExpression":if(!e.Arguments||e.Arguments.length<2)throw new Error("LogicalExpression requires at least 2 arguments");return cr(e.Operator,e.Arguments,t);case"CallExpression":if(!e.Callee)throw new Error("CallExpression requires Callee");const f=or[e.Callee];if(!f)throw new Error(`Unknown function: ${e.Callee}`);const w=(e.Arguments||[]).map(b=>he(b,t));return f(...w);case"AssignmentExpression":if(!e.Arguments||e.Arguments.length!==1)throw new Error("AssignmentExpression requires exactly 1 argument");return he(e.Arguments[0],t);default:throw new Error(`Unknown expression type: ${e.Type}`)}}function wt(e,t){const{Name:r,Source:s}=e;if(!r)throw new Error("Identifier requires Name");switch(s){case"Input":default:return t.formValues[r]}}function Je(e,t){if(!(!e||typeof e!="object"))return e[t]}function lr(e,t,r){const s=i=>i==null?0:typeof i=="number"?i:typeof i=="object"&&i!==null&&"value"in i?Number(i.value)||0:Number(i)||0;switch(e){case"==":return t==r;case"!=":return t!=r;case">":return s(t)>s(r);case"<":return s(t)<s(r);case">=":return s(t)>=s(r);case"<=":return s(t)<=s(r);case"+":return s(t)+s(r);case"-":return s(t)-s(r);case"*":return s(t)*s(r);case"/":const i=s(r);return i!==0?s(t)/i:0;default:throw new Error(`Unknown binary operator: ${e}`)}}function cr(e,t,r){switch(e){case"AND":return t.every(s=>!!he(s,r));case"OR":return t.some(s=>!!he(s,r));default:throw new Error(`Unknown logical operator: ${e}`)}}function Ct(e,t,r={}){const s={formValues:t,systemValues:ur(),referenceData:r};try{return he(e,s)}catch(i){return console.warn("Expression evaluation failed:",i),!1}}function vt(e,t,r={}){const s=[];for(const i of e)try{Ct(i.Condition.ExpressionTree,t,r)||s.push({isValid:!1,message:i.Message,fieldName:i.Id})}catch(n){console.warn(`Cross-field validation rule ${i.Id} failed:`,n)}return s}function dr(e,t={},r={}){try{return Ct(e,t,r)}catch(s){return console.warn("Default value calculation failed:",s),null}}function Ft(e,t){var f,w,b;const r=((f=e.Expression)==null?void 0:f.toLowerCase())||"",s=((w=e.Name)==null?void 0:w.toLowerCase())||"",i=((b=e.Id)==null?void 0:b.toLowerCase())||"",n=t.toLowerCase();return s.includes("required")||i.includes("required")?!0:[`${n} != null`,`${n} != ''`,`trim(${n}) != ''`,`${n}!=null`,`${n}!=''`].some(O=>r.includes(O))}function fr(e){const t={...e};t.Rules||(t.Rules={Validation:{},Computation:{},BusinessLogic:{}}),t.Rules.Validation||(t.Rules.Validation={}),t.Rules.Computation||(t.Rules.Computation={}),t.Rules.BusinessLogic||(t.Rules.BusinessLogic={});const r={...t.Fields};return Object.entries(r).forEach(([s,i])=>{let n=i.Required||!1;if(i.Validation&&Array.isArray(i.Validation))if(i.Validation.length>0&&typeof i.Validation[0]=="object"){const l=[];i.Validation.forEach(f=>{t.Rules.Validation[f.Id]=f,l.push(f.Id),Ft(f,s)&&(n=!0)}),r[s]={...i,Validation:l,Required:n}}else i.Validation.forEach(f=>{var b;const w=(b=t.Rules.Validation)==null?void 0:b[f];w&&Ft(w,s)&&(n=!0)}),n&&!i.Required&&(r[s]={...i,Required:!0});if(i.Formula){const l=`RULE_COMPUTE_${s.toUpperCase()}`;t.Rules.Computation[l]={Id:l,Name:i.Formula.Id||`Compute ${s}`,Description:i.Formula.Description||`Computes value for ${s}`,Expression:i.Formula.Expression,ExpressionTree:i.Formula.ExpressionTree,ResultType:i.Type}}}),t.Fields=r,t}function hr(e){var r,s,i;const t={validation:{},computation:{},businessLogic:{}};return(r=e.Rules)!=null&&r.Validation&&(t.validation={...e.Rules.Validation}),(s=e.Rules)!=null&&s.Computation&&(t.computation={...e.Rules.Computation}),(i=e.Rules)!=null&&i.BusinessLogic&&(t.businessLogic={...e.Rules.BusinessLogic}),t}function mr(e){var s;const t={};if(!((s=e.Rules)!=null&&s.Computation))return t;const r=Object.entries(e.Fields).filter(([i,n])=>n.Computed).map(([i])=>i);return r.sort((i,n)=>n.length-i.length),Object.entries(e.Rules.Computation).forEach(([i,n])=>{const l=i.toUpperCase().replace(/[_-]/g,"");for(const w of r){const b=w.toUpperCase().replace(/[_-]/g,"");if(l.includes(b)){t[i]=w;return}}const f=`${n.Name||""} ${n.Description||""}`.toLowerCase();for(const w of r)if(f.includes(w.toLowerCase())){t[i]=w;return}}),t}function yr(e,t){const r={};Object.keys(e.Fields).forEach(i=>{r[i]={validation:[],computation:[],businessLogic:[]}}),Object.entries(e.Fields).forEach(([i,n])=>{n.Validation&&Array.isArray(n.Validation)&&n.Validation.forEach(f=>{t.validation[f]?r[i].validation.push(f):t.computation[f]?r[i].computation.push(f):t.businessLogic[f]&&r[i].businessLogic.push(f)}),n.Formula&&Object.entries(t.computation).forEach(([l,f])=>{var w;f.Expression===((w=n.Formula)==null?void 0:w.Expression)&&(r[i].computation.includes(l)||r[i].computation.push(l))})});const s=mr(e);return Object.entries(s).forEach(([i,n])=>{r[n]&&!r[n].computation.includes(i)&&r[n].computation.push(i)}),r}function gr(e,t){const r={},s={editable:!0,readable:!0,hidden:!1};return Object.keys(e.Fields).forEach(i=>{var w,b,O,D,F,m;if(!t||!((w=e.RolePermission)!=null&&w[t])){r[i]=s;return}const n=e.RolePermission[t],l=((b=n.Editable)==null?void 0:b.includes(i))||((O=n.Editable)==null?void 0:O.includes("*"))||!1,f=((D=n.ReadOnly)==null?void 0:D.includes(i))||((F=n.ReadOnly)==null?void 0:F.includes("*"))||l;r[i]={editable:l&&!((m=n.ReadOnly)!=null&&m.includes(i)),readable:f,hidden:!f}}),r}function pr(e,t){switch(e){case"String":return t.toLowerCase().includes("email")?"email":t.toLowerCase().includes("password")?"password":"text";case"Number":return"number";case"Boolean":return"checkbox";case"Date":return"date";case"DateTime":return"datetime-local";case"Reference":return"reference";case"Array":case"Object":return"textarea";default:return"text"}}function Ot(e){return e.replace(/([A-Z])/g," $1").replace(/^./,t=>t.toUpperCase()).replace(/_/g," ").trim()}function br(e,t,r){const s={};switch(t.Required&&(s.required={value:!0,message:`${Ot(e)} is required`}),t.Type){case"Number":s.valueAsNumber=!0;break;case"Date":case"DateTime":s.valueAsDate=!0;break}return t.Validation&&t.Validation.length>0&&(s.validate=()=>!0),s}function wr(e){return e.Values?e.Values.Mode==="Static"&&e.Values.Items?e.Values.Items.map(t=>({value:t.Value,label:t.Label})):e.Values.Mode==="Dynamic"&&e.Values.Reference?[]:[]:[]}function vr(e,t={}){if(!e.DefaultValue)switch(e.Type){case"Boolean":return!1;case"Number":return 0;case"String":return"";case"Array":return[];case"Object":return{};default:return}return dr(e.DefaultValue.ExpressionTree,t)}function Fr(e,t,r,s={},i,n){const l={editable:!0,readable:!0,hidden:!1},w=n||{validation:[],computation:[],businessLogic:[]},b=t.Computed||!!t.Formula||w.computation.length>0,O=br(e,t);return b&&(O.disabled=!0),{name:e,type:pr(t.Type,e),label:t.Name||Ot(e),required:t.Required||!1,computed:b,defaultValue:vr(t,s),options:wr(t),validation:O,description:t.Description,_bdoField:t,permission:i||l,rules:w}}function Er(e,t={},r){let s=e;s=fr(s);const i={},n=[],l=[],f=[],w=[],b=hr(s),O=yr(s,b),D=gr(s,r);for(const[F,m]of Object.entries(s.Fields)){if(F.startsWith("_")&&!["_id"].includes(F))continue;const K=D[F];if(K.hidden)continue;const T=Fr(F,m,s.Fields,t,K,O[F]||{validation:[],computation:[],businessLogic:[]});i[F]=T,n.push(F),T.computed&&l.push(F),T.required&&f.push(F)}return{fields:i,fieldOrder:n,computedFields:l,requiredFields:f,crossFieldValidation:w,rules:b,fieldRules:O,rolePermissions:s.RolePermission}}function Vr(e){var r;if(e.type!=="reference"||!((r=e._bdoField.Values)!=null&&r.Reference))return null;const t=e._bdoField.Values.Reference;return{businessObject:t.BusinessObject,fields:t.Fields||["_id"],filters:t.Filters,sort:t.Sort}}function Ar(e){const t={};for(const[r,s]of Object.entries(e.fields))if(s.type==="reference"){const i=Vr(s);i&&(t[r]=i)}return t}async function xr(e){try{const r=(await kt.getBdoSchema(e)).BOBlob;if(!r||typeof r!="object"||!r.Fields)throw new Error(`Invalid BDO schema response for ${e}`);return r}catch(t){throw console.error(`Schema fetch error for ${e}:`,t),new Error(`Failed to load form schema: ${t instanceof Error?t.message:"Unknown error"}`)}}async function Sr(e,t=3){let r;for(let s=1;s<=t;s++)try{return await xr(e)}catch(i){if(r=i,s<t){const n=Math.min(1e3*Math.pow(2,s-1),5e3);await new Promise(l=>setTimeout(l,n));continue}}throw r}async function _r(e,t){try{return await ge.api(e).get(t)}catch(r){throw console.error(`Record fetch error for ${e}/${t}:`,r),new Error(`Failed to load record: ${r instanceof Error?r.message:"Unknown error"}`)}}async function Dr(e,t,r,s){try{let i;if(t==="create")return i=await ge.api(e).create(r),{success:!0,data:i,recordId:i._id||s};if(t==="update"){if(!s)throw new Error("Record ID is required for update operations");return i=await ge.api(e).update(s,r),{success:!0,data:i,recordId:i._id||s}}else throw new Error(`Unsupported operation: ${t}`)}catch(i){return console.error("Form submission error:",i),{success:!1,error:new Error(`Failed to ${t} record: ${i instanceof Error?i.message:"Unknown error"}`)}}}async function Rr(e,t=["_id"],r,s){try{const i={};return r&&(i.Filter=r),s&&(i.Sort=s),t.length>0&&(i.Field=t),(await ge.api(e).list(i)).Data||[]}catch(i){return console.error(`Reference data fetch error for ${e}:`,i),[]}}async function Nr(e){const t={},r=Object.entries(e).map(async([i,n])=>{try{const l=await Rr(n.businessObject,n.fields,n.filters,n.sort);return[i,l]}catch(l){return console.warn(`Failed to fetch reference data for ${i}:`,l),[i,[]]}});return(await Promise.allSettled(r)).forEach(i=>{if(i.status==="fulfilled"){const[n,l]=i.value;t[n]=Array.isArray(l)?l:[]}}),t}function Cr(e,t,r="create",s){const i={};return Object.keys(e).forEach(n=>{const l=n,f=e[l];if(!t.includes(n)&&f!==void 0){if(r==="create"){i[l]=f;return}if(r==="update"){if(!s){i[l]=f;return}const w=s[l];JSON.stringify(f)!==JSON.stringify(w)&&(i[l]=f)}}}),i}function Or(e){var t,r,s,i;return typeof e=="string"?e:e!=null&&e.message?e.message:(r=(t=e==null?void 0:e.response)==null?void 0:t.data)!=null&&r.message?e.response.data.message:(i=(s=e==null?void 0:e.response)==null?void 0:s.data)!=null&&i.error?e.response.data.error:"An unexpected error occurred"}function Tr(e){var t,r;return!navigator.onLine||(e==null?void 0:e.code)==="NETWORK_ERROR"||((t=e==null?void 0:e.message)==null?void 0:t.toLowerCase().includes("network"))||((r=e==null?void 0:e.message)==null?void 0:r.toLowerCase().includes("fetch"))}function Mr(e){var t,r,s;return(e==null?void 0:e.status)===400||((t=e==null?void 0:e.response)==null?void 0:t.status)===400||((r=e==null?void 0:e.message)==null?void 0:r.toLowerCase().includes("validation"))||((s=e==null?void 0:e.message)==null?void 0:s.toLowerCase().includes("invalid"))}const Fe=new Map;function Lr(e,t,r=10){Fe.set(e,{data:t,timestamp:Date.now(),ttl:r*60*1e3})}function kr(e){const t=Fe.get(e);return t?Date.now()-t.timestamp>t.ttl?(Fe.delete(e),null):t.data:null}function Ir(e){e?Array.from(Fe.keys()).filter(r=>r.startsWith(e)).forEach(r=>Fe.delete(r)):Fe.clear()}async function Ur(e){const t=`schema:${e}`,r=kr(t);if(r)return r;const s=await Sr(e);return Lr(t,s,30),s}class Et{constructor(t=1e3){be(this,"cache",new Map);be(this,"maxSize");this.maxSize=t}get(t){const r=this.cache.get(t);return r!==void 0&&(this.cache.delete(t),this.cache.set(t,r)),r}set(t,r){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){const s=this.cache.keys().next().value;this.cache.delete(s)}this.cache.set(t,r)}clear(){this.cache.clear()}}function Br(e){const t=new Set;function r(s){switch(s.Type){case"Identifier":s.Name&&!s.Name.startsWith("$")&&t.add(s.Name);break;case"MemberExpression":s.Arguments&&s.Arguments.forEach(r);break;case"CallExpression":case"BinaryExpression":case"LogicalExpression":s.Arguments&&s.Arguments.forEach(r);break}}return r(e),t}class qr{constructor(){be(this,"resultCache",new Et(500));be(this,"dependencyCache",new Et(200));be(this,"compiledExpressions",new Map)}createCacheKey(t,r){const s=JSON.stringify(t),i=JSON.stringify(r);return`${s}:${i}`}getDependencies(t){const r=JSON.stringify(t);let s=this.dependencyCache.get(r);return s||(s=Br(t),this.dependencyCache.set(r,s)),s}getCachedResult(t,r,s){if(!s)return;const i=this.getDependencies(t);for(const l of i)if(r[l]!==s[l])return;const n=this.createCacheKey(t,r);return this.resultCache.get(n)}evaluate(t,r,s){const i=this.getCachedResult(t,r,s);if(i!==void 0)return i;const n=this.evaluateNode(t,r),l=this.createCacheKey(t,r);return this.resultCache.set(l,n),n}evaluateNode(t,r){switch(t.Type){case"Literal":return t.Value;case"Identifier":return this.getIdentifierValue(t,r);case"BinaryExpression":return this.evaluateBinaryExpression(t,r);case"LogicalExpression":return this.evaluateLogicalExpression(t,r);case"CallExpression":return this.evaluateCallExpression(t,r);case"MemberExpression":return this.evaluateMemberExpression(t,r);default:throw new Error(`Unsupported expression type: ${t.Type}`)}}getIdentifierValue(t,r){if(t.Name){if(t.Name==="NOW")return new Date;if(t.Name==="TODAY"){const s=new Date;return new Date(s.getFullYear(),s.getMonth(),s.getDate())}return t.Name==="CURRENT_USER_ID"?1:t.Name==="CURRENT_USER"?{EmpId:1,Email:"user@example.com",FirstName:"John",LastName:"Doe",Role:"User"}:r[t.Name]}}evaluateBinaryExpression(t,r){if(!t.Arguments||t.Arguments.length!==2)throw new Error("Binary expression requires exactly 2 arguments");const s=this.evaluateNode(t.Arguments[0],r),i=this.evaluateNode(t.Arguments[1],r);switch(t.Operator){case"==":return s==i;case"!=":return s!=i;case"===":return s===i;case"!==":return s!==i;case"<":return Number(s)<Number(i);case"<=":return Number(s)<=Number(i);case">":return Number(s)>Number(i);case">=":return Number(s)>=Number(i);case"+":return Number(s)+Number(i);case"-":return Number(s)-Number(i);case"*":return Number(s)*Number(i);case"/":return Number(s)/Number(i);case"%":return Number(s)%Number(i);default:throw new Error(`Unsupported binary operator: ${t.Operator}`)}}evaluateLogicalExpression(t,r){if(!t.Arguments||t.Arguments.length<2)throw new Error("Logical expression requires at least 2 arguments");switch(t.Operator){case"AND":for(const s of t.Arguments)if(!this.evaluateNode(s,r))return!1;return!0;case"OR":for(const s of t.Arguments)if(this.evaluateNode(s,r))return!0;return!1;default:throw new Error(`Unsupported logical operator: ${t.Operator}`)}}evaluateCallExpression(t,r){var i;if(!t.Callee)throw new Error("Call expression requires a function name");const s=((i=t.Arguments)==null?void 0:i.map(n=>this.evaluateNode(n,r)))||[];switch(t.Callee){case"CONCAT":return s.map(b=>String(b||"")).join("");case"TRIM":return String(s[0]||"").trim();case"LENGTH":return String(s[0]||"").length;case"UPPER":return String(s[0]||"").toUpperCase();case"LOWER":return String(s[0]||"").toLowerCase();case"CONTAINS":return String(s[0]||"").includes(String(s[1]||""));case"MATCHES":return new RegExp(String(s[1])).test(String(s[0]||""));case"SUM":return s.reduce((b,O)=>b+(Number(O)||0),0);case"AVG":const n=s.filter(b=>!isNaN(Number(b)));return n.length>0?n.reduce((b,O)=>b+Number(O),0)/n.length:0;case"MIN":return Math.min(...s.map(b=>Number(b)||0));case"MAX":return Math.max(...s.map(b=>Number(b)||0));case"ROUND":return Math.round(Number(s[0])||0);case"FLOOR":return Math.floor(Number(s[0])||0);case"CEIL":return Math.ceil(Number(s[0])||0);case"ABS":return Math.abs(Number(s[0])||0);case"YEAR":return new Date(s[0]).getFullYear();case"MONTH":return new Date(s[0]).getMonth()+1;case"DAY":return new Date(s[0]).getDate();case"DATE_DIFF":const l=new Date(s[0]),f=new Date(s[1]),w=Math.abs(l.getTime()-f.getTime());return Math.ceil(w/(1e3*60*60*24));case"IF":return s[0]?s[1]:s[2];case"AUTO_NUMBER":return Math.floor(Math.random()*1e4);default:throw new Error(`Unknown function: ${t.Callee}`)}}evaluateMemberExpression(t,r){var n;if(!t.Arguments||t.Arguments.length===0)throw new Error("Member expression requires arguments");const s=this.evaluateNode(t.Arguments[0],r),i=(n=t.Arguments[0].Property)==null?void 0:n.Name;return i&&s&&typeof s=="object"?s[i]:s}clearCache(){this.resultCache.clear(),this.dependencyCache.clear(),this.compiledExpressions.clear()}}const Tt=new qr;function Pr(e,t,r,s,i){if(!r||r.length===0)return{isValid:!0};const n={...s,[e]:t};for(const l of r)try{if(!Tt.evaluate(l.ExpressionTree,n,i))return{isValid:!1,message:l.Message||`Validation failed for ${l.Name}`,fieldName:e}}catch(f){console.warn(`Validation rule ${l.Id} failed to evaluate:`,f)}return{isValid:!0}}function Vt(e){return Array.from(Tt.getDependencies(e))}function $r(e){const{source:t,operation:r,recordId:s,defaultValues:i={},mode:n="onBlur",enabled:l=!0,userRole:f,onSchemaError:w,skipSchemaFetch:b=!1,schema:O,interactionMode:D="interactive"}=e,F=D==="interactive",[m,K]=v.useState(null),[T,Z]=v.useState({}),[H,x]=v.useState(!1),[ee]=v.useState({}),[k,L]=v.useState(null),[oe,me]=v.useState(!1),[ie,ae]=v.useState(null),W=v.useRef(!1),le=v.useRef(null),V=v.useRef(null),S=v.useRef(!1),R=v.useRef(w);v.useEffect(()=>{R.current=w},[w]);const{data:I,isLoading:Q,error:$,refetch:ce}=nt.useQuery({queryKey:["form-schema",t],queryFn:()=>b?Promise.resolve(O||{}):Ur(t),enabled:l&&(!b||!!O),retry:3,staleTime:30*60*1e3,gcTime:60*60*1e3,throwOnError:!1}),{data:z,isLoading:de,error:Ne}=nt.useQuery({queryKey:["form-record",t,s],queryFn:()=>_r(t,s),enabled:l&&r==="update"&&!!s,retry:3,staleTime:5*60*1e3,gcTime:15*60*1e3,throwOnError:!1}),Ce=v.useMemo(()=>{const u={...i};if(r==="update"&&z&&Object.assign(u,z),m)for(const[h,c]of Object.entries(m.fields))c.defaultValue!==void 0&&!(h in u)&&(u[h]=c.defaultValue);return u},[i,z,r,m]),A=nr({mode:n,defaultValues:i,values:r==="update"&&z?Ce:void 0});v.useEffect(()=>{var u;if(I)try{const h=Er(I,{},f);K(h);const c=Ar(h);Object.keys(c).length>0&&Nr(c).then(Z).catch(console.warn)}catch(h){console.error("Schema processing failed:",h),(u=R.current)==null||u.call(R,h)}},[I,f]),v.useEffect(()=>{var u;$&&((u=R.current)==null||u.call(R,$))},[$]),v.useEffect(()=>{if(!F||r!=="create"||!m||!l||k||S.current)return;S.current=!0,(async()=>{me(!0),ae(null);try{const c=await ge.api(t).draftInteraction({});L(c._id),c&&typeof c=="object"&&Object.entries(c).forEach(([d,y])=>{if(d==="_id")return;A.getValues(d)!==y&&A.setValue(d,y,{shouldDirty:!1,shouldValidate:!1})})}catch(h){console.error("Failed to create initial draft:",h),ae(h),S.current=!1}finally{me(!1)}})()},[F,r,m,l,k,t]);const pe=v.useMemo(()=>{if(!m)return[];const u=new Set,h=new Set(m.computedFields);return Object.entries(m.fieldRules).forEach(([c,d])=>{d.computation.forEach(y=>{const p=m.rules.computation[y];p!=null&&p.ExpressionTree&&Vt(p.ExpressionTree).forEach(_=>{m.fields[_]&&_!==c&&!h.has(_)&&u.add(_)})})}),m.computedFields.forEach(c=>{const d=m.fields[c];d._bdoField.Formula&&Vt(d._bdoField.Formula.ExpressionTree).forEach(p=>{m.fields[p]&&p!==c&&!h.has(p)&&u.add(p)})}),Array.from(u)},[m]),Oe=v.useCallback(async u=>{if(!(!m||!(F||pe.length>0&&pe.includes(u)))){if(F&&r==="create"&&!k){console.warn("Interactive create mode: waiting for draft ID");return}W.current||(le.current&&clearTimeout(le.current),le.current=setTimeout(()=>{if(!m||W.current)return;const c=A.getValues();(async()=>{W.current=!0;try{const y=ge.api(t),p={};r==="update"&&s&&"_id"in c&&(p._id=c._id),F&&r==="create"&&k&&(p._id=k);const E=V.current??(r==="update"?z:null)??{},_=new Set(m.computedFields||[]);Object.keys(c).forEach(q=>{if(q==="_id"||_.has(q))return;const J=c[q],Be=E[q];JSON.stringify(J)!==JSON.stringify(Be)&&(J!==""&&J!==null&&J!==void 0)&&(p[q]=J)});const N=p,j={...V.current};Object.keys(c).forEach(q=>{_.has(q)||(j[q]=c[q])}),V.current=j;let ne;r==="update"&&s?ne=await y.draftPatch(s,N):F&&k?ne=await y.draftInteraction(N):ne=await y.draft(N),ne&&typeof ne=="object"&&(Object.entries(ne).forEach(([q,J])=>{c[q]!==J&&A.setValue(q,J,{shouldDirty:!1,shouldValidate:!1})}),Object.entries(ne).forEach(([q,J])=>{_.has(q)&&(V.current[q]=J)}))}catch(y){console.warn("Failed to compute fields via API:",y)}finally{W.current=!1}})()},300))}},[m,r,s,z,t,A,pe,F,k]),Te=v.useCallback(async()=>{if(!m)return!1;const u=A.getValues();if(!await A.trigger())return!1;const c=m.crossFieldValidation.map(y=>({Id:y.Id,Condition:{ExpressionTree:y.ExpressionTree},Message:y.Message||`Validation failed for ${y.Name}`})),d=vt(c,u,T);return d.length>0?(d.forEach((y,p)=>{A.setError(`root.crossField${p}`,{type:"validate",message:y.message})}),!1):!0},[m,A.getValues,A.trigger,A.setError,T]),je=v.useCallback((u,h)=>A.handleSubmit(async(c,d)=>{if(!m){const y=new Error("Schema not loaded");h==null||h(y,d);return}x(!0);try{const y=m.crossFieldValidation.map(N=>({Id:N.Id,Condition:{ExpressionTree:N.ExpressionTree},Message:N.Message||`Validation failed for ${N.Name}`})),p=vt(y,c,T);if(p.length>0){p.forEach((N,j)=>{A.setError(`root.crossField${j}`,{type:"validate",message:N.message})}),h==null||h(A.formState.errors,d);return}const E=Cr(c,m.computedFields,r,z);let _;if(F){const N=ge.api(t);if(r==="create"){if(!k)throw new Error("Interactive create mode requires a draft ID. Draft creation may have failed.");_={success:!0,data:await N.draft({...E,_id:k})}}else _={success:!0,data:await N.draftUpdate(s,E)}}else if(_=await Dr(t,r,E,s),!_.success)throw _.error||new Error("Submission failed");r==="create"&&(A.reset(),F&&L(null)),await(u==null?void 0:u(_.data||c,d))}catch(y){h==null||h(y,d)}finally{x(!1)}},(c,d)=>{h==null||h(c,d)}),[A,m,T,t,r,s,z,F,k]),Ee=v.useCallback(u=>(m==null?void 0:m.fields[u])||null,[m]),Me=v.useCallback(()=>{if(!m)return{};const u={};return Object.entries(m.fields).forEach(([h,c])=>{u[h]=c}),u},[m]),Ve=v.useCallback(u=>!!(m!=null&&m.fields[u]),[m]),Ae=v.useCallback(u=>(m==null?void 0:m.requiredFields.includes(u))||!1,[m]),We=v.useCallback(u=>(m==null?void 0:m.computedFields.includes(u))||!1,[m]),Le=v.useCallback(async()=>{await ce()},[ce]),He=v.useCallback(()=>{A.clearErrors()},[A]),xe=Q||r==="update"&&de||F&&r==="create"&&oe,ke=xe||H,Ie=$||Ne||ie,Ye=!!Ie,st=v.useMemo(()=>(m==null?void 0:m.computedFields)||[],[m]),Ue=v.useMemo(()=>(m==null?void 0:m.requiredFields)||[],[m]),a=v.useMemo(()=>{if(!m)return{};const u={};return Object.entries(m.fields).forEach(([h,c])=>{const d={};switch(c.required&&(d.required=`${c.label} is required`),c.permission.editable||(d.disabled=!0),c.type){case"number":d.valueAsNumber=!0;break;case"date":case"datetime-local":d.valueAsDate=!0;break}const y=c.rules.validation;y.length>0&&(d.validate={expressionValidation:p=>{const E=A.getValues();for(const _ of y){const N=m.rules.validation[_];if(N){const j=Pr(h,p,[N],E,ee);if(!j.isValid)return j.message||N.Message||"Invalid value"}}return!0}}),u[h]=d}),u},[m,A,T]);return{register:v.useCallback((u,h)=>{const c=a[u],d=h==null?void 0:h.onBlur,y=async p=>{d&&await d(p);let E=!0;n==="onBlur"||n==="onTouched"||n==="all"?E=await A.trigger(u):E=!A.getFieldState(u,A.formState).error,E&&await Oe(u)};return A.register(u,{...c,...h,onBlur:y})},[A,a,Oe,n]),handleSubmit:je,watch:A.watch,setValue:A.setValue,reset:A.reset,errors:A.formState.errors,isValid:A.formState.isValid,isDirty:A.formState.isDirty,isSubmitting:A.formState.isSubmitting||H,isSubmitSuccessful:A.formState.isSubmitSuccessful,isLoadingInitialData:xe,isLoadingRecord:de,isLoading:ke,draftId:k,isCreatingDraft:oe,loadError:Ie,hasError:Ye,schema:I,schemaConfig:m,computedFields:st,requiredFields:Ue,getField:Ee,getFields:Me,hasField:Ve,isFieldRequired:Ae,isFieldComputed:We,refreshSchema:Le,validateForm:Te,clearErrors:He}}exports.clearFormCache=Ir;exports.isNetworkError=Tr;exports.isValidationError=Mr;exports.parseApiError=Or;exports.useForm=$r;