material-react-table 2.11.0 → 2.11.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/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
|