@ram_28/kf-ai-sdk 1.0.8 → 1.0.9
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/components/hooks/index.d.ts +2 -1
- package/dist/components/hooks/index.d.ts.map +1 -1
- package/dist/components/hooks/useForm/apiClient.d.ts +4 -4
- package/dist/components/hooks/useForm/apiClient.d.ts.map +1 -1
- package/dist/components/hooks/useForm/expressionValidator.utils.d.ts +3 -3
- package/dist/components/hooks/useForm/expressionValidator.utils.d.ts.map +1 -1
- package/dist/components/hooks/useForm/index.d.ts +7 -4
- package/dist/components/hooks/useForm/index.d.ts.map +1 -1
- package/dist/components/hooks/useForm/optimizedExpressionValidator.utils.d.ts +5 -5
- package/dist/components/hooks/useForm/optimizedExpressionValidator.utils.d.ts.map +1 -1
- package/dist/components/hooks/useForm/ruleClassifier.utils.d.ts +7 -6
- package/dist/components/hooks/useForm/ruleClassifier.utils.d.ts.map +1 -1
- package/dist/components/hooks/useForm/schemaParser.utils.d.ts +8 -8
- package/dist/components/hooks/useForm/schemaParser.utils.d.ts.map +1 -1
- package/dist/components/hooks/useForm/types.d.ts +86 -93
- package/dist/components/hooks/useForm/types.d.ts.map +1 -1
- package/dist/index.cjs +11 -11
- package/dist/index.mjs +1003 -1009
- package/package.json +1 -1
- package/sdk/components/hooks/index.ts +24 -4
- package/sdk/components/hooks/useForm/apiClient.ts +5 -5
- package/sdk/components/hooks/useForm/expressionValidator.utils.ts +11 -11
- package/sdk/components/hooks/useForm/index.ts +41 -45
- package/sdk/components/hooks/useForm/optimizedExpressionValidator.utils.ts +7 -7
- package/sdk/components/hooks/useForm/ruleClassifier.utils.ts +21 -20
- package/sdk/components/hooks/useForm/schemaParser.utils.ts +36 -41
- package/sdk/components/hooks/useForm/types.ts +107 -113
- package/sdk/components/hooks/useForm/useForm.ts +54 -54
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
`);return
|
|
1
|
+
"use strict";var Jr=Object.defineProperty;var Hr=(e,t,n)=>t in e?Jr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Ge=(e,t,n)=>Hr(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react"),Ce=require("@tanstack/react-query"),Xr=require("react-hook-form");function Zr(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const Ve=Zr(c);let Qe={baseUrl:"",headers:{"Content-Type":"application/json"}};function en(e){Qe.baseUrl=e}function tn(e){Qe.headers={...Qe.headers,...e}}function it(){return{...Qe.headers}}function gt(){return Qe.baseUrl||""}function ft(e){if(e==null)return e;if(Array.isArray(e))return e.map(t=>ft(t));if(typeof e=="object"){if("$__dt__"in e)return new Date(e.$__dt__*1e3);if("$__d__"in e)return new Date(e.$__d__);const t={};for(const[n,r]of Object.entries(e))t[n]=ft(r);return t}return e}function Ee(e){const t=Qe.baseUrl,n=Qe.headers;return{async get(r){const a=await fetch(`${t}/api/app/${e}/${r}/read`,{method:"GET",headers:n});if(!a.ok)throw new Error(`Failed to get ${e} ${r}: ${a.statusText}`);const o=await a.json();return ft(o.Data)},async create(r){const a=await fetch(`${t}/api/app/${e}/create`,{method:"POST",headers:n,body:JSON.stringify(r)});if(!a.ok)throw new Error(`Failed to create ${e}: ${a.statusText}`);return a.json()},async update(r,a){const o=await fetch(`${t}/api/app/${e}/${r}/update`,{method:"POST",headers:n,body:JSON.stringify(a)});if(!o.ok)throw new Error(`Failed to update ${e} ${r}: ${o.statusText}`);return o.json()},async delete(r){const a=await fetch(`${t}/api/app/${e}/${r}/delete`,{method:"DELETE",headers:n});if(!a.ok)throw new Error(`Failed to delete ${e} ${r}: ${a.statusText}`);return a.json()},async list(r){const a={Type:"List",...r},o=await fetch(`${t}/api/app/${e}/list`,{method:"POST",headers:n,body:JSON.stringify(a)});if(!o.ok)throw new Error(`Failed to list ${e}: ${o.statusText}`);return{Data:(await o.json()).Data.map(u=>ft(u))}},async count(r){var l,f;const a={Type:"Metric",GroupBy:[],Metric:[{Field:"_id",Type:"Count"}],...(r==null?void 0:r.Filter)&&{Filter:r.Filter}},o=await fetch(`${t}/api/app/${e}/metric`,{method:"POST",headers:n,body:JSON.stringify(a)});if(!o.ok)throw new Error(`Failed to count ${e}: ${o.statusText}`);return{Count:((f=(l=(await o.json()).Data)==null?void 0:l[0])==null?void 0:f.count__id)??0}},async draft(r){const a=await fetch(`${t}/api/app/${e}/draft`,{method:"POST",headers:n,body:JSON.stringify(r)});if(!a.ok)throw new Error(`Failed to create draft for ${e}: ${a.statusText}`);return a.json()},async draftUpdate(r,a){const o=await fetch(`${t}/api/app/${e}/${r}/draft`,{method:"POST",headers:n,body:JSON.stringify(a)});if(!o.ok)throw new Error(`Failed to update draft for ${e} ${r}: ${o.statusText}`);return o.json()},async draftPatch(r,a){const o=await fetch(`${t}/api/app/${e}/${r}/draft`,{method:"PATCH",headers:n,body:JSON.stringify(a)});if(!o.ok)throw new Error(`Failed to patch draft for ${e} ${r}: ${o.statusText}`);return o.json()},async metric(r){const a={Type:"Metric",...r},o=await fetch(`${t}/api/app/${e}/metric`,{method:"POST",headers:n,body:JSON.stringify(a)});if(!o.ok)throw new Error(`Failed to get metrics for ${e}: ${o.statusText}`);return o.json()},async pivot(r){const a={Type:"Pivot",...r},o=await fetch(`${t}/api/app/${e}/pivot`,{method:"POST",headers:n,body:JSON.stringify(a)});if(!o.ok)throw new Error(`Failed to get pivot data for ${e}: ${o.statusText}`);return o.json()},async fields(){const r=await fetch(`${t}/api/app/${e}/fields`,{method:"GET",headers:n});if(!r.ok)throw new Error(`Failed to get fields for ${e}: ${r.statusText}`);return r.json()},async fetchField(r,a){const o=await fetch(`${t}/api/app/${e}/${r}/field/${a}/fetch`,{method:"GET",headers:n});if(!o.ok)throw new Error(`Failed to fetch field ${a} for ${e}: ${o.statusText}`);return(await o.json()).Data}}}function rn(e){return{$__dt__:e.getTime()/1e3}}function nn(e){return new Date(e.$__dt__*1e3)}function an(e){return{$__d__:e.toISOString().split("T")[0]}}function sn(e){return new Date(e.$__d__)}async function Zt(e){try{const t=gt(),n=it(),r=await fetch(`${t}/api/app/meta/bdo/${e}`,{method:"GET",headers:n});if(!r.ok)throw new Error(`Failed to fetch schema for ${e}: ${r.statusText}`);const a=await r.json();if(!a||typeof a!="object")throw new Error(`Invalid BDO schema response for ${e}`);return a}catch(t){throw console.error(`Schema fetch error for ${e}:`,t),new Error(`Failed to load BDO schema: ${t instanceof Error?t.message:"Unknown error"}`)}}async function on(e){try{const t=gt(),n=it(),r=e!=null&&e.Filter||e!=null&&e.Sort?"POST":"GET",a=await fetch(`${t}/api/app/metadata/list`,{method:r,headers:n,...r==="POST"&&e&&{body:JSON.stringify(e)}});if(!a.ok)throw new Error(`Failed to list metadata: ${a.statusText}`);return await a.json()}catch(t){throw console.error("Metadata list error:",t),new Error(`Failed to list metadata: ${t instanceof Error?t.message:"Unknown error"}`)}}function er(e){return typeof e=="string"?e:typeof e=="object"&&e!==null?new Intl.NumberFormat("en-US",{style:"currency",currency:e.currency}).format(e.value):"Invalid Currency"}function cn(e){const t=e.match(/^(?:([A-Z]{3})\s+(\d+\.?\d*))|(?:(\d+\.?\d*)\s+([A-Z]{3}))$/);if(t){const n=t[1]||t[4],r=parseFloat(t[2]||t[3]);if(!isNaN(r))return{value:r,currency:n}}return null}function tr(e,t="medium"){if(!(e instanceof Date)||isNaN(e.getTime()))return"Invalid Date";const n={short:{dateStyle:"short"},medium:{dateStyle:"medium"},long:{dateStyle:"long"}}[t];return new Intl.DateTimeFormat("en-US",n).format(e)}function rr(e,t="medium"){if(!(e instanceof Date)||isNaN(e.getTime()))return"Invalid Date";const n={short:{dateStyle:"short",timeStyle:"short"},medium:{dateStyle:"medium",timeStyle:"medium"},long:{dateStyle:"long",timeStyle:"long"}}[t];return new Intl.DateTimeFormat("en-US",n).format(e)}function nr(e,t=2){return typeof e!="number"||isNaN(e)?"Invalid Number":e.toFixed(t)}function ar(e,t=2){try{return JSON.stringify(e,null,t)}catch{return"Invalid JSON"}}function sr(e,t,n=", "){return Array.isArray(e)?t?e.map(t).join(n):e.map(r=>String(r)).join(n):"Invalid Array"}function or(e,t){return typeof e!="boolean"?"Invalid Boolean":e?(t==null?void 0:t.trueLabel)||"Yes":(t==null?void 0:t.falseLabel)||"No"}function ln(e,t=50){return typeof e!="string"?"Invalid String":e.length<=t?e:e.slice(0,t-3)+"..."}function ir(e,t){if(typeof e!="string")return"Invalid Text";const n=e.split(`
|
|
2
|
+
`);return t&&n.length>t?n.slice(0,t).join(`
|
|
3
3
|
`)+`
|
|
4
|
-
...`:e}function un(e,r){if(e==null)return"";switch(r||(typeof e=="boolean"?r="boolean":typeof e=="number"?r="number":e instanceof Date?r="datetime":Array.isArray(e)?r="array":typeof e=="object"?r="json":r="string"),r){case"id":case"string":return String(e);case"textarea":return it(String(e));case"number":return nt(e);case"boolean":return st(e);case"date":return rt(e);case"datetime":return tt(e);case"currency":return et(e);case"json":return at(e);case"array":return ot(e);default:return String(e)}}function ct(e){var r,n,t="";if(typeof e=="string"||typeof e=="number")t+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(r=0;r<a;r++)e[r]&&(n=ct(e[r]))&&(t&&(t+=" "),t+=n)}else for(n in e)e[n]&&(t&&(t+=" "),t+=n);return t}function dn(){for(var e,r,n=0,t="",a=arguments.length;n<a;n++)(e=arguments[n])&&(r=ct(e))&&(t&&(t+=" "),t+=r);return t}const fn=(e,r)=>{const n=new Array(e.length+r.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let t=0;t<r.length;t++)n[e.length+t]=r[t];return n},mn=(e,r)=>({classGroupId:e,validator:r}),lt=(e=new Map,r=null,n)=>({nextPart:e,validators:r,classGroupId:n}),fr="-",Ir=[],pn="arbitrary..",gn=e=>{const r=bn(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:t}=e;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return hn(i);const u=i.split(fr),l=u[0]===""&&u.length>1?1:0;return ut(u,l,r)},getConflictingClassGroupIds:(i,u)=>{if(u){const l=t[i],f=n[i];return l?f?fn(f,l):l:f||Ir}return n[i]||Ir}}},ut=(e,r,n)=>{if(e.length-r===0)return n.classGroupId;const a=e[r],s=n.nextPart.get(a);if(s){const f=ut(e,r+1,s);if(f)return f}const i=n.validators;if(i===null)return;const u=r===0?e.join(fr):e.slice(r).join(fr),l=i.length;for(let f=0;f<l;f++){const g=i[f];if(g.validator(u))return g.classGroupId}},hn=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const r=e.slice(1,-1),n=r.indexOf(":"),t=r.slice(0,n);return t?pn+t:void 0})(),bn=e=>{const{theme:r,classGroups:n}=e;return yn(n,r)},yn=(e,r)=>{const n=lt();for(const t in e){const a=e[t];Or(a,n,t,r)}return n},Or=(e,r,n,t)=>{const a=e.length;for(let s=0;s<a;s++){const i=e[s];wn(i,r,n,t)}},wn=(e,r,n,t)=>{if(typeof e=="string"){vn(e,r,n);return}if(typeof e=="function"){Cn(e,r,n,t);return}En(e,r,n,t)},vn=(e,r,n)=>{const t=e===""?r:dt(r,e);t.classGroupId=n},Cn=(e,r,n,t)=>{if(kn(e)){Or(e(t),r,n,t);return}r.validators===null&&(r.validators=[]),r.validators.push(mn(n,e))},En=(e,r,n,t)=>{const a=Object.entries(e),s=a.length;for(let i=0;i<s;i++){const[u,l]=a[i];Or(l,dt(r,u),n,t)}},dt=(e,r)=>{let n=e;const t=r.split(fr),a=t.length;for(let s=0;s<a;s++){const i=t[s];let u=n.nextPart.get(i);u||(u=lt(),n.nextPart.set(i,u)),n=u}return n},kn=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,Sn=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,n=Object.create(null),t=Object.create(null);const a=(s,i)=>{n[s]=i,r++,r>e&&(r=0,t=n,n=Object.create(null))};return{get(s){let i=n[s];if(i!==void 0)return i;if((i=t[s])!==void 0)return a(s,i),i},set(s,i){s in n?n[s]=i:a(s,i)}}},kr="!",Vr=":",xn=[],Lr=(e,r,n,t,a)=>({modifiers:e,hasImportantModifier:r,baseClassName:n,maybePostfixModifierPosition:t,isExternal:a}),Rn=e=>{const{prefix:r,experimentalParseClassName:n}=e;let t=a=>{const s=[];let i=0,u=0,l=0,f;const g=a.length;for(let h=0;h<g;h++){const ne=a[h];if(i===0&&u===0){if(ne===Vr){s.push(a.slice(l,h)),l=h+1;continue}if(ne==="/"){f=h;continue}}ne==="["?i++:ne==="]"?i--:ne==="("?u++:ne===")"&&u--}const E=s.length===0?a:a.slice(l);let _=E,G=!1;E.endsWith(kr)?(_=E.slice(0,-1),G=!0):E.startsWith(kr)&&(_=E.slice(1),G=!0);const Y=f&&f>l?f-l:void 0;return Lr(s,G,_,Y)};if(r){const a=r+Vr,s=t;t=i=>i.startsWith(a)?s(i.slice(a.length)):Lr(xn,!1,i,void 0,!0)}if(n){const a=t;t=s=>n({className:s,parseClassName:a})}return t},Tn=e=>{const r=new Map;return e.orderSensitiveModifiers.forEach((n,t)=>{r.set(n,1e6+t)}),n=>{const t=[];let a=[];for(let s=0;s<n.length;s++){const i=n[s],u=i[0]==="[",l=r.has(i);u||l?(a.length>0&&(a.sort(),t.push(...a),a=[]),t.push(i)):a.push(i)}return a.length>0&&(a.sort(),t.push(...a)),t}},On=e=>({cache:Sn(e.cacheSize),parseClassName:Rn(e),sortModifiers:Tn(e),...gn(e)}),Dn=/\s+/,An=(e,r)=>{const{parseClassName:n,getClassGroupId:t,getConflictingClassGroupIds:a,sortModifiers:s}=r,i=[],u=e.trim().split(Dn);let l="";for(let f=u.length-1;f>=0;f-=1){const g=u[f],{isExternal:E,modifiers:_,hasImportantModifier:G,baseClassName:Y,maybePostfixModifierPosition:h}=n(g);if(E){l=g+(l.length>0?" "+l:l);continue}let ne=!!h,C=t(ne?Y.substring(0,h):Y);if(!C){if(!ne){l=g+(l.length>0?" "+l:l);continue}if(C=t(Y),!C){l=g+(l.length>0?" "+l:l);continue}ne=!1}const O=_.length===0?"":_.length===1?_[0]:s(_).join(":"),U=G?O+kr:O,V=U+C;if(i.indexOf(V)>-1)continue;i.push(V);const X=a(C,ne);for(let y=0;y<X.length;++y){const k=X[y];i.push(U+k)}l=g+(l.length>0?" "+l:l)}return l},Fn=(...e)=>{let r=0,n,t,a="";for(;r<e.length;)(n=e[r++])&&(t=ft(n))&&(a&&(a+=" "),a+=t);return a},ft=e=>{if(typeof e=="string")return e;let r,n="";for(let t=0;t<e.length;t++)e[t]&&(r=ft(e[t]))&&(n&&(n+=" "),n+=r);return n},_n=(e,...r)=>{let n,t,a,s;const i=l=>{const f=r.reduce((g,E)=>E(g),e());return n=On(f),t=n.cache.get,a=n.cache.set,s=u,u(l)},u=l=>{const f=t(l);if(f)return f;const g=An(l,n);return a(l,g),g};return s=i,(...l)=>s(Fn(...l))},Nn=[],pe=e=>{const r=n=>n[e]||Nn;return r.isThemeGetter=!0,r},mt=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,pt=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Pn=/^\d+\/\d+$/,$n=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,jn=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,In=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Vn=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ln=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Xe=e=>Pn.test(e),L=e=>!!e&&!Number.isNaN(Number(e)),Me=e=>!!e&&Number.isInteger(Number(e)),vr=e=>e.endsWith("%")&&L(e.slice(0,-1)),Ie=e=>$n.test(e),Un=()=>!0,qn=e=>jn.test(e)&&!In.test(e),gt=()=>!1,Mn=e=>Vn.test(e),Kn=e=>Ln.test(e),zn=e=>!R(e)&&!T(e),Bn=e=>Ze(e,yt,gt),R=e=>mt.test(e),Ye=e=>Ze(e,wt,qn),Cr=e=>Ze(e,Jn,L),Ur=e=>Ze(e,ht,gt),Gn=e=>Ze(e,bt,Kn),lr=e=>Ze(e,vt,Mn),T=e=>pt.test(e),tr=e=>er(e,wt),Yn=e=>er(e,Hn),qr=e=>er(e,ht),Qn=e=>er(e,yt),Wn=e=>er(e,bt),ur=e=>er(e,vt,!0),Ze=(e,r,n)=>{const t=mt.exec(e);return t?t[1]?r(t[1]):n(t[2]):!1},er=(e,r,n=!1)=>{const t=pt.exec(e);return t?t[1]?r(t[1]):n:!1},ht=e=>e==="position"||e==="percentage",bt=e=>e==="image"||e==="url",yt=e=>e==="length"||e==="size"||e==="bg-size",wt=e=>e==="length",Jn=e=>e==="number",Hn=e=>e==="family-name",vt=e=>e==="shadow",Xn=()=>{const e=pe("color"),r=pe("font"),n=pe("text"),t=pe("font-weight"),a=pe("tracking"),s=pe("leading"),i=pe("breakpoint"),u=pe("container"),l=pe("spacing"),f=pe("radius"),g=pe("shadow"),E=pe("inset-shadow"),_=pe("text-shadow"),G=pe("drop-shadow"),Y=pe("blur"),h=pe("perspective"),ne=pe("aspect"),C=pe("ease"),O=pe("animate"),U=()=>["auto","avoid","all","avoid-page","page","left","right","column"],V=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],X=()=>[...V(),T,R],y=()=>["auto","hidden","clip","visible","scroll"],k=()=>["auto","contain","none"],m=()=>[T,R,l],A=()=>[Xe,"full","auto",...m()],N=()=>[Me,"none","subgrid",T,R],j=()=>["auto",{span:["full",Me,T,R]},Me,T,R],M=()=>[Me,"auto",T,R],Q=()=>["auto","min","max","fr",T,R],Z=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],se=()=>["start","end","center","stretch","center-safe","end-safe"],q=()=>["auto",...m()],ie=()=>[Xe,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...m()],D=()=>[e,T,R],le=()=>[...V(),qr,Ur,{position:[T,R]}],be=()=>["no-repeat",{repeat:["","x","y","space","round"]}],fe=()=>["auto","cover","contain",Qn,Bn,{size:[T,R]}],ye=()=>[vr,tr,Ye],F=()=>["","none","full",f,T,R],ae=()=>["",L,tr,Ye],ee=()=>["solid","dashed","dotted","double"],we=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],H=()=>[L,vr,qr,Ur],ke=()=>["","none",Y,T,R],P=()=>["none",L,T,R],ce=()=>["none",L,T,R],Oe=()=>[L,T,R],De=()=>[Xe,"full",...m()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Ie],breakpoint:[Ie],color:[Un],container:[Ie],"drop-shadow":[Ie],ease:["in","out","in-out"],font:[zn],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Ie],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Ie],shadow:[Ie],spacing:["px",L],text:[Ie],"text-shadow":[Ie],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Xe,R,T,ne]}],container:["container"],columns:[{columns:[L,R,T,u]}],"break-after":[{"break-after":U()}],"break-before":[{"break-before":U()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:X()}],overflow:[{overflow:y()}],"overflow-x":[{"overflow-x":y()}],"overflow-y":[{"overflow-y":y()}],overscroll:[{overscroll:k()}],"overscroll-x":[{"overscroll-x":k()}],"overscroll-y":[{"overscroll-y":k()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:A()}],"inset-x":[{"inset-x":A()}],"inset-y":[{"inset-y":A()}],start:[{start:A()}],end:[{end:A()}],top:[{top:A()}],right:[{right:A()}],bottom:[{bottom:A()}],left:[{left:A()}],visibility:["visible","invisible","collapse"],z:[{z:[Me,"auto",T,R]}],basis:[{basis:[Xe,"full","auto",u,...m()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[L,Xe,"auto","initial","none",R]}],grow:[{grow:["",L,T,R]}],shrink:[{shrink:["",L,T,R]}],order:[{order:[Me,"first","last","none",T,R]}],"grid-cols":[{"grid-cols":N()}],"col-start-end":[{col:j()}],"col-start":[{"col-start":M()}],"col-end":[{"col-end":M()}],"grid-rows":[{"grid-rows":N()}],"row-start-end":[{row:j()}],"row-start":[{"row-start":M()}],"row-end":[{"row-end":M()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":Q()}],"auto-rows":[{"auto-rows":Q()}],gap:[{gap:m()}],"gap-x":[{"gap-x":m()}],"gap-y":[{"gap-y":m()}],"justify-content":[{justify:[...Z(),"normal"]}],"justify-items":[{"justify-items":[...se(),"normal"]}],"justify-self":[{"justify-self":["auto",...se()]}],"align-content":[{content:["normal",...Z()]}],"align-items":[{items:[...se(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...se(),{baseline:["","last"]}]}],"place-content":[{"place-content":Z()}],"place-items":[{"place-items":[...se(),"baseline"]}],"place-self":[{"place-self":["auto",...se()]}],p:[{p:m()}],px:[{px:m()}],py:[{py:m()}],ps:[{ps:m()}],pe:[{pe:m()}],pt:[{pt:m()}],pr:[{pr:m()}],pb:[{pb:m()}],pl:[{pl:m()}],m:[{m:q()}],mx:[{mx:q()}],my:[{my:q()}],ms:[{ms:q()}],me:[{me:q()}],mt:[{mt:q()}],mr:[{mr:q()}],mb:[{mb:q()}],ml:[{ml:q()}],"space-x":[{"space-x":m()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":m()}],"space-y-reverse":["space-y-reverse"],size:[{size:ie()}],w:[{w:[u,"screen",...ie()]}],"min-w":[{"min-w":[u,"screen","none",...ie()]}],"max-w":[{"max-w":[u,"screen","none","prose",{screen:[i]},...ie()]}],h:[{h:["screen","lh",...ie()]}],"min-h":[{"min-h":["screen","lh","none",...ie()]}],"max-h":[{"max-h":["screen","lh",...ie()]}],"font-size":[{text:["base",n,tr,Ye]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[t,T,Cr]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",vr,R]}],"font-family":[{font:[Yn,R,r]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[a,T,R]}],"line-clamp":[{"line-clamp":[L,"none",T,Cr]}],leading:[{leading:[s,...m()]}],"list-image":[{"list-image":["none",T,R]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",T,R]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:D()}],"text-color":[{text:D()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ee(),"wavy"]}],"text-decoration-thickness":[{decoration:[L,"from-font","auto",T,Ye]}],"text-decoration-color":[{decoration:D()}],"underline-offset":[{"underline-offset":[L,"auto",T,R]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:m()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",T,R]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",T,R]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:le()}],"bg-repeat":[{bg:be()}],"bg-size":[{bg:fe()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Me,T,R],radial:["",T,R],conic:[Me,T,R]},Wn,Gn]}],"bg-color":[{bg:D()}],"gradient-from-pos":[{from:ye()}],"gradient-via-pos":[{via:ye()}],"gradient-to-pos":[{to:ye()}],"gradient-from":[{from:D()}],"gradient-via":[{via:D()}],"gradient-to":[{to:D()}],rounded:[{rounded:F()}],"rounded-s":[{"rounded-s":F()}],"rounded-e":[{"rounded-e":F()}],"rounded-t":[{"rounded-t":F()}],"rounded-r":[{"rounded-r":F()}],"rounded-b":[{"rounded-b":F()}],"rounded-l":[{"rounded-l":F()}],"rounded-ss":[{"rounded-ss":F()}],"rounded-se":[{"rounded-se":F()}],"rounded-ee":[{"rounded-ee":F()}],"rounded-es":[{"rounded-es":F()}],"rounded-tl":[{"rounded-tl":F()}],"rounded-tr":[{"rounded-tr":F()}],"rounded-br":[{"rounded-br":F()}],"rounded-bl":[{"rounded-bl":F()}],"border-w":[{border:ae()}],"border-w-x":[{"border-x":ae()}],"border-w-y":[{"border-y":ae()}],"border-w-s":[{"border-s":ae()}],"border-w-e":[{"border-e":ae()}],"border-w-t":[{"border-t":ae()}],"border-w-r":[{"border-r":ae()}],"border-w-b":[{"border-b":ae()}],"border-w-l":[{"border-l":ae()}],"divide-x":[{"divide-x":ae()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ae()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ee(),"hidden","none"]}],"divide-style":[{divide:[...ee(),"hidden","none"]}],"border-color":[{border:D()}],"border-color-x":[{"border-x":D()}],"border-color-y":[{"border-y":D()}],"border-color-s":[{"border-s":D()}],"border-color-e":[{"border-e":D()}],"border-color-t":[{"border-t":D()}],"border-color-r":[{"border-r":D()}],"border-color-b":[{"border-b":D()}],"border-color-l":[{"border-l":D()}],"divide-color":[{divide:D()}],"outline-style":[{outline:[...ee(),"none","hidden"]}],"outline-offset":[{"outline-offset":[L,T,R]}],"outline-w":[{outline:["",L,tr,Ye]}],"outline-color":[{outline:D()}],shadow:[{shadow:["","none",g,ur,lr]}],"shadow-color":[{shadow:D()}],"inset-shadow":[{"inset-shadow":["none",E,ur,lr]}],"inset-shadow-color":[{"inset-shadow":D()}],"ring-w":[{ring:ae()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:D()}],"ring-offset-w":[{"ring-offset":[L,Ye]}],"ring-offset-color":[{"ring-offset":D()}],"inset-ring-w":[{"inset-ring":ae()}],"inset-ring-color":[{"inset-ring":D()}],"text-shadow":[{"text-shadow":["none",_,ur,lr]}],"text-shadow-color":[{"text-shadow":D()}],opacity:[{opacity:[L,T,R]}],"mix-blend":[{"mix-blend":[...we(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":we()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[L]}],"mask-image-linear-from-pos":[{"mask-linear-from":H()}],"mask-image-linear-to-pos":[{"mask-linear-to":H()}],"mask-image-linear-from-color":[{"mask-linear-from":D()}],"mask-image-linear-to-color":[{"mask-linear-to":D()}],"mask-image-t-from-pos":[{"mask-t-from":H()}],"mask-image-t-to-pos":[{"mask-t-to":H()}],"mask-image-t-from-color":[{"mask-t-from":D()}],"mask-image-t-to-color":[{"mask-t-to":D()}],"mask-image-r-from-pos":[{"mask-r-from":H()}],"mask-image-r-to-pos":[{"mask-r-to":H()}],"mask-image-r-from-color":[{"mask-r-from":D()}],"mask-image-r-to-color":[{"mask-r-to":D()}],"mask-image-b-from-pos":[{"mask-b-from":H()}],"mask-image-b-to-pos":[{"mask-b-to":H()}],"mask-image-b-from-color":[{"mask-b-from":D()}],"mask-image-b-to-color":[{"mask-b-to":D()}],"mask-image-l-from-pos":[{"mask-l-from":H()}],"mask-image-l-to-pos":[{"mask-l-to":H()}],"mask-image-l-from-color":[{"mask-l-from":D()}],"mask-image-l-to-color":[{"mask-l-to":D()}],"mask-image-x-from-pos":[{"mask-x-from":H()}],"mask-image-x-to-pos":[{"mask-x-to":H()}],"mask-image-x-from-color":[{"mask-x-from":D()}],"mask-image-x-to-color":[{"mask-x-to":D()}],"mask-image-y-from-pos":[{"mask-y-from":H()}],"mask-image-y-to-pos":[{"mask-y-to":H()}],"mask-image-y-from-color":[{"mask-y-from":D()}],"mask-image-y-to-color":[{"mask-y-to":D()}],"mask-image-radial":[{"mask-radial":[T,R]}],"mask-image-radial-from-pos":[{"mask-radial-from":H()}],"mask-image-radial-to-pos":[{"mask-radial-to":H()}],"mask-image-radial-from-color":[{"mask-radial-from":D()}],"mask-image-radial-to-color":[{"mask-radial-to":D()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":V()}],"mask-image-conic-pos":[{"mask-conic":[L]}],"mask-image-conic-from-pos":[{"mask-conic-from":H()}],"mask-image-conic-to-pos":[{"mask-conic-to":H()}],"mask-image-conic-from-color":[{"mask-conic-from":D()}],"mask-image-conic-to-color":[{"mask-conic-to":D()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:le()}],"mask-repeat":[{mask:be()}],"mask-size":[{mask:fe()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",T,R]}],filter:[{filter:["","none",T,R]}],blur:[{blur:ke()}],brightness:[{brightness:[L,T,R]}],contrast:[{contrast:[L,T,R]}],"drop-shadow":[{"drop-shadow":["","none",G,ur,lr]}],"drop-shadow-color":[{"drop-shadow":D()}],grayscale:[{grayscale:["",L,T,R]}],"hue-rotate":[{"hue-rotate":[L,T,R]}],invert:[{invert:["",L,T,R]}],saturate:[{saturate:[L,T,R]}],sepia:[{sepia:["",L,T,R]}],"backdrop-filter":[{"backdrop-filter":["","none",T,R]}],"backdrop-blur":[{"backdrop-blur":ke()}],"backdrop-brightness":[{"backdrop-brightness":[L,T,R]}],"backdrop-contrast":[{"backdrop-contrast":[L,T,R]}],"backdrop-grayscale":[{"backdrop-grayscale":["",L,T,R]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[L,T,R]}],"backdrop-invert":[{"backdrop-invert":["",L,T,R]}],"backdrop-opacity":[{"backdrop-opacity":[L,T,R]}],"backdrop-saturate":[{"backdrop-saturate":[L,T,R]}],"backdrop-sepia":[{"backdrop-sepia":["",L,T,R]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":m()}],"border-spacing-x":[{"border-spacing-x":m()}],"border-spacing-y":[{"border-spacing-y":m()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",T,R]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[L,"initial",T,R]}],ease:[{ease:["linear","initial",C,T,R]}],delay:[{delay:[L,T,R]}],animate:[{animate:["none",O,T,R]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[h,T,R]}],"perspective-origin":[{"perspective-origin":X()}],rotate:[{rotate:P()}],"rotate-x":[{"rotate-x":P()}],"rotate-y":[{"rotate-y":P()}],"rotate-z":[{"rotate-z":P()}],scale:[{scale:ce()}],"scale-x":[{"scale-x":ce()}],"scale-y":[{"scale-y":ce()}],"scale-z":[{"scale-z":ce()}],"scale-3d":["scale-3d"],skew:[{skew:Oe()}],"skew-x":[{"skew-x":Oe()}],"skew-y":[{"skew-y":Oe()}],transform:[{transform:[T,R,"","none","gpu","cpu"]}],"transform-origin":[{origin:X()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:De()}],"translate-x":[{"translate-x":De()}],"translate-y":[{"translate-y":De()}],"translate-z":[{"translate-z":De()}],"translate-none":["translate-none"],accent:[{accent:D()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:D()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",T,R]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":m()}],"scroll-mx":[{"scroll-mx":m()}],"scroll-my":[{"scroll-my":m()}],"scroll-ms":[{"scroll-ms":m()}],"scroll-me":[{"scroll-me":m()}],"scroll-mt":[{"scroll-mt":m()}],"scroll-mr":[{"scroll-mr":m()}],"scroll-mb":[{"scroll-mb":m()}],"scroll-ml":[{"scroll-ml":m()}],"scroll-p":[{"scroll-p":m()}],"scroll-px":[{"scroll-px":m()}],"scroll-py":[{"scroll-py":m()}],"scroll-ps":[{"scroll-ps":m()}],"scroll-pe":[{"scroll-pe":m()}],"scroll-pt":[{"scroll-pt":m()}],"scroll-pr":[{"scroll-pr":m()}],"scroll-pb":[{"scroll-pb":m()}],"scroll-pl":[{"scroll-pl":m()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",T,R]}],fill:[{fill:["none",...D()]}],"stroke-w":[{stroke:[L,tr,Ye,Cr]}],stroke:[{stroke:["none",...D()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},Zn=_n(Xn);function Pe(...e){return Zn(dn(e))}const Fe=e=>"Condition"in e,Ct=e=>"LHSField"in e,ea=Fe,ra=Ct;let ta=0;const or=()=>`filter_${Date.now()}_${++ta}`,na=e=>e.id?e:{...e,id:or()},Et=e=>e.map(r=>{const n=na(r);return Fe(n)?{...n,Condition:Et(n.Condition)}:n}),kt=e=>e.map(r=>{if(Fe(r)){const{id:a,...s}=r;return{...s,Condition:kt(r.Condition)}}const{id:n,...t}=r;return t}),St=(e,r)=>{for(const n of e){if(n.id===r)return n;if(Fe(n)){const t=St(n.Condition,r);if(t)return t}}},Sr=(e,r,n)=>e.map(t=>t.id===r?n(t):Fe(t)?{...t,Condition:Sr(t.Condition,r,n)}:t),xt=(e,r)=>e.filter(n=>n.id!==r).map(n=>Fe(n)?{...n,Condition:xt(n.Condition,r)}:n),xr=(e,r,n)=>e.map(t=>t.id===r&&Fe(t)?{...t,Condition:[...t.Condition,n]}:Fe(t)?{...t,Condition:xr(t.Condition,r,n)}:t);function Dr(e={}){const[r,n]=c.useState(()=>Et(e.initialConditions||[])),[t,a]=c.useState(e.initialOperator||"And"),s=c.useMemo(()=>{if(r.length!==0)return{Operator:t,Condition:kt(r)}},[r,t]),i=r.length>0,u=c.useCallback(C=>{const O=or(),U={...C,id:O};return n(V=>[...V,U]),O},[]),l=c.useCallback(C=>{const O=or(),U={id:O,Operator:C,Condition:[]};return n(V=>[...V,U]),O},[]),f=c.useCallback((C,O)=>{const U=or(),V={...O,id:U};return n(X=>xr(X,C,V)),U},[]),g=c.useCallback((C,O)=>{const U=or(),V={id:U,Operator:O,Condition:[]};return n(X=>xr(X,C,V)),U},[]),E=c.useCallback((C,O)=>{n(U=>Sr(U,C,V=>Fe(V)?V:{...V,...O}))},[]),_=c.useCallback((C,O)=>{n(U=>Sr(U,C,V=>Fe(V)?{...V,Operator:O}:V))},[]),G=c.useCallback(C=>{n(O=>xt(O,C))},[]),Y=c.useCallback(C=>St(r,C),[r]),h=c.useCallback(()=>{n([])},[]),ne=c.useCallback(C=>{a(C)},[]);return{operator:t,items:r,payload:s,hasConditions:i,add:u,addGroup:l,addTo:f,addGroupTo:g,update:E,updateOperator:_,remove:G,get:Y,clear:h,setOperator:ne,conditions:r}}function aa(e){var le,be,fe,ye,F,ae,ee,we,H,ke;const[r,n]=c.useState({query:""}),[t,a]=c.useState({field:((be=(le=e.initialState)==null?void 0:le.sorting)==null?void 0:be.field)||null,direction:((ye=(fe=e.initialState)==null?void 0:fe.sorting)==null?void 0:ye.direction)||null}),[s,i]=c.useState({pageNo:((ae=(F=e.initialState)==null?void 0:F.pagination)==null?void 0:ae.pageNo)||1,pageSize:((we=(ee=e.initialState)==null?void 0:ee.pagination)==null?void 0:we.pageSize)||10}),u=Dr({initialConditions:(H=e.initialState)==null?void 0:H.filters,initialOperator:((ke=e.initialState)==null?void 0:ke.filterOperator)||"And"}),l=c.useMemo(()=>{const P={};return r.query&&(P.Search=r.query),u.payload&&(P.Filter=u.payload),P},[r.query,u.payload]),f=c.useMemo(()=>{const P={...l};return t.field&&t.direction&&(P.Sort=[{[String(t.field)]:t.direction==="asc"?"ASC":"DESC"}]),e.enablePagination&&(P.Page=s.pageNo,P.PageSize=s.pageSize),P},[l,t,s,e.enablePagination]),{data:g,isLoading:E,isFetching:_,error:G,refetch:Y}=Ce.useQuery({queryKey:["table",e.source,f],queryFn:async()=>{try{const P=await Ee(e.source).list(f);return e.onSuccess&&e.onSuccess(P.Data),P}catch(P){throw e.onError&&e.onError(P),P}},staleTime:0,gcTime:0}),{data:h,isLoading:ne,isFetching:C,error:O,refetch:U}=Ce.useQuery({queryKey:["table-count",e.source,l],queryFn:async()=>{try{return await Ee(e.source).count(l)}catch(P){throw e.onError&&e.onError(P),P}},staleTime:0,gcTime:0}),V=c.useMemo(()=>(g==null?void 0:g.Data)||[],[g]),X=c.useMemo(()=>(h==null?void 0:h.Count)||0,[h]),y=c.useMemo(()=>Math.ceil(X/s.pageSize),[X,s.pageSize]),k=c.useCallback(P=>{a(ce=>{if(ce.field===P){if(ce.direction==="asc")return{field:P,direction:"desc"};if(ce.direction==="desc")return{field:null,direction:null}}return{field:P,direction:"asc"}})},[]),m=c.useCallback(()=>{a({field:null,direction:null})},[]),A=c.useCallback((P,ce)=>{a({field:P,direction:ce})},[]),N=c.useCallback(P=>{n({query:P}),i(ce=>({...ce,pageNo:1}))},[]),j=c.useCallback(()=>{n({query:""})},[]),M=s.pageNo<y,Q=s.pageNo>1,Z=c.useCallback(()=>{M&&i(P=>({...P,pageNo:P.pageNo+1}))},[M]),se=c.useCallback(()=>{Q&&i(P=>({...P,pageNo:P.pageNo-1}))},[Q]),q=c.useCallback(P=>{const ce=Math.max(1,Math.min(P,y));i(Oe=>({...Oe,pageNo:ce}))},[y]),ie=c.useCallback(P=>{i(ce=>({...ce,pageSize:P,pageNo:1}))},[]),D=c.useCallback(async()=>{const[P]=await Promise.all([Y(),U()]);return P.data||{Data:[]}},[Y,U]);return{rows:V,totalItems:X,isLoading:E||ne,isFetching:_||C,error:G||O,search:{query:r.query,setQuery:N,clear:j},sort:{field:t.field,direction:t.direction,toggle:k,clear:m,set:A},filter:u,pagination:{currentPage:s.pageNo,pageSize:s.pageSize,totalPages:y,totalItems:X,canGoNext:M,canGoPrevious:Q,goToNext:Z,goToPrevious:se,goToPage:q,setPageSize:ie},refetch:D}}function oa(){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 sa={CONCAT:(...e)=>e.map(r=>String(r||"")).join(""),TRIM:e=>String(e||"").trim(),LENGTH:e=>String(e||"").length,UPPER:e=>String(e||"").toUpperCase(),LOWER:e=>String(e||"").toLowerCase(),SUBSTRING:(e,r,n)=>{const t=String(e||"");return n!==void 0?t.substring(r,r+n):t.substring(r)},CONTAINS:(e,r)=>String(e||"").includes(String(r||"")),YEAR:e=>new Date(e).getFullYear(),MONTH:e=>new Date(e).getMonth()+1,DAY:e=>new Date(e).getDate(),DATE_DIFF:(e,r)=>{const n=new Date(e),t=new Date(r),a=Math.abs(n.getTime()-t.getTime());return Math.ceil(a/(1e3*60*60*24))},ADD_DAYS:(e,r)=>{const n=new Date(e);return n.setDate(n.getDate()+r),n},ADD_MONTHS:(e,r)=>{const n=new Date(e);return n.setMonth(n.getMonth()+r),n},SUM:(...e)=>e.reduce((r,n)=>r+(Number(n)||0),0),AVG:(...e)=>{const r=e.filter(n=>!isNaN(Number(n)));return r.length>0?r.reduce((n,t)=>n+Number(t),0)/r.length:0},MIN:(...e)=>Math.min(...e.map(r=>Number(r)||0)),MAX:(...e)=>Math.max(...e.map(r=>Number(r)||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,r,n)=>e?r:n,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 r=new Date(e);return!isNaN(r.getTime())},AUTO_NUMBER:()=>Math.floor(Math.random()*1e4)+1e3,UUID:()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const r=Math.random()*16|0;return(e=="x"?r:r&3|8).toString(16)}),ARRAY_LENGTH:e=>Array.isArray(e)?e.length:0,ARRAY_CONTAINS:(e,r)=>Array.isArray(e)?e.includes(r):!1,ARRAY_JOIN:(e,r=",")=>Array.isArray(e)?e.join(r):""};function Ke(e,r){var n;switch(e.Type){case"Literal":return e.Value;case"SystemIdentifier":if(e.Property){const f=r.systemValues[e.Name];return Er(f,e.Property.Name)}return r.systemValues[e.Name];case"Identifier":if(e.Property){const f=Mr(e,r);return Er(f,e.Property.Name)}return Mr(e,r);case"MemberExpression":if(!e.Arguments||e.Arguments.length===0)throw new Error("MemberExpression requires Arguments array");const t=Ke(e.Arguments[0],r),a=(n=e.Arguments[0].Property)==null?void 0:n.Name;return a?Er(t,a):t;case"BinaryExpression":if(!e.Arguments||e.Arguments.length!==2)throw new Error("BinaryExpression requires exactly 2 arguments");const s=Ke(e.Arguments[0],r),i=Ke(e.Arguments[1],r);return ia(e.Operator,s,i);case"LogicalExpression":if(!e.Arguments||e.Arguments.length<2)throw new Error("LogicalExpression requires at least 2 arguments");return ca(e.Operator,e.Arguments,r);case"CallExpression":if(!e.Callee)throw new Error("CallExpression requires Callee");const u=sa[e.Callee];if(!u)throw new Error(`Unknown function: ${e.Callee}`);const l=(e.Arguments||[]).map(f=>Ke(f,r));return u(...l);case"AssignmentExpression":if(!e.Arguments||e.Arguments.length!==1)throw new Error("AssignmentExpression requires exactly 1 argument");return Ke(e.Arguments[0],r);default:throw new Error(`Unknown expression type: ${e.Type}`)}}function Mr(e,r){const{Name:n,Source:t}=e;if(!n)throw new Error("Identifier requires Name");switch(t){case"Input":default:return r.formValues[n]}}function Er(e,r){if(!(!e||typeof e!="object"))return e[r]}function ia(e,r,n){const t=a=>a==null?0:typeof a=="number"?a:typeof a=="object"&&a!==null&&"value"in a?Number(a.value)||0:Number(a)||0;switch(e){case"==":return r==n;case"!=":return r!=n;case">":return t(r)>t(n);case"<":return t(r)<t(n);case">=":return t(r)>=t(n);case"<=":return t(r)<=t(n);case"+":return t(r)+t(n);case"-":return t(r)-t(n);case"*":return t(r)*t(n);case"/":const a=t(n);return a!==0?t(r)/a:0;default:throw new Error(`Unknown binary operator: ${e}`)}}function ca(e,r,n){switch(e){case"AND":return r.every(t=>!!Ke(t,n));case"OR":return r.some(t=>!!Ke(t,n));default:throw new Error(`Unknown logical operator: ${e}`)}}function Rt(e,r,n={}){const t={formValues:r,systemValues:oa(),referenceData:n};try{return Ke(e,t)}catch(a){return console.warn("Expression evaluation failed:",a),!1}}function la(e,r,n={}){const t=[];for(const a of e)try{Rt(a.Condition.ExpressionTree,r,n)||t.push({isValid:!1,message:a.Message,fieldName:a.Id})}catch(s){console.warn(`Cross-field validation rule ${a.Id} failed:`,s)}return t}function ua(e,r={},n={}){try{return Rt(e,r,n)}catch(t){return console.warn("Default value calculation failed:",t),null}}function Kr(e,r){var u,l,f;const n=((u=e.Expression)==null?void 0:u.toLowerCase())||"",t=((l=e.Name)==null?void 0:l.toLowerCase())||"",a=((f=e.Id)==null?void 0:f.toLowerCase())||"",s=r.toLowerCase();return t.includes("required")||a.includes("required")?!0:[`${s} != null`,`${s} != ''`,`trim(${s}) != ''`,`${s}!=null`,`${s}!=''`].some(g=>n.includes(g))}function da(e){const r={...e};r.Rules||(r.Rules={Validation:{},Computation:{},BusinessLogic:{}}),r.Rules.Validation||(r.Rules.Validation={}),r.Rules.Computation||(r.Rules.Computation={}),r.Rules.BusinessLogic||(r.Rules.BusinessLogic={});const n={...r.Fields};return Object.entries(n).forEach(([t,a])=>{let s=a.Required||!1;if(a.Validation&&Array.isArray(a.Validation))if(a.Validation.length>0&&typeof a.Validation[0]=="object"){const i=[];a.Validation.forEach(u=>{r.Rules.Validation[u.Id]=u,i.push(u.Id),Kr(u,t)&&(s=!0)}),n[t]={...a,Validation:i,Required:s}}else a.Validation.forEach(u=>{var f;const l=(f=r.Rules.Validation)==null?void 0:f[u];l&&Kr(l,t)&&(s=!0)}),s&&!a.Required&&(n[t]={...a,Required:!0});if(a.Formula){const i=`RULE_COMPUTE_${t.toUpperCase()}`;r.Rules.Computation[i]={Id:i,Name:a.Formula.Id||`Compute ${t}`,Description:a.Formula.Description||`Computes value for ${t}`,Expression:a.Formula.Expression,ExpressionTree:a.Formula.ExpressionTree,ResultType:a.Type}}}),r.Fields=n,r}function fa(e){var n,t,a;const r={validation:{},computation:{},businessLogic:{}};return(n=e.Rules)!=null&&n.Validation&&(r.validation={...e.Rules.Validation}),(t=e.Rules)!=null&&t.Computation&&(r.computation={...e.Rules.Computation}),(a=e.Rules)!=null&&a.BusinessLogic&&(r.businessLogic={...e.Rules.BusinessLogic}),r}function ma(e){var t;const r={};if(!((t=e.Rules)!=null&&t.Computation))return r;const n=Object.entries(e.Fields).filter(([a,s])=>s.Computed).map(([a])=>a);return n.sort((a,s)=>s.length-a.length),Object.entries(e.Rules.Computation).forEach(([a,s])=>{const i=a.toUpperCase().replace(/[_-]/g,"");for(const l of n){const f=l.toUpperCase().replace(/[_-]/g,"");if(i.includes(f)){r[a]=l;return}}const u=`${s.Name||""} ${s.Description||""}`.toLowerCase();for(const l of n)if(u.includes(l.toLowerCase())){r[a]=l;return}}),r}function pa(e,r){const n={};Object.keys(e.Fields).forEach(a=>{n[a]={validation:[],computation:[],businessLogic:[]}}),Object.entries(e.Fields).forEach(([a,s])=>{s.Validation&&Array.isArray(s.Validation)&&s.Validation.forEach(u=>{r.validation[u]?n[a].validation.push(u):r.computation[u]?n[a].computation.push(u):r.businessLogic[u]&&n[a].businessLogic.push(u)}),s.Formula&&Object.entries(r.computation).forEach(([i,u])=>{var l;u.Expression===((l=s.Formula)==null?void 0:l.Expression)&&(n[a].computation.includes(i)||n[a].computation.push(i))})});const t=ma(e);return Object.entries(t).forEach(([a,s])=>{n[s]&&!n[s].computation.includes(a)&&n[s].computation.push(a)}),n}function ga(e,r){const n={},t={editable:!0,readable:!0,hidden:!1};return Object.keys(e.Fields).forEach(a=>{var l,f,g,E,_,G;if(!r||!((l=e.RolePermission)!=null&&l[r])){n[a]=t;return}const s=e.RolePermission[r],i=((f=s.Editable)==null?void 0:f.includes(a))||((g=s.Editable)==null?void 0:g.includes("*"))||!1,u=((E=s.ReadOnly)==null?void 0:E.includes(a))||((_=s.ReadOnly)==null?void 0:_.includes("*"))||i;n[a]={editable:i&&!((G=s.ReadOnly)!=null&&G.includes(a)),readable:u,hidden:!u}}),n}function ha(e){return{Id:"legacy_schema",Name:"Legacy Schema",Kind:"BusinessObject",Description:"Converted from legacy schema format",Rules:{Validation:{},Computation:{},BusinessLogic:{}},Fields:Object.fromEntries(Object.entries(e).map(([r,n])=>[r,{...n,Id:r,Name:n.Description||r,Validation:[]}])),RolePermission:{},Roles:{}}}function ba(e,r){switch(e){case"String":return r.toLowerCase().includes("email")?"email":r.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 Tt(e){return e.replace(/([A-Z])/g," $1").replace(/^./,r=>r.toUpperCase()).replace(/_/g," ").trim()}function ya(e,r,n){const t={};switch(r.Required&&(t.required={value:!0,message:`${Tt(e)} is required`}),r.Type){case"Number":t.valueAsNumber=!0;break;case"Date":case"DateTime":t.valueAsDate=!0;break}return r.Validation&&r.Validation.length>0&&(t.validate=()=>!0),t}function wa(e){return e.Values?e.Values.Mode==="Static"&&e.Values.Items?e.Values.Items.map(r=>({value:r.Value,label:r.Label})):e.Values.Mode==="Dynamic"&&e.Values.Reference?[]:[]:[]}function va(e,r={}){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 ua(e.DefaultValue.ExpressionTree,r)}function Ca(e,r,n,t={},a,s){const i={editable:!0,readable:!0,hidden:!1},l=s||{validation:[],computation:[],businessLogic:[]},f=r.Computed||!!r.Formula||l.computation.length>0,g=ya(e,r);return f&&(g.disabled=!0),{name:e,type:ba(r.Type,e),label:r.Name||Tt(e),required:r.Required||!1,computed:f,defaultValue:va(r,t),options:wa(r),validation:g,description:r.Description,backendField:r,permission:a||i,rules:l}}function Ea(e,r={},n){let t="Kind"in e&&e.Kind==="BusinessObject"?e:ha(e);t=da(t);const a={},s=[],i=[],u=[],l=[],f=fa(t),g=pa(t,f),E=ga(t,n);for(const[_,G]of Object.entries(t.Fields)){if(_.startsWith("_")&&!["_id"].includes(_))continue;const Y=E[_];if(Y.hidden)continue;const h=Ca(_,G,t.Fields,r,Y,g[_]||{validation:[],computation:[],businessLogic:[]});a[_]=h,s.push(_),h.computed&&i.push(_),h.required&&u.push(_)}return{fields:a,fieldOrder:s,computedFields:i,requiredFields:u,crossFieldValidation:l,rules:f,fieldRules:g,rolePermissions:t.RolePermission}}function ka(e){var n;if(e.type!=="reference"||!((n=e.backendField.Values)!=null&&n.Reference))return null;const r=e.backendField.Values.Reference;return{businessObject:r.BusinessObject,fields:r.Fields||["_id"],filters:r.Filters,sort:r.Sort}}function Sa(e){const r={};for(const[n,t]of Object.entries(e.fields))if(t.type==="reference"){const a=ka(t);a&&(r[n]=a)}return r}async function xa(e){try{const n=(await Zr(e)).BOBlob;if(!n||typeof n!="object"||!n.Fields)throw new Error(`Invalid BDO schema response for ${e}`);return n}catch(r){throw console.error(`Schema fetch error for ${e}:`,r),new Error(`Failed to load form schema: ${r instanceof Error?r.message:"Unknown error"}`)}}async function Ra(e,r=3){let n;for(let t=1;t<=r;t++)try{return await xa(e)}catch(a){if(n=a,t<r){const s=Math.min(1e3*Math.pow(2,t-1),5e3);await new Promise(i=>setTimeout(i,s));continue}}throw n}async function Ta(e,r){try{return await Ee(e).get(r)}catch(n){throw console.error(`Record fetch error for ${e}/${r}:`,n),new Error(`Failed to load record: ${n instanceof Error?n.message:"Unknown error"}`)}}async function Oa(e,r,n,t){try{let a;if(r==="create")return a=await Ee(e).create(n),{success:!0,data:a,recordId:a._id||t};if(r==="update"){if(!t)throw new Error("Record ID is required for update operations");return a=await Ee(e).update(t,n),{success:!0,data:a,recordId:a._id||t}}else throw new Error(`Unsupported operation: ${r}`)}catch(a){return console.error("Form submission error:",a),{success:!1,error:new Error(`Failed to ${r} record: ${a instanceof Error?a.message:"Unknown error"}`)}}}async function Da(e,r=["_id"],n,t){try{const a={};return n&&(a.Filter=n),t&&(a.Sort=t),r.length>0&&(a.Field=r),(await Ee(e).list(a)).Data||[]}catch(a){return console.error(`Reference data fetch error for ${e}:`,a),[]}}async function Aa(e){const r={},n=Object.entries(e).map(async([a,s])=>{try{const i=await Da(s.businessObject,s.fields,s.filters,s.sort);return[a,i]}catch(i){return console.warn(`Failed to fetch reference data for ${a}:`,i),[a,[]]}});return(await Promise.allSettled(n)).forEach(a=>{if(a.status==="fulfilled"){const[s,i]=a.value;r[s]=Array.isArray(i)?i:[]}}),r}function Fa(e,r,n="create",t){const a={};return Object.keys(e).forEach(s=>{const i=s,u=e[i];if(!r.includes(s)&&u!==void 0){if(n==="create"){a[i]=u;return}if(n==="update"){if(!t){a[i]=u;return}const l=t[i];JSON.stringify(u)!==JSON.stringify(l)&&(a[i]=u)}}}),a}const Rr=new Map;function _a(e,r,n=10){Rr.set(e,{data:r,timestamp:Date.now(),ttl:n*60*1e3})}function Na(e){const r=Rr.get(e);return r?Date.now()-r.timestamp>r.ttl?(Rr.delete(e),null):r.data:null}async function Pa(e){const r=`schema:${e}`,n=Na(r);if(n)return n;const t=await Ra(e);return _a(r,t,30),t}class zr{constructor(r=1e3){Ge(this,"cache",new Map);Ge(this,"maxSize");this.maxSize=r}get(r){const n=this.cache.get(r);return n!==void 0&&(this.cache.delete(r),this.cache.set(r,n)),n}set(r,n){if(this.cache.has(r))this.cache.delete(r);else if(this.cache.size>=this.maxSize){const t=this.cache.keys().next().value;this.cache.delete(t)}this.cache.set(r,n)}clear(){this.cache.clear()}}function $a(e){const r=new Set;function n(t){switch(t.Type){case"Identifier":t.Name&&!t.Name.startsWith("$")&&r.add(t.Name);break;case"MemberExpression":t.Arguments&&t.Arguments.forEach(n);break;case"CallExpression":case"BinaryExpression":case"LogicalExpression":t.Arguments&&t.Arguments.forEach(n);break}}return n(e),r}class ja{constructor(){Ge(this,"resultCache",new zr(500));Ge(this,"dependencyCache",new zr(200));Ge(this,"compiledExpressions",new Map)}createCacheKey(r,n){const t=JSON.stringify(r),a=JSON.stringify(n);return`${t}:${a}`}getDependencies(r){const n=JSON.stringify(r);let t=this.dependencyCache.get(n);return t||(t=$a(r),this.dependencyCache.set(n,t)),t}getCachedResult(r,n,t){if(!t)return;const a=this.getDependencies(r);for(const i of a)if(n[i]!==t[i])return;const s=this.createCacheKey(r,n);return this.resultCache.get(s)}evaluate(r,n,t){const a=this.getCachedResult(r,n,t);if(a!==void 0)return a;const s=this.evaluateNode(r,n),i=this.createCacheKey(r,n);return this.resultCache.set(i,s),s}evaluateNode(r,n){switch(r.Type){case"Literal":return r.Value;case"Identifier":return this.getIdentifierValue(r,n);case"BinaryExpression":return this.evaluateBinaryExpression(r,n);case"LogicalExpression":return this.evaluateLogicalExpression(r,n);case"CallExpression":return this.evaluateCallExpression(r,n);case"MemberExpression":return this.evaluateMemberExpression(r,n);default:throw new Error(`Unsupported expression type: ${r.Type}`)}}getIdentifierValue(r,n){if(r.Name){if(r.Name==="NOW")return new Date;if(r.Name==="TODAY"){const t=new Date;return new Date(t.getFullYear(),t.getMonth(),t.getDate())}return r.Name==="CURRENT_USER_ID"?1:r.Name==="CURRENT_USER"?{EmpId:1,Email:"user@example.com",FirstName:"John",LastName:"Doe",Role:"User"}:n[r.Name]}}evaluateBinaryExpression(r,n){if(!r.Arguments||r.Arguments.length!==2)throw new Error("Binary expression requires exactly 2 arguments");const t=this.evaluateNode(r.Arguments[0],n),a=this.evaluateNode(r.Arguments[1],n);switch(r.Operator){case"==":return t==a;case"!=":return t!=a;case"===":return t===a;case"!==":return t!==a;case"<":return Number(t)<Number(a);case"<=":return Number(t)<=Number(a);case">":return Number(t)>Number(a);case">=":return Number(t)>=Number(a);case"+":return Number(t)+Number(a);case"-":return Number(t)-Number(a);case"*":return Number(t)*Number(a);case"/":return Number(t)/Number(a);case"%":return Number(t)%Number(a);default:throw new Error(`Unsupported binary operator: ${r.Operator}`)}}evaluateLogicalExpression(r,n){if(!r.Arguments||r.Arguments.length<2)throw new Error("Logical expression requires at least 2 arguments");switch(r.Operator){case"AND":for(const t of r.Arguments)if(!this.evaluateNode(t,n))return!1;return!0;case"OR":for(const t of r.Arguments)if(this.evaluateNode(t,n))return!0;return!1;default:throw new Error(`Unsupported logical operator: ${r.Operator}`)}}evaluateCallExpression(r,n){var a;if(!r.Callee)throw new Error("Call expression requires a function name");const t=((a=r.Arguments)==null?void 0:a.map(s=>this.evaluateNode(s,n)))||[];switch(r.Callee){case"CONCAT":return t.map(f=>String(f||"")).join("");case"TRIM":return String(t[0]||"").trim();case"LENGTH":return String(t[0]||"").length;case"UPPER":return String(t[0]||"").toUpperCase();case"LOWER":return String(t[0]||"").toLowerCase();case"CONTAINS":return String(t[0]||"").includes(String(t[1]||""));case"MATCHES":return new RegExp(String(t[1])).test(String(t[0]||""));case"SUM":return t.reduce((f,g)=>f+(Number(g)||0),0);case"AVG":const s=t.filter(f=>!isNaN(Number(f)));return s.length>0?s.reduce((f,g)=>f+Number(g),0)/s.length:0;case"MIN":return Math.min(...t.map(f=>Number(f)||0));case"MAX":return Math.max(...t.map(f=>Number(f)||0));case"ROUND":return Math.round(Number(t[0])||0);case"FLOOR":return Math.floor(Number(t[0])||0);case"CEIL":return Math.ceil(Number(t[0])||0);case"ABS":return Math.abs(Number(t[0])||0);case"YEAR":return new Date(t[0]).getFullYear();case"MONTH":return new Date(t[0]).getMonth()+1;case"DAY":return new Date(t[0]).getDate();case"DATE_DIFF":const i=new Date(t[0]),u=new Date(t[1]),l=Math.abs(i.getTime()-u.getTime());return Math.ceil(l/(1e3*60*60*24));case"IF":return t[0]?t[1]:t[2];case"AUTO_NUMBER":return Math.floor(Math.random()*1e4);default:throw new Error(`Unknown function: ${r.Callee}`)}}evaluateMemberExpression(r,n){var s;if(!r.Arguments||r.Arguments.length===0)throw new Error("Member expression requires arguments");const t=this.evaluateNode(r.Arguments[0],n),a=(s=r.Arguments[0].Property)==null?void 0:s.Name;return a&&t&&typeof t=="object"?t[a]:t}clearCache(){this.resultCache.clear(),this.dependencyCache.clear(),this.compiledExpressions.clear()}}const Ot=new ja;function Ia(e,r,n,t,a){if(!n||n.length===0)return{isValid:!0};const s={...t,[e]:r};for(const i of n)try{if(!Ot.evaluate(i.ExpressionTree,s,a))return{isValid:!1,message:i.Message||`Validation failed for ${i.Name}`,fieldName:e}}catch(u){console.warn(`Validation rule ${i.Id} failed to evaluate:`,u)}return{isValid:!0}}function Br(e){return Array.from(Ot.getDependencies(e))}function Va(e){const{source:r,operation:n,recordId:t,defaultValues:a={},mode:s="onBlur",enabled:i=!0,userRole:u,onSuccess:l,onError:f,onSchemaError:g,onSubmitError:E,skipSchemaFetch:_=!1,schema:G,draftOnEveryChange:Y=!1}=e,[h,ne]=c.useState(null),[C,O]=c.useState({}),[U,V]=c.useState(null),[X,y]=c.useState(!1),[k]=c.useState({}),m=c.useRef(!1),A=c.useRef(null),N=c.useRef(null),j=c.useRef(l),M=c.useRef(f),Q=c.useRef(E),Z=c.useRef(g);c.useEffect(()=>{j.current=l},[l]),c.useEffect(()=>{M.current=f},[f]),c.useEffect(()=>{Q.current=E},[E]),c.useEffect(()=>{Z.current=g},[g]);const{data:se,isLoading:q,error:ie,refetch:D}=Ce.useQuery({queryKey:["form-schema",r],queryFn:()=>_?Promise.resolve(G||{}):Pa(r),enabled:i&&(!_||!!G),retry:3,staleTime:30*60*1e3,gcTime:60*60*1e3,throwOnError:!1}),{data:le,isLoading:be,error:fe}=Ce.useQuery({queryKey:["form-record",r,t],queryFn:()=>Ta(r,t),enabled:i&&n==="update"&&!!t,retry:3,staleTime:5*60*1e3,gcTime:15*60*1e3,throwOnError:!1}),ye=c.useMemo(()=>{const w={...a};if(n==="update"&&le&&Object.assign(w,le),h)for(const[K,$]of Object.entries(h.fields))$.defaultValue!==void 0&&!(K in w)&&(w[K]=$.defaultValue);return w},[a,le,n,h]),F=Xt.useForm({mode:s,defaultValues:a,values:n==="update"&&le?ye:void 0});c.useEffect(()=>{var w;if(se)try{const K=Ea(se,{},u);ne(K);const $=Sa(K);Object.keys($).length>0&&Aa($).then(O).catch(console.warn)}catch(K){console.error("Schema processing failed:",K),(w=Z.current)==null||w.call(Z,K)}},[se,u]),c.useEffect(()=>{var w;ie&&((w=Z.current)==null||w.call(Z,ie))},[ie]),c.useEffect(()=>{var w;fe&&((w=M.current)==null||w.call(M,fe))},[fe]);const ae=c.useMemo(()=>{if(!h)return[];const w=new Set,K=new Set(h.computedFields);return Object.entries(h.fieldRules).forEach(([$,J])=>{J.computation.forEach(z=>{const re=h.rules.computation[z];re!=null&&re.ExpressionTree&&Br(re.ExpressionTree).forEach(he=>{h.fields[he]&&he!==$&&!K.has(he)&&w.add(he)})})}),h.computedFields.forEach($=>{const J=h.fields[$];J.backendField.Formula&&Br(J.backendField.Formula.ExpressionTree).forEach(re=>{h.fields[re]&&re!==$&&!K.has(re)&&w.add(re)})}),Array.from(w)},[h]),ee=c.useCallback(async w=>{!h||ae.length===0||!(Y||ae.includes(w))||m.current||(A.current&&clearTimeout(A.current),A.current=setTimeout(()=>{if(!h||m.current)return;const $=F.getValues();(async()=>{m.current=!0;try{const z=Ee(r),re={};n==="update"&&t&&"_id"in $&&(re._id=$._id);const ge=N.current??(n==="update"?le:null)??{},he=new Set(h.computedFields||[]);Object.keys($).forEach(me=>{if(me==="_id"||he.has(me))return;const Re=$[me],ir=ge[me];JSON.stringify(Re)!==JSON.stringify(ir)&&(Re!==""&&Re!==null&&Re!==void 0)&&(re[me]=Re)});const Ae=re,je={...N.current};Object.keys($).forEach(me=>{he.has(me)||(je[me]=$[me])}),N.current=je;const Ne=n==="update"&&t?await z.draftPatch(t,Ae):await z.draft(Ae);Ne&&typeof Ne=="object"&&(Object.entries(Ne).forEach(([me,Re])=>{$[me]!==Re&&F.setValue(me,Re,{shouldDirty:!1,shouldValidate:!1})}),Object.entries(Ne).forEach(([me,Re])=>{he.has(me)&&(N.current[me]=Re)}))}catch(z){console.warn("Failed to compute fields via API:",z)}finally{m.current=!1}})()},300))},[h,n,t,le,r,F,ae,Y]),we=c.useCallback(async()=>{if(!h)return!1;const w=F.getValues();if(!await F.trigger())return!1;const $=h.crossFieldValidation.map(z=>({Id:z.Id,Condition:{ExpressionTree:z.ExpressionTree},Message:z.Message||`Validation failed for ${z.Name}`})),J=la($,w,C);return J.length>0?(J.forEach((z,re)=>{F.setError(`root.crossField${re}`,{type:"validate",message:z.message})}),!1):!0},[h,F.getValues,F.trigger,F.setError,C]),H=c.useCallback(async()=>{var w,K,$;if(!h)throw new Error("Schema not loaded");y(!0),V(null);try{if(!await we())throw new Error("Form validation failed");const z=F.getValues(),re=Fa(z,h.computedFields,n,le),ge=await Oa(r,n,re,t);if(!ge.success)throw ge.error||new Error("Submission failed");(w=j.current)==null||w.call(j,ge.data||z),n==="create"&&F.reset()}catch(J){const z=J;throw V(z),(K=Q.current)==null||K.call(Q,z),($=M.current)==null||$.call(M,z),J}finally{y(!1)}},[h,we,F,r,n,t,le]),ke=c.useCallback(()=>F.handleSubmit(async()=>{await H()}),[F,H]),P=c.useCallback(w=>(h==null?void 0:h.fields[w])||null,[h]),ce=c.useCallback(()=>{if(!h)return{};const w={};return Object.entries(h.fields).forEach(([K,$])=>{w[K]=$}),w},[h]),Oe=c.useCallback(w=>!!(h!=null&&h.fields[w]),[h]),De=c.useCallback(w=>(h==null?void 0:h.requiredFields.includes(w))||!1,[h]),rr=c.useCallback(w=>(h==null?void 0:h.computedFields.includes(w))||!1,[h]),Le=c.useCallback(async()=>{await D()},[D]),Ue=c.useCallback(()=>{F.clearErrors(),V(null)},[F]),_e=q||n==="update"&&be,ze=_e||X,qe=ie||fe,$e=!!(qe||U),d=c.useMemo(()=>(h==null?void 0:h.computedFields)||[],[h]),v=c.useMemo(()=>(h==null?void 0:h.requiredFields)||[],[h]),b=c.useMemo(()=>{if(!h)return{};const w={};return Object.entries(h.fields).forEach(([K,$])=>{const J={};switch($.required&&(J.required=`${$.label} is required`),$.permission.editable||(J.disabled=!0),$.type){case"number":J.valueAsNumber=!0;break;case"date":case"datetime-local":J.valueAsDate=!0;break}const z=$.rules.validation;z.length>0&&(J.validate={expressionValidation:re=>{const ge=F.getValues();for(const he of z){const Ae=h.rules.validation[he];if(Ae){const je=Ia(K,re,[Ae],ge,k);if(!je.isValid)return je.message||Ae.Message||"Invalid value"}}return!0}}),w[K]=J}),w},[h,F,C]);return{register:c.useCallback((w,K)=>{const $=b[w],J=K==null?void 0:K.onBlur,z=async re=>{J&&await J(re);let ge=!0;s==="onBlur"||s==="onTouched"||s==="all"?ge=await F.trigger(w):ge=!F.getFieldState(w,F.formState).error,ge&&await ee(w)};return F.register(w,{...$,...K,onBlur:z})},[F,b,ee,s]),handleSubmit:ke,watch:F.watch,setValue:F.setValue,reset:F.reset,errors:F.formState.errors,isValid:F.formState.isValid,isDirty:F.formState.isDirty,isSubmitting:F.formState.isSubmitting||X,isSubmitSuccessful:F.formState.isSubmitSuccessful,formState:F.formState,isLoadingInitialData:_e,isLoadingRecord:be,isLoading:ze,loadError:qe,submitError:U,hasError:$e,schema:se,processedSchema:h,computedFields:d,requiredFields:v,getField:P,getFields:ce,hasField:Oe,isFieldRequired:De,isFieldComputed:rr,submit:H,refreshSchema:Le,validateForm:we,clearErrors:Ue}}const Gr=50,Yr=5,Qr=5;function La({onCardMove:e,onError:r,columns:n,announceMove:t}){const[a,s]=c.useState({isDragging:!1,draggedCard:null,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:null}),i=c.useRef(null),u=c.useRef(null),l=c.useRef(null),f=c.useCallback(()=>{s({isDragging:!1,draggedCard:null,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:null}),u.current&&(clearTimeout(u.current),u.current=null)},[]),g=c.useCallback(y=>n.find(k=>k._id===y)||null,[n]),E=c.useCallback(y=>{for(const k of n){const m=k.cards.find(A=>A._id===y);if(m)return{card:m,column:k}}return null},[n]),_=c.useCallback((y,k)=>{var m,A;try{const N=y.target,j=g(k.columnId);if(!j)throw new Error("Source column not found");(m=y.dataTransfer)==null||m.setData("text/plain",k._id),(A=y.dataTransfer)==null||A.setData("application/json",JSON.stringify(k));const M=N.cloneNode(!0);M.style.cssText=`
|
|
4
|
+
...`:e}function un(e,t){if(e==null)return"";switch(t||(typeof e=="boolean"?t="boolean":typeof e=="number"?t="number":e instanceof Date?t="datetime":Array.isArray(e)?t="array":typeof e=="object"?t="json":t="string"),t){case"id":case"string":return String(e);case"textarea":return ir(String(e));case"number":return nr(e);case"boolean":return or(e);case"date":return tr(e);case"datetime":return rr(e);case"currency":return er(e);case"json":return ar(e);case"array":return sr(e);default:return String(e)}}function cr(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=cr(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function dn(){for(var e,t,n=0,r="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=cr(e))&&(r&&(r+=" "),r+=t);return r}const fn=(e,t)=>{const n=new Array(e.length+t.length);for(let r=0;r<e.length;r++)n[r]=e[r];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},mn=(e,t)=>({classGroupId:e,validator:t}),lr=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),mt="-",It=[],pn="arbitrary..",gn=e=>{const t=bn(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return hn(i);const u=i.split(mt),l=u[0]===""&&u.length>1?1:0;return ur(u,l,t)},getConflictingClassGroupIds:(i,u)=>{if(u){const l=r[i],f=n[i];return l?f?fn(f,l):l:f||It}return n[i]||It}}},ur=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const a=e[t],o=n.nextPart.get(a);if(o){const f=ur(e,t+1,o);if(f)return f}const i=n.validators;if(i===null)return;const u=t===0?e.join(mt):e.slice(t).join(mt),l=i.length;for(let f=0;f<l;f++){const g=i[f];if(g.validator(u))return g.classGroupId}},hn=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),r=t.slice(0,n);return r?pn+r:void 0})(),bn=e=>{const{theme:t,classGroups:n}=e;return yn(n,t)},yn=(e,t)=>{const n=lr();for(const r in e){const a=e[r];Ot(a,n,r,t)}return n},Ot=(e,t,n,r)=>{const a=e.length;for(let o=0;o<a;o++){const i=e[o];wn(i,t,n,r)}},wn=(e,t,n,r)=>{if(typeof e=="string"){vn(e,t,n);return}if(typeof e=="function"){Cn(e,t,n,r);return}En(e,t,n,r)},vn=(e,t,n)=>{const r=e===""?t:dr(t,e);r.classGroupId=n},Cn=(e,t,n,r)=>{if(Sn(e)){Ot(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(mn(n,e))},En=(e,t,n,r)=>{const a=Object.entries(e),o=a.length;for(let i=0;i<o;i++){const[u,l]=a[i];Ot(l,dr(t,u),n,r)}},dr=(e,t)=>{let n=e;const r=t.split(mt),a=r.length;for(let o=0;o<a;o++){const i=r[o];let u=n.nextPart.get(i);u||(u=lr(),n.nextPart.set(i,u)),n=u}return n},Sn=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,kn=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null);const a=(o,i)=>{n[o]=i,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(o){let i=n[o];if(i!==void 0)return i;if((i=r[o])!==void 0)return a(o,i),i},set(o,i){o in n?n[o]=i:a(o,i)}}},kt="!",Vt=":",xn=[],Lt=(e,t,n,r,a)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:a}),Rn=e=>{const{prefix:t,experimentalParseClassName:n}=e;let r=a=>{const o=[];let i=0,u=0,l=0,f;const g=a.length;for(let h=0;h<g;h++){const ne=a[h];if(i===0&&u===0){if(ne===Vt){o.push(a.slice(l,h)),l=h+1;continue}if(ne==="/"){f=h;continue}}ne==="["?i++:ne==="]"?i--:ne==="("?u++:ne===")"&&u--}const E=o.length===0?a:a.slice(l);let _=E,G=!1;E.endsWith(kt)?(_=E.slice(0,-1),G=!0):E.startsWith(kt)&&(_=E.slice(1),G=!0);const Y=f&&f>l?f-l:void 0;return Lt(o,G,_,Y)};if(t){const a=t+Vt,o=r;r=i=>i.startsWith(a)?o(i.slice(a.length)):Lt(xn,!1,i,void 0,!0)}if(n){const a=r;r=o=>n({className:o,parseClassName:a})}return r},Tn=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,r)=>{t.set(n,1e6+r)}),n=>{const r=[];let a=[];for(let o=0;o<n.length;o++){const i=n[o],u=i[0]==="[",l=t.has(i);u||l?(a.length>0&&(a.sort(),r.push(...a),a=[]),r.push(i)):a.push(i)}return a.length>0&&(a.sort(),r.push(...a)),r}},On=e=>({cache:kn(e.cacheSize),parseClassName:Rn(e),sortModifiers:Tn(e),...gn(e)}),An=/\s+/,Dn=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:a,sortModifiers:o}=t,i=[],u=e.trim().split(An);let l="";for(let f=u.length-1;f>=0;f-=1){const g=u[f],{isExternal:E,modifiers:_,hasImportantModifier:G,baseClassName:Y,maybePostfixModifierPosition:h}=n(g);if(E){l=g+(l.length>0?" "+l:l);continue}let ne=!!h,C=r(ne?Y.substring(0,h):Y);if(!C){if(!ne){l=g+(l.length>0?" "+l:l);continue}if(C=r(Y),!C){l=g+(l.length>0?" "+l:l);continue}ne=!1}const O=_.length===0?"":_.length===1?_[0]:o(_).join(":"),U=G?O+kt:O,V=U+C;if(i.indexOf(V)>-1)continue;i.push(V);const X=a(C,ne);for(let y=0;y<X.length;++y){const S=X[y];i.push(U+S)}l=g+(l.length>0?" "+l:l)}return l},Fn=(...e)=>{let t=0,n,r,a="";for(;t<e.length;)(n=e[t++])&&(r=fr(n))&&(a&&(a+=" "),a+=r);return a},fr=e=>{if(typeof e=="string")return e;let t,n="";for(let r=0;r<e.length;r++)e[r]&&(t=fr(e[r]))&&(n&&(n+=" "),n+=t);return n},_n=(e,...t)=>{let n,r,a,o;const i=l=>{const f=t.reduce((g,E)=>E(g),e());return n=On(f),r=n.cache.get,a=n.cache.set,o=u,u(l)},u=l=>{const f=r(l);if(f)return f;const g=Dn(l,n);return a(l,g),g};return o=i,(...l)=>o(Fn(...l))},Nn=[],pe=e=>{const t=n=>n[e]||Nn;return t.isThemeGetter=!0,t},mr=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,pr=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Pn=/^\d+\/\d+$/,$n=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,jn=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,In=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Vn=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ln=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Xe=e=>Pn.test(e),L=e=>!!e&&!Number.isNaN(Number(e)),Me=e=>!!e&&Number.isInteger(Number(e)),Ct=e=>e.endsWith("%")&&L(e.slice(0,-1)),Ie=e=>$n.test(e),Un=()=>!0,qn=e=>jn.test(e)&&!In.test(e),gr=()=>!1,Mn=e=>Vn.test(e),zn=e=>Ln.test(e),Kn=e=>!R(e)&&!T(e),Bn=e=>et(e,yr,gr),R=e=>mr.test(e),Ye=e=>et(e,wr,qn),Et=e=>et(e,Jn,L),Ut=e=>et(e,hr,gr),Gn=e=>et(e,br,zn),ut=e=>et(e,vr,Mn),T=e=>pr.test(e),nt=e=>tt(e,wr),Yn=e=>tt(e,Hn),qt=e=>tt(e,hr),Wn=e=>tt(e,yr),Qn=e=>tt(e,br),dt=e=>tt(e,vr,!0),et=(e,t,n)=>{const r=mr.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},tt=(e,t,n=!1)=>{const r=pr.exec(e);return r?r[1]?t(r[1]):n:!1},hr=e=>e==="position"||e==="percentage",br=e=>e==="image"||e==="url",yr=e=>e==="length"||e==="size"||e==="bg-size",wr=e=>e==="length",Jn=e=>e==="number",Hn=e=>e==="family-name",vr=e=>e==="shadow",Xn=()=>{const e=pe("color"),t=pe("font"),n=pe("text"),r=pe("font-weight"),a=pe("tracking"),o=pe("leading"),i=pe("breakpoint"),u=pe("container"),l=pe("spacing"),f=pe("radius"),g=pe("shadow"),E=pe("inset-shadow"),_=pe("text-shadow"),G=pe("drop-shadow"),Y=pe("blur"),h=pe("perspective"),ne=pe("aspect"),C=pe("ease"),O=pe("animate"),U=()=>["auto","avoid","all","avoid-page","page","left","right","column"],V=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],X=()=>[...V(),T,R],y=()=>["auto","hidden","clip","visible","scroll"],S=()=>["auto","contain","none"],m=()=>[T,R,l],D=()=>[Xe,"full","auto",...m()],N=()=>[Me,"none","subgrid",T,R],j=()=>["auto",{span:["full",Me,T,R]},Me,T,R],M=()=>[Me,"auto",T,R],W=()=>["auto","min","max","fr",T,R],Z=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],oe=()=>["start","end","center","stretch","center-safe","end-safe"],q=()=>["auto",...m()],ie=()=>[Xe,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...m()],A=()=>[e,T,R],le=()=>[...V(),qt,Ut,{position:[T,R]}],be=()=>["no-repeat",{repeat:["","x","y","space","round"]}],fe=()=>["auto","cover","contain",Wn,Bn,{size:[T,R]}],ye=()=>[Ct,nt,Ye],F=()=>["","none","full",f,T,R],ae=()=>["",L,nt,Ye],ee=()=>["solid","dashed","dotted","double"],we=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],H=()=>[L,Ct,qt,Ut],Se=()=>["","none",Y,T,R],P=()=>["none",L,T,R],ce=()=>["none",L,T,R],Oe=()=>[L,T,R],Ae=()=>[Xe,"full",...m()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Ie],breakpoint:[Ie],color:[Un],container:[Ie],"drop-shadow":[Ie],ease:["in","out","in-out"],font:[Kn],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Ie],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Ie],shadow:[Ie],spacing:["px",L],text:[Ie],"text-shadow":[Ie],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Xe,R,T,ne]}],container:["container"],columns:[{columns:[L,R,T,u]}],"break-after":[{"break-after":U()}],"break-before":[{"break-before":U()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:X()}],overflow:[{overflow:y()}],"overflow-x":[{"overflow-x":y()}],"overflow-y":[{"overflow-y":y()}],overscroll:[{overscroll:S()}],"overscroll-x":[{"overscroll-x":S()}],"overscroll-y":[{"overscroll-y":S()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:D()}],"inset-x":[{"inset-x":D()}],"inset-y":[{"inset-y":D()}],start:[{start:D()}],end:[{end:D()}],top:[{top:D()}],right:[{right:D()}],bottom:[{bottom:D()}],left:[{left:D()}],visibility:["visible","invisible","collapse"],z:[{z:[Me,"auto",T,R]}],basis:[{basis:[Xe,"full","auto",u,...m()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[L,Xe,"auto","initial","none",R]}],grow:[{grow:["",L,T,R]}],shrink:[{shrink:["",L,T,R]}],order:[{order:[Me,"first","last","none",T,R]}],"grid-cols":[{"grid-cols":N()}],"col-start-end":[{col:j()}],"col-start":[{"col-start":M()}],"col-end":[{"col-end":M()}],"grid-rows":[{"grid-rows":N()}],"row-start-end":[{row:j()}],"row-start":[{"row-start":M()}],"row-end":[{"row-end":M()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":W()}],"auto-rows":[{"auto-rows":W()}],gap:[{gap:m()}],"gap-x":[{"gap-x":m()}],"gap-y":[{"gap-y":m()}],"justify-content":[{justify:[...Z(),"normal"]}],"justify-items":[{"justify-items":[...oe(),"normal"]}],"justify-self":[{"justify-self":["auto",...oe()]}],"align-content":[{content:["normal",...Z()]}],"align-items":[{items:[...oe(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...oe(),{baseline:["","last"]}]}],"place-content":[{"place-content":Z()}],"place-items":[{"place-items":[...oe(),"baseline"]}],"place-self":[{"place-self":["auto",...oe()]}],p:[{p:m()}],px:[{px:m()}],py:[{py:m()}],ps:[{ps:m()}],pe:[{pe:m()}],pt:[{pt:m()}],pr:[{pr:m()}],pb:[{pb:m()}],pl:[{pl:m()}],m:[{m:q()}],mx:[{mx:q()}],my:[{my:q()}],ms:[{ms:q()}],me:[{me:q()}],mt:[{mt:q()}],mr:[{mr:q()}],mb:[{mb:q()}],ml:[{ml:q()}],"space-x":[{"space-x":m()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":m()}],"space-y-reverse":["space-y-reverse"],size:[{size:ie()}],w:[{w:[u,"screen",...ie()]}],"min-w":[{"min-w":[u,"screen","none",...ie()]}],"max-w":[{"max-w":[u,"screen","none","prose",{screen:[i]},...ie()]}],h:[{h:["screen","lh",...ie()]}],"min-h":[{"min-h":["screen","lh","none",...ie()]}],"max-h":[{"max-h":["screen","lh",...ie()]}],"font-size":[{text:["base",n,nt,Ye]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,T,Et]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Ct,R]}],"font-family":[{font:[Yn,R,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[a,T,R]}],"line-clamp":[{"line-clamp":[L,"none",T,Et]}],leading:[{leading:[o,...m()]}],"list-image":[{"list-image":["none",T,R]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",T,R]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:A()}],"text-color":[{text:A()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ee(),"wavy"]}],"text-decoration-thickness":[{decoration:[L,"from-font","auto",T,Ye]}],"text-decoration-color":[{decoration:A()}],"underline-offset":[{"underline-offset":[L,"auto",T,R]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:m()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",T,R]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",T,R]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:le()}],"bg-repeat":[{bg:be()}],"bg-size":[{bg:fe()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Me,T,R],radial:["",T,R],conic:[Me,T,R]},Qn,Gn]}],"bg-color":[{bg:A()}],"gradient-from-pos":[{from:ye()}],"gradient-via-pos":[{via:ye()}],"gradient-to-pos":[{to:ye()}],"gradient-from":[{from:A()}],"gradient-via":[{via:A()}],"gradient-to":[{to:A()}],rounded:[{rounded:F()}],"rounded-s":[{"rounded-s":F()}],"rounded-e":[{"rounded-e":F()}],"rounded-t":[{"rounded-t":F()}],"rounded-r":[{"rounded-r":F()}],"rounded-b":[{"rounded-b":F()}],"rounded-l":[{"rounded-l":F()}],"rounded-ss":[{"rounded-ss":F()}],"rounded-se":[{"rounded-se":F()}],"rounded-ee":[{"rounded-ee":F()}],"rounded-es":[{"rounded-es":F()}],"rounded-tl":[{"rounded-tl":F()}],"rounded-tr":[{"rounded-tr":F()}],"rounded-br":[{"rounded-br":F()}],"rounded-bl":[{"rounded-bl":F()}],"border-w":[{border:ae()}],"border-w-x":[{"border-x":ae()}],"border-w-y":[{"border-y":ae()}],"border-w-s":[{"border-s":ae()}],"border-w-e":[{"border-e":ae()}],"border-w-t":[{"border-t":ae()}],"border-w-r":[{"border-r":ae()}],"border-w-b":[{"border-b":ae()}],"border-w-l":[{"border-l":ae()}],"divide-x":[{"divide-x":ae()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ae()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ee(),"hidden","none"]}],"divide-style":[{divide:[...ee(),"hidden","none"]}],"border-color":[{border:A()}],"border-color-x":[{"border-x":A()}],"border-color-y":[{"border-y":A()}],"border-color-s":[{"border-s":A()}],"border-color-e":[{"border-e":A()}],"border-color-t":[{"border-t":A()}],"border-color-r":[{"border-r":A()}],"border-color-b":[{"border-b":A()}],"border-color-l":[{"border-l":A()}],"divide-color":[{divide:A()}],"outline-style":[{outline:[...ee(),"none","hidden"]}],"outline-offset":[{"outline-offset":[L,T,R]}],"outline-w":[{outline:["",L,nt,Ye]}],"outline-color":[{outline:A()}],shadow:[{shadow:["","none",g,dt,ut]}],"shadow-color":[{shadow:A()}],"inset-shadow":[{"inset-shadow":["none",E,dt,ut]}],"inset-shadow-color":[{"inset-shadow":A()}],"ring-w":[{ring:ae()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:A()}],"ring-offset-w":[{"ring-offset":[L,Ye]}],"ring-offset-color":[{"ring-offset":A()}],"inset-ring-w":[{"inset-ring":ae()}],"inset-ring-color":[{"inset-ring":A()}],"text-shadow":[{"text-shadow":["none",_,dt,ut]}],"text-shadow-color":[{"text-shadow":A()}],opacity:[{opacity:[L,T,R]}],"mix-blend":[{"mix-blend":[...we(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":we()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[L]}],"mask-image-linear-from-pos":[{"mask-linear-from":H()}],"mask-image-linear-to-pos":[{"mask-linear-to":H()}],"mask-image-linear-from-color":[{"mask-linear-from":A()}],"mask-image-linear-to-color":[{"mask-linear-to":A()}],"mask-image-t-from-pos":[{"mask-t-from":H()}],"mask-image-t-to-pos":[{"mask-t-to":H()}],"mask-image-t-from-color":[{"mask-t-from":A()}],"mask-image-t-to-color":[{"mask-t-to":A()}],"mask-image-r-from-pos":[{"mask-r-from":H()}],"mask-image-r-to-pos":[{"mask-r-to":H()}],"mask-image-r-from-color":[{"mask-r-from":A()}],"mask-image-r-to-color":[{"mask-r-to":A()}],"mask-image-b-from-pos":[{"mask-b-from":H()}],"mask-image-b-to-pos":[{"mask-b-to":H()}],"mask-image-b-from-color":[{"mask-b-from":A()}],"mask-image-b-to-color":[{"mask-b-to":A()}],"mask-image-l-from-pos":[{"mask-l-from":H()}],"mask-image-l-to-pos":[{"mask-l-to":H()}],"mask-image-l-from-color":[{"mask-l-from":A()}],"mask-image-l-to-color":[{"mask-l-to":A()}],"mask-image-x-from-pos":[{"mask-x-from":H()}],"mask-image-x-to-pos":[{"mask-x-to":H()}],"mask-image-x-from-color":[{"mask-x-from":A()}],"mask-image-x-to-color":[{"mask-x-to":A()}],"mask-image-y-from-pos":[{"mask-y-from":H()}],"mask-image-y-to-pos":[{"mask-y-to":H()}],"mask-image-y-from-color":[{"mask-y-from":A()}],"mask-image-y-to-color":[{"mask-y-to":A()}],"mask-image-radial":[{"mask-radial":[T,R]}],"mask-image-radial-from-pos":[{"mask-radial-from":H()}],"mask-image-radial-to-pos":[{"mask-radial-to":H()}],"mask-image-radial-from-color":[{"mask-radial-from":A()}],"mask-image-radial-to-color":[{"mask-radial-to":A()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":V()}],"mask-image-conic-pos":[{"mask-conic":[L]}],"mask-image-conic-from-pos":[{"mask-conic-from":H()}],"mask-image-conic-to-pos":[{"mask-conic-to":H()}],"mask-image-conic-from-color":[{"mask-conic-from":A()}],"mask-image-conic-to-color":[{"mask-conic-to":A()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:le()}],"mask-repeat":[{mask:be()}],"mask-size":[{mask:fe()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",T,R]}],filter:[{filter:["","none",T,R]}],blur:[{blur:Se()}],brightness:[{brightness:[L,T,R]}],contrast:[{contrast:[L,T,R]}],"drop-shadow":[{"drop-shadow":["","none",G,dt,ut]}],"drop-shadow-color":[{"drop-shadow":A()}],grayscale:[{grayscale:["",L,T,R]}],"hue-rotate":[{"hue-rotate":[L,T,R]}],invert:[{invert:["",L,T,R]}],saturate:[{saturate:[L,T,R]}],sepia:[{sepia:["",L,T,R]}],"backdrop-filter":[{"backdrop-filter":["","none",T,R]}],"backdrop-blur":[{"backdrop-blur":Se()}],"backdrop-brightness":[{"backdrop-brightness":[L,T,R]}],"backdrop-contrast":[{"backdrop-contrast":[L,T,R]}],"backdrop-grayscale":[{"backdrop-grayscale":["",L,T,R]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[L,T,R]}],"backdrop-invert":[{"backdrop-invert":["",L,T,R]}],"backdrop-opacity":[{"backdrop-opacity":[L,T,R]}],"backdrop-saturate":[{"backdrop-saturate":[L,T,R]}],"backdrop-sepia":[{"backdrop-sepia":["",L,T,R]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":m()}],"border-spacing-x":[{"border-spacing-x":m()}],"border-spacing-y":[{"border-spacing-y":m()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",T,R]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[L,"initial",T,R]}],ease:[{ease:["linear","initial",C,T,R]}],delay:[{delay:[L,T,R]}],animate:[{animate:["none",O,T,R]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[h,T,R]}],"perspective-origin":[{"perspective-origin":X()}],rotate:[{rotate:P()}],"rotate-x":[{"rotate-x":P()}],"rotate-y":[{"rotate-y":P()}],"rotate-z":[{"rotate-z":P()}],scale:[{scale:ce()}],"scale-x":[{"scale-x":ce()}],"scale-y":[{"scale-y":ce()}],"scale-z":[{"scale-z":ce()}],"scale-3d":["scale-3d"],skew:[{skew:Oe()}],"skew-x":[{"skew-x":Oe()}],"skew-y":[{"skew-y":Oe()}],transform:[{transform:[T,R,"","none","gpu","cpu"]}],"transform-origin":[{origin:X()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Ae()}],"translate-x":[{"translate-x":Ae()}],"translate-y":[{"translate-y":Ae()}],"translate-z":[{"translate-z":Ae()}],"translate-none":["translate-none"],accent:[{accent:A()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:A()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",T,R]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":m()}],"scroll-mx":[{"scroll-mx":m()}],"scroll-my":[{"scroll-my":m()}],"scroll-ms":[{"scroll-ms":m()}],"scroll-me":[{"scroll-me":m()}],"scroll-mt":[{"scroll-mt":m()}],"scroll-mr":[{"scroll-mr":m()}],"scroll-mb":[{"scroll-mb":m()}],"scroll-ml":[{"scroll-ml":m()}],"scroll-p":[{"scroll-p":m()}],"scroll-px":[{"scroll-px":m()}],"scroll-py":[{"scroll-py":m()}],"scroll-ps":[{"scroll-ps":m()}],"scroll-pe":[{"scroll-pe":m()}],"scroll-pt":[{"scroll-pt":m()}],"scroll-pr":[{"scroll-pr":m()}],"scroll-pb":[{"scroll-pb":m()}],"scroll-pl":[{"scroll-pl":m()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",T,R]}],fill:[{fill:["none",...A()]}],"stroke-w":[{stroke:[L,nt,Ye,Et]}],stroke:[{stroke:["none",...A()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},Zn=_n(Xn);function Pe(...e){return Zn(dn(e))}const Fe=e=>"Condition"in e,Cr=e=>"LHSField"in e,ea=Fe,ta=Cr;let ra=0;const ot=()=>`filter_${Date.now()}_${++ra}`,na=e=>e.id?e:{...e,id:ot()},Er=e=>e.map(t=>{const n=na(t);return Fe(n)?{...n,Condition:Er(n.Condition)}:n}),Sr=e=>e.map(t=>{if(Fe(t)){const{id:a,...o}=t;return{...o,Condition:Sr(t.Condition)}}const{id:n,...r}=t;return r}),kr=(e,t)=>{for(const n of e){if(n.id===t)return n;if(Fe(n)){const r=kr(n.Condition,t);if(r)return r}}},xt=(e,t,n)=>e.map(r=>r.id===t?n(r):Fe(r)?{...r,Condition:xt(r.Condition,t,n)}:r),xr=(e,t)=>e.filter(n=>n.id!==t).map(n=>Fe(n)?{...n,Condition:xr(n.Condition,t)}:n),Rt=(e,t,n)=>e.map(r=>r.id===t&&Fe(r)?{...r,Condition:[...r.Condition,n]}:Fe(r)?{...r,Condition:Rt(r.Condition,t,n)}:r);function At(e={}){const[t,n]=c.useState(()=>Er(e.initialConditions||[])),[r,a]=c.useState(e.initialOperator||"And"),o=c.useMemo(()=>{if(t.length!==0)return{Operator:r,Condition:Sr(t)}},[t,r]),i=t.length>0,u=c.useCallback(C=>{const O=ot(),U={...C,id:O};return n(V=>[...V,U]),O},[]),l=c.useCallback(C=>{const O=ot(),U={id:O,Operator:C,Condition:[]};return n(V=>[...V,U]),O},[]),f=c.useCallback((C,O)=>{const U=ot(),V={...O,id:U};return n(X=>Rt(X,C,V)),U},[]),g=c.useCallback((C,O)=>{const U=ot(),V={id:U,Operator:O,Condition:[]};return n(X=>Rt(X,C,V)),U},[]),E=c.useCallback((C,O)=>{n(U=>xt(U,C,V=>Fe(V)?V:{...V,...O}))},[]),_=c.useCallback((C,O)=>{n(U=>xt(U,C,V=>Fe(V)?{...V,Operator:O}:V))},[]),G=c.useCallback(C=>{n(O=>xr(O,C))},[]),Y=c.useCallback(C=>kr(t,C),[t]),h=c.useCallback(()=>{n([])},[]),ne=c.useCallback(C=>{a(C)},[]);return{operator:r,items:t,payload:o,hasConditions:i,add:u,addGroup:l,addTo:f,addGroupTo:g,update:E,updateOperator:_,remove:G,get:Y,clear:h,setOperator:ne,conditions:t}}function aa(e){var le,be,fe,ye,F,ae,ee,we,H,Se;const[t,n]=c.useState({query:""}),[r,a]=c.useState({field:((be=(le=e.initialState)==null?void 0:le.sorting)==null?void 0:be.field)||null,direction:((ye=(fe=e.initialState)==null?void 0:fe.sorting)==null?void 0:ye.direction)||null}),[o,i]=c.useState({pageNo:((ae=(F=e.initialState)==null?void 0:F.pagination)==null?void 0:ae.pageNo)||1,pageSize:((we=(ee=e.initialState)==null?void 0:ee.pagination)==null?void 0:we.pageSize)||10}),u=At({initialConditions:(H=e.initialState)==null?void 0:H.filters,initialOperator:((Se=e.initialState)==null?void 0:Se.filterOperator)||"And"}),l=c.useMemo(()=>{const P={};return t.query&&(P.Search=t.query),u.payload&&(P.Filter=u.payload),P},[t.query,u.payload]),f=c.useMemo(()=>{const P={...l};return r.field&&r.direction&&(P.Sort=[{[String(r.field)]:r.direction==="asc"?"ASC":"DESC"}]),e.enablePagination&&(P.Page=o.pageNo,P.PageSize=o.pageSize),P},[l,r,o,e.enablePagination]),{data:g,isLoading:E,isFetching:_,error:G,refetch:Y}=Ce.useQuery({queryKey:["table",e.source,f],queryFn:async()=>{try{const P=await Ee(e.source).list(f);return e.onSuccess&&e.onSuccess(P.Data),P}catch(P){throw e.onError&&e.onError(P),P}},staleTime:0,gcTime:0}),{data:h,isLoading:ne,isFetching:C,error:O,refetch:U}=Ce.useQuery({queryKey:["table-count",e.source,l],queryFn:async()=>{try{return await Ee(e.source).count(l)}catch(P){throw e.onError&&e.onError(P),P}},staleTime:0,gcTime:0}),V=c.useMemo(()=>(g==null?void 0:g.Data)||[],[g]),X=c.useMemo(()=>(h==null?void 0:h.Count)||0,[h]),y=c.useMemo(()=>Math.ceil(X/o.pageSize),[X,o.pageSize]),S=c.useCallback(P=>{a(ce=>{if(ce.field===P){if(ce.direction==="asc")return{field:P,direction:"desc"};if(ce.direction==="desc")return{field:null,direction:null}}return{field:P,direction:"asc"}})},[]),m=c.useCallback(()=>{a({field:null,direction:null})},[]),D=c.useCallback((P,ce)=>{a({field:P,direction:ce})},[]),N=c.useCallback(P=>{n({query:P}),i(ce=>({...ce,pageNo:1}))},[]),j=c.useCallback(()=>{n({query:""})},[]),M=o.pageNo<y,W=o.pageNo>1,Z=c.useCallback(()=>{M&&i(P=>({...P,pageNo:P.pageNo+1}))},[M]),oe=c.useCallback(()=>{W&&i(P=>({...P,pageNo:P.pageNo-1}))},[W]),q=c.useCallback(P=>{const ce=Math.max(1,Math.min(P,y));i(Oe=>({...Oe,pageNo:ce}))},[y]),ie=c.useCallback(P=>{i(ce=>({...ce,pageSize:P,pageNo:1}))},[]),A=c.useCallback(async()=>{const[P]=await Promise.all([Y(),U()]);return P.data||{Data:[]}},[Y,U]);return{rows:V,totalItems:X,isLoading:E||ne,isFetching:_||C,error:G||O,search:{query:t.query,setQuery:N,clear:j},sort:{field:r.field,direction:r.direction,toggle:S,clear:m,set:D},filter:u,pagination:{currentPage:o.pageNo,pageSize:o.pageSize,totalPages:y,totalItems:X,canGoNext:M,canGoPrevious:W,goToNext:Z,goToPrevious:oe,goToPage:q,setPageSize:ie},refetch:A}}function sa(){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 oa={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,n)=>{const r=String(e||"");return n!==void 0?r.substring(t,t+n):r.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 n=new Date(e),r=new Date(t),a=Math.abs(n.getTime()-r.getTime());return Math.ceil(a/(1e3*60*60*24))},ADD_DAYS:(e,t)=>{const n=new Date(e);return n.setDate(n.getDate()+t),n},ADD_MONTHS:(e,t)=>{const n=new Date(e);return n.setMonth(n.getMonth()+t),n},SUM:(...e)=>e.reduce((t,n)=>t+(Number(n)||0),0),AVG:(...e)=>{const t=e.filter(n=>!isNaN(Number(n)));return t.length>0?t.reduce((n,r)=>n+Number(r),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,n)=>e?t:n,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 ze(e,t){var n;switch(e.Type){case"Literal":return e.Value;case"SystemIdentifier":if(e.Property){const f=t.systemValues[e.Name];return St(f,e.Property.Name)}return t.systemValues[e.Name];case"Identifier":if(e.Property){const f=Mt(e,t);return St(f,e.Property.Name)}return Mt(e,t);case"MemberExpression":if(!e.Arguments||e.Arguments.length===0)throw new Error("MemberExpression requires Arguments array");const r=ze(e.Arguments[0],t),a=(n=e.Arguments[0].Property)==null?void 0:n.Name;return a?St(r,a):r;case"BinaryExpression":if(!e.Arguments||e.Arguments.length!==2)throw new Error("BinaryExpression requires exactly 2 arguments");const o=ze(e.Arguments[0],t),i=ze(e.Arguments[1],t);return ia(e.Operator,o,i);case"LogicalExpression":if(!e.Arguments||e.Arguments.length<2)throw new Error("LogicalExpression requires at least 2 arguments");return ca(e.Operator,e.Arguments,t);case"CallExpression":if(!e.Callee)throw new Error("CallExpression requires Callee");const u=oa[e.Callee];if(!u)throw new Error(`Unknown function: ${e.Callee}`);const l=(e.Arguments||[]).map(f=>ze(f,t));return u(...l);case"AssignmentExpression":if(!e.Arguments||e.Arguments.length!==1)throw new Error("AssignmentExpression requires exactly 1 argument");return ze(e.Arguments[0],t);default:throw new Error(`Unknown expression type: ${e.Type}`)}}function Mt(e,t){const{Name:n,Source:r}=e;if(!n)throw new Error("Identifier requires Name");switch(r){case"Input":default:return t.formValues[n]}}function St(e,t){if(!(!e||typeof e!="object"))return e[t]}function ia(e,t,n){const r=a=>a==null?0:typeof a=="number"?a:typeof a=="object"&&a!==null&&"value"in a?Number(a.value)||0:Number(a)||0;switch(e){case"==":return t==n;case"!=":return t!=n;case">":return r(t)>r(n);case"<":return r(t)<r(n);case">=":return r(t)>=r(n);case"<=":return r(t)<=r(n);case"+":return r(t)+r(n);case"-":return r(t)-r(n);case"*":return r(t)*r(n);case"/":const a=r(n);return a!==0?r(t)/a:0;default:throw new Error(`Unknown binary operator: ${e}`)}}function ca(e,t,n){switch(e){case"AND":return t.every(r=>!!ze(r,n));case"OR":return t.some(r=>!!ze(r,n));default:throw new Error(`Unknown logical operator: ${e}`)}}function Rr(e,t,n={}){const r={formValues:t,systemValues:sa(),referenceData:n};try{return ze(e,r)}catch(a){return console.warn("Expression evaluation failed:",a),!1}}function la(e,t,n={}){const r=[];for(const a of e)try{Rr(a.Condition.ExpressionTree,t,n)||r.push({isValid:!1,message:a.Message,fieldName:a.Id})}catch(o){console.warn(`Cross-field validation rule ${a.Id} failed:`,o)}return r}function ua(e,t={},n={}){try{return Rr(e,t,n)}catch(r){return console.warn("Default value calculation failed:",r),null}}function zt(e,t){var u,l,f;const n=((u=e.Expression)==null?void 0:u.toLowerCase())||"",r=((l=e.Name)==null?void 0:l.toLowerCase())||"",a=((f=e.Id)==null?void 0:f.toLowerCase())||"",o=t.toLowerCase();return r.includes("required")||a.includes("required")?!0:[`${o} != null`,`${o} != ''`,`trim(${o}) != ''`,`${o}!=null`,`${o}!=''`].some(g=>n.includes(g))}function da(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 n={...t.Fields};return Object.entries(n).forEach(([r,a])=>{let o=a.Required||!1;if(a.Validation&&Array.isArray(a.Validation))if(a.Validation.length>0&&typeof a.Validation[0]=="object"){const i=[];a.Validation.forEach(u=>{t.Rules.Validation[u.Id]=u,i.push(u.Id),zt(u,r)&&(o=!0)}),n[r]={...a,Validation:i,Required:o}}else a.Validation.forEach(u=>{var f;const l=(f=t.Rules.Validation)==null?void 0:f[u];l&&zt(l,r)&&(o=!0)}),o&&!a.Required&&(n[r]={...a,Required:!0});if(a.Formula){const i=`RULE_COMPUTE_${r.toUpperCase()}`;t.Rules.Computation[i]={Id:i,Name:a.Formula.Id||`Compute ${r}`,Description:a.Formula.Description||`Computes value for ${r}`,Expression:a.Formula.Expression,ExpressionTree:a.Formula.ExpressionTree,ResultType:a.Type}}}),t.Fields=n,t}function fa(e){var n,r,a;const t={validation:{},computation:{},businessLogic:{}};return(n=e.Rules)!=null&&n.Validation&&(t.validation={...e.Rules.Validation}),(r=e.Rules)!=null&&r.Computation&&(t.computation={...e.Rules.Computation}),(a=e.Rules)!=null&&a.BusinessLogic&&(t.businessLogic={...e.Rules.BusinessLogic}),t}function ma(e){var r;const t={};if(!((r=e.Rules)!=null&&r.Computation))return t;const n=Object.entries(e.Fields).filter(([a,o])=>o.Computed).map(([a])=>a);return n.sort((a,o)=>o.length-a.length),Object.entries(e.Rules.Computation).forEach(([a,o])=>{const i=a.toUpperCase().replace(/[_-]/g,"");for(const l of n){const f=l.toUpperCase().replace(/[_-]/g,"");if(i.includes(f)){t[a]=l;return}}const u=`${o.Name||""} ${o.Description||""}`.toLowerCase();for(const l of n)if(u.includes(l.toLowerCase())){t[a]=l;return}}),t}function pa(e,t){const n={};Object.keys(e.Fields).forEach(a=>{n[a]={validation:[],computation:[],businessLogic:[]}}),Object.entries(e.Fields).forEach(([a,o])=>{o.Validation&&Array.isArray(o.Validation)&&o.Validation.forEach(u=>{t.validation[u]?n[a].validation.push(u):t.computation[u]?n[a].computation.push(u):t.businessLogic[u]&&n[a].businessLogic.push(u)}),o.Formula&&Object.entries(t.computation).forEach(([i,u])=>{var l;u.Expression===((l=o.Formula)==null?void 0:l.Expression)&&(n[a].computation.includes(i)||n[a].computation.push(i))})});const r=ma(e);return Object.entries(r).forEach(([a,o])=>{n[o]&&!n[o].computation.includes(a)&&n[o].computation.push(a)}),n}function ga(e,t){const n={},r={editable:!0,readable:!0,hidden:!1};return Object.keys(e.Fields).forEach(a=>{var l,f,g,E,_,G;if(!t||!((l=e.RolePermission)!=null&&l[t])){n[a]=r;return}const o=e.RolePermission[t],i=((f=o.Editable)==null?void 0:f.includes(a))||((g=o.Editable)==null?void 0:g.includes("*"))||!1,u=((E=o.ReadOnly)==null?void 0:E.includes(a))||((_=o.ReadOnly)==null?void 0:_.includes("*"))||i;n[a]={editable:i&&!((G=o.ReadOnly)!=null&&G.includes(a)),readable:u,hidden:!u}}),n}function ha(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 Tr(e){return e.replace(/([A-Z])/g," $1").replace(/^./,t=>t.toUpperCase()).replace(/_/g," ").trim()}function ba(e,t,n){const r={};switch(t.Required&&(r.required={value:!0,message:`${Tr(e)} is required`}),t.Type){case"Number":r.valueAsNumber=!0;break;case"Date":case"DateTime":r.valueAsDate=!0;break}return t.Validation&&t.Validation.length>0&&(r.validate=()=>!0),r}function ya(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 wa(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 ua(e.DefaultValue.ExpressionTree,t)}function va(e,t,n,r={},a,o){const i={editable:!0,readable:!0,hidden:!1},l=o||{validation:[],computation:[],businessLogic:[]},f=t.Computed||!!t.Formula||l.computation.length>0,g=ba(e,t);return f&&(g.disabled=!0),{name:e,type:ha(t.Type,e),label:t.Name||Tr(e),required:t.Required||!1,computed:f,defaultValue:wa(t,r),options:ya(t),validation:g,description:t.Description,_bdoField:t,permission:a||i,rules:l}}function Ca(e,t={},n){let r=e;r=da(r);const a={},o=[],i=[],u=[],l=[],f=fa(r),g=pa(r,f),E=ga(r,n);for(const[_,G]of Object.entries(r.Fields)){if(_.startsWith("_")&&!["_id"].includes(_))continue;const Y=E[_];if(Y.hidden)continue;const h=va(_,G,r.Fields,t,Y,g[_]||{validation:[],computation:[],businessLogic:[]});a[_]=h,o.push(_),h.computed&&i.push(_),h.required&&u.push(_)}return{fields:a,fieldOrder:o,computedFields:i,requiredFields:u,crossFieldValidation:l,rules:f,fieldRules:g,rolePermissions:r.RolePermission}}function Ea(e){var n;if(e.type!=="reference"||!((n=e._bdoField.Values)!=null&&n.Reference))return null;const t=e._bdoField.Values.Reference;return{businessObject:t.BusinessObject,fields:t.Fields||["_id"],filters:t.Filters,sort:t.Sort}}function Sa(e){const t={};for(const[n,r]of Object.entries(e.fields))if(r.type==="reference"){const a=Ea(r);a&&(t[n]=a)}return t}async function ka(e){try{const n=(await Zt(e)).BOBlob;if(!n||typeof n!="object"||!n.Fields)throw new Error(`Invalid BDO schema response for ${e}`);return n}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 xa(e,t=3){let n;for(let r=1;r<=t;r++)try{return await ka(e)}catch(a){if(n=a,r<t){const o=Math.min(1e3*Math.pow(2,r-1),5e3);await new Promise(i=>setTimeout(i,o));continue}}throw n}async function Ra(e,t){try{return await Ee(e).get(t)}catch(n){throw console.error(`Record fetch error for ${e}/${t}:`,n),new Error(`Failed to load record: ${n instanceof Error?n.message:"Unknown error"}`)}}async function Ta(e,t,n,r){try{let a;if(t==="create")return a=await Ee(e).create(n),{success:!0,data:a,recordId:a._id||r};if(t==="update"){if(!r)throw new Error("Record ID is required for update operations");return a=await Ee(e).update(r,n),{success:!0,data:a,recordId:a._id||r}}else throw new Error(`Unsupported operation: ${t}`)}catch(a){return console.error("Form submission error:",a),{success:!1,error:new Error(`Failed to ${t} record: ${a instanceof Error?a.message:"Unknown error"}`)}}}async function Oa(e,t=["_id"],n,r){try{const a={};return n&&(a.Filter=n),r&&(a.Sort=r),t.length>0&&(a.Field=t),(await Ee(e).list(a)).Data||[]}catch(a){return console.error(`Reference data fetch error for ${e}:`,a),[]}}async function Aa(e){const t={},n=Object.entries(e).map(async([a,o])=>{try{const i=await Oa(o.businessObject,o.fields,o.filters,o.sort);return[a,i]}catch(i){return console.warn(`Failed to fetch reference data for ${a}:`,i),[a,[]]}});return(await Promise.allSettled(n)).forEach(a=>{if(a.status==="fulfilled"){const[o,i]=a.value;t[o]=Array.isArray(i)?i:[]}}),t}function Da(e,t,n="create",r){const a={};return Object.keys(e).forEach(o=>{const i=o,u=e[i];if(!t.includes(o)&&u!==void 0){if(n==="create"){a[i]=u;return}if(n==="update"){if(!r){a[i]=u;return}const l=r[i];JSON.stringify(u)!==JSON.stringify(l)&&(a[i]=u)}}}),a}function Fa(e){var t,n,r,a;return typeof e=="string"?e:e!=null&&e.message?e.message:(n=(t=e==null?void 0:e.response)==null?void 0:t.data)!=null&&n.message?e.response.data.message:(a=(r=e==null?void 0:e.response)==null?void 0:r.data)!=null&&a.error?e.response.data.error:"An unexpected error occurred"}function _a(e){var t,n;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"))||((n=e==null?void 0:e.message)==null?void 0:n.toLowerCase().includes("fetch"))}function Na(e){var t,n,r;return(e==null?void 0:e.status)===400||((t=e==null?void 0:e.response)==null?void 0:t.status)===400||((n=e==null?void 0:e.message)==null?void 0:n.toLowerCase().includes("validation"))||((r=e==null?void 0:e.message)==null?void 0:r.toLowerCase().includes("invalid"))}const Ze=new Map;function Pa(e,t,n=10){Ze.set(e,{data:t,timestamp:Date.now(),ttl:n*60*1e3})}function $a(e){const t=Ze.get(e);return t?Date.now()-t.timestamp>t.ttl?(Ze.delete(e),null):t.data:null}function ja(e){e?Array.from(Ze.keys()).filter(n=>n.startsWith(e)).forEach(n=>Ze.delete(n)):Ze.clear()}async function Ia(e){const t=`schema:${e}`,n=$a(t);if(n)return n;const r=await xa(e);return Pa(t,r,30),r}class Kt{constructor(t=1e3){Ge(this,"cache",new Map);Ge(this,"maxSize");this.maxSize=t}get(t){const n=this.cache.get(t);return n!==void 0&&(this.cache.delete(t),this.cache.set(t,n)),n}set(t,n){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){const r=this.cache.keys().next().value;this.cache.delete(r)}this.cache.set(t,n)}clear(){this.cache.clear()}}function Va(e){const t=new Set;function n(r){switch(r.Type){case"Identifier":r.Name&&!r.Name.startsWith("$")&&t.add(r.Name);break;case"MemberExpression":r.Arguments&&r.Arguments.forEach(n);break;case"CallExpression":case"BinaryExpression":case"LogicalExpression":r.Arguments&&r.Arguments.forEach(n);break}}return n(e),t}class La{constructor(){Ge(this,"resultCache",new Kt(500));Ge(this,"dependencyCache",new Kt(200));Ge(this,"compiledExpressions",new Map)}createCacheKey(t,n){const r=JSON.stringify(t),a=JSON.stringify(n);return`${r}:${a}`}getDependencies(t){const n=JSON.stringify(t);let r=this.dependencyCache.get(n);return r||(r=Va(t),this.dependencyCache.set(n,r)),r}getCachedResult(t,n,r){if(!r)return;const a=this.getDependencies(t);for(const i of a)if(n[i]!==r[i])return;const o=this.createCacheKey(t,n);return this.resultCache.get(o)}evaluate(t,n,r){const a=this.getCachedResult(t,n,r);if(a!==void 0)return a;const o=this.evaluateNode(t,n),i=this.createCacheKey(t,n);return this.resultCache.set(i,o),o}evaluateNode(t,n){switch(t.Type){case"Literal":return t.Value;case"Identifier":return this.getIdentifierValue(t,n);case"BinaryExpression":return this.evaluateBinaryExpression(t,n);case"LogicalExpression":return this.evaluateLogicalExpression(t,n);case"CallExpression":return this.evaluateCallExpression(t,n);case"MemberExpression":return this.evaluateMemberExpression(t,n);default:throw new Error(`Unsupported expression type: ${t.Type}`)}}getIdentifierValue(t,n){if(t.Name){if(t.Name==="NOW")return new Date;if(t.Name==="TODAY"){const r=new Date;return new Date(r.getFullYear(),r.getMonth(),r.getDate())}return t.Name==="CURRENT_USER_ID"?1:t.Name==="CURRENT_USER"?{EmpId:1,Email:"user@example.com",FirstName:"John",LastName:"Doe",Role:"User"}:n[t.Name]}}evaluateBinaryExpression(t,n){if(!t.Arguments||t.Arguments.length!==2)throw new Error("Binary expression requires exactly 2 arguments");const r=this.evaluateNode(t.Arguments[0],n),a=this.evaluateNode(t.Arguments[1],n);switch(t.Operator){case"==":return r==a;case"!=":return r!=a;case"===":return r===a;case"!==":return r!==a;case"<":return Number(r)<Number(a);case"<=":return Number(r)<=Number(a);case">":return Number(r)>Number(a);case">=":return Number(r)>=Number(a);case"+":return Number(r)+Number(a);case"-":return Number(r)-Number(a);case"*":return Number(r)*Number(a);case"/":return Number(r)/Number(a);case"%":return Number(r)%Number(a);default:throw new Error(`Unsupported binary operator: ${t.Operator}`)}}evaluateLogicalExpression(t,n){if(!t.Arguments||t.Arguments.length<2)throw new Error("Logical expression requires at least 2 arguments");switch(t.Operator){case"AND":for(const r of t.Arguments)if(!this.evaluateNode(r,n))return!1;return!0;case"OR":for(const r of t.Arguments)if(this.evaluateNode(r,n))return!0;return!1;default:throw new Error(`Unsupported logical operator: ${t.Operator}`)}}evaluateCallExpression(t,n){var a;if(!t.Callee)throw new Error("Call expression requires a function name");const r=((a=t.Arguments)==null?void 0:a.map(o=>this.evaluateNode(o,n)))||[];switch(t.Callee){case"CONCAT":return r.map(f=>String(f||"")).join("");case"TRIM":return String(r[0]||"").trim();case"LENGTH":return String(r[0]||"").length;case"UPPER":return String(r[0]||"").toUpperCase();case"LOWER":return String(r[0]||"").toLowerCase();case"CONTAINS":return String(r[0]||"").includes(String(r[1]||""));case"MATCHES":return new RegExp(String(r[1])).test(String(r[0]||""));case"SUM":return r.reduce((f,g)=>f+(Number(g)||0),0);case"AVG":const o=r.filter(f=>!isNaN(Number(f)));return o.length>0?o.reduce((f,g)=>f+Number(g),0)/o.length:0;case"MIN":return Math.min(...r.map(f=>Number(f)||0));case"MAX":return Math.max(...r.map(f=>Number(f)||0));case"ROUND":return Math.round(Number(r[0])||0);case"FLOOR":return Math.floor(Number(r[0])||0);case"CEIL":return Math.ceil(Number(r[0])||0);case"ABS":return Math.abs(Number(r[0])||0);case"YEAR":return new Date(r[0]).getFullYear();case"MONTH":return new Date(r[0]).getMonth()+1;case"DAY":return new Date(r[0]).getDate();case"DATE_DIFF":const i=new Date(r[0]),u=new Date(r[1]),l=Math.abs(i.getTime()-u.getTime());return Math.ceil(l/(1e3*60*60*24));case"IF":return r[0]?r[1]:r[2];case"AUTO_NUMBER":return Math.floor(Math.random()*1e4);default:throw new Error(`Unknown function: ${t.Callee}`)}}evaluateMemberExpression(t,n){var o;if(!t.Arguments||t.Arguments.length===0)throw new Error("Member expression requires arguments");const r=this.evaluateNode(t.Arguments[0],n),a=(o=t.Arguments[0].Property)==null?void 0:o.Name;return a&&r&&typeof r=="object"?r[a]:r}clearCache(){this.resultCache.clear(),this.dependencyCache.clear(),this.compiledExpressions.clear()}}const Or=new La;function Ua(e,t,n,r,a){if(!n||n.length===0)return{isValid:!0};const o={...r,[e]:t};for(const i of n)try{if(!Or.evaluate(i.ExpressionTree,o,a))return{isValid:!1,message:i.Message||`Validation failed for ${i.Name}`,fieldName:e}}catch(u){console.warn(`Validation rule ${i.Id} failed to evaluate:`,u)}return{isValid:!0}}function Bt(e){return Array.from(Or.getDependencies(e))}function qa(e){const{source:t,operation:n,recordId:r,defaultValues:a={},mode:o="onBlur",enabled:i=!0,userRole:u,onSuccess:l,onError:f,onSchemaError:g,onSubmitError:E,skipSchemaFetch:_=!1,schema:G,draftOnEveryChange:Y=!1}=e,[h,ne]=c.useState(null),[C,O]=c.useState({}),[U,V]=c.useState(null),[X,y]=c.useState(!1),[S]=c.useState({}),m=c.useRef(!1),D=c.useRef(null),N=c.useRef(null),j=c.useRef(l),M=c.useRef(f),W=c.useRef(E),Z=c.useRef(g);c.useEffect(()=>{j.current=l},[l]),c.useEffect(()=>{M.current=f},[f]),c.useEffect(()=>{W.current=E},[E]),c.useEffect(()=>{Z.current=g},[g]);const{data:oe,isLoading:q,error:ie,refetch:A}=Ce.useQuery({queryKey:["form-schema",t],queryFn:()=>_?Promise.resolve(G||{}):Ia(t),enabled:i&&(!_||!!G),retry:3,staleTime:30*60*1e3,gcTime:60*60*1e3,throwOnError:!1}),{data:le,isLoading:be,error:fe}=Ce.useQuery({queryKey:["form-record",t,r],queryFn:()=>Ra(t,r),enabled:i&&n==="update"&&!!r,retry:3,staleTime:5*60*1e3,gcTime:15*60*1e3,throwOnError:!1}),ye=c.useMemo(()=>{const w={...a};if(n==="update"&&le&&Object.assign(w,le),h)for(const[z,$]of Object.entries(h.fields))$.defaultValue!==void 0&&!(z in w)&&(w[z]=$.defaultValue);return w},[a,le,n,h]),F=Xr.useForm({mode:o,defaultValues:a,values:n==="update"&&le?ye:void 0});c.useEffect(()=>{var w;if(oe)try{const z=Ca(oe,{},u);ne(z);const $=Sa(z);Object.keys($).length>0&&Aa($).then(O).catch(console.warn)}catch(z){console.error("Schema processing failed:",z),(w=Z.current)==null||w.call(Z,z)}},[oe,u]),c.useEffect(()=>{var w;ie&&((w=Z.current)==null||w.call(Z,ie))},[ie]),c.useEffect(()=>{var w;fe&&((w=M.current)==null||w.call(M,fe))},[fe]);const ae=c.useMemo(()=>{if(!h)return[];const w=new Set,z=new Set(h.computedFields);return Object.entries(h.fieldRules).forEach(([$,J])=>{J.computation.forEach(K=>{const te=h.rules.computation[K];te!=null&&te.ExpressionTree&&Bt(te.ExpressionTree).forEach(he=>{h.fields[he]&&he!==$&&!z.has(he)&&w.add(he)})})}),h.computedFields.forEach($=>{const J=h.fields[$];J._bdoField.Formula&&Bt(J._bdoField.Formula.ExpressionTree).forEach(te=>{h.fields[te]&&te!==$&&!z.has(te)&&w.add(te)})}),Array.from(w)},[h]),ee=c.useCallback(async w=>{!h||ae.length===0||!(Y||ae.includes(w))||m.current||(D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{if(!h||m.current)return;const $=F.getValues();(async()=>{m.current=!0;try{const K=Ee(t),te={};n==="update"&&r&&"_id"in $&&(te._id=$._id);const ge=N.current??(n==="update"?le:null)??{},he=new Set(h.computedFields||[]);Object.keys($).forEach(me=>{if(me==="_id"||he.has(me))return;const Re=$[me],ct=ge[me];JSON.stringify(Re)!==JSON.stringify(ct)&&(Re!==""&&Re!==null&&Re!==void 0)&&(te[me]=Re)});const De=te,je={...N.current};Object.keys($).forEach(me=>{he.has(me)||(je[me]=$[me])}),N.current=je;const Ne=n==="update"&&r?await K.draftPatch(r,De):await K.draft(De);Ne&&typeof Ne=="object"&&(Object.entries(Ne).forEach(([me,Re])=>{$[me]!==Re&&F.setValue(me,Re,{shouldDirty:!1,shouldValidate:!1})}),Object.entries(Ne).forEach(([me,Re])=>{he.has(me)&&(N.current[me]=Re)}))}catch(K){console.warn("Failed to compute fields via API:",K)}finally{m.current=!1}})()},300))},[h,n,r,le,t,F,ae,Y]),we=c.useCallback(async()=>{if(!h)return!1;const w=F.getValues();if(!await F.trigger())return!1;const $=h.crossFieldValidation.map(K=>({Id:K.Id,Condition:{ExpressionTree:K.ExpressionTree},Message:K.Message||`Validation failed for ${K.Name}`})),J=la($,w,C);return J.length>0?(J.forEach((K,te)=>{F.setError(`root.crossField${te}`,{type:"validate",message:K.message})}),!1):!0},[h,F.getValues,F.trigger,F.setError,C]),H=c.useCallback(async()=>{var w,z,$;if(!h)throw new Error("Schema not loaded");y(!0),V(null);try{if(!await we())throw new Error("Form validation failed");const K=F.getValues(),te=Da(K,h.computedFields,n,le),ge=await Ta(t,n,te,r);if(!ge.success)throw ge.error||new Error("Submission failed");(w=j.current)==null||w.call(j,ge.data||K),n==="create"&&F.reset()}catch(J){const K=J;throw V(K),(z=W.current)==null||z.call(W,K),($=M.current)==null||$.call(M,K),J}finally{y(!1)}},[h,we,F,t,n,r,le]),Se=c.useCallback(()=>F.handleSubmit(async()=>{await H()}),[F,H]),P=c.useCallback(w=>(h==null?void 0:h.fields[w])||null,[h]),ce=c.useCallback(()=>{if(!h)return{};const w={};return Object.entries(h.fields).forEach(([z,$])=>{w[z]=$}),w},[h]),Oe=c.useCallback(w=>!!(h!=null&&h.fields[w]),[h]),Ae=c.useCallback(w=>(h==null?void 0:h.requiredFields.includes(w))||!1,[h]),rt=c.useCallback(w=>(h==null?void 0:h.computedFields.includes(w))||!1,[h]),Le=c.useCallback(async()=>{await A()},[A]),Ue=c.useCallback(()=>{F.clearErrors(),V(null)},[F]),_e=q||n==="update"&&be,Ke=_e||X,qe=ie||fe,$e=!!(qe||U),d=c.useMemo(()=>(h==null?void 0:h.computedFields)||[],[h]),v=c.useMemo(()=>(h==null?void 0:h.requiredFields)||[],[h]),b=c.useMemo(()=>{if(!h)return{};const w={};return Object.entries(h.fields).forEach(([z,$])=>{const J={};switch($.required&&(J.required=`${$.label} is required`),$.permission.editable||(J.disabled=!0),$.type){case"number":J.valueAsNumber=!0;break;case"date":case"datetime-local":J.valueAsDate=!0;break}const K=$.rules.validation;K.length>0&&(J.validate={expressionValidation:te=>{const ge=F.getValues();for(const he of K){const De=h.rules.validation[he];if(De){const je=Ua(z,te,[De],ge,S);if(!je.isValid)return je.message||De.Message||"Invalid value"}}return!0}}),w[z]=J}),w},[h,F,C]);return{register:c.useCallback((w,z)=>{const $=b[w],J=z==null?void 0:z.onBlur,K=async te=>{J&&await J(te);let ge=!0;o==="onBlur"||o==="onTouched"||o==="all"?ge=await F.trigger(w):ge=!F.getFieldState(w,F.formState).error,ge&&await ee(w)};return F.register(w,{...$,...z,onBlur:K})},[F,b,ee,o]),handleSubmit:Se,watch:F.watch,setValue:F.setValue,reset:F.reset,errors:F.formState.errors,isValid:F.formState.isValid,isDirty:F.formState.isDirty,isSubmitting:F.formState.isSubmitting||X,isSubmitSuccessful:F.formState.isSubmitSuccessful,formState:F.formState,isLoadingInitialData:_e,isLoadingRecord:be,isLoading:Ke,loadError:qe,submitError:U,hasError:$e,schema:oe,schemaConfig:h,computedFields:d,requiredFields:v,getField:P,getFields:ce,hasField:Oe,isFieldRequired:Ae,isFieldComputed:rt,submit:H,refreshSchema:Le,validateForm:we,clearErrors:Ue}}const Gt=50,Yt=5,Wt=5;function Ma({onCardMove:e,onError:t,columns:n,announceMove:r}){const[a,o]=c.useState({isDragging:!1,draggedCard:null,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:null}),i=c.useRef(null),u=c.useRef(null),l=c.useRef(null),f=c.useCallback(()=>{o({isDragging:!1,draggedCard:null,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:null}),u.current&&(clearTimeout(u.current),u.current=null)},[]),g=c.useCallback(y=>n.find(S=>S._id===y)||null,[n]),E=c.useCallback(y=>{for(const S of n){const m=S.cards.find(D=>D._id===y);if(m)return{card:m,column:S}}return null},[n]),_=c.useCallback((y,S)=>{var m,D;try{const N=y.target,j=g(S.columnId);if(!j)throw new Error("Source column not found");(m=y.dataTransfer)==null||m.setData("text/plain",S._id),(D=y.dataTransfer)==null||D.setData("application/json",JSON.stringify(S));const M=N.cloneNode(!0);M.style.cssText=`
|
|
5
5
|
position: fixed;
|
|
6
6
|
top: -1000px;
|
|
7
7
|
left: -1000px;
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
max-width: 300px;
|
|
14
14
|
background: white;
|
|
15
15
|
border-radius: 8px;
|
|
16
|
-
`,document.body.appendChild(M),i.current=M,y.dataTransfer&&y.dataTransfer.setDragImage(M,y.offsetX||50,y.offsetY||20),s({isDragging:!0,draggedCard:k,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:j._id}),t==null||t(k,j.title,"being moved")}catch(N){r==null||r(N instanceof Error?N:new Error("Drag start failed")),f()}},[g,r,f,t]),G=c.useCallback((y,k)=>{if(y.preventDefault(),!a.isDragging||!a.draggedCard)return;const m=k?g(k):null;s(A=>({...A,dragOverColumn:(m==null?void 0:m._id)||null,dragOverPosition:null})),ne(y)},[a.isDragging,a.draggedCard,g]),Y=c.useCallback((y,k)=>{if(y.preventDefault(),!(!a.isDragging||!a.draggedCard))try{const m=a.draggedCard,A=a.dragSourceColumn,N=g(k),j=g(A);if(!N||!j)throw new Error("Target or source column not found");if(A===k){f();return}if(N.limit&&N.cards.length>=N.limit)throw new Error(`Column "${N.title}" has reached its limit of ${N.limit} cards`);e==null||e(m,A,k),t==null||t(m,j.title,N.title)}catch(m){r==null||r(m instanceof Error?m:new Error("Drop failed"))}finally{f()}},[a,g,e,r,f,t]),h=c.useCallback(()=>{i.current&&(document.body.removeChild(i.current),i.current=null),f()},[f]),ne=c.useCallback(y=>{const k=y.target.closest(".kanban-container");if(!k)return;const m=k.getBoundingClientRect(),A=y.clientX-m.left,N=m.width;let j=0;if(A<Gr?j=-Yr:A>N-Gr&&(j=Yr),j!==0){u.current&&clearTimeout(u.current);const M=()=>{k.scrollLeft+=j,u.current=setTimeout(M,16)};u.current=setTimeout(M,100)}else u.current&&(clearTimeout(u.current),u.current=null)},[]),C=c.useCallback((y,k)=>{if(!["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Enter","Space","Escape"].includes(y.key))return;y.preventDefault();const m=E(k._id);if(!m)return;const{column:A}=m,N=n.findIndex(j=>j._id===A._id);try{switch(y.key){case"ArrowLeft":if(N>0){const j=n[N-1];e==null||e(k,A._id,j._id),t==null||t(k,A.title,j.title)}break;case"ArrowRight":if(N<n.length-1){const j=n[N+1];e==null||e(k,A._id,j._id),t==null||t(k,A.title,j.title)}break;case"ArrowUp":t==null||t(k,"current position","position above");break;case"ArrowDown":t==null||t(k,"current position","position below");break;case"Enter":case"Space":t==null||t(k,A.title,"drag mode");break;case"Escape":t==null||t(k,"drag mode","cancelled");break}}catch(j){r==null||r(j instanceof Error?j:new Error("Keyboard navigation failed"))}},[E,n,e,r,t]),O=c.useCallback((y,k)=>{const m=y.touches[0];l.current={x:m.clientX,y:m.clientY,card:k}},[]),U=c.useCallback(y=>{if(!l.current)return;const k=y.touches[0],m=Math.abs(k.clientX-l.current.x),A=Math.abs(k.clientY-l.current.y);if(m>Qr||A>Qr){const N=l.current.card,j=g(N.columnId);if(!j)return;s({isDragging:!0,draggedCard:N,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:j._id}),t==null||t(N,j.title,"being moved")}},[g,t]),V=c.useCallback(y=>{if(!a.isDragging||!a.draggedCard||!l.current){l.current=null;return}try{const k=y.changedTouches[0],m=document.elementFromPoint(k.clientX,k.clientY),A=m==null?void 0:m.closest("[data-column-id]");if(A){const N=A.dataset.columnId,j=a.draggedCard,M=a.dragSourceColumn,Q=g(N),Z=g(M);if(Q&&Z&&M!==N){if(Q.limit&&Q.cards.length>=Q.limit)throw new Error(`Column "${Q.title}" has reached its limit of ${Q.limit} cards`);e==null||e(j,M,N),t==null||t(j,Z.title,Q.title)}}}catch(k){r==null||r(k instanceof Error?k:new Error("Touch drop failed"))}finally{l.current=null,f()}},[a,g,e,r,f,t]),X=c.useCallback((y,k,m)=>{const A=`Moved "${y.title}" from ${k} to ${m}`,N=document.createElement("div");N.setAttribute("aria-live","polite"),N.setAttribute("aria-atomic","true"),N.className="sr-only",N.textContent=A,document.body.appendChild(N),setTimeout(()=>{document.body.removeChild(N)},1e3),console.log(`Kanban: ${A}`)},[]);return c.useEffect(()=>()=>{u.current&&clearTimeout(u.current),i.current&&document.body.contains(i.current)&&document.body.removeChild(i.current)},[]),{isDragging:a.isDragging,draggedCard:a.draggedCard,dragOverColumn:a.dragOverColumn,dragOverPosition:a.dragOverPosition,dragSourceColumn:a.dragSourceColumn,handleDragStart:_,handleDragOver:G,handleDrop:Y,handleDragEnd:h,handleKeyDown:C,handleTouchStart:O,handleTouchMove:U,handleTouchEnd:V,announceMove:t||X,reset:f}}function Ua(e){var ze,qe,$e;const{columns:r,cardSource:n,source:t,enableDragDrop:a=!0,initialState:s,onCardMove:i,onCardCreate:u,onCardUpdate:l,onCardDelete:f,onError:g}=e,E=t||n;if(!E)throw new Error('useKanban requires either "source" or "cardSource" parameter');const[_,G]=c.useState({query:(s==null?void 0:s.search)||""}),[Y]=c.useState({field:((ze=s==null?void 0:s.sorting)==null?void 0:ze.field)||null,direction:((qe=s==null?void 0:s.sorting)==null?void 0:qe.direction)||null}),[h,ne]=c.useState(()=>{const d={};return r.forEach(v=>{d[v.id]=10}),d}),C=c.useRef(g),O=c.useRef(i),U=c.useRef(u),V=c.useRef(l),X=c.useRef(f);c.useEffect(()=>{C.current=g,O.current=i,U.current=u,V.current=l,X.current=f},[g,i,u,l,f]);const y=Ce.useQueryClient(),k=Dr({initialConditions:s==null?void 0:s.filters,initialOperator:(s==null?void 0:s.filterOperator)||"And"}),m=c.useCallback(d=>{const v={LHSField:"columnId",Operator:"EQ",RHSValue:d,RHSType:"Constant"},b=k.payload;let x;b?b.Operator==="And"?x={...b,Condition:[...b.Condition||[],v]}:x={Operator:"And",Condition:[b,v]}:x={Operator:"And",Condition:[v]};const w={Page:1,PageSize:h[d]||10,Filter:x};return Y.field&&Y.direction?w.Sort=[{[String(Y.field)]:Y.direction==="asc"?"ASC":"DESC"},{position:"ASC"}]:w.Sort=[{columnId:"ASC"},{position:"ASC"}],_.query&&(w.Search=_.query),w},[k.payload,h,Y,_.query]),A=Ce.useQueries({queries:r.map(d=>{const v=m(d.id);return{queryKey:["kanban-cards",E,d.id,v],queryFn:async()=>{try{return await Ee(E).list(v)}catch(b){throw b}},placeholderData:Ce.keepPreviousData,staleTime:30*1e3}})}),N=A.some(d=>d.isLoading),j=A.some(d=>d.isFetching),M=(($e=A.find(d=>d.error))==null?void 0:$e.error)||null,Q=async()=>{await Promise.all(A.map(d=>d.refetch()))},Z=c.useMemo(()=>{const d={};return _.query&&(d.Search=_.query),k.payload&&(d.Filter=k.payload),d},[_.query,k.payload]),{data:se,isLoading:q,error:ie}=Ce.useQuery({queryKey:["kanban-count",E,Z],queryFn:async()=>{try{return await Ee(E).count(Z)}catch(d){throw C.current&&C.current(d),d}},staleTime:30*1e3,gcTime:60*1e3}),D=Ce.useMutation({mutationFn:async d=>{const v=d.position??999999;return(await Ee(E).create({...d,position:v}))._id},onMutate:async d=>{const v=d.columnId,b=m(v),x=["kanban-cards",E,v,b];await y.cancelQueries({queryKey:x});const w=y.getQueryData(x);if(w){const K=w.Data,$=d.position??K.length,J=`temp-${Date.now()}`,z={...d,_id:J,position:$,_created_at:new Date,_modified_at:new Date};y.setQueryData(x,{...w,Data:[...w.Data,z]})}return{previousCards:w,queryKey:x}},onSuccess:async(d,v,b)=>{var x;b!=null&&b.queryKey&&await y.invalidateQueries({queryKey:b.queryKey}),(x=U.current)==null||x.call(U,{_id:d,...v})},onError:(d,v,b)=>{var x;b!=null&&b.previousCards&&(b!=null&&b.queryKey)&&y.setQueryData(b.queryKey,b.previousCards),(x=C.current)==null||x.call(C,d)},onSettled:(d,v,b)=>{const x=b.columnId,w=m(x);y.invalidateQueries({queryKey:["kanban-cards",E,x,w]})}}),le=Ce.useMutation({mutationFn:async({id:d,updates:v})=>(await Ee(E).update(d,v),{id:d,updates:v}),onMutate:async()=>(await y.cancelQueries({queryKey:["kanban-cards",E]}),{}),onSuccess:async d=>{var v;(v=V.current)==null||v.call(V,{_id:d.id,...d.updates})},onError:(d,v,b)=>{var x;(x=C.current)==null||x.call(C,d)},onSettled:()=>{y.invalidateQueries({queryKey:["kanban-cards",E]})}}),be=Ce.useMutation({mutationFn:async d=>(await Ee(E).delete(d),d),onMutate:async()=>(await y.cancelQueries({queryKey:["kanban-cards",E]}),{}),onSuccess:async d=>{var v;(v=X.current)==null||v.call(X,d)},onError:(d,v,b)=>{var x;(x=C.current)==null||x.call(C,d)},onSettled:()=>{y.invalidateQueries({queryKey:["kanban-cards",E]})}}),fe=Ce.useMutation({mutationFn:async({cardId:d,fromColumnId:v,toColumnId:b,position:x})=>{const w={columnId:b,...x!==void 0&&{position:x}};return await Ee(E).update(d,w),{cardId:d,fromColumnId:v,toColumnId:b,position:x}},onMutate:async({cardId:d,fromColumnId:v,toColumnId:b,position:x})=>{const w=m(v),K=m(b),$=["kanban-cards",E,v,w],J=["kanban-cards",E,b,K];await y.cancelQueries({queryKey:$}),await y.cancelQueries({queryKey:J});const z=y.getQueryData($),re=y.getQueryData(J);if(z&&re){const ge=z.Data.find(he=>he._id===d);if(ge){const he={...z,Data:z.Data.filter(Ne=>Ne._id!==d)},Ae={...ge,columnId:b,position:x??re.Data.length,_modified_at:new Date},je={...re,Data:[...re.Data,Ae].sort((Ne,me)=>Ne.position-me.position)};y.setQueryData($,he),y.setQueryData(J,je)}}return{previousFromData:z,previousToData:re,fromQueryKey:$,toQueryKey:J,fromColumnId:v,toColumnId:b}},onSuccess:async d=>{var v;(v=O.current)==null||v.call(O,{_id:d.cardId},d.fromColumnId,d.toColumnId)},onError:(d,v,b)=>{var x;b!=null&&b.previousFromData&&(b!=null&&b.fromQueryKey)&&y.setQueryData(b.fromQueryKey,b.previousFromData),b!=null&&b.previousToData&&(b!=null&&b.toQueryKey)&&y.setQueryData(b.toQueryKey,b.previousToData),(x=C.current)==null||x.call(C,d)},onSettled:(d,v,b)=>{const x=m(b.fromColumnId),w=m(b.toColumnId);y.invalidateQueries({queryKey:["kanban-cards",E,b.fromColumnId,x]}),y.invalidateQueries({queryKey:["kanban-cards",E,b.toColumnId,w]})}}),ye=Ce.useMutation({mutationFn:async({cardIds:d,columnId:v})=>{const b=d.map((x,w)=>({id:x,position:w,columnId:v}));await Promise.all(b.map(x=>Ee(E).update(x.id,{position:x.position,columnId:x.columnId})))},onMutate:async({columnId:d})=>{const v=m(d),b=["kanban-cards",E,d,v];return await y.cancelQueries({queryKey:b}),{}},onSuccess:()=>{},onError:(d,v,b)=>{var x;(x=C.current)==null||x.call(C,d)},onSettled:(d,v,b)=>{const x=m(b.columnId);y.invalidateQueries({queryKey:["kanban-cards",E,b.columnId,x]})}}),F=c.useCallback(async(d,v,b)=>{try{await fe.mutateAsync({cardId:d._id,fromColumnId:v,toColumnId:b,position:void 0})}catch{}},[fe]),ae=c.useMemo(()=>r.sort((d,v)=>d.position-v.position).map((d,v)=>{var w;const x=((w=A[v].data)==null?void 0:w.Data)||[];return{_id:d.id,title:d.title,position:d.position,color:d.color,limit:d.limit,cards:x.sort((K,$)=>K.position-$.position),_created_at:new Date,_modified_at:new Date}}),[r,A]),ee=La({onCardMove:F,onError:C.current,columns:ae,announceMove:(d,v,b)=>{console.log(`Kanban: Moved "${d.title}" from ${v} to ${b}`)}}),we=c.useCallback(d=>{var v,b;return{draggable:!0,role:"option","aria-selected":a&&((v=ee.draggedCard)==null?void 0:v._id)===d._id,"aria-grabbed":a&&((b=ee.draggedCard)==null?void 0:b._id)===d._id,onDragStart:x=>{if(!a)return;x.dataTransfer.setData("text/plain",JSON.stringify(d));const w=x.nativeEvent||x;ee.handleDragStart(w,d)},onDragEnd:ee.handleDragEnd,onKeyDown:x=>{if(!a)return;const w=x.nativeEvent||x;ee.handleKeyDown(w,d)}}},[a,ee]),H=c.useCallback(d=>({"data-column-id":d,role:"listbox",onDragOver:v=>{if(!a)return;const b=v.nativeEvent||v;ee.handleDragOver(b,d)},onDrop:v=>{if(!a)return;const b=v.nativeEvent||v;ee.handleDrop(b,d)}}),[a,ee]),ke=c.useCallback(d=>{G({query:d})},[]),P=c.useCallback(()=>{G({query:""})},[]),ce=(se==null?void 0:se.Count)||0,Oe=N||q,De=j,rr=D.isPending||le.isPending||be.isPending||fe.isPending||ye.isPending,Le=M||ie,Ue=c.useCallback(async()=>{await Q()},[Q]),_e=c.useCallback(async()=>{await y.invalidateQueries({predicate:d=>d.queryKey[0]==="kanban-cards"||d.queryKey[0]==="kanban-count"})},[y]);return c.useEffect(()=>{Le&&C.current&&C.current(Le)},[Le]),{columns:ae,totalCards:ce,isLoading:Oe,isFetching:De,isUpdating:rr,error:Le,createCard:D.mutateAsync,updateCard:c.useCallback(async(d,v)=>{await le.mutateAsync({id:d,updates:v})},[le]),deleteCard:c.useCallback(async d=>{await be.mutateAsync(d)},[be]),moveCard:c.useCallback(async(d,v,b,x)=>{if(!x){for(const w of ae)if(w.cards.find($=>$._id===d)){x=w._id;break}if(!x)throw new Error(`Card ${d} not found in any column`)}await fe.mutateAsync({cardId:d,fromColumnId:x,toColumnId:v,position:b})},[fe,ae]),reorderCards:c.useCallback(async(d,v)=>{await ye.mutateAsync({cardIds:d,columnId:v})},[ye]),searchQuery:_.query,setSearchQuery:ke,clearSearch:P,filter:k,isDragging:a?ee.isDragging:!1,draggedCard:a?ee.draggedCard:null,dragOverColumn:a?ee.dragOverColumn:null,handleDragStart:a?ee.handleDragStart:()=>{},handleDragOver:a?ee.handleDragOver:()=>{},handleDrop:a?ee.handleDrop:()=>{},handleDragEnd:a?ee.handleDragEnd:()=>{},handleKeyDown:a?ee.handleKeyDown:()=>{},getCardProps:a?we:d=>({}),getColumnProps:a?H:d=>({}),loadMore:c.useCallback(d=>{ne(v=>({...v,[d]:(v[d]||10)+10}))},[]),refetch:Ue,refresh:_e}}c.createContext(null);var Tr={exports:{}},nr={};/**
|
|
16
|
+
`,document.body.appendChild(M),i.current=M,y.dataTransfer&&y.dataTransfer.setDragImage(M,y.offsetX||50,y.offsetY||20),o({isDragging:!0,draggedCard:S,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:j._id}),r==null||r(S,j.title,"being moved")}catch(N){t==null||t(N instanceof Error?N:new Error("Drag start failed")),f()}},[g,t,f,r]),G=c.useCallback((y,S)=>{if(y.preventDefault(),!a.isDragging||!a.draggedCard)return;const m=S?g(S):null;o(D=>({...D,dragOverColumn:(m==null?void 0:m._id)||null,dragOverPosition:null})),ne(y)},[a.isDragging,a.draggedCard,g]),Y=c.useCallback((y,S)=>{if(y.preventDefault(),!(!a.isDragging||!a.draggedCard))try{const m=a.draggedCard,D=a.dragSourceColumn,N=g(S),j=g(D);if(!N||!j)throw new Error("Target or source column not found");if(D===S){f();return}if(N.limit&&N.cards.length>=N.limit)throw new Error(`Column "${N.title}" has reached its limit of ${N.limit} cards`);e==null||e(m,D,S),r==null||r(m,j.title,N.title)}catch(m){t==null||t(m instanceof Error?m:new Error("Drop failed"))}finally{f()}},[a,g,e,t,f,r]),h=c.useCallback(()=>{i.current&&(document.body.removeChild(i.current),i.current=null),f()},[f]),ne=c.useCallback(y=>{const S=y.target.closest(".kanban-container");if(!S)return;const m=S.getBoundingClientRect(),D=y.clientX-m.left,N=m.width;let j=0;if(D<Gt?j=-Yt:D>N-Gt&&(j=Yt),j!==0){u.current&&clearTimeout(u.current);const M=()=>{S.scrollLeft+=j,u.current=setTimeout(M,16)};u.current=setTimeout(M,100)}else u.current&&(clearTimeout(u.current),u.current=null)},[]),C=c.useCallback((y,S)=>{if(!["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Enter","Space","Escape"].includes(y.key))return;y.preventDefault();const m=E(S._id);if(!m)return;const{column:D}=m,N=n.findIndex(j=>j._id===D._id);try{switch(y.key){case"ArrowLeft":if(N>0){const j=n[N-1];e==null||e(S,D._id,j._id),r==null||r(S,D.title,j.title)}break;case"ArrowRight":if(N<n.length-1){const j=n[N+1];e==null||e(S,D._id,j._id),r==null||r(S,D.title,j.title)}break;case"ArrowUp":r==null||r(S,"current position","position above");break;case"ArrowDown":r==null||r(S,"current position","position below");break;case"Enter":case"Space":r==null||r(S,D.title,"drag mode");break;case"Escape":r==null||r(S,"drag mode","cancelled");break}}catch(j){t==null||t(j instanceof Error?j:new Error("Keyboard navigation failed"))}},[E,n,e,t,r]),O=c.useCallback((y,S)=>{const m=y.touches[0];l.current={x:m.clientX,y:m.clientY,card:S}},[]),U=c.useCallback(y=>{if(!l.current)return;const S=y.touches[0],m=Math.abs(S.clientX-l.current.x),D=Math.abs(S.clientY-l.current.y);if(m>Wt||D>Wt){const N=l.current.card,j=g(N.columnId);if(!j)return;o({isDragging:!0,draggedCard:N,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:j._id}),r==null||r(N,j.title,"being moved")}},[g,r]),V=c.useCallback(y=>{if(!a.isDragging||!a.draggedCard||!l.current){l.current=null;return}try{const S=y.changedTouches[0],m=document.elementFromPoint(S.clientX,S.clientY),D=m==null?void 0:m.closest("[data-column-id]");if(D){const N=D.dataset.columnId,j=a.draggedCard,M=a.dragSourceColumn,W=g(N),Z=g(M);if(W&&Z&&M!==N){if(W.limit&&W.cards.length>=W.limit)throw new Error(`Column "${W.title}" has reached its limit of ${W.limit} cards`);e==null||e(j,M,N),r==null||r(j,Z.title,W.title)}}}catch(S){t==null||t(S instanceof Error?S:new Error("Touch drop failed"))}finally{l.current=null,f()}},[a,g,e,t,f,r]),X=c.useCallback((y,S,m)=>{const D=`Moved "${y.title}" from ${S} to ${m}`,N=document.createElement("div");N.setAttribute("aria-live","polite"),N.setAttribute("aria-atomic","true"),N.className="sr-only",N.textContent=D,document.body.appendChild(N),setTimeout(()=>{document.body.removeChild(N)},1e3),console.log(`Kanban: ${D}`)},[]);return c.useEffect(()=>()=>{u.current&&clearTimeout(u.current),i.current&&document.body.contains(i.current)&&document.body.removeChild(i.current)},[]),{isDragging:a.isDragging,draggedCard:a.draggedCard,dragOverColumn:a.dragOverColumn,dragOverPosition:a.dragOverPosition,dragSourceColumn:a.dragSourceColumn,handleDragStart:_,handleDragOver:G,handleDrop:Y,handleDragEnd:h,handleKeyDown:C,handleTouchStart:O,handleTouchMove:U,handleTouchEnd:V,announceMove:r||X,reset:f}}function za(e){var Ke,qe,$e;const{columns:t,cardSource:n,source:r,enableDragDrop:a=!0,initialState:o,onCardMove:i,onCardCreate:u,onCardUpdate:l,onCardDelete:f,onError:g}=e,E=r||n;if(!E)throw new Error('useKanban requires either "source" or "cardSource" parameter');const[_,G]=c.useState({query:(o==null?void 0:o.search)||""}),[Y]=c.useState({field:((Ke=o==null?void 0:o.sorting)==null?void 0:Ke.field)||null,direction:((qe=o==null?void 0:o.sorting)==null?void 0:qe.direction)||null}),[h,ne]=c.useState(()=>{const d={};return t.forEach(v=>{d[v.id]=10}),d}),C=c.useRef(g),O=c.useRef(i),U=c.useRef(u),V=c.useRef(l),X=c.useRef(f);c.useEffect(()=>{C.current=g,O.current=i,U.current=u,V.current=l,X.current=f},[g,i,u,l,f]);const y=Ce.useQueryClient(),S=At({initialConditions:o==null?void 0:o.filters,initialOperator:(o==null?void 0:o.filterOperator)||"And"}),m=c.useCallback(d=>{const v={LHSField:"columnId",Operator:"EQ",RHSValue:d,RHSType:"Constant"},b=S.payload;let x;b?b.Operator==="And"?x={...b,Condition:[...b.Condition||[],v]}:x={Operator:"And",Condition:[b,v]}:x={Operator:"And",Condition:[v]};const w={Page:1,PageSize:h[d]||10,Filter:x};return Y.field&&Y.direction?w.Sort=[{[String(Y.field)]:Y.direction==="asc"?"ASC":"DESC"},{position:"ASC"}]:w.Sort=[{columnId:"ASC"},{position:"ASC"}],_.query&&(w.Search=_.query),w},[S.payload,h,Y,_.query]),D=Ce.useQueries({queries:t.map(d=>{const v=m(d.id);return{queryKey:["kanban-cards",E,d.id,v],queryFn:async()=>{try{return await Ee(E).list(v)}catch(b){throw b}},placeholderData:Ce.keepPreviousData,staleTime:30*1e3}})}),N=D.some(d=>d.isLoading),j=D.some(d=>d.isFetching),M=(($e=D.find(d=>d.error))==null?void 0:$e.error)||null,W=async()=>{await Promise.all(D.map(d=>d.refetch()))},Z=c.useMemo(()=>{const d={};return _.query&&(d.Search=_.query),S.payload&&(d.Filter=S.payload),d},[_.query,S.payload]),{data:oe,isLoading:q,error:ie}=Ce.useQuery({queryKey:["kanban-count",E,Z],queryFn:async()=>{try{return await Ee(E).count(Z)}catch(d){throw C.current&&C.current(d),d}},staleTime:30*1e3,gcTime:60*1e3}),A=Ce.useMutation({mutationFn:async d=>{const v=d.position??999999;return(await Ee(E).create({...d,position:v}))._id},onMutate:async d=>{const v=d.columnId,b=m(v),x=["kanban-cards",E,v,b];await y.cancelQueries({queryKey:x});const w=y.getQueryData(x);if(w){const z=w.Data,$=d.position??z.length,J=`temp-${Date.now()}`,K={...d,_id:J,position:$,_created_at:new Date,_modified_at:new Date};y.setQueryData(x,{...w,Data:[...w.Data,K]})}return{previousCards:w,queryKey:x}},onSuccess:async(d,v,b)=>{var x;b!=null&&b.queryKey&&await y.invalidateQueries({queryKey:b.queryKey}),(x=U.current)==null||x.call(U,{_id:d,...v})},onError:(d,v,b)=>{var x;b!=null&&b.previousCards&&(b!=null&&b.queryKey)&&y.setQueryData(b.queryKey,b.previousCards),(x=C.current)==null||x.call(C,d)},onSettled:(d,v,b)=>{const x=b.columnId,w=m(x);y.invalidateQueries({queryKey:["kanban-cards",E,x,w]})}}),le=Ce.useMutation({mutationFn:async({id:d,updates:v})=>(await Ee(E).update(d,v),{id:d,updates:v}),onMutate:async()=>(await y.cancelQueries({queryKey:["kanban-cards",E]}),{}),onSuccess:async d=>{var v;(v=V.current)==null||v.call(V,{_id:d.id,...d.updates})},onError:(d,v,b)=>{var x;(x=C.current)==null||x.call(C,d)},onSettled:()=>{y.invalidateQueries({queryKey:["kanban-cards",E]})}}),be=Ce.useMutation({mutationFn:async d=>(await Ee(E).delete(d),d),onMutate:async()=>(await y.cancelQueries({queryKey:["kanban-cards",E]}),{}),onSuccess:async d=>{var v;(v=X.current)==null||v.call(X,d)},onError:(d,v,b)=>{var x;(x=C.current)==null||x.call(C,d)},onSettled:()=>{y.invalidateQueries({queryKey:["kanban-cards",E]})}}),fe=Ce.useMutation({mutationFn:async({cardId:d,fromColumnId:v,toColumnId:b,position:x})=>{const w={columnId:b,...x!==void 0&&{position:x}};return await Ee(E).update(d,w),{cardId:d,fromColumnId:v,toColumnId:b,position:x}},onMutate:async({cardId:d,fromColumnId:v,toColumnId:b,position:x})=>{const w=m(v),z=m(b),$=["kanban-cards",E,v,w],J=["kanban-cards",E,b,z];await y.cancelQueries({queryKey:$}),await y.cancelQueries({queryKey:J});const K=y.getQueryData($),te=y.getQueryData(J);if(K&&te){const ge=K.Data.find(he=>he._id===d);if(ge){const he={...K,Data:K.Data.filter(Ne=>Ne._id!==d)},De={...ge,columnId:b,position:x??te.Data.length,_modified_at:new Date},je={...te,Data:[...te.Data,De].sort((Ne,me)=>Ne.position-me.position)};y.setQueryData($,he),y.setQueryData(J,je)}}return{previousFromData:K,previousToData:te,fromQueryKey:$,toQueryKey:J,fromColumnId:v,toColumnId:b}},onSuccess:async d=>{var v;(v=O.current)==null||v.call(O,{_id:d.cardId},d.fromColumnId,d.toColumnId)},onError:(d,v,b)=>{var x;b!=null&&b.previousFromData&&(b!=null&&b.fromQueryKey)&&y.setQueryData(b.fromQueryKey,b.previousFromData),b!=null&&b.previousToData&&(b!=null&&b.toQueryKey)&&y.setQueryData(b.toQueryKey,b.previousToData),(x=C.current)==null||x.call(C,d)},onSettled:(d,v,b)=>{const x=m(b.fromColumnId),w=m(b.toColumnId);y.invalidateQueries({queryKey:["kanban-cards",E,b.fromColumnId,x]}),y.invalidateQueries({queryKey:["kanban-cards",E,b.toColumnId,w]})}}),ye=Ce.useMutation({mutationFn:async({cardIds:d,columnId:v})=>{const b=d.map((x,w)=>({id:x,position:w,columnId:v}));await Promise.all(b.map(x=>Ee(E).update(x.id,{position:x.position,columnId:x.columnId})))},onMutate:async({columnId:d})=>{const v=m(d),b=["kanban-cards",E,d,v];return await y.cancelQueries({queryKey:b}),{}},onSuccess:()=>{},onError:(d,v,b)=>{var x;(x=C.current)==null||x.call(C,d)},onSettled:(d,v,b)=>{const x=m(b.columnId);y.invalidateQueries({queryKey:["kanban-cards",E,b.columnId,x]})}}),F=c.useCallback(async(d,v,b)=>{try{await fe.mutateAsync({cardId:d._id,fromColumnId:v,toColumnId:b,position:void 0})}catch{}},[fe]),ae=c.useMemo(()=>t.sort((d,v)=>d.position-v.position).map((d,v)=>{var w;const x=((w=D[v].data)==null?void 0:w.Data)||[];return{_id:d.id,title:d.title,position:d.position,color:d.color,limit:d.limit,cards:x.sort((z,$)=>z.position-$.position),_created_at:new Date,_modified_at:new Date}}),[t,D]),ee=Ma({onCardMove:F,onError:C.current,columns:ae,announceMove:(d,v,b)=>{console.log(`Kanban: Moved "${d.title}" from ${v} to ${b}`)}}),we=c.useCallback(d=>{var v,b;return{draggable:!0,role:"option","aria-selected":a&&((v=ee.draggedCard)==null?void 0:v._id)===d._id,"aria-grabbed":a&&((b=ee.draggedCard)==null?void 0:b._id)===d._id,onDragStart:x=>{if(!a)return;x.dataTransfer.setData("text/plain",JSON.stringify(d));const w=x.nativeEvent||x;ee.handleDragStart(w,d)},onDragEnd:ee.handleDragEnd,onKeyDown:x=>{if(!a)return;const w=x.nativeEvent||x;ee.handleKeyDown(w,d)}}},[a,ee]),H=c.useCallback(d=>({"data-column-id":d,role:"listbox",onDragOver:v=>{if(!a)return;const b=v.nativeEvent||v;ee.handleDragOver(b,d)},onDrop:v=>{if(!a)return;const b=v.nativeEvent||v;ee.handleDrop(b,d)}}),[a,ee]),Se=c.useCallback(d=>{G({query:d})},[]),P=c.useCallback(()=>{G({query:""})},[]),ce=(oe==null?void 0:oe.Count)||0,Oe=N||q,Ae=j,rt=A.isPending||le.isPending||be.isPending||fe.isPending||ye.isPending,Le=M||ie,Ue=c.useCallback(async()=>{await W()},[W]),_e=c.useCallback(async()=>{await y.invalidateQueries({predicate:d=>d.queryKey[0]==="kanban-cards"||d.queryKey[0]==="kanban-count"})},[y]);return c.useEffect(()=>{Le&&C.current&&C.current(Le)},[Le]),{columns:ae,totalCards:ce,isLoading:Oe,isFetching:Ae,isUpdating:rt,error:Le,createCard:A.mutateAsync,updateCard:c.useCallback(async(d,v)=>{await le.mutateAsync({id:d,updates:v})},[le]),deleteCard:c.useCallback(async d=>{await be.mutateAsync(d)},[be]),moveCard:c.useCallback(async(d,v,b,x)=>{if(!x){for(const w of ae)if(w.cards.find($=>$._id===d)){x=w._id;break}if(!x)throw new Error(`Card ${d} not found in any column`)}await fe.mutateAsync({cardId:d,fromColumnId:x,toColumnId:v,position:b})},[fe,ae]),reorderCards:c.useCallback(async(d,v)=>{await ye.mutateAsync({cardIds:d,columnId:v})},[ye]),searchQuery:_.query,setSearchQuery:Se,clearSearch:P,filter:S,isDragging:a?ee.isDragging:!1,draggedCard:a?ee.draggedCard:null,dragOverColumn:a?ee.dragOverColumn:null,handleDragStart:a?ee.handleDragStart:()=>{},handleDragOver:a?ee.handleDragOver:()=>{},handleDrop:a?ee.handleDrop:()=>{},handleDragEnd:a?ee.handleDragEnd:()=>{},handleKeyDown:a?ee.handleKeyDown:()=>{},getCardProps:a?we:d=>({}),getColumnProps:a?H:d=>({}),loadMore:c.useCallback(d=>{ne(v=>({...v,[d]:(v[d]||10)+10}))},[]),refetch:Ue,refresh:_e}}c.createContext(null);var Tt={exports:{}},at={};/**
|
|
17
17
|
* @license React
|
|
18
18
|
* react-jsx-runtime.production.min.js
|
|
19
19
|
*
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
*
|
|
22
22
|
* This source code is licensed under the MIT license found in the
|
|
23
23
|
* LICENSE file in the root directory of this source tree.
|
|
24
|
-
*/var
|
|
24
|
+
*/var Qt;function Ka(){if(Qt)return at;Qt=1;var e=c,t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,a=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function i(u,l,f){var g,E={},_=null,G=null;f!==void 0&&(_=""+f),l.key!==void 0&&(_=""+l.key),l.ref!==void 0&&(G=l.ref);for(g in l)r.call(l,g)&&!o.hasOwnProperty(g)&&(E[g]=l[g]);if(u&&u.defaultProps)for(g in l=u.defaultProps,l)E[g]===void 0&&(E[g]=l[g]);return{$$typeof:t,type:u,key:_,ref:G,props:E,_owner:a.current}}return at.Fragment=n,at.jsx=i,at.jsxs=i,at}var st={};/**
|
|
25
25
|
* @license React
|
|
26
26
|
* react-jsx-runtime.development.js
|
|
27
27
|
*
|
|
@@ -29,17 +29,17 @@
|
|
|
29
29
|
*
|
|
30
30
|
* This source code is licensed under the MIT license found in the
|
|
31
31
|
* LICENSE file in the root directory of this source tree.
|
|
32
|
-
*/var
|
|
33
|
-
`+H+
|
|
32
|
+
*/var Jt;function Ba(){return Jt||(Jt=1,process.env.NODE_ENV!=="production"&&function(){var e=c,t=Symbol.for("react.element"),n=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),i=Symbol.for("react.provider"),u=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),f=Symbol.for("react.suspense"),g=Symbol.for("react.suspense_list"),E=Symbol.for("react.memo"),_=Symbol.for("react.lazy"),G=Symbol.for("react.offscreen"),Y=Symbol.iterator,h="@@iterator";function ne(s){if(s===null||typeof s!="object")return null;var p=Y&&s[Y]||s[h];return typeof p=="function"?p:null}var C=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function O(s){{for(var p=arguments.length,k=new Array(p>1?p-1:0),I=1;I<p;I++)k[I-1]=arguments[I];U("error",s,k)}}function U(s,p,k){{var I=C.ReactDebugCurrentFrame,re=I.getStackAddendum();re!==""&&(p+="%s",k=k.concat([re]));var se=k.map(function(Q){return String(Q)});se.unshift("Warning: "+p),Function.prototype.apply.call(console[s],console,se)}}var V=!1,X=!1,y=!1,S=!1,m=!1,D;D=Symbol.for("react.module.reference");function N(s){return!!(typeof s=="string"||typeof s=="function"||s===r||s===o||m||s===a||s===f||s===g||S||s===G||V||X||y||typeof s=="object"&&s!==null&&(s.$$typeof===_||s.$$typeof===E||s.$$typeof===i||s.$$typeof===u||s.$$typeof===l||s.$$typeof===D||s.getModuleId!==void 0))}function j(s,p,k){var I=s.displayName;if(I)return I;var re=p.displayName||p.name||"";return re!==""?k+"("+re+")":k}function M(s){return s.displayName||"Context"}function W(s){if(s==null)return null;if(typeof s.tag=="number"&&O("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof s=="function")return s.displayName||s.name||null;if(typeof s=="string")return s;switch(s){case r:return"Fragment";case n:return"Portal";case o:return"Profiler";case a:return"StrictMode";case f:return"Suspense";case g:return"SuspenseList"}if(typeof s=="object")switch(s.$$typeof){case u:var p=s;return M(p)+".Consumer";case i:var k=s;return M(k._context)+".Provider";case l:return j(s,s.render,"ForwardRef");case E:var I=s.displayName||null;return I!==null?I:W(s.type)||"Memo";case _:{var re=s,se=re._payload,Q=re._init;try{return W(Q(se))}catch{return null}}}return null}var Z=Object.assign,oe=0,q,ie,A,le,be,fe,ye;function F(){}F.__reactDisabledLog=!0;function ae(){{if(oe===0){q=console.log,ie=console.info,A=console.warn,le=console.error,be=console.group,fe=console.groupCollapsed,ye=console.groupEnd;var s={configurable:!0,enumerable:!0,value:F,writable:!0};Object.defineProperties(console,{info:s,log:s,warn:s,error:s,group:s,groupCollapsed:s,groupEnd:s})}oe++}}function ee(){{if(oe--,oe===0){var s={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:Z({},s,{value:q}),info:Z({},s,{value:ie}),warn:Z({},s,{value:A}),error:Z({},s,{value:le}),group:Z({},s,{value:be}),groupCollapsed:Z({},s,{value:fe}),groupEnd:Z({},s,{value:ye})})}oe<0&&O("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var we=C.ReactCurrentDispatcher,H;function Se(s,p,k){{if(H===void 0)try{throw Error()}catch(re){var I=re.stack.trim().match(/\n( *(at )?)/);H=I&&I[1]||""}return`
|
|
33
|
+
`+H+s}}var P=!1,ce;{var Oe=typeof WeakMap=="function"?WeakMap:Map;ce=new Oe}function Ae(s,p){if(!s||P)return"";{var k=ce.get(s);if(k!==void 0)return k}var I;P=!0;var re=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var se;se=we.current,we.current=null,ae();try{if(p){var Q=function(){throw Error()};if(Object.defineProperty(Q.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Q,[])}catch(ke){I=ke}Reflect.construct(s,[],Q)}else{try{Q.call()}catch(ke){I=ke}s.call(Q.prototype)}}else{try{throw Error()}catch(ke){I=ke}s()}}catch(ke){if(ke&&I&&typeof ke.stack=="string"){for(var B=ke.stack.split(`
|
|
34
34
|
`),ve=I.stack.split(`
|
|
35
35
|
`),ue=B.length-1,de=ve.length-1;ue>=1&&de>=0&&B[ue]!==ve[de];)de--;for(;ue>=1&&de>=0;ue--,de--)if(B[ue]!==ve[de]){if(ue!==1||de!==1)do if(ue--,de--,de<0||B[ue]!==ve[de]){var Te=`
|
|
36
|
-
`+B[ue].replace(" at new "," at ");return
|
|
36
|
+
`+B[ue].replace(" at new "," at ");return s.displayName&&Te.includes("<anonymous>")&&(Te=Te.replace("<anonymous>",s.displayName)),typeof s=="function"&&ce.set(s,Te),Te}while(ue>=1&&de>=0);break}}}finally{P=!1,we.current=se,ee(),Error.prepareStackTrace=re}var He=s?s.displayName||s.name:"",Be=He?Se(He):"";return typeof s=="function"&&ce.set(s,Be),Be}function rt(s,p,k){return Ae(s,!1)}function Le(s){var p=s.prototype;return!!(p&&p.isReactComponent)}function Ue(s,p,k){if(s==null)return"";if(typeof s=="function")return Ae(s,Le(s));if(typeof s=="string")return Se(s);switch(s){case f:return Se("Suspense");case g:return Se("SuspenseList")}if(typeof s=="object")switch(s.$$typeof){case l:return rt(s.render);case E:return Ue(s.type,p,k);case _:{var I=s,re=I._payload,se=I._init;try{return Ue(se(re),p,k)}catch{}}}return""}var _e=Object.prototype.hasOwnProperty,Ke={},qe=C.ReactDebugCurrentFrame;function $e(s){if(s){var p=s._owner,k=Ue(s.type,s._source,p?p.type:null);qe.setExtraStackFrame(k)}else qe.setExtraStackFrame(null)}function d(s,p,k,I,re){{var se=Function.call.bind(_e);for(var Q in s)if(se(s,Q)){var B=void 0;try{if(typeof s[Q]!="function"){var ve=Error((I||"React class")+": "+k+" type `"+Q+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof s[Q]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw ve.name="Invariant Violation",ve}B=s[Q](p,Q,I,k,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(ue){B=ue}B&&!(B instanceof Error)&&($e(re),O("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",I||"React class",k,Q,typeof B),$e(null)),B instanceof Error&&!(B.message in Ke)&&(Ke[B.message]=!0,$e(re),O("Failed %s type: %s",k,B.message),$e(null))}}}var v=Array.isArray;function b(s){return v(s)}function x(s){{var p=typeof Symbol=="function"&&Symbol.toStringTag,k=p&&s[Symbol.toStringTag]||s.constructor.name||"Object";return k}}function w(s){try{return z(s),!1}catch{return!0}}function z(s){return""+s}function $(s){if(w(s))return O("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",x(s)),z(s)}var J=C.ReactCurrentOwner,K={key:!0,ref:!0,__self:!0,__source:!0},te,ge;function he(s){if(_e.call(s,"ref")){var p=Object.getOwnPropertyDescriptor(s,"ref").get;if(p&&p.isReactWarning)return!1}return s.ref!==void 0}function De(s){if(_e.call(s,"key")){var p=Object.getOwnPropertyDescriptor(s,"key").get;if(p&&p.isReactWarning)return!1}return s.key!==void 0}function je(s,p){typeof s.ref=="string"&&J.current}function Ne(s,p){{var k=function(){te||(te=!0,O("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",p))};k.isReactWarning=!0,Object.defineProperty(s,"key",{get:k,configurable:!0})}}function me(s,p){{var k=function(){ge||(ge=!0,O("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",p))};k.isReactWarning=!0,Object.defineProperty(s,"ref",{get:k,configurable:!0})}}var Re=function(s,p,k,I,re,se,Q){var B={$$typeof:t,type:s,key:p,ref:k,props:Q,_owner:se};return B._store={},Object.defineProperty(B._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(B,"_self",{configurable:!1,enumerable:!1,writable:!1,value:I}),Object.defineProperty(B,"_source",{configurable:!1,enumerable:!1,writable:!1,value:re}),Object.freeze&&(Object.freeze(B.props),Object.freeze(B)),B};function ct(s,p,k,I,re){{var se,Q={},B=null,ve=null;k!==void 0&&($(k),B=""+k),De(p)&&($(p.key),B=""+p.key),he(p)&&(ve=p.ref,je(p,re));for(se in p)_e.call(p,se)&&!K.hasOwnProperty(se)&&(Q[se]=p[se]);if(s&&s.defaultProps){var ue=s.defaultProps;for(se in ue)Q[se]===void 0&&(Q[se]=ue[se])}if(B||ve){var de=typeof s=="function"?s.displayName||s.name||"Unknown":s;B&&Ne(Q,de),ve&&me(Q,de)}return Re(s,B,ve,re,I,J.current,Q)}}var lt=C.ReactCurrentOwner,bt=C.ReactDebugCurrentFrame;function Je(s){if(s){var p=s._owner,k=Ue(s.type,s._source,p?p.type:null);bt.setExtraStackFrame(k)}else bt.setExtraStackFrame(null)}var yt;yt=!1;function wt(s){return typeof s=="object"&&s!==null&&s.$$typeof===t}function Ft(){{if(lt.current){var s=W(lt.current.type);if(s)return`
|
|
37
37
|
|
|
38
|
-
Check the render method of \``+
|
|
38
|
+
Check the render method of \``+s+"`."}return""}}function Ur(s){return""}var _t={};function qr(s){{var p=Ft();if(!p){var k=typeof s=="string"?s:s.displayName||s.name;k&&(p=`
|
|
39
39
|
|
|
40
|
-
Check the top-level render call using <`+
|
|
40
|
+
Check the top-level render call using <`+k+">.")}return p}}function Nt(s,p){{if(!s._store||s._store.validated||s.key!=null)return;s._store.validated=!0;var k=qr(p);if(_t[k])return;_t[k]=!0;var I="";s&&s._owner&&s._owner!==lt.current&&(I=" It was passed a child from "+W(s._owner.type)+"."),Je(s),O('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',k,I),Je(null)}}function Pt(s,p){{if(typeof s!="object")return;if(b(s))for(var k=0;k<s.length;k++){var I=s[k];wt(I)&&Nt(I,p)}else if(wt(s))s._store&&(s._store.validated=!0);else if(s){var re=ne(s);if(typeof re=="function"&&re!==s.entries)for(var se=re.call(s),Q;!(Q=se.next()).done;)wt(Q.value)&&Nt(Q.value,p)}}}function Mr(s){{var p=s.type;if(p==null||typeof p=="string")return;var k;if(typeof p=="function")k=p.propTypes;else if(typeof p=="object"&&(p.$$typeof===l||p.$$typeof===E))k=p.propTypes;else return;if(k){var I=W(p);d(k,s.props,"prop",I,s)}else if(p.PropTypes!==void 0&&!yt){yt=!0;var re=W(p);O("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",re||"Unknown")}typeof p.getDefaultProps=="function"&&!p.getDefaultProps.isReactClassApproved&&O("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function zr(s){{for(var p=Object.keys(s.props),k=0;k<p.length;k++){var I=p[k];if(I!=="children"&&I!=="key"){Je(s),O("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",I),Je(null);break}}s.ref!==null&&(Je(s),O("Invalid attribute `ref` supplied to `React.Fragment`."),Je(null))}}var $t={};function jt(s,p,k,I,re,se){{var Q=N(s);if(!Q){var B="";(s===void 0||typeof s=="object"&&s!==null&&Object.keys(s).length===0)&&(B+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var ve=Ur();ve?B+=ve:B+=Ft();var ue;s===null?ue="null":b(s)?ue="array":s!==void 0&&s.$$typeof===t?(ue="<"+(W(s.type)||"Unknown")+" />",B=" Did you accidentally export a JSX literal instead of a component?"):ue=typeof s,O("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",ue,B)}var de=ct(s,p,k,re,se);if(de==null)return de;if(Q){var Te=p.children;if(Te!==void 0)if(I)if(b(Te)){for(var He=0;He<Te.length;He++)Pt(Te[He],s);Object.freeze&&Object.freeze(Te)}else O("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Pt(Te,s)}if(_e.call(p,"key")){var Be=W(s),ke=Object.keys(p).filter(function(Qr){return Qr!=="key"}),vt=ke.length>0?"{key: someKey, "+ke.join(": ..., ")+": ...}":"{key: someKey}";if(!$t[Be+vt]){var Wr=ke.length>0?"{"+ke.join(": ..., ")+": ...}":"{}";O(`A props object containing a "key" prop is being spread into JSX:
|
|
41
41
|
let props = %s;
|
|
42
42
|
<%s {...props} />
|
|
43
43
|
React keys must be passed directly to JSX without using spread:
|
|
44
44
|
let props = %s;
|
|
45
|
-
<%s key={someKey} {...props} />`,
|
|
45
|
+
<%s key={someKey} {...props} />`,vt,Be,Wr,Be),$t[Be+vt]=!0}}return s===r?zr(de):Mr(de),de}}function Kr(s,p,k){return jt(s,p,k,!0)}function Br(s,p,k){return jt(s,p,k,!1)}var Gr=Br,Yr=Kr;st.Fragment=r,st.jsx=Gr,st.jsxs=Yr}()),st}process.env.NODE_ENV==="production"?Tt.exports=Ka():Tt.exports=Ba();var xe=Tt.exports;const Ar=Ve.forwardRef(({className:e,...t},n)=>xe.jsx("div",{ref:n,className:Pe("flex h-full flex-grow items-start gap-x-4 overflow-x-auto py-2",e),...t}));Ar.displayName="Kanban";const Dr=Ve.forwardRef(({className:e,...t},n)=>xe.jsx("div",{ref:n,className:Pe("flex h-full min-w-[300px] flex-col rounded-lg border bg-gray-50 p-3",e),...t}));Dr.displayName="KanbanColumn";const Fr=Ve.forwardRef(({className:e,...t},n)=>xe.jsx("div",{ref:n,className:Pe("mb-3 flex items-center justify-between",e),...t}));Fr.displayName="KanbanColumnHeader";const _r=Ve.forwardRef(({className:e,...t},n)=>xe.jsx("h3",{ref:n,className:Pe("text-sm font-semibold text-gray-700",e),...t}));_r.displayName="KanbanColumnTitle";const Nr=Ve.forwardRef(({className:e,...t},n)=>xe.jsx("div",{ref:n,className:Pe("flex-1 space-y-2 overflow-y-auto",e),...t}));Nr.displayName="KanbanColumnContent";const Pr=Ve.forwardRef(({className:e,...t},n)=>xe.jsx("div",{ref:n,className:Pe("rounded-lg border border-gray-200 bg-white p-3 shadow-sm hover:shadow-md transition-shadow cursor-move",e),...t}));Pr.displayName="KanbanCard";const $r=Ve.forwardRef(({className:e,...t},n)=>xe.jsx("div",{ref:n,className:Pe("font-medium text-gray-900 mb-1",e),...t}));$r.displayName="KanbanCardTitle";const jr=Ve.forwardRef(({className:e,...t},n)=>xe.jsx("div",{ref:n,className:Pe("text-sm text-gray-600",e),...t}));jr.displayName="KanbanCardDescription";const Ir=Ve.forwardRef(({className:e,...t},n)=>xe.jsx("div",{ref:n,className:Pe("mt-3 pt-3 border-t border-gray-200",e),...t}));Ir.displayName="KanbanColumnFooter";const Ga={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 We={...Ga};function Ya(e){We={...We,...e,providers:{...We.providers,...e.providers},retry:{...We.retry,...e.retry}}}function ht(){return{...We}}function Dt(){return We.baseUrl||gt()||(typeof window<"u"?window.location.origin:"")}function Vr(e){return We.providers[e]}class pt extends Error{constructor(n,r){super(n);Ge(this,"statusCode");this.name="AuthenticationError",this.statusCode=r}}async function Wa(){const e=ht(),t=Dt(),n=it(),r=await fetch(`${t}${e.sessionEndpoint}`,{method:"GET",headers:n,credentials:"include"});if(!r.ok)throw r.status===401||r.status===403?new pt("Not authenticated",r.status):new pt(`Session check failed: ${r.statusText}`,r.status);return await r.json()}function Ht(e,t){return new Promise(()=>{const n=ht(),r=Dt();if(!r)throw new Error('Auth base URL is not configured. Call setApiBaseUrl("https://...") or configureAuth({ baseUrl: "https://..." }) first.');const a=e||n.defaultProvider,o=Vr(a);if(!o){const u=Object.keys(n.providers||{}).join(", ")||"none";throw new Error(`Auth provider "${a}" is not configured. Available providers: ${u}`)}if(!o.loginPath)throw new Error(`Login path not configured for provider "${a}". Configure it with: configureAuth({ providers: { ${a}: { loginPath: '/api/auth/...' } } })`);let i;try{i=new URL(`${r}${o.loginPath}`)}catch{throw new Error(`Failed to construct login URL. Base URL: "${r}", Login path: "${o.loginPath}". Ensure baseUrl is a valid URL (e.g., "https://example.com").`)}(t!=null&&t.callbackUrl||n.callbackUrl)&&i.searchParams.set("callbackUrl",(t==null?void 0:t.callbackUrl)||n.callbackUrl||window.location.href),t!=null&&t.params&&Object.entries(t.params).forEach(([u,l])=>{i.searchParams.set(u,l)}),window.location.href=i.toString()})}async function Qa(e){const t=ht(),n=Dt(),r=it(),a=Vr(t.defaultProvider),o=a==null?void 0:a.logoutPath;if(o&&(e==null?void 0:e.callLogoutEndpoint)!==!1)try{await fetch(`${n}${o}`,{method:"POST",headers:r,credentials:"include"})}catch(i){console.warn("Logout endpoint call failed:",i)}e!=null&&e.redirectUrl?window.location.href=e.redirectUrl:t.loginRedirectUrl&&(window.location.href=t.loginRedirectUrl)}const Lr=c.createContext(null),Xt=["auth","session"];function Ja({children:e,config:t,onAuthChange:n,onError:r,loadingComponent:a,unauthenticatedComponent:o,skipInitialCheck:i=!1}){const u=c.useRef(!1);t&&!u.current&&(Ya(t),u.current=!0);const l=Ce.useQueryClient(),f=ht(),{data:g,isLoading:E,error:_,refetch:G,isFetching:Y}=Ce.useQuery({queryKey:Xt,queryFn:Wa,enabled:!i,retry:(q,ie)=>ie instanceof pt&&(ie.statusCode===401||ie.statusCode===403)?!1:q<f.retry.count,retryDelay:f.retry.delay,staleTime:f.staleTime,gcTime:f.staleTime*2,refetchOnWindowFocus:f.refetchOnWindowFocus??!0,refetchOnReconnect:f.refetchOnReconnect??!0,refetchInterval:f.sessionCheckInterval||!1}),[h,ne]=c.useState(null),C=c.useMemo(()=>E||Y?"loading":g!=null&&g.userDetails?"authenticated":"unauthenticated",[E,Y,g]),O=(g==null?void 0:g.userDetails)||null,U=(g==null?void 0:g.staticBaseUrl)||null,V=(g==null?void 0:g.buildId)||null,X=C==="authenticated",y=c.useRef(n);y.current=n;const S=c.useRef(r);S.current=r,c.useEffect(()=>{var q;E||(q=y.current)==null||q.call(y,C,O)},[C,O,E]),c.useEffect(()=>{var q;_&&(ne(_),(q=S.current)==null||q.call(S,_))},[_]),c.useEffect(()=>{C==="unauthenticated"&&f.autoRedirect&&!E&&Ht()},[C,E,f.autoRedirect]);const m=c.useCallback((q,ie)=>{Ht(q,ie)},[]),D=c.useCallback(async q=>{l.removeQueries({queryKey:Xt}),await Qa(q)},[l]),N=c.useCallback(async()=>{if(Y)return g||null;try{return(await G()).data||null}catch(q){return ne(q),null}},[G,Y,g]),j=c.useCallback(q=>(O==null?void 0:O.Role)===q,[O]),M=c.useCallback(q=>q.includes((O==null?void 0:O.Role)||""),[O]),W=c.useCallback(()=>{ne(null)},[]),Z=c.useCallback(()=>{G()},[G]),oe=c.useMemo(()=>({user:O,staticBaseUrl:U,buildId:V,status:C,isAuthenticated:X,isLoading:E,login:m,logout:D,refreshSession:N,hasRole:j,hasAnyRole:M,error:h,clearError:W,_forceCheck:Z}),[O,U,V,C,X,E,m,D,N,j,M,h,W,Z]);return C==="loading"&&a?xe.jsx(xe.Fragment,{children:a}):C==="unauthenticated"&&!f.autoRedirect&&o?xe.jsx(xe.Fragment,{children:o}):xe.jsx(Lr.Provider,{value:oe,children:e})}function Ha(){const e=c.useContext(Lr);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e}function Xa(){const e=Ha();return c.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=Ja;exports.AuthenticationError=pt;exports.Kanban=Ar;exports.KanbanCard=Pr;exports.KanbanCardDescription=jr;exports.KanbanCardTitle=$r;exports.KanbanColumn=Dr;exports.KanbanColumnContent=Nr;exports.KanbanColumnFooter=Ir;exports.KanbanColumnHeader=Fr;exports.KanbanColumnTitle=_r;exports.api=Ee;exports.clearFormCache=ja;exports.cn=Pe;exports.decodeDate=sn;exports.decodeDatetime=nn;exports.encodeDate=an;exports.encodeDatetime=rn;exports.formatArray=sr;exports.formatBoolean=or;exports.formatCurrency=er;exports.formatDate=tr;exports.formatDateTime=rr;exports.formatFieldValue=un;exports.formatJSON=ar;exports.formatNumber=nr;exports.formatTextArea=ir;exports.getApiBaseUrl=gt;exports.getBdoSchema=Zt;exports.getDefaultHeaders=it;exports.isCondition=Cr;exports.isConditionGroup=Fe;exports.isFilterCondition=ta;exports.isFilterLogical=ea;exports.isNetworkError=_a;exports.isValidationError=Na;exports.listMetadata=on;exports.parseApiError=Fa;exports.parseCurrency=cn;exports.setApiBaseUrl=en;exports.setDefaultHeaders=tn;exports.truncateString=ln;exports.useAuth=Xa;exports.useFilter=At;exports.useForm=qa;exports.useKanban=za;exports.useTable=aa;
|