material-react-table 2.0.5 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. package/dist/index.d.ts +2 -1
  2. package/dist/index.esm.js +616 -545
  3. package/dist/index.esm.js.map +1 -1
  4. package/dist/index.js +614 -543
  5. package/dist/index.js.map +1 -1
  6. package/locales/fr/index.esm.js +1 -1
  7. package/locales/fr/index.js +1 -1
  8. package/locales/he/index.d.ts +3 -0
  9. package/locales/he/index.esm.d.ts +3 -0
  10. package/locales/he/index.esm.js +93 -0
  11. package/locales/he/index.js +97 -0
  12. package/locales/he/package.json +6 -0
  13. package/package.json +25 -25
  14. package/src/body/MRT_TableBodyCell.tsx +22 -19
  15. package/src/body/MRT_TableBodyCellValue.tsx +9 -9
  16. package/src/body/MRT_TableBodyRow.tsx +13 -13
  17. package/src/buttons/MRT_RowPinButton.tsx +2 -2
  18. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +2 -2
  19. package/src/footer/MRT_TableFooterCell.tsx +2 -2
  20. package/src/head/MRT_TableHeadCell.tsx +25 -20
  21. package/src/head/MRT_TableHeadCellResizeHandle.tsx +19 -9
  22. package/src/hooks/useMRT_DisplayColumns.tsx +172 -125
  23. package/src/hooks/useMRT_TableOptions.ts +8 -0
  24. package/src/inputs/MRT_EditCellTextField.tsx +3 -1
  25. package/src/inputs/MRT_FilterCheckbox.tsx +2 -2
  26. package/src/inputs/MRT_FilterTextField.tsx +17 -17
  27. package/src/inputs/MRT_SelectCheckbox.tsx +2 -2
  28. package/src/locales/fr.ts +1 -1
  29. package/src/locales/he.ts +94 -0
  30. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +2 -2
  31. package/src/style.utils.ts +2 -2
  32. package/src/toolbar/MRT_TablePagination.tsx +8 -4
  33. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +6 -6
  34. package/src/types.ts +2 -2
  35. package/dist/types/MaterialReactTable.d.ts +0 -7
  36. package/dist/types/aggregationFns.d.ts +0 -11
  37. package/dist/types/body/MRT_TableBody.d.ts +0 -13
  38. package/dist/types/body/MRT_TableBodyCell.d.ts +0 -15
  39. package/dist/types/body/MRT_TableBodyCellValue.d.ts +0 -8
  40. package/dist/types/body/MRT_TableBodyRow.d.ts +0 -18
  41. package/dist/types/body/MRT_TableBodyRowGrabHandle.d.ts +0 -10
  42. package/dist/types/body/MRT_TableBodyRowPinButton.d.ts +0 -8
  43. package/dist/types/body/MRT_TableDetailPanel.d.ts +0 -13
  44. package/dist/types/body/index.d.ts +0 -7
  45. package/dist/types/buttons/MRT_ColumnPinningButtons.d.ts +0 -8
  46. package/dist/types/buttons/MRT_CopyButton.d.ts +0 -8
  47. package/dist/types/buttons/MRT_EditActionButtons.d.ts +0 -9
  48. package/dist/types/buttons/MRT_ExpandAllButton.d.ts +0 -7
  49. package/dist/types/buttons/MRT_ExpandButton.d.ts +0 -8
  50. package/dist/types/buttons/MRT_GrabHandleButton.d.ts +0 -12
  51. package/dist/types/buttons/MRT_RowPinButton.d.ts +0 -10
  52. package/dist/types/buttons/MRT_ShowHideColumnsButton.d.ts +0 -7
  53. package/dist/types/buttons/MRT_ToggleDensePaddingButton.d.ts +0 -7
  54. package/dist/types/buttons/MRT_ToggleFiltersButton.d.ts +0 -7
  55. package/dist/types/buttons/MRT_ToggleFullScreenButton.d.ts +0 -7
  56. package/dist/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +0 -7
  57. package/dist/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +0 -9
  58. package/dist/types/buttons/index.d.ts +0 -13
  59. package/dist/types/column.utils.d.ts +0 -127
  60. package/dist/types/filterFns.d.ts +0 -69
  61. package/dist/types/footer/MRT_TableFooter.d.ts +0 -11
  62. package/dist/types/footer/MRT_TableFooterCell.d.ts +0 -8
  63. package/dist/types/footer/MRT_TableFooterRow.d.ts +0 -12
  64. package/dist/types/footer/index.d.ts +0 -3
  65. package/dist/types/head/MRT_TableHead.d.ts +0 -11
  66. package/dist/types/head/MRT_TableHeadCell.d.ts +0 -8
  67. package/dist/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +0 -8
  68. package/dist/types/head/MRT_TableHeadCellFilterContainer.d.ts +0 -8
  69. package/dist/types/head/MRT_TableHeadCellFilterLabel.d.ts +0 -8
  70. package/dist/types/head/MRT_TableHeadCellGrabHandle.d.ts +0 -10
  71. package/dist/types/head/MRT_TableHeadCellResizeHandle.d.ts +0 -8
  72. package/dist/types/head/MRT_TableHeadCellSortLabel.d.ts +0 -8
  73. package/dist/types/head/MRT_TableHeadRow.d.ts +0 -12
  74. package/dist/types/head/index.d.ts +0 -9
  75. package/dist/types/hooks/index.d.ts +0 -4
  76. package/dist/types/hooks/useMRT_DisplayColumns.d.ts +0 -9
  77. package/dist/types/hooks/useMRT_Effects.d.ts +0 -2
  78. package/dist/types/hooks/useMRT_TableInstance.d.ts +0 -2
  79. package/dist/types/hooks/useMRT_TableOptions.d.ts +0 -22
  80. package/dist/types/icons.d.ts +0 -36
  81. package/dist/types/index.d.ts +0 -18
  82. package/dist/types/inputs/MRT_EditCellTextField.d.ts +0 -8
  83. package/dist/types/inputs/MRT_FilterCheckbox.d.ts +0 -8
  84. package/dist/types/inputs/MRT_FilterRangeFields.d.ts +0 -8
  85. package/dist/types/inputs/MRT_FilterRangeSlider.d.ts +0 -8
  86. package/dist/types/inputs/MRT_FilterTextField.d.ts +0 -9
  87. package/dist/types/inputs/MRT_GlobalFilterTextField.d.ts +0 -7
  88. package/dist/types/inputs/MRT_SelectCheckbox.d.ts +0 -9
  89. package/dist/types/inputs/index.d.ts +0 -7
  90. package/dist/types/locales/am.d.ts +0 -2
  91. package/dist/types/locales/ar.d.ts +0 -2
  92. package/dist/types/locales/az.d.ts +0 -2
  93. package/dist/types/locales/bg.d.ts +0 -2
  94. package/dist/types/locales/cs.d.ts +0 -2
  95. package/dist/types/locales/da.d.ts +0 -2
  96. package/dist/types/locales/de.d.ts +0 -2
  97. package/dist/types/locales/en.d.ts +0 -2
  98. package/dist/types/locales/es.d.ts +0 -2
  99. package/dist/types/locales/et.d.ts +0 -2
  100. package/dist/types/locales/fa.d.ts +0 -2
  101. package/dist/types/locales/fi.d.ts +0 -2
  102. package/dist/types/locales/fr.d.ts +0 -2
  103. package/dist/types/locales/hu.d.ts +0 -2
  104. package/dist/types/locales/hy.d.ts +0 -2
  105. package/dist/types/locales/id.d.ts +0 -2
  106. package/dist/types/locales/it.d.ts +0 -2
  107. package/dist/types/locales/ja.d.ts +0 -2
  108. package/dist/types/locales/ko.d.ts +0 -2
  109. package/dist/types/locales/nl.d.ts +0 -2
  110. package/dist/types/locales/no.d.ts +0 -2
  111. package/dist/types/locales/np.d.ts +0 -2
  112. package/dist/types/locales/pl.d.ts +0 -2
  113. package/dist/types/locales/pt-BR.d.ts +0 -2
  114. package/dist/types/locales/pt.d.ts +0 -2
  115. package/dist/types/locales/ro.d.ts +0 -2
  116. package/dist/types/locales/ru.d.ts +0 -2
  117. package/dist/types/locales/sk.d.ts +0 -2
  118. package/dist/types/locales/sr-Cyrl-RS.d.ts +0 -2
  119. package/dist/types/locales/sr-Latn-RS.d.ts +0 -2
  120. package/dist/types/locales/sv.d.ts +0 -2
  121. package/dist/types/locales/tr.d.ts +0 -2
  122. package/dist/types/locales/uk.d.ts +0 -2
  123. package/dist/types/locales/vi.d.ts +0 -2
  124. package/dist/types/locales/zh-Hans.d.ts +0 -2
  125. package/dist/types/locales/zh-Hant.d.ts +0 -2
  126. package/dist/types/menus/MRT_ColumnActionMenu.d.ts +0 -20
  127. package/dist/types/menus/MRT_FilterOptionMenu.d.ts +0 -13
  128. package/dist/types/menus/MRT_RowActionMenu.d.ts +0 -12
  129. package/dist/types/menus/MRT_ShowHideColumnsMenu.d.ts +0 -10
  130. package/dist/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +0 -12
  131. package/dist/types/menus/index.d.ts +0 -5
  132. package/dist/types/modals/MRT_EditRowModal.d.ts +0 -8
  133. package/dist/types/modals/index.d.ts +0 -1
  134. package/dist/types/sortingFns.d.ts +0 -12
  135. package/dist/types/style.utils.d.ts +0 -32
  136. package/dist/types/table/MRT_Table.d.ts +0 -7
  137. package/dist/types/table/MRT_TableContainer.d.ts +0 -7
  138. package/dist/types/table/MRT_TableLoadingOverlay.d.ts +0 -7
  139. package/dist/types/table/MRT_TablePaper.d.ts +0 -7
  140. package/dist/types/table/index.d.ts +0 -5
  141. package/dist/types/toolbar/MRT_BottomToolbar.d.ts +0 -7
  142. package/dist/types/toolbar/MRT_LinearProgressBar.d.ts +0 -8
  143. package/dist/types/toolbar/MRT_TablePagination.d.ts +0 -14
  144. package/dist/types/toolbar/MRT_ToolbarAlertBanner.d.ts +0 -8
  145. package/dist/types/toolbar/MRT_ToolbarDropZone.d.ts +0 -7
  146. package/dist/types/toolbar/MRT_ToolbarInternalButtons.d.ts +0 -7
  147. package/dist/types/toolbar/MRT_TopToolbar.d.ts +0 -6
  148. package/dist/types/toolbar/index.d.ts +0 -7
  149. package/dist/types/types.d.ts +0 -854
  150. package/dist/types/useMaterialReactTable.d.ts +0 -2
@@ -19,12 +19,21 @@ export const MRT_TableHeadCellResizeHandle = <TData extends MRT_RowData>({
19
19
  }: Props<TData>) => {
20
20
  const {
21
21
  getState,
22
- options: { columnResizeMode },
22
+ options: { columnResizeDirection, columnResizeMode },
23
23
  setColumnSizingInfo,
24
24
  } = table;
25
25
  const { density } = getState();
26
26
  const { column } = header;
27
27
 
28
+ const mx =
29
+ density === 'compact'
30
+ ? '-8px'
31
+ : density === 'comfortable'
32
+ ? '-16px'
33
+ : '-24px';
34
+
35
+ const lr = column.columnDef.columnDefType === 'display' ? '4px' : '0';
36
+
28
37
  return (
29
38
  <Box
30
39
  className="Mui-TableHeadCell-ResizeHandle-Wrapper"
@@ -40,7 +49,10 @@ export const MRT_TableHeadCellResizeHandle = <TData extends MRT_RowData>({
40
49
  style={{
41
50
  transform:
42
51
  column.getIsResizing() && columnResizeMode === 'onEnd'
43
- ? `translateX(${getState().columnSizingInfo.deltaOffset ?? 0}px)`
52
+ ? `translateX(${
53
+ (columnResizeDirection === 'rtl' ? -1 : 1) *
54
+ (getState().columnSizingInfo.deltaOffset ?? 0)
55
+ }px)`
44
56
  : undefined,
45
57
  }}
46
58
  sx={(theme) => ({
@@ -50,15 +62,12 @@ export const MRT_TableHeadCellResizeHandle = <TData extends MRT_RowData>({
50
62
  header.subHeaders.length || columnResizeMode === 'onEnd' ? 1 : 0,
51
63
  },
52
64
  cursor: 'col-resize',
53
- mr:
54
- density === 'compact'
55
- ? '-12px'
56
- : density === 'comfortable'
57
- ? '-20px'
58
- : '-28px',
65
+ left: columnResizeDirection === 'rtl' ? lr : undefined,
66
+ ml: columnResizeDirection === 'rtl' ? mx : undefined,
67
+ mr: columnResizeDirection === 'ltr' ? mx : undefined,
59
68
  position: 'absolute',
60
69
  px: '4px',
61
- right: column.columnDef.columnDefType === 'display' ? '4px' : '0',
70
+ right: columnResizeDirection === 'ltr' ? lr : undefined,
62
71
  })}
63
72
  >
64
73
  <Divider
@@ -70,6 +79,7 @@ export const MRT_TableHeadCellResizeHandle = <TData extends MRT_RowData>({
70
79
  borderWidth: '2px',
71
80
  height: '24px',
72
81
  touchAction: 'none',
82
+ transform: 'translateX(4px)',
73
83
  transition: column.getIsResizing()
74
84
  ? undefined
75
85
  : 'all 150ms ease-in-out',
@@ -10,21 +10,12 @@ import {
10
10
  type MRT_ColumnDef,
11
11
  type MRT_ColumnOrderState,
12
12
  type MRT_DefinedTableOptions,
13
+ type MRT_DisplayColumnIds,
13
14
  type MRT_GroupingState,
15
+ type MRT_Localization,
14
16
  type MRT_Row,
15
17
  type MRT_RowData,
16
18
  } from '../types';
17
- import { MRT_DefaultDisplayColumn } from './useMRT_TableOptions';
18
-
19
- const blankColProps = {
20
- children: null,
21
- sx: {
22
- flex: '1 0 auto',
23
- minWidth: 0,
24
- p: 0,
25
- width: 0,
26
- },
27
- };
28
19
 
29
20
  interface Params<TData extends MRT_RowData> {
30
21
  columnOrder: MRT_ColumnOrderState;
@@ -33,124 +24,28 @@ interface Params<TData extends MRT_RowData> {
33
24
  tableOptions: MRT_DefinedTableOptions<TData>;
34
25
  }
35
26
 
36
- export const useMRT_DisplayColumns = <TData extends MRT_RowData>({
37
- columnOrder,
38
- creatingRow,
39
- grouping,
40
- tableOptions,
41
- }: Params<TData>) => {
27
+ export const useMRT_DisplayColumns = <TData extends MRT_RowData>(
28
+ params: Params<TData>,
29
+ ): MRT_ColumnDef<TData>[] => {
30
+ const { columnOrder, creatingRow, grouping, tableOptions } = params;
31
+ const order = tableOptions.state?.columnOrder ?? columnOrder;
32
+
42
33
  return useMemo(
43
34
  () =>
44
- (
45
- [
46
- (tableOptions.state?.columnOrder ?? columnOrder).includes(
47
- 'mrt-row-pin',
48
- ) && {
49
- Cell: ({ row, table }) => (
50
- <MRT_TableBodyRowPinButton row={row} table={table} />
51
- ),
52
- header: tableOptions.localization.pin,
53
- size: 60,
54
- ...tableOptions.displayColumnDefOptions?.['mrt-row-pin'],
55
- columnDefType: 'display',
56
- id: 'mrt-row-pin',
57
- },
58
- (tableOptions.state?.columnOrder ?? columnOrder).includes(
59
- 'mrt-row-drag',
60
- ) && {
61
- Cell: ({ row, rowRef, table }) => (
62
- <MRT_TableBodyRowGrabHandle
63
- row={row}
64
- rowRef={rowRef as RefObject<HTMLTableRowElement>}
65
- table={table}
66
- />
67
- ),
68
- header: tableOptions.localization.move,
69
- size: 60,
70
- ...tableOptions.displayColumnDefOptions?.['mrt-row-drag'],
71
- columnDefType: 'display',
72
- id: 'mrt-row-drag',
73
- },
74
- ((tableOptions.state?.columnOrder ?? columnOrder).includes(
75
- 'mrt-row-actions',
76
- ) ||
77
- (creatingRow && tableOptions.createDisplayMode === 'row')) && {
78
- Cell: ({ cell, row, table }) => (
79
- <MRT_ToggleRowActionMenuButton
80
- cell={cell}
81
- row={row}
82
- table={table}
83
- />
84
- ),
85
- header: tableOptions.localization.actions,
86
- size: 70,
87
- ...tableOptions.displayColumnDefOptions?.['mrt-row-actions'],
88
- columnDefType: 'display',
89
- id: 'mrt-row-actions',
90
- },
91
- (tableOptions.state?.columnOrder ?? columnOrder).includes(
92
- 'mrt-row-expand',
93
- ) &&
94
- showExpandColumn(
95
- tableOptions,
96
- tableOptions.state?.grouping ?? grouping,
97
- ) && {
98
- Cell: ({ row, table }) => (
99
- <MRT_ExpandButton row={row} table={table} />
100
- ),
101
- Header: tableOptions.enableExpandAll
102
- ? ({ table }) => <MRT_ExpandAllButton table={table} />
103
- : null,
104
- header: tableOptions.localization.expand,
105
- size: 60,
106
- ...tableOptions.displayColumnDefOptions?.['mrt-row-expand'],
107
- columnDefType: 'display',
108
- id: 'mrt-row-expand',
109
- },
110
- (tableOptions.state?.columnOrder ?? columnOrder).includes(
111
- 'mrt-row-select',
112
- ) && {
113
- Cell: ({ row, table }) => (
114
- <MRT_SelectCheckbox row={row} table={table} />
115
- ),
116
- Header:
117
- tableOptions.enableSelectAll &&
118
- tableOptions.enableMultiRowSelection
119
- ? ({ table }) => <MRT_SelectCheckbox selectAll table={table} />
120
- : null,
121
- header: tableOptions.localization.select,
122
- size: 60,
123
- ...tableOptions.displayColumnDefOptions?.['mrt-row-select'],
124
- columnDefType: 'display',
125
- id: 'mrt-row-select',
126
- },
127
- (tableOptions.state?.columnOrder ?? columnOrder).includes(
128
- 'mrt-row-numbers',
129
- ) && {
130
- Cell: ({ row }) => row.index + 1,
131
- Header: () => tableOptions.localization.rowNumber,
132
- header: tableOptions.localization.rowNumbers,
133
- size: 60,
134
- ...tableOptions.displayColumnDefOptions?.['mrt-row-numbers'],
135
- columnDefType: 'display',
136
- id: 'mrt-row-numbers',
137
- },
138
- (tableOptions.state?.columnOrder ?? columnOrder).includes(
139
- 'mrt-row-spacer',
140
- ) && {
141
- ...tableOptions.displayColumnDefOptions?.['mrt-row-spacer'],
142
- ...MRT_DefaultDisplayColumn,
143
- columnDefType: 'display',
144
- header: '',
145
- id: 'mrt-row-spacer',
146
- muiTableBodyCellProps: blankColProps,
147
- muiTableFooterCellProps: blankColProps,
148
- muiTableHeadCellProps: blankColProps,
149
- },
150
- ] as MRT_ColumnDef<TData>[]
151
- ).filter(Boolean),
35
+ [
36
+ makeRowPinColumn,
37
+ makeRowDragColumn,
38
+ makeRowActionsColumn,
39
+ makeRowExpandColumn,
40
+ makeRowSelectColumn,
41
+ makeRowNumbersColumn,
42
+ makeSpacerColumn,
43
+ ]
44
+ .map((makeCol) => makeCol(params, order))
45
+ .filter(Boolean) as MRT_ColumnDef<TData>[],
152
46
  [
153
47
  columnOrder,
48
+ creatingRow,
154
49
  grouping,
155
50
  tableOptions.displayColumnDefOptions,
156
51
  tableOptions.editDisplayMode,
@@ -177,3 +72,155 @@ export const useMRT_DisplayColumns = <TData extends MRT_RowData>({
177
72
  ],
178
73
  );
179
74
  };
75
+
76
+ function defaultDisplayColumnProps<TData extends MRT_RowData>(
77
+ {
78
+ defaultDisplayColumn,
79
+ displayColumnDefOptions,
80
+ localization,
81
+ }: MRT_DefinedTableOptions<TData>,
82
+ id: MRT_DisplayColumnIds,
83
+ header?: keyof MRT_Localization,
84
+ size = 60,
85
+ ) {
86
+ return {
87
+ ...defaultDisplayColumn,
88
+ header: header ? localization[header]! : '',
89
+ size,
90
+ ...displayColumnDefOptions?.[id],
91
+ id,
92
+ } as const;
93
+ }
94
+
95
+ function makeRowPinColumn<TData extends MRT_RowData>(
96
+ { tableOptions }: Params<TData>,
97
+ order: MRT_ColumnOrderState,
98
+ ): MRT_ColumnDef<TData> | null {
99
+ const id: MRT_DisplayColumnIds = 'mrt-row-pin';
100
+ if (order.includes(id)) {
101
+ return {
102
+ Cell: ({ row, table }) => (
103
+ <MRT_TableBodyRowPinButton row={row} table={table} />
104
+ ),
105
+ ...defaultDisplayColumnProps(tableOptions, id, 'pin'),
106
+ };
107
+ }
108
+ return null;
109
+ }
110
+
111
+ function makeRowDragColumn<TData extends MRT_RowData>(
112
+ { tableOptions }: Params<TData>,
113
+ order: MRT_ColumnOrderState,
114
+ ): MRT_ColumnDef<TData> | null {
115
+ const id: MRT_DisplayColumnIds = 'mrt-row-drag';
116
+ if (order.includes(id)) {
117
+ return {
118
+ Cell: ({ row, rowRef, table }) => (
119
+ <MRT_TableBodyRowGrabHandle
120
+ row={row}
121
+ rowRef={rowRef as RefObject<HTMLTableRowElement>}
122
+ table={table}
123
+ />
124
+ ),
125
+ ...defaultDisplayColumnProps(tableOptions, id, 'move'),
126
+ };
127
+ }
128
+ return null;
129
+ }
130
+
131
+ function makeRowActionsColumn<TData extends MRT_RowData>(
132
+ { creatingRow, tableOptions }: Params<TData>,
133
+ order: MRT_ColumnOrderState,
134
+ ): MRT_ColumnDef<TData> | null {
135
+ const id: MRT_DisplayColumnIds = 'mrt-row-actions';
136
+ if (
137
+ order.includes(id) ||
138
+ (creatingRow && tableOptions.createDisplayMode === 'row')
139
+ ) {
140
+ return {
141
+ Cell: ({ cell, row, table }) => (
142
+ <MRT_ToggleRowActionMenuButton cell={cell} row={row} table={table} />
143
+ ),
144
+ ...defaultDisplayColumnProps(tableOptions, id, 'actions'),
145
+ };
146
+ }
147
+ return null;
148
+ }
149
+
150
+ function makeRowExpandColumn<TData extends MRT_RowData>(
151
+ { grouping, tableOptions }: Params<TData>,
152
+ order: MRT_ColumnOrderState,
153
+ ): MRT_ColumnDef<TData> | null {
154
+ const id: MRT_DisplayColumnIds = 'mrt-row-expand';
155
+ if (
156
+ order.includes(id) &&
157
+ showExpandColumn(tableOptions, tableOptions.state?.grouping ?? grouping)
158
+ ) {
159
+ return {
160
+ Cell: ({ row, table }) => <MRT_ExpandButton row={row} table={table} />,
161
+ Header: tableOptions.enableExpandAll
162
+ ? ({ table }) => <MRT_ExpandAllButton table={table} />
163
+ : undefined,
164
+ ...defaultDisplayColumnProps(tableOptions, id, 'expand'),
165
+ };
166
+ }
167
+ return null;
168
+ }
169
+
170
+ function makeRowSelectColumn<TData extends MRT_RowData>(
171
+ { tableOptions }: Params<TData>,
172
+ order: MRT_ColumnOrderState,
173
+ ): MRT_ColumnDef<TData> | null {
174
+ const id: MRT_DisplayColumnIds = 'mrt-row-select';
175
+ if (order.includes(id)) {
176
+ return {
177
+ Cell: ({ row, table }) => <MRT_SelectCheckbox row={row} table={table} />,
178
+ Header:
179
+ tableOptions.enableSelectAll && tableOptions.enableMultiRowSelection
180
+ ? ({ table }) => <MRT_SelectCheckbox selectAll table={table} />
181
+ : undefined,
182
+ ...defaultDisplayColumnProps(tableOptions, id, 'select'),
183
+ };
184
+ }
185
+ return null;
186
+ }
187
+
188
+ function makeRowNumbersColumn<TData extends MRT_RowData>(
189
+ { tableOptions }: Params<TData>,
190
+ order: MRT_ColumnOrderState,
191
+ ): MRT_ColumnDef<TData> | null {
192
+ const id: MRT_DisplayColumnIds = 'mrt-row-numbers';
193
+ if (order.includes(id) || tableOptions.enableRowNumbers)
194
+ return {
195
+ Cell: ({ row }) => row.index + 1,
196
+ Header: () => tableOptions.localization.rowNumber,
197
+ ...defaultDisplayColumnProps(tableOptions, id, 'rowNumbers'),
198
+ };
199
+ return null;
200
+ }
201
+
202
+ const blankColProps = {
203
+ children: null,
204
+ sx: {
205
+ flex: '1 0 auto',
206
+ minWidth: 0,
207
+ p: 0,
208
+ width: 0,
209
+ },
210
+ };
211
+
212
+ function makeSpacerColumn<TData extends MRT_RowData>(
213
+ { tableOptions }: Params<TData>,
214
+ order: MRT_ColumnOrderState,
215
+ ): MRT_ColumnDef<TData> | null {
216
+ const id: MRT_DisplayColumnIds = 'mrt-row-spacer';
217
+ if (order.includes(id)) {
218
+ return {
219
+ ...defaultDisplayColumnProps(tableOptions, id, undefined, 0),
220
+ muiTableBodyCellProps: blankColProps,
221
+ muiTableFooterCellProps: blankColProps,
222
+ muiTableHeadCellProps: blankColProps,
223
+ };
224
+ }
225
+ return null;
226
+ }
@@ -1,4 +1,5 @@
1
1
  import { useMemo } from 'react';
2
+ import { useTheme } from '@mui/material';
2
3
  import { MRT_AggregationFns } from '../aggregationFns';
3
4
  import { MRT_FilterFns } from '../filterFns';
4
5
  import { MRT_Default_Icons } from '../icons';
@@ -38,6 +39,7 @@ export const useMRT_TableOptions: <TData extends MRT_RowData>(
38
39
  aggregationFns,
39
40
  autoResetExpanded = false,
40
41
  columnFilterDisplayMode = 'subheader',
42
+ columnResizeDirection,
41
43
  columnResizeMode = 'onChange',
42
44
  createDisplayMode = 'modal',
43
45
  defaultColumn,
@@ -92,6 +94,7 @@ export const useMRT_TableOptions: <TData extends MRT_RowData>(
92
94
  sortingFns,
93
95
  ...rest
94
96
  }: MRT_TableOptions<TData>) => {
97
+ const theme = useTheme();
95
98
  const _icons = useMemo(() => ({ ...MRT_Default_Icons, ...icons }), [icons]);
96
99
  const _localization = useMemo(
97
100
  () => ({
@@ -118,6 +121,10 @@ export const useMRT_TableOptions: <TData extends MRT_RowData>(
118
121
  [defaultDisplayColumn],
119
122
  );
120
123
 
124
+ if (!columnResizeDirection) {
125
+ columnResizeDirection = theme.direction || 'ltr';
126
+ }
127
+
121
128
  layoutMode =
122
129
  layoutMode || (enableColumnResizing ? 'grid-no-grow' : 'semantic');
123
130
  if (
@@ -146,6 +153,7 @@ export const useMRT_TableOptions: <TData extends MRT_RowData>(
146
153
  aggregationFns: _aggregationFns,
147
154
  autoResetExpanded,
148
155
  columnFilterDisplayMode,
156
+ columnResizeDirection,
149
157
  columnResizeMode,
150
158
  createDisplayMode,
151
159
  defaultColumn: _defaultColumn,
@@ -127,7 +127,9 @@ export const MRT_EditCellTextField = <TData extends MRT_RowData>({
127
127
  variant="standard"
128
128
  {...textFieldProps}
129
129
  InputProps={{
130
- disableUnderline: editDisplayMode === 'table',
130
+ ...(textFieldProps.variant !== 'outlined'
131
+ ? { disableUnderline: editDisplayMode === 'table' }
132
+ : {}),
131
133
  ...textFieldProps.InputProps,
132
134
  sx: (theme) => ({
133
135
  mb: 0,
@@ -63,8 +63,8 @@ export const MRT_FilterCheckbox = <TData extends MRT_RowData>({
63
63
  column.getFilterValue() === undefined
64
64
  ? 'true'
65
65
  : column.getFilterValue() === 'true'
66
- ? 'false'
67
- : undefined,
66
+ ? 'false'
67
+ : undefined,
68
68
  );
69
69
  checkboxProps?.onChange?.(e, checked);
70
70
  }}
@@ -107,10 +107,10 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
107
107
  ? textFieldProps?.placeholder ??
108
108
  localization.filterByColumn?.replace('{column}', String(columnDef.header))
109
109
  : rangeFilterIndex === 0
110
- ? localization.min
111
- : rangeFilterIndex === 1
112
- ? localization.max
113
- : '';
110
+ ? localization.min
111
+ : rangeFilterIndex === 1
112
+ ? localization.max
113
+ : '';
114
114
  const allowedColumnFilterOptions =
115
115
  columnDef?.columnFilterModeOptions ?? columnFilterModeOptions;
116
116
  const showChangeModeButton =
@@ -127,10 +127,10 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
127
127
  isMultiSelectFilter
128
128
  ? (column.getFilterValue() as string[]) || []
129
129
  : isRangeFilter
130
- ? (column.getFilterValue() as [string, string])?.[
131
- rangeFilterIndex as number
132
- ] || ''
133
- : (column.getFilterValue() as string) ?? '',
130
+ ? (column.getFilterValue() as [string, string])?.[
131
+ rangeFilterIndex as number
132
+ ] || ''
133
+ : (column.getFilterValue() as string) ?? '',
134
134
  );
135
135
 
136
136
  const handleChangeDebounced = useCallback(
@@ -161,8 +161,8 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
161
161
  textFieldProps.type === 'date'
162
162
  ? event.target.valueAsDate
163
163
  : textFieldProps.type === 'number'
164
- ? event.target.valueAsNumber
165
- : event.target.value;
164
+ ? event.target.valueAsNumber
165
+ : event.target.value;
166
166
  handleChange(newValue);
167
167
  textFieldProps?.onChange?.(event);
168
168
  };
@@ -290,7 +290,7 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
290
290
  whiteSpace: 'nowrap',
291
291
  },
292
292
  },
293
- InputProps: endAdornment //hack because mui looks for presense of endAdornment key instead of undefined
293
+ InputProps: endAdornment //hack because mui looks for presence of endAdornment key instead of undefined
294
294
  ? { endAdornment, startAdornment }
295
295
  : { startAdornment },
296
296
  fullWidth: true,
@@ -337,12 +337,12 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
337
337
  minWidth: isDateFilter
338
338
  ? '160px'
339
339
  : enableColumnFilterModes && rangeFilterIndex === 0
340
- ? '110px'
341
- : isRangeFilter
342
- ? '100px'
343
- : !filterChipLabel
344
- ? '120px'
345
- : 'auto',
340
+ ? '110px'
341
+ : isRangeFilter
342
+ ? '100px'
343
+ : !filterChipLabel
344
+ ? '120px'
345
+ : 'auto',
346
346
  mx: '-2px',
347
347
  p: 0,
348
348
  width: 'calc(100% + 4px)',
@@ -62,8 +62,8 @@ export const MRT_SelectCheckbox = <TData extends MRT_RowData>({
62
62
  row
63
63
  ? row.getToggleSelectedHandler()(event)
64
64
  : selectAllMode === 'all'
65
- ? table.getToggleAllRowsSelectedHandler()(event)
66
- : table.getToggleAllPageRowsSelectedHandler()(event);
65
+ ? table.getToggleAllRowsSelectedHandler()(event)
66
+ : table.getToggleAllPageRowsSelectedHandler()(event);
67
67
  if (enableRowPinning && rowPinningDisplayMode?.includes('select')) {
68
68
  if (row) {
69
69
  row.pin(
package/src/locales/fr.ts CHANGED
@@ -51,7 +51,7 @@ export const MRT_Localization_FR: MRT_Localization = {
51
51
  groupByColumn: 'Grouper par {column}',
52
52
  groupedBy: 'Groupé par ',
53
53
  hideAll: 'Cacher tout',
54
- hideColumn: 'Cacher {column} colonne',
54
+ hideColumn: 'Cacher colonne {column}',
55
55
  max: 'Max',
56
56
  min: 'Min',
57
57
  move: 'Déplacer',
@@ -0,0 +1,94 @@
1
+ import { type MRT_Localization } from '..';
2
+
3
+ export const MRT_Localization_HE: MRT_Localization = {
4
+ actions: 'פעולות',
5
+ and: 'ו',
6
+ cancel: 'ביטול',
7
+ changeFilterMode: 'שינוי מצב סינון',
8
+ changeSearchMode: 'שינוי מצב חיפוש',
9
+ clearFilter: 'נקה סינון',
10
+ clearSearch: 'נקה חיפוש',
11
+ clearSort: 'נקה מיון',
12
+ clickToCopy: 'לחץ להעתקה',
13
+ collapse: 'צמצום',
14
+ collapseAll: 'צמצום הכל',
15
+ columnActions: 'פעולות עמודה',
16
+ copiedToClipboard: 'הועתק ללוח',
17
+ dropToGroupBy: 'גרור לקיבוץ לפי {column}',
18
+ edit: 'ערוך',
19
+ expand: 'הרחב',
20
+ expandAll: 'הרחב הכל',
21
+ filterArrIncludes: 'כולל',
22
+ filterArrIncludesAll: 'כולל הכל',
23
+ filterArrIncludesSome: 'כולל',
24
+ filterBetween: 'בין',
25
+ filterBetweenInclusive: 'בין כולל',
26
+ filterByColumn: 'סנן לפי {column}',
27
+ filterContains: 'מכיל',
28
+ filterEmpty: 'ריק',
29
+ filterEndsWith: 'מסתיים ב',
30
+ filterEquals: 'שווה',
31
+ filterEqualsString: 'שווה',
32
+ filterFuzzy: 'פעיל',
33
+ filterGreaterThan: 'גדול מ',
34
+ filterGreaterThanOrEqualTo: 'גדול או שווה ל',
35
+ filterInNumberRange: 'בין',
36
+ filterIncludesString: 'מכיל',
37
+ filterIncludesStringSensitive: 'מכיל',
38
+ filterLessThan: 'קטן מ',
39
+ filterLessThanOrEqualTo: 'קטן או שווה ל',
40
+ filterMode: 'מצב סינון: {filterType}',
41
+ filterNotEmpty: 'לא ריק',
42
+ filterNotEquals: 'לא שווה',
43
+ filterStartsWith: 'מתחיל ב',
44
+ filterWeakEquals: 'שווה',
45
+ filteringByColumn: 'מסנן לפי {column} - {filterType} {filterValue}',
46
+ goToFirstPage: 'לדף הראשון',
47
+ goToLastPage: 'לדף האחרון',
48
+ goToNextPage: 'לדף הבא',
49
+ goToPreviousPage: 'לדף הקודם',
50
+ grab: 'תפוס',
51
+ groupByColumn: 'קיבוץ לפי {column}',
52
+ groupedBy: 'קובץ לפי',
53
+ hideAll: 'הסתר הכל',
54
+ hideColumn: 'הסתר עמודה {column}',
55
+ max: 'מקסימום',
56
+ min: 'מינימום',
57
+ move: 'הזז',
58
+ noRecordsToDisplay: 'אין רשומות להצגה',
59
+ noResultsFound: 'לא נמצאו תוצאות',
60
+ of: 'מתוך',
61
+ or: 'או',
62
+ pin: 'נעץ',
63
+ pinToLeft: 'נעץ לשמאל',
64
+ pinToRight: 'נעץ לימין',
65
+ resetColumnSize: 'איפוס גודל עמודה',
66
+ resetOrder: 'איפוס סדר',
67
+ rowActions: 'פעולות שורה',
68
+ rowNumber: '#',
69
+ rowNumbers: 'מספרי שורות',
70
+ rowsPerPage: 'שורות לעמוד',
71
+ save: 'שמור',
72
+ search: 'חיפוש',
73
+ selectedCountOfRowCountRowsSelected:
74
+ '{selectedCount} מתוך {rowCount} שורות נבחרו',
75
+ select: 'בחר',
76
+ showAll: 'הצג הכל',
77
+ showAllColumns: 'הצג את כל העמודות',
78
+ showHideColumns: 'הצג/הסתר עמודות',
79
+ showHideFilters: 'הצג/הסתר סינונים',
80
+ showHideSearch: 'הצג/הסתר חיפוש',
81
+ sortByColumnAsc: 'מיין לפי {column} בסדר עולה',
82
+ sortByColumnDesc: 'מיין לפי {column} בסדר יורד',
83
+ sortedByColumnAsc: 'ממוין לפי {column} בסדר עולה',
84
+ sortedByColumnDesc: 'ממוין לפי {column} בסדר יורד',
85
+ thenBy: ', ואז לפי ',
86
+ toggleDensity: 'שנה צפיפות',
87
+ toggleFullScreen: 'מסך מלא',
88
+ toggleSelectAll: 'בחר/בטל בחירת הכל',
89
+ toggleSelectRow: 'בחר/בטל בחירת שורה',
90
+ toggleVisibility: 'הצג/הסתר',
91
+ ungroupByColumn: 'בטל קיבוץ לפי {column}',
92
+ unpin: 'בטל נעיצה',
93
+ unpinAll: 'בטל נעיצת הכל',
94
+ };
@@ -106,8 +106,8 @@ export const MRT_ShowHideColumnsMenuItems = <TData extends MRT_RowData>({
106
106
  outline: isDragging
107
107
  ? `2px dashed ${theme.palette.grey[500]}`
108
108
  : hoveredColumn?.id === column.id
109
- ? `2px dashed ${getMRTTheme(table, theme).draggingBorderColor}`
110
- : 'none',
109
+ ? `2px dashed ${getMRTTheme(table, theme).draggingBorderColor}`
110
+ : 'none',
111
111
  outlineOffset: '-2px',
112
112
  pl: `${(column.depth + 0.5) * 2}rem`,
113
113
  py: '6px',
@@ -83,8 +83,8 @@ export const getCommonMRTCellStyles = <TData extends MRT_RowData>({
83
83
  boxShadow: getIsLastLeftPinnedColumn(table, column)
84
84
  ? `-4px 0 8px -6px ${alpha(theme.palette.grey[700], 0.5)} inset`
85
85
  : getIsFirstRightPinnedColumn(column)
86
- ? `4px 0 8px -6px ${alpha(theme.palette.grey[700], 0.5)} inset`
87
- : undefined,
86
+ ? `4px 0 8px -6px ${alpha(theme.palette.grey[700], 0.5)} inset`
87
+ : undefined,
88
88
  display: layoutMode?.startsWith('grid') ? 'flex' : undefined,
89
89
  left:
90
90
  column.getIsPinned() === 'left'