@trsys-tech/matrix-library 1.1.8-alpha.2 → 1.1.8-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"datatablecontent.es.js","sources":["../src/components/data-table/DataTableContent.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { DragDropProvider, DragOverlay } from \"@dnd-kit/react\";\nimport type { Column } from \"@tanstack/react-table\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../button/Button\";\nimport { DataTableAlignmentContext, useDataTable } from \"./DataTableContext\";\nimport { dataTableColumnSensors } from \"./dataTableColumnDrag\";\nimport { getActiveDataTableCell } from \"./dataTableModel\";\nimport { useDataTableInstance } from \"./useDataTableInstance\";\nimport { DataTableHeader } from \"./DataTableHeader\";\nimport { DataTablePagination } from \"./DataTablePagination\";\nimport { DataTableRowView } from \"./DataTableRowView\";\nimport { useDataTableColumnDrag } from \"./useDataTableColumnDrag\";\nimport { useDataTableMotion } from \"./useDataTableMotion\";\nimport { useDataTableApi, type DataTableRuntime } from \"./useDataTableApi\";\nimport type { DataTableEditSession } from \"./dataTableEditing\";\nimport type { DataTableApi, DataTableContentProps, DataTableFeatures, DataTableRow } from \"./DataTable.types\";\n\nconst emptyRows: never[] = [];\nconst emptyColumn: Record<string, never> = {};\n\nfunction DataTableContentInner<T extends object>(\n {\n rowData,\n columnDefs,\n defaultColDef = emptyColumn,\n getRowId,\n onReady,\n rowSelection,\n renderSubComponent,\n getRowCanExpand,\n onSelectionChanged,\n quickFilterText,\n onQuickFilterTextChange,\n externalFilter,\n loading = false,\n emptyContent = \"No rows to display\",\n loadingContent = \"Loading…\",\n rowHeight = 36,\n headerHeight = 40,\n getRowClass,\n rowClassRules,\n pinnedTopRowData = emptyRows,\n pinnedBottomRowData = emptyRows,\n pagination = false,\n paginationPageSize = 25,\n paginationPageSizeSelector = [10, 25, 50, 100],\n virtualize = true,\n overscan = 8,\n domLayout = \"normal\",\n suppressHorizontalScroll = false,\n editType = \"cell\",\n suppressClickEdit = false,\n readOnlyEdit = false,\n validateRow,\n onEditCommit,\n onEditRequest,\n onEditCancel,\n onRowClick,\n tableOptions,\n containerStyle,\n className,\n style,\n ...props\n }: DataTableContentProps<T>,\n forwardedRef: React.ForwardedRef<DataTableApi<T>>,\n) {\n \"use no memo\";\n const { setApi, search, hasSearch, setSearch, setCounts } = useDataTable<T>();\n const alignment = React.useContext(DataTableAlignmentContext);\n const detailId = React.useId();\n const viewportRef = React.useRef<HTMLDivElement>(null);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const [viewportWidth, setViewportWidth] = React.useState(0);\n const [printing, setPrinting] = React.useState(false);\n const [columnDrag, setColumnDrag] = React.useState<{ sourceId: string; targetId: string } | null>(null);\n const [focusedCell, setFocusedCell] = React.useState<{ rowId: string; columnId: string } | null>(null);\n const [patches, setPatches] = React.useState<Record<string, { source: T; data: T }>>({});\n const [edit, setEdit] = React.useState<DataTableEditSession<T> | null>(null);\n const [initialSearch] = React.useState(() => tableOptions?.initialState?.globalFilter ?? \"\");\n const editRef = React.useRef(edit);\n const configRef = React.useRef({ columnDefs, validateRow, readOnlyEdit, onEditCommit, onEditRequest, onEditCancel });\n configRef.current = { columnDefs, validateRow, readOnlyEdit, onEditCommit, onEditRequest, onEditCancel };\n const updateEdit = React.useCallback((next: DataTableEditSession<T> | null) => {\n editRef.current = next;\n setEdit(next);\n }, []);\n const isPrinting = printing || domLayout === \"print\";\n const naturalHeight = isPrinting || domLayout === \"autoHeight\";\n const searchText = quickFilterText ?? tableOptions?.state?.globalFilter ?? (hasSearch ? search : initialSearch);\n const showCheckboxes = !!rowSelection && rowSelection.checkboxes !== false && !isPrinting;\n const showExpanders = !!renderSubComponent && !isPrinting;\n const expanderWidth = showExpanders ? 44 : 0;\n const selectionWidth = (showCheckboxes ? 44 : 0) + expanderWidth;\n const { table, definitionsById, sourcesById, data, rowIndices, resolveId } = useDataTableInstance({\n rowData,\n columnDefs,\n defaultColDef,\n getRowId,\n paginationPageSize,\n tableOptions,\n externalFilter,\n rowSelection,\n pagination,\n renderSubComponent,\n getRowCanExpand,\n onQuickFilterTextChange,\n patches,\n alignment,\n isPrinting,\n viewportWidth,\n selectionWidth,\n searchText,\n setSearch,\n });\n\n const visibleColumns = [...table.getStartVisibleLeafColumns(), ...table.getCenterVisibleLeafColumns(), ...table.getEndVisibleLeafColumns()].filter(\n column => column.id !== \"__external\" && (!isPrinting || !definitionsById.get(column.id)?.hideInPrint),\n );\n // Preview locally so canceled drags never update controlled or aligned table state.\n if (columnDrag) {\n const from = visibleColumns.findIndex(column => column.id === columnDrag.sourceId);\n const to = visibleColumns.findIndex(column => column.id === columnDrag.targetId);\n if (from >= 0 && to >= 0) visibleColumns.splice(to, 0, visibleColumns.splice(from, 1)[0]);\n }\n const widths = new Map(visibleColumns.map(column => [column.id, column.getSize()]));\n const totalWidth = selectionWidth + visibleColumns.reduce((sum, column) => sum + widths.get(column.id)!, 0);\n const topRows = table.getTopRows();\n const bottomRows = table.getBottomRows();\n const pinnedIds = new Set([...topRows, ...bottomRows].map(row => row.id));\n const centerRows = (isPrinting ? table.getPrePaginatedRowModel().rows : table.getRowModel().rows).filter(row => !pinnedIds.has(row.id));\n const isDetailExpanded = (row: DataTableRow<T>) => !!renderSubComponent && row.getCanExpand() && row.getIsExpanded();\n // Detail panels can have arbitrary height. Resume fixed-height virtualization when all visible panels close.\n const hasExpandedDetails = [...topRows, ...centerRows, ...bottomRows].some(isDetailExpanded);\n const useVirtualRows = virtualize && !naturalHeight && !hasExpandedDetails;\n const topHeight = (topRows.length + pinnedTopRowData.length) * rowHeight;\n // This renderer opts out of React Compiler above; Virtual exposes a mutable measurement instance.\n // eslint-disable-next-line react-hooks/incompatible-library\n const virtualizer = useVirtualizer({\n count: centerRows.length,\n getScrollElement: () => viewportRef.current,\n estimateSize: () => rowHeight,\n getItemKey: index => centerRows[index].id,\n overscan,\n scrollMargin: headerHeight + topHeight,\n enabled: useVirtualRows,\n useFlushSync: false,\n });\n\n const runtime = React.useRef<DataTableRuntime<T>>({\n table,\n definitionsById,\n centerRows,\n virtualizer,\n resolveId,\n rowIndices,\n sourcesById,\n useVirtualRows,\n pagination,\n serverPagination: tableOptions?.manualPagination === true,\n });\n runtime.current = {\n table,\n definitionsById,\n centerRows,\n virtualizer,\n resolveId,\n rowIndices,\n sourcesById,\n useVirtualRows,\n pagination,\n serverPagination: tableOptions?.manualPagination === true,\n };\n const columnDragHandlers = useDataTableColumnDrag({ runtime, viewportRef, contentRef, setColumnDrag });\n const api = useDataTableApi({ runtime, editRef, configRef, updateEdit, setPatches, contentRef, viewportRef, setPrinting });\n React.useImperativeHandle(forwardedRef, () => api, [api]);\n\n React.useEffect(() => {\n setApi(api);\n return () => setApi(previous => (previous === api ? null : previous));\n }, [api, setApi]);\n const readyRef = React.useRef(onReady);\n readyRef.current = onReady;\n React.useEffect(() => {\n readyRef.current?.(api);\n }, [api]);\n const selectionCallback = React.useRef(onSelectionChanged);\n selectionCallback.current = onSelectionChanged;\n React.useEffect(() => {\n const current = runtime.current.table;\n const selected = current.getSelectedRowModel().rows.map(row => row.original);\n selectionCallback.current?.(selected, current.getSelectedRowIds());\n }, [table.state.rowSelection, data]);\n React.useEffect(() => {\n const current = runtime.current.table;\n const selectedCount = current.getSelectedRowIds().length;\n const pinnedCount = (current.state.rowPinning.top?.length ?? 0) + (current.state.rowPinning.bottom?.length ?? 0);\n setCounts(previous =>\n previous.selectedCount === selectedCount && previous.pinnedCount === pinnedCount ? previous : { selectedCount, pinnedCount },\n );\n }, [table.state.rowSelection, table.state.rowPinning, setCounts]);\n React.useEffect(() => {\n const element = viewportRef.current;\n if (!element) return;\n const resize = () => setViewportWidth(element.clientWidth);\n resize();\n const observer = new ResizeObserver(resize);\n observer.observe(element);\n return () => observer.disconnect();\n }, []);\n React.useEffect(() => {\n const element = viewportRef.current;\n const viewports = alignment?.viewports.current;\n if (!element || !viewports) return;\n viewports.add(element);\n return () => {\n viewports.delete(element);\n };\n }, [alignment?.viewports]);\n React.useEffect(() => {\n if (editRef.current && sourcesById.get(editRef.current.rowId) !== editRef.current.source) {\n api.stopEditing(true);\n }\n setPatches(previous => {\n const entries = Object.entries(previous).filter(([id, patch]) => sourcesById.get(id) === patch.source);\n return entries.length === Object.keys(previous).length ? previous : Object.fromEntries(entries);\n });\n const current = runtime.current.table;\n if (!runtime.current.serverPagination) {\n // Locally owned datasets can discard deleted identities. Server pages retain unloaded selection IDs.\n const selection = current.atoms.rowSelection.get();\n const entries = Object.entries(selection).filter(([id]) => sourcesById.has(id));\n if (entries.length !== Object.keys(selection).length) current.setRowSelection(Object.fromEntries(entries));\n const pinning = current.atoms.rowPinning.get();\n const top = pinning.top?.filter(id => sourcesById.has(id));\n const bottom = pinning.bottom?.filter(id => sourcesById.has(id));\n if (top?.length !== pinning.top?.length || bottom?.length !== pinning.bottom?.length) current.setRowPinning({ top, bottom });\n }\n }, [sourcesById, api]);\n\n const navigableRows = [...topRows, ...centerRows, ...bottomRows];\n const displayedIds = [\n ...pinnedTopRowData.map((_, index) => `__summary_top_${index}`),\n ...topRows.map(row => row.id),\n ...centerRows.map(row => row.id),\n ...bottomRows.map(row => row.id),\n ...pinnedBottomRowData.map((_, index) => `__summary_bottom_${index}`),\n ];\n const expandedIds = new Set(navigableRows.filter(isDetailExpanded).map(row => row.id));\n let displayedRowCount = 0;\n const displayedIndices = new Map(\n displayedIds.map(id => {\n const index = displayedRowCount;\n displayedRowCount += expandedIds.has(id) ? 2 : 1;\n return [id, index];\n }),\n );\n const virtualItems = useVirtualRows ? virtualizer.getVirtualItems() : [];\n const renderedIds = useVirtualRows\n ? [\n ...displayedIds.slice(0, pinnedTopRowData.length + topRows.length),\n ...virtualItems.map(item => centerRows[item.index].id),\n ...bottomRows.map(row => row.id),\n ...pinnedBottomRowData.map((_, index) => `__summary_bottom_${index}`),\n ]\n : displayedIds;\n const activeCell = getActiveDataTableCell(\n focusedCell,\n renderedIds,\n visibleColumns.map(column => column.id),\n );\n\n useDataTableMotion(viewportRef, JSON.stringify(centerRows.map(row => row.id)), JSON.stringify(visibleColumns.map(column => column.id)), isPrinting);\n\n const columnStyle = (column: Column<DataTableFeatures, T>, header = false): React.CSSProperties => {\n const pinned = isPrinting ? false : column.getIsPinned();\n const region = visibleColumns.filter(item => item.getIsPinned() === pinned);\n const index = region.findIndex(item => item.id === column.id);\n const start = region.slice(0, index).reduce((sum, item) => sum + widths.get(item.id)!, selectionWidth);\n const end = region.slice(index + 1).reduce((sum, item) => sum + widths.get(item.id)!, 0);\n return {\n width: widths.get(column.id),\n flexShrink: 0,\n position: pinned ? \"sticky\" : \"relative\",\n insetInlineStart: pinned === \"start\" ? start : undefined,\n insetInlineEnd: pinned === \"end\" ? end : undefined,\n zIndex: pinned ? 2 : undefined,\n background: pinned ? (header ? \"oklch(var(--mtx-primary-50))\" : \"inherit\") : undefined,\n };\n };\n\n const handleCellKeyDown = (event: React.KeyboardEvent, row: DataTableRow<T>, column: Column<DataTableFeatures, T>) => {\n if (event.defaultPrevented) return;\n if (event.key === \"Escape\" && editRef.current) {\n event.preventDefault();\n api.stopEditing(true);\n return;\n }\n if (event.key === \"Enter\" && editRef.current) {\n // Editors own activation and multiline input; plain text/number inputs still commit on Enter.\n if ((event.target as HTMLElement).closest(\"button,select,textarea,[contenteditable=true],[role=combobox],[role=listbox]\")) return;\n event.preventDefault();\n api.stopEditing();\n return;\n }\n const target = event.target as HTMLElement;\n if (target.closest(\"input,select,textarea,button,[contenteditable=true]\")) return;\n if (event.key === \"Enter\" || event.key === \"F2\") {\n event.preventDefault();\n if (editType === \"fullRow\") api.startEditingRow(row.id);\n else api.startEditingCell({ rowId: row.id, columnId: column.id });\n return;\n }\n const rowIndex = navigableRows.findIndex(item => item.id === row.id);\n const columnIndex = visibleColumns.findIndex(item => item.id === column.id);\n const nextRow = event.key === \"ArrowDown\" ? rowIndex + 1 : event.key === \"ArrowUp\" ? rowIndex - 1 : rowIndex;\n const horizontalStep = getComputedStyle(event.currentTarget).direction === \"rtl\" ? -1 : 1;\n const nextColumn =\n event.key === \"ArrowRight\" ? columnIndex + horizontalStep : event.key === \"ArrowLeft\" ? columnIndex - horizontalStep : columnIndex;\n if ([\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"].includes(event.key) && navigableRows[nextRow] && visibleColumns[nextColumn]) {\n event.preventDefault();\n const targetRow = navigableRows[nextRow];\n if (!pinnedIds.has(targetRow.id)) api.scrollToRow(targetRow.id);\n api.focusCell(targetRow.id, visibleColumns[nextColumn].id);\n }\n };\n\n const renderRow = (data: T, rowId: string, index: number, row?: DataTableRow<T>, pinned?: \"top\" | \"bottom\") => (\n <DataTableRowView\n key={rowId}\n {...{\n data,\n rowId,\n index,\n row,\n pinned,\n edit,\n editRef,\n updateEdit,\n api,\n table,\n detailId,\n displayedIndices,\n rowSelection,\n rowHeight,\n totalWidth,\n getRowClass,\n rowClassRules,\n onRowClick,\n showExpanders,\n expanderWidth,\n showCheckboxes,\n visibleColumns,\n definitionsById,\n activeCell,\n setFocusedCell,\n columnStyle,\n handleCellKeyDown,\n suppressClickEdit,\n editType,\n renderSubComponent,\n isDetailExpanded,\n }}\n />\n );\n\n const selectionRows = (\n rowSelection?.selectAll === \"all\"\n ? table.getCoreRowModel()\n : rowSelection?.selectAll === \"currentPage\"\n ? table.getRowModel()\n : table.getFilteredRowModel()\n ).rows.filter(row => row.getCanSelect());\n const selectedInScope = selectionRows.filter(row => row.getIsSelected()).length;\n return (\n <DragDropProvider sensors={dataTableColumnSensors} {...columnDragHandlers}>\n <DragOverlay dropAnimation={null} style={{ position: \"fixed\", pointerEvents: \"none\" }}>\n {source => {\n const definition = definitionsById.get(source.data.columnId);\n return (\n <div className=\"mtx-rounded-sm mtx-border mtx-border-gray-200 mtx-bg-primary-50 mtx-px-3 mtx-py-2 mtx-text-xs mtx-font-bold mtx-shadow-md\">\n {definition?.headerName ?? source.data.columnId}\n </div>\n );\n }}\n </DragOverlay>\n <div\n ref={contentRef}\n data-data-table-content=\"\"\n data-print-layout={isPrinting || undefined}\n className={cn(\"mtx-relative mtx-flex mtx-min-h-0 mtx-flex-1 mtx-flex-col mtx-rounded-b-lg\", className)}\n style={style}\n {...props}\n >\n {edit && (\n <div data-print-hidden=\"\" className=\"mtx-flex mtx-shrink-0 mtx-items-center mtx-gap-2 mtx-border-b mtx-border-gray-200 mtx-p-2\">\n <Button type=\"button\" size=\"sm\" onClick={() => api.stopEditing()}>\n Save\n </Button>\n <Button type=\"button\" size=\"sm\" variant=\"text\" onClick={() => api.stopEditing(true)}>\n Cancel\n </Button>\n {edit.errors.length > 0 && (\n <span role=\"alert\" className=\"mtx-text-danger\">\n {edit.errors.join(\". \")}\n </span>\n )}\n </div>\n )}\n <div\n ref={viewportRef}\n data-data-table-viewport=\"\"\n role=\"grid\"\n aria-label={props[\"aria-label\"] ?? \"Data table\"}\n aria-busy={loading}\n aria-rowcount={displayedRowCount + 1}\n aria-colcount={visibleColumns.length + (showCheckboxes ? 1 : 0) + (showExpanders ? 1 : 0)}\n aria-multiselectable={rowSelection?.mode === \"multiRow\" || undefined}\n className=\"mtx-relative mtx-min-h-0 mtx-flex-1 mtx-rounded-b-lg\"\n style={{\n ...containerStyle,\n overflow: naturalHeight ? \"visible\" : (containerStyle?.overflow ?? \"auto\"),\n overflowX: isPrinting ? \"visible\" : suppressHorizontalScroll ? \"hidden\" : containerStyle?.overflowX,\n }}\n onScroll={event => {\n if (alignment && !isPrinting)\n for (const element of alignment.viewports.current) {\n if (element !== event.currentTarget && element.scrollLeft !== event.currentTarget.scrollLeft)\n element.scrollLeft = event.currentTarget.scrollLeft;\n }\n }}\n >\n <DataTableHeader\n {...{\n table,\n api,\n headerHeight,\n totalWidth,\n isPrinting,\n showExpanders,\n expanderWidth,\n showCheckboxes,\n rowSelection,\n selectionRows,\n selectedInScope,\n visibleColumns,\n definitionsById,\n columnStyle,\n widths,\n }}\n />\n {(topRows.length > 0 || pinnedTopRowData.length > 0) && (\n <div\n role=\"rowgroup\"\n className=\"mtx-sticky mtx-z-20\"\n style={{ top: isPrinting ? undefined : headerHeight, position: isPrinting ? \"relative\" : \"sticky\" }}\n >\n {pinnedTopRowData.map((row, index) => renderRow(row, `__summary_top_${index}`, index, undefined, \"top\"))}\n {topRows.map(row => renderRow(row.original, row.id, row.index, row, \"top\"))}\n </div>\n )}\n <div role=\"rowgroup\">\n {useVirtualRows ? (\n <div style={{ height: virtualizer.getTotalSize(), position: \"relative\", width: totalWidth, minWidth: \"100%\" }}>\n {virtualItems.map(item => {\n const row = centerRows[item.index];\n return (\n <div\n key={row.id}\n style={{ position: \"absolute\", top: 0, width: \"100%\", transform: `translateY(${item.start - headerHeight - topHeight}px)` }}\n >\n {renderRow(row.original, row.id, rowIndices.get(row.original) ?? row.index, row)}\n </div>\n );\n })}\n </div>\n ) : (\n centerRows.map(row => renderRow(row.original, row.id, rowIndices.get(row.original) ?? row.index, row))\n )}\n </div>\n {(bottomRows.length > 0 || pinnedBottomRowData.length > 0) && (\n <div role=\"rowgroup\" className=\"mtx-sticky mtx-bottom-0 mtx-z-20\" style={{ position: isPrinting ? \"relative\" : \"sticky\" }}>\n {bottomRows.map(row => renderRow(row.original, row.id, row.index, row, \"bottom\"))}\n {pinnedBottomRowData.map((row, index) => renderRow(row, `__summary_bottom_${index}`, index, undefined, \"bottom\"))}\n </div>\n )}\n {(loading || (!centerRows.length && !topRows.length && !bottomRows.length)) && (\n <div\n role=\"status\"\n className={cn(\n \"mtx-flex mtx-items-center mtx-justify-center mtx-p-6 mtx-text-text-300\",\n loading && \"mtx-absolute mtx-top-0 mtx-start-0 mtx-z-50 mtx-h-full mtx-w-full mtx-bg-gray-100/25\",\n )}\n >\n {loading ? loadingContent : emptyContent}\n </div>\n )}\n </div>\n {pagination && !isPrinting && <DataTablePagination table={table} paginationPageSizeSelector={paginationPageSizeSelector} />}\n </div>\n </DragDropProvider>\n );\n}\n\nconst DataTableContent = React.forwardRef(DataTableContentInner) as <T extends object>(\n props: DataTableContentProps<T> & { ref?: React.ForwardedRef<DataTableApi<T>> },\n) => React.ReactElement;\n(DataTableContent as { displayName?: string }).displayName = \"DataTableContent\";\n\nexport { DataTableContent };\n"],"names":["emptyRows","emptyColumn","DataTableContentInner","rowData","columnDefs","defaultColDef","getRowId","onReady","rowSelection","renderSubComponent","getRowCanExpand","onSelectionChanged","quickFilterText","onQuickFilterTextChange","externalFilter","loading","emptyContent","loadingContent","rowHeight","headerHeight","getRowClass","rowClassRules","pinnedTopRowData","pinnedBottomRowData","pagination","paginationPageSize","paginationPageSizeSelector","virtualize","overscan","domLayout","suppressHorizontalScroll","editType","suppressClickEdit","readOnlyEdit","validateRow","onEditCommit","onEditRequest","onEditCancel","onRowClick","tableOptions","containerStyle","className","style","props","forwardedRef","setApi","search","hasSearch","setSearch","setCounts","useDataTable","alignment","React","DataTableAlignmentContext","detailId","viewportRef","contentRef","viewportWidth","setViewportWidth","printing","setPrinting","columnDrag","setColumnDrag","focusedCell","setFocusedCell","patches","setPatches","edit","setEdit","initialSearch","editRef","configRef","updateEdit","next","isPrinting","naturalHeight","searchText","showCheckboxes","showExpanders","expanderWidth","selectionWidth","table","definitionsById","sourcesById","data","rowIndices","resolveId","useDataTableInstance","visibleColumns","column","from","to","widths","totalWidth","sum","topRows","bottomRows","pinnedIds","row","centerRows","isDetailExpanded","hasExpandedDetails","useVirtualRows","topHeight","virtualizer","useVirtualizer","index","runtime","columnDragHandlers","useDataTableColumnDrag","api","useDataTableApi","previous","readyRef","selectionCallback","current","selected","selectedCount","pinnedCount","element","resize","observer","viewports","entries","id","patch","selection","pinning","top","bottom","navigableRows","displayedIds","_","expandedIds","displayedRowCount","displayedIndices","virtualItems","renderedIds","item","activeCell","getActiveDataTableCell","useDataTableMotion","columnStyle","header","pinned","region","start","end","handleCellKeyDown","event","rowIndex","columnIndex","nextRow","horizontalStep","nextColumn","targetRow","renderRow","rowId","jsx","DataTableRowView","selectionRows","selectedInScope","jsxs","DragDropProvider","dataTableColumnSensors","DragOverlay","source","definition","cn","Button","DataTableHeader","DataTablePagination","DataTableContent"],"mappings":"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"}
1
+ {"version":3,"file":"datatablecontent.es.js","sources":["../src/components/data-table/DataTableContent.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { DragDropProvider, DragOverlay } from \"@dnd-kit/react\";\nimport type { Column } from \"@tanstack/react-table\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../button/Button\";\nimport { DataTableAlignmentContext, useDataTable } from \"./DataTableContext\";\nimport { dataTableColumnSensors } from \"./dataTableColumnDrag\";\nimport { getActiveDataTableCell } from \"./dataTableModel\";\nimport { useDataTableInstance } from \"./useDataTableInstance\";\nimport { DataTableHeader } from \"./DataTableHeader\";\nimport { DataTablePagination } from \"./DataTablePagination\";\nimport { DataTableRowView } from \"./DataTableRowView\";\nimport { useDataTableColumnDrag } from \"./useDataTableColumnDrag\";\nimport { useDataTableMotion } from \"./useDataTableMotion\";\nimport { useDataTableApi, type DataTableRuntime } from \"./useDataTableApi\";\nimport type { DataTableEditSession } from \"./dataTableEditing\";\nimport type { DataTableApi, DataTableContentProps, DataTableFeatures, DataTableRow } from \"./DataTable.types\";\n\nconst emptyRows: never[] = [];\nconst emptyColumn: Record<string, never> = {};\n\nfunction DataTableContentInner<T extends object>(\n {\n rowData,\n columnDefs,\n defaultColDef = emptyColumn,\n getRowId,\n onReady,\n rowSelection,\n renderSubComponent,\n getRowCanExpand,\n onSelectionChanged,\n quickFilterText,\n onQuickFilterTextChange,\n externalFilter,\n loading = false,\n emptyContent = \"No rows to display\",\n loadingContent = \"Loading…\",\n rowHeight = 40,\n headerHeight = 40,\n getRowClass,\n rowClassRules,\n pinnedTopRowData = emptyRows,\n pinnedBottomRowData = emptyRows,\n pagination = false,\n paginationPageSize = 25,\n paginationPageSizeSelector = [10, 25, 50, 100],\n virtualize = true,\n overscan = 8,\n domLayout = \"normal\",\n suppressHorizontalScroll = false,\n editType = \"cell\",\n suppressClickEdit = false,\n readOnlyEdit = false,\n validateRow,\n onEditCommit,\n onEditRequest,\n onEditCancel,\n onRowClick,\n tableOptions,\n containerStyle,\n className,\n style,\n ...props\n }: DataTableContentProps<T>,\n forwardedRef: React.ForwardedRef<DataTableApi<T>>,\n) {\n \"use no memo\";\n const { setApi, search, hasSearch, setSearch, setCounts } = useDataTable<T>();\n const alignment = React.useContext(DataTableAlignmentContext);\n const detailId = React.useId();\n const viewportRef = React.useRef<HTMLDivElement>(null);\n const headerViewportRef = React.useRef<HTMLDivElement>(null);\n const synchronizedHeaderScroll = React.useRef<number | null>(null);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const [viewportWidth, setViewportWidth] = React.useState(0);\n const [printing, setPrinting] = React.useState(false);\n const [columnDrag, setColumnDrag] = React.useState<{ sourceId: string; targetId: string } | null>(null);\n const [focusedCell, setFocusedCell] = React.useState<{ rowId: string; columnId: string } | null>(null);\n const [patches, setPatches] = React.useState<Record<string, { source: T; data: T }>>({});\n const [edit, setEdit] = React.useState<DataTableEditSession<T> | null>(null);\n const [initialSearch] = React.useState(() => tableOptions?.initialState?.globalFilter ?? \"\");\n const editRef = React.useRef(edit);\n const configRef = React.useRef({ columnDefs, validateRow, readOnlyEdit, onEditCommit, onEditRequest, onEditCancel });\n configRef.current = { columnDefs, validateRow, readOnlyEdit, onEditCommit, onEditRequest, onEditCancel };\n const updateEdit = React.useCallback((next: DataTableEditSession<T> | null) => {\n editRef.current = next;\n setEdit(next);\n }, []);\n const isPrinting = printing || domLayout === \"print\";\n const naturalHeight = isPrinting || domLayout === \"autoHeight\";\n const searchText = quickFilterText ?? tableOptions?.state?.globalFilter ?? (hasSearch ? search : initialSearch);\n const showCheckboxes = !!rowSelection && rowSelection.checkboxes !== false && !isPrinting;\n const showExpanders = !!renderSubComponent && !isPrinting;\n const expanderWidth = showExpanders ? 44 : 0;\n const selectionWidth = (showCheckboxes ? 44 : 0) + expanderWidth;\n const { table, definitionsById, sourcesById, data, rowIndices, resolveId } = useDataTableInstance({\n rowData,\n columnDefs,\n defaultColDef,\n getRowId,\n paginationPageSize,\n tableOptions,\n externalFilter,\n rowSelection,\n pagination,\n renderSubComponent,\n getRowCanExpand,\n onQuickFilterTextChange,\n patches,\n alignment,\n isPrinting,\n viewportWidth,\n selectionWidth,\n searchText,\n setSearch,\n });\n\n const visibleColumns = [...table.getStartVisibleLeafColumns(), ...table.getCenterVisibleLeafColumns(), ...table.getEndVisibleLeafColumns()].filter(\n column => column.id !== \"__external\" && (!isPrinting || !definitionsById.get(column.id)?.hideInPrint),\n );\n // Preview locally so canceled drags never update controlled or aligned table state.\n if (columnDrag) {\n const from = visibleColumns.findIndex(column => column.id === columnDrag.sourceId);\n const to = visibleColumns.findIndex(column => column.id === columnDrag.targetId);\n if (from >= 0 && to >= 0) visibleColumns.splice(to, 0, visibleColumns.splice(from, 1)[0]);\n }\n const widths = new Map(visibleColumns.map(column => [column.id, column.getSize()]));\n const totalWidth = selectionWidth + visibleColumns.reduce((sum, column) => sum + widths.get(column.id)!, 0);\n const topRows = table.getTopRows();\n const bottomRows = table.getBottomRows();\n const pinnedIds = new Set([...topRows, ...bottomRows].map(row => row.id));\n const centerRows = (isPrinting ? table.getPrePaginatedRowModel().rows : table.getRowModel().rows).filter(row => !pinnedIds.has(row.id));\n const isDetailExpanded = (row: DataTableRow<T>) => !!renderSubComponent && row.getCanExpand() && row.getIsExpanded();\n // Detail panels can have arbitrary height. Resume fixed-height virtualization when all visible panels close.\n const hasExpandedDetails = [...topRows, ...centerRows, ...bottomRows].some(isDetailExpanded);\n const useVirtualRows = virtualize && !naturalHeight && !hasExpandedDetails;\n const topHeight = (topRows.length + pinnedTopRowData.length) * rowHeight;\n // This renderer opts out of React Compiler above; Virtual exposes a mutable measurement instance.\n // eslint-disable-next-line react-hooks/incompatible-library\n const virtualizer = useVirtualizer({\n count: centerRows.length,\n getScrollElement: () => viewportRef.current,\n estimateSize: () => rowHeight,\n getItemKey: index => centerRows[index].id,\n overscan,\n scrollMargin: topHeight,\n enabled: useVirtualRows,\n useFlushSync: false,\n });\n\n const runtime = React.useRef<DataTableRuntime<T>>({\n table,\n definitionsById,\n centerRows,\n virtualizer,\n resolveId,\n rowIndices,\n sourcesById,\n useVirtualRows,\n pagination,\n serverPagination: tableOptions?.manualPagination === true,\n });\n runtime.current = {\n table,\n definitionsById,\n centerRows,\n virtualizer,\n resolveId,\n rowIndices,\n sourcesById,\n useVirtualRows,\n pagination,\n serverPagination: tableOptions?.manualPagination === true,\n };\n const columnDragHandlers = useDataTableColumnDrag({ runtime, viewportRef, contentRef, setColumnDrag });\n const api = useDataTableApi({ runtime, editRef, configRef, updateEdit, setPatches, contentRef, viewportRef, setPrinting });\n React.useImperativeHandle(forwardedRef, () => api, [api]);\n\n React.useEffect(() => {\n setApi(api);\n return () => setApi(previous => (previous === api ? null : previous));\n }, [api, setApi]);\n const readyRef = React.useRef(onReady);\n readyRef.current = onReady;\n React.useEffect(() => {\n readyRef.current?.(api);\n }, [api]);\n const selectionCallback = React.useRef(onSelectionChanged);\n selectionCallback.current = onSelectionChanged;\n React.useEffect(() => {\n const current = runtime.current.table;\n const selected = current.getSelectedRowModel().rows.map(row => row.original);\n selectionCallback.current?.(selected, current.getSelectedRowIds());\n }, [table.state.rowSelection, data]);\n React.useEffect(() => {\n const current = runtime.current.table;\n const selectedCount = current.getSelectedRowIds().length;\n const pinnedCount = (current.state.rowPinning.top?.length ?? 0) + (current.state.rowPinning.bottom?.length ?? 0);\n setCounts(previous =>\n previous.selectedCount === selectedCount && previous.pinnedCount === pinnedCount ? previous : { selectedCount, pinnedCount },\n );\n }, [table.state.rowSelection, table.state.rowPinning, setCounts]);\n React.useEffect(() => {\n const element = viewportRef.current;\n if (!element) return;\n const resize = () => setViewportWidth(element.clientWidth);\n resize();\n const observer = new ResizeObserver(resize);\n observer.observe(element);\n return () => observer.disconnect();\n }, []);\n React.useEffect(() => {\n const element = viewportRef.current;\n const viewports = alignment?.viewports.current;\n if (!element || !viewports) return;\n viewports.add(element);\n return () => {\n viewports.delete(element);\n };\n }, [alignment?.viewports]);\n React.useEffect(() => {\n if (editRef.current && sourcesById.get(editRef.current.rowId) !== editRef.current.source) {\n api.stopEditing(true);\n }\n setPatches(previous => {\n const entries = Object.entries(previous).filter(([id, patch]) => sourcesById.get(id) === patch.source);\n return entries.length === Object.keys(previous).length ? previous : Object.fromEntries(entries);\n });\n const current = runtime.current.table;\n if (!runtime.current.serverPagination) {\n // Locally owned datasets can discard deleted identities. Server pages retain unloaded selection IDs.\n const selection = current.atoms.rowSelection.get();\n const entries = Object.entries(selection).filter(([id]) => sourcesById.has(id));\n if (entries.length !== Object.keys(selection).length) current.setRowSelection(Object.fromEntries(entries));\n const pinning = current.atoms.rowPinning.get();\n const top = pinning.top?.filter(id => sourcesById.has(id));\n const bottom = pinning.bottom?.filter(id => sourcesById.has(id));\n if (top?.length !== pinning.top?.length || bottom?.length !== pinning.bottom?.length) current.setRowPinning({ top, bottom });\n }\n }, [sourcesById, api]);\n\n const navigableRows = [...topRows, ...centerRows, ...bottomRows];\n const displayedIds = [\n ...pinnedTopRowData.map((_, index) => `__summary_top_${index}`),\n ...topRows.map(row => row.id),\n ...centerRows.map(row => row.id),\n ...bottomRows.map(row => row.id),\n ...pinnedBottomRowData.map((_, index) => `__summary_bottom_${index}`),\n ];\n const expandedIds = new Set(navigableRows.filter(isDetailExpanded).map(row => row.id));\n let displayedRowCount = 0;\n const displayedIndices = new Map(\n displayedIds.map(id => {\n const index = displayedRowCount;\n displayedRowCount += expandedIds.has(id) ? 2 : 1;\n return [id, index];\n }),\n );\n const virtualItems = useVirtualRows ? virtualizer.getVirtualItems() : [];\n const renderedIds = useVirtualRows\n ? [\n ...displayedIds.slice(0, pinnedTopRowData.length + topRows.length),\n ...virtualItems.map(item => centerRows[item.index].id),\n ...bottomRows.map(row => row.id),\n ...pinnedBottomRowData.map((_, index) => `__summary_bottom_${index}`),\n ]\n : displayedIds;\n const activeCell = getActiveDataTableCell(\n focusedCell,\n renderedIds,\n visibleColumns.map(column => column.id),\n );\n\n useDataTableMotion(viewportRef, JSON.stringify(centerRows.map(row => row.id)), JSON.stringify(visibleColumns.map(column => column.id)), isPrinting);\n\n const columnStyle = (column: Column<DataTableFeatures, T>, header = false): React.CSSProperties => {\n const pinned = isPrinting ? false : column.getIsPinned();\n const region = visibleColumns.filter(item => item.getIsPinned() === pinned);\n const index = region.findIndex(item => item.id === column.id);\n const start = region.slice(0, index).reduce((sum, item) => sum + widths.get(item.id)!, selectionWidth);\n const end = region.slice(index + 1).reduce((sum, item) => sum + widths.get(item.id)!, 0);\n return {\n width: widths.get(column.id),\n flexShrink: 0,\n position: pinned ? \"sticky\" : \"relative\",\n insetInlineStart: pinned === \"start\" ? start : undefined,\n insetInlineEnd: pinned === \"end\" ? end : undefined,\n zIndex: pinned ? 2 : undefined,\n background: pinned ? (header ? \"oklch(var(--mtx-primary-50))\" : \"inherit\") : undefined,\n };\n };\n\n const handleCellKeyDown = (event: React.KeyboardEvent, row: DataTableRow<T>, column: Column<DataTableFeatures, T>) => {\n if (event.defaultPrevented) return;\n if (event.key === \"Escape\" && editRef.current) {\n event.preventDefault();\n api.stopEditing(true);\n return;\n }\n if (event.key === \"Enter\" && editRef.current) {\n // Editors own activation and multiline input; plain text/number inputs still commit on Enter.\n if ((event.target as HTMLElement).closest(\"button,select,textarea,[contenteditable=true],[role=combobox],[role=listbox]\")) return;\n event.preventDefault();\n api.stopEditing();\n return;\n }\n const target = event.target as HTMLElement;\n if (target.closest(\"input,select,textarea,button,[contenteditable=true]\")) return;\n if (event.key === \"Enter\" || event.key === \"F2\") {\n event.preventDefault();\n if (editType === \"fullRow\") api.startEditingRow(row.id);\n else api.startEditingCell({ rowId: row.id, columnId: column.id });\n return;\n }\n const rowIndex = navigableRows.findIndex(item => item.id === row.id);\n const columnIndex = visibleColumns.findIndex(item => item.id === column.id);\n const nextRow = event.key === \"ArrowDown\" ? rowIndex + 1 : event.key === \"ArrowUp\" ? rowIndex - 1 : rowIndex;\n const horizontalStep = getComputedStyle(event.currentTarget).direction === \"rtl\" ? -1 : 1;\n const nextColumn =\n event.key === \"ArrowRight\" ? columnIndex + horizontalStep : event.key === \"ArrowLeft\" ? columnIndex - horizontalStep : columnIndex;\n if ([\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"].includes(event.key) && navigableRows[nextRow] && visibleColumns[nextColumn]) {\n event.preventDefault();\n const targetRow = navigableRows[nextRow];\n if (!pinnedIds.has(targetRow.id)) api.scrollToRow(targetRow.id);\n api.focusCell(targetRow.id, visibleColumns[nextColumn].id);\n }\n };\n\n const renderRow = (data: T, rowId: string, index: number, row?: DataTableRow<T>, pinned?: \"top\" | \"bottom\") => (\n <DataTableRowView\n key={rowId}\n {...{\n data,\n rowId,\n index,\n row,\n pinned,\n edit,\n editRef,\n updateEdit,\n api,\n table,\n detailId,\n displayedIndices,\n rowSelection,\n rowHeight,\n totalWidth,\n getRowClass,\n rowClassRules,\n onRowClick,\n showExpanders,\n expanderWidth,\n showCheckboxes,\n visibleColumns,\n definitionsById,\n activeCell,\n setFocusedCell,\n columnStyle,\n handleCellKeyDown,\n suppressClickEdit,\n editType,\n renderSubComponent,\n isDetailExpanded,\n }}\n />\n );\n\n const selectionRows = (\n rowSelection?.selectAll === \"all\"\n ? table.getCoreRowModel()\n : rowSelection?.selectAll === \"currentPage\"\n ? table.getRowModel()\n : table.getFilteredRowModel()\n ).rows.filter(row => row.getCanSelect());\n const selectedInScope = selectionRows.filter(row => row.getIsSelected()).length;\n return (\n <DragDropProvider sensors={dataTableColumnSensors} {...columnDragHandlers}>\n <DragOverlay dropAnimation={null} style={{ position: \"fixed\", pointerEvents: \"none\" }}>\n {source => {\n const definition = definitionsById.get(source.data.columnId);\n return (\n <div className=\"mtx-rounded-sm mtx-border mtx-border-gray-200 mtx-bg-primary-50 mtx-px-3 mtx-py-2 mtx-text-xs mtx-font-bold mtx-shadow-md\">\n {definition?.headerName ?? source.data.columnId}\n </div>\n );\n }}\n </DragOverlay>\n <div\n ref={contentRef}\n data-data-table-content=\"\"\n data-print-layout={isPrinting || undefined}\n className={cn(\"mtx-relative mtx-flex mtx-min-h-0 mtx-flex-1 mtx-flex-col mtx-rounded-b-lg\", className)}\n style={style}\n {...props}\n >\n {edit && (\n <div data-print-hidden=\"\" className=\"mtx-flex mtx-shrink-0 mtx-items-center mtx-gap-2 mtx-border-b mtx-border-gray-200 mtx-p-2\">\n <Button type=\"button\" size=\"sm\" onClick={() => api.stopEditing()}>\n Save\n </Button>\n <Button type=\"button\" size=\"sm\" variant=\"text\" onClick={() => api.stopEditing(true)}>\n Cancel\n </Button>\n {edit.errors.length > 0 && (\n <span role=\"alert\" className=\"mtx-text-danger\">\n {edit.errors.join(\". \")}\n </span>\n )}\n </div>\n )}\n <div\n role=\"grid\"\n aria-label={props[\"aria-label\"] ?? \"Data table\"}\n aria-busy={loading}\n aria-rowcount={displayedRowCount + 1}\n aria-colcount={visibleColumns.length + (showCheckboxes ? 1 : 0) + (showExpanders ? 1 : 0)}\n aria-multiselectable={rowSelection?.mode === \"multiRow\" || undefined}\n className=\"mtx-flex mtx-min-h-0 mtx-flex-1 mtx-flex-col\"\n >\n <div className=\"mtx-shrink-0 mtx-bg-primary-50\">\n <div\n ref={headerViewportRef}\n style={{ overflow: isPrinting ? \"visible\" : \"hidden\", width: isPrinting ? \"100%\" : viewportWidth || \"100%\" }}\n onScroll={event => {\n const synchronized = synchronizedHeaderScroll.current === event.currentTarget.scrollLeft;\n synchronizedHeaderScroll.current = null;\n if (synchronized) return;\n if (!isPrinting && viewportRef.current) viewportRef.current.scrollLeft = event.currentTarget.scrollLeft;\n }}\n >\n <DataTableHeader\n {...{\n table,\n api,\n headerHeight,\n totalWidth,\n isPrinting,\n showExpanders,\n expanderWidth,\n showCheckboxes,\n rowSelection,\n selectionRows,\n selectedInScope,\n visibleColumns,\n definitionsById,\n columnStyle,\n widths,\n }}\n />\n </div>\n </div>\n <div\n ref={viewportRef}\n data-data-table-viewport=\"\"\n className=\"mtx-relative mtx-min-h-0 mtx-flex-1 mtx-rounded-b-lg\"\n style={{\n ...containerStyle,\n overflow: naturalHeight ? \"visible\" : (containerStyle?.overflow ?? \"auto\"),\n overflowX: isPrinting ? \"visible\" : suppressHorizontalScroll ? \"hidden\" : containerStyle?.overflowX,\n }}\n onScroll={event => {\n const viewport = event.currentTarget;\n const header = headerViewportRef.current;\n if (header && header.scrollLeft !== viewport.scrollLeft) {\n header.scrollLeft = viewport.scrollLeft;\n synchronizedHeaderScroll.current = header.scrollLeft;\n }\n const synchronized = alignment?.synchronizedScrolls.current.get(viewport) === viewport.scrollLeft;\n alignment?.synchronizedScrolls.current.delete(viewport);\n if (alignment && !isPrinting && !synchronized)\n for (const element of alignment.viewports.current) {\n if (element !== viewport && element.scrollLeft !== viewport.scrollLeft) {\n element.scrollLeft = viewport.scrollLeft;\n alignment.synchronizedScrolls.current.set(element, element.scrollLeft);\n }\n }\n }}\n >\n {(topRows.length > 0 || pinnedTopRowData.length > 0) && (\n <div\n role=\"rowgroup\"\n className=\"mtx-sticky mtx-z-20\"\n style={{ top: isPrinting ? undefined : 0, position: isPrinting ? \"relative\" : \"sticky\" }}\n >\n {pinnedTopRowData.map((row, index) => renderRow(row, `__summary_top_${index}`, index, undefined, \"top\"))}\n {topRows.map(row => renderRow(row.original, row.id, row.index, row, \"top\"))}\n </div>\n )}\n <div role=\"rowgroup\">\n {useVirtualRows ? (\n <div style={{ height: virtualizer.getTotalSize(), position: \"relative\", width: totalWidth, minWidth: \"100%\" }}>\n {virtualItems.map(item => {\n const row = centerRows[item.index];\n return (\n <div key={row.id} style={{ position: \"absolute\", top: 0, width: \"100%\", transform: `translateY(${item.start - topHeight}px)` }}>\n {renderRow(row.original, row.id, rowIndices.get(row.original) ?? row.index, row)}\n </div>\n );\n })}\n </div>\n ) : (\n centerRows.map(row => renderRow(row.original, row.id, rowIndices.get(row.original) ?? row.index, row))\n )}\n </div>\n {(bottomRows.length > 0 || pinnedBottomRowData.length > 0) && (\n <div role=\"rowgroup\" className=\"mtx-sticky mtx-bottom-0 mtx-z-20\" style={{ position: isPrinting ? \"relative\" : \"sticky\" }}>\n {bottomRows.map(row => renderRow(row.original, row.id, row.index, row, \"bottom\"))}\n {pinnedBottomRowData.map((row, index) => renderRow(row, `__summary_bottom_${index}`, index, undefined, \"bottom\"))}\n </div>\n )}\n {(loading || (!centerRows.length && !topRows.length && !bottomRows.length)) && (\n <div\n role=\"status\"\n className={cn(\n \"mtx-flex mtx-items-center mtx-justify-center mtx-p-6 mtx-text-text-300\",\n loading && \"mtx-absolute mtx-top-0 mtx-start-0 mtx-z-50 mtx-h-full mtx-w-full mtx-bg-gray-100/25\",\n )}\n >\n {loading ? loadingContent : emptyContent}\n </div>\n )}\n </div>\n </div>\n {pagination && !isPrinting && <DataTablePagination table={table} paginationPageSizeSelector={paginationPageSizeSelector} />}\n </div>\n </DragDropProvider>\n );\n}\n\nconst DataTableContent = React.forwardRef(DataTableContentInner) as <T extends object>(\n props: DataTableContentProps<T> & { ref?: React.ForwardedRef<DataTableApi<T>> },\n) => React.ReactElement;\n(DataTableContent as { displayName?: string }).displayName = \"DataTableContent\";\n\nexport { DataTableContent };\n"],"names":["emptyRows","emptyColumn","DataTableContentInner","rowData","columnDefs","defaultColDef","getRowId","onReady","rowSelection","renderSubComponent","getRowCanExpand","onSelectionChanged","quickFilterText","onQuickFilterTextChange","externalFilter","loading","emptyContent","loadingContent","rowHeight","headerHeight","getRowClass","rowClassRules","pinnedTopRowData","pinnedBottomRowData","pagination","paginationPageSize","paginationPageSizeSelector","virtualize","overscan","domLayout","suppressHorizontalScroll","editType","suppressClickEdit","readOnlyEdit","validateRow","onEditCommit","onEditRequest","onEditCancel","onRowClick","tableOptions","containerStyle","className","style","props","forwardedRef","setApi","search","hasSearch","setSearch","setCounts","useDataTable","alignment","React","DataTableAlignmentContext","detailId","viewportRef","headerViewportRef","synchronizedHeaderScroll","contentRef","viewportWidth","setViewportWidth","printing","setPrinting","columnDrag","setColumnDrag","focusedCell","setFocusedCell","patches","setPatches","edit","setEdit","initialSearch","editRef","configRef","updateEdit","next","isPrinting","naturalHeight","searchText","showCheckboxes","showExpanders","expanderWidth","selectionWidth","table","definitionsById","sourcesById","data","rowIndices","resolveId","useDataTableInstance","visibleColumns","column","from","to","widths","totalWidth","sum","topRows","bottomRows","pinnedIds","row","centerRows","isDetailExpanded","hasExpandedDetails","useVirtualRows","topHeight","virtualizer","useVirtualizer","index","runtime","columnDragHandlers","useDataTableColumnDrag","api","useDataTableApi","previous","readyRef","selectionCallback","current","selected","selectedCount","pinnedCount","element","resize","observer","viewports","entries","id","patch","selection","pinning","top","bottom","navigableRows","displayedIds","_","expandedIds","displayedRowCount","displayedIndices","virtualItems","renderedIds","item","activeCell","getActiveDataTableCell","useDataTableMotion","columnStyle","header","pinned","region","start","end","handleCellKeyDown","event","rowIndex","columnIndex","nextRow","horizontalStep","nextColumn","targetRow","renderRow","rowId","jsx","DataTableRowView","selectionRows","selectedInScope","jsxs","DragDropProvider","dataTableColumnSensors","DragOverlay","source","definition","cn","Button","synchronized","DataTableHeader","viewport","DataTablePagination","DataTableContent"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"datatablecontext.es.js","sources":["../src/components/data-table/DataTableContext.ts"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport type { DataTableApi, DataTableState } from \"./DataTable.types\";\n\ntype DataTableContextValue = {\n api: DataTableApi<any> | null;\n setApi: React.Dispatch<React.SetStateAction<DataTableApi<any> | null>>;\n search: string | undefined;\n setSearch: (value: string) => void;\n selectedCount: number;\n pinnedCount: number;\n setCounts: React.Dispatch<React.SetStateAction<{ selectedCount: number; pinnedCount: number }>>;\n};\n\nexport const DataTableContext = React.createContext<DataTableContextValue | null>(null);\n\nexport function useDataTable<T extends object = Record<string, unknown>>() {\n const context = React.useContext(DataTableContext);\n if (!context) throw new Error(\"DataTable components must be used within <DataTable>.\");\n // An untouched search can use the content's initial filter; an explicit empty search clears it.\n return { ...context, search: context.search ?? \"\", hasSearch: context.search !== undefined, api: context.api as DataTableApi<T> | null };\n}\n\nexport type AlignmentState = Pick<DataTableState, \"columnSizing\" | \"columnOrder\" | \"columnPinning\" | \"columnVisibility\">;\ntype AlignmentContextValue = {\n state: Partial<AlignmentState>;\n setState: React.Dispatch<React.SetStateAction<Partial<AlignmentState>>>;\n viewports: React.MutableRefObject<Set<HTMLDivElement>>;\n};\n\nexport const DataTableAlignmentContext = React.createContext<AlignmentContextValue | null>(null);\n"],"names":["DataTableContext","React","useDataTable","context","DataTableAlignmentContext"],"mappings":";AAgBO,MAAMA,IAAmBC,EAAM,cAA4C,IAAI;AAE/E,SAASC,IAA2D;AACzE,QAAMC,IAAUF,EAAM,WAAWD,CAAgB;AACjD,MAAI,CAACG,EAAS,OAAM,IAAI,MAAM,uDAAuD;AAErF,SAAO,EAAE,GAAGA,GAAS,QAAQA,EAAQ,UAAU,IAAI,WAAWA,EAAQ,WAAW,QAAW,KAAKA,EAAQ,IAAA;AAC3G;AASO,MAAMC,IAA4BH,EAAM,cAA4C,IAAI;"}
1
+ {"version":3,"file":"datatablecontext.es.js","sources":["../src/components/data-table/DataTableContext.ts"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport type { DataTableApi, DataTableState } from \"./DataTable.types\";\n\ntype DataTableContextValue = {\n api: DataTableApi<any> | null;\n setApi: React.Dispatch<React.SetStateAction<DataTableApi<any> | null>>;\n search: string | undefined;\n setSearch: (value: string) => void;\n selectedCount: number;\n pinnedCount: number;\n setCounts: React.Dispatch<React.SetStateAction<{ selectedCount: number; pinnedCount: number }>>;\n};\n\nexport const DataTableContext = React.createContext<DataTableContextValue | null>(null);\n\nexport function useDataTable<T extends object = Record<string, unknown>>() {\n const context = React.useContext(DataTableContext);\n if (!context) throw new Error(\"DataTable components must be used within <DataTable>.\");\n // An untouched search can use the content's initial filter; an explicit empty search clears it.\n return { ...context, search: context.search ?? \"\", hasSearch: context.search !== undefined, api: context.api as DataTableApi<T> | null };\n}\n\nexport type AlignmentState = Pick<DataTableState, \"columnSizing\" | \"columnOrder\" | \"columnPinning\" | \"columnVisibility\">;\ntype AlignmentContextValue = {\n state: Partial<AlignmentState>;\n setState: React.Dispatch<React.SetStateAction<Partial<AlignmentState>>>;\n viewports: React.MutableRefObject<Set<HTMLDivElement>>;\n synchronizedScrolls: React.MutableRefObject<WeakMap<HTMLDivElement, number>>;\n};\n\nexport const DataTableAlignmentContext = React.createContext<AlignmentContextValue | null>(null);\n"],"names":["DataTableContext","React","useDataTable","context","DataTableAlignmentContext"],"mappings":";AAgBO,MAAMA,IAAmBC,EAAM,cAA4C,IAAI;AAE/E,SAASC,IAA2D;AACzE,QAAMC,IAAUF,EAAM,WAAWD,CAAgB;AACjD,MAAI,CAACG,EAAS,OAAM,IAAI,MAAM,uDAAuD;AAErF,SAAO,EAAE,GAAGA,GAAS,QAAQA,EAAQ,UAAU,IAAI,WAAWA,EAAQ,WAAW,QAAW,KAAKA,EAAQ,IAAA;AAC3G;AAUO,MAAMC,IAA4BH,EAAM,cAA4C,IAAI;"}
@@ -1,97 +1,105 @@
1
- import { jsxs as n, jsx as i } from "react/jsx-runtime";
2
- import { Checkbox as z } from "./checkbox.es.js";
3
- import { DataTableColumnHeader as C } from "./datatablecolumnheader.es.js";
4
- import { DataTableColumnMenu as S } from "./datatablecolumnmenu.es.js";
5
- function j({
1
+ import { jsxs as x, jsx as i } from "react/jsx-runtime";
2
+ import { Checkbox as C } from "./checkbox.es.js";
3
+ import { cn as f } from "./utils.es.js";
4
+ import { DataTableColumnHeader as S } from "./datatablecolumnheader.es.js";
5
+ import { DataTableColumnMenu as v } from "./datatablecolumnmenu.es.js";
6
+ function I({
6
7
  table: d,
7
- api: g,
8
+ api: h,
8
9
  headerHeight: c,
9
- totalWidth: f,
10
- isPrinting: s,
11
- showExpanders: b,
12
- expanderWidth: o,
13
- showCheckboxes: y,
14
- rowSelection: x,
15
- selectionRows: m,
16
- selectedInScope: h,
17
- visibleColumns: p,
10
+ totalWidth: b,
11
+ isPrinting: m,
12
+ showExpanders: y,
13
+ expanderWidth: n,
14
+ showCheckboxes: p,
15
+ rowSelection: o,
16
+ selectionRows: s,
17
+ selectedInScope: g,
18
+ visibleColumns: u,
18
19
  definitionsById: k,
19
- columnStyle: u,
20
- widths: w
20
+ columnStyle: w,
21
+ widths: N
21
22
  }) {
22
- return /* @__PURE__ */ n(
23
+ return /* @__PURE__ */ x(
23
24
  "div",
24
25
  {
25
26
  role: "row",
26
27
  className: "mtx-sticky mtx-top-0 mtx-z-30 mtx-flex mtx-rounded-t-[inherit] mtx-border-b mtx-border-gray-200 mtx-bg-primary-50 mtx-font-bold",
27
- style: { height: c, width: f, minWidth: "100%", position: s ? "relative" : "sticky" },
28
+ style: { height: c, width: b, minWidth: "100%", position: m ? "relative" : "sticky" },
28
29
  children: [
29
- b && /* @__PURE__ */ i(
30
+ y && /* @__PURE__ */ i(
30
31
  "div",
31
32
  {
32
33
  role: "columnheader",
33
34
  "aria-label": "Row details",
34
35
  className: "mtx-sticky mtx-start-0 mtx-z-10 mtx-shrink-0 mtx-bg-primary-50",
35
- style: { width: o }
36
+ style: { width: n }
36
37
  }
37
38
  ),
38
- y && /* @__PURE__ */ i(
39
+ p && /* @__PURE__ */ i(
39
40
  "div",
40
41
  {
41
42
  role: "columnheader",
42
43
  className: "mtx-sticky mtx-start-0 mtx-z-10 mtx-flex mtx-shrink-0 mtx-items-center mtx-justify-center mtx-bg-primary-50",
43
- style: { width: 44, insetInlineStart: o },
44
- children: x?.mode === "multiRow" && /* @__PURE__ */ i(
45
- z,
44
+ style: { width: 44, insetInlineStart: n },
45
+ children: o?.mode === "multiRow" && /* @__PURE__ */ i(
46
+ C,
46
47
  {
47
48
  "aria-label": "Select all rows",
48
- disabled: !m.length,
49
- checked: m.length > 0 && h === m.length ? !0 : h > 0 ? "indeterminate" : !1,
49
+ className: "mtx-bg-gray-0",
50
+ disabled: !s.length,
51
+ checked: s.length > 0 && g === s.length ? !0 : g > 0 ? "indeterminate" : !1,
50
52
  onCheckedChange: (e) => {
51
- e === !0 ? g.selectAll(x.selectAll) : d.setRowSelection(
52
- (r) => Object.fromEntries(Object.entries(r).filter(([l]) => !m.some((a) => a.id === l)))
53
+ e === !0 ? h.selectAll(o.selectAll) : d.setRowSelection(
54
+ (t) => Object.fromEntries(Object.entries(t).filter(([l]) => !s.some((a) => a.id === l)))
53
55
  );
54
56
  }
55
57
  }
56
58
  )
57
59
  }
58
60
  ),
59
- p.map((e) => {
60
- const r = k.get(e.id), l = d.getFlatHeaders().find((t) => t.column.id === e.id), a = e.getIsSorted();
61
- return /* @__PURE__ */ n(
62
- C,
61
+ u.map((e) => {
62
+ const t = k.get(e.id), l = d.getFlatHeaders().find((r) => r.column.id === e.id), a = e.getIsSorted();
63
+ return /* @__PURE__ */ x(
64
+ S,
63
65
  {
64
66
  columnId: e.id,
65
- label: typeof r.headerName == "string" ? r.headerName : e.id,
67
+ label: typeof t.headerName == "string" ? t.headerName : e.id,
66
68
  region: e.getIsPinned(),
67
- disabled: s,
69
+ disabled: m,
68
70
  "aria-sort": a === "asc" ? "ascending" : a === "desc" ? "descending" : "none",
69
- className: "mtx-relative mtx-flex mtx-min-w-0 mtx-items-center mtx-gap-1 mtx-px-3",
70
- style: u(e, !0),
71
+ className: f(
72
+ "mtx-relative mtx-flex mtx-min-w-0 mtx-items-center mtx-gap-1 mtx-px-3",
73
+ t.align === "end" && "mtx-flex-row-reverse"
74
+ ),
75
+ style: w(e, !0),
71
76
  children: [
72
- /* @__PURE__ */ n(
77
+ /* @__PURE__ */ x(
73
78
  "button",
74
79
  {
75
80
  type: "button",
76
81
  "data-column-sort": "",
77
- disabled: s,
82
+ disabled: m,
78
83
  "aria-disabled": !e.getCanSort() || void 0,
79
- onClick: (t) => {
80
- !t.defaultPrevented && e.getCanSort() && e.getToggleSortingHandler()?.(t);
84
+ onClick: (r) => {
85
+ !r.defaultPrevented && e.getCanSort() && e.getToggleSortingHandler()?.(r);
81
86
  },
82
- className: "mtx-flex mtx-min-w-0 mtx-flex-1 mtx-cursor-inherit mtx-items-center mtx-gap-1 mtx-text-start disabled:mtx-cursor-default",
83
- "aria-label": `Sort ${typeof r.headerName == "string" ? r.headerName : e.id}`,
87
+ className: f(
88
+ "mtx-flex mtx-min-w-0 mtx-flex-1 mtx-cursor-inherit mtx-items-center mtx-gap-1 mtx-text-start disabled:mtx-cursor-default",
89
+ t.align === "end" && "mtx-flex-row-reverse mtx-text-end"
90
+ ),
91
+ "aria-label": `Sort ${typeof t.headerName == "string" ? t.headerName : e.id}`,
84
92
  children: [
85
- /* @__PURE__ */ i("span", { className: "mtx-truncate", children: r.headerName ?? e.id }),
86
- a && /* @__PURE__ */ n("span", { "aria-hidden": "true", children: [
93
+ /* @__PURE__ */ i("span", { className: "mtx-truncate", children: t.headerName ?? e.id }),
94
+ a && /* @__PURE__ */ x("span", { "aria-hidden": "true", children: [
87
95
  a === "asc" ? "↑" : "↓",
88
96
  d.state.sorting.length > 1 ? e.getSortIndex() + 1 : ""
89
97
  ] })
90
98
  ]
91
99
  }
92
100
  ),
93
- !s && /* @__PURE__ */ i(S, { table: d, column: e, definition: r }),
94
- !s && e.getCanResize() && /* @__PURE__ */ i(
101
+ !m && /* @__PURE__ */ i(v, { table: d, column: e, definition: t }),
102
+ !m && e.getCanResize() && /* @__PURE__ */ i(
95
103
  "div",
96
104
  {
97
105
  role: "separator",
@@ -99,14 +107,14 @@ function j({
99
107
  "aria-label": `Resize ${e.id}`,
100
108
  "aria-orientation": "vertical",
101
109
  tabIndex: 0,
102
- className: "mtx-absolute mtx-inset-y-0 mtx-end-0 mtx-w-1 mtx-cursor-col-resize mtx-touch-none hover:mtx-bg-primary-300",
110
+ className: "mtx-absolute mtx-inset-y-3 mtx-end-0 mtx-w-2 mtx-cursor-col-resize mtx-touch-none after:mtx-bg-gray-400/70 after:mtx-w-0.5 after:mtx-h-full after:mtx-block after:mtx-absolute after:mtx-start-1/2 after:-mtx-translate-x-1/2",
103
111
  onMouseDown: l.getResizeHandler(),
104
112
  onTouchStart: l.getResizeHandler(),
105
113
  onDoubleClick: () => e.resetSize(),
106
- onKeyDown: (t) => {
107
- (t.key === "ArrowRight" || t.key === "ArrowLeft") && (t.preventDefault(), d.setColumnSizing((N) => ({
108
- ...N,
109
- [e.id]: (w.get(e.id) ?? e.getSize()) + (t.key === "ArrowRight" ? 10 : -10)
114
+ onKeyDown: (r) => {
115
+ (r.key === "ArrowRight" || r.key === "ArrowLeft") && (r.preventDefault(), d.setColumnSizing((z) => ({
116
+ ...z,
117
+ [e.id]: (N.get(e.id) ?? e.getSize()) + (r.key === "ArrowRight" ? 10 : -10)
110
118
  })));
111
119
  }
112
120
  }
@@ -121,6 +129,6 @@ function j({
121
129
  );
122
130
  }
123
131
  export {
124
- j as DataTableHeader
132
+ I as DataTableHeader
125
133
  };
126
134
  //# sourceMappingURL=datatableheader.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datatableheader.es.js","sources":["../src/components/data-table/DataTableHeader.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport type { Column } from \"@tanstack/react-table\";\nimport { Checkbox } from \"../checkbox/Checkbox\";\nimport { DataTableColumnHeader } from \"./DataTableColumnHeader\";\nimport { DataTableColumnMenu } from \"./DataTableColumnMenu\";\nimport type { DataTableApi, DataTableColumnDef, DataTableContentProps, DataTableFeatures, DataTableInstance, DataTableRow } from \"./DataTable.types\";\n\ntype DataTableHeaderProps<T extends object> = Pick<DataTableContentProps<T>, \"rowSelection\"> & {\n table: DataTableInstance<T>;\n api: DataTableApi<T>;\n headerHeight: number;\n totalWidth: number;\n isPrinting: boolean;\n showExpanders: boolean;\n expanderWidth: number;\n showCheckboxes: boolean;\n selectionRows: DataTableRow<T>[];\n selectedInScope: number;\n visibleColumns: Column<DataTableFeatures, T>[];\n definitionsById: Map<string, DataTableColumnDef<T>>;\n columnStyle: (column: Column<DataTableFeatures, T>, header?: boolean) => React.CSSProperties;\n widths: Map<string, number>;\n};\n\nexport function DataTableHeader<T extends object>({\n table,\n api,\n headerHeight,\n totalWidth,\n isPrinting,\n showExpanders,\n expanderWidth,\n showCheckboxes,\n rowSelection,\n selectionRows,\n selectedInScope,\n visibleColumns,\n definitionsById,\n columnStyle,\n widths,\n}: DataTableHeaderProps<T>) {\n return (\n <div\n role=\"row\"\n className=\"mtx-sticky mtx-top-0 mtx-z-30 mtx-flex mtx-rounded-t-[inherit] mtx-border-b mtx-border-gray-200 mtx-bg-primary-50 mtx-font-bold\"\n style={{ height: headerHeight, width: totalWidth, minWidth: \"100%\", position: isPrinting ? \"relative\" : \"sticky\" }}\n >\n {showExpanders && (\n <div\n role=\"columnheader\"\n aria-label=\"Row details\"\n className=\"mtx-sticky mtx-start-0 mtx-z-10 mtx-shrink-0 mtx-bg-primary-50\"\n style={{ width: expanderWidth }}\n />\n )}\n {showCheckboxes && (\n <div\n role=\"columnheader\"\n className=\"mtx-sticky mtx-start-0 mtx-z-10 mtx-flex mtx-shrink-0 mtx-items-center mtx-justify-center mtx-bg-primary-50\"\n style={{ width: 44, insetInlineStart: expanderWidth }}\n >\n {rowSelection?.mode === \"multiRow\" && (\n <Checkbox\n aria-label=\"Select all rows\"\n disabled={!selectionRows.length}\n checked={selectionRows.length > 0 && selectedInScope === selectionRows.length ? true : selectedInScope > 0 ? \"indeterminate\" : false}\n onCheckedChange={checked => {\n if (checked === true) api.selectAll(rowSelection.selectAll);\n else\n table.setRowSelection(previous =>\n Object.fromEntries(Object.entries(previous).filter(([id]) => !selectionRows.some(row => row.id === id))),\n );\n }}\n />\n )}\n </div>\n )}\n {visibleColumns.map(column => {\n const definition = definitionsById.get(column.id)!;\n const header = table.getFlatHeaders().find(item => item.column.id === column.id)!;\n const sorted = column.getIsSorted();\n return (\n <DataTableColumnHeader\n key={column.id}\n columnId={column.id}\n label={typeof definition.headerName === \"string\" ? definition.headerName : column.id}\n region={column.getIsPinned()}\n disabled={isPrinting}\n aria-sort={sorted === \"asc\" ? \"ascending\" : sorted === \"desc\" ? \"descending\" : \"none\"}\n className=\"mtx-relative mtx-flex mtx-min-w-0 mtx-items-center mtx-gap-1 mtx-px-3\"\n style={columnStyle(column, true)}\n >\n <button\n type=\"button\"\n data-column-sort=\"\"\n disabled={isPrinting}\n aria-disabled={!column.getCanSort() || undefined}\n onClick={event => {\n if (!event.defaultPrevented && column.getCanSort()) column.getToggleSortingHandler()?.(event);\n }}\n className=\"mtx-flex mtx-min-w-0 mtx-flex-1 mtx-cursor-inherit mtx-items-center mtx-gap-1 mtx-text-start disabled:mtx-cursor-default\"\n aria-label={`Sort ${typeof definition.headerName === \"string\" ? definition.headerName : column.id}`}\n >\n <span className=\"mtx-truncate\">{definition.headerName ?? column.id}</span>\n {sorted && (\n <span aria-hidden=\"true\">\n {sorted === \"asc\" ? \"↑\" : \"↓\"}\n {table.state.sorting.length > 1 ? column.getSortIndex() + 1 : \"\"}\n </span>\n )}\n </button>\n {!isPrinting && <DataTableColumnMenu table={table} column={column} definition={definition} />}\n {!isPrinting && column.getCanResize() && (\n <div\n role=\"separator\"\n data-column-drag-ignore=\"\"\n aria-label={`Resize ${column.id}`}\n aria-orientation=\"vertical\"\n tabIndex={0}\n className=\"mtx-absolute mtx-inset-y-0 mtx-end-0 mtx-w-1 mtx-cursor-col-resize mtx-touch-none hover:mtx-bg-primary-300\"\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n onDoubleClick={() => column.resetSize()}\n onKeyDown={event => {\n if (event.key === \"ArrowRight\" || event.key === \"ArrowLeft\") {\n event.preventDefault();\n table.setColumnSizing(previous => ({\n ...previous,\n [column.id]: (widths.get(column.id) ?? column.getSize()) + (event.key === \"ArrowRight\" ? 10 : -10),\n }));\n }\n }}\n />\n )}\n </DataTableColumnHeader>\n );\n })}\n </div>\n );\n}\n"],"names":["DataTableHeader","table","api","headerHeight","totalWidth","isPrinting","showExpanders","expanderWidth","showCheckboxes","rowSelection","selectionRows","selectedInScope","visibleColumns","definitionsById","columnStyle","widths","jsxs","jsx","Checkbox","checked","previous","id","row","column","definition","header","item","sorted","DataTableColumnHeader","event","DataTableColumnMenu"],"mappings":"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"}
1
+ {"version":3,"file":"datatableheader.es.js","sources":["../src/components/data-table/DataTableHeader.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport type { Column } from \"@tanstack/react-table\";\nimport { Checkbox } from \"../checkbox/Checkbox\";\nimport { cn } from \"../../lib/utils\";\nimport { DataTableColumnHeader } from \"./DataTableColumnHeader\";\nimport { DataTableColumnMenu } from \"./DataTableColumnMenu\";\nimport type { DataTableApi, DataTableColumnDef, DataTableContentProps, DataTableFeatures, DataTableInstance, DataTableRow } from \"./DataTable.types\";\n\ntype DataTableHeaderProps<T extends object> = Pick<DataTableContentProps<T>, \"rowSelection\"> & {\n table: DataTableInstance<T>;\n api: DataTableApi<T>;\n headerHeight: number;\n totalWidth: number;\n isPrinting: boolean;\n showExpanders: boolean;\n expanderWidth: number;\n showCheckboxes: boolean;\n selectionRows: DataTableRow<T>[];\n selectedInScope: number;\n visibleColumns: Column<DataTableFeatures, T>[];\n definitionsById: Map<string, DataTableColumnDef<T>>;\n columnStyle: (column: Column<DataTableFeatures, T>, header?: boolean) => React.CSSProperties;\n widths: Map<string, number>;\n};\n\nexport function DataTableHeader<T extends object>({\n table,\n api,\n headerHeight,\n totalWidth,\n isPrinting,\n showExpanders,\n expanderWidth,\n showCheckboxes,\n rowSelection,\n selectionRows,\n selectedInScope,\n visibleColumns,\n definitionsById,\n columnStyle,\n widths,\n}: DataTableHeaderProps<T>) {\n return (\n <div\n role=\"row\"\n className=\"mtx-sticky mtx-top-0 mtx-z-30 mtx-flex mtx-rounded-t-[inherit] mtx-border-b mtx-border-gray-200 mtx-bg-primary-50 mtx-font-bold\"\n style={{ height: headerHeight, width: totalWidth, minWidth: \"100%\", position: isPrinting ? \"relative\" : \"sticky\" }}\n >\n {showExpanders && (\n <div\n role=\"columnheader\"\n aria-label=\"Row details\"\n className=\"mtx-sticky mtx-start-0 mtx-z-10 mtx-shrink-0 mtx-bg-primary-50\"\n style={{ width: expanderWidth }}\n />\n )}\n {showCheckboxes && (\n <div\n role=\"columnheader\"\n className=\"mtx-sticky mtx-start-0 mtx-z-10 mtx-flex mtx-shrink-0 mtx-items-center mtx-justify-center mtx-bg-primary-50\"\n style={{ width: 44, insetInlineStart: expanderWidth }}\n >\n {rowSelection?.mode === \"multiRow\" && (\n <Checkbox\n aria-label=\"Select all rows\"\n className=\"mtx-bg-gray-0\"\n disabled={!selectionRows.length}\n checked={selectionRows.length > 0 && selectedInScope === selectionRows.length ? true : selectedInScope > 0 ? \"indeterminate\" : false}\n onCheckedChange={checked => {\n if (checked === true) api.selectAll(rowSelection.selectAll);\n else\n table.setRowSelection(previous =>\n Object.fromEntries(Object.entries(previous).filter(([id]) => !selectionRows.some(row => row.id === id))),\n );\n }}\n />\n )}\n </div>\n )}\n {visibleColumns.map(column => {\n const definition = definitionsById.get(column.id)!;\n const header = table.getFlatHeaders().find(item => item.column.id === column.id)!;\n const sorted = column.getIsSorted();\n return (\n <DataTableColumnHeader\n key={column.id}\n columnId={column.id}\n label={typeof definition.headerName === \"string\" ? definition.headerName : column.id}\n region={column.getIsPinned()}\n disabled={isPrinting}\n aria-sort={sorted === \"asc\" ? \"ascending\" : sorted === \"desc\" ? \"descending\" : \"none\"}\n className={cn(\n \"mtx-relative mtx-flex mtx-min-w-0 mtx-items-center mtx-gap-1 mtx-px-3\",\n definition.align === \"end\" && \"mtx-flex-row-reverse\",\n )}\n style={columnStyle(column, true)}\n >\n <button\n type=\"button\"\n data-column-sort=\"\"\n disabled={isPrinting}\n aria-disabled={!column.getCanSort() || undefined}\n onClick={event => {\n if (!event.defaultPrevented && column.getCanSort()) column.getToggleSortingHandler()?.(event);\n }}\n className={cn(\n \"mtx-flex mtx-min-w-0 mtx-flex-1 mtx-cursor-inherit mtx-items-center mtx-gap-1 mtx-text-start disabled:mtx-cursor-default\",\n definition.align === \"end\" && \"mtx-flex-row-reverse mtx-text-end\",\n )}\n aria-label={`Sort ${typeof definition.headerName === \"string\" ? definition.headerName : column.id}`}\n >\n <span className=\"mtx-truncate\">{definition.headerName ?? column.id}</span>\n {sorted && (\n <span aria-hidden=\"true\">\n {sorted === \"asc\" ? \"↑\" : \"↓\"}\n {table.state.sorting.length > 1 ? column.getSortIndex() + 1 : \"\"}\n </span>\n )}\n </button>\n {!isPrinting && <DataTableColumnMenu table={table} column={column} definition={definition} />}\n {!isPrinting && column.getCanResize() && (\n <div\n role=\"separator\"\n data-column-drag-ignore=\"\"\n aria-label={`Resize ${column.id}`}\n aria-orientation=\"vertical\"\n tabIndex={0}\n className=\"mtx-absolute mtx-inset-y-3 mtx-end-0 mtx-w-2 mtx-cursor-col-resize mtx-touch-none after:mtx-bg-gray-400/70 after:mtx-w-0.5 after:mtx-h-full after:mtx-block after:mtx-absolute after:mtx-start-1/2 after:-mtx-translate-x-1/2\"\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n onDoubleClick={() => column.resetSize()}\n onKeyDown={event => {\n if (event.key === \"ArrowRight\" || event.key === \"ArrowLeft\") {\n event.preventDefault();\n table.setColumnSizing(previous => ({\n ...previous,\n [column.id]: (widths.get(column.id) ?? column.getSize()) + (event.key === \"ArrowRight\" ? 10 : -10),\n }));\n }\n }}\n />\n )}\n </DataTableColumnHeader>\n );\n })}\n </div>\n );\n}\n"],"names":["DataTableHeader","table","api","headerHeight","totalWidth","isPrinting","showExpanders","expanderWidth","showCheckboxes","rowSelection","selectionRows","selectedInScope","visibleColumns","definitionsById","columnStyle","widths","jsxs","jsx","Checkbox","checked","previous","id","row","column","definition","header","item","sorted","DataTableColumnHeader","cn","event","DataTableColumnMenu"],"mappings":"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"}