From dd82ebd605398d6462ea125ae3df971a47f3eb94 Mon Sep 17 00:00:00 2001 From: Toby Martin Date: Mon, 31 Aug 2026 04:43:07 +0000 Subject: [PATCH] Add known-total infinite scroll footer --- CHANGELOG.md | 24 ++++++ README.md | 47 ++++++++---- dist/adapter-virtual.js | 2 +- dist/adapter.js | 2 +- dist/advanced.js | 2 +- dist/chunk-3PL4XDZI.js | 2 + dist/chunk-3PL4XDZI.js.map | 1 + dist/chunk-BUT7FBKJ.js | 2 - dist/chunk-I5D5NFSR.js | 2 + ...-BUT7FBKJ.js.map => chunk-I5D5NFSR.js.map} | 2 +- dist/chunk-NL6LSUVL.js | 2 - dist/chunk-NL6LSUVL.js.map | 1 - dist/heroui-virtual.js | 2 +- dist/heroui.js | 2 +- dist/index.js | 2 +- dist/thegridcn-virtual.js | 2 +- dist/thegridcn.js | 2 +- dist/virtual.js | 2 +- docs/API.md | 4 +- docs/Migration.md | 11 +++ docs/Roadmap.md | 4 +- package.json | 2 +- .../create-data-table-pagination.tsx | 41 ++++++---- .../data-table/create-data-table.test.tsx | 74 ++++++++++++++++++- src/core/data-table/create-data-table.tsx | 14 +++- 25 files changed, 198 insertions(+), 53 deletions(-) create mode 100644 dist/chunk-3PL4XDZI.js create mode 100644 dist/chunk-3PL4XDZI.js.map delete mode 100644 dist/chunk-BUT7FBKJ.js create mode 100644 dist/chunk-I5D5NFSR.js rename dist/{chunk-BUT7FBKJ.js.map => chunk-I5D5NFSR.js.map} (92%) delete mode 100644 dist/chunk-NL6LSUVL.js delete mode 100644 dist/chunk-NL6LSUVL.js.map diff --git a/CHANGELOG.md b/CHANGELOG.md index c2773aa..86e1d1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,29 @@ # Changelog +## 5.3.0 - 2026-08-31 + +Version 5.3 adds a native known-total infinite-scroll footer and strengthens +the documented stable-row-identity contract without removing any public API. + +### Changed + +- Show the native total-record count as a count-only footer during infinite + scrolling when `totalRowCount` is supplied, while continuing to suppress + pagination controls. + +### Documentation + +- Use stable module-scope `getRowId` functions throughout the README examples, + matching the identity guidance for row state and virtualization. + +### Validation + +- Cover controlled `manualSorting` together with `infiniteScroll`, including + server-order preservation, sorting callbacks, and sentinel observation. +- 327 unit/integration tests across the shadcn, HeroUI, and The Gridcn + adapters, plus lint, package/demo typechecks and builds, public API snapshot, + packed-consumer build, and bundle budgets. + ## 5.2.1 - 2026-08-13 Version 5.2.1 aligns the shadcn data-table search surface with the semantic diff --git a/README.md b/README.md index 0613caa..05676ff 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,13 @@ infinite loading, typed server data sources, and host-owned drag/upload integrations. See [`docs/API.md`](./docs/API.md) for the complete contract. +## 5.3.0 infinite-scroll footer + +When `infiniteScroll.enabled` and `totalRowCount` are both supplied, the table +now keeps a native count-only footer visible while suppressing records-per-page +and pagination controls. Unknown-total infinite scrolling remains footerless. +No public prop or persisted-state format changed. + ## 5.2.1 styling correction Version 5.2.1 uses the shadcn `bg-input` surface for data-table search input @@ -129,11 +136,11 @@ The previously planned wrapper API cleanup was ultimately deferred beyond ## Installation ```bash -pnpm add github:Dastari/data-table-pro#v5.2.1 +pnpm add github:Dastari/data-table-pro#v5.3.0 ``` This package is installed from GitHub refs. It is not published to npm. -Release tags such as `v5.2.1` include committed `dist/` output, so consumers +Release tags such as `v5.3.0` include committed `dist/` output, so consumers do not need to allow package build scripts during install. Peer dependencies: @@ -183,14 +190,22 @@ or when the application preloads routes: ```tsx import { DataTable } from "data-table-pro/virtual"; +function getRowId(row: TRow) { + return row.id; +} + row.id} + getRowId={getRowId} virtualization />; ``` +Keep `getRowId` at module scope, as above, or memoize it with +`React.useCallback`. A new inline function on every render defeats the stable +identity contract used by row state, diagnostics, and virtualization. + The existing base entrypoints remain source-compatible with `virtualization`. They load the virtual row/card implementation only when the prop enables it and render a bounded initial set as the Suspense fallback @@ -361,12 +376,16 @@ const columns: Array> = [ }, ]; +function getPersonRowId(person: Person) { + return person.id; +} + export function PeopleTable({ rows }: { rows: Array }) { return ( row.id} + getRowId={getPersonRowId} title="People" /> ); @@ -424,7 +443,7 @@ visible descendants proportionally. row.id} + getRowId={getRowId} toolbarQueryValue={query} onToolbarQueryValueChange={setQuery} /> @@ -444,7 +463,7 @@ const apiRef = React.createRef>(); apiRef={apiRef} columns={columns} data={rows} - getRowId={(row) => row.id} + getRowId={getRowId} enableRowPinning initialState={{ rowPinning: { top: ["important-id"], bottom: [] } }} />; @@ -470,7 +489,7 @@ Toolbar search filters local/client-side data by default. Server-side tables can row.id} + getRowId={getRowId} manualFiltering toolbarQueryValue={query} onToolbarQueryValueChange={setQuery} @@ -488,7 +507,7 @@ inventing a total: row.id} + getRowId={getRowId} manualPagination pageIndex={pageIndex} pageSize={pageSize} @@ -508,7 +527,7 @@ configuration: row.id} + getRowId={getRowId} persistence={{ key: "people-table", version: 2, @@ -538,7 +557,7 @@ const [tableState, setTableState] = React.useState( apiRef={apiRef} columns={columns} data={rows} - getRowId={(row) => row.id} + getRowId={getRowId} state={tableState} onStateChange={setTableState} />; @@ -580,7 +599,7 @@ or opt into the built-in table-options controls: apiRef={apiRef} columns={columns} data={rows} - getRowId={(row) => row.id} + getRowId={getRowId} savedViews={{ key: "people-table", version: 1, @@ -648,7 +667,7 @@ const columns: Array> = [ person.id} + getRowId={getPersonRowId} enableGrouping initialState={{ grouping: ["team"] }} />; @@ -664,7 +683,7 @@ clipboard handling independently: row.id} + getRowId={getRowId} interactiveGrid enableCellSelection clipboard={{ @@ -767,7 +786,7 @@ Example: row.id} + getRowId={getRowId} toolbarQueryValue={query} onToolbarQueryValueChange={setQuery} customToolbar={ diff --git a/dist/adapter-virtual.js b/dist/adapter-virtual.js index 5c8d38d..3277c15 100644 --- a/dist/adapter-virtual.js +++ b/dist/adapter-virtual.js @@ -1,2 +1,2 @@ -export{a as createVirtualDataTable}from'./chunk-BUT7FBKJ.js';import'./chunk-LTEXTQ2M.js';import'./chunk-I4PTUZ5K.js';import'./chunk-NL6LSUVL.js';import'./chunk-EJHT5JBZ.js';import'./chunk-WXLQM3ND.js';import'./chunk-Y7ZWZH7K.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';//# sourceMappingURL=adapter-virtual.js.map +export{a as createVirtualDataTable}from'./chunk-I5D5NFSR.js';import'./chunk-LTEXTQ2M.js';import'./chunk-I4PTUZ5K.js';import'./chunk-3PL4XDZI.js';import'./chunk-EJHT5JBZ.js';import'./chunk-WXLQM3ND.js';import'./chunk-Y7ZWZH7K.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';//# sourceMappingURL=adapter-virtual.js.map //# sourceMappingURL=adapter-virtual.js.map \ No newline at end of file diff --git a/dist/adapter.js b/dist/adapter.js index 036ae5a..3e6d180 100644 --- a/dist/adapter.js +++ b/dist/adapter.js @@ -1,2 +1,2 @@ -export{X as primitiveUiKit}from'./chunk-VSIOOKCO.js';export{i as createDataTable}from'./chunk-NL6LSUVL.js';import'./chunk-EJHT5JBZ.js';import'./chunk-WXLQM3ND.js';import'./chunk-Y7ZWZH7K.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';//# sourceMappingURL=adapter.js.map +export{X as primitiveUiKit}from'./chunk-VSIOOKCO.js';export{i as createDataTable}from'./chunk-3PL4XDZI.js';import'./chunk-EJHT5JBZ.js';import'./chunk-WXLQM3ND.js';import'./chunk-Y7ZWZH7K.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';//# sourceMappingURL=adapter.js.map //# sourceMappingURL=adapter.js.map \ No newline at end of file diff --git a/dist/advanced.js b/dist/advanced.js index 1b85838..114959e 100644 --- a/dist/advanced.js +++ b/dist/advanced.js @@ -1,2 +1,2 @@ -export{X as primitiveUiKit}from'./chunk-VSIOOKCO.js';export{a as DataTableCardPanel,b as DataTableFooterSection,c as DataTableToolbarSection,i as createDataTable,h as useColumnLayout,e as useControllableState,d as useDataTableColumns,f as useDataTableInstance,g as useDataTableState}from'./chunk-NL6LSUVL.js';import'./chunk-EJHT5JBZ.js';export{c as DataTableBodyRow,d as DataTableHeaderCell,e as DataTableTablePanel,a as useRowEditing}from'./chunk-WXLQM3ND.js';import'./chunk-Y7ZWZH7K.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';import*as e from'react';function R(a){let t=e.useRef(a);return e.useLayoutEffect(()=>{t.current=a;}),e.useCallback((...o)=>t.current?.(...o),[])}export{R as useStableCallback};//# sourceMappingURL=advanced.js.map +export{X as primitiveUiKit}from'./chunk-VSIOOKCO.js';export{a as DataTableCardPanel,b as DataTableFooterSection,c as DataTableToolbarSection,i as createDataTable,h as useColumnLayout,e as useControllableState,d as useDataTableColumns,f as useDataTableInstance,g as useDataTableState}from'./chunk-3PL4XDZI.js';import'./chunk-EJHT5JBZ.js';export{c as DataTableBodyRow,d as DataTableHeaderCell,e as DataTableTablePanel,a as useRowEditing}from'./chunk-WXLQM3ND.js';import'./chunk-Y7ZWZH7K.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';import*as e from'react';function R(a){let t=e.useRef(a);return e.useLayoutEffect(()=>{t.current=a;}),e.useCallback((...o)=>t.current?.(...o),[])}export{R as useStableCallback};//# sourceMappingURL=advanced.js.map //# sourceMappingURL=advanced.js.map \ No newline at end of file diff --git a/dist/chunk-3PL4XDZI.js b/dist/chunk-3PL4XDZI.js new file mode 100644 index 0000000..6d097cc --- /dev/null +++ b/dist/chunk-3PL4XDZI.js @@ -0,0 +1,2 @@ +import {a as a$4}from'./chunk-EJHT5JBZ.js';import {a as a$3,e as e$1}from'./chunk-WXLQM3ND.js';import {d,a as a$1,b,i,l,t,y,k,C,s,c as c$1,e,g,f,h,w,x,u,j,q,p,z,v,D as D$1,m as m$1,o}from'./chunk-Y7ZWZH7K.js';import {c,p as p$1,u as u$1,k as k$1,m,s as s$1,a as a$5,r,q as q$1,l as l$1,j as j$1}from'./chunk-CVR2ZXHQ.js';import {a,i as i$1,b as b$1,d as d$1,e as e$2,c as c$2}from'./chunk-7IWMFF7E.js';import {a as a$2}from'./chunk-XTVBESM5.js';import*as D from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {tableFeatures,sortFns,filterFns,aggregationFns,rowSortingFeature,rowSelectionFeature,rowPinningFeature,rowPaginationFeature,rowExpandingFeature,columnVisibilityFeature,columnResizingFeature,columnSizingFeature,columnPinningFeature,columnOrderingFeature,columnGroupingFeature,rowAggregationFeature,globalFilteringFeature,columnFilteringFeature,columnFacetingFeature,createSortedRowModel,createPaginatedRowModel,createGroupedRowModel,createFilteredRowModel,createFacetedUniqueValues,createFacetedRowModel,createFacetedMinMaxValues,createExpandedRowModel,useTable}from'@tanstack/react-table';import {flushSync}from'react-dom';function Bn({cardClassName:e,cardGridClassName:a,cardSizing:t,cardRenderer:o,currentRowSelection:l,currentDetailExpanded:s,DataTableCardView:d,DataTableEmptyState:m,dragAndDrop:g,editableRows:h,editingRowId:k,emptyNode:v,enableRowSelection:I,flexGrow:x,getRowClassName:L,hasCardTitle:K,infiniteScroll:Q,localSearchValue:E,onRowClick:u,renderedRows:i,detailPanel:y,resolvedLabels:b,resolvedLoadingRowCount:P,rowActions:F=[],ScrollArea:w,scrollbarVisibility:H,sentinelRef:X,setCurrentDetailExpanded:$,setCurrentRowSelection:B,setEditingRowId:S,shouldRenderInitialLoading:C,stateOverlayNode:O,tableContainerClassName:p,uiClassNames:A}){let j=C||i.length>0,N=D.useRef(null),q=(G,T)=>jsx(d,{rows:G,cardRenderer:o,cardGridClassName:a,cardClassName:e,cardSizing:t,rowActions:F,editableRows:h,detailPanel:y,detailExpanded:s,onDetailExpandedChange:$,hasCardTitle:K,rowSelection:l,onRowSelectionChange:B,enableRowSelection:I,editingRowId:k,onEditingRowIdChange:S,getRowClassName:L,onRowClick:u,getRowDraggable:g?.getRowDraggable,onRowDragStart:g?.onRowDragStart,onRowDragEnd:g?.onRowDragEnd,isLoading:T?.isLoading,loadingRowCount:T?.loadingRowCount,labels:b});return jsxs("div",{ref:N,"data-dtp-slot":"data-table-card-shell",className:a$2("relative box-border border-2 border-transparent transition-colors",x?"flex min-h-0 flex-1 flex-col":"h-full",g?.isDragging&&(A.dragActive??"rounded-md border-dashed")),children:[jsx(w,{type:H,className:a$2(x?"min-h-0 flex-1":"h-full",A.cardScrollArea,p),children:jsxs("div",{"data-dtp-slot":"data-table-card-viewport",className:a$2("flex min-h-full min-w-0 flex-col",x&&"min-h-0 flex-1",A.cardViewport),children:[j?C?q([],{isLoading:true,loadingRowCount:P}):q(i):jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center p-4",children:v??jsx(m,{title:E?b.noMatchingRowsTitle:b.noRowsTitle,description:E?b.noMatchingRowsDescription:b.noRowsDescription})}),Q?.enabled&&!C?jsx("div",{className:"shrink-0 px-4 pb-4",children:jsx("div",{ref:X,className:"h-4 w-full"})}):null]})}),O]})}var ps=D.lazy(async()=>({default:(await import('./data-table-virtual-card-panel-Z3BPBPG4.js')).DataTableVirtualCardPanel}));function hi(e){let a=typeof e.virtualization=="object"?e.virtualization.card:void 0;return a?.enabled!==true?jsx(Bn,{...e}):jsx(D.Suspense,{fallback:jsx(Bn,{...e,renderedRows:e.renderedRows.slice(0,Math.max(1,Math.floor(a.fallbackCardCount??12)))}),children:jsx(ps,{...e})})}function Ri({children:e,currentPagination:a,DataTableFooter:t,effectivePageCount:o,footerTotalRowCount:l,handleFooterPageIndexChange:s,handleFooterPageSizeChange:d,labels:m,pageCountKnown:g=true,rowsPerPageOptions:h,showFooter:k}){return !k&&!e?null:jsxs("div",{"data-dtp-slot":"data-table-footer",className:"shrink-0",children:[k?jsx(t,{pageIndex:a.pageIndex,pageCount:o,pageCountKnown:g,pageSize:a.pageSize,totalRowCount:l,rowsPerPageOptions:h,onPageIndexChange:s,onPageSizeChange:d,labels:m}):null,e]})}function vi({allRows:e,columnFilters:a,columnVisibilityOptions:t,compactToolbar:o,customToolbar:l,DataTableToolbar:s,description:d,descriptionId:m,effectiveToolbarActions:g,enableColumnPinning:h,enableGrouping:k,enableToolbarColumnChooser:v,enableToolbarFilterChips:I,enableToolbarResetLayout:x,enableToolbarSavedViews:L,enableDensityToggle:K,enableViewToggle:Q,hiddenRowsLabel:E,labels:u,onClearColumnFilters:i,onColumnFilterChange:y,onColumnPinningChange:b,onDensityChange:P,onShowHiddenRowsChange:F,onToolbarQueryValueChange:w,reorderColumn:H,onResetColumnLayout:X,onCreateSavedView:$,onApplySavedView:B,onRenameSavedView:S,onDeleteSavedView:C,onViewModeChange:O,openFileDialog:p,selectedRowIds:A,selectedRows:j,selectionActions:N,savedViews:q,showHiddenRows:G,table:T,title:J,titleId:oe,toolbarQueryPlaceholder:Pe,toolbarQueryValue:ye,toolbarVisibility:xe,density:Fe,viewMode:fe}){return jsx("div",{"data-dtp-slot":"data-table-toolbar",className:"shrink-0",children:jsx(s,{title:J,titleId:oe,description:d,descriptionId:m,toolbarQueryValue:ye,toolbarQueryPlaceholder:Pe,onToolbarQueryValueChange:w,reorderColumn:H,customToolbar:l,compactToolbar:o,viewMode:fe,onViewModeChange:O,enableViewToggle:Q,toolbarActions:g,selectionActions:N,selectedRowIds:A,selectedRows:j,showHiddenRows:G,hiddenRowsLabel:E,onShowHiddenRowsChange:F,allRows:e,columnVisibilityOptions:t,onColumnVisibilityChange:(Ve,Be)=>{T.getColumn(Ve)?.toggleVisibility(Be);},enableColumnPinning:h,enableGrouping:k,enableToolbarColumnChooser:v,enableToolbarFilterChips:I,enableToolbarResetLayout:x,enableToolbarSavedViews:L,onColumnPinningChange:b,columnFilters:a,onColumnFilterChange:y,onClearColumnFilters:i,onResetColumnLayout:X,onCreateSavedView:$,onApplySavedView:B,onRenameSavedView:S,onDeleteSavedView:C,density:Fe,onDensityChange:P,enableDensityToggle:K,labels:u,toolbarVisibility:xe,openFileDialog:p,savedViews:q,table:T})})}var re={searchPlaceholder:"Search rows...",searchTable:"Search table",clearSearch:"Clear search",noRowsTitle:"No rows yet",noRowsDescription:"Create a record or refresh this view once data exists.",noMatchingRowsTitle:"No matching rows",noMatchingRowsDescription:"Try a different search term or clear filters.",tableOptions:"Show table options",columns:"Columns",filters:"Filters",clearFilters:"Clear filters",filterFrom:"From",filterTo:"To",filterTrue:"Yes",filterFalse:"No",selectedRows:e=>`${e} record${e===1?"":"s"} selected`,showHiddenRows:e=>`Show ${e}`,recordsPerPage:"Records per page",totalRecords:e=>`Total records: ${e}`,pageStatus:(e,a)=>`Page ${e+1} of ${a}`,pageStatusUnknown:e=>`Page ${e+1}`,pagination:"Pagination",morePages:"More pages",firstPage:"First page",previousPage:"Previous page",nextPage:"Next page",lastPage:"Last page",selectAllVisibleRows:"Select all visible rows",selectAllFilteredRows:"Select all filtered rows",selectRow:"Select row",selectCardRow:e=>`Select row ${e}`,switchToTableView:"Switch to table view",switchToCardView:"Switch to card view",tableView:"Table view",cardView:"Card view",allFilterOptions:"All",actions:"Actions",rowActions:"Row actions",editRow:"Edit row",saveEdit:"Save",cancelEdit:"Cancel editing",expandRow:"Expand row",collapseRow:"Collapse row",expandRowDetails:"Expand row details",collapseRowDetails:"Collapse row details",exportCsv:"Export CSV",print:"Print table",enterFullscreen:"Enter fullscreen",exitFullscreen:"Exit fullscreen",errorTitle:"Unable to load this table",errorDescription:"Try again or check your connection.",retry:"Retry",density:"Density",compactDensity:"Compact",comfortableDensity:"Comfortable",spaciousDensity:"Spacious",pinLeft:"Pin left",pinRight:"Pin right",unpin:"Unpin",pinRowToTop:"Pin row to top",pinRowToBottom:"Pin row to bottom",unpinRow:"Unpin row",resizeColumn:e=>`Resize ${e}`,grouping:"Grouping",groupBy:e=>`Group by ${e}`,ungroup:e=>`Ungroup ${e}`,removeGrouping:e=>`Remove ${e} grouping`,moveGroupingEarlier:e=>`Move ${e} grouping earlier`,moveGroupingLater:e=>`Move ${e} grouping later`,facetSearch:e=>`Search ${e} options`,searchColumns:"Search columns",showAllColumns:"Show all columns",hideAllColumns:"Hide all columns",moveColumnEarlier:e=>`Move ${e} earlier`,moveColumnLater:e=>`Move ${e} later`,resetColumnLayout:"Reset column layout",savedViews:"Saved views",createSavedView:"Create saved view",savedViewName:"View name",applySavedView:e=>`Apply saved view ${e}`,renameSavedView:e=>`Rename saved view ${e}`,deleteSavedView:e=>`Delete saved view ${e}`,saveSavedView:"Save view"};function Pi(e){return {...re,...e}}function xi({Button:e,Checkbox:a,DataTableRowActions:t,Tooltip:o,TooltipContent:l,TooltipTrigger:s,cancelEditing:d$1,columns:m,editableRows:g,editingRowId:h,editErrors:k,enableRowSelection:v,enableRowPinning:I,hasTreeExpansion:x,isSavingEdit:L,isEditDirty:K,includeFillSpacer:Q=false,labels:E,lastSelectedRowIdRef:u,detailPanel:i$1,detailExpanded:y,onDetailExpandedChange:b$1,rowSelectionSelectAllScope:P,rowActions:F,saveEdit:w,startEditingRow:H,tableRef:X}){let $=D.useCallback((B,S)=>{let C=X.current;if(!C||!u.current)return;let O=C.getRowModel().rows.filter(q=>!d(q.original)),p=O.findIndex(q=>q.id===u.current),A=O.findIndex(q=>q.id===B);if(p<0||A<0)return;let j=Math.min(p,A),N=Math.max(p,A);C.setRowSelection(q=>{let G={...q};for(let T of O.slice(j,N+1).filter(J=>J.getCanSelect()&&J.getCanMultiSelect()))S?G[T.id]=true:delete G[T.id];return G});},[u,X]);return D.useMemo(()=>{let B=[];if(x||i$1){let S=x&&i$1?80:a$1;B.push({id:"__expand__",enableResizing:false,enableSorting:false,enableHiding:false,size:S,minSize:S,maxSize:S,header:()=>jsx("span",{className:"sr-only",children:E.expandRow}),cell:({row:C,table:O})=>{let p=x&&C.getCanExpand(),A=!!(i$1&&(i$1.getRowCanExpand?.(C.original)??true));if(!p&&!A)return null;let j=C.getIsExpanded(),N=y===true||!!y[C.id];return jsxs("div",{className:"flex items-center justify-center gap-1",children:[p?jsx(e,{type:"button",variant:"ghost",size:"icon-sm","aria-label":j?E.collapseRow:E.expandRow,"aria-expanded":j,"data-tree-toggle":"true",onClick:()=>C.toggleExpanded(),children:jsx(c,{className:a$2("transition-transform",j?"rotate-0":"-rotate-90")})}):null,A?jsx(e,{type:"button",variant:"ghost",size:"icon-sm","aria-label":N?x?E.collapseRowDetails??re.collapseRowDetails:E.collapseRow:x?E.expandRowDetails??re.expandRowDetails:E.expandRow,"aria-expanded":N,"data-detail-toggle":"true",onClick:()=>{b$1(q=>b(q,C.id,O.getCoreRowModel().flatRows.map(G=>G.id)));},children:jsx(c,{className:a$2("transition-transform",N?"rotate-0":"-rotate-90")})}):null]})}});}return v&&B.push({id:"__select__",enableResizing:false,enableSorting:false,enableHiding:false,size:a$1,minSize:a$1,maxSize:a$1,header:({table:S})=>{let C=P==="filtered",O=(C?S.getFilteredRowModel().flatRows:S.getRowModel().flatRows).filter(N=>N.getCanSelect()&&N.getCanMultiSelect()),p=O.length>0&&O.every(N=>N.getIsSelected()),A=O.some(N=>N.getIsSelected()),j=C?E.selectAllFilteredRows??re.selectAllFilteredRows:E.selectAllVisibleRows??re.selectAllVisibleRows;return O.length===0?jsx("span",{className:"sr-only",children:j}):jsx("div",{className:"flex items-center justify-center",children:jsx(a,{className:"my-0.5",checked:p?true:A?"indeterminate":false,onCheckedChange:N=>{S.setRowSelection(q=>{let G={...q};for(let T of O)N===true?G[T.id]=true:delete G[T.id];return G});},"aria-label":j})})},cell:({row:S})=>jsx("div",{className:"flex items-center justify-center",children:jsx(a,{className:"my-0.5",checked:S.getIsSelected(),disabled:!S.getCanSelect(),onClick:C=>{if(!C.shiftKey||!u.current||!S.getCanMultiSelect()){u.current=S.id;return}C.preventDefault(),C.stopPropagation(),$(S.id,!S.getIsSelected()),u.current=S.id;},onCheckedChange:C=>{u.current=S.id,S.toggleSelected(C===true);},"aria-label":E.selectRow??re.selectRow})})}),B.push(...m.map(S=>i(S))),Q&&B.push({id:"__spacer__",cell:()=>null,header:()=>null,enableColumnFilter:false,enableGlobalFilter:false,enableGrouping:false,enableHiding:false,enablePinning:false,enableResizing:false,enableSorting:false,minSize:0,size:0}),(F.length||g||I)&&B.push({id:"__actions__",enableSorting:false,enableResizing:false,enableHiding:false,size:a$1,minSize:a$1,maxSize:a$1,header:()=>jsx("span",{className:"sr-only",children:E.actions}),cell:({row:S})=>{let C=S.id;return h===C?jsxs("div",{className:"flex w-full items-center justify-end gap-2",children:[k._row?jsx("span",{className:"sr-only",role:"alert",children:k._row}):null,jsx(e,{type:"button",size:"sm",disabled:L||!K,onClick:()=>{w(S.original);},children:E.saveEdit}),jsxs(o,{children:[jsx(s,{asChild:true,children:jsxs(e,{type:"button",size:"icon-sm",variant:"ghost",onClick:d$1,children:[jsx(c,{className:"rotate-45"}),jsx("span",{className:"sr-only",children:E.cancelEdit})]})}),jsx(l,{children:E.cancelEdit})]})]}):jsx("div",{className:"flex w-full items-center justify-center",children:jsx(t,{row:S.original,rowActions:F,editableRows:g,isEditing:false,onStartEditing:()=>{H(S.original,S.id);},onCancelEditing:()=>{},labels:E,rowPinning:I?{canPin:S.getCanPin(),position:S.getIsPinned(),pin:p=>S.pin(p)}:void 0})})}}),B},[e,a,t,o,l,s,d$1,m,g,y,i$1,k,h,v,I,x,Q,L,K,E,u,b$1,P,F,w,$,H])}function ve({defaultValue:e,onChange:a,value:t}){let[o,l]=D.useState(e),s=t??o,d=D.useRef(s);D.useEffect(()=>{d.current=s;},[s]);let m=D.useCallback(g=>{let h=typeof g=="function"?g(d.current):g;d.current=h,a?.(h),t===void 0&&l(h);},[a,t]);return [s,m]}function ki({enabled:e,hasMore:a,isLoadingMore:t,onLoadMore:o,onError:l}){let s=D.useRef(null),d=D.useRef(false),m=D.useEffectEvent(o),g=D.useEffectEvent(h=>{l?.(h);});return D.useEffect(()=>{if(!e||!a||t)return;let h=s.current;if(!h)return;let k=new IntersectionObserver(v=>{if(v[0].isIntersecting&&!d.current){d.current=true;let x;try{x=m();}catch(L){d.current=false,g(L);return}Promise.resolve(x).catch(L=>{g(L);}).finally(()=>{d.current=false;});}},{rootMargin:"200px 0px 200px 0px"});return k.observe(h),()=>{k.disconnect();}},[e,a,t]),s}function Fi({enabled:e,maxPageIndex:a,onPageIndexChange:t,pageIndex:o,setLocalPageIndex:l}){D.useEffect(()=>{if(!e||o>=0&&o<=a)return;let s=Math.min(Math.max(o,0),a);l(s),t?.(s);},[e,a,t,o,l]);}function Mi(){return D.useMemo(()=>{let e=new WeakMap;return (a,t,o)=>{let l=p(o);if(!l)return true;let s=a.original;if(typeof s!="object"||s===null)return p(a.getValue(t)).includes(l);let d=e.get(s);d||(d=new Map,e.set(s,d));let m=d.get(t);if(m===void 0){let g=a.getValue(t);m=p(g),d.set(t,m);}return m.includes(l)}},[])}function Gn(e={}){return tableFeatures({columnFacetingFeature:columnFacetingFeature,columnFilteringFeature:columnFilteringFeature,globalFilteringFeature:globalFilteringFeature,rowAggregationFeature:rowAggregationFeature,columnGroupingFeature:columnGroupingFeature,columnOrderingFeature:columnOrderingFeature,columnPinningFeature:columnPinningFeature,columnSizingFeature:columnSizingFeature,columnResizingFeature:columnResizingFeature,columnVisibilityFeature:columnVisibilityFeature,rowExpandingFeature:rowExpandingFeature,rowPaginationFeature:rowPaginationFeature,rowPinningFeature:rowPinningFeature,rowSelectionFeature:rowSelectionFeature,rowSortingFeature:rowSortingFeature,expandedRowModel:createExpandedRowModel(),facetedMinMaxValues:createFacetedMinMaxValues(),facetedRowModel:createFacetedRowModel(),facetedUniqueValues:createFacetedUniqueValues(),filteredRowModel:createFilteredRowModel(),groupedRowModel:createGroupedRowModel(),paginatedRowModel:createPaginatedRowModel(),sortedRowModel:createSortedRowModel(),aggregationFns:{...aggregationFns,...e},filterFns:filterFns,sortFns:sortFns})}Gn();function Ai({autoResetPageIndex:e,columnGroupPaths:a,columnResizeMode:t$1,dir:o,currentColumnFilters:l$1,currentColumnOrder:s,currentColumnPinning:d$1,currentRowPinning:m,currentColumnSizing:g,currentExpanded:h,currentGrouping:k$1,currentPagination:v,currentRowSelection:I,currentSorting:x,currentViewMode:L,defaultColumn:K,effectiveColumnVisibility:Q,enableColumnResizing:E,enableMultiRowSelection:u,enableRowPinning:i,enableRowSelection:y$1,enableSubRowSelection:b,getRowCanSelect:P,getRowCanExpand:F,getSubRows:w,aggregationFns:H,groupedColumnMode:X,globalFilterFn:$,globalFilterValue:B,hasNextPage:S,handleColumnFiltersChange:C$1,handleColumnOrderChange:O,handleColumnPinningChange:p,handleRowPinningChange:A,handleColumnVisibilityChange:j,handleExpandedChange:N,handleGroupingChange:q,infiniteScroll:G,keepPinnedRows:T,manualFiltering:J,manualGrouping:oe,manualExpanding:Pe,manualPagination:ye,manualSorting:xe,onActionError:Fe,onPageIndexChange:fe,onPageSizeChange:Ve,pageCount:Be,pageIndex:Z,pageSize:Ne,paginateExpandedRows:V,filterFromLeafRows:me,maxLeafRowFilterDepth:Ze,setCurrentRowSelection:je,setCurrentSorting:ea,setLocalColumnSizing:ga,setLocalPagination:ce,shouldRenderInitialLoading:ra,tableColumns:Ue,tableData:ba,tableGetRowId:Ge,tableRef:la,totalRowCount:ma,virtualization:sa}){let da=Mi(),Te=D.useMemo(()=>l(Ue).map(({column:f,index:M})=>t(f,M)),[Ue]),aa=D.useMemo(()=>{let f=Te,M=f.filter(ie=>!y(ie)&&ie!=="__spacer__"),te=new Set(M),Y=s.filter(ie=>te.has(ie)),de=M.filter(ie=>!Y.includes(ie));return [...f.filter(ie=>ie==="__expand__"||ie==="__select__"),...Y,...de,...f.filter(ie=>ie==="__spacer__"),...f.filter(ie=>ie==="__actions__")]},[s,Te]),Oe=D.useMemo(()=>{let f=new Set(Te),M=new Set(Te.filter(de=>!y(de)&&de!=="__spacer__")),te=(d$1.left??[]).filter(de=>M.has(de)),Y=(d$1.right??[]).filter(de=>M.has(de));return {start:[...["__expand__","__select__"].filter(de=>f.has(de)),...te],end:[...Y,...["__actions__"].filter(de=>f.has(de))]}},[d$1,Te]),fa=D.useCallback(f=>{let M=typeof f=="function"?f(Oe):f,te=new Set(Te.filter(Y=>!y(Y)&&Y!=="__spacer__"));p({left:M.start.filter(Y=>te.has(Y)),right:M.end.filter(Y=>te.has(Y))});},[Oe,Te,p]),he=D.useMemo(()=>{let f=new Set,M=ie=>{ie.forEach((Ia,Ra)=>{if(f.add(Ge(Ia,Ra)),!d(Ia)){let Sa=w?.(Ia,Ra);Sa?.length&&M(Sa);}});};M(ba);let te=(m.top??[]).filter(ie=>f.has(ie)),Y=new Set(te),de=(m.bottom??[]).filter(ie=>f.has(ie)&&!Y.has(ie));return {top:te,bottom:de}},[m.bottom,m.top,w,ba,Ge]),Ke=D.useMemo(()=>Object.fromEntries(Object.entries(I).flatMap(([f,M])=>M?[[f,true]]:[])),[I]),We=D.useCallback(f=>{let M=typeof f=="function"?f(Ke):f;je({...M});},[je,Ke]),Ea=D.useMemo(()=>({sorting:x,pagination:v,rowSelection:Ke,columnVisibility:Q,columnFilters:l$1,globalFilter:B,expanded:h,grouping:k$1,columnOrder:aa,columnPinning:Oe,rowPinning:he,columnSizing:g}),[l$1,g,h,k$1,v,x,Q,aa,Oe,he,B,Ke]),ca=D.useCallback(f=>{let M=typeof f=="function"?f(v):f;(Z===void 0||Ne===void 0)&&ce(te=>({pageIndex:Z===void 0?M.pageIndex:te.pageIndex,pageSize:Ne===void 0?M.pageSize:te.pageSize})),M.pageIndex!==v.pageIndex&&fe?.(M.pageIndex),M.pageSize!==v.pageSize&&Ve?.(M.pageSize);},[v,fe,Ve,Z,Ne,ce]),Fa=D.useCallback(f=>{ga(f);},[ga]),Va=D.useMemo(()=>Gn(H),[H]),ue=useTable({features:Va,data:ba,columns:Ue,enableRowSelection:P?f=>y$1&&P(f.original):y$1,enableRowPinning:typeof i=="function"?f=>i(f.original):i,keepPinnedRows:T,enableMultiRowSelection:typeof u=="function"?f=>u(f.original):u,enableSubRowSelection:typeof b=="function"?f=>b(f.original):b,enableColumnResizing:E,columnResizeMode:t$1,columnResizeDirection:o,getRowId:Ge,getSubRows:w?(f,M)=>w(f,M):void 0,getRowCanExpand:w?f=>F?.(f.original)??f.subRows.length>0:void 0,globalFilterFn:$??da,getColumnCanGlobalFilter:f=>f.columnDef.enableGlobalFilter!==false&&typeof f.accessorFn=="function",manualSorting:xe,manualGrouping:oe,manualFiltering:J,manualExpanding:Pe,manualPagination:ye||!!G?.enabled,paginateExpandedRows:V,filterFromLeafRows:me,maxLeafRowFilterDepth:Ze,defaultColumn:K,autoResetPageIndex:e,state:Ea,onSortingChange:ea,onPaginationChange:ca,onRowSelectionChange:We,onColumnVisibilityChange:j,onColumnFiltersChange:C$1,onExpandedChange:N,onGroupingChange:q,onColumnOrderChange:O,onColumnPinningChange:fa,onRowPinningChange:A,onColumnSizingChange:Fa,groupedColumnMode:X});D.useLayoutEffect(()=>(la.current=ue,()=>{la.current===ue&&(la.current=null);}),[ue,la]);let Ta=ue.getVisibleLeafColumns(),Me=D.useCallback((f,M)=>{if(f===M||!k(f,M,a))return;let te=ue.getAllLeafColumns().map(de=>de.id).filter(de=>!y(de)&&de!=="__spacer__"),Y=C(s.length?s:te,f,M);O(Y);},[a,s,O,ue]),Ma=ue.getTopRows(),$e=ue.getBottomRows(),Da=L==="table"?ue.getCenterRows():ue.getRowModel().rows,wa=typeof sa=="object"?sa:void 0,Ae=sa===true||wa?.enabled===true,Ca=Math.max(1,Math.floor(wa?.fallbackRowCount??20)),ya=(Ae?Da.slice(0,Ca):Da).map((f,M)=>({row:f,rowIndex:M})),Qe=ye||!!G?.enabled,Aa=Qe?void 0:ue.getFilteredRowModel().rows.length,qe=ma??Aa,ta=!Qe||Be!==void 0||ma!==void 0,Ba=qe,Ye=ra?1:Be??(qe!==void 0?Math.max(1,Math.ceil(qe/v.pageSize)):Qe?v.pageIndex+(S?2:1):ue.getPageCount()),ha=Math.max(0,Ye-1),Ga=D.useCallback(f=>{Z===void 0&&ce(M=>M.pageIndex===f?M:{...M,pageIndex:f});},[Z,ce]);Fi({enabled:!ra&&!G?.enabled&&ta,maxPageIndex:ha,onPageIndexChange:fe,pageIndex:v.pageIndex,setLocalPageIndex:Ga});let r=D.useCallback(f=>{f!==v.pageIndex&&(fe?.(f),Z===void 0&&ce(M=>M.pageIndex===f?M:{...M,pageIndex:f}));},[v.pageIndex,fe,Z,ce]),_=D.useCallback(f=>{v.pageIndex!==0&&fe?.(0),f!==v.pageSize&&Ve?.(f),Ne===void 0&&ce({pageIndex:0,pageSize:f});},[v.pageIndex,v.pageSize,fe,Ve,Ne,ce]),se=ki({enabled:!!G?.enabled,hasMore:!!G?.hasMore,isLoadingMore:G?.isLoadingMore,onLoadMore:()=>G?.onLoadMore(),onError:f=>{Fe?.({error:f,source:"infiniteScroll"});}});return {effectivePageCount:Ye,footerTotalRowCount:Ba,handleFooterPageIndexChange:r,handleFooterPageSizeChange:_,isPageCountKnown:ta,renderedRows:Da,topPinnedRows:Ma,bottomPinnedRows:$e,reorderColumn:Me,rowsToRender:ya,sentinelRef:se,table:ue,virtualPaddingBottom:0,virtualPaddingTop:0,visibleLeafColumns:Ta}}var $s="data-table-pro:column-prefs:",zi=1,Ii=["visibility","sizing","order","pinning","rowPinning","density"];function Li(e){let a=$n(e);if(!a)return {};let t=jn(a);if(!t)return {};let o=Un(a.key),l;try{l=t.getItem(o);}catch(g){return a.onError?.({error:g,operation:"read"}),{}}if(!l)return {};let s;try{s=(a.deserialize??JSON.parse)(l);}catch(g){return a.onError?.({error:g,operation:"deserialize"}),{}}let d=a.version??zi,m;if(js(s))if(s.version===d)m=s.state;else if(a.migrate)try{m=a.migrate({version:s.version,state:s.state},d);}catch(g){return a.onError?.({error:g,operation:"migrate"}),{}}else return {};else m=s;return _i(Us(m),a.slices)}function Ni(e){let a=$n(e);if(!a)return false;let t=jn(a);if(!t)return false;try{return t.removeItem(Un(a.key)),!0}catch(o){return a.onError?.({error:o,operation:"remove"}),false}}function Oi({key:e,persistence:a,prefs:t}){let o=a??$n(e),l=o?jn(o):void 0,s=o?Un(o.key):void 0,d=o?.version??zi,m=Math.max(0,o?.debounceMs??100),g=_i(t,o?.slices),h=D.useMemo(()=>{if(!o)return {value:void 0};try{let v={version:d,state:g};return {value:(o.serialize??JSON.stringify)(v)}}catch(v){return {error:v,value:void 0}}},[o,g,d]),k=D.useEffectEvent((v,I)=>{o?.onError?.({error:v,operation:I});});D.useEffect(()=>{h.error!==void 0&&k(h.error,"serialize");},[h.error]),D.useEffect(()=>{if(!l||!s||h.value===void 0)return;let v=()=>{try{if(l.getItem(s)===h.value)return;l.setItem(s,h.value);}catch(x){k(x,"write");}};if(m===0){v();return}let I=globalThis.setTimeout(v,m);return ()=>{globalThis.clearTimeout(I);}},[m,h.value,l,s]);}function $n(e){if(e)return typeof e=="string"?{key:e}:e}function jn(e){if(e.storage)return e.storage;if(!(typeof window>"u"))try{return window.localStorage}catch(a){e.onError?.({error:a,operation:"read"});return}}function Un(e){return `${$s}${e}`}function js(e){return rt(e)&&Object.prototype.hasOwnProperty.call(e,"version")&&Object.prototype.hasOwnProperty.call(e,"state")}function _i(e,a){let t=new Set(a??Ii),o={};for(let l of Ii)t.has(l)&&e[l]!==void 0&&Object.assign(o,{[l]:e[l]});return o}function Us(e){if(!rt(e))return {};let a={},t=Ks(e.visibility);t&&(a.visibility=t);let o=Ws(e.sizing);o&&(a.sizing=o);let l=Tt(e.order);if(l&&(a.order=l),rt(e.pinning)){let d=Tt(e.pinning.left)??[],m=Tt(e.pinning.right)??[];a.pinning={left:d,right:m};}let s=Qs(e.rowPinning);return s&&(a.rowPinning=s),qs(e.density)&&(a.density=e.density),a}function Ks(e){if(rt(e))return Object.fromEntries(Object.entries(e).filter(a=>typeof a[1]=="boolean"))}function Ws(e){if(rt(e))return Object.fromEntries(Object.entries(e).filter(a=>typeof a[1]=="number"&&Number.isFinite(a[1])&&a[1]>=0))}function Tt(e){if(Array.isArray(e))return e.filter(a=>typeof a=="string")}function Qs(e){if(rt(e))return {top:Tt(e.top)??[],bottom:Tt(e.bottom)??[]}}function qs(e){return e==="compact"||e==="comfortable"||e==="spacious"}function rt(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var Ys=Object.values(a).slice().sort((e,a)=>e-a);function Hi(e){let a=D.useRef(0),[t,o]=D.useState(0);return D.useEffect(()=>{let l=e.current;if(!l)return;let s=(m=l.clientWidth)=>{let g=Js(m);g!==a.current&&(a.current=g,o(g));};if(s(),typeof ResizeObserver>"u")return;let d=new ResizeObserver(m=>{let g=m[0];s(g?Xs(g):void 0);});return d.observe(l),()=>{d.disconnect();}},[e]),t}function Js(e){if(e<=0)return 0;let a=1;for(let t of Ys){if(ed$1??(s$1?{key:s$1}:void 0),[s$1,d$1]),me=D.useMemo(()=>Li(V),[V]),[Ze,je]=D.useState({pageIndex:u?.pagination?.pageIndex??0,pageSize:u?.pagination?.pageSize??Pe[0]??20}),[ea,ga]=ve({value:Fe,onChange:j,defaultValue:()=>u?.sorting??[]}),[ce,ra]=ve({value:oe,onChange:p,defaultValue:()=>u?.rowSelection??{}}),[Ue,ba]=ve({value:m,onChange:$,defaultValue:()=>u?.columnVisibility??me.visibility??{}}),[Ge,la]=ve({value:e$1,onChange:P,defaultValue:()=>u?.columnFilters??[]}),[ma,sa]=ve({value:x,onChange:S,defaultValue:()=>u?.expanded??{}}),[da,Te]=ve({value:a,onChange:F,defaultValue:()=>u?.columnOrder??me.order??[]}),[aa,Oe]=ve({value:t$1,onChange:w,defaultValue:()=>u?.columnPinning??me.pinning??s(g)}),[fa,he]=ve({value:o,onChange:H,defaultValue:()=>u?.rowPinning??me.rowPinning??{top:[],bottom:[]}}),[Ke,We]=ve({value:l$1,onChange:X,defaultValue:()=>u?.columnSizing??me.sizing??{}}),[Ea,ca]=ve({value:Z,onChange:q,defaultValue:()=>u?.viewMode??"table"}),[Fa,Va]=ve({value:L,onChange:C,defaultValue:()=>u?.grouping??[]}),[ue,Ta]=ve({value:xe,onChange:A,defaultValue:()=>u?.showHiddenRows??false}),[Me,Ma]=ve({value:k,onChange:B,defaultValue:()=>u?.density??me.density??"comfortable"}),$e=Be??u?.globalFilter??"",Da=Ve??J.searchPlaceholder,wa=fe??250,[Ae,Ca]=D.useState($e),ua=Hi(Ne),ya=!!N,Qe=D.useRef($e),Aa=D.useEffectEvent(U=>{Qe.current=U,N?.(U);});D.useEffect(()=>{Qe.current=$e,Ca($e);},[$e]),D.useEffect(()=>{if(!ya||Ae===$e||Ae===Qe.current)return;let U=window.setTimeout(()=>{Aa(Ae);},wa);return ()=>{window.clearTimeout(U);}},[ya,Ae,wa,$e]);let qe=D.useMemo(()=>({pageIndex:G??Ze.pageIndex,pageSize:T??Ze.pageSize}),[Ze.pageIndex,Ze.pageSize,G,T]),ta=Math.max(1,y??Math.min(5,qe.pageSize)),Ba=D.useDeferredValue(Ae),Ye=I?b?Ae:Ba:"",ha=D.useCallback(U=>{ca(U);},[ca]),Ga=D.useCallback(U=>{Ta(U);},[Ta]),r=D.useCallback(U=>{Ma(U);},[Ma]),_=D.useCallback(()=>{O?.(0),G===void 0&&je(U=>U.pageIndex===0?U:{...U,pageIndex:0});},[O,G]),se=D.useRef({columnFilters:Ge,globalFilterValue:Ye});D.useEffect(()=>{let U=se.current,ke=U.columnFilters!==Ge,va=U.globalFilterValue!==Ye;se.current={columnFilters:Ge,globalFilterValue:Ye},!b&&(!ke&&!va||_());},[Ge,Ye,b,_]),Oi({persistence:V,prefs:{visibility:m?void 0:Ue,sizing:l$1===void 0?Ke:void 0,order:a?void 0:da,pinning:t$1?void 0:aa,rowPinning:o===void 0?fa:void 0,density:k?void 0:Me}});let f=D.useMemo(()=>l(g).reduce((U,{column:ke,index:va})=>{let pe=t(ke,va);return i$1(ke.meta?.hideOn,ua)&&(U[pe]=false),U},{}),[g,ua]),M=D.useMemo(()=>({...Ue,...f}),[Ue,f]),te=D.useMemo(()=>h.filter(U=>b$1(U,E,ue)),[ue,h,E]),Y=i&&te.length===0,de=D.useMemo(()=>c$1(ta),[ta]),ie=Y?de:te,Ia=D.useCallback((U,ke)=>d(U)?e(ke):Q(U,ke),[Q]),Ra=v||(ye?.length??0)>0||Object.values(ce).some(Boolean),Sa=D.useMemo(()=>{if(!Ra)return new Map;let U=new Map,ke=va=>{va.forEach((pe,$a)=>{U.set(Q(pe,$a),pe);let ne=K?.(pe,$a);ne?.length&&ke(ne);});};return ke(te),U},[Q,K,Ra,te]),ht=D.useMemo(()=>Ra?Object.entries(ce).filter(([,U])=>U).map(([U])=>Sa.get(U)).filter(U=>!!U):[],[ce,Sa,Ra]),an=D.useMemo(()=>Object.entries(ce).flatMap(([U,ke])=>ke?[U]:[]),[ce]);return {containerWidth:ua,currentColumnFilters:Ge,currentColumnOrder:da,currentColumnPinning:aa,currentRowPinning:fa,currentColumnSizing:Ke,currentColumnVisibility:Ue,currentDensity:Me,currentExpanded:ma,currentGrouping:Fa,currentPagination:qe,currentRowSelection:ce,currentShowHiddenRows:ue,currentSorting:ea,currentViewMode:Ea,effectiveColumnVisibility:M,globalFilterValue:Ye,handleDensityChange:r,handleShowHiddenRowsChange:Ga,handleViewModeChange:ha,localSearchValue:Ae,resolvedLoadingRowCount:ta,resolvedToolbarQueryPlaceholder:Da,selectedRowIds:an,selectedRows:ht,setCurrentColumnFilters:la,setCurrentColumnOrder:Te,setCurrentColumnPinning:Oe,setCurrentRowPinning:he,setCurrentColumnVisibility:ba,setCurrentExpanded:sa,setCurrentGrouping:Va,setCurrentRowSelection:ra,setCurrentSorting:ga,setLocalColumnSizing:We,setLocalPagination:je,setLocalSearchValue:Ca,shouldRenderInitialLoading:Y,tableData:ie,tableGetRowId:Ia,toolbarFilteredData:te,visibleData:te}}var ed={cellStyle:void 0,colStyle:void 0,fixedSide:void 0,headerStyle:void 0,isActionsColumn:false,isExpansionColumn:false,isSelectionColumn:false,isSpacerColumn:false,isUtilityColumn:false,pinnedClassName:void 0,utilityClassName:void 0};function $i({columns:e,columnSizing:a,editableRows:t$1,enableRowSelection:o,hasRowActions:l$1,hasRowExpansion:s,layoutMode:d,uiClassNames:m,visibleLeafColumns:g$1}){let h$1=D.useMemo(()=>{let u=new Set;for(let{column:i,index:y}of l(e))g(i)&&u.add(t(i,y));return o&&u.add("__select__"),s&&u.add("__expand__"),(l$1||t$1)&&u.add("__actions__"),u},[e,t$1,o,l$1,s]),k=D.useMemo(()=>{let u=new Map;for(let{column:i,index:y}of l(e)){let b=f(i);b!==void 0&&u.set(t(i,y),b);}return u},[e]),v=D.useMemo(()=>{let u=new Set;for(let{column:i,index:y}of l(e))h(i)&&u.add(t(i,y));return u},[e]),I=D.useMemo(()=>{let u=new Map,i=new Map,y=0;for(let P of g$1)w(P)==="left"&&(u.set(P.id,y),y+=Gi(P));let b=0;for(let P of [...g$1].reverse())w(P)==="right"&&(i.set(P.id,b),b+=Gi(P));return {left:u,right:i}},[g$1]),x$1=D.useMemo(()=>{if(d==="fill")return [...g$1].reverse().find(u=>u.id!=="__spacer__"&&!y(u.id)&&!v.has(u.id)&&!Object.prototype.hasOwnProperty.call(a,u.id))?.id},[a,v,d,g$1]),L=D.useMemo(()=>{let u=new Set([...h$1,...v,...Object.keys(a)]);return x$1&&u.delete(x$1),u},[a,v,h$1,x$1]),K=D.useMemo(()=>{let u=new Map;for(let i of g$1){let y=i.id==="__select__",b=i.id==="__expand__",P=i.id==="__actions__",F=y||b||P,w$1=i.id==="__spacer__",H=k.get(i.id),X=i.id===x$1,$=H??(X&&h$1.has(i.id)?i.getSize():void 0),B=!w$1&&(d==="fit"||F||L.has(i.id)),S=B||$!==void 0?{width:B?F?a$1:i.getSize():void 0,minWidth:F?a$1:B?i.getSize():$,maxWidth:B?F?a$1:i.getSize():void 0}:void 0,C=w(i),O=C?{left:C==="left"?I.left.get(i.id):void 0,right:C==="right"?I.right.get(i.id):void 0}:void 0,p=S||O?{...S,...O}:void 0;u.set(i.id,{cellStyle:p,colStyle:S,fixedSide:C,headerStyle:p,isActionsColumn:P,isExpansionColumn:b,isSelectionColumn:y,isSpacerColumn:w$1,isUtilityColumn:F,pinnedClassName:C?x(C,m,{isUtilityColumn:F}):void 0,utilityClassName:F?"w-[50px] max-w-[50px] min-w-[50px] px-0":void 0});}return u},[h$1,x$1,L,d,k,I,m,g$1]),Q=D.useMemo(()=>g$1.reduce((u,i)=>{let y=K.get(i.id),b=k.get(i.id),P=i.id===x$1;return y?.isUtilityColumn?u+a$1:L.has(i.id)?u+i.getSize():u+(b??(P&&h$1.has(i.id)?i.getSize():0))},0),[K,h$1,x$1,L,k,g$1]),E=D.useCallback(u=>K.get(u)??ed,[K]);return {columnLayouts:K,explicitlySizedColumnIds:h$1,fillMinWidth:Q,getColumnLayout:E}}function Gi(e){return y(e.id)?a$1:e.getSize()}function Ui(e,a){let t=e.classNames??{},{Button:o,Card:l,CardContent:s,CardHeader:d,Checkbox:m,Skeleton:g}=e;return function({rows:k,cardRenderer:v,cardSizing:I="fixed",cardGridClassName:x,cardClassName:L,rowActions:K,editableRows:Q,detailPanel:E,detailExpanded:u,onDetailExpandedChange:i,hasCardTitle:y,rowSelection:b$1,onRowSelectionChange:P,enableRowSelection:F,editingRowId:w,onEditingRowIdChange:H,getRowClassName:X,onRowClick:$,getRowDraggable:B,onRowDragStart:S,onRowDragEnd:C,isLoading:O=false,loadingRowCount:p=5,labels:A}){let j=I??"fixed",N=x?a$2("grid",x):ad(j),q=a$2("min-h-0 w-full gap-4 p-1",t.cardGrid,N),G=T=>a$2("relative min-w-0 max-w-full gap-0 overflow-hidden bg-transparent p-0",td(j),t.cardItem,L,T);return O?jsx("div",{role:"list","data-dtp-slot":"data-table-card-grid",className:q,children:Array.from({length:Math.max(1,p)},(T,J)=>jsxs(l,{role:"listitem","aria-hidden":"true","data-dtp-slot":"data-table-card-item",className:G("min-h-52"),children:[y?jsxs(d,{className:"px-4 pt-4 pb-3",children:[jsx(g,{className:"h-5 w-40 max-w-[70%]"}),jsx(g,{className:"h-4 w-24 max-w-[40%]"})]}):null,jsxs(s,{className:a$2("space-y-3 pb-4",y?"":"pt-4"),children:[jsx(g,{className:"h-4 w-full"}),jsx(g,{className:"h-4 w-[82%]"}),jsx(g,{className:"h-4 w-[68%]"}),jsx(g,{className:"h-24 w-full rounded-xl"})]})]},`loading-card-${J}`))}):jsx("div",{role:"list","data-dtp-slot":"data-table-card-grid",className:q,children:k.map(T=>{let J=T.id,oe=T.original,Pe=!!b$1[J],ye=w===J,xe=K.length>0||!!Q,Fe=!!(E&&(E.getRowCanExpand?.(oe)??true)),fe=F||xe||y,Ve=F||xe||T.getCanExpand()||Fe,Be=()=>{$&&$({row:oe,rowId:J});};return jsxs(l,{role:"listitem","data-row-id":J,"data-tree-depth":T.depth,draggable:B?.(oe)??false,"data-dtp-slot":"data-table-card-item","data-state":Pe?"selected":void 0,className:G(a$2([X?.(oe,{row:oe,rowId:J,rowIndex:T.index,isEditing:ye,isExpanded:T.getIsExpanded(),isLoading:false,isSelected:Pe,pinnedPosition:false})].filter(Boolean).join(" "),"transition transition-colors hover:scale-101 data-[state=selected]:scale-101",t.card,Pe?t.cardSelected:t.cardUnselected)),onDragStart:Z=>{S?.({row:oe,rowId:J,event:Z});},onDragEnd:Z=>{C?.({row:oe,rowId:J,event:Z});},children:[fe?jsx("div",{"aria-hidden":"true",className:a$2("pointer-events-none absolute inset-x-0 top-0 z-10 h-24 bg-linear-to-b opacity-0 transition-opacity group-hover/card:opacity-100",t.cardOverlay??"from-transparent via-transparent to-transparent")}):null,jsx("div",{"data-dtp-slot":"data-table-card-renderer",role:$?"button":void 0,tabIndex:$?0:void 0,className:a$2("flex min-h-0 max-w-full min-w-0 overflow-hidden rounded-[inherit] [&>*]:min-w-0",nd(j),$&&"cursor-pointer focus-visible:outline-none"),onClick:Z=>{z(Z.target,Z.currentTarget)||Be();},onKeyDown:Z=>{z(Z.target,Z.currentTarget)||(Z.key==="Enter"||Z.key===" ")&&(Z.preventDefault(),Be());},children:v({row:oe,rowId:J,depth:T.depth,canExpandSubRows:T.getCanExpand(),isSubRowsExpanded:T.getIsExpanded(),toggleSubRowsExpanded:()=>T.toggleExpanded(),isSelected:Pe,onSelectedChange:Z=>{P(ji(b$1,J,Z,T.getCanSelect(),T.getCanMultiSelect()));},actions:K,isEditing:ye,startEditing:()=>{H(J);},cancelEditing:()=>{H(null);}})}),ye||!E||!(u===true||u[T.id])?null:jsx("div",{"data-dtp-slot":"data-table-card-detail-panel",className:"relative z-20 min-w-0",children:E.render({row:oe,rowId:J,tableRow:T})}),Ve?jsxs(d,{className:"absolute inset-x-0 top-0 z-20 flex flex-row items-center gap-3 space-y-0 px-4 pt-4 pb-8",children:[F?jsx("div",{"data-row-click-ignore":"true",className:"pointer-events-auto",children:jsx(m,{checked:Pe,disabled:!T.getCanSelect(),"aria-label":(A.selectCardRow??re.selectCardRow)(J),onCheckedChange:Z=>{P(ji(b$1,J,Z===true,T.getCanSelect(),T.getCanMultiSelect()));}})}):null,T.getCanExpand()?jsx("div",{"data-row-click-ignore":"true",className:"pointer-events-auto",children:jsx(o,{type:"button",size:"icon-sm",variant:"ghost","aria-label":T.getIsExpanded()?A.collapseRow:A.expandRow,"aria-expanded":T.getIsExpanded(),onClick:()=>T.toggleExpanded(),children:jsx(c,{className:a$2("transition-transform",T.getIsExpanded()?"rotate-0":"-rotate-90")})})}):null,Fe?jsx("div",{"data-row-click-ignore":"true",className:"pointer-events-auto",children:jsx(o,{type:"button",size:"icon-sm",variant:"ghost","aria-label":u===true||u[T.id]?T.getCanExpand()?A.collapseRowDetails??re.collapseRowDetails:A.collapseRow:T.getCanExpand()?A.expandRowDetails??re.expandRowDetails:A.expandRow,"aria-expanded":u===true||!!u[T.id],"data-detail-toggle":"true",onClick:()=>{i(Z=>b(Z,T.id,k.map(Ne=>Ne.id)));},children:jsx(c,{className:a$2("transition-transform",u===true||u[T.id]?"rotate-0":"-rotate-90")})})}):null,jsx("div",{className:"pointer-events-none min-w-0 flex-1"}),xe?jsx("div",{"data-row-click-ignore":"true",className:"pointer-events-auto",children:jsx(a,{row:oe,rowActions:K,editableRows:Q,isEditing:ye,onStartEditing:()=>{H(J);},onCancelEditing:()=>{H(null);},labels:A})}):null]}):null]},J)})})}}function ad(e){switch(e){case "content":return "flex flex-wrap items-start justify-start";case "fluid":return "grid grid-cols-[repeat(auto-fit,minmax(min(18rem,100%),1fr))]";default:return "grid grid-cols-[repeat(auto-fill,minmax(min(18rem,100%),18rem))] justify-start"}}function td(e){switch(e){case "content":return "w-fit";case "fluid":return "w-full";default:return}}function nd(e){switch(e){case "content":return "w-fit";case "fluid":return "w-full flex-1 [&>*]:w-full";default:return "flex-1"}}function ji(e,a,t,o,l){if(!o)return e;if(t)return l?{...e,[a]:true}:{[a]:true};if(!e[a])return e;let s={...e};return delete s[a],s}function Wi(e){let a=e.classNames??{},{Empty:t,EmptyContent:o,EmptyDescription:l,EmptyHeader:s,EmptyMedia:d,EmptyTitle:m}=e;return function({title:h="No rows found",description:k="Adjust your filters or create a new record to populate this table."}){return jsxs(t,{className:`min-h-60 rounded-2xl ${a.emptyState??"border bg-transparent"}`,children:[jsxs(s,{children:[jsx(d,{variant:"icon",children:jsx(p$1,{})}),jsx(m,{children:h}),jsx(l,{children:k})]}),jsx(o,{})]})}}function Qi(e){let a=e.classNames??{},{Pagination:t,PaginationContent:o,PaginationEllipsis:l,PaginationFirst:s,PaginationItem:d,PaginationLast:m,PaginationLink:g,PaginationNext:h,PaginationPrevious:k,Select:v,SelectContent:I,SelectGroup:x,SelectItem:L,SelectTrigger:K,SelectValue:Q,Tooltip:E,TooltipContent:u,TooltipTrigger:i}=e;function y({countOnly:F=false,pageIndex:w,pageCount:H,pageCountKnown:X,pageSize:$,totalRowCount:B,rowsPerPageOptions:S,onPageIndexChange:C,onPageSizeChange:O,labels:p}){let A=X?od(w,Math.max(1,H)):[],j=w>0,N=w+1{O(Number(T));},children:[jsx(K,{"aria-label":p.recordsPerPage,className:`w-22 ${a.paginationSelectTrigger??""}`,children:jsx(Q,{})}),jsx(I,{children:jsx(x,{children:S.map(T=>jsx(L,{value:String(T),children:T},T))})})]})]}),G,jsxs("div",{className:"flex flex-1 items-center justify-end gap-4",children:[jsx("div",{className:`hidden text-sm @min-[768px]/data-table:inline ${a.mutedText??"opacity-70"}`,children:X?p.pageStatus(w,Math.max(1,H)):(p.pageStatusUnknown??re.pageStatusUnknown)(w)}),jsx(t,{"aria-label":p.pagination??re.pagination,className:"mx-0 w-auto justify-end",children:jsxs(o,{children:[jsx(d,{className:"@min-[768px]/data-table:hidden",children:jsxs(E,{children:[jsx(i,{asChild:true,children:jsx(s,{"aria-label":p.firstPage,href:"#",size:"icon-sm",showText:false,disabled:!j,onClick:T=>{T.preventDefault(),j&&C(0);},text:p.firstPage})}),jsx(u,{children:p.firstPage})]})}),jsx(d,{children:jsxs(E,{children:[jsx(i,{asChild:true,children:jsx(k,{"aria-label":p.previousPage,href:"#",size:"icon-sm",showText:false,disabled:!j,onClick:T=>{T.preventDefault(),j&&C(w-1);},text:p.previousPage})}),jsx(u,{children:p.previousPage})]})}),A.map((T,J)=>jsx(d,{className:"hidden @min-[768px]/data-table:block",children:T==="ellipsis"?jsx(l,{text:p.morePages??re.morePages}):jsx(g,{href:"#",isActive:T===w+1,size:"icon-sm",onClick:oe=>{oe.preventDefault(),C(T-1);},children:T})},`${T}-${J}`)),jsx(d,{children:jsxs(E,{children:[jsx(i,{asChild:true,children:jsx(h,{"aria-label":p.nextPage,href:"#",size:"icon-sm",showText:false,disabled:!N,onClick:T=>{T.preventDefault(),N&&C(w+1);},text:p.nextPage})}),jsx(u,{children:p.nextPage})]})}),X?jsx(d,{className:"@min-[768px]/data-table:hidden",children:jsxs(E,{children:[jsx(i,{asChild:true,children:jsx(m,{"aria-label":p.lastPage,href:"#",size:"icon-sm",showText:false,text:p.lastPage,disabled:!N,onClick:T=>{T.preventDefault(),N&&C(q);}})}),jsx(u,{children:p.lastPage})]})}):null]})})]})]})}function b(F){return jsx("div",{className:`rounded-md border px-2 py-1 ${a.footer??""}`,children:jsx(y,{...F})})}function P(F){return jsx(b,{...F,countOnly:true})}return {DataTableCountOnlyFooter:P,DataTableFooter:b,DataTablePagination:y}}function od(e,a){let t=e+1,o=new Set([1,a]);for(let d=Math.max(1,t-2);d<=Math.min(a,t+2);d+=1)o.add(d);let l=Array.from(o).sort((d,m)=>d-m),s=[];for(let d=0;d1&&s.push("ellipsis"),s.push(m);}return s}function Yi(e){let{Button:a,DropdownMenu:t,DropdownMenuContent:o,DropdownMenuGroup:l,DropdownMenuItem:s,DropdownMenuSeparator:d,DropdownMenuTrigger:m$1,Tooltip:g,TooltipContent:h,TooltipTrigger:k}=e;return function({row:I,rowActions:x,editableRows:L,isEditing:K,onStartEditing:Q,onCancelEditing:E,labels:u,rowPinning:i}){let y=x.filter(w=>d$1(w,I)),b=D.useCallback(w=>{w.stopPropagation();},[]);if(K)return jsxs(g,{children:[jsx(k,{asChild:true,children:jsxs(a,{type:"button",variant:"ghost",size:"icon-sm",onPointerDown:b,onClick:E,children:[jsx(u$1,{}),jsx("span",{className:"sr-only",children:u.cancelEdit})]})}),jsx(h,{children:u.cancelEdit})]});let P=e$2(L,I),F=i?.canPin??false;return !y.length&&!P&&!F?null:jsxs(t,{children:[jsxs(g,{children:[jsx(k,{asChild:true,children:jsx(m$1,{asChild:true,children:jsxs(a,{type:"button",variant:"ghost",size:"icon-sm",onPointerDown:b,onClick:b,children:[jsx(k$1,{}),jsx("span",{className:"sr-only",children:u.rowActions})]})})}),jsx(h,{children:u.rowActions})]}),jsxs(o,{align:"end",className:"w-52",children:[P?jsx(l,{children:jsxs(s,{onClick:w=>{w.stopPropagation(),Q();},children:[jsx(m,{"data-icon":"inline-start"}),u.editRow]})}):null,P&&(y.length||F)?jsx(d,{}):null,F?jsx(l,{children:i?.position?jsx(s,{onClick:w=>{w.stopPropagation(),i.pin(false);},children:u.unpinRow}):jsxs(Fragment,{children:[jsx(s,{onClick:w=>{w.stopPropagation(),i?.pin("top");},children:u.pinRowToTop}),jsx(s,{onClick:w=>{w.stopPropagation(),i?.pin("bottom");},children:u.pinRowToBottom})]})}):null,F&&y.length?jsx(d,{}):null,y.length?jsx(l,{children:y.map(w=>{let H=w.icon;return jsxs(s,{disabled:w.disabled?.(I),variant:w.variant==="destructive"?"destructive":void 0,onClick:X=>{X.stopPropagation(),w.onClick(I);},children:[H?jsx(H,{"data-icon":"inline-start"}):null,c$2(w.label,I)]},w.key)})}):null]})]})}}var rd=D.lazy(()=>import('./data-table-toolbar-operations-E6KRSUL6.js'));function Xi(e){let a=e.classNames??{},{Button:t,ButtonGroup:o,DropdownMenu:l,DropdownMenuCheckboxItem:s,DropdownMenuContent:d,DropdownMenuGroup:m,DropdownMenuItem:g,DropdownMenuLabel:h,DropdownMenuSeparator:k,DropdownMenuTrigger:v,InputGroup:I,InputGroupAddon:x,InputGroupInput:L,Tooltip:K,TooltipContent:Q,TooltipTrigger:E}=e;return function({title:y,titleId:b,description:P,descriptionId:F,toolbarQueryValue:w,toolbarQueryPlaceholder:H,onToolbarQueryValueChange:X,customToolbar:$,compactToolbar:B,viewMode:S,onViewModeChange:C,enableViewToggle:O,toolbarActions:p,selectionActions:A,selectedRows:j,selectedRowIds:N,showHiddenRows:q,hiddenRowsLabel:G,onShowHiddenRowsChange:T,allRows:J,columnVisibilityOptions:oe,onColumnVisibilityChange:Pe,enableColumnPinning:ye,onColumnPinningChange:xe,columnFilters:Fe,onColumnFilterChange:fe,onClearColumnFilters:Ve,density:Be,onDensityChange:Z,enableDensityToggle:Ne,labels:V,toolbarVisibility:me,openFileDialog:Ze,enableGrouping:je,enableToolbarColumnChooser:ea,enableToolbarFilterChips:ga,enableToolbarResetLayout:ce,enableToolbarSavedViews:ra,savedViews:Ue,onResetColumnLayout:ba,onCreateSavedView:Ge,onApplySavedView:la,onRenameSavedView:ma,onDeleteSavedView:sa,reorderColumn:da,table:Te}){let aa=D.useRef(null),[Oe,fa]=D.useState(false),he=a.toolbarCompactIconButton??"",Ke=p.filter(r=>(r.placement??"primary")==="primary"),We=p.filter(r=>r.placement==="trailing"),Ea=me?.title??true,ca=me?.search??true,Fa=me?.actions??true,Va=me?.trailingActions??true,ue=me?.options??true,Ta=me?.viewToggle??true,Me=me?.customToolbar??true,Ma=Ea&&!!(y||P),$e=ca,Da=Fa&&Ke.length>0,wa=N.length>0&&A.length>0,Ae=ue&&(oe.some(r=>r.canHide)||!!(T&&G)||ye||Ne||je||ea||ce||ra),Ca=ea||ce||ra,ua=Fe.filter(r=>Kn(r.value)),ya={Button:t,DropdownMenuCheckboxItem:s,DropdownMenuGroup:m,DropdownMenuItem:g,DropdownMenuLabel:h,DropdownMenuSeparator:k,InputGroup:I,InputGroupAddon:x,InputGroupInput:L},Qe=r=>jsx(D.Suspense,{fallback:null,children:jsx(rd,{placement:r,ui:ya,labels:V,enableColumnChooser:ea,enableFilterChips:ga,enableResetLayout:ce,enableSavedViews:ra,enableColumnPinning:ye,columnVisibilityOptions:oe,onColumnVisibilityChange:Pe,onColumnPinningChange:xe,reorderColumn:da,table:Te,onResetColumnLayout:ba,savedViews:Ue,onCreateSavedView:Ge,onApplySavedView:la,onRenameSavedView:ma,onDeleteSavedView:sa,toolbarQueryValue:w,onToolbarQueryValueChange:X,activeColumnFilters:ua,onColumnFilterChange:fe,onClearColumnFilters:Ve})}),Aa=Te.getAllLeafColumns().filter(r=>!r.id.startsWith("__")&&r.getCanGroup()),qe=Te.store.state.grouping.flatMap(r=>{let _=Te.getColumn(r);return _?[_]:[]}),ta=Ta&&O&&!!C,Ba=Va&&We.length>0,Ye=Me&&!!$,ha=Me&&!!(B??$),Ga=V.selectedRows(N.length);return D.useEffect(()=>{Oe&&aa.current?.focus();},[Oe]),!Ma&&!$e&&!Da&&!wa&&!Ae&&!ta&&!Ba&&!Ye&&!ha?null:jsxs("div",{className:"flex flex-col gap-4 pb-0",children:[Ea&&(y||P)?jsxs("div",{className:"flex flex-col gap-1",children:[y?jsx("h2",{id:b,className:"text-lg font-semibold tracking-tight",children:y}):null,P?jsx("p",{id:F,className:`max-w-3xl text-sm ${a.mutedText??"opacity-70"}`,children:P}):null]}):null,jsxs("div",{className:"flex flex-col gap-3",children:[jsxs("div",{"data-dtp-slot":"data-table-toolbar-controls",className:"flex items-center gap-2 overflow-x-auto px-1 @min-[768px]/data-table:gap-3 @min-[768px]/data-table:overflow-visible",children:[ca?jsxs(Fragment,{children:[jsx("div",{className:"hidden min-w-0 grow max-w-md @min-[768px]/data-table:block",children:jsxs(I,{className:"min-w-0",children:[jsx(L,{value:w,onChange:r=>{X(r.target.value);},placeholder:H}),jsx(x,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})}),w?jsx(x,{align:"inline-end",children:jsx("button",{type:"button",className:`inline-flex size-5 items-center justify-center rounded-md transition-colors focus-visible:outline-none ${a.toolbarIconButton??"opacity-70 hover:opacity-100"}`,onClick:()=>{X("");},"aria-label":V.clearSearch,title:V.clearSearch,children:jsx(u$1,{})})}):null]})}),jsxs(K,{children:[jsx(E,{asChild:true,children:jsxs(t,{type:"button",variant:Oe||w?"secondary":"outline",size:"icon-sm","aria-label":V.searchTable,"aria-pressed":Oe,className:`shrink-0 @min-[768px]/data-table:hidden ${he} ${a.toolbarInputButton??""}`,onClick:()=>{fa(r=>!r);},children:[jsx(s$1,{}),jsx("span",{className:"sr-only",children:V.searchTable})]})}),jsx(Q,{children:V.searchTable})]})]}):null,Fa?jsx("div",{className:"flex shrink-0 items-center gap-2",children:Ke.map(r=>{let _=!r.iconOnly&&!!r.icon,se=jsxs(t,{type:"button",className:_?`size-7 shrink-0 px-0 @min-[768px]/data-table:h-8 @min-[768px]/data-table:w-fit @min-[768px]/data-table:px-2.5 ${he}`:r.iconOnly?`size-7 shrink-0 @min-[768px]/data-table:size-8 ${he}`:"size-7 shrink-0 @min-[768px]/data-table:h-8 @min-[768px]/data-table:w-fit",variant:r.variant??"outline",size:r.iconOnly?"icon":"default",onClick:()=>{r.onClick({rows:J,openFileDialog:Ze});},disabled:r.disabled,"aria-label":r.label,title:r.iconOnly?void 0:r.label,children:[r.icon?jsx(r.icon,{}):null,r.iconOnly?jsx("span",{className:"sr-only",children:r.label}):_?jsx("span",{className:"hidden @min-[768px]/data-table:inline",children:r.label}):jsx("span",{children:r.label})]},r.key);return r.iconOnly?jsxs(K,{children:[jsx(E,{asChild:true,children:se}),jsx(Q,{children:r.label})]},r.key):se})}):null,ha?jsx("div",{"data-dtp-slot":"data-table-toolbar-compact-custom",className:"flex shrink-0 items-center gap-2 @min-[1024px]/data-table:hidden",children:B??$}):null,jsx("div",{className:"grow","aria-hidden":"true"}),jsxs("div",{"data-dtp-slot":"data-table-toolbar-end-controls",className:"flex shrink-0 items-center gap-2",children:[N.length?jsx("div",{className:`hidden text-sm @min-[768px]/data-table:block ${a.mutedText??"opacity-70"}`,children:Ga}):null,N.length?A.map(r=>{let _=r.icon,se={rows:j,rowIds:N},f=typeof r.disabled=="function"?r.disabled(j,se):r.disabled;return jsxs(K,{children:[jsx(E,{asChild:true,children:jsxs(t,{type:"button",variant:r.variant??"secondary",size:"icon-sm",className:he,disabled:f,onClick:()=>{r.onClick(se);},"aria-label":r.label,children:[_?jsx(_,{}):null,jsx("span",{className:"sr-only",children:r.label})]})}),jsx(Q,{children:r.label})]},r.key)}):null,Ae?jsxs(l,{children:[jsx(v,{asChild:true,children:jsxs(t,{type:"button",variant:"outline",size:"icon-sm","aria-label":V.tableOptions,className:`${he} ${a.toolbarInputButton??""}`,title:V.tableOptions,children:[jsx(a$5,{}),jsx("span",{className:"sr-only",children:V.tableOptions})]})}),jsxs(d,{align:"end",className:"w-56",children:[jsx(h,{children:V.tableOptions}),jsx(m,{children:T&&G?jsx(s,{checked:q,onCheckedChange:r=>{T(r===true);},children:V.showHiddenRows(G)}):null}),Ne?jsxs(Fragment,{children:[jsx(k,{}),jsx(h,{children:V.density}),jsx(m,{children:[["compact",V.compactDensity],["comfortable",V.comfortableDensity],["spacious",V.spaciousDensity]].map(([r,_])=>jsx(s,{checked:Be===r,onCheckedChange:()=>{Z(r);},children:_},r))})]}):null,Ca?Qe("menu"):null,!ea&&oe.some(r=>r.canHide)?jsxs(Fragment,{children:[jsx(k,{}),jsx(h,{children:V.columns}),jsx(m,{children:oe.filter(r=>r.canHide).map(r=>jsx(s,{checked:r.visible,onCheckedChange:_=>{Pe?.(r.id,_===true);},children:r.label},r.id))})]}):null,ye&&!ea?jsxs(Fragment,{children:[jsx(k,{}),jsxs(h,{children:[V.pinLeft," / ",V.pinRight]}),jsx(m,{children:oe.map(r=>jsxs(g,{onSelect:_=>{_.preventDefault();},children:[jsx("span",{className:"min-w-0 flex-1 truncate",children:r.label}),jsx("button",{type:"button",className:"px-1 text-xs","aria-label":`${V.pinLeft}: ${r.label}`,onClick:_=>{_.stopPropagation(),xe(r.id,"left");},children:"L"}),jsx("button",{type:"button",className:"px-1 text-xs","aria-label":`${V.pinRight}: ${r.label}`,onClick:_=>{_.stopPropagation(),xe(r.id,"right");},children:"R"}),jsx("button",{type:"button",className:"px-1 text-xs","aria-label":`${V.unpin}: ${r.label}`,onClick:_=>{_.stopPropagation(),xe(r.id,false);},children:"-"})]},`pin-${r.id}`))})]}):null,je&&Aa.length?jsxs(Fragment,{children:[jsx(k,{}),jsx(h,{children:V.grouping}),jsx(m,{children:Aa.map(r=>{let _=typeof r.columnDef.header=="string"?r.columnDef.header:r.id,se=r.getIsGrouped();return jsx(s,{checked:se,onCheckedChange:()=>{r.toggleGrouping();},children:se?V.ungroup(_):V.groupBy(_)},`group-${r.id}`)})})]}):null]})]}):null,Ta&&O&&C?jsxs(o,{children:[jsxs(K,{children:[jsx(E,{asChild:true,children:jsxs(t,{type:"button",variant:S==="table"?"default":"outline","aria-pressed":S==="table",className:S==="table"?he:`${he} ${a.toolbarInputButton??""}`,size:"icon-sm",onClick:()=>{C("table");},children:[jsx(r,{}),jsx("span",{className:"sr-only",children:V.switchToTableView??re.switchToTableView})]})}),jsx(Q,{children:V.tableView??re.tableView})]}),jsxs(K,{children:[jsx(E,{asChild:true,children:jsxs(t,{type:"button",variant:S==="card"?"default":"outline","aria-pressed":S==="card",className:S==="table"?`${he} ${a.toolbarInputButton??""}`:he,size:"icon-sm",onClick:()=>{C("card");},children:[jsx(q$1,{}),jsx("span",{className:"sr-only",children:V.switchToCardView??re.switchToCardView})]})}),jsx(Q,{children:V.cardView??re.cardView})]})]}):null,Va?We.map(r=>{let _=!r.iconOnly&&!!r.icon,se=jsxs(t,{type:"button",variant:r.variant??"outline",size:r.iconOnly?"icon-sm":"default",onClick:()=>{r.onClick({rows:J,openFileDialog:Ze});},disabled:r.disabled,"aria-label":r.label,title:r.iconOnly?void 0:r.label,className:`size-7 shrink-0 ${r.iconOnly?"":`${_?"px-0 @min-[768px]/data-table:px-2.5":""} @min-[768px]/data-table:h-8 @min-[768px]/data-table:w-fit`} ${r.iconOnly||_?he:""} ${a.toolbarInputButton??""}`,children:[r.icon?jsx(r.icon,{"data-icon":r.iconOnly?void 0:"inline-start"}):null,r.iconOnly?jsx("span",{className:"sr-only",children:r.label}):_?jsx("span",{className:"hidden @min-[768px]/data-table:inline",children:r.label}):jsx("span",{children:r.label})]},r.key);return r.iconOnly?jsxs(K,{children:[jsx(E,{asChild:true,children:se}),jsx(Q,{children:r.label})]},r.key):se}):null]})]}),ca&&Oe?jsx("div",{"data-dtp-slot":"data-table-toolbar-compact-search",className:"min-w-0 @min-[768px]/data-table:hidden",children:jsxs(I,{children:[jsx(L,{ref:aa,value:w,onChange:r=>{X(r.target.value);},placeholder:H}),jsx(x,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})}),w?jsx(x,{align:"inline-end",children:jsx("button",{type:"button",className:`inline-flex size-5 items-center justify-center rounded-md transition-colors focus-visible:outline-none ${a.toolbarIconButton??"opacity-70 hover:opacity-100"}`,onClick:()=>{X("");},"aria-label":V.clearSearch,title:V.clearSearch,children:jsx(u$1,{})})}):null]})}):null,Fe.length?jsxs("div",{"data-dtp-slot":"data-table-toolbar-filters",className:"flex min-w-0 flex-wrap items-center gap-2",children:[Fe.map(r=>jsx(u,{filter:r,labels:V,onColumnFilterChange:fe},r.id)),Fe.some(r=>Kn(r.value))?jsx(t,{type:"button",variant:"ghost",size:"sm",onClick:Ve,children:V.clearFilters}):null]}):null,ga?Qe("chips"):null,je&&qe.length?jsxs("div",{"data-dtp-slot":"data-table-grouping-bar","aria-label":V.grouping,className:"flex flex-wrap items-center gap-2",children:[jsxs("span",{className:"text-sm opacity-70",children:[V.grouping,":"]}),qe.map((r,_)=>{let se=typeof r.columnDef.header=="string"?r.columnDef.header:r.id,f=M=>{let te=[...Te.store.state.grouping],[Y]=te.splice(_,1);Y!==void 0&&(te.splice(M,0,Y),Te.setGrouping(te));};return jsxs("div",{className:"inline-flex items-center rounded-md border",children:[jsx(t,{type:"button",variant:"ghost",size:"sm",disabled:_===0,onClick:()=>f(_-1),"aria-label":V.moveGroupingEarlier(se),children:jsx("span",{"aria-hidden":"true",children:"\u2190"})}),jsxs(t,{type:"button",variant:"secondary",size:"sm",onClick:()=>r.toggleGrouping(),"aria-label":V.removeGrouping(se),children:[se," ",jsx("span",{"aria-hidden":"true",children:"\xD7"})]}),jsx(t,{type:"button",variant:"ghost",size:"sm",disabled:_===qe.length-1,onClick:()=>f(_+1),"aria-label":V.moveGroupingLater(se),children:jsx("span",{"aria-hidden":"true",children:"\u2192"})})]},`grouping-bar-${r.id}`)})]}):null]}),Me&&$?jsx("div",{"data-dtp-slot":"data-table-toolbar-desktop-custom",className:"hidden flex-row items-center gap-3 @min-[1024px]/data-table:flex",children:$}):null]})};function u({filter:i,labels:y,onColumnFilterChange:b}){let[P,F]=D.useState("");if(i.type==="text")return jsxs(I,{className:"min-w-48 max-w-64",children:[jsx(L,{value:typeof i.value=="string"?i.value:"",onChange:p=>{b(i.id,p.target.value);},placeholder:i.placeholder??i.label,"aria-label":`${y.filters}: ${i.label}`}),jsx(x,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})})]});if(i.type==="numberRange"||i.type==="dateRange"){let p=ld(i.value),A=i.type==="numberRange"?"number":"date",j=y.filterFrom??re.filterFrom,N=y.filterTo??re.filterTo;return jsxs("div",{role:"group","aria-label":`${y.filters}: ${i.label}`,className:"flex min-w-0 items-center gap-1.5",children:[jsxs(I,{className:"min-w-32 max-w-44",children:[jsx(L,{type:A,inputMode:A==="number"?"decimal":void 0,value:p.from??"",min:i.min,max:i.max,step:A==="number"?i.step:void 0,onChange:q=>{b(i.id,{...p,from:Ji(q.target.value,A)});},"aria-label":`${i.label}: ${j}`}),jsx(x,{align:"inline-start",children:j})]}),jsxs(I,{className:"min-w-32 max-w-44",children:[jsx(L,{type:A,inputMode:A==="number"?"decimal":void 0,value:p.to??"",min:i.min,max:i.max,step:A==="number"?i.step:void 0,onChange:q=>{b(i.id,{...p,to:Ji(q.target.value,A)});},"aria-label":`${i.label}: ${N}`}),jsx(x,{align:"inline-start",children:N})]})]})}let w=i.type==="boolean",H=i.type==="faceted",X=[{label:i.trueLabel??y.filterTrue??re.filterTrue,value:"true"},{label:i.falseLabel??y.filterFalse??re.filterFalse,value:"false"}],$=w?X:i.options,B=H&&P?$.filter(p=>p.label.toLocaleLowerCase().includes(P.toLocaleLowerCase())):$,S=typeof i.value=="string"||typeof i.value=="boolean"?String(i.value):"",C=Array.isArray(i.value)?i.value.map(String):S?[S]:[],O=C.length===0?i.label:`${i.label}: ${C.length===1?$.find(p=>p.value===String(C[0]))?.label??C[0]:C.length}`;return jsxs(l,{children:[jsx(v,{asChild:true,children:jsx(t,{type:"button",variant:"outline",size:"sm",children:O})}),jsxs(d,{align:"start",className:"w-56",children:[jsx(h,{children:i.label}),H&&i.searchable!==false?jsx("div",{className:"px-2 pb-2",children:jsxs(I,{children:[jsx(L,{value:P,onChange:p=>{F(p.target.value);},placeholder:i.searchPlaceholder??y.facetSearch(i.label),"aria-label":y.facetSearch(i.label)}),jsx(x,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})})]})}):null,jsxs(m,{children:[i.type==="select"||w||H?jsx(g,{onClick:()=>{b(i.id,"");},children:y.allFilterOptions??re.allFilterOptions}):null,B.map(p=>jsxs(s,{checked:C.includes(p.value),disabled:p.disabled,onCheckedChange:A=>{if(i.type==="select"||w){b(i.id,A===true?p.value:"");return}let j=new Set(C);A===true?j.add(p.value):j.delete(p.value),b(i.id,Array.from(j));},children:[jsx("span",{className:"min-w-0 flex-1 truncate",children:p.label}),p.count!==void 0?jsx("span",{className:"ml-3 tabular-nums opacity-70",children:p.count}):null]},p.value))]})]})]})}}function Kn(e){return Array.isArray(e)?e.length>0:e&&typeof e=="object"?"from"in e||"to"in e?Object.values(e).some(Kn):true:e!=null&&e!==""}function ld(e){if(!e||typeof e!="object"||Array.isArray(e))return {};let a=e;return {...typeof a.from=="number"||typeof a.from=="string"?{from:a.from}:{},...typeof a.to=="number"||typeof a.to=="string"?{to:a.to}:{}}}function Ji(e,a){if(e)return a==="number"?Number(e):e}var sd=D.lazy(async()=>({default:(await import('./data-table-virtual-table-panel-CMM22FZ7.js')).DataTableVirtualTablePanel}));function Zi(e){let a=typeof e.virtualization=="object"?e.virtualization:void 0;return e.virtualization===true||a?.enabled===true?jsx(D.Suspense,{fallback:jsx(e$1,{...e,rowsToRender:e.rowsToRender.slice(0,Math.max(1,Math.floor(a?.fallbackRowCount??20)))}),children:jsx(sd,{...e})}):jsx(e$1,{...e})}var dd="data-table-pro:saved-views:";var ar=["sorting","columnVisibility","columnFilters","grouping","columnOrder","columnPinning","rowPinning","columnSizing","density","viewMode","showHiddenRows","globalFilter"],er=0;function Qa(e){let a=Yn(e);if(!e||!a)return [];let t;try{t=a.getItem(Jn(e.key));}catch(d){return e.onError?.({error:d,operation:"read"}),[]}if(!t)return [];let o;try{o=(e.deserialize??JSON.parse)(t);}catch(d){return e.onError?.({error:d,operation:"deserialize"}),[]}if(!Je(o)||!("version"in o)||!("views"in o))return [];let l=e.version??1,s=o.views;if(o.version!==l){if(!e.migrate)return [];try{s=e.migrate({version:o.version,views:o.views},l);}catch(d){return e.onError?.({error:d,operation:"migrate"}),[]}}return Array.isArray(s)?s.map(d=>ud(d,e.slices)).filter(d=>!!d):[]}function tr(e,a,t){let o=a.trim();if(!e||!o)return;let l=new Date().toISOString(),s={id:wd(),name:o,createdAt:l,updatedAt:l,state:cd(t,e.slices)},d=[...Qa(e),s];return Qn(e,d,"create")?qn(s):void 0}function nr(e,a,t){let o=t.trim();if(!e||!o)return;let l,s=Qa(e).map(d=>d.id!==a?d:(l={...d,name:o,updatedAt:new Date().toISOString()},l));if(l)return Qn(e,s,"rename")?qn(l):void 0}function or(e,a){if(!e)return false;let t=Qa(e),o=t.filter(l=>l.id!==a);return o.length!==t.length&&Qn(e,o,"delete")}function ir(e){let a=Yn(e);if(!e||!a)return false;try{a.removeItem(Jn(e.key));}catch(t){return e.onError?.({error:t,operation:"remove"}),false}return e.onChange?.([],"clear"),true}function Qn(e,a,t){let o=Yn(e);if(!o)return false;let l;try{let d={version:e.version??1,views:a};l=(e.serialize??JSON.stringify)(d);}catch(d){return e.onError?.({error:d,operation:"serialize"}),false}try{o.setItem(Jn(e.key),l);}catch(d){return e.onError?.({error:d,operation:"write"}),false}let s=a.map(qn);return e.onChange?.(s,t),true}function cd(e,a){let t=new Set(a??ar),o={};for(let l of Object.keys(e))t.has(l)&&Object.assign(o,{[l]:pd(l,e[l])});return o}function ud(e,a){if(!(!Je(e)||typeof e.id!="string"||!e.id||typeof e.name!="string"||!e.name.trim()||typeof e.createdAt!="string"||typeof e.updatedAt!="string"))return {id:e.id,name:e.name.trim(),createdAt:e.createdAt,updatedAt:e.updatedAt,state:rr(e.state,a)}}function rr(e,a){if(!Je(e))return {};let t=new Set(a??ar),o={},l=gd(e.sorting);t.has("sorting")&&l&&(o.sorting=l);let s=bd(e.pagination);t.has("pagination")&&s&&(o.pagination=s);let d=Wn(e.rowSelection);t.has("rowSelection")&&d&&(o.rowSelection=d);let m=Wn(e.columnVisibility);t.has("columnVisibility")&&m&&(o.columnVisibility=m);let g=md(e.columnFilters);t.has("columnFilters")&&g&&(o.columnFilters=g);let h=st(e.grouping);t.has("grouping")&&h&&(o.grouping=h);let k=e.expanded===true?true:Wn(e.expanded);t.has("expanded")&&k!==void 0&&(o.expanded=k);let v=st(e.columnOrder);t.has("columnOrder")&&v&&(o.columnOrder=v);let I=fd(e.columnPinning);t.has("columnPinning")&&I&&(o.columnPinning=I);let x=Td(e.rowPinning);t.has("rowPinning")&&x&&(o.rowPinning=x);let L=Dd(e.columnSizing);return t.has("columnSizing")&&L&&(o.columnSizing=L),t.has("density")&&(e.density==="compact"||e.density==="comfortable"||e.density==="spacious")&&(o.density=e.density),t.has("viewMode")&&(e.viewMode==="table"||e.viewMode==="card")&&(o.viewMode=e.viewMode),t.has("showHiddenRows")&&typeof e.showHiddenRows=="boolean"&&(o.showHiddenRows=e.showHiddenRows),t.has("globalFilter")&&typeof e.globalFilter=="string"&&(o.globalFilter=e.globalFilter),o}function qn(e){return {...e,state:rr(e.state,Object.keys(e.state))}}function pd(e,a){return Array.isArray(a)?a.map(t=>Je(t)?{...t}:t):Je(a)?e==="columnPinning"||e==="rowPinning"?{...e==="columnPinning"?{left:Array.isArray(a.left)?[...a.left]:void 0,right:Array.isArray(a.right)?[...a.right]:void 0}:{top:Array.isArray(a.top)?[...a.top]:void 0,bottom:Array.isArray(a.bottom)?[...a.bottom]:void 0}}:{...a}:a}function gd(e){if(Array.isArray(e))return e.filter(a=>Je(a)&&typeof a.id=="string").map(a=>({id:a.id,desc:!!a.desc}))}function bd(e){if(!(!Je(e)||!Number.isInteger(e.pageIndex)||e.pageIndex<0||!Number.isInteger(e.pageSize)||e.pageSize<1))return {pageIndex:e.pageIndex,pageSize:e.pageSize}}function md(e){if(Array.isArray(e))return e.filter(a=>Je(a)&&typeof a.id=="string"&&Object.prototype.hasOwnProperty.call(a,"value")).map(a=>({id:a.id,value:a.value}))}function fd(e){if(Je(e))return {left:st(e.left)??[],right:st(e.right)??[]}}function Td(e){if(Je(e))return {top:st(e.top)??[],bottom:st(e.bottom)??[]}}function Wn(e){if(Je(e))return Object.fromEntries(Object.entries(e).filter(a=>typeof a[1]=="boolean"))}function Dd(e){if(Je(e))return Object.fromEntries(Object.entries(e).filter(a=>typeof a[1]=="number"&&Number.isFinite(a[1])&&a[1]>=0))}function st(e){if(Array.isArray(e))return e.filter(a=>typeof a=="string")}function Yn(e){if(e){if(e.storage)return e.storage;if(!(typeof window>"u"))try{return window.localStorage}catch(a){e.onError?.({error:a,operation:"read"});return}}}function wd(){return typeof globalThis.crypto?.randomUUID=="function"?globalThis.crypto.randomUUID():(er+=1,`view-${Date.now().toString(36)}-${er.toString(36)}`)}function Jn(e){return `${dd}${e}`}function Je(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function lr({columns:e,currentColumnFilters:a,currentColumnPinning:t$1,effectiveColumnVisibility:o$1,enableColumnFilters:l$2,handleColumnFiltersChange:s,handleColumnPinningChange:d,labels:m,table:g,toolbarActions:h,visibleData:k,csvExport:v$1}){let I=D.useMemo(()=>l(e).map(({column:i,index:y})=>{let b=t(i,y),P=i.header,F=v(i),w=typeof P=="string"?P:F?D$1(F):D$1(b),H=t$1.left?.includes(b)===true?"left":t$1.right?.includes(b)===true?"right":false;return {id:b,label:w,visible:o$1[b]!==false,canHide:i.enableHiding!==false,pinned:H}}),[e,t$1,o$1]),x=D.useMemo(()=>l$2===false?[]:l(e).flatMap(({column:i,index:y})=>{let b=i.meta?.filter;if(!b)return [];let P=t(i,y),F=i.header,w=v(i),H=b.label??(typeof F=="string"?F:w?D$1(w):D$1(P)),X=a.find(C=>C.id===P),$=b.faceting?.options,B=b.type==="numberRange"?g.getColumn(P)?.getFacetedMinMaxValues():void 0,S=b.type==="faceted"&&$?typeof $=="function"?$({rows:k}):$:b.type==="faceted"?Array.from(g.getColumn(P)?.getFacetedUniqueValues()??[]).map(([C,O])=>({label:b.faceting?.getOptionLabel?.(C)??String(C),value:String(C),count:O})):typeof b.options=="function"?b.options({rows:k}):b.options??[];return [{id:P,label:H,type:b.type,value:X?.value,placeholder:b.placeholder,options:m$1(S),searchable:b.faceting?.searchable,searchPlaceholder:b.faceting?.searchPlaceholder,trueLabel:b.trueLabel,falseLabel:b.falseLabel,min:b.min??B?.[0],max:b.max??B?.[1],step:b.step}]}),[e,a,l$2,g,k]),L=D.useCallback((i,y)=>{s(b=>{let P=b.filter(F=>F.id!==i);return o(y)&&P.push({id:i,value:y}),P});},[s]),K=D.useCallback(()=>{s([]);},[s]),Q=D.useCallback((i,y)=>{d(b=>{let P=(b.left??[]).filter(w=>w!==i),F=(b.right??[]).filter(w=>w!==i);return y==="left"&&P.push(i),y==="right"&&F.push(i),{left:P,right:F}});},[d]),E=D.useCallback(()=>{if(v$1)return q({csvExport:v$1,table:g,labels:m})},[v$1,m,g]),u=D.useMemo(()=>v$1?[...h??[],{key:"__csv_export__",label:m.exportCsv,icon:l$1,placement:"trailing",onClick:E}]:h??[],[v$1,E,m.exportCsv,h]);return {columnVisibilityOptions:I,effectiveToolbarActions:u,handleClearColumnFilters:K,handleToolbarColumnFilterChange:L,handleToolbarColumnPinningChange:Q,toolbarColumnFilters:x}}function dr({columns:e,data:a,getRowId:t}){let o=D.useRef({columns:e,data:a,getRowId:t}),l=D.useRef(new Set);D.useEffect(()=>{if(!Cd())return;let s=o.current;s.data!==a&&sr(s.data,a)&&!l.current.has("data")&&en(l.current,"data","The data array identity changed. Keep rows immutable and memoize unchanged data so filtering, row models, and virtual measurements can be reused."),s.columns!==e&&sr(s.columns,e)&&!l.current.has("columns")&&en(l.current,"columns","The columns array identity changed. Memoize stable column definitions so the search index and table column model can be reused."),s.getRowId!==t&&!l.current.has("getRowId")&&en(l.current,"getRowId","getRowId identity changed. Memoize it and return an immutable, unique id to preserve row state and virtual scroll anchoring.");let d=new Set;for(let m=0;mObject.is(t,a[o]))}function en(e,a,t){e.add(a),console.warn(`[data-table-pro] ${t}`);}function Cd(){return globalThis.process?.env?.NODE_ENV!=="production"}var hd=D.lazy(()=>import('./data-table-auto-page-size-EICVZJQ5.js'));function Cu(e){return Rd(e)}function Rd(e,a={}){let t$1=a.CardPanel??hi,o=a.TablePanel??Zi,l$1=e.classNames??{},{rootClassName:s$1,Button:d,Checkbox:m,Input:g,ScrollArea:h$1,ScrollBar:k,Skeleton:v,Table:I,TableBody:x,TableCell:L,TableFooter:K="tfoot",TableHead:Q,TableHeader:E,TableRow:u$1,Tooltip:i,TooltipContent:y,TooltipProvider:b=D.Fragment,TooltipTrigger:P}=e,F=Wi(e),w=Yi(e),{DataTableCountOnlyFooter:H,DataTableFooter:X}=Qi(e),$=Xi(e),B=Ui(e,w),S=D.lazy(async()=>{let{createDataTableStateOverlay:O}=await import('./data-table-state-overlay-AQ7VU6EM.js');return {default:O(e)}}),C={minSize:80,size:180,maxSize:720};return function({columns:p,data:A,getRowId:j$1,children:N,title:q$1,description:G,toolbarQueryValue:T,onToolbarQueryValueChange:J,toolbarQueryPlaceholder:oe,toolbarQueryDebounceMs:Pe,manualFiltering:ye=false,enableToolbarQueryFiltering:xe=true,globalFilterFn:Fe,columnFilters:fe,onColumnFiltersChange:Ve,enableColumnFilters:Be,customToolbar:Z,compactToolbar:Ne,rowsPerPageOptions:V=[10,20,50,100],totalRowCount:me,hasNextPage:Ze,sorting:je,onSortingChange:ea,manualSorting:ga=false,grouping:ce,onGroupingChange:ra,manualGrouping:Ue=false,enableGrouping:ba=false,groupedColumnMode:Ge="reorder",aggregationFns:la,pageIndex:ma,pageSize:sa,autoPageSize:da=false,onPageIndexChange:Te,onPageSizeChange:aa,pageCount:Oe,manualPagination:fa=false,rowSelection:he,onRowSelectionChange:Ke,enableRowSelection:We=false,enableMultiRowSelection:Ea=true,enableSubRowSelection:ca=true,getRowCanSelect:Fa,rowSelectionSelectAllScope:Va="page",expanded:ue,onExpandedChange:Ta,getSubRows:Me,manualExpanding:Ma=false,paginateExpandedRows:$e,filterFromLeafRows:Da,maxLeafRowFilterDepth:wa,detailPanel:Ae,getRowCanExpand:Ca,renderExpandedRow:ua,columnOrder:ya,onColumnOrderChange:Qe,enableColumnReordering:Aa=false,columnGroupHeaderHeight:qe,columnPinning:ta,onColumnPinningChange:Ba,enableColumnPinning:Ye=false,rowPinning:ha,onRowPinningChange:Ga,enableRowPinning:r=false,keepPinnedRows:_=true,toolbarActions:se=[],selectionActions:f=[],rowActions:M=[],csvExport:te,clipboard:Y,enableCellSelection:de=false,cellSelection:ie,defaultCellSelection:Ia,onCellSelectionChange:Ra,gridCommands:Sa,density:ht,onDensityChange:an,enableDensityToggle:U=false,columnPrefsKey:ke,persistence:va,savedViews:pe,toolbarDataOperations:$a,initialState:ne,state:Se,onStateChange:Re,apiRef:pr,labels:Zn,summaryRows:gr=[],cardRenderer:tn,cardSizing:br,cardGridClassName:mr,cardClassName:fr,viewMode:eo,onViewModeChange:Tr,enableViewToggle:Dr=false,enablePrint:ao=false,enableFullscreen:Rt=false,emptyState:wr,stateOverlay:qa,isLoading:to=false,loadingRowCount:Cr,getRowLoadingState:yr,hiddenRows:no,showHiddenRows:oo,onShowHiddenRowsChange:hr,infiniteScroll:dt,editableRows:za,columnVisibility:io,onColumnVisibilityChange:Rr,columnSizing:ro,onColumnSizingChange:Sr,enableColumnResizing:lo=false,columnResizeMode:vr="onEnd",layoutMode:St="fill",stickyHeader:Pr=true,scrollbarVisibility:so,showFooter:xr=true,showToolbar:co=true,dir:nn="ltr",flexGrow:Ya=true,toolbarVisibility:uo,className:kr,tableClassName:Er,tableContainerClassName:po,stripedRows:go=false,getRowClassName:bo,onRowClick:on,onActionError:ct,dragAndDrop:Ja,fileUpload:Pa,virtualization:rn,accessibility:mo,interactiveGrid:vt}){let ja=D.useRef(null),fo=D.useRef(null),To=D.useRef(null),Fr=D.useRef(null),ln=D.useRef(null),Vr=D.useRef(null),[Do,sn]=D.useState(0),Mr=D.useId(),Ar=D.useId();dr({columns:p,data:A,getRowId:j$1}),D.useMemo(()=>u(p),[p]);let Ee=D.useMemo(()=>Pi(Zn),[Zn]),dn=$a===true?{columnChooser:true,savedViews:true,resetLayout:true}:$a===false?{}:$a??{},cn=mo?.mode==="grid"||vt===true||typeof vt=="object",[La,Pt]=ve({defaultValue:Ia??null,onChange:Ra,value:ie}),Ir=T??Se?.globalFilter,zr=je??Se?.sorting,Lr=ce??Se?.grouping,xt=ma??Se?.pagination?.pageIndex,Xa=sa??Se?.pagination?.pageSize,Nr=he??Se?.rowSelection,Or=io??Se?.columnVisibility,_r=fe??Se?.columnFilters,Hr=ue??Se?.expanded,Br=ya??Se?.columnOrder,Gr=ta??Se?.columnPinning,$r=ha??Se?.rowPinning,jr=ro??Se?.columnSizing,Ur=ht??Se?.density,Kr=eo??Se?.viewMode,Wr=oo??Se?.showHiddenRows,wo=co&&(uo?.title??true),Co=wo&&q$1?Mr:void 0,yo=wo&&G?Ar:void 0;vd(Se,{columnFilters:fe!==void 0,columnOrder:ya!==void 0,columnPinning:ta!==void 0,rowPinning:ha!==void 0,columnSizing:ro!==void 0,columnVisibility:io!==void 0,density:ht!==void 0,expanded:ue!==void 0,grouping:ce!==void 0,globalFilter:T!==void 0,pagination:ma!==void 0||sa!==void 0,rowSelection:he!==void 0,showHiddenRows:oo!==void 0,sorting:je!==void 0,viewMode:eo!==void 0});let Qr=He("globalFilter",J,Re),qr=He("sorting",ea,Re),Yr=He("grouping",ra,Re),Jr=He("rowSelection",Ke,Re),Xr=He("columnVisibility",Rr,Re),Zr=He("columnFilters",Ve,Re),el=He("expanded",Ta,Re),al=He("columnOrder",Qe,Re),tl=He("columnPinning",Ba,Re),nl=He("rowPinning",Ga,Re),ol=He("columnSizing",Sr,Re),il=He("density",an,Re),rl=He("viewMode",Tr,Re),ll=He("showHiddenRows",hr,Re),kt=D.useCallback(n=>{Te?.(n),Re?.(R=>({...R,pagination:{pageIndex:n,pageSize:Xa??R.pagination.pageSize}}));},[Te,Re,Xa]),un=D.useCallback(n=>{aa?.(n),Re?.(R=>({...R,pagination:{pageIndex:xt??R.pagination.pageIndex,pageSize:n}}));},[aa,Re,xt]),Ie=D.useCallback((n,R)=>{Sd(R,n,ct);},[ct]),ho=D.useMemo(()=>M.map(n=>({...n,onClick:R=>{Ie({actionKey:n.key,row:R,source:"rowAction"},()=>n.onClick(R));}})),[M,Ie]),Ro=D.useMemo(()=>on?n=>{Ie({row:n.row,source:"rowClick"},()=>on(n));}:void 0,[on,Ie]),sl=D.useCallback((n,R)=>{ct?.({error:n,row:R,source:"edit"});},[ct]),{containerWidth:dl,currentColumnFilters:Et,currentColumnOrder:pn,currentColumnPinning:Ft,currentRowPinning:gn,currentColumnSizing:Za,currentColumnVisibility:So,currentDensity:ut,currentExpanded:Vt,currentGrouping:bn,currentPagination:na,currentRowSelection:Mt,currentShowHiddenRows:mn,currentSorting:At,currentViewMode:et,effectiveColumnVisibility:It,globalFilterValue:cl,handleDensityChange:fn,handleShowHiddenRowsChange:Tn,handleViewModeChange:Dn,localSearchValue:Ua,resolvedLoadingRowCount:ul,resolvedToolbarQueryPlaceholder:pl,selectedRowIds:gl,selectedRows:bl,setCurrentColumnFilters:vo,setCurrentColumnOrder:ml,setCurrentColumnPinning:zt,setCurrentRowPinning:fl,setCurrentColumnVisibility:Tl,setCurrentExpanded:Po,setCurrentGrouping:Dl,setCurrentRowSelection:Lt,setCurrentSorting:wl,setLocalColumnSizing:Cl,setLocalPagination:wn,setLocalSearchValue:Cn,shouldRenderInitialLoading:yn,tableData:yl,tableGetRowId:hl,visibleData:Rl}=Bi({columnFilters:_r,columnOrder:Br,columnPinning:Gr,rowPinning:$r,columnSizing:jr,columnPrefsKey:ke,persistence:va,columnVisibility:Or,columns:p,containerRef:ja,data:A,density:Ur,enableRowSelection:We,enableToolbarQueryFiltering:xe,expanded:Hr,grouping:Lr,getSubRows:Me,getRowId:j$1,hiddenRows:no,isLoading:to,loadingRowCount:Cr,manualFiltering:ye,initialState:ne,onColumnFiltersChange:Zr,onColumnOrderChange:al,onColumnPinningChange:tl,onRowPinningChange:nl,onColumnSizingChange:ol,onColumnVisibilityChange:Xr,onDensityChange:il,onExpandedChange:el,onGroupingChange:Yr,onPageIndexChange:kt,onRowSelectionChange:Jr,onShowHiddenRowsChange:ll,onSortingChange:qr,onToolbarQueryValueChange:Qr,onViewModeChange:rl,pageIndex:xt,pageSize:Xa,resolvedLabels:Ee,rowSelection:Nr,rowsPerPageOptions:V,selectionActions:f,showHiddenRows:Wr,sorting:zr,toolbarQueryDebounceMs:Pe,toolbarQueryPlaceholder:oe,toolbarQueryValue:Ir,viewMode:Kr}),hn=!!(ua&&!Ae&&!Me),at=Ae??(ua?{getRowCanExpand:Me?void 0:Ca,render:ua}:void 0),[Rn,xo]=ve({defaultValue:()=>hn?ne?.expanded??{}:{},onChange:hn?Po:at?.onExpandedChange,value:hn?Vt:at?.expanded}),{cancelEditing:Sn,clearEditError:ko,draftValues:Sl,editErrors:vn,editingRowId:Pn,isEditDirty:xn,isSavingEdit:kn,saveEdit:En,setDraftValues:vl,setEditingRowId:Pl,startEditingRow:xl}=a$3({columns:p,editableRows:za,onError:sl}),kl=D.useMemo(()=>({cancel:Sn,cancelOnEscape:za?.cancelOnEscape!==false,clearError:ko,commit:n=>{En(n);},commitOnEnter:za?.commitOnEnter!==false,errors:vn,isDirty:xn,isPending:kn}),[Sn,ko,za?.cancelOnEscape,za?.commitOnEnter,vn,xn,kn,En]),{viewportElement:Fn,viewportHeight:Vn}=a$4(To,et),Eo=typeof da=="object"?da:void 0,El=D.useCallback(n=>{n!==na.pageSize&&(na.pageIndex!==0&&kt(0),un(n),Xa===void 0&&wn({pageIndex:0,pageSize:n}));},[na.pageIndex,na.pageSize,kt,un,Xa,wn]),Fl=da===true||Eo!==void 0,Nt=D.useCallback(()=>typeof window>"u"||typeof window.print!="function"?false:(window.print(),true),[]),Ot=D.useCallback(async()=>{let n=ja.current;return !n||typeof document>"u"?false:document.fullscreenElement?typeof document.exitFullscreen!="function"?false:(await document.exitFullscreen(),true):typeof n.requestFullscreen!="function"?false:(await n.requestFullscreen(),true)},[]),[Fo,Vl]=D.useState(false);D.useEffect(()=>{if(!Rt||typeof document>"u")return;let n=()=>{Vl(document.fullscreenElement===ja.current);};return n(),document.addEventListener("fullscreenchange",n),()=>document.removeEventListener("fullscreenchange",n)},[Rt]);let Ml=D.useCallback(()=>{Pa?.disabled||fo.current?.click();},[Pa?.disabled]),Al=D.useCallback(n=>{Ie({source:"fileUpload"},()=>Pa?.onFilesSelected(n));},[Pa,Ie]),Il=D.useMemo(()=>{if(St!=="fill")return false;let n=l(p).filter(({column:R,index:le})=>It[t(R,le)]!==false);return n.length>0&&n.every(({column:R,index:le})=>{let gt=t(R,le);return h(R)||Object.prototype.hasOwnProperty.call(Za,gt)})},[p,Za,It,St]),zl=xi({Button:d,Checkbox:m,DataTableRowActions:w,Tooltip:i,TooltipContent:y,TooltipTrigger:P,cancelEditing:Sn,columns:p,editableRows:za,editErrors:vn,editingRowId:Pn,enableRowSelection:We,enableRowPinning:r,hasTreeExpansion:!!Me,isSavingEdit:kn,isEditDirty:xn,includeFillSpacer:Il,labels:Ee,lastSelectedRowIdRef:Vr,detailPanel:at,detailExpanded:Rn,onDetailExpandedChange:xo,rowSelectionSelectAllScope:Va,rowActions:ho,saveEdit:En,startEditingRow:xl,tableRef:ln}),Ll=D.useMemo(()=>j(p),[p]),{effectivePageCount:Nl,footerTotalRowCount:Ol,handleFooterPageIndexChange:_l,handleFooterPageSizeChange:Hl,isPageCountKnown:Bl,renderedRows:Vo,topPinnedRows:Gl,bottomPinnedRows:$l,reorderColumn:Mo,rowsToRender:jl,sentinelRef:Ao,table:ae,virtualPaddingBottom:Ul,virtualPaddingTop:Kl,visibleLeafColumns:Mn}=Ai({autoResetPageIndex:false,columnGroupPaths:Ll,columnResizeMode:vr,dir:nn,currentColumnFilters:Et,currentColumnOrder:pn,currentColumnPinning:Ft,currentRowPinning:gn,currentColumnSizing:Za,currentExpanded:Vt,currentGrouping:bn,currentPagination:na,currentRowSelection:Mt,currentSorting:At,currentViewMode:et,defaultColumn:C,effectiveColumnVisibility:It,enableColumnResizing:lo,enableRowPinning:r,enableRowSelection:We,enableMultiRowSelection:Ea,enableSubRowSelection:ca,getRowCanSelect:Fa,getRowCanExpand:Ca,getSubRows:Me,aggregationFns:la,groupedColumnMode:Ge,globalFilterFn:Fe,globalFilterValue:cl,hasNextPage:Ze,handleColumnFiltersChange:vo,handleColumnOrderChange:ml,handleColumnPinningChange:zt,handleRowPinningChange:fl,handleColumnVisibilityChange:Tl,handleExpandedChange:Po,handleGroupingChange:Dl,infiniteScroll:dt,keepPinnedRows:_,manualFiltering:ye,manualGrouping:Ue,manualExpanding:Ma,manualPagination:fa,manualSorting:ga,onActionError:ct,onPageIndexChange:kt,onPageSizeChange:un,pageCount:Oe,pageIndex:xt,pageSize:Xa,paginateExpandedRows:$e,filterFromLeafRows:Da,maxLeafRowFilterDepth:wa,setCurrentRowSelection:Lt,setCurrentSorting:wl,setLocalColumnSizing:Cl,setLocalPagination:wn,shouldRenderInitialLoading:yn,tableColumns:zl,tableData:yl,tableGetRowId:hl,tableRef:ln,totalRowCount:me,virtualization:rn}),Io=$i({columns:p,columnSizing:Za,editableRows:!!za,enableRowSelection:We,hasRowActions:M.length>0,hasRowExpansion:!!(Me||at),layoutMode:St,uiClassNames:l$1,visibleLeafColumns:Mn}),{explicitlySizedColumnIds:_t,fillMinWidth:Wl,getColumnLayout:Ql}=Io,ql=D.useMemo(()=>new Set(l(p).flatMap(({column:n,index:R})=>Object.prototype.hasOwnProperty.call(n,"cell")&&typeof n.cell=="function"?[t(n,R)]:[])),[p]),Yl=Mn.length,Jl=D.useMemo(()=>({Checkbox:m,Input:g,Skeleton:v,TableCell:L,TableRow:u$1}),[]),Xl=D.useMemo(()=>l(p).some(({column:n})=>n.meta?.cardTitle),[p]),Zl=D.useCallback((n,R)=>{_t.has(n)||Object.prototype.hasOwnProperty.call(ae.store.state.columnSizing,n)||flushSync(()=>{ae.setColumnSizing(le=>({...le,[n]:R}));});},[_t,ae]),es=D.useCallback(n=>{if(_t.has(n)){ae.getColumn(n)?.resetSize();return}ae.setColumnSizing(R=>{if(!Object.prototype.hasOwnProperty.call(R,n))return R;let le={...R};return delete le[n],le});},[_t,ae]),An=ae.getFilteredRowModel().rows.map(n=>n.original),In=qa?.empty??wr,zo=typeof In=="function"?In({rows:An,toolbarQueryValue:Ua}):In,Lo=D.useMemo(()=>qa?{...qa,onRetry:qa.onRetry?()=>Ie({source:"retry"},qa.onRetry):void 0}:void 0,[Ie,qa]),No=Lo?.error!=null?jsx(D.Suspense,{fallback:null,children:jsx(S,{labels:Ee,overlay:Lo,rows:An,toolbarQueryValue:Ua})}):void 0,{columnVisibilityOptions:as,effectiveToolbarActions:Oo,handleClearColumnFilters:ts,handleToolbarColumnFilterChange:ns,handleToolbarColumnPinningChange:os,toolbarColumnFilters:is}=lr({columns:p,currentColumnFilters:Et,currentColumnPinning:Ft,csvExport:te,effectiveColumnVisibility:It,enableColumnFilters:Be,handleColumnFiltersChange:vo,handleColumnPinningChange:zt,labels:Ee,table:ae,toolbarActions:se,visibleData:Rl}),rs=D.useMemo(()=>[...Oo,...ao?[{key:"__print__",label:Ee.print,placement:"trailing",onClick:()=>{Nt();}}]:[],...Rt?[{key:"__fullscreen__",label:Fo?Ee.exitFullscreen:Ee.enterFullscreen,placement:"trailing",onClick:()=>Ot()}]:[]].map(n=>({...n,onClick:R=>{Ie({actionKey:n.key,source:"toolbarAction"},()=>n.onClick(R));}})),[Oo,Rt,ao,Fo,Nt,Ee.enterFullscreen,Ee.exitFullscreen,Ee.print,Ie,Ot]),ls=D.useMemo(()=>f.map(n=>({...n,onClick:R=>{Ie({actionKey:n.key,source:"selectionAction"},()=>n.onClick(R));}})),[Ie,f]),_o=D.useMemo(()=>({sorting:At,pagination:na,rowSelection:Mt,columnVisibility:So,columnFilters:Et,expanded:Vt,grouping:bn,columnOrder:pn,columnPinning:Ft,rowPinning:gn,columnSizing:Za,density:ut,viewMode:et,showHiddenRows:mn,globalFilter:Ua}),[Et,pn,Ft,gn,Za,So,ut,Vt,bn,na,Mt,mn,At,et,Ua]),pt=D.useCallback(()=>xd(_o),[_o]),Na=D.useCallback(n=>{n.sorting!==void 0&&ae.setSorting(n.sorting),n.pagination!==void 0&&ae.setPagination(n.pagination),n.rowSelection!==void 0&&Lt(n.rowSelection),n.columnVisibility!==void 0&&ae.setColumnVisibility(n.columnVisibility),n.columnFilters!==void 0&&ae.setColumnFilters(n.columnFilters),n.expanded!==void 0&&ae.setExpanded(n.expanded),n.grouping!==void 0&&ae.setGrouping(n.grouping),n.columnOrder!==void 0&&ae.setColumnOrder(n.columnOrder),n.columnPinning!==void 0&&zt(n.columnPinning),n.rowPinning!==void 0&&ae.setRowPinning(n.rowPinning),n.columnSizing!==void 0&&ae.setColumnSizing(n.columnSizing),n.density!==void 0&&fn(n.density),n.viewMode!==void 0&&Dn(n.viewMode),n.showHiddenRows!==void 0&&Tn(n.showHiddenRows),n.globalFilter!==void 0&&Cn(n.globalFilter);},[fn,Tn,Dn,Cn,zt,Lt,ae]),tt=D.useCallback(()=>Ni(va??ke),[ke,va]),zn=D.useCallback(n=>{n?.clearPersistence&&tt(),Na({columnVisibility:ne?.columnVisibility??{},columnOrder:ne?.columnOrder??[],columnPinning:ne?.columnPinning??s(p),rowPinning:ne?.rowPinning??{top:[],bottom:[]},columnSizing:ne?.columnSizing??{}});},[tt,p,ne,Na]),Ho=D.useCallback(n=>{n?.clearPersistence&&tt(),Na({sorting:ne?.sorting??[],pagination:ne?.pagination??{pageIndex:0,pageSize:V[0]??20},rowSelection:ne?.rowSelection??{},columnVisibility:ne?.columnVisibility??{},columnFilters:ne?.columnFilters??[],expanded:ne?.expanded??{},grouping:ne?.grouping??[],columnOrder:ne?.columnOrder??[],columnPinning:ne?.columnPinning??s(p),rowPinning:ne?.rowPinning??{top:[],bottom:[]},columnSizing:ne?.columnSizing??{},density:ne?.density??"comfortable",viewMode:ne?.viewMode??"table",showHiddenRows:ne?.showHiddenRows??false,globalFilter:ne?.globalFilter??""});},[tt,p,ne,Na,V]),Bo=D.useCallback(()=>Qa(pe),[pe]),Ht=D.useCallback(n=>tr(pe,n,pt()),[pt,pe]),Ln=D.useCallback(n=>{let R=Qa(pe).find(le=>le.id===n);return R?(Na(R.state),pe?.onApply?.(R),true):false},[Na,pe]),Bt=D.useCallback((n,R)=>nr(pe,n,R),[pe]),Gt=D.useCallback(n=>or(pe,n),[pe]),Go=D.useCallback(()=>ir(pe),[pe]),ss=D.useMemo(()=>Qa(pe),[pe,Do]),ds=D.useCallback(n=>{let R=Ht(n);return R&&sn(le=>le+1),R},[Ht]),cs=D.useCallback((n,R)=>{let le=Bt(n,R);return le&&sn(gt=>gt+1),le},[Bt]),us=D.useCallback(n=>{let R=Gt(n);return R&&sn(le=>le+1),R},[Gt]),$o=D.useCallback(n=>q({csvExport:n??(te||true),labels:Ee,table:ae}),[te,Ee,ae]),Nn=D.useCallback(async n=>{let{copyDataTableToClipboard:R}=await import('./data-table-clipboard-EIUFVZIY.js');return R({clipboard:n??(Y?.copy===false?false:La?{...Y?.copy===true?{}:Y?.copy,scope:"cellSelection"}:Y?.copy??true),cellSelection:La,table:ae})},[Y?.copy,La,ae]),jo=D.useCallback((n,R="top")=>{try{let le=ae.getRow(n,!0);return le.getCanPin()?(le.pin(R),!0):!1}catch{return false}},[ae]),Uo=D.useCallback(n=>{try{let R=ae.getRow(n,!0);return R.getCanPin()?(R.pin(!1),!0):!1}catch{return false}},[ae]);return D.useImperativeHandle(pr,()=>({getTable:()=>ln.current,getState:pt,snapshot:pt,restore:Na,resetColumnLayout:zn,resetState:Ho,clearPersistedState:tt,getSavedViews:Bo,createSavedView:Ht,applySavedView:Ln,renameSavedView:Bt,deleteSavedView:Gt,clearSavedViews:Go,pinRow:jo,unpinRow:Uo,focus:()=>{ja.current?.focus();},scrollToRow:n=>cr(ja.current,"row",n),scrollToColumn:n=>cr(ja.current,"column",n),exportCsv:$o,copyToClipboard:Nn,getCellSelection:()=>La,setCellSelection:Pt,clearCellSelection:()=>Pt(null),print:Nt,toggleFullscreen:Ot}),[Ln,tt,Go,Nn,La,Ht,Gt,$o,Bo,pt,Bt,zn,Ho,Na,jo,Nt,Pt,Uo,Ot]),jsx(b,{children:jsxs("div",{ref:ja,"data-dtp-slot":"data-table-root","data-density":ut,"data-dtp-striped-rows":go||void 0,"aria-busy":to||void 0,dir:nn,tabIndex:-1,className:a$2("@container/data-table data-table-container-query flex w-full min-w-0 flex-col",Ya?"h-full min-h-0 flex-1":"grow",s$1),onDragEnter:Ja?.onDragEnter,onDragOver:Ja?.onDragOver,onDragLeave:Ja?.onDragLeave,onDrop:Ja?.onDrop,onKeyDown:n=>{if(cn&&Sa&&(n.ctrlKey||n.metaKey)&&n.key.toLowerCase()==="z"&&!Xn(n.target)){let R=n.shiftKey?Sa.redo:Sa.undo;R&&(n.preventDefault(),Ie({source:n.shiftKey?"redo":"undo"},()=>R({cellSelection:La,table:ae})));return}!Y?.copy||!(n.ctrlKey||n.metaKey)||n.key.toLowerCase()!=="c"||Xn(n.target)||(n.preventDefault(),Ie({source:"clipboardCopy"},async()=>{await Nn(Y.copy===true?void 0:La&&typeof Y.copy=="object"&&!Y.copy.scope?{...Y.copy,scope:"cellSelection"}:Y.copy);}));},onPaste:n=>{let R=Y?.paste;if(!R||R.enabled===false||Xn(n.target))return;let le=n.clipboardData.getData("text/plain");le&&((R.preventDefault??true)&&n.preventDefault(),Ie({source:"clipboardPaste"},async()=>{let{parseDataTableClipboardText:gt}=await import('./data-table-clipboard-EIUFVZIY.js');return R.onPaste({table:ae,text:le,values:gt(le)})}));},children:[Fl?jsx(D.Suspense,{fallback:null,children:jsx(hd,{config:Eo,currentPageSize:na.pageSize,enabled:true,onPageSizeChange:El,viewportElement:Fn,viewportHeight:Vn})}):null,Pa?jsx("input",{ref:fo,className:"hidden",type:"file",accept:Pa.accept,multiple:Pa.multiple??true,disabled:Pa.disabled,onChange:n=>{let R=n.currentTarget.files;R?.length&&Al(R),n.currentTarget.value="";}}):null,jsx("div",{"data-dtp-slot":"data-table-layout",className:a$2("flex w-full flex-col",Ya?"min-h-0 flex-1":"grow"),children:jsxs("div",{"data-dtp-slot":"data-table-main",className:a$2("flex w-full flex-col gap-4",Ya?"min-h-0 flex-1":"grow",kr),children:[co?jsx(vi,{allRows:An,columnFilters:is,columnVisibilityOptions:as,compactToolbar:Ne,customToolbar:Z,DataTableToolbar:$,density:ut,description:G,descriptionId:yo,effectiveToolbarActions:rs,enableColumnPinning:Ye,enableGrouping:ba,enableToolbarColumnChooser:dn.columnChooser===true,enableToolbarFilterChips:!!$a,enableToolbarResetLayout:dn.resetLayout===true,enableToolbarSavedViews:dn.savedViews===true&&!!pe,enableDensityToggle:U,enableViewToggle:Dr&&!!tn,hiddenRowsLabel:no?.label,labels:Ee,onClearColumnFilters:ts,onColumnFilterChange:ns,onColumnPinningChange:os,onDensityChange:fn,onShowHiddenRowsChange:Tn,onToolbarQueryValueChange:Cn,reorderColumn:Mo,onResetColumnLayout:zn,onCreateSavedView:ds,onApplySavedView:Ln,onRenameSavedView:cs,onDeleteSavedView:us,onViewModeChange:Dn,openFileDialog:Pa?Ml:void 0,selectedRowIds:gl,selectedRows:bl,selectionActions:ls,savedViews:ss,showHiddenRows:mn,table:ae,title:q$1,titleId:Co,toolbarQueryPlaceholder:pl,toolbarQueryValue:Ua,toolbarVisibility:uo,viewMode:et}):null,jsx("div",{"data-dtp-slot":"data-table-content",className:a$2(Ya?"flex min-h-0 flex-1 flex-col":""),children:et==="card"&&tn?jsx(t$1,{cardClassName:fr,cardGridClassName:mr,cardSizing:br,cardRenderer:tn,containerWidth:dl,currentDetailExpanded:Rn,currentRowSelection:Mt,DataTableCardView:B,DataTableEmptyState:F,dragAndDrop:Ja,editableRows:za,editingRowId:Pn,emptyNode:zo,stateOverlayNode:No,enableRowSelection:We,flexGrow:Ya,getRowClassName:bo,hasCardTitle:Xl,infiniteScroll:dt,localSearchValue:Ua,onRowClick:Ro,renderedRows:Vo,detailPanel:at,resolvedLabels:Ee,resolvedLoadingRowCount:ul,rowActions:ho,ScrollArea:h$1,scrollbarVisibility:so,sentinelRef:Ao,setCurrentDetailExpanded:xo,setCurrentRowSelection:Lt,setEditingRowId:Pl,shouldRenderInitialLoading:yn,tableContainerClassName:po,uiClassNames:l$1,virtualization:rn}):jsx(o,{ariaDescribedBy:yo,ariaLabelledBy:Co,bodyRowComponents:Jl,columnLayouts:Io.columnLayouts,currentDensity:ut,columnGroupHeaderHeight:qe,currentDetailExpanded:Rn,currentSorting:At,dir:nn,DataTableEmptyState:F,dragAndDrop:Ja,draggedColumnIdRef:Fr,draftValues:Sl,editingRowId:Pn,editingContext:kl,emptyNode:zo,stateOverlayNode:No,enableColumnReordering:Aa,enableColumnResizing:lo,explicitCustomCellColumnIds:ql,fillMinWidth:Wl,flexGrow:Ya,getColumnLayout:Ql,getRowClassName:bo,getRowLoadingState:yr,infiniteScroll:dt,layoutMode:St,localSearchValue:Ua,onRowClick:Ro,primeColumnForResize:Zl,renderedRows:Vo,detailPanel:at,topPinnedRows:Gl,bottomPinnedRows:$l,reorderColumn:Mo,resetColumnSize:es,resolvedLabels:Ee,rowsToRender:jl,ScrollArea:h$1,ScrollBar:k,scrollbarVisibility:so,sentinelRef:Ao,setDraftValues:vl,shouldRenderInitialLoading:yn,stickyHeader:Pr,stripedRows:go,summaryRows:gr,table:ae,tableClassName:Er,tableContainerClassName:po,Table:I,TableBody:x,TableCell:L,TableFooter:K,TableHead:Q,TableHeader:E,TableRow:u$1,tableScrollContainerRef:To,tableScrollElement:Fn,uiClassNames:l$1,viewportHeight:Vn,virtualization:rn,gridMode:cn,gridPageSize:mo?.pageSize??(typeof vt=="object"?vt.pageSize:void 0),cellSelectionEnabled:cn&&(de||ie!==void 0||Ia!==void 0),cellSelection:La,onCellSelectionChange:Pt,gridRowOffset:fa?na.pageIndex*na.pageSize:0,totalRowCount:me,virtualPaddingBottom:Ul,virtualPaddingTop:Kl,visibleLeafColumnCount:Yl,visibleLeafColumns:Mn})}),jsx(Ri,{currentPagination:na,DataTableFooter:dt?.enabled?H:X,effectivePageCount:Nl,footerTotalRowCount:Ol,handleFooterPageIndexChange:_l,handleFooterPageSizeChange:Hl,labels:Ee,pageCountKnown:Bl,rowsPerPageOptions:V,showFooter:xr&&(!dt?.enabled||me!==void 0),children:N})]})})]})})}}function Sd(e,a,t){let o;try{o=e();}catch(l){t?.({...a,error:l});return}Promise.resolve(o).catch(l=>{t?.({...a,error:l});});}function He(e,a,t){let o=D.useCallback(l=>{a?.(l),t?.(s=>({...s,[e]:l}));},[e,a,t]);return a||t?o:void 0}function vd(e,a){let t=D.useRef(new Set);D.useEffect(()=>{if(!(!e||!Pd()))for(let o of Object.keys(a))e[o]===void 0||!a[o]||t.current.has(o)||(t.current.add(o),console.warn(`[data-table-pro] Both state.${o} and its legacy controlled prop were provided. The legacy prop takes precedence during the 4.x compatibility window.`));},[a,e]);}function Pd(){return globalThis.process?.env?.NODE_ENV!=="production"}function xd(e){return {sorting:e.sorting.map(a=>({...a})),pagination:{...e.pagination},rowSelection:{...e.rowSelection},columnVisibility:{...e.columnVisibility},columnFilters:e.columnFilters.map(a=>({...a})),expanded:typeof e.expanded=="boolean"?e.expanded:{...e.expanded},grouping:[...e.grouping??[]],columnOrder:[...e.columnOrder],columnPinning:{left:e.columnPinning.left?[...e.columnPinning.left]:void 0,right:e.columnPinning.right?[...e.columnPinning.right]:void 0},rowPinning:{top:[...e.rowPinning.top],bottom:[...e.rowPinning.bottom]},columnSizing:{...e.columnSizing},density:e.density,viewMode:e.viewMode,showHiddenRows:e.showHiddenRows,globalFilter:e.globalFilter}}function cr(e,a,t){if(!e)return false;let o=a==="row"?"data-row-id":"data-column-id",l=Array.from(e.querySelectorAll(`[${o}]`)).find(s=>s.getAttribute(o)===t);return l?(l.scrollIntoView?.({block:"nearest",inline:"nearest"}),true):false}function Xn(e){return e instanceof HTMLElement?e.isContentEditable||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement:false}export{hi as a,Ri as b,vi as c,xi as d,ve as e,Ai as f,Bi as g,$i as h,Cu as i,Rd as j};//# sourceMappingURL=chunk-3PL4XDZI.js.map +//# sourceMappingURL=chunk-3PL4XDZI.js.map \ No newline at end of file diff --git a/dist/chunk-3PL4XDZI.js.map b/dist/chunk-3PL4XDZI.js.map new file mode 100644 index 0000000..5644932 --- /dev/null +++ b/dist/chunk-3PL4XDZI.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/core/data-table/data-table-base-card-panel.tsx","../src/core/data-table/data-table-card-panel.tsx","../src/core/data-table/data-table-footer-section.tsx","../src/core/data-table/data-table-toolbar-section.tsx","../src/core/data-table/data-table-labels.ts","../src/core/data-table/use-data-table-columns.tsx","../src/core/data-table/use-controllable-state.ts","../src/core/data-table/use-data-table-infinite-scroll.ts","../src/core/data-table/use-data-table-pagination-clamp.ts","../src/core/data-table/use-data-table-search-index.ts","../src/core/data-table/tanstack-v9.ts","../src/core/data-table/use-data-table-instance.ts","../src/core/data-table/use-data-table-column-prefs.ts","../src/core/data-table/use-data-table-container-width.ts","../src/core/data-table/use-data-table-state.ts","../src/core/data-table/use-column-layout.ts","../src/core/data-table/create-data-table-card-view.tsx","../src/core/data-table/create-data-table-empty-state.tsx","../src/core/data-table/create-data-table-pagination.tsx","../src/core/data-table/create-data-table-row-actions.tsx","../src/core/data-table/create-data-table-toolbar.tsx","../src/core/data-table/data-table-table-panel-router.tsx","../src/core/data-table/data-table-saved-views.ts","../src/core/data-table/use-data-table-toolbar-features.ts","../src/core/data-table/use-data-table-performance-diagnostics.ts","../src/core/data-table/create-data-table.tsx"],"names":["DataTableBaseCardPanel","cardClassName","cardGridClassName","cardSizing","cardRenderer","currentRowSelection","currentDetailExpanded","DataTableCardView","DataTableEmptyState","dragAndDrop","editableRows","editingRowId","emptyNode","enableRowSelection","flexGrow","getRowClassName","hasCardTitle","infiniteScroll","localSearchValue","onRowClick","renderedRows","detailPanel","resolvedLabels","resolvedLoadingRowCount","rowActions","ScrollArea","scrollbarVisibility","sentinelRef","setCurrentDetailExpanded","setCurrentRowSelection","setEditingRowId","shouldRenderInitialLoading","stateOverlayNode","tableContainerClassName","uiClassNames","shouldRenderCards","cardScrollContainerRef","yi","renderCardView","rows","options","jsx","jsxs","cn","LazyDataTableVirtualCardPanel","qt","DataTableCardPanel","props","config","DataTableFooterSection","children","currentPagination","DataTableFooter","effectivePageCount","footerTotalRowCount","handleFooterPageIndexChange","handleFooterPageSizeChange","labels","pageCountKnown","rowsPerPageOptions","showFooter","DataTableToolbarSection","allRows","columnFilters","columnVisibilityOptions","compactToolbar","customToolbar","DataTableToolbar","description","descriptionId","effectiveToolbarActions","enableColumnPinning","enableGrouping","enableToolbarColumnChooser","enableToolbarFilterChips","enableToolbarResetLayout","enableToolbarSavedViews","enableDensityToggle","enableViewToggle","hiddenRowsLabel","onClearColumnFilters","onColumnFilterChange","onColumnPinningChange","onDensityChange","onShowHiddenRowsChange","onToolbarQueryValueChange","reorderColumn","onResetColumnLayout","onCreateSavedView","onApplySavedView","onRenameSavedView","onDeleteSavedView","onViewModeChange","openFileDialog","selectedRowIds","selectedRows","selectionActions","savedViews","showHiddenRows","table","title","titleId","toolbarQueryPlaceholder","toolbarQueryValue","toolbarVisibility","density","viewMode","columnId","visible","DATA_TABLE_DEFAULT_LABELS","count","label","pageIndex","pageCount","rowId","columnLabel","name","resolveDataTableLabels","useDataTableColumns","Button","Checkbox","DataTableRowActions","Tooltip","TooltipContent","TooltipTrigger","cancelEditing","columns","editErrors","enableRowPinning","hasTreeExpansion","isSavingEdit","isEditDirty","includeFillSpacer","lastSelectedRowIdRef","detailExpanded","onDetailExpandedChange","rowSelectionSelectAllScope","saveEdit","startEditingRow","tableRef","selectRowRange","Jt","targetRowId","selected","tableInstance","row","isDataTableLoadingRow","startIndex","endIndex","from","to","current","next","item","defs","expansionColumnSize","UTILITY_COLUMN_SIZE","canExpandTree","canExpandDetail","isTreeExpanded","isDetailExpanded","IconChevronDown","toggleDataTableExpandedState","selectsFilteredRows","selectableRows","allSelected","someSelected","checked","event","column","decorateFilterableColumn","position","useControllableState","defaultValue","onChange","value","uncontrolledValue","setUncontrolledValue","_a","currentValue","currentValueRef","setValue","updater","nextValue","useDataTableInfiniteScroll","enabled","hasMore","isLoadingMore","onLoadMore","onError","Ha","isRequestInFlightRef","onLoadMoreEvent","onErrorEvent","error","target","observer","entries","result","useDataTablePaginationClamp","maxPageIndex","onPageIndexChange","setLocalPageIndex","Ei","nextPageIndex","useDataTableSearchIndex","Vi","valuesByRow","filterValue","query","normalizeDataTableSearchText","original","valuesByColumn","text","createDataTableFeatures","customAggregationFns","tableFeatures","columnFacetingFeature","columnFilteringFeature","globalFilteringFeature","rowAggregationFeature","columnGroupingFeature","columnOrderingFeature","columnPinningFeature","columnSizingFeature","columnResizingFeature","columnVisibilityFeature","rowExpandingFeature","rowPaginationFeature","rowPinningFeature","rowSelectionFeature","rowSortingFeature","createExpandedRowModel","createFacetedMinMaxValues","createFacetedRowModel","createFacetedUniqueValues","createFilteredRowModel","createGroupedRowModel","createPaginatedRowModel","createSortedRowModel","builtInAggregationFns","builtInFilterFns","builtInSortFns","useDataTableInstance","autoResetPageIndex","columnGroupPaths","columnResizeMode","dir","currentColumnFilters","currentColumnOrder","currentColumnPinning","currentRowPinning","currentColumnSizing","currentExpanded","currentGrouping","currentSorting","currentViewMode","defaultColumn","effectiveColumnVisibility","enableColumnResizing","enableMultiRowSelection","enableSubRowSelection","getRowCanSelect","getRowCanExpand","getSubRows","aggregationFns","groupedColumnMode","globalFilterFn","globalFilterValue","hasNextPage","handleColumnFiltersChange","handleColumnOrderChange","handleColumnPinningChange","handleRowPinningChange","handleColumnVisibilityChange","handleExpandedChange","handleGroupingChange","keepPinnedRows","manualFiltering","manualGrouping","manualExpanding","manualPagination","manualSorting","onActionError","onPageSizeChange","pageSize","paginateExpandedRows","filterFromLeafRows","maxLeafRowFilterDepth","setCurrentSorting","setLocalColumnSizing","setLocalPagination","tableColumns","tableData","tableGetRowId","totalRowCount","virtualization","cachedGlobalFilterFn","generatedColumnIds","we","getDataTableLeafColumns","index","getColumnId","effectiveColumnOrder","columnIds","dataColumnIds","isUtilityColumnId","dataColumnIdSet","orderedDataColumnIds","unorderedDataColumnIds","effectiveColumnPinning","columnIdSet","dataLeft","dataRight","handleTanStackColumnPinningChange","effectiveRowPinning","availableRowIds","visitRows","subRows","top","topIds","bottom","tanStackRowSelection","handleTanStackRowSelectionChange","tableState","handlePaginationChange","handleColumnSizingChange","features","useTable","visibleLeafColumns","sourceColumnId","targetColumnId","canReorderDataTableColumn","defaultOrder","nextOrder","moveColumnInOrder","topPinnedRows","bottomPinnedRows","virtualizationConfig","virtualRowsEnabled","fallbackRowCount","rowsToRender","rowIndex","usesManualRows","derivedTotalRowCount","effectiveTotalRowCount","isPageCountKnown","nextPageSize","STORAGE_PREFIX","DEFAULT_VERSION","ALL_SLICES","readDataTableColumnPrefs","input","resolvePersistenceConfig","storage","resolveStorage","storageKey","getStorageKey","parsed","targetVersion","candidate","isPersistencePayload","selectPersistenceSlices","validateDataTableColumnPrefs","clearDataTableColumnPrefs","usePersistDataTableColumnPrefs","key","persistence","prefs","version","debounceMs","selectedState","serialized","Wa","payload","operation","write","timeout","isRecord","slices","slice","visibility","validateBooleanRecord","sizing","validateSizingRecord","order","validateStringArray","left","right","rowPinning","validateRowPinning","isDataTableDensity","entry","BREAKPOINT_WIDTHS","DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS","first","second","useDataTableContainerWidth","containerRef","widthRef","lt","width","setWidth","element","updateWidth","inlineSize","nextWidth","quantizeDataTableContainerWidth","getResizeObserverInlineSize","bucket","breakpointWidth","contentBoxSize","size","getInlineSize","useDataTableState","columnOrder","columnPinning","columnSizing","columnPrefsKey","columnVisibility","data","enableToolbarQueryFiltering","expanded","grouping","getRowId","hiddenRows","initialState","isLoading","loadingRowCount","onColumnFiltersChange","onColumnOrderChange","onRowPinningChange","onColumnSizingChange","onColumnVisibilityChange","onExpandedChange","onGroupingChange","onRowSelectionChange","onSortingChange","rowSelection","sorting","toolbarQueryDebounceMs","persistenceConfig","ee","persistedColumnPrefs","localPagination","currentColumnVisibility","setCurrentColumnVisibility","setCurrentColumnFilters","setCurrentExpanded","setCurrentColumnOrder","setCurrentColumnPinning","getInitialColumnPinning","setCurrentRowPinning","setCurrentColumnSizing","setCurrentViewMode","setCurrentGrouping","currentShowHiddenRows","setCurrentShowHiddenRows","currentDensity","setCurrentDensity","resolvedToolbarQueryValue","resolvedToolbarQueryPlaceholder","resolvedToolbarQueryDebounceMs","setLocalSearchValue","containerWidth","hasOnSearchValueChange","lastReportedSearchValueRef","onToolbarQueryValueChangeEvent","deferredSearchValue","handleViewModeChange","nextViewMode","handleShowHiddenRowsChange","nextShowHiddenRows","handleDensityChange","nextDensity","resetPageIndexForFilterChange","lastFilterStateRef","previous","filtersChanged","globalFilterChanged","responsiveColumnVisibility","isHiddenAtContainerWidth","visibleData","isRowVisible","loadingRows","createDataTableLoadingRows","getDataTableLoadingRowId","shouldResolveSelectedRows","rowById","currentRows","EMPTY_COLUMN_LAYOUT","useColumnLayout","hasRowActions","hasRowExpansion","layoutMode","explicitlySizedColumnIds","oa","ids","hasExplicitDataTableColumnSize","minimumColumnWidths","widths","configuredMinWidth","getConfiguredColumnMinWidth","configuredFixedWidthColumnIds","hasFixedDataTableColumnSize","pinnedColumns","leftOffset","getFixedSide","getColumnLayoutSize","rightOffset","fillColumnId","fixedWidthColumnIds","columnLayouts","layouts","isSelectionColumn","isExpansionColumn","isActionsColumn","isUtilityColumn","isSpacerColumn","isFlexibleFillColumn","columnMinWidth","shouldFixWidth","baseStyle","fixedSide","pinnedStyle","cellStyle","getPinnedColumnClassName","fillMinWidth","total","layout","getColumnLayout","createDataTableCardView","ui","Card","CardContent","CardHeader","Skeleton","onEditingRowIdChange","getRowDraggable","onRowDragStart","onRowDragEnd","resolvedCardSizing","resolvedCardGridClassName","getCardGridClassName","cardGridClasses","cardItemClasses","stateClassName","getCardItemClassName","_","originalRow","isSelected","isEditing","hasCardActions","showCardGradient","showCardOverlayControls","handleCardActivate","getCardRendererClassName","isDataTableInteractiveTarget","updateRowSelection","canSelect","canMultiSelect","nextSelection","createDataTableEmptyState","Empty","EmptyContent","EmptyDescription","EmptyHeader","EmptyMedia","EmptyTitle","IconInbox","createDataTablePagination","Pagination","PaginationContent","PaginationEllipsis","PaginationFirst","PaginationItem","PaginationLast","PaginationLink","PaginationNext","PaginationPrevious","Select","SelectContent","SelectGroup","SelectItem","SelectTrigger","SelectValue","DataTablePagination","countOnly","pages","getVisiblePages","canGoPrevious","canGoNext","lastPageIndex","totalRecordCount","IconDatabase","option","DataTableCountOnlyFooter","currentPageIndex","currentPage","page","orderedPages","items","createDataTableRowActions","DropdownMenu","DropdownMenuContent","DropdownMenuGroup","DropdownMenuItem","DropdownMenuSeparator","DropdownMenuTrigger","onStartEditing","onCancelEditing","actions","action","canUseRowAction","stopRowClickPropagation","qi","IconX","allowEdit","canEditRow","canPin","IconDots","IconEdit","Fragment","Icon","resolveRowActionLabel","LazyToolbarDataOperations","ia","createDataTableToolbar","ButtonGroup","DropdownMenuCheckboxItem","DropdownMenuLabel","InputGroup","InputGroupAddon","InputGroupInput","toolbarActions","compactSearchInputRef","isCompactSearchVisible","setIsCompactSearchVisible","compactToolbarIconButtonClassName","primaryActions","trailingActions","showTitle","showSearch","showActions","showTrailingActions","showOptions","showViewToggle","showCustomToolbar","hasVisibleTitle","hasVisibleSearch","hasVisiblePrimaryActions","hasVisibleSelectionActions","hasVisibleOptions","hasToolbarOperationsMenu","activeColumnFilters","filter","hasColumnFilterValue","toolbarOperationsUi","renderToolbarDataOperations","placement","groupableColumns","groupedColumns","id","hasVisibleViewToggle","hasVisibleTrailingActions","hasVisibleCustomToolbar","hasVisibleCompactToolbar","selectedRowCountLabel","IconSearch","collapsesToIcon","button","context","disabled","IconAdjustmentsHorizontal","isGrouped","IconList","IconLayoutGrid","ToolbarColumnFilterControl","groupingIndex","moveGrouping","nextIndex","nextGrouping","groupingId","facetQuery","setFacetQuery","range","normalizeToolbarRangeValue","inputType","fromLabel","toLabel","parseRangeInputValue","isBoolean","isFaceted","booleanOptions","visibleOptions","selectedValue","selectedValues","selectedLabel","nextValues","LazyDataTableVirtualTablePanel","Zt","DataTableTablePanelRouter","DataTableTablePanel","DEFAULT_SLICES","fallbackId","readDataTableSavedViews","view","validateSavedView","createDataTableSavedView","state","normalizedName","now","createSavedViewId","selectSavedViewSlices","views","writeViews","cloneSavedView","renameDataTableSavedView","renamed","deleteDataTableSavedView","clearDataTableSavedViews","snapshots","snapshot","cloneStateSlice","validateState","validateSorting","pagination","validatePagination","filters","validateFilters","pinning","validatePinning","useDataTableToolbarFeatures","enableColumnFilters","csvExport","ka","header","accessorKey","getAccessorKey","startCase","pinned","toolbarColumnFilters","configuredFacetOptions","facetedMinMax","rawOptions","normalizeColumnFilterOptions","handleToolbarColumnFilterChange","hasFilterValue","handleClearColumnFilters","handleToolbarColumnPinningChange","side","handleCsvExport","exportDataTableCsv","IconDownload","useDataTablePerformanceDiagnostics","yt","warned","isDevelopmentEnvironment","last","haveSameItems","warn","message","DataTableAutoPageSize","createDataTable","createDataTableWithPanels","rootClassName","Input","ScrollBar","Table","TableBody","TableCell","TableFooter","TableHead","TableHeader","TableRow","TooltipProvider","DataTableStateOverlay","createDataTableStateOverlay","autoPageSize","renderExpandedRow","enableColumnReordering","columnGroupHeaderHeight","clipboard","enableCellSelection","cellSelection","defaultCellSelection","onCellSelectionChange","gridCommands","toolbarDataOperations","unifiedState","onStateChange","apiRef","summaryRows","enablePrint","enableFullscreen","emptyState","stateOverlay","getRowLoadingState","stickyHeader","showToolbar","className","tableClassName","stripedRows","fileUpload","accessibility","interactiveGrid","fileInputRef","tableScrollContainerRef","draggedColumnIdRef","toolbarSavedViewsVersion","setToolbarSavedViewsVersion","generatedTitleId","generatedDescriptionId","validateDataTableColumnIds","toolbarOperations","gridMode","currentCellSelection","setCurrentCellSelection","resolvedSorting","resolvedGrouping","resolvedPageIndex","resolvedPageSize","resolvedRowSelection","resolvedColumnVisibility","resolvedColumnFilters","resolvedExpanded","resolvedColumnOrder","resolvedColumnPinning","resolvedRowPinning","resolvedColumnSizing","resolvedDensity","resolvedViewMode","resolvedShowHiddenRows","showTableHeading","useDataTableStateConflictWarnings","handleToolbarQueryValueChange","useDataTableStateSliceChange","handleSortingPropChange","handleGroupingPropChange","handleRowSelectionPropChange","handleColumnVisibilityPropChange","handleColumnFiltersPropChange","handleExpandedPropChange","handleColumnOrderPropChange","handleColumnPinningPropChange","handleRowPinningPropChange","handleColumnSizingPropChange","handleDensityPropChange","handleViewModePropChange","handleShowHiddenRowsPropChange","handlePageIndexPropChange","handlePageSizePropChange","runAction","runDataTableAction","guardedRowActions","guardedOnRowClick","handleEditError","usesLegacyDetailPanelState","resolvedDetailPanel","clearEditError","draftValues","setDraftValues","useRowEditing","rowEditingContext","tableScrollElement","viewportHeight","useDataTableScrollViewport","autoPageSizeConfig","handleAutoPageSizeChange","autoPageSizeEnabled","print","toggleFullscreen","isFullscreen","setIsFullscreen","update","handleSelectedFiles","files","visibleDataColumns","getDataTableColumnGroupPaths","virtualPaddingBottom","virtualPaddingTop","columnLayout","explicitCustomCellColumnIds","visibleLeafColumnCount","bodyRowComponents","primeColumnForResize","currentSize","flushSync","resetColumnSize","filteredData","configuredEmptyState","guardedStateOverlay","guardedToolbarActions","guardedSelectionActions","currentDataTableState","getCurrentState","cloneDataTableState","restoreState","nextState","clearPersistedState","resetColumnLayout","resetState","getSavedViews","createSavedView","applySavedView","renameSavedView","deleteSavedView","clearSavedViews","toolbarSavedViews","handleToolbarCreateSavedView","handleToolbarRenameSavedView","handleToolbarDeleteSavedView","deleted","exportCsvFromApi","copyToClipboard","copyDataTableToClipboard","pinRow","unpinRow","scrollDataTableElementIntoView","isDataTableEditableClipboardTarget","command","paste","parseDataTableClipboardText","onLegacyChange","handleChange","legacySlices","warnedSlicesRef","container","kind","attribute"],"mappings":"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","file":"chunk-3PL4XDZI.js","sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport type { DataTableCardPanelProps } from \"./data-table-card-panel-types\";\nimport type { DataTableTanStackRow as Row } from \"./tanstack-v9\";\n\nexport function DataTableBaseCardPanel({\n cardClassName,\n cardGridClassName,\n cardSizing,\n cardRenderer,\n currentRowSelection,\n currentDetailExpanded,\n DataTableCardView,\n DataTableEmptyState,\n dragAndDrop,\n editableRows,\n editingRowId,\n emptyNode,\n enableRowSelection,\n flexGrow,\n getRowClassName,\n hasCardTitle,\n infiniteScroll,\n localSearchValue,\n onRowClick,\n renderedRows,\n detailPanel,\n resolvedLabels,\n resolvedLoadingRowCount,\n rowActions = [],\n ScrollArea,\n scrollbarVisibility,\n sentinelRef,\n setCurrentDetailExpanded,\n setCurrentRowSelection,\n setEditingRowId,\n shouldRenderInitialLoading,\n stateOverlayNode,\n tableContainerClassName,\n uiClassNames,\n}: DataTableCardPanelProps) {\n const shouldRenderCards =\n shouldRenderInitialLoading || renderedRows.length > 0;\n const cardScrollContainerRef = React.useRef(null);\n\n const renderCardView = (\n rows: Array>,\n options?: {\n isLoading?: boolean;\n loadingRowCount?: number;\n },\n ) => (\n \n );\n\n return (\n \n \n \n {shouldRenderCards ? (\n shouldRenderInitialLoading ? (\n renderCardView([], {\n isLoading: true,\n loadingRowCount: resolvedLoadingRowCount,\n })\n ) : (\n renderCardView(renderedRows)\n )\n ) : (\n
\n {emptyNode ?? (\n \n )}\n
\n )}\n\n {infiniteScroll?.enabled && !shouldRenderInitialLoading ? (\n
\n
\n
\n ) : null}\n
\n \n {stateOverlayNode}\n \n );\n}\n","import * as React from \"react\";\nimport { DataTableBaseCardPanel } from \"./data-table-base-card-panel\";\nimport type { DataTableCardPanelProps } from \"./data-table-card-panel-types\";\n\nconst LazyDataTableVirtualCardPanel = React.lazy(async () => {\n const module = await import(\"./data-table-virtual-card-panel\");\n return { default: module.DataTableVirtualCardPanel };\n}) as unknown as typeof DataTableBaseCardPanel;\n\nexport function DataTableCardPanel(\n props: DataTableCardPanelProps,\n) {\n const config =\n typeof props.virtualization === \"object\"\n ? props.virtualization.card\n : undefined;\n\n if (config?.enabled !== true) {\n return ;\n }\n\n return (\n \n }\n >\n \n \n );\n}\n\nexport type { DataTableCardPanelProps };\n","import * as React from \"react\";\nimport type { PaginationState } from \"@tanstack/react-table\";\nimport type { DataTableLabels } from \"../types\";\n\ntype DataTableFooterSectionProps = {\n children?: React.ReactNode;\n currentPagination: PaginationState;\n DataTableFooter: React.ElementType;\n effectivePageCount: number;\n footerTotalRowCount: number | undefined;\n handleFooterPageIndexChange: (pageIndex: number) => void;\n handleFooterPageSizeChange: (pageSize: number) => void;\n labels: DataTableLabels;\n pageCountKnown?: boolean;\n rowsPerPageOptions: Array;\n showFooter: boolean;\n};\n\nexport function DataTableFooterSection({\n children,\n currentPagination,\n DataTableFooter,\n effectivePageCount,\n footerTotalRowCount,\n handleFooterPageIndexChange,\n handleFooterPageSizeChange,\n labels,\n pageCountKnown = true,\n rowsPerPageOptions,\n showFooter,\n}: DataTableFooterSectionProps) {\n if (!showFooter && !children) {\n return null;\n }\n\n return (\n
\n {showFooter ? (\n \n ) : null}\n {children}\n
\n );\n}\n","import * as React from \"react\";\nimport type {\n DataTableLabels,\n DataTableProps,\n DataTableSavedView,\n} from \"../types\";\nimport type { DataTableTanStackTable as TanStackTable } from \"./tanstack-v9\";\n\ntype DataTableToolbarSectionProps = {\n allRows: Array;\n columnFilters: Array;\n columnVisibilityOptions: Array;\n compactToolbar: React.ReactNode;\n customToolbar: React.ReactNode;\n DataTableToolbar: React.ElementType;\n description: string | undefined;\n descriptionId: string | undefined;\n effectiveToolbarActions: Array;\n enableColumnPinning: boolean;\n enableGrouping: boolean;\n enableToolbarColumnChooser: boolean;\n enableToolbarFilterChips: boolean;\n enableToolbarResetLayout: boolean;\n enableToolbarSavedViews: boolean;\n enableDensityToggle: boolean;\n enableViewToggle: boolean;\n hiddenRowsLabel: string | undefined;\n labels: DataTableLabels;\n onClearColumnFilters: () => void;\n onColumnFilterChange: (columnId: string, value: unknown) => void;\n onColumnPinningChange: (columnId: string, side: \"left\" | \"right\" | false) => void;\n onDensityChange: (density: \"compact\" | \"comfortable\" | \"spacious\") => void;\n onShowHiddenRowsChange: (showHiddenRows: boolean) => void;\n onToolbarQueryValueChange: (value: string) => void;\n reorderColumn: (sourceColumnId: string, targetColumnId: string) => void;\n onResetColumnLayout: () => void;\n onCreateSavedView: (name: string) => DataTableSavedView | undefined;\n onApplySavedView: (id: string) => boolean;\n onRenameSavedView: (id: string, name: string) => DataTableSavedView | undefined;\n onDeleteSavedView: (id: string) => boolean;\n onViewModeChange: (viewMode: \"table\" | \"card\") => void;\n openFileDialog: (() => void) | undefined;\n selectedRowIds: Array;\n selectedRows: Array;\n selectionActions: DataTableProps[\"selectionActions\"];\n savedViews: Array;\n showHiddenRows: boolean;\n table: TanStackTable;\n title: string | undefined;\n titleId: string | undefined;\n toolbarQueryPlaceholder: string;\n toolbarQueryValue: string;\n toolbarVisibility: DataTableProps[\"toolbarVisibility\"];\n density: \"compact\" | \"comfortable\" | \"spacious\";\n viewMode: \"table\" | \"card\";\n};\n\nexport function DataTableToolbarSection({\n allRows,\n columnFilters,\n columnVisibilityOptions,\n compactToolbar,\n customToolbar,\n DataTableToolbar,\n description,\n descriptionId,\n effectiveToolbarActions,\n enableColumnPinning,\n enableGrouping,\n enableToolbarColumnChooser,\n enableToolbarFilterChips,\n enableToolbarResetLayout,\n enableToolbarSavedViews,\n enableDensityToggle,\n enableViewToggle,\n hiddenRowsLabel,\n labels,\n onClearColumnFilters,\n onColumnFilterChange,\n onColumnPinningChange,\n onDensityChange,\n onShowHiddenRowsChange,\n onToolbarQueryValueChange,\n reorderColumn,\n onResetColumnLayout,\n onCreateSavedView,\n onApplySavedView,\n onRenameSavedView,\n onDeleteSavedView,\n onViewModeChange,\n openFileDialog,\n selectedRowIds,\n selectedRows,\n selectionActions,\n savedViews,\n showHiddenRows,\n table,\n title,\n titleId,\n toolbarQueryPlaceholder,\n toolbarQueryValue,\n toolbarVisibility,\n density,\n viewMode,\n}: DataTableToolbarSectionProps) {\n return (\n
\n {\n table.getColumn(columnId)?.toggleVisibility(visible);\n }}\n enableColumnPinning={enableColumnPinning}\n enableGrouping={enableGrouping}\n enableToolbarColumnChooser={enableToolbarColumnChooser}\n enableToolbarFilterChips={enableToolbarFilterChips}\n enableToolbarResetLayout={enableToolbarResetLayout}\n enableToolbarSavedViews={enableToolbarSavedViews}\n onColumnPinningChange={onColumnPinningChange}\n columnFilters={columnFilters}\n onColumnFilterChange={onColumnFilterChange}\n onClearColumnFilters={onClearColumnFilters}\n onResetColumnLayout={onResetColumnLayout}\n onCreateSavedView={onCreateSavedView}\n onApplySavedView={onApplySavedView}\n onRenameSavedView={onRenameSavedView}\n onDeleteSavedView={onDeleteSavedView}\n density={density}\n onDensityChange={onDensityChange}\n enableDensityToggle={enableDensityToggle}\n labels={labels}\n toolbarVisibility={toolbarVisibility}\n openFileDialog={openFileDialog}\n savedViews={savedViews}\n table={table}\n />\n
\n );\n}\n","import type { DataTableLabels } from \"../types\";\n\ntype ResolvedDataTableLabels = Required;\n\nexport const DATA_TABLE_DEFAULT_LABELS: ResolvedDataTableLabels = {\n searchPlaceholder: \"Search rows...\",\n searchTable: \"Search table\",\n clearSearch: \"Clear search\",\n noRowsTitle: \"No rows yet\",\n noRowsDescription: \"Create a record or refresh this view once data exists.\",\n noMatchingRowsTitle: \"No matching rows\",\n noMatchingRowsDescription: \"Try a different search term or clear filters.\",\n tableOptions: \"Show table options\",\n columns: \"Columns\",\n filters: \"Filters\",\n clearFilters: \"Clear filters\",\n filterFrom: \"From\",\n filterTo: \"To\",\n filterTrue: \"Yes\",\n filterFalse: \"No\",\n selectedRows: (count) =>\n `${count} record${count === 1 ? \"\" : \"s\"} selected`,\n showHiddenRows: (label) => `Show ${label}`,\n recordsPerPage: \"Records per page\",\n totalRecords: (count) => `Total records: ${count}`,\n pageStatus: (pageIndex, pageCount) => `Page ${pageIndex + 1} of ${pageCount}`,\n pageStatusUnknown: (pageIndex) => `Page ${pageIndex + 1}`,\n pagination: \"Pagination\",\n morePages: \"More pages\",\n firstPage: \"First page\",\n previousPage: \"Previous page\",\n nextPage: \"Next page\",\n lastPage: \"Last page\",\n selectAllVisibleRows: \"Select all visible rows\",\n selectAllFilteredRows: \"Select all filtered rows\",\n selectRow: \"Select row\",\n selectCardRow: (rowId) => `Select row ${rowId}`,\n switchToTableView: \"Switch to table view\",\n switchToCardView: \"Switch to card view\",\n tableView: \"Table view\",\n cardView: \"Card view\",\n allFilterOptions: \"All\",\n actions: \"Actions\",\n rowActions: \"Row actions\",\n editRow: \"Edit row\",\n saveEdit: \"Save\",\n cancelEdit: \"Cancel editing\",\n expandRow: \"Expand row\",\n collapseRow: \"Collapse row\",\n expandRowDetails: \"Expand row details\",\n collapseRowDetails: \"Collapse row details\",\n exportCsv: \"Export CSV\",\n print: \"Print table\",\n enterFullscreen: \"Enter fullscreen\",\n exitFullscreen: \"Exit fullscreen\",\n errorTitle: \"Unable to load this table\",\n errorDescription: \"Try again or check your connection.\",\n retry: \"Retry\",\n density: \"Density\",\n compactDensity: \"Compact\",\n comfortableDensity: \"Comfortable\",\n spaciousDensity: \"Spacious\",\n pinLeft: \"Pin left\",\n pinRight: \"Pin right\",\n unpin: \"Unpin\",\n pinRowToTop: \"Pin row to top\",\n pinRowToBottom: \"Pin row to bottom\",\n unpinRow: \"Unpin row\",\n resizeColumn: (columnLabel) => `Resize ${columnLabel}`,\n grouping: \"Grouping\",\n groupBy: (columnLabel) => `Group by ${columnLabel}`,\n ungroup: (columnLabel) => `Ungroup ${columnLabel}`,\n removeGrouping: (columnLabel) => `Remove ${columnLabel} grouping`,\n moveGroupingEarlier: (columnLabel) => `Move ${columnLabel} grouping earlier`,\n moveGroupingLater: (columnLabel) => `Move ${columnLabel} grouping later`,\n facetSearch: (columnLabel) => `Search ${columnLabel} options`,\n searchColumns: \"Search columns\",\n showAllColumns: \"Show all columns\",\n hideAllColumns: \"Hide all columns\",\n moveColumnEarlier: (columnLabel) => `Move ${columnLabel} earlier`,\n moveColumnLater: (columnLabel) => `Move ${columnLabel} later`,\n resetColumnLayout: \"Reset column layout\",\n savedViews: \"Saved views\",\n createSavedView: \"Create saved view\",\n savedViewName: \"View name\",\n applySavedView: (name) => `Apply saved view ${name}`,\n renameSavedView: (name) => `Rename saved view ${name}`,\n deleteSavedView: (name) => `Delete saved view ${name}`,\n saveSavedView: \"Save view\",\n};\n\nexport function resolveDataTableLabels(\n labels?: Partial,\n): ResolvedDataTableLabels {\n return {\n ...DATA_TABLE_DEFAULT_LABELS,\n ...labels,\n } as ResolvedDataTableLabels;\n}\n","import * as React from \"react\";\nimport type {\n ExpandedState,\n OnChangeFn,\n RowPinningPosition,\n} from \"@tanstack/react-table\";\nimport { IconChevronDown } from \"../icons\";\nimport type {\n DataTableEditableRowsConfig,\n DataTableDetailPanel,\n DataTableLabels,\n DataTableProps,\n DataTableRowAction,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport {\n UTILITY_COLUMN_SIZE,\n decorateFilterableColumn,\n isDataTableLoadingRow,\n toggleDataTableExpandedState,\n} from \"./data-table-utils\";\nimport { DATA_TABLE_DEFAULT_LABELS } from \"./data-table-labels\";\nimport type {\n DataTableTanStackColumnDef as ColumnDef,\n DataTableTanStackTable as TanStackTable,\n} from \"./tanstack-v9\";\n\ntype DataTableRowActionsComponentProps = {\n editableRows?: DataTableEditableRowsConfig;\n isEditing: boolean;\n labels: DataTableLabels;\n onCancelEditing: () => void;\n onStartEditing: () => void;\n row: TData;\n rowActions: Array>;\n rowPinning?: {\n canPin: boolean;\n position: RowPinningPosition;\n pin: (position: RowPinningPosition) => void;\n };\n};\n\nexport function useDataTableColumns({\n Button,\n Checkbox,\n DataTableRowActions,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n cancelEditing,\n columns,\n editableRows,\n editingRowId,\n editErrors,\n enableRowSelection,\n enableRowPinning,\n hasTreeExpansion,\n isSavingEdit,\n isEditDirty,\n includeFillSpacer = false,\n labels,\n lastSelectedRowIdRef,\n detailPanel,\n detailExpanded,\n onDetailExpandedChange,\n rowSelectionSelectAllScope,\n rowActions,\n saveEdit,\n startEditingRow,\n tableRef,\n}: {\n Button: DataTableUiKit[\"Button\"];\n Checkbox: DataTableUiKit[\"Checkbox\"];\n DataTableRowActions: React.ComponentType<\n DataTableRowActionsComponentProps\n >;\n Tooltip: DataTableUiKit[\"Tooltip\"];\n TooltipContent: DataTableUiKit[\"TooltipContent\"];\n TooltipTrigger: DataTableUiKit[\"TooltipTrigger\"];\n cancelEditing: () => void;\n columns: DataTableProps[\"columns\"];\n editableRows: DataTableProps[\"editableRows\"];\n editingRowId: string | null;\n editErrors: Record;\n enableRowSelection: boolean;\n enableRowPinning: DataTableProps[\"enableRowPinning\"];\n hasTreeExpansion: boolean;\n isSavingEdit: boolean;\n isEditDirty: boolean;\n includeFillSpacer?: boolean;\n labels: DataTableLabels;\n lastSelectedRowIdRef: React.MutableRefObject;\n detailPanel: DataTableDetailPanel | undefined;\n detailExpanded: ExpandedState;\n onDetailExpandedChange: OnChangeFn;\n rowSelectionSelectAllScope: NonNullable<\n DataTableProps[\"rowSelectionSelectAllScope\"]\n >;\n rowActions: Array>;\n saveEdit: (row: TData) => Promise;\n startEditingRow: (row: TData, rowId: string) => void;\n tableRef: React.RefObject | null>;\n}) {\n const selectRowRange = React.useCallback(\n (targetRowId: string, selected: boolean) => {\n const tableInstance = tableRef.current;\n if (!tableInstance || !lastSelectedRowIdRef.current) {\n return;\n }\n\n const rows = tableInstance\n .getRowModel()\n .rows.filter((row) => !isDataTableLoadingRow(row.original));\n const startIndex = rows.findIndex(\n (row) => row.id === lastSelectedRowIdRef.current,\n );\n const endIndex = rows.findIndex((row) => row.id === targetRowId);\n\n if (startIndex < 0 || endIndex < 0) {\n return;\n }\n\n const from = Math.min(startIndex, endIndex);\n const to = Math.max(startIndex, endIndex);\n tableInstance.setRowSelection((current) => {\n const next = { ...current };\n for (const row of rows\n .slice(from, to + 1)\n .filter(\n (item) => item.getCanSelect() && item.getCanMultiSelect(),\n )) {\n if (selected) {\n next[row.id] = true;\n } else {\n delete next[row.id];\n }\n }\n return next;\n });\n },\n [lastSelectedRowIdRef, tableRef],\n );\n\n return React.useMemo>>(() => {\n const defs: Array> = [];\n\n if (hasTreeExpansion || detailPanel) {\n const expansionColumnSize =\n hasTreeExpansion && detailPanel ? 80 : UTILITY_COLUMN_SIZE;\n defs.push({\n id: \"__expand__\",\n enableResizing: false,\n enableSorting: false,\n enableHiding: false,\n size: expansionColumnSize,\n minSize: expansionColumnSize,\n maxSize: expansionColumnSize,\n header: () => {labels.expandRow},\n cell: ({ row, table }) => {\n const canExpandTree = hasTreeExpansion && row.getCanExpand();\n const canExpandDetail = Boolean(\n detailPanel && (detailPanel.getRowCanExpand?.(row.original) ?? true),\n );\n if (!canExpandTree && !canExpandDetail) {\n return null;\n }\n\n const isTreeExpanded = row.getIsExpanded();\n const isDetailExpanded =\n detailExpanded === true || Boolean(detailExpanded[row.id]);\n return (\n
\n {canExpandTree ? (\n row.toggleExpanded()}\n >\n \n \n ) : null}\n {canExpandDetail ? (\n {\n onDetailExpandedChange((current) =>\n toggleDataTableExpandedState(\n current,\n row.id,\n table.getCoreRowModel().flatRows.map((item) => item.id),\n ),\n );\n }}\n >\n \n \n ) : null}\n
\n );\n },\n });\n }\n\n if (enableRowSelection) {\n defs.push({\n id: \"__select__\",\n enableResizing: false,\n enableSorting: false,\n enableHiding: false,\n size: UTILITY_COLUMN_SIZE,\n minSize: UTILITY_COLUMN_SIZE,\n maxSize: UTILITY_COLUMN_SIZE,\n header: ({ table }) => {\n const selectsFilteredRows = rowSelectionSelectAllScope === \"filtered\";\n const selectableRows = (selectsFilteredRows\n ? table.getFilteredRowModel().flatRows\n : table.getRowModel().flatRows\n ).filter((row) => row.getCanSelect() && row.getCanMultiSelect());\n const allSelected =\n selectableRows.length > 0 &&\n selectableRows.every((row) => row.getIsSelected());\n const someSelected = selectableRows.some((row) => row.getIsSelected());\n const label = selectsFilteredRows\n ? (labels.selectAllFilteredRows ??\n DATA_TABLE_DEFAULT_LABELS.selectAllFilteredRows)\n : (labels.selectAllVisibleRows ??\n DATA_TABLE_DEFAULT_LABELS.selectAllVisibleRows);\n\n if (selectableRows.length === 0) {\n return {label};\n }\n\n return (\n
\n {\n table.setRowSelection((current) => {\n const next = { ...current };\n for (const row of selectableRows) {\n if (checked === true) {\n next[row.id] = true;\n } else {\n delete next[row.id];\n }\n }\n return next;\n });\n }}\n aria-label={label}\n />\n
\n );\n },\n cell: ({ row }) => (\n
\n ) => {\n if (\n !event.shiftKey ||\n !lastSelectedRowIdRef.current ||\n !row.getCanMultiSelect()\n ) {\n lastSelectedRowIdRef.current = row.id;\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n selectRowRange(row.id, !row.getIsSelected());\n lastSelectedRowIdRef.current = row.id;\n }}\n onCheckedChange={(checked: boolean | \"indeterminate\") => {\n lastSelectedRowIdRef.current = row.id;\n row.toggleSelected(checked === true);\n }}\n aria-label={\n labels.selectRow ?? DATA_TABLE_DEFAULT_LABELS.selectRow\n }\n />\n
\n ),\n });\n }\n\n defs.push(...columns.map((column) => decorateFilterableColumn(column)));\n\n if (includeFillSpacer) {\n defs.push({\n id: \"__spacer__\",\n cell: () => null,\n header: () => null,\n enableColumnFilter: false,\n enableGlobalFilter: false,\n enableGrouping: false,\n enableHiding: false,\n enablePinning: false,\n enableResizing: false,\n enableSorting: false,\n minSize: 0,\n size: 0,\n });\n }\n\n if (rowActions.length || editableRows || enableRowPinning) {\n defs.push({\n id: \"__actions__\",\n enableSorting: false,\n enableResizing: false,\n enableHiding: false,\n size: UTILITY_COLUMN_SIZE,\n minSize: UTILITY_COLUMN_SIZE,\n maxSize: UTILITY_COLUMN_SIZE,\n header: () => {labels.actions},\n cell: ({ row }) => {\n const rowId = row.id;\n const isEditing = editingRowId === rowId;\n\n if (isEditing) {\n return (\n
\n {editErrors._row ? (\n \n {editErrors._row}\n \n ) : null}\n {\n void saveEdit(row.original);\n }}\n >\n {labels.saveEdit}\n \n \n \n \n \n {labels.cancelEdit}\n \n \n {labels.cancelEdit}\n \n
\n );\n }\n\n return (\n
\n {\n startEditingRow(row.original, row.id);\n }}\n onCancelEditing={() => {}}\n labels={labels}\n rowPinning={\n enableRowPinning\n ? {\n canPin: row.getCanPin(),\n position: row.getIsPinned(),\n pin: (position) => row.pin(position),\n }\n : undefined\n }\n />\n
\n );\n },\n });\n }\n\n return defs;\n }, [\n Button,\n Checkbox,\n DataTableRowActions,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n cancelEditing,\n columns,\n editableRows,\n detailExpanded,\n detailPanel,\n editErrors,\n editingRowId,\n enableRowSelection,\n enableRowPinning,\n hasTreeExpansion,\n includeFillSpacer,\n isSavingEdit,\n isEditDirty,\n labels,\n lastSelectedRowIdRef,\n onDetailExpandedChange,\n rowSelectionSelectAllScope,\n rowActions,\n saveEdit,\n selectRowRange,\n startEditingRow,\n ]);\n}\n","import * as React from \"react\";\nimport type { Updater } from \"@tanstack/react-table\";\n\nexport function useControllableState({\n defaultValue,\n onChange,\n value,\n}: {\n defaultValue: T | (() => T);\n onChange?: (value: T) => void;\n value: T | undefined;\n}) {\n const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);\n const currentValue = value ?? uncontrolledValue;\n const currentValueRef = React.useRef(currentValue);\n\n React.useEffect(() => {\n currentValueRef.current = currentValue;\n }, [currentValue]);\n\n const setValue = React.useCallback(\n (updater: Updater) => {\n const nextValue =\n typeof updater === \"function\"\n ? (updater as (current: T) => T)(currentValueRef.current)\n : updater;\n currentValueRef.current = nextValue;\n\n onChange?.(nextValue);\n\n if (value === undefined) {\n setUncontrolledValue(nextValue);\n }\n },\n [onChange, value],\n );\n\n return [currentValue, setValue] as const;\n}\n","import * as React from \"react\";\n\nexport function useDataTableInfiniteScroll({\n enabled,\n hasMore,\n isLoadingMore,\n onLoadMore,\n onError,\n}: {\n enabled: boolean;\n hasMore: boolean;\n isLoadingMore?: boolean;\n onLoadMore: () => void | Promise;\n onError?: (error: unknown) => void;\n}) {\n const sentinelRef = React.useRef(null);\n const isRequestInFlightRef = React.useRef(false);\n const onLoadMoreEvent = React.useEffectEvent(onLoadMore);\n const onErrorEvent = React.useEffectEvent((error: unknown) => {\n onError?.(error);\n });\n\n React.useEffect(() => {\n if (!enabled || !hasMore || isLoadingMore) {\n return;\n }\n\n const target = sentinelRef.current;\n if (!target) {\n return;\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n const entry = entries[0];\n if (entry.isIntersecting && !isRequestInFlightRef.current) {\n isRequestInFlightRef.current = true;\n\n let result: void | Promise;\n try {\n result = onLoadMoreEvent();\n } catch (error) {\n isRequestInFlightRef.current = false;\n onErrorEvent(error);\n return;\n }\n\n void Promise.resolve(result)\n .catch((error: unknown) => {\n onErrorEvent(error);\n })\n .finally(() => {\n isRequestInFlightRef.current = false;\n });\n }\n },\n {\n rootMargin: \"200px 0px 200px 0px\",\n },\n );\n\n observer.observe(target);\n\n return () => {\n observer.disconnect();\n };\n }, [enabled, hasMore, isLoadingMore]);\n\n return sentinelRef;\n}\n","import * as React from \"react\";\n\nexport function useDataTablePaginationClamp({\n enabled,\n maxPageIndex,\n onPageIndexChange,\n pageIndex,\n setLocalPageIndex,\n}: {\n enabled: boolean;\n maxPageIndex: number;\n onPageIndexChange?: (pageIndex: number) => void;\n pageIndex: number;\n setLocalPageIndex: (pageIndex: number) => void;\n}) {\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n\n if (pageIndex >= 0 && pageIndex <= maxPageIndex) {\n return;\n }\n\n const nextPageIndex = Math.min(Math.max(pageIndex, 0), maxPageIndex);\n setLocalPageIndex(nextPageIndex);\n onPageIndexChange?.(nextPageIndex);\n }, [enabled, maxPageIndex, onPageIndexChange, pageIndex, setLocalPageIndex]);\n}\n","import * as React from \"react\";\nimport { normalizeDataTableSearchText } from \"./data-table-utils\";\nimport type {\n DataTableTanStackFilterFn as FilterFn,\n DataTableTanStackRow as Row,\n} from \"./tanstack-v9\";\n\n/**\n * Caches each searchable cell against the application-owned row object and\n * stable column id. WeakMap entries disappear with immutable rows and never\n * retain removed data. Mutable rows are deliberately unsupported because a\n * cache cannot safely observe deep changes without defeating its purpose.\n */\nexport function useDataTableSearchIndex(\n) {\n // eslint-disable-next-line react-hooks/immutability -- This weak cache is deliberately populated by TanStack's filter pass, never read during React render.\n return React.useMemo>(() => {\n const valuesByRow = new WeakMap>();\n\n return (row: Row, columnId: string, filterValue: unknown) => {\n const query = normalizeDataTableSearchText(filterValue);\n if (!query) {\n return true;\n }\n\n const original = row.original;\n if (typeof original !== \"object\" || original === null) {\n return normalizeDataTableSearchText(row.getValue(columnId)).includes(\n query,\n );\n }\n\n let valuesByColumn = valuesByRow.get(original);\n if (!valuesByColumn) {\n valuesByColumn = new Map();\n valuesByRow.set(original, valuesByColumn);\n }\n\n let text = valuesByColumn.get(columnId);\n if (text === undefined) {\n const value = row.getValue(columnId);\n text = normalizeDataTableSearchText(value);\n valuesByColumn.set(columnId, text);\n }\n\n return text.includes(query);\n };\n }, []);\n}\n","import {\n aggregationFns as builtInAggregationFns,\n columnFacetingFeature,\n columnFilteringFeature,\n columnGroupingFeature,\n columnOrderingFeature,\n columnPinningFeature,\n columnResizingFeature,\n columnSizingFeature,\n columnVisibilityFeature,\n createExpandedRowModel,\n createFacetedMinMaxValues,\n createFacetedRowModel,\n createFacetedUniqueValues,\n createFilteredRowModel,\n createGroupedRowModel,\n createPaginatedRowModel,\n createSortedRowModel,\n filterFns as builtInFilterFns,\n globalFilteringFeature,\n rowAggregationFeature,\n rowExpandingFeature,\n rowPaginationFeature,\n rowPinningFeature,\n rowSelectionFeature,\n rowSortingFeature,\n sortFns as builtInSortFns,\n tableFeatures,\n} from \"@tanstack/react-table\";\nimport type {\n AggregationFnDef,\n Cell,\n CellContext,\n Column,\n ColumnDef,\n FilterFn,\n FilterFnOption,\n Header,\n HeaderContext,\n Row,\n RowData,\n Table,\n} from \"@tanstack/react-table\";\n\n/**\n * The v9 feature surface used by every data-table adapter.\n *\n * Keeping this registry in one module makes the new feature generic an\n * implementation detail instead of leaking it through every public type.\n * Function registries remain broad during the migration so existing named\n * column definitions keep working. They can be narrowed once the v9 surface\n * is fully audited.\n */\ntype DataTableAggregationRegistry = Record;\ntype BuiltInFilterFn =\n (typeof builtInFilterFns)[keyof typeof builtInFilterFns];\n\nexport function createDataTableFeatures(\n customAggregationFns: DataTableAggregationRegistry = {},\n) {\n return tableFeatures({\n columnFacetingFeature,\n columnFilteringFeature,\n globalFilteringFeature,\n rowAggregationFeature,\n columnGroupingFeature,\n columnOrderingFeature,\n columnPinningFeature,\n columnSizingFeature,\n columnResizingFeature,\n columnVisibilityFeature,\n rowExpandingFeature,\n rowPaginationFeature,\n rowPinningFeature,\n rowSelectionFeature,\n rowSortingFeature,\n expandedRowModel: createExpandedRowModel(),\n facetedMinMaxValues: createFacetedMinMaxValues(),\n facetedRowModel: createFacetedRowModel(),\n facetedUniqueValues: createFacetedUniqueValues(),\n filteredRowModel: createFilteredRowModel(),\n groupedRowModel: createGroupedRowModel(),\n paginatedRowModel: createPaginatedRowModel(),\n sortedRowModel: createSortedRowModel(),\n aggregationFns: {\n ...(builtInAggregationFns as DataTableAggregationRegistry),\n ...customAggregationFns,\n },\n filterFns: builtInFilterFns as Record,\n sortFns: builtInSortFns,\n });\n}\n\nexport const dataTableFeatures = createDataTableFeatures();\n\nexport type DataTableFeatures = typeof dataTableFeatures;\nexport type DataTableRowData = Extract;\nexport type DataTableTanStackTable = Table<\n DataTableFeatures,\n DataTableRowData\n>;\nexport type DataTableTanStackRow = Row<\n DataTableFeatures,\n DataTableRowData\n>;\nexport type DataTableTanStackColumn = Column<\n DataTableFeatures,\n DataTableRowData,\n TValue\n>;\nexport type DataTableTanStackCell = Cell<\n DataTableFeatures,\n DataTableRowData,\n TValue\n>;\nexport type DataTableTanStackHeader = Header<\n DataTableFeatures,\n DataTableRowData,\n TValue\n>;\nexport type DataTableTanStackColumnDef = ColumnDef<\n DataTableFeatures,\n DataTableRowData,\n TValue\n>;\nexport type DataTableTanStackCellContext = CellContext<\n DataTableFeatures,\n DataTableRowData,\n TValue\n>;\nexport type DataTableTanStackHeaderContext =\n HeaderContext, TValue>;\nexport type DataTableTanStackFilterFn = FilterFn<\n DataTableFeatures,\n DataTableRowData\n>;\nexport type DataTableTanStackFilterFnOption = FilterFnOption<\n DataTableFeatures,\n DataTableRowData\n>;\nexport type DataTableTanStackAggregationFn = AggregationFnDef<\n DataTableFeatures,\n DataTableRowData\n>;\n","import * as React from \"react\";\nimport { useTable } from \"@tanstack/react-table\";\nimport type {\n ColumnFiltersState,\n ColumnOrderState,\n ColumnPinningState as TanStackColumnPinningState,\n ColumnSizingState,\n ColumnVisibilityState as VisibilityState,\n ExpandedState,\n GroupingState,\n OnChangeFn,\n PaginationState,\n RowPinningState,\n RowSelectionState,\n SortingState,\n} from \"@tanstack/react-table\";\nimport type {\n DataTableColumnPinningState,\n DataTableProps,\n} from \"../types\";\nimport {\n canReorderDataTableColumn,\n getColumnId,\n getDataTableLeafColumns,\n isDataTableLoadingRow,\n isUtilityColumnId,\n moveColumnInOrder,\n} from \"./data-table-utils\";\nimport type { DataTableColumnGroupPaths } from \"./data-table-utils\";\nimport { useDataTableInfiniteScroll } from \"./use-data-table-infinite-scroll\";\nimport { useDataTablePaginationClamp } from \"./use-data-table-pagination-clamp\";\nimport { useDataTableSearchIndex } from \"./use-data-table-search-index\";\nimport {\n createDataTableFeatures,\n type DataTableFeatures,\n type DataTableTanStackColumn as Column,\n type DataTableRowData,\n type DataTableTanStackColumnDef as ColumnDef,\n type DataTableTanStackFilterFnOption as FilterFnOption,\n type DataTableTanStackRow as Row,\n type DataTableTanStackTable as TanStackTable,\n} from \"./tanstack-v9\";\n\nexport type DataTableRowsToRender = Array<{\n row: Row;\n rowIndex: number;\n}>;\n\ntype DataTableInstanceResult = {\n effectivePageCount: number;\n footerTotalRowCount: number | undefined;\n handleFooterPageIndexChange: (nextPageIndex: number) => void;\n handleFooterPageSizeChange: (nextPageSize: number) => void;\n isPageCountKnown: boolean;\n renderedRows: Array>;\n topPinnedRows: Array>;\n bottomPinnedRows: Array>;\n reorderColumn: (sourceColumnId: string, targetColumnId: string) => void;\n rowsToRender: DataTableRowsToRender;\n sentinelRef: React.RefObject;\n table: TanStackTable;\n virtualPaddingBottom: number;\n virtualPaddingTop: number;\n visibleLeafColumns: Array>;\n};\n\nexport function useDataTableInstance({\n autoResetPageIndex,\n columnGroupPaths,\n columnResizeMode,\n dir,\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentSorting,\n currentViewMode,\n defaultColumn,\n effectiveColumnVisibility,\n enableColumnResizing,\n enableMultiRowSelection,\n enableRowPinning,\n enableRowSelection,\n enableSubRowSelection,\n getRowCanSelect,\n getRowCanExpand,\n getSubRows,\n aggregationFns,\n groupedColumnMode,\n globalFilterFn,\n globalFilterValue,\n hasNextPage,\n handleColumnFiltersChange,\n handleColumnOrderChange,\n handleColumnPinningChange,\n handleRowPinningChange,\n handleColumnVisibilityChange,\n handleExpandedChange,\n handleGroupingChange,\n infiniteScroll,\n keepPinnedRows,\n manualFiltering,\n manualGrouping,\n manualExpanding,\n manualPagination,\n manualSorting,\n onActionError,\n onPageIndexChange,\n onPageSizeChange,\n pageCount,\n pageIndex,\n pageSize,\n paginateExpandedRows,\n filterFromLeafRows,\n maxLeafRowFilterDepth,\n setCurrentRowSelection,\n setCurrentSorting,\n setLocalColumnSizing,\n setLocalPagination,\n shouldRenderInitialLoading,\n tableColumns,\n tableData,\n tableGetRowId,\n tableRef,\n totalRowCount,\n virtualization,\n}: {\n autoResetPageIndex: boolean;\n columnGroupPaths: DataTableColumnGroupPaths;\n columnResizeMode: DataTableProps[\"columnResizeMode\"];\n dir: NonNullable[\"dir\"]>;\n currentColumnFilters: ColumnFiltersState;\n currentColumnOrder: ColumnOrderState;\n currentColumnPinning: DataTableColumnPinningState;\n currentRowPinning: RowPinningState;\n currentColumnSizing: ColumnSizingState;\n currentExpanded: ExpandedState;\n currentGrouping: GroupingState;\n currentPagination: PaginationState;\n currentRowSelection: Record;\n currentSorting: SortingState;\n currentViewMode: \"table\" | \"card\";\n defaultColumn: Partial>;\n effectiveColumnVisibility: VisibilityState;\n enableColumnResizing: boolean;\n enableMultiRowSelection: NonNullable<\n DataTableProps[\"enableMultiRowSelection\"]\n >;\n enableRowPinning: DataTableProps[\"enableRowPinning\"];\n enableRowSelection: boolean;\n enableSubRowSelection: NonNullable<\n DataTableProps[\"enableSubRowSelection\"]\n >;\n getRowCanSelect: DataTableProps[\"getRowCanSelect\"];\n getRowCanExpand: DataTableProps[\"getRowCanExpand\"];\n getSubRows: DataTableProps[\"getSubRows\"];\n aggregationFns: DataTableProps[\"aggregationFns\"];\n groupedColumnMode: DataTableProps[\"groupedColumnMode\"];\n globalFilterFn: FilterFnOption | undefined;\n globalFilterValue: string;\n hasNextPage?: DataTableProps[\"hasNextPage\"];\n handleColumnFiltersChange: OnChangeFn;\n handleColumnOrderChange: OnChangeFn;\n handleColumnPinningChange: OnChangeFn;\n handleRowPinningChange: OnChangeFn;\n handleColumnVisibilityChange: OnChangeFn;\n handleExpandedChange: OnChangeFn;\n handleGroupingChange: OnChangeFn;\n infiniteScroll: DataTableProps[\"infiniteScroll\"];\n keepPinnedRows: boolean;\n manualFiltering: boolean;\n manualGrouping: boolean;\n manualExpanding: boolean;\n manualPagination: boolean;\n manualSorting: boolean;\n onActionError?: DataTableProps[\"onActionError\"];\n onPageIndexChange: DataTableProps[\"onPageIndexChange\"];\n onPageSizeChange: DataTableProps[\"onPageSizeChange\"];\n pageCount: DataTableProps[\"pageCount\"];\n pageIndex: DataTableProps[\"pageIndex\"];\n pageSize: DataTableProps[\"pageSize\"];\n paginateExpandedRows: DataTableProps[\"paginateExpandedRows\"];\n filterFromLeafRows: DataTableProps[\"filterFromLeafRows\"];\n maxLeafRowFilterDepth: DataTableProps[\"maxLeafRowFilterDepth\"];\n setCurrentRowSelection: OnChangeFn>;\n setCurrentSorting: OnChangeFn;\n setLocalColumnSizing: OnChangeFn;\n setLocalPagination: React.Dispatch>;\n shouldRenderInitialLoading: boolean;\n tableColumns: Array>;\n tableData: Array;\n tableGetRowId: DataTableProps[\"getRowId\"];\n tableRef: React.RefObject | null>;\n tableScrollElement: HTMLElement | null;\n /**\n * @deprecated Filtering now runs through TanStack Table. Retained so\n * advanced 4.x hook callers remain source-compatible.\n */\n toolbarFilteredData?: Array;\n totalRowCount: DataTableProps[\"totalRowCount\"];\n virtualization: DataTableProps[\"virtualization\"];\n viewportHeight: number;\n}): DataTableInstanceResult {\n const cachedGlobalFilterFn = useDataTableSearchIndex();\n const generatedColumnIds = React.useMemo(() => {\n return getDataTableLeafColumns(\n tableColumns as DataTableProps[\"columns\"],\n ).map(({ column, index }) => getColumnId(column, index));\n }, [tableColumns]);\n\n const effectiveColumnOrder = React.useMemo(() => {\n const columnIds = generatedColumnIds;\n const dataColumnIds = columnIds.filter(\n (columnId) =>\n !isUtilityColumnId(columnId) && columnId !== \"__spacer__\",\n );\n const dataColumnIdSet = new Set(dataColumnIds);\n const orderedDataColumnIds = currentColumnOrder.filter((columnId) =>\n dataColumnIdSet.has(columnId),\n );\n const unorderedDataColumnIds = dataColumnIds.filter(\n (columnId) => !orderedDataColumnIds.includes(columnId),\n );\n\n return [\n ...columnIds.filter(\n (columnId) => columnId === \"__expand__\" || columnId === \"__select__\",\n ),\n ...orderedDataColumnIds,\n ...unorderedDataColumnIds,\n ...columnIds.filter((columnId) => columnId === \"__spacer__\"),\n ...columnIds.filter((columnId) => columnId === \"__actions__\"),\n ];\n }, [currentColumnOrder, generatedColumnIds]);\n\n const effectiveColumnPinning = React.useMemo(() => {\n const columnIdSet = new Set(generatedColumnIds);\n const dataColumnIdSet = new Set(\n generatedColumnIds.filter(\n (columnId) =>\n !isUtilityColumnId(columnId) && columnId !== \"__spacer__\",\n ),\n );\n const dataLeft = (currentColumnPinning.left ?? []).filter((columnId) =>\n dataColumnIdSet.has(columnId),\n );\n const dataRight = (currentColumnPinning.right ?? []).filter((columnId) =>\n dataColumnIdSet.has(columnId),\n );\n\n return {\n start: [\n ...[\"__expand__\", \"__select__\"].filter((columnId) =>\n columnIdSet.has(columnId),\n ),\n ...dataLeft,\n ],\n end: [\n ...dataRight,\n ...[\"__actions__\"].filter((columnId) => columnIdSet.has(columnId)),\n ],\n };\n }, [currentColumnPinning, generatedColumnIds]);\n\n const handleTanStackColumnPinningChange = React.useCallback<\n OnChangeFn\n >(\n (updater) => {\n const nextValue =\n typeof updater === \"function\"\n ? updater(effectiveColumnPinning)\n : updater;\n const dataColumnIds = new Set(\n generatedColumnIds.filter(\n (columnId) =>\n !isUtilityColumnId(columnId) && columnId !== \"__spacer__\",\n ),\n );\n handleColumnPinningChange({\n left: nextValue.start.filter((columnId) => dataColumnIds.has(columnId)),\n right: nextValue.end.filter((columnId) => dataColumnIds.has(columnId)),\n });\n },\n [\n effectiveColumnPinning,\n generatedColumnIds,\n handleColumnPinningChange,\n ],\n );\n\n const effectiveRowPinning = React.useMemo(() => {\n const availableRowIds = new Set();\n const visitRows = (rows: Array) => {\n rows.forEach((row, index) => {\n availableRowIds.add(tableGetRowId(row, index));\n if (!isDataTableLoadingRow(row)) {\n const subRows = getSubRows?.(row, index);\n if (subRows?.length) {\n visitRows(subRows);\n }\n }\n });\n };\n visitRows(tableData);\n const top = (currentRowPinning.top ?? []).filter((rowId) =>\n availableRowIds.has(rowId),\n );\n const topIds = new Set(top);\n const bottom = (currentRowPinning.bottom ?? []).filter(\n (rowId) => availableRowIds.has(rowId) && !topIds.has(rowId),\n );\n return { top, bottom };\n }, [\n currentRowPinning.bottom,\n currentRowPinning.top,\n getSubRows,\n tableData,\n tableGetRowId,\n ]);\n\n const tanStackRowSelection = React.useMemo(() => {\n return Object.fromEntries(\n Object.entries(currentRowSelection).flatMap(([rowId, selected]) =>\n selected ? [[rowId, true as const]] : [],\n ),\n );\n }, [currentRowSelection]);\n\n const handleTanStackRowSelectionChange = React.useCallback<\n OnChangeFn\n >(\n (updater) => {\n const nextValue =\n typeof updater === \"function\"\n ? updater(tanStackRowSelection)\n : updater;\n setCurrentRowSelection({ ...nextValue });\n },\n [setCurrentRowSelection, tanStackRowSelection],\n );\n\n const tableState = React.useMemo(\n () => ({\n sorting: currentSorting,\n pagination: currentPagination,\n rowSelection: tanStackRowSelection,\n columnVisibility: effectiveColumnVisibility,\n columnFilters: currentColumnFilters,\n globalFilter: globalFilterValue,\n expanded: currentExpanded,\n grouping: currentGrouping,\n columnOrder: effectiveColumnOrder,\n columnPinning: effectiveColumnPinning,\n rowPinning: effectiveRowPinning,\n columnSizing: currentColumnSizing,\n }),\n [\n currentColumnFilters,\n currentColumnSizing,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentSorting,\n effectiveColumnVisibility,\n effectiveColumnOrder,\n effectiveColumnPinning,\n effectiveRowPinning,\n globalFilterValue,\n tanStackRowSelection,\n ],\n );\n\n const handlePaginationChange = React.useCallback<\n OnChangeFn\n >(\n (updater) => {\n const nextValue =\n typeof updater === \"function\" ? updater(currentPagination) : updater;\n\n if (pageIndex === undefined || pageSize === undefined) {\n setLocalPagination((current) => ({\n pageIndex:\n pageIndex === undefined ? nextValue.pageIndex : current.pageIndex,\n pageSize:\n pageSize === undefined ? nextValue.pageSize : current.pageSize,\n }));\n }\n\n if (nextValue.pageIndex !== currentPagination.pageIndex) {\n onPageIndexChange?.(nextValue.pageIndex);\n }\n if (nextValue.pageSize !== currentPagination.pageSize) {\n onPageSizeChange?.(nextValue.pageSize);\n }\n },\n [\n currentPagination,\n onPageIndexChange,\n onPageSizeChange,\n pageIndex,\n pageSize,\n setLocalPagination,\n ],\n );\n\n const handleColumnSizingChange = React.useCallback<\n OnChangeFn\n >(\n (updater) => {\n setLocalColumnSizing(updater);\n },\n [setLocalColumnSizing],\n );\n\n const features = React.useMemo(\n () => createDataTableFeatures(aggregationFns),\n [aggregationFns],\n );\n\n const table = useTable>({\n features,\n data: tableData as Array>,\n columns: tableColumns,\n enableRowSelection: getRowCanSelect\n ? (row) => enableRowSelection && getRowCanSelect(row.original)\n : enableRowSelection,\n enableRowPinning:\n typeof enableRowPinning === \"function\"\n ? (row) => enableRowPinning(row.original)\n : enableRowPinning,\n keepPinnedRows,\n enableMultiRowSelection:\n typeof enableMultiRowSelection === \"function\"\n ? (row) => enableMultiRowSelection(row.original)\n : enableMultiRowSelection,\n enableSubRowSelection:\n typeof enableSubRowSelection === \"function\"\n ? (row) => enableSubRowSelection(row.original)\n : enableSubRowSelection,\n enableColumnResizing,\n columnResizeMode,\n columnResizeDirection: dir,\n getRowId: tableGetRowId,\n getSubRows: getSubRows\n ? (row, index) =>\n getSubRows(row, index) as\n | Array>\n | undefined\n : undefined,\n getRowCanExpand: getSubRows\n ? (row) => getRowCanExpand?.(row.original) ?? row.subRows.length > 0\n : undefined,\n globalFilterFn: globalFilterFn ?? cachedGlobalFilterFn,\n getColumnCanGlobalFilter: (column) =>\n (column.columnDef as ColumnDef).enableGlobalFilter !==\n false &&\n typeof column.accessorFn === \"function\",\n manualSorting,\n manualGrouping,\n manualFiltering,\n manualExpanding,\n manualPagination: manualPagination || Boolean(infiniteScroll?.enabled),\n paginateExpandedRows,\n filterFromLeafRows,\n maxLeafRowFilterDepth,\n defaultColumn,\n autoResetPageIndex,\n state: tableState,\n onSortingChange: setCurrentSorting,\n onPaginationChange: handlePaginationChange,\n onRowSelectionChange: handleTanStackRowSelectionChange,\n onColumnVisibilityChange: handleColumnVisibilityChange,\n onColumnFiltersChange: handleColumnFiltersChange,\n onExpandedChange: handleExpandedChange,\n onGroupingChange: handleGroupingChange,\n onColumnOrderChange: handleColumnOrderChange,\n onColumnPinningChange: handleTanStackColumnPinningChange,\n onRowPinningChange: handleRowPinningChange,\n onColumnSizingChange: handleColumnSizingChange,\n groupedColumnMode,\n });\n React.useLayoutEffect(() => {\n tableRef.current = table;\n return () => {\n if (tableRef.current === table) {\n tableRef.current = null;\n }\n };\n }, [table, tableRef]);\n\n const visibleLeafColumns = table.getVisibleLeafColumns();\n const reorderColumn = React.useCallback(\n (sourceColumnId: string, targetColumnId: string) => {\n if (sourceColumnId === targetColumnId) {\n return;\n }\n\n if (\n !canReorderDataTableColumn(\n sourceColumnId,\n targetColumnId,\n columnGroupPaths,\n )\n ) {\n return;\n }\n\n const defaultOrder = table\n .getAllLeafColumns()\n .map((column) => column.id)\n .filter(\n (columnId) =>\n !isUtilityColumnId(columnId) && columnId !== \"__spacer__\",\n );\n const nextOrder = moveColumnInOrder(\n currentColumnOrder.length ? currentColumnOrder : defaultOrder,\n sourceColumnId,\n targetColumnId,\n );\n handleColumnOrderChange(nextOrder);\n },\n [columnGroupPaths, currentColumnOrder, handleColumnOrderChange, table],\n );\n\n const topPinnedRows = table.getTopRows();\n const bottomPinnedRows = table.getBottomRows();\n // Card rendering has no top/bottom table regions. Keep its original row\n // model intact rather than silently dropping pinned records.\n const renderedRows =\n currentViewMode === \"table\"\n ? table.getCenterRows()\n : table.getRowModel().rows;\n const virtualizationConfig =\n typeof virtualization === \"object\" ? virtualization : undefined;\n const virtualRowsEnabled =\n virtualization === true || virtualizationConfig?.enabled === true;\n const fallbackRowCount = Math.max(\n 1,\n Math.floor(virtualizationConfig?.fallbackRowCount ?? 20),\n );\n const initialRowsToRender = virtualRowsEnabled\n ? renderedRows.slice(0, fallbackRowCount)\n : renderedRows;\n const rowsToRender = initialRowsToRender.map((row, rowIndex) => ({\n row,\n rowIndex,\n }));\n\n const usesManualRows = manualPagination || Boolean(infiniteScroll?.enabled);\n const derivedTotalRowCount = usesManualRows\n ? undefined\n : table.getFilteredRowModel().rows.length;\n const effectiveTotalRowCount = totalRowCount ?? derivedTotalRowCount;\n const isPageCountKnown =\n !usesManualRows || pageCount !== undefined || totalRowCount !== undefined;\n const footerTotalRowCount = effectiveTotalRowCount;\n const effectivePageCount = shouldRenderInitialLoading\n ? 1\n : (pageCount ??\n (effectiveTotalRowCount !== undefined\n ? Math.max(\n 1,\n Math.ceil(effectiveTotalRowCount / currentPagination.pageSize),\n )\n : usesManualRows\n ? currentPagination.pageIndex + (hasNextPage ? 2 : 1)\n : table.getPageCount()));\n const maxPageIndex = Math.max(0, effectivePageCount - 1);\n\n const setLocalPageIndex = React.useCallback(\n (nextPageIndex: number) => {\n if (pageIndex !== undefined) {\n return;\n }\n\n setLocalPagination((current) =>\n current.pageIndex === nextPageIndex\n ? current\n : { ...current, pageIndex: nextPageIndex },\n );\n },\n [pageIndex, setLocalPagination],\n );\n useDataTablePaginationClamp({\n enabled:\n !shouldRenderInitialLoading &&\n !infiniteScroll?.enabled &&\n isPageCountKnown,\n maxPageIndex,\n onPageIndexChange,\n pageIndex: currentPagination.pageIndex,\n setLocalPageIndex,\n });\n\n const handleFooterPageIndexChange = React.useCallback(\n (nextPageIndex: number) => {\n if (nextPageIndex === currentPagination.pageIndex) {\n return;\n }\n\n onPageIndexChange?.(nextPageIndex);\n if (pageIndex === undefined) {\n setLocalPagination((current) =>\n current.pageIndex === nextPageIndex\n ? current\n : { ...current, pageIndex: nextPageIndex },\n );\n }\n },\n [\n currentPagination.pageIndex,\n onPageIndexChange,\n pageIndex,\n setLocalPagination,\n ],\n );\n const handleFooterPageSizeChange = React.useCallback(\n (nextPageSize: number) => {\n if (currentPagination.pageIndex !== 0) {\n onPageIndexChange?.(0);\n }\n if (nextPageSize !== currentPagination.pageSize) {\n onPageSizeChange?.(nextPageSize);\n }\n if (pageSize === undefined) {\n setLocalPagination({\n pageIndex: 0,\n pageSize: nextPageSize,\n });\n }\n },\n [\n currentPagination.pageIndex,\n currentPagination.pageSize,\n onPageIndexChange,\n onPageSizeChange,\n pageSize,\n setLocalPagination,\n ],\n );\n\n const sentinelRef = useDataTableInfiniteScroll({\n enabled: Boolean(infiniteScroll?.enabled),\n hasMore: Boolean(infiniteScroll?.hasMore),\n isLoadingMore: infiniteScroll?.isLoadingMore,\n onLoadMore: () => infiniteScroll?.onLoadMore(),\n onError: (error) => {\n onActionError?.({\n error,\n source: \"infiniteScroll\",\n });\n },\n });\n\n return {\n effectivePageCount,\n footerTotalRowCount,\n handleFooterPageIndexChange,\n handleFooterPageSizeChange,\n isPageCountKnown,\n renderedRows,\n topPinnedRows,\n bottomPinnedRows,\n reorderColumn,\n rowsToRender,\n sentinelRef,\n table,\n virtualPaddingBottom: 0,\n virtualPaddingTop: 0,\n visibleLeafColumns,\n };\n}\n","import * as React from \"react\";\nimport type {\n DataTableColumnPrefs,\n DataTableDensity,\n DataTablePersistenceConfig,\n DataTablePersistencePayload,\n DataTablePersistenceSlice,\n DataTablePersistenceStorage,\n} from \"../types\";\nimport type { RowPinningState } from \"@tanstack/react-table\";\n\nconst STORAGE_PREFIX = \"data-table-pro:column-prefs:\";\nconst DEFAULT_VERSION = 1;\nconst ALL_SLICES: Array = [\n \"visibility\",\n \"sizing\",\n \"order\",\n \"pinning\",\n \"rowPinning\",\n \"density\",\n];\n\nexport function readDataTableColumnPrefs(\n input: string | DataTablePersistenceConfig | undefined,\n): DataTableColumnPrefs {\n const config = resolvePersistenceConfig(input);\n if (!config) {\n return {};\n }\n\n const storage = resolveStorage(config);\n if (!storage) {\n return {};\n }\n const storageKey = getStorageKey(config.key);\n\n let value: string | null;\n try {\n value = storage.getItem(storageKey);\n } catch (error) {\n config.onError?.({ error, operation: \"read\" });\n return {};\n }\n if (!value) {\n return {};\n }\n\n let parsed: unknown;\n try {\n parsed = (config.deserialize ?? JSON.parse)(value);\n } catch (error) {\n config.onError?.({ error, operation: \"deserialize\" });\n return {};\n }\n\n const targetVersion = config.version ?? DEFAULT_VERSION;\n let candidate: unknown;\n if (isPersistencePayload(parsed)) {\n if (parsed.version === targetVersion) {\n candidate = parsed.state;\n } else if (config.migrate) {\n try {\n candidate = config.migrate(\n {\n version: parsed.version,\n state: parsed.state,\n },\n targetVersion,\n );\n } catch (error) {\n config.onError?.({ error, operation: \"migrate\" });\n return {};\n }\n } else {\n return {};\n }\n } else {\n // Raw objects are the legacy columnPrefsKey format. They are validated and\n // upgraded to a versioned envelope on the next successful write.\n candidate = parsed;\n }\n\n return selectPersistenceSlices(\n validateDataTableColumnPrefs(candidate),\n config.slices,\n );\n}\n\nexport function clearDataTableColumnPrefs(\n input: string | DataTablePersistenceConfig | undefined,\n) {\n const config = resolvePersistenceConfig(input);\n if (!config) {\n return false;\n }\n\n const storage = resolveStorage(config);\n if (!storage) {\n return false;\n }\n\n try {\n storage.removeItem(getStorageKey(config.key));\n return true;\n } catch (error) {\n config.onError?.({ error, operation: \"remove\" });\n return false;\n }\n}\n\nexport function usePersistDataTableColumnPrefs({\n key,\n persistence,\n prefs,\n}: {\n key?: string;\n persistence?: DataTablePersistenceConfig;\n prefs: DataTableColumnPrefs;\n}) {\n const config = persistence ?? resolvePersistenceConfig(key);\n const storage = config ? resolveStorage(config) : undefined;\n const storageKey = config ? getStorageKey(config.key) : undefined;\n const version = config?.version ?? DEFAULT_VERSION;\n const debounceMs = Math.max(0, config?.debounceMs ?? 100);\n const selectedState = selectPersistenceSlices(prefs, config?.slices);\n const serialized = React.useMemo(() => {\n if (!config) {\n return { value: undefined };\n }\n\n try {\n const payload: DataTablePersistencePayload = {\n version,\n state: selectedState,\n };\n return {\n value: (config.serialize ?? JSON.stringify)(payload),\n };\n } catch (error) {\n return { error, value: undefined };\n }\n }, [config, selectedState, version]);\n const onErrorEvent = React.useEffectEvent(\n (\n error: unknown,\n operation: \"serialize\" | \"write\",\n ) => {\n config?.onError?.({ error, operation });\n },\n );\n\n React.useEffect(() => {\n if (serialized.error !== undefined) {\n onErrorEvent(serialized.error, \"serialize\");\n }\n }, [serialized.error]);\n\n React.useEffect(() => {\n if (!storage || !storageKey || serialized.value === undefined) {\n return;\n }\n\n const write = () => {\n try {\n if (storage.getItem(storageKey) === serialized.value) {\n return;\n }\n storage.setItem(storageKey, serialized.value);\n } catch (error) {\n onErrorEvent(error, \"write\");\n }\n };\n\n if (debounceMs === 0) {\n write();\n return;\n }\n\n const timeout = globalThis.setTimeout(write, debounceMs);\n return () => {\n globalThis.clearTimeout(timeout);\n };\n }, [debounceMs, serialized.value, storage, storageKey]);\n}\n\nfunction resolvePersistenceConfig(\n input: string | DataTablePersistenceConfig | undefined,\n): DataTablePersistenceConfig | undefined {\n if (!input) {\n return undefined;\n }\n\n return typeof input === \"string\" ? { key: input } : input;\n}\n\nfunction resolveStorage(\n config: DataTablePersistenceConfig,\n): DataTablePersistenceStorage | undefined {\n if (config.storage) {\n return config.storage;\n }\n\n if (typeof window === \"undefined\") {\n return undefined;\n }\n\n try {\n return window.localStorage;\n } catch (error) {\n config.onError?.({ error, operation: \"read\" });\n return undefined;\n }\n}\n\nfunction getStorageKey(key: string) {\n return `${STORAGE_PREFIX}${key}`;\n}\n\nfunction isPersistencePayload(\n value: unknown,\n): value is { version: unknown; state: unknown } {\n return (\n isRecord(value) &&\n Object.prototype.hasOwnProperty.call(value, \"version\") &&\n Object.prototype.hasOwnProperty.call(value, \"state\")\n );\n}\n\nfunction selectPersistenceSlices(\n prefs: DataTableColumnPrefs,\n slices: Array | undefined,\n) {\n const selected = new Set(slices ?? ALL_SLICES);\n const result: DataTableColumnPrefs = {};\n\n for (const slice of ALL_SLICES) {\n if (selected.has(slice) && prefs[slice] !== undefined) {\n Object.assign(result, { [slice]: prefs[slice] });\n }\n }\n\n return result;\n}\n\nfunction validateDataTableColumnPrefs(value: unknown): DataTableColumnPrefs {\n if (!isRecord(value)) {\n return {};\n }\n\n const prefs: DataTableColumnPrefs = {};\n const visibility = validateBooleanRecord(value.visibility);\n if (visibility) {\n prefs.visibility = visibility;\n }\n const sizing = validateSizingRecord(value.sizing);\n if (sizing) {\n prefs.sizing = sizing;\n }\n const order = validateStringArray(value.order);\n if (order) {\n prefs.order = order;\n }\n if (isRecord(value.pinning)) {\n const left = validateStringArray(value.pinning.left) ?? [];\n const right = validateStringArray(value.pinning.right) ?? [];\n prefs.pinning = { left, right };\n }\n const rowPinning = validateRowPinning(value.rowPinning);\n if (rowPinning) {\n prefs.rowPinning = rowPinning;\n }\n if (isDataTableDensity(value.density)) {\n prefs.density = value.density;\n }\n\n return prefs;\n}\n\nfunction validateBooleanRecord(value: unknown) {\n if (!isRecord(value)) {\n return undefined;\n }\n\n return Object.fromEntries(\n Object.entries(value).filter(\n (entry): entry is [string, boolean] => typeof entry[1] === \"boolean\",\n ),\n );\n}\n\nfunction validateSizingRecord(value: unknown) {\n if (!isRecord(value)) {\n return undefined;\n }\n\n return Object.fromEntries(\n Object.entries(value).filter(\n (entry): entry is [string, number] =>\n typeof entry[1] === \"number\" &&\n Number.isFinite(entry[1]) &&\n entry[1] >= 0,\n ),\n );\n}\n\nfunction validateStringArray(value: unknown) {\n if (!Array.isArray(value)) {\n return undefined;\n }\n\n return value.filter((item): item is string => typeof item === \"string\");\n}\n\nfunction validateRowPinning(value: unknown): RowPinningState | undefined {\n if (!isRecord(value)) {\n return undefined;\n }\n\n return {\n top: validateStringArray(value.top) ?? [],\n bottom: validateStringArray(value.bottom) ?? [],\n };\n}\n\nfunction isDataTableDensity(value: unknown): value is DataTableDensity {\n return (\n value === \"compact\" ||\n value === \"comfortable\" ||\n value === \"spacious\"\n );\n}\n\nfunction isRecord(value: unknown): value is Record {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n","import * as React from \"react\";\nimport { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS } from \"../types\";\n\nconst BREAKPOINT_WIDTHS = Object.values(DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS)\n .slice()\n .sort((first, second) => first - second);\n\nexport function useDataTableContainerWidth(\n containerRef: React.RefObject,\n) {\n const widthRef = React.useRef(0);\n const [width, setWidth] = React.useState(0);\n\n React.useEffect(() => {\n const element = containerRef.current;\n if (!element) {\n return;\n }\n\n const updateWidth = (inlineSize = element.clientWidth) => {\n const nextWidth = quantizeDataTableContainerWidth(inlineSize);\n if (nextWidth === widthRef.current) {\n return;\n }\n\n widthRef.current = nextWidth;\n setWidth(nextWidth);\n };\n\n updateWidth();\n\n if (typeof ResizeObserver === \"undefined\") {\n return;\n }\n\n const observer = new ResizeObserver((entries) => {\n const entry = entries[0];\n updateWidth(entry ? getResizeObserverInlineSize(entry) : undefined);\n });\n\n observer.observe(element);\n\n return () => {\n observer.disconnect();\n };\n }, [containerRef]);\n\n return width;\n}\n\nexport function quantizeDataTableContainerWidth(width: number) {\n if (width <= 0) {\n return 0;\n }\n\n let bucket = 1;\n for (const breakpointWidth of BREAKPOINT_WIDTHS) {\n if (width < breakpointWidth) {\n break;\n }\n bucket = breakpointWidth;\n }\n\n return bucket;\n}\n\nfunction getResizeObserverInlineSize(entry: ResizeObserverEntry) {\n const contentBoxSize: unknown = entry.contentBoxSize;\n const size: unknown = Array.isArray(contentBoxSize)\n ? contentBoxSize[0]\n : contentBoxSize;\n const inlineSize = getInlineSize(size);\n\n return inlineSize ?? entry.contentRect.width;\n}\n\nfunction getInlineSize(value: unknown) {\n if (typeof value !== \"object\" || value === null) {\n return undefined;\n }\n\n const inlineSize = (value as { inlineSize?: unknown }).inlineSize;\n return typeof inlineSize === \"number\" ? inlineSize : undefined;\n}\n","import * as React from \"react\";\nimport type {\n ColumnFiltersState,\n ColumnOrderState,\n ColumnSizingState,\n ColumnVisibilityState as VisibilityState,\n ExpandedState,\n GroupingState,\n PaginationState,\n RowPinningState,\n SortingState,\n} from \"@tanstack/react-table\";\nimport type {\n DataTableColumnPinningState as ColumnPinningState,\n DataTableDensity,\n DataTableLabels,\n DataTableProps,\n} from \"../types\";\nimport {\n createDataTableLoadingRows,\n getColumnId,\n getDataTableLeafColumns,\n getDataTableLoadingRowId,\n getInitialColumnPinning,\n isDataTableLoadingRow,\n} from \"./data-table-utils\";\nimport {\n readDataTableColumnPrefs,\n usePersistDataTableColumnPrefs,\n} from \"./use-data-table-column-prefs\";\nimport { useControllableState } from \"./use-controllable-state\";\nimport { useDataTableContainerWidth } from \"./use-data-table-container-width\";\nimport { isHiddenAtContainerWidth, isRowVisible } from \"../types\";\n\nexport function useDataTableState({\n columnFilters,\n columnOrder,\n columnPinning,\n rowPinning,\n columnSizing,\n columnPrefsKey,\n persistence,\n columnVisibility,\n columns,\n data,\n density,\n enableRowSelection,\n enableToolbarQueryFiltering,\n expanded,\n grouping,\n getSubRows,\n getRowId,\n hiddenRows,\n initialState,\n isLoading,\n loadingRowCount,\n manualFiltering,\n onColumnFiltersChange,\n onColumnOrderChange,\n onColumnPinningChange,\n onRowPinningChange,\n onColumnSizingChange,\n onColumnVisibilityChange,\n onDensityChange,\n onExpandedChange,\n onGroupingChange,\n onPageIndexChange,\n onRowSelectionChange,\n onShowHiddenRowsChange,\n onSortingChange,\n onToolbarQueryValueChange,\n onViewModeChange,\n pageIndex,\n pageSize,\n resolvedLabels,\n rowSelection,\n rowsPerPageOptions,\n selectionActions,\n showHiddenRows,\n sorting,\n toolbarQueryDebounceMs,\n toolbarQueryPlaceholder,\n toolbarQueryValue,\n viewMode,\n containerRef,\n}: {\n columnFilters: DataTableProps[\"columnFilters\"];\n columnOrder: DataTableProps[\"columnOrder\"];\n columnPinning: DataTableProps[\"columnPinning\"];\n rowPinning: DataTableProps[\"rowPinning\"];\n columnSizing?: DataTableProps[\"columnSizing\"];\n columnPrefsKey: DataTableProps[\"columnPrefsKey\"];\n persistence?: DataTableProps[\"persistence\"];\n columnVisibility: DataTableProps[\"columnVisibility\"];\n columns: DataTableProps[\"columns\"];\n data: DataTableProps[\"data\"];\n density: DataTableProps[\"density\"];\n enableRowSelection: boolean;\n enableToolbarQueryFiltering: boolean;\n expanded: DataTableProps[\"expanded\"];\n grouping: DataTableProps[\"grouping\"];\n getSubRows: DataTableProps[\"getSubRows\"];\n getRowId: DataTableProps[\"getRowId\"];\n hiddenRows: DataTableProps[\"hiddenRows\"];\n initialState?: DataTableProps[\"initialState\"];\n isLoading: boolean;\n loadingRowCount: DataTableProps[\"loadingRowCount\"];\n manualFiltering: boolean;\n onColumnFiltersChange: DataTableProps[\"onColumnFiltersChange\"];\n onColumnOrderChange: DataTableProps[\"onColumnOrderChange\"];\n onColumnPinningChange: DataTableProps[\"onColumnPinningChange\"];\n onRowPinningChange: DataTableProps[\"onRowPinningChange\"];\n onColumnSizingChange?: DataTableProps[\"onColumnSizingChange\"];\n onColumnVisibilityChange: DataTableProps[\"onColumnVisibilityChange\"];\n onDensityChange: DataTableProps[\"onDensityChange\"];\n onExpandedChange: DataTableProps[\"onExpandedChange\"];\n onGroupingChange: DataTableProps[\"onGroupingChange\"];\n onPageIndexChange: DataTableProps[\"onPageIndexChange\"];\n onRowSelectionChange: DataTableProps[\"onRowSelectionChange\"];\n onShowHiddenRowsChange: DataTableProps[\"onShowHiddenRowsChange\"];\n onSortingChange: DataTableProps[\"onSortingChange\"];\n onToolbarQueryValueChange: DataTableProps[\"onToolbarQueryValueChange\"];\n onViewModeChange: DataTableProps[\"onViewModeChange\"];\n pageIndex: DataTableProps[\"pageIndex\"];\n pageSize: DataTableProps[\"pageSize\"];\n resolvedLabels: DataTableLabels;\n rowSelection: DataTableProps[\"rowSelection\"];\n rowsPerPageOptions: Array;\n selectionActions: DataTableProps[\"selectionActions\"];\n showHiddenRows: DataTableProps[\"showHiddenRows\"];\n sorting: DataTableProps[\"sorting\"];\n toolbarQueryDebounceMs: DataTableProps[\"toolbarQueryDebounceMs\"];\n toolbarQueryPlaceholder: DataTableProps[\"toolbarQueryPlaceholder\"];\n toolbarQueryValue: DataTableProps[\"toolbarQueryValue\"];\n viewMode: DataTableProps[\"viewMode\"];\n containerRef: React.RefObject;\n}) {\n const persistenceConfig = React.useMemo(\n () => persistence ?? (columnPrefsKey ? { key: columnPrefsKey } : undefined),\n [columnPrefsKey, persistence],\n );\n const persistedColumnPrefs = React.useMemo(\n () => readDataTableColumnPrefs(persistenceConfig),\n [persistenceConfig],\n );\n const [localPagination, setLocalPagination] =\n React.useState({\n pageIndex: initialState?.pagination?.pageIndex ?? 0,\n pageSize:\n initialState?.pagination?.pageSize ??\n rowsPerPageOptions[0] ??\n 20,\n });\n const [currentSorting, setCurrentSorting] =\n useControllableState({\n value: sorting,\n onChange: onSortingChange,\n defaultValue: () => initialState?.sorting ?? [],\n });\n const [currentRowSelection, setCurrentRowSelection] = useControllableState<\n Record\n >({\n value: rowSelection,\n onChange: onRowSelectionChange,\n defaultValue: () => initialState?.rowSelection ?? {},\n });\n const [currentColumnVisibility, setCurrentColumnVisibility] =\n useControllableState({\n value: columnVisibility,\n onChange: onColumnVisibilityChange,\n defaultValue: () =>\n initialState?.columnVisibility ??\n persistedColumnPrefs.visibility ??\n {},\n });\n const [currentColumnFilters, setCurrentColumnFilters] =\n useControllableState({\n value: columnFilters,\n onChange: onColumnFiltersChange,\n defaultValue: () => initialState?.columnFilters ?? [],\n });\n const [currentExpanded, setCurrentExpanded] =\n useControllableState({\n value: expanded,\n onChange: onExpandedChange,\n defaultValue: () => initialState?.expanded ?? {},\n });\n const [currentColumnOrder, setCurrentColumnOrder] =\n useControllableState({\n value: columnOrder,\n onChange: onColumnOrderChange,\n defaultValue: () =>\n initialState?.columnOrder ?? persistedColumnPrefs.order ?? [],\n });\n const [currentColumnPinning, setCurrentColumnPinning] =\n useControllableState({\n value: columnPinning,\n onChange: onColumnPinningChange,\n defaultValue: () =>\n initialState?.columnPinning ??\n persistedColumnPrefs.pinning ??\n getInitialColumnPinning(columns),\n });\n const [currentRowPinning, setCurrentRowPinning] =\n useControllableState({\n value: rowPinning,\n onChange: onRowPinningChange,\n defaultValue: () =>\n initialState?.rowPinning ?? persistedColumnPrefs.rowPinning ?? {\n top: [],\n bottom: [],\n },\n });\n const [currentColumnSizing, setCurrentColumnSizing] =\n useControllableState({\n value: columnSizing,\n onChange: onColumnSizingChange,\n defaultValue: () =>\n initialState?.columnSizing ?? persistedColumnPrefs.sizing ?? {},\n });\n const [currentViewMode, setCurrentViewMode] = useControllableState<\n \"table\" | \"card\"\n >({\n value: viewMode,\n onChange: onViewModeChange,\n defaultValue: () => initialState?.viewMode ?? \"table\",\n });\n const [currentGrouping, setCurrentGrouping] = useControllableState({\n value: grouping,\n onChange: onGroupingChange,\n defaultValue: () => initialState?.grouping ?? [],\n });\n const [currentShowHiddenRows, setCurrentShowHiddenRows] =\n useControllableState({\n value: showHiddenRows,\n onChange: onShowHiddenRowsChange,\n defaultValue: () => initialState?.showHiddenRows ?? false,\n });\n const [currentDensity, setCurrentDensity] =\n useControllableState({\n value: density,\n onChange: onDensityChange,\n defaultValue: () =>\n initialState?.density ??\n persistedColumnPrefs.density ??\n \"comfortable\",\n });\n const resolvedToolbarQueryValue =\n toolbarQueryValue ?? initialState?.globalFilter ?? \"\";\n const resolvedToolbarQueryPlaceholder =\n toolbarQueryPlaceholder ?? resolvedLabels.searchPlaceholder;\n const resolvedToolbarQueryDebounceMs = toolbarQueryDebounceMs ?? 250;\n const [localSearchValue, setLocalSearchValue] = React.useState(\n resolvedToolbarQueryValue,\n );\n const containerWidth = useDataTableContainerWidth(containerRef);\n const hasOnSearchValueChange = Boolean(onToolbarQueryValueChange);\n const lastReportedSearchValueRef = React.useRef(resolvedToolbarQueryValue);\n const onToolbarQueryValueChangeEvent = React.useEffectEvent(\n (value: string) => {\n lastReportedSearchValueRef.current = value;\n onToolbarQueryValueChange?.(value);\n },\n );\n\n React.useEffect(() => {\n lastReportedSearchValueRef.current = resolvedToolbarQueryValue;\n // A controlled query change must replace any pending debounced draft.\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setLocalSearchValue(resolvedToolbarQueryValue);\n }, [resolvedToolbarQueryValue]);\n\n React.useEffect(() => {\n if (!hasOnSearchValueChange) {\n return;\n }\n\n if (localSearchValue === resolvedToolbarQueryValue) {\n return;\n }\n\n if (localSearchValue === lastReportedSearchValueRef.current) {\n return;\n }\n\n const timeout = window.setTimeout(() => {\n onToolbarQueryValueChangeEvent(localSearchValue);\n }, resolvedToolbarQueryDebounceMs);\n\n return () => {\n window.clearTimeout(timeout);\n };\n }, [\n hasOnSearchValueChange,\n localSearchValue,\n resolvedToolbarQueryDebounceMs,\n resolvedToolbarQueryValue,\n ]);\n\n const currentPagination = React.useMemo(\n () => ({\n pageIndex: pageIndex ?? localPagination.pageIndex,\n pageSize: pageSize ?? localPagination.pageSize,\n }),\n [\n localPagination.pageIndex,\n localPagination.pageSize,\n pageIndex,\n pageSize,\n ],\n );\n const resolvedLoadingRowCount = Math.max(\n 1,\n loadingRowCount ?? Math.min(5, currentPagination.pageSize),\n );\n // Keep input/callback state eager. Only the client row-model input is\n // deferred, so server/manual callbacks never wait behind a large filter.\n const deferredSearchValue = React.useDeferredValue(localSearchValue);\n const globalFilterValue = enableToolbarQueryFiltering\n ? manualFiltering\n ? localSearchValue\n : deferredSearchValue\n : \"\";\n const handleViewModeChange = React.useCallback(\n (nextViewMode: \"table\" | \"card\") => {\n setCurrentViewMode(nextViewMode);\n },\n [setCurrentViewMode],\n );\n const handleShowHiddenRowsChange = React.useCallback(\n (nextShowHiddenRows: boolean) => {\n setCurrentShowHiddenRows(nextShowHiddenRows);\n },\n [setCurrentShowHiddenRows],\n );\n const handleDensityChange = React.useCallback(\n (nextDensity: DataTableDensity) => {\n setCurrentDensity(nextDensity);\n },\n [setCurrentDensity],\n );\n const resetPageIndexForFilterChange = React.useCallback(() => {\n onPageIndexChange?.(0);\n if (pageIndex === undefined) {\n setLocalPagination((current) =>\n current.pageIndex === 0 ? current : { ...current, pageIndex: 0 },\n );\n }\n }, [onPageIndexChange, pageIndex]);\n const lastFilterStateRef = React.useRef({\n columnFilters: currentColumnFilters,\n globalFilterValue,\n });\n\n React.useEffect(() => {\n const previous = lastFilterStateRef.current;\n const filtersChanged = previous.columnFilters !== currentColumnFilters;\n const globalFilterChanged =\n previous.globalFilterValue !== globalFilterValue;\n lastFilterStateRef.current = {\n columnFilters: currentColumnFilters,\n globalFilterValue,\n };\n\n if (manualFiltering) {\n return;\n }\n\n if (!filtersChanged && !globalFilterChanged) {\n return;\n }\n\n resetPageIndexForFilterChange();\n }, [\n currentColumnFilters,\n globalFilterValue,\n manualFiltering,\n resetPageIndexForFilterChange,\n ]);\n\n usePersistDataTableColumnPrefs({\n persistence: persistenceConfig,\n prefs: {\n visibility: columnVisibility ? undefined : currentColumnVisibility,\n sizing:\n columnSizing === undefined ? currentColumnSizing : undefined,\n order: columnOrder ? undefined : currentColumnOrder,\n pinning: columnPinning ? undefined : currentColumnPinning,\n rowPinning: rowPinning === undefined ? currentRowPinning : undefined,\n density: density ? undefined : currentDensity,\n },\n });\n const responsiveColumnVisibility = React.useMemo(() => {\n return getDataTableLeafColumns(columns).reduce(\n (visibility, { column, index }) => {\n const columnId = getColumnId(column, index);\n if (isHiddenAtContainerWidth(column.meta?.hideOn, containerWidth)) {\n visibility[columnId] = false;\n }\n return visibility;\n },\n {},\n );\n }, [columns, containerWidth]);\n const effectiveColumnVisibility = React.useMemo(() => {\n return {\n ...currentColumnVisibility,\n ...responsiveColumnVisibility,\n };\n }, [currentColumnVisibility, responsiveColumnVisibility]);\n const visibleData = React.useMemo(\n () =>\n data.filter((row) =>\n isRowVisible(row, hiddenRows, currentShowHiddenRows),\n ),\n [currentShowHiddenRows, data, hiddenRows],\n );\n const shouldRenderInitialLoading = isLoading && visibleData.length === 0;\n const loadingRows = React.useMemo(\n () => createDataTableLoadingRows(resolvedLoadingRowCount),\n [resolvedLoadingRowCount],\n );\n const tableData = shouldRenderInitialLoading\n ? loadingRows\n : visibleData;\n const tableGetRowId = React.useCallback(\n (row: TData, index: number) => {\n if (isDataTableLoadingRow(row)) {\n return getDataTableLoadingRowId(index);\n }\n\n return getRowId(row, index);\n },\n [getRowId],\n );\n const shouldResolveSelectedRows =\n enableRowSelection ||\n (selectionActions?.length ?? 0) > 0 ||\n Object.values(currentRowSelection).some(Boolean);\n const rowById = React.useMemo(() => {\n if (!shouldResolveSelectedRows) {\n return new Map();\n }\n\n const rows = new Map();\n const visitRows = (currentRows: Array) => {\n currentRows.forEach((row, index) => {\n rows.set(getRowId(row, index), row);\n const subRows = getSubRows?.(row, index);\n if (subRows?.length) {\n visitRows(subRows);\n }\n });\n };\n visitRows(visibleData);\n return rows;\n }, [getRowId, getSubRows, shouldResolveSelectedRows, visibleData]);\n const selectedRows = React.useMemo(() => {\n if (!shouldResolveSelectedRows) {\n return [];\n }\n\n return Object.entries(currentRowSelection)\n .filter(([, selected]) => selected)\n .map(([rowId]) => rowById.get(rowId))\n .filter((row): row is TData => Boolean(row));\n }, [currentRowSelection, rowById, shouldResolveSelectedRows]);\n const selectedRowIds = React.useMemo(\n () =>\n Object.entries(currentRowSelection).flatMap(([rowId, selected]) =>\n selected ? [rowId] : [],\n ),\n [currentRowSelection],\n );\n\n return {\n containerWidth,\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentColumnVisibility,\n currentDensity,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentShowHiddenRows,\n currentSorting,\n currentViewMode,\n effectiveColumnVisibility,\n globalFilterValue,\n handleDensityChange,\n handleShowHiddenRowsChange,\n handleViewModeChange,\n localSearchValue,\n resolvedLoadingRowCount,\n resolvedToolbarQueryPlaceholder,\n selectedRowIds,\n selectedRows,\n setCurrentColumnFilters,\n setCurrentColumnOrder,\n setCurrentColumnPinning,\n setCurrentRowPinning,\n setCurrentColumnVisibility,\n setCurrentExpanded,\n setCurrentGrouping,\n setCurrentRowSelection,\n setCurrentSorting,\n setLocalColumnSizing: setCurrentColumnSizing,\n setLocalPagination,\n setLocalSearchValue,\n shouldRenderInitialLoading,\n tableData,\n tableGetRowId,\n /**\n * @deprecated Read the filtered TanStack row model from the table\n * instance. This alias remains for advanced 4.x callers.\n */\n toolbarFilteredData: visibleData,\n visibleData,\n };\n}\n","import * as React from \"react\";\nimport type { ColumnSizingState } from \"@tanstack/react-table\";\nimport type { DataTableColumnDef } from \"../types\";\nimport type { DataTableUiClassNames } from \"../ui-kit\";\nimport {\n UTILITY_COLUMN_SIZE,\n getColumnId,\n getConfiguredColumnMinWidth,\n getDataTableLeafColumns,\n getFixedSide,\n getPinnedColumnClassName,\n hasExplicitDataTableColumnSize,\n hasFixedDataTableColumnSize,\n isUtilityColumnId,\n} from \"./data-table-utils\";\nimport type { DataTableTanStackColumn as Column } from \"./tanstack-v9\";\n\ntype ColumnLayoutMode = \"fill\" | \"fit\";\n\nexport type DataTableColumnLayout = {\n cellStyle: React.CSSProperties | undefined;\n colStyle: React.CSSProperties | undefined;\n fixedSide: \"left\" | \"right\" | false | undefined;\n headerStyle: React.CSSProperties | undefined;\n isActionsColumn: boolean;\n isExpansionColumn: boolean;\n isSelectionColumn: boolean;\n isSpacerColumn: boolean;\n isUtilityColumn: boolean;\n pinnedClassName: string | undefined;\n utilityClassName: string | undefined;\n};\n\nconst EMPTY_COLUMN_LAYOUT: DataTableColumnLayout = {\n cellStyle: undefined,\n colStyle: undefined,\n fixedSide: undefined,\n headerStyle: undefined,\n isActionsColumn: false,\n isExpansionColumn: false,\n isSelectionColumn: false,\n isSpacerColumn: false,\n isUtilityColumn: false,\n pinnedClassName: undefined,\n utilityClassName: undefined,\n};\n\nexport function useColumnLayout({\n columns,\n columnSizing,\n editableRows,\n enableRowSelection,\n hasRowActions,\n hasRowExpansion,\n layoutMode,\n uiClassNames,\n visibleLeafColumns,\n}: {\n columns: Array>;\n columnSizing: ColumnSizingState;\n editableRows: boolean;\n enableRowSelection: boolean;\n hasRowActions: boolean;\n hasRowExpansion: boolean;\n layoutMode: ColumnLayoutMode;\n uiClassNames: DataTableUiClassNames;\n visibleLeafColumns: Array>;\n}) {\n const explicitlySizedColumnIds = React.useMemo(() => {\n const ids = new Set();\n\n for (const { column, index } of getDataTableLeafColumns(columns)) {\n if (hasExplicitDataTableColumnSize(column)) {\n ids.add(getColumnId(column, index));\n }\n }\n\n if (enableRowSelection) {\n ids.add(\"__select__\");\n }\n\n if (hasRowExpansion) {\n ids.add(\"__expand__\");\n }\n\n if (hasRowActions || editableRows) {\n ids.add(\"__actions__\");\n }\n\n return ids;\n }, [\n columns,\n editableRows,\n enableRowSelection,\n hasRowActions,\n hasRowExpansion,\n ]);\n\n const minimumColumnWidths = React.useMemo(() => {\n const widths = new Map();\n\n for (const { column, index } of getDataTableLeafColumns(columns)) {\n const configuredMinWidth = getConfiguredColumnMinWidth(column);\n\n if (configuredMinWidth !== undefined) {\n widths.set(getColumnId(column, index), configuredMinWidth);\n }\n }\n\n return widths;\n }, [columns]);\n\n const configuredFixedWidthColumnIds = React.useMemo(() => {\n const ids = new Set();\n\n for (const { column, index } of getDataTableLeafColumns(columns)) {\n if (hasFixedDataTableColumnSize(column)) {\n ids.add(getColumnId(column, index));\n }\n }\n\n return ids;\n }, [columns]);\n\n const pinnedColumns = React.useMemo(() => {\n const left = new Map();\n const right = new Map();\n\n let leftOffset = 0;\n for (const column of visibleLeafColumns) {\n if (getFixedSide(column) === \"left\") {\n left.set(column.id, leftOffset);\n leftOffset += getColumnLayoutSize(column);\n }\n }\n\n let rightOffset = 0;\n for (const column of [...visibleLeafColumns].reverse()) {\n if (getFixedSide(column) === \"right\") {\n right.set(column.id, rightOffset);\n rightOffset += getColumnLayoutSize(column);\n }\n }\n\n return { left, right };\n }, [visibleLeafColumns]);\n\n const fillColumnId = React.useMemo(() => {\n if (layoutMode !== \"fill\") {\n return undefined;\n }\n\n return [...visibleLeafColumns]\n .reverse()\n .find(\n (column) =>\n column.id !== \"__spacer__\" &&\n !isUtilityColumnId(column.id) &&\n !configuredFixedWidthColumnIds.has(column.id) &&\n !Object.prototype.hasOwnProperty.call(columnSizing, column.id),\n )?.id;\n }, [\n columnSizing,\n configuredFixedWidthColumnIds,\n layoutMode,\n visibleLeafColumns,\n ]);\n\n const fixedWidthColumnIds = React.useMemo(() => {\n const ids = new Set([\n ...explicitlySizedColumnIds,\n ...configuredFixedWidthColumnIds,\n ...Object.keys(columnSizing),\n ]);\n\n if (fillColumnId) {\n ids.delete(fillColumnId);\n }\n\n return ids;\n }, [\n columnSizing,\n configuredFixedWidthColumnIds,\n explicitlySizedColumnIds,\n fillColumnId,\n ]);\n\n const columnLayouts = React.useMemo(() => {\n const layouts = new Map();\n\n for (const column of visibleLeafColumns) {\n const isSelectionColumn = column.id === \"__select__\";\n const isExpansionColumn = column.id === \"__expand__\";\n const isActionsColumn = column.id === \"__actions__\";\n const isUtilityColumn =\n isSelectionColumn || isExpansionColumn || isActionsColumn;\n const isSpacerColumn = column.id === \"__spacer__\";\n const configuredMinWidth = minimumColumnWidths.get(column.id);\n const isFlexibleFillColumn = column.id === fillColumnId;\n const columnMinWidth =\n configuredMinWidth ??\n (isFlexibleFillColumn && explicitlySizedColumnIds.has(column.id)\n ? column.getSize()\n : undefined);\n const shouldFixWidth =\n !isSpacerColumn &&\n (layoutMode === \"fit\" ||\n isUtilityColumn ||\n fixedWidthColumnIds.has(column.id));\n const baseStyle =\n shouldFixWidth || columnMinWidth !== undefined\n ? {\n width: shouldFixWidth\n ? isUtilityColumn\n ? UTILITY_COLUMN_SIZE\n : column.getSize()\n : undefined,\n minWidth: isUtilityColumn\n ? UTILITY_COLUMN_SIZE\n : shouldFixWidth\n ? column.getSize()\n : columnMinWidth,\n maxWidth: shouldFixWidth\n ? isUtilityColumn\n ? UTILITY_COLUMN_SIZE\n : column.getSize()\n : undefined,\n }\n : undefined;\n const fixedSide = getFixedSide(column);\n const pinnedStyle = fixedSide\n ? {\n left:\n fixedSide === \"left\" ? pinnedColumns.left.get(column.id) : undefined,\n right:\n fixedSide === \"right\"\n ? pinnedColumns.right.get(column.id)\n : undefined,\n }\n : undefined;\n const cellStyle =\n baseStyle || pinnedStyle ? { ...baseStyle, ...pinnedStyle } : undefined;\n\n layouts.set(column.id, {\n cellStyle,\n colStyle: baseStyle,\n fixedSide,\n headerStyle: cellStyle,\n isActionsColumn,\n isExpansionColumn,\n isSelectionColumn,\n isSpacerColumn,\n isUtilityColumn,\n pinnedClassName: fixedSide\n ? getPinnedColumnClassName(fixedSide, uiClassNames, {\n isUtilityColumn,\n })\n : undefined,\n utilityClassName: isUtilityColumn\n ? \"w-[50px] max-w-[50px] min-w-[50px] px-0\"\n : undefined,\n });\n }\n\n return layouts;\n }, [\n explicitlySizedColumnIds,\n fillColumnId,\n fixedWidthColumnIds,\n layoutMode,\n minimumColumnWidths,\n pinnedColumns,\n uiClassNames,\n visibleLeafColumns,\n ]);\n\n const fillMinWidth = React.useMemo(() => {\n return visibleLeafColumns.reduce((total, column) => {\n const layout = columnLayouts.get(column.id);\n const configuredMinWidth = minimumColumnWidths.get(column.id);\n const isFlexibleFillColumn = column.id === fillColumnId;\n\n if (layout?.isUtilityColumn) {\n return total + UTILITY_COLUMN_SIZE;\n }\n\n if (fixedWidthColumnIds.has(column.id)) {\n return total + column.getSize();\n }\n\n return (\n total +\n (configuredMinWidth ??\n (isFlexibleFillColumn && explicitlySizedColumnIds.has(column.id)\n ? column.getSize()\n : 0))\n );\n }, 0);\n }, [\n columnLayouts,\n explicitlySizedColumnIds,\n fillColumnId,\n fixedWidthColumnIds,\n minimumColumnWidths,\n visibleLeafColumns,\n ]);\n\n const getColumnLayout = React.useCallback(\n (columnId: string) => columnLayouts.get(columnId) ?? EMPTY_COLUMN_LAYOUT,\n [columnLayouts],\n );\n\n return {\n columnLayouts,\n explicitlySizedColumnIds,\n fillMinWidth,\n getColumnLayout,\n };\n}\n\nfunction getColumnLayoutSize(column: Column) {\n return isUtilityColumnId(column.id) ? UTILITY_COLUMN_SIZE : column.getSize();\n}\n","import * as React from \"react\";\nimport type { ExpandedState, OnChangeFn } from \"@tanstack/react-table\";\nimport { IconChevronDown } from \"../icons\";\nimport type {\n DataTableCardRendererProps,\n DataTableCardSizing,\n DataTableEditableRowsConfig,\n DataTableDetailPanel,\n DataTableLabels,\n DataTableProps,\n DataTableRowAction,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport { DATA_TABLE_DEFAULT_LABELS } from \"./data-table-labels\";\nimport {\n isDataTableInteractiveTarget,\n toggleDataTableExpandedState,\n} from \"./data-table-utils\";\nimport type { DataTableTanStackRow as Row } from \"./tanstack-v9\";\n\ntype DataTableCardViewProps = {\n rows: Array>;\n cardRenderer: (props: DataTableCardRendererProps) => React.ReactNode;\n cardSizing?: DataTableCardSizing;\n cardGridClassName?: string;\n cardClassName?: string;\n rowActions: Array>;\n editableRows?: DataTableEditableRowsConfig;\n detailPanel?: DataTableDetailPanel;\n detailExpanded: ExpandedState;\n onDetailExpandedChange: OnChangeFn;\n hasCardTitle: boolean;\n rowSelection: Record;\n onRowSelectionChange: (rowSelection: Record) => void;\n enableRowSelection: boolean;\n editingRowId: string | null;\n onEditingRowIdChange: (rowId: string | null) => void;\n getRowClassName?: DataTableProps[\"getRowClassName\"];\n onRowClick?: (context: { row: TData; rowId: string }) => void | Promise;\n getRowDraggable?: (row: TData) => boolean;\n onRowDragStart?: (context: {\n row: TData;\n rowId: string;\n event: React.DragEvent;\n }) => void;\n onRowDragEnd?: (context: {\n row: TData;\n rowId: string;\n event: React.DragEvent;\n }) => void;\n isLoading?: boolean;\n loadingRowCount?: number;\n labels: DataTableLabels;\n};\n\ntype DataTableRowActionsComponent = (props: {\n row: TData;\n rowActions: Array>;\n editableRows?: DataTableEditableRowsConfig;\n isEditing: boolean;\n onStartEditing: () => void;\n onCancelEditing: () => void;\n labels: DataTableLabels;\n}) => React.ReactElement | null;\n\nexport function createDataTableCardView(\n ui: DataTableUiKit,\n DataTableRowActions: DataTableRowActionsComponent,\n) {\n const uiClassNames = ui.classNames ?? {};\n const { Button, Card, CardContent, CardHeader, Checkbox, Skeleton } = ui;\n\n return function DataTableCardView({\n rows,\n cardRenderer,\n cardSizing = \"fixed\",\n cardGridClassName,\n cardClassName,\n rowActions,\n editableRows,\n detailPanel,\n detailExpanded,\n onDetailExpandedChange,\n hasCardTitle,\n rowSelection,\n onRowSelectionChange,\n enableRowSelection,\n editingRowId,\n onEditingRowIdChange,\n getRowClassName,\n onRowClick,\n getRowDraggable,\n onRowDragStart,\n onRowDragEnd,\n isLoading = false,\n loadingRowCount = 5,\n labels,\n }: DataTableCardViewProps) {\n const resolvedCardSizing = cardSizing ?? \"fixed\";\n const resolvedCardGridClassName =\n cardGridClassName\n ? cn(\"grid\", cardGridClassName)\n : getCardGridClassName(resolvedCardSizing);\n const cardGridClasses = cn(\n \"min-h-0 w-full gap-4 p-1\",\n uiClassNames.cardGrid,\n resolvedCardGridClassName,\n );\n const cardItemClasses = (stateClassName?: string) =>\n cn(\n \"relative min-w-0 max-w-full gap-0 overflow-hidden bg-transparent p-0\",\n getCardItemClassName(resolvedCardSizing),\n uiClassNames.cardItem,\n cardClassName,\n stateClassName,\n );\n\n if (isLoading) {\n return (\n \n {Array.from({ length: Math.max(1, loadingRowCount) }, (_, index) => (\n \n {hasCardTitle ? (\n \n \n \n \n ) : null}\n \n \n \n \n \n \n \n ))}\n \n );\n }\n\n return (\n \n {rows.map((row) => {\n const rowId = row.id;\n const originalRow = row.original;\n const isSelected = Boolean(rowSelection[rowId]);\n const isEditing = editingRowId === rowId;\n const hasCardActions = rowActions.length > 0 || Boolean(editableRows);\n const canExpandDetail = Boolean(\n detailPanel && (detailPanel.getRowCanExpand?.(originalRow) ?? true),\n );\n const showCardGradient =\n enableRowSelection || hasCardActions || hasCardTitle;\n const showCardOverlayControls =\n enableRowSelection ||\n hasCardActions ||\n row.getCanExpand() ||\n canExpandDetail;\n const handleCardActivate = () => {\n if (!onRowClick) {\n return;\n }\n\n void onRowClick({ row: originalRow, rowId });\n };\n\n return (\n ) => {\n onRowDragStart?.({ row: originalRow, rowId, event });\n }}\n onDragEnd={(event: React.DragEvent) => {\n onRowDragEnd?.({ row: originalRow, rowId, event });\n }}\n >\n {showCardGradient ? (\n \n ) : null}\n *]:min-w-0\",\n getCardRendererClassName(resolvedCardSizing),\n onRowClick && \"cursor-pointer focus-visible:outline-none\",\n )}\n onClick={(event: React.MouseEvent) => {\n if (\n isDataTableInteractiveTarget(\n event.target,\n event.currentTarget,\n )\n ) {\n return;\n }\n\n handleCardActivate();\n }}\n onKeyDown={(event: React.KeyboardEvent) => {\n if (\n isDataTableInteractiveTarget(\n event.target,\n event.currentTarget,\n )\n ) {\n return;\n }\n\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n handleCardActivate();\n }\n }}\n >\n {cardRenderer({\n row: originalRow,\n rowId,\n depth: row.depth,\n canExpandSubRows: row.getCanExpand(),\n isSubRowsExpanded: row.getIsExpanded(),\n toggleSubRowsExpanded: () => row.toggleExpanded(),\n isSelected,\n onSelectedChange: (nextValue) => {\n onRowSelectionChange(\n updateRowSelection(\n rowSelection,\n rowId,\n nextValue,\n row.getCanSelect(),\n row.getCanMultiSelect(),\n ),\n );\n },\n actions: rowActions,\n isEditing,\n startEditing: () => {\n onEditingRowIdChange(rowId);\n },\n cancelEditing: () => {\n onEditingRowIdChange(null);\n },\n })}\n \n {isEditing ||\n !detailPanel ||\n !(detailExpanded === true || Boolean(detailExpanded[row.id]))\n ? null\n : (\n \n {detailPanel.render({\n row: originalRow,\n rowId,\n tableRow: row,\n })}\n \n )}\n {showCardOverlayControls ? (\n \n {enableRowSelection ? (\n \n {\n onRowSelectionChange(\n updateRowSelection(\n rowSelection,\n rowId,\n checked === true,\n row.getCanSelect(),\n row.getCanMultiSelect(),\n ),\n );\n }}\n />\n \n ) : null}\n {row.getCanExpand() ? (\n
\n row.toggleExpanded()}\n >\n \n \n
\n ) : null}\n {canExpandDetail ? (\n \n {\n onDetailExpandedChange((current) =>\n toggleDataTableExpandedState(\n current,\n row.id,\n rows.map((item) => item.id),\n ),\n );\n }}\n >\n \n \n \n ) : null}\n
\n {hasCardActions ? (\n \n {\n onEditingRowIdChange(rowId);\n }}\n onCancelEditing={() => {\n onEditingRowIdChange(null);\n }}\n labels={labels}\n />\n
\n ) : null}\n
\n ) : null}\n \n );\n })}\n \n );\n };\n}\n\nfunction getCardGridClassName(cardSizing: DataTableCardSizing) {\n switch (cardSizing) {\n case \"content\":\n return \"flex flex-wrap items-start justify-start\";\n case \"fluid\":\n return \"grid grid-cols-[repeat(auto-fit,minmax(min(18rem,100%),1fr))]\";\n case \"fixed\":\n default:\n return \"grid grid-cols-[repeat(auto-fill,minmax(min(18rem,100%),18rem))] justify-start\";\n }\n}\n\nfunction getCardItemClassName(cardSizing: DataTableCardSizing) {\n switch (cardSizing) {\n case \"content\":\n return \"w-fit\";\n case \"fluid\":\n return \"w-full\";\n case \"fixed\":\n default:\n return undefined;\n }\n}\n\nfunction getCardRendererClassName(cardSizing: DataTableCardSizing) {\n switch (cardSizing) {\n case \"content\":\n return \"w-fit\";\n case \"fluid\":\n return \"w-full flex-1 [&>*]:w-full\";\n case \"fixed\":\n default:\n return \"flex-1\";\n }\n}\n\nfunction updateRowSelection(\n rowSelection: Record,\n rowId: string,\n isSelected: boolean,\n canSelect: boolean,\n canMultiSelect: boolean,\n) {\n if (!canSelect) {\n return rowSelection;\n }\n\n if (isSelected) {\n return canMultiSelect\n ? {\n ...rowSelection,\n [rowId]: true,\n }\n : { [rowId]: true };\n }\n\n if (!rowSelection[rowId]) {\n return rowSelection;\n }\n\n const nextSelection = { ...rowSelection };\n delete nextSelection[rowId];\n return nextSelection;\n}\n","import { IconInbox } from \"../icons\";\nimport type { DataTableUiKit } from \"../ui-kit\";\n\nexport function createDataTableEmptyState(ui: DataTableUiKit) {\n const uiClassNames = ui.classNames ?? {};\n const {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n } = ui;\n\n return function DataTableEmptyState({\n title = \"No rows found\",\n description = \"Adjust your filters or create a new record to populate this table.\",\n }: {\n title?: string;\n description?: string;\n }) {\n return (\n \n \n \n \n \n {title}\n {description}\n \n \n \n );\n };\n}\n","import * as React from \"react\";\nimport { IconDatabase } from \"../icons\";\nimport type { DataTableLabels } from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { DATA_TABLE_DEFAULT_LABELS } from \"./data-table-labels\";\n\ntype DataTablePaginationProps = {\n countOnly?: boolean;\n pageIndex: number;\n pageCount: number;\n pageCountKnown: boolean;\n pageSize: number;\n totalRowCount?: number;\n rowsPerPageOptions: Array;\n onPageIndexChange: (pageIndex: number) => void;\n onPageSizeChange: (pageSize: number) => void;\n labels: DataTableLabels;\n};\n\nexport function createDataTablePagination(ui: DataTableUiKit) {\n const uiClassNames = ui.classNames ?? {};\n const {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationFirst,\n PaginationItem,\n PaginationLast,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n } = ui;\n\n function DataTablePagination({\n countOnly = false,\n pageIndex,\n pageCount,\n pageCountKnown,\n pageSize,\n totalRowCount,\n rowsPerPageOptions,\n onPageIndexChange,\n onPageSizeChange,\n labels,\n }: DataTablePaginationProps) {\n const pages = pageCountKnown\n ? getVisiblePages(pageIndex, Math.max(1, pageCount))\n : [];\n const canGoPrevious = pageIndex > 0;\n const canGoNext = pageIndex + 1 < pageCount;\n const lastPageIndex = Math.max(0, pageCount - 1);\n const totalRecordCount =\n totalRowCount !== undefined ? (\n
\n \n \n {totalRowCount}\n \n {labels.totalRecords(totalRowCount)}\n \n
\n \n ) : null;\n\n if (countOnly) {\n return
{totalRecordCount}
;\n }\n\n return (\n
\n \n \n {labels.recordsPerPage}\n \n {\n onPageSizeChange(Number(value));\n }}\n >\n \n \n \n \n \n {rowsPerPageOptions.map((option) => (\n \n {option}\n \n ))}\n \n \n \n
\n\n {totalRecordCount}\n\n
\n \n {pageCountKnown\n ? labels.pageStatus(pageIndex, Math.max(1, pageCount))\n : (\n labels.pageStatusUnknown ??\n DATA_TABLE_DEFAULT_LABELS.pageStatusUnknown\n )(pageIndex)}\n
\n \n \n \n \n \n ) => {\n event.preventDefault();\n if (canGoPrevious) {\n onPageIndexChange(0);\n }\n }}\n text={labels.firstPage}\n />\n \n {labels.firstPage}\n \n \n \n \n \n ) => {\n event.preventDefault();\n if (canGoPrevious) {\n onPageIndexChange(pageIndex - 1);\n }\n }}\n text={labels.previousPage}\n />\n \n {labels.previousPage}\n \n \n {pages.map((item, index) => (\n \n {item === \"ellipsis\" ? (\n \n ) : (\n ) => {\n event.preventDefault();\n onPageIndexChange(item - 1);\n }}\n >\n {item}\n \n )}\n \n ))}\n \n \n \n ) => {\n event.preventDefault();\n if (canGoNext) {\n onPageIndexChange(pageIndex + 1);\n }\n }}\n text={labels.nextPage}\n />\n \n {labels.nextPage}\n \n \n {pageCountKnown ? (\n \n \n \n ,\n ) => {\n event.preventDefault();\n if (canGoNext) {\n onPageIndexChange(lastPageIndex);\n }\n }}\n />\n \n {labels.lastPage}\n \n \n ) : null}\n \n \n \n \n );\n }\n\n function DataTableFooter(props: DataTablePaginationProps) {\n return (\n \n \n \n );\n }\n\n function DataTableCountOnlyFooter(props: DataTablePaginationProps) {\n return ;\n }\n\n return {\n DataTableCountOnlyFooter,\n DataTableFooter,\n DataTablePagination,\n };\n}\n\nfunction getVisiblePages(currentPageIndex: number, pageCount: number) {\n const currentPage = currentPageIndex + 1;\n const pages = new Set([1, pageCount]);\n\n for (\n let page = Math.max(1, currentPage - 2);\n page <= Math.min(pageCount, currentPage + 2);\n page += 1\n ) {\n pages.add(page);\n }\n\n const orderedPages = Array.from(pages).sort((left, right) => left - right);\n const items: Array = [];\n\n for (let index = 0; index < orderedPages.length; index += 1) {\n const page = orderedPages[index];\n const previous = orderedPages[index - 1];\n\n if (previous && page - previous > 1) {\n items.push(\"ellipsis\");\n }\n\n items.push(page);\n }\n\n return items;\n}\n","import * as React from \"react\";\nimport { IconDots, IconEdit, IconX } from \"../icons\";\nimport type {\n DataTableEditableRowsConfig,\n DataTableLabels,\n DataTableRowAction,\n} from \"../types\";\nimport type { RowPinningPosition } from \"@tanstack/react-table\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { canEditRow, canUseRowAction, resolveRowActionLabel } from \"../types\";\n\ntype DataTableRowActionsProps = {\n row: TData;\n rowActions: Array>;\n editableRows?: DataTableEditableRowsConfig;\n isEditing: boolean;\n onStartEditing: () => void;\n onCancelEditing: () => void;\n labels: DataTableLabels;\n rowPinning?: {\n canPin: boolean;\n position: RowPinningPosition;\n pin: (position: RowPinningPosition) => void;\n };\n};\n\nexport function createDataTableRowActions(ui: DataTableUiKit) {\n const {\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n } = ui;\n\n return function DataTableRowActions({\n row,\n rowActions,\n editableRows,\n isEditing,\n onStartEditing,\n onCancelEditing,\n labels,\n rowPinning,\n }: DataTableRowActionsProps) {\n const actions = rowActions.filter((action) => canUseRowAction(action, row));\n const stopRowClickPropagation = React.useCallback(\n (event: React.SyntheticEvent) => {\n event.stopPropagation();\n },\n [],\n );\n\n if (isEditing) {\n return (\n \n \n \n \n {labels.cancelEdit}\n \n \n {labels.cancelEdit}\n \n );\n }\n\n const allowEdit = canEditRow(editableRows, row);\n const canPin = rowPinning?.canPin ?? false;\n if (!actions.length && !allowEdit && !canPin) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n {labels.rowActions}\n \n \n \n {labels.rowActions}\n \n \n {allowEdit ? (\n \n ) => {\n event.stopPropagation();\n onStartEditing();\n }}\n >\n \n {labels.editRow}\n \n \n ) : null}\n {allowEdit && (actions.length || canPin) ? : null}\n {canPin ? (\n \n {rowPinning?.position ? (\n ) => {\n event.stopPropagation();\n rowPinning.pin(false);\n }}\n >\n {labels.unpinRow}\n \n ) : (\n <>\n ) => {\n event.stopPropagation();\n rowPinning?.pin(\"top\");\n }}\n >\n {labels.pinRowToTop}\n \n ) => {\n event.stopPropagation();\n rowPinning?.pin(\"bottom\");\n }}\n >\n {labels.pinRowToBottom}\n \n \n )}\n \n ) : null}\n {canPin && actions.length ? : null}\n {actions.length ? (\n \n {actions.map((action) => {\n const Icon = action.icon;\n return (\n ) => {\n event.stopPropagation();\n void action.onClick(row);\n }}\n >\n {Icon ? : null}\n {resolveRowActionLabel(action.label, row)}\n \n );\n })}\n \n ) : null}\n \n \n );\n };\n}\n","import * as React from \"react\";\nimport type { DataTableTanStackTable as TanStackTable } from \"./tanstack-v9\";\nimport {\n IconAdjustmentsHorizontal,\n IconLayoutGrid,\n IconList,\n IconSearch,\n IconX,\n} from \"../icons\";\nimport type {\n DataTableColumnFilterType,\n DataTableColumnFixed,\n DataTableColumnVisibilityOption,\n DataTableDensity,\n DataTableLabels,\n DataTableSavedView,\n DataTableSelectionAction,\n DataTableToolbarAction,\n DataTableToolbarVisibility,\n DataTableViewMode,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { DATA_TABLE_DEFAULT_LABELS } from \"./data-table-labels\";\n\nconst LazyToolbarDataOperations = React.lazy(\n () => import(\"./data-table-toolbar-operations\"),\n);\n\nexport type DataTableToolbarColumnFilter = {\n id: string;\n label: string;\n type: DataTableColumnFilterType;\n value: unknown;\n placeholder?: string;\n options: Array<{ label: string; value: string; count?: number; disabled?: boolean }>;\n searchable?: boolean;\n searchPlaceholder?: string;\n trueLabel?: string;\n falseLabel?: string;\n min?: number | string;\n max?: number | string;\n step?: number;\n};\n\ntype DataTableToolbarProps = {\n title?: string;\n titleId?: string;\n description?: string;\n descriptionId?: string;\n toolbarQueryValue: string;\n toolbarQueryPlaceholder: string;\n onToolbarQueryValueChange: (value: string) => void;\n customToolbar?: React.ReactNode;\n compactToolbar?: React.ReactNode;\n viewMode: DataTableViewMode;\n onViewModeChange?: (viewMode: DataTableViewMode) => void;\n enableViewToggle: boolean;\n toolbarActions: Array>;\n selectionActions: Array>;\n selectedRows: Array;\n selectedRowIds: Array;\n showHiddenRows: boolean;\n hiddenRowsLabel?: string;\n onShowHiddenRowsChange?: (showHiddenRows: boolean) => void;\n allRows: Array;\n columnVisibilityOptions: Array;\n onColumnVisibilityChange?: (columnId: string, visible: boolean) => void;\n enableColumnPinning: boolean;\n onColumnPinningChange: (columnId: string, side: DataTableColumnFixed | false) => void;\n columnFilters: Array;\n onColumnFilterChange: (columnId: string, value: unknown) => void;\n onClearColumnFilters: () => void;\n density: DataTableDensity;\n onDensityChange: (density: DataTableDensity) => void;\n enableDensityToggle: boolean;\n labels: Required;\n toolbarVisibility?: DataTableToolbarVisibility;\n openFileDialog?: () => void;\n enableGrouping: boolean;\n enableToolbarColumnChooser: boolean;\n enableToolbarFilterChips: boolean;\n enableToolbarResetLayout: boolean;\n enableToolbarSavedViews: boolean;\n savedViews: Array;\n onResetColumnLayout: () => void;\n onCreateSavedView: (name: string) => DataTableSavedView | undefined;\n onApplySavedView: (id: string) => boolean;\n onRenameSavedView: (id: string, name: string) => DataTableSavedView | undefined;\n onDeleteSavedView: (id: string) => boolean;\n reorderColumn: (sourceColumnId: string, targetColumnId: string) => void;\n table: TanStackTable;\n};\n\nexport function createDataTableToolbar(ui: DataTableUiKit) {\n const uiClassNames = ui.classNames ?? {};\n const {\n Button,\n ButtonGroup,\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n } = ui;\n\n return function DataTableToolbar({\n title,\n titleId,\n description,\n descriptionId,\n toolbarQueryValue,\n toolbarQueryPlaceholder,\n onToolbarQueryValueChange,\n customToolbar,\n compactToolbar,\n viewMode,\n onViewModeChange,\n enableViewToggle,\n toolbarActions,\n selectionActions,\n selectedRows,\n selectedRowIds,\n showHiddenRows,\n hiddenRowsLabel,\n onShowHiddenRowsChange,\n allRows,\n columnVisibilityOptions,\n onColumnVisibilityChange,\n enableColumnPinning,\n onColumnPinningChange,\n columnFilters,\n onColumnFilterChange,\n onClearColumnFilters,\n density,\n onDensityChange,\n enableDensityToggle,\n labels,\n toolbarVisibility,\n openFileDialog,\n enableGrouping,\n enableToolbarColumnChooser,\n enableToolbarFilterChips,\n enableToolbarResetLayout,\n enableToolbarSavedViews,\n savedViews,\n onResetColumnLayout,\n onCreateSavedView,\n onApplySavedView,\n onRenameSavedView,\n onDeleteSavedView,\n reorderColumn,\n table,\n }: DataTableToolbarProps) {\n const compactSearchInputRef = React.useRef(null);\n const [isCompactSearchVisible, setIsCompactSearchVisible] =\n React.useState(false);\n const compactToolbarIconButtonClassName =\n uiClassNames.toolbarCompactIconButton ?? \"\";\n const primaryActions = toolbarActions.filter(\n (action) => (action.placement ?? \"primary\") === \"primary\",\n );\n const trailingActions = toolbarActions.filter(\n (action) => action.placement === \"trailing\",\n );\n const showTitle = toolbarVisibility?.title ?? true;\n const showSearch = toolbarVisibility?.search ?? true;\n const showActions = toolbarVisibility?.actions ?? true;\n const showTrailingActions = toolbarVisibility?.trailingActions ?? true;\n const showOptions = toolbarVisibility?.options ?? true;\n const showViewToggle = toolbarVisibility?.viewToggle ?? true;\n const showCustomToolbar = toolbarVisibility?.customToolbar ?? true;\n const hasVisibleTitle = showTitle && Boolean(title || description);\n const hasVisibleSearch = showSearch;\n const hasVisiblePrimaryActions = showActions && primaryActions.length > 0;\n const hasVisibleSelectionActions =\n selectedRowIds.length > 0 && selectionActions.length > 0;\n const hasVisibleOptions =\n showOptions &&\n (columnVisibilityOptions.some((column) => column.canHide) ||\n Boolean(onShowHiddenRowsChange && hiddenRowsLabel) ||\n enableColumnPinning ||\n enableDensityToggle ||\n enableGrouping ||\n enableToolbarColumnChooser ||\n enableToolbarResetLayout ||\n enableToolbarSavedViews);\n const hasToolbarOperationsMenu =\n enableToolbarColumnChooser ||\n enableToolbarResetLayout ||\n enableToolbarSavedViews;\n const activeColumnFilters = columnFilters.filter((filter) =>\n hasColumnFilterValue(filter.value),\n );\n const toolbarOperationsUi = {\n Button,\n DropdownMenuCheckboxItem,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n };\n const renderToolbarDataOperations = (placement: \"menu\" | \"chips\") => (\n \n }\n onResetColumnLayout={onResetColumnLayout}\n savedViews={savedViews}\n onCreateSavedView={onCreateSavedView}\n onApplySavedView={onApplySavedView}\n onRenameSavedView={onRenameSavedView}\n onDeleteSavedView={onDeleteSavedView}\n toolbarQueryValue={toolbarQueryValue}\n onToolbarQueryValueChange={onToolbarQueryValueChange}\n activeColumnFilters={activeColumnFilters}\n onColumnFilterChange={onColumnFilterChange}\n onClearColumnFilters={onClearColumnFilters}\n />\n \n );\n const groupableColumns = table\n .getAllLeafColumns()\n .filter(\n (column) =>\n !column.id.startsWith(\"__\") &&\n column.getCanGroup(),\n );\n const groupedColumns = table.store.state.grouping.flatMap((id) => {\n const column = table.getColumn(id);\n return column ? [column] : [];\n });\n const hasVisibleViewToggle =\n showViewToggle && enableViewToggle && Boolean(onViewModeChange);\n const hasVisibleTrailingActions =\n showTrailingActions && trailingActions.length > 0;\n const hasVisibleCustomToolbar = showCustomToolbar && Boolean(customToolbar);\n const hasVisibleCompactToolbar =\n showCustomToolbar && Boolean(compactToolbar ?? customToolbar);\n const selectedRowCountLabel = labels.selectedRows(selectedRowIds.length);\n\n React.useEffect(() => {\n if (!isCompactSearchVisible) {\n return;\n }\n\n compactSearchInputRef.current?.focus();\n }, [isCompactSearchVisible]);\n\n if (\n !hasVisibleTitle &&\n !hasVisibleSearch &&\n !hasVisiblePrimaryActions &&\n !hasVisibleSelectionActions &&\n !hasVisibleOptions &&\n !hasVisibleViewToggle &&\n !hasVisibleTrailingActions &&\n !hasVisibleCustomToolbar &&\n !hasVisibleCompactToolbar\n ) {\n return null;\n }\n\n return (\n
\n {showTitle && (title || description) ? (\n
\n {title ? (\n \n {title}\n \n ) : null}\n {description ? (\n \n {description}\n

\n ) : null}\n
\n ) : null}\n\n
\n \n {showSearch ? (\n <>\n
\n \n ) => {\n onToolbarQueryValueChange(event.target.value);\n }}\n placeholder={toolbarQueryPlaceholder}\n />\n \n \n \n {toolbarQueryValue ? (\n \n {\n onToolbarQueryValueChange(\"\");\n }}\n aria-label={labels.clearSearch}\n title={labels.clearSearch}\n >\n \n \n \n ) : null}\n \n
\n \n \n {\n setIsCompactSearchVisible((current) => !current);\n }}\n >\n \n {labels.searchTable}\n \n \n {labels.searchTable}\n \n \n ) : null}\n\n {showActions ? (\n
\n {primaryActions.map((action) => {\n const collapsesToIcon =\n !action.iconOnly && Boolean(action.icon);\n const button = (\n {\n void action.onClick({\n rows: allRows,\n openFileDialog,\n });\n }}\n disabled={action.disabled}\n aria-label={action.label}\n title={action.iconOnly ? undefined : action.label}\n >\n {action.icon ? : null}\n {action.iconOnly ? (\n {action.label}\n ) : collapsesToIcon ? (\n \n {action.label}\n \n ) : (\n {action.label}\n )}\n \n );\n\n return action.iconOnly ? (\n \n {button}\n {action.label}\n \n ) : (\n button\n );\n })}\n
\n ) : null}\n\n {hasVisibleCompactToolbar ? (\n \n {compactToolbar ?? customToolbar}\n
\n ) : null}\n\n
\n\n \n {selectedRowIds.length ? (\n \n {selectedRowCountLabel}\n
\n ) : null}\n {selectedRowIds.length\n ? selectionActions.map((action) => {\n const Icon = action.icon;\n const context = {\n rows: selectedRows,\n rowIds: selectedRowIds,\n };\n const disabled =\n typeof action.disabled === \"function\"\n ? action.disabled(selectedRows, context)\n : action.disabled;\n\n return (\n \n \n {\n void action.onClick(context);\n }}\n aria-label={action.label}\n >\n {Icon ? : null}\n {action.label}\n \n \n {action.label}\n \n );\n })\n : null}\n\n {hasVisibleOptions ? (\n \n \n \n \n {labels.tableOptions}\n \n \n \n {labels.tableOptions}\n \n {onShowHiddenRowsChange && hiddenRowsLabel ? (\n {\n onShowHiddenRowsChange(checked === true);\n }}\n >\n {labels.showHiddenRows(hiddenRowsLabel)}\n \n ) : null}\n \n {enableDensityToggle ? (\n <>\n \n {labels.density}\n \n {(\n [\n [\"compact\", labels.compactDensity],\n [\"comfortable\", labels.comfortableDensity],\n [\"spacious\", labels.spaciousDensity],\n ] as const\n ).map(([nextDensity, label]) => (\n {\n onDensityChange(nextDensity);\n }}\n >\n {label}\n \n ))}\n \n \n ) : null}\n {hasToolbarOperationsMenu\n ? renderToolbarDataOperations(\"menu\")\n : null}\n {!enableToolbarColumnChooser &&\n columnVisibilityOptions.some((column) => column.canHide) ? (\n <>\n \n {labels.columns}\n \n {columnVisibilityOptions\n .filter((column) => column.canHide)\n .map((column) => (\n {\n onColumnVisibilityChange?.(\n column.id,\n checked === true,\n );\n }}\n >\n {column.label}\n \n ))}\n \n \n ) : null}\n {enableColumnPinning && !enableToolbarColumnChooser ? (\n <>\n \n \n {labels.pinLeft} / {labels.pinRight}\n \n \n {columnVisibilityOptions.map((column) => (\n {\n event.preventDefault();\n }}\n >\n \n {column.label}\n \n {\n event.stopPropagation();\n onColumnPinningChange(column.id, \"left\");\n }}\n >\n L\n \n {\n event.stopPropagation();\n onColumnPinningChange(column.id, \"right\");\n }}\n >\n R\n \n {\n event.stopPropagation();\n onColumnPinningChange(column.id, false);\n }}\n >\n -\n \n \n ))}\n \n \n ) : null}\n {enableGrouping && groupableColumns.length ? (\n <>\n \n {labels.grouping}\n \n {groupableColumns.map((column) => {\n const columnLabel =\n typeof column.columnDef.header === \"string\"\n ? column.columnDef.header\n : column.id;\n const isGrouped = column.getIsGrouped();\n return (\n {\n column.toggleGrouping();\n }}\n >\n {isGrouped\n ? labels.ungroup(columnLabel)\n : labels.groupBy(columnLabel)}\n \n );\n })}\n \n \n ) : null}\n \n \n ) : null}\n\n {showViewToggle && enableViewToggle && onViewModeChange ? (\n \n \n \n {\n onViewModeChange(\"table\");\n }}\n >\n \n \n {labels.switchToTableView ??\n DATA_TABLE_DEFAULT_LABELS.switchToTableView}\n \n \n \n \n {labels.tableView ??\n DATA_TABLE_DEFAULT_LABELS.tableView}\n \n \n \n \n {\n onViewModeChange(\"card\");\n }}\n >\n \n \n {labels.switchToCardView ??\n DATA_TABLE_DEFAULT_LABELS.switchToCardView}\n \n \n \n \n {labels.cardView ??\n DATA_TABLE_DEFAULT_LABELS.cardView}\n \n \n \n ) : null}\n\n {showTrailingActions\n ? trailingActions.map((action) => {\n const collapsesToIcon =\n !action.iconOnly && Boolean(action.icon);\n const button = (\n {\n void action.onClick({\n rows: allRows,\n openFileDialog,\n });\n }}\n disabled={action.disabled}\n aria-label={action.label}\n title={action.iconOnly ? undefined : action.label}\n className={`size-7 shrink-0 ${action.iconOnly ? \"\" : `${collapsesToIcon ? \"px-0 @min-[768px]/data-table:px-2.5\" : \"\"} @min-[768px]/data-table:h-8 @min-[768px]/data-table:w-fit`} ${action.iconOnly || collapsesToIcon ? compactToolbarIconButtonClassName : \"\"} ${uiClassNames.toolbarInputButton ?? \"\"}`}\n >\n {action.icon ? (\n \n ) : null}\n {action.iconOnly ? (\n {action.label}\n ) : collapsesToIcon ? (\n \n {action.label}\n \n ) : (\n {action.label}\n )}\n \n );\n\n return action.iconOnly ? (\n \n {button}\n {action.label}\n \n ) : (\n button\n );\n })\n : null}\n
\n \n\n {showSearch && isCompactSearchVisible ? (\n \n \n ) => {\n onToolbarQueryValueChange(event.target.value);\n }}\n placeholder={toolbarQueryPlaceholder}\n />\n \n \n \n {toolbarQueryValue ? (\n \n {\n onToolbarQueryValueChange(\"\");\n }}\n aria-label={labels.clearSearch}\n title={labels.clearSearch}\n >\n \n \n \n ) : null}\n \n \n ) : null}\n\n {columnFilters.length ? (\n \n {columnFilters.map((filter) => (\n \n ))}\n {columnFilters.some((filter) =>\n hasColumnFilterValue(filter.value),\n ) ? (\n \n {labels.clearFilters}\n \n ) : null}\n \n ) : null}\n\n {enableToolbarFilterChips\n ? renderToolbarDataOperations(\"chips\")\n : null}\n\n {enableGrouping && groupedColumns.length ? (\n \n {labels.grouping}:\n {groupedColumns.map((column, groupingIndex) => {\n const columnLabel =\n typeof column.columnDef.header === \"string\"\n ? column.columnDef.header\n : column.id;\n const moveGrouping = (nextIndex: number) => {\n const nextGrouping = [...table.store.state.grouping];\n const [groupingId] = nextGrouping.splice(groupingIndex, 1);\n if (groupingId === undefined) return;\n nextGrouping.splice(nextIndex, 0, groupingId);\n table.setGrouping(nextGrouping);\n };\n return (\n \n moveGrouping(groupingIndex - 1)}\n aria-label={labels.moveGroupingEarlier(columnLabel)}\n >\n \n \n column.toggleGrouping()}\n aria-label={labels.removeGrouping(columnLabel)}\n >\n {columnLabel} ×\n \n moveGrouping(groupingIndex + 1)}\n aria-label={labels.moveGroupingLater(columnLabel)}\n >\n \n \n \n );\n })}\n \n ) : null}\n\n \n\n {showCustomToolbar && customToolbar ? (\n \n {customToolbar}\n \n ) : null}\n \n );\n };\n\n function ToolbarColumnFilterControl({\n filter,\n labels,\n onColumnFilterChange,\n }: {\n filter: DataTableToolbarColumnFilter;\n labels: Required;\n onColumnFilterChange: (columnId: string, value: unknown) => void;\n }) {\n const [facetQuery, setFacetQuery] = React.useState(\"\");\n if (filter.type === \"text\") {\n return (\n \n ) => {\n onColumnFilterChange(filter.id, event.target.value);\n }}\n placeholder={filter.placeholder ?? filter.label}\n aria-label={`${labels.filters}: ${filter.label}`}\n />\n \n \n \n \n );\n }\n\n if (filter.type === \"numberRange\" || filter.type === \"dateRange\") {\n const range = normalizeToolbarRangeValue(filter.value);\n const inputType = filter.type === \"numberRange\" ? \"number\" : \"date\";\n const fromLabel =\n labels.filterFrom ?? DATA_TABLE_DEFAULT_LABELS.filterFrom;\n const toLabel = labels.filterTo ?? DATA_TABLE_DEFAULT_LABELS.filterTo;\n\n return (\n \n \n ) => {\n onColumnFilterChange(filter.id, {\n ...range,\n from: parseRangeInputValue(event.target.value, inputType),\n });\n }}\n aria-label={`${filter.label}: ${fromLabel}`}\n />\n {fromLabel}\n \n \n ) => {\n onColumnFilterChange(filter.id, {\n ...range,\n to: parseRangeInputValue(event.target.value, inputType),\n });\n }}\n aria-label={`${filter.label}: ${toLabel}`}\n />\n {toLabel}\n \n \n );\n }\n\n const isBoolean = filter.type === \"boolean\";\n const isFaceted = filter.type === \"faceted\";\n const booleanOptions = [\n {\n label:\n filter.trueLabel ??\n labels.filterTrue ??\n DATA_TABLE_DEFAULT_LABELS.filterTrue,\n value: \"true\",\n },\n {\n label:\n filter.falseLabel ??\n labels.filterFalse ??\n DATA_TABLE_DEFAULT_LABELS.filterFalse,\n value: \"false\",\n },\n ];\n const options: DataTableToolbarColumnFilter[\"options\"] = isBoolean\n ? booleanOptions\n : filter.options;\n const visibleOptions =\n isFaceted && facetQuery\n ? options.filter((option) =>\n option.label.toLocaleLowerCase().includes(facetQuery.toLocaleLowerCase()),\n )\n : options;\n const selectedValue =\n typeof filter.value === \"string\" || typeof filter.value === \"boolean\"\n ? String(filter.value)\n : \"\";\n const selectedValues = Array.isArray(filter.value)\n ? filter.value.map(String)\n : selectedValue\n ? [selectedValue]\n : [];\n const selectedLabel =\n selectedValues.length === 0\n ? filter.label\n : `${filter.label}: ${\n selectedValues.length === 1\n ? (options.find(\n (option) => option.value === String(selectedValues[0]),\n )?.label ?? selectedValues[0])\n : selectedValues.length\n }`;\n\n return (\n \n \n \n \n \n {filter.label}\n {isFaceted && filter.searchable !== false ? (\n
\n \n ) => {\n setFacetQuery(event.target.value);\n }}\n placeholder={filter.searchPlaceholder ?? labels.facetSearch(filter.label)}\n aria-label={labels.facetSearch(filter.label)}\n />\n \n \n \n \n
\n ) : null}\n \n {filter.type === \"select\" || isBoolean || isFaceted ? (\n {\n onColumnFilterChange(filter.id, \"\");\n }}\n >\n {labels.allFilterOptions ??\n DATA_TABLE_DEFAULT_LABELS.allFilterOptions}\n \n ) : null}\n {visibleOptions.map((option) => (\n {\n if (filter.type === \"select\" || isBoolean) {\n onColumnFilterChange(\n filter.id,\n checked === true ? option.value : \"\",\n );\n return;\n }\n\n const nextValues = new Set(selectedValues);\n if (checked === true) {\n nextValues.add(option.value);\n } else {\n nextValues.delete(option.value);\n }\n onColumnFilterChange(filter.id, Array.from(nextValues));\n }}\n >\n {option.label}\n {option.count !== undefined ? (\n {option.count}\n ) : null}\n \n ))}\n \n
\n
\n );\n }\n}\n\nfunction hasColumnFilterValue(value: unknown) {\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n\n if (value && typeof value === \"object\") {\n if (\"from\" in value || \"to\" in value) {\n return Object.values(value).some(hasColumnFilterValue);\n }\n\n return true;\n }\n\n return value !== undefined && value !== null && value !== \"\";\n}\n\nfunction normalizeToolbarRangeValue(value: unknown): {\n from?: number | string;\n to?: number | string;\n} {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n return {};\n }\n\n const range = value as { from?: unknown; to?: unknown };\n return {\n ...(typeof range.from === \"number\" || typeof range.from === \"string\"\n ? { from: range.from }\n : {}),\n ...(typeof range.to === \"number\" || typeof range.to === \"string\"\n ? { to: range.to }\n : {}),\n };\n}\n\nfunction parseRangeInputValue(value: string, inputType: \"number\" | \"date\") {\n if (!value) {\n return undefined;\n }\n\n return inputType === \"number\" ? Number(value) : value;\n}\n","import * as React from \"react\";\nimport { DataTableTablePanel } from \"./data-table-table-panel\";\nimport type { DataTableTablePanelProps } from \"./data-table-table-panel\";\n\nconst LazyDataTableVirtualTablePanel = React.lazy(async () => {\n const module = await import(\"./data-table-virtual-table-panel\");\n return { default: module.DataTableVirtualTablePanel };\n}) as unknown as typeof DataTableTablePanel;\n\nexport function DataTableTablePanelRouter(\n props: DataTableTablePanelProps,\n) {\n const config =\n typeof props.virtualization === \"object\"\n ? props.virtualization\n : undefined;\n const enabled =\n props.virtualization === true || config?.enabled === true;\n\n if (!enabled) {\n return ;\n }\n\n return (\n \n }\n >\n \n \n );\n}\n","import type {\n DataTableSavedView,\n DataTableSavedViewSlice,\n DataTableSavedViewsChangeOperation,\n DataTableSavedViewsConfig,\n DataTableSavedViewsPayload,\n DataTableState,\n} from \"../types\";\n\nconst STORAGE_PREFIX = \"data-table-pro:saved-views:\";\nconst DEFAULT_VERSION = 1;\nconst DEFAULT_SLICES: Array = [\n \"sorting\",\n \"columnVisibility\",\n \"columnFilters\",\n \"grouping\",\n \"columnOrder\",\n \"columnPinning\",\n \"rowPinning\",\n \"columnSizing\",\n \"density\",\n \"viewMode\",\n \"showHiddenRows\",\n \"globalFilter\",\n];\nlet fallbackId = 0;\n\nexport function readDataTableSavedViews(\n config: DataTableSavedViewsConfig | undefined,\n): Array {\n const storage = resolveStorage(config);\n if (!config || !storage) {\n return [];\n }\n\n let serialized: string | null;\n try {\n serialized = storage.getItem(getStorageKey(config.key));\n } catch (error) {\n config.onError?.({ error, operation: \"read\" });\n return [];\n }\n if (!serialized) {\n return [];\n }\n\n let parsed: unknown;\n try {\n parsed = (config.deserialize ?? JSON.parse)(serialized);\n } catch (error) {\n config.onError?.({ error, operation: \"deserialize\" });\n return [];\n }\n\n if (!isRecord(parsed) || !(\"version\" in parsed) || !(\"views\" in parsed)) {\n return [];\n }\n\n const targetVersion = config.version ?? DEFAULT_VERSION;\n let candidate: unknown = parsed.views;\n if (parsed.version !== targetVersion) {\n if (!config.migrate) {\n return [];\n }\n try {\n candidate = config.migrate(\n { version: parsed.version, views: parsed.views },\n targetVersion,\n );\n } catch (error) {\n config.onError?.({ error, operation: \"migrate\" });\n return [];\n }\n }\n\n if (!Array.isArray(candidate)) {\n return [];\n }\n\n return candidate\n .map((view) => validateSavedView(view, config.slices))\n .filter((view): view is DataTableSavedView => Boolean(view));\n}\n\nexport function createDataTableSavedView(\n config: DataTableSavedViewsConfig | undefined,\n name: string,\n state: DataTableState,\n) {\n const normalizedName = name.trim();\n if (!config || !normalizedName) {\n return undefined;\n }\n\n const now = new Date().toISOString();\n const view: DataTableSavedView = {\n id: createSavedViewId(),\n name: normalizedName,\n createdAt: now,\n updatedAt: now,\n state: selectSavedViewSlices(state, config.slices),\n };\n const views = [...readDataTableSavedViews(config), view];\n return writeViews(config, views, \"create\") ? cloneSavedView(view) : undefined;\n}\n\nexport function renameDataTableSavedView(\n config: DataTableSavedViewsConfig | undefined,\n id: string,\n name: string,\n) {\n const normalizedName = name.trim();\n if (!config || !normalizedName) {\n return undefined;\n }\n\n let renamed: DataTableSavedView | undefined;\n const views = readDataTableSavedViews(config).map((view) => {\n if (view.id !== id) {\n return view;\n }\n renamed = {\n ...view,\n name: normalizedName,\n updatedAt: new Date().toISOString(),\n };\n return renamed;\n });\n if (!renamed) {\n return undefined;\n }\n\n return writeViews(config, views, \"rename\")\n ? cloneSavedView(renamed)\n : undefined;\n}\n\nexport function deleteDataTableSavedView(\n config: DataTableSavedViewsConfig | undefined,\n id: string,\n) {\n if (!config) {\n return false;\n }\n\n const current = readDataTableSavedViews(config);\n const views = current.filter((view) => view.id !== id);\n return views.length !== current.length && writeViews(config, views, \"delete\");\n}\n\nexport function clearDataTableSavedViews(\n config: DataTableSavedViewsConfig | undefined,\n) {\n const storage = resolveStorage(config);\n if (!config || !storage) {\n return false;\n }\n\n try {\n storage.removeItem(getStorageKey(config.key));\n } catch (error) {\n config.onError?.({ error, operation: \"remove\" });\n return false;\n }\n config.onChange?.([], \"clear\");\n return true;\n}\n\nfunction writeViews(\n config: DataTableSavedViewsConfig,\n views: Array,\n operation: DataTableSavedViewsChangeOperation,\n) {\n const storage = resolveStorage(config);\n if (!storage) {\n return false;\n }\n\n let serialized: string;\n try {\n const payload: DataTableSavedViewsPayload = {\n version: config.version ?? DEFAULT_VERSION,\n views,\n };\n serialized = (config.serialize ?? JSON.stringify)(payload);\n } catch (error) {\n config.onError?.({ error, operation: \"serialize\" });\n return false;\n }\n\n try {\n storage.setItem(getStorageKey(config.key), serialized);\n } catch (error) {\n config.onError?.({ error, operation: \"write\" });\n return false;\n }\n const snapshots = views.map(cloneSavedView);\n config.onChange?.(snapshots, operation);\n return true;\n}\n\nfunction selectSavedViewSlices(\n state: DataTableState,\n slices: Array | undefined,\n) {\n const selected = new Set(slices ?? DEFAULT_SLICES);\n const snapshot: Partial = {};\n for (const slice of Object.keys(state) as Array) {\n if (selected.has(slice)) {\n Object.assign(snapshot, {\n [slice]: cloneStateSlice(slice, state[slice]),\n });\n }\n }\n return snapshot;\n}\n\nfunction validateSavedView(\n value: unknown,\n slices: Array | undefined,\n): DataTableSavedView | undefined {\n if (\n !isRecord(value) ||\n typeof value.id !== \"string\" ||\n !value.id ||\n typeof value.name !== \"string\" ||\n !value.name.trim() ||\n typeof value.createdAt !== \"string\" ||\n typeof value.updatedAt !== \"string\"\n ) {\n return undefined;\n }\n\n return {\n id: value.id,\n name: value.name.trim(),\n createdAt: value.createdAt,\n updatedAt: value.updatedAt,\n state: validateState(value.state, slices),\n };\n}\n\nfunction validateState(\n value: unknown,\n slices: Array | undefined,\n) {\n if (!isRecord(value)) {\n return {};\n }\n\n const selected = new Set(slices ?? DEFAULT_SLICES);\n const state: Partial = {};\n const sorting = validateSorting(value.sorting);\n if (selected.has(\"sorting\") && sorting) state.sorting = sorting;\n const pagination = validatePagination(value.pagination);\n if (selected.has(\"pagination\") && pagination) state.pagination = pagination;\n const rowSelection = validateBooleanRecord(value.rowSelection);\n if (selected.has(\"rowSelection\") && rowSelection) {\n state.rowSelection = rowSelection;\n }\n const visibility = validateBooleanRecord(value.columnVisibility);\n if (selected.has(\"columnVisibility\") && visibility) {\n state.columnVisibility = visibility;\n }\n const filters = validateFilters(value.columnFilters);\n if (selected.has(\"columnFilters\") && filters) state.columnFilters = filters;\n const grouping = validateStringArray(value.grouping);\n if (selected.has(\"grouping\") && grouping) state.grouping = grouping;\n const expanded =\n value.expanded === true\n ? true\n : validateBooleanRecord(value.expanded);\n if (selected.has(\"expanded\") && expanded !== undefined) {\n state.expanded = expanded;\n }\n const order = validateStringArray(value.columnOrder);\n if (selected.has(\"columnOrder\") && order) state.columnOrder = order;\n const pinning = validatePinning(value.columnPinning);\n if (selected.has(\"columnPinning\") && pinning) {\n state.columnPinning = pinning;\n }\n const rowPinning = validateRowPinning(value.rowPinning);\n if (selected.has(\"rowPinning\") && rowPinning) {\n state.rowPinning = rowPinning;\n }\n const sizing = validateSizingRecord(value.columnSizing);\n if (selected.has(\"columnSizing\") && sizing) state.columnSizing = sizing;\n if (\n selected.has(\"density\") &&\n (value.density === \"compact\" ||\n value.density === \"comfortable\" ||\n value.density === \"spacious\")\n ) {\n state.density = value.density;\n }\n if (\n selected.has(\"viewMode\") &&\n (value.viewMode === \"table\" || value.viewMode === \"card\")\n ) {\n state.viewMode = value.viewMode;\n }\n if (selected.has(\"showHiddenRows\") && typeof value.showHiddenRows === \"boolean\") {\n state.showHiddenRows = value.showHiddenRows;\n }\n if (selected.has(\"globalFilter\") && typeof value.globalFilter === \"string\") {\n state.globalFilter = value.globalFilter;\n }\n return state;\n}\n\nfunction cloneSavedView(view: DataTableSavedView): DataTableSavedView {\n return {\n ...view,\n state: validateState(view.state, Object.keys(view.state) as Array),\n };\n}\n\nfunction cloneStateSlice(\n slice: DataTableSavedViewSlice,\n value: unknown,\n) {\n if (Array.isArray(value)) {\n return (value as Array).map((item) =>\n isRecord(item) ? { ...item } : item,\n );\n }\n if (isRecord(value)) {\n if (slice === \"columnPinning\" || slice === \"rowPinning\") {\n return {\n ...(slice === \"columnPinning\"\n ? {\n left: Array.isArray(value.left)\n ? [...(value.left as Array)]\n : undefined,\n right: Array.isArray(value.right)\n ? [...(value.right as Array)]\n : undefined,\n }\n : {\n top: Array.isArray(value.top)\n ? [...(value.top as Array)]\n : undefined,\n bottom: Array.isArray(value.bottom)\n ? [...(value.bottom as Array)]\n : undefined,\n }),\n };\n }\n return { ...value };\n }\n return value;\n}\n\nfunction validateSorting(value: unknown) {\n if (!Array.isArray(value)) return undefined;\n return value\n .filter(\n (item): item is { id: string; desc?: boolean } =>\n isRecord(item) && typeof item.id === \"string\",\n )\n .map((item) => ({ id: item.id, desc: Boolean(item.desc) }));\n}\n\nfunction validatePagination(value: unknown) {\n if (\n !isRecord(value) ||\n !Number.isInteger(value.pageIndex) ||\n (value.pageIndex as number) < 0 ||\n !Number.isInteger(value.pageSize) ||\n (value.pageSize as number) < 1\n ) {\n return undefined;\n }\n return {\n pageIndex: value.pageIndex as number,\n pageSize: value.pageSize as number,\n };\n}\n\nfunction validateFilters(value: unknown) {\n if (!Array.isArray(value)) return undefined;\n return value\n .filter(\n (item): item is { id: string; value: unknown } =>\n isRecord(item) &&\n typeof item.id === \"string\" &&\n Object.prototype.hasOwnProperty.call(item, \"value\"),\n )\n .map((item) => ({ id: item.id, value: item.value }));\n}\n\nfunction validatePinning(value: unknown) {\n if (!isRecord(value)) return undefined;\n return {\n left: validateStringArray(value.left) ?? [],\n right: validateStringArray(value.right) ?? [],\n };\n}\n\nfunction validateRowPinning(value: unknown) {\n if (!isRecord(value)) return undefined;\n return {\n top: validateStringArray(value.top) ?? [],\n bottom: validateStringArray(value.bottom) ?? [],\n };\n}\n\nfunction validateBooleanRecord(value: unknown) {\n if (!isRecord(value)) return undefined;\n return Object.fromEntries(\n Object.entries(value).filter(\n (entry): entry is [string, boolean] => typeof entry[1] === \"boolean\",\n ),\n );\n}\n\nfunction validateSizingRecord(value: unknown) {\n if (!isRecord(value)) return undefined;\n return Object.fromEntries(\n Object.entries(value).filter(\n (entry): entry is [string, number] =>\n typeof entry[1] === \"number\" &&\n Number.isFinite(entry[1]) &&\n entry[1] >= 0,\n ),\n );\n}\n\nfunction validateStringArray(value: unknown) {\n if (!Array.isArray(value)) return undefined;\n return value.filter((item): item is string => typeof item === \"string\");\n}\n\nfunction resolveStorage(config: DataTableSavedViewsConfig | undefined) {\n if (!config) {\n return undefined;\n }\n if (config.storage) {\n return config.storage;\n }\n if (typeof window === \"undefined\") {\n return undefined;\n }\n try {\n return window.localStorage;\n } catch (error) {\n config.onError?.({ error, operation: \"read\" });\n return undefined;\n }\n}\n\nfunction createSavedViewId() {\n if (typeof globalThis.crypto?.randomUUID === \"function\") {\n return globalThis.crypto.randomUUID();\n }\n fallbackId += 1;\n return `view-${Date.now().toString(36)}-${fallbackId.toString(36)}`;\n}\n\nfunction getStorageKey(key: string) {\n return `${STORAGE_PREFIX}${key}`;\n}\n\nfunction isRecord(value: unknown): value is Record {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import * as React from \"react\";\nimport { IconDownload } from \"../icons\";\nimport type {\n ColumnFiltersState,\n ColumnVisibilityState as VisibilityState,\n OnChangeFn,\n} from \"@tanstack/react-table\";\nimport type {\n DataTableColumnFixed,\n DataTableColumnPinningState as ColumnPinningState,\n DataTableLabels,\n DataTableProps,\n} from \"../types\";\nimport type { DataTableTanStackTable as TanStackTable } from \"./tanstack-v9\";\nimport {\n exportDataTableCsv,\n getAccessorKey,\n getColumnId,\n getDataTableLeafColumns,\n hasFilterValue,\n normalizeColumnFilterOptions,\n startCase,\n} from \"./data-table-utils\";\n\nexport function useDataTableToolbarFeatures({\n columns,\n currentColumnFilters,\n currentColumnPinning,\n effectiveColumnVisibility,\n enableColumnFilters,\n handleColumnFiltersChange,\n handleColumnPinningChange,\n labels,\n table,\n toolbarActions,\n visibleData,\n csvExport,\n}: {\n columns: DataTableProps[\"columns\"];\n currentColumnFilters: ColumnFiltersState;\n currentColumnPinning: ColumnPinningState;\n effectiveColumnVisibility: VisibilityState;\n enableColumnFilters: boolean | undefined;\n handleColumnFiltersChange: OnChangeFn;\n handleColumnPinningChange: OnChangeFn;\n labels: DataTableLabels;\n table: TanStackTable;\n toolbarActions: DataTableProps[\"toolbarActions\"];\n visibleData: Array;\n csvExport: DataTableProps[\"csvExport\"];\n}) {\n const columnVisibilityOptions = React.useMemo(() => {\n return getDataTableLeafColumns(columns).map(({ column, index }) => {\n const id = getColumnId(column, index);\n const header = column.header;\n const accessorKey = getAccessorKey(column);\n const label =\n typeof header === \"string\"\n ? header\n : accessorKey\n ? startCase(accessorKey)\n : startCase(id);\n\n const pinned: false | DataTableColumnFixed =\n currentColumnPinning.left?.includes(id) === true\n ? \"left\"\n : currentColumnPinning.right?.includes(id) === true\n ? \"right\"\n : false;\n\n return {\n id,\n label,\n visible: effectiveColumnVisibility[id] !== false,\n canHide: column.enableHiding !== false,\n pinned,\n };\n });\n }, [columns, currentColumnPinning, effectiveColumnVisibility]);\n\n const toolbarColumnFilters = React.useMemo(() => {\n if (enableColumnFilters === false) {\n return [];\n }\n\n return getDataTableLeafColumns(columns).flatMap(({ column, index }) => {\n const filter = column.meta?.filter;\n if (!filter) {\n return [];\n }\n\n const id = getColumnId(column, index);\n const header = column.header;\n const accessorKey = getAccessorKey(column);\n const label =\n filter.label ??\n (typeof header === \"string\"\n ? header\n : accessorKey\n ? startCase(accessorKey)\n : startCase(id));\n const state = currentColumnFilters.find((item) => item.id === id);\n const configuredFacetOptions = filter.faceting?.options;\n const facetedMinMax =\n filter.type === \"numberRange\"\n ? table.getColumn(id)?.getFacetedMinMaxValues()\n : undefined;\n const rawOptions =\n filter.type === \"faceted\" && configuredFacetOptions\n ? typeof configuredFacetOptions === \"function\"\n ? configuredFacetOptions({ rows: visibleData })\n : configuredFacetOptions\n : filter.type === \"faceted\"\n ? Array.from(table.getColumn(id)?.getFacetedUniqueValues() ?? []).map(\n ([value, count]) => ({\n label:\n filter.faceting?.getOptionLabel?.(value as never) ??\n String(value),\n value: String(value),\n count,\n }),\n )\n : typeof filter.options === \"function\"\n ? filter.options({ rows: visibleData })\n : (filter.options ?? []);\n\n return [\n {\n id,\n label,\n type: filter.type,\n value: state?.value,\n placeholder: filter.placeholder,\n options: normalizeColumnFilterOptions(rawOptions),\n searchable: filter.faceting?.searchable,\n searchPlaceholder: filter.faceting?.searchPlaceholder,\n trueLabel: filter.trueLabel,\n falseLabel: filter.falseLabel,\n min: filter.min ?? facetedMinMax?.[0],\n max: filter.max ?? facetedMinMax?.[1],\n step: filter.step,\n },\n ];\n });\n }, [\n columns,\n currentColumnFilters,\n enableColumnFilters,\n table,\n visibleData,\n ]);\n\n const handleToolbarColumnFilterChange = React.useCallback(\n (columnId: string, value: unknown) => {\n handleColumnFiltersChange((current) => {\n const next = current.filter((filter) => filter.id !== columnId);\n if (hasFilterValue(value)) {\n next.push({ id: columnId, value });\n }\n return next;\n });\n },\n [handleColumnFiltersChange],\n );\n\n const handleClearColumnFilters = React.useCallback(() => {\n handleColumnFiltersChange([]);\n }, [handleColumnFiltersChange]);\n\n const handleToolbarColumnPinningChange = React.useCallback(\n (columnId: string, side: DataTableColumnFixed | false) => {\n handleColumnPinningChange((current) => {\n const left = (current.left ?? []).filter((id) => id !== columnId);\n const right = (current.right ?? []).filter((id) => id !== columnId);\n\n if (side === \"left\") {\n left.push(columnId);\n }\n if (side === \"right\") {\n right.push(columnId);\n }\n\n return { left, right };\n });\n },\n [handleColumnPinningChange],\n );\n\n const handleCsvExport = React.useCallback(() => {\n if (!csvExport) {\n return;\n }\n\n return exportDataTableCsv({\n csvExport,\n table,\n labels,\n });\n }, [csvExport, labels, table]);\n\n const effectiveToolbarActions = React.useMemo(() => {\n if (!csvExport) {\n return toolbarActions ?? [];\n }\n\n return [\n ...(toolbarActions ?? []),\n {\n key: \"__csv_export__\",\n label: labels.exportCsv,\n icon: IconDownload,\n placement: \"trailing\" as const,\n onClick: handleCsvExport,\n },\n ];\n }, [csvExport, handleCsvExport, labels.exportCsv, toolbarActions]);\n\n return {\n columnVisibilityOptions,\n effectiveToolbarActions,\n handleClearColumnFilters,\n handleToolbarColumnFilterChange,\n handleToolbarColumnPinningChange,\n toolbarColumnFilters,\n };\n}\n","import * as React from \"react\";\nimport type { DataTableProps } from \"../types\";\n\n/** Development-only guardrails for identities used by row models and caches. */\nexport function useDataTablePerformanceDiagnostics({\n columns,\n data,\n getRowId,\n}: Pick, \"columns\" | \"data\" | \"getRowId\">) {\n const previous = React.useRef({ columns, data, getRowId });\n const warned = React.useRef(new Set());\n\n React.useEffect(() => {\n if (!isDevelopmentEnvironment()) {\n return;\n }\n\n const last = previous.current;\n if (\n last.data !== data &&\n haveSameItems(last.data, data) &&\n !warned.current.has(\"data\")\n ) {\n warn(\n warned.current,\n \"data\",\n \"The data array identity changed. Keep rows immutable and memoize unchanged data so filtering, row models, and virtual measurements can be reused.\",\n );\n }\n if (\n last.columns !== columns &&\n haveSameItems(last.columns, columns) &&\n !warned.current.has(\"columns\")\n ) {\n warn(\n warned.current,\n \"columns\",\n \"The columns array identity changed. Memoize stable column definitions so the search index and table column model can be reused.\",\n );\n }\n if (last.getRowId !== getRowId && !warned.current.has(\"getRowId\")) {\n warn(\n warned.current,\n \"getRowId\",\n \"getRowId identity changed. Memoize it and return an immutable, unique id to preserve row state and virtual scroll anchoring.\",\n );\n }\n\n const ids = new Set();\n for (let index = 0; index < data.length; index += 1) {\n const id = getRowId(data[index]!, index);\n if (ids.has(id) && !warned.current.has(\"duplicate-row-id\")) {\n warn(\n warned.current,\n \"duplicate-row-id\",\n `Duplicate row id \"${id}\" detected. Row ids must be unique and immutable.`,\n );\n break;\n }\n ids.add(id);\n }\n previous.current = { columns, data, getRowId };\n }, [columns, data, getRowId]);\n}\n\nfunction haveSameItems(previous: Array, next: Array) {\n return (\n previous.length === next.length &&\n previous.every((item, index) => Object.is(item, next[index]))\n );\n}\n\nfunction warn(warned: Set, key: string, message: string) {\n warned.add(key);\n console.warn(`[data-table-pro] ${message}`);\n}\n\nfunction isDevelopmentEnvironment() {\n return (\n (globalThis as { process?: { env?: { NODE_ENV?: string } } }).process?.env\n ?.NODE_ENV !== \"production\"\n );\n}\n","import * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport type { DataTableTanStackTable as TanStackTable } from \"./tanstack-v9\";\nimport type {\n DataTableActionErrorContext,\n DataTableApi,\n DataTableCellSelection,\n DataTableLabels,\n DataTableProps,\n DataTableState,\n DataTableStateOverlay as DataTableStateOverlayConfig,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport { createDataTableCardView } from \"./create-data-table-card-view\";\nimport { createDataTableEmptyState } from \"./create-data-table-empty-state\";\nimport { createDataTablePagination } from \"./create-data-table-pagination\";\nimport { createDataTableRowActions } from \"./create-data-table-row-actions\";\nimport { createDataTableToolbar } from \"./create-data-table-toolbar\";\nimport { DataTableCardPanel as DefaultDataTableCardPanel } from \"./data-table-card-panel\";\nimport { DataTableFooterSection } from \"./data-table-footer-section\";\nimport { DataTableTablePanelRouter as DefaultDataTableTablePanel } from \"./data-table-table-panel-router\";\nimport { DataTableToolbarSection } from \"./data-table-toolbar-section\";\nimport {\n clearDataTableSavedViews,\n createDataTableSavedView,\n deleteDataTableSavedView,\n readDataTableSavedViews,\n renameDataTableSavedView,\n} from \"./data-table-saved-views\";\nimport { resolveDataTableLabels } from \"./data-table-labels\";\nimport { useDataTableColumns } from \"./use-data-table-columns\";\nimport { useControllableState } from \"./use-controllable-state\";\nimport { useDataTableInstance } from \"./use-data-table-instance\";\nimport { useDataTableScrollViewport } from \"./use-data-table-scroll-viewport\";\nimport {\n exportDataTableCsv,\n getColumnId,\n getDataTableColumnGroupPaths,\n getDataTableLeafColumns,\n getInitialColumnPinning,\n hasFixedDataTableColumnSize,\n validateDataTableColumnIds,\n} from \"./data-table-utils\";\nimport { useDataTableState } from \"./use-data-table-state\";\nimport { clearDataTableColumnPrefs } from \"./use-data-table-column-prefs\";\nimport { useDataTableToolbarFeatures } from \"./use-data-table-toolbar-features\";\nimport { useColumnLayout } from \"./use-column-layout\";\nimport { useRowEditing } from \"./use-row-editing\";\nimport { useDataTablePerformanceDiagnostics } from \"./use-data-table-performance-diagnostics\";\n\nconst DataTableAutoPageSize = React.lazy(\n () => import(\"./data-table-auto-page-size\"),\n);\n\ntype CreateDataTableOptions = {\n CardPanel?: typeof DefaultDataTableCardPanel;\n TablePanel?: typeof DefaultDataTableTablePanel;\n};\n\nexport function createDataTable(ui: DataTableUiKit) {\n return createDataTableWithPanels(ui);\n}\n\nexport function createDataTableWithPanels(\n ui: DataTableUiKit,\n options: CreateDataTableOptions = {},\n) {\n const DataTableCardPanel =\n options.CardPanel ?? DefaultDataTableCardPanel;\n const DataTableTablePanel =\n options.TablePanel ?? DefaultDataTableTablePanel;\n const uiClassNames = ui.classNames ?? {};\n const {\n rootClassName,\n Button,\n Checkbox,\n Input,\n ScrollArea,\n ScrollBar,\n Skeleton,\n Table,\n TableBody,\n TableCell,\n TableFooter = \"tfoot\",\n TableHead,\n TableHeader,\n TableRow,\n Tooltip,\n TooltipContent,\n TooltipProvider = React.Fragment,\n TooltipTrigger,\n } = ui;\n const DataTableEmptyState = createDataTableEmptyState(ui);\n const DataTableRowActions = createDataTableRowActions(ui);\n const { DataTableCountOnlyFooter, DataTableFooter } =\n createDataTablePagination(ui);\n const DataTableToolbar = createDataTableToolbar(ui);\n const DataTableCardView = createDataTableCardView(ui, DataTableRowActions);\n const DataTableStateOverlay = React.lazy(async () => {\n const { createDataTableStateOverlay } = await import(\n \"./data-table-state-overlay\"\n );\n return { default: createDataTableStateOverlay(ui) };\n }) as unknown as (props: {\n labels: DataTableLabels;\n overlay: DataTableStateOverlayConfig;\n rows: Array;\n toolbarQueryValue: string;\n }) => React.ReactElement | null;\n const defaultColumn = {\n minSize: 80,\n size: 180,\n maxSize: 720,\n };\n\n return function DataTable({\n columns,\n data,\n getRowId,\n children,\n title,\n description,\n toolbarQueryValue,\n onToolbarQueryValueChange,\n toolbarQueryPlaceholder,\n toolbarQueryDebounceMs,\n manualFiltering = false,\n enableToolbarQueryFiltering = true,\n globalFilterFn,\n columnFilters,\n onColumnFiltersChange,\n enableColumnFilters,\n customToolbar,\n compactToolbar,\n rowsPerPageOptions = [10, 20, 50, 100],\n totalRowCount,\n hasNextPage,\n sorting,\n onSortingChange,\n manualSorting = false,\n grouping,\n onGroupingChange,\n manualGrouping = false,\n enableGrouping = false,\n groupedColumnMode = \"reorder\",\n aggregationFns,\n pageIndex,\n pageSize,\n autoPageSize = false,\n onPageIndexChange,\n onPageSizeChange,\n pageCount,\n manualPagination = false,\n rowSelection,\n onRowSelectionChange,\n enableRowSelection = false,\n enableMultiRowSelection = true,\n enableSubRowSelection = true,\n getRowCanSelect,\n rowSelectionSelectAllScope = \"page\",\n expanded,\n onExpandedChange,\n getSubRows,\n manualExpanding = false,\n paginateExpandedRows,\n filterFromLeafRows,\n maxLeafRowFilterDepth,\n detailPanel,\n getRowCanExpand,\n renderExpandedRow,\n columnOrder,\n onColumnOrderChange,\n enableColumnReordering = false,\n columnGroupHeaderHeight,\n columnPinning,\n onColumnPinningChange,\n enableColumnPinning = false,\n rowPinning,\n onRowPinningChange,\n enableRowPinning = false,\n keepPinnedRows = true,\n toolbarActions = [],\n selectionActions = [],\n rowActions = [],\n csvExport,\n clipboard,\n enableCellSelection = false,\n cellSelection,\n defaultCellSelection,\n onCellSelectionChange,\n gridCommands,\n density,\n onDensityChange,\n enableDensityToggle = false,\n columnPrefsKey,\n persistence,\n savedViews,\n toolbarDataOperations,\n initialState,\n state: unifiedState,\n onStateChange,\n apiRef,\n labels,\n summaryRows = [],\n cardRenderer,\n cardSizing,\n cardGridClassName,\n cardClassName,\n viewMode,\n onViewModeChange,\n enableViewToggle = false,\n enablePrint = false,\n enableFullscreen = false,\n emptyState,\n stateOverlay,\n isLoading = false,\n loadingRowCount,\n getRowLoadingState,\n hiddenRows,\n showHiddenRows,\n onShowHiddenRowsChange,\n infiniteScroll,\n editableRows,\n columnVisibility,\n onColumnVisibilityChange,\n columnSizing,\n onColumnSizingChange,\n enableColumnResizing = false,\n columnResizeMode = \"onEnd\",\n layoutMode = \"fill\",\n stickyHeader = true,\n scrollbarVisibility,\n showFooter = true,\n showToolbar = true,\n dir = \"ltr\",\n flexGrow = true,\n toolbarVisibility,\n className,\n tableClassName,\n tableContainerClassName,\n stripedRows = false,\n getRowClassName,\n onRowClick,\n onActionError,\n dragAndDrop,\n fileUpload,\n virtualization,\n accessibility,\n interactiveGrid,\n }: DataTableProps) {\n const containerRef = React.useRef(null);\n const fileInputRef = React.useRef(null);\n const tableScrollContainerRef = React.useRef(null);\n const draggedColumnIdRef = React.useRef(null);\n const tableRef = React.useRef | null>(null);\n const lastSelectedRowIdRef = React.useRef(null);\n const [toolbarSavedViewsVersion, setToolbarSavedViewsVersion] =\n React.useState(0);\n const generatedTitleId = React.useId();\n const generatedDescriptionId = React.useId();\n useDataTablePerformanceDiagnostics({ columns, data, getRowId });\n React.useMemo(() => validateDataTableColumnIds(columns), [columns]);\n const resolvedLabels = React.useMemo(\n () => resolveDataTableLabels(labels),\n [labels],\n );\n const toolbarOperations =\n toolbarDataOperations === true\n ? { columnChooser: true, savedViews: true, resetLayout: true }\n : toolbarDataOperations === false\n ? {}\n : (toolbarDataOperations ?? {});\n const gridMode =\n accessibility?.mode === \"grid\" ||\n interactiveGrid === true ||\n typeof interactiveGrid === \"object\";\n const [currentCellSelection, setCurrentCellSelection] =\n useControllableState({\n defaultValue: defaultCellSelection ?? null,\n onChange: onCellSelectionChange,\n value: cellSelection,\n });\n const resolvedToolbarQueryValue =\n toolbarQueryValue ?? unifiedState?.globalFilter;\n const resolvedSorting = sorting ?? unifiedState?.sorting;\n const resolvedGrouping = grouping ?? unifiedState?.grouping;\n const resolvedPageIndex =\n pageIndex ?? unifiedState?.pagination?.pageIndex;\n const resolvedPageSize = pageSize ?? unifiedState?.pagination?.pageSize;\n const resolvedRowSelection =\n rowSelection ?? unifiedState?.rowSelection;\n const resolvedColumnVisibility =\n columnVisibility ?? unifiedState?.columnVisibility;\n const resolvedColumnFilters =\n columnFilters ?? unifiedState?.columnFilters;\n const resolvedExpanded = expanded ?? unifiedState?.expanded;\n const resolvedColumnOrder =\n columnOrder ?? unifiedState?.columnOrder;\n const resolvedColumnPinning =\n columnPinning ?? unifiedState?.columnPinning;\n const resolvedRowPinning = rowPinning ?? unifiedState?.rowPinning;\n const resolvedColumnSizing =\n columnSizing ?? unifiedState?.columnSizing;\n const resolvedDensity = density ?? unifiedState?.density;\n const resolvedViewMode = viewMode ?? unifiedState?.viewMode;\n const resolvedShowHiddenRows =\n showHiddenRows ?? unifiedState?.showHiddenRows;\n const showTableHeading =\n showToolbar && (toolbarVisibility?.title ?? true);\n const titleId = showTableHeading && title ? generatedTitleId : undefined;\n const descriptionId =\n showTableHeading && description ? generatedDescriptionId : undefined;\n useDataTableStateConflictWarnings(unifiedState, {\n columnFilters: columnFilters !== undefined,\n columnOrder: columnOrder !== undefined,\n columnPinning: columnPinning !== undefined,\n rowPinning: rowPinning !== undefined,\n columnSizing: columnSizing !== undefined,\n columnVisibility: columnVisibility !== undefined,\n density: density !== undefined,\n expanded: expanded !== undefined,\n grouping: grouping !== undefined,\n globalFilter: toolbarQueryValue !== undefined,\n pagination: pageIndex !== undefined || pageSize !== undefined,\n rowSelection: rowSelection !== undefined,\n showHiddenRows: showHiddenRows !== undefined,\n sorting: sorting !== undefined,\n viewMode: viewMode !== undefined,\n });\n const handleToolbarQueryValueChange = useDataTableStateSliceChange(\n \"globalFilter\",\n onToolbarQueryValueChange,\n onStateChange,\n );\n const handleSortingPropChange = useDataTableStateSliceChange(\n \"sorting\",\n onSortingChange,\n onStateChange,\n );\n const handleGroupingPropChange = useDataTableStateSliceChange(\n \"grouping\",\n onGroupingChange,\n onStateChange,\n );\n const handleRowSelectionPropChange = useDataTableStateSliceChange(\n \"rowSelection\",\n onRowSelectionChange,\n onStateChange,\n );\n const handleColumnVisibilityPropChange = useDataTableStateSliceChange(\n \"columnVisibility\",\n onColumnVisibilityChange,\n onStateChange,\n );\n const handleColumnFiltersPropChange = useDataTableStateSliceChange(\n \"columnFilters\",\n onColumnFiltersChange,\n onStateChange,\n );\n const handleExpandedPropChange = useDataTableStateSliceChange(\n \"expanded\",\n onExpandedChange,\n onStateChange,\n );\n const handleColumnOrderPropChange = useDataTableStateSliceChange(\n \"columnOrder\",\n onColumnOrderChange,\n onStateChange,\n );\n const handleColumnPinningPropChange = useDataTableStateSliceChange(\n \"columnPinning\",\n onColumnPinningChange,\n onStateChange,\n );\n const handleRowPinningPropChange = useDataTableStateSliceChange(\n \"rowPinning\",\n onRowPinningChange,\n onStateChange,\n );\n const handleColumnSizingPropChange = useDataTableStateSliceChange(\n \"columnSizing\",\n onColumnSizingChange,\n onStateChange,\n );\n const handleDensityPropChange = useDataTableStateSliceChange(\n \"density\",\n onDensityChange,\n onStateChange,\n );\n const handleViewModePropChange = useDataTableStateSliceChange(\n \"viewMode\",\n onViewModeChange,\n onStateChange,\n );\n const handleShowHiddenRowsPropChange = useDataTableStateSliceChange(\n \"showHiddenRows\",\n onShowHiddenRowsChange,\n onStateChange,\n );\n const handlePageIndexPropChange = React.useCallback(\n (nextPageIndex: number) => {\n onPageIndexChange?.(nextPageIndex);\n onStateChange?.((current) => ({\n ...current,\n pagination: {\n pageIndex: nextPageIndex,\n pageSize:\n resolvedPageSize ?? current.pagination.pageSize,\n },\n }));\n },\n [onPageIndexChange, onStateChange, resolvedPageSize],\n );\n const handlePageSizePropChange = React.useCallback(\n (nextPageSize: number) => {\n onPageSizeChange?.(nextPageSize);\n onStateChange?.((current) => ({\n ...current,\n pagination: {\n pageIndex:\n resolvedPageIndex ?? current.pagination.pageIndex,\n pageSize: nextPageSize,\n },\n }));\n },\n [onPageSizeChange, onStateChange, resolvedPageIndex],\n );\n const runAction = React.useCallback(\n (\n context: Omit, \"error\">,\n action: () => void | Promise,\n ) => {\n runDataTableAction(action, context, onActionError);\n },\n [onActionError],\n );\n const guardedRowActions = React.useMemo(\n () =>\n rowActions.map((action) => ({\n ...action,\n onClick: (row: TData) => {\n runAction(\n {\n actionKey: action.key,\n row,\n source: \"rowAction\",\n },\n () => action.onClick(row),\n );\n },\n })),\n [rowActions, runAction],\n );\n const guardedOnRowClick = React.useMemo<\n DataTableProps[\"onRowClick\"]\n >(\n () =>\n onRowClick\n ? (context) => {\n runAction(\n {\n row: context.row,\n source: \"rowClick\",\n },\n () => onRowClick(context),\n );\n }\n : undefined,\n [onRowClick, runAction],\n );\n const handleEditError = React.useCallback(\n (error: unknown, row: TData) => {\n onActionError?.({\n error,\n row,\n source: \"edit\",\n });\n },\n [onActionError],\n );\n const {\n containerWidth,\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentColumnVisibility,\n currentDensity,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentShowHiddenRows,\n currentSorting,\n currentViewMode,\n effectiveColumnVisibility,\n globalFilterValue,\n handleDensityChange,\n handleShowHiddenRowsChange,\n handleViewModeChange,\n localSearchValue,\n resolvedLoadingRowCount,\n resolvedToolbarQueryPlaceholder,\n selectedRowIds,\n selectedRows,\n setCurrentColumnFilters,\n setCurrentColumnOrder,\n setCurrentColumnPinning,\n setCurrentRowPinning,\n setCurrentColumnVisibility,\n setCurrentExpanded,\n setCurrentGrouping,\n setCurrentRowSelection,\n setCurrentSorting,\n setLocalColumnSizing,\n setLocalPagination,\n setLocalSearchValue,\n shouldRenderInitialLoading,\n tableData,\n tableGetRowId,\n visibleData,\n } = useDataTableState({\n columnFilters: resolvedColumnFilters,\n columnOrder: resolvedColumnOrder,\n columnPinning: resolvedColumnPinning,\n rowPinning: resolvedRowPinning,\n columnSizing: resolvedColumnSizing,\n columnPrefsKey,\n persistence,\n columnVisibility: resolvedColumnVisibility,\n columns,\n containerRef,\n data,\n density: resolvedDensity,\n enableRowSelection,\n enableToolbarQueryFiltering,\n expanded: resolvedExpanded,\n grouping: resolvedGrouping,\n getSubRows,\n getRowId,\n hiddenRows,\n isLoading,\n loadingRowCount,\n manualFiltering,\n initialState,\n onColumnFiltersChange: handleColumnFiltersPropChange,\n onColumnOrderChange: handleColumnOrderPropChange,\n onColumnPinningChange: handleColumnPinningPropChange,\n onRowPinningChange: handleRowPinningPropChange,\n onColumnSizingChange: handleColumnSizingPropChange,\n onColumnVisibilityChange: handleColumnVisibilityPropChange,\n onDensityChange: handleDensityPropChange,\n onExpandedChange: handleExpandedPropChange,\n onGroupingChange: handleGroupingPropChange,\n onPageIndexChange: handlePageIndexPropChange,\n onRowSelectionChange: handleRowSelectionPropChange,\n onShowHiddenRowsChange: handleShowHiddenRowsPropChange,\n onSortingChange: handleSortingPropChange,\n onToolbarQueryValueChange: handleToolbarQueryValueChange,\n onViewModeChange: handleViewModePropChange,\n pageIndex: resolvedPageIndex,\n pageSize: resolvedPageSize,\n resolvedLabels,\n rowSelection: resolvedRowSelection,\n rowsPerPageOptions,\n selectionActions,\n showHiddenRows: resolvedShowHiddenRows,\n sorting: resolvedSorting,\n toolbarQueryDebounceMs,\n toolbarQueryPlaceholder,\n toolbarQueryValue: resolvedToolbarQueryValue,\n viewMode: resolvedViewMode,\n });\n const usesLegacyDetailPanelState = Boolean(\n renderExpandedRow && !detailPanel && !getSubRows,\n );\n const resolvedDetailPanel =\n detailPanel ??\n (renderExpandedRow\n ? {\n getRowCanExpand: getSubRows ? undefined : getRowCanExpand,\n render: renderExpandedRow,\n }\n : undefined);\n const [currentDetailExpanded, setCurrentDetailExpanded] =\n useControllableState({\n defaultValue: () =>\n usesLegacyDetailPanelState ? (initialState?.expanded ?? {}) : {},\n onChange: usesLegacyDetailPanelState\n ? setCurrentExpanded\n : resolvedDetailPanel?.onExpandedChange,\n value: usesLegacyDetailPanelState\n ? currentExpanded\n : resolvedDetailPanel?.expanded,\n });\n const {\n cancelEditing,\n clearEditError,\n draftValues,\n editErrors,\n editingRowId,\n isEditDirty,\n isSavingEdit,\n saveEdit,\n setDraftValues,\n setEditingRowId,\n startEditingRow,\n } = useRowEditing({\n columns,\n editableRows,\n onError: handleEditError,\n });\n const rowEditingContext = React.useMemo(\n () => ({\n cancel: cancelEditing,\n cancelOnEscape: editableRows?.cancelOnEscape !== false,\n clearError: clearEditError,\n commit: (row: TData) => {\n void saveEdit(row);\n },\n commitOnEnter: editableRows?.commitOnEnter !== false,\n errors: editErrors,\n isDirty: isEditDirty,\n isPending: isSavingEdit,\n }),\n [\n cancelEditing,\n clearEditError,\n editableRows?.cancelOnEscape,\n editableRows?.commitOnEnter,\n editErrors,\n isEditDirty,\n isSavingEdit,\n saveEdit,\n ],\n );\n const { viewportElement: tableScrollElement, viewportHeight } =\n useDataTableScrollViewport(tableScrollContainerRef, currentViewMode);\n const autoPageSizeConfig =\n typeof autoPageSize === \"object\" ? autoPageSize : undefined;\n const handleAutoPageSizeChange = React.useCallback(\n (nextPageSize: number) => {\n if (nextPageSize === currentPagination.pageSize) {\n return;\n }\n if (currentPagination.pageIndex !== 0) {\n handlePageIndexPropChange(0);\n }\n handlePageSizePropChange(nextPageSize);\n if (resolvedPageSize === undefined) {\n setLocalPagination({ pageIndex: 0, pageSize: nextPageSize });\n }\n },\n [\n currentPagination.pageIndex,\n currentPagination.pageSize,\n handlePageIndexPropChange,\n handlePageSizePropChange,\n resolvedPageSize,\n setLocalPagination,\n ],\n );\n const autoPageSizeEnabled =\n autoPageSize === true || autoPageSizeConfig !== undefined;\n const print = React.useCallback(() => {\n if (typeof window === \"undefined\" || typeof window.print !== \"function\") {\n return false;\n }\n window.print();\n return true;\n }, []);\n const toggleFullscreen = React.useCallback(async () => {\n const element = containerRef.current;\n if (!element || typeof document === \"undefined\") {\n return false;\n }\n if (document.fullscreenElement) {\n if (typeof document.exitFullscreen !== \"function\") return false;\n await document.exitFullscreen();\n return true;\n }\n if (typeof element.requestFullscreen !== \"function\") return false;\n await element.requestFullscreen();\n return true;\n }, []);\n const [isFullscreen, setIsFullscreen] = React.useState(false);\n React.useEffect(() => {\n if (!enableFullscreen || typeof document === \"undefined\") return;\n const update = () => {\n setIsFullscreen(document.fullscreenElement === containerRef.current);\n };\n update();\n document.addEventListener(\"fullscreenchange\", update);\n return () => document.removeEventListener(\"fullscreenchange\", update);\n }, [enableFullscreen]);\n const openFileDialog = React.useCallback(() => {\n if (fileUpload?.disabled) {\n return;\n }\n\n fileInputRef.current?.click();\n }, [fileUpload?.disabled]);\n const handleSelectedFiles = React.useCallback(\n (files: FileList | Array) => {\n runAction(\n {\n source: \"fileUpload\",\n },\n () => fileUpload?.onFilesSelected(files),\n );\n },\n [fileUpload, runAction],\n );\n\n const includeFillSpacer = React.useMemo(() => {\n if (layoutMode !== \"fill\") {\n return false;\n }\n\n const visibleDataColumns = getDataTableLeafColumns(columns).filter(\n ({ column, index }) =>\n effectiveColumnVisibility[getColumnId(column, index)] !== false,\n );\n\n return (\n visibleDataColumns.length > 0 &&\n visibleDataColumns.every(({ column, index }) => {\n const columnId = getColumnId(column, index);\n return (\n hasFixedDataTableColumnSize(column) ||\n Object.prototype.hasOwnProperty.call(\n currentColumnSizing,\n columnId,\n )\n );\n })\n );\n }, [\n columns,\n currentColumnSizing,\n effectiveColumnVisibility,\n layoutMode,\n ]);\n const tableColumns = useDataTableColumns({\n Button,\n Checkbox,\n DataTableRowActions,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n cancelEditing,\n columns,\n editableRows,\n editErrors,\n editingRowId,\n enableRowSelection,\n enableRowPinning,\n hasTreeExpansion: Boolean(getSubRows),\n isSavingEdit,\n isEditDirty,\n includeFillSpacer,\n labels: resolvedLabels,\n lastSelectedRowIdRef,\n detailPanel: resolvedDetailPanel,\n detailExpanded: currentDetailExpanded,\n onDetailExpandedChange: setCurrentDetailExpanded,\n rowSelectionSelectAllScope,\n rowActions: guardedRowActions,\n saveEdit,\n startEditingRow,\n tableRef,\n });\n const columnGroupPaths = React.useMemo(\n () => getDataTableColumnGroupPaths(columns),\n [columns],\n );\n\n const {\n effectivePageCount,\n footerTotalRowCount,\n handleFooterPageIndexChange,\n handleFooterPageSizeChange,\n isPageCountKnown,\n renderedRows,\n topPinnedRows,\n bottomPinnedRows,\n reorderColumn,\n rowsToRender,\n sentinelRef,\n table,\n virtualPaddingBottom,\n virtualPaddingTop,\n visibleLeafColumns,\n } = useDataTableInstance({\n autoResetPageIndex: false,\n columnGroupPaths,\n columnResizeMode,\n dir,\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentSorting,\n currentViewMode,\n defaultColumn,\n effectiveColumnVisibility,\n enableColumnResizing,\n enableRowPinning,\n enableRowSelection,\n enableMultiRowSelection,\n enableSubRowSelection,\n getRowCanSelect,\n getRowCanExpand,\n getSubRows,\n aggregationFns,\n groupedColumnMode,\n globalFilterFn,\n globalFilterValue,\n hasNextPage,\n handleColumnFiltersChange: setCurrentColumnFilters,\n handleColumnOrderChange: setCurrentColumnOrder,\n handleColumnPinningChange: setCurrentColumnPinning,\n handleRowPinningChange: setCurrentRowPinning,\n handleColumnVisibilityChange: setCurrentColumnVisibility,\n handleExpandedChange: setCurrentExpanded,\n handleGroupingChange: setCurrentGrouping,\n infiniteScroll,\n keepPinnedRows,\n manualFiltering,\n manualGrouping,\n manualExpanding,\n manualPagination,\n manualSorting,\n onActionError,\n onPageIndexChange: handlePageIndexPropChange,\n onPageSizeChange: handlePageSizePropChange,\n pageCount,\n pageIndex: resolvedPageIndex,\n pageSize: resolvedPageSize,\n paginateExpandedRows,\n filterFromLeafRows,\n maxLeafRowFilterDepth,\n setCurrentRowSelection,\n setCurrentSorting,\n setLocalColumnSizing,\n setLocalPagination,\n shouldRenderInitialLoading,\n tableColumns,\n tableData,\n tableGetRowId,\n tableRef,\n tableScrollElement,\n totalRowCount,\n virtualization,\n viewportHeight,\n });\n const columnLayout = useColumnLayout({\n columns,\n columnSizing: currentColumnSizing,\n editableRows: Boolean(editableRows),\n enableRowSelection,\n hasRowActions: rowActions.length > 0,\n hasRowExpansion: Boolean(getSubRows || resolvedDetailPanel),\n layoutMode,\n uiClassNames,\n visibleLeafColumns,\n });\n const { explicitlySizedColumnIds, fillMinWidth, getColumnLayout } =\n columnLayout;\n const explicitCustomCellColumnIds = React.useMemo(() => {\n return new Set(\n getDataTableLeafColumns(columns).flatMap(({ column, index }) => {\n return Object.prototype.hasOwnProperty.call(column, \"cell\") &&\n typeof column.cell === \"function\"\n ? [getColumnId(column, index)]\n : [];\n }),\n );\n }, [columns]);\n const visibleLeafColumnCount = visibleLeafColumns.length;\n const bodyRowComponents = React.useMemo(\n () => ({\n Checkbox,\n Input,\n Skeleton,\n TableCell,\n TableRow,\n }),\n [],\n );\n const hasCardTitle = React.useMemo(\n () =>\n getDataTableLeafColumns(columns).some(\n ({ column }) => column.meta?.cardTitle,\n ),\n [columns],\n );\n const primeColumnForResize = React.useCallback(\n (columnId: string, currentSize: number) => {\n if (\n explicitlySizedColumnIds.has(columnId) ||\n Object.prototype.hasOwnProperty.call(\n table.store.state.columnSizing,\n columnId,\n )\n ) {\n return;\n }\n\n flushSync(() => {\n table.setColumnSizing((current) => ({\n ...current,\n [columnId]: currentSize,\n }));\n });\n },\n [explicitlySizedColumnIds, table],\n );\n const resetColumnSize = React.useCallback(\n (columnId: string) => {\n if (explicitlySizedColumnIds.has(columnId)) {\n table.getColumn(columnId)?.resetSize();\n return;\n }\n\n table.setColumnSizing((current) => {\n if (!Object.prototype.hasOwnProperty.call(current, columnId)) {\n return current;\n }\n\n const next = { ...current };\n delete next[columnId];\n return next;\n });\n },\n [explicitlySizedColumnIds, table],\n );\n\n const filteredData = table\n .getFilteredRowModel()\n .rows.map((row) => row.original);\n const configuredEmptyState = stateOverlay?.empty ?? emptyState;\n const emptyNode =\n typeof configuredEmptyState === \"function\"\n ? configuredEmptyState({\n rows: filteredData,\n toolbarQueryValue: localSearchValue,\n })\n : configuredEmptyState;\n const guardedStateOverlay = React.useMemo(\n () =>\n stateOverlay\n ? {\n ...stateOverlay,\n onRetry: stateOverlay.onRetry\n ? () =>\n runAction(\n { source: \"retry\" },\n stateOverlay.onRetry!,\n )\n : undefined,\n }\n : undefined,\n [runAction, stateOverlay],\n );\n const stateOverlayNode = guardedStateOverlay?.error != null ? (\n \n \n \n ) : undefined;\n const {\n columnVisibilityOptions,\n effectiveToolbarActions,\n handleClearColumnFilters,\n handleToolbarColumnFilterChange,\n handleToolbarColumnPinningChange,\n toolbarColumnFilters,\n } = useDataTableToolbarFeatures({\n columns,\n currentColumnFilters,\n currentColumnPinning,\n csvExport,\n effectiveColumnVisibility,\n enableColumnFilters,\n handleColumnFiltersChange: setCurrentColumnFilters,\n handleColumnPinningChange: setCurrentColumnPinning,\n labels: resolvedLabels,\n table,\n toolbarActions,\n visibleData,\n });\n const guardedToolbarActions = React.useMemo(\n () =>\n [\n ...effectiveToolbarActions,\n ...(enablePrint\n ? [\n {\n key: \"__print__\",\n label: resolvedLabels.print,\n placement: \"trailing\" as const,\n onClick: () => {\n print();\n },\n },\n ]\n : []),\n ...(enableFullscreen\n ? [\n {\n key: \"__fullscreen__\",\n label: isFullscreen\n ? resolvedLabels.exitFullscreen\n : resolvedLabels.enterFullscreen,\n placement: \"trailing\" as const,\n onClick: () => toggleFullscreen(),\n },\n ]\n : []),\n ].map((action) => ({\n ...action,\n onClick: (context: {\n rows: Array;\n openFileDialog?: () => void;\n }) => {\n runAction(\n {\n actionKey: action.key,\n source: \"toolbarAction\",\n },\n () => action.onClick(context),\n );\n },\n })),\n [\n effectiveToolbarActions,\n enableFullscreen,\n enablePrint,\n isFullscreen,\n print,\n resolvedLabels.enterFullscreen,\n resolvedLabels.exitFullscreen,\n resolvedLabels.print,\n runAction,\n toggleFullscreen,\n ],\n );\n const guardedSelectionActions = React.useMemo(\n () =>\n selectionActions.map((action) => ({\n ...action,\n onClick: (context: Parameters[0]) => {\n runAction(\n {\n actionKey: action.key,\n source: \"selectionAction\",\n },\n () => action.onClick(context),\n );\n },\n })),\n [runAction, selectionActions],\n );\n const currentDataTableState = React.useMemo(\n () => ({\n sorting: currentSorting,\n pagination: currentPagination,\n rowSelection: currentRowSelection,\n columnVisibility: currentColumnVisibility,\n columnFilters: currentColumnFilters,\n expanded: currentExpanded,\n grouping: currentGrouping,\n columnOrder: currentColumnOrder,\n columnPinning: currentColumnPinning,\n rowPinning: currentRowPinning,\n columnSizing: currentColumnSizing,\n density: currentDensity,\n viewMode: currentViewMode,\n showHiddenRows: currentShowHiddenRows,\n globalFilter: localSearchValue,\n }),\n [\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentColumnVisibility,\n currentDensity,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentShowHiddenRows,\n currentSorting,\n currentViewMode,\n localSearchValue,\n ],\n );\n const getCurrentState = React.useCallback(\n () => cloneDataTableState(currentDataTableState),\n [currentDataTableState],\n );\n const restoreState = React.useCallback(\n (nextState: Partial) => {\n if (nextState.sorting !== undefined) {\n table.setSorting(nextState.sorting);\n }\n if (nextState.pagination !== undefined) {\n table.setPagination(nextState.pagination);\n }\n if (nextState.rowSelection !== undefined) {\n setCurrentRowSelection(nextState.rowSelection);\n }\n if (nextState.columnVisibility !== undefined) {\n table.setColumnVisibility(nextState.columnVisibility);\n }\n if (nextState.columnFilters !== undefined) {\n table.setColumnFilters(nextState.columnFilters);\n }\n if (nextState.expanded !== undefined) {\n table.setExpanded(nextState.expanded);\n }\n if (nextState.grouping !== undefined) {\n table.setGrouping(nextState.grouping);\n }\n if (nextState.columnOrder !== undefined) {\n table.setColumnOrder(nextState.columnOrder);\n }\n if (nextState.columnPinning !== undefined) {\n setCurrentColumnPinning(nextState.columnPinning);\n }\n if (nextState.rowPinning !== undefined) {\n table.setRowPinning(nextState.rowPinning);\n }\n if (nextState.columnSizing !== undefined) {\n table.setColumnSizing(nextState.columnSizing);\n }\n if (nextState.density !== undefined) {\n handleDensityChange(nextState.density);\n }\n if (nextState.viewMode !== undefined) {\n handleViewModeChange(nextState.viewMode);\n }\n if (nextState.showHiddenRows !== undefined) {\n handleShowHiddenRowsChange(nextState.showHiddenRows);\n }\n if (nextState.globalFilter !== undefined) {\n setLocalSearchValue(nextState.globalFilter);\n }\n },\n [\n handleDensityChange,\n handleShowHiddenRowsChange,\n handleViewModeChange,\n setLocalSearchValue,\n setCurrentColumnPinning,\n setCurrentRowSelection,\n table,\n ],\n );\n const clearPersistedState = React.useCallback(\n () => clearDataTableColumnPrefs(persistence ?? columnPrefsKey),\n [columnPrefsKey, persistence],\n );\n const resetColumnLayout = React.useCallback<\n DataTableApi[\"resetColumnLayout\"]\n >(\n (options) => {\n if (options?.clearPersistence) {\n clearPersistedState();\n }\n restoreState({\n columnVisibility: initialState?.columnVisibility ?? {},\n columnOrder: initialState?.columnOrder ?? [],\n columnPinning:\n initialState?.columnPinning ?? getInitialColumnPinning(columns),\n rowPinning: initialState?.rowPinning ?? { top: [], bottom: [] },\n columnSizing: initialState?.columnSizing ?? {},\n });\n },\n [\n clearPersistedState,\n columns,\n initialState,\n restoreState,\n ],\n );\n const resetState = React.useCallback[\"resetState\"]>(\n (options) => {\n if (options?.clearPersistence) {\n clearPersistedState();\n }\n restoreState({\n sorting: initialState?.sorting ?? [],\n pagination: initialState?.pagination ?? {\n pageIndex: 0,\n pageSize: rowsPerPageOptions[0] ?? 20,\n },\n rowSelection: initialState?.rowSelection ?? {},\n columnVisibility: initialState?.columnVisibility ?? {},\n columnFilters: initialState?.columnFilters ?? [],\n expanded: initialState?.expanded ?? {},\n grouping: initialState?.grouping ?? [],\n columnOrder: initialState?.columnOrder ?? [],\n columnPinning:\n initialState?.columnPinning ?? getInitialColumnPinning(columns),\n rowPinning: initialState?.rowPinning ?? { top: [], bottom: [] },\n columnSizing: initialState?.columnSizing ?? {},\n density: initialState?.density ?? \"comfortable\",\n viewMode: initialState?.viewMode ?? \"table\",\n showHiddenRows: initialState?.showHiddenRows ?? false,\n globalFilter: initialState?.globalFilter ?? \"\",\n });\n },\n [\n clearPersistedState,\n columns,\n initialState,\n restoreState,\n rowsPerPageOptions,\n ],\n );\n const getSavedViews = React.useCallback(\n () => readDataTableSavedViews(savedViews),\n [savedViews],\n );\n const createSavedView = React.useCallback<\n DataTableApi[\"createSavedView\"]\n >(\n (name) =>\n createDataTableSavedView(savedViews, name, getCurrentState()),\n [getCurrentState, savedViews],\n );\n const applySavedView = React.useCallback<\n DataTableApi[\"applySavedView\"]\n >(\n (id) => {\n const view = readDataTableSavedViews(savedViews).find(\n (candidate) => candidate.id === id,\n );\n if (!view) {\n return false;\n }\n restoreState(view.state);\n savedViews?.onApply?.(view);\n return true;\n },\n [restoreState, savedViews],\n );\n const renameSavedView = React.useCallback<\n DataTableApi[\"renameSavedView\"]\n >(\n (id, name) => renameDataTableSavedView(savedViews, id, name),\n [savedViews],\n );\n const deleteSavedView = React.useCallback<\n DataTableApi[\"deleteSavedView\"]\n >(\n (id) => deleteDataTableSavedView(savedViews, id),\n [savedViews],\n );\n const clearSavedViews = React.useCallback(\n () => clearDataTableSavedViews(savedViews),\n [savedViews],\n );\n const toolbarSavedViews = React.useMemo(() => {\n void toolbarSavedViewsVersion;\n return readDataTableSavedViews(savedViews);\n }, [savedViews, toolbarSavedViewsVersion]);\n const handleToolbarCreateSavedView = React.useCallback(\n (name: string) => {\n const view = createSavedView(name);\n if (view) {\n setToolbarSavedViewsVersion((current) => current + 1);\n }\n return view;\n },\n [createSavedView],\n );\n const handleToolbarRenameSavedView = React.useCallback(\n (id: string, name: string) => {\n const view = renameSavedView(id, name);\n if (view) {\n setToolbarSavedViewsVersion((current) => current + 1);\n }\n return view;\n },\n [renameSavedView],\n );\n const handleToolbarDeleteSavedView = React.useCallback(\n (id: string) => {\n const deleted = deleteSavedView(id);\n if (deleted) {\n setToolbarSavedViewsVersion((current) => current + 1);\n }\n return deleted;\n },\n [deleteSavedView],\n );\n const exportCsvFromApi = React.useCallback<\n DataTableApi[\"exportCsv\"]\n >(\n (options) =>\n exportDataTableCsv({\n csvExport: options ?? (csvExport || true),\n labels: resolvedLabels,\n table,\n }),\n [csvExport, resolvedLabels, table],\n );\n const copyToClipboard = React.useCallback<\n DataTableApi[\"copyToClipboard\"]\n >(\n async (options) => {\n const { copyDataTableToClipboard } = await import(\n \"./data-table-clipboard\"\n );\n return copyDataTableToClipboard({\n clipboard:\n options ??\n (clipboard?.copy === false\n ? false\n : currentCellSelection\n ? {\n ...(clipboard?.copy === true ? {} : clipboard?.copy),\n scope: \"cellSelection\",\n }\n : clipboard?.copy ?? true),\n cellSelection: currentCellSelection,\n table,\n });\n },\n [clipboard?.copy, currentCellSelection, table],\n );\n const pinRow = React.useCallback[\"pinRow\"]>(\n (rowId, position = \"top\") => {\n try {\n const row = table.getRow(rowId, true);\n if (!row.getCanPin()) {\n return false;\n }\n row.pin(position);\n return true;\n } catch {\n return false;\n }\n },\n [table],\n );\n const unpinRow = React.useCallback[\"unpinRow\"]>(\n (rowId) => {\n try {\n const row = table.getRow(rowId, true);\n if (!row.getCanPin()) {\n return false;\n }\n row.pin(false);\n return true;\n } catch {\n return false;\n }\n },\n [table],\n );\n React.useImperativeHandle(\n apiRef,\n () => ({\n getTable: () => tableRef.current,\n getState: getCurrentState,\n snapshot: getCurrentState,\n restore: restoreState,\n resetColumnLayout,\n resetState,\n clearPersistedState,\n getSavedViews,\n createSavedView,\n applySavedView,\n renameSavedView,\n deleteSavedView,\n clearSavedViews,\n pinRow,\n unpinRow,\n focus: () => {\n containerRef.current?.focus();\n },\n scrollToRow: (rowId) =>\n scrollDataTableElementIntoView(containerRef.current, \"row\", rowId),\n scrollToColumn: (columnId) =>\n scrollDataTableElementIntoView(\n containerRef.current,\n \"column\",\n columnId,\n ),\n exportCsv: exportCsvFromApi,\n copyToClipboard,\n getCellSelection: () => currentCellSelection,\n setCellSelection: setCurrentCellSelection,\n clearCellSelection: () => setCurrentCellSelection(null),\n print,\n toggleFullscreen,\n }),\n [\n applySavedView,\n clearPersistedState,\n clearSavedViews,\n copyToClipboard,\n currentCellSelection,\n createSavedView,\n deleteSavedView,\n exportCsvFromApi,\n getSavedViews,\n getCurrentState,\n renameSavedView,\n resetColumnLayout,\n resetState,\n restoreState,\n pinRow,\n print,\n setCurrentCellSelection,\n unpinRow,\n toggleFullscreen,\n ],\n );\n\n return (\n \n {\n if (\n gridMode &&\n gridCommands &&\n (event.ctrlKey || event.metaKey) &&\n event.key.toLowerCase() === \"z\" &&\n !isDataTableEditableClipboardTarget(event.target)\n ) {\n const command = event.shiftKey ? gridCommands.redo : gridCommands.undo;\n if (command) {\n event.preventDefault();\n runAction(\n { source: event.shiftKey ? \"redo\" : \"undo\" },\n () => command({ cellSelection: currentCellSelection, table }),\n );\n }\n return;\n }\n if (\n !clipboard?.copy ||\n !(event.ctrlKey || event.metaKey) ||\n event.key.toLowerCase() !== \"c\" ||\n isDataTableEditableClipboardTarget(event.target)\n ) {\n return;\n }\n event.preventDefault();\n runAction(\n { source: \"clipboardCopy\" },\n async () => {\n await copyToClipboard(\n clipboard.copy === true\n ? undefined\n : currentCellSelection &&\n typeof clipboard.copy === \"object\" &&\n !clipboard.copy.scope\n ? { ...clipboard.copy, scope: \"cellSelection\" }\n : clipboard.copy,\n );\n },\n );\n }}\n onPaste={(event) => {\n const paste = clipboard?.paste;\n if (\n !paste ||\n paste.enabled === false ||\n isDataTableEditableClipboardTarget(event.target)\n ) {\n return;\n }\n const text = event.clipboardData.getData(\"text/plain\");\n if (!text) {\n return;\n }\n if (paste.preventDefault ?? true) {\n event.preventDefault();\n }\n runAction(\n { source: \"clipboardPaste\" },\n async () => {\n const { parseDataTableClipboardText } = await import(\n \"./data-table-clipboard\"\n );\n return paste.onPaste({\n table,\n text,\n values: parseDataTableClipboardText(text),\n });\n },\n );\n }}\n >\n {autoPageSizeEnabled ? (\n \n \n \n ) : null}\n {fileUpload ? (\n {\n const files = event.currentTarget.files;\n if (files?.length) {\n handleSelectedFiles(files);\n }\n event.currentTarget.value = \"\";\n }}\n />\n ) : null}\n \n \n {showToolbar ? (\n \n ) : null}\n\n \n {currentViewMode === \"card\" && cardRenderer ? (\n \n ) : (\n \n )}\n \n \n {children}\n \n \n \n \n \n );\n };\n}\n\nfunction runDataTableAction(\n action: () => void | Promise,\n context: Omit, \"error\">,\n onActionError: DataTableProps[\"onActionError\"],\n) {\n let result: void | Promise;\n try {\n result = action();\n } catch (error) {\n onActionError?.({ ...context, error });\n return;\n }\n\n void Promise.resolve(result).catch((error: unknown) => {\n onActionError?.({ ...context, error });\n });\n}\n\nfunction useDataTableStateSliceChange(\n key: K,\n onLegacyChange:\n | ((value: Exclude) => void)\n | undefined,\n onStateChange: DataTableProps[\"onStateChange\"],\n) {\n const handleChange = React.useCallback(\n (value: Exclude) => {\n onLegacyChange?.(value);\n onStateChange?.((current) => ({\n ...current,\n [key]: value,\n }));\n },\n [key, onLegacyChange, onStateChange],\n );\n\n return onLegacyChange || onStateChange ? handleChange : undefined;\n}\n\nfunction useDataTableStateConflictWarnings(\n state: Partial | undefined,\n legacySlices: Record,\n) {\n const warnedSlicesRef = React.useRef(new Set());\n\n React.useEffect(() => {\n if (!state || !isDevelopmentEnvironment()) {\n return;\n }\n\n for (const key of Object.keys(legacySlices) as Array<\n keyof DataTableState\n >) {\n if (\n state[key] === undefined ||\n !legacySlices[key] ||\n warnedSlicesRef.current.has(key)\n ) {\n continue;\n }\n\n warnedSlicesRef.current.add(key);\n console.warn(\n `[data-table-pro] Both state.${key} and its legacy controlled prop were provided. The legacy prop takes precedence during the 4.x compatibility window.`,\n );\n }\n }, [legacySlices, state]);\n}\n\nfunction isDevelopmentEnvironment() {\n const nodeEnvironment = (\n globalThis as {\n process?: { env?: { NODE_ENV?: string } };\n }\n ).process?.env?.NODE_ENV;\n\n return nodeEnvironment !== \"production\";\n}\n\nfunction cloneDataTableState(state: DataTableState): DataTableState {\n return {\n sorting: state.sorting.map((item) => ({ ...item })),\n pagination: { ...state.pagination },\n rowSelection: { ...state.rowSelection },\n columnVisibility: { ...state.columnVisibility },\n columnFilters: state.columnFilters.map((item) => ({ ...item })),\n expanded:\n typeof state.expanded === \"boolean\"\n ? state.expanded\n : { ...state.expanded },\n grouping: [...(state.grouping ?? [])],\n columnOrder: [...state.columnOrder],\n columnPinning: {\n left: state.columnPinning.left\n ? [...state.columnPinning.left]\n : undefined,\n right: state.columnPinning.right\n ? [...state.columnPinning.right]\n : undefined,\n },\n rowPinning: {\n top: [...state.rowPinning.top],\n bottom: [...state.rowPinning.bottom],\n },\n columnSizing: { ...state.columnSizing },\n density: state.density,\n viewMode: state.viewMode,\n showHiddenRows: state.showHiddenRows,\n globalFilter: state.globalFilter,\n };\n}\n\nfunction scrollDataTableElementIntoView(\n container: HTMLDivElement | null,\n kind: \"row\" | \"column\",\n value: string,\n) {\n if (!container) {\n return false;\n }\n\n const attribute = kind === \"row\" ? \"data-row-id\" : \"data-column-id\";\n const element = Array.from(\n container.querySelectorAll(`[${attribute}]`),\n ).find((candidate) => candidate.getAttribute(attribute) === value);\n if (!element) {\n return false;\n }\n\n element.scrollIntoView?.({ block: \"nearest\", inline: \"nearest\" });\n return true;\n}\n\nfunction isDataTableEditableClipboardTarget(target: EventTarget | null) {\n if (!(target instanceof HTMLElement)) {\n return false;\n }\n return (\n target.isContentEditable ||\n target instanceof HTMLInputElement ||\n target instanceof HTMLTextAreaElement ||\n target instanceof HTMLSelectElement\n );\n}\n"]} \ No newline at end of file diff --git a/dist/chunk-BUT7FBKJ.js b/dist/chunk-BUT7FBKJ.js deleted file mode 100644 index 7d5d781..0000000 --- a/dist/chunk-BUT7FBKJ.js +++ /dev/null @@ -1,2 +0,0 @@ -import {a as a$1}from'./chunk-LTEXTQ2M.js';import {a}from'./chunk-I4PTUZ5K.js';import {j}from'./chunk-NL6LSUVL.js';function b(r){return j(r,{CardPanel:a$1,TablePanel:a})}export{b as a};//# sourceMappingURL=chunk-BUT7FBKJ.js.map -//# sourceMappingURL=chunk-BUT7FBKJ.js.map \ No newline at end of file diff --git a/dist/chunk-I5D5NFSR.js b/dist/chunk-I5D5NFSR.js new file mode 100644 index 0000000..8539adf --- /dev/null +++ b/dist/chunk-I5D5NFSR.js @@ -0,0 +1,2 @@ +import {a as a$1}from'./chunk-LTEXTQ2M.js';import {a}from'./chunk-I4PTUZ5K.js';import {j}from'./chunk-3PL4XDZI.js';function b(r){return j(r,{CardPanel:a$1,TablePanel:a})}export{b as a};//# sourceMappingURL=chunk-I5D5NFSR.js.map +//# sourceMappingURL=chunk-I5D5NFSR.js.map \ No newline at end of file diff --git a/dist/chunk-BUT7FBKJ.js.map b/dist/chunk-I5D5NFSR.js.map similarity index 92% rename from dist/chunk-BUT7FBKJ.js.map rename to dist/chunk-I5D5NFSR.js.map index cd2945e..38629f5 100644 --- a/dist/chunk-BUT7FBKJ.js.map +++ b/dist/chunk-I5D5NFSR.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/core/data-table/create-virtual-data-table.ts"],"names":["createVirtualDataTable","ui","createDataTableWithPanels","DataTableVirtualCardPanel","DataTableVirtualTablePanel"],"mappings":"mHAKO,SAASA,CAAAA,CAAuBC,CAAAA,CAAoB,CACzD,OAAOC,CAAAA,CAA0BD,CAAAA,CAAI,CACnC,SAAA,CAAWE,GAAAA,CACX,UAAA,CAAYC,CACd,CAAC,CACH","file":"chunk-BUT7FBKJ.js","sourcesContent":["import type { DataTableUiKit } from \"../ui-kit\";\nimport { createDataTableWithPanels } from \"./create-data-table\";\nimport { DataTableVirtualCardPanel } from \"./data-table-virtual-card-panel\";\nimport { DataTableVirtualTablePanel } from \"./data-table-virtual-table-panel\";\n\nexport function createVirtualDataTable(ui: DataTableUiKit) {\n return createDataTableWithPanels(ui, {\n CardPanel: DataTableVirtualCardPanel,\n TablePanel: DataTableVirtualTablePanel,\n });\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/core/data-table/create-virtual-data-table.ts"],"names":["createVirtualDataTable","ui","createDataTableWithPanels","DataTableVirtualCardPanel","DataTableVirtualTablePanel"],"mappings":"mHAKO,SAASA,CAAAA,CAAuBC,CAAAA,CAAoB,CACzD,OAAOC,CAAAA,CAA0BD,CAAAA,CAAI,CACnC,SAAA,CAAWE,GAAAA,CACX,UAAA,CAAYC,CACd,CAAC,CACH","file":"chunk-I5D5NFSR.js","sourcesContent":["import type { DataTableUiKit } from \"../ui-kit\";\nimport { createDataTableWithPanels } from \"./create-data-table\";\nimport { DataTableVirtualCardPanel } from \"./data-table-virtual-card-panel\";\nimport { DataTableVirtualTablePanel } from \"./data-table-virtual-table-panel\";\n\nexport function createVirtualDataTable(ui: DataTableUiKit) {\n return createDataTableWithPanels(ui, {\n CardPanel: DataTableVirtualCardPanel,\n TablePanel: DataTableVirtualTablePanel,\n });\n}\n"]} \ No newline at end of file diff --git a/dist/chunk-NL6LSUVL.js b/dist/chunk-NL6LSUVL.js deleted file mode 100644 index 00d2495..0000000 --- a/dist/chunk-NL6LSUVL.js +++ /dev/null @@ -1,2 +0,0 @@ -import {a as a$4}from'./chunk-EJHT5JBZ.js';import {a as a$3,e as e$1}from'./chunk-WXLQM3ND.js';import {d,a as a$1,b,i,l,t,y,k,C,s,c as c$1,e,g,f,h,w,x,u,j,q,p,z,v,D,m as m$1,o}from'./chunk-Y7ZWZH7K.js';import {c,p as p$1,u as u$1,k as k$1,m,s as s$1,a as a$5,r,q as q$1,l as l$1,j as j$1}from'./chunk-CVR2ZXHQ.js';import {a,i as i$1,b as b$1,d as d$1,e as e$2,c as c$2}from'./chunk-7IWMFF7E.js';import {a as a$2}from'./chunk-XTVBESM5.js';import*as T from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {tableFeatures,sortFns,filterFns,aggregationFns,rowSortingFeature,rowSelectionFeature,rowPinningFeature,rowPaginationFeature,rowExpandingFeature,columnVisibilityFeature,columnResizingFeature,columnSizingFeature,columnPinningFeature,columnOrderingFeature,columnGroupingFeature,rowAggregationFeature,globalFilteringFeature,columnFilteringFeature,columnFacetingFeature,createSortedRowModel,createPaginatedRowModel,createGroupedRowModel,createFilteredRowModel,createFacetedUniqueValues,createFacetedRowModel,createFacetedMinMaxValues,createExpandedRowModel,useTable}from'@tanstack/react-table';import {flushSync}from'react-dom';function Hn({cardClassName:e,cardGridClassName:a,cardSizing:t,cardRenderer:o,currentRowSelection:l,currentDetailExpanded:s,DataTableCardView:d,DataTableEmptyState:m,dragAndDrop:p,editableRows:C,editingRowId:F,emptyNode:S,enableRowSelection:L,flexGrow:k,getRowClassName:O,hasCardTitle:j,infiniteScroll:W,localSearchValue:V,onRowClick:u,renderedRows:i,detailPanel:w,resolvedLabels:b,resolvedLoadingRowCount:D,rowActions:M=[],ScrollArea:y,scrollbarVisibility:K,sentinelRef:Y,setCurrentDetailExpanded:G,setCurrentRowSelection:_,setEditingRowId:R,shouldRenderInitialLoading:g,stateOverlayNode:v,tableContainerClassName:P,uiClassNames:A}){let Q=g||i.length>0,x=T.useRef(null),q=($,E)=>jsx(d,{rows:$,cardRenderer:o,cardGridClassName:a,cardClassName:e,cardSizing:t,rowActions:M,editableRows:C,detailPanel:w,detailExpanded:s,onDetailExpandedChange:G,hasCardTitle:j,rowSelection:l,onRowSelectionChange:_,enableRowSelection:L,editingRowId:F,onEditingRowIdChange:R,getRowClassName:O,onRowClick:u,getRowDraggable:p?.getRowDraggable,onRowDragStart:p?.onRowDragStart,onRowDragEnd:p?.onRowDragEnd,isLoading:E?.isLoading,loadingRowCount:E?.loadingRowCount,labels:b});return jsxs("div",{ref:x,"data-dtp-slot":"data-table-card-shell",className:a$2("relative box-border border-2 border-transparent transition-colors",k?"flex min-h-0 flex-1 flex-col":"h-full",p?.isDragging&&(A.dragActive??"rounded-md border-dashed")),children:[jsx(y,{type:K,className:a$2(k?"min-h-0 flex-1":"h-full",A.cardScrollArea,P),children:jsxs("div",{"data-dtp-slot":"data-table-card-viewport",className:a$2("flex min-h-full min-w-0 flex-col",k&&"min-h-0 flex-1",A.cardViewport),children:[Q?g?q([],{isLoading:true,loadingRowCount:D}):q(i):jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center p-4",children:S??jsx(m,{title:V?b.noMatchingRowsTitle:b.noRowsTitle,description:V?b.noMatchingRowsDescription:b.noRowsDescription})}),W?.enabled&&!g?jsx("div",{className:"shrink-0 px-4 pb-4",children:jsx("div",{ref:Y,className:"h-4 w-full"})}):null]})}),v]})}var us=T.lazy(async()=>({default:(await import('./data-table-virtual-card-panel-Z3BPBPG4.js')).DataTableVirtualCardPanel}));function yi(e){let a=typeof e.virtualization=="object"?e.virtualization.card:void 0;return a?.enabled!==true?jsx(Hn,{...e}):jsx(T.Suspense,{fallback:jsx(Hn,{...e,renderedRows:e.renderedRows.slice(0,Math.max(1,Math.floor(a.fallbackCardCount??12)))}),children:jsx(us,{...e})})}function hi({children:e,currentPagination:a,DataTableFooter:t,effectivePageCount:o,footerTotalRowCount:l,handleFooterPageIndexChange:s,handleFooterPageSizeChange:d,labels:m,pageCountKnown:p=true,rowsPerPageOptions:C,showFooter:F}){return !F&&!e?null:jsxs("div",{"data-dtp-slot":"data-table-footer",className:"shrink-0",children:[F?jsx(t,{pageIndex:a.pageIndex,pageCount:o,pageCountKnown:p,pageSize:a.pageSize,totalRowCount:l,rowsPerPageOptions:C,onPageIndexChange:s,onPageSizeChange:d,labels:m}):null,e]})}function Si({allRows:e,columnFilters:a,columnVisibilityOptions:t,compactToolbar:o,customToolbar:l,DataTableToolbar:s,description:d,descriptionId:m,effectiveToolbarActions:p,enableColumnPinning:C,enableGrouping:F,enableToolbarColumnChooser:S,enableToolbarFilterChips:L,enableToolbarResetLayout:k,enableToolbarSavedViews:O,enableDensityToggle:j,enableViewToggle:W,hiddenRowsLabel:V,labels:u,onClearColumnFilters:i,onColumnFilterChange:w,onColumnPinningChange:b,onDensityChange:D,onShowHiddenRowsChange:M,onToolbarQueryValueChange:y,reorderColumn:K,onResetColumnLayout:Y,onCreateSavedView:G,onApplySavedView:_,onRenameSavedView:R,onDeleteSavedView:g,onViewModeChange:v,openFileDialog:P,selectedRowIds:A,selectedRows:Q,selectionActions:x,savedViews:q,showHiddenRows:$,table:E,title:Z,titleId:re,toolbarQueryPlaceholder:Re,toolbarQueryValue:Se,toolbarVisibility:ke,density:Ee,viewMode:Ce}){return jsx("div",{"data-dtp-slot":"data-table-toolbar",className:"shrink-0",children:jsx(s,{title:Z,titleId:re,description:d,descriptionId:m,toolbarQueryValue:Se,toolbarQueryPlaceholder:Re,onToolbarQueryValueChange:y,reorderColumn:K,customToolbar:l,compactToolbar:o,viewMode:Ce,onViewModeChange:v,enableViewToggle:W,toolbarActions:p,selectionActions:x,selectedRowIds:A,selectedRows:Q,showHiddenRows:$,hiddenRowsLabel:V,onShowHiddenRowsChange:M,allRows:e,columnVisibilityOptions:t,onColumnVisibilityChange:(Ae,Ge)=>{E.getColumn(Ae)?.toggleVisibility(Ge);},enableColumnPinning:C,enableGrouping:F,enableToolbarColumnChooser:S,enableToolbarFilterChips:L,enableToolbarResetLayout:k,enableToolbarSavedViews:O,onColumnPinningChange:b,columnFilters:a,onColumnFilterChange:w,onClearColumnFilters:i,onResetColumnLayout:Y,onCreateSavedView:G,onApplySavedView:_,onRenameSavedView:R,onDeleteSavedView:g,density:Ee,onDensityChange:D,enableDensityToggle:j,labels:u,toolbarVisibility:ke,openFileDialog:P,savedViews:q,table:E})})}var ie={searchPlaceholder:"Search rows...",searchTable:"Search table",clearSearch:"Clear search",noRowsTitle:"No rows yet",noRowsDescription:"Create a record or refresh this view once data exists.",noMatchingRowsTitle:"No matching rows",noMatchingRowsDescription:"Try a different search term or clear filters.",tableOptions:"Show table options",columns:"Columns",filters:"Filters",clearFilters:"Clear filters",filterFrom:"From",filterTo:"To",filterTrue:"Yes",filterFalse:"No",selectedRows:e=>`${e} record${e===1?"":"s"} selected`,showHiddenRows:e=>`Show ${e}`,recordsPerPage:"Records per page",totalRecords:e=>`Total records: ${e}`,pageStatus:(e,a)=>`Page ${e+1} of ${a}`,pageStatusUnknown:e=>`Page ${e+1}`,pagination:"Pagination",morePages:"More pages",firstPage:"First page",previousPage:"Previous page",nextPage:"Next page",lastPage:"Last page",selectAllVisibleRows:"Select all visible rows",selectAllFilteredRows:"Select all filtered rows",selectRow:"Select row",selectCardRow:e=>`Select row ${e}`,switchToTableView:"Switch to table view",switchToCardView:"Switch to card view",tableView:"Table view",cardView:"Card view",allFilterOptions:"All",actions:"Actions",rowActions:"Row actions",editRow:"Edit row",saveEdit:"Save",cancelEdit:"Cancel editing",expandRow:"Expand row",collapseRow:"Collapse row",expandRowDetails:"Expand row details",collapseRowDetails:"Collapse row details",exportCsv:"Export CSV",print:"Print table",enterFullscreen:"Enter fullscreen",exitFullscreen:"Exit fullscreen",errorTitle:"Unable to load this table",errorDescription:"Try again or check your connection.",retry:"Retry",density:"Density",compactDensity:"Compact",comfortableDensity:"Comfortable",spaciousDensity:"Spacious",pinLeft:"Pin left",pinRight:"Pin right",unpin:"Unpin",pinRowToTop:"Pin row to top",pinRowToBottom:"Pin row to bottom",unpinRow:"Unpin row",resizeColumn:e=>`Resize ${e}`,grouping:"Grouping",groupBy:e=>`Group by ${e}`,ungroup:e=>`Ungroup ${e}`,removeGrouping:e=>`Remove ${e} grouping`,moveGroupingEarlier:e=>`Move ${e} grouping earlier`,moveGroupingLater:e=>`Move ${e} grouping later`,facetSearch:e=>`Search ${e} options`,searchColumns:"Search columns",showAllColumns:"Show all columns",hideAllColumns:"Hide all columns",moveColumnEarlier:e=>`Move ${e} earlier`,moveColumnLater:e=>`Move ${e} later`,resetColumnLayout:"Reset column layout",savedViews:"Saved views",createSavedView:"Create saved view",savedViewName:"View name",applySavedView:e=>`Apply saved view ${e}`,renameSavedView:e=>`Rename saved view ${e}`,deleteSavedView:e=>`Delete saved view ${e}`,saveSavedView:"Save view"};function vi(e){return {...ie,...e}}function Pi({Button:e,Checkbox:a,DataTableRowActions:t,Tooltip:o,TooltipContent:l,TooltipTrigger:s,cancelEditing:d$1,columns:m,editableRows:p,editingRowId:C,editErrors:F,enableRowSelection:S,enableRowPinning:L,hasTreeExpansion:k,isSavingEdit:O,isEditDirty:j,includeFillSpacer:W=false,labels:V,lastSelectedRowIdRef:u,detailPanel:i$1,detailExpanded:w,onDetailExpandedChange:b$1,rowSelectionSelectAllScope:D,rowActions:M,saveEdit:y,startEditingRow:K,tableRef:Y}){let G=T.useCallback((_,R)=>{let g=Y.current;if(!g||!u.current)return;let v=g.getRowModel().rows.filter(q=>!d(q.original)),P=v.findIndex(q=>q.id===u.current),A=v.findIndex(q=>q.id===_);if(P<0||A<0)return;let Q=Math.min(P,A),x=Math.max(P,A);g.setRowSelection(q=>{let $={...q};for(let E of v.slice(Q,x+1).filter(Z=>Z.getCanSelect()&&Z.getCanMultiSelect()))R?$[E.id]=true:delete $[E.id];return $});},[u,Y]);return T.useMemo(()=>{let _=[];if(k||i$1){let R=k&&i$1?80:a$1;_.push({id:"__expand__",enableResizing:false,enableSorting:false,enableHiding:false,size:R,minSize:R,maxSize:R,header:()=>jsx("span",{className:"sr-only",children:V.expandRow}),cell:({row:g,table:v})=>{let P=k&&g.getCanExpand(),A=!!(i$1&&(i$1.getRowCanExpand?.(g.original)??true));if(!P&&!A)return null;let Q=g.getIsExpanded(),x=w===true||!!w[g.id];return jsxs("div",{className:"flex items-center justify-center gap-1",children:[P?jsx(e,{type:"button",variant:"ghost",size:"icon-sm","aria-label":Q?V.collapseRow:V.expandRow,"aria-expanded":Q,"data-tree-toggle":"true",onClick:()=>g.toggleExpanded(),children:jsx(c,{className:a$2("transition-transform",Q?"rotate-0":"-rotate-90")})}):null,A?jsx(e,{type:"button",variant:"ghost",size:"icon-sm","aria-label":x?k?V.collapseRowDetails??ie.collapseRowDetails:V.collapseRow:k?V.expandRowDetails??ie.expandRowDetails:V.expandRow,"aria-expanded":x,"data-detail-toggle":"true",onClick:()=>{b$1(q=>b(q,g.id,v.getCoreRowModel().flatRows.map($=>$.id)));},children:jsx(c,{className:a$2("transition-transform",x?"rotate-0":"-rotate-90")})}):null]})}});}return S&&_.push({id:"__select__",enableResizing:false,enableSorting:false,enableHiding:false,size:a$1,minSize:a$1,maxSize:a$1,header:({table:R})=>{let g=D==="filtered",v=(g?R.getFilteredRowModel().flatRows:R.getRowModel().flatRows).filter(x=>x.getCanSelect()&&x.getCanMultiSelect()),P=v.length>0&&v.every(x=>x.getIsSelected()),A=v.some(x=>x.getIsSelected()),Q=g?V.selectAllFilteredRows??ie.selectAllFilteredRows:V.selectAllVisibleRows??ie.selectAllVisibleRows;return v.length===0?jsx("span",{className:"sr-only",children:Q}):jsx("div",{className:"flex items-center justify-center",children:jsx(a,{className:"my-0.5",checked:P?true:A?"indeterminate":false,onCheckedChange:x=>{R.setRowSelection(q=>{let $={...q};for(let E of v)x===true?$[E.id]=true:delete $[E.id];return $});},"aria-label":Q})})},cell:({row:R})=>jsx("div",{className:"flex items-center justify-center",children:jsx(a,{className:"my-0.5",checked:R.getIsSelected(),disabled:!R.getCanSelect(),onClick:g=>{if(!g.shiftKey||!u.current||!R.getCanMultiSelect()){u.current=R.id;return}g.preventDefault(),g.stopPropagation(),G(R.id,!R.getIsSelected()),u.current=R.id;},onCheckedChange:g=>{u.current=R.id,R.toggleSelected(g===true);},"aria-label":V.selectRow??ie.selectRow})})}),_.push(...m.map(R=>i(R))),W&&_.push({id:"__spacer__",cell:()=>null,header:()=>null,enableColumnFilter:false,enableGlobalFilter:false,enableGrouping:false,enableHiding:false,enablePinning:false,enableResizing:false,enableSorting:false,minSize:0,size:0}),(M.length||p||L)&&_.push({id:"__actions__",enableSorting:false,enableResizing:false,enableHiding:false,size:a$1,minSize:a$1,maxSize:a$1,header:()=>jsx("span",{className:"sr-only",children:V.actions}),cell:({row:R})=>{let g=R.id;return C===g?jsxs("div",{className:"flex w-full items-center justify-end gap-2",children:[F._row?jsx("span",{className:"sr-only",role:"alert",children:F._row}):null,jsx(e,{type:"button",size:"sm",disabled:O||!j,onClick:()=>{y(R.original);},children:V.saveEdit}),jsxs(o,{children:[jsx(s,{asChild:true,children:jsxs(e,{type:"button",size:"icon-sm",variant:"ghost",onClick:d$1,children:[jsx(c,{className:"rotate-45"}),jsx("span",{className:"sr-only",children:V.cancelEdit})]})}),jsx(l,{children:V.cancelEdit})]})]}):jsx("div",{className:"flex w-full items-center justify-center",children:jsx(t,{row:R.original,rowActions:M,editableRows:p,isEditing:false,onStartEditing:()=>{K(R.original,R.id);},onCancelEditing:()=>{},labels:V,rowPinning:L?{canPin:R.getCanPin(),position:R.getIsPinned(),pin:P=>R.pin(P)}:void 0})})}}),_},[e,a,t,o,l,s,d$1,m,p,w,i$1,F,C,S,L,k,W,O,j,V,u,b$1,D,M,y,G,K])}function xe({defaultValue:e,onChange:a,value:t}){let[o,l]=T.useState(e),s=t??o,d=T.useRef(s);T.useEffect(()=>{d.current=s;},[s]);let m=T.useCallback(p=>{let C=typeof p=="function"?p(d.current):p;d.current=C,a?.(C),t===void 0&&l(C);},[a,t]);return [s,m]}function xi({enabled:e,hasMore:a,isLoadingMore:t,onLoadMore:o,onError:l}){let s=T.useRef(null),d=T.useRef(false),m=T.useEffectEvent(o),p=T.useEffectEvent(C=>{l?.(C);});return T.useEffect(()=>{if(!e||!a||t)return;let C=s.current;if(!C)return;let F=new IntersectionObserver(S=>{if(S[0].isIntersecting&&!d.current){d.current=true;let k;try{k=m();}catch(O){d.current=false,p(O);return}Promise.resolve(k).catch(O=>{p(O);}).finally(()=>{d.current=false;});}},{rootMargin:"200px 0px 200px 0px"});return F.observe(C),()=>{F.disconnect();}},[e,a,t]),s}function Ei({enabled:e,maxPageIndex:a,onPageIndexChange:t,pageIndex:o,setLocalPageIndex:l}){T.useEffect(()=>{if(!e||o>=0&&o<=a)return;let s=Math.min(Math.max(o,0),a);l(s),t?.(s);},[e,a,t,o,l]);}function Vi(){return T.useMemo(()=>{let e=new WeakMap;return (a,t,o)=>{let l=p(o);if(!l)return true;let s=a.original;if(typeof s!="object"||s===null)return p(a.getValue(t)).includes(l);let d=e.get(s);d||(d=new Map,e.set(s,d));let m=d.get(t);if(m===void 0){let p$1=a.getValue(t);m=p(p$1),d.set(t,m);}return m.includes(l)}},[])}function Bn(e={}){return tableFeatures({columnFacetingFeature:columnFacetingFeature,columnFilteringFeature:columnFilteringFeature,globalFilteringFeature:globalFilteringFeature,rowAggregationFeature:rowAggregationFeature,columnGroupingFeature:columnGroupingFeature,columnOrderingFeature:columnOrderingFeature,columnPinningFeature:columnPinningFeature,columnSizingFeature:columnSizingFeature,columnResizingFeature:columnResizingFeature,columnVisibilityFeature:columnVisibilityFeature,rowExpandingFeature:rowExpandingFeature,rowPaginationFeature:rowPaginationFeature,rowPinningFeature:rowPinningFeature,rowSelectionFeature:rowSelectionFeature,rowSortingFeature:rowSortingFeature,expandedRowModel:createExpandedRowModel(),facetedMinMaxValues:createFacetedMinMaxValues(),facetedRowModel:createFacetedRowModel(),facetedUniqueValues:createFacetedUniqueValues(),filteredRowModel:createFilteredRowModel(),groupedRowModel:createGroupedRowModel(),paginatedRowModel:createPaginatedRowModel(),sortedRowModel:createSortedRowModel(),aggregationFns:{...aggregationFns,...e},filterFns:filterFns,sortFns:sortFns})}Bn();function Mi({autoResetPageIndex:e,columnGroupPaths:a,columnResizeMode:t$1,dir:o,currentColumnFilters:l$1,currentColumnOrder:s,currentColumnPinning:d$1,currentRowPinning:m,currentColumnSizing:p,currentExpanded:C$1,currentGrouping:F,currentPagination:S,currentRowSelection:L,currentSorting:k$1,currentViewMode:O,defaultColumn:j,effectiveColumnVisibility:W,enableColumnResizing:V,enableMultiRowSelection:u,enableRowPinning:i,enableRowSelection:w,enableSubRowSelection:b,getRowCanSelect:D,getRowCanExpand:M,getSubRows:y$1,aggregationFns:K,groupedColumnMode:Y,globalFilterFn:G,globalFilterValue:_,hasNextPage:R,handleColumnFiltersChange:g,handleColumnOrderChange:v,handleColumnPinningChange:P,handleRowPinningChange:A,handleColumnVisibilityChange:Q,handleExpandedChange:x,handleGroupingChange:q,infiniteScroll:$,keepPinnedRows:E,manualFiltering:Z,manualGrouping:re,manualExpanding:Re,manualPagination:Se,manualSorting:ke,onActionError:Ee,onPageIndexChange:Ce,onPageSizeChange:Ae,pageCount:Ge,pageIndex:X,pageSize:ve,paginateExpandedRows:z,filterFromLeafRows:ye,maxLeafRowFilterDepth:We,setCurrentRowSelection:Xe,setCurrentSorting:Ze,setLocalColumnSizing:ra,setLocalPagination:ge,shouldRenderInitialLoading:la,tableColumns:Qe,tableData:fa,tableGetRowId:$e,tableRef:ea,totalRowCount:Ta,virtualization:aa}){let Da=Vi(),fe=T.useMemo(()=>l(Qe).map(({column:f,index:I})=>t(f,I)),[Qe]),sa=T.useMemo(()=>{let f=fe,I=f.filter(oe=>!y(oe)&&oe!=="__spacer__"),U=new Set(I),de=s.filter(oe=>U.has(oe)),le=I.filter(oe=>!de.includes(oe));return [...f.filter(oe=>oe==="__expand__"||oe==="__select__"),...de,...le,...f.filter(oe=>oe==="__spacer__"),...f.filter(oe=>oe==="__actions__")]},[s,fe]),Ie=T.useMemo(()=>{let f=new Set(fe),I=new Set(fe.filter(le=>!y(le)&&le!=="__spacer__")),U=(d$1.left??[]).filter(le=>I.has(le)),de=(d$1.right??[]).filter(le=>I.has(le));return {start:[...["__expand__","__select__"].filter(le=>f.has(le)),...U],end:[...de,...["__actions__"].filter(le=>f.has(le))]}},[d$1,fe]),wa=T.useCallback(f=>{let I=typeof f=="function"?f(Ie):f,U=new Set(fe.filter(de=>!y(de)&&de!=="__spacer__"));P({left:I.start.filter(de=>U.has(de)),right:I.end.filter(de=>U.has(de))});},[Ie,fe,P]),Pe=T.useMemo(()=>{let f=new Set,I=oe=>{oe.forEach((Ga,ta)=>{if(f.add($e(Ga,ta)),!d(Ga)){let Ia=y$1?.(Ga,ta);Ia?.length&&I(Ia);}});};I(fa);let U=(m.top??[]).filter(oe=>f.has(oe)),de=new Set(U),le=(m.bottom??[]).filter(oe=>f.has(oe)&&!de.has(oe));return {top:U,bottom:le}},[m.bottom,m.top,y$1,fa,$e]),Fe=T.useMemo(()=>Object.fromEntries(Object.entries(L).flatMap(([f,I])=>I?[[f,true]]:[])),[L]),Pa=T.useCallback(f=>{let I=typeof f=="function"?f(Fe):f;Xe({...I});},[Xe,Fe]),xa=T.useMemo(()=>({sorting:k$1,pagination:S,rowSelection:Fe,columnVisibility:W,columnFilters:l$1,globalFilter:_,expanded:C$1,grouping:F,columnOrder:sa,columnPinning:Ie,rowPinning:Pe,columnSizing:p}),[l$1,p,C$1,F,S,k$1,W,sa,Ie,Pe,_,Fe]),da=T.useCallback(f=>{let I=typeof f=="function"?f(S):f;(X===void 0||ve===void 0)&&ge(U=>({pageIndex:X===void 0?I.pageIndex:U.pageIndex,pageSize:ve===void 0?I.pageSize:U.pageSize})),I.pageIndex!==S.pageIndex&&Ce?.(I.pageIndex),I.pageSize!==S.pageSize&&Ae?.(I.pageSize);},[S,Ce,Ae,X,ve,ge]),ka=T.useCallback(f=>{ra(f);},[ra]),Ca=T.useMemo(()=>Bn(K),[K]),be=useTable({features:Ca,data:fa,columns:Qe,enableRowSelection:D?f=>w&&D(f.original):w,enableRowPinning:typeof i=="function"?f=>i(f.original):i,keepPinnedRows:E,enableMultiRowSelection:typeof u=="function"?f=>u(f.original):u,enableSubRowSelection:typeof b=="function"?f=>b(f.original):b,enableColumnResizing:V,columnResizeMode:t$1,columnResizeDirection:o,getRowId:$e,getSubRows:y$1?(f,I)=>y$1(f,I):void 0,getRowCanExpand:y$1?f=>M?.(f.original)??f.subRows.length>0:void 0,globalFilterFn:G??Da,getColumnCanGlobalFilter:f=>f.columnDef.enableGlobalFilter!==false&&typeof f.accessorFn=="function",manualSorting:ke,manualGrouping:re,manualFiltering:Z,manualExpanding:Re,manualPagination:Se||!!$?.enabled,paginateExpandedRows:z,filterFromLeafRows:ye,maxLeafRowFilterDepth:We,defaultColumn:j,autoResetPageIndex:e,state:xa,onSortingChange:Ze,onPaginationChange:da,onRowSelectionChange:Pa,onColumnVisibilityChange:Q,onColumnFiltersChange:g,onExpandedChange:x,onGroupingChange:q,onColumnOrderChange:v,onColumnPinningChange:wa,onRowPinningChange:A,onColumnSizingChange:ka,groupedColumnMode:Y});T.useLayoutEffect(()=>(ea.current=be,()=>{ea.current===be&&(ea.current=null);}),[be,ea]);let _e=be.getVisibleLeafColumns(),ca=T.useCallback((f,I)=>{if(f===I||!k(f,I,a))return;let U=be.getAllLeafColumns().map(le=>le.id).filter(le=>!y(le)&&le!=="__spacer__"),de=C(s.length?s:U,f,I);v(de);},[a,s,v,be]),Ea=be.getTopRows(),Ue=be.getBottomRows(),ya=O==="table"?be.getCenterRows():be.getRowModel().rows,ua=typeof aa=="object"?aa:void 0,ze=aa===true||ua?.enabled===true,pa=Math.max(1,Math.floor(ua?.fallbackRowCount??20)),Fa=(ze?ya.slice(0,pa):ya).map((f,I)=>({row:f,rowIndex:I})),qe=Se||!!$?.enabled,Va=qe?void 0:be.getFilteredRowModel().rows.length,je=Ta??Va,ga=!qe||Ge!==void 0||Ta!==void 0,Ba=je,Ke=la?1:Ge??(je!==void 0?Math.max(1,Math.ceil(je/S.pageSize)):qe?S.pageIndex+(R?2:1):be.getPageCount()),Ma=Math.max(0,Ke-1),Aa=T.useCallback(f=>{X===void 0&&ge(I=>I.pageIndex===f?I:{...I,pageIndex:f});},[X,ge]);Ei({enabled:!la&&!$?.enabled&&ga,maxPageIndex:Ma,onPageIndexChange:Ce,pageIndex:S.pageIndex,setLocalPageIndex:Aa});let r=T.useCallback(f=>{f!==S.pageIndex&&(Ce?.(f),X===void 0&&ge(I=>I.pageIndex===f?I:{...I,pageIndex:f}));},[S.pageIndex,Ce,X,ge]),H=T.useCallback(f=>{S.pageIndex!==0&&Ce?.(0),f!==S.pageSize&&Ae?.(f),ve===void 0&&ge({pageIndex:0,pageSize:f});},[S.pageIndex,S.pageSize,Ce,Ae,ve,ge]),ne=xi({enabled:!!$?.enabled,hasMore:!!$?.hasMore,isLoadingMore:$?.isLoadingMore,onLoadMore:()=>$?.onLoadMore(),onError:f=>{Ee?.({error:f,source:"infiniteScroll"});}});return {effectivePageCount:Ke,footerTotalRowCount:Ba,handleFooterPageIndexChange:r,handleFooterPageSizeChange:H,isPageCountKnown:ga,renderedRows:ya,topPinnedRows:Ea,bottomPinnedRows:Ue,reorderColumn:ca,rowsToRender:Fa,sentinelRef:ne,table:be,virtualPaddingBottom:0,virtualPaddingTop:0,visibleLeafColumns:_e}}var Gs="data-table-pro:column-prefs:",Ii=1,Ai=["visibility","sizing","order","pinning","rowPinning","density"];function zi(e){let a=Gn(e);if(!a)return {};let t=$n(a);if(!t)return {};let o=Un(a.key),l;try{l=t.getItem(o);}catch(p){return a.onError?.({error:p,operation:"read"}),{}}if(!l)return {};let s;try{s=(a.deserialize??JSON.parse)(l);}catch(p){return a.onError?.({error:p,operation:"deserialize"}),{}}let d=a.version??Ii,m;if($s(s))if(s.version===d)m=s.state;else if(a.migrate)try{m=a.migrate({version:s.version,state:s.state},d);}catch(p){return a.onError?.({error:p,operation:"migrate"}),{}}else return {};else m=s;return Oi(Us(m),a.slices)}function Li(e){let a=Gn(e);if(!a)return false;let t=$n(a);if(!t)return false;try{return t.removeItem(Un(a.key)),!0}catch(o){return a.onError?.({error:o,operation:"remove"}),false}}function Ni({key:e,persistence:a,prefs:t}){let o=a??Gn(e),l=o?$n(o):void 0,s=o?Un(o.key):void 0,d=o?.version??Ii,m=Math.max(0,o?.debounceMs??100),p=Oi(t,o?.slices),C=T.useMemo(()=>{if(!o)return {value:void 0};try{let S={version:d,state:p};return {value:(o.serialize??JSON.stringify)(S)}}catch(S){return {error:S,value:void 0}}},[o,p,d]),F=T.useEffectEvent((S,L)=>{o?.onError?.({error:S,operation:L});});T.useEffect(()=>{C.error!==void 0&&F(C.error,"serialize");},[C.error]),T.useEffect(()=>{if(!l||!s||C.value===void 0)return;let S=()=>{try{if(l.getItem(s)===C.value)return;l.setItem(s,C.value);}catch(k){F(k,"write");}};if(m===0){S();return}let L=globalThis.setTimeout(S,m);return ()=>{globalThis.clearTimeout(L);}},[m,C.value,l,s]);}function Gn(e){if(e)return typeof e=="string"?{key:e}:e}function $n(e){if(e.storage)return e.storage;if(!(typeof window>"u"))try{return window.localStorage}catch(a){e.onError?.({error:a,operation:"read"});return}}function Un(e){return `${Gs}${e}`}function $s(e){return it(e)&&Object.prototype.hasOwnProperty.call(e,"version")&&Object.prototype.hasOwnProperty.call(e,"state")}function Oi(e,a){let t=new Set(a??Ai),o={};for(let l of Ai)t.has(l)&&e[l]!==void 0&&Object.assign(o,{[l]:e[l]});return o}function Us(e){if(!it(e))return {};let a={},t=js(e.visibility);t&&(a.visibility=t);let o=Ks(e.sizing);o&&(a.sizing=o);let l=mt(e.order);if(l&&(a.order=l),it(e.pinning)){let d=mt(e.pinning.left)??[],m=mt(e.pinning.right)??[];a.pinning={left:d,right:m};}let s=Ws(e.rowPinning);return s&&(a.rowPinning=s),Qs(e.density)&&(a.density=e.density),a}function js(e){if(it(e))return Object.fromEntries(Object.entries(e).filter(a=>typeof a[1]=="boolean"))}function Ks(e){if(it(e))return Object.fromEntries(Object.entries(e).filter(a=>typeof a[1]=="number"&&Number.isFinite(a[1])&&a[1]>=0))}function mt(e){if(Array.isArray(e))return e.filter(a=>typeof a=="string")}function Ws(e){if(it(e))return {top:mt(e.top)??[],bottom:mt(e.bottom)??[]}}function Qs(e){return e==="compact"||e==="comfortable"||e==="spacious"}function it(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var qs=Object.values(a).slice().sort((e,a)=>e-a);function _i(e){let a=T.useRef(0),[t,o]=T.useState(0);return T.useEffect(()=>{let l=e.current;if(!l)return;let s=(m=l.clientWidth)=>{let p=Ys(m);p!==a.current&&(a.current=p,o(p));};if(s(),typeof ResizeObserver>"u")return;let d=new ResizeObserver(m=>{let p=m[0];s(p?Js(p):void 0);});return d.observe(l),()=>{d.disconnect();}},[e]),t}function Ys(e){if(e<=0)return 0;let a=1;for(let t of qs){if(ed$1??(s$1?{key:s$1}:void 0),[s$1,d$1]),ye=T.useMemo(()=>zi(z),[z]),[We,Xe]=T.useState({pageIndex:u?.pagination?.pageIndex??0,pageSize:u?.pagination?.pageSize??Re[0]??20}),[Ze,ra]=xe({value:Ee,onChange:Q,defaultValue:()=>u?.sorting??[]}),[ge,la]=xe({value:re,onChange:P,defaultValue:()=>u?.rowSelection??{}}),[Qe,fa]=xe({value:m,onChange:G,defaultValue:()=>u?.columnVisibility??ye.visibility??{}}),[$e,ea]=xe({value:e$1,onChange:D,defaultValue:()=>u?.columnFilters??[]}),[Ta,aa]=xe({value:k,onChange:R,defaultValue:()=>u?.expanded??{}}),[Da,fe]=xe({value:a,onChange:M,defaultValue:()=>u?.columnOrder??ye.order??[]}),[sa,Ie]=xe({value:t$1,onChange:y,defaultValue:()=>u?.columnPinning??ye.pinning??s(p)}),[wa,Pe]=xe({value:o,onChange:K,defaultValue:()=>u?.rowPinning??ye.rowPinning??{top:[],bottom:[]}}),[Fe,Pa]=xe({value:l$1,onChange:Y,defaultValue:()=>u?.columnSizing??ye.sizing??{}}),[xa,da]=xe({value:X,onChange:q,defaultValue:()=>u?.viewMode??"table"}),[ka,Ca]=xe({value:O,onChange:g,defaultValue:()=>u?.grouping??[]}),[be,_e]=xe({value:ke,onChange:A,defaultValue:()=>u?.showHiddenRows??false}),[ca,Ea]=xe({value:F,onChange:_,defaultValue:()=>u?.density??ye.density??"comfortable"}),Ue=Ge??u?.globalFilter??"",ya=Ae??Z.searchPlaceholder,ua=Ce??250,[ze,pa]=T.useState(Ue),ha=_i(ve),Fa=!!x,qe=T.useRef(Ue),Va=T.useEffectEvent(B=>{qe.current=B,x?.(B);});T.useEffect(()=>{qe.current=Ue,pa(Ue);},[Ue]),T.useEffect(()=>{if(!Fa||ze===Ue||ze===qe.current)return;let B=window.setTimeout(()=>{Va(ze);},ua);return ()=>{window.clearTimeout(B);}},[Fa,ze,ua,Ue]);let je=T.useMemo(()=>({pageIndex:$??We.pageIndex,pageSize:E??We.pageSize}),[We.pageIndex,We.pageSize,$,E]),ga=Math.max(1,w??Math.min(5,je.pageSize)),Ba=T.useDeferredValue(ze),Ke=L?b?ze:Ba:"",Ma=T.useCallback(B=>{da(B);},[da]),Aa=T.useCallback(B=>{_e(B);},[_e]),r=T.useCallback(B=>{Ea(B);},[Ea]),H=T.useCallback(()=>{v?.(0),$===void 0&&Xe(B=>B.pageIndex===0?B:{...B,pageIndex:0});},[v,$]),ne=T.useRef({columnFilters:$e,globalFilterValue:Ke});T.useEffect(()=>{let B=ne.current,Ve=B.columnFilters!==$e,ce=B.globalFilterValue!==Ke;ne.current={columnFilters:$e,globalFilterValue:Ke},!b&&(!Ve&&!ce||H());},[$e,Ke,b,H]),Ni({persistence:z,prefs:{visibility:m?void 0:Qe,sizing:l$1===void 0?Fe:void 0,order:a?void 0:Da,pinning:t$1?void 0:sa,rowPinning:o===void 0?wa:void 0,density:F?void 0:ca}});let f=T.useMemo(()=>l(p).reduce((B,{column:Ve,index:ce})=>{let ba=t(Ve,ce);return i$1(Ve.meta?.hideOn,ha)&&(B[ba]=false),B},{}),[p,ha]),I=T.useMemo(()=>({...Qe,...f}),[Qe,f]),U=T.useMemo(()=>C.filter(B=>b$1(B,V,be)),[be,C,V]),de=i&&U.length===0,le=T.useMemo(()=>c$1(ga),[ga]),oe=de?le:U,Ga=T.useCallback((B,Ve)=>d(B)?e(Ve):W(B,Ve),[W]),ta=S||(Se?.length??0)>0||Object.values(ge).some(Boolean),Ia=T.useMemo(()=>{if(!ta)return new Map;let B=new Map,Ve=ce=>{ce.forEach((ba,te)=>{B.set(W(ba,te),ba);let me=j?.(ba,te);me?.length&&Ve(me);});};return Ve(U),B},[W,j,ta,U]),Zt=T.useMemo(()=>ta?Object.entries(ge).filter(([,B])=>B).map(([B])=>Ia.get(B)).filter(B=>!!B):[],[ge,Ia,ta]),en=T.useMemo(()=>Object.entries(ge).flatMap(([B,Ve])=>Ve?[B]:[]),[ge]);return {containerWidth:ha,currentColumnFilters:$e,currentColumnOrder:Da,currentColumnPinning:sa,currentRowPinning:wa,currentColumnSizing:Fe,currentColumnVisibility:Qe,currentDensity:ca,currentExpanded:Ta,currentGrouping:ka,currentPagination:je,currentRowSelection:ge,currentShowHiddenRows:be,currentSorting:Ze,currentViewMode:xa,effectiveColumnVisibility:I,globalFilterValue:Ke,handleDensityChange:r,handleShowHiddenRowsChange:Aa,handleViewModeChange:Ma,localSearchValue:ze,resolvedLoadingRowCount:ga,resolvedToolbarQueryPlaceholder:ya,selectedRowIds:en,selectedRows:Zt,setCurrentColumnFilters:ea,setCurrentColumnOrder:fe,setCurrentColumnPinning:Ie,setCurrentRowPinning:Pe,setCurrentColumnVisibility:fa,setCurrentExpanded:aa,setCurrentGrouping:Ca,setCurrentRowSelection:la,setCurrentSorting:ra,setLocalColumnSizing:Pa,setLocalPagination:Xe,setLocalSearchValue:pa,shouldRenderInitialLoading:de,tableData:oe,tableGetRowId:Ga,toolbarFilteredData:U,visibleData:U}}var Zs={cellStyle:void 0,colStyle:void 0,fixedSide:void 0,headerStyle:void 0,isActionsColumn:false,isExpansionColumn:false,isSelectionColumn:false,isSpacerColumn:false,isUtilityColumn:false,pinnedClassName:void 0,utilityClassName:void 0};function Gi({columns:e,columnSizing:a,editableRows:t$1,enableRowSelection:o,hasRowActions:l$1,hasRowExpansion:s,layoutMode:d,uiClassNames:m,visibleLeafColumns:p}){let C=T.useMemo(()=>{let u=new Set;for(let{column:i,index:w}of l(e))g(i)&&u.add(t(i,w));return o&&u.add("__select__"),s&&u.add("__expand__"),(l$1||t$1)&&u.add("__actions__"),u},[e,t$1,o,l$1,s]),F=T.useMemo(()=>{let u=new Map;for(let{column:i,index:w}of l(e)){let b=f(i);b!==void 0&&u.set(t(i,w),b);}return u},[e]),S=T.useMemo(()=>{let u=new Set;for(let{column:i,index:w}of l(e))h(i)&&u.add(t(i,w));return u},[e]),L=T.useMemo(()=>{let u=new Map,i=new Map,w$1=0;for(let D of p)w(D)==="left"&&(u.set(D.id,w$1),w$1+=Bi(D));let b=0;for(let D of [...p].reverse())w(D)==="right"&&(i.set(D.id,b),b+=Bi(D));return {left:u,right:i}},[p]),k=T.useMemo(()=>{if(d==="fill")return [...p].reverse().find(u=>u.id!=="__spacer__"&&!y(u.id)&&!S.has(u.id)&&!Object.prototype.hasOwnProperty.call(a,u.id))?.id},[a,S,d,p]),O=T.useMemo(()=>{let u=new Set([...C,...S,...Object.keys(a)]);return k&&u.delete(k),u},[a,S,C,k]),j=T.useMemo(()=>{let u=new Map;for(let i of p){let w$1=i.id==="__select__",b=i.id==="__expand__",D=i.id==="__actions__",M=w$1||b||D,y=i.id==="__spacer__",K=F.get(i.id),Y=i.id===k,G=K??(Y&&C.has(i.id)?i.getSize():void 0),_=!y&&(d==="fit"||M||O.has(i.id)),R=_||G!==void 0?{width:_?M?a$1:i.getSize():void 0,minWidth:M?a$1:_?i.getSize():G,maxWidth:_?M?a$1:i.getSize():void 0}:void 0,g=w(i),v=g?{left:g==="left"?L.left.get(i.id):void 0,right:g==="right"?L.right.get(i.id):void 0}:void 0,P=R||v?{...R,...v}:void 0;u.set(i.id,{cellStyle:P,colStyle:R,fixedSide:g,headerStyle:P,isActionsColumn:D,isExpansionColumn:b,isSelectionColumn:w$1,isSpacerColumn:y,isUtilityColumn:M,pinnedClassName:g?x(g,m,{isUtilityColumn:M}):void 0,utilityClassName:M?"w-[50px] max-w-[50px] min-w-[50px] px-0":void 0});}return u},[C,k,O,d,F,L,m,p]),W=T.useMemo(()=>p.reduce((u,i)=>{let w=j.get(i.id),b=F.get(i.id),D=i.id===k;return w?.isUtilityColumn?u+a$1:O.has(i.id)?u+i.getSize():u+(b??(D&&C.has(i.id)?i.getSize():0))},0),[j,C,k,O,F,p]),V=T.useCallback(u=>j.get(u)??Zs,[j]);return {columnLayouts:j,explicitlySizedColumnIds:C,fillMinWidth:W,getColumnLayout:V}}function Bi(e){return y(e.id)?a$1:e.getSize()}function Ui(e,a){let t=e.classNames??{},{Button:o,Card:l,CardContent:s,CardHeader:d,Checkbox:m,Skeleton:p}=e;return function({rows:F,cardRenderer:S,cardSizing:L="fixed",cardGridClassName:k,cardClassName:O,rowActions:j,editableRows:W,detailPanel:V,detailExpanded:u,onDetailExpandedChange:i,hasCardTitle:w,rowSelection:b$1,onRowSelectionChange:D,enableRowSelection:M,editingRowId:y,onEditingRowIdChange:K,getRowClassName:Y,onRowClick:G,getRowDraggable:_,onRowDragStart:R,onRowDragEnd:g,isLoading:v=false,loadingRowCount:P=5,labels:A}){let Q=L??"fixed",x=k?a$2("grid",k):ed(Q),q=a$2("min-h-0 w-full gap-4 p-1",t.cardGrid,x),$=E=>a$2("relative min-w-0 max-w-full gap-0 overflow-hidden bg-transparent p-0",ad(Q),t.cardItem,O,E);return v?jsx("div",{role:"list","data-dtp-slot":"data-table-card-grid",className:q,children:Array.from({length:Math.max(1,P)},(E,Z)=>jsxs(l,{role:"listitem","aria-hidden":"true","data-dtp-slot":"data-table-card-item",className:$("min-h-52"),children:[w?jsxs(d,{className:"px-4 pt-4 pb-3",children:[jsx(p,{className:"h-5 w-40 max-w-[70%]"}),jsx(p,{className:"h-4 w-24 max-w-[40%]"})]}):null,jsxs(s,{className:a$2("space-y-3 pb-4",w?"":"pt-4"),children:[jsx(p,{className:"h-4 w-full"}),jsx(p,{className:"h-4 w-[82%]"}),jsx(p,{className:"h-4 w-[68%]"}),jsx(p,{className:"h-24 w-full rounded-xl"})]})]},`loading-card-${Z}`))}):jsx("div",{role:"list","data-dtp-slot":"data-table-card-grid",className:q,children:F.map(E=>{let Z=E.id,re=E.original,Re=!!b$1[Z],Se=y===Z,ke=j.length>0||!!W,Ee=!!(V&&(V.getRowCanExpand?.(re)??true)),Ce=M||ke||w,Ae=M||ke||E.getCanExpand()||Ee,Ge=()=>{G&&G({row:re,rowId:Z});};return jsxs(l,{role:"listitem","data-row-id":Z,"data-tree-depth":E.depth,draggable:_?.(re)??false,"data-dtp-slot":"data-table-card-item","data-state":Re?"selected":void 0,className:$(a$2([Y?.(re,{row:re,rowId:Z,rowIndex:E.index,isEditing:Se,isExpanded:E.getIsExpanded(),isLoading:false,isSelected:Re,pinnedPosition:false})].filter(Boolean).join(" "),"transition transition-colors hover:scale-101 data-[state=selected]:scale-101",t.card,Re?t.cardSelected:t.cardUnselected)),onDragStart:X=>{R?.({row:re,rowId:Z,event:X});},onDragEnd:X=>{g?.({row:re,rowId:Z,event:X});},children:[Ce?jsx("div",{"aria-hidden":"true",className:a$2("pointer-events-none absolute inset-x-0 top-0 z-10 h-24 bg-linear-to-b opacity-0 transition-opacity group-hover/card:opacity-100",t.cardOverlay??"from-transparent via-transparent to-transparent")}):null,jsx("div",{"data-dtp-slot":"data-table-card-renderer",role:G?"button":void 0,tabIndex:G?0:void 0,className:a$2("flex min-h-0 max-w-full min-w-0 overflow-hidden rounded-[inherit] [&>*]:min-w-0",td(Q),G&&"cursor-pointer focus-visible:outline-none"),onClick:X=>{z(X.target,X.currentTarget)||Ge();},onKeyDown:X=>{z(X.target,X.currentTarget)||(X.key==="Enter"||X.key===" ")&&(X.preventDefault(),Ge());},children:S({row:re,rowId:Z,depth:E.depth,canExpandSubRows:E.getCanExpand(),isSubRowsExpanded:E.getIsExpanded(),toggleSubRowsExpanded:()=>E.toggleExpanded(),isSelected:Re,onSelectedChange:X=>{D($i(b$1,Z,X,E.getCanSelect(),E.getCanMultiSelect()));},actions:j,isEditing:Se,startEditing:()=>{K(Z);},cancelEditing:()=>{K(null);}})}),Se||!V||!(u===true||u[E.id])?null:jsx("div",{"data-dtp-slot":"data-table-card-detail-panel",className:"relative z-20 min-w-0",children:V.render({row:re,rowId:Z,tableRow:E})}),Ae?jsxs(d,{className:"absolute inset-x-0 top-0 z-20 flex flex-row items-center gap-3 space-y-0 px-4 pt-4 pb-8",children:[M?jsx("div",{"data-row-click-ignore":"true",className:"pointer-events-auto",children:jsx(m,{checked:Re,disabled:!E.getCanSelect(),"aria-label":(A.selectCardRow??ie.selectCardRow)(Z),onCheckedChange:X=>{D($i(b$1,Z,X===true,E.getCanSelect(),E.getCanMultiSelect()));}})}):null,E.getCanExpand()?jsx("div",{"data-row-click-ignore":"true",className:"pointer-events-auto",children:jsx(o,{type:"button",size:"icon-sm",variant:"ghost","aria-label":E.getIsExpanded()?A.collapseRow:A.expandRow,"aria-expanded":E.getIsExpanded(),onClick:()=>E.toggleExpanded(),children:jsx(c,{className:a$2("transition-transform",E.getIsExpanded()?"rotate-0":"-rotate-90")})})}):null,Ee?jsx("div",{"data-row-click-ignore":"true",className:"pointer-events-auto",children:jsx(o,{type:"button",size:"icon-sm",variant:"ghost","aria-label":u===true||u[E.id]?E.getCanExpand()?A.collapseRowDetails??ie.collapseRowDetails:A.collapseRow:E.getCanExpand()?A.expandRowDetails??ie.expandRowDetails:A.expandRow,"aria-expanded":u===true||!!u[E.id],"data-detail-toggle":"true",onClick:()=>{i(X=>b(X,E.id,F.map(ve=>ve.id)));},children:jsx(c,{className:a$2("transition-transform",u===true||u[E.id]?"rotate-0":"-rotate-90")})})}):null,jsx("div",{className:"pointer-events-none min-w-0 flex-1"}),ke?jsx("div",{"data-row-click-ignore":"true",className:"pointer-events-auto",children:jsx(a,{row:re,rowActions:j,editableRows:W,isEditing:Se,onStartEditing:()=>{K(Z);},onCancelEditing:()=>{K(null);},labels:A})}):null]}):null]},Z)})})}}function ed(e){switch(e){case "content":return "flex flex-wrap items-start justify-start";case "fluid":return "grid grid-cols-[repeat(auto-fit,minmax(min(18rem,100%),1fr))]";default:return "grid grid-cols-[repeat(auto-fill,minmax(min(18rem,100%),18rem))] justify-start"}}function ad(e){switch(e){case "content":return "w-fit";case "fluid":return "w-full";default:return}}function td(e){switch(e){case "content":return "w-fit";case "fluid":return "w-full flex-1 [&>*]:w-full";default:return "flex-1"}}function $i(e,a,t,o,l){if(!o)return e;if(t)return l?{...e,[a]:true}:{[a]:true};if(!e[a])return e;let s={...e};return delete s[a],s}function Ki(e){let a=e.classNames??{},{Empty:t,EmptyContent:o,EmptyDescription:l,EmptyHeader:s,EmptyMedia:d,EmptyTitle:m}=e;return function({title:C="No rows found",description:F="Adjust your filters or create a new record to populate this table."}){return jsxs(t,{className:`min-h-60 rounded-2xl ${a.emptyState??"border bg-transparent"}`,children:[jsxs(s,{children:[jsx(d,{variant:"icon",children:jsx(p$1,{})}),jsx(m,{children:C}),jsx(l,{children:F})]}),jsx(o,{})]})}}function Wi(e){let a=e.classNames??{},{Pagination:t,PaginationContent:o,PaginationEllipsis:l,PaginationFirst:s,PaginationItem:d,PaginationLast:m,PaginationLink:p,PaginationNext:C,PaginationPrevious:F,Select:S,SelectContent:L,SelectGroup:k,SelectItem:O,SelectTrigger:j,SelectValue:W,Tooltip:V,TooltipContent:u,TooltipTrigger:i}=e;function w({pageIndex:D,pageCount:M,pageCountKnown:y,pageSize:K,totalRowCount:Y,rowsPerPageOptions:G,onPageIndexChange:_,onPageSizeChange:R,labels:g}){let v=y?nd(D,Math.max(1,M)):[],P=D>0,A=D+1{R(Number(x));},children:[jsx(j,{"aria-label":g.recordsPerPage,className:`w-22 ${a.paginationSelectTrigger??""}`,children:jsx(W,{})}),jsx(L,{children:jsx(k,{children:G.map(x=>jsx(O,{value:String(x),children:x},x))})})]})]}),Y!==void 0?jsx("div",{className:"flex shrink-0 items-center justify-center",children:jsxs("div",{className:`inline-flex items-center gap-2 px-2.5 py-1.5 text-sm ${a.paginationTotal??""}`,"aria-label":g.totalRecords(Y),children:[jsx(j$1,{className:"size-4"}),jsx("span",{className:"@min-[768px]/data-table:hidden",children:Y}),jsx("span",{className:"hidden @min-[768px]/data-table:inline",children:g.totalRecords(Y)})]})}):null,jsxs("div",{className:"flex flex-1 items-center justify-end gap-4",children:[jsx("div",{className:`hidden text-sm @min-[768px]/data-table:inline ${a.mutedText??"opacity-70"}`,children:y?g.pageStatus(D,Math.max(1,M)):(g.pageStatusUnknown??ie.pageStatusUnknown)(D)}),jsx(t,{"aria-label":g.pagination??ie.pagination,className:"mx-0 w-auto justify-end",children:jsxs(o,{children:[jsx(d,{className:"@min-[768px]/data-table:hidden",children:jsxs(V,{children:[jsx(i,{asChild:true,children:jsx(s,{"aria-label":g.firstPage,href:"#",size:"icon-sm",showText:false,disabled:!P,onClick:x=>{x.preventDefault(),P&&_(0);},text:g.firstPage})}),jsx(u,{children:g.firstPage})]})}),jsx(d,{children:jsxs(V,{children:[jsx(i,{asChild:true,children:jsx(F,{"aria-label":g.previousPage,href:"#",size:"icon-sm",showText:false,disabled:!P,onClick:x=>{x.preventDefault(),P&&_(D-1);},text:g.previousPage})}),jsx(u,{children:g.previousPage})]})}),v.map((x,q)=>jsx(d,{className:"hidden @min-[768px]/data-table:block",children:x==="ellipsis"?jsx(l,{text:g.morePages??ie.morePages}):jsx(p,{href:"#",isActive:x===D+1,size:"icon-sm",onClick:$=>{$.preventDefault(),_(x-1);},children:x})},`${x}-${q}`)),jsx(d,{children:jsxs(V,{children:[jsx(i,{asChild:true,children:jsx(C,{"aria-label":g.nextPage,href:"#",size:"icon-sm",showText:false,disabled:!A,onClick:x=>{x.preventDefault(),A&&_(D+1);},text:g.nextPage})}),jsx(u,{children:g.nextPage})]})}),y?jsx(d,{className:"@min-[768px]/data-table:hidden",children:jsxs(V,{children:[jsx(i,{asChild:true,children:jsx(m,{"aria-label":g.lastPage,href:"#",size:"icon-sm",showText:false,text:g.lastPage,disabled:!A,onClick:x=>{x.preventDefault(),A&&_(Q);}})}),jsx(u,{children:g.lastPage})]})}):null]})})]})]})}function b(D){return jsx("div",{className:`rounded-md border px-2 py-1 ${a.footer??""}`,children:jsx(w,{...D})})}return {DataTableFooter:b,DataTablePagination:w}}function nd(e,a){let t=e+1,o=new Set([1,a]);for(let d=Math.max(1,t-2);d<=Math.min(a,t+2);d+=1)o.add(d);let l=Array.from(o).sort((d,m)=>d-m),s=[];for(let d=0;d1&&s.push("ellipsis"),s.push(m);}return s}function qi(e){let{Button:a,DropdownMenu:t,DropdownMenuContent:o,DropdownMenuGroup:l,DropdownMenuItem:s,DropdownMenuSeparator:d,DropdownMenuTrigger:m$1,Tooltip:p,TooltipContent:C,TooltipTrigger:F}=e;return function({row:L,rowActions:k,editableRows:O,isEditing:j,onStartEditing:W,onCancelEditing:V,labels:u,rowPinning:i}){let w=k.filter(y=>d$1(y,L)),b=T.useCallback(y=>{y.stopPropagation();},[]);if(j)return jsxs(p,{children:[jsx(F,{asChild:true,children:jsxs(a,{type:"button",variant:"ghost",size:"icon-sm",onPointerDown:b,onClick:V,children:[jsx(u$1,{}),jsx("span",{className:"sr-only",children:u.cancelEdit})]})}),jsx(C,{children:u.cancelEdit})]});let D=e$2(O,L),M=i?.canPin??false;return !w.length&&!D&&!M?null:jsxs(t,{children:[jsxs(p,{children:[jsx(F,{asChild:true,children:jsx(m$1,{asChild:true,children:jsxs(a,{type:"button",variant:"ghost",size:"icon-sm",onPointerDown:b,onClick:b,children:[jsx(k$1,{}),jsx("span",{className:"sr-only",children:u.rowActions})]})})}),jsx(C,{children:u.rowActions})]}),jsxs(o,{align:"end",className:"w-52",children:[D?jsx(l,{children:jsxs(s,{onClick:y=>{y.stopPropagation(),W();},children:[jsx(m,{"data-icon":"inline-start"}),u.editRow]})}):null,D&&(w.length||M)?jsx(d,{}):null,M?jsx(l,{children:i?.position?jsx(s,{onClick:y=>{y.stopPropagation(),i.pin(false);},children:u.unpinRow}):jsxs(Fragment,{children:[jsx(s,{onClick:y=>{y.stopPropagation(),i?.pin("top");},children:u.pinRowToTop}),jsx(s,{onClick:y=>{y.stopPropagation(),i?.pin("bottom");},children:u.pinRowToBottom})]})}):null,M&&w.length?jsx(d,{}):null,w.length?jsx(l,{children:w.map(y=>{let K=y.icon;return jsxs(s,{disabled:y.disabled?.(L),variant:y.variant==="destructive"?"destructive":void 0,onClick:Y=>{Y.stopPropagation(),y.onClick(L);},children:[K?jsx(K,{"data-icon":"inline-start"}):null,c$2(y.label,L)]},y.key)})}):null]})]})}}var id=T.lazy(()=>import('./data-table-toolbar-operations-E6KRSUL6.js'));function Ji(e){let a=e.classNames??{},{Button:t,ButtonGroup:o,DropdownMenu:l,DropdownMenuCheckboxItem:s,DropdownMenuContent:d,DropdownMenuGroup:m,DropdownMenuItem:p,DropdownMenuLabel:C,DropdownMenuSeparator:F,DropdownMenuTrigger:S,InputGroup:L,InputGroupAddon:k,InputGroupInput:O,Tooltip:j,TooltipContent:W,TooltipTrigger:V}=e;return function({title:w,titleId:b,description:D,descriptionId:M,toolbarQueryValue:y,toolbarQueryPlaceholder:K,onToolbarQueryValueChange:Y,customToolbar:G,compactToolbar:_,viewMode:R,onViewModeChange:g,enableViewToggle:v,toolbarActions:P,selectionActions:A,selectedRows:Q,selectedRowIds:x,showHiddenRows:q,hiddenRowsLabel:$,onShowHiddenRowsChange:E,allRows:Z,columnVisibilityOptions:re,onColumnVisibilityChange:Re,enableColumnPinning:Se,onColumnPinningChange:ke,columnFilters:Ee,onColumnFilterChange:Ce,onClearColumnFilters:Ae,density:Ge,onDensityChange:X,enableDensityToggle:ve,labels:z,toolbarVisibility:ye,openFileDialog:We,enableGrouping:Xe,enableToolbarColumnChooser:Ze,enableToolbarFilterChips:ra,enableToolbarResetLayout:ge,enableToolbarSavedViews:la,savedViews:Qe,onResetColumnLayout:fa,onCreateSavedView:$e,onApplySavedView:ea,onRenameSavedView:Ta,onDeleteSavedView:aa,reorderColumn:Da,table:fe}){let sa=T.useRef(null),[Ie,wa]=T.useState(false),Pe=a.toolbarCompactIconButton??"",Fe=P.filter(r=>(r.placement??"primary")==="primary"),Pa=P.filter(r=>r.placement==="trailing"),xa=ye?.title??true,da=ye?.search??true,ka=ye?.actions??true,Ca=ye?.trailingActions??true,be=ye?.options??true,_e=ye?.viewToggle??true,ca=ye?.customToolbar??true,Ea=xa&&!!(w||D),Ue=da,ya=ka&&Fe.length>0,ua=x.length>0&&A.length>0,ze=be&&(re.some(r=>r.canHide)||!!(E&&$)||Se||ve||Xe||Ze||ge||la),pa=Ze||ge||la,ha=Ee.filter(r=>jn(r.value)),Fa={Button:t,DropdownMenuCheckboxItem:s,DropdownMenuGroup:m,DropdownMenuItem:p,DropdownMenuLabel:C,DropdownMenuSeparator:F,InputGroup:L,InputGroupAddon:k,InputGroupInput:O},qe=r=>jsx(T.Suspense,{fallback:null,children:jsx(id,{placement:r,ui:Fa,labels:z,enableColumnChooser:Ze,enableFilterChips:ra,enableResetLayout:ge,enableSavedViews:la,enableColumnPinning:Se,columnVisibilityOptions:re,onColumnVisibilityChange:Re,onColumnPinningChange:ke,reorderColumn:Da,table:fe,onResetColumnLayout:fa,savedViews:Qe,onCreateSavedView:$e,onApplySavedView:ea,onRenameSavedView:Ta,onDeleteSavedView:aa,toolbarQueryValue:y,onToolbarQueryValueChange:Y,activeColumnFilters:ha,onColumnFilterChange:Ce,onClearColumnFilters:Ae})}),Va=fe.getAllLeafColumns().filter(r=>!r.id.startsWith("__")&&r.getCanGroup()),je=fe.store.state.grouping.flatMap(r=>{let H=fe.getColumn(r);return H?[H]:[]}),ga=_e&&v&&!!g,Ba=Ca&&Pa.length>0,Ke=ca&&!!G,Ma=ca&&!!(_??G),Aa=z.selectedRows(x.length);return T.useEffect(()=>{Ie&&sa.current?.focus();},[Ie]),!Ea&&!Ue&&!ya&&!ua&&!ze&&!ga&&!Ba&&!Ke&&!Ma?null:jsxs("div",{className:"flex flex-col gap-4 pb-0",children:[xa&&(w||D)?jsxs("div",{className:"flex flex-col gap-1",children:[w?jsx("h2",{id:b,className:"text-lg font-semibold tracking-tight",children:w}):null,D?jsx("p",{id:M,className:`max-w-3xl text-sm ${a.mutedText??"opacity-70"}`,children:D}):null]}):null,jsxs("div",{className:"flex flex-col gap-3",children:[jsxs("div",{"data-dtp-slot":"data-table-toolbar-controls",className:"flex items-center gap-2 overflow-x-auto px-1 @min-[768px]/data-table:gap-3 @min-[768px]/data-table:overflow-visible",children:[da?jsxs(Fragment,{children:[jsx("div",{className:"hidden min-w-0 grow max-w-md @min-[768px]/data-table:block",children:jsxs(L,{className:"min-w-0",children:[jsx(O,{value:y,onChange:r=>{Y(r.target.value);},placeholder:K}),jsx(k,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})}),y?jsx(k,{align:"inline-end",children:jsx("button",{type:"button",className:`inline-flex size-5 items-center justify-center rounded-md transition-colors focus-visible:outline-none ${a.toolbarIconButton??"opacity-70 hover:opacity-100"}`,onClick:()=>{Y("");},"aria-label":z.clearSearch,title:z.clearSearch,children:jsx(u$1,{})})}):null]})}),jsxs(j,{children:[jsx(V,{asChild:true,children:jsxs(t,{type:"button",variant:Ie||y?"secondary":"outline",size:"icon-sm","aria-label":z.searchTable,"aria-pressed":Ie,className:`shrink-0 @min-[768px]/data-table:hidden ${Pe} ${a.toolbarInputButton??""}`,onClick:()=>{wa(r=>!r);},children:[jsx(s$1,{}),jsx("span",{className:"sr-only",children:z.searchTable})]})}),jsx(W,{children:z.searchTable})]})]}):null,ka?jsx("div",{className:"flex shrink-0 items-center gap-2",children:Fe.map(r=>{let H=!r.iconOnly&&!!r.icon,ne=jsxs(t,{type:"button",className:H?`size-7 shrink-0 px-0 @min-[768px]/data-table:h-8 @min-[768px]/data-table:w-fit @min-[768px]/data-table:px-2.5 ${Pe}`:r.iconOnly?`size-7 shrink-0 @min-[768px]/data-table:size-8 ${Pe}`:"size-7 shrink-0 @min-[768px]/data-table:h-8 @min-[768px]/data-table:w-fit",variant:r.variant??"outline",size:r.iconOnly?"icon":"default",onClick:()=>{r.onClick({rows:Z,openFileDialog:We});},disabled:r.disabled,"aria-label":r.label,title:r.iconOnly?void 0:r.label,children:[r.icon?jsx(r.icon,{}):null,r.iconOnly?jsx("span",{className:"sr-only",children:r.label}):H?jsx("span",{className:"hidden @min-[768px]/data-table:inline",children:r.label}):jsx("span",{children:r.label})]},r.key);return r.iconOnly?jsxs(j,{children:[jsx(V,{asChild:true,children:ne}),jsx(W,{children:r.label})]},r.key):ne})}):null,Ma?jsx("div",{"data-dtp-slot":"data-table-toolbar-compact-custom",className:"flex shrink-0 items-center gap-2 @min-[1024px]/data-table:hidden",children:_??G}):null,jsx("div",{className:"grow","aria-hidden":"true"}),jsxs("div",{"data-dtp-slot":"data-table-toolbar-end-controls",className:"flex shrink-0 items-center gap-2",children:[x.length?jsx("div",{className:`hidden text-sm @min-[768px]/data-table:block ${a.mutedText??"opacity-70"}`,children:Aa}):null,x.length?A.map(r=>{let H=r.icon,ne={rows:Q,rowIds:x},f=typeof r.disabled=="function"?r.disabled(Q,ne):r.disabled;return jsxs(j,{children:[jsx(V,{asChild:true,children:jsxs(t,{type:"button",variant:r.variant??"secondary",size:"icon-sm",className:Pe,disabled:f,onClick:()=>{r.onClick(ne);},"aria-label":r.label,children:[H?jsx(H,{}):null,jsx("span",{className:"sr-only",children:r.label})]})}),jsx(W,{children:r.label})]},r.key)}):null,ze?jsxs(l,{children:[jsx(S,{asChild:true,children:jsxs(t,{type:"button",variant:"outline",size:"icon-sm","aria-label":z.tableOptions,className:`${Pe} ${a.toolbarInputButton??""}`,title:z.tableOptions,children:[jsx(a$5,{}),jsx("span",{className:"sr-only",children:z.tableOptions})]})}),jsxs(d,{align:"end",className:"w-56",children:[jsx(C,{children:z.tableOptions}),jsx(m,{children:E&&$?jsx(s,{checked:q,onCheckedChange:r=>{E(r===true);},children:z.showHiddenRows($)}):null}),ve?jsxs(Fragment,{children:[jsx(F,{}),jsx(C,{children:z.density}),jsx(m,{children:[["compact",z.compactDensity],["comfortable",z.comfortableDensity],["spacious",z.spaciousDensity]].map(([r,H])=>jsx(s,{checked:Ge===r,onCheckedChange:()=>{X(r);},children:H},r))})]}):null,pa?qe("menu"):null,!Ze&&re.some(r=>r.canHide)?jsxs(Fragment,{children:[jsx(F,{}),jsx(C,{children:z.columns}),jsx(m,{children:re.filter(r=>r.canHide).map(r=>jsx(s,{checked:r.visible,onCheckedChange:H=>{Re?.(r.id,H===true);},children:r.label},r.id))})]}):null,Se&&!Ze?jsxs(Fragment,{children:[jsx(F,{}),jsxs(C,{children:[z.pinLeft," / ",z.pinRight]}),jsx(m,{children:re.map(r=>jsxs(p,{onSelect:H=>{H.preventDefault();},children:[jsx("span",{className:"min-w-0 flex-1 truncate",children:r.label}),jsx("button",{type:"button",className:"px-1 text-xs","aria-label":`${z.pinLeft}: ${r.label}`,onClick:H=>{H.stopPropagation(),ke(r.id,"left");},children:"L"}),jsx("button",{type:"button",className:"px-1 text-xs","aria-label":`${z.pinRight}: ${r.label}`,onClick:H=>{H.stopPropagation(),ke(r.id,"right");},children:"R"}),jsx("button",{type:"button",className:"px-1 text-xs","aria-label":`${z.unpin}: ${r.label}`,onClick:H=>{H.stopPropagation(),ke(r.id,false);},children:"-"})]},`pin-${r.id}`))})]}):null,Xe&&Va.length?jsxs(Fragment,{children:[jsx(F,{}),jsx(C,{children:z.grouping}),jsx(m,{children:Va.map(r=>{let H=typeof r.columnDef.header=="string"?r.columnDef.header:r.id,ne=r.getIsGrouped();return jsx(s,{checked:ne,onCheckedChange:()=>{r.toggleGrouping();},children:ne?z.ungroup(H):z.groupBy(H)},`group-${r.id}`)})})]}):null]})]}):null,_e&&v&&g?jsxs(o,{children:[jsxs(j,{children:[jsx(V,{asChild:true,children:jsxs(t,{type:"button",variant:R==="table"?"default":"outline","aria-pressed":R==="table",className:R==="table"?Pe:`${Pe} ${a.toolbarInputButton??""}`,size:"icon-sm",onClick:()=>{g("table");},children:[jsx(r,{}),jsx("span",{className:"sr-only",children:z.switchToTableView??ie.switchToTableView})]})}),jsx(W,{children:z.tableView??ie.tableView})]}),jsxs(j,{children:[jsx(V,{asChild:true,children:jsxs(t,{type:"button",variant:R==="card"?"default":"outline","aria-pressed":R==="card",className:R==="table"?`${Pe} ${a.toolbarInputButton??""}`:Pe,size:"icon-sm",onClick:()=>{g("card");},children:[jsx(q$1,{}),jsx("span",{className:"sr-only",children:z.switchToCardView??ie.switchToCardView})]})}),jsx(W,{children:z.cardView??ie.cardView})]})]}):null,Ca?Pa.map(r=>{let H=!r.iconOnly&&!!r.icon,ne=jsxs(t,{type:"button",variant:r.variant??"outline",size:r.iconOnly?"icon-sm":"default",onClick:()=>{r.onClick({rows:Z,openFileDialog:We});},disabled:r.disabled,"aria-label":r.label,title:r.iconOnly?void 0:r.label,className:`size-7 shrink-0 ${r.iconOnly?"":`${H?"px-0 @min-[768px]/data-table:px-2.5":""} @min-[768px]/data-table:h-8 @min-[768px]/data-table:w-fit`} ${r.iconOnly||H?Pe:""} ${a.toolbarInputButton??""}`,children:[r.icon?jsx(r.icon,{"data-icon":r.iconOnly?void 0:"inline-start"}):null,r.iconOnly?jsx("span",{className:"sr-only",children:r.label}):H?jsx("span",{className:"hidden @min-[768px]/data-table:inline",children:r.label}):jsx("span",{children:r.label})]},r.key);return r.iconOnly?jsxs(j,{children:[jsx(V,{asChild:true,children:ne}),jsx(W,{children:r.label})]},r.key):ne}):null]})]}),da&&Ie?jsx("div",{"data-dtp-slot":"data-table-toolbar-compact-search",className:"min-w-0 @min-[768px]/data-table:hidden",children:jsxs(L,{children:[jsx(O,{ref:sa,value:y,onChange:r=>{Y(r.target.value);},placeholder:K}),jsx(k,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})}),y?jsx(k,{align:"inline-end",children:jsx("button",{type:"button",className:`inline-flex size-5 items-center justify-center rounded-md transition-colors focus-visible:outline-none ${a.toolbarIconButton??"opacity-70 hover:opacity-100"}`,onClick:()=>{Y("");},"aria-label":z.clearSearch,title:z.clearSearch,children:jsx(u$1,{})})}):null]})}):null,Ee.length?jsxs("div",{"data-dtp-slot":"data-table-toolbar-filters",className:"flex min-w-0 flex-wrap items-center gap-2",children:[Ee.map(r=>jsx(u,{filter:r,labels:z,onColumnFilterChange:Ce},r.id)),Ee.some(r=>jn(r.value))?jsx(t,{type:"button",variant:"ghost",size:"sm",onClick:Ae,children:z.clearFilters}):null]}):null,ra?qe("chips"):null,Xe&&je.length?jsxs("div",{"data-dtp-slot":"data-table-grouping-bar","aria-label":z.grouping,className:"flex flex-wrap items-center gap-2",children:[jsxs("span",{className:"text-sm opacity-70",children:[z.grouping,":"]}),je.map((r,H)=>{let ne=typeof r.columnDef.header=="string"?r.columnDef.header:r.id,f=I=>{let U=[...fe.store.state.grouping],[de]=U.splice(H,1);de!==void 0&&(U.splice(I,0,de),fe.setGrouping(U));};return jsxs("div",{className:"inline-flex items-center rounded-md border",children:[jsx(t,{type:"button",variant:"ghost",size:"sm",disabled:H===0,onClick:()=>f(H-1),"aria-label":z.moveGroupingEarlier(ne),children:jsx("span",{"aria-hidden":"true",children:"\u2190"})}),jsxs(t,{type:"button",variant:"secondary",size:"sm",onClick:()=>r.toggleGrouping(),"aria-label":z.removeGrouping(ne),children:[ne," ",jsx("span",{"aria-hidden":"true",children:"\xD7"})]}),jsx(t,{type:"button",variant:"ghost",size:"sm",disabled:H===je.length-1,onClick:()=>f(H+1),"aria-label":z.moveGroupingLater(ne),children:jsx("span",{"aria-hidden":"true",children:"\u2192"})})]},`grouping-bar-${r.id}`)})]}):null]}),ca&&G?jsx("div",{"data-dtp-slot":"data-table-toolbar-desktop-custom",className:"hidden flex-row items-center gap-3 @min-[1024px]/data-table:flex",children:G}):null]})};function u({filter:i,labels:w,onColumnFilterChange:b}){let[D,M]=T.useState("");if(i.type==="text")return jsxs(L,{className:"min-w-48 max-w-64",children:[jsx(O,{value:typeof i.value=="string"?i.value:"",onChange:P=>{b(i.id,P.target.value);},placeholder:i.placeholder??i.label,"aria-label":`${w.filters}: ${i.label}`}),jsx(k,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})})]});if(i.type==="numberRange"||i.type==="dateRange"){let P=rd(i.value),A=i.type==="numberRange"?"number":"date",Q=w.filterFrom??ie.filterFrom,x=w.filterTo??ie.filterTo;return jsxs("div",{role:"group","aria-label":`${w.filters}: ${i.label}`,className:"flex min-w-0 items-center gap-1.5",children:[jsxs(L,{className:"min-w-32 max-w-44",children:[jsx(O,{type:A,inputMode:A==="number"?"decimal":void 0,value:P.from??"",min:i.min,max:i.max,step:A==="number"?i.step:void 0,onChange:q=>{b(i.id,{...P,from:Yi(q.target.value,A)});},"aria-label":`${i.label}: ${Q}`}),jsx(k,{align:"inline-start",children:Q})]}),jsxs(L,{className:"min-w-32 max-w-44",children:[jsx(O,{type:A,inputMode:A==="number"?"decimal":void 0,value:P.to??"",min:i.min,max:i.max,step:A==="number"?i.step:void 0,onChange:q=>{b(i.id,{...P,to:Yi(q.target.value,A)});},"aria-label":`${i.label}: ${x}`}),jsx(k,{align:"inline-start",children:x})]})]})}let y=i.type==="boolean",K=i.type==="faceted",Y=[{label:i.trueLabel??w.filterTrue??ie.filterTrue,value:"true"},{label:i.falseLabel??w.filterFalse??ie.filterFalse,value:"false"}],G=y?Y:i.options,_=K&&D?G.filter(P=>P.label.toLocaleLowerCase().includes(D.toLocaleLowerCase())):G,R=typeof i.value=="string"||typeof i.value=="boolean"?String(i.value):"",g=Array.isArray(i.value)?i.value.map(String):R?[R]:[],v=g.length===0?i.label:`${i.label}: ${g.length===1?G.find(P=>P.value===String(g[0]))?.label??g[0]:g.length}`;return jsxs(l,{children:[jsx(S,{asChild:true,children:jsx(t,{type:"button",variant:"outline",size:"sm",children:v})}),jsxs(d,{align:"start",className:"w-56",children:[jsx(C,{children:i.label}),K&&i.searchable!==false?jsx("div",{className:"px-2 pb-2",children:jsxs(L,{children:[jsx(O,{value:D,onChange:P=>{M(P.target.value);},placeholder:i.searchPlaceholder??w.facetSearch(i.label),"aria-label":w.facetSearch(i.label)}),jsx(k,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})})]})}):null,jsxs(m,{children:[i.type==="select"||y||K?jsx(p,{onClick:()=>{b(i.id,"");},children:w.allFilterOptions??ie.allFilterOptions}):null,_.map(P=>jsxs(s,{checked:g.includes(P.value),disabled:P.disabled,onCheckedChange:A=>{if(i.type==="select"||y){b(i.id,A===true?P.value:"");return}let Q=new Set(g);A===true?Q.add(P.value):Q.delete(P.value),b(i.id,Array.from(Q));},children:[jsx("span",{className:"min-w-0 flex-1 truncate",children:P.label}),P.count!==void 0?jsx("span",{className:"ml-3 tabular-nums opacity-70",children:P.count}):null]},P.value))]})]})]})}}function jn(e){return Array.isArray(e)?e.length>0:e&&typeof e=="object"?"from"in e||"to"in e?Object.values(e).some(jn):true:e!=null&&e!==""}function rd(e){if(!e||typeof e!="object"||Array.isArray(e))return {};let a=e;return {...typeof a.from=="number"||typeof a.from=="string"?{from:a.from}:{},...typeof a.to=="number"||typeof a.to=="string"?{to:a.to}:{}}}function Yi(e,a){if(e)return a==="number"?Number(e):e}var ld=T.lazy(async()=>({default:(await import('./data-table-virtual-table-panel-CMM22FZ7.js')).DataTableVirtualTablePanel}));function Xi(e){let a=typeof e.virtualization=="object"?e.virtualization:void 0;return e.virtualization===true||a?.enabled===true?jsx(T.Suspense,{fallback:jsx(e$1,{...e,rowsToRender:e.rowsToRender.slice(0,Math.max(1,Math.floor(a?.fallbackRowCount??20)))}),children:jsx(ld,{...e})}):jsx(e$1,{...e})}var sd="data-table-pro:saved-views:";var er=["sorting","columnVisibility","columnFilters","grouping","columnOrder","columnPinning","rowPinning","columnSizing","density","viewMode","showHiddenRows","globalFilter"],Zi=0;function Wa(e){let a=qn(e);if(!e||!a)return [];let t;try{t=a.getItem(Yn(e.key));}catch(d){return e.onError?.({error:d,operation:"read"}),[]}if(!t)return [];let o;try{o=(e.deserialize??JSON.parse)(t);}catch(d){return e.onError?.({error:d,operation:"deserialize"}),[]}if(!Ye(o)||!("version"in o)||!("views"in o))return [];let l=e.version??1,s=o.views;if(o.version!==l){if(!e.migrate)return [];try{s=e.migrate({version:o.version,views:o.views},l);}catch(d){return e.onError?.({error:d,operation:"migrate"}),[]}}return Array.isArray(s)?s.map(d=>cd(d,e.slices)).filter(d=>!!d):[]}function ar(e,a,t){let o=a.trim();if(!e||!o)return;let l=new Date().toISOString(),s={id:Dd(),name:o,createdAt:l,updatedAt:l,state:dd(t,e.slices)},d=[...Wa(e),s];return Wn(e,d,"create")?Qn(s):void 0}function tr(e,a,t){let o=t.trim();if(!e||!o)return;let l,s=Wa(e).map(d=>d.id!==a?d:(l={...d,name:o,updatedAt:new Date().toISOString()},l));if(l)return Wn(e,s,"rename")?Qn(l):void 0}function nr(e,a){if(!e)return false;let t=Wa(e),o=t.filter(l=>l.id!==a);return o.length!==t.length&&Wn(e,o,"delete")}function or(e){let a=qn(e);if(!e||!a)return false;try{a.removeItem(Yn(e.key));}catch(t){return e.onError?.({error:t,operation:"remove"}),false}return e.onChange?.([],"clear"),true}function Wn(e,a,t){let o=qn(e);if(!o)return false;let l;try{let d={version:e.version??1,views:a};l=(e.serialize??JSON.stringify)(d);}catch(d){return e.onError?.({error:d,operation:"serialize"}),false}try{o.setItem(Yn(e.key),l);}catch(d){return e.onError?.({error:d,operation:"write"}),false}let s=a.map(Qn);return e.onChange?.(s,t),true}function dd(e,a){let t=new Set(a??er),o={};for(let l of Object.keys(e))t.has(l)&&Object.assign(o,{[l]:ud(l,e[l])});return o}function cd(e,a){if(!(!Ye(e)||typeof e.id!="string"||!e.id||typeof e.name!="string"||!e.name.trim()||typeof e.createdAt!="string"||typeof e.updatedAt!="string"))return {id:e.id,name:e.name.trim(),createdAt:e.createdAt,updatedAt:e.updatedAt,state:ir(e.state,a)}}function ir(e,a){if(!Ye(e))return {};let t=new Set(a??er),o={},l=pd(e.sorting);t.has("sorting")&&l&&(o.sorting=l);let s=gd(e.pagination);t.has("pagination")&&s&&(o.pagination=s);let d=Kn(e.rowSelection);t.has("rowSelection")&&d&&(o.rowSelection=d);let m=Kn(e.columnVisibility);t.has("columnVisibility")&&m&&(o.columnVisibility=m);let p=bd(e.columnFilters);t.has("columnFilters")&&p&&(o.columnFilters=p);let C=lt(e.grouping);t.has("grouping")&&C&&(o.grouping=C);let F=e.expanded===true?true:Kn(e.expanded);t.has("expanded")&&F!==void 0&&(o.expanded=F);let S=lt(e.columnOrder);t.has("columnOrder")&&S&&(o.columnOrder=S);let L=md(e.columnPinning);t.has("columnPinning")&&L&&(o.columnPinning=L);let k=fd(e.rowPinning);t.has("rowPinning")&&k&&(o.rowPinning=k);let O=Td(e.columnSizing);return t.has("columnSizing")&&O&&(o.columnSizing=O),t.has("density")&&(e.density==="compact"||e.density==="comfortable"||e.density==="spacious")&&(o.density=e.density),t.has("viewMode")&&(e.viewMode==="table"||e.viewMode==="card")&&(o.viewMode=e.viewMode),t.has("showHiddenRows")&&typeof e.showHiddenRows=="boolean"&&(o.showHiddenRows=e.showHiddenRows),t.has("globalFilter")&&typeof e.globalFilter=="string"&&(o.globalFilter=e.globalFilter),o}function Qn(e){return {...e,state:ir(e.state,Object.keys(e.state))}}function ud(e,a){return Array.isArray(a)?a.map(t=>Ye(t)?{...t}:t):Ye(a)?e==="columnPinning"||e==="rowPinning"?{...e==="columnPinning"?{left:Array.isArray(a.left)?[...a.left]:void 0,right:Array.isArray(a.right)?[...a.right]:void 0}:{top:Array.isArray(a.top)?[...a.top]:void 0,bottom:Array.isArray(a.bottom)?[...a.bottom]:void 0}}:{...a}:a}function pd(e){if(Array.isArray(e))return e.filter(a=>Ye(a)&&typeof a.id=="string").map(a=>({id:a.id,desc:!!a.desc}))}function gd(e){if(!(!Ye(e)||!Number.isInteger(e.pageIndex)||e.pageIndex<0||!Number.isInteger(e.pageSize)||e.pageSize<1))return {pageIndex:e.pageIndex,pageSize:e.pageSize}}function bd(e){if(Array.isArray(e))return e.filter(a=>Ye(a)&&typeof a.id=="string"&&Object.prototype.hasOwnProperty.call(a,"value")).map(a=>({id:a.id,value:a.value}))}function md(e){if(Ye(e))return {left:lt(e.left)??[],right:lt(e.right)??[]}}function fd(e){if(Ye(e))return {top:lt(e.top)??[],bottom:lt(e.bottom)??[]}}function Kn(e){if(Ye(e))return Object.fromEntries(Object.entries(e).filter(a=>typeof a[1]=="boolean"))}function Td(e){if(Ye(e))return Object.fromEntries(Object.entries(e).filter(a=>typeof a[1]=="number"&&Number.isFinite(a[1])&&a[1]>=0))}function lt(e){if(Array.isArray(e))return e.filter(a=>typeof a=="string")}function qn(e){if(e){if(e.storage)return e.storage;if(!(typeof window>"u"))try{return window.localStorage}catch(a){e.onError?.({error:a,operation:"read"});return}}}function Dd(){return typeof globalThis.crypto?.randomUUID=="function"?globalThis.crypto.randomUUID():(Zi+=1,`view-${Date.now().toString(36)}-${Zi.toString(36)}`)}function Yn(e){return `${sd}${e}`}function Ye(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function rr({columns:e,currentColumnFilters:a,currentColumnPinning:t$1,effectiveColumnVisibility:o$1,enableColumnFilters:l$2,handleColumnFiltersChange:s,handleColumnPinningChange:d,labels:m,table:p,toolbarActions:C,visibleData:F,csvExport:S}){let L=T.useMemo(()=>l(e).map(({column:i,index:w})=>{let b=t(i,w),D$1=i.header,M=v(i),y=typeof D$1=="string"?D$1:M?D(M):D(b),K=t$1.left?.includes(b)===true?"left":t$1.right?.includes(b)===true?"right":false;return {id:b,label:y,visible:o$1[b]!==false,canHide:i.enableHiding!==false,pinned:K}}),[e,t$1,o$1]),k=T.useMemo(()=>l$2===false?[]:l(e).flatMap(({column:i,index:w})=>{let b=i.meta?.filter;if(!b)return [];let D$1=t(i,w),M=i.header,y=v(i),K=b.label??(typeof M=="string"?M:y?D(y):D(D$1)),Y=a.find(g=>g.id===D$1),G=b.faceting?.options,_=b.type==="numberRange"?p.getColumn(D$1)?.getFacetedMinMaxValues():void 0,R=b.type==="faceted"&&G?typeof G=="function"?G({rows:F}):G:b.type==="faceted"?Array.from(p.getColumn(D$1)?.getFacetedUniqueValues()??[]).map(([g,v])=>({label:b.faceting?.getOptionLabel?.(g)??String(g),value:String(g),count:v})):typeof b.options=="function"?b.options({rows:F}):b.options??[];return [{id:D$1,label:K,type:b.type,value:Y?.value,placeholder:b.placeholder,options:m$1(R),searchable:b.faceting?.searchable,searchPlaceholder:b.faceting?.searchPlaceholder,trueLabel:b.trueLabel,falseLabel:b.falseLabel,min:b.min??_?.[0],max:b.max??_?.[1],step:b.step}]}),[e,a,l$2,p,F]),O=T.useCallback((i,w)=>{s(b=>{let D=b.filter(M=>M.id!==i);return o(w)&&D.push({id:i,value:w}),D});},[s]),j=T.useCallback(()=>{s([]);},[s]),W=T.useCallback((i,w)=>{d(b=>{let D=(b.left??[]).filter(y=>y!==i),M=(b.right??[]).filter(y=>y!==i);return w==="left"&&D.push(i),w==="right"&&M.push(i),{left:D,right:M}});},[d]),V=T.useCallback(()=>{if(S)return q({csvExport:S,table:p,labels:m})},[S,m,p]),u=T.useMemo(()=>S?[...C??[],{key:"__csv_export__",label:m.exportCsv,icon:l$1,placement:"trailing",onClick:V}]:C??[],[S,V,m.exportCsv,C]);return {columnVisibilityOptions:L,effectiveToolbarActions:u,handleClearColumnFilters:j,handleToolbarColumnFilterChange:O,handleToolbarColumnPinningChange:W,toolbarColumnFilters:k}}function sr({columns:e,data:a,getRowId:t}){let o=T.useRef({columns:e,data:a,getRowId:t}),l=T.useRef(new Set);T.useEffect(()=>{if(!wd())return;let s=o.current;s.data!==a&&lr(s.data,a)&&!l.current.has("data")&&Xt(l.current,"data","The data array identity changed. Keep rows immutable and memoize unchanged data so filtering, row models, and virtual measurements can be reused."),s.columns!==e&&lr(s.columns,e)&&!l.current.has("columns")&&Xt(l.current,"columns","The columns array identity changed. Memoize stable column definitions so the search index and table column model can be reused."),s.getRowId!==t&&!l.current.has("getRowId")&&Xt(l.current,"getRowId","getRowId identity changed. Memoize it and return an immutable, unique id to preserve row state and virtual scroll anchoring.");let d=new Set;for(let m=0;mObject.is(t,a[o]))}function Xt(e,a,t){e.add(a),console.warn(`[data-table-pro] ${t}`);}function wd(){return globalThis.process?.env?.NODE_ENV!=="production"}var yd=T.lazy(()=>import('./data-table-auto-page-size-EICVZJQ5.js'));function wu(e){return hd(e)}function hd(e,a={}){let t$1=a.CardPanel??yi,o=a.TablePanel??Xi,l$1=e.classNames??{},{rootClassName:s$1,Button:d,Checkbox:m,Input:p,ScrollArea:C,ScrollBar:F,Skeleton:S,Table:L,TableBody:k,TableCell:O,TableFooter:j$1="tfoot",TableHead:W,TableHeader:V,TableRow:u$1,Tooltip:i,TooltipContent:w,TooltipProvider:b=T.Fragment,TooltipTrigger:D}=e,M=Ki(e),y=qi(e),{DataTableFooter:K}=Wi(e),Y=Ji(e),G=Ui(e,y),_=T.lazy(async()=>{let{createDataTableStateOverlay:g}=await import('./data-table-state-overlay-AQ7VU6EM.js');return {default:g(e)}}),R={minSize:80,size:180,maxSize:720};return function({columns:v,data:P,getRowId:A,children:Q,title:x,description:q$1,toolbarQueryValue:$,onToolbarQueryValueChange:E,toolbarQueryPlaceholder:Z,toolbarQueryDebounceMs:re,manualFiltering:Re=false,enableToolbarQueryFiltering:Se=true,globalFilterFn:ke,columnFilters:Ee,onColumnFiltersChange:Ce,enableColumnFilters:Ae,customToolbar:Ge,compactToolbar:X,rowsPerPageOptions:ve=[10,20,50,100],totalRowCount:z,hasNextPage:ye,sorting:We,onSortingChange:Xe,manualSorting:Ze=false,grouping:ra,onGroupingChange:ge,manualGrouping:la=false,enableGrouping:Qe=false,groupedColumnMode:fa="reorder",aggregationFns:$e,pageIndex:ea,pageSize:Ta,autoPageSize:aa=false,onPageIndexChange:Da,onPageSizeChange:fe,pageCount:sa,manualPagination:Ie=false,rowSelection:wa,onRowSelectionChange:Pe,enableRowSelection:Fe=false,enableMultiRowSelection:Pa=true,enableSubRowSelection:xa=true,getRowCanSelect:da,rowSelectionSelectAllScope:ka="page",expanded:Ca,onExpandedChange:be,getSubRows:_e,manualExpanding:ca=false,paginateExpandedRows:Ea,filterFromLeafRows:Ue,maxLeafRowFilterDepth:ya,detailPanel:ua,getRowCanExpand:ze,renderExpandedRow:pa,columnOrder:ha,onColumnOrderChange:Fa,enableColumnReordering:qe=false,columnGroupHeaderHeight:Va,columnPinning:je,onColumnPinningChange:ga,enableColumnPinning:Ba=false,rowPinning:Ke,onRowPinningChange:Ma,enableRowPinning:Aa=false,keepPinnedRows:r=true,toolbarActions:H=[],selectionActions:ne=[],rowActions:f=[],csvExport:I,clipboard:U,enableCellSelection:de=false,cellSelection:le,defaultCellSelection:oe,onCellSelectionChange:Ga,gridCommands:ta,density:Ia,onDensityChange:Zt,enableDensityToggle:en=false,columnPrefsKey:B,persistence:Ve,savedViews:ce,toolbarDataOperations:ba,initialState:te,state:me,onStateChange:he,apiRef:ur,labels:Xn,summaryRows:pr=[],cardRenderer:an,cardSizing:gr,cardGridClassName:br,cardClassName:mr,viewMode:Zn,onViewModeChange:fr,enableViewToggle:Tr=false,enablePrint:eo=false,enableFullscreen:Ct=false,emptyState:Dr,stateOverlay:Qa,isLoading:ao=false,loadingRowCount:wr,getRowLoadingState:Cr,hiddenRows:to,showHiddenRows:no,onShowHiddenRowsChange:yr,infiniteScroll:yt,editableRows:za,columnVisibility:oo,onColumnVisibilityChange:hr,columnSizing:io,onColumnSizingChange:Rr,enableColumnResizing:ro=false,columnResizeMode:Sr="onEnd",layoutMode:ht="fill",stickyHeader:vr=true,scrollbarVisibility:lo,showFooter:Pr=true,showToolbar:so=true,dir:tn="ltr",flexGrow:qa=true,toolbarVisibility:co,className:xr,tableClassName:kr,tableContainerClassName:uo,stripedRows:po=false,getRowClassName:go,onRowClick:nn,onActionError:st,dragAndDrop:Ya,fileUpload:Ra,virtualization:on,accessibility:bo,interactiveGrid:Rt}){let $a=T.useRef(null),mo=T.useRef(null),fo=T.useRef(null),Er=T.useRef(null),rn=T.useRef(null),Fr=T.useRef(null),[To,ln]=T.useState(0),Vr=T.useId(),Mr=T.useId();sr({columns:v,data:P,getRowId:A}),T.useMemo(()=>u(v),[v]);let Me=T.useMemo(()=>vi(Xn),[Xn]),sn=ba===true?{columnChooser:true,savedViews:true,resetLayout:true}:ba===false?{}:ba??{},dn=bo?.mode==="grid"||Rt===true||typeof Rt=="object",[La,St]=xe({defaultValue:oe??null,onChange:Ga,value:le}),Ar=$??me?.globalFilter,Ir=We??me?.sorting,zr=ra??me?.grouping,vt=ea??me?.pagination?.pageIndex,Ja=Ta??me?.pagination?.pageSize,Lr=wa??me?.rowSelection,Nr=oo??me?.columnVisibility,Or=Ee??me?.columnFilters,_r=Ca??me?.expanded,Hr=ha??me?.columnOrder,Br=je??me?.columnPinning,Gr=Ke??me?.rowPinning,$r=io??me?.columnSizing,Ur=Ia??me?.density,jr=Zn??me?.viewMode,Kr=no??me?.showHiddenRows,Do=so&&(co?.title??true),wo=Do&&x?Vr:void 0,Co=Do&&q$1?Mr:void 0;Sd(me,{columnFilters:Ee!==void 0,columnOrder:ha!==void 0,columnPinning:je!==void 0,rowPinning:Ke!==void 0,columnSizing:io!==void 0,columnVisibility:oo!==void 0,density:Ia!==void 0,expanded:Ca!==void 0,grouping:ra!==void 0,globalFilter:$!==void 0,pagination:ea!==void 0||Ta!==void 0,rowSelection:wa!==void 0,showHiddenRows:no!==void 0,sorting:We!==void 0,viewMode:Zn!==void 0});let Wr=Be("globalFilter",E,he),Qr=Be("sorting",Xe,he),qr=Be("grouping",ge,he),Yr=Be("rowSelection",Pe,he),Jr=Be("columnVisibility",hr,he),Xr=Be("columnFilters",Ce,he),Zr=Be("expanded",be,he),el=Be("columnOrder",Fa,he),al=Be("columnPinning",ga,he),tl=Be("rowPinning",Ma,he),nl=Be("columnSizing",Rr,he),ol=Be("density",Zt,he),il=Be("viewMode",fr,he),rl=Be("showHiddenRows",yr,he),Pt=T.useCallback(n=>{Da?.(n),he?.(h=>({...h,pagination:{pageIndex:n,pageSize:Ja??h.pagination.pageSize}}));},[Da,he,Ja]),cn=T.useCallback(n=>{fe?.(n),he?.(h=>({...h,pagination:{pageIndex:vt??h.pagination.pageIndex,pageSize:n}}));},[fe,he,vt]),Le=T.useCallback((n,h)=>{Rd(h,n,st);},[st]),yo=T.useMemo(()=>f.map(n=>({...n,onClick:h=>{Le({actionKey:n.key,row:h,source:"rowAction"},()=>n.onClick(h));}})),[f,Le]),ho=T.useMemo(()=>nn?n=>{Le({row:n.row,source:"rowClick"},()=>nn(n));}:void 0,[nn,Le]),ll=T.useCallback((n,h)=>{st?.({error:n,row:h,source:"edit"});},[st]),{containerWidth:sl,currentColumnFilters:xt,currentColumnOrder:un,currentColumnPinning:kt,currentRowPinning:pn,currentColumnSizing:Xa,currentColumnVisibility:Ro,currentDensity:dt,currentExpanded:Et,currentGrouping:gn,currentPagination:na,currentRowSelection:Ft,currentShowHiddenRows:bn,currentSorting:Vt,currentViewMode:Za,effectiveColumnVisibility:Mt,globalFilterValue:dl,handleDensityChange:mn,handleShowHiddenRowsChange:fn,handleViewModeChange:Tn,localSearchValue:Ua,resolvedLoadingRowCount:cl,resolvedToolbarQueryPlaceholder:ul,selectedRowIds:pl,selectedRows:gl,setCurrentColumnFilters:So,setCurrentColumnOrder:bl,setCurrentColumnPinning:At,setCurrentRowPinning:ml,setCurrentColumnVisibility:fl,setCurrentExpanded:vo,setCurrentGrouping:Tl,setCurrentRowSelection:It,setCurrentSorting:Dl,setLocalColumnSizing:wl,setLocalPagination:Dn,setLocalSearchValue:wn,shouldRenderInitialLoading:Cn,tableData:Cl,tableGetRowId:yl,visibleData:hl}=Hi({columnFilters:Or,columnOrder:Hr,columnPinning:Br,rowPinning:Gr,columnSizing:$r,columnPrefsKey:B,persistence:Ve,columnVisibility:Nr,columns:v,containerRef:$a,data:P,density:Ur,enableRowSelection:Fe,enableToolbarQueryFiltering:Se,expanded:_r,grouping:zr,getSubRows:_e,getRowId:A,hiddenRows:to,isLoading:ao,loadingRowCount:wr,manualFiltering:Re,initialState:te,onColumnFiltersChange:Xr,onColumnOrderChange:el,onColumnPinningChange:al,onRowPinningChange:tl,onColumnSizingChange:nl,onColumnVisibilityChange:Jr,onDensityChange:ol,onExpandedChange:Zr,onGroupingChange:qr,onPageIndexChange:Pt,onRowSelectionChange:Yr,onShowHiddenRowsChange:rl,onSortingChange:Qr,onToolbarQueryValueChange:Wr,onViewModeChange:il,pageIndex:vt,pageSize:Ja,resolvedLabels:Me,rowSelection:Lr,rowsPerPageOptions:ve,selectionActions:ne,showHiddenRows:Kr,sorting:Ir,toolbarQueryDebounceMs:re,toolbarQueryPlaceholder:Z,toolbarQueryValue:Ar,viewMode:jr}),yn=!!(pa&&!ua&&!_e),et=ua??(pa?{getRowCanExpand:_e?void 0:ze,render:pa}:void 0),[hn,Po]=xe({defaultValue:()=>yn?te?.expanded??{}:{},onChange:yn?vo:et?.onExpandedChange,value:yn?Et:et?.expanded}),{cancelEditing:Rn,clearEditError:xo,draftValues:Rl,editErrors:Sn,editingRowId:vn,isEditDirty:Pn,isSavingEdit:xn,saveEdit:kn,setDraftValues:Sl,setEditingRowId:vl,startEditingRow:Pl}=a$3({columns:v,editableRows:za,onError:ll}),xl=T.useMemo(()=>({cancel:Rn,cancelOnEscape:za?.cancelOnEscape!==false,clearError:xo,commit:n=>{kn(n);},commitOnEnter:za?.commitOnEnter!==false,errors:Sn,isDirty:Pn,isPending:xn}),[Rn,xo,za?.cancelOnEscape,za?.commitOnEnter,Sn,Pn,xn,kn]),{viewportElement:En,viewportHeight:Fn}=a$4(fo,Za),ko=typeof aa=="object"?aa:void 0,kl=T.useCallback(n=>{n!==na.pageSize&&(na.pageIndex!==0&&Pt(0),cn(n),Ja===void 0&&Dn({pageIndex:0,pageSize:n}));},[na.pageIndex,na.pageSize,Pt,cn,Ja,Dn]),El=aa===true||ko!==void 0,zt=T.useCallback(()=>typeof window>"u"||typeof window.print!="function"?false:(window.print(),true),[]),Lt=T.useCallback(async()=>{let n=$a.current;return !n||typeof document>"u"?false:document.fullscreenElement?typeof document.exitFullscreen!="function"?false:(await document.exitFullscreen(),true):typeof n.requestFullscreen!="function"?false:(await n.requestFullscreen(),true)},[]),[Eo,Fl]=T.useState(false);T.useEffect(()=>{if(!Ct||typeof document>"u")return;let n=()=>{Fl(document.fullscreenElement===$a.current);};return n(),document.addEventListener("fullscreenchange",n),()=>document.removeEventListener("fullscreenchange",n)},[Ct]);let Vl=T.useCallback(()=>{Ra?.disabled||mo.current?.click();},[Ra?.disabled]),Ml=T.useCallback(n=>{Le({source:"fileUpload"},()=>Ra?.onFilesSelected(n));},[Ra,Le]),Al=T.useMemo(()=>{if(ht!=="fill")return false;let n=l(v).filter(({column:h,index:se})=>Mt[t(h,se)]!==false);return n.length>0&&n.every(({column:h$1,index:se})=>{let ut=t(h$1,se);return h(h$1)||Object.prototype.hasOwnProperty.call(Xa,ut)})},[v,Xa,Mt,ht]),Il=Pi({Button:d,Checkbox:m,DataTableRowActions:y,Tooltip:i,TooltipContent:w,TooltipTrigger:D,cancelEditing:Rn,columns:v,editableRows:za,editErrors:Sn,editingRowId:vn,enableRowSelection:Fe,enableRowPinning:Aa,hasTreeExpansion:!!_e,isSavingEdit:xn,isEditDirty:Pn,includeFillSpacer:Al,labels:Me,lastSelectedRowIdRef:Fr,detailPanel:et,detailExpanded:hn,onDetailExpandedChange:Po,rowSelectionSelectAllScope:ka,rowActions:yo,saveEdit:kn,startEditingRow:Pl,tableRef:rn}),zl=T.useMemo(()=>j(v),[v]),{effectivePageCount:Ll,footerTotalRowCount:Nl,handleFooterPageIndexChange:Ol,handleFooterPageSizeChange:_l,isPageCountKnown:Hl,renderedRows:Fo,topPinnedRows:Bl,bottomPinnedRows:Gl,reorderColumn:Vo,rowsToRender:$l,sentinelRef:Mo,table:ae,virtualPaddingBottom:Ul,virtualPaddingTop:jl,visibleLeafColumns:Vn}=Mi({autoResetPageIndex:false,columnGroupPaths:zl,columnResizeMode:Sr,dir:tn,currentColumnFilters:xt,currentColumnOrder:un,currentColumnPinning:kt,currentRowPinning:pn,currentColumnSizing:Xa,currentExpanded:Et,currentGrouping:gn,currentPagination:na,currentRowSelection:Ft,currentSorting:Vt,currentViewMode:Za,defaultColumn:R,effectiveColumnVisibility:Mt,enableColumnResizing:ro,enableRowPinning:Aa,enableRowSelection:Fe,enableMultiRowSelection:Pa,enableSubRowSelection:xa,getRowCanSelect:da,getRowCanExpand:ze,getSubRows:_e,aggregationFns:$e,groupedColumnMode:fa,globalFilterFn:ke,globalFilterValue:dl,hasNextPage:ye,handleColumnFiltersChange:So,handleColumnOrderChange:bl,handleColumnPinningChange:At,handleRowPinningChange:ml,handleColumnVisibilityChange:fl,handleExpandedChange:vo,handleGroupingChange:Tl,infiniteScroll:yt,keepPinnedRows:r,manualFiltering:Re,manualGrouping:la,manualExpanding:ca,manualPagination:Ie,manualSorting:Ze,onActionError:st,onPageIndexChange:Pt,onPageSizeChange:cn,pageCount:sa,pageIndex:vt,pageSize:Ja,paginateExpandedRows:Ea,filterFromLeafRows:Ue,maxLeafRowFilterDepth:ya,setCurrentRowSelection:It,setCurrentSorting:Dl,setLocalColumnSizing:wl,setLocalPagination:Dn,shouldRenderInitialLoading:Cn,tableColumns:Il,tableData:Cl,tableGetRowId:yl,tableRef:rn,totalRowCount:z,virtualization:on}),Ao=Gi({columns:v,columnSizing:Xa,editableRows:!!za,enableRowSelection:Fe,hasRowActions:f.length>0,hasRowExpansion:!!(_e||et),layoutMode:ht,uiClassNames:l$1,visibleLeafColumns:Vn}),{explicitlySizedColumnIds:Nt,fillMinWidth:Kl,getColumnLayout:Wl}=Ao,Ql=T.useMemo(()=>new Set(l(v).flatMap(({column:n,index:h})=>Object.prototype.hasOwnProperty.call(n,"cell")&&typeof n.cell=="function"?[t(n,h)]:[])),[v]),ql=Vn.length,Yl=T.useMemo(()=>({Checkbox:m,Input:p,Skeleton:S,TableCell:O,TableRow:u$1}),[]),Jl=T.useMemo(()=>l(v).some(({column:n})=>n.meta?.cardTitle),[v]),Xl=T.useCallback((n,h)=>{Nt.has(n)||Object.prototype.hasOwnProperty.call(ae.store.state.columnSizing,n)||flushSync(()=>{ae.setColumnSizing(se=>({...se,[n]:h}));});},[Nt,ae]),Zl=T.useCallback(n=>{if(Nt.has(n)){ae.getColumn(n)?.resetSize();return}ae.setColumnSizing(h=>{if(!Object.prototype.hasOwnProperty.call(h,n))return h;let se={...h};return delete se[n],se});},[Nt,ae]),Mn=ae.getFilteredRowModel().rows.map(n=>n.original),An=Qa?.empty??Dr,Io=typeof An=="function"?An({rows:Mn,toolbarQueryValue:Ua}):An,zo=T.useMemo(()=>Qa?{...Qa,onRetry:Qa.onRetry?()=>Le({source:"retry"},Qa.onRetry):void 0}:void 0,[Le,Qa]),Lo=zo?.error!=null?jsx(T.Suspense,{fallback:null,children:jsx(_,{labels:Me,overlay:zo,rows:Mn,toolbarQueryValue:Ua})}):void 0,{columnVisibilityOptions:es,effectiveToolbarActions:No,handleClearColumnFilters:as,handleToolbarColumnFilterChange:ts,handleToolbarColumnPinningChange:ns,toolbarColumnFilters:os}=rr({columns:v,currentColumnFilters:xt,currentColumnPinning:kt,csvExport:I,effectiveColumnVisibility:Mt,enableColumnFilters:Ae,handleColumnFiltersChange:So,handleColumnPinningChange:At,labels:Me,table:ae,toolbarActions:H,visibleData:hl}),is=T.useMemo(()=>[...No,...eo?[{key:"__print__",label:Me.print,placement:"trailing",onClick:()=>{zt();}}]:[],...Ct?[{key:"__fullscreen__",label:Eo?Me.exitFullscreen:Me.enterFullscreen,placement:"trailing",onClick:()=>Lt()}]:[]].map(n=>({...n,onClick:h=>{Le({actionKey:n.key,source:"toolbarAction"},()=>n.onClick(h));}})),[No,Ct,eo,Eo,zt,Me.enterFullscreen,Me.exitFullscreen,Me.print,Le,Lt]),rs=T.useMemo(()=>ne.map(n=>({...n,onClick:h=>{Le({actionKey:n.key,source:"selectionAction"},()=>n.onClick(h));}})),[Le,ne]),Oo=T.useMemo(()=>({sorting:Vt,pagination:na,rowSelection:Ft,columnVisibility:Ro,columnFilters:xt,expanded:Et,grouping:gn,columnOrder:un,columnPinning:kt,rowPinning:pn,columnSizing:Xa,density:dt,viewMode:Za,showHiddenRows:bn,globalFilter:Ua}),[xt,un,kt,pn,Xa,Ro,dt,Et,gn,na,Ft,bn,Vt,Za,Ua]),ct=T.useCallback(()=>Pd(Oo),[Oo]),Na=T.useCallback(n=>{n.sorting!==void 0&&ae.setSorting(n.sorting),n.pagination!==void 0&&ae.setPagination(n.pagination),n.rowSelection!==void 0&&It(n.rowSelection),n.columnVisibility!==void 0&&ae.setColumnVisibility(n.columnVisibility),n.columnFilters!==void 0&&ae.setColumnFilters(n.columnFilters),n.expanded!==void 0&&ae.setExpanded(n.expanded),n.grouping!==void 0&&ae.setGrouping(n.grouping),n.columnOrder!==void 0&&ae.setColumnOrder(n.columnOrder),n.columnPinning!==void 0&&At(n.columnPinning),n.rowPinning!==void 0&&ae.setRowPinning(n.rowPinning),n.columnSizing!==void 0&&ae.setColumnSizing(n.columnSizing),n.density!==void 0&&mn(n.density),n.viewMode!==void 0&&Tn(n.viewMode),n.showHiddenRows!==void 0&&fn(n.showHiddenRows),n.globalFilter!==void 0&&wn(n.globalFilter);},[mn,fn,Tn,wn,At,It,ae]),at=T.useCallback(()=>Li(Ve??B),[B,Ve]),In=T.useCallback(n=>{n?.clearPersistence&&at(),Na({columnVisibility:te?.columnVisibility??{},columnOrder:te?.columnOrder??[],columnPinning:te?.columnPinning??s(v),rowPinning:te?.rowPinning??{top:[],bottom:[]},columnSizing:te?.columnSizing??{}});},[at,v,te,Na]),_o=T.useCallback(n=>{n?.clearPersistence&&at(),Na({sorting:te?.sorting??[],pagination:te?.pagination??{pageIndex:0,pageSize:ve[0]??20},rowSelection:te?.rowSelection??{},columnVisibility:te?.columnVisibility??{},columnFilters:te?.columnFilters??[],expanded:te?.expanded??{},grouping:te?.grouping??[],columnOrder:te?.columnOrder??[],columnPinning:te?.columnPinning??s(v),rowPinning:te?.rowPinning??{top:[],bottom:[]},columnSizing:te?.columnSizing??{},density:te?.density??"comfortable",viewMode:te?.viewMode??"table",showHiddenRows:te?.showHiddenRows??false,globalFilter:te?.globalFilter??""});},[at,v,te,Na,ve]),Ho=T.useCallback(()=>Wa(ce),[ce]),Ot=T.useCallback(n=>ar(ce,n,ct()),[ct,ce]),zn=T.useCallback(n=>{let h=Wa(ce).find(se=>se.id===n);return h?(Na(h.state),ce?.onApply?.(h),true):false},[Na,ce]),_t=T.useCallback((n,h)=>tr(ce,n,h),[ce]),Ht=T.useCallback(n=>nr(ce,n),[ce]),Bo=T.useCallback(()=>or(ce),[ce]),ls=T.useMemo(()=>Wa(ce),[ce,To]),ss=T.useCallback(n=>{let h=Ot(n);return h&&ln(se=>se+1),h},[Ot]),ds=T.useCallback((n,h)=>{let se=_t(n,h);return se&&ln(ut=>ut+1),se},[_t]),cs=T.useCallback(n=>{let h=Ht(n);return h&&ln(se=>se+1),h},[Ht]),Go=T.useCallback(n=>q({csvExport:n??(I||true),labels:Me,table:ae}),[I,Me,ae]),Ln=T.useCallback(async n=>{let{copyDataTableToClipboard:h}=await import('./data-table-clipboard-EIUFVZIY.js');return h({clipboard:n??(U?.copy===false?false:La?{...U?.copy===true?{}:U?.copy,scope:"cellSelection"}:U?.copy??true),cellSelection:La,table:ae})},[U?.copy,La,ae]),$o=T.useCallback((n,h="top")=>{try{let se=ae.getRow(n,!0);return se.getCanPin()?(se.pin(h),!0):!1}catch{return false}},[ae]),Uo=T.useCallback(n=>{try{let h=ae.getRow(n,!0);return h.getCanPin()?(h.pin(!1),!0):!1}catch{return false}},[ae]);return T.useImperativeHandle(ur,()=>({getTable:()=>rn.current,getState:ct,snapshot:ct,restore:Na,resetColumnLayout:In,resetState:_o,clearPersistedState:at,getSavedViews:Ho,createSavedView:Ot,applySavedView:zn,renameSavedView:_t,deleteSavedView:Ht,clearSavedViews:Bo,pinRow:$o,unpinRow:Uo,focus:()=>{$a.current?.focus();},scrollToRow:n=>dr($a.current,"row",n),scrollToColumn:n=>dr($a.current,"column",n),exportCsv:Go,copyToClipboard:Ln,getCellSelection:()=>La,setCellSelection:St,clearCellSelection:()=>St(null),print:zt,toggleFullscreen:Lt}),[zn,at,Bo,Ln,La,Ot,Ht,Go,Ho,ct,_t,In,_o,Na,$o,zt,St,Uo,Lt]),jsx(b,{children:jsxs("div",{ref:$a,"data-dtp-slot":"data-table-root","data-density":dt,"data-dtp-striped-rows":po||void 0,"aria-busy":ao||void 0,dir:tn,tabIndex:-1,className:a$2("@container/data-table data-table-container-query flex w-full min-w-0 flex-col",qa?"h-full min-h-0 flex-1":"grow",s$1),onDragEnter:Ya?.onDragEnter,onDragOver:Ya?.onDragOver,onDragLeave:Ya?.onDragLeave,onDrop:Ya?.onDrop,onKeyDown:n=>{if(dn&&ta&&(n.ctrlKey||n.metaKey)&&n.key.toLowerCase()==="z"&&!Jn(n.target)){let h=n.shiftKey?ta.redo:ta.undo;h&&(n.preventDefault(),Le({source:n.shiftKey?"redo":"undo"},()=>h({cellSelection:La,table:ae})));return}!U?.copy||!(n.ctrlKey||n.metaKey)||n.key.toLowerCase()!=="c"||Jn(n.target)||(n.preventDefault(),Le({source:"clipboardCopy"},async()=>{await Ln(U.copy===true?void 0:La&&typeof U.copy=="object"&&!U.copy.scope?{...U.copy,scope:"cellSelection"}:U.copy);}));},onPaste:n=>{let h=U?.paste;if(!h||h.enabled===false||Jn(n.target))return;let se=n.clipboardData.getData("text/plain");se&&((h.preventDefault??true)&&n.preventDefault(),Le({source:"clipboardPaste"},async()=>{let{parseDataTableClipboardText:ut}=await import('./data-table-clipboard-EIUFVZIY.js');return h.onPaste({table:ae,text:se,values:ut(se)})}));},children:[El?jsx(T.Suspense,{fallback:null,children:jsx(yd,{config:ko,currentPageSize:na.pageSize,enabled:true,onPageSizeChange:kl,viewportElement:En,viewportHeight:Fn})}):null,Ra?jsx("input",{ref:mo,className:"hidden",type:"file",accept:Ra.accept,multiple:Ra.multiple??true,disabled:Ra.disabled,onChange:n=>{let h=n.currentTarget.files;h?.length&&Ml(h),n.currentTarget.value="";}}):null,jsx("div",{"data-dtp-slot":"data-table-layout",className:a$2("flex w-full flex-col",qa?"min-h-0 flex-1":"grow"),children:jsxs("div",{"data-dtp-slot":"data-table-main",className:a$2("flex w-full flex-col gap-4",qa?"min-h-0 flex-1":"grow",xr),children:[so?jsx(Si,{allRows:Mn,columnFilters:os,columnVisibilityOptions:es,compactToolbar:X,customToolbar:Ge,DataTableToolbar:Y,density:dt,description:q$1,descriptionId:Co,effectiveToolbarActions:is,enableColumnPinning:Ba,enableGrouping:Qe,enableToolbarColumnChooser:sn.columnChooser===true,enableToolbarFilterChips:!!ba,enableToolbarResetLayout:sn.resetLayout===true,enableToolbarSavedViews:sn.savedViews===true&&!!ce,enableDensityToggle:en,enableViewToggle:Tr&&!!an,hiddenRowsLabel:to?.label,labels:Me,onClearColumnFilters:as,onColumnFilterChange:ts,onColumnPinningChange:ns,onDensityChange:mn,onShowHiddenRowsChange:fn,onToolbarQueryValueChange:wn,reorderColumn:Vo,onResetColumnLayout:In,onCreateSavedView:ss,onApplySavedView:zn,onRenameSavedView:ds,onDeleteSavedView:cs,onViewModeChange:Tn,openFileDialog:Ra?Vl:void 0,selectedRowIds:pl,selectedRows:gl,selectionActions:rs,savedViews:ls,showHiddenRows:bn,table:ae,title:x,titleId:wo,toolbarQueryPlaceholder:ul,toolbarQueryValue:Ua,toolbarVisibility:co,viewMode:Za}):null,jsx("div",{"data-dtp-slot":"data-table-content",className:a$2(qa?"flex min-h-0 flex-1 flex-col":""),children:Za==="card"&&an?jsx(t$1,{cardClassName:mr,cardGridClassName:br,cardSizing:gr,cardRenderer:an,containerWidth:sl,currentDetailExpanded:hn,currentRowSelection:Ft,DataTableCardView:G,DataTableEmptyState:M,dragAndDrop:Ya,editableRows:za,editingRowId:vn,emptyNode:Io,stateOverlayNode:Lo,enableRowSelection:Fe,flexGrow:qa,getRowClassName:go,hasCardTitle:Jl,infiniteScroll:yt,localSearchValue:Ua,onRowClick:ho,renderedRows:Fo,detailPanel:et,resolvedLabels:Me,resolvedLoadingRowCount:cl,rowActions:yo,ScrollArea:C,scrollbarVisibility:lo,sentinelRef:Mo,setCurrentDetailExpanded:Po,setCurrentRowSelection:It,setEditingRowId:vl,shouldRenderInitialLoading:Cn,tableContainerClassName:uo,uiClassNames:l$1,virtualization:on}):jsx(o,{ariaDescribedBy:Co,ariaLabelledBy:wo,bodyRowComponents:Yl,columnLayouts:Ao.columnLayouts,currentDensity:dt,columnGroupHeaderHeight:Va,currentDetailExpanded:hn,currentSorting:Vt,dir:tn,DataTableEmptyState:M,dragAndDrop:Ya,draggedColumnIdRef:Er,draftValues:Rl,editingRowId:vn,editingContext:xl,emptyNode:Io,stateOverlayNode:Lo,enableColumnReordering:qe,enableColumnResizing:ro,explicitCustomCellColumnIds:Ql,fillMinWidth:Kl,flexGrow:qa,getColumnLayout:Wl,getRowClassName:go,getRowLoadingState:Cr,infiniteScroll:yt,layoutMode:ht,localSearchValue:Ua,onRowClick:ho,primeColumnForResize:Xl,renderedRows:Fo,detailPanel:et,topPinnedRows:Bl,bottomPinnedRows:Gl,reorderColumn:Vo,resetColumnSize:Zl,resolvedLabels:Me,rowsToRender:$l,ScrollArea:C,ScrollBar:F,scrollbarVisibility:lo,sentinelRef:Mo,setDraftValues:Sl,shouldRenderInitialLoading:Cn,stickyHeader:vr,stripedRows:po,summaryRows:pr,table:ae,tableClassName:kr,tableContainerClassName:uo,Table:L,TableBody:k,TableCell:O,TableFooter:j$1,TableHead:W,TableHeader:V,TableRow:u$1,tableScrollContainerRef:fo,tableScrollElement:En,uiClassNames:l$1,viewportHeight:Fn,virtualization:on,gridMode:dn,gridPageSize:bo?.pageSize??(typeof Rt=="object"?Rt.pageSize:void 0),cellSelectionEnabled:dn&&(de||le!==void 0||oe!==void 0),cellSelection:La,onCellSelectionChange:St,gridRowOffset:Ie?na.pageIndex*na.pageSize:0,totalRowCount:z,virtualPaddingBottom:Ul,virtualPaddingTop:jl,visibleLeafColumnCount:ql,visibleLeafColumns:Vn})}),jsx(hi,{currentPagination:na,DataTableFooter:K,effectivePageCount:Ll,footerTotalRowCount:Nl,handleFooterPageIndexChange:Ol,handleFooterPageSizeChange:_l,labels:Me,pageCountKnown:Hl,rowsPerPageOptions:ve,showFooter:Pr&&!yt?.enabled,children:Q})]})})]})})}}function Rd(e,a,t){let o;try{o=e();}catch(l){t?.({...a,error:l});return}Promise.resolve(o).catch(l=>{t?.({...a,error:l});});}function Be(e,a,t){let o=T.useCallback(l=>{a?.(l),t?.(s=>({...s,[e]:l}));},[e,a,t]);return a||t?o:void 0}function Sd(e,a){let t=T.useRef(new Set);T.useEffect(()=>{if(!(!e||!vd()))for(let o of Object.keys(a))e[o]===void 0||!a[o]||t.current.has(o)||(t.current.add(o),console.warn(`[data-table-pro] Both state.${o} and its legacy controlled prop were provided. The legacy prop takes precedence during the 4.x compatibility window.`));},[a,e]);}function vd(){return globalThis.process?.env?.NODE_ENV!=="production"}function Pd(e){return {sorting:e.sorting.map(a=>({...a})),pagination:{...e.pagination},rowSelection:{...e.rowSelection},columnVisibility:{...e.columnVisibility},columnFilters:e.columnFilters.map(a=>({...a})),expanded:typeof e.expanded=="boolean"?e.expanded:{...e.expanded},grouping:[...e.grouping??[]],columnOrder:[...e.columnOrder],columnPinning:{left:e.columnPinning.left?[...e.columnPinning.left]:void 0,right:e.columnPinning.right?[...e.columnPinning.right]:void 0},rowPinning:{top:[...e.rowPinning.top],bottom:[...e.rowPinning.bottom]},columnSizing:{...e.columnSizing},density:e.density,viewMode:e.viewMode,showHiddenRows:e.showHiddenRows,globalFilter:e.globalFilter}}function dr(e,a,t){if(!e)return false;let o=a==="row"?"data-row-id":"data-column-id",l=Array.from(e.querySelectorAll(`[${o}]`)).find(s=>s.getAttribute(o)===t);return l?(l.scrollIntoView?.({block:"nearest",inline:"nearest"}),true):false}function Jn(e){return e instanceof HTMLElement?e.isContentEditable||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement:false}export{yi as a,hi as b,Si as c,Pi as d,xe as e,Mi as f,Hi as g,Gi as h,wu as i,hd as j};//# sourceMappingURL=chunk-NL6LSUVL.js.map -//# sourceMappingURL=chunk-NL6LSUVL.js.map \ No newline at end of file diff --git a/dist/chunk-NL6LSUVL.js.map b/dist/chunk-NL6LSUVL.js.map deleted file mode 100644 index 6f84120..0000000 --- a/dist/chunk-NL6LSUVL.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/core/data-table/data-table-base-card-panel.tsx","../src/core/data-table/data-table-card-panel.tsx","../src/core/data-table/data-table-footer-section.tsx","../src/core/data-table/data-table-toolbar-section.tsx","../src/core/data-table/data-table-labels.ts","../src/core/data-table/use-data-table-columns.tsx","../src/core/data-table/use-controllable-state.ts","../src/core/data-table/use-data-table-infinite-scroll.ts","../src/core/data-table/use-data-table-pagination-clamp.ts","../src/core/data-table/use-data-table-search-index.ts","../src/core/data-table/tanstack-v9.ts","../src/core/data-table/use-data-table-instance.ts","../src/core/data-table/use-data-table-column-prefs.ts","../src/core/data-table/use-data-table-container-width.ts","../src/core/data-table/use-data-table-state.ts","../src/core/data-table/use-column-layout.ts","../src/core/data-table/create-data-table-card-view.tsx","../src/core/data-table/create-data-table-empty-state.tsx","../src/core/data-table/create-data-table-pagination.tsx","../src/core/data-table/create-data-table-row-actions.tsx","../src/core/data-table/create-data-table-toolbar.tsx","../src/core/data-table/data-table-table-panel-router.tsx","../src/core/data-table/data-table-saved-views.ts","../src/core/data-table/use-data-table-toolbar-features.ts","../src/core/data-table/use-data-table-performance-diagnostics.ts","../src/core/data-table/create-data-table.tsx"],"names":["DataTableBaseCardPanel","cardClassName","cardGridClassName","cardSizing","cardRenderer","currentRowSelection","currentDetailExpanded","DataTableCardView","DataTableEmptyState","dragAndDrop","editableRows","editingRowId","emptyNode","enableRowSelection","flexGrow","getRowClassName","hasCardTitle","infiniteScroll","localSearchValue","onRowClick","renderedRows","detailPanel","resolvedLabels","resolvedLoadingRowCount","rowActions","ScrollArea","scrollbarVisibility","sentinelRef","setCurrentDetailExpanded","setCurrentRowSelection","setEditingRowId","shouldRenderInitialLoading","stateOverlayNode","tableContainerClassName","uiClassNames","shouldRenderCards","cardScrollContainerRef","Ci","renderCardView","rows","options","jsx","jsxs","cn","LazyDataTableVirtualCardPanel","Wt","DataTableCardPanel","props","config","DataTableFooterSection","children","currentPagination","DataTableFooter","effectivePageCount","footerTotalRowCount","handleFooterPageIndexChange","handleFooterPageSizeChange","labels","pageCountKnown","rowsPerPageOptions","showFooter","DataTableToolbarSection","allRows","columnFilters","columnVisibilityOptions","compactToolbar","customToolbar","DataTableToolbar","description","descriptionId","effectiveToolbarActions","enableColumnPinning","enableGrouping","enableToolbarColumnChooser","enableToolbarFilterChips","enableToolbarResetLayout","enableToolbarSavedViews","enableDensityToggle","enableViewToggle","hiddenRowsLabel","onClearColumnFilters","onColumnFilterChange","onColumnPinningChange","onDensityChange","onShowHiddenRowsChange","onToolbarQueryValueChange","reorderColumn","onResetColumnLayout","onCreateSavedView","onApplySavedView","onRenameSavedView","onDeleteSavedView","onViewModeChange","openFileDialog","selectedRowIds","selectedRows","selectionActions","savedViews","showHiddenRows","table","title","titleId","toolbarQueryPlaceholder","toolbarQueryValue","toolbarVisibility","density","viewMode","columnId","visible","DATA_TABLE_DEFAULT_LABELS","count","label","pageIndex","pageCount","rowId","columnLabel","name","resolveDataTableLabels","useDataTableColumns","Button","Checkbox","DataTableRowActions","Tooltip","TooltipContent","TooltipTrigger","cancelEditing","columns","editErrors","enableRowPinning","hasTreeExpansion","isSavingEdit","isEditDirty","includeFillSpacer","lastSelectedRowIdRef","detailExpanded","onDetailExpandedChange","rowSelectionSelectAllScope","saveEdit","startEditingRow","tableRef","selectRowRange","qt","targetRowId","selected","tableInstance","row","isDataTableLoadingRow","startIndex","endIndex","from","to","current","next","item","defs","expansionColumnSize","UTILITY_COLUMN_SIZE","canExpandTree","canExpandDetail","isTreeExpanded","isDetailExpanded","IconChevronDown","toggleDataTableExpandedState","selectsFilteredRows","selectableRows","allSelected","someSelected","checked","event","column","decorateFilterableColumn","position","useControllableState","defaultValue","onChange","value","uncontrolledValue","setUncontrolledValue","_a","currentValue","currentValueRef","setValue","updater","nextValue","useDataTableInfiniteScroll","enabled","hasMore","isLoadingMore","onLoadMore","onError","Ha","isRequestInFlightRef","onLoadMoreEvent","onErrorEvent","error","target","observer","entries","result","useDataTablePaginationClamp","maxPageIndex","onPageIndexChange","setLocalPageIndex","ki","nextPageIndex","useDataTableSearchIndex","Fi","valuesByRow","filterValue","query","normalizeDataTableSearchText","original","valuesByColumn","text","createDataTableFeatures","customAggregationFns","tableFeatures","columnFacetingFeature","columnFilteringFeature","globalFilteringFeature","rowAggregationFeature","columnGroupingFeature","columnOrderingFeature","columnPinningFeature","columnSizingFeature","columnResizingFeature","columnVisibilityFeature","rowExpandingFeature","rowPaginationFeature","rowPinningFeature","rowSelectionFeature","rowSortingFeature","createExpandedRowModel","createFacetedMinMaxValues","createFacetedRowModel","createFacetedUniqueValues","createFilteredRowModel","createGroupedRowModel","createPaginatedRowModel","createSortedRowModel","builtInAggregationFns","builtInFilterFns","builtInSortFns","useDataTableInstance","autoResetPageIndex","columnGroupPaths","columnResizeMode","dir","currentColumnFilters","currentColumnOrder","currentColumnPinning","currentRowPinning","currentColumnSizing","currentExpanded","currentGrouping","currentSorting","currentViewMode","defaultColumn","effectiveColumnVisibility","enableColumnResizing","enableMultiRowSelection","enableSubRowSelection","getRowCanSelect","getRowCanExpand","getSubRows","aggregationFns","groupedColumnMode","globalFilterFn","globalFilterValue","hasNextPage","handleColumnFiltersChange","handleColumnOrderChange","handleColumnPinningChange","handleRowPinningChange","handleColumnVisibilityChange","handleExpandedChange","handleGroupingChange","keepPinnedRows","manualFiltering","manualGrouping","manualExpanding","manualPagination","manualSorting","onActionError","onPageSizeChange","pageSize","paginateExpandedRows","filterFromLeafRows","maxLeafRowFilterDepth","setCurrentSorting","setLocalColumnSizing","setLocalPagination","tableColumns","tableData","tableGetRowId","totalRowCount","virtualization","cachedGlobalFilterFn","generatedColumnIds","De","getDataTableLeafColumns","index","getColumnId","effectiveColumnOrder","columnIds","dataColumnIds","isUtilityColumnId","dataColumnIdSet","orderedDataColumnIds","unorderedDataColumnIds","effectiveColumnPinning","columnIdSet","dataLeft","dataRight","handleTanStackColumnPinningChange","effectiveRowPinning","availableRowIds","visitRows","subRows","top","topIds","bottom","tanStackRowSelection","handleTanStackRowSelectionChange","tableState","handlePaginationChange","handleColumnSizingChange","features","useTable","visibleLeafColumns","sourceColumnId","targetColumnId","canReorderDataTableColumn","defaultOrder","nextOrder","moveColumnInOrder","topPinnedRows","bottomPinnedRows","virtualizationConfig","virtualRowsEnabled","fallbackRowCount","rowsToRender","rowIndex","usesManualRows","derivedTotalRowCount","effectiveTotalRowCount","isPageCountKnown","nextPageSize","STORAGE_PREFIX","DEFAULT_VERSION","ALL_SLICES","readDataTableColumnPrefs","input","resolvePersistenceConfig","storage","resolveStorage","storageKey","getStorageKey","parsed","targetVersion","candidate","isPersistencePayload","selectPersistenceSlices","validateDataTableColumnPrefs","clearDataTableColumnPrefs","usePersistDataTableColumnPrefs","key","persistence","prefs","version","debounceMs","selectedState","serialized","Ka","payload","operation","write","timeout","isRecord","slices","slice","visibility","validateBooleanRecord","sizing","validateSizingRecord","order","validateStringArray","left","right","rowPinning","validateRowPinning","isDataTableDensity","entry","BREAKPOINT_WIDTHS","DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS","first","second","useDataTableContainerWidth","containerRef","widthRef","rt","width","setWidth","element","updateWidth","inlineSize","nextWidth","quantizeDataTableContainerWidth","getResizeObserverInlineSize","bucket","breakpointWidth","contentBoxSize","size","getInlineSize","useDataTableState","columnOrder","columnPinning","columnSizing","columnPrefsKey","columnVisibility","data","enableToolbarQueryFiltering","expanded","grouping","getRowId","hiddenRows","initialState","isLoading","loadingRowCount","onColumnFiltersChange","onColumnOrderChange","onRowPinningChange","onColumnSizingChange","onColumnVisibilityChange","onExpandedChange","onGroupingChange","onRowSelectionChange","onSortingChange","rowSelection","sorting","toolbarQueryDebounceMs","persistenceConfig","ee","persistedColumnPrefs","localPagination","currentColumnVisibility","setCurrentColumnVisibility","setCurrentColumnFilters","setCurrentExpanded","setCurrentColumnOrder","setCurrentColumnPinning","getInitialColumnPinning","setCurrentRowPinning","setCurrentColumnSizing","setCurrentViewMode","setCurrentGrouping","currentShowHiddenRows","setCurrentShowHiddenRows","currentDensity","setCurrentDensity","resolvedToolbarQueryValue","resolvedToolbarQueryPlaceholder","resolvedToolbarQueryDebounceMs","setLocalSearchValue","containerWidth","hasOnSearchValueChange","lastReportedSearchValueRef","onToolbarQueryValueChangeEvent","deferredSearchValue","handleViewModeChange","nextViewMode","handleShowHiddenRowsChange","nextShowHiddenRows","handleDensityChange","nextDensity","resetPageIndexForFilterChange","lastFilterStateRef","previous","filtersChanged","globalFilterChanged","responsiveColumnVisibility","isHiddenAtContainerWidth","visibleData","isRowVisible","loadingRows","createDataTableLoadingRows","getDataTableLoadingRowId","shouldResolveSelectedRows","rowById","currentRows","EMPTY_COLUMN_LAYOUT","useColumnLayout","hasRowActions","hasRowExpansion","layoutMode","explicitlySizedColumnIds","oa","ids","hasExplicitDataTableColumnSize","minimumColumnWidths","widths","configuredMinWidth","getConfiguredColumnMinWidth","configuredFixedWidthColumnIds","hasFixedDataTableColumnSize","pinnedColumns","leftOffset","getFixedSide","getColumnLayoutSize","rightOffset","fillColumnId","fixedWidthColumnIds","columnLayouts","layouts","isSelectionColumn","isExpansionColumn","isActionsColumn","isUtilityColumn","isSpacerColumn","isFlexibleFillColumn","columnMinWidth","shouldFixWidth","baseStyle","fixedSide","pinnedStyle","cellStyle","getPinnedColumnClassName","fillMinWidth","total","layout","getColumnLayout","createDataTableCardView","ui","Card","CardContent","CardHeader","Skeleton","onEditingRowIdChange","getRowDraggable","onRowDragStart","onRowDragEnd","resolvedCardSizing","resolvedCardGridClassName","getCardGridClassName","cardGridClasses","cardItemClasses","stateClassName","getCardItemClassName","_","originalRow","isSelected","isEditing","hasCardActions","showCardGradient","showCardOverlayControls","handleCardActivate","getCardRendererClassName","isDataTableInteractiveTarget","updateRowSelection","canSelect","canMultiSelect","nextSelection","createDataTableEmptyState","Empty","EmptyContent","EmptyDescription","EmptyHeader","EmptyMedia","EmptyTitle","IconInbox","createDataTablePagination","Pagination","PaginationContent","PaginationEllipsis","PaginationFirst","PaginationItem","PaginationLast","PaginationLink","PaginationNext","PaginationPrevious","Select","SelectContent","SelectGroup","SelectItem","SelectTrigger","SelectValue","DataTablePagination","pages","getVisiblePages","canGoPrevious","canGoNext","lastPageIndex","option","IconDatabase","currentPageIndex","currentPage","page","orderedPages","items","createDataTableRowActions","DropdownMenu","DropdownMenuContent","DropdownMenuGroup","DropdownMenuItem","DropdownMenuSeparator","DropdownMenuTrigger","onStartEditing","onCancelEditing","actions","action","canUseRowAction","stopRowClickPropagation","Qi","IconX","allowEdit","canEditRow","canPin","IconDots","IconEdit","Fragment","Icon","resolveRowActionLabel","LazyToolbarDataOperations","ia","createDataTableToolbar","ButtonGroup","DropdownMenuCheckboxItem","DropdownMenuLabel","InputGroup","InputGroupAddon","InputGroupInput","toolbarActions","compactSearchInputRef","isCompactSearchVisible","setIsCompactSearchVisible","compactToolbarIconButtonClassName","primaryActions","trailingActions","showTitle","showSearch","showActions","showTrailingActions","showOptions","showViewToggle","showCustomToolbar","hasVisibleTitle","hasVisibleSearch","hasVisiblePrimaryActions","hasVisibleSelectionActions","hasVisibleOptions","hasToolbarOperationsMenu","activeColumnFilters","filter","hasColumnFilterValue","toolbarOperationsUi","renderToolbarDataOperations","placement","groupableColumns","groupedColumns","id","hasVisibleViewToggle","hasVisibleTrailingActions","hasVisibleCustomToolbar","hasVisibleCompactToolbar","selectedRowCountLabel","IconSearch","collapsesToIcon","button","context","disabled","IconAdjustmentsHorizontal","isGrouped","IconList","IconLayoutGrid","ToolbarColumnFilterControl","groupingIndex","moveGrouping","nextIndex","nextGrouping","groupingId","facetQuery","setFacetQuery","range","normalizeToolbarRangeValue","inputType","fromLabel","toLabel","parseRangeInputValue","isBoolean","isFaceted","booleanOptions","visibleOptions","selectedValue","selectedValues","selectedLabel","nextValues","LazyDataTableVirtualTablePanel","Jt","DataTableTablePanelRouter","DataTableTablePanel","DEFAULT_SLICES","fallbackId","readDataTableSavedViews","view","validateSavedView","createDataTableSavedView","state","normalizedName","now","createSavedViewId","selectSavedViewSlices","views","writeViews","cloneSavedView","renameDataTableSavedView","renamed","deleteDataTableSavedView","clearDataTableSavedViews","snapshots","snapshot","cloneStateSlice","validateState","validateSorting","pagination","validatePagination","filters","validateFilters","pinning","validatePinning","useDataTableToolbarFeatures","enableColumnFilters","csvExport","va","header","accessorKey","getAccessorKey","startCase","pinned","toolbarColumnFilters","configuredFacetOptions","facetedMinMax","rawOptions","normalizeColumnFilterOptions","handleToolbarColumnFilterChange","hasFilterValue","handleClearColumnFilters","handleToolbarColumnPinningChange","side","handleCsvExport","exportDataTableCsv","IconDownload","useDataTablePerformanceDiagnostics","wt","warned","isDevelopmentEnvironment","last","haveSameItems","warn","message","DataTableAutoPageSize","createDataTable","createDataTableWithPanels","rootClassName","Input","ScrollBar","Table","TableBody","TableCell","TableFooter","TableHead","TableHeader","TableRow","TooltipProvider","DataTableStateOverlay","createDataTableStateOverlay","autoPageSize","renderExpandedRow","enableColumnReordering","columnGroupHeaderHeight","clipboard","enableCellSelection","cellSelection","defaultCellSelection","onCellSelectionChange","gridCommands","toolbarDataOperations","unifiedState","onStateChange","apiRef","summaryRows","enablePrint","enableFullscreen","emptyState","stateOverlay","getRowLoadingState","stickyHeader","showToolbar","className","tableClassName","stripedRows","fileUpload","accessibility","interactiveGrid","fileInputRef","tableScrollContainerRef","draggedColumnIdRef","toolbarSavedViewsVersion","setToolbarSavedViewsVersion","generatedTitleId","generatedDescriptionId","validateDataTableColumnIds","toolbarOperations","gridMode","currentCellSelection","setCurrentCellSelection","resolvedSorting","resolvedGrouping","resolvedPageIndex","resolvedPageSize","resolvedRowSelection","resolvedColumnVisibility","resolvedColumnFilters","resolvedExpanded","resolvedColumnOrder","resolvedColumnPinning","resolvedRowPinning","resolvedColumnSizing","resolvedDensity","resolvedViewMode","resolvedShowHiddenRows","showTableHeading","useDataTableStateConflictWarnings","handleToolbarQueryValueChange","useDataTableStateSliceChange","handleSortingPropChange","handleGroupingPropChange","handleRowSelectionPropChange","handleColumnVisibilityPropChange","handleColumnFiltersPropChange","handleExpandedPropChange","handleColumnOrderPropChange","handleColumnPinningPropChange","handleRowPinningPropChange","handleColumnSizingPropChange","handleDensityPropChange","handleViewModePropChange","handleShowHiddenRowsPropChange","handlePageIndexPropChange","handlePageSizePropChange","runAction","runDataTableAction","guardedRowActions","guardedOnRowClick","handleEditError","usesLegacyDetailPanelState","resolvedDetailPanel","clearEditError","draftValues","setDraftValues","useRowEditing","rowEditingContext","tableScrollElement","viewportHeight","useDataTableScrollViewport","autoPageSizeConfig","handleAutoPageSizeChange","autoPageSizeEnabled","print","toggleFullscreen","isFullscreen","setIsFullscreen","update","handleSelectedFiles","files","visibleDataColumns","getDataTableColumnGroupPaths","virtualPaddingBottom","virtualPaddingTop","columnLayout","explicitCustomCellColumnIds","visibleLeafColumnCount","bodyRowComponents","primeColumnForResize","currentSize","flushSync","resetColumnSize","filteredData","configuredEmptyState","guardedStateOverlay","guardedToolbarActions","guardedSelectionActions","currentDataTableState","getCurrentState","cloneDataTableState","restoreState","nextState","clearPersistedState","resetColumnLayout","resetState","getSavedViews","createSavedView","applySavedView","renameSavedView","deleteSavedView","clearSavedViews","toolbarSavedViews","handleToolbarCreateSavedView","handleToolbarRenameSavedView","handleToolbarDeleteSavedView","deleted","exportCsvFromApi","copyToClipboard","copyDataTableToClipboard","pinRow","unpinRow","scrollDataTableElementIntoView","isDataTableEditableClipboardTarget","command","paste","parseDataTableClipboardText","onLegacyChange","handleChange","legacySlices","warnedSlicesRef","container","kind","attribute"],"mappings":"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","file":"chunk-NL6LSUVL.js","sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport type { DataTableCardPanelProps } from \"./data-table-card-panel-types\";\nimport type { DataTableTanStackRow as Row } from \"./tanstack-v9\";\n\nexport function DataTableBaseCardPanel({\n cardClassName,\n cardGridClassName,\n cardSizing,\n cardRenderer,\n currentRowSelection,\n currentDetailExpanded,\n DataTableCardView,\n DataTableEmptyState,\n dragAndDrop,\n editableRows,\n editingRowId,\n emptyNode,\n enableRowSelection,\n flexGrow,\n getRowClassName,\n hasCardTitle,\n infiniteScroll,\n localSearchValue,\n onRowClick,\n renderedRows,\n detailPanel,\n resolvedLabels,\n resolvedLoadingRowCount,\n rowActions = [],\n ScrollArea,\n scrollbarVisibility,\n sentinelRef,\n setCurrentDetailExpanded,\n setCurrentRowSelection,\n setEditingRowId,\n shouldRenderInitialLoading,\n stateOverlayNode,\n tableContainerClassName,\n uiClassNames,\n}: DataTableCardPanelProps) {\n const shouldRenderCards =\n shouldRenderInitialLoading || renderedRows.length > 0;\n const cardScrollContainerRef = React.useRef(null);\n\n const renderCardView = (\n rows: Array>,\n options?: {\n isLoading?: boolean;\n loadingRowCount?: number;\n },\n ) => (\n \n );\n\n return (\n \n \n \n {shouldRenderCards ? (\n shouldRenderInitialLoading ? (\n renderCardView([], {\n isLoading: true,\n loadingRowCount: resolvedLoadingRowCount,\n })\n ) : (\n renderCardView(renderedRows)\n )\n ) : (\n
\n {emptyNode ?? (\n \n )}\n
\n )}\n\n {infiniteScroll?.enabled && !shouldRenderInitialLoading ? (\n
\n
\n
\n ) : null}\n
\n \n {stateOverlayNode}\n \n );\n}\n","import * as React from \"react\";\nimport { DataTableBaseCardPanel } from \"./data-table-base-card-panel\";\nimport type { DataTableCardPanelProps } from \"./data-table-card-panel-types\";\n\nconst LazyDataTableVirtualCardPanel = React.lazy(async () => {\n const module = await import(\"./data-table-virtual-card-panel\");\n return { default: module.DataTableVirtualCardPanel };\n}) as unknown as typeof DataTableBaseCardPanel;\n\nexport function DataTableCardPanel(\n props: DataTableCardPanelProps,\n) {\n const config =\n typeof props.virtualization === \"object\"\n ? props.virtualization.card\n : undefined;\n\n if (config?.enabled !== true) {\n return ;\n }\n\n return (\n \n }\n >\n \n \n );\n}\n\nexport type { DataTableCardPanelProps };\n","import * as React from \"react\";\nimport type { PaginationState } from \"@tanstack/react-table\";\nimport type { DataTableLabels } from \"../types\";\n\ntype DataTableFooterSectionProps = {\n children?: React.ReactNode;\n currentPagination: PaginationState;\n DataTableFooter: React.ElementType;\n effectivePageCount: number;\n footerTotalRowCount: number | undefined;\n handleFooterPageIndexChange: (pageIndex: number) => void;\n handleFooterPageSizeChange: (pageSize: number) => void;\n labels: DataTableLabels;\n pageCountKnown?: boolean;\n rowsPerPageOptions: Array;\n showFooter: boolean;\n};\n\nexport function DataTableFooterSection({\n children,\n currentPagination,\n DataTableFooter,\n effectivePageCount,\n footerTotalRowCount,\n handleFooterPageIndexChange,\n handleFooterPageSizeChange,\n labels,\n pageCountKnown = true,\n rowsPerPageOptions,\n showFooter,\n}: DataTableFooterSectionProps) {\n if (!showFooter && !children) {\n return null;\n }\n\n return (\n
\n {showFooter ? (\n \n ) : null}\n {children}\n
\n );\n}\n","import * as React from \"react\";\nimport type {\n DataTableLabels,\n DataTableProps,\n DataTableSavedView,\n} from \"../types\";\nimport type { DataTableTanStackTable as TanStackTable } from \"./tanstack-v9\";\n\ntype DataTableToolbarSectionProps = {\n allRows: Array;\n columnFilters: Array;\n columnVisibilityOptions: Array;\n compactToolbar: React.ReactNode;\n customToolbar: React.ReactNode;\n DataTableToolbar: React.ElementType;\n description: string | undefined;\n descriptionId: string | undefined;\n effectiveToolbarActions: Array;\n enableColumnPinning: boolean;\n enableGrouping: boolean;\n enableToolbarColumnChooser: boolean;\n enableToolbarFilterChips: boolean;\n enableToolbarResetLayout: boolean;\n enableToolbarSavedViews: boolean;\n enableDensityToggle: boolean;\n enableViewToggle: boolean;\n hiddenRowsLabel: string | undefined;\n labels: DataTableLabels;\n onClearColumnFilters: () => void;\n onColumnFilterChange: (columnId: string, value: unknown) => void;\n onColumnPinningChange: (columnId: string, side: \"left\" | \"right\" | false) => void;\n onDensityChange: (density: \"compact\" | \"comfortable\" | \"spacious\") => void;\n onShowHiddenRowsChange: (showHiddenRows: boolean) => void;\n onToolbarQueryValueChange: (value: string) => void;\n reorderColumn: (sourceColumnId: string, targetColumnId: string) => void;\n onResetColumnLayout: () => void;\n onCreateSavedView: (name: string) => DataTableSavedView | undefined;\n onApplySavedView: (id: string) => boolean;\n onRenameSavedView: (id: string, name: string) => DataTableSavedView | undefined;\n onDeleteSavedView: (id: string) => boolean;\n onViewModeChange: (viewMode: \"table\" | \"card\") => void;\n openFileDialog: (() => void) | undefined;\n selectedRowIds: Array;\n selectedRows: Array;\n selectionActions: DataTableProps[\"selectionActions\"];\n savedViews: Array;\n showHiddenRows: boolean;\n table: TanStackTable;\n title: string | undefined;\n titleId: string | undefined;\n toolbarQueryPlaceholder: string;\n toolbarQueryValue: string;\n toolbarVisibility: DataTableProps[\"toolbarVisibility\"];\n density: \"compact\" | \"comfortable\" | \"spacious\";\n viewMode: \"table\" | \"card\";\n};\n\nexport function DataTableToolbarSection({\n allRows,\n columnFilters,\n columnVisibilityOptions,\n compactToolbar,\n customToolbar,\n DataTableToolbar,\n description,\n descriptionId,\n effectiveToolbarActions,\n enableColumnPinning,\n enableGrouping,\n enableToolbarColumnChooser,\n enableToolbarFilterChips,\n enableToolbarResetLayout,\n enableToolbarSavedViews,\n enableDensityToggle,\n enableViewToggle,\n hiddenRowsLabel,\n labels,\n onClearColumnFilters,\n onColumnFilterChange,\n onColumnPinningChange,\n onDensityChange,\n onShowHiddenRowsChange,\n onToolbarQueryValueChange,\n reorderColumn,\n onResetColumnLayout,\n onCreateSavedView,\n onApplySavedView,\n onRenameSavedView,\n onDeleteSavedView,\n onViewModeChange,\n openFileDialog,\n selectedRowIds,\n selectedRows,\n selectionActions,\n savedViews,\n showHiddenRows,\n table,\n title,\n titleId,\n toolbarQueryPlaceholder,\n toolbarQueryValue,\n toolbarVisibility,\n density,\n viewMode,\n}: DataTableToolbarSectionProps) {\n return (\n
\n {\n table.getColumn(columnId)?.toggleVisibility(visible);\n }}\n enableColumnPinning={enableColumnPinning}\n enableGrouping={enableGrouping}\n enableToolbarColumnChooser={enableToolbarColumnChooser}\n enableToolbarFilterChips={enableToolbarFilterChips}\n enableToolbarResetLayout={enableToolbarResetLayout}\n enableToolbarSavedViews={enableToolbarSavedViews}\n onColumnPinningChange={onColumnPinningChange}\n columnFilters={columnFilters}\n onColumnFilterChange={onColumnFilterChange}\n onClearColumnFilters={onClearColumnFilters}\n onResetColumnLayout={onResetColumnLayout}\n onCreateSavedView={onCreateSavedView}\n onApplySavedView={onApplySavedView}\n onRenameSavedView={onRenameSavedView}\n onDeleteSavedView={onDeleteSavedView}\n density={density}\n onDensityChange={onDensityChange}\n enableDensityToggle={enableDensityToggle}\n labels={labels}\n toolbarVisibility={toolbarVisibility}\n openFileDialog={openFileDialog}\n savedViews={savedViews}\n table={table}\n />\n
\n );\n}\n","import type { DataTableLabels } from \"../types\";\n\ntype ResolvedDataTableLabels = Required;\n\nexport const DATA_TABLE_DEFAULT_LABELS: ResolvedDataTableLabels = {\n searchPlaceholder: \"Search rows...\",\n searchTable: \"Search table\",\n clearSearch: \"Clear search\",\n noRowsTitle: \"No rows yet\",\n noRowsDescription: \"Create a record or refresh this view once data exists.\",\n noMatchingRowsTitle: \"No matching rows\",\n noMatchingRowsDescription: \"Try a different search term or clear filters.\",\n tableOptions: \"Show table options\",\n columns: \"Columns\",\n filters: \"Filters\",\n clearFilters: \"Clear filters\",\n filterFrom: \"From\",\n filterTo: \"To\",\n filterTrue: \"Yes\",\n filterFalse: \"No\",\n selectedRows: (count) =>\n `${count} record${count === 1 ? \"\" : \"s\"} selected`,\n showHiddenRows: (label) => `Show ${label}`,\n recordsPerPage: \"Records per page\",\n totalRecords: (count) => `Total records: ${count}`,\n pageStatus: (pageIndex, pageCount) => `Page ${pageIndex + 1} of ${pageCount}`,\n pageStatusUnknown: (pageIndex) => `Page ${pageIndex + 1}`,\n pagination: \"Pagination\",\n morePages: \"More pages\",\n firstPage: \"First page\",\n previousPage: \"Previous page\",\n nextPage: \"Next page\",\n lastPage: \"Last page\",\n selectAllVisibleRows: \"Select all visible rows\",\n selectAllFilteredRows: \"Select all filtered rows\",\n selectRow: \"Select row\",\n selectCardRow: (rowId) => `Select row ${rowId}`,\n switchToTableView: \"Switch to table view\",\n switchToCardView: \"Switch to card view\",\n tableView: \"Table view\",\n cardView: \"Card view\",\n allFilterOptions: \"All\",\n actions: \"Actions\",\n rowActions: \"Row actions\",\n editRow: \"Edit row\",\n saveEdit: \"Save\",\n cancelEdit: \"Cancel editing\",\n expandRow: \"Expand row\",\n collapseRow: \"Collapse row\",\n expandRowDetails: \"Expand row details\",\n collapseRowDetails: \"Collapse row details\",\n exportCsv: \"Export CSV\",\n print: \"Print table\",\n enterFullscreen: \"Enter fullscreen\",\n exitFullscreen: \"Exit fullscreen\",\n errorTitle: \"Unable to load this table\",\n errorDescription: \"Try again or check your connection.\",\n retry: \"Retry\",\n density: \"Density\",\n compactDensity: \"Compact\",\n comfortableDensity: \"Comfortable\",\n spaciousDensity: \"Spacious\",\n pinLeft: \"Pin left\",\n pinRight: \"Pin right\",\n unpin: \"Unpin\",\n pinRowToTop: \"Pin row to top\",\n pinRowToBottom: \"Pin row to bottom\",\n unpinRow: \"Unpin row\",\n resizeColumn: (columnLabel) => `Resize ${columnLabel}`,\n grouping: \"Grouping\",\n groupBy: (columnLabel) => `Group by ${columnLabel}`,\n ungroup: (columnLabel) => `Ungroup ${columnLabel}`,\n removeGrouping: (columnLabel) => `Remove ${columnLabel} grouping`,\n moveGroupingEarlier: (columnLabel) => `Move ${columnLabel} grouping earlier`,\n moveGroupingLater: (columnLabel) => `Move ${columnLabel} grouping later`,\n facetSearch: (columnLabel) => `Search ${columnLabel} options`,\n searchColumns: \"Search columns\",\n showAllColumns: \"Show all columns\",\n hideAllColumns: \"Hide all columns\",\n moveColumnEarlier: (columnLabel) => `Move ${columnLabel} earlier`,\n moveColumnLater: (columnLabel) => `Move ${columnLabel} later`,\n resetColumnLayout: \"Reset column layout\",\n savedViews: \"Saved views\",\n createSavedView: \"Create saved view\",\n savedViewName: \"View name\",\n applySavedView: (name) => `Apply saved view ${name}`,\n renameSavedView: (name) => `Rename saved view ${name}`,\n deleteSavedView: (name) => `Delete saved view ${name}`,\n saveSavedView: \"Save view\",\n};\n\nexport function resolveDataTableLabels(\n labels?: Partial,\n): ResolvedDataTableLabels {\n return {\n ...DATA_TABLE_DEFAULT_LABELS,\n ...labels,\n } as ResolvedDataTableLabels;\n}\n","import * as React from \"react\";\nimport type {\n ExpandedState,\n OnChangeFn,\n RowPinningPosition,\n} from \"@tanstack/react-table\";\nimport { IconChevronDown } from \"../icons\";\nimport type {\n DataTableEditableRowsConfig,\n DataTableDetailPanel,\n DataTableLabels,\n DataTableProps,\n DataTableRowAction,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport {\n UTILITY_COLUMN_SIZE,\n decorateFilterableColumn,\n isDataTableLoadingRow,\n toggleDataTableExpandedState,\n} from \"./data-table-utils\";\nimport { DATA_TABLE_DEFAULT_LABELS } from \"./data-table-labels\";\nimport type {\n DataTableTanStackColumnDef as ColumnDef,\n DataTableTanStackTable as TanStackTable,\n} from \"./tanstack-v9\";\n\ntype DataTableRowActionsComponentProps = {\n editableRows?: DataTableEditableRowsConfig;\n isEditing: boolean;\n labels: DataTableLabels;\n onCancelEditing: () => void;\n onStartEditing: () => void;\n row: TData;\n rowActions: Array>;\n rowPinning?: {\n canPin: boolean;\n position: RowPinningPosition;\n pin: (position: RowPinningPosition) => void;\n };\n};\n\nexport function useDataTableColumns({\n Button,\n Checkbox,\n DataTableRowActions,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n cancelEditing,\n columns,\n editableRows,\n editingRowId,\n editErrors,\n enableRowSelection,\n enableRowPinning,\n hasTreeExpansion,\n isSavingEdit,\n isEditDirty,\n includeFillSpacer = false,\n labels,\n lastSelectedRowIdRef,\n detailPanel,\n detailExpanded,\n onDetailExpandedChange,\n rowSelectionSelectAllScope,\n rowActions,\n saveEdit,\n startEditingRow,\n tableRef,\n}: {\n Button: DataTableUiKit[\"Button\"];\n Checkbox: DataTableUiKit[\"Checkbox\"];\n DataTableRowActions: React.ComponentType<\n DataTableRowActionsComponentProps\n >;\n Tooltip: DataTableUiKit[\"Tooltip\"];\n TooltipContent: DataTableUiKit[\"TooltipContent\"];\n TooltipTrigger: DataTableUiKit[\"TooltipTrigger\"];\n cancelEditing: () => void;\n columns: DataTableProps[\"columns\"];\n editableRows: DataTableProps[\"editableRows\"];\n editingRowId: string | null;\n editErrors: Record;\n enableRowSelection: boolean;\n enableRowPinning: DataTableProps[\"enableRowPinning\"];\n hasTreeExpansion: boolean;\n isSavingEdit: boolean;\n isEditDirty: boolean;\n includeFillSpacer?: boolean;\n labels: DataTableLabels;\n lastSelectedRowIdRef: React.MutableRefObject;\n detailPanel: DataTableDetailPanel | undefined;\n detailExpanded: ExpandedState;\n onDetailExpandedChange: OnChangeFn;\n rowSelectionSelectAllScope: NonNullable<\n DataTableProps[\"rowSelectionSelectAllScope\"]\n >;\n rowActions: Array>;\n saveEdit: (row: TData) => Promise;\n startEditingRow: (row: TData, rowId: string) => void;\n tableRef: React.RefObject | null>;\n}) {\n const selectRowRange = React.useCallback(\n (targetRowId: string, selected: boolean) => {\n const tableInstance = tableRef.current;\n if (!tableInstance || !lastSelectedRowIdRef.current) {\n return;\n }\n\n const rows = tableInstance\n .getRowModel()\n .rows.filter((row) => !isDataTableLoadingRow(row.original));\n const startIndex = rows.findIndex(\n (row) => row.id === lastSelectedRowIdRef.current,\n );\n const endIndex = rows.findIndex((row) => row.id === targetRowId);\n\n if (startIndex < 0 || endIndex < 0) {\n return;\n }\n\n const from = Math.min(startIndex, endIndex);\n const to = Math.max(startIndex, endIndex);\n tableInstance.setRowSelection((current) => {\n const next = { ...current };\n for (const row of rows\n .slice(from, to + 1)\n .filter(\n (item) => item.getCanSelect() && item.getCanMultiSelect(),\n )) {\n if (selected) {\n next[row.id] = true;\n } else {\n delete next[row.id];\n }\n }\n return next;\n });\n },\n [lastSelectedRowIdRef, tableRef],\n );\n\n return React.useMemo>>(() => {\n const defs: Array> = [];\n\n if (hasTreeExpansion || detailPanel) {\n const expansionColumnSize =\n hasTreeExpansion && detailPanel ? 80 : UTILITY_COLUMN_SIZE;\n defs.push({\n id: \"__expand__\",\n enableResizing: false,\n enableSorting: false,\n enableHiding: false,\n size: expansionColumnSize,\n minSize: expansionColumnSize,\n maxSize: expansionColumnSize,\n header: () => {labels.expandRow},\n cell: ({ row, table }) => {\n const canExpandTree = hasTreeExpansion && row.getCanExpand();\n const canExpandDetail = Boolean(\n detailPanel && (detailPanel.getRowCanExpand?.(row.original) ?? true),\n );\n if (!canExpandTree && !canExpandDetail) {\n return null;\n }\n\n const isTreeExpanded = row.getIsExpanded();\n const isDetailExpanded =\n detailExpanded === true || Boolean(detailExpanded[row.id]);\n return (\n
\n {canExpandTree ? (\n row.toggleExpanded()}\n >\n \n \n ) : null}\n {canExpandDetail ? (\n {\n onDetailExpandedChange((current) =>\n toggleDataTableExpandedState(\n current,\n row.id,\n table.getCoreRowModel().flatRows.map((item) => item.id),\n ),\n );\n }}\n >\n \n \n ) : null}\n
\n );\n },\n });\n }\n\n if (enableRowSelection) {\n defs.push({\n id: \"__select__\",\n enableResizing: false,\n enableSorting: false,\n enableHiding: false,\n size: UTILITY_COLUMN_SIZE,\n minSize: UTILITY_COLUMN_SIZE,\n maxSize: UTILITY_COLUMN_SIZE,\n header: ({ table }) => {\n const selectsFilteredRows = rowSelectionSelectAllScope === \"filtered\";\n const selectableRows = (selectsFilteredRows\n ? table.getFilteredRowModel().flatRows\n : table.getRowModel().flatRows\n ).filter((row) => row.getCanSelect() && row.getCanMultiSelect());\n const allSelected =\n selectableRows.length > 0 &&\n selectableRows.every((row) => row.getIsSelected());\n const someSelected = selectableRows.some((row) => row.getIsSelected());\n const label = selectsFilteredRows\n ? (labels.selectAllFilteredRows ??\n DATA_TABLE_DEFAULT_LABELS.selectAllFilteredRows)\n : (labels.selectAllVisibleRows ??\n DATA_TABLE_DEFAULT_LABELS.selectAllVisibleRows);\n\n if (selectableRows.length === 0) {\n return {label};\n }\n\n return (\n
\n {\n table.setRowSelection((current) => {\n const next = { ...current };\n for (const row of selectableRows) {\n if (checked === true) {\n next[row.id] = true;\n } else {\n delete next[row.id];\n }\n }\n return next;\n });\n }}\n aria-label={label}\n />\n
\n );\n },\n cell: ({ row }) => (\n
\n ) => {\n if (\n !event.shiftKey ||\n !lastSelectedRowIdRef.current ||\n !row.getCanMultiSelect()\n ) {\n lastSelectedRowIdRef.current = row.id;\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n selectRowRange(row.id, !row.getIsSelected());\n lastSelectedRowIdRef.current = row.id;\n }}\n onCheckedChange={(checked: boolean | \"indeterminate\") => {\n lastSelectedRowIdRef.current = row.id;\n row.toggleSelected(checked === true);\n }}\n aria-label={\n labels.selectRow ?? DATA_TABLE_DEFAULT_LABELS.selectRow\n }\n />\n
\n ),\n });\n }\n\n defs.push(...columns.map((column) => decorateFilterableColumn(column)));\n\n if (includeFillSpacer) {\n defs.push({\n id: \"__spacer__\",\n cell: () => null,\n header: () => null,\n enableColumnFilter: false,\n enableGlobalFilter: false,\n enableGrouping: false,\n enableHiding: false,\n enablePinning: false,\n enableResizing: false,\n enableSorting: false,\n minSize: 0,\n size: 0,\n });\n }\n\n if (rowActions.length || editableRows || enableRowPinning) {\n defs.push({\n id: \"__actions__\",\n enableSorting: false,\n enableResizing: false,\n enableHiding: false,\n size: UTILITY_COLUMN_SIZE,\n minSize: UTILITY_COLUMN_SIZE,\n maxSize: UTILITY_COLUMN_SIZE,\n header: () => {labels.actions},\n cell: ({ row }) => {\n const rowId = row.id;\n const isEditing = editingRowId === rowId;\n\n if (isEditing) {\n return (\n
\n {editErrors._row ? (\n \n {editErrors._row}\n \n ) : null}\n {\n void saveEdit(row.original);\n }}\n >\n {labels.saveEdit}\n \n \n \n \n \n {labels.cancelEdit}\n \n \n {labels.cancelEdit}\n \n
\n );\n }\n\n return (\n
\n {\n startEditingRow(row.original, row.id);\n }}\n onCancelEditing={() => {}}\n labels={labels}\n rowPinning={\n enableRowPinning\n ? {\n canPin: row.getCanPin(),\n position: row.getIsPinned(),\n pin: (position) => row.pin(position),\n }\n : undefined\n }\n />\n
\n );\n },\n });\n }\n\n return defs;\n }, [\n Button,\n Checkbox,\n DataTableRowActions,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n cancelEditing,\n columns,\n editableRows,\n detailExpanded,\n detailPanel,\n editErrors,\n editingRowId,\n enableRowSelection,\n enableRowPinning,\n hasTreeExpansion,\n includeFillSpacer,\n isSavingEdit,\n isEditDirty,\n labels,\n lastSelectedRowIdRef,\n onDetailExpandedChange,\n rowSelectionSelectAllScope,\n rowActions,\n saveEdit,\n selectRowRange,\n startEditingRow,\n ]);\n}\n","import * as React from \"react\";\nimport type { Updater } from \"@tanstack/react-table\";\n\nexport function useControllableState({\n defaultValue,\n onChange,\n value,\n}: {\n defaultValue: T | (() => T);\n onChange?: (value: T) => void;\n value: T | undefined;\n}) {\n const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);\n const currentValue = value ?? uncontrolledValue;\n const currentValueRef = React.useRef(currentValue);\n\n React.useEffect(() => {\n currentValueRef.current = currentValue;\n }, [currentValue]);\n\n const setValue = React.useCallback(\n (updater: Updater) => {\n const nextValue =\n typeof updater === \"function\"\n ? (updater as (current: T) => T)(currentValueRef.current)\n : updater;\n currentValueRef.current = nextValue;\n\n onChange?.(nextValue);\n\n if (value === undefined) {\n setUncontrolledValue(nextValue);\n }\n },\n [onChange, value],\n );\n\n return [currentValue, setValue] as const;\n}\n","import * as React from \"react\";\n\nexport function useDataTableInfiniteScroll({\n enabled,\n hasMore,\n isLoadingMore,\n onLoadMore,\n onError,\n}: {\n enabled: boolean;\n hasMore: boolean;\n isLoadingMore?: boolean;\n onLoadMore: () => void | Promise;\n onError?: (error: unknown) => void;\n}) {\n const sentinelRef = React.useRef(null);\n const isRequestInFlightRef = React.useRef(false);\n const onLoadMoreEvent = React.useEffectEvent(onLoadMore);\n const onErrorEvent = React.useEffectEvent((error: unknown) => {\n onError?.(error);\n });\n\n React.useEffect(() => {\n if (!enabled || !hasMore || isLoadingMore) {\n return;\n }\n\n const target = sentinelRef.current;\n if (!target) {\n return;\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n const entry = entries[0];\n if (entry.isIntersecting && !isRequestInFlightRef.current) {\n isRequestInFlightRef.current = true;\n\n let result: void | Promise;\n try {\n result = onLoadMoreEvent();\n } catch (error) {\n isRequestInFlightRef.current = false;\n onErrorEvent(error);\n return;\n }\n\n void Promise.resolve(result)\n .catch((error: unknown) => {\n onErrorEvent(error);\n })\n .finally(() => {\n isRequestInFlightRef.current = false;\n });\n }\n },\n {\n rootMargin: \"200px 0px 200px 0px\",\n },\n );\n\n observer.observe(target);\n\n return () => {\n observer.disconnect();\n };\n }, [enabled, hasMore, isLoadingMore]);\n\n return sentinelRef;\n}\n","import * as React from \"react\";\n\nexport function useDataTablePaginationClamp({\n enabled,\n maxPageIndex,\n onPageIndexChange,\n pageIndex,\n setLocalPageIndex,\n}: {\n enabled: boolean;\n maxPageIndex: number;\n onPageIndexChange?: (pageIndex: number) => void;\n pageIndex: number;\n setLocalPageIndex: (pageIndex: number) => void;\n}) {\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n\n if (pageIndex >= 0 && pageIndex <= maxPageIndex) {\n return;\n }\n\n const nextPageIndex = Math.min(Math.max(pageIndex, 0), maxPageIndex);\n setLocalPageIndex(nextPageIndex);\n onPageIndexChange?.(nextPageIndex);\n }, [enabled, maxPageIndex, onPageIndexChange, pageIndex, setLocalPageIndex]);\n}\n","import * as React from \"react\";\nimport { normalizeDataTableSearchText } from \"./data-table-utils\";\nimport type {\n DataTableTanStackFilterFn as FilterFn,\n DataTableTanStackRow as Row,\n} from \"./tanstack-v9\";\n\n/**\n * Caches each searchable cell against the application-owned row object and\n * stable column id. WeakMap entries disappear with immutable rows and never\n * retain removed data. Mutable rows are deliberately unsupported because a\n * cache cannot safely observe deep changes without defeating its purpose.\n */\nexport function useDataTableSearchIndex(\n) {\n // eslint-disable-next-line react-hooks/immutability -- This weak cache is deliberately populated by TanStack's filter pass, never read during React render.\n return React.useMemo>(() => {\n const valuesByRow = new WeakMap>();\n\n return (row: Row, columnId: string, filterValue: unknown) => {\n const query = normalizeDataTableSearchText(filterValue);\n if (!query) {\n return true;\n }\n\n const original = row.original;\n if (typeof original !== \"object\" || original === null) {\n return normalizeDataTableSearchText(row.getValue(columnId)).includes(\n query,\n );\n }\n\n let valuesByColumn = valuesByRow.get(original);\n if (!valuesByColumn) {\n valuesByColumn = new Map();\n valuesByRow.set(original, valuesByColumn);\n }\n\n let text = valuesByColumn.get(columnId);\n if (text === undefined) {\n const value = row.getValue(columnId);\n text = normalizeDataTableSearchText(value);\n valuesByColumn.set(columnId, text);\n }\n\n return text.includes(query);\n };\n }, []);\n}\n","import {\n aggregationFns as builtInAggregationFns,\n columnFacetingFeature,\n columnFilteringFeature,\n columnGroupingFeature,\n columnOrderingFeature,\n columnPinningFeature,\n columnResizingFeature,\n columnSizingFeature,\n columnVisibilityFeature,\n createExpandedRowModel,\n createFacetedMinMaxValues,\n createFacetedRowModel,\n createFacetedUniqueValues,\n createFilteredRowModel,\n createGroupedRowModel,\n createPaginatedRowModel,\n createSortedRowModel,\n filterFns as builtInFilterFns,\n globalFilteringFeature,\n rowAggregationFeature,\n rowExpandingFeature,\n rowPaginationFeature,\n rowPinningFeature,\n rowSelectionFeature,\n rowSortingFeature,\n sortFns as builtInSortFns,\n tableFeatures,\n} from \"@tanstack/react-table\";\nimport type {\n AggregationFnDef,\n Cell,\n CellContext,\n Column,\n ColumnDef,\n FilterFn,\n FilterFnOption,\n Header,\n HeaderContext,\n Row,\n RowData,\n Table,\n} from \"@tanstack/react-table\";\n\n/**\n * The v9 feature surface used by every data-table adapter.\n *\n * Keeping this registry in one module makes the new feature generic an\n * implementation detail instead of leaking it through every public type.\n * Function registries remain broad during the migration so existing named\n * column definitions keep working. They can be narrowed once the v9 surface\n * is fully audited.\n */\ntype DataTableAggregationRegistry = Record;\ntype BuiltInFilterFn =\n (typeof builtInFilterFns)[keyof typeof builtInFilterFns];\n\nexport function createDataTableFeatures(\n customAggregationFns: DataTableAggregationRegistry = {},\n) {\n return tableFeatures({\n columnFacetingFeature,\n columnFilteringFeature,\n globalFilteringFeature,\n rowAggregationFeature,\n columnGroupingFeature,\n columnOrderingFeature,\n columnPinningFeature,\n columnSizingFeature,\n columnResizingFeature,\n columnVisibilityFeature,\n rowExpandingFeature,\n rowPaginationFeature,\n rowPinningFeature,\n rowSelectionFeature,\n rowSortingFeature,\n expandedRowModel: createExpandedRowModel(),\n facetedMinMaxValues: createFacetedMinMaxValues(),\n facetedRowModel: createFacetedRowModel(),\n facetedUniqueValues: createFacetedUniqueValues(),\n filteredRowModel: createFilteredRowModel(),\n groupedRowModel: createGroupedRowModel(),\n paginatedRowModel: createPaginatedRowModel(),\n sortedRowModel: createSortedRowModel(),\n aggregationFns: {\n ...(builtInAggregationFns as DataTableAggregationRegistry),\n ...customAggregationFns,\n },\n filterFns: builtInFilterFns as Record,\n sortFns: builtInSortFns,\n });\n}\n\nexport const dataTableFeatures = createDataTableFeatures();\n\nexport type DataTableFeatures = typeof dataTableFeatures;\nexport type DataTableRowData = Extract;\nexport type DataTableTanStackTable = Table<\n DataTableFeatures,\n DataTableRowData\n>;\nexport type DataTableTanStackRow = Row<\n DataTableFeatures,\n DataTableRowData\n>;\nexport type DataTableTanStackColumn = Column<\n DataTableFeatures,\n DataTableRowData,\n TValue\n>;\nexport type DataTableTanStackCell = Cell<\n DataTableFeatures,\n DataTableRowData,\n TValue\n>;\nexport type DataTableTanStackHeader = Header<\n DataTableFeatures,\n DataTableRowData,\n TValue\n>;\nexport type DataTableTanStackColumnDef = ColumnDef<\n DataTableFeatures,\n DataTableRowData,\n TValue\n>;\nexport type DataTableTanStackCellContext = CellContext<\n DataTableFeatures,\n DataTableRowData,\n TValue\n>;\nexport type DataTableTanStackHeaderContext =\n HeaderContext, TValue>;\nexport type DataTableTanStackFilterFn = FilterFn<\n DataTableFeatures,\n DataTableRowData\n>;\nexport type DataTableTanStackFilterFnOption = FilterFnOption<\n DataTableFeatures,\n DataTableRowData\n>;\nexport type DataTableTanStackAggregationFn = AggregationFnDef<\n DataTableFeatures,\n DataTableRowData\n>;\n","import * as React from \"react\";\nimport { useTable } from \"@tanstack/react-table\";\nimport type {\n ColumnFiltersState,\n ColumnOrderState,\n ColumnPinningState as TanStackColumnPinningState,\n ColumnSizingState,\n ColumnVisibilityState as VisibilityState,\n ExpandedState,\n GroupingState,\n OnChangeFn,\n PaginationState,\n RowPinningState,\n RowSelectionState,\n SortingState,\n} from \"@tanstack/react-table\";\nimport type {\n DataTableColumnPinningState,\n DataTableProps,\n} from \"../types\";\nimport {\n canReorderDataTableColumn,\n getColumnId,\n getDataTableLeafColumns,\n isDataTableLoadingRow,\n isUtilityColumnId,\n moveColumnInOrder,\n} from \"./data-table-utils\";\nimport type { DataTableColumnGroupPaths } from \"./data-table-utils\";\nimport { useDataTableInfiniteScroll } from \"./use-data-table-infinite-scroll\";\nimport { useDataTablePaginationClamp } from \"./use-data-table-pagination-clamp\";\nimport { useDataTableSearchIndex } from \"./use-data-table-search-index\";\nimport {\n createDataTableFeatures,\n type DataTableFeatures,\n type DataTableTanStackColumn as Column,\n type DataTableRowData,\n type DataTableTanStackColumnDef as ColumnDef,\n type DataTableTanStackFilterFnOption as FilterFnOption,\n type DataTableTanStackRow as Row,\n type DataTableTanStackTable as TanStackTable,\n} from \"./tanstack-v9\";\n\nexport type DataTableRowsToRender = Array<{\n row: Row;\n rowIndex: number;\n}>;\n\ntype DataTableInstanceResult = {\n effectivePageCount: number;\n footerTotalRowCount: number | undefined;\n handleFooterPageIndexChange: (nextPageIndex: number) => void;\n handleFooterPageSizeChange: (nextPageSize: number) => void;\n isPageCountKnown: boolean;\n renderedRows: Array>;\n topPinnedRows: Array>;\n bottomPinnedRows: Array>;\n reorderColumn: (sourceColumnId: string, targetColumnId: string) => void;\n rowsToRender: DataTableRowsToRender;\n sentinelRef: React.RefObject;\n table: TanStackTable;\n virtualPaddingBottom: number;\n virtualPaddingTop: number;\n visibleLeafColumns: Array>;\n};\n\nexport function useDataTableInstance({\n autoResetPageIndex,\n columnGroupPaths,\n columnResizeMode,\n dir,\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentSorting,\n currentViewMode,\n defaultColumn,\n effectiveColumnVisibility,\n enableColumnResizing,\n enableMultiRowSelection,\n enableRowPinning,\n enableRowSelection,\n enableSubRowSelection,\n getRowCanSelect,\n getRowCanExpand,\n getSubRows,\n aggregationFns,\n groupedColumnMode,\n globalFilterFn,\n globalFilterValue,\n hasNextPage,\n handleColumnFiltersChange,\n handleColumnOrderChange,\n handleColumnPinningChange,\n handleRowPinningChange,\n handleColumnVisibilityChange,\n handleExpandedChange,\n handleGroupingChange,\n infiniteScroll,\n keepPinnedRows,\n manualFiltering,\n manualGrouping,\n manualExpanding,\n manualPagination,\n manualSorting,\n onActionError,\n onPageIndexChange,\n onPageSizeChange,\n pageCount,\n pageIndex,\n pageSize,\n paginateExpandedRows,\n filterFromLeafRows,\n maxLeafRowFilterDepth,\n setCurrentRowSelection,\n setCurrentSorting,\n setLocalColumnSizing,\n setLocalPagination,\n shouldRenderInitialLoading,\n tableColumns,\n tableData,\n tableGetRowId,\n tableRef,\n totalRowCount,\n virtualization,\n}: {\n autoResetPageIndex: boolean;\n columnGroupPaths: DataTableColumnGroupPaths;\n columnResizeMode: DataTableProps[\"columnResizeMode\"];\n dir: NonNullable[\"dir\"]>;\n currentColumnFilters: ColumnFiltersState;\n currentColumnOrder: ColumnOrderState;\n currentColumnPinning: DataTableColumnPinningState;\n currentRowPinning: RowPinningState;\n currentColumnSizing: ColumnSizingState;\n currentExpanded: ExpandedState;\n currentGrouping: GroupingState;\n currentPagination: PaginationState;\n currentRowSelection: Record;\n currentSorting: SortingState;\n currentViewMode: \"table\" | \"card\";\n defaultColumn: Partial>;\n effectiveColumnVisibility: VisibilityState;\n enableColumnResizing: boolean;\n enableMultiRowSelection: NonNullable<\n DataTableProps[\"enableMultiRowSelection\"]\n >;\n enableRowPinning: DataTableProps[\"enableRowPinning\"];\n enableRowSelection: boolean;\n enableSubRowSelection: NonNullable<\n DataTableProps[\"enableSubRowSelection\"]\n >;\n getRowCanSelect: DataTableProps[\"getRowCanSelect\"];\n getRowCanExpand: DataTableProps[\"getRowCanExpand\"];\n getSubRows: DataTableProps[\"getSubRows\"];\n aggregationFns: DataTableProps[\"aggregationFns\"];\n groupedColumnMode: DataTableProps[\"groupedColumnMode\"];\n globalFilterFn: FilterFnOption | undefined;\n globalFilterValue: string;\n hasNextPage?: DataTableProps[\"hasNextPage\"];\n handleColumnFiltersChange: OnChangeFn;\n handleColumnOrderChange: OnChangeFn;\n handleColumnPinningChange: OnChangeFn;\n handleRowPinningChange: OnChangeFn;\n handleColumnVisibilityChange: OnChangeFn;\n handleExpandedChange: OnChangeFn;\n handleGroupingChange: OnChangeFn;\n infiniteScroll: DataTableProps[\"infiniteScroll\"];\n keepPinnedRows: boolean;\n manualFiltering: boolean;\n manualGrouping: boolean;\n manualExpanding: boolean;\n manualPagination: boolean;\n manualSorting: boolean;\n onActionError?: DataTableProps[\"onActionError\"];\n onPageIndexChange: DataTableProps[\"onPageIndexChange\"];\n onPageSizeChange: DataTableProps[\"onPageSizeChange\"];\n pageCount: DataTableProps[\"pageCount\"];\n pageIndex: DataTableProps[\"pageIndex\"];\n pageSize: DataTableProps[\"pageSize\"];\n paginateExpandedRows: DataTableProps[\"paginateExpandedRows\"];\n filterFromLeafRows: DataTableProps[\"filterFromLeafRows\"];\n maxLeafRowFilterDepth: DataTableProps[\"maxLeafRowFilterDepth\"];\n setCurrentRowSelection: OnChangeFn>;\n setCurrentSorting: OnChangeFn;\n setLocalColumnSizing: OnChangeFn;\n setLocalPagination: React.Dispatch>;\n shouldRenderInitialLoading: boolean;\n tableColumns: Array>;\n tableData: Array;\n tableGetRowId: DataTableProps[\"getRowId\"];\n tableRef: React.RefObject | null>;\n tableScrollElement: HTMLElement | null;\n /**\n * @deprecated Filtering now runs through TanStack Table. Retained so\n * advanced 4.x hook callers remain source-compatible.\n */\n toolbarFilteredData?: Array;\n totalRowCount: DataTableProps[\"totalRowCount\"];\n virtualization: DataTableProps[\"virtualization\"];\n viewportHeight: number;\n}): DataTableInstanceResult {\n const cachedGlobalFilterFn = useDataTableSearchIndex();\n const generatedColumnIds = React.useMemo(() => {\n return getDataTableLeafColumns(\n tableColumns as DataTableProps[\"columns\"],\n ).map(({ column, index }) => getColumnId(column, index));\n }, [tableColumns]);\n\n const effectiveColumnOrder = React.useMemo(() => {\n const columnIds = generatedColumnIds;\n const dataColumnIds = columnIds.filter(\n (columnId) =>\n !isUtilityColumnId(columnId) && columnId !== \"__spacer__\",\n );\n const dataColumnIdSet = new Set(dataColumnIds);\n const orderedDataColumnIds = currentColumnOrder.filter((columnId) =>\n dataColumnIdSet.has(columnId),\n );\n const unorderedDataColumnIds = dataColumnIds.filter(\n (columnId) => !orderedDataColumnIds.includes(columnId),\n );\n\n return [\n ...columnIds.filter(\n (columnId) => columnId === \"__expand__\" || columnId === \"__select__\",\n ),\n ...orderedDataColumnIds,\n ...unorderedDataColumnIds,\n ...columnIds.filter((columnId) => columnId === \"__spacer__\"),\n ...columnIds.filter((columnId) => columnId === \"__actions__\"),\n ];\n }, [currentColumnOrder, generatedColumnIds]);\n\n const effectiveColumnPinning = React.useMemo(() => {\n const columnIdSet = new Set(generatedColumnIds);\n const dataColumnIdSet = new Set(\n generatedColumnIds.filter(\n (columnId) =>\n !isUtilityColumnId(columnId) && columnId !== \"__spacer__\",\n ),\n );\n const dataLeft = (currentColumnPinning.left ?? []).filter((columnId) =>\n dataColumnIdSet.has(columnId),\n );\n const dataRight = (currentColumnPinning.right ?? []).filter((columnId) =>\n dataColumnIdSet.has(columnId),\n );\n\n return {\n start: [\n ...[\"__expand__\", \"__select__\"].filter((columnId) =>\n columnIdSet.has(columnId),\n ),\n ...dataLeft,\n ],\n end: [\n ...dataRight,\n ...[\"__actions__\"].filter((columnId) => columnIdSet.has(columnId)),\n ],\n };\n }, [currentColumnPinning, generatedColumnIds]);\n\n const handleTanStackColumnPinningChange = React.useCallback<\n OnChangeFn\n >(\n (updater) => {\n const nextValue =\n typeof updater === \"function\"\n ? updater(effectiveColumnPinning)\n : updater;\n const dataColumnIds = new Set(\n generatedColumnIds.filter(\n (columnId) =>\n !isUtilityColumnId(columnId) && columnId !== \"__spacer__\",\n ),\n );\n handleColumnPinningChange({\n left: nextValue.start.filter((columnId) => dataColumnIds.has(columnId)),\n right: nextValue.end.filter((columnId) => dataColumnIds.has(columnId)),\n });\n },\n [\n effectiveColumnPinning,\n generatedColumnIds,\n handleColumnPinningChange,\n ],\n );\n\n const effectiveRowPinning = React.useMemo(() => {\n const availableRowIds = new Set();\n const visitRows = (rows: Array) => {\n rows.forEach((row, index) => {\n availableRowIds.add(tableGetRowId(row, index));\n if (!isDataTableLoadingRow(row)) {\n const subRows = getSubRows?.(row, index);\n if (subRows?.length) {\n visitRows(subRows);\n }\n }\n });\n };\n visitRows(tableData);\n const top = (currentRowPinning.top ?? []).filter((rowId) =>\n availableRowIds.has(rowId),\n );\n const topIds = new Set(top);\n const bottom = (currentRowPinning.bottom ?? []).filter(\n (rowId) => availableRowIds.has(rowId) && !topIds.has(rowId),\n );\n return { top, bottom };\n }, [\n currentRowPinning.bottom,\n currentRowPinning.top,\n getSubRows,\n tableData,\n tableGetRowId,\n ]);\n\n const tanStackRowSelection = React.useMemo(() => {\n return Object.fromEntries(\n Object.entries(currentRowSelection).flatMap(([rowId, selected]) =>\n selected ? [[rowId, true as const]] : [],\n ),\n );\n }, [currentRowSelection]);\n\n const handleTanStackRowSelectionChange = React.useCallback<\n OnChangeFn\n >(\n (updater) => {\n const nextValue =\n typeof updater === \"function\"\n ? updater(tanStackRowSelection)\n : updater;\n setCurrentRowSelection({ ...nextValue });\n },\n [setCurrentRowSelection, tanStackRowSelection],\n );\n\n const tableState = React.useMemo(\n () => ({\n sorting: currentSorting,\n pagination: currentPagination,\n rowSelection: tanStackRowSelection,\n columnVisibility: effectiveColumnVisibility,\n columnFilters: currentColumnFilters,\n globalFilter: globalFilterValue,\n expanded: currentExpanded,\n grouping: currentGrouping,\n columnOrder: effectiveColumnOrder,\n columnPinning: effectiveColumnPinning,\n rowPinning: effectiveRowPinning,\n columnSizing: currentColumnSizing,\n }),\n [\n currentColumnFilters,\n currentColumnSizing,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentSorting,\n effectiveColumnVisibility,\n effectiveColumnOrder,\n effectiveColumnPinning,\n effectiveRowPinning,\n globalFilterValue,\n tanStackRowSelection,\n ],\n );\n\n const handlePaginationChange = React.useCallback<\n OnChangeFn\n >(\n (updater) => {\n const nextValue =\n typeof updater === \"function\" ? updater(currentPagination) : updater;\n\n if (pageIndex === undefined || pageSize === undefined) {\n setLocalPagination((current) => ({\n pageIndex:\n pageIndex === undefined ? nextValue.pageIndex : current.pageIndex,\n pageSize:\n pageSize === undefined ? nextValue.pageSize : current.pageSize,\n }));\n }\n\n if (nextValue.pageIndex !== currentPagination.pageIndex) {\n onPageIndexChange?.(nextValue.pageIndex);\n }\n if (nextValue.pageSize !== currentPagination.pageSize) {\n onPageSizeChange?.(nextValue.pageSize);\n }\n },\n [\n currentPagination,\n onPageIndexChange,\n onPageSizeChange,\n pageIndex,\n pageSize,\n setLocalPagination,\n ],\n );\n\n const handleColumnSizingChange = React.useCallback<\n OnChangeFn\n >(\n (updater) => {\n setLocalColumnSizing(updater);\n },\n [setLocalColumnSizing],\n );\n\n const features = React.useMemo(\n () => createDataTableFeatures(aggregationFns),\n [aggregationFns],\n );\n\n const table = useTable>({\n features,\n data: tableData as Array>,\n columns: tableColumns,\n enableRowSelection: getRowCanSelect\n ? (row) => enableRowSelection && getRowCanSelect(row.original)\n : enableRowSelection,\n enableRowPinning:\n typeof enableRowPinning === \"function\"\n ? (row) => enableRowPinning(row.original)\n : enableRowPinning,\n keepPinnedRows,\n enableMultiRowSelection:\n typeof enableMultiRowSelection === \"function\"\n ? (row) => enableMultiRowSelection(row.original)\n : enableMultiRowSelection,\n enableSubRowSelection:\n typeof enableSubRowSelection === \"function\"\n ? (row) => enableSubRowSelection(row.original)\n : enableSubRowSelection,\n enableColumnResizing,\n columnResizeMode,\n columnResizeDirection: dir,\n getRowId: tableGetRowId,\n getSubRows: getSubRows\n ? (row, index) =>\n getSubRows(row, index) as\n | Array>\n | undefined\n : undefined,\n getRowCanExpand: getSubRows\n ? (row) => getRowCanExpand?.(row.original) ?? row.subRows.length > 0\n : undefined,\n globalFilterFn: globalFilterFn ?? cachedGlobalFilterFn,\n getColumnCanGlobalFilter: (column) =>\n (column.columnDef as ColumnDef).enableGlobalFilter !==\n false &&\n typeof column.accessorFn === \"function\",\n manualSorting,\n manualGrouping,\n manualFiltering,\n manualExpanding,\n manualPagination: manualPagination || Boolean(infiniteScroll?.enabled),\n paginateExpandedRows,\n filterFromLeafRows,\n maxLeafRowFilterDepth,\n defaultColumn,\n autoResetPageIndex,\n state: tableState,\n onSortingChange: setCurrentSorting,\n onPaginationChange: handlePaginationChange,\n onRowSelectionChange: handleTanStackRowSelectionChange,\n onColumnVisibilityChange: handleColumnVisibilityChange,\n onColumnFiltersChange: handleColumnFiltersChange,\n onExpandedChange: handleExpandedChange,\n onGroupingChange: handleGroupingChange,\n onColumnOrderChange: handleColumnOrderChange,\n onColumnPinningChange: handleTanStackColumnPinningChange,\n onRowPinningChange: handleRowPinningChange,\n onColumnSizingChange: handleColumnSizingChange,\n groupedColumnMode,\n });\n React.useLayoutEffect(() => {\n tableRef.current = table;\n return () => {\n if (tableRef.current === table) {\n tableRef.current = null;\n }\n };\n }, [table, tableRef]);\n\n const visibleLeafColumns = table.getVisibleLeafColumns();\n const reorderColumn = React.useCallback(\n (sourceColumnId: string, targetColumnId: string) => {\n if (sourceColumnId === targetColumnId) {\n return;\n }\n\n if (\n !canReorderDataTableColumn(\n sourceColumnId,\n targetColumnId,\n columnGroupPaths,\n )\n ) {\n return;\n }\n\n const defaultOrder = table\n .getAllLeafColumns()\n .map((column) => column.id)\n .filter(\n (columnId) =>\n !isUtilityColumnId(columnId) && columnId !== \"__spacer__\",\n );\n const nextOrder = moveColumnInOrder(\n currentColumnOrder.length ? currentColumnOrder : defaultOrder,\n sourceColumnId,\n targetColumnId,\n );\n handleColumnOrderChange(nextOrder);\n },\n [columnGroupPaths, currentColumnOrder, handleColumnOrderChange, table],\n );\n\n const topPinnedRows = table.getTopRows();\n const bottomPinnedRows = table.getBottomRows();\n // Card rendering has no top/bottom table regions. Keep its original row\n // model intact rather than silently dropping pinned records.\n const renderedRows =\n currentViewMode === \"table\"\n ? table.getCenterRows()\n : table.getRowModel().rows;\n const virtualizationConfig =\n typeof virtualization === \"object\" ? virtualization : undefined;\n const virtualRowsEnabled =\n virtualization === true || virtualizationConfig?.enabled === true;\n const fallbackRowCount = Math.max(\n 1,\n Math.floor(virtualizationConfig?.fallbackRowCount ?? 20),\n );\n const initialRowsToRender = virtualRowsEnabled\n ? renderedRows.slice(0, fallbackRowCount)\n : renderedRows;\n const rowsToRender = initialRowsToRender.map((row, rowIndex) => ({\n row,\n rowIndex,\n }));\n\n const usesManualRows = manualPagination || Boolean(infiniteScroll?.enabled);\n const derivedTotalRowCount = usesManualRows\n ? undefined\n : table.getFilteredRowModel().rows.length;\n const effectiveTotalRowCount = totalRowCount ?? derivedTotalRowCount;\n const isPageCountKnown =\n !usesManualRows || pageCount !== undefined || totalRowCount !== undefined;\n const footerTotalRowCount = effectiveTotalRowCount;\n const effectivePageCount = shouldRenderInitialLoading\n ? 1\n : (pageCount ??\n (effectiveTotalRowCount !== undefined\n ? Math.max(\n 1,\n Math.ceil(effectiveTotalRowCount / currentPagination.pageSize),\n )\n : usesManualRows\n ? currentPagination.pageIndex + (hasNextPage ? 2 : 1)\n : table.getPageCount()));\n const maxPageIndex = Math.max(0, effectivePageCount - 1);\n\n const setLocalPageIndex = React.useCallback(\n (nextPageIndex: number) => {\n if (pageIndex !== undefined) {\n return;\n }\n\n setLocalPagination((current) =>\n current.pageIndex === nextPageIndex\n ? current\n : { ...current, pageIndex: nextPageIndex },\n );\n },\n [pageIndex, setLocalPagination],\n );\n useDataTablePaginationClamp({\n enabled:\n !shouldRenderInitialLoading &&\n !infiniteScroll?.enabled &&\n isPageCountKnown,\n maxPageIndex,\n onPageIndexChange,\n pageIndex: currentPagination.pageIndex,\n setLocalPageIndex,\n });\n\n const handleFooterPageIndexChange = React.useCallback(\n (nextPageIndex: number) => {\n if (nextPageIndex === currentPagination.pageIndex) {\n return;\n }\n\n onPageIndexChange?.(nextPageIndex);\n if (pageIndex === undefined) {\n setLocalPagination((current) =>\n current.pageIndex === nextPageIndex\n ? current\n : { ...current, pageIndex: nextPageIndex },\n );\n }\n },\n [\n currentPagination.pageIndex,\n onPageIndexChange,\n pageIndex,\n setLocalPagination,\n ],\n );\n const handleFooterPageSizeChange = React.useCallback(\n (nextPageSize: number) => {\n if (currentPagination.pageIndex !== 0) {\n onPageIndexChange?.(0);\n }\n if (nextPageSize !== currentPagination.pageSize) {\n onPageSizeChange?.(nextPageSize);\n }\n if (pageSize === undefined) {\n setLocalPagination({\n pageIndex: 0,\n pageSize: nextPageSize,\n });\n }\n },\n [\n currentPagination.pageIndex,\n currentPagination.pageSize,\n onPageIndexChange,\n onPageSizeChange,\n pageSize,\n setLocalPagination,\n ],\n );\n\n const sentinelRef = useDataTableInfiniteScroll({\n enabled: Boolean(infiniteScroll?.enabled),\n hasMore: Boolean(infiniteScroll?.hasMore),\n isLoadingMore: infiniteScroll?.isLoadingMore,\n onLoadMore: () => infiniteScroll?.onLoadMore(),\n onError: (error) => {\n onActionError?.({\n error,\n source: \"infiniteScroll\",\n });\n },\n });\n\n return {\n effectivePageCount,\n footerTotalRowCount,\n handleFooterPageIndexChange,\n handleFooterPageSizeChange,\n isPageCountKnown,\n renderedRows,\n topPinnedRows,\n bottomPinnedRows,\n reorderColumn,\n rowsToRender,\n sentinelRef,\n table,\n virtualPaddingBottom: 0,\n virtualPaddingTop: 0,\n visibleLeafColumns,\n };\n}\n","import * as React from \"react\";\nimport type {\n DataTableColumnPrefs,\n DataTableDensity,\n DataTablePersistenceConfig,\n DataTablePersistencePayload,\n DataTablePersistenceSlice,\n DataTablePersistenceStorage,\n} from \"../types\";\nimport type { RowPinningState } from \"@tanstack/react-table\";\n\nconst STORAGE_PREFIX = \"data-table-pro:column-prefs:\";\nconst DEFAULT_VERSION = 1;\nconst ALL_SLICES: Array = [\n \"visibility\",\n \"sizing\",\n \"order\",\n \"pinning\",\n \"rowPinning\",\n \"density\",\n];\n\nexport function readDataTableColumnPrefs(\n input: string | DataTablePersistenceConfig | undefined,\n): DataTableColumnPrefs {\n const config = resolvePersistenceConfig(input);\n if (!config) {\n return {};\n }\n\n const storage = resolveStorage(config);\n if (!storage) {\n return {};\n }\n const storageKey = getStorageKey(config.key);\n\n let value: string | null;\n try {\n value = storage.getItem(storageKey);\n } catch (error) {\n config.onError?.({ error, operation: \"read\" });\n return {};\n }\n if (!value) {\n return {};\n }\n\n let parsed: unknown;\n try {\n parsed = (config.deserialize ?? JSON.parse)(value);\n } catch (error) {\n config.onError?.({ error, operation: \"deserialize\" });\n return {};\n }\n\n const targetVersion = config.version ?? DEFAULT_VERSION;\n let candidate: unknown;\n if (isPersistencePayload(parsed)) {\n if (parsed.version === targetVersion) {\n candidate = parsed.state;\n } else if (config.migrate) {\n try {\n candidate = config.migrate(\n {\n version: parsed.version,\n state: parsed.state,\n },\n targetVersion,\n );\n } catch (error) {\n config.onError?.({ error, operation: \"migrate\" });\n return {};\n }\n } else {\n return {};\n }\n } else {\n // Raw objects are the legacy columnPrefsKey format. They are validated and\n // upgraded to a versioned envelope on the next successful write.\n candidate = parsed;\n }\n\n return selectPersistenceSlices(\n validateDataTableColumnPrefs(candidate),\n config.slices,\n );\n}\n\nexport function clearDataTableColumnPrefs(\n input: string | DataTablePersistenceConfig | undefined,\n) {\n const config = resolvePersistenceConfig(input);\n if (!config) {\n return false;\n }\n\n const storage = resolveStorage(config);\n if (!storage) {\n return false;\n }\n\n try {\n storage.removeItem(getStorageKey(config.key));\n return true;\n } catch (error) {\n config.onError?.({ error, operation: \"remove\" });\n return false;\n }\n}\n\nexport function usePersistDataTableColumnPrefs({\n key,\n persistence,\n prefs,\n}: {\n key?: string;\n persistence?: DataTablePersistenceConfig;\n prefs: DataTableColumnPrefs;\n}) {\n const config = persistence ?? resolvePersistenceConfig(key);\n const storage = config ? resolveStorage(config) : undefined;\n const storageKey = config ? getStorageKey(config.key) : undefined;\n const version = config?.version ?? DEFAULT_VERSION;\n const debounceMs = Math.max(0, config?.debounceMs ?? 100);\n const selectedState = selectPersistenceSlices(prefs, config?.slices);\n const serialized = React.useMemo(() => {\n if (!config) {\n return { value: undefined };\n }\n\n try {\n const payload: DataTablePersistencePayload = {\n version,\n state: selectedState,\n };\n return {\n value: (config.serialize ?? JSON.stringify)(payload),\n };\n } catch (error) {\n return { error, value: undefined };\n }\n }, [config, selectedState, version]);\n const onErrorEvent = React.useEffectEvent(\n (\n error: unknown,\n operation: \"serialize\" | \"write\",\n ) => {\n config?.onError?.({ error, operation });\n },\n );\n\n React.useEffect(() => {\n if (serialized.error !== undefined) {\n onErrorEvent(serialized.error, \"serialize\");\n }\n }, [serialized.error]);\n\n React.useEffect(() => {\n if (!storage || !storageKey || serialized.value === undefined) {\n return;\n }\n\n const write = () => {\n try {\n if (storage.getItem(storageKey) === serialized.value) {\n return;\n }\n storage.setItem(storageKey, serialized.value);\n } catch (error) {\n onErrorEvent(error, \"write\");\n }\n };\n\n if (debounceMs === 0) {\n write();\n return;\n }\n\n const timeout = globalThis.setTimeout(write, debounceMs);\n return () => {\n globalThis.clearTimeout(timeout);\n };\n }, [debounceMs, serialized.value, storage, storageKey]);\n}\n\nfunction resolvePersistenceConfig(\n input: string | DataTablePersistenceConfig | undefined,\n): DataTablePersistenceConfig | undefined {\n if (!input) {\n return undefined;\n }\n\n return typeof input === \"string\" ? { key: input } : input;\n}\n\nfunction resolveStorage(\n config: DataTablePersistenceConfig,\n): DataTablePersistenceStorage | undefined {\n if (config.storage) {\n return config.storage;\n }\n\n if (typeof window === \"undefined\") {\n return undefined;\n }\n\n try {\n return window.localStorage;\n } catch (error) {\n config.onError?.({ error, operation: \"read\" });\n return undefined;\n }\n}\n\nfunction getStorageKey(key: string) {\n return `${STORAGE_PREFIX}${key}`;\n}\n\nfunction isPersistencePayload(\n value: unknown,\n): value is { version: unknown; state: unknown } {\n return (\n isRecord(value) &&\n Object.prototype.hasOwnProperty.call(value, \"version\") &&\n Object.prototype.hasOwnProperty.call(value, \"state\")\n );\n}\n\nfunction selectPersistenceSlices(\n prefs: DataTableColumnPrefs,\n slices: Array | undefined,\n) {\n const selected = new Set(slices ?? ALL_SLICES);\n const result: DataTableColumnPrefs = {};\n\n for (const slice of ALL_SLICES) {\n if (selected.has(slice) && prefs[slice] !== undefined) {\n Object.assign(result, { [slice]: prefs[slice] });\n }\n }\n\n return result;\n}\n\nfunction validateDataTableColumnPrefs(value: unknown): DataTableColumnPrefs {\n if (!isRecord(value)) {\n return {};\n }\n\n const prefs: DataTableColumnPrefs = {};\n const visibility = validateBooleanRecord(value.visibility);\n if (visibility) {\n prefs.visibility = visibility;\n }\n const sizing = validateSizingRecord(value.sizing);\n if (sizing) {\n prefs.sizing = sizing;\n }\n const order = validateStringArray(value.order);\n if (order) {\n prefs.order = order;\n }\n if (isRecord(value.pinning)) {\n const left = validateStringArray(value.pinning.left) ?? [];\n const right = validateStringArray(value.pinning.right) ?? [];\n prefs.pinning = { left, right };\n }\n const rowPinning = validateRowPinning(value.rowPinning);\n if (rowPinning) {\n prefs.rowPinning = rowPinning;\n }\n if (isDataTableDensity(value.density)) {\n prefs.density = value.density;\n }\n\n return prefs;\n}\n\nfunction validateBooleanRecord(value: unknown) {\n if (!isRecord(value)) {\n return undefined;\n }\n\n return Object.fromEntries(\n Object.entries(value).filter(\n (entry): entry is [string, boolean] => typeof entry[1] === \"boolean\",\n ),\n );\n}\n\nfunction validateSizingRecord(value: unknown) {\n if (!isRecord(value)) {\n return undefined;\n }\n\n return Object.fromEntries(\n Object.entries(value).filter(\n (entry): entry is [string, number] =>\n typeof entry[1] === \"number\" &&\n Number.isFinite(entry[1]) &&\n entry[1] >= 0,\n ),\n );\n}\n\nfunction validateStringArray(value: unknown) {\n if (!Array.isArray(value)) {\n return undefined;\n }\n\n return value.filter((item): item is string => typeof item === \"string\");\n}\n\nfunction validateRowPinning(value: unknown): RowPinningState | undefined {\n if (!isRecord(value)) {\n return undefined;\n }\n\n return {\n top: validateStringArray(value.top) ?? [],\n bottom: validateStringArray(value.bottom) ?? [],\n };\n}\n\nfunction isDataTableDensity(value: unknown): value is DataTableDensity {\n return (\n value === \"compact\" ||\n value === \"comfortable\" ||\n value === \"spacious\"\n );\n}\n\nfunction isRecord(value: unknown): value is Record {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n","import * as React from \"react\";\nimport { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS } from \"../types\";\n\nconst BREAKPOINT_WIDTHS = Object.values(DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS)\n .slice()\n .sort((first, second) => first - second);\n\nexport function useDataTableContainerWidth(\n containerRef: React.RefObject,\n) {\n const widthRef = React.useRef(0);\n const [width, setWidth] = React.useState(0);\n\n React.useEffect(() => {\n const element = containerRef.current;\n if (!element) {\n return;\n }\n\n const updateWidth = (inlineSize = element.clientWidth) => {\n const nextWidth = quantizeDataTableContainerWidth(inlineSize);\n if (nextWidth === widthRef.current) {\n return;\n }\n\n widthRef.current = nextWidth;\n setWidth(nextWidth);\n };\n\n updateWidth();\n\n if (typeof ResizeObserver === \"undefined\") {\n return;\n }\n\n const observer = new ResizeObserver((entries) => {\n const entry = entries[0];\n updateWidth(entry ? getResizeObserverInlineSize(entry) : undefined);\n });\n\n observer.observe(element);\n\n return () => {\n observer.disconnect();\n };\n }, [containerRef]);\n\n return width;\n}\n\nexport function quantizeDataTableContainerWidth(width: number) {\n if (width <= 0) {\n return 0;\n }\n\n let bucket = 1;\n for (const breakpointWidth of BREAKPOINT_WIDTHS) {\n if (width < breakpointWidth) {\n break;\n }\n bucket = breakpointWidth;\n }\n\n return bucket;\n}\n\nfunction getResizeObserverInlineSize(entry: ResizeObserverEntry) {\n const contentBoxSize: unknown = entry.contentBoxSize;\n const size: unknown = Array.isArray(contentBoxSize)\n ? contentBoxSize[0]\n : contentBoxSize;\n const inlineSize = getInlineSize(size);\n\n return inlineSize ?? entry.contentRect.width;\n}\n\nfunction getInlineSize(value: unknown) {\n if (typeof value !== \"object\" || value === null) {\n return undefined;\n }\n\n const inlineSize = (value as { inlineSize?: unknown }).inlineSize;\n return typeof inlineSize === \"number\" ? inlineSize : undefined;\n}\n","import * as React from \"react\";\nimport type {\n ColumnFiltersState,\n ColumnOrderState,\n ColumnSizingState,\n ColumnVisibilityState as VisibilityState,\n ExpandedState,\n GroupingState,\n PaginationState,\n RowPinningState,\n SortingState,\n} from \"@tanstack/react-table\";\nimport type {\n DataTableColumnPinningState as ColumnPinningState,\n DataTableDensity,\n DataTableLabels,\n DataTableProps,\n} from \"../types\";\nimport {\n createDataTableLoadingRows,\n getColumnId,\n getDataTableLeafColumns,\n getDataTableLoadingRowId,\n getInitialColumnPinning,\n isDataTableLoadingRow,\n} from \"./data-table-utils\";\nimport {\n readDataTableColumnPrefs,\n usePersistDataTableColumnPrefs,\n} from \"./use-data-table-column-prefs\";\nimport { useControllableState } from \"./use-controllable-state\";\nimport { useDataTableContainerWidth } from \"./use-data-table-container-width\";\nimport { isHiddenAtContainerWidth, isRowVisible } from \"../types\";\n\nexport function useDataTableState({\n columnFilters,\n columnOrder,\n columnPinning,\n rowPinning,\n columnSizing,\n columnPrefsKey,\n persistence,\n columnVisibility,\n columns,\n data,\n density,\n enableRowSelection,\n enableToolbarQueryFiltering,\n expanded,\n grouping,\n getSubRows,\n getRowId,\n hiddenRows,\n initialState,\n isLoading,\n loadingRowCount,\n manualFiltering,\n onColumnFiltersChange,\n onColumnOrderChange,\n onColumnPinningChange,\n onRowPinningChange,\n onColumnSizingChange,\n onColumnVisibilityChange,\n onDensityChange,\n onExpandedChange,\n onGroupingChange,\n onPageIndexChange,\n onRowSelectionChange,\n onShowHiddenRowsChange,\n onSortingChange,\n onToolbarQueryValueChange,\n onViewModeChange,\n pageIndex,\n pageSize,\n resolvedLabels,\n rowSelection,\n rowsPerPageOptions,\n selectionActions,\n showHiddenRows,\n sorting,\n toolbarQueryDebounceMs,\n toolbarQueryPlaceholder,\n toolbarQueryValue,\n viewMode,\n containerRef,\n}: {\n columnFilters: DataTableProps[\"columnFilters\"];\n columnOrder: DataTableProps[\"columnOrder\"];\n columnPinning: DataTableProps[\"columnPinning\"];\n rowPinning: DataTableProps[\"rowPinning\"];\n columnSizing?: DataTableProps[\"columnSizing\"];\n columnPrefsKey: DataTableProps[\"columnPrefsKey\"];\n persistence?: DataTableProps[\"persistence\"];\n columnVisibility: DataTableProps[\"columnVisibility\"];\n columns: DataTableProps[\"columns\"];\n data: DataTableProps[\"data\"];\n density: DataTableProps[\"density\"];\n enableRowSelection: boolean;\n enableToolbarQueryFiltering: boolean;\n expanded: DataTableProps[\"expanded\"];\n grouping: DataTableProps[\"grouping\"];\n getSubRows: DataTableProps[\"getSubRows\"];\n getRowId: DataTableProps[\"getRowId\"];\n hiddenRows: DataTableProps[\"hiddenRows\"];\n initialState?: DataTableProps[\"initialState\"];\n isLoading: boolean;\n loadingRowCount: DataTableProps[\"loadingRowCount\"];\n manualFiltering: boolean;\n onColumnFiltersChange: DataTableProps[\"onColumnFiltersChange\"];\n onColumnOrderChange: DataTableProps[\"onColumnOrderChange\"];\n onColumnPinningChange: DataTableProps[\"onColumnPinningChange\"];\n onRowPinningChange: DataTableProps[\"onRowPinningChange\"];\n onColumnSizingChange?: DataTableProps[\"onColumnSizingChange\"];\n onColumnVisibilityChange: DataTableProps[\"onColumnVisibilityChange\"];\n onDensityChange: DataTableProps[\"onDensityChange\"];\n onExpandedChange: DataTableProps[\"onExpandedChange\"];\n onGroupingChange: DataTableProps[\"onGroupingChange\"];\n onPageIndexChange: DataTableProps[\"onPageIndexChange\"];\n onRowSelectionChange: DataTableProps[\"onRowSelectionChange\"];\n onShowHiddenRowsChange: DataTableProps[\"onShowHiddenRowsChange\"];\n onSortingChange: DataTableProps[\"onSortingChange\"];\n onToolbarQueryValueChange: DataTableProps[\"onToolbarQueryValueChange\"];\n onViewModeChange: DataTableProps[\"onViewModeChange\"];\n pageIndex: DataTableProps[\"pageIndex\"];\n pageSize: DataTableProps[\"pageSize\"];\n resolvedLabels: DataTableLabels;\n rowSelection: DataTableProps[\"rowSelection\"];\n rowsPerPageOptions: Array;\n selectionActions: DataTableProps[\"selectionActions\"];\n showHiddenRows: DataTableProps[\"showHiddenRows\"];\n sorting: DataTableProps[\"sorting\"];\n toolbarQueryDebounceMs: DataTableProps[\"toolbarQueryDebounceMs\"];\n toolbarQueryPlaceholder: DataTableProps[\"toolbarQueryPlaceholder\"];\n toolbarQueryValue: DataTableProps[\"toolbarQueryValue\"];\n viewMode: DataTableProps[\"viewMode\"];\n containerRef: React.RefObject;\n}) {\n const persistenceConfig = React.useMemo(\n () => persistence ?? (columnPrefsKey ? { key: columnPrefsKey } : undefined),\n [columnPrefsKey, persistence],\n );\n const persistedColumnPrefs = React.useMemo(\n () => readDataTableColumnPrefs(persistenceConfig),\n [persistenceConfig],\n );\n const [localPagination, setLocalPagination] =\n React.useState({\n pageIndex: initialState?.pagination?.pageIndex ?? 0,\n pageSize:\n initialState?.pagination?.pageSize ??\n rowsPerPageOptions[0] ??\n 20,\n });\n const [currentSorting, setCurrentSorting] =\n useControllableState({\n value: sorting,\n onChange: onSortingChange,\n defaultValue: () => initialState?.sorting ?? [],\n });\n const [currentRowSelection, setCurrentRowSelection] = useControllableState<\n Record\n >({\n value: rowSelection,\n onChange: onRowSelectionChange,\n defaultValue: () => initialState?.rowSelection ?? {},\n });\n const [currentColumnVisibility, setCurrentColumnVisibility] =\n useControllableState({\n value: columnVisibility,\n onChange: onColumnVisibilityChange,\n defaultValue: () =>\n initialState?.columnVisibility ??\n persistedColumnPrefs.visibility ??\n {},\n });\n const [currentColumnFilters, setCurrentColumnFilters] =\n useControllableState({\n value: columnFilters,\n onChange: onColumnFiltersChange,\n defaultValue: () => initialState?.columnFilters ?? [],\n });\n const [currentExpanded, setCurrentExpanded] =\n useControllableState({\n value: expanded,\n onChange: onExpandedChange,\n defaultValue: () => initialState?.expanded ?? {},\n });\n const [currentColumnOrder, setCurrentColumnOrder] =\n useControllableState({\n value: columnOrder,\n onChange: onColumnOrderChange,\n defaultValue: () =>\n initialState?.columnOrder ?? persistedColumnPrefs.order ?? [],\n });\n const [currentColumnPinning, setCurrentColumnPinning] =\n useControllableState({\n value: columnPinning,\n onChange: onColumnPinningChange,\n defaultValue: () =>\n initialState?.columnPinning ??\n persistedColumnPrefs.pinning ??\n getInitialColumnPinning(columns),\n });\n const [currentRowPinning, setCurrentRowPinning] =\n useControllableState({\n value: rowPinning,\n onChange: onRowPinningChange,\n defaultValue: () =>\n initialState?.rowPinning ?? persistedColumnPrefs.rowPinning ?? {\n top: [],\n bottom: [],\n },\n });\n const [currentColumnSizing, setCurrentColumnSizing] =\n useControllableState({\n value: columnSizing,\n onChange: onColumnSizingChange,\n defaultValue: () =>\n initialState?.columnSizing ?? persistedColumnPrefs.sizing ?? {},\n });\n const [currentViewMode, setCurrentViewMode] = useControllableState<\n \"table\" | \"card\"\n >({\n value: viewMode,\n onChange: onViewModeChange,\n defaultValue: () => initialState?.viewMode ?? \"table\",\n });\n const [currentGrouping, setCurrentGrouping] = useControllableState({\n value: grouping,\n onChange: onGroupingChange,\n defaultValue: () => initialState?.grouping ?? [],\n });\n const [currentShowHiddenRows, setCurrentShowHiddenRows] =\n useControllableState({\n value: showHiddenRows,\n onChange: onShowHiddenRowsChange,\n defaultValue: () => initialState?.showHiddenRows ?? false,\n });\n const [currentDensity, setCurrentDensity] =\n useControllableState({\n value: density,\n onChange: onDensityChange,\n defaultValue: () =>\n initialState?.density ??\n persistedColumnPrefs.density ??\n \"comfortable\",\n });\n const resolvedToolbarQueryValue =\n toolbarQueryValue ?? initialState?.globalFilter ?? \"\";\n const resolvedToolbarQueryPlaceholder =\n toolbarQueryPlaceholder ?? resolvedLabels.searchPlaceholder;\n const resolvedToolbarQueryDebounceMs = toolbarQueryDebounceMs ?? 250;\n const [localSearchValue, setLocalSearchValue] = React.useState(\n resolvedToolbarQueryValue,\n );\n const containerWidth = useDataTableContainerWidth(containerRef);\n const hasOnSearchValueChange = Boolean(onToolbarQueryValueChange);\n const lastReportedSearchValueRef = React.useRef(resolvedToolbarQueryValue);\n const onToolbarQueryValueChangeEvent = React.useEffectEvent(\n (value: string) => {\n lastReportedSearchValueRef.current = value;\n onToolbarQueryValueChange?.(value);\n },\n );\n\n React.useEffect(() => {\n lastReportedSearchValueRef.current = resolvedToolbarQueryValue;\n // A controlled query change must replace any pending debounced draft.\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setLocalSearchValue(resolvedToolbarQueryValue);\n }, [resolvedToolbarQueryValue]);\n\n React.useEffect(() => {\n if (!hasOnSearchValueChange) {\n return;\n }\n\n if (localSearchValue === resolvedToolbarQueryValue) {\n return;\n }\n\n if (localSearchValue === lastReportedSearchValueRef.current) {\n return;\n }\n\n const timeout = window.setTimeout(() => {\n onToolbarQueryValueChangeEvent(localSearchValue);\n }, resolvedToolbarQueryDebounceMs);\n\n return () => {\n window.clearTimeout(timeout);\n };\n }, [\n hasOnSearchValueChange,\n localSearchValue,\n resolvedToolbarQueryDebounceMs,\n resolvedToolbarQueryValue,\n ]);\n\n const currentPagination = React.useMemo(\n () => ({\n pageIndex: pageIndex ?? localPagination.pageIndex,\n pageSize: pageSize ?? localPagination.pageSize,\n }),\n [\n localPagination.pageIndex,\n localPagination.pageSize,\n pageIndex,\n pageSize,\n ],\n );\n const resolvedLoadingRowCount = Math.max(\n 1,\n loadingRowCount ?? Math.min(5, currentPagination.pageSize),\n );\n // Keep input/callback state eager. Only the client row-model input is\n // deferred, so server/manual callbacks never wait behind a large filter.\n const deferredSearchValue = React.useDeferredValue(localSearchValue);\n const globalFilterValue = enableToolbarQueryFiltering\n ? manualFiltering\n ? localSearchValue\n : deferredSearchValue\n : \"\";\n const handleViewModeChange = React.useCallback(\n (nextViewMode: \"table\" | \"card\") => {\n setCurrentViewMode(nextViewMode);\n },\n [setCurrentViewMode],\n );\n const handleShowHiddenRowsChange = React.useCallback(\n (nextShowHiddenRows: boolean) => {\n setCurrentShowHiddenRows(nextShowHiddenRows);\n },\n [setCurrentShowHiddenRows],\n );\n const handleDensityChange = React.useCallback(\n (nextDensity: DataTableDensity) => {\n setCurrentDensity(nextDensity);\n },\n [setCurrentDensity],\n );\n const resetPageIndexForFilterChange = React.useCallback(() => {\n onPageIndexChange?.(0);\n if (pageIndex === undefined) {\n setLocalPagination((current) =>\n current.pageIndex === 0 ? current : { ...current, pageIndex: 0 },\n );\n }\n }, [onPageIndexChange, pageIndex]);\n const lastFilterStateRef = React.useRef({\n columnFilters: currentColumnFilters,\n globalFilterValue,\n });\n\n React.useEffect(() => {\n const previous = lastFilterStateRef.current;\n const filtersChanged = previous.columnFilters !== currentColumnFilters;\n const globalFilterChanged =\n previous.globalFilterValue !== globalFilterValue;\n lastFilterStateRef.current = {\n columnFilters: currentColumnFilters,\n globalFilterValue,\n };\n\n if (manualFiltering) {\n return;\n }\n\n if (!filtersChanged && !globalFilterChanged) {\n return;\n }\n\n resetPageIndexForFilterChange();\n }, [\n currentColumnFilters,\n globalFilterValue,\n manualFiltering,\n resetPageIndexForFilterChange,\n ]);\n\n usePersistDataTableColumnPrefs({\n persistence: persistenceConfig,\n prefs: {\n visibility: columnVisibility ? undefined : currentColumnVisibility,\n sizing:\n columnSizing === undefined ? currentColumnSizing : undefined,\n order: columnOrder ? undefined : currentColumnOrder,\n pinning: columnPinning ? undefined : currentColumnPinning,\n rowPinning: rowPinning === undefined ? currentRowPinning : undefined,\n density: density ? undefined : currentDensity,\n },\n });\n const responsiveColumnVisibility = React.useMemo(() => {\n return getDataTableLeafColumns(columns).reduce(\n (visibility, { column, index }) => {\n const columnId = getColumnId(column, index);\n if (isHiddenAtContainerWidth(column.meta?.hideOn, containerWidth)) {\n visibility[columnId] = false;\n }\n return visibility;\n },\n {},\n );\n }, [columns, containerWidth]);\n const effectiveColumnVisibility = React.useMemo(() => {\n return {\n ...currentColumnVisibility,\n ...responsiveColumnVisibility,\n };\n }, [currentColumnVisibility, responsiveColumnVisibility]);\n const visibleData = React.useMemo(\n () =>\n data.filter((row) =>\n isRowVisible(row, hiddenRows, currentShowHiddenRows),\n ),\n [currentShowHiddenRows, data, hiddenRows],\n );\n const shouldRenderInitialLoading = isLoading && visibleData.length === 0;\n const loadingRows = React.useMemo(\n () => createDataTableLoadingRows(resolvedLoadingRowCount),\n [resolvedLoadingRowCount],\n );\n const tableData = shouldRenderInitialLoading\n ? loadingRows\n : visibleData;\n const tableGetRowId = React.useCallback(\n (row: TData, index: number) => {\n if (isDataTableLoadingRow(row)) {\n return getDataTableLoadingRowId(index);\n }\n\n return getRowId(row, index);\n },\n [getRowId],\n );\n const shouldResolveSelectedRows =\n enableRowSelection ||\n (selectionActions?.length ?? 0) > 0 ||\n Object.values(currentRowSelection).some(Boolean);\n const rowById = React.useMemo(() => {\n if (!shouldResolveSelectedRows) {\n return new Map();\n }\n\n const rows = new Map();\n const visitRows = (currentRows: Array) => {\n currentRows.forEach((row, index) => {\n rows.set(getRowId(row, index), row);\n const subRows = getSubRows?.(row, index);\n if (subRows?.length) {\n visitRows(subRows);\n }\n });\n };\n visitRows(visibleData);\n return rows;\n }, [getRowId, getSubRows, shouldResolveSelectedRows, visibleData]);\n const selectedRows = React.useMemo(() => {\n if (!shouldResolveSelectedRows) {\n return [];\n }\n\n return Object.entries(currentRowSelection)\n .filter(([, selected]) => selected)\n .map(([rowId]) => rowById.get(rowId))\n .filter((row): row is TData => Boolean(row));\n }, [currentRowSelection, rowById, shouldResolveSelectedRows]);\n const selectedRowIds = React.useMemo(\n () =>\n Object.entries(currentRowSelection).flatMap(([rowId, selected]) =>\n selected ? [rowId] : [],\n ),\n [currentRowSelection],\n );\n\n return {\n containerWidth,\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentColumnVisibility,\n currentDensity,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentShowHiddenRows,\n currentSorting,\n currentViewMode,\n effectiveColumnVisibility,\n globalFilterValue,\n handleDensityChange,\n handleShowHiddenRowsChange,\n handleViewModeChange,\n localSearchValue,\n resolvedLoadingRowCount,\n resolvedToolbarQueryPlaceholder,\n selectedRowIds,\n selectedRows,\n setCurrentColumnFilters,\n setCurrentColumnOrder,\n setCurrentColumnPinning,\n setCurrentRowPinning,\n setCurrentColumnVisibility,\n setCurrentExpanded,\n setCurrentGrouping,\n setCurrentRowSelection,\n setCurrentSorting,\n setLocalColumnSizing: setCurrentColumnSizing,\n setLocalPagination,\n setLocalSearchValue,\n shouldRenderInitialLoading,\n tableData,\n tableGetRowId,\n /**\n * @deprecated Read the filtered TanStack row model from the table\n * instance. This alias remains for advanced 4.x callers.\n */\n toolbarFilteredData: visibleData,\n visibleData,\n };\n}\n","import * as React from \"react\";\nimport type { ColumnSizingState } from \"@tanstack/react-table\";\nimport type { DataTableColumnDef } from \"../types\";\nimport type { DataTableUiClassNames } from \"../ui-kit\";\nimport {\n UTILITY_COLUMN_SIZE,\n getColumnId,\n getConfiguredColumnMinWidth,\n getDataTableLeafColumns,\n getFixedSide,\n getPinnedColumnClassName,\n hasExplicitDataTableColumnSize,\n hasFixedDataTableColumnSize,\n isUtilityColumnId,\n} from \"./data-table-utils\";\nimport type { DataTableTanStackColumn as Column } from \"./tanstack-v9\";\n\ntype ColumnLayoutMode = \"fill\" | \"fit\";\n\nexport type DataTableColumnLayout = {\n cellStyle: React.CSSProperties | undefined;\n colStyle: React.CSSProperties | undefined;\n fixedSide: \"left\" | \"right\" | false | undefined;\n headerStyle: React.CSSProperties | undefined;\n isActionsColumn: boolean;\n isExpansionColumn: boolean;\n isSelectionColumn: boolean;\n isSpacerColumn: boolean;\n isUtilityColumn: boolean;\n pinnedClassName: string | undefined;\n utilityClassName: string | undefined;\n};\n\nconst EMPTY_COLUMN_LAYOUT: DataTableColumnLayout = {\n cellStyle: undefined,\n colStyle: undefined,\n fixedSide: undefined,\n headerStyle: undefined,\n isActionsColumn: false,\n isExpansionColumn: false,\n isSelectionColumn: false,\n isSpacerColumn: false,\n isUtilityColumn: false,\n pinnedClassName: undefined,\n utilityClassName: undefined,\n};\n\nexport function useColumnLayout({\n columns,\n columnSizing,\n editableRows,\n enableRowSelection,\n hasRowActions,\n hasRowExpansion,\n layoutMode,\n uiClassNames,\n visibleLeafColumns,\n}: {\n columns: Array>;\n columnSizing: ColumnSizingState;\n editableRows: boolean;\n enableRowSelection: boolean;\n hasRowActions: boolean;\n hasRowExpansion: boolean;\n layoutMode: ColumnLayoutMode;\n uiClassNames: DataTableUiClassNames;\n visibleLeafColumns: Array>;\n}) {\n const explicitlySizedColumnIds = React.useMemo(() => {\n const ids = new Set();\n\n for (const { column, index } of getDataTableLeafColumns(columns)) {\n if (hasExplicitDataTableColumnSize(column)) {\n ids.add(getColumnId(column, index));\n }\n }\n\n if (enableRowSelection) {\n ids.add(\"__select__\");\n }\n\n if (hasRowExpansion) {\n ids.add(\"__expand__\");\n }\n\n if (hasRowActions || editableRows) {\n ids.add(\"__actions__\");\n }\n\n return ids;\n }, [\n columns,\n editableRows,\n enableRowSelection,\n hasRowActions,\n hasRowExpansion,\n ]);\n\n const minimumColumnWidths = React.useMemo(() => {\n const widths = new Map();\n\n for (const { column, index } of getDataTableLeafColumns(columns)) {\n const configuredMinWidth = getConfiguredColumnMinWidth(column);\n\n if (configuredMinWidth !== undefined) {\n widths.set(getColumnId(column, index), configuredMinWidth);\n }\n }\n\n return widths;\n }, [columns]);\n\n const configuredFixedWidthColumnIds = React.useMemo(() => {\n const ids = new Set();\n\n for (const { column, index } of getDataTableLeafColumns(columns)) {\n if (hasFixedDataTableColumnSize(column)) {\n ids.add(getColumnId(column, index));\n }\n }\n\n return ids;\n }, [columns]);\n\n const pinnedColumns = React.useMemo(() => {\n const left = new Map();\n const right = new Map();\n\n let leftOffset = 0;\n for (const column of visibleLeafColumns) {\n if (getFixedSide(column) === \"left\") {\n left.set(column.id, leftOffset);\n leftOffset += getColumnLayoutSize(column);\n }\n }\n\n let rightOffset = 0;\n for (const column of [...visibleLeafColumns].reverse()) {\n if (getFixedSide(column) === \"right\") {\n right.set(column.id, rightOffset);\n rightOffset += getColumnLayoutSize(column);\n }\n }\n\n return { left, right };\n }, [visibleLeafColumns]);\n\n const fillColumnId = React.useMemo(() => {\n if (layoutMode !== \"fill\") {\n return undefined;\n }\n\n return [...visibleLeafColumns]\n .reverse()\n .find(\n (column) =>\n column.id !== \"__spacer__\" &&\n !isUtilityColumnId(column.id) &&\n !configuredFixedWidthColumnIds.has(column.id) &&\n !Object.prototype.hasOwnProperty.call(columnSizing, column.id),\n )?.id;\n }, [\n columnSizing,\n configuredFixedWidthColumnIds,\n layoutMode,\n visibleLeafColumns,\n ]);\n\n const fixedWidthColumnIds = React.useMemo(() => {\n const ids = new Set([\n ...explicitlySizedColumnIds,\n ...configuredFixedWidthColumnIds,\n ...Object.keys(columnSizing),\n ]);\n\n if (fillColumnId) {\n ids.delete(fillColumnId);\n }\n\n return ids;\n }, [\n columnSizing,\n configuredFixedWidthColumnIds,\n explicitlySizedColumnIds,\n fillColumnId,\n ]);\n\n const columnLayouts = React.useMemo(() => {\n const layouts = new Map();\n\n for (const column of visibleLeafColumns) {\n const isSelectionColumn = column.id === \"__select__\";\n const isExpansionColumn = column.id === \"__expand__\";\n const isActionsColumn = column.id === \"__actions__\";\n const isUtilityColumn =\n isSelectionColumn || isExpansionColumn || isActionsColumn;\n const isSpacerColumn = column.id === \"__spacer__\";\n const configuredMinWidth = minimumColumnWidths.get(column.id);\n const isFlexibleFillColumn = column.id === fillColumnId;\n const columnMinWidth =\n configuredMinWidth ??\n (isFlexibleFillColumn && explicitlySizedColumnIds.has(column.id)\n ? column.getSize()\n : undefined);\n const shouldFixWidth =\n !isSpacerColumn &&\n (layoutMode === \"fit\" ||\n isUtilityColumn ||\n fixedWidthColumnIds.has(column.id));\n const baseStyle =\n shouldFixWidth || columnMinWidth !== undefined\n ? {\n width: shouldFixWidth\n ? isUtilityColumn\n ? UTILITY_COLUMN_SIZE\n : column.getSize()\n : undefined,\n minWidth: isUtilityColumn\n ? UTILITY_COLUMN_SIZE\n : shouldFixWidth\n ? column.getSize()\n : columnMinWidth,\n maxWidth: shouldFixWidth\n ? isUtilityColumn\n ? UTILITY_COLUMN_SIZE\n : column.getSize()\n : undefined,\n }\n : undefined;\n const fixedSide = getFixedSide(column);\n const pinnedStyle = fixedSide\n ? {\n left:\n fixedSide === \"left\" ? pinnedColumns.left.get(column.id) : undefined,\n right:\n fixedSide === \"right\"\n ? pinnedColumns.right.get(column.id)\n : undefined,\n }\n : undefined;\n const cellStyle =\n baseStyle || pinnedStyle ? { ...baseStyle, ...pinnedStyle } : undefined;\n\n layouts.set(column.id, {\n cellStyle,\n colStyle: baseStyle,\n fixedSide,\n headerStyle: cellStyle,\n isActionsColumn,\n isExpansionColumn,\n isSelectionColumn,\n isSpacerColumn,\n isUtilityColumn,\n pinnedClassName: fixedSide\n ? getPinnedColumnClassName(fixedSide, uiClassNames, {\n isUtilityColumn,\n })\n : undefined,\n utilityClassName: isUtilityColumn\n ? \"w-[50px] max-w-[50px] min-w-[50px] px-0\"\n : undefined,\n });\n }\n\n return layouts;\n }, [\n explicitlySizedColumnIds,\n fillColumnId,\n fixedWidthColumnIds,\n layoutMode,\n minimumColumnWidths,\n pinnedColumns,\n uiClassNames,\n visibleLeafColumns,\n ]);\n\n const fillMinWidth = React.useMemo(() => {\n return visibleLeafColumns.reduce((total, column) => {\n const layout = columnLayouts.get(column.id);\n const configuredMinWidth = minimumColumnWidths.get(column.id);\n const isFlexibleFillColumn = column.id === fillColumnId;\n\n if (layout?.isUtilityColumn) {\n return total + UTILITY_COLUMN_SIZE;\n }\n\n if (fixedWidthColumnIds.has(column.id)) {\n return total + column.getSize();\n }\n\n return (\n total +\n (configuredMinWidth ??\n (isFlexibleFillColumn && explicitlySizedColumnIds.has(column.id)\n ? column.getSize()\n : 0))\n );\n }, 0);\n }, [\n columnLayouts,\n explicitlySizedColumnIds,\n fillColumnId,\n fixedWidthColumnIds,\n minimumColumnWidths,\n visibleLeafColumns,\n ]);\n\n const getColumnLayout = React.useCallback(\n (columnId: string) => columnLayouts.get(columnId) ?? EMPTY_COLUMN_LAYOUT,\n [columnLayouts],\n );\n\n return {\n columnLayouts,\n explicitlySizedColumnIds,\n fillMinWidth,\n getColumnLayout,\n };\n}\n\nfunction getColumnLayoutSize(column: Column) {\n return isUtilityColumnId(column.id) ? UTILITY_COLUMN_SIZE : column.getSize();\n}\n","import * as React from \"react\";\nimport type { ExpandedState, OnChangeFn } from \"@tanstack/react-table\";\nimport { IconChevronDown } from \"../icons\";\nimport type {\n DataTableCardRendererProps,\n DataTableCardSizing,\n DataTableEditableRowsConfig,\n DataTableDetailPanel,\n DataTableLabels,\n DataTableProps,\n DataTableRowAction,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport { DATA_TABLE_DEFAULT_LABELS } from \"./data-table-labels\";\nimport {\n isDataTableInteractiveTarget,\n toggleDataTableExpandedState,\n} from \"./data-table-utils\";\nimport type { DataTableTanStackRow as Row } from \"./tanstack-v9\";\n\ntype DataTableCardViewProps = {\n rows: Array>;\n cardRenderer: (props: DataTableCardRendererProps) => React.ReactNode;\n cardSizing?: DataTableCardSizing;\n cardGridClassName?: string;\n cardClassName?: string;\n rowActions: Array>;\n editableRows?: DataTableEditableRowsConfig;\n detailPanel?: DataTableDetailPanel;\n detailExpanded: ExpandedState;\n onDetailExpandedChange: OnChangeFn;\n hasCardTitle: boolean;\n rowSelection: Record;\n onRowSelectionChange: (rowSelection: Record) => void;\n enableRowSelection: boolean;\n editingRowId: string | null;\n onEditingRowIdChange: (rowId: string | null) => void;\n getRowClassName?: DataTableProps[\"getRowClassName\"];\n onRowClick?: (context: { row: TData; rowId: string }) => void | Promise;\n getRowDraggable?: (row: TData) => boolean;\n onRowDragStart?: (context: {\n row: TData;\n rowId: string;\n event: React.DragEvent;\n }) => void;\n onRowDragEnd?: (context: {\n row: TData;\n rowId: string;\n event: React.DragEvent;\n }) => void;\n isLoading?: boolean;\n loadingRowCount?: number;\n labels: DataTableLabels;\n};\n\ntype DataTableRowActionsComponent = (props: {\n row: TData;\n rowActions: Array>;\n editableRows?: DataTableEditableRowsConfig;\n isEditing: boolean;\n onStartEditing: () => void;\n onCancelEditing: () => void;\n labels: DataTableLabels;\n}) => React.ReactElement | null;\n\nexport function createDataTableCardView(\n ui: DataTableUiKit,\n DataTableRowActions: DataTableRowActionsComponent,\n) {\n const uiClassNames = ui.classNames ?? {};\n const { Button, Card, CardContent, CardHeader, Checkbox, Skeleton } = ui;\n\n return function DataTableCardView({\n rows,\n cardRenderer,\n cardSizing = \"fixed\",\n cardGridClassName,\n cardClassName,\n rowActions,\n editableRows,\n detailPanel,\n detailExpanded,\n onDetailExpandedChange,\n hasCardTitle,\n rowSelection,\n onRowSelectionChange,\n enableRowSelection,\n editingRowId,\n onEditingRowIdChange,\n getRowClassName,\n onRowClick,\n getRowDraggable,\n onRowDragStart,\n onRowDragEnd,\n isLoading = false,\n loadingRowCount = 5,\n labels,\n }: DataTableCardViewProps) {\n const resolvedCardSizing = cardSizing ?? \"fixed\";\n const resolvedCardGridClassName =\n cardGridClassName\n ? cn(\"grid\", cardGridClassName)\n : getCardGridClassName(resolvedCardSizing);\n const cardGridClasses = cn(\n \"min-h-0 w-full gap-4 p-1\",\n uiClassNames.cardGrid,\n resolvedCardGridClassName,\n );\n const cardItemClasses = (stateClassName?: string) =>\n cn(\n \"relative min-w-0 max-w-full gap-0 overflow-hidden bg-transparent p-0\",\n getCardItemClassName(resolvedCardSizing),\n uiClassNames.cardItem,\n cardClassName,\n stateClassName,\n );\n\n if (isLoading) {\n return (\n \n {Array.from({ length: Math.max(1, loadingRowCount) }, (_, index) => (\n \n {hasCardTitle ? (\n \n \n \n \n ) : null}\n \n \n \n \n \n \n \n ))}\n \n );\n }\n\n return (\n \n {rows.map((row) => {\n const rowId = row.id;\n const originalRow = row.original;\n const isSelected = Boolean(rowSelection[rowId]);\n const isEditing = editingRowId === rowId;\n const hasCardActions = rowActions.length > 0 || Boolean(editableRows);\n const canExpandDetail = Boolean(\n detailPanel && (detailPanel.getRowCanExpand?.(originalRow) ?? true),\n );\n const showCardGradient =\n enableRowSelection || hasCardActions || hasCardTitle;\n const showCardOverlayControls =\n enableRowSelection ||\n hasCardActions ||\n row.getCanExpand() ||\n canExpandDetail;\n const handleCardActivate = () => {\n if (!onRowClick) {\n return;\n }\n\n void onRowClick({ row: originalRow, rowId });\n };\n\n return (\n ) => {\n onRowDragStart?.({ row: originalRow, rowId, event });\n }}\n onDragEnd={(event: React.DragEvent) => {\n onRowDragEnd?.({ row: originalRow, rowId, event });\n }}\n >\n {showCardGradient ? (\n \n ) : null}\n *]:min-w-0\",\n getCardRendererClassName(resolvedCardSizing),\n onRowClick && \"cursor-pointer focus-visible:outline-none\",\n )}\n onClick={(event: React.MouseEvent) => {\n if (\n isDataTableInteractiveTarget(\n event.target,\n event.currentTarget,\n )\n ) {\n return;\n }\n\n handleCardActivate();\n }}\n onKeyDown={(event: React.KeyboardEvent) => {\n if (\n isDataTableInteractiveTarget(\n event.target,\n event.currentTarget,\n )\n ) {\n return;\n }\n\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n handleCardActivate();\n }\n }}\n >\n {cardRenderer({\n row: originalRow,\n rowId,\n depth: row.depth,\n canExpandSubRows: row.getCanExpand(),\n isSubRowsExpanded: row.getIsExpanded(),\n toggleSubRowsExpanded: () => row.toggleExpanded(),\n isSelected,\n onSelectedChange: (nextValue) => {\n onRowSelectionChange(\n updateRowSelection(\n rowSelection,\n rowId,\n nextValue,\n row.getCanSelect(),\n row.getCanMultiSelect(),\n ),\n );\n },\n actions: rowActions,\n isEditing,\n startEditing: () => {\n onEditingRowIdChange(rowId);\n },\n cancelEditing: () => {\n onEditingRowIdChange(null);\n },\n })}\n \n {isEditing ||\n !detailPanel ||\n !(detailExpanded === true || Boolean(detailExpanded[row.id]))\n ? null\n : (\n \n {detailPanel.render({\n row: originalRow,\n rowId,\n tableRow: row,\n })}\n \n )}\n {showCardOverlayControls ? (\n \n {enableRowSelection ? (\n \n {\n onRowSelectionChange(\n updateRowSelection(\n rowSelection,\n rowId,\n checked === true,\n row.getCanSelect(),\n row.getCanMultiSelect(),\n ),\n );\n }}\n />\n \n ) : null}\n {row.getCanExpand() ? (\n
\n row.toggleExpanded()}\n >\n \n \n
\n ) : null}\n {canExpandDetail ? (\n \n {\n onDetailExpandedChange((current) =>\n toggleDataTableExpandedState(\n current,\n row.id,\n rows.map((item) => item.id),\n ),\n );\n }}\n >\n \n \n \n ) : null}\n
\n {hasCardActions ? (\n \n {\n onEditingRowIdChange(rowId);\n }}\n onCancelEditing={() => {\n onEditingRowIdChange(null);\n }}\n labels={labels}\n />\n
\n ) : null}\n
\n ) : null}\n \n );\n })}\n \n );\n };\n}\n\nfunction getCardGridClassName(cardSizing: DataTableCardSizing) {\n switch (cardSizing) {\n case \"content\":\n return \"flex flex-wrap items-start justify-start\";\n case \"fluid\":\n return \"grid grid-cols-[repeat(auto-fit,minmax(min(18rem,100%),1fr))]\";\n case \"fixed\":\n default:\n return \"grid grid-cols-[repeat(auto-fill,minmax(min(18rem,100%),18rem))] justify-start\";\n }\n}\n\nfunction getCardItemClassName(cardSizing: DataTableCardSizing) {\n switch (cardSizing) {\n case \"content\":\n return \"w-fit\";\n case \"fluid\":\n return \"w-full\";\n case \"fixed\":\n default:\n return undefined;\n }\n}\n\nfunction getCardRendererClassName(cardSizing: DataTableCardSizing) {\n switch (cardSizing) {\n case \"content\":\n return \"w-fit\";\n case \"fluid\":\n return \"w-full flex-1 [&>*]:w-full\";\n case \"fixed\":\n default:\n return \"flex-1\";\n }\n}\n\nfunction updateRowSelection(\n rowSelection: Record,\n rowId: string,\n isSelected: boolean,\n canSelect: boolean,\n canMultiSelect: boolean,\n) {\n if (!canSelect) {\n return rowSelection;\n }\n\n if (isSelected) {\n return canMultiSelect\n ? {\n ...rowSelection,\n [rowId]: true,\n }\n : { [rowId]: true };\n }\n\n if (!rowSelection[rowId]) {\n return rowSelection;\n }\n\n const nextSelection = { ...rowSelection };\n delete nextSelection[rowId];\n return nextSelection;\n}\n","import { IconInbox } from \"../icons\";\nimport type { DataTableUiKit } from \"../ui-kit\";\n\nexport function createDataTableEmptyState(ui: DataTableUiKit) {\n const uiClassNames = ui.classNames ?? {};\n const {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n } = ui;\n\n return function DataTableEmptyState({\n title = \"No rows found\",\n description = \"Adjust your filters or create a new record to populate this table.\",\n }: {\n title?: string;\n description?: string;\n }) {\n return (\n \n \n \n \n \n {title}\n {description}\n \n \n \n );\n };\n}\n","import * as React from \"react\";\nimport { IconDatabase } from \"../icons\";\nimport type { DataTableLabels } from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { DATA_TABLE_DEFAULT_LABELS } from \"./data-table-labels\";\n\ntype DataTablePaginationProps = {\n pageIndex: number;\n pageCount: number;\n pageCountKnown: boolean;\n pageSize: number;\n totalRowCount?: number;\n rowsPerPageOptions: Array;\n onPageIndexChange: (pageIndex: number) => void;\n onPageSizeChange: (pageSize: number) => void;\n labels: DataTableLabels;\n};\n\nexport function createDataTablePagination(ui: DataTableUiKit) {\n const uiClassNames = ui.classNames ?? {};\n const {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationFirst,\n PaginationItem,\n PaginationLast,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n } = ui;\n\n function DataTablePagination({\n pageIndex,\n pageCount,\n pageCountKnown,\n pageSize,\n totalRowCount,\n rowsPerPageOptions,\n onPageIndexChange,\n onPageSizeChange,\n labels,\n }: DataTablePaginationProps) {\n const pages = pageCountKnown\n ? getVisiblePages(pageIndex, Math.max(1, pageCount))\n : [];\n const canGoPrevious = pageIndex > 0;\n const canGoNext = pageIndex + 1 < pageCount;\n const lastPageIndex = Math.max(0, pageCount - 1);\n\n return (\n
\n \n \n {labels.recordsPerPage}\n \n {\n onPageSizeChange(Number(value));\n }}\n >\n \n \n \n \n \n {rowsPerPageOptions.map((option) => (\n \n {option}\n \n ))}\n \n \n \n
\n\n {totalRowCount !== undefined ? (\n
\n \n \n {totalRowCount}\n \n {labels.totalRecords(totalRowCount)}\n \n
\n \n ) : null}\n\n
\n \n {pageCountKnown\n ? labels.pageStatus(pageIndex, Math.max(1, pageCount))\n : (\n labels.pageStatusUnknown ??\n DATA_TABLE_DEFAULT_LABELS.pageStatusUnknown\n )(pageIndex)}\n
\n \n \n \n \n \n ) => {\n event.preventDefault();\n if (canGoPrevious) {\n onPageIndexChange(0);\n }\n }}\n text={labels.firstPage}\n />\n \n {labels.firstPage}\n \n \n \n \n \n ) => {\n event.preventDefault();\n if (canGoPrevious) {\n onPageIndexChange(pageIndex - 1);\n }\n }}\n text={labels.previousPage}\n />\n \n {labels.previousPage}\n \n \n {pages.map((item, index) => (\n \n {item === \"ellipsis\" ? (\n \n ) : (\n ) => {\n event.preventDefault();\n onPageIndexChange(item - 1);\n }}\n >\n {item}\n \n )}\n \n ))}\n \n \n \n ) => {\n event.preventDefault();\n if (canGoNext) {\n onPageIndexChange(pageIndex + 1);\n }\n }}\n text={labels.nextPage}\n />\n \n {labels.nextPage}\n \n \n {pageCountKnown ? (\n \n \n \n ,\n ) => {\n event.preventDefault();\n if (canGoNext) {\n onPageIndexChange(lastPageIndex);\n }\n }}\n />\n \n {labels.lastPage}\n \n \n ) : null}\n \n \n \n \n );\n }\n\n function DataTableFooter(props: DataTablePaginationProps) {\n return (\n \n \n \n );\n }\n\n return {\n DataTableFooter,\n DataTablePagination,\n };\n}\n\nfunction getVisiblePages(currentPageIndex: number, pageCount: number) {\n const currentPage = currentPageIndex + 1;\n const pages = new Set([1, pageCount]);\n\n for (\n let page = Math.max(1, currentPage - 2);\n page <= Math.min(pageCount, currentPage + 2);\n page += 1\n ) {\n pages.add(page);\n }\n\n const orderedPages = Array.from(pages).sort((left, right) => left - right);\n const items: Array = [];\n\n for (let index = 0; index < orderedPages.length; index += 1) {\n const page = orderedPages[index];\n const previous = orderedPages[index - 1];\n\n if (previous && page - previous > 1) {\n items.push(\"ellipsis\");\n }\n\n items.push(page);\n }\n\n return items;\n}\n","import * as React from \"react\";\nimport { IconDots, IconEdit, IconX } from \"../icons\";\nimport type {\n DataTableEditableRowsConfig,\n DataTableLabels,\n DataTableRowAction,\n} from \"../types\";\nimport type { RowPinningPosition } from \"@tanstack/react-table\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { canEditRow, canUseRowAction, resolveRowActionLabel } from \"../types\";\n\ntype DataTableRowActionsProps = {\n row: TData;\n rowActions: Array>;\n editableRows?: DataTableEditableRowsConfig;\n isEditing: boolean;\n onStartEditing: () => void;\n onCancelEditing: () => void;\n labels: DataTableLabels;\n rowPinning?: {\n canPin: boolean;\n position: RowPinningPosition;\n pin: (position: RowPinningPosition) => void;\n };\n};\n\nexport function createDataTableRowActions(ui: DataTableUiKit) {\n const {\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n } = ui;\n\n return function DataTableRowActions({\n row,\n rowActions,\n editableRows,\n isEditing,\n onStartEditing,\n onCancelEditing,\n labels,\n rowPinning,\n }: DataTableRowActionsProps) {\n const actions = rowActions.filter((action) => canUseRowAction(action, row));\n const stopRowClickPropagation = React.useCallback(\n (event: React.SyntheticEvent) => {\n event.stopPropagation();\n },\n [],\n );\n\n if (isEditing) {\n return (\n \n \n \n \n {labels.cancelEdit}\n \n \n {labels.cancelEdit}\n \n );\n }\n\n const allowEdit = canEditRow(editableRows, row);\n const canPin = rowPinning?.canPin ?? false;\n if (!actions.length && !allowEdit && !canPin) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n {labels.rowActions}\n \n \n \n {labels.rowActions}\n \n \n {allowEdit ? (\n \n ) => {\n event.stopPropagation();\n onStartEditing();\n }}\n >\n \n {labels.editRow}\n \n \n ) : null}\n {allowEdit && (actions.length || canPin) ? : null}\n {canPin ? (\n \n {rowPinning?.position ? (\n ) => {\n event.stopPropagation();\n rowPinning.pin(false);\n }}\n >\n {labels.unpinRow}\n \n ) : (\n <>\n ) => {\n event.stopPropagation();\n rowPinning?.pin(\"top\");\n }}\n >\n {labels.pinRowToTop}\n \n ) => {\n event.stopPropagation();\n rowPinning?.pin(\"bottom\");\n }}\n >\n {labels.pinRowToBottom}\n \n \n )}\n \n ) : null}\n {canPin && actions.length ? : null}\n {actions.length ? (\n \n {actions.map((action) => {\n const Icon = action.icon;\n return (\n ) => {\n event.stopPropagation();\n void action.onClick(row);\n }}\n >\n {Icon ? : null}\n {resolveRowActionLabel(action.label, row)}\n \n );\n })}\n \n ) : null}\n \n \n );\n };\n}\n","import * as React from \"react\";\nimport type { DataTableTanStackTable as TanStackTable } from \"./tanstack-v9\";\nimport {\n IconAdjustmentsHorizontal,\n IconLayoutGrid,\n IconList,\n IconSearch,\n IconX,\n} from \"../icons\";\nimport type {\n DataTableColumnFilterType,\n DataTableColumnFixed,\n DataTableColumnVisibilityOption,\n DataTableDensity,\n DataTableLabels,\n DataTableSavedView,\n DataTableSelectionAction,\n DataTableToolbarAction,\n DataTableToolbarVisibility,\n DataTableViewMode,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { DATA_TABLE_DEFAULT_LABELS } from \"./data-table-labels\";\n\nconst LazyToolbarDataOperations = React.lazy(\n () => import(\"./data-table-toolbar-operations\"),\n);\n\nexport type DataTableToolbarColumnFilter = {\n id: string;\n label: string;\n type: DataTableColumnFilterType;\n value: unknown;\n placeholder?: string;\n options: Array<{ label: string; value: string; count?: number; disabled?: boolean }>;\n searchable?: boolean;\n searchPlaceholder?: string;\n trueLabel?: string;\n falseLabel?: string;\n min?: number | string;\n max?: number | string;\n step?: number;\n};\n\ntype DataTableToolbarProps = {\n title?: string;\n titleId?: string;\n description?: string;\n descriptionId?: string;\n toolbarQueryValue: string;\n toolbarQueryPlaceholder: string;\n onToolbarQueryValueChange: (value: string) => void;\n customToolbar?: React.ReactNode;\n compactToolbar?: React.ReactNode;\n viewMode: DataTableViewMode;\n onViewModeChange?: (viewMode: DataTableViewMode) => void;\n enableViewToggle: boolean;\n toolbarActions: Array>;\n selectionActions: Array>;\n selectedRows: Array;\n selectedRowIds: Array;\n showHiddenRows: boolean;\n hiddenRowsLabel?: string;\n onShowHiddenRowsChange?: (showHiddenRows: boolean) => void;\n allRows: Array;\n columnVisibilityOptions: Array;\n onColumnVisibilityChange?: (columnId: string, visible: boolean) => void;\n enableColumnPinning: boolean;\n onColumnPinningChange: (columnId: string, side: DataTableColumnFixed | false) => void;\n columnFilters: Array;\n onColumnFilterChange: (columnId: string, value: unknown) => void;\n onClearColumnFilters: () => void;\n density: DataTableDensity;\n onDensityChange: (density: DataTableDensity) => void;\n enableDensityToggle: boolean;\n labels: Required;\n toolbarVisibility?: DataTableToolbarVisibility;\n openFileDialog?: () => void;\n enableGrouping: boolean;\n enableToolbarColumnChooser: boolean;\n enableToolbarFilterChips: boolean;\n enableToolbarResetLayout: boolean;\n enableToolbarSavedViews: boolean;\n savedViews: Array;\n onResetColumnLayout: () => void;\n onCreateSavedView: (name: string) => DataTableSavedView | undefined;\n onApplySavedView: (id: string) => boolean;\n onRenameSavedView: (id: string, name: string) => DataTableSavedView | undefined;\n onDeleteSavedView: (id: string) => boolean;\n reorderColumn: (sourceColumnId: string, targetColumnId: string) => void;\n table: TanStackTable;\n};\n\nexport function createDataTableToolbar(ui: DataTableUiKit) {\n const uiClassNames = ui.classNames ?? {};\n const {\n Button,\n ButtonGroup,\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n } = ui;\n\n return function DataTableToolbar({\n title,\n titleId,\n description,\n descriptionId,\n toolbarQueryValue,\n toolbarQueryPlaceholder,\n onToolbarQueryValueChange,\n customToolbar,\n compactToolbar,\n viewMode,\n onViewModeChange,\n enableViewToggle,\n toolbarActions,\n selectionActions,\n selectedRows,\n selectedRowIds,\n showHiddenRows,\n hiddenRowsLabel,\n onShowHiddenRowsChange,\n allRows,\n columnVisibilityOptions,\n onColumnVisibilityChange,\n enableColumnPinning,\n onColumnPinningChange,\n columnFilters,\n onColumnFilterChange,\n onClearColumnFilters,\n density,\n onDensityChange,\n enableDensityToggle,\n labels,\n toolbarVisibility,\n openFileDialog,\n enableGrouping,\n enableToolbarColumnChooser,\n enableToolbarFilterChips,\n enableToolbarResetLayout,\n enableToolbarSavedViews,\n savedViews,\n onResetColumnLayout,\n onCreateSavedView,\n onApplySavedView,\n onRenameSavedView,\n onDeleteSavedView,\n reorderColumn,\n table,\n }: DataTableToolbarProps) {\n const compactSearchInputRef = React.useRef(null);\n const [isCompactSearchVisible, setIsCompactSearchVisible] =\n React.useState(false);\n const compactToolbarIconButtonClassName =\n uiClassNames.toolbarCompactIconButton ?? \"\";\n const primaryActions = toolbarActions.filter(\n (action) => (action.placement ?? \"primary\") === \"primary\",\n );\n const trailingActions = toolbarActions.filter(\n (action) => action.placement === \"trailing\",\n );\n const showTitle = toolbarVisibility?.title ?? true;\n const showSearch = toolbarVisibility?.search ?? true;\n const showActions = toolbarVisibility?.actions ?? true;\n const showTrailingActions = toolbarVisibility?.trailingActions ?? true;\n const showOptions = toolbarVisibility?.options ?? true;\n const showViewToggle = toolbarVisibility?.viewToggle ?? true;\n const showCustomToolbar = toolbarVisibility?.customToolbar ?? true;\n const hasVisibleTitle = showTitle && Boolean(title || description);\n const hasVisibleSearch = showSearch;\n const hasVisiblePrimaryActions = showActions && primaryActions.length > 0;\n const hasVisibleSelectionActions =\n selectedRowIds.length > 0 && selectionActions.length > 0;\n const hasVisibleOptions =\n showOptions &&\n (columnVisibilityOptions.some((column) => column.canHide) ||\n Boolean(onShowHiddenRowsChange && hiddenRowsLabel) ||\n enableColumnPinning ||\n enableDensityToggle ||\n enableGrouping ||\n enableToolbarColumnChooser ||\n enableToolbarResetLayout ||\n enableToolbarSavedViews);\n const hasToolbarOperationsMenu =\n enableToolbarColumnChooser ||\n enableToolbarResetLayout ||\n enableToolbarSavedViews;\n const activeColumnFilters = columnFilters.filter((filter) =>\n hasColumnFilterValue(filter.value),\n );\n const toolbarOperationsUi = {\n Button,\n DropdownMenuCheckboxItem,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n };\n const renderToolbarDataOperations = (placement: \"menu\" | \"chips\") => (\n \n }\n onResetColumnLayout={onResetColumnLayout}\n savedViews={savedViews}\n onCreateSavedView={onCreateSavedView}\n onApplySavedView={onApplySavedView}\n onRenameSavedView={onRenameSavedView}\n onDeleteSavedView={onDeleteSavedView}\n toolbarQueryValue={toolbarQueryValue}\n onToolbarQueryValueChange={onToolbarQueryValueChange}\n activeColumnFilters={activeColumnFilters}\n onColumnFilterChange={onColumnFilterChange}\n onClearColumnFilters={onClearColumnFilters}\n />\n \n );\n const groupableColumns = table\n .getAllLeafColumns()\n .filter(\n (column) =>\n !column.id.startsWith(\"__\") &&\n column.getCanGroup(),\n );\n const groupedColumns = table.store.state.grouping.flatMap((id) => {\n const column = table.getColumn(id);\n return column ? [column] : [];\n });\n const hasVisibleViewToggle =\n showViewToggle && enableViewToggle && Boolean(onViewModeChange);\n const hasVisibleTrailingActions =\n showTrailingActions && trailingActions.length > 0;\n const hasVisibleCustomToolbar = showCustomToolbar && Boolean(customToolbar);\n const hasVisibleCompactToolbar =\n showCustomToolbar && Boolean(compactToolbar ?? customToolbar);\n const selectedRowCountLabel = labels.selectedRows(selectedRowIds.length);\n\n React.useEffect(() => {\n if (!isCompactSearchVisible) {\n return;\n }\n\n compactSearchInputRef.current?.focus();\n }, [isCompactSearchVisible]);\n\n if (\n !hasVisibleTitle &&\n !hasVisibleSearch &&\n !hasVisiblePrimaryActions &&\n !hasVisibleSelectionActions &&\n !hasVisibleOptions &&\n !hasVisibleViewToggle &&\n !hasVisibleTrailingActions &&\n !hasVisibleCustomToolbar &&\n !hasVisibleCompactToolbar\n ) {\n return null;\n }\n\n return (\n
\n {showTitle && (title || description) ? (\n
\n {title ? (\n \n {title}\n \n ) : null}\n {description ? (\n \n {description}\n

\n ) : null}\n
\n ) : null}\n\n
\n \n {showSearch ? (\n <>\n
\n \n ) => {\n onToolbarQueryValueChange(event.target.value);\n }}\n placeholder={toolbarQueryPlaceholder}\n />\n \n \n \n {toolbarQueryValue ? (\n \n {\n onToolbarQueryValueChange(\"\");\n }}\n aria-label={labels.clearSearch}\n title={labels.clearSearch}\n >\n \n \n \n ) : null}\n \n
\n \n \n {\n setIsCompactSearchVisible((current) => !current);\n }}\n >\n \n {labels.searchTable}\n \n \n {labels.searchTable}\n \n \n ) : null}\n\n {showActions ? (\n
\n {primaryActions.map((action) => {\n const collapsesToIcon =\n !action.iconOnly && Boolean(action.icon);\n const button = (\n {\n void action.onClick({\n rows: allRows,\n openFileDialog,\n });\n }}\n disabled={action.disabled}\n aria-label={action.label}\n title={action.iconOnly ? undefined : action.label}\n >\n {action.icon ? : null}\n {action.iconOnly ? (\n {action.label}\n ) : collapsesToIcon ? (\n \n {action.label}\n \n ) : (\n {action.label}\n )}\n \n );\n\n return action.iconOnly ? (\n \n {button}\n {action.label}\n \n ) : (\n button\n );\n })}\n
\n ) : null}\n\n {hasVisibleCompactToolbar ? (\n \n {compactToolbar ?? customToolbar}\n
\n ) : null}\n\n
\n\n \n {selectedRowIds.length ? (\n \n {selectedRowCountLabel}\n
\n ) : null}\n {selectedRowIds.length\n ? selectionActions.map((action) => {\n const Icon = action.icon;\n const context = {\n rows: selectedRows,\n rowIds: selectedRowIds,\n };\n const disabled =\n typeof action.disabled === \"function\"\n ? action.disabled(selectedRows, context)\n : action.disabled;\n\n return (\n \n \n {\n void action.onClick(context);\n }}\n aria-label={action.label}\n >\n {Icon ? : null}\n {action.label}\n \n \n {action.label}\n \n );\n })\n : null}\n\n {hasVisibleOptions ? (\n \n \n \n \n {labels.tableOptions}\n \n \n \n {labels.tableOptions}\n \n {onShowHiddenRowsChange && hiddenRowsLabel ? (\n {\n onShowHiddenRowsChange(checked === true);\n }}\n >\n {labels.showHiddenRows(hiddenRowsLabel)}\n \n ) : null}\n \n {enableDensityToggle ? (\n <>\n \n {labels.density}\n \n {(\n [\n [\"compact\", labels.compactDensity],\n [\"comfortable\", labels.comfortableDensity],\n [\"spacious\", labels.spaciousDensity],\n ] as const\n ).map(([nextDensity, label]) => (\n {\n onDensityChange(nextDensity);\n }}\n >\n {label}\n \n ))}\n \n \n ) : null}\n {hasToolbarOperationsMenu\n ? renderToolbarDataOperations(\"menu\")\n : null}\n {!enableToolbarColumnChooser &&\n columnVisibilityOptions.some((column) => column.canHide) ? (\n <>\n \n {labels.columns}\n \n {columnVisibilityOptions\n .filter((column) => column.canHide)\n .map((column) => (\n {\n onColumnVisibilityChange?.(\n column.id,\n checked === true,\n );\n }}\n >\n {column.label}\n \n ))}\n \n \n ) : null}\n {enableColumnPinning && !enableToolbarColumnChooser ? (\n <>\n \n \n {labels.pinLeft} / {labels.pinRight}\n \n \n {columnVisibilityOptions.map((column) => (\n {\n event.preventDefault();\n }}\n >\n \n {column.label}\n \n {\n event.stopPropagation();\n onColumnPinningChange(column.id, \"left\");\n }}\n >\n L\n \n {\n event.stopPropagation();\n onColumnPinningChange(column.id, \"right\");\n }}\n >\n R\n \n {\n event.stopPropagation();\n onColumnPinningChange(column.id, false);\n }}\n >\n -\n \n \n ))}\n \n \n ) : null}\n {enableGrouping && groupableColumns.length ? (\n <>\n \n {labels.grouping}\n \n {groupableColumns.map((column) => {\n const columnLabel =\n typeof column.columnDef.header === \"string\"\n ? column.columnDef.header\n : column.id;\n const isGrouped = column.getIsGrouped();\n return (\n {\n column.toggleGrouping();\n }}\n >\n {isGrouped\n ? labels.ungroup(columnLabel)\n : labels.groupBy(columnLabel)}\n \n );\n })}\n \n \n ) : null}\n \n \n ) : null}\n\n {showViewToggle && enableViewToggle && onViewModeChange ? (\n \n \n \n {\n onViewModeChange(\"table\");\n }}\n >\n \n \n {labels.switchToTableView ??\n DATA_TABLE_DEFAULT_LABELS.switchToTableView}\n \n \n \n \n {labels.tableView ??\n DATA_TABLE_DEFAULT_LABELS.tableView}\n \n \n \n \n {\n onViewModeChange(\"card\");\n }}\n >\n \n \n {labels.switchToCardView ??\n DATA_TABLE_DEFAULT_LABELS.switchToCardView}\n \n \n \n \n {labels.cardView ??\n DATA_TABLE_DEFAULT_LABELS.cardView}\n \n \n \n ) : null}\n\n {showTrailingActions\n ? trailingActions.map((action) => {\n const collapsesToIcon =\n !action.iconOnly && Boolean(action.icon);\n const button = (\n {\n void action.onClick({\n rows: allRows,\n openFileDialog,\n });\n }}\n disabled={action.disabled}\n aria-label={action.label}\n title={action.iconOnly ? undefined : action.label}\n className={`size-7 shrink-0 ${action.iconOnly ? \"\" : `${collapsesToIcon ? \"px-0 @min-[768px]/data-table:px-2.5\" : \"\"} @min-[768px]/data-table:h-8 @min-[768px]/data-table:w-fit`} ${action.iconOnly || collapsesToIcon ? compactToolbarIconButtonClassName : \"\"} ${uiClassNames.toolbarInputButton ?? \"\"}`}\n >\n {action.icon ? (\n \n ) : null}\n {action.iconOnly ? (\n {action.label}\n ) : collapsesToIcon ? (\n \n {action.label}\n \n ) : (\n {action.label}\n )}\n \n );\n\n return action.iconOnly ? (\n \n {button}\n {action.label}\n \n ) : (\n button\n );\n })\n : null}\n
\n \n\n {showSearch && isCompactSearchVisible ? (\n \n \n ) => {\n onToolbarQueryValueChange(event.target.value);\n }}\n placeholder={toolbarQueryPlaceholder}\n />\n \n \n \n {toolbarQueryValue ? (\n \n {\n onToolbarQueryValueChange(\"\");\n }}\n aria-label={labels.clearSearch}\n title={labels.clearSearch}\n >\n \n \n \n ) : null}\n \n \n ) : null}\n\n {columnFilters.length ? (\n \n {columnFilters.map((filter) => (\n \n ))}\n {columnFilters.some((filter) =>\n hasColumnFilterValue(filter.value),\n ) ? (\n \n {labels.clearFilters}\n \n ) : null}\n \n ) : null}\n\n {enableToolbarFilterChips\n ? renderToolbarDataOperations(\"chips\")\n : null}\n\n {enableGrouping && groupedColumns.length ? (\n \n {labels.grouping}:\n {groupedColumns.map((column, groupingIndex) => {\n const columnLabel =\n typeof column.columnDef.header === \"string\"\n ? column.columnDef.header\n : column.id;\n const moveGrouping = (nextIndex: number) => {\n const nextGrouping = [...table.store.state.grouping];\n const [groupingId] = nextGrouping.splice(groupingIndex, 1);\n if (groupingId === undefined) return;\n nextGrouping.splice(nextIndex, 0, groupingId);\n table.setGrouping(nextGrouping);\n };\n return (\n \n moveGrouping(groupingIndex - 1)}\n aria-label={labels.moveGroupingEarlier(columnLabel)}\n >\n \n \n column.toggleGrouping()}\n aria-label={labels.removeGrouping(columnLabel)}\n >\n {columnLabel} ×\n \n moveGrouping(groupingIndex + 1)}\n aria-label={labels.moveGroupingLater(columnLabel)}\n >\n \n \n \n );\n })}\n \n ) : null}\n\n \n\n {showCustomToolbar && customToolbar ? (\n \n {customToolbar}\n \n ) : null}\n \n );\n };\n\n function ToolbarColumnFilterControl({\n filter,\n labels,\n onColumnFilterChange,\n }: {\n filter: DataTableToolbarColumnFilter;\n labels: Required;\n onColumnFilterChange: (columnId: string, value: unknown) => void;\n }) {\n const [facetQuery, setFacetQuery] = React.useState(\"\");\n if (filter.type === \"text\") {\n return (\n \n ) => {\n onColumnFilterChange(filter.id, event.target.value);\n }}\n placeholder={filter.placeholder ?? filter.label}\n aria-label={`${labels.filters}: ${filter.label}`}\n />\n \n \n \n \n );\n }\n\n if (filter.type === \"numberRange\" || filter.type === \"dateRange\") {\n const range = normalizeToolbarRangeValue(filter.value);\n const inputType = filter.type === \"numberRange\" ? \"number\" : \"date\";\n const fromLabel =\n labels.filterFrom ?? DATA_TABLE_DEFAULT_LABELS.filterFrom;\n const toLabel = labels.filterTo ?? DATA_TABLE_DEFAULT_LABELS.filterTo;\n\n return (\n \n \n ) => {\n onColumnFilterChange(filter.id, {\n ...range,\n from: parseRangeInputValue(event.target.value, inputType),\n });\n }}\n aria-label={`${filter.label}: ${fromLabel}`}\n />\n {fromLabel}\n \n \n ) => {\n onColumnFilterChange(filter.id, {\n ...range,\n to: parseRangeInputValue(event.target.value, inputType),\n });\n }}\n aria-label={`${filter.label}: ${toLabel}`}\n />\n {toLabel}\n \n \n );\n }\n\n const isBoolean = filter.type === \"boolean\";\n const isFaceted = filter.type === \"faceted\";\n const booleanOptions = [\n {\n label:\n filter.trueLabel ??\n labels.filterTrue ??\n DATA_TABLE_DEFAULT_LABELS.filterTrue,\n value: \"true\",\n },\n {\n label:\n filter.falseLabel ??\n labels.filterFalse ??\n DATA_TABLE_DEFAULT_LABELS.filterFalse,\n value: \"false\",\n },\n ];\n const options: DataTableToolbarColumnFilter[\"options\"] = isBoolean\n ? booleanOptions\n : filter.options;\n const visibleOptions =\n isFaceted && facetQuery\n ? options.filter((option) =>\n option.label.toLocaleLowerCase().includes(facetQuery.toLocaleLowerCase()),\n )\n : options;\n const selectedValue =\n typeof filter.value === \"string\" || typeof filter.value === \"boolean\"\n ? String(filter.value)\n : \"\";\n const selectedValues = Array.isArray(filter.value)\n ? filter.value.map(String)\n : selectedValue\n ? [selectedValue]\n : [];\n const selectedLabel =\n selectedValues.length === 0\n ? filter.label\n : `${filter.label}: ${\n selectedValues.length === 1\n ? (options.find(\n (option) => option.value === String(selectedValues[0]),\n )?.label ?? selectedValues[0])\n : selectedValues.length\n }`;\n\n return (\n \n \n \n \n \n {filter.label}\n {isFaceted && filter.searchable !== false ? (\n
\n \n ) => {\n setFacetQuery(event.target.value);\n }}\n placeholder={filter.searchPlaceholder ?? labels.facetSearch(filter.label)}\n aria-label={labels.facetSearch(filter.label)}\n />\n \n \n \n \n
\n ) : null}\n \n {filter.type === \"select\" || isBoolean || isFaceted ? (\n {\n onColumnFilterChange(filter.id, \"\");\n }}\n >\n {labels.allFilterOptions ??\n DATA_TABLE_DEFAULT_LABELS.allFilterOptions}\n \n ) : null}\n {visibleOptions.map((option) => (\n {\n if (filter.type === \"select\" || isBoolean) {\n onColumnFilterChange(\n filter.id,\n checked === true ? option.value : \"\",\n );\n return;\n }\n\n const nextValues = new Set(selectedValues);\n if (checked === true) {\n nextValues.add(option.value);\n } else {\n nextValues.delete(option.value);\n }\n onColumnFilterChange(filter.id, Array.from(nextValues));\n }}\n >\n {option.label}\n {option.count !== undefined ? (\n {option.count}\n ) : null}\n \n ))}\n \n
\n
\n );\n }\n}\n\nfunction hasColumnFilterValue(value: unknown) {\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n\n if (value && typeof value === \"object\") {\n if (\"from\" in value || \"to\" in value) {\n return Object.values(value).some(hasColumnFilterValue);\n }\n\n return true;\n }\n\n return value !== undefined && value !== null && value !== \"\";\n}\n\nfunction normalizeToolbarRangeValue(value: unknown): {\n from?: number | string;\n to?: number | string;\n} {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n return {};\n }\n\n const range = value as { from?: unknown; to?: unknown };\n return {\n ...(typeof range.from === \"number\" || typeof range.from === \"string\"\n ? { from: range.from }\n : {}),\n ...(typeof range.to === \"number\" || typeof range.to === \"string\"\n ? { to: range.to }\n : {}),\n };\n}\n\nfunction parseRangeInputValue(value: string, inputType: \"number\" | \"date\") {\n if (!value) {\n return undefined;\n }\n\n return inputType === \"number\" ? Number(value) : value;\n}\n","import * as React from \"react\";\nimport { DataTableTablePanel } from \"./data-table-table-panel\";\nimport type { DataTableTablePanelProps } from \"./data-table-table-panel\";\n\nconst LazyDataTableVirtualTablePanel = React.lazy(async () => {\n const module = await import(\"./data-table-virtual-table-panel\");\n return { default: module.DataTableVirtualTablePanel };\n}) as unknown as typeof DataTableTablePanel;\n\nexport function DataTableTablePanelRouter(\n props: DataTableTablePanelProps,\n) {\n const config =\n typeof props.virtualization === \"object\"\n ? props.virtualization\n : undefined;\n const enabled =\n props.virtualization === true || config?.enabled === true;\n\n if (!enabled) {\n return ;\n }\n\n return (\n \n }\n >\n \n \n );\n}\n","import type {\n DataTableSavedView,\n DataTableSavedViewSlice,\n DataTableSavedViewsChangeOperation,\n DataTableSavedViewsConfig,\n DataTableSavedViewsPayload,\n DataTableState,\n} from \"../types\";\n\nconst STORAGE_PREFIX = \"data-table-pro:saved-views:\";\nconst DEFAULT_VERSION = 1;\nconst DEFAULT_SLICES: Array = [\n \"sorting\",\n \"columnVisibility\",\n \"columnFilters\",\n \"grouping\",\n \"columnOrder\",\n \"columnPinning\",\n \"rowPinning\",\n \"columnSizing\",\n \"density\",\n \"viewMode\",\n \"showHiddenRows\",\n \"globalFilter\",\n];\nlet fallbackId = 0;\n\nexport function readDataTableSavedViews(\n config: DataTableSavedViewsConfig | undefined,\n): Array {\n const storage = resolveStorage(config);\n if (!config || !storage) {\n return [];\n }\n\n let serialized: string | null;\n try {\n serialized = storage.getItem(getStorageKey(config.key));\n } catch (error) {\n config.onError?.({ error, operation: \"read\" });\n return [];\n }\n if (!serialized) {\n return [];\n }\n\n let parsed: unknown;\n try {\n parsed = (config.deserialize ?? JSON.parse)(serialized);\n } catch (error) {\n config.onError?.({ error, operation: \"deserialize\" });\n return [];\n }\n\n if (!isRecord(parsed) || !(\"version\" in parsed) || !(\"views\" in parsed)) {\n return [];\n }\n\n const targetVersion = config.version ?? DEFAULT_VERSION;\n let candidate: unknown = parsed.views;\n if (parsed.version !== targetVersion) {\n if (!config.migrate) {\n return [];\n }\n try {\n candidate = config.migrate(\n { version: parsed.version, views: parsed.views },\n targetVersion,\n );\n } catch (error) {\n config.onError?.({ error, operation: \"migrate\" });\n return [];\n }\n }\n\n if (!Array.isArray(candidate)) {\n return [];\n }\n\n return candidate\n .map((view) => validateSavedView(view, config.slices))\n .filter((view): view is DataTableSavedView => Boolean(view));\n}\n\nexport function createDataTableSavedView(\n config: DataTableSavedViewsConfig | undefined,\n name: string,\n state: DataTableState,\n) {\n const normalizedName = name.trim();\n if (!config || !normalizedName) {\n return undefined;\n }\n\n const now = new Date().toISOString();\n const view: DataTableSavedView = {\n id: createSavedViewId(),\n name: normalizedName,\n createdAt: now,\n updatedAt: now,\n state: selectSavedViewSlices(state, config.slices),\n };\n const views = [...readDataTableSavedViews(config), view];\n return writeViews(config, views, \"create\") ? cloneSavedView(view) : undefined;\n}\n\nexport function renameDataTableSavedView(\n config: DataTableSavedViewsConfig | undefined,\n id: string,\n name: string,\n) {\n const normalizedName = name.trim();\n if (!config || !normalizedName) {\n return undefined;\n }\n\n let renamed: DataTableSavedView | undefined;\n const views = readDataTableSavedViews(config).map((view) => {\n if (view.id !== id) {\n return view;\n }\n renamed = {\n ...view,\n name: normalizedName,\n updatedAt: new Date().toISOString(),\n };\n return renamed;\n });\n if (!renamed) {\n return undefined;\n }\n\n return writeViews(config, views, \"rename\")\n ? cloneSavedView(renamed)\n : undefined;\n}\n\nexport function deleteDataTableSavedView(\n config: DataTableSavedViewsConfig | undefined,\n id: string,\n) {\n if (!config) {\n return false;\n }\n\n const current = readDataTableSavedViews(config);\n const views = current.filter((view) => view.id !== id);\n return views.length !== current.length && writeViews(config, views, \"delete\");\n}\n\nexport function clearDataTableSavedViews(\n config: DataTableSavedViewsConfig | undefined,\n) {\n const storage = resolveStorage(config);\n if (!config || !storage) {\n return false;\n }\n\n try {\n storage.removeItem(getStorageKey(config.key));\n } catch (error) {\n config.onError?.({ error, operation: \"remove\" });\n return false;\n }\n config.onChange?.([], \"clear\");\n return true;\n}\n\nfunction writeViews(\n config: DataTableSavedViewsConfig,\n views: Array,\n operation: DataTableSavedViewsChangeOperation,\n) {\n const storage = resolveStorage(config);\n if (!storage) {\n return false;\n }\n\n let serialized: string;\n try {\n const payload: DataTableSavedViewsPayload = {\n version: config.version ?? DEFAULT_VERSION,\n views,\n };\n serialized = (config.serialize ?? JSON.stringify)(payload);\n } catch (error) {\n config.onError?.({ error, operation: \"serialize\" });\n return false;\n }\n\n try {\n storage.setItem(getStorageKey(config.key), serialized);\n } catch (error) {\n config.onError?.({ error, operation: \"write\" });\n return false;\n }\n const snapshots = views.map(cloneSavedView);\n config.onChange?.(snapshots, operation);\n return true;\n}\n\nfunction selectSavedViewSlices(\n state: DataTableState,\n slices: Array | undefined,\n) {\n const selected = new Set(slices ?? DEFAULT_SLICES);\n const snapshot: Partial = {};\n for (const slice of Object.keys(state) as Array) {\n if (selected.has(slice)) {\n Object.assign(snapshot, {\n [slice]: cloneStateSlice(slice, state[slice]),\n });\n }\n }\n return snapshot;\n}\n\nfunction validateSavedView(\n value: unknown,\n slices: Array | undefined,\n): DataTableSavedView | undefined {\n if (\n !isRecord(value) ||\n typeof value.id !== \"string\" ||\n !value.id ||\n typeof value.name !== \"string\" ||\n !value.name.trim() ||\n typeof value.createdAt !== \"string\" ||\n typeof value.updatedAt !== \"string\"\n ) {\n return undefined;\n }\n\n return {\n id: value.id,\n name: value.name.trim(),\n createdAt: value.createdAt,\n updatedAt: value.updatedAt,\n state: validateState(value.state, slices),\n };\n}\n\nfunction validateState(\n value: unknown,\n slices: Array | undefined,\n) {\n if (!isRecord(value)) {\n return {};\n }\n\n const selected = new Set(slices ?? DEFAULT_SLICES);\n const state: Partial = {};\n const sorting = validateSorting(value.sorting);\n if (selected.has(\"sorting\") && sorting) state.sorting = sorting;\n const pagination = validatePagination(value.pagination);\n if (selected.has(\"pagination\") && pagination) state.pagination = pagination;\n const rowSelection = validateBooleanRecord(value.rowSelection);\n if (selected.has(\"rowSelection\") && rowSelection) {\n state.rowSelection = rowSelection;\n }\n const visibility = validateBooleanRecord(value.columnVisibility);\n if (selected.has(\"columnVisibility\") && visibility) {\n state.columnVisibility = visibility;\n }\n const filters = validateFilters(value.columnFilters);\n if (selected.has(\"columnFilters\") && filters) state.columnFilters = filters;\n const grouping = validateStringArray(value.grouping);\n if (selected.has(\"grouping\") && grouping) state.grouping = grouping;\n const expanded =\n value.expanded === true\n ? true\n : validateBooleanRecord(value.expanded);\n if (selected.has(\"expanded\") && expanded !== undefined) {\n state.expanded = expanded;\n }\n const order = validateStringArray(value.columnOrder);\n if (selected.has(\"columnOrder\") && order) state.columnOrder = order;\n const pinning = validatePinning(value.columnPinning);\n if (selected.has(\"columnPinning\") && pinning) {\n state.columnPinning = pinning;\n }\n const rowPinning = validateRowPinning(value.rowPinning);\n if (selected.has(\"rowPinning\") && rowPinning) {\n state.rowPinning = rowPinning;\n }\n const sizing = validateSizingRecord(value.columnSizing);\n if (selected.has(\"columnSizing\") && sizing) state.columnSizing = sizing;\n if (\n selected.has(\"density\") &&\n (value.density === \"compact\" ||\n value.density === \"comfortable\" ||\n value.density === \"spacious\")\n ) {\n state.density = value.density;\n }\n if (\n selected.has(\"viewMode\") &&\n (value.viewMode === \"table\" || value.viewMode === \"card\")\n ) {\n state.viewMode = value.viewMode;\n }\n if (selected.has(\"showHiddenRows\") && typeof value.showHiddenRows === \"boolean\") {\n state.showHiddenRows = value.showHiddenRows;\n }\n if (selected.has(\"globalFilter\") && typeof value.globalFilter === \"string\") {\n state.globalFilter = value.globalFilter;\n }\n return state;\n}\n\nfunction cloneSavedView(view: DataTableSavedView): DataTableSavedView {\n return {\n ...view,\n state: validateState(view.state, Object.keys(view.state) as Array),\n };\n}\n\nfunction cloneStateSlice(\n slice: DataTableSavedViewSlice,\n value: unknown,\n) {\n if (Array.isArray(value)) {\n return (value as Array).map((item) =>\n isRecord(item) ? { ...item } : item,\n );\n }\n if (isRecord(value)) {\n if (slice === \"columnPinning\" || slice === \"rowPinning\") {\n return {\n ...(slice === \"columnPinning\"\n ? {\n left: Array.isArray(value.left)\n ? [...(value.left as Array)]\n : undefined,\n right: Array.isArray(value.right)\n ? [...(value.right as Array)]\n : undefined,\n }\n : {\n top: Array.isArray(value.top)\n ? [...(value.top as Array)]\n : undefined,\n bottom: Array.isArray(value.bottom)\n ? [...(value.bottom as Array)]\n : undefined,\n }),\n };\n }\n return { ...value };\n }\n return value;\n}\n\nfunction validateSorting(value: unknown) {\n if (!Array.isArray(value)) return undefined;\n return value\n .filter(\n (item): item is { id: string; desc?: boolean } =>\n isRecord(item) && typeof item.id === \"string\",\n )\n .map((item) => ({ id: item.id, desc: Boolean(item.desc) }));\n}\n\nfunction validatePagination(value: unknown) {\n if (\n !isRecord(value) ||\n !Number.isInteger(value.pageIndex) ||\n (value.pageIndex as number) < 0 ||\n !Number.isInteger(value.pageSize) ||\n (value.pageSize as number) < 1\n ) {\n return undefined;\n }\n return {\n pageIndex: value.pageIndex as number,\n pageSize: value.pageSize as number,\n };\n}\n\nfunction validateFilters(value: unknown) {\n if (!Array.isArray(value)) return undefined;\n return value\n .filter(\n (item): item is { id: string; value: unknown } =>\n isRecord(item) &&\n typeof item.id === \"string\" &&\n Object.prototype.hasOwnProperty.call(item, \"value\"),\n )\n .map((item) => ({ id: item.id, value: item.value }));\n}\n\nfunction validatePinning(value: unknown) {\n if (!isRecord(value)) return undefined;\n return {\n left: validateStringArray(value.left) ?? [],\n right: validateStringArray(value.right) ?? [],\n };\n}\n\nfunction validateRowPinning(value: unknown) {\n if (!isRecord(value)) return undefined;\n return {\n top: validateStringArray(value.top) ?? [],\n bottom: validateStringArray(value.bottom) ?? [],\n };\n}\n\nfunction validateBooleanRecord(value: unknown) {\n if (!isRecord(value)) return undefined;\n return Object.fromEntries(\n Object.entries(value).filter(\n (entry): entry is [string, boolean] => typeof entry[1] === \"boolean\",\n ),\n );\n}\n\nfunction validateSizingRecord(value: unknown) {\n if (!isRecord(value)) return undefined;\n return Object.fromEntries(\n Object.entries(value).filter(\n (entry): entry is [string, number] =>\n typeof entry[1] === \"number\" &&\n Number.isFinite(entry[1]) &&\n entry[1] >= 0,\n ),\n );\n}\n\nfunction validateStringArray(value: unknown) {\n if (!Array.isArray(value)) return undefined;\n return value.filter((item): item is string => typeof item === \"string\");\n}\n\nfunction resolveStorage(config: DataTableSavedViewsConfig | undefined) {\n if (!config) {\n return undefined;\n }\n if (config.storage) {\n return config.storage;\n }\n if (typeof window === \"undefined\") {\n return undefined;\n }\n try {\n return window.localStorage;\n } catch (error) {\n config.onError?.({ error, operation: \"read\" });\n return undefined;\n }\n}\n\nfunction createSavedViewId() {\n if (typeof globalThis.crypto?.randomUUID === \"function\") {\n return globalThis.crypto.randomUUID();\n }\n fallbackId += 1;\n return `view-${Date.now().toString(36)}-${fallbackId.toString(36)}`;\n}\n\nfunction getStorageKey(key: string) {\n return `${STORAGE_PREFIX}${key}`;\n}\n\nfunction isRecord(value: unknown): value is Record {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import * as React from \"react\";\nimport { IconDownload } from \"../icons\";\nimport type {\n ColumnFiltersState,\n ColumnVisibilityState as VisibilityState,\n OnChangeFn,\n} from \"@tanstack/react-table\";\nimport type {\n DataTableColumnFixed,\n DataTableColumnPinningState as ColumnPinningState,\n DataTableLabels,\n DataTableProps,\n} from \"../types\";\nimport type { DataTableTanStackTable as TanStackTable } from \"./tanstack-v9\";\nimport {\n exportDataTableCsv,\n getAccessorKey,\n getColumnId,\n getDataTableLeafColumns,\n hasFilterValue,\n normalizeColumnFilterOptions,\n startCase,\n} from \"./data-table-utils\";\n\nexport function useDataTableToolbarFeatures({\n columns,\n currentColumnFilters,\n currentColumnPinning,\n effectiveColumnVisibility,\n enableColumnFilters,\n handleColumnFiltersChange,\n handleColumnPinningChange,\n labels,\n table,\n toolbarActions,\n visibleData,\n csvExport,\n}: {\n columns: DataTableProps[\"columns\"];\n currentColumnFilters: ColumnFiltersState;\n currentColumnPinning: ColumnPinningState;\n effectiveColumnVisibility: VisibilityState;\n enableColumnFilters: boolean | undefined;\n handleColumnFiltersChange: OnChangeFn;\n handleColumnPinningChange: OnChangeFn;\n labels: DataTableLabels;\n table: TanStackTable;\n toolbarActions: DataTableProps[\"toolbarActions\"];\n visibleData: Array;\n csvExport: DataTableProps[\"csvExport\"];\n}) {\n const columnVisibilityOptions = React.useMemo(() => {\n return getDataTableLeafColumns(columns).map(({ column, index }) => {\n const id = getColumnId(column, index);\n const header = column.header;\n const accessorKey = getAccessorKey(column);\n const label =\n typeof header === \"string\"\n ? header\n : accessorKey\n ? startCase(accessorKey)\n : startCase(id);\n\n const pinned: false | DataTableColumnFixed =\n currentColumnPinning.left?.includes(id) === true\n ? \"left\"\n : currentColumnPinning.right?.includes(id) === true\n ? \"right\"\n : false;\n\n return {\n id,\n label,\n visible: effectiveColumnVisibility[id] !== false,\n canHide: column.enableHiding !== false,\n pinned,\n };\n });\n }, [columns, currentColumnPinning, effectiveColumnVisibility]);\n\n const toolbarColumnFilters = React.useMemo(() => {\n if (enableColumnFilters === false) {\n return [];\n }\n\n return getDataTableLeafColumns(columns).flatMap(({ column, index }) => {\n const filter = column.meta?.filter;\n if (!filter) {\n return [];\n }\n\n const id = getColumnId(column, index);\n const header = column.header;\n const accessorKey = getAccessorKey(column);\n const label =\n filter.label ??\n (typeof header === \"string\"\n ? header\n : accessorKey\n ? startCase(accessorKey)\n : startCase(id));\n const state = currentColumnFilters.find((item) => item.id === id);\n const configuredFacetOptions = filter.faceting?.options;\n const facetedMinMax =\n filter.type === \"numberRange\"\n ? table.getColumn(id)?.getFacetedMinMaxValues()\n : undefined;\n const rawOptions =\n filter.type === \"faceted\" && configuredFacetOptions\n ? typeof configuredFacetOptions === \"function\"\n ? configuredFacetOptions({ rows: visibleData })\n : configuredFacetOptions\n : filter.type === \"faceted\"\n ? Array.from(table.getColumn(id)?.getFacetedUniqueValues() ?? []).map(\n ([value, count]) => ({\n label:\n filter.faceting?.getOptionLabel?.(value as never) ??\n String(value),\n value: String(value),\n count,\n }),\n )\n : typeof filter.options === \"function\"\n ? filter.options({ rows: visibleData })\n : (filter.options ?? []);\n\n return [\n {\n id,\n label,\n type: filter.type,\n value: state?.value,\n placeholder: filter.placeholder,\n options: normalizeColumnFilterOptions(rawOptions),\n searchable: filter.faceting?.searchable,\n searchPlaceholder: filter.faceting?.searchPlaceholder,\n trueLabel: filter.trueLabel,\n falseLabel: filter.falseLabel,\n min: filter.min ?? facetedMinMax?.[0],\n max: filter.max ?? facetedMinMax?.[1],\n step: filter.step,\n },\n ];\n });\n }, [\n columns,\n currentColumnFilters,\n enableColumnFilters,\n table,\n visibleData,\n ]);\n\n const handleToolbarColumnFilterChange = React.useCallback(\n (columnId: string, value: unknown) => {\n handleColumnFiltersChange((current) => {\n const next = current.filter((filter) => filter.id !== columnId);\n if (hasFilterValue(value)) {\n next.push({ id: columnId, value });\n }\n return next;\n });\n },\n [handleColumnFiltersChange],\n );\n\n const handleClearColumnFilters = React.useCallback(() => {\n handleColumnFiltersChange([]);\n }, [handleColumnFiltersChange]);\n\n const handleToolbarColumnPinningChange = React.useCallback(\n (columnId: string, side: DataTableColumnFixed | false) => {\n handleColumnPinningChange((current) => {\n const left = (current.left ?? []).filter((id) => id !== columnId);\n const right = (current.right ?? []).filter((id) => id !== columnId);\n\n if (side === \"left\") {\n left.push(columnId);\n }\n if (side === \"right\") {\n right.push(columnId);\n }\n\n return { left, right };\n });\n },\n [handleColumnPinningChange],\n );\n\n const handleCsvExport = React.useCallback(() => {\n if (!csvExport) {\n return;\n }\n\n return exportDataTableCsv({\n csvExport,\n table,\n labels,\n });\n }, [csvExport, labels, table]);\n\n const effectiveToolbarActions = React.useMemo(() => {\n if (!csvExport) {\n return toolbarActions ?? [];\n }\n\n return [\n ...(toolbarActions ?? []),\n {\n key: \"__csv_export__\",\n label: labels.exportCsv,\n icon: IconDownload,\n placement: \"trailing\" as const,\n onClick: handleCsvExport,\n },\n ];\n }, [csvExport, handleCsvExport, labels.exportCsv, toolbarActions]);\n\n return {\n columnVisibilityOptions,\n effectiveToolbarActions,\n handleClearColumnFilters,\n handleToolbarColumnFilterChange,\n handleToolbarColumnPinningChange,\n toolbarColumnFilters,\n };\n}\n","import * as React from \"react\";\nimport type { DataTableProps } from \"../types\";\n\n/** Development-only guardrails for identities used by row models and caches. */\nexport function useDataTablePerformanceDiagnostics({\n columns,\n data,\n getRowId,\n}: Pick, \"columns\" | \"data\" | \"getRowId\">) {\n const previous = React.useRef({ columns, data, getRowId });\n const warned = React.useRef(new Set());\n\n React.useEffect(() => {\n if (!isDevelopmentEnvironment()) {\n return;\n }\n\n const last = previous.current;\n if (\n last.data !== data &&\n haveSameItems(last.data, data) &&\n !warned.current.has(\"data\")\n ) {\n warn(\n warned.current,\n \"data\",\n \"The data array identity changed. Keep rows immutable and memoize unchanged data so filtering, row models, and virtual measurements can be reused.\",\n );\n }\n if (\n last.columns !== columns &&\n haveSameItems(last.columns, columns) &&\n !warned.current.has(\"columns\")\n ) {\n warn(\n warned.current,\n \"columns\",\n \"The columns array identity changed. Memoize stable column definitions so the search index and table column model can be reused.\",\n );\n }\n if (last.getRowId !== getRowId && !warned.current.has(\"getRowId\")) {\n warn(\n warned.current,\n \"getRowId\",\n \"getRowId identity changed. Memoize it and return an immutable, unique id to preserve row state and virtual scroll anchoring.\",\n );\n }\n\n const ids = new Set();\n for (let index = 0; index < data.length; index += 1) {\n const id = getRowId(data[index]!, index);\n if (ids.has(id) && !warned.current.has(\"duplicate-row-id\")) {\n warn(\n warned.current,\n \"duplicate-row-id\",\n `Duplicate row id \"${id}\" detected. Row ids must be unique and immutable.`,\n );\n break;\n }\n ids.add(id);\n }\n previous.current = { columns, data, getRowId };\n }, [columns, data, getRowId]);\n}\n\nfunction haveSameItems(previous: Array, next: Array) {\n return (\n previous.length === next.length &&\n previous.every((item, index) => Object.is(item, next[index]))\n );\n}\n\nfunction warn(warned: Set, key: string, message: string) {\n warned.add(key);\n console.warn(`[data-table-pro] ${message}`);\n}\n\nfunction isDevelopmentEnvironment() {\n return (\n (globalThis as { process?: { env?: { NODE_ENV?: string } } }).process?.env\n ?.NODE_ENV !== \"production\"\n );\n}\n","import * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport type { DataTableTanStackTable as TanStackTable } from \"./tanstack-v9\";\nimport type {\n DataTableActionErrorContext,\n DataTableApi,\n DataTableCellSelection,\n DataTableLabels,\n DataTableProps,\n DataTableState,\n DataTableStateOverlay as DataTableStateOverlayConfig,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport { createDataTableCardView } from \"./create-data-table-card-view\";\nimport { createDataTableEmptyState } from \"./create-data-table-empty-state\";\nimport { createDataTablePagination } from \"./create-data-table-pagination\";\nimport { createDataTableRowActions } from \"./create-data-table-row-actions\";\nimport { createDataTableToolbar } from \"./create-data-table-toolbar\";\nimport { DataTableCardPanel as DefaultDataTableCardPanel } from \"./data-table-card-panel\";\nimport { DataTableFooterSection } from \"./data-table-footer-section\";\nimport { DataTableTablePanelRouter as DefaultDataTableTablePanel } from \"./data-table-table-panel-router\";\nimport { DataTableToolbarSection } from \"./data-table-toolbar-section\";\nimport {\n clearDataTableSavedViews,\n createDataTableSavedView,\n deleteDataTableSavedView,\n readDataTableSavedViews,\n renameDataTableSavedView,\n} from \"./data-table-saved-views\";\nimport { resolveDataTableLabels } from \"./data-table-labels\";\nimport { useDataTableColumns } from \"./use-data-table-columns\";\nimport { useControllableState } from \"./use-controllable-state\";\nimport { useDataTableInstance } from \"./use-data-table-instance\";\nimport { useDataTableScrollViewport } from \"./use-data-table-scroll-viewport\";\nimport {\n exportDataTableCsv,\n getColumnId,\n getDataTableColumnGroupPaths,\n getDataTableLeafColumns,\n getInitialColumnPinning,\n hasFixedDataTableColumnSize,\n validateDataTableColumnIds,\n} from \"./data-table-utils\";\nimport { useDataTableState } from \"./use-data-table-state\";\nimport { clearDataTableColumnPrefs } from \"./use-data-table-column-prefs\";\nimport { useDataTableToolbarFeatures } from \"./use-data-table-toolbar-features\";\nimport { useColumnLayout } from \"./use-column-layout\";\nimport { useRowEditing } from \"./use-row-editing\";\nimport { useDataTablePerformanceDiagnostics } from \"./use-data-table-performance-diagnostics\";\n\nconst DataTableAutoPageSize = React.lazy(\n () => import(\"./data-table-auto-page-size\"),\n);\n\ntype CreateDataTableOptions = {\n CardPanel?: typeof DefaultDataTableCardPanel;\n TablePanel?: typeof DefaultDataTableTablePanel;\n};\n\nexport function createDataTable(ui: DataTableUiKit) {\n return createDataTableWithPanels(ui);\n}\n\nexport function createDataTableWithPanels(\n ui: DataTableUiKit,\n options: CreateDataTableOptions = {},\n) {\n const DataTableCardPanel =\n options.CardPanel ?? DefaultDataTableCardPanel;\n const DataTableTablePanel =\n options.TablePanel ?? DefaultDataTableTablePanel;\n const uiClassNames = ui.classNames ?? {};\n const {\n rootClassName,\n Button,\n Checkbox,\n Input,\n ScrollArea,\n ScrollBar,\n Skeleton,\n Table,\n TableBody,\n TableCell,\n TableFooter = \"tfoot\",\n TableHead,\n TableHeader,\n TableRow,\n Tooltip,\n TooltipContent,\n TooltipProvider = React.Fragment,\n TooltipTrigger,\n } = ui;\n const DataTableEmptyState = createDataTableEmptyState(ui);\n const DataTableRowActions = createDataTableRowActions(ui);\n const { DataTableFooter } = createDataTablePagination(ui);\n const DataTableToolbar = createDataTableToolbar(ui);\n const DataTableCardView = createDataTableCardView(ui, DataTableRowActions);\n const DataTableStateOverlay = React.lazy(async () => {\n const { createDataTableStateOverlay } = await import(\n \"./data-table-state-overlay\"\n );\n return { default: createDataTableStateOverlay(ui) };\n }) as unknown as (props: {\n labels: DataTableLabels;\n overlay: DataTableStateOverlayConfig;\n rows: Array;\n toolbarQueryValue: string;\n }) => React.ReactElement | null;\n const defaultColumn = {\n minSize: 80,\n size: 180,\n maxSize: 720,\n };\n\n return function DataTable({\n columns,\n data,\n getRowId,\n children,\n title,\n description,\n toolbarQueryValue,\n onToolbarQueryValueChange,\n toolbarQueryPlaceholder,\n toolbarQueryDebounceMs,\n manualFiltering = false,\n enableToolbarQueryFiltering = true,\n globalFilterFn,\n columnFilters,\n onColumnFiltersChange,\n enableColumnFilters,\n customToolbar,\n compactToolbar,\n rowsPerPageOptions = [10, 20, 50, 100],\n totalRowCount,\n hasNextPage,\n sorting,\n onSortingChange,\n manualSorting = false,\n grouping,\n onGroupingChange,\n manualGrouping = false,\n enableGrouping = false,\n groupedColumnMode = \"reorder\",\n aggregationFns,\n pageIndex,\n pageSize,\n autoPageSize = false,\n onPageIndexChange,\n onPageSizeChange,\n pageCount,\n manualPagination = false,\n rowSelection,\n onRowSelectionChange,\n enableRowSelection = false,\n enableMultiRowSelection = true,\n enableSubRowSelection = true,\n getRowCanSelect,\n rowSelectionSelectAllScope = \"page\",\n expanded,\n onExpandedChange,\n getSubRows,\n manualExpanding = false,\n paginateExpandedRows,\n filterFromLeafRows,\n maxLeafRowFilterDepth,\n detailPanel,\n getRowCanExpand,\n renderExpandedRow,\n columnOrder,\n onColumnOrderChange,\n enableColumnReordering = false,\n columnGroupHeaderHeight,\n columnPinning,\n onColumnPinningChange,\n enableColumnPinning = false,\n rowPinning,\n onRowPinningChange,\n enableRowPinning = false,\n keepPinnedRows = true,\n toolbarActions = [],\n selectionActions = [],\n rowActions = [],\n csvExport,\n clipboard,\n enableCellSelection = false,\n cellSelection,\n defaultCellSelection,\n onCellSelectionChange,\n gridCommands,\n density,\n onDensityChange,\n enableDensityToggle = false,\n columnPrefsKey,\n persistence,\n savedViews,\n toolbarDataOperations,\n initialState,\n state: unifiedState,\n onStateChange,\n apiRef,\n labels,\n summaryRows = [],\n cardRenderer,\n cardSizing,\n cardGridClassName,\n cardClassName,\n viewMode,\n onViewModeChange,\n enableViewToggle = false,\n enablePrint = false,\n enableFullscreen = false,\n emptyState,\n stateOverlay,\n isLoading = false,\n loadingRowCount,\n getRowLoadingState,\n hiddenRows,\n showHiddenRows,\n onShowHiddenRowsChange,\n infiniteScroll,\n editableRows,\n columnVisibility,\n onColumnVisibilityChange,\n columnSizing,\n onColumnSizingChange,\n enableColumnResizing = false,\n columnResizeMode = \"onEnd\",\n layoutMode = \"fill\",\n stickyHeader = true,\n scrollbarVisibility,\n showFooter = true,\n showToolbar = true,\n dir = \"ltr\",\n flexGrow = true,\n toolbarVisibility,\n className,\n tableClassName,\n tableContainerClassName,\n stripedRows = false,\n getRowClassName,\n onRowClick,\n onActionError,\n dragAndDrop,\n fileUpload,\n virtualization,\n accessibility,\n interactiveGrid,\n }: DataTableProps) {\n const containerRef = React.useRef(null);\n const fileInputRef = React.useRef(null);\n const tableScrollContainerRef = React.useRef(null);\n const draggedColumnIdRef = React.useRef(null);\n const tableRef = React.useRef | null>(null);\n const lastSelectedRowIdRef = React.useRef(null);\n const [toolbarSavedViewsVersion, setToolbarSavedViewsVersion] =\n React.useState(0);\n const generatedTitleId = React.useId();\n const generatedDescriptionId = React.useId();\n useDataTablePerformanceDiagnostics({ columns, data, getRowId });\n React.useMemo(() => validateDataTableColumnIds(columns), [columns]);\n const resolvedLabels = React.useMemo(\n () => resolveDataTableLabels(labels),\n [labels],\n );\n const toolbarOperations =\n toolbarDataOperations === true\n ? { columnChooser: true, savedViews: true, resetLayout: true }\n : toolbarDataOperations === false\n ? {}\n : (toolbarDataOperations ?? {});\n const gridMode =\n accessibility?.mode === \"grid\" ||\n interactiveGrid === true ||\n typeof interactiveGrid === \"object\";\n const [currentCellSelection, setCurrentCellSelection] =\n useControllableState({\n defaultValue: defaultCellSelection ?? null,\n onChange: onCellSelectionChange,\n value: cellSelection,\n });\n const resolvedToolbarQueryValue =\n toolbarQueryValue ?? unifiedState?.globalFilter;\n const resolvedSorting = sorting ?? unifiedState?.sorting;\n const resolvedGrouping = grouping ?? unifiedState?.grouping;\n const resolvedPageIndex =\n pageIndex ?? unifiedState?.pagination?.pageIndex;\n const resolvedPageSize = pageSize ?? unifiedState?.pagination?.pageSize;\n const resolvedRowSelection =\n rowSelection ?? unifiedState?.rowSelection;\n const resolvedColumnVisibility =\n columnVisibility ?? unifiedState?.columnVisibility;\n const resolvedColumnFilters =\n columnFilters ?? unifiedState?.columnFilters;\n const resolvedExpanded = expanded ?? unifiedState?.expanded;\n const resolvedColumnOrder =\n columnOrder ?? unifiedState?.columnOrder;\n const resolvedColumnPinning =\n columnPinning ?? unifiedState?.columnPinning;\n const resolvedRowPinning = rowPinning ?? unifiedState?.rowPinning;\n const resolvedColumnSizing =\n columnSizing ?? unifiedState?.columnSizing;\n const resolvedDensity = density ?? unifiedState?.density;\n const resolvedViewMode = viewMode ?? unifiedState?.viewMode;\n const resolvedShowHiddenRows =\n showHiddenRows ?? unifiedState?.showHiddenRows;\n const showTableHeading =\n showToolbar && (toolbarVisibility?.title ?? true);\n const titleId = showTableHeading && title ? generatedTitleId : undefined;\n const descriptionId =\n showTableHeading && description ? generatedDescriptionId : undefined;\n useDataTableStateConflictWarnings(unifiedState, {\n columnFilters: columnFilters !== undefined,\n columnOrder: columnOrder !== undefined,\n columnPinning: columnPinning !== undefined,\n rowPinning: rowPinning !== undefined,\n columnSizing: columnSizing !== undefined,\n columnVisibility: columnVisibility !== undefined,\n density: density !== undefined,\n expanded: expanded !== undefined,\n grouping: grouping !== undefined,\n globalFilter: toolbarQueryValue !== undefined,\n pagination: pageIndex !== undefined || pageSize !== undefined,\n rowSelection: rowSelection !== undefined,\n showHiddenRows: showHiddenRows !== undefined,\n sorting: sorting !== undefined,\n viewMode: viewMode !== undefined,\n });\n const handleToolbarQueryValueChange = useDataTableStateSliceChange(\n \"globalFilter\",\n onToolbarQueryValueChange,\n onStateChange,\n );\n const handleSortingPropChange = useDataTableStateSliceChange(\n \"sorting\",\n onSortingChange,\n onStateChange,\n );\n const handleGroupingPropChange = useDataTableStateSliceChange(\n \"grouping\",\n onGroupingChange,\n onStateChange,\n );\n const handleRowSelectionPropChange = useDataTableStateSliceChange(\n \"rowSelection\",\n onRowSelectionChange,\n onStateChange,\n );\n const handleColumnVisibilityPropChange = useDataTableStateSliceChange(\n \"columnVisibility\",\n onColumnVisibilityChange,\n onStateChange,\n );\n const handleColumnFiltersPropChange = useDataTableStateSliceChange(\n \"columnFilters\",\n onColumnFiltersChange,\n onStateChange,\n );\n const handleExpandedPropChange = useDataTableStateSliceChange(\n \"expanded\",\n onExpandedChange,\n onStateChange,\n );\n const handleColumnOrderPropChange = useDataTableStateSliceChange(\n \"columnOrder\",\n onColumnOrderChange,\n onStateChange,\n );\n const handleColumnPinningPropChange = useDataTableStateSliceChange(\n \"columnPinning\",\n onColumnPinningChange,\n onStateChange,\n );\n const handleRowPinningPropChange = useDataTableStateSliceChange(\n \"rowPinning\",\n onRowPinningChange,\n onStateChange,\n );\n const handleColumnSizingPropChange = useDataTableStateSliceChange(\n \"columnSizing\",\n onColumnSizingChange,\n onStateChange,\n );\n const handleDensityPropChange = useDataTableStateSliceChange(\n \"density\",\n onDensityChange,\n onStateChange,\n );\n const handleViewModePropChange = useDataTableStateSliceChange(\n \"viewMode\",\n onViewModeChange,\n onStateChange,\n );\n const handleShowHiddenRowsPropChange = useDataTableStateSliceChange(\n \"showHiddenRows\",\n onShowHiddenRowsChange,\n onStateChange,\n );\n const handlePageIndexPropChange = React.useCallback(\n (nextPageIndex: number) => {\n onPageIndexChange?.(nextPageIndex);\n onStateChange?.((current) => ({\n ...current,\n pagination: {\n pageIndex: nextPageIndex,\n pageSize:\n resolvedPageSize ?? current.pagination.pageSize,\n },\n }));\n },\n [onPageIndexChange, onStateChange, resolvedPageSize],\n );\n const handlePageSizePropChange = React.useCallback(\n (nextPageSize: number) => {\n onPageSizeChange?.(nextPageSize);\n onStateChange?.((current) => ({\n ...current,\n pagination: {\n pageIndex:\n resolvedPageIndex ?? current.pagination.pageIndex,\n pageSize: nextPageSize,\n },\n }));\n },\n [onPageSizeChange, onStateChange, resolvedPageIndex],\n );\n const runAction = React.useCallback(\n (\n context: Omit, \"error\">,\n action: () => void | Promise,\n ) => {\n runDataTableAction(action, context, onActionError);\n },\n [onActionError],\n );\n const guardedRowActions = React.useMemo(\n () =>\n rowActions.map((action) => ({\n ...action,\n onClick: (row: TData) => {\n runAction(\n {\n actionKey: action.key,\n row,\n source: \"rowAction\",\n },\n () => action.onClick(row),\n );\n },\n })),\n [rowActions, runAction],\n );\n const guardedOnRowClick = React.useMemo<\n DataTableProps[\"onRowClick\"]\n >(\n () =>\n onRowClick\n ? (context) => {\n runAction(\n {\n row: context.row,\n source: \"rowClick\",\n },\n () => onRowClick(context),\n );\n }\n : undefined,\n [onRowClick, runAction],\n );\n const handleEditError = React.useCallback(\n (error: unknown, row: TData) => {\n onActionError?.({\n error,\n row,\n source: \"edit\",\n });\n },\n [onActionError],\n );\n const {\n containerWidth,\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentColumnVisibility,\n currentDensity,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentShowHiddenRows,\n currentSorting,\n currentViewMode,\n effectiveColumnVisibility,\n globalFilterValue,\n handleDensityChange,\n handleShowHiddenRowsChange,\n handleViewModeChange,\n localSearchValue,\n resolvedLoadingRowCount,\n resolvedToolbarQueryPlaceholder,\n selectedRowIds,\n selectedRows,\n setCurrentColumnFilters,\n setCurrentColumnOrder,\n setCurrentColumnPinning,\n setCurrentRowPinning,\n setCurrentColumnVisibility,\n setCurrentExpanded,\n setCurrentGrouping,\n setCurrentRowSelection,\n setCurrentSorting,\n setLocalColumnSizing,\n setLocalPagination,\n setLocalSearchValue,\n shouldRenderInitialLoading,\n tableData,\n tableGetRowId,\n visibleData,\n } = useDataTableState({\n columnFilters: resolvedColumnFilters,\n columnOrder: resolvedColumnOrder,\n columnPinning: resolvedColumnPinning,\n rowPinning: resolvedRowPinning,\n columnSizing: resolvedColumnSizing,\n columnPrefsKey,\n persistence,\n columnVisibility: resolvedColumnVisibility,\n columns,\n containerRef,\n data,\n density: resolvedDensity,\n enableRowSelection,\n enableToolbarQueryFiltering,\n expanded: resolvedExpanded,\n grouping: resolvedGrouping,\n getSubRows,\n getRowId,\n hiddenRows,\n isLoading,\n loadingRowCount,\n manualFiltering,\n initialState,\n onColumnFiltersChange: handleColumnFiltersPropChange,\n onColumnOrderChange: handleColumnOrderPropChange,\n onColumnPinningChange: handleColumnPinningPropChange,\n onRowPinningChange: handleRowPinningPropChange,\n onColumnSizingChange: handleColumnSizingPropChange,\n onColumnVisibilityChange: handleColumnVisibilityPropChange,\n onDensityChange: handleDensityPropChange,\n onExpandedChange: handleExpandedPropChange,\n onGroupingChange: handleGroupingPropChange,\n onPageIndexChange: handlePageIndexPropChange,\n onRowSelectionChange: handleRowSelectionPropChange,\n onShowHiddenRowsChange: handleShowHiddenRowsPropChange,\n onSortingChange: handleSortingPropChange,\n onToolbarQueryValueChange: handleToolbarQueryValueChange,\n onViewModeChange: handleViewModePropChange,\n pageIndex: resolvedPageIndex,\n pageSize: resolvedPageSize,\n resolvedLabels,\n rowSelection: resolvedRowSelection,\n rowsPerPageOptions,\n selectionActions,\n showHiddenRows: resolvedShowHiddenRows,\n sorting: resolvedSorting,\n toolbarQueryDebounceMs,\n toolbarQueryPlaceholder,\n toolbarQueryValue: resolvedToolbarQueryValue,\n viewMode: resolvedViewMode,\n });\n const usesLegacyDetailPanelState = Boolean(\n renderExpandedRow && !detailPanel && !getSubRows,\n );\n const resolvedDetailPanel =\n detailPanel ??\n (renderExpandedRow\n ? {\n getRowCanExpand: getSubRows ? undefined : getRowCanExpand,\n render: renderExpandedRow,\n }\n : undefined);\n const [currentDetailExpanded, setCurrentDetailExpanded] =\n useControllableState({\n defaultValue: () =>\n usesLegacyDetailPanelState ? (initialState?.expanded ?? {}) : {},\n onChange: usesLegacyDetailPanelState\n ? setCurrentExpanded\n : resolvedDetailPanel?.onExpandedChange,\n value: usesLegacyDetailPanelState\n ? currentExpanded\n : resolvedDetailPanel?.expanded,\n });\n const {\n cancelEditing,\n clearEditError,\n draftValues,\n editErrors,\n editingRowId,\n isEditDirty,\n isSavingEdit,\n saveEdit,\n setDraftValues,\n setEditingRowId,\n startEditingRow,\n } = useRowEditing({\n columns,\n editableRows,\n onError: handleEditError,\n });\n const rowEditingContext = React.useMemo(\n () => ({\n cancel: cancelEditing,\n cancelOnEscape: editableRows?.cancelOnEscape !== false,\n clearError: clearEditError,\n commit: (row: TData) => {\n void saveEdit(row);\n },\n commitOnEnter: editableRows?.commitOnEnter !== false,\n errors: editErrors,\n isDirty: isEditDirty,\n isPending: isSavingEdit,\n }),\n [\n cancelEditing,\n clearEditError,\n editableRows?.cancelOnEscape,\n editableRows?.commitOnEnter,\n editErrors,\n isEditDirty,\n isSavingEdit,\n saveEdit,\n ],\n );\n const { viewportElement: tableScrollElement, viewportHeight } =\n useDataTableScrollViewport(tableScrollContainerRef, currentViewMode);\n const autoPageSizeConfig =\n typeof autoPageSize === \"object\" ? autoPageSize : undefined;\n const handleAutoPageSizeChange = React.useCallback(\n (nextPageSize: number) => {\n if (nextPageSize === currentPagination.pageSize) {\n return;\n }\n if (currentPagination.pageIndex !== 0) {\n handlePageIndexPropChange(0);\n }\n handlePageSizePropChange(nextPageSize);\n if (resolvedPageSize === undefined) {\n setLocalPagination({ pageIndex: 0, pageSize: nextPageSize });\n }\n },\n [\n currentPagination.pageIndex,\n currentPagination.pageSize,\n handlePageIndexPropChange,\n handlePageSizePropChange,\n resolvedPageSize,\n setLocalPagination,\n ],\n );\n const autoPageSizeEnabled =\n autoPageSize === true || autoPageSizeConfig !== undefined;\n const print = React.useCallback(() => {\n if (typeof window === \"undefined\" || typeof window.print !== \"function\") {\n return false;\n }\n window.print();\n return true;\n }, []);\n const toggleFullscreen = React.useCallback(async () => {\n const element = containerRef.current;\n if (!element || typeof document === \"undefined\") {\n return false;\n }\n if (document.fullscreenElement) {\n if (typeof document.exitFullscreen !== \"function\") return false;\n await document.exitFullscreen();\n return true;\n }\n if (typeof element.requestFullscreen !== \"function\") return false;\n await element.requestFullscreen();\n return true;\n }, []);\n const [isFullscreen, setIsFullscreen] = React.useState(false);\n React.useEffect(() => {\n if (!enableFullscreen || typeof document === \"undefined\") return;\n const update = () => {\n setIsFullscreen(document.fullscreenElement === containerRef.current);\n };\n update();\n document.addEventListener(\"fullscreenchange\", update);\n return () => document.removeEventListener(\"fullscreenchange\", update);\n }, [enableFullscreen]);\n const openFileDialog = React.useCallback(() => {\n if (fileUpload?.disabled) {\n return;\n }\n\n fileInputRef.current?.click();\n }, [fileUpload?.disabled]);\n const handleSelectedFiles = React.useCallback(\n (files: FileList | Array) => {\n runAction(\n {\n source: \"fileUpload\",\n },\n () => fileUpload?.onFilesSelected(files),\n );\n },\n [fileUpload, runAction],\n );\n\n const includeFillSpacer = React.useMemo(() => {\n if (layoutMode !== \"fill\") {\n return false;\n }\n\n const visibleDataColumns = getDataTableLeafColumns(columns).filter(\n ({ column, index }) =>\n effectiveColumnVisibility[getColumnId(column, index)] !== false,\n );\n\n return (\n visibleDataColumns.length > 0 &&\n visibleDataColumns.every(({ column, index }) => {\n const columnId = getColumnId(column, index);\n return (\n hasFixedDataTableColumnSize(column) ||\n Object.prototype.hasOwnProperty.call(\n currentColumnSizing,\n columnId,\n )\n );\n })\n );\n }, [\n columns,\n currentColumnSizing,\n effectiveColumnVisibility,\n layoutMode,\n ]);\n const tableColumns = useDataTableColumns({\n Button,\n Checkbox,\n DataTableRowActions,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n cancelEditing,\n columns,\n editableRows,\n editErrors,\n editingRowId,\n enableRowSelection,\n enableRowPinning,\n hasTreeExpansion: Boolean(getSubRows),\n isSavingEdit,\n isEditDirty,\n includeFillSpacer,\n labels: resolvedLabels,\n lastSelectedRowIdRef,\n detailPanel: resolvedDetailPanel,\n detailExpanded: currentDetailExpanded,\n onDetailExpandedChange: setCurrentDetailExpanded,\n rowSelectionSelectAllScope,\n rowActions: guardedRowActions,\n saveEdit,\n startEditingRow,\n tableRef,\n });\n const columnGroupPaths = React.useMemo(\n () => getDataTableColumnGroupPaths(columns),\n [columns],\n );\n\n const {\n effectivePageCount,\n footerTotalRowCount,\n handleFooterPageIndexChange,\n handleFooterPageSizeChange,\n isPageCountKnown,\n renderedRows,\n topPinnedRows,\n bottomPinnedRows,\n reorderColumn,\n rowsToRender,\n sentinelRef,\n table,\n virtualPaddingBottom,\n virtualPaddingTop,\n visibleLeafColumns,\n } = useDataTableInstance({\n autoResetPageIndex: false,\n columnGroupPaths,\n columnResizeMode,\n dir,\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentSorting,\n currentViewMode,\n defaultColumn,\n effectiveColumnVisibility,\n enableColumnResizing,\n enableRowPinning,\n enableRowSelection,\n enableMultiRowSelection,\n enableSubRowSelection,\n getRowCanSelect,\n getRowCanExpand,\n getSubRows,\n aggregationFns,\n groupedColumnMode,\n globalFilterFn,\n globalFilterValue,\n hasNextPage,\n handleColumnFiltersChange: setCurrentColumnFilters,\n handleColumnOrderChange: setCurrentColumnOrder,\n handleColumnPinningChange: setCurrentColumnPinning,\n handleRowPinningChange: setCurrentRowPinning,\n handleColumnVisibilityChange: setCurrentColumnVisibility,\n handleExpandedChange: setCurrentExpanded,\n handleGroupingChange: setCurrentGrouping,\n infiniteScroll,\n keepPinnedRows,\n manualFiltering,\n manualGrouping,\n manualExpanding,\n manualPagination,\n manualSorting,\n onActionError,\n onPageIndexChange: handlePageIndexPropChange,\n onPageSizeChange: handlePageSizePropChange,\n pageCount,\n pageIndex: resolvedPageIndex,\n pageSize: resolvedPageSize,\n paginateExpandedRows,\n filterFromLeafRows,\n maxLeafRowFilterDepth,\n setCurrentRowSelection,\n setCurrentSorting,\n setLocalColumnSizing,\n setLocalPagination,\n shouldRenderInitialLoading,\n tableColumns,\n tableData,\n tableGetRowId,\n tableRef,\n tableScrollElement,\n totalRowCount,\n virtualization,\n viewportHeight,\n });\n const columnLayout = useColumnLayout({\n columns,\n columnSizing: currentColumnSizing,\n editableRows: Boolean(editableRows),\n enableRowSelection,\n hasRowActions: rowActions.length > 0,\n hasRowExpansion: Boolean(getSubRows || resolvedDetailPanel),\n layoutMode,\n uiClassNames,\n visibleLeafColumns,\n });\n const { explicitlySizedColumnIds, fillMinWidth, getColumnLayout } =\n columnLayout;\n const explicitCustomCellColumnIds = React.useMemo(() => {\n return new Set(\n getDataTableLeafColumns(columns).flatMap(({ column, index }) => {\n return Object.prototype.hasOwnProperty.call(column, \"cell\") &&\n typeof column.cell === \"function\"\n ? [getColumnId(column, index)]\n : [];\n }),\n );\n }, [columns]);\n const visibleLeafColumnCount = visibleLeafColumns.length;\n const bodyRowComponents = React.useMemo(\n () => ({\n Checkbox,\n Input,\n Skeleton,\n TableCell,\n TableRow,\n }),\n [],\n );\n const hasCardTitle = React.useMemo(\n () =>\n getDataTableLeafColumns(columns).some(\n ({ column }) => column.meta?.cardTitle,\n ),\n [columns],\n );\n const primeColumnForResize = React.useCallback(\n (columnId: string, currentSize: number) => {\n if (\n explicitlySizedColumnIds.has(columnId) ||\n Object.prototype.hasOwnProperty.call(\n table.store.state.columnSizing,\n columnId,\n )\n ) {\n return;\n }\n\n flushSync(() => {\n table.setColumnSizing((current) => ({\n ...current,\n [columnId]: currentSize,\n }));\n });\n },\n [explicitlySizedColumnIds, table],\n );\n const resetColumnSize = React.useCallback(\n (columnId: string) => {\n if (explicitlySizedColumnIds.has(columnId)) {\n table.getColumn(columnId)?.resetSize();\n return;\n }\n\n table.setColumnSizing((current) => {\n if (!Object.prototype.hasOwnProperty.call(current, columnId)) {\n return current;\n }\n\n const next = { ...current };\n delete next[columnId];\n return next;\n });\n },\n [explicitlySizedColumnIds, table],\n );\n\n const filteredData = table\n .getFilteredRowModel()\n .rows.map((row) => row.original);\n const configuredEmptyState = stateOverlay?.empty ?? emptyState;\n const emptyNode =\n typeof configuredEmptyState === \"function\"\n ? configuredEmptyState({\n rows: filteredData,\n toolbarQueryValue: localSearchValue,\n })\n : configuredEmptyState;\n const guardedStateOverlay = React.useMemo(\n () =>\n stateOverlay\n ? {\n ...stateOverlay,\n onRetry: stateOverlay.onRetry\n ? () =>\n runAction(\n { source: \"retry\" },\n stateOverlay.onRetry!,\n )\n : undefined,\n }\n : undefined,\n [runAction, stateOverlay],\n );\n const stateOverlayNode = guardedStateOverlay?.error != null ? (\n \n \n \n ) : undefined;\n const {\n columnVisibilityOptions,\n effectiveToolbarActions,\n handleClearColumnFilters,\n handleToolbarColumnFilterChange,\n handleToolbarColumnPinningChange,\n toolbarColumnFilters,\n } = useDataTableToolbarFeatures({\n columns,\n currentColumnFilters,\n currentColumnPinning,\n csvExport,\n effectiveColumnVisibility,\n enableColumnFilters,\n handleColumnFiltersChange: setCurrentColumnFilters,\n handleColumnPinningChange: setCurrentColumnPinning,\n labels: resolvedLabels,\n table,\n toolbarActions,\n visibleData,\n });\n const guardedToolbarActions = React.useMemo(\n () =>\n [\n ...effectiveToolbarActions,\n ...(enablePrint\n ? [\n {\n key: \"__print__\",\n label: resolvedLabels.print,\n placement: \"trailing\" as const,\n onClick: () => {\n print();\n },\n },\n ]\n : []),\n ...(enableFullscreen\n ? [\n {\n key: \"__fullscreen__\",\n label: isFullscreen\n ? resolvedLabels.exitFullscreen\n : resolvedLabels.enterFullscreen,\n placement: \"trailing\" as const,\n onClick: () => toggleFullscreen(),\n },\n ]\n : []),\n ].map((action) => ({\n ...action,\n onClick: (context: {\n rows: Array;\n openFileDialog?: () => void;\n }) => {\n runAction(\n {\n actionKey: action.key,\n source: \"toolbarAction\",\n },\n () => action.onClick(context),\n );\n },\n })),\n [\n effectiveToolbarActions,\n enableFullscreen,\n enablePrint,\n isFullscreen,\n print,\n resolvedLabels.enterFullscreen,\n resolvedLabels.exitFullscreen,\n resolvedLabels.print,\n runAction,\n toggleFullscreen,\n ],\n );\n const guardedSelectionActions = React.useMemo(\n () =>\n selectionActions.map((action) => ({\n ...action,\n onClick: (context: Parameters[0]) => {\n runAction(\n {\n actionKey: action.key,\n source: \"selectionAction\",\n },\n () => action.onClick(context),\n );\n },\n })),\n [runAction, selectionActions],\n );\n const currentDataTableState = React.useMemo(\n () => ({\n sorting: currentSorting,\n pagination: currentPagination,\n rowSelection: currentRowSelection,\n columnVisibility: currentColumnVisibility,\n columnFilters: currentColumnFilters,\n expanded: currentExpanded,\n grouping: currentGrouping,\n columnOrder: currentColumnOrder,\n columnPinning: currentColumnPinning,\n rowPinning: currentRowPinning,\n columnSizing: currentColumnSizing,\n density: currentDensity,\n viewMode: currentViewMode,\n showHiddenRows: currentShowHiddenRows,\n globalFilter: localSearchValue,\n }),\n [\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentColumnVisibility,\n currentDensity,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentShowHiddenRows,\n currentSorting,\n currentViewMode,\n localSearchValue,\n ],\n );\n const getCurrentState = React.useCallback(\n () => cloneDataTableState(currentDataTableState),\n [currentDataTableState],\n );\n const restoreState = React.useCallback(\n (nextState: Partial) => {\n if (nextState.sorting !== undefined) {\n table.setSorting(nextState.sorting);\n }\n if (nextState.pagination !== undefined) {\n table.setPagination(nextState.pagination);\n }\n if (nextState.rowSelection !== undefined) {\n setCurrentRowSelection(nextState.rowSelection);\n }\n if (nextState.columnVisibility !== undefined) {\n table.setColumnVisibility(nextState.columnVisibility);\n }\n if (nextState.columnFilters !== undefined) {\n table.setColumnFilters(nextState.columnFilters);\n }\n if (nextState.expanded !== undefined) {\n table.setExpanded(nextState.expanded);\n }\n if (nextState.grouping !== undefined) {\n table.setGrouping(nextState.grouping);\n }\n if (nextState.columnOrder !== undefined) {\n table.setColumnOrder(nextState.columnOrder);\n }\n if (nextState.columnPinning !== undefined) {\n setCurrentColumnPinning(nextState.columnPinning);\n }\n if (nextState.rowPinning !== undefined) {\n table.setRowPinning(nextState.rowPinning);\n }\n if (nextState.columnSizing !== undefined) {\n table.setColumnSizing(nextState.columnSizing);\n }\n if (nextState.density !== undefined) {\n handleDensityChange(nextState.density);\n }\n if (nextState.viewMode !== undefined) {\n handleViewModeChange(nextState.viewMode);\n }\n if (nextState.showHiddenRows !== undefined) {\n handleShowHiddenRowsChange(nextState.showHiddenRows);\n }\n if (nextState.globalFilter !== undefined) {\n setLocalSearchValue(nextState.globalFilter);\n }\n },\n [\n handleDensityChange,\n handleShowHiddenRowsChange,\n handleViewModeChange,\n setLocalSearchValue,\n setCurrentColumnPinning,\n setCurrentRowSelection,\n table,\n ],\n );\n const clearPersistedState = React.useCallback(\n () => clearDataTableColumnPrefs(persistence ?? columnPrefsKey),\n [columnPrefsKey, persistence],\n );\n const resetColumnLayout = React.useCallback<\n DataTableApi[\"resetColumnLayout\"]\n >(\n (options) => {\n if (options?.clearPersistence) {\n clearPersistedState();\n }\n restoreState({\n columnVisibility: initialState?.columnVisibility ?? {},\n columnOrder: initialState?.columnOrder ?? [],\n columnPinning:\n initialState?.columnPinning ?? getInitialColumnPinning(columns),\n rowPinning: initialState?.rowPinning ?? { top: [], bottom: [] },\n columnSizing: initialState?.columnSizing ?? {},\n });\n },\n [\n clearPersistedState,\n columns,\n initialState,\n restoreState,\n ],\n );\n const resetState = React.useCallback[\"resetState\"]>(\n (options) => {\n if (options?.clearPersistence) {\n clearPersistedState();\n }\n restoreState({\n sorting: initialState?.sorting ?? [],\n pagination: initialState?.pagination ?? {\n pageIndex: 0,\n pageSize: rowsPerPageOptions[0] ?? 20,\n },\n rowSelection: initialState?.rowSelection ?? {},\n columnVisibility: initialState?.columnVisibility ?? {},\n columnFilters: initialState?.columnFilters ?? [],\n expanded: initialState?.expanded ?? {},\n grouping: initialState?.grouping ?? [],\n columnOrder: initialState?.columnOrder ?? [],\n columnPinning:\n initialState?.columnPinning ?? getInitialColumnPinning(columns),\n rowPinning: initialState?.rowPinning ?? { top: [], bottom: [] },\n columnSizing: initialState?.columnSizing ?? {},\n density: initialState?.density ?? \"comfortable\",\n viewMode: initialState?.viewMode ?? \"table\",\n showHiddenRows: initialState?.showHiddenRows ?? false,\n globalFilter: initialState?.globalFilter ?? \"\",\n });\n },\n [\n clearPersistedState,\n columns,\n initialState,\n restoreState,\n rowsPerPageOptions,\n ],\n );\n const getSavedViews = React.useCallback(\n () => readDataTableSavedViews(savedViews),\n [savedViews],\n );\n const createSavedView = React.useCallback<\n DataTableApi[\"createSavedView\"]\n >(\n (name) =>\n createDataTableSavedView(savedViews, name, getCurrentState()),\n [getCurrentState, savedViews],\n );\n const applySavedView = React.useCallback<\n DataTableApi[\"applySavedView\"]\n >(\n (id) => {\n const view = readDataTableSavedViews(savedViews).find(\n (candidate) => candidate.id === id,\n );\n if (!view) {\n return false;\n }\n restoreState(view.state);\n savedViews?.onApply?.(view);\n return true;\n },\n [restoreState, savedViews],\n );\n const renameSavedView = React.useCallback<\n DataTableApi[\"renameSavedView\"]\n >(\n (id, name) => renameDataTableSavedView(savedViews, id, name),\n [savedViews],\n );\n const deleteSavedView = React.useCallback<\n DataTableApi[\"deleteSavedView\"]\n >(\n (id) => deleteDataTableSavedView(savedViews, id),\n [savedViews],\n );\n const clearSavedViews = React.useCallback(\n () => clearDataTableSavedViews(savedViews),\n [savedViews],\n );\n const toolbarSavedViews = React.useMemo(() => {\n void toolbarSavedViewsVersion;\n return readDataTableSavedViews(savedViews);\n }, [savedViews, toolbarSavedViewsVersion]);\n const handleToolbarCreateSavedView = React.useCallback(\n (name: string) => {\n const view = createSavedView(name);\n if (view) {\n setToolbarSavedViewsVersion((current) => current + 1);\n }\n return view;\n },\n [createSavedView],\n );\n const handleToolbarRenameSavedView = React.useCallback(\n (id: string, name: string) => {\n const view = renameSavedView(id, name);\n if (view) {\n setToolbarSavedViewsVersion((current) => current + 1);\n }\n return view;\n },\n [renameSavedView],\n );\n const handleToolbarDeleteSavedView = React.useCallback(\n (id: string) => {\n const deleted = deleteSavedView(id);\n if (deleted) {\n setToolbarSavedViewsVersion((current) => current + 1);\n }\n return deleted;\n },\n [deleteSavedView],\n );\n const exportCsvFromApi = React.useCallback<\n DataTableApi[\"exportCsv\"]\n >(\n (options) =>\n exportDataTableCsv({\n csvExport: options ?? (csvExport || true),\n labels: resolvedLabels,\n table,\n }),\n [csvExport, resolvedLabels, table],\n );\n const copyToClipboard = React.useCallback<\n DataTableApi[\"copyToClipboard\"]\n >(\n async (options) => {\n const { copyDataTableToClipboard } = await import(\n \"./data-table-clipboard\"\n );\n return copyDataTableToClipboard({\n clipboard:\n options ??\n (clipboard?.copy === false\n ? false\n : currentCellSelection\n ? {\n ...(clipboard?.copy === true ? {} : clipboard?.copy),\n scope: \"cellSelection\",\n }\n : clipboard?.copy ?? true),\n cellSelection: currentCellSelection,\n table,\n });\n },\n [clipboard?.copy, currentCellSelection, table],\n );\n const pinRow = React.useCallback[\"pinRow\"]>(\n (rowId, position = \"top\") => {\n try {\n const row = table.getRow(rowId, true);\n if (!row.getCanPin()) {\n return false;\n }\n row.pin(position);\n return true;\n } catch {\n return false;\n }\n },\n [table],\n );\n const unpinRow = React.useCallback[\"unpinRow\"]>(\n (rowId) => {\n try {\n const row = table.getRow(rowId, true);\n if (!row.getCanPin()) {\n return false;\n }\n row.pin(false);\n return true;\n } catch {\n return false;\n }\n },\n [table],\n );\n React.useImperativeHandle(\n apiRef,\n () => ({\n getTable: () => tableRef.current,\n getState: getCurrentState,\n snapshot: getCurrentState,\n restore: restoreState,\n resetColumnLayout,\n resetState,\n clearPersistedState,\n getSavedViews,\n createSavedView,\n applySavedView,\n renameSavedView,\n deleteSavedView,\n clearSavedViews,\n pinRow,\n unpinRow,\n focus: () => {\n containerRef.current?.focus();\n },\n scrollToRow: (rowId) =>\n scrollDataTableElementIntoView(containerRef.current, \"row\", rowId),\n scrollToColumn: (columnId) =>\n scrollDataTableElementIntoView(\n containerRef.current,\n \"column\",\n columnId,\n ),\n exportCsv: exportCsvFromApi,\n copyToClipboard,\n getCellSelection: () => currentCellSelection,\n setCellSelection: setCurrentCellSelection,\n clearCellSelection: () => setCurrentCellSelection(null),\n print,\n toggleFullscreen,\n }),\n [\n applySavedView,\n clearPersistedState,\n clearSavedViews,\n copyToClipboard,\n currentCellSelection,\n createSavedView,\n deleteSavedView,\n exportCsvFromApi,\n getSavedViews,\n getCurrentState,\n renameSavedView,\n resetColumnLayout,\n resetState,\n restoreState,\n pinRow,\n print,\n setCurrentCellSelection,\n unpinRow,\n toggleFullscreen,\n ],\n );\n\n return (\n \n {\n if (\n gridMode &&\n gridCommands &&\n (event.ctrlKey || event.metaKey) &&\n event.key.toLowerCase() === \"z\" &&\n !isDataTableEditableClipboardTarget(event.target)\n ) {\n const command = event.shiftKey ? gridCommands.redo : gridCommands.undo;\n if (command) {\n event.preventDefault();\n runAction(\n { source: event.shiftKey ? \"redo\" : \"undo\" },\n () => command({ cellSelection: currentCellSelection, table }),\n );\n }\n return;\n }\n if (\n !clipboard?.copy ||\n !(event.ctrlKey || event.metaKey) ||\n event.key.toLowerCase() !== \"c\" ||\n isDataTableEditableClipboardTarget(event.target)\n ) {\n return;\n }\n event.preventDefault();\n runAction(\n { source: \"clipboardCopy\" },\n async () => {\n await copyToClipboard(\n clipboard.copy === true\n ? undefined\n : currentCellSelection &&\n typeof clipboard.copy === \"object\" &&\n !clipboard.copy.scope\n ? { ...clipboard.copy, scope: \"cellSelection\" }\n : clipboard.copy,\n );\n },\n );\n }}\n onPaste={(event) => {\n const paste = clipboard?.paste;\n if (\n !paste ||\n paste.enabled === false ||\n isDataTableEditableClipboardTarget(event.target)\n ) {\n return;\n }\n const text = event.clipboardData.getData(\"text/plain\");\n if (!text) {\n return;\n }\n if (paste.preventDefault ?? true) {\n event.preventDefault();\n }\n runAction(\n { source: \"clipboardPaste\" },\n async () => {\n const { parseDataTableClipboardText } = await import(\n \"./data-table-clipboard\"\n );\n return paste.onPaste({\n table,\n text,\n values: parseDataTableClipboardText(text),\n });\n },\n );\n }}\n >\n {autoPageSizeEnabled ? (\n \n \n \n ) : null}\n {fileUpload ? (\n {\n const files = event.currentTarget.files;\n if (files?.length) {\n handleSelectedFiles(files);\n }\n event.currentTarget.value = \"\";\n }}\n />\n ) : null}\n \n \n {showToolbar ? (\n \n ) : null}\n\n \n {currentViewMode === \"card\" && cardRenderer ? (\n \n ) : (\n \n )}\n \n \n {children}\n \n \n \n \n \n );\n };\n}\n\nfunction runDataTableAction(\n action: () => void | Promise,\n context: Omit, \"error\">,\n onActionError: DataTableProps[\"onActionError\"],\n) {\n let result: void | Promise;\n try {\n result = action();\n } catch (error) {\n onActionError?.({ ...context, error });\n return;\n }\n\n void Promise.resolve(result).catch((error: unknown) => {\n onActionError?.({ ...context, error });\n });\n}\n\nfunction useDataTableStateSliceChange(\n key: K,\n onLegacyChange:\n | ((value: Exclude) => void)\n | undefined,\n onStateChange: DataTableProps[\"onStateChange\"],\n) {\n const handleChange = React.useCallback(\n (value: Exclude) => {\n onLegacyChange?.(value);\n onStateChange?.((current) => ({\n ...current,\n [key]: value,\n }));\n },\n [key, onLegacyChange, onStateChange],\n );\n\n return onLegacyChange || onStateChange ? handleChange : undefined;\n}\n\nfunction useDataTableStateConflictWarnings(\n state: Partial | undefined,\n legacySlices: Record,\n) {\n const warnedSlicesRef = React.useRef(new Set());\n\n React.useEffect(() => {\n if (!state || !isDevelopmentEnvironment()) {\n return;\n }\n\n for (const key of Object.keys(legacySlices) as Array<\n keyof DataTableState\n >) {\n if (\n state[key] === undefined ||\n !legacySlices[key] ||\n warnedSlicesRef.current.has(key)\n ) {\n continue;\n }\n\n warnedSlicesRef.current.add(key);\n console.warn(\n `[data-table-pro] Both state.${key} and its legacy controlled prop were provided. The legacy prop takes precedence during the 4.x compatibility window.`,\n );\n }\n }, [legacySlices, state]);\n}\n\nfunction isDevelopmentEnvironment() {\n const nodeEnvironment = (\n globalThis as {\n process?: { env?: { NODE_ENV?: string } };\n }\n ).process?.env?.NODE_ENV;\n\n return nodeEnvironment !== \"production\";\n}\n\nfunction cloneDataTableState(state: DataTableState): DataTableState {\n return {\n sorting: state.sorting.map((item) => ({ ...item })),\n pagination: { ...state.pagination },\n rowSelection: { ...state.rowSelection },\n columnVisibility: { ...state.columnVisibility },\n columnFilters: state.columnFilters.map((item) => ({ ...item })),\n expanded:\n typeof state.expanded === \"boolean\"\n ? state.expanded\n : { ...state.expanded },\n grouping: [...(state.grouping ?? [])],\n columnOrder: [...state.columnOrder],\n columnPinning: {\n left: state.columnPinning.left\n ? [...state.columnPinning.left]\n : undefined,\n right: state.columnPinning.right\n ? [...state.columnPinning.right]\n : undefined,\n },\n rowPinning: {\n top: [...state.rowPinning.top],\n bottom: [...state.rowPinning.bottom],\n },\n columnSizing: { ...state.columnSizing },\n density: state.density,\n viewMode: state.viewMode,\n showHiddenRows: state.showHiddenRows,\n globalFilter: state.globalFilter,\n };\n}\n\nfunction scrollDataTableElementIntoView(\n container: HTMLDivElement | null,\n kind: \"row\" | \"column\",\n value: string,\n) {\n if (!container) {\n return false;\n }\n\n const attribute = kind === \"row\" ? \"data-row-id\" : \"data-column-id\";\n const element = Array.from(\n container.querySelectorAll(`[${attribute}]`),\n ).find((candidate) => candidate.getAttribute(attribute) === value);\n if (!element) {\n return false;\n }\n\n element.scrollIntoView?.({ block: \"nearest\", inline: \"nearest\" });\n return true;\n}\n\nfunction isDataTableEditableClipboardTarget(target: EventTarget | null) {\n if (!(target instanceof HTMLElement)) {\n return false;\n }\n return (\n target.isContentEditable ||\n target instanceof HTMLInputElement ||\n target instanceof HTMLTextAreaElement ||\n target instanceof HTMLSelectElement\n );\n}\n"]} \ No newline at end of file diff --git a/dist/heroui-virtual.js b/dist/heroui-virtual.js index a846afe..296b7e2 100644 --- a/dist/heroui-virtual.js +++ b/dist/heroui-virtual.js @@ -1,2 +1,2 @@ -import {a as a$2}from'./chunk-GIX7N3AJ.js';import {a as a$1}from'./chunk-BUT7FBKJ.js';import'./chunk-LTEXTQ2M.js';import'./chunk-I4PTUZ5K.js';import'./chunk-VSIOOKCO.js';import'./chunk-NL6LSUVL.js';import'./chunk-EJHT5JBZ.js';import'./chunk-WXLQM3ND.js';import'./chunk-Y7ZWZH7K.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';var a=a$1(a$2);export{a as DataTable};//# sourceMappingURL=heroui-virtual.js.map +import {a as a$2}from'./chunk-GIX7N3AJ.js';import {a as a$1}from'./chunk-I5D5NFSR.js';import'./chunk-LTEXTQ2M.js';import'./chunk-I4PTUZ5K.js';import'./chunk-VSIOOKCO.js';import'./chunk-3PL4XDZI.js';import'./chunk-EJHT5JBZ.js';import'./chunk-WXLQM3ND.js';import'./chunk-Y7ZWZH7K.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';var a=a$1(a$2);export{a as DataTable};//# sourceMappingURL=heroui-virtual.js.map //# sourceMappingURL=heroui-virtual.js.map \ No newline at end of file diff --git a/dist/heroui.js b/dist/heroui.js index 41aac66..d9a2fa7 100644 --- a/dist/heroui.js +++ b/dist/heroui.js @@ -1,2 +1,2 @@ -import {a as a$1}from'./chunk-GIX7N3AJ.js';import'./chunk-VSIOOKCO.js';import {i}from'./chunk-NL6LSUVL.js';import'./chunk-EJHT5JBZ.js';import'./chunk-WXLQM3ND.js';import'./chunk-Y7ZWZH7K.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';var a=i(a$1);export{a as DataTable};//# sourceMappingURL=heroui.js.map +import {a as a$1}from'./chunk-GIX7N3AJ.js';import'./chunk-VSIOOKCO.js';import {i}from'./chunk-3PL4XDZI.js';import'./chunk-EJHT5JBZ.js';import'./chunk-WXLQM3ND.js';import'./chunk-Y7ZWZH7K.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';var a=i(a$1);export{a as DataTable};//# sourceMappingURL=heroui.js.map //# sourceMappingURL=heroui.js.map \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 1c93149..10e3bee 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,2 +1,2 @@ -import {a as a$1}from'./chunk-7ECYANWE.js';import'./chunk-VSIOOKCO.js';import {i}from'./chunk-NL6LSUVL.js';import'./chunk-EJHT5JBZ.js';import'./chunk-WXLQM3ND.js';import'./chunk-Y7ZWZH7K.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';var a=i(a$1);export{a as DataTable};//# sourceMappingURL=index.js.map +import {a as a$1}from'./chunk-7ECYANWE.js';import'./chunk-VSIOOKCO.js';import {i}from'./chunk-3PL4XDZI.js';import'./chunk-EJHT5JBZ.js';import'./chunk-WXLQM3ND.js';import'./chunk-Y7ZWZH7K.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';var a=i(a$1);export{a as DataTable};//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/thegridcn-virtual.js b/dist/thegridcn-virtual.js index 45741f2..731e736 100644 --- a/dist/thegridcn-virtual.js +++ b/dist/thegridcn-virtual.js @@ -1,2 +1,2 @@ -import {a as a$1}from'./chunk-BUT7FBKJ.js';import'./chunk-LTEXTQ2M.js';import'./chunk-I4PTUZ5K.js';import {a as a$2}from'./chunk-2JHOYUSH.js';import'./chunk-VSIOOKCO.js';import'./chunk-NL6LSUVL.js';import'./chunk-EJHT5JBZ.js';import'./chunk-WXLQM3ND.js';import'./chunk-Y7ZWZH7K.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';var a=a$1(a$2);export{a as DataTable};//# sourceMappingURL=thegridcn-virtual.js.map +import {a as a$1}from'./chunk-I5D5NFSR.js';import'./chunk-LTEXTQ2M.js';import'./chunk-I4PTUZ5K.js';import {a as a$2}from'./chunk-2JHOYUSH.js';import'./chunk-VSIOOKCO.js';import'./chunk-3PL4XDZI.js';import'./chunk-EJHT5JBZ.js';import'./chunk-WXLQM3ND.js';import'./chunk-Y7ZWZH7K.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';var a=a$1(a$2);export{a as DataTable};//# sourceMappingURL=thegridcn-virtual.js.map //# sourceMappingURL=thegridcn-virtual.js.map \ No newline at end of file diff --git a/dist/thegridcn.js b/dist/thegridcn.js index 2656b44..435e2e4 100644 --- a/dist/thegridcn.js +++ b/dist/thegridcn.js @@ -1,2 +1,2 @@ -import {a as a$1}from'./chunk-2JHOYUSH.js';import'./chunk-VSIOOKCO.js';import {i}from'./chunk-NL6LSUVL.js';import'./chunk-EJHT5JBZ.js';import'./chunk-WXLQM3ND.js';import'./chunk-Y7ZWZH7K.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';var a=i(a$1);export{a as DataTable};//# sourceMappingURL=thegridcn.js.map +import {a as a$1}from'./chunk-2JHOYUSH.js';import'./chunk-VSIOOKCO.js';import {i}from'./chunk-3PL4XDZI.js';import'./chunk-EJHT5JBZ.js';import'./chunk-WXLQM3ND.js';import'./chunk-Y7ZWZH7K.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';var a=i(a$1);export{a as DataTable};//# sourceMappingURL=thegridcn.js.map //# sourceMappingURL=thegridcn.js.map \ No newline at end of file diff --git a/dist/virtual.js b/dist/virtual.js index 1dcfbce..e05287c 100644 --- a/dist/virtual.js +++ b/dist/virtual.js @@ -1,2 +1,2 @@ -import {a as a$1}from'./chunk-7ECYANWE.js';import {a}from'./chunk-BUT7FBKJ.js';import'./chunk-LTEXTQ2M.js';import'./chunk-I4PTUZ5K.js';import'./chunk-VSIOOKCO.js';import'./chunk-NL6LSUVL.js';import'./chunk-EJHT5JBZ.js';import'./chunk-WXLQM3ND.js';import'./chunk-Y7ZWZH7K.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';var o=a(a$1);export{o as DataTable};//# sourceMappingURL=virtual.js.map +import {a as a$1}from'./chunk-7ECYANWE.js';import {a}from'./chunk-I5D5NFSR.js';import'./chunk-LTEXTQ2M.js';import'./chunk-I4PTUZ5K.js';import'./chunk-VSIOOKCO.js';import'./chunk-3PL4XDZI.js';import'./chunk-EJHT5JBZ.js';import'./chunk-WXLQM3ND.js';import'./chunk-Y7ZWZH7K.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';var o=a(a$1);export{o as DataTable};//# sourceMappingURL=virtual.js.map //# sourceMappingURL=virtual.js.map \ No newline at end of file diff --git a/docs/API.md b/docs/API.md index 5b27a58..ef980d0 100644 --- a/docs/API.md +++ b/docs/API.md @@ -476,7 +476,7 @@ table's first-class `grouping` / `onGroupingChange` contract. | `cardClassName` | `string` | `undefined` | Applied to each card item wrapper in card mode. | | `flexGrow` | `boolean` | `true` | Fills the remaining height of a constrained flex parent. | | `showToolbar` | `boolean` | `true` | Controls the package toolbar region. | -| `showFooter` | `boolean` | `true` | Controls the pagination/record-count footer when infinite loading is not active. | +| `showFooter` | `boolean` | `true` | Controls the pagination/record-count footer. Infinite loading shows only the record count when `totalRowCount` is supplied. | ### Layout requirements @@ -843,7 +843,7 @@ discarded. | Prop | Type | Default | Description | | --- | --- | --- | --- | -| `infiniteScroll` | `DataTableInfiniteScroll` | `undefined` | Enables sentinel-based load-more behavior and hides the pagination footer. Only one load request runs at a time; failures are reported through `onActionError`. | +| `infiniteScroll` | `DataTableInfiniteScroll` | `undefined` | Enables sentinel-based load-more behavior and hides pagination controls. When `totalRowCount` is supplied, a native count-only footer remains visible. Only one load request runs at a time; failures are reported through `onActionError`. | ### Virtualization props diff --git a/docs/Migration.md b/docs/Migration.md index 56312ef..800582a 100644 --- a/docs/Migration.md +++ b/docs/Migration.md @@ -1,5 +1,16 @@ # Migration Guide +## 5.3.0 known-total infinite scrolling + +No consumer migration is required. Tables using `infiniteScroll` continue to +hide pagination controls. If they also supply `totalRowCount`, the package now +renders its native record-count footer; omit `totalRowCount` or set +`showFooter={false}` to retain no footer. Applications that previously passed a +custom count-only footer child can remove that child after adopting 5.3.0. + +Keep `getRowId` at module scope or memoize it with `React.useCallback`; the +README examples now consistently demonstrate that stable identity contract. + ## 5.2.1 search surface styling No consumer migration is required for 5.2.1. The shadcn adapter now uses diff --git a/docs/Roadmap.md b/docs/Roadmap.md index 05ee5ce..c83cb42 100644 --- a/docs/Roadmap.md +++ b/docs/Roadmap.md @@ -16,11 +16,11 @@ Audit baseline: Current implementation baseline: -- package version: 5.2.1 +- package version: 5.3.0 - React/React DOM peers: 19.2.8 - TanStack Table: 9.1.2 with explicit features and no legacy hook - TanStack Virtual: 3.14.9 -- validation: 321 unit/integration tests, enforced coverage and declaration +- validation: 327 unit/integration tests, enforced coverage and declaration snapshots, SSR/hydration tests, a packed-consumer build, and 12 Playwright behavior/accessibility/layout cases - toolchain: TypeScript 7 CLI with the official TypeScript 6 compiler-API diff --git a/package.json b/package.json index fb85de2..ddca248 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "data-table-pro", - "version": "5.2.1", + "version": "5.3.0", "description": "Reusable React data table library with shadcn, HeroUI, and The Gridcn adapters.", "type": "module", "license": "MIT", diff --git a/src/core/data-table/create-data-table-pagination.tsx b/src/core/data-table/create-data-table-pagination.tsx index 27a2a2a..8d916f6 100644 --- a/src/core/data-table/create-data-table-pagination.tsx +++ b/src/core/data-table/create-data-table-pagination.tsx @@ -5,6 +5,7 @@ import type { DataTableUiKit } from "../ui-kit"; import { DATA_TABLE_DEFAULT_LABELS } from "./data-table-labels"; type DataTablePaginationProps = { + countOnly?: boolean; pageIndex: number; pageCount: number; pageCountKnown: boolean; @@ -40,6 +41,7 @@ export function createDataTablePagination(ui: DataTableUiKit) { } = ui; function DataTablePagination({ + countOnly = false, pageIndex, pageCount, pageCountKnown, @@ -56,6 +58,25 @@ export function createDataTablePagination(ui: DataTableUiKit) { const canGoPrevious = pageIndex > 0; const canGoNext = pageIndex + 1 < pageCount; const lastPageIndex = Math.max(0, pageCount - 1); + const totalRecordCount = + totalRowCount !== undefined ? ( +
+
+ + {totalRowCount} + + {labels.totalRecords(totalRowCount)} + +
+
+ ) : null; + + if (countOnly) { + return
{totalRecordCount}
; + } return (
@@ -89,20 +110,7 @@ export function createDataTablePagination(ui: DataTableUiKit) {
- {totalRowCount !== undefined ? ( -
-
- - {totalRowCount} - - {labels.totalRecords(totalRowCount)} - -
-
- ) : null} + {totalRecordCount}
; + } + return { + DataTableCountOnlyFooter, DataTableFooter, DataTablePagination, }; diff --git a/src/core/data-table/create-data-table.test.tsx b/src/core/data-table/create-data-table.test.tsx index 79f28b4..004561e 100644 --- a/src/core/data-table/create-data-table.test.tsx +++ b/src/core/data-table/create-data-table.test.tsx @@ -17,7 +17,7 @@ import { screen, waitFor, } from "@testing-library/react"; -import type { ExpandedState } from "@tanstack/react-table"; +import type { ExpandedState, SortingState } from "@tanstack/react-table"; import { createDataTable } from "./create-data-table"; import * as RootEntry from "../../index"; import { DataTable as ShadcnDataTable } from "../../index"; @@ -54,6 +54,8 @@ const columns: Array> = [ ]; const rows: Array = [{ id: "1", name: "Ada" }]; +const getTestRowId = (row: TestRow) => row.id; +const observeInfiniteScrollSentinel = vi.fn(); const forbiddenNonShadcnTokens = [ "border-border", "bg-card", @@ -88,7 +90,7 @@ class ResizeObserverMock { } class IntersectionObserverMock { - observe() {} + observe = observeInfiniteScrollSentinel; disconnect() {} @@ -445,6 +447,7 @@ afterEach(() => { cleanup(); vi.useRealTimers(); vi.restoreAllMocks(); + observeInfiniteScrollSentinel.mockClear(); }); for (const suite of suites) { @@ -2230,6 +2233,22 @@ for (const suite of suites) { expect(screen.getByLabelText("Total records: 42")).not.toBeNull(); }); + it("shows only the total record count for infinite scrolling when supplied", () => { + renderTable({ + data: rows.slice(0, 1), + totalRowCount: 42, + infiniteScroll: { + enabled: true, + hasMore: true, + onLoadMore: vi.fn(), + }, + }); + + expect(screen.getByLabelText("Total records: 42")).not.toBeNull(); + expect(screen.queryByLabelText("Records per page")).toBeNull(); + expect(screen.queryByLabelText("Next page")).toBeNull(); + }); + it("automatically paginates local data when manual pagination is disabled", () => { renderTable({ data: [ @@ -2285,6 +2304,57 @@ for (const suite of suites) { expect(screen.getByText("Linus")).not.toBeNull(); }); + it("preserves server row order with controlled manual sorting and infinite scroll", () => { + const onSortingChange = vi.fn(); + const onLoadMore = vi.fn(); + + function ControlledInfiniteTable() { + const [sorting, setSorting] = React.useState([]); + + return ( + + { + onSortingChange(nextSorting); + setSorting(nextSorting); + }} + manualSorting + infiniteScroll={{ + enabled: true, + hasMore: true, + onLoadMore, + }} + /> + + ); + } + + const { container } = render(); + const renderedNames = () => + Array.from(container.querySelectorAll("tbody tr"), (row) => + row.textContent?.trim(), + ); + + expect(renderedNames()).toEqual(["Grace", "Ada"]); + expect(observeInfiniteScrollSentinel).toHaveBeenCalledTimes(1); + + fireEvent.click(screen.getByRole("button", { name: "Name" })); + + expect(onSortingChange).toHaveBeenCalledWith([ + { id: "name", desc: false }, + ]); + expect(renderedNames()).toEqual(["Grace", "Ada"]); + expect(onLoadMore).not.toHaveBeenCalled(); + expect(screen.queryByLabelText(/Total records:/)).toBeNull(); + }); + it("does not reset controlled pagination when inline visibility config changes identity", () => { function ControlledPaginationTable() { const [pageIndex, setPageIndex] = React.useState(0); diff --git a/src/core/data-table/create-data-table.tsx b/src/core/data-table/create-data-table.tsx index 11d3664..2bd5655 100644 --- a/src/core/data-table/create-data-table.tsx +++ b/src/core/data-table/create-data-table.tsx @@ -93,7 +93,8 @@ export function createDataTableWithPanels( } = ui; const DataTableEmptyState = createDataTableEmptyState(ui); const DataTableRowActions = createDataTableRowActions(ui); - const { DataTableFooter } = createDataTablePagination(ui); + const { DataTableCountOnlyFooter, DataTableFooter } = + createDataTablePagination(ui); const DataTableToolbar = createDataTableToolbar(ui); const DataTableCardView = createDataTableCardView(ui, DataTableRowActions); const DataTableStateOverlay = React.lazy(async () => { @@ -1760,7 +1761,11 @@ export function createDataTableWithPanels(
{children}