@pravinrd/awesome-grid 0.2.3 → 0.2.5

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.
@@ -14,11 +14,11 @@
14
14
  *
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
- */var lt;function Tt(){return lt||(lt=1,process.env.NODE_ENV!=="production"&&(function(){function u(n){if(n==null)return null;if(typeof n=="function")return n.$$typeof===N?null:n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case fe:return"Fragment";case Le:return"Profiler";case f:return"StrictMode";case we:return"Suspense";case Y:return"SuspenseList";case Be:return"Activity"}if(typeof n=="object")switch(typeof n.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),n.$$typeof){case oe:return"Portal";case Z:return n.displayName||"Context";case W:return(n._context.displayName||"Context")+".Consumer";case ge:var i=n.render;return n=n.displayName,n||(n=i.displayName||i.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case G:return i=n.displayName||null,i!==null?i:u(n.type)||"Memo";case Q:i=n._payload,n=n._init;try{return u(n(i))}catch{}}return null}function x(n){return""+n}function v(n){try{x(n);var i=!1}catch{i=!0}if(i){i=console;var g=i.error,_=typeof Symbol=="function"&&Symbol.toStringTag&&n[Symbol.toStringTag]||n.constructor.name||"Object";return g.call(i,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",_),x(n)}}function O(n){if(n===fe)return"<>";if(typeof n=="object"&&n!==null&&n.$$typeof===Q)return"<...>";try{var i=u(n);return i?"<"+i+">":"<...>"}catch{return"<...>"}}function k(){var n=_e.A;return n===null?null:n.getOwner()}function S(){return Error("react-stack-top-frame")}function F(n){if(Ce.call(n,"key")){var i=Object.getOwnPropertyDescriptor(n,"key").get;if(i&&i.isReactWarning)return!1}return n.key!==void 0}function U(n,i){function g(){ee||(ee=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",i))}g.isReactWarning=!0,Object.defineProperty(n,"key",{get:g,configurable:!0})}function pe(){var n=u(this.type);return ae[n]||(ae[n]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),n=this.props.ref,n!==void 0?n:null}function ne(n,i,g,_,$,ce){var b=g.ref;return n={$$typeof:je,type:n,key:i,props:g,_owner:_},(b!==void 0?b:null)!==null?Object.defineProperty(n,"ref",{enumerable:!1,get:pe}):Object.defineProperty(n,"ref",{enumerable:!1,value:null}),n._store={},Object.defineProperty(n._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(n,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(n,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:$}),Object.defineProperty(n,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:ce}),Object.freeze&&(Object.freeze(n.props),Object.freeze(n)),n}function K(n,i,g,_,$,ce){var b=i.children;if(b!==void 0)if(_)if(Re(b)){for(_=0;_<b.length;_++)se(b[_]);Object.freeze&&Object.freeze(b)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else se(b);if(Ce.call(i,"key")){b=u(n);var j=Object.keys(i).filter(function(V){return V!=="key"});_=0<j.length?"{key: someKey, "+j.join(": ..., ")+": ...}":"{key: someKey}",te[b+_]||(j=0<j.length?"{"+j.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
17
+ */var lt;function Tt(){return lt||(lt=1,process.env.NODE_ENV!=="production"&&(function(){function u(n){if(n==null)return null;if(typeof n=="function")return n.$$typeof===N?null:n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case fe:return"Fragment";case Le:return"Profiler";case f:return"StrictMode";case we:return"Suspense";case Y:return"SuspenseList";case Be:return"Activity"}if(typeof n=="object")switch(typeof n.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),n.$$typeof){case se:return"Portal";case Z:return n.displayName||"Context";case W:return(n._context.displayName||"Context")+".Consumer";case ge:var c=n.render;return n=n.displayName,n||(n=c.displayName||c.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case G:return c=n.displayName||null,c!==null?c:u(n.type)||"Memo";case Q:c=n._payload,n=n._init;try{return u(n(c))}catch{}}return null}function x(n){return""+n}function v(n){try{x(n);var c=!1}catch{c=!0}if(c){c=console;var g=c.error,_=typeof Symbol=="function"&&Symbol.toStringTag&&n[Symbol.toStringTag]||n.constructor.name||"Object";return g.call(c,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",_),x(n)}}function O(n){if(n===fe)return"<>";if(typeof n=="object"&&n!==null&&n.$$typeof===Q)return"<...>";try{var c=u(n);return c?"<"+c+">":"<...>"}catch{return"<...>"}}function k(){var n=_e.A;return n===null?null:n.getOwner()}function S(){return Error("react-stack-top-frame")}function F(n){if(Ce.call(n,"key")){var c=Object.getOwnPropertyDescriptor(n,"key").get;if(c&&c.isReactWarning)return!1}return n.key!==void 0}function U(n,c){function g(){ee||(ee=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",c))}g.isReactWarning=!0,Object.defineProperty(n,"key",{get:g,configurable:!0})}function pe(){var n=u(this.type);return ae[n]||(ae[n]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),n=this.props.ref,n!==void 0?n:null}function ne(n,c,g,_,$,ie){var b=g.ref;return n={$$typeof:je,type:n,key:c,props:g,_owner:_},(b!==void 0?b:null)!==null?Object.defineProperty(n,"ref",{enumerable:!1,get:pe}):Object.defineProperty(n,"ref",{enumerable:!1,value:null}),n._store={},Object.defineProperty(n._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(n,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(n,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:$}),Object.defineProperty(n,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:ie}),Object.freeze&&(Object.freeze(n.props),Object.freeze(n)),n}function K(n,c,g,_,$,ie){var b=c.children;if(b!==void 0)if(_)if(Re(b)){for(_=0;_<b.length;_++)oe(b[_]);Object.freeze&&Object.freeze(b)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else oe(b);if(Ce.call(c,"key")){b=u(n);var j=Object.keys(c).filter(function(V){return V!=="key"});_=0<j.length?"{key: someKey, "+j.join(": ..., ")+": ...}":"{key: someKey}",te[b+_]||(j=0<j.length?"{"+j.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
18
18
  let props = %s;
19
19
  <%s {...props} />
20
20
  React keys must be passed directly to JSX without using spread:
21
21
  let props = %s;
22
- <%s key={someKey} {...props} />`,_,b,j,b),te[b+_]=!0)}if(b=null,g!==void 0&&(v(g),b=""+g),F(i)&&(v(i.key),b=""+i.key),"key"in i){g={};for(var be in i)be!=="key"&&(g[be]=i[be])}else g=i;return b&&U(g,typeof n=="function"?n.displayName||n.name||"Unknown":n),ne(n,b,g,k(),$,ce)}function se(n){Ne(n)?n._store&&(n._store.validated=1):typeof n=="object"&&n!==null&&n.$$typeof===Q&&(n._payload.status==="fulfilled"?Ne(n._payload.value)&&n._payload.value._store&&(n._payload.value._store.validated=1):n._store&&(n._store.validated=1))}function Ne(n){return typeof n=="object"&&n!==null&&n.$$typeof===je}var H=l,je=Symbol.for("react.transitional.element"),oe=Symbol.for("react.portal"),fe=Symbol.for("react.fragment"),f=Symbol.for("react.strict_mode"),Le=Symbol.for("react.profiler"),W=Symbol.for("react.consumer"),Z=Symbol.for("react.context"),ge=Symbol.for("react.forward_ref"),we=Symbol.for("react.suspense"),Y=Symbol.for("react.suspense_list"),G=Symbol.for("react.memo"),Q=Symbol.for("react.lazy"),Be=Symbol.for("react.activity"),N=Symbol.for("react.client.reference"),_e=H.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Ce=Object.prototype.hasOwnProperty,Re=Array.isArray,T=console.createTask?console.createTask:function(){return null};H={react_stack_bottom_frame:function(n){return n()}};var ee,ae={},le=H.react_stack_bottom_frame.bind(H,S)(),z=T(O(S)),te={};ke.Fragment=fe,ke.jsx=function(n,i,g){var _=1e4>_e.recentlyCreatedOwnerStacks++;return K(n,i,g,!1,_?Error("react-stack-top-frame"):le,_?T(O(n)):z)},ke.jsxs=function(n,i,g){var _=1e4>_e.recentlyCreatedOwnerStacks++;return K(n,i,g,!0,_?Error("react-stack-top-frame"):le,_?T(O(n)):z)}})()),ke}var ct;function Et(){return ct||(ct=1,process.env.NODE_ENV==="production"?Pe.exports=Rt():Pe.exports=Tt()),Pe.exports}var r=Et();const Ot="_container_dihwe_1",At="_themeLight_dihwe_10",Mt="_themeDark_dihwe_29",Dt="_themePurple_dihwe_48",Pt="_headerRow_dihwe_67",It="_flexRow_dihwe_76",$t="_toolbarGroup_dihwe_82",Lt="_dropdown_dihwe_86",Bt="_buttonBase_dihwe_90",Wt="_buttonPrimary_dihwe_101",Ft="_buttonDanger_dihwe_111",Gt="_buttonMuted_dihwe_121",zt="_dropdownToggle_dihwe_142",Vt="_dropdownMenu_dihwe_147",Ut="_dropdownMenuOpen_dihwe_163",Ht="_menuItemButton_dihwe_167",Yt="_labelMuted_dihwe_185",Jt="_selectSmall_dihwe_190",qt="_selectAuto_dihwe_199",Xt="_switchRow_dihwe_203",Kt="_groupingSummary_dihwe_210",Zt="_relative_dihwe_217",Qt="_overlay_dihwe_221",er="_overlayInner_dihwe_229",tr="_spinner_dihwe_236",rr="_tableWrap_dihwe_252",nr="_tableWrapAll_dihwe_256",sr="_table_dihwe_252",or="_tableHead_dihwe_278",ar="_thCellTop_dihwe_282",lr="_thCellFilter_dihwe_290",cr="_thInner_dihwe_297",ir="_resizeHandle_dihwe_303",ur="_sortButton_dihwe_328",dr="_iconMuted_dihwe_338",hr="_inlineGroup_dihwe_342",mr="_input_dihwe_350",pr="_rowInteractive_dihwe_362",fr="_groupRow_dihwe_375",gr="_groupRowAnimated_dihwe_382",wr="_groupChildRow_dihwe_386",_r="_groupToggle_dihwe_390",br="_groupMeta_dihwe_430",yr="_checkbox_dihwe_438",xr="_tfoot_dihwe_447",vr="_textCenter_dihwe_455",kr="_paginationWrap_dihwe_459",Sr="_pagination_dihwe_459",Nr="_pageButton_dihwe_473",jr="_pageButtonActive_dihwe_488",Cr="_backdrop_dihwe_494",Rr="_drawer_dihwe_500",Tr="_drawerTitle_dihwe_515",Er="_drawerSection_dihwe_521",Or="_drawerSubtitle_dihwe_527",Ar="_sectionToggle_dihwe_534",Mr="_sectionBody_dihwe_547",Dr="_drawerRow_dihwe_551",Pr="_spacerAuto_dihwe_558",Ir="_successText_dihwe_562",$r="_srOnly_dihwe_570",o={container:Ot,themeLight:At,themeDark:Mt,themePurple:Dt,headerRow:Pt,flexRow:It,toolbarGroup:$t,dropdown:Lt,buttonBase:Bt,buttonPrimary:Wt,buttonDanger:Ft,buttonMuted:Gt,dropdownToggle:zt,dropdownMenu:Vt,dropdownMenuOpen:Ut,menuItemButton:Ht,labelMuted:Yt,selectSmall:Jt,selectAuto:qt,switchRow:Xt,groupingSummary:Kt,relative:Zt,overlay:Qt,overlayInner:er,spinner:tr,tableWrap:rr,tableWrapAll:nr,table:sr,tableHead:or,thCellTop:ar,thCellFilter:lr,thInner:cr,resizeHandle:ir,sortButton:ur,iconMuted:dr,inlineGroup:hr,input:mr,rowInteractive:pr,groupRow:fr,groupRowAnimated:gr,groupChildRow:wr,groupToggle:_r,groupMeta:br,checkbox:yr,tfoot:xr,textCenter:vr,paginationWrap:kr,pagination:Sr,pageButton:Nr,pageButtonActive:jr,backdrop:Cr,drawer:Rr,drawerTitle:Tr,drawerSection:Er,drawerSubtitle:Or,sectionToggle:Ar,sectionBody:Mr,drawerRow:Dr,spacerAuto:Pr,successText:Ir,srOnly:$r},E=(...u)=>u.filter(Boolean).join(" ");function it({label:u,children:x}){const[v,O]=l.useState(!1),k=l.useRef(null);return l.useEffect(()=>{const S=F=>{k.current&&!k.current.contains(F.target)&&O(!1)};return document.addEventListener("mousedown",S),()=>document.removeEventListener("mousedown",S)},[]),r.jsxs("div",{className:o.dropdown,ref:k,children:[r.jsx("button",{className:E(o.buttonBase,o.buttonPrimary,o.dropdownToggle),type:"button","aria-haspopup":"menu","aria-expanded":v,onClick:()=>O(!v),children:u}),r.jsx("ul",{className:E(o.dropdownMenu,v&&o.dropdownMenuOpen),role:"menu",onClick:()=>O(!1),children:x})]})}const Ve=(u,x="14px system-ui")=>{const O=(Ve.canvas||(Ve.canvas=document.createElement("canvas"))).getContext("2d");return O.font=x,O.measureText(u).width},Se=u=>u.toLowerCase().replace(/[_\s]+(.)?/g,(x,v)=>v?v.toUpperCase():"").replace(/^(.)/,x=>x.toLowerCase()),Lr=u=>{if(!u||typeof u!="object")return u;const x={};return Object.keys(u).forEach(v=>{x[Se(v)]=u[v]}),x},q=0,Ie=38,ut=10,Br=[],$e=80;function Wr({apiEndpoint:u,rowKey:x,theme:v="light",computedColumns:O=Br,currency:k="INR",dateFormat:S={locale:"en-US",options:{year:"numeric",month:"2-digit",day:"2-digit"}},dateSeparator:F="/",pageSizeOptions:U=[50,100,500,1e3,0],defaultPageSize:pe}){const ne=l.useRef(!1),K=l.useRef(!1),se=l.useRef(!1),Ne=50,[H,je]=l.useState(!0),[oe,fe]=l.useState([]),[f,Le]=l.useState([]),[W,Z]=l.useState([]),[ge,we]=l.useState(!1),[Y,G]=l.useState(1),Q=Array.isArray(U)&&U.length>0?U:[50,100,500,1e3,0],Be=pe!==void 0&&Q.includes(pe)?pe:Q[0]||50,[N,_e]=l.useState(Be),[Ce,Re]=l.useState(!1),[T,ee]=l.useState([]),[ae,le]=l.useState({}),[z,te]=l.useState([]),[n,i]=l.useState(()=>{const e=String(v||"light").toLowerCase();return e==="dark"||e==="purple"?e:"light"}),[g,_]=l.useState({groupBy:!1,aggregates:!1}),[$,ce]=l.useState({}),b=l.useDeferredValue($),[j,be]=l.useState({key:null,direction:"asc"}),[V,ye]=l.useState([]),[Te,Ee]=l.useState({}),[dt,M]=l.useTransition(),Ue=l.useRef(null),[ht,mt]=l.useState(0),Oe=l.useRef(null),[He,Ye]=l.useState(0),[Je,pt]=l.useState(0),ie=l.useRef(null),[ft,qe]=l.useState(()=>typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(max-width: 767.98px)").matches),We=String(k||"INR").toUpperCase()==="USD"?"USD":"INR",Xe=We==="USD"?"en-US":"en-IN",Ke=S?.locale||"en-US",Ze=l.useMemo(()=>S?.options||{year:"numeric",month:"2-digit",day:"2-digit"},[S]);l.useEffect(()=>{N>100&&we(!0)},[N]),l.useEffect(()=>{let e=!0;const t=new AbortController;return(async()=>{try{we(!0);const s=new URLSearchParams({page:String(Y),pageSize:String(N)}),a=await fetch(`${u}?${s.toString()}`,{signal:t.signal});if(!a.ok)throw new Error(`Request failed: ${a.status} ${a.statusText}`);const c=await a.json();if(!e)return;const h=(Array.isArray(c?.data)?c.data:[]).map(p=>Lr(p)),w=c?.columns||[],y=O.filter(p=>p&&p.key&&typeof p.formula=="function").map(p=>({key:Se(p.key),label:p.label||p.key,formula:p.formula})),m=w.map(p=>{const R=typeof p=="string"?p:p.key;return{key:Se(R),label:p.label||R.replace(/_/g," ").replace(/\b\w/g,B=>B.toUpperCase())}}),C=[...m,...y.filter(p=>!m.some(R=>R.key===p.key)).map(({key:p,label:R})=>({key:p,label:R}))],A=h.map(p=>{const R={...p};return y.forEach(B=>{try{R[B.key]=B.formula(p)}catch(me){R[B.key]="",console.error(`Failed computed column formula for '${B.key}'`,me)}}),R});if(fe(A),Le(C),!ne.current){const p=C.map(R=>R.key);Z(p),ye(p),ne.current=!0}}catch(s){if(s?.name==="AbortError")return;console.error("Failed to load grid data",s)}finally{e&&we(!1)}})(),()=>{e=!1,t.abort()}},[u,Y,N,O]),l.useEffect(()=>{if(f.length>0&&W.length===0){const e=f.map(t=>t.key);Z(e),ye(e),ne.current=!0}},[f,W]),l.useEffect(()=>{if(!f.length)return;const e=f.map(t=>t.key);ye(t=>{const s=t.filter(c=>e.includes(c)),a=e.filter(c=>!s.includes(c));return[...s,...a]}),Z(t=>{if(!t.length)return e;const s=t.filter(c=>e.includes(c)),a=e.filter(c=>!s.includes(c));return[...s,...a]})},[f]),l.useEffect(()=>{if(!f.length)return;const e=new Set(f.map(t=>t.key));ee(t=>t.filter(s=>e.has(s)))},[f]),l.useEffect(()=>{const e=()=>G(1);return window.addEventListener("refreshTable",e),()=>window.removeEventListener("refreshTable",e)},[]),l.useEffect(()=>{if(!u)return;K.current=!1,se.current=!1;const e=localStorage.getItem(`columnOrder_${u}`),t=localStorage.getItem(`visibleColumns_${u}`),s=localStorage.getItem(`groupByColumns_${u}`),a=localStorage.getItem(`totalColumns_${u}`),c=localStorage.getItem(`theme_${u}`),d=localStorage.getItem(`columnWidths_${u}`);if(e&&(ye(JSON.parse(e)),ne.current=!0),t&&Z(JSON.parse(t)),s&&ee(JSON.parse(s)),a&&(te(JSON.parse(a)),K.current=!0),d&&Ee(JSON.parse(d)),c==="light"||c==="dark"||c==="purple")i(c);else{const h=String(v||"light").toLowerCase();i(h==="dark"||h==="purple"?h:"light")}se.current=!0},[u,v]),l.useEffect(()=>{u&&se.current&&(V.length>0&&localStorage.setItem(`columnOrder_${u}`,JSON.stringify(V)),W.length>0&&localStorage.setItem(`visibleColumns_${u}`,JSON.stringify(W)),localStorage.setItem(`groupByColumns_${u}`,JSON.stringify(T)),localStorage.setItem(`totalColumns_${u}`,JSON.stringify(z)),localStorage.setItem(`theme_${u}`,n),localStorage.setItem(`columnWidths_${u}`,JSON.stringify(Te)))},[u,V,W,T,z,n,Te]);const re=(e,t)=>e[t]??"",ue=l.useCallback(e=>{const t=Number(e);return Number.isNaN(t)?"":new Intl.NumberFormat(Xe,{style:"currency",currency:We,maximumFractionDigits:2}).format(t)},[Xe,We]),gt=l.useCallback(e=>{const t=new Date(e);return Number.isNaN(t.getTime())?e??"":new Intl.DateTimeFormat(Ke,Ze).formatToParts(t).filter(a=>a.type==="year"||a.type==="month"||a.type==="day").map(a=>a.value).join(F)},[Ke,Ze,F]),J=l.useCallback(e=>{const t=oe[0]?.[e];return t==null?"text":isNaN(Number(t))?isNaN(Date.parse(t))?"text":"date":"number"},[oe]),Qe=e=>{const t=new Date(e);return Number.isNaN(t.getTime())?null:`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`},Ae=l.useMemo(()=>f.filter(e=>J(e.key)==="number"),[f,J]);l.useEffect(()=>{if(!f.length)return;const e=Ae.map(t=>t.key);if(!e.length){te([]);return}te(t=>{const s=new Set(e);return K.current?t.filter(a=>s.has(a)):(K.current=!0,e)})},[f.length,Ae]);const xe=(e,t)=>{M(()=>{ce(s=>({...s,[e]:{...s[e],...t}})),G(1)})},wt=()=>{M(()=>{ce({}),G(1)})},Fe=l.useMemo(()=>oe.filter(e=>Object.entries(b).every(([t,s])=>{if(!(s?.value!==void 0&&s?.value!==null&&String(s.value).trim()!==""))return!0;const c=re(e,t);if(s.type==="number"){const d=Number(c),h=Number(s.value),w=s.op||"=";return Number.isNaN(d)||Number.isNaN(h)?!0:w==="="?d===h:w===">"?d>h:w==="<"?d<h:w==="!="?d!==h:!0}if(s.type==="date"){const d=Qe(c),h=Qe(s.value),w=s.op||"=";return!d||!h?!0:w==="="?d===h:w===">"?d>h:w==="<"?d<h:w==="!="?d!==h:!0}return String(c).toLowerCase().includes(String(s.value).toLowerCase())})),[oe,b]),_t=e=>{M(()=>{be(t=>({key:e,direction:t.key===e&&t.direction==="asc"?"desc":"asc"}))})},D=l.useMemo(()=>{if(!j.key)return Fe;const e=J(j.key);return[...Fe].sort((t,s)=>{const a=re(t,j.key),c=re(s,j.key),d=e==="date"?new Date(a).getTime():isNaN(Number(a))?a:Number(a),h=e==="date"?new Date(c).getTime():isNaN(Number(c))?c:Number(c);return d<h?j.direction==="asc"?-1:1:d>h?j.direction==="asc"?1:-1:0})},[Fe,j,J]),Me=l.useMemo(()=>{if(!H)return null;const e={};return f.forEach(t=>{J(t.key)==="number"&&z.includes(t.key)&&(e[t.key]=D.reduce((s,a)=>s+Number(a[t.key]||0),0))}),e},[H,D,f,J,z]),De=N===q?D.length:Math.min(N,Ne),Ge=N===q?1:Math.ceil(D.length/De),X=l.useMemo(()=>{if(N===q)return D;const e=(Y-1)*De;return D.slice(e,e+De)},[D,Y,N,De]),P=T.length>0,L=!P&&N===q&&!ft,bt=e=>{M(()=>{ee(t=>t.includes(e)?t.filter(s=>s!==e):[...t,e]),le({}),G(1)})},yt=e=>{le(t=>({...t,[e]:!t[e]}))},xt=e=>{M(()=>{te(t=>t.includes(e)?t.filter(s=>s!==e):[...t,e])})},et=l.useCallback(e=>{const t={};return z.forEach(s=>{const a=e.map(y=>Number(y[s])).filter(y=>!Number.isNaN(y));if(!a.length)return;const c=a.reduce((y,m)=>y+m,0),d=Math.min(...a),h=Math.max(...a),w=c/a.length;t[s]={count:a.length,sum:c,avg:w,min:d,max:h}}),t},[z]),ze=l.useMemo(()=>{if(!P)return[];const e=[],t=D,s=(a,c,d)=>{const h=T[c],w=new Map;a.forEach(y=>{const m=re(y,h),C=m==null||m===""?"(Blank)":String(m);w.has(C)||w.set(C,[]),w.get(C).push(y)}),Array.from(w.entries()).forEach(([y,m],C)=>{const A=`${d}${h}:${y}:${C}`;if(e.push({type:"group",id:A,groupKey:h,groupValue:y,level:c,count:m.length,aggregates:et(m)}),!ae[A]){if(c<T.length-1){s(m,c+1,`${A}|`);return}m.forEach((p,R)=>{const B=p[Se(x)]??p[x]??R;e.push({type:"row",id:`${A}|row:${B}:${R}`,row:p})})}})};return s(t,0,""),e},[P,D,T,ae,et,x]),vt=l.useCallback(e=>{L&&Ye(e.currentTarget.scrollTop)},[L]);l.useLayoutEffect(()=>{if(!L)return;const e=Oe.current;if(!e)return;const t=()=>pt(e.clientHeight||0);return t(),window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[L]),l.useEffect(()=>{Ye(0),Oe.current&&(Oe.current.scrollTop=0)},[L,D.length]);const de=l.useMemo(()=>{if(!L)return{start:0,end:X.length,rows:X,topSpacer:0,bottomSpacer:0};const e=X.length,t=Math.ceil((Je||1)/Ie),s=Math.max(0,Math.floor(He/Ie)-ut),a=Math.min(e,s+t+ut*2);return{start:s,end:a,rows:X.slice(s,a),topSpacer:s*Ie,bottomSpacer:Math.max(0,(e-a)*Ie)}},[L,X,He,Je]),tt=l.useCallback(e=>Object.entries(e||{}).map(([t,s])=>`${f.find(c=>c.key===t)?.label||t}: Σ ${ue(s.sum)} | Avg ${ue(s.avg)} | Min ${ue(s.min)} | Max ${ue(s.max)}`),[f,ue]),kt=()=>{try{const e=I.filter(m=>W.includes(m.key)),t=m=>{const A=String(m??"").replace(/"/g,'""');return/[",\n\r]/.test(A)?`"${A}"`:A},s=P?ze.map(m=>{if(m.type==="group"){const p=f.find(me=>me.key===m.groupKey)?.label||m.groupKey,R=tt(m.aggregates).join(" || "),B={};return e.forEach((me,ot)=>{if(ot===0){B[me.key]=`GROUP ${p}: ${m.groupValue} (${m.count})`;return}B[me.key]=ot===1?R:""}),B}const C={},A=m.row;return e.forEach(p=>{C[p.key]=re(A,p.key)}),C}):D.map(m=>{const C={};return e.forEach(A=>{C[A.key]=re(m,A.key)}),C}),a=e.map(m=>t(m.label)).join(","),c=s.map(m=>e.map(C=>t(m[C.key])).join(",")).join(`\r
22
+ <%s key={someKey} {...props} />`,_,b,j,b),te[b+_]=!0)}if(b=null,g!==void 0&&(v(g),b=""+g),F(c)&&(v(c.key),b=""+c.key),"key"in c){g={};for(var be in c)be!=="key"&&(g[be]=c[be])}else g=c;return b&&U(g,typeof n=="function"?n.displayName||n.name||"Unknown":n),ne(n,b,g,k(),$,ie)}function oe(n){Ne(n)?n._store&&(n._store.validated=1):typeof n=="object"&&n!==null&&n.$$typeof===Q&&(n._payload.status==="fulfilled"?Ne(n._payload.value)&&n._payload.value._store&&(n._payload.value._store.validated=1):n._store&&(n._store.validated=1))}function Ne(n){return typeof n=="object"&&n!==null&&n.$$typeof===je}var H=l,je=Symbol.for("react.transitional.element"),se=Symbol.for("react.portal"),fe=Symbol.for("react.fragment"),f=Symbol.for("react.strict_mode"),Le=Symbol.for("react.profiler"),W=Symbol.for("react.consumer"),Z=Symbol.for("react.context"),ge=Symbol.for("react.forward_ref"),we=Symbol.for("react.suspense"),Y=Symbol.for("react.suspense_list"),G=Symbol.for("react.memo"),Q=Symbol.for("react.lazy"),Be=Symbol.for("react.activity"),N=Symbol.for("react.client.reference"),_e=H.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Ce=Object.prototype.hasOwnProperty,Re=Array.isArray,T=console.createTask?console.createTask:function(){return null};H={react_stack_bottom_frame:function(n){return n()}};var ee,ae={},le=H.react_stack_bottom_frame.bind(H,S)(),z=T(O(S)),te={};ke.Fragment=fe,ke.jsx=function(n,c,g){var _=1e4>_e.recentlyCreatedOwnerStacks++;return K(n,c,g,!1,_?Error("react-stack-top-frame"):le,_?T(O(n)):z)},ke.jsxs=function(n,c,g){var _=1e4>_e.recentlyCreatedOwnerStacks++;return K(n,c,g,!0,_?Error("react-stack-top-frame"):le,_?T(O(n)):z)}})()),ke}var it;function Et(){return it||(it=1,process.env.NODE_ENV==="production"?Pe.exports=Rt():Pe.exports=Tt()),Pe.exports}var r=Et();const Ot="_container_dihwe_1",At="_themeLight_dihwe_10",Mt="_themeDark_dihwe_29",Dt="_themePurple_dihwe_48",Pt="_headerRow_dihwe_67",It="_flexRow_dihwe_76",$t="_toolbarGroup_dihwe_82",Lt="_dropdown_dihwe_86",Bt="_buttonBase_dihwe_90",Wt="_buttonPrimary_dihwe_101",Ft="_buttonDanger_dihwe_111",Gt="_buttonMuted_dihwe_121",zt="_dropdownToggle_dihwe_142",Vt="_dropdownMenu_dihwe_147",Ut="_dropdownMenuOpen_dihwe_163",Ht="_menuItemButton_dihwe_167",Yt="_labelMuted_dihwe_185",Jt="_selectSmall_dihwe_190",qt="_selectAuto_dihwe_199",Xt="_switchRow_dihwe_203",Kt="_groupingSummary_dihwe_210",Zt="_relative_dihwe_217",Qt="_overlay_dihwe_221",er="_overlayInner_dihwe_229",tr="_spinner_dihwe_236",rr="_tableWrap_dihwe_252",nr="_tableWrapAll_dihwe_256",or="_table_dihwe_252",sr="_tableHead_dihwe_278",ar="_thCellTop_dihwe_282",lr="_thCellFilter_dihwe_290",ir="_thInner_dihwe_297",cr="_resizeHandle_dihwe_303",ur="_sortButton_dihwe_328",dr="_iconMuted_dihwe_338",hr="_inlineGroup_dihwe_342",mr="_input_dihwe_350",pr="_rowInteractive_dihwe_362",fr="_groupRow_dihwe_375",gr="_groupRowAnimated_dihwe_382",wr="_groupChildRow_dihwe_386",_r="_groupToggle_dihwe_390",br="_groupMeta_dihwe_430",yr="_checkbox_dihwe_438",xr="_tfoot_dihwe_447",vr="_textCenter_dihwe_455",kr="_paginationWrap_dihwe_459",Sr="_pagination_dihwe_459",Nr="_pageButton_dihwe_473",jr="_pageButtonActive_dihwe_488",Cr="_backdrop_dihwe_494",Rr="_drawer_dihwe_500",Tr="_drawerTitle_dihwe_515",Er="_drawerSection_dihwe_521",Or="_drawerSubtitle_dihwe_527",Ar="_sectionToggle_dihwe_534",Mr="_sectionBody_dihwe_547",Dr="_drawerRow_dihwe_551",Pr="_spacerAuto_dihwe_558",Ir="_srOnly_dihwe_570",s={container:Ot,themeLight:At,themeDark:Mt,themePurple:Dt,headerRow:Pt,flexRow:It,toolbarGroup:$t,dropdown:Lt,buttonBase:Bt,buttonPrimary:Wt,buttonDanger:Ft,buttonMuted:Gt,dropdownToggle:zt,dropdownMenu:Vt,dropdownMenuOpen:Ut,menuItemButton:Ht,labelMuted:Yt,selectSmall:Jt,selectAuto:qt,switchRow:Xt,groupingSummary:Kt,relative:Zt,overlay:Qt,overlayInner:er,spinner:tr,tableWrap:rr,tableWrapAll:nr,table:or,tableHead:sr,thCellTop:ar,thCellFilter:lr,thInner:ir,resizeHandle:cr,sortButton:ur,iconMuted:dr,inlineGroup:hr,input:mr,rowInteractive:pr,groupRow:fr,groupRowAnimated:gr,groupChildRow:wr,groupToggle:_r,groupMeta:br,checkbox:yr,tfoot:xr,textCenter:vr,paginationWrap:kr,pagination:Sr,pageButton:Nr,pageButtonActive:jr,backdrop:Cr,drawer:Rr,drawerTitle:Tr,drawerSection:Er,drawerSubtitle:Or,sectionToggle:Ar,sectionBody:Mr,drawerRow:Dr,spacerAuto:Pr,srOnly:Ir},E=(...u)=>u.filter(Boolean).join(" ");function ct({label:u,children:x}){const[v,O]=l.useState(!1),k=l.useRef(null);return l.useEffect(()=>{const S=F=>{k.current&&!k.current.contains(F.target)&&O(!1)};return document.addEventListener("mousedown",S),()=>document.removeEventListener("mousedown",S)},[]),r.jsxs("div",{className:s.dropdown,ref:k,children:[r.jsx("button",{className:E(s.buttonBase,s.buttonPrimary,s.dropdownToggle),type:"button","aria-haspopup":"menu","aria-expanded":v,onClick:()=>O(!v),children:u}),r.jsx("ul",{className:E(s.dropdownMenu,v&&s.dropdownMenuOpen),role:"menu",onClick:()=>O(!1),children:x})]})}const Ve=(u,x="14px system-ui")=>{const O=(Ve.canvas||(Ve.canvas=document.createElement("canvas"))).getContext("2d");return O.font=x,O.measureText(u).width},Se=u=>u.toLowerCase().replace(/[_\s]+(.)?/g,(x,v)=>v?v.toUpperCase():"").replace(/^(.)/,x=>x.toLowerCase()),$r=u=>{if(!u||typeof u!="object")return u;const x={};return Object.keys(u).forEach(v=>{x[Se(v)]=u[v]}),x},q=0,Ie=38,ut=10,Lr=[],$e=80;function Br({apiEndpoint:u,rowKey:x,theme:v="light",computedColumns:O=Lr,currency:k="INR",dateFormat:S={locale:"en-US",options:{year:"numeric",month:"2-digit",day:"2-digit"}},dateSeparator:F="/",pageSizeOptions:U=[50,100,500,1e3,0],defaultPageSize:pe}){const ne=l.useRef(!1),K=l.useRef(!1),oe=l.useRef(!1),Ne=50,[H,je]=l.useState(!0),[se,fe]=l.useState([]),[f,Le]=l.useState([]),[W,Z]=l.useState([]),[ge,we]=l.useState(!1),[Y,G]=l.useState(1),Q=Array.isArray(U)&&U.length>0?U:[50,100,500,1e3,0],Be=pe!==void 0&&Q.includes(pe)?pe:Q[0]||50,[N,_e]=l.useState(Be),[Ce,Re]=l.useState(!1),[T,ee]=l.useState([]),[ae,le]=l.useState({}),[z,te]=l.useState([]),[n,c]=l.useState(()=>{const e=String(v||"light").toLowerCase();return e==="dark"||e==="purple"?e:"light"}),[g,_]=l.useState({groupBy:!1,aggregates:!1}),[$,ie]=l.useState({}),b=l.useDeferredValue($),[j,be]=l.useState({key:null,direction:"asc"}),[V,ye]=l.useState([]),[Te,Ee]=l.useState({}),[dt,M]=l.useTransition(),Ue=l.useRef(null),[ht,mt]=l.useState(0),Oe=l.useRef(null),[He,Ye]=l.useState(0),[Je,pt]=l.useState(0),ce=l.useRef(null),[ft,qe]=l.useState(()=>typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(max-width: 767.98px)").matches),We=String(k||"INR").toUpperCase()==="USD"?"USD":"INR",Xe=We==="USD"?"en-US":"en-IN",Ke=S?.locale||"en-US",Ze=l.useMemo(()=>S?.options||{year:"numeric",month:"2-digit",day:"2-digit"},[S]);l.useEffect(()=>{N>100&&we(!0)},[N]),l.useEffect(()=>{let e=!0;const t=new AbortController;return(async()=>{try{we(!0);const o=new URLSearchParams({page:String(Y),pageSize:String(N)}),a=await fetch(`${u}?${o.toString()}`,{signal:t.signal});if(!a.ok)throw new Error(`Request failed: ${a.status} ${a.statusText}`);const i=await a.json();if(!e)return;const h=(Array.isArray(i?.data)?i.data:[]).map(p=>$r(p)),w=i?.columns||[],y=O.filter(p=>p&&p.key&&typeof p.formula=="function").map(p=>({key:Se(p.key),label:p.label||p.key,formula:p.formula})),m=w.map(p=>{const R=typeof p=="string"?p:p.key;return{key:Se(R),label:p.label||R.replace(/_/g," ").replace(/\b\w/g,B=>B.toUpperCase())}}),C=[...m,...y.filter(p=>!m.some(R=>R.key===p.key)).map(({key:p,label:R})=>({key:p,label:R}))],A=h.map(p=>{const R={...p};return y.forEach(B=>{try{R[B.key]=B.formula(p)}catch(me){R[B.key]="",console.error(`Failed computed column formula for '${B.key}'`,me)}}),R});if(fe(A),Le(C),!ne.current){const p=C.map(R=>R.key);Z(p),ye(p),ne.current=!0}}catch(o){if(o?.name==="AbortError")return;console.error("Failed to load grid data",o)}finally{e&&we(!1)}})(),()=>{e=!1,t.abort()}},[u,Y,N,O]),l.useEffect(()=>{if(f.length>0&&W.length===0){const e=f.map(t=>t.key);Z(e),ye(e),ne.current=!0}},[f,W]),l.useEffect(()=>{if(!f.length)return;const e=f.map(t=>t.key);ye(t=>{const o=t.filter(i=>e.includes(i)),a=e.filter(i=>!o.includes(i));return[...o,...a]}),Z(t=>{if(!t.length)return e;const o=t.filter(i=>e.includes(i)),a=e.filter(i=>!o.includes(i));return[...o,...a]})},[f]),l.useEffect(()=>{if(!f.length)return;const e=new Set(f.map(t=>t.key));ee(t=>t.filter(o=>e.has(o)))},[f]),l.useEffect(()=>{const e=()=>G(1);return window.addEventListener("refreshTable",e),()=>window.removeEventListener("refreshTable",e)},[]),l.useEffect(()=>{if(!u)return;K.current=!1,oe.current=!1;const e=localStorage.getItem(`columnOrder_${u}`),t=localStorage.getItem(`visibleColumns_${u}`),o=localStorage.getItem(`groupByColumns_${u}`),a=localStorage.getItem(`totalColumns_${u}`),i=localStorage.getItem(`theme_${u}`),d=localStorage.getItem(`columnWidths_${u}`);if(e&&(ye(JSON.parse(e)),ne.current=!0),t&&Z(JSON.parse(t)),o&&ee(JSON.parse(o)),a&&(te(JSON.parse(a)),K.current=!0),d&&Ee(JSON.parse(d)),i==="light"||i==="dark"||i==="purple")c(i);else{const h=String(v||"light").toLowerCase();c(h==="dark"||h==="purple"?h:"light")}oe.current=!0},[u,v]),l.useEffect(()=>{u&&oe.current&&(V.length>0&&localStorage.setItem(`columnOrder_${u}`,JSON.stringify(V)),W.length>0&&localStorage.setItem(`visibleColumns_${u}`,JSON.stringify(W)),localStorage.setItem(`groupByColumns_${u}`,JSON.stringify(T)),localStorage.setItem(`totalColumns_${u}`,JSON.stringify(z)),localStorage.setItem(`theme_${u}`,n),localStorage.setItem(`columnWidths_${u}`,JSON.stringify(Te)))},[u,V,W,T,z,n,Te]);const re=(e,t)=>e[t]??"",ue=l.useCallback(e=>{const t=Number(e);return Number.isNaN(t)?"":new Intl.NumberFormat(Xe,{style:"currency",currency:We,maximumFractionDigits:2}).format(t)},[Xe,We]),gt=l.useCallback(e=>{const t=new Date(e);return Number.isNaN(t.getTime())?e??"":new Intl.DateTimeFormat(Ke,Ze).formatToParts(t).filter(a=>a.type==="year"||a.type==="month"||a.type==="day").map(a=>a.value).join(F)},[Ke,Ze,F]),J=l.useCallback(e=>{const t=se[0]?.[e];return t==null?"text":isNaN(Number(t))?isNaN(Date.parse(t))?"text":"date":"number"},[se]),Qe=e=>{const t=new Date(e);return Number.isNaN(t.getTime())?null:`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`},Ae=l.useMemo(()=>f.filter(e=>J(e.key)==="number"),[f,J]);l.useEffect(()=>{if(!f.length)return;const e=Ae.map(t=>t.key);if(!e.length){te([]);return}te(t=>{const o=new Set(e);return K.current?t.filter(a=>o.has(a)):(K.current=!0,e)})},[f.length,Ae]);const xe=(e,t)=>{M(()=>{ie(o=>({...o,[e]:{...o[e],...t}})),G(1)})},wt=()=>{M(()=>{ie({}),G(1)})},Fe=l.useMemo(()=>se.filter(e=>Object.entries(b).every(([t,o])=>{if(!(o?.value!==void 0&&o?.value!==null&&String(o.value).trim()!==""))return!0;const i=re(e,t);if(o.type==="number"){const d=Number(i),h=Number(o.value),w=o.op||"=";return Number.isNaN(d)||Number.isNaN(h)?!0:w==="="?d===h:w===">"?d>h:w==="<"?d<h:w==="!="?d!==h:!0}if(o.type==="date"){const d=Qe(i),h=Qe(o.value),w=o.op||"=";return!d||!h?!0:w==="="?d===h:w===">"?d>h:w==="<"?d<h:w==="!="?d!==h:!0}return String(i).toLowerCase().includes(String(o.value).toLowerCase())})),[se,b]),_t=e=>{M(()=>{be(t=>({key:e,direction:t.key===e&&t.direction==="asc"?"desc":"asc"}))})},D=l.useMemo(()=>{if(!j.key)return Fe;const e=J(j.key);return[...Fe].sort((t,o)=>{const a=re(t,j.key),i=re(o,j.key),d=e==="date"?new Date(a).getTime():isNaN(Number(a))?a:Number(a),h=e==="date"?new Date(i).getTime():isNaN(Number(i))?i:Number(i);return d<h?j.direction==="asc"?-1:1:d>h?j.direction==="asc"?1:-1:0})},[Fe,j,J]),Me=l.useMemo(()=>{if(!H)return null;const e={};return f.forEach(t=>{J(t.key)==="number"&&z.includes(t.key)&&(e[t.key]=D.reduce((o,a)=>o+Number(a[t.key]||0),0))}),e},[H,D,f,J,z]),De=N===q?D.length:Math.min(N,Ne),Ge=N===q?1:Math.ceil(D.length/De),X=l.useMemo(()=>{if(N===q)return D;const e=(Y-1)*De;return D.slice(e,e+De)},[D,Y,N,De]),P=T.length>0,L=!P&&N===q&&!ft,bt=e=>{M(()=>{ee(t=>t.includes(e)?t.filter(o=>o!==e):[...t,e]),le({}),G(1)})},yt=e=>{le(t=>({...t,[e]:!t[e]}))},xt=e=>{M(()=>{te(t=>t.includes(e)?t.filter(o=>o!==e):[...t,e])})},et=l.useCallback(e=>{const t={};return z.forEach(o=>{const a=e.map(y=>Number(y[o])).filter(y=>!Number.isNaN(y));if(!a.length)return;const i=a.reduce((y,m)=>y+m,0),d=Math.min(...a),h=Math.max(...a),w=i/a.length;t[o]={count:a.length,sum:i,avg:w,min:d,max:h}}),t},[z]),ze=l.useMemo(()=>{if(!P)return[];const e=[],t=D,o=(a,i,d)=>{const h=T[i],w=new Map;a.forEach(y=>{const m=re(y,h),C=m==null||m===""?"(Blank)":String(m);w.has(C)||w.set(C,[]),w.get(C).push(y)}),Array.from(w.entries()).forEach(([y,m],C)=>{const A=`${d}${h}:${y}:${C}`;if(e.push({type:"group",id:A,groupKey:h,groupValue:y,level:i,count:m.length,aggregates:et(m)}),!ae[A]){if(i<T.length-1){o(m,i+1,`${A}|`);return}m.forEach((p,R)=>{const B=p[Se(x)]??p[x]??R;e.push({type:"row",id:`${A}|row:${B}:${R}`,row:p})})}})};return o(t,0,""),e},[P,D,T,ae,et,x]),vt=l.useCallback(e=>{L&&Ye(e.currentTarget.scrollTop)},[L]);l.useLayoutEffect(()=>{if(!L)return;const e=Oe.current;if(!e)return;const t=()=>pt(e.clientHeight||0);return t(),window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[L]),l.useEffect(()=>{Ye(0),Oe.current&&(Oe.current.scrollTop=0)},[L,D.length]);const de=l.useMemo(()=>{if(!L)return{start:0,end:X.length,rows:X,topSpacer:0,bottomSpacer:0};const e=X.length,t=Math.ceil((Je||1)/Ie),o=Math.max(0,Math.floor(He/Ie)-ut),a=Math.min(e,o+t+ut*2);return{start:o,end:a,rows:X.slice(o,a),topSpacer:o*Ie,bottomSpacer:Math.max(0,(e-a)*Ie)}},[L,X,He,Je]),tt=l.useCallback(e=>Object.entries(e||{}).map(([t,o])=>`${f.find(i=>i.key===t)?.label||t}: Σ ${ue(o.sum)} | Avg ${ue(o.avg)} | Min ${ue(o.min)} | Max ${ue(o.max)}`),[f,ue]),kt=()=>{try{const e=I.filter(m=>W.includes(m.key)),t=m=>{const A=String(m??"").replace(/"/g,'""');return/[",\n\r]/.test(A)?`"${A}"`:A},o=P?ze.map(m=>{if(m.type==="group"){const p=f.find(me=>me.key===m.groupKey)?.label||m.groupKey,R=tt(m.aggregates).join(" || "),B={};return e.forEach((me,st)=>{if(st===0){B[me.key]=`GROUP ${p}: ${m.groupValue} (${m.count})`;return}B[me.key]=st===1?R:""}),B}const C={},A=m.row;return e.forEach(p=>{C[p.key]=re(A,p.key)}),C}):D.map(m=>{const C={};return e.forEach(A=>{C[A.key]=re(m,A.key)}),C}),a=e.map(m=>t(m.label)).join(","),i=o.map(m=>e.map(C=>t(m[C.key])).join(",")).join(`\r
23
23
  `),d=`\uFEFF${a}\r
24
- ${c}`,h=new Blob([d],{type:"text/csv;charset=utf-8;"}),w=URL.createObjectURL(h),y=document.createElement("a");y.href=w,y.download="TableData.csv",document.body.appendChild(y),y.click(),document.body.removeChild(y),URL.revokeObjectURL(w)}catch(e){console.error("Failed to export CSV",e)}},rt=(e,t)=>{e.dataTransfer.setData("colKey",t)},nt=(e,t)=>{const s=e.dataTransfer.getData("colKey");!s||s===t||M(()=>{ye(a=>{const c=[...a],d=c.indexOf(s),h=c.indexOf(t);return c.splice(d,1),c.splice(h,0,s),c})})},st=e=>e.preventDefault(),I=l.useMemo(()=>V.map(e=>f.find(t=>t.key===e)).filter(e=>e&&W.includes(e.key)),[f,V,W]),he=l.useMemo(()=>{const a="14px system-ui",c={};return I.forEach(d=>{const h=Ve(d.label,a),w=Math.min(320,Math.max($e,h+32+48));c[d.key]=Math.max($e,Te[d.key]??w)}),c},[I,Te]);l.useEffect(()=>{if(!f.length)return;const e=new Set(f.map(t=>t.key));Ee(t=>{const s={};return Object.entries(t).forEach(([a,c])=>{e.has(a)&&(s[a]=c)}),s})},[f]);const St=(e,t)=>{if(e.preventDefault(),e.stopPropagation(),e.button!==void 0&&e.button!==0)return;const s=e.clientX,a=he[t]||$e;ie.current={key:t,startX:s,startWidth:a},document.body.style.cursor="col-resize";const c=h=>{if(!ie.current)return;const w=h.clientX-ie.current.startX,y=Math.max($e,ie.current.startWidth+w);Ee(m=>({...m,[ie.current.key]:y}))},d=()=>{ie.current=null,document.body.style.cursor="",window.removeEventListener("pointermove",c),window.removeEventListener("pointerup",d)};window.addEventListener("pointermove",c),window.addEventListener("pointerup",d)},Nt=(e,t)=>{e.preventDefault(),e.stopPropagation(),Ee(s=>{const a={...s};return delete a[t],a})},jt=ge||dt,Ct=n==="dark"?o.themeDark:n==="purple"?o.themePurple:o.themeLight;return l.useLayoutEffect(()=>{const e=()=>{mt(Ue.current?.offsetHeight||0)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[I.length]),l.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const e=window.matchMedia("(max-width: 767.98px)"),t=s=>qe(s.matches);return qe(e.matches),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]),r.jsxs("div",{className:E(o.container,Ct),children:[r.jsxs("div",{className:o.headerRow,children:[r.jsxs("div",{className:E(o.flexRow,o.toolbarGroup),children:[r.jsx("label",{className:o.labelMuted,children:"Rows:"}),r.jsx("select",{className:E(o.selectSmall,o.selectAuto),value:N,onChange:e=>M(()=>{_e(Number(e.target.value)),G(1)}),children:Q.map(e=>r.jsx("option",{value:e,children:e===q?"All":e},e))}),r.jsxs("div",{className:o.switchRow,children:[r.jsx("input",{className:o.checkbox,type:"checkbox",checked:H,onChange:e=>M(()=>je(e.target.checked))}),r.jsx("label",{className:o.labelMuted,children:"Show Totals"})]}),r.jsxs("div",{className:o.groupingSummary,children:[r.jsxs("span",{className:o.labelMuted,children:["Group By:"," ",T.length?T.map(e=>f.find(t=>t.key===e)?.label||e).join(" > "):"None"]}),T.length>0&&r.jsx("button",{className:E(o.buttonBase,o.buttonMuted),onClick:()=>{M(()=>{ee([]),le({})})},children:"Clear Groups"})]})]}),r.jsxs("div",{className:E(o.flexRow,o.toolbarGroup),children:[r.jsxs("button",{className:E(o.buttonBase,o.buttonDanger),disabled:!Object.values($).some(e=>e?.value),onClick:wt,children:["✕"," ","Clear Filters"]}),r.jsx(it,{label:r.jsxs(r.Fragment,{children:["⬇"," Export"]}),children:r.jsx("li",{children:r.jsxs("button",{className:o.menuItemButton,onClick:kt,children:[r.jsx("span",{className:o.successText,children:"CSV"})," Export to CSV"]})})}),r.jsxs("button",{className:E(o.buttonBase,o.buttonMuted),onClick:()=>Re(!0),children:["☰"," ","Columns"]}),r.jsxs(it,{label:r.jsxs(r.Fragment,{children:["▣"," Theme"]}),children:[r.jsx("li",{children:r.jsx("button",{className:o.menuItemButton,onClick:()=>i("light"),children:"Light"})}),r.jsx("li",{children:r.jsx("button",{className:o.menuItemButton,onClick:()=>i("dark"),children:"Dark"})}),r.jsx("li",{children:r.jsx("button",{className:o.menuItemButton,onClick:()=>i("purple"),children:"Purple"})})]})]})]}),r.jsxs("div",{className:o.relative,children:[r.jsx("div",{className:o.srOnly,"aria-live":"polite",children:ge?"Loading table data":"Table updated"}),jt&&r.jsx("div",{className:o.overlay,children:r.jsxs("div",{className:o.overlayInner,style:{top:"15%"},children:[r.jsx("div",{className:o.spinner,role:"status"}),r.jsx("div",{className:o.labelMuted,children:ge?"Loading data...":"Updating..."})]})}),r.jsx("div",{className:E(o.tableWrap,N===q&&o.tableWrapAll),ref:Oe,style:N===q?{maxHeight:"70vh",overflowY:"auto"}:{},onScroll:vt,children:r.jsxs("table",{className:o.table,style:{tableLayout:"fixed"},role:"grid","aria-rowcount":P?ze.length:X.length,"aria-colcount":I.length,children:[r.jsxs("thead",{className:o.tableHead,children:[r.jsx("tr",{ref:Ue,children:I.map(e=>{const t=j.key===e.key,s=t?j.direction==="asc"?"↑":"↓":"⇅";return r.jsxs("th",{scope:"col","aria-sort":t?j.direction==="asc"?"ascending":"descending":"none",draggable:!0,onDragStart:a=>rt(a,e.key),onDragOver:st,onDrop:a=>nt(a,e.key),style:{width:he[e.key]},className:o.thCellTop,children:[r.jsx("div",{className:o.thInner,children:r.jsxs("button",{type:"button",className:o.sortButton,"aria-label":`Sort by ${e.label}`,onClick:()=>_t(e.key),children:[e.label,r.jsxs("span",{className:o.iconMuted,children:[" ",s]})]})}),r.jsx("span",{className:o.resizeHandle,role:"separator","aria-orientation":"vertical","aria-label":`Resize ${e.label} column`,tabIndex:0,onPointerDown:a=>St(a,e.key),onDoubleClick:a=>Nt(a,e.key)})]},e.key)})}),r.jsx("tr",{children:I.map(e=>r.jsx("th",{style:{top:ht},className:o.thCellFilter,children:J(e.key)==="number"?r.jsxs("div",{className:o.inlineGroup,children:[r.jsxs("select",{className:E(o.selectSmall,o.selectAuto),value:$[e.key]?.op||"=",onChange:t=>xe(e.key,{type:"number",op:t.target.value}),children:[r.jsx("option",{value:"=",children:"="}),r.jsx("option",{value:">",children:">"}),r.jsx("option",{value:"<",children:"<"}),r.jsx("option",{value:"!=",children:"!="})]}),r.jsx("input",{type:"number",className:o.input,value:$[e.key]?.value||"",onChange:t=>xe(e.key,{type:"number",value:t.target.value})})]}):J(e.key)==="date"?r.jsxs("div",{className:o.inlineGroup,children:[r.jsxs("select",{className:E(o.selectSmall,o.selectAuto),value:$[e.key]?.op||"=",onChange:t=>xe(e.key,{type:"date",op:t.target.value}),children:[r.jsx("option",{value:"=",children:"="}),r.jsx("option",{value:">",children:">"}),r.jsx("option",{value:"<",children:"<"}),r.jsx("option",{value:"!=",children:"!="})]}),r.jsx("input",{type:"date",className:o.input,value:$[e.key]?.value||"",onChange:t=>xe(e.key,{type:"date",value:t.target.value})})]}):r.jsx("input",{type:"text",className:o.input,placeholder:"Filter...",value:$[e.key]?.value||"",onChange:t=>xe(e.key,{type:"text",value:t.target.value})})},e.key))})]}),r.jsxs("tbody",{children:[L&&de.topSpacer>0&&r.jsx("tr",{"aria-hidden":"true",children:r.jsx("td",{colSpan:I.length,style:{height:`${de.topSpacer}px`,padding:0}})}),(P?ze:L?de.rows:X).map(e=>{if(P&&e.type==="group"){const s=f.find(d=>d.key===e.groupKey)?.label||e.groupKey,a=!!ae[e.id],c=tt(e.aggregates).join(" || ");return r.jsx("tr",{className:E(o.groupRow,o.groupRowAnimated),children:r.jsx("td",{colSpan:I.length,children:r.jsxs("button",{type:"button",className:o.groupToggle,onClick:()=>yt(e.id),children:[r.jsxs("span",{style:{paddingLeft:`${e.level*18}px`},children:[a?"▶":"▼"," ",s,": ",e.groupValue," (",e.count,")"]}),c&&r.jsxs("span",{className:o.groupMeta,children:[" ",c]})]})})},e.id)}const t=P?e.row:e;return r.jsx("tr",{className:E(o.rowInteractive,P&&o.groupChildRow),tabIndex:0,children:I.map(s=>{const a=re(t,s.key);return typeof a=="boolean"?r.jsx("td",{"data-label":s.label,style:{width:he[s.key]},children:r.jsx("input",{type:"checkbox",checked:a,disabled:!0,className:o.checkbox})},s.key):J(s.key)==="date"?r.jsx("td",{"data-label":s.label,style:{width:he[s.key]},children:gt(a)},s.key):r.jsx("td",{"data-label":s.label,style:{width:he[s.key]},children:a},s.key)})},P?e.id:t[Se(x)]??t[x])}),L&&de.bottomSpacer>0&&r.jsx("tr",{"aria-hidden":"true",children:r.jsx("td",{colSpan:I.length,style:{height:`${de.bottomSpacer}px`,padding:0}})})]}),H&&Me&&Object.keys(Me).length>0&&r.jsxs("tfoot",{className:o.tfoot,children:[r.jsx("tr",{children:r.jsx("td",{colSpan:I.length,className:o.textCenter,children:"Totals"})}),r.jsx("tr",{children:I.map(e=>r.jsx("td",{"data-label":e.label,style:{width:he[e.key]},children:Me[e.key]!==void 0?ue(Me[e.key]):""},e.key))})]})]})})]}),!P&&N!==q&&Ge>1&&r.jsx("div",{className:o.paginationWrap,children:r.jsxs("ul",{className:o.pagination,children:[r.jsx("li",{children:r.jsx("button",{className:o.pageButton,disabled:Y===1,onClick:()=>M(()=>G(e=>e-1)),children:"Prev"})}),Array.from({length:Ge},(e,t)=>r.jsx("li",{children:r.jsx("button",{className:E(o.pageButton,Y===t+1&&o.pageButtonActive),onClick:()=>M(()=>G(t+1)),children:t+1})},t)),r.jsx("li",{children:r.jsx("button",{className:o.pageButton,disabled:Y===Ge,onClick:()=>M(()=>G(e=>e+1)),children:"Next"})})]})}),!P&&N===q&&r.jsxs("div",{className:o.labelMuted,children:["Showing"," ",(L?de.end:X.length).toLocaleString()," of"," ",D.length.toLocaleString()," rows",L?" (virtualized)":""]}),P&&r.jsxs("div",{className:o.labelMuted,children:["Grouped view: ",D.length.toLocaleString()," rows across"," ",T.length," level",T.length>1?"s":""]}),Ce&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:o.backdrop,onClick:()=>Re(!1)}),r.jsxs("div",{className:o.drawer,children:[r.jsx("h6",{className:o.drawerTitle,children:"Column Settings"}),r.jsx("h6",{className:o.drawerSubtitle,children:"Visible Columns"}),V.map(e=>{const t=f.find(s=>s.key===e);return t?r.jsxs("div",{className:o.drawerRow,draggable:!0,onDragStart:s=>rt(s,t.key),onDragOver:st,onDrop:s=>nt(s,t.key),children:[r.jsx("input",{type:"checkbox",className:o.checkbox,checked:W.includes(t.key),onChange:()=>M(()=>Z(s=>s.includes(t.key)?s.filter(a=>a!==t.key):[...s,t.key]))}),r.jsx("label",{children:t.label}),r.jsx("span",{className:E(o.spacerAuto,o.iconMuted),children:"⋮"})]},t.key):null}),r.jsxs("div",{className:o.drawerSection,children:[r.jsxs("button",{type:"button",className:o.sectionToggle,"aria-expanded":g.groupBy,onClick:()=>_(e=>({...e,groupBy:!e.groupBy})),children:[r.jsx("span",{children:"Group By Columns"}),r.jsx("span",{className:o.iconMuted,children:g.groupBy?"▲":"▼"})]}),g.groupBy&&r.jsx("div",{className:o.sectionBody,children:V.map(e=>{const t=f.find(s=>s.key===e);return t?r.jsxs("div",{className:o.drawerRow,children:[r.jsx("input",{type:"checkbox",className:o.checkbox,checked:T.includes(t.key),onChange:()=>bt(t.key)}),r.jsx("label",{children:t.label})]},`group-${t.key}`):null})})]}),r.jsxs("div",{className:o.drawerSection,children:[r.jsxs("button",{type:"button",className:o.sectionToggle,"aria-expanded":g.aggregates,onClick:()=>_(e=>({...e,aggregates:!e.aggregates})),children:[r.jsx("span",{children:"Show Total/Aggregate For"}),r.jsx("span",{className:o.iconMuted,children:g.aggregates?"▲":"▼"})]}),g.aggregates&&r.jsxs("div",{className:o.sectionBody,children:[Ae.length===0&&r.jsx("div",{className:o.labelMuted,children:"No numeric columns available."}),V.map(e=>{const t=Ae.find(s=>s.key===e);return t?r.jsxs("div",{className:o.drawerRow,children:[r.jsx("input",{type:"checkbox",className:o.checkbox,checked:z.includes(t.key),onChange:()=>xt(t.key)}),r.jsx("label",{children:t.label})]},`total-${t.key}`):null})]})]})]})]})]})}exports.AwesomeGrid=Wr;
24
+ ${i}`,h=new Blob([d],{type:"text/csv;charset=utf-8;"}),w=URL.createObjectURL(h),y=document.createElement("a");y.href=w,y.download="TableData.csv",document.body.appendChild(y),y.click(),document.body.removeChild(y),URL.revokeObjectURL(w)}catch(e){console.error("Failed to export CSV",e)}},rt=(e,t)=>{e.dataTransfer.setData("colKey",t)},nt=(e,t)=>{const o=e.dataTransfer.getData("colKey");!o||o===t||M(()=>{ye(a=>{const i=[...a],d=i.indexOf(o),h=i.indexOf(t);return i.splice(d,1),i.splice(h,0,o),i})})},ot=e=>e.preventDefault(),I=l.useMemo(()=>V.map(e=>f.find(t=>t.key===e)).filter(e=>e&&W.includes(e.key)),[f,V,W]),he=l.useMemo(()=>{const a="14px system-ui",i={};return I.forEach(d=>{const h=Ve(d.label,a),w=Math.min(320,Math.max($e,h+32+48));i[d.key]=Math.max($e,Te[d.key]??w)}),i},[I,Te]);l.useEffect(()=>{if(!f.length)return;const e=new Set(f.map(t=>t.key));Ee(t=>{const o={};return Object.entries(t).forEach(([a,i])=>{e.has(a)&&(o[a]=i)}),o})},[f]);const St=(e,t)=>{if(e.preventDefault(),e.stopPropagation(),e.button!==void 0&&e.button!==0)return;const o=e.clientX,a=he[t]||$e;ce.current={key:t,startX:o,startWidth:a},document.body.style.cursor="col-resize";const i=h=>{if(!ce.current)return;const w=h.clientX-ce.current.startX,y=Math.max($e,ce.current.startWidth+w);Ee(m=>({...m,[ce.current.key]:y}))},d=()=>{ce.current=null,document.body.style.cursor="",window.removeEventListener("pointermove",i),window.removeEventListener("pointerup",d)};window.addEventListener("pointermove",i),window.addEventListener("pointerup",d)},Nt=(e,t)=>{e.preventDefault(),e.stopPropagation(),Ee(o=>{const a={...o};return delete a[t],a})},jt=ge||dt,Ct=n==="dark"?s.themeDark:n==="purple"?s.themePurple:s.themeLight;return l.useLayoutEffect(()=>{const e=()=>{mt(Ue.current?.offsetHeight||0)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[I.length]),l.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const e=window.matchMedia("(max-width: 767.98px)"),t=o=>qe(o.matches);return qe(e.matches),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]),r.jsxs("div",{className:E(s.container,Ct),children:[r.jsxs("div",{className:s.headerRow,children:[r.jsxs("div",{className:E(s.flexRow,s.toolbarGroup),children:[r.jsx("label",{className:s.labelMuted,children:"Rows:"}),r.jsx("select",{className:E(s.selectSmall,s.selectAuto),value:N,onChange:e=>M(()=>{_e(Number(e.target.value)),G(1)}),children:Q.map(e=>r.jsx("option",{value:e,children:e===q?"All":e},e))}),r.jsxs("div",{className:s.switchRow,children:[r.jsx("input",{className:s.checkbox,type:"checkbox",checked:H,onChange:e=>M(()=>je(e.target.checked))}),r.jsx("label",{className:s.labelMuted,children:"Show Totals"})]}),r.jsxs("div",{className:s.groupingSummary,children:[r.jsxs("span",{className:s.labelMuted,children:["Group By:"," ",T.length?T.map(e=>f.find(t=>t.key===e)?.label||e).join(" > "):"None"]}),T.length>0&&r.jsx("button",{className:E(s.buttonBase,s.buttonMuted),onClick:()=>{M(()=>{ee([]),le({})})},children:"Clear Groups"})]})]}),r.jsxs("div",{className:E(s.flexRow,s.toolbarGroup),children:[r.jsxs("button",{className:E(s.buttonBase,s.buttonDanger),disabled:!Object.values($).some(e=>e?.value),onClick:wt,children:["✕"," ","Clear Filters"]}),r.jsx(ct,{label:r.jsxs(r.Fragment,{children:["⬇"," Export"]}),children:r.jsx("li",{children:r.jsx("button",{className:s.menuItemButton,onClick:kt,children:"Export to CSV"})})}),r.jsxs("button",{className:E(s.buttonBase,s.buttonMuted),onClick:()=>Re(!0),children:["☰"," ","Columns"]}),r.jsxs(ct,{label:r.jsxs(r.Fragment,{children:["▣"," Theme"]}),children:[r.jsx("li",{children:r.jsxs("button",{className:s.menuItemButton,onClick:()=>c("light"),children:[n==="light"?"✓ ":"","Light"]})}),r.jsx("li",{children:r.jsxs("button",{className:s.menuItemButton,onClick:()=>c("dark"),children:[n==="dark"?"✓ ":"","Dark"]})}),r.jsx("li",{children:r.jsxs("button",{className:s.menuItemButton,onClick:()=>c("purple"),children:[n==="purple"?"✓ ":"","Purple"]})})]})]})]}),r.jsxs("div",{className:s.relative,children:[r.jsx("div",{className:s.srOnly,"aria-live":"polite",children:ge?"Loading table data":"Table updated"}),jt&&r.jsx("div",{className:s.overlay,children:r.jsxs("div",{className:s.overlayInner,style:{top:"15%"},children:[r.jsx("div",{className:s.spinner,role:"status"}),r.jsx("div",{className:s.labelMuted,children:ge?"Loading data...":"Updating..."})]})}),r.jsx("div",{className:E(s.tableWrap,N===q&&s.tableWrapAll),ref:Oe,style:N===q?{maxHeight:"70vh",overflowY:"auto"}:{},onScroll:vt,children:r.jsxs("table",{className:s.table,style:{tableLayout:"fixed"},role:"grid","aria-rowcount":P?ze.length:X.length,"aria-colcount":I.length,children:[r.jsxs("thead",{className:s.tableHead,children:[r.jsx("tr",{ref:Ue,children:I.map(e=>{const t=j.key===e.key,o=t?j.direction==="asc"?"↑":"↓":"⇅";return r.jsxs("th",{scope:"col","aria-sort":t?j.direction==="asc"?"ascending":"descending":"none",draggable:!0,onDragStart:a=>rt(a,e.key),onDragOver:ot,onDrop:a=>nt(a,e.key),style:{width:he[e.key]},className:s.thCellTop,children:[r.jsx("div",{className:s.thInner,children:r.jsxs("button",{type:"button",className:s.sortButton,"aria-label":`Sort by ${e.label}`,onClick:()=>_t(e.key),children:[e.label,r.jsxs("span",{className:s.iconMuted,children:[" ",o]})]})}),r.jsx("span",{className:s.resizeHandle,role:"separator","aria-orientation":"vertical","aria-label":`Resize ${e.label} column`,tabIndex:0,onPointerDown:a=>St(a,e.key),onDoubleClick:a=>Nt(a,e.key)})]},e.key)})}),r.jsx("tr",{children:I.map(e=>r.jsx("th",{style:{top:ht},className:s.thCellFilter,children:J(e.key)==="number"?r.jsxs("div",{className:s.inlineGroup,children:[r.jsxs("select",{className:E(s.selectSmall,s.selectAuto),value:$[e.key]?.op||"=",onChange:t=>xe(e.key,{type:"number",op:t.target.value}),children:[r.jsx("option",{value:"=",children:"="}),r.jsx("option",{value:">",children:">"}),r.jsx("option",{value:"<",children:"<"}),r.jsx("option",{value:"!=",children:"!="})]}),r.jsx("input",{type:"number",className:s.input,value:$[e.key]?.value||"",onChange:t=>xe(e.key,{type:"number",value:t.target.value})})]}):J(e.key)==="date"?r.jsxs("div",{className:s.inlineGroup,children:[r.jsxs("select",{className:E(s.selectSmall,s.selectAuto),value:$[e.key]?.op||"=",onChange:t=>xe(e.key,{type:"date",op:t.target.value}),children:[r.jsx("option",{value:"=",children:"="}),r.jsx("option",{value:">",children:">"}),r.jsx("option",{value:"<",children:"<"}),r.jsx("option",{value:"!=",children:"!="})]}),r.jsx("input",{type:"date",className:s.input,value:$[e.key]?.value||"",onChange:t=>xe(e.key,{type:"date",value:t.target.value})})]}):r.jsx("input",{type:"text",className:s.input,placeholder:"Filter...",value:$[e.key]?.value||"",onChange:t=>xe(e.key,{type:"text",value:t.target.value})})},e.key))})]}),r.jsxs("tbody",{children:[L&&de.topSpacer>0&&r.jsx("tr",{"aria-hidden":"true",children:r.jsx("td",{colSpan:I.length,style:{height:`${de.topSpacer}px`,padding:0}})}),(P?ze:L?de.rows:X).map(e=>{if(P&&e.type==="group"){const o=f.find(d=>d.key===e.groupKey)?.label||e.groupKey,a=!!ae[e.id],i=tt(e.aggregates).join(" || ");return r.jsx("tr",{className:E(s.groupRow,s.groupRowAnimated),children:r.jsx("td",{colSpan:I.length,children:r.jsxs("button",{type:"button",className:s.groupToggle,onClick:()=>yt(e.id),children:[r.jsxs("span",{style:{paddingLeft:`${e.level*18}px`},children:[a?"▶":"▼"," ",o,": ",e.groupValue," (",e.count,")"]}),i&&r.jsxs("span",{className:s.groupMeta,children:[" ",i]})]})})},e.id)}const t=P?e.row:e;return r.jsx("tr",{className:E(s.rowInteractive,P&&s.groupChildRow),tabIndex:0,children:I.map(o=>{const a=re(t,o.key);return typeof a=="boolean"?r.jsx("td",{"data-label":o.label,style:{width:he[o.key]},children:r.jsx("input",{type:"checkbox",checked:a,disabled:!0,className:s.checkbox})},o.key):J(o.key)==="date"?r.jsx("td",{"data-label":o.label,style:{width:he[o.key]},children:gt(a)},o.key):r.jsx("td",{"data-label":o.label,style:{width:he[o.key]},children:a},o.key)})},P?e.id:t[Se(x)]??t[x])}),L&&de.bottomSpacer>0&&r.jsx("tr",{"aria-hidden":"true",children:r.jsx("td",{colSpan:I.length,style:{height:`${de.bottomSpacer}px`,padding:0}})})]}),H&&Me&&Object.keys(Me).length>0&&r.jsxs("tfoot",{className:s.tfoot,children:[r.jsx("tr",{children:r.jsx("td",{colSpan:I.length,className:s.textCenter,children:"Totals"})}),r.jsx("tr",{children:I.map(e=>r.jsx("td",{"data-label":e.label,style:{width:he[e.key]},children:Me[e.key]!==void 0?ue(Me[e.key]):""},e.key))})]})]})})]}),!P&&N!==q&&Ge>1&&r.jsx("div",{className:s.paginationWrap,children:r.jsxs("ul",{className:s.pagination,children:[r.jsx("li",{children:r.jsx("button",{className:s.pageButton,disabled:Y===1,onClick:()=>M(()=>G(e=>e-1)),children:"Prev"})}),Array.from({length:Ge},(e,t)=>r.jsx("li",{children:r.jsx("button",{className:E(s.pageButton,Y===t+1&&s.pageButtonActive),onClick:()=>M(()=>G(t+1)),children:t+1})},t)),r.jsx("li",{children:r.jsx("button",{className:s.pageButton,disabled:Y===Ge,onClick:()=>M(()=>G(e=>e+1)),children:"Next"})})]})}),!P&&N===q&&r.jsxs("div",{className:s.labelMuted,children:["Showing"," ",(L?de.end:X.length).toLocaleString()," of"," ",D.length.toLocaleString()," rows",L?" (virtualized)":""]}),P&&r.jsxs("div",{className:s.labelMuted,children:["Grouped view: ",D.length.toLocaleString()," rows across"," ",T.length," level",T.length>1?"s":""]}),Ce&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:s.backdrop,onClick:()=>Re(!1)}),r.jsxs("div",{className:s.drawer,children:[r.jsx("h6",{className:s.drawerTitle,children:"Column Settings"}),r.jsx("h6",{className:s.drawerSubtitle,children:"Visible Columns"}),V.map(e=>{const t=f.find(o=>o.key===e);return t?r.jsxs("div",{className:s.drawerRow,draggable:!0,onDragStart:o=>rt(o,t.key),onDragOver:ot,onDrop:o=>nt(o,t.key),children:[r.jsx("input",{type:"checkbox",className:s.checkbox,checked:W.includes(t.key),onChange:()=>M(()=>Z(o=>o.includes(t.key)?o.filter(a=>a!==t.key):[...o,t.key]))}),r.jsx("label",{children:t.label}),r.jsx("span",{className:E(s.spacerAuto,s.iconMuted),children:"⋮"})]},t.key):null}),r.jsxs("div",{className:s.drawerSection,children:[r.jsxs("button",{type:"button",className:s.sectionToggle,"aria-expanded":g.groupBy,onClick:()=>_(e=>({...e,groupBy:!e.groupBy})),children:[r.jsx("span",{children:"Group By Columns"}),r.jsx("span",{className:s.iconMuted,children:g.groupBy?"▲":"▼"})]}),g.groupBy&&r.jsx("div",{className:s.sectionBody,children:V.map(e=>{const t=f.find(o=>o.key===e);return t?r.jsxs("div",{className:s.drawerRow,children:[r.jsx("input",{type:"checkbox",className:s.checkbox,checked:T.includes(t.key),onChange:()=>bt(t.key)}),r.jsx("label",{children:t.label})]},`group-${t.key}`):null})})]}),r.jsxs("div",{className:s.drawerSection,children:[r.jsxs("button",{type:"button",className:s.sectionToggle,"aria-expanded":g.aggregates,onClick:()=>_(e=>({...e,aggregates:!e.aggregates})),children:[r.jsx("span",{children:"Show Total/Aggregate For"}),r.jsx("span",{className:s.iconMuted,children:g.aggregates?"▲":"▼"})]}),g.aggregates&&r.jsxs("div",{className:s.sectionBody,children:[Ae.length===0&&r.jsx("div",{className:s.labelMuted,children:"No numeric columns available."}),V.map(e=>{const t=Ae.find(o=>o.key===e);return t?r.jsxs("div",{className:s.drawerRow,children:[r.jsx("input",{type:"checkbox",className:s.checkbox,checked:z.includes(t.key),onChange:()=>xt(t.key)}),r.jsx("label",{children:t.label})]},`total-${t.key}`):null})]})]})]})]})]})}exports.AwesomeGrid=Br;
package/dist-lib/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import Mt, { useRef as ae, useState as y, useDeferredValue as Dt, useTransition as Pt, useMemo as H, useEffect as $, useCallback as _e, useLayoutEffect as ut } from "react";
1
+ import Mt, { useRef as ae, useState as y, useDeferredValue as Dt, useTransition as Pt, useMemo as H, useEffect as $, useCallback as we, useLayoutEffect as ut } from "react";
2
2
  var Be = { exports: {} }, Se = {};
3
3
  /**
4
4
  * @license React
@@ -99,11 +99,11 @@ function $t() {
99
99
  }
100
100
  if (i) {
101
101
  i = console;
102
- var g = i.error, _ = typeof Symbol == "function" && Symbol.toStringTag && n[Symbol.toStringTag] || n.constructor.name || "Object";
102
+ var g = i.error, w = typeof Symbol == "function" && Symbol.toStringTag && n[Symbol.toStringTag] || n.constructor.name || "Object";
103
103
  return g.call(
104
104
  i,
105
105
  "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
106
- _
106
+ w
107
107
  ), x(n);
108
108
  }
109
109
  }
@@ -144,23 +144,23 @@ function $t() {
144
144
  configurable: !0
145
145
  });
146
146
  }
147
- function we() {
147
+ function _e() {
148
148
  var n = c(this.type);
149
149
  return ce[n] || (ce[n] = !0, console.error(
150
150
  "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
151
151
  )), n = this.props.ref, n !== void 0 ? n : null;
152
152
  }
153
- function se(n, i, g, _, L, de) {
154
- var w = g.ref;
153
+ function se(n, i, g, w, L, de) {
154
+ var _ = g.ref;
155
155
  return n = {
156
156
  $$typeof: Ee,
157
157
  type: n,
158
158
  key: i,
159
159
  props: g,
160
- _owner: _
161
- }, (w !== void 0 ? w : null) !== null ? Object.defineProperty(n, "ref", {
160
+ _owner: w
161
+ }, (_ !== void 0 ? _ : null) !== null ? Object.defineProperty(n, "ref", {
162
162
  enumerable: !1,
163
- get: we
163
+ get: _e
164
164
  }) : Object.defineProperty(n, "ref", { enumerable: !1, value: null }), n._store = {}, Object.defineProperty(n._store, "validated", {
165
165
  configurable: !1,
166
166
  enumerable: !1,
@@ -183,48 +183,48 @@ function $t() {
183
183
  value: de
184
184
  }), Object.freeze && (Object.freeze(n.props), Object.freeze(n)), n;
185
185
  }
186
- function Q(n, i, g, _, L, de) {
187
- var w = i.children;
188
- if (w !== void 0)
189
- if (_)
190
- if (Ae(w)) {
191
- for (_ = 0; _ < w.length; _++)
192
- le(w[_]);
193
- Object.freeze && Object.freeze(w);
186
+ function Q(n, i, g, w, L, de) {
187
+ var _ = i.children;
188
+ if (_ !== void 0)
189
+ if (w)
190
+ if (Ae(_)) {
191
+ for (w = 0; w < _.length; w++)
192
+ le(_[w]);
193
+ Object.freeze && Object.freeze(_);
194
194
  } else
195
195
  console.error(
196
196
  "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
197
197
  );
198
- else le(w);
198
+ else le(_);
199
199
  if (Oe.call(i, "key")) {
200
- w = c(n);
200
+ _ = c(n);
201
201
  var S = Object.keys(i).filter(function(U) {
202
202
  return U !== "key";
203
203
  });
204
- _ = 0 < S.length ? "{key: someKey, " + S.join(": ..., ") + ": ...}" : "{key: someKey}", ne[w + _] || (S = 0 < S.length ? "{" + S.join(": ..., ") + ": ...}" : "{}", console.error(
204
+ w = 0 < S.length ? "{key: someKey, " + S.join(": ..., ") + ": ...}" : "{key: someKey}", ne[_ + w] || (S = 0 < S.length ? "{" + S.join(": ..., ") + ": ...}" : "{}", console.error(
205
205
  `A props object containing a "key" prop is being spread into JSX:
206
206
  let props = %s;
207
207
  <%s {...props} />
208
208
  React keys must be passed directly to JSX without using spread:
209
209
  let props = %s;
210
210
  <%s key={someKey} {...props} />`,
211
- _,
212
211
  w,
212
+ _,
213
213
  S,
214
- w
215
- ), ne[w + _] = !0);
214
+ _
215
+ ), ne[_ + w] = !0);
216
216
  }
217
- if (w = null, g !== void 0 && (v(g), w = "" + g), z(i) && (v(i.key), w = "" + i.key), "key" in i) {
217
+ if (_ = null, g !== void 0 && (v(g), _ = "" + g), z(i) && (v(i.key), _ = "" + i.key), "key" in i) {
218
218
  g = {};
219
219
  for (var ke in i)
220
220
  ke !== "key" && (g[ke] = i[ke]);
221
221
  } else g = i;
222
- return w && Y(
222
+ return _ && Y(
223
223
  g,
224
224
  typeof n == "function" ? n.displayName || n.name || "Unknown" : n
225
225
  ), se(
226
226
  n,
227
- w,
227
+ _,
228
228
  g,
229
229
  k(),
230
230
  L,
@@ -250,24 +250,24 @@ React keys must be passed directly to JSX without using spread:
250
250
  N
251
251
  )(), V = T(O(N)), ne = {};
252
252
  Ce.Fragment = be, Ce.jsx = function(n, i, g) {
253
- var _ = 1e4 > ve.recentlyCreatedOwnerStacks++;
253
+ var w = 1e4 > ve.recentlyCreatedOwnerStacks++;
254
254
  return Q(
255
255
  n,
256
256
  i,
257
257
  g,
258
258
  !1,
259
- _ ? Error("react-stack-top-frame") : ue,
260
- _ ? T(O(n)) : V
259
+ w ? Error("react-stack-top-frame") : ue,
260
+ w ? T(O(n)) : V
261
261
  );
262
262
  }, Ce.jsxs = function(n, i, g) {
263
- var _ = 1e4 > ve.recentlyCreatedOwnerStacks++;
263
+ var w = 1e4 > ve.recentlyCreatedOwnerStacks++;
264
264
  return Q(
265
265
  n,
266
266
  i,
267
267
  g,
268
268
  !0,
269
- _ ? Error("react-stack-top-frame") : ue,
270
- _ ? T(O(n)) : V
269
+ w ? Error("react-stack-top-frame") : ue,
270
+ w ? T(O(n)) : V
271
271
  );
272
272
  };
273
273
  })()), Ce;
@@ -277,7 +277,7 @@ function Lt() {
277
277
  return mt || (mt = 1, process.env.NODE_ENV === "production" ? Be.exports = It() : Be.exports = $t()), Be.exports;
278
278
  }
279
279
  var r = Lt();
280
- const Bt = "_container_dihwe_1", Wt = "_themeLight_dihwe_10", Ft = "_themeDark_dihwe_29", zt = "_themePurple_dihwe_48", Gt = "_headerRow_dihwe_67", Vt = "_flexRow_dihwe_76", Ut = "_toolbarGroup_dihwe_82", Ht = "_dropdown_dihwe_86", Yt = "_buttonBase_dihwe_90", Jt = "_buttonPrimary_dihwe_101", Xt = "_buttonDanger_dihwe_111", qt = "_buttonMuted_dihwe_121", Kt = "_dropdownToggle_dihwe_142", Zt = "_dropdownMenu_dihwe_147", Qt = "_dropdownMenuOpen_dihwe_163", er = "_menuItemButton_dihwe_167", tr = "_labelMuted_dihwe_185", rr = "_selectSmall_dihwe_190", nr = "_selectAuto_dihwe_199", or = "_switchRow_dihwe_203", ar = "_groupingSummary_dihwe_210", sr = "_relative_dihwe_217", lr = "_overlay_dihwe_221", ir = "_overlayInner_dihwe_229", cr = "_spinner_dihwe_236", ur = "_tableWrap_dihwe_252", dr = "_tableWrapAll_dihwe_256", hr = "_table_dihwe_252", mr = "_tableHead_dihwe_278", pr = "_thCellTop_dihwe_282", gr = "_thCellFilter_dihwe_290", fr = "_thInner_dihwe_297", _r = "_resizeHandle_dihwe_303", wr = "_sortButton_dihwe_328", br = "_iconMuted_dihwe_338", yr = "_inlineGroup_dihwe_342", xr = "_input_dihwe_350", vr = "_rowInteractive_dihwe_362", kr = "_groupRow_dihwe_375", Nr = "_groupRowAnimated_dihwe_382", jr = "_groupChildRow_dihwe_386", Sr = "_groupToggle_dihwe_390", Cr = "_groupMeta_dihwe_430", Rr = "_checkbox_dihwe_438", Tr = "_tfoot_dihwe_447", Er = "_textCenter_dihwe_455", Or = "_paginationWrap_dihwe_459", Ar = "_pagination_dihwe_459", Mr = "_pageButton_dihwe_473", Dr = "_pageButtonActive_dihwe_488", Pr = "_backdrop_dihwe_494", Ir = "_drawer_dihwe_500", $r = "_drawerTitle_dihwe_515", Lr = "_drawerSection_dihwe_521", Br = "_drawerSubtitle_dihwe_527", Wr = "_sectionToggle_dihwe_534", Fr = "_sectionBody_dihwe_547", zr = "_drawerRow_dihwe_551", Gr = "_spacerAuto_dihwe_558", Vr = "_successText_dihwe_562", Ur = "_srOnly_dihwe_570", a = {
280
+ const Bt = "_container_dihwe_1", Wt = "_themeLight_dihwe_10", Ft = "_themeDark_dihwe_29", zt = "_themePurple_dihwe_48", Gt = "_headerRow_dihwe_67", Vt = "_flexRow_dihwe_76", Ut = "_toolbarGroup_dihwe_82", Ht = "_dropdown_dihwe_86", Yt = "_buttonBase_dihwe_90", Jt = "_buttonPrimary_dihwe_101", Xt = "_buttonDanger_dihwe_111", qt = "_buttonMuted_dihwe_121", Kt = "_dropdownToggle_dihwe_142", Zt = "_dropdownMenu_dihwe_147", Qt = "_dropdownMenuOpen_dihwe_163", er = "_menuItemButton_dihwe_167", tr = "_labelMuted_dihwe_185", rr = "_selectSmall_dihwe_190", nr = "_selectAuto_dihwe_199", or = "_switchRow_dihwe_203", ar = "_groupingSummary_dihwe_210", sr = "_relative_dihwe_217", lr = "_overlay_dihwe_221", ir = "_overlayInner_dihwe_229", cr = "_spinner_dihwe_236", ur = "_tableWrap_dihwe_252", dr = "_tableWrapAll_dihwe_256", hr = "_table_dihwe_252", mr = "_tableHead_dihwe_278", pr = "_thCellTop_dihwe_282", gr = "_thCellFilter_dihwe_290", fr = "_thInner_dihwe_297", wr = "_resizeHandle_dihwe_303", _r = "_sortButton_dihwe_328", br = "_iconMuted_dihwe_338", yr = "_inlineGroup_dihwe_342", xr = "_input_dihwe_350", vr = "_rowInteractive_dihwe_362", kr = "_groupRow_dihwe_375", Nr = "_groupRowAnimated_dihwe_382", jr = "_groupChildRow_dihwe_386", Sr = "_groupToggle_dihwe_390", Cr = "_groupMeta_dihwe_430", Rr = "_checkbox_dihwe_438", Tr = "_tfoot_dihwe_447", Er = "_textCenter_dihwe_455", Or = "_paginationWrap_dihwe_459", Ar = "_pagination_dihwe_459", Mr = "_pageButton_dihwe_473", Dr = "_pageButtonActive_dihwe_488", Pr = "_backdrop_dihwe_494", Ir = "_drawer_dihwe_500", $r = "_drawerTitle_dihwe_515", Lr = "_drawerSection_dihwe_521", Br = "_drawerSubtitle_dihwe_527", Wr = "_sectionToggle_dihwe_534", Fr = "_sectionBody_dihwe_547", zr = "_drawerRow_dihwe_551", Gr = "_spacerAuto_dihwe_558", Vr = "_srOnly_dihwe_570", a = {
281
281
  container: Bt,
282
282
  themeLight: Wt,
283
283
  themeDark: Ft,
@@ -310,8 +310,8 @@ const Bt = "_container_dihwe_1", Wt = "_themeLight_dihwe_10", Ft = "_themeDark_d
310
310
  thCellTop: pr,
311
311
  thCellFilter: gr,
312
312
  thInner: fr,
313
- resizeHandle: _r,
314
- sortButton: wr,
313
+ resizeHandle: wr,
314
+ sortButton: _r,
315
315
  iconMuted: br,
316
316
  inlineGroup: yr,
317
317
  input: xr,
@@ -337,8 +337,7 @@ const Bt = "_container_dihwe_1", Wt = "_themeLight_dihwe_10", Ft = "_themeDark_d
337
337
  sectionBody: Fr,
338
338
  drawerRow: zr,
339
339
  spacerAuto: Gr,
340
- successText: Vr,
341
- srOnly: Ur
340
+ srOnly: Vr
342
341
  }, E = (...c) => c.filter(Boolean).join(" ");
343
342
  function pt({ label: c, children: x }) {
344
343
  const [v, O] = y(!1), k = ae(null);
@@ -377,18 +376,18 @@ function pt({ label: c, children: x }) {
377
376
  const Je = (c, x = "14px system-ui") => {
378
377
  const O = (Je.canvas || (Je.canvas = document.createElement("canvas"))).getContext("2d");
379
378
  return O.font = x, O.measureText(c).width;
380
- }, Re = (c) => c.toLowerCase().replace(/[_\s]+(.)?/g, (x, v) => v ? v.toUpperCase() : "").replace(/^(.)/, (x) => x.toLowerCase()), Hr = (c) => {
379
+ }, Re = (c) => c.toLowerCase().replace(/[_\s]+(.)?/g, (x, v) => v ? v.toUpperCase() : "").replace(/^(.)/, (x) => x.toLowerCase()), Ur = (c) => {
381
380
  if (!c || typeof c != "object") return c;
382
381
  const x = {};
383
382
  return Object.keys(c).forEach((v) => {
384
383
  x[Re(v)] = c[v];
385
384
  }), x;
386
- }, K = 0, We = 38, gt = 10, Yr = [], Fe = 80;
387
- function Xr({
385
+ }, K = 0, We = 38, gt = 10, Hr = [], Fe = 80;
386
+ function Jr({
388
387
  apiEndpoint: c,
389
388
  rowKey: x,
390
389
  theme: v = "light",
391
- computedColumns: O = Yr,
390
+ computedColumns: O = Hr,
392
391
  currency: k = "INR",
393
392
  dateFormat: N = {
394
393
  locale: "en-US",
@@ -396,15 +395,15 @@ function Xr({
396
395
  },
397
396
  dateSeparator: z = "/",
398
397
  pageSizeOptions: Y = [50, 100, 500, 1e3, 0],
399
- defaultPageSize: we
398
+ defaultPageSize: _e
400
399
  }) {
401
- const se = ae(!1), Q = ae(!1), le = ae(!1), Te = 50, [J, Ee] = y(!0), [ie, be] = y([]), [p, ze] = y([]), [F, ee] = y([]), [ye, xe] = y(!1), [X, G] = y(1), te = Array.isArray(Y) && Y.length > 0 ? Y : [50, 100, 500, 1e3, 0], Ge = we !== void 0 && te.includes(we) ? we : te[0] || 50, [j, ve] = y(Ge), [Oe, Ae] = y(!1), [T, re] = y([]), [ce, ue] = y({}), [V, ne] = y([]), [n, i] = y(() => {
400
+ const se = ae(!1), Q = ae(!1), le = ae(!1), Te = 50, [J, Ee] = y(!0), [ie, be] = y([]), [p, ze] = y([]), [F, ee] = y([]), [ye, xe] = y(!1), [X, G] = y(1), te = Array.isArray(Y) && Y.length > 0 ? Y : [50, 100, 500, 1e3, 0], Ge = _e !== void 0 && te.includes(_e) ? _e : te[0] || 50, [j, ve] = y(Ge), [Oe, Ae] = y(!1), [T, re] = y([]), [ce, ue] = y({}), [V, ne] = y([]), [n, i] = y(() => {
402
401
  const e = String(v || "light").toLowerCase();
403
402
  return e === "dark" || e === "purple" ? e : "light";
404
- }), [g, _] = y({
403
+ }), [g, w] = y({
405
404
  groupBy: !1,
406
405
  aggregates: !1
407
- }), [L, de] = y({}), w = Dt(L), [S, ke] = y({ key: null, direction: "asc" }), [U, Ne] = y([]), [Me, De] = y({}), [ft, M] = Pt(), Xe = ae(null), [_t, wt] = y(0), Pe = ae(null), [qe, Ke] = y(0), [Ze, bt] = y(0), he = ae(null), [yt, Qe] = y(() => typeof window > "u" || typeof window.matchMedia != "function" ? !1 : window.matchMedia("(max-width: 767.98px)").matches), Ve = String(k || "INR").toUpperCase() === "USD" ? "USD" : "INR", et = Ve === "USD" ? "en-US" : "en-IN", tt = N?.locale || "en-US", rt = H(
406
+ }), [L, de] = y({}), _ = Dt(L), [S, ke] = y({ key: null, direction: "asc" }), [U, Ne] = y([]), [Me, De] = y({}), [ft, M] = Pt(), Xe = ae(null), [wt, _t] = y(0), Pe = ae(null), [qe, Ke] = y(0), [Ze, bt] = y(0), he = ae(null), [yt, Qe] = y(() => typeof window > "u" || typeof window.matchMedia != "function" ? !1 : window.matchMedia("(max-width: 767.98px)").matches), Ve = String(k || "INR").toUpperCase() === "USD" ? "USD" : "INR", et = Ve === "USD" ? "en-US" : "en-IN", tt = N?.locale || "en-US", rt = H(
408
407
  () => N?.options || {
409
408
  year: "numeric",
410
409
  month: "2-digit",
@@ -430,7 +429,7 @@ function Xr({
430
429
  throw new Error(`Request failed: ${s.status} ${s.statusText}`);
431
430
  const l = await s.json();
432
431
  if (!e) return;
433
- const d = (Array.isArray(l?.data) ? l.data : []).map((m) => Hr(m)), f = l?.columns || [], b = O.filter((m) => m && m.key && typeof m.formula == "function").map((m) => ({
432
+ const d = (Array.isArray(l?.data) ? l.data : []).map((m) => Ur(m)), f = l?.columns || [], b = O.filter((m) => m && m.key && typeof m.formula == "function").map((m) => ({
434
433
  key: Re(m.key),
435
434
  label: m.label || m.key,
436
435
  formula: m.formula
@@ -528,7 +527,7 @@ function Xr({
528
527
  n,
529
528
  Me
530
529
  ]);
531
- const oe = (e, t) => e[t] ?? "", me = _e(
530
+ const oe = (e, t) => e[t] ?? "", me = we(
532
531
  (e) => {
533
532
  const t = Number(e);
534
533
  return Number.isNaN(t) ? "" : new Intl.NumberFormat(et, {
@@ -538,13 +537,13 @@ function Xr({
538
537
  }).format(t);
539
538
  },
540
539
  [et, Ve]
541
- ), xt = _e(
540
+ ), xt = we(
542
541
  (e) => {
543
542
  const t = new Date(e);
544
543
  return Number.isNaN(t.getTime()) ? e ?? "" : new Intl.DateTimeFormat(tt, rt).formatToParts(t).filter((s) => s.type === "year" || s.type === "month" || s.type === "day").map((s) => s.value).join(z);
545
544
  },
546
545
  [tt, rt, z]
547
- ), q = _e(
546
+ ), q = we(
548
547
  (e) => {
549
548
  const t = ie[0]?.[e];
550
549
  return t == null ? "text" : isNaN(Number(t)) ? isNaN(Date.parse(t)) ? "text" : "date" : "number";
@@ -580,7 +579,7 @@ function Xr({
580
579
  de({}), G(1);
581
580
  });
582
581
  }, Ue = H(() => ie.filter(
583
- (e) => Object.entries(w).every(([t, o]) => {
582
+ (e) => Object.entries(_).every(([t, o]) => {
584
583
  if (!(o?.value !== void 0 && o?.value !== null && String(o.value).trim() !== "")) return !0;
585
584
  const l = oe(e, t);
586
585
  if (o.type === "number") {
@@ -593,7 +592,7 @@ function Xr({
593
592
  }
594
593
  return String(l).toLowerCase().includes(String(o.value).toLowerCase());
595
594
  })
596
- ), [ie, w]), kt = (e) => {
595
+ ), [ie, _]), kt = (e) => {
597
596
  M(() => {
598
597
  ke((t) => ({
599
598
  key: e,
@@ -637,7 +636,7 @@ function Xr({
637
636
  (t) => t.includes(e) ? t.filter((o) => o !== e) : [...t, e]
638
637
  );
639
638
  });
640
- }, ot = _e(
639
+ }, ot = we(
641
640
  (e) => {
642
641
  const t = {};
643
642
  return V.forEach((o) => {
@@ -695,7 +694,7 @@ function Xr({
695
694
  ce,
696
695
  ot,
697
696
  x
698
- ]), Ct = _e(
697
+ ]), Ct = we(
699
698
  (e) => {
700
699
  B && Ke(e.currentTarget.scrollTop);
701
700
  },
@@ -733,7 +732,7 @@ function Xr({
733
732
  topSpacer: o * We,
734
733
  bottomSpacer: Math.max(0, (e - s) * We)
735
734
  };
736
- }, [B, Z, qe, Ze]), at = _e(
735
+ }, [B, Z, qe, Ze]), at = we(
737
736
  (e) => Object.entries(e || {}).map(([t, o]) => `${p.find((l) => l.key === t)?.label || t}: Σ ${me(o.sum)} | Avg ${me(o.avg)} | Min ${me(o.min)} | Max ${me(o.max)}`),
738
737
  [p, me]
739
738
  ), Rt = () => {
@@ -831,7 +830,7 @@ ${l}`, d = new Blob([u], { type: "text/csv;charset=utf-8;" }), f = URL.createObj
831
830
  }, Ot = ye || ft, At = n === "dark" ? a.themeDark : n === "purple" ? a.themePurple : a.themeLight;
832
831
  return ut(() => {
833
832
  const e = () => {
834
- wt(Xe.current?.offsetHeight || 0);
833
+ _t(Xe.current?.offsetHeight || 0);
835
834
  };
836
835
  return e(), window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
837
836
  }, [I.length]), $(() => {
@@ -906,10 +905,7 @@ ${l}`, d = new Blob([u], { type: "text/csv;charset=utf-8;" }), f = URL.createObj
906
905
  "⬇",
907
906
  " Export"
908
907
  ] }),
909
- children: /* @__PURE__ */ r.jsx("li", { children: /* @__PURE__ */ r.jsxs("button", { className: a.menuItemButton, onClick: Rt, children: [
910
- /* @__PURE__ */ r.jsx("span", { className: a.successText, children: "CSV" }),
911
- " Export to CSV"
912
- ] }) })
908
+ children: /* @__PURE__ */ r.jsx("li", { children: /* @__PURE__ */ r.jsx("button", { className: a.menuItemButton, onClick: Rt, children: "Export to CSV" }) })
913
909
  }
914
910
  ),
915
911
  /* @__PURE__ */ r.jsxs(
@@ -932,28 +928,37 @@ ${l}`, d = new Blob([u], { type: "text/csv;charset=utf-8;" }), f = URL.createObj
932
928
  " Theme"
933
929
  ] }),
934
930
  children: [
935
- /* @__PURE__ */ r.jsx("li", { children: /* @__PURE__ */ r.jsx(
931
+ /* @__PURE__ */ r.jsx("li", { children: /* @__PURE__ */ r.jsxs(
936
932
  "button",
937
933
  {
938
934
  className: a.menuItemButton,
939
935
  onClick: () => i("light"),
940
- children: "Light"
936
+ children: [
937
+ n === "light" ? "✓ " : "",
938
+ "Light"
939
+ ]
941
940
  }
942
941
  ) }),
943
- /* @__PURE__ */ r.jsx("li", { children: /* @__PURE__ */ r.jsx(
942
+ /* @__PURE__ */ r.jsx("li", { children: /* @__PURE__ */ r.jsxs(
944
943
  "button",
945
944
  {
946
945
  className: a.menuItemButton,
947
946
  onClick: () => i("dark"),
948
- children: "Dark"
947
+ children: [
948
+ n === "dark" ? "✓ " : "",
949
+ "Dark"
950
+ ]
949
951
  }
950
952
  ) }),
951
- /* @__PURE__ */ r.jsx("li", { children: /* @__PURE__ */ r.jsx(
953
+ /* @__PURE__ */ r.jsx("li", { children: /* @__PURE__ */ r.jsxs(
952
954
  "button",
953
955
  {
954
956
  className: a.menuItemButton,
955
957
  onClick: () => i("purple"),
956
- children: "Purple"
958
+ children: [
959
+ n === "purple" ? "✓ " : "",
960
+ "Purple"
961
+ ]
957
962
  }
958
963
  ) })
959
964
  ]
@@ -1047,7 +1052,7 @@ ${l}`, d = new Blob([u], { type: "text/csv;charset=utf-8;" }), f = URL.createObj
1047
1052
  "th",
1048
1053
  {
1049
1054
  style: {
1050
- top: _t
1055
+ top: wt
1051
1056
  },
1052
1057
  className: a.thCellFilter,
1053
1058
  children: q(e.key) === "number" ? /* @__PURE__ */ r.jsxs("div", { className: a.inlineGroup, children: [
@@ -1331,7 +1336,7 @@ ${l}`, d = new Blob([u], { type: "text/csv;charset=utf-8;" }), f = URL.createObj
1331
1336
  type: "button",
1332
1337
  className: a.sectionToggle,
1333
1338
  "aria-expanded": g.groupBy,
1334
- onClick: () => _((e) => ({
1339
+ onClick: () => w((e) => ({
1335
1340
  ...e,
1336
1341
  groupBy: !e.groupBy
1337
1342
  })),
@@ -1364,7 +1369,7 @@ ${l}`, d = new Blob([u], { type: "text/csv;charset=utf-8;" }), f = URL.createObj
1364
1369
  type: "button",
1365
1370
  className: a.sectionToggle,
1366
1371
  "aria-expanded": g.aggregates,
1367
- onClick: () => _((e) => ({
1372
+ onClick: () => w((e) => ({
1368
1373
  ...e,
1369
1374
  aggregates: !e.aggregates
1370
1375
  })),
@@ -1398,5 +1403,5 @@ ${l}`, d = new Blob([u], { type: "text/csv;charset=utf-8;" }), f = URL.createObj
1398
1403
  ] });
1399
1404
  }
1400
1405
  export {
1401
- Xr as AwesomeGrid
1406
+ Jr as AwesomeGrid
1402
1407
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pravinrd/awesome-grid",
3
3
  "private": false,
4
- "version": "0.2.3",
4
+ "version": "0.2.5",
5
5
  "description": "Awesome Data Grid Component!",
6
6
  "keywords": [
7
7
  "react",
@@ -24,7 +24,8 @@
24
24
  "preview": "vite preview"
25
25
  },
26
26
  "files": [
27
- "dist-lib"
27
+ "dist-lib",
28
+ "README.md"
28
29
  ],
29
30
  "main": "dist-lib/index.cjs",
30
31
  "module": "dist-lib/index.js",