material-react-table 0.41.0 → 1.0.0-beta.2

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 (48) hide show
  1. package/README.md +2 -0
  2. package/dist/cjs/body/MRT_EditRowModal.d.ts +0 -1
  3. package/dist/cjs/body/MRT_TableBody.d.ts +1 -2
  4. package/dist/cjs/buttons/MRT_ColumnPinningButtons.d.ts +0 -1
  5. package/dist/cjs/buttons/MRT_EditActionButtons.d.ts +0 -1
  6. package/dist/cjs/buttons/MRT_FullScreenToggleButton.d.ts +0 -1
  7. package/dist/cjs/buttons/MRT_ShowHideColumnsButton.d.ts +0 -1
  8. package/dist/cjs/buttons/MRT_ToggleDensePaddingButton.d.ts +0 -1
  9. package/dist/cjs/buttons/MRT_ToggleFiltersButton.d.ts +0 -1
  10. package/dist/cjs/buttons/MRT_ToggleGlobalFilterButton.d.ts +0 -1
  11. package/dist/cjs/index.js +26 -16
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/inputs/MRT_EditCellTextField.d.ts +0 -1
  14. package/dist/cjs/inputs/MRT_GlobalFilterTextField.d.ts +0 -1
  15. package/dist/cjs/menus/MRT_FilterOptionMenu.d.ts +0 -1
  16. package/dist/cjs/menus/MRT_ShowHideColumnsMenu.d.ts +0 -1
  17. package/dist/cjs/table/MRT_Table.d.ts +1 -2
  18. package/dist/cjs/table/MRT_TableRoot.d.ts +0 -1
  19. package/dist/esm/body/MRT_EditRowModal.d.ts +0 -1
  20. package/dist/esm/body/MRT_TableBody.d.ts +1 -2
  21. package/dist/esm/buttons/MRT_ColumnPinningButtons.d.ts +0 -1
  22. package/dist/esm/buttons/MRT_EditActionButtons.d.ts +0 -1
  23. package/dist/esm/buttons/MRT_FullScreenToggleButton.d.ts +0 -1
  24. package/dist/esm/buttons/MRT_ShowHideColumnsButton.d.ts +0 -1
  25. package/dist/esm/buttons/MRT_ToggleDensePaddingButton.d.ts +0 -1
  26. package/dist/esm/buttons/MRT_ToggleFiltersButton.d.ts +0 -1
  27. package/dist/esm/buttons/MRT_ToggleGlobalFilterButton.d.ts +0 -1
  28. package/dist/esm/inputs/MRT_EditCellTextField.d.ts +0 -1
  29. package/dist/esm/inputs/MRT_GlobalFilterTextField.d.ts +0 -1
  30. package/dist/esm/material-react-table.esm.js +26 -16
  31. package/dist/esm/material-react-table.esm.js.map +1 -1
  32. package/dist/esm/menus/MRT_FilterOptionMenu.d.ts +0 -1
  33. package/dist/esm/menus/MRT_ShowHideColumnsMenu.d.ts +0 -1
  34. package/dist/esm/table/MRT_Table.d.ts +1 -2
  35. package/dist/esm/table/MRT_TableRoot.d.ts +0 -1
  36. package/dist/index.d.ts +0 -1
  37. package/package.json +6 -6
  38. package/src/body/MRT_TableBody.tsx +3 -3
  39. package/src/head/MRT_TableHeadCell.tsx +1 -1
  40. package/src/inputs/MRT_FilterTextField.tsx +8 -3
  41. package/src/inputs/MRT_GlobalFilterTextField.tsx +6 -1
  42. package/src/table/MRT_Table.tsx +3 -4
  43. package/src/table/MRT_TableContainer.tsx +2 -11
  44. package/src/table/MRT_TableRoot.tsx +3 -3
  45. package/src/toolbar/MRT_BottomToolbar.tsx +3 -0
  46. package/src/toolbar/MRT_TablePagination.tsx +0 -1
  47. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +6 -8
  48. package/src/toolbar/MRT_TopToolbar.tsx +6 -2
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { MRT_Cell, MRT_TableInstance } from '..';
3
2
  interface Props<TData extends Record<string, any> = {}> {
4
3
  cell: MRT_Cell<TData>;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { MRT_TableInstance } from '..';
3
2
  interface Props<TData extends Record<string, any> = {}> {
4
3
  table: MRT_TableInstance<TData>;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { MRT_Header, MRT_InternalFilterOption, MRT_TableInstance } from '..';
3
2
  import { MRT_Localization } from '../localization';
4
3
  export declare const mrtFilterOptions: (localization: MRT_Localization) => MRT_InternalFilterOption[];
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { MRT_TableInstance } from '..';
3
2
  interface Props<TData extends Record<string, any> = {}> {
4
3
  anchorEl: HTMLElement | null;
@@ -1,7 +1,6 @@
1
- import { FC, RefObject } from 'react';
1
+ import { FC } from 'react';
2
2
  import { MRT_TableInstance } from '..';
3
3
  interface Props {
4
- tableContainerRef: RefObject<HTMLDivElement>;
5
4
  table: MRT_TableInstance;
6
5
  }
7
6
  export declare const MRT_Table: FC<Props>;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import type { MaterialReactTableProps } from '..';
3
2
  export declare const MRT_TableRoot: <TData extends Record<string, any> = {}>(props: MaterialReactTableProps<TData>) => JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { MRT_Row, MRT_TableInstance } from '..';
3
2
  interface Props<TData extends Record<string, any> = {}> {
4
3
  open: boolean;
@@ -1,8 +1,7 @@
1
- import { FC, RefObject } from 'react';
1
+ import { FC } from 'react';
2
2
  import type { MRT_TableInstance } from '..';
3
3
  interface Props {
4
4
  table: MRT_TableInstance;
5
- tableContainerRef: RefObject<HTMLDivElement>;
6
5
  }
7
6
  export declare const MRT_TableBody: FC<Props>;
8
7
  export {};
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { MRT_Column, MRT_TableInstance } from '..';
3
2
  interface Props<TData extends Record<string, any> = {}> {
4
3
  column: MRT_Column<TData>;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { MRT_Row, MRT_TableInstance } from '..';
3
2
  interface Props<TData extends Record<string, any> = {}> {
4
3
  row: MRT_Row<TData>;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { IconButtonProps } from '@mui/material';
3
2
  import { MRT_TableInstance } from '..';
4
3
  interface Props<TData extends Record<string, any> = {}> extends IconButtonProps {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { IconButtonProps } from '@mui/material';
3
2
  import { MRT_TableInstance } from '..';
4
3
  interface Props<TData extends Record<string, any> = {}> extends IconButtonProps {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { IconButtonProps } from '@mui/material';
3
2
  import { MRT_TableInstance } from '..';
4
3
  interface Props<TData extends Record<string, any> = {}> extends IconButtonProps {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { IconButtonProps } from '@mui/material';
3
2
  import { MRT_TableInstance } from '..';
4
3
  interface Props<TData extends Record<string, any> = {}> extends IconButtonProps {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { IconButtonProps } from '@mui/material';
3
2
  import { MRT_TableInstance } from '..';
4
3
  interface Props<TData extends Record<string, any> = {}> extends IconButtonProps {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { MRT_Cell, MRT_TableInstance } from '..';
3
2
  interface Props<TData extends Record<string, any> = {}> {
4
3
  cell: MRT_Cell<TData>;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { MRT_TableInstance } from '..';
3
2
  interface Props<TData extends Record<string, any> = {}> {
4
3
  table: MRT_TableInstance<TData>;
@@ -1022,7 +1022,7 @@ const MRT_GlobalFilterTextField = ({ table, }) => {
1022
1022
  const textFieldProps = muiSearchTextFieldProps instanceof Function
1023
1023
  ? muiSearchTextFieldProps({ table })
1024
1024
  : muiSearchTextFieldProps;
1025
- return (React.createElement(Collapse, { in: showGlobalFilter, orientation: "horizontal" },
1025
+ return (React.createElement(Collapse, { in: showGlobalFilter, orientation: "horizontal", unmountOnExit: true, mountOnEnter: true },
1026
1026
  React.createElement(TextField, Object.assign({ placeholder: localization.search, onChange: handleChange, value: searchValue !== null && searchValue !== void 0 ? searchValue : '', variant: "standard", InputProps: {
1027
1027
  startAdornment: enableGlobalFilterModes ? (React.createElement(InputAdornment, { position: "start" },
1028
1028
  React.createElement(Tooltip, { arrow: true, title: localization.changeSearchMode },
@@ -1071,7 +1071,7 @@ const MRT_TablePagination = ({ table, position }) => {
1071
1071
  return (React.createElement(TablePagination, Object.assign({ SelectProps: {
1072
1072
  sx: { m: '0 1rem 0 1ch' },
1073
1073
  MenuProps: { MenuListProps: { disablePadding: true } },
1074
- }, component: "div", count: totalRowCount, onPageChange: (_, newPage) => setPageIndex(newPage), onRowsPerPageChange: handleChangeRowsPerPage, page: pageIndex, rowsPerPage: pageSize, rowsPerPageOptions: [5, 10, 15, 20, 25, 30, 50, 100], showFirstButton: showFirstLastPageButtons, showLastButton: showFirstLastPageButtons }, tablePaginationProps, { sx: (theme) => (Object.assign({ m: '0 0.5rem', mt: position === 'top' &&
1074
+ }, component: "div", count: totalRowCount, onPageChange: (_, newPage) => setPageIndex(newPage), onRowsPerPageChange: handleChangeRowsPerPage, page: pageIndex, rowsPerPage: pageSize, rowsPerPageOptions: [5, 10, 15, 20, 25, 30, 50, 100], showFirstButton: showFirstLastPageButtons, showLastButton: showFirstLastPageButtons }, tablePaginationProps, { sx: (theme) => (Object.assign({ mt: position === 'top' &&
1075
1075
  enableToolbarInternalActions &&
1076
1076
  !showGlobalFilter
1077
1077
  ? '3.5rem'
@@ -1183,7 +1183,7 @@ const MRT_ToggleGlobalFilterButton = (_a) => {
1183
1183
 
1184
1184
  const MRT_ToolbarInternalButtons = ({ table }) => {
1185
1185
  var _a;
1186
- const { options: { enableColumnFilters, enableColumnOrdering, enableDensityToggle, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableHiding, enablePinning, positionGlobalFilter, renderToolbarInternalActions, }, } = table;
1186
+ const { options: { enableColumnFilters, enableColumnOrdering, enableDensityToggle, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableHiding, enablePinning, initialState, renderToolbarInternalActions, }, } = table;
1187
1187
  return (React.createElement(Box, { sx: {
1188
1188
  alignItems: 'center',
1189
1189
  display: 'flex',
@@ -1191,8 +1191,9 @@ const MRT_ToolbarInternalButtons = ({ table }) => {
1191
1191
  } }, (_a = renderToolbarInternalActions === null || renderToolbarInternalActions === void 0 ? void 0 : renderToolbarInternalActions({
1192
1192
  table,
1193
1193
  })) !== null && _a !== void 0 ? _a : (React.createElement(React.Fragment, null,
1194
- enableGlobalFilter && positionGlobalFilter === 'right' && (React.createElement(MRT_GlobalFilterTextField, { table: table })),
1195
- enableFilters && enableGlobalFilter && (React.createElement(MRT_ToggleGlobalFilterButton, { table: table })),
1194
+ enableFilters &&
1195
+ enableGlobalFilter &&
1196
+ !(initialState === null || initialState === void 0 ? void 0 : initialState.showGlobalFilter) && (React.createElement(MRT_ToggleGlobalFilterButton, { table: table })),
1196
1197
  enableFilters && enableColumnFilters && (React.createElement(MRT_ToggleFiltersButton, { table: table })),
1197
1198
  (enableHiding || enableColumnOrdering || enablePinning) && (React.createElement(MRT_ShowHideColumnsButton, { table: table })),
1198
1199
  enableDensityToggle && (React.createElement(MRT_ToggleDensePaddingButton, { table: table })),
@@ -1266,7 +1267,9 @@ const MRT_TopToolbar = ({ table }) => {
1266
1267
  width: '100%',
1267
1268
  } },
1268
1269
  enableGlobalFilter && positionGlobalFilter === 'left' && (React.createElement(MRT_GlobalFilterTextField, { table: table })), (_a = renderTopToolbarCustomActions === null || renderTopToolbarCustomActions === void 0 ? void 0 : renderTopToolbarCustomActions({ table })) !== null && _a !== void 0 ? _a : React.createElement("span", null),
1269
- enableToolbarInternalActions ? (React.createElement(MRT_ToolbarInternalButtons, { table: table })) : (enableGlobalFilter &&
1270
+ enableToolbarInternalActions ? (React.createElement(Box, { sx: { display: 'flex', flexWrap: 'wrap' } },
1271
+ enableGlobalFilter && positionGlobalFilter === 'right' && (React.createElement(MRT_GlobalFilterTextField, { table: table })),
1272
+ React.createElement(MRT_ToolbarInternalButtons, { table: table }))) : (enableGlobalFilter &&
1270
1273
  positionGlobalFilter === 'right' && (React.createElement(MRT_GlobalFilterTextField, { table: table })))),
1271
1274
  enablePagination &&
1272
1275
  ['top', 'both'].includes(positionPagination !== null && positionPagination !== void 0 ? positionPagination : '') && (React.createElement(MRT_TablePagination, { table: table, position: "top" })),
@@ -1294,8 +1297,11 @@ const MRT_BottomToolbar = ({ table }) => {
1294
1297
  positionToolbarAlertBanner === 'bottom' && (React.createElement(MRT_ToolbarAlertBanner, { table: table })),
1295
1298
  ['both', 'bottom'].includes(positionToolbarDropZone !== null && positionToolbarDropZone !== void 0 ? positionToolbarDropZone : '') && (React.createElement(MRT_ToolbarDropZone, { table: table })),
1296
1299
  React.createElement(Box, { sx: {
1300
+ alignItems: 'flex-start',
1301
+ boxSizing: 'border-box',
1297
1302
  display: 'flex',
1298
1303
  justifyContent: 'space-between',
1304
+ p: '0.5rem',
1299
1305
  width: '100%',
1300
1306
  } },
1301
1307
  renderBottomToolbarCustomActions ? (renderBottomToolbarCustomActions({ table })) : (React.createElement("span", null)),
@@ -1440,7 +1446,7 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
1440
1446
  setAnchorEl(event.currentTarget);
1441
1447
  };
1442
1448
  useEffect(() => {
1443
- setFilterValue('');
1449
+ handleClear();
1444
1450
  }, [columnDef._filterFn]);
1445
1451
  if (columnDef.Filter) {
1446
1452
  return React.createElement(React.Fragment, null, (_e = columnDef.Filter) === null || _e === void 0 ? void 0 : _e.call(columnDef, { column, header, table }));
@@ -1499,7 +1505,11 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
1499
1505
  if (textFieldProps.inputRef) {
1500
1506
  textFieldProps.inputRef = inputRef;
1501
1507
  }
1502
- }, sx: (theme) => (Object.assign({ p: 0, minWidth: !filterChipLabel ? '120px' : 'auto', width: '100%', '& .MuiSelect-icon': {
1508
+ }, sx: (theme) => (Object.assign({ p: 0, minWidth: columnDef.filterVariant === 'range'
1509
+ ? '90px'
1510
+ : !filterChipLabel
1511
+ ? '120px'
1512
+ : 'auto', width: '100%', '& .MuiSelect-icon': {
1503
1513
  mr: '1.5rem',
1504
1514
  } }, ((textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.sx) instanceof Function
1505
1515
  ? textFieldProps.sx(theme)
@@ -1690,7 +1700,7 @@ const MRT_TableHeadCell = ({ header, table }) => {
1690
1700
  return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;
1691
1701
  };
1692
1702
  const getTotalRight = () => {
1693
- return ((table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150);
1703
+ return ((table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 180);
1694
1704
  };
1695
1705
  const handleDragEnter = (_e) => {
1696
1706
  if (enableGrouping && (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === 'drop-zone') {
@@ -2155,8 +2165,8 @@ const MRT_TableBodyRow = ({ row, rowIndex, table, virtualRow, }) => {
2155
2165
  renderDetailPanel && !row.getIsGrouped() && (React.createElement(MRT_TableDetailPanel, { row: row, table: table }))));
2156
2166
  };
2157
2167
 
2158
- const MRT_TableBody = ({ table, tableContainerRef }) => {
2159
- const { getRowModel, getPrePaginationRowModel, getState, options: { enableGlobalFilterRankedResults, enablePagination, enableRowVirtualization, manualFiltering, manualSorting, muiTableBodyProps, virtualizerInstanceRef, virtualizerProps, }, } = table;
2168
+ const MRT_TableBody = ({ table }) => {
2169
+ const { getRowModel, getPrePaginationRowModel, getState, options: { enableGlobalFilterRankedResults, enablePagination, enableRowVirtualization, manualFiltering, manualSorting, muiTableBodyProps, virtualizerInstanceRef, virtualizerProps, }, refs: { tableContainerRef }, } = table;
2160
2170
  const { globalFilter, pagination, sorting } = getState();
2161
2171
  const tableBodyProps = muiTableBodyProps instanceof Function
2162
2172
  ? muiTableBodyProps({ table })
@@ -2297,7 +2307,7 @@ const MRT_TableFooter = ({ table }) => {
2297
2307
  : tableFooterProps === null || tableFooterProps === void 0 ? void 0 : tableFooterProps.sx))) }), getFooterGroups().map((footerGroup) => (React.createElement(MRT_TableFooterRow, { footerGroup: footerGroup, key: footerGroup.id, table: table })))));
2298
2308
  };
2299
2309
 
2300
- const MRT_Table = ({ tableContainerRef, table }) => {
2310
+ const MRT_Table = ({ table }) => {
2301
2311
  const { getState, options: { enableColumnResizing, enableRowVirtualization, enableStickyHeader, enableTableFooter, enableTableHead, muiTableProps, }, } = table;
2302
2312
  const { isFullScreen } = getState();
2303
2313
  const tableProps = muiTableProps instanceof Function
@@ -2307,7 +2317,7 @@ const MRT_Table = ({ tableContainerRef, table }) => {
2307
2317
  ? tableProps.sx(theme)
2308
2318
  : tableProps === null || tableProps === void 0 ? void 0 : tableProps.sx))) }),
2309
2319
  enableTableHead && React.createElement(MRT_TableHead, { table: table }),
2310
- React.createElement(MRT_TableBody, { tableContainerRef: tableContainerRef, table: table }),
2320
+ React.createElement(MRT_TableBody, { table: table }),
2311
2321
  enableTableFooter && React.createElement(MRT_TableFooter, { table: table })));
2312
2322
  };
2313
2323
 
@@ -2342,7 +2352,7 @@ const MRT_TableContainer = ({ table }) => {
2342
2352
  : tableContainerProps === null || tableContainerProps === void 0 ? void 0 : tableContainerProps.sx))), style: Object.assign({ maxHeight: isFullScreen
2343
2353
  ? `calc(100vh - ${totalToolbarHeight}px)`
2344
2354
  : undefined }, tableContainerProps === null || tableContainerProps === void 0 ? void 0 : tableContainerProps.style) }),
2345
- React.createElement(MRT_Table, { tableContainerRef: tableContainerRef, table: table })));
2355
+ React.createElement(MRT_Table, { table: table })));
2346
2356
  };
2347
2357
 
2348
2358
  const MRT_TablePaper = ({ table }) => {
@@ -2520,9 +2530,9 @@ const MRT_TableRoot = (props) => {
2520
2530
  props.tableInstanceRef.current = table;
2521
2531
  }
2522
2532
  return (React.createElement(React.Fragment, null,
2523
- React.createElement(Dialog, { PaperComponent: Box, TransitionComponent: Grow, disablePortal: true, fullScreen: true, keepMounted: false, onClose: () => setIsFullScreen(false), open: isFullScreen, transitionDuration: 400 },
2533
+ React.createElement(Dialog, { PaperComponent: Box, TransitionComponent: Grow, disablePortal: true, fullScreen: true, keepMounted: false, onClose: () => table.setIsFullScreen(false), open: table.getState().isFullScreen, transitionDuration: 400 },
2524
2534
  React.createElement(MRT_TablePaper, { table: table })),
2525
- !isFullScreen && React.createElement(MRT_TablePaper, { table: table }),
2535
+ !table.getState().isFullScreen && React.createElement(MRT_TablePaper, { table: table }),
2526
2536
  editingRow && props.editingMode === 'modal' && (React.createElement(MRT_EditRowModal, { row: editingRow, table: table, open: true }))));
2527
2537
  };
2528
2538