@tanstack/table-core 8.0.0-alpha.9 → 8.0.0-beta.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 (186) hide show
  1. package/build/cjs/aggregationFns.js +120 -0
  2. package/build/cjs/aggregationFns.js.map +1 -0
  3. package/build/cjs/core/cell.js +40 -0
  4. package/build/cjs/core/cell.js.map +1 -0
  5. package/build/cjs/core/column.js +88 -0
  6. package/build/cjs/core/column.js.map +1 -0
  7. package/build/cjs/core/headers.js +403 -0
  8. package/build/cjs/core/headers.js.map +1 -0
  9. package/build/cjs/core/instance.js +255 -0
  10. package/build/cjs/core/instance.js.map +1 -0
  11. package/build/cjs/core/row.js +77 -0
  12. package/build/cjs/core/row.js.map +1 -0
  13. package/build/cjs/createTable.js +36 -29
  14. package/build/cjs/createTable.js.map +1 -1
  15. package/build/cjs/features/ColumnSizing.js +157 -189
  16. package/build/cjs/features/ColumnSizing.js.map +1 -1
  17. package/build/cjs/features/Expanding.js +103 -155
  18. package/build/cjs/features/Expanding.js.map +1 -1
  19. package/build/cjs/features/Filters.js +155 -304
  20. package/build/cjs/features/Filters.js.map +1 -1
  21. package/build/cjs/features/Grouping.js +97 -157
  22. package/build/cjs/features/Grouping.js.map +1 -1
  23. package/build/cjs/features/Ordering.js +30 -41
  24. package/build/cjs/features/Ordering.js.map +1 -1
  25. package/build/cjs/features/Pagination.js +102 -105
  26. package/build/cjs/features/Pagination.js.map +1 -1
  27. package/build/cjs/features/Pinning.js +131 -89
  28. package/build/cjs/features/Pinning.js.map +1 -1
  29. package/build/cjs/features/RowSelection.js +138 -267
  30. package/build/cjs/features/RowSelection.js.map +1 -1
  31. package/build/cjs/features/Sorting.js +82 -167
  32. package/build/cjs/features/Sorting.js.map +1 -1
  33. package/build/cjs/features/Visibility.js +69 -115
  34. package/build/cjs/features/Visibility.js.map +1 -1
  35. package/build/cjs/filterFns.js +107 -0
  36. package/build/cjs/filterFns.js.map +1 -0
  37. package/build/cjs/index.js +36 -23
  38. package/build/cjs/index.js.map +1 -1
  39. package/build/cjs/sortingFns.js +124 -0
  40. package/build/cjs/sortingFns.js.map +1 -0
  41. package/build/cjs/utils/filterRowsUtils.js +117 -0
  42. package/build/cjs/utils/filterRowsUtils.js.map +1 -0
  43. package/build/cjs/utils/getCoreRowModel.js +79 -0
  44. package/build/cjs/utils/getCoreRowModel.js.map +1 -0
  45. package/build/cjs/utils/getExpandedRowModel.js +57 -0
  46. package/build/cjs/utils/getExpandedRowModel.js.map +1 -0
  47. package/build/cjs/utils/getFacetedMinMaxValues.js +54 -0
  48. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -0
  49. package/build/cjs/utils/getFacetedRowModel.js +50 -0
  50. package/build/cjs/utils/getFacetedRowModel.js.map +1 -0
  51. package/build/cjs/utils/getFacetedUniqueValues.js +48 -0
  52. package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -0
  53. package/build/cjs/utils/getFilteredRowModel.js +139 -0
  54. package/build/cjs/utils/getFilteredRowModel.js.map +1 -0
  55. package/build/cjs/utils/getGroupedRowModel.js +161 -0
  56. package/build/cjs/utils/getGroupedRowModel.js.map +1 -0
  57. package/build/cjs/utils/getPaginationRowModel.js +61 -0
  58. package/build/cjs/utils/getPaginationRowModel.js.map +1 -0
  59. package/build/cjs/utils/getSortedRowModel.js +110 -0
  60. package/build/cjs/utils/getSortedRowModel.js.map +1 -0
  61. package/build/cjs/utils.js +38 -107
  62. package/build/cjs/utils.js.map +1 -1
  63. package/build/esm/index.js +2976 -3853
  64. package/build/esm/index.js.map +1 -1
  65. package/build/stats-html.html +1 -1
  66. package/build/stats-react.json +586 -408
  67. package/build/types/aggregationFns.d.ts +13 -0
  68. package/build/types/core/cell.d.ts +9 -0
  69. package/build/types/core/column.d.ts +40 -0
  70. package/build/types/core/headers.d.ts +46 -0
  71. package/build/types/core/instance.d.ts +57 -0
  72. package/build/types/core/row.d.ts +15 -0
  73. package/build/types/createTable.d.ts +47 -26
  74. package/build/types/features/ColumnSizing.d.ts +32 -44
  75. package/build/types/features/Expanding.d.ts +15 -26
  76. package/build/types/features/Filters.d.ts +64 -63
  77. package/build/types/features/Grouping.d.ts +32 -46
  78. package/build/types/features/Ordering.d.ts +7 -10
  79. package/build/types/features/Pagination.d.ts +16 -15
  80. package/build/types/features/Pinning.d.ts +16 -17
  81. package/build/types/features/RowSelection.d.ts +13 -33
  82. package/build/types/features/Sorting.d.ts +25 -44
  83. package/build/types/features/Visibility.d.ts +16 -25
  84. package/build/types/filterFns.d.ts +13 -0
  85. package/build/types/index.d.ts +16 -10
  86. package/build/types/sortingFns.d.ts +11 -0
  87. package/build/types/types.d.ts +37 -122
  88. package/build/types/utils/filterRowsUtils.d.ts +4 -0
  89. package/build/types/utils/getCoreRowModel.d.ts +2 -0
  90. package/build/types/utils/getExpandedRowModel.d.ts +7 -0
  91. package/build/types/utils/getFacetedMinMaxValues.d.ts +2 -0
  92. package/build/types/utils/getFacetedRowModel.d.ts +2 -0
  93. package/build/types/utils/getFacetedUniqueValues.d.ts +2 -0
  94. package/build/types/utils/getFilteredRowModel.d.ts +2 -0
  95. package/build/types/utils/getGroupedRowModel.d.ts +2 -0
  96. package/build/types/utils/getPaginationRowModel.d.ts +4 -0
  97. package/build/types/utils/getSortedRowModel.d.ts +2 -0
  98. package/build/types/utils.d.ts +7 -11
  99. package/build/umd/index.development.js +3024 -3893
  100. package/build/umd/index.development.js.map +1 -1
  101. package/build/umd/index.production.js +1 -1
  102. package/build/umd/index.production.js.map +1 -1
  103. package/package.json +9 -10
  104. package/src/.DS_Store +0 -0
  105. package/src/aggregationFns.ts +123 -0
  106. package/src/core/cell.ts +48 -0
  107. package/src/core/column.ts +147 -0
  108. package/src/core/headers.ts +575 -0
  109. package/src/core/instance.ts +361 -0
  110. package/src/core/row.ts +85 -0
  111. package/src/createTable.ts +188 -0
  112. package/src/features/ColumnSizing.ts +170 -185
  113. package/src/features/Expanding.ts +122 -194
  114. package/src/features/Filters.ts +301 -381
  115. package/src/features/Grouping.ts +160 -220
  116. package/src/features/Ordering.ts +24 -25
  117. package/src/features/Pagination.ts +90 -73
  118. package/src/features/Pinning.ts +186 -63
  119. package/src/features/RowSelection.ts +107 -245
  120. package/src/features/Sorting.ts +127 -225
  121. package/src/features/Visibility.ts +116 -132
  122. package/src/filterFns.ts +135 -0
  123. package/src/index.ts +29 -0
  124. package/src/{sortTypes.ts → sortingFns.ts} +63 -85
  125. package/src/types.ts +62 -168
  126. package/src/utils/filterRowsUtils.ts +112 -0
  127. package/src/utils/getCoreRowModel.ts +84 -0
  128. package/src/utils/getExpandedRowModel.ts +54 -0
  129. package/src/utils/getFacetedMinMaxValues.ts +40 -0
  130. package/src/utils/getFacetedRowModel.ts +50 -0
  131. package/src/utils/getFacetedUniqueValues.ts +37 -0
  132. package/src/utils/getFilteredRowModel.ts +159 -0
  133. package/src/utils/getGroupedRowModel.ts +175 -0
  134. package/src/utils/getPaginationRowModel.ts +48 -0
  135. package/src/utils/getSortedRowModel.ts +116 -0
  136. package/src/utils.ts +126 -0
  137. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
  138. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  139. package/build/cjs/aggregationTypes.js +0 -130
  140. package/build/cjs/aggregationTypes.js.map +0 -1
  141. package/build/cjs/core.js +0 -545
  142. package/build/cjs/core.js.map +0 -1
  143. package/build/cjs/features/Headers.js +0 -630
  144. package/build/cjs/features/Headers.js.map +0 -1
  145. package/build/cjs/filterTypes.js +0 -172
  146. package/build/cjs/filterTypes.js.map +0 -1
  147. package/build/cjs/sortTypes.js +0 -122
  148. package/build/cjs/sortTypes.js.map +0 -1
  149. package/build/cjs/types.js +0 -22
  150. package/build/cjs/types.js.map +0 -1
  151. package/build/cjs/utils/columnFilterRowsFn.js +0 -131
  152. package/build/cjs/utils/columnFilterRowsFn.js.map +0 -1
  153. package/build/cjs/utils/expandRowsFn.js +0 -38
  154. package/build/cjs/utils/expandRowsFn.js.map +0 -1
  155. package/build/cjs/utils/globalFilterRowsFn.js +0 -101
  156. package/build/cjs/utils/globalFilterRowsFn.js.map +0 -1
  157. package/build/cjs/utils/groupRowsFn.js +0 -155
  158. package/build/cjs/utils/groupRowsFn.js.map +0 -1
  159. package/build/cjs/utils/paginateRowsFn.js +0 -44
  160. package/build/cjs/utils/paginateRowsFn.js.map +0 -1
  161. package/build/cjs/utils/sortRowsFn.js +0 -94
  162. package/build/cjs/utils/sortRowsFn.js.map +0 -1
  163. package/build/types/aggregationTypes.d.ts +0 -22
  164. package/build/types/core.d.ts +0 -105
  165. package/build/types/features/Headers.d.ts +0 -43
  166. package/build/types/filterTypes.d.ts +0 -50
  167. package/build/types/sortTypes.d.ts +0 -18
  168. package/build/types/utils/columnFilterRowsFn.d.ts +0 -2
  169. package/build/types/utils/expandRowsFn.d.ts +0 -2
  170. package/build/types/utils/globalFilterRowsFn.d.ts +0 -2
  171. package/build/types/utils/groupRowsFn.d.ts +0 -2
  172. package/build/types/utils/paginateRowsFn.d.ts +0 -2
  173. package/build/types/utils/sortRowsFn.d.ts +0 -2
  174. package/src/aggregationTypes.ts +0 -115
  175. package/src/core.tsx +0 -763
  176. package/src/createTable.tsx +0 -137
  177. package/src/features/Headers.ts +0 -747
  178. package/src/filterTypes.ts +0 -188
  179. package/src/index.tsx +0 -23
  180. package/src/utils/columnFilterRowsFn.ts +0 -113
  181. package/src/utils/expandRowsFn.ts +0 -30
  182. package/src/utils/globalFilterRowsFn.ts +0 -89
  183. package/src/utils/groupRowsFn.ts +0 -170
  184. package/src/utils/paginateRowsFn.ts +0 -28
  185. package/src/utils/sortRowsFn.ts +0 -95
  186. package/src/utils.tsx +0 -221
@@ -12,291 +12,117 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var filterTypes = require('../filterTypes.js');
15
+ var filterFns = require('../filterFns.js');
16
16
  var utils = require('../utils.js');
17
17
 
18
18
  //
19
- function getDefaultColumn() {
20
- return {
21
- filterType: 'auto'
22
- };
23
- }
24
- var Filters = {
25
- getInitialState: function getInitialState() {
19
+ const Filters = {
20
+ getDefaultColumnDef: () => {
21
+ return {
22
+ filterFn: 'auto'
23
+ };
24
+ },
25
+ getInitialState: state => {
26
26
  return {
27
27
  columnFilters: [],
28
- globalFilter: undefined
28
+ globalFilter: undefined,
29
+ // filtersProgress: 1,
30
+ // facetProgress: {},
31
+ ...state
29
32
  };
30
33
  },
31
- getDefaultOptions: function getDefaultOptions(instance) {
34
+ getDefaultOptions: instance => {
32
35
  return {
33
36
  onColumnFiltersChange: utils.makeStateUpdater('columnFilters', instance),
34
37
  onGlobalFilterChange: utils.makeStateUpdater('globalFilter', instance),
35
- autoResetColumnFilters: true,
36
- filterFromChildrenUp: true,
37
- autoResetGlobalFilter: true,
38
- globalFilterType: 'auto',
39
- getColumnCanGlobalFilterFn: function getColumnCanGlobalFilterFn(column) {
38
+ filterFromLeafRows: false,
39
+ globalFilterFn: 'auto',
40
+ getColumnCanGlobalFilter: column => {
40
41
  var _instance$getCoreRowM, _instance$getCoreRowM2;
41
42
 
42
- var value = (_instance$getCoreRowM = instance.getCoreRowModel().flatRows[0]) == null ? void 0 : (_instance$getCoreRowM2 = _instance$getCoreRowM.getAllCellsByColumnId()[column.id]) == null ? void 0 : _instance$getCoreRowM2.value;
43
+ const value = (_instance$getCoreRowM = instance.getCoreRowModel().flatRows[0]) == null ? void 0 : (_instance$getCoreRowM2 = _instance$getCoreRowM._getAllCellsByColumnId()[column.id]) == null ? void 0 : _instance$getCoreRowM2.getValue();
43
44
  return typeof value === 'string';
44
45
  }
45
46
  };
46
47
  },
47
- 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
- return {
93
- filterType: column.filterType,
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
- getIsColumnFiltered: function getIsColumnFiltered() {
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
- getInstance: function getInstance(instance) {
124
- var registered = false;
48
+ createColumn: (column, instance) => {
125
49
  return {
126
- _notifyFiltersReset: function _notifyFiltersReset() {
127
- if (!registered) {
128
- registered = true;
129
- return;
130
- }
131
-
132
- if (instance.options.autoResetAll === false) {
133
- return;
134
- }
135
-
136
- if (instance.options.autoResetAll === true) {
137
- instance.resetSorting();
138
- } else {
139
- if (instance.options.autoResetColumnFilters) {
140
- instance.resetColumnFilters();
141
- }
142
-
143
- if (instance.options.autoResetGlobalFilter) {
144
- instance.resetGlobalFilter();
145
- }
146
- }
147
- },
148
- getColumnAutoFilterFn: function getColumnAutoFilterFn(columnId) {
149
- var firstRow = instance.getCoreRowModel().flatRows[0];
150
- var value = firstRow == null ? void 0 : firstRow.values[columnId];
50
+ filterFn: column.filterFn,
51
+ getAutoFilterFn: () => {
52
+ const firstRow = instance.getCoreRowModel().flatRows[0];
53
+ const value = firstRow == null ? void 0 : firstRow.getValue(column.id);
151
54
 
152
55
  if (typeof value === 'string') {
153
- return filterTypes.filterTypes.includesString;
56
+ return filterFns.filterFns.includesString;
154
57
  }
155
58
 
156
59
  if (typeof value === 'number') {
157
- return filterTypes.filterTypes.betweenNumberRange;
60
+ return filterFns.filterFns.inNumberRange;
61
+ }
62
+
63
+ if (typeof value === 'boolean') {
64
+ return filterFns.filterFns.equals;
158
65
  }
159
66
 
160
67
  if (value !== null && typeof value === 'object') {
161
- return filterTypes.filterTypes.equals;
68
+ return filterFns.filterFns.equals;
162
69
  }
163
70
 
164
71
  if (Array.isArray(value)) {
165
- return filterTypes.filterTypes.arrIncludes;
72
+ return filterFns.filterFns.arrIncludes;
166
73
  }
167
74
 
168
- return filterTypes.filterTypes.weakEquals;
75
+ return filterFns.filterFns.weakEquals;
169
76
  },
170
- getGlobalAutoFilterFn: function getGlobalAutoFilterFn() {
171
- return filterTypes.filterTypes.includesString;
172
- },
173
- getColumnFilterFn: function getColumnFilterFn(columnId) {
77
+ getFilterFn: () => {
174
78
  var _ref;
175
79
 
176
- var column = instance.getColumn(columnId);
177
- var userFilterTypes = instance.options.filterTypes;
178
-
179
- if (!column) {
180
- throw new Error();
181
- }
182
-
183
- return utils.isFunction(column.filterType) ? column.filterType : column.filterType === 'auto' ? instance.getColumnAutoFilterFn(columnId) : (_ref = userFilterTypes == null ? void 0 : userFilterTypes[column.filterType]) != null ? _ref : filterTypes.filterTypes[column.filterType];
80
+ const userFilterFns = instance.options.filterFns;
81
+ 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];
184
82
  },
185
- getGlobalFilterFn: function getGlobalFilterFn() {
186
- var _ref2;
83
+ getCanFilter: () => {
84
+ var _column$columnDef$ena, _instance$options$ena, _instance$options$ena2;
187
85
 
188
- var _instance$options = instance.options,
189
- userFilterTypes = _instance$options.filterTypes,
190
- globalFilterType = _instance$options.globalFilterType;
191
- return utils.isFunction(globalFilterType) ? globalFilterType : globalFilterType === 'auto' ? instance.getGlobalAutoFilterFn() : (_ref2 = userFilterTypes == null ? void 0 : userFilterTypes[globalFilterType]) != null ? _ref2 : filterTypes.filterTypes[globalFilterType];
86
+ return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : 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;
192
87
  },
193
- setColumnFilters: function setColumnFilters(updater) {
194
- var leafColumns = instance.getAllLeafColumns();
88
+ getCanGlobalFilter: () => {
89
+ var _column$columnDef$ena2, _instance$options$ena3, _instance$options$ena4, _instance$options$get;
195
90
 
196
- var updateFn = function updateFn(old) {
197
- var _functionalUpdate;
198
-
199
- return (_functionalUpdate = utils.functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(function (filter) {
200
- var column = leafColumns.find(function (d) {
201
- return d.id === filter.id;
202
- });
203
-
204
- if (column) {
205
- var filterFn = instance.getColumnFilterFn(column.id);
206
-
207
- if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {
208
- return false;
209
- }
210
- }
211
-
212
- return true;
213
- });
214
- };
215
-
216
- instance.options.onColumnFiltersChange == null ? void 0 : instance.options.onColumnFiltersChange(updateFn, updateFn(instance.getState().columnFilters));
217
- },
218
- setGlobalFilter: function setGlobalFilter(updater) {
219
- instance.options.onGlobalFilterChange == null ? void 0 : instance.options.onGlobalFilterChange(updater, utils.functionalUpdate(updater, instance.getState().globalFilter));
220
- },
221
- resetGlobalFilter: function resetGlobalFilter() {
222
- instance.setGlobalFilter(undefined);
91
+ return ((_column$columnDef$ena2 = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena2 : 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;
223
92
  },
224
- getColumnCanColumnFilter: function getColumnCanColumnFilter(columnId) {
225
- var _ref3, _ref4, _ref5, _ref6, _ref7, _column$enableAllFilt;
226
-
227
- var column = instance.getColumn(columnId);
228
-
229
- if (!column) {
230
- throw new Error();
231
- }
232
-
233
- 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.defaultCanFilter) != null ? _ref4 : column.defaultCanColumnFilter) != null ? _ref3 : !!column.accessorFn;
234
- },
235
- getColumnCanGlobalFilter: function getColumnCanGlobalFilter(columnId) {
236
- var _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _instance$options$ena;
237
-
238
- var column = instance.getColumn(columnId);
239
-
240
- if (!column) {
241
- throw new Error();
242
- }
243
-
244
- 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.defaultCanFilter) != null ? _ref10 : column.defaultCanGlobalFilter) != null ? _ref9 : !!column.accessorFn) && (instance.options.getColumnCanGlobalFilterFn == null ? void 0 : instance.options.getColumnCanGlobalFilterFn(column))) != null ? _ref8 : true;
245
- },
246
- getColumnIsFiltered: function getColumnIsFiltered(columnId) {
247
- return instance.getColumnFilterIndex(columnId) > -1;
248
- },
249
- getColumnFilterValue: function getColumnFilterValue(columnId) {
93
+ getIsFiltered: () => column.getFilterIndex() > -1,
94
+ getFilterValue: () => {
250
95
  var _instance$getState$co, _instance$getState$co2;
251
96
 
252
- return (_instance$getState$co = instance.getState().columnFilters) == null ? void 0 : (_instance$getState$co2 = _instance$getState$co.find(function (d) {
253
- return d.id === columnId;
254
- })) == null ? void 0 : _instance$getState$co2.value;
97
+ return (_instance$getState$co = instance.getState().columnFilters) == null ? void 0 : (_instance$getState$co2 = _instance$getState$co.find(d => d.id === column.id)) == null ? void 0 : _instance$getState$co2.value;
255
98
  },
256
- getColumnFilterIndex: function getColumnFilterIndex(columnId) {
99
+ getFilterIndex: () => {
257
100
  var _instance$getState$co3, _instance$getState$co4;
258
101
 
259
- return (_instance$getState$co3 = (_instance$getState$co4 = instance.getState().columnFilters) == null ? void 0 : _instance$getState$co4.findIndex(function (d) {
260
- return d.id === columnId;
261
- })) != null ? _instance$getState$co3 : -1;
102
+ return (_instance$getState$co3 = (_instance$getState$co4 = instance.getState().columnFilters) == null ? void 0 : _instance$getState$co4.findIndex(d => d.id === column.id)) != null ? _instance$getState$co3 : -1;
262
103
  },
263
- setColumnFilterValue: function setColumnFilterValue(columnId, value) {
264
- if (!columnId) return;
265
- instance.setColumnFilters(function (old) {
266
- var column = instance.getColumn(columnId);
267
-
268
- if (!column) {
269
- if (process.env.NODE_ENV !== 'production') {
270
- console.warn("React-Table: Could not find a column with id: " + columnId);
271
- }
272
-
273
- throw new Error();
274
- }
275
-
276
- var filterFn = instance.getColumnFilterFn(column.id);
277
- var previousfilter = old == null ? void 0 : old.find(function (d) {
278
- return d.id === columnId;
279
- });
280
- var newFilter = utils.functionalUpdate(value, previousfilter ? previousfilter.value : undefined); //
104
+ setFilterValue: value => {
105
+ instance.setColumnFilters(old => {
106
+ const filterFn = column.getFilterFn();
107
+ const previousfilter = old == null ? void 0 : old.find(d => d.id === column.id);
108
+ const newFilter = utils.functionalUpdate(value, previousfilter ? previousfilter.value : undefined); //
281
109
 
282
110
  if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {
283
111
  var _old$filter;
284
112
 
285
- return (_old$filter = old == null ? void 0 : old.filter(function (d) {
286
- return d.id !== columnId;
287
- })) != null ? _old$filter : [];
113
+ return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];
288
114
  }
289
115
 
290
- var newFilterObj = {
291
- id: columnId,
116
+ const newFilterObj = {
117
+ id: column.id,
292
118
  value: newFilter
293
119
  };
294
120
 
295
121
  if (previousfilter) {
296
122
  var _old$map;
297
123
 
298
- return (_old$map = old == null ? void 0 : old.map(function (d) {
299
- if (d.id === columnId) {
124
+ return (_old$map = old == null ? void 0 : old.map(d => {
125
+ if (d.id === column.id) {
300
126
  return newFilterObj;
301
127
  }
302
128
 
@@ -305,101 +131,127 @@ var Filters = {
305
131
  }
306
132
 
307
133
  if (old != null && old.length) {
308
- return [].concat(old, [newFilterObj]);
134
+ return [...old, newFilterObj];
309
135
  }
310
136
 
311
137
  return [newFilterObj];
312
138
  });
313
139
  },
314
- resetColumnFilters: function resetColumnFilters() {
315
- var _instance$initialStat, _instance$initialStat2;
140
+ _getFacetedRowModel: instance.options.getFacetedRowModel && instance.options.getFacetedRowModel(instance, column.id),
141
+ getFacetedRowModel: () => {
142
+ if (!column._getFacetedRowModel) {
143
+ return instance.getPreFilteredRowModel();
144
+ }
316
145
 
317
- instance.setColumnFilters((_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.columnFilters) != null ? _instance$initialStat : []);
146
+ return column._getFacetedRowModel();
318
147
  },
319
- getPreFilteredRowModel: function getPreFilteredRowModel() {
320
- return instance.getCoreRowModel();
148
+ _getFacetedUniqueValues: instance.options.getFacetedUniqueValues && instance.options.getFacetedUniqueValues(instance, column.id),
149
+ getFacetedUniqueValues: () => {
150
+ if (!column._getFacetedUniqueValues) {
151
+ return new Map();
152
+ }
153
+
154
+ return column._getFacetedUniqueValues();
321
155
  },
322
- getPreColumnFilteredRowModel: function getPreColumnFilteredRowModel() {
323
- return instance.getCoreRowModel();
156
+ _getFacetedMinMaxValues: instance.options.getFacetedMinMaxValues && instance.options.getFacetedMinMaxValues(instance, column.id),
157
+ getFacetedMinMaxValues: () => {
158
+ if (!column._getFacetedMinMaxValues) {
159
+ return undefined;
160
+ }
161
+
162
+ return column._getFacetedMinMaxValues();
163
+ } // () => [column.getFacetedRowModel()],
164
+ // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),
165
+
166
+ };
167
+ },
168
+ createRow: (row, instance) => {
169
+ return {
170
+ columnFilters: {},
171
+ columnFiltersMeta: {}
172
+ };
173
+ },
174
+ createInstance: instance => {
175
+ return {
176
+ getGlobalAutoFilterFn: () => {
177
+ return filterFns.filterFns.includesString;
324
178
  },
325
- getColumnFilteredRowModel: utils.memo(function () {
326
- return [instance.getState().columnFilters, instance.getCoreRowModel(), instance.options.columnFilterRowsFn];
327
- }, function (columnFilters, rowModel, columnFiltersFn) {
328
- var columnFilteredRowModel = function () {
329
- if (!(columnFilters != null && columnFilters.length) || !columnFiltersFn) {
330
- return rowModel;
331
- }
179
+ getGlobalFilterFn: () => {
180
+ var _ref2;
332
181
 
333
- return columnFiltersFn(instance, rowModel);
334
- }(); // Now that each filtered column has it's partially filtered rows,
335
- // lets assign the final filtered rows to all of the other columns
182
+ const {
183
+ filterFns: userFilterFns,
184
+ globalFilterFn: globalFilterFn
185
+ } = instance.options;
186
+ return utils.isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? instance.getGlobalAutoFilterFn() : (_ref2 = userFilterFns == null ? void 0 : userFilterFns[globalFilterFn]) != null ? _ref2 : filterFns.filterFns[globalFilterFn];
187
+ },
188
+ setColumnFilters: updater => {
189
+ const leafColumns = instance.getAllLeafColumns();
336
190
 
191
+ const updateFn = old => {
192
+ var _functionalUpdate;
337
193
 
338
- var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
339
- var _instance$getState$co5;
194
+ return (_functionalUpdate = utils.functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {
195
+ const column = leafColumns.find(d => d.id === filter.id);
340
196
 
341
- return !((_instance$getState$co5 = instance.getState().columnFilters) != null && _instance$getState$co5.find(function (d) {
342
- return d.id === column.id;
343
- }));
344
- }); // This essentially enables faceted filter options to be built easily
345
- // using every column's preFilteredRows value
197
+ if (column) {
198
+ const filterFn = column.getFilterFn();
346
199
 
347
- nonFilteredColumns.forEach(function (column) {
348
- column.getPreFilteredRows = function () {
349
- return columnFilteredRowModel.rows;
350
- };
351
- });
352
- return columnFilteredRowModel;
353
- }, {
354
- key: 'getColumnFilteredRowModel',
355
- debug: function debug() {
356
- var _instance$options$deb2;
200
+ if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {
201
+ return false;
202
+ }
203
+ }
357
204
 
358
- return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugTable;
359
- }
360
- }),
361
- getPreGlobalFilteredRowModel: function getPreGlobalFilteredRowModel() {
362
- return instance.getColumnFilteredRowModel();
363
- },
364
- getGlobalFilteredRowModel: utils.memo(function () {
365
- return [instance.getState().globalFilter, instance.getColumnFilteredRowModel(), instance.options.globalFilterRowsFn];
366
- }, function (globalFilterValue, columnFilteredRowModel, globalFiltersFn) {
367
- var globalFilteredRowModel = function () {
368
- if (!globalFiltersFn || !globalFilterValue) {
369
- return columnFilteredRowModel;
370
- }
205
+ return true;
206
+ });
207
+ };
371
208
 
372
- return globalFiltersFn(instance, columnFilteredRowModel);
373
- }(); // Now that each filtered column has it's partially filtered rows,
374
- // lets assign the final filtered rows to all of the other columns
209
+ instance.options.onColumnFiltersChange == null ? void 0 : instance.options.onColumnFiltersChange(updateFn);
210
+ },
211
+ setGlobalFilter: updater => {
212
+ instance.options.onGlobalFilterChange == null ? void 0 : instance.options.onGlobalFilterChange(updater);
213
+ },
214
+ resetGlobalFilter: defaultState => {
215
+ instance.setGlobalFilter(defaultState ? undefined : instance.initialState.globalFilter);
216
+ },
217
+ resetColumnFilters: defaultState => {
218
+ var _instance$initialStat, _instance$initialStat2;
375
219
 
220
+ instance.setColumnFilters(defaultState ? [] : (_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.columnFilters) != null ? _instance$initialStat : []);
221
+ },
222
+ getPreFilteredRowModel: () => instance.getCoreRowModel(),
223
+ _getFilteredRowModel: instance.options.getFilteredRowModel && instance.options.getFilteredRowModel(instance),
224
+ getFilteredRowModel: () => {
225
+ if (instance.options.manualFiltering || !instance._getFilteredRowModel) {
226
+ return instance.getPreFilteredRowModel();
227
+ }
376
228
 
377
- var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
378
- var _instance$getState$co6;
229
+ return instance._getFilteredRowModel();
230
+ },
231
+ _getGlobalFacetedRowModel: instance.options.getFacetedRowModel && instance.options.getFacetedRowModel(instance, '__global__'),
232
+ getGlobalFacetedRowModel: () => {
233
+ if (instance.options.manualFiltering || !instance._getGlobalFacetedRowModel) {
234
+ return instance.getPreFilteredRowModel();
235
+ }
379
236
 
380
- return !((_instance$getState$co6 = instance.getState().columnFilters) != null && _instance$getState$co6.find(function (d) {
381
- return d.id === column.id;
382
- }));
383
- }); // This essentially enables faceted filter options to be built easily
384
- // using every column's preFilteredRows value
237
+ return instance._getGlobalFacetedRowModel();
238
+ },
239
+ _getGlobalFacetedUniqueValues: instance.options.getFacetedUniqueValues && instance.options.getFacetedUniqueValues(instance, '__global__'),
240
+ getGlobalFacetedUniqueValues: () => {
241
+ if (!instance._getGlobalFacetedUniqueValues) {
242
+ return new Map();
243
+ }
385
244
 
386
- nonFilteredColumns.forEach(function (column) {
387
- column.getPreFilteredRows = function () {
388
- return globalFilteredRowModel.rows;
389
- };
390
- });
391
- return globalFilteredRowModel;
392
- }, {
393
- key: 'getGlobalFilteredRowModel',
394
- debug: function debug() {
395
- var _instance$options$deb3;
396
-
397
- return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugTable;
398
- },
399
- onChange: function onChange() {
400
- instance._notifySortingReset();
245
+ return instance._getGlobalFacetedUniqueValues();
246
+ },
247
+ _getGlobalFacetedMinMaxValues: instance.options.getFacetedMinMaxValues && instance.options.getFacetedMinMaxValues(instance, '__global__'),
248
+ getGlobalFacetedMinMaxValues: () => {
249
+ if (!instance._getGlobalFacetedMinMaxValues) {
250
+ return;
401
251
  }
402
- })
252
+
253
+ return instance._getGlobalFacetedMinMaxValues();
254
+ }
403
255
  };
404
256
  }
405
257
  };
@@ -408,6 +260,5 @@ function shouldAutoRemoveFilter(filterFn, value, column) {
408
260
  }
409
261
 
410
262
  exports.Filters = Filters;
411
- exports.getDefaultColumn = getDefaultColumn;
412
263
  exports.shouldAutoRemoveFilter = shouldAutoRemoveFilter;
413
264
  //# sourceMappingURL=Filters.js.map