@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.
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api.cjs +1 -1
- package/dist/api.mjs +2 -2
- package/dist/auth.cjs +1 -1
- package/dist/auth.mjs +1 -1
- package/dist/{client-C15j4O5B.cjs → client-DgtkT50N.cjs} +1 -1
- package/dist/{client-CfvLiGfP.js → client-V-WzUb8H.js} +9 -5
- package/dist/components/hooks/useForm/useForm.d.ts.map +1 -1
- package/dist/components/hooks/useKanban/context.d.ts +1 -1
- package/dist/components/hooks/useKanban/context.d.ts.map +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.mjs +740 -740
- package/dist/kanban.cjs +1 -1
- package/dist/kanban.mjs +4 -2
- package/dist/{metadata-2FLBsFcf.cjs → metadata-0lZAfuTP.cjs} +1 -1
- package/dist/{metadata-DBcoDth-.js → metadata-B88D_pVS.js} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.mjs +1 -1
- package/package.json +1 -1
- package/sdk/api/client.ts +7 -1
- package/sdk/components/hooks/useForm/useForm.ts +12 -2
- package/sdk/components/hooks/useKanban/context.ts +5 -3
package/dist/api/client.d.ts.map
CHANGED
|
@@ -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,
|
|
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-
|
|
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-
|
|
2
|
-
import { g as D, l as g } from "./metadata-
|
|
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-
|
|
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-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
232
|
+
y as a,
|
|
229
233
|
h as b,
|
|
230
|
-
|
|
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,
|
|
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;
|
|
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;
|