material-react-table 0.2.0 → 0.3.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 (37) hide show
  1. package/dist/MaterialReactTable.d.ts +26 -25
  2. package/dist/head/MRT_TableHeadCell.d.ts +0 -1
  3. package/dist/index.d.ts +3 -1
  4. package/dist/material-react-table.cjs.development.js +147 -104
  5. package/dist/material-react-table.cjs.development.js.map +1 -1
  6. package/dist/material-react-table.cjs.production.min.js +1 -1
  7. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  8. package/dist/material-react-table.esm.js +149 -106
  9. package/dist/material-react-table.esm.js.map +1 -1
  10. package/dist/useMaterialReactTable.d.ts +3 -4
  11. package/dist/utils/localization.d.ts +2 -0
  12. package/dist/utils/overrideWarnings.d.ts +1 -1
  13. package/package.json +1 -1
  14. package/src/MaterialReactTable.tsx +48 -43
  15. package/src/body/MRT_TableBody.tsx +3 -3
  16. package/src/body/MRT_TableBodyCell.tsx +21 -9
  17. package/src/body/MRT_TableBodyRow.tsx +8 -6
  18. package/src/body/MRT_TableDetailPanel.tsx +3 -3
  19. package/src/buttons/MRT_ExpandAllButton.tsx +2 -2
  20. package/src/buttons/MRT_ExpandButton.tsx +5 -2
  21. package/src/buttons/MRT_ToggleColumnActionMenuButton.tsx +2 -0
  22. package/src/footer/MRT_TableFooter.tsx +3 -3
  23. package/src/footer/MRT_TableFooterCell.tsx +3 -3
  24. package/src/footer/MRT_TableFooterRow.tsx +9 -5
  25. package/src/footer/MRT_TablePagination.tsx +7 -4
  26. package/src/head/MRT_TableHead.tsx +5 -5
  27. package/src/head/MRT_TableHeadCell.tsx +22 -16
  28. package/src/head/MRT_TableHeadRow.tsx +7 -9
  29. package/src/index.tsx +6 -1
  30. package/src/inputs/MRT_SearchTextField.tsx +16 -7
  31. package/src/inputs/MRT_SelectAllCheckbox.tsx +4 -1
  32. package/src/inputs/MRT_SelectCheckbox.tsx +1 -1
  33. package/src/menus/MRT_ColumnActionMenu.tsx +43 -23
  34. package/src/toolbar/MRT_Toolbar.tsx +3 -3
  35. package/src/useMaterialReactTable.tsx +24 -11
  36. package/src/utils/localization.ts +5 -1
  37. package/src/utils/overrideWarnings.ts +12 -12
@@ -1,12 +1,13 @@
1
1
  import React, { useMemo, useContext, createContext, useState } from 'react';
2
- import { useTable, useFlexLayout, useResizeColumns, useFilters, useGlobalFilter, useSortBy, useExpanded, usePagination, useRowSelect, useAsyncDebounce } from 'react-table';
3
- import { TextField as TextField$1, InputAdornment, IconButton as IconButton$1, Menu, Divider, styled, MenuItem as MenuItem$1, TableSortLabel, Collapse, TableCell as TableCell$2, Checkbox, FormControlLabel, Switch, Typography, TableRow, TablePagination, TableHead, LinearProgress, CircularProgress, TableBody as TableBody$1, TableFooter, Table, Toolbar as Toolbar$1, TableContainer, Paper } from '@mui/material';
2
+ import { useTable, useFlexLayout, useResizeColumns, useFilters, useGlobalFilter, useGroupBy, useSortBy, useExpanded, usePagination, useRowSelect, useAsyncDebounce } from 'react-table';
3
+ import { TextField as TextField$1, InputAdornment, IconButton as IconButton$1, Menu, Divider as Divider$1, styled, MenuItem as MenuItem$1, TableSortLabel, Collapse, TableCell as TableCell$2, Checkbox, FormControlLabel, Switch, Typography, TableRow, TablePagination, TableHead, LinearProgress, CircularProgress, TableBody as TableBody$1, TableFooter, Table, Toolbar as Toolbar$1, TableContainer, Paper } from '@mui/material';
4
4
  import CloseIcon from '@mui/icons-material/Close';
5
5
  import FilterIcon from '@mui/icons-material/FilterList';
6
6
  import MoreVertIcon from '@mui/icons-material/MoreVert';
7
7
  import ClearAllIcon from '@mui/icons-material/ClearAll';
8
8
  import SortIcon from '@mui/icons-material/Sort';
9
9
  import VisibilityOffIcon from '@mui/icons-material/VisibilityOff';
10
+ import DynamicFeedIcon from '@mui/icons-material/DynamicFeed';
10
11
  import ArrowRightIcon from '@mui/icons-material/KeyboardDoubleArrowDown';
11
12
  import ViewColumnIcon from '@mui/icons-material/ViewColumn';
12
13
  import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
@@ -75,48 +76,48 @@ var useMRTCalcs = function useMRTCalcs(_ref) {
75
76
  };
76
77
  };
77
78
 
78
- var showOverrideWarnings = function showOverrideWarnings(props) {
79
- if (props.OverrideTableBodyCellComponent) {
79
+ var showoverrideWarnings = function showoverrideWarnings(props) {
80
+ if (props.overrideTableBodyCellComponent) {
80
81
  showWarning('TableCell', 'props');
81
82
  }
82
83
 
83
- if (props.OverrideTableBodyComponent) {
84
+ if (props.overrideTableBodyComponent) {
84
85
  showWarning('TableBody', 'tableBodyProps');
85
86
  }
86
87
 
87
- if (props.OverrideTableBodyRowComponent) {
88
+ if (props.overrideTableBodyRowComponent) {
88
89
  showWarning('TableRow', 'props');
89
90
  }
90
91
 
91
- if (props.OverrideTableDetailPanelComponent) {
92
+ if (props.overrideTableDetailPanelComponent) {
92
93
  showWarning('Detail Panel', 'tableDetailPanelProps');
93
94
  }
94
95
 
95
- if (props.OverrideTableFooterComponent) {
96
+ if (props.overrideTableFooterComponent) {
96
97
  showWarning('TableFooter', 'tableFooterProps');
97
98
  }
98
99
 
99
- if (props.OverrideTableFooterCellComponent) {
100
+ if (props.overrideTableFooterCellComponent) {
100
101
  showWarning('TableCell', 'props');
101
102
  }
102
103
 
103
- if (props.OverrideTableFooterRowComponent) {
104
+ if (props.overrideTableFooterRowComponent) {
104
105
  showWarning('TableRow', 'props');
105
106
  }
106
107
 
107
- if (props.OverrideTableHeadComponent) {
108
+ if (props.overrideTableHeadComponent) {
108
109
  showWarning('TableHead', 'tableHeadProps');
109
110
  }
110
111
 
111
- if (props.OverrideTableHeadRowComponent) {
112
+ if (props.overrideTableHeadRowComponent) {
112
113
  showWarning('TableRow', 'props');
113
114
  }
114
115
 
115
- if (props.OverrideTablePaginationComponent) {
116
+ if (props.overrideTablePaginationComponent) {
116
117
  showWarning('', 'props');
117
118
  }
118
119
 
119
- if (props.OverrideTableToolbarComponent) {
120
+ if (props.overrideTableToolbarComponent) {
120
121
  showWarning('TableBodyCell', 'props');
121
122
  }
122
123
  };
@@ -125,7 +126,7 @@ var showWarning = function showWarning(componentName, propsName) {
125
126
  console.warn("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 + ".");
126
127
  };
127
128
 
128
- var _excluded = ["children", "columns", "data", "surpressOverrideWarnings"];
129
+ var _excluded = ["children", "columns", "data", "defaultColumn", "getRowId", "getSubRows", "initialState", "stateReducer", "surpressoverrideWarnings"];
129
130
 
130
131
  var MaterialReactTableContext = /*#__PURE__*/function () {
131
132
  return createContext({});
@@ -135,27 +136,34 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(_ref) {
135
136
  var children = _ref.children,
136
137
  columns = _ref.columns,
137
138
  data = _ref.data,
138
- surpressOverrideWarnings = _ref.surpressOverrideWarnings,
139
+ defaultColumn = _ref.defaultColumn,
140
+ getRowId = _ref.getRowId,
141
+ getSubRows = _ref.getSubRows,
142
+ initialState = _ref.initialState,
143
+ stateReducer = _ref.stateReducer,
144
+ surpressoverrideWarnings = _ref.surpressoverrideWarnings,
139
145
  rest = _objectWithoutPropertiesLoose(_ref, _excluded);
140
146
 
141
147
  var tableInstance = useTable({
142
148
  columns: columns,
143
- data: data
144
- }, useFlexLayout, useResizeColumns, useFilters, useGlobalFilter, useSortBy, useExpanded, usePagination, useRowSelect);
149
+ data: data,
150
+ defaultColumn: defaultColumn,
151
+ getRowId: getRowId,
152
+ getSubRows: getSubRows,
153
+ initialState: initialState,
154
+ stateReducer: stateReducer
155
+ }, useFlexLayout, useResizeColumns, useFilters, useGlobalFilter, useGroupBy, useSortBy, useExpanded, usePagination, useRowSelect);
145
156
  var mrtCalcs = useMRTCalcs({
146
157
  tableInstance: tableInstance
147
158
  });
148
159
 
149
- if (process.env.NODE_ENV !== 'production' && !surpressOverrideWarnings) {
150
- showOverrideWarnings(rest);
160
+ if (process.env.NODE_ENV !== 'production' && !surpressoverrideWarnings) {
161
+ showoverrideWarnings(rest);
151
162
  }
152
163
 
153
- return React.createElement(MaterialReactTableContext.Provider //@ts-ignore
154
- , {
155
- //@ts-ignore
164
+ return React.createElement(MaterialReactTableContext.Provider, {
156
165
  value: _extends({
157
- columns: columns,
158
- data: data,
166
+ //@ts-ignore
159
167
  tableInstance: tableInstance
160
168
  }, mrtCalcs, rest)
161
169
  }, children);
@@ -227,6 +235,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
227
235
 
228
236
  var _useMaterialReactTabl = useMaterialReactTable(),
229
237
  enableColumnHiding = _useMaterialReactTabl.enableColumnHiding,
238
+ enableColumnGrouping = _useMaterialReactTabl.enableColumnGrouping,
230
239
  enableSorting = _useMaterialReactTabl.enableSorting,
231
240
  localization = _useMaterialReactTabl.localization;
232
241
 
@@ -250,34 +259,52 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
250
259
  setAnchorEl(null);
251
260
  };
252
261
 
262
+ var handleGroupByColumn = function handleGroupByColumn() {
263
+ column.toggleGroupBy();
264
+ setAnchorEl(null);
265
+ };
266
+
253
267
  return React.createElement(Menu, {
254
268
  anchorEl: anchorEl,
255
269
  open: !!anchorEl,
256
270
  onClose: function onClose() {
257
271
  return setAnchorEl(null);
258
272
  }
259
- }, enableSorting && React.createElement(React.Fragment, null, React.createElement(MenuItem, {
273
+ }, enableSorting && [React.createElement(MenuItem, {
274
+ key: 1,
260
275
  disabled: !column.isSorted,
261
276
  onClick: handleClearSort
262
277
  }, React.createElement(ClearAllIcon, null), " ", localization == null ? void 0 : localization.columnActionMenuItemClearSort), React.createElement(MenuItem, {
278
+ key: 2,
263
279
  disabled: column.isSorted && !column.isSortedDesc,
264
280
  onClick: handleSortAsc
265
281
  }, React.createElement(SortIcon, null), " ", localization == null ? void 0 : localization.columnActionMenuItemSortAsc), React.createElement(MenuItem, {
282
+ key: 3,
266
283
  disabled: column.isSorted && column.isSortedDesc,
267
284
  onClick: handleSortDesc
268
285
  }, React.createElement(SortIcon, {
269
286
  style: {
270
287
  transform: 'rotate(180deg) scaleX(-1)'
271
288
  }
272
- }), ' ', localization == null ? void 0 : localization.columnActionMenuItemSortDesc), React.createElement(Divider, null)), enableColumnHiding && React.createElement(MenuItem, {
289
+ }), ' ', localization == null ? void 0 : localization.columnActionMenuItemSortDesc), React.createElement(Divider$1, {
290
+ key: 4
291
+ })], enableColumnHiding && React.createElement(MenuItem, {
273
292
  onClick: handleHideColumn
274
- }, React.createElement(VisibilityOffIcon, null), " ", localization == null ? void 0 : localization.columnActionMenuItemHideColumn));
293
+ }, React.createElement(VisibilityOffIcon, null), " ", localization == null ? void 0 : localization.columnActionMenuItemHideColumn), enableColumnGrouping && column.canGroupBy && React.createElement(MenuItem, {
294
+ disabled: column.isGrouped,
295
+ onClick: handleGroupByColumn
296
+ }, React.createElement(DynamicFeedIcon, null), " ", localization == null ? void 0 : localization.columnActionMenuItemGroupBy), enableColumnGrouping && column.canGroupBy && React.createElement(MenuItem, {
297
+ disabled: !column.isGrouped,
298
+ onClick: handleGroupByColumn
299
+ }, React.createElement(DynamicFeedIcon, null), " ", localization == null ? void 0 : localization.columnActionMenuItemUnGroupBy));
275
300
  };
276
301
 
277
302
  var IconButton = /*#__PURE__*/styled(IconButton$1)({
278
303
  opacity: 0.2,
279
304
  transition: 'opacity 0.2s',
280
305
  marginRight: '2px',
306
+ height: '2rem',
307
+ width: '2rem',
281
308
  '&:hover': {
282
309
  opacity: 1
283
310
  }
@@ -319,51 +346,52 @@ var TableCellContents = /*#__PURE__*/styled('div')({
319
346
  var TableCellText = /*#__PURE__*/styled('div')({
320
347
  width: '100%',
321
348
  display: 'flex',
322
- alignItems: 'center',
323
349
  justifyContent: 'space-between'
324
350
  });
351
+ var CellFlexItem = /*#__PURE__*/styled('span')({
352
+ display: 'flex',
353
+ flexWrap: 'nowrap'
354
+ });
355
+ var Divider = /*#__PURE__*/styled(Divider$1)({
356
+ borderRightWidth: '2px',
357
+ borderRadius: '2px',
358
+ maxHeight: '2rem'
359
+ });
325
360
  var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
326
361
  var _column$columns$lengt, _column$columns;
327
362
 
328
- var column = _ref.column,
329
- index = _ref.index;
363
+ var column = _ref.column;
330
364
 
331
365
  var _useMaterialReactTabl = useMaterialReactTable(),
332
- OverrideTableHeadCellComponent = _useMaterialReactTabl.OverrideTableHeadCellComponent,
366
+ overrideTableHeadCellComponent = _useMaterialReactTabl.overrideTableHeadCellComponent,
333
367
  enableColumnActions = _useMaterialReactTabl.enableColumnActions,
334
368
  enableColumnResizing = _useMaterialReactTabl.enableColumnResizing,
335
369
  enableFiltering = _useMaterialReactTabl.enableFiltering,
336
370
  showFiltersInColumnHead = _useMaterialReactTabl.showFiltersInColumnHead,
337
371
  tableInstance = _useMaterialReactTabl.tableInstance;
338
372
 
339
- if (OverrideTableHeadCellComponent) {
340
- return React.createElement(React.Fragment, null, OverrideTableHeadCellComponent(column, tableInstance));
373
+ if (overrideTableHeadCellComponent) {
374
+ return React.createElement(React.Fragment, null, overrideTableHeadCellComponent(column, tableInstance));
341
375
  }
342
376
 
343
377
  var isParentHeader = ((_column$columns$lengt = column == null ? void 0 : (_column$columns = column.columns) == null ? void 0 : _column$columns.length) != null ? _column$columns$lengt : 0) > 0;
344
- var isLastColumn = !isParentHeader && index === tableInstance.visibleColumns.length - 1 || isParentHeader && index === column.headers.length - 1;
345
378
  return React.createElement(TableCell, Object.assign({
346
379
  align: isParentHeader ? 'center' : 'left'
347
380
  }, column.getHeaderProps()), React.createElement(TableCellContents, null, React.createElement(TableCellText, {
348
381
  style: {
349
382
  justifyContent: isParentHeader ? 'center' : undefined
350
383
  }
351
- }, React.createElement("span", Object.assign({}, column.getSortByToggleProps()), column.render('Header'), !isParentHeader && column.canSort && React.createElement(TableSortLabel, {
384
+ }, React.createElement(CellFlexItem, Object.assign({}, column.getSortByToggleProps()), column.render('Header'), !isParentHeader && column.canSort && React.createElement(TableSortLabel, {
352
385
  active: column.isSorted,
353
- direction: column.isSortedDesc ? 'desc' : 'asc'
354
- })), React.createElement("span", {
386
+ direction: column.isSortedDesc ? 'desc' : 'asc',
355
387
  style: {
356
- display: 'flex'
388
+ margin: 0
357
389
  }
358
- }, enableColumnActions && !isParentHeader && React.createElement(MRT_ToggleColumnActionMenuButton, {
390
+ })), React.createElement(CellFlexItem, null, enableColumnActions && !isParentHeader && React.createElement(MRT_ToggleColumnActionMenuButton, {
359
391
  column: column
360
- }), enableColumnResizing && !isLastColumn && React.createElement(Divider, Object.assign({
392
+ }), enableColumnResizing && !isParentHeader && React.createElement(Divider, Object.assign({
361
393
  flexItem: true,
362
394
  orientation: "vertical",
363
- style: {
364
- borderRightWidth: '2px',
365
- borderRadius: '2px'
366
- },
367
395
  onDoubleClick: function onDoubleClick() {
368
396
  return tableInstance.resetResizing();
369
397
  }
@@ -386,7 +414,7 @@ var MRT_SelectAllCheckbox = function MRT_SelectAllCheckbox() {
386
414
  },
387
415
  variant: "head"
388
416
  }, enableSelectAll ? React.createElement(Checkbox, Object.assign({
389
- "aria-label": ''
417
+ "aria-label": ""
390
418
  }, tableInstance.getToggleAllPageRowsSelectedProps())) : null);
391
419
  };
392
420
 
@@ -394,7 +422,8 @@ var MRT_ExpandAllButton = function MRT_ExpandAllButton() {
394
422
  var _useMaterialReactTabl = useMaterialReactTable(),
395
423
  tableInstance = _useMaterialReactTabl.tableInstance,
396
424
  localization = _useMaterialReactTabl.localization,
397
- anyRowsExpanded = _useMaterialReactTabl.anyRowsExpanded;
425
+ anyRowsExpanded = _useMaterialReactTabl.anyRowsExpanded,
426
+ renderDetailPanel = _useMaterialReactTabl.renderDetailPanel;
398
427
 
399
428
  return React.createElement(TableCell$2, Object.assign({
400
429
  size: "small"
@@ -402,7 +431,7 @@ var MRT_ExpandAllButton = function MRT_ExpandAllButton() {
402
431
  style: {
403
432
  padding: '0.5rem',
404
433
  paddingRight: '0',
405
- width: tableInstance.expandedDepth + 2 + "rem"
434
+ width: (renderDetailPanel ? 2 : tableInstance.expandedDepth + 2) + "rem"
406
435
  }
407
436
  }), React.createElement(IconButton$1, {
408
437
  "aria-label": localization == null ? void 0 : localization.expandAllButtonTitle,
@@ -498,7 +527,7 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
498
527
  var headerGroup = _ref.headerGroup;
499
528
 
500
529
  var _useMaterialReactTabl = useMaterialReactTable(),
501
- OverrideTableHeadRowComponent = _useMaterialReactTabl.OverrideTableHeadRowComponent,
530
+ overrideTableHeadRowComponent = _useMaterialReactTabl.overrideTableHeadRowComponent,
502
531
  anyRowsCanExpand = _useMaterialReactTabl.anyRowsCanExpand,
503
532
  enableColumnHiding = _useMaterialReactTabl.enableColumnHiding,
504
533
  enableExpandAll = _useMaterialReactTabl.enableExpandAll,
@@ -506,8 +535,8 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
506
535
  renderDetailPanel = _useMaterialReactTabl.renderDetailPanel,
507
536
  tableInstance = _useMaterialReactTabl.tableInstance;
508
537
 
509
- if (OverrideTableHeadRowComponent) {
510
- return React.createElement(React.Fragment, null, OverrideTableHeadRowComponent(headerGroup, tableInstance));
538
+ if (overrideTableHeadRowComponent) {
539
+ return React.createElement(React.Fragment, null, overrideTableHeadRowComponent(headerGroup, tableInstance));
511
540
  }
512
541
 
513
542
  var isParentHeader = useMemo(function () {
@@ -518,14 +547,13 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
518
547
  });
519
548
  }, [headerGroup.headers]);
520
549
  return React.createElement(TableRow, Object.assign({}, headerGroup.getHeaderGroupProps()), anyRowsCanExpand || renderDetailPanel ? enableExpandAll && !isParentHeader ? React.createElement(MRT_ExpandAllButton, null) : React.createElement(MRT_TableSpacerCell, {
521
- width: tableInstance.expandedDepth + 0.5 + "rem"
550
+ width: (renderDetailPanel ? 2 : tableInstance.expandedDepth + 0.5) + "rem"
522
551
  }) : null, enableSelection ? !isParentHeader ? React.createElement(MRT_SelectAllCheckbox, null) : React.createElement(MRT_TableSpacerCell, {
523
552
  width: "1rem"
524
553
  }) : null, headerGroup.headers.map(function (column, index) {
525
554
  return React.createElement(MRT_TableHeadCell, {
526
555
  key: index + "-" + column.id,
527
- column: column,
528
- index: index
556
+ column: column
529
557
  });
530
558
  }), enableColumnHiding && !isParentHeader && React.createElement(MRT_ShowHideColumnsButton, null));
531
559
  };
@@ -534,15 +562,15 @@ var MRT_TablePagination = function MRT_TablePagination() {
534
562
  var _useMaterialReactTabl = useMaterialReactTable(),
535
563
  tableInstance = _useMaterialReactTabl.tableInstance,
536
564
  tablePaginationProps = _useMaterialReactTabl.tablePaginationProps,
537
- OverrideTablePaginationComponent = _useMaterialReactTabl.OverrideTablePaginationComponent;
565
+ overrideTablePaginationComponent = _useMaterialReactTabl.overrideTablePaginationComponent;
538
566
 
539
567
  var handleChangeRowsPerPage = function handleChangeRowsPerPage(event) {
540
568
  tableInstance.setPageSize(+event.target.value);
541
569
  tableInstance.gotoPage(0);
542
570
  };
543
571
 
544
- if (OverrideTablePaginationComponent) {
545
- return React.createElement(React.Fragment, null, OverrideTablePaginationComponent(tableInstance));
572
+ if (overrideTablePaginationComponent) {
573
+ return React.createElement(React.Fragment, null, overrideTablePaginationComponent(tableInstance));
546
574
  }
547
575
 
548
576
  return React.createElement(TableRow, null, React.createElement(TablePagination, Object.assign({
@@ -561,18 +589,18 @@ var MRT_TablePagination = function MRT_TablePagination() {
561
589
 
562
590
  var MRT_TableHead = function MRT_TableHead() {
563
591
  var _useMaterialReactTabl = useMaterialReactTable(),
564
- OverrideTableHeadComponent = _useMaterialReactTabl.OverrideTableHeadComponent,
592
+ overrideTableHeadComponent = _useMaterialReactTabl.overrideTableHeadComponent,
565
593
  tableInstance = _useMaterialReactTabl.tableInstance,
566
594
  tableHeadProps = _useMaterialReactTabl.tableHeadProps,
567
595
  enablePagination = _useMaterialReactTabl.enablePagination,
568
- isReloading = _useMaterialReactTabl.isReloading,
596
+ isFetching = _useMaterialReactTabl.isFetching,
569
597
  positionPagination = _useMaterialReactTabl.positionPagination;
570
598
 
571
- if (OverrideTableHeadComponent) {
572
- return React.createElement(React.Fragment, null, OverrideTableHeadComponent(tableInstance));
599
+ if (overrideTableHeadComponent) {
600
+ return React.createElement(React.Fragment, null, overrideTableHeadComponent(tableInstance));
573
601
  }
574
602
 
575
- return React.createElement(TableHead, Object.assign({}, tableHeadProps), isReloading && React.createElement(LinearProgress, null), enablePagination && ['top', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, null), tableInstance.headerGroups.map(function (headerGroup, index) {
603
+ return React.createElement(TableHead, Object.assign({}, tableHeadProps), isFetching && React.createElement(LinearProgress, null), enablePagination && ['top', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, null), tableInstance.headerGroups.map(function (headerGroup, index) {
576
604
  return React.createElement(MRT_TableHeadRow, {
577
605
  key: index + "-" + headerGroup.id,
578
606
  headerGroup: headerGroup
@@ -585,15 +613,19 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
585
613
 
586
614
  var _useMaterialReactTabl = useMaterialReactTable(),
587
615
  tableInstance = _useMaterialReactTabl.tableInstance,
588
- OverrideTableBodyCellComponent = _useMaterialReactTabl.OverrideTableBodyCellComponent;
616
+ overrideTableBodyCellComponent = _useMaterialReactTabl.overrideTableBodyCellComponent,
617
+ onCellClick = _useMaterialReactTabl.onCellClick;
589
618
 
590
- if (OverrideTableBodyCellComponent) {
591
- return React.createElement(React.Fragment, null, OverrideTableBodyCellComponent(cell, tableInstance));
619
+ if (overrideTableBodyCellComponent) {
620
+ return React.createElement(React.Fragment, null, overrideTableBodyCellComponent(cell, tableInstance));
592
621
  }
593
622
 
594
623
  return React.createElement(TableCell$2, Object.assign({
624
+ onClick: function onClick(event) {
625
+ return onCellClick == null ? void 0 : onCellClick(event, cell);
626
+ },
595
627
  variant: "body"
596
- }, cell.getCellProps()), cell.render('Cell'));
628
+ }, cell.getCellProps()), cell.isPlaceholder ? null : cell.isAggregated ? cell.render('Aggregated') : cell.isGrouped ? React.createElement("span", null, cell.render('Cell'), " (", cell.row.subRows.length, ")") : cell.render('Cell'));
597
629
  };
598
630
 
599
631
  var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
@@ -602,11 +634,11 @@ var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
602
634
  var _useMaterialReactTabl = useMaterialReactTable(),
603
635
  tableInstance = _useMaterialReactTabl.tableInstance,
604
636
  renderDetailPanel = _useMaterialReactTabl.renderDetailPanel,
605
- OverrideTableDetailPanelComponent = _useMaterialReactTabl.OverrideTableDetailPanelComponent,
637
+ overrideTableDetailPanelComponent = _useMaterialReactTabl.overrideTableDetailPanelComponent,
606
638
  tableDetailPanelProps = _useMaterialReactTabl.tableDetailPanelProps;
607
639
 
608
- if (OverrideTableDetailPanelComponent) {
609
- return React.createElement(React.Fragment, null, OverrideTableDetailPanelComponent(row, tableInstance));
640
+ if (overrideTableDetailPanelComponent) {
641
+ return React.createElement(React.Fragment, null, overrideTableDetailPanelComponent(row, tableInstance));
610
642
  }
611
643
 
612
644
  return React.createElement(TableRow, Object.assign({}, row.getToggleRowExpandedProps()), React.createElement(TableCell$2, Object.assign({
@@ -627,7 +659,8 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
627
659
 
628
660
  var _useMaterialReactTabl = useMaterialReactTable(),
629
661
  localization = _useMaterialReactTabl.localization,
630
- tableInstance = _useMaterialReactTabl.tableInstance;
662
+ tableInstance = _useMaterialReactTabl.tableInstance,
663
+ renderDetailPanel = _useMaterialReactTabl.renderDetailPanel;
631
664
 
632
665
  return React.createElement(TableCell$2, Object.assign({
633
666
  size: "small"
@@ -636,7 +669,7 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
636
669
  padding: '0.5rem',
637
670
  paddingRight: '0',
638
671
  paddingLeft: row.depth + 0.5 + "rem",
639
- width: tableInstance.expandedDepth - row.depth + 2 + "rem"
672
+ width: (renderDetailPanel ? 2 : tableInstance.expandedDepth - row.depth + 2) + "rem"
640
673
  }
641
674
  }), React.createElement(IconButton$1, {
642
675
  "aria-label": localization == null ? void 0 : localization.expandButtonTitle,
@@ -661,7 +694,7 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
661
694
  var _row$getToggleRowSele;
662
695
 
663
696
  (_row$getToggleRowSele = row.getToggleRowSelectedProps()) == null ? void 0 : _row$getToggleRowSele.onChange == null ? void 0 : _row$getToggleRowSele.onChange(event);
664
- onRowSelectChange == null ? void 0 : onRowSelectChange(event, row.state, tableInstance.selectedFlatRows);
697
+ onRowSelectChange == null ? void 0 : onRowSelectChange(event, row, tableInstance.selectedFlatRows);
665
698
  };
666
699
 
667
700
  return React.createElement(TableCell$2, {
@@ -678,7 +711,7 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
678
711
  var row = _ref.row;
679
712
 
680
713
  var _useMaterialReactTabl = useMaterialReactTable(),
681
- OverrideTableBodyRowComponent = _useMaterialReactTabl.OverrideTableBodyRowComponent,
714
+ overrideTableBodyRowComponent = _useMaterialReactTabl.overrideTableBodyRowComponent,
682
715
  anyRowsCanExpand = _useMaterialReactTabl.anyRowsCanExpand,
683
716
  enableSelection = _useMaterialReactTabl.enableSelection,
684
717
  enableSubRowTree = _useMaterialReactTabl.enableSubRowTree,
@@ -687,8 +720,8 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
687
720
  renderDetailPanel = _useMaterialReactTabl.renderDetailPanel,
688
721
  tableInstance = _useMaterialReactTabl.tableInstance;
689
722
 
690
- if (OverrideTableBodyRowComponent) {
691
- return React.createElement(React.Fragment, null, OverrideTableBodyRowComponent(row, tableInstance));
723
+ if (overrideTableBodyRowComponent) {
724
+ return React.createElement(React.Fragment, null, overrideTableBodyRowComponent(row, tableInstance));
692
725
  }
693
726
 
694
727
  return React.createElement(React.Fragment, null, React.createElement(TableRow, Object.assign({
@@ -697,10 +730,8 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
697
730
  }
698
731
  }, row.getRowProps()), (enableSubRowTree && anyRowsCanExpand || renderDetailPanel) && (row.canExpand || renderDetailPanel ? React.createElement(MRT_ExpandButton, {
699
732
  row: row
700
- }) : React.createElement(TableCell$2, {
701
- style: {
702
- width: tableInstance.expandedDepth + 0.5 + "rem"
703
- }
733
+ }) : React.createElement(MRT_TableSpacerCell, {
734
+ width: (renderDetailPanel ? 2 : tableInstance.expandedDepth + 0.5) + "rem"
704
735
  })), enableSelection && React.createElement(MRT_SelectCheckbox, {
705
736
  row: row
706
737
  }), row.cells.map(function (cell, index) {
@@ -732,10 +763,10 @@ var MRT_TableBody = function MRT_TableBody() {
732
763
  tableBodyProps = _useMaterialReactTabl.tableBodyProps,
733
764
  isLoading = _useMaterialReactTabl.isLoading,
734
765
  enablePagination = _useMaterialReactTabl.enablePagination,
735
- OverrideTableBodyComponent = _useMaterialReactTabl.OverrideTableBodyComponent;
766
+ overrideTableBodyComponent = _useMaterialReactTabl.overrideTableBodyComponent;
736
767
 
737
- if (OverrideTableBodyComponent) {
738
- return React.createElement(React.Fragment, null, OverrideTableBodyComponent(tableInstance));
768
+ if (overrideTableBodyComponent) {
769
+ return React.createElement(React.Fragment, null, overrideTableBodyComponent(tableInstance));
739
770
  }
740
771
 
741
772
  var rows = enablePagination ? tableInstance.page : tableInstance.rows;
@@ -758,10 +789,10 @@ var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
758
789
 
759
790
  var _useMaterialReactTabl = useMaterialReactTable(),
760
791
  tableInstance = _useMaterialReactTabl.tableInstance,
761
- OverrideTableFooterCellComponent = _useMaterialReactTabl.OverrideTableFooterCellComponent;
792
+ overrideTableFooterCellComponent = _useMaterialReactTabl.overrideTableFooterCellComponent;
762
793
 
763
- if (OverrideTableFooterCellComponent) {
764
- return React.createElement(React.Fragment, null, OverrideTableFooterCellComponent(column, tableInstance));
794
+ if (overrideTableFooterCellComponent) {
795
+ return React.createElement(React.Fragment, null, overrideTableFooterCellComponent(column, tableInstance));
765
796
  }
766
797
 
767
798
  var isParentHeader = ((_column$columns$lengt = column == null ? void 0 : (_column$columns = column.columns) == null ? void 0 : _column$columns.length) != null ? _column$columns$lengt : 0) > 0;
@@ -781,20 +812,20 @@ var MRT_TableFooterRow = function MRT_TableFooterRow(_ref) {
781
812
  enableColumnHiding = _useMaterialReactTabl.enableColumnHiding,
782
813
  enableSelection = _useMaterialReactTabl.enableSelection,
783
814
  tableInstance = _useMaterialReactTabl.tableInstance,
784
- OverrideTableFooterRowComponent = _useMaterialReactTabl.OverrideTableFooterRowComponent; //if no content in row, skip row
815
+ overrideTableFooterRowComponent = _useMaterialReactTabl.overrideTableFooterRowComponent; //if no content in row, skip row
785
816
 
786
817
 
787
- if (!columns.some(function (c) {
818
+ if (!(columns != null && columns.some(function (c) {
788
819
  return c.Footer;
789
- })) return null;
820
+ }))) return null;
790
821
 
791
- if (OverrideTableFooterRowComponent) {
792
- return React.createElement(React.Fragment, null, OverrideTableFooterRowComponent(footerGroup, tableInstance));
822
+ if (overrideTableFooterRowComponent) {
823
+ return React.createElement(React.Fragment, null, overrideTableFooterRowComponent(footerGroup, tableInstance));
793
824
  }
794
825
 
795
826
  return React.createElement(TableRow, Object.assign({}, footerGroup.getFooterGroupProps()), (anyRowsCanExpand || renderDetailPanel) && React.createElement(TableCell$2, {
796
827
  style: {
797
- width: tableInstance.expandedDepth + 0.5 + "rem"
828
+ width: (renderDetailPanel ? 2 : tableInstance.expandedDepth + 0.5) + "rem"
798
829
  }
799
830
  }), enableSelection && React.createElement(MRT_TableSpacerCell, {
800
831
  width: "1rem"
@@ -808,14 +839,14 @@ var MRT_TableFooterRow = function MRT_TableFooterRow(_ref) {
808
839
 
809
840
  var MRT_TableFooter = function MRT_TableFooter() {
810
841
  var _useMaterialReactTabl = useMaterialReactTable(),
811
- OverrideTableFooterComponent = _useMaterialReactTabl.OverrideTableFooterComponent,
842
+ overrideTableFooterComponent = _useMaterialReactTabl.overrideTableFooterComponent,
812
843
  enablePagination = _useMaterialReactTabl.enablePagination,
813
844
  positionPagination = _useMaterialReactTabl.positionPagination,
814
845
  tableFooterProps = _useMaterialReactTabl.tableFooterProps,
815
846
  tableInstance = _useMaterialReactTabl.tableInstance;
816
847
 
817
- if (OverrideTableFooterComponent) {
818
- return React.createElement(React.Fragment, null, OverrideTableFooterComponent(tableInstance));
848
+ if (overrideTableFooterComponent) {
849
+ return React.createElement(React.Fragment, null, overrideTableFooterComponent(tableInstance));
819
850
  }
820
851
 
821
852
  return React.createElement(TableFooter, Object.assign({}, tableFooterProps), tableInstance.footerGroups.map(function (footerGroup, index) {
@@ -843,14 +874,18 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
843
874
  var _useMaterialReactTabl = useMaterialReactTable(),
844
875
  tableInstance = _useMaterialReactTabl.tableInstance,
845
876
  tableSearchTextfieldProps = _useMaterialReactTabl.tableSearchTextfieldProps,
846
- localization = _useMaterialReactTabl.localization;
877
+ localization = _useMaterialReactTabl.localization,
878
+ onSearchChange = _useMaterialReactTabl.onSearchChange;
847
879
 
848
880
  var _useState = useState(''),
849
881
  searchValue = _useState[0],
850
882
  setSearchValue = _useState[1];
851
883
 
852
- var handleChange = useAsyncDebounce(function (value) {
853
- tableInstance.setGlobalFilter(value != null ? value : undefined);
884
+ var handleChange = useAsyncDebounce(function (event) {
885
+ var _event$target$value;
886
+
887
+ tableInstance.setGlobalFilter((_event$target$value = event.target.value) != null ? _event$target$value : undefined);
888
+ onSearchChange == null ? void 0 : onSearchChange(event);
854
889
  }, 200);
855
890
 
856
891
  var handleClear = function handleClear() {
@@ -860,9 +895,9 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
860
895
 
861
896
  return React.createElement(TextField, Object.assign({
862
897
  placeholder: localization == null ? void 0 : localization.searchTextFieldPlaceholder,
863
- onChange: function onChange(e) {
864
- setSearchValue(e.target.value);
865
- handleChange(e.target.value);
898
+ onChange: function onChange(event) {
899
+ setSearchValue(event.target.value);
900
+ handleChange(event);
866
901
  },
867
902
  value: searchValue != null ? searchValue : '',
868
903
  variant: "standard",
@@ -894,15 +929,15 @@ var Toolbar = /*#__PURE__*/styled(Toolbar$1)({
894
929
  });
895
930
  var MRT_Toolbar = function MRT_Toolbar() {
896
931
  var _useMaterialReactTabl = useMaterialReactTable(),
897
- OverrideTableToolbarComponent = _useMaterialReactTabl.OverrideTableToolbarComponent,
932
+ overrideTableToolbarComponent = _useMaterialReactTabl.overrideTableToolbarComponent,
898
933
  enableSearch = _useMaterialReactTabl.enableSearch,
899
934
  tableInstance = _useMaterialReactTabl.tableInstance,
900
935
  tableTitleProps = _useMaterialReactTabl.tableTitleProps,
901
936
  tableToolbarProps = _useMaterialReactTabl.tableToolbarProps,
902
937
  title = _useMaterialReactTabl.title;
903
938
 
904
- if (OverrideTableToolbarComponent) {
905
- return React.createElement(React.Fragment, null, OverrideTableToolbarComponent(tableInstance));
939
+ if (overrideTableToolbarComponent) {
940
+ return React.createElement(React.Fragment, null, overrideTableToolbarComponent(tableInstance));
906
941
  } //if no features in the toolbar are enabled, don't render anything
907
942
 
908
943
 
@@ -931,6 +966,8 @@ var defaultLocalization = {
931
966
  columnActionMenuItemSortAsc: 'Sort ascending',
932
967
  columnActionMenuItemClearSort: 'Clear sorting',
933
968
  columnActionMenuItemSortDesc: 'Sort descending',
969
+ columnActionMenuItemGroupBy: 'Group by column',
970
+ columnActionMenuItemUnGroupBy: 'Ungroup column',
934
971
  expandAllButtonTitle: 'Expand all',
935
972
  expandButtonTitle: 'Expand',
936
973
  filterTextFieldClearButtonTitle: 'Clear filter',
@@ -940,9 +977,14 @@ var defaultLocalization = {
940
977
  showHideColumnsButtonTitle: 'Show/Hide columns'
941
978
  };
942
979
 
943
- var _excluded$1 = ["enablePagination", "enableSorting", "enableSubRowTree", "localization", "positionPagination", "showFiltersInColumnHead", "showFooter", "showHead", "showToolbar"];
980
+ var _excluded$1 = ["defaultColumn", "enablePagination", "enableSorting", "enableSubRowTree", "localization", "positionPagination", "showFiltersInColumnHead", "showFooter", "showHead", "showToolbar"];
944
981
  var MaterialReactTable = function MaterialReactTable(_ref) {
945
- var _ref$enablePagination = _ref.enablePagination,
982
+ var _ref$defaultColumn = _ref.defaultColumn,
983
+ defaultColumn = _ref$defaultColumn === void 0 ? {
984
+ minWidth: 50,
985
+ maxWidth: 1000
986
+ } : _ref$defaultColumn,
987
+ _ref$enablePagination = _ref.enablePagination,
946
988
  enablePagination = _ref$enablePagination === void 0 ? true : _ref$enablePagination,
947
989
  _ref$enableSorting = _ref.enableSorting,
948
990
  enableSorting = _ref$enableSorting === void 0 ? true : _ref$enableSorting,
@@ -963,6 +1005,7 @@ var MaterialReactTable = function MaterialReactTable(_ref) {
963
1005
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
964
1006
 
965
1007
  return React.createElement(MaterialReactTableProvider, Object.assign({
1008
+ defaultColumn: defaultColumn,
966
1009
  enablePagination: enablePagination,
967
1010
  enableSorting: enableSorting,
968
1011
  enableSubRowTree: enableSubRowTree,
@@ -975,5 +1018,5 @@ var MaterialReactTable = function MaterialReactTable(_ref) {
975
1018
  }, rest), React.createElement(MRT_TableContainer, null));
976
1019
  };
977
1020
 
978
- export { MaterialReactTable };
1021
+ export default MaterialReactTable;
979
1022
  //# sourceMappingURL=material-react-table.esm.js.map