material-react-table 0.6.10 → 0.7.0-alpha.11

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 (104) hide show
  1. package/README.md +29 -21
  2. package/dist/MaterialReactTable.d.ts +311 -110
  3. package/dist/body/MRT_TableBody.d.ts +3 -0
  4. package/dist/body/MRT_TableBodyCell.d.ts +2 -11
  5. package/dist/body/MRT_TableBodyRow.d.ts +3 -1
  6. package/dist/body/MRT_TableDetailPanel.d.ts +2 -1
  7. package/dist/buttons/MRT_CopyButton.d.ts +2 -1
  8. package/dist/buttons/MRT_EditActionButtons.d.ts +2 -1
  9. package/dist/buttons/MRT_ExpandAllButton.d.ts +2 -0
  10. package/dist/buttons/MRT_ExpandButton.d.ts +2 -1
  11. package/dist/buttons/MRT_FullScreenToggleButton.d.ts +2 -0
  12. package/dist/buttons/MRT_ShowHideColumnsButton.d.ts +2 -0
  13. package/dist/buttons/MRT_ToggleColumnActionMenuButton.d.ts +3 -2
  14. package/dist/buttons/MRT_ToggleDensePaddingButton.d.ts +2 -0
  15. package/dist/buttons/MRT_ToggleFiltersButton.d.ts +2 -0
  16. package/dist/buttons/MRT_ToggleRowActionMenuButton.d.ts +2 -1
  17. package/dist/buttons/MRT_ToggleSearchButton.d.ts +2 -0
  18. package/dist/footer/MRT_TableFooter.d.ts +3 -0
  19. package/dist/footer/MRT_TableFooterCell.d.ts +3 -2
  20. package/dist/footer/MRT_TableFooterRow.d.ts +2 -1
  21. package/dist/head/MRT_TableHead.d.ts +3 -0
  22. package/dist/head/MRT_TableHeadCell.d.ts +4 -18
  23. package/dist/head/MRT_TableHeadRow.d.ts +2 -1
  24. package/dist/icons.d.ts +1 -1
  25. package/dist/inputs/MRT_EditCellTextField.d.ts +2 -1
  26. package/dist/inputs/MRT_FilterTextField.d.ts +3 -2
  27. package/dist/inputs/MRT_SearchTextField.d.ts +2 -0
  28. package/dist/inputs/MRT_SelectCheckbox.d.ts +2 -1
  29. package/dist/localization.d.ts +8 -2
  30. package/dist/material-react-table.cjs.development.js +2253 -2482
  31. package/dist/material-react-table.cjs.development.js.map +1 -1
  32. package/dist/material-react-table.cjs.production.min.js +1 -1
  33. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  34. package/dist/material-react-table.esm.js +2254 -2483
  35. package/dist/material-react-table.esm.js.map +1 -1
  36. package/dist/menus/MRT_ColumnActionMenu.d.ts +3 -2
  37. package/dist/menus/MRT_FilterTypeMenu.d.ts +4 -3
  38. package/dist/menus/MRT_RowActionMenu.d.ts +3 -2
  39. package/dist/menus/MRT_ShowHideColumnsMenu.d.ts +2 -0
  40. package/dist/menus/MRT_ShowHideColumnsMenuItems.d.ts +2 -1
  41. package/dist/table/MRT_Table.d.ts +3 -0
  42. package/dist/table/MRT_TableContainer.d.ts +2 -0
  43. package/dist/table/MRT_TablePaper.d.ts +7 -0
  44. package/dist/table/MRT_TableRoot.d.ts +3 -0
  45. package/dist/toolbar/MRT_LinearProgressBar.d.ts +2 -0
  46. package/dist/toolbar/MRT_TablePagination.d.ts +2 -0
  47. package/dist/toolbar/MRT_ToolbarAlertBanner.d.ts +2 -0
  48. package/dist/toolbar/MRT_ToolbarBottom.d.ts +2 -0
  49. package/dist/toolbar/MRT_ToolbarInternalButtons.d.ts +2 -0
  50. package/dist/toolbar/MRT_ToolbarTop.d.ts +4 -2
  51. package/dist/utils.d.ts +12 -2
  52. package/package.json +29 -30
  53. package/src/MaterialReactTable.tsx +615 -302
  54. package/src/body/MRT_TableBody.tsx +26 -22
  55. package/src/body/MRT_TableBodyCell.tsx +78 -60
  56. package/src/body/MRT_TableBodyRow.tsx +37 -76
  57. package/src/body/MRT_TableDetailPanel.tsx +21 -17
  58. package/src/buttons/MRT_CopyButton.tsx +14 -8
  59. package/src/buttons/MRT_EditActionButtons.tsx +16 -13
  60. package/src/buttons/MRT_ExpandAllButton.tsx +24 -9
  61. package/src/buttons/MRT_ExpandButton.tsx +22 -15
  62. package/src/buttons/MRT_FullScreenToggleButton.tsx +18 -11
  63. package/src/buttons/MRT_ShowHideColumnsButton.tsx +18 -7
  64. package/src/buttons/MRT_ToggleColumnActionMenuButton.tsx +22 -11
  65. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +18 -11
  66. package/src/buttons/MRT_ToggleFiltersButton.tsx +16 -9
  67. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +30 -25
  68. package/src/buttons/MRT_ToggleSearchButton.tsx +24 -12
  69. package/src/footer/MRT_TableFooter.tsx +24 -8
  70. package/src/footer/MRT_TableFooterCell.tsx +34 -26
  71. package/src/footer/MRT_TableFooterRow.tsx +21 -39
  72. package/src/head/MRT_TableHead.tsx +24 -8
  73. package/src/head/MRT_TableHeadCell.tsx +183 -141
  74. package/src/head/MRT_TableHeadRow.tsx +16 -104
  75. package/src/icons.ts +3 -3
  76. package/src/inputs/MRT_EditCellTextField.tsx +36 -24
  77. package/src/inputs/MRT_FilterTextField.tsx +52 -31
  78. package/src/inputs/MRT_SearchTextField.tsx +46 -24
  79. package/src/inputs/MRT_SelectCheckbox.tsx +42 -30
  80. package/src/localization.ts +14 -2
  81. package/src/menus/MRT_ColumnActionMenu.tsx +128 -68
  82. package/src/menus/MRT_FilterTypeMenu.tsx +23 -20
  83. package/src/menus/MRT_RowActionMenu.tsx +22 -15
  84. package/src/menus/MRT_ShowHideColumnsMenu.tsx +52 -20
  85. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +27 -17
  86. package/src/table/MRT_Table.tsx +25 -15
  87. package/src/table/MRT_TableContainer.tsx +106 -45
  88. package/src/table/MRT_TablePaper.tsx +65 -0
  89. package/src/table/MRT_TableRoot.tsx +240 -0
  90. package/src/toolbar/MRT_LinearProgressBar.tsx +10 -7
  91. package/src/toolbar/MRT_TablePagination.tsx +33 -19
  92. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +33 -20
  93. package/src/toolbar/MRT_ToolbarBottom.tsx +32 -21
  94. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +35 -20
  95. package/src/toolbar/MRT_ToolbarTop.tsx +36 -29
  96. package/src/utils.ts +37 -8
  97. package/dist/head/MRT_TableHeadCellActions.d.ts +0 -5
  98. package/dist/table/MRT_TableSpacerCell.d.ts +0 -6
  99. package/dist/useMRT.d.ts +0 -28
  100. package/src/@types/faker.d.ts +0 -4
  101. package/src/@types/react-table-config.d.ts +0 -53
  102. package/src/head/MRT_TableHeadCellActions.tsx +0 -29
  103. package/src/table/MRT_TableSpacerCell.tsx +0 -20
  104. package/src/useMRT.tsx +0 -226
package/src/useMRT.tsx DELETED
@@ -1,226 +0,0 @@
1
- import React, {
2
- Context,
3
- Dispatch,
4
- PropsWithChildren,
5
- SetStateAction,
6
- createContext,
7
- useCallback,
8
- useContext,
9
- useMemo,
10
- useState,
11
- } from 'react';
12
- import {
13
- PluginHook,
14
- useExpanded,
15
- useFilters,
16
- useFlexLayout,
17
- useGlobalFilter,
18
- useGroupBy,
19
- usePagination,
20
- useResizeColumns,
21
- useRowSelect,
22
- useSortBy,
23
- useTable,
24
- } from 'react-table';
25
- import type {
26
- MRT_ColumnInterface,
27
- MRT_FilterType,
28
- MRT_Row,
29
- MRT_TableInstance,
30
- } from '.';
31
- import { MRT_FILTER_TYPE } from './enums';
32
- import { MRT_Icons } from './icons';
33
- import { MRT_Localization } from './localization';
34
- import { MaterialReactTableProps } from './MaterialReactTable';
35
- import { findLowestLevelCols } from './utils';
36
-
37
- export type UseMRT<D extends {} = {}> = MaterialReactTableProps<D> & {
38
- anyRowsCanExpand: boolean;
39
- anyRowsExpanded: boolean;
40
- icons: MRT_Icons;
41
- idPrefix: string;
42
- filterTypes: { [key in MRT_FILTER_TYPE]: any };
43
- localization: MRT_Localization;
44
- setCurrentEditingRow: Dispatch<SetStateAction<MRT_Row<D> | null>>;
45
- setCurrentFilterTypes: Dispatch<
46
- SetStateAction<{
47
- [key: string]: MRT_FilterType;
48
- }>
49
- >;
50
- setCurrentGlobalFilterType: Dispatch<SetStateAction<MRT_FILTER_TYPE>>;
51
- setDensePadding: Dispatch<SetStateAction<boolean>>;
52
- setFullScreen: Dispatch<SetStateAction<boolean>>;
53
- setShowFilters: Dispatch<SetStateAction<boolean>>;
54
- setShowSearch: Dispatch<SetStateAction<boolean>>;
55
- tableInstance: MRT_TableInstance<D>;
56
- };
57
-
58
- const MaterialReactTableContext = (<D extends {} = {}>() =>
59
- createContext<UseMRT<D>>({} as UseMRT<D>) as Context<UseMRT<D>>)();
60
-
61
- export const MaterialReactTableProvider = <D extends {} = {}>(
62
- props: PropsWithChildren<MaterialReactTableProps<D>>,
63
- ) => {
64
- const hooks: PluginHook<D>[] = [
65
- useFilters,
66
- useGlobalFilter,
67
- useGroupBy,
68
- useSortBy,
69
- useExpanded,
70
- usePagination,
71
- useRowSelect,
72
- ];
73
-
74
- if (props.enableColumnResizing)
75
- hooks.unshift(useResizeColumns, useFlexLayout);
76
-
77
- const [currentEditingRow, setCurrentEditingRow] = useState<MRT_Row<D> | null>(
78
- null,
79
- );
80
- const [densePadding, setDensePadding] = useState(
81
- props.initialState?.densePadding ?? false,
82
- );
83
- const [fullScreen, setFullScreen] = useState(
84
- props.initialState?.fullScreen ?? false,
85
- );
86
- const [showFilters, setShowFilters] = useState(
87
- props.initialState?.showFilters ?? false,
88
- );
89
- const [showSearch, setShowSearch] = useState(
90
- props.initialState?.showSearch ?? false,
91
- );
92
-
93
- const [currentFilterTypes, setCurrentFilterTypes] = useState<{
94
- [key: string]: MRT_FilterType;
95
- }>(() =>
96
- Object.assign(
97
- {},
98
- ...findLowestLevelCols(props.columns).map((c) => ({
99
- [c.accessor as string]:
100
- c.filter ??
101
- props?.initialState?.filters?.[c.accessor as any] ??
102
- (!!c.filterSelectOptions?.length
103
- ? MRT_FILTER_TYPE.EQUALS
104
- : MRT_FILTER_TYPE.BEST_MATCH),
105
- })),
106
- ),
107
- );
108
-
109
- const [currentGlobalFilterType, setCurrentGlobalFilterType] = useState<
110
- MRT_FilterType | string | undefined
111
- >(props.globalFilter);
112
-
113
- const applyFiltersToColumns = useCallback(
114
- (cols: MRT_ColumnInterface[]) =>
115
- cols.map((column) => {
116
- if (column.columns) {
117
- applyFiltersToColumns(column.columns);
118
- } else {
119
- column.filter =
120
- props?.filterTypes?.[
121
- currentFilterTypes[column.accessor as string] as MRT_FILTER_TYPE
122
- ];
123
- }
124
- return column;
125
- }),
126
- [currentFilterTypes, props.filterTypes],
127
- );
128
-
129
- const columns = useMemo(
130
- () => applyFiltersToColumns(props.columns),
131
- [props.columns, applyFiltersToColumns],
132
- );
133
-
134
- const data = useMemo(
135
- () =>
136
- !props.isLoading || !!props.data.length
137
- ? props.data
138
- : [...Array(10).fill(null)].map((_) =>
139
- Object.assign(
140
- {},
141
- ...findLowestLevelCols(props.columns).map((c) => ({
142
- [c.accessor as string]: null,
143
- })),
144
- ),
145
- ),
146
- [props.data, props.isLoading],
147
- );
148
-
149
- const tableInstance = useTable(
150
- // @ts-ignore
151
- {
152
- ...props,
153
- // @ts-ignore
154
- columns,
155
- data,
156
- globalFilter: currentGlobalFilterType,
157
- useControlledState: (state) =>
158
- useMemo(
159
- () => ({
160
- ...state,
161
- currentEditingRow,
162
- currentFilterTypes,
163
- currentGlobalFilterType,
164
- densePadding,
165
- fullScreen,
166
- showFilters,
167
- showSearch,
168
- //@ts-ignore
169
- ...props?.useControlledState?.(state),
170
- }),
171
- [
172
- currentEditingRow,
173
- currentFilterTypes,
174
- currentGlobalFilterType,
175
- densePadding,
176
- fullScreen,
177
- showFilters,
178
- showSearch,
179
- state,
180
- ],
181
- ),
182
- },
183
- ...hooks,
184
- ) as unknown as MRT_TableInstance<D>;
185
-
186
- const idPrefix = useMemo(
187
- () => props.idPrefix ?? Math.random().toString(36).substring(2, 9),
188
- [props.idPrefix],
189
- );
190
- const anyRowsCanExpand = useMemo(
191
- () => tableInstance.rows.some((row) => row.canExpand),
192
- [tableInstance.rows],
193
- );
194
- const anyRowsExpanded = useMemo(
195
- () => tableInstance.rows.some((row) => row.isExpanded),
196
- [tableInstance.rows],
197
- );
198
-
199
- return (
200
- <MaterialReactTableContext.Provider
201
- value={{
202
- ...props,
203
- anyRowsCanExpand,
204
- anyRowsExpanded,
205
- idPrefix,
206
- //@ts-ignore
207
- setCurrentEditingRow,
208
- setCurrentFilterTypes,
209
- setCurrentGlobalFilterType,
210
- setDensePadding,
211
- setFullScreen,
212
- setShowFilters,
213
- setShowSearch,
214
- //@ts-ignore
215
- tableInstance,
216
- }}
217
- >
218
- {props.children}
219
- </MaterialReactTableContext.Provider>
220
- );
221
- };
222
-
223
- export const useMRT = <D extends {} = {}>(): UseMRT<D> =>
224
- useContext<UseMRT<D>>(
225
- MaterialReactTableContext as unknown as Context<UseMRT<D>>,
226
- );