diff --git a/CHANGELOG.md b/CHANGELOG.md index d242d1d..7ba0a96 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,33 @@ # Changelog +## 5.1.0 - 2026-08-13 + +Version 5.1 fixes fill-layout spacer rendering without changing the public API, +TanStack v9 integration, or persisted table state. + +### Fixed + +- Render the internal fill-layout spacer with the same header and row borders + and backgrounds as neighboring cells, keeping the grid visually continuous + through a right-pinned actions column. +- Apply the continuous grid styling to ordinary rows, virtual rows, and summary + rows while preserving the spacer's inert accessibility semantics. + +### Compatibility + +- No consumer migration or configuration change is required. +- Existing column widths, horizontal overflow, right-pinned actions, keyboard + navigation, and the reserved `__spacer__` behavior remain unchanged. + +### Validation + +- 318 unit/integration tests, including static, virtual, adapter, and summary + spacer coverage +- Chromium fill/overflow layout regression with computed border and background + comparisons +- lint, typecheck, package build, packed-consumer build, public API snapshot, + and bundle budgets + ## 5.0.0 - 2026-08-13 Version 5 upgrades the package's TanStack-facing API to TanStack React Table diff --git a/README.md b/README.md index 6ca528e..0e21657 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,14 @@ infinite loading, typed server data sources, and host-owned drag/upload integrations. See [`docs/API.md`](./docs/API.md) for the complete contract. +## 5.1.0 Compatibility + +Version 5.1.0 makes the internal fill-layout spacer render as an empty table +segment with the same header, body-row, and summary-row borders/backgrounds as +its neighboring cells. It does not change the public API, TanStack v9 +integration, persisted state, column widths, overflow behavior, or accessibility +semantics. No consumer migration is required. + ## Breaking changes in 5.0.0 Version 5 upgrades to TanStack React Table v9.1.2 and uses `useTable` with an @@ -83,8 +91,8 @@ Version 4.5.0 adds optional scrollbar visibility control and corrects fixed-width `layoutMode="fill"` tables without removing any public API. Set `scrollbarVisibility="always"` when persistent horizontal and vertical scrollbars are required. When every currently visible data column has a fixed -width, fill layout now keeps those widths and automatically places a -transparent flexible spacer before a right-pinned actions column. Consumers +width, fill layout now keeps those widths and automatically places an empty +flexible spacer before a right-pinned actions column. Consumers must not create or reference the reserved `__spacer__` column. ## 4.4.0 Compatibility @@ -106,11 +114,11 @@ The previously planned wrapper API cleanup was ultimately deferred beyond ## Installation ```bash -pnpm add github:Dastari/data-table-pro#v5.0.0 +pnpm add github:Dastari/data-table-pro#v5.1.0 ``` This package is installed from GitHub refs. It is not published to npm. -Release tags such as `v5.0.0` include committed `dist/` output, so consumers +Release tags such as `v5.1.0` include committed `dist/` output, so consumers do not need to allow package build scripts during install. Peer dependencies: diff --git a/browser-tests/data-table.spec.ts b/browser-tests/data-table.spec.ts index d33d347..696d0ca 100644 --- a/browser-tests/data-table.spec.ts +++ b/browser-tests/data-table.spec.ts @@ -229,12 +229,45 @@ test("fill layout gives spare width to the internal spacer and preserves overflo const actions = headers.find( (header) => header.dataset.columnId === "__actions__", ); - if (!scrollArea || !viewport || !name || !spacer || !actions) { + const spacerIndex = spacer ? headers.indexOf(spacer) : -1; + const adjacentHeader = headers[spacerIndex - 1]; + const firstBodyRow = element.querySelector("tbody tr"); + const adjacentCell = adjacentHeader?.dataset.columnId + ? firstBodyRow?.querySelector( + `[data-column-id="${adjacentHeader.dataset.columnId}"]`, + ) + : undefined; + const spacerCell = firstBodyRow?.querySelector( + '[data-column-id="__spacer__"]', + ); + if ( + !scrollArea || + !viewport || + !name || + !spacer || + !actions || + !adjacentHeader || + !adjacentCell || + !spacerCell + ) { throw new Error("Expected the fill-layout regression columns"); } + const readCellAppearance = (cell: HTMLElement) => { + const styles = getComputedStyle(cell); + return { + backgroundColor: styles.backgroundColor, + borderBottomColor: styles.borderBottomColor, + borderBottomStyle: styles.borderBottomStyle, + borderBottomWidth: styles.borderBottomWidth, + }; + }; return { actionIndex: headers.indexOf(actions), + bodyAdjacentAppearance: readCellAppearance(adjacentCell), + bodySpacerAppearance: readCellAppearance(spacerCell), clientWidth: viewport.clientWidth, + headerAdjacentAppearance: readCellAppearance(adjacentHeader), + headerSpacerAppearance: readCellAppearance(spacer), nameWidth: name.getBoundingClientRect().width, scrollWidth: viewport.scrollWidth, spacerIndex: headers.indexOf(spacer), @@ -250,6 +283,16 @@ test("fill layout gives spare width to the internal spacer and preserves overflo expect(wideLayout.scrollWidth).toBeLessThanOrEqual( wideLayout.clientWidth + 1, ); + expect(wideLayout.headerSpacerAppearance).toEqual( + wideLayout.headerAdjacentAppearance, + ); + expect(wideLayout.bodySpacerAppearance).toEqual( + wideLayout.bodyAdjacentAppearance, + ); + expect(wideLayout.headerSpacerAppearance.borderBottomWidth).not.toBe("0px"); + expect(wideLayout.headerSpacerAppearance.borderBottomStyle).not.toBe("none"); + expect(wideLayout.bodySpacerAppearance.borderBottomWidth).not.toBe("0px"); + expect(wideLayout.bodySpacerAppearance.borderBottomStyle).not.toBe("none"); await table.evaluate((element) => { element.style.width = "720px"; @@ -261,6 +304,12 @@ test("fill layout gives spare width to the internal spacer and preserves overflo expect(narrowLayout.nameWidth).toBeCloseTo(220, 0); expect(narrowLayout.spacerIndex).toBe(narrowLayout.actionIndex - 1); expect(narrowLayout.scrollWidth).toBeGreaterThan(narrowLayout.clientWidth); + expect(narrowLayout.headerSpacerAppearance).toEqual( + narrowLayout.headerAdjacentAppearance, + ); + expect(narrowLayout.bodySpacerAppearance).toEqual( + narrowLayout.bodyAdjacentAppearance, + ); }); test("interactive grid navigation follows the rendered cell geometry", async ({ diff --git a/dist/adapter-virtual.js b/dist/adapter-virtual.js index f71650f..4115343 100644 --- a/dist/adapter-virtual.js +++ b/dist/adapter-virtual.js @@ -1,2 +1,2 @@ -export{a as createVirtualDataTable}from'./chunk-UMW6DOXG.js';import'./chunk-LTEXTQ2M.js';import'./chunk-IZQDLLCH.js';import'./chunk-XZTPNWJD.js';import'./chunk-EJHT5JBZ.js';import'./chunk-YKVWP3UJ.js';import'./chunk-YWMYYP3I.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';//# sourceMappingURL=adapter-virtual.js.map +export{a as createVirtualDataTable}from'./chunk-KUDBNY6E.js';import'./chunk-LTEXTQ2M.js';import'./chunk-UADXBI2T.js';import'./chunk-NYFLVBJD.js';import'./chunk-EJHT5JBZ.js';import'./chunk-YESJ52D2.js';import'./chunk-YWMYYP3I.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 67b231b..0be7abb 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-XZTPNWJD.js';import'./chunk-EJHT5JBZ.js';import'./chunk-YKVWP3UJ.js';import'./chunk-YWMYYP3I.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-NYFLVBJD.js';import'./chunk-EJHT5JBZ.js';import'./chunk-YESJ52D2.js';import'./chunk-YWMYYP3I.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 6da2ffe..0ef7dae 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-XZTPNWJD.js';import'./chunk-EJHT5JBZ.js';export{c as DataTableBodyRow,d as DataTableHeaderCell,e as DataTableTablePanel,a as useRowEditing}from'./chunk-YKVWP3UJ.js';import'./chunk-YWMYYP3I.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-NYFLVBJD.js';import'./chunk-EJHT5JBZ.js';export{c as DataTableBodyRow,d as DataTableHeaderCell,e as DataTableTablePanel,a as useRowEditing}from'./chunk-YESJ52D2.js';import'./chunk-YWMYYP3I.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-KUDBNY6E.js b/dist/chunk-KUDBNY6E.js new file mode 100644 index 0000000..2297428 --- /dev/null +++ b/dist/chunk-KUDBNY6E.js @@ -0,0 +1,2 @@ +import {a as a$1}from'./chunk-LTEXTQ2M.js';import {a}from'./chunk-UADXBI2T.js';import {j}from'./chunk-NYFLVBJD.js';function b(r){return j(r,{CardPanel:a$1,TablePanel:a})}export{b as a};//# sourceMappingURL=chunk-KUDBNY6E.js.map +//# sourceMappingURL=chunk-KUDBNY6E.js.map \ No newline at end of file diff --git a/dist/chunk-UMW6DOXG.js.map b/dist/chunk-KUDBNY6E.js.map similarity index 92% rename from dist/chunk-UMW6DOXG.js.map rename to dist/chunk-KUDBNY6E.js.map index 97cfe4b..539b0b8 100644 --- a/dist/chunk-UMW6DOXG.js.map +++ b/dist/chunk-KUDBNY6E.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-UMW6DOXG.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-KUDBNY6E.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-XZTPNWJD.js b/dist/chunk-NYFLVBJD.js similarity index 99% rename from dist/chunk-XZTPNWJD.js rename to dist/chunk-NYFLVBJD.js index 2d37443..4a71581 100644 --- a/dist/chunk-XZTPNWJD.js +++ b/dist/chunk-NYFLVBJD.js @@ -1,2 +1,2 @@ -import {a as a$4}from'./chunk-EJHT5JBZ.js';import {a as a$3,e as e$1}from'./chunk-YKVWP3UJ.js';import {d,a as a$1,b,h,k,s,x,j,B,r,c as c$1,e,g,f,v,w,t,i as i$1,p,o,y,u as u$1,C,l,n}from'./chunk-YWMYYP3I.js';import {c,p as p$1,u,k as k$1,m,s as s$1,a as a$5,r as r$1,q,l as l$1,j as j$1}from'./chunk-CVR2ZXHQ.js';import {a,i,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 Hn({cardClassName:e,cardGridClassName:a,cardSizing:t,cardRenderer:o,currentRowSelection:r,currentDetailExpanded:l,DataTableCardView:d,DataTableEmptyState:p,dragAndDrop:u,editableRows:y,editingRowId:V,emptyNode:S,enableRowSelection:z,flexGrow:M,getRowClassName:$,hasCardTitle:J,infiniteScroll:F,localSearchValue:g,onRowClick:T,renderedRows:s,detailPanel:C,resolvedLabels:m,resolvedLoadingRowCount:v,rowActions:N=[],ScrollArea:w,scrollbarVisibility:G,sentinelRef:W,setCurrentDetailExpanded:_,setCurrentRowSelection:U,setEditingRowId:R,shouldRenderInitialLoading:f,stateOverlayNode:x,tableContainerClassName:k,uiClassNames:A}){let Q=f||s.length>0,P=D.useRef(null),q=(j,E)=>jsx(d,{rows:j,cardRenderer:o,cardGridClassName:a,cardClassName:e,cardSizing:t,rowActions:N,editableRows:y,detailPanel:C,detailExpanded:l,onDetailExpandedChange:_,hasCardTitle:J,rowSelection:r,onRowSelectionChange:U,enableRowSelection:z,editingRowId:V,onEditingRowIdChange:R,getRowClassName:$,onRowClick:T,getRowDraggable:u?.getRowDraggable,onRowDragStart:u?.onRowDragStart,onRowDragEnd:u?.onRowDragEnd,isLoading:E?.isLoading,loadingRowCount:E?.loadingRowCount,labels:m});return jsxs("div",{ref:P,"data-dtp-slot":"data-table-card-shell",className:a$2("relative box-border border-2 border-transparent transition-colors",M?"flex min-h-0 flex-1 flex-col":"h-full",u?.isDragging&&(A.dragActive??"rounded-md border-dashed")),children:[jsx(w,{type:G,className:a$2(M?"min-h-0 flex-1":"h-full",A.cardScrollArea,k),children:jsxs("div",{"data-dtp-slot":"data-table-card-viewport",className:a$2("flex min-h-full min-w-0 flex-col",M&&"min-h-0 flex-1",A.cardViewport),children:[Q?f?q([],{isLoading:true,loadingRowCount:v}):q(s):jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center p-4",children:S??jsx(p,{title:g?m.noMatchingRowsTitle:m.noRowsTitle,description:g?m.noMatchingRowsDescription:m.noRowsDescription})}),F?.enabled&&!f?jsx("div",{className:"shrink-0 px-4 pb-4",children:jsx("div",{ref:W,className:"h-4 w-full"})}):null]})}),x]})}var cs=D.lazy(async()=>({default:(await import('./data-table-virtual-card-panel-Z3BPBPG4.js')).DataTableVirtualCardPanel}));function Ci(e){let a=typeof e.virtualization=="object"?e.virtualization.card:void 0;return a?.enabled!==true?jsx(Hn,{...e}):jsx(D.Suspense,{fallback:jsx(Hn,{...e,renderedRows:e.renderedRows.slice(0,Math.max(1,Math.floor(a.fallbackCardCount??12)))}),children:jsx(cs,{...e})})}function yi({children:e,currentPagination:a,DataTableFooter:t,effectivePageCount:o,footerTotalRowCount:r,handleFooterPageIndexChange:l,handleFooterPageSizeChange:d,labels:p,pageCountKnown:u=true,rowsPerPageOptions:y,showFooter:V}){return !V&&!e?null:jsxs("div",{"data-dtp-slot":"data-table-footer",className:"shrink-0",children:[V?jsx(t,{pageIndex:a.pageIndex,pageCount:o,pageCountKnown:u,pageSize:a.pageSize,totalRowCount:r,rowsPerPageOptions:y,onPageIndexChange:l,onPageSizeChange:d,labels:p}):null,e]})}function Ri({allRows:e,columnFilters:a,columnVisibilityOptions:t,compactToolbar:o,customToolbar:r,DataTableToolbar:l,description:d,descriptionId:p,effectiveToolbarActions:u,enableColumnPinning:y,enableGrouping:V,enableToolbarColumnChooser:S,enableToolbarFilterChips:z,enableToolbarResetLayout:M,enableToolbarSavedViews:$,enableDensityToggle:J,enableViewToggle:F,hiddenRowsLabel:g,labels:T,onClearColumnFilters:s,onColumnFilterChange:C,onColumnPinningChange:m,onDensityChange:v,onShowHiddenRowsChange:N,onToolbarQueryValueChange:w,reorderColumn:G,onResetColumnLayout:W,onCreateSavedView:_,onApplySavedView:U,onRenameSavedView:R,onDeleteSavedView:f,onViewModeChange:x,openFileDialog:k,selectedRowIds:A,selectedRows:Q,selectionActions:P,savedViews:q,showHiddenRows:j,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(l,{title:Z,titleId:re,description:d,descriptionId:p,toolbarQueryValue:Se,toolbarQueryPlaceholder:Re,onToolbarQueryValueChange:w,reorderColumn:G,customToolbar:r,compactToolbar:o,viewMode:Ce,onViewModeChange:x,enableViewToggle:F,toolbarActions:u,selectionActions:P,selectedRowIds:A,selectedRows:Q,showHiddenRows:j,hiddenRowsLabel:g,onShowHiddenRowsChange:N,allRows:e,columnVisibilityOptions:t,onColumnVisibilityChange:(Ae,Ge)=>{E.getColumn(Ae)?.toggleVisibility(Ge);},enableColumnPinning:y,enableGrouping:V,enableToolbarColumnChooser:S,enableToolbarFilterChips:z,enableToolbarResetLayout:M,enableToolbarSavedViews:$,onColumnPinningChange:m,columnFilters:a,onColumnFilterChange:C,onClearColumnFilters:s,onResetColumnLayout:W,onCreateSavedView:_,onApplySavedView:U,onRenameSavedView:R,onDeleteSavedView:f,density:Ee,onDensityChange:v,enableDensityToggle:J,labels:T,toolbarVisibility:ke,openFileDialog:k,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 Si(e){return {...ie,...e}}function vi({Button:e,Checkbox:a,DataTableRowActions:t,Tooltip:o,TooltipContent:r,TooltipTrigger:l,cancelEditing:d$1,columns:p,editableRows:u,editingRowId:y,editErrors:V,enableRowSelection:S,enableRowPinning:z,hasTreeExpansion:M,isSavingEdit:$,isEditDirty:J,includeFillSpacer:F=false,labels:g,lastSelectedRowIdRef:T,detailPanel:s,detailExpanded:C,onDetailExpandedChange:m,rowSelectionSelectAllScope:v,rowActions:N,saveEdit:w,startEditingRow:G,tableRef:W}){let _=D.useCallback((U,R)=>{let f=W.current;if(!f||!T.current)return;let x=f.getRowModel().rows.filter(q=>!d(q.original)),k=x.findIndex(q=>q.id===T.current),A=x.findIndex(q=>q.id===U);if(k<0||A<0)return;let Q=Math.min(k,A),P=Math.max(k,A);f.setRowSelection(q=>{let j={...q};for(let E of x.slice(Q,P+1).filter(Z=>Z.getCanSelect()&&Z.getCanMultiSelect()))R?j[E.id]=true:delete j[E.id];return j});},[T,W]);return D.useMemo(()=>{let U=[];if(M||s){let R=M&&s?80:a$1;U.push({id:"__expand__",enableResizing:false,enableSorting:false,enableHiding:false,size:R,minSize:R,maxSize:R,header:()=>jsx("span",{className:"sr-only",children:g.expandRow}),cell:({row:f,table:x})=>{let k=M&&f.getCanExpand(),A=!!(s&&(s.getRowCanExpand?.(f.original)??true));if(!k&&!A)return null;let Q=f.getIsExpanded(),P=C===true||!!C[f.id];return jsxs("div",{className:"flex items-center justify-center gap-1",children:[k?jsx(e,{type:"button",variant:"ghost",size:"icon-sm","aria-label":Q?g.collapseRow:g.expandRow,"aria-expanded":Q,"data-tree-toggle":"true",onClick:()=>f.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":P?M?g.collapseRowDetails??ie.collapseRowDetails:g.collapseRow:M?g.expandRowDetails??ie.expandRowDetails:g.expandRow,"aria-expanded":P,"data-detail-toggle":"true",onClick:()=>{m(q=>b(q,f.id,x.getCoreRowModel().flatRows.map(j=>j.id)));},children:jsx(c,{className:a$2("transition-transform",P?"rotate-0":"-rotate-90")})}):null]})}});}return S&&U.push({id:"__select__",enableResizing:false,enableSorting:false,enableHiding:false,size:a$1,minSize:a$1,maxSize:a$1,header:({table:R})=>{let f=v==="filtered",x=(f?R.getFilteredRowModel().flatRows:R.getRowModel().flatRows).filter(P=>P.getCanSelect()&&P.getCanMultiSelect()),k=x.length>0&&x.every(P=>P.getIsSelected()),A=x.some(P=>P.getIsSelected()),Q=f?g.selectAllFilteredRows??ie.selectAllFilteredRows:g.selectAllVisibleRows??ie.selectAllVisibleRows;return x.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:k?true:A?"indeterminate":false,onCheckedChange:P=>{R.setRowSelection(q=>{let j={...q};for(let E of x)P===true?j[E.id]=true:delete j[E.id];return j});},"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:f=>{if(!f.shiftKey||!T.current||!R.getCanMultiSelect()){T.current=R.id;return}f.preventDefault(),f.stopPropagation(),_(R.id,!R.getIsSelected()),T.current=R.id;},onCheckedChange:f=>{T.current=R.id,R.toggleSelected(f===true);},"aria-label":g.selectRow??ie.selectRow})})}),U.push(...p.map(R=>h(R))),F&&U.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}),(N.length||u||z)&&U.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:g.actions}),cell:({row:R})=>{let f=R.id;return y===f?jsxs("div",{className:"flex w-full items-center justify-end gap-2",children:[V._row?jsx("span",{className:"sr-only",role:"alert",children:V._row}):null,jsx(e,{type:"button",size:"sm",disabled:$||!J,onClick:()=>{w(R.original);},children:g.saveEdit}),jsxs(o,{children:[jsx(l,{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:g.cancelEdit})]})}),jsx(r,{children:g.cancelEdit})]})]}):jsx("div",{className:"flex w-full items-center justify-center",children:jsx(t,{row:R.original,rowActions:N,editableRows:u,isEditing:false,onStartEditing:()=>{G(R.original,R.id);},onCancelEditing:()=>{},labels:g,rowPinning:z?{canPin:R.getCanPin(),position:R.getIsPinned(),pin:k=>R.pin(k)}:void 0})})}}),U},[e,a,t,o,r,l,d$1,p,u,C,s,V,y,S,z,M,F,$,J,g,T,m,v,N,w,_,G])}function xe({defaultValue:e,onChange:a,value:t}){let[o,r]=D.useState(e),l=t??o,d=D.useRef(l);D.useEffect(()=>{d.current=l;},[l]);let p=D.useCallback(u=>{let y=typeof u=="function"?u(d.current):u;d.current=y,a?.(y),t===void 0&&r(y);},[a,t]);return [l,p]}function Pi({enabled:e,hasMore:a,isLoadingMore:t,onLoadMore:o,onError:r}){let l=D.useRef(null),d=D.useRef(false),p=D.useEffectEvent(o),u=D.useEffectEvent(y=>{r?.(y);});return D.useEffect(()=>{if(!e||!a||t)return;let y=l.current;if(!y)return;let V=new IntersectionObserver(S=>{if(S[0].isIntersecting&&!d.current){d.current=true;let M;try{M=p();}catch($){d.current=false,u($);return}Promise.resolve(M).catch($=>{u($);}).finally(()=>{d.current=false;});}},{rootMargin:"200px 0px 200px 0px"});return V.observe(y),()=>{V.disconnect();}},[e,a,t]),l}function ki({enabled:e,maxPageIndex:a,onPageIndexChange:t,pageIndex:o,setLocalPageIndex:r}){D.useEffect(()=>{if(!e||o>=0&&o<=a)return;let l=Math.min(Math.max(o,0),a);r(l),t?.(l);},[e,a,t,o,r]);}function Fi(){return D.useMemo(()=>{let e=new WeakMap;return (a,t,o$1)=>{let r=o(o$1);if(!r)return true;let l=a.original;if(typeof l!="object"||l===null)return o(a.getValue(t)).includes(r);let d=e.get(l);d||(d=new Map,e.set(l,d));let p=d.get(t);if(p===void 0){let u=a.getValue(t);p=o(u),d.set(t,p);}return p.includes(r)}},[])}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 Vi({autoResetPageIndex:e,columnGroupPaths:a,columnResizeMode:t,dir:o,currentColumnFilters:r,currentColumnOrder:l,currentColumnPinning:d$1,currentRowPinning:p,currentColumnSizing:u,currentExpanded:y,currentGrouping:V,currentPagination:S,currentRowSelection:z,currentSorting:M,currentViewMode:$,defaultColumn:J,effectiveColumnVisibility:F,enableColumnResizing:g,enableMultiRowSelection:T,enableRowPinning:s$1,enableRowSelection:C,enableSubRowSelection:m,getRowCanSelect:v,getRowCanExpand:N,getSubRows:w,aggregationFns:G,groupedColumnMode:W,globalFilterFn:_,globalFilterValue:U,hasNextPage:R,handleColumnFiltersChange:f,handleColumnOrderChange:x$1,handleColumnPinningChange:k$1,handleRowPinningChange:A,handleColumnVisibilityChange:Q,handleExpandedChange:P,handleGroupingChange:q,infiniteScroll:j$1,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:L,filterFromLeafRows:ye,maxLeafRowFilterDepth:We,setCurrentRowSelection:Xe,setCurrentSorting:Ze,setLocalColumnSizing:ia,setLocalPagination:ge,shouldRenderInitialLoading:ra,tableColumns:Qe,tableData:ba,tableGetRowId:$e,tableRef:ea,totalRowCount:fa,virtualization:aa}){let Ta=Fi(),fe=D.useMemo(()=>k(Qe).map(({column:b,index:I})=>s(b,I)),[Qe]),la=D.useMemo(()=>{let b=fe,I=b.filter(oe=>!x(oe)&&oe!=="__spacer__"),K=new Set(I),de=l.filter(oe=>K.has(oe)),le=I.filter(oe=>!de.includes(oe));return [...b.filter(oe=>oe==="__expand__"||oe==="__select__"),...de,...le,...b.filter(oe=>oe==="__spacer__"),...b.filter(oe=>oe==="__actions__")]},[l,fe]),Ie=D.useMemo(()=>{let b=new Set(fe),I=new Set(fe.filter(le=>!x(le)&&le!=="__spacer__")),K=(d$1.left??[]).filter(le=>I.has(le)),de=(d$1.right??[]).filter(le=>I.has(le));return {start:[...["__expand__","__select__"].filter(le=>b.has(le)),...K],end:[...de,...["__actions__"].filter(le=>b.has(le))]}},[d$1,fe]),Da=D.useCallback(b=>{let I=typeof b=="function"?b(Ie):b,K=new Set(fe.filter(de=>!x(de)&&de!=="__spacer__"));k$1({left:I.start.filter(de=>K.has(de)),right:I.end.filter(de=>K.has(de))});},[Ie,fe,k$1]),Pe=D.useMemo(()=>{let b=new Set,I=oe=>{oe.forEach((Ba,ta)=>{if(b.add($e(Ba,ta)),!d(Ba)){let Ia=w?.(Ba,ta);Ia?.length&&I(Ia);}});};I(ba);let K=(p.top??[]).filter(oe=>b.has(oe)),de=new Set(K),le=(p.bottom??[]).filter(oe=>b.has(oe)&&!de.has(oe));return {top:K,bottom:le}},[p.bottom,p.top,w,ba,$e]),Fe=D.useMemo(()=>Object.fromEntries(Object.entries(z).flatMap(([b,I])=>I?[[b,true]]:[])),[z]),Pa=D.useCallback(b=>{let I=typeof b=="function"?b(Fe):b;Xe({...I});},[Xe,Fe]),xa=D.useMemo(()=>({sorting:M,pagination:S,rowSelection:Fe,columnVisibility:F,columnFilters:r,globalFilter:U,expanded:y,grouping:V,columnOrder:la,columnPinning:Ie,rowPinning:Pe,columnSizing:u}),[r,u,y,V,S,M,F,la,Ie,Pe,U,Fe]),sa=D.useCallback(b=>{let I=typeof b=="function"?b(S):b;(X===void 0||ve===void 0)&&ge(K=>({pageIndex:X===void 0?I.pageIndex:K.pageIndex,pageSize:ve===void 0?I.pageSize:K.pageSize})),I.pageIndex!==S.pageIndex&&Ce?.(I.pageIndex),I.pageSize!==S.pageSize&&Ae?.(I.pageSize);},[S,Ce,Ae,X,ve,ge]),ka=D.useCallback(b=>{ia(b);},[ia]),wa=D.useMemo(()=>Bn(G),[G]),me=useTable({features:wa,data:ba,columns:Qe,enableRowSelection:v?b=>C&&v(b.original):C,enableRowPinning:typeof s$1=="function"?b=>s$1(b.original):s$1,keepPinnedRows:E,enableMultiRowSelection:typeof T=="function"?b=>T(b.original):T,enableSubRowSelection:typeof m=="function"?b=>m(b.original):m,enableColumnResizing:g,columnResizeMode:t,columnResizeDirection:o,getRowId:$e,getSubRows:w?(b,I)=>w(b,I):void 0,getRowCanExpand:w?b=>N?.(b.original)??b.subRows.length>0:void 0,globalFilterFn:_??Ta,getColumnCanGlobalFilter:b=>b.columnDef.enableGlobalFilter!==false&&typeof b.accessorFn=="function",manualSorting:ke,manualGrouping:re,manualFiltering:Z,manualExpanding:Re,manualPagination:Se||!!j$1?.enabled,paginateExpandedRows:L,filterFromLeafRows:ye,maxLeafRowFilterDepth:We,defaultColumn:J,autoResetPageIndex:e,state:xa,onSortingChange:Ze,onPaginationChange:sa,onRowSelectionChange:Pa,onColumnVisibilityChange:Q,onColumnFiltersChange:f,onExpandedChange:P,onGroupingChange:q,onColumnOrderChange:x$1,onColumnPinningChange:Da,onRowPinningChange:A,onColumnSizingChange:ka,groupedColumnMode:W});D.useLayoutEffect(()=>(ea.current=me,()=>{ea.current===me&&(ea.current=null);}),[me,ea]);let Ne=me.getVisibleLeafColumns(),da=D.useCallback((b,I)=>{if(b===I||!j(b,I,a))return;let K=me.getAllLeafColumns().map(le=>le.id).filter(le=>!x(le)&&le!=="__spacer__"),de=B(l.length?l:K,b,I);x$1(de);},[a,l,x$1,me]),Ea=me.getTopRows(),Ue=me.getBottomRows(),Ca=$==="table"?me.getCenterRows():me.getRowModel().rows,ca=typeof aa=="object"?aa:void 0,ze=aa===true||ca?.enabled===true,ua=Math.max(1,Math.floor(ca?.fallbackRowCount??20)),Fa=(ze?Ca.slice(0,ua):Ca).map((b,I)=>({row:b,rowIndex:I})),qe=Se||!!j$1?.enabled,Va=qe?void 0:me.getFilteredRowModel().rows.length,je=fa??Va,pa=!qe||Ge!==void 0||fa!==void 0,Ha=je,Ke=ra?1:Ge??(je!==void 0?Math.max(1,Math.ceil(je/S.pageSize)):qe?S.pageIndex+(R?2:1):me.getPageCount()),Ma=Math.max(0,Ke-1),Aa=D.useCallback(b=>{X===void 0&&ge(I=>I.pageIndex===b?I:{...I,pageIndex:b});},[X,ge]);ki({enabled:!ra&&!j$1?.enabled&&pa,maxPageIndex:Ma,onPageIndexChange:Ce,pageIndex:S.pageIndex,setLocalPageIndex:Aa});let i=D.useCallback(b=>{b!==S.pageIndex&&(Ce?.(b),X===void 0&&ge(I=>I.pageIndex===b?I:{...I,pageIndex:b}));},[S.pageIndex,Ce,X,ge]),H=D.useCallback(b=>{S.pageIndex!==0&&Ce?.(0),b!==S.pageSize&&Ae?.(b),ve===void 0&&ge({pageIndex:0,pageSize:b});},[S.pageIndex,S.pageSize,Ce,Ae,ve,ge]),ne=Pi({enabled:!!j$1?.enabled,hasMore:!!j$1?.hasMore,isLoadingMore:j$1?.isLoadingMore,onLoadMore:()=>j$1?.onLoadMore(),onError:b=>{Ee?.({error:b,source:"infiniteScroll"});}});return {effectivePageCount:Ke,footerTotalRowCount:Ha,handleFooterPageIndexChange:i,handleFooterPageSizeChange:H,isPageCountKnown:pa,renderedRows:Ca,topPinnedRows:Ea,bottomPinnedRows:Ue,reorderColumn:da,rowsToRender:Fa,sentinelRef:ne,table:me,virtualPaddingBottom:0,virtualPaddingTop:0,visibleLeafColumns:Ne}}var Bs="data-table-pro:column-prefs:",Ai=1,Mi=["visibility","sizing","order","pinning","rowPinning","density"];function Ii(e){let a=Gn(e);if(!a)return {};let t=$n(a);if(!t)return {};let o=Un(a.key),r;try{r=t.getItem(o);}catch(u){return a.onError?.({error:u,operation:"read"}),{}}if(!r)return {};let l;try{l=(a.deserialize??JSON.parse)(r);}catch(u){return a.onError?.({error:u,operation:"deserialize"}),{}}let d=a.version??Ai,p;if(Gs(l))if(l.version===d)p=l.state;else if(a.migrate)try{p=a.migrate({version:l.version,state:l.state},d);}catch(u){return a.onError?.({error:u,operation:"migrate"}),{}}else return {};else p=l;return Ni($s(p),a.slices)}function zi(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 Li({key:e,persistence:a,prefs:t}){let o=a??Gn(e),r=o?$n(o):void 0,l=o?Un(o.key):void 0,d=o?.version??Ai,p=Math.max(0,o?.debounceMs??100),u=Ni(t,o?.slices),y=D.useMemo(()=>{if(!o)return {value:void 0};try{let S={version:d,state:u};return {value:(o.serialize??JSON.stringify)(S)}}catch(S){return {error:S,value:void 0}}},[o,u,d]),V=D.useEffectEvent((S,z)=>{o?.onError?.({error:S,operation:z});});D.useEffect(()=>{y.error!==void 0&&V(y.error,"serialize");},[y.error]),D.useEffect(()=>{if(!r||!l||y.value===void 0)return;let S=()=>{try{if(r.getItem(l)===y.value)return;r.setItem(l,y.value);}catch(M){V(M,"write");}};if(p===0){S();return}let z=globalThis.setTimeout(S,p);return ()=>{globalThis.clearTimeout(z);}},[p,y.value,r,l]);}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 `${Bs}${e}`}function Gs(e){return it(e)&&Object.prototype.hasOwnProperty.call(e,"version")&&Object.prototype.hasOwnProperty.call(e,"state")}function Ni(e,a){let t=new Set(a??Mi),o={};for(let r of Mi)t.has(r)&&e[r]!==void 0&&Object.assign(o,{[r]:e[r]});return o}function $s(e){if(!it(e))return {};let a={},t=Us(e.visibility);t&&(a.visibility=t);let o=js(e.sizing);o&&(a.sizing=o);let r=bt(e.order);if(r&&(a.order=r),it(e.pinning)){let d=bt(e.pinning.left)??[],p=bt(e.pinning.right)??[];a.pinning={left:d,right:p};}let l=Ks(e.rowPinning);return l&&(a.rowPinning=l),Ws(e.density)&&(a.density=e.density),a}function Us(e){if(it(e))return Object.fromEntries(Object.entries(e).filter(a=>typeof a[1]=="boolean"))}function js(e){if(it(e))return Object.fromEntries(Object.entries(e).filter(a=>typeof a[1]=="number"&&Number.isFinite(a[1])&&a[1]>=0))}function bt(e){if(Array.isArray(e))return e.filter(a=>typeof a=="string")}function Ks(e){if(it(e))return {top:bt(e.top)??[],bottom:bt(e.bottom)??[]}}function Ws(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 Oi(e){let a=D.useRef(0),[t,o]=D.useState(0);return D.useEffect(()=>{let r=e.current;if(!r)return;let l=(p=r.clientWidth)=>{let u=qs(p);u!==a.current&&(a.current=u,o(u));};if(l(),typeof ResizeObserver>"u")return;let d=new ResizeObserver(p=>{let u=p[0];l(u?Ys(u):void 0);});return d.observe(r),()=>{d.disconnect();}},[e]),t}function qs(e){if(e<=0)return 0;let a=1;for(let t of Qs){if(ed$1??(l?{key:l}:void 0),[l,d$1]),ye=D.useMemo(()=>Ii(L),[L]),[We,Xe]=D.useState({pageIndex:T?.pagination?.pageIndex??0,pageSize:T?.pagination?.pageSize??Re[0]??20}),[Ze,ia]=xe({value:Ee,onChange:Q,defaultValue:()=>T?.sorting??[]}),[ge,ra]=xe({value:re,onChange:k$1,defaultValue:()=>T?.rowSelection??{}}),[Qe,ba]=xe({value:p,onChange:_,defaultValue:()=>T?.columnVisibility??ye.visibility??{}}),[$e,ea]=xe({value:e$1,onChange:v,defaultValue:()=>T?.columnFilters??[]}),[fa,aa]=xe({value:M,onChange:R,defaultValue:()=>T?.expanded??{}}),[Ta,fe]=xe({value:a,onChange:N,defaultValue:()=>T?.columnOrder??ye.order??[]}),[la,Ie]=xe({value:t,onChange:w,defaultValue:()=>T?.columnPinning??ye.pinning??r(u)}),[Da,Pe]=xe({value:o,onChange:G,defaultValue:()=>T?.rowPinning??ye.rowPinning??{top:[],bottom:[]}}),[Fe,Pa]=xe({value:r$1,onChange:W,defaultValue:()=>T?.columnSizing??ye.sizing??{}}),[xa,sa]=xe({value:X,onChange:q,defaultValue:()=>T?.viewMode??"table"}),[ka,wa]=xe({value:$,onChange:f,defaultValue:()=>T?.grouping??[]}),[me,Ne]=xe({value:ke,onChange:A,defaultValue:()=>T?.showHiddenRows??false}),[da,Ea]=xe({value:V,onChange:U,defaultValue:()=>T?.density??ye.density??"comfortable"}),Ue=Ge??T?.globalFilter??"",Ca=Ae??Z.searchPlaceholder,ca=Ce??250,[ze,ua]=D.useState(Ue),ya=Oi(ve),Fa=!!P,qe=D.useRef(Ue),Va=D.useEffectEvent(B=>{qe.current=B,P?.(B);});D.useEffect(()=>{qe.current=Ue,ua(Ue);},[Ue]),D.useEffect(()=>{if(!Fa||ze===Ue||ze===qe.current)return;let B=window.setTimeout(()=>{Va(ze);},ca);return ()=>{window.clearTimeout(B);}},[Fa,ze,ca,Ue]);let je=D.useMemo(()=>({pageIndex:j??We.pageIndex,pageSize:E??We.pageSize}),[We.pageIndex,We.pageSize,j,E]),pa=Math.max(1,C??Math.min(5,je.pageSize)),Ha=D.useDeferredValue(ze),Ke=z?m?ze:Ha:"",Ma=D.useCallback(B=>{sa(B);},[sa]),Aa=D.useCallback(B=>{Ne(B);},[Ne]),i$1=D.useCallback(B=>{Ea(B);},[Ea]),H=D.useCallback(()=>{x?.(0),j===void 0&&Xe(B=>B.pageIndex===0?B:{...B,pageIndex:0});},[x,j]),ne=D.useRef({columnFilters:$e,globalFilterValue:Ke});D.useEffect(()=>{let B=ne.current,Ve=B.columnFilters!==$e,ce=B.globalFilterValue!==Ke;ne.current={columnFilters:$e,globalFilterValue:Ke},!m&&(!Ve&&!ce||H());},[$e,Ke,m,H]),Li({persistence:L,prefs:{visibility:p?void 0:Qe,sizing:r$1===void 0?Fe:void 0,order:a?void 0:Ta,pinning:t?void 0:la,rowPinning:o===void 0?Da:void 0,density:V?void 0:da}});let b=D.useMemo(()=>k(u).reduce((B,{column:Ve,index:ce})=>{let ga=s(Ve,ce);return i(Ve.meta?.hideOn,ya)&&(B[ga]=false),B},{}),[u,ya]),I=D.useMemo(()=>({...Qe,...b}),[Qe,b]),K=D.useMemo(()=>y.filter(B=>b$1(B,g,me)),[me,y,g]),de=s$1&&K.length===0,le=D.useMemo(()=>c$1(pa),[pa]),oe=de?le:K,Ba=D.useCallback((B,Ve)=>d(B)?e(Ve):F(B,Ve),[F]),ta=S||(Se?.length??0)>0||Object.values(ge).some(Boolean),Ia=D.useMemo(()=>{if(!ta)return new Map;let B=new Map,Ve=ce=>{ce.forEach((ga,te)=>{B.set(F(ga,te),ga);let be=J?.(ga,te);be?.length&&Ve(be);});};return Ve(K),B},[F,J,ta,K]),Zt=D.useMemo(()=>ta?Object.entries(ge).filter(([,B])=>B).map(([B])=>Ia.get(B)).filter(B=>!!B):[],[ge,Ia,ta]),en=D.useMemo(()=>Object.entries(ge).flatMap(([B,Ve])=>Ve?[B]:[]),[ge]);return {containerWidth:ya,currentColumnFilters:$e,currentColumnOrder:Ta,currentColumnPinning:la,currentRowPinning:Da,currentColumnSizing:Fe,currentColumnVisibility:Qe,currentDensity:da,currentExpanded:fa,currentGrouping:ka,currentPagination:je,currentRowSelection:ge,currentShowHiddenRows:me,currentSorting:Ze,currentViewMode:xa,effectiveColumnVisibility:I,globalFilterValue:Ke,handleDensityChange:i$1,handleShowHiddenRowsChange:Aa,handleViewModeChange:Ma,localSearchValue:ze,resolvedLoadingRowCount:pa,resolvedToolbarQueryPlaceholder:Ca,selectedRowIds:en,selectedRows:Zt,setCurrentColumnFilters:ea,setCurrentColumnOrder:fe,setCurrentColumnPinning:Ie,setCurrentRowPinning:Pe,setCurrentColumnVisibility:ba,setCurrentExpanded:aa,setCurrentGrouping:wa,setCurrentRowSelection:ra,setCurrentSorting:ia,setLocalColumnSizing:Pa,setLocalPagination:Xe,setLocalSearchValue:ua,shouldRenderInitialLoading:de,tableData:oe,tableGetRowId:Ba,toolbarFilteredData:K,visibleData:K}}var Xs={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 Bi({columns:e,columnSizing:a,editableRows:t,enableRowSelection:o,hasRowActions:r,hasRowExpansion:l,layoutMode:d,uiClassNames:p,visibleLeafColumns:u}){let y=D.useMemo(()=>{let F=new Set;for(let{column:g$1,index:T}of k(e))g(g$1)&&F.add(s(g$1,T));return o&&F.add("__select__"),l&&F.add("__expand__"),(r||t)&&F.add("__actions__"),F},[e,t,o,r,l]),V=D.useMemo(()=>{let F=new Map;for(let{column:g,index:T}of k(e)){let s$1=f(g);s$1!==void 0&&F.set(s(g,T),s$1);}return F},[e]),S=D.useMemo(()=>{let F=new Map,g=new Map,T=0;for(let C of u)v(C)==="left"&&(F.set(C.id,T),T+=Hi(C));let s=0;for(let C of [...u].reverse())v(C)==="right"&&(g.set(C.id,s),s+=Hi(C));return {left:F,right:g}},[u]),z=D.useMemo(()=>new Set([...y,...Object.keys(a)]),[a,y]),M=D.useMemo(()=>{let F=new Map;for(let g of u){let T=g.id==="__select__",s=g.id==="__expand__",C=g.id==="__actions__",m=T||s||C,v$1=g.id==="__spacer__",w$1=V.get(g.id),G=!v$1&&(d==="fit"||m||z.has(g.id)),W=G||w$1!==void 0?{width:G?m?a$1:g.getSize():void 0,minWidth:m?a$1:G?g.getSize():w$1,maxWidth:G?m?a$1:g.getSize():void 0}:void 0,_=v(g),U=_?{left:_==="left"?S.left.get(g.id):void 0,right:_==="right"?S.right.get(g.id):void 0}:void 0,R=W||U?{...W,...U}:void 0;F.set(g.id,{cellStyle:R,colStyle:W,fixedSide:_,headerStyle:R,isActionsColumn:C,isExpansionColumn:s,isSelectionColumn:T,isSpacerColumn:v$1,isUtilityColumn:m,pinnedClassName:_?w(_,p,{isUtilityColumn:m}):void 0,utilityClassName:m?"w-[50px] max-w-[50px] min-w-[50px] px-0":void 0});}return F},[z,d,V,S,p,u]),$=D.useMemo(()=>u.reduce((F,g)=>{let T=M.get(g.id),s=V.get(g.id);return T?.isUtilityColumn?F+a$1:z.has(g.id)?F+g.getSize():F+(s??0)},0),[M,z,V,u]),J=D.useCallback(F=>M.get(F)??Xs,[M]);return {columnLayouts:M,explicitlySizedColumnIds:y,fillMinWidth:$,getColumnLayout:J}}function Hi(e){return x(e.id)?a$1:e.getSize()}function $i(e,a){let t=e.classNames??{},{Button:o,Card:r,CardContent:l,CardHeader:d,Checkbox:p,Skeleton:u}=e;return function({rows:V,cardRenderer:S,cardSizing:z="fixed",cardGridClassName:M,cardClassName:$,rowActions:J,editableRows:F,detailPanel:g,detailExpanded:T,onDetailExpandedChange:s,hasCardTitle:C,rowSelection:m,onRowSelectionChange:v,enableRowSelection:N,editingRowId:w,onEditingRowIdChange:G,getRowClassName:W,onRowClick:_,getRowDraggable:U,onRowDragStart:R,onRowDragEnd:f,isLoading:x=false,loadingRowCount:k=5,labels:A}){let Q=z??"fixed",P=M?a$2("grid",M):Zs(Q),q=a$2("min-h-0 w-full gap-4 p-1",t.cardGrid,P),j=E=>a$2("relative min-w-0 max-w-full gap-0 overflow-hidden bg-transparent p-0",ed(Q),t.cardItem,$,E);return x?jsx("div",{role:"list","data-dtp-slot":"data-table-card-grid",className:q,children:Array.from({length:Math.max(1,k)},(E,Z)=>jsxs(r,{role:"listitem","aria-hidden":"true","data-dtp-slot":"data-table-card-item",className:j("min-h-52"),children:[C?jsxs(d,{className:"px-4 pt-4 pb-3",children:[jsx(u,{className:"h-5 w-40 max-w-[70%]"}),jsx(u,{className:"h-4 w-24 max-w-[40%]"})]}):null,jsxs(l,{className:a$2("space-y-3 pb-4",C?"":"pt-4"),children:[jsx(u,{className:"h-4 w-full"}),jsx(u,{className:"h-4 w-[82%]"}),jsx(u,{className:"h-4 w-[68%]"}),jsx(u,{className:"h-24 w-full rounded-xl"})]})]},`loading-card-${Z}`))}):jsx("div",{role:"list","data-dtp-slot":"data-table-card-grid",className:q,children:V.map(E=>{let Z=E.id,re=E.original,Re=!!m[Z],Se=w===Z,ke=J.length>0||!!F,Ee=!!(g&&(g.getRowCanExpand?.(re)??true)),Ce=N||ke||C,Ae=N||ke||E.getCanExpand()||Ee,Ge=()=>{_&&_({row:re,rowId:Z});};return jsxs(r,{role:"listitem","data-row-id":Z,"data-tree-depth":E.depth,draggable:U?.(re)??false,"data-dtp-slot":"data-table-card-item","data-state":Re?"selected":void 0,className:j(a$2([W?.(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=>{f?.({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:_?"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",ad(Q),_&&"cursor-pointer focus-visible:outline-none"),onClick:X=>{y(X.target,X.currentTarget)||Ge();},onKeyDown:X=>{y(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=>{v(Gi(m,Z,X,E.getCanSelect(),E.getCanMultiSelect()));},actions:J,isEditing:Se,startEditing:()=>{G(Z);},cancelEditing:()=>{G(null);}})}),Se||!g||!(T===true||T[E.id])?null:jsx("div",{"data-dtp-slot":"data-table-card-detail-panel",className:"relative z-20 min-w-0",children:g.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:[N?jsx("div",{"data-row-click-ignore":"true",className:"pointer-events-auto",children:jsx(p,{checked:Re,disabled:!E.getCanSelect(),"aria-label":(A.selectCardRow??ie.selectCardRow)(Z),onCheckedChange:X=>{v(Gi(m,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":T===true||T[E.id]?E.getCanExpand()?A.collapseRowDetails??ie.collapseRowDetails:A.collapseRow:E.getCanExpand()?A.expandRowDetails??ie.expandRowDetails:A.expandRow,"aria-expanded":T===true||!!T[E.id],"data-detail-toggle":"true",onClick:()=>{s(X=>b(X,E.id,V.map(ve=>ve.id)));},children:jsx(c,{className:a$2("transition-transform",T===true||T[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:F,isEditing:Se,onStartEditing:()=>{G(Z);},onCancelEditing:()=>{G(null);},labels:A})}):null]}):null]},Z)})})}}function Zs(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 ed(e){switch(e){case "content":return "w-fit";case "fluid":return "w-full";default:return}}function ad(e){switch(e){case "content":return "w-fit";case "fluid":return "w-full flex-1 [&>*]:w-full";default:return "flex-1"}}function Gi(e,a,t,o,r){if(!o)return e;if(t)return r?{...e,[a]:true}:{[a]:true};if(!e[a])return e;let l={...e};return delete l[a],l}function ji(e){let a=e.classNames??{},{Empty:t,EmptyContent:o,EmptyDescription:r,EmptyHeader:l,EmptyMedia:d,EmptyTitle:p}=e;return function({title:y="No rows found",description:V="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(l,{children:[jsx(d,{variant:"icon",children:jsx(p$1,{})}),jsx(p,{children:y}),jsx(r,{children:V})]}),jsx(o,{})]})}}function Ki(e){let a=e.classNames??{},{Pagination:t,PaginationContent:o,PaginationEllipsis:r,PaginationFirst:l,PaginationItem:d,PaginationLast:p,PaginationLink:u,PaginationNext:y,PaginationPrevious:V,Select:S,SelectContent:z,SelectGroup:M,SelectItem:$,SelectTrigger:J,SelectValue:F,Tooltip:g,TooltipContent:T,TooltipTrigger:s}=e;function C({pageIndex:v,pageCount:N,pageCountKnown:w,pageSize:G,totalRowCount:W,rowsPerPageOptions:_,onPageIndexChange:U,onPageSizeChange:R,labels:f}){let x=w?td(v,Math.max(1,N)):[],k=v>0,A=v+1{R(Number(P));},children:[jsx(J,{"aria-label":f.recordsPerPage,className:`w-22 ${a.paginationSelectTrigger??""}`,children:jsx(F,{})}),jsx(z,{children:jsx(M,{children:_.map(P=>jsx($,{value:String(P),children:P},P))})})]})]}),W!==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":f.totalRecords(W),children:[jsx(j$1,{className:"size-4"}),jsx("span",{className:"@min-[768px]/data-table:hidden",children:W}),jsx("span",{className:"hidden @min-[768px]/data-table:inline",children:f.totalRecords(W)})]})}):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:w?f.pageStatus(v,Math.max(1,N)):(f.pageStatusUnknown??ie.pageStatusUnknown)(v)}),jsx(t,{"aria-label":f.pagination??ie.pagination,className:"mx-0 w-auto justify-end",children:jsxs(o,{children:[jsx(d,{className:"@min-[768px]/data-table:hidden",children:jsxs(g,{children:[jsx(s,{asChild:true,children:jsx(l,{"aria-label":f.firstPage,href:"#",size:"icon-sm",showText:false,disabled:!k,onClick:P=>{P.preventDefault(),k&&U(0);},text:f.firstPage})}),jsx(T,{children:f.firstPage})]})}),jsx(d,{children:jsxs(g,{children:[jsx(s,{asChild:true,children:jsx(V,{"aria-label":f.previousPage,href:"#",size:"icon-sm",showText:false,disabled:!k,onClick:P=>{P.preventDefault(),k&&U(v-1);},text:f.previousPage})}),jsx(T,{children:f.previousPage})]})}),x.map((P,q)=>jsx(d,{className:"hidden @min-[768px]/data-table:block",children:P==="ellipsis"?jsx(r,{text:f.morePages??ie.morePages}):jsx(u,{href:"#",isActive:P===v+1,size:"icon-sm",onClick:j=>{j.preventDefault(),U(P-1);},children:P})},`${P}-${q}`)),jsx(d,{children:jsxs(g,{children:[jsx(s,{asChild:true,children:jsx(y,{"aria-label":f.nextPage,href:"#",size:"icon-sm",showText:false,disabled:!A,onClick:P=>{P.preventDefault(),A&&U(v+1);},text:f.nextPage})}),jsx(T,{children:f.nextPage})]})}),w?jsx(d,{className:"@min-[768px]/data-table:hidden",children:jsxs(g,{children:[jsx(s,{asChild:true,children:jsx(p,{"aria-label":f.lastPage,href:"#",size:"icon-sm",showText:false,text:f.lastPage,disabled:!A,onClick:P=>{P.preventDefault(),A&&U(Q);}})}),jsx(T,{children:f.lastPage})]})}):null]})})]})]})}function m(v){return jsx("div",{className:`rounded-md border px-2 py-1 ${a.footer??""}`,children:jsx(C,{...v})})}return {DataTableFooter:m,DataTablePagination:C}}function td(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 r=Array.from(o).sort((d,p)=>d-p),l=[];for(let d=0;d1&&l.push("ellipsis"),l.push(p);}return l}function Qi(e){let{Button:a,DropdownMenu:t,DropdownMenuContent:o,DropdownMenuGroup:r,DropdownMenuItem:l,DropdownMenuSeparator:d,DropdownMenuTrigger:p,Tooltip:u$1,TooltipContent:y,TooltipTrigger:V}=e;return function({row:z,rowActions:M,editableRows:$,isEditing:J,onStartEditing:F,onCancelEditing:g,labels:T,rowPinning:s}){let C=M.filter(w=>d$1(w,z)),m$1=D.useCallback(w=>{w.stopPropagation();},[]);if(J)return jsxs(u$1,{children:[jsx(V,{asChild:true,children:jsxs(a,{type:"button",variant:"ghost",size:"icon-sm",onPointerDown:m$1,onClick:g,children:[jsx(u,{}),jsx("span",{className:"sr-only",children:T.cancelEdit})]})}),jsx(y,{children:T.cancelEdit})]});let v=e$2($,z),N=s?.canPin??false;return !C.length&&!v&&!N?null:jsxs(t,{children:[jsxs(u$1,{children:[jsx(V,{asChild:true,children:jsx(p,{asChild:true,children:jsxs(a,{type:"button",variant:"ghost",size:"icon-sm",onPointerDown:m$1,onClick:m$1,children:[jsx(k$1,{}),jsx("span",{className:"sr-only",children:T.rowActions})]})})}),jsx(y,{children:T.rowActions})]}),jsxs(o,{align:"end",className:"w-52",children:[v?jsx(r,{children:jsxs(l,{onClick:w=>{w.stopPropagation(),F();},children:[jsx(m,{"data-icon":"inline-start"}),T.editRow]})}):null,v&&(C.length||N)?jsx(d,{}):null,N?jsx(r,{children:s?.position?jsx(l,{onClick:w=>{w.stopPropagation(),s.pin(false);},children:T.unpinRow}):jsxs(Fragment,{children:[jsx(l,{onClick:w=>{w.stopPropagation(),s?.pin("top");},children:T.pinRowToTop}),jsx(l,{onClick:w=>{w.stopPropagation(),s?.pin("bottom");},children:T.pinRowToBottom})]})}):null,N&&C.length?jsx(d,{}):null,C.length?jsx(r,{children:C.map(w=>{let G=w.icon;return jsxs(l,{disabled:w.disabled?.(z),variant:w.variant==="destructive"?"destructive":void 0,onClick:W=>{W.stopPropagation(),w.onClick(z);},children:[G?jsx(G,{"data-icon":"inline-start"}):null,c$2(w.label,z)]},w.key)})}):null]})]})}}var od=D.lazy(()=>import('./data-table-toolbar-operations-E6KRSUL6.js'));function Yi(e){let a=e.classNames??{},{Button:t,ButtonGroup:o,DropdownMenu:r,DropdownMenuCheckboxItem:l,DropdownMenuContent:d,DropdownMenuGroup:p,DropdownMenuItem:u$1,DropdownMenuLabel:y,DropdownMenuSeparator:V,DropdownMenuTrigger:S,InputGroup:z,InputGroupAddon:M,InputGroupInput:$,Tooltip:J,TooltipContent:F,TooltipTrigger:g}=e;return function({title:C,titleId:m,description:v,descriptionId:N,toolbarQueryValue:w,toolbarQueryPlaceholder:G,onToolbarQueryValueChange:W,customToolbar:_,compactToolbar:U,viewMode:R,onViewModeChange:f,enableViewToggle:x,toolbarActions:k,selectionActions:A,selectedRows:Q,selectedRowIds:P,showHiddenRows:q$1,hiddenRowsLabel:j,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:L,toolbarVisibility:ye,openFileDialog:We,enableGrouping:Xe,enableToolbarColumnChooser:Ze,enableToolbarFilterChips:ia,enableToolbarResetLayout:ge,enableToolbarSavedViews:ra,savedViews:Qe,onResetColumnLayout:ba,onCreateSavedView:$e,onApplySavedView:ea,onRenameSavedView:fa,onDeleteSavedView:aa,reorderColumn:Ta,table:fe}){let la=D.useRef(null),[Ie,Da]=D.useState(false),Pe=a.toolbarCompactIconButton??"",Fe=k.filter(i=>(i.placement??"primary")==="primary"),Pa=k.filter(i=>i.placement==="trailing"),xa=ye?.title??true,sa=ye?.search??true,ka=ye?.actions??true,wa=ye?.trailingActions??true,me=ye?.options??true,Ne=ye?.viewToggle??true,da=ye?.customToolbar??true,Ea=xa&&!!(C||v),Ue=sa,Ca=ka&&Fe.length>0,ca=P.length>0&&A.length>0,ze=me&&(re.some(i=>i.canHide)||!!(E&&j)||Se||ve||Xe||Ze||ge||ra),ua=Ze||ge||ra,ya=Ee.filter(i=>jn(i.value)),Fa={Button:t,DropdownMenuCheckboxItem:l,DropdownMenuGroup:p,DropdownMenuItem:u$1,DropdownMenuLabel:y,DropdownMenuSeparator:V,InputGroup:z,InputGroupAddon:M,InputGroupInput:$},qe=i=>jsx(D.Suspense,{fallback:null,children:jsx(od,{placement:i,ui:Fa,labels:L,enableColumnChooser:Ze,enableFilterChips:ia,enableResetLayout:ge,enableSavedViews:ra,enableColumnPinning:Se,columnVisibilityOptions:re,onColumnVisibilityChange:Re,onColumnPinningChange:ke,reorderColumn:Ta,table:fe,onResetColumnLayout:ba,savedViews:Qe,onCreateSavedView:$e,onApplySavedView:ea,onRenameSavedView:fa,onDeleteSavedView:aa,toolbarQueryValue:w,onToolbarQueryValueChange:W,activeColumnFilters:ya,onColumnFilterChange:Ce,onClearColumnFilters:Ae})}),Va=fe.getAllLeafColumns().filter(i=>!i.id.startsWith("__")&&i.getCanGroup()),je=fe.store.state.grouping.flatMap(i=>{let H=fe.getColumn(i);return H?[H]:[]}),pa=Ne&&x&&!!f,Ha=wa&&Pa.length>0,Ke=da&&!!_,Ma=da&&!!(U??_),Aa=L.selectedRows(P.length);return D.useEffect(()=>{Ie&&la.current?.focus();},[Ie]),!Ea&&!Ue&&!Ca&&!ca&&!ze&&!pa&&!Ha&&!Ke&&!Ma?null:jsxs("div",{className:"flex flex-col gap-4 pb-0",children:[xa&&(C||v)?jsxs("div",{className:"flex flex-col gap-1",children:[C?jsx("h2",{id:m,className:"text-lg font-semibold tracking-tight",children:C}):null,v?jsx("p",{id:N,className:`max-w-3xl text-sm ${a.mutedText??"opacity-70"}`,children:v}):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:[sa?jsxs(Fragment,{children:[jsx("div",{className:"hidden min-w-0 grow max-w-md @min-[768px]/data-table:block",children:jsxs(z,{className:"min-w-0",children:[jsx($,{value:w,onChange:i=>{W(i.target.value);},placeholder:G}),jsx(M,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})}),w?jsx(M,{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:()=>{W("");},"aria-label":L.clearSearch,title:L.clearSearch,children:jsx(u,{})})}):null]})}),jsxs(J,{children:[jsx(g,{asChild:true,children:jsxs(t,{type:"button",variant:Ie||w?"secondary":"outline",size:"icon-sm","aria-label":L.searchTable,"aria-pressed":Ie,className:`shrink-0 @min-[768px]/data-table:hidden ${Pe} ${a.toolbarInputButton??""}`,onClick:()=>{Da(i=>!i);},children:[jsx(s$1,{}),jsx("span",{className:"sr-only",children:L.searchTable})]})}),jsx(F,{children:L.searchTable})]})]}):null,ka?jsx("div",{className:"flex shrink-0 items-center gap-2",children:Fe.map(i=>{let H=!i.iconOnly&&!!i.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}`:i.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:i.variant??"outline",size:i.iconOnly?"icon":"default",onClick:()=>{i.onClick({rows:Z,openFileDialog:We});},disabled:i.disabled,"aria-label":i.label,title:i.iconOnly?void 0:i.label,children:[i.icon?jsx(i.icon,{}):null,i.iconOnly?jsx("span",{className:"sr-only",children:i.label}):H?jsx("span",{className:"hidden @min-[768px]/data-table:inline",children:i.label}):jsx("span",{children:i.label})]},i.key);return i.iconOnly?jsxs(J,{children:[jsx(g,{asChild:true,children:ne}),jsx(F,{children:i.label})]},i.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:U??_}):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:[P.length?jsx("div",{className:`hidden text-sm @min-[768px]/data-table:block ${a.mutedText??"opacity-70"}`,children:Aa}):null,P.length?A.map(i=>{let H=i.icon,ne={rows:Q,rowIds:P},b=typeof i.disabled=="function"?i.disabled(Q,ne):i.disabled;return jsxs(J,{children:[jsx(g,{asChild:true,children:jsxs(t,{type:"button",variant:i.variant??"secondary",size:"icon-sm",className:Pe,disabled:b,onClick:()=>{i.onClick(ne);},"aria-label":i.label,children:[H?jsx(H,{}):null,jsx("span",{className:"sr-only",children:i.label})]})}),jsx(F,{children:i.label})]},i.key)}):null,ze?jsxs(r,{children:[jsx(S,{asChild:true,children:jsxs(t,{type:"button",variant:"outline",size:"icon-sm","aria-label":L.tableOptions,className:`${Pe} ${a.toolbarInputButton??""}`,title:L.tableOptions,children:[jsx(a$5,{}),jsx("span",{className:"sr-only",children:L.tableOptions})]})}),jsxs(d,{align:"end",className:"w-56",children:[jsx(y,{children:L.tableOptions}),jsx(p,{children:E&&j?jsx(l,{checked:q$1,onCheckedChange:i=>{E(i===true);},children:L.showHiddenRows(j)}):null}),ve?jsxs(Fragment,{children:[jsx(V,{}),jsx(y,{children:L.density}),jsx(p,{children:[["compact",L.compactDensity],["comfortable",L.comfortableDensity],["spacious",L.spaciousDensity]].map(([i,H])=>jsx(l,{checked:Ge===i,onCheckedChange:()=>{X(i);},children:H},i))})]}):null,ua?qe("menu"):null,!Ze&&re.some(i=>i.canHide)?jsxs(Fragment,{children:[jsx(V,{}),jsx(y,{children:L.columns}),jsx(p,{children:re.filter(i=>i.canHide).map(i=>jsx(l,{checked:i.visible,onCheckedChange:H=>{Re?.(i.id,H===true);},children:i.label},i.id))})]}):null,Se&&!Ze?jsxs(Fragment,{children:[jsx(V,{}),jsxs(y,{children:[L.pinLeft," / ",L.pinRight]}),jsx(p,{children:re.map(i=>jsxs(u$1,{onSelect:H=>{H.preventDefault();},children:[jsx("span",{className:"min-w-0 flex-1 truncate",children:i.label}),jsx("button",{type:"button",className:"px-1 text-xs","aria-label":`${L.pinLeft}: ${i.label}`,onClick:H=>{H.stopPropagation(),ke(i.id,"left");},children:"L"}),jsx("button",{type:"button",className:"px-1 text-xs","aria-label":`${L.pinRight}: ${i.label}`,onClick:H=>{H.stopPropagation(),ke(i.id,"right");},children:"R"}),jsx("button",{type:"button",className:"px-1 text-xs","aria-label":`${L.unpin}: ${i.label}`,onClick:H=>{H.stopPropagation(),ke(i.id,false);},children:"-"})]},`pin-${i.id}`))})]}):null,Xe&&Va.length?jsxs(Fragment,{children:[jsx(V,{}),jsx(y,{children:L.grouping}),jsx(p,{children:Va.map(i=>{let H=typeof i.columnDef.header=="string"?i.columnDef.header:i.id,ne=i.getIsGrouped();return jsx(l,{checked:ne,onCheckedChange:()=>{i.toggleGrouping();},children:ne?L.ungroup(H):L.groupBy(H)},`group-${i.id}`)})})]}):null]})]}):null,Ne&&x&&f?jsxs(o,{children:[jsxs(J,{children:[jsx(g,{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:()=>{f("table");},children:[jsx(r$1,{}),jsx("span",{className:"sr-only",children:L.switchToTableView??ie.switchToTableView})]})}),jsx(F,{children:L.tableView??ie.tableView})]}),jsxs(J,{children:[jsx(g,{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:()=>{f("card");},children:[jsx(q,{}),jsx("span",{className:"sr-only",children:L.switchToCardView??ie.switchToCardView})]})}),jsx(F,{children:L.cardView??ie.cardView})]})]}):null,wa?Pa.map(i=>{let H=!i.iconOnly&&!!i.icon,ne=jsxs(t,{type:"button",variant:i.variant??"outline",size:i.iconOnly?"icon-sm":"default",onClick:()=>{i.onClick({rows:Z,openFileDialog:We});},disabled:i.disabled,"aria-label":i.label,title:i.iconOnly?void 0:i.label,className:`size-7 shrink-0 ${i.iconOnly?"":`${H?"px-0 @min-[768px]/data-table:px-2.5":""} @min-[768px]/data-table:h-8 @min-[768px]/data-table:w-fit`} ${i.iconOnly||H?Pe:""} ${a.toolbarInputButton??""}`,children:[i.icon?jsx(i.icon,{"data-icon":i.iconOnly?void 0:"inline-start"}):null,i.iconOnly?jsx("span",{className:"sr-only",children:i.label}):H?jsx("span",{className:"hidden @min-[768px]/data-table:inline",children:i.label}):jsx("span",{children:i.label})]},i.key);return i.iconOnly?jsxs(J,{children:[jsx(g,{asChild:true,children:ne}),jsx(F,{children:i.label})]},i.key):ne}):null]})]}),sa&&Ie?jsx("div",{"data-dtp-slot":"data-table-toolbar-compact-search",className:"min-w-0 @min-[768px]/data-table:hidden",children:jsxs(z,{children:[jsx($,{ref:la,value:w,onChange:i=>{W(i.target.value);},placeholder:G}),jsx(M,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})}),w?jsx(M,{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:()=>{W("");},"aria-label":L.clearSearch,title:L.clearSearch,children:jsx(u,{})})}):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(i=>jsx(T,{filter:i,labels:L,onColumnFilterChange:Ce},i.id)),Ee.some(i=>jn(i.value))?jsx(t,{type:"button",variant:"ghost",size:"sm",onClick:Ae,children:L.clearFilters}):null]}):null,ia?qe("chips"):null,Xe&&je.length?jsxs("div",{"data-dtp-slot":"data-table-grouping-bar","aria-label":L.grouping,className:"flex flex-wrap items-center gap-2",children:[jsxs("span",{className:"text-sm opacity-70",children:[L.grouping,":"]}),je.map((i,H)=>{let ne=typeof i.columnDef.header=="string"?i.columnDef.header:i.id,b=I=>{let K=[...fe.store.state.grouping],[de]=K.splice(H,1);de!==void 0&&(K.splice(I,0,de),fe.setGrouping(K));};return jsxs("div",{className:"inline-flex items-center rounded-md border",children:[jsx(t,{type:"button",variant:"ghost",size:"sm",disabled:H===0,onClick:()=>b(H-1),"aria-label":L.moveGroupingEarlier(ne),children:jsx("span",{"aria-hidden":"true",children:"\u2190"})}),jsxs(t,{type:"button",variant:"secondary",size:"sm",onClick:()=>i.toggleGrouping(),"aria-label":L.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:()=>b(H+1),"aria-label":L.moveGroupingLater(ne),children:jsx("span",{"aria-hidden":"true",children:"\u2192"})})]},`grouping-bar-${i.id}`)})]}):null]}),da&&_?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 T({filter:s,labels:C,onColumnFilterChange:m}){let[v,N]=D.useState("");if(s.type==="text")return jsxs(z,{className:"min-w-48 max-w-64",children:[jsx($,{value:typeof s.value=="string"?s.value:"",onChange:k=>{m(s.id,k.target.value);},placeholder:s.placeholder??s.label,"aria-label":`${C.filters}: ${s.label}`}),jsx(M,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})})]});if(s.type==="numberRange"||s.type==="dateRange"){let k=id(s.value),A=s.type==="numberRange"?"number":"date",Q=C.filterFrom??ie.filterFrom,P=C.filterTo??ie.filterTo;return jsxs("div",{role:"group","aria-label":`${C.filters}: ${s.label}`,className:"flex min-w-0 items-center gap-1.5",children:[jsxs(z,{className:"min-w-32 max-w-44",children:[jsx($,{type:A,inputMode:A==="number"?"decimal":void 0,value:k.from??"",min:s.min,max:s.max,step:A==="number"?s.step:void 0,onChange:q=>{m(s.id,{...k,from:qi(q.target.value,A)});},"aria-label":`${s.label}: ${Q}`}),jsx(M,{align:"inline-start",children:Q})]}),jsxs(z,{className:"min-w-32 max-w-44",children:[jsx($,{type:A,inputMode:A==="number"?"decimal":void 0,value:k.to??"",min:s.min,max:s.max,step:A==="number"?s.step:void 0,onChange:q=>{m(s.id,{...k,to:qi(q.target.value,A)});},"aria-label":`${s.label}: ${P}`}),jsx(M,{align:"inline-start",children:P})]})]})}let w=s.type==="boolean",G=s.type==="faceted",W=[{label:s.trueLabel??C.filterTrue??ie.filterTrue,value:"true"},{label:s.falseLabel??C.filterFalse??ie.filterFalse,value:"false"}],_=w?W:s.options,U=G&&v?_.filter(k=>k.label.toLocaleLowerCase().includes(v.toLocaleLowerCase())):_,R=typeof s.value=="string"||typeof s.value=="boolean"?String(s.value):"",f=Array.isArray(s.value)?s.value.map(String):R?[R]:[],x=f.length===0?s.label:`${s.label}: ${f.length===1?_.find(k=>k.value===String(f[0]))?.label??f[0]:f.length}`;return jsxs(r,{children:[jsx(S,{asChild:true,children:jsx(t,{type:"button",variant:"outline",size:"sm",children:x})}),jsxs(d,{align:"start",className:"w-56",children:[jsx(y,{children:s.label}),G&&s.searchable!==false?jsx("div",{className:"px-2 pb-2",children:jsxs(z,{children:[jsx($,{value:v,onChange:k=>{N(k.target.value);},placeholder:s.searchPlaceholder??C.facetSearch(s.label),"aria-label":C.facetSearch(s.label)}),jsx(M,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})})]})}):null,jsxs(p,{children:[s.type==="select"||w||G?jsx(u$1,{onClick:()=>{m(s.id,"");},children:C.allFilterOptions??ie.allFilterOptions}):null,U.map(k=>jsxs(l,{checked:f.includes(k.value),disabled:k.disabled,onCheckedChange:A=>{if(s.type==="select"||w){m(s.id,A===true?k.value:"");return}let Q=new Set(f);A===true?Q.add(k.value):Q.delete(k.value),m(s.id,Array.from(Q));},children:[jsx("span",{className:"min-w-0 flex-1 truncate",children:k.label}),k.count!==void 0?jsx("span",{className:"ml-3 tabular-nums opacity-70",children:k.count}):null]},k.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 id(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 qi(e,a){if(e)return a==="number"?Number(e):e}var rd=D.lazy(async()=>({default:(await import('./data-table-virtual-table-panel-UK5AMT4Q.js')).DataTableVirtualTablePanel}));function Ji(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(rd,{...e})}):jsx(e$1,{...e})}var ld="data-table-pro:saved-views:";var Zi=["sorting","columnVisibility","columnFilters","grouping","columnOrder","columnPinning","rowPinning","columnSizing","density","viewMode","showHiddenRows","globalFilter"],Xi=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 r=e.version??1,l=o.views;if(o.version!==r){if(!e.migrate)return [];try{l=e.migrate({version:o.version,views:o.views},r);}catch(d){return e.onError?.({error:d,operation:"migrate"}),[]}}return Array.isArray(l)?l.map(d=>dd(d,e.slices)).filter(d=>!!d):[]}function er(e,a,t){let o=a.trim();if(!e||!o)return;let r=new Date().toISOString(),l={id:Td(),name:o,createdAt:r,updatedAt:r,state:sd(t,e.slices)},d=[...Wa(e),l];return Wn(e,d,"create")?Qn(l):void 0}function ar(e,a,t){let o=t.trim();if(!e||!o)return;let r,l=Wa(e).map(d=>d.id!==a?d:(r={...d,name:o,updatedAt:new Date().toISOString()},r));if(r)return Wn(e,l,"rename")?Qn(r):void 0}function tr(e,a){if(!e)return false;let t=Wa(e),o=t.filter(r=>r.id!==a);return o.length!==t.length&&Wn(e,o,"delete")}function nr(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 r;try{let d={version:e.version??1,views:a};r=(e.serialize??JSON.stringify)(d);}catch(d){return e.onError?.({error:d,operation:"serialize"}),false}try{o.setItem(Yn(e.key),r);}catch(d){return e.onError?.({error:d,operation:"write"}),false}let l=a.map(Qn);return e.onChange?.(l,t),true}function sd(e,a){let t=new Set(a??Zi),o={};for(let r of Object.keys(e))t.has(r)&&Object.assign(o,{[r]:cd(r,e[r])});return o}function dd(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:or(e.state,a)}}function or(e,a){if(!Ye(e))return {};let t=new Set(a??Zi),o={},r=ud(e.sorting);t.has("sorting")&&r&&(o.sorting=r);let l=pd(e.pagination);t.has("pagination")&&l&&(o.pagination=l);let d=Kn(e.rowSelection);t.has("rowSelection")&&d&&(o.rowSelection=d);let p=Kn(e.columnVisibility);t.has("columnVisibility")&&p&&(o.columnVisibility=p);let u=gd(e.columnFilters);t.has("columnFilters")&&u&&(o.columnFilters=u);let y=lt(e.grouping);t.has("grouping")&&y&&(o.grouping=y);let V=e.expanded===true?true:Kn(e.expanded);t.has("expanded")&&V!==void 0&&(o.expanded=V);let S=lt(e.columnOrder);t.has("columnOrder")&&S&&(o.columnOrder=S);let z=md(e.columnPinning);t.has("columnPinning")&&z&&(o.columnPinning=z);let M=bd(e.rowPinning);t.has("rowPinning")&&M&&(o.rowPinning=M);let $=fd(e.columnSizing);return t.has("columnSizing")&&$&&(o.columnSizing=$),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:or(e.state,Object.keys(e.state))}}function cd(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 ud(e){if(Array.isArray(e))return e.filter(a=>Ye(a)&&typeof a.id=="string").map(a=>({id:a.id,desc:!!a.desc}))}function pd(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 gd(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 bd(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 fd(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 Td(){return typeof globalThis.crypto?.randomUUID=="function"?globalThis.crypto.randomUUID():(Xi+=1,`view-${Date.now().toString(36)}-${Xi.toString(36)}`)}function Yn(e){return `${ld}${e}`}function Ye(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ir({columns:e,currentColumnFilters:a,currentColumnPinning:t,effectiveColumnVisibility:o,enableColumnFilters:r,handleColumnFiltersChange:l$2,handleColumnPinningChange:d,labels:p$1,table:u,toolbarActions:y,visibleData:V,csvExport:S}){let z=D.useMemo(()=>k(e).map(({column:s$1,index:C$1})=>{let m=s(s$1,C$1),v=s$1.header,N=u$1(s$1),w=typeof v=="string"?v:N?C(N):C(m),G=t.left?.includes(m)===true?"left":t.right?.includes(m)===true?"right":false;return {id:m,label:w,visible:o[m]!==false,canHide:s$1.enableHiding!==false,pinned:G}}),[e,t,o]),M=D.useMemo(()=>r===false?[]:k(e).flatMap(({column:s$1,index:C$1})=>{let m=s$1.meta?.filter;if(!m)return [];let v=s(s$1,C$1),N=s$1.header,w=u$1(s$1),G=m.label??(typeof N=="string"?N:w?C(w):C(v)),W=a.find(f=>f.id===v),_=m.faceting?.options,U=m.type==="numberRange"?u.getColumn(v)?.getFacetedMinMaxValues():void 0,R=m.type==="faceted"&&_?typeof _=="function"?_({rows:V}):_:m.type==="faceted"?Array.from(u.getColumn(v)?.getFacetedUniqueValues()??[]).map(([f,x])=>({label:m.faceting?.getOptionLabel?.(f)??String(f),value:String(f),count:x})):typeof m.options=="function"?m.options({rows:V}):m.options??[];return [{id:v,label:G,type:m.type,value:W?.value,placeholder:m.placeholder,options:l(R),searchable:m.faceting?.searchable,searchPlaceholder:m.faceting?.searchPlaceholder,trueLabel:m.trueLabel,falseLabel:m.falseLabel,min:m.min??U?.[0],max:m.max??U?.[1],step:m.step}]}),[e,a,r,u,V]),$=D.useCallback((s,C)=>{l$2(m=>{let v=m.filter(N=>N.id!==s);return n(C)&&v.push({id:s,value:C}),v});},[l$2]),J=D.useCallback(()=>{l$2([]);},[l$2]),F=D.useCallback((s,C)=>{d(m=>{let v=(m.left??[]).filter(w=>w!==s),N=(m.right??[]).filter(w=>w!==s);return C==="left"&&v.push(s),C==="right"&&N.push(s),{left:v,right:N}});},[d]),g=D.useCallback(()=>{if(S)return p({csvExport:S,table:u,labels:p$1})},[S,p$1,u]),T=D.useMemo(()=>S?[...y??[],{key:"__csv_export__",label:p$1.exportCsv,icon:l$1,placement:"trailing",onClick:g}]:y??[],[S,g,p$1.exportCsv,y]);return {columnVisibilityOptions:z,effectiveToolbarActions:T,handleClearColumnFilters:J,handleToolbarColumnFilterChange:$,handleToolbarColumnPinningChange:F,toolbarColumnFilters:M}}function lr({columns:e,data:a,getRowId:t}){let o=D.useRef({columns:e,data:a,getRowId:t}),r=D.useRef(new Set);D.useEffect(()=>{if(!Dd())return;let l=o.current;l.data!==a&&rr(l.data,a)&&!r.current.has("data")&&Xt(r.current,"data","The data array identity changed. Keep rows immutable and memoize unchanged data so filtering, row models, and virtual measurements can be reused."),l.columns!==e&&rr(l.columns,e)&&!r.current.has("columns")&&Xt(r.current,"columns","The columns array identity changed. Memoize stable column definitions so the search index and table column model can be reused."),l.getRowId!==t&&!r.current.has("getRowId")&&Xt(r.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 p=0;pObject.is(t,a[o]))}function Xt(e,a,t){e.add(a),console.warn(`[data-table-pro] ${t}`);}function Dd(){return globalThis.process?.env?.NODE_ENV!=="production"}var Cd=D.lazy(()=>import('./data-table-auto-page-size-EICVZJQ5.js'));function Du(e){return yd(e)}function yd(e,a={}){let t$1=a.CardPanel??Ci,o=a.TablePanel??Ji,r$1=e.classNames??{},{rootClassName:l,Button:d,Checkbox:p$1,Input:u,ScrollArea:y,ScrollBar:V,Skeleton:S,Table:z,TableBody:M,TableCell:$,TableFooter:J="tfoot",TableHead:F,TableHeader:g$1,TableRow:T,Tooltip:s$1,TooltipContent:C,TooltipProvider:m=D.Fragment,TooltipTrigger:v}=e,N=ji(e),w=Qi(e),{DataTableFooter:G}=Ki(e),W=Yi(e),_=$i(e,w),U=D.lazy(async()=>{let{createDataTableStateOverlay:f}=await import('./data-table-state-overlay-AQ7VU6EM.js');return {default:f(e)}}),R={minSize:80,size:180,maxSize:720};return function({columns:x,data:k$1,getRowId:A,children:Q,title:P,description:q,toolbarQueryValue:j,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:L,hasNextPage:ye,sorting:We,onSortingChange:Xe,manualSorting:Ze=false,grouping:ia,onGroupingChange:ge,manualGrouping:ra=false,enableGrouping:Qe=false,groupedColumnMode:ba="reorder",aggregationFns:$e,pageIndex:ea,pageSize:fa,autoPageSize:aa=false,onPageIndexChange:Ta,onPageSizeChange:fe,pageCount:la,manualPagination:Ie=false,rowSelection:Da,onRowSelectionChange:Pe,enableRowSelection:Fe=false,enableMultiRowSelection:Pa=true,enableSubRowSelection:xa=true,getRowCanSelect:sa,rowSelectionSelectAllScope:ka="page",expanded:wa,onExpandedChange:me,getSubRows:Ne,manualExpanding:da=false,paginateExpandedRows:Ea,filterFromLeafRows:Ue,maxLeafRowFilterDepth:Ca,detailPanel:ca,getRowCanExpand:ze,renderExpandedRow:ua,columnOrder:ya,onColumnOrderChange:Fa,enableColumnReordering:qe=false,columnGroupHeaderHeight:Va,columnPinning:je,onColumnPinningChange:pa,enableColumnPinning:Ha=false,rowPinning:Ke,onRowPinningChange:Ma,enableRowPinning:Aa=false,keepPinnedRows:i=true,toolbarActions:H=[],selectionActions:ne=[],rowActions:b=[],csvExport:I,clipboard:K,enableCellSelection:de=false,cellSelection:le,defaultCellSelection:oe,onCellSelectionChange:Ba,gridCommands:ta,density:Ia,onDensityChange:Zt,enableDensityToggle:en=false,columnPrefsKey:B,persistence:Ve,savedViews:ce,toolbarDataOperations:ga,initialState:te,state:be,onStateChange:he,apiRef:cr,labels:Xn,summaryRows:ur=[],cardRenderer:an,cardSizing:pr,cardGridClassName:gr,cardClassName:mr,viewMode:Zn,onViewModeChange:br,enableViewToggle:fr=false,enablePrint:eo=false,enableFullscreen:Ct=false,emptyState:Tr,stateOverlay:Qa,isLoading:ao=false,loadingRowCount:Dr,getRowLoadingState:wr,hiddenRows:to,showHiddenRows:no,onShowHiddenRowsChange:Cr,infiniteScroll:yt,editableRows:za,columnVisibility:oo,onColumnVisibilityChange:yr,columnSizing:io,onColumnSizingChange:hr,enableColumnResizing:ro=false,columnResizeMode:Rr="onEnd",layoutMode:ht="fill",stickyHeader:Sr=true,scrollbarVisibility:lo,showFooter:vr=true,showToolbar:so=true,dir:tn="ltr",flexGrow:qa=true,toolbarVisibility:co,className:Pr,tableClassName:xr,tableContainerClassName:uo,stripedRows:po=false,getRowClassName:go,onRowClick:nn,onActionError:st,dragAndDrop:Ya,fileUpload:ha,virtualization:on,accessibility:mo,interactiveGrid:Rt}){let Ga=D.useRef(null),bo=D.useRef(null),fo=D.useRef(null),kr=D.useRef(null),rn=D.useRef(null),Er=D.useRef(null),[To,ln]=D.useState(0),Fr=D.useId(),Vr=D.useId();lr({columns:x,data:k$1,getRowId:A}),D.useMemo(()=>t(x),[x]);let Me=D.useMemo(()=>Si(Xn),[Xn]),sn=ga===true?{columnChooser:true,savedViews:true,resetLayout:true}:ga===false?{}:ga??{},dn=mo?.mode==="grid"||Rt===true||typeof Rt=="object",[La,St]=xe({defaultValue:oe??null,onChange:Ba,value:le}),Mr=j??be?.globalFilter,Ar=We??be?.sorting,Ir=ia??be?.grouping,vt=ea??be?.pagination?.pageIndex,Ja=fa??be?.pagination?.pageSize,zr=Da??be?.rowSelection,Lr=oo??be?.columnVisibility,Nr=Ee??be?.columnFilters,Or=wa??be?.expanded,_r=ya??be?.columnOrder,Hr=je??be?.columnPinning,Br=Ke??be?.rowPinning,Gr=io??be?.columnSizing,$r=Ia??be?.density,Ur=Zn??be?.viewMode,jr=no??be?.showHiddenRows,Do=so&&(co?.title??true),wo=Do&&P?Fr:void 0,Co=Do&&q?Vr:void 0;Rd(be,{columnFilters:Ee!==void 0,columnOrder:ya!==void 0,columnPinning:je!==void 0,rowPinning:Ke!==void 0,columnSizing:io!==void 0,columnVisibility:oo!==void 0,density:Ia!==void 0,expanded:wa!==void 0,grouping:ia!==void 0,globalFilter:j!==void 0,pagination:ea!==void 0||fa!==void 0,rowSelection:Da!==void 0,showHiddenRows:no!==void 0,sorting:We!==void 0,viewMode:Zn!==void 0});let Kr=Be("globalFilter",E,he),Wr=Be("sorting",Xe,he),Qr=Be("grouping",ge,he),qr=Be("rowSelection",Pe,he),Yr=Be("columnVisibility",yr,he),Jr=Be("columnFilters",Ce,he),Xr=Be("expanded",me,he),Zr=Be("columnOrder",Fa,he),el=Be("columnPinning",pa,he),al=Be("rowPinning",Ma,he),tl=Be("columnSizing",hr,he),nl=Be("density",Zt,he),ol=Be("viewMode",br,he),il=Be("showHiddenRows",Cr,he),Pt=D.useCallback(n=>{Ta?.(n),he?.(h=>({...h,pagination:{pageIndex:n,pageSize:Ja??h.pagination.pageSize}}));},[Ta,he,Ja]),cn=D.useCallback(n=>{fe?.(n),he?.(h=>({...h,pagination:{pageIndex:vt??h.pagination.pageIndex,pageSize:n}}));},[fe,he,vt]),Le=D.useCallback((n,h)=>{hd(h,n,st);},[st]),yo=D.useMemo(()=>b.map(n=>({...n,onClick:h=>{Le({actionKey:n.key,row:h,source:"rowAction"},()=>n.onClick(h));}})),[b,Le]),ho=D.useMemo(()=>nn?n=>{Le({row:n.row,source:"rowClick"},()=>nn(n));}:void 0,[nn,Le]),rl=D.useCallback((n,h)=>{st?.({error:n,row:h,source:"edit"});},[st]),{containerWidth:ll,currentColumnFilters:xt,currentColumnOrder:un,currentColumnPinning:kt,currentRowPinning:pn,currentColumnSizing:Xa,currentColumnVisibility:Ro,currentDensity:dt,currentExpanded:Et,currentGrouping:gn,currentPagination:na,currentRowSelection:Ft,currentShowHiddenRows:mn,currentSorting:Vt,currentViewMode:Za,effectiveColumnVisibility:Mt,globalFilterValue:sl,handleDensityChange:bn,handleShowHiddenRowsChange:fn,handleViewModeChange:Tn,localSearchValue:$a,resolvedLoadingRowCount:dl,resolvedToolbarQueryPlaceholder:cl,selectedRowIds:ul,selectedRows:pl,setCurrentColumnFilters:So,setCurrentColumnOrder:gl,setCurrentColumnPinning:At,setCurrentRowPinning:ml,setCurrentColumnVisibility:bl,setCurrentExpanded:vo,setCurrentGrouping:fl,setCurrentRowSelection:It,setCurrentSorting:Tl,setLocalColumnSizing:Dl,setLocalPagination:Dn,setLocalSearchValue:wn,shouldRenderInitialLoading:Cn,tableData:wl,tableGetRowId:Cl,visibleData:yl}=_i({columnFilters:Nr,columnOrder:_r,columnPinning:Hr,rowPinning:Br,columnSizing:Gr,columnPrefsKey:B,persistence:Ve,columnVisibility:Lr,columns:x,containerRef:Ga,data:k$1,density:$r,enableRowSelection:Fe,enableToolbarQueryFiltering:Se,expanded:Or,grouping:Ir,getSubRows:Ne,getRowId:A,hiddenRows:to,isLoading:ao,loadingRowCount:Dr,manualFiltering:Re,initialState:te,onColumnFiltersChange:Jr,onColumnOrderChange:Zr,onColumnPinningChange:el,onRowPinningChange:al,onColumnSizingChange:tl,onColumnVisibilityChange:Yr,onDensityChange:nl,onExpandedChange:Xr,onGroupingChange:Qr,onPageIndexChange:Pt,onRowSelectionChange:qr,onShowHiddenRowsChange:il,onSortingChange:Wr,onToolbarQueryValueChange:Kr,onViewModeChange:ol,pageIndex:vt,pageSize:Ja,resolvedLabels:Me,rowSelection:zr,rowsPerPageOptions:ve,selectionActions:ne,showHiddenRows:jr,sorting:Ar,toolbarQueryDebounceMs:re,toolbarQueryPlaceholder:Z,toolbarQueryValue:Mr,viewMode:Ur}),yn=!!(ua&&!ca&&!Ne),et=ca??(ua?{getRowCanExpand:Ne?void 0:ze,render:ua}:void 0),[hn,Po]=xe({defaultValue:()=>yn?te?.expanded??{}:{},onChange:yn?vo:et?.onExpandedChange,value:yn?Et:et?.expanded}),{cancelEditing:Rn,clearEditError:xo,draftValues:hl,editErrors:Sn,editingRowId:vn,isEditDirty:Pn,isSavingEdit:xn,saveEdit:kn,setDraftValues:Rl,setEditingRowId:Sl,startEditingRow:vl}=a$3({columns:x,editableRows:za,onError:rl}),Pl=D.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,xl=D.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]),kl=aa===true||ko!==void 0,zt=D.useCallback(()=>typeof window>"u"||typeof window.print!="function"?false:(window.print(),true),[]),Lt=D.useCallback(async()=>{let n=Ga.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,El]=D.useState(false);D.useEffect(()=>{if(!Ct||typeof document>"u")return;let n=()=>{El(document.fullscreenElement===Ga.current);};return n(),document.addEventListener("fullscreenchange",n),()=>document.removeEventListener("fullscreenchange",n)},[Ct]);let Fl=D.useCallback(()=>{ha?.disabled||bo.current?.click();},[ha?.disabled]),Vl=D.useCallback(n=>{Le({source:"fileUpload"},()=>ha?.onFilesSelected(n));},[ha,Le]),Ml=D.useMemo(()=>{if(ht!=="fill")return false;let n=k(x).filter(({column:h,index:se})=>Mt[s(h,se)]!==false);return n.length>0&&n.every(({column:h,index:se})=>{let ut=s(h,se);return g(h)||Object.prototype.hasOwnProperty.call(Xa,ut)})},[x,Xa,Mt,ht]),Al=vi({Button:d,Checkbox:p$1,DataTableRowActions:w,Tooltip:s$1,TooltipContent:C,TooltipTrigger:v,cancelEditing:Rn,columns:x,editableRows:za,editErrors:Sn,editingRowId:vn,enableRowSelection:Fe,enableRowPinning:Aa,hasTreeExpansion:!!Ne,isSavingEdit:xn,isEditDirty:Pn,includeFillSpacer:Ml,labels:Me,lastSelectedRowIdRef:Er,detailPanel:et,detailExpanded:hn,onDetailExpandedChange:Po,rowSelectionSelectAllScope:ka,rowActions:yo,saveEdit:kn,startEditingRow:vl,tableRef:rn}),Il=D.useMemo(()=>i$1(x),[x]),{effectivePageCount:zl,footerTotalRowCount:Ll,handleFooterPageIndexChange:Nl,handleFooterPageSizeChange:Ol,isPageCountKnown:_l,renderedRows:Fo,topPinnedRows:Hl,bottomPinnedRows:Bl,reorderColumn:Vo,rowsToRender:Gl,sentinelRef:Mo,table:ae,virtualPaddingBottom:$l,virtualPaddingTop:Ul,visibleLeafColumns:Vn}=Vi({autoResetPageIndex:false,columnGroupPaths:Il,columnResizeMode:Rr,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:sa,getRowCanExpand:ze,getSubRows:Ne,aggregationFns:$e,groupedColumnMode:ba,globalFilterFn:ke,globalFilterValue:sl,hasNextPage:ye,handleColumnFiltersChange:So,handleColumnOrderChange:gl,handleColumnPinningChange:At,handleRowPinningChange:ml,handleColumnVisibilityChange:bl,handleExpandedChange:vo,handleGroupingChange:fl,infiniteScroll:yt,keepPinnedRows:i,manualFiltering:Re,manualGrouping:ra,manualExpanding:da,manualPagination:Ie,manualSorting:Ze,onActionError:st,onPageIndexChange:Pt,onPageSizeChange:cn,pageCount:la,pageIndex:vt,pageSize:Ja,paginateExpandedRows:Ea,filterFromLeafRows:Ue,maxLeafRowFilterDepth:Ca,setCurrentRowSelection:It,setCurrentSorting:Tl,setLocalColumnSizing:Dl,setLocalPagination:Dn,shouldRenderInitialLoading:Cn,tableColumns:Al,tableData:wl,tableGetRowId:Cl,tableRef:rn,totalRowCount:L,virtualization:on}),Ao=Bi({columns:x,columnSizing:Xa,editableRows:!!za,enableRowSelection:Fe,hasRowActions:b.length>0,hasRowExpansion:!!(Ne||et),layoutMode:ht,uiClassNames:r$1,visibleLeafColumns:Vn}),{explicitlySizedColumnIds:Nt,fillMinWidth:jl,getColumnLayout:Kl}=Ao,Wl=D.useMemo(()=>new Set(k(x).flatMap(({column:n,index:h})=>Object.prototype.hasOwnProperty.call(n,"cell")&&typeof n.cell=="function"?[s(n,h)]:[])),[x]),Ql=Vn.length,ql=D.useMemo(()=>({Checkbox:p$1,Input:u,Skeleton:S,TableCell:$,TableRow:T}),[]),Yl=D.useMemo(()=>k(x).some(({column:n})=>n.meta?.cardTitle),[x]),Jl=D.useCallback((n,h)=>{Nt.has(n)||Object.prototype.hasOwnProperty.call(ae.store.state.columnSizing,n)||flushSync(()=>{ae.setColumnSizing(se=>({...se,[n]:h}));});},[Nt,ae]),Xl=D.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??Tr,Io=typeof An=="function"?An({rows:Mn,toolbarQueryValue:$a}):An,zo=D.useMemo(()=>Qa?{...Qa,onRetry:Qa.onRetry?()=>Le({source:"retry"},Qa.onRetry):void 0}:void 0,[Le,Qa]),Lo=zo?.error!=null?jsx(D.Suspense,{fallback:null,children:jsx(U,{labels:Me,overlay:zo,rows:Mn,toolbarQueryValue:$a})}):void 0,{columnVisibilityOptions:Zl,effectiveToolbarActions:No,handleClearColumnFilters:es,handleToolbarColumnFilterChange:as,handleToolbarColumnPinningChange:ts,toolbarColumnFilters:ns}=ir({columns:x,currentColumnFilters:xt,currentColumnPinning:kt,csvExport:I,effectiveColumnVisibility:Mt,enableColumnFilters:Ae,handleColumnFiltersChange:So,handleColumnPinningChange:At,labels:Me,table:ae,toolbarActions:H,visibleData:yl}),os=D.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]),is=D.useMemo(()=>ne.map(n=>({...n,onClick:h=>{Le({actionKey:n.key,source:"selectionAction"},()=>n.onClick(h));}})),[Le,ne]),Oo=D.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:mn,globalFilter:$a}),[xt,un,kt,pn,Xa,Ro,dt,Et,gn,na,Ft,mn,Vt,Za,$a]),ct=D.useCallback(()=>vd(Oo),[Oo]),Na=D.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&&bn(n.density),n.viewMode!==void 0&&Tn(n.viewMode),n.showHiddenRows!==void 0&&fn(n.showHiddenRows),n.globalFilter!==void 0&&wn(n.globalFilter);},[bn,fn,Tn,wn,At,It,ae]),at=D.useCallback(()=>zi(Ve??B),[B,Ve]),In=D.useCallback(n=>{n?.clearPersistence&&at(),Na({columnVisibility:te?.columnVisibility??{},columnOrder:te?.columnOrder??[],columnPinning:te?.columnPinning??r(x),rowPinning:te?.rowPinning??{top:[],bottom:[]},columnSizing:te?.columnSizing??{}});},[at,x,te,Na]),_o=D.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??r(x),rowPinning:te?.rowPinning??{top:[],bottom:[]},columnSizing:te?.columnSizing??{},density:te?.density??"comfortable",viewMode:te?.viewMode??"table",showHiddenRows:te?.showHiddenRows??false,globalFilter:te?.globalFilter??""});},[at,x,te,Na,ve]),Ho=D.useCallback(()=>Wa(ce),[ce]),Ot=D.useCallback(n=>er(ce,n,ct()),[ct,ce]),zn=D.useCallback(n=>{let h=Wa(ce).find(se=>se.id===n);return h?(Na(h.state),ce?.onApply?.(h),true):false},[Na,ce]),_t=D.useCallback((n,h)=>ar(ce,n,h),[ce]),Ht=D.useCallback(n=>tr(ce,n),[ce]),Bo=D.useCallback(()=>nr(ce),[ce]),rs=D.useMemo(()=>Wa(ce),[ce,To]),ls=D.useCallback(n=>{let h=Ot(n);return h&&ln(se=>se+1),h},[Ot]),ss=D.useCallback((n,h)=>{let se=_t(n,h);return se&&ln(ut=>ut+1),se},[_t]),ds=D.useCallback(n=>{let h=Ht(n);return h&&ln(se=>se+1),h},[Ht]),Go=D.useCallback(n=>p({csvExport:n??(I||true),labels:Me,table:ae}),[I,Me,ae]),Ln=D.useCallback(async n=>{let{copyDataTableToClipboard:h}=await import('./data-table-clipboard-RNEFAPJB.js');return h({clipboard:n??(K?.copy===false?false:La?{...K?.copy===true?{}:K?.copy,scope:"cellSelection"}:K?.copy??true),cellSelection:La,table:ae})},[K?.copy,La,ae]),$o=D.useCallback((n,h="top")=>{try{let se=ae.getRow(n,!0);return se.getCanPin()?(se.pin(h),!0):!1}catch{return false}},[ae]),Uo=D.useCallback(n=>{try{let h=ae.getRow(n,!0);return h.getCanPin()?(h.pin(!1),!0):!1}catch{return false}},[ae]);return D.useImperativeHandle(cr,()=>({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:()=>{Ga.current?.focus();},scrollToRow:n=>sr(Ga.current,"row",n),scrollToColumn:n=>sr(Ga.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(m,{children:jsxs("div",{ref:Ga,"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",l),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}!K?.copy||!(n.ctrlKey||n.metaKey)||n.key.toLowerCase()!=="c"||Jn(n.target)||(n.preventDefault(),Le({source:"clipboardCopy"},async()=>{await Ln(K.copy===true?void 0:La&&typeof K.copy=="object"&&!K.copy.scope?{...K.copy,scope:"cellSelection"}:K.copy);}));},onPaste:n=>{let h=K?.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-RNEFAPJB.js');return h.onPaste({table:ae,text:se,values:ut(se)})}));},children:[kl?jsx(D.Suspense,{fallback:null,children:jsx(Cd,{config:ko,currentPageSize:na.pageSize,enabled:true,onPageSizeChange:xl,viewportElement:En,viewportHeight:Fn})}):null,ha?jsx("input",{ref:bo,className:"hidden",type:"file",accept:ha.accept,multiple:ha.multiple??true,disabled:ha.disabled,onChange:n=>{let h=n.currentTarget.files;h?.length&&Vl(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",Pr),children:[so?jsx(Ri,{allRows:Mn,columnFilters:ns,columnVisibilityOptions:Zl,compactToolbar:X,customToolbar:Ge,DataTableToolbar:W,density:dt,description:q,descriptionId:Co,effectiveToolbarActions:os,enableColumnPinning:Ha,enableGrouping:Qe,enableToolbarColumnChooser:sn.columnChooser===true,enableToolbarFilterChips:!!ga,enableToolbarResetLayout:sn.resetLayout===true,enableToolbarSavedViews:sn.savedViews===true&&!!ce,enableDensityToggle:en,enableViewToggle:fr&&!!an,hiddenRowsLabel:to?.label,labels:Me,onClearColumnFilters:es,onColumnFilterChange:as,onColumnPinningChange:ts,onDensityChange:bn,onShowHiddenRowsChange:fn,onToolbarQueryValueChange:wn,reorderColumn:Vo,onResetColumnLayout:In,onCreateSavedView:ls,onApplySavedView:zn,onRenameSavedView:ss,onDeleteSavedView:ds,onViewModeChange:Tn,openFileDialog:ha?Fl:void 0,selectedRowIds:ul,selectedRows:pl,selectionActions:is,savedViews:rs,showHiddenRows:mn,table:ae,title:P,titleId:wo,toolbarQueryPlaceholder:cl,toolbarQueryValue:$a,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:gr,cardSizing:pr,cardRenderer:an,containerWidth:ll,currentDetailExpanded:hn,currentRowSelection:Ft,DataTableCardView:_,DataTableEmptyState:N,dragAndDrop:Ya,editableRows:za,editingRowId:vn,emptyNode:Io,stateOverlayNode:Lo,enableRowSelection:Fe,flexGrow:qa,getRowClassName:go,hasCardTitle:Yl,infiniteScroll:yt,localSearchValue:$a,onRowClick:ho,renderedRows:Fo,detailPanel:et,resolvedLabels:Me,resolvedLoadingRowCount:dl,rowActions:yo,ScrollArea:y,scrollbarVisibility:lo,sentinelRef:Mo,setCurrentDetailExpanded:Po,setCurrentRowSelection:It,setEditingRowId:Sl,shouldRenderInitialLoading:Cn,tableContainerClassName:uo,uiClassNames:r$1,virtualization:on}):jsx(o,{ariaDescribedBy:Co,ariaLabelledBy:wo,bodyRowComponents:ql,columnLayouts:Ao.columnLayouts,currentDensity:dt,columnGroupHeaderHeight:Va,currentDetailExpanded:hn,currentSorting:Vt,dir:tn,DataTableEmptyState:N,dragAndDrop:Ya,draggedColumnIdRef:kr,draftValues:hl,editingRowId:vn,editingContext:Pl,emptyNode:Io,stateOverlayNode:Lo,enableColumnReordering:qe,enableColumnResizing:ro,explicitCustomCellColumnIds:Wl,fillMinWidth:jl,flexGrow:qa,getColumnLayout:Kl,getRowClassName:go,getRowLoadingState:wr,infiniteScroll:yt,layoutMode:ht,localSearchValue:$a,onRowClick:ho,primeColumnForResize:Jl,renderedRows:Fo,detailPanel:et,topPinnedRows:Hl,bottomPinnedRows:Bl,reorderColumn:Vo,resetColumnSize:Xl,resolvedLabels:Me,rowsToRender:Gl,ScrollArea:y,ScrollBar:V,scrollbarVisibility:lo,sentinelRef:Mo,setDraftValues:Rl,shouldRenderInitialLoading:Cn,stickyHeader:Sr,stripedRows:po,summaryRows:ur,table:ae,tableClassName:xr,tableContainerClassName:uo,Table:z,TableBody:M,TableCell:$,TableFooter:J,TableHead:F,TableHeader:g$1,TableRow:T,tableScrollContainerRef:fo,tableScrollElement:En,uiClassNames:r$1,viewportHeight:Fn,virtualization:on,gridMode:dn,gridPageSize:mo?.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:L,virtualPaddingBottom:$l,virtualPaddingTop:Ul,visibleLeafColumnCount:Ql,visibleLeafColumns:Vn})}),jsx(yi,{currentPagination:na,DataTableFooter:G,effectivePageCount:zl,footerTotalRowCount:Ll,handleFooterPageIndexChange:Nl,handleFooterPageSizeChange:Ol,labels:Me,pageCountKnown:_l,rowsPerPageOptions:ve,showFooter:vr&&!yt?.enabled,children:Q})]})})]})})}}function hd(e,a,t){let o;try{o=e();}catch(r){t?.({...a,error:r});return}Promise.resolve(o).catch(r=>{t?.({...a,error:r});});}function Be(e,a,t){let o=D.useCallback(r=>{a?.(r),t?.(l=>({...l,[e]:r}));},[e,a,t]);return a||t?o:void 0}function Rd(e,a){let t=D.useRef(new Set);D.useEffect(()=>{if(!(!e||!Sd()))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 Sd(){return globalThis.process?.env?.NODE_ENV!=="production"}function vd(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 sr(e,a,t){if(!e)return false;let o=a==="row"?"data-row-id":"data-column-id",r=Array.from(e.querySelectorAll(`[${o}]`)).find(l=>l.getAttribute(o)===t);return r?(r.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{Ci as a,yi as b,Ri as c,vi as d,xe as e,Vi as f,_i as g,Bi as h,Du as i,yd as j};//# sourceMappingURL=chunk-XZTPNWJD.js.map -//# sourceMappingURL=chunk-XZTPNWJD.js.map \ No newline at end of file +import {a as a$4}from'./chunk-EJHT5JBZ.js';import {a as a$3,e as e$1}from'./chunk-YESJ52D2.js';import {d,a as a$1,b,h,k,s,x,j,B,r,c as c$1,e,g,f,v,w,t,i as i$1,p,o,y,u as u$1,C,l,n}from'./chunk-YWMYYP3I.js';import {c,p as p$1,u,k as k$1,m,s as s$1,a as a$5,r as r$1,q,l as l$1,j as j$1}from'./chunk-CVR2ZXHQ.js';import {a,i,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 Hn({cardClassName:e,cardGridClassName:a,cardSizing:t,cardRenderer:o,currentRowSelection:r,currentDetailExpanded:l,DataTableCardView:d,DataTableEmptyState:p,dragAndDrop:u,editableRows:y,editingRowId:V,emptyNode:S,enableRowSelection:z,flexGrow:M,getRowClassName:$,hasCardTitle:J,infiniteScroll:F,localSearchValue:g,onRowClick:T,renderedRows:s,detailPanel:C,resolvedLabels:m,resolvedLoadingRowCount:v,rowActions:N=[],ScrollArea:w,scrollbarVisibility:G,sentinelRef:W,setCurrentDetailExpanded:_,setCurrentRowSelection:U,setEditingRowId:R,shouldRenderInitialLoading:f,stateOverlayNode:x,tableContainerClassName:k,uiClassNames:A}){let Q=f||s.length>0,P=D.useRef(null),q=(j,E)=>jsx(d,{rows:j,cardRenderer:o,cardGridClassName:a,cardClassName:e,cardSizing:t,rowActions:N,editableRows:y,detailPanel:C,detailExpanded:l,onDetailExpandedChange:_,hasCardTitle:J,rowSelection:r,onRowSelectionChange:U,enableRowSelection:z,editingRowId:V,onEditingRowIdChange:R,getRowClassName:$,onRowClick:T,getRowDraggable:u?.getRowDraggable,onRowDragStart:u?.onRowDragStart,onRowDragEnd:u?.onRowDragEnd,isLoading:E?.isLoading,loadingRowCount:E?.loadingRowCount,labels:m});return jsxs("div",{ref:P,"data-dtp-slot":"data-table-card-shell",className:a$2("relative box-border border-2 border-transparent transition-colors",M?"flex min-h-0 flex-1 flex-col":"h-full",u?.isDragging&&(A.dragActive??"rounded-md border-dashed")),children:[jsx(w,{type:G,className:a$2(M?"min-h-0 flex-1":"h-full",A.cardScrollArea,k),children:jsxs("div",{"data-dtp-slot":"data-table-card-viewport",className:a$2("flex min-h-full min-w-0 flex-col",M&&"min-h-0 flex-1",A.cardViewport),children:[Q?f?q([],{isLoading:true,loadingRowCount:v}):q(s):jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center p-4",children:S??jsx(p,{title:g?m.noMatchingRowsTitle:m.noRowsTitle,description:g?m.noMatchingRowsDescription:m.noRowsDescription})}),F?.enabled&&!f?jsx("div",{className:"shrink-0 px-4 pb-4",children:jsx("div",{ref:W,className:"h-4 w-full"})}):null]})}),x]})}var cs=D.lazy(async()=>({default:(await import('./data-table-virtual-card-panel-Z3BPBPG4.js')).DataTableVirtualCardPanel}));function Ci(e){let a=typeof e.virtualization=="object"?e.virtualization.card:void 0;return a?.enabled!==true?jsx(Hn,{...e}):jsx(D.Suspense,{fallback:jsx(Hn,{...e,renderedRows:e.renderedRows.slice(0,Math.max(1,Math.floor(a.fallbackCardCount??12)))}),children:jsx(cs,{...e})})}function yi({children:e,currentPagination:a,DataTableFooter:t,effectivePageCount:o,footerTotalRowCount:r,handleFooterPageIndexChange:l,handleFooterPageSizeChange:d,labels:p,pageCountKnown:u=true,rowsPerPageOptions:y,showFooter:V}){return !V&&!e?null:jsxs("div",{"data-dtp-slot":"data-table-footer",className:"shrink-0",children:[V?jsx(t,{pageIndex:a.pageIndex,pageCount:o,pageCountKnown:u,pageSize:a.pageSize,totalRowCount:r,rowsPerPageOptions:y,onPageIndexChange:l,onPageSizeChange:d,labels:p}):null,e]})}function Ri({allRows:e,columnFilters:a,columnVisibilityOptions:t,compactToolbar:o,customToolbar:r,DataTableToolbar:l,description:d,descriptionId:p,effectiveToolbarActions:u,enableColumnPinning:y,enableGrouping:V,enableToolbarColumnChooser:S,enableToolbarFilterChips:z,enableToolbarResetLayout:M,enableToolbarSavedViews:$,enableDensityToggle:J,enableViewToggle:F,hiddenRowsLabel:g,labels:T,onClearColumnFilters:s,onColumnFilterChange:C,onColumnPinningChange:m,onDensityChange:v,onShowHiddenRowsChange:N,onToolbarQueryValueChange:w,reorderColumn:G,onResetColumnLayout:W,onCreateSavedView:_,onApplySavedView:U,onRenameSavedView:R,onDeleteSavedView:f,onViewModeChange:x,openFileDialog:k,selectedRowIds:A,selectedRows:Q,selectionActions:P,savedViews:q,showHiddenRows:j,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(l,{title:Z,titleId:re,description:d,descriptionId:p,toolbarQueryValue:Se,toolbarQueryPlaceholder:Re,onToolbarQueryValueChange:w,reorderColumn:G,customToolbar:r,compactToolbar:o,viewMode:Ce,onViewModeChange:x,enableViewToggle:F,toolbarActions:u,selectionActions:P,selectedRowIds:A,selectedRows:Q,showHiddenRows:j,hiddenRowsLabel:g,onShowHiddenRowsChange:N,allRows:e,columnVisibilityOptions:t,onColumnVisibilityChange:(Ae,Ge)=>{E.getColumn(Ae)?.toggleVisibility(Ge);},enableColumnPinning:y,enableGrouping:V,enableToolbarColumnChooser:S,enableToolbarFilterChips:z,enableToolbarResetLayout:M,enableToolbarSavedViews:$,onColumnPinningChange:m,columnFilters:a,onColumnFilterChange:C,onClearColumnFilters:s,onResetColumnLayout:W,onCreateSavedView:_,onApplySavedView:U,onRenameSavedView:R,onDeleteSavedView:f,density:Ee,onDensityChange:v,enableDensityToggle:J,labels:T,toolbarVisibility:ke,openFileDialog:k,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 Si(e){return {...ie,...e}}function vi({Button:e,Checkbox:a,DataTableRowActions:t,Tooltip:o,TooltipContent:r,TooltipTrigger:l,cancelEditing:d$1,columns:p,editableRows:u,editingRowId:y,editErrors:V,enableRowSelection:S,enableRowPinning:z,hasTreeExpansion:M,isSavingEdit:$,isEditDirty:J,includeFillSpacer:F=false,labels:g,lastSelectedRowIdRef:T,detailPanel:s,detailExpanded:C,onDetailExpandedChange:m,rowSelectionSelectAllScope:v,rowActions:N,saveEdit:w,startEditingRow:G,tableRef:W}){let _=D.useCallback((U,R)=>{let f=W.current;if(!f||!T.current)return;let x=f.getRowModel().rows.filter(q=>!d(q.original)),k=x.findIndex(q=>q.id===T.current),A=x.findIndex(q=>q.id===U);if(k<0||A<0)return;let Q=Math.min(k,A),P=Math.max(k,A);f.setRowSelection(q=>{let j={...q};for(let E of x.slice(Q,P+1).filter(Z=>Z.getCanSelect()&&Z.getCanMultiSelect()))R?j[E.id]=true:delete j[E.id];return j});},[T,W]);return D.useMemo(()=>{let U=[];if(M||s){let R=M&&s?80:a$1;U.push({id:"__expand__",enableResizing:false,enableSorting:false,enableHiding:false,size:R,minSize:R,maxSize:R,header:()=>jsx("span",{className:"sr-only",children:g.expandRow}),cell:({row:f,table:x})=>{let k=M&&f.getCanExpand(),A=!!(s&&(s.getRowCanExpand?.(f.original)??true));if(!k&&!A)return null;let Q=f.getIsExpanded(),P=C===true||!!C[f.id];return jsxs("div",{className:"flex items-center justify-center gap-1",children:[k?jsx(e,{type:"button",variant:"ghost",size:"icon-sm","aria-label":Q?g.collapseRow:g.expandRow,"aria-expanded":Q,"data-tree-toggle":"true",onClick:()=>f.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":P?M?g.collapseRowDetails??ie.collapseRowDetails:g.collapseRow:M?g.expandRowDetails??ie.expandRowDetails:g.expandRow,"aria-expanded":P,"data-detail-toggle":"true",onClick:()=>{m(q=>b(q,f.id,x.getCoreRowModel().flatRows.map(j=>j.id)));},children:jsx(c,{className:a$2("transition-transform",P?"rotate-0":"-rotate-90")})}):null]})}});}return S&&U.push({id:"__select__",enableResizing:false,enableSorting:false,enableHiding:false,size:a$1,minSize:a$1,maxSize:a$1,header:({table:R})=>{let f=v==="filtered",x=(f?R.getFilteredRowModel().flatRows:R.getRowModel().flatRows).filter(P=>P.getCanSelect()&&P.getCanMultiSelect()),k=x.length>0&&x.every(P=>P.getIsSelected()),A=x.some(P=>P.getIsSelected()),Q=f?g.selectAllFilteredRows??ie.selectAllFilteredRows:g.selectAllVisibleRows??ie.selectAllVisibleRows;return x.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:k?true:A?"indeterminate":false,onCheckedChange:P=>{R.setRowSelection(q=>{let j={...q};for(let E of x)P===true?j[E.id]=true:delete j[E.id];return j});},"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:f=>{if(!f.shiftKey||!T.current||!R.getCanMultiSelect()){T.current=R.id;return}f.preventDefault(),f.stopPropagation(),_(R.id,!R.getIsSelected()),T.current=R.id;},onCheckedChange:f=>{T.current=R.id,R.toggleSelected(f===true);},"aria-label":g.selectRow??ie.selectRow})})}),U.push(...p.map(R=>h(R))),F&&U.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}),(N.length||u||z)&&U.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:g.actions}),cell:({row:R})=>{let f=R.id;return y===f?jsxs("div",{className:"flex w-full items-center justify-end gap-2",children:[V._row?jsx("span",{className:"sr-only",role:"alert",children:V._row}):null,jsx(e,{type:"button",size:"sm",disabled:$||!J,onClick:()=>{w(R.original);},children:g.saveEdit}),jsxs(o,{children:[jsx(l,{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:g.cancelEdit})]})}),jsx(r,{children:g.cancelEdit})]})]}):jsx("div",{className:"flex w-full items-center justify-center",children:jsx(t,{row:R.original,rowActions:N,editableRows:u,isEditing:false,onStartEditing:()=>{G(R.original,R.id);},onCancelEditing:()=>{},labels:g,rowPinning:z?{canPin:R.getCanPin(),position:R.getIsPinned(),pin:k=>R.pin(k)}:void 0})})}}),U},[e,a,t,o,r,l,d$1,p,u,C,s,V,y,S,z,M,F,$,J,g,T,m,v,N,w,_,G])}function xe({defaultValue:e,onChange:a,value:t}){let[o,r]=D.useState(e),l=t??o,d=D.useRef(l);D.useEffect(()=>{d.current=l;},[l]);let p=D.useCallback(u=>{let y=typeof u=="function"?u(d.current):u;d.current=y,a?.(y),t===void 0&&r(y);},[a,t]);return [l,p]}function Pi({enabled:e,hasMore:a,isLoadingMore:t,onLoadMore:o,onError:r}){let l=D.useRef(null),d=D.useRef(false),p=D.useEffectEvent(o),u=D.useEffectEvent(y=>{r?.(y);});return D.useEffect(()=>{if(!e||!a||t)return;let y=l.current;if(!y)return;let V=new IntersectionObserver(S=>{if(S[0].isIntersecting&&!d.current){d.current=true;let M;try{M=p();}catch($){d.current=false,u($);return}Promise.resolve(M).catch($=>{u($);}).finally(()=>{d.current=false;});}},{rootMargin:"200px 0px 200px 0px"});return V.observe(y),()=>{V.disconnect();}},[e,a,t]),l}function ki({enabled:e,maxPageIndex:a,onPageIndexChange:t,pageIndex:o,setLocalPageIndex:r}){D.useEffect(()=>{if(!e||o>=0&&o<=a)return;let l=Math.min(Math.max(o,0),a);r(l),t?.(l);},[e,a,t,o,r]);}function Fi(){return D.useMemo(()=>{let e=new WeakMap;return (a,t,o$1)=>{let r=o(o$1);if(!r)return true;let l=a.original;if(typeof l!="object"||l===null)return o(a.getValue(t)).includes(r);let d=e.get(l);d||(d=new Map,e.set(l,d));let p=d.get(t);if(p===void 0){let u=a.getValue(t);p=o(u),d.set(t,p);}return p.includes(r)}},[])}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 Vi({autoResetPageIndex:e,columnGroupPaths:a,columnResizeMode:t,dir:o,currentColumnFilters:r,currentColumnOrder:l,currentColumnPinning:d$1,currentRowPinning:p,currentColumnSizing:u,currentExpanded:y,currentGrouping:V,currentPagination:S,currentRowSelection:z,currentSorting:M,currentViewMode:$,defaultColumn:J,effectiveColumnVisibility:F,enableColumnResizing:g,enableMultiRowSelection:T,enableRowPinning:s$1,enableRowSelection:C,enableSubRowSelection:m,getRowCanSelect:v,getRowCanExpand:N,getSubRows:w,aggregationFns:G,groupedColumnMode:W,globalFilterFn:_,globalFilterValue:U,hasNextPage:R,handleColumnFiltersChange:f,handleColumnOrderChange:x$1,handleColumnPinningChange:k$1,handleRowPinningChange:A,handleColumnVisibilityChange:Q,handleExpandedChange:P,handleGroupingChange:q,infiniteScroll:j$1,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:L,filterFromLeafRows:ye,maxLeafRowFilterDepth:We,setCurrentRowSelection:Xe,setCurrentSorting:Ze,setLocalColumnSizing:ia,setLocalPagination:ge,shouldRenderInitialLoading:ra,tableColumns:Qe,tableData:ba,tableGetRowId:$e,tableRef:ea,totalRowCount:fa,virtualization:aa}){let Ta=Fi(),fe=D.useMemo(()=>k(Qe).map(({column:b,index:I})=>s(b,I)),[Qe]),la=D.useMemo(()=>{let b=fe,I=b.filter(oe=>!x(oe)&&oe!=="__spacer__"),K=new Set(I),de=l.filter(oe=>K.has(oe)),le=I.filter(oe=>!de.includes(oe));return [...b.filter(oe=>oe==="__expand__"||oe==="__select__"),...de,...le,...b.filter(oe=>oe==="__spacer__"),...b.filter(oe=>oe==="__actions__")]},[l,fe]),Ie=D.useMemo(()=>{let b=new Set(fe),I=new Set(fe.filter(le=>!x(le)&&le!=="__spacer__")),K=(d$1.left??[]).filter(le=>I.has(le)),de=(d$1.right??[]).filter(le=>I.has(le));return {start:[...["__expand__","__select__"].filter(le=>b.has(le)),...K],end:[...de,...["__actions__"].filter(le=>b.has(le))]}},[d$1,fe]),Da=D.useCallback(b=>{let I=typeof b=="function"?b(Ie):b,K=new Set(fe.filter(de=>!x(de)&&de!=="__spacer__"));k$1({left:I.start.filter(de=>K.has(de)),right:I.end.filter(de=>K.has(de))});},[Ie,fe,k$1]),Pe=D.useMemo(()=>{let b=new Set,I=oe=>{oe.forEach((Ba,ta)=>{if(b.add($e(Ba,ta)),!d(Ba)){let Ia=w?.(Ba,ta);Ia?.length&&I(Ia);}});};I(ba);let K=(p.top??[]).filter(oe=>b.has(oe)),de=new Set(K),le=(p.bottom??[]).filter(oe=>b.has(oe)&&!de.has(oe));return {top:K,bottom:le}},[p.bottom,p.top,w,ba,$e]),Fe=D.useMemo(()=>Object.fromEntries(Object.entries(z).flatMap(([b,I])=>I?[[b,true]]:[])),[z]),Pa=D.useCallback(b=>{let I=typeof b=="function"?b(Fe):b;Xe({...I});},[Xe,Fe]),xa=D.useMemo(()=>({sorting:M,pagination:S,rowSelection:Fe,columnVisibility:F,columnFilters:r,globalFilter:U,expanded:y,grouping:V,columnOrder:la,columnPinning:Ie,rowPinning:Pe,columnSizing:u}),[r,u,y,V,S,M,F,la,Ie,Pe,U,Fe]),sa=D.useCallback(b=>{let I=typeof b=="function"?b(S):b;(X===void 0||ve===void 0)&&ge(K=>({pageIndex:X===void 0?I.pageIndex:K.pageIndex,pageSize:ve===void 0?I.pageSize:K.pageSize})),I.pageIndex!==S.pageIndex&&Ce?.(I.pageIndex),I.pageSize!==S.pageSize&&Ae?.(I.pageSize);},[S,Ce,Ae,X,ve,ge]),ka=D.useCallback(b=>{ia(b);},[ia]),wa=D.useMemo(()=>Bn(G),[G]),me=useTable({features:wa,data:ba,columns:Qe,enableRowSelection:v?b=>C&&v(b.original):C,enableRowPinning:typeof s$1=="function"?b=>s$1(b.original):s$1,keepPinnedRows:E,enableMultiRowSelection:typeof T=="function"?b=>T(b.original):T,enableSubRowSelection:typeof m=="function"?b=>m(b.original):m,enableColumnResizing:g,columnResizeMode:t,columnResizeDirection:o,getRowId:$e,getSubRows:w?(b,I)=>w(b,I):void 0,getRowCanExpand:w?b=>N?.(b.original)??b.subRows.length>0:void 0,globalFilterFn:_??Ta,getColumnCanGlobalFilter:b=>b.columnDef.enableGlobalFilter!==false&&typeof b.accessorFn=="function",manualSorting:ke,manualGrouping:re,manualFiltering:Z,manualExpanding:Re,manualPagination:Se||!!j$1?.enabled,paginateExpandedRows:L,filterFromLeafRows:ye,maxLeafRowFilterDepth:We,defaultColumn:J,autoResetPageIndex:e,state:xa,onSortingChange:Ze,onPaginationChange:sa,onRowSelectionChange:Pa,onColumnVisibilityChange:Q,onColumnFiltersChange:f,onExpandedChange:P,onGroupingChange:q,onColumnOrderChange:x$1,onColumnPinningChange:Da,onRowPinningChange:A,onColumnSizingChange:ka,groupedColumnMode:W});D.useLayoutEffect(()=>(ea.current=me,()=>{ea.current===me&&(ea.current=null);}),[me,ea]);let Ne=me.getVisibleLeafColumns(),da=D.useCallback((b,I)=>{if(b===I||!j(b,I,a))return;let K=me.getAllLeafColumns().map(le=>le.id).filter(le=>!x(le)&&le!=="__spacer__"),de=B(l.length?l:K,b,I);x$1(de);},[a,l,x$1,me]),Ea=me.getTopRows(),Ue=me.getBottomRows(),Ca=$==="table"?me.getCenterRows():me.getRowModel().rows,ca=typeof aa=="object"?aa:void 0,ze=aa===true||ca?.enabled===true,ua=Math.max(1,Math.floor(ca?.fallbackRowCount??20)),Fa=(ze?Ca.slice(0,ua):Ca).map((b,I)=>({row:b,rowIndex:I})),qe=Se||!!j$1?.enabled,Va=qe?void 0:me.getFilteredRowModel().rows.length,je=fa??Va,pa=!qe||Ge!==void 0||fa!==void 0,Ha=je,Ke=ra?1:Ge??(je!==void 0?Math.max(1,Math.ceil(je/S.pageSize)):qe?S.pageIndex+(R?2:1):me.getPageCount()),Ma=Math.max(0,Ke-1),Aa=D.useCallback(b=>{X===void 0&&ge(I=>I.pageIndex===b?I:{...I,pageIndex:b});},[X,ge]);ki({enabled:!ra&&!j$1?.enabled&&pa,maxPageIndex:Ma,onPageIndexChange:Ce,pageIndex:S.pageIndex,setLocalPageIndex:Aa});let i=D.useCallback(b=>{b!==S.pageIndex&&(Ce?.(b),X===void 0&&ge(I=>I.pageIndex===b?I:{...I,pageIndex:b}));},[S.pageIndex,Ce,X,ge]),H=D.useCallback(b=>{S.pageIndex!==0&&Ce?.(0),b!==S.pageSize&&Ae?.(b),ve===void 0&&ge({pageIndex:0,pageSize:b});},[S.pageIndex,S.pageSize,Ce,Ae,ve,ge]),ne=Pi({enabled:!!j$1?.enabled,hasMore:!!j$1?.hasMore,isLoadingMore:j$1?.isLoadingMore,onLoadMore:()=>j$1?.onLoadMore(),onError:b=>{Ee?.({error:b,source:"infiniteScroll"});}});return {effectivePageCount:Ke,footerTotalRowCount:Ha,handleFooterPageIndexChange:i,handleFooterPageSizeChange:H,isPageCountKnown:pa,renderedRows:Ca,topPinnedRows:Ea,bottomPinnedRows:Ue,reorderColumn:da,rowsToRender:Fa,sentinelRef:ne,table:me,virtualPaddingBottom:0,virtualPaddingTop:0,visibleLeafColumns:Ne}}var Bs="data-table-pro:column-prefs:",Ai=1,Mi=["visibility","sizing","order","pinning","rowPinning","density"];function Ii(e){let a=Gn(e);if(!a)return {};let t=$n(a);if(!t)return {};let o=Un(a.key),r;try{r=t.getItem(o);}catch(u){return a.onError?.({error:u,operation:"read"}),{}}if(!r)return {};let l;try{l=(a.deserialize??JSON.parse)(r);}catch(u){return a.onError?.({error:u,operation:"deserialize"}),{}}let d=a.version??Ai,p;if(Gs(l))if(l.version===d)p=l.state;else if(a.migrate)try{p=a.migrate({version:l.version,state:l.state},d);}catch(u){return a.onError?.({error:u,operation:"migrate"}),{}}else return {};else p=l;return Ni($s(p),a.slices)}function zi(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 Li({key:e,persistence:a,prefs:t}){let o=a??Gn(e),r=o?$n(o):void 0,l=o?Un(o.key):void 0,d=o?.version??Ai,p=Math.max(0,o?.debounceMs??100),u=Ni(t,o?.slices),y=D.useMemo(()=>{if(!o)return {value:void 0};try{let S={version:d,state:u};return {value:(o.serialize??JSON.stringify)(S)}}catch(S){return {error:S,value:void 0}}},[o,u,d]),V=D.useEffectEvent((S,z)=>{o?.onError?.({error:S,operation:z});});D.useEffect(()=>{y.error!==void 0&&V(y.error,"serialize");},[y.error]),D.useEffect(()=>{if(!r||!l||y.value===void 0)return;let S=()=>{try{if(r.getItem(l)===y.value)return;r.setItem(l,y.value);}catch(M){V(M,"write");}};if(p===0){S();return}let z=globalThis.setTimeout(S,p);return ()=>{globalThis.clearTimeout(z);}},[p,y.value,r,l]);}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 `${Bs}${e}`}function Gs(e){return it(e)&&Object.prototype.hasOwnProperty.call(e,"version")&&Object.prototype.hasOwnProperty.call(e,"state")}function Ni(e,a){let t=new Set(a??Mi),o={};for(let r of Mi)t.has(r)&&e[r]!==void 0&&Object.assign(o,{[r]:e[r]});return o}function $s(e){if(!it(e))return {};let a={},t=Us(e.visibility);t&&(a.visibility=t);let o=js(e.sizing);o&&(a.sizing=o);let r=bt(e.order);if(r&&(a.order=r),it(e.pinning)){let d=bt(e.pinning.left)??[],p=bt(e.pinning.right)??[];a.pinning={left:d,right:p};}let l=Ks(e.rowPinning);return l&&(a.rowPinning=l),Ws(e.density)&&(a.density=e.density),a}function Us(e){if(it(e))return Object.fromEntries(Object.entries(e).filter(a=>typeof a[1]=="boolean"))}function js(e){if(it(e))return Object.fromEntries(Object.entries(e).filter(a=>typeof a[1]=="number"&&Number.isFinite(a[1])&&a[1]>=0))}function bt(e){if(Array.isArray(e))return e.filter(a=>typeof a=="string")}function Ks(e){if(it(e))return {top:bt(e.top)??[],bottom:bt(e.bottom)??[]}}function Ws(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 Oi(e){let a=D.useRef(0),[t,o]=D.useState(0);return D.useEffect(()=>{let r=e.current;if(!r)return;let l=(p=r.clientWidth)=>{let u=qs(p);u!==a.current&&(a.current=u,o(u));};if(l(),typeof ResizeObserver>"u")return;let d=new ResizeObserver(p=>{let u=p[0];l(u?Ys(u):void 0);});return d.observe(r),()=>{d.disconnect();}},[e]),t}function qs(e){if(e<=0)return 0;let a=1;for(let t of Qs){if(ed$1??(l?{key:l}:void 0),[l,d$1]),ye=D.useMemo(()=>Ii(L),[L]),[We,Xe]=D.useState({pageIndex:T?.pagination?.pageIndex??0,pageSize:T?.pagination?.pageSize??Re[0]??20}),[Ze,ia]=xe({value:Ee,onChange:Q,defaultValue:()=>T?.sorting??[]}),[ge,ra]=xe({value:re,onChange:k$1,defaultValue:()=>T?.rowSelection??{}}),[Qe,ba]=xe({value:p,onChange:_,defaultValue:()=>T?.columnVisibility??ye.visibility??{}}),[$e,ea]=xe({value:e$1,onChange:v,defaultValue:()=>T?.columnFilters??[]}),[fa,aa]=xe({value:M,onChange:R,defaultValue:()=>T?.expanded??{}}),[Ta,fe]=xe({value:a,onChange:N,defaultValue:()=>T?.columnOrder??ye.order??[]}),[la,Ie]=xe({value:t,onChange:w,defaultValue:()=>T?.columnPinning??ye.pinning??r(u)}),[Da,Pe]=xe({value:o,onChange:G,defaultValue:()=>T?.rowPinning??ye.rowPinning??{top:[],bottom:[]}}),[Fe,Pa]=xe({value:r$1,onChange:W,defaultValue:()=>T?.columnSizing??ye.sizing??{}}),[xa,sa]=xe({value:X,onChange:q,defaultValue:()=>T?.viewMode??"table"}),[ka,wa]=xe({value:$,onChange:f,defaultValue:()=>T?.grouping??[]}),[me,Ne]=xe({value:ke,onChange:A,defaultValue:()=>T?.showHiddenRows??false}),[da,Ea]=xe({value:V,onChange:U,defaultValue:()=>T?.density??ye.density??"comfortable"}),Ue=Ge??T?.globalFilter??"",Ca=Ae??Z.searchPlaceholder,ca=Ce??250,[ze,ua]=D.useState(Ue),ya=Oi(ve),Fa=!!P,qe=D.useRef(Ue),Va=D.useEffectEvent(B=>{qe.current=B,P?.(B);});D.useEffect(()=>{qe.current=Ue,ua(Ue);},[Ue]),D.useEffect(()=>{if(!Fa||ze===Ue||ze===qe.current)return;let B=window.setTimeout(()=>{Va(ze);},ca);return ()=>{window.clearTimeout(B);}},[Fa,ze,ca,Ue]);let je=D.useMemo(()=>({pageIndex:j??We.pageIndex,pageSize:E??We.pageSize}),[We.pageIndex,We.pageSize,j,E]),pa=Math.max(1,C??Math.min(5,je.pageSize)),Ha=D.useDeferredValue(ze),Ke=z?m?ze:Ha:"",Ma=D.useCallback(B=>{sa(B);},[sa]),Aa=D.useCallback(B=>{Ne(B);},[Ne]),i$1=D.useCallback(B=>{Ea(B);},[Ea]),H=D.useCallback(()=>{x?.(0),j===void 0&&Xe(B=>B.pageIndex===0?B:{...B,pageIndex:0});},[x,j]),ne=D.useRef({columnFilters:$e,globalFilterValue:Ke});D.useEffect(()=>{let B=ne.current,Ve=B.columnFilters!==$e,ce=B.globalFilterValue!==Ke;ne.current={columnFilters:$e,globalFilterValue:Ke},!m&&(!Ve&&!ce||H());},[$e,Ke,m,H]),Li({persistence:L,prefs:{visibility:p?void 0:Qe,sizing:r$1===void 0?Fe:void 0,order:a?void 0:Ta,pinning:t?void 0:la,rowPinning:o===void 0?Da:void 0,density:V?void 0:da}});let b=D.useMemo(()=>k(u).reduce((B,{column:Ve,index:ce})=>{let ga=s(Ve,ce);return i(Ve.meta?.hideOn,ya)&&(B[ga]=false),B},{}),[u,ya]),I=D.useMemo(()=>({...Qe,...b}),[Qe,b]),K=D.useMemo(()=>y.filter(B=>b$1(B,g,me)),[me,y,g]),de=s$1&&K.length===0,le=D.useMemo(()=>c$1(pa),[pa]),oe=de?le:K,Ba=D.useCallback((B,Ve)=>d(B)?e(Ve):F(B,Ve),[F]),ta=S||(Se?.length??0)>0||Object.values(ge).some(Boolean),Ia=D.useMemo(()=>{if(!ta)return new Map;let B=new Map,Ve=ce=>{ce.forEach((ga,te)=>{B.set(F(ga,te),ga);let be=J?.(ga,te);be?.length&&Ve(be);});};return Ve(K),B},[F,J,ta,K]),Zt=D.useMemo(()=>ta?Object.entries(ge).filter(([,B])=>B).map(([B])=>Ia.get(B)).filter(B=>!!B):[],[ge,Ia,ta]),en=D.useMemo(()=>Object.entries(ge).flatMap(([B,Ve])=>Ve?[B]:[]),[ge]);return {containerWidth:ya,currentColumnFilters:$e,currentColumnOrder:Ta,currentColumnPinning:la,currentRowPinning:Da,currentColumnSizing:Fe,currentColumnVisibility:Qe,currentDensity:da,currentExpanded:fa,currentGrouping:ka,currentPagination:je,currentRowSelection:ge,currentShowHiddenRows:me,currentSorting:Ze,currentViewMode:xa,effectiveColumnVisibility:I,globalFilterValue:Ke,handleDensityChange:i$1,handleShowHiddenRowsChange:Aa,handleViewModeChange:Ma,localSearchValue:ze,resolvedLoadingRowCount:pa,resolvedToolbarQueryPlaceholder:Ca,selectedRowIds:en,selectedRows:Zt,setCurrentColumnFilters:ea,setCurrentColumnOrder:fe,setCurrentColumnPinning:Ie,setCurrentRowPinning:Pe,setCurrentColumnVisibility:ba,setCurrentExpanded:aa,setCurrentGrouping:wa,setCurrentRowSelection:ra,setCurrentSorting:ia,setLocalColumnSizing:Pa,setLocalPagination:Xe,setLocalSearchValue:ua,shouldRenderInitialLoading:de,tableData:oe,tableGetRowId:Ba,toolbarFilteredData:K,visibleData:K}}var Xs={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 Bi({columns:e,columnSizing:a,editableRows:t,enableRowSelection:o,hasRowActions:r,hasRowExpansion:l,layoutMode:d,uiClassNames:p,visibleLeafColumns:u}){let y=D.useMemo(()=>{let F=new Set;for(let{column:g$1,index:T}of k(e))g(g$1)&&F.add(s(g$1,T));return o&&F.add("__select__"),l&&F.add("__expand__"),(r||t)&&F.add("__actions__"),F},[e,t,o,r,l]),V=D.useMemo(()=>{let F=new Map;for(let{column:g,index:T}of k(e)){let s$1=f(g);s$1!==void 0&&F.set(s(g,T),s$1);}return F},[e]),S=D.useMemo(()=>{let F=new Map,g=new Map,T=0;for(let C of u)v(C)==="left"&&(F.set(C.id,T),T+=Hi(C));let s=0;for(let C of [...u].reverse())v(C)==="right"&&(g.set(C.id,s),s+=Hi(C));return {left:F,right:g}},[u]),z=D.useMemo(()=>new Set([...y,...Object.keys(a)]),[a,y]),M=D.useMemo(()=>{let F=new Map;for(let g of u){let T=g.id==="__select__",s=g.id==="__expand__",C=g.id==="__actions__",m=T||s||C,v$1=g.id==="__spacer__",w$1=V.get(g.id),G=!v$1&&(d==="fit"||m||z.has(g.id)),W=G||w$1!==void 0?{width:G?m?a$1:g.getSize():void 0,minWidth:m?a$1:G?g.getSize():w$1,maxWidth:G?m?a$1:g.getSize():void 0}:void 0,_=v(g),U=_?{left:_==="left"?S.left.get(g.id):void 0,right:_==="right"?S.right.get(g.id):void 0}:void 0,R=W||U?{...W,...U}:void 0;F.set(g.id,{cellStyle:R,colStyle:W,fixedSide:_,headerStyle:R,isActionsColumn:C,isExpansionColumn:s,isSelectionColumn:T,isSpacerColumn:v$1,isUtilityColumn:m,pinnedClassName:_?w(_,p,{isUtilityColumn:m}):void 0,utilityClassName:m?"w-[50px] max-w-[50px] min-w-[50px] px-0":void 0});}return F},[z,d,V,S,p,u]),$=D.useMemo(()=>u.reduce((F,g)=>{let T=M.get(g.id),s=V.get(g.id);return T?.isUtilityColumn?F+a$1:z.has(g.id)?F+g.getSize():F+(s??0)},0),[M,z,V,u]),J=D.useCallback(F=>M.get(F)??Xs,[M]);return {columnLayouts:M,explicitlySizedColumnIds:y,fillMinWidth:$,getColumnLayout:J}}function Hi(e){return x(e.id)?a$1:e.getSize()}function $i(e,a){let t=e.classNames??{},{Button:o,Card:r,CardContent:l,CardHeader:d,Checkbox:p,Skeleton:u}=e;return function({rows:V,cardRenderer:S,cardSizing:z="fixed",cardGridClassName:M,cardClassName:$,rowActions:J,editableRows:F,detailPanel:g,detailExpanded:T,onDetailExpandedChange:s,hasCardTitle:C,rowSelection:m,onRowSelectionChange:v,enableRowSelection:N,editingRowId:w,onEditingRowIdChange:G,getRowClassName:W,onRowClick:_,getRowDraggable:U,onRowDragStart:R,onRowDragEnd:f,isLoading:x=false,loadingRowCount:k=5,labels:A}){let Q=z??"fixed",P=M?a$2("grid",M):Zs(Q),q=a$2("min-h-0 w-full gap-4 p-1",t.cardGrid,P),j=E=>a$2("relative min-w-0 max-w-full gap-0 overflow-hidden bg-transparent p-0",ed(Q),t.cardItem,$,E);return x?jsx("div",{role:"list","data-dtp-slot":"data-table-card-grid",className:q,children:Array.from({length:Math.max(1,k)},(E,Z)=>jsxs(r,{role:"listitem","aria-hidden":"true","data-dtp-slot":"data-table-card-item",className:j("min-h-52"),children:[C?jsxs(d,{className:"px-4 pt-4 pb-3",children:[jsx(u,{className:"h-5 w-40 max-w-[70%]"}),jsx(u,{className:"h-4 w-24 max-w-[40%]"})]}):null,jsxs(l,{className:a$2("space-y-3 pb-4",C?"":"pt-4"),children:[jsx(u,{className:"h-4 w-full"}),jsx(u,{className:"h-4 w-[82%]"}),jsx(u,{className:"h-4 w-[68%]"}),jsx(u,{className:"h-24 w-full rounded-xl"})]})]},`loading-card-${Z}`))}):jsx("div",{role:"list","data-dtp-slot":"data-table-card-grid",className:q,children:V.map(E=>{let Z=E.id,re=E.original,Re=!!m[Z],Se=w===Z,ke=J.length>0||!!F,Ee=!!(g&&(g.getRowCanExpand?.(re)??true)),Ce=N||ke||C,Ae=N||ke||E.getCanExpand()||Ee,Ge=()=>{_&&_({row:re,rowId:Z});};return jsxs(r,{role:"listitem","data-row-id":Z,"data-tree-depth":E.depth,draggable:U?.(re)??false,"data-dtp-slot":"data-table-card-item","data-state":Re?"selected":void 0,className:j(a$2([W?.(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=>{f?.({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:_?"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",ad(Q),_&&"cursor-pointer focus-visible:outline-none"),onClick:X=>{y(X.target,X.currentTarget)||Ge();},onKeyDown:X=>{y(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=>{v(Gi(m,Z,X,E.getCanSelect(),E.getCanMultiSelect()));},actions:J,isEditing:Se,startEditing:()=>{G(Z);},cancelEditing:()=>{G(null);}})}),Se||!g||!(T===true||T[E.id])?null:jsx("div",{"data-dtp-slot":"data-table-card-detail-panel",className:"relative z-20 min-w-0",children:g.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:[N?jsx("div",{"data-row-click-ignore":"true",className:"pointer-events-auto",children:jsx(p,{checked:Re,disabled:!E.getCanSelect(),"aria-label":(A.selectCardRow??ie.selectCardRow)(Z),onCheckedChange:X=>{v(Gi(m,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":T===true||T[E.id]?E.getCanExpand()?A.collapseRowDetails??ie.collapseRowDetails:A.collapseRow:E.getCanExpand()?A.expandRowDetails??ie.expandRowDetails:A.expandRow,"aria-expanded":T===true||!!T[E.id],"data-detail-toggle":"true",onClick:()=>{s(X=>b(X,E.id,V.map(ve=>ve.id)));},children:jsx(c,{className:a$2("transition-transform",T===true||T[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:F,isEditing:Se,onStartEditing:()=>{G(Z);},onCancelEditing:()=>{G(null);},labels:A})}):null]}):null]},Z)})})}}function Zs(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 ed(e){switch(e){case "content":return "w-fit";case "fluid":return "w-full";default:return}}function ad(e){switch(e){case "content":return "w-fit";case "fluid":return "w-full flex-1 [&>*]:w-full";default:return "flex-1"}}function Gi(e,a,t,o,r){if(!o)return e;if(t)return r?{...e,[a]:true}:{[a]:true};if(!e[a])return e;let l={...e};return delete l[a],l}function ji(e){let a=e.classNames??{},{Empty:t,EmptyContent:o,EmptyDescription:r,EmptyHeader:l,EmptyMedia:d,EmptyTitle:p}=e;return function({title:y="No rows found",description:V="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(l,{children:[jsx(d,{variant:"icon",children:jsx(p$1,{})}),jsx(p,{children:y}),jsx(r,{children:V})]}),jsx(o,{})]})}}function Ki(e){let a=e.classNames??{},{Pagination:t,PaginationContent:o,PaginationEllipsis:r,PaginationFirst:l,PaginationItem:d,PaginationLast:p,PaginationLink:u,PaginationNext:y,PaginationPrevious:V,Select:S,SelectContent:z,SelectGroup:M,SelectItem:$,SelectTrigger:J,SelectValue:F,Tooltip:g,TooltipContent:T,TooltipTrigger:s}=e;function C({pageIndex:v,pageCount:N,pageCountKnown:w,pageSize:G,totalRowCount:W,rowsPerPageOptions:_,onPageIndexChange:U,onPageSizeChange:R,labels:f}){let x=w?td(v,Math.max(1,N)):[],k=v>0,A=v+1{R(Number(P));},children:[jsx(J,{"aria-label":f.recordsPerPage,className:`w-22 ${a.paginationSelectTrigger??""}`,children:jsx(F,{})}),jsx(z,{children:jsx(M,{children:_.map(P=>jsx($,{value:String(P),children:P},P))})})]})]}),W!==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":f.totalRecords(W),children:[jsx(j$1,{className:"size-4"}),jsx("span",{className:"@min-[768px]/data-table:hidden",children:W}),jsx("span",{className:"hidden @min-[768px]/data-table:inline",children:f.totalRecords(W)})]})}):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:w?f.pageStatus(v,Math.max(1,N)):(f.pageStatusUnknown??ie.pageStatusUnknown)(v)}),jsx(t,{"aria-label":f.pagination??ie.pagination,className:"mx-0 w-auto justify-end",children:jsxs(o,{children:[jsx(d,{className:"@min-[768px]/data-table:hidden",children:jsxs(g,{children:[jsx(s,{asChild:true,children:jsx(l,{"aria-label":f.firstPage,href:"#",size:"icon-sm",showText:false,disabled:!k,onClick:P=>{P.preventDefault(),k&&U(0);},text:f.firstPage})}),jsx(T,{children:f.firstPage})]})}),jsx(d,{children:jsxs(g,{children:[jsx(s,{asChild:true,children:jsx(V,{"aria-label":f.previousPage,href:"#",size:"icon-sm",showText:false,disabled:!k,onClick:P=>{P.preventDefault(),k&&U(v-1);},text:f.previousPage})}),jsx(T,{children:f.previousPage})]})}),x.map((P,q)=>jsx(d,{className:"hidden @min-[768px]/data-table:block",children:P==="ellipsis"?jsx(r,{text:f.morePages??ie.morePages}):jsx(u,{href:"#",isActive:P===v+1,size:"icon-sm",onClick:j=>{j.preventDefault(),U(P-1);},children:P})},`${P}-${q}`)),jsx(d,{children:jsxs(g,{children:[jsx(s,{asChild:true,children:jsx(y,{"aria-label":f.nextPage,href:"#",size:"icon-sm",showText:false,disabled:!A,onClick:P=>{P.preventDefault(),A&&U(v+1);},text:f.nextPage})}),jsx(T,{children:f.nextPage})]})}),w?jsx(d,{className:"@min-[768px]/data-table:hidden",children:jsxs(g,{children:[jsx(s,{asChild:true,children:jsx(p,{"aria-label":f.lastPage,href:"#",size:"icon-sm",showText:false,text:f.lastPage,disabled:!A,onClick:P=>{P.preventDefault(),A&&U(Q);}})}),jsx(T,{children:f.lastPage})]})}):null]})})]})]})}function m(v){return jsx("div",{className:`rounded-md border px-2 py-1 ${a.footer??""}`,children:jsx(C,{...v})})}return {DataTableFooter:m,DataTablePagination:C}}function td(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 r=Array.from(o).sort((d,p)=>d-p),l=[];for(let d=0;d1&&l.push("ellipsis"),l.push(p);}return l}function Qi(e){let{Button:a,DropdownMenu:t,DropdownMenuContent:o,DropdownMenuGroup:r,DropdownMenuItem:l,DropdownMenuSeparator:d,DropdownMenuTrigger:p,Tooltip:u$1,TooltipContent:y,TooltipTrigger:V}=e;return function({row:z,rowActions:M,editableRows:$,isEditing:J,onStartEditing:F,onCancelEditing:g,labels:T,rowPinning:s}){let C=M.filter(w=>d$1(w,z)),m$1=D.useCallback(w=>{w.stopPropagation();},[]);if(J)return jsxs(u$1,{children:[jsx(V,{asChild:true,children:jsxs(a,{type:"button",variant:"ghost",size:"icon-sm",onPointerDown:m$1,onClick:g,children:[jsx(u,{}),jsx("span",{className:"sr-only",children:T.cancelEdit})]})}),jsx(y,{children:T.cancelEdit})]});let v=e$2($,z),N=s?.canPin??false;return !C.length&&!v&&!N?null:jsxs(t,{children:[jsxs(u$1,{children:[jsx(V,{asChild:true,children:jsx(p,{asChild:true,children:jsxs(a,{type:"button",variant:"ghost",size:"icon-sm",onPointerDown:m$1,onClick:m$1,children:[jsx(k$1,{}),jsx("span",{className:"sr-only",children:T.rowActions})]})})}),jsx(y,{children:T.rowActions})]}),jsxs(o,{align:"end",className:"w-52",children:[v?jsx(r,{children:jsxs(l,{onClick:w=>{w.stopPropagation(),F();},children:[jsx(m,{"data-icon":"inline-start"}),T.editRow]})}):null,v&&(C.length||N)?jsx(d,{}):null,N?jsx(r,{children:s?.position?jsx(l,{onClick:w=>{w.stopPropagation(),s.pin(false);},children:T.unpinRow}):jsxs(Fragment,{children:[jsx(l,{onClick:w=>{w.stopPropagation(),s?.pin("top");},children:T.pinRowToTop}),jsx(l,{onClick:w=>{w.stopPropagation(),s?.pin("bottom");},children:T.pinRowToBottom})]})}):null,N&&C.length?jsx(d,{}):null,C.length?jsx(r,{children:C.map(w=>{let G=w.icon;return jsxs(l,{disabled:w.disabled?.(z),variant:w.variant==="destructive"?"destructive":void 0,onClick:W=>{W.stopPropagation(),w.onClick(z);},children:[G?jsx(G,{"data-icon":"inline-start"}):null,c$2(w.label,z)]},w.key)})}):null]})]})}}var od=D.lazy(()=>import('./data-table-toolbar-operations-E6KRSUL6.js'));function Yi(e){let a=e.classNames??{},{Button:t,ButtonGroup:o,DropdownMenu:r,DropdownMenuCheckboxItem:l,DropdownMenuContent:d,DropdownMenuGroup:p,DropdownMenuItem:u$1,DropdownMenuLabel:y,DropdownMenuSeparator:V,DropdownMenuTrigger:S,InputGroup:z,InputGroupAddon:M,InputGroupInput:$,Tooltip:J,TooltipContent:F,TooltipTrigger:g}=e;return function({title:C,titleId:m,description:v,descriptionId:N,toolbarQueryValue:w,toolbarQueryPlaceholder:G,onToolbarQueryValueChange:W,customToolbar:_,compactToolbar:U,viewMode:R,onViewModeChange:f,enableViewToggle:x,toolbarActions:k,selectionActions:A,selectedRows:Q,selectedRowIds:P,showHiddenRows:q$1,hiddenRowsLabel:j,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:L,toolbarVisibility:ye,openFileDialog:We,enableGrouping:Xe,enableToolbarColumnChooser:Ze,enableToolbarFilterChips:ia,enableToolbarResetLayout:ge,enableToolbarSavedViews:ra,savedViews:Qe,onResetColumnLayout:ba,onCreateSavedView:$e,onApplySavedView:ea,onRenameSavedView:fa,onDeleteSavedView:aa,reorderColumn:Ta,table:fe}){let la=D.useRef(null),[Ie,Da]=D.useState(false),Pe=a.toolbarCompactIconButton??"",Fe=k.filter(i=>(i.placement??"primary")==="primary"),Pa=k.filter(i=>i.placement==="trailing"),xa=ye?.title??true,sa=ye?.search??true,ka=ye?.actions??true,wa=ye?.trailingActions??true,me=ye?.options??true,Ne=ye?.viewToggle??true,da=ye?.customToolbar??true,Ea=xa&&!!(C||v),Ue=sa,Ca=ka&&Fe.length>0,ca=P.length>0&&A.length>0,ze=me&&(re.some(i=>i.canHide)||!!(E&&j)||Se||ve||Xe||Ze||ge||ra),ua=Ze||ge||ra,ya=Ee.filter(i=>jn(i.value)),Fa={Button:t,DropdownMenuCheckboxItem:l,DropdownMenuGroup:p,DropdownMenuItem:u$1,DropdownMenuLabel:y,DropdownMenuSeparator:V,InputGroup:z,InputGroupAddon:M,InputGroupInput:$},qe=i=>jsx(D.Suspense,{fallback:null,children:jsx(od,{placement:i,ui:Fa,labels:L,enableColumnChooser:Ze,enableFilterChips:ia,enableResetLayout:ge,enableSavedViews:ra,enableColumnPinning:Se,columnVisibilityOptions:re,onColumnVisibilityChange:Re,onColumnPinningChange:ke,reorderColumn:Ta,table:fe,onResetColumnLayout:ba,savedViews:Qe,onCreateSavedView:$e,onApplySavedView:ea,onRenameSavedView:fa,onDeleteSavedView:aa,toolbarQueryValue:w,onToolbarQueryValueChange:W,activeColumnFilters:ya,onColumnFilterChange:Ce,onClearColumnFilters:Ae})}),Va=fe.getAllLeafColumns().filter(i=>!i.id.startsWith("__")&&i.getCanGroup()),je=fe.store.state.grouping.flatMap(i=>{let H=fe.getColumn(i);return H?[H]:[]}),pa=Ne&&x&&!!f,Ha=wa&&Pa.length>0,Ke=da&&!!_,Ma=da&&!!(U??_),Aa=L.selectedRows(P.length);return D.useEffect(()=>{Ie&&la.current?.focus();},[Ie]),!Ea&&!Ue&&!Ca&&!ca&&!ze&&!pa&&!Ha&&!Ke&&!Ma?null:jsxs("div",{className:"flex flex-col gap-4 pb-0",children:[xa&&(C||v)?jsxs("div",{className:"flex flex-col gap-1",children:[C?jsx("h2",{id:m,className:"text-lg font-semibold tracking-tight",children:C}):null,v?jsx("p",{id:N,className:`max-w-3xl text-sm ${a.mutedText??"opacity-70"}`,children:v}):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:[sa?jsxs(Fragment,{children:[jsx("div",{className:"hidden min-w-0 grow max-w-md @min-[768px]/data-table:block",children:jsxs(z,{className:"min-w-0",children:[jsx($,{value:w,onChange:i=>{W(i.target.value);},placeholder:G}),jsx(M,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})}),w?jsx(M,{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:()=>{W("");},"aria-label":L.clearSearch,title:L.clearSearch,children:jsx(u,{})})}):null]})}),jsxs(J,{children:[jsx(g,{asChild:true,children:jsxs(t,{type:"button",variant:Ie||w?"secondary":"outline",size:"icon-sm","aria-label":L.searchTable,"aria-pressed":Ie,className:`shrink-0 @min-[768px]/data-table:hidden ${Pe} ${a.toolbarInputButton??""}`,onClick:()=>{Da(i=>!i);},children:[jsx(s$1,{}),jsx("span",{className:"sr-only",children:L.searchTable})]})}),jsx(F,{children:L.searchTable})]})]}):null,ka?jsx("div",{className:"flex shrink-0 items-center gap-2",children:Fe.map(i=>{let H=!i.iconOnly&&!!i.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}`:i.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:i.variant??"outline",size:i.iconOnly?"icon":"default",onClick:()=>{i.onClick({rows:Z,openFileDialog:We});},disabled:i.disabled,"aria-label":i.label,title:i.iconOnly?void 0:i.label,children:[i.icon?jsx(i.icon,{}):null,i.iconOnly?jsx("span",{className:"sr-only",children:i.label}):H?jsx("span",{className:"hidden @min-[768px]/data-table:inline",children:i.label}):jsx("span",{children:i.label})]},i.key);return i.iconOnly?jsxs(J,{children:[jsx(g,{asChild:true,children:ne}),jsx(F,{children:i.label})]},i.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:U??_}):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:[P.length?jsx("div",{className:`hidden text-sm @min-[768px]/data-table:block ${a.mutedText??"opacity-70"}`,children:Aa}):null,P.length?A.map(i=>{let H=i.icon,ne={rows:Q,rowIds:P},b=typeof i.disabled=="function"?i.disabled(Q,ne):i.disabled;return jsxs(J,{children:[jsx(g,{asChild:true,children:jsxs(t,{type:"button",variant:i.variant??"secondary",size:"icon-sm",className:Pe,disabled:b,onClick:()=>{i.onClick(ne);},"aria-label":i.label,children:[H?jsx(H,{}):null,jsx("span",{className:"sr-only",children:i.label})]})}),jsx(F,{children:i.label})]},i.key)}):null,ze?jsxs(r,{children:[jsx(S,{asChild:true,children:jsxs(t,{type:"button",variant:"outline",size:"icon-sm","aria-label":L.tableOptions,className:`${Pe} ${a.toolbarInputButton??""}`,title:L.tableOptions,children:[jsx(a$5,{}),jsx("span",{className:"sr-only",children:L.tableOptions})]})}),jsxs(d,{align:"end",className:"w-56",children:[jsx(y,{children:L.tableOptions}),jsx(p,{children:E&&j?jsx(l,{checked:q$1,onCheckedChange:i=>{E(i===true);},children:L.showHiddenRows(j)}):null}),ve?jsxs(Fragment,{children:[jsx(V,{}),jsx(y,{children:L.density}),jsx(p,{children:[["compact",L.compactDensity],["comfortable",L.comfortableDensity],["spacious",L.spaciousDensity]].map(([i,H])=>jsx(l,{checked:Ge===i,onCheckedChange:()=>{X(i);},children:H},i))})]}):null,ua?qe("menu"):null,!Ze&&re.some(i=>i.canHide)?jsxs(Fragment,{children:[jsx(V,{}),jsx(y,{children:L.columns}),jsx(p,{children:re.filter(i=>i.canHide).map(i=>jsx(l,{checked:i.visible,onCheckedChange:H=>{Re?.(i.id,H===true);},children:i.label},i.id))})]}):null,Se&&!Ze?jsxs(Fragment,{children:[jsx(V,{}),jsxs(y,{children:[L.pinLeft," / ",L.pinRight]}),jsx(p,{children:re.map(i=>jsxs(u$1,{onSelect:H=>{H.preventDefault();},children:[jsx("span",{className:"min-w-0 flex-1 truncate",children:i.label}),jsx("button",{type:"button",className:"px-1 text-xs","aria-label":`${L.pinLeft}: ${i.label}`,onClick:H=>{H.stopPropagation(),ke(i.id,"left");},children:"L"}),jsx("button",{type:"button",className:"px-1 text-xs","aria-label":`${L.pinRight}: ${i.label}`,onClick:H=>{H.stopPropagation(),ke(i.id,"right");},children:"R"}),jsx("button",{type:"button",className:"px-1 text-xs","aria-label":`${L.unpin}: ${i.label}`,onClick:H=>{H.stopPropagation(),ke(i.id,false);},children:"-"})]},`pin-${i.id}`))})]}):null,Xe&&Va.length?jsxs(Fragment,{children:[jsx(V,{}),jsx(y,{children:L.grouping}),jsx(p,{children:Va.map(i=>{let H=typeof i.columnDef.header=="string"?i.columnDef.header:i.id,ne=i.getIsGrouped();return jsx(l,{checked:ne,onCheckedChange:()=>{i.toggleGrouping();},children:ne?L.ungroup(H):L.groupBy(H)},`group-${i.id}`)})})]}):null]})]}):null,Ne&&x&&f?jsxs(o,{children:[jsxs(J,{children:[jsx(g,{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:()=>{f("table");},children:[jsx(r$1,{}),jsx("span",{className:"sr-only",children:L.switchToTableView??ie.switchToTableView})]})}),jsx(F,{children:L.tableView??ie.tableView})]}),jsxs(J,{children:[jsx(g,{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:()=>{f("card");},children:[jsx(q,{}),jsx("span",{className:"sr-only",children:L.switchToCardView??ie.switchToCardView})]})}),jsx(F,{children:L.cardView??ie.cardView})]})]}):null,wa?Pa.map(i=>{let H=!i.iconOnly&&!!i.icon,ne=jsxs(t,{type:"button",variant:i.variant??"outline",size:i.iconOnly?"icon-sm":"default",onClick:()=>{i.onClick({rows:Z,openFileDialog:We});},disabled:i.disabled,"aria-label":i.label,title:i.iconOnly?void 0:i.label,className:`size-7 shrink-0 ${i.iconOnly?"":`${H?"px-0 @min-[768px]/data-table:px-2.5":""} @min-[768px]/data-table:h-8 @min-[768px]/data-table:w-fit`} ${i.iconOnly||H?Pe:""} ${a.toolbarInputButton??""}`,children:[i.icon?jsx(i.icon,{"data-icon":i.iconOnly?void 0:"inline-start"}):null,i.iconOnly?jsx("span",{className:"sr-only",children:i.label}):H?jsx("span",{className:"hidden @min-[768px]/data-table:inline",children:i.label}):jsx("span",{children:i.label})]},i.key);return i.iconOnly?jsxs(J,{children:[jsx(g,{asChild:true,children:ne}),jsx(F,{children:i.label})]},i.key):ne}):null]})]}),sa&&Ie?jsx("div",{"data-dtp-slot":"data-table-toolbar-compact-search",className:"min-w-0 @min-[768px]/data-table:hidden",children:jsxs(z,{children:[jsx($,{ref:la,value:w,onChange:i=>{W(i.target.value);},placeholder:G}),jsx(M,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})}),w?jsx(M,{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:()=>{W("");},"aria-label":L.clearSearch,title:L.clearSearch,children:jsx(u,{})})}):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(i=>jsx(T,{filter:i,labels:L,onColumnFilterChange:Ce},i.id)),Ee.some(i=>jn(i.value))?jsx(t,{type:"button",variant:"ghost",size:"sm",onClick:Ae,children:L.clearFilters}):null]}):null,ia?qe("chips"):null,Xe&&je.length?jsxs("div",{"data-dtp-slot":"data-table-grouping-bar","aria-label":L.grouping,className:"flex flex-wrap items-center gap-2",children:[jsxs("span",{className:"text-sm opacity-70",children:[L.grouping,":"]}),je.map((i,H)=>{let ne=typeof i.columnDef.header=="string"?i.columnDef.header:i.id,b=I=>{let K=[...fe.store.state.grouping],[de]=K.splice(H,1);de!==void 0&&(K.splice(I,0,de),fe.setGrouping(K));};return jsxs("div",{className:"inline-flex items-center rounded-md border",children:[jsx(t,{type:"button",variant:"ghost",size:"sm",disabled:H===0,onClick:()=>b(H-1),"aria-label":L.moveGroupingEarlier(ne),children:jsx("span",{"aria-hidden":"true",children:"\u2190"})}),jsxs(t,{type:"button",variant:"secondary",size:"sm",onClick:()=>i.toggleGrouping(),"aria-label":L.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:()=>b(H+1),"aria-label":L.moveGroupingLater(ne),children:jsx("span",{"aria-hidden":"true",children:"\u2192"})})]},`grouping-bar-${i.id}`)})]}):null]}),da&&_?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 T({filter:s,labels:C,onColumnFilterChange:m}){let[v,N]=D.useState("");if(s.type==="text")return jsxs(z,{className:"min-w-48 max-w-64",children:[jsx($,{value:typeof s.value=="string"?s.value:"",onChange:k=>{m(s.id,k.target.value);},placeholder:s.placeholder??s.label,"aria-label":`${C.filters}: ${s.label}`}),jsx(M,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})})]});if(s.type==="numberRange"||s.type==="dateRange"){let k=id(s.value),A=s.type==="numberRange"?"number":"date",Q=C.filterFrom??ie.filterFrom,P=C.filterTo??ie.filterTo;return jsxs("div",{role:"group","aria-label":`${C.filters}: ${s.label}`,className:"flex min-w-0 items-center gap-1.5",children:[jsxs(z,{className:"min-w-32 max-w-44",children:[jsx($,{type:A,inputMode:A==="number"?"decimal":void 0,value:k.from??"",min:s.min,max:s.max,step:A==="number"?s.step:void 0,onChange:q=>{m(s.id,{...k,from:qi(q.target.value,A)});},"aria-label":`${s.label}: ${Q}`}),jsx(M,{align:"inline-start",children:Q})]}),jsxs(z,{className:"min-w-32 max-w-44",children:[jsx($,{type:A,inputMode:A==="number"?"decimal":void 0,value:k.to??"",min:s.min,max:s.max,step:A==="number"?s.step:void 0,onChange:q=>{m(s.id,{...k,to:qi(q.target.value,A)});},"aria-label":`${s.label}: ${P}`}),jsx(M,{align:"inline-start",children:P})]})]})}let w=s.type==="boolean",G=s.type==="faceted",W=[{label:s.trueLabel??C.filterTrue??ie.filterTrue,value:"true"},{label:s.falseLabel??C.filterFalse??ie.filterFalse,value:"false"}],_=w?W:s.options,U=G&&v?_.filter(k=>k.label.toLocaleLowerCase().includes(v.toLocaleLowerCase())):_,R=typeof s.value=="string"||typeof s.value=="boolean"?String(s.value):"",f=Array.isArray(s.value)?s.value.map(String):R?[R]:[],x=f.length===0?s.label:`${s.label}: ${f.length===1?_.find(k=>k.value===String(f[0]))?.label??f[0]:f.length}`;return jsxs(r,{children:[jsx(S,{asChild:true,children:jsx(t,{type:"button",variant:"outline",size:"sm",children:x})}),jsxs(d,{align:"start",className:"w-56",children:[jsx(y,{children:s.label}),G&&s.searchable!==false?jsx("div",{className:"px-2 pb-2",children:jsxs(z,{children:[jsx($,{value:v,onChange:k=>{N(k.target.value);},placeholder:s.searchPlaceholder??C.facetSearch(s.label),"aria-label":C.facetSearch(s.label)}),jsx(M,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})})]})}):null,jsxs(p,{children:[s.type==="select"||w||G?jsx(u$1,{onClick:()=>{m(s.id,"");},children:C.allFilterOptions??ie.allFilterOptions}):null,U.map(k=>jsxs(l,{checked:f.includes(k.value),disabled:k.disabled,onCheckedChange:A=>{if(s.type==="select"||w){m(s.id,A===true?k.value:"");return}let Q=new Set(f);A===true?Q.add(k.value):Q.delete(k.value),m(s.id,Array.from(Q));},children:[jsx("span",{className:"min-w-0 flex-1 truncate",children:k.label}),k.count!==void 0?jsx("span",{className:"ml-3 tabular-nums opacity-70",children:k.count}):null]},k.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 id(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 qi(e,a){if(e)return a==="number"?Number(e):e}var rd=D.lazy(async()=>({default:(await import('./data-table-virtual-table-panel-M45Y62V4.js')).DataTableVirtualTablePanel}));function Ji(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(rd,{...e})}):jsx(e$1,{...e})}var ld="data-table-pro:saved-views:";var Zi=["sorting","columnVisibility","columnFilters","grouping","columnOrder","columnPinning","rowPinning","columnSizing","density","viewMode","showHiddenRows","globalFilter"],Xi=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 r=e.version??1,l=o.views;if(o.version!==r){if(!e.migrate)return [];try{l=e.migrate({version:o.version,views:o.views},r);}catch(d){return e.onError?.({error:d,operation:"migrate"}),[]}}return Array.isArray(l)?l.map(d=>dd(d,e.slices)).filter(d=>!!d):[]}function er(e,a,t){let o=a.trim();if(!e||!o)return;let r=new Date().toISOString(),l={id:Td(),name:o,createdAt:r,updatedAt:r,state:sd(t,e.slices)},d=[...Wa(e),l];return Wn(e,d,"create")?Qn(l):void 0}function ar(e,a,t){let o=t.trim();if(!e||!o)return;let r,l=Wa(e).map(d=>d.id!==a?d:(r={...d,name:o,updatedAt:new Date().toISOString()},r));if(r)return Wn(e,l,"rename")?Qn(r):void 0}function tr(e,a){if(!e)return false;let t=Wa(e),o=t.filter(r=>r.id!==a);return o.length!==t.length&&Wn(e,o,"delete")}function nr(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 r;try{let d={version:e.version??1,views:a};r=(e.serialize??JSON.stringify)(d);}catch(d){return e.onError?.({error:d,operation:"serialize"}),false}try{o.setItem(Yn(e.key),r);}catch(d){return e.onError?.({error:d,operation:"write"}),false}let l=a.map(Qn);return e.onChange?.(l,t),true}function sd(e,a){let t=new Set(a??Zi),o={};for(let r of Object.keys(e))t.has(r)&&Object.assign(o,{[r]:cd(r,e[r])});return o}function dd(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:or(e.state,a)}}function or(e,a){if(!Ye(e))return {};let t=new Set(a??Zi),o={},r=ud(e.sorting);t.has("sorting")&&r&&(o.sorting=r);let l=pd(e.pagination);t.has("pagination")&&l&&(o.pagination=l);let d=Kn(e.rowSelection);t.has("rowSelection")&&d&&(o.rowSelection=d);let p=Kn(e.columnVisibility);t.has("columnVisibility")&&p&&(o.columnVisibility=p);let u=gd(e.columnFilters);t.has("columnFilters")&&u&&(o.columnFilters=u);let y=lt(e.grouping);t.has("grouping")&&y&&(o.grouping=y);let V=e.expanded===true?true:Kn(e.expanded);t.has("expanded")&&V!==void 0&&(o.expanded=V);let S=lt(e.columnOrder);t.has("columnOrder")&&S&&(o.columnOrder=S);let z=md(e.columnPinning);t.has("columnPinning")&&z&&(o.columnPinning=z);let M=bd(e.rowPinning);t.has("rowPinning")&&M&&(o.rowPinning=M);let $=fd(e.columnSizing);return t.has("columnSizing")&&$&&(o.columnSizing=$),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:or(e.state,Object.keys(e.state))}}function cd(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 ud(e){if(Array.isArray(e))return e.filter(a=>Ye(a)&&typeof a.id=="string").map(a=>({id:a.id,desc:!!a.desc}))}function pd(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 gd(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 bd(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 fd(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 Td(){return typeof globalThis.crypto?.randomUUID=="function"?globalThis.crypto.randomUUID():(Xi+=1,`view-${Date.now().toString(36)}-${Xi.toString(36)}`)}function Yn(e){return `${ld}${e}`}function Ye(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ir({columns:e,currentColumnFilters:a,currentColumnPinning:t,effectiveColumnVisibility:o,enableColumnFilters:r,handleColumnFiltersChange:l$2,handleColumnPinningChange:d,labels:p$1,table:u,toolbarActions:y,visibleData:V,csvExport:S}){let z=D.useMemo(()=>k(e).map(({column:s$1,index:C$1})=>{let m=s(s$1,C$1),v=s$1.header,N=u$1(s$1),w=typeof v=="string"?v:N?C(N):C(m),G=t.left?.includes(m)===true?"left":t.right?.includes(m)===true?"right":false;return {id:m,label:w,visible:o[m]!==false,canHide:s$1.enableHiding!==false,pinned:G}}),[e,t,o]),M=D.useMemo(()=>r===false?[]:k(e).flatMap(({column:s$1,index:C$1})=>{let m=s$1.meta?.filter;if(!m)return [];let v=s(s$1,C$1),N=s$1.header,w=u$1(s$1),G=m.label??(typeof N=="string"?N:w?C(w):C(v)),W=a.find(f=>f.id===v),_=m.faceting?.options,U=m.type==="numberRange"?u.getColumn(v)?.getFacetedMinMaxValues():void 0,R=m.type==="faceted"&&_?typeof _=="function"?_({rows:V}):_:m.type==="faceted"?Array.from(u.getColumn(v)?.getFacetedUniqueValues()??[]).map(([f,x])=>({label:m.faceting?.getOptionLabel?.(f)??String(f),value:String(f),count:x})):typeof m.options=="function"?m.options({rows:V}):m.options??[];return [{id:v,label:G,type:m.type,value:W?.value,placeholder:m.placeholder,options:l(R),searchable:m.faceting?.searchable,searchPlaceholder:m.faceting?.searchPlaceholder,trueLabel:m.trueLabel,falseLabel:m.falseLabel,min:m.min??U?.[0],max:m.max??U?.[1],step:m.step}]}),[e,a,r,u,V]),$=D.useCallback((s,C)=>{l$2(m=>{let v=m.filter(N=>N.id!==s);return n(C)&&v.push({id:s,value:C}),v});},[l$2]),J=D.useCallback(()=>{l$2([]);},[l$2]),F=D.useCallback((s,C)=>{d(m=>{let v=(m.left??[]).filter(w=>w!==s),N=(m.right??[]).filter(w=>w!==s);return C==="left"&&v.push(s),C==="right"&&N.push(s),{left:v,right:N}});},[d]),g=D.useCallback(()=>{if(S)return p({csvExport:S,table:u,labels:p$1})},[S,p$1,u]),T=D.useMemo(()=>S?[...y??[],{key:"__csv_export__",label:p$1.exportCsv,icon:l$1,placement:"trailing",onClick:g}]:y??[],[S,g,p$1.exportCsv,y]);return {columnVisibilityOptions:z,effectiveToolbarActions:T,handleClearColumnFilters:J,handleToolbarColumnFilterChange:$,handleToolbarColumnPinningChange:F,toolbarColumnFilters:M}}function lr({columns:e,data:a,getRowId:t}){let o=D.useRef({columns:e,data:a,getRowId:t}),r=D.useRef(new Set);D.useEffect(()=>{if(!Dd())return;let l=o.current;l.data!==a&&rr(l.data,a)&&!r.current.has("data")&&Xt(r.current,"data","The data array identity changed. Keep rows immutable and memoize unchanged data so filtering, row models, and virtual measurements can be reused."),l.columns!==e&&rr(l.columns,e)&&!r.current.has("columns")&&Xt(r.current,"columns","The columns array identity changed. Memoize stable column definitions so the search index and table column model can be reused."),l.getRowId!==t&&!r.current.has("getRowId")&&Xt(r.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 p=0;pObject.is(t,a[o]))}function Xt(e,a,t){e.add(a),console.warn(`[data-table-pro] ${t}`);}function Dd(){return globalThis.process?.env?.NODE_ENV!=="production"}var Cd=D.lazy(()=>import('./data-table-auto-page-size-EICVZJQ5.js'));function Du(e){return yd(e)}function yd(e,a={}){let t$1=a.CardPanel??Ci,o=a.TablePanel??Ji,r$1=e.classNames??{},{rootClassName:l,Button:d,Checkbox:p$1,Input:u,ScrollArea:y,ScrollBar:V,Skeleton:S,Table:z,TableBody:M,TableCell:$,TableFooter:J="tfoot",TableHead:F,TableHeader:g$1,TableRow:T,Tooltip:s$1,TooltipContent:C,TooltipProvider:m=D.Fragment,TooltipTrigger:v}=e,N=ji(e),w=Qi(e),{DataTableFooter:G}=Ki(e),W=Yi(e),_=$i(e,w),U=D.lazy(async()=>{let{createDataTableStateOverlay:f}=await import('./data-table-state-overlay-AQ7VU6EM.js');return {default:f(e)}}),R={minSize:80,size:180,maxSize:720};return function({columns:x,data:k$1,getRowId:A,children:Q,title:P,description:q,toolbarQueryValue:j,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:L,hasNextPage:ye,sorting:We,onSortingChange:Xe,manualSorting:Ze=false,grouping:ia,onGroupingChange:ge,manualGrouping:ra=false,enableGrouping:Qe=false,groupedColumnMode:ba="reorder",aggregationFns:$e,pageIndex:ea,pageSize:fa,autoPageSize:aa=false,onPageIndexChange:Ta,onPageSizeChange:fe,pageCount:la,manualPagination:Ie=false,rowSelection:Da,onRowSelectionChange:Pe,enableRowSelection:Fe=false,enableMultiRowSelection:Pa=true,enableSubRowSelection:xa=true,getRowCanSelect:sa,rowSelectionSelectAllScope:ka="page",expanded:wa,onExpandedChange:me,getSubRows:Ne,manualExpanding:da=false,paginateExpandedRows:Ea,filterFromLeafRows:Ue,maxLeafRowFilterDepth:Ca,detailPanel:ca,getRowCanExpand:ze,renderExpandedRow:ua,columnOrder:ya,onColumnOrderChange:Fa,enableColumnReordering:qe=false,columnGroupHeaderHeight:Va,columnPinning:je,onColumnPinningChange:pa,enableColumnPinning:Ha=false,rowPinning:Ke,onRowPinningChange:Ma,enableRowPinning:Aa=false,keepPinnedRows:i=true,toolbarActions:H=[],selectionActions:ne=[],rowActions:b=[],csvExport:I,clipboard:K,enableCellSelection:de=false,cellSelection:le,defaultCellSelection:oe,onCellSelectionChange:Ba,gridCommands:ta,density:Ia,onDensityChange:Zt,enableDensityToggle:en=false,columnPrefsKey:B,persistence:Ve,savedViews:ce,toolbarDataOperations:ga,initialState:te,state:be,onStateChange:he,apiRef:cr,labels:Xn,summaryRows:ur=[],cardRenderer:an,cardSizing:pr,cardGridClassName:gr,cardClassName:mr,viewMode:Zn,onViewModeChange:br,enableViewToggle:fr=false,enablePrint:eo=false,enableFullscreen:Ct=false,emptyState:Tr,stateOverlay:Qa,isLoading:ao=false,loadingRowCount:Dr,getRowLoadingState:wr,hiddenRows:to,showHiddenRows:no,onShowHiddenRowsChange:Cr,infiniteScroll:yt,editableRows:za,columnVisibility:oo,onColumnVisibilityChange:yr,columnSizing:io,onColumnSizingChange:hr,enableColumnResizing:ro=false,columnResizeMode:Rr="onEnd",layoutMode:ht="fill",stickyHeader:Sr=true,scrollbarVisibility:lo,showFooter:vr=true,showToolbar:so=true,dir:tn="ltr",flexGrow:qa=true,toolbarVisibility:co,className:Pr,tableClassName:xr,tableContainerClassName:uo,stripedRows:po=false,getRowClassName:go,onRowClick:nn,onActionError:st,dragAndDrop:Ya,fileUpload:ha,virtualization:on,accessibility:mo,interactiveGrid:Rt}){let Ga=D.useRef(null),bo=D.useRef(null),fo=D.useRef(null),kr=D.useRef(null),rn=D.useRef(null),Er=D.useRef(null),[To,ln]=D.useState(0),Fr=D.useId(),Vr=D.useId();lr({columns:x,data:k$1,getRowId:A}),D.useMemo(()=>t(x),[x]);let Me=D.useMemo(()=>Si(Xn),[Xn]),sn=ga===true?{columnChooser:true,savedViews:true,resetLayout:true}:ga===false?{}:ga??{},dn=mo?.mode==="grid"||Rt===true||typeof Rt=="object",[La,St]=xe({defaultValue:oe??null,onChange:Ba,value:le}),Mr=j??be?.globalFilter,Ar=We??be?.sorting,Ir=ia??be?.grouping,vt=ea??be?.pagination?.pageIndex,Ja=fa??be?.pagination?.pageSize,zr=Da??be?.rowSelection,Lr=oo??be?.columnVisibility,Nr=Ee??be?.columnFilters,Or=wa??be?.expanded,_r=ya??be?.columnOrder,Hr=je??be?.columnPinning,Br=Ke??be?.rowPinning,Gr=io??be?.columnSizing,$r=Ia??be?.density,Ur=Zn??be?.viewMode,jr=no??be?.showHiddenRows,Do=so&&(co?.title??true),wo=Do&&P?Fr:void 0,Co=Do&&q?Vr:void 0;Rd(be,{columnFilters:Ee!==void 0,columnOrder:ya!==void 0,columnPinning:je!==void 0,rowPinning:Ke!==void 0,columnSizing:io!==void 0,columnVisibility:oo!==void 0,density:Ia!==void 0,expanded:wa!==void 0,grouping:ia!==void 0,globalFilter:j!==void 0,pagination:ea!==void 0||fa!==void 0,rowSelection:Da!==void 0,showHiddenRows:no!==void 0,sorting:We!==void 0,viewMode:Zn!==void 0});let Kr=Be("globalFilter",E,he),Wr=Be("sorting",Xe,he),Qr=Be("grouping",ge,he),qr=Be("rowSelection",Pe,he),Yr=Be("columnVisibility",yr,he),Jr=Be("columnFilters",Ce,he),Xr=Be("expanded",me,he),Zr=Be("columnOrder",Fa,he),el=Be("columnPinning",pa,he),al=Be("rowPinning",Ma,he),tl=Be("columnSizing",hr,he),nl=Be("density",Zt,he),ol=Be("viewMode",br,he),il=Be("showHiddenRows",Cr,he),Pt=D.useCallback(n=>{Ta?.(n),he?.(h=>({...h,pagination:{pageIndex:n,pageSize:Ja??h.pagination.pageSize}}));},[Ta,he,Ja]),cn=D.useCallback(n=>{fe?.(n),he?.(h=>({...h,pagination:{pageIndex:vt??h.pagination.pageIndex,pageSize:n}}));},[fe,he,vt]),Le=D.useCallback((n,h)=>{hd(h,n,st);},[st]),yo=D.useMemo(()=>b.map(n=>({...n,onClick:h=>{Le({actionKey:n.key,row:h,source:"rowAction"},()=>n.onClick(h));}})),[b,Le]),ho=D.useMemo(()=>nn?n=>{Le({row:n.row,source:"rowClick"},()=>nn(n));}:void 0,[nn,Le]),rl=D.useCallback((n,h)=>{st?.({error:n,row:h,source:"edit"});},[st]),{containerWidth:ll,currentColumnFilters:xt,currentColumnOrder:un,currentColumnPinning:kt,currentRowPinning:pn,currentColumnSizing:Xa,currentColumnVisibility:Ro,currentDensity:dt,currentExpanded:Et,currentGrouping:gn,currentPagination:na,currentRowSelection:Ft,currentShowHiddenRows:mn,currentSorting:Vt,currentViewMode:Za,effectiveColumnVisibility:Mt,globalFilterValue:sl,handleDensityChange:bn,handleShowHiddenRowsChange:fn,handleViewModeChange:Tn,localSearchValue:$a,resolvedLoadingRowCount:dl,resolvedToolbarQueryPlaceholder:cl,selectedRowIds:ul,selectedRows:pl,setCurrentColumnFilters:So,setCurrentColumnOrder:gl,setCurrentColumnPinning:At,setCurrentRowPinning:ml,setCurrentColumnVisibility:bl,setCurrentExpanded:vo,setCurrentGrouping:fl,setCurrentRowSelection:It,setCurrentSorting:Tl,setLocalColumnSizing:Dl,setLocalPagination:Dn,setLocalSearchValue:wn,shouldRenderInitialLoading:Cn,tableData:wl,tableGetRowId:Cl,visibleData:yl}=_i({columnFilters:Nr,columnOrder:_r,columnPinning:Hr,rowPinning:Br,columnSizing:Gr,columnPrefsKey:B,persistence:Ve,columnVisibility:Lr,columns:x,containerRef:Ga,data:k$1,density:$r,enableRowSelection:Fe,enableToolbarQueryFiltering:Se,expanded:Or,grouping:Ir,getSubRows:Ne,getRowId:A,hiddenRows:to,isLoading:ao,loadingRowCount:Dr,manualFiltering:Re,initialState:te,onColumnFiltersChange:Jr,onColumnOrderChange:Zr,onColumnPinningChange:el,onRowPinningChange:al,onColumnSizingChange:tl,onColumnVisibilityChange:Yr,onDensityChange:nl,onExpandedChange:Xr,onGroupingChange:Qr,onPageIndexChange:Pt,onRowSelectionChange:qr,onShowHiddenRowsChange:il,onSortingChange:Wr,onToolbarQueryValueChange:Kr,onViewModeChange:ol,pageIndex:vt,pageSize:Ja,resolvedLabels:Me,rowSelection:zr,rowsPerPageOptions:ve,selectionActions:ne,showHiddenRows:jr,sorting:Ar,toolbarQueryDebounceMs:re,toolbarQueryPlaceholder:Z,toolbarQueryValue:Mr,viewMode:Ur}),yn=!!(ua&&!ca&&!Ne),et=ca??(ua?{getRowCanExpand:Ne?void 0:ze,render:ua}:void 0),[hn,Po]=xe({defaultValue:()=>yn?te?.expanded??{}:{},onChange:yn?vo:et?.onExpandedChange,value:yn?Et:et?.expanded}),{cancelEditing:Rn,clearEditError:xo,draftValues:hl,editErrors:Sn,editingRowId:vn,isEditDirty:Pn,isSavingEdit:xn,saveEdit:kn,setDraftValues:Rl,setEditingRowId:Sl,startEditingRow:vl}=a$3({columns:x,editableRows:za,onError:rl}),Pl=D.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,xl=D.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]),kl=aa===true||ko!==void 0,zt=D.useCallback(()=>typeof window>"u"||typeof window.print!="function"?false:(window.print(),true),[]),Lt=D.useCallback(async()=>{let n=Ga.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,El]=D.useState(false);D.useEffect(()=>{if(!Ct||typeof document>"u")return;let n=()=>{El(document.fullscreenElement===Ga.current);};return n(),document.addEventListener("fullscreenchange",n),()=>document.removeEventListener("fullscreenchange",n)},[Ct]);let Fl=D.useCallback(()=>{ha?.disabled||bo.current?.click();},[ha?.disabled]),Vl=D.useCallback(n=>{Le({source:"fileUpload"},()=>ha?.onFilesSelected(n));},[ha,Le]),Ml=D.useMemo(()=>{if(ht!=="fill")return false;let n=k(x).filter(({column:h,index:se})=>Mt[s(h,se)]!==false);return n.length>0&&n.every(({column:h,index:se})=>{let ut=s(h,se);return g(h)||Object.prototype.hasOwnProperty.call(Xa,ut)})},[x,Xa,Mt,ht]),Al=vi({Button:d,Checkbox:p$1,DataTableRowActions:w,Tooltip:s$1,TooltipContent:C,TooltipTrigger:v,cancelEditing:Rn,columns:x,editableRows:za,editErrors:Sn,editingRowId:vn,enableRowSelection:Fe,enableRowPinning:Aa,hasTreeExpansion:!!Ne,isSavingEdit:xn,isEditDirty:Pn,includeFillSpacer:Ml,labels:Me,lastSelectedRowIdRef:Er,detailPanel:et,detailExpanded:hn,onDetailExpandedChange:Po,rowSelectionSelectAllScope:ka,rowActions:yo,saveEdit:kn,startEditingRow:vl,tableRef:rn}),Il=D.useMemo(()=>i$1(x),[x]),{effectivePageCount:zl,footerTotalRowCount:Ll,handleFooterPageIndexChange:Nl,handleFooterPageSizeChange:Ol,isPageCountKnown:_l,renderedRows:Fo,topPinnedRows:Hl,bottomPinnedRows:Bl,reorderColumn:Vo,rowsToRender:Gl,sentinelRef:Mo,table:ae,virtualPaddingBottom:$l,virtualPaddingTop:Ul,visibleLeafColumns:Vn}=Vi({autoResetPageIndex:false,columnGroupPaths:Il,columnResizeMode:Rr,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:sa,getRowCanExpand:ze,getSubRows:Ne,aggregationFns:$e,groupedColumnMode:ba,globalFilterFn:ke,globalFilterValue:sl,hasNextPage:ye,handleColumnFiltersChange:So,handleColumnOrderChange:gl,handleColumnPinningChange:At,handleRowPinningChange:ml,handleColumnVisibilityChange:bl,handleExpandedChange:vo,handleGroupingChange:fl,infiniteScroll:yt,keepPinnedRows:i,manualFiltering:Re,manualGrouping:ra,manualExpanding:da,manualPagination:Ie,manualSorting:Ze,onActionError:st,onPageIndexChange:Pt,onPageSizeChange:cn,pageCount:la,pageIndex:vt,pageSize:Ja,paginateExpandedRows:Ea,filterFromLeafRows:Ue,maxLeafRowFilterDepth:Ca,setCurrentRowSelection:It,setCurrentSorting:Tl,setLocalColumnSizing:Dl,setLocalPagination:Dn,shouldRenderInitialLoading:Cn,tableColumns:Al,tableData:wl,tableGetRowId:Cl,tableRef:rn,totalRowCount:L,virtualization:on}),Ao=Bi({columns:x,columnSizing:Xa,editableRows:!!za,enableRowSelection:Fe,hasRowActions:b.length>0,hasRowExpansion:!!(Ne||et),layoutMode:ht,uiClassNames:r$1,visibleLeafColumns:Vn}),{explicitlySizedColumnIds:Nt,fillMinWidth:jl,getColumnLayout:Kl}=Ao,Wl=D.useMemo(()=>new Set(k(x).flatMap(({column:n,index:h})=>Object.prototype.hasOwnProperty.call(n,"cell")&&typeof n.cell=="function"?[s(n,h)]:[])),[x]),Ql=Vn.length,ql=D.useMemo(()=>({Checkbox:p$1,Input:u,Skeleton:S,TableCell:$,TableRow:T}),[]),Yl=D.useMemo(()=>k(x).some(({column:n})=>n.meta?.cardTitle),[x]),Jl=D.useCallback((n,h)=>{Nt.has(n)||Object.prototype.hasOwnProperty.call(ae.store.state.columnSizing,n)||flushSync(()=>{ae.setColumnSizing(se=>({...se,[n]:h}));});},[Nt,ae]),Xl=D.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??Tr,Io=typeof An=="function"?An({rows:Mn,toolbarQueryValue:$a}):An,zo=D.useMemo(()=>Qa?{...Qa,onRetry:Qa.onRetry?()=>Le({source:"retry"},Qa.onRetry):void 0}:void 0,[Le,Qa]),Lo=zo?.error!=null?jsx(D.Suspense,{fallback:null,children:jsx(U,{labels:Me,overlay:zo,rows:Mn,toolbarQueryValue:$a})}):void 0,{columnVisibilityOptions:Zl,effectiveToolbarActions:No,handleClearColumnFilters:es,handleToolbarColumnFilterChange:as,handleToolbarColumnPinningChange:ts,toolbarColumnFilters:ns}=ir({columns:x,currentColumnFilters:xt,currentColumnPinning:kt,csvExport:I,effectiveColumnVisibility:Mt,enableColumnFilters:Ae,handleColumnFiltersChange:So,handleColumnPinningChange:At,labels:Me,table:ae,toolbarActions:H,visibleData:yl}),os=D.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]),is=D.useMemo(()=>ne.map(n=>({...n,onClick:h=>{Le({actionKey:n.key,source:"selectionAction"},()=>n.onClick(h));}})),[Le,ne]),Oo=D.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:mn,globalFilter:$a}),[xt,un,kt,pn,Xa,Ro,dt,Et,gn,na,Ft,mn,Vt,Za,$a]),ct=D.useCallback(()=>vd(Oo),[Oo]),Na=D.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&&bn(n.density),n.viewMode!==void 0&&Tn(n.viewMode),n.showHiddenRows!==void 0&&fn(n.showHiddenRows),n.globalFilter!==void 0&&wn(n.globalFilter);},[bn,fn,Tn,wn,At,It,ae]),at=D.useCallback(()=>zi(Ve??B),[B,Ve]),In=D.useCallback(n=>{n?.clearPersistence&&at(),Na({columnVisibility:te?.columnVisibility??{},columnOrder:te?.columnOrder??[],columnPinning:te?.columnPinning??r(x),rowPinning:te?.rowPinning??{top:[],bottom:[]},columnSizing:te?.columnSizing??{}});},[at,x,te,Na]),_o=D.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??r(x),rowPinning:te?.rowPinning??{top:[],bottom:[]},columnSizing:te?.columnSizing??{},density:te?.density??"comfortable",viewMode:te?.viewMode??"table",showHiddenRows:te?.showHiddenRows??false,globalFilter:te?.globalFilter??""});},[at,x,te,Na,ve]),Ho=D.useCallback(()=>Wa(ce),[ce]),Ot=D.useCallback(n=>er(ce,n,ct()),[ct,ce]),zn=D.useCallback(n=>{let h=Wa(ce).find(se=>se.id===n);return h?(Na(h.state),ce?.onApply?.(h),true):false},[Na,ce]),_t=D.useCallback((n,h)=>ar(ce,n,h),[ce]),Ht=D.useCallback(n=>tr(ce,n),[ce]),Bo=D.useCallback(()=>nr(ce),[ce]),rs=D.useMemo(()=>Wa(ce),[ce,To]),ls=D.useCallback(n=>{let h=Ot(n);return h&&ln(se=>se+1),h},[Ot]),ss=D.useCallback((n,h)=>{let se=_t(n,h);return se&&ln(ut=>ut+1),se},[_t]),ds=D.useCallback(n=>{let h=Ht(n);return h&&ln(se=>se+1),h},[Ht]),Go=D.useCallback(n=>p({csvExport:n??(I||true),labels:Me,table:ae}),[I,Me,ae]),Ln=D.useCallback(async n=>{let{copyDataTableToClipboard:h}=await import('./data-table-clipboard-RNEFAPJB.js');return h({clipboard:n??(K?.copy===false?false:La?{...K?.copy===true?{}:K?.copy,scope:"cellSelection"}:K?.copy??true),cellSelection:La,table:ae})},[K?.copy,La,ae]),$o=D.useCallback((n,h="top")=>{try{let se=ae.getRow(n,!0);return se.getCanPin()?(se.pin(h),!0):!1}catch{return false}},[ae]),Uo=D.useCallback(n=>{try{let h=ae.getRow(n,!0);return h.getCanPin()?(h.pin(!1),!0):!1}catch{return false}},[ae]);return D.useImperativeHandle(cr,()=>({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:()=>{Ga.current?.focus();},scrollToRow:n=>sr(Ga.current,"row",n),scrollToColumn:n=>sr(Ga.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(m,{children:jsxs("div",{ref:Ga,"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",l),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}!K?.copy||!(n.ctrlKey||n.metaKey)||n.key.toLowerCase()!=="c"||Jn(n.target)||(n.preventDefault(),Le({source:"clipboardCopy"},async()=>{await Ln(K.copy===true?void 0:La&&typeof K.copy=="object"&&!K.copy.scope?{...K.copy,scope:"cellSelection"}:K.copy);}));},onPaste:n=>{let h=K?.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-RNEFAPJB.js');return h.onPaste({table:ae,text:se,values:ut(se)})}));},children:[kl?jsx(D.Suspense,{fallback:null,children:jsx(Cd,{config:ko,currentPageSize:na.pageSize,enabled:true,onPageSizeChange:xl,viewportElement:En,viewportHeight:Fn})}):null,ha?jsx("input",{ref:bo,className:"hidden",type:"file",accept:ha.accept,multiple:ha.multiple??true,disabled:ha.disabled,onChange:n=>{let h=n.currentTarget.files;h?.length&&Vl(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",Pr),children:[so?jsx(Ri,{allRows:Mn,columnFilters:ns,columnVisibilityOptions:Zl,compactToolbar:X,customToolbar:Ge,DataTableToolbar:W,density:dt,description:q,descriptionId:Co,effectiveToolbarActions:os,enableColumnPinning:Ha,enableGrouping:Qe,enableToolbarColumnChooser:sn.columnChooser===true,enableToolbarFilterChips:!!ga,enableToolbarResetLayout:sn.resetLayout===true,enableToolbarSavedViews:sn.savedViews===true&&!!ce,enableDensityToggle:en,enableViewToggle:fr&&!!an,hiddenRowsLabel:to?.label,labels:Me,onClearColumnFilters:es,onColumnFilterChange:as,onColumnPinningChange:ts,onDensityChange:bn,onShowHiddenRowsChange:fn,onToolbarQueryValueChange:wn,reorderColumn:Vo,onResetColumnLayout:In,onCreateSavedView:ls,onApplySavedView:zn,onRenameSavedView:ss,onDeleteSavedView:ds,onViewModeChange:Tn,openFileDialog:ha?Fl:void 0,selectedRowIds:ul,selectedRows:pl,selectionActions:is,savedViews:rs,showHiddenRows:mn,table:ae,title:P,titleId:wo,toolbarQueryPlaceholder:cl,toolbarQueryValue:$a,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:gr,cardSizing:pr,cardRenderer:an,containerWidth:ll,currentDetailExpanded:hn,currentRowSelection:Ft,DataTableCardView:_,DataTableEmptyState:N,dragAndDrop:Ya,editableRows:za,editingRowId:vn,emptyNode:Io,stateOverlayNode:Lo,enableRowSelection:Fe,flexGrow:qa,getRowClassName:go,hasCardTitle:Yl,infiniteScroll:yt,localSearchValue:$a,onRowClick:ho,renderedRows:Fo,detailPanel:et,resolvedLabels:Me,resolvedLoadingRowCount:dl,rowActions:yo,ScrollArea:y,scrollbarVisibility:lo,sentinelRef:Mo,setCurrentDetailExpanded:Po,setCurrentRowSelection:It,setEditingRowId:Sl,shouldRenderInitialLoading:Cn,tableContainerClassName:uo,uiClassNames:r$1,virtualization:on}):jsx(o,{ariaDescribedBy:Co,ariaLabelledBy:wo,bodyRowComponents:ql,columnLayouts:Ao.columnLayouts,currentDensity:dt,columnGroupHeaderHeight:Va,currentDetailExpanded:hn,currentSorting:Vt,dir:tn,DataTableEmptyState:N,dragAndDrop:Ya,draggedColumnIdRef:kr,draftValues:hl,editingRowId:vn,editingContext:Pl,emptyNode:Io,stateOverlayNode:Lo,enableColumnReordering:qe,enableColumnResizing:ro,explicitCustomCellColumnIds:Wl,fillMinWidth:jl,flexGrow:qa,getColumnLayout:Kl,getRowClassName:go,getRowLoadingState:wr,infiniteScroll:yt,layoutMode:ht,localSearchValue:$a,onRowClick:ho,primeColumnForResize:Jl,renderedRows:Fo,detailPanel:et,topPinnedRows:Hl,bottomPinnedRows:Bl,reorderColumn:Vo,resetColumnSize:Xl,resolvedLabels:Me,rowsToRender:Gl,ScrollArea:y,ScrollBar:V,scrollbarVisibility:lo,sentinelRef:Mo,setDraftValues:Rl,shouldRenderInitialLoading:Cn,stickyHeader:Sr,stripedRows:po,summaryRows:ur,table:ae,tableClassName:xr,tableContainerClassName:uo,Table:z,TableBody:M,TableCell:$,TableFooter:J,TableHead:F,TableHeader:g$1,TableRow:T,tableScrollContainerRef:fo,tableScrollElement:En,uiClassNames:r$1,viewportHeight:Fn,virtualization:on,gridMode:dn,gridPageSize:mo?.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:L,virtualPaddingBottom:$l,virtualPaddingTop:Ul,visibleLeafColumnCount:Ql,visibleLeafColumns:Vn})}),jsx(yi,{currentPagination:na,DataTableFooter:G,effectivePageCount:zl,footerTotalRowCount:Ll,handleFooterPageIndexChange:Nl,handleFooterPageSizeChange:Ol,labels:Me,pageCountKnown:_l,rowsPerPageOptions:ve,showFooter:vr&&!yt?.enabled,children:Q})]})})]})})}}function hd(e,a,t){let o;try{o=e();}catch(r){t?.({...a,error:r});return}Promise.resolve(o).catch(r=>{t?.({...a,error:r});});}function Be(e,a,t){let o=D.useCallback(r=>{a?.(r),t?.(l=>({...l,[e]:r}));},[e,a,t]);return a||t?o:void 0}function Rd(e,a){let t=D.useRef(new Set);D.useEffect(()=>{if(!(!e||!Sd()))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 Sd(){return globalThis.process?.env?.NODE_ENV!=="production"}function vd(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 sr(e,a,t){if(!e)return false;let o=a==="row"?"data-row-id":"data-column-id",r=Array.from(e.querySelectorAll(`[${o}]`)).find(l=>l.getAttribute(o)===t);return r?(r.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{Ci as a,yi as b,Ri as c,vi as d,xe as e,Vi as f,_i as g,Bi as h,Du as i,yd as j};//# sourceMappingURL=chunk-NYFLVBJD.js.map +//# sourceMappingURL=chunk-NYFLVBJD.js.map \ No newline at end of file diff --git a/dist/chunk-XZTPNWJD.js.map b/dist/chunk-NYFLVBJD.js.map similarity index 99% rename from dist/chunk-XZTPNWJD.js.map rename to dist/chunk-NYFLVBJD.js.map index d503a5b..eea138f 100644 --- a/dist/chunk-XZTPNWJD.js.map +++ b/dist/chunk-NYFLVBJD.js.map @@ -1 +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","wi","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","Oa","currentValue","currentValueRef","setValue","updater","nextValue","useDataTableInfiniteScroll","enabled","hasMore","isLoadingMore","onLoadMore","onError","_a","isRequestInFlightRef","onLoadMoreEvent","onErrorEvent","error","target","observer","entries","result","useDataTablePaginationClamp","maxPageIndex","onPageIndexChange","setLocalPageIndex","xi","nextPageIndex","useDataTableSearchIndex","Ei","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","Ra","ids","hasExplicitDataTableColumnSize","minimumColumnWidths","widths","configuredMinWidth","getConfiguredColumnMinWidth","pinnedColumns","leftOffset","getFixedSide","getColumnLayoutSize","rightOffset","fixedWidthColumnIds","columnLayouts","layouts","isSelectionColumn","isExpansionColumn","isActionsColumn","isUtilityColumn","isSpacerColumn","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","Wi","IconX","allowEdit","canEditRow","canPin","IconDots","IconEdit","Fragment","Icon","resolveRowActionLabel","LazyToolbarDataOperations","oa","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-XZTPNWJD.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 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 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 fixedWidthColumnIds = React.useMemo(() => {\n return new Set([\n ...explicitlySizedColumnIds,\n ...Object.keys(columnSizing),\n ]);\n }, [columnSizing, explicitlySizedColumnIds]);\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 columnMinWidth = configuredMinWidth;\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 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\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 ?? 0)\n );\n }, 0);\n }, [\n columnLayouts,\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 hasExplicitDataTableColumnSize,\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 hasExplicitDataTableColumnSize(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 +{"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","wi","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","Oa","currentValue","currentValueRef","setValue","updater","nextValue","useDataTableInfiniteScroll","enabled","hasMore","isLoadingMore","onLoadMore","onError","_a","isRequestInFlightRef","onLoadMoreEvent","onErrorEvent","error","target","observer","entries","result","useDataTablePaginationClamp","maxPageIndex","onPageIndexChange","setLocalPageIndex","xi","nextPageIndex","useDataTableSearchIndex","Ei","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","Ra","ids","hasExplicitDataTableColumnSize","minimumColumnWidths","widths","configuredMinWidth","getConfiguredColumnMinWidth","pinnedColumns","leftOffset","getFixedSide","getColumnLayoutSize","rightOffset","fixedWidthColumnIds","columnLayouts","layouts","isSelectionColumn","isExpansionColumn","isActionsColumn","isUtilityColumn","isSpacerColumn","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","Wi","IconX","allowEdit","canEditRow","canPin","IconDots","IconEdit","Fragment","Icon","resolveRowActionLabel","LazyToolbarDataOperations","oa","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-NYFLVBJD.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 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 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 fixedWidthColumnIds = React.useMemo(() => {\n return new Set([\n ...explicitlySizedColumnIds,\n ...Object.keys(columnSizing),\n ]);\n }, [columnSizing, explicitlySizedColumnIds]);\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 columnMinWidth = configuredMinWidth;\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 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\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 ?? 0)\n );\n }, 0);\n }, [\n columnLayouts,\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 hasExplicitDataTableColumnSize,\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 hasExplicitDataTableColumnSize(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-IZQDLLCH.js b/dist/chunk-UADXBI2T.js similarity index 86% rename from dist/chunk-IZQDLLCH.js rename to dist/chunk-UADXBI2T.js index c3ac5cd..46e6ed4 100644 --- a/dist/chunk-IZQDLLCH.js +++ b/dist/chunk-UADXBI2T.js @@ -1,2 +1,2 @@ -import {b,e}from'./chunk-YKVWP3UJ.js';import*as i from'react';import {useVirtualizer}from'@tanstack/react-virtual';import {jsx}from'react/jsx-runtime';function V(t){let{renderedRows:n,shouldRenderInitialLoading:T,tableScrollElement:s,viewportHeight:w=0,virtualization:d}=t,l=typeof d=="object"?d:void 0,c=!T&&(d===true||l?.enabled===true),a=c&&!!s&&w>0,f=i.useCallback(e=>n[e]?.id??e,[n]),o=useVirtualizer({count:c?n.length:0,enabled:a,estimateSize:()=>l?.estimateRowHeight??48,getItemKey:f,getScrollElement:()=>s??null,overscan:l?.overscan??8}),u=a?o.getVirtualItems():[],h=a?u.flatMap(e=>{let r=n[e.index];return r?[{row:r,rowIndex:e.index}]:[]}):n.slice(0,Math.max(1,Math.floor(l?.fallbackRowCount??20))).map((e,r)=>({row:e,rowIndex:r})),m=a?u[0]?.start??0:0,P=a?Math.max(0,o.getTotalSize()-(u.at(-1)?.end??m)):0,v=i.useCallback(e=>{!t.gridMode||!a||o.scrollToIndex(Math.max(0,e-t.topPinnedRows.length),{align:"auto"});},[t.gridMode,t.topPinnedRows.length,o,a]),M=i.useCallback(e=>{e&&o.measureElement(e);},[o]);return jsx(b,{measureRow:a?M:void 0,children:jsx(e,{...t,rowsToRender:h,virtualPaddingBottom:P,virtualPaddingTop:m,onGridActiveRowIndexChange:v})})}export{V as a};//# sourceMappingURL=chunk-IZQDLLCH.js.map -//# sourceMappingURL=chunk-IZQDLLCH.js.map \ No newline at end of file +import {b,e}from'./chunk-YESJ52D2.js';import*as i from'react';import {useVirtualizer}from'@tanstack/react-virtual';import {jsx}from'react/jsx-runtime';function V(t){let{renderedRows:n,shouldRenderInitialLoading:T,tableScrollElement:s,viewportHeight:w=0,virtualization:d}=t,l=typeof d=="object"?d:void 0,c=!T&&(d===true||l?.enabled===true),a=c&&!!s&&w>0,f=i.useCallback(e=>n[e]?.id??e,[n]),o=useVirtualizer({count:c?n.length:0,enabled:a,estimateSize:()=>l?.estimateRowHeight??48,getItemKey:f,getScrollElement:()=>s??null,overscan:l?.overscan??8}),u=a?o.getVirtualItems():[],h=a?u.flatMap(e=>{let r=n[e.index];return r?[{row:r,rowIndex:e.index}]:[]}):n.slice(0,Math.max(1,Math.floor(l?.fallbackRowCount??20))).map((e,r)=>({row:e,rowIndex:r})),m=a?u[0]?.start??0:0,P=a?Math.max(0,o.getTotalSize()-(u.at(-1)?.end??m)):0,v=i.useCallback(e=>{!t.gridMode||!a||o.scrollToIndex(Math.max(0,e-t.topPinnedRows.length),{align:"auto"});},[t.gridMode,t.topPinnedRows.length,o,a]),M=i.useCallback(e=>{e&&o.measureElement(e);},[o]);return jsx(b,{measureRow:a?M:void 0,children:jsx(e,{...t,rowsToRender:h,virtualPaddingBottom:P,virtualPaddingTop:m,onGridActiveRowIndexChange:v})})}export{V as a};//# sourceMappingURL=chunk-UADXBI2T.js.map +//# sourceMappingURL=chunk-UADXBI2T.js.map \ No newline at end of file diff --git a/dist/chunk-IZQDLLCH.js.map b/dist/chunk-UADXBI2T.js.map similarity index 99% rename from dist/chunk-IZQDLLCH.js.map rename to dist/chunk-UADXBI2T.js.map index 5897b40..83c8a37 100644 --- a/dist/chunk-IZQDLLCH.js.map +++ b/dist/chunk-UADXBI2T.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/core/data-table/data-table-virtual-table-panel.tsx"],"names":["DataTableVirtualTablePanel","props","renderedRows","shouldRenderInitialLoading","tableScrollElement","viewportHeight","virtualization","virtualizationConfig","enableVirtualization","shouldUseVirtualRows","getItemKey","index","rowVirtualizer","useVirtualizer","virtualItems","rowsToRender","virtualItem","row","rowIndex","virtualPaddingTop","virtualPaddingBottom","handleGridActiveRowIndexChange","gridRowIndex","measureRow","element","jsx","DataTableVirtualRowMeasurementProvider","DataTableTablePanel"],"mappings":"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","file":"chunk-IZQDLLCH.js","sourcesContent":["import * as React from \"react\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport { DataTableTablePanel } from \"./data-table-table-panel\";\nimport type { DataTableTablePanelProps } from \"./data-table-table-panel\";\nimport { DataTableVirtualRowMeasurementProvider } from \"./data-table-virtual-row-measurement\";\n\nexport function DataTableVirtualTablePanel(\n props: DataTableTablePanelProps,\n) {\n const {\n renderedRows,\n shouldRenderInitialLoading,\n tableScrollElement,\n viewportHeight = 0,\n virtualization,\n } = props;\n const virtualizationConfig =\n typeof virtualization === \"object\" ? virtualization : undefined;\n const enableVirtualization =\n !shouldRenderInitialLoading &&\n (virtualization === true || virtualizationConfig?.enabled === true);\n const shouldUseVirtualRows =\n enableVirtualization && Boolean(tableScrollElement) && viewportHeight > 0;\n const getItemKey = React.useCallback(\n (index: number) => renderedRows[index]?.id ?? index,\n [renderedRows],\n );\n\n // eslint-disable-next-line react-hooks/incompatible-library -- TanStack Virtual owns its instance functions.\n const rowVirtualizer = useVirtualizer({\n count: enableVirtualization ? renderedRows.length : 0,\n enabled: shouldUseVirtualRows,\n estimateSize: () => virtualizationConfig?.estimateRowHeight ?? 48,\n getItemKey,\n getScrollElement: () => tableScrollElement ?? null,\n overscan: virtualizationConfig?.overscan ?? 8,\n });\n const virtualItems = shouldUseVirtualRows\n ? rowVirtualizer.getVirtualItems()\n : [];\n const rowsToRender = shouldUseVirtualRows\n ? virtualItems.flatMap((virtualItem) => {\n const row = renderedRows[virtualItem.index];\n return row ? [{ row, rowIndex: virtualItem.index }] : [];\n })\n : renderedRows\n .slice(\n 0,\n Math.max(\n 1,\n Math.floor(virtualizationConfig?.fallbackRowCount ?? 20),\n ),\n )\n .map((row, rowIndex) => ({ row, rowIndex }));\n const virtualPaddingTop = shouldUseVirtualRows\n ? (virtualItems[0]?.start ?? 0)\n : 0;\n const virtualPaddingBottom = shouldUseVirtualRows\n ? Math.max(\n 0,\n rowVirtualizer.getTotalSize() -\n (virtualItems.at(-1)?.end ?? virtualPaddingTop),\n )\n : 0;\n const handleGridActiveRowIndexChange = React.useCallback(\n (gridRowIndex: number) => {\n if (!props.gridMode || !shouldUseVirtualRows) return;\n rowVirtualizer.scrollToIndex(\n Math.max(0, gridRowIndex - props.topPinnedRows.length),\n { align: \"auto\" },\n );\n },\n [\n props.gridMode,\n props.topPinnedRows.length,\n rowVirtualizer,\n shouldUseVirtualRows,\n ],\n );\n const measureRow = React.useCallback>(\n (element) => {\n if (element) {\n rowVirtualizer.measureElement(element);\n }\n },\n [rowVirtualizer],\n );\n\n return (\n \n \n \n );\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/core/data-table/data-table-virtual-table-panel.tsx"],"names":["DataTableVirtualTablePanel","props","renderedRows","shouldRenderInitialLoading","tableScrollElement","viewportHeight","virtualization","virtualizationConfig","enableVirtualization","shouldUseVirtualRows","getItemKey","index","rowVirtualizer","useVirtualizer","virtualItems","rowsToRender","virtualItem","row","rowIndex","virtualPaddingTop","virtualPaddingBottom","handleGridActiveRowIndexChange","gridRowIndex","measureRow","element","jsx","DataTableVirtualRowMeasurementProvider","DataTableTablePanel"],"mappings":"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","file":"chunk-UADXBI2T.js","sourcesContent":["import * as React from \"react\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport { DataTableTablePanel } from \"./data-table-table-panel\";\nimport type { DataTableTablePanelProps } from \"./data-table-table-panel\";\nimport { DataTableVirtualRowMeasurementProvider } from \"./data-table-virtual-row-measurement\";\n\nexport function DataTableVirtualTablePanel(\n props: DataTableTablePanelProps,\n) {\n const {\n renderedRows,\n shouldRenderInitialLoading,\n tableScrollElement,\n viewportHeight = 0,\n virtualization,\n } = props;\n const virtualizationConfig =\n typeof virtualization === \"object\" ? virtualization : undefined;\n const enableVirtualization =\n !shouldRenderInitialLoading &&\n (virtualization === true || virtualizationConfig?.enabled === true);\n const shouldUseVirtualRows =\n enableVirtualization && Boolean(tableScrollElement) && viewportHeight > 0;\n const getItemKey = React.useCallback(\n (index: number) => renderedRows[index]?.id ?? index,\n [renderedRows],\n );\n\n // eslint-disable-next-line react-hooks/incompatible-library -- TanStack Virtual owns its instance functions.\n const rowVirtualizer = useVirtualizer({\n count: enableVirtualization ? renderedRows.length : 0,\n enabled: shouldUseVirtualRows,\n estimateSize: () => virtualizationConfig?.estimateRowHeight ?? 48,\n getItemKey,\n getScrollElement: () => tableScrollElement ?? null,\n overscan: virtualizationConfig?.overscan ?? 8,\n });\n const virtualItems = shouldUseVirtualRows\n ? rowVirtualizer.getVirtualItems()\n : [];\n const rowsToRender = shouldUseVirtualRows\n ? virtualItems.flatMap((virtualItem) => {\n const row = renderedRows[virtualItem.index];\n return row ? [{ row, rowIndex: virtualItem.index }] : [];\n })\n : renderedRows\n .slice(\n 0,\n Math.max(\n 1,\n Math.floor(virtualizationConfig?.fallbackRowCount ?? 20),\n ),\n )\n .map((row, rowIndex) => ({ row, rowIndex }));\n const virtualPaddingTop = shouldUseVirtualRows\n ? (virtualItems[0]?.start ?? 0)\n : 0;\n const virtualPaddingBottom = shouldUseVirtualRows\n ? Math.max(\n 0,\n rowVirtualizer.getTotalSize() -\n (virtualItems.at(-1)?.end ?? virtualPaddingTop),\n )\n : 0;\n const handleGridActiveRowIndexChange = React.useCallback(\n (gridRowIndex: number) => {\n if (!props.gridMode || !shouldUseVirtualRows) return;\n rowVirtualizer.scrollToIndex(\n Math.max(0, gridRowIndex - props.topPinnedRows.length),\n { align: \"auto\" },\n );\n },\n [\n props.gridMode,\n props.topPinnedRows.length,\n rowVirtualizer,\n shouldUseVirtualRows,\n ],\n );\n const measureRow = React.useCallback>(\n (element) => {\n if (element) {\n rowVirtualizer.measureElement(element);\n }\n },\n [rowVirtualizer],\n );\n\n return (\n \n \n \n );\n}\n"]} \ No newline at end of file diff --git a/dist/chunk-UMW6DOXG.js b/dist/chunk-UMW6DOXG.js deleted file mode 100644 index 632716a..0000000 --- a/dist/chunk-UMW6DOXG.js +++ /dev/null @@ -1,2 +0,0 @@ -import {a as a$1}from'./chunk-LTEXTQ2M.js';import {a}from'./chunk-IZQDLLCH.js';import {j}from'./chunk-XZTPNWJD.js';function b(r){return j(r,{CardPanel:a$1,TablePanel:a})}export{b as a};//# sourceMappingURL=chunk-UMW6DOXG.js.map -//# sourceMappingURL=chunk-UMW6DOXG.js.map \ No newline at end of file diff --git a/dist/chunk-YESJ52D2.js b/dist/chunk-YESJ52D2.js new file mode 100644 index 0000000..6c0aff7 --- /dev/null +++ b/dist/chunk-YESJ52D2.js @@ -0,0 +1,2 @@ +import {d,A,y,x,z,k}from'./chunk-YWMYYP3I.js';import {c,t,i}from'./chunk-CVR2ZXHQ.js';import {h,g,f}from'./chunk-7IWMFF7E.js';import {a}from'./chunk-XTVBESM5.js';import*as E from'react';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {flexRender}from'@tanstack/react-table';function mt({columns:e,editableRows:a,onError:s}){let[o,n]=E.useState(null),[u,g]=E.useState({}),T=E.useRef(u),[h,t]=E.useState({}),[I,c]=E.useState({}),[A,x]=E.useState(false),B=E.useMemo(()=>!Ka(u,h),[u,h]);E.useEffect(()=>{T.current=u;},[u]);let S=E.useCallback(()=>{n(null),g({}),c({}),t({});},[]),V=E.useCallback((H,b)=>{let k=a?.getInitialValues?.(H)??Aa(H,e);t({...k}),g(k),c({}),n(b);},[e,a]),_=E.useCallback(async H=>{if(!a)return false;x(true);let b={...T.current},k;try{let G=await a.validateRow?.(H,b),r=Ga(G);if(Object.keys(r).length>0)return c(r),!1;c({});let z=a.onOptimisticUpdate?.(H,b);return k=typeof z=="function"?z:void 0,await a.onSaveRow(H,b),a.onSaveSuccess?.(H,b),E.startTransition(S),!0}catch(G){try{k?.();}catch{}return a.onSaveError?.(G,H,b),s?.(G,H),false}finally{x(false);}},[S,a,s]),W=E.useCallback(H=>{c(b=>{if(!b[H]&&!b._row)return b;let k={...b};return delete k[H],delete k._row,k});},[]);return {cancelEditing:S,clearEditError:W,draftValues:u,editErrors:I,editingRowId:o,isEditDirty:B,isSavingEdit:A,saveEdit:_,setDraftValues:g,setEditingRowId:n,startEditingRow:V}}function Aa(e,a){return k(a).reduce((s,{column:o})=>("accessorKey"in o&&typeof o.accessorKey=="string"&&(s[o.accessorKey]=e[o.accessorKey]),s),{})}function pa(e,a,s,o,n){let{Checkbox:u,Input:g}=o,T=e.column.columnDef,h=T.meta,t="accessorKey"in T&&typeof T.accessorKey=="string"?T.accessorKey:e.column.id,I=a[t],c=n?.errors[t]??n?.errors[e.column.id]??n?.errors._row,A=S=>{n?.onValueChange(t),s(V=>({...V,[t]:S}));},x=S=>{S.key==="Escape"&&n?.cancelOnEscape?(S.preventDefault(),n.cancel()):S.key==="Enter"&&!S.shiftKey&&n?.commitOnEnter&&(S.preventDefault(),n.commit());};if(h?.renderEditCell)return h.renderEditCell({cell:e,row:e.row.original,value:e.getValue(),draftValue:I,error:c,isDirty:n?.isDirty??false,isPending:n?.isPending??false,setDraftValue:A});let B=za(h?.type,I);return typeof I=="boolean"?jsxs("div",{className:"min-w-0",children:[jsx(u,{"aria-invalid":!!c||void 0,checked:I,disabled:n?.isPending,onCheckedChange:S=>{A(S===true);},onKeyDown:x}),c?jsx("span",{className:"mt-1 block text-xs text-destructive",role:"alert",children:c}):null]}):jsxs("div",{className:"min-w-0",children:[jsx(g,{"aria-invalid":!!c||void 0,disabled:n?.isPending,type:B,value:h?.formatEditValue?h.formatEditValue(I,e):Ma(I,B),onChange:S=>{let V=S.target.value,_=h?.parseEditValue?h.parseEditValue(V,e):Va(V,B,I);A(_);},onKeyDown:x}),c?jsx("span",{className:"mt-1 block text-xs text-destructive",role:"alert",children:c}):null]})}function Ga(e){return e?typeof e=="string"?{_row:e}:e:{}}function Ka(e,a){let s=new Set([...Object.keys(e),...Object.keys(a)]);return Array.from(s).every(o=>Object.is(e[o],a[o]))}function za(e,a){return e==="numeric"||typeof a=="number"?"number":e==="date"||a instanceof Date?"datetime-local":"text"}function Ma(e,a="text"){return e==null?"":e instanceof Date?a==="datetime-local"?e.toISOString().slice(0,16):e.toISOString():typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="bigint"?String(e):""}function Va(e,a,s){return a==="number"?e===""?null:Number(e):a==="datetime-local"?e?s instanceof Date?new Date(e):e:null:e}var Ta=E.createContext(void 0);function Dt({children:e,measureRow:a}){return jsx(Ta.Provider,{value:a,children:e})}function Ca(){return E.useContext(Ta)}function ze(e,a$1,s){let o=e.column.columnDef,n=o.meta,u=e.getValue(),g=s?.hasCustomCell??false,T=g&&o.cell?flexRender(o.cell,e):void 0,h=va(T),t=Ua({context:e,useCustomOverflowDefaults:s?.useCustomOverflowDefaults??false,value:u});if(n?.type==="date"&&!g)return jsxs("div",{"data-dtp-slot":"data-table-cell-content","data-dtp-overflow":t,className:a(ya(t),"flex w-full min-w-0 items-center justify-end gap-2"),children:[jsx(i,{className:a("shrink-0",a$1?.mutedText??"opacity-70")}),jsx("span",{className:"min-w-0 truncate",children:Ba(u)})]});let I=T!=null&&T!==""?T:u==null||u===""?jsx("span",{className:a$1?.mutedText??"opacity-70",children:"-"}):Fa(u);return jsx("div",{"data-dtp-slot":"data-table-cell-content","data-dtp-overflow":t,className:a(ya(t),"w-full min-w-0 max-w-full",h&&"[&>*]:max-w-full [&>*]:min-w-0"),children:I})}function Ua({context:e,useCustomOverflowDefaults:a,value:s}){let o=e.column.columnDef,n=typeof o.meta?.overflow=="function"?o.meta.overflow({row:e.row.original,value:s}):o.meta?.overflow;return n||(a?"clip":"truncate")}function ya(e){switch(e){case "clip":return "block overflow-hidden whitespace-nowrap";case "wrap":return "block overflow-hidden whitespace-normal break-words";case "visible":return "block overflow-visible whitespace-normal";default:return "block overflow-hidden text-ellipsis whitespace-nowrap"}}function va(e){return e==null?false:E.isValidElement(e)||Array.isArray(e)||typeof e=="object"}function Ba(e){return typeof e=="number"?new Date(e*1e3).toLocaleString():typeof e=="string"&&e?e:"-"}function Fa(e){if(e instanceof Date)return e.toLocaleString();if(typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="bigint")return String(e);try{return JSON.stringify(e)}catch{return "-"}}function qa({columnLayouts:e,components:a$1,currentDensity:s,draftValues:o,editingContext:n,dragAndDrop:u,explicitCustomCellColumnIds:g$1,getRowClassName:T,groupToggleLabel:h$1,gridMode:t,gridRowAriaIndex:I,gridRowIndex:c,activeGridCell:A$1,cellSelectionEnabled:x,isGridCellSelected:B,onGridCellFocus:S,onGridCellKeyDown:V,onGridCellPointerDown:_,onGridCellPointerEnter:W,isDraggable:H,isDetailExpanded:b,isEditing:k,isExpanded:G,isInitialLoadingRow:r,isSelected:z,loadingState:M,onRowClick:j,pinnedPosition:d$1,originalRow:D,detailPanel:$,row:C,rowIndex:O,setDraftValues:ye,stripedRows:ce,uiClassNames:K,visibleCells:me,visibleLeafColumnCount:ae}){let{Checkbox:Oe,Input:X,Skeleton:le,TableCell:we,TableRow:Re}=a$1,J=Ca(),he=d$1?void 0:J,Ue=me.find(m=>!e.get(m.column.id)?.isUtilityColumn)?.column.id,Se=me.findIndex(m=>m.column.id==="__spacer__");return jsxs(E.Fragment,{children:[jsx(Re,{ref:he,"data-row-id":C.id,"data-index":he?O:void 0,"data-tree-depth":!r&&C.depth>0?C.depth:void 0,"data-dtp-slot":d$1?"data-table-pinned-row":"data-table-row","data-row-pinned":d$1,"data-row-grouped":C.getIsGrouped()||void 0,draggable:r?false:H,"data-loading":M?.isLoading||void 0,"data-row-index":r?void 0:O,"data-row-parity":ce&&!r?O%2===0?"odd":"even":void 0,"data-state":r?void 0:z?"selected":void 0,role:t?"row":void 0,"aria-rowindex":t?I:void 0,tabIndex:!t&&j&&!r?0:void 0,className:a(!r&&T?.(D,{row:D,rowId:C.id,rowIndex:O,isEditing:k,isExpanded:G,isLoading:!!M?.isLoading,isSelected:z,pinnedPosition:d$1??false}),K.row,d$1==="top"&&a("border-b-2",K.rowPinnedTop),d$1==="bottom"&&a("border-t-2",K.rowPinnedBottom),ce&&!r&&(O%2===0?K.rowOdd:K.rowEven),z&&!r&&K.rowSelected,j&&!r&&"cursor-pointer",r&&"pointer-events-none"),onClick:m=>{r||y(m.target,m.currentTarget)||t&&x||j?.({row:D,rowId:C.id});},onKeyDown:m=>{r||!j||m.key!=="Enter"&&m.key!==" "||y(m.target,m.currentTarget)||(m.preventDefault(),j({row:D,rowId:C.id}));},onDragStart:m=>{r||u?.onRowDragStart?.({row:D,rowId:C.id,event:m});},onDragEnd:m=>{r||u?.onRowDragEnd?.({row:D,rowId:C.id,event:m});},children:me.map((m,F)=>{let q=m.column.columnDef.meta,Q=m.getContext(),ve=m.getValue(),U=e.get(m.column.id),fe=U?.isSelectionColumn??false,Y=U?.isExpansionColumn??false,v=U?.isActionsColumn??false,P=U?.isSpacerColumn??false,Be=F+1-(Se>=0&&SeS({row:c,column:F}):void 0,onKeyDown:t&&!P?L=>{if(L.target!==L.currentTarget){L.key==="Escape"&&(L.preventDefault(),L.currentTarget.focus());return}V(L,c,F);}:void 0,onPointerDown:t&&x&&!U?.isUtilityColumn&&!P?L=>{y(L.target,L.currentTarget)||(L.currentTarget.focus(),_(L,c,F));}:void 0,onPointerEnter:t&&x&&!U?.isUtilityColumn&&!P?L=>{y(L.target,L.currentTarget)||W(L,c,F);}:void 0,className:a("border-b",A(s),K.cellBorder,te&&K.cellSelected,U?.utilityClassName,U?.isSpacerColumn&&"p-0",U?.pinnedClassName,Fe,g(Q),q?.responsiveClassName,We),style:U?.cellStyle,children:jsx("div",{"data-row-click-ignore":fe||Y||v||P?"true":void 0,className:"min-w-0 max-w-full",style:C.depth>0&&m.column.id===Ue?{paddingInlineStart:`${C.depth}rem`}:void 0,children:P?null:M?.isLoading?q?.skeleton?.(Q)??M.skeleton??jsx(le,{className:a("h-4 rounded",q?.type==="numeric"?"ml-auto w-16":q?.type==="date"?"ml-auto w-28":"w-full")}):k&&m.column.id!=="__select__"&&m.column.id!=="__expand__"&&m.column.id!=="__actions__"?pa(Q,o,ye,{Checkbox:Oe,Input:X},n?{cancel:n.cancel,cancelOnEscape:n.cancelOnEscape,commit:()=>n.commit(D),commitOnEnter:n.commitOnEnter,errors:n.errors,isDirty:n.isDirty,isPending:n.isPending,onValueChange:n.clearError}:void 0):C.getIsGrouped()&&m.getIsPlaceholder()?null:C.getIsGrouped()&&m.getIsGrouped()?jsxs("button",{type:"button",className:"inline-flex min-w-0 items-center gap-1 text-left font-medium",onClick:()=>C.toggleExpanded(),"aria-expanded":C.getIsExpanded(),"aria-label":h$1,children:[jsx("span",{"aria-hidden":"true",children:ze(Q,K,{hasCustomCell:g$1.has(m.column.id),useCustomOverflowDefaults:g$1.has(m.column.id)})}),jsxs("span",{className:"shrink-0 opacity-70",children:["(",C.subRows.length,")"]})]}):C.getIsGrouped()&&m.getIsAggregated()?m.column.columnDef.aggregatedCell?flexRender(m.column.columnDef.aggregatedCell,Q):ze(Q,K,{hasCustomCell:false,useCustomOverflowDefaults:false}):ze(Q,K,{hasCustomCell:g$1.has(m.column.id)||fe||Y||v||P,useCustomOverflowDefaults:g$1.has(m.column.id)||fe||Y||v||P})})},m.id)})}),!r&&$&&b?jsx(Re,{"data-dtp-slot":"data-table-detail-panel-row","data-row-pinned":d$1,children:jsx(we,{colSpan:Math.max(1,ae),className:a("border-b",A(s),K.cellBorder),children:$.render({row:D,rowId:C.id,tableRow:C})})}):null]})}function $a(e,a){return e.row.id===a.row.id&&e.row.original===a.row.original&&e.rowIndex===a.rowIndex&&e.isSelected===a.isSelected&&e.isInitialLoadingRow===a.isInitialLoadingRow&&e.isEditing===a.isEditing&&(!e.isEditing||e.editingContext===a.editingContext)&&e.isExpanded===a.isExpanded&&e.isDraggable===a.isDraggable&&Xa(e.loadingState,a.loadingState)&&Ja(e.visibleCells,a.visibleCells)&&e.components===a.components&&Qa(e.columnLayouts,a.columnLayouts,a.visibleCells)&&e.currentDensity===a.currentDensity&&e.detailPanel===a.detailPanel&&e.isDetailExpanded===a.isDetailExpanded&&e.pinnedPosition===a.pinnedPosition&&e.onRowClick===a.onRowClick&&e.dragAndDrop===a.dragAndDrop&&e.getRowClassName===a.getRowClassName&&e.groupToggleLabel===a.groupToggleLabel&&e.gridMode===a.gridMode&&(!a.gridMode||e.gridRowAriaIndex===a.gridRowAriaIndex&&e.gridRowIndex===a.gridRowIndex&&e.activeGridCell.row===a.activeGridCell.row&&e.activeGridCell.column===a.activeGridCell.column&&e.cellSelectionEnabled===a.cellSelectionEnabled&&e.isGridCellSelected===a.isGridCellSelected&&e.onGridCellFocus===a.onGridCellFocus&&e.onGridCellKeyDown===a.onGridCellKeyDown&&e.onGridCellPointerDown===a.onGridCellPointerDown&&e.onGridCellPointerEnter===a.onGridCellPointerEnter)&&e.stripedRows===a.stripedRows&&e.uiClassNames===a.uiClassNames&&e.explicitCustomCellColumnIds===a.explicitCustomCellColumnIds&&(!e.isEditing||e.draftValues===a.draftValues)}function Xa(e,a){return e?.isLoading===a?.isLoading&&e?.skeleton===a?.skeleton}function Ja(e,a){return e.length===a.length&&e.every((s,o)=>{let n=a[o];return n?.id===s.id&&n.column.id===s.column.id})}function Qa(e,a,s){return s.every(o=>{let n=e.get(o.column.id),u=a.get(o.column.id);return n?.fixedSide===u?.fixedSide&&n?.isActionsColumn===u?.isActionsColumn&&n?.isExpansionColumn===u?.isExpansionColumn&&n?.isSelectionColumn===u?.isSelectionColumn&&n?.isSpacerColumn===u?.isSpacerColumn&&n?.isUtilityColumn===u?.isUtilityColumn&&n?.pinnedClassName===u?.pinnedClassName&&n?.utilityClassName===u?.utilityClassName&&Ya(n?.cellStyle,u?.cellStyle)})}function Ya(e,a){return e?.width===a?.width&&e?.minWidth===a?.minWidth&&e?.maxWidth===a?.maxWidth&&e?.left===a?.left&&e?.right===a?.right}var Ra=E.memo(qa,$a);function Za({columnGroupHeaderHeight:e,currentDensity:a$1,currentSorting:s,dir:o,draggedColumnIdRef:n,enableColumnReordering:u,enableColumnResizing:g,gridColumnIndex:T,gridMode:h$1,header:t$1,headerGroupHeaders:I,layout:c$1,primeColumnForResize:A,reorderColumn:x$1,resizeColumnLabel:B,resetColumnSize:S,TableHead:V,uiClassNames:_}){let W=t$1.column.columnDef.meta,H=E.useId(),b=!t$1.isPlaceholder&&t$1.subHeaders.length>0,k=b?t$1.column.columnDef:void 0,G=t$1.column.getCanSort(),r=t$1.column.getIsSorted(),z$1=s.findIndex(d=>d.id===t$1.column.id),M=u&&!t$1.isPlaceholder&&!b&&!c$1.isUtilityColumn&&!c$1.isSpacerColumn,j=h(W?.hideOn);return jsxs(V,{colSpan:t$1.colSpan,scope:t$1.isPlaceholder||c$1.isSpacerColumn?void 0:b?"colgroup":"col",role:h$1?c$1.isSpacerColumn?"presentation":"columnheader":void 0,"aria-colindex":h$1&&!c$1.isSpacerColumn?T:void 0,"aria-hidden":t$1.isPlaceholder||c$1.isSpacerColumn||void 0,"aria-description":b?k?.description:void 0,"aria-labelledby":!t$1.isPlaceholder&&!c$1.isUtilityColumn&&!c$1.isSpacerColumn?H:void 0,"data-column-id":t$1.column.id,"data-column-group-id":b?k?.id:void 0,"data-header-depth":t$1.depth,"data-dtp-slot":b?"data-table-column-group-header":"data-table-column-header",className:a("relative border-b",z(a$1),b&&_.columnGroupHeader,c$1.utilityClassName,c$1.isSpacerColumn&&"p-0",c$1.pinnedClassName,j,f(t$1.getContext()),W?.headerClassName,b&&k?.headerClassName,W?.responsiveClassName),style:{...W?.headerStyle,...b?k?.headerStyle:void 0,...b&&(k?.headerHeight??e)!==void 0?{height:k?.headerHeight??e}:void 0,...c$1.headerStyle},title:b?k?.description:void 0,"aria-sort":r==="asc"?"ascending":r==="desc"?"descending":G?"none":void 0,draggable:M,tabIndex:M&&!G&&!(g&&t$1.column.getCanResize())?0:void 0,onDragStart:M?d=>{n.current=t$1.column.id,d.dataTransfer.effectAllowed="move";}:void 0,onDragOver:M?d=>{d.preventDefault(),d.dataTransfer.dropEffect="move";}:void 0,onDrop:M?d=>{d.preventDefault();let D=n.current;n.current=null,D&&x$1(D,t$1.column.id);}:void 0,onKeyDown:M?d=>{if(!d.altKey||d.key!=="ArrowLeft"&&d.key!=="ArrowRight")return;d.preventDefault();let D=I.filter(O=>!x(O.column.id)&&O.column.id!=="__spacer__"),$=D.findIndex(O=>O.column.id===t$1.column.id),C=D[d.key==="ArrowLeft"!=(o==="rtl")?$-1:$+1];C&&x$1(t$1.column.id,C.column.id);}:void 0,children:[t$1.isPlaceholder?null:G?jsxs("button",{type:"button",className:a("flex w-full items-center gap-2 font-medium",f(t$1.getContext())),onClick:t$1.column.getToggleSortingHandler(),children:[jsx("span",{id:H,className:"truncate",children:flexRender(t$1.column.columnDef.header,t$1.getContext())}),r?jsxs(Fragment,{children:[jsx(c,{className:a("size-4 shrink-0 transition-transform",r==="desc"?"rotate-0":"rotate-180")}),s.length>1&&z$1>=0?jsx("span",{className:"inline-flex size-4 shrink-0 items-center justify-center rounded-full text-[10px] leading-none",children:z$1+1}):null]}):jsx(t,{className:a("size-4 shrink-0",_.headerSortIcon??"opacity-70")})]}):c$1.isUtilityColumn||c$1.isSpacerColumn?flexRender(t$1.column.columnDef.header,t$1.getContext()):jsx("span",{id:H,children:flexRender(t$1.column.columnDef.header,t$1.getContext())}),g&&!t$1.isPlaceholder&&t$1.column.getCanResize()?jsx("div",{"aria-label":B,"aria-orientation":"vertical","aria-valuemax":tt(t$1),"aria-valuemin":at(t$1),"aria-valuenow":Math.round(t$1.getSize()),role:"separator",tabIndex:0,onDoubleClick:()=>{for(let d of ie(t$1))S(d.column.id);},onMouseDown:d=>{for(let D of ie(t$1))A(D.column.id,D.getSize());t$1.getResizeHandler()(d);},onTouchStart:d=>{for(let D of ie(t$1))A(D.column.id,D.getSize());t$1.getResizeHandler()(d);},onKeyDown:d=>{if(d.altKey)return;if(d.key==="Home"){d.preventDefault();for(let $ of ie(t$1))S($.column.id);return}if(d.key!=="ArrowLeft"&&d.key!=="ArrowRight")return;d.preventDefault(),d.stopPropagation();let D=d.key==="ArrowRight"!=(o==="rtl");nt(t$1,(D?1:-1)*(d.shiftKey?25:10));},className:a("absolute inset-y-0 z-50 h-full w-3 cursor-col-resize touch-none select-none ltr:right-0 ltr:translate-x-1/2 rtl:left-0 rtl:-translate-x-1/2 after:absolute after:top-0 after:left-1/2 after:h-full after:w-px after:-translate-x-1/2",_.resizeHandle??"after:bg-current after:opacity-20 hover:after:opacity-70",t$1.column.getIsResizing()&&(_.resizeHandleActive??"after:opacity-100"))}):null]},t$1.id)}function et(e,a){return e.header.id===a.header.id&&e.header.column.id===a.header.column.id&&e.header.column.columnDef===a.header.column.columnDef&&e.header.colSpan===a.header.colSpan&&e.header.isPlaceholder===a.header.isPlaceholder&<(e.header,a.header)&&e.currentDensity===a.currentDensity&&e.columnGroupHeaderHeight===a.columnGroupHeaderHeight&&e.dir===a.dir&&e.enableColumnReordering===a.enableColumnReordering&&e.enableColumnResizing===a.enableColumnResizing&&e.gridMode===a.gridMode&&e.gridColumnIndex===a.gridColumnIndex&&e.TableHead===a.TableHead&&e.uiClassNames===a.uiClassNames&&e.draggedColumnIdRef===a.draggedColumnIdRef&&e.primeColumnForResize===a.primeColumnForResize&&e.reorderColumn===a.reorderColumn&&e.resizeColumnLabel===a.resizeColumnLabel&&e.resetColumnSize===a.resetColumnSize&&e.selectionState===a.selectionState&&ot(e.currentSorting,a.currentSorting)&&rt(e.headerGroupHeaders,a.headerGroupHeaders)&&it(e.layout,a.layout)}function ie(e){return e.subHeaders.length?e.getLeafHeaders().filter(a=>!a.subHeaders.length):[e]}function at(e){return ie(e).reduce((a,s)=>a+(s.column.columnDef.minSize??20),0)}function tt(e){return ie(e).reduce((a,s)=>a+(s.column.columnDef.maxSize??Number.MAX_SAFE_INTEGER),0)}function nt(e,a){let s=ie(e),o=a/s.length;e.getContext().table.setColumnSizing(n=>{let u={...n};for(let g of s){let T=g.column,h=T.columnDef.minSize??20,t=T.columnDef.maxSize??Number.MAX_SAFE_INTEGER;u[T.id]=Math.min(t,Math.max(h,T.getSize()+o));}return u});}function lt(e,a){return e.subHeaders.length===a.subHeaders.length&&e.subHeaders.every((s,o)=>a.subHeaders[o]?.id===s.id)}function ot(e,a){return e.length===a.length&&e.every((s,o)=>{let n=a[o];return n?.id===s.id&&n.desc===s.desc})}function rt(e,a){return e.length===a.length&&e.every((s,o)=>a[o]?.id===s.id)}function it(e,a){return e.fixedSide===a.fixedSide&&e.isSpacerColumn===a.isSpacerColumn&&e.isUtilityColumn===a.isUtilityColumn&&e.pinnedClassName===a.pinnedClassName&&e.utilityClassName===a.utilityClassName&&e.headerStyle?.width===a.headerStyle?.width&&e.headerStyle?.minWidth===a.headerStyle?.minWidth&&e.headerStyle?.maxWidth===a.headerStyle?.maxWidth&&e.headerStyle?.left===a.headerStyle?.left&&e.headerStyle?.right===a.headerStyle?.right}var ha=E.memo(Za,et);function Bt({ariaDescribedBy:e,ariaLabelledBy:a$1,bodyRowComponents:s,cellSelection:o,cellSelectionEnabled:n,columnLayouts:u,columnGroupHeaderHeight:g,currentDensity:T,currentDetailExpanded:h,currentSorting:t=[],dir:I,DataTableEmptyState:c,dragAndDrop:A,draggedColumnIdRef:x$1,draftValues:B,editingRowId:S,editingContext:V,emptyNode:_,enableColumnReordering:W,enableColumnResizing:H,explicitCustomCellColumnIds:b,fillMinWidth:k,flexGrow:G,gridMode:r,gridPageSize:z,gridRowOffset:M,onGridActiveRowIndexChange:j,onCellSelectionChange:d$1,getColumnLayout:D,getRowClassName:$,getRowLoadingState:C,infiniteScroll:O,layoutMode:ye,localSearchValue:ce,onRowClick:K,primeColumnForResize:me,renderedRows:ae,detailPanel:Oe,topPinnedRows:X,bottomPinnedRows:le,reorderColumn:we,resetColumnSize:Re,resolvedLabels:J,rowsToRender:he,ScrollArea:Ue,ScrollBar:Se,scrollbarVisibility:m,sentinelRef:F,setDraftValues:q,shouldRenderInitialLoading:Q,stateOverlayNode:ve,stickyHeader:U,stripedRows:fe,summaryRows:Y,table:v,tableClassName:P,tableContainerClassName:Be,Table:Fe,TableBody:We,TableCell:te,TableFooter:L="tfoot",TableHead:Sa,TableHeader:ka,TableRow:be,tableScrollContainerRef:je,tableScrollElement:qe,totalRowCount:na,uiClassNames:oe,virtualPaddingBottom:la,virtualPaddingTop:oa,visibleLeafColumnCount:ke,visibleLeafColumns:ne}){let Ea=v.getIsAllPageRowsSelected()?true:v.getIsSomePageRowsSelected()?"indeterminate":false,ra=v.getFilteredRowModel().rows,Ha=E.useMemo(()=>Y.length?ra.map(l=>l.original):[],[ra,Y.length]),Ee=v.getHeaderGroups().length,He=X.length+ae.length+le.length,[De,ia]=E.useState({row:0,column:0}),sa=E.useRef(false),$e=E.useRef(false),ge=E.useMemo(()=>[...X,...ae,...le],[le,ae,X]),se=E.useMemo(()=>ne.flatMap((l,i)=>l.id==="__spacer__"?[]:[i]),[ne]),pe=E.useCallback((l,i)=>{let f=ge[l],p=ne[i];return f&&p&&!x(p.id)&&p.id!=="__spacer__"?{rowId:f.id,columnId:p.id}:void 0},[ge,ne]),de=E.useMemo(()=>{if(!o)return;let l=ge.findIndex(w=>w.id===o.anchor.rowId),i=ge.findIndex(w=>w.id===o.focus.rowId),f=ne.findIndex(w=>w.id===o.anchor.columnId),p=ne.findIndex(w=>w.id===o.focus.columnId);if(!(l<0||i<0||f<0||p<0))return {firstRow:Math.min(l,i),lastRow:Math.max(l,i),firstColumn:Math.min(f,p),lastColumn:Math.max(f,p)}},[o,ge,ne]),Pa=E.useCallback((l,i)=>!!(de&&l>=de.firstRow&&l<=de.lastRow&&i>=de.firstColumn&&i<=de.lastColumn),[de]),Na=E.useCallback(l=>{sa.current=true,ia(l);},[]),Pe=E.useCallback((l,i,f)=>{if(!n)return;let p=pe(l,i);if(!p)return;let w=f&&o?.anchor?o.anchor:p;d$1({anchor:w,focus:p});},[o,n,pe,d$1]),Ia=E.useCallback((l,i,f)=>{!n||l.button!==0||(l.preventDefault(),$e.current=true,Pe(i,f,l.shiftKey));},[n,Pe]),La=E.useCallback((l,i,f)=>{!n||!$e.current||l.buttons!==1||Pe(i,f,true);},[n,Pe]);E.useEffect(()=>{let l=()=>{$e.current=false;};return window.addEventListener("pointerup",l),()=>window.removeEventListener("pointerup",l)},[]),E.useEffect(()=>{if(!r)return;j?.(De.row);let l=requestAnimationFrame(()=>{let i=je.current?.querySelectorAll('[data-dtp-grid-cell="true"]'),f=Array.from(i??[]).find(p=>Number(p.dataset.gridRowIndex)===De.row&&Number(p.dataset.gridColumnIndex)===De.column);f&&sa.current&&f.focus();});return ()=>cancelAnimationFrame(l)},[De,r,j,je]);let xa=E.useCallback((l,i,f)=>{if(l.defaultPrevented||l.target!==l.currentTarget)return;let p=Math.max(1,z??(Math.floor((qe?.clientHeight||0)/Math.max(1,qe?.querySelector("tr")?.offsetHeight||48))||10)),w=Math.max(0,He-1),Z=Math.max(0,se.indexOf(f)),Ne=Math.max(0,se.length-1),ee=i,Te=Z;switch(l.key){case "ArrowUp":ee--;break;case "ArrowDown":ee++;break;case "ArrowLeft":Te--;break;case "ArrowRight":Te++;break;case "Home":(l.ctrlKey||l.metaKey)&&(ee=0),Te=0;break;case "End":(l.ctrlKey||l.metaKey)&&(ee=w),Te=Ne;break;case "PageUp":ee-=p;break;case "PageDown":ee+=p;break;default:return}l.preventDefault();let Je={row:Math.min(w,Math.max(0,ee)),column:se[Math.min(Ne,Math.max(0,Te))]??0};if(ia(Je),l.shiftKey&&n){let Qe=pe(Je.row,Je.column),da=o?.anchor??pe(i,f)??Qe;da&&Qe&&d$1({anchor:da,focus:Qe});}},[o,n,He,pe,z,se,d$1,qe]),Xe=(l,i,f)=>{let p=l.original,w=d(p),Z=w?{isLoading:true}:C?.(p,i),Ne=typeof Z=="boolean"?{isLoading:Z}:Z,ee=w?false:A?.getRowDraggable?.(p)??false;return jsx(Ra,{columnLayouts:u,components:s,currentDensity:T,draftValues:B,editingContext:V,dragAndDrop:A,explicitCustomCellColumnIds:b,getRowClassName:$,groupToggleLabel:l.getIsExpanded()?J.collapseRow:J.expandRow,isDraggable:ee,isDetailExpanded:h===true||!!h[l.id],isEditing:S===l.id,isExpanded:l.getIsExpanded(),isInitialLoadingRow:w,isSelected:l.getIsSelected(),loadingState:Ne,onRowClick:K,originalRow:p,pinnedPosition:f,detailPanel:Oe,row:l,rowIndex:i,setDraftValues:q,stripedRows:fe,uiClassNames:oe,visibleCells:l.getVisibleCells(),visibleLeafColumnCount:ke,gridMode:r,gridRowIndex:i,gridRowAriaIndex:Ee+M+i+1,activeGridCell:De,cellSelectionEnabled:n,isGridCellSelected:Pa,onGridCellFocus:Na,onGridCellKeyDown:xa,onGridCellPointerDown:Ia,onGridCellPointerEnter:La},`${f??"center"}-${l.id}`)};return jsxs("div",{"data-dtp-slot":"data-table-table-shell",className:a("relative box-border border-2 border-transparent transition-colors",G?"flex min-h-0 flex-1 flex-col":"h-full",A?.isDragging&&(oe.dragActive??"rounded-md border-dashed")),children:[jsx("div",{ref:je,className:a(G?"flex min-h-0 flex-1 flex-col":"h-full"),children:jsxs(Ue,{type:m,className:a("rounded-md border",G?"min-h-0 flex-1":"h-full",oe.tableContainer,oe.tableScrollArea,Be),children:[jsx("div",{className:"min-h-full",children:jsxs(Fe,{"aria-describedby":e,"aria-labelledby":a$1,role:r?"grid":void 0,"aria-colcount":r?se.length:void 0,"aria-rowcount":r?Ee+(na??He)+Y.length:void 0,className:a("w-full table-fixed border-separate border-spacing-0",P),style:{minWidth:ye==="fill"&&k||void 0,width:ye==="fit"?v.getTotalSize():"100%"},children:[jsx("colgroup",{children:v.getVisibleLeafColumns().map(l=>{let i=D(l.id);return jsx("col",{style:i.colStyle},l.id)})}),jsx(ka,{role:r?"rowgroup":void 0,className:a(U?oe.tableStickyHeader??"sticky top-0 z-30 backdrop-blur":void 0),children:v.getHeaderGroups().map(l=>jsx(be,{role:r?"row":void 0,"aria-rowindex":r?l.depth+1:void 0,children:l.headers.map(i=>jsx(ha,{columnGroupHeaderHeight:g,currentDensity:T,currentSorting:t,dir:I,draggedColumnIdRef:x$1,enableColumnReordering:W,enableColumnResizing:H,header:i,headerGroupHeaders:l.headers,layout:dt(i,D),primeColumnForResize:me,reorderColumn:we,resizeColumnLabel:J.resizeColumn(typeof i.column.columnDef.header=="string"?i.column.columnDef.header:i.column.id),resetColumnSize:Re,selectionState:i.column.id==="__select__"?Ea:void 0,TableHead:Sa,uiClassNames:oe,gridMode:r,gridColumnIndex:i.isPlaceholder||i.subHeaders.length||i.column.id==="__spacer__"?void 0:v.getVisibleLeafColumns().filter(f=>f.id!=="__spacer__").findIndex(f=>f.id===i.column.id)+1},i.id))},l.id))}),jsx(We,{role:r?"rowgroup":void 0,children:X.length||ae.length||le.length?jsxs(Fragment,{children:[X.map((l,i)=>Xe(l,i,"top")),oa>0?jsx(be,{"aria-hidden":"true",role:r?"presentation":void 0,children:jsx(te,{colSpan:Math.max(1,ke),className:"border-b-0 p-0",style:{height:oa}})}):null,he.map(({row:l,rowIndex:i})=>Xe(l,i+X.length)),la>0?jsx(be,{"aria-hidden":"true",role:r?"presentation":void 0,children:jsx(te,{colSpan:Math.max(1,ke),className:"border-b-0 p-0",style:{height:la}})}):null,le.map((l,i)=>Xe(l,X.length+ae.length+i,"bottom"))]}):jsx(be,{role:r?"row":void 0,"aria-rowindex":r?Ee+1:void 0,children:jsx(te,{role:r?"gridcell":void 0,"aria-colindex":r?1:void 0,colSpan:Math.max(1,ke),className:"h-full grow",children:jsx("div",{className:"flex h-full min-h-full w-full grow items-center justify-center",children:_??jsx(c,{title:ce?J.noMatchingRowsTitle:J.noRowsTitle,description:ce?J.noMatchingRowsDescription:J.noRowsDescription})})})})}),Y.length?jsx(L,{role:r?"rowgroup":void 0,children:Y.map((l,i)=>jsx(be,{role:r?"row":void 0,"aria-rowindex":r?Ee+(na??He)+i+1:void 0,children:ne.map((f,p)=>{let w=D(f.id),Z=w.isSpacerColumn?null:l.cells[f.id]??(p===0?l.label:null);return jsx(te,{"data-column-id":f.id,role:r?w.isSpacerColumn?"presentation":"gridcell":void 0,"aria-colindex":r&&!w.isSpacerColumn?se.indexOf(p)+1:void 0,"aria-hidden":w.isSpacerColumn||void 0,className:a("border-b",w.isSpacerColumn?"p-0":"font-medium",oe.cellBorder),style:w.cellStyle,children:typeof Z=="function"?Z({rows:Ha,columnId:f.id}):Z},`${l.key}-${f.id}`)})},l.key))}):null]})}),O?.enabled&&ae.length&&!Q?jsx("div",{className:"px-4 pb-4",children:jsx("div",{ref:F,className:"h-4 w-full"})}):null,jsx(Se,{orientation:"horizontal"})]})}),ve]})}function dt(e,a){let s=a(e.column.id);if(e.isPlaceholder||!e.subHeaders.length)return s;let o=e.getLeafHeaders().filter(g=>!g.subHeaders.length).map(g=>a(g.column.id)),n=o[0]?.fixedSide;if(!n||!o.every(g=>g.fixedSide===n))return s;let u=n==="left"?o[0]:o.at(-1);return {...s,fixedSide:n,headerStyle:u?.headerStyle?{left:u.headerStyle.left,right:u.headerStyle.right}:void 0,pinnedClassName:u?.pinnedClassName}}export{mt as a,Dt as b,Ra as c,ha as d,Bt as e};//# sourceMappingURL=chunk-YESJ52D2.js.map +//# sourceMappingURL=chunk-YESJ52D2.js.map \ No newline at end of file diff --git a/dist/chunk-YESJ52D2.js.map b/dist/chunk-YESJ52D2.js.map new file mode 100644 index 0000000..7693996 --- /dev/null +++ b/dist/chunk-YESJ52D2.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/core/data-table/use-row-editing.tsx","../src/core/data-table/data-table-virtual-row-measurement.tsx","../src/core/data-table/data-table-cell-content.tsx","../src/core/data-table/data-table-body-row.tsx","../src/core/data-table/data-table-header-cell.tsx","../src/core/data-table/data-table-table-panel.tsx"],"names":["useRowEditing","columns","editableRows","onError","editingRowId","setEditingRowId","N","draftValues","setDraftValues","draftValuesRef","originalDraftValues","setOriginalDraftValues","editErrors","setEditErrors","isSavingEdit","setIsSavingEdit","isEditDirty","areDraftValuesEqual","cancelEditing","startEditingRow","row","rowId","initialValues","defaultDraftValues","saveEdit","draftSnapshot","rollback","validation","validationErrors","normalizeEditValidationErrors","optimisticResult","error","clearEditError","columnId","current","next","getDataTableLeafColumns","draft","column","renderEditableCell","context","components","editing","Checkbox","Input","meta","accessorKey","draftValue","setDraftValue","value","handleKeyDown","event","inputType","getEditableInputType","jsxs","jsx","checked","getEditableInputValue","rawValue","parsedValue","parseEditableInputValue","left","right","keys","key","type","previousValue","DataTableVirtualRowMeasurementContext","Ge","DataTableVirtualRowMeasurementProvider","children","measureRow","useDataTableVirtualRowMeasurement","renderDataTableCellContent","classNames","options","hasCustomCell","renderedCellContent","flexRender","hasComplexRenderedContent","isComplexRenderedCellContent","resolvedOverflow","resolveDataTableCellOverflow","cn","getCellOverflowClassName","IconClock","formatDateValue","content","formatCellValue","useCustomOverflowDefaults","overflow","wa","DataTableBodyRowInner","columnLayouts","currentDensity","editingContext","dragAndDrop","explicitCustomCellColumnIds","getRowClassName","groupToggleLabel","gridMode","gridRowAriaIndex","gridRowIndex","activeGridCell","cellSelectionEnabled","isGridCellSelected","onGridCellFocus","onGridCellKeyDown","onGridCellPointerDown","onGridCellPointerEnter","isDraggable","isDetailExpanded","isEditing","isExpanded","isInitialLoadingRow","isSelected","loadingState","onRowClick","pinnedPosition","originalRow","detailPanel","rowIndex","stripedRows","uiClassNames","visibleCells","visibleLeafColumnCount","Skeleton","TableCell","TableRow","virtualRowMeasurement","measureElement","firstDataColumnId","cell","spacerColumnIndex","Me","isDataTableInteractiveTarget","columnIndex","cellContext","layout","isSelectionColumn","isExpansionColumn","isActionsColumn","isSpacerColumn","gridColumnAriaIndex","hideClassName","hideOnClassName","cellClassName","isDataTableLoadingRow","isCellSelected","getDensityCellClassName","cellAlignClassName","areDataTableBodyRowsEqual","previous","sameLoadingState","sameVisibleCells","sameColumnLayouts","index","nextCell","cells","previousLayout","nextLayout","sameCellStyle","DataTableBodyRow","DataTableHeaderCellInner","columnGroupHeaderHeight","currentSorting","dir","draggedColumnIdRef","enableColumnReordering","enableColumnResizing","gridColumnIndex","header","headerGroupHeaders","primeColumnForResize","reorderColumn","resizeColumnLabel","resetColumnSize","TableHead","headerContentId","Ve","isColumnGroup","groupDefinition","canSort","sortingState","sortingIndex","sort","canReorderColumn","getDensityHeaderClassName","headerAlignClassName","sourceColumnId","headers","item","isUtilityColumnId","currentIndex","target","Fragment","IconChevronDown","IconSelector","getHeaderMaximumSize","getHeaderMinimumSize","leafHeader","getResizableLeafHeaders","grows","resizeHeaderBy","areDataTableHeaderCellsEqual","sameSubHeaders","sameSorting","sameHeaderGroupHeaders","sameHeaderLayout","total","delta","leafHeaders","deltaPerLeaf","minimum","maximum","nextSort","DataTableHeaderCell","DataTableTablePanel","ariaDescribedBy","ariaLabelledBy","bodyRowComponents","cellSelection","currentDetailExpanded","DataTableEmptyState","emptyNode","fillMinWidth","flexGrow","gridPageSize","gridRowOffset","onGridActiveRowIndexChange","onCellSelectionChange","getColumnLayout","getRowLoadingState","infiniteScroll","layoutMode","localSearchValue","renderedRows","topPinnedRows","bottomPinnedRows","resolvedLabels","rowsToRender","ScrollArea","ScrollBar","scrollbarVisibility","sentinelRef","shouldRenderInitialLoading","stateOverlayNode","stickyHeader","summaryRows","table","tableClassName","tableContainerClassName","Table","TableBody","TableFooter","TableHeader","tableScrollContainerRef","tableScrollElement","totalRowCount","virtualPaddingBottom","virtualPaddingTop","visibleLeafColumns","selectionState","filteredRows","summarySourceRows","headerRowCount","displayRowCount","activeCell","setActiveCell","shouldRestoreGridFocusRef","pointerSelectingRef","gridRows","navigableGridColumnIndices","getGridCoordinate","selectedBounds","anchorRow","focusRow","anchorColumn","focusColumn","handleGridCellFocus","selectGridCell","extend","focus","anchor","handleGridCellPointerDown","handleGridCellPointerEnter","stopSelecting","frame","moveGridFocus","pageRows","lastRow","currentColumnPosition","lastColumnPosition","nextRow","nextColumnPosition","renderBodyRow","resolvedLoadingState","headerGroup","getHeaderLayout","summaryRow","summaryIndex","columnLayout","leafLayouts","fixedSide","edgeLayout"],"mappings":"2RAUO,SAASA,EAAAA,CAAqB,CACnC,OAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,QAAAC,CACF,CAAA,CAIG,CACD,GAAM,CAACC,CAAAA,CAAcC,CAAe,CAAA,CAAUC,CAAA,CAAA,QAAA,CAAwB,IAAI,CAAA,CACpE,CAACC,CAAAA,CAAaC,CAAc,EAAUF,CAAA,CAAA,QAAA,CAE1C,EAAE,CAAA,CACEG,EAAuBH,CAAA,CAAA,MAAA,CAAOC,CAAW,CAAA,CACzC,CAACG,EAAqBC,CAAsB,CAAA,CAAUL,CAAA,CAAA,QAAA,CAE1D,EAAE,CAAA,CACE,CAACM,CAAAA,CAAYC,CAAa,EAAUP,CAAA,CAAA,QAAA,CACxC,EACF,CAAA,CACM,CAACQ,CAAAA,CAAcC,CAAe,CAAA,CAAUT,CAAA,CAAA,QAAA,CAAS,KAAK,CAAA,CACtDU,CAAAA,CAAoBV,CAAA,CAAA,OAAA,CACxB,IAAM,CAACW,EAAAA,CAAoBV,CAAAA,CAAaG,CAAmB,CAAA,CAC3D,CAACH,CAAAA,CAAaG,CAAmB,CACnC,CAAA,CAEMJ,YAAU,IAAM,CACpBG,CAAAA,CAAe,OAAA,CAAUF,EAC3B,CAAA,CAAG,CAACA,CAAW,CAAC,EAEhB,IAAMW,CAAAA,CAAsBZ,CAAA,CAAA,WAAA,CAAY,IAAM,CAC5CD,CAAAA,CAAgB,IAAI,CAAA,CACpBG,CAAAA,CAAe,EAAE,CAAA,CACjBK,CAAAA,CAAc,EAAE,CAAA,CAChBF,CAAAA,CAAuB,EAAE,EAC3B,CAAA,CAAG,EAAE,CAAA,CAECQ,EAAwBb,CAAA,CAAA,WAAA,CAC5B,CAACc,CAAAA,CAAYC,CAAAA,GAAkB,CAC7B,IAAMC,CAAAA,CACJpB,CAAAA,EAAc,gBAAA,GAAmBkB,CAAG,CAAA,EACpCG,EAAAA,CAAmBH,CAAAA,CAAKnB,CAAO,EACjCU,CAAAA,CAAuB,CAAE,GAAGW,CAAc,CAAC,CAAA,CAC3Cd,CAAAA,CAAec,CAAa,CAAA,CAC5BT,EAAc,EAAE,CAAA,CAChBR,CAAAA,CAAgBgB,CAAK,EACvB,CAAA,CACA,CAACpB,CAAAA,CAASC,CAAY,CACxB,CAAA,CAEMsB,CAAAA,CAAiBlB,CAAA,CAAA,WAAA,CACrB,MAAOc,CAAAA,EAAe,CACpB,GAAI,CAAClB,EACH,OAAO,MAAA,CAGTa,CAAAA,CAAgB,IAAI,EACpB,IAAMU,CAAAA,CAAgB,CAAE,GAAGhB,EAAe,OAAQ,CAAA,CAC9CiB,CAAAA,CACJ,GAAI,CACF,IAAMC,CAAAA,CAAa,MAAMzB,CAAAA,CAAa,cACpCkB,CAAAA,CACAK,CACF,CAAA,CACMG,CAAAA,CAAmBC,GAA8BF,CAAU,CAAA,CACjE,GAAI,MAAA,CAAO,KAAKC,CAAgB,CAAA,CAAE,MAAA,CAAS,CAAA,CACzC,OAAAf,CAAAA,CAAce,CAAgB,CAAA,CACvB,CAAA,CAAA,CAGTf,EAAc,EAAE,CAAA,CAChB,IAAMiB,EAAmB5B,CAAAA,CAAa,kBAAA,GACpCkB,CAAAA,CACAK,CACF,EACA,OAAAC,CAAAA,CACE,OAAOI,CAAAA,EAAqB,WACxBA,CAAAA,CACA,KAAA,CAAA,CACN,MAAM5B,CAAAA,CAAa,UAAUkB,CAAAA,CAAKK,CAAa,CAAA,CAC/CvB,CAAAA,CAAa,gBAAgBkB,CAAAA,CAAKK,CAAa,CAAA,CACzCnB,CAAA,CAAA,eAAA,CAAgBY,CAAa,CAAA,CAC5B,CAAA,CACT,CAAA,MAASa,CAAAA,CAAO,CACd,GAAI,CACFL,CAAAA,KACF,MAAQ,CAER,CACA,OAAAxB,CAAAA,CAAa,cAAc6B,CAAAA,CAAOX,CAAAA,CAAKK,CAAa,CAAA,CACpDtB,IAAU4B,CAAAA,CAAOX,CAAG,CAAA,CACb,KACT,QAAE,CACAL,CAAAA,CAAgB,KAAK,EACvB,CACF,CAAA,CACA,CAACG,CAAAA,CAAehB,CAAAA,CAAcC,CAAO,CACvC,CAAA,CACM6B,CAAAA,CAAuB1B,CAAA,CAAA,WAAA,CAAa2B,GAAqB,CAC7DpB,CAAAA,CAAeqB,CAAAA,EAAY,CACzB,GAAI,CAACA,CAAAA,CAAQD,CAAQ,CAAA,EAAK,CAACC,CAAAA,CAAQ,IAAA,CACjC,OAAOA,CAAAA,CAET,IAAMC,CAAAA,CAAO,CAAE,GAAGD,CAAQ,EAC1B,OAAA,OAAOC,CAAAA,CAAKF,CAAQ,CAAA,CACpB,OAAOE,CAAAA,CAAK,IAAA,CACLA,CACT,CAAC,EACH,CAAA,CAAG,EAAE,CAAA,CAEL,OAAO,CACL,aAAA,CAAAjB,CAAAA,CACA,cAAA,CAAAc,EACA,WAAA,CAAAzB,CAAAA,CACA,UAAA,CAAAK,CAAAA,CACA,aAAAR,CAAAA,CACA,WAAA,CAAAY,EACA,YAAA,CAAAF,CAAAA,CACA,SAAAU,CAAAA,CACA,cAAA,CAAAhB,CAAAA,CACA,eAAA,CAAAH,EACA,eAAA,CAAAc,CACF,CACF,CAEA,SAASI,EAAAA,CACPH,CAAAA,CACAnB,CAAAA,CACA,CACA,OAAOmC,CAAAA,CAAwBnC,CAAO,CAAA,CAAE,MAAA,CACtC,CAACoC,CAAAA,CAAO,CAAE,MAAA,CAAAC,CAAO,KACX,aAAA,GAAiBA,CAAAA,EAAU,OAAOA,CAAAA,CAAO,aAAgB,QAAA,GAC3DD,CAAAA,CAAMC,CAAAA,CAAO,WAAW,EAAKlB,CAAAA,CAC3BkB,CAAAA,CAAO,WACT,CAAA,CAAA,CAEKD,GAET,EACF,CACF,CAEO,SAASE,EAAAA,CACdC,CAAAA,CACAjC,CAAAA,CACAC,CAAAA,CACAiC,EACAC,CAAAA,CAUA,CACA,GAAM,CAAE,SAAAC,CAAAA,CAAU,KAAA,CAAAC,CAAM,CAAA,CAAIH,EACtBH,CAAAA,CAASE,CAAAA,CAAQ,MAAA,CAAO,SAAA,CACxBK,EAAOP,CAAAA,CAAO,IAAA,CACdQ,CAAAA,CACJ,aAAA,GAAiBR,GAAU,OAAOA,CAAAA,CAAO,WAAA,EAAgB,QAAA,CACrDA,EAAO,WAAA,CACPE,CAAAA,CAAQ,MAAA,CAAO,EAAA,CACfO,EAAaxC,CAAAA,CAAYuC,CAAW,CAAA,CACpCf,CAAAA,CACJW,GAAS,MAAA,CAAOI,CAAW,CAAA,EAC3BJ,CAAAA,EAAS,OAAOF,CAAAA,CAAQ,MAAA,CAAO,EAAE,CAAA,EACjCE,GAAS,MAAA,CAAO,IAAA,CACZM,CAAAA,CAAiBC,CAAAA,EAAmB,CACxCP,CAAAA,EAAS,aAAA,CAAcI,CAAW,CAAA,CAClCtC,EAAgB0B,CAAAA,GAAa,CAC3B,GAAGA,CAAAA,CACH,CAACY,CAAW,EAAGG,CACjB,CAAA,CAAE,EACJ,CAAA,CACMC,CAAAA,CAAiBC,CAAAA,EAA4C,CAC7DA,EAAM,GAAA,GAAQ,QAAA,EAAYT,CAAAA,EAAS,cAAA,EACrCS,EAAM,cAAA,EAAe,CACrBT,CAAAA,CAAQ,MAAA,IAERS,CAAAA,CAAM,GAAA,GAAQ,OAAA,EACd,CAACA,EAAM,QAAA,EACPT,CAAAA,EAAS,aAAA,GAETS,CAAAA,CAAM,gBAAe,CACrBT,CAAAA,CAAQ,MAAA,EAAO,EAEnB,EAEA,GAAIG,CAAAA,EAAM,cAAA,CACR,OAAOA,EAAK,cAAA,CAAe,CACzB,IAAA,CAAML,CAAAA,CACN,IAAKA,CAAAA,CAAQ,GAAA,CAAI,QAAA,CACjB,KAAA,CAAOA,EAAQ,QAAA,EAAS,CACxB,UAAA,CAAAO,CAAAA,CACA,MAAAhB,CAAAA,CACA,OAAA,CAASW,CAAAA,EAAS,OAAA,EAAW,MAC7B,SAAA,CAAWA,CAAAA,EAAS,SAAA,EAAa,KAAA,CACjC,cAAAM,CACF,CAAC,CAAA,CAGH,IAAMI,EAAYC,EAAAA,CAAqBR,CAAAA,EAAM,IAAA,CAAME,CAAU,EAE7D,OAAI,OAAOA,CAAAA,EAAe,SAAA,CAEtBO,KAAC,KAAA,CAAA,CAAI,SAAA,CAAU,SAAA,CACb,QAAA,CAAA,CAAAC,IAACZ,CAAAA,CAAA,CACC,cAAA,CAAc,CAAA,CAAQZ,GAAU,MAAA,CAChC,OAAA,CAASgB,CAAAA,CACT,QAAA,CAAUL,GAAS,SAAA,CACnB,eAAA,CAAkBc,CAAAA,EAAuC,CACvDR,EAAcQ,CAAAA,GAAY,IAAI,EAChC,CAAA,CACA,UAAWN,CAAAA,CACb,CAAA,CACCnB,CAAAA,CACCwB,GAAAA,CAAC,QAAK,SAAA,CAAU,qCAAA,CAAsC,IAAA,CAAK,OAAA,CACxD,SAAAxB,CAAAA,CACH,CAAA,CACE,IAAA,CAAA,CACN,CAAA,CAKFuB,KAAC,KAAA,CAAA,CAAI,SAAA,CAAU,SAAA,CACb,QAAA,CAAA,CAAAC,IAACX,CAAAA,CAAA,CACC,cAAA,CAAc,CAAA,CAAQb,GAAU,MAAA,CAChC,QAAA,CAAUW,CAAAA,EAAS,SAAA,CACnB,KAAMU,CAAAA,CACN,KAAA,CACEP,CAAAA,EAAM,eAAA,CACFA,EAAK,eAAA,CAAgBE,CAAAA,CAAYP,CAAO,CAAA,CACxCiB,GAAsBV,CAAAA,CAAYK,CAAS,CAAA,CAEjD,QAAA,CAAWD,GAA+C,CACxD,IAAMO,CAAAA,CAAWP,CAAAA,CAAM,OAAO,KAAA,CACxBQ,CAAAA,CAAcd,CAAAA,EAAM,cAAA,CACtBA,EAAK,cAAA,CAAea,CAAAA,CAAUlB,CAAO,CAAA,CACrCoB,GAAwBF,CAAAA,CAAUN,CAAAA,CAAWL,CAAU,CAAA,CAC3DC,EAAcW,CAAW,EAC3B,CAAA,CACA,SAAA,CAAWT,EACb,CAAA,CACCnB,CAAAA,CACCwB,GAAAA,CAAC,MAAA,CAAA,CAAK,UAAU,qCAAA,CAAsC,IAAA,CAAK,OAAA,CACxD,QAAA,CAAAxB,EACH,CAAA,CACE,IAAA,CAAA,CACN,CAEJ,CAEA,SAASF,EAAAA,CACPoB,CAAAA,CACA,CACA,OAAKA,EAGE,OAAOA,CAAAA,EAAU,QAAA,CAAW,CAAE,KAAMA,CAAM,CAAA,CAAIA,CAAAA,CAF5C,EAGX,CAEA,SAAShC,GACP4C,CAAAA,CACAC,CAAAA,CACA,CACA,IAAMC,CAAAA,CAAO,IAAI,GAAA,CAAI,CAAC,GAAG,MAAA,CAAO,IAAA,CAAKF,CAAI,EAAG,GAAG,MAAA,CAAO,IAAA,CAAKC,CAAK,CAAC,CAAC,CAAA,CAClE,OAAO,KAAA,CAAM,KAAKC,CAAI,CAAA,CAAE,KAAA,CAAOC,CAAAA,EAAQ,OAAO,EAAA,CAAGH,CAAAA,CAAKG,CAAG,CAAA,CAAGF,EAAME,CAAG,CAAC,CAAC,CACzE,CAEA,SAASX,EAAAA,CACPY,CAAAA,CACAhB,CAAAA,CACA,CACA,OAAIgB,CAAAA,GAAS,SAAA,EAAa,OAAOhB,GAAU,QAAA,CAClC,QAAA,CAGLgB,CAAAA,GAAS,MAAA,EAAUhB,aAAiB,IAAA,CAC/B,gBAAA,CAGF,MACT,CAEA,SAASQ,EAAAA,CAAsBR,CAAAA,CAAgBG,CAAAA,CAAY,MAAA,CAAQ,CACjE,OAAIH,CAAAA,EAAS,IAAA,CACJ,EAAA,CAGLA,aAAiB,IAAA,CACZG,CAAAA,GAAc,gBAAA,CACjBH,CAAAA,CAAM,aAAY,CAAE,KAAA,CAAM,CAAA,CAAG,EAAE,EAC/BA,CAAAA,CAAM,WAAA,EAAY,CAItB,OAAOA,GAAU,QAAA,EACjB,OAAOA,CAAAA,EAAU,QAAA,EACjB,OAAOA,CAAAA,EAAU,SAAA,EACjB,OAAOA,CAAAA,EAAU,SAEV,MAAA,CAAOA,CAAK,CAAA,CAGd,EACT,CAEA,SAASW,EAAAA,CACPX,CAAAA,CACAG,CAAAA,CACAc,EACA,CACA,OAAId,CAAAA,GAAc,QAAA,CACTH,IAAU,EAAA,CAAK,IAAA,CAAO,MAAA,CAAOA,CAAK,EAGvCG,CAAAA,GAAc,gBAAA,CACXH,CAAAA,CAGEiB,CAAAA,YAAyB,KAAO,IAAI,IAAA,CAAKjB,CAAK,CAAA,CAAIA,EAFhD,IAAA,CAKJA,CACT,CChVA,IAAMkB,EAAAA,CAA8CC,CAAA,CAAA,aAAA,CAElD,MAAS,CAAA,CAEJ,SAASC,EAAAA,CAAuC,CACrD,QAAA,CAAAC,CAAAA,CACA,WAAAC,CACF,CAAA,CAGG,CACD,OACEhB,IAACY,EAAAA,CAAsC,QAAA,CAAtC,CAA+C,KAAA,CAAOI,EACpD,QAAA,CAAAD,CAAAA,CACH,CAEJ,CAEO,SAASE,EAAAA,EAEF,CACZ,OAAaJ,CAAA,CAAA,UAAA,CAAWD,EAAqC,CAC/D,CCbO,SAASM,EAAAA,CACdjC,EACAkC,GAAAA,CACAC,CAAAA,CAIA,CACA,IAAMrC,EAASE,CAAAA,CAAQ,MAAA,CAAO,SAAA,CACxBK,CAAAA,CAAOP,EAAO,IAAA,CACdW,CAAAA,CAAQT,CAAAA,CAAQ,QAAA,GAChBoC,CAAAA,CAAgBD,CAAAA,EAAS,aAAA,EAAiB,KAAA,CAC1CE,EAAsBD,CAAAA,EAAiBtC,CAAAA,CAAO,IAAA,CAChDwC,UAAAA,CAAWxC,EAAO,IAAA,CAAME,CAAO,CAAA,CAC/B,MAAA,CACEuC,EAA4BC,EAAAA,CAChCH,CACF,CAAA,CACMI,CAAAA,CAAmBC,GAA6B,CACpD,OAAA,CAAA1C,CAAAA,CACA,yBAAA,CAA2BmC,GAAS,yBAAA,EAA6B,KAAA,CACjE,KAAA,CAAA1B,CACF,CAAC,CAAA,CAED,GAAIJ,CAAAA,EAAM,IAAA,GAAS,QAAU,CAAC+B,CAAAA,CAC5B,OACEtB,IAAAA,CAAC,OACC,eAAA,CAAc,yBAAA,CACd,mBAAA,CAAmB2B,CAAAA,CACnB,UAAWE,CAAAA,CACTC,EAAAA,CAAyBH,CAAgB,CAAA,CACzC,oDACF,CAAA,CAEA,QAAA,CAAA,CAAA1B,GAAAA,CAAC8B,CAAAA,CAAA,CACC,SAAA,CAAWF,CAAAA,CACT,UAAA,CACAT,GAAAA,EAAY,WAAa,YAC3B,CAAA,CACF,CAAA,CACAnB,GAAAA,CAAC,QAAK,SAAA,CAAU,kBAAA,CAAoB,QAAA,CAAA+B,EAAAA,CAAgBrC,CAAK,CAAA,CAAE,CAAA,CAAA,CAC7D,CAAA,CAIJ,IAAMsC,EAEJV,CAAAA,EAAwB,IAAA,EACxBA,CAAAA,GAAwB,EAAA,CACpBA,EACA5B,CAAAA,EAAS,IAAA,EAAQA,CAAAA,GAAU,EAAA,CAC3BM,IAAC,MAAA,CAAA,CAAK,SAAA,CAAWmB,GAAAA,EAAY,SAAA,EAAa,aAAc,QAAA,CAAA,GAAA,CAAC,CAAA,CACzDc,EAAAA,CAAgBvC,CAAK,EAE3B,OACEM,GAAAA,CAAC,KAAA,CAAA,CACC,eAAA,CAAc,0BACd,mBAAA,CAAmB0B,CAAAA,CACnB,SAAA,CAAWE,CAAAA,CACTC,GAAyBH,CAAgB,CAAA,CACzC,2BAAA,CACAF,CAAAA,EAA6B,gCAC/B,CAAA,CAEC,QAAA,CAAAQ,CAAAA,CACH,CAEJ,CAEA,SAASL,EAAAA,CAAoC,CAC3C,OAAA,CAAA1C,CAAAA,CACA,0BAAAiD,CAAAA,CACA,KAAA,CAAAxC,CACF,CAAA,CAI0B,CACxB,IAAMX,CAAAA,CAASE,CAAAA,CAAQ,MAAA,CAAO,UACxByC,CAAAA,CACJ,OAAO3C,CAAAA,CAAO,IAAA,EAAM,UAAa,UAAA,CAC7BA,CAAAA,CAAO,IAAA,CAAK,QAAA,CAAS,CACnB,GAAA,CAAKE,CAAAA,CAAQ,GAAA,CAAI,QAAA,CACjB,MAAAS,CACF,CAAC,CAAA,CACDX,CAAAA,CAAO,MAAM,QAAA,CAEnB,OAAI2C,CAAAA,GAIGQ,CAAAA,CAA4B,OAAS,UAAA,CAC9C,CAEA,SAASL,EAAAA,CAAyBM,EAAiC,CACjE,OAAQA,CAAAA,EACN,KAAK,MAAA,CACH,OAAO,yCAAA,CACT,KAAK,OACH,OAAO,qDAAA,CACT,KAAK,SAAA,CACH,OAAO,0CAAA,CAET,QACE,OAAO,uDACX,CACF,CAEA,SAASV,EAAAA,CAA6BO,CAAAA,CAA0B,CAC9D,OAAIA,CAAAA,EAAW,IAAA,CACN,KAAA,CAIDI,iBAAeJ,CAAO,CAAA,EAC5B,KAAA,CAAM,OAAA,CAAQA,CAAO,CAAA,EACrB,OAAOA,CAAAA,EAAY,QAEvB,CAEA,SAASD,EAAAA,CAAgBrC,CAAAA,CAAgB,CACvC,OAAI,OAAOA,CAAAA,EAAU,QAAA,CACZ,IAAI,KAAKA,CAAAA,CAAQ,GAAI,CAAA,CAAE,cAAA,GAG5B,OAAOA,CAAAA,EAAU,QAAA,EAAYA,CAAAA,CACxBA,EAGF,GACT,CAEA,SAASuC,EAAAA,CAAgBvC,EAAgB,CACvC,GAAIA,CAAAA,YAAiB,IAAA,CACnB,OAAOA,CAAAA,CAAM,cAAA,EAAe,CAG9B,GACE,OAAOA,CAAAA,EAAU,QAAA,EACjB,OAAOA,CAAAA,EAAU,UACjB,OAAOA,CAAAA,EAAU,SAAA,EACjB,OAAOA,GAAU,QAAA,CAEjB,OAAO,MAAA,CAAOA,CAAK,EAGrB,GAAI,CACF,OAAO,IAAA,CAAK,UAAUA,CAAK,CAC7B,CAAA,KAAQ,CACN,OAAO,GACT,CACF,CCtEA,SAAS2C,GAA6B,CACpC,aAAA,CAAAC,CAAAA,CACA,UAAA,CAAApD,IACA,cAAA,CAAAqD,CAAAA,CACA,WAAA,CAAAvF,CAAAA,CACA,eAAAwF,CAAAA,CACA,WAAA,CAAAC,CAAAA,CACA,2BAAA,CAAAC,IACA,eAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,GAAAA,CACA,SAAAC,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,EACA,cAAA,CAAAC,GAAAA,CACA,oBAAA,CAAAC,CAAAA,CACA,mBAAAC,CAAAA,CACA,eAAA,CAAAC,CAAAA,CACA,iBAAA,CAAAC,EACA,qBAAA,CAAAC,CAAAA,CACA,sBAAA,CAAAC,CAAAA,CACA,YAAAC,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,EACA,UAAA,CAAAC,CAAAA,CACA,mBAAA,CAAAC,CAAAA,CACA,WAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,EACA,cAAA,CAAAC,GAAAA,CACA,WAAA,CAAAC,CAAAA,CACA,YAAAC,CAAAA,CACA,GAAA,CAAApG,CAAAA,CACA,QAAA,CAAAqG,EACA,cAAA,CAAAjH,EAAAA,CACA,WAAA,CAAAkH,EAAAA,CACA,aAAAC,CAAAA,CACA,YAAA,CAAAC,EAAAA,CACA,sBAAA,CAAAC,EACF,CAAA,CAAiC,CAC/B,GAAM,CAAE,SAAAlF,EAAAA,CAAU,KAAA,CAAAC,CAAAA,CAAO,QAAA,CAAAkF,GAAU,SAAA,CAAAC,EAAAA,CAAW,QAAA,CAAAC,EAAS,EAAIvF,GAAAA,CACrDwF,CAAAA,CAAwBzD,EAAAA,EAAkC,CAC1D0D,GAAiBZ,GAAAA,CAAiB,MAAA,CAAYW,CAAAA,CAC9CE,EAAAA,CAAoBP,GAAa,IAAA,CACpCQ,CAAAA,EAAS,CAACvC,CAAAA,CAAc,IAAIuC,CAAAA,CAAK,MAAA,CAAO,EAAE,CAAA,EAAG,eAChD,CAAA,EAAG,MAAA,CAAO,EAAA,CACJC,EAAAA,CAAoBT,GAAa,SAAA,CACpCQ,CAAAA,EAASA,CAAAA,CAAK,MAAA,CAAO,KAAO,YAC/B,CAAA,CAEA,OACE9E,IAAAA,CAAOgF,WAAN,CACC,QAAA,CAAA,CAAA/E,GAAAA,CAACyE,EAAAA,CAAA,CACC,GAAA,CAAKE,EAAAA,CACL,aAAA,CAAa9G,CAAAA,CAAI,GACjB,YAAA,CAAY8G,EAAAA,CAAiBT,CAAAA,CAAW,MAAA,CACxC,kBACE,CAACP,CAAAA,EAAuB9F,CAAAA,CAAI,KAAA,CAAQ,EAAIA,CAAAA,CAAI,KAAA,CAAQ,MAAA,CAEtD,eAAA,CACEkG,IAAiB,uBAAA,CAA0B,gBAAA,CAE7C,iBAAA,CAAiBA,GAAAA,CACjB,mBAAkBlG,CAAAA,CAAI,YAAA,EAAa,EAAK,MAAA,CACxC,UAAW8F,CAAAA,CAAsB,KAAA,CAAQJ,CAAAA,CACzC,cAAA,CAAcM,GAAc,SAAA,EAAa,MAAA,CACzC,iBAAgBF,CAAAA,CAAsB,MAAA,CAAYO,EAClD,iBAAA,CACEC,EAAAA,EAAe,CAACR,CAAAA,CACZO,EAAW,CAAA,GAAM,CAAA,CACf,KAAA,CACA,MAAA,CACF,OAEN,YAAA,CACEP,CAAAA,CAAsB,MAAA,CAAYC,CAAAA,CAAa,WAAa,MAAA,CAE9D,IAAA,CAAMf,CAAAA,CAAW,KAAA,CAAQ,OACzB,eAAA,CAAeA,CAAAA,CAAWC,CAAAA,CAAmB,MAAA,CAC7C,SACE,CAACD,CAAAA,EAAYiB,CAAAA,EAAc,CAACH,EAAsB,CAAA,CAAI,MAAA,CAExD,SAAA,CAAW/B,CAAAA,CACT,CAAC+B,CAAAA,EACChB,CAAAA,GAAkBqB,CAAAA,CAAa,CAC7B,IAAKA,CAAAA,CACL,KAAA,CAAOnG,CAAAA,CAAI,EAAA,CACX,SAAAqG,CAAAA,CACA,SAAA,CAAAT,CAAAA,CACA,UAAA,CAAAC,EACA,SAAA,CAAW,CAAA,CAAQG,CAAAA,EAAc,SAAA,CACjC,WAAAD,CAAAA,CACA,cAAA,CAAgBG,GAAAA,EAAkB,KACpC,CAAC,CAAA,CACHK,CAAAA,CAAa,GAAA,CACbL,GAAAA,GAAmB,OACjBnC,CAAAA,CAAG,YAAA,CAAcwC,CAAAA,CAAa,YAAY,EAC5CL,GAAAA,GAAmB,QAAA,EACjBnC,CAAAA,CAAG,YAAA,CAAcwC,EAAa,eAAe,CAAA,CAC/CD,EAAAA,EACE,CAACR,IACAO,CAAAA,CAAW,CAAA,GAAM,CAAA,CACdE,CAAAA,CAAa,OACbA,CAAAA,CAAa,OAAA,CAAA,CACnBR,CAAAA,EAAc,CAACD,GAAuBS,CAAAA,CAAa,WAAA,CACnDN,CAAAA,EAAc,CAACH,GAAuB,gBAAA,CACtCA,CAAAA,EAAuB,qBACzB,CAAA,CACA,QAAU/D,CAAAA,EAAiD,CACrD+D,CAAAA,EAIAqB,CAAAA,CAA6BpF,EAAM,MAAA,CAAQA,CAAAA,CAAM,aAAa,CAAA,EAI9DiD,GAAYI,CAAAA,EAEXa,CAAAA,GAAa,CAAE,GAAA,CAAKE,EAAa,KAAA,CAAOnG,CAAAA,CAAI,EAAG,CAAC,EACvD,CAAA,CACA,SAAA,CAAY+B,CAAAA,EAAoD,CAE5D+D,GACA,CAACG,CAAAA,EACAlE,CAAAA,CAAM,GAAA,GAAQ,SAAWA,CAAAA,CAAM,GAAA,GAAQ,GAAA,EAKtCoF,CAAAA,CAA6BpF,EAAM,MAAA,CAAQA,CAAAA,CAAM,aAAa,CAAA,GAIlEA,EAAM,cAAA,EAAe,CAChBkE,CAAAA,CAAW,CAAE,IAAKE,CAAAA,CAAa,KAAA,CAAOnG,CAAAA,CAAI,EAAG,CAAC,CAAA,EACrD,CAAA,CACA,WAAA,CAAc+B,CAAAA,EAAgD,CACxD+D,CAAAA,EAIJlB,CAAAA,EAAa,cAAA,GAAiB,CAC5B,IAAKuB,CAAAA,CACL,KAAA,CAAOnG,CAAAA,CAAI,EAAA,CACX,MAAA+B,CACF,CAAC,EACH,CAAA,CACA,UAAYA,CAAAA,EAAgD,CACtD+D,CAAAA,EAIJlB,CAAAA,EAAa,eAAe,CAC1B,GAAA,CAAKuB,CAAAA,CACL,KAAA,CAAOnG,EAAI,EAAA,CACX,KAAA,CAAA+B,CACF,CAAC,EACH,CAAA,CAEC,QAAA,CAAAyE,EAAAA,CAAa,GAAA,CAAI,CAACQ,CAAAA,CAAMI,CAAAA,GAAgB,CACvC,IAAM3F,EACJuF,CAAAA,CAAK,MAAA,CAAO,SAAA,CACZ,IAAA,CACIK,EAAcL,CAAAA,CAAK,UAAA,EAAW,CAC9BnF,EAAAA,CAAQmF,EAAK,QAAA,EAAS,CACtBM,CAAAA,CAAS7C,CAAAA,CAAc,IAAIuC,CAAAA,CAAK,MAAA,CAAO,EAAE,CAAA,CACzCO,GAAoBD,CAAAA,EAAQ,iBAAA,EAAqB,KAAA,CACjDE,CAAAA,CAAoBF,GAAQ,iBAAA,EAAqB,KAAA,CACjDG,CAAAA,CAAkBH,CAAAA,EAAQ,iBAAmB,KAAA,CAC7CI,CAAAA,CAAiBJ,CAAAA,EAAQ,cAAA,EAAkB,MAC3CK,EAAAA,CACJP,CAAAA,CACA,CAAA,EACCH,EAAAA,EAAqB,GAAKA,EAAAA,CAAoBG,CAAAA,CAAc,CAAA,CAAI,CAAA,CAAA,CAC7DQ,GAAgBC,CAAAA,CAAgBpG,CAAAA,EAAM,MAAM,CAAA,CAC5CqG,GACJhC,CAAAA,EAAuBiC,CAAAA,CAAsB5B,CAAW,CAAA,CACpD,OACA,OAAO1E,CAAAA,EAAM,aAAA,EAAkB,UAAA,CAC7BA,EAAK,aAAA,CAAc,CACjB,GAAA,CAAK0E,CAAAA,CACL,MAAAtE,EACF,CAAC,CAAA,CACDJ,CAAAA,EAAM,cACRuG,EAAAA,CACJhD,CAAAA,EAAYI,CAAAA,EACZ,CAACU,GACD,CAAC4B,CAAAA,EACDrC,CAAAA,CAAmBH,CAAAA,CAAckC,CAAW,CAAA,CAE9C,OACEjF,GAAAA,CAACwE,EAAAA,CAAA,CAEC,gBAAA,CAAgBK,CAAAA,CAAK,MAAA,CAAO,EAAA,CAC5B,wBAAuBU,CAAAA,CAAiB,MAAA,CAAS,MAAA,CACjD,IAAA,CACE1C,EACI0C,CAAAA,CACE,cAAA,CACA,UAAA,CACF,MAAA,CAEN,gBACE1C,CAAAA,EAAY,CAAC0C,CAAAA,CAAiBC,EAAAA,CAAsB,OAEtD,aAAA,CAAaD,CAAAA,EAAkB,MAAA,CAC/B,eAAA,CACE1C,GAAY,CAACc,CAAAA,EAAuB,CAAC4B,CAAAA,CACjCtC,EACE4C,EAAAA,CACAjC,CAAAA,CACF,MAAA,CAEN,wBAAA,CAAwBiC,IAAkB,MAAA,CAC1C,oBAAA,CACEhD,GAAY,CAAC0C,CAAAA,CAAiB,OAAS,MAAA,CAEzC,qBAAA,CACE1C,CAAAA,EAAY,CAAC0C,EAAiBxC,CAAAA,CAAe,MAAA,CAE/C,wBAAA,CACEF,CAAAA,EAAY,CAAC0C,CAAAA,CAAiBN,CAAAA,CAAc,MAAA,CAE9C,QAAA,CACEpC,GAAY,CAACc,CAAAA,EAAuB,CAAC4B,CAAAA,CACjCvC,IAAe,GAAA,GAAQD,CAAAA,EACvBC,GAAAA,CAAe,MAAA,GAAWiC,EACxB,CAAA,CACA,EAAA,CACF,MAAA,CAEN,OAAA,CACEpC,GAAY,CAAC0C,CAAAA,CACT,IAAMpC,CAAAA,CAAgB,CAAE,GAAA,CAAKJ,CAAAA,CAAc,MAAA,CAAQkC,CAAY,CAAC,CAAA,CAChE,MAAA,CAEN,SAAA,CACEpC,CAAAA,EAAY,CAAC0C,CAAAA,CACR3F,CAAAA,EAAqD,CACpD,GAAIA,EAAM,MAAA,GAAWA,CAAAA,CAAM,aAAA,CAAe,CACpCA,EAAM,GAAA,GAAQ,QAAA,GAChBA,CAAAA,CAAM,cAAA,GACNA,CAAAA,CAAM,aAAA,CAAc,KAAA,EAAM,CAAA,CAE5B,MACF,CACAwD,CAAAA,CAAkBxD,CAAAA,CAAOmD,CAAAA,CAAckC,CAAW,EACpD,CAAA,CACA,MAAA,CAEN,aAAA,CACEpC,GACAI,CAAAA,EACA,CAACkC,CAAAA,EAAQ,eAAA,EACT,CAACI,CAAAA,CACI3F,CAAAA,EAAoD,CAC/CoF,CAAAA,CAA6BpF,EAAM,MAAA,CAAQA,CAAAA,CAAM,aAAa,CAAA,GAClEA,EAAM,aAAA,CAAc,KAAA,EAAM,CAC1ByD,CAAAA,CAAsBzD,EAAOmD,CAAAA,CAAckC,CAAW,CAAA,EACxD,CAAA,CACA,OAEN,cAAA,CACEpC,CAAAA,EACAI,CAAAA,EACA,CAACkC,GAAQ,eAAA,EACT,CAACI,CAAAA,CACI3F,CAAAA,EAAoD,CAC/CoF,CAAAA,CAA6BpF,CAAAA,CAAM,MAAA,CAAQA,CAAAA,CAAM,aAAa,CAAA,EAClE0D,CAAAA,CAAuB1D,CAAAA,CAAOmD,CAAAA,CAAckC,CAAW,EACzD,CAAA,CACA,MAAA,CAEN,SAAA,CAAWrD,EACT,UAAA,CACAkE,CAAAA,CAAwBvD,CAAc,CAAA,CACtC6B,EAAa,UAAA,CACbyB,EAAAA,EAAkBzB,CAAAA,CAAa,YAAA,CAC/Be,GAAQ,gBAAA,CACRA,CAAAA,EAAQ,cAAA,EAAkB,KAAA,CAC1BA,GAAQ,eAAA,CACRM,EAAAA,CACAM,CAAAA,CAAmBb,CAAW,EAC9B5F,CAAAA,EAAM,mBAAA,CACNqG,EACF,CAAA,CACA,MAAOR,CAAAA,EAAQ,SAAA,CAEf,QAAA,CAAAnF,GAAAA,CAAC,OACC,uBAAA,CACEoF,EAAAA,EACAC,CAAAA,EACAC,CAAAA,EACAC,EACI,MAAA,CACA,MAAA,CAEN,SAAA,CAAU,oBAAA,CACV,MACE1H,CAAAA,CAAI,KAAA,CAAQ,CAAA,EAAKgH,CAAAA,CAAK,OAAO,EAAA,GAAOD,EAAAA,CAChC,CAAE,kBAAA,CAAoB,GAAG/G,CAAAA,CAAI,KAAK,CAAA,GAAA,CAAM,CAAA,CACxC,OAGL,QAAA,CAAA0H,CAAAA,CAAiB,IAAA,CAAO1B,CAAAA,EAAc,UACpCvE,CAAAA,EAAM,QAAA,GAAW4F,CAAW,CAAA,EAC7BrB,EAAa,QAAA,EACX7D,GAAAA,CAACuE,EAAAA,CAAA,CACC,UAAW3C,CAAAA,CACT,aAAA,CACAtC,CAAAA,EAAM,IAAA,GAAS,UACX,cAAA,CACAA,CAAAA,EAAM,IAAA,GAAS,MAAA,CACb,eACA,QACR,CAAA,CACF,CAAA,CAEAmE,CAAAA,EACFoB,EAAK,MAAA,CAAO,EAAA,GAAO,YAAA,EACnBA,CAAAA,CAAK,OAAO,EAAA,GAAO,YAAA,EACnBA,CAAAA,CAAK,MAAA,CAAO,KAAO,aAAA,CACnB7F,EAAAA,CACEkG,CAAAA,CACAlI,CAAAA,CACAC,GACA,CACE,QAAA,CAAAmC,EAAAA,CACA,KAAA,CAAAC,CACF,CAAA,CACAmD,CAAAA,CACI,CACE,MAAA,CAAQA,EAAe,MAAA,CACvB,cAAA,CAAgBA,CAAAA,CAAe,cAAA,CAC/B,OAAQ,IAAMA,CAAAA,CAAe,MAAA,CAAOwB,CAAW,EAC/C,aAAA,CAAexB,CAAAA,CAAe,aAAA,CAC9B,MAAA,CAAQA,EAAe,MAAA,CACvB,OAAA,CAASA,CAAAA,CAAe,OAAA,CACxB,UAAWA,CAAAA,CAAe,SAAA,CAC1B,aAAA,CAAeA,CAAAA,CAAe,UAChC,CAAA,CACA,MACN,CAAA,CACE3E,CAAAA,CAAI,cAAa,EAAKgH,CAAAA,CAAK,gBAAA,EAAiB,CAAI,KAAOhH,CAAAA,CAAI,YAAA,EAAa,EAAKgH,CAAAA,CAAK,cAAa,CACjG9E,IAAAA,CAAC,QAAA,CAAA,CACC,IAAA,CAAK,SACL,SAAA,CAAU,8DAAA,CACV,OAAA,CAAS,IAAMlC,EAAI,cAAA,EAAe,CAClC,eAAA,CAAeA,CAAAA,CAAI,eAAc,CACjC,YAAA,CAAY+E,GAAAA,CAEZ,QAAA,CAAA,CAAA5C,IAAC,MAAA,CAAA,CAAK,aAAA,CAAY,MAAA,CACf,QAAA,CAAAkB,GAA2BgE,CAAAA,CAAad,CAAAA,CAAc,CACrD,aAAA,CACE1B,IAA4B,GAAA,CAAImC,CAAAA,CAAK,MAAA,CAAO,EAAE,EAChD,yBAAA,CACEnC,GAAAA,CAA4B,GAAA,CAAImC,CAAAA,CAAK,OAAO,EAAE,CAClD,CAAC,CAAA,CACH,CAAA,CACA9E,KAAC,MAAA,CAAA,CAAK,SAAA,CAAU,qBAAA,CAAsB,QAAA,CAAA,CAAA,GAAA,CAClClC,EAAI,OAAA,CAAQ,MAAA,CAAO,GAAA,CAAA,CACvB,CAAA,CAAA,CACF,EACEA,CAAAA,CAAI,YAAA,EAAa,EAAKgH,CAAAA,CAAK,iBAAgB,CAC7CA,CAAAA,CAAK,MAAA,CAAO,SAAA,CAAU,eAClBtD,UAAAA,CAAWsD,CAAAA,CAAK,MAAA,CAAO,SAAA,CAAU,eAAgBK,CAAW,CAAA,CAC5DhE,EAAAA,CAA2BgE,CAAAA,CAAad,EAAc,CACpD,aAAA,CAAe,KAAA,CACf,yBAAA,CAA2B,KAC7B,CAAC,CAAA,CAELlD,EAAAA,CAA2BgE,CAAAA,CAAad,EAAc,CACpD,aAAA,CACE1B,GAAAA,CAA4B,GAAA,CAAImC,EAAK,MAAA,CAAO,EAAE,CAAA,EAC9CO,EAAAA,EACAC,GACAC,CAAAA,EACAC,CAAAA,CACF,yBAAA,CACE7C,GAAAA,CAA4B,IAAImC,CAAAA,CAAK,MAAA,CAAO,EAAE,CAAA,EAC9CO,IACAC,CAAAA,EACAC,CAAAA,EACAC,CACJ,CAAC,EAEL,CAAA,CAAA,CAlMKV,CAAAA,CAAK,EAmMZ,CAEJ,CAAC,CAAA,CACH,CAAA,CACC,CAAClB,CAAAA,EAAuBM,GAAeT,CAAAA,CACtCxD,GAAAA,CAACyE,EAAAA,CAAA,CACC,gBAAc,6BAAA,CACd,iBAAA,CAAiBV,GAAAA,CAEjB,QAAA,CAAA/D,IAACwE,EAAAA,CAAA,CACC,OAAA,CAAS,IAAA,CAAK,IAAI,CAAA,CAAGF,EAAsB,CAAA,CAC3C,SAAA,CAAW1C,EACT,UAAA,CACAkE,CAAAA,CAAwBvD,CAAc,CAAA,CACtC6B,EAAa,UACf,CAAA,CAEC,QAAA,CAAAH,CAAAA,CAAY,OAAO,CAClB,GAAA,CAAKD,CAAAA,CACL,KAAA,CAAOnG,EAAI,EAAA,CACX,QAAA,CAAUA,CACZ,CAAC,EACH,CAAA,CACF,CAAA,CACE,IAAA,CAAA,CACN,CAEJ,CAEA,SAASmI,EAAAA,CACPC,CAAAA,CACArH,CAAAA,CACA,CACA,OACEqH,CAAAA,CAAS,GAAA,CAAI,EAAA,GAAOrH,EAAK,GAAA,CAAI,EAAA,EAC7BqH,CAAAA,CAAS,GAAA,CAAI,WAAarH,CAAAA,CAAK,GAAA,CAAI,QAAA,EACnCqH,CAAAA,CAAS,WAAarH,CAAAA,CAAK,QAAA,EAC3BqH,CAAAA,CAAS,UAAA,GAAerH,EAAK,UAAA,EAC7BqH,CAAAA,CAAS,mBAAA,GAAwBrH,CAAAA,CAAK,qBACtCqH,CAAAA,CAAS,SAAA,GAAcrH,CAAAA,CAAK,SAAA,GAC3B,CAACqH,CAAAA,CAAS,SAAA,EAAaA,CAAAA,CAAS,cAAA,GAAmBrH,EAAK,cAAA,CAAA,EACzDqH,CAAAA,CAAS,UAAA,GAAerH,CAAAA,CAAK,YAC7BqH,CAAAA,CAAS,WAAA,GAAgBrH,CAAAA,CAAK,WAAA,EAC9BsH,GAAiBD,CAAAA,CAAS,YAAA,CAAcrH,CAAAA,CAAK,YAAY,GACzDuH,EAAAA,CAAiBF,CAAAA,CAAS,YAAA,CAAcrH,CAAAA,CAAK,YAAY,CAAA,EACzDqH,CAAAA,CAAS,UAAA,GAAerH,CAAAA,CAAK,YAC7BwH,EAAAA,CACEH,CAAAA,CAAS,aAAA,CACTrH,CAAAA,CAAK,cACLA,CAAAA,CAAK,YACP,CAAA,EACAqH,CAAAA,CAAS,iBAAmBrH,CAAAA,CAAK,cAAA,EACjCqH,CAAAA,CAAS,WAAA,GAAgBrH,EAAK,WAAA,EAC9BqH,CAAAA,CAAS,gBAAA,GAAqBrH,CAAAA,CAAK,kBACnCqH,CAAAA,CAAS,cAAA,GAAmBrH,CAAAA,CAAK,cAAA,EACjCqH,EAAS,UAAA,GAAerH,CAAAA,CAAK,UAAA,EAC7BqH,CAAAA,CAAS,cAAgBrH,CAAAA,CAAK,WAAA,EAC9BqH,CAAAA,CAAS,eAAA,GAAoBrH,EAAK,eAAA,EAClCqH,CAAAA,CAAS,gBAAA,GAAqBrH,CAAAA,CAAK,kBACnCqH,CAAAA,CAAS,QAAA,GAAarH,CAAAA,CAAK,QAAA,GAC1B,CAACA,CAAAA,CAAK,QAAA,EACJqH,CAAAA,CAAS,gBAAA,GAAqBrH,EAAK,gBAAA,EAClCqH,CAAAA,CAAS,YAAA,GAAiBrH,CAAAA,CAAK,cAC/BqH,CAAAA,CAAS,cAAA,CAAe,GAAA,GAAQrH,CAAAA,CAAK,eAAe,GAAA,EACpDqH,CAAAA,CAAS,cAAA,CAAe,MAAA,GAAWrH,EAAK,cAAA,CAAe,MAAA,EACvDqH,CAAAA,CAAS,oBAAA,GAAyBrH,EAAK,oBAAA,EACvCqH,CAAAA,CAAS,kBAAA,GAAuBrH,CAAAA,CAAK,oBACrCqH,CAAAA,CAAS,eAAA,GAAoBrH,CAAAA,CAAK,eAAA,EAClCqH,EAAS,iBAAA,GAAsBrH,CAAAA,CAAK,iBAAA,EACpCqH,CAAAA,CAAS,wBAA0BrH,CAAAA,CAAK,qBAAA,EACxCqH,CAAAA,CAAS,sBAAA,GAA2BrH,EAAK,sBAAA,CAAA,EAC7CqH,CAAAA,CAAS,WAAA,GAAgBrH,CAAAA,CAAK,aAC9BqH,CAAAA,CAAS,YAAA,GAAiBrH,CAAAA,CAAK,YAAA,EAC/BqH,EAAS,2BAAA,GAAgCrH,CAAAA,CAAK,2BAAA,GAC7C,CAACqH,EAAS,SAAA,EAAaA,CAAAA,CAAS,WAAA,GAAgBrH,CAAAA,CAAK,YAE1D,CAEA,SAASsH,EAAAA,CACPD,CAAAA,CACArH,EACA,CACA,OACEqH,CAAAA,EAAU,SAAA,GAAcrH,GAAM,SAAA,EAC9BqH,CAAAA,EAAU,QAAA,GAAarH,CAAAA,EAAM,QAEjC,CAEA,SAASuH,EAAAA,CACPF,CAAAA,CACArH,EACA,CACA,OACEqH,EAAS,MAAA,GAAWrH,CAAAA,CAAK,QACzBqH,CAAAA,CAAS,KAAA,CAAM,CAACpB,CAAAA,CAAMwB,IAAU,CAC9B,IAAMC,CAAAA,CAAW1H,CAAAA,CAAKyH,CAAK,CAAA,CAC3B,OAAOC,CAAAA,EAAU,EAAA,GAAOzB,EAAK,EAAA,EAAMyB,CAAAA,CAAS,MAAA,CAAO,EAAA,GAAOzB,EAAK,MAAA,CAAO,EACxE,CAAC,CAEL,CAEA,SAASuB,EAAAA,CACPH,CAAAA,CACArH,CAAAA,CACA2H,EACA,CACA,OAAOA,CAAAA,CAAM,KAAA,CAAO1B,GAAS,CAC3B,IAAM2B,CAAAA,CAAiBP,CAAAA,CAAS,IAAIpB,CAAAA,CAAK,MAAA,CAAO,EAAE,CAAA,CAC5C4B,EAAa7H,CAAAA,CAAK,GAAA,CAAIiG,CAAAA,CAAK,MAAA,CAAO,EAAE,CAAA,CAE1C,OACE2B,CAAAA,EAAgB,SAAA,GAAcC,GAAY,SAAA,EAC1CD,CAAAA,EAAgB,eAAA,GAAoBC,CAAAA,EAAY,iBAChDD,CAAAA,EAAgB,iBAAA,GAAsBC,CAAAA,EAAY,iBAAA,EAClDD,GAAgB,iBAAA,GAAsBC,CAAAA,EAAY,iBAAA,EAClDD,CAAAA,EAAgB,iBAAmBC,CAAAA,EAAY,cAAA,EAC/CD,CAAAA,EAAgB,eAAA,GAAoBC,GAAY,eAAA,EAChDD,CAAAA,EAAgB,eAAA,GAAoBC,CAAAA,EAAY,iBAChDD,CAAAA,EAAgB,gBAAA,GAAqBC,CAAAA,EAAY,gBAAA,EACjDC,GAAcF,CAAAA,EAAgB,SAAA,CAAWC,CAAAA,EAAY,SAAS,CAElE,CAAC,CACH,CAEA,SAASC,GACPT,CAAAA,CACArH,CAAAA,CACA,CACA,OACEqH,GAAU,KAAA,GAAUrH,CAAAA,EAAM,KAAA,EAC1BqH,CAAAA,EAAU,WAAarH,CAAAA,EAAM,QAAA,EAC7BqH,CAAAA,EAAU,QAAA,GAAarH,GAAM,QAAA,EAC7BqH,CAAAA,EAAU,IAAA,GAASrH,CAAAA,EAAM,MACzBqH,CAAAA,EAAU,KAAA,GAAUrH,CAAAA,EAAM,KAE9B,CAEO,IAAM+H,EAAAA,CAAyB5B,CAAA,CAAA,IAAA,CACpC1C,EAAAA,CACA2D,EACF,EC/jBA,SAASY,EAAAA,CAAgC,CACvC,wBAAAC,CAAAA,CACA,cAAA,CAAAtE,GAAAA,CACA,cAAA,CAAAuE,EACA,GAAA,CAAAC,CAAAA,CACA,kBAAA,CAAAC,CAAAA,CACA,uBAAAC,CAAAA,CACA,oBAAA,CAAAC,CAAAA,CACA,eAAA,CAAAC,EACA,QAAA,CAAAtE,GAAAA,CACA,MAAA,CAAAuE,GAAAA,CACA,mBAAAC,CAAAA,CACA,MAAA,CAAAlC,GAAAA,CACA,oBAAA,CAAAmC,EACA,aAAA,CAAAC,GAAAA,CACA,iBAAA,CAAAC,CAAAA,CACA,gBAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CACA,YAAA,CAAAtD,CACF,CAAA,CAAoC,CAClC,IAAM9E,CAAAA,CAAQ8H,IAAO,MAAA,CAAO,SAAA,CACzB,IAAA,CACGO,CAAAA,CAAwBC,SAAM,CAC9BC,CAAAA,CACJ,CAACT,GAAAA,CAAO,eAAiBA,GAAAA,CAAO,UAAA,CAAW,MAAA,CAAS,CAAA,CAChDU,EAAkBD,CAAAA,CACnBT,GAAAA,CAAO,MAAA,CAAO,SAAA,CACf,OACEW,CAAAA,CAAUX,GAAAA,CAAO,MAAA,CAAO,UAAA,GACxBY,CAAAA,CAAeZ,GAAAA,CAAO,MAAA,CAAO,WAAA,GAC7Ba,GAAAA,CAAenB,CAAAA,CAAe,SAAA,CACjCoB,CAAAA,EAASA,EAAK,EAAA,GAAOd,GAAAA,CAAO,MAAA,CAAO,EACtC,EACMe,CAAAA,CACJlB,CAAAA,EACA,CAACG,GAAAA,CAAO,eACR,CAACS,CAAAA,EACD,CAAC1C,GAAAA,CAAO,iBACR,CAACA,GAAAA,CAAO,cAAA,CACJM,CAAAA,CAAgBC,EAAgBpG,CAAAA,EAAM,MAAM,CAAA,CAElD,OACES,KAAC2H,CAAAA,CAAA,CAEC,OAAA,CAASN,GAAAA,CAAO,QAChB,KAAA,CACEA,GAAAA,CAAO,aAAA,EAAiBjC,GAAAA,CAAO,eAC3B,MAAA,CACA0C,CAAAA,CACE,UAAA,CACA,KAAA,CAER,KACEhF,GAAAA,CACIsC,GAAAA,CAAO,cAAA,CACL,cAAA,CACA,eACF,MAAA,CAEN,eAAA,CACEtC,GAAAA,EAAY,CAACsC,IAAO,cAAA,CAAiBgC,CAAAA,CAAkB,MAAA,CAEzD,aAAA,CACEC,IAAO,aAAA,EAAiBjC,GAAAA,CAAO,cAAA,EAAkB,MAAA,CAEnD,mBAAkB0C,CAAAA,CAAgBC,CAAAA,EAAiB,WAAA,CAAc,MAAA,CACjE,kBACE,CAACV,GAAAA,CAAO,aAAA,EACR,CAACjC,IAAO,eAAA,EACR,CAACA,GAAAA,CAAO,cAAA,CACJwC,EACA,MAAA,CAEN,gBAAA,CAAgBP,GAAAA,CAAO,MAAA,CAAO,GAC9B,sBAAA,CAAsBS,CAAAA,CAAgBC,CAAAA,EAAiB,EAAA,CAAK,OAC5D,mBAAA,CAAmBV,GAAAA,CAAO,KAAA,CAC1B,eAAA,CACES,EACI,gCAAA,CACA,0BAAA,CAEN,SAAA,CAAWjG,CAAAA,CACT,oBACAwG,CAAAA,CAA0B7F,GAAc,EACxCsF,CAAAA,EAAiBzD,CAAAA,CAAa,kBAC9Be,GAAAA,CAAO,gBAAA,CACPA,GAAAA,CAAO,cAAA,EAAkB,MACzBA,GAAAA,CAAO,eAAA,CACPM,CAAAA,CACA4C,CAAAA,CAAqBjB,IAAO,UAAA,EAAY,CAAA,CACxC9H,CAAAA,EAAM,gBACNuI,CAAAA,EAAiBC,CAAAA,EAAiB,eAAA,CAClCxI,CAAAA,EAAM,mBACR,CAAA,CACA,KAAA,CAAO,CACL,GAAGA,GAAM,WAAA,CACT,GAAIuI,CAAAA,CAAgBC,CAAAA,EAAiB,YAAc,MAAA,CACnD,GAAID,CAAAA,EAAAA,CACHC,CAAAA,EAAiB,cAAgBjB,CAAAA,IAA6B,MAAA,CAC3D,CACE,MAAA,CACEiB,GAAiB,YAAA,EAAgBjB,CACrC,CAAA,CACA,MAAA,CACJ,GAAG1B,GAAAA,CAAO,WACZ,CAAA,CACA,KAAA,CAAO0C,EAAgBC,CAAAA,EAAiB,WAAA,CAAc,MAAA,CACtD,WAAA,CACEE,IAAiB,KAAA,CACb,WAAA,CACAA,CAAAA,GAAiB,MAAA,CACf,aACAD,CAAAA,CACE,MAAA,CACA,MAAA,CAEV,SAAA,CAAWI,EACX,QAAA,CACEA,CAAAA,EACA,CAACJ,CAAAA,EACD,EAAEb,CAAAA,EAAwBE,GAAAA,CAAO,MAAA,CAAO,YAAA,IACpC,CAAA,CACA,MAAA,CAEN,WAAA,CACEe,CAAAA,CACKvI,GAAiD,CAChDoH,CAAAA,CAAmB,OAAA,CAAUI,GAAAA,CAAO,OAAO,EAAA,CAC3CxH,CAAAA,CAAM,YAAA,CAAa,aAAA,CAAgB,OACrC,CAAA,CACA,MAAA,CAEN,UAAA,CACEuI,CAAAA,CACKvI,GAAiD,CAChDA,CAAAA,CAAM,cAAA,EAAe,CACrBA,EAAM,YAAA,CAAa,UAAA,CAAa,OAClC,CAAA,CACA,OAEN,MAAA,CACEuI,CAAAA,CACKvI,CAAAA,EAAiD,CAChDA,EAAM,cAAA,EAAe,CACrB,IAAM0I,CAAAA,CAAiBtB,EAAmB,OAAA,CAC1CA,CAAAA,CAAmB,OAAA,CAAU,IAAA,CACzBsB,GACFf,GAAAA,CAAce,CAAAA,CAAgBlB,GAAAA,CAAO,MAAA,CAAO,EAAE,EAElD,CAAA,CACA,MAAA,CAEN,SAAA,CACEe,EACKvI,CAAAA,EAAqD,CACpD,GACE,CAACA,EAAM,MAAA,EACNA,CAAAA,CAAM,GAAA,GAAQ,WAAA,EAAeA,EAAM,GAAA,GAAQ,YAAA,CAE5C,OAGFA,CAAAA,CAAM,gBAAe,CACrB,IAAM2I,CAAAA,CAAUlB,CAAAA,CAAmB,OAChCmB,CAAAA,EACC,CAACC,CAAAA,CAAkBD,CAAAA,CAAK,OAAO,EAAE,CAAA,EACjCA,CAAAA,CAAK,MAAA,CAAO,KAAO,YACvB,CAAA,CACME,CAAAA,CAAeH,CAAAA,CAAQ,UAC1BC,CAAAA,EAASA,CAAAA,CAAK,MAAA,CAAO,EAAA,GAAOpB,IAAO,MAAA,CAAO,EAC7C,CAAA,CACMuB,CAAAA,CACJJ,EACG3I,CAAAA,CAAM,GAAA,GAAQ,WAAA,GAAkBmH,CAAAA,GAAQ,OACrC2B,CAAAA,CAAe,CAAA,CACfA,CAAAA,CAAe,CACrB,EACEC,CAAAA,EACFpB,GAAAA,CAAcH,GAAAA,CAAO,MAAA,CAAO,GAAIuB,CAAAA,CAAO,MAAA,CAAO,EAAE,EAEpD,EACA,MAAA,CAGL,QAAA,CAAA,CAAAvB,GAAAA,CAAO,aAAA,CAAgB,KAAOW,CAAAA,CAC7BhI,IAAAA,CAAC,QAAA,CAAA,CACC,IAAA,CAAK,SACL,SAAA,CAAW6B,CAAAA,CACT,4CAAA,CACAyG,CAAAA,CAAqBjB,IAAO,UAAA,EAAY,CAC1C,CAAA,CACA,QAASA,GAAAA,CAAO,MAAA,CAAO,uBAAA,EAAwB,CAE/C,UAAApH,GAAAA,CAAC,MAAA,CAAA,CAAK,EAAA,CAAI2H,CAAAA,CAAiB,UAAU,UAAA,CAClC,QAAA,CAAApG,UAAAA,CAAW6F,GAAAA,CAAO,OAAO,SAAA,CAAU,MAAA,CAAQA,GAAAA,CAAO,UAAA,EAAY,CAAA,CACjE,CAAA,CACCY,CAAAA,CACCjI,IAAAA,CAAA6I,SAAA,CACE,QAAA,CAAA,CAAA5I,GAAAA,CAAC6I,CAAAA,CAAA,CACC,SAAA,CAAWjH,CAAAA,CACT,sCAAA,CACAoG,CAAAA,GAAiB,OAAS,UAAA,CAAa,YACzC,CAAA,CACF,CAAA,CACClB,EAAe,MAAA,CAAS,CAAA,EAAKmB,GAAAA,EAAgB,CAAA,CAC5CjI,IAAC,MAAA,CAAA,CAAK,SAAA,CAAU,+FAAA,CACb,QAAA,CAAAiI,IAAe,CAAA,CAClB,CAAA,CACE,IAAA,CAAA,CACN,CAAA,CAEAjI,IAAC8I,CAAAA,CAAA,CACC,SAAA,CAAWlH,CAAAA,CACT,kBACAwC,CAAAA,CAAa,cAAA,EAAkB,YACjC,CAAA,CACF,GAEJ,CAAA,CAEAe,GAAAA,CAAO,eAAA,EAAmBA,GAAAA,CAAO,eAC/B5D,UAAAA,CAAW6F,GAAAA,CAAO,MAAA,CAAO,SAAA,CAAU,OAAQA,GAAAA,CAAO,UAAA,EAAY,CAAA,CAE9DpH,IAAC,MAAA,CAAA,CAAK,EAAA,CAAI2H,CAAAA,CACP,QAAA,CAAApG,WAAW6F,GAAAA,CAAO,MAAA,CAAO,SAAA,CAAU,MAAA,CAAQA,IAAO,UAAA,EAAY,CAAA,CACjE,CAAA,CAIHF,GACD,CAACE,GAAAA,CAAO,aAAA,EACRA,GAAAA,CAAO,OAAO,YAAA,EAAa,CACzBpH,IAAC,KAAA,CAAA,CACC,YAAA,CAAYwH,EACZ,kBAAA,CAAiB,UAAA,CACjB,eAAA,CAAeuB,EAAAA,CAAqB3B,GAAM,CAAA,CAC1C,eAAA,CAAe4B,EAAAA,CAAqB5B,GAAM,EAC1C,eAAA,CAAe,IAAA,CAAK,KAAA,CAAMA,GAAAA,CAAO,SAAS,CAAA,CAC1C,IAAA,CAAK,WAAA,CACL,SAAU,CAAA,CACV,aAAA,CAAe,IAAM,CACnB,QAAW6B,CAAAA,IAAcC,EAAAA,CAAwB9B,GAAM,CAAA,CACrDK,EAAgBwB,CAAAA,CAAW,MAAA,CAAO,EAAE,EAExC,EACA,WAAA,CAAcrJ,CAAAA,EAAU,CACtB,IAAA,IAAWqJ,KAAcC,EAAAA,CAAwB9B,GAAM,CAAA,CACrDE,CAAAA,CACE2B,EAAW,MAAA,CAAO,EAAA,CAClBA,CAAAA,CAAW,OAAA,EACb,CAAA,CAEF7B,GAAAA,CAAO,gBAAA,EAAiB,CAAExH,CAAK,EACjC,CAAA,CACA,YAAA,CAAeA,CAAAA,EAAU,CACvB,IAAA,IAAWqJ,CAAAA,IAAcC,EAAAA,CAAwB9B,GAAM,EACrDE,CAAAA,CACE2B,CAAAA,CAAW,MAAA,CAAO,EAAA,CAClBA,EAAW,OAAA,EACb,CAAA,CAEF7B,GAAAA,CAAO,kBAAiB,CAAExH,CAAK,EACjC,CAAA,CACA,UAAYA,CAAAA,EAAU,CACpB,GAAIA,CAAAA,CAAM,OACR,OAEF,GAAIA,CAAAA,CAAM,GAAA,GAAQ,OAAQ,CACxBA,CAAAA,CAAM,cAAA,EAAe,CACrB,QAAWqJ,CAAAA,IAAcC,EAAAA,CAAwB9B,GAAM,CAAA,CACrDK,EAAgBwB,CAAAA,CAAW,MAAA,CAAO,EAAE,CAAA,CAEtC,MACF,CACA,GAAIrJ,CAAAA,CAAM,GAAA,GAAQ,aAAeA,CAAAA,CAAM,GAAA,GAAQ,YAAA,CAC7C,OAGFA,EAAM,cAAA,EAAe,CACrBA,CAAAA,CAAM,eAAA,GACN,IAAMuJ,CAAAA,CACHvJ,CAAAA,CAAM,GAAA,GAAQ,eAAmBmH,CAAAA,GAAQ,KAAA,CAAA,CAC5CqC,EAAAA,CACEhC,GAAAA,CAAAA,CACC+B,EAAQ,CAAA,CAAI,EAAA,GAAOvJ,CAAAA,CAAM,QAAA,CAAW,GAAK,EAAA,CAC5C,EACF,CAAA,CACA,SAAA,CAAWgC,EACT,sOAAA,CACAwC,CAAAA,CAAa,YAAA,EACX,0DAAA,CACFgD,IAAO,MAAA,CAAO,aAAA,EAAc,GACzBhD,CAAAA,CAAa,oBAAsB,mBAAA,CACxC,CAAA,CACF,CAAA,CACE,IAAA,CAAA,CAAA,CA5PCgD,IAAO,EA6Pd,CAEJ,CAEA,SAASiC,GACPpD,CAAAA,CACArH,CAAAA,CACA,CACA,OACEqH,EAAS,MAAA,CAAO,EAAA,GAAOrH,CAAAA,CAAK,MAAA,CAAO,IACnCqH,CAAAA,CAAS,MAAA,CAAO,MAAA,CAAO,EAAA,GAAOrH,EAAK,MAAA,CAAO,MAAA,CAAO,EAAA,EACjDqH,CAAAA,CAAS,OAAO,MAAA,CAAO,SAAA,GAAcrH,CAAAA,CAAK,MAAA,CAAO,OAAO,SAAA,EACxDqH,CAAAA,CAAS,MAAA,CAAO,OAAA,GAAYrH,EAAK,MAAA,CAAO,OAAA,EACxCqH,CAAAA,CAAS,MAAA,CAAO,gBAAkBrH,CAAAA,CAAK,MAAA,CAAO,aAAA,EAC9C0K,EAAAA,CAAerD,EAAS,MAAA,CAAQrH,CAAAA,CAAK,MAAM,CAAA,EAC3CqH,EAAS,cAAA,GAAmBrH,CAAAA,CAAK,cAAA,EACjCqH,CAAAA,CAAS,0BAA4BrH,CAAAA,CAAK,uBAAA,EAC1CqH,CAAAA,CAAS,GAAA,GAAQrH,EAAK,GAAA,EACtBqH,CAAAA,CAAS,sBAAA,GAA2BrH,CAAAA,CAAK,wBACzCqH,CAAAA,CAAS,oBAAA,GAAyBrH,CAAAA,CAAK,oBAAA,EACvCqH,EAAS,QAAA,GAAarH,CAAAA,CAAK,QAAA,EAC3BqH,CAAAA,CAAS,kBAAoBrH,CAAAA,CAAK,eAAA,EAClCqH,CAAAA,CAAS,SAAA,GAAcrH,EAAK,SAAA,EAC5BqH,CAAAA,CAAS,YAAA,GAAiBrH,CAAAA,CAAK,cAC/BqH,CAAAA,CAAS,kBAAA,GAAuBrH,CAAAA,CAAK,kBAAA,EACrCqH,EAAS,oBAAA,GAAyBrH,CAAAA,CAAK,oBAAA,EACvCqH,CAAAA,CAAS,gBAAkBrH,CAAAA,CAAK,aAAA,EAChCqH,CAAAA,CAAS,iBAAA,GAAsBrH,EAAK,iBAAA,EACpCqH,CAAAA,CAAS,eAAA,GAAoBrH,CAAAA,CAAK,iBAClCqH,CAAAA,CAAS,cAAA,GAAmBrH,CAAAA,CAAK,cAAA,EACjC2K,GAAYtD,CAAAA,CAAS,cAAA,CAAgBrH,CAAAA,CAAK,cAAc,GACxD4K,EAAAA,CACEvD,CAAAA,CAAS,kBAAA,CACTrH,CAAAA,CAAK,kBACP,CAAA,EACA6K,EAAAA,CAAiBxD,CAAAA,CAAS,MAAA,CAAQrH,EAAK,MAAM,CAEjD,CAEA,SAASsK,GAA+B9B,CAAAA,CAAgC,CACtE,OAAKA,CAAAA,CAAO,WAAW,MAAA,CAIhBA,CAAAA,CACJ,cAAA,EAAe,CACf,OAAQ6B,CAAAA,EAAe,CAACA,CAAAA,CAAW,UAAA,CAAW,MAAM,CAAA,CAL9C,CAAC7B,CAAM,CAMlB,CAEA,SAAS4B,EAAAA,CAA4B5B,CAAAA,CAAgC,CACnE,OAAO8B,EAAAA,CAAwB9B,CAAM,CAAA,CAAE,MAAA,CACrC,CAACsC,CAAAA,CAAOT,CAAAA,GACNS,GAAST,CAAAA,CAAW,MAAA,CAAO,UAAU,OAAA,EAAW,EAAA,CAAA,CAClD,CACF,CACF,CAEA,SAASF,EAAAA,CAA4B3B,CAAAA,CAAgC,CACnE,OAAO8B,EAAAA,CAAwB9B,CAAM,CAAA,CAAE,MAAA,CACrC,CAACsC,CAAAA,CAAOT,CAAAA,GACNS,CAAAA,EAAST,CAAAA,CAAW,OAAO,SAAA,CAAU,OAAA,EAAW,MAAA,CAAO,gBAAA,CAAA,CACzD,CACF,CACF,CAEA,SAASG,EAAAA,CACPhC,EACAuC,CAAAA,CACA,CACA,IAAMC,CAAAA,CAAcV,GAAwB9B,CAAM,CAAA,CAC5CyC,CAAAA,CAAeF,CAAAA,CAAQC,EAAY,MAAA,CACzCxC,CAAAA,CAAO,UAAA,EAAW,CAAE,MAAM,eAAA,CAAiBzI,CAAAA,EAAY,CACrD,IAAMC,EAAO,CAAE,GAAGD,CAAQ,CAAA,CAE1B,QAAWsK,CAAAA,IAAcW,CAAAA,CAAa,CACpC,IAAM7K,EAASkK,CAAAA,CAAW,MAAA,CACpBa,CAAAA,CAAU/K,CAAAA,CAAO,UAAU,OAAA,EAAW,EAAA,CACtCgL,CAAAA,CACJhL,CAAAA,CAAO,UAAU,OAAA,EAAW,MAAA,CAAO,gBAAA,CACrCH,CAAAA,CAAKG,EAAO,EAAE,CAAA,CAAI,IAAA,CAAK,GAAA,CACrBgL,EACA,IAAA,CAAK,GAAA,CAAID,CAAAA,CAAS/K,CAAAA,CAAO,SAAQ,CAAI8K,CAAY,CACnD,EACF,CAEA,OAAOjL,CACT,CAAC,EACH,CAEA,SAAS0K,EAAAA,CACPrD,CAAAA,CACArH,CAAAA,CACA,CACA,OACEqH,CAAAA,CAAS,UAAA,CAAW,MAAA,GAAWrH,EAAK,UAAA,CAAW,MAAA,EAC/CqH,CAAAA,CAAS,UAAA,CAAW,MAClB,CAACmB,CAAAA,CAAQf,CAAAA,GAAUzH,CAAAA,CAAK,WAAWyH,CAAK,CAAA,EAAG,EAAA,GAAOe,CAAAA,CAAO,EAC3D,CAEJ,CAEA,SAASmC,EAAAA,CAAYtD,EAAwBrH,CAAAA,CAAoB,CAC/D,OACEqH,CAAAA,CAAS,SAAWrH,CAAAA,CAAK,MAAA,EACzBqH,CAAAA,CAAS,KAAA,CAAM,CAACiC,CAAAA,CAAM7B,CAAAA,GAAU,CAC9B,IAAM2D,EAAWpL,CAAAA,CAAKyH,CAAK,CAAA,CAC3B,OAAO2D,GAAU,EAAA,GAAO9B,CAAAA,CAAK,EAAA,EAAM8B,CAAAA,CAAS,OAAS9B,CAAAA,CAAK,IAC5D,CAAC,CAEL,CAEA,SAASsB,EAAAA,CACPvD,CAAAA,CACArH,CAAAA,CACA,CACA,OACEqH,CAAAA,CAAS,MAAA,GAAWrH,CAAAA,CAAK,QACzBqH,CAAAA,CAAS,KAAA,CAAM,CAACmB,CAAAA,CAAQf,IAAUzH,CAAAA,CAAKyH,CAAK,CAAA,EAAG,EAAA,GAAOe,EAAO,EAAE,CAEnE,CAEA,SAASqC,GACPxD,CAAAA,CACArH,CAAAA,CACA,CACA,OACEqH,EAAS,SAAA,GAAcrH,CAAAA,CAAK,SAAA,EAC5BqH,CAAAA,CAAS,iBAAmBrH,CAAAA,CAAK,cAAA,EACjCqH,CAAAA,CAAS,eAAA,GAAoBrH,EAAK,eAAA,EAClCqH,CAAAA,CAAS,eAAA,GAAoBrH,CAAAA,CAAK,iBAClCqH,CAAAA,CAAS,gBAAA,GAAqBrH,CAAAA,CAAK,gBAAA,EACnCqH,EAAS,WAAA,EAAa,KAAA,GAAUrH,CAAAA,CAAK,WAAA,EAAa,OAClDqH,CAAAA,CAAS,WAAA,EAAa,QAAA,GAAarH,CAAAA,CAAK,aAAa,QAAA,EACrDqH,CAAAA,CAAS,WAAA,EAAa,QAAA,GAAarH,EAAK,WAAA,EAAa,QAAA,EACrDqH,CAAAA,CAAS,WAAA,EAAa,OAASrH,CAAAA,CAAK,WAAA,EAAa,IAAA,EACjDqH,CAAAA,CAAS,aAAa,KAAA,GAAUrH,CAAAA,CAAK,WAAA,EAAa,KAEtD,CAEO,IAAMqL,EAAAA,CAA4BrC,CAAA,CAAA,IAAA,CACvChB,EAAAA,CACAyC,EACF,ECtXO,SAASa,EAAAA,CAA2B,CACzC,eAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,GAAAA,CACA,kBAAAC,CAAAA,CACA,aAAA,CAAAC,CAAAA,CACA,oBAAA,CAAArH,EACA,aAAA,CAAAX,CAAAA,CACA,uBAAA,CAAAuE,CAAAA,CACA,eAAAtE,CAAAA,CACA,qBAAA,CAAAgI,CAAAA,CACA,cAAA,CAAAzD,EAAiB,EAAC,CAClB,GAAA,CAAAC,CAAAA,CACA,oBAAAyD,CAAAA,CACA,WAAA,CAAA/H,CAAAA,CACA,kBAAA,CAAAuE,IACA,WAAA,CAAAhK,CAAAA,CACA,YAAA,CAAAH,CAAAA,CACA,eAAA2F,CAAAA,CACA,SAAA,CAAAiI,CAAAA,CACA,sBAAA,CAAAxD,EACA,oBAAA,CAAAC,CAAAA,CACA,2BAAA,CAAAxE,CAAAA,CACA,aAAAgI,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,QAAA,CAAA9H,EACA,YAAA,CAAA+H,CAAAA,CACA,aAAA,CAAAC,CAAAA,CACA,2BAAAC,CAAAA,CACA,qBAAA,CAAAC,GAAAA,CACA,eAAA,CAAAC,EACA,eAAA,CAAArI,CAAAA,CACA,mBAAAsI,CAAAA,CACA,cAAA,CAAAC,EACA,UAAA,CAAAC,EAAAA,CACA,gBAAA,CAAAC,EAAAA,CACA,WAAAtH,CAAAA,CACA,oBAAA,CAAAwD,EAAAA,CACA,YAAA,CAAA+D,GACA,WAAA,CAAApH,EAAAA,CACA,aAAA,CAAAqH,CAAAA,CACA,iBAAAC,EAAAA,CACA,aAAA,CAAAhE,EAAAA,CACA,eAAA,CAAAE,GACA,cAAA,CAAA+D,CAAAA,CACA,YAAA,CAAAC,EAAAA,CACA,WAAAC,EAAAA,CACA,SAAA,CAAAC,EAAAA,CACA,mBAAA,CAAAC,EACA,WAAA,CAAAC,CAAAA,CACA,cAAA,CAAA5O,CAAAA,CACA,2BAAA6O,CAAAA,CACA,gBAAA,CAAAC,EAAAA,CACA,YAAA,CAAAC,EACA,WAAA,CAAA7H,EAAAA,CACA,WAAA,CAAA8H,CAAAA,CACA,MAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,uBAAA,CAAAC,GACA,KAAA,CAAAC,EAAAA,CACA,SAAA,CAAAC,EAAAA,CACA,UAAA9H,EAAAA,CACA,WAAA,CAAA+H,CAAAA,CAAc,OAAA,CACd,UAAA7E,EAAAA,CACA,WAAA,CAAA8E,EAAAA,CACA,QAAA,CAAA/H,GACA,uBAAA,CAAAgI,EAAAA,CACA,kBAAA,CAAAC,EAAAA,CACA,cAAAC,EAAAA,CACA,YAAA,CAAAvI,EAAAA,CACA,oBAAA,CAAAwI,GACA,iBAAA,CAAAC,EAAAA,CACA,sBAAA,CAAAvI,EAAAA,CACA,mBAAAwI,EACF,CAAA,CAAoC,CAClC,IAAMC,GACJb,CAAAA,CAAM,wBAAA,EAAyB,CAC3B,IAAA,CACAA,EAAM,yBAAA,EAA0B,CAC9B,eAAA,CACA,KAAA,CACFc,GAAed,CAAAA,CAAM,mBAAA,EAAoB,CAAE,IAAA,CAC3Ce,GAA0B,CAAA,CAAA,OAAA,CAC9B,IACEhB,CAAAA,CAAY,MAAA,CACRe,GAAa,GAAA,CAAKnP,CAAAA,EAAQA,CAAAA,CAAI,QAAQ,EACtC,EAAC,CACP,CAACmP,EAAAA,CAAcf,EAAY,MAAM,CACnC,CAAA,CACMiB,EAAAA,CAAiBhB,EAAM,eAAA,EAAgB,CAAE,MAAA,CACzCiB,EAAAA,CACJ7B,EAAc,MAAA,CAASD,EAAAA,CAAa,MAAA,CAASE,EAAAA,CAAiB,OAC1D,CAAC6B,EAAAA,CAAYC,EAAa,CAAA,CAAU,WAAS,CAAE,GAAA,CAAK,CAAA,CAAG,MAAA,CAAQ,CAAE,CAAC,CAAA,CAClEC,EAAAA,CAAkC,CAAA,CAAA,MAAA,CAAO,KAAK,CAAA,CAC9CC,EAAAA,CAA4B,CAAA,CAAA,MAAA,CAAO,KAAK,EACxCC,EAAAA,CAAiB,CAAA,CAAA,OAAA,CACrB,IAAM,CAAC,GAAGlC,CAAAA,CAAe,GAAGD,EAAAA,CAAc,GAAGE,EAAgB,CAAA,CAC7D,CAACA,EAAAA,CAAkBF,EAAAA,CAAcC,CAAa,CAChD,CAAA,CACMmC,EAAAA,CAAmC,CAAA,CAAA,OAAA,CACvC,IACEX,EAAAA,CAAmB,OAAA,CAAQ,CAAC/N,CAAAA,CAAQsH,IAClCtH,CAAAA,CAAO,EAAA,GAAO,YAAA,CAAe,GAAK,CAACsH,CAAK,CAC1C,CAAA,CACF,CAACyG,EAAkB,CACrB,CAAA,CACMY,EAAAA,CAA0B,cAC9B,CAACxJ,CAAAA,CAAkBe,CAAAA,GAAwB,CACzC,IAAMpH,CAAAA,CAAM2P,EAAAA,CAAStJ,CAAQ,CAAA,CACvBnF,EAAS+N,EAAAA,CAAmB7H,CAAW,CAAA,CAC7C,OAAOpH,GACLkB,CAAAA,EACA,CAAC0J,CAAAA,CAAkB1J,CAAAA,CAAO,EAAE,CAAA,EAC5BA,CAAAA,CAAO,EAAA,GAAO,YAAA,CACZ,CAAE,KAAA,CAAOlB,CAAAA,CAAI,EAAA,CAAI,QAAA,CAAUkB,EAAO,EAAG,CAAA,CACrC,MACN,CAAA,CACA,CAACyO,EAAAA,CAAUV,EAAkB,CAC/B,CAAA,CACMa,GAAuB,CAAA,CAAA,OAAA,CAAQ,IAAM,CACzC,GAAI,CAACrD,CAAAA,CAAe,OACpB,IAAMsD,CAAAA,CAAYJ,GAAS,SAAA,CAAW3P,CAAAA,EAAQA,CAAAA,CAAI,EAAA,GAAOyM,EAAc,MAAA,CAAO,KAAK,CAAA,CAC7EuD,CAAAA,CAAWL,GAAS,SAAA,CAAW3P,CAAAA,EAAQA,CAAAA,CAAI,EAAA,GAAOyM,EAAc,KAAA,CAAM,KAAK,CAAA,CAC3EwD,CAAAA,CAAehB,GAAmB,SAAA,CACrC/N,CAAAA,EAAWA,CAAAA,CAAO,EAAA,GAAOuL,EAAc,MAAA,CAAO,QACjD,CAAA,CACMyD,CAAAA,CAAcjB,GAAmB,SAAA,CACpC/N,CAAAA,EAAWA,CAAAA,CAAO,EAAA,GAAOuL,EAAc,KAAA,CAAM,QAChD,CAAA,CACA,GAAI,EAAAsD,CAAAA,CAAY,CAAA,EAAKC,CAAAA,CAAW,CAAA,EAAKC,EAAe,CAAA,EAAKC,CAAAA,CAAc,CAAA,CAAA,CACvE,OAAO,CACL,QAAA,CAAU,IAAA,CAAK,GAAA,CAAIH,CAAAA,CAAWC,CAAQ,CAAA,CACtC,OAAA,CAAS,IAAA,CAAK,GAAA,CAAID,EAAWC,CAAQ,CAAA,CACrC,WAAA,CAAa,IAAA,CAAK,IAAIC,CAAAA,CAAcC,CAAW,CAAA,CAC/C,UAAA,CAAY,KAAK,GAAA,CAAID,CAAAA,CAAcC,CAAW,CAChD,CACF,CAAA,CAAG,CAACzD,EAAekD,EAAAA,CAAUV,EAAkB,CAAC,CAAA,CAC1C5J,EAAAA,CAA2B,CAAA,CAAA,WAAA,CAC/B,CAACgB,EAAkBe,CAAAA,GACjB,CAAA,EACE0I,EAAAA,EACEzJ,CAAAA,EAAYyJ,GAAe,QAAA,EAC3BzJ,CAAAA,EAAYyJ,EAAAA,CAAe,OAAA,EAC3B1I,GAAe0I,EAAAA,CAAe,WAAA,EAC9B1I,CAAAA,EAAe0I,EAAAA,CAAe,YAEpC,CAACA,EAAc,CACjB,CAAA,CACMK,GAA4B,CAAA,CAAA,WAAA,CAC/BnJ,CAAAA,EAA0C,CACzCyI,EAAAA,CAA0B,QAAU,IAAA,CACpCD,EAAAA,CAAcxI,CAAI,EACpB,EACA,EACF,CAAA,CACMoJ,EAAAA,CAAuB,cAC3B,CAAC/J,CAAAA,CAAkBe,CAAAA,CAAqBiJ,CAAAA,GAAoB,CAC1D,GAAI,CAACjL,CAAAA,CAAsB,OAC3B,IAAMkL,CAAAA,CAAQT,EAAAA,CAAkBxJ,CAAAA,CAAUe,CAAW,EACrD,GAAI,CAACkJ,CAAAA,CAAO,OACZ,IAAMC,CAAAA,CACJF,CAAAA,EAAU5D,CAAAA,EAAe,MAAA,CACrBA,EAAc,MAAA,CACd6D,CAAAA,CACNpD,GAAAA,CAAsB,CAAE,OAAAqD,CAAAA,CAAQ,KAAA,CAAAD,CAAM,CAAC,EACzC,CAAA,CACA,CAAC7D,CAAAA,CAAerH,CAAAA,CAAsByK,GAAmB3C,GAAqB,CAChF,CAAA,CACMsD,EAAAA,CAAkC,cACtC,CAACzO,CAAAA,CAAwCsE,CAAAA,CAAkBe,CAAAA,GAAwB,CAC7E,CAAChC,CAAAA,EAAwBrD,CAAAA,CAAM,MAAA,GAAW,IAG9CA,CAAAA,CAAM,cAAA,EAAe,CACrB2N,EAAAA,CAAoB,QAAU,IAAA,CAC9BU,EAAAA,CAAe/J,CAAAA,CAAUe,CAAAA,CAAarF,EAAM,QAAQ,CAAA,EACtD,CAAA,CACA,CAACqD,EAAsBgL,EAAc,CACvC,CAAA,CACMK,EAAAA,CAAmC,cACvC,CAAC1O,CAAAA,CAAwCsE,CAAAA,CAAkBe,CAAAA,GAAwB,CAC7E,CAAChC,CAAAA,EAAwB,CAACsK,EAAAA,CAAoB,SAAW3N,CAAAA,CAAM,OAAA,GAAY,CAAA,EAC/EqO,EAAAA,CAAe/J,EAAUe,CAAAA,CAAa,IAAI,EAC5C,CAAA,CACA,CAAChC,CAAAA,CAAsBgL,EAAc,CACvC,CAAA,CACM,YAAU,IAAM,CACpB,IAAMM,CAAAA,CAAgB,IAAM,CAAEhB,EAAAA,CAAoB,OAAA,CAAU,MAAO,EACnE,OAAA,MAAA,CAAO,gBAAA,CAAiB,WAAA,CAAagB,CAAa,EAC3C,IAAM,MAAA,CAAO,mBAAA,CAAoB,WAAA,CAAaA,CAAa,CACpE,CAAA,CAAG,EAAE,EAIC,CAAA,CAAA,SAAA,CAAU,IAAM,CACpB,GAAI,CAAC1L,CAAAA,CAAU,OACfiI,CAAAA,GAA6BsC,EAAAA,CAAW,GAAG,CAAA,CAC3C,IAAMoB,CAAAA,CAAQ,qBAAA,CAAsB,IAAM,CACxC,IAAMjI,CAAAA,CAAQkG,EAAAA,CAAwB,SAAS,gBAAA,CAC7C,6BACF,CAAA,CACM9D,CAAAA,CAAS,MAAM,IAAA,CAAKpC,CAAAA,EAAS,EAAE,EAAE,IAAA,CACpC1B,CAAAA,EACC,MAAA,CAAOA,CAAAA,CAAK,QAAQ,YAAY,CAAA,GAAMuI,EAAAA,CAAW,GAAA,EACjD,OAAOvI,CAAAA,CAAK,OAAA,CAAQ,eAAe,CAAA,GAAMuI,GAAW,MACxD,CAAA,CACIzE,CAAAA,EAAU2E,EAAAA,CAA0B,SACtC3E,CAAAA,CAAO,KAAA,GAEX,CAAC,EACD,OAAO,IAAM,oBAAA,CAAqB6F,CAAK,CACzC,CAAA,CAAG,CAACpB,EAAAA,CAAYvK,CAAAA,CAAUiI,EAA4B2B,EAAuB,CAAC,CAAA,CAE9E,IAAMgC,GAAsB,CAAA,CAAA,WAAA,CAC1B,CAAC7O,CAAAA,CAAyC/B,CAAAA,CAAakB,IAAmB,CACxE,GAAIa,CAAAA,CAAM,gBAAA,EAAoBA,EAAM,MAAA,GAAWA,CAAAA,CAAM,aAAA,CAAe,OACpE,IAAM8O,CAAAA,CAAW,IAAA,CAAK,GAAA,CACpB,CAAA,CACA9D,IACE,IAAA,CAAK,KAAA,CAAA,CACF8B,EAAAA,EAAoB,YAAA,EAAgB,GACnC,IAAA,CAAK,GAAA,CAAI,CAAA,CAAIA,EAAAA,EAAoB,cAAc,IAAI,CAAA,EAA0B,YAAA,EAAgB,EAAE,CACnG,CAAA,EAAK,EAAA,CACT,CAAA,CACMiC,CAAAA,CAAU,KAAK,GAAA,CAAI,CAAA,CAAGxB,EAAAA,CAAkB,CAAC,EACzCyB,CAAAA,CAAwB,IAAA,CAAK,GAAA,CACjC,CAAA,CACAnB,GAA2B,OAAA,CAAQ1O,CAAM,CAC3C,CAAA,CACM8P,GAAqB,IAAA,CAAK,GAAA,CAC9B,CAAA,CACApB,EAAAA,CAA2B,OAAS,CACtC,CAAA,CACIqB,EAAAA,CAAUjR,CAAAA,CACVkR,GAAqBH,CAAAA,CACzB,OAAQhP,CAAAA,CAAM,GAAA,EACZ,KAAK,SAAA,CAAWkP,EAAAA,EAAAA,CAAW,MAC3B,KAAK,WAAA,CAAaA,EAAAA,EAAAA,CAAW,MAC7B,KAAK,YAAaC,EAAAA,EAAAA,CAAsB,MACxC,KAAK,YAAA,CAAcA,EAAAA,EAAAA,CAAsB,MACzC,KAAK,MAAA,CAAA,CACCnP,CAAAA,CAAM,OAAA,EAAWA,EAAM,OAAA,IAASkP,EAAAA,CAAU,CAAA,CAAA,CAC9CC,EAAAA,CAAqB,EACrB,MACF,KAAK,KAAA,CAAA,CACCnP,CAAAA,CAAM,SAAWA,CAAAA,CAAM,OAAA,IAASkP,EAAAA,CAAUH,CAAAA,CAAAA,CAC9CI,GAAqBF,EAAAA,CACrB,MACF,KAAK,QAAA,CAAUC,IAAWJ,CAAAA,CAAU,MACpC,KAAK,UAAA,CAAYI,IAAWJ,CAAAA,CAAU,MACtC,QAAS,MACX,CACA9O,CAAAA,CAAM,cAAA,EAAe,CACrB,IAAM0G,GAAW,CACf,GAAA,CAAK,IAAA,CAAK,GAAA,CAAIqI,EAAS,IAAA,CAAK,GAAA,CAAI,CAAA,CAAGG,EAAO,CAAC,CAAA,CAC3C,MAAA,CACErB,EAAAA,CACE,IAAA,CAAK,IACHoB,EAAAA,CACA,IAAA,CAAK,GAAA,CAAI,CAAA,CAAGE,EAAkB,CAChC,CACF,CAAA,EAAK,CACT,EAEA,GADA1B,EAAAA,CAAc/G,EAAQ,CAAA,CAClB1G,EAAM,QAAA,EAAYqD,CAAAA,CAAsB,CAC1C,IAAMkL,GAAQT,EAAAA,CAAkBpH,EAAAA,CAAS,GAAA,CAAKA,EAAAA,CAAS,MAAM,CAAA,CACvD8H,EAAAA,CACJ9D,CAAAA,EAAe,MAAA,EAAUoD,GAAkB7P,CAAAA,CAAKkB,CAAM,CAAA,EAAKoP,EAAAA,CACzDC,IAAUD,EAAAA,EAAOpD,GAAAA,CAAsB,CAAE,MAAA,CAAAqD,GAAQ,KAAA,CAAAD,EAAM,CAAC,EAC9D,CACF,CAAA,CACA,CACE7D,CAAAA,CACArH,CAAAA,CACAkK,GACAO,EAAAA,CACA9C,CAAAA,CACA6C,EAAAA,CACA1C,GAAAA,CACA2B,EACF,CACF,CAAA,CACMsC,EAAAA,CAAgB,CACpBnR,EACAqG,CAAAA,CACAH,CAAAA,GACG,CACH,IAAMC,EAAcnG,CAAAA,CAAI,QAAA,CAClB8F,CAAAA,CAAsBiC,CAAAA,CAAsB5B,CAAW,CAAA,CACvDH,CAAAA,CAAeF,CAAAA,CACjB,CAAE,UAAW,IAAK,CAAA,CAClBsH,CAAAA,GAAqBjH,CAAAA,CAAaE,CAAQ,CAAA,CACxC+K,EAAAA,CACJ,OAAOpL,CAAAA,EAAiB,UACpB,CAAE,SAAA,CAAWA,CAAa,CAAA,CAC1BA,EACAN,EAAAA,CAAcI,CAAAA,CAChB,KAAA,CACClB,CAAAA,EAAa,kBAAkBuB,CAAW,CAAA,EAAK,KAAA,CAEpD,OACEhE,IAAC2G,EAAAA,CAAA,CAEC,aAAA,CAAerE,CAAAA,CACf,WAAY+H,CAAAA,CACZ,cAAA,CAAgB9H,CAAAA,CAChB,WAAA,CAAavF,EACb,cAAA,CAAgBwF,CAAAA,CAChB,WAAA,CAAaC,CAAAA,CACb,4BAA6BC,CAAAA,CAC7B,eAAA,CAAiBC,CAAAA,CACjB,gBAAA,CACE9E,EAAI,aAAA,EAAc,CACd2N,CAAAA,CAAe,WAAA,CACfA,EAAe,SAAA,CAErB,WAAA,CAAajI,EAAAA,CACb,gBAAA,CACEgH,IAA0B,IAAA,EAC1B,CAAA,CAAQA,CAAAA,CAAsB1M,CAAAA,CAAI,EAAE,CAAA,CAEtC,SAAA,CAAWhB,CAAAA,GAAiBgB,CAAAA,CAAI,GAChC,UAAA,CAAYA,CAAAA,CAAI,aAAA,EAAc,CAC9B,oBAAqB8F,CAAAA,CACrB,UAAA,CAAY9F,CAAAA,CAAI,aAAA,GAChB,YAAA,CAAcoR,EAAAA,CACd,UAAA,CAAYnL,CAAAA,CACZ,YAAaE,CAAAA,CACb,cAAA,CAAgBD,CAAAA,CAChB,WAAA,CAAaE,GACb,GAAA,CAAKpG,CAAAA,CACL,QAAA,CAAUqG,CAAAA,CACV,eAAgBjH,CAAAA,CAChB,WAAA,CAAakH,EAAAA,CACb,YAAA,CAAcC,GACd,YAAA,CAAcvG,CAAAA,CAAI,eAAA,EAAgB,CAClC,uBAAwByG,EAAAA,CACxB,QAAA,CAAUzB,CAAAA,CACV,YAAA,CAAcqB,EACd,gBAAA,CAAkBgJ,EAAAA,CAAiBrC,CAAAA,CAAgB3G,CAAAA,CAAW,EAC9D,cAAA,CAAgBkJ,EAAAA,CAChB,oBAAA,CAAsBnK,CAAAA,CACtB,mBAAoBC,EAAAA,CACpB,eAAA,CAAiB8K,EAAAA,CACjB,iBAAA,CAAmBS,GACnB,qBAAA,CAAuBJ,EAAAA,CACvB,sBAAA,CAAwBC,EAAAA,CAAAA,CA5CnB,GAAGvK,CAAAA,EAAkB,QAAQ,CAAA,CAAA,EAAIlG,CAAAA,CAAI,EAAE,CAAA,CA6C9C,CAEJ,CAAA,CAEA,OACEkC,KAAC,KAAA,CAAA,CACC,eAAA,CAAc,wBAAA,CACd,SAAA,CAAW6B,EACT,mEAAA,CACA+I,CAAAA,CAAW,8BAAA,CAAiC,QAAA,CAC5ClI,GAAa,UAAA,GACV2B,EAAAA,CAAa,UAAA,EAAc,0BAAA,CAChC,EAEA,QAAA,CAAA,CAAApE,GAAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKyM,GACL,SAAA,CAAW7K,CAAAA,CAAG+I,CAAAA,CAAW,8BAAA,CAAiC,QAAQ,CAAA,CAElE,QAAA,CAAA5K,IAAAA,CAAC2L,EAAAA,CAAA,CACC,IAAA,CAAME,CAAAA,CACN,SAAA,CAAWhK,CAAAA,CACT,oBACA+I,CAAAA,CAAW,gBAAA,CAAmB,QAAA,CAC9BvG,EAAAA,CAAa,eACbA,EAAAA,CAAa,eAAA,CACbgI,EACF,CAAA,CAEA,UAAApM,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,YAAA,CACb,SAAAD,IAAAA,CAACsM,EAAAA,CAAA,CACC,kBAAA,CAAkBlC,CAAAA,CAClB,kBAAiBC,GAAAA,CACjB,IAAA,CAAMvH,CAAAA,CAAW,MAAA,CAAS,OAC1B,eAAA,CACEA,CAAAA,CAAW4K,EAAAA,CAA2B,MAAA,CAAS,OAEjD,eAAA,CACE5K,CAAAA,CAEMqK,EAAAA,EACCP,EAAAA,EAAiBQ,IAClBlB,CAAAA,CAAY,MAAA,CACd,MAAA,CAEN,SAAA,CAAWrK,EACT,qDAAA,CACAuK,CACF,CAAA,CACA,KAAA,CAAO,CACL,QAAA,CAAUhB,EAAAA,GAAe,MAAA,EAAST,CAAAA,EAAgB,OAClD,KAAA,CAAOS,EAAAA,GAAe,KAAA,CAAQe,CAAAA,CAAM,cAAa,CAAI,MACvD,CAAA,CAEA,QAAA,CAAA,CAAAlM,IAAC,UAAA,CAAA,CACE,QAAA,CAAAkM,CAAAA,CAAM,qBAAA,GAAwB,GAAA,CAAKnN,CAAAA,EAAW,CAC7C,IAAMoG,EAAS6F,CAAAA,CAAgBjM,CAAAA,CAAO,EAAE,CAAA,CACxC,OAAOiB,GAAAA,CAAC,KAAA,CAAA,CAAoB,KAAA,CAAOmF,CAAAA,CAAO,UAAzBpG,CAAAA,CAAO,EAA4B,CACtD,CAAC,EACH,CAAA,CACAiB,GAAAA,CAACwM,EAAAA,CAAA,CACC,KAAM3J,CAAAA,CAAW,UAAA,CAAa,MAAA,CAC9B,SAAA,CAAWjB,EACToK,CAAAA,CACK5H,EAAAA,CAAa,iBAAA,EACd,iCAAA,CACA,MACN,CAAA,CAEC,QAAA,CAAA8H,CAAAA,CAAM,eAAA,GAAkB,GAAA,CAAKgD,CAAAA,EAC5BlP,GAAAA,CAACyE,EAAAA,CAAA,CAA8B,IAAA,CAAM5B,CAAAA,CAAW,KAAA,CAAQ,MAAA,CAAW,gBAAeA,CAAAA,CAAWqM,CAAAA,CAAY,KAAA,CAAQ,CAAA,CAAI,OAClH,QAAA,CAAAA,CAAAA,CAAY,OAAA,CAAQ,GAAA,CAAK9H,GACxBpH,GAAAA,CAACiK,EAAAA,CAAA,CAEC,uBAAA,CAAyBpD,EACzB,cAAA,CAAgBtE,CAAAA,CAChB,cAAA,CAAgBuE,CAAAA,CAChB,IAAKC,CAAAA,CACL,kBAAA,CAAoBC,GAAAA,CACpB,sBAAA,CAAwBC,EACxB,oBAAA,CAAsBC,CAAAA,CACtB,MAAA,CAAQE,CAAAA,CACR,mBAAoB8H,CAAAA,CAAY,OAAA,CAChC,MAAA,CAAQC,EAAAA,CAAgB/H,EAAQ4D,CAAe,CAAA,CAC/C,oBAAA,CAAsB1D,EAAAA,CACtB,cAAeC,EAAAA,CACf,iBAAA,CAAmBiE,CAAAA,CAAe,YAAA,CAChC,OAAOpE,CAAAA,CAAO,MAAA,CAAO,SAAA,CAAU,MAAA,EAAW,SACtCA,CAAAA,CAAO,MAAA,CAAO,SAAA,CAAU,MAAA,CACxBA,EAAO,MAAA,CAAO,EACpB,CAAA,CACA,eAAA,CAAiBK,GACjB,cAAA,CACEL,CAAAA,CAAO,MAAA,CAAO,EAAA,GAAO,aACjB2F,EAAAA,CACA,MAAA,CAEN,SAAA,CAAWrF,EAAAA,CACX,aAActD,EAAAA,CACd,QAAA,CAAUvB,CAAAA,CACV,eAAA,CACEuE,EAAO,aAAA,EACPA,CAAAA,CAAO,UAAA,CAAW,MAAA,EAClBA,EAAO,MAAA,CAAO,EAAA,GAAO,YAAA,CACjB,MAAA,CACA8E,EACG,qBAAA,EAAsB,CACtB,MAAA,CACEnN,CAAAA,EAAWA,EAAO,EAAA,GAAO,YAC5B,CAAA,CACC,SAAA,CACEA,GACCA,CAAAA,CAAO,EAAA,GAAOqI,CAAAA,CAAO,MAAA,CAAO,EAChC,CAAA,CAAI,CAAA,CAAA,CAxCPA,CAAAA,CAAO,EA0Cd,CACD,CAAA,CAAA,CA9CY8H,CAAAA,CAAY,EA+C3B,CACD,EACH,CAAA,CACAlP,GAAAA,CAACsM,EAAAA,CAAA,CAAU,KAAMzJ,CAAAA,CAAW,UAAA,CAAa,MAAA,CACtC,QAAA,CAAAyI,EAAc,MAAA,EAAUD,EAAAA,CAAa,MAAA,EAAUE,EAAAA,CAAiB,OAC/DxL,IAAAA,CAAA6I,QAAAA,CAAA,CACG,QAAA,CAAA,CAAA0C,EAAc,GAAA,CAAI,CAACzN,CAAAA,CAAKwI,CAAAA,GACvB2I,GAAcnR,CAAAA,CAAKwI,CAAAA,CAAO,KAAK,CACjC,EACCwG,EAAAA,CAAoB,CAAA,CACnB7M,GAAAA,CAACyE,EAAAA,CAAA,CAAS,aAAA,CAAY,MAAA,CAAO,IAAA,CAAM5B,CAAAA,CAAW,eAAiB,MAAA,CAC7D,QAAA,CAAA7C,GAAAA,CAACwE,EAAAA,CAAA,CACC,OAAA,CAAS,IAAA,CAAK,GAAA,CAAI,CAAA,CAAGF,EAAsB,CAAA,CAC3C,SAAA,CAAU,gBAAA,CACV,KAAA,CAAO,CAAE,MAAA,CAAQuI,EAAkB,CAAA,CACrC,CAAA,CACF,EACE,IAAA,CACHpB,EAAAA,CAAa,GAAA,CAAI,CAAC,CAAE,GAAA,CAAA5N,CAAAA,CAAK,QAAA,CAAAqG,CAAS,IACjC8K,EAAAA,CAAcnR,CAAAA,CAAKqG,CAAAA,CAAWoH,CAAAA,CAAc,MAAM,CACpD,CAAA,CACCsB,EAAAA,CAAuB,CAAA,CACtB5M,IAACyE,EAAAA,CAAA,CAAS,aAAA,CAAY,MAAA,CAAO,KAAM5B,CAAAA,CAAW,cAAA,CAAiB,MAAA,CAC7D,QAAA,CAAA7C,IAACwE,EAAAA,CAAA,CACC,OAAA,CAAS,IAAA,CAAK,IAAI,CAAA,CAAGF,EAAsB,CAAA,CAC3C,SAAA,CAAU,iBACV,KAAA,CAAO,CAAE,MAAA,CAAQsI,EAAqB,EACxC,CAAA,CACF,CAAA,CACE,IAAA,CACHrB,EAAAA,CAAiB,IAAI,CAAC1N,CAAAA,CAAKwI,IAC1B2I,EAAAA,CACEnR,CAAAA,CACAyN,EAAc,MAAA,CAASD,EAAAA,CAAa,MAAA,CAAShF,CAAAA,CAC7C,QACF,CACF,CAAA,CAAA,CACF,CAAA,CAEArG,GAAAA,CAACyE,GAAA,CAAS,IAAA,CAAM5B,CAAAA,CAAW,KAAA,CAAQ,OAAW,eAAA,CAAeA,CAAAA,CAAWqK,EAAAA,CAAiB,CAAA,CAAI,OAC3F,QAAA,CAAAlN,GAAAA,CAACwE,EAAAA,CAAA,CACC,KAAM3B,CAAAA,CAAW,UAAA,CAAa,MAAA,CAC9B,eAAA,CAAeA,EAAW,CAAA,CAAI,MAAA,CAC9B,OAAA,CAAS,IAAA,CAAK,IAAI,CAAA,CAAGyB,EAAsB,CAAA,CAC3C,SAAA,CAAU,cAEV,QAAA,CAAAtE,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,iEACZ,QAAA,CAAAyK,CAAAA,EACCzK,GAAAA,CAACwK,CAAAA,CAAA,CACC,KAAA,CACEY,EAAAA,CACII,CAAAA,CAAe,mBAAA,CACfA,EAAe,WAAA,CAErB,WAAA,CACEJ,EAAAA,CACII,CAAAA,CAAe,0BACfA,CAAAA,CAAe,iBAAA,CAEvB,CAAA,CAEJ,CAAA,CACF,EACF,CAAA,CAEJ,CAAA,CACCS,CAAAA,CAAY,MAAA,CACXjM,IAACuM,CAAAA,CAAA,CAAY,IAAA,CAAM1J,CAAAA,CAAW,WAAa,MAAA,CACxC,QAAA,CAAAoJ,CAAAA,CAAY,GAAA,CAAI,CAACmD,CAAAA,CAAYC,CAAAA,GAC5BrP,GAAAA,CAACyE,EAAAA,CAAA,CAEC,IAAA,CAAM5B,CAAAA,CAAW,KAAA,CAAQ,MAAA,CACzB,gBACEA,CAAAA,CACIqK,EAAAA,EACCP,EAAAA,EAAiBQ,EAAAA,CAAAA,CAClBkC,EACA,CAAA,CACA,MAAA,CAGL,QAAA,CAAAvC,EAAAA,CAAmB,IAAI,CAAC/N,CAAAA,CAAQsH,CAAAA,GAAU,CACzC,IAAMlB,CAAAA,CAAS6F,CAAAA,CAAgBjM,CAAAA,CAAO,EAAE,EAClCiD,CAAAA,CAAUmD,CAAAA,CAAO,cAAA,CACnB,IAAA,CACCiK,EAAW,KAAA,CAAMrQ,CAAAA,CAAO,EAAE,CAAA,GAC1BsH,IAAU,CAAA,CAAI+I,CAAAA,CAAW,KAAA,CAAQ,IAAA,CAAA,CACtC,OACEpP,GAAAA,CAACwE,EAAAA,CAAA,CAEC,gBAAA,CAAgBzF,EAAO,EAAA,CACvB,IAAA,CACE8D,CAAAA,CACIsC,CAAAA,CAAO,eACL,cAAA,CACA,UAAA,CACF,MAAA,CAEN,eAAA,CACEtC,GAAY,CAACsC,CAAAA,CAAO,cAAA,CAChBsI,EAAAA,CAA2B,QAAQpH,CAAK,CAAA,CAAI,CAAA,CAC5C,MAAA,CAEN,cACElB,CAAAA,CAAO,cAAA,EAAkB,MAAA,CAE3B,SAAA,CAAWvD,EACT,UAAA,CACAuD,CAAAA,CAAO,cAAA,CAAiB,KAAA,CAAQ,cAChCf,EAAAA,CAAa,UACf,CAAA,CACA,KAAA,CAAOe,EAAO,SAAA,CAEb,QAAA,CAAA,OAAOnD,CAAAA,EAAY,UAAA,CAChBA,EAAQ,CACN,IAAA,CAAMiL,EAAAA,CACN,QAAA,CAAUlO,EAAO,EACnB,CAAC,CAAA,CACDiD,CAAAA,CAAAA,CA7BC,GAAGoN,CAAAA,CAAW,GAAG,CAAA,CAAA,EAAIrQ,CAAAA,CAAO,EAAE,CAAA,CA8BrC,CAEJ,CAAC,CAAA,CAAA,CAnDIqQ,EAAW,GAoDlB,CACD,CAAA,CACH,CAAA,CACE,MACN,CAAA,CACF,CAAA,CAEClE,CAAAA,EAAgB,OAAA,EACjBG,GAAa,MAAA,EACb,CAACS,CAAAA,CACC9L,GAAAA,CAAC,OAAI,SAAA,CAAU,WAAA,CACb,QAAA,CAAAA,GAAAA,CAAC,OAAI,GAAA,CAAK6L,CAAAA,CAAa,SAAA,CAAU,YAAA,CAAa,EAChD,CAAA,CACE,IAAA,CACJ7L,GAAAA,CAAC2L,EAAAA,CAAA,CAAU,WAAA,CAAY,YAAA,CAAa,CAAA,CAAA,CACtC,CAAA,CACF,EACCI,EAAAA,CAAAA,CACH,CAEJ,CAEA,SAASoD,GACP/H,CAAAA,CACA4D,CAAAA,CACA,CACA,IAAMsE,EAAetE,CAAAA,CAAgB5D,CAAAA,CAAO,MAAA,CAAO,EAAE,EACrD,GAAIA,CAAAA,CAAO,aAAA,EAAiB,CAACA,EAAO,UAAA,CAAW,MAAA,CAC7C,OAAOkI,CAAAA,CAGT,IAAMC,CAAAA,CAAcnI,CAAAA,CACjB,cAAA,EAAe,CACf,OAAQ6B,CAAAA,EAAe,CAACA,CAAAA,CAAW,UAAA,CAAW,MAAM,CAAA,CACpD,GAAA,CAAKA,CAAAA,EAAe+B,CAAAA,CAAgB/B,EAAW,MAAA,CAAO,EAAE,CAAC,CAAA,CACtDuG,EAAYD,CAAAA,CAAY,CAAC,CAAA,EAAG,SAAA,CAElC,GACE,CAACC,CAAAA,EACD,CAACD,CAAAA,CAAY,MAAOpK,CAAAA,EAAWA,CAAAA,CAAO,SAAA,GAAcqK,CAAS,EAE7D,OAAOF,CAAAA,CAGT,IAAMG,CAAAA,CACJD,IAAc,MAAA,CAASD,CAAAA,CAAY,CAAC,CAAA,CAAIA,EAAY,EAAA,CAAG,EAAE,CAAA,CAE3D,OAAO,CACL,GAAGD,CAAAA,CACH,SAAA,CAAAE,CAAAA,CACE,YAAaC,CAAAA,EAAY,WAAA,CACrB,CACA,IAAA,CAAMA,EAAW,WAAA,CAAY,IAAA,CAC7B,KAAA,CAAOA,CAAAA,CAAW,YAAY,KAChC,CAAA,CACA,OACJ,eAAA,CAAiBA,CAAAA,EAAY,eAC/B,CACF","file":"chunk-YESJ52D2.js","sourcesContent":["import * as React from \"react\";\nimport type {\n DataTableColumnDef,\n DataTableColumnType,\n DataTableEditableRowsConfig,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { getDataTableLeafColumns } from \"./data-table-utils\";\nimport type { DataTableTanStackCellContext as CellContext } from \"./tanstack-v9\";\n\nexport function useRowEditing({\n columns,\n editableRows,\n onError,\n}: {\n columns: Array>;\n editableRows: DataTableEditableRowsConfig | undefined;\n onError?: (error: unknown, row: TData) => void;\n}) {\n const [editingRowId, setEditingRowId] = React.useState(null);\n const [draftValues, setDraftValues] = React.useState<\n Record\n >({});\n const draftValuesRef = React.useRef(draftValues);\n const [originalDraftValues, setOriginalDraftValues] = React.useState<\n Record\n >({});\n const [editErrors, setEditErrors] = React.useState>(\n {},\n );\n const [isSavingEdit, setIsSavingEdit] = React.useState(false);\n const isEditDirty = React.useMemo(\n () => !areDraftValuesEqual(draftValues, originalDraftValues),\n [draftValues, originalDraftValues],\n );\n\n React.useEffect(() => {\n draftValuesRef.current = draftValues;\n }, [draftValues]);\n\n const cancelEditing = React.useCallback(() => {\n setEditingRowId(null);\n setDraftValues({});\n setEditErrors({});\n setOriginalDraftValues({});\n }, []);\n\n const startEditingRow = React.useCallback(\n (row: TData, rowId: string) => {\n const initialValues =\n editableRows?.getInitialValues?.(row) ??\n defaultDraftValues(row, columns);\n setOriginalDraftValues({ ...initialValues });\n setDraftValues(initialValues);\n setEditErrors({});\n setEditingRowId(rowId);\n },\n [columns, editableRows],\n );\n\n const saveEdit = React.useCallback(\n async (row: TData) => {\n if (!editableRows) {\n return false;\n }\n\n setIsSavingEdit(true);\n const draftSnapshot = { ...draftValuesRef.current };\n let rollback: (() => void) | undefined;\n try {\n const validation = await editableRows.validateRow?.(\n row,\n draftSnapshot,\n );\n const validationErrors = normalizeEditValidationErrors(validation);\n if (Object.keys(validationErrors).length > 0) {\n setEditErrors(validationErrors);\n return false;\n }\n\n setEditErrors({});\n const optimisticResult = editableRows.onOptimisticUpdate?.(\n row,\n draftSnapshot,\n );\n rollback =\n typeof optimisticResult === \"function\"\n ? optimisticResult\n : undefined;\n await editableRows.onSaveRow(row, draftSnapshot);\n editableRows.onSaveSuccess?.(row, draftSnapshot);\n React.startTransition(cancelEditing);\n return true;\n } catch (error) {\n try {\n rollback?.();\n } catch {\n // Preserve the original save error for the public error callbacks.\n }\n editableRows.onSaveError?.(error, row, draftSnapshot);\n onError?.(error, row);\n return false;\n } finally {\n setIsSavingEdit(false);\n }\n },\n [cancelEditing, editableRows, onError],\n );\n const clearEditError = React.useCallback((columnId: string) => {\n setEditErrors((current) => {\n if (!current[columnId] && !current._row) {\n return current;\n }\n const next = { ...current };\n delete next[columnId];\n delete next._row;\n return next;\n });\n }, []);\n\n return {\n cancelEditing,\n clearEditError,\n draftValues,\n editErrors,\n editingRowId,\n isEditDirty,\n isSavingEdit,\n saveEdit,\n setDraftValues,\n setEditingRowId,\n startEditingRow,\n };\n}\n\nfunction defaultDraftValues(\n row: TData,\n columns: Array>,\n) {\n return getDataTableLeafColumns(columns).reduce>(\n (draft, { column }) => {\n if (\"accessorKey\" in column && typeof column.accessorKey === \"string\") {\n draft[column.accessorKey] = (row as Record)[\n column.accessorKey\n ];\n }\n return draft;\n },\n {},\n );\n}\n\nexport function renderEditableCell(\n context: CellContext,\n draftValues: Record,\n setDraftValues: React.Dispatch>>,\n components: Pick,\n editing?: {\n cancel: () => void;\n commit: () => void;\n errors: Record;\n isDirty: boolean;\n isPending: boolean;\n cancelOnEscape: boolean;\n commitOnEnter: boolean;\n onValueChange: (columnId: string) => void;\n },\n) {\n const { Checkbox, Input } = components;\n const column = context.column.columnDef as DataTableColumnDef;\n const meta = column.meta;\n const accessorKey =\n \"accessorKey\" in column && typeof column.accessorKey === \"string\"\n ? column.accessorKey\n : context.column.id;\n const draftValue = draftValues[accessorKey];\n const error =\n editing?.errors[accessorKey] ??\n editing?.errors[context.column.id] ??\n editing?.errors._row;\n const setDraftValue = (value: unknown) => {\n editing?.onValueChange(accessorKey);\n setDraftValues((current) => ({\n ...current,\n [accessorKey]: value,\n }));\n };\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === \"Escape\" && editing?.cancelOnEscape) {\n event.preventDefault();\n editing.cancel();\n } else if (\n event.key === \"Enter\" &&\n !event.shiftKey &&\n editing?.commitOnEnter\n ) {\n event.preventDefault();\n editing.commit();\n }\n };\n\n if (meta?.renderEditCell) {\n return meta.renderEditCell({\n cell: context,\n row: context.row.original,\n value: context.getValue(),\n draftValue,\n error,\n isDirty: editing?.isDirty ?? false,\n isPending: editing?.isPending ?? false,\n setDraftValue,\n });\n }\n\n const inputType = getEditableInputType(meta?.type, draftValue);\n\n if (typeof draftValue === \"boolean\") {\n return (\n
\n {\n setDraftValue(checked === true);\n }}\n onKeyDown={handleKeyDown}\n />\n {error ? (\n \n {error}\n \n ) : null}\n
\n );\n }\n\n return (\n
\n ) => {\n const rawValue = event.target.value;\n const parsedValue = meta?.parseEditValue\n ? meta.parseEditValue(rawValue, context)\n : parseEditableInputValue(rawValue, inputType, draftValue);\n setDraftValue(parsedValue);\n }}\n onKeyDown={handleKeyDown}\n />\n {error ? (\n \n {error}\n \n ) : null}\n
\n );\n}\n\nfunction normalizeEditValidationErrors(\n value: void | string | Record,\n) {\n if (!value) {\n return {};\n }\n return typeof value === \"string\" ? { _row: value } : value;\n}\n\nfunction areDraftValuesEqual(\n left: Record,\n right: Record,\n) {\n const keys = new Set([...Object.keys(left), ...Object.keys(right)]);\n return Array.from(keys).every((key) => Object.is(left[key], right[key]));\n}\n\nfunction getEditableInputType(\n type: DataTableColumnType | undefined,\n value: unknown,\n) {\n if (type === \"numeric\" || typeof value === \"number\") {\n return \"number\";\n }\n\n if (type === \"date\" || value instanceof Date) {\n return \"datetime-local\";\n }\n\n return \"text\";\n}\n\nfunction getEditableInputValue(value: unknown, inputType = \"text\") {\n if (value == null) {\n return \"\";\n }\n\n if (value instanceof Date) {\n return inputType === \"datetime-local\"\n ? value.toISOString().slice(0, 16)\n : value.toISOString();\n }\n\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n typeof value === \"bigint\"\n ) {\n return String(value);\n }\n\n return \"\";\n}\n\nfunction parseEditableInputValue(\n value: string,\n inputType: string,\n previousValue: unknown,\n) {\n if (inputType === \"number\") {\n return value === \"\" ? null : Number(value);\n }\n\n if (inputType === \"datetime-local\") {\n if (!value) {\n return null;\n }\n return previousValue instanceof Date ? new Date(value) : value;\n }\n\n return value;\n}\n","import * as React from \"react\";\n\nconst DataTableVirtualRowMeasurementContext = React.createContext<\n ((element: HTMLTableRowElement | null) => void) | undefined\n>(undefined);\n\nexport function DataTableVirtualRowMeasurementProvider({\n children,\n measureRow,\n}: {\n children: React.ReactNode;\n measureRow: ((element: HTMLTableRowElement | null) => void) | undefined;\n}) {\n return (\n \n {children}\n \n );\n}\n\nexport function useDataTableVirtualRowMeasurement():\n | ((element: HTMLTableRowElement | null) => void)\n | undefined {\n return React.useContext(DataTableVirtualRowMeasurementContext);\n}\n","import * as React from \"react\";\nimport { flexRender } from \"@tanstack/react-table\";\nimport { IconClock } from \"../icons\";\nimport type {\n DataTableCellOverflow,\n DataTableColumnDef,\n} from \"../types\";\nimport type { DataTableUiClassNames } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport type { DataTableTanStackCellContext as CellContext } from \"./tanstack-v9\";\n\nexport function renderDataTableCellContent(\n context: CellContext,\n classNames?: DataTableUiClassNames,\n options?: {\n hasCustomCell?: boolean;\n useCustomOverflowDefaults?: boolean;\n },\n) {\n const column = context.column.columnDef as DataTableColumnDef;\n const meta = column.meta;\n const value = context.getValue();\n const hasCustomCell = options?.hasCustomCell ?? false;\n const renderedCellContent = hasCustomCell && column.cell\n ? flexRender(column.cell, context)\n : undefined;\n const hasComplexRenderedContent = isComplexRenderedCellContent(\n renderedCellContent,\n );\n const resolvedOverflow = resolveDataTableCellOverflow({\n context,\n useCustomOverflowDefaults: options?.useCustomOverflowDefaults ?? false,\n value,\n });\n\n if (meta?.type === \"date\" && !hasCustomCell) {\n return (\n \n \n {formatDateValue(value)}\n \n );\n }\n\n const content =\n renderedCellContent !== undefined &&\n renderedCellContent !== null &&\n renderedCellContent !== \"\"\n ? renderedCellContent\n : value == null || value === \"\"\n ? -\n : formatCellValue(value);\n\n return (\n *]:max-w-full [&>*]:min-w-0\",\n )}\n >\n {content}\n \n );\n}\n\nfunction resolveDataTableCellOverflow({\n context,\n useCustomOverflowDefaults,\n value,\n}: {\n context: CellContext;\n useCustomOverflowDefaults: boolean;\n value: unknown;\n}): DataTableCellOverflow {\n const column = context.column.columnDef as DataTableColumnDef;\n const resolvedOverflow =\n typeof column.meta?.overflow === \"function\"\n ? column.meta.overflow({\n row: context.row.original,\n value,\n })\n : column.meta?.overflow;\n\n if (resolvedOverflow) {\n return resolvedOverflow;\n }\n\n return useCustomOverflowDefaults ? \"clip\" : \"truncate\";\n}\n\nfunction getCellOverflowClassName(overflow: DataTableCellOverflow) {\n switch (overflow) {\n case \"clip\":\n return \"block overflow-hidden whitespace-nowrap\";\n case \"wrap\":\n return \"block overflow-hidden whitespace-normal break-words\";\n case \"visible\":\n return \"block overflow-visible whitespace-normal\";\n case \"truncate\":\n default:\n return \"block overflow-hidden text-ellipsis whitespace-nowrap\";\n }\n}\n\nfunction isComplexRenderedCellContent(content: React.ReactNode) {\n if (content == null) {\n return false;\n }\n\n return (\n React.isValidElement(content) ||\n Array.isArray(content) ||\n typeof content === \"object\"\n );\n}\n\nfunction formatDateValue(value: unknown) {\n if (typeof value === \"number\") {\n return new Date(value * 1000).toLocaleString();\n }\n\n if (typeof value === \"string\" && value) {\n return value;\n }\n\n return \"-\";\n}\n\nfunction formatCellValue(value: unknown) {\n if (value instanceof Date) {\n return value.toLocaleString();\n }\n\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n typeof value === \"bigint\"\n ) {\n return String(value);\n }\n\n try {\n return JSON.stringify(value);\n } catch {\n return \"-\";\n }\n}\n","import * as React from \"react\";\nimport { flexRender } from \"@tanstack/react-table\";\nimport type { RowPinningPosition } from \"@tanstack/react-table\";\nimport type {\n DataTableColumnDef,\n DataTableDensity,\n DataTableProps,\n DataTableRowLoadingState,\n} from \"../types\";\nimport type { DataTableUiClassNames, DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport { renderDataTableCellContent } from \"./data-table-cell-content\";\nimport type { DataTableColumnLayout } from \"./use-column-layout\";\nimport {\n getDensityCellClassName,\n isDataTableInteractiveTarget,\n isDataTableLoadingRow,\n} from \"./data-table-utils\";\nimport { renderEditableCell } from \"./use-row-editing\";\nimport { useDataTableVirtualRowMeasurement } from \"./data-table-virtual-row-measurement\";\nimport { cellAlignClassName, hideOnClassName } from \"../types\";\nimport type {\n DataTableTanStackCell as Cell,\n DataTableTanStackRow as Row,\n} from \"./tanstack-v9\";\n\nexport type DataTableRowEditingContext = {\n cancel: () => void;\n clearError: (columnId: string) => void;\n commit: (row: TData) => void;\n errors: Record;\n isDirty: boolean;\n isPending: boolean;\n cancelOnEscape: boolean;\n commitOnEnter: boolean;\n};\n\ntype DataTableBodyRowProps = {\n columnLayouts: ReadonlyMap;\n components: Pick<\n DataTableUiKit,\n \"Checkbox\" | \"Input\" | \"Skeleton\" | \"TableCell\" | \"TableRow\"\n >;\n currentDensity: DataTableDensity;\n draftValues: Record;\n editingContext?: DataTableRowEditingContext;\n dragAndDrop: DataTableProps[\"dragAndDrop\"];\n explicitCustomCellColumnIds: ReadonlySet;\n getRowClassName: DataTableProps[\"getRowClassName\"];\n groupToggleLabel: string;\n gridMode: boolean;\n gridRowAriaIndex: number;\n gridRowIndex: number;\n activeGridCell: { row: number; column: number };\n cellSelectionEnabled: boolean;\n isGridCellSelected: (row: number, column: number) => boolean;\n onGridCellFocus: (cell: { row: number; column: number }) => void;\n onGridCellKeyDown: (\n event: React.KeyboardEvent,\n row: number,\n column: number,\n ) => void;\n onGridCellPointerDown: (\n event: React.PointerEvent,\n row: number,\n column: number,\n ) => void;\n onGridCellPointerEnter: (\n event: React.PointerEvent,\n row: number,\n column: number,\n ) => void;\n isDraggable: boolean;\n isDetailExpanded: boolean;\n isEditing: boolean;\n isExpanded: boolean;\n isInitialLoadingRow: boolean;\n isSelected: boolean;\n loadingState: DataTableRowLoadingState | undefined;\n onRowClick: DataTableProps[\"onRowClick\"];\n pinnedPosition?: Exclude;\n originalRow: TData;\n detailPanel: DataTableProps[\"detailPanel\"];\n row: Row;\n rowIndex: number;\n setDraftValues: React.Dispatch>>;\n stripedRows: boolean;\n uiClassNames: DataTableUiClassNames;\n visibleCells: Array>;\n visibleLeafColumnCount: number;\n};\n\nfunction DataTableBodyRowInner({\n columnLayouts,\n components,\n currentDensity,\n draftValues,\n editingContext,\n dragAndDrop,\n explicitCustomCellColumnIds,\n getRowClassName,\n groupToggleLabel,\n gridMode,\n gridRowAriaIndex,\n gridRowIndex,\n activeGridCell,\n cellSelectionEnabled,\n isGridCellSelected,\n onGridCellFocus,\n onGridCellKeyDown,\n onGridCellPointerDown,\n onGridCellPointerEnter,\n isDraggable,\n isDetailExpanded,\n isEditing,\n isExpanded,\n isInitialLoadingRow,\n isSelected,\n loadingState,\n onRowClick,\n pinnedPosition,\n originalRow,\n detailPanel,\n row,\n rowIndex,\n setDraftValues,\n stripedRows,\n uiClassNames,\n visibleCells,\n visibleLeafColumnCount,\n}: DataTableBodyRowProps) {\n const { Checkbox, Input, Skeleton, TableCell, TableRow } = components;\n const virtualRowMeasurement = useDataTableVirtualRowMeasurement();\n const measureElement = pinnedPosition ? undefined : virtualRowMeasurement;\n const firstDataColumnId = visibleCells.find(\n (cell) => !columnLayouts.get(cell.column.id)?.isUtilityColumn,\n )?.column.id;\n const spacerColumnIndex = visibleCells.findIndex(\n (cell) => cell.column.id === \"__spacer__\",\n );\n\n return (\n \n 0 ? row.depth : undefined\n }\n data-dtp-slot={\n pinnedPosition ? \"data-table-pinned-row\" : \"data-table-row\"\n }\n data-row-pinned={pinnedPosition}\n data-row-grouped={row.getIsGrouped() || undefined}\n draggable={isInitialLoadingRow ? false : isDraggable}\n data-loading={loadingState?.isLoading || undefined}\n data-row-index={isInitialLoadingRow ? undefined : rowIndex}\n data-row-parity={\n stripedRows && !isInitialLoadingRow\n ? rowIndex % 2 === 0\n ? \"odd\"\n : \"even\"\n : undefined\n }\n data-state={\n isInitialLoadingRow ? undefined : isSelected ? \"selected\" : undefined\n }\n role={gridMode ? \"row\" : undefined}\n aria-rowindex={gridMode ? gridRowAriaIndex : undefined}\n tabIndex={\n !gridMode && onRowClick && !isInitialLoadingRow ? 0 : undefined\n }\n className={cn(\n !isInitialLoadingRow &&\n getRowClassName?.(originalRow, {\n row: originalRow,\n rowId: row.id,\n rowIndex,\n isEditing,\n isExpanded,\n isLoading: Boolean(loadingState?.isLoading),\n isSelected,\n pinnedPosition: pinnedPosition ?? false,\n }),\n uiClassNames.row,\n pinnedPosition === \"top\" &&\n cn(\"border-b-2\", uiClassNames.rowPinnedTop),\n pinnedPosition === \"bottom\" &&\n cn(\"border-t-2\", uiClassNames.rowPinnedBottom),\n stripedRows &&\n !isInitialLoadingRow &&\n (rowIndex % 2 === 0\n ? uiClassNames.rowOdd\n : uiClassNames.rowEven),\n isSelected && !isInitialLoadingRow && uiClassNames.rowSelected,\n onRowClick && !isInitialLoadingRow && \"cursor-pointer\",\n isInitialLoadingRow && \"pointer-events-none\",\n )}\n onClick={(event: React.MouseEvent) => {\n if (isInitialLoadingRow) {\n return;\n }\n\n if (isDataTableInteractiveTarget(event.target, event.currentTarget)) {\n return;\n }\n\n if (gridMode && cellSelectionEnabled) return;\n\n void onRowClick?.({ row: originalRow, rowId: row.id });\n }}\n onKeyDown={(event: React.KeyboardEvent) => {\n if (\n isInitialLoadingRow ||\n !onRowClick ||\n (event.key !== \"Enter\" && event.key !== \" \")\n ) {\n return;\n }\n\n if (isDataTableInteractiveTarget(event.target, event.currentTarget)) {\n return;\n }\n\n event.preventDefault();\n void onRowClick({ row: originalRow, rowId: row.id });\n }}\n onDragStart={(event: React.DragEvent) => {\n if (isInitialLoadingRow) {\n return;\n }\n\n dragAndDrop?.onRowDragStart?.({\n row: originalRow,\n rowId: row.id,\n event,\n });\n }}\n onDragEnd={(event: React.DragEvent) => {\n if (isInitialLoadingRow) {\n return;\n }\n\n dragAndDrop?.onRowDragEnd?.({\n row: originalRow,\n rowId: row.id,\n event,\n });\n }}\n >\n {visibleCells.map((cell, columnIndex) => {\n const meta = (\n cell.column.columnDef as DataTableColumnDef\n ).meta;\n const cellContext = cell.getContext();\n const value = cell.getValue();\n const layout = columnLayouts.get(cell.column.id);\n const isSelectionColumn = layout?.isSelectionColumn ?? false;\n const isExpansionColumn = layout?.isExpansionColumn ?? false;\n const isActionsColumn = layout?.isActionsColumn ?? false;\n const isSpacerColumn = layout?.isSpacerColumn ?? false;\n const gridColumnAriaIndex =\n columnIndex +\n 1 -\n (spacerColumnIndex >= 0 && spacerColumnIndex < columnIndex ? 1 : 0);\n const hideClassName = hideOnClassName(meta?.hideOn);\n const cellClassName =\n isInitialLoadingRow || isDataTableLoadingRow(originalRow)\n ? undefined\n : typeof meta?.cellClassName === \"function\"\n ? meta.cellClassName({\n row: originalRow,\n value,\n })\n : meta?.cellClassName;\n const isCellSelected =\n gridMode && cellSelectionEnabled &&\n !isInitialLoadingRow &&\n !isSpacerColumn &&\n isGridCellSelected(gridRowIndex, columnIndex);\n\n return (\n onGridCellFocus({ row: gridRowIndex, column: columnIndex })\n : undefined\n }\n onKeyDown={\n gridMode && !isSpacerColumn\n ? (event: React.KeyboardEvent) => {\n if (event.target !== event.currentTarget) {\n if (event.key === \"Escape\") {\n event.preventDefault();\n event.currentTarget.focus();\n }\n return;\n }\n onGridCellKeyDown(event, gridRowIndex, columnIndex);\n }\n : undefined\n }\n onPointerDown={\n gridMode &&\n cellSelectionEnabled &&\n !layout?.isUtilityColumn &&\n !isSpacerColumn\n ? (event: React.PointerEvent) => {\n if (isDataTableInteractiveTarget(event.target, event.currentTarget)) return;\n event.currentTarget.focus();\n onGridCellPointerDown(event, gridRowIndex, columnIndex);\n }\n : undefined\n }\n onPointerEnter={\n gridMode &&\n cellSelectionEnabled &&\n !layout?.isUtilityColumn &&\n !isSpacerColumn\n ? (event: React.PointerEvent) => {\n if (isDataTableInteractiveTarget(event.target, event.currentTarget)) return;\n onGridCellPointerEnter(event, gridRowIndex, columnIndex);\n }\n : undefined\n }\n className={cn(\n \"border-b\",\n getDensityCellClassName(currentDensity),\n uiClassNames.cellBorder,\n isCellSelected && uiClassNames.cellSelected,\n layout?.utilityClassName,\n layout?.isSpacerColumn && \"p-0\",\n layout?.pinnedClassName,\n hideClassName,\n cellAlignClassName(cellContext),\n meta?.responsiveClassName,\n cellClassName,\n )}\n style={layout?.cellStyle}\n >\n 0 && cell.column.id === firstDataColumnId\n ? { paddingInlineStart: `${row.depth}rem` }\n : undefined\n }\n >\n {isSpacerColumn ? null : loadingState?.isLoading ? (\n (meta?.skeleton?.(cellContext) ??\n loadingState.skeleton ?? (\n \n ))\n ) : isEditing &&\n cell.column.id !== \"__select__\" &&\n cell.column.id !== \"__expand__\" &&\n cell.column.id !== \"__actions__\" ? (\n renderEditableCell(\n cellContext,\n draftValues,\n setDraftValues,\n {\n Checkbox,\n Input,\n },\n editingContext\n ? {\n cancel: editingContext.cancel,\n cancelOnEscape: editingContext.cancelOnEscape,\n commit: () => editingContext.commit(originalRow),\n commitOnEnter: editingContext.commitOnEnter,\n errors: editingContext.errors,\n isDirty: editingContext.isDirty,\n isPending: editingContext.isPending,\n onValueChange: editingContext.clearError,\n }\n : undefined,\n )\n ) : row.getIsGrouped() && cell.getIsPlaceholder() ? null : row.getIsGrouped() && cell.getIsGrouped() ? (\n row.toggleExpanded()}\n aria-expanded={row.getIsExpanded()}\n aria-label={groupToggleLabel}\n >\n \n {renderDataTableCellContent(cellContext, uiClassNames, {\n hasCustomCell:\n explicitCustomCellColumnIds.has(cell.column.id),\n useCustomOverflowDefaults:\n explicitCustomCellColumnIds.has(cell.column.id),\n })}\n \n \n ({row.subRows.length})\n \n \n ) : row.getIsGrouped() && cell.getIsAggregated() ? (\n cell.column.columnDef.aggregatedCell\n ? flexRender(cell.column.columnDef.aggregatedCell, cellContext)\n : renderDataTableCellContent(cellContext, uiClassNames, {\n hasCustomCell: false,\n useCustomOverflowDefaults: false,\n })\n ) : (\n renderDataTableCellContent(cellContext, uiClassNames, {\n hasCustomCell:\n explicitCustomCellColumnIds.has(cell.column.id) ||\n isSelectionColumn ||\n isExpansionColumn ||\n isActionsColumn ||\n isSpacerColumn,\n useCustomOverflowDefaults:\n explicitCustomCellColumnIds.has(cell.column.id) ||\n isSelectionColumn ||\n isExpansionColumn ||\n isActionsColumn ||\n isSpacerColumn,\n })\n )}\n \n \n );\n })}\n \n {!isInitialLoadingRow && detailPanel && isDetailExpanded ? (\n \n \n {detailPanel.render({\n row: originalRow,\n rowId: row.id,\n tableRow: row,\n })}\n \n \n ) : null}\n \n );\n}\n\nfunction areDataTableBodyRowsEqual(\n previous: DataTableBodyRowProps,\n next: DataTableBodyRowProps,\n) {\n return (\n previous.row.id === next.row.id &&\n previous.row.original === next.row.original &&\n previous.rowIndex === next.rowIndex &&\n previous.isSelected === next.isSelected &&\n previous.isInitialLoadingRow === next.isInitialLoadingRow &&\n previous.isEditing === next.isEditing &&\n (!previous.isEditing || previous.editingContext === next.editingContext) &&\n previous.isExpanded === next.isExpanded &&\n previous.isDraggable === next.isDraggable &&\n sameLoadingState(previous.loadingState, next.loadingState) &&\n sameVisibleCells(previous.visibleCells, next.visibleCells) &&\n previous.components === next.components &&\n sameColumnLayouts(\n previous.columnLayouts,\n next.columnLayouts,\n next.visibleCells,\n ) &&\n previous.currentDensity === next.currentDensity &&\n previous.detailPanel === next.detailPanel &&\n previous.isDetailExpanded === next.isDetailExpanded &&\n previous.pinnedPosition === next.pinnedPosition &&\n previous.onRowClick === next.onRowClick &&\n previous.dragAndDrop === next.dragAndDrop &&\n previous.getRowClassName === next.getRowClassName &&\n previous.groupToggleLabel === next.groupToggleLabel &&\n previous.gridMode === next.gridMode &&\n (!next.gridMode ||\n (previous.gridRowAriaIndex === next.gridRowAriaIndex &&\n previous.gridRowIndex === next.gridRowIndex &&\n previous.activeGridCell.row === next.activeGridCell.row &&\n previous.activeGridCell.column === next.activeGridCell.column &&\n previous.cellSelectionEnabled === next.cellSelectionEnabled &&\n previous.isGridCellSelected === next.isGridCellSelected &&\n previous.onGridCellFocus === next.onGridCellFocus &&\n previous.onGridCellKeyDown === next.onGridCellKeyDown &&\n previous.onGridCellPointerDown === next.onGridCellPointerDown &&\n previous.onGridCellPointerEnter === next.onGridCellPointerEnter)) &&\n previous.stripedRows === next.stripedRows &&\n previous.uiClassNames === next.uiClassNames &&\n previous.explicitCustomCellColumnIds === next.explicitCustomCellColumnIds &&\n (!previous.isEditing || previous.draftValues === next.draftValues)\n );\n}\n\nfunction sameLoadingState(\n previous: DataTableRowLoadingState | undefined,\n next: DataTableRowLoadingState | undefined,\n) {\n return (\n previous?.isLoading === next?.isLoading &&\n previous?.skeleton === next?.skeleton\n );\n}\n\nfunction sameVisibleCells(\n previous: Array>,\n next: Array>,\n) {\n return (\n previous.length === next.length &&\n previous.every((cell, index) => {\n const nextCell = next[index];\n return nextCell?.id === cell.id && nextCell.column.id === cell.column.id;\n })\n );\n}\n\nfunction sameColumnLayouts(\n previous: ReadonlyMap,\n next: ReadonlyMap,\n cells: Array>,\n) {\n return cells.every((cell) => {\n const previousLayout = previous.get(cell.column.id);\n const nextLayout = next.get(cell.column.id);\n\n return (\n previousLayout?.fixedSide === nextLayout?.fixedSide &&\n previousLayout?.isActionsColumn === nextLayout?.isActionsColumn &&\n previousLayout?.isExpansionColumn === nextLayout?.isExpansionColumn &&\n previousLayout?.isSelectionColumn === nextLayout?.isSelectionColumn &&\n previousLayout?.isSpacerColumn === nextLayout?.isSpacerColumn &&\n previousLayout?.isUtilityColumn === nextLayout?.isUtilityColumn &&\n previousLayout?.pinnedClassName === nextLayout?.pinnedClassName &&\n previousLayout?.utilityClassName === nextLayout?.utilityClassName &&\n sameCellStyle(previousLayout?.cellStyle, nextLayout?.cellStyle)\n );\n });\n}\n\nfunction sameCellStyle(\n previous: React.CSSProperties | undefined,\n next: React.CSSProperties | undefined,\n) {\n return (\n previous?.width === next?.width &&\n previous?.minWidth === next?.minWidth &&\n previous?.maxWidth === next?.maxWidth &&\n previous?.left === next?.left &&\n previous?.right === next?.right\n );\n}\n\nexport const DataTableBodyRow = React.memo(\n DataTableBodyRowInner,\n areDataTableBodyRowsEqual,\n) as typeof DataTableBodyRowInner;\n","import * as React from \"react\";\nimport { flexRender } from \"@tanstack/react-table\";\nimport { IconChevronDown, IconSelector } from \"../icons\";\nimport type { SortingState } from \"@tanstack/react-table\";\nimport type {\n DataTableColumnDef,\n DataTableColumnGroupDef,\n DataTableDensity,\n DataTableProps,\n} from \"../types\";\nimport type { DataTableUiClassNames, DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport type { DataTableColumnLayout } from \"./use-column-layout\";\nimport {\n getDensityHeaderClassName,\n isUtilityColumnId,\n} from \"./data-table-utils\";\nimport { headerAlignClassName, hideOnClassName } from \"../types\";\nimport type { DataTableTanStackHeader as Header } from \"./tanstack-v9\";\n\ntype DataTableHeaderCellProps = {\n columnGroupHeaderHeight: DataTableProps[\"columnGroupHeaderHeight\"];\n currentDensity: DataTableDensity;\n currentSorting: SortingState;\n dir: NonNullable[\"dir\"]>;\n draggedColumnIdRef: React.MutableRefObject;\n enableColumnReordering: boolean;\n enableColumnResizing: boolean;\n gridColumnIndex?: number;\n gridMode: boolean;\n header: Header;\n headerGroupHeaders: Array>;\n layout: DataTableColumnLayout;\n primeColumnForResize: (columnId: string, currentSize: number) => void;\n reorderColumn: (sourceColumnId: string, targetColumnId: string) => void;\n resizeColumnLabel: string;\n resetColumnSize: (columnId: string) => void;\n // Rendered through flexRender inside the header def; carried as a prop so\n // the memo comparator re-renders the selection header when it changes.\n selectionState?: boolean | \"indeterminate\";\n TableHead: DataTableUiKit[\"TableHead\"];\n uiClassNames: DataTableUiClassNames;\n};\n\nfunction DataTableHeaderCellInner({\n columnGroupHeaderHeight,\n currentDensity,\n currentSorting,\n dir,\n draggedColumnIdRef,\n enableColumnReordering,\n enableColumnResizing,\n gridColumnIndex,\n gridMode,\n header,\n headerGroupHeaders,\n layout,\n primeColumnForResize,\n reorderColumn,\n resizeColumnLabel,\n resetColumnSize,\n TableHead,\n uiClassNames,\n}: DataTableHeaderCellProps) {\n const meta = (header.column.columnDef as DataTableColumnDef)\n .meta;\n const headerContentId = React.useId();\n const isColumnGroup =\n !header.isPlaceholder && header.subHeaders.length > 0;\n const groupDefinition = isColumnGroup\n ? (header.column.columnDef as DataTableColumnGroupDef)\n : undefined;\n const canSort = header.column.getCanSort();\n const sortingState = header.column.getIsSorted();\n const sortingIndex = currentSorting.findIndex(\n (sort) => sort.id === header.column.id,\n );\n const canReorderColumn =\n enableColumnReordering &&\n !header.isPlaceholder &&\n !isColumnGroup &&\n !layout.isUtilityColumn &&\n !layout.isSpacerColumn;\n const hideClassName = hideOnClassName(meta?.hideOn);\n\n return (\n ) => {\n draggedColumnIdRef.current = header.column.id;\n event.dataTransfer.effectAllowed = \"move\";\n }\n : undefined\n }\n onDragOver={\n canReorderColumn\n ? (event: React.DragEvent) => {\n event.preventDefault();\n event.dataTransfer.dropEffect = \"move\";\n }\n : undefined\n }\n onDrop={\n canReorderColumn\n ? (event: React.DragEvent) => {\n event.preventDefault();\n const sourceColumnId = draggedColumnIdRef.current;\n draggedColumnIdRef.current = null;\n if (sourceColumnId) {\n reorderColumn(sourceColumnId, header.column.id);\n }\n }\n : undefined\n }\n onKeyDown={\n canReorderColumn\n ? (event: React.KeyboardEvent) => {\n if (\n !event.altKey ||\n (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\")\n ) {\n return;\n }\n\n event.preventDefault();\n const headers = headerGroupHeaders.filter(\n (item) =>\n !isUtilityColumnId(item.column.id) &&\n item.column.id !== \"__spacer__\",\n );\n const currentIndex = headers.findIndex(\n (item) => item.column.id === header.column.id,\n );\n const target =\n headers[\n (event.key === \"ArrowLeft\") !== (dir === \"rtl\")\n ? currentIndex - 1\n : currentIndex + 1\n ];\n if (target) {\n reorderColumn(header.column.id, target.column.id);\n }\n }\n : undefined\n }\n >\n {header.isPlaceholder ? null : canSort ? (\n \n \n {flexRender(header.column.columnDef.header, header.getContext())}\n \n {sortingState ? (\n <>\n \n {currentSorting.length > 1 && sortingIndex >= 0 ? (\n \n {sortingIndex + 1}\n \n ) : null}\n \n ) : (\n \n )}\n \n ) : (\n layout.isUtilityColumn || layout.isSpacerColumn ? (\n flexRender(header.column.columnDef.header, header.getContext())\n ) : (\n \n {flexRender(header.column.columnDef.header, header.getContext())}\n \n )\n )}\n\n {enableColumnResizing &&\n !header.isPlaceholder &&\n header.column.getCanResize() ? (\n {\n for (const leafHeader of getResizableLeafHeaders(header)) {\n resetColumnSize(leafHeader.column.id);\n }\n }}\n onMouseDown={(event) => {\n for (const leafHeader of getResizableLeafHeaders(header)) {\n primeColumnForResize(\n leafHeader.column.id,\n leafHeader.getSize(),\n );\n }\n header.getResizeHandler()(event);\n }}\n onTouchStart={(event) => {\n for (const leafHeader of getResizableLeafHeaders(header)) {\n primeColumnForResize(\n leafHeader.column.id,\n leafHeader.getSize(),\n );\n }\n header.getResizeHandler()(event);\n }}\n onKeyDown={(event) => {\n if (event.altKey) {\n return;\n }\n if (event.key === \"Home\") {\n event.preventDefault();\n for (const leafHeader of getResizableLeafHeaders(header)) {\n resetColumnSize(leafHeader.column.id);\n }\n return;\n }\n if (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\") {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n const grows =\n (event.key === \"ArrowRight\") !== (dir === \"rtl\");\n resizeHeaderBy(\n header,\n (grows ? 1 : -1) * (event.shiftKey ? 25 : 10),\n );\n }}\n className={cn(\n \"absolute inset-y-0 z-50 h-full w-3 cursor-col-resize touch-none select-none ltr:right-0 ltr:translate-x-1/2 rtl:left-0 rtl:-translate-x-1/2 after:absolute after:top-0 after:left-1/2 after:h-full after:w-px after:-translate-x-1/2\",\n uiClassNames.resizeHandle ??\n \"after:bg-current after:opacity-20 hover:after:opacity-70\",\n header.column.getIsResizing() &&\n (uiClassNames.resizeHandleActive ?? \"after:opacity-100\"),\n )}\n />\n ) : null}\n \n );\n}\n\nfunction areDataTableHeaderCellsEqual(\n previous: DataTableHeaderCellProps,\n next: DataTableHeaderCellProps,\n) {\n return (\n previous.header.id === next.header.id &&\n previous.header.column.id === next.header.column.id &&\n previous.header.column.columnDef === next.header.column.columnDef &&\n previous.header.colSpan === next.header.colSpan &&\n previous.header.isPlaceholder === next.header.isPlaceholder &&\n sameSubHeaders(previous.header, next.header) &&\n previous.currentDensity === next.currentDensity &&\n previous.columnGroupHeaderHeight === next.columnGroupHeaderHeight &&\n previous.dir === next.dir &&\n previous.enableColumnReordering === next.enableColumnReordering &&\n previous.enableColumnResizing === next.enableColumnResizing &&\n previous.gridMode === next.gridMode &&\n previous.gridColumnIndex === next.gridColumnIndex &&\n previous.TableHead === next.TableHead &&\n previous.uiClassNames === next.uiClassNames &&\n previous.draggedColumnIdRef === next.draggedColumnIdRef &&\n previous.primeColumnForResize === next.primeColumnForResize &&\n previous.reorderColumn === next.reorderColumn &&\n previous.resizeColumnLabel === next.resizeColumnLabel &&\n previous.resetColumnSize === next.resetColumnSize &&\n previous.selectionState === next.selectionState &&\n sameSorting(previous.currentSorting, next.currentSorting) &&\n sameHeaderGroupHeaders(\n previous.headerGroupHeaders,\n next.headerGroupHeaders,\n ) &&\n sameHeaderLayout(previous.layout, next.layout)\n );\n}\n\nfunction getResizableLeafHeaders(header: Header) {\n if (!header.subHeaders.length) {\n return [header];\n }\n\n return header\n .getLeafHeaders()\n .filter((leafHeader) => !leafHeader.subHeaders.length);\n}\n\nfunction getHeaderMinimumSize(header: Header) {\n return getResizableLeafHeaders(header).reduce(\n (total, leafHeader) =>\n total + (leafHeader.column.columnDef.minSize ?? 20),\n 0,\n );\n}\n\nfunction getHeaderMaximumSize(header: Header) {\n return getResizableLeafHeaders(header).reduce(\n (total, leafHeader) =>\n total + (leafHeader.column.columnDef.maxSize ?? Number.MAX_SAFE_INTEGER),\n 0,\n );\n}\n\nfunction resizeHeaderBy(\n header: Header,\n delta: number,\n) {\n const leafHeaders = getResizableLeafHeaders(header);\n const deltaPerLeaf = delta / leafHeaders.length;\n header.getContext().table.setColumnSizing((current) => {\n const next = { ...current };\n\n for (const leafHeader of leafHeaders) {\n const column = leafHeader.column;\n const minimum = column.columnDef.minSize ?? 20;\n const maximum =\n column.columnDef.maxSize ?? Number.MAX_SAFE_INTEGER;\n next[column.id] = Math.min(\n maximum,\n Math.max(minimum, column.getSize() + deltaPerLeaf),\n );\n }\n\n return next;\n });\n}\n\nfunction sameSubHeaders(\n previous: Header,\n next: Header,\n) {\n return (\n previous.subHeaders.length === next.subHeaders.length &&\n previous.subHeaders.every(\n (header, index) => next.subHeaders[index]?.id === header.id,\n )\n );\n}\n\nfunction sameSorting(previous: SortingState, next: SortingState) {\n return (\n previous.length === next.length &&\n previous.every((sort, index) => {\n const nextSort = next[index];\n return nextSort?.id === sort.id && nextSort.desc === sort.desc;\n })\n );\n}\n\nfunction sameHeaderGroupHeaders(\n previous: Array>,\n next: Array>,\n) {\n return (\n previous.length === next.length &&\n previous.every((header, index) => next[index]?.id === header.id)\n );\n}\n\nfunction sameHeaderLayout(\n previous: DataTableColumnLayout,\n next: DataTableColumnLayout,\n) {\n return (\n previous.fixedSide === next.fixedSide &&\n previous.isSpacerColumn === next.isSpacerColumn &&\n previous.isUtilityColumn === next.isUtilityColumn &&\n previous.pinnedClassName === next.pinnedClassName &&\n previous.utilityClassName === next.utilityClassName &&\n previous.headerStyle?.width === next.headerStyle?.width &&\n previous.headerStyle?.minWidth === next.headerStyle?.minWidth &&\n previous.headerStyle?.maxWidth === next.headerStyle?.maxWidth &&\n previous.headerStyle?.left === next.headerStyle?.left &&\n previous.headerStyle?.right === next.headerStyle?.right\n );\n}\n\nexport const DataTableHeaderCell = React.memo(\n DataTableHeaderCellInner,\n areDataTableHeaderCellsEqual,\n) as typeof DataTableHeaderCellInner;\n","import * as React from \"react\";\nimport type {\n ExpandedState,\n RowPinningPosition,\n} from \"@tanstack/react-table\";\nimport type {\n DataTableDensity,\n DataTableCellSelection,\n DataTableProps,\n DataTableRowLoadingState,\n} from \"../types\";\nimport type { DataTableUiClassNames, DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport {\n DataTableBodyRow,\n type DataTableRowEditingContext,\n} from \"./data-table-body-row\";\nimport { DataTableHeaderCell } from \"./data-table-header-cell\";\nimport type { DataTableColumnLayout } from \"./use-column-layout\";\nimport { isDataTableLoadingRow, isUtilityColumnId } from \"./data-table-utils\";\nimport type { DataTableLabels } from \"../types\";\nimport type {\n DataTableTanStackColumn as Column,\n DataTableTanStackHeader as Header,\n DataTableTanStackRow as Row,\n DataTableTanStackTable as TanStackTable,\n} from \"./tanstack-v9\";\n\nexport type DataTableTablePanelProps = {\n ariaDescribedBy: string | undefined;\n ariaLabelledBy: string | undefined;\n bodyRowComponents: Pick<\n DataTableUiKit,\n \"Checkbox\" | \"Input\" | \"Skeleton\" | \"TableCell\" | \"TableRow\"\n >;\n cellSelection: DataTableCellSelection | null;\n cellSelectionEnabled: boolean;\n columnLayouts: ReadonlyMap;\n columnGroupHeaderHeight: DataTableProps[\"columnGroupHeaderHeight\"];\n currentDensity: DataTableDensity;\n currentDetailExpanded: ExpandedState;\n currentSorting: DataTableProps[\"sorting\"];\n dir: NonNullable[\"dir\"]>;\n DataTableEmptyState: React.ElementType;\n dragAndDrop: DataTableProps[\"dragAndDrop\"];\n draggedColumnIdRef: React.RefObject;\n draftValues: Record;\n editingRowId: string | null;\n editingContext?: DataTableRowEditingContext;\n emptyNode: React.ReactNode;\n enableColumnReordering: boolean;\n enableColumnResizing: boolean;\n explicitCustomCellColumnIds: ReadonlySet;\n fillMinWidth: number;\n flexGrow: boolean;\n gridMode: boolean;\n gridPageSize?: number;\n gridRowOffset: number;\n onGridActiveRowIndexChange?: (rowIndex: number) => void;\n onCellSelectionChange: (selection: DataTableCellSelection | null) => void;\n getColumnLayout: (columnId: string) => DataTableColumnLayout;\n getRowClassName: DataTableProps[\"getRowClassName\"];\n getRowLoadingState: DataTableProps[\"getRowLoadingState\"];\n infiniteScroll: DataTableProps[\"infiniteScroll\"];\n layoutMode: \"fill\" | \"fit\";\n localSearchValue: string;\n onRowClick: DataTableProps[\"onRowClick\"];\n primeColumnForResize: (columnId: string, currentSize: number) => void;\n renderedRows: Array>;\n detailPanel: DataTableProps[\"detailPanel\"];\n topPinnedRows: Array>;\n bottomPinnedRows: Array>;\n reorderColumn: (sourceColumnId: string, targetColumnId: string) => void;\n resetColumnSize: (columnId: string) => void;\n resolvedLabels: DataTableLabels;\n rowsToRender: Array<{ row: Row; rowIndex: number }>;\n ScrollArea: DataTableUiKit[\"ScrollArea\"];\n ScrollBar: DataTableUiKit[\"ScrollBar\"];\n scrollbarVisibility: DataTableProps[\"scrollbarVisibility\"];\n sentinelRef: React.RefObject;\n setDraftValues: React.Dispatch>>;\n shouldRenderInitialLoading: boolean;\n stateOverlayNode?: React.ReactNode;\n stickyHeader: boolean;\n stripedRows: boolean;\n summaryRows: NonNullable[\"summaryRows\"]>;\n table: TanStackTable;\n tableClassName: string | undefined;\n tableContainerClassName: string | undefined;\n Table: DataTableUiKit[\"Table\"];\n TableBody: DataTableUiKit[\"TableBody\"];\n TableCell: DataTableUiKit[\"TableCell\"];\n TableFooter: DataTableUiKit[\"TableFooter\"];\n TableHead: DataTableUiKit[\"TableHead\"];\n TableHeader: DataTableUiKit[\"TableHeader\"];\n TableRow: DataTableUiKit[\"TableRow\"];\n tableScrollContainerRef: React.RefObject;\n tableScrollElement?: HTMLElement | null;\n totalRowCount?: number;\n uiClassNames: DataTableUiClassNames;\n viewportHeight?: number;\n virtualization?: DataTableProps[\"virtualization\"];\n virtualPaddingBottom: number;\n virtualPaddingTop: number;\n visibleLeafColumnCount: number;\n visibleLeafColumns: Array>;\n};\n\nexport function DataTableTablePanel({\n ariaDescribedBy,\n ariaLabelledBy,\n bodyRowComponents,\n cellSelection,\n cellSelectionEnabled,\n columnLayouts,\n columnGroupHeaderHeight,\n currentDensity,\n currentDetailExpanded,\n currentSorting = [],\n dir,\n DataTableEmptyState,\n dragAndDrop,\n draggedColumnIdRef,\n draftValues,\n editingRowId,\n editingContext,\n emptyNode,\n enableColumnReordering,\n enableColumnResizing,\n explicitCustomCellColumnIds,\n fillMinWidth,\n flexGrow,\n gridMode,\n gridPageSize,\n gridRowOffset,\n onGridActiveRowIndexChange,\n onCellSelectionChange,\n getColumnLayout,\n getRowClassName,\n getRowLoadingState,\n infiniteScroll,\n layoutMode,\n localSearchValue,\n onRowClick,\n primeColumnForResize,\n renderedRows,\n detailPanel,\n topPinnedRows,\n bottomPinnedRows,\n reorderColumn,\n resetColumnSize,\n resolvedLabels,\n rowsToRender,\n ScrollArea,\n ScrollBar,\n scrollbarVisibility,\n sentinelRef,\n setDraftValues,\n shouldRenderInitialLoading,\n stateOverlayNode,\n stickyHeader,\n stripedRows,\n summaryRows,\n table,\n tableClassName,\n tableContainerClassName,\n Table,\n TableBody,\n TableCell,\n TableFooter = \"tfoot\",\n TableHead,\n TableHeader,\n TableRow,\n tableScrollContainerRef,\n tableScrollElement,\n totalRowCount,\n uiClassNames,\n virtualPaddingBottom,\n virtualPaddingTop,\n visibleLeafColumnCount,\n visibleLeafColumns,\n}: DataTableTablePanelProps) {\n const selectionState: boolean | \"indeterminate\" =\n table.getIsAllPageRowsSelected()\n ? true\n : table.getIsSomePageRowsSelected()\n ? \"indeterminate\"\n : false;\n const filteredRows = table.getFilteredRowModel().rows;\n const summarySourceRows = React.useMemo(\n () =>\n summaryRows.length\n ? filteredRows.map((row) => row.original)\n : [],\n [filteredRows, summaryRows.length],\n );\n const headerRowCount = table.getHeaderGroups().length;\n const displayRowCount =\n topPinnedRows.length + renderedRows.length + bottomPinnedRows.length;\n const [activeCell, setActiveCell] = React.useState({ row: 0, column: 0 });\n const shouldRestoreGridFocusRef = React.useRef(false);\n const pointerSelectingRef = React.useRef(false);\n const gridRows = React.useMemo(\n () => [...topPinnedRows, ...renderedRows, ...bottomPinnedRows],\n [bottomPinnedRows, renderedRows, topPinnedRows],\n );\n const navigableGridColumnIndices = React.useMemo(\n () =>\n visibleLeafColumns.flatMap((column, index) =>\n column.id === \"__spacer__\" ? [] : [index],\n ),\n [visibleLeafColumns],\n );\n const getGridCoordinate = React.useCallback(\n (rowIndex: number, columnIndex: number) => {\n const row = gridRows[rowIndex];\n const column = visibleLeafColumns[columnIndex];\n return row &&\n column &&\n !isUtilityColumnId(column.id) &&\n column.id !== \"__spacer__\"\n ? { rowId: row.id, columnId: column.id }\n : undefined;\n },\n [gridRows, visibleLeafColumns],\n );\n const selectedBounds = React.useMemo(() => {\n if (!cellSelection) return undefined;\n const anchorRow = gridRows.findIndex((row) => row.id === cellSelection.anchor.rowId);\n const focusRow = gridRows.findIndex((row) => row.id === cellSelection.focus.rowId);\n const anchorColumn = visibleLeafColumns.findIndex(\n (column) => column.id === cellSelection.anchor.columnId,\n );\n const focusColumn = visibleLeafColumns.findIndex(\n (column) => column.id === cellSelection.focus.columnId,\n );\n if (anchorRow < 0 || focusRow < 0 || anchorColumn < 0 || focusColumn < 0) return undefined;\n return {\n firstRow: Math.min(anchorRow, focusRow),\n lastRow: Math.max(anchorRow, focusRow),\n firstColumn: Math.min(anchorColumn, focusColumn),\n lastColumn: Math.max(anchorColumn, focusColumn),\n };\n }, [cellSelection, gridRows, visibleLeafColumns]);\n const isGridCellSelected = React.useCallback(\n (rowIndex: number, columnIndex: number) =>\n Boolean(\n selectedBounds &&\n rowIndex >= selectedBounds.firstRow &&\n rowIndex <= selectedBounds.lastRow &&\n columnIndex >= selectedBounds.firstColumn &&\n columnIndex <= selectedBounds.lastColumn,\n ),\n [selectedBounds],\n );\n const handleGridCellFocus = React.useCallback(\n (cell: { row: number; column: number }) => {\n shouldRestoreGridFocusRef.current = true;\n setActiveCell(cell);\n },\n [],\n );\n const selectGridCell = React.useCallback(\n (rowIndex: number, columnIndex: number, extend: boolean) => {\n if (!cellSelectionEnabled) return;\n const focus = getGridCoordinate(rowIndex, columnIndex);\n if (!focus) return;\n const anchor =\n extend && cellSelection?.anchor\n ? cellSelection.anchor\n : focus;\n onCellSelectionChange({ anchor, focus });\n },\n [cellSelection, cellSelectionEnabled, getGridCoordinate, onCellSelectionChange],\n );\n const handleGridCellPointerDown = React.useCallback(\n (event: React.PointerEvent, rowIndex: number, columnIndex: number) => {\n if (!cellSelectionEnabled || event.button !== 0) return;\n // Keep native text/image dragging from taking ownership of the pointer\n // stream before the range reaches its destination cell.\n event.preventDefault();\n pointerSelectingRef.current = true;\n selectGridCell(rowIndex, columnIndex, event.shiftKey);\n },\n [cellSelectionEnabled, selectGridCell],\n );\n const handleGridCellPointerEnter = React.useCallback(\n (event: React.PointerEvent, rowIndex: number, columnIndex: number) => {\n if (!cellSelectionEnabled || !pointerSelectingRef.current || event.buttons !== 1) return;\n selectGridCell(rowIndex, columnIndex, true);\n },\n [cellSelectionEnabled, selectGridCell],\n );\n React.useEffect(() => {\n const stopSelecting = () => { pointerSelectingRef.current = false; };\n window.addEventListener(\"pointerup\", stopSelecting);\n return () => window.removeEventListener(\"pointerup\", stopSelecting);\n }, []);\n\n // Keep focus on the roving cell after sorting, filtering, or a virtual row\n // range changes. A missing target is normal while a virtualizer is rendering.\n React.useEffect(() => {\n if (!gridMode) return;\n onGridActiveRowIndexChange?.(activeCell.row);\n const frame = requestAnimationFrame(() => {\n const cells = tableScrollContainerRef.current?.querySelectorAll(\n '[data-dtp-grid-cell=\"true\"]',\n );\n const target = Array.from(cells ?? []).find(\n (cell) =>\n Number(cell.dataset.gridRowIndex) === activeCell.row &&\n Number(cell.dataset.gridColumnIndex) === activeCell.column,\n );\n if (target && shouldRestoreGridFocusRef.current) {\n target.focus();\n }\n });\n return () => cancelAnimationFrame(frame);\n }, [activeCell, gridMode, onGridActiveRowIndexChange, tableScrollContainerRef]);\n\n const moveGridFocus = React.useCallback(\n (event: React.KeyboardEvent, row: number, column: number) => {\n if (event.defaultPrevented || event.target !== event.currentTarget) return;\n const pageRows = Math.max(\n 1,\n gridPageSize ?? (\n Math.floor(\n (tableScrollElement?.clientHeight || 0) /\n Math.max(1, (tableScrollElement?.querySelector(\"tr\") as HTMLElement | null)?.offsetHeight || 48),\n ) || 10),\n );\n const lastRow = Math.max(0, displayRowCount - 1);\n const currentColumnPosition = Math.max(\n 0,\n navigableGridColumnIndices.indexOf(column),\n );\n const lastColumnPosition = Math.max(\n 0,\n navigableGridColumnIndices.length - 1,\n );\n let nextRow = row;\n let nextColumnPosition = currentColumnPosition;\n switch (event.key) {\n case \"ArrowUp\": nextRow--; break;\n case \"ArrowDown\": nextRow++; break;\n case \"ArrowLeft\": nextColumnPosition--; break;\n case \"ArrowRight\": nextColumnPosition++; break;\n case \"Home\":\n if (event.ctrlKey || event.metaKey) nextRow = 0;\n nextColumnPosition = 0;\n break;\n case \"End\":\n if (event.ctrlKey || event.metaKey) nextRow = lastRow;\n nextColumnPosition = lastColumnPosition;\n break;\n case \"PageUp\": nextRow -= pageRows; break;\n case \"PageDown\": nextRow += pageRows; break;\n default: return;\n }\n event.preventDefault();\n const nextCell = {\n row: Math.min(lastRow, Math.max(0, nextRow)),\n column:\n navigableGridColumnIndices[\n Math.min(\n lastColumnPosition,\n Math.max(0, nextColumnPosition),\n )\n ] ?? 0,\n };\n setActiveCell(nextCell);\n if (event.shiftKey && cellSelectionEnabled) {\n const focus = getGridCoordinate(nextCell.row, nextCell.column);\n const anchor =\n cellSelection?.anchor ?? getGridCoordinate(row, column) ?? focus;\n if (anchor && focus) onCellSelectionChange({ anchor, focus });\n }\n },\n [\n cellSelection,\n cellSelectionEnabled,\n displayRowCount,\n getGridCoordinate,\n gridPageSize,\n navigableGridColumnIndices,\n onCellSelectionChange,\n tableScrollElement,\n ],\n );\n const renderBodyRow = (\n row: Row,\n rowIndex: number,\n pinnedPosition?: Exclude,\n ) => {\n const originalRow = row.original;\n const isInitialLoadingRow = isDataTableLoadingRow(originalRow);\n const loadingState = isInitialLoadingRow\n ? { isLoading: true }\n : getRowLoadingState?.(originalRow, rowIndex);\n const resolvedLoadingState: DataTableRowLoadingState | undefined =\n typeof loadingState === \"boolean\"\n ? { isLoading: loadingState }\n : loadingState;\n const isDraggable = isInitialLoadingRow\n ? false\n : (dragAndDrop?.getRowDraggable?.(originalRow) ?? false);\n\n return (\n \n );\n };\n\n return (\n \n \n \n
\n \n \n {table.getVisibleLeafColumns().map((column) => {\n const layout = getColumnLayout(column.id);\n return ;\n })}\n \n \n {table.getHeaderGroups().map((headerGroup) => (\n \n {headerGroup.headers.map((header) => (\n column.id !== \"__spacer__\",\n )\n .findIndex(\n (column) =>\n column.id === header.column.id,\n ) + 1\n }\n />\n ))}\n \n ))}\n \n \n {topPinnedRows.length || renderedRows.length || bottomPinnedRows.length ? (\n <>\n {topPinnedRows.map((row, index) =>\n renderBodyRow(row, index, \"top\"),\n )}\n {virtualPaddingTop > 0 ? (\n \n \n \n ) : null}\n {rowsToRender.map(({ row, rowIndex }) =>\n renderBodyRow(row, rowIndex + topPinnedRows.length),\n )}\n {virtualPaddingBottom > 0 ? (\n \n \n \n ) : null}\n {bottomPinnedRows.map((row, index) =>\n renderBodyRow(\n row,\n topPinnedRows.length + renderedRows.length + index,\n \"bottom\",\n ),\n )}\n \n ) : (\n \n \n
\n {emptyNode ?? (\n \n )}\n
\n \n
\n )}\n
\n {summaryRows.length ? (\n \n {summaryRows.map((summaryRow, summaryIndex) => (\n \n {visibleLeafColumns.map((column, index) => {\n const layout = getColumnLayout(column.id);\n const content = layout.isSpacerColumn\n ? null\n : (summaryRow.cells[column.id] ??\n (index === 0 ? summaryRow.label : null));\n return (\n \n {typeof content === \"function\"\n ? content({\n rows: summarySourceRows,\n columnId: column.id,\n })\n : content}\n \n );\n })}\n \n ))}\n \n ) : null}\n \n
\n\n {infiniteScroll?.enabled &&\n renderedRows.length &&\n !shouldRenderInitialLoading ? (\n
\n
\n
\n ) : null}\n \n \n
\n {stateOverlayNode}\n \n );\n}\n\nfunction getHeaderLayout(\n header: Header,\n getColumnLayout: (columnId: string) => DataTableColumnLayout,\n) {\n const columnLayout = getColumnLayout(header.column.id);\n if (header.isPlaceholder || !header.subHeaders.length) {\n return columnLayout;\n }\n\n const leafLayouts = header\n .getLeafHeaders()\n .filter((leafHeader) => !leafHeader.subHeaders.length)\n .map((leafHeader) => getColumnLayout(leafHeader.column.id));\n const fixedSide = leafLayouts[0]?.fixedSide;\n\n if (\n !fixedSide ||\n !leafLayouts.every((layout) => layout.fixedSide === fixedSide)\n ) {\n return columnLayout;\n }\n\n const edgeLayout =\n fixedSide === \"left\" ? leafLayouts[0] : leafLayouts.at(-1);\n\n return {\n ...columnLayout,\n fixedSide,\n headerStyle: edgeLayout?.headerStyle\n ? {\n left: edgeLayout.headerStyle.left,\n right: edgeLayout.headerStyle.right,\n }\n : undefined,\n pinnedClassName: edgeLayout?.pinnedClassName,\n };\n}\n"]} \ No newline at end of file diff --git a/dist/chunk-YKVWP3UJ.js b/dist/chunk-YKVWP3UJ.js deleted file mode 100644 index cf5645f..0000000 --- a/dist/chunk-YKVWP3UJ.js +++ /dev/null @@ -1,2 +0,0 @@ -import {d,A,y,x,z,k}from'./chunk-YWMYYP3I.js';import {c,t,i}from'./chunk-CVR2ZXHQ.js';import {h,g,f}from'./chunk-7IWMFF7E.js';import {a}from'./chunk-XTVBESM5.js';import*as E from'react';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {flexRender}from'@tanstack/react-table';function mt({columns:e,editableRows:a,onError:s}){let[o,n]=E.useState(null),[u,g]=E.useState({}),T=E.useRef(u),[h,t]=E.useState({}),[I,c]=E.useState({}),[A,x]=E.useState(false),B=E.useMemo(()=>!Ka(u,h),[u,h]);E.useEffect(()=>{T.current=u;},[u]);let S=E.useCallback(()=>{n(null),g({}),c({}),t({});},[]),V=E.useCallback((H,b)=>{let k=a?.getInitialValues?.(H)??Aa(H,e);t({...k}),g(k),c({}),n(b);},[e,a]),_=E.useCallback(async H=>{if(!a)return false;x(true);let b={...T.current},k;try{let G=await a.validateRow?.(H,b),r=Ga(G);if(Object.keys(r).length>0)return c(r),!1;c({});let z=a.onOptimisticUpdate?.(H,b);return k=typeof z=="function"?z:void 0,await a.onSaveRow(H,b),a.onSaveSuccess?.(H,b),E.startTransition(S),!0}catch(G){try{k?.();}catch{}return a.onSaveError?.(G,H,b),s?.(G,H),false}finally{x(false);}},[S,a,s]),W=E.useCallback(H=>{c(b=>{if(!b[H]&&!b._row)return b;let k={...b};return delete k[H],delete k._row,k});},[]);return {cancelEditing:S,clearEditError:W,draftValues:u,editErrors:I,editingRowId:o,isEditDirty:B,isSavingEdit:A,saveEdit:_,setDraftValues:g,setEditingRowId:n,startEditingRow:V}}function Aa(e,a){return k(a).reduce((s,{column:o})=>("accessorKey"in o&&typeof o.accessorKey=="string"&&(s[o.accessorKey]=e[o.accessorKey]),s),{})}function pa(e,a,s,o,n){let{Checkbox:u,Input:g}=o,T=e.column.columnDef,h=T.meta,t="accessorKey"in T&&typeof T.accessorKey=="string"?T.accessorKey:e.column.id,I=a[t],c=n?.errors[t]??n?.errors[e.column.id]??n?.errors._row,A=S=>{n?.onValueChange(t),s(V=>({...V,[t]:S}));},x=S=>{S.key==="Escape"&&n?.cancelOnEscape?(S.preventDefault(),n.cancel()):S.key==="Enter"&&!S.shiftKey&&n?.commitOnEnter&&(S.preventDefault(),n.commit());};if(h?.renderEditCell)return h.renderEditCell({cell:e,row:e.row.original,value:e.getValue(),draftValue:I,error:c,isDirty:n?.isDirty??false,isPending:n?.isPending??false,setDraftValue:A});let B=za(h?.type,I);return typeof I=="boolean"?jsxs("div",{className:"min-w-0",children:[jsx(u,{"aria-invalid":!!c||void 0,checked:I,disabled:n?.isPending,onCheckedChange:S=>{A(S===true);},onKeyDown:x}),c?jsx("span",{className:"mt-1 block text-xs text-destructive",role:"alert",children:c}):null]}):jsxs("div",{className:"min-w-0",children:[jsx(g,{"aria-invalid":!!c||void 0,disabled:n?.isPending,type:B,value:h?.formatEditValue?h.formatEditValue(I,e):Ma(I,B),onChange:S=>{let V=S.target.value,_=h?.parseEditValue?h.parseEditValue(V,e):Va(V,B,I);A(_);},onKeyDown:x}),c?jsx("span",{className:"mt-1 block text-xs text-destructive",role:"alert",children:c}):null]})}function Ga(e){return e?typeof e=="string"?{_row:e}:e:{}}function Ka(e,a){let s=new Set([...Object.keys(e),...Object.keys(a)]);return Array.from(s).every(o=>Object.is(e[o],a[o]))}function za(e,a){return e==="numeric"||typeof a=="number"?"number":e==="date"||a instanceof Date?"datetime-local":"text"}function Ma(e,a="text"){return e==null?"":e instanceof Date?a==="datetime-local"?e.toISOString().slice(0,16):e.toISOString():typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="bigint"?String(e):""}function Va(e,a,s){return a==="number"?e===""?null:Number(e):a==="datetime-local"?e?s instanceof Date?new Date(e):e:null:e}var Ta=E.createContext(void 0);function Dt({children:e,measureRow:a}){return jsx(Ta.Provider,{value:a,children:e})}function Ca(){return E.useContext(Ta)}function ze(e,a$1,s){let o=e.column.columnDef,n=o.meta,u=e.getValue(),g=s?.hasCustomCell??false,T=g&&o.cell?flexRender(o.cell,e):void 0,h=va(T),t=Ua({context:e,useCustomOverflowDefaults:s?.useCustomOverflowDefaults??false,value:u});if(n?.type==="date"&&!g)return jsxs("div",{"data-dtp-slot":"data-table-cell-content","data-dtp-overflow":t,className:a(ya(t),"flex w-full min-w-0 items-center justify-end gap-2"),children:[jsx(i,{className:a("shrink-0",a$1?.mutedText??"opacity-70")}),jsx("span",{className:"min-w-0 truncate",children:Ba(u)})]});let I=T!=null&&T!==""?T:u==null||u===""?jsx("span",{className:a$1?.mutedText??"opacity-70",children:"-"}):Fa(u);return jsx("div",{"data-dtp-slot":"data-table-cell-content","data-dtp-overflow":t,className:a(ya(t),"w-full min-w-0 max-w-full",h&&"[&>*]:max-w-full [&>*]:min-w-0"),children:I})}function Ua({context:e,useCustomOverflowDefaults:a,value:s}){let o=e.column.columnDef,n=typeof o.meta?.overflow=="function"?o.meta.overflow({row:e.row.original,value:s}):o.meta?.overflow;return n||(a?"clip":"truncate")}function ya(e){switch(e){case "clip":return "block overflow-hidden whitespace-nowrap";case "wrap":return "block overflow-hidden whitespace-normal break-words";case "visible":return "block overflow-visible whitespace-normal";default:return "block overflow-hidden text-ellipsis whitespace-nowrap"}}function va(e){return e==null?false:E.isValidElement(e)||Array.isArray(e)||typeof e=="object"}function Ba(e){return typeof e=="number"?new Date(e*1e3).toLocaleString():typeof e=="string"&&e?e:"-"}function Fa(e){if(e instanceof Date)return e.toLocaleString();if(typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="bigint")return String(e);try{return JSON.stringify(e)}catch{return "-"}}function qa({columnLayouts:e,components:a$1,currentDensity:s,draftValues:o,editingContext:n,dragAndDrop:u,explicitCustomCellColumnIds:g$1,getRowClassName:T,groupToggleLabel:h$1,gridMode:t,gridRowAriaIndex:I,gridRowIndex:c,activeGridCell:A$1,cellSelectionEnabled:x,isGridCellSelected:B,onGridCellFocus:S,onGridCellKeyDown:V,onGridCellPointerDown:_,onGridCellPointerEnter:W,isDraggable:H,isDetailExpanded:b,isEditing:k,isExpanded:G,isInitialLoadingRow:r,isSelected:z,loadingState:M,onRowClick:j,pinnedPosition:d$1,originalRow:D,detailPanel:$,row:C,rowIndex:O,setDraftValues:ye,stripedRows:ce,uiClassNames:K,visibleCells:me,visibleLeafColumnCount:ae}){let{Checkbox:Oe,Input:X,Skeleton:le,TableCell:we,TableRow:Re}=a$1,J=Ca(),he=d$1?void 0:J,Ue=me.find(m=>!e.get(m.column.id)?.isUtilityColumn)?.column.id,Se=me.findIndex(m=>m.column.id==="__spacer__");return jsxs(E.Fragment,{children:[jsx(Re,{ref:he,"data-row-id":C.id,"data-index":he?O:void 0,"data-tree-depth":!r&&C.depth>0?C.depth:void 0,"data-dtp-slot":d$1?"data-table-pinned-row":"data-table-row","data-row-pinned":d$1,"data-row-grouped":C.getIsGrouped()||void 0,draggable:r?false:H,"data-loading":M?.isLoading||void 0,"data-row-index":r?void 0:O,"data-row-parity":ce&&!r?O%2===0?"odd":"even":void 0,"data-state":r?void 0:z?"selected":void 0,role:t?"row":void 0,"aria-rowindex":t?I:void 0,tabIndex:!t&&j&&!r?0:void 0,className:a(!r&&T?.(D,{row:D,rowId:C.id,rowIndex:O,isEditing:k,isExpanded:G,isLoading:!!M?.isLoading,isSelected:z,pinnedPosition:d$1??false}),K.row,d$1==="top"&&a("border-b-2",K.rowPinnedTop),d$1==="bottom"&&a("border-t-2",K.rowPinnedBottom),ce&&!r&&(O%2===0?K.rowOdd:K.rowEven),z&&!r&&K.rowSelected,j&&!r&&"cursor-pointer",r&&"pointer-events-none"),onClick:m=>{r||y(m.target,m.currentTarget)||t&&x||j?.({row:D,rowId:C.id});},onKeyDown:m=>{r||!j||m.key!=="Enter"&&m.key!==" "||y(m.target,m.currentTarget)||(m.preventDefault(),j({row:D,rowId:C.id}));},onDragStart:m=>{r||u?.onRowDragStart?.({row:D,rowId:C.id,event:m});},onDragEnd:m=>{r||u?.onRowDragEnd?.({row:D,rowId:C.id,event:m});},children:me.map((m,F)=>{let q=m.column.columnDef.meta,Q=m.getContext(),ve=m.getValue(),U=e.get(m.column.id),fe=U?.isSelectionColumn??false,Y=U?.isExpansionColumn??false,v=U?.isActionsColumn??false,P=U?.isSpacerColumn??false,Be=F+1-(Se>=0&&SeS({row:c,column:F}):void 0,onKeyDown:t&&!P?L=>{if(L.target!==L.currentTarget){L.key==="Escape"&&(L.preventDefault(),L.currentTarget.focus());return}V(L,c,F);}:void 0,onPointerDown:t&&x&&!U?.isUtilityColumn&&!P?L=>{y(L.target,L.currentTarget)||(L.currentTarget.focus(),_(L,c,F));}:void 0,onPointerEnter:t&&x&&!U?.isUtilityColumn&&!P?L=>{y(L.target,L.currentTarget)||W(L,c,F);}:void 0,className:a("border-b",A(s),K.cellBorder,te&&K.cellSelected,U?.utilityClassName,U?.isSpacerColumn&&"border-b-0 bg-transparent! p-0",U?.pinnedClassName,Fe,g(Q),q?.responsiveClassName,We),style:U?.cellStyle,children:jsx("div",{"data-row-click-ignore":fe||Y||v||P?"true":void 0,className:"min-w-0 max-w-full",style:C.depth>0&&m.column.id===Ue?{paddingInlineStart:`${C.depth}rem`}:void 0,children:P?null:M?.isLoading?q?.skeleton?.(Q)??M.skeleton??jsx(le,{className:a("h-4 rounded",q?.type==="numeric"?"ml-auto w-16":q?.type==="date"?"ml-auto w-28":"w-full")}):k&&m.column.id!=="__select__"&&m.column.id!=="__expand__"&&m.column.id!=="__actions__"?pa(Q,o,ye,{Checkbox:Oe,Input:X},n?{cancel:n.cancel,cancelOnEscape:n.cancelOnEscape,commit:()=>n.commit(D),commitOnEnter:n.commitOnEnter,errors:n.errors,isDirty:n.isDirty,isPending:n.isPending,onValueChange:n.clearError}:void 0):C.getIsGrouped()&&m.getIsPlaceholder()?null:C.getIsGrouped()&&m.getIsGrouped()?jsxs("button",{type:"button",className:"inline-flex min-w-0 items-center gap-1 text-left font-medium",onClick:()=>C.toggleExpanded(),"aria-expanded":C.getIsExpanded(),"aria-label":h$1,children:[jsx("span",{"aria-hidden":"true",children:ze(Q,K,{hasCustomCell:g$1.has(m.column.id),useCustomOverflowDefaults:g$1.has(m.column.id)})}),jsxs("span",{className:"shrink-0 opacity-70",children:["(",C.subRows.length,")"]})]}):C.getIsGrouped()&&m.getIsAggregated()?m.column.columnDef.aggregatedCell?flexRender(m.column.columnDef.aggregatedCell,Q):ze(Q,K,{hasCustomCell:false,useCustomOverflowDefaults:false}):ze(Q,K,{hasCustomCell:g$1.has(m.column.id)||fe||Y||v||P,useCustomOverflowDefaults:g$1.has(m.column.id)||fe||Y||v||P})})},m.id)})}),!r&&$&&b?jsx(Re,{"data-dtp-slot":"data-table-detail-panel-row","data-row-pinned":d$1,children:jsx(we,{colSpan:Math.max(1,ae),className:a("border-b",A(s),K.cellBorder),children:$.render({row:D,rowId:C.id,tableRow:C})})}):null]})}function $a(e,a){return e.row.id===a.row.id&&e.row.original===a.row.original&&e.rowIndex===a.rowIndex&&e.isSelected===a.isSelected&&e.isInitialLoadingRow===a.isInitialLoadingRow&&e.isEditing===a.isEditing&&(!e.isEditing||e.editingContext===a.editingContext)&&e.isExpanded===a.isExpanded&&e.isDraggable===a.isDraggable&&Xa(e.loadingState,a.loadingState)&&Ja(e.visibleCells,a.visibleCells)&&e.components===a.components&&Qa(e.columnLayouts,a.columnLayouts,a.visibleCells)&&e.currentDensity===a.currentDensity&&e.detailPanel===a.detailPanel&&e.isDetailExpanded===a.isDetailExpanded&&e.pinnedPosition===a.pinnedPosition&&e.onRowClick===a.onRowClick&&e.dragAndDrop===a.dragAndDrop&&e.getRowClassName===a.getRowClassName&&e.groupToggleLabel===a.groupToggleLabel&&e.gridMode===a.gridMode&&(!a.gridMode||e.gridRowAriaIndex===a.gridRowAriaIndex&&e.gridRowIndex===a.gridRowIndex&&e.activeGridCell.row===a.activeGridCell.row&&e.activeGridCell.column===a.activeGridCell.column&&e.cellSelectionEnabled===a.cellSelectionEnabled&&e.isGridCellSelected===a.isGridCellSelected&&e.onGridCellFocus===a.onGridCellFocus&&e.onGridCellKeyDown===a.onGridCellKeyDown&&e.onGridCellPointerDown===a.onGridCellPointerDown&&e.onGridCellPointerEnter===a.onGridCellPointerEnter)&&e.stripedRows===a.stripedRows&&e.uiClassNames===a.uiClassNames&&e.explicitCustomCellColumnIds===a.explicitCustomCellColumnIds&&(!e.isEditing||e.draftValues===a.draftValues)}function Xa(e,a){return e?.isLoading===a?.isLoading&&e?.skeleton===a?.skeleton}function Ja(e,a){return e.length===a.length&&e.every((s,o)=>{let n=a[o];return n?.id===s.id&&n.column.id===s.column.id})}function Qa(e,a,s){return s.every(o=>{let n=e.get(o.column.id),u=a.get(o.column.id);return n?.fixedSide===u?.fixedSide&&n?.isActionsColumn===u?.isActionsColumn&&n?.isExpansionColumn===u?.isExpansionColumn&&n?.isSelectionColumn===u?.isSelectionColumn&&n?.isSpacerColumn===u?.isSpacerColumn&&n?.isUtilityColumn===u?.isUtilityColumn&&n?.pinnedClassName===u?.pinnedClassName&&n?.utilityClassName===u?.utilityClassName&&Ya(n?.cellStyle,u?.cellStyle)})}function Ya(e,a){return e?.width===a?.width&&e?.minWidth===a?.minWidth&&e?.maxWidth===a?.maxWidth&&e?.left===a?.left&&e?.right===a?.right}var Ra=E.memo(qa,$a);function Za({columnGroupHeaderHeight:e,currentDensity:a$1,currentSorting:s,dir:o,draggedColumnIdRef:n,enableColumnReordering:u,enableColumnResizing:g,gridColumnIndex:T,gridMode:h$1,header:t$1,headerGroupHeaders:I,layout:c$1,primeColumnForResize:A,reorderColumn:x$1,resizeColumnLabel:B,resetColumnSize:S,TableHead:V,uiClassNames:_}){let W=t$1.column.columnDef.meta,H=E.useId(),b=!t$1.isPlaceholder&&t$1.subHeaders.length>0,k=b?t$1.column.columnDef:void 0,G=t$1.column.getCanSort(),r=t$1.column.getIsSorted(),z$1=s.findIndex(d=>d.id===t$1.column.id),M=u&&!t$1.isPlaceholder&&!b&&!c$1.isUtilityColumn&&!c$1.isSpacerColumn,j=h(W?.hideOn);return jsxs(V,{colSpan:t$1.colSpan,scope:t$1.isPlaceholder||c$1.isSpacerColumn?void 0:b?"colgroup":"col",role:h$1?c$1.isSpacerColumn?"presentation":"columnheader":void 0,"aria-colindex":h$1&&!c$1.isSpacerColumn?T:void 0,"aria-hidden":t$1.isPlaceholder||c$1.isSpacerColumn||void 0,"aria-description":b?k?.description:void 0,"aria-labelledby":!t$1.isPlaceholder&&!c$1.isUtilityColumn&&!c$1.isSpacerColumn?H:void 0,"data-column-id":t$1.column.id,"data-column-group-id":b?k?.id:void 0,"data-header-depth":t$1.depth,"data-dtp-slot":b?"data-table-column-group-header":"data-table-column-header",className:a("relative border-b",z(a$1),b&&_.columnGroupHeader,c$1.utilityClassName,c$1.isSpacerColumn&&"border-b-0 bg-transparent! p-0",c$1.pinnedClassName,j,f(t$1.getContext()),W?.headerClassName,b&&k?.headerClassName,W?.responsiveClassName),style:{...W?.headerStyle,...b?k?.headerStyle:void 0,...b&&(k?.headerHeight??e)!==void 0?{height:k?.headerHeight??e}:void 0,...c$1.headerStyle},title:b?k?.description:void 0,"aria-sort":r==="asc"?"ascending":r==="desc"?"descending":G?"none":void 0,draggable:M,tabIndex:M&&!G&&!(g&&t$1.column.getCanResize())?0:void 0,onDragStart:M?d=>{n.current=t$1.column.id,d.dataTransfer.effectAllowed="move";}:void 0,onDragOver:M?d=>{d.preventDefault(),d.dataTransfer.dropEffect="move";}:void 0,onDrop:M?d=>{d.preventDefault();let D=n.current;n.current=null,D&&x$1(D,t$1.column.id);}:void 0,onKeyDown:M?d=>{if(!d.altKey||d.key!=="ArrowLeft"&&d.key!=="ArrowRight")return;d.preventDefault();let D=I.filter(O=>!x(O.column.id)&&O.column.id!=="__spacer__"),$=D.findIndex(O=>O.column.id===t$1.column.id),C=D[d.key==="ArrowLeft"!=(o==="rtl")?$-1:$+1];C&&x$1(t$1.column.id,C.column.id);}:void 0,children:[t$1.isPlaceholder?null:G?jsxs("button",{type:"button",className:a("flex w-full items-center gap-2 font-medium",f(t$1.getContext())),onClick:t$1.column.getToggleSortingHandler(),children:[jsx("span",{id:H,className:"truncate",children:flexRender(t$1.column.columnDef.header,t$1.getContext())}),r?jsxs(Fragment,{children:[jsx(c,{className:a("size-4 shrink-0 transition-transform",r==="desc"?"rotate-0":"rotate-180")}),s.length>1&&z$1>=0?jsx("span",{className:"inline-flex size-4 shrink-0 items-center justify-center rounded-full text-[10px] leading-none",children:z$1+1}):null]}):jsx(t,{className:a("size-4 shrink-0",_.headerSortIcon??"opacity-70")})]}):c$1.isUtilityColumn||c$1.isSpacerColumn?flexRender(t$1.column.columnDef.header,t$1.getContext()):jsx("span",{id:H,children:flexRender(t$1.column.columnDef.header,t$1.getContext())}),g&&!t$1.isPlaceholder&&t$1.column.getCanResize()?jsx("div",{"aria-label":B,"aria-orientation":"vertical","aria-valuemax":tt(t$1),"aria-valuemin":at(t$1),"aria-valuenow":Math.round(t$1.getSize()),role:"separator",tabIndex:0,onDoubleClick:()=>{for(let d of ie(t$1))S(d.column.id);},onMouseDown:d=>{for(let D of ie(t$1))A(D.column.id,D.getSize());t$1.getResizeHandler()(d);},onTouchStart:d=>{for(let D of ie(t$1))A(D.column.id,D.getSize());t$1.getResizeHandler()(d);},onKeyDown:d=>{if(d.altKey)return;if(d.key==="Home"){d.preventDefault();for(let $ of ie(t$1))S($.column.id);return}if(d.key!=="ArrowLeft"&&d.key!=="ArrowRight")return;d.preventDefault(),d.stopPropagation();let D=d.key==="ArrowRight"!=(o==="rtl");nt(t$1,(D?1:-1)*(d.shiftKey?25:10));},className:a("absolute inset-y-0 z-50 h-full w-3 cursor-col-resize touch-none select-none ltr:right-0 ltr:translate-x-1/2 rtl:left-0 rtl:-translate-x-1/2 after:absolute after:top-0 after:left-1/2 after:h-full after:w-px after:-translate-x-1/2",_.resizeHandle??"after:bg-current after:opacity-20 hover:after:opacity-70",t$1.column.getIsResizing()&&(_.resizeHandleActive??"after:opacity-100"))}):null]},t$1.id)}function et(e,a){return e.header.id===a.header.id&&e.header.column.id===a.header.column.id&&e.header.column.columnDef===a.header.column.columnDef&&e.header.colSpan===a.header.colSpan&&e.header.isPlaceholder===a.header.isPlaceholder&<(e.header,a.header)&&e.currentDensity===a.currentDensity&&e.columnGroupHeaderHeight===a.columnGroupHeaderHeight&&e.dir===a.dir&&e.enableColumnReordering===a.enableColumnReordering&&e.enableColumnResizing===a.enableColumnResizing&&e.gridMode===a.gridMode&&e.gridColumnIndex===a.gridColumnIndex&&e.TableHead===a.TableHead&&e.uiClassNames===a.uiClassNames&&e.draggedColumnIdRef===a.draggedColumnIdRef&&e.primeColumnForResize===a.primeColumnForResize&&e.reorderColumn===a.reorderColumn&&e.resizeColumnLabel===a.resizeColumnLabel&&e.resetColumnSize===a.resetColumnSize&&e.selectionState===a.selectionState&&ot(e.currentSorting,a.currentSorting)&&rt(e.headerGroupHeaders,a.headerGroupHeaders)&&it(e.layout,a.layout)}function ie(e){return e.subHeaders.length?e.getLeafHeaders().filter(a=>!a.subHeaders.length):[e]}function at(e){return ie(e).reduce((a,s)=>a+(s.column.columnDef.minSize??20),0)}function tt(e){return ie(e).reduce((a,s)=>a+(s.column.columnDef.maxSize??Number.MAX_SAFE_INTEGER),0)}function nt(e,a){let s=ie(e),o=a/s.length;e.getContext().table.setColumnSizing(n=>{let u={...n};for(let g of s){let T=g.column,h=T.columnDef.minSize??20,t=T.columnDef.maxSize??Number.MAX_SAFE_INTEGER;u[T.id]=Math.min(t,Math.max(h,T.getSize()+o));}return u});}function lt(e,a){return e.subHeaders.length===a.subHeaders.length&&e.subHeaders.every((s,o)=>a.subHeaders[o]?.id===s.id)}function ot(e,a){return e.length===a.length&&e.every((s,o)=>{let n=a[o];return n?.id===s.id&&n.desc===s.desc})}function rt(e,a){return e.length===a.length&&e.every((s,o)=>a[o]?.id===s.id)}function it(e,a){return e.fixedSide===a.fixedSide&&e.isSpacerColumn===a.isSpacerColumn&&e.isUtilityColumn===a.isUtilityColumn&&e.pinnedClassName===a.pinnedClassName&&e.utilityClassName===a.utilityClassName&&e.headerStyle?.width===a.headerStyle?.width&&e.headerStyle?.minWidth===a.headerStyle?.minWidth&&e.headerStyle?.maxWidth===a.headerStyle?.maxWidth&&e.headerStyle?.left===a.headerStyle?.left&&e.headerStyle?.right===a.headerStyle?.right}var ha=E.memo(Za,et);function Bt({ariaDescribedBy:e,ariaLabelledBy:a$1,bodyRowComponents:s,cellSelection:o,cellSelectionEnabled:n,columnLayouts:u,columnGroupHeaderHeight:g,currentDensity:T,currentDetailExpanded:h,currentSorting:t=[],dir:I,DataTableEmptyState:c,dragAndDrop:A,draggedColumnIdRef:x$1,draftValues:B,editingRowId:S,editingContext:V,emptyNode:_,enableColumnReordering:W,enableColumnResizing:H,explicitCustomCellColumnIds:b,fillMinWidth:k,flexGrow:G,gridMode:r,gridPageSize:z,gridRowOffset:M,onGridActiveRowIndexChange:j,onCellSelectionChange:d$1,getColumnLayout:D,getRowClassName:$,getRowLoadingState:C,infiniteScroll:O,layoutMode:ye,localSearchValue:ce,onRowClick:K,primeColumnForResize:me,renderedRows:ae,detailPanel:Oe,topPinnedRows:X,bottomPinnedRows:le,reorderColumn:we,resetColumnSize:Re,resolvedLabels:J,rowsToRender:he,ScrollArea:Ue,ScrollBar:Se,scrollbarVisibility:m,sentinelRef:F,setDraftValues:q,shouldRenderInitialLoading:Q,stateOverlayNode:ve,stickyHeader:U,stripedRows:fe,summaryRows:Y,table:v,tableClassName:P,tableContainerClassName:Be,Table:Fe,TableBody:We,TableCell:te,TableFooter:L="tfoot",TableHead:Sa,TableHeader:ka,TableRow:be,tableScrollContainerRef:je,tableScrollElement:qe,totalRowCount:na,uiClassNames:oe,virtualPaddingBottom:la,virtualPaddingTop:oa,visibleLeafColumnCount:ke,visibleLeafColumns:ne}){let Ea=v.getIsAllPageRowsSelected()?true:v.getIsSomePageRowsSelected()?"indeterminate":false,ra=v.getFilteredRowModel().rows,Ha=E.useMemo(()=>Y.length?ra.map(l=>l.original):[],[ra,Y.length]),Ee=v.getHeaderGroups().length,He=X.length+ae.length+le.length,[De,ia]=E.useState({row:0,column:0}),sa=E.useRef(false),$e=E.useRef(false),ge=E.useMemo(()=>[...X,...ae,...le],[le,ae,X]),se=E.useMemo(()=>ne.flatMap((l,i)=>l.id==="__spacer__"?[]:[i]),[ne]),pe=E.useCallback((l,i)=>{let f=ge[l],p=ne[i];return f&&p&&!x(p.id)&&p.id!=="__spacer__"?{rowId:f.id,columnId:p.id}:void 0},[ge,ne]),de=E.useMemo(()=>{if(!o)return;let l=ge.findIndex(y=>y.id===o.anchor.rowId),i=ge.findIndex(y=>y.id===o.focus.rowId),f=ne.findIndex(y=>y.id===o.anchor.columnId),p=ne.findIndex(y=>y.id===o.focus.columnId);if(!(l<0||i<0||f<0||p<0))return {firstRow:Math.min(l,i),lastRow:Math.max(l,i),firstColumn:Math.min(f,p),lastColumn:Math.max(f,p)}},[o,ge,ne]),Pa=E.useCallback((l,i)=>!!(de&&l>=de.firstRow&&l<=de.lastRow&&i>=de.firstColumn&&i<=de.lastColumn),[de]),Na=E.useCallback(l=>{sa.current=true,ia(l);},[]),Pe=E.useCallback((l,i,f)=>{if(!n)return;let p=pe(l,i);if(!p)return;let y=f&&o?.anchor?o.anchor:p;d$1({anchor:y,focus:p});},[o,n,pe,d$1]),Ia=E.useCallback((l,i,f)=>{!n||l.button!==0||(l.preventDefault(),$e.current=true,Pe(i,f,l.shiftKey));},[n,Pe]),La=E.useCallback((l,i,f)=>{!n||!$e.current||l.buttons!==1||Pe(i,f,true);},[n,Pe]);E.useEffect(()=>{let l=()=>{$e.current=false;};return window.addEventListener("pointerup",l),()=>window.removeEventListener("pointerup",l)},[]),E.useEffect(()=>{if(!r)return;j?.(De.row);let l=requestAnimationFrame(()=>{let i=je.current?.querySelectorAll('[data-dtp-grid-cell="true"]'),f=Array.from(i??[]).find(p=>Number(p.dataset.gridRowIndex)===De.row&&Number(p.dataset.gridColumnIndex)===De.column);f&&sa.current&&f.focus();});return ()=>cancelAnimationFrame(l)},[De,r,j,je]);let xa=E.useCallback((l,i,f)=>{if(l.defaultPrevented||l.target!==l.currentTarget)return;let p=Math.max(1,z??(Math.floor((qe?.clientHeight||0)/Math.max(1,qe?.querySelector("tr")?.offsetHeight||48))||10)),y=Math.max(0,He-1),Z=Math.max(0,se.indexOf(f)),Ne=Math.max(0,se.length-1),ee=i,Te=Z;switch(l.key){case "ArrowUp":ee--;break;case "ArrowDown":ee++;break;case "ArrowLeft":Te--;break;case "ArrowRight":Te++;break;case "Home":(l.ctrlKey||l.metaKey)&&(ee=0),Te=0;break;case "End":(l.ctrlKey||l.metaKey)&&(ee=y),Te=Ne;break;case "PageUp":ee-=p;break;case "PageDown":ee+=p;break;default:return}l.preventDefault();let Je={row:Math.min(y,Math.max(0,ee)),column:se[Math.min(Ne,Math.max(0,Te))]??0};if(ia(Je),l.shiftKey&&n){let Qe=pe(Je.row,Je.column),da=o?.anchor??pe(i,f)??Qe;da&&Qe&&d$1({anchor:da,focus:Qe});}},[o,n,He,pe,z,se,d$1,qe]),Xe=(l,i,f)=>{let p=l.original,y=d(p),Z=y?{isLoading:true}:C?.(p,i),Ne=typeof Z=="boolean"?{isLoading:Z}:Z,ee=y?false:A?.getRowDraggable?.(p)??false;return jsx(Ra,{columnLayouts:u,components:s,currentDensity:T,draftValues:B,editingContext:V,dragAndDrop:A,explicitCustomCellColumnIds:b,getRowClassName:$,groupToggleLabel:l.getIsExpanded()?J.collapseRow:J.expandRow,isDraggable:ee,isDetailExpanded:h===true||!!h[l.id],isEditing:S===l.id,isExpanded:l.getIsExpanded(),isInitialLoadingRow:y,isSelected:l.getIsSelected(),loadingState:Ne,onRowClick:K,originalRow:p,pinnedPosition:f,detailPanel:Oe,row:l,rowIndex:i,setDraftValues:q,stripedRows:fe,uiClassNames:oe,visibleCells:l.getVisibleCells(),visibleLeafColumnCount:ke,gridMode:r,gridRowIndex:i,gridRowAriaIndex:Ee+M+i+1,activeGridCell:De,cellSelectionEnabled:n,isGridCellSelected:Pa,onGridCellFocus:Na,onGridCellKeyDown:xa,onGridCellPointerDown:Ia,onGridCellPointerEnter:La},`${f??"center"}-${l.id}`)};return jsxs("div",{"data-dtp-slot":"data-table-table-shell",className:a("relative box-border border-2 border-transparent transition-colors",G?"flex min-h-0 flex-1 flex-col":"h-full",A?.isDragging&&(oe.dragActive??"rounded-md border-dashed")),children:[jsx("div",{ref:je,className:a(G?"flex min-h-0 flex-1 flex-col":"h-full"),children:jsxs(Ue,{type:m,className:a("rounded-md border",G?"min-h-0 flex-1":"h-full",oe.tableContainer,oe.tableScrollArea,Be),children:[jsx("div",{className:"min-h-full",children:jsxs(Fe,{"aria-describedby":e,"aria-labelledby":a$1,role:r?"grid":void 0,"aria-colcount":r?se.length:void 0,"aria-rowcount":r?Ee+(na??He)+Y.length:void 0,className:a("w-full table-fixed border-separate border-spacing-0",P),style:{minWidth:ye==="fill"&&k||void 0,width:ye==="fit"?v.getTotalSize():"100%"},children:[jsx("colgroup",{children:v.getVisibleLeafColumns().map(l=>{let i=D(l.id);return jsx("col",{style:i.colStyle},l.id)})}),jsx(ka,{role:r?"rowgroup":void 0,className:a(U?oe.tableStickyHeader??"sticky top-0 z-30 backdrop-blur":void 0),children:v.getHeaderGroups().map(l=>jsx(be,{role:r?"row":void 0,"aria-rowindex":r?l.depth+1:void 0,children:l.headers.map(i=>jsx(ha,{columnGroupHeaderHeight:g,currentDensity:T,currentSorting:t,dir:I,draggedColumnIdRef:x$1,enableColumnReordering:W,enableColumnResizing:H,header:i,headerGroupHeaders:l.headers,layout:dt(i,D),primeColumnForResize:me,reorderColumn:we,resizeColumnLabel:J.resizeColumn(typeof i.column.columnDef.header=="string"?i.column.columnDef.header:i.column.id),resetColumnSize:Re,selectionState:i.column.id==="__select__"?Ea:void 0,TableHead:Sa,uiClassNames:oe,gridMode:r,gridColumnIndex:i.isPlaceholder||i.subHeaders.length||i.column.id==="__spacer__"?void 0:v.getVisibleLeafColumns().filter(f=>f.id!=="__spacer__").findIndex(f=>f.id===i.column.id)+1},i.id))},l.id))}),jsx(We,{role:r?"rowgroup":void 0,children:X.length||ae.length||le.length?jsxs(Fragment,{children:[X.map((l,i)=>Xe(l,i,"top")),oa>0?jsx(be,{"aria-hidden":"true",role:r?"presentation":void 0,children:jsx(te,{colSpan:Math.max(1,ke),className:"border-b-0 p-0",style:{height:oa}})}):null,he.map(({row:l,rowIndex:i})=>Xe(l,i+X.length)),la>0?jsx(be,{"aria-hidden":"true",role:r?"presentation":void 0,children:jsx(te,{colSpan:Math.max(1,ke),className:"border-b-0 p-0",style:{height:la}})}):null,le.map((l,i)=>Xe(l,X.length+ae.length+i,"bottom"))]}):jsx(be,{role:r?"row":void 0,"aria-rowindex":r?Ee+1:void 0,children:jsx(te,{role:r?"gridcell":void 0,"aria-colindex":r?1:void 0,colSpan:Math.max(1,ke),className:"h-full grow",children:jsx("div",{className:"flex h-full min-h-full w-full grow items-center justify-center",children:_??jsx(c,{title:ce?J.noMatchingRowsTitle:J.noRowsTitle,description:ce?J.noMatchingRowsDescription:J.noRowsDescription})})})})}),Y.length?jsx(L,{role:r?"rowgroup":void 0,children:Y.map((l,i)=>jsx(be,{role:r?"row":void 0,"aria-rowindex":r?Ee+(na??He)+i+1:void 0,children:ne.map((f,p)=>{let y=D(f.id),Z=y.isSpacerColumn?null:l.cells[f.id]??(p===0?l.label:null);return jsx(te,{"data-column-id":f.id,role:r?y.isSpacerColumn?"presentation":"gridcell":void 0,"aria-colindex":r&&!y.isSpacerColumn?se.indexOf(p)+1:void 0,"aria-hidden":y.isSpacerColumn||void 0,className:a(y.isSpacerColumn?"border-b-0 bg-transparent! p-0":"border-b font-medium",!y.isSpacerColumn&&oe.cellBorder),style:y.cellStyle,children:typeof Z=="function"?Z({rows:Ha,columnId:f.id}):Z},`${l.key}-${f.id}`)})},l.key))}):null]})}),O?.enabled&&ae.length&&!Q?jsx("div",{className:"px-4 pb-4",children:jsx("div",{ref:F,className:"h-4 w-full"})}):null,jsx(Se,{orientation:"horizontal"})]})}),ve]})}function dt(e,a){let s=a(e.column.id);if(e.isPlaceholder||!e.subHeaders.length)return s;let o=e.getLeafHeaders().filter(g=>!g.subHeaders.length).map(g=>a(g.column.id)),n=o[0]?.fixedSide;if(!n||!o.every(g=>g.fixedSide===n))return s;let u=n==="left"?o[0]:o.at(-1);return {...s,fixedSide:n,headerStyle:u?.headerStyle?{left:u.headerStyle.left,right:u.headerStyle.right}:void 0,pinnedClassName:u?.pinnedClassName}}export{mt as a,Dt as b,Ra as c,ha as d,Bt as e};//# sourceMappingURL=chunk-YKVWP3UJ.js.map -//# sourceMappingURL=chunk-YKVWP3UJ.js.map \ No newline at end of file diff --git a/dist/chunk-YKVWP3UJ.js.map b/dist/chunk-YKVWP3UJ.js.map deleted file mode 100644 index 8ba306d..0000000 --- a/dist/chunk-YKVWP3UJ.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/core/data-table/use-row-editing.tsx","../src/core/data-table/data-table-virtual-row-measurement.tsx","../src/core/data-table/data-table-cell-content.tsx","../src/core/data-table/data-table-body-row.tsx","../src/core/data-table/data-table-header-cell.tsx","../src/core/data-table/data-table-table-panel.tsx"],"names":["useRowEditing","columns","editableRows","onError","editingRowId","setEditingRowId","N","draftValues","setDraftValues","draftValuesRef","originalDraftValues","setOriginalDraftValues","editErrors","setEditErrors","isSavingEdit","setIsSavingEdit","isEditDirty","areDraftValuesEqual","cancelEditing","startEditingRow","row","rowId","initialValues","defaultDraftValues","saveEdit","draftSnapshot","rollback","validation","validationErrors","normalizeEditValidationErrors","optimisticResult","error","clearEditError","columnId","current","next","getDataTableLeafColumns","draft","column","renderEditableCell","context","components","editing","Checkbox","Input","meta","accessorKey","draftValue","setDraftValue","value","handleKeyDown","event","inputType","getEditableInputType","jsxs","jsx","checked","getEditableInputValue","rawValue","parsedValue","parseEditableInputValue","left","right","keys","key","type","previousValue","DataTableVirtualRowMeasurementContext","Ge","DataTableVirtualRowMeasurementProvider","children","measureRow","useDataTableVirtualRowMeasurement","renderDataTableCellContent","classNames","options","hasCustomCell","renderedCellContent","flexRender","hasComplexRenderedContent","isComplexRenderedCellContent","resolvedOverflow","resolveDataTableCellOverflow","cn","getCellOverflowClassName","IconClock","formatDateValue","content","formatCellValue","useCustomOverflowDefaults","overflow","wa","DataTableBodyRowInner","columnLayouts","currentDensity","editingContext","dragAndDrop","explicitCustomCellColumnIds","getRowClassName","groupToggleLabel","gridMode","gridRowAriaIndex","gridRowIndex","activeGridCell","cellSelectionEnabled","isGridCellSelected","onGridCellFocus","onGridCellKeyDown","onGridCellPointerDown","onGridCellPointerEnter","isDraggable","isDetailExpanded","isEditing","isExpanded","isInitialLoadingRow","isSelected","loadingState","onRowClick","pinnedPosition","originalRow","detailPanel","rowIndex","stripedRows","uiClassNames","visibleCells","visibleLeafColumnCount","Skeleton","TableCell","TableRow","virtualRowMeasurement","measureElement","firstDataColumnId","cell","spacerColumnIndex","Me","isDataTableInteractiveTarget","columnIndex","cellContext","layout","isSelectionColumn","isExpansionColumn","isActionsColumn","isSpacerColumn","gridColumnAriaIndex","hideClassName","hideOnClassName","cellClassName","isDataTableLoadingRow","isCellSelected","getDensityCellClassName","cellAlignClassName","areDataTableBodyRowsEqual","previous","sameLoadingState","sameVisibleCells","sameColumnLayouts","index","nextCell","cells","previousLayout","nextLayout","sameCellStyle","DataTableBodyRow","DataTableHeaderCellInner","columnGroupHeaderHeight","currentSorting","dir","draggedColumnIdRef","enableColumnReordering","enableColumnResizing","gridColumnIndex","header","headerGroupHeaders","primeColumnForResize","reorderColumn","resizeColumnLabel","resetColumnSize","TableHead","headerContentId","Ve","isColumnGroup","groupDefinition","canSort","sortingState","sortingIndex","sort","canReorderColumn","getDensityHeaderClassName","headerAlignClassName","sourceColumnId","headers","item","isUtilityColumnId","currentIndex","target","Fragment","IconChevronDown","IconSelector","getHeaderMaximumSize","getHeaderMinimumSize","leafHeader","getResizableLeafHeaders","grows","resizeHeaderBy","areDataTableHeaderCellsEqual","sameSubHeaders","sameSorting","sameHeaderGroupHeaders","sameHeaderLayout","total","delta","leafHeaders","deltaPerLeaf","minimum","maximum","nextSort","DataTableHeaderCell","DataTableTablePanel","ariaDescribedBy","ariaLabelledBy","bodyRowComponents","cellSelection","currentDetailExpanded","DataTableEmptyState","emptyNode","fillMinWidth","flexGrow","gridPageSize","gridRowOffset","onGridActiveRowIndexChange","onCellSelectionChange","getColumnLayout","getRowLoadingState","infiniteScroll","layoutMode","localSearchValue","renderedRows","topPinnedRows","bottomPinnedRows","resolvedLabels","rowsToRender","ScrollArea","ScrollBar","scrollbarVisibility","sentinelRef","shouldRenderInitialLoading","stateOverlayNode","stickyHeader","summaryRows","table","tableClassName","tableContainerClassName","Table","TableBody","TableFooter","TableHeader","tableScrollContainerRef","tableScrollElement","totalRowCount","virtualPaddingBottom","virtualPaddingTop","visibleLeafColumns","selectionState","filteredRows","summarySourceRows","headerRowCount","displayRowCount","activeCell","setActiveCell","shouldRestoreGridFocusRef","pointerSelectingRef","gridRows","navigableGridColumnIndices","getGridCoordinate","selectedBounds","anchorRow","focusRow","anchorColumn","focusColumn","handleGridCellFocus","selectGridCell","extend","focus","anchor","handleGridCellPointerDown","handleGridCellPointerEnter","stopSelecting","frame","moveGridFocus","pageRows","lastRow","currentColumnPosition","lastColumnPosition","nextRow","nextColumnPosition","renderBodyRow","resolvedLoadingState","headerGroup","getHeaderLayout","summaryRow","summaryIndex","columnLayout","leafLayouts","fixedSide","edgeLayout"],"mappings":"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","file":"chunk-YKVWP3UJ.js","sourcesContent":["import * as React from \"react\";\nimport type {\n DataTableColumnDef,\n DataTableColumnType,\n DataTableEditableRowsConfig,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { getDataTableLeafColumns } from \"./data-table-utils\";\nimport type { DataTableTanStackCellContext as CellContext } from \"./tanstack-v9\";\n\nexport function useRowEditing({\n columns,\n editableRows,\n onError,\n}: {\n columns: Array>;\n editableRows: DataTableEditableRowsConfig | undefined;\n onError?: (error: unknown, row: TData) => void;\n}) {\n const [editingRowId, setEditingRowId] = React.useState(null);\n const [draftValues, setDraftValues] = React.useState<\n Record\n >({});\n const draftValuesRef = React.useRef(draftValues);\n const [originalDraftValues, setOriginalDraftValues] = React.useState<\n Record\n >({});\n const [editErrors, setEditErrors] = React.useState>(\n {},\n );\n const [isSavingEdit, setIsSavingEdit] = React.useState(false);\n const isEditDirty = React.useMemo(\n () => !areDraftValuesEqual(draftValues, originalDraftValues),\n [draftValues, originalDraftValues],\n );\n\n React.useEffect(() => {\n draftValuesRef.current = draftValues;\n }, [draftValues]);\n\n const cancelEditing = React.useCallback(() => {\n setEditingRowId(null);\n setDraftValues({});\n setEditErrors({});\n setOriginalDraftValues({});\n }, []);\n\n const startEditingRow = React.useCallback(\n (row: TData, rowId: string) => {\n const initialValues =\n editableRows?.getInitialValues?.(row) ??\n defaultDraftValues(row, columns);\n setOriginalDraftValues({ ...initialValues });\n setDraftValues(initialValues);\n setEditErrors({});\n setEditingRowId(rowId);\n },\n [columns, editableRows],\n );\n\n const saveEdit = React.useCallback(\n async (row: TData) => {\n if (!editableRows) {\n return false;\n }\n\n setIsSavingEdit(true);\n const draftSnapshot = { ...draftValuesRef.current };\n let rollback: (() => void) | undefined;\n try {\n const validation = await editableRows.validateRow?.(\n row,\n draftSnapshot,\n );\n const validationErrors = normalizeEditValidationErrors(validation);\n if (Object.keys(validationErrors).length > 0) {\n setEditErrors(validationErrors);\n return false;\n }\n\n setEditErrors({});\n const optimisticResult = editableRows.onOptimisticUpdate?.(\n row,\n draftSnapshot,\n );\n rollback =\n typeof optimisticResult === \"function\"\n ? optimisticResult\n : undefined;\n await editableRows.onSaveRow(row, draftSnapshot);\n editableRows.onSaveSuccess?.(row, draftSnapshot);\n React.startTransition(cancelEditing);\n return true;\n } catch (error) {\n try {\n rollback?.();\n } catch {\n // Preserve the original save error for the public error callbacks.\n }\n editableRows.onSaveError?.(error, row, draftSnapshot);\n onError?.(error, row);\n return false;\n } finally {\n setIsSavingEdit(false);\n }\n },\n [cancelEditing, editableRows, onError],\n );\n const clearEditError = React.useCallback((columnId: string) => {\n setEditErrors((current) => {\n if (!current[columnId] && !current._row) {\n return current;\n }\n const next = { ...current };\n delete next[columnId];\n delete next._row;\n return next;\n });\n }, []);\n\n return {\n cancelEditing,\n clearEditError,\n draftValues,\n editErrors,\n editingRowId,\n isEditDirty,\n isSavingEdit,\n saveEdit,\n setDraftValues,\n setEditingRowId,\n startEditingRow,\n };\n}\n\nfunction defaultDraftValues(\n row: TData,\n columns: Array>,\n) {\n return getDataTableLeafColumns(columns).reduce>(\n (draft, { column }) => {\n if (\"accessorKey\" in column && typeof column.accessorKey === \"string\") {\n draft[column.accessorKey] = (row as Record)[\n column.accessorKey\n ];\n }\n return draft;\n },\n {},\n );\n}\n\nexport function renderEditableCell(\n context: CellContext,\n draftValues: Record,\n setDraftValues: React.Dispatch>>,\n components: Pick,\n editing?: {\n cancel: () => void;\n commit: () => void;\n errors: Record;\n isDirty: boolean;\n isPending: boolean;\n cancelOnEscape: boolean;\n commitOnEnter: boolean;\n onValueChange: (columnId: string) => void;\n },\n) {\n const { Checkbox, Input } = components;\n const column = context.column.columnDef as DataTableColumnDef;\n const meta = column.meta;\n const accessorKey =\n \"accessorKey\" in column && typeof column.accessorKey === \"string\"\n ? column.accessorKey\n : context.column.id;\n const draftValue = draftValues[accessorKey];\n const error =\n editing?.errors[accessorKey] ??\n editing?.errors[context.column.id] ??\n editing?.errors._row;\n const setDraftValue = (value: unknown) => {\n editing?.onValueChange(accessorKey);\n setDraftValues((current) => ({\n ...current,\n [accessorKey]: value,\n }));\n };\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === \"Escape\" && editing?.cancelOnEscape) {\n event.preventDefault();\n editing.cancel();\n } else if (\n event.key === \"Enter\" &&\n !event.shiftKey &&\n editing?.commitOnEnter\n ) {\n event.preventDefault();\n editing.commit();\n }\n };\n\n if (meta?.renderEditCell) {\n return meta.renderEditCell({\n cell: context,\n row: context.row.original,\n value: context.getValue(),\n draftValue,\n error,\n isDirty: editing?.isDirty ?? false,\n isPending: editing?.isPending ?? false,\n setDraftValue,\n });\n }\n\n const inputType = getEditableInputType(meta?.type, draftValue);\n\n if (typeof draftValue === \"boolean\") {\n return (\n
\n {\n setDraftValue(checked === true);\n }}\n onKeyDown={handleKeyDown}\n />\n {error ? (\n \n {error}\n \n ) : null}\n
\n );\n }\n\n return (\n
\n ) => {\n const rawValue = event.target.value;\n const parsedValue = meta?.parseEditValue\n ? meta.parseEditValue(rawValue, context)\n : parseEditableInputValue(rawValue, inputType, draftValue);\n setDraftValue(parsedValue);\n }}\n onKeyDown={handleKeyDown}\n />\n {error ? (\n \n {error}\n \n ) : null}\n
\n );\n}\n\nfunction normalizeEditValidationErrors(\n value: void | string | Record,\n) {\n if (!value) {\n return {};\n }\n return typeof value === \"string\" ? { _row: value } : value;\n}\n\nfunction areDraftValuesEqual(\n left: Record,\n right: Record,\n) {\n const keys = new Set([...Object.keys(left), ...Object.keys(right)]);\n return Array.from(keys).every((key) => Object.is(left[key], right[key]));\n}\n\nfunction getEditableInputType(\n type: DataTableColumnType | undefined,\n value: unknown,\n) {\n if (type === \"numeric\" || typeof value === \"number\") {\n return \"number\";\n }\n\n if (type === \"date\" || value instanceof Date) {\n return \"datetime-local\";\n }\n\n return \"text\";\n}\n\nfunction getEditableInputValue(value: unknown, inputType = \"text\") {\n if (value == null) {\n return \"\";\n }\n\n if (value instanceof Date) {\n return inputType === \"datetime-local\"\n ? value.toISOString().slice(0, 16)\n : value.toISOString();\n }\n\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n typeof value === \"bigint\"\n ) {\n return String(value);\n }\n\n return \"\";\n}\n\nfunction parseEditableInputValue(\n value: string,\n inputType: string,\n previousValue: unknown,\n) {\n if (inputType === \"number\") {\n return value === \"\" ? null : Number(value);\n }\n\n if (inputType === \"datetime-local\") {\n if (!value) {\n return null;\n }\n return previousValue instanceof Date ? new Date(value) : value;\n }\n\n return value;\n}\n","import * as React from \"react\";\n\nconst DataTableVirtualRowMeasurementContext = React.createContext<\n ((element: HTMLTableRowElement | null) => void) | undefined\n>(undefined);\n\nexport function DataTableVirtualRowMeasurementProvider({\n children,\n measureRow,\n}: {\n children: React.ReactNode;\n measureRow: ((element: HTMLTableRowElement | null) => void) | undefined;\n}) {\n return (\n \n {children}\n \n );\n}\n\nexport function useDataTableVirtualRowMeasurement():\n | ((element: HTMLTableRowElement | null) => void)\n | undefined {\n return React.useContext(DataTableVirtualRowMeasurementContext);\n}\n","import * as React from \"react\";\nimport { flexRender } from \"@tanstack/react-table\";\nimport { IconClock } from \"../icons\";\nimport type {\n DataTableCellOverflow,\n DataTableColumnDef,\n} from \"../types\";\nimport type { DataTableUiClassNames } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport type { DataTableTanStackCellContext as CellContext } from \"./tanstack-v9\";\n\nexport function renderDataTableCellContent(\n context: CellContext,\n classNames?: DataTableUiClassNames,\n options?: {\n hasCustomCell?: boolean;\n useCustomOverflowDefaults?: boolean;\n },\n) {\n const column = context.column.columnDef as DataTableColumnDef;\n const meta = column.meta;\n const value = context.getValue();\n const hasCustomCell = options?.hasCustomCell ?? false;\n const renderedCellContent = hasCustomCell && column.cell\n ? flexRender(column.cell, context)\n : undefined;\n const hasComplexRenderedContent = isComplexRenderedCellContent(\n renderedCellContent,\n );\n const resolvedOverflow = resolveDataTableCellOverflow({\n context,\n useCustomOverflowDefaults: options?.useCustomOverflowDefaults ?? false,\n value,\n });\n\n if (meta?.type === \"date\" && !hasCustomCell) {\n return (\n \n \n {formatDateValue(value)}\n \n );\n }\n\n const content =\n renderedCellContent !== undefined &&\n renderedCellContent !== null &&\n renderedCellContent !== \"\"\n ? renderedCellContent\n : value == null || value === \"\"\n ? -\n : formatCellValue(value);\n\n return (\n *]:max-w-full [&>*]:min-w-0\",\n )}\n >\n {content}\n \n );\n}\n\nfunction resolveDataTableCellOverflow({\n context,\n useCustomOverflowDefaults,\n value,\n}: {\n context: CellContext;\n useCustomOverflowDefaults: boolean;\n value: unknown;\n}): DataTableCellOverflow {\n const column = context.column.columnDef as DataTableColumnDef;\n const resolvedOverflow =\n typeof column.meta?.overflow === \"function\"\n ? column.meta.overflow({\n row: context.row.original,\n value,\n })\n : column.meta?.overflow;\n\n if (resolvedOverflow) {\n return resolvedOverflow;\n }\n\n return useCustomOverflowDefaults ? \"clip\" : \"truncate\";\n}\n\nfunction getCellOverflowClassName(overflow: DataTableCellOverflow) {\n switch (overflow) {\n case \"clip\":\n return \"block overflow-hidden whitespace-nowrap\";\n case \"wrap\":\n return \"block overflow-hidden whitespace-normal break-words\";\n case \"visible\":\n return \"block overflow-visible whitespace-normal\";\n case \"truncate\":\n default:\n return \"block overflow-hidden text-ellipsis whitespace-nowrap\";\n }\n}\n\nfunction isComplexRenderedCellContent(content: React.ReactNode) {\n if (content == null) {\n return false;\n }\n\n return (\n React.isValidElement(content) ||\n Array.isArray(content) ||\n typeof content === \"object\"\n );\n}\n\nfunction formatDateValue(value: unknown) {\n if (typeof value === \"number\") {\n return new Date(value * 1000).toLocaleString();\n }\n\n if (typeof value === \"string\" && value) {\n return value;\n }\n\n return \"-\";\n}\n\nfunction formatCellValue(value: unknown) {\n if (value instanceof Date) {\n return value.toLocaleString();\n }\n\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n typeof value === \"bigint\"\n ) {\n return String(value);\n }\n\n try {\n return JSON.stringify(value);\n } catch {\n return \"-\";\n }\n}\n","import * as React from \"react\";\nimport { flexRender } from \"@tanstack/react-table\";\nimport type { RowPinningPosition } from \"@tanstack/react-table\";\nimport type {\n DataTableColumnDef,\n DataTableDensity,\n DataTableProps,\n DataTableRowLoadingState,\n} from \"../types\";\nimport type { DataTableUiClassNames, DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport { renderDataTableCellContent } from \"./data-table-cell-content\";\nimport type { DataTableColumnLayout } from \"./use-column-layout\";\nimport {\n getDensityCellClassName,\n isDataTableInteractiveTarget,\n isDataTableLoadingRow,\n} from \"./data-table-utils\";\nimport { renderEditableCell } from \"./use-row-editing\";\nimport { useDataTableVirtualRowMeasurement } from \"./data-table-virtual-row-measurement\";\nimport { cellAlignClassName, hideOnClassName } from \"../types\";\nimport type {\n DataTableTanStackCell as Cell,\n DataTableTanStackRow as Row,\n} from \"./tanstack-v9\";\n\nexport type DataTableRowEditingContext = {\n cancel: () => void;\n clearError: (columnId: string) => void;\n commit: (row: TData) => void;\n errors: Record;\n isDirty: boolean;\n isPending: boolean;\n cancelOnEscape: boolean;\n commitOnEnter: boolean;\n};\n\ntype DataTableBodyRowProps = {\n columnLayouts: ReadonlyMap;\n components: Pick<\n DataTableUiKit,\n \"Checkbox\" | \"Input\" | \"Skeleton\" | \"TableCell\" | \"TableRow\"\n >;\n currentDensity: DataTableDensity;\n draftValues: Record;\n editingContext?: DataTableRowEditingContext;\n dragAndDrop: DataTableProps[\"dragAndDrop\"];\n explicitCustomCellColumnIds: ReadonlySet;\n getRowClassName: DataTableProps[\"getRowClassName\"];\n groupToggleLabel: string;\n gridMode: boolean;\n gridRowAriaIndex: number;\n gridRowIndex: number;\n activeGridCell: { row: number; column: number };\n cellSelectionEnabled: boolean;\n isGridCellSelected: (row: number, column: number) => boolean;\n onGridCellFocus: (cell: { row: number; column: number }) => void;\n onGridCellKeyDown: (\n event: React.KeyboardEvent,\n row: number,\n column: number,\n ) => void;\n onGridCellPointerDown: (\n event: React.PointerEvent,\n row: number,\n column: number,\n ) => void;\n onGridCellPointerEnter: (\n event: React.PointerEvent,\n row: number,\n column: number,\n ) => void;\n isDraggable: boolean;\n isDetailExpanded: boolean;\n isEditing: boolean;\n isExpanded: boolean;\n isInitialLoadingRow: boolean;\n isSelected: boolean;\n loadingState: DataTableRowLoadingState | undefined;\n onRowClick: DataTableProps[\"onRowClick\"];\n pinnedPosition?: Exclude;\n originalRow: TData;\n detailPanel: DataTableProps[\"detailPanel\"];\n row: Row;\n rowIndex: number;\n setDraftValues: React.Dispatch>>;\n stripedRows: boolean;\n uiClassNames: DataTableUiClassNames;\n visibleCells: Array>;\n visibleLeafColumnCount: number;\n};\n\nfunction DataTableBodyRowInner({\n columnLayouts,\n components,\n currentDensity,\n draftValues,\n editingContext,\n dragAndDrop,\n explicitCustomCellColumnIds,\n getRowClassName,\n groupToggleLabel,\n gridMode,\n gridRowAriaIndex,\n gridRowIndex,\n activeGridCell,\n cellSelectionEnabled,\n isGridCellSelected,\n onGridCellFocus,\n onGridCellKeyDown,\n onGridCellPointerDown,\n onGridCellPointerEnter,\n isDraggable,\n isDetailExpanded,\n isEditing,\n isExpanded,\n isInitialLoadingRow,\n isSelected,\n loadingState,\n onRowClick,\n pinnedPosition,\n originalRow,\n detailPanel,\n row,\n rowIndex,\n setDraftValues,\n stripedRows,\n uiClassNames,\n visibleCells,\n visibleLeafColumnCount,\n}: DataTableBodyRowProps) {\n const { Checkbox, Input, Skeleton, TableCell, TableRow } = components;\n const virtualRowMeasurement = useDataTableVirtualRowMeasurement();\n const measureElement = pinnedPosition ? undefined : virtualRowMeasurement;\n const firstDataColumnId = visibleCells.find(\n (cell) => !columnLayouts.get(cell.column.id)?.isUtilityColumn,\n )?.column.id;\n const spacerColumnIndex = visibleCells.findIndex(\n (cell) => cell.column.id === \"__spacer__\",\n );\n\n return (\n \n 0 ? row.depth : undefined\n }\n data-dtp-slot={\n pinnedPosition ? \"data-table-pinned-row\" : \"data-table-row\"\n }\n data-row-pinned={pinnedPosition}\n data-row-grouped={row.getIsGrouped() || undefined}\n draggable={isInitialLoadingRow ? false : isDraggable}\n data-loading={loadingState?.isLoading || undefined}\n data-row-index={isInitialLoadingRow ? undefined : rowIndex}\n data-row-parity={\n stripedRows && !isInitialLoadingRow\n ? rowIndex % 2 === 0\n ? \"odd\"\n : \"even\"\n : undefined\n }\n data-state={\n isInitialLoadingRow ? undefined : isSelected ? \"selected\" : undefined\n }\n role={gridMode ? \"row\" : undefined}\n aria-rowindex={gridMode ? gridRowAriaIndex : undefined}\n tabIndex={\n !gridMode && onRowClick && !isInitialLoadingRow ? 0 : undefined\n }\n className={cn(\n !isInitialLoadingRow &&\n getRowClassName?.(originalRow, {\n row: originalRow,\n rowId: row.id,\n rowIndex,\n isEditing,\n isExpanded,\n isLoading: Boolean(loadingState?.isLoading),\n isSelected,\n pinnedPosition: pinnedPosition ?? false,\n }),\n uiClassNames.row,\n pinnedPosition === \"top\" &&\n cn(\"border-b-2\", uiClassNames.rowPinnedTop),\n pinnedPosition === \"bottom\" &&\n cn(\"border-t-2\", uiClassNames.rowPinnedBottom),\n stripedRows &&\n !isInitialLoadingRow &&\n (rowIndex % 2 === 0\n ? uiClassNames.rowOdd\n : uiClassNames.rowEven),\n isSelected && !isInitialLoadingRow && uiClassNames.rowSelected,\n onRowClick && !isInitialLoadingRow && \"cursor-pointer\",\n isInitialLoadingRow && \"pointer-events-none\",\n )}\n onClick={(event: React.MouseEvent) => {\n if (isInitialLoadingRow) {\n return;\n }\n\n if (isDataTableInteractiveTarget(event.target, event.currentTarget)) {\n return;\n }\n\n if (gridMode && cellSelectionEnabled) return;\n\n void onRowClick?.({ row: originalRow, rowId: row.id });\n }}\n onKeyDown={(event: React.KeyboardEvent) => {\n if (\n isInitialLoadingRow ||\n !onRowClick ||\n (event.key !== \"Enter\" && event.key !== \" \")\n ) {\n return;\n }\n\n if (isDataTableInteractiveTarget(event.target, event.currentTarget)) {\n return;\n }\n\n event.preventDefault();\n void onRowClick({ row: originalRow, rowId: row.id });\n }}\n onDragStart={(event: React.DragEvent) => {\n if (isInitialLoadingRow) {\n return;\n }\n\n dragAndDrop?.onRowDragStart?.({\n row: originalRow,\n rowId: row.id,\n event,\n });\n }}\n onDragEnd={(event: React.DragEvent) => {\n if (isInitialLoadingRow) {\n return;\n }\n\n dragAndDrop?.onRowDragEnd?.({\n row: originalRow,\n rowId: row.id,\n event,\n });\n }}\n >\n {visibleCells.map((cell, columnIndex) => {\n const meta = (\n cell.column.columnDef as DataTableColumnDef\n ).meta;\n const cellContext = cell.getContext();\n const value = cell.getValue();\n const layout = columnLayouts.get(cell.column.id);\n const isSelectionColumn = layout?.isSelectionColumn ?? false;\n const isExpansionColumn = layout?.isExpansionColumn ?? false;\n const isActionsColumn = layout?.isActionsColumn ?? false;\n const isSpacerColumn = layout?.isSpacerColumn ?? false;\n const gridColumnAriaIndex =\n columnIndex +\n 1 -\n (spacerColumnIndex >= 0 && spacerColumnIndex < columnIndex ? 1 : 0);\n const hideClassName = hideOnClassName(meta?.hideOn);\n const cellClassName =\n isInitialLoadingRow || isDataTableLoadingRow(originalRow)\n ? undefined\n : typeof meta?.cellClassName === \"function\"\n ? meta.cellClassName({\n row: originalRow,\n value,\n })\n : meta?.cellClassName;\n const isCellSelected =\n gridMode && cellSelectionEnabled &&\n !isInitialLoadingRow &&\n !isSpacerColumn &&\n isGridCellSelected(gridRowIndex, columnIndex);\n\n return (\n onGridCellFocus({ row: gridRowIndex, column: columnIndex })\n : undefined\n }\n onKeyDown={\n gridMode && !isSpacerColumn\n ? (event: React.KeyboardEvent) => {\n if (event.target !== event.currentTarget) {\n if (event.key === \"Escape\") {\n event.preventDefault();\n event.currentTarget.focus();\n }\n return;\n }\n onGridCellKeyDown(event, gridRowIndex, columnIndex);\n }\n : undefined\n }\n onPointerDown={\n gridMode &&\n cellSelectionEnabled &&\n !layout?.isUtilityColumn &&\n !isSpacerColumn\n ? (event: React.PointerEvent) => {\n if (isDataTableInteractiveTarget(event.target, event.currentTarget)) return;\n event.currentTarget.focus();\n onGridCellPointerDown(event, gridRowIndex, columnIndex);\n }\n : undefined\n }\n onPointerEnter={\n gridMode &&\n cellSelectionEnabled &&\n !layout?.isUtilityColumn &&\n !isSpacerColumn\n ? (event: React.PointerEvent) => {\n if (isDataTableInteractiveTarget(event.target, event.currentTarget)) return;\n onGridCellPointerEnter(event, gridRowIndex, columnIndex);\n }\n : undefined\n }\n className={cn(\n \"border-b\",\n getDensityCellClassName(currentDensity),\n uiClassNames.cellBorder,\n isCellSelected && uiClassNames.cellSelected,\n layout?.utilityClassName,\n layout?.isSpacerColumn && \"border-b-0 bg-transparent! p-0\",\n layout?.pinnedClassName,\n hideClassName,\n cellAlignClassName(cellContext),\n meta?.responsiveClassName,\n cellClassName,\n )}\n style={layout?.cellStyle}\n >\n 0 && cell.column.id === firstDataColumnId\n ? { paddingInlineStart: `${row.depth}rem` }\n : undefined\n }\n >\n {isSpacerColumn ? null : loadingState?.isLoading ? (\n (meta?.skeleton?.(cellContext) ??\n loadingState.skeleton ?? (\n \n ))\n ) : isEditing &&\n cell.column.id !== \"__select__\" &&\n cell.column.id !== \"__expand__\" &&\n cell.column.id !== \"__actions__\" ? (\n renderEditableCell(\n cellContext,\n draftValues,\n setDraftValues,\n {\n Checkbox,\n Input,\n },\n editingContext\n ? {\n cancel: editingContext.cancel,\n cancelOnEscape: editingContext.cancelOnEscape,\n commit: () => editingContext.commit(originalRow),\n commitOnEnter: editingContext.commitOnEnter,\n errors: editingContext.errors,\n isDirty: editingContext.isDirty,\n isPending: editingContext.isPending,\n onValueChange: editingContext.clearError,\n }\n : undefined,\n )\n ) : row.getIsGrouped() && cell.getIsPlaceholder() ? null : row.getIsGrouped() && cell.getIsGrouped() ? (\n row.toggleExpanded()}\n aria-expanded={row.getIsExpanded()}\n aria-label={groupToggleLabel}\n >\n \n {renderDataTableCellContent(cellContext, uiClassNames, {\n hasCustomCell:\n explicitCustomCellColumnIds.has(cell.column.id),\n useCustomOverflowDefaults:\n explicitCustomCellColumnIds.has(cell.column.id),\n })}\n \n \n ({row.subRows.length})\n \n \n ) : row.getIsGrouped() && cell.getIsAggregated() ? (\n cell.column.columnDef.aggregatedCell\n ? flexRender(cell.column.columnDef.aggregatedCell, cellContext)\n : renderDataTableCellContent(cellContext, uiClassNames, {\n hasCustomCell: false,\n useCustomOverflowDefaults: false,\n })\n ) : (\n renderDataTableCellContent(cellContext, uiClassNames, {\n hasCustomCell:\n explicitCustomCellColumnIds.has(cell.column.id) ||\n isSelectionColumn ||\n isExpansionColumn ||\n isActionsColumn ||\n isSpacerColumn,\n useCustomOverflowDefaults:\n explicitCustomCellColumnIds.has(cell.column.id) ||\n isSelectionColumn ||\n isExpansionColumn ||\n isActionsColumn ||\n isSpacerColumn,\n })\n )}\n \n \n );\n })}\n \n {!isInitialLoadingRow && detailPanel && isDetailExpanded ? (\n \n \n {detailPanel.render({\n row: originalRow,\n rowId: row.id,\n tableRow: row,\n })}\n \n \n ) : null}\n \n );\n}\n\nfunction areDataTableBodyRowsEqual(\n previous: DataTableBodyRowProps,\n next: DataTableBodyRowProps,\n) {\n return (\n previous.row.id === next.row.id &&\n previous.row.original === next.row.original &&\n previous.rowIndex === next.rowIndex &&\n previous.isSelected === next.isSelected &&\n previous.isInitialLoadingRow === next.isInitialLoadingRow &&\n previous.isEditing === next.isEditing &&\n (!previous.isEditing || previous.editingContext === next.editingContext) &&\n previous.isExpanded === next.isExpanded &&\n previous.isDraggable === next.isDraggable &&\n sameLoadingState(previous.loadingState, next.loadingState) &&\n sameVisibleCells(previous.visibleCells, next.visibleCells) &&\n previous.components === next.components &&\n sameColumnLayouts(\n previous.columnLayouts,\n next.columnLayouts,\n next.visibleCells,\n ) &&\n previous.currentDensity === next.currentDensity &&\n previous.detailPanel === next.detailPanel &&\n previous.isDetailExpanded === next.isDetailExpanded &&\n previous.pinnedPosition === next.pinnedPosition &&\n previous.onRowClick === next.onRowClick &&\n previous.dragAndDrop === next.dragAndDrop &&\n previous.getRowClassName === next.getRowClassName &&\n previous.groupToggleLabel === next.groupToggleLabel &&\n previous.gridMode === next.gridMode &&\n (!next.gridMode ||\n (previous.gridRowAriaIndex === next.gridRowAriaIndex &&\n previous.gridRowIndex === next.gridRowIndex &&\n previous.activeGridCell.row === next.activeGridCell.row &&\n previous.activeGridCell.column === next.activeGridCell.column &&\n previous.cellSelectionEnabled === next.cellSelectionEnabled &&\n previous.isGridCellSelected === next.isGridCellSelected &&\n previous.onGridCellFocus === next.onGridCellFocus &&\n previous.onGridCellKeyDown === next.onGridCellKeyDown &&\n previous.onGridCellPointerDown === next.onGridCellPointerDown &&\n previous.onGridCellPointerEnter === next.onGridCellPointerEnter)) &&\n previous.stripedRows === next.stripedRows &&\n previous.uiClassNames === next.uiClassNames &&\n previous.explicitCustomCellColumnIds === next.explicitCustomCellColumnIds &&\n (!previous.isEditing || previous.draftValues === next.draftValues)\n );\n}\n\nfunction sameLoadingState(\n previous: DataTableRowLoadingState | undefined,\n next: DataTableRowLoadingState | undefined,\n) {\n return (\n previous?.isLoading === next?.isLoading &&\n previous?.skeleton === next?.skeleton\n );\n}\n\nfunction sameVisibleCells(\n previous: Array>,\n next: Array>,\n) {\n return (\n previous.length === next.length &&\n previous.every((cell, index) => {\n const nextCell = next[index];\n return nextCell?.id === cell.id && nextCell.column.id === cell.column.id;\n })\n );\n}\n\nfunction sameColumnLayouts(\n previous: ReadonlyMap,\n next: ReadonlyMap,\n cells: Array>,\n) {\n return cells.every((cell) => {\n const previousLayout = previous.get(cell.column.id);\n const nextLayout = next.get(cell.column.id);\n\n return (\n previousLayout?.fixedSide === nextLayout?.fixedSide &&\n previousLayout?.isActionsColumn === nextLayout?.isActionsColumn &&\n previousLayout?.isExpansionColumn === nextLayout?.isExpansionColumn &&\n previousLayout?.isSelectionColumn === nextLayout?.isSelectionColumn &&\n previousLayout?.isSpacerColumn === nextLayout?.isSpacerColumn &&\n previousLayout?.isUtilityColumn === nextLayout?.isUtilityColumn &&\n previousLayout?.pinnedClassName === nextLayout?.pinnedClassName &&\n previousLayout?.utilityClassName === nextLayout?.utilityClassName &&\n sameCellStyle(previousLayout?.cellStyle, nextLayout?.cellStyle)\n );\n });\n}\n\nfunction sameCellStyle(\n previous: React.CSSProperties | undefined,\n next: React.CSSProperties | undefined,\n) {\n return (\n previous?.width === next?.width &&\n previous?.minWidth === next?.minWidth &&\n previous?.maxWidth === next?.maxWidth &&\n previous?.left === next?.left &&\n previous?.right === next?.right\n );\n}\n\nexport const DataTableBodyRow = React.memo(\n DataTableBodyRowInner,\n areDataTableBodyRowsEqual,\n) as typeof DataTableBodyRowInner;\n","import * as React from \"react\";\nimport { flexRender } from \"@tanstack/react-table\";\nimport { IconChevronDown, IconSelector } from \"../icons\";\nimport type { SortingState } from \"@tanstack/react-table\";\nimport type {\n DataTableColumnDef,\n DataTableColumnGroupDef,\n DataTableDensity,\n DataTableProps,\n} from \"../types\";\nimport type { DataTableUiClassNames, DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport type { DataTableColumnLayout } from \"./use-column-layout\";\nimport {\n getDensityHeaderClassName,\n isUtilityColumnId,\n} from \"./data-table-utils\";\nimport { headerAlignClassName, hideOnClassName } from \"../types\";\nimport type { DataTableTanStackHeader as Header } from \"./tanstack-v9\";\n\ntype DataTableHeaderCellProps = {\n columnGroupHeaderHeight: DataTableProps[\"columnGroupHeaderHeight\"];\n currentDensity: DataTableDensity;\n currentSorting: SortingState;\n dir: NonNullable[\"dir\"]>;\n draggedColumnIdRef: React.MutableRefObject;\n enableColumnReordering: boolean;\n enableColumnResizing: boolean;\n gridColumnIndex?: number;\n gridMode: boolean;\n header: Header;\n headerGroupHeaders: Array>;\n layout: DataTableColumnLayout;\n primeColumnForResize: (columnId: string, currentSize: number) => void;\n reorderColumn: (sourceColumnId: string, targetColumnId: string) => void;\n resizeColumnLabel: string;\n resetColumnSize: (columnId: string) => void;\n // Rendered through flexRender inside the header def; carried as a prop so\n // the memo comparator re-renders the selection header when it changes.\n selectionState?: boolean | \"indeterminate\";\n TableHead: DataTableUiKit[\"TableHead\"];\n uiClassNames: DataTableUiClassNames;\n};\n\nfunction DataTableHeaderCellInner({\n columnGroupHeaderHeight,\n currentDensity,\n currentSorting,\n dir,\n draggedColumnIdRef,\n enableColumnReordering,\n enableColumnResizing,\n gridColumnIndex,\n gridMode,\n header,\n headerGroupHeaders,\n layout,\n primeColumnForResize,\n reorderColumn,\n resizeColumnLabel,\n resetColumnSize,\n TableHead,\n uiClassNames,\n}: DataTableHeaderCellProps) {\n const meta = (header.column.columnDef as DataTableColumnDef)\n .meta;\n const headerContentId = React.useId();\n const isColumnGroup =\n !header.isPlaceholder && header.subHeaders.length > 0;\n const groupDefinition = isColumnGroup\n ? (header.column.columnDef as DataTableColumnGroupDef)\n : undefined;\n const canSort = header.column.getCanSort();\n const sortingState = header.column.getIsSorted();\n const sortingIndex = currentSorting.findIndex(\n (sort) => sort.id === header.column.id,\n );\n const canReorderColumn =\n enableColumnReordering &&\n !header.isPlaceholder &&\n !isColumnGroup &&\n !layout.isUtilityColumn &&\n !layout.isSpacerColumn;\n const hideClassName = hideOnClassName(meta?.hideOn);\n\n return (\n ) => {\n draggedColumnIdRef.current = header.column.id;\n event.dataTransfer.effectAllowed = \"move\";\n }\n : undefined\n }\n onDragOver={\n canReorderColumn\n ? (event: React.DragEvent) => {\n event.preventDefault();\n event.dataTransfer.dropEffect = \"move\";\n }\n : undefined\n }\n onDrop={\n canReorderColumn\n ? (event: React.DragEvent) => {\n event.preventDefault();\n const sourceColumnId = draggedColumnIdRef.current;\n draggedColumnIdRef.current = null;\n if (sourceColumnId) {\n reorderColumn(sourceColumnId, header.column.id);\n }\n }\n : undefined\n }\n onKeyDown={\n canReorderColumn\n ? (event: React.KeyboardEvent) => {\n if (\n !event.altKey ||\n (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\")\n ) {\n return;\n }\n\n event.preventDefault();\n const headers = headerGroupHeaders.filter(\n (item) =>\n !isUtilityColumnId(item.column.id) &&\n item.column.id !== \"__spacer__\",\n );\n const currentIndex = headers.findIndex(\n (item) => item.column.id === header.column.id,\n );\n const target =\n headers[\n (event.key === \"ArrowLeft\") !== (dir === \"rtl\")\n ? currentIndex - 1\n : currentIndex + 1\n ];\n if (target) {\n reorderColumn(header.column.id, target.column.id);\n }\n }\n : undefined\n }\n >\n {header.isPlaceholder ? null : canSort ? (\n \n \n {flexRender(header.column.columnDef.header, header.getContext())}\n \n {sortingState ? (\n <>\n \n {currentSorting.length > 1 && sortingIndex >= 0 ? (\n \n {sortingIndex + 1}\n \n ) : null}\n \n ) : (\n \n )}\n \n ) : (\n layout.isUtilityColumn || layout.isSpacerColumn ? (\n flexRender(header.column.columnDef.header, header.getContext())\n ) : (\n \n {flexRender(header.column.columnDef.header, header.getContext())}\n \n )\n )}\n\n {enableColumnResizing &&\n !header.isPlaceholder &&\n header.column.getCanResize() ? (\n {\n for (const leafHeader of getResizableLeafHeaders(header)) {\n resetColumnSize(leafHeader.column.id);\n }\n }}\n onMouseDown={(event) => {\n for (const leafHeader of getResizableLeafHeaders(header)) {\n primeColumnForResize(\n leafHeader.column.id,\n leafHeader.getSize(),\n );\n }\n header.getResizeHandler()(event);\n }}\n onTouchStart={(event) => {\n for (const leafHeader of getResizableLeafHeaders(header)) {\n primeColumnForResize(\n leafHeader.column.id,\n leafHeader.getSize(),\n );\n }\n header.getResizeHandler()(event);\n }}\n onKeyDown={(event) => {\n if (event.altKey) {\n return;\n }\n if (event.key === \"Home\") {\n event.preventDefault();\n for (const leafHeader of getResizableLeafHeaders(header)) {\n resetColumnSize(leafHeader.column.id);\n }\n return;\n }\n if (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\") {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n const grows =\n (event.key === \"ArrowRight\") !== (dir === \"rtl\");\n resizeHeaderBy(\n header,\n (grows ? 1 : -1) * (event.shiftKey ? 25 : 10),\n );\n }}\n className={cn(\n \"absolute inset-y-0 z-50 h-full w-3 cursor-col-resize touch-none select-none ltr:right-0 ltr:translate-x-1/2 rtl:left-0 rtl:-translate-x-1/2 after:absolute after:top-0 after:left-1/2 after:h-full after:w-px after:-translate-x-1/2\",\n uiClassNames.resizeHandle ??\n \"after:bg-current after:opacity-20 hover:after:opacity-70\",\n header.column.getIsResizing() &&\n (uiClassNames.resizeHandleActive ?? \"after:opacity-100\"),\n )}\n />\n ) : null}\n \n );\n}\n\nfunction areDataTableHeaderCellsEqual(\n previous: DataTableHeaderCellProps,\n next: DataTableHeaderCellProps,\n) {\n return (\n previous.header.id === next.header.id &&\n previous.header.column.id === next.header.column.id &&\n previous.header.column.columnDef === next.header.column.columnDef &&\n previous.header.colSpan === next.header.colSpan &&\n previous.header.isPlaceholder === next.header.isPlaceholder &&\n sameSubHeaders(previous.header, next.header) &&\n previous.currentDensity === next.currentDensity &&\n previous.columnGroupHeaderHeight === next.columnGroupHeaderHeight &&\n previous.dir === next.dir &&\n previous.enableColumnReordering === next.enableColumnReordering &&\n previous.enableColumnResizing === next.enableColumnResizing &&\n previous.gridMode === next.gridMode &&\n previous.gridColumnIndex === next.gridColumnIndex &&\n previous.TableHead === next.TableHead &&\n previous.uiClassNames === next.uiClassNames &&\n previous.draggedColumnIdRef === next.draggedColumnIdRef &&\n previous.primeColumnForResize === next.primeColumnForResize &&\n previous.reorderColumn === next.reorderColumn &&\n previous.resizeColumnLabel === next.resizeColumnLabel &&\n previous.resetColumnSize === next.resetColumnSize &&\n previous.selectionState === next.selectionState &&\n sameSorting(previous.currentSorting, next.currentSorting) &&\n sameHeaderGroupHeaders(\n previous.headerGroupHeaders,\n next.headerGroupHeaders,\n ) &&\n sameHeaderLayout(previous.layout, next.layout)\n );\n}\n\nfunction getResizableLeafHeaders(header: Header) {\n if (!header.subHeaders.length) {\n return [header];\n }\n\n return header\n .getLeafHeaders()\n .filter((leafHeader) => !leafHeader.subHeaders.length);\n}\n\nfunction getHeaderMinimumSize(header: Header) {\n return getResizableLeafHeaders(header).reduce(\n (total, leafHeader) =>\n total + (leafHeader.column.columnDef.minSize ?? 20),\n 0,\n );\n}\n\nfunction getHeaderMaximumSize(header: Header) {\n return getResizableLeafHeaders(header).reduce(\n (total, leafHeader) =>\n total + (leafHeader.column.columnDef.maxSize ?? Number.MAX_SAFE_INTEGER),\n 0,\n );\n}\n\nfunction resizeHeaderBy(\n header: Header,\n delta: number,\n) {\n const leafHeaders = getResizableLeafHeaders(header);\n const deltaPerLeaf = delta / leafHeaders.length;\n header.getContext().table.setColumnSizing((current) => {\n const next = { ...current };\n\n for (const leafHeader of leafHeaders) {\n const column = leafHeader.column;\n const minimum = column.columnDef.minSize ?? 20;\n const maximum =\n column.columnDef.maxSize ?? Number.MAX_SAFE_INTEGER;\n next[column.id] = Math.min(\n maximum,\n Math.max(minimum, column.getSize() + deltaPerLeaf),\n );\n }\n\n return next;\n });\n}\n\nfunction sameSubHeaders(\n previous: Header,\n next: Header,\n) {\n return (\n previous.subHeaders.length === next.subHeaders.length &&\n previous.subHeaders.every(\n (header, index) => next.subHeaders[index]?.id === header.id,\n )\n );\n}\n\nfunction sameSorting(previous: SortingState, next: SortingState) {\n return (\n previous.length === next.length &&\n previous.every((sort, index) => {\n const nextSort = next[index];\n return nextSort?.id === sort.id && nextSort.desc === sort.desc;\n })\n );\n}\n\nfunction sameHeaderGroupHeaders(\n previous: Array>,\n next: Array>,\n) {\n return (\n previous.length === next.length &&\n previous.every((header, index) => next[index]?.id === header.id)\n );\n}\n\nfunction sameHeaderLayout(\n previous: DataTableColumnLayout,\n next: DataTableColumnLayout,\n) {\n return (\n previous.fixedSide === next.fixedSide &&\n previous.isSpacerColumn === next.isSpacerColumn &&\n previous.isUtilityColumn === next.isUtilityColumn &&\n previous.pinnedClassName === next.pinnedClassName &&\n previous.utilityClassName === next.utilityClassName &&\n previous.headerStyle?.width === next.headerStyle?.width &&\n previous.headerStyle?.minWidth === next.headerStyle?.minWidth &&\n previous.headerStyle?.maxWidth === next.headerStyle?.maxWidth &&\n previous.headerStyle?.left === next.headerStyle?.left &&\n previous.headerStyle?.right === next.headerStyle?.right\n );\n}\n\nexport const DataTableHeaderCell = React.memo(\n DataTableHeaderCellInner,\n areDataTableHeaderCellsEqual,\n) as typeof DataTableHeaderCellInner;\n","import * as React from \"react\";\nimport type {\n ExpandedState,\n RowPinningPosition,\n} from \"@tanstack/react-table\";\nimport type {\n DataTableDensity,\n DataTableCellSelection,\n DataTableProps,\n DataTableRowLoadingState,\n} from \"../types\";\nimport type { DataTableUiClassNames, DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport {\n DataTableBodyRow,\n type DataTableRowEditingContext,\n} from \"./data-table-body-row\";\nimport { DataTableHeaderCell } from \"./data-table-header-cell\";\nimport type { DataTableColumnLayout } from \"./use-column-layout\";\nimport { isDataTableLoadingRow, isUtilityColumnId } from \"./data-table-utils\";\nimport type { DataTableLabels } from \"../types\";\nimport type {\n DataTableTanStackColumn as Column,\n DataTableTanStackHeader as Header,\n DataTableTanStackRow as Row,\n DataTableTanStackTable as TanStackTable,\n} from \"./tanstack-v9\";\n\nexport type DataTableTablePanelProps = {\n ariaDescribedBy: string | undefined;\n ariaLabelledBy: string | undefined;\n bodyRowComponents: Pick<\n DataTableUiKit,\n \"Checkbox\" | \"Input\" | \"Skeleton\" | \"TableCell\" | \"TableRow\"\n >;\n cellSelection: DataTableCellSelection | null;\n cellSelectionEnabled: boolean;\n columnLayouts: ReadonlyMap;\n columnGroupHeaderHeight: DataTableProps[\"columnGroupHeaderHeight\"];\n currentDensity: DataTableDensity;\n currentDetailExpanded: ExpandedState;\n currentSorting: DataTableProps[\"sorting\"];\n dir: NonNullable[\"dir\"]>;\n DataTableEmptyState: React.ElementType;\n dragAndDrop: DataTableProps[\"dragAndDrop\"];\n draggedColumnIdRef: React.RefObject;\n draftValues: Record;\n editingRowId: string | null;\n editingContext?: DataTableRowEditingContext;\n emptyNode: React.ReactNode;\n enableColumnReordering: boolean;\n enableColumnResizing: boolean;\n explicitCustomCellColumnIds: ReadonlySet;\n fillMinWidth: number;\n flexGrow: boolean;\n gridMode: boolean;\n gridPageSize?: number;\n gridRowOffset: number;\n onGridActiveRowIndexChange?: (rowIndex: number) => void;\n onCellSelectionChange: (selection: DataTableCellSelection | null) => void;\n getColumnLayout: (columnId: string) => DataTableColumnLayout;\n getRowClassName: DataTableProps[\"getRowClassName\"];\n getRowLoadingState: DataTableProps[\"getRowLoadingState\"];\n infiniteScroll: DataTableProps[\"infiniteScroll\"];\n layoutMode: \"fill\" | \"fit\";\n localSearchValue: string;\n onRowClick: DataTableProps[\"onRowClick\"];\n primeColumnForResize: (columnId: string, currentSize: number) => void;\n renderedRows: Array>;\n detailPanel: DataTableProps[\"detailPanel\"];\n topPinnedRows: Array>;\n bottomPinnedRows: Array>;\n reorderColumn: (sourceColumnId: string, targetColumnId: string) => void;\n resetColumnSize: (columnId: string) => void;\n resolvedLabels: DataTableLabels;\n rowsToRender: Array<{ row: Row; rowIndex: number }>;\n ScrollArea: DataTableUiKit[\"ScrollArea\"];\n ScrollBar: DataTableUiKit[\"ScrollBar\"];\n scrollbarVisibility: DataTableProps[\"scrollbarVisibility\"];\n sentinelRef: React.RefObject;\n setDraftValues: React.Dispatch>>;\n shouldRenderInitialLoading: boolean;\n stateOverlayNode?: React.ReactNode;\n stickyHeader: boolean;\n stripedRows: boolean;\n summaryRows: NonNullable[\"summaryRows\"]>;\n table: TanStackTable;\n tableClassName: string | undefined;\n tableContainerClassName: string | undefined;\n Table: DataTableUiKit[\"Table\"];\n TableBody: DataTableUiKit[\"TableBody\"];\n TableCell: DataTableUiKit[\"TableCell\"];\n TableFooter: DataTableUiKit[\"TableFooter\"];\n TableHead: DataTableUiKit[\"TableHead\"];\n TableHeader: DataTableUiKit[\"TableHeader\"];\n TableRow: DataTableUiKit[\"TableRow\"];\n tableScrollContainerRef: React.RefObject;\n tableScrollElement?: HTMLElement | null;\n totalRowCount?: number;\n uiClassNames: DataTableUiClassNames;\n viewportHeight?: number;\n virtualization?: DataTableProps[\"virtualization\"];\n virtualPaddingBottom: number;\n virtualPaddingTop: number;\n visibleLeafColumnCount: number;\n visibleLeafColumns: Array>;\n};\n\nexport function DataTableTablePanel({\n ariaDescribedBy,\n ariaLabelledBy,\n bodyRowComponents,\n cellSelection,\n cellSelectionEnabled,\n columnLayouts,\n columnGroupHeaderHeight,\n currentDensity,\n currentDetailExpanded,\n currentSorting = [],\n dir,\n DataTableEmptyState,\n dragAndDrop,\n draggedColumnIdRef,\n draftValues,\n editingRowId,\n editingContext,\n emptyNode,\n enableColumnReordering,\n enableColumnResizing,\n explicitCustomCellColumnIds,\n fillMinWidth,\n flexGrow,\n gridMode,\n gridPageSize,\n gridRowOffset,\n onGridActiveRowIndexChange,\n onCellSelectionChange,\n getColumnLayout,\n getRowClassName,\n getRowLoadingState,\n infiniteScroll,\n layoutMode,\n localSearchValue,\n onRowClick,\n primeColumnForResize,\n renderedRows,\n detailPanel,\n topPinnedRows,\n bottomPinnedRows,\n reorderColumn,\n resetColumnSize,\n resolvedLabels,\n rowsToRender,\n ScrollArea,\n ScrollBar,\n scrollbarVisibility,\n sentinelRef,\n setDraftValues,\n shouldRenderInitialLoading,\n stateOverlayNode,\n stickyHeader,\n stripedRows,\n summaryRows,\n table,\n tableClassName,\n tableContainerClassName,\n Table,\n TableBody,\n TableCell,\n TableFooter = \"tfoot\",\n TableHead,\n TableHeader,\n TableRow,\n tableScrollContainerRef,\n tableScrollElement,\n totalRowCount,\n uiClassNames,\n virtualPaddingBottom,\n virtualPaddingTop,\n visibleLeafColumnCount,\n visibleLeafColumns,\n}: DataTableTablePanelProps) {\n const selectionState: boolean | \"indeterminate\" =\n table.getIsAllPageRowsSelected()\n ? true\n : table.getIsSomePageRowsSelected()\n ? \"indeterminate\"\n : false;\n const filteredRows = table.getFilteredRowModel().rows;\n const summarySourceRows = React.useMemo(\n () =>\n summaryRows.length\n ? filteredRows.map((row) => row.original)\n : [],\n [filteredRows, summaryRows.length],\n );\n const headerRowCount = table.getHeaderGroups().length;\n const displayRowCount =\n topPinnedRows.length + renderedRows.length + bottomPinnedRows.length;\n const [activeCell, setActiveCell] = React.useState({ row: 0, column: 0 });\n const shouldRestoreGridFocusRef = React.useRef(false);\n const pointerSelectingRef = React.useRef(false);\n const gridRows = React.useMemo(\n () => [...topPinnedRows, ...renderedRows, ...bottomPinnedRows],\n [bottomPinnedRows, renderedRows, topPinnedRows],\n );\n const navigableGridColumnIndices = React.useMemo(\n () =>\n visibleLeafColumns.flatMap((column, index) =>\n column.id === \"__spacer__\" ? [] : [index],\n ),\n [visibleLeafColumns],\n );\n const getGridCoordinate = React.useCallback(\n (rowIndex: number, columnIndex: number) => {\n const row = gridRows[rowIndex];\n const column = visibleLeafColumns[columnIndex];\n return row &&\n column &&\n !isUtilityColumnId(column.id) &&\n column.id !== \"__spacer__\"\n ? { rowId: row.id, columnId: column.id }\n : undefined;\n },\n [gridRows, visibleLeafColumns],\n );\n const selectedBounds = React.useMemo(() => {\n if (!cellSelection) return undefined;\n const anchorRow = gridRows.findIndex((row) => row.id === cellSelection.anchor.rowId);\n const focusRow = gridRows.findIndex((row) => row.id === cellSelection.focus.rowId);\n const anchorColumn = visibleLeafColumns.findIndex(\n (column) => column.id === cellSelection.anchor.columnId,\n );\n const focusColumn = visibleLeafColumns.findIndex(\n (column) => column.id === cellSelection.focus.columnId,\n );\n if (anchorRow < 0 || focusRow < 0 || anchorColumn < 0 || focusColumn < 0) return undefined;\n return {\n firstRow: Math.min(anchorRow, focusRow),\n lastRow: Math.max(anchorRow, focusRow),\n firstColumn: Math.min(anchorColumn, focusColumn),\n lastColumn: Math.max(anchorColumn, focusColumn),\n };\n }, [cellSelection, gridRows, visibleLeafColumns]);\n const isGridCellSelected = React.useCallback(\n (rowIndex: number, columnIndex: number) =>\n Boolean(\n selectedBounds &&\n rowIndex >= selectedBounds.firstRow &&\n rowIndex <= selectedBounds.lastRow &&\n columnIndex >= selectedBounds.firstColumn &&\n columnIndex <= selectedBounds.lastColumn,\n ),\n [selectedBounds],\n );\n const handleGridCellFocus = React.useCallback(\n (cell: { row: number; column: number }) => {\n shouldRestoreGridFocusRef.current = true;\n setActiveCell(cell);\n },\n [],\n );\n const selectGridCell = React.useCallback(\n (rowIndex: number, columnIndex: number, extend: boolean) => {\n if (!cellSelectionEnabled) return;\n const focus = getGridCoordinate(rowIndex, columnIndex);\n if (!focus) return;\n const anchor =\n extend && cellSelection?.anchor\n ? cellSelection.anchor\n : focus;\n onCellSelectionChange({ anchor, focus });\n },\n [cellSelection, cellSelectionEnabled, getGridCoordinate, onCellSelectionChange],\n );\n const handleGridCellPointerDown = React.useCallback(\n (event: React.PointerEvent, rowIndex: number, columnIndex: number) => {\n if (!cellSelectionEnabled || event.button !== 0) return;\n // Keep native text/image dragging from taking ownership of the pointer\n // stream before the range reaches its destination cell.\n event.preventDefault();\n pointerSelectingRef.current = true;\n selectGridCell(rowIndex, columnIndex, event.shiftKey);\n },\n [cellSelectionEnabled, selectGridCell],\n );\n const handleGridCellPointerEnter = React.useCallback(\n (event: React.PointerEvent, rowIndex: number, columnIndex: number) => {\n if (!cellSelectionEnabled || !pointerSelectingRef.current || event.buttons !== 1) return;\n selectGridCell(rowIndex, columnIndex, true);\n },\n [cellSelectionEnabled, selectGridCell],\n );\n React.useEffect(() => {\n const stopSelecting = () => { pointerSelectingRef.current = false; };\n window.addEventListener(\"pointerup\", stopSelecting);\n return () => window.removeEventListener(\"pointerup\", stopSelecting);\n }, []);\n\n // Keep focus on the roving cell after sorting, filtering, or a virtual row\n // range changes. A missing target is normal while a virtualizer is rendering.\n React.useEffect(() => {\n if (!gridMode) return;\n onGridActiveRowIndexChange?.(activeCell.row);\n const frame = requestAnimationFrame(() => {\n const cells = tableScrollContainerRef.current?.querySelectorAll(\n '[data-dtp-grid-cell=\"true\"]',\n );\n const target = Array.from(cells ?? []).find(\n (cell) =>\n Number(cell.dataset.gridRowIndex) === activeCell.row &&\n Number(cell.dataset.gridColumnIndex) === activeCell.column,\n );\n if (target && shouldRestoreGridFocusRef.current) {\n target.focus();\n }\n });\n return () => cancelAnimationFrame(frame);\n }, [activeCell, gridMode, onGridActiveRowIndexChange, tableScrollContainerRef]);\n\n const moveGridFocus = React.useCallback(\n (event: React.KeyboardEvent, row: number, column: number) => {\n if (event.defaultPrevented || event.target !== event.currentTarget) return;\n const pageRows = Math.max(\n 1,\n gridPageSize ?? (\n Math.floor(\n (tableScrollElement?.clientHeight || 0) /\n Math.max(1, (tableScrollElement?.querySelector(\"tr\") as HTMLElement | null)?.offsetHeight || 48),\n ) || 10),\n );\n const lastRow = Math.max(0, displayRowCount - 1);\n const currentColumnPosition = Math.max(\n 0,\n navigableGridColumnIndices.indexOf(column),\n );\n const lastColumnPosition = Math.max(\n 0,\n navigableGridColumnIndices.length - 1,\n );\n let nextRow = row;\n let nextColumnPosition = currentColumnPosition;\n switch (event.key) {\n case \"ArrowUp\": nextRow--; break;\n case \"ArrowDown\": nextRow++; break;\n case \"ArrowLeft\": nextColumnPosition--; break;\n case \"ArrowRight\": nextColumnPosition++; break;\n case \"Home\":\n if (event.ctrlKey || event.metaKey) nextRow = 0;\n nextColumnPosition = 0;\n break;\n case \"End\":\n if (event.ctrlKey || event.metaKey) nextRow = lastRow;\n nextColumnPosition = lastColumnPosition;\n break;\n case \"PageUp\": nextRow -= pageRows; break;\n case \"PageDown\": nextRow += pageRows; break;\n default: return;\n }\n event.preventDefault();\n const nextCell = {\n row: Math.min(lastRow, Math.max(0, nextRow)),\n column:\n navigableGridColumnIndices[\n Math.min(\n lastColumnPosition,\n Math.max(0, nextColumnPosition),\n )\n ] ?? 0,\n };\n setActiveCell(nextCell);\n if (event.shiftKey && cellSelectionEnabled) {\n const focus = getGridCoordinate(nextCell.row, nextCell.column);\n const anchor =\n cellSelection?.anchor ?? getGridCoordinate(row, column) ?? focus;\n if (anchor && focus) onCellSelectionChange({ anchor, focus });\n }\n },\n [\n cellSelection,\n cellSelectionEnabled,\n displayRowCount,\n getGridCoordinate,\n gridPageSize,\n navigableGridColumnIndices,\n onCellSelectionChange,\n tableScrollElement,\n ],\n );\n const renderBodyRow = (\n row: Row,\n rowIndex: number,\n pinnedPosition?: Exclude,\n ) => {\n const originalRow = row.original;\n const isInitialLoadingRow = isDataTableLoadingRow(originalRow);\n const loadingState = isInitialLoadingRow\n ? { isLoading: true }\n : getRowLoadingState?.(originalRow, rowIndex);\n const resolvedLoadingState: DataTableRowLoadingState | undefined =\n typeof loadingState === \"boolean\"\n ? { isLoading: loadingState }\n : loadingState;\n const isDraggable = isInitialLoadingRow\n ? false\n : (dragAndDrop?.getRowDraggable?.(originalRow) ?? false);\n\n return (\n \n );\n };\n\n return (\n \n \n \n
\n \n \n {table.getVisibleLeafColumns().map((column) => {\n const layout = getColumnLayout(column.id);\n return ;\n })}\n \n \n {table.getHeaderGroups().map((headerGroup) => (\n \n {headerGroup.headers.map((header) => (\n column.id !== \"__spacer__\",\n )\n .findIndex(\n (column) =>\n column.id === header.column.id,\n ) + 1\n }\n />\n ))}\n \n ))}\n \n \n {topPinnedRows.length || renderedRows.length || bottomPinnedRows.length ? (\n <>\n {topPinnedRows.map((row, index) =>\n renderBodyRow(row, index, \"top\"),\n )}\n {virtualPaddingTop > 0 ? (\n \n \n \n ) : null}\n {rowsToRender.map(({ row, rowIndex }) =>\n renderBodyRow(row, rowIndex + topPinnedRows.length),\n )}\n {virtualPaddingBottom > 0 ? (\n \n \n \n ) : null}\n {bottomPinnedRows.map((row, index) =>\n renderBodyRow(\n row,\n topPinnedRows.length + renderedRows.length + index,\n \"bottom\",\n ),\n )}\n \n ) : (\n \n \n
\n {emptyNode ?? (\n \n )}\n
\n \n
\n )}\n
\n {summaryRows.length ? (\n \n {summaryRows.map((summaryRow, summaryIndex) => (\n \n {visibleLeafColumns.map((column, index) => {\n const layout = getColumnLayout(column.id);\n const content = layout.isSpacerColumn\n ? null\n : (summaryRow.cells[column.id] ??\n (index === 0 ? summaryRow.label : null));\n return (\n \n {typeof content === \"function\"\n ? content({\n rows: summarySourceRows,\n columnId: column.id,\n })\n : content}\n \n );\n })}\n \n ))}\n \n ) : null}\n \n
\n\n {infiniteScroll?.enabled &&\n renderedRows.length &&\n !shouldRenderInitialLoading ? (\n
\n
\n
\n ) : null}\n \n \n
\n {stateOverlayNode}\n \n );\n}\n\nfunction getHeaderLayout(\n header: Header,\n getColumnLayout: (columnId: string) => DataTableColumnLayout,\n) {\n const columnLayout = getColumnLayout(header.column.id);\n if (header.isPlaceholder || !header.subHeaders.length) {\n return columnLayout;\n }\n\n const leafLayouts = header\n .getLeafHeaders()\n .filter((leafHeader) => !leafHeader.subHeaders.length)\n .map((leafHeader) => getColumnLayout(leafHeader.column.id));\n const fixedSide = leafLayouts[0]?.fixedSide;\n\n if (\n !fixedSide ||\n !leafLayouts.every((layout) => layout.fixedSide === fixedSide)\n ) {\n return columnLayout;\n }\n\n const edgeLayout =\n fixedSide === \"left\" ? leafLayouts[0] : leafLayouts.at(-1);\n\n return {\n ...columnLayout,\n fixedSide,\n headerStyle: edgeLayout?.headerStyle\n ? {\n left: edgeLayout.headerStyle.left,\n right: edgeLayout.headerStyle.right,\n }\n : undefined,\n pinnedClassName: edgeLayout?.pinnedClassName,\n };\n}\n"]} \ No newline at end of file diff --git a/dist/data-table-virtual-table-panel-M45Y62V4.js b/dist/data-table-virtual-table-panel-M45Y62V4.js new file mode 100644 index 0000000..805950c --- /dev/null +++ b/dist/data-table-virtual-table-panel-M45Y62V4.js @@ -0,0 +1,2 @@ +export{a as DataTableVirtualTablePanel}from'./chunk-UADXBI2T.js';import'./chunk-YESJ52D2.js';import'./chunk-YWMYYP3I.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';//# sourceMappingURL=data-table-virtual-table-panel-M45Y62V4.js.map +//# sourceMappingURL=data-table-virtual-table-panel-M45Y62V4.js.map \ No newline at end of file diff --git a/dist/data-table-virtual-table-panel-UK5AMT4Q.js.map b/dist/data-table-virtual-table-panel-M45Y62V4.js.map similarity index 62% rename from dist/data-table-virtual-table-panel-UK5AMT4Q.js.map rename to dist/data-table-virtual-table-panel-M45Y62V4.js.map index 64310ef..d037919 100644 --- a/dist/data-table-virtual-table-panel-UK5AMT4Q.js.map +++ b/dist/data-table-virtual-table-panel-M45Y62V4.js.map @@ -1 +1 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"data-table-virtual-table-panel-UK5AMT4Q.js"} \ No newline at end of file +{"version":3,"sources":[],"names":[],"mappings":"","file":"data-table-virtual-table-panel-M45Y62V4.js"} \ No newline at end of file diff --git a/dist/data-table-virtual-table-panel-UK5AMT4Q.js b/dist/data-table-virtual-table-panel-UK5AMT4Q.js deleted file mode 100644 index e37752d..0000000 --- a/dist/data-table-virtual-table-panel-UK5AMT4Q.js +++ /dev/null @@ -1,2 +0,0 @@ -export{a as DataTableVirtualTablePanel}from'./chunk-IZQDLLCH.js';import'./chunk-YKVWP3UJ.js';import'./chunk-YWMYYP3I.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-7IWMFF7E.js';import'./chunk-XTVBESM5.js';//# sourceMappingURL=data-table-virtual-table-panel-UK5AMT4Q.js.map -//# sourceMappingURL=data-table-virtual-table-panel-UK5AMT4Q.js.map \ No newline at end of file diff --git a/dist/heroui-virtual.js b/dist/heroui-virtual.js index 34b2f03..1d3d85d 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-UMW6DOXG.js';import'./chunk-LTEXTQ2M.js';import'./chunk-IZQDLLCH.js';import'./chunk-VSIOOKCO.js';import'./chunk-XZTPNWJD.js';import'./chunk-EJHT5JBZ.js';import'./chunk-YKVWP3UJ.js';import'./chunk-YWMYYP3I.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-KUDBNY6E.js';import'./chunk-LTEXTQ2M.js';import'./chunk-UADXBI2T.js';import'./chunk-VSIOOKCO.js';import'./chunk-NYFLVBJD.js';import'./chunk-EJHT5JBZ.js';import'./chunk-YESJ52D2.js';import'./chunk-YWMYYP3I.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 4effe21..a45e4ac 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-XZTPNWJD.js';import'./chunk-EJHT5JBZ.js';import'./chunk-YKVWP3UJ.js';import'./chunk-YWMYYP3I.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-NYFLVBJD.js';import'./chunk-EJHT5JBZ.js';import'./chunk-YESJ52D2.js';import'./chunk-YWMYYP3I.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 af89e38..e921636 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,2 +1,2 @@ -import {a as a$1}from'./chunk-RS7MSX54.js';import'./chunk-VSIOOKCO.js';import {i}from'./chunk-XZTPNWJD.js';import'./chunk-EJHT5JBZ.js';import'./chunk-YKVWP3UJ.js';import'./chunk-YWMYYP3I.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-RS7MSX54.js';import'./chunk-VSIOOKCO.js';import {i}from'./chunk-NYFLVBJD.js';import'./chunk-EJHT5JBZ.js';import'./chunk-YESJ52D2.js';import'./chunk-YWMYYP3I.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 a53fa65..0ba48b3 100644 --- a/dist/thegridcn-virtual.js +++ b/dist/thegridcn-virtual.js @@ -1,2 +1,2 @@ -import {a as a$1}from'./chunk-UMW6DOXG.js';import'./chunk-LTEXTQ2M.js';import'./chunk-IZQDLLCH.js';import {a as a$2}from'./chunk-2JHOYUSH.js';import'./chunk-VSIOOKCO.js';import'./chunk-XZTPNWJD.js';import'./chunk-EJHT5JBZ.js';import'./chunk-YKVWP3UJ.js';import'./chunk-YWMYYP3I.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-KUDBNY6E.js';import'./chunk-LTEXTQ2M.js';import'./chunk-UADXBI2T.js';import {a as a$2}from'./chunk-2JHOYUSH.js';import'./chunk-VSIOOKCO.js';import'./chunk-NYFLVBJD.js';import'./chunk-EJHT5JBZ.js';import'./chunk-YESJ52D2.js';import'./chunk-YWMYYP3I.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 f2e0cfe..44336c4 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-XZTPNWJD.js';import'./chunk-EJHT5JBZ.js';import'./chunk-YKVWP3UJ.js';import'./chunk-YWMYYP3I.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-NYFLVBJD.js';import'./chunk-EJHT5JBZ.js';import'./chunk-YESJ52D2.js';import'./chunk-YWMYYP3I.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 403e821..0ef1e3e 100644 --- a/dist/virtual.js +++ b/dist/virtual.js @@ -1,2 +1,2 @@ -import {a as a$1}from'./chunk-RS7MSX54.js';import {a}from'./chunk-UMW6DOXG.js';import'./chunk-LTEXTQ2M.js';import'./chunk-IZQDLLCH.js';import'./chunk-VSIOOKCO.js';import'./chunk-XZTPNWJD.js';import'./chunk-EJHT5JBZ.js';import'./chunk-YKVWP3UJ.js';import'./chunk-YWMYYP3I.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-RS7MSX54.js';import {a}from'./chunk-KUDBNY6E.js';import'./chunk-LTEXTQ2M.js';import'./chunk-UADXBI2T.js';import'./chunk-VSIOOKCO.js';import'./chunk-NYFLVBJD.js';import'./chunk-EJHT5JBZ.js';import'./chunk-YESJ52D2.js';import'./chunk-YWMYYP3I.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 84e4042..d4ef1da 100644 --- a/docs/API.md +++ b/docs/API.md @@ -951,9 +951,11 @@ only when that record is included in the supplied `data` window. In `layoutMode="fill"`, a genuine flexible data column consumes unused width. When every currently visible data column has a configured or user-sized fixed -width, the table inserts an internal transparent spacer after the data columns -and before the actions column instead. Fixed columns retain their widths, and -their combined minimum width still causes horizontal overflow when necessary. +width, the table inserts an internal empty spacer after the data columns and +before the actions column instead. The spacer retains the same header and row +borders/backgrounds as neighboring cells so the table grid remains visually +continuous. Fixed columns retain their widths, and their combined minimum +width still causes horizontal overflow when necessary. The default persistence envelope is: diff --git a/docs/Migration.md b/docs/Migration.md index 0768621..108ea18 100644 --- a/docs/Migration.md +++ b/docs/Migration.md @@ -1,5 +1,16 @@ # Migration Guide +## 5.1.0 Fill spacer rendering + +No consumer migration is required for 5.1.0. The internal `__spacer__` column +now uses the same header, body-row, and summary-row borders/backgrounds as its +neighboring cells, so fixed-width fill layouts remain visually continuous +through right-pinned actions. + +The spacer remains package-owned, semantically inert, excluded from keyboard +navigation and export, and subject to the same sizing and overflow rules as in +5.0.0. Applications must continue not to define or reference `__spacer__`. + ## 5.0.0 Breaking Changes: TanStack React Table v9 Version 5.0.0 upgrades from `@tanstack/react-table@8.21.3` to v9.1.2. It @@ -151,9 +162,11 @@ horizontal and vertical scrollbars. Fixed-width `layoutMode="fill"` tables no longer stretch their last visible data column. When all currently visible data columns are fixed, the table -automatically creates a transparent flexible spacer after the data columns and -before right-pinned row actions. Applications should not define, order, pin, -export, or otherwise reference the reserved `__spacer__` column. +automatically creates an empty flexible spacer after the data columns and +before right-pinned row actions. The spacer uses the same header and row +borders and backgrounds as adjacent cells so the table grid remains visually +continuous. Applications should not define, order, pin, export, or otherwise +reference the reserved `__spacer__` column. The spacer decision follows current `columnVisibility`, including leaves in grouped definitions and responsive visibility. Restoring a genuine flexible diff --git a/docs/Roadmap.md b/docs/Roadmap.md index ba3b666..b84cb3c 100644 --- a/docs/Roadmap.md +++ b/docs/Roadmap.md @@ -16,7 +16,7 @@ Audit baseline: Current implementation baseline: -- package version: 5.0.0 +- package version: 5.1.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 diff --git a/package.json b/package.json index 16ddc2c..cdebc60 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "data-table-pro", - "version": "5.0.0", + "version": "5.1.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.test.tsx b/src/core/data-table/create-data-table.test.tsx index 5323de4..3a5ee4d 100644 --- a/src/core/data-table/create-data-table.test.tsx +++ b/src/core/data-table/create-data-table.test.tsx @@ -2405,7 +2405,9 @@ for (const suite of suites) { expect( screen.getByRole("columnheader", { name: "Role" }).style.minWidth, ).toBe("160px"); - expect(headers[2]?.className).toContain("border-b-0"); + expect(headers[2]?.className).toContain("border-b"); + expect(headers[2]?.className).not.toContain("border-b-0"); + expect(headers[2]?.className).not.toContain("bg-transparent"); expect(headers[2]?.textContent).toBe(""); expect(headers[3]?.className).toContain("sticky"); expect(headers[3]?.style.right).toBe("0px"); @@ -2591,6 +2593,7 @@ describe("DataTable fill spacer", () => { layoutMode="fill" showFooter={false} showToolbar={false} + summaryRows={[{ key: "total", label: "Total", cells: {} }]} />, ); @@ -2603,6 +2606,9 @@ describe("DataTable fill spacer", () => { const spacerCell = container.querySelector( 'tbody [data-column-id="__spacer__"]', ); + const summarySpacerCell = container.querySelector( + 'tfoot [data-column-id="__spacer__"]', + ); expect(leafHeaders.map((header) => header.dataset.columnId)).toEqual([ "name", @@ -2610,17 +2616,26 @@ describe("DataTable fill spacer", () => { "__spacer__", ]); expect(spacerHeader?.textContent).toBe(""); - expect(spacerHeader?.className).toContain("border-b-0"); - expect(spacerHeader?.className).toContain("bg-transparent"); + expect(spacerHeader?.className).toContain("border-b"); + expect(spacerHeader?.className).not.toContain("border-b-0"); + expect(spacerHeader?.className).not.toContain("bg-transparent"); expect(spacerHeader?.getAttribute("aria-hidden")).toBe("true"); expect(spacerHeader?.querySelector("button")).toBeNull(); expect(spacerCell?.textContent).toBe(""); - expect(spacerCell?.className).toContain("border-b-0"); - expect(spacerCell?.className).toContain("bg-transparent"); + expect(spacerCell?.className).toContain("border-b"); + expect(spacerCell?.className).toContain("border-border/40"); + expect(spacerCell?.className).not.toContain("border-b-0"); + expect(spacerCell?.className).not.toContain("bg-transparent"); expect(spacerCell?.getAttribute("role")).toBe("presentation"); expect(spacerCell?.getAttribute("tabindex")).toBeNull(); + expect(summarySpacerCell?.textContent).toBe(""); + expect(summarySpacerCell?.className).toContain("border-b"); + expect(summarySpacerCell?.className).toContain("border-border/40"); + expect(summarySpacerCell?.className).not.toContain("border-b-0"); + expect(summarySpacerCell?.className).not.toContain("bg-transparent"); + expect(summarySpacerCell?.getAttribute("role")).toBe("presentation"); expect(screen.getByRole("grid").getAttribute("aria-colcount")).toBe("2"); - expect(screen.getAllByRole("gridcell")).toHaveLength(2); + expect(screen.getAllByRole("gridcell")).toHaveLength(4); expect( screen.getByRole("columnheader", { name: "Name" }).style.width, ).toBe("120px"); diff --git a/src/core/data-table/data-table-body-row.tsx b/src/core/data-table/data-table-body-row.tsx index b8ba9fd..1d4d081 100644 --- a/src/core/data-table/data-table-body-row.tsx +++ b/src/core/data-table/data-table-body-row.tsx @@ -369,7 +369,7 @@ function DataTableBodyRowInner({ uiClassNames.cellBorder, isCellSelected && uiClassNames.cellSelected, layout?.utilityClassName, - layout?.isSpacerColumn && "border-b-0 bg-transparent! p-0", + layout?.isSpacerColumn && "p-0", layout?.pinnedClassName, hideClassName, cellAlignClassName(cellContext), diff --git a/src/core/data-table/data-table-header-cell.tsx b/src/core/data-table/data-table-header-cell.tsx index f86ad63..789153f 100644 --- a/src/core/data-table/data-table-header-cell.tsx +++ b/src/core/data-table/data-table-header-cell.tsx @@ -128,7 +128,7 @@ function DataTableHeaderCellInner({ getDensityHeaderClassName(currentDensity), isColumnGroup && uiClassNames.columnGroupHeader, layout.utilityClassName, - layout.isSpacerColumn && "border-b-0 bg-transparent! p-0", + layout.isSpacerColumn && "p-0", layout.pinnedClassName, hideClassName, headerAlignClassName(header.getContext()), diff --git a/src/core/data-table/data-table-table-panel.tsx b/src/core/data-table/data-table-table-panel.tsx index c0ea715..9b7b7fc 100644 --- a/src/core/data-table/data-table-table-panel.tsx +++ b/src/core/data-table/data-table-table-panel.tsx @@ -675,11 +675,9 @@ export function DataTableTablePanel({ layout.isSpacerColumn || undefined } className={cn( - layout.isSpacerColumn - ? "border-b-0 bg-transparent! p-0" - : "border-b font-medium", - !layout.isSpacerColumn && - uiClassNames.cellBorder, + "border-b", + layout.isSpacerColumn ? "p-0" : "font-medium", + uiClassNames.cellBorder, )} style={layout.cellStyle} >