material-react-table 0.1.0 → 0.2.0

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.
Files changed (78) hide show
  1. package/dist/MaterialReactTable.d.ts +51 -20
  2. package/dist/{MRT_TableBody.d.ts → body/MRT_TableBody.d.ts} +0 -0
  3. package/dist/{MRT_TableBodyCell.d.ts → body/MRT_TableBodyCell.d.ts} +1 -1
  4. package/dist/{MRT_TableBodyRow.d.ts → body/MRT_TableBodyRow.d.ts} +1 -1
  5. package/dist/{MRT_TableDetailPanel.d.ts → body/MRT_TableDetailPanel.d.ts} +1 -1
  6. package/dist/buttons/MRT_ExpandAllButton.d.ts +5 -0
  7. package/dist/{MRT_TableExpandButton.d.ts → buttons/MRT_ExpandButton.d.ts} +2 -2
  8. package/dist/buttons/MRT_ShowHideColumnsButton.d.ts +5 -0
  9. package/dist/buttons/MRT_ToggleColumnActionMenuButton.d.ts +7 -0
  10. package/dist/{MRT_TableFooter.d.ts → footer/MRT_TableFooter.d.ts} +0 -0
  11. package/dist/{MRT_TableFooterCell.d.ts → footer/MRT_TableFooterCell.d.ts} +0 -0
  12. package/dist/{MRT_TableFooterRow.d.ts → footer/MRT_TableFooterRow.d.ts} +1 -1
  13. package/dist/{MRT_TablePagination.d.ts → footer/MRT_TablePagination.d.ts} +0 -0
  14. package/dist/{MRT_TableHead.d.ts → head/MRT_TableHead.d.ts} +0 -0
  15. package/dist/{MRT_TableHeadCell.d.ts → head/MRT_TableHeadCell.d.ts} +1 -0
  16. package/dist/{MRT_TableHeadRow.d.ts → head/MRT_TableHeadRow.d.ts} +1 -1
  17. package/dist/inputs/MRT_FilterTextField.d.ts +7 -0
  18. package/dist/inputs/MRT_SearchTextField.d.ts +5 -0
  19. package/dist/inputs/MRT_SelectAllCheckbox.d.ts +2 -0
  20. package/dist/inputs/MRT_SelectCheckbox.d.ts +7 -0
  21. package/dist/material-react-table.cjs.development.js +755 -82
  22. package/dist/material-react-table.cjs.development.js.map +1 -1
  23. package/dist/material-react-table.cjs.production.min.js +1 -1
  24. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  25. package/dist/material-react-table.esm.js +759 -86
  26. package/dist/material-react-table.esm.js.map +1 -1
  27. package/dist/menus/MRT_ColumnActionMenu.d.ts +9 -0
  28. package/dist/menus/MRT_ShowHideColumnsMenu.d.ts +7 -0
  29. package/dist/{MRT_Table.d.ts → table/MRT_Table.d.ts} +0 -0
  30. package/dist/{MRT_TableContainer.d.ts → table/MRT_TableContainer.d.ts} +0 -0
  31. package/dist/table/MRT_TableSpacerCell.d.ts +6 -0
  32. package/dist/toolbar/MRT_Toolbar.d.ts +5 -0
  33. package/dist/useMaterialReactTable.d.ts +7 -10
  34. package/dist/utils/localization.d.ts +15 -0
  35. package/dist/utils/overrideWarnings.d.ts +1 -0
  36. package/dist/utils/useMRTCalcs.d.ts +11 -0
  37. package/package.json +13 -11
  38. package/src/MaterialReactTable.tsx +117 -31
  39. package/src/body/MRT_TableBody.tsx +57 -0
  40. package/src/{MRT_TableBodyCell.tsx → body/MRT_TableBodyCell.tsx} +11 -1
  41. package/src/body/MRT_TableBodyRow.tsx +56 -0
  42. package/src/{MRT_TableDetailPanel.tsx → body/MRT_TableDetailPanel.tsx} +15 -4
  43. package/src/buttons/MRT_ExpandAllButton.tsx +40 -0
  44. package/src/buttons/MRT_ExpandButton.tsx +39 -0
  45. package/src/buttons/MRT_ShowHideColumnsButton.tsx +43 -0
  46. package/src/buttons/MRT_ToggleColumnActionMenuButton.tsx +49 -0
  47. package/src/footer/MRT_TableFooter.tsx +36 -0
  48. package/src/{MRT_TableFooterCell.tsx → footer/MRT_TableFooterCell.tsx} +8 -0
  49. package/src/footer/MRT_TableFooterRow.tsx +44 -0
  50. package/src/{MRT_TablePagination.tsx → footer/MRT_TablePagination.tsx} +7 -2
  51. package/src/head/MRT_TableHead.tsx +38 -0
  52. package/src/head/MRT_TableHeadCell.tsx +94 -0
  53. package/src/head/MRT_TableHeadRow.tsx +63 -0
  54. package/src/inputs/MRT_FilterTextField.tsx +59 -0
  55. package/src/inputs/MRT_SearchTextField.tsx +65 -0
  56. package/src/inputs/MRT_SelectAllCheckbox.tsx +15 -0
  57. package/src/inputs/MRT_SelectCheckbox.tsx +26 -0
  58. package/src/menus/MRT_ColumnActionMenu.tsx +82 -0
  59. package/src/menus/MRT_ShowHideColumnsMenu.tsx +34 -0
  60. package/src/table/MRT_Table.tsx +21 -0
  61. package/src/{MRT_TableContainer.tsx → table/MRT_TableContainer.tsx} +4 -2
  62. package/src/table/MRT_TableSpacerCell.tsx +10 -0
  63. package/src/toolbar/MRT_Toolbar.tsx +39 -0
  64. package/src/useMaterialReactTable.tsx +45 -23
  65. package/src/utils/localization.ts +29 -0
  66. package/src/utils/overrideWarnings.ts +41 -0
  67. package/src/utils/useMRTCalcs.tsx +42 -0
  68. package/dist/defaults.d.ts +0 -2
  69. package/src/MRT_Table.tsx +0 -20
  70. package/src/MRT_TableBody.tsx +0 -19
  71. package/src/MRT_TableBodyRow.tsx +0 -27
  72. package/src/MRT_TableExpandButton.tsx +0 -25
  73. package/src/MRT_TableFooter.tsx +0 -31
  74. package/src/MRT_TableFooterRow.tsx +0 -22
  75. package/src/MRT_TableHead.tsx +0 -25
  76. package/src/MRT_TableHeadCell.tsx +0 -27
  77. package/src/MRT_TableHeadRow.tsx +0 -22
  78. package/src/defaults.ts +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"material-react-table.esm.js","sources":["../src/defaults.ts","../src/useMaterialReactTable.tsx","../src/MRT_TableHeadCell.tsx","../src/MRT_TableHeadRow.tsx","../src/MRT_TablePagination.tsx","../src/MRT_TableHead.tsx","../src/MRT_TableBodyCell.tsx","../src/MRT_TableDetailPanel.tsx","../src/MRT_TableExpandButton.tsx","../src/MRT_TableBodyRow.tsx","../src/MRT_TableBody.tsx","../src/MRT_TableFooterCell.tsx","../src/MRT_TableFooterRow.tsx","../src/MRT_TableFooter.tsx","../src/MRT_Table.tsx","../src/MRT_TableContainer.tsx","../src/MaterialReactTable.tsx"],"sourcesContent":["import { MaterialReactTableOptions } from '.';\n\nexport const defaultOptions: MaterialReactTableOptions = {\n enableFilters: false,\n enablePagination: 'bottom',\n enableSearch: true,\n enableSorting: true,\n showFooter: true,\n showHead: true,\n showToolbar: true,\n};\n","import React, { createContext, FC, useContext } from 'react';\nimport {\n TableInstance,\n useExpanded,\n usePagination,\n useSortBy,\n useTable,\n} from 'react-table';\nimport {\n MaterialReactTableOptionalProps,\n MaterialReactTableOptions,\n MaterialReactTableProps,\n} from '.';\nimport { defaultOptions } from './defaults';\n\ninterface IUseMaterialReactTable extends MaterialReactTableOptionalProps {\n tableInstance: TableInstance<object>;\n options: MaterialReactTableOptions;\n}\n\nconst MaterialReactTableContext = createContext<IUseMaterialReactTable>(\n {} as IUseMaterialReactTable,\n);\n\ninterface ProviderProps extends MaterialReactTableProps {\n children: React.ReactNode;\n}\n\nexport const MaterialReactTableProvider: FC<ProviderProps> = ({\n children,\n columns,\n data,\n options,\n ...rest\n}) => {\n const tableInstance = useTable(\n { columns, data },\n useSortBy,\n useExpanded,\n usePagination,\n );\n\n return (\n <MaterialReactTableContext.Provider\n value={{\n options: { ...defaultOptions, ...options },\n tableInstance,\n ...rest,\n }}\n >\n {children}\n </MaterialReactTableContext.Provider>\n );\n};\n\nexport const useMaterialReactTable = (): IUseMaterialReactTable =>\n useContext(MaterialReactTableContext);\n","import React, { FC } from 'react';\nimport { TableCell, TableSortLabel } from '@mui/material';\nimport { HeaderGroup } from 'react-table';\n\ninterface Props {\n column: HeaderGroup;\n}\n\nexport const MRT_TableHeadCell: FC<Props> = ({ column }) => {\n const isParentHeader = (column?.columns?.length ?? 0) > 0;\n\n return (\n <TableCell\n align={isParentHeader ? 'center' : 'left'}\n style={{ fontWeight: 'bold !important' }}\n variant=\"head\"\n {...column.getHeaderProps(column.getSortByToggleProps())}\n >\n <TableSortLabel\n active={column.isSorted}\n direction={column.isSortedDesc && column.isSortedDesc ? 'desc' : 'asc'}\n >\n {column.render('Header')}\n </TableSortLabel>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { TableCell, TableRow } from '@mui/material';\nimport { HeaderGroup } from 'react-table';\nimport { MRT_TableHeadCell } from './MRT_TableHeadCell';\nimport { useMaterialReactTable } from './useMaterialReactTable';\n\ninterface Props {\n headerGroup: HeaderGroup<object>;\n}\n\nexport const MRT_TableHeadRow: FC<Props> = ({ headerGroup }) => {\n const { renderDetailPanel } = useMaterialReactTable();\n\n return (\n <TableRow {...headerGroup.getHeaderGroupProps()}>\n {renderDetailPanel && <TableCell style={{ width: '2rem' }} />}\n {headerGroup.headers.map((column, index) => (\n <MRT_TableHeadCell key={`${index}-${column.id}`} column={column} />\n ))}\n </TableRow>\n );\n};\n","import React, { ChangeEvent, FC } from 'react';\nimport { TablePagination, TableRow } from '@mui/material';\nimport { useMaterialReactTable } from './useMaterialReactTable';\n\ninterface Props {}\n\nexport const MRT_TablePagination: FC<Props> = () => {\n const { tableInstance, tablePaginationProps } = useMaterialReactTable();\n\n const handleChangeRowsPerPage = (event: ChangeEvent<HTMLInputElement>) => {\n tableInstance.setPageSize(+event.target.value);\n tableInstance.gotoPage(0);\n };\n\n return (\n <TableRow>\n <TablePagination\n colSpan={tableInstance.visibleColumns.length + 10}\n count={tableInstance.rows.length}\n onPageChange={(_, newPage) => tableInstance.gotoPage(newPage)}\n onRowsPerPageChange={handleChangeRowsPerPage}\n page={tableInstance.state.pageIndex}\n rowsPerPage={tableInstance.state.pageSize}\n showFirstButton={\n tableInstance.rows.length / tableInstance.state.pageSize > 2\n }\n showLastButton={\n tableInstance.rows.length / tableInstance.state.pageSize > 2\n }\n {...tablePaginationProps}\n />\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableHead } from '@mui/material';\nimport { MRT_TableHeadRow } from './MRT_TableHeadRow';\nimport { useMaterialReactTable } from './useMaterialReactTable';\nimport { MRT_TablePagination } from './MRT_TablePagination';\n\ninterface Props {}\n\nexport const MRT_TableHead: FC<Props> = () => {\n const { tableInstance, tableHeadProps, options } = useMaterialReactTable();\n\n return (\n <TableHead {...tableHeadProps}>\n {['top', 'both'].includes(options.enablePagination.toString()) && (\n <MRT_TablePagination />\n )}\n {tableInstance.headerGroups.map((headerGroup, index) => (\n <MRT_TableHeadRow\n key={`${index}-${headerGroup.id}`}\n headerGroup={headerGroup}\n />\n ))}\n </TableHead>\n );\n};\n","import React, { FC } from 'react';\nimport { TableCell } from '@mui/material';\nimport { Cell } from 'react-table';\n\ninterface Props {\n cell: Cell<object>;\n}\n\nexport const MRT_TableBodyCell: FC<Props> = ({ cell }) => {\n return (\n <TableCell variant=\"body\" {...cell.getCellProps()}>\n {cell.render('Cell')}\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse, TableCell, TableRow } from '@mui/material';\nimport { Row } from 'react-table';\nimport { useMaterialReactTable } from './useMaterialReactTable';\n\ninterface Props {\n row: Row<object>;\n}\n\nexport const MRT_TableDetailPanel: FC<Props> = ({ row }) => {\n const { tableInstance, renderDetailPanel } = useMaterialReactTable();\n\n return (\n <TableRow {...row.getToggleRowExpandedProps()}>\n <TableCell\n colSpan={tableInstance.visibleColumns.length + 10}\n style={{\n paddingBottom: row.isExpanded ? '1rem' : 0,\n paddingTop: row.isExpanded ? '1rem' : 0,\n transition: 'padding 0.2s',\n }}\n >\n <Collapse in={row.isExpanded}>{renderDetailPanel?.(row)}</Collapse>\n </TableCell>\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, TableCell } from '@mui/material';\nimport { Row } from 'react-table';\nimport ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';\n// import { useMaterialReactTable } from './useMaterialReactTable';\n\ninterface Props {\n row: Row<object>;\n}\n\nexport const MRT_TableExpandButton: FC<Props> = ({ row }) => {\n return (\n <TableCell style={{ width: '2rem' }} size=\"small\" variant=\"head\">\n <IconButton onClick={() => row.toggleRowExpanded()} size=\"small\">\n <ArrowForwardIosIcon\n fontSize=\"small\"\n style={{\n transform: row.isExpanded ? 'rotate(90deg)' : 'rotate(0)',\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { TableRow } from '@mui/material';\nimport { Row } from 'react-table';\nimport { MRT_TableBodyCell } from './MRT_TableBodyCell';\nimport { useMaterialReactTable } from './useMaterialReactTable';\nimport { MRT_TableDetailPanel } from './MRT_TableDetailPanel';\nimport { MRT_TableExpandButton } from './MRT_TableExpandButton';\n\ninterface Props {\n row: Row<object>;\n}\n\nexport const MRT_TableBodyRow: FC<Props> = ({ row }) => {\n const { renderDetailPanel } = useMaterialReactTable();\n\n return (\n <>\n <TableRow {...row.getRowProps()}>\n {renderDetailPanel && <MRT_TableExpandButton row={row} />}\n {row.cells.map((cell, index) => (\n <MRT_TableBodyCell key={`${index}-${cell.value}`} cell={cell} />\n ))}\n </TableRow>\n {renderDetailPanel && <MRT_TableDetailPanel row={row} />}\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { TableBody } from '@mui/material';\nimport { MRT_TableBodyRow } from './MRT_TableBodyRow';\nimport { useMaterialReactTable } from './useMaterialReactTable';\n\ninterface Props {}\n\nexport const MRT_TableBody: FC<Props> = () => {\n const { tableInstance } = useMaterialReactTable();\n\n return (\n <TableBody {...tableInstance.getTableBodyProps()}>\n {tableInstance.page.map((row, index) => {\n tableInstance.prepareRow(row);\n return <MRT_TableBodyRow key={`${index}-${row.id}`} row={row} />;\n })}\n </TableBody>\n );\n};\n","import React, { FC } from 'react';\nimport { styled, TableCell as MuiTableCell } from '@mui/material';\nimport { HeaderGroup } from 'react-table';\n\nconst TableCell = styled(MuiTableCell)({\n fontWeight: 'bold',\n});\n\ninterface Props {\n column: HeaderGroup;\n}\n\nexport const MRT_TableFooterCell: FC<Props> = ({ column }) => {\n const isParentHeader = (column?.columns?.length ?? 0) > 0;\n\n return (\n <TableCell\n align={isParentHeader ? 'center' : 'left'}\n variant=\"head\"\n {...column.getFooterProps()}\n >\n {column.render('Footer')}\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { TableCell, TableRow } from '@mui/material';\nimport { HeaderGroup } from 'react-table';\nimport { MRT_TableFooterCell } from './MRT_TableFooterCell';\nimport { useMaterialReactTable } from './useMaterialReactTable';\n\ninterface Props {\n footerGroup: HeaderGroup<object>;\n}\n\nexport const MRT_TableFooterRow: FC<Props> = ({ footerGroup }) => {\n const { renderDetailPanel } = useMaterialReactTable();\n\n return (\n <TableRow {...footerGroup.getFooterGroupProps()}>\n {renderDetailPanel && <TableCell style={{ width: '2rem' }} />}\n {footerGroup.headers.map((column, index) => (\n <MRT_TableFooterCell key={`${index}-${column.id}`} column={column} />\n ))}\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableFooter } from '@mui/material';\nimport { MRT_TableFooterRow } from './MRT_TableFooterRow';\nimport { useMaterialReactTable } from './useMaterialReactTable';\nimport { MRT_TablePagination } from './MRT_TablePagination';\n\ninterface Props {}\n\nexport const MRT_TableFooter: FC<Props> = () => {\n const { tableInstance, tableFooterProps, options } = useMaterialReactTable();\n\n const hasFooterGroups = tableInstance.columns.some(\n (c) => c.depth === 0 && !!c.Footer,\n );\n\n return (\n <TableFooter {...tableFooterProps}>\n {hasFooterGroups &&\n tableInstance.footerGroups.map((footerGroup, index) => (\n <MRT_TableFooterRow\n key={`${index}-${footerGroup.id}`}\n footerGroup={footerGroup}\n />\n ))}\n {options.enablePagination === true ||\n (['bottom', 'both'].includes(options.enablePagination.toString()) && (\n <MRT_TablePagination />\n ))}\n </TableFooter>\n );\n};\n","import React, { FC } from 'react';\nimport { Table } from '@mui/material';\nimport { MRT_TableHead } from './MRT_TableHead';\nimport { MRT_TableBody } from './MRT_TableBody';\nimport { MRT_TableFooter } from './MRT_TableFooter';\nimport { useMaterialReactTable } from './useMaterialReactTable';\n\ninterface Props {}\n\nexport const MRT_Table: FC<Props> = () => {\n const { tableInstance, tableProps, options } = useMaterialReactTable();\n\n return (\n <Table stickyHeader {...tableProps} {...tableInstance.getTableProps()}>\n {options.showHead && <MRT_TableHead />}\n <MRT_TableBody />\n {options.showFooter && <MRT_TableFooter />}\n </Table>\n );\n};\n","import React, { FC } from 'react';\nimport { Paper, TableContainer } from '@mui/material';\nimport { useMaterialReactTable } from './useMaterialReactTable';\nimport { MRT_Table } from './MRT_Table';\n\ninterface Props {}\n\nexport const MRT_TableContainer: FC<Props> = () => {\n const { tableContainerProps } = useMaterialReactTable();\n\n return (\n <TableContainer component={Paper} {...tableContainerProps}>\n <MRT_Table />\n </TableContainer>\n );\n};\n","import React, { FC } from 'react';\nimport {\n TableContainerProps,\n TableFooterProps,\n TableHeadProps,\n TablePaginationProps,\n TableProps,\n} from '@mui/material';\nimport { Column } from 'react-table';\nimport { MaterialReactTableProvider } from './useMaterialReactTable';\nimport { MRT_TableContainer } from './MRT_TableContainer';\nimport { defaultOptions } from './defaults';\n\nexport interface MaterialReactTableOptions {\n enableFilters: boolean;\n enablePagination: boolean | 'top' | 'bottom' | 'both' | 'none';\n enableSearch: boolean;\n enableSorting: boolean;\n showFooter: boolean;\n showHead: boolean;\n showToolbar: boolean;\n}\n\nexport interface MaterialReactTableOptionalProps {\n options?: Partial<MaterialReactTableOptions>;\n tableContainerProps?: TableContainerProps;\n tableFooterProps?: TableFooterProps;\n tableHeadProps?: TableHeadProps;\n tablePaginationProps?: TablePaginationProps;\n tableProps?: TableProps;\n renderDetailPanel?: (rowData: any) => React.ReactNode;\n}\n\nexport interface MaterialReactTableProps extends MaterialReactTableOptionalProps {\n columns: Column[];\n data: any[];\n}\n\nexport const MaterialReactTable: FC<MaterialReactTableProps> = ({\n options = defaultOptions,\n ...rest\n}) => {\n return (\n <MaterialReactTableProvider options={options} {...rest}>\n <MRT_TableContainer />\n </MaterialReactTableProvider>\n );\n};\n"],"names":["defaultOptions","enableFilters","enablePagination","enableSearch","enableSorting","showFooter","showHead","showToolbar","MaterialReactTableContext","createContext","MaterialReactTableProvider","children","columns","data","options","rest","tableInstance","useTable","useSortBy","useExpanded","usePagination","React","Provider","value","useMaterialReactTable","useContext","MRT_TableHeadCell","column","isParentHeader","length","TableCell","align","style","fontWeight","variant","getHeaderProps","getSortByToggleProps","TableSortLabel","active","isSorted","direction","isSortedDesc","render","MRT_TableHeadRow","headerGroup","renderDetailPanel","TableRow","getHeaderGroupProps","width","headers","map","index","key","id","MRT_TablePagination","tablePaginationProps","handleChangeRowsPerPage","event","setPageSize","target","gotoPage","TablePagination","colSpan","visibleColumns","count","rows","onPageChange","_","newPage","onRowsPerPageChange","page","state","pageIndex","rowsPerPage","pageSize","showFirstButton","showLastButton","MRT_TableHead","tableHeadProps","TableHead","includes","toString","headerGroups","MRT_TableBodyCell","cell","getCellProps","MRT_TableDetailPanel","row","getToggleRowExpandedProps","paddingBottom","isExpanded","paddingTop","transition","Collapse","MRT_TableExpandButton","size","IconButton","onClick","toggleRowExpanded","ArrowForwardIosIcon","fontSize","transform","MRT_TableBodyRow","getRowProps","cells","MRT_TableBody","TableBody","getTableBodyProps","prepareRow","styled","MuiTableCell","MRT_TableFooterCell","getFooterProps","MRT_TableFooterRow","footerGroup","getFooterGroupProps","MRT_TableFooter","tableFooterProps","hasFooterGroups","some","c","depth","Footer","TableFooter","footerGroups","MRT_Table","tableProps","Table","stickyHeader","getTableProps","MRT_TableContainer","tableContainerProps","TableContainer","component","Paper","MaterialReactTable"],"mappings":"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"}
1
+ {"version":3,"file":"material-react-table.esm.js","sources":["../src/utils/useMRTCalcs.tsx","../src/utils/overrideWarnings.ts","../src/useMaterialReactTable.tsx","../src/inputs/MRT_FilterTextField.tsx","../src/menus/MRT_ColumnActionMenu.tsx","../src/buttons/MRT_ToggleColumnActionMenuButton.tsx","../src/head/MRT_TableHeadCell.tsx","../src/inputs/MRT_SelectAllCheckbox.tsx","../src/buttons/MRT_ExpandAllButton.tsx","../src/menus/MRT_ShowHideColumnsMenu.tsx","../src/buttons/MRT_ShowHideColumnsButton.tsx","../src/table/MRT_TableSpacerCell.tsx","../src/head/MRT_TableHeadRow.tsx","../src/footer/MRT_TablePagination.tsx","../src/head/MRT_TableHead.tsx","../src/body/MRT_TableBodyCell.tsx","../src/body/MRT_TableDetailPanel.tsx","../src/buttons/MRT_ExpandButton.tsx","../src/inputs/MRT_SelectCheckbox.tsx","../src/body/MRT_TableBodyRow.tsx","../src/body/MRT_TableBody.tsx","../src/footer/MRT_TableFooterCell.tsx","../src/footer/MRT_TableFooterRow.tsx","../src/footer/MRT_TableFooter.tsx","../src/table/MRT_Table.tsx","../src/inputs/MRT_SearchTextField.tsx","../src/toolbar/MRT_Toolbar.tsx","../src/table/MRT_TableContainer.tsx","../src/utils/localization.ts","../src/MaterialReactTable.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { TableInstance } from 'react-table';\n\nexport interface UseMRTCalcs {\n anyRowsCanExpand: boolean;\n anyRowsExpanded: boolean;\n maxColumnDepth: number;\n}\n\ninterface Props<D extends {}> {\n tableInstance: TableInstance<D>;\n}\n\nexport const useMRTCalcs = <D extends {}>({\n tableInstance,\n}: Props<D>): UseMRTCalcs => {\n const anyRowsCanExpand = useMemo(\n () => tableInstance.rows.some((row) => row.canExpand),\n [tableInstance.rows],\n );\n\n const anyRowsExpanded = useMemo(\n () => tableInstance.rows.some((row) => row.isExpanded),\n [tableInstance.rows],\n );\n\n const maxColumnDepth = useMemo(() => {\n let maxDepth = 1;\n tableInstance.columns.forEach((column) => {\n if (column.columns?.length) {\n maxDepth = Math.max(maxDepth, column.columns.length);\n }\n });\n return maxDepth - 1;\n }, [tableInstance.columns]);\n\n return {\n anyRowsCanExpand,\n anyRowsExpanded,\n maxColumnDepth,\n };\n};\n","export const showOverrideWarnings = (props: any) => {\n if (props.OverrideTableBodyCellComponent) {\n showWarning('TableCell', 'props');\n }\n if (props.OverrideTableBodyComponent) {\n showWarning('TableBody', 'tableBodyProps');\n }\n if (props.OverrideTableBodyRowComponent) {\n showWarning('TableRow', 'props');\n }\n if (props.OverrideTableDetailPanelComponent) {\n showWarning('Detail Panel', 'tableDetailPanelProps');\n }\n if (props.OverrideTableFooterComponent) {\n showWarning('TableFooter', 'tableFooterProps');\n }\n if (props.OverrideTableFooterCellComponent) {\n showWarning('TableCell', 'props');\n }\n if (props.OverrideTableFooterRowComponent) {\n showWarning('TableRow', 'props');\n }\n if (props.OverrideTableHeadComponent) {\n showWarning('TableHead', 'tableHeadProps');\n }\n if (props.OverrideTableHeadRowComponent) {\n showWarning('TableRow', 'props');\n }\n if (props.OverrideTablePaginationComponent) {\n showWarning('', 'props');\n }\n if (props.OverrideTableToolbarComponent) {\n showWarning('TableBodyCell', 'props');\n }\n};\n\nconst showWarning = (componentName: string, propsName: string) => {\n console.warn(\n `Caution.\\nYou are overriding the built-in Mui ${componentName} Component in material-react-table.\\n\\nYou should only use this as a last resort!\\n\\nConsider customizing the Mui ${componentName} Component instead with ${propsName}.`,\n );\n};\n","import React, {\n Context,\n createContext,\n PropsWithChildren,\n useContext,\n} from 'react';\nimport {\n TableInstance,\n useExpanded,\n useFilters,\n useFlexLayout,\n useGlobalFilter,\n usePagination,\n useResizeColumns,\n useRowSelect,\n useSortBy,\n useTable,\n} from 'react-table';\nimport { MaterialReactTableProps } from '.';\nimport { UseMRTCalcs, useMRTCalcs } from './utils/useMRTCalcs';\nimport { showOverrideWarnings } from './utils/overrideWarnings';\n\ninterface UseMaterialReactTable<D extends {}>\n extends MaterialReactTableProps<D>,\n UseMRTCalcs {\n tableInstance: TableInstance<D>;\n}\n\nconst MaterialReactTableContext = (<D extends {}>() =>\n createContext<UseMaterialReactTable<D>>(\n {} as UseMaterialReactTable<D>,\n ) as Context<UseMaterialReactTable<D>>)();\n\nexport const MaterialReactTableProvider = <D extends {}>({\n children,\n columns,\n data,\n surpressOverrideWarnings,\n ...rest\n}: PropsWithChildren<MaterialReactTableProps<D>>) => {\n const tableInstance = useTable(\n { columns, data },\n useFlexLayout,\n useResizeColumns,\n useFilters,\n useGlobalFilter,\n useSortBy,\n useExpanded,\n usePagination,\n useRowSelect,\n );\n\n const mrtCalcs = useMRTCalcs({ tableInstance });\n\n if (process.env.NODE_ENV !== 'production' && !surpressOverrideWarnings) {\n showOverrideWarnings(rest);\n }\n\n return (\n <MaterialReactTableContext.Provider\n //@ts-ignore\n value={{\n columns,\n data,\n tableInstance,\n ...mrtCalcs,\n ...rest,\n }}\n >\n {children}\n </MaterialReactTableContext.Provider>\n );\n};\n\nexport const useMaterialReactTable = <\n D extends {},\n>(): UseMaterialReactTable<D> =>\n //@ts-ignore\n useContext<UseMaterialReactTable<D>>(MaterialReactTableContext);\n","import React, { ChangeEvent, FC, useState } from 'react';\nimport { IconButton, InputAdornment, TextField } from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport FilterIcon from '@mui/icons-material/FilterList';\nimport { HeaderGroup, useAsyncDebounce } from 'react-table';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\n\ninterface Props {\n column: HeaderGroup;\n}\n\nexport const MRT_FilterTextfield: FC<Props> = ({ column }) => {\n const { localization } = useMaterialReactTable();\n\n const [filterValue, setFilterValue] = useState('');\n\n const handleChange = useAsyncDebounce((value) => {\n column.setFilter(value ?? undefined);\n }, 150);\n\n const handleClear = () => {\n setFilterValue('');\n column.setFilter(undefined);\n };\n\n return (\n <TextField\n margin=\"dense\"\n placeholder={localization?.filterTextFieldPlaceholder}\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n setFilterValue(e.target.value);\n handleChange(e.target.value);\n }}\n onClick={(e) => e.stopPropagation()}\n value={filterValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <FilterIcon />\n </InputAdornment>\n ),\n endAdornment: (\n <InputAdornment position=\"end\">\n <IconButton\n aria-label={localization?.filterTextFieldClearButtonTitle}\n disabled={filterValue?.length === 0}\n onClick={handleClear}\n size=\"small\"\n title={localization?.filterTextFieldClearButtonTitle}\n >\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n </InputAdornment>\n ),\n }}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { Divider, Menu, MenuItem as MuiMenuItem, styled } from '@mui/material';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\nimport { ColumnInstance } from 'react-table';\nimport ClearAllIcon from '@mui/icons-material/ClearAll';\nimport SortIcon from '@mui/icons-material/Sort';\nimport VisibilityOffIcon from '@mui/icons-material/VisibilityOff';\n\nconst MenuItem = styled(MuiMenuItem)({\n display: 'flex',\n gap: '0.75rem',\n});\n\ninterface Props {\n anchorEl: HTMLElement | null;\n column: ColumnInstance;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n}\n\nexport const MRT_ColumnActionMenu: FC<Props> = ({\n anchorEl,\n column,\n setAnchorEl,\n}) => {\n const { enableColumnHiding, enableSorting, localization } =\n useMaterialReactTable();\n\n const handleClearSort = () => {\n column.clearSortBy();\n setAnchorEl(null);\n };\n\n const handleSortAsc = () => {\n column.toggleSortBy(false);\n setAnchorEl(null);\n };\n\n const handleSortDesc = () => {\n column.toggleSortBy(true);\n setAnchorEl(null);\n };\n\n const handleHideColumn = () => {\n column.toggleHidden();\n setAnchorEl(null);\n };\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n >\n {enableSorting && (\n <>\n <MenuItem disabled={!column.isSorted} onClick={handleClearSort}>\n <ClearAllIcon /> {localization?.columnActionMenuItemClearSort}\n </MenuItem>\n <MenuItem\n disabled={column.isSorted && !column.isSortedDesc}\n onClick={handleSortAsc}\n >\n <SortIcon /> {localization?.columnActionMenuItemSortAsc}\n </MenuItem>\n <MenuItem\n disabled={column.isSorted && column.isSortedDesc}\n onClick={handleSortDesc}\n >\n <SortIcon style={{ transform: 'rotate(180deg) scaleX(-1)' }} />{' '}\n {localization?.columnActionMenuItemSortDesc}\n </MenuItem>\n <Divider />\n </>\n )}\n {enableColumnHiding && (\n <MenuItem onClick={handleHideColumn}>\n <VisibilityOffIcon /> {localization?.columnActionMenuItemHideColumn}\n </MenuItem>\n )}\n </Menu>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton as MuiIconButton, styled } from '@mui/material';\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\nimport { MRT_ColumnActionMenu } from '../menus/MRT_ColumnActionMenu';\nimport { HeaderGroup } from 'react-table';\n\nconst IconButton = styled(MuiIconButton)({\n opacity: 0.2,\n transition: 'opacity 0.2s',\n marginRight: '2px',\n '&:hover': {\n opacity: 1,\n },\n});\n\ninterface Props {\n column: HeaderGroup;\n}\n\nexport const MRT_ToggleColumnActionMenuButton: FC<Props> = ({ column }) => {\n const { localization } = useMaterialReactTable();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n return (\n <>\n <IconButton\n aria-label={localization?.columnActionMenuButtonTitle}\n title={localization?.columnActionMenuButtonTitle}\n onClick={handleClick}\n size=\"small\"\n >\n <MoreVertIcon />\n </IconButton>\n <MRT_ColumnActionMenu\n anchorEl={anchorEl}\n column={column}\n setAnchorEl={setAnchorEl}\n />\n </>\n );\n};\n","import React, { FC } from 'react';\nimport {\n TableCell as MuiTableCell,\n TableSortLabel,\n styled,\n Divider,\n Collapse,\n} from '@mui/material';\nimport { HeaderGroup } from 'react-table';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\nimport { MRT_FilterTextfield } from '../inputs/MRT_FilterTextField';\nimport { MRT_ToggleColumnActionMenuButton } from '../buttons/MRT_ToggleColumnActionMenuButton';\n\nconst TableCell = styled(MuiTableCell)({\n fontWeight: 'bold',\n});\n\nconst TableCellContents = styled('div')({\n display: 'grid',\n});\n\nconst TableCellText = styled('div')({\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n});\n\ninterface Props {\n column: HeaderGroup;\n index: number;\n}\n\nexport const MRT_TableHeadCell: FC<Props> = ({ column, index }) => {\n const {\n OverrideTableHeadCellComponent,\n enableColumnActions,\n enableColumnResizing,\n enableFiltering,\n showFiltersInColumnHead,\n tableInstance,\n } = useMaterialReactTable();\n\n if (OverrideTableHeadCellComponent) {\n return <>{OverrideTableHeadCellComponent(column, tableInstance)}</>;\n }\n\n const isParentHeader = (column?.columns?.length ?? 0) > 0;\n const isLastColumn =\n (!isParentHeader && index === tableInstance.visibleColumns.length - 1) ||\n (isParentHeader && index === column.headers.length - 1);\n\n return (\n <TableCell\n align={isParentHeader ? 'center' : 'left'}\n {...column.getHeaderProps()}\n >\n <TableCellContents>\n <TableCellText\n style={{ justifyContent: isParentHeader ? 'center' : undefined }}\n >\n <span {...column.getSortByToggleProps()}>\n {column.render('Header')}\n {!isParentHeader && column.canSort && (\n <TableSortLabel\n active={column.isSorted}\n direction={column.isSortedDesc ? 'desc' : 'asc'}\n />\n )}\n </span>\n <span style={{ display: 'flex' }}>\n {enableColumnActions && !isParentHeader && (\n <MRT_ToggleColumnActionMenuButton column={column} />\n )}\n {enableColumnResizing && !isLastColumn && (\n <Divider\n flexItem\n orientation=\"vertical\"\n style={{ borderRightWidth: '2px', borderRadius: '2px' }}\n onDoubleClick={() => tableInstance.resetResizing()}\n {...column.getResizerProps()}\n />\n )}\n </span>\n </TableCellText>\n {enableFiltering && column.canFilter && (\n <Collapse in={showFiltersInColumnHead}>\n <MRT_FilterTextfield column={column} />\n </Collapse>\n )}\n </TableCellContents>\n </TableCell>\n );\n};\n","import React from 'react';\nimport { Checkbox, TableCell } from '@mui/material';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\n\nexport const MRT_SelectAllCheckbox = () => {\n const { tableInstance, enableSelectAll } = useMaterialReactTable();\n\n return (\n <TableCell style={{ width: '2rem', padding: '0.5rem' }} variant=\"head\">\n {enableSelectAll ? (\n <Checkbox aria-label='' {...tableInstance.getToggleAllPageRowsSelectedProps()} />\n ) : null}\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, TableCell } from '@mui/material';\nimport ArrowRightIcon from '@mui/icons-material/KeyboardDoubleArrowDown';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\n\ninterface Props {}\n\nexport const MRT_ExpandAllButton: FC<Props> = () => {\n const { tableInstance, localization, anyRowsExpanded } =\n useMaterialReactTable();\n\n return (\n <TableCell\n size=\"small\"\n {...tableInstance.getToggleAllRowsExpandedProps()}\n style={{\n padding: '0.5rem',\n paddingRight: '0',\n width: `${tableInstance.expandedDepth + 2}rem`,\n }}\n >\n <IconButton\n aria-label={localization?.expandAllButtonTitle}\n title={localization?.expandAllButtonTitle}\n >\n <ArrowRightIcon\n fontSize=\"small\"\n style={{\n transform: tableInstance.isAllRowsExpanded\n ? 'rotate(-180deg)'\n : anyRowsExpanded\n ? 'rotate(-90deg)'\n : 'rotate(0)',\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { FormControlLabel, MenuItem, Switch, Typography } from '@mui/material';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\nimport { ColumnInstance } from 'react-table';\n\ninterface Props {\n column: ColumnInstance;\n}\n\nexport const MRT_ShowHideColumnsMenu: FC<Props> = ({ column }) => {\n const { maxColumnDepth } = useMaterialReactTable();\n\n const isMaxDepth = column.depth === maxColumnDepth;\n\n return (\n <>\n <MenuItem style={{ paddingLeft: `${column.depth + 1}rem` }}>\n {isMaxDepth ? (\n <FormControlLabel\n onChange={() => isMaxDepth && column.toggleHidden()}\n label={column.Header as string}\n checked={column.isVisible}\n control={<Switch />}\n />\n ) : (\n <Typography>{column.Header}</Typography>\n )}\n </MenuItem>\n {column.columns?.map((c, i) => (\n <MRT_ShowHideColumnsMenu key={`${i}-${c.id}`} column={c} />\n ))}\n </>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Menu, TableCell } from '@mui/material';\nimport ViewColumnIcon from '@mui/icons-material/ViewColumn';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\nimport { MRT_ShowHideColumnsMenu } from '../menus/MRT_ShowHideColumnsMenu';\n\ninterface Props {}\n\nexport const MRT_ShowHideColumnsButton: FC<Props> = () => {\n const { tableInstance, localization } = useMaterialReactTable();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n return (\n <TableCell size=\"small\" style={{ width: '2rem', padding: '0.75rem 0' }}>\n <IconButton\n aria-label={localization?.showHideColumnsButtonTitle}\n title={localization?.showHideColumnsButtonTitle}\n onClick={handleClick}\n size=\"small\"\n style={{ margin: '0 0 0 -0.75rem' }}\n >\n <ViewColumnIcon />\n </IconButton>\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n >\n {tableInstance.columns.map((column, index) => (\n <MRT_ShowHideColumnsMenu\n key={`${index}-${column.id}`}\n column={column}\n />\n ))}\n </Menu>\n </TableCell>\n );\n};\n","import React, { CSSProperties, FC } from 'react';\nimport { TableCell } from '@mui/material';\n\ninterface Props {\n width?: CSSProperties['width'];\n}\n\nexport const MRT_TableSpacerCell: FC<Props> = ({ width }) => {\n return <TableCell style={{ width }} />;\n};\n","import React, { FC, useMemo } from 'react';\nimport { TableRow } from '@mui/material';\nimport { HeaderGroup } from 'react-table';\nimport { MRT_TableHeadCell } from './MRT_TableHeadCell';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\nimport { MRT_SelectAllCheckbox } from '../inputs/MRT_SelectAllCheckbox';\nimport { MRT_ExpandAllButton } from '../buttons/MRT_ExpandAllButton';\nimport { MRT_ShowHideColumnsButton } from '../buttons/MRT_ShowHideColumnsButton';\nimport { MRT_TableSpacerCell } from '../table/MRT_TableSpacerCell';\n\ninterface Props {\n headerGroup: HeaderGroup;\n}\n\nexport const MRT_TableHeadRow: FC<Props> = ({ headerGroup }) => {\n const {\n OverrideTableHeadRowComponent,\n anyRowsCanExpand,\n enableColumnHiding,\n enableExpandAll,\n enableSelection,\n renderDetailPanel,\n tableInstance,\n } = useMaterialReactTable();\n\n if (OverrideTableHeadRowComponent) {\n return <>{OverrideTableHeadRowComponent(headerGroup, tableInstance)}</>;\n }\n\n const isParentHeader = useMemo(\n () => headerGroup.headers.some((h) => (h.columns?.length ?? 0) > 0),\n [headerGroup.headers],\n );\n\n return (\n <TableRow {...headerGroup.getHeaderGroupProps()}>\n {anyRowsCanExpand || renderDetailPanel ? (\n enableExpandAll && !isParentHeader ? (\n <MRT_ExpandAllButton />\n ) : (\n <MRT_TableSpacerCell\n width={`${tableInstance.expandedDepth + 0.5}rem`}\n />\n )\n ) : null}\n {enableSelection ? (\n !isParentHeader ? (\n <MRT_SelectAllCheckbox />\n ) : (\n <MRT_TableSpacerCell width=\"1rem\" />\n )\n ) : null}\n {headerGroup.headers.map((column, index) => (\n <MRT_TableHeadCell\n key={`${index}-${column.id}`}\n column={column}\n index={index}\n />\n ))}\n {enableColumnHiding && !isParentHeader && <MRT_ShowHideColumnsButton />}\n </TableRow>\n );\n};\n","import React, { ChangeEvent, FC } from 'react';\nimport { TablePagination, TableRow } from '@mui/material';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\n\ninterface Props {}\n\nexport const MRT_TablePagination: FC<Props> = () => {\n const { tableInstance, tablePaginationProps, OverrideTablePaginationComponent } =\n useMaterialReactTable();\n\n const handleChangeRowsPerPage = (event: ChangeEvent<HTMLInputElement>) => {\n tableInstance.setPageSize(+event.target.value);\n tableInstance.gotoPage(0);\n };\n\n if (OverrideTablePaginationComponent) {\n return <>{OverrideTablePaginationComponent(tableInstance)}</>;\n }\n\n return (\n <TableRow>\n <TablePagination\n colSpan={tableInstance.visibleColumns.length + 10}\n count={tableInstance.rows.length}\n onPageChange={(_, newPage) => tableInstance.gotoPage(newPage)}\n onRowsPerPageChange={handleChangeRowsPerPage}\n page={tableInstance.state.pageIndex}\n rowsPerPage={tableInstance.state.pageSize}\n showFirstButton={\n tableInstance.rows.length / tableInstance.state.pageSize > 2\n }\n showLastButton={\n tableInstance.rows.length / tableInstance.state.pageSize > 2\n }\n {...tablePaginationProps}\n />\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { LinearProgress, TableHead } from '@mui/material';\nimport { MRT_TableHeadRow } from './MRT_TableHeadRow';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\nimport { MRT_TablePagination } from '../footer/MRT_TablePagination';\n\ninterface Props {}\n\nexport const MRT_TableHead: FC<Props> = () => {\n const {\n OverrideTableHeadComponent,\n tableInstance,\n tableHeadProps,\n enablePagination,\n isReloading,\n positionPagination,\n } = useMaterialReactTable();\n\n if (OverrideTableHeadComponent) {\n return <>{OverrideTableHeadComponent(tableInstance)}</>;\n }\n\n return (\n <TableHead {...tableHeadProps}>\n {isReloading && <LinearProgress />}\n {enablePagination &&\n ['top', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination />\n )}\n {tableInstance.headerGroups.map((headerGroup, index) => (\n <MRT_TableHeadRow\n key={`${index}-${headerGroup.id}`}\n headerGroup={headerGroup}\n />\n ))}\n </TableHead>\n );\n};\n","import React, { FC } from 'react';\nimport { TableCell } from '@mui/material';\nimport { Cell } from 'react-table';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\n\ninterface Props {\n cell: Cell;\n}\n\nexport const MRT_TableBodyCell: FC<Props> = ({ cell }) => {\n const {\n tableInstance,\n OverrideTableBodyCellComponent,\n } = useMaterialReactTable();\n\n if (OverrideTableBodyCellComponent) {\n return <>{OverrideTableBodyCellComponent(cell, tableInstance)}</>;\n }\n\n return (\n <TableCell variant=\"body\" {...cell.getCellProps()}>\n {cell.render('Cell')}\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse, TableCell, TableRow } from '@mui/material';\nimport { Row } from 'react-table';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\n\ninterface Props {\n row: Row;\n}\n\nexport const MRT_TableDetailPanel: FC<Props> = ({ row }) => {\n const {\n tableInstance,\n renderDetailPanel,\n OverrideTableDetailPanelComponent,\n tableDetailPanelProps,\n } = useMaterialReactTable();\n\n if (OverrideTableDetailPanelComponent) {\n return <>{OverrideTableDetailPanelComponent(row, tableInstance)}</>;\n }\n\n return (\n <TableRow {...row.getToggleRowExpandedProps()}>\n <TableCell\n colSpan={tableInstance.visibleColumns.length + 10}\n style={{\n borderBottom: !row.isExpanded ? 'none' : undefined,\n paddingBottom: row.isExpanded ? '1rem' : 0,\n paddingTop: row.isExpanded ? '1rem' : 0,\n transition: 'all 0.2s',\n }}\n {...tableDetailPanelProps}\n >\n <Collapse in={row.isExpanded}>{renderDetailPanel?.(row)}</Collapse>\n </TableCell>\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, TableCell } from '@mui/material';\nimport { Row } from 'react-table';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\n\ninterface Props {\n row: Row;\n}\n\nexport const MRT_ExpandButton: FC<Props> = ({ row }) => {\n const { localization, tableInstance } = useMaterialReactTable();\n\n return (\n <TableCell\n size=\"small\"\n {...row.getToggleRowExpandedProps()}\n style={{\n padding: '0.5rem',\n paddingRight: '0',\n paddingLeft: `${row.depth + 0.5}rem`,\n width: `${tableInstance.expandedDepth - row.depth + 2}rem`,\n }}\n >\n <IconButton\n aria-label={localization?.expandButtonTitle}\n title={localization?.expandButtonTitle}\n >\n <ExpandMoreIcon\n fontSize=\"small\"\n style={{\n transform: row.isExpanded ? 'rotate(-180deg)' : 'rotate(0)',\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n </TableCell>\n );\n};\n","import React, { ChangeEvent, FC } from 'react';\nimport { Checkbox, TableCell } from '@mui/material';\nimport { Row } from 'react-table';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\n\ninterface Props {\n row: Row;\n}\n\nexport const MRT_SelectCheckbox: FC<Props> = ({ row }) => {\n const { tableInstance, onRowSelectChange } = useMaterialReactTable();\n\n const onSelectChange = (event: ChangeEvent) => {\n row.getToggleRowSelectedProps()?.onChange?.(event);\n onRowSelectChange?.(event, row.state, tableInstance.selectedFlatRows);\n };\n\n return (\n <TableCell style={{ width: '2rem', padding: '0.5rem' }}>\n <Checkbox\n {...row.getToggleRowSelectedProps()}\n onChange={onSelectChange}\n />\n </TableCell>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { TableCell, TableRow } from '@mui/material';\nimport { Row } from 'react-table';\nimport { MRT_TableBodyCell } from './MRT_TableBodyCell';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\nimport { MRT_TableDetailPanel } from './MRT_TableDetailPanel';\nimport { MRT_ExpandButton } from '../buttons/MRT_ExpandButton';\nimport { MRT_SelectCheckbox } from '../inputs/MRT_SelectCheckbox';\nimport { MRT_TableSpacerCell } from '../table/MRT_TableSpacerCell';\n\ninterface Props {\n row: Row;\n}\n\nexport const MRT_TableBodyRow: FC<Props> = ({ row }) => {\n const {\n OverrideTableBodyRowComponent,\n anyRowsCanExpand,\n enableSelection,\n enableSubRowTree,\n enableColumnHiding,\n onRowClick,\n renderDetailPanel,\n tableInstance,\n } = useMaterialReactTable();\n\n if (OverrideTableBodyRowComponent) {\n return <>{OverrideTableBodyRowComponent(row, tableInstance)}</>;\n }\n\n return (\n <>\n <TableRow\n onClick={(event: MouseEvent<HTMLTableRowElement>) =>\n onRowClick?.(event, row)\n }\n {...row.getRowProps()}\n >\n {((enableSubRowTree && anyRowsCanExpand) || renderDetailPanel) &&\n (row.canExpand || renderDetailPanel ? (\n <MRT_ExpandButton row={row} />\n ) : (\n <TableCell\n style={{ width: `${tableInstance.expandedDepth + 0.5}rem` }}\n />\n ))}\n {enableSelection && <MRT_SelectCheckbox row={row} />}\n {row.cells.map((cell, index) => (\n <MRT_TableBodyCell key={`${index}-${cell.value}`} cell={cell} />\n ))}\n {enableColumnHiding && <MRT_TableSpacerCell />}\n </TableRow>\n {renderDetailPanel && <MRT_TableDetailPanel row={row} />}\n </>\n );\n};\n","import React, { FC } from 'react';\nimport {\n CircularProgress,\n styled,\n TableBody as MuiTableBody,\n} from '@mui/material';\nimport { MRT_TableBodyRow } from './MRT_TableBodyRow';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\n\nconst TableBody = styled(MuiTableBody)({\n overflowY: 'hidden',\n});\n\nconst CircularProgressWrapper = styled('div')({\n backgroundColor: 'rgba(255, 255, 255, 0.5)',\n display: 'grid',\n height: '100%',\n justifyContent: 'center',\n margin: 'auto',\n paddingTop: '5rem',\n position: 'fixed',\n width: 'calc(100% - 2rem)',\n});\n\ninterface Props {}\n\nexport const MRT_TableBody: FC<Props> = () => {\n const {\n tableInstance,\n tableBodyProps,\n isLoading,\n enablePagination,\n OverrideTableBodyComponent,\n } = useMaterialReactTable();\n\n if (OverrideTableBodyComponent) {\n return <>{OverrideTableBodyComponent(tableInstance)}</>;\n }\n\n const rows = enablePagination ? tableInstance.page : tableInstance.rows;\n\n return (\n <>\n <TableBody {...tableBodyProps} {...tableInstance.getTableBodyProps()}>\n {isLoading && (\n <CircularProgressWrapper>\n <CircularProgress />\n </CircularProgressWrapper>\n )}\n {rows.map((row, index) => {\n tableInstance.prepareRow(row);\n return <MRT_TableBodyRow key={`${index}-${row.id}`} row={row} />;\n })}\n </TableBody>\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { styled, TableCell as MuiTableCell } from '@mui/material';\nimport { HeaderGroup } from 'react-table';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\n\nconst TableCell = styled(MuiTableCell)({\n fontWeight: 'bold',\n});\n\ninterface Props {\n column: HeaderGroup;\n}\n\nexport const MRT_TableFooterCell: FC<Props> = ({ column }) => {\n const { tableInstance, OverrideTableFooterCellComponent } =\n useMaterialReactTable();\n\n if (OverrideTableFooterCellComponent) {\n return <>{OverrideTableFooterCellComponent(column, tableInstance)}</>;\n }\n\n const isParentHeader = (column?.columns?.length ?? 0) > 0;\n\n return (\n <TableCell\n align={isParentHeader ? 'center' : 'left'}\n variant=\"head\"\n {...column.getFooterProps()}\n >\n {column.render('Footer')}\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { TableCell, TableRow } from '@mui/material';\nimport { HeaderGroup } from 'react-table';\nimport { MRT_TableFooterCell } from './MRT_TableFooterCell';\nimport { MRT_TableSpacerCell } from '../table/MRT_TableSpacerCell';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\n\ninterface Props {\n footerGroup: HeaderGroup;\n}\n\nexport const MRT_TableFooterRow: FC<Props> = ({ footerGroup }) => {\n const {\n renderDetailPanel,\n columns,\n anyRowsCanExpand,\n enableColumnHiding,\n enableSelection,\n tableInstance,\n OverrideTableFooterRowComponent,\n } = useMaterialReactTable();\n\n //if no content in row, skip row\n if (!columns.some((c) => c.Footer)) return null;\n\n if (OverrideTableFooterRowComponent) {\n return <>{OverrideTableFooterRowComponent(footerGroup, tableInstance)}</>;\n }\n\n return (\n <TableRow {...footerGroup.getFooterGroupProps()}>\n {(anyRowsCanExpand || renderDetailPanel) && (\n <TableCell\n style={{ width: `${tableInstance.expandedDepth + 0.5}rem` }}\n />\n )}\n {enableSelection && <MRT_TableSpacerCell width=\"1rem\" />}\n {footerGroup.headers.map((column, index) => (\n <MRT_TableFooterCell key={`${index}-${column.id}`} column={column} />\n ))}\n {enableColumnHiding && <MRT_TableSpacerCell />}\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableFooter } from '@mui/material';\nimport { MRT_TableFooterRow } from './MRT_TableFooterRow';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\nimport { MRT_TablePagination } from './MRT_TablePagination';\n\ninterface Props {}\n\nexport const MRT_TableFooter: FC<Props> = () => {\n const {\n OverrideTableFooterComponent,\n enablePagination,\n positionPagination,\n tableFooterProps,\n tableInstance,\n } = useMaterialReactTable();\n\n if (OverrideTableFooterComponent) {\n return <>{OverrideTableFooterComponent(tableInstance)}</>;\n }\n\n return (\n <TableFooter {...tableFooterProps}>\n {tableInstance.footerGroups.map((footerGroup, index) => (\n <MRT_TableFooterRow\n key={`${index}-${footerGroup.id}`}\n footerGroup={footerGroup}\n />\n ))}\n {enablePagination &&\n ['bottom', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination />\n )}\n </TableFooter>\n );\n};\n","import React, { FC } from 'react';\nimport { Table } from '@mui/material';\nimport { MRT_TableHead } from '../head/MRT_TableHead';\nimport { MRT_TableBody } from '../body/MRT_TableBody';\nimport { MRT_TableFooter } from '../footer/MRT_TableFooter';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\n\ninterface Props {}\n\nexport const MRT_Table: FC<Props> = () => {\n const { tableInstance, tableProps, showHead, showFooter } =\n useMaterialReactTable();\n\n return (\n <Table {...tableProps} {...tableInstance.getTableProps()}>\n {showHead && <MRT_TableHead />}\n <MRT_TableBody />\n {showFooter && <MRT_TableFooter />}\n </Table>\n );\n};\n","import React, { ChangeEvent, FC, useState } from 'react';\nimport {\n IconButton,\n InputAdornment,\n styled,\n TextField as MuiTextField,\n} from '@mui/material';\nimport SearchIcon from '@mui/icons-material/Search';\nimport CloseIcon from '@mui/icons-material/Close';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\nimport { useAsyncDebounce } from 'react-table';\n\nconst TextField = styled(MuiTextField)({\n justifySelf: 'end',\n});\n\ninterface Props {}\n\nexport const MRT_SearchTextField: FC<Props> = () => {\n const { tableInstance, tableSearchTextfieldProps, localization } = useMaterialReactTable();\n\n const [searchValue, setSearchValue] = useState('');\n\n const handleChange = useAsyncDebounce((value) => {\n tableInstance.setGlobalFilter(value ?? undefined);\n }, 200);\n\n const handleClear = () => {\n setSearchValue('');\n tableInstance.setGlobalFilter(undefined);\n };\n\n return (\n <TextField\n placeholder={localization?.searchTextFieldPlaceholder}\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n setSearchValue(e.target.value);\n handleChange(e.target.value);\n }}\n value={searchValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <SearchIcon fontSize=\"small\" />\n </InputAdornment>\n ),\n endAdornment: (\n <InputAdornment position=\"end\">\n <IconButton\n aria-label={localization?.searchTextFieldClearButtonTitle}\n disabled={searchValue?.length === 0}\n onClick={handleClear}\n size=\"small\"\n title={localization?.searchTextFieldClearButtonTitle}\n >\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n </InputAdornment>\n ),\n }}\n {...tableSearchTextfieldProps}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { styled, Toolbar as MuiToolbar, Typography } from '@mui/material';\nimport { MRT_SearchTextField } from '../inputs/MRT_SearchTextField';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\n\nconst Toolbar = styled(MuiToolbar)({\n padding: '0.5rem',\n display: 'flex',\n justifyContent: 'space-between',\n});\n\ninterface Props {}\n\nexport const MRT_Toolbar: FC<Props> = () => {\n const {\n OverrideTableToolbarComponent,\n enableSearch,\n tableInstance,\n tableTitleProps,\n tableToolbarProps,\n title,\n } = useMaterialReactTable();\n\n if (OverrideTableToolbarComponent) {\n return <>{OverrideTableToolbarComponent(tableInstance)}</>;\n }\n\n //if no features in the toolbar are enabled, don't render anything\n if (!enableSearch && !title && !tableToolbarProps) {\n return null;\n }\n\n return (\n <Toolbar variant=\"dense\" {...tableToolbarProps}>\n {title ? <Typography {...tableTitleProps}>{title}</Typography> : <span />}\n {enableSearch && <MRT_SearchTextField />}\n </Toolbar>\n );\n};\n","import React, { FC } from 'react';\nimport { Paper, TableContainer } from '@mui/material';\nimport { useMaterialReactTable } from '../useMaterialReactTable';\nimport { MRT_Table } from './MRT_Table';\nimport { MRT_Toolbar } from '../toolbar/MRT_Toolbar';\n\ninterface Props {}\n\nexport const MRT_TableContainer: FC<Props> = () => {\n const { tableContainerProps, showToolbar } = useMaterialReactTable();\n\n return (\n <TableContainer component={Paper} {...tableContainerProps}>\n {showToolbar && <MRT_Toolbar />}\n <MRT_Table />\n </TableContainer>\n );\n};\n","export interface MRT_Localization {\n columnActionMenuButtonTitle?: string;\n columnActionMenuItemHideColumn?: string;\n columnActionMenuItemSortAsc?: string;\n columnActionMenuItemClearSort?: string;\n columnActionMenuItemSortDesc?: string;\n expandAllButtonTitle?: string;\n expandButtonTitle?: string;\n filterTextFieldClearButtonTitle?: string;\n filterTextFieldPlaceholder?: string;\n searchTextFieldClearButtonTitle?: string;\n searchTextFieldPlaceholder?: string;\n showHideColumnsButtonTitle?: string;\n}\n\nexport const defaultLocalization: MRT_Localization = {\n columnActionMenuButtonTitle: 'Column Actions',\n columnActionMenuItemHideColumn: 'Hide column',\n columnActionMenuItemSortAsc: 'Sort ascending',\n columnActionMenuItemClearSort: 'Clear sorting',\n columnActionMenuItemSortDesc: 'Sort descending',\n expandAllButtonTitle: 'Expand all',\n expandButtonTitle: 'Expand',\n filterTextFieldClearButtonTitle: 'Clear filter',\n filterTextFieldPlaceholder: 'Filter',\n searchTextFieldClearButtonTitle: 'Clear search',\n searchTextFieldPlaceholder: 'Search',\n showHideColumnsButtonTitle: 'Show/Hide columns'\n};\n","import React, { ChangeEvent, MouseEvent, ReactNode } from 'react';\nimport {\n TableBodyProps,\n TableCellProps,\n TableContainerProps,\n TableFooterProps,\n TableHeadProps,\n TablePaginationProps,\n TableProps,\n TextFieldProps,\n Theme,\n ToolbarProps,\n TypographyProps,\n} from '@mui/material';\nimport {\n Cell,\n Column,\n HeaderGroup,\n Row,\n TableInstance,\n UseRowStateLocalState,\n} from 'react-table';\nimport { MaterialReactTableProvider } from './useMaterialReactTable';\nimport { MRT_TableContainer } from './table/MRT_TableContainer';\nimport { defaultLocalization, MRT_Localization } from './utils/localization';\n\nexport interface MaterialReactTableProps<D extends {} = {}> {\n columns: Column<D | {}>[];\n data: D[];\n enableColumnActions?: boolean;\n enableColumnHiding?: boolean;\n enableColumnReordering?: boolean;\n enableColumnResizing?: boolean;\n enableExpandAll?: boolean;\n enableFiltering?: boolean;\n enablePagination?: boolean;\n enableSearch?: boolean;\n enableSelectAll?: boolean;\n enableSelection?: boolean;\n enableSorting?: boolean;\n enableSubRowTree?: boolean;\n isLoading?: boolean;\n isReloading?: boolean;\n localization?: MRT_Localization;\n onRowClick?: (\n event: MouseEvent<HTMLTableRowElement>,\n rowData: Row<D>,\n ) => void;\n onRowSelectChange?: (\n event: ChangeEvent,\n rowState: UseRowStateLocalState<D, unknown>,\n selectedRows: Row<D>[],\n ) => void;\n positionPagination?: 'bottom' | 'top' | 'both';\n renderDetailPanel?: (rowData: Row<D>) => ReactNode;\n showFiltersInColumnHead?: boolean;\n showFooter?: boolean;\n showHead?: boolean;\n showToolbar?: boolean;\n surpressOverrideWarnings?: boolean;\n tableBodyProps?: TableBodyProps;\n tableContainerProps?: TableContainerProps;\n tableDetailPanelProps?: TableCellProps;\n tableFooterProps?: TableFooterProps;\n tableToolbarProps?: ToolbarProps;\n tableHeadProps?: TableHeadProps;\n tablePaginationProps?: TablePaginationProps;\n tableProps?: TableProps;\n tableSearchTextfieldProps?: TextFieldProps;\n tableTitleProps?: TypographyProps;\n theme?: Theme;\n title?: string | ReactNode;\n OverrideTableBodyCellComponent?(\n cell: Cell<D>,\n tableInstance: TableInstance<D>,\n ): ReactNode;\n OverrideTableBodyComponent?(tableInstance: TableInstance<D>): ReactNode;\n OverrideTableBodyRowComponent?(\n row: Row<D>,\n tableInstance: TableInstance<D>,\n ): ReactNode;\n OverrideTableDetailPanelComponent?(\n row: Row<D>,\n tableInstance: TableInstance<D>,\n ): ReactNode;\n OverrideTableFooterComponent?(tableInstance: TableInstance<D>): ReactNode;\n OverrideTableFooterCellComponent?(\n column: HeaderGroup<D>,\n tableInstance: TableInstance<D>,\n ): ReactNode;\n OverrideTableFooterRowComponent?(\n footerGroup: HeaderGroup<D>,\n tableInstance: TableInstance<D>,\n ): ReactNode;\n OverrideTableHeadCellComponent?(\n column: HeaderGroup<D>,\n tableInstance: TableInstance<D>,\n ): ReactNode;\n OverrideTableHeadComponent?(tableInstance: TableInstance<D>): ReactNode;\n OverrideTableHeadRowComponent?(\n headerGroup: HeaderGroup<D>,\n tableInstance: TableInstance<D>,\n ): ReactNode;\n OverrideTablePaginationComponent?(tableInstance: TableInstance<D>): ReactNode;\n OverrideTableToolbarComponent?(tableInstance: TableInstance<D>): ReactNode;\n}\n\nexport const MaterialReactTable = <D extends {}>({\n enablePagination = true,\n enableSorting = true,\n enableSubRowTree = true,\n localization = defaultLocalization,\n positionPagination = 'bottom',\n showFiltersInColumnHead = true,\n showFooter = true,\n showHead = true,\n showToolbar = true,\n ...rest\n}: MaterialReactTableProps<D>) => (\n <MaterialReactTableProvider\n enablePagination={enablePagination}\n enableSorting={enableSorting}\n enableSubRowTree={enableSubRowTree}\n localization={{ ...defaultLocalization, ...localization }}\n positionPagination={positionPagination}\n showFiltersInColumnHead={showFiltersInColumnHead}\n showFooter={showFooter}\n showHead={showHead}\n showToolbar={showToolbar}\n {...rest}\n >\n <MRT_TableContainer />\n </MaterialReactTableProvider>\n);\n"],"names":["useMRTCalcs","tableInstance","anyRowsCanExpand","useMemo","rows","some","row","canExpand","anyRowsExpanded","isExpanded","maxColumnDepth","maxDepth","columns","forEach","column","length","Math","max","showOverrideWarnings","props","OverrideTableBodyCellComponent","showWarning","OverrideTableBodyComponent","OverrideTableBodyRowComponent","OverrideTableDetailPanelComponent","OverrideTableFooterComponent","OverrideTableFooterCellComponent","OverrideTableFooterRowComponent","OverrideTableHeadComponent","OverrideTableHeadRowComponent","OverrideTablePaginationComponent","OverrideTableToolbarComponent","componentName","propsName","console","warn","MaterialReactTableContext","createContext","MaterialReactTableProvider","children","data","surpressOverrideWarnings","rest","useTable","useFlexLayout","useResizeColumns","useFilters","useGlobalFilter","useSortBy","useExpanded","usePagination","useRowSelect","mrtCalcs","process","env","NODE_ENV","React","Provider","value","useMaterialReactTable","useContext","MRT_FilterTextfield","localization","useState","filterValue","setFilterValue","handleChange","useAsyncDebounce","setFilter","undefined","handleClear","TextField","margin","placeholder","filterTextFieldPlaceholder","onChange","e","target","onClick","stopPropagation","variant","InputProps","startAdornment","InputAdornment","position","FilterIcon","endAdornment","IconButton","filterTextFieldClearButtonTitle","disabled","size","title","CloseIcon","fontSize","MenuItem","styled","MuiMenuItem","display","gap","MRT_ColumnActionMenu","anchorEl","setAnchorEl","enableColumnHiding","enableSorting","handleClearSort","clearSortBy","handleSortAsc","toggleSortBy","handleSortDesc","handleHideColumn","toggleHidden","Menu","open","onClose","isSorted","ClearAllIcon","columnActionMenuItemClearSort","isSortedDesc","SortIcon","columnActionMenuItemSortAsc","style","transform","columnActionMenuItemSortDesc","Divider","VisibilityOffIcon","columnActionMenuItemHideColumn","MuiIconButton","opacity","transition","marginRight","MRT_ToggleColumnActionMenuButton","handleClick","event","preventDefault","currentTarget","columnActionMenuButtonTitle","MoreVertIcon","TableCell","MuiTableCell","fontWeight","TableCellContents","TableCellText","width","alignItems","justifyContent","MRT_TableHeadCell","index","OverrideTableHeadCellComponent","enableColumnActions","enableColumnResizing","enableFiltering","showFiltersInColumnHead","isParentHeader","isLastColumn","visibleColumns","headers","align","getHeaderProps","getSortByToggleProps","render","canSort","TableSortLabel","active","direction","flexItem","orientation","borderRightWidth","borderRadius","onDoubleClick","resetResizing","getResizerProps","canFilter","Collapse","MRT_SelectAllCheckbox","enableSelectAll","padding","Checkbox","getToggleAllPageRowsSelectedProps","MRT_ExpandAllButton","getToggleAllRowsExpandedProps","paddingRight","expandedDepth","expandAllButtonTitle","ArrowRightIcon","isAllRowsExpanded","MRT_ShowHideColumnsMenu","isMaxDepth","depth","paddingLeft","FormControlLabel","label","Header","checked","isVisible","control","Switch","Typography","map","c","i","key","id","MRT_ShowHideColumnsButton","showHideColumnsButtonTitle","ViewColumnIcon","MRT_TableSpacerCell","MRT_TableHeadRow","headerGroup","enableExpandAll","enableSelection","renderDetailPanel","h","TableRow","getHeaderGroupProps","MRT_TablePagination","tablePaginationProps","handleChangeRowsPerPage","setPageSize","gotoPage","TablePagination","colSpan","count","onPageChange","_","newPage","onRowsPerPageChange","page","state","pageIndex","rowsPerPage","pageSize","showFirstButton","showLastButton","MRT_TableHead","tableHeadProps","enablePagination","isReloading","positionPagination","TableHead","LinearProgress","includes","headerGroups","MRT_TableBodyCell","cell","getCellProps","MRT_TableDetailPanel","tableDetailPanelProps","getToggleRowExpandedProps","borderBottom","paddingBottom","paddingTop","MRT_ExpandButton","expandButtonTitle","ExpandMoreIcon","MRT_SelectCheckbox","onRowSelectChange","onSelectChange","getToggleRowSelectedProps","selectedFlatRows","MRT_TableBodyRow","enableSubRowTree","onRowClick","getRowProps","cells","TableBody","MuiTableBody","overflowY","CircularProgressWrapper","backgroundColor","height","MRT_TableBody","tableBodyProps","isLoading","getTableBodyProps","CircularProgress","prepareRow","MRT_TableFooterCell","getFooterProps","MRT_TableFooterRow","footerGroup","Footer","getFooterGroupProps","MRT_TableFooter","tableFooterProps","TableFooter","footerGroups","MRT_Table","tableProps","showHead","showFooter","Table","getTableProps","MuiTextField","justifySelf","MRT_SearchTextField","tableSearchTextfieldProps","searchValue","setSearchValue","setGlobalFilter","searchTextFieldPlaceholder","SearchIcon","searchTextFieldClearButtonTitle","Toolbar","MuiToolbar","MRT_Toolbar","enableSearch","tableTitleProps","tableToolbarProps","MRT_TableContainer","tableContainerProps","showToolbar","TableContainer","component","Paper","defaultLocalization","MaterialReactTable"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+ import { ColumnInstance } from 'react-table';
3
+ interface Props {
4
+ anchorEl: HTMLElement | null;
5
+ column: ColumnInstance;
6
+ setAnchorEl: (anchorEl: HTMLElement | null) => void;
7
+ }
8
+ export declare const MRT_ColumnActionMenu: FC<Props>;
9
+ export {};
@@ -0,0 +1,7 @@
1
+ import { FC } from 'react';
2
+ import { ColumnInstance } from 'react-table';
3
+ interface Props {
4
+ column: ColumnInstance;
5
+ }
6
+ export declare const MRT_ShowHideColumnsMenu: FC<Props>;
7
+ export {};
File without changes
@@ -0,0 +1,6 @@
1
+ import { CSSProperties, FC } from 'react';
2
+ interface Props {
3
+ width?: CSSProperties['width'];
4
+ }
5
+ export declare const MRT_TableSpacerCell: FC<Props>;
6
+ export {};
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ interface Props {
3
+ }
4
+ export declare const MRT_Toolbar: FC<Props>;
5
+ export {};
@@ -1,13 +1,10 @@
1
- import React, { FC } from 'react';
1
+ import React, { PropsWithChildren } from 'react';
2
2
  import { TableInstance } from 'react-table';
3
- import { MaterialReactTableOptionalProps, MaterialReactTableOptions, MaterialReactTableProps } from '.';
4
- interface IUseMaterialReactTable extends MaterialReactTableOptionalProps {
5
- tableInstance: TableInstance<object>;
6
- options: MaterialReactTableOptions;
3
+ import { MaterialReactTableProps } from '.';
4
+ import { UseMRTCalcs } from './utils/useMRTCalcs';
5
+ interface UseMaterialReactTable<D extends {}> extends MaterialReactTableProps<D>, UseMRTCalcs {
6
+ tableInstance: TableInstance<D>;
7
7
  }
8
- interface ProviderProps extends MaterialReactTableProps {
9
- children: React.ReactNode;
10
- }
11
- export declare const MaterialReactTableProvider: FC<ProviderProps>;
12
- export declare const useMaterialReactTable: () => IUseMaterialReactTable;
8
+ export declare const MaterialReactTableProvider: <D extends {}>({ children, columns, data, surpressOverrideWarnings, ...rest }: React.PropsWithChildren<MaterialReactTableProps<D>>) => JSX.Element;
9
+ export declare const useMaterialReactTable: <D extends {}>() => UseMaterialReactTable<D>;
13
10
  export {};
@@ -0,0 +1,15 @@
1
+ export interface MRT_Localization {
2
+ columnActionMenuButtonTitle?: string;
3
+ columnActionMenuItemHideColumn?: string;
4
+ columnActionMenuItemSortAsc?: string;
5
+ columnActionMenuItemClearSort?: string;
6
+ columnActionMenuItemSortDesc?: string;
7
+ expandAllButtonTitle?: string;
8
+ expandButtonTitle?: string;
9
+ filterTextFieldClearButtonTitle?: string;
10
+ filterTextFieldPlaceholder?: string;
11
+ searchTextFieldClearButtonTitle?: string;
12
+ searchTextFieldPlaceholder?: string;
13
+ showHideColumnsButtonTitle?: string;
14
+ }
15
+ export declare const defaultLocalization: MRT_Localization;
@@ -0,0 +1 @@
1
+ export declare const showOverrideWarnings: (props: any) => void;
@@ -0,0 +1,11 @@
1
+ import { TableInstance } from 'react-table';
2
+ export interface UseMRTCalcs {
3
+ anyRowsCanExpand: boolean;
4
+ anyRowsExpanded: boolean;
5
+ maxColumnDepth: number;
6
+ }
7
+ interface Props<D extends {}> {
8
+ tableInstance: TableInstance<D>;
9
+ }
10
+ export declare const useMRTCalcs: <D extends {}>({ tableInstance, }: Props<D>) => UseMRTCalcs;
11
+ export {};
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
- "version": "0.1.0",
2
+ "version": "0.2.0",
3
3
  "license": "MIT",
4
4
  "name": "material-react-table",
5
- "description": "A fully featured Material-UI implementation of react-table, inspired by material-table, written from the ground up in TypeScript.",
5
+ "description": "A fully featured Material-UI implementation of react-table, inspired by material-table and the mui DataGrid, written from the ground up in TypeScript.",
6
6
  "author": "Kevin Vandy",
7
7
  "keywords": [
8
8
  "react-table",
@@ -28,7 +28,7 @@
28
28
  },
29
29
  "scripts": {
30
30
  "start": "tsdx watch",
31
- "build": "tsdx build",
31
+ "build": "tsdx build && size-limit",
32
32
  "test": "tsdx test --passWithNoTests",
33
33
  "lint": "tsdx lint",
34
34
  "prepare": "tsdx build",
@@ -54,20 +54,23 @@
54
54
  }
55
55
  ],
56
56
  "devDependencies": {
57
- "@babel/core": "^7.16.7",
57
+ "@babel/core": "^7.16.10",
58
58
  "@emotion/react": "^11.7.1",
59
59
  "@emotion/styled": "^11.6.0",
60
- "@faker-js/faker": "^6.0.0-alpha.2",
61
- "@mui/icons-material": "^5.2.5",
62
- "@mui/material": "^5.2.8",
60
+ "@faker-js/faker": "^6.0.0-alpha.3",
61
+ "@mui/icons-material": "^5.3.0",
62
+ "@mui/material": "^5.3.0",
63
63
  "@size-limit/preset-small-lib": "^7.0.5",
64
64
  "@storybook/addon-a11y": "^6.4.13",
65
+ "@storybook/addon-actions": "^6.4.13",
66
+ "@storybook/addon-console": "^1.2.3",
65
67
  "@storybook/addon-essentials": "^6.4.13",
66
68
  "@storybook/addon-info": "^5.3.21",
67
69
  "@storybook/addon-links": "^6.4.13",
70
+ "@storybook/addon-storysource": "^6.4.13",
68
71
  "@storybook/addons": "^6.4.13",
69
72
  "@storybook/react": "^6.4.13",
70
- "@types/faker": "^5.5.9",
73
+ "@types/faker": "^6.6.8",
71
74
  "@types/react": "^17.0.38",
72
75
  "@types/react-dom": "^17.0.11",
73
76
  "@types/react-table": "^7.7.9",
@@ -79,14 +82,13 @@
79
82
  "react-is": "^17.0.2",
80
83
  "react-table": "^7.7.0",
81
84
  "size-limit": "^7.0.5",
82
- "storybook-addon-material-ui": "^0.9.0-alpha.24",
85
+ "storybook-addon-performance": "^0.16.1",
83
86
  "tsdx": "^0.14.1",
84
87
  "tslib": "^2.3.1",
85
- "typescript": "^4.5.4"
88
+ "typescript": "^4.5.5"
86
89
  },
87
90
  "peerDependencies": {
88
91
  "@emotion/react": ">=11",
89
- "@emotion/styled": ">=11",
90
92
  "@mui/icons-material": ">=5",
91
93
  "@mui/material": ">=5",
92
94
  "react": ">=17",
@@ -1,48 +1,134 @@
1
- import React, { FC } from 'react';
1
+ import React, { ChangeEvent, MouseEvent, ReactNode } from 'react';
2
2
  import {
3
+ TableBodyProps,
4
+ TableCellProps,
3
5
  TableContainerProps,
4
6
  TableFooterProps,
5
7
  TableHeadProps,
6
8
  TablePaginationProps,
7
9
  TableProps,
10
+ TextFieldProps,
11
+ Theme,
12
+ ToolbarProps,
13
+ TypographyProps,
8
14
  } from '@mui/material';
9
- import { Column } from 'react-table';
15
+ import {
16
+ Cell,
17
+ Column,
18
+ HeaderGroup,
19
+ Row,
20
+ TableInstance,
21
+ UseRowStateLocalState,
22
+ } from 'react-table';
10
23
  import { MaterialReactTableProvider } from './useMaterialReactTable';
11
- import { MRT_TableContainer } from './MRT_TableContainer';
12
- import { defaultOptions } from './defaults';
13
-
14
- export interface MaterialReactTableOptions {
15
- enableFilters: boolean;
16
- enablePagination: boolean | 'top' | 'bottom' | 'both' | 'none';
17
- enableSearch: boolean;
18
- enableSorting: boolean;
19
- showFooter: boolean;
20
- showHead: boolean;
21
- showToolbar: boolean;
22
- }
24
+ import { MRT_TableContainer } from './table/MRT_TableContainer';
25
+ import { defaultLocalization, MRT_Localization } from './utils/localization';
23
26
 
24
- export interface MaterialReactTableOptionalProps {
25
- options?: Partial<MaterialReactTableOptions>;
27
+ export interface MaterialReactTableProps<D extends {} = {}> {
28
+ columns: Column<D | {}>[];
29
+ data: D[];
30
+ enableColumnActions?: boolean;
31
+ enableColumnHiding?: boolean;
32
+ enableColumnReordering?: boolean;
33
+ enableColumnResizing?: boolean;
34
+ enableExpandAll?: boolean;
35
+ enableFiltering?: boolean;
36
+ enablePagination?: boolean;
37
+ enableSearch?: boolean;
38
+ enableSelectAll?: boolean;
39
+ enableSelection?: boolean;
40
+ enableSorting?: boolean;
41
+ enableSubRowTree?: boolean;
42
+ isLoading?: boolean;
43
+ isReloading?: boolean;
44
+ localization?: MRT_Localization;
45
+ onRowClick?: (
46
+ event: MouseEvent<HTMLTableRowElement>,
47
+ rowData: Row<D>,
48
+ ) => void;
49
+ onRowSelectChange?: (
50
+ event: ChangeEvent,
51
+ rowState: UseRowStateLocalState<D, unknown>,
52
+ selectedRows: Row<D>[],
53
+ ) => void;
54
+ positionPagination?: 'bottom' | 'top' | 'both';
55
+ renderDetailPanel?: (rowData: Row<D>) => ReactNode;
56
+ showFiltersInColumnHead?: boolean;
57
+ showFooter?: boolean;
58
+ showHead?: boolean;
59
+ showToolbar?: boolean;
60
+ surpressOverrideWarnings?: boolean;
61
+ tableBodyProps?: TableBodyProps;
26
62
  tableContainerProps?: TableContainerProps;
63
+ tableDetailPanelProps?: TableCellProps;
27
64
  tableFooterProps?: TableFooterProps;
65
+ tableToolbarProps?: ToolbarProps;
28
66
  tableHeadProps?: TableHeadProps;
29
67
  tablePaginationProps?: TablePaginationProps;
30
68
  tableProps?: TableProps;
31
- renderDetailPanel?: (rowData: any) => React.ReactNode;
32
- }
33
-
34
- export interface MaterialReactTableProps extends MaterialReactTableOptionalProps {
35
- columns: Column[];
36
- data: any[];
69
+ tableSearchTextfieldProps?: TextFieldProps;
70
+ tableTitleProps?: TypographyProps;
71
+ theme?: Theme;
72
+ title?: string | ReactNode;
73
+ OverrideTableBodyCellComponent?(
74
+ cell: Cell<D>,
75
+ tableInstance: TableInstance<D>,
76
+ ): ReactNode;
77
+ OverrideTableBodyComponent?(tableInstance: TableInstance<D>): ReactNode;
78
+ OverrideTableBodyRowComponent?(
79
+ row: Row<D>,
80
+ tableInstance: TableInstance<D>,
81
+ ): ReactNode;
82
+ OverrideTableDetailPanelComponent?(
83
+ row: Row<D>,
84
+ tableInstance: TableInstance<D>,
85
+ ): ReactNode;
86
+ OverrideTableFooterComponent?(tableInstance: TableInstance<D>): ReactNode;
87
+ OverrideTableFooterCellComponent?(
88
+ column: HeaderGroup<D>,
89
+ tableInstance: TableInstance<D>,
90
+ ): ReactNode;
91
+ OverrideTableFooterRowComponent?(
92
+ footerGroup: HeaderGroup<D>,
93
+ tableInstance: TableInstance<D>,
94
+ ): ReactNode;
95
+ OverrideTableHeadCellComponent?(
96
+ column: HeaderGroup<D>,
97
+ tableInstance: TableInstance<D>,
98
+ ): ReactNode;
99
+ OverrideTableHeadComponent?(tableInstance: TableInstance<D>): ReactNode;
100
+ OverrideTableHeadRowComponent?(
101
+ headerGroup: HeaderGroup<D>,
102
+ tableInstance: TableInstance<D>,
103
+ ): ReactNode;
104
+ OverrideTablePaginationComponent?(tableInstance: TableInstance<D>): ReactNode;
105
+ OverrideTableToolbarComponent?(tableInstance: TableInstance<D>): ReactNode;
37
106
  }
38
107
 
39
- export const MaterialReactTable: FC<MaterialReactTableProps> = ({
40
- options = defaultOptions,
108
+ export const MaterialReactTable = <D extends {}>({
109
+ enablePagination = true,
110
+ enableSorting = true,
111
+ enableSubRowTree = true,
112
+ localization = defaultLocalization,
113
+ positionPagination = 'bottom',
114
+ showFiltersInColumnHead = true,
115
+ showFooter = true,
116
+ showHead = true,
117
+ showToolbar = true,
41
118
  ...rest
42
- }) => {
43
- return (
44
- <MaterialReactTableProvider options={options} {...rest}>
45
- <MRT_TableContainer />
46
- </MaterialReactTableProvider>
47
- );
48
- };
119
+ }: MaterialReactTableProps<D>) => (
120
+ <MaterialReactTableProvider
121
+ enablePagination={enablePagination}
122
+ enableSorting={enableSorting}
123
+ enableSubRowTree={enableSubRowTree}
124
+ localization={{ ...defaultLocalization, ...localization }}
125
+ positionPagination={positionPagination}
126
+ showFiltersInColumnHead={showFiltersInColumnHead}
127
+ showFooter={showFooter}
128
+ showHead={showHead}
129
+ showToolbar={showToolbar}
130
+ {...rest}
131
+ >
132
+ <MRT_TableContainer />
133
+ </MaterialReactTableProvider>
134
+ );