material-react-table 0.6.0 → 0.6.1

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.
@@ -56,19 +56,23 @@ export declare const defaultFilterFNs: {
56
56
  (rows: MRT_Row[], id: string, filterValue: string | number): MRT_Row<{}>[];
57
57
  autoRemove(val: any): boolean;
58
58
  };
59
- greaterThan: {
59
+ equals: {
60
60
  (rows: MRT_Row[], id: string, filterValue: string | number): MRT_Row<{}>[];
61
61
  autoRemove(val: any): boolean;
62
62
  };
63
- lessThan: {
63
+ fuzzy: {
64
64
  (rows: MRT_Row[], id: string, filterValue: string | number): MRT_Row<{}>[];
65
65
  autoRemove(val: any): boolean;
66
66
  };
67
- equals: {
67
+ globalFuzzy: {
68
+ (rows: MRT_Row[], columnIds: string[], filterValue: string | number): MRT_Row<{}>[];
69
+ autoRemove(val: any): boolean;
70
+ };
71
+ greaterThan: {
68
72
  (rows: MRT_Row[], id: string, filterValue: string | number): MRT_Row<{}>[];
69
73
  autoRemove(val: any): boolean;
70
74
  };
71
- fuzzy: {
75
+ lessThan: {
72
76
  (rows: MRT_Row[], id: string, filterValue: string | number): MRT_Row<{}>[];
73
77
  autoRemove(val: any): boolean;
74
78
  };
@@ -104,6 +104,21 @@ function _objectWithoutPropertiesLoose(source, excluded) {
104
104
  return target;
105
105
  }
106
106
 
107
+ var fuzzySearchFN = function fuzzySearchFN(rows, columnIds, filterValue) {
108
+ return matchSorter.matchSorter(rows, filterValue.toString().trim(), {
109
+ keys: columnIds.map(function (c) {
110
+ return "values." + c;
111
+ }),
112
+ sorter: function sorter(rankedItems) {
113
+ return rankedItems;
114
+ }
115
+ });
116
+ };
117
+
118
+ fuzzySearchFN.autoRemove = function (val) {
119
+ return !val;
120
+ };
121
+
107
122
  var fuzzyFilterFN = function fuzzyFilterFN(rows, id, filterValue) {
108
123
  return matchSorter.matchSorter(rows, filterValue.toString().trim(), {
109
124
  keys: ["values." + id],
@@ -211,10 +226,11 @@ var defaultFilterFNs = {
211
226
  contains: containsFilterFN,
212
227
  empty: emptyFilterFN,
213
228
  endsWith: endsWithFilterFN,
214
- greaterThan: greaterThanFilterFN,
215
- lessThan: lessThanFilterFN,
216
229
  equals: equalsFilterFN,
217
230
  fuzzy: fuzzyFilterFN,
231
+ globalFuzzy: fuzzySearchFN,
232
+ greaterThan: greaterThanFilterFN,
233
+ lessThan: lessThanFilterFN,
218
234
  notEmpty: notEmptyFilterFN,
219
235
  notEquals: notEqualsFilterFN,
220
236
  startsWith: startsWithFilterFN
@@ -225,7 +241,7 @@ var MaterialReactTableContext = /*#__PURE__*/function () {
225
241
  }();
226
242
 
227
243
  var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
228
- var _props$initialState$d, _props$initialState, _props$initialState$f, _props$initialState2, _props$initialState$s, _props$initialState3, _props$initialState$s2, _props$initialState4;
244
+ var _props$initialState$d, _props$initialState, _props$initialState$f, _props$initialState2, _props$initialState$s, _props$initialState3, _props$initialState$s2, _props$initialState4, _props$globalFilter;
229
245
 
230
246
  var hooks = [reactTable.useFilters, reactTable.useGlobalFilter, reactTable.useGroupBy, reactTable.useSortBy, reactTable.useExpanded, reactTable.usePagination, reactTable.useRowSelect];
231
247
  if (props.enableColumnResizing) hooks.unshift(reactTable.useResizeColumns, reactTable.useFlexLayout);
@@ -253,8 +269,7 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
253
269
  var filterTypes = React.useMemo(function () {
254
270
  return _extends({}, defaultFilterFNs, props.filterTypes);
255
271
  }, [props.filterTypes]);
256
-
257
- var getInitialFilterTypeState = function getInitialFilterTypeState() {
272
+ var findLowestLevelCols = React.useCallback(function () {
258
273
  var lowestLevelColumns = props.columns;
259
274
  var currentCols = props.columns;
260
275
 
@@ -276,24 +291,23 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
276
291
  currentCols = nextCols;
277
292
  }
278
293
 
279
- lowestLevelColumns = lowestLevelColumns.filter(function (col) {
294
+ return lowestLevelColumns.filter(function (col) {
280
295
  return !col.columns;
281
296
  });
282
- return Object.assign.apply(Object, [{}].concat(lowestLevelColumns.map(function (c) {
297
+ }, [props.columns]);
298
+
299
+ var _useState6 = React.useState(function () {
300
+ return Object.assign.apply(Object, [{}].concat(findLowestLevelCols().map(function (c) {
283
301
  var _ref, _c$filter, _props$initialState5, _props$initialState5$, _ref2;
284
302
 
285
303
  return _ref2 = {}, _ref2[c.accessor] = (_ref = (_c$filter = c.filter) != null ? _c$filter : props == null ? void 0 : (_props$initialState5 = props.initialState) == null ? void 0 : (_props$initialState5$ = _props$initialState5.filters) == null ? void 0 : _props$initialState5$[c.accessor]) != null ? _ref : !!c.filterSelectOptions ? 'equals' : 'fuzzy', _ref2;
286
304
  })));
287
- };
288
-
289
- var _useState6 = React.useState(function () {
290
- return getInitialFilterTypeState();
291
305
  }),
292
306
  currentFilterTypes = _useState6[0],
293
307
  setCurrentFilterTypes = _useState6[1];
294
308
 
295
309
  var columns = React.useMemo(function () {
296
- return props.columns.map(function (column) {
310
+ return findLowestLevelCols().map(function (column) {
297
311
  column.filter = filterTypes[currentFilterTypes[column.accessor]];
298
312
  return column;
299
313
  });
@@ -302,7 +316,7 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
302
316
  columns: columns,
303
317
  // @ts-ignore
304
318
  filterTypes: filterTypes,
305
- globalFilterValue: 'fuzzy',
319
+ globalFilter: (_props$globalFilter = props.globalFilter) != null ? _props$globalFilter : 'globalFuzzy',
306
320
  useControlledState: function useControlledState(state) {
307
321
  return React.useMemo(function () {
308
322
  return _extends({}, state, {