material-react-table 0.9.6 → 0.9.7

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.
package/README.md CHANGED
@@ -29,6 +29,8 @@ Join the [discord](https://discord.gg/5wqyRx6fnm) server to join in on the devel
29
29
 
30
30
  ### Features (All Features work and are MVP, but are still being polished)
31
31
 
32
+ _All features can be enabled/disabled easily_
33
+
32
34
  - [x] Click To Copy Cell Values
33
35
  - [x] Column Actions
34
36
  - [x] Column Grouping (Group By and Aggregates)
@@ -1,6 +1,6 @@
1
1
  import { ChangeEvent, Dispatch, FC, FocusEvent, MouseEvent, ReactNode, SetStateAction } from 'react';
2
2
  import { AlertProps, ButtonProps, CheckboxProps, IconButtonProps, LinearProgressProps, PaperProps, SkeletonProps, TableBodyProps, TableCellProps, TableContainerProps, TableFooterProps, TableHeadProps, TablePaginationProps, TableProps, TableRowProps, TextFieldProps, ToolbarProps } from '@mui/material';
3
- import { Cell, Column, ColumnDef, FilterFn, FilterFnOption, Header, HeaderGroup, Overwrite, ReactTableGenerics, Row, TableGenerics, TableInstance, TableState, UseTableInstanceOptions, VisibilityState } from '@tanstack/react-table';
3
+ import { Cell, Column, ColumnDef, FilterFn, FilterFnOption, Header, HeaderGroup, OnChangeFn, Overwrite, ReactTableGenerics, Row, TableGenerics, TableInstance, TableState, UseTableInstanceOptions, VisibilityState } from '@tanstack/react-table';
4
4
  import { Options as VirtualizerOptions } from 'react-virtual';
5
5
  import { MRT_Localization } from './localization';
6
6
  import { MRT_Icons } from './icons';
@@ -284,6 +284,14 @@ export declare type MaterialReactTableProps<D extends Record<string, any> = {}>
284
284
  muiTableToolbarTopProps?: ToolbarProps | (({ tableInstance, }: {
285
285
  tableInstance: MRT_TableInstance;
286
286
  }) => ToolbarProps);
287
+ onCurrentEditingCellChange?: OnChangeFn<MRT_Cell>;
288
+ onCurrentEditingRowChange?: OnChangeFn<MRT_Row>;
289
+ onCurrentFilterFnsChange?: OnChangeFn<{
290
+ [key: string]: MRT_FilterFn<D>;
291
+ }>;
292
+ onCurrentGlobalFilterFnChange?: OnChangeFn<MRT_FilterFn<D>>;
293
+ onIsDensePaddingChange?: OnChangeFn<boolean>;
294
+ onIsFullScreenChange?: OnChangeFn<boolean>;
287
295
  onMrtCellClick?: ({ cell, event, tableInstance, }: {
288
296
  cell: MRT_Cell<D>;
289
297
  tableInstance: MRT_TableInstance<D>;
@@ -363,6 +371,8 @@ export declare type MaterialReactTableProps<D extends Record<string, any> = {}>
363
371
  showGlobalFilter: boolean;
364
372
  tableInstance: MRT_TableInstance<D>;
365
373
  }) => void;
374
+ onShowFiltersChange?: OnChangeFn<boolean>;
375
+ onShowGlobalFilterChange?: OnChangeFn<boolean>;
366
376
  persistentStateMode?: 'localStorage' | 'sessionStorage';
367
377
  positionActionsColumn?: 'first' | 'last';
368
378
  positionPagination?: 'bottom' | 'top' | 'both';
@@ -5607,6 +5607,7 @@ var MRT_ToolbarTop = function MRT_ToolbarTop(_ref2) {
5607
5607
  tableInstance: tableInstance
5608
5608
  }), React__default.createElement(material.Box, {
5609
5609
  sx: {
5610
+ alignItems: 'flex-start',
5610
5611
  display: 'flex',
5611
5612
  justifyContent: 'space-between',
5612
5613
  p: '0.5rem',
@@ -7344,18 +7345,23 @@ var MRT_TableFooter = function MRT_TableFooter(_ref) {
7344
7345
  var MRT_Table = function MRT_Table(_ref) {
7345
7346
  var tableContainerRef = _ref.tableContainerRef,
7346
7347
  tableInstance = _ref.tableInstance;
7347
- var _tableInstance$option = tableInstance.options,
7348
+ var getState = tableInstance.getState,
7349
+ _tableInstance$option = tableInstance.options,
7348
7350
  enableColumnResizing = _tableInstance$option.enableColumnResizing,
7349
7351
  enableRowVirtualization = _tableInstance$option.enableRowVirtualization,
7350
7352
  enableStickyHeader = _tableInstance$option.enableStickyHeader,
7351
7353
  enableTableFooter = _tableInstance$option.enableTableFooter,
7352
7354
  enableTableHead = _tableInstance$option.enableTableHead,
7353
7355
  muiTableProps = _tableInstance$option.muiTableProps;
7356
+
7357
+ var _getState = getState(),
7358
+ isFullScreen = _getState.isFullScreen;
7359
+
7354
7360
  var tableProps = muiTableProps instanceof Function ? muiTableProps({
7355
7361
  tableInstance: tableInstance
7356
7362
  }) : muiTableProps;
7357
7363
  return React__default.createElement(material.Table, Object.assign({
7358
- stickyHeader: enableStickyHeader
7364
+ stickyHeader: enableStickyHeader || enableRowVirtualization || isFullScreen
7359
7365
  }, tableProps, {
7360
7366
  sx: _extends({
7361
7367
  tableLayout: enableColumnResizing || enableRowVirtualization ? 'fixed' : 'auto'
@@ -7376,6 +7382,7 @@ var MRT_TableContainer = function MRT_TableContainer(_ref) {
7376
7382
  var getState = tableInstance.getState,
7377
7383
  _tableInstance$option = tableInstance.options,
7378
7384
  enableStickyHeader = _tableInstance$option.enableStickyHeader,
7385
+ enableRowVirtualization = _tableInstance$option.enableRowVirtualization,
7379
7386
  muiTableContainerProps = _tableInstance$option.muiTableContainerProps,
7380
7387
  tableId = _tableInstance$option.tableId;
7381
7388
 
@@ -7401,12 +7408,12 @@ var MRT_TableContainer = function MRT_TableContainer(_ref) {
7401
7408
  ref: tableContainerRef,
7402
7409
  sx: _extends({
7403
7410
  maxWidth: '100%',
7404
- maxHeight: enableStickyHeader ? "clamp(350px, calc(100vh - " + totalToolbarHeight + "px), 2000px)" : undefined,
7411
+ maxHeight: enableStickyHeader || enableRowVirtualization ? "clamp(350px, calc(100vh - " + totalToolbarHeight + "px), 9999px)" : undefined,
7405
7412
  overflow: 'auto'
7406
7413
  }, tableContainerProps == null ? void 0 : tableContainerProps.sx),
7407
- style: {
7414
+ style: _extends({
7408
7415
  maxHeight: isFullScreen ? "calc(100vh - " + totalToolbarHeight + "px)" : undefined
7409
- }
7416
+ }, tableContainerProps == null ? void 0 : tableContainerProps.style)
7410
7417
  }), React__default.createElement(MRT_Table, {
7411
7418
  tableContainerRef: tableContainerRef,
7412
7419
  tableInstance: tableInstance
@@ -7427,10 +7434,8 @@ var MRT_TablePaper = function MRT_TablePaper(_ref) {
7427
7434
  React.useEffect(function () {
7428
7435
  if (typeof window !== 'undefined') {
7429
7436
  if (isFullScreen) {
7430
- document.body.style.overflow = 'hidden';
7431
7437
  document.body.style.height = '100vh';
7432
7438
  } else {
7433
- document.body.style.overflow = 'auto';
7434
7439
  document.body.style.height = 'auto';
7435
7440
  }
7436
7441
  }
@@ -7445,15 +7450,14 @@ var MRT_TablePaper = function MRT_TablePaper(_ref) {
7445
7450
  }, tablePaperProps, {
7446
7451
  sx: _extends({
7447
7452
  transition: 'all 0.2s ease-in-out'
7448
- }, tablePaperProps == null ? void 0 : tablePaperProps.sx),
7449
- style: {
7453
+ }, tablePaperProps == null ? void 0 : tablePaperProps.sx, {
7450
7454
  height: isFullScreen ? '100vh' : undefined,
7451
7455
  margin: isFullScreen ? '0' : undefined,
7452
7456
  maxHeight: isFullScreen ? '100vh' : undefined,
7453
7457
  maxWidth: isFullScreen ? '100vw' : undefined,
7454
7458
  padding: isFullScreen ? '0' : undefined,
7455
7459
  width: isFullScreen ? '100vw' : undefined
7456
- }
7460
+ })
7457
7461
  }), enableToolbarTop && React__default.createElement(MRT_ToolbarTop, {
7458
7462
  tableInstance: tableInstance
7459
7463
  }), React__default.createElement(MRT_TableContainer, {
@@ -7464,7 +7468,7 @@ var MRT_TablePaper = function MRT_TablePaper(_ref) {
7464
7468
  };
7465
7469
 
7466
7470
  var MRT_TableRoot = function MRT_TableRoot(props) {
7467
- var _initialState$current, _initialState$current2, _initialState$isDense, _initialState$isFullS, _initialState$showFil, _initialState$showGlo, _props$globalFilterFn, _props$state3, _props$state4;
7471
+ var _initialState$current, _initialState$current2, _initialState$isDense, _initialState$isFullS, _initialState$showFil, _initialState$showGlo, _props$globalFilterFn, _props$state3, _props$state4, _props$onCurrentEditi, _props$onCurrentEditi2, _props$onCurrentFilte, _props$onCurrentGloba, _props$onIsDensePaddi, _props$onIsFullScreen, _props$onShowFiltersC, _props$onShowGlobalFi;
7468
7472
 
7469
7473
  var _useState = React.useState(props.tableId),
7470
7474
  tableId = _useState[0],
@@ -7583,7 +7587,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7583
7587
  id: 'mrt-row-actions',
7584
7588
  muiTableBodyCellProps: props.muiTableBodyCellProps,
7585
7589
  muiTableHeadCellProps: props.muiTableHeadCellProps,
7586
- size: 60
7590
+ size: 70
7587
7591
  }), showExpandColumn && createDisplayColumn(table, {
7588
7592
  Cell: function Cell(_ref4) {
7589
7593
  var cell = _ref4.cell;
@@ -7672,14 +7676,14 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7672
7676
  showGlobalFilter: showGlobalFilter
7673
7677
  }, props.state)
7674
7678
  })), {
7675
- setCurrentEditingCell: setCurrentEditingCell,
7676
- setCurrentEditingRow: setCurrentEditingRow,
7677
- setCurrentFilterFns: setCurrentFilterFns,
7678
- setCurrentGlobalFilterFn: setCurrentGlobalFilterFn,
7679
- setIsDensePadding: setIsDensePadding,
7680
- setIsFullScreen: setIsFullScreen,
7681
- setShowFilters: setShowFilters,
7682
- setShowGlobalFilter: setShowGlobalFilter
7679
+ setCurrentEditingCell: (_props$onCurrentEditi = props.onCurrentEditingCellChange) != null ? _props$onCurrentEditi : setCurrentEditingCell,
7680
+ setCurrentEditingRow: (_props$onCurrentEditi2 = props.onCurrentEditingRowChange) != null ? _props$onCurrentEditi2 : setCurrentEditingRow,
7681
+ setCurrentFilterFns: (_props$onCurrentFilte = props.onCurrentFilterFnsChange) != null ? _props$onCurrentFilte : setCurrentFilterFns,
7682
+ setCurrentGlobalFilterFn: (_props$onCurrentGloba = props.onCurrentGlobalFilterFnChange) != null ? _props$onCurrentGloba : setCurrentGlobalFilterFn,
7683
+ setIsDensePadding: (_props$onIsDensePaddi = props.onIsDensePaddingChange) != null ? _props$onIsDensePaddi : setIsDensePadding,
7684
+ setIsFullScreen: (_props$onIsFullScreen = props.onIsFullScreenChange) != null ? _props$onIsFullScreen : setIsFullScreen,
7685
+ setShowFilters: (_props$onShowFiltersC = props.onShowFiltersChange) != null ? _props$onShowFiltersC : setShowFilters,
7686
+ setShowGlobalFilter: (_props$onShowGlobalFi = props.onShowGlobalFilterChange) != null ? _props$onShowGlobalFi : setShowGlobalFilter
7683
7687
  });
7684
7688
 
7685
7689
  React.useEffect(function () {
@@ -7769,7 +7773,7 @@ var MaterialReactTable = (function (_ref) {
7769
7773
  _ref$enableSorting = _ref.enableSorting,
7770
7774
  enableSorting = _ref$enableSorting === void 0 ? true : _ref$enableSorting,
7771
7775
  _ref$enableStickyHead = _ref.enableStickyHeader,
7772
- enableStickyHeader = _ref$enableStickyHead === void 0 ? true : _ref$enableStickyHead,
7776
+ enableStickyHeader = _ref$enableStickyHead === void 0 ? false : _ref$enableStickyHead,
7773
7777
  _ref$enableTableFoote = _ref.enableTableFooter,
7774
7778
  enableTableFooter = _ref$enableTableFoote === void 0 ? true : _ref$enableTableFoote,
7775
7779
  _ref$enableTableHead = _ref.enableTableHead,