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