material-react-table 0.14.6 → 0.16.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.
@@ -20,7 +20,7 @@ export interface MRT_RowModel<D extends Record<string, any> = {}> {
20
20
  }
21
21
  export declare type MRT_TableInstance<D extends Record<string, any> = {}> = Omit<TableInstance<Overwrite<Partial<TableGenerics>, {
22
22
  Row: D;
23
- }>>, 'getAllColumns' | 'getAllFlatColumns' | 'getAllLeafColumns' | 'getCenterLeafColumns' | 'getColumn' | 'getExpandedRowModel' | 'getFlatHeaders' | 'getLeftLeafColumns' | 'getPaginationRowModel' | 'getPrePaginationRowModel' | 'getRightLeafColumns' | 'getRowModel' | 'getSelectedRowModel' | 'getState' | 'options'> & {
23
+ }>>, 'getAllColumns' | 'getAllFlatColumns' | 'getAllLeafColumns' | 'getCenterLeafColumns' | 'getColumn' | 'getExpandedRowModel' | 'getFlatHeaders' | 'getLeftLeafColumns' | 'getPaginationRowModel' | 'getPreFilteredRowModel' | 'getPrePaginationRowModel' | 'getRightLeafColumns' | 'getRowModel' | 'getSelectedRowModel' | 'getState' | 'options'> & {
24
24
  getAllColumns: () => MRT_Column<D>[];
25
25
  getAllFlatColumns: () => MRT_Column<D>[];
26
26
  getAllLeafColumns: () => MRT_Column<D>[];
@@ -30,6 +30,7 @@ export declare type MRT_TableInstance<D extends Record<string, any> = {}> = Omit
30
30
  getFlatHeaders: () => MRT_Header<D>[];
31
31
  getLeftLeafColumns: () => MRT_Column<D>[];
32
32
  getPaginationRowModel: () => MRT_RowModel<D>;
33
+ getPreFilteredRowModel: () => MRT_RowModel<D>;
33
34
  getPrePaginationRowModel: () => MRT_RowModel<D>;
34
35
  getRightLeafColumns: () => MRT_Column<D>[];
35
36
  getRowModel: () => MRT_RowModel<D>;
@@ -93,9 +94,9 @@ export declare type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<Col
93
94
  columns?: MRT_ColumnDef<D>[];
94
95
  enableClickToCopy?: boolean;
95
96
  enableColumnActions?: boolean;
97
+ enableColumnFilterChangeMode?: boolean;
96
98
  enableColumnOrdering?: boolean;
97
99
  enableEditing?: boolean;
98
- enableColumnFilterChangeMode?: boolean;
99
100
  enabledColumnFilterOptions?: (MRT_FILTER_OPTION | string)[] | null;
100
101
  filterFn?: MRT_FilterFn;
101
102
  filterSelectOptions?: (string | {
@@ -195,6 +196,7 @@ export declare type MaterialReactTableProps<D extends Record<string, any> = {}>
195
196
  enableExpandAll?: boolean;
196
197
  enableFullScreenToggle?: boolean;
197
198
  enableGlobalFilterChangeMode?: boolean;
199
+ enableGlobalFilterRankedResults?: boolean;
198
200
  enablePagination?: boolean;
199
201
  enablePersistentState?: boolean;
200
202
  enableRowActions?: boolean;
@@ -456,5 +458,5 @@ export declare type MaterialReactTableProps<D extends Record<string, any> = {}>
456
458
  tableId?: string;
457
459
  virtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement>>;
458
460
  };
459
- declare const _default: <D extends Record<string, any> = {}>({ autoResetExpanded, columnResizeMode, defaultColumn, editingMode, enableColumnActions, enableColumnFilterChangeMode, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGlobalFilterChangeMode, enableGrouping, enableHiding, enableMultiRowSelection, enablePagination, enablePinning, enableRowSelection, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarBottom, enableToolbarInternalActions, enableToolbarTop, icons, localization, persistentStateMode, positionActionsColumn, positionGlobalFilter, positionPagination, positionToolbarAlertBanner, rowNumberMode, selectAllMode, ...rest }: MaterialReactTableProps<D>) => JSX.Element;
461
+ declare const _default: <D extends Record<string, any> = {}>({ autoResetExpanded, columnResizeMode, defaultColumn, editingMode, enableColumnActions, enableColumnFilterChangeMode, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGlobalFilterChangeMode, enableGlobalFilterRankedResults, enableGrouping, enableHiding, enableMultiRowSelection, enableMultiSort, enablePagination, enablePinning, enableRowSelection, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarBottom, enableToolbarInternalActions, enableToolbarTop, icons, localization, persistentStateMode, positionActionsColumn, positionGlobalFilter, positionPagination, positionToolbarAlertBanner, rowNumberMode, selectAllMode, ...rest }: MaterialReactTableProps<D>) => JSX.Element;
460
462
  export default _default;
@@ -173,7 +173,7 @@ var MRT_ExpandAllButton = function MRT_ExpandAllButton(_ref) {
173
173
  enterDelay: 1000,
174
174
  enterNextDelay: 1000,
175
175
  title: localization.expandAll
176
- }, React__default.createElement(material.IconButton, Object.assign({
176
+ }, React__default.createElement("span", null, React__default.createElement(material.IconButton, Object.assign({
177
177
  "aria-label": localization.expandAll,
178
178
  disabled: !getCanSomeRowsExpand() && !renderDetailPanel,
179
179
  onClick: function onClick() {
@@ -189,7 +189,7 @@ var MRT_ExpandAllButton = function MRT_ExpandAllButton(_ref) {
189
189
  transform: "rotate(" + (getIsAllRowsExpanded() ? -180 : getIsSomeRowsExpanded() ? -90 : 0) + "deg)",
190
190
  transition: 'transform 0.2s'
191
191
  }
192
- })));
192
+ }))));
193
193
  };
194
194
 
195
195
  var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
@@ -225,7 +225,7 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
225
225
  enterDelay: 1000,
226
226
  enterNextDelay: 1000,
227
227
  title: localization.expand
228
- }, React__default.createElement(material.IconButton, Object.assign({
228
+ }, React__default.createElement("span", null, React__default.createElement(material.IconButton, Object.assign({
229
229
  "aria-label": localization.expand,
230
230
  disabled: !row.getCanExpand() && !renderDetailPanel,
231
231
  onClick: handleToggleExpand
@@ -239,7 +239,7 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
239
239
  transform: "rotate(" + (!row.getCanExpand() && !renderDetailPanel ? -90 : row.getIsExpanded() ? -180 : 0) + "deg)",
240
240
  transition: 'transform 0.2s'
241
241
  }
242
- })));
242
+ }))));
243
243
  };
244
244
 
245
245
  var fuzzy = function fuzzy(row, columnId, filterValue, addMeta) {
@@ -5729,7 +5729,7 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
5729
5729
  };
5730
5730
 
5731
5731
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5732
- var _localization$filterB, _columnDef$enabledCol, _allowedColumnFilterO, _localization$filterM, _localization$, _localization$clearFi, _columnDef$filterSele;
5732
+ var _localization$filterB, _columnDef$enabledCol, _allowedColumnFilterO, _localization$filterM, _localization, _localization$clearFi, _columnDef$filterSele;
5733
5733
 
5734
5734
  var header = _ref.header,
5735
5735
  inputIndex = _ref.inputIndex,
@@ -5877,7 +5877,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5877
5877
  helperText: allowColumnChangeMode && !inputIndex && (allowedColumnFilterOptions === undefined || ((_allowedColumnFilterO = allowedColumnFilterOptions == null ? void 0 : allowedColumnFilterOptions.length) != null ? _allowedColumnFilterO : 0) > 0) ? React__default.createElement("label", {
5878
5878
  htmlFor: filterId
5879
5879
  }, filterFn instanceof Function ? (_localization$filterM = localization.filterMode.replace('{filterType}', // @ts-ignore
5880
- (_localization$ = localization["filter" + (filterFn.name.charAt(0).toUpperCase() + filterFn.name.slice(1))]) != null ? _localization$ : '')) != null ? _localization$filterM : '' : localization.filterMode.replace('{filterType}', // @ts-ignore
5880
+ (_localization = localization["filter" + (filterFn.name.charAt(0).toUpperCase() + filterFn.name.slice(1))]) != null ? _localization : '')) != null ? _localization$filterM : '' : localization.filterMode.replace('{filterType}', // @ts-ignore
5881
5881
  localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))])) : null,
5882
5882
  FormHelperTextProps: {
5883
5883
  sx: {
@@ -7289,27 +7289,72 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
7289
7289
  }));
7290
7290
  };
7291
7291
 
7292
+ var fuzzy$1 = function fuzzy(rowA, rowB, columnId) {
7293
+ var dir = 0;
7294
+
7295
+ if (rowA.columnFiltersMeta[columnId]) {
7296
+ dir = matchSorterUtils.compareItems(rowA.columnFiltersMeta[columnId], rowB.columnFiltersMeta[columnId]);
7297
+ } // Provide a fallback for when the item ranks are equal
7298
+
7299
+
7300
+ return dir === 0 ? reactTable.sortingFns.alphanumeric(rowA, rowB, columnId) : dir;
7301
+ };
7302
+
7303
+ var MRT_SortingFns = {
7304
+ fuzzy: fuzzy$1
7305
+ };
7306
+ var rankGlobalFuzzy = function rankGlobalFuzzy(rowA, rowB) {
7307
+ return Math.max.apply(Math, Object.values(rowB.columnFiltersMeta).map(function (v) {
7308
+ return v.rank;
7309
+ })) - Math.max.apply(Math, Object.values(rowA.columnFiltersMeta).map(function (v) {
7310
+ return v.rank;
7311
+ }));
7312
+ };
7313
+
7292
7314
  var MRT_TableBody = function MRT_TableBody(_ref) {
7293
7315
  var instance = _ref.instance,
7294
7316
  tableContainerRef = _ref.tableContainerRef;
7295
- var getPaginationRowModel = instance.getPaginationRowModel,
7317
+ var getRowModel = instance.getRowModel,
7296
7318
  getPrePaginationRowModel = instance.getPrePaginationRowModel,
7297
7319
  getState = instance.getState,
7298
7320
  _instance$options = instance.options,
7321
+ enableGlobalFilterRankedResults = _instance$options.enableGlobalFilterRankedResults,
7299
7322
  enablePagination = _instance$options.enablePagination,
7300
7323
  enableRowVirtualization = _instance$options.enableRowVirtualization,
7301
7324
  muiTableBodyProps = _instance$options.muiTableBodyProps,
7302
7325
  virtualizerProps = _instance$options.virtualizerProps;
7303
7326
 
7304
7327
  var _getState = getState(),
7305
- density = _getState.density;
7328
+ density = _getState.density,
7329
+ globalFilter = _getState.globalFilter,
7330
+ pagination = _getState.pagination,
7331
+ sorting = _getState.sorting;
7306
7332
 
7307
7333
  var tableBodyProps = muiTableBodyProps instanceof Function ? muiTableBodyProps({
7308
7334
  instance: instance
7309
7335
  }) : muiTableBodyProps;
7310
- var rows = enablePagination ? getPaginationRowModel().rows : getPrePaginationRowModel().rows;
7336
+
7337
+ var getIsSomeColumnsSorted = function getIsSomeColumnsSorted() {
7338
+ return Object.values(sorting).some(Boolean);
7339
+ };
7340
+
7341
+ var rows = React.useMemo(function () {
7342
+ if (enableGlobalFilterRankedResults && globalFilter && !getIsSomeColumnsSorted()) {
7343
+ var rankedRows = getPrePaginationRowModel().rows.sort(function (a, b) {
7344
+ return rankGlobalFuzzy(a, b);
7345
+ });
7346
+
7347
+ if (enablePagination) {
7348
+ return rankedRows.slice(0, pagination.pageSize);
7349
+ }
7350
+
7351
+ return rankedRows;
7352
+ }
7353
+
7354
+ return enablePagination ? getRowModel().rows : getPrePaginationRowModel().rows;
7355
+ }, [enableGlobalFilterRankedResults, enableGlobalFilterRankedResults && globalFilter || !enablePagination ? getPrePaginationRowModel().rows : getRowModel().rows, globalFilter]);
7311
7356
  var rowVirtualizer = enableRowVirtualization ? useVirtual(_extends({
7312
- overscan: density === 'compact' ? 15 : 5,
7357
+ overscan: density === 'compact' ? 20 : 10,
7313
7358
  size: rows.length,
7314
7359
  parentRef: tableContainerRef
7315
7360
  }, virtualizerProps)) : {};
@@ -7550,21 +7595,6 @@ var MRT_TablePaper = function MRT_TablePaper(_ref) {
7550
7595
  })));
7551
7596
  };
7552
7597
 
7553
- var fuzzy$1 = function fuzzy(rowA, rowB, columnId) {
7554
- var dir = 0;
7555
-
7556
- if (rowA.columnFiltersMeta[columnId]) {
7557
- dir = matchSorterUtils.compareItems(rowA.columnFiltersMeta[columnId], rowB.columnFiltersMeta[columnId]);
7558
- } // Provide a fallback for when the item ranks are equal
7559
-
7560
-
7561
- return dir === 0 ? reactTable.sortingFns.alphanumeric(rowA, rowB, columnId) : dir;
7562
- };
7563
-
7564
- var MRT_SortingFns = {
7565
- fuzzy: fuzzy$1
7566
- };
7567
-
7568
7598
  var MRT_TableRoot = function MRT_TableRoot(props) {
7569
7599
  var _initialState$columnO, _initialState$current, _initialState$current2, _initialState$density, _initialState$isFullS, _initialState$showFil, _initialState$showGlo, _props$globalFilterFn, _props$state3, _props$state4, _props$onCurrentEditi, _props$onCurrentEditi2, _props$onCurrentFilte, _props$onCurrentGloba, _props$onDensityChang, _props$onIsFullScreen, _props$onShowFiltersC, _props$onShowGlobalFi;
7570
7600
 
@@ -7827,7 +7857,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7827
7857
  }));
7828
7858
  };
7829
7859
 
7830
- var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilterChangeMode", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterChangeMode", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "rowNumberMode", "selectAllMode"];
7860
+ var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilterChangeMode", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterChangeMode", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "rowNumberMode", "selectAllMode"];
7831
7861
  var MaterialReactTable = (function (_ref) {
7832
7862
  var _ref$autoResetExpande = _ref.autoResetExpanded,
7833
7863
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
@@ -7863,12 +7893,16 @@ var MaterialReactTable = (function (_ref) {
7863
7893
  enableGlobalFilter = _ref$enableGlobalFilt === void 0 ? true : _ref$enableGlobalFilt,
7864
7894
  _ref$enableGlobalFilt2 = _ref.enableGlobalFilterChangeMode,
7865
7895
  enableGlobalFilterChangeMode = _ref$enableGlobalFilt2 === void 0 ? true : _ref$enableGlobalFilt2,
7896
+ _ref$enableGlobalFilt3 = _ref.enableGlobalFilterRankedResults,
7897
+ enableGlobalFilterRankedResults = _ref$enableGlobalFilt3 === void 0 ? true : _ref$enableGlobalFilt3,
7866
7898
  _ref$enableGrouping = _ref.enableGrouping,
7867
7899
  enableGrouping = _ref$enableGrouping === void 0 ? false : _ref$enableGrouping,
7868
7900
  _ref$enableHiding = _ref.enableHiding,
7869
7901
  enableHiding = _ref$enableHiding === void 0 ? true : _ref$enableHiding,
7870
7902
  _ref$enableMultiRowSe = _ref.enableMultiRowSelection,
7871
7903
  enableMultiRowSelection = _ref$enableMultiRowSe === void 0 ? true : _ref$enableMultiRowSe,
7904
+ _ref$enableMultiSort = _ref.enableMultiSort,
7905
+ enableMultiSort = _ref$enableMultiSort === void 0 ? true : _ref$enableMultiSort,
7872
7906
  _ref$enablePagination = _ref.enablePagination,
7873
7907
  enablePagination = _ref$enablePagination === void 0 ? true : _ref$enablePagination,
7874
7908
  _ref$enablePinning = _ref.enablePinning,
@@ -7925,9 +7959,11 @@ var MaterialReactTable = (function (_ref) {
7925
7959
  enableFullScreenToggle: enableFullScreenToggle,
7926
7960
  enableGlobalFilter: enableGlobalFilter,
7927
7961
  enableGlobalFilterChangeMode: enableGlobalFilterChangeMode,
7962
+ enableGlobalFilterRankedResults: enableGlobalFilterRankedResults,
7928
7963
  enableGrouping: enableGrouping,
7929
7964
  enableHiding: enableHiding,
7930
7965
  enableMultiRowSelection: enableMultiRowSelection,
7966
+ enableMultiSort: enableMultiSort,
7931
7967
  enablePagination: enablePagination,
7932
7968
  enablePinning: enablePinning,
7933
7969
  enableRowSelection: enableRowSelection,