material-react-table 2.0.5 → 2.1.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 (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'