@tanstack/table-core 8.0.0-alpha.63 → 8.0.0-alpha.67

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 (114) hide show
  1. package/build/cjs/core.js +7 -4
  2. package/build/cjs/core.js.map +1 -1
  3. package/build/cjs/features/Cells.js +2 -2
  4. package/build/cjs/features/Cells.js.map +1 -1
  5. package/build/cjs/features/ColumnSizing.js +68 -143
  6. package/build/cjs/features/ColumnSizing.js.map +1 -1
  7. package/build/cjs/features/Columns.js +7 -7
  8. package/build/cjs/features/Columns.js.map +1 -1
  9. package/build/cjs/features/Expanding.js +52 -90
  10. package/build/cjs/features/Expanding.js.map +1 -1
  11. package/build/cjs/features/Filters.js +213 -191
  12. package/build/cjs/features/Filters.js.map +1 -1
  13. package/build/cjs/features/Grouping.js +54 -80
  14. package/build/cjs/features/Grouping.js.map +1 -1
  15. package/build/cjs/features/Headers.js +16 -40
  16. package/build/cjs/features/Headers.js.map +1 -1
  17. package/build/cjs/features/Ordering.js +6 -5
  18. package/build/cjs/features/Ordering.js.map +1 -1
  19. package/build/cjs/features/Pagination.js +5 -5
  20. package/build/cjs/features/Pagination.js.map +1 -1
  21. package/build/cjs/features/Pinning.js +82 -168
  22. package/build/cjs/features/Pinning.js.map +1 -1
  23. package/build/cjs/features/RowSelection.js +67 -119
  24. package/build/cjs/features/RowSelection.js.map +1 -1
  25. package/build/cjs/features/Sorting.js +41 -91
  26. package/build/cjs/features/Sorting.js.map +1 -1
  27. package/build/cjs/features/Visibility.js +20 -43
  28. package/build/cjs/features/Visibility.js.map +1 -1
  29. package/build/cjs/filterFns.js +51 -108
  30. package/build/cjs/filterFns.js.map +1 -1
  31. package/build/cjs/index.js +5 -4
  32. package/build/cjs/index.js.map +1 -1
  33. package/build/cjs/utils/filterRowsUtils.js +21 -0
  34. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  35. package/build/cjs/utils/getCoreRowModelAsync.js +1 -1
  36. package/build/cjs/utils/getCoreRowModelAsync.js.map +1 -1
  37. package/build/cjs/utils/getCoreRowModelSync.js +1 -1
  38. package/build/cjs/utils/getCoreRowModelSync.js.map +1 -1
  39. package/build/cjs/utils/getExpandedRowModel.js +2 -2
  40. package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
  41. package/build/cjs/utils/getFilteredRowModelSync.js +125 -0
  42. package/build/cjs/utils/getFilteredRowModelSync.js.map +1 -0
  43. package/build/cjs/utils/getGroupedRowModel.js +1 -1
  44. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  45. package/build/cjs/utils/getPaginationRowModel.js +1 -1
  46. package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
  47. package/build/cjs/utils/getSortedRowModelSync.js +3 -3
  48. package/build/cjs/utils/getSortedRowModelSync.js.map +1 -1
  49. package/build/cjs/utils.js +2 -6
  50. package/build/cjs/utils.js.map +1 -1
  51. package/build/esm/index.js +899 -1357
  52. package/build/esm/index.js.map +1 -1
  53. package/build/stats-html.html +1 -1
  54. package/build/stats-react.json +404 -418
  55. package/build/types/features/ColumnSizing.d.ts +2 -13
  56. package/build/types/features/Expanding.d.ts +3 -13
  57. package/build/types/features/Filters.d.ts +38 -42
  58. package/build/types/features/Grouping.d.ts +3 -18
  59. package/build/types/features/Ordering.d.ts +2 -6
  60. package/build/types/features/Pinning.d.ts +2 -19
  61. package/build/types/features/RowSelection.d.ts +4 -15
  62. package/build/types/features/Sorting.d.ts +5 -22
  63. package/build/types/features/Visibility.d.ts +2 -15
  64. package/build/types/filterFns.d.ts +10 -52
  65. package/build/types/index.d.ts +1 -2
  66. package/build/types/types.d.ts +2 -4
  67. package/build/types/utils/filterRowsUtils.d.ts +1 -0
  68. package/build/types/utils/{getColumnFilteredRowModelAsync.d.ts → getFilteredRowModelAsync.d.ts} +1 -1
  69. package/build/types/utils/getFilteredRowModelSync.d.ts +2 -0
  70. package/build/types/utils.d.ts +2 -2
  71. package/build/umd/index.development.js +867 -1323
  72. package/build/umd/index.development.js.map +1 -1
  73. package/build/umd/index.production.js +1 -1
  74. package/build/umd/index.production.js.map +1 -1
  75. package/package.json +2 -1
  76. package/src/core.ts +5 -5
  77. package/src/features/Cells.ts +4 -2
  78. package/src/features/ColumnSizing.ts +69 -126
  79. package/src/features/Columns.ts +12 -7
  80. package/src/features/Expanding.ts +62 -107
  81. package/src/features/Filters.ts +293 -243
  82. package/src/features/Grouping.ts +59 -81
  83. package/src/features/Headers.ts +18 -40
  84. package/src/features/Ordering.ts +7 -9
  85. package/src/features/Pagination.ts +4 -3
  86. package/src/features/Pinning.ts +77 -164
  87. package/src/features/RowSelection.ts +76 -123
  88. package/src/features/Sorting.ts +48 -106
  89. package/src/features/Visibility.ts +25 -52
  90. package/src/filterFns.ts +74 -147
  91. package/src/index.ts +1 -2
  92. package/src/types.ts +2 -2
  93. package/src/utils/filterRowsUtils.ts +24 -0
  94. package/src/utils/getCoreRowModelAsync.ts +1 -1
  95. package/src/utils/getCoreRowModelSync.ts +1 -1
  96. package/src/utils/getExpandedRowModel.ts +2 -2
  97. package/src/utils/getFilteredRowModelAsync.ts +157 -0
  98. package/src/utils/getFilteredRowModelSync.ts +141 -0
  99. package/src/utils/getGroupedRowModel.ts +1 -1
  100. package/src/utils/getPaginationRowModel.ts +1 -1
  101. package/src/utils/getSortedRowModelAsync.ts +1 -1
  102. package/src/utils/getSortedRowModelSync.ts +4 -4
  103. package/src/utils.ts +2 -4
  104. package/build/cjs/utils/getColumnFilteredRowModelSync.js +0 -115
  105. package/build/cjs/utils/getColumnFilteredRowModelSync.js.map +0 -1
  106. package/build/cjs/utils/getGlobalFilteredRowModelSync.js +0 -91
  107. package/build/cjs/utils/getGlobalFilteredRowModelSync.js.map +0 -1
  108. package/build/types/utils/getColumnFilteredRowModelSync.d.ts +0 -2
  109. package/build/types/utils/getGlobalFilteredRowModelAsync.d.ts +0 -4
  110. package/build/types/utils/getGlobalFilteredRowModelSync.d.ts +0 -2
  111. package/src/utils/getColumnFilteredRowModelAsync.ts +0 -118
  112. package/src/utils/getColumnFilteredRowModelSync.ts +0 -102
  113. package/src/utils/getGlobalFilteredRowModelAsync.ts +0 -96
  114. package/src/utils/getGlobalFilteredRowModelSync.ts +0 -79
@@ -12,8 +12,10 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
+ var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
15
16
  var filterFns = require('../filterFns.js');
16
17
  var utils = require('../utils.js');
18
+ var filterRowsUtils = require('../utils/filterRowsUtils.js');
17
19
 
18
20
  //
19
21
  var Filters = {
@@ -22,13 +24,13 @@ var Filters = {
22
24
  filterFn: 'auto'
23
25
  };
24
26
  },
25
- getInitialState: function getInitialState() {
26
- return {
27
+ getInitialState: function getInitialState(state) {
28
+ return _rollupPluginBabelHelpers["extends"]({
27
29
  columnFilters: [],
28
30
  globalFilter: undefined,
29
31
  columnFiltersProgress: 1,
30
32
  globalFilterProgress: 1
31
- };
33
+ }, state);
32
34
  },
33
35
  getDefaultOptions: function getDefaultOptions(instance) {
34
36
  return {
@@ -36,7 +38,7 @@ var Filters = {
36
38
  onGlobalFilterChange: utils.makeStateUpdater('globalFilter', instance),
37
39
  filterFromLeafRows: true,
38
40
  globalFilterFn: 'auto',
39
- getColumnCanGlobalFilterFn: function getColumnCanGlobalFilterFn(column) {
41
+ getColumnCanGlobalFilter: function getColumnCanGlobalFilter(column) {
40
42
  var _instance$getCoreRowM, _instance$getCoreRowM2;
41
43
 
42
44
  var value = (_instance$getCoreRowM = instance.getCoreRowModel().flatRows[0]) == null ? void 0 : (_instance$getCoreRowM2 = _instance$getCoreRowM.getAllCellsByColumnId()[column.id]) == null ? void 0 : _instance$getCoreRowM2.value;
@@ -45,93 +47,18 @@ var Filters = {
45
47
  };
46
48
  },
47
49
  createColumn: function createColumn(column, instance) {
48
- var getFacetInfo = utils.memo(function () {
49
- return [column.getPreFilteredRows()];
50
- }, function (rows) {
51
- var _rows$0$values$column, _rows$, _rows$0$values$column2, _rows$2;
52
-
53
- if (rows === void 0) {
54
- rows = [];
55
- }
56
-
57
- var preFilteredUniqueValues = new Map();
58
- var preFilteredMinMaxValues = [(_rows$0$values$column = (_rows$ = rows[0]) == null ? void 0 : _rows$.values[column.id]) != null ? _rows$0$values$column : null, (_rows$0$values$column2 = (_rows$2 = rows[0]) == null ? void 0 : _rows$2.values[column.id]) != null ? _rows$0$values$column2 : null];
59
-
60
- for (var i = 0; i < rows.length; i++) {
61
- var _rows$i;
62
-
63
- var _value = (_rows$i = rows[i]) == null ? void 0 : _rows$i.values[column.id];
64
-
65
- if (preFilteredUniqueValues.has(_value)) {
66
- var _preFilteredUniqueVal;
67
-
68
- preFilteredUniqueValues.set(_value, ((_preFilteredUniqueVal = preFilteredUniqueValues.get(_value)) != null ? _preFilteredUniqueVal : 0) + 1);
69
- } else {
70
- preFilteredUniqueValues.set(_value, 1);
71
- }
72
-
73
- if (_value < preFilteredMinMaxValues[0]) {
74
- preFilteredMinMaxValues[0] = _value;
75
- } else if (_value > preFilteredMinMaxValues[1]) {
76
- preFilteredMinMaxValues[1] = _value;
77
- }
78
- }
79
-
80
- return {
81
- preFilteredUniqueValues: preFilteredUniqueValues,
82
- preFilteredMinMaxValues: preFilteredMinMaxValues
83
- };
84
- }, {
85
- key: 'column.getFacetInfo',
86
- debug: function debug() {
87
- var _instance$options$deb;
88
-
89
- return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugColumns;
90
- }
91
- });
92
50
  return {
93
51
  filterFn: column.filterFn,
94
- getCanColumnFilter: function getCanColumnFilter() {
95
- return instance.getColumnCanColumnFilter(column.id);
96
- },
97
- getCanGlobalFilter: function getCanGlobalFilter() {
98
- return instance.getColumnCanGlobalFilter(column.id);
99
- },
100
- getColumnFilterIndex: function getColumnFilterIndex() {
101
- return instance.getColumnFilterIndex(column.id);
102
- },
103
- getColumnIsFiltered: function getColumnIsFiltered() {
104
- return instance.getColumnIsFiltered(column.id);
105
- },
106
- getColumnFilterValue: function getColumnFilterValue() {
107
- return instance.getColumnFilterValue(column.id);
108
- },
109
- setColumnFilterValue: function setColumnFilterValue(val) {
110
- return instance.setColumnFilterValue(column.id, val);
111
- },
112
- getPreFilteredUniqueValues: function getPreFilteredUniqueValues() {
113
- return getFacetInfo().preFilteredUniqueValues;
114
- },
115
- getPreFilteredMinMaxValues: function getPreFilteredMinMaxValues() {
116
- return getFacetInfo().preFilteredMinMaxValues;
117
- },
118
- getPreFilteredRows: function getPreFilteredRows() {
119
- return undefined;
120
- }
121
- };
122
- },
123
- createInstance: function createInstance(instance) {
124
- return {
125
- getColumnAutoFilterFn: function getColumnAutoFilterFn(columnId) {
52
+ getAutoFilterFn: function getAutoFilterFn() {
126
53
  var firstRow = instance.getCoreRowModel().flatRows[0];
127
- var value = firstRow == null ? void 0 : firstRow.values[columnId];
54
+ var value = firstRow == null ? void 0 : firstRow.values[column.id];
128
55
 
129
56
  if (typeof value === 'string') {
130
57
  return filterFns.filterFns.includesString;
131
58
  }
132
59
 
133
60
  if (typeof value === 'number') {
134
- return filterFns.filterFns.betweenNumberRange;
61
+ return filterFns.filterFns.inNumberRange;
135
62
  }
136
63
 
137
64
  if (value !== null && typeof value === 'object') {
@@ -144,115 +71,44 @@ var Filters = {
144
71
 
145
72
  return filterFns.filterFns.weakEquals;
146
73
  },
147
- getGlobalAutoFilterFn: function getGlobalAutoFilterFn() {
148
- return filterFns.filterFns.includesString;
149
- },
150
- getColumnFilterFn: function getColumnFilterFn(columnId) {
74
+ getFilterFn: function getFilterFn() {
151
75
  var _ref;
152
76
 
153
- var column = instance.getColumn(columnId);
154
77
  var userFilterFns = instance.options.filterFns;
155
-
156
- if (!column) {
157
- throw new Error();
158
- }
159
-
160
- return utils.isFunction(column.filterFn) ? column.filterFn : column.filterFn === 'auto' ? instance.getColumnAutoFilterFn(columnId) : (_ref = userFilterFns == null ? void 0 : userFilterFns[column.filterFn]) != null ? _ref : filterFns.filterFns[column.filterFn];
161
- },
162
- getGlobalFilterFn: function getGlobalFilterFn() {
163
- var _ref2;
164
-
165
- var _instance$options = instance.options,
166
- userFilterFns = _instance$options.filterFns,
167
- globalFilterFn = _instance$options.globalFilterFn;
168
- return utils.isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? instance.getGlobalAutoFilterFn() : (_ref2 = userFilterFns == null ? void 0 : userFilterFns[globalFilterFn]) != null ? _ref2 : filterFns.filterFns[globalFilterFn];
169
- },
170
- setColumnFilters: function setColumnFilters(updater) {
171
- var leafColumns = instance.getAllLeafColumns();
172
-
173
- var updateFn = function updateFn(old) {
174
- var _functionalUpdate;
175
-
176
- return (_functionalUpdate = utils.functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(function (filter) {
177
- var column = leafColumns.find(function (d) {
178
- return d.id === filter.id;
179
- });
180
-
181
- if (column) {
182
- var filterFn = instance.getColumnFilterFn(column.id);
183
-
184
- if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {
185
- return false;
186
- }
187
- }
188
-
189
- return true;
190
- });
191
- };
192
-
193
- instance.options.onColumnFiltersChange == null ? void 0 : instance.options.onColumnFiltersChange(updateFn);
194
- },
195
- setGlobalFilter: function setGlobalFilter(updater) {
196
- instance.options.onGlobalFilterChange == null ? void 0 : instance.options.onGlobalFilterChange(updater);
78
+ return utils.isFunction(column.filterFn) ? column.filterFn : column.filterFn === 'auto' ? column.getAutoFilterFn() : (_ref = userFilterFns == null ? void 0 : userFilterFns[column.filterFn]) != null ? _ref : filterFns.filterFns[column.filterFn];
197
79
  },
198
- resetGlobalFilter: function resetGlobalFilter() {
199
- instance.setGlobalFilter(instance.initialState.globalFilter);
200
- },
201
- getColumnCanColumnFilter: function getColumnCanColumnFilter(columnId) {
202
- var _ref3, _ref4, _ref5, _ref6, _ref7, _column$enableAllFilt;
203
-
204
- var column = instance.getColumn(columnId);
80
+ getCanFilter: function getCanFilter() {
81
+ var _column$enableColumnF, _instance$options$ena, _instance$options$ena2;
205
82
 
206
- if (!column) {
207
- throw new Error();
208
- }
209
-
210
- return (_ref3 = (_ref4 = (_ref5 = (_ref6 = (_ref7 = (_column$enableAllFilt = column.enableAllFilters) != null ? _column$enableAllFilt : column.enableColumnFilter) != null ? _ref7 : instance.options.enableFilters) != null ? _ref6 : instance.options.enableColumnFilters) != null ? _ref5 : column.defaultCanColumnFilter) != null ? _ref4 : column.defaultCanFilter) != null ? _ref3 : !!column.accessorFn;
83
+ return ((_column$enableColumnF = column.enableColumnFilter) != null ? _column$enableColumnF : true) && ((_instance$options$ena = instance.options.enableColumnFilters) != null ? _instance$options$ena : true) && ((_instance$options$ena2 = instance.options.enableFilters) != null ? _instance$options$ena2 : true) && !!column.accessorFn;
211
84
  },
212
- getColumnCanGlobalFilter: function getColumnCanGlobalFilter(columnId) {
213
- var _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _instance$options$ena;
214
-
215
- var column = instance.getColumn(columnId);
216
-
217
- if (!column) {
218
- throw new Error();
219
- }
85
+ getCanGlobalFilter: function getCanGlobalFilter() {
86
+ var _column$enableGlobalF, _instance$options$ena3, _instance$options$ena4, _instance$options$get;
220
87
 
221
- return (_ref8 = ((_ref9 = (_ref10 = (_ref11 = (_ref12 = (_ref13 = (_instance$options$ena = instance.options.enableFilters) != null ? _instance$options$ena : instance.options.enableGlobalFilter) != null ? _ref13 : column.enableAllFilters) != null ? _ref12 : column.enableGlobalFilter) != null ? _ref11 : column.defaultCanGlobalFilter) != null ? _ref10 : column.defaultCanFilter) != null ? _ref9 : !!column.accessorFn) && (instance.options.getColumnCanGlobalFilterFn == null ? void 0 : instance.options.getColumnCanGlobalFilterFn(column))) != null ? _ref8 : true;
88
+ return ((_column$enableGlobalF = column.enableGlobalFilter) != null ? _column$enableGlobalF : true) && ((_instance$options$ena3 = instance.options.enableGlobalFilter) != null ? _instance$options$ena3 : true) && ((_instance$options$ena4 = instance.options.enableFilters) != null ? _instance$options$ena4 : true) && ((_instance$options$get = instance.options.getColumnCanGlobalFilter == null ? void 0 : instance.options.getColumnCanGlobalFilter(column)) != null ? _instance$options$get : true) && !!column.accessorFn;
222
89
  },
223
- getColumnIsFiltered: function getColumnIsFiltered(columnId) {
224
- return instance.getColumnFilterIndex(columnId) > -1;
90
+ getIsFiltered: function getIsFiltered() {
91
+ return column.getFilterIndex() > -1;
225
92
  },
226
- getColumnFilterValue: function getColumnFilterValue(columnId) {
93
+ getFilterValue: function getFilterValue() {
227
94
  var _instance$getState$co, _instance$getState$co2;
228
95
 
229
96
  return (_instance$getState$co = instance.getState().columnFilters) == null ? void 0 : (_instance$getState$co2 = _instance$getState$co.find(function (d) {
230
- return d.id === columnId;
97
+ return d.id === column.id;
231
98
  })) == null ? void 0 : _instance$getState$co2.value;
232
99
  },
233
- getColumnFilterIndex: function getColumnFilterIndex(columnId) {
100
+ getFilterIndex: function getFilterIndex() {
234
101
  var _instance$getState$co3, _instance$getState$co4;
235
102
 
236
103
  return (_instance$getState$co3 = (_instance$getState$co4 = instance.getState().columnFilters) == null ? void 0 : _instance$getState$co4.findIndex(function (d) {
237
- return d.id === columnId;
104
+ return d.id === column.id;
238
105
  })) != null ? _instance$getState$co3 : -1;
239
106
  },
240
- setColumnFilterValue: function setColumnFilterValue(columnId, value) {
241
- if (!columnId) return;
107
+ setFilterValue: function setFilterValue(value) {
242
108
  instance.setColumnFilters(function (old) {
243
- var column = instance.getColumn(columnId);
244
-
245
- if (!column) {
246
- if (process.env.NODE_ENV !== 'production') {
247
- console.warn("Table: Could not find a column with id: " + columnId);
248
- }
249
-
250
- throw new Error();
251
- }
252
-
253
- var filterFn = instance.getColumnFilterFn(column.id);
109
+ var filterFn = column.getFilterFn();
254
110
  var previousfilter = old == null ? void 0 : old.find(function (d) {
255
- return d.id === columnId;
111
+ return d.id === column.id;
256
112
  });
257
113
  var newFilter = utils.functionalUpdate(value, previousfilter ? previousfilter.value : undefined); //
258
114
 
@@ -260,12 +116,12 @@ var Filters = {
260
116
  var _old$filter;
261
117
 
262
118
  return (_old$filter = old == null ? void 0 : old.filter(function (d) {
263
- return d.id !== columnId;
119
+ return d.id !== column.id;
264
120
  })) != null ? _old$filter : [];
265
121
  }
266
122
 
267
123
  var newFilterObj = {
268
- id: columnId,
124
+ id: column.id,
269
125
  value: newFilter
270
126
  };
271
127
 
@@ -273,7 +129,7 @@ var Filters = {
273
129
  var _old$map;
274
130
 
275
131
  return (_old$map = old == null ? void 0 : old.map(function (d) {
276
- if (d.id === columnId) {
132
+ if (d.id === column.id) {
277
133
  return newFilterObj;
278
134
  }
279
135
 
@@ -288,46 +144,212 @@ var Filters = {
288
144
  return [newFilterObj];
289
145
  });
290
146
  },
147
+ getFacetedRowModel: utils.memo(function () {
148
+ return [instance.getPreFilteredRowModel(), instance.getState().columnFilters, instance.getState().globalFilter, // Include this to force the filtered facet info to be calculated
149
+ instance.getFilteredRowModel()];
150
+ }, function (rowModel, columnFilters, globalFilter, _) {
151
+ if (!(columnFilters != null && columnFilters.length) && !globalFilter) {
152
+ return rowModel;
153
+ }
154
+
155
+ return filterRowsUtils.filterRows(rowModel.rows, [].concat(columnFilters.map(function (d) {
156
+ return d.id;
157
+ }).filter(function (d) {
158
+ return d !== column.id;
159
+ }), [globalFilter ? '__global__' : undefined]).filter(Boolean), instance);
160
+ }, {
161
+ key: process.env.NODE_ENV === 'production' && 'getFacetedRowModel_' + column.id,
162
+ debug: function debug() {
163
+ var _instance$options$deb;
164
+
165
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugColumns;
166
+ }
167
+ }),
168
+ getFacetedUniqueValues: utils.memo(function () {
169
+ return [column.getFacetedRowModel()];
170
+ }, function (facetedRowModel) {
171
+ return getRowModelUniqueValues(facetedRowModel, column.id);
172
+ }, {
173
+ key: process.env.NODE_ENV === 'production' && 'column.getFacetedUniqueValues',
174
+ debug: function debug() {
175
+ var _instance$options$deb2;
176
+
177
+ return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugColumns;
178
+ }
179
+ }),
180
+ getFacetedMinMaxValues: utils.memo(function () {
181
+ return [column.getFacetedRowModel()];
182
+ }, function (facetedRowModel) {
183
+ return getRowModelMinMaxValues(facetedRowModel, column.id);
184
+ }, {
185
+ key: process.env.NODE_ENV === 'production' && 'column.getFacetedMinMaxValues',
186
+ debug: function debug() {
187
+ var _instance$options$deb3;
188
+
189
+ return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugColumns;
190
+ }
191
+ })
192
+ };
193
+ },
194
+ createRow: function createRow(row, instance) {
195
+ return {
196
+ columnFilterMap: {},
197
+ subRowsByFacetId: {}
198
+ };
199
+ },
200
+ createInstance: function createInstance(instance) {
201
+ return {
202
+ getGlobalAutoFilterFn: function getGlobalAutoFilterFn() {
203
+ return filterFns.filterFns.includesString;
204
+ },
205
+ getGlobalFilterFn: function getGlobalFilterFn() {
206
+ var _ref2;
207
+
208
+ var _instance$options = instance.options,
209
+ userFilterFns = _instance$options.filterFns,
210
+ globalFilterFn = _instance$options.globalFilterFn;
211
+ return utils.isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? instance.getGlobalAutoFilterFn() : (_ref2 = userFilterFns == null ? void 0 : userFilterFns[globalFilterFn]) != null ? _ref2 : filterFns.filterFns[globalFilterFn];
212
+ },
213
+ setColumnFilters: function setColumnFilters(updater) {
214
+ var leafColumns = instance.getAllLeafColumns();
215
+
216
+ var updateFn = function updateFn(old) {
217
+ var _functionalUpdate;
218
+
219
+ return (_functionalUpdate = utils.functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(function (filter) {
220
+ var column = leafColumns.find(function (d) {
221
+ return d.id === filter.id;
222
+ });
223
+
224
+ if (column) {
225
+ var filterFn = column.getFilterFn();
226
+
227
+ if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {
228
+ return false;
229
+ }
230
+ }
231
+
232
+ return true;
233
+ });
234
+ };
235
+
236
+ instance.options.onColumnFiltersChange == null ? void 0 : instance.options.onColumnFiltersChange(updateFn);
237
+ },
238
+ setGlobalFilter: function setGlobalFilter(updater) {
239
+ instance.options.onGlobalFilterChange == null ? void 0 : instance.options.onGlobalFilterChange(updater);
240
+ },
241
+ resetGlobalFilter: function resetGlobalFilter() {
242
+ instance.setGlobalFilter(instance.initialState.globalFilter);
243
+ },
291
244
  resetColumnFilters: function resetColumnFilters() {
292
245
  var _instance$initialStat, _instance$initialStat2;
293
246
 
294
247
  instance.setColumnFilters((_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.columnFilters) != null ? _instance$initialStat : []);
295
248
  },
296
- getPreColumnFilteredRowModel: function getPreColumnFilteredRowModel() {
249
+ getPreFilteredRowModel: function getPreFilteredRowModel() {
297
250
  return instance.getCoreRowModel();
298
251
  },
299
- getColumnFilteredRowModel: function getColumnFilteredRowModel() {
300
- if (!instance._getColumnFilteredRowModel && instance.options.getColumnFilteredRowModel) {
301
- instance._getColumnFilteredRowModel = instance.options.getColumnFilteredRowModel(instance);
252
+ getFilteredRowModel: function getFilteredRowModel() {
253
+ if (!instance._getFilteredRowModel && instance.options.getFilteredRowModel) {
254
+ instance._getFilteredRowModel = instance.options.getFilteredRowModel(instance);
302
255
  }
303
256
 
304
- if (instance.options.manualColumnFiltering || !instance._getColumnFilteredRowModel) {
305
- return instance.getPreColumnFilteredRowModel();
257
+ if (instance.options.manualFiltering || !instance._getFilteredRowModel) {
258
+ return instance.getPreFilteredRowModel();
306
259
  }
307
260
 
308
- return instance._getColumnFilteredRowModel();
309
- },
310
- getPreGlobalFilteredRowModel: function getPreGlobalFilteredRowModel() {
311
- return instance.getColumnFilteredRowModel();
261
+ return instance._getFilteredRowModel();
312
262
  },
313
- getGlobalFilteredRowModel: function getGlobalFilteredRowModel() {
314
- if (!instance._getGlobalFilteredRowModel && instance.options.getGlobalFilteredRowModel) {
315
- instance._getGlobalFilteredRowModel = instance.options.getGlobalFilteredRowModel(instance);
263
+ getGlobalFacetedRowModel: utils.memo(function () {
264
+ return [instance.getPreFilteredRowModel(), instance.getState().columnFilters, instance.getState().globalFilter, // Include this to force the filtered facet info to be calculated
265
+ instance.getFilteredRowModel()];
266
+ }, function (rowModel, columnFilters, globalFilter, _) {
267
+ if (!(columnFilters != null && columnFilters.length) && !globalFilter) {
268
+ return rowModel;
316
269
  }
317
270
 
318
- if (instance.options.manualGlobalFiltering || !instance._getGlobalFilteredRowModel) {
319
- return instance.getPreGlobalFilteredRowModel();
320
- }
271
+ return filterRowsUtils.filterRows(rowModel.rows, columnFilters.map(function (d) {
272
+ return d.id;
273
+ }), instance);
274
+ }, {
275
+ key: process.env.NODE_ENV === 'production' && 'getGlobalFacetedRowModel',
276
+ debug: function debug() {
277
+ var _instance$options$deb4;
321
278
 
322
- return instance._getGlobalFilteredRowModel();
323
- }
279
+ return (_instance$options$deb4 = instance.options.debugAll) != null ? _instance$options$deb4 : instance.options.debugColumns;
280
+ }
281
+ }),
282
+ getGlobalFacetedUniqueValues: utils.memo(function () {
283
+ return [instance.getGlobalFacetedRowModel()];
284
+ }, function (facetedRowModel) {
285
+ return getRowModelUniqueValues(facetedRowModel, '__global__');
286
+ }, {
287
+ key: process.env.NODE_ENV === 'production' && 'getGlobalFacetedUniqueValues',
288
+ debug: function debug() {
289
+ var _instance$options$deb5;
290
+
291
+ return (_instance$options$deb5 = instance.options.debugAll) != null ? _instance$options$deb5 : instance.options.debugColumns;
292
+ }
293
+ }),
294
+ getGlobalFacetedMinMaxValues: utils.memo(function () {
295
+ return [instance.getGlobalFacetedRowModel()];
296
+ }, function (facetedRowModel) {
297
+ return getRowModelMinMaxValues(facetedRowModel, '__global__');
298
+ }, {
299
+ key: process.env.NODE_ENV === 'production' && 'getGlobalFacetedMinMaxValues',
300
+ debug: function debug() {
301
+ var _instance$options$deb6;
302
+
303
+ return (_instance$options$deb6 = instance.options.debugAll) != null ? _instance$options$deb6 : instance.options.debugColumns;
304
+ }
305
+ })
324
306
  };
325
307
  }
326
308
  };
327
309
  function shouldAutoRemoveFilter(filterFn, value, column) {
328
310
  return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;
329
311
  }
312
+ function getRowModelMinMaxValues(rowModel, columnId) {
313
+ var _rowModel$flatRows$0$, _rowModel$flatRows$, _rowModel$flatRows$0$2, _rowModel$flatRows$2;
314
+
315
+ var facetedMinMaxValues = [(_rowModel$flatRows$0$ = (_rowModel$flatRows$ = rowModel.flatRows[0]) == null ? void 0 : _rowModel$flatRows$.values[columnId]) != null ? _rowModel$flatRows$0$ : null, (_rowModel$flatRows$0$2 = (_rowModel$flatRows$2 = rowModel.flatRows[0]) == null ? void 0 : _rowModel$flatRows$2.values[columnId]) != null ? _rowModel$flatRows$0$2 : null];
316
+
317
+ for (var i = 0; i < rowModel.flatRows.length; i++) {
318
+ var _rowModel$flatRows$i;
319
+
320
+ var _value = (_rowModel$flatRows$i = rowModel.flatRows[i]) == null ? void 0 : _rowModel$flatRows$i.values[columnId];
321
+
322
+ if (_value < facetedMinMaxValues[0]) {
323
+ facetedMinMaxValues[0] = _value;
324
+ } else if (_value > facetedMinMaxValues[1]) {
325
+ facetedMinMaxValues[1] = _value;
326
+ }
327
+ }
328
+
329
+ return facetedMinMaxValues;
330
+ }
331
+ function getRowModelUniqueValues(rowModel, columnId) {
332
+ var facetedUniqueValues = new Map();
333
+
334
+ for (var i = 0; i < rowModel.flatRows.length; i++) {
335
+ var _rowModel$flatRows$i2;
336
+
337
+ var _value2 = (_rowModel$flatRows$i2 = rowModel.flatRows[i]) == null ? void 0 : _rowModel$flatRows$i2.values[columnId];
338
+
339
+ if (facetedUniqueValues.has(_value2)) {
340
+ var _facetedUniqueValues$;
341
+
342
+ facetedUniqueValues.set(_value2, ((_facetedUniqueValues$ = facetedUniqueValues.get(_value2)) != null ? _facetedUniqueValues$ : 0) + 1);
343
+ } else {
344
+ facetedUniqueValues.set(_value2, 1);
345
+ }
346
+ }
347
+
348
+ return facetedUniqueValues;
349
+ }
330
350
 
331
351
  exports.Filters = Filters;
352
+ exports.getRowModelMinMaxValues = getRowModelMinMaxValues;
353
+ exports.getRowModelUniqueValues = getRowModelUniqueValues;
332
354
  exports.shouldAutoRemoveFilter = shouldAutoRemoveFilter;
333
355
  //# sourceMappingURL=Filters.js.map