@tanstack/react-table 8.0.0-alpha.2 → 8.0.0-alpha.3

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 (93) hide show
  1. package/build/cjs/core.js +84 -51
  2. package/build/cjs/core.js.map +1 -1
  3. package/build/cjs/createTable.js +11 -6
  4. package/build/cjs/createTable.js.map +1 -1
  5. package/build/cjs/features/ColumnSizing.js +2 -16
  6. package/build/cjs/features/ColumnSizing.js.map +1 -1
  7. package/build/cjs/features/Expanding.js +23 -2
  8. package/build/cjs/features/Expanding.js.map +1 -1
  9. package/build/cjs/features/Filters.js +54 -5
  10. package/build/cjs/features/Filters.js.map +1 -1
  11. package/build/cjs/features/Grouping.js +23 -2
  12. package/build/cjs/features/Grouping.js.map +1 -1
  13. package/build/cjs/features/Headers.js +87 -24
  14. package/build/cjs/features/Headers.js.map +1 -1
  15. package/build/cjs/features/Ordering.js +4 -1
  16. package/build/cjs/features/Ordering.js.map +1 -1
  17. package/build/cjs/features/Pagination.js +194 -0
  18. package/build/cjs/features/Pagination.js.map +1 -0
  19. package/build/cjs/features/Pinning.js +0 -14
  20. package/build/cjs/features/Pinning.js.map +1 -1
  21. package/build/cjs/features/RowSelection.js +541 -0
  22. package/build/cjs/features/RowSelection.js.map +1 -0
  23. package/build/cjs/features/Sorting.js +76 -18
  24. package/build/cjs/features/Sorting.js.map +1 -1
  25. package/build/cjs/features/Visibility.js +8 -2
  26. package/build/cjs/features/Visibility.js.map +1 -1
  27. package/build/cjs/sortTypes.js +1 -0
  28. package/build/cjs/sortTypes.js.map +1 -1
  29. package/build/cjs/utils/columnFilterRowsFn.js +3 -2
  30. package/build/cjs/utils/columnFilterRowsFn.js.map +1 -1
  31. package/build/cjs/utils/expandRowsFn.js +2 -2
  32. package/build/cjs/utils/expandRowsFn.js.map +1 -1
  33. package/build/cjs/utils/globalFilterRowsFn.js +3 -2
  34. package/build/cjs/utils/globalFilterRowsFn.js.map +1 -1
  35. package/build/cjs/utils/groupRowsFn.js +4 -3
  36. package/build/cjs/utils/groupRowsFn.js.map +1 -1
  37. package/build/cjs/utils/sortRowsFn.js +3 -2
  38. package/build/cjs/utils/sortRowsFn.js.map +1 -1
  39. package/build/cjs/utils.js +6 -3
  40. package/build/cjs/utils.js.map +1 -1
  41. package/build/esm/index.js +2608 -1583
  42. package/build/esm/index.js.map +1 -1
  43. package/build/stats-html.html +1 -1
  44. package/build/stats-react.json +318 -248
  45. package/build/types/core.d.ts +10 -25
  46. package/build/types/createTable.d.ts +20 -2
  47. package/build/types/features/ColumnSizing.d.ts +4 -10
  48. package/build/types/features/Expanding.d.ts +2 -1
  49. package/build/types/features/Filters.d.ts +7 -2
  50. package/build/types/features/Grouping.d.ts +2 -2
  51. package/build/types/features/Ordering.d.ts +1 -1
  52. package/build/types/features/Pagination.d.ts +43 -0
  53. package/build/types/features/Pinning.d.ts +3 -3
  54. package/build/types/features/RowSelection.d.ts +66 -0
  55. package/build/types/features/Sorting.d.ts +5 -2
  56. package/build/types/sortTypes.d.ts +1 -0
  57. package/build/types/types.d.ts +9 -6
  58. package/build/types/utils/columnFilterRowsFn.d.ts +2 -2
  59. package/build/types/utils/expandRowsFn.d.ts +2 -2
  60. package/build/types/utils/globalFilterRowsFn.d.ts +2 -2
  61. package/build/types/utils/groupRowsFn.d.ts +2 -2
  62. package/build/types/utils/paginateRowsFn.d.ts +2 -0
  63. package/build/types/utils/sortRowsFn.d.ts +2 -2
  64. package/build/types/utils.d.ts +5 -1
  65. package/build/umd/index.development.js +2608 -1583
  66. package/build/umd/index.development.js.map +1 -1
  67. package/build/umd/index.production.js +1 -1
  68. package/build/umd/index.production.js.map +1 -1
  69. package/package.json +1 -1
  70. package/src/core.tsx +222 -272
  71. package/src/createTable.tsx +68 -8
  72. package/src/features/ColumnSizing.ts +8 -37
  73. package/src/features/Expanding.ts +27 -11
  74. package/src/features/Filters.ts +74 -19
  75. package/src/features/Grouping.ts +27 -12
  76. package/src/features/Headers.ts +26 -58
  77. package/src/features/Ordering.ts +2 -3
  78. package/src/features/Pagination.ts +314 -0
  79. package/src/features/Pinning.ts +3 -16
  80. package/src/features/RowSelection.ts +831 -0
  81. package/src/features/Sorting.ts +82 -22
  82. package/src/features/Visibility.ts +2 -4
  83. package/src/sortTypes.ts +1 -1
  84. package/src/types.ts +25 -8
  85. package/src/utils/columnFilterRowsFn.ts +5 -12
  86. package/src/utils/expandRowsFn.ts +2 -5
  87. package/src/utils/globalFilterRowsFn.ts +3 -10
  88. package/src/utils/groupRowsFn.ts +3 -5
  89. package/src/utils/paginateRowsFn.ts +34 -0
  90. package/src/utils/sortRowsFn.ts +5 -5
  91. package/src/utils.tsx +12 -4
  92. package/src/features/withPagination.oldts +0 -208
  93. package/src/features/withRowSelection.oldts +0 -467
@@ -30,7 +30,10 @@ function getInitialState() {
30
30
  function getDefaultOptions(instance) {
31
31
  return {
32
32
  onSortingChange: utils.makeStateUpdater('sorting', instance),
33
- autoResetSorting: true
33
+ autoResetSorting: true,
34
+ isMultiSortEvent: function isMultiSortEvent(e) {
35
+ return e.shiftKey;
36
+ }
34
37
  };
35
38
  }
36
39
  function createColumn(column, instance) {
@@ -57,21 +60,59 @@ function createColumn(column, instance) {
57
60
  };
58
61
  }
59
62
  function getInstance(instance) {
63
+ var registered = false;
60
64
  return {
65
+ _notifySortingReset: function _notifySortingReset() {
66
+ if (!registered) {
67
+ registered = true;
68
+ return;
69
+ }
70
+
71
+ if (instance.options.autoResetAll === false) {
72
+ return;
73
+ }
74
+
75
+ if (instance.options.autoResetAll === true || instance.options.autoResetSorting) {
76
+ instance.resetSorting();
77
+ }
78
+ },
61
79
  getColumnAutoSortingFn: function getColumnAutoSortingFn(columnId) {
62
- var firstRow = instance.getGlobalFilteredRowModel().flatRows[0];
63
- var value = firstRow == null ? void 0 : firstRow.values[columnId];
80
+ var firstRows = instance.getGlobalFilteredRowModel().flatRows.slice(100);
81
+ var isString = false;
64
82
 
65
- if (typeof value === 'string') {
66
- return sortTypes.sortTypes.alphanumeric;
83
+ for (var _iterator = _rollupPluginBabelHelpers.createForOfIteratorHelperLoose(firstRows), _step; !(_step = _iterator()).done;) {
84
+ var row = _step.value;
85
+ var value = row == null ? void 0 : row.values[columnId];
86
+
87
+ if (Object.prototype.toString.call(value) === '[object Date]') {
88
+ return sortTypes.sortTypes.datetime;
89
+ }
90
+
91
+ if (typeof value === 'string') {
92
+ isString = true;
93
+
94
+ if (value.split(sortTypes.reSplitAlphaNumeric).length > 1) {
95
+ return sortTypes.sortTypes.alphanumeric;
96
+ }
97
+ }
67
98
  }
68
99
 
69
- if (Object.prototype.toString.call(value) === '[object Date]') {
70
- return sortTypes.sortTypes.datetime;
100
+ if (isString) {
101
+ return sortTypes.sortTypes.text;
71
102
  }
72
103
 
73
104
  return sortTypes.sortTypes.basic;
74
105
  },
106
+ getColumnAutoSortDir: function getColumnAutoSortDir(columnId) {
107
+ var firstRow = instance.getGlobalFilteredRowModel().flatRows[0];
108
+ var value = firstRow == null ? void 0 : firstRow.values[columnId];
109
+
110
+ if (typeof value === 'string') {
111
+ return 'asc';
112
+ }
113
+
114
+ return 'desc';
115
+ },
75
116
  getColumnSortingFn: function getColumnSortingFn(columnId) {
76
117
  var _ref;
77
118
 
@@ -82,7 +123,7 @@ function getInstance(instance) {
82
123
  throw new Error();
83
124
  }
84
125
 
85
- return utils.isFunction(column.sortType) ? column.sortType : column.sortType === 'auto' ? instance.getColumnAutoFilterFn(columnId) : (_ref = userSortTypes == null ? void 0 : userSortTypes[column.sortType]) != null ? _ref : sortTypes.sortTypes[column.sortType];
126
+ return utils.isFunction(column.sortType) ? column.sortType : column.sortType === 'auto' ? instance.getColumnAutoSortingFn(columnId) : (_ref = userSortTypes == null ? void 0 : userSortTypes[column.sortType]) != null ? _ref : sortTypes.sortTypes[column.sortType];
86
127
  },
87
128
  setSorting: function setSorting(updater) {
88
129
  return instance.options.onSortingChange == null ? void 0 : instance.options.onSortingChange(updater, utils.functionalUpdate(updater, instance.getState().sorting));
@@ -92,10 +133,18 @@ function getInstance(instance) {
92
133
 
93
134
  if (!column) {
94
135
  throw new Error();
95
- }
136
+ } // if (column.columns.length) {
137
+ // column.columns.forEach((c, i) => {
138
+ // if (c.id) {
139
+ // instance.toggleColumnSorting(c.id, undefined, multi || !!i)
140
+ // }
141
+ // })
142
+ // return
143
+ // }
144
+
96
145
 
97
146
  instance.setSorting(function (old) {
98
- var _column$sortDescFirst, _instance$options$ena, _instance$options$ena2;
147
+ var _ref2, _column$sortDescFirst, _instance$options$ena, _instance$options$ena2;
99
148
 
100
149
  // Find any existing sorting for this column
101
150
  var existingSorting = old == null ? void 0 : old.find(function (d) {
@@ -109,7 +158,7 @@ function getInstance(instance) {
109
158
 
110
159
  var sortAction;
111
160
 
112
- if (!column.getCanMultiSort() && multi) {
161
+ if (column.getCanMultiSort() && multi) {
113
162
  if (existingSorting) {
114
163
  sortAction = 'toggle';
115
164
  } else {
@@ -126,7 +175,7 @@ function getInstance(instance) {
126
175
  }
127
176
  }
128
177
 
129
- var sortDescFirst = (_column$sortDescFirst = column.sortDescFirst) != null ? _column$sortDescFirst : instance.options.sortDescFirst; // Handle toggle states that will remove the sorting
178
+ var sortDescFirst = (_ref2 = (_column$sortDescFirst = column.sortDescFirst) != null ? _column$sortDescFirst : instance.options.sortDescFirst) != null ? _ref2 : instance.getColumnAutoSortDir(columnId) === 'desc'; // Handle toggle states that will remove the sorting
130
179
 
131
180
  if (sortAction === 'toggle' && ( // Must be toggling
132
181
  (_instance$options$ena = instance.options.enableSortingRemoval) != null ? _instance$options$ena : true) && // If enableSortRemove, enable in general
@@ -172,7 +221,7 @@ function getInstance(instance) {
172
221
  });
173
222
  },
174
223
  getColumnCanSort: function getColumnCanSort(columnId) {
175
- var _ref2, _ref3, _column$enableSorting;
224
+ var _ref3, _ref4, _column$enableSorting;
176
225
 
177
226
  var column = instance.getColumn(columnId);
178
227
 
@@ -180,10 +229,13 @@ function getInstance(instance) {
180
229
  throw new Error();
181
230
  }
182
231
 
183
- return (_ref2 = (_ref3 = (_column$enableSorting = column.enableSorting) != null ? _column$enableSorting : instance.options.enableSorting) != null ? _ref3 : column.defaultCanSort) != null ? _ref2 : !!column.accessorFn;
232
+ return (_ref3 = (_ref4 = (_column$enableSorting = column.enableSorting) != null ? _column$enableSorting : instance.options.enableSorting) != null ? _ref4 : column.defaultCanSort) != null ? _ref3 : !!column.accessorFn // (!!column.accessorFn ||
233
+ // column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??
234
+ // false
235
+ ;
184
236
  },
185
237
  getColumnCanMultiSort: function getColumnCanMultiSort(columnId) {
186
- var _ref4, _column$enableMultiSo;
238
+ var _ref5, _column$enableMultiSo;
187
239
 
188
240
  var column = instance.getColumn(columnId);
189
241
 
@@ -191,7 +243,7 @@ function getInstance(instance) {
191
243
  throw new Error();
192
244
  }
193
245
 
194
- return (_ref4 = (_column$enableMultiSo = column.enableMultiSort) != null ? _column$enableMultiSo : instance.options.enableMultiSort) != null ? _ref4 : !!column.accessorFn;
246
+ return (_ref5 = (_column$enableMultiSo = column.enableMultiSort) != null ? _column$enableMultiSo : instance.options.enableMultiSort) != null ? _ref5 : !!column.accessorFn;
195
247
  },
196
248
  getColumnIsSorted: function getColumnIsSorted(columnId) {
197
249
  var _instance$getState$so;
@@ -238,8 +290,14 @@ function getInstance(instance) {
238
290
  }
239
291
 
240
292
  if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Sorting...');
241
- return sortingFn(instance, sorting, rowModel);
242
- }, 'getSortedRowModel', instance.options.debug),
293
+ return sortingFn(instance, rowModel);
294
+ }, {
295
+ key: 'getSortedRowModel',
296
+ debug: instance.options.debug,
297
+ onChange: function onChange() {
298
+ return instance._notifyGroupingReset();
299
+ }
300
+ }),
243
301
  getPreSortedRows: function getPreSortedRows() {
244
302
  return instance.getGlobalFilteredRowModel().rows;
245
303
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { MouseEvent, TouchEvent } from 'react'\nimport { RowModel } from '..'\nimport { BuiltInSortType, sortTypes } from '../sortTypes'\n\nimport {\n Column,\n Getter,\n OnChangeFn,\n PropGetterValue,\n ReactTable,\n Row,\n Updater,\n} from '../types'\n\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n propGetter,\n} from '../utils'\n\nexport type ColumnSort = {\n id: string\n desc: boolean\n}\n\nexport type SortingState = ColumnSort[]\n\nexport type SortingFn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> =\n {\n (\n rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n columnId: string\n ): number\n }\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortType<TSortingFns> =\n | 'auto'\n | BuiltInSortType\n | keyof TSortingFns\n | SortingFn<any, any, any, TSortingFns, any>\n\nexport type SortingColumnDef<TFilterFns> = {\n sortType?: SortType<TFilterFns>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n defaultCanSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<\n _TData,\n _TValue,\n TFilterFns,\n _TSortingFns,\n _TAggregationFns\n> = {\n sortType: SortType<TFilterFns>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | 'asc' | 'desc'\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n}\n\nexport type SortingOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n sortTypes?: TSortingFns\n onSortingChange?: OnChangeFn<SortingState>\n autoResetSorting?: boolean\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n sortRowsFn?: (\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n sortingState: SortingState,\n globalFilteredRowModel: RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: MouseEvent | TouchEvent) => boolean\n}\n\nexport type ToggleSortingProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type SortingInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n getColumnAutoSortingFn: (\n columnId: string\n ) => SortingFn<any, any, any, any, any> | undefined\n\n getColumnSortingFn: (\n columnId: string\n ) => SortingFn<any, any, any, any, any> | undefined\n\n setSorting: (updater: Updater<SortingState>) => void\n toggleColumnSorting: (\n columnId: string,\n desc?: boolean,\n multi?: boolean\n ) => void\n resetSorting: () => void\n getColumnCanSort: (columnId: string) => boolean\n getColumnCanMultiSort: (columnId: string) => boolean\n getColumnIsSorted: (columnId: string) => false | 'asc' | 'desc'\n getColumnSortIndex: (columnId: string) => number\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n getSortedRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getPreSortedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreSortedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreSortedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getSortedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getSortedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getSortedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n}\n\n//\n\nexport function getDefaultColumn<TFilterFns>(): SortingColumnDef<TFilterFns> {\n return {\n sortType: 'auto',\n }\n}\n\nexport function getInitialState(): SortingTableState {\n return {\n sorting: [],\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): SortingOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n autoResetSorting: true,\n }\n}\n\nexport function createColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): SortingColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n sortType: column.sortType,\n getCanSort: () => instance.getColumnCanSort(column.id),\n getCanMultiSort: () => instance.getColumnCanMultiSort(column.id),\n getSortIndex: () => instance.getColumnSortIndex(column.id),\n getIsSorted: () => instance.getColumnIsSorted(column.id),\n toggleSorting: (desc, isMulti) =>\n instance.toggleColumnSorting(column.id, desc, isMulti),\n getToggleSortingProps: userProps =>\n instance.getToggleSortingProps(column.id, userProps),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): SortingInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n getColumnAutoSortingFn: columnId => {\n const firstRow = instance.getGlobalFilteredRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return sortTypes.alphanumeric\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortTypes.datetime\n }\n\n return sortTypes.basic\n },\n getColumnSortingFn: columnId => {\n const column = instance.getColumn(columnId)\n const userSortTypes = instance.options.sortTypes\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.sortType)\n ? column.sortType\n : column.sortType === 'auto'\n ? instance.getColumnAutoFilterFn(columnId)\n : (userSortTypes as Record<string, any>)?.[column.sortType as string] ??\n (sortTypes[column.sortType as BuiltInSortType] as SortingFn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >)\n },\n\n setSorting: updater =>\n instance.options.onSortingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().sorting)\n ),\n\n toggleColumnSorting: (columnId, desc, multi) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n instance.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === columnId)\n const existingIndex = old?.findIndex(d => d.id === columnId)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (!column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n const sortDescFirst =\n column.sortDescFirst ?? instance.options.sortDescFirst\n\n // Handle toggle states that will remove the sorting\n if (\n sortAction === 'toggle' && // Must be toggling\n (instance.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? instance.options.enableMultiRemove ?? true : true) && // If multi, don't allow if enableMultiRemove\n (existingSorting?.desc // Finally, detect if it should indeed be removed\n ? !sortDescFirst\n : sortDescFirst)\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSorting = [\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (instance.options.maxMultiSortColCount ?? Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle' && old?.length) {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === columnId) {\n return {\n ...d,\n desc: hasDescDefined ? desc! : !existingSorting?.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove' && old?.length) {\n newSorting = old.filter(d => d.id !== columnId)\n }\n\n return newSorting\n })\n },\n\n getColumnCanSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableSorting ??\n instance.options.enableSorting ??\n column.defaultCanSort ??\n !!column.accessorFn\n )\n },\n\n getColumnCanMultiSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getColumnIsSorted: columnId => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === columnId)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getColumnSortIndex: columnId =>\n instance.getState().sorting?.findIndex(d => d.id === columnId) ?? -1,\n\n resetSorting: () => {\n instance.setSorting(instance.options?.initialState?.sorting ?? [])\n },\n\n getToggleSortingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const canSort = column.getCanSort()\n\n const initialProps: ToggleSortingProps = {\n title: canSort ? 'Toggle Sorting' : undefined,\n onClick: canSort\n ? (e: MouseEvent | TouchEvent) => {\n e.persist()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? instance.options.isMultiSortEvent?.(e)\n : false\n )\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getSortedRowModel: memo(\n () => [\n instance.getState().sorting,\n instance.getGlobalFilteredRowModel(),\n instance.options.sortRowsFn,\n ],\n (sorting, rowModel, sortingFn) => {\n if (!sortingFn || !sorting?.length) {\n return rowModel\n }\n\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Sorting...')\n\n return sortingFn(instance, sorting, rowModel)\n },\n 'getSortedRowModel',\n instance.options.debug\n ),\n\n getPreSortedRows: () => instance.getGlobalFilteredRowModel().rows,\n getPreSortedFlatRows: () => instance.getGlobalFilteredRowModel().flatRows,\n getPreSortedRowsById: () => instance.getGlobalFilteredRowModel().rowsById,\n getSortedRows: () => instance.getSortedRowModel().rows,\n getSortedFlatRows: () => instance.getSortedRowModel().flatRows,\n getSortedRowsById: () => instance.getSortedRowModel().rowsById,\n }\n}\n"],"names":["getDefaultColumn","sortType","getInitialState","sorting","getDefaultOptions","instance","onSortingChange","makeStateUpdater","autoResetSorting","createColumn","column","getCanSort","getColumnCanSort","id","getCanMultiSort","getColumnCanMultiSort","getSortIndex","getColumnSortIndex","getIsSorted","getColumnIsSorted","toggleSorting","desc","isMulti","toggleColumnSorting","getToggleSortingProps","userProps","getInstance","getColumnAutoSortingFn","columnId","firstRow","getGlobalFilteredRowModel","flatRows","value","values","sortTypes","alphanumeric","Object","prototype","toString","call","datetime","basic","getColumnSortingFn","getColumn","userSortTypes","options","Error","isFunction","getColumnAutoFilterFn","setSorting","updater","functionalUpdate","getState","multi","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","length","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","filter","enableSorting","defaultCanSort","accessorFn","enableMultiSort","columnSort","resetSorting","initialState","canSort","initialProps","title","undefined","onClick","e","persist","isMultiSortEvent","propGetter","getSortedRowModel","memo","sortRowsFn","rowModel","sortingFn","process","env","NODE_ENV","debug","console","info","getPreSortedRows","rows","getPreSortedFlatRows","getPreSortedRowsById","rowsById","getSortedRows","getSortedFlatRows","getSortedRowsById"],"mappings":"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"}
1
+ {"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { MouseEvent, TouchEvent } from 'react'\nimport { RowModel } from '..'\nimport { BuiltInSortType, reSplitAlphaNumeric, sortTypes } from '../sortTypes'\n\nimport {\n Column,\n Getter,\n Header,\n OnChangeFn,\n PropGetterValue,\n ReactTable,\n Row,\n Updater,\n} from '../types'\n\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n propGetter,\n} from '../utils'\n\nexport type SortDirection = 'asc' | 'desc'\n\nexport type ColumnSort = {\n id: string\n desc: boolean\n}\n\nexport type SortingState = ColumnSort[]\n\nexport type SortingFn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> =\n {\n (\n rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n columnId: string\n ): number\n }\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortType<TSortingFns> =\n | 'auto'\n | BuiltInSortType\n | keyof TSortingFns\n | SortingFn<any, any, any, TSortingFns, any>\n\nexport type SortingColumnDef<TFilterFns> = {\n sortType?: SortType<TFilterFns>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n defaultCanSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<\n _TData,\n _TValue,\n TFilterFns,\n _TSortingFns,\n _TAggregationFns\n> = {\n sortType: SortType<TFilterFns>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n}\n\nexport type SortingOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n sortTypes?: TSortingFns\n onSortingChange?: OnChangeFn<SortingState>\n autoResetSorting?: boolean\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n sortRowsFn?: (\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n rowModel: RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: MouseEvent | TouchEvent) => boolean\n}\n\nexport type ToggleSortingProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type SortingInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n _notifySortingReset: () => void\n getColumnAutoSortingFn: (\n columnId: string\n ) => SortingFn<any, any, any, any, any> | undefined\n getColumnAutoSortDir: (columnId: string) => SortDirection\n\n getColumnSortingFn: (\n columnId: string\n ) => SortingFn<any, any, any, any, any> | undefined\n\n setSorting: (updater: Updater<SortingState>) => void\n toggleColumnSorting: (\n columnId: string,\n desc?: boolean,\n multi?: boolean\n ) => void\n resetSorting: () => void\n getColumnCanSort: (columnId: string) => boolean\n getColumnCanMultiSort: (columnId: string) => boolean\n getColumnIsSorted: (columnId: string) => false | 'asc' | 'desc'\n getColumnSortIndex: (columnId: string) => number\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n getSortedRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getPreSortedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreSortedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreSortedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getSortedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getSortedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getSortedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n}\n\n//\n\nexport function getDefaultColumn<TFilterFns>(): SortingColumnDef<TFilterFns> {\n return {\n sortType: 'auto',\n }\n}\n\nexport function getInitialState(): SortingTableState {\n return {\n sorting: [],\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): SortingOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n autoResetSorting: true,\n isMultiSortEvent: (e: MouseEvent | TouchEvent) => {\n return e.shiftKey\n },\n }\n}\n\nexport function createColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): SortingColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n sortType: column.sortType,\n getCanSort: () => instance.getColumnCanSort(column.id),\n getCanMultiSort: () => instance.getColumnCanMultiSort(column.id),\n getSortIndex: () => instance.getColumnSortIndex(column.id),\n getIsSorted: () => instance.getColumnIsSorted(column.id),\n toggleSorting: (desc, isMulti) =>\n instance.toggleColumnSorting(column.id, desc, isMulti),\n getToggleSortingProps: userProps =>\n instance.getToggleSortingProps(column.id, userProps),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): SortingInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n let registered = false\n\n return {\n _notifySortingReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetSorting\n ) {\n instance.resetSorting()\n }\n },\n getColumnAutoSortingFn: columnId => {\n const firstRows = instance.getGlobalFilteredRowModel().flatRows.slice(100)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.values[columnId]\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortTypes.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortTypes.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortTypes.text\n }\n\n return sortTypes.basic\n },\n getColumnAutoSortDir: columnId => {\n const firstRow = instance.getGlobalFilteredRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getColumnSortingFn: columnId => {\n const column = instance.getColumn(columnId)\n const userSortTypes = instance.options.sortTypes\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.sortType)\n ? column.sortType\n : column.sortType === 'auto'\n ? instance.getColumnAutoSortingFn(columnId)\n : (userSortTypes as Record<string, any>)?.[column.sortType as string] ??\n (sortTypes[column.sortType as BuiltInSortType] as SortingFn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >)\n },\n\n setSorting: updater =>\n instance.options.onSortingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().sorting)\n ),\n\n toggleColumnSorting: (columnId, desc, multi) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // instance.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n instance.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === columnId)\n const existingIndex = old?.findIndex(d => d.id === columnId)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n const sortDescFirst =\n column.sortDescFirst ??\n instance.options.sortDescFirst ??\n instance.getColumnAutoSortDir(columnId) === 'desc'\n\n // Handle toggle states that will remove the sorting\n if (\n sortAction === 'toggle' && // Must be toggling\n (instance.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? instance.options.enableMultiRemove ?? true : true) && // If multi, don't allow if enableMultiRemove\n (existingSorting?.desc // Finally, detect if it should indeed be removed\n ? !sortDescFirst\n : sortDescFirst)\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSorting = [\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (instance.options.maxMultiSortColCount ?? Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle' && old?.length) {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === columnId) {\n return {\n ...d,\n desc: hasDescDefined ? desc! : !existingSorting?.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove' && old?.length) {\n newSorting = old.filter(d => d.id !== columnId)\n }\n\n return newSorting\n })\n },\n\n getColumnCanSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableSorting ??\n instance.options.enableSorting ??\n column.defaultCanSort ??\n !!column.accessorFn\n // (!!column.accessorFn ||\n // column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??\n // false\n )\n },\n\n getColumnCanMultiSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getColumnIsSorted: columnId => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === columnId)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getColumnSortIndex: columnId =>\n instance.getState().sorting?.findIndex(d => d.id === columnId) ?? -1,\n\n resetSorting: () => {\n instance.setSorting(instance.options?.initialState?.sorting ?? [])\n },\n\n getToggleSortingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const canSort = column.getCanSort()\n\n const initialProps: ToggleSortingProps = {\n title: canSort ? 'Toggle Sorting' : undefined,\n onClick: canSort\n ? (e: MouseEvent | TouchEvent) => {\n e.persist()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? instance.options.isMultiSortEvent?.(e)\n : false\n )\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getSortedRowModel: memo(\n () => [\n instance.getState().sorting,\n instance.getGlobalFilteredRowModel(),\n instance.options.sortRowsFn,\n ],\n (sorting, rowModel, sortingFn) => {\n if (!sortingFn || !sorting?.length) {\n return rowModel\n }\n\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Sorting...')\n\n return sortingFn(instance, rowModel)\n },\n {\n key: 'getSortedRowModel',\n debug: instance.options.debug,\n onChange: () => instance._notifyGroupingReset(),\n }\n ),\n\n getPreSortedRows: () => instance.getGlobalFilteredRowModel().rows,\n getPreSortedFlatRows: () => instance.getGlobalFilteredRowModel().flatRows,\n getPreSortedRowsById: () => instance.getGlobalFilteredRowModel().rowsById,\n getSortedRows: () => instance.getSortedRowModel().rows,\n getSortedFlatRows: () => instance.getSortedRowModel().flatRows,\n getSortedRowsById: () => instance.getSortedRowModel().rowsById,\n }\n}\n"],"names":["getDefaultColumn","sortType","getInitialState","sorting","getDefaultOptions","instance","onSortingChange","makeStateUpdater","autoResetSorting","isMultiSortEvent","e","shiftKey","createColumn","column","getCanSort","getColumnCanSort","id","getCanMultiSort","getColumnCanMultiSort","getSortIndex","getColumnSortIndex","getIsSorted","getColumnIsSorted","toggleSorting","desc","isMulti","toggleColumnSorting","getToggleSortingProps","userProps","getInstance","registered","_notifySortingReset","options","autoResetAll","resetSorting","getColumnAutoSortingFn","columnId","firstRows","getGlobalFilteredRowModel","flatRows","slice","isString","row","value","values","Object","prototype","toString","call","sortTypes","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getColumnAutoSortDir","firstRow","getColumnSortingFn","getColumn","userSortTypes","Error","isFunction","setSorting","updater","functionalUpdate","getState","multi","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","filter","enableSorting","defaultCanSort","accessorFn","enableMultiSort","columnSort","initialState","canSort","initialProps","title","undefined","onClick","persist","propGetter","getSortedRowModel","memo","sortRowsFn","rowModel","sortingFn","process","env","NODE_ENV","debug","console","info","key","onChange","_notifyGroupingReset","getPreSortedRows","rows","getPreSortedFlatRows","getPreSortedRowsById","rowsById","getSortedRows","getSortedFlatRows","getSortedRowsById"],"mappings":"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"}
@@ -67,7 +67,10 @@ function getInstance(instance) {
67
67
  return allFlatColumns.filter(function (d) {
68
68
  return d.getIsVisible == null ? void 0 : d.getIsVisible();
69
69
  });
70
- }, 'getVisibleFlatColumns', instance.options.debug),
70
+ }, {
71
+ key: 'getVisibleFlatColumns',
72
+ debug: instance.options.debug
73
+ }),
71
74
  getVisibleLeafColumns: utils.memo(function () {
72
75
  return [instance.getAllLeafColumns(), instance.getAllLeafColumns().filter(function (d) {
73
76
  return d.getIsVisible == null ? void 0 : d.getIsVisible();
@@ -78,7 +81,10 @@ function getInstance(instance) {
78
81
  return allFlatColumns.filter(function (d) {
79
82
  return d.getIsVisible == null ? void 0 : d.getIsVisible();
80
83
  });
81
- }, 'getVisibleLeafColumns', instance.options.debug),
84
+ }, {
85
+ key: 'getVisibleLeafColumns',
86
+ debug: instance.options.debug
87
+ }),
82
88
  setColumnVisibility: function setColumnVisibility(updater) {
83
89
  return instance.options.onColumnVisibilityChange == null ? void 0 : instance.options.onColumnVisibilityChange(updater, utils.functionalUpdate(updater, instance.getState().columnVisibility));
84
90
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import {\n Cell,\n Column,\n Getter,\n OnChangeFn,\n PropGetterValue,\n ReactTable,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type VisibilityOptions = {\n onColumnVisibilityChange?: OnChangeFn<VisibilityState>\n enableHiding?: boolean\n}\n\nexport type VisibilityDefaultOptions = {\n onColumnVisibilityChange: OnChangeFn<VisibilityState>\n}\n\nexport type VisibilityState = Record<string, boolean>\n\nexport type VisibilityTableState = {\n columnVisibility: VisibilityState\n}\n\nexport type VisibilityInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n getVisibleFlatColumns: () => Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getVisibleLeafColumns: () => Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n toggleColumnVisibility: (columnId: string, value?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getColumnIsVisible: (columId: string) => boolean\n getColumnCanHide: (columnId: string) => boolean\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityProps: <\n TGetter extends Getter<ToggleAllColumnsVisibilityProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleAllColumnsVisibilityProps, TGetter>\n}\n\ntype ToggleVisibilityProps = {}\ntype ToggleAllColumnsVisibilityProps = {}\n\nexport type VisibilityColumnDef = {\n enableHiding?: boolean\n defaultCanHide?: boolean\n}\n\nexport type VisibilityRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n getVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n}\n\nexport type VisibilityColumn = {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityProps: <TGetter extends Getter<ToggleVisibilityProps>>(\n userProps?: TGetter\n ) => PropGetterValue<ToggleVisibilityProps, TGetter>\n}\n\n//\n\nexport function getInitialState(): VisibilityTableState {\n return {\n columnVisibility: {},\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): VisibilityDefaultOptions {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance),\n }\n}\n\nexport function getDefaultColumn() {\n return {\n defaultIsVisible: true,\n }\n}\n\nexport function createColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): VisibilityColumn {\n return {\n getCanHide: () => instance.getColumnCanHide(column.id),\n getIsVisible: () => instance.getColumnIsVisible(column.id),\n toggleVisibility: value =>\n instance.toggleColumnVisibility(column.id, value),\n getToggleVisibilityProps: userProps => {\n const props: ToggleVisibilityProps = {\n type: 'checkbox',\n checked: column.getIsVisible?.(),\n title: 'Toggle Column Visibility',\n onChange: (e: MouseEvent | TouchEvent) => {\n column.toggleVisibility?.((e.target as HTMLInputElement).checked)\n },\n }\n\n return propGetter(props, userProps)\n },\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): VisibilityInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n getVisibleFlatColumns: memo(\n () => [\n instance.getAllFlatColumns(),\n instance\n .getAllFlatColumns()\n .filter(d => d.getIsVisible?.())\n .map(d => d.id)\n .join('_'),\n ],\n allFlatColumns => {\n return allFlatColumns.filter(d => d.getIsVisible?.())\n },\n 'getVisibleFlatColumns',\n instance.options.debug\n ),\n\n getVisibleLeafColumns: memo(\n () => [\n instance.getAllLeafColumns(),\n instance\n .getAllLeafColumns()\n .filter(d => d.getIsVisible?.())\n .map(d => d.id)\n .join('_'),\n ],\n allFlatColumns => {\n return allFlatColumns.filter(d => d.getIsVisible?.())\n },\n 'getVisibleLeafColumns',\n instance.options.debug\n ),\n\n setColumnVisibility: updater =>\n instance.options.onColumnVisibilityChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnVisibility)\n ),\n\n toggleColumnVisibility: (columnId, value) => {\n if (!columnId) return\n\n if (instance.getColumnCanHide(columnId)) {\n instance.setColumnVisibility(old => ({\n ...old,\n [columnId]: value ?? !instance.getColumnIsVisible(columnId),\n }))\n }\n },\n\n toggleAllColumnsVisible: value => {\n value = value ?? !instance.getIsAllColumnsVisible()\n\n instance.setColumnVisibility(\n instance.getAllLeafColumns().reduce(\n (obj, column) => ({\n ...obj,\n [column.id]: !value ? !column.getCanHide?.() : value,\n }),\n {}\n )\n )\n },\n\n getColumnIsVisible: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.getState().columnVisibility?.[columnId] ??\n column.defaultIsVisible ??\n true\n )\n },\n\n getColumnCanHide: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.options.enableHiding ??\n column.enableHiding ??\n column.defaultCanHide ??\n true\n )\n },\n\n getIsAllColumnsVisible: () =>\n !instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n instance.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityProps: userProps => {\n const props: ToggleAllColumnsVisibilityProps = {\n onChange: (e: MouseEvent) => {\n instance.toggleAllColumnsVisible(\n (e.target as HTMLInputElement)?.checked\n )\n },\n type: 'checkbox',\n title: 'Toggle visibility for all columns',\n checked: instance.getIsAllColumnsVisible(),\n indeterminate:\n !instance.getIsAllColumnsVisible() &&\n instance.getIsSomeColumnsVisible()\n ? 'indeterminate'\n : undefined,\n }\n\n return propGetter(props, userProps)\n },\n }\n}\n"],"names":["getInitialState","columnVisibility","getDefaultOptions","instance","onColumnVisibilityChange","makeStateUpdater","getDefaultColumn","defaultIsVisible","createColumn","column","getCanHide","getColumnCanHide","id","getIsVisible","getColumnIsVisible","toggleVisibility","value","toggleColumnVisibility","getToggleVisibilityProps","userProps","props","type","checked","title","onChange","e","target","propGetter","getInstance","getVisibleFlatColumns","memo","getAllFlatColumns","filter","d","map","join","allFlatColumns","options","debug","getVisibleLeafColumns","getAllLeafColumns","setColumnVisibility","updater","functionalUpdate","getState","columnId","old","toggleAllColumnsVisible","getIsAllColumnsVisible","reduce","obj","getColumn","Error","enableHiding","defaultCanHide","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityProps","indeterminate","undefined"],"mappings":"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"}
1
+ {"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import {\n Cell,\n Column,\n Getter,\n OnChangeFn,\n PropGetterValue,\n ReactTable,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type VisibilityOptions = {\n onColumnVisibilityChange?: OnChangeFn<VisibilityState>\n enableHiding?: boolean\n}\n\nexport type VisibilityDefaultOptions = {\n onColumnVisibilityChange: OnChangeFn<VisibilityState>\n}\n\nexport type VisibilityState = Record<string, boolean>\n\nexport type VisibilityTableState = {\n columnVisibility: VisibilityState\n}\n\nexport type VisibilityInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n getVisibleFlatColumns: () => Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getVisibleLeafColumns: () => Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n toggleColumnVisibility: (columnId: string, value?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getColumnIsVisible: (columId: string) => boolean\n getColumnCanHide: (columnId: string) => boolean\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityProps: <\n TGetter extends Getter<ToggleAllColumnsVisibilityProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleAllColumnsVisibilityProps, TGetter>\n}\n\ntype ToggleVisibilityProps = {}\ntype ToggleAllColumnsVisibilityProps = {}\n\nexport type VisibilityColumnDef = {\n enableHiding?: boolean\n defaultCanHide?: boolean\n}\n\nexport type VisibilityRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n getVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n}\n\nexport type VisibilityColumn = {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityProps: <TGetter extends Getter<ToggleVisibilityProps>>(\n userProps?: TGetter\n ) => PropGetterValue<ToggleVisibilityProps, TGetter>\n}\n\n//\n\nexport function getInitialState(): VisibilityTableState {\n return {\n columnVisibility: {},\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): VisibilityDefaultOptions {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance),\n }\n}\n\nexport function getDefaultColumn() {\n return {\n defaultIsVisible: true,\n }\n}\n\nexport function createColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): VisibilityColumn {\n return {\n getCanHide: () => instance.getColumnCanHide(column.id),\n getIsVisible: () => instance.getColumnIsVisible(column.id),\n toggleVisibility: value =>\n instance.toggleColumnVisibility(column.id, value),\n getToggleVisibilityProps: userProps => {\n const props: ToggleVisibilityProps = {\n type: 'checkbox',\n checked: column.getIsVisible?.(),\n title: 'Toggle Column Visibility',\n onChange: (e: MouseEvent | TouchEvent) => {\n column.toggleVisibility?.((e.target as HTMLInputElement).checked)\n },\n }\n\n return propGetter(props, userProps)\n },\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): VisibilityInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n getVisibleFlatColumns: memo(\n () => [\n instance.getAllFlatColumns(),\n instance\n .getAllFlatColumns()\n .filter(d => d.getIsVisible?.())\n .map(d => d.id)\n .join('_'),\n ],\n allFlatColumns => {\n return allFlatColumns.filter(d => d.getIsVisible?.())\n },\n { key: 'getVisibleFlatColumns', debug: instance.options.debug }\n ),\n\n getVisibleLeafColumns: memo(\n () => [\n instance.getAllLeafColumns(),\n instance\n .getAllLeafColumns()\n .filter(d => d.getIsVisible?.())\n .map(d => d.id)\n .join('_'),\n ],\n allFlatColumns => {\n return allFlatColumns.filter(d => d.getIsVisible?.())\n },\n { key: 'getVisibleLeafColumns', debug: instance.options.debug }\n ),\n\n setColumnVisibility: updater =>\n instance.options.onColumnVisibilityChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnVisibility)\n ),\n\n toggleColumnVisibility: (columnId, value) => {\n if (!columnId) return\n\n if (instance.getColumnCanHide(columnId)) {\n instance.setColumnVisibility(old => ({\n ...old,\n [columnId]: value ?? !instance.getColumnIsVisible(columnId),\n }))\n }\n },\n\n toggleAllColumnsVisible: value => {\n value = value ?? !instance.getIsAllColumnsVisible()\n\n instance.setColumnVisibility(\n instance.getAllLeafColumns().reduce(\n (obj, column) => ({\n ...obj,\n [column.id]: !value ? !column.getCanHide?.() : value,\n }),\n {}\n )\n )\n },\n\n getColumnIsVisible: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.getState().columnVisibility?.[columnId] ??\n column.defaultIsVisible ??\n true\n )\n },\n\n getColumnCanHide: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.options.enableHiding ??\n column.enableHiding ??\n column.defaultCanHide ??\n true\n )\n },\n\n getIsAllColumnsVisible: () =>\n !instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n instance.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityProps: userProps => {\n const props: ToggleAllColumnsVisibilityProps = {\n onChange: (e: MouseEvent) => {\n instance.toggleAllColumnsVisible(\n (e.target as HTMLInputElement)?.checked\n )\n },\n type: 'checkbox',\n title: 'Toggle visibility for all columns',\n checked: instance.getIsAllColumnsVisible(),\n indeterminate:\n !instance.getIsAllColumnsVisible() &&\n instance.getIsSomeColumnsVisible()\n ? 'indeterminate'\n : undefined,\n }\n\n return propGetter(props, userProps)\n },\n }\n}\n"],"names":["getInitialState","columnVisibility","getDefaultOptions","instance","onColumnVisibilityChange","makeStateUpdater","getDefaultColumn","defaultIsVisible","createColumn","column","getCanHide","getColumnCanHide","id","getIsVisible","getColumnIsVisible","toggleVisibility","value","toggleColumnVisibility","getToggleVisibilityProps","userProps","props","type","checked","title","onChange","e","target","propGetter","getInstance","getVisibleFlatColumns","memo","getAllFlatColumns","filter","d","map","join","allFlatColumns","key","debug","options","getVisibleLeafColumns","getAllLeafColumns","setColumnVisibility","updater","functionalUpdate","getState","columnId","old","toggleAllColumnsVisible","getIsAllColumnsVisible","reduce","obj","getColumn","Error","enableHiding","defaultCanHide","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityProps","indeterminate","undefined"],"mappings":"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"}
@@ -117,5 +117,6 @@ function toString(a) {
117
117
  return '';
118
118
  }
119
119
 
120
+ exports.reSplitAlphaNumeric = reSplitAlphaNumeric;
120
121
  exports.sortTypes = sortTypes;
121
122
  //# sourceMappingURL=sortTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sortTypes.js","sources":["../../src/sortTypes.ts"],"sourcesContent":["import { Row } from './types'\n\nconst reSplitAlphaNumeric = /([0-9]+)/gm\n\nexport const sortTypes = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic,\n}\n\nexport type BuiltInSortType = keyof typeof sortTypes\n\nfunction alphanumeric<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(\n rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n columnId: string\n) {\n return compareAlphanumeric(\n toString(rowA.values[columnId]).toLowerCase(),\n toString(rowB.values[columnId]).toLowerCase()\n )\n}\n\nfunction alphanumericCaseSensitive<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n columnId: string\n) {\n return compareAlphanumeric(\n toString(rowA.values[columnId]),\n toString(rowB.values[columnId])\n )\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr: string, bStr: string) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean)\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean)\n\n // While\n while (a.length && b.length) {\n const aa = a.shift()!\n const bb = b.shift()!\n\n const an = parseInt(aa, 10)\n const bn = parseInt(bb, 10)\n\n const combo = [an, bn].sort()\n\n // Both are string\n if (isNaN(combo[0]!)) {\n if (aa > bb) {\n return 1\n }\n if (bb > aa) {\n return -1\n }\n continue\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1]!)) {\n return isNaN(an) ? -1 : 1\n }\n\n // Both are numbers\n if (an > bn) {\n return 1\n }\n if (bn > an) {\n return -1\n }\n }\n\n return a.length - b.length\n}\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nfunction text<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(\n rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n columnId: string\n) {\n return compareBasic(\n toString(rowA.values[columnId]).toLowerCase(),\n toString(rowB.values[columnId]).toLowerCase()\n )\n}\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nfunction textCaseSensitive<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n columnId: string\n) {\n return compareBasic(\n toString(rowA.values[columnId]),\n toString(rowB.values[columnId])\n )\n}\n\nfunction datetime<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(\n rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n columnId: string\n) {\n return compareBasic(\n (rowA.values[columnId] as Date).getTime(),\n (rowB.values[columnId] as Date).getTime()\n )\n}\n\nfunction basic<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(\n rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n columnId: string\n) {\n return compareBasic(rowA.values[columnId], rowB.values[columnId])\n}\n\n// Utils\n\nfunction compareBasic(a: any, b: any) {\n return a === b ? 0 : a > b ? 1 : -1\n}\n\nfunction toString(a: any) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return ''\n }\n return String(a)\n }\n if (typeof a === 'string') {\n return a\n }\n return ''\n}\n"],"names":["reSplitAlphaNumeric","sortTypes","alphanumeric","alphanumericCaseSensitive","text","textCaseSensitive","datetime","basic","rowA","rowB","columnId","compareAlphanumeric","toString","values","toLowerCase","aStr","bStr","a","split","filter","Boolean","b","length","aa","shift","bb","an","parseInt","bn","combo","sort","isNaN","compareBasic","getTime","Infinity","String"],"mappings":"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"}
1
+ {"version":3,"file":"sortTypes.js","sources":["../../src/sortTypes.ts"],"sourcesContent":["import { Row } from './types'\n\nexport const reSplitAlphaNumeric = /([0-9]+)/gm\n\nexport const sortTypes = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic,\n}\n\nexport type BuiltInSortType = keyof typeof sortTypes\n\nfunction alphanumeric<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(\n rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n columnId: string\n) {\n return compareAlphanumeric(\n toString(rowA.values[columnId]).toLowerCase(),\n toString(rowB.values[columnId]).toLowerCase()\n )\n}\n\nfunction alphanumericCaseSensitive<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n columnId: string\n) {\n return compareAlphanumeric(\n toString(rowA.values[columnId]),\n toString(rowB.values[columnId])\n )\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr: string, bStr: string) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean)\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean)\n\n // While\n while (a.length && b.length) {\n const aa = a.shift()!\n const bb = b.shift()!\n\n const an = parseInt(aa, 10)\n const bn = parseInt(bb, 10)\n\n const combo = [an, bn].sort()\n\n // Both are string\n if (isNaN(combo[0]!)) {\n if (aa > bb) {\n return 1\n }\n if (bb > aa) {\n return -1\n }\n continue\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1]!)) {\n return isNaN(an) ? -1 : 1\n }\n\n // Both are numbers\n if (an > bn) {\n return 1\n }\n if (bn > an) {\n return -1\n }\n }\n\n return a.length - b.length\n}\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nfunction text<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(\n rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n columnId: string\n) {\n return compareBasic(\n toString(rowA.values[columnId]).toLowerCase(),\n toString(rowB.values[columnId]).toLowerCase()\n )\n}\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nfunction textCaseSensitive<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n columnId: string\n) {\n return compareBasic(\n toString(rowA.values[columnId]),\n toString(rowB.values[columnId])\n )\n}\n\nfunction datetime<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(\n rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n columnId: string\n) {\n return compareBasic(\n (rowA.values[columnId] as Date).getTime(),\n (rowB.values[columnId] as Date).getTime()\n )\n}\n\nfunction basic<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(\n rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n columnId: string\n) {\n return compareBasic(rowA.values[columnId], rowB.values[columnId])\n}\n\n// Utils\n\nfunction compareBasic(a: any, b: any) {\n return a === b ? 0 : a > b ? 1 : -1\n}\n\nfunction toString(a: any) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return ''\n }\n return String(a)\n }\n if (typeof a === 'string') {\n return a\n }\n return ''\n}\n"],"names":["reSplitAlphaNumeric","sortTypes","alphanumeric","alphanumericCaseSensitive","text","textCaseSensitive","datetime","basic","rowA","rowB","columnId","compareAlphanumeric","toString","values","toLowerCase","aStr","bStr","a","split","filter","Boolean","b","length","aa","shift","bb","an","parseInt","bn","combo","sort","isNaN","compareBasic","getTime","Infinity","String"],"mappings":"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"}
@@ -12,7 +12,8 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var columnFilterRowsFn = function columnFilterRowsFn(instance, columnFilters, rowModel) {
15
+ function columnFilterRowsFn(instance, rowModel) {
16
+ var columnFilters = instance.getState().columnFilters;
16
17
  var newFilteredFlatRows = [];
17
18
  var newFilteredRowsById = {};
18
19
  var filterFromChildrenUp = instance.options.filterFromChildrenUp;
@@ -124,7 +125,7 @@ var columnFilterRowsFn = function columnFilterRowsFn(instance, columnFilters, ro
124
125
  flatRows: newFilteredFlatRows,
125
126
  rowsById: newFilteredRowsById
126
127
  };
127
- };
128
+ }
128
129
 
129
130
  exports.columnFilterRowsFn = columnFilterRowsFn;
130
131
  //# sourceMappingURL=columnFilterRowsFn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"columnFilterRowsFn.js","sources":["../../../src/utils/columnFilterRowsFn.ts"],"sourcesContent":["import { ReactTable, Row, RowModel } from '../types'\nimport { ColumnFiltersState } from '../features/Filters'\nimport { Options } from '..'\n\nexport const columnFilterRowsFn: Options<\n any,\n any,\n {},\n {},\n {}\n>['columnFilterRowsFn'] = <\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n columnFilters: ColumnFiltersState,\n rowModel: RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> => {\n const newFilteredFlatRows: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n const newFilteredRowsById: Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n > = {}\n\n const filterFromChildrenUp = instance.options.filterFromChildrenUp\n\n const filterRows = (\n rowsToFilter: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n depth: number\n ) => {\n columnFilters.forEach(({ id: columnId, value: filterValue }) => {\n // Find the columnFilters column\n const column = instance.getColumn(columnId)\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `React-Table: Could not find a column with id: ${columnId}`\n )\n }\n throw new Error()\n }\n\n if (depth === 0) {\n const preFilteredRows = [...rowsToFilter]\n column.getPreFilteredRows = () => preFilteredRows\n }\n\n const filterFn = instance.getColumnFilterFn(column.id)\n\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Could not find a valid 'column.filterType' for column with the ID: ${column.id}.`\n )\n }\n return\n }\n\n // Pass the rows, id, filterValue and column to the filterFn\n // to get the filtered rows back\n rowsToFilter = filterFn(rowsToFilter, [columnId], filterValue)\n })\n\n return rowsToFilter\n }\n\n if (filterFromChildrenUp) {\n const recurseFilterRows = (\n rowsToFilter: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n depth = 0\n ) => {\n // Filter from children up\n rowsToFilter = rowsToFilter.filter(row => {\n if (!row.subRows?.length) {\n return true\n }\n\n row.subRows = recurseFilterRows(row.subRows, depth + 1)\n\n return row.subRows.length\n })\n\n rowsToFilter = filterRows(rowsToFilter, depth)\n\n // Apply the filter to any subRows\n rowsToFilter.forEach(row => {\n newFilteredFlatRows.push(row)\n newFilteredRowsById[row.id] = row\n })\n\n return rowsToFilter\n }\n\n return {\n rows: recurseFilterRows(rowModel.rows),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n }\n\n // Filters top level and nested rows\n const recurseFilterRows = (\n rowsToFilter: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n depth = 0\n ) => {\n // Filter from parents downward\n rowsToFilter = filterRows(rowsToFilter, depth)\n\n // Apply the filter to any subRows\n // We technically could do this recursively in the above loop,\n // but that would severely hinder the API for the user, since they\n // would be required to do that recursion in some scenarios\n rowsToFilter.forEach(row => {\n newFilteredFlatRows.push(row)\n newFilteredRowsById[row.id] = row\n\n if (!filterFromChildrenUp) {\n if (!row.subRows?.length) {\n return\n }\n\n row.subRows = recurseFilterRows(row.subRows, depth + 1)\n }\n })\n\n return rowsToFilter\n }\n\n return {\n rows: recurseFilterRows(rowModel.rows),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n}\n"],"names":["columnFilterRowsFn","instance","columnFilters","rowModel","newFilteredFlatRows","newFilteredRowsById","filterFromChildrenUp","options","filterRows","rowsToFilter","depth","forEach","columnId","id","filterValue","value","column","getColumn","process","env","NODE_ENV","console","warn","Error","preFilteredRows","getPreFilteredRows","filterFn","getColumnFilterFn","recurseFilterRows","filter","row","subRows","length","push","rows","flatRows","rowsById"],"mappings":"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"}
1
+ {"version":3,"file":"columnFilterRowsFn.js","sources":["../../../src/utils/columnFilterRowsFn.ts"],"sourcesContent":["import { ReactTable, Row, RowModel } from '../types'\n\nexport function columnFilterRowsFn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowModel: RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n const columnFilters = instance.getState().columnFilters\n\n const newFilteredFlatRows: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n const newFilteredRowsById: Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n > = {}\n\n const filterFromChildrenUp = instance.options.filterFromChildrenUp\n\n const filterRows = (\n rowsToFilter: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n depth: number\n ) => {\n columnFilters.forEach(({ id: columnId, value: filterValue }) => {\n // Find the columnFilters column\n const column = instance.getColumn(columnId)\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `React-Table: Could not find a column with id: ${columnId}`\n )\n }\n throw new Error()\n }\n\n if (depth === 0) {\n const preFilteredRows = [...rowsToFilter]\n column.getPreFilteredRows = () => preFilteredRows\n }\n\n const filterFn = instance.getColumnFilterFn(column.id)\n\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Could not find a valid 'column.filterType' for column with the ID: ${column.id}.`\n )\n }\n return\n }\n\n // Pass the rows, id, filterValue and column to the filterFn\n // to get the filtered rows back\n rowsToFilter = filterFn(rowsToFilter, [columnId], filterValue)\n })\n\n return rowsToFilter\n }\n\n if (filterFromChildrenUp) {\n const recurseFilterRows = (\n rowsToFilter: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n depth = 0\n ) => {\n // Filter from children up\n rowsToFilter = rowsToFilter.filter(row => {\n if (!row.subRows?.length) {\n return true\n }\n\n row.subRows = recurseFilterRows(row.subRows, depth + 1)\n\n return row.subRows.length\n })\n\n rowsToFilter = filterRows(rowsToFilter, depth)\n\n // Apply the filter to any subRows\n rowsToFilter.forEach(row => {\n newFilteredFlatRows.push(row)\n newFilteredRowsById[row.id] = row\n })\n\n return rowsToFilter\n }\n\n return {\n rows: recurseFilterRows(rowModel.rows),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n }\n\n // Filters top level and nested rows\n const recurseFilterRows = (\n rowsToFilter: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n depth = 0\n ) => {\n // Filter from parents downward\n rowsToFilter = filterRows(rowsToFilter, depth)\n\n // Apply the filter to any subRows\n // We technically could do this recursively in the above loop,\n // but that would severely hinder the API for the user, since they\n // would be required to do that recursion in some scenarios\n rowsToFilter.forEach(row => {\n newFilteredFlatRows.push(row)\n newFilteredRowsById[row.id] = row\n\n if (!filterFromChildrenUp) {\n if (!row.subRows?.length) {\n return\n }\n\n row.subRows = recurseFilterRows(row.subRows, depth + 1)\n }\n })\n\n return rowsToFilter\n }\n\n return {\n rows: recurseFilterRows(rowModel.rows),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n}\n"],"names":["columnFilterRowsFn","instance","rowModel","columnFilters","getState","newFilteredFlatRows","newFilteredRowsById","filterFromChildrenUp","options","filterRows","rowsToFilter","depth","forEach","columnId","id","filterValue","value","column","getColumn","process","env","NODE_ENV","console","warn","Error","preFilteredRows","getPreFilteredRows","filterFn","getColumnFilterFn","recurseFilterRows","filter","row","subRows","length","push","rows","flatRows","rowsById"],"mappings":"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"}
@@ -12,7 +12,7 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var expandRowsFn = function expandRowsFn(instance, _expandedState, sortedRowModel) {
15
+ function expandRowsFn(instance, sortedRowModel) {
16
16
  var expandedRows = [];
17
17
  var expandSubRows = instance.options.expandSubRows;
18
18
 
@@ -32,7 +32,7 @@ var expandRowsFn = function expandRowsFn(instance, _expandedState, sortedRowMode
32
32
  flatRows: sortedRowModel.flatRows,
33
33
  rowsById: sortedRowModel.rowsById
34
34
  };
35
- };
35
+ }
36
36
 
37
37
  exports.expandRowsFn = expandRowsFn;
38
38
  //# sourceMappingURL=expandRowsFn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"expandRowsFn.js","sources":["../../../src/utils/expandRowsFn.ts"],"sourcesContent":["import { ReactTable, Row, RowModel } from '../types'\nimport { Options } from '../types'\nimport { ExpandedState } from '../features/Expanding'\n\nexport const expandRowsFn: Options<any, any, {}, {}, {}>['expandRowsFn'] = <\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n _expandedState: ExpandedState,\n sortedRowModel: RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n): RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> => {\n const expandedRows: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n const { expandSubRows } = instance.options\n\n const handleRow = (\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => {\n expandedRows.push(row)\n\n if (\n expandSubRows &&\n row.subRows?.length &&\n instance.getIsRowExpanded(row.id)\n ) {\n row.subRows.forEach(handleRow)\n }\n }\n\n sortedRowModel.rows.forEach(handleRow)\n\n return {\n rows: expandedRows,\n flatRows: sortedRowModel.flatRows,\n rowsById: sortedRowModel.rowsById,\n }\n}\n"],"names":["expandRowsFn","instance","_expandedState","sortedRowModel","expandedRows","expandSubRows","options","handleRow","row","push","subRows","length","getIsRowExpanded","id","forEach","rows","flatRows","rowsById"],"mappings":";;;;;;;;;;;;;;IAIaA,YAA2D,GAAG,SAA9DA,YAA8D,CAOzEC,QAPyE,EAQzEC,cARyE,EASzEC,cATyE,EAgBH;AACtE,MAAMC,YAMH,GAAG,EANN;AAQA,MAAQC,aAAR,GAA0BJ,QAAQ,CAACK,OAAnC,CAAQD,aAAR;;AAEA,MAAME,SAAS,GAAG,SAAZA,SAAY,CAChBC,GADgB,EAEb;AAAA;;AACHJ,IAAAA,YAAY,CAACK,IAAb,CAAkBD,GAAlB;;AAEA,QACEH,aAAa,oBACbG,GAAG,CAACE,OADS,aACb,aAAaC,MADb,IAEAV,QAAQ,CAACW,gBAAT,CAA0BJ,GAAG,CAACK,EAA9B,CAHF,EAIE;AACAL,MAAAA,GAAG,CAACE,OAAJ,CAAYI,OAAZ,CAAoBP,SAApB;AACD;AACF,GAZD;;AAcAJ,EAAAA,cAAc,CAACY,IAAf,CAAoBD,OAApB,CAA4BP,SAA5B;AAEA,SAAO;AACLQ,IAAAA,IAAI,EAAEX,YADD;AAELY,IAAAA,QAAQ,EAAEb,cAAc,CAACa,QAFpB;AAGLC,IAAAA,QAAQ,EAAEd,cAAc,CAACc;AAHpB,GAAP;AAKD;;;;"}
1
+ {"version":3,"file":"expandRowsFn.js","sources":["../../../src/utils/expandRowsFn.ts"],"sourcesContent":["import { ReactTable, Row, RowModel } from '../types'\n\nexport function expandRowsFn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n sortedRowModel: RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n): RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n const expandedRows: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n const { expandSubRows } = instance.options\n\n const handleRow = (\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => {\n expandedRows.push(row)\n\n if (\n expandSubRows &&\n row.subRows?.length &&\n instance.getIsRowExpanded(row.id)\n ) {\n row.subRows.forEach(handleRow)\n }\n }\n\n sortedRowModel.rows.forEach(handleRow)\n\n return {\n rows: expandedRows,\n flatRows: sortedRowModel.flatRows,\n rowsById: sortedRowModel.rowsById,\n }\n}\n"],"names":["expandRowsFn","instance","sortedRowModel","expandedRows","expandSubRows","options","handleRow","row","push","subRows","length","getIsRowExpanded","id","forEach","rows","flatRows","rowsById"],"mappings":";;;;;;;;;;;;;;AAEO,SAASA,YAAT,CAOLC,QAPK,EAQLC,cARK,EAe8D;AACnE,MAAMC,YAMH,GAAG,EANN;AAQA,MAAQC,aAAR,GAA0BH,QAAQ,CAACI,OAAnC,CAAQD,aAAR;;AAEA,MAAME,SAAS,GAAG,SAAZA,SAAY,CAChBC,GADgB,EAEb;AAAA;;AACHJ,IAAAA,YAAY,CAACK,IAAb,CAAkBD,GAAlB;;AAEA,QACEH,aAAa,oBACbG,GAAG,CAACE,OADS,aACb,aAAaC,MADb,IAEAT,QAAQ,CAACU,gBAAT,CAA0BJ,GAAG,CAACK,EAA9B,CAHF,EAIE;AACAL,MAAAA,GAAG,CAACE,OAAJ,CAAYI,OAAZ,CAAoBP,SAApB;AACD;AACF,GAZD;;AAcAJ,EAAAA,cAAc,CAACY,IAAf,CAAoBD,OAApB,CAA4BP,SAA5B;AAEA,SAAO;AACLQ,IAAAA,IAAI,EAAEX,YADD;AAELY,IAAAA,QAAQ,EAAEb,cAAc,CAACa,QAFpB;AAGLC,IAAAA,QAAQ,EAAEd,cAAc,CAACc;AAHpB,GAAP;AAKD;;;;"}
@@ -12,7 +12,8 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var globalFilterRowsFn = function globalFilterRowsFn(instance, globalFilter, rowModel) {
15
+ function globalFilterRowsFn(instance, rowModel) {
16
+ var globalFilter = instance.getState().globalFilter;
16
17
  var newFilteredFlatRows = [];
17
18
  var newFilteredRowsById = {};
18
19
  var filterFromChildrenUp = instance.options.filterFromChildrenUp;
@@ -94,7 +95,7 @@ var globalFilterRowsFn = function globalFilterRowsFn(instance, globalFilter, row
94
95
  flatRows: newFilteredFlatRows,
95
96
  rowsById: newFilteredRowsById
96
97
  };
97
- };
98
+ }
98
99
 
99
100
  exports.globalFilterRowsFn = globalFilterRowsFn;
100
101
  //# sourceMappingURL=globalFilterRowsFn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"globalFilterRowsFn.js","sources":["../../../src/utils/globalFilterRowsFn.ts"],"sourcesContent":["import { Options } from '..'\nimport { ReactTable, Row, RowModel } from '../types'\n\nexport const globalFilterRowsFn: Options<\n any,\n any,\n {},\n {},\n {}\n>['globalFilterRowsFn'] = <\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n globalFilter: any,\n rowModel: RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> => {\n const newFilteredFlatRows: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n const newFilteredRowsById: Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n > = {}\n\n const filterFromChildrenUp = instance.options.filterFromChildrenUp\n\n const filterFn = instance.getGlobalFilterFn()\n\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find a valid 'globalFilterType'`)\n }\n return rowModel\n }\n\n const filterableColumns = instance\n .getAllLeafColumns()\n .filter(column => column.getCanGlobalFilter())\n\n const filterableColumnIds = filterableColumns.map(d => d.id)\n\n if (filterFromChildrenUp) {\n const recurseFilterRows = (\n rowsToFilter: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n depth = 0\n ) => {\n // Filter from children up\n rowsToFilter = rowsToFilter.filter(row => {\n if (!row.subRows?.length) {\n return true\n }\n\n row.subRows = recurseFilterRows(row.subRows, depth + 1)\n\n return row.subRows.length\n })\n\n rowsToFilter = filterFn(rowsToFilter, filterableColumnIds, globalFilter)\n\n // Apply the filter to any subRows\n rowsToFilter.forEach(row => {\n newFilteredFlatRows.push(row)\n newFilteredRowsById[row.id] = row\n })\n\n return rowsToFilter\n }\n\n return {\n rows: recurseFilterRows(rowModel.rows),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n }\n\n // Filters top level and nested rows\n const recurseFilterRows = (\n rowsToFilter: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n depth = 0\n ) => {\n // Filter from parents downward\n rowsToFilter = filterFn(rowsToFilter, filterableColumnIds, globalFilter)\n\n // Apply the filter to any subRows\n // We technically could do this recursively in the above loop,\n // but that would severely hinder the API for the user, since they\n // would be required to do that recursion in some scenarios\n rowsToFilter.forEach(row => {\n newFilteredFlatRows.push(row)\n newFilteredRowsById[row.id] = row\n\n if (!filterFromChildrenUp) {\n if (!row.subRows?.length) {\n return\n }\n\n row.subRows = recurseFilterRows(row.subRows, depth + 1)\n }\n })\n\n return rowsToFilter\n }\n\n return {\n rows: recurseFilterRows(rowModel.rows),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n}\n"],"names":["globalFilterRowsFn","instance","globalFilter","rowModel","newFilteredFlatRows","newFilteredRowsById","filterFromChildrenUp","options","filterFn","getGlobalFilterFn","process","env","NODE_ENV","console","warn","filterableColumns","getAllLeafColumns","filter","column","getCanGlobalFilter","filterableColumnIds","map","d","id","recurseFilterRows","rowsToFilter","depth","row","subRows","length","forEach","push","rows","flatRows","rowsById"],"mappings":";;;;;;;;;;;;;;IAGaA,kBAMU,GAAG,SANbA,kBAMa,CAOxBC,QAPwB,EAQxBC,YARwB,EASxBC,QATwB,EAU8C;AACtE,MAAMC,mBAMH,GAAG,EANN;AAOA,MAAMC,mBAGL,GAAG,EAHJ;AAKA,MAAMC,oBAAoB,GAAGL,QAAQ,CAACM,OAAT,CAAiBD,oBAA9C;AAEA,MAAME,QAAQ,GAAGP,QAAQ,CAACQ,iBAAT,EAAjB;;AAEA,MAAI,CAACD,QAAL,EAAe;AACb,QAAIE,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCC,MAAAA,OAAO,CAACC,IAAR;AACD;;AACD,WAAOX,QAAP;AACD;;AAED,MAAMY,iBAAiB,GAAGd,QAAQ,CAC/Be,iBADuB,GAEvBC,MAFuB,CAEhB,UAAAC,MAAM;AAAA,WAAIA,MAAM,CAACC,kBAAP,EAAJ;AAAA,GAFU,CAA1B;AAIA,MAAMC,mBAAmB,GAAGL,iBAAiB,CAACM,GAAlB,CAAsB,UAAAC,CAAC;AAAA,WAAIA,CAAC,CAACC,EAAN;AAAA,GAAvB,CAA5B;;AAEA,MAAIjB,oBAAJ,EAA0B;AACxB,QAAMkB,kBAAiB,GAAG,SAApBA,kBAAoB,CACxBC,YADwB,EAQxBC,KARwB,EASrB;;AACH;AACAD,MAAAA,YAAY,GAAGA,YAAY,CAACR,MAAb,CAAoB,UAAAU,GAAG,EAAI;AAAA;;AACxC,YAAI,kBAACA,GAAG,CAACC,OAAL,aAAC,aAAaC,MAAd,CAAJ,EAA0B;AACxB,iBAAO,IAAP;AACD;;AAEDF,QAAAA,GAAG,CAACC,OAAJ,GAAcJ,kBAAiB,CAACG,GAAG,CAACC,OAAL,CAA/B;AAEA,eAAOD,GAAG,CAACC,OAAJ,CAAYC,MAAnB;AACD,OARc,CAAf;AAUAJ,MAAAA,YAAY,GAAGjB,QAAQ,CAACiB,YAAD,EAAeL,mBAAf,EAAoClB,YAApC,CAAvB,CAZG;;AAeHuB,MAAAA,YAAY,CAACK,OAAb,CAAqB,UAAAH,GAAG,EAAI;AAC1BvB,QAAAA,mBAAmB,CAAC2B,IAApB,CAAyBJ,GAAzB;AACAtB,QAAAA,mBAAmB,CAACsB,GAAG,CAACJ,EAAL,CAAnB,GAA8BI,GAA9B;AACD,OAHD;AAKA,aAAOF,YAAP;AACD,KA9BD;;AAgCA,WAAO;AACLO,MAAAA,IAAI,EAAER,kBAAiB,CAACrB,QAAQ,CAAC6B,IAAV,CADlB;AAELC,MAAAA,QAAQ,EAAE7B,mBAFL;AAGL8B,MAAAA,QAAQ,EAAE7B;AAHL,KAAP;AAKD,GApEqE;;;AAuEtE,MAAMmB,iBAAiB,GAAG,SAApBA,iBAAoB,CACxBC,YADwB,EAQxBC,KARwB,EASrB;;AACH;AACAD,IAAAA,YAAY,GAAGjB,QAAQ,CAACiB,YAAD,EAAeL,mBAAf,EAAoClB,YAApC,CAAvB,CAFG;AAKH;AACA;AACA;;AACAuB,IAAAA,YAAY,CAACK,OAAb,CAAqB,UAAAH,GAAG,EAAI;AAC1BvB,MAAAA,mBAAmB,CAAC2B,IAApB,CAAyBJ,GAAzB;AACAtB,MAAAA,mBAAmB,CAACsB,GAAG,CAACJ,EAAL,CAAnB,GAA8BI,GAA9B;;AAEA,UAAI,CAACrB,oBAAL,EAA2B;AAAA;;AACzB,YAAI,mBAACqB,GAAG,CAACC,OAAL,aAAC,cAAaC,MAAd,CAAJ,EAA0B;AACxB;AACD;;AAEDF,QAAAA,GAAG,CAACC,OAAJ,GAAcJ,iBAAiB,CAACG,GAAG,CAACC,OAAL,CAA/B;AACD;AACF,KAXD;AAaA,WAAOH,YAAP;AACD,GA/BD;;AAiCA,SAAO;AACLO,IAAAA,IAAI,EAAER,iBAAiB,CAACrB,QAAQ,CAAC6B,IAAV,CADlB;AAELC,IAAAA,QAAQ,EAAE7B,mBAFL;AAGL8B,IAAAA,QAAQ,EAAE7B;AAHL,GAAP;AAKD;;;;"}
1
+ {"version":3,"file":"globalFilterRowsFn.js","sources":["../../../src/utils/globalFilterRowsFn.ts"],"sourcesContent":["import { ReactTable, Row, RowModel } from '../types'\n\nexport function globalFilterRowsFn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowModel: RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n const globalFilter = instance.getState().globalFilter\n const newFilteredFlatRows: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n const newFilteredRowsById: Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n > = {}\n\n const filterFromChildrenUp = instance.options.filterFromChildrenUp\n\n const filterFn = instance.getGlobalFilterFn()\n\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find a valid 'globalFilterType'`)\n }\n return rowModel\n }\n\n const filterableColumns = instance\n .getAllLeafColumns()\n .filter(column => column.getCanGlobalFilter())\n\n const filterableColumnIds = filterableColumns.map(d => d.id)\n\n if (filterFromChildrenUp) {\n const recurseFilterRows = (\n rowsToFilter: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n depth = 0\n ) => {\n // Filter from children up\n rowsToFilter = rowsToFilter.filter(row => {\n if (!row.subRows?.length) {\n return true\n }\n\n row.subRows = recurseFilterRows(row.subRows, depth + 1)\n\n return row.subRows.length\n })\n\n rowsToFilter = filterFn(rowsToFilter, filterableColumnIds, globalFilter)\n\n // Apply the filter to any subRows\n rowsToFilter.forEach(row => {\n newFilteredFlatRows.push(row)\n newFilteredRowsById[row.id] = row\n })\n\n return rowsToFilter\n }\n\n return {\n rows: recurseFilterRows(rowModel.rows),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n }\n\n // Filters top level and nested rows\n const recurseFilterRows = (\n rowsToFilter: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n depth = 0\n ) => {\n // Filter from parents downward\n rowsToFilter = filterFn(rowsToFilter, filterableColumnIds, globalFilter)\n\n // Apply the filter to any subRows\n // We technically could do this recursively in the above loop,\n // but that would severely hinder the API for the user, since they\n // would be required to do that recursion in some scenarios\n rowsToFilter.forEach(row => {\n newFilteredFlatRows.push(row)\n newFilteredRowsById[row.id] = row\n\n if (!filterFromChildrenUp) {\n if (!row.subRows?.length) {\n return\n }\n\n row.subRows = recurseFilterRows(row.subRows, depth + 1)\n }\n })\n\n return rowsToFilter\n }\n\n return {\n rows: recurseFilterRows(rowModel.rows),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n}\n"],"names":["globalFilterRowsFn","instance","rowModel","globalFilter","getState","newFilteredFlatRows","newFilteredRowsById","filterFromChildrenUp","options","filterFn","getGlobalFilterFn","process","env","NODE_ENV","console","warn","filterableColumns","getAllLeafColumns","filter","column","getCanGlobalFilter","filterableColumnIds","map","d","id","recurseFilterRows","rowsToFilter","depth","row","subRows","length","forEach","push","rows","flatRows","rowsById"],"mappings":";;;;;;;;;;;;;;AAEO,SAASA,kBAAT,CAOLC,QAPK,EAQLC,QARK,EAS8D;AACnE,MAAMC,YAAY,GAAGF,QAAQ,CAACG,QAAT,GAAoBD,YAAzC;AACA,MAAME,mBAMH,GAAG,EANN;AAOA,MAAMC,mBAGL,GAAG,EAHJ;AAKA,MAAMC,oBAAoB,GAAGN,QAAQ,CAACO,OAAT,CAAiBD,oBAA9C;AAEA,MAAME,QAAQ,GAAGR,QAAQ,CAACS,iBAAT,EAAjB;;AAEA,MAAI,CAACD,QAAL,EAAe;AACb,QAAIE,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCC,MAAAA,OAAO,CAACC,IAAR;AACD;;AACD,WAAOb,QAAP;AACD;;AAED,MAAMc,iBAAiB,GAAGf,QAAQ,CAC/BgB,iBADuB,GAEvBC,MAFuB,CAEhB,UAAAC,MAAM;AAAA,WAAIA,MAAM,CAACC,kBAAP,EAAJ;AAAA,GAFU,CAA1B;AAIA,MAAMC,mBAAmB,GAAGL,iBAAiB,CAACM,GAAlB,CAAsB,UAAAC,CAAC;AAAA,WAAIA,CAAC,CAACC,EAAN;AAAA,GAAvB,CAA5B;;AAEA,MAAIjB,oBAAJ,EAA0B;AACxB,QAAMkB,kBAAiB,GAAG,SAApBA,kBAAoB,CACxBC,YADwB,EAQxBC,KARwB,EASrB;;AACH;AACAD,MAAAA,YAAY,GAAGA,YAAY,CAACR,MAAb,CAAoB,UAAAU,GAAG,EAAI;AAAA;;AACxC,YAAI,kBAACA,GAAG,CAACC,OAAL,aAAC,aAAaC,MAAd,CAAJ,EAA0B;AACxB,iBAAO,IAAP;AACD;;AAEDF,QAAAA,GAAG,CAACC,OAAJ,GAAcJ,kBAAiB,CAACG,GAAG,CAACC,OAAL,CAA/B;AAEA,eAAOD,GAAG,CAACC,OAAJ,CAAYC,MAAnB;AACD,OARc,CAAf;AAUAJ,MAAAA,YAAY,GAAGjB,QAAQ,CAACiB,YAAD,EAAeL,mBAAf,EAAoClB,YAApC,CAAvB,CAZG;;AAeHuB,MAAAA,YAAY,CAACK,OAAb,CAAqB,UAAAH,GAAG,EAAI;AAC1BvB,QAAAA,mBAAmB,CAAC2B,IAApB,CAAyBJ,GAAzB;AACAtB,QAAAA,mBAAmB,CAACsB,GAAG,CAACJ,EAAL,CAAnB,GAA8BI,GAA9B;AACD,OAHD;AAKA,aAAOF,YAAP;AACD,KA9BD;;AAgCA,WAAO;AACLO,MAAAA,IAAI,EAAER,kBAAiB,CAACvB,QAAQ,CAAC+B,IAAV,CADlB;AAELC,MAAAA,QAAQ,EAAE7B,mBAFL;AAGL8B,MAAAA,QAAQ,EAAE7B;AAHL,KAAP;AAKD,GArEkE;;;AAwEnE,MAAMmB,iBAAiB,GAAG,SAApBA,iBAAoB,CACxBC,YADwB,EAQxBC,KARwB,EASrB;;AACH;AACAD,IAAAA,YAAY,GAAGjB,QAAQ,CAACiB,YAAD,EAAeL,mBAAf,EAAoClB,YAApC,CAAvB,CAFG;AAKH;AACA;AACA;;AACAuB,IAAAA,YAAY,CAACK,OAAb,CAAqB,UAAAH,GAAG,EAAI;AAC1BvB,MAAAA,mBAAmB,CAAC2B,IAApB,CAAyBJ,GAAzB;AACAtB,MAAAA,mBAAmB,CAACsB,GAAG,CAACJ,EAAL,CAAnB,GAA8BI,GAA9B;;AAEA,UAAI,CAACrB,oBAAL,EAA2B;AAAA;;AACzB,YAAI,mBAACqB,GAAG,CAACC,OAAL,aAAC,cAAaC,MAAd,CAAJ,EAA0B;AACxB;AACD;;AAEDF,QAAAA,GAAG,CAACC,OAAJ,GAAcJ,iBAAiB,CAACG,GAAG,CAACC,OAAL,CAA/B;AACD;AACF,KAXD;AAaA,WAAOH,YAAP;AACD,GA/BD;;AAiCA,SAAO;AACLO,IAAAA,IAAI,EAAER,iBAAiB,CAACvB,QAAQ,CAAC+B,IAAV,CADlB;AAELC,IAAAA,QAAQ,EAAE7B,mBAFL;AAGL8B,IAAAA,QAAQ,EAAE7B;AAHL,GAAP;AAKD;;;;"}
@@ -14,8 +14,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
15
  var utils = require('../utils.js');
16
16
 
17
- var groupRowsFn = function groupRowsFn(instance, groupingState, sortedRowModel) {
18
- // Filter the grouping list down to columns that exist
17
+ function groupRowsFn(instance, sortedRowModel) {
18
+ var groupingState = instance.getState().grouping; // Filter the grouping list down to columns that exist
19
+
19
20
  var existingGrouping = groupingState.filter(function (columnId) {
20
21
  return instance.getColumn(columnId);
21
22
  }); // Find the columns that can or are aggregating
@@ -132,7 +133,7 @@ var groupRowsFn = function groupRowsFn(instance, groupingState, sortedRowModel)
132
133
  flatRows: groupedFlatRows,
133
134
  rowsById: groupedRowsById
134
135
  };
135
- };
136
+ }
136
137
 
137
138
  function groupBy(rows, columnId) {
138
139
  var groupMap = new Map();