@kissesses/mantine-react-table-open 9.0.3
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/LICENSE +21 -0
- package/README.md +196 -0
- package/dist/index.cjs +3769 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1488 -0
- package/dist/index.esm.d.mts +1488 -0
- package/dist/index.esm.mjs +3664 -0
- package/dist/index.esm.mjs.map +1 -0
- package/locales/ar/index.cjs +97 -0
- package/locales/ar/index.d.cts +3 -0
- package/locales/ar/index.esm.d.mts +3 -0
- package/locales/ar/index.esm.mjs +95 -0
- package/locales/ar/package.json +19 -0
- package/locales/az/index.cjs +97 -0
- package/locales/az/index.d.cts +3 -0
- package/locales/az/index.esm.d.mts +3 -0
- package/locales/az/index.esm.mjs +95 -0
- package/locales/az/package.json +19 -0
- package/locales/bg/index.cjs +97 -0
- package/locales/bg/index.d.cts +3 -0
- package/locales/bg/index.esm.d.mts +3 -0
- package/locales/bg/index.esm.mjs +95 -0
- package/locales/bg/package.json +19 -0
- package/locales/cs/index.cjs +97 -0
- package/locales/cs/index.d.cts +3 -0
- package/locales/cs/index.esm.d.mts +3 -0
- package/locales/cs/index.esm.mjs +95 -0
- package/locales/cs/package.json +19 -0
- package/locales/da/index.cjs +97 -0
- package/locales/da/index.d.cts +3 -0
- package/locales/da/index.esm.d.mts +3 -0
- package/locales/da/index.esm.mjs +95 -0
- package/locales/da/package.json +19 -0
- package/locales/de/index.cjs +97 -0
- package/locales/de/index.d.cts +3 -0
- package/locales/de/index.esm.d.mts +3 -0
- package/locales/de/index.esm.mjs +95 -0
- package/locales/de/package.json +19 -0
- package/locales/el/index.cjs +97 -0
- package/locales/el/index.d.cts +3 -0
- package/locales/el/index.esm.d.mts +3 -0
- package/locales/el/index.esm.mjs +95 -0
- package/locales/el/package.json +19 -0
- package/locales/en/index.cjs +97 -0
- package/locales/en/index.d.cts +3 -0
- package/locales/en/index.esm.d.mts +3 -0
- package/locales/en/index.esm.mjs +95 -0
- package/locales/en/package.json +19 -0
- package/locales/es/index.cjs +97 -0
- package/locales/es/index.d.cts +3 -0
- package/locales/es/index.esm.d.mts +3 -0
- package/locales/es/index.esm.mjs +95 -0
- package/locales/es/package.json +19 -0
- package/locales/et/index.cjs +97 -0
- package/locales/et/index.d.cts +3 -0
- package/locales/et/index.esm.d.mts +3 -0
- package/locales/et/index.esm.mjs +95 -0
- package/locales/et/package.json +19 -0
- package/locales/fa/index.cjs +97 -0
- package/locales/fa/index.d.cts +3 -0
- package/locales/fa/index.esm.d.mts +3 -0
- package/locales/fa/index.esm.mjs +95 -0
- package/locales/fa/package.json +19 -0
- package/locales/fi/index.cjs +97 -0
- package/locales/fi/index.d.cts +3 -0
- package/locales/fi/index.esm.d.mts +3 -0
- package/locales/fi/index.esm.mjs +95 -0
- package/locales/fi/package.json +19 -0
- package/locales/fr/index.cjs +97 -0
- package/locales/fr/index.d.cts +3 -0
- package/locales/fr/index.esm.d.mts +3 -0
- package/locales/fr/index.esm.mjs +95 -0
- package/locales/fr/package.json +19 -0
- package/locales/he/index.cjs +97 -0
- package/locales/he/index.d.cts +3 -0
- package/locales/he/index.esm.d.mts +3 -0
- package/locales/he/index.esm.mjs +95 -0
- package/locales/he/package.json +19 -0
- package/locales/hr/index.cjs +97 -0
- package/locales/hr/index.d.cts +3 -0
- package/locales/hr/index.esm.d.mts +3 -0
- package/locales/hr/index.esm.mjs +95 -0
- package/locales/hr/package.json +19 -0
- package/locales/hu/index.cjs +97 -0
- package/locales/hu/index.d.cts +3 -0
- package/locales/hu/index.esm.d.mts +3 -0
- package/locales/hu/index.esm.mjs +95 -0
- package/locales/hu/package.json +19 -0
- package/locales/hy/index.cjs +97 -0
- package/locales/hy/index.d.cts +3 -0
- package/locales/hy/index.esm.d.mts +3 -0
- package/locales/hy/index.esm.mjs +95 -0
- package/locales/hy/package.json +19 -0
- package/locales/id/index.cjs +97 -0
- package/locales/id/index.d.cts +3 -0
- package/locales/id/index.esm.d.mts +3 -0
- package/locales/id/index.esm.mjs +95 -0
- package/locales/id/package.json +19 -0
- package/locales/it/index.cjs +97 -0
- package/locales/it/index.d.cts +3 -0
- package/locales/it/index.esm.d.mts +3 -0
- package/locales/it/index.esm.mjs +95 -0
- package/locales/it/package.json +19 -0
- package/locales/ja/index.cjs +97 -0
- package/locales/ja/index.d.cts +3 -0
- package/locales/ja/index.esm.d.mts +3 -0
- package/locales/ja/index.esm.mjs +95 -0
- package/locales/ja/package.json +19 -0
- package/locales/ko/index.cjs +97 -0
- package/locales/ko/index.d.cts +3 -0
- package/locales/ko/index.esm.d.mts +3 -0
- package/locales/ko/index.esm.mjs +95 -0
- package/locales/ko/package.json +19 -0
- package/locales/nl/index.cjs +97 -0
- package/locales/nl/index.d.cts +3 -0
- package/locales/nl/index.esm.d.mts +3 -0
- package/locales/nl/index.esm.mjs +95 -0
- package/locales/nl/package.json +19 -0
- package/locales/no/index.cjs +97 -0
- package/locales/no/index.d.cts +3 -0
- package/locales/no/index.esm.d.mts +3 -0
- package/locales/no/index.esm.mjs +95 -0
- package/locales/no/package.json +19 -0
- package/locales/np/index.cjs +97 -0
- package/locales/np/index.d.cts +3 -0
- package/locales/np/index.esm.d.mts +3 -0
- package/locales/np/index.esm.mjs +95 -0
- package/locales/np/package.json +19 -0
- package/locales/pl/index.cjs +97 -0
- package/locales/pl/index.d.cts +3 -0
- package/locales/pl/index.esm.d.mts +3 -0
- package/locales/pl/index.esm.mjs +95 -0
- package/locales/pl/package.json +19 -0
- package/locales/pt/index.cjs +97 -0
- package/locales/pt/index.d.cts +3 -0
- package/locales/pt/index.esm.d.mts +3 -0
- package/locales/pt/index.esm.mjs +95 -0
- package/locales/pt/package.json +19 -0
- package/locales/pt-BR/index.cjs +97 -0
- package/locales/pt-BR/index.d.cts +3 -0
- package/locales/pt-BR/index.esm.d.mts +3 -0
- package/locales/pt-BR/index.esm.mjs +95 -0
- package/locales/pt-BR/package.json +19 -0
- package/locales/ro/index.cjs +97 -0
- package/locales/ro/index.d.cts +3 -0
- package/locales/ro/index.esm.d.mts +3 -0
- package/locales/ro/index.esm.mjs +95 -0
- package/locales/ro/package.json +19 -0
- package/locales/ru/index.cjs +97 -0
- package/locales/ru/index.d.cts +3 -0
- package/locales/ru/index.esm.d.mts +3 -0
- package/locales/ru/index.esm.mjs +95 -0
- package/locales/ru/package.json +19 -0
- package/locales/sk/index.cjs +97 -0
- package/locales/sk/index.d.cts +3 -0
- package/locales/sk/index.esm.d.mts +3 -0
- package/locales/sk/index.esm.mjs +95 -0
- package/locales/sk/package.json +19 -0
- package/locales/sr-Cyrl-RS/index.cjs +97 -0
- package/locales/sr-Cyrl-RS/index.d.cts +3 -0
- package/locales/sr-Cyrl-RS/index.esm.d.mts +3 -0
- package/locales/sr-Cyrl-RS/index.esm.mjs +95 -0
- package/locales/sr-Cyrl-RS/package.json +19 -0
- package/locales/sr-Latn-RS/index.cjs +97 -0
- package/locales/sr-Latn-RS/index.d.cts +3 -0
- package/locales/sr-Latn-RS/index.esm.d.mts +3 -0
- package/locales/sr-Latn-RS/index.esm.mjs +95 -0
- package/locales/sr-Latn-RS/package.json +19 -0
- package/locales/sv/index.cjs +97 -0
- package/locales/sv/index.d.cts +3 -0
- package/locales/sv/index.esm.d.mts +3 -0
- package/locales/sv/index.esm.mjs +95 -0
- package/locales/sv/package.json +19 -0
- package/locales/tr/index.cjs +97 -0
- package/locales/tr/index.d.cts +3 -0
- package/locales/tr/index.esm.d.mts +3 -0
- package/locales/tr/index.esm.mjs +95 -0
- package/locales/tr/package.json +19 -0
- package/locales/uk/index.cjs +97 -0
- package/locales/uk/index.d.cts +3 -0
- package/locales/uk/index.esm.d.mts +3 -0
- package/locales/uk/index.esm.mjs +95 -0
- package/locales/uk/package.json +19 -0
- package/locales/vi/index.cjs +97 -0
- package/locales/vi/index.d.cts +3 -0
- package/locales/vi/index.esm.d.mts +3 -0
- package/locales/vi/index.esm.mjs +95 -0
- package/locales/vi/package.json +19 -0
- package/locales/zh-Hans/index.cjs +97 -0
- package/locales/zh-Hans/index.d.cts +3 -0
- package/locales/zh-Hans/index.esm.d.mts +3 -0
- package/locales/zh-Hans/index.esm.mjs +95 -0
- package/locales/zh-Hans/package.json +19 -0
- package/locales/zh-Hant/index.cjs +97 -0
- package/locales/zh-Hant/index.d.cts +3 -0
- package/locales/zh-Hant/index.esm.d.mts +3 -0
- package/locales/zh-Hant/index.esm.mjs +95 -0
- package/locales/zh-Hant/package.json +19 -0
- package/package.json +154 -0
- package/src/components/MantineReactTable.tsx +37 -0
- package/src/components/body/MRT_TableBody.module.css +42 -0
- package/src/components/body/MRT_TableBody.tsx +215 -0
- package/src/components/body/MRT_TableBodyCell.module.css +107 -0
- package/src/components/body/MRT_TableBodyCell.tsx +351 -0
- package/src/components/body/MRT_TableBodyCellValue.tsx +113 -0
- package/src/components/body/MRT_TableBodyEmptyRow.tsx +110 -0
- package/src/components/body/MRT_TableBodyRow.module.css +252 -0
- package/src/components/body/MRT_TableBodyRow.tsx +263 -0
- package/src/components/body/MRT_TableBodyRowGrabHandle.tsx +58 -0
- package/src/components/body/MRT_TableBodyRowPinButton.tsx +58 -0
- package/src/components/body/MRT_TableDetailPanel.module.css +35 -0
- package/src/components/body/MRT_TableDetailPanel.tsx +131 -0
- package/src/components/buttons/MRT_ColumnPinningButtons.module.css +11 -0
- package/src/components/buttons/MRT_ColumnPinningButtons.tsx +68 -0
- package/src/components/buttons/MRT_CopyButton.module.css +27 -0
- package/src/components/buttons/MRT_CopyButton.tsx +83 -0
- package/src/components/buttons/MRT_EditActionButtons.module.css +4 -0
- package/src/components/buttons/MRT_EditActionButtons.tsx +128 -0
- package/src/components/buttons/MRT_ExpandAllButton.module.css +26 -0
- package/src/components/buttons/MRT_ExpandAllButton.tsx +83 -0
- package/src/components/buttons/MRT_ExpandButton.module.css +37 -0
- package/src/components/buttons/MRT_ExpandButton.tsx +120 -0
- package/src/components/buttons/MRT_GrabHandleButton.module.css +6 -0
- package/src/components/buttons/MRT_GrabHandleButton.tsx +64 -0
- package/src/components/buttons/MRT_RowPinButton.tsx +83 -0
- package/src/components/buttons/MRT_ShowHideColumnsButton.tsx +45 -0
- package/src/components/buttons/MRT_ToggleDensePaddingButton.tsx +65 -0
- package/src/components/buttons/MRT_ToggleFiltersButton.tsx +44 -0
- package/src/components/buttons/MRT_ToggleFullScreenButton.tsx +58 -0
- package/src/components/buttons/MRT_ToggleGlobalFilterButton.tsx +51 -0
- package/src/components/buttons/MRT_ToggleRowActionMenuButton.tsx +86 -0
- package/src/components/footer/MRT_TableFooter.module.css +17 -0
- package/src/components/footer/MRT_TableFooter.tsx +72 -0
- package/src/components/footer/MRT_TableFooterCell.module.css +50 -0
- package/src/components/footer/MRT_TableFooterCell.tsx +122 -0
- package/src/components/footer/MRT_TableFooterRow.module.css +10 -0
- package/src/components/footer/MRT_TableFooterRow.tsx +94 -0
- package/src/components/head/MRT_TableHead.module.css +32 -0
- package/src/components/head/MRT_TableHead.tsx +108 -0
- package/src/components/head/MRT_TableHeadCell.module.css +163 -0
- package/src/components/head/MRT_TableHeadCell.tsx +322 -0
- package/src/components/head/MRT_TableHeadCellFilterContainer.module.css +5 -0
- package/src/components/head/MRT_TableHeadCellFilterContainer.tsx +147 -0
- package/src/components/head/MRT_TableHeadCellFilterLabel.module.css +14 -0
- package/src/components/head/MRT_TableHeadCellFilterLabel.tsx +171 -0
- package/src/components/head/MRT_TableHeadCellGrabHandle.tsx +81 -0
- package/src/components/head/MRT_TableHeadCellResizeHandle.module.css +44 -0
- package/src/components/head/MRT_TableHeadCellResizeHandle.tsx +67 -0
- package/src/components/head/MRT_TableHeadCellSortLabel.module.css +22 -0
- package/src/components/head/MRT_TableHeadCellSortLabel.tsx +89 -0
- package/src/components/head/MRT_TableHeadRow.module.css +12 -0
- package/src/components/head/MRT_TableHeadRow.tsx +87 -0
- package/src/components/inputs/MRT_EditCellTextInput.tsx +218 -0
- package/src/components/inputs/MRT_FilterCheckBox.module.css +4 -0
- package/src/components/inputs/MRT_FilterCheckbox.tsx +79 -0
- package/src/components/inputs/MRT_FilterRangeFields.module.css +5 -0
- package/src/components/inputs/MRT_FilterRangeFields.tsx +35 -0
- package/src/components/inputs/MRT_FilterRangeSlider.module.css +6 -0
- package/src/components/inputs/MRT_FilterRangeSlider.tsx +106 -0
- package/src/components/inputs/MRT_FilterTextInput.module.css +27 -0
- package/src/components/inputs/MRT_FilterTextInput.tsx +417 -0
- package/src/components/inputs/MRT_GlobalFilterTextInput.module.css +11 -0
- package/src/components/inputs/MRT_GlobalFilterTextInput.tsx +141 -0
- package/src/components/inputs/MRT_SelectCheckbox.tsx +137 -0
- package/src/components/menus/MRT_ColumnActionMenu.module.css +7 -0
- package/src/components/menus/MRT_ColumnActionMenu.tsx +287 -0
- package/src/components/menus/MRT_FilterOptionMenu.module.css +6 -0
- package/src/components/menus/MRT_FilterOptionMenu.tsx +274 -0
- package/src/components/menus/MRT_RowActionMenu.tsx +74 -0
- package/src/components/menus/MRT_ShowHideColumnsMenu.module.css +10 -0
- package/src/components/menus/MRT_ShowHideColumnsMenu.tsx +135 -0
- package/src/components/menus/MRT_ShowHideColumnsMenuItems.module.css +35 -0
- package/src/components/menus/MRT_ShowHideColumnsMenuItems.tsx +170 -0
- package/src/components/modals/MRT_EditRowModal.tsx +97 -0
- package/src/components/table/MRT_Table.module.css +7 -0
- package/src/components/table/MRT_Table.tsx +110 -0
- package/src/components/table/MRT_TableContainer.module.css +20 -0
- package/src/components/table/MRT_TableContainer.tsx +109 -0
- package/src/components/table/MRT_TablePaper.module.css +88 -0
- package/src/components/table/MRT_TablePaper.tsx +92 -0
- package/src/components/toolbar/MRT_BottomToolbar.module.css +40 -0
- package/src/components/toolbar/MRT_BottomToolbar.tsx +100 -0
- package/src/components/toolbar/MRT_ProgressBar.module.css +10 -0
- package/src/components/toolbar/MRT_ProgressBar.tsx +53 -0
- package/src/components/toolbar/MRT_TablePagination.module.css +20 -0
- package/src/components/toolbar/MRT_TablePagination.tsx +166 -0
- package/src/components/toolbar/MRT_ToolbarAlertBanner.module.css +37 -0
- package/src/components/toolbar/MRT_ToolbarAlertBanner.tsx +168 -0
- package/src/components/toolbar/MRT_ToolbarDropZone.module.css +23 -0
- package/src/components/toolbar/MRT_ToolbarDropZone.tsx +67 -0
- package/src/components/toolbar/MRT_ToolbarInternalButtons.module.css +6 -0
- package/src/components/toolbar/MRT_ToolbarInternalButtons.tsx +73 -0
- package/src/components/toolbar/MRT_TopToolbar.module.css +24 -0
- package/src/components/toolbar/MRT_TopToolbar.tsx +128 -0
- package/src/components/toolbar/common.styles.module.css +10 -0
- package/src/fns/aggregationFns.ts +3 -0
- package/src/fns/filterFns.ts +272 -0
- package/src/fns/sortingFns.ts +34 -0
- package/src/hooks/display-columns/getMRT_RowActionsColumnDef.tsx +23 -0
- package/src/hooks/display-columns/getMRT_RowDragColumnDef.tsx +30 -0
- package/src/hooks/display-columns/getMRT_RowExpandColumnDef.tsx +92 -0
- package/src/hooks/display-columns/getMRT_RowNumbersColumnDef.tsx +30 -0
- package/src/hooks/display-columns/getMRT_RowPinningColumnDef.tsx +24 -0
- package/src/hooks/display-columns/getMRT_RowSelectColumnDef.tsx +34 -0
- package/src/hooks/display-columns/getMRT_RowSpacerColumnDef.tsx +34 -0
- package/src/hooks/useMRT_ColumnVirtualizer.ts +129 -0
- package/src/hooks/useMRT_Effects.ts +105 -0
- package/src/hooks/useMRT_RowVirtualizer.ts +95 -0
- package/src/hooks/useMRT_Rows.ts +46 -0
- package/src/hooks/useMRT_TableInstance.ts +314 -0
- package/src/hooks/useMRT_TableOptions.ts +264 -0
- package/src/hooks/useMantineReactTable.ts +14 -0
- package/src/icons.ts +73 -0
- package/src/index.ts +90 -0
- package/src/locales/ar.ts +96 -0
- package/src/locales/az.ts +96 -0
- package/src/locales/bg.ts +96 -0
- package/src/locales/cs.ts +97 -0
- package/src/locales/da.ts +96 -0
- package/src/locales/de.ts +96 -0
- package/src/locales/el.ts +96 -0
- package/src/locales/en.ts +96 -0
- package/src/locales/es.ts +96 -0
- package/src/locales/et.ts +97 -0
- package/src/locales/fa.ts +96 -0
- package/src/locales/fi.ts +97 -0
- package/src/locales/fr.ts +96 -0
- package/src/locales/he.ts +96 -0
- package/src/locales/hr.ts +96 -0
- package/src/locales/hu.ts +96 -0
- package/src/locales/hy.ts +96 -0
- package/src/locales/id.ts +97 -0
- package/src/locales/it.ts +96 -0
- package/src/locales/ja.ts +96 -0
- package/src/locales/ko.ts +96 -0
- package/src/locales/nl.ts +96 -0
- package/src/locales/no.ts +97 -0
- package/src/locales/np.ts +97 -0
- package/src/locales/pl.ts +96 -0
- package/src/locales/pt-BR.ts +96 -0
- package/src/locales/pt.ts +96 -0
- package/src/locales/ro.ts +96 -0
- package/src/locales/ru.ts +96 -0
- package/src/locales/sk.ts +97 -0
- package/src/locales/sr-Cyrl-RS.ts +96 -0
- package/src/locales/sr-Latn-RS.ts +96 -0
- package/src/locales/sv.ts +96 -0
- package/src/locales/tr.ts +96 -0
- package/src/locales/uk.ts +96 -0
- package/src/locales/vi.ts +96 -0
- package/src/locales/zh-Hans.ts +95 -0
- package/src/locales/zh-Hant.ts +95 -0
- package/src/types.ts +1276 -0
- package/src/typings.d.ts +1 -0
- package/src/utils/column.utils.ts +124 -0
- package/src/utils/displayColumn.utils.ts +153 -0
- package/src/utils/row.utils.ts +263 -0
- package/src/utils/style.utils.ts +32 -0
- package/src/utils/tanstack.helpers.ts +66 -0
- package/src/utils/utils.ts +4 -0
- package/src/utils/virtualization.utils.ts +19 -0
- package/styles.css +1320 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import clsx from 'clsx';
|
|
2
|
+
|
|
3
|
+
import classes from './MRT_ProgressBar.module.css';
|
|
4
|
+
|
|
5
|
+
import { Collapse, Progress, type ProgressProps } from '@mantine/core';
|
|
6
|
+
|
|
7
|
+
import { type MRT_RowData, type MRT_TableInstance } from '../../types';
|
|
8
|
+
import { parseFromValuesOrFunc } from '../../utils/utils';
|
|
9
|
+
|
|
10
|
+
interface Props<TData extends MRT_RowData> extends Partial<ProgressProps> {
|
|
11
|
+
isTopToolbar: boolean;
|
|
12
|
+
table: MRT_TableInstance<TData>;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const MRT_ProgressBar = <TData extends MRT_RowData>({
|
|
16
|
+
isTopToolbar,
|
|
17
|
+
table,
|
|
18
|
+
...rest
|
|
19
|
+
}: Props<TData>) => {
|
|
20
|
+
'use no memo';
|
|
21
|
+
const {
|
|
22
|
+
getState,
|
|
23
|
+
options: { mantineProgressProps },
|
|
24
|
+
} = table;
|
|
25
|
+
const { isSaving, showProgressBars } = getState();
|
|
26
|
+
|
|
27
|
+
const linearProgressProps = {
|
|
28
|
+
...parseFromValuesOrFunc(mantineProgressProps, {
|
|
29
|
+
isTopToolbar,
|
|
30
|
+
table,
|
|
31
|
+
}),
|
|
32
|
+
...rest,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<Collapse
|
|
37
|
+
className={clsx(
|
|
38
|
+
classes.collapse,
|
|
39
|
+
isTopToolbar && classes['collapse-top'],
|
|
40
|
+
)}
|
|
41
|
+
expanded={isSaving || showProgressBars}
|
|
42
|
+
>
|
|
43
|
+
<Progress
|
|
44
|
+
animated
|
|
45
|
+
aria-busy="true"
|
|
46
|
+
aria-label="Loading"
|
|
47
|
+
radius={0}
|
|
48
|
+
value={100}
|
|
49
|
+
{...linearProgressProps}
|
|
50
|
+
/>
|
|
51
|
+
</Collapse>
|
|
52
|
+
);
|
|
53
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
.root {
|
|
2
|
+
display: flex;
|
|
3
|
+
z-index: 2;
|
|
4
|
+
gap: var(--mantine-spacing-lg);
|
|
5
|
+
align-items: center;
|
|
6
|
+
justify-content: space-between;
|
|
7
|
+
padding-right: var(--mantine-spacing-sm);
|
|
8
|
+
padding-left: var(--mantine-spacing-sm);
|
|
9
|
+
padding-top: var(--mantine-spacing-xs);
|
|
10
|
+
padding-bottom: var(--mantine-spacing-xs);
|
|
11
|
+
.pagesize {
|
|
12
|
+
input {
|
|
13
|
+
width: calc(5rem * var(--mantine-scale));
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.with-top-margin {
|
|
19
|
+
margin-top: 3rem;
|
|
20
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import clsx from 'clsx';
|
|
2
|
+
|
|
3
|
+
import classes from './MRT_TablePagination.module.css';
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
ActionIcon,
|
|
7
|
+
Box,
|
|
8
|
+
Group,
|
|
9
|
+
Pagination,
|
|
10
|
+
type PaginationProps,
|
|
11
|
+
Select,
|
|
12
|
+
Text,
|
|
13
|
+
} from '@mantine/core';
|
|
14
|
+
|
|
15
|
+
import { type MRT_RowData, type MRT_TableInstance } from '../../types';
|
|
16
|
+
import { parseFromValuesOrFunc } from '../../utils/utils';
|
|
17
|
+
|
|
18
|
+
const defaultRowsPerPage = [5, 10, 15, 20, 25, 30, 50, 100].map((x) =>
|
|
19
|
+
x.toString(),
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
interface Props<TData extends MRT_RowData> extends Partial<PaginationProps> {
|
|
23
|
+
position?: 'bottom' | 'top';
|
|
24
|
+
table: MRT_TableInstance<TData>;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export const MRT_TablePagination = <TData extends MRT_RowData>({
|
|
28
|
+
position = 'bottom',
|
|
29
|
+
table,
|
|
30
|
+
...props
|
|
31
|
+
}: Props<TData>) => {
|
|
32
|
+
'use no memo';
|
|
33
|
+
const {
|
|
34
|
+
getPrePaginationRowModel,
|
|
35
|
+
getState,
|
|
36
|
+
options: {
|
|
37
|
+
enableToolbarInternalActions,
|
|
38
|
+
icons: {
|
|
39
|
+
IconChevronLeft,
|
|
40
|
+
IconChevronLeftPipe,
|
|
41
|
+
IconChevronRight,
|
|
42
|
+
IconChevronRightPipe,
|
|
43
|
+
},
|
|
44
|
+
localization,
|
|
45
|
+
mantinePaginationProps,
|
|
46
|
+
paginationDisplayMode,
|
|
47
|
+
rowCount,
|
|
48
|
+
},
|
|
49
|
+
setPageIndex,
|
|
50
|
+
setPageSize,
|
|
51
|
+
} = table;
|
|
52
|
+
const {
|
|
53
|
+
pagination: { pageIndex = 0, pageSize = 10 },
|
|
54
|
+
showGlobalFilter,
|
|
55
|
+
} = getState();
|
|
56
|
+
|
|
57
|
+
const paginationProps = {
|
|
58
|
+
...parseFromValuesOrFunc(mantinePaginationProps, {
|
|
59
|
+
table,
|
|
60
|
+
}),
|
|
61
|
+
...props,
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const totalRowCount = rowCount ?? getPrePaginationRowModel().rows.length;
|
|
65
|
+
const numberOfPages = Math.ceil(totalRowCount / pageSize);
|
|
66
|
+
const showFirstLastPageButtons = numberOfPages > 2;
|
|
67
|
+
const firstRowIndex = pageIndex * pageSize;
|
|
68
|
+
const lastRowIndex = Math.min(pageIndex * pageSize + pageSize, totalRowCount);
|
|
69
|
+
|
|
70
|
+
const {
|
|
71
|
+
rowsPerPageOptions = defaultRowsPerPage,
|
|
72
|
+
showRowsPerPage = true,
|
|
73
|
+
withEdges = showFirstLastPageButtons,
|
|
74
|
+
...rest
|
|
75
|
+
} = paginationProps ?? {};
|
|
76
|
+
|
|
77
|
+
const needsTopMargin =
|
|
78
|
+
position === 'top' && enableToolbarInternalActions && !showGlobalFilter;
|
|
79
|
+
|
|
80
|
+
return (
|
|
81
|
+
<Box
|
|
82
|
+
className={clsx(
|
|
83
|
+
'mrt-table-pagination',
|
|
84
|
+
classes.root,
|
|
85
|
+
needsTopMargin && classes['with-top-margin'],
|
|
86
|
+
)}
|
|
87
|
+
>
|
|
88
|
+
{paginationProps?.showRowsPerPage !== false && (
|
|
89
|
+
<Group gap="xs">
|
|
90
|
+
<Text id="rpp-label">{localization.rowsPerPage}</Text>
|
|
91
|
+
<Select
|
|
92
|
+
allowDeselect={false}
|
|
93
|
+
aria-labelledby="rpp-label"
|
|
94
|
+
className={classes.pagesize}
|
|
95
|
+
data={paginationProps?.rowsPerPageOptions ?? defaultRowsPerPage}
|
|
96
|
+
onChange={(value: null | string) => setPageSize(+(value as string))}
|
|
97
|
+
value={pageSize.toString()}
|
|
98
|
+
/>
|
|
99
|
+
</Group>
|
|
100
|
+
)}
|
|
101
|
+
{paginationDisplayMode === 'pages' ? (
|
|
102
|
+
<Pagination
|
|
103
|
+
firstIcon={IconChevronLeftPipe}
|
|
104
|
+
lastIcon={IconChevronRightPipe}
|
|
105
|
+
nextIcon={IconChevronRight}
|
|
106
|
+
onChange={(newPageIndex) => setPageIndex(newPageIndex - 1)}
|
|
107
|
+
previousIcon={IconChevronLeft}
|
|
108
|
+
total={numberOfPages}
|
|
109
|
+
value={pageIndex + 1}
|
|
110
|
+
withEdges={withEdges}
|
|
111
|
+
{...rest}
|
|
112
|
+
/>
|
|
113
|
+
) : paginationDisplayMode === 'default' ? (
|
|
114
|
+
<>
|
|
115
|
+
<Text>{`${
|
|
116
|
+
lastRowIndex === 0 ? 0 : (firstRowIndex + 1).toLocaleString()
|
|
117
|
+
}-${lastRowIndex.toLocaleString()} ${
|
|
118
|
+
localization.of
|
|
119
|
+
} ${totalRowCount.toLocaleString()}`}</Text>
|
|
120
|
+
<Group gap={6}>
|
|
121
|
+
{withEdges && (
|
|
122
|
+
<ActionIcon
|
|
123
|
+
aria-label={localization.goToFirstPage}
|
|
124
|
+
color="gray"
|
|
125
|
+
disabled={pageIndex <= 0}
|
|
126
|
+
onClick={() => setPageIndex(0)}
|
|
127
|
+
variant="subtle"
|
|
128
|
+
>
|
|
129
|
+
<IconChevronLeftPipe />
|
|
130
|
+
</ActionIcon>
|
|
131
|
+
)}
|
|
132
|
+
<ActionIcon
|
|
133
|
+
aria-label={localization.goToPreviousPage}
|
|
134
|
+
color="gray"
|
|
135
|
+
disabled={pageIndex <= 0}
|
|
136
|
+
onClick={() => setPageIndex(pageIndex - 1)}
|
|
137
|
+
variant="subtle"
|
|
138
|
+
>
|
|
139
|
+
<IconChevronLeft />
|
|
140
|
+
</ActionIcon>
|
|
141
|
+
<ActionIcon
|
|
142
|
+
aria-label={localization.goToNextPage}
|
|
143
|
+
color="gray"
|
|
144
|
+
disabled={lastRowIndex >= totalRowCount}
|
|
145
|
+
onClick={() => setPageIndex(pageIndex + 1)}
|
|
146
|
+
variant="subtle"
|
|
147
|
+
>
|
|
148
|
+
<IconChevronRight />
|
|
149
|
+
</ActionIcon>
|
|
150
|
+
{withEdges && (
|
|
151
|
+
<ActionIcon
|
|
152
|
+
aria-label={localization.goToLastPage}
|
|
153
|
+
color="gray"
|
|
154
|
+
disabled={lastRowIndex >= totalRowCount}
|
|
155
|
+
onClick={() => setPageIndex(numberOfPages - 1)}
|
|
156
|
+
variant="subtle"
|
|
157
|
+
>
|
|
158
|
+
<IconChevronRightPipe />
|
|
159
|
+
</ActionIcon>
|
|
160
|
+
)}
|
|
161
|
+
</Group>
|
|
162
|
+
</>
|
|
163
|
+
) : null}
|
|
164
|
+
</Box>
|
|
165
|
+
);
|
|
166
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
.alert {
|
|
2
|
+
border-radius: 0;
|
|
3
|
+
font-size: 1rem;
|
|
4
|
+
left: 0;
|
|
5
|
+
position: relative;
|
|
6
|
+
padding: rem(8px);
|
|
7
|
+
right: 0;
|
|
8
|
+
top: 0;
|
|
9
|
+
width: 100%;
|
|
10
|
+
z-index: 2;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.alert-stacked {
|
|
14
|
+
margin-bottom: 0;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.alert-bottom {
|
|
18
|
+
margin-bottom: -16px;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.alert-badge {
|
|
22
|
+
margin-left: 1ch;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.toolbar-alert {
|
|
26
|
+
gap: var(--mantine-spacing-sm);
|
|
27
|
+
padding: 8px 16px;
|
|
28
|
+
&.head-overlay {
|
|
29
|
+
padding: 2px;
|
|
30
|
+
&:global(.xl) {
|
|
31
|
+
padding: 16px;
|
|
32
|
+
}
|
|
33
|
+
&:global(.md) {
|
|
34
|
+
padding: 8px;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import clsx from 'clsx';
|
|
2
|
+
|
|
3
|
+
import classes from './MRT_ToolbarAlertBanner.module.css';
|
|
4
|
+
|
|
5
|
+
import { Fragment, useMemo } from 'react';
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
ActionIcon,
|
|
9
|
+
Alert,
|
|
10
|
+
type AlertProps,
|
|
11
|
+
Badge,
|
|
12
|
+
Button,
|
|
13
|
+
Collapse,
|
|
14
|
+
Flex,
|
|
15
|
+
Stack,
|
|
16
|
+
} from '@mantine/core';
|
|
17
|
+
|
|
18
|
+
import { type MRT_RowData, type MRT_TableInstance } from '../../types';
|
|
19
|
+
import { getMRT_SelectAllHandler } from '../../utils/row.utils';
|
|
20
|
+
import { parseFromValuesOrFunc } from '../../utils/utils';
|
|
21
|
+
import { MRT_SelectCheckbox } from '../inputs/MRT_SelectCheckbox';
|
|
22
|
+
|
|
23
|
+
interface Props<TData extends MRT_RowData> extends Partial<AlertProps> {
|
|
24
|
+
stackAlertBanner?: boolean;
|
|
25
|
+
table: MRT_TableInstance<TData>;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export const MRT_ToolbarAlertBanner = <TData extends MRT_RowData>({
|
|
29
|
+
stackAlertBanner,
|
|
30
|
+
table,
|
|
31
|
+
...rest
|
|
32
|
+
}: Props<TData>) => {
|
|
33
|
+
'use no memo';
|
|
34
|
+
const {
|
|
35
|
+
getFilteredSelectedRowModel,
|
|
36
|
+
getPrePaginationRowModel,
|
|
37
|
+
getState,
|
|
38
|
+
options: {
|
|
39
|
+
enableRowSelection,
|
|
40
|
+
enableSelectAll,
|
|
41
|
+
icons: { IconX },
|
|
42
|
+
localization,
|
|
43
|
+
mantineToolbarAlertBannerBadgeProps,
|
|
44
|
+
mantineToolbarAlertBannerProps,
|
|
45
|
+
manualPagination,
|
|
46
|
+
positionToolbarAlertBanner,
|
|
47
|
+
renderToolbarAlertBannerContent,
|
|
48
|
+
rowCount,
|
|
49
|
+
},
|
|
50
|
+
} = table;
|
|
51
|
+
const { density, grouping, rowSelection, showAlertBanner } = getState();
|
|
52
|
+
|
|
53
|
+
const alertProps = {
|
|
54
|
+
...parseFromValuesOrFunc(mantineToolbarAlertBannerProps, {
|
|
55
|
+
table,
|
|
56
|
+
}),
|
|
57
|
+
...rest,
|
|
58
|
+
};
|
|
59
|
+
const badgeProps = parseFromValuesOrFunc(
|
|
60
|
+
mantineToolbarAlertBannerBadgeProps,
|
|
61
|
+
{ table },
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
const totalRowCount = rowCount ?? getPrePaginationRowModel().flatRows.length;
|
|
65
|
+
|
|
66
|
+
const selectedRowCount = useMemo(
|
|
67
|
+
() =>
|
|
68
|
+
manualPagination
|
|
69
|
+
? Object.values(rowSelection).filter(Boolean).length
|
|
70
|
+
: getFilteredSelectedRowModel().rows.length,
|
|
71
|
+
[rowSelection, totalRowCount, manualPagination],
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
const selectedAlert = selectedRowCount ? (
|
|
75
|
+
<Flex align="center" gap="sm">
|
|
76
|
+
{localization.selectedCountOfRowCountRowsSelected
|
|
77
|
+
?.replace('{selectedCount}', selectedRowCount.toString())
|
|
78
|
+
?.replace('{rowCount}', totalRowCount.toString())}
|
|
79
|
+
<Button
|
|
80
|
+
onClick={(event) =>
|
|
81
|
+
getMRT_SelectAllHandler({ table })(event, false, true)
|
|
82
|
+
}
|
|
83
|
+
size="compact-xs"
|
|
84
|
+
variant="subtle"
|
|
85
|
+
>
|
|
86
|
+
{localization.clearSelection}
|
|
87
|
+
</Button>
|
|
88
|
+
</Flex>
|
|
89
|
+
) : null;
|
|
90
|
+
|
|
91
|
+
const groupedAlert =
|
|
92
|
+
grouping.length > 0 ? (
|
|
93
|
+
<Flex>
|
|
94
|
+
{localization.groupedBy}{' '}
|
|
95
|
+
{grouping.map((columnId, index) => (
|
|
96
|
+
<Fragment key={`${index}-${columnId}`}>
|
|
97
|
+
{index > 0 ? localization.thenBy : ''}
|
|
98
|
+
<Badge
|
|
99
|
+
className={classes['alert-badge']}
|
|
100
|
+
rightSection={
|
|
101
|
+
<ActionIcon
|
|
102
|
+
color="white"
|
|
103
|
+
onClick={() => table.getColumn(columnId).toggleGrouping()}
|
|
104
|
+
size="xs"
|
|
105
|
+
variant="subtle"
|
|
106
|
+
>
|
|
107
|
+
<IconX style={{ transform: 'scale(0.8)' }} />
|
|
108
|
+
</ActionIcon>
|
|
109
|
+
}
|
|
110
|
+
variant="filled"
|
|
111
|
+
{...badgeProps}
|
|
112
|
+
>
|
|
113
|
+
{table.getColumn(columnId).columnDef.header}{' '}
|
|
114
|
+
</Badge>
|
|
115
|
+
</Fragment>
|
|
116
|
+
))}
|
|
117
|
+
</Flex>
|
|
118
|
+
) : null;
|
|
119
|
+
|
|
120
|
+
return (
|
|
121
|
+
<Collapse
|
|
122
|
+
expanded={showAlertBanner || !!selectedAlert || !!groupedAlert}
|
|
123
|
+
transitionDuration={stackAlertBanner ? 200 : 0}
|
|
124
|
+
>
|
|
125
|
+
<Alert
|
|
126
|
+
color="blue"
|
|
127
|
+
icon={false}
|
|
128
|
+
{...alertProps}
|
|
129
|
+
className={clsx(
|
|
130
|
+
classes.alert,
|
|
131
|
+
stackAlertBanner &&
|
|
132
|
+
!positionToolbarAlertBanner &&
|
|
133
|
+
classes['alert-stacked'],
|
|
134
|
+
!stackAlertBanner &&
|
|
135
|
+
positionToolbarAlertBanner === 'bottom' &&
|
|
136
|
+
classes['alert-bottom'],
|
|
137
|
+
alertProps?.className,
|
|
138
|
+
)}
|
|
139
|
+
>
|
|
140
|
+
{renderToolbarAlertBannerContent?.({
|
|
141
|
+
groupedAlert,
|
|
142
|
+
selectedAlert,
|
|
143
|
+
table,
|
|
144
|
+
}) ?? (
|
|
145
|
+
<Flex
|
|
146
|
+
className={clsx(
|
|
147
|
+
classes['toolbar-alert'],
|
|
148
|
+
positionToolbarAlertBanner === 'head-overlay' &&
|
|
149
|
+
classes['head-overlay'],
|
|
150
|
+
density,
|
|
151
|
+
)}
|
|
152
|
+
>
|
|
153
|
+
{enableRowSelection &&
|
|
154
|
+
enableSelectAll &&
|
|
155
|
+
positionToolbarAlertBanner === 'head-overlay' && (
|
|
156
|
+
<MRT_SelectCheckbox table={table} />
|
|
157
|
+
)}
|
|
158
|
+
<Stack>
|
|
159
|
+
{alertProps?.children}
|
|
160
|
+
{selectedAlert}
|
|
161
|
+
{groupedAlert}
|
|
162
|
+
</Stack>
|
|
163
|
+
</Flex>
|
|
164
|
+
)}
|
|
165
|
+
</Alert>
|
|
166
|
+
</Collapse>
|
|
167
|
+
);
|
|
168
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
.root {
|
|
2
|
+
align-items: center;
|
|
3
|
+
|
|
4
|
+
border: dashed var(--mantine-primary-color-filled) 2px;
|
|
5
|
+
justify-content: center;
|
|
6
|
+
height: 100%;
|
|
7
|
+
width: 100%;
|
|
8
|
+
position: absolute;
|
|
9
|
+
z-index: 2;
|
|
10
|
+
background-color: color-mix(
|
|
11
|
+
in srgb,
|
|
12
|
+
var(--mantine-primary-color-filled) 10%,
|
|
13
|
+
transparent
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.hovered {
|
|
18
|
+
background-color: color-mix(
|
|
19
|
+
in srgb,
|
|
20
|
+
var(--mantine-primary-color-filled) 20%,
|
|
21
|
+
transparent
|
|
22
|
+
);
|
|
23
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import clsx from 'clsx';
|
|
2
|
+
|
|
3
|
+
import classes from './MRT_ToolbarDropZone.module.css';
|
|
4
|
+
|
|
5
|
+
import { type DragEvent, useEffect } from 'react';
|
|
6
|
+
|
|
7
|
+
import { Flex, type FlexProps, Text, Transition } from '@mantine/core';
|
|
8
|
+
|
|
9
|
+
import { type MRT_RowData, type MRT_TableInstance } from '../../types';
|
|
10
|
+
|
|
11
|
+
interface Props<TData extends MRT_RowData> extends FlexProps {
|
|
12
|
+
table: MRT_TableInstance<TData>;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const MRT_ToolbarDropZone = <TData extends MRT_RowData>({
|
|
16
|
+
table,
|
|
17
|
+
...rest
|
|
18
|
+
}: Props<TData>) => {
|
|
19
|
+
'use no memo';
|
|
20
|
+
const {
|
|
21
|
+
getState,
|
|
22
|
+
options: { enableGrouping, localization },
|
|
23
|
+
setHoveredColumn,
|
|
24
|
+
setShowToolbarDropZone,
|
|
25
|
+
} = table;
|
|
26
|
+
|
|
27
|
+
const { draggingColumn, grouping, hoveredColumn, showToolbarDropZone } =
|
|
28
|
+
getState();
|
|
29
|
+
|
|
30
|
+
const handleDragEnter = (_event: DragEvent<HTMLDivElement>) => {
|
|
31
|
+
setHoveredColumn({ id: 'drop-zone' });
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
if (table.options.state?.showToolbarDropZone !== undefined) {
|
|
36
|
+
setShowToolbarDropZone(
|
|
37
|
+
!!enableGrouping &&
|
|
38
|
+
!!draggingColumn &&
|
|
39
|
+
draggingColumn.columnDef.enableGrouping !== false &&
|
|
40
|
+
!grouping.includes(draggingColumn.id),
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
}, [enableGrouping, draggingColumn, grouping]);
|
|
44
|
+
|
|
45
|
+
return (
|
|
46
|
+
<Transition mounted={showToolbarDropZone} transition="fade">
|
|
47
|
+
{() => (
|
|
48
|
+
<Flex
|
|
49
|
+
className={clsx(
|
|
50
|
+
'mrt-toolbar-dropzone',
|
|
51
|
+
classes.root,
|
|
52
|
+
hoveredColumn?.id === 'drop-zone' && classes.hovered,
|
|
53
|
+
)}
|
|
54
|
+
onDragEnter={handleDragEnter}
|
|
55
|
+
{...rest}
|
|
56
|
+
>
|
|
57
|
+
<Text>
|
|
58
|
+
{localization.dropToGroupBy.replace(
|
|
59
|
+
'{column}',
|
|
60
|
+
draggingColumn?.columnDef?.header ?? '',
|
|
61
|
+
)}
|
|
62
|
+
</Text>
|
|
63
|
+
</Flex>
|
|
64
|
+
)}
|
|
65
|
+
</Transition>
|
|
66
|
+
);
|
|
67
|
+
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import clsx from 'clsx';
|
|
2
|
+
|
|
3
|
+
import classes from './MRT_ToolbarInternalButtons.module.css';
|
|
4
|
+
|
|
5
|
+
import { Flex, type FlexProps } from '@mantine/core';
|
|
6
|
+
|
|
7
|
+
import { type MRT_RowData, type MRT_TableInstance } from '../../types';
|
|
8
|
+
import { MRT_ShowHideColumnsButton } from '../buttons/MRT_ShowHideColumnsButton';
|
|
9
|
+
import { MRT_ToggleDensePaddingButton } from '../buttons/MRT_ToggleDensePaddingButton';
|
|
10
|
+
import { MRT_ToggleFiltersButton } from '../buttons/MRT_ToggleFiltersButton';
|
|
11
|
+
import { MRT_ToggleFullScreenButton } from '../buttons/MRT_ToggleFullScreenButton';
|
|
12
|
+
import { MRT_ToggleGlobalFilterButton } from '../buttons/MRT_ToggleGlobalFilterButton';
|
|
13
|
+
|
|
14
|
+
interface Props<TData extends MRT_RowData> extends FlexProps {
|
|
15
|
+
table: MRT_TableInstance<TData>;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const MRT_ToolbarInternalButtons = <TData extends MRT_RowData>({
|
|
19
|
+
table,
|
|
20
|
+
...rest
|
|
21
|
+
}: Props<TData>) => {
|
|
22
|
+
'use no memo';
|
|
23
|
+
const {
|
|
24
|
+
options: {
|
|
25
|
+
columnFilterDisplayMode,
|
|
26
|
+
enableColumnFilters,
|
|
27
|
+
enableColumnOrdering,
|
|
28
|
+
enableColumnPinning,
|
|
29
|
+
enableDensityToggle,
|
|
30
|
+
enableFilters,
|
|
31
|
+
enableFullScreenToggle,
|
|
32
|
+
enableGlobalFilter,
|
|
33
|
+
enableHiding,
|
|
34
|
+
initialState,
|
|
35
|
+
renderToolbarInternalActions,
|
|
36
|
+
},
|
|
37
|
+
} = table;
|
|
38
|
+
|
|
39
|
+
return (
|
|
40
|
+
<Flex
|
|
41
|
+
{...rest}
|
|
42
|
+
className={clsx(
|
|
43
|
+
'mrt-toolbar-internal-buttons',
|
|
44
|
+
classes.root,
|
|
45
|
+
rest?.className,
|
|
46
|
+
)}
|
|
47
|
+
>
|
|
48
|
+
{renderToolbarInternalActions?.({ table }) ?? (
|
|
49
|
+
<>
|
|
50
|
+
{enableFilters &&
|
|
51
|
+
enableGlobalFilter &&
|
|
52
|
+
!initialState?.showGlobalFilter && (
|
|
53
|
+
<MRT_ToggleGlobalFilterButton table={table} />
|
|
54
|
+
)}
|
|
55
|
+
{enableFilters &&
|
|
56
|
+
enableColumnFilters &&
|
|
57
|
+
columnFilterDisplayMode !== 'popover' && (
|
|
58
|
+
<MRT_ToggleFiltersButton table={table} />
|
|
59
|
+
)}
|
|
60
|
+
{(enableHiding || enableColumnOrdering || enableColumnPinning) && (
|
|
61
|
+
<MRT_ShowHideColumnsButton table={table} />
|
|
62
|
+
)}
|
|
63
|
+
{enableDensityToggle && (
|
|
64
|
+
<MRT_ToggleDensePaddingButton table={table} />
|
|
65
|
+
)}
|
|
66
|
+
{enableFullScreenToggle && (
|
|
67
|
+
<MRT_ToggleFullScreenButton table={table} />
|
|
68
|
+
)}
|
|
69
|
+
</>
|
|
70
|
+
)}
|
|
71
|
+
</Flex>
|
|
72
|
+
);
|
|
73
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
.root {
|
|
2
|
+
background-color: var(--mrt-base-background-color);
|
|
3
|
+
position: relative;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.root-fullscreen {
|
|
7
|
+
position: sticky !important;
|
|
8
|
+
top: 0;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.actions-container {
|
|
12
|
+
align-items: flex-start;
|
|
13
|
+
box-sizing: border-box;
|
|
14
|
+
justify-content: space-between;
|
|
15
|
+
padding: rem(8px);
|
|
16
|
+
right: 0;
|
|
17
|
+
top: 0;
|
|
18
|
+
width: 100%;
|
|
19
|
+
position: absolute;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.actions-container-stack-alert {
|
|
23
|
+
position: relative !important;
|
|
24
|
+
}
|