material-react-table 1.8.4 → 1.9.0

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.
Files changed (58) hide show
  1. package/dist/cjs/index.js +64 -62
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/MaterialReactTable.d.ts +3 -3
  4. package/dist/cjs/types/_locales/sr-Cyrl-RS.d.ts +2 -0
  5. package/dist/cjs/types/_locales/sr-Latn-RS.d.ts +2 -0
  6. package/dist/cjs/types/body/MRT_TableBodyCell.d.ts +2 -3
  7. package/dist/cjs/types/buttons/MRT_ExpandButton.d.ts +4 -4
  8. package/dist/cjs/types/column.utils.d.ts +3 -3
  9. package/dist/cjs/types/index.d.ts +5 -3
  10. package/dist/cjs/types/sortingFns.d.ts +6 -6
  11. package/dist/esm/material-react-table.esm.js +62 -63
  12. package/dist/esm/material-react-table.esm.js.map +1 -1
  13. package/dist/esm/types/MaterialReactTable.d.ts +3 -3
  14. package/dist/esm/types/_locales/sr-Cyrl-RS.d.ts +2 -0
  15. package/dist/esm/types/_locales/sr-Latn-RS.d.ts +2 -0
  16. package/dist/esm/types/body/MRT_TableBodyCell.d.ts +2 -3
  17. package/dist/esm/types/buttons/MRT_ExpandButton.d.ts +4 -4
  18. package/dist/esm/types/column.utils.d.ts +3 -3
  19. package/dist/esm/types/index.d.ts +5 -3
  20. package/dist/esm/types/sortingFns.d.ts +6 -6
  21. package/dist/index.d.ts +42 -28
  22. package/locales/sr-Cyrl-RS.d.ts +2 -0
  23. package/locales/sr-Cyrl-RS.esm.d.ts +2 -0
  24. package/locales/sr-Cyrl-RS.esm.js +94 -0
  25. package/locales/sr-Cyrl-RS.esm.js.map +1 -0
  26. package/locales/sr-Cyrl-RS.js +98 -0
  27. package/locales/sr-Cyrl-RS.js.map +1 -0
  28. package/locales/sr-Latn-RS.d.ts +2 -0
  29. package/locales/sr-Latn-RS.esm.d.ts +2 -0
  30. package/locales/sr-Latn-RS.esm.js +94 -0
  31. package/locales/sr-Latn-RS.esm.js.map +1 -0
  32. package/locales/sr-Latn-RS.js +98 -0
  33. package/locales/sr-Latn-RS.js.map +1 -0
  34. package/locales/zh-Hans.esm.js +5 -5
  35. package/locales/zh-Hans.js +5 -5
  36. package/locales/zh-Hant.esm.js +1 -1
  37. package/locales/zh-Hant.esm.js.map +1 -1
  38. package/locales/zh-Hant.js +1 -1
  39. package/locales/zh-Hant.js.map +1 -1
  40. package/package.json +1 -1
  41. package/src/MaterialReactTable.tsx +4 -2
  42. package/src/_locales/sr-Cyrl-RS.ts +94 -0
  43. package/src/_locales/sr-Latn-RS.ts +94 -0
  44. package/src/_locales/zh-Hans.ts +5 -5
  45. package/src/_locales/zh-Hant.ts +1 -1
  46. package/src/body/MRT_TableBodyCell.tsx +9 -14
  47. package/src/body/MRT_TableBodyRow.tsx +1 -4
  48. package/src/buttons/MRT_ExpandButton.tsx +7 -4
  49. package/src/buttons/MRT_GrabHandleButton.tsx +1 -1
  50. package/src/column.utils.ts +4 -8
  51. package/src/head/MRT_TableHeadCell.tsx +4 -0
  52. package/src/head/MRT_TableHeadCellResizeHandle.tsx +3 -1
  53. package/src/head/MRT_TableHeadCellSortLabel.tsx +30 -22
  54. package/src/index.tsx +8 -4
  55. package/src/menus/MRT_FilterOptionMenu.tsx +1 -3
  56. package/src/menus/MRT_RowActionMenu.tsx +1 -0
  57. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +2 -1
  58. package/src/table/MRT_Table.tsx +3 -3
@@ -18,7 +18,7 @@ import type { TablePaginationProps } from '@mui/material/TablePagination';
18
18
  import type { TableRowProps } from '@mui/material/TableRow';
19
19
  import type { TextFieldProps } from '@mui/material/TextField';
20
20
  import type { ToolbarProps } from '@mui/material/Toolbar';
21
- import type { AggregationFn, Cell, Column, ColumnDef, ColumnFiltersState, ColumnOrderState, ColumnPinningState, ColumnSizingInfoState, ColumnSizingState, DeepKeys, ExpandedState, FilterFn, GroupingState, Header, HeaderGroup, OnChangeFn, PaginationState, Row, RowSelectionState, SortingFn, SortingState, Table, TableOptions, TableState, VisibilityState } from '@tanstack/react-table';
21
+ import type { AggregationFn, Cell, Column, ColumnDef, ColumnFiltersState, ColumnOrderState, ColumnPinningState, ColumnSizingInfoState, ColumnSizingState, DeepKeys, ExpandedState, FilterFn, GroupingState, Header, HeaderGroup, OnChangeFn, PaginationState, Row, RowSelectionState, SortingFn, SortingState, Table, TableOptions, TableState, Updater, VisibilityState } from '@tanstack/react-table';
22
22
  import type { VirtualizerOptions, Virtualizer, VirtualItem } from '@tanstack/react-virtual';
23
23
  import { MRT_AggregationFns } from './aggregationFns';
24
24
  import { MRT_FilterFns } from './filterFns';
@@ -33,7 +33,7 @@ type Prettify<T> = {
33
33
  } & {};
34
34
  type LiteralUnion<T extends U, U = string> = T | (U & Record<never, never>);
35
35
  export type MRT_DensityState = 'comfortable' | 'compact' | 'spacious';
36
- export type { ColumnFiltersState as MRT_ColumnFiltersState, ColumnOrderState as MRT_ColumnOrderState, ColumnPinningState as MRT_ColumnPinningState, ColumnSizingInfoState as MRT_ColumnSizingInfoState, ColumnSizingState as MRT_ColumnSizingState, ExpandedState as MRT_ExpandedState, GroupingState as MRT_GroupingState, PaginationState as MRT_PaginationState, RowSelectionState as MRT_RowSelectionState, SortingState as MRT_SortingState, VirtualItem as MRT_VirtualItem, Virtualizer as MRT_Virtualizer, VirtualizerOptions as MRT_VirtualizerOptions, VisibilityState as MRT_VisibilityState, };
36
+ export type { ColumnFiltersState as MRT_ColumnFiltersState, ColumnOrderState as MRT_ColumnOrderState, ColumnPinningState as MRT_ColumnPinningState, ColumnSizingInfoState as MRT_ColumnSizingInfoState, ColumnSizingState as MRT_ColumnSizingState, ExpandedState as MRT_ExpandedState, GroupingState as MRT_GroupingState, PaginationState as MRT_PaginationState, RowSelectionState as MRT_RowSelectionState, SortingState as MRT_SortingState, Updater as MRT_Updater, VirtualItem as MRT_VirtualItem, Virtualizer as MRT_Virtualizer, VirtualizerOptions as MRT_VirtualizerOptions, VisibilityState as MRT_VisibilityState, };
37
37
  export interface MRT_Localization {
38
38
  actions: string;
39
39
  and: string;
@@ -615,7 +615,7 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Pr
615
615
  table: MRT_TableInstance<TData>;
616
616
  headerGroup: MRT_HeaderGroup<TData>;
617
617
  }) => TableRowProps);
618
- muiTablePaginationProps?: Partial<TablePaginationProps> | ((props: {
618
+ muiTablePaginationProps?: Partial<Omit<TablePaginationProps, 'rowsPerPage'>> | ((props: {
619
619
  table: MRT_TableInstance<TData>;
620
620
  }) => Partial<TablePaginationProps>);
621
621
  muiTablePaperProps?: PaperProps | ((props: {
@@ -0,0 +1,2 @@
1
+ import type { MRT_Localization } from '../MaterialReactTable';
2
+ export declare const MRT_Localization_SR_CYRL_RS: MRT_Localization;
@@ -0,0 +1,2 @@
1
+ import type { MRT_Localization } from '../MaterialReactTable';
2
+ export declare const MRT_Localization_SR_LATN_RS: MRT_Localization;
@@ -3,7 +3,6 @@ import type { VirtualItem } from '@tanstack/react-virtual';
3
3
  import type { MRT_Cell, MRT_TableInstance } from '..';
4
4
  interface Props {
5
5
  cell: MRT_Cell;
6
- enableHover?: boolean;
7
6
  measureElement?: (element: HTMLTableCellElement) => void;
8
7
  numRows: number;
9
8
  rowIndex: number;
@@ -11,6 +10,6 @@ interface Props {
11
10
  table: MRT_TableInstance;
12
11
  virtualCell?: VirtualItem;
13
12
  }
14
- export declare const MRT_TableBodyCell: ({ cell, enableHover, measureElement, numRows, rowIndex, rowRef, table, virtualCell, }: Props) => JSX.Element;
15
- export declare const Memo_MRT_TableBodyCell: React.MemoExoticComponent<({ cell, enableHover, measureElement, numRows, rowIndex, rowRef, table, virtualCell, }: Props) => JSX.Element>;
13
+ export declare const MRT_TableBodyCell: ({ cell, measureElement, numRows, rowIndex, rowRef, table, virtualCell, }: Props) => JSX.Element;
14
+ export declare const Memo_MRT_TableBodyCell: React.MemoExoticComponent<({ cell, measureElement, numRows, rowIndex, rowRef, table, virtualCell, }: Props) => JSX.Element>;
16
15
  export {};
@@ -1,8 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import type { MRT_Row, MRT_TableInstance } from '..';
3
- interface Props {
4
- row: MRT_Row;
5
- table: MRT_TableInstance;
3
+ interface Props<TData extends Record<string, any> = {}> {
4
+ row: MRT_Row<TData>;
5
+ table: MRT_TableInstance<TData>;
6
6
  }
7
- export declare const MRT_ExpandButton: ({ row, table }: Props) => JSX.Element;
7
+ export declare const MRT_ExpandButton: <TData extends Record<string, any> = {}>({ row, table, }: Props<TData>) => JSX.Element;
8
8
  export {};
@@ -117,12 +117,12 @@ export declare const getCommonCellStyles: ({ column, header, table, tableCellPro
117
117
  id: string;
118
118
  getContext: () => import("@tanstack/react-table").HeaderContext<{}, unknown>;
119
119
  getLeafHeaders: () => import("@tanstack/react-table").Header<{}, unknown>[];
120
+ colSpan: number;
121
+ rowSpan: number;
122
+ index: number;
120
123
  depth: number;
121
124
  getSize: () => number;
122
125
  getStart: (position?: import("@tanstack/react-table").ColumnPinningPosition | undefined) => number;
123
- index: number;
124
- colSpan: number;
125
- rowSpan: number;
126
126
  headerGroup: import("@tanstack/react-table").HeaderGroup<{}>;
127
127
  subHeaders: import("@tanstack/react-table").Header<{}, unknown>[];
128
128
  isPlaceholder: boolean;
@@ -3,20 +3,22 @@ export default MaterialReactTable;
3
3
  export * from './MaterialReactTable';
4
4
  import type { MRT_Icons } from './icons';
5
5
  export type { MRT_Icons };
6
+ import { MRT_BottomToolbar } from './toolbar/MRT_BottomToolbar';
6
7
  import { MRT_CopyButton } from './buttons/MRT_CopyButton';
7
8
  import { MRT_EditActionButtons } from './buttons/MRT_EditActionButtons';
9
+ import { MRT_ExpandButton } from './buttons/MRT_ExpandButton';
8
10
  import { MRT_FilterOptionMenu } from './menus/MRT_FilterOptionMenu';
9
11
  import { MRT_FullScreenToggleButton } from './buttons/MRT_FullScreenToggleButton';
12
+ import { MRT_GrabHandleButton } from './buttons/MRT_GrabHandleButton';
10
13
  import { MRT_GlobalFilterTextField } from './inputs/MRT_GlobalFilterTextField';
11
14
  import { MRT_ShowHideColumnsButton } from './buttons/MRT_ShowHideColumnsButton';
12
15
  import { MRT_TablePagination } from './toolbar/MRT_TablePagination';
13
16
  import { MRT_ToggleDensePaddingButton } from './buttons/MRT_ToggleDensePaddingButton';
14
17
  import { MRT_ToggleFiltersButton } from './buttons/MRT_ToggleFiltersButton';
15
18
  import { MRT_ToggleGlobalFilterButton } from './buttons/MRT_ToggleGlobalFilterButton';
19
+ import { MRT_ToggleRowActionMenuButton } from './buttons/MRT_ToggleRowActionMenuButton';
16
20
  import { MRT_ToolbarAlertBanner } from './toolbar/MRT_ToolbarAlertBanner';
17
21
  import { MRT_ToolbarDropZone } from './toolbar/MRT_ToolbarDropZone';
18
22
  import { MRT_ToolbarInternalButtons } from './toolbar/MRT_ToolbarInternalButtons';
19
- import { MRT_ToggleRowActionMenuButton } from './buttons/MRT_ToggleRowActionMenuButton';
20
23
  import { MRT_TopToolbar } from './toolbar/MRT_TopToolbar';
21
- import { MRT_BottomToolbar } from './toolbar/MRT_BottomToolbar';
22
- export { MRT_CopyButton, MRT_EditActionButtons, MRT_FilterOptionMenu, MRT_FullScreenToggleButton, MRT_GlobalFilterTextField, MRT_ShowHideColumnsButton, MRT_TablePagination, MRT_ToggleDensePaddingButton, MRT_ToggleFiltersButton, MRT_ToggleGlobalFilterButton, MRT_ToolbarAlertBanner, MRT_ToolbarDropZone, MRT_ToolbarInternalButtons, MRT_ToggleRowActionMenuButton, MRT_TopToolbar, MRT_BottomToolbar, };
24
+ export { MRT_BottomToolbar, MRT_CopyButton, MRT_EditActionButtons, MRT_ExpandButton, MRT_FilterOptionMenu, MRT_FullScreenToggleButton, MRT_GrabHandleButton, MRT_GlobalFilterTextField, MRT_ShowHideColumnsButton, MRT_TablePagination, MRT_ToggleDensePaddingButton, MRT_ToggleFiltersButton, MRT_ToggleGlobalFilterButton, MRT_ToggleRowActionMenuButton, MRT_ToolbarAlertBanner, MRT_ToolbarDropZone, MRT_ToolbarInternalButtons, MRT_TopToolbar, };
@@ -13,10 +13,10 @@ export declare const rankGlobalFuzzy: <TData extends Record<string, any> = {}>(r
13
13
  getValue: <TValue>(columnId: string) => TValue;
14
14
  renderValue: <TValue_1>(columnId: string) => TValue_1;
15
15
  id: string;
16
- getIsGrouped: () => boolean;
17
- depth: number;
16
+ columnFilters: Record<string, boolean>;
18
17
  index: number;
19
18
  original: TData;
19
+ depth: number;
20
20
  _uniqueValuesCache: Record<string, unknown>;
21
21
  getUniqueValues: <TValue_2>(columnId: string) => TValue_2[];
22
22
  getLeafRows: () => Row<TData>[];
@@ -26,10 +26,10 @@ export declare const rankGlobalFuzzy: <TData extends Record<string, any> = {}>(r
26
26
  getLeftVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
27
27
  getCenterVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
28
28
  getRightVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
29
- columnFilters: Record<string, boolean>;
30
29
  columnFiltersMeta: Record<string, import("@tanstack/react-table").FilterMeta>;
31
30
  groupingColumnId?: string | undefined;
32
31
  groupingValue?: unknown;
32
+ getIsGrouped: () => boolean;
33
33
  _groupingValuesCache: Record<string, any>;
34
34
  getIsSelected: () => boolean;
35
35
  getIsSomeSelected: () => boolean;
@@ -71,10 +71,10 @@ export declare const rankGlobalFuzzy: <TData extends Record<string, any> = {}>(r
71
71
  getValue: <TValue>(columnId: string) => TValue;
72
72
  renderValue: <TValue_1>(columnId: string) => TValue_1;
73
73
  id: string;
74
- getIsGrouped: () => boolean;
75
- depth: number;
74
+ columnFilters: Record<string, boolean>;
76
75
  index: number;
77
76
  original: TData;
77
+ depth: number;
78
78
  _uniqueValuesCache: Record<string, unknown>;
79
79
  getUniqueValues: <TValue_2>(columnId: string) => TValue_2[];
80
80
  getLeafRows: () => Row<TData>[];
@@ -84,10 +84,10 @@ export declare const rankGlobalFuzzy: <TData extends Record<string, any> = {}>(r
84
84
  getLeftVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
85
85
  getCenterVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
86
86
  getRightVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
87
- columnFilters: Record<string, boolean>;
88
87
  columnFiltersMeta: Record<string, import("@tanstack/react-table").FilterMeta>;
89
88
  groupingColumnId?: string | undefined;
90
89
  groupingValue?: unknown;
90
+ getIsGrouped: () => boolean;
91
91
  _groupingValuesCache: Record<string, any>;
92
92
  getIsSelected: () => boolean;
93
93
  getIsSomeSelected: () => boolean;
@@ -64,6 +64,7 @@ import Table from '@mui/material/Table';
64
64
  import TableHead from '@mui/material/TableHead';
65
65
  import TableRow from '@mui/material/TableRow';
66
66
  import TableCell from '@mui/material/TableCell';
67
+ import Badge from '@mui/material/Badge';
67
68
  import TableSortLabel from '@mui/material/TableSortLabel';
68
69
  import TableBody from '@mui/material/TableBody';
69
70
  import Skeleton from '@mui/material/Skeleton';
@@ -242,7 +243,7 @@ const getCommonCellStyles = ({ column, header, table, tableCellProps, theme, })
242
243
  : getIsFirstRightPinnedColumn(column)
243
244
  ? `4px 0 8px -6px ${alpha(theme.palette.common.black, 0.2)} inset`
244
245
  : undefined, display: table.options.layoutMode === 'grid' ? 'flex' : 'table-cell', flex: table.options.layoutMode === 'grid'
245
- ? `var(--col-${parseCSSVarId((_a = header === null || header === void 0 ? void 0 : header.id) !== null && _a !== void 0 ? _a : column.id)}-size) 0 auto`
246
+ ? `var(--${header ? 'header' : 'col'}-${parseCSSVarId((_a = header === null || header === void 0 ? void 0 : header.id) !== null && _a !== void 0 ? _a : column.id)}-size) 0 auto`
246
247
  : undefined, left: column.getIsPinned() === 'left'
247
248
  ? `${column.getStart('left')}px`
248
249
  : undefined, ml: table.options.enableColumnVirtualization &&
@@ -288,12 +289,7 @@ const MRT_DefaultDisplayColumn = {
288
289
  enableResizing: false,
289
290
  enableSorting: false,
290
291
  };
291
- const parseCSSVarId = (id) => id
292
- .replaceAll('.', '_')
293
- .replaceAll(' ', '_')
294
- .replaceAll('+', '_')
295
- .replaceAll('(', '_')
296
- .replaceAll(')', '_');
292
+ const parseCSSVarId = (id) => id.replace(/[^a-zA-Z0-9]/g, '_');
297
293
 
298
294
  const fuzzy$1 = (row, columnId, filterValue, addMeta) => {
299
295
  const itemRank = rankItem(row.getValue(columnId), filterValue, {
@@ -444,7 +440,7 @@ const MRT_ExpandAllButton = ({ table }) => {
444
440
  } }))))));
445
441
  };
446
442
 
447
- const MRT_ExpandButton = ({ row, table }) => {
443
+ const MRT_ExpandButton = ({ row, table, }) => {
448
444
  var _a, _b;
449
445
  const { getState, options: { icons: { ExpandMoreIcon }, localization, muiExpandButtonProps, renderDetailPanel, }, } = table;
450
446
  const { density } = getState();
@@ -575,9 +571,7 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, setFilt
575
571
  if (header && column) {
576
572
  setColumnFilterFns((prev) => (Object.assign(Object.assign({}, prev), { [header.id]: option })));
577
573
  if (['empty', 'notEmpty'].includes(option)) {
578
- if (currentFilterValue !== ' ') {
579
- column.setFilterValue(' ');
580
- }
574
+ column.setFilterValue(' ');
581
575
  }
582
576
  else if ((columnDef === null || columnDef === void 0 ? void 0 : columnDef.filterVariant) === 'multi-select' ||
583
577
  ['arrIncludesSome', 'arrIncludesAll', 'arrIncludes'].includes(option)) {
@@ -720,8 +714,9 @@ const MRT_ShowHideColumnsMenuItems = ({ allColumns, hoveredColumn, setHoveredCol
720
714
  justifyContent: 'flex-start',
721
715
  my: 0,
722
716
  opacity: isDragging ? 0.5 : 1,
717
+ outlineOffset: '-2px',
723
718
  outline: isDragging
724
- ? `1px dashed ${theme.palette.divider}`
719
+ ? `2px dashed ${theme.palette.divider}`
725
720
  : (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id
726
721
  ? `2px dashed ${theme.palette.primary.main}`
727
722
  : 'none',
@@ -974,7 +969,7 @@ const MRT_ColumnActionMenu = ({ anchorEl, header, setAnchorEl, table, }) => {
974
969
  const MRT_RowActionMenu = ({ anchorEl, handleEdit, row, setAnchorEl, table, }) => {
975
970
  const { getState, options: { icons: { EditIcon }, enableEditing, localization, renderRowActionMenuItems, }, } = table;
976
971
  const { density } = getState();
977
- return (React.createElement(Menu, { anchorEl: anchorEl, open: !!anchorEl, onClose: () => setAnchorEl(null), MenuListProps: {
972
+ return (React.createElement(Menu, { anchorEl: anchorEl, open: !!anchorEl, onClick: (event) => event.stopPropagation(), onClose: () => setAnchorEl(null), MenuListProps: {
978
973
  dense: density === 'compact',
979
974
  } },
980
975
  enableEditing instanceof Function
@@ -1832,12 +1827,12 @@ const MRT_TableHeadCellResizeHandle = ({ header, table }) => {
1832
1827
  const { getState, options: { columnResizeMode }, setColumnSizingInfo, } = table;
1833
1828
  const { density } = getState();
1834
1829
  const { column } = header;
1835
- return (React.createElement(Box, { onDoubleClick: () => {
1830
+ return (React.createElement(Box, { className: "Mui-TableHeadCell-ResizeHandle-Wrapper", onDoubleClick: () => {
1836
1831
  setColumnSizingInfo((old) => (Object.assign(Object.assign({}, old), { isResizingColumn: false })));
1837
1832
  column.resetSize();
1838
1833
  }, onMouseDown: header.getResizeHandler(), onTouchStart: header.getResizeHandler(), sx: (theme) => ({
1839
1834
  cursor: 'col-resize',
1840
- mr: density === 'compact' ? '-0.5rem' : '-1rem',
1835
+ mr: density === 'compact' ? '-0.75rem' : '-1rem',
1841
1836
  position: 'absolute',
1842
1837
  right: '1px',
1843
1838
  px: '4px',
@@ -1850,7 +1845,7 @@ const MRT_TableHeadCellResizeHandle = ({ header, table }) => {
1850
1845
  ? `translateX(${(_a = getState().columnSizingInfo.deltaOffset) !== null && _a !== void 0 ? _a : 0}px)`
1851
1846
  : undefined,
1852
1847
  } },
1853
- React.createElement(Divider, { flexItem: true, orientation: "vertical", sx: {
1848
+ React.createElement(Divider, { className: "Mui-TableHeadCell-ResizeHandle-Divider", flexItem: true, orientation: "vertical", sx: {
1854
1849
  borderRadius: '2px',
1855
1850
  borderWidth: '2px',
1856
1851
  height: '24px',
@@ -1864,28 +1859,30 @@ const MRT_TableHeadCellResizeHandle = ({ header, table }) => {
1864
1859
  };
1865
1860
 
1866
1861
  const MRT_TableHeadCellSortLabel = ({ header, table, tableCellProps, }) => {
1867
- const { options: { icons: { ArrowDownwardIcon }, localization, }, } = table;
1862
+ const { getState, options: { icons: { ArrowDownwardIcon }, localization, }, } = table;
1868
1863
  const { column } = header;
1869
1864
  const { columnDef } = column;
1865
+ const { sorting } = getState();
1870
1866
  const sortTooltip = column.getIsSorted()
1871
1867
  ? column.getIsSorted() === 'desc'
1872
1868
  ? localization.sortedByColumnDesc.replace('{column}', columnDef.header)
1873
1869
  : localization.sortedByColumnAsc.replace('{column}', columnDef.header)
1874
1870
  : localization.unsorted;
1875
1871
  return (React.createElement(Tooltip, { arrow: true, placement: "top", title: sortTooltip },
1876
- React.createElement(TableSortLabel, { "aria-label": sortTooltip, active: !!column.getIsSorted(), direction: column.getIsSorted()
1877
- ? column.getIsSorted()
1878
- : undefined, sx: {
1879
- flex: '0 0',
1880
- width: '2.3ch',
1881
- transform: (tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.align) !== 'right'
1882
- ? 'translateX(-0.5ch)'
1883
- : undefined,
1884
- }, IconComponent: ArrowDownwardIcon, onClick: (e) => {
1885
- var _a;
1886
- e.stopPropagation();
1887
- (_a = header.column.getToggleSortingHandler()) === null || _a === void 0 ? void 0 : _a(e);
1888
- } })));
1872
+ React.createElement(Badge, { badgeContent: sorting.length > 1 ? column.getSortIndex() + 1 : 0, overlap: "circular" },
1873
+ React.createElement(TableSortLabel, { "aria-label": sortTooltip, active: !!column.getIsSorted(), direction: column.getIsSorted()
1874
+ ? column.getIsSorted()
1875
+ : undefined, sx: {
1876
+ flex: '0 0',
1877
+ width: '2.4ch',
1878
+ transform: (tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.align) !== 'right'
1879
+ ? 'translateX(-0.5ch)'
1880
+ : undefined,
1881
+ }, IconComponent: ArrowDownwardIcon, onClick: (e) => {
1882
+ var _a;
1883
+ e.stopPropagation();
1884
+ (_a = header.column.getToggleSortingHandler()) === null || _a === void 0 ? void 0 : _a(e);
1885
+ } }))));
1889
1886
  };
1890
1887
 
1891
1888
  const MRT_TableHeadCell = ({ header, table }) => {
@@ -2005,9 +2002,13 @@ const MRT_TableHeadCell = ({ header, table }) => {
2005
2002
  : undefined,
2006
2003
  } },
2007
2004
  React.createElement(Box, { className: "Mui-TableHeadCell-Content-Wrapper", sx: {
2005
+ minWidth: '5ch',
2008
2006
  overflow: columnDefType === 'data' ? 'hidden' : undefined,
2009
2007
  textOverflow: 'ellipsis',
2010
2008
  whiteSpace: ((_d = (_c = columnDef.header) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) < 20 ? 'nowrap' : 'normal',
2009
+ '&:hover': {
2010
+ textOverflow: 'clip',
2011
+ },
2011
2012
  }, title: columnDefType === 'data' ? columnDef.header : undefined }, headerElement),
2012
2013
  column.getCanSort() && (React.createElement(MRT_TableHeadCellSortLabel, { header: header, table: table, tableCellProps: tableCellProps })),
2013
2014
  column.getCanFilter() && (React.createElement(MRT_TableHeadCellFilterLabel, { header: header, table: table }))),
@@ -2249,7 +2250,7 @@ const MRT_TableBodyCellValue = ({ cell, table }) => {
2249
2250
  return React.createElement(React.Fragment, null, renderedCellValue);
2250
2251
  };
2251
2252
 
2252
- const MRT_TableBodyCell = ({ cell, enableHover, measureElement, numRows, rowIndex, rowRef, table, virtualCell, }) => {
2253
+ const MRT_TableBodyCell = ({ cell, measureElement, numRows, rowIndex, rowRef, table, virtualCell, }) => {
2253
2254
  var _a, _b, _c, _d;
2254
2255
  const theme = useTheme();
2255
2256
  const { getState, options: { editingMode, enableClickToCopy, enableColumnOrdering, enableEditing, enableGrouping, enableRowNumbers, layoutMode, muiTableBodyCellProps, muiTableBodyCellSkeletonProps, rowNumberMode, }, refs: { editInputRefs }, setEditingCell, setHoveredColumn, } = table;
@@ -2363,37 +2364,36 @@ const MRT_TableBodyCell = ({ cell, enableHover, measureElement, numRows, rowInde
2363
2364
  ? 0.75
2364
2365
  : 1.25)}rem`
2365
2366
  : undefined, textOverflow: columnDefType !== 'display' ? 'ellipsis' : undefined, whiteSpace: density === 'compact' ? 'nowrap' : 'normal', zIndex: (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id ? 2 : column.getIsPinned() ? 1 : 0, '&:hover': {
2366
- backgroundColor: enableHover &&
2367
- isEditable &&
2368
- ['table', 'cell'].includes(editingMode !== null && editingMode !== void 0 ? editingMode : '')
2369
- ? theme.palette.mode === 'dark'
2370
- ? `${lighten(theme.palette.background.default, 0.2)} !important`
2371
- : `${darken(theme.palette.background.default, 0.1)} !important`
2367
+ outline: ['table', 'cell'].includes(editingMode !== null && editingMode !== void 0 ? editingMode : '')
2368
+ ? `1px solid ${theme.palette.text.secondary}`
2372
2369
  : undefined,
2370
+ outlineOffset: '-1px',
2371
+ textOverflow: 'clip',
2373
2372
  } }, getCommonCellStyles({
2374
2373
  column,
2375
2374
  table,
2376
2375
  theme,
2377
2376
  tableCellProps,
2378
2377
  })), draggingBorders)) }),
2379
- React.createElement(React.Fragment, null, cell.getIsPlaceholder() ? ((_b = (_a = columnDef.PlaceholderCell) === null || _a === void 0 ? void 0 : _a.call(columnDef, { cell, column, row, table })) !== null && _b !== void 0 ? _b : null) : isLoading || showSkeletons ? (React.createElement(Skeleton, Object.assign({ animation: "wave", height: 20, width: skeletonWidth }, skeletonProps))) : enableRowNumbers &&
2380
- rowNumberMode === 'static' &&
2381
- column.id === 'mrt-row-numbers' ? (rowIndex + 1) : column.id === 'mrt-row-drag' ? (React.createElement(MRT_TableBodyRowGrabHandle, { cell: cell, rowRef: rowRef, table: table })) : columnDefType === 'display' &&
2382
- (column.id === 'mrt-row-select' ||
2383
- column.id === 'mrt-row-expand' ||
2384
- !row.getIsGrouped()) ? ((_c = columnDef.Cell) === null || _c === void 0 ? void 0 : _c.call(columnDef, {
2385
- cell,
2386
- renderedCellValue: cell.renderValue(),
2387
- column,
2388
- row,
2389
- table,
2390
- })) : isEditing ? (React.createElement(MRT_EditCellTextField, { cell: cell, table: table })) : (enableClickToCopy || columnDef.enableClickToCopy) &&
2391
- columnDef.enableClickToCopy !== false ? (React.createElement(MRT_CopyButton, { cell: cell, table: table },
2392
- React.createElement(MRT_TableBodyCellValue, { cell: cell, table: table }))) : (React.createElement(MRT_TableBodyCellValue, { cell: cell, table: table }))),
2393
- cell.getIsGrouped() && !columnDef.GroupedCell && (React.createElement(React.Fragment, null,
2394
- " (", (_d = row.subRows) === null || _d === void 0 ? void 0 :
2395
- _d.length,
2396
- ")"))));
2378
+ React.createElement(React.Fragment, null,
2379
+ cell.getIsPlaceholder() ? ((_b = (_a = columnDef.PlaceholderCell) === null || _a === void 0 ? void 0 : _a.call(columnDef, { cell, column, row, table })) !== null && _b !== void 0 ? _b : null) : isLoading || showSkeletons ? (React.createElement(Skeleton, Object.assign({ animation: "wave", height: 20, width: skeletonWidth }, skeletonProps))) : enableRowNumbers &&
2380
+ rowNumberMode === 'static' &&
2381
+ column.id === 'mrt-row-numbers' ? (rowIndex + 1) : column.id === 'mrt-row-drag' ? (React.createElement(MRT_TableBodyRowGrabHandle, { cell: cell, rowRef: rowRef, table: table })) : columnDefType === 'display' &&
2382
+ (column.id === 'mrt-row-select' ||
2383
+ column.id === 'mrt-row-expand' ||
2384
+ !row.getIsGrouped()) ? ((_c = columnDef.Cell) === null || _c === void 0 ? void 0 : _c.call(columnDef, {
2385
+ cell,
2386
+ renderedCellValue: cell.renderValue(),
2387
+ column,
2388
+ row,
2389
+ table,
2390
+ })) : isEditing ? (React.createElement(MRT_EditCellTextField, { cell: cell, table: table })) : (enableClickToCopy || columnDef.enableClickToCopy) &&
2391
+ columnDef.enableClickToCopy !== false ? (React.createElement(MRT_CopyButton, { cell: cell, table: table },
2392
+ React.createElement(MRT_TableBodyCellValue, { cell: cell, table: table }))) : (React.createElement(MRT_TableBodyCellValue, { cell: cell, table: table })),
2393
+ cell.getIsGrouped() && !columnDef.GroupedCell && (React.createElement(React.Fragment, null,
2394
+ " (", (_d = row.subRows) === null || _d === void 0 ? void 0 :
2395
+ _d.length,
2396
+ ")")))));
2397
2397
  };
2398
2398
  const Memo_MRT_TableBodyCell = memo(MRT_TableBodyCell, (prev, next) => next.cell === prev.cell);
2399
2399
 
@@ -2424,7 +2424,7 @@ const MRT_TableDetailPanel = ({ parentRowRef, row, table, virtualRow, }) => {
2424
2424
  };
2425
2425
 
2426
2426
  const MRT_TableBodyRow = ({ columnVirtualizer, measureElement, numRows, row, rowIndex, table, virtualColumns, virtualPaddingLeft, virtualPaddingRight, virtualRow, }) => {
2427
- const { getIsSomeColumnsPinned, getState, options: { enableRowOrdering, layoutMode, memoMode, muiTableBodyRowProps, renderDetailPanel, }, setHoveredRow, } = table;
2427
+ const { getState, options: { enableRowOrdering, layoutMode, memoMode, muiTableBodyRowProps, renderDetailPanel, }, setHoveredRow, } = table;
2428
2428
  const { draggingColumn, draggingRow, editingCell, editingRow, hoveredRow } = getState();
2429
2429
  const tableRowProps = muiTableBodyRowProps instanceof Function
2430
2430
  ? muiTableBodyRowProps({ row, table })
@@ -2436,7 +2436,7 @@ const MRT_TableBodyRow = ({ columnVirtualizer, measureElement, numRows, row, row
2436
2436
  };
2437
2437
  const rowRef = useRef(null);
2438
2438
  return (React.createElement(React.Fragment, null,
2439
- React.createElement(TableRow, Object.assign({ "data-index": virtualRow === null || virtualRow === void 0 ? void 0 : virtualRow.index, hover: true, onDragEnter: handleDragEnter, selected: row.getIsSelected(), ref: (node) => {
2439
+ React.createElement(TableRow, Object.assign({ "data-index": virtualRow === null || virtualRow === void 0 ? void 0 : virtualRow.index, onDragEnter: handleDragEnter, selected: row.getIsSelected(), ref: (node) => {
2440
2440
  if (node) {
2441
2441
  rowRef.current = node;
2442
2442
  measureElement === null || measureElement === void 0 ? void 0 : measureElement(node);
@@ -2444,7 +2444,7 @@ const MRT_TableBodyRow = ({ columnVirtualizer, measureElement, numRows, row, row
2444
2444
  } }, tableRowProps, { sx: (theme) => (Object.assign({ backgroundColor: lighten(theme.palette.background.default, 0.06), display: layoutMode === 'grid' ? 'flex' : 'table-row', opacity: (draggingRow === null || draggingRow === void 0 ? void 0 : draggingRow.id) === row.id || (hoveredRow === null || hoveredRow === void 0 ? void 0 : hoveredRow.id) === row.id ? 0.5 : 1, position: virtualRow ? 'absolute' : undefined, top: virtualRow ? 0 : undefined, transform: virtualRow
2445
2445
  ? `translateY(${virtualRow === null || virtualRow === void 0 ? void 0 : virtualRow.start}px)`
2446
2446
  : undefined, transition: virtualRow ? 'none' : 'all 150ms ease-in-out', width: '100%', '&:hover td': {
2447
- backgroundColor: (tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.hover) !== false && getIsSomeColumnsPinned()
2447
+ backgroundColor: (tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.hover) !== false
2448
2448
  ? theme.palette.mode === 'dark'
2449
2449
  ? `${lighten(theme.palette.background.default, 0.12)}`
2450
2450
  : `${darken(theme.palette.background.default, 0.05)}`
@@ -2459,7 +2459,6 @@ const MRT_TableBodyRow = ({ columnVirtualizer, measureElement, numRows, row, row
2459
2459
  : cellOrVirtualCell;
2460
2460
  const props = {
2461
2461
  cell,
2462
- enableHover: (tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.hover) !== false,
2463
2462
  key: cell.id,
2464
2463
  measureElement: columnVirtualizer === null || columnVirtualizer === void 0 ? void 0 : columnVirtualizer.measureElement,
2465
2464
  numRows,
@@ -2671,9 +2670,9 @@ const MRT_Table = ({ table }) => {
2671
2670
  const colSizes = {};
2672
2671
  for (let i = 0; i < headers.length; i++) {
2673
2672
  const header = headers[i];
2674
- colSizes[`--header-${parseCSSVarId(header.id)}-size`] = header.getSize();
2675
- colSizes[`--col-${parseCSSVarId(header.column.id)}-size`] =
2676
- header.column.getSize();
2673
+ const colSize = header.getSize();
2674
+ colSizes[`--header-${parseCSSVarId(header.id)}-size`] = colSize;
2675
+ colSizes[`--col-${parseCSSVarId(header.column.id)}-size`] = colSize;
2677
2676
  }
2678
2677
  return colSizes;
2679
2678
  }, [columns, columnSizing, columnSizingInfo, columnVisibility]);
@@ -3109,5 +3108,5 @@ const MaterialReactTable = (_a) => {
3109
3108
  return (React.createElement(MRT_TableRoot, Object.assign({ aggregationFns: _aggregationFns, autoResetExpanded: autoResetExpanded, columnResizeMode: columnResizeMode, defaultColumn: _defaultColumn, defaultDisplayColumn: _defaultDisplayColumn, editingMode: editingMode, enableBottomToolbar: enableBottomToolbar, enableColumnActions: enableColumnActions, enableColumnFilters: enableColumnFilters, enableColumnOrdering: enableColumnOrdering, enableColumnResizing: enableColumnResizing, enableDensityToggle: enableDensityToggle, enableExpandAll: enableExpandAll, enableFilterMatchHighlighting: enableFilterMatchHighlighting, enableFilters: enableFilters, enableFullScreenToggle: enableFullScreenToggle, enableGlobalFilter: enableGlobalFilter, enableGlobalFilterRankedResults: enableGlobalFilterRankedResults, enableGrouping: enableGrouping, enableHiding: enableHiding, enableMultiRowSelection: enableMultiRowSelection, enableMultiSort: enableMultiSort, enablePagination: enablePagination, enablePinning: enablePinning, enableRowSelection: enableRowSelection, enableSelectAll: enableSelectAll, enableSorting: enableSorting, enableStickyHeader: enableStickyHeader, enableTableFooter: enableTableFooter, enableTableHead: enableTableHead, enableToolbarInternalActions: enableToolbarInternalActions, enableTopToolbar: enableTopToolbar, filterFns: _filterFns, icons: _icons, layoutMode: layoutMode, localization: _localization, manualFiltering: manualFiltering, manualGrouping: manualGrouping, manualPagination: manualPagination, manualSorting: manualSorting, positionActionsColumn: positionActionsColumn, positionExpandColumn: positionExpandColumn, positionGlobalFilter: positionGlobalFilter, positionPagination: positionPagination, positionToolbarAlertBanner: positionToolbarAlertBanner, positionToolbarDropZone: positionToolbarDropZone, rowNumberMode: rowNumberMode, selectAllMode: selectAllMode, sortingFns: _sortingFns }, rest)));
3110
3109
  };
3111
3110
 
3112
- export { MRT_AggregationFns, MRT_BottomToolbar, MRT_CopyButton, MRT_EditActionButtons, MRT_FilterFns, MRT_FilterOptionMenu, MRT_FullScreenToggleButton, MRT_GlobalFilterTextField, MRT_ShowHideColumnsButton, MRT_SortingFns, MRT_TablePagination, MRT_ToggleDensePaddingButton, MRT_ToggleFiltersButton, MRT_ToggleGlobalFilterButton, MRT_ToggleRowActionMenuButton, MRT_ToolbarAlertBanner, MRT_ToolbarDropZone, MRT_ToolbarInternalButtons, MRT_TopToolbar, MaterialReactTable as default };
3111
+ export { MRT_AggregationFns, MRT_BottomToolbar, MRT_CopyButton, MRT_EditActionButtons, MRT_ExpandButton, MRT_FilterFns, MRT_FilterOptionMenu, MRT_FullScreenToggleButton, MRT_GlobalFilterTextField, MRT_GrabHandleButton, MRT_ShowHideColumnsButton, MRT_SortingFns, MRT_TablePagination, MRT_ToggleDensePaddingButton, MRT_ToggleFiltersButton, MRT_ToggleGlobalFilterButton, MRT_ToggleRowActionMenuButton, MRT_ToolbarAlertBanner, MRT_ToolbarDropZone, MRT_ToolbarInternalButtons, MRT_TopToolbar, MaterialReactTable as default };
3113
3112
  //# sourceMappingURL=material-react-table.esm.js.map