material-react-table 1.15.0 → 2.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +1624 -1269
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/MaterialReactTable.d.ts +7 -11
- package/dist/cjs/types/body/MRT_TableBody.d.ts +4 -5
- package/dist/cjs/types/body/MRT_TableBodyCell.d.ts +5 -5
- package/dist/cjs/types/body/MRT_TableBodyCellValue.d.ts +4 -4
- package/dist/cjs/types/body/MRT_TableBodyRow.d.ts +6 -6
- package/dist/cjs/types/body/MRT_TableBodyRowGrabHandle.d.ts +5 -5
- package/dist/cjs/types/body/MRT_TableBodyRowPinButton.d.ts +7 -0
- package/dist/cjs/types/body/MRT_TableDetailPanel.d.ts +6 -6
- package/dist/cjs/types/body/index.d.ts +7 -0
- package/dist/cjs/types/buttons/MRT_ColumnPinningButtons.d.ts +2 -2
- package/dist/cjs/types/buttons/MRT_CopyButton.d.ts +2 -2
- package/dist/cjs/types/buttons/MRT_EditActionButtons.d.ts +2 -2
- package/dist/cjs/types/buttons/MRT_ExpandAllButton.d.ts +3 -3
- package/dist/cjs/types/buttons/MRT_ExpandButton.d.ts +2 -2
- package/dist/cjs/types/buttons/MRT_GrabHandleButton.d.ts +2 -2
- package/dist/cjs/types/buttons/MRT_RowPinButton.d.ts +9 -0
- package/dist/cjs/types/buttons/MRT_ShowHideColumnsButton.d.ts +2 -2
- package/dist/cjs/types/buttons/MRT_ToggleDensePaddingButton.d.ts +2 -2
- package/dist/cjs/types/buttons/MRT_ToggleFiltersButton.d.ts +2 -2
- package/dist/cjs/types/buttons/MRT_ToggleFullScreenButton.d.ts +7 -0
- package/dist/cjs/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +2 -2
- package/dist/cjs/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +2 -2
- package/dist/cjs/types/buttons/index.d.ts +13 -0
- package/dist/cjs/types/column.utils.d.ts +40 -51
- package/dist/cjs/types/filterFns.d.ts +14 -14
- package/dist/cjs/types/footer/MRT_TableFooter.d.ts +3 -3
- package/dist/cjs/types/footer/MRT_TableFooterCell.d.ts +4 -4
- package/dist/cjs/types/footer/MRT_TableFooterRow.d.ts +4 -4
- package/dist/cjs/types/footer/index.d.ts +3 -0
- package/dist/cjs/types/head/MRT_TableHead.d.ts +3 -3
- package/dist/cjs/types/head/MRT_TableHeadCell.d.ts +4 -4
- package/dist/cjs/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +4 -4
- package/dist/cjs/types/head/MRT_TableHeadCellFilterContainer.d.ts +4 -4
- package/dist/cjs/types/head/MRT_TableHeadCellFilterLabel.d.ts +4 -4
- package/dist/cjs/types/head/MRT_TableHeadCellGrabHandle.d.ts +4 -4
- package/dist/cjs/types/head/MRT_TableHeadCellResizeHandle.d.ts +4 -4
- package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +4 -4
- package/dist/cjs/types/head/MRT_TableHeadRow.d.ts +4 -4
- package/dist/cjs/types/head/index.d.ts +9 -0
- package/dist/cjs/types/hooks/useMRT_DisplayColumns.d.ts +9 -0
- package/dist/cjs/types/hooks/useMRT_Effects.d.ts +2 -0
- package/dist/cjs/types/hooks/useMRT_TableInstance.d.ts +2 -0
- package/dist/cjs/types/hooks/useMRT_TableOptions.d.ts +2 -0
- package/dist/cjs/types/index.d.ts +14 -25
- package/dist/cjs/types/inputs/MRT_EditCellTextField.d.ts +2 -3
- package/dist/cjs/types/inputs/MRT_FilterCheckbox.d.ts +4 -4
- package/dist/cjs/types/inputs/MRT_FilterRangeFields.d.ts +4 -4
- package/dist/cjs/types/inputs/MRT_FilterRangeSlider.d.ts +4 -4
- package/dist/cjs/types/inputs/MRT_FilterTextField.d.ts +4 -4
- package/dist/cjs/types/inputs/MRT_GlobalFilterTextField.d.ts +2 -2
- package/dist/cjs/types/inputs/MRT_SelectCheckbox.d.ts +4 -4
- package/dist/cjs/types/inputs/index.d.ts +7 -0
- package/dist/cjs/types/locales/ar.d.ts +2 -0
- package/dist/cjs/types/locales/bg.d.ts +2 -0
- package/dist/cjs/types/locales/et.d.ts +2 -0
- package/dist/cjs/types/locales/ko.d.ts +2 -0
- package/dist/cjs/types/menus/MRT_ColumnActionMenu.d.ts +4 -4
- package/dist/cjs/types/menus/MRT_FilterOptionMenu.d.ts +2 -2
- package/dist/cjs/types/menus/MRT_RowActionMenu.d.ts +4 -4
- package/dist/cjs/types/menus/MRT_ShowHideColumnsMenu.d.ts +2 -2
- package/dist/cjs/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +2 -2
- package/dist/cjs/types/menus/index.d.ts +5 -0
- package/dist/cjs/types/modals/MRT_EditRowModal.d.ts +7 -0
- package/dist/cjs/types/modals/index.d.ts +1 -0
- package/dist/cjs/types/sortingFns.d.ts +3 -2
- package/dist/cjs/types/table/MRT_Table.d.ts +3 -3
- package/dist/cjs/types/table/MRT_TableContainer.d.ts +3 -3
- package/dist/cjs/types/table/MRT_TablePaper.d.ts +3 -3
- package/dist/cjs/types/table/index.d.ts +4 -0
- package/dist/cjs/types/toolbar/MRT_BottomToolbar.d.ts +2 -2
- package/dist/cjs/types/toolbar/MRT_LinearProgressBar.d.ts +2 -2
- package/dist/cjs/types/toolbar/MRT_TablePagination.d.ts +2 -2
- package/dist/cjs/types/toolbar/MRT_ToolbarAlertBanner.d.ts +2 -2
- package/dist/cjs/types/toolbar/MRT_ToolbarDropZone.d.ts +2 -2
- package/dist/cjs/types/toolbar/MRT_ToolbarInternalButtons.d.ts +2 -2
- package/dist/cjs/types/toolbar/MRT_TopToolbar.d.ts +2 -2
- package/dist/cjs/types/toolbar/index.d.ts +7 -0
- package/dist/cjs/types/types.d.ts +128 -91
- package/dist/cjs/types/useMaterialReactTable.d.ts +2 -0
- package/dist/esm/material-react-table.esm.js +1567 -1279
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/types/MaterialReactTable.d.ts +7 -11
- package/dist/esm/types/body/MRT_TableBody.d.ts +4 -5
- package/dist/esm/types/body/MRT_TableBodyCell.d.ts +5 -5
- package/dist/esm/types/body/MRT_TableBodyCellValue.d.ts +4 -4
- package/dist/esm/types/body/MRT_TableBodyRow.d.ts +6 -6
- package/dist/esm/types/body/MRT_TableBodyRowGrabHandle.d.ts +5 -5
- package/dist/esm/types/body/MRT_TableBodyRowPinButton.d.ts +7 -0
- package/dist/esm/types/body/MRT_TableDetailPanel.d.ts +6 -6
- package/dist/esm/types/body/index.d.ts +7 -0
- package/dist/esm/types/buttons/MRT_ColumnPinningButtons.d.ts +2 -2
- package/dist/esm/types/buttons/MRT_CopyButton.d.ts +2 -2
- package/dist/esm/types/buttons/MRT_EditActionButtons.d.ts +2 -2
- package/dist/esm/types/buttons/MRT_ExpandAllButton.d.ts +3 -3
- package/dist/esm/types/buttons/MRT_ExpandButton.d.ts +2 -2
- package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +2 -2
- package/dist/esm/types/buttons/MRT_RowPinButton.d.ts +9 -0
- package/dist/esm/types/buttons/MRT_ShowHideColumnsButton.d.ts +2 -2
- package/dist/esm/types/buttons/MRT_ToggleDensePaddingButton.d.ts +2 -2
- package/dist/esm/types/buttons/MRT_ToggleFiltersButton.d.ts +2 -2
- package/dist/esm/types/buttons/MRT_ToggleFullScreenButton.d.ts +7 -0
- package/dist/esm/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +2 -2
- package/dist/esm/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +2 -2
- package/dist/esm/types/buttons/index.d.ts +13 -0
- package/dist/esm/types/column.utils.d.ts +40 -51
- package/dist/esm/types/filterFns.d.ts +14 -14
- package/dist/esm/types/footer/MRT_TableFooter.d.ts +3 -3
- package/dist/esm/types/footer/MRT_TableFooterCell.d.ts +4 -4
- package/dist/esm/types/footer/MRT_TableFooterRow.d.ts +4 -4
- package/dist/esm/types/footer/index.d.ts +3 -0
- package/dist/esm/types/head/MRT_TableHead.d.ts +3 -3
- package/dist/esm/types/head/MRT_TableHeadCell.d.ts +4 -4
- package/dist/esm/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +4 -4
- package/dist/esm/types/head/MRT_TableHeadCellFilterContainer.d.ts +4 -4
- package/dist/esm/types/head/MRT_TableHeadCellFilterLabel.d.ts +4 -4
- package/dist/esm/types/head/MRT_TableHeadCellGrabHandle.d.ts +4 -4
- package/dist/esm/types/head/MRT_TableHeadCellResizeHandle.d.ts +4 -4
- package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +4 -4
- package/dist/esm/types/head/MRT_TableHeadRow.d.ts +4 -4
- package/dist/esm/types/head/index.d.ts +9 -0
- package/dist/esm/types/hooks/useMRT_DisplayColumns.d.ts +9 -0
- package/dist/esm/types/hooks/useMRT_Effects.d.ts +2 -0
- package/dist/esm/types/hooks/useMRT_TableInstance.d.ts +2 -0
- package/dist/esm/types/hooks/useMRT_TableOptions.d.ts +2 -0
- package/dist/esm/types/index.d.ts +14 -25
- package/dist/esm/types/inputs/MRT_EditCellTextField.d.ts +2 -3
- package/dist/esm/types/inputs/MRT_FilterCheckbox.d.ts +4 -4
- package/dist/esm/types/inputs/MRT_FilterRangeFields.d.ts +4 -4
- package/dist/esm/types/inputs/MRT_FilterRangeSlider.d.ts +4 -4
- package/dist/esm/types/inputs/MRT_FilterTextField.d.ts +4 -4
- package/dist/esm/types/inputs/MRT_GlobalFilterTextField.d.ts +2 -2
- package/dist/esm/types/inputs/MRT_SelectCheckbox.d.ts +4 -4
- package/dist/esm/types/inputs/index.d.ts +7 -0
- package/dist/esm/types/locales/ar.d.ts +2 -0
- package/dist/esm/types/locales/bg.d.ts +2 -0
- package/dist/esm/types/locales/et.d.ts +2 -0
- package/dist/esm/types/locales/ko.d.ts +2 -0
- package/dist/esm/types/menus/MRT_ColumnActionMenu.d.ts +4 -4
- package/dist/esm/types/menus/MRT_FilterOptionMenu.d.ts +2 -2
- package/dist/esm/types/menus/MRT_RowActionMenu.d.ts +4 -4
- package/dist/esm/types/menus/MRT_ShowHideColumnsMenu.d.ts +2 -2
- package/dist/esm/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +2 -2
- package/dist/esm/types/menus/index.d.ts +5 -0
- package/dist/esm/types/modals/MRT_EditRowModal.d.ts +7 -0
- package/dist/esm/types/modals/index.d.ts +1 -0
- package/dist/esm/types/sortingFns.d.ts +3 -2
- package/dist/esm/types/table/MRT_Table.d.ts +3 -3
- package/dist/esm/types/table/MRT_TableContainer.d.ts +3 -3
- package/dist/esm/types/table/MRT_TablePaper.d.ts +3 -3
- package/dist/esm/types/table/index.d.ts +4 -0
- package/dist/esm/types/toolbar/MRT_BottomToolbar.d.ts +2 -2
- package/dist/esm/types/toolbar/MRT_LinearProgressBar.d.ts +2 -2
- package/dist/esm/types/toolbar/MRT_TablePagination.d.ts +2 -2
- package/dist/esm/types/toolbar/MRT_ToolbarAlertBanner.d.ts +2 -2
- package/dist/esm/types/toolbar/MRT_ToolbarDropZone.d.ts +2 -2
- package/dist/esm/types/toolbar/MRT_ToolbarInternalButtons.d.ts +2 -2
- package/dist/esm/types/toolbar/MRT_TopToolbar.d.ts +2 -2
- package/dist/esm/types/toolbar/index.d.ts +7 -0
- package/dist/esm/types/types.d.ts +128 -91
- package/dist/esm/types/useMaterialReactTable.d.ts +2 -0
- package/dist/index.d.ts +626 -155
- package/locales/ar.d.ts +2 -0
- package/locales/ar.esm.d.ts +2 -0
- package/locales/ar.esm.js +93 -0
- package/locales/ar.esm.js.map +1 -0
- package/locales/ar.js +97 -0
- package/locales/ar.js.map +1 -0
- package/locales/bg.d.ts +2 -0
- package/locales/bg.esm.d.ts +2 -0
- package/locales/bg.esm.js +93 -0
- package/locales/bg.esm.js.map +1 -0
- package/locales/bg.js +97 -0
- package/locales/bg.js.map +1 -0
- package/locales/cs.esm.js +1 -2
- package/locales/cs.esm.js.map +1 -1
- package/locales/cs.js +1 -2
- package/locales/cs.js.map +1 -1
- package/locales/da.esm.js +0 -1
- package/locales/da.esm.js.map +1 -1
- package/locales/da.js +0 -1
- package/locales/da.js.map +1 -1
- package/locales/de.esm.js +0 -1
- package/locales/de.esm.js.map +1 -1
- package/locales/de.js +0 -1
- package/locales/de.js.map +1 -1
- package/locales/en.esm.js +1 -1
- package/locales/en.esm.js.map +1 -1
- package/locales/en.js +1 -1
- package/locales/en.js.map +1 -1
- package/locales/es.esm.js +0 -1
- package/locales/es.esm.js.map +1 -1
- package/locales/es.js +0 -1
- package/locales/es.js.map +1 -1
- package/locales/et.d.ts +2 -0
- package/locales/et.esm.d.ts +2 -0
- package/locales/et.esm.js +93 -0
- package/locales/et.esm.js.map +1 -0
- package/locales/et.js +97 -0
- package/locales/et.js.map +1 -0
- package/locales/fa.esm.js +0 -1
- package/locales/fa.esm.js.map +1 -1
- package/locales/fa.js +0 -1
- package/locales/fa.js.map +1 -1
- package/locales/fi.esm.js +0 -1
- package/locales/fi.esm.js.map +1 -1
- package/locales/fi.js +0 -1
- package/locales/fi.js.map +1 -1
- package/locales/fr.esm.js +0 -1
- package/locales/fr.esm.js.map +1 -1
- package/locales/fr.js +0 -1
- package/locales/fr.js.map +1 -1
- package/locales/hu.esm.js +0 -1
- package/locales/hu.esm.js.map +1 -1
- package/locales/hu.js +0 -1
- package/locales/hu.js.map +1 -1
- package/locales/id.esm.js +0 -1
- package/locales/id.esm.js.map +1 -1
- package/locales/id.js +0 -1
- package/locales/id.js.map +1 -1
- package/locales/it.esm.js +0 -1
- package/locales/it.esm.js.map +1 -1
- package/locales/it.js +0 -1
- package/locales/it.js.map +1 -1
- package/locales/ja.esm.js +0 -1
- package/locales/ja.esm.js.map +1 -1
- package/locales/ja.js +0 -1
- package/locales/ja.js.map +1 -1
- package/locales/ko.d.ts +2 -0
- package/locales/ko.esm.d.ts +2 -0
- package/locales/ko.esm.js +93 -0
- package/locales/ko.esm.js.map +1 -0
- package/locales/ko.js +97 -0
- package/locales/ko.js.map +1 -0
- package/locales/nl.esm.js +0 -1
- package/locales/nl.esm.js.map +1 -1
- package/locales/nl.js +0 -1
- package/locales/nl.js.map +1 -1
- package/locales/no.esm.js +0 -1
- package/locales/no.esm.js.map +1 -1
- package/locales/no.js +0 -1
- package/locales/no.js.map +1 -1
- package/locales/pl.esm.js +0 -1
- package/locales/pl.esm.js.map +1 -1
- package/locales/pl.js +0 -1
- package/locales/pl.js.map +1 -1
- package/locales/pt-BR.esm.js +0 -1
- package/locales/pt-BR.esm.js.map +1 -1
- package/locales/pt-BR.js +0 -1
- package/locales/pt-BR.js.map +1 -1
- package/locales/pt.esm.js +0 -1
- package/locales/pt.esm.js.map +1 -1
- package/locales/pt.js +0 -1
- package/locales/pt.js.map +1 -1
- package/locales/ro.esm.js +0 -1
- package/locales/ro.esm.js.map +1 -1
- package/locales/ro.js +0 -1
- package/locales/ro.js.map +1 -1
- package/locales/ru.esm.js +0 -1
- package/locales/ru.esm.js.map +1 -1
- package/locales/ru.js +0 -1
- package/locales/ru.js.map +1 -1
- package/locales/sk.esm.js +0 -1
- package/locales/sk.esm.js.map +1 -1
- package/locales/sk.js +0 -1
- package/locales/sk.js.map +1 -1
- package/locales/sr-Cyrl-RS.esm.js +0 -1
- package/locales/sr-Cyrl-RS.esm.js.map +1 -1
- package/locales/sr-Cyrl-RS.js +0 -1
- package/locales/sr-Cyrl-RS.js.map +1 -1
- package/locales/sr-Latn-RS.esm.js +0 -1
- package/locales/sr-Latn-RS.esm.js.map +1 -1
- package/locales/sr-Latn-RS.js +0 -1
- package/locales/sr-Latn-RS.js.map +1 -1
- package/locales/sv.esm.js +0 -1
- package/locales/sv.esm.js.map +1 -1
- package/locales/sv.js +0 -1
- package/locales/sv.js.map +1 -1
- package/package.json +18 -16
- package/src/MaterialReactTable.tsx +31 -168
- package/src/body/MRT_TableBody.tsx +184 -93
- package/src/body/MRT_TableBodyCell.tsx +55 -56
- package/src/body/MRT_TableBodyCellValue.tsx +7 -4
- package/src/body/MRT_TableBodyRow.tsx +111 -23
- package/src/body/MRT_TableBodyRowGrabHandle.tsx +15 -11
- package/src/body/MRT_TableBodyRowPinButton.tsx +46 -0
- package/src/body/MRT_TableDetailPanel.tsx +21 -27
- package/src/body/index.ts +7 -0
- package/src/buttons/MRT_ColumnPinningButtons.tsx +2 -4
- package/src/buttons/MRT_CopyButton.tsx +17 -23
- package/src/buttons/MRT_EditActionButtons.tsx +56 -25
- package/src/buttons/MRT_ExpandAllButton.tsx +10 -10
- package/src/buttons/MRT_ExpandButton.tsx +8 -9
- package/src/buttons/MRT_GrabHandleButton.tsx +4 -5
- package/src/buttons/MRT_RowPinButton.tsx +74 -0
- package/src/buttons/MRT_ShowHideColumnsButton.tsx +2 -5
- package/src/buttons/MRT_ToggleDensePaddingButton.tsx +2 -3
- package/src/buttons/MRT_ToggleFiltersButton.tsx +2 -5
- package/src/buttons/{MRT_FullScreenToggleButton.tsx → MRT_ToggleFullScreenButton.tsx} +13 -6
- package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +3 -5
- package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +18 -11
- package/src/buttons/index.ts +13 -0
- package/src/column.utils.ts +107 -50
- package/src/filterFns.ts +14 -14
- package/src/footer/MRT_TableFooter.tsx +17 -11
- package/src/footer/MRT_TableFooterCell.tsx +14 -24
- package/src/footer/MRT_TableFooterRow.tsx +12 -13
- package/src/footer/index.ts +3 -0
- package/src/head/MRT_TableHead.tsx +15 -11
- package/src/head/MRT_TableHeadCell.tsx +16 -24
- package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +18 -24
- package/src/head/MRT_TableHeadCellFilterContainer.tsx +9 -4
- package/src/head/MRT_TableHeadCellFilterLabel.tsx +9 -4
- package/src/head/MRT_TableHeadCellGrabHandle.tsx +13 -20
- package/src/head/MRT_TableHeadCellResizeHandle.tsx +9 -4
- package/src/head/MRT_TableHeadCellSortLabel.tsx +8 -6
- package/src/head/MRT_TableHeadRow.tsx +12 -13
- package/src/head/index.ts +9 -0
- package/src/hooks/useMRT_DisplayColumns.tsx +155 -0
- package/src/hooks/useMRT_Effects.ts +77 -0
- package/src/hooks/useMRT_TableInstance.ts +297 -0
- package/src/hooks/useMRT_TableOptions.ts +173 -0
- package/src/index.ts +16 -0
- package/src/inputs/MRT_EditCellTextField.tsx +47 -41
- package/src/inputs/MRT_FilterCheckbox.tsx +19 -28
- package/src/inputs/MRT_FilterRangeFields.tsx +7 -4
- package/src/inputs/MRT_FilterRangeSlider.tsx +14 -32
- package/src/inputs/MRT_FilterTextField.tsx +18 -34
- package/src/inputs/MRT_GlobalFilterTextField.tsx +6 -8
- package/src/inputs/MRT_SelectCheckbox.tsx +39 -21
- package/src/inputs/index.ts +7 -0
- package/src/locales/ar.ts +94 -0
- package/src/locales/bg.ts +93 -0
- package/src/{_locales → locales}/cs.ts +1 -2
- package/src/{_locales → locales}/da.ts +0 -1
- package/src/{_locales → locales}/de.ts +0 -1
- package/src/{_locales → locales}/en.ts +1 -1
- package/src/{_locales → locales}/es.ts +0 -1
- package/src/locales/et.ts +94 -0
- package/src/{_locales → locales}/fa.ts +0 -1
- package/src/{_locales → locales}/fi.ts +0 -1
- package/src/{_locales → locales}/fr.ts +0 -1
- package/src/{_locales → locales}/hu.ts +0 -1
- package/src/{_locales → locales}/id.ts +0 -1
- package/src/{_locales → locales}/it.ts +0 -1
- package/src/{_locales → locales}/ja.ts +0 -1
- package/src/locales/ko.ts +93 -0
- package/src/{_locales → locales}/nl.ts +0 -1
- package/src/{_locales → locales}/no.ts +1 -1
- package/src/{_locales → locales}/pl.ts +0 -1
- package/src/{_locales → locales}/pt-BR.ts +0 -1
- package/src/{_locales → locales}/pt.ts +0 -1
- package/src/{_locales → locales}/ro.ts +0 -1
- package/src/{_locales → locales}/ru.ts +0 -1
- package/src/{_locales → locales}/sk.ts +0 -1
- package/src/{_locales → locales}/sr-Cyrl-RS.ts +0 -1
- package/src/{_locales → locales}/sr-Latn-RS.ts +0 -1
- package/src/{_locales → locales}/sv.ts +0 -1
- package/src/{_locales → locales}/tr.ts +0 -1
- package/src/{_locales → locales}/uk.ts +0 -1
- package/src/{_locales → locales}/vi.ts +0 -1
- package/src/{_locales → locales}/zh-Hans.ts +7 -8
- package/src/{_locales → locales}/zh-Hant.ts +1 -2
- package/src/menus/MRT_ColumnActionMenu.tsx +8 -8
- package/src/menus/MRT_FilterOptionMenu.tsx +4 -3
- package/src/menus/MRT_RowActionMenu.tsx +16 -17
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +4 -6
- package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +4 -4
- package/src/menus/index.ts +5 -0
- package/src/modals/MRT_EditRowModal.tsx +107 -0
- package/src/modals/index.ts +1 -0
- package/src/sortingFns.ts +6 -2
- package/src/table/MRT_Table.tsx +42 -40
- package/src/table/MRT_TableContainer.tsx +24 -12
- package/src/table/MRT_TablePaper.tsx +22 -17
- package/src/table/index.ts +4 -0
- package/src/toolbar/MRT_BottomToolbar.tsx +16 -22
- package/src/toolbar/MRT_LinearProgressBar.tsx +7 -6
- package/src/toolbar/MRT_TablePagination.tsx +7 -9
- package/src/toolbar/MRT_ToolbarAlertBanner.tsx +10 -13
- package/src/toolbar/MRT_ToolbarDropZone.tsx +2 -2
- package/src/toolbar/MRT_ToolbarInternalButtons.tsx +6 -8
- package/src/toolbar/MRT_TopToolbar.tsx +10 -16
- package/src/toolbar/index.ts +7 -0
- package/src/types.ts +803 -770
- package/src/useMaterialReactTable.ts +11 -0
- package/dist/cjs/types/body/MRT_EditRowModal.d.ts +0 -8
- package/dist/cjs/types/buttons/MRT_FullScreenToggleButton.d.ts +0 -7
- package/dist/cjs/types/table/MRT_TableRoot.d.ts +0 -1
- package/dist/esm/types/body/MRT_EditRowModal.d.ts +0 -8
- package/dist/esm/types/buttons/MRT_FullScreenToggleButton.d.ts +0 -7
- package/dist/esm/types/table/MRT_TableRoot.d.ts +0 -1
- package/locales/tr.d.ts +0 -2
- package/locales/tr.esm.d.ts +0 -2
- package/locales/tr.esm.js +0 -94
- package/locales/tr.esm.js.map +0 -1
- package/locales/tr.js +0 -98
- package/locales/tr.js.map +0 -1
- package/locales/uk.d.ts +0 -2
- package/locales/uk.esm.d.ts +0 -2
- package/locales/uk.esm.js +0 -94
- package/locales/uk.esm.js.map +0 -1
- package/locales/uk.js +0 -98
- package/locales/uk.js.map +0 -1
- package/locales/vi.d.ts +0 -2
- package/locales/vi.esm.d.ts +0 -2
- package/locales/vi.esm.js +0 -94
- package/locales/vi.esm.js.map +0 -1
- package/locales/vi.js +0 -98
- package/locales/vi.js.map +0 -1
- package/locales/zh-Hans.d.ts +0 -2
- package/locales/zh-Hans.esm.d.ts +0 -2
- package/locales/zh-Hans.esm.js +0 -94
- package/locales/zh-Hans.esm.js.map +0 -1
- package/locales/zh-Hans.js +0 -98
- package/locales/zh-Hans.js.map +0 -1
- package/locales/zh-Hant.d.ts +0 -2
- package/locales/zh-Hant.esm.d.ts +0 -2
- package/locales/zh-Hant.esm.js +0 -94
- package/locales/zh-Hant.esm.js.map +0 -1
- package/locales/zh-Hant.js +0 -98
- package/locales/zh-Hant.js.map +0 -1
- package/src/body/MRT_EditRowModal.tsx +0 -57
- package/src/index.tsx +0 -50
- package/src/table/MRT_TableRoot.tsx +0 -421
- /package/dist/cjs/types/{_locales → locales}/cs.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/da.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/de.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/en.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/es.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/fa.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/fi.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/fr.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/hu.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/id.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/it.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/ja.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/nl.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/no.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/pl.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/pt-BR.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/pt.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/ro.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/ru.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/sk.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/sr-Cyrl-RS.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/sr-Latn-RS.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/sv.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/tr.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/uk.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/vi.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/zh-Hans.d.ts +0 -0
- /package/dist/cjs/types/{_locales → locales}/zh-Hant.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/cs.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/da.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/de.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/en.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/es.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/fa.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/fi.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/fr.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/hu.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/id.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/it.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/ja.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/nl.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/no.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/pl.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/pt-BR.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/pt.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/ro.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/ru.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/sk.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/sr-Cyrl-RS.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/sr-Latn-RS.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/sv.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/tr.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/uk.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/vi.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/zh-Hans.d.ts +0 -0
- /package/dist/esm/types/{_locales → locales}/zh-Hant.d.ts +0 -0
package/src/filterFns.ts
CHANGED
@@ -5,7 +5,7 @@ import {
|
|
5
5
|
} from '@tanstack/match-sorter-utils';
|
6
6
|
import { filterFns, type Row } from '@tanstack/react-table';
|
7
7
|
|
8
|
-
const fuzzy = <TData extends Record<string, any
|
8
|
+
const fuzzy = <TData extends Record<string, any>>(
|
9
9
|
row: Row<TData>,
|
10
10
|
columnId: string,
|
11
11
|
filterValue: string | number,
|
@@ -20,7 +20,7 @@ const fuzzy = <TData extends Record<string, any> = {}>(
|
|
20
20
|
|
21
21
|
fuzzy.autoRemove = (val: any) => !val;
|
22
22
|
|
23
|
-
const contains = <TData extends Record<string, any
|
23
|
+
const contains = <TData extends Record<string, any>>(
|
24
24
|
row: Row<TData>,
|
25
25
|
id: string,
|
26
26
|
filterValue: string | number,
|
@@ -34,7 +34,7 @@ const contains = <TData extends Record<string, any> = {}>(
|
|
34
34
|
|
35
35
|
contains.autoRemove = (val: any) => !val;
|
36
36
|
|
37
|
-
const startsWith = <TData extends Record<string, any
|
37
|
+
const startsWith = <TData extends Record<string, any>>(
|
38
38
|
row: Row<TData>,
|
39
39
|
id: string,
|
40
40
|
filterValue: string | number,
|
@@ -48,7 +48,7 @@ const startsWith = <TData extends Record<string, any> = {}>(
|
|
48
48
|
|
49
49
|
startsWith.autoRemove = (val: any) => !val;
|
50
50
|
|
51
|
-
const endsWith = <TData extends Record<string, any
|
51
|
+
const endsWith = <TData extends Record<string, any>>(
|
52
52
|
row: Row<TData>,
|
53
53
|
id: string,
|
54
54
|
filterValue: string | number,
|
@@ -62,7 +62,7 @@ const endsWith = <TData extends Record<string, any> = {}>(
|
|
62
62
|
|
63
63
|
endsWith.autoRemove = (val: any) => !val;
|
64
64
|
|
65
|
-
const equals = <TData extends Record<string, any
|
65
|
+
const equals = <TData extends Record<string, any>>(
|
66
66
|
row: Row<TData>,
|
67
67
|
id: string,
|
68
68
|
filterValue: string | number,
|
@@ -72,7 +72,7 @@ const equals = <TData extends Record<string, any> = {}>(
|
|
72
72
|
|
73
73
|
equals.autoRemove = (val: any) => !val;
|
74
74
|
|
75
|
-
const notEquals = <TData extends Record<string, any
|
75
|
+
const notEquals = <TData extends Record<string, any>>(
|
76
76
|
row: Row<TData>,
|
77
77
|
id: string,
|
78
78
|
filterValue: string | number,
|
@@ -82,7 +82,7 @@ const notEquals = <TData extends Record<string, any> = {}>(
|
|
82
82
|
|
83
83
|
notEquals.autoRemove = (val: any) => !val;
|
84
84
|
|
85
|
-
const greaterThan = <TData extends Record<string, any
|
85
|
+
const greaterThan = <TData extends Record<string, any>>(
|
86
86
|
row: Row<TData>,
|
87
87
|
id: string,
|
88
88
|
filterValue: string | number,
|
@@ -94,7 +94,7 @@ const greaterThan = <TData extends Record<string, any> = {}>(
|
|
94
94
|
|
95
95
|
greaterThan.autoRemove = (val: any) => !val;
|
96
96
|
|
97
|
-
const greaterThanOrEqualTo = <TData extends Record<string, any
|
97
|
+
const greaterThanOrEqualTo = <TData extends Record<string, any>>(
|
98
98
|
row: Row<TData>,
|
99
99
|
id: string,
|
100
100
|
filterValue: string | number,
|
@@ -102,7 +102,7 @@ const greaterThanOrEqualTo = <TData extends Record<string, any> = {}>(
|
|
102
102
|
|
103
103
|
greaterThanOrEqualTo.autoRemove = (val: any) => !val;
|
104
104
|
|
105
|
-
const lessThan = <TData extends Record<string, any
|
105
|
+
const lessThan = <TData extends Record<string, any>>(
|
106
106
|
row: Row<TData>,
|
107
107
|
id: string,
|
108
108
|
filterValue: string | number,
|
@@ -114,7 +114,7 @@ const lessThan = <TData extends Record<string, any> = {}>(
|
|
114
114
|
|
115
115
|
lessThan.autoRemove = (val: any) => !val;
|
116
116
|
|
117
|
-
const lessThanOrEqualTo = <TData extends Record<string, any
|
117
|
+
const lessThanOrEqualTo = <TData extends Record<string, any>>(
|
118
118
|
row: Row<TData>,
|
119
119
|
id: string,
|
120
120
|
filterValue: string | number,
|
@@ -122,7 +122,7 @@ const lessThanOrEqualTo = <TData extends Record<string, any> = {}>(
|
|
122
122
|
|
123
123
|
lessThanOrEqualTo.autoRemove = (val: any) => !val;
|
124
124
|
|
125
|
-
const between = <TData extends Record<string, any
|
125
|
+
const between = <TData extends Record<string, any>>(
|
126
126
|
row: Row<TData>,
|
127
127
|
id: string,
|
128
128
|
filterValues: [string | number, string | number],
|
@@ -137,7 +137,7 @@ const between = <TData extends Record<string, any> = {}>(
|
|
137
137
|
|
138
138
|
between.autoRemove = (val: any) => !val;
|
139
139
|
|
140
|
-
const betweenInclusive = <TData extends Record<string, any
|
140
|
+
const betweenInclusive = <TData extends Record<string, any>>(
|
141
141
|
row: Row<TData>,
|
142
142
|
id: string,
|
143
143
|
filterValues: [string | number, string | number],
|
@@ -152,7 +152,7 @@ const betweenInclusive = <TData extends Record<string, any> = {}>(
|
|
152
152
|
|
153
153
|
betweenInclusive.autoRemove = (val: any) => !val;
|
154
154
|
|
155
|
-
const empty = <TData extends Record<string, any
|
155
|
+
const empty = <TData extends Record<string, any>>(
|
156
156
|
row: Row<TData>,
|
157
157
|
id: string,
|
158
158
|
_filterValue: string | number,
|
@@ -160,7 +160,7 @@ const empty = <TData extends Record<string, any> = {}>(
|
|
160
160
|
|
161
161
|
empty.autoRemove = (val: any) => !val;
|
162
162
|
|
163
|
-
const notEmpty = <TData extends Record<string, any
|
163
|
+
const notEmpty = <TData extends Record<string, any>>(
|
164
164
|
row: Row<TData>,
|
165
165
|
id: string,
|
166
166
|
_filterValue: string | number,
|
@@ -2,31 +2,32 @@ import TableFooter from '@mui/material/TableFooter';
|
|
2
2
|
import { MRT_TableFooterRow } from './MRT_TableFooterRow';
|
3
3
|
import { type VirtualItem } from '@tanstack/react-virtual';
|
4
4
|
import { type MRT_TableInstance } from '../types';
|
5
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
5
6
|
|
6
|
-
interface Props {
|
7
|
-
table: MRT_TableInstance
|
7
|
+
interface Props<TData extends Record<string, any>> {
|
8
|
+
table: MRT_TableInstance<TData>;
|
8
9
|
virtualColumns?: VirtualItem[];
|
9
10
|
virtualPaddingLeft?: number;
|
10
11
|
virtualPaddingRight?: number;
|
11
12
|
}
|
12
13
|
|
13
|
-
export const MRT_TableFooter = ({
|
14
|
+
export const MRT_TableFooter = <TData extends Record<string, any>>({
|
14
15
|
table,
|
15
16
|
virtualColumns,
|
16
17
|
virtualPaddingLeft,
|
17
18
|
virtualPaddingRight,
|
18
|
-
}: Props) => {
|
19
|
+
}: Props<TData>) => {
|
19
20
|
const {
|
20
21
|
getFooterGroups,
|
21
22
|
getState,
|
22
23
|
options: { enableStickyFooter, layoutMode, muiTableFooterProps },
|
24
|
+
refs: { tableFooterRef },
|
23
25
|
} = table;
|
24
26
|
const { isFullScreen } = getState();
|
25
27
|
|
26
|
-
const tableFooterProps =
|
27
|
-
|
28
|
-
|
29
|
-
: muiTableFooterProps;
|
28
|
+
const tableFooterProps = parseFromValuesOrFunc(muiTableFooterProps, {
|
29
|
+
table,
|
30
|
+
});
|
30
31
|
|
31
32
|
const stickFooter =
|
32
33
|
(isFullScreen || enableStickyFooter) && enableStickyFooter !== false;
|
@@ -45,10 +46,15 @@ export const MRT_TableFooter = ({
|
|
45
46
|
: undefined,
|
46
47
|
position: stickFooter ? 'sticky' : undefined,
|
47
48
|
zIndex: stickFooter ? 1 : undefined,
|
48
|
-
...(tableFooterProps?.sx
|
49
|
-
? tableFooterProps?.sx(theme)
|
50
|
-
: (tableFooterProps?.sx as any)),
|
49
|
+
...(parseFromValuesOrFunc(tableFooterProps?.sx, theme) as any),
|
51
50
|
})}
|
51
|
+
ref={(ref: HTMLTableSectionElement) => {
|
52
|
+
tableFooterRef.current = ref;
|
53
|
+
if (tableFooterProps?.ref) {
|
54
|
+
// @ts-ignore
|
55
|
+
tableFooterProps.ref.current = ref;
|
56
|
+
}
|
57
|
+
}}
|
52
58
|
>
|
53
59
|
{getFooterGroups().map((footerGroup) => (
|
54
60
|
<MRT_TableFooterRow
|
@@ -1,13 +1,16 @@
|
|
1
1
|
import TableCell from '@mui/material/TableCell';
|
2
|
-
import { getCommonCellStyles } from '../column.utils';
|
2
|
+
import { getCommonCellStyles, parseFromValuesOrFunc } from '../column.utils';
|
3
3
|
import { type MRT_Header, type MRT_TableInstance } from '../types';
|
4
4
|
|
5
|
-
interface Props {
|
6
|
-
footer: MRT_Header
|
7
|
-
table: MRT_TableInstance
|
5
|
+
interface Props<TData extends Record<string, any>> {
|
6
|
+
footer: MRT_Header<TData>;
|
7
|
+
table: MRT_TableInstance<TData>;
|
8
8
|
}
|
9
9
|
|
10
|
-
export const MRT_TableFooterCell =
|
10
|
+
export const MRT_TableFooterCell = <TData extends Record<string, any>>({
|
11
|
+
footer,
|
12
|
+
table,
|
13
|
+
}: Props<TData>) => {
|
11
14
|
const {
|
12
15
|
getState,
|
13
16
|
options: { layoutMode, muiTableFooterCellProps },
|
@@ -17,19 +20,12 @@ export const MRT_TableFooterCell = ({ footer, table }: Props) => {
|
|
17
20
|
const { columnDef } = column;
|
18
21
|
const { columnDefType } = columnDef;
|
19
22
|
|
20
|
-
const mTableFooterCellProps =
|
21
|
-
muiTableFooterCellProps instanceof Function
|
22
|
-
? muiTableFooterCellProps({ column, table })
|
23
|
-
: muiTableFooterCellProps;
|
24
|
-
|
25
|
-
const mcTableFooterCellProps =
|
26
|
-
columnDef.muiTableFooterCellProps instanceof Function
|
27
|
-
? columnDef.muiTableFooterCellProps({ column, table })
|
28
|
-
: columnDef.muiTableFooterCellProps;
|
29
|
-
|
30
23
|
const tableCellProps = {
|
31
|
-
...
|
32
|
-
...
|
24
|
+
...parseFromValuesOrFunc(muiTableFooterCellProps, { column, table }),
|
25
|
+
...parseFromValuesOrFunc(columnDef.muiTableFooterCellProps, {
|
26
|
+
column,
|
27
|
+
table,
|
28
|
+
}),
|
33
29
|
};
|
34
30
|
|
35
31
|
return (
|
@@ -61,13 +57,7 @@ export const MRT_TableFooterCell = ({ footer, table }: Props) => {
|
|
61
57
|
<>
|
62
58
|
{footer.isPlaceholder
|
63
59
|
? null
|
64
|
-
: (columnDef.Footer
|
65
|
-
? columnDef.Footer?.({
|
66
|
-
column,
|
67
|
-
footer,
|
68
|
-
table,
|
69
|
-
})
|
70
|
-
: columnDef.Footer) ??
|
60
|
+
: parseFromValuesOrFunc(columnDef.Footer, { column, footer, table }) ??
|
71
61
|
columnDef.footer ??
|
72
62
|
null}
|
73
63
|
</>
|
@@ -7,22 +7,23 @@ import {
|
|
7
7
|
type MRT_HeaderGroup,
|
8
8
|
type MRT_TableInstance,
|
9
9
|
} from '../types';
|
10
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
10
11
|
|
11
|
-
interface Props {
|
12
|
-
footerGroup: MRT_HeaderGroup
|
13
|
-
table: MRT_TableInstance
|
12
|
+
interface Props<TData extends Record<string, any>> {
|
13
|
+
footerGroup: MRT_HeaderGroup<TData>;
|
14
|
+
table: MRT_TableInstance<TData>;
|
14
15
|
virtualColumns?: VirtualItem[];
|
15
16
|
virtualPaddingLeft?: number;
|
16
17
|
virtualPaddingRight?: number;
|
17
18
|
}
|
18
19
|
|
19
|
-
export const MRT_TableFooterRow = ({
|
20
|
+
export const MRT_TableFooterRow = <TData extends Record<string, any>>({
|
20
21
|
footerGroup,
|
21
22
|
table,
|
22
23
|
virtualColumns,
|
23
24
|
virtualPaddingLeft,
|
24
25
|
virtualPaddingRight,
|
25
|
-
}: Props) => {
|
26
|
+
}: Props<TData>) => {
|
26
27
|
const {
|
27
28
|
options: { layoutMode, muiTableFooterRowProps },
|
28
29
|
} = table;
|
@@ -38,10 +39,10 @@ export const MRT_TableFooterRow = ({
|
|
38
39
|
)
|
39
40
|
return null;
|
40
41
|
|
41
|
-
const tableRowProps =
|
42
|
-
|
43
|
-
|
44
|
-
|
42
|
+
const tableRowProps = parseFromValuesOrFunc(muiTableFooterRowProps, {
|
43
|
+
footerGroup,
|
44
|
+
table,
|
45
|
+
});
|
45
46
|
|
46
47
|
return (
|
47
48
|
<TableRow
|
@@ -50,9 +51,7 @@ export const MRT_TableFooterRow = ({
|
|
50
51
|
backgroundColor: lighten(theme.palette.background.default, 0.04),
|
51
52
|
display: layoutMode === 'grid' ? 'flex' : 'table-row',
|
52
53
|
width: '100%',
|
53
|
-
...(tableRowProps?.sx
|
54
|
-
? tableRowProps?.sx(theme)
|
55
|
-
: (tableRowProps?.sx as any)),
|
54
|
+
...(parseFromValuesOrFunc(tableRowProps?.sx, theme) as any),
|
56
55
|
})}
|
57
56
|
>
|
58
57
|
{virtualPaddingLeft ? (
|
@@ -61,7 +60,7 @@ export const MRT_TableFooterRow = ({
|
|
61
60
|
{(virtualColumns ?? footerGroup.headers).map((footerOrVirtualFooter) => {
|
62
61
|
const footer = virtualColumns
|
63
62
|
? footerGroup.headers[footerOrVirtualFooter.index]
|
64
|
-
: (footerOrVirtualFooter as MRT_Header);
|
63
|
+
: (footerOrVirtualFooter as MRT_Header<TData>);
|
65
64
|
|
66
65
|
return (
|
67
66
|
<MRT_TableFooterCell footer={footer} key={footer.id} table={table} />
|
@@ -2,31 +2,30 @@ import TableHead from '@mui/material/TableHead';
|
|
2
2
|
import { MRT_TableHeadRow } from './MRT_TableHeadRow';
|
3
3
|
import { type VirtualItem } from '@tanstack/react-virtual';
|
4
4
|
import { type MRT_TableInstance } from '../types';
|
5
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
5
6
|
|
6
|
-
interface Props {
|
7
|
-
table: MRT_TableInstance
|
7
|
+
interface Props<TData extends Record<string, any>> {
|
8
|
+
table: MRT_TableInstance<TData>;
|
8
9
|
virtualColumns?: VirtualItem[];
|
9
10
|
virtualPaddingLeft?: number;
|
10
11
|
virtualPaddingRight?: number;
|
11
12
|
}
|
12
13
|
|
13
|
-
export const MRT_TableHead = ({
|
14
|
+
export const MRT_TableHead = <TData extends Record<string, any>>({
|
14
15
|
table,
|
15
16
|
virtualColumns,
|
16
17
|
virtualPaddingLeft,
|
17
18
|
virtualPaddingRight,
|
18
|
-
}: Props) => {
|
19
|
+
}: Props<TData>) => {
|
19
20
|
const {
|
20
21
|
getHeaderGroups,
|
21
22
|
getState,
|
22
23
|
options: { enableStickyHeader, layoutMode, muiTableHeadProps },
|
24
|
+
refs: { tableHeadRef },
|
23
25
|
} = table;
|
24
26
|
const { isFullScreen } = getState();
|
25
27
|
|
26
|
-
const tableHeadProps =
|
27
|
-
muiTableHeadProps instanceof Function
|
28
|
-
? muiTableHeadProps({ table })
|
29
|
-
: muiTableHeadProps;
|
28
|
+
const tableHeadProps = parseFromValuesOrFunc(muiTableHeadProps, { table });
|
30
29
|
|
31
30
|
const stickyHeader = enableStickyHeader || isFullScreen;
|
32
31
|
|
@@ -39,10 +38,15 @@ export const MRT_TableHead = ({
|
|
39
38
|
position: stickyHeader ? 'sticky' : 'relative',
|
40
39
|
top: stickyHeader && layoutMode === 'grid' ? 0 : undefined,
|
41
40
|
zIndex: stickyHeader ? 2 : undefined,
|
42
|
-
...(tableHeadProps?.sx
|
43
|
-
? tableHeadProps?.sx(theme)
|
44
|
-
: (tableHeadProps?.sx as any)),
|
41
|
+
...(parseFromValuesOrFunc(tableHeadProps?.sx, theme) as any),
|
45
42
|
})}
|
43
|
+
ref={(ref: HTMLTableSectionElement) => {
|
44
|
+
tableHeadRef.current = ref;
|
45
|
+
if (tableHeadProps?.ref) {
|
46
|
+
// @ts-ignore
|
47
|
+
tableHeadProps.ref.current = ref;
|
48
|
+
}
|
49
|
+
}}
|
46
50
|
>
|
47
51
|
{getHeaderGroups().map((headerGroup) => (
|
48
52
|
<MRT_TableHeadRow
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { type DragEvent,
|
1
|
+
import { type DragEvent, useMemo } from 'react';
|
2
2
|
import Box from '@mui/material/Box';
|
3
3
|
import TableCell from '@mui/material/TableCell';
|
4
4
|
import { useTheme } from '@mui/material/styles';
|
@@ -10,14 +10,18 @@ import { MRT_TableHeadCellResizeHandle } from './MRT_TableHeadCellResizeHandle';
|
|
10
10
|
import { MRT_TableHeadCellSortLabel } from './MRT_TableHeadCellSortLabel';
|
11
11
|
import { getCommonCellStyles } from '../column.utils';
|
12
12
|
import { type Theme } from '@mui/material/styles';
|
13
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
13
14
|
import { type MRT_Header, type MRT_TableInstance } from '../types';
|
14
15
|
|
15
|
-
interface Props {
|
16
|
-
header: MRT_Header
|
17
|
-
table: MRT_TableInstance
|
16
|
+
interface Props<TData extends Record<string, any>> {
|
17
|
+
header: MRT_Header<TData>;
|
18
|
+
table: MRT_TableInstance<TData>;
|
18
19
|
}
|
19
20
|
|
20
|
-
export const MRT_TableHeadCell =
|
21
|
+
export const MRT_TableHeadCell = <TData extends Record<string, any>>({
|
22
|
+
header,
|
23
|
+
table,
|
24
|
+
}: Props<TData>) => {
|
21
25
|
const theme = useTheme();
|
22
26
|
const {
|
23
27
|
getState,
|
@@ -44,19 +48,9 @@ export const MRT_TableHeadCell = ({ header, table }: Props) => {
|
|
44
48
|
const { columnDef } = column;
|
45
49
|
const { columnDefType } = columnDef;
|
46
50
|
|
47
|
-
const mTableHeadCellProps =
|
48
|
-
muiTableHeadCellProps instanceof Function
|
49
|
-
? muiTableHeadCellProps({ column, table })
|
50
|
-
: muiTableHeadCellProps;
|
51
|
-
|
52
|
-
const mcTableHeadCellProps =
|
53
|
-
columnDef.muiTableHeadCellProps instanceof Function
|
54
|
-
? columnDef.muiTableHeadCellProps({ column, table })
|
55
|
-
: columnDef.muiTableHeadCellProps;
|
56
|
-
|
57
51
|
const tableCellProps = {
|
58
|
-
...
|
59
|
-
...
|
52
|
+
...parseFromValuesOrFunc(muiTableHeadCellProps, { column, table }),
|
53
|
+
...parseFromValuesOrFunc(columnDef.muiTableHeadCellProps, { column, table }),
|
60
54
|
};
|
61
55
|
|
62
56
|
const showColumnActions =
|
@@ -110,13 +104,11 @@ export const MRT_TableHeadCell = ({ header, table }: Props) => {
|
|
110
104
|
};
|
111
105
|
|
112
106
|
const headerElement =
|
113
|
-
columnDef
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
})
|
119
|
-
: columnDef?.Header ?? (columnDef.header as ReactNode);
|
107
|
+
parseFromValuesOrFunc(columnDef.Header, {
|
108
|
+
column,
|
109
|
+
header,
|
110
|
+
table,
|
111
|
+
}) ?? columnDef.header;
|
120
112
|
|
121
113
|
return (
|
122
114
|
<TableCell
|
@@ -2,22 +2,25 @@ import { type MouseEvent, useState } from 'react';
|
|
2
2
|
import IconButton from '@mui/material/IconButton';
|
3
3
|
import Tooltip from '@mui/material/Tooltip';
|
4
4
|
import { MRT_ColumnActionMenu } from '../menus/MRT_ColumnActionMenu';
|
5
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
5
6
|
import { type MRT_Header, type MRT_TableInstance } from '../types';
|
6
7
|
|
7
|
-
interface Props {
|
8
|
-
header: MRT_Header
|
9
|
-
table: MRT_TableInstance
|
8
|
+
interface Props<TData extends Record<string, any>> {
|
9
|
+
header: MRT_Header<TData>;
|
10
|
+
table: MRT_TableInstance<TData>;
|
10
11
|
}
|
11
12
|
|
12
|
-
export const MRT_TableHeadCellColumnActionsButton =
|
13
|
+
export const MRT_TableHeadCellColumnActionsButton = <
|
14
|
+
TData extends Record<string, any>,
|
15
|
+
>({
|
13
16
|
header,
|
14
17
|
table,
|
15
|
-
}: Props) => {
|
18
|
+
}: Props<TData>) => {
|
16
19
|
const {
|
17
20
|
options: {
|
18
21
|
icons: { MoreVertIcon },
|
19
22
|
localization,
|
20
|
-
|
23
|
+
muiColumnActionsButtonProps,
|
21
24
|
},
|
22
25
|
} = table;
|
23
26
|
const { column } = header;
|
@@ -31,22 +34,15 @@ export const MRT_TableHeadCellColumnActionsButton = ({
|
|
31
34
|
setAnchorEl(event.currentTarget);
|
32
35
|
};
|
33
36
|
|
34
|
-
const mTableHeadCellColumnActionsButtonProps =
|
35
|
-
muiTableHeadCellColumnActionsButtonProps instanceof Function
|
36
|
-
? muiTableHeadCellColumnActionsButtonProps({ column, table })
|
37
|
-
: muiTableHeadCellColumnActionsButtonProps;
|
38
|
-
|
39
|
-
const mcTableHeadCellColumnActionsButtonProps =
|
40
|
-
columnDef.muiTableHeadCellColumnActionsButtonProps instanceof Function
|
41
|
-
? columnDef.muiTableHeadCellColumnActionsButtonProps({
|
42
|
-
column,
|
43
|
-
table,
|
44
|
-
})
|
45
|
-
: columnDef.muiTableHeadCellColumnActionsButtonProps;
|
46
|
-
|
47
37
|
const iconButtonProps = {
|
48
|
-
...
|
49
|
-
|
38
|
+
...parseFromValuesOrFunc(muiColumnActionsButtonProps, {
|
39
|
+
column,
|
40
|
+
table,
|
41
|
+
}),
|
42
|
+
...parseFromValuesOrFunc(columnDef.muiColumnActionsButtonProps, {
|
43
|
+
column,
|
44
|
+
table,
|
45
|
+
}),
|
50
46
|
};
|
51
47
|
|
52
48
|
return (
|
@@ -73,9 +69,7 @@ export const MRT_TableHeadCellColumnActionsButton = ({
|
|
73
69
|
'&:hover': {
|
74
70
|
opacity: 1,
|
75
71
|
},
|
76
|
-
...(iconButtonProps?.sx
|
77
|
-
? iconButtonProps.sx(theme)
|
78
|
-
: (iconButtonProps?.sx as any)),
|
72
|
+
...(parseFromValuesOrFunc(iconButtonProps?.sx, theme) as any),
|
79
73
|
})}
|
80
74
|
title={undefined}
|
81
75
|
>
|
@@ -5,12 +5,17 @@ import { MRT_FilterCheckbox } from '../inputs/MRT_FilterCheckbox';
|
|
5
5
|
import { MRT_FilterRangeSlider } from '../inputs/MRT_FilterRangeSlider';
|
6
6
|
import { type MRT_Header, type MRT_TableInstance } from '../types';
|
7
7
|
|
8
|
-
interface Props {
|
9
|
-
header: MRT_Header
|
10
|
-
table: MRT_TableInstance
|
8
|
+
interface Props<TData extends Record<string, any>> {
|
9
|
+
header: MRT_Header<TData>;
|
10
|
+
table: MRT_TableInstance<TData>;
|
11
11
|
}
|
12
12
|
|
13
|
-
export const MRT_TableHeadCellFilterContainer =
|
13
|
+
export const MRT_TableHeadCellFilterContainer = <
|
14
|
+
TData extends Record<string, any>,
|
15
|
+
>({
|
16
|
+
header,
|
17
|
+
table,
|
18
|
+
}: Props<TData>) => {
|
14
19
|
const { getState } = table;
|
15
20
|
const { showColumnFilters } = getState();
|
16
21
|
const { column } = header;
|
@@ -5,12 +5,17 @@ import IconButton from '@mui/material/IconButton';
|
|
5
5
|
import Tooltip from '@mui/material/Tooltip';
|
6
6
|
import { type MRT_Header, type MRT_TableInstance } from '../types';
|
7
7
|
|
8
|
-
interface Props {
|
9
|
-
header: MRT_Header
|
10
|
-
table: MRT_TableInstance
|
8
|
+
interface Props<TData extends Record<string, any>> {
|
9
|
+
header: MRT_Header<TData>;
|
10
|
+
table: MRT_TableInstance<TData>;
|
11
11
|
}
|
12
12
|
|
13
|
-
export const MRT_TableHeadCellFilterLabel =
|
13
|
+
export const MRT_TableHeadCellFilterLabel = <
|
14
|
+
TData extends Record<string, any>,
|
15
|
+
>({
|
16
|
+
header,
|
17
|
+
table,
|
18
|
+
}: Props<TData>) => {
|
14
19
|
const {
|
15
20
|
options: {
|
16
21
|
icons: { FilterAltIcon },
|
@@ -1,22 +1,22 @@
|
|
1
1
|
import { type DragEvent, type RefObject } from 'react';
|
2
2
|
import { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';
|
3
|
-
import { reorderColumn } from '../column.utils';
|
3
|
+
import { parseFromValuesOrFunc, reorderColumn } from '../column.utils';
|
4
4
|
import { type MRT_Column, type MRT_TableInstance } from '../types';
|
5
5
|
|
6
|
-
interface Props {
|
7
|
-
column: MRT_Column
|
8
|
-
table: MRT_TableInstance
|
6
|
+
interface Props<TData extends Record<string, any>> {
|
7
|
+
column: MRT_Column<TData>;
|
8
|
+
table: MRT_TableInstance<TData>;
|
9
9
|
tableHeadCellRef: RefObject<HTMLTableCellElement>;
|
10
10
|
}
|
11
11
|
|
12
|
-
export const MRT_TableHeadCellGrabHandle = ({
|
12
|
+
export const MRT_TableHeadCellGrabHandle = <TData extends Record<string, any>>({
|
13
13
|
column,
|
14
14
|
table,
|
15
15
|
tableHeadCellRef,
|
16
|
-
}: Props) => {
|
16
|
+
}: Props<TData>) => {
|
17
17
|
const {
|
18
18
|
getState,
|
19
|
-
options: { enableColumnOrdering,
|
19
|
+
options: { enableColumnOrdering, muiColumnDragHandleProps },
|
20
20
|
setColumnOrder,
|
21
21
|
setDraggingColumn,
|
22
22
|
setHoveredColumn,
|
@@ -24,19 +24,12 @@ export const MRT_TableHeadCellGrabHandle = ({
|
|
24
24
|
const { columnDef } = column;
|
25
25
|
const { hoveredColumn, draggingColumn, columnOrder } = getState();
|
26
26
|
|
27
|
-
const mIconButtonProps =
|
28
|
-
muiTableHeadCellDragHandleProps instanceof Function
|
29
|
-
? muiTableHeadCellDragHandleProps({ column, table })
|
30
|
-
: muiTableHeadCellDragHandleProps;
|
31
|
-
|
32
|
-
const mcIconButtonProps =
|
33
|
-
columnDef.muiTableHeadCellDragHandleProps instanceof Function
|
34
|
-
? columnDef.muiTableHeadCellDragHandleProps({ column, table })
|
35
|
-
: columnDef.muiTableHeadCellDragHandleProps;
|
36
|
-
|
37
27
|
const iconButtonProps = {
|
38
|
-
...
|
39
|
-
...
|
28
|
+
...parseFromValuesOrFunc(muiColumnDragHandleProps, { column, table }),
|
29
|
+
...parseFromValuesOrFunc(columnDef.muiColumnDragHandleProps, {
|
30
|
+
column,
|
31
|
+
table,
|
32
|
+
}),
|
40
33
|
};
|
41
34
|
|
42
35
|
const handleDragStart = (event: DragEvent<HTMLButtonElement>) => {
|
@@ -59,7 +52,7 @@ export const MRT_TableHeadCellGrabHandle = ({
|
|
59
52
|
hoveredColumn?.id !== draggingColumn?.id
|
60
53
|
) {
|
61
54
|
setColumnOrder(
|
62
|
-
reorderColumn(column, hoveredColumn as MRT_Column
|
55
|
+
reorderColumn(column, hoveredColumn as MRT_Column<TData>, columnOrder),
|
63
56
|
);
|
64
57
|
}
|
65
58
|
setDraggingColumn(null);
|
@@ -2,12 +2,17 @@ import Box from '@mui/material/Box';
|
|
2
2
|
import Divider from '@mui/material/Divider';
|
3
3
|
import { type MRT_Header, type MRT_TableInstance } from '../types';
|
4
4
|
|
5
|
-
interface Props {
|
6
|
-
header: MRT_Header
|
7
|
-
table: MRT_TableInstance
|
5
|
+
interface Props<TData extends Record<string, any>> {
|
6
|
+
header: MRT_Header<TData>;
|
7
|
+
table: MRT_TableInstance<TData>;
|
8
8
|
}
|
9
9
|
|
10
|
-
export const MRT_TableHeadCellResizeHandle =
|
10
|
+
export const MRT_TableHeadCellResizeHandle = <
|
11
|
+
TData extends Record<string, any>,
|
12
|
+
>({
|
13
|
+
header,
|
14
|
+
table,
|
15
|
+
}: Props<TData>) => {
|
11
16
|
const {
|
12
17
|
getState,
|
13
18
|
options: { columnResizeMode },
|