material-react-table 1.5.0-beta.0 → 1.5.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.
package/dist/cjs/index.js CHANGED
@@ -305,10 +305,10 @@ const getIsFirstRightPinnedColumn = (column) => {
305
305
  return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;
306
306
  };
307
307
  const getTotalRight = (table, column) => {
308
- return ((table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 160);
308
+ return ((table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 200);
309
309
  };
310
310
  const getCommonCellStyles = ({ column, header, table, tableCellProps, theme, }) => {
311
- var _a, _b, _c, _d;
311
+ var _a, _b, _c, _d, _e, _f, _g, _h;
312
312
  return (Object.assign(Object.assign({ backgroundColor: column.getIsPinned() && column.columnDef.columnDefType !== 'group'
313
313
  ? styles.alpha(styles.lighten(theme.palette.background.default, 0.04), 0.97)
314
314
  : 'inherit', backgroundImage: 'inherit', boxShadow: getIsLastLeftPinnedColumn(table, column)
@@ -317,18 +317,32 @@ const getCommonCellStyles = ({ column, header, table, tableCellProps, theme, })
317
317
  ? `4px 0 8px -6px ${styles.alpha(theme.palette.common.black, 0.2)} inset`
318
318
  : undefined, display: table.options.layoutMode === 'grid' ? 'flex' : 'table-cell', left: column.getIsPinned() === 'left'
319
319
  ? `${column.getStart('left')}px`
320
- : undefined, opacity: ((_a = table.getState().draggingColumn) === null || _a === void 0 ? void 0 : _a.id) === column.id ||
321
- ((_b = table.getState().hoveredColumn) === null || _b === void 0 ? void 0 : _b.id) === column.id
320
+ : undefined, ml: table.options.enableColumnVirtualization &&
321
+ column.getIsPinned() === 'left' &&
322
+ column.getPinnedIndex() === 0
323
+ ? `-${column.getSize() *
324
+ ((_b = (_a = table.getState().columnPinning.left) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 1) *
325
+ 1.2}px`
326
+ : undefined, mr: table.options.enableColumnVirtualization &&
327
+ column.getIsPinned() === 'right' &&
328
+ column.getPinnedIndex() === table.getVisibleLeafColumns().length - 1
329
+ ? `-${column.getSize() *
330
+ ((_d = (_c = table.getState().columnPinning.right) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 1) *
331
+ 1.2}px`
332
+ : undefined, opacity: ((_e = table.getState().draggingColumn) === null || _e === void 0 ? void 0 : _e.id) === column.id ||
333
+ ((_f = table.getState().hoveredColumn) === null || _f === void 0 ? void 0 : _f.id) === column.id
322
334
  ? 0.5
323
335
  : 1, position: column.getIsPinned() && column.columnDef.columnDefType !== 'group'
324
336
  ? 'sticky'
325
337
  : undefined, right: column.getIsPinned() === 'right'
326
338
  ? `${getTotalRight(table, column)}px`
327
- : undefined, transition: `all ${column.getIsResizing() ? 0 : '150ms'} ease-in-out` }, ((tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx) instanceof Function
339
+ : undefined, transition: table.options.enableColumnVirtualization || column.getIsResizing()
340
+ ? 'none'
341
+ : `all 150ms ease-in-out` }, ((tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx) instanceof Function
328
342
  ? tableCellProps.sx(theme)
329
343
  : tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx)), { flex: table.options.layoutMode === 'grid'
330
344
  ? `${column.getSize()} 0 auto`
331
- : undefined, minWidth: `max(${column.getSize()}px, ${(_c = column.columnDef.minSize) !== null && _c !== void 0 ? _c : 30}px)`, width: (_d = header === null || header === void 0 ? void 0 : header.getSize()) !== null && _d !== void 0 ? _d : column.getSize() }));
345
+ : undefined, minWidth: `max(${column.getSize()}px, ${(_g = column.columnDef.minSize) !== null && _g !== void 0 ? _g : 30}px)`, width: (_h = header === null || header === void 0 ? void 0 : header.getSize()) !== null && _h !== void 0 ? _h : column.getSize() }));
332
346
  };
333
347
  const MRT_DefaultColumn = {
334
348
  minSize: 40,
@@ -1909,7 +1923,7 @@ const MRT_TableHeadCellSortLabel = ({ header, table, tableCellProps, }) => {
1909
1923
  }, IconComponent: ArrowDownwardIcon })));
1910
1924
  };
1911
1925
 
1912
- const MRT_TableHeadCell = ({ header, table, }) => {
1926
+ const MRT_TableHeadCell = ({ header, table }) => {
1913
1927
  var _a, _b, _c, _d;
1914
1928
  const theme = styles.useTheme();
1915
1929
  const { getState, options: { enableColumnActions, enableColumnDragging, enableColumnOrdering, enableGrouping, enableMultiSort, layoutMode, muiTableHeadCellProps, }, refs: { tableHeadCellRefs }, setHoveredColumn, } = table;
@@ -2516,7 +2530,7 @@ const MRT_TableBody = ({ columnVirtualizer, table, virtualColumns, virtualPaddin
2516
2530
  };
2517
2531
  const Memo_MRT_TableBody = React.memo(MRT_TableBody, (prev, next) => prev.table.options.data === next.table.options.data);
2518
2532
 
2519
- const MRT_TableFooterCell = ({ footer, table, }) => {
2533
+ const MRT_TableFooterCell = ({ footer, table }) => {
2520
2534
  var _a, _b, _c;
2521
2535
  const { getState, options: { layoutMode, muiTableFooterCellProps }, } = table;
2522
2536
  const { density } = getState();
@@ -2592,7 +2606,7 @@ const MRT_TableFooter = ({ table, virtualColumns, virtualPaddingLeft, virtualPad
2592
2606
  };
2593
2607
 
2594
2608
  const MRT_Table = ({ table }) => {
2595
- var _a, _b;
2609
+ var _a, _b, _c, _d;
2596
2610
  const { getState, options: { columnVirtualizerInstanceRef, columnVirtualizerProps, enableColumnResizing, enableColumnVirtualization, enablePinning, enableStickyHeader, enableTableFooter, enableTableHead, layoutMode, memoMode, muiTableProps, }, refs: { tableContainerRef }, } = table;
2597
2611
  const { isFullScreen, columnPinning, columnVisibility } = getState();
2598
2612
  const tableProps = muiTableProps instanceof Function
@@ -2606,26 +2620,25 @@ const MRT_Table = ({ table }) => {
2606
2620
  var _a, _b, _c, _d;
2607
2621
  const columnsWidths = (_d = (_c = (_b = (_a = table
2608
2622
  .getRowModel()
2609
- .rows[0]) === null || _a === void 0 ? void 0 : _a.getCenterVisibleCells()) === null || _b === void 0 ? void 0 : _b.slice(0, 16)) === null || _c === void 0 ? void 0 : _c.map((cell) => cell.column.getSize() * 1.25)) !== null && _d !== void 0 ? _d : [];
2623
+ .rows[0]) === null || _a === void 0 ? void 0 : _a.getCenterVisibleCells()) === null || _b === void 0 ? void 0 : _b.slice(0, 16)) === null || _c === void 0 ? void 0 : _c.map((cell) => cell.column.getSize() * 1.2)) !== null && _d !== void 0 ? _d : [];
2610
2624
  return columnsWidths.reduce((a, b) => a + b, 0) / columnsWidths.length;
2611
2625
  }, [table.getRowModel().rows, columnPinning, columnVisibility]);
2612
- const pinnedColumnIndexes = React.useMemo(() => enableColumnVirtualization && enablePinning
2626
+ const [leftPinnedIndexes, rightPinnedIndexes] = React.useMemo(() => enableColumnVirtualization && enablePinning
2613
2627
  ? [
2614
- ...table.getLeftFlatHeaders().map((h) => h.column.getPinnedIndex()),
2615
- ...table
2616
- .getRightFlatHeaders()
2617
- .map((h) => table.getVisibleFlatColumns().length -
2618
- h.column.getPinnedIndex() -
2619
- 1),
2628
+ table.getLeftLeafColumns().map((c) => c.getPinnedIndex()),
2629
+ table
2630
+ .getRightLeafColumns()
2631
+ .map((c) => table.getVisibleLeafColumns().length - c.getPinnedIndex() - 1),
2620
2632
  ]
2621
- : [], [columnPinning, enableColumnVirtualization, enablePinning]);
2633
+ : [[], []], [columnPinning, enableColumnVirtualization, enablePinning]);
2622
2634
  const columnVirtualizer = enableColumnVirtualization
2623
- ? reactVirtual.useVirtualizer(Object.assign({ count: table.getRowModel().rows[0].getVisibleCells().length, estimateSize: () => averageColumnWidth, getScrollElement: () => tableContainerRef.current, horizontal: true, measureElement: (element) => element === null || element === void 0 ? void 0 : element.getBoundingClientRect().width, overscan: 3, rangeExtractor: React.useCallback((range) => [
2635
+ ? reactVirtual.useVirtualizer(Object.assign({ count: table.getVisibleLeafColumns().length, estimateSize: () => averageColumnWidth, getScrollElement: () => tableContainerRef.current, horizontal: true, overscan: 3, rangeExtractor: React.useCallback((range) => [
2624
2636
  ...new Set([
2625
- ...pinnedColumnIndexes,
2637
+ ...leftPinnedIndexes,
2626
2638
  ...reactVirtual.defaultRangeExtractor(range),
2639
+ ...rightPinnedIndexes,
2627
2640
  ]),
2628
- ].sort((a, b) => a - b), [pinnedColumnIndexes]) }, vProps))
2641
+ ], [leftPinnedIndexes, rightPinnedIndexes]) }, vProps))
2629
2642
  : undefined;
2630
2643
  if (columnVirtualizerInstanceRef && columnVirtualizer) {
2631
2644
  columnVirtualizerInstanceRef.current = columnVirtualizer;
@@ -2636,13 +2649,10 @@ const MRT_Table = ({ table }) => {
2636
2649
  let virtualPaddingLeft;
2637
2650
  let virtualPaddingRight;
2638
2651
  if (columnVirtualizer && (virtualColumns === null || virtualColumns === void 0 ? void 0 : virtualColumns.length)) {
2639
- virtualPaddingLeft = (virtualColumns === null || virtualColumns === void 0 ? void 0 : virtualColumns.length)
2640
- ? ((_a = virtualColumns[0]) === null || _a === void 0 ? void 0 : _a.start) || 0
2641
- : 0;
2642
- virtualPaddingRight = (virtualColumns === null || virtualColumns === void 0 ? void 0 : virtualColumns.length)
2643
- ? columnVirtualizer.getTotalSize() -
2644
- (((_b = virtualColumns[virtualColumns.length - 1]) === null || _b === void 0 ? void 0 : _b.end) || 0)
2645
- : 0;
2652
+ virtualPaddingLeft = (_b = (_a = virtualColumns[leftPinnedIndexes.length]) === null || _a === void 0 ? void 0 : _a.start) !== null && _b !== void 0 ? _b : 0;
2653
+ virtualPaddingRight =
2654
+ columnVirtualizer.getTotalSize() -
2655
+ ((_d = (_c = virtualColumns[virtualColumns.length - 1 - rightPinnedIndexes.length]) === null || _c === void 0 ? void 0 : _c.end) !== null && _d !== void 0 ? _d : 0);
2646
2656
  }
2647
2657
  const props = {
2648
2658
  table,
@@ -2848,12 +2858,9 @@ const MRT_TableRoot = (props) => {
2848
2858
  ...Array(((_d = (_c = props.state) === null || _c === void 0 ? void 0 : _c.pagination) === null || _d === void 0 ? void 0 : _d.pageSize) ||
2849
2859
  ((_e = initialState === null || initialState === void 0 ? void 0 : initialState.pagination) === null || _e === void 0 ? void 0 : _e.pageSize) ||
2850
2860
  10).fill(null),
2851
- ].map(() => Object.assign({}, ...getAllLeafColumnDefs(props.columns).map((col) => {
2852
- var _a, _b;
2853
- return ({
2854
- [(_b = (_a = col.id) !== null && _a !== void 0 ? _a : col.accessorKey) !== null && _b !== void 0 ? _b : '']: null,
2855
- });
2856
- })))
2861
+ ].map(() => Object.assign({}, ...getAllLeafColumnDefs(props.columns).map((col) => ({
2862
+ [getColumnId(col)]: null,
2863
+ }))))
2857
2864
  : props.data;
2858
2865
  }, [props.data, (_s = props.state) === null || _s === void 0 ? void 0 : _s.isLoading, (_t = props.state) === null || _t === void 0 ? void 0 : _t.showSkeletons]);
2859
2866
  //@ts-ignore
@@ -3002,19 +3009,26 @@ const MRT_Localization_EN = {
3002
3009
  };
3003
3010
 
3004
3011
  const MaterialReactTable = (_a) => {
3005
- var { aggregationFns, autoResetExpanded = false, columnResizeMode = 'onEnd', defaultColumn, defaultDisplayColumn, editingMode = 'modal', enableBottomToolbar = true, enableColumnActions = true, enableColumnFilters = true, enableColumnOrdering = false, enableColumnResizing = false, enableDensityToggle = true, enableExpandAll = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enablePinning = false, enableRowSelection = false, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, layoutMode = 'semantic', localization, positionActionsColumn = 'first', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', positionToolbarAlertBanner = 'top', positionToolbarDropZone = 'top', rowNumberMode = 'original', selectAllMode = 'page', sortingFns } = _a, rest = __rest(_a, ["aggregationFns", "autoResetExpanded", "columnResizeMode", "defaultColumn", "defaultDisplayColumn", "editingMode", "enableBottomToolbar", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "layoutMode", "localization", "positionActionsColumn", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberMode", "selectAllMode", "sortingFns"]);
3006
- const _icons = React.useMemo(() => (Object.assign(Object.assign({}, MRT_Default_Icons), icons)), []);
3012
+ var _b;
3013
+ var { aggregationFns, autoResetExpanded = false, columnResizeMode = 'onEnd', defaultColumn, defaultDisplayColumn, editingMode = 'modal', enableBottomToolbar = true, enableColumnActions = true, enableColumnFilters = true, enableColumnOrdering = false, enableColumnResizing = false, enableDensityToggle = true, enableExpandAll = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enablePinning = false, enableRowSelection = false, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, layoutMode = 'semantic', localization, manualFiltering, manualGrouping, manualPagination, manualSorting, positionActionsColumn = 'first', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', positionToolbarAlertBanner = 'top', positionToolbarDropZone = 'top', rowNumberMode = 'original', selectAllMode = 'page', sortingFns } = _a, rest = __rest(_a, ["aggregationFns", "autoResetExpanded", "columnResizeMode", "defaultColumn", "defaultDisplayColumn", "editingMode", "enableBottomToolbar", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "layoutMode", "localization", "manualFiltering", "manualGrouping", "manualPagination", "manualSorting", "positionActionsColumn", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberMode", "selectAllMode", "sortingFns"]);
3014
+ const _icons = React.useMemo(() => (Object.assign(Object.assign({}, MRT_Default_Icons), icons)), [icons]);
3007
3015
  const _localization = React.useMemo(() => (Object.assign(Object.assign({}, MRT_Localization_EN), localization)), [localization]);
3008
3016
  const _aggregationFns = React.useMemo(() => (Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns)), []);
3009
3017
  const _filterFns = React.useMemo(() => (Object.assign(Object.assign({}, MRT_FilterFns), filterFns)), []);
3010
3018
  const _sortingFns = React.useMemo(() => (Object.assign(Object.assign({}, MRT_SortingFns), sortingFns)), []);
3011
- const _defaultColumn = React.useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultColumn), defaultColumn)), []);
3012
- const _defaultDisplayColumn = React.useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultDisplayColumn), defaultDisplayColumn)), []);
3019
+ const _defaultColumn = React.useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultColumn), defaultColumn)), [defaultColumn]);
3020
+ const _defaultDisplayColumn = React.useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultDisplayColumn), defaultDisplayColumn)), [defaultDisplayColumn]);
3013
3021
  if (rest.enableRowVirtualization || rest.enableColumnVirtualization) {
3014
3022
  layoutMode = 'grid';
3015
3023
  enableStickyHeader = true;
3016
3024
  }
3017
- return (React__default["default"].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, 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, positionActionsColumn: positionActionsColumn, positionExpandColumn: positionExpandColumn, positionGlobalFilter: positionGlobalFilter, positionPagination: positionPagination, positionToolbarAlertBanner: positionToolbarAlertBanner, positionToolbarDropZone: positionToolbarDropZone, rowNumberMode: rowNumberMode, selectAllMode: selectAllMode, sortingFns: _sortingFns }, rest)));
3025
+ if (!((_b = rest.data) === null || _b === void 0 ? void 0 : _b.length)) {
3026
+ manualFiltering = true;
3027
+ manualGrouping = true;
3028
+ manualPagination = true;
3029
+ manualSorting = true;
3030
+ }
3031
+ return (React__default["default"].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, 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)));
3018
3032
  };
3019
3033
 
3020
3034
  exports.MRT_CopyButton = MRT_CopyButton;