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
@@ -0,0 +1,173 @@
|
|
1
|
+
import { useMemo } from 'react';
|
2
|
+
import { MRT_AggregationFns } from '../aggregationFns';
|
3
|
+
import { MRT_FilterFns } from '../filterFns';
|
4
|
+
import { MRT_SortingFns } from '../sortingFns';
|
5
|
+
import { MRT_DefaultColumn, MRT_DefaultDisplayColumn } from '../column.utils';
|
6
|
+
import { MRT_Localization_EN } from '../locales/en';
|
7
|
+
import { MRT_Default_Icons } from '../icons';
|
8
|
+
import { type MRT_DefinedTableOptions, type MRT_TableOptions } from '../types';
|
9
|
+
|
10
|
+
export const useMRT_TableOptions: <TData extends Record<string, any>>(
|
11
|
+
tableOptions: MRT_TableOptions<TData>,
|
12
|
+
) => MRT_DefinedTableOptions<TData> = <TData extends Record<string, any>>({
|
13
|
+
aggregationFns,
|
14
|
+
autoResetExpanded = false,
|
15
|
+
columnFilterDisplayMode = 'subheader',
|
16
|
+
columnResizeMode = 'onChange',
|
17
|
+
createDisplayMode = 'modal',
|
18
|
+
defaultColumn,
|
19
|
+
defaultDisplayColumn,
|
20
|
+
editDisplayMode = 'modal',
|
21
|
+
enableBottomToolbar = true,
|
22
|
+
enableColumnActions = true,
|
23
|
+
enableColumnFilters = true,
|
24
|
+
enableColumnOrdering = false,
|
25
|
+
enableColumnPinning = false,
|
26
|
+
enableColumnResizing = false,
|
27
|
+
enableDensityToggle = true,
|
28
|
+
enableExpandAll = true,
|
29
|
+
enableExpanding,
|
30
|
+
enableFilterMatchHighlighting = true,
|
31
|
+
enableFilters = true,
|
32
|
+
enableFullScreenToggle = true,
|
33
|
+
enableGlobalFilter = true,
|
34
|
+
enableGlobalFilterRankedResults = true,
|
35
|
+
enableGrouping = false,
|
36
|
+
enableHiding = true,
|
37
|
+
enableMultiRowSelection = true,
|
38
|
+
enableMultiSort = true,
|
39
|
+
enablePagination = true,
|
40
|
+
enableRowPinning = false,
|
41
|
+
enableRowSelection = false,
|
42
|
+
enableSelectAll = true,
|
43
|
+
enableSorting = true,
|
44
|
+
enableStickyHeader = false,
|
45
|
+
enableTableFooter = true,
|
46
|
+
enableTableHead = true,
|
47
|
+
enableToolbarInternalActions = true,
|
48
|
+
enableTopToolbar = true,
|
49
|
+
filterFns,
|
50
|
+
icons,
|
51
|
+
layoutMode = 'semantic',
|
52
|
+
localization,
|
53
|
+
manualFiltering,
|
54
|
+
manualGrouping,
|
55
|
+
manualPagination,
|
56
|
+
manualSorting,
|
57
|
+
paginationDisplayMode = 'default',
|
58
|
+
positionActionsColumn = 'first',
|
59
|
+
positionExpandColumn = 'first',
|
60
|
+
positionGlobalFilter = 'right',
|
61
|
+
positionPagination = 'bottom',
|
62
|
+
positionToolbarAlertBanner = 'top',
|
63
|
+
positionToolbarDropZone = 'top',
|
64
|
+
rowNumberMode = 'static',
|
65
|
+
rowPinningDisplayMode = 'sticky',
|
66
|
+
selectAllMode = 'page',
|
67
|
+
sortingFns,
|
68
|
+
...rest
|
69
|
+
}: MRT_TableOptions<TData>) => {
|
70
|
+
const _icons = useMemo(() => ({ ...MRT_Default_Icons, ...icons }), [icons]);
|
71
|
+
const _localization = useMemo(
|
72
|
+
() => ({
|
73
|
+
...MRT_Localization_EN,
|
74
|
+
...localization,
|
75
|
+
}),
|
76
|
+
[localization],
|
77
|
+
);
|
78
|
+
const _aggregationFns = useMemo(
|
79
|
+
() => ({ ...MRT_AggregationFns, ...aggregationFns }),
|
80
|
+
[],
|
81
|
+
);
|
82
|
+
const _filterFns = useMemo(() => ({ ...MRT_FilterFns, ...filterFns }), []);
|
83
|
+
const _sortingFns = useMemo(() => ({ ...MRT_SortingFns, ...sortingFns }), []);
|
84
|
+
const _defaultColumn = useMemo(
|
85
|
+
() => ({ ...MRT_DefaultColumn, ...defaultColumn }),
|
86
|
+
[defaultColumn],
|
87
|
+
);
|
88
|
+
const _defaultDisplayColumn = useMemo(
|
89
|
+
() => ({
|
90
|
+
...MRT_DefaultDisplayColumn,
|
91
|
+
...defaultDisplayColumn,
|
92
|
+
}),
|
93
|
+
[defaultDisplayColumn],
|
94
|
+
);
|
95
|
+
|
96
|
+
if (rest.enableRowVirtualization || rest.enableColumnVirtualization) {
|
97
|
+
layoutMode = 'grid';
|
98
|
+
}
|
99
|
+
|
100
|
+
if (rest.enableRowVirtualization) {
|
101
|
+
enableStickyHeader = true;
|
102
|
+
}
|
103
|
+
|
104
|
+
if (enablePagination === false && manualPagination === undefined) {
|
105
|
+
manualPagination = true;
|
106
|
+
}
|
107
|
+
|
108
|
+
if (!rest.data?.length) {
|
109
|
+
manualFiltering = true;
|
110
|
+
manualGrouping = true;
|
111
|
+
manualPagination = true;
|
112
|
+
manualSorting = true;
|
113
|
+
}
|
114
|
+
|
115
|
+
return {
|
116
|
+
aggregationFns: _aggregationFns,
|
117
|
+
autoResetExpanded,
|
118
|
+
columnFilterDisplayMode,
|
119
|
+
columnResizeMode,
|
120
|
+
createDisplayMode,
|
121
|
+
defaultColumn: _defaultColumn,
|
122
|
+
defaultDisplayColumn: _defaultDisplayColumn,
|
123
|
+
editDisplayMode,
|
124
|
+
enableBottomToolbar,
|
125
|
+
enableColumnActions,
|
126
|
+
enableColumnFilters,
|
127
|
+
enableColumnOrdering,
|
128
|
+
enableColumnPinning,
|
129
|
+
enableColumnResizing,
|
130
|
+
enableDensityToggle,
|
131
|
+
enableExpandAll,
|
132
|
+
enableExpanding,
|
133
|
+
enableFilterMatchHighlighting,
|
134
|
+
enableFilters,
|
135
|
+
enableFullScreenToggle,
|
136
|
+
enableGlobalFilter,
|
137
|
+
enableGlobalFilterRankedResults,
|
138
|
+
enableGrouping,
|
139
|
+
enableHiding,
|
140
|
+
enableMultiRowSelection,
|
141
|
+
enableMultiSort,
|
142
|
+
enablePagination,
|
143
|
+
enableRowPinning,
|
144
|
+
enableRowSelection,
|
145
|
+
enableSelectAll,
|
146
|
+
enableSorting,
|
147
|
+
enableStickyHeader,
|
148
|
+
enableTableFooter,
|
149
|
+
enableTableHead,
|
150
|
+
enableToolbarInternalActions,
|
151
|
+
enableTopToolbar,
|
152
|
+
filterFns: _filterFns,
|
153
|
+
icons: _icons,
|
154
|
+
layoutMode,
|
155
|
+
localization: _localization,
|
156
|
+
manualFiltering,
|
157
|
+
manualGrouping,
|
158
|
+
manualPagination,
|
159
|
+
manualSorting,
|
160
|
+
paginationDisplayMode,
|
161
|
+
positionActionsColumn,
|
162
|
+
positionExpandColumn,
|
163
|
+
positionGlobalFilter,
|
164
|
+
positionPagination,
|
165
|
+
positionToolbarAlertBanner,
|
166
|
+
positionToolbarDropZone,
|
167
|
+
rowNumberMode,
|
168
|
+
rowPinningDisplayMode,
|
169
|
+
selectAllMode,
|
170
|
+
sortingFns: _sortingFns,
|
171
|
+
...rest,
|
172
|
+
};
|
173
|
+
};
|
package/src/index.ts
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
export * from './MaterialReactTable';
|
2
|
+
export * from './aggregationFns';
|
3
|
+
export * from './body';
|
4
|
+
export * from './buttons';
|
5
|
+
export * from './column.utils';
|
6
|
+
export * from './filterFns';
|
7
|
+
export * from './footer';
|
8
|
+
export * from './head';
|
9
|
+
export * from './inputs';
|
10
|
+
export * from './menus';
|
11
|
+
export * from './modals';
|
12
|
+
export * from './sortingFns';
|
13
|
+
export * from './table';
|
14
|
+
export * from './toolbar';
|
15
|
+
export * from './types';
|
16
|
+
export * from './useMaterialReactTable';
|
@@ -7,60 +7,58 @@ import {
|
|
7
7
|
import TextField from '@mui/material/TextField';
|
8
8
|
import MenuItem from '@mui/material/MenuItem';
|
9
9
|
import { type TextFieldProps } from '@mui/material/TextField';
|
10
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
10
11
|
import { type MRT_Cell, type MRT_TableInstance } from '../types';
|
11
12
|
|
12
|
-
interface Props<TData extends Record<string, any
|
13
|
+
interface Props<TData extends Record<string, any>> {
|
13
14
|
cell: MRT_Cell<TData>;
|
14
15
|
table: MRT_TableInstance<TData>;
|
15
|
-
showLabel?: boolean;
|
16
16
|
}
|
17
17
|
|
18
|
-
export const MRT_EditCellTextField = <TData extends Record<string, any
|
18
|
+
export const MRT_EditCellTextField = <TData extends Record<string, any>>({
|
19
19
|
cell,
|
20
|
-
showLabel,
|
21
20
|
table,
|
22
21
|
}: Props<TData>) => {
|
23
22
|
const {
|
24
23
|
getState,
|
25
|
-
options: {
|
24
|
+
options: { createDisplayMode, editDisplayMode, muiEditTextFieldProps },
|
26
25
|
refs: { editInputRefs },
|
27
26
|
setEditingCell,
|
28
27
|
setEditingRow,
|
28
|
+
setCreatingRow,
|
29
29
|
} = table;
|
30
30
|
const { column, row } = cell;
|
31
31
|
const { columnDef } = column;
|
32
|
-
const { editingRow } = getState();
|
32
|
+
const { creatingRow, editingRow } = getState();
|
33
33
|
|
34
|
-
const
|
35
|
-
|
36
|
-
const
|
37
|
-
muiTableBodyCellEditTextFieldProps instanceof Function
|
38
|
-
? muiTableBodyCellEditTextFieldProps({ cell, column, row, table })
|
39
|
-
: muiTableBodyCellEditTextFieldProps;
|
34
|
+
const isCreating = creatingRow?.id === row.id;
|
35
|
+
const isEditing = editingRow?.id === row.id;
|
36
|
+
const isSelectEdit = columnDef.editVariant === 'select';
|
40
37
|
|
41
|
-
const
|
42
|
-
columnDef.muiTableBodyCellEditTextFieldProps instanceof Function
|
43
|
-
? columnDef.muiTableBodyCellEditTextFieldProps({
|
44
|
-
cell,
|
45
|
-
column,
|
46
|
-
row,
|
47
|
-
table,
|
48
|
-
})
|
49
|
-
: columnDef.muiTableBodyCellEditTextFieldProps;
|
38
|
+
const [value, setValue] = useState(() => cell.getValue<string>());
|
50
39
|
|
51
40
|
const textFieldProps: TextFieldProps = {
|
52
|
-
...
|
53
|
-
|
41
|
+
...parseFromValuesOrFunc(muiEditTextFieldProps, {
|
42
|
+
cell,
|
43
|
+
column,
|
44
|
+
row,
|
45
|
+
table,
|
46
|
+
}),
|
47
|
+
...parseFromValuesOrFunc(columnDef.muiEditTextFieldProps, {
|
48
|
+
cell,
|
49
|
+
column,
|
50
|
+
row,
|
51
|
+
table,
|
52
|
+
}),
|
54
53
|
};
|
55
54
|
|
56
|
-
const
|
57
|
-
|
58
|
-
|
59
|
-
if (
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
});
|
55
|
+
const saveInputValueToRowCache = (newValue: string) => {
|
56
|
+
//@ts-ignore
|
57
|
+
row._valuesCache[column.id] = newValue;
|
58
|
+
if (isCreating) {
|
59
|
+
setCreatingRow({ ...row });
|
60
|
+
} else if (isEditing) {
|
61
|
+
setEditingRow({ ...row });
|
64
62
|
}
|
65
63
|
};
|
66
64
|
|
@@ -68,19 +66,19 @@ export const MRT_EditCellTextField = <TData extends Record<string, any> = {}>({
|
|
68
66
|
textFieldProps.onChange?.(event);
|
69
67
|
setValue(event.target.value);
|
70
68
|
if (textFieldProps?.select) {
|
71
|
-
|
69
|
+
saveInputValueToRowCache(event.target.value);
|
72
70
|
}
|
73
71
|
};
|
74
72
|
|
75
73
|
const handleBlur = (event: FocusEvent<HTMLInputElement>) => {
|
76
74
|
textFieldProps.onBlur?.(event);
|
77
|
-
|
75
|
+
saveInputValueToRowCache(value);
|
78
76
|
setEditingCell(null);
|
79
77
|
};
|
80
78
|
|
81
79
|
const handleEnterKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {
|
82
80
|
textFieldProps.onKeyDown?.(event);
|
83
|
-
if (event.key === 'Enter') {
|
81
|
+
if (event.key === 'Enter' && !event.shiftKey) {
|
84
82
|
editInputRefs.current[column.id]?.blur();
|
85
83
|
}
|
86
84
|
};
|
@@ -91,11 +89,7 @@ export const MRT_EditCellTextField = <TData extends Record<string, any> = {}>({
|
|
91
89
|
|
92
90
|
return (
|
93
91
|
<TextField
|
94
|
-
disabled={
|
95
|
-
(columnDef.enableEditing instanceof Function
|
96
|
-
? columnDef.enableEditing(row)
|
97
|
-
: columnDef.enableEditing) === false
|
98
|
-
}
|
92
|
+
disabled={parseFromValuesOrFunc(columnDef.enableEditing, row) === false}
|
99
93
|
fullWidth
|
100
94
|
inputRef={(inputRef) => {
|
101
95
|
if (inputRef) {
|
@@ -105,10 +99,22 @@ export const MRT_EditCellTextField = <TData extends Record<string, any> = {}>({
|
|
105
99
|
}
|
106
100
|
}
|
107
101
|
}}
|
108
|
-
label={
|
102
|
+
label={
|
103
|
+
['modal', 'custom'].includes(
|
104
|
+
(isCreating ? createDisplayMode : editDisplayMode) as string,
|
105
|
+
)
|
106
|
+
? column.columnDef.header
|
107
|
+
: undefined
|
108
|
+
}
|
109
109
|
margin="none"
|
110
110
|
name={column.id}
|
111
|
-
placeholder={
|
111
|
+
placeholder={
|
112
|
+
!['modal', 'custom'].includes(
|
113
|
+
(isCreating ? createDisplayMode : editDisplayMode) as string,
|
114
|
+
)
|
115
|
+
? columnDef.header
|
116
|
+
: undefined
|
117
|
+
}
|
112
118
|
select={isSelectEdit}
|
113
119
|
value={value}
|
114
120
|
variant="standard"
|
@@ -1,42 +1,35 @@
|
|
1
1
|
import Checkbox from '@mui/material/Checkbox';
|
2
2
|
import FormControlLabel from '@mui/material/FormControlLabel';
|
3
3
|
import Tooltip from '@mui/material/Tooltip';
|
4
|
-
import { type CheckboxProps } from '@mui/material/Checkbox';
|
5
4
|
import { type MRT_Column, type MRT_TableInstance } from '../types';
|
5
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
6
6
|
|
7
|
-
interface Props {
|
8
|
-
column: MRT_Column
|
9
|
-
table: MRT_TableInstance
|
7
|
+
interface Props<TData extends Record<string, any>> {
|
8
|
+
column: MRT_Column<TData>;
|
9
|
+
table: MRT_TableInstance<TData>;
|
10
10
|
}
|
11
11
|
|
12
|
-
export const MRT_FilterCheckbox =
|
12
|
+
export const MRT_FilterCheckbox = <TData extends Record<string, any>>({
|
13
|
+
column,
|
14
|
+
table,
|
15
|
+
}: Props<TData>) => {
|
13
16
|
const {
|
14
17
|
getState,
|
15
|
-
options: { localization,
|
18
|
+
options: { localization, muiFilterCheckboxProps },
|
16
19
|
} = table;
|
17
20
|
const { density } = getState();
|
18
21
|
const { columnDef } = column;
|
19
22
|
|
20
|
-
const mTableHeadCellFilterCheckboxProps =
|
21
|
-
muiTableHeadCellFilterCheckboxProps instanceof Function
|
22
|
-
? muiTableHeadCellFilterCheckboxProps({
|
23
|
-
column,
|
24
|
-
table,
|
25
|
-
})
|
26
|
-
: muiTableHeadCellFilterCheckboxProps;
|
27
|
-
|
28
|
-
const mcTableHeadCellFilterCheckboxProps =
|
29
|
-
columnDef.muiTableHeadCellFilterCheckboxProps instanceof Function
|
30
|
-
? columnDef.muiTableHeadCellFilterCheckboxProps({
|
31
|
-
column,
|
32
|
-
table,
|
33
|
-
})
|
34
|
-
: columnDef.muiTableHeadCellFilterCheckboxProps;
|
35
|
-
|
36
23
|
const checkboxProps = {
|
37
|
-
...
|
38
|
-
|
39
|
-
|
24
|
+
...parseFromValuesOrFunc(muiFilterCheckboxProps, {
|
25
|
+
column,
|
26
|
+
table,
|
27
|
+
}),
|
28
|
+
...parseFromValuesOrFunc(columnDef.muiFilterCheckboxProps, {
|
29
|
+
column,
|
30
|
+
table,
|
31
|
+
}),
|
32
|
+
};
|
40
33
|
|
41
34
|
const filterLabel = localization.filterByColumn?.replace(
|
42
35
|
'{column}',
|
@@ -77,9 +70,7 @@ export const MRT_FilterCheckbox = ({ column, table }: Props) => {
|
|
77
70
|
sx={(theme) => ({
|
78
71
|
height: '2.5rem',
|
79
72
|
width: '2.5rem',
|
80
|
-
...(checkboxProps?.sx
|
81
|
-
? checkboxProps.sx(theme)
|
82
|
-
: (checkboxProps?.sx as any)),
|
73
|
+
...(parseFromValuesOrFunc(checkboxProps?.sx, theme) as any),
|
83
74
|
})}
|
84
75
|
/>
|
85
76
|
}
|
@@ -2,12 +2,15 @@ import Box from '@mui/material/Box';
|
|
2
2
|
import { MRT_FilterTextField } from './MRT_FilterTextField';
|
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_FilterRangeFields =
|
10
|
+
export const MRT_FilterRangeFields = <TData extends Record<string, any>>({
|
11
|
+
header,
|
12
|
+
table,
|
13
|
+
}: Props<TData>) => {
|
11
14
|
return (
|
12
15
|
<Box sx={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '1rem' }}>
|
13
16
|
<MRT_FilterTextField header={header} rangeFilterIndex={0} table={table} />
|
@@ -1,21 +1,21 @@
|
|
1
|
-
import Slider
|
1
|
+
import Slider from '@mui/material/Slider';
|
2
2
|
import Stack from '@mui/material/Stack';
|
3
3
|
import FormHelperText from '@mui/material/FormHelperText';
|
4
4
|
import { type MRT_TableInstance, type MRT_Header } from '../types';
|
5
5
|
import { useEffect, useRef, useState } from 'react';
|
6
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
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_FilterRangeSlider =
|
13
|
+
export const MRT_FilterRangeSlider = <TData extends Record<string, any>>({
|
14
|
+
header,
|
15
|
+
table,
|
16
|
+
}: Props<TData>) => {
|
13
17
|
const {
|
14
|
-
options: {
|
15
|
-
localization,
|
16
|
-
muiTableHeadCellFilterSliderProps,
|
17
|
-
enableColumnFilterModes,
|
18
|
-
},
|
18
|
+
options: { localization, muiFilterSliderProps, enableColumnFilterModes },
|
19
19
|
refs: { filterInputRefs },
|
20
20
|
} = table;
|
21
21
|
const { column } = header;
|
@@ -26,26 +26,10 @@ export const MRT_FilterRangeSlider = ({ header, table }: Props) => {
|
|
26
26
|
const showChangeModeButton =
|
27
27
|
enableColumnFilterModes && columnDef.enableColumnFilterModes !== false;
|
28
28
|
|
29
|
-
const mTableHeadCellFilterTextFieldProps =
|
30
|
-
muiTableHeadCellFilterSliderProps instanceof Function
|
31
|
-
? muiTableHeadCellFilterSliderProps({
|
32
|
-
column,
|
33
|
-
table,
|
34
|
-
})
|
35
|
-
: muiTableHeadCellFilterSliderProps;
|
36
|
-
|
37
|
-
const mcTableHeadCellFilterTextFieldProps =
|
38
|
-
columnDef.muiTableHeadCellFilterSliderProps instanceof Function
|
39
|
-
? columnDef.muiTableHeadCellFilterSliderProps({
|
40
|
-
column,
|
41
|
-
table,
|
42
|
-
})
|
43
|
-
: columnDef.muiTableHeadCellFilterSliderProps;
|
44
|
-
|
45
29
|
const sliderProps = {
|
46
|
-
...
|
47
|
-
...
|
48
|
-
}
|
30
|
+
...parseFromValuesOrFunc(muiFilterSliderProps, { column, table }),
|
31
|
+
...parseFromValuesOrFunc(columnDef.muiFilterSliderProps, { column, table }),
|
32
|
+
};
|
49
33
|
|
50
34
|
let [min, max] =
|
51
35
|
sliderProps.min !== undefined && sliderProps.max !== undefined
|
@@ -115,9 +99,7 @@ export const MRT_FilterRangeSlider = ({ header, table }: Props) => {
|
|
115
99
|
mt: !showChangeModeButton ? '10px' : '6px',
|
116
100
|
px: '4px',
|
117
101
|
width: 'calc(100% - 8px)',
|
118
|
-
...(sliderProps?.sx
|
119
|
-
? sliderProps.sx(theme)
|
120
|
-
: (sliderProps?.sx as any)),
|
102
|
+
...(parseFromValuesOrFunc(sliderProps?.sx, theme) as any),
|
121
103
|
})}
|
122
104
|
/>
|
123
105
|
{showChangeModeButton ? (
|
@@ -19,18 +19,19 @@ import { debounce } from '@mui/material/utils';
|
|
19
19
|
import { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';
|
20
20
|
import { type TextFieldProps } from '@mui/material/TextField';
|
21
21
|
import { type MRT_Header, type MRT_TableInstance } from '../types';
|
22
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
22
23
|
|
23
|
-
interface Props {
|
24
|
-
header: MRT_Header
|
24
|
+
interface Props<TData extends Record<string, any>> {
|
25
|
+
header: MRT_Header<TData>;
|
25
26
|
rangeFilterIndex?: number;
|
26
|
-
table: MRT_TableInstance
|
27
|
+
table: MRT_TableInstance<TData>;
|
27
28
|
}
|
28
29
|
|
29
|
-
export const MRT_FilterTextField = ({
|
30
|
+
export const MRT_FilterTextField = <TData extends Record<string, any>>({
|
30
31
|
header,
|
31
32
|
rangeFilterIndex,
|
32
33
|
table,
|
33
|
-
}: Props) => {
|
34
|
+
}: Props<TData>) => {
|
34
35
|
const {
|
35
36
|
options: {
|
36
37
|
enableColumnFilterModes,
|
@@ -38,7 +39,7 @@ export const MRT_FilterTextField = ({
|
|
38
39
|
icons: { FilterListIcon, CloseIcon },
|
39
40
|
localization,
|
40
41
|
manualFiltering,
|
41
|
-
|
42
|
+
muiFilterTextFieldProps,
|
42
43
|
},
|
43
44
|
refs: { filterInputRefs },
|
44
45
|
setColumnFilterFns,
|
@@ -46,28 +47,13 @@ export const MRT_FilterTextField = ({
|
|
46
47
|
const { column } = header;
|
47
48
|
const { columnDef } = column;
|
48
49
|
|
49
|
-
const
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
: muiTableHeadCellFilterTextFieldProps;
|
57
|
-
|
58
|
-
const mcTableHeadCellFilterTextFieldProps =
|
59
|
-
columnDef.muiTableHeadCellFilterTextFieldProps instanceof Function
|
60
|
-
? columnDef.muiTableHeadCellFilterTextFieldProps({
|
61
|
-
column,
|
62
|
-
table,
|
63
|
-
rangeFilterIndex,
|
64
|
-
})
|
65
|
-
: columnDef.muiTableHeadCellFilterTextFieldProps;
|
66
|
-
|
67
|
-
const textFieldProps = {
|
68
|
-
...mTableHeadCellFilterTextFieldProps,
|
69
|
-
...mcTableHeadCellFilterTextFieldProps,
|
70
|
-
} as TextFieldProps;
|
50
|
+
const textFieldProps: TextFieldProps = {
|
51
|
+
...parseFromValuesOrFunc(muiFilterTextFieldProps, { column, table }),
|
52
|
+
...parseFromValuesOrFunc(columnDef.muiFilterTextFieldProps, {
|
53
|
+
column,
|
54
|
+
table,
|
55
|
+
}),
|
56
|
+
};
|
71
57
|
|
72
58
|
const isRangeFilter =
|
73
59
|
columnDef.filterVariant === 'range' || rangeFilterIndex !== undefined;
|
@@ -109,9 +95,9 @@ export const MRT_FilterTextField = ({
|
|
109
95
|
() =>
|
110
96
|
columnDef.filterSelectOptions ??
|
111
97
|
((isSelectFilter || isMultiSelectFilter) && facetedUniqueValues
|
112
|
-
? Array.from(facetedUniqueValues.keys())
|
113
|
-
|
114
|
-
|
98
|
+
? Array.from(facetedUniqueValues.keys())
|
99
|
+
.filter((value) => value !== null && value !== undefined)
|
100
|
+
.sort((a, b) => a.localeCompare(b))
|
115
101
|
: undefined),
|
116
102
|
[
|
117
103
|
columnDef.filterSelectOptions,
|
@@ -358,9 +344,7 @@ export const MRT_FilterTextField = ({
|
|
358
344
|
'& .MuiSelect-icon': {
|
359
345
|
mr: '1.5rem',
|
360
346
|
},
|
361
|
-
...(textFieldProps?.sx
|
362
|
-
? textFieldProps.sx(theme)
|
363
|
-
: (textFieldProps?.sx as any)),
|
347
|
+
...(parseFromValuesOrFunc(textFieldProps?.sx, theme) as any),
|
364
348
|
})}
|
365
349
|
>
|
366
350
|
{(isSelectFilter || isMultiSelectFilter) && (
|
@@ -14,14 +14,13 @@ import Tooltip from '@mui/material/Tooltip';
|
|
14
14
|
import { debounce } from '@mui/material/utils';
|
15
15
|
import { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';
|
16
16
|
import { type MRT_TableInstance } from '../types';
|
17
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
17
18
|
|
18
|
-
interface Props<TData extends Record<string, any
|
19
|
+
interface Props<TData extends Record<string, any>> {
|
19
20
|
table: MRT_TableInstance<TData>;
|
20
21
|
}
|
21
22
|
|
22
|
-
export const MRT_GlobalFilterTextField = <
|
23
|
-
TData extends Record<string, any> = {},
|
24
|
-
>({
|
23
|
+
export const MRT_GlobalFilterTextField = <TData extends Record<string, any>>({
|
25
24
|
table,
|
26
25
|
}: Props<TData>) => {
|
27
26
|
const {
|
@@ -38,10 +37,9 @@ export const MRT_GlobalFilterTextField = <
|
|
38
37
|
} = table;
|
39
38
|
const { globalFilter, showGlobalFilter } = getState();
|
40
39
|
|
41
|
-
const textFieldProps =
|
42
|
-
|
43
|
-
|
44
|
-
: muiSearchTextFieldProps;
|
40
|
+
const textFieldProps = parseFromValuesOrFunc(muiSearchTextFieldProps, {
|
41
|
+
table,
|
42
|
+
});
|
45
43
|
|
46
44
|
const isMounted = useRef(false);
|
47
45
|
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
|