material-react-table 2.11.0 → 2.11.2
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.d.ts +8 -6
- package/dist/index.esm.js +73 -47
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +73 -46
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/body/MRT_TableBody.tsx +1 -1
- package/src/components/inputs/MRT_SelectCheckbox.tsx +13 -22
- package/src/components/toolbar/MRT_ToolbarAlertBanner.tsx +4 -6
- package/src/hooks/useMRT_Rows.ts +1 -2
- package/src/utils/row.utils.ts +76 -25
package/dist/index.d.ts
CHANGED
@@ -1386,19 +1386,21 @@ declare const getLeadingDisplayColumnIds: <TData extends MRT_RowData>(tableOptio
|
|
1386
1386
|
declare const getTrailingDisplayColumnIds: <TData extends MRT_RowData>(tableOptions: MRT_StatefulTableOptions<TData>) => MRT_DisplayColumnIds[];
|
1387
1387
|
declare const getDefaultColumnOrderIds: <TData extends MRT_RowData>(tableOptions: MRT_StatefulTableOptions<TData>, reset?: boolean) => string[];
|
1388
1388
|
|
1389
|
-
declare const getMRT_Rows: <TData extends MRT_RowData>(table: MRT_TableInstance<TData>,
|
1389
|
+
declare const getMRT_Rows: <TData extends MRT_RowData>(table: MRT_TableInstance<TData>, all?: boolean) => MRT_Row<TData>[];
|
1390
1390
|
declare const getCanRankRows: <TData extends MRT_RowData>(table: MRT_TableInstance<TData>) => boolean | undefined;
|
1391
1391
|
declare const getIsRankingRows: <TData extends MRT_RowData>(table: MRT_TableInstance<TData>) => any;
|
1392
1392
|
declare const getIsRowSelected: <TData extends MRT_RowData>({ row, table, }: {
|
1393
1393
|
row: MRT_Row<TData>;
|
1394
1394
|
table: MRT_TableInstance<TData>;
|
1395
1395
|
}) => boolean | undefined;
|
1396
|
-
declare const getMRT_RowSelectionHandler:
|
1397
|
-
event: ChangeEvent<HTMLInputElement> | MouseEvent<HTMLTableRowElement>;
|
1396
|
+
declare const getMRT_RowSelectionHandler: <TData extends MRT_RowData>({ row, staticRowIndex, table, }: {
|
1398
1397
|
row: MRT_Row<TData>;
|
1399
1398
|
staticRowIndex?: number | undefined;
|
1400
1399
|
table: MRT_TableInstance<TData>;
|
1401
|
-
}) => void;
|
1400
|
+
}) => (event: ChangeEvent<HTMLInputElement> | MouseEvent<HTMLTableRowElement>, value?: boolean) => void;
|
1401
|
+
declare const getMRT_SelectAllHandler: <TData extends MRT_RowData>({ table }: {
|
1402
|
+
table: MRT_TableInstance<TData>;
|
1403
|
+
}) => (event: ChangeEvent<HTMLInputElement> | MouseEvent<HTMLButtonElement>, value?: boolean) => void;
|
1402
1404
|
|
1403
1405
|
declare const useMaterialReactTable: <TData extends MRT_RowData>(tableOptions: MRT_TableOptions<TData>) => MRT_TableInstance<TData>;
|
1404
1406
|
|
@@ -1408,7 +1410,7 @@ declare const useMRT_Effects: <TData extends MRT_RowData>(table: MRT_TableInstan
|
|
1408
1410
|
|
1409
1411
|
declare const useMRT_RowVirtualizer: <TData extends MRT_RowData, TScrollElement extends Element | Window = HTMLDivElement, TItemElement extends Element = HTMLTableRowElement>(table: MRT_TableInstance<TData>, rows?: MRT_Row<TData>[] | undefined) => MRT_RowVirtualizer<TScrollElement, TItemElement> | undefined;
|
1410
1412
|
|
1411
|
-
declare const useMRT_Rows: <TData extends MRT_RowData>(table: MRT_TableInstance<TData
|
1413
|
+
declare const useMRT_Rows: <TData extends MRT_RowData>(table: MRT_TableInstance<TData>) => MRT_Row<TData>[];
|
1412
1414
|
|
1413
1415
|
/**
|
1414
1416
|
* The MRT hook that wraps the TanStack useReactTable hook and adds additional functionality
|
@@ -1836,4 +1838,4 @@ interface MRT_TopToolbarProps<TData extends MRT_RowData> {
|
|
1836
1838
|
}
|
1837
1839
|
declare const MRT_TopToolbar: <TData extends MRT_RowData>({ table, }: MRT_TopToolbarProps<TData>) => react_jsx_runtime.JSX.Element;
|
1838
1840
|
|
1839
|
-
export { type DropdownOption, type LiteralUnion, MRT_ActionMenuItem, type MRT_ActionMenuItemProps, type MRT_AggregationFn, MRT_AggregationFns, type MRT_AggregationOption, MRT_BottomToolbar, type MRT_BottomToolbarProps, type MRT_Cell, type MRT_Column, MRT_ColumnActionMenu, type MRT_ColumnActionMenuProps, type MRT_ColumnDef, type MRT_ColumnFilterFnsState, type MRT_ColumnFiltersState, type MRT_ColumnHelper, type MRT_ColumnOrderState, MRT_ColumnPinningButtons, type MRT_ColumnPinningButtonsProps, type MRT_ColumnPinningState, type MRT_ColumnSizingInfoState, type MRT_ColumnSizingState, type MRT_ColumnVirtualizer, MRT_CopyButton, type MRT_CopyButtonProps, MRT_DefaultColumn, MRT_DefaultDisplayColumn, type MRT_DefinedColumnDef, type MRT_DefinedTableOptions, type MRT_DensityState, type MRT_DisplayColumnDef, type MRT_DisplayColumnIds, MRT_EditActionButtons, type MRT_EditActionButtonsProps, MRT_EditCellTextField, type MRT_EditCellTextFieldProps, MRT_EditRowModal, type MRT_EditRowModalProps, MRT_ExpandAllButton, type MRT_ExpandAllButtonProps, MRT_ExpandButton, type MRT_ExpandButtonProps, type MRT_ExpandedState, MRT_FilterCheckbox, type MRT_FilterCheckboxProps, type MRT_FilterFn, MRT_FilterFns, type MRT_FilterOption, MRT_FilterOptionMenu, type MRT_FilterOptionMenuProps, MRT_FilterRangeFields, type MRT_FilterRangeFieldsProps, MRT_FilterRangeSlider, type MRT_FilterRangeSliderProps, MRT_FilterTextField, type MRT_FilterTextFieldProps, MRT_GlobalFilterTextField, type MRT_GlobalFilterTextFieldProps, MRT_GrabHandleButton, type MRT_GrabHandleButtonProps, type MRT_GroupColumnDef, type MRT_GroupingState, type MRT_Header, type MRT_HeaderGroup, type MRT_Icons, type MRT_InternalFilterOption, MRT_LinearProgressBar, type MRT_LinearProgressBarProps, type MRT_Localization, type MRT_PaginationState, type MRT_Row, MRT_RowActionMenu, type MRT_RowActionMenuProps, type MRT_RowData, type MRT_RowModel, MRT_RowPinButton, type MRT_RowPinButtonProps, type MRT_RowSelectionState, type MRT_RowVirtualizer, MRT_SelectCheckbox, type MRT_SelectCheckboxProps, MRT_ShowHideColumnsButton, type MRT_ShowHideColumnsButtonProps, MRT_ShowHideColumnsMenu, MRT_ShowHideColumnsMenuItems, type MRT_ShowHideColumnsMenuItemsProps, type MRT_ShowHideColumnsMenuProps, type MRT_SortingFn, MRT_SortingFns, type MRT_SortingOption, type MRT_SortingState, type MRT_StatefulTableOptions, MRT_Table, MRT_TableBody, MRT_TableBodyCell, type MRT_TableBodyCellProps, MRT_TableBodyCellValue, type MRT_TableBodyCellValueProps, type MRT_TableBodyProps, MRT_TableBodyRow, MRT_TableBodyRowGrabHandle, type MRT_TableBodyRowGrabHandleProps, MRT_TableBodyRowPinButton, type MRT_TableBodyRowPinButtonProps, type MRT_TableBodyRowProps, MRT_TableContainer, type MRT_TableContainerProps, MRT_TableDetailPanel, type MRT_TableDetailPanelProps, MRT_TableFooter, MRT_TableFooterCell, type MRT_TableFooterCellProps, type MRT_TableFooterProps, MRT_TableFooterRow, type MRT_TableFooterRowProps, MRT_TableHead, MRT_TableHeadCell, MRT_TableHeadCellColumnActionsButton, type MRT_TableHeadCellColumnActionsButtonProps, MRT_TableHeadCellFilterContainer, type MRT_TableHeadCellFilterContainerProps, MRT_TableHeadCellFilterLabel, type MRT_TableHeadCellFilterLabelProps, MRT_TableHeadCellGrabHandle, type MRT_TableHeadCellGrabHandleProps, type MRT_TableHeadCellProps, MRT_TableHeadCellResizeHandle, type MRT_TableHeadCellResizeHandleProps, MRT_TableHeadCellSortLabel, type MRT_TableHeadCellSortLabelProps, type MRT_TableHeadProps, MRT_TableHeadRow, type MRT_TableHeadRowProps, type MRT_TableInstance, MRT_TableLoadingOverlay, type MRT_TableLoadingOverlayProps, type MRT_TableOptions, MRT_TablePagination, type MRT_TablePaginationProps, MRT_TablePaper, type MRT_TablePaperProps, type MRT_TableProps, type MRT_TableState, type MRT_Theme, MRT_ToggleDensePaddingButton, type MRT_ToggleDensePaddingButtonProps, MRT_ToggleFiltersButton, type MRT_ToggleFiltersButtonProps, MRT_ToggleFullScreenButton, type MRT_ToggleFullScreenButtonProps, MRT_ToggleGlobalFilterButton, type MRT_ToggleGlobalFilterButtonProps, MRT_ToggleRowActionMenuButton, type MRT_ToggleRowActionMenuButtonProps, MRT_ToolbarAlertBanner, type MRT_ToolbarAlertBannerProps, MRT_ToolbarDropZone, type MRT_ToolbarDropZoneProps, MRT_ToolbarInternalButtons, type MRT_ToolbarInternalButtonsProps, MRT_TopToolbar, type MRT_TopToolbarProps, type MRT_Updater, type MRT_VirtualItem, type MRT_Virtualizer, type MRT_VirtualizerOptions, type MRT_VisibilityState, MaterialReactTable, type MaterialReactTableProps, Memo_MRT_TableBody, Memo_MRT_TableBodyCell, Memo_MRT_TableBodyRow, type Prettify, type Xor, createMRTColumnHelper, createRow, defaultDisplayColumnProps, flexRender, getAllLeafColumnDefs, getCanRankRows, getColumnId, getDefaultColumnFilterFn, getDefaultColumnOrderIds, getIsFirstColumn, getIsFirstRightPinnedColumn, getIsLastColumn, getIsLastLeftPinnedColumn, getIsRankingRows, getIsRowSelected, getLeadingDisplayColumnIds, getMRT_RowSelectionHandler, getMRT_Rows, getTotalRight, getTrailingDisplayColumnIds, isCellEditable, mrtFilterOptions, openEditingCell, prepareColumns, rankGlobalFuzzy, reorderColumn, showRowActionsColumn, showRowDragColumn, showRowExpandColumn, showRowNumbersColumn, showRowPinningColumn, showRowSelectionColumn, showRowSpacerColumn, useMRT_ColumnVirtualizer, useMRT_Effects, useMRT_RowVirtualizer, useMRT_Rows, useMRT_TableInstance, useMRT_TableOptions, useMaterialReactTable };
|
1841
|
+
export { type DropdownOption, type LiteralUnion, MRT_ActionMenuItem, type MRT_ActionMenuItemProps, type MRT_AggregationFn, MRT_AggregationFns, type MRT_AggregationOption, MRT_BottomToolbar, type MRT_BottomToolbarProps, type MRT_Cell, type MRT_Column, MRT_ColumnActionMenu, type MRT_ColumnActionMenuProps, type MRT_ColumnDef, type MRT_ColumnFilterFnsState, type MRT_ColumnFiltersState, type MRT_ColumnHelper, type MRT_ColumnOrderState, MRT_ColumnPinningButtons, type MRT_ColumnPinningButtonsProps, type MRT_ColumnPinningState, type MRT_ColumnSizingInfoState, type MRT_ColumnSizingState, type MRT_ColumnVirtualizer, MRT_CopyButton, type MRT_CopyButtonProps, MRT_DefaultColumn, MRT_DefaultDisplayColumn, type MRT_DefinedColumnDef, type MRT_DefinedTableOptions, type MRT_DensityState, type MRT_DisplayColumnDef, type MRT_DisplayColumnIds, MRT_EditActionButtons, type MRT_EditActionButtonsProps, MRT_EditCellTextField, type MRT_EditCellTextFieldProps, MRT_EditRowModal, type MRT_EditRowModalProps, MRT_ExpandAllButton, type MRT_ExpandAllButtonProps, MRT_ExpandButton, type MRT_ExpandButtonProps, type MRT_ExpandedState, MRT_FilterCheckbox, type MRT_FilterCheckboxProps, type MRT_FilterFn, MRT_FilterFns, type MRT_FilterOption, MRT_FilterOptionMenu, type MRT_FilterOptionMenuProps, MRT_FilterRangeFields, type MRT_FilterRangeFieldsProps, MRT_FilterRangeSlider, type MRT_FilterRangeSliderProps, MRT_FilterTextField, type MRT_FilterTextFieldProps, MRT_GlobalFilterTextField, type MRT_GlobalFilterTextFieldProps, MRT_GrabHandleButton, type MRT_GrabHandleButtonProps, type MRT_GroupColumnDef, type MRT_GroupingState, type MRT_Header, type MRT_HeaderGroup, type MRT_Icons, type MRT_InternalFilterOption, MRT_LinearProgressBar, type MRT_LinearProgressBarProps, type MRT_Localization, type MRT_PaginationState, type MRT_Row, MRT_RowActionMenu, type MRT_RowActionMenuProps, type MRT_RowData, type MRT_RowModel, MRT_RowPinButton, type MRT_RowPinButtonProps, type MRT_RowSelectionState, type MRT_RowVirtualizer, MRT_SelectCheckbox, type MRT_SelectCheckboxProps, MRT_ShowHideColumnsButton, type MRT_ShowHideColumnsButtonProps, MRT_ShowHideColumnsMenu, MRT_ShowHideColumnsMenuItems, type MRT_ShowHideColumnsMenuItemsProps, type MRT_ShowHideColumnsMenuProps, type MRT_SortingFn, MRT_SortingFns, type MRT_SortingOption, type MRT_SortingState, type MRT_StatefulTableOptions, MRT_Table, MRT_TableBody, MRT_TableBodyCell, type MRT_TableBodyCellProps, MRT_TableBodyCellValue, type MRT_TableBodyCellValueProps, type MRT_TableBodyProps, MRT_TableBodyRow, MRT_TableBodyRowGrabHandle, type MRT_TableBodyRowGrabHandleProps, MRT_TableBodyRowPinButton, type MRT_TableBodyRowPinButtonProps, type MRT_TableBodyRowProps, MRT_TableContainer, type MRT_TableContainerProps, MRT_TableDetailPanel, type MRT_TableDetailPanelProps, MRT_TableFooter, MRT_TableFooterCell, type MRT_TableFooterCellProps, type MRT_TableFooterProps, MRT_TableFooterRow, type MRT_TableFooterRowProps, MRT_TableHead, MRT_TableHeadCell, MRT_TableHeadCellColumnActionsButton, type MRT_TableHeadCellColumnActionsButtonProps, MRT_TableHeadCellFilterContainer, type MRT_TableHeadCellFilterContainerProps, MRT_TableHeadCellFilterLabel, type MRT_TableHeadCellFilterLabelProps, MRT_TableHeadCellGrabHandle, type MRT_TableHeadCellGrabHandleProps, type MRT_TableHeadCellProps, MRT_TableHeadCellResizeHandle, type MRT_TableHeadCellResizeHandleProps, MRT_TableHeadCellSortLabel, type MRT_TableHeadCellSortLabelProps, type MRT_TableHeadProps, MRT_TableHeadRow, type MRT_TableHeadRowProps, type MRT_TableInstance, MRT_TableLoadingOverlay, type MRT_TableLoadingOverlayProps, type MRT_TableOptions, MRT_TablePagination, type MRT_TablePaginationProps, MRT_TablePaper, type MRT_TablePaperProps, type MRT_TableProps, type MRT_TableState, type MRT_Theme, MRT_ToggleDensePaddingButton, type MRT_ToggleDensePaddingButtonProps, MRT_ToggleFiltersButton, type MRT_ToggleFiltersButtonProps, MRT_ToggleFullScreenButton, type MRT_ToggleFullScreenButtonProps, MRT_ToggleGlobalFilterButton, type MRT_ToggleGlobalFilterButtonProps, MRT_ToggleRowActionMenuButton, type MRT_ToggleRowActionMenuButtonProps, MRT_ToolbarAlertBanner, type MRT_ToolbarAlertBannerProps, MRT_ToolbarDropZone, type MRT_ToolbarDropZoneProps, MRT_ToolbarInternalButtons, type MRT_ToolbarInternalButtonsProps, MRT_TopToolbar, type MRT_TopToolbarProps, type MRT_Updater, type MRT_VirtualItem, type MRT_Virtualizer, type MRT_VirtualizerOptions, type MRT_VisibilityState, MaterialReactTable, type MaterialReactTableProps, Memo_MRT_TableBody, Memo_MRT_TableBodyCell, Memo_MRT_TableBodyRow, type Prettify, type Xor, createMRTColumnHelper, createRow, defaultDisplayColumnProps, flexRender, getAllLeafColumnDefs, getCanRankRows, getColumnId, getDefaultColumnFilterFn, getDefaultColumnOrderIds, getIsFirstColumn, getIsFirstRightPinnedColumn, getIsLastColumn, getIsLastLeftPinnedColumn, getIsRankingRows, getIsRowSelected, getLeadingDisplayColumnIds, getMRT_RowSelectionHandler, getMRT_Rows, getMRT_SelectAllHandler, getTotalRight, getTrailingDisplayColumnIds, isCellEditable, mrtFilterOptions, openEditingCell, prepareColumns, rankGlobalFuzzy, reorderColumn, showRowActionsColumn, showRowDragColumn, showRowExpandColumn, showRowNumbersColumn, showRowPinningColumn, showRowSelectionColumn, showRowSpacerColumn, useMRT_ColumnVirtualizer, useMRT_Effects, useMRT_RowVirtualizer, useMRT_Rows, useMRT_TableInstance, useMRT_TableOptions, useMaterialReactTable };
|
package/dist/index.esm.js
CHANGED
@@ -332,8 +332,8 @@ const MRT_SortingFns = Object.assign(Object.assign({}, sortingFns), { fuzzy: fuz
|
|
332
332
|
const rankGlobalFuzzy = (rowA, rowB) => Math.max(...Object.values(rowB.columnFiltersMeta).map((v) => v.rank)) -
|
333
333
|
Math.max(...Object.values(rowA.columnFiltersMeta).map((v) => v.rank));
|
334
334
|
|
335
|
-
const getMRT_Rows = (table,
|
336
|
-
const {
|
335
|
+
const getMRT_Rows = (table, all) => {
|
336
|
+
const { getCenterRows, getPrePaginationRowModel, getRowModel, getState, getTopRows, options: { createDisplayMode, enablePagination, enableRowPinning, manualPagination, positionCreatingRow, rowPinningDisplayMode, }, } = table;
|
337
337
|
const { creatingRow, pagination } = getState();
|
338
338
|
const isRankingRows = getIsRankingRows(table);
|
339
339
|
let rows = [];
|
@@ -346,19 +346,28 @@ const getMRT_Rows = (table, pinnedRowIds = [], all) => {
|
|
346
346
|
: getCenterRows();
|
347
347
|
}
|
348
348
|
else {
|
349
|
+
// fuzzy ranking adjustments
|
349
350
|
rows = getPrePaginationRowModel().rows.sort((a, b) => rankGlobalFuzzy(a, b));
|
350
351
|
if (enablePagination && !manualPagination && !all) {
|
351
352
|
const start = pagination.pageIndex * pagination.pageSize;
|
352
353
|
rows = rows.slice(start, start + pagination.pageSize);
|
353
354
|
}
|
355
|
+
if (enableRowPinning && !(rowPinningDisplayMode === null || rowPinningDisplayMode === void 0 ? void 0 : rowPinningDisplayMode.includes('sticky'))) {
|
356
|
+
// "re-center-ize" the rows (no top or bottom pinned rows unless sticky)
|
357
|
+
rows = rows.filter((row) => !row.getIsPinned());
|
358
|
+
}
|
354
359
|
}
|
360
|
+
// row pinning adjustments
|
355
361
|
if (enableRowPinning && (rowPinningDisplayMode === null || rowPinningDisplayMode === void 0 ? void 0 : rowPinningDisplayMode.includes('sticky'))) {
|
362
|
+
const centerPinnedRowIds = rows
|
363
|
+
.filter((row) => row.getIsPinned())
|
364
|
+
.map((r) => r.id);
|
356
365
|
rows = [
|
357
|
-
...getTopRows().filter((row) => !
|
366
|
+
...getTopRows().filter((row) => !centerPinnedRowIds.includes(row.id)),
|
358
367
|
...rows,
|
359
|
-
...getBottomRows().filter((row) => !pinnedRowIds.includes(row.id)),
|
360
368
|
];
|
361
369
|
}
|
370
|
+
// blank inserted creating row adjustments
|
362
371
|
if (positionCreatingRow !== undefined &&
|
363
372
|
creatingRow &&
|
364
373
|
createDisplayMode === 'row') {
|
@@ -400,42 +409,67 @@ const getIsRowSelected = ({ row, table, }) => {
|
|
400
409
|
row.getCanSelectSubRows() &&
|
401
410
|
row.getIsAllSubRowsSelected()));
|
402
411
|
};
|
403
|
-
const getMRT_RowSelectionHandler = (
|
412
|
+
const getMRT_RowSelectionHandler = ({ row, staticRowIndex = 0, table, }) => (event, value) => {
|
404
413
|
var _a;
|
405
|
-
const { getState, options: { enableBatchRowSelection, enableRowPinning, rowPinningDisplayMode, }, refs: { lastSelectedRowId: lastSelectedRowId }, } = table;
|
414
|
+
const { getState, options: { enableBatchRowSelection, enableMultiRowSelection, enableRowPinning, manualPagination, rowPinningDisplayMode, }, refs: { lastSelectedRowId: lastSelectedRowId }, } = table;
|
406
415
|
const { pagination: { pageIndex, pageSize }, } = getState();
|
407
|
-
const
|
408
|
-
const
|
409
|
-
// toggle
|
410
|
-
row.
|
416
|
+
const paginationOffset = manualPagination ? 0 : pageSize * pageIndex;
|
417
|
+
const wasCurrentRowChecked = getIsRowSelected({ row, table });
|
418
|
+
// toggle selection of this row
|
419
|
+
row.toggleSelected(value !== null && value !== void 0 ? value : !wasCurrentRowChecked);
|
420
|
+
const changedRowIds = new Set([row.id]);
|
411
421
|
// if shift key is pressed, select all rows between last selected and this one
|
412
422
|
if (enableBatchRowSelection &&
|
423
|
+
enableMultiRowSelection &&
|
413
424
|
event.nativeEvent.shiftKey &&
|
414
425
|
lastSelectedRowId.current !== null) {
|
415
|
-
const rows = getMRT_Rows(table,
|
426
|
+
const rows = getMRT_Rows(table, true);
|
416
427
|
const lastIndex = rows.findIndex((r) => r.id === lastSelectedRowId.current);
|
417
428
|
if (lastIndex !== -1) {
|
418
|
-
const
|
429
|
+
const isLastIndexChecked = getIsRowSelected({
|
430
|
+
row: rows === null || rows === void 0 ? void 0 : rows[lastIndex],
|
431
|
+
table,
|
432
|
+
});
|
433
|
+
const currentIndex = staticRowIndex + paginationOffset;
|
419
434
|
const [start, end] = lastIndex < currentIndex
|
420
435
|
? [lastIndex, currentIndex]
|
421
436
|
: [currentIndex, lastIndex];
|
422
|
-
|
423
|
-
|
437
|
+
// toggle selection of all rows between last selected and this one
|
438
|
+
// but only if the last selected row is not the same as the current one
|
439
|
+
if (wasCurrentRowChecked !== isLastIndexChecked) {
|
440
|
+
for (let i = start; i <= end; i++) {
|
441
|
+
rows[i].toggleSelected(!wasCurrentRowChecked);
|
442
|
+
changedRowIds.add(rows[i].id);
|
443
|
+
}
|
424
444
|
}
|
425
445
|
}
|
426
446
|
}
|
447
|
+
// record the last selected row id
|
427
448
|
lastSelectedRowId.current = row.id;
|
428
449
|
// if all sub rows were selected, unselect them
|
429
450
|
if (row.getCanSelectSubRows() && row.getIsAllSubRowsSelected()) {
|
430
451
|
(_a = row.subRows) === null || _a === void 0 ? void 0 : _a.forEach((r) => r.toggleSelected(false));
|
431
452
|
}
|
432
|
-
if (
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
: '
|
437
|
-
|
453
|
+
if (enableRowPinning && (rowPinningDisplayMode === null || rowPinningDisplayMode === void 0 ? void 0 : rowPinningDisplayMode.includes('select'))) {
|
454
|
+
changedRowIds.forEach((rowId) => {
|
455
|
+
const rowToTogglePin = table.getRow(rowId);
|
456
|
+
rowToTogglePin.pin(!wasCurrentRowChecked //was not previously pinned or selected
|
457
|
+
? (rowPinningDisplayMode === null || rowPinningDisplayMode === void 0 ? void 0 : rowPinningDisplayMode.includes('bottom'))
|
458
|
+
? 'bottom'
|
459
|
+
: 'top'
|
460
|
+
: false);
|
461
|
+
});
|
462
|
+
}
|
463
|
+
};
|
464
|
+
const getMRT_SelectAllHandler = ({ table }) => (event, value) => {
|
465
|
+
const { options: { enableRowPinning, rowPinningDisplayMode, selectAllMode }, refs: { lastSelectedRowId }, } = table;
|
466
|
+
selectAllMode === 'all'
|
467
|
+
? table.toggleAllRowsSelected(value !== null && value !== void 0 ? value : event.target.checked)
|
468
|
+
: table.toggleAllPageRowsSelected(value !== null && value !== void 0 ? value : event.target.checked);
|
469
|
+
if (enableRowPinning && (rowPinningDisplayMode === null || rowPinningDisplayMode === void 0 ? void 0 : rowPinningDisplayMode.includes('select'))) {
|
470
|
+
table.setRowPinning({ bottom: [], top: [] });
|
438
471
|
}
|
472
|
+
lastSelectedRowId.current = null;
|
439
473
|
};
|
440
474
|
|
441
475
|
const MRT_AggregationFns = Object.assign({}, aggregationFns);
|
@@ -981,10 +1015,9 @@ const getMRT_RowPinningColumnDef = (tableOptions) => {
|
|
981
1015
|
const MRT_SelectCheckbox = (_a) => {
|
982
1016
|
var _b;
|
983
1017
|
var { row, staticRowIndex, table } = _a, rest = __rest(_a, ["row", "staticRowIndex", "table"]);
|
984
|
-
const { getState, options: { enableMultiRowSelection,
|
1018
|
+
const { getState, options: { enableMultiRowSelection, localization, muiSelectAllCheckboxProps, muiSelectCheckboxProps, selectAllMode, }, } = table;
|
985
1019
|
const { density, isLoading } = getState();
|
986
1020
|
const selectAll = !row;
|
987
|
-
const isStickySelection = enableRowPinning && (rowPinningDisplayMode === null || rowPinningDisplayMode === void 0 ? void 0 : rowPinningDisplayMode.includes('select'));
|
988
1021
|
const allRowsSelected = selectAll
|
989
1022
|
? selectAllMode === 'page'
|
990
1023
|
? table.getIsAllPageRowsSelected()
|
@@ -999,16 +1032,14 @@ const MRT_SelectCheckbox = (_a) => {
|
|
999
1032
|
row,
|
1000
1033
|
table,
|
1001
1034
|
}))), rest);
|
1002
|
-
const onSelectionChange =
|
1003
|
-
|
1004
|
-
|
1005
|
-
|
1006
|
-
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1010
|
-
lastSelectedRowId.current = null;
|
1011
|
-
};
|
1035
|
+
const onSelectionChange = row
|
1036
|
+
? getMRT_RowSelectionHandler({
|
1037
|
+
row,
|
1038
|
+
staticRowIndex,
|
1039
|
+
table,
|
1040
|
+
})
|
1041
|
+
: undefined;
|
1042
|
+
const onSelectAllChange = getMRT_SelectAllHandler({ table });
|
1012
1043
|
const commonProps = Object.assign(Object.assign({ 'aria-label': selectAll
|
1013
1044
|
? localization.toggleSelectAll
|
1014
1045
|
: localization.toggleSelectRow, checked: isChecked, disabled: isLoading || (row && !row.getCanSelect()) || (row === null || row === void 0 ? void 0 : row.id) === 'mrt-row-create', inputProps: {
|
@@ -1017,9 +1048,7 @@ const MRT_SelectCheckbox = (_a) => {
|
|
1017
1048
|
: localization.toggleSelectRow,
|
1018
1049
|
}, onChange: (event) => {
|
1019
1050
|
event.stopPropagation();
|
1020
|
-
row
|
1021
|
-
? onSelectionChange({ event, row, staticRowIndex, table })
|
1022
|
-
: onSelectAllChange(event);
|
1051
|
+
row ? onSelectionChange(event) : onSelectAllChange(event);
|
1023
1052
|
}, size: (density === 'compact' ? 'small' : 'medium') }, checkboxProps), { onClick: (e) => {
|
1024
1053
|
var _a;
|
1025
1054
|
e.stopPropagation();
|
@@ -1027,8 +1056,8 @@ const MRT_SelectCheckbox = (_a) => {
|
|
1027
1056
|
}, sx: (theme) => (Object.assign({ height: density === 'compact' ? '1.75rem' : '2.5rem', m: density !== 'compact' ? '-0.4rem' : undefined, width: density === 'compact' ? '1.75rem' : '2.5rem', zIndex: 0 }, parseFromValuesOrFunc(checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.sx, theme))), title: undefined });
|
1028
1057
|
return (jsx(Tooltip, Object.assign({}, getCommonTooltipProps(), { title: (_b = checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.title) !== null && _b !== void 0 ? _b : (selectAll
|
1029
1058
|
? localization.toggleSelectAll
|
1030
|
-
: localization.toggleSelectRow), children: enableMultiRowSelection === false ? (jsx(Radio, Object.assign({}, commonProps))) : (jsx(Checkbox, Object.assign({ indeterminate: selectAll
|
1031
|
-
? table.getIsSomeRowsSelected()
|
1059
|
+
: localization.toggleSelectRow), children: enableMultiRowSelection === false ? (jsx(Radio, Object.assign({}, commonProps))) : (jsx(Checkbox, Object.assign({ indeterminate: !isChecked && selectAll
|
1060
|
+
? table.getIsSomeRowsSelected()
|
1032
1061
|
: (row === null || row === void 0 ? void 0 : row.getIsSomeSelected()) && row.getCanSelectSubRows() }, commonProps))) })));
|
1033
1062
|
};
|
1034
1063
|
|
@@ -1679,10 +1708,10 @@ const useMRT_RowVirtualizer = (table, rows) => {
|
|
1679
1708
|
return rowVirtualizer;
|
1680
1709
|
};
|
1681
1710
|
|
1682
|
-
const useMRT_Rows = (table
|
1711
|
+
const useMRT_Rows = (table) => {
|
1683
1712
|
const { getRowModel, getState, options: { data, enableGlobalFilterRankedResults, positionCreatingRow }, } = table;
|
1684
1713
|
const { creatingRow, expanded, globalFilter, pagination, rowPinning, sorting, } = getState();
|
1685
|
-
const rows = useMemo(() => getMRT_Rows(table
|
1714
|
+
const rows = useMemo(() => getMRT_Rows(table), [
|
1686
1715
|
creatingRow,
|
1687
1716
|
data,
|
1688
1717
|
enableGlobalFilterRankedResults,
|
@@ -2210,7 +2239,7 @@ const MRT_TableBody = (_a) => {
|
|
2210
2239
|
.rows.filter((row) => row.getIsPinned())
|
2211
2240
|
.map((r) => r.id);
|
2212
2241
|
}, [rowPinning, getRowModel().rows]);
|
2213
|
-
const rows = useMRT_Rows(table
|
2242
|
+
const rows = useMRT_Rows(table);
|
2214
2243
|
const rowVirtualizer = useMRT_RowVirtualizer(table, rows);
|
2215
2244
|
const { virtualRows } = rowVirtualizer !== null && rowVirtualizer !== void 0 ? rowVirtualizer : {};
|
2216
2245
|
const commonRowProps = {
|
@@ -3415,7 +3444,7 @@ const MRT_TableHeadRow = (_a) => {
|
|
3415
3444
|
const MRT_ToolbarAlertBanner = (_a) => {
|
3416
3445
|
var _b, _c, _d;
|
3417
3446
|
var { stackAlertBanner, table } = _a, rest = __rest(_a, ["stackAlertBanner", "table"]);
|
3418
|
-
const { getFilteredSelectedRowModel, getPrePaginationRowModel, getState, options: { enableRowSelection, enableSelectAll, localization, manualPagination, muiToolbarAlertBannerChipProps, muiToolbarAlertBannerProps, positionToolbarAlertBanner, renderToolbarAlertBannerContent, rowCount, }, refs: {
|
3447
|
+
const { getFilteredSelectedRowModel, getPrePaginationRowModel, getState, options: { enableRowSelection, enableSelectAll, localization, manualPagination, muiToolbarAlertBannerChipProps, muiToolbarAlertBannerProps, positionToolbarAlertBanner, renderToolbarAlertBannerContent, rowCount, }, refs: { tablePaperRef }, } = table;
|
3419
3448
|
const { density, grouping, rowSelection, showAlertBanner } = getState();
|
3420
3449
|
const alertProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiToolbarAlertBannerProps, {
|
3421
3450
|
table,
|
@@ -3423,14 +3452,11 @@ const MRT_ToolbarAlertBanner = (_a) => {
|
|
3423
3452
|
const chipProps = parseFromValuesOrFunc(muiToolbarAlertBannerChipProps, {
|
3424
3453
|
table,
|
3425
3454
|
});
|
3426
|
-
const totalRowCount = rowCount !== null && rowCount !== void 0 ? rowCount : getPrePaginationRowModel().
|
3455
|
+
const totalRowCount = rowCount !== null && rowCount !== void 0 ? rowCount : getPrePaginationRowModel().flatRows.length;
|
3427
3456
|
const selectedRowCount = useMemo(() => manualPagination
|
3428
3457
|
? Object.values(rowSelection).filter(Boolean).length
|
3429
3458
|
: getFilteredSelectedRowModel().rows.length, [rowSelection, totalRowCount, manualPagination]);
|
3430
|
-
const selectedAlert = selectedRowCount > 0 ? (jsxs(Stack, { alignItems: "center", direction: "row", gap: "16px", children: [(_c = (_b = localization.selectedCountOfRowCountRowsSelected) === null || _b === void 0 ? void 0 : _b.replace('{selectedCount}', selectedRowCount.toLocaleString())) === null || _c === void 0 ? void 0 : _c.replace('{rowCount}', totalRowCount.toString()), jsx(Button, { onClick: () => {
|
3431
|
-
table.toggleAllRowsSelected(false);
|
3432
|
-
lastSelectedRowId.current = null;
|
3433
|
-
}, size: "small", sx: { p: '2px' }, children: localization.clearSelection })] })) : null;
|
3459
|
+
const selectedAlert = selectedRowCount > 0 ? (jsxs(Stack, { alignItems: "center", direction: "row", gap: "16px", children: [(_c = (_b = localization.selectedCountOfRowCountRowsSelected) === null || _b === void 0 ? void 0 : _b.replace('{selectedCount}', selectedRowCount.toLocaleString())) === null || _c === void 0 ? void 0 : _c.replace('{rowCount}', totalRowCount.toString()), jsx(Button, { onClick: (event) => getMRT_SelectAllHandler({ table })(event, false), size: "small", sx: { p: '2px' }, children: localization.clearSelection })] })) : null;
|
3434
3460
|
const groupedAlert = grouping.length > 0 ? (jsxs("span", { children: [localization.groupedBy, ' ', grouping.map((columnId, index) => (jsxs(Fragment$1, { children: [index > 0 ? localization.thenBy : '', jsx(Chip, Object.assign({ label: table.getColumn(columnId).columnDef.header, onDelete: () => table.getColumn(columnId).toggleGrouping() }, chipProps))] }, `${index}-${columnId}`)))] })) : null;
|
3435
3461
|
return (jsx(Collapse, { in: showAlertBanner || !!selectedAlert || !!groupedAlert, timeout: stackAlertBanner ? 200 : 0, children: jsx(Alert, Object.assign({ color: "info", icon: false }, alertProps, { sx: (theme) => {
|
3436
3462
|
var _a, _b;
|
@@ -4113,5 +4139,5 @@ const MaterialReactTable = (props) => {
|
|
4113
4139
|
return jsx(MRT_TablePaper, { table: table });
|
4114
4140
|
};
|
4115
4141
|
|
4116
|
-
export { MRT_ActionMenuItem, MRT_AggregationFns, MRT_BottomToolbar, MRT_ColumnActionMenu, MRT_ColumnPinningButtons, MRT_CopyButton, MRT_DefaultColumn, MRT_DefaultDisplayColumn, MRT_EditActionButtons, MRT_EditCellTextField, MRT_EditRowModal, MRT_ExpandAllButton, MRT_ExpandButton, MRT_FilterCheckbox, MRT_FilterFns, MRT_FilterOptionMenu, MRT_FilterRangeFields, MRT_FilterRangeSlider, MRT_FilterTextField, MRT_GlobalFilterTextField, MRT_GrabHandleButton, MRT_LinearProgressBar, MRT_RowActionMenu, MRT_RowPinButton, MRT_SelectCheckbox, MRT_ShowHideColumnsButton, MRT_ShowHideColumnsMenu, MRT_ShowHideColumnsMenuItems, MRT_SortingFns, MRT_Table, MRT_TableBody, MRT_TableBodyCell, MRT_TableBodyCellValue, MRT_TableBodyRow, MRT_TableBodyRowGrabHandle, MRT_TableBodyRowPinButton, MRT_TableContainer, MRT_TableDetailPanel, MRT_TableFooter, MRT_TableFooterCell, MRT_TableFooterRow, MRT_TableHead, MRT_TableHeadCell, MRT_TableHeadCellColumnActionsButton, MRT_TableHeadCellFilterContainer, MRT_TableHeadCellFilterLabel, MRT_TableHeadCellGrabHandle, MRT_TableHeadCellResizeHandle, MRT_TableHeadCellSortLabel, MRT_TableHeadRow, MRT_TableLoadingOverlay, MRT_TablePagination, MRT_TablePaper, MRT_ToggleDensePaddingButton, MRT_ToggleFiltersButton, MRT_ToggleFullScreenButton, MRT_ToggleGlobalFilterButton, MRT_ToggleRowActionMenuButton, MRT_ToolbarAlertBanner, MRT_ToolbarDropZone, MRT_ToolbarInternalButtons, MRT_TopToolbar, MaterialReactTable, Memo_MRT_TableBody, Memo_MRT_TableBodyCell, Memo_MRT_TableBodyRow, createMRTColumnHelper, createRow, defaultDisplayColumnProps, flexRender, getAllLeafColumnDefs, getCanRankRows, getColumnId, getDefaultColumnFilterFn, getDefaultColumnOrderIds, getIsFirstColumn, getIsFirstRightPinnedColumn, getIsLastColumn, getIsLastLeftPinnedColumn, getIsRankingRows, getIsRowSelected, getLeadingDisplayColumnIds, getMRT_RowSelectionHandler, getMRT_Rows, getTotalRight, getTrailingDisplayColumnIds, isCellEditable, mrtFilterOptions, openEditingCell, prepareColumns, rankGlobalFuzzy, reorderColumn, showRowActionsColumn, showRowDragColumn, showRowExpandColumn, showRowNumbersColumn, showRowPinningColumn, showRowSelectionColumn, showRowSpacerColumn, useMRT_ColumnVirtualizer, useMRT_Effects, useMRT_RowVirtualizer, useMRT_Rows, useMRT_TableInstance, useMRT_TableOptions, useMaterialReactTable };
|
4142
|
+
export { MRT_ActionMenuItem, MRT_AggregationFns, MRT_BottomToolbar, MRT_ColumnActionMenu, MRT_ColumnPinningButtons, MRT_CopyButton, MRT_DefaultColumn, MRT_DefaultDisplayColumn, MRT_EditActionButtons, MRT_EditCellTextField, MRT_EditRowModal, MRT_ExpandAllButton, MRT_ExpandButton, MRT_FilterCheckbox, MRT_FilterFns, MRT_FilterOptionMenu, MRT_FilterRangeFields, MRT_FilterRangeSlider, MRT_FilterTextField, MRT_GlobalFilterTextField, MRT_GrabHandleButton, MRT_LinearProgressBar, MRT_RowActionMenu, MRT_RowPinButton, MRT_SelectCheckbox, MRT_ShowHideColumnsButton, MRT_ShowHideColumnsMenu, MRT_ShowHideColumnsMenuItems, MRT_SortingFns, MRT_Table, MRT_TableBody, MRT_TableBodyCell, MRT_TableBodyCellValue, MRT_TableBodyRow, MRT_TableBodyRowGrabHandle, MRT_TableBodyRowPinButton, MRT_TableContainer, MRT_TableDetailPanel, MRT_TableFooter, MRT_TableFooterCell, MRT_TableFooterRow, MRT_TableHead, MRT_TableHeadCell, MRT_TableHeadCellColumnActionsButton, MRT_TableHeadCellFilterContainer, MRT_TableHeadCellFilterLabel, MRT_TableHeadCellGrabHandle, MRT_TableHeadCellResizeHandle, MRT_TableHeadCellSortLabel, MRT_TableHeadRow, MRT_TableLoadingOverlay, MRT_TablePagination, MRT_TablePaper, MRT_ToggleDensePaddingButton, MRT_ToggleFiltersButton, MRT_ToggleFullScreenButton, MRT_ToggleGlobalFilterButton, MRT_ToggleRowActionMenuButton, MRT_ToolbarAlertBanner, MRT_ToolbarDropZone, MRT_ToolbarInternalButtons, MRT_TopToolbar, MaterialReactTable, Memo_MRT_TableBody, Memo_MRT_TableBodyCell, Memo_MRT_TableBodyRow, createMRTColumnHelper, createRow, defaultDisplayColumnProps, flexRender, getAllLeafColumnDefs, getCanRankRows, getColumnId, getDefaultColumnFilterFn, getDefaultColumnOrderIds, getIsFirstColumn, getIsFirstRightPinnedColumn, getIsLastColumn, getIsLastLeftPinnedColumn, getIsRankingRows, getIsRowSelected, getLeadingDisplayColumnIds, getMRT_RowSelectionHandler, getMRT_Rows, getMRT_SelectAllHandler, getTotalRight, getTrailingDisplayColumnIds, isCellEditable, mrtFilterOptions, openEditingCell, prepareColumns, rankGlobalFuzzy, reorderColumn, showRowActionsColumn, showRowDragColumn, showRowExpandColumn, showRowNumbersColumn, showRowPinningColumn, showRowSelectionColumn, showRowSpacerColumn, useMRT_ColumnVirtualizer, useMRT_Effects, useMRT_RowVirtualizer, useMRT_Rows, useMRT_TableInstance, useMRT_TableOptions, useMaterialReactTable };
|
4117
4143
|
//# sourceMappingURL=index.esm.js.map
|