material-react-table 0.16.1 → 0.16.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.
@@ -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, OnChangeFn, Overwrite, ReactTableGenerics, Row, SortingFn, SortingFnOption, TableGenerics, TableInstance, TableState, UseTableInstanceOptions, VisibilityState } from '@tanstack/react-table';
3
+ import { Cell, Column, ColumnDef, ColumnOrderState, ColumnPinningState, FilterFn, FilterFnOption, Header, HeaderGroup, OnChangeFn, Overwrite, ReactTableGenerics, Row, SortingFn, SortingFnOption, 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';
@@ -338,6 +338,14 @@ export declare type MaterialReactTableProps<D extends Record<string, any> = {}>
338
338
  filterValue: any;
339
339
  instance: MRT_TableInstance<D>;
340
340
  }) => void;
341
+ onColumnOrderChanged?: ({ columnOrder, instance, }: {
342
+ columnOrder: ColumnOrderState;
343
+ instance: MRT_TableInstance<D>;
344
+ }) => void;
345
+ onColumnPinningChanged?: ({ columnPinning, instance, }: {
346
+ columnPinning: ColumnPinningState;
347
+ instance: MRT_TableInstance<D>;
348
+ }) => void;
341
349
  onColumnVisibilityChanged?: ({ column, columnVisibility, instance, }: {
342
350
  column: MRT_Column<D>;
343
351
  columnVisibility: VisibilityState;
@@ -29,10 +29,6 @@ function _extends() {
29
29
  return _extends.apply(this, arguments);
30
30
  }
31
31
 
32
- function _objectDestructuringEmpty(obj) {
33
- if (obj == null) throw new TypeError("Cannot destructure undefined");
34
- }
35
-
36
32
  function _objectWithoutPropertiesLoose(source, excluded) {
37
33
  if (source == null) return {};
38
34
  var target = {};
@@ -3404,13 +3400,13 @@ var createDataColumn = function createDataColumn(table, column, currentFilterFns
3404
3400
  var createDisplayColumn = function createDisplayColumn(table, column) {
3405
3401
  return table.createDisplayColumn(column);
3406
3402
  };
3407
- var reorderColumn = function reorderColumn(movingColumn, receivingColumn, columnOrder, setColumnOrder) {
3403
+ var reorderColumn = function reorderColumn(movingColumn, receivingColumn, columnOrder) {
3408
3404
  if (movingColumn.getCanPin()) {
3409
3405
  movingColumn.pin(receivingColumn.getIsPinned());
3410
3406
  }
3411
3407
 
3412
3408
  columnOrder.splice(columnOrder.indexOf(receivingColumn.id), 0, columnOrder.splice(columnOrder.indexOf(movingColumn.id), 1)[0]);
3413
- setColumnOrder([].concat(columnOrder));
3409
+ return [].concat(columnOrder);
3414
3410
  };
3415
3411
  var getLeadingDisplayColumnIds = function getLeadingDisplayColumnIds(props) {
3416
3412
  return [(props.positionActionsColumn === 'first' && props.enableRowActions || props.enableEditing && props.editingMode === 'row') && 'mrt-row-actions', (props.enableExpanding || props.enableGrouping) && 'mrt-expand', props.enableRowSelection && 'mrt-select', props.enableRowNumbers && 'mrt-row-numbers'].filter(Boolean);
@@ -3437,12 +3433,10 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
3437
3433
  enableHiding = _instance$options.enableHiding,
3438
3434
  enablePinning = _instance$options.enablePinning,
3439
3435
  localization = _instance$options.localization,
3440
- onColumnVisibilityChanged = _instance$options.onColumnVisibilityChanged,
3441
3436
  setColumnOrder = instance.setColumnOrder;
3442
3437
 
3443
3438
  var _getState = getState(),
3444
- columnOrder = _getState.columnOrder,
3445
- columnVisibility = _getState.columnVisibility;
3439
+ columnOrder = _getState.columnOrder;
3446
3440
 
3447
3441
  var columnDef = column.columnDef,
3448
3442
  columnDefType = column.columnDefType;
@@ -3450,7 +3444,8 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
3450
3444
  var _useDrop = useDrop({
3451
3445
  accept: 'column',
3452
3446
  drop: function drop(movingColumn) {
3453
- return reorderColumn(movingColumn, column, columnOrder, setColumnOrder);
3447
+ var newColumnOrder = reorderColumn(movingColumn, column, columnOrder);
3448
+ setColumnOrder(newColumnOrder);
3454
3449
  }
3455
3450
  }),
3456
3451
  dropRef = _useDrop[1];
@@ -3483,12 +3478,6 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
3483
3478
  } else {
3484
3479
  column.toggleVisibility();
3485
3480
  }
3486
-
3487
- onColumnVisibilityChanged == null ? void 0 : onColumnVisibilityChanged({
3488
- column: column,
3489
- columnVisibility: columnVisibility,
3490
- instance: instance
3491
- });
3492
3481
  };
3493
3482
 
3494
3483
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.MenuItem, {
@@ -6332,11 +6321,8 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
6332
6321
  var MRT_DraggableTableHeadCell = function MRT_DraggableTableHeadCell(_ref) {
6333
6322
  var header = _ref.header,
6334
6323
  instance = _ref.instance;
6335
- var getState = instance.getState;
6336
-
6337
- _objectDestructuringEmpty(instance.options);
6338
-
6339
- var setColumnOrder = instance.setColumnOrder;
6324
+ var getState = instance.getState,
6325
+ setColumnOrder = instance.setColumnOrder;
6340
6326
 
6341
6327
  var _getState = getState(),
6342
6328
  columnOrder = _getState.columnOrder;
@@ -6346,7 +6332,8 @@ var MRT_DraggableTableHeadCell = function MRT_DraggableTableHeadCell(_ref) {
6346
6332
  var _useDrop = useDrop({
6347
6333
  accept: 'column',
6348
6334
  drop: function drop(movingColumn) {
6349
- return reorderColumn(movingColumn, column, columnOrder, setColumnOrder);
6335
+ var newColumnOrder = reorderColumn(movingColumn, column, columnOrder);
6336
+ setColumnOrder(newColumnOrder);
6350
6337
  }
6351
6338
  }),
6352
6339
  dropRef = _useDrop[1];
@@ -7105,7 +7092,8 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
7105
7092
  var _useDrop = useDrop({
7106
7093
  accept: 'column',
7107
7094
  drop: function drop(movingColumn) {
7108
- return reorderColumn(movingColumn, column, columnOrder, setColumnOrder);
7095
+ var newColumnOrder = reorderColumn(movingColumn, column, columnOrder);
7096
+ setColumnOrder(newColumnOrder);
7109
7097
  }
7110
7098
  }),
7111
7099
  dropRef = _useDrop[1];
@@ -7855,6 +7843,27 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7855
7843
  (_sessionStorage = sessionStorage).setItem.apply(_sessionStorage, itemArgs);
7856
7844
  }
7857
7845
  }, [props.enablePersistentState, props.tableId, props.persistentStateMode, instance]);
7846
+ React.useEffect(function () {
7847
+ props == null ? void 0 : props.onColumnOrderChanged == null ? void 0 : props.onColumnOrderChanged({
7848
+ columnOrder: instance.getState().columnOrder,
7849
+ //@ts-ignore
7850
+ instance: instance
7851
+ });
7852
+ }, [instance.getState().columnOrder]);
7853
+ React.useEffect(function () {
7854
+ props == null ? void 0 : props.onColumnPinningChanged == null ? void 0 : props.onColumnPinningChanged({
7855
+ columnPinning: instance.getState().columnPinning,
7856
+ //@ts-ignore
7857
+ instance: instance
7858
+ });
7859
+ }, [instance.getState().columnPinning]);
7860
+ React.useEffect(function () {
7861
+ props == null ? void 0 : props.onColumnVisibilityChanged == null ? void 0 : props.onColumnVisibilityChanged({
7862
+ columnPinning: instance.getState().columnVisibility,
7863
+ //@ts-ignore
7864
+ instance: instance
7865
+ });
7866
+ }, [instance.getState().columnVisibility]);
7858
7867
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.Dialog, {
7859
7868
  PaperComponent: material.Box,
7860
7869
  TransitionComponent: material.Grow,