material-react-table 0.30.2 → 0.31.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.
@@ -43,8 +43,12 @@ export declare type MRT_TableInstance<TData extends Record<string, any> = {}> =
43
43
  [key: string]: MRT_FilterOption;
44
44
  }>>;
45
45
  setCurrentGlobalFilterFn: Dispatch<SetStateAction<MRT_FilterOption>>;
46
- setCurrentHoveredColumn: Dispatch<SetStateAction<MRT_Column<TData> | null>>;
47
- setCurrentHoveredRow: Dispatch<SetStateAction<MRT_Row | null>>;
46
+ setCurrentHoveredColumn: Dispatch<SetStateAction<MRT_Column<TData> | {
47
+ id: string;
48
+ } | null>>;
49
+ setCurrentHoveredRow: Dispatch<SetStateAction<MRT_Row<TData> | {
50
+ id: string;
51
+ } | null>>;
48
52
  setDensity: Dispatch<SetStateAction<'comfortable' | 'compact' | 'spacious'>>;
49
53
  setIsFullScreen: Dispatch<SetStateAction<boolean>>;
50
54
  setShowAlertBanner: Dispatch<SetStateAction<boolean>>;
@@ -58,8 +62,12 @@ export declare type MRT_TableState<TData extends Record<string, any> = {}> = Tab
58
62
  currentEditingRow: MRT_Row<TData> | null;
59
63
  currentFilterFns: Record<string, MRT_FilterOption>;
60
64
  currentGlobalFilterFn: Record<string, MRT_FilterOption>;
61
- currentHoveredColumn: MRT_Column<TData> | null;
62
- currentHoveredRow: MRT_Row<TData> | null;
65
+ currentHoveredColumn: MRT_Column<TData> | {
66
+ id: string;
67
+ } | null;
68
+ currentHoveredRow: MRT_Row<TData> | {
69
+ id: string;
70
+ } | null;
63
71
  density: 'comfortable' | 'compact' | 'spacious';
64
72
  isFullScreen: boolean;
65
73
  isLoading: boolean;
@@ -393,7 +401,9 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
393
401
  onColumnDrop?: ({ event, draggedColumn, targetColumn, }: {
394
402
  event: DragEvent<HTMLButtonElement>;
395
403
  draggedColumn: MRT_Column<TData>;
396
- targetColumn: MRT_Column<TData> | null;
404
+ targetColumn: MRT_Column<TData> | {
405
+ id: string;
406
+ } | null;
397
407
  }) => void;
398
408
  onCurrentDraggingColumnChange?: OnChangeFn<MRT_Column<TData> | null>;
399
409
  onCurrentDraggingRowChange?: OnChangeFn<MRT_Row<TData> | null>;
@@ -414,7 +424,9 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
414
424
  onRowDrop?: ({ event, draggedRow, targetRow, }: {
415
425
  event: DragEvent<HTMLButtonElement>;
416
426
  draggedRow: MRT_Row<TData>;
417
- targetRow: MRT_Row<TData> | null;
427
+ targetRow: MRT_Row<TData> | {
428
+ id: string;
429
+ } | null;
418
430
  }) => void;
419
431
  onShowAlertBannerChange?: OnChangeFn<boolean>;
420
432
  onShowFiltersChange?: OnChangeFn<boolean>;
@@ -424,7 +436,8 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
424
436
  positionExpandColumn?: 'first' | 'last';
425
437
  positionGlobalFilter?: 'left' | 'right';
426
438
  positionPagination?: 'bottom' | 'top' | 'both';
427
- positionToolbarAlertBanner?: 'bottom' | 'top';
439
+ positionToolbarAlertBanner?: 'bottom' | 'top' | 'none';
440
+ positionToolbarDropZone?: 'bottom' | 'top' | 'none' | 'both';
428
441
  renderDetailPanel?: ({ row, table, }: {
429
442
  row: MRT_Row<TData>;
430
443
  table: MRT_TableInstance<TData>;
@@ -469,5 +482,5 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
469
482
  tableId?: string;
470
483
  virtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement, HTMLTableRowElement>>;
471
484
  };
472
- declare const _default: <TData extends Record<string, any> = {}>({ autoResetExpanded, columnResizeMode, defaultColumn, editingMode, enableColumnActions, enableColumnFilterChangeMode, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGlobalFilterChangeMode, enableGlobalFilterRankedResults, enableGrouping, enableHiding, enableMultiRowSelection, enableMultiSort, enablePagination, enablePinning, enableRowSelection, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarBottom, enableToolbarInternalActions, enableToolbarTop, icons, localization, positionActionsColumn, positionExpandColumn, positionGlobalFilter, positionPagination, positionToolbarAlertBanner, rowNumberMode, selectAllMode, ...rest }: MaterialReactTableProps<TData>) => JSX.Element;
485
+ declare const _default: <TData extends Record<string, any> = {}>({ autoResetExpanded, columnResizeMode, defaultColumn, editingMode, enableColumnActions, enableColumnFilterChangeMode, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGlobalFilterChangeMode, enableGlobalFilterRankedResults, enableGrouping, enableHiding, enableMultiRowSelection, enableMultiSort, enablePagination, enablePinning, enableRowSelection, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarBottom, enableToolbarInternalActions, enableToolbarTop, icons, localization, positionActionsColumn, positionExpandColumn, positionGlobalFilter, positionPagination, positionToolbarAlertBanner, positionToolbarDropZone, rowNumberMode, selectAllMode, ...rest }: MaterialReactTableProps<TData>) => JSX.Element;
473
486
  export default _default;
@@ -10,6 +10,7 @@ export interface MRT_Localization {
10
10
  clickToCopy: string;
11
11
  columnActions: string;
12
12
  copiedToClipboard: string;
13
+ dropToGroupBy: string;
13
14
  edit: string;
14
15
  expand: string;
15
16
  expandAll: string;
@@ -56,6 +56,7 @@ var MRT_DefaultLocalization_EN = {
56
56
  clickToCopy: 'Click to copy',
57
57
  columnActions: 'Column Actions',
58
58
  copiedToClipboard: 'Copied to clipboard',
59
+ dropToGroupBy: 'Drop to group by {column}',
59
60
  edit: 'Edit',
60
61
  expand: 'Expand',
61
62
  expandAll: 'Expand all',
@@ -1935,6 +1936,48 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
1935
1936
  })));
1936
1937
  };
1937
1938
 
1939
+ var MRT_ToolbarDropZone = function MRT_ToolbarDropZone(_ref) {
1940
+ var _currentDraggingColum, _currentDraggingColum2;
1941
+
1942
+ var table = _ref.table;
1943
+ var getState = table.getState,
1944
+ _table$options = table.options,
1945
+ enableGrouping = _table$options.enableGrouping,
1946
+ localization = _table$options.localization,
1947
+ setCurrentHoveredColumn = table.setCurrentHoveredColumn;
1948
+
1949
+ var _getState = getState(),
1950
+ currentDraggingColumn = _getState.currentDraggingColumn,
1951
+ currentHoveredColumn = _getState.currentHoveredColumn;
1952
+
1953
+ var handleDragEnter = function handleDragEnter(_event) {
1954
+ setCurrentHoveredColumn({
1955
+ id: 'drop-zone'
1956
+ });
1957
+ };
1958
+
1959
+ return React__default.createElement(material.Fade, {
1960
+ unmountOnExit: true,
1961
+ mountOnEnter: true,
1962
+ "in": !!enableGrouping && !!currentDraggingColumn
1963
+ }, React__default.createElement(material.Box, {
1964
+ sx: function sx(theme) {
1965
+ return {
1966
+ alignItems: 'center',
1967
+ backgroundColor: material.alpha(theme.palette.info.main, (currentHoveredColumn == null ? void 0 : currentHoveredColumn.id) === 'drop-zone' ? 0.2 : 0.1),
1968
+ border: "dashed " + theme.palette.info.main + " 2px",
1969
+ display: 'flex',
1970
+ justifyContent: 'center',
1971
+ height: 'calc(100% - 4px)',
1972
+ position: 'absolute',
1973
+ width: 'calc(100% - 4px)',
1974
+ zIndex: 2
1975
+ };
1976
+ },
1977
+ onDragEnter: handleDragEnter
1978
+ }, React__default.createElement(material.Typography, null, localization.dropToGroupBy.replace('{column}', (_currentDraggingColum = currentDraggingColumn == null ? void 0 : (_currentDraggingColum2 = currentDraggingColumn.columnDef) == null ? void 0 : _currentDraggingColum2.header) != null ? _currentDraggingColum : ''))));
1979
+ };
1980
+
1938
1981
  var commonToolbarStyles = function commonToolbarStyles(_ref) {
1939
1982
  var theme = _ref.theme;
1940
1983
  return {
@@ -1962,6 +2005,7 @@ var MRT_ToolbarTop = function MRT_ToolbarTop(_ref2) {
1962
2005
  positionGlobalFilter = _table$options.positionGlobalFilter,
1963
2006
  positionPagination = _table$options.positionPagination,
1964
2007
  positionToolbarAlertBanner = _table$options.positionToolbarAlertBanner,
2008
+ positionToolbarDropZone = _table$options.positionToolbarDropZone,
1965
2009
  renderToolbarTopCustomActions = _table$options.renderToolbarTopCustomActions,
1966
2010
  tableId = _table$options.tableId;
1967
2011
 
@@ -1989,6 +2033,8 @@ var MRT_ToolbarTop = function MRT_ToolbarTop(_ref2) {
1989
2033
  }), positionToolbarAlertBanner === 'top' && React__default.createElement(MRT_ToolbarAlertBanner, {
1990
2034
  stackAlertBanner: stackAlertBanner,
1991
2035
  table: table
2036
+ }), ['both', 'top'].includes(positionToolbarDropZone != null ? positionToolbarDropZone : '') && React__default.createElement(MRT_ToolbarDropZone, {
2037
+ table: table
1992
2038
  }), React__default.createElement(material.Box, {
1993
2039
  sx: {
1994
2040
  alignItems: 'flex-start',
@@ -2026,6 +2072,7 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
2026
2072
  muiTableToolbarBottomProps = _table$options.muiTableToolbarBottomProps,
2027
2073
  positionPagination = _table$options.positionPagination,
2028
2074
  positionToolbarAlertBanner = _table$options.positionToolbarAlertBanner,
2075
+ positionToolbarDropZone = _table$options.positionToolbarDropZone,
2029
2076
  renderToolbarBottomCustomActions = _table$options.renderToolbarBottomCustomActions,
2030
2077
  tableId = _table$options.tableId;
2031
2078
 
@@ -2057,6 +2104,8 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
2057
2104
  table: table
2058
2105
  }), positionToolbarAlertBanner === 'bottom' && React__default.createElement(MRT_ToolbarAlertBanner, {
2059
2106
  table: table
2107
+ }), ['both', 'bottom'].includes(positionToolbarDropZone != null ? positionToolbarDropZone : '') && React__default.createElement(MRT_ToolbarDropZone, {
2108
+ table: table
2060
2109
  }), React__default.createElement(material.Box, {
2061
2110
  sx: {
2062
2111
  display: 'flex',
@@ -2533,7 +2582,9 @@ var MRT_TableHeadCellGrabHandle = function MRT_TableHeadCellGrabHandle(_ref) {
2533
2582
  targetColumn: currentHoveredColumn
2534
2583
  });
2535
2584
 
2536
- if (enableColumnOrdering && currentHoveredColumn && (currentHoveredColumn == null ? void 0 : currentHoveredColumn.id) !== (currentDraggingColumn == null ? void 0 : currentDraggingColumn.id)) {
2585
+ if ((currentHoveredColumn == null ? void 0 : currentHoveredColumn.id) === 'drop-zone') {
2586
+ column.toggleGrouping();
2587
+ } else if (enableColumnOrdering && currentHoveredColumn && (currentHoveredColumn == null ? void 0 : currentHoveredColumn.id) !== (currentDraggingColumn == null ? void 0 : currentDraggingColumn.id)) {
2537
2588
  setColumnOrder(reorderColumn(column, currentHoveredColumn, columnOrder));
2538
2589
  }
2539
2590
 
@@ -2670,6 +2721,10 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2670
2721
  };
2671
2722
 
2672
2723
  var handleDragEnter = function handleDragEnter(_e) {
2724
+ if (enableGrouping && (currentHoveredColumn == null ? void 0 : currentHoveredColumn.id) === 'drop-zone') {
2725
+ setCurrentHoveredColumn(null);
2726
+ }
2727
+
2673
2728
  if (enableColumnOrdering && currentDraggingColumn) {
2674
2729
  setCurrentHoveredColumn(columnDef.enableColumnOrdering !== false ? column : null);
2675
2730
  }
@@ -3004,6 +3059,7 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
3004
3059
  enableClickToCopy = _table$options.enableClickToCopy,
3005
3060
  enableColumnOrdering = _table$options.enableColumnOrdering,
3006
3061
  enableEditing = _table$options.enableEditing,
3062
+ enableGrouping = _table$options.enableGrouping,
3007
3063
  enablePagination = _table$options.enablePagination,
3008
3064
  enableRowNumbers = _table$options.enableRowNumbers,
3009
3065
  muiTableBodyCellProps = _table$options.muiTableBodyCellProps,
@@ -3070,6 +3126,10 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
3070
3126
  };
3071
3127
 
3072
3128
  var handleDragEnter = function handleDragEnter(_e) {
3129
+ if (enableGrouping && (currentHoveredColumn == null ? void 0 : currentHoveredColumn.id) === 'drop-zone') {
3130
+ setCurrentHoveredColumn(null);
3131
+ }
3132
+
3073
3133
  if (enableColumnOrdering && currentDraggingColumn) {
3074
3134
  setCurrentHoveredColumn(columnDef.enableColumnOrdering !== false ? column : null);
3075
3135
  }
@@ -3730,14 +3790,14 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3730
3790
  getGroupedRowModel: reactTable.getGroupedRowModel(),
3731
3791
  getPaginationRowModel: reactTable.getPaginationRowModel(),
3732
3792
  getSortedRowModel: reactTable.getSortedRowModel(),
3733
- onColumnOrderChange: setColumnOrder
3793
+ onColumnOrderChange: setColumnOrder,
3794
+ getSubRows: function getSubRows(row) {
3795
+ return row == null ? void 0 : row.subRows;
3796
+ }
3734
3797
  }, props, {
3735
3798
  //@ts-ignore
3736
3799
  columns: columnDefs,
3737
3800
  data: data,
3738
- getSubRows: function getSubRows(row) {
3739
- return row == null ? void 0 : row.subRows;
3740
- },
3741
3801
  globalFilterFn: //@ts-ignore
3742
3802
  (_MRT_FilterFns$curren = MRT_FilterFns[currentGlobalFilterFn]) != null ? _MRT_FilterFns$curren : MRT_FilterFns.fuzzy,
3743
3803
  initialState: initialState,
@@ -3795,7 +3855,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3795
3855
  }));
3796
3856
  };
3797
3857
 
3798
- var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilterChangeMode", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterChangeMode", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "positionActionsColumn", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "rowNumberMode", "selectAllMode"];
3858
+ var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilterChangeMode", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterChangeMode", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "positionActionsColumn", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberMode", "selectAllMode"];
3799
3859
  var MaterialReactTable = (function (_ref) {
3800
3860
  var _ref$autoResetExpande = _ref.autoResetExpanded,
3801
3861
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
@@ -3875,6 +3935,8 @@ var MaterialReactTable = (function (_ref) {
3875
3935
  positionPagination = _ref$positionPaginati === void 0 ? 'bottom' : _ref$positionPaginati,
3876
3936
  _ref$positionToolbarA = _ref.positionToolbarAlertBanner,
3877
3937
  positionToolbarAlertBanner = _ref$positionToolbarA === void 0 ? 'top' : _ref$positionToolbarA,
3938
+ _ref$positionToolbarD = _ref.positionToolbarDropZone,
3939
+ positionToolbarDropZone = _ref$positionToolbarD === void 0 ? 'top' : _ref$positionToolbarD,
3878
3940
  _ref$rowNumberMode = _ref.rowNumberMode,
3879
3941
  rowNumberMode = _ref$rowNumberMode === void 0 ? 'original' : _ref$rowNumberMode,
3880
3942
  _ref$selectAllMode = _ref.selectAllMode,
@@ -3920,6 +3982,7 @@ var MaterialReactTable = (function (_ref) {
3920
3982
  positionGlobalFilter: positionGlobalFilter,
3921
3983
  positionPagination: positionPagination,
3922
3984
  positionToolbarAlertBanner: positionToolbarAlertBanner,
3985
+ positionToolbarDropZone: positionToolbarDropZone,
3923
3986
  rowNumberMode: rowNumberMode,
3924
3987
  selectAllMode: selectAllMode
3925
3988
  }, rest));